📌 1. LLM —— Large Language Model(大型语言模型)
含义:
指参数量巨大(通常 > 1B)、基于 Transformer 架构训练的语言模型,如 GPT-3/4、Llama 系列、Qwen、ChatGLM 等。它们能完成文本生成、问答、翻译、推理等任务。
示例代码(使用 Hugging Face Transformers 加载本地 LLM):
from transformers import AutoTokenizer, AutoModelForCausalLM # 加载模型和分词器(以 Qwen2.5 为例) model_name = "Qwen/Qwen2.5-0.5B-Instruct" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto") # 输入提示 prompt = "请用一句话介绍你自己。" inputs = tokenizer(prompt, return_tensors="pt").to(model.device) # 生成回复 outputs = model.generate(**inputs, max_new_tokens=50) response = tokenizer.decode(outputs[0], skip_special_tokens=True) print(response)✅ 输出示例:
“我是一个由阿里巴巴云研发的超大规模语言模型,能够回答问题、创作文字、编写代码……”
📌 2. Prompt —— 提示词
含义:
用户输入给 LLM 的指令或上下文,用于引导模型输出特定内容。Prompt Engineering 是优化提示以获得更好结果的技术。
示例代码(Few-Shot Prompting):
prompt = """ 你是一个数学助手,请根据以下例子回答问题: 例1: 2 + 3 = ? 答: 5 例2: 7 * 8 = ? 答: 56 问题: 9 - 4 = ? 答: """ # 调用上面加载的 model 和 tokenizer inputs = tokenizer(prompt, return_tensors="pt").to(model.device) outputs = model.generate(**inputs, max_new_tokens=10) print(tokenizer.decode(outputs[0], skip_special_tokens=True))✅ 输出:
5
📌 3. MCP —— Multi-Component Pipeline / Model Control Plane?(注:此处可能为笔误或非标准缩写)
⚠️注意:“MCP”在大模型领域并非通用术语。常见可能性包括:
- Multi-Component Pipeline:多组件流水线(如数据预处理 → 嵌入 → RAG → 生成)
- Model Control Plane:模型控制平面(管理多个模型部署与路由)
- 或者是Mixture of Experts (MoE)中的某个子模块?
📌 如果你指的是MoE(Mixture of Experts),那它是 LLM 内部结构的一种设计,比如 Mixtral、Switch Transformer 使用稀疏激活专家网络提升效率。
MoE 简单示意(伪代码):
class MoELayer(nn.Module): def __init__(self, num_experts=8, expert_dim=512): super().__init__() self.experts = nn.ModuleList([nn.Linear(512, expert_dim) for _ in range(num_experts)]) self.gate = nn.Linear(512, num_experts) def forward(self, x): gate_scores = torch.softmax(self.gate(x), dim=-1) # [batch, seq_len, num_experts] outputs = [] for i, expert in enumerate(self.experts): weighted_input = x * gate_scores[..., i:i+1] outputs.append(expert(weighted_input)) return sum(outputs) # 加权求和4. Agent —— 智能体
含义:
具备自主决策能力的 AI 系统,可以调用工具、规划步骤、记忆历史、与环境交互。例如 AutoGPT、LangChain Agents、ReAct 框架。
示例代码(LangChain Agent + Google Search Tool):
pip install langchain langchain-community google-search-resultsfrom langchain.agents import initialize_agent, Tool from langchain.llms import OpenAI from langchain.utilities import GoogleSearchAPIWrapper # 初始化搜索工具 search = GoogleSearchAPIWrapper() tools = [ Tool( name="Google Search", func=search.run, description="useful for when you need to answer questions about current events" ) ] # 初始化 agent llm = OpenAI(temperature=0) agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True) # 执行查询 agent.run("今天北京天气怎么样?")✅ 输出会显示 agent 如何思考并调用搜索引擎获取实时信息。
5. RAG —— Retrieval-Augmented Generation(检索增强生成)
含义:
结合外部知识库(向量数据库)进行检索,再将检索结果作为上下文喂给 LLM 生成答案,解决幻觉问题、提高准确性。
示例代码(使用 FAISS + LangChain 实现简易 RAG):
pip install langchain faiss-cpu sentence-transformersfrom langchain.document_loaders import TextLoader from langchain.text_splitter import CharacterTextSplitter from langchain.embeddings import HuggingFaceEmbeddings from langchain.vectorstores import FAISS from langchain.chains import RetrievalQA from langchain.llms import HuggingFacePipeline # 1. 加载文档 loader = TextLoader("knowledge_base.txt") documents = loader.load() # 2. 分割文本 text_splitter = CharacterTextSplitter(chunk_size=500, chunk_overlap=50) docs = text_splitter.split_documents(documents) # 3. 创建嵌入 & 向量库 embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2") vectorstore = FAISS.from_documents(docs, embeddings) # 4. 构建 QA 链 llm = HuggingFacePipeline.from_model_id( model_id="Qwen/Qwen2.5-0.5B-Instruct", task="text-generation", pipeline_kwargs={"max_new_tokens": 128} ) qa_chain = RetrievalQA.from_chain_type(llm, retriever=vectorstore.as_retriever()) # 5. 提问 query = "什么是量子纠缠?" result = qa_chain.run(query) print(result)✅ 输出将基于你的
knowledge_base.txt文件内容生成准确回答。
📌 6. Embedding —— 嵌入向量
含义:
将文本、图像等离散对象映射为连续向量空间中的点,便于相似度计算、聚类、检索等操作。常用模型有 BERT、Sentence-BERT、text-embedding-ada-002 等。
示例代码(使用 Sentence Transformers 生成句子嵌入):
from sentence_transformers import SentenceTransformer model = SentenceTransformer('all-MiniLM-L6-v2') sentences = ["猫坐在垫子上", "狗在公园里跑"] embeddings = model.encode(sentences) # 计算余弦相似度 from sklearn.metrics.pairwise import cosine_similarity similarity = cosine_similarity([embeddings[0]], [embeddings[1]]) print(f"相似度: {similarity[0][0]:.4f}")✅ 输出类似:
0.3215(表示两句语义有一定相关性但不高)
📌 7. LangChain —— 大模型应用开发框架
含义:
一个开源框架,用于构建基于 LLM 的应用程序,支持链式调用、代理、记忆、工具集成等功能。
示例代码(简单 Chain:Prompt + LLM):
from langchain.prompts import PromptTemplate from langchain.llms import HuggingFacePipeline # 定义模板 template = """你是一个诗人,请写一首关于{topic}的五言绝句。 诗:""" prompt = PromptTemplate(input_variables=["topic"], template=template) # 加载模型 llm = HuggingFacePipeline.from_model_id( model_id="Qwen/Qwen2.5-0.5B-Instruct", task="text-generation", pipeline_kwargs={"max_new_tokens": 64} ) # 构建 chain chain = prompt | llm # 执行 response = chain.invoke({"topic": "春天"}) print(response)✅ 输出示例:
春风吹柳绿, 花开满园香。 燕归巢未稳, 日落西山旁。
📌 8. vLLM —— 高效推理引擎
含义:
由 UC Berkeley 开发的高性能 LLM 推理服务框架,采用 PagedAttention 技术大幅提升吞吐量和降低延迟,适合生产环境部署。
示例代码(启动 vLLM 服务器并调用 API):
Step 1: 安装 vLLM
pip install vllmStep 2: 启动服务器(终端运行)
python -m vllm.entrypoints.api_server \ --model Qwen/Qwen2.5-0.5B-Instruct \ --host 0.0.0.0 \ --port 8000Step 3: Python 客户端调用
import requests url = "http://localhost:8000/generate" payload = { "prompt": "讲个笑话吧", "max_tokens": 50, "temperature": 0.7 } response = requests.post(url, json=payload) print(response.json()["text"])✅ 输出:一个由模型生成的笑话 😄
📌 9. Token —— 令牌 / 词元
含义:
LLM 处理文本的基本单位,可以是单词、子词、字符甚至字节。不同模型有不同的 tokenizer(如 BPE、WordPiece)。Token 数量直接影响成本和速度。
示例代码(统计 token 数):
from transformers import AutoTokenizer tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-0.5B-Instruct") text = "你好,世界!这是一个测试句子。" tokens = tokenizer.encode(text) print(f"原始文本: {text}") print(f"Token IDs: {tokens}") print(f"Token 数量: {len(tokens)}")✅ 输出示例:
Token IDs: [151643, 190, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500] Token 数量: 358
📌 10. 数据蒸馏 —— Data Distillation
含义:
通过小模型学习大模型的行为(输出分布、中间层特征等),从而压缩模型体积、加速推理,同时保留大部分性能。常用于移动端部署或边缘计算场景。
示例代码(知识蒸馏训练循环伪代码):
import torch import torch.nn as nn import torch.optim as optim # 假设 teacher_model 和 student_model 已定义 teacher_model.eval() student_model.train() optimizer = optim.Adam(student_model.parameters(), lr=1e-4) criterion_kd = nn.KLDivLoss(reduction='batchmean') # KL 散度损失 criterion_ce = nn.CrossEntropyLoss() # 交叉损失(可选) T = 4 # 温度参数 alpha = 0.7 # 蒸馏权重 for batch in dataloader: inputs, labels = batch with torch.no_grad(): teacher_logits = teacher_model(inputs) teacher_probs = torch.softmax(teacher_logits / T, dim=1) student_logits = student_model(inputs) student_log_probs = torch.log_softmax(student_logits / T, dim=1) loss_kd = criterion_kd(student_log_probs, teacher_probs) * (T ** 2) loss_ce = criterion_ce(student_logits, labels) loss = alpha * loss_kd + (1 - alpha) * loss_ce optimizer.zero_grad() loss.backward() optimizer.step()✅ 此方法可用于将 Qwen-7B 蒸馏成 Qwen-0.5B,保持 90%+ 性能的同时减少 90% 参数量。
🧩 总结图谱(逻辑关系)
[User Prompt] ↓ [Agent] ←→ [Tools] (Search, DB, API...) ↓ [RAG] ←→ [Embedding] ←→ [Vector DB] ↓ [LLM] ←→ [vLLM] (高效推理) ↓ [Tokenization] → [Data Distillation] (压缩模型) ↑ [LangChain] (编排整个流程)💡 进阶建议
如果你想进一步实践:
✅ 推荐项目方向:
- 用 LangChain + RAG 搭建个人知识库问答机器人
- 用 vLLM 部署自己的 LLM 服务
- 用 HuggingFace + LoRA 微调一个小模型做垂直领域任务
- 用 ReAct Agent 实现自动炒股分析助手