LLM Basics
上文 = 被预测位置之前的全部 token 序列
logits -> 概率表 P (鸡 | xxx 白切 ) = 0.9
“小学数学课上,老师问:1+1=” │ “2” ≈ 0.98
“在二进制运算中,1+1=” │ “10” 概率最高
llm 不维护固定的表
Q: 每次都会输入所有的上下文?
Q: KV Cache?
① 生成过程中:KV cache。如果真的每吐一个字就把几万 token 从头跑一遍,代价是 O(长度²) 起步,没法用。实际做法:每个位置算过的 K、V 向量存下来;新 token 只算自己的 Q,去跟缓存里的全体 K 做注意力。前文只过一遍网络,后续增量续算——数学结果和“每次全算”严格一致,只是不重复劳动。(这就是为什么叫“KV cache”,而 Q 不缓存——旧位置的 Q 用完就没用了。这套机制正是你 research/qkv-lineage 和 attention debugger 研究的那台机器的运行时形态。)
② 轮与轮之间:API 无状态 + prompt cache。对话式 API 每一轮确实重新提交整个历史——服务端不替你记上一轮(无状态设计)。但服务端可以按前缀缓存已算好的 KV:这轮的前 N 万 token 和上轮一模一样,就直接命中缓存,只算新增部分。你平时看到的 “prompt caching” 计费折扣,卖的就是这个——本 session 也在用它。
Q: 上下文窗口
是什么