前言:作为一名AI开发者,相信很多人都踩过「中文大模型部署」的坑——选模型踩雷、推理速度慢、显存不够用、嵌入模型检索不准,折腾半天还是无法落地。今天结合实操经验,把「最稳中文大模型组合」的完整部署流程讲透,从模型获取、vLLM加速,到嵌入模型使用、简单RAG实战,新手也能10分钟上手,全程干货无废话,收藏起来!

核心亮点:无需复杂调参,选用业界公认「中文最稳组合」,兼顾效果、部署难度和商用合规,适配消费级显卡(8G显存即可跑通),适合做本地服务、RAG知识库、聊天机器人等场景。

一、先明确:我们要部署的「中文最稳组合」

先避开“模型选型坑”,直接上两套组合,按需选择:

组合1:通用稳配(首选,中文全能,8G显存可跑)

  • 生成模型:Qwen3-7B-Instruct(阿里通义千问开源版)—— 中文理解、生成、长文本能力拉满,指令遵循度高,生态完善,支持商用。

  • 嵌入模型:BGE-M3(智源AI)—— 中文检索天花板,召回率碾压同级,支持长上下文(8192 tokens),RAG场景标配。

  • 加速工具:vLLM —— 推理并发提升5-10倍,显存占用降低30%+,完美适配Qwen,生产环境必用。

组合2:轻量稳配(低算力首选,6G显存可跑)

  • 生成模型:ChatGLM3-6B(智谱AI)—— 中文老牌模型,新手友好,部署最简单,文档最完善。

  • 嵌入模型:m3e-large(MokaAI)—— 轻量高效,中文语义匹配准,安装简单,与ChatGLM联动丝滑。

  • 加速工具:vLLM —— 轻量组合也能拉满性能,性价比首选。

补充说明

很多人问Llama系列,这里统一回复:Llama 3(Meta开源)是国际标杆,但中文表现不如Qwen/ChatGLM3,做中文应用优先选上面两套;vLLM不是模型,是「大模型推理加速器」,专门解决“模型跑的慢、显存不够用”的问题,所有主流开源大模型都能适配。

1. Llama 是什么?

Llama 是 Meta(Facebook)开源的大语言模型

  • 你可以把它理解成一个通用 AI 大脑:能聊天、写文案、回答问题、做总结、写代码。
  • Llama 3 8B 就是它的一个版本:80 亿参数,小而强,普通人用显卡就能跑。

简单说:Llama = 可以本地部署的开源大模型本体。


2. vLLM 是什么、有什么用?

vLLM 是 专门给大模型提速、提高并发的推理引擎

作用一句话:让 Llama 这类大模型跑得更快、能同时服务更多人,显存用得更少。

更通俗:

  • 不用 vLLM:大模型推理慢、一次只能处理一两个请求。
  • 用了 vLLM:并发高很多、延迟低,适合真正拿来做服务、做产品。

vLLM = 大模型的 “高性能加速器”。

二、前置准备:环境配置(必做,一步到位)

无论哪套组合,先配置基础环境,Windows、Mac、Linux通用(优先推荐Linux/Mac,GPU兼容性更好),全程用pip安装,无需复杂编译。

1. 基础依赖安装

# 升级pip(避免安装失败)
pip install --upgrade pip

# 安装核心依赖(vLLM+嵌入模型依赖+PyTorch)
# PyTorch需匹配自己的显卡,建议安装1.18+版本
pip install vllm sentence-transformers torch git-lfs

2. 显卡要求(关键,避免显存不足)

  • 组合1(Qwen3-7B+BGE-M3):最低8G显存(推荐10G+,更流畅),如RTX 3060/4060/4070。

  • 组合2(ChatGLM3-6B+m3e-large):最低6G显存,如RTX 3050/4050。

  • 无独立显卡:不建议部署7B/6B模型,可尝试更小参数模型(如Qwen1.5-4B),但体验一般。

三、核心步骤1:模型获取(两种方式,解决网络坑)

所有模型均托管在Hugging Face(开源模型官方仓库),新手优先选「自动下载」,网络慢/下载失败选「手动下载」(用国内镜像,速度翻倍)。

方式1:自动下载(最省事,推荐新手)

无需手动下载,后续运行代码/启动vLLM时,会自动从Hugging Face下载模型到本地(首次下载慢,后续复用,默认路径:~/.cache/huggingface)。

示例:启动Qwen3-7B-Instruct时,直接指定模型名,会自动下载。

方式2:手动下载(解决网络超时,国内镜像)

先安装git-lfs(模型文件较大,必须用这个工具),再克隆模型仓库(用hf-mirror国内镜像,比官方快10倍)。

# 1. 安装git-lfs(已安装可跳过)
git lfs install

# 2. 克隆模型(按需选择,复制对应命令)
# 克隆Qwen3-7B-Instruct(组合1生成模型)
git clone https://hf-mirror.com/Qwen/Qwen3-7B-Instruct

# 克隆ChatGLM3-6B(组合2生成模型)
git clone https://hf-mirror.com/THUDM/ChatGLM3-6B

# 克隆BGE-M3(组合1嵌入模型)
git clone https://hf-mirror.com/FlagAI-Open/BGE-M3

# 克隆m3e-large(组合2嵌入模型)
git clone https://hf-mirror.com/moka-ai/m3e-large

克隆完成后,模型会保存在当前目录,后续使用时,直接指定本地模型路径即可(比如:./Qwen3-7B-Instruct)。

四、核心步骤2:vLLM使用(加速生成模型,关键一步)

vLLM的核心作用是「让大模型跑得更快、显存用得更少、支持更多并发」,用法很简单:启动推理服务 → 调用服务。

1. vLLM安装验证

安装完成后,运行以下命令,无报错即安装成功:

vllm --version

2. 启动vLLM推理服务(分两种组合)

启动服务后,会占用部分显存,保持终端运行即可(关闭终端,服务停止)。

示例1:启动组合1(Qwen3-7B-Instruct)
# 自动下载模型+启动服务(端口8000,可自定义)
vllm serve Qwen/Qwen3-7B-Instruct \
  --port 8000 \
  --tensor-parallel-size 1 \  # 单显卡填1,多卡填对应数量(如2张卡填2)
  --gpu-memory-utilization 0.8  # 显存利用率,8G显存建议0.7,10G+填0.8-0.9

# 若已手动下载模型,用本地路径(推荐,避免重复下载)
vllm serve ./Qwen3-7B-Instruct \
  --port 8000 \
  --tensor-parallel-size 1 \
  --gpu-memory-utilization 0.8
示例2:启动组合2(ChatGLM3-6B)
# ChatGLM3需要加--trust-remote-code参数,加载自定义代码
vllm serve THUDM/ChatGLM3-6B \
  --port 8000 \
  --trust-remote-code \
  --tensor-parallel-size 1 \
  --gpu-memory-utilization 0.8

# 手动下载后,本地路径启动
vllm serve ./ChatGLM3-6B \
  --port 8000 \
  --trust-remote-code \
  --tensor-parallel-size 1
启动成功标志

终端显示「Uvicorn running on http://0.0.0.0:8000」,说明服务启动成功,可正常调用。

3. 调用vLLM服务(生成文本,Python代码)

vLLM兼容OpenAI API格式,调用方式简单,直接复制代码,修改prompt即可生成文本。

import requests
import json

# 1. 配置请求信息(模型名和启动时一致)
url = "http://localhost:8000/v1/completions"
headers = {"Content-Type": "application/json"}
data = {
    "model": "Qwen/Qwen3-7B-Instruct",  # 若用ChatGLM3,改为THUDM/ChatGLM3-6B
    "prompt": "帮我写一段介绍中文大模型本地部署的文案,100字左右,通俗易懂",  # 自定义prompt
    "max_tokens": 200,  # 生成文本最大长度,按需调整
    "temperature": 0.7,  # 随机性:0=严谨(适合问答),1=灵活(适合创作)
    "stream": False  # 非流式输出,新手首选
}

# 2. 发送请求,获取生成结果
try:
    response = requests.post(url, headers=headers, json=data)
    response.raise_for_status()  # 捕获请求错误
    result = json.loads(response.text)
    # 打印生成结果
    print("生成结果:\n", result["choices"][0]["text"])
except Exception as e:
    print("调用失败:", str(e))

运行代码后,即可快速得到生成结果,比直接用Transformers库调用快5-10倍,显存占用也会明显降低。

五、核心步骤3:嵌入模型使用(BGE-M3/m3e-large)

嵌入模型的作用是「将文本转为向量」,用于RAG检索、文本相似度计算、知识库匹配等场景,无需vLLM,用sentence-transformers库直接调用,用法统一。

1. 嵌入模型调用(分两种组合,代码可直接复制)

示例1:使用BGE-M3(组合1,检索首选)
from sentence_transformers import SentenceTransformer
from sklearn.metrics.pairwise import cosine_similarity

# 1. 加载模型(自动下载或本地路径)
# 自动下载:model = SentenceTransformer("FlagAI-Open/BGE-M3")
# 手动下载后,本地路径加载(推荐)
model = SentenceTransformer("./BGE-M3")

# 2. 待向量化的文本(可单句、可列表,适合批量处理)
texts = [
    "vLLM是大模型推理加速引擎,能提升并发、降低显存占用",
    "Qwen3-7B-Instruct是阿里开源的中文大模型,适合本地部署",
    "BGE-M3是中文嵌入模型,检索效果优于同类模型"
]

# 3. 生成文本向量(核心操作,归一化提升检索效果)
embeddings = model.encode(
    texts,
    normalize_embeddings=True,  # 必须归一化,否则相似度计算不准
    max_length=8192  # BGE-M3支持长文本,按需调整
)

# 4. 查看结果(向量维度:BGE-M3为1024维)
print("向量维度:", embeddings.shape)  # 输出 (3, 1024),3个文本,每个1024维
print("第一个文本的向量前10位:", embeddings[0][:10])

# 5. 计算文本相似度(RAG核心功能,匹配相关文本)
similarity = cosine_similarity([embeddings[0]], [embeddings[1]])
print("文本1和文本2的相似度:", round(similarity[0][0], 4))  # 相似度越接近1,越相关
示例2:使用m3e-large(组合2,轻量首选)
from sentence_transformers import SentenceTransformer

# 加载模型(自动下载或本地路径)
# model = SentenceTransformer("moka-ai/m3e-large")
model = SentenceTransformer("./m3e-large")

# 生成向量(用法和BGE-M3完全一致)
text = "中文大模型本地部署,首选Qwen+ChatGLM3,配合vLLM加速"
embedding = model.encode(text, normalize_embeddings=True)

# 查看向量维度(m3e-large也是1024维,与BGE-M3兼容)
print("m3e-large向量维度:", embedding.shape)  # 输出 (1024,)

2. 关键注意事项

  • 嵌入模型无需加速,本身轻量,6G显存可轻松运行。

  • 生成向量时,必须加「normalize_embeddings=True」,否则相似度计算会失真。

  • 若用于RAG,建议将文本拆分(如每段200字),再生成向量,检索效果更好。

六、实战案例:简单RAG检索增强生成(落地核心)

结合上面的生成模型(vLLM启动)和嵌入模型,做一个简单的RAGdemo——先检索相关文本,再让大模型基于检索结果生成回答,比纯生成更精准(适合知识库问答)。

from sentence_transformers import SentenceTransformer
from sklearn.metrics.pairwise import cosine_similarity
import requests
import json

# 第一步:初始化嵌入模型(用BGE-M3为例)
embedding_model = SentenceTransformer("./BGE-M3")

# 第二步:构建简单知识库(实际场景可替换为本地文档、数据库)
knowledge_base = [
    "vLLM是一款高效的大模型推理引擎,核心技术是PagedAttention,能高效管理KV Cache,提升吞吐量5-10倍。",
    "Qwen3-7B-Instruct是阿里通义千问开源的70亿参数大模型,中文表现优秀,8G显存可本地部署,支持商用。",
    "BGE-M3是智源AI推出的中文嵌入模型,支持长上下文8192 tokens,检索召回率在中文领域处于领先水平。",
    "ChatGLM3-6B是智谱AI推出的60亿参数中文大模型,新手友好,部署简单,6G显存即可运行。"
]

# 第三步:生成知识库向量
kb_embeddings = embedding_model.encode(knowledge_base, normalize_embeddings=True)

# 第四步:用户提问,生成提问向量
user_query = "Qwen3-7B-Instruct需要多少显存才能部署?"
query_embedding = embedding_model.encode(user_query, normalize_embeddings=True)

# 第五步:检索知识库中最相关的文本(取相似度最高的1条)
similarities = cosine_similarity([query_embedding], kb_embeddings)[0]
max_idx = similarities.argmax()
related_text = knowledge_base[max_idx]

# 第六步:调用vLLM服务,基于检索结果生成回答
url = "http://localhost:8000/v1/completions"
headers = {"Content-Type": "application/json"}
data = {
    "model": "Qwen/Qwen3-7B-Instruct",
    "prompt": f"基于以下信息,回答用户问题,简洁明了:\n信息:{related_text}\n用户问题:{user_query}",
    "max_tokens": 100,
    "temperature": 0.3,  # 降低随机性,保证回答准确
    "stream": False
}

response = requests.post(url, headers=headers, json=data)
result = json.loads(response.text)
print("用户问题:", user_query)
print("生成回答:", result["choices"][0]["text"])

# 运行结果示例:
# 用户问题:Qwen3-7B-Instruct需要多少显存才能部署?
# 生成回答:Qwen3-7B-Instruct需要8G显存即可本地部署。

这个demo虽然简单,但已经实现了RAG的核心逻辑,实际场景中,只需将「knowledge_base」替换为本地文档(如PDF、TXT),即可实现专属知识库问答。

七、新手必看:常见踩坑总结(避坑关键)

结合自己部署经验,整理了5个新手最常踩的坑,提前规避,节省时间:

  1. 坑1:下载模型超时 → 解决方案:用hf-mirror国内镜像手动克隆,或换网络(手机热点试一下)。

  2. 坑2:启动vLLM报错「显存不足」 → 解决方案:降低「gpu-memory-utilization」参数(如8G显存改为0.7),关闭其他占用显存的程序。

  3. 坑3:调用ChatGLM3报错 → 解决方案:启动vLLM时必须加「--trust-remote-code」参数,加载模型自定义代码。

  4. 坑4:嵌入模型生成向量后,相似度计算不准 → 解决方案:生成向量时,一定要加「normalize_embeddings=True」。

  5. 坑5:vLLM启动后,调用失败 → 解决方案:检查模型名是否和启动时一致,端口是否被占用(换个端口,如8001)。

八、总结与拓展

本文讲解的「中文大模型部署全流程」,核心是「选对模型+用对工具」——Qwen/ChatGLM3解决中文生成问题,BGE-M3/m3e-large解决检索问题,vLLM解决速度和显存问题,三者结合,既能落地,又能保证效果。

拓展方向:

  • 1. 部署到服务器:将vLLM服务部署到云服务器,对外提供API接口,支持多端调用。

  • 2. 优化RAG:结合LangChain/LlamaIndex框架,实现PDF、Word等文档的自动加载、拆分、检索。

  • 3. 模型量化:将模型量化为4-bit(如Qwen3-7B-4bit),进一步降低显存占用,适配更低配置的显卡。

嗯 ... ... 再补充点吧 

一、主流开源大语言模型(LLM,负责聊天 / 生成 / 思考)

国际主流

  1. Llama 3 / Llama 2(Meta)开源基座里的 “标杆”,效果稳、生态最成熟,8B/70B 最常用。
  2. Mistral / Mixtral小模型速度快、效果强,7B 级别性价比很高。
  3. Phi-3(微软)小参数但很强,适合低资源部署。

中文最强主流(国内做应用优先选)

  1. Qwen 通义千问开源版(阿里)中文理解、生成、长文本都很强,生态完善。
  2. ChatGLM3 / GLM-4(清华 + 智谱)老牌中文友好,极易部署,对新手友好。
  3. Yi 系列(零一万物)长上下文表现突出。
  4. DeepSeek 系列代码、长文本、数学能力强。

二、主流开源嵌入模型(Embedding,负责向量化 / RAG 检索)

全部是中文领域最能打的,做知识库、检索、相似度必用:

  1. m3e-base / m3e-large ,中文效果稳、速度快,最常用。
  2. bge-base-zh /bge-large-zh(智源)业内公认综合最强的中文嵌入模型。
  3. gte-base-zh /gte-large-zh(阿里)效果强,和 bge 同一梯队。
  4. text2vec-base-chinese轻量、老牌、稳定,很多老项目在用。

极简总结(直接照抄拿去用)

  • 聊天生成:Llama 3、Qwen、ChatGLM3
  • RAG 向量检索:bge-zh、m3e、gte-zh


Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐