如何本地化部署大模型ChatGLM3-6B?

本文将带你全面了解大模型的选型与部署,从硬件资源的获取到 ChatGLM3-6B 的实际应用,再到超参数调优和全新 Prompt 格式的探讨,希望能为你提供有价值的参考。

1. 大模型选型概述

在当下的大模型领域,各家厂商纷纷推出各式产品。我精心挑选了一些技术实力较强的代表性产品,详情可见下表(其他产品因篇幅限制就不一一列举了)。实际上,虽然市场上参与者众多,但真正投入巨资进行技术研发的并不多——毕竟开发大模型需要投入的人才、训练和硬件等成本,每年动辄数亿,这对一般企业或个人来说门槛非常高。

img

我上面表格我还没添加 DeepSeek 等我后面专门写一篇本地部署、本地微调、本地搭建企业知识库等。

另外,不少厂商选择基于 LLaMA 改造,或者简单地进行包装,而非完全自主研发。目前在开源社区中,ChatGLM-6B 与 LLaMA2备受关注。早在2023年初,国内大模型热潮兴起时,智谱 AI 就推出了 ChatGLM-6B;虽然同系列中还有130B版本,但由于体量较大、对显卡资源要求更高,不少人选择先体验6B版。

展望未来,在国产化和信创趋势的推动下,企业在部署 AI 时往往会在两种模式中择优:一是采用 MaaS 服务,调用大型厂商的 API;二是基于开源大模型,自主微调和部署。出于数据安全的考虑,多数企业倾向于私有化部署加上公有云 MaaS 的混合架构。从技术研发角度看,智谱 AI 在国内处于领先水平,这也是我选择 ChatGLM-6B 的原因之一。

值得一提的是,6B 模型拥有62亿参数,一张 RTX3090 显卡即可满足微调(P-Turing)和推理需求,对于中小企业来说,这无疑是一大优势。

img

当然,如果企业预算充足(达到百万元级别以上),也可以尝试性能更为强劲的 GLM-130B(简称130B),其千亿级参数带来更优推理能力,但使用时除了 GPU 资源费用外,还需要考虑商业授权问题。

🗨 说点题外话:130B 轻量化后,可以在 RTX3090 * 4 上进行推理,生产环境使用的话,推荐至少准备 A100(40G * 8)或 V100(32G * 8)* n 台服务器,n 的大小取决于推理吞吐量。训练 130B 大概需要 96 台 A100(320G),历时 2 个多月。

2. 显卡资源获取指南

大模型应用的第一步是解决计算资源问题,主要依靠 CPU 或 GPU(TPU由于应用较少,这里就不作介绍)。我建议尽量争取 GPU 资源,因为虽然有些模型可在 CPU 上运行,但通常需要低精度、轻量化的处理,这往往会降低模型效果,仅适合简单体验。若要在实际项目中获得良好的表现,GPU 是不可或缺的。以下是几种常见的 GPU 获取途径:

  1. 购买二手显卡
    不论是个人还是企业,都可考虑购买二手 RTX3090 显卡(单卡 24G 显存,价格大约8000元左右),用于本地微调和推理;若用于产品服务,可通过云服务映射实现简单推理,但不适合大规模部署。
  2. 淘宝租赁显卡
    适合个人学习使用,可按天、周、月甚至年租赁,既灵活又经济实惠。
  3. 在线 GPU 租赁
    如 autodl、RTX3090-24G 等服务,每月费用大约低于900元。不仅适用于本地测试,也可用于生产环境推理;若用于生产,建议根据实际推理需求评估每秒处理量,从而搭建高可用推理系统。
  4. 免费平台资源
    一些平台(例如阿里云 PAI、智谱 AI 开放平台)为新用户提供免费 GPU 额度,但往往需要完成推广任务等额外操作,虽然省钱但效率较低,因此不建议作为主要方案。

3. ChatGLM3-6B 部署实践

目前,ChatGLM-6B 已更新到第三代——ChatGLM3-6B。不仅在中英文推理上表现优异,其数学和代码处理能力也有了显著提升。官方数据显示,在语义、数学、推理、代码和知识等多个测试维度上,ChatGLM3-6B-Base 在10B以下模型中实力最强,同时还提供支持8K、32K、128K 长文本理解的版本。下面我将逐步介绍 ChatGLM3-6B 的安装部署流程,详细教程可参见官方文档:https://github.com/THUDM/ChatGLM3

3.1 环境准备

建议使用 Linux 系统(如 Ubuntu 或 CentOS)进行部署:

img

  • Python:建议 3.10~3.11 版本
  • Transformers 库:建议 4.36.2 版本
  • Torch:建议使用 2.0 或更高版本,以获得最佳推理性能

3.2 克隆代码

在终端中执行以下命令:

git clone https://github.com/THUDM/ChatGLM3

img

3.3 安装依赖

为加速依赖下载,建议切换为国内 pip 源(例如阿里云):

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
cd ChatGLM3
pip install -r requirements.txt

依赖安装成功后,将会显示相应的提示信息。

img

3.4 下载模型

使用以下命令下载模型:

git clone https://huggingface.co/THUDM/chatglm3-6b

如果 Huggingface 下载较慢,也可选择 ModelScope 进行下载。下载完成后,将 chatglm3-6b 目录重命名为 model 并放入 ChatGLM3 文件夹中即可(只要后续能正确指定模型路径即可)。

3.5 命令行模式启动

打开文件 basic_demo/cli_demo.py,修改模型加载路径:

MODEL_PATH = os.environ.get('MODEL_PATH', '../model')

然后执行:

python cli_demo.py

img

3.6 Web 控制台模式启动

同样,打开 basic_demo/web_demo_gradio.py 文件,修改模型加载路径:

MODEL_PATH = os.environ.get('MODEL_PATH', '../model')

同时调整最后一行代码:

demo.launch(server_name="127.0.0.1", server_port=7870, inbrowser=True, share=False)

server_name 修改为本机 IP,指定端口 server_port 即可。你也可以设置 share=True,通过 gradio 提供的链接访问。启动命令如下:

python web_demo_gradio.py

img

默认情况下,模型以 FP16 精度加载,约需 13GB 显存。如果你的电脑没有 GPU,也可以使用 CPU 启动,但6B版大约需要 32G 内存。你可以修改模型加载脚本:

model = AutoModel.from_pretrained(MODEL_PATH, trust_remote_code=True).float()

若 GPU 显存不足,也可采用 4-bit 量化运行,降低至约 6GB 显存需求:

model = AutoModel.from_pretrained(MODEL_PATH, trust_remote_code=True).quantize(4).cuda()

此外,官方还提供了一个全新 Web demo,支持 Chat、Tool、Code Interpreter 等功能,位于代码库中的 composite_demo 文件夹内:

cd composite_demo
pip install -r requirements.txt
export MODEL_PATH=../model
streamlit run main.py
# 或者使用
python -m streamlit run main.py

img

部署流程总结:

  1. 配置 Python 环境及 pip;
  2. 克隆代码仓库;
  3. 下载所需模型;
  4. 安装相关依赖;
  5. 修改示例代码,设置模型路径和精度参数;
  6. 启动命令行或 Web 服务。

在 Python 版本在 3.10~3.11 且网络环境良好的情况下,整个部署过程十分顺利;有 GPU 支持的话,推理效果更佳。部署完成后,就可以进行大模型推理实验。不过需要注意,6B 模型在推理时允许调整超参数,以便控制生成结果的准确性。正因如此,大模型并不适合用于对精度要求极高的任务(如税务或工资计算)。

4. 超参数设置解析

ChatGLM3-6B 支持以下三个关键超参数的调节:

  1. max_length
    设定模型输入和输出的总 token 数限制。
  2. temperature
    控制生成文本时单词的概率分布。较低的温度使得生成的回答更确定;而较高的温度则带来更多随机性,数值越小回答越精确。
  3. top_p
    决定采样策略,每一步只从累积概率达到 p 阈值的最小单词集合中选取,从而聚焦于高概率部分,忽略低概率词汇。

针对不同的应用场景,官方推荐了相应的参数配置,如下图所示:

img

配置完毕后,即可开始进行问答实验。需要提醒的是,ChatGLM3-6B 引入了一种全新的 Prompt 格式,类似于 ChatGPT 的交互模式,下面为你详细介绍。

5. 全新 Prompt 格式详解

新的提示格式通过引入多角色机制,使得对话过程更加清晰明确。在对话场景中,仅包含以下三种角色:

  • system:系统信息,始终位于对话开头,可用于设定回答的角色和语境。
  • user:用户提问的内容。
  • assistant:模型生成的回答。

在代码场景中,则扩展为四种角色:user、assistant、system 和 observation。其中 observation 用于展示外部调用(例如 API 返回数据或代码执行结果),其位置必须紧跟在 assistant 之后。

下面是官方提供的示例,展示了这四种角色的实际应用:

<|system|>
Answer the following questions as best as you can. You have access to the following tools:
[
    {
        "name": "get_current_weather",
        "description": "Get the current weather in a given location",
        "parameters": {
            "type": "object",
            "properties": {
                "location": {
                    "type": "string",
                    "description": "The city and state, e.g. San Francisco, CA",
                },
                "unit": {"type": "string"},
            },
            "required": ["location"],
        },
    }
]
<|user|>
今天北京的天气怎么样?
<|assistant|>
好的,让我们来查看今天的天气
<|assistant|>get_current_weather

\```python
tool_call(location="beijing", unit="celsius")
\```

<|observation|>
{"temperature": 22}
<|assistant|>
根据查询结果,今天北京的气温为 22 摄氏度。

为何采用这种设计?

  • 首先,训练后的大模型能够严格遵循系统消息,且系统消息不会作为用户对话的一部分参与生成过程。这样,在 system 角色中预设特定身份(例如 Java 技术专家),便可有效引导模型输出专业领域内容。
  • 其次,这种角色分离设计能在一定程度上防范输入注入攻击。多轮对话时,历史对话会被带入新会话,如果其中存在错误提示,可能会干扰生成结果。明确区分各角色后,攻击难度大大增加,虽然不能完全杜绝风险,但已显著提升安全性。

如何学习AI大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

那么我作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,希望可以帮助到更多学习大模型的人!至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

👉 福利来袭优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

全套AGI大模型学习大纲+路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈
基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉 福利来袭优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

img

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值