2. 模型加载与基础推理
任务目标
使用 Hugging Face Transformers 库加载本地已下载的 模型,实现一个文本生成任务,验证模型能够正常完成前向推理并输出连贯文本。
环境与依赖
需要 Python 3.8+,并安装以下依赖:
pip install transformers torch
完整实现代码
以下代码实现了从本地路径加载模型与分词器,并基于给定提示词执行文本生成:
from transformers import AutoTokenizer, AutoModelForCausalLM
# 本地模型路径(需提前下载至该目录)
MODEL_PATH = "./-local"
# 加载分词器与模型
tokenizer = AutoTokenizer.from_pretrained(MODEL_PATH)
model = AutoModelForCausalLM.from_pretrained(MODEL_PATH)
# 设置 pad_( 无 pad_,避免警告)
if tokenizer.pad_ is None:
tokenizer.pad_ = tokenizer.eos_
# 输入提示词
prompt = "The future of artificial intelligence is"
inputs = tokenizer(prompt, return_tensors="pt")
# 生成文本
outputs = model.generate(
**inputs,
max_new_tokens=50,
do_sample=True,
temperature=0.8,
top_p=0.9,
pad__id=tokenizer.pad__id
)
# 解码并输出结果
generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
print("生成结果:")
print(generated_text)
运行与验证
第一步:准备本地模型
若尚未下载模型,先执行以下命令将 保存到本地目录:
python -c "from transformers import GPT2Tokenizer, GPT2LMHeadModel; tok = GPT2Tokenizer.from_pretrained(''); model = GPT2LMHeadModel.from_pretrained(''); tok.save_pretrained('./-local'); model.save_pretrained('./-local')"
第二步:运行推理脚本
python inference.py
第三步:判定通过条件
- 程序无报错退出,退出码为 0;
- 控制台输出以
生成结果:开头; - 输出文本以输入提示词
"The future of artificial intelligence is"开头,后续包含至少 10 个连贯的英文单词,且无乱码或重复崩溃。
常见问题
- CUDA 内存不足:若 GPU 显存不足,可在加载模型时添加
device_map="cpu"参数强制使用 CPU 推理。 - 模型路径错误:确保
MODEL_PATH指向包含config.json、pytorch_model.bin等文件的目录。 - 生成结果为空:检查
max_new_tokens是否过小(建议 ≥20),或分词器与模型是否匹配。