技术博客

AI工程化:如何参与大模型应用开发(不是算法研究)

大模型时代,AI工程化工程师和AI算法研究员是两个完全不同的方向。本文讲解AI工程化的核心职责(LLM应用构建/RAG/推理部署/MLOps)、技术栈和学习路径,以及两个可以直接动手实现的项目——基于RAG的知识库问答系统和vLLM私有化部署实践,帮助有兴趣的同学用2-3年时间具备真实的AI工程能力。

AI工程化大模型LLMRAGvLLMLangChainPythonMLOps学习路线

很多人问:学 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 系统 → 部署推理服务 → 在实习中解决真实问题。两年时间足够,关键是每个阶段都做出真实可运行的东西,而不是停留在“学过”的层面。