如何实现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目录

相关推荐
MY_TEUCK1 小时前
Sealos 平台部署实战指南:结合 Cursor 与版本发布流程
java·人工智能·学习·aigc
爱吃的小肥羊9 小时前
我整理了 14 种 GPT-Image-2 的神仙玩法,大家看看效果怎么样!
aigc·openai
刘 大 望11 小时前
RAG相关技术介绍及Spring AI中使用--第三期
java·人工智能·后端·spring·机器学习·ai·aigc
阿杰学AI11 小时前
AI核心知识132—大语言模型之 AI for Science(简洁且通俗易懂版)
人工智能·ai·语言模型·自然语言处理·aigc·ai for science·ai4s
用户51914958484512 小时前
Windows Hypervisor 分区漏洞利用与 IOCTL 通信测试工具
人工智能·aigc
用户67570498850214 小时前
【AI开发实战】从想法到上线,我用AI全栈开发了一款记账微信小程序
后端·aigc·ai编程
用户67570498850214 小时前
全网都在推 Claude Code,但只有这篇文章教你如何“真正”能用
后端·aigc·claude
用户51914958484515 小时前
Automad 2.0.0-alpha.4 存储型跨站脚本(XSS)漏洞利用
人工智能·aigc
民乐团扒谱机16 小时前
基于ArkTS与端云协同的鸿蒙智慧校园助手——项目报告(AIGC预警⚠️)
华为·aigc·harmonyos
日光明媚16 小时前
DMD 一步扩散核心原理:从符号定义到梯度推导
人工智能·机器学习·计算机视觉·ai作画·stable diffusion·aigc