OpenELM 官方仓库:
https://github.com/apple/corenet/tree/main/projects/openelmOpenELM 提供 HuggingFace 权重:
OpenELM-270MOpenELM-450MOpenELM-1_1BOpenELM-3B示例(在联网机器执行):
pip install huggingface_hub
huggingface-cli download apple/OpenELM-1_1B \
--local-dir ./openelm-1_1bpip freeze > requirements.txt或明确依赖(推荐):
torch==2.2.2
transformers==4.40.0
corenet
safetensors
numpypip download -r requirements.txt -d ./wheels拷贝 wheels 目录到离线机器。
pip install --no-index --find-links=./wheels -r requirements.txt⚠️ 注意:
- GPU 环境需下载 对应 CUDA 的 torch
- CPU 环境可用
cpu版本 torch
openelm/
├── openelm-1_1b/
│ ├── config.json
│ ├── model.safetensors
│ └── tokenizer.model
├── infer.pyfrom transformers import AutoModelForCausalLM, AutoTokenizer
model_path = "./openelm-1_1b"
tokenizer = AutoTokenizer.from_pretrained(
model_path,
local_files_only=True
)
model = AutoModelForCausalLM.from_pretrained(
model_path,
local_files_only=True,
torch_dtype="auto"
)
prompt = "What is OpenELM?"
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(
**inputs,
max_length=200
)
print(tokenizer.decode(outputs[0]))pip download fastapi uvicorn -d ./wheelsfrom fastapi import FastAPI
from transformers import AutoModelForCausalLM, AutoTokenizer
app = FastAPI()
model = AutoModelForCausalLM.from_pretrained(
"./openelm-1_1b",
local_files_only=True
)
tokenizer = AutoTokenizer.from_pretrained(
"./openelm-1_1b",
local_files_only=True
)
@app.post("/generate")
def generate(text: str):
inputs = tokenizer(text, return_tensors="pt")
out = model.generate(**inputs, max_length=200)
return tokenizer.decode(out[0])启动:
uvicorn main:app --host 0.0.0.0 --port 8000OpenELM 官方基于 CoreNet:
python projects/openelm/eval.py \
model=openelm_1_1b \
model.pretrained=True \
dataset=text离线要点:
export HF_HUB_OFFLINE=1
export TRANSFORMERS_OFFLINE=1确保目录包含:
tokenizer.modeltokenizer_config.json使用:
torch_dtype=torch.float16
device_map="auto"设置:
HF_HUB_OFFLINE=1local_files_only=True如果你愿意,我可以:
你打算用在 服务器 / 笔记本 / 内网系统?