如何部署OpenELM离线环境

AI技术
小华
2026-10-03

下面给你一份在离线环境下部署 Apple OpenELM(Open Efficient Language Models) 的完整思路,涵盖模型获取、依赖安装、推理部署三种常见场景(纯离线推理 / 本地服务 / 微调)。

一、前期准备(联网机器上完成)

OpenELM 官方仓库:

https://github.com/apple/corenet/tree/main/projects/openelm

1. 模型权重下载(离线核心)

OpenELM 提供 HuggingFace 权重:

  • OpenELM-270M
  • OpenELM-450M
  • OpenELM-1_1B
  • OpenELM-3B

示例(在联网机器执行):

pip install huggingface_hub
huggingface-cli download apple/OpenELM-1_1B \
--local-dir ./openelm-1_1b

将整个目录拷贝到离线机器(U盘 / 内网传输)。

二、离线依赖安装

1. 在联网机器导出依赖

pip freeze > requirements.txt

或明确依赖(推荐):

torch==2.2.2
transformers==4.40.0
corenet
safetensors
numpy

2. 离线下载 wheel 包

pip download -r requirements.txt -d ./wheels

拷贝 wheels 目录到离线机器。

3. 离线安装

pip install --no-index --find-links=./wheels -r requirements.txt

⚠️ 注意:

  • GPU 环境需下载 对应 CUDA 的 torch
  • CPU 环境可用 cpu 版本 torch

三、OpenELM 离线推理(最简单)

1. 目录结构

openelm/
├── openelm-1_1b/
│   ├── config.json
│   ├── model.safetensors
│   └── tokenizer.model
├── infer.py

2. 推理代码

from 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]))

✅ 完全离线运行

四、离线部署为本地服务(API)

方案 1:FastAPI(轻量)

pip download fastapi uvicorn -d ./wheels
from 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 8000

五、使用 CoreNet(官方方式,进阶)

OpenELM 官方基于 CoreNet:

python projects/openelm/eval.py \
model=openelm_1_1b \
model.pretrained=True \
dataset=text

离线要点:

  • 提前下载:
  • 模型 checkpoint
  • tokenizer
  • 禁用任何网络请求(HF offline)
export HF_HUB_OFFLINE=1
export TRANSFORMERS_OFFLINE=1

六、常见问题

1. tokenizer 找不到

确保目录包含:

  • tokenizer.model
  • tokenizer_config.json

2. 显存不足

使用:

torch_dtype=torch.float16
device_map="auto"

3. 完全无外网

设置:

HF_HUB_OFFLINE=1

七、总结部署步骤

  1. ✅ 联网机器下载模型 + 依赖
  2. ✅ 拷贝到离线环境
  3. ✅ 离线 pip 安装
  4. ✅ 使用 local_files_only=True
  5. ✅ 运行推理 / API 服务

如果你愿意,我可以:

  • 给你 OpenELM-3B 离线部署示例
  • 帮你做 内网 Docker 镜像
  • 或写成 一键离线部署脚本

你打算用在 服务器 / 笔记本 / 内网系统?

亿速云提供售前/售后服务

售前业务咨询

售后技术保障

400-100-2938

7*24小时售后电话

官方微信小程序