Transformers 库模型推理与微调实战教程
概述
Transformers 是由 Hugging Face 和社区共同维护的开源自然语言处理(NLP)库,广泛应用于机器学习和深度学习领域。它提供了丰富的预训练模型和工具,使得开发者和研究人员能够轻松调用最新的大模型进行推理或针对特定任务进行微调。
在 Hugging Face 官网的模型详情页,点击 "Use this model" 可查看该模型的使用方式,通常包括 Pipeline 和 Directly(直接加载)两种模式。
环境准备
在使用 Transformers 之前,需要安装必要的依赖库。推荐使用 Python 虚拟环境以隔离项目依赖。
# 创建并激活虚拟环境
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 安装核心库
pip install transformers datasets accelerate torch
若需使用 GPU 加速,请确保已安装对应版本的 CUDA 驱动及 PyTorch 版本。
使用 AutoModel 类进行推理
Transformers 库中的 AutoClass 系列提供了自动加载预训练模型和分词器的功能,简化了模型的使用过程。我们可以通过 from_pretrained() 方法快速加载所需的模型和分词器。
核心步骤
- 加载模型:使用
AutoModelForCausalLM加载因果语言模型。 - 加载分词器:使用
AutoTokenizer加载配套的分词器。 - 构建消息:定义包含系统角色和用户角色的对话列表。
- 格式化输入:使用
apply_chat_template将对话格式化为模型可接受的字符串。 - 生成文本:调用
model.generate生成回复,可设置最大长度、温度等参数。 - 解码输出:提取生成的 token 并解码为文本。
代码示例
import os
import time
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
# 配置设备
device = "cuda" if torch.cuda.is_available() else "cpu"
# 网络代理配置(国内用户访问 HuggingFace 可能需要)
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
# ① 加载模型
model = AutoModelForCausalLM.from_pretrained(
"Qwen/Qwen1.5-0.5B-Chat",
device_map=,
torch_dtype=torch.float16,
)
tokenizer = AutoTokenizer.from_pretrained()
messages = [
{: , : },
{: , : }
]
text = tokenizer.apply_chat_template(
messages,
tokenize=,
add_generation_prompt=
)
model_inputs = tokenizer([text], return_tensors=).to(device)
start_time = time.time()
generated_ids = model.generate(
model_inputs.input_ids,
max_new_tokens=,
temperature=,
top_p=,
do_sample=
)
end_time = time.time()
()
generated_ids = [
output_ids[(input_ids):] input_ids, output_ids (model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=)[]
(response)


