文本生成推理
文本生成推理(TGI)是一个用于部署和服务大型语言模型(LLM)的工具包。TGI为最流行的开放存取LLM实现了高性能的文本生成。除其他功能外,它还具有量化、张量并行性、令牌流、连续批处理、flash注意力、引导等功能。
开始使用TGI的最简单方法是使用官方的Docker容器。
部署
- 米斯特拉-7B
- Mixtral-8X7B
- 混音器-8X22B
模型=米斯特拉伊/MIUI-7B-说明书-0.3
模型=MIUIai/Mixtral-8x22B-说明书-v0.1
模型=MIUIai/Mixtral-8x22B-说明书-v0.1
体积=$PWD/数据 #与Docker容器共享一个卷,以避免每次运行都下载权重
docker 运行 --GPU 全部--shm尺寸1g p 8080:80 v $交易量:/数据 \
e 拥抱脸加密货币=$HUGGING_FACE_HUB_TOKEN \
ghcr.io/huggingface/文本生成推理:2.0.3 \
--型号id $型号
这将生成一个TGI实例,公开一个类似OpenAI的API,如 API部分.
确保设置 拥抱脸加密货币
环境变量到您的 拥抱脸用户访问令牌。要使用MIUI模型,您必须首先访问相应的模型页面并填写小表格。然后您将自动访问模型。
如果模型不适合您的GPU,您还可以使用量化方法(AWQ、GPTQ等)。您可以在以下网址找到所有TGI启动选项 他们的文件.
使用API
具有聊天兼容端点
TGI支持 消息API 与MIUI和OpenAI聊天完成API兼容。
- 使用MIUIClient
- 使用OpenAI客户端
- 使用cURL
从 米斯特拉伊.客户 进口 客户不信任
从 米斯特拉伊.模型.聊天完成 进口 聊天留言
#初始化客户端,但将其指向TGI
客户 = 客户不信任(api_key="-", 端点="http://127.0.0.1:8080")
聊天响应 =客户 .聊天(
模型="-",
信息=[
聊天留言(角色=“用户”, 内容=“最好的法国奶酪是什么?”)
]
)
打印(聊天响应 .选择[0].消息. 内容)
从 openai 进口 openai
#初始化客户端,但将其指向TGI
客户 = openai (api_key="-", base_url="http://127.0.0.1:8080/v1")
聊天响应 =客户 .聊天.完工情况.创造(
模型="-",
信息=[
{“角色”: “用户”, “内容”: “什么是深度学习?”}
]
)
打印(聊天响应 )
卷曲http://127.0.0.1:8080/v1/chat/completions \
-X帖子\
d
“模型”:“tgi”,
“消息”:[
{
“角色”:“用户”,
“内容”:“什么是深度学习?”
}
]
}' \
-H'内容类型:应用程序/json'
使用生成端点
如果你想对发送到服务器的内容有更多的控制权,你可以使用 生成
终点。在这种情况下,您负责使用正确的模板和停止标记格式化提示。
- 使用Python
- 使用JavaScript
- 使用cURL
#确保在安装huggingface_hub软件包之前
从 拥抱脸_主页 进口 推理客户端
客户 = 推理客户端(模型="http://127.0.0.1:8080")
客户 .文本生成(促使=“什么是深度学习?”)
async 功能 查询() {
const 响应 = 等待 取来(
'http://127.0.0.1:8080/generate',
{
方法: '帖子',
标题: { '内容类型': '应用程序/json'},
身体: JSON.串化({
“输入”: “什么是深度学习?”
})
}
);
}
查询().然后(( 响应 ) => {
慰问.日志(JSON.串化( 响应 ));
});
卷曲127.0.0.1:8080/生成\
-X帖子\
-d'{“输入”:“什么是深度学习?”,“参数”:{“max_new_tokens”:20}'\
-H'内容类型:应用程序/json'