用魔搭社区(ModelScope)+ FastAPI 部署一个本地语言模型 API(以 Qwen3-0.6B 为例)
本文详细介绍了如何通过魔搭ModelScope SDK和FastAPI搭建本地Qwen3-0.6B语言模型API服务。主要内容包括:1)从魔搭平台下载模型;2)编写模型封装类AIModel.py;3)开发FastAPI接口app.py;4)服务部署与测试方法。项目支持多种文本生成类模型,代码结构清晰且易于扩展,特别适合国内开发者快速部署中小型语言模型。文章还提供了扩展建议,如添加身份验证、构建网页
目录
一、引言
随着大语言模型的普及,越来越多开发者希望在本地部署并调用这些模型。相比 HuggingFace,国内用户更推荐使用阿里巴巴推出的 魔搭 ModelScope 社区,它不仅提供了丰富的中文文档、一键下载功能,还集成了大量阿里自研模型如 Qwen、M6 等。
本文将手把手教你如何通过 魔搭 SDK + FastAPI 搭建一个基于 Qwen3-0.6B 的本地聊天接口服务。整套代码结构清晰、易于扩展,适用于其他魔搭平台上的 Causal LM 类型模型。
Qwen3-0.6B 具有以下特点:
- 类型:因果语言模型
- 训练阶段:预训练 & 后训练
- 参数数量:0.6B
- 非嵌入参数数量:0.44B
- 层数:28
- 注意力头数(GQA):Q 为 16,KV 为 8
- 上下文长度:32,768
二、技术栈简介
技术 | 说明 |
---|---|
FastAPI | 快速构建 Web 接口,支持异步 |
Uvicorn | ASGI 服务器,用于运行 FastAPI 应用 |
ModelScope | 魔搭提供的 Python SDK,用于加载模型和推理 |
PyTorch | 支持 GPU 加速的深度学习框架 |
三、项目结构
Qwen3-0.6B-Chat-API/
├── app.py # FastAPI 主程序
├── AIModel.py # 魔搭模型封装类
└── Models/ # 存放模型文件(可选)
└── Qwen3-0.6B/ # Qwen3-0.6B 模型目录
四、具体步骤
步骤一:从魔搭下载模型
1.官网地址
2.下载Qwen3-0.6B 模型
访问链接:
通义千问3-0.6B · 模型库 (modelscope.cn)
点击页面上的【下载模型】即可下载完整模型包,该网址也可查询该模型的具体信息
步骤二:依赖导入(重中之重)
为了确保你的项目可以正常运行(基于 FastAPI
+ ModelScope
+ Qwen3-0.6B
),你需要在 Python 环境中安装以下依赖包:
1.基础依赖(必装)
库名 | 版本要求 | 安装命令 | 用途 |
---|---|---|---|
fastapi | >=0.95.0 | pip install fastapi |
构建高性能 API 接口 |
uvicorn | >=0.22.0 | pip install uvicorn |
ASGI 服务器,支持异步请求 |
pydantic | >=2.0.0 | pip install pydantic |
FastAPI 使用的请求体校验工具 |
modelscope | >=1.17.0 | pip install modelscope |
魔搭 SDK,用于加载模型和推理 |
torch | >=2.0.0 | pip install torch |
PyTorch 深度学习框架,模型运行依赖 |
2.可选推荐依赖(提升稳定性或性能)
库名 | 版本要求 | 安装命令 | 用途 |
---|---|---|---|
numpy | >=1.24.0 | pip install numpy |
数据处理底层依赖 |
transformers | >=4.30.0 | pip install transformers |
如果你想兼容 HuggingFace 模型 |
datasets | ==2.14.0 | pip install datasets==2.14.0 |
ModelScope 兼容性依赖 |
packaging | >=23.0 | pip install packaging |
包管理工具 |
requests | >=2.30.0 | pip install requests |
下载模型文件时使用 |
tqdm | >=4.65.0 | pip install tqdm |
显示进度条 |
aiohttp | >=3.8.0 | pip install aiohttp |
异步网络请求支持 |
huggingface-hub | >=0.14.0 | pip install huggingface-hub |
支持从 HF Hub 加载模型 |
步骤三:编写模型封装类——AIModel.py
创建 AIModel.py
文件,定义一个基于魔搭 SDK 的模型封装类:
# AIModel.py
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
class Qwen3_0_6B:
def __init__(self, model_path="Models/Qwen3-0.6B", device="cpu"):
self.model_path = model_path
self.device = device
print(f"Loading model from {model_path} using ModelScope...")
self.chat_pipeline = pipeline(task=Tasks.text_generation, model=model_path)
print("Model loaded successfully.")
def chat(self, input_text, max_new_tokens=100):
result = self.chat_pipeline(input_text, max_length=max_new_tokens)
return result["text"]
注意:
- 使用了
modelscope.pipeline
来统一处理文本生成任务。 Tasks.text_generation
是魔搭预定义的任务类型之一。max_length
参数控制生成的最大 token 数量,等价于 HuggingFace 中的max_new_tokens
。
步骤四:编写 FastAPI 接口——app.py
创建 app.py
文件,编写 FastAPI 接口:
# app.py
from fastapi import FastAPI
from pydantic import BaseModel
from AIModel import Qwen3_0_6B
import uvicorn
app = FastAPI()
print("Initializing Qwen3-0.6B model via ModelScope...")
model = Qwen3_0_6B(device="cpu") # 可改为 "cuda" 如果你有 GPU
# 请求体模型
class ChatRequest(BaseModel):
prompt: str
max_new_tokens: int = 100
@app.get("/")
def read_root():
return {"message": "Qwen3-0.6B API is running!"}
@app.post("/chat")
def chat(request: ChatRequest):
response = model.chat(request.prompt, request.max_new_tokens)
return {
"code": 200,
"message": "操作成功",
"data": {
"response": response
}
}
if __name__ == "__main__":
uvicorn.run(app, host="127.0.0.1", port=8000, workers=1)
步骤五:启动服务并测试 API
1.运行app.py
方法一:直接运行
在编程软件上点击运行按钮进行直接运行,例如IDEA、pycharm等
方法二:终端运行
在终端运行
python app.py
2.测试
服务将在 http://127.0.0.1:8000
启动,你可以使用 curl 测试接口:
curl -X POST "http://127.0.0.1:8000/chat" \
-H "Content-Type: application/json" \
-d '{"prompt":"你好","max_new_tokens":100}'
如果能看到
{
"code": 200,
"message": "操作成功",
"data": {
"response": "你好....."
}
}
说明已经部署成功了,当然你也可以访问 http://127.0.0.1:8000/docs
查看自动生成的 API 文档。
五、代码扩展性与适配性建议
1.支持的模型类别
这套代码适用于所有魔搭平台上提供且支持 text_generation
任务的模型,包括但不限于:
- Qwen 系列(Qwen3-0.6B、Qwen2-7B、Qwen3-8B)
- Phi-3-mini / Phi-2(微软小型模型)
- Llama3 / Mistral(可通过魔搭镜像源获取)
2.不适用的情况
以下情况需要额外调整代码:
- 使用非
text_generation
任务的模型(如图像理解、语音识别等) - 使用特殊 Tokenizer 或解码逻辑的模型
六、总结
本文介绍了如何使用 魔搭 ModelScope SDK + FastAPI 快速搭建一个本地语言模型服务,并提供了一个通用的接口模板。通过简单的模型路径替换,你就可以部署任何兼容的魔搭模型。这套方案非常适合国内开发者使用,尤其适合没有访问 HuggingFace 权限或网络受限的场景。由于模型不是很大,适用于部署配置不是很好的服务器和电脑,因为大模型所需要的资源一般学习者很难带动。小模型可用于学习构建过程,提升自我代码水平。
七、拓展建议
- 将模型部署到远程服务器,供多用户访问。
- 添加身份验证(Token 认证)保护接口安全。
- 使用前端页面对接
/chat
接口,实现网页版对话界面。 - 结合 LangChain 构建更复杂的 Agent 系统。
八、致谢和参考资料
- 魔搭 ModelScope 官方文档:文档中心 · 魔搭社区 (modelscope.cn)
- FastAPI 官方文档:FastAPI (tiangolo.com)
九、结语
如果你喜欢这篇文章,欢迎点赞、收藏、分享给更多开发者朋友。如果你在部署过程中遇到问题,也欢迎留言交流!谢谢!!!
附录
如果想了解springboot后端如何调用该API可以查看我的另一篇文章,当然key得看自己的需求对python代码进行修改满足其安全性。

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)