首页
/ 告别网络依赖:RD-Agent全流程离线部署指南

告别网络依赖:RD-Agent全流程离线部署指南

2026-02-04 05:10:47作者:田桥桑Industrious

你是否曾因网络限制无法部署AI研发工具?是否在涉密环境中难以配置自动化研发流程?本文将带你实现RD-Agent(Research and Development Agent)的完全离线部署,无需外部网络即可搭建AI驱动的自动化研发环境。读完本文后,你将掌握离线环境准备、本地模型配置、依赖包管理和离线运行验证的全流程解决方案。

离线部署准备清单

在开始部署前,请确保已准备以下环境和资源:

类别 具体要求 检查方法
操作系统 Linux (推荐Ubuntu 20.04+) lsb_release -a
硬件资源 最低16GB内存,建议GPU支持 nvidia-smi (如无GPU可忽略)
必备软件 Docker 20.10+ docker --version
离线资源 RD-Agent源码、Python依赖包、本地LLM模型 项目仓库

⚠️ 注意:离线部署需提前在有网络环境中下载所有必要资源,建议准备一个至少100GB的移动存储设备用于传输。

第一步:获取离线安装包

1.1 克隆项目源码

在有网络环境中克隆RD-Agent仓库并打包:

git clone https://gitcode.com/GitHub_Trending/rd/RD-Agent
cd RD-Agent
tar -czvf rd-agent-offline.tar.gz .

将生成的rd-agent-offline.tar.gz传输到目标离线服务器并解压:

tar -xzvf rd-agent-offline.tar.gz -C /opt/
cd /opt/RD-Agent

1.2 下载Python依赖包

创建依赖缓存目录并下载所有依赖:

mkdir -p /opt/pip-offline-cache
pip download -r requirements.txt -d /opt/pip-offline-cache
pip download -r docs/requirements.txt -d /opt/pip-offline-cache

依赖清单可参考项目根目录下的requirements.txt和文档依赖docs/requirements.txt

第二步:配置Docker离线环境

2.1 安装Docker离线包

Docker官方离线安装页面下载对应系统的二进制包,传输到离线服务器后安装:

# 解压Docker二进制包
tar -xzvf docker-20.10.24.tgz
cp docker/* /usr/bin/

# 注册为系统服务
cat > /etc/systemd/system/docker.service << EOF
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com

[Service]
ExecStart=/usr/bin/dockerd
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

# 启动Docker服务
systemctl daemon-reload
systemctl start docker
systemctl enable docker

验证Docker安装状态:

docker info

2.2 加载基础镜像

RD-Agent需要多个基础Docker镜像,提前在有网络环境中拉取并保存:

# 在有网络环境中
docker pull python:3.10-slim
docker pull nvidia/cuda:11.7.1-cudnn8-runtime-ubuntu20.04
docker save -o python-3.10-slim.tar python:3.10-slim
docker save -o cuda-11.7.tar nvidia/cuda:11.7.1-cudnn8-runtime-ubuntu20.04

传输镜像文件到离线服务器并加载:

docker load -i python-3.10-slim.tar
docker load -i cuda-11.7.tar

第三步:配置本地LLM模型

RD-Agent支持离线运行Llama2等开源大语言模型,相关配置位于rdagent/oai/llm_conf.py

3.1 修改配置文件

# rdagent/oai/llm_conf.py
class LLMSettings(ExtendedBaseSettings):
    # 启用本地Llama2模型
    use_llama2: bool = True
    llama2_ckpt_dir: str = "/opt/llama2/Llama-2-7b-chat"
    llama2_tokenizer_path: str = "/opt/llama2/Llama-2-7b-chat/tokenizer.model"
    
    # 禁用需要网络的云服务
    use_gcr_endpoint: bool = False
    chat_use_azure: bool = False

3.2 部署Llama2模型

将Llama2模型文件传输到配置中指定的路径:

mkdir -p /opt/llama2
tar -xzvf Llama-2-7b-chat.tar.gz -C /opt/llama2/

模型文件获取需遵守Meta的使用许可,建议通过Hugging Face Hub下载

第四步:离线安装RD-Agent

4.1 安装Python依赖

使用本地缓存的依赖包安装:

pip install --no-index --find-links=/opt/pip-offline-cache -r requirements.txt
pip install --no-index --find-links=/opt/pip-offline-cache -e .

4.2 配置环境变量

创建.env文件配置离线模式:

# 基础配置
RUNTIME_ENV=offline
LOG_LEVEL=INFO

# 本地模型配置
USE_LLAMA2=True
LLAMA2_CKPT_DIR=/opt/llama2/Llama-2-7b-chat
LLAMA2_TOKENIZER_PATH=/opt/llama2/Llama-2-7b-chat/tokenizer.model

# 缓存设置(启用离线缓存)
USE_CHAT_CACHE=True
USE_EMBEDDING_CACHE=True
DUMP_CHAT_CACHE=True
DUMP_EMBEDDING_CACHE=True
PROMPT_CACHE_PATH=/opt/rdagent/prompt_cache.db

第五步:验证离线部署

5.1 运行基础功能测试

执行项目内置的离线测试用例:

python -m test.utils.test_misc
python -m test.utils.test_env

5.2 启动离线UI界面

RD-Agent提供离线日志查看界面,配置位于rdagent/log/ui/

# 启动本地Web UI
cd rdagent/log/server
python app.py --offline

访问http://localhost:8000即可查看离线日志和任务状态,界面实现代码可参考rdagent/log/ui/app.py

5.3 运行示例场景

尝试运行离线数据科学场景(需提前准备示例数据):

# 使用本地模式运行数据科学场景
rdagent run --scenario data_science --offline --data-path /opt/offline-data

场景配置详情可参考rdagent/scenarios/data_science/目录下的实现。

常见问题解决

依赖冲突

症状pip install时出现版本冲突
解决:使用项目提供的约束文件安装特定版本:

pip install --no-index --find-links=/opt/pip-offline-cache -c constraints/3.10.txt -r requirements.txt

约束文件位于constraints/目录,包含不同Python版本的兼容性配置。

Docker镜像加载失败

症状docker load时报错"no space left on device"
解决:清理系统空间或扩大Docker存储:

# 查看镜像占用
docker system df

# 清理未使用镜像
docker image prune -a

本地模型运行缓慢

症状:Llama2模型推理速度慢
解决:修改模型配置使用CPU优化参数:

# rdagent/oai/llm_conf.py
llama2_max_batch_size: int = 4  # 降低批处理大小
llama2_num_threads: int = 8     # 设置CPU线程数

离线部署架构说明

RD-Agent的离线部署架构主要通过三个层面实现网络隔离:

graph TD
    A[离线环境] --> B[本地存储层]
    B --> C[模型缓存]
    B --> D[依赖缓存]
    B --> E[数据缓存]
    A --> F[计算层]
    F --> G[Docker容器]
    F --> H[本地LLM]
    A --> I[应用层]
    I --> J[RD-Agent核心]
    I --> K[离线UI]

总结与后续优化

通过本文档的步骤,你已成功在无网络环境中部署RD-Agent。为进一步优化离线体验,建议:

  1. 定期更新离线资源包,保持与项目仓库同步
  2. 扩展本地模型支持,可参考rdagent/oai/llm_conf.py添加其他开源模型
  3. 优化缓存策略,配置文件中的缓存参数可根据实际需求调整

更多高级配置可参考官方文档docs/installation_and_configuration.rst,如有部署问题可查看项目的SUPPORT.md获取帮助。

登录后查看全文
热门项目推荐
相关项目推荐