OpenELM 是 Apple 开源的高效小语言模型(LLM),特点:
✅ 推荐:
⚠️ 不推荐:
| 场景 | 推荐 |
|---|---|
| CPU 推理 | 8 核以上 |
| GPU 推理 | CUDA 11.8+ / 12.x |
| 内存 | ≥ 8GB(1B 模型) |
| 显存 | ≥ 6GB(FP16) |
⚠️ OpenELM 没有官方 CoreML Linux 支持,Linux 上只能用 PyTorch
conda create -n openelm python=3.10
conda activate openelm或:
python -m venv openelm_env
source openelm_env/bin/activate根据是否有 GPU 选择:
✅ 有 NVIDIA GPU
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121✅ 仅 CPU
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu⚠️ 常见坑:
pip install transformers accelerate sentencepiece如果你要量化(INT8 / INT4):
pip install bitsandbyteshuggingface-cli login模型示例:
apple/OpenELM-270M
apple/OpenELM-450M
apple/OpenELM-1_1B
apple/OpenELM-3Bfrom transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "apple/OpenELM-1_1B"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype="auto",
device_map="auto"
)
inputs = tokenizer("Hello, world!", return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=50)
print(tokenizer.decode(outputs[0]))⚠️ 注意:
device_map="auto" 需要 accelerate.to("cuda")✅ 解决方案:
torch.float16bitsandbytes 量化from transformers import BitsAndBytesConfig
bnb_config = BitsAndBytesConfig(load_in_8bit=True)
model = AutoModelForCausalLM.from_pretrained(
model_id,
quantization_config=bnb_config,
device_map="auto"
)常见错误:
tokenizer.json not found✅ 解决:
pip install sentencepiece protobuf✅ 国内建议:
export HF_ENDPOINT=https://hf-mirror.com或使用:
huggingface-cli download apple/OpenELM-1_1B --local-dir openelm~/.cache/huggingface 写权限pytorch/pytorch:2.1.0-cuda12.1-cudnn8-runtimelibgomp.so.1❌ 不支持:
✅ 适合:
如果你愿意,我可以:
你现在是在 服务器 / 本地 Linux / 容器 里部署?