免配置环境运行 (Zero-Config Execution)¶
为了方便开发者快速体验 RecStore 而无需在本地搭建复杂的编译环境,我们提供了基于 GitHub Actions 构建产物的免编译运行方式。
注意
该方式仅支持 Linux 环境,以及由于 Actions 环境限制,构建是纯 CPU 版本,可能不支持 GPU 环境。
由于依赖问题,所以对于使用不同版本 GLIBC 的系统,可能需要升级 / 降级版本,
通过下载云端构建好的二进制包,你可以在标准的 Linux 环境(如 Ubuntu 20.04/22.04)中直接运行 RecStore。
1. 获取构建产物¶
- 进入 RecStore GitHub 仓库的 Actions 页面。
- 点击最新的构建成功(✅ Success)的 Workflow Run(例如 Build (CPU))。
- 在页面底部的 Artifacts 区域,下载以下文件:
packed-bundle: 包含编译好的ps_server可执行文件和lib_recstore_ops.so动态库。torch-wheel: 包含与 RecStore 兼容的 PyTorch 安装包(.whl)。recstore-ops: 包含 RecStore OP 层的动态库(.so)。
2. 环境准备¶
虽然不需要编译环境,但仍需要安装一些基础的运行时依赖。
2.1 准备代码仓库¶
即使是免编译运行,也建议克隆仓库以获取辅助脚本和配置文件:
2.2 安装系统依赖¶
运行仓库中的初始化脚本安装基础工具(如 libgoogle-glog-dev 等运行时库):
2.3 安装 PyTorch¶
解压并安装步骤 1 中下载的 torch-wheel:
3. 部署与运行¶
3.1 解压产物¶
将 packed-bundle 解压并整理到指定目录,模拟构建后的目录结构:
mkdir -p runner
unzip packed-bundle.zip -d runner
tar -xzf runner/packed-ps-server.tar.gz -C runner
tar -xzf runner/packed-recstore-ops.tar.gz -C runner
mkdir -p build/lib
cp -f runner/package/lib/lib_recstore_ops.so build/lib/
[ -d runner/package/deps/lib ] && cp -f runner/package/deps/lib/*.so* build/lib/
3.2 运行参数服务器¶
你可以直接运行 ps_server,或者使用我们提供的 runner.py 封装脚本(它会自动处理一些库路径和环境配置):
export GLOG_logtostderr=1
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)/runner/package/lib:$(pwd)/runner/package/deps/lib
./runner/package/bin/ps_server
# python3 ci/pack/runner.py runner/package bin/ps_server \
# --ready-pattern "listening on" \
# --timeout 180 \
# --keep-alive