21. 大语言模型(LLM)入门¶
一句话说明:大语言模型就是一个"读了互联网上几乎所有文字"的超级自动补全机器,你给它一段话,它能接着往下写,而且写得像人一样通顺。
目录¶
1. 核心概念(白话版)¶
1.1 什么是 LLM(大语言模型)¶
白话比方:想象一个人从小到大读了整个图书馆的书(几万亿字),虽然他不"真正理解"每本书的含义,但他记住了"什么词经常跟什么词搭配出现"。你跟他说"今天天气很",他能自信地接上"好"或"热"——这就是 LLM 在做的事。
技术定义:LLM = Large Language Model(大语言模型),是一种用海量文本数据训练出来的神经网络,核心能力是根据上文预测下一个词。
关键数字感受: - GPT-4 的训练数据:约 13 万亿 token(约等于 1000 万本书) - Claude 3.5 Sonnet 参数量:未公开(Anthropic 不公布参数量) - 训练一次的成本:上亿美元
1.2 Token 是什么¶
白话:Token 就是模型"读字"的最小单位。不是按一个字一个字读的,而是把文字切成小块。
举例:
英文:"Hello world" → ["Hello", " world"] = 2 tokens
中文:"你好世界" → ["你好", "世界"] = 2 tokens(大约)
代码:"print('hello')" → ["print", "('", "hello", "')"] = 4 tokens
为什么要知道: - API 按 token 收费(输入 + 输出都算钱) - 上下文窗口用 token 来衡量 - 大约 1 个中文字 ≈ 1-2 个 token,1 个英文单词 ≈ 1-1.5 个 token
1.3 Transformer 架构(极简白话版)¶
不需要懂公式,只要理解这三点:
1) 自注意力机制(Self-Attention) 白话:写作文时,当你写到"他"这个字,你的大脑会自动回头看看前面提到的是谁。Transformer 也是这样——每个词都会"回头看"前面所有词,判断哪些词跟自己关系密切。
2) 并行处理 白话:以前的模型(RNN)像排队过独木桥,一个词一个词处理。Transformer 像高速公路,所有词同时处理,所以训练快得多。
3) 层层叠加 白话:一层 Transformer 就像一次"思考"。GPT-4 有几十上百层,就像反复思考了几十遍,每一遍都比上一遍理解得更深。
一句话总结:Transformer = 一种让机器能"同时看完整段话,并且知道哪些词互相关联"的架构,2017年由 Google 提出,彻底改变了 NLP 领域。
1.4 预训练 vs 微调 vs RLHF¶
把训练 LLM 想象成培养一个人:
| 阶段 | 白话比方 | 做了什么 |
|---|---|---|
| 预训练(Pre-training) | 小孩从出生到18岁,读了图书馆所有的书 | 用互联网文本学习语言规律,学会"接下一个词" |
| 微调(Fine-tuning / SFT) | 上大学选了专业,有老师带着做练习 | 用人工标注的高质量问答数据,教模型"怎么好好回答问题" |
| RLHF | 毕业后进入社会,根据大家的反馈不断改进 | 人类打分反馈 → 训练奖励模型 → 强化学习让回答更符合人类偏好 |
面试关键词: - 预训练 = 自监督学习,无标签,规模巨大 - SFT = Supervised Fine-Tuning,有标签数据 - RLHF = Reinforcement Learning from Human Feedback - DPO = Direct Preference Optimization(RLHF 的简化版,2024年后流行)
1.5 上下文窗口(Context Window)¶
白话:上下文窗口就是模型的"短期记忆容量"。就像考试时允许你带一张小抄纸,纸越大能写的东西越多。
各模型对比(2025年): | 模型 | 上下文窗口 | 约等于 | |------|-----------|--------| | Claude 3.5 Sonnet | 200K tokens | 约 15 万字 / 一本小说 | | Claude Opus 4 | 200K tokens | 约 15 万字 | | GPT-4o | 128K tokens | 约 10 万字 | | GPT-o3 | 200K tokens | 约 15 万字 | | Gemini 2.5 Pro | 1M tokens | 约 75 万字 / 5本小说 | | Llama 3.1 405B | 128K tokens | 约 10 万字 | | DeepSeek-V3 | 128K tokens | 约 10 万字 |
对生信的意义:上下文越大,一次能放进去的代码/论文/数据就越多,回答越准。
1.6 温度(Temperature)和采样¶
白话:温度控制的是模型"有多随机"。
Temperature = 0:每次都选最确定的答案(适合写代码、做分析)
Temperature = 0.7:有一定创造性(适合写文案、头脑风暴)
Temperature = 1.0+:很随机、很发散(可能会胡说八道)
比方:想象你在餐厅点菜 - 温度=0:永远点你最爱的那道菜 - 温度=0.7:大概率选爱吃的,偶尔尝试新菜 - 温度=1.5:完全随机点,可能点到黑暗料理
其他采样参数:
- top_p(核采样):只从概率最高的前 p% 的词里选
- top_k:只从概率最高的前 k 个词里选
- max_tokens:限制输出最多多少个 token
2. 2025-2026 主流模型对比¶
2.1 Claude(Anthropic)系列¶
| 模型 | 发布时间 | 定位 | 上下文 | 特点 |
|---|---|---|---|---|
| Claude Opus 4 | 2025.5 | 旗舰级 | 200K | 最强推理、编程、长文本分析 |
| Claude Sonnet 4 | 2025.5 | 性能均衡 | 200K | 性价比最高,日常首选 |
| Claude 3.5 Sonnet | 2024.10 | 上代主力 | 200K | 编程能力极强,仍被广泛使用 |
| Claude 3.5 Haiku | 2024.10 | 轻量快速 | 200K | 速度快、价格低 |
Claude 的优势: - 编程能力顶尖(有 Claude Code 工具链) - 回答安全性好,不容易输出有害内容 - 长文本处理稳定 - Artifacts 功能可直接生成可运行代码
2.2 GPT(OpenAI)系列¶
| 模型 | 发布时间 | 定位 | 上下文 | 特点 |
|---|---|---|---|---|
| GPT-4o | 2024.5 | 多模态主力 | 128K | 文本+图片+音频,速度快 |
| GPT-o3 | 2025.4 | 深度推理 | 200K | 思维链推理,数学/编程强 |
| GPT-o4-mini | 2025.4 | 轻量推理 | 128K | 便宜版推理模型 |
| GPT-4.1 | 2025.4 | 编程强化 | 1M | 指令遵循优秀,超长上下文 |
GPT 的优势: - 生态最成熟,第三方集成最多 - 多模态能力强(图片、语音) - 推理模型(o系列)在数学和编程特定题目上强
2.3 Gemini(Google)系列¶
| 模型 | 发布时间 | 定位 | 上下文 | 特点 |
|---|---|---|---|---|
| Gemini 2.5 Pro | 2025.3 | 旗舰 | 1M | 上下文窗口最大,多模态强 |
| Gemini 2.5 Flash | 2025.3 | 快速高效 | 1M | 性价比高,适合批量处理 |
| Gemini 2.0 Flash | 2024.12 | 上代快速 | 1M | 免费 tier 慷慨 |
Gemini 的优势: - 上下文窗口最大(1M tokens) - 与 Google 生态深度整合 - 免费额度高,学生友好 - 多模态能力原生(视频理解等)
2.4 开源模型¶
| 模型 | 开发者 | 参数量 | 特点 |
|---|---|---|---|
| Llama 3.1 | Meta | 8B/70B/405B | 开源标杆,社区生态最大 |
| Qwen 2.5 / Qwen3-Coder | 阿里 | 0.5B-480B | 中文能力极强,Qwen3-Coder-30B 可本地跑 |
| DeepSeek-V3 / R1 | 深度求索 | 671B(MoE) | 性价比极高,R1 推理能力强 |
| Mistral Large 2 | Mistral | 123B | 欧洲出品,多语言,开源 |
| GLM-4.6 | 智谱 | - | 中文好,编程/Agent 能力强 |
开源模型优势: - 免费,可本地部署 - 数据隐私有保障 - 可以微调定制 - 适合生信场景(不想把敏感数据传到云端)
2.5 综合对比表¶
| 维度 | Claude Opus 4 | GPT-o3 | Gemini 2.5 Pro | DeepSeek-V3 | Llama 3.1 405B |
|---|---|---|---|---|---|
| 编程 | ★★★★★ | ★★★★☆ | ★★★★☆ | ★★★★☆ | ★★★★☆ |
| 中文 | ★★★★☆ | ★★★★☆ | ★★★★☆ | ★★★★★ | ★★★☆☆ |
| 推理 | ★★★★★ | ★★★★★ | ★★★★☆ | ★★★★☆ | ★★★★☆ |
| 长文本 | ★★★★☆ | ★★★★☆ | ★★★★★ | ★★★★☆ | ★★★★☆ |
| 上下文 | 200K | 200K | 1M | 128K | 128K |
| 价格 | 高 | 高 | 中 | 低 | 免费(本地) |
| 本地部署 | 不可 | 不可 | 不可 | 可(需多卡) | 可 |
| API 调用 | 可 | 可 | 可 | 可 | 可 |
| 适合场景 | 复杂编程/分析 | 数学推理 | 长文档处理 | 日常编程/中文 | 本地隐私场景 |
API 价格参考(2025年,每百万 token):
| 模型 | 输入价格 | 输出价格 |
|---|---|---|
| Claude Opus 4 | $15 | $75 |
| Claude Sonnet 4 | $3 | $15 |
| GPT-4o | $2.5 | $10 |
| GPT-o3 | $10 | $40 |
| Gemini 2.5 Pro | $1.25-2.5 | $10-15 |
| DeepSeek-V3 | $0.27 | $1.10 |
3. 怎么使用 LLM¶
3.1 API 调用(Python 示例)¶
方式一:调用 OpenAI API¶
# pip install openai
from openai import OpenAI
# 初始化客户端
client = OpenAI(api_key="sk-你的密钥") # 从 platform.openai.com 获取
# 发送请求
response = client.chat.completions.create(
model="gpt-4o", # 模型名
messages=[
{"role": "system", "content": "你是一个生物信息学助手"},
{"role": "user", "content": "解释什么是 FASTQ 文件格式"}
],
temperature=0.3, # 低温度 = 更确定的回答
max_tokens=1000 # 最多输出 1000 个 token
)
# 获取回复
answer = response.choices[0].message.content
print(answer)
方式二:调用 Anthropic Claude API¶
# pip install anthropic
import anthropic
# 初始化客户端
client = anthropic.Anthropic(api_key="sk-ant-你的密钥")
# 发送请求
message = client.messages.create(
model="claude-sonnet-4-20250514", # 模型名
max_tokens=1024,
messages=[
{"role": "user", "content": "用白话解释宏基因组分析的步骤"}
]
)
# 获取回复
print(message.content[0].text)
方式三:调用 DeepSeek API(国内可用,便宜)¶
# DeepSeek 兼容 OpenAI 格式,所以直接用 openai 库
from openai import OpenAI
client = OpenAI(
api_key="sk-你的密钥",
base_url="https://api.deepseek.com" # 改一下 base_url 就行
)
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "user", "content": "写一个用 Python 计算 Shannon 多样性指数的函数"}
]
)
print(response.choices[0].message.content)
方式四:调用 Gemini API(免费额度高)¶
# pip install google-genai
from google import genai
client = genai.Client(api_key="你的密钥") # 从 aistudio.google.com 获取
response = client.models.generate_content(
model="gemini-2.5-flash",
contents="帮我写一个 Snakemake 宏基因组分析流程"
)
print(response.text)
3.2 本地部署(Ollama)¶
Ollama 是最简单的本地 LLM 部署工具,一行命令就能跑。
# 安装 Ollama(Linux/Mac)
curl -fsSL https://ollama.com/install.sh | sh
# 下载并运行模型(首次会自动下载)
ollama run llama3.1 # Meta 的 Llama 3.1 8B(需要 8GB 内存)
ollama run qwen2.5:14b # 阿里的 Qwen 2.5 14B(需要 16GB 内存)
ollama run deepseek-r1:8b # DeepSeek 推理模型小版
# 用 API 方式调用本地模型(兼容 OpenAI 格式)
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama3.1",
"messages": [{"role": "user", "content": "什么是 OTU?"}]
}'
Python 调用本地 Ollama:
from openai import OpenAI
# 本地调用,无需 API key
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama" # 随便填
)
response = client.chat.completions.create(
model="qwen2.5:14b",
messages=[{"role": "user", "content": "解释 MetaPhlAn 的工作原理"}]
)
print(response.choices[0].message.content)
Ollama 硬件需求: | 模型大小 | 内存需求 | 适合 | |---------|---------|------| | 7-8B | 8GB RAM | 日常问答、简单编程 | | 14B | 16GB RAM | 较好的编程/中文 | | 32-70B | 32-64GB RAM | 接近闭源模型水平 |
3.3 AI 编程助手¶
Claude Code / OpenCode¶
# 安装 Claude Code(需要 Node.js)
npm install -g @anthropic-ai/claude-code
# 在项目目录启动
claude
# 或者使用 OpenCode(开源替代)
# https://github.com/anomalyco/opencode
日常用法: - 直接在终端跟 AI 对话,它能读写你的代码文件 - 让它帮你写脚本、调试、重构 - 适合生信流程开发(写 Snakemake、Shell 脚本等)
Cursor(AI IDE)¶
- 基于 VS Code 的 AI 编辑器
- 支持多种模型(Claude/GPT/本地)
- Tab 自动补全 + 聊天窗口
- 适合日常写代码
使用建议¶
| 场景 | 推荐工具 |
|---|---|
| 写生信流程脚本 | Claude Code / OpenCode |
| 日常 Python 编程 | Cursor + Claude |
| 处理敏感数据 | Ollama 本地模型 |
| 快速问答 | Claude Web / ChatGPT |
| 论文阅读辅助 | Gemini(长上下文) |
4. LLM 的局限性¶
4.1 幻觉(Hallucination)¶
白话:模型有时候会一本正经地胡说八道,编造看起来很像真的但实际不存在的信息。
例子: - 编造不存在的论文引用(DOI 看起来很真) - 编造不存在的 Python 包或函数名 - 瞎说某个生信工具有某个参数
应对方法: - 关键信息一定要去官方文档/PubMed 验证 - 代码一定要跑一遍看能不能运行 - 让模型加上 "如果不确定请说不确定"
4.2 知识截止(Knowledge Cutoff)¶
白话:模型只知道训练数据截止日期之前的信息,之后的事它不知道。
各模型知识截止: | 模型 | 训练数据截至 | |------|-------------| | Claude Opus 4 | 2025年初 | | GPT-4o | 2024年中 | | Gemini 2.5 Pro | 2025年初 |
应对:用带联网搜索功能的工具(如 Perplexity、带搜索的 Claude)
4.3 推理能力局限¶
白话:LLM 擅长"模式匹配"而非"真正逻辑推理"。
- 多步数学推理容易出错
- 复杂逻辑链条会断裂
- "看起来对但仔细一想不对"的情况
缓解方法: - 使用推理模型(o3、DeepSeek-R1) - 要求模型"一步一步思考"(Chain of Thought) - 把复杂问题拆成小问题
4.4 其他局限¶
- 无法执行代码:模型只会"生成"代码,不会真的运行(除非有工具支持)
- 上下文有限:超出窗口的内容会被"遗忘"
- 一致性问题:同样的问题问两次可能得到不同答案
- 安全风险:可能泄露训练数据中的隐私信息
5. 和生信的关系¶
5.1 用 LLM 辅助编程¶
最常见的场景:
# 场景1:让 AI 帮你写宏基因组分析脚本
"""
提示词:用 Python 写一个脚本,读取 MetaPhlAn 的物种丰度表,
计算 Shannon 多样性指数和 Simpson 多样性指数,
输出每个样本的多样性值到 CSV 文件
"""
# 场景2:让 AI 帮你调试 Snakemake 报错
"""
提示词:我的 Snakemake 流程报错如下:
[报错信息]
请帮我分析原因并修复
"""
# 场景3:让 AI 解释别人的代码
"""
提示词:请逐行解释以下 R 代码的功能:
[粘贴代码]
"""
5.2 论文阅读辅助¶
# 好用的提示词模板
"请用中文总结这篇论文的:
1. 研究目的
2. 方法(用了什么数据/工具)
3. 主要结果
4. 局限性
5. 对我的宏基因组研究有什么参考价值"
"请解释这段 Methods 里的统计方法:[粘贴原文]"
"这篇论文和 [XX论文] 的方法有什么区别?"
5.3 代码审查(Code Review)¶
# 让 AI 审查你的代码
"请审查以下 Python 代码,检查:
1. 是否有 bug
2. 是否有性能问题
3. 代码风格是否规范
4. 建议改进的地方
[粘贴你的代码]"
5.4 生信特定场景总结¶
| 场景 | 怎么用 LLM | 注意事项 |
|---|---|---|
| 写分析脚本 | 描述需求让 AI 生成 | 一定要测试能不能跑 |
| 调参数 | 问"bowtie2 -k 参数是什么意思" | 要对照官方手册 |
| 画图 | "用 matplotlib 画热图" | 检查坐标轴/图例对不对 |
| 读文献 | 上传 PDF 让 AI 总结 | 引用要回原文核实 |
| 写方法学 | 让 AI 帮你理顺 Methods 段落 | 自己必须理解原理 |
| 统计分析 | 问"什么时候用 Wilcoxon 而不是 t-test" | 要理解前提假设 |
6. 面试怎么答¶
Q1: 请简单介绍一下什么是大语言模型?¶
参考回答:
大语言模型是基于 Transformer 架构、用海量文本数据训练的深度学习模型。它的核心能力是通过学习语言中的统计规律,根据上下文预测下一个词。训练过程分三步:预训练学习通用语言知识,SFT 微调学习任务格式,RLHF 对齐人类偏好。目前主流的有 Claude、GPT、Gemini 等闭源模型,以及 Llama、Qwen、DeepSeek 等开源模型。
Q2: 你在日常工作/学习中怎么使用 AI 工具的?¶
参考回答:
我日常使用 Claude Code 作为编程助手。具体来说: 1. 写生信分析脚本时,先描述需求让 AI 生成初稿,然后我审查修改 2. 遇到报错时,把错误信息粘贴给 AI 分析原因 3. 阅读英文文献时,让 AI 帮我翻译和总结关键方法 4. 学习新工具时,让 AI 解释参数含义和使用示例
但我始终把 AI 当作辅助工具,关键的分析逻辑和结果解读是我自己完成的,而且 AI 生成的代码我一定会测试验证。
Q3: LLM 有什么局限性?在生信分析中应该怎么避免?¶
参考回答:
主要局限性有三个: 1. 幻觉:可能编造不存在的函数或参数。我的做法是所有代码必须实际运行测试,关键参数对照官方文档。 2. 知识过时:模型不知道最新的软件版本更新。我会查看工具的 GitHub Release 和 ChangeLog。 3. 推理局限:复杂的统计分析逻辑可能出错。我会把大问题拆成小步骤,逐步验证每一步是否正确。
总的原则是:AI 负责加速,人负责质控。
Q4: 你了解 Prompt Engineering(提示工程)吗?¶
参考回答:
Prompt Engineering 就是通过设计输入提示来引导模型输出更好结果的技巧。常用方法包括: 1. 角色设定:如"你是一个有10年经验的生物信息学家" 2. Few-shot 示例:给几个输入-输出的例子 3. Chain of Thought:要求"一步一步思考" 4. 格式约束:指定输出格式如 JSON、Markdown 表格 5. 分步拆解:复杂任务拆成多个小 prompt
在生信工作中,我常用"给出你的推理过程"来确保模型的分析逻辑是对的。
Q5: 如果让你在项目中集成 LLM API,你会怎么做?¶
参考回答:
- 选模型:根据场景选择——如果需要编程辅助用 Claude,需要长文本处理用 Gemini,追求便宜用 DeepSeek
- API 集成:用 Python 的 openai/anthropic 库调用,设置合理的 temperature 和 max_tokens
- 错误处理:处理网络超时、token 超限、速率限制等异常
- 成本控制:设置每日调用上限,用缓存避免重复请求
- 安全考虑:敏感数据不能直接传给 API,必要时用本地模型(如 Ollama + Qwen)
- 评估效果:设计 benchmark 评估模型输出质量
Q6: 解释一下 RAG 是什么?有什么应用?¶
参考回答:
RAG(Retrieval-Augmented Generation)是检索增强生成。原理是:先从外部知识库检索相关文档,然后把检索到的内容和用户问题一起送给 LLM 生成回答。
好处是解决了 LLM 知识过时和幻觉的问题——让模型基于真实文档回答,而非凭记忆。
在生信中的应用:比如构建一个"文献助手",把实验室相关的几百篇论文向量化存入数据库,然后问"我们实验室之前做的肠道菌群分析用了什么统计方法?",系统就能检索到相关论文段落并给出准确回答。
Q7: 开源模型和闭源模型怎么选?¶
参考回答:
看三个因素: 1. 数据隐私:如果涉及患者数据或未发表结果,用开源本地模型(Ollama + Llama/Qwen) 2. 性能需求:如果需要最好的编程/推理能力,用闭源模型(Claude/GPT) 3. 成本预算:学生经费有限可以用 DeepSeek API(便宜)或免费的 Gemini
我的做法是混合使用:日常编程用 Claude Code,处理敏感数据用本地 Qwen,快速问答用免费的 Gemini。
7. 延伸阅读¶
入门级¶
- Anthropic Academy 课程 - Claude 官方教程,免费
- 李沐 - 动手学深度学习 - 中文深度学习教材
- 3Blue1Brown - 神经网络系列视频 - 直觉式理解
- Jay Alammar - The Illustrated Transformer - 图解 Transformer
进阶级¶
- 论文:Attention Is All You Need(Transformer 原始论文,2017)
- 论文:Language Models are Few-Shot Learners(GPT-3,2020)
- Hugging Face 文档 - 开源模型平台
- LangChain 文档 - LLM 应用开发框架
实用工具¶
- Ollama - 本地 LLM 最简部署
- OpenRouter - 一个 API 访问所有模型
- LM Studio - 图形界面本地模型
- Perplexity AI - 带联网搜索的 AI
生信 + AI 相关¶
小结¶
| 你需要知道的 | 关键词 |
|---|---|
| LLM 是什么 | 自回归语言模型、预测下一个 token |
| 为什么能力强 | 海量数据 + Transformer + RLHF |
| 怎么用 | API 调用 / Ollama 本地 / 编程助手 |
| 局限性 | 幻觉、知识截止、推理弱 |
| 生信怎么用 | 写代码、调试、读文献、数据分析辅助 |
| 选模型原则 | 隐私→本地、质量→闭源、省钱→DeepSeek |
最后更新:2025年5月 适用对象:生信方向应届生,基础薄弱但日常使用 AI 工具