本文是“在Serverless平台上构建AIGC应用”系列文章的第一篇文章。
前言
随着ChatGPT 以及 Stable Diffusion,Midjourney 这些新生代 AIGC 应用的兴起,围绕AIGC应用的相关开发变得越来越广泛,有呈井喷之势,从长远看这波应用的爆发不仅仅是停留在形式之上,更是在各个领域产生实际的生产力价值,比如办公领域有copilot system 365,钉钉智能; 代码编程领域有 github copilot ,cursor ide; 文娱领域的妙鸭相机;可以肯定的是未来 AIGC 的应用数量会更多,类型也会更加丰富,企业的内部软件或者SOP都会尽可能的跟AI进行融合,这必然催生出海量的AIGC应用开发需求,这也代表着巨大的市场机会。
开发 AIGC 应用的挑战
AIGC 的应用前景如此诱人,可能决定企业未来的发展走向。然而对很多中小企业及开发者而言,上手进行aigc应用的开发依然有着非常高昂的成本:
- 基础模型服务的获取:chatgpt提供了非常完善的api 开发体系,然而并不开放给国内客户使用,开源的模型进行服务的部署非常困难
- 高昂的费用, GPU 短缺导致 GPU 的费用急剧飙升,本地购买高规格显卡需要一次性花费不少的成本,并且并不能提供在线服务。
- 端到端的对接:单纯模型服务的api无法变成直接的生产力,需要完成【企业数据&企业SOP】-> LLM 服务 -> 各种端侧的完整链路
函数计算AIGC应用的解决方案
函数计算围绕创建和使用AIGC,从基础设施到应用生态,开发端到使用端提供的完整的配套
主要包含三个部分:
- 一 、模型服务底座,函数计算可以部署来自魔搭,huggingface等开元社区的ai模型,我们针对 LLM, Bert等智能知识库/助手 场景做了专门的定制,接入OpenAI兼容的api规范,提供一键部署的模版和可视化的web访问界面,帮助开发者或者企业快速上手 llama2,chatglm2,通义千问等模型的部署
- 二、业务连接层 ,串联业务需求以及的模型服务,安全服务,数据库服务等基础资源,这部分有在AIGC应用部分有很多相同的逻辑,比如账号体系,数据集管理,提示词模版,工具管理,模型服务管理等,从各业务侧视角看,不一样的部分只是 提示词,知识库以及工具集,底层的模型服务,安全服务,数据库服务则是共享的,这层可以简化业务里面构建不同智能场景的流程,快速,低成本的可以构建不同业务的AIGC应用
- 三、客户端侧,客户端是AI应用的使用部分,也是最接近业务的部分,这部分更多的考虑是如何将AI服务融入已有的使用端,比如钉钉,企业微信等办公IM系统,以及web浏览器插件等,通过 函数计算+eventbridge可以快速帮助ai服务接入到这些客户端
本篇教程先来分享一下第一个部分,如何通过函数计算快速部署 AIGC相关模型服务包括LLM模型 和Embedding(Bert) 模型
LLM模型及Embedding服务部署教程
前期准备
使用该项目,您需要有开通以下服务:
服务 |
备注 |
函数计算 FC |
对 AIGC 进行 CPU/GPU 推理计算 |
文件存储 NAS |
存储大语言模型以及Embedding服务所需要的模型, 新用户请先领取免费试用资源包https://free.aliyun.com/?product=9657388&crowd=personal |
应用介绍
应用详情
使用阿里云函数计算部署开源大模型应用,提供兼容openai规范的接口和ChatGPT-Next-Web客户端.
操作文档
llm应用模版
登录到阿里云函数计算控制台->应用->创建应用-> 人工智能 选择AI大语言模型API服务应用模板点击"立即创建"
应用模版设置
设置好知道点击"创建并部署默认环境"
等待部署
该过程您会自动完成
服务访问
服务部署成功之后会返回两个链接
1、llm-server 为大语言模型的api服务界面,基于swagger,
2、llm-client则是访问客户端,访问客户端需要您输入前面填写的客户端私有密码,填写好之后就可以测试使用了
embedding模版
登录到阿里云函数计算控制台->应用->创建应用-> 人工智能 选择“开源Bert模型服务”应用模板点击"立即创建"
应用模版设置
选择好地域创建即可
等待部署
该过程您会自动完成
服务访问
测试embedding接口
总结
部署好LLM服务意味着您已经开启了AIGC应用的开发旅程,接下来我会继续跟大家分享更多关于AIGC相关的内容,包括如何构建知识库问答应用,如何调用工具完善大语言模型的能力,如何接入自己的IM系统和构建web的集成插件。
【可换模型】基于函数计算一键部署 Stable Diffusion
https://developer.aliyun.com/adc/scenario/b2cc0e1c3a6244e0bd9fc0f37acd5a0e