OpenELM离线模式配置指南
一 核心思路
二 准备离线资源
python -c "from transformers import AutoTokenizer, AutoModelForCausalLM; \
m=AutoModelForCausalLM.from_pretrained('apple/OpenELM-3B-Instruct', local_files_only=False); \
t=AutoTokenizer.from_pretrained('apple/OpenELM-3B-Instruct', local_files_only=False); \
m.save_pretrained('./openelm-3b-instruct'); t.save_pretrained('./openelm-3b-instruct')"
python - <<'PY'
from transformers import AutoTokenizer, AutoModelForCausalLM
m=AutoModelForCausalLM.from_pretrained('./openelm-3b-instruct', local_files_only=True)
t=AutoTokenizer.from_pretrained('./openelm-3b-instruct', local_files_only=True)
print("offline ok", m.config.model_type, t.vocab_size)
PY
以上流程与脚本用法可参考 OpenELM 的安装与使用教程及本地推理示例。
三 配置离线推理
# pip install transformers torch
from transformers import AutoTokenizer, AutoModelForCausalLM, GenerationConfig
model_dir = "./openelm-3b-instruct" # 已缓存的本地模型目录
tokenizer = AutoTokenizer.from_pretrained(model_dir, local_files_only=True)
model = AutoModelForCausalLM.from_pretrained(model_dir, local_files_only=True).eval()
# 可选:CPU/GPU 自动选择;GPU 可用时建议 .to("cuda")
# model.to("cuda")
inputs = tokenizer("解释一下注意力机制", return_tensors="pt")
with torch.no_grad():
outputs = model.generate(
**inputs,
max_length=256,
do_sample=True,
temperature=0.7,
top_p=0.9,
repetition_penalty=1.1,
use_cache=True
)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))以上做法与参数示例可参考 OpenELM 的本地推理教程、命令行与量化示例,以及苹果在 MLX 上的官方支持说明。
四 常见问题与排查