魔搭社区LLM模型部署实践, 以ChatGLM3为例(二)

简介: 魔搭社区LLM模型部署实践, 以ChatGLM3为例(二)

二 、多端部署-以ChatGLM3+个人Mac电脑为例

魔搭社区和Xinference合作, 提供了模型GGML的部署方式, 以ChatGLM3为例。

Xinference支持大语言模型, 语音识别模型, 多模态模型的部署, 简化了部署流程, 通过一行命令完 成模型的部署工作 。并支持众多前沿的大语言模型, 结合GGML技术, 支持多端部署 。Xinference的 合作文章具体可以参考这篇文章《之前那篇微信公众号》

ChatGLM3使用的模型为GGML格式, 模型链接:

https://modelscope.cn/models/Xorbits/chatglm3-ggml/summary

使用方式:

首先在mac上预装Xinference:

pip install x inference[ggml]>=0.4.3

然后本地开启Xinference的实例:

x inference -p 9997

运行如下Python代码, 验证模型推理效果

from xinference.client import Client
client = Client(“http://localhost:9997”)
model_u id = client.launch_model(
model_name=“chatglm3”,
model_format=“ggmlv3”,
model_size_in_billions=6,
quantization=“q4_0”,
)
model = client.get_model(model_u id)
chat_history = []
prompt = "最大的动物是什么? "
model.chat(
prompt,
chat_history,
generate_config={“max_tokens”: 1024}
)

以ChatGLM3为例, 在个人Mac电脑上load模型到完成推理验证, 仅需要10s:

Mac电脑配置:

推理示例:

三 、定制化模型部署 - 微调后命令行部署

结合魔搭微调框架swift, 可以实现定制化模型部署。

目前swift支持VLLM框架, chatglm.cpp ,Xinference等推理框架, 具体可以参考文档:

https://github.com/modelscope/swift/blob/main/docs/source/GetStarted/Deployment.md

本文以ChatGLM3模型+chatglm.cpp为例:

该推理优化框架支持:

ChatGLM系列模型

BaiChuan系列模型

CodeGeeX系列模型

chatglm.cpp的github地址是:https://github.com/li-plus/chatglm.cpp

首先初始化对应repo:

git clone --recursive https://g it hub.com/li-plus/chatglm.cpp.g it && cd
chatglm.cpp
python3 -m pip install torch tabulate tqdm transformers accelerate
sentencepiece
cmake -B build
cmake --build build -j --config Release

如果SWIFT训练的是LoRA模型, 需要将LoRA weights合并到原始模型中去:

# 先将文件夹cd到swift根目录中
python tools/merge_lora_weights_to_model.py --model_id_or_path
/dir/to/your/base/model --model_revision master --ck pt_dir
/dir/to/your/lora/model
合并后的模型会输出到 {ckpt_dir}-merged 文件夹中。
之后将上述合并后的 {ckpt_dir}-merged 的模型weights转为cpp支持的bin文件:
# 先将文件夹cd到chatglm.cpp根目录中
python3 chatglm_cpp/convert.py -i {ck pt_dir}-merged -t q4_0 -o chatglm-ggml.bin
chatglm.cpp支持以各种精度转换模型 ,详情请参考: https://github.com/li-
plus/chatglm.cpp#getting-started

之后就可以拉起模型推理:

./build/bin/main -m chatglm-ggml.bin -i
# 以下对话为使用agent数据集训练后的效果
# Prompt > how are you?
# ChatGLM3 > < |startofthink|>```JSON
# {“api_name”: “greeting”, “apimongo_instance”: "ddb1e34-0406-42a3-
a547a220a2", “parameters”: {“text”: “how are # you?”}}}
# ```< |endofthink|>
#
# I 'm an AI assistant and I can only respond to text input. I don 't have the
ability to respond to audio or # video input.

之后启动xinference:

x inference -p 9997

在浏览器界面上选择Register Model选项卡, 添加chatglm.cpp章节中转换成功的ggml模 型:

注意:

● 模型能力选择Chat

之后再Launch Model中搜索刚刚创建的模型名称, 点击火箭标识运行即可使用。

调用可以使用如下代码:

from xinference.client import Client
client = Client(“http://localhost:9997”)
model_u id = client.launch_model(model_name=“custom-chatglm”)
model = client.get_model(model_u id)
chat_history = []
prompt = “What is the largest animal?”
model.chat(
prompt,
chat_history,
generate_config={“max_tokens”: 1024}
)
# { 'id ': 'chatcmpl-df3c2c28-f8bc-4e79-9c99-2ae3950fd459 ', 'object ':
'chat.completion ', 'created ': 1699367362, 'model ': '021c2b74-7d7a-11ee-b1aa-
ead073d837c1 ', 'choices ': [{ 'index ': 0, 'message ': { 'role ': 'assistant ',
'content ': "According to records kept by the Guinness World Records, the
largest animal in the world is the Blue Whale, specifically, the Right and
Left Whales, which were both caught off the coast of Newfoundland. The two
whales measured a length of 105.63 meters, or approximately 346 feet long, and
had a corresponding body weight of 203,980 pounds, or approximately 101 tons.
It 's important to note that this was an extremely rare event and the whales that size don 't commonly occur."}, 'finish_reason ': None}], 'usage ':
{ 'prompt_tokens ': -1, 'completion_tokens ': -1, 'total_tokens ': -1}}
目录
相关文章
|
2月前
|
机器学习/深度学习 自然语言处理 PyTorch
LLM-Mixer: 融合多尺度时间序列分解与预训练模型,可以精准捕捉短期波动与长期趋势
近年来,大型语言模型(LLMs)在自然语言处理领域取得显著进展,研究人员开始探索将其应用于时间序列预测。Jin等人提出了LLM-Mixer框架,通过多尺度时间序列分解和预训练的LLMs,有效捕捉时间序列数据中的短期波动和长期趋势,提高了预测精度。实验结果显示,LLM-Mixer在多个基准数据集上优于现有方法,展示了其在时间序列预测任务中的巨大潜力。
73 3
LLM-Mixer: 融合多尺度时间序列分解与预训练模型,可以精准捕捉短期波动与长期趋势
|
1月前
|
JSON 数据可视化 NoSQL
基于LLM Graph Transformer的知识图谱构建技术研究:LangChain框架下转换机制实践
本文介绍了LangChain的LLM Graph Transformer框架,探讨了文本到图谱转换的双模式实现机制。基于工具的模式利用结构化输出和函数调用,简化了提示工程并支持属性提取;基于提示的模式则为不支持工具调用的模型提供了备选方案。通过精确定义图谱模式(包括节点类型、关系类型及其约束),显著提升了提取结果的一致性和可靠性。LLM Graph Transformer为非结构化数据的结构化表示提供了可靠的技术方案,支持RAG应用和复杂查询处理。
94 2
基于LLM Graph Transformer的知识图谱构建技术研究:LangChain框架下转换机制实践
|
27天前
|
数据采集 人工智能 自然语言处理
万字干货|复杂表格多Agent方案:从LLM洞察、系统性 思考到实践经验总结
笔者结合实践经验以近期在负责的复杂表格智能问答为切入点,结合大模型的哲学三问(“是谁、从哪里来、到哪里去”),穿插阐述自己对大模型的一些理解与判断,以及面向公共云LLM的建设模式思考,并分享软件设计+模型算法结合的一些研发实践经验。
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
企业内训|LLM大模型技术在金融领域的应用及实践-某商业银行分行IT团队
本企业培训是TsingtaoAI技术团队专们为某商业银行分行IT团队开发的LLM大模型技术课程。课程深入分析大模型在金融行业中的发展趋势、底层技术及应用场景,重点提升学员在大模型应用中的实际操作能力与业务场景适应力。通过对全球商用 LLM 产品及国内外技术生态的深度对比,学员将了解大模型在不同企业中的发展路径,掌握如 GPT 系列、Claude 系列、文心一言等大模型的前沿技术。针对金融行业的业务需求,学员将学会如何结合多模态技术改进用户体验、数据分析等服务流程,并掌握大模型训练与工具链的实操技术,尤其是模型的微调、迁移学习与压缩技术。
74 2
|
2月前
|
计算机视觉
Deepseek开源多模态LLM模型框架Janus,魔搭社区最佳实践
deepseek近期推出了简单、统一且灵活的多模态框架Janus,它能够统一处理多模态理解和生成任务。让我们一起来了解一下吧。
|
2月前
|
开发工具 git
LLM-03 大模型 15分钟 FineTuning 微调 GPT2 模型 finetuning GPT微调实战 仅需6GB显存 单卡微调 数据 10MB数据集微调
LLM-03 大模型 15分钟 FineTuning 微调 GPT2 模型 finetuning GPT微调实战 仅需6GB显存 单卡微调 数据 10MB数据集微调
66 0
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
【AI大模型】BERT模型:揭秘LLM主要类别架构(上)
【AI大模型】BERT模型:揭秘LLM主要类别架构(上)
|
2月前
|
前端开发 机器人 API
前端大模型入门(一):用 js+langchain 构建基于 LLM 的应用
本文介绍了大语言模型(LLM)的HTTP API流式调用机制及其在前端的实现方法。通过流式调用,服务器可以逐步发送生成的文本内容,前端则实时处理并展示这些数据块,从而提升用户体验和实时性。文章详细讲解了如何使用`fetch`发起流式请求、处理响应流数据、逐步更新界面、处理中断和错误,以及优化用户交互。流式调用特别适用于聊天机器人、搜索建议等应用场景,能够显著减少用户的等待时间,增强交互性。
440 2
|
2月前
|
机器学习/深度学习 人工智能 运维
企业内训|LLM大模型在服务器和IT网络运维中的应用-某日企IT运维部门
本课程是为某在华日资企业集团的IT运维部门专门定制开发的企业培训课程,本课程旨在深入探讨大型语言模型(LLM)在服务器及IT网络运维中的应用,结合当前技术趋势与行业需求,帮助学员掌握LLM如何为运维工作赋能。通过系统的理论讲解与实践操作,学员将了解LLM的基本知识、模型架构及其在实际运维场景中的应用,如日志分析、故障诊断、网络安全与性能优化等。
78 2
|
2月前
|
机器学习/深度学习 数据采集 人工智能
文档智能 & RAG 让AI大模型更懂业务 —— 阿里云LLM知识库解决方案评测
随着数字化转型的深入,企业对文档管理和知识提取的需求日益增长。阿里云推出的文档智能 & RAG(Retrieval-Augmented Generation)解决方案,通过高效的内容清洗、向量化处理、精准的问答召回和灵活的Prompt设计,帮助企业构建强大的LLM知识库,显著提升企业级文档管理的效率和准确性。

热门文章

最新文章