AI工程化:如何参与大模型应用开发(不是算法研究)
大模型时代,AI工程化工程师和AI算法研究员是两个完全不同的方向。本文讲解AI工程化的核心职责(LLM应用构建/RAG/推理部署/MLOps)、技术栈和学习路径,以及两个可以直接动手实现的项目——基于RAG的知识库问答系统和vLLM私有化部署实践,帮助有兴趣的同学用2-3年时间具备真实的AI工程能力。
很多人问:学 AI,要不要去做算法?
在回答之前,先搞清楚两件事的区别:
AI 算法研究员:设计新的模型架构,写论文,改进训练方法。主要在大厂和高校的研究院。需要极强的数学(线代/概率论/优化理论),985 硕博是标配,顶尖岗位要求更高。
AI 工程化工程师:把已有的大模型接入业务系统,让 AI 真正能用、好用、低成本地跑起来。不研究算法,解决工程问题。本科完全够用,2026 年需求量远大于算法研究岗。
本文讲的是后者。
AI 工程化工程师做什么
核心职责(不是算法,是工程):
1. LLM 应用开发
把大模型 API(OpenAI/Claude/国内模型)接入业务系统
设计 Prompt,构建多轮对话逻辑
用 LangChain/LlamaIndex 搭建 AI 应用框架
2. RAG 系统构建(检索增强生成)
让大模型能回答关于你的内部文档/知识库的问题
文档解析 → 向量化 → 向量数据库 → 检索 → 生成
这是 2026 年最普遍的 AI 应用模式
3. 推理部署优化
把开源大模型(Llama/Qwen/DeepSeek 等)部署起来
让推理速度更快(vLLM/TensorRT-LLM)
让成本更低(量化/批处理优化)
4. MLOps(AI 系统运维)
管理模型版本(不同业务用不同的微调版本)
监控模型输出质量(模型漂移检测)
A/B 测试(哪个 Prompt 效果更好?)
自动化 Fine-tuning 流水线
典型的一天:
上午:修复生产环境 RAG 系统的检索准确率问题
下午:优化 vLLM 的批处理配置,把 QPS 从 50 提升到 120
晚上:写下周模型迁移的方案文档
必须掌握的技术栈
基础层(没有这些,上层都是空中楼阁)
Python(必须熟练,不是"会用")
→ 异步编程(asyncio)
→ 类型标注(typing)
→ 包管理(pip/conda/poetry/uv)
→ 常用库(requests/pydantic/fastapi)
Linux + Docker + K8s 基础
→ AI 服务跑在 GPU 服务器上,也在容器里
→ 部署一个推理服务本质和部署一个 Web 服务一样
→ 不懂 K8s,你的服务上不了生产
REST API 设计
→ 会用 FastAPI 写 AI 服务的接口
→ 理解异步/流式响应(Streaming,打字机效果)
AI 应用层(核心技能)
大模型 API 调用:
OpenAI API(Chat Completions/Embeddings)
国内模型 API(通义千问/文心一言/Kimi/DeepSeek)
理解 Token/Temperature/Top-p 等参数的含义
LangChain(AI 应用框架):
Chain 的概念(把多个步骤串联)
Agent(让 AI 自主决定用哪个工具)
Memory(管理对话历史)
注意:LangChain 文档复杂,多看官方文档不如多写代码
向量数据库(RAG 的核心):
Milvus(企业级,适合生产)
Qdrant(轻量,适合个人项目)
Chroma(最简单,本地测试用)
核心操作:
文本 → Embedding 向量 → 存入向量库
查询 → Embedding → 相似度检索 → 返回最相关文档
常用 Embedding 模型:
OpenAI text-embedding-3-small(付费,效果好)
BAAI/bge-m3(开源,中文效果优秀)
sentence-transformers 系列(开源,英文)
Prompt Engineering:
不是写几句话那么简单
系统提示词设计(System Prompt)
少样本提示(Few-shot Prompting)
思维链提示(Chain-of-Thought)
防幻觉策略(让模型承认不知道而不是乱说)
推理部署层(工程化的关键)
vLLM(最重要):
目前最主流的开源 LLM 推理框架
PagedAttention 技术:解决 KV Cache 内存碎片问题
支持连续批处理(Continuous Batching)
支持绝大多数开源模型(Llama/Qwen/DeepSeek 等)
量化技术(压缩模型,节省显存):
GPTQ:训练后量化,精度损失小
AWQ:激活感知量化,效果更好
GGUF:CPU 推理格式(Ollama 使用的格式)
GPU 基础:
CUDA 基本概念(不需要写 CUDA kernel,但要懂原理)
显存管理(batch size / 序列长度与显存的关系)
多 GPU 推理(Tensor Parallel / Pipeline Parallel)
常见 GPU 配置(2026 年):
开发测试:RTX 4090 (24GB) 或 A100 40GB
生产部署:A100 80GB 或 H100 80GB
低成本方案:租云 GPU(阿里云/腾讯云/AutoDL)
MLOps 层(让 AI 系统可运维)
模型版本管理:
MLflow(跟踪实验参数/指标/模型版本)
Hugging Face Hub(开源模型托管和版本管理)
Fine-tuning 工具(微调小模型):
LoRA/QLoRA(参数高效微调,GPU 要求低)
LLaMA-Factory(中文友好的微调框架)
典型场景:把 7B 模型微调成专门回答你业务问题的专家
监控(AI 系统特有的监控):
输出质量监控(不只是 200/500,还要看回答是否准确)
延迟监控(P50/P95/P99 的 TTFT 和 TPS)
Token 使用量监控(成本控制)
幻觉率监控(生产环境特别重要)
两个可以直接开始做的项目
项目一:基于 RAG 的知识库问答系统
这是 AI 工程化最经典的入门项目,也是面试时最常被问到的实战经验。
# 完整的 RAG 系统实现(简化版,可以直接运行)
# 1. 安装依赖
# pip install langchain langchain-openai chromadb tiktoken
from langchain_openai import OpenAIEmbeddings, ChatOpenAI
from langchain_community.vectorstores import Chroma
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_community.document_loaders import TextLoader
from langchain.chains import RetrievalQA
import os
# 2. 加载文档(这里用文本文件,也可以用 PDF/Word)
def load_documents(file_path: str):
loader = TextLoader(file_path, encoding="utf-8")
documents = loader.load()
# 分块:把长文档切成小块(每块 500 字符,100 字符重叠)
# 重叠是为了避免切断语义
text_splitter = RecursiveCharacterTextSplitter(
chunk_size=500,
chunk_overlap=100,
separators=["\n\n", "\n", "。", "!", "?", " "] # 中文友好
)
chunks = text_splitter.split_documents(documents)
print(f"文档被切成 {len(chunks)} 个块")
return chunks
# 3. 创建向量数据库
def create_vector_store(chunks, persist_directory="./chroma_db"):
embeddings = OpenAIEmbeddings(
model="text-embedding-3-small",
openai_api_key=os.environ["OPENAI_API_KEY"]
)
# 把所有块向量化并存入 Chroma
vectorstore = Chroma.from_documents(
documents=chunks,
embedding=embeddings,
persist_directory=persist_directory
)
print(f"向量库创建完成,共 {vectorstore._collection.count()} 条记录")
return vectorstore
# 4. 创建问答链
def create_qa_chain(vectorstore):
llm = ChatOpenAI(
model="gpt-4o-mini", # 便宜又够用
temperature=0, # 设为 0:减少随机性,答案更稳定
openai_api_key=os.environ["OPENAI_API_KEY"]
)
qa_chain = RetrievalQA.from_chain_type(
llm=llm,
chain_type="stuff", # 把检索到的内容都塞进 Prompt
retriever=vectorstore.as_retriever(
search_kwargs={"k": 3} # 检索最相关的 3 个块
),
return_source_documents=True # 返回来源文档(方便调试)
)
return qa_chain
# 5. 主程序
if __name__ == "__main__":
# 第一次运行:建立向量库
chunks = load_documents("your_document.txt")
vectorstore = create_vector_store(chunks)
# 后续运行:直接加载已有向量库
# embeddings = OpenAIEmbeddings(...)
# vectorstore = Chroma(persist_directory="./chroma_db", embedding_function=embeddings)
qa = create_qa_chain(vectorstore)
# 提问
question = "文档中提到的核心观点是什么?"
result = qa.invoke({"query": question})
print(f"\n问:{question}")
print(f"\n答:{result['result']}")
print(f"\n来源文档(前两个):")
for doc in result['source_documents'][:2]:
print(f" - {doc.page_content[:100]}...")
让这个项目更有价值:
基础版(入门):
上面的代码 + 一个 Streamlit/Gradio 前端界面
支持上传 PDF 文件
进阶版(面试加分):
├── 支持多文档(多个 PDF 构建同一个知识库)
├── 混合检索(向量相似度 + 关键词匹配 BM25)
├── 重排序(Reranker 模型,提升检索准确率)
├── 流式输出(Streaming,打字机效果)
└── 对话历史(多轮问答,不只是单次回答)
生产级别(毕业设计水平):
├── FastAPI 后端 + React 前端
├── 用 Milvus 替换 Chroma(生产级向量库)
├── Docker 容器化部署
├── Prometheus 监控(QPS/延迟/Token 用量)
└── 用户反馈收集(标记好/差回答)
项目二:vLLM 私有化部署实践
# 环境准备(需要 NVIDIA GPU,显存 >= 16GB)
# 如果没有 GPU,可以用阿里云/AutoDL 租 A10/RTX 4090
# 1. 安装 vLLM
pip install vllm --break-system-packages
# 2. 启动 vLLM 服务(以 Qwen2.5-7B-Instruct 为例)
python -m vllm.entrypoints.openai.server \
--model Qwen/Qwen2.5-7B-Instruct \
--host 0.0.0.0 \
--port 8000 \
--max-model-len 8192 \
--dtype auto \
--gpu-memory-utilization 0.9
# 启动后,vLLM 暴露 OpenAI 兼容的 API
# 原来调 OpenAI API 的代码,换个 base_url 就能用私有模型
# 3. 测试(和调 OpenAI API 完全一样)
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen/Qwen2.5-7B-Instruct",
"messages": [{"role": "user", "content": "你好,介绍一下自己"}],
"max_tokens": 256
}'
# 4. 在 Python 里使用(和 OpenAI SDK 完全兼容)
from openai import OpenAI
client = OpenAI(
api_key="no-key-needed", # vLLM 不需要 key
base_url="http://localhost:8000/v1"
)
response = client.chat.completions.create(
model="Qwen/Qwen2.5-7B-Instruct",
messages=[{"role": "user", "content": "解释什么是 RAG"}],
max_tokens=512,
temperature=0.7
)
print(response.choices[0].message.content)
# 5. 量化部署(显存不够时用 AWQ 量化版本)
# 量化版只需要一半左右的显存
python -m vllm.entrypoints.openai.server \
--model Qwen/Qwen2.5-7B-Instruct-AWQ \
--quantization awq \
--gpu-memory-utilization 0.85
# 6. 压力测试(看 vLLM 能支撑多少并发)
pip install locust
# locustfile.py
from locust import HttpUser, task
import json, random
class LLMUser(HttpUser):
@task
def chat(self):
payload = {
"model": "Qwen/Qwen2.5-7B-Instruct",
"messages": [{"role": "user", "content": "用一句话介绍 Docker"}],
"max_tokens": 100
}
self.client.post("/v1/chat/completions", json=payload)
# 运行:locust -f locustfile.py --host http://localhost:8000
学习路径(两年计划)
大二下学期:打基础(3个月)
Python 进阶(asyncio + FastAPI + pydantic)
调用 OpenAI API 做 5 个小项目
→ 翻译工具 / 文章摘要 / 代码解释 / 聊天机器人 / 分类标注
理解 Token/Embedding/Temperature 这些概念
大三上学期:RAG 系统(3个月)
学 LangChain 基础(1周)
学向量数据库(Chroma → Qdrant)(1周)
做一个完整的 RAG 问答系统(6周)
→ 支持 PDF 上传 + Streamlit 界面 + Docker 部署
学习 Prompt Engineering 最佳实践(2周)
大三下学期:推理部署(3个月)
学 vLLM(部署本地模型)
学量化(AWQ/GPTQ)
做一个完整的私有 AI 服务
→ vLLM + FastAPI + Nginx + Docker Compose
学 MLflow(实验追踪)
大四:实习 + 项目打磨
找 AI 工程化相关实习(LLM/AI应用/搜索)
把 RAG 项目做成生产级别
参加 AI 相关比赛(Kaggle/天池,工程类赛题)
2026 年的就业市场
岗位名称(各公司叫法不一):
AI 工程师 / LLM 工程师 / 大模型工程师
AI 应用开发工程师 / RAG 工程师
MLOps 工程师 / AI 基础设施工程师
薪资(2026年参考):
武汉应届:12,000 - 20,000(AI 方向溢价 20-30%)
北京/上海/深圳应届:18,000 - 35,000
有实习经验 + 真实项目:上限更高
招人最多的公司类型:
✓ AI 创业公司(需求量最大,成长快)
✓ 大厂 AI 业务线(字节/腾讯/阿里/百度)
✓ 传统行业 AI 化(金融/医疗/教育/制造业的 AI 部门)
简历上的差异点:
"基于 RAG 构建过企业知识库系统,支持 XX 种格式文档,
日均 QPS XX,检索准确率从 65% 提升到 87%"
而不是:
"学习了 LangChain,了解了 RAG 的概念"
→ 数字和结果,比技术名词堆砌更有说服力
小结
AI 工程化是 2026 年最值得深入的方向之一,不是因为它最热(热度会退),而是因为它真正解决了大量企业的实际问题,而且工程化能力的需求远大于供给。
入门的路线非常清晰:学 Python → 调 API 做小项目 → 做 RAG 系统 → 部署推理服务 → 在实习中解决真实问题。两年时间足够,关键是每个阶段都做出真实可运行的东西,而不是停留在“学过”的层面。
