在上一篇中,我们深入了解了分词器是如何将文本转化为数字的。
到现在为止,我们已经掌握了理论,也通过 API 体验了云端大模型。但在处理敏感数据、需要离线运行或精细控制成本的场景下,将大模型私有化部署到本地电脑是 Agent 开发者的必备技能。 本篇将带你动手,使用 Hugging Face 库在自己的电脑上运行一个真实的开源大模型。
3.2.3 调用开源大语言模型
在第一章中,我们通过 API 来驱动智能体。这是一种快速、便捷的方式,但并非唯一。对于许多企业级应用,将大语言模型直接部署在本地就显得至关重要。
我们将使用 Hugging Face Transformers,这是一个强大的开源库,提供了标准化的接口来加载和使用数以万计的预训练模型。
1. 环境配置与模型选择
为了让大多数读者都能在个人电脑上顺利运行,我们特意选择了一个小规模但功能强大的模型:Qwen/Qwen1.5-0.5B-Chat。
- 出品方:阿里巴巴达摩院
- 参数量:约 5 亿 (0.5B)
- 特点:体积小、性能优异,非常适合入门学习和本地部署。
首先,请确保你已经安装了必要的库:
pip install transformers torch
2. 加载模型与分词器
在 transformers 库中,我们通常使用两个核心类:
AutoModelForCausalLM:自动加载与模型匹配的因果语言模型权重。AutoTokenizer:自动加载对应的分词器。
以下代码会自动从 Hugging Face Hub 下载所需文件(取决于网速,可能需要一些时间):
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
# 指定模型 ID
model_id = "Qwen/Qwen1.5-0.5B-Chat"
# 设置设备,优先使用 GPU (CUDA),否则使用 CPU
device = "cuda" if torch.cuda.is_available() else "cpu"
print(f"Using device: {device}")
# 加载分词器
tokenizer = AutoTokenizer.from_pretrained(model_id)
# 加载模型,并将其移动到指定设备
model = AutoModelForCausalLM.from_pretrained(model_id).to(device)
print("模型和分词器加载完成!")
3. 准备对话输入
Qwen1.5-Chat 模型遵循特定的对话模板。我们需要构建一个包含 system(系统设定)和 user(用户指令)的消息列表,然后使用分词器的 apply_chat_template 方法将其格式化。
messages = [{: , : }, {: , : }]
text = tokenizer.apply_chat_template(messages, tokenize=, add_generation_prompt=)
model_inputs = tokenizer([text], return_tensors=).to(device)
()
(model_inputs)


