1.指定本地模型路径

openclaw 中文openclaw 1

很高兴为您介绍 OpenCLAW(由零一万物开源)的离线使用方法。

1.指定本地模型路径-第1张图片-OpenClaw下载中文-AI中文智能体

OpenCLAW 是一个强大的代码生成/补全模型,离线使用可以让您在无网络、高安全要求或低延迟环境中使用它,以下是详细的离线部署指南:

核心前提条件

  1. 硬件:推荐具有 >= 8GB 显存 的 NVIDIA GPU(如 RTX 4070, RTX 3090, A10 等),纯 CPU 也可运行但速度极慢。
  2. 存储空间:模型文件约 6-7GB,需预留足够空间。
  3. 软件环境
    • Python 3.8+
    • CUDA 11.8 或更高版本(对应您的显卡驱动)
    • PyTorch 2.0+

离线使用步骤

第一步:在联网环境预先准备

在能上网的机器上完成以下操作,然后将所有文件转移到离线机。

  1. 克隆仓库

    git clone https://github.com/01-ai/OpenCLAW.git
    cd OpenCLAW
  2. 下载模型文件

    • Hugging Face Model HubModelScope 下载完整的模型文件。
    • 推荐命令(使用 Hugging Face 的 snapshot_download):
      python -c "from huggingface_hub import snapshot_download; snapshot_download(repo_id='openclaw/openclaw-code-7b', local_dir='./openclaw-code-7b', ignore_patterns=['*.safetensors'])"
    • 这将把 openclaw-code-7b 模型的所有文件(包括配置文件、tokenizer 和 PyTorch 格式的模型权重)下载到当前目录下的 openclaw-code-7b 文件夹中。
  3. 导出依赖包列表(可选但推荐):

    pip freeze > requirements.txt

第二步:在离线环境部署

  1. 传输文件:将整个 OpenCLAW 项目文件夹和下载好的 openclaw-code-7b 模型文件夹,通过U盘、内网或任何方式复制到离线机器。

  2. 创建 Python 虚拟环境

    python -m venv openclaw_env
    source openclaw_env/bin/activate  # Linux/macOS
    # 或 openclaw_env\Scripts\activate  # Windows
  3. 离线安装依赖

    • 如果您有 requirements.txt,需要预先在有网的环境下载好所有依赖的 .whl 包,然后离线安装,这较为复杂。
    • 更简单的方式:如果离线机器有基础的 PyTorch(匹配CUDA版本),通常只需安装 transformers, accelerate, tiktoken 等核心库的离线包,您可以将这些包的 wheel 文件提前下载好。
    • 示例(假设您已准备好 wheel 文件):
      pip install torch-2.3.0+cu118-cp38-cp38-linux_x86_64.whl  # 示例
      pip install transformers-4.36.0-py3-none-any.whl
      pip install accelerate-0.27.0-py3-none-any.whl

第三步:运行离线推理

在项目目录下,创建一个简单的 Python 脚本(run_offline.py):

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
model_path = "./openclaw-code-7b"  # 您下载的模型文件夹路径
# 2. 加载 tokenizer 和模型
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    model_path,
    torch_dtype=torch.float16,  # 半精度以节省显存
    device_map="auto",          # 自动分配模型层到可用设备(GPU/CPU)
    trust_remote_code=True
)
# 3. 准备输入(代码补全示例)
prompt = """def quick_sort(arr):
    if len(arr) <= 1:
        return arr
    pivot = arr[len(arr) // 2]
"""
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
# 4. 生成代码
with torch.no_grad():
    outputs = model.generate(
        **inputs,
        max_length=512,
        temperature=0.2,
        do_sample=True,
        top_p=0.95
    )
# 5. 解码输出
generated_code = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(generated_code)

运行脚本:

python run_offline.py

关键注意事项

  • 信任远程代码:由于 OpenCLAW 使用自定义的模型架构,trust_remote_code=True 参数必须加上,否则会报错。
  • 设备映射device_map="auto" 会让 accelerate 库自动将模型分配到可用的 GPU 和 CPU 内存上,如果只有 CPU,请使用 device_map="cpu"
  • 量化:如果您的 GPU 显存较小(如 8GB),可以考虑使用 GPTQAWQ 量化后的版本(如果官方提供),或者使用 bitsandbytes 库进行 8-bit 或 4-bit 加载。
  • 首次运行:第一次加载模型时,transformers 可能会根据本地配置编译一些模型文件,需要几分钟时间,之后加载会变快。

模型路径结构

确保您的本地模型文件夹至少包含以下关键文件:

openclaw-code-7b/
├── config.json
├── configuration_openclaw.py  # 自定义架构文件
├── modeling_openclaw.py       # 自定义模型文件
├── pytorch_model.bin
├── special_tokens_map.json
├── tokenizer_config.json
└── tokenizer.json

离线使用 OpenCLAW 的核心就是:在有网络时下载好模型和依赖,然后在离线环境中配置好路径并加载本地模型文件,这样可以完全摆脱网络限制,实现安全、低延迟的私有化代码生成服务。

如果在具体步骤中遇到问题(如特定的库版本冲突),建议查阅项目仓库的 README.mdrequirements.txt 获取最准确的依赖信息。

标签: 本地模型 路径指定

抱歉,评论功能暂时关闭!