极客时间:使用开源RouteLLM 集成多模型Nvidia NIM的经济高效方案?

  每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行! 订阅:https://rengongzhineng.io/

在过去的几次极客时间中,探讨了Nvidia NIMS和Microsoft Autogen。MS Autogen能够利用各种本地和在线模型的能力令人着迷。而降低推理成本的挑战也同样引人入胜。今天,将玩一个名为RouteLLM的开源库,它承诺通过高效管理和集成不同的AI模型来解决这些问题。

安装RouteLLM


首先,需要在机器上安装RouteLLM:(https://github.com/lm-sys/RouteLLM)

git clone https://github.com/lm-sys/RouteLLM.git
cd RouteLLM
pip install -e .[serve,eval]

设置环境


然后,必须使用Nvidia NIM和OpenAI的API密钥来设置环境。在“examples”文件夹下创建一个文件run_route_llm.py。

代码片段如下:

import os

# 设置API密钥
os.environ["NVIDIA_NIM_API_KEY"] = "your-nvidia-nim-api-key"
os.environ["OPENAI_API_KEY"] = "your-openai-api-key"

需要分别登录NIM和OpenAI账户生成API密钥并复制过来。

初始化控制器


接下来,从RouteLLM包中初始化控制器。控制器负责管理不同AI模型之间的通信并处理路由逻辑。将NIM上的llama-3.1设置为弱模型,而gpt-4则为强模型。初始化控制器的代码如下:

from routellm.controller import Controller

# 使用NIM端点初始化控制器
client = Controller(
    routers=["mf"],  # 指定使用的路由器
    weak_model="nvidia_nim/meta/llama-3.1-8b-instruct",  # 弱模型端点
    strong_model="gpt-4-1106-preview",  # 强模型端点
    config={
        "mf": {
            "checkpoint_path": "routellm/mf_gpt4_augmented"  # 路由器检查点路径
        }
    },
    api_base=None,  # API的基础URL,如果有的话
    api_key=None,  # 基础URL的API密钥,如果有的话
    progress_bar=False,  # 是否显示进度条
)

创建聊天完成


控制器初始化后,可以创建聊天完成。发送用户消息并接收模型的响应。代码片段如下:

# 为简单查询创建聊天完成
response1 = client.chat.completions.create(
    model="router-mf-0.11593",  # 用于聊天完成的模型
    messages=[
        {"role": "user", "content": "Hello! Who are you? What is your model version?"}  # 用户消息
    ]
)
print(response1.choices[0]["message"]["content"])  # 打印模型的响应

# 为复杂查询创建聊天完成
response2 = client.chat.completions.create(
    model="router-mf-0.11593",  # 用于聊天完成的模型
    messages=[
        {"role": "user", "content": "Hello! Who are you? What is your model version? What's the square root of 144?"}  # 用户消息
    ]
)
print(response2.choices[0]["message"]["content"])  # 打印模型的响应

观察


RouteLLM有效地管理了Nvidia NIM和OpenAI模型之间的路由。通过将较不复杂的查询路由到较弱的模型(llama 3.1),而将较复杂的查询路由到较强的模型(gpt-4),RouteLLM提供了一种潜在的成本优化策略。

阈值校准


RouteLLM中的阈值校准涉及设置阈值以管理路由查询的成本质量权衡。校准过程使用查询样本来确定适当的阈值,以将特定百分比的查询路由到较强的模型。默认情况下,校准使用公共的Chatbot Arena数据集,例如,要使用mf路由器将50%的查询路由到较强的模型,可以使用以下命令:

python -m routellm.calibrate_threshold --task calibrate --routers mf --strong-model-pct 0.5 --config config.example.yaml

对于mf的50.0%强模型调用,阈值=0.11593。这表示为mf路由器设置的阈值,以便大约50%的调用路由到较强的模型router-mf-0.11593。可以根据路由器和权衡设置不同的阈值。

结论


RouteLLM为管理多个AI模型提供了一种解决方案,优化了性能和成本。将RouteLLM集成到工作流程中可以显著增强AI能力。有很多用例,其中之一是添加校准阈值和在资源受限设备(如物联网设备)上将查询路由到本地或在线模型的能力。这增加了灵活性,特别有用。

请随意探索RouteLLM GitHub仓库,并尝试使用自己的模型。如果有任何问题或想分享经验,请在下方留言。

玩得开心!

  • 25
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值