SYSTEM ONE MODELS · 架构科普§0
一个不写字的模型

什么是 Jev?

同一个问题,大语言模型给你一段话,Jev 直接给你一组可供程序使用的概率

大语言模型
问题
一个 token 接一个 token
“我建议转给技术组,因为这个问题涉及……”
Jev
问题
+ 3 个候选
候选 A
候选 B
候选 C
模型
并行评估
A
0.71
B
0.22
C
0.07

图 1 LLM 把计算铺在生成时间上,Jev 把候选判断铺在并行空间里

是什么面向 Choice、Score、Noul 的概率决策模型适合什么路由、审核、Agent 选动作、风险评分与门控
0输出 token 数
1一次 API 请求
255Choice 最多候选
从文字到数字§1

模型眼里的文字:Token 与 Embedding

神经网络不能直接读字。它先切分,再编号,最后把每个编号变成一串可计算的数字。

原始文字

“我喜欢研究 AI”

Token

喜欢研究AI

Token ID

[ 2769,
1599, 2850,
11041 ]

图 2 Token 不一定等于“一个词”,也可能是一个字或词的一部分

Embedding

把编号变成“坐标”

每个 token 对应一个高维向量。

“研究” = [0.12, −0.83, 0.44, …]
Token模型词表中的最小离散单位Embeddingtoken 的连续向量表示,后续 Attention 在这些向量上计算位置编码告诉模型“谁在前、谁在后”,否则词序会丢失
这一步在 BERT、LLM 与 NanoJev 中都存在。具体切词和编号取决于 tokenizer。02 / 17
从编号到模型输入§1.1

Embedding 不是一个数,而是一整条向量

以 BERT 为例,一个位置送进第一层 Transformer 的向量,由三部分逐维相加。

Token embedding“银行”这个 token 是谁
Position embedding它处在第 3 个位置
Segment embedding它属于句子 A 还是 B
最终输入向量x₃ ∈ ℝᵈ

图 3 图中只画 8 个格子。BERT Base 的 d=768,BERT Large 的 d=1024

每个位置一条向量长度为 d。句子有 n 个 token,整段输入就是 n × d 的矩阵。
向量会被训练模型并不知道“银行”的含义,训练让相关用法逐渐形成相近表示。
模型做法会变化BERT 直接加入位置向量;许多现代 LLM 改用 RoPE 把位置信息作用到 Q、K。
静态起点Embedding lookup 只看 token ID上下文化之后经过 Attention,同一个“银行”会因“取钱”或“河岸”得到不同表示
来源:BERT 原论文的 Input Representation。现代 LLM 的位置机制因模型而异。03 / 17
Transformer 的核心操作§2

Self-Attention:每个词都在找上下文

“Self” 表示同一段序列内部互相查看。模型会为不同位置分配不同权重。

小明银行取钱
取钱
.91
小明
.52
.34

图 3 理解“银行”时,“取钱”提供了强线索。图中的数值只用于解释概念。

QQuery

当前 token 想寻找什么信息?

KKey

每个 token 能提供哪类信息?

VValue

真正汇总进新表示的内容是什么?

先比较 Q 与 K 的匹配度,再按权重混合对应的 V
多头多个 Attention head 可以同时关注语法、指代、位置等不同关系每一层Attention 读取上下文,MLP 再对每个位置做非线性变换
常见写法:softmax(QKᵀ/√d)V。权重会随输入与层数变化。04 / 17
Q、K、V 到底怎样工作§2.1

一次 Attention 的四个计算步骤

仍以“银行”为当前 token。下面从它的输入向量出发,走到新的上下文化表示。

1

线性投影得到 Q、K、V

每个 token 的向量分别乘三个可训练矩阵。Q 用来发问,K 用来匹配,V 携带内容。

qᵢ=xᵢWQ kⱼ=xⱼWK vⱼ=xⱼWV
x银行Q
发问
K
匹配
V
内容
2

Q 与所有 K 做点积

“银行”的 q 与“小明、去、银行、取钱”的 k 比较。点积越大,当前 head 认为越相关。

sᵢⱼ=qᵢ·kⱼ / √dₖ
K小明0.2K−0.1K银行0.7K取钱1.6
3

Mask 后做 Softmax

禁止读取的位置先变成 −∞。Softmax 再把剩余分数变成总和为 1 的权重。

aᵢ=softmax(sᵢ + mask)
scores
0.2 −0.1 0.7 1.6
probabilities
.14 .09 .22 .55
4

按权重混合 V

模型把“取钱”的信息读得更多,把弱相关位置读得更少,得到“银行”的新表示。

yᵢ=Σⱼ aᵢⱼvⱼ
.14V小明.09V.22V银行.55V取钱y银行

“银行”读取谁?

小明
.14
.09
银行
.22
取钱
.55

从分数到新表示

Q·K
raw scores
softmax
.14 .09 .22 .55
加权求和
new y银行
.14V小明 + .09V + .22V银行 + .55V取钱
为什么除以 √dₖ避免维度升高后点积过大,导致 softmax 过早饱和真正学什么WQ、WK、WV 和后续输出投影都由任务损失共同更新
权重示例用于教学,不是某个真实模型的可视化结果。05 / 17
同一个公式,不同的可见范围§3

双向与因果 Attention 的区别

核心差别来自 attention mask:当前 token 到底获准看哪些位置。

BERT:左右都能看

适合理解一整段已经存在的文字。

LLM:只看左边与自己

生成下一个 token 时,未来内容还不存在。

允许读取被 mask 挡住
一句话记住BERT 像拿着全文做阅读理解。因果 LLM 像一边写、一边只回看已经写出的内容。
双向 ≠ 两遍每个位置在同一层里同时访问左右上下文普通 Attention没有唯一“普通”版本,双向与因果只是两种常见可见性规则
图中行表示正在更新的位置,列表示它可以读取的位置。06 / 17
Attention 只是半层工作§3.1

Transformer Block:读取上下文,再逐位置加工

一层通常包含 Attention、前馈网络、残差连接和归一化。不同模型主要在排列与细节上变化。

BERT 原始层 · Post-LN

输入 X
Multi-Head Self-Attention
Add 残差:X + Attention(X)
LayerNorm
Feed-Forward Network
Add 残差 + LayerNorm

现代 LLM 常见 · Pre-Norm

输入 X
RMSNorm / LayerNorm
Causal Self-Attention
残差相加
Norm → MLP
残差相加

图 7 Post-LN 与 Pre-Norm 的顺序不同,但都在反复执行“沟通 + 独立加工”

Attention让不同 token 之间交换信息,序列长度通常不变。
MLP对每个位置单独变换,通常先扩宽再压回 hidden size。
残差与归一化帮助深层网络保留信息并稳定训练。
“× L”表示这个 block 重复 L 层,每层有独立参数Encoder / Decoder并非有没有 Transformer block,而是 mask、交叉注意力和训练目标等结构选择不同
BERT 使用原始 Transformer 的 Post-LN 结构;不同现代 LLM 的 Norm、MLP 与 Attention 细节并不完全相同。07 / 17
BERT 的句级任务§4

[CLS]:给整句话预留的“汇总位置”

[CLS] 是一个特殊 token。经过多层双向 Attention 后,分类头读取它的最终向量。

[CLS]这家不错[SEP]

Transformer Encoder

Attention + MLP
Attention + MLP
Attention + MLP
读取最终
[CLS]
正面 94%

图 5 训练目标迫使 [CLS] 学会携带完成句级任务所需的信息

[CLS] 没有天然“句意”
它只是一个固定位置。微调时,梯度让它逐渐成为有用的句子表示。
词级任务不必只用 [CLS]
命名实体识别会读取每个 token 的输出,抽取式问答会预测答案起止位置。
BERT Base
12 层 · hidden 768
12 heads
110M 参数
BERT Large
24 层 · hidden 1024
16 heads
340M 参数
预训练原始 BERT 使用掩码语言模型 MLM,并加入下一句预测 NSP强项分类、抽取、检索编码;通常不负责自由生成长文本
为什么 BERT 学会了理解上下文§4.1

BERT 先做预训练,再为具体任务微调

预训练提供通用语言表示;微调用较少标注数据,把这些表示连接到分类、抽取或检索任务。

MLM · 掩码语言模型

小明去 [MASK] 取钱

模型同时利用左右上下文,预测被遮住的位置。

银行
0.82
河边
0.09
商场
0.04

NSP · 下一句预测

句子 A 他打开了电脑。
句子 B 屏幕亮了起来。
[CLS] 判断:B 是否紧跟 A?

这是原始 BERT 的第二个目标。许多后续模型调整或移除了 NSP。

图 9 预训练学习语言规律,微调把模型适配到具体输出

大量无标注文本随机遮住 token,构造监督信号
预训练 BERT得到通用双向编码器参数
任务微调接一个小 head,用标注样本共同更新
训练时通常对被 mask 的位置计算词表交叉熵;NSP 对 [CLS] 做二分类使用时真实输入一般没有 [MASK],模型把完整文本编码后交给下游 head
来源:BERT 原论文。这里描述原始 BERT 配方,不代表所有 encoder 模型都使用 NSP。09 / 17
Decoder-only 大语言模型§5

LLM:把“预测下一个 token”循环很多次

一次前向给出下一个 token 的概率。选中后把它接回输入,再运行下一步。

北京是中国的
北京是中国的 首都
北京是中国的首都
北京是中国的首都,也是 ...
Decoder × L因果 Attention
+ MLP
首都
.76
城市
.15
中心
.06
输出越长,解码次数越多。开放式表达能力来自这个自回归循环。
代表规模

Llama 3.1 参数量

8B
70B
405B
强项写作、对话、代码、开放式问答与多步推理结构化输出通常仍由 token 生成,再用 JSON schema、工具调用或约束解码收紧格式成本来源输入前向 + 每个输出 token 的连续解码,长回答会增加延迟
官方能确认什么§6

Jev 的输入输出已公开,内部网络仍是黑盒

可以研究它的行为与接口,但不能把某个熟悉架构直接当成 Jev 的真实内部实现。

State“客户被重复扣款,正在等待处理。”

共享上下文
Jevjev-1.13.0
Choice账单组 .86
技术组 .09 · 其他 .05
Noul需要退款:P(yes)=.93
Score紧急度:3.7 / 5

图 7 多个问题共享 state,但官方语义要求它们相互独立

公开可确认

文本输入,Choice / Score / NoulChoice 2–255 个候选多问题并行评估官方称使用 RLCD

尚未公开

参数量与层数Encoder / Decoder / MoE训练数据与权重内部校准和缓存实现
64k请求预算
≤32kstate + 最长问题
70–500ms官方时延区间
$0.042/ 百万输入 token
“不会幻觉”需要缩小理解范围:Jev 可以避免输出格式和候选集合之外的内容,但仍可能做出语义上错误的高置信判断。
三类模型放在一张图里§7

BERT、LLM、Jev 的结构与用途

三者都处理 token,但它们的可见范围、训练目标和输出接口服务于不同任务。

BERT
LLM
Jev
主结构
Encoder-only双向 Attention
Decoder-only因果 Attention
未披露只能确认产品行为
输出
上下文向量再接分类或抽取头
下一个 token循环生成文本
类型化概率Choice / Score / Noul
解码
通常 0 token一次编码
N 个 tokenN 次自回归步骤
0 token直接判断
常见用途
固定任务分类、抽取、检索
开放生成对话、写作、代码
程序决策路由、门控、选动作
BERT Base
110M
BERT Large
340M
Llama 3.1 8B
8B
Llama 3.1 70B
70B
Llama 3.1 405B
405B
Jev 1.13
未知

柱长只表达量级顺序,不按真实比例绘制。Jev 的低时延不能反推出参数量。

BERT:原论文。LLM:Llama 3.1 代表规模。Jev:官方未披露参数量、层数或拓扑。12 / 17
NanoJev · 源码可核对§8

NanoJev:用 0.6B Qwen 复刻“直接判断”

NanoJev 是 MIT 开源的独立功能复刻:把每个候选编码成路径,再直接产出 logits。它无法揭示 Jev 的私有实现。

State
+ Question
+ Candidate A
+ Decision: <EOS>
State
+ Question
+ Candidate B
+ Decision: <EOS>
State
+ Question
+ Candidate C
+ Decision: <EOS>
Qwen3-0.6B所有候选路径
放进一个 batch 前向
读取每条路径
最后一个 token
的 hidden state
LayerNorm

Linear(hidden → 1)

每个候选一个 scalar logit
State:\n{state}\n
Question type: choice
Question:\n{instruction}\n
Candidate:\n{name}: {description}\n
Decision: <EOS>
为什么读最后一个位置
Qwen 是因果 backbone。最后的 <EOS> 位置可以看到前面完整的 state、question 和当前 candidate,所以它的 hidden state 用作该候选摘要。
并行单位代码把所有问题的所有候选路径 flatten 后补齐长度,送入同一个 batch。
隔离方式每条路径只含自己的问题和候选,因此没有跨问题 Attention。
计算代价同一 state 会在 K 条候选路径里重复编码,batching 不等于前缀复用。
backbone 约 0.6B 参数。当前 README 明确把 shared-prefix inference 列为未完成路线。

图 13 NanoJev 的输入编码与 backbone readout,可由源码直接核对

来源:TianyuCodings/NanoJev,train_toy_decisions.py 与 TYPESAFE_CONTRACT.md。参数头估算按 hidden=1024。13 / 17
NanoJev · 从 hidden state 到概率§8.1

Decision Head:先独立打分,再按题型归一化

每条候选路径先产生一个基础标量 z。Choice 还可以让同一题的候选互相比较,再修正这些分数。

hlast
1024 维
LayerNorm
1024 维
Linear
1024 → 1
基础 logits
z₁, z₂, …, zₖ

Choice 的可选 Set Head

每个候选 h
拼接 log(K)
Linear
1025 → 128
4-head
Set Attention
tanh
残差变换
Linear 128 → 1
得到 Δz

最终分数为 z + Δz。Set Attention 只在同一道 Choice 的候选之间运行,并使用 padding mask 忽略补齐位置。

Booleanlogits = [0, z]
p(true)=sigmoid(z)

源码只编码语义上的 true 路径,false 的 logit 固定为 0。

Choicep = softmax(z₁…zₖ)

所有候选概率相加为 1,K 可以在推理时动态变化。

Scorescore = Σ k·pₖ

对 2–10 个有序等级归一化,再返回概率加权等级。

额外参数hidden=1024 时,LayerNorm、scalar head 与 set head 合计约 200,578 参数,约 0.20M训练信号完整问题上的交叉熵同时比较所有有效候选,不把候选拆成互不相关的二分类样本重要限制归一化分布不自动代表概率已校准,仍需在独立 calibration split 上验证

图 14 这部分来自 NanoJev 代码,仍不能代表商业 Jev 的内部 head

来源:NanoJev DecisionModel.forward 与 answer_from_probabilities。参数量为按源码层尺寸逐项计算。14 / 17
数据与训练配方§9

NanoJev 如何把游戏状态变成决策分布

当前统一 checkpoint 覆盖 Maze、Snake 与两个 ViZDoom 任务,训练单位是一道完整问题。

Predict Position
11,173 ViZDoom Basic
5,160 Maze
1,469 Snake
958

图 10 每个 target variant 共 18,760 道问题,训练 split 存 10,898 道,其中 10,893 道通过有效性过滤

游戏轨迹状态、问题、候选、目标分布
完整问题 batch候选不拆散
交叉熵对整组候选分布监督
统一 checkpoint四个游戏共用模型
1e−5backbone LR
1e−4decision head LR
step 400选中的 checkpoint
BF16训练前向精度
采样权重Maze 1/3 · Snake 1/3 · Basic 1/6 · Predict Position 1/6两阶段先冻结 backbone 训练 head,随后解冻并以不同学习率共同更新当前缺口README 路线图仍将 RLCD post-training 与 shared-prefix inference 标为未完成
来源:NanoJev README、UNIFIED_DEVELOPMENT_RELEASE.md 与训练源码。发布标签 unified-games-v1。15 / 17
开源项目报告的 held-out 游戏结果§10

NanoJev 在四个游戏里的表现

同一观察接口、候选动作和 seeded epsilon-greedy controller 下,项目作者报告了 274 个 test cases。

模型
Maze
/10
Snake
/8
Basic
/128
Predict
/128
NanoJev
4
8
128
27
Jev
7
8
56
11
Untuned Qwen
2
0
56
11
Maze · NanoJev
40% Maze · Jev
70% Basic · NanoJev
100% Basic · Jev
43.8% Predict · NanoJev
21.1% Predict · Jev
8.6%
如何正确解读:这些是 NanoJev 项目作者构造并报告的游戏任务,不是独立第三方评测,也不能证明 NanoJev 在通用语言理解上超过 Jev。Maze 上 Jev 更好,Snake 持平,两个 ViZDoom 任务里 NanoJev 更好。
价值证明“0.6B backbone + 动态候选头 + 0 token 解码”是一条可运行的开源路线缺口任务范围窄,校准、跨领域泛化、延迟与成本仍需独立复测
Jev Research 起点§11

最值得优先验证的六个问题

研究目标不只是“答对多少”,还要知道概率是否可信、规模如何增长、失败发生在哪里。

01

概率校准

可靠性图、ECE、Brier、NLL。检查 0.9 是否真的约有 90% 正确。

02

候选数 K

从 2 扩到 255,观察准确率、时延、显存与 softmax 稳定性。

03

问题数 Q

同一 state 并行 1、4、16、64 道问题,测吞吐与问题隔离。

04

上下文长度

加入无关信息、长证据与冲突证据,观察性能和置信度漂移。

05

候选顺序与措辞

打乱候选、改写描述,检测位置偏差和语义脆弱性。

06

高置信错误

专门收集 confidence 高却错误的案例,建立拒答或人工复核阈值。

第 1 阶段 · 公平基线同一标注集比较 BERT/DeBERTa、结构化 LLM、NanoJev 与 Jev API。
第 2 阶段 · 压力测试系统改变 K、Q、上下文长度、顺序和 OOD 程度。
第 3 阶段 · 决策验证把概率接进真实路由策略,测端到端收益与错误成本。
BERT 是高效的双向文本编码器;LLM 是通用的自回归生成器;Jev 提供面向程序的概率决策接口。NanoJev 给出了一个可读源码、可复现实验的 0.6B 近似实现。