SuperAPI AI 工具集

setup-evo2-remote-tool

数据与分析

查看项目

更新于 10-20 04:54

技能介绍

用途:该技能用于在 ToolUniverse 框架中把 Evo 2 配置并运行为一个远程工具(MCP 服务),可选通过 ToolUniverse Connect 中继对外共享。Evo 2 是面向基因组序列的模型,本工具暴露评分与嵌入两类调用。

主要能力:

  • run_evo2_score:输入 DNA 序列,返回逐条记录的对数似然(scores 数组)与序列长度(sequence_lengths)。
  • run_evo2_embed:默认返回 4096 维平均池化向量;对超大的 position_range 按浮点数量拒绝而非截断(4096 宽度下即四个位置),完整矩阵以 .npy 文件路径返回,不内联。
  • 服务以 Streamable HTTP 形式监听 http://127.0.0.1:8041/mcp,模型在请求之间常驻显存。

验证状态(资料标注为 2026-10-01):Evo 2 7B 在 NVIDIA GB10(aarch64,cc 12.1)上按优化套件的精确模式跑通。需为该架构额外构建两项:从源码编译 flash-attn(约 2 小时;缺少时 import evo2 无法工作,因为 vortex/model/rotary.py 未加保护地导入它,所以 mode = "off" 并不能绕过),以及为 Triton 准备 CUDA 12.9 的 ptxas(自带版本低于该卡要求)。在四次连续相同请求加一段混合形状序列上验证:首次调用耗时 243 秒(读取 12.8 GiB 检查点),之后每个 1024 bp 窗口 5.6–6.5 秒。显存峰值在 1024 bp 时为 16.82 GiB,8192 bp 时仅升至 19.98 GiB(长度 8 倍、显存 1.19 倍,7B 参数项占主导)。evo2_40b 不适用于此提供商:其权重 76.6 GiB,需要两张可见设备做 vortex 层切分,并通过 Transformer Engine 使用 FP8,本机均不具备。公开出版、跨用户隔离、并发、恢复与评分质量均未测试,资料建议保持私有部署。

使用方式:

  1. 前置条件:在 Linux、Python 3.12.3 下从 ToolUniverse 仓库根目录运行;需要 CUDA GPU(模型常驻,CPU 不是目标);提供商数据、权重、缓存与凭证须放在 Git 之外;绑定回环地址,非回环绑定需要 TOOLUNIVERSE_API_TOKEN 且不得写入参数或结果。
  2. 契约检查:python scripts/remote_validation/setup_skill_preflight.py --implementation evo2;导出提供商资源后加 --check-provider-env,服务启动后加 --live 验证 MCP 工具集(不跑模型),共享前加 --check-connect-prereqs(仅报告密钥是否设置)。
  3. 创建两个环境:MCP 服务器环境与模型环境彼此不可互相导入。服务器侧:python3 -m venv .venvs/evo2,激活后升级 pip,python -m pip install -e .,再装 fastmcp。模型侧位于 TOOLUNIVERSE_EVO2_PYTHON 所指向路径,需先在该路径建空解释器(如 python3 -m venv ~/evo2-venv),再由 tu remote setup --only environment 依据 requirements.lock 以 --no-deps 填充。
  4. 导出 EVO2_OPT_WEIGHTS 与 TOOLUNIVERSE_EVO2_PYTHON,运行 tu remote setup evo2(五步:preflight、environment、kit、weights、smoke,可用 --only 单步执行)。smoke 步会持有模型、发一次请求、校验输出并把实测显存峰值写入 ~/.cache/tooluniverse/measured/evo2.json。
  5. 权重:EVO2_OPT_WEIGHTS 指向存放 evo2_7b.pt(12.8 GiB,sha256 校验)的平铺目录;请求时不拉取任何文件,清单声明每个权重文件的大小与 sha256,启动时若不符则拒绝。
  6. 本地启动:python -m tooluniverse.remote.evo2.evo2_tool,然后在另一 shell 用 fastmcp 客户端列出工具,确认包含 run_evo2_score。
  7. 共享:先安装 tuplatform-connect 0.3.0 的固定 SHA-256 轮子(未发布到 PyPI),再 tu remote login(支持浏览器设备授权,无头机器加 --no-browser),之后 tu remote share evo2 即可;也可用 tu remote check / tu remote run 做只读检查或纯本地前台服务。
  8. 示例调用:经本地 MCP 端点调用 run_evo2_score,传入 sequence 参数,返回 scores 与 sequence_lengths。

性能与调优:使用单 worker,常驻 worker 设计上一次只服务一个请求,第二个在途请求会在锁上排队而非翻倍显存;在同卡共置其他负载前先读 vram_budget_gb 与实测文件;测试需覆盖冷启动、至少四次连续相同请求、混合形状序列,再做 1/2/4/8(内存允许时 16)级并行,记录成功率、p50/p95、峰值内存/显存、利用率、排队、取消清理与恢复;只有单飞初始化与可恢复的 OOM/超时行为被证明后才增加 worker。

限制与排查:每一步拒绝都会指明问题并给出修复,退出码 3 为拒绝、1 为失败;worker 日志在 ~/.cache/tooluniverse/remote-logs/evo2-resident.log;模型侧导入失败可重跑 --only environment;权重不符时保留文件供检查后手动删除并重跑 --only weights;非回环绑定出现 401/403 需配置匹配的 bearer 认证;服务与中继用 Ctrl-C 停止,可用 tuplatform-service uninstall --name validation-evo2 卸载;注意 worker 可能比服务器存活更久,用 nvidia-smi 查询确认显存释放;撤销临时密钥后只删除 .venvs/evo2 与提供商缓存目录,切勿宽泛递归删除。该实现未经过 Platform 矩阵验证,所有证据均为单卡回环端点本地测试;请只使用实现 README 链接的官方上游文档,不要换用第三方模型镜像。