大语言模型(LLM)笔记
一、什么是大语言模型(LLM)?
LLM(Large Language Model) 是基于 Transformer 架构构建,并在海量文本语料上训练出的具备自然语言理解和生成能力的深度神经网络模型。
其本质任务是**预测下一个 token(词/字/符号)**的概率分布,但通过大规模参数和数据的支持,表现出类人智能的行为。
二、核心架构:Transformer
由 Google 在 2017 年提出,是目前 LLM 的主流架构。
Transformer 特点
- 自注意力机制(Self-Attention):建模所有 token 间的依赖关系
- 位置编码:添加序列顺序信息
- 多头机制:捕获不同维度的语义
- 残差结构 + LayerNorm:稳定训练
三、训练范式:预训练 + 微调(Prompt Learning)
阶段 | 内容 |
---|---|
预训练 | 在大规模文本语料上无监督训练,学语言规律 |
微调(Fine-tuning) | 对特定任务(QA/翻译等)继续训练,提升适应性 |
Prompt Learning | 通过构造提示(prompt)而非修改参数,让模型完成新任务 |
四、LLM 应用
RAG(Retrieval-Augmented Generation)
“用大模型回答问题,但知识来源来自自己”
原理
通过检索器获取相关文本,再将其连同用户问题一并输入到大模型中生成回答。
技术流程
技术栈组件
- 向量数据库:FAISS、Milvus、Pinecone
- Embedding 模型:OpenAI、bge-base、m3e
- 检索器:语义搜索 / BM25 混合
- 构造 Prompt:Chunk 拼接或摘要
应用场景
- 私有知识库问答
- 法律、金融、医疗文档理解
- 企业级文档助手 / RAG ChatBot
Agent(智能体系统)
“让大模型像人一样思考、行动、调用工具”
概念
Agent 是结合 LLM、任务规划与工具调用能力的执行体,能够模拟多轮决策过程。
执行流程
用户提问 → LLM 规划意图 → 调用工具/API → 得到中间结果 → 再决策 → 最终回答
常用框架
- LangChain Agent
- OpenAI Function Calling / Assistant API
- CrewAI(多 Agent 协同)
- AutoGPT(任务型 Agent)
应用场景
- 多轮任务助手(报表生成、数据分析)
- 具备记忆的 AI 角色(助理、法务、客服)
- 多功能插件集成(搜索、浏览器、计算器)
MCP(Multi-Component Prompting)
“把复杂任务模块化提示工程实现精准控制”
概念
MCP 是将一个大任务拆分成多个子任务/模块,每个模块用独立 Prompt 描述,结果串联执行。
示例结构
任务:软件开发需求 → 多组件提示如下:1️⃣ 功能需求分析 Prompt
2️⃣ 领域术语解释 Prompt
3️⃣ 接口定义 Prompt
4️⃣ 测试用例生成 Prompt
5️⃣ 架构建议 Prompt
优点
- 可调试、可维护、易重用
- 提高准确性与鲁棒性
- 适合构建低代码 AI 工作流系统
应用场景
- 编程辅助系统(DevCopilot)
- AI 产品经理(写需求、定义模块)
- 教育类内容生成(按知识点分段)
五、三者协同应用范式
模型能力 | 说明 |
---|---|
RAG | 为 LLM 提供外部知识 → 确保“知” |
Agent | 让 LLM 能规划执行动作 → 确保“行” |
MCP | 结构化分解任务 → 确保“准” |
三者结合是构建大模型应用的主流路径,如企业问答 + 插件调用 + 多步流程编排。
六、大模型应用生态与项目案例
场景 | 应用形态 |
---|---|
企业知识库助手 | RAG + Chat UI |
智能客服机器人 | RAG + Agent + 状态记忆 |
AI 写作 / 报告生成 | MCP + Agent |
AI 编程助手(类 Copilot) | MCP + Agent + RAG(搜索 Stack Overflow) |
法律 / 医疗问答平台 | RAG + 数据过滤 + LLM |
七、一图看懂:LLM 应用生态
八、总结
大模型是“智能大脑”,但要让它真正服务于业务,需要 RAG 补“知识”、Agent 管“行为”、MCP 拆“结构”,三者结合形成 AI 原子能力组合,是构建现代 AI 应用的核心方法论。
LangChain vs Spring AI:构建 RAG + Agent 的对比与实战
一、LangChain 是什么?
LangChain 是一个专为构建大语言模型(LLM)应用设计的 Python 框架,强调:
- RAG(检索增强生成)
- Agent(多步推理与工具调用)
- Memory(上下文记忆)
- 工具链生态(向量库、模型、工具集成)
优点:
- 社区活跃,生态丰富
- 与 OpenAI、Llama、FAISS、Chroma、Pinecone 等集成紧密
- 非常适合快速构建复杂的 LLM 工作流
二、Spring AI 是什么?
Spring AI 是 Spring 官方推出的 Java 生态中的 LLM 应用开发框架,目标是让 Java 开发者也能优雅地调用大模型(OpenAI, Ollama, Azure)构建智能应用。
特点:
- Spring Boot 风格、注解驱动
- 支持 Embedding、RAG、Chat 模型
- 配合向量数据库(Postgres, Milvus, Redis)构建问答系统
- 主要聚焦 RAG,目前 Agent 功能较弱但在发展中
三、RAG 构建对比:LangChain vs Spring AI
特性 | LangChain | Spring AI |
---|---|---|
编程语言 | Python | Java / Kotlin |
数据处理能力 | 拥有强大的 text splitter, loader | 基于 Spring Resource loader |
向量库支持 | FAISS, Pinecone, Chroma, Weaviate | Redis, PGVector, Qdrant, Milvus |
RAG 管理方式 | 手动或 Retriever chain 组合 | 使用 @RagRetriever , @ChatClient 注解 |
Prompt 定制性 | 自由拼装,链式调用 | 支持 system/user prompt 模板 |
部署集成 | 需要额外部署 API/Web UI | 可原生集成在 Spring Web / API 项目中 |
LangChain RAG 示例(Python)
from langchain.chains import RetrievalQA
from langchain.vectorstores import FAISS
from langchain.embeddings import OpenAIEmbeddings
from langchain.llms import OpenAI
from langchain.document_loaders import TextLoader# 1. 加载文档并生成向量索引
loader = TextLoader("your_docs.txt")
docs = loader.load()
vectorstore = FAISS.from_documents(docs, OpenAIEmbeddings())# 2. 构建检索器+问答链
retriever = vectorstore.as_retriever()
qa = RetrievalQA.from_chain_type(llm=OpenAI(), retriever=retriever)# 3. 执行问答
qa.run("公司加班制度是?")
Spring AI RAG 示例(Java / YAML 配置)
spring:ai:openai:api-key: your-api-keychat:model: gpt-3.5-turbovectorstore:type: pgvectorindex-name: documents
@Service
public class HRBot {private final ChatClient chatClient;public HRBot(ChatClient chatClient) {this.chatClient = chatClient;}public String ask(String question) {Prompt prompt = Prompt.builder().system("你是企业员工手册智能助手").user(question).build();return chatClient.call(prompt).getResult().getOutput().getContent();}
}
可以结合 RagRetriever
和 EmbeddingClient
自动实现向量检索 + prompt 注入。
四、Agent 构建对比
特性 | LangChain Agent | Spring AI Agent 支持(较弱) |
---|---|---|
工具调用支持 | ✅ ReAct, Function Agent | ❌(暂无成熟官方实现) |
多步推理 | ✅ 可自动 Reasoning/Plan/Act | ❌ |
插件接入能力 | ✅ 支持搜索、代码执行、数据库等 | ❌(需手动集成) |
框架使用门槛 | 较高,需理解 agent 架构 | 简单,适合纯 RAG/问答 |
LangChain Agent 示例
from langchain.agents import initialize_agent, Tool
from langchain.tools import SerpAPIWrapper
from langchain.llms import OpenAIsearch = SerpAPIWrapper()
tools = [Tool(name="Google Search", func=search.run, description="搜索引擎")]agent = initialize_agent(tools, OpenAI(), agent="zero-shot-react-description", verbose=True)
agent.run("Who is the CEO of OpenAI and their latest news?")
五、总结:如何选择?
适合你是… | 推荐框架 | 理由 |
---|---|---|
Python 开发,快速迭代 | LangChain | 最强生态 + RAG/Agent 样例多 |
Java 项目、Spring体系 | Spring AI | 快速集成微服务,维护方便 |
需要构建复杂多工具工作流 | LangChain Agent | Agent 系统强大 |
仅需构建企业问答系统 | Spring AI RAG | 代码少、易部署 |