【中级】FastAPI 本地大模型服务
更新日志
| 版本 | 日期 | 变更描述 |
|---|---|---|
| 1.0.0 | 2026-03-10 | 初始版本,包含在 MTT AIBOOK 上完成基于 FastAPI 可视化界面的本地大模型 API 服务化 |
1. 项目简介
本教程旨在指导开发者在 MTT AIBOOK 上通过 FastAPI 完成本地大模型 API 服务化以及快速构建前端界面。
FastAPI 简介: FastAPI 是一款功能强大的开源现代 Python Web 框架,专为构建高性能 API 服务和敏捷开发场景设计。它整合了基于 Pydantic 的自动数据验证、原生异步(Asyncio)并发处理、自动生成交互式 API 文档以及严格的类型提示等核心功能。
难度:中级,适合有编程基础的开发者体验
2. 前置条件
在开始本教程之前,请确保您已满足以下所有条件:
- 硬件要求:
- AI 算力本 MTT AIBOOK,型号 A141
- 网络连接(用于下载模型及依赖包)
- 充足的存储空间(模型文件通常需要数 GB 到几十 GB 空间)
- 软件要求:
- MTT AIBOOK 操作系统 AIOS(1.3.3-B17)及以上版本
- 已安装 Python 3.10 或更高版本(
Python --version验证) - 已安装 pip 包管理工具(
pip --version验证) - vLLM-MUSA 推理框架(vLLM 已预装),当前版本对齐 vLLM 社区 0.9.2 版本
3. 环境部署
本章节描述如何获取模型文件并完成环境配置。
3.1 工具安装
安装 git-lfs 来下载大型文件:
sudo apt install git-lfs
git lfs install
3.2 下载模型
当前版本对齐 vLLM 社区 v0.9.2,可以在 Hugging Face / ModelScope 直接下载开源模型。对于量化模型,我们提供加速版模型。本教程提供 Qwen2.5-7B GPTQ 模型作为示例:
git clone https://www.modelscope.cn/hiruyun/gptq-Qwen2.5-7B-Instruct-v2.git
模型将下载到当前目录下的 gptq-Qwen2.5-7B-Instruct-v2 文件夹。
4. 最佳实践
场景 1:vLLM 启动模型
1. 脚本编写
通过脚本方式启动 vLLM 服务,提供模型推理 API:
注:vLLM server 后面跟的是下载模型的位置,请替换成自己的
vLLM_start.sh:
#!/bin/bash
# 注意:这里可能会提示输入 Linux 用户的密码
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
echo "✅ 内存清理完成!"
# 设置 Triton 编译缓存目录
export TRITON_CACHE_DIR="/tmp/triton"
# 启动 vLLM 模型,请替换自己的模型路径
vLLM serve /home/devtech/下载/models/gptq-Qwen2.5-7B-Instruct-v2 \
--tensor-parallel-size 1 \
--gpu-memory-utilization 0.7 \
--quantization gptq \
--block-size 32 \
--num-gpu-blocks-override 1024 \
--max-model-len 16384 \
--swap-space 0 \
--enforce-eager \
--port 8000
2. 设计思考
- 资源预留:通过
--gpu-memory-utilization 0.7预留了 30% 显存,防止 FastAPI 进程或其他应用抢占显存导致 OOM(内存溢出) - 兼容性设计:vLLM 默认提供与 OpenAI 格式对齐的接口,这使得前端业务代码可以无缝切换不同的后端模型
3. 预期现象

场景 2:FastAPI 快速调用
1. 启动场景 1 的大模型
bash vLLM_start.sh
设计思考:
- 服务解耦:将推理层(vLLM)与业务层(FastAPI)分离,可以确保业务逻辑的修改不会导致模型重新加载,极大提升开发效率