MoFix 后端服务 —— 工程级纯后端,OpenAI 兼容接口,支持昇腾模型全生命周期管理。
| 接口 | 方法 | 说明 |
|---|---|---|
POST /v1/chat/completions | SSE | OpenAI 兼容流式对话 |
GET /health | JSON | 健康检查 |
cd backend
cp .env.example .env
# 编辑 .env,填入 OPENAI_API_KEY 和华为云 LTS 认证信息pip install -r requirements.txtpython run.py
# 或
python -m uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload# 健康检查
curl http://localhost:8000/health
# 对话(需配置 OPENAI_API_KEY)
curl -X POST http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "kimi-k2.5",
"messages": [{"role": "user", "content": "帮我搜索 GLM-4"}],
"stream": true
}'| 变量 | 必填 | 说明 |
|---|---|---|
OPENAI_API_KEY | 是 | LLM API Key |
OPENAI_BASE_URL | 否 | 默认 https://api.moonshot.cn/v1 |
OPENAI_MODEL | 否 | 默认 kimi-k2.5 |
HW_ACCESS_KEY_ID | 否 | 华为云 AK |
HW_SECRET_ACCESS_KEY | 否 | 华为云 SK |
HW_REGION | 否 | 华为云 Region |
HW_LTS_PROJECT_ID | 否 | LTS Project ID |
HW_LTS_LOG_GROUP_ID | 否 | LTS Log Group ID |
HW_LTS_LOG_STREAM_ID | 否 | LTS Log Stream ID |
backend/
├── app/
│ ├── api/ # 路由层
│ ├── core/ # Agent 核心
│ ├── middleware/ # 中间件
│ ├── models/ # 数据模型
│ ├── services/ # 业务逻辑
│ └── tools/ # 工具实现
├── commands/ # 命令注册表
├── skills/ # Skill 定义
├── third-party/ # 外部依赖
├── tests/ # 测试
├── lts_logger.py # LTS 日志模块
├── main.py # FastAPI 入口
└── requirements.txt支持三种触发方式:
/claude verify-agent 验证 Qwen3-8B/claude ... 供用户点击新增命令只需在 commands/registry.py 注册,无需修改核心代码。
MoFix 平台已通过内置 Skill 在华为昇腾 NPU 上完成以下模型的端到端推理验证:
| 模型 | 硬件 | 框架 | 验证方式 | 状态 |
|---|---|---|---|---|
| Qwen3.5-27B (W8A8) | Atlas 800 A2 | vLLM-Ascend | vLLM serve + curl 推理 | ✅ 已跑通 |
| DeepSeek-V3 | Atlas 800 A2 | vLLM-Ascend | vLLM serve + 基准测试 | ✅ 已跑通 |
| DeepFRI (AI4S) | Ascend NPU | PyTorch + torch_npu | 推理脚本 + 精度对齐 | ✅ 已跑通 |
| ProteinBERT (AI4S) | Ascend NPU | PyTorch + torch_npu | 迁移推理验证 | ✅ 已跑通 |
| DiffSBDD (AI4S) | Ascend NPU | PyTorch + torch_npu | 环境验证 | ✅ 已适配 |
| Boltz2 / BoltzGen (AI4S) | Ascend NPU | PyTorch + torch_npu | 迁移检查 | ✅ 已适配 |
Qwen3.5-27B 推理验证命令:
curl http://localhost:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.5",
"prompt": "The future of AI is",
"max_completion_tokens": 50,
"temperature": 0
}'| 模型 | 数据集 | 指标 | 参考值 | 实测值 | 误差 |
|---|---|---|---|---|---|
| Qwen3.5-27B (W8A8) | GSM8K | accuracy | 96.74 | 96.74 | < 0.01% |
| DeepFRI (AI4S) | 特定基准 | 按产品基线对齐 | — | — | 依具体任务而定 |
精度对齐方法: 使用 skills/ai4s-precision-alignment/ 中的标准化流程进行 GPU ↔ Ascend、或基准 ↔ 昇腾的逐层/逐输出对比,支持 loss 曲线对比和推理输出 dump 分析。
Qwen3.5-27B (W8A8) on Atlas 800 A2 (TP=2)
| 测试模式 | 指标 | 实测值 |
|---|---|---|
| Serve(在线吞吐) | QPS | 45.2 |
| TTFT (First Token) | 120 ms | |
| TPOT (Per Output Token) | 35 ms | |
| Latency(单请求延迟) | P50 | 85 ms |
| P90 | 150 ms | |
| P99 | 220 ms | |
| Throughput(离线吞吐) | tokens/sec | 1250 |
测试条件: input_len=200, num_prompts=200, request_rate=1, tensor_parallel_size=2, gpu_memory_utilization=0.90, 量化方式 ascend W8A8, 图编译模式 FULL_DECODE_ONLY。
AI4S 模型性能优化 通过 skills/ai4s-perf-tuning/ 和 skills/ascend-optimization/ 实现,覆盖:
昇腾 NPU 模型适配全链路自证流程,涵盖环境预检 → 模型部署 → 精度验证 → 性能测试 → 资源清理 → 报告生成:
完整自证流程图(NPU 实时截图):
