本文介绍了使用 HuggingFace 的一系列工具来搭建本地大语言模型的 AI 聊天应用。
该方案专注聊天,也是最常用的场景,比起其他开源项目的娱乐和玩具的成分来说,HuggingFace 的 Chat 质量可以说相当高了。
先看一下 UI:
Hugging Chat UI当然还有黑色主题:
Hugging Chat UI 深色主题前后端分别有如下特点:
• 聊天应用的前端 UI 使用 HuggingFace ChatUI,
• 可开启授权
• 可存储对话记录(使用 Mongo)
• 可定制 UI
• 后端使用 text-generation-inference
• 可对接多种开源模型,Llama 2、Falcon 等
• 可容器运行
• 可定制
下面主要讲的是本地运行方案,如果你觉得麻烦可以直接在 HuggingFace 上运行,一键搞定,文章最后一章我也会附上说明。
后端模型接口
我们使用 text-generation-inference 这个项目,自带 API、架构简单稳定,可用于生产。
项目地址:
https://github.com/huggingface/text-generation-inference
项目架构:
text-generation-inference
项目特点
• 通过简单的启动器提供最流行的大型语言模型
• 张量并行可在多个 GPU 上实现更快的推理
• 使用服务器发送事件 (SSE) 的令牌流
• 连续批处理传入请求以提高总吞吐量
• 在最流行的架构上使用flash-attention和Paged Attention进行推理的优化转换器代码
• 使用bitsandbytes和GPT-Q进行量化
• Safetensors重量加载
• 使用大型语言模型的水印进行水印
• Logits 扭曲器(温度缩放、top-p、top-k、重复惩罚,更多详细信息请参见Transformers.LogitsProcessor)
• 停止序列(生成过程中停止)
• 对数概率
• 生产就绪(使用开放遥测、Prometheus 指标进行分布式跟踪)
模型
这是经过优化的架构,当然包含我们最爱的 Llama 2:
• BLOOM
• FLAN-T5
• Galactica
• GPT-Neox
• Llama
• OPT
• SantaCoder
• Starcoder
• Falcon 7B
• Falcon 40B
• MPT
• Llama V2
其他的模型你也可以试试:
如果需要使用认证的模型(比如 Llama 2),需要配置 HF 的令牌:
• 前往https://huggingface.co/settings/tokens
• 复制您的 cli READ 令牌
• 配置变量 HUGGING_FACE_HUB_TOKEN=<your cli READ token>
ChatUI
ChatUI 是一个 SvelteKit 应用程序,专门为 HuggingChat 应用程序提供支持。 我们刚刚运行的 text-generation-inference 就可以 很好地和 ChatUI 配合。
项目地址是:
• https://github.com/huggingface/chat-ui
首先克隆项目:
在线部署
Hugging Chat是一个开源接口,使每个人都可以尝试 Falcon、StarCoder 和 BLOOM 等开源大型语言模型。
当然您也可以借助 ChatUI 的官方 Docker 模板, 使用 Hugging Face 的基础设施,选择模型快速部署部署自己的 Hugging Chat。
在下面网址快速创建。
https://huggingface.co/new-space?template=huggingchat/chat-ui-template
悟空CRM产品更多介绍:www.5kcrm.com