LLM基础介绍
-
- [1. 什么是大语言模型(LLM)?](#1. 什么是大语言模型(LLM)?)
- [2. LLM 能做什么?](#2. LLM 能做什么?)
-
- [2.1 知识问答](#2.1 知识问答)
- [2.2 内容生成](#2.2 内容生成)
- [2.3 逻辑推理](#2.3 逻辑推理)
- [2.4 代码编写](#2.4 代码编写)
- [2.5 多模态能力(部分模型)](#2.5 多模态能力(部分模型))
- [3. 主流大模型一览](#3. 主流大模型一览)
- [4. 提示工程基础](#4. 提示工程基础)
-
- [4.1 什么是提示工程(Prompt Engineering)?](#4.1 什么是提示工程(Prompt Engineering)?)
- [4.2 CO-STAR 框架](#4.2 CO-STAR 框架)
- [4.3 零样本 vs 少样本提示](#4.3 零样本 vs 少样本提示)
- [4.4 思维链(Chain-of-Thought, CoT)](#4.4 思维链(Chain-of-Thought, CoT))
- [4.5 写好提示词的实用技巧](#4.5 写好提示词的实用技巧)
- [5. 如何调用大模型](#5. 如何调用大模型)
-
- [5.1 API 方式](#5.1 API 方式)
- [5.2 SDK 方式](#5.2 SDK 方式)
- [5.3 如何获取 API Key](#5.3 如何获取 API Key)
- [6. LLM 的局限与解决方案](#6. LLM 的局限与解决方案)
- [7. 从 LLM 到 AI 应用:整体架构](#7. 从 LLM 到 AI 应用:整体架构)
- [8. 理解测试](#8. 理解测试)
- [9. 总结](#9. 总结)
1. 什么是大语言模型(LLM)?
一句话理解
大语言模型(Large Language Model, LLM) 是一个超级"文字接龙"程序------你给它一段文字开头,它就能接着往下写。但它不是随便乱写,而是基于海量训练数据中学到的规律,预测最合适的下一个词。
用生活例子理解
想象一个学霸,他读遍了全世界的书籍、文章、代码,把海量知识都"压缩"进了自己脑子里。当你问他问题时,他不是在"查资料",而是根据他记住的所有知识模式,生成一个合理的回答。
- 你问:"中国的首都是?" → 他答:"北京"(这是知识记忆)
- 你问:"2 + 3 =?" → 他答:"5"(这是逻辑推理)
- 你写:"def hello():" → 他补:" print('Hello, World!')"(这是代码生成)
关键数字
| 概念 | 说明 | 例子 |
|---|---|---|
| 参数量 (Parameters) | 模型"大脑"中可调节的数值数量,越多越"聪明" | GPT-3 有 1750 亿参数 |
| 上下文窗口 (Context Window) | 模型一次能"看到"的最大文字量 | GPT-5 支持 40万 Token |
| Token(词元) | 模型处理文本的最小单位 | 1个汉字 ≈ 1.5~2 Token |
Python 小知识:什么是 Token?
Token(词元)不是"单词",而是模型切分文本的最小单位。比如 "unbelievable" 可能被切成 "un"、"believe"、"able" 三个 Token。中文中,大多数常用汉字每个占 1~2 个 Token。这就是为什么中英文混合使用时 Token 数量会不同。
2. LLM 能做什么?
2.1 知识问答
- 回答各种学科知识问题(历史、地理、科学等)
- 限制:训练数据有截止日期,无法获取实时信息(需要结合搜索工具)
2.2 内容生成
- 写文章、写诗、写代码、写邮件
- 翻译、改写、润色文本
2.3 逻辑推理
- 数学计算、逻辑推理、因果分析
- 注意:LLM 本身不擅长精确计算,需要结合"工具调用"(后续会学到)
2.4 代码编写
- 根据需求描述生成 Python/JavaScript/Java 等代码
- 调试代码、解释代码逻辑
2.5 多模态能力(部分模型)
- 理解图片内容(GPT-5、Gemini 等)
- 生成图片、音频(DALL-E、Sora 等)
3. 主流大模型一览
| 模型 | 厂商 | 特点 |
|---|---|---|
| GPT-5 | OpenAI | 最强通用能力,40万 Token 窗口 |
| DeepSeek R1 | 深度求索 | 强推理能力,128K 窗口,性价比高 |
| Qwen2.5-72B | 阿里通义千问 | 中文能力强,支持结构化输出 |
| Gemini 2.5 Pro | 多模态最强,原生支持图片/音频/视频 | |
| Claude | Anthropic | 安全性和编程能力强 |
最新排名查看:Huggingface LLM 排行榜 https://huggingface.co/spaces/ArtificialAnalysis/LLMPerformance-Leaderboard
4. 提示工程基础
4.1 什么是提示工程(Prompt Engineering)?
提示工程就是设计给 LLM 的输入文本(提示词/Prompt),让它输出我们想要的结果。好的提示词就像是给一位超级聪明的实习生下达清晰的任务指令。
4.2 CO-STAR 框架
这是新加坡 GovTech 团队总结的系统化提示词框架:
| 要素 | 含义 | 例子 |
|---|---|---|
| Context(背景) | 提供任务背景 | "我是一名 AI 开发者" |
| Objective(目标) | 明确要完成什么 | "解释 LLM 的工作原理" |
| Steps(步骤) | 列出具体步骤 | "1.先定义 2.举例 3.总结" |
| Tone(语气) | 指定语气风格 | "用轻松幽默的语气" |
| Audience(受众) | 描述目标读者 | "面向中学生" |
| Response(响应格式) | 指定输出格式 | "用 Markdown 表格返回" |
示例:
[Context] 我是一名编程初学者
[Objective] 解释什么是 Python 变量
[Steps] 1.用生活例子比喻 2.给出代码演示 3.总结要点
[Tone] 轻松易懂,像朋友聊天
[Audience] 零基础编程小白
[Response] 不超过200字
4.3 零样本 vs 少样本提示
Python 概念速递:什么是 Few-shot(少样本)?
"Shot" 就是"示例"。"Zero-shot" = 不给例子直接提问;"Few-shot" = 先给几个例子再提问。这和机器学习中的"样本(sample)"是同一个概念。
零样本提示(Zero-shot):直接问,不给示例
问题:2 🦜 9 等于多少?
模型:🤷 我不知道 🦜 是什么意思
少样本提示(Few-shot):先给几个例子,再提问
例题:2 🦜 2 = 4 → 2 🦜 3 = 5
问题:2 🦜 9 等于多少?
模型:11!因为我从例题中学会了 🦜 代表加法
4.4 思维链(Chain-of-Thought, CoT)
思维链就是让模型"把解题过程说出来",而不是直接给答案。
-
不用思维链:
问:小明有5个苹果,小红给了他3个,他一共几个? 答:8个 -
用思维链(Zero-shot-CoT,零样本思维链):在提示词末尾加上"让我们一步步思考"(Let's think step by step)
-
用思维链+少样本(Few-shot-CoT):先给一个带推理过程的例题
例题:问题:树上有3只鸟,飞走2只,还剩几只? 推理:原来3只 → 飞走2只 → 3-2=1 → 答案:1只 问题:小明有5个苹果,小红给了他3个,他一共几个?
Python 概念速递:为什么叫 Chain-of-Thought(思维链)?
Chain 就是"链子/链条"。模型把复杂问题拆成一步步(一环扣一环),形成推理链条。后面的 LangChain 框架名字中的 "Chain" 也是同一个词------把多个操作串联起来。
4.5 写好提示词的实用技巧
-
说清楚你要什么,而不是你不要什么
- ❌ "不要写得太短"
- ✅ "请写300字以上"
-
提供结构化的输出格式
- ❌ "分析这篇文章"
- ✅ "从以下三个方面分析:1.主要内容 2.写作手法 3.个人评价"
-
分步骤下达指令
- ❌ "帮我写篇关于AI的报告"
- ✅ "第一步:列出AI的3个应用领域。第二步:每个领域举一个例子。第三步:总结AI的发展趋势。"
-
使用分隔符 :用
###或---把指令、示例、问题分隔开,帮助模型清晰理解
5. 如何调用大模型
5.1 API 方式
API(应用程序编程接口) 就像餐厅里的"菜单"------你按照菜单格式点菜(发请求),厨房(服务器)就按照菜单给你上菜(返回结果)。
调用 LLM 的标准流程:
- 注册并获取 API Key(身份令牌)
- 构造 HTTP 请求(包含你的问题和参数)
- 发送请求到 API 端点(服务地址)
- 接收 JSON 格式的响应
curl 示例(命令行调用 OpenAI API):
bash
curl "https://api.openai.com/v1/responses" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-5",
"input": "写一个关于独角兽的睡前故事"
}'
Python 概念速递:什么是 curl?
curl是命令行下发送 HTTP 请求的工具(Client URL 的缩写)。上面的命令就是:用 POST 方法向 OpenAI 的服务器地址发送一个 JSON 数据,-H是请求头(Header),-d是请求体(data)。在 Python 中,我们不会直接用 curl,而是用requests库或 LangChain 封装好的方法。
5.2 SDK 方式
SDK(软件开发工具包)把复杂的 API 调用封装成简单的 Python 函数:
python
# 使用 OpenAI Python SDK
from openai import OpenAI
client = OpenAI(api_key="your-api-key")
response = client.responses.create(
model="gpt-5",
input="写一个关于独角兽的睡前故事"
)
print(response.output_text)
在 LangChain 中,调用会更统一(这就是 LangChain 的价值所在):
python
from langchain_openai import ChatOpenAI
model = ChatOpenAI(model="gpt-4o-mini")
response = model.invoke("写一个关于独角兽的睡前故事")
print(response.content)
5.3 如何获取 API Key
- OpenAI:访问 https://platform.openai.com/ → 注册 → Settings → API Keys → 创建新密钥
- DeepSeek:访问 https://platform.deepseek.com/ → 注册 → API Keys 页面
- 通义千问:访问 https://dashscope.aliyun.com/ → 注册 → API-KEY 管理
- 零一万物 等其他国产模型也提供类似服务
⚠️ 安全提醒 :API Key 就像你的银行卡密码,绝对不能提交到 Git 仓库或公开发布。应该放在
.env环境变量文件或操作系统的环境变量中。.env文件要加入.gitignore。
6. LLM 的局限与解决方案
| 局限 | 表现 | 解决方案 |
|---|---|---|
| 知识截止 | 训练数据有截止日期 | RAG(检索增强生成) |
| 幻觉问题 | 自信地说出错误信息 | 工具调用验证 |
| 数学能力弱 | 精确计算容易出错 | 工具调用(计算器) |
| 上下文限制 | 长文档无法一次性处理 | 文本分割 + RAG |
| 隐私风险 | 敏感数据传输到云端 | 本地部署模型 |
7. 从 LLM 到 AI 应用:整体架构
用户输入
│
▼
[提示词模板] ── 组装完整的 Prompt
│
▼
[LLM 调用] ── 通过 API/SDK 调用大模型
│
▼
[输出解析] ── 把模型输出转成程序可用数据
│
▼
返回给用户
后续 LangChain 和 LangGraph 的学习,本质上就是在这个基本流程之上:
- LangChain:提供统一接口、链式调用、各类组件
- LangGraph:提供状态管理、流程编排、持久化
8. 理解测试
问题1
Token 和"字"有什么区别?
答案:Token 是模型处理的最小单位,不等于"字"或"单词"。英文中,一个单词可能被拆成多个 Token(如 "unbelievable" → "un"+"believe"+"able"),中文中一个汉字约等于 1.5~2 个 Token。API 的计费和上下文窗口长度都是以 Token 为单位计算的。
问题2
零样本(Zero-shot)和少样本(Few-shot)有什么区别?
答案:零样本是不给例子直接提问,依赖模型的先验知识。少样本是先给几个"例题+答案",让模型学会规律后再回答新问题。少样本可以大幅提升特定任务的表现,但会消耗更多上下文窗口空间。
问题3
为什么需要 CO-STAR 框架?
答案:因为 LLM 对指令非常"敏感",模糊的指令会导致不稳定、不可预测的输出。CO-STAR 框架提供了系统化的六要素(背景、目标、步骤、语气、受众、响应格式),确保提示词覆盖所有关键信息,从而获得更稳定、更高质量的输出。
问题4
直接调用 API 和使用 LangChain 有什么区别?
答案 :直接调用 API 需要自己处理 HTTP 请求、解析 JSON、管理对话历史等;LangChain 封装了这些底层细节,提供统一的 model.invoke() 接口,并支持链式调用、流式输出、工具绑定等高级功能。简单说:API 是"砖块",LangChain 是"建筑框架"。
9. 总结
-
LLM 是"文字接龙"高手,基于海量训练数据预测最合适的下一个词。
-
Token 是 LLM 的基本度量单位,1 个汉字 ≈ 1.5~2 Token。
-
提示工程是发挥 LLM 能力的关键,推荐使用 CO-STAR 框架系统化设计提示词。
-
少样本提示和思维链 是两个最强的提示技巧,能在不改变模型的情况下大幅提升表现。
-
LLM 有固有限制(知识截止、幻觉、算不准数),需要在应用中结合 RAG、工具调用等手段来克服。
-
LangChain 是调用 LLM 的"统一入口",屏蔽了不同厂商 API 的差异,提供一致的开发体验。