跳至内容

大语言模型入门

这篇用最少的概念讲清楚大语言模型(LLM)是怎么回事:它在预测什么、token 和上下文窗口是什么、几个关键参数怎么调,并用 Claude API 跑通第一个调用。

LLM 到底在做什么

大语言模型本质上是一个**「预测下一个词」的概率机器**。给它一段文本,它根据海量语料学到的规律,预测接下来最可能出现的内容,一个 token 一个 token 地往外吐,连起来就成了流畅的回答。

它之所以「像懂了」,是因为预测下一个词这件事,逼着模型在训练中学会了语法、事实、推理模式乃至代码结构。现代主流模型基于 Transformer 架构,核心是注意力机制(Attention):生成每个词时,模型会「回看」上下文里所有词并按相关度加权,从而抓住长距离依赖。入门阶段记住这个直觉即可,不必深究数学。

Token 与上下文窗口

模型不是按「字」处理文本,而是按 token——一种介于字符和单词之间的片段。英文里一个 token 约 4 个字符,中文大致一个字对应 1~2 个 token。

上下文窗口(Context Window) 是模型一次能「看到」的 token 总量,输入和输出都算在内。窗口越大,能塞进的资料、对话历史越多。这也是计费单位——调用按输入 token + 输出 token 计价。

不要用 OpenAI 的 tiktoken 估算 Claude 的 token 数,会偏差较大。需要精确计数时用 Anthropic 提供的 count_tokens 接口,传入你实际要用的模型 ID。

跑通第一个 Claude 调用

以 Anthropic 的 Claude 为例。先安装官方 SDK 并配置密钥:

pip install anthropic
export ANTHROPIC_API_KEY="sk-ant-..."   # 你的 API Key

最小可运行示例:

from anthropic import Anthropic

client = Anthropic()  # 自动读取环境变量 ANTHROPIC_API_KEY

resp = client.messages.create(
    model="claude-opus-4-8",                       # 模型 ID
    max_tokens=1024,                               # 本次回复的 token 上限
    system="你是一个简洁专业的技术助手,用中文回答。",   # 系统提示:定角色与规则
    messages=[
        {"role": "user", "content": "用一句话解释什么是向量数据库。"},
    ],
)

print(resp.content[0].text)

几个关键参数:

  • model:模型 ID。当前主力是 claude-opus-4-8(最强)、claude-sonnet-4-6(速度与能力均衡)、claude-haiku-4-5(最快最省)。
  • max_tokens:单次回复的 token 上限,是硬截断——设太小回答会戛然而止。一般非流式给 4K~16K,长输出要用流式。
  • system:系统提示,用来设定角色、语气和规则,比塞进用户消息里更稳定。详见 提示工程实践
  • messages:对话历史,由 userassistant 交替组成。多轮对话就是把之前的回复也追加进数组。

返回的 resp.content 是一个内容块数组,纯文本回复取 resp.content[0].text

关于 temperature

temperature(温度)是 LLM 的经典参数,控制输出的随机性:值越低越确定、越保守(适合抽取、分类);越高越发散、有创意(适合头脑风暴)。这是理解 LLM 行为的重要概念。

但要注意:在 Claude 最新的 Opus 4.8 / Fable 5 等模型上,temperaturetop_ptop_k 这些采样参数已被移除,传了会直接报 400 错误——官方建议改用「提示词 + 思考力度(effort)」来调节行为。部分模型(如 Sonnet 4.6 / Haiku 4.5)仍接受单个 temperature(0~1)。所以上面的示例特意没有传 temperature。动手前先确认你用的模型支持哪些参数。

一句话小结

LLM 是按 token 预测下一个词的概率机器;用好它先搞清楚 token、上下文窗口与计费,再掌握 model / max_tokens / system / messages 四个核心参数。会调用之后,真正拉开差距的是提示工程——下一篇见。

最后更新于