SemIf
来自开放模型的语义判断,就在你的浏览器里。

一个实时、本地的实验

决策模型就在你的浏览器里。

同一个本地模型,既可以在不解码的情况下直接读取各个候选选项的概率,也可以逐 token 地把同样的分布写出来。选一个规模,在你自己的 GPU 上把两种方式都跑一遍,量一量差别。

纯浏览器没有后端你自己的计时1.56 GB 模型

这里没有等待名单!直接试就是了 ↓

默认选中 MiniCPM5 2B。在手机或配置较低的设备上,如有需要可在模型框里切换到 Qwen3 0.6B。

00 / 准备

先把模型加载一次

更大的模型。加载可能较慢,在部分低端设备上也可能放不下。

实测模型质量原生权重 · 自有 + 公开基准
模型下载大小自有集扰动集TypeSafe
Qwen3 0.6B639 MB44.0%52.8%40.7%
MiniCPM5 2B1.56 GB68.6%69.3%63.7%
Qwen3.5 4B3.01 GB81.3%76.6%84.5%
官方发布的 Jev托管服务——88.3%

自有集两列用的是平衡准确率(balanced accuracy)。TypeSafe 是在同一份 102 行公开子集上的等样本一致率;Jev 为官方公布数值。浏览器端量化可能改变模型的准确率。

{{ text }}

下载 / 缓存—
只有点击加载后才会开始
模型加载—下载并准备
预热—为两种方法各做一次编译

权重来自 Hugging Face(通过 hf-mirror.com 镜像下载),并保存在你的浏览器缓存里。输入内容不会离开这个页面。首次加载可能需要几分钟,取决于所选模型、网络和 GPU。

01 / 决策

给它一个真实的抉择

试试示例
候选选项
3 / 20

两条路径拿到的是同一个决策问题。一条直接读取选项概率,另一条让模型把选项概率写成 JSON 文本。

你的决策状态 + 问题 + 选项
同一个本地模型MiniCPM5 · 2B
读取 logitsA…T 概率
写出 token{选项 + 概率}

02A / 直接读取

选项概率

不解码

读取模型的选项 logits,只在你自己给出的这些选项范围内做归一化。

等待运行
总计
—
输入
—
输出
1 次读取

02B / 生成

JSON 概率

逐 token

让模型估计同一组展示选项上的分布,并用 JSON 写出来。你可以看到每个 token 逐个到达。

等待运行
首 token
—
总计
—
输入
—
输出
—
实测墙钟时间比在你的 GPU 上跑一跑

两种方法在同一个已加载的模型上顺序运行,以免争抢同一块 GPU。先跑直接读取,再跑生成。

这些数字说明什么、又不说明什么

条件概率。直接读取得到的分数,只对展示出来的那些选项 token 做 softmax。它不是经过校准的置信度,也没有涵盖模型可能偏好的全部答案。

本地模型档位。手机档模型是用准确率换体积。MiniCPM 是桌面端默认项。4B 这个选项需要明显更多内存。它们都不声称能与 Jev 持平。

真实的本地计时。环境准备、预热、提示词准备、直接执行、首个生成的 token 和生成完成,都用 performance.now() 计时。页面上不会出现任何预置结果。

量化权重。这个演示通过 wllama 使用固定版本的 GGUF 构建。量化会同时影响生成质量和速度。