如何实现AI大模型应用服务的多模型管理?

AI大模型框架-多模型管理

一、为什么要做多模型管理?

在LLMs百花齐放的时代,大量的模型涌现出来,不仅仅是大语言模型,还有很多图像生成模型,视频生成模型,甚至是多模态模型,项目中使用的模型也不可能只有一种,更不可能只有一个。很可能是x个LLM_A, y个LLM_B, z个LLM_C这样的复杂组合,在实际业务场景中将会面临大量要解决的问题。

  • 如何实现多个模型调度?
  • 如何实现负载均衡?
  • 如何做推理服务健康管理?
  • 如何快速接入三方模型?
  • 如何实现模型免适配的快速共享?
  • 如何...

大量的应用场景和技术诉求驱使了多模型管理的诞生。

二、架构

2.1 多模型现状

  • 目前较好的私有化大语言模型有Llama系列,ChatGLM系列,Baichuan系列。而对于商用大模型如ChatGPT, Bard, Claude这样的模型,推理成本低于私有化部署的模型并且远优于私有化部署的模型,用户也会通过Proxy的形式轻量级接入。

  • 图像模型目前表现不错的有商用模型Midjourney, 以及开源模型StableDiffusion, 最新的StableDiffusion模型参数近50GB,支持在8GB显卡上推理,CPU推理较慢。

  • 视频模型目前表现较好的有商用模型Gen-2, 其他开源视频模型目前效果都比较差,伴随着多模态模型的高度关注下,也在快速推进,效果在不断变好。

2.2 AI大模型特点

私有化推理服务部署成本高昂,动就需要几十GB的内存和GPU显存,多模型部署基本上都是通过服务API管理,而商用大模型也会通过API的形式接入,所以完全可以基于推理服务API构建多模型管理系统

2.3 多模型管理架构

三、多模型管理API

代码地址:OperateGPT多模型管理/llms目录

bash 复制代码
# 启动模型管理服务(也可以将API绑定到自己的应用服务中)
python operategpt/llms/worker_manager.py

# 【如果你已经有模型服务则可选】启动模型服务,需要配置一些相关参数,参考model_config.py文件
python operategpt/llms/llmserver.py

3.1 模型注册:

  • 模型注册需要将API注册到LLM框架服务中进行管理, 其中注册的关键参数需要选择性替换, 一般只需要替换{USER_PROMPT}
ini 复制代码
response_extract: 采用a.b[].c的形式表示提取 `response["a"]["b"][0]["c"]`
owner是模型的拥有者
req_url_template 是推理了服务的url模板
model_name是模型名,多个同名的模型将会被负载均衡的调用
body是请求体
注册模型时,需要将模型请求的部分参数修改成以下枚举类的对应值,{USER_PROMPT}是必须映射的,其他可选:
    USER_PROMPT = "{USER_PROMPT}"
    MODEL_TEMPERATURE = "{MODEL_TEMPERATURE}"
    MODEL_NAME = "{MODEL_NAME}"

示例:将一个大模型推理服务注册到模型管理器:

vbnet 复制代码
# 注册请求
curl -X POST -H "Content-Type: application/json" -d '{
    "model_name": "proxyllm",
    "body": {
        "input": "{USER_PROMPT}",
        "model_name": "{MODEL_NAME}"
    },
    "req_url_template": "http://127.0.0.1/api/generate",
    "owner": "OperateGPT",
    "response_extract": "data.items[].attributes.answer"
}' http://127.0.0.1:8007/api/server/register


# 返回结果
{
    "success": true,
    "msg": "register LLM proxyllm succeed!"
}

3.2 模型查询

ruby 复制代码
# 查询请求
curl http://127.0.0.1:8007/api/server/workers

# 返回结果

{
    "success": true,
    "data": [
        {"model_name": "chatglm2-6b", "req_url_template": "https://xxx/openapi/xxx/inference/query"}, 
        {"model_name": "proxyllm", "req_url_template": "http://localhost:8008/generate"}
    ]
}

3.3 模型下线

vbnet 复制代码
# 发起下线请求
curl -X POST -H "Content-Type: application/json" -d '{
    "model_name": "chatglm2-6b",
    "req_url_template": "https://xxx/openapi/xxx/inference/query"
}' http://127.0.0.1:8007/api/server/offline


# 返回结果
{
    "success": true,
    "msg": "remove llm worker(model_name=chatglm2-6b, url=https://xxx/openapi/xxx/inference/query) succeed!"
}

3.4 模型推理

vbnet 复制代码
# 模型请求1
curl -X POST -H "Content-Type: application/json" -d '{
    "input": "who are you?",
    "model_name": "chatglm2-6b"
}' http://127.0.0.1:8007/api/v1/chat/completions

# 返回数据1
{
    "success": true,
    "msg": "execute succeed",
    "result": "Hey there! My name is Noxix, and I am an AI chatbot designed to have conversations with users like you. How can I assist you today?"
}



# 模型请求2
curl -X POST -H "Content-Type: application/json" -d '{
    "input": "who are you?",
    "model_name": "proxyllm"
}' http://127.0.0.1:8007/api/v1/chat/completions

# 返回数据2
{
    "success": true,
    "msg": "execute succeed",
    "result": "I am an AI language model developed by OpenAI. I am programmed to provide information and assist with various tasks. How can I help you today?"
}

四、代码详细地址

OperateGPT多模型管理/llms目录

相关推荐
学习前端的小z5 小时前
【AIGC】ChatGPT是如何思考的:探索CoT思维链技术的奥秘
人工智能·chatgpt·aigc
程序员X小鹿6 小时前
大厂卷起来了!又一款AI对口型神器,让图片说话、唱歌,免费可用!吊打字节Loopy?
aigc
infominer6 小时前
RAGFlow 0.12 版本功能导读
人工智能·开源·aigc·ai-native
春末的南方城市18 小时前
FLUX的ID保持项目也来了! 字节开源PuLID-FLUX-v0.9.0,开启一致性风格写真新纪元!
人工智能·计算机视觉·stable diffusion·aigc·图像生成
我算是程序猿21 小时前
用AI做电子萌宠,快速涨粉变现
人工智能·stable diffusion·aigc
哪 吒1 天前
吊打ChatGPT4o!大学生如何用上原版O1辅助论文写作(附论文教程)
人工智能·ai·自然语言处理·chatgpt·aigc
AI绘画君1 天前
Stable Diffusion绘画 | AI 图片智能扩充,超越PS扩图的AI扩图功能(附安装包)
人工智能·ai作画·stable diffusion·aigc·ai绘画·ai扩图
乔代码嘚1 天前
AI2.0时代,普通小白如何通过AI月入30万
人工智能·stable diffusion·aigc
XiaoLiuLB1 天前
ChatGPT Canvas:交互式对话编辑器
人工智能·自然语言处理·chatgpt·编辑器·aigc
学习前端的小z2 天前
【AIGC】ChatGPT提示词解析:如何打造个人IP、CSDN爆款技术文案与高效教案设计
人工智能·chatgpt·aigc