瑞通 Ruitongruitong.io

The same model, different accelerators.
How much do the answers actually change?

Nobody publishes this number. We are going to.

If you move an LLM from NVIDIA to AMD, Huawei Ascend, Intel Gaudi or AWS Trainium, the outputs will not be identical. Floating-point arithmetic is not associative, so different kernels reduce in a different order and the logprobs shift. That is expected and unavoidable.

The question that matters is how much — and whether the change you are seeing is ordinary numerical noise or a genuine porting fault. Today there is no public reference to answer that against.

The gap. Huawei's msprobe compares tensors at the operator level. MLCommons publishes 99%/99.9%-of-FP32 for a handful of benchmark models. vLLM's own Ascend accuracy CI accepts 5% drift against a hardcoded value with no GPU baseline column at all. Every one of them tells you to run an accuracy test. None of them gives you a number to compare against.

What the gate detects — measured on real hardware

Before publishing accuracy deltas we had to establish that our own measurement works. It is calibrated against a corpus of real logprobs captured from Qwen3-8B running on an NVIDIA A40, not from synthetic fixtures. We inject faults that mimic real porting failures and record whether the gate catches them, and at what magnitude.

Rig: vLLM, temperature=0, seed=1234, top_logprobs=20, 16 prompts (EN + 中文). The corpus is published, so every number below is reproducible offline.

ScenarioWhat it mimicstoken-matched ΔprobVerdict
Identical0.0pass
bfloat16 roundingcorrect port, different precision1.29e-03pass
Scale logprobs ×1.011% temperature error3.66e-03fail
Scale logprobs ×1.05softmax / temperature bug1.80e-02fail
Corrupt 1 position in 8intermittent kernel fault0.993fail
Swap top-2 tokenstransposed operator output1.000fail
Shift positions by 1off-by-one in KV-cache indexing1.000fail
Demote the argmaxcatastrophic port failure1.000fail

Those fault magnitudes are measured against a simulated correct port — bfloat16 rounding applied to the A40’s own output. We then tested that simulation against two real GPUs, and it did not survive. See below.

The first real cross-hardware measurement

NVIDIA A40 (Ampere) against NVIDIA RTX 6000 Ada. Same vendor, same 48 GB, same vLLM image, same Qwen3-8B, same seed, both warm and both individually bit-exact. The only variable is the silicon.

MeasureResult
Identical output text45 / 61 prompts
Different output text16 / 61 prompts (26%)
Top-1 token agreement (before divergence)1.000
Worst token-matched Δprob (before divergence)0.195
Probability-mass delta0.0000791

Two NVIDIA GPUs running an identical stack produce different text on 26% of prompts (95% CI 16.8–38.4%). Not merely different distributions — different sentences.

Measured twice on separately rented pods. Restricted to the 16 prompts used in the first run, the second reproduced it to nine decimal places (0.122442606) — so this is a deterministic property of the two GPU models, not an artefact of one rental. Both sides were bit-exact on their own warm repeat, 61/61.

Divergence tracks output length, not prompt type. We widened the corpus expecting open-ended prompts to dominate; they did not. Two short factual questions diverged — including “What is the chemical formula for water?” at 13 generated tokens. Diverged prompts averaged 49 tokens against 41 overall. So the practical guidance is: the longer the generation, the more divergence to expect — a classification workload and a long-form generation workload do not carry the same risk.

This is the number the industry does not publish, and it reframes the question. Before you can ask whether an Ascend or AMD port is faithful, you have to know what faithful looks like between two cards from the same vendor. It is not zero.

It also broke our own threshold, so we are publishing that too

We had calibrated the gate at 2.2e-03 using bfloat16 rounding as a stand-in for two hardware kernels disagreeing. Measured against real silicon:

Valuevs. real noise
Simulated bf16 noise (what we calibrated on)1.29e-0395× too small
Our published threshold2.20e-0356× too small
A ×1.05 temperature fault1.80e-026.8× too small
Measured cross-silicon noise1.22e-01

Simulated rounding understated the real effect by 95×. Worse, genuine cross-silicon variation is larger than a real temperature bug — so a single distance metric, on its own, cannot tell a correct port on new hardware apart from a broken one.

How we fixed it — and the hole we found in the obvious fix

The tempting fix was to drop distribution distance entirely and gate on the two metrics with a perfect record on real hardware: top-1 agreement (1.000 at every compared position, three independent runs) and probability-mass preservation. We tested that against every fault before shipping it. It has a hole.

A transposed-operator bug — logprob values scrambled, token identity untouched — moves both of those by exactly zero. Permuting values within a row changes neither which token sits at rank 0 nor the row’s sum. Only a metric that matches probability by token identity catches it.

So the gate is compound: three metrics, any one failing means FAIL. Distribution distance stays — recalibrated, not loosened. Its ceiling moved from 0.0022 to 0.4402: the geometric mean of measured real cross-hardware noise (0.195) and the weakest fault it must catch (0.993), clear by 2.26× on each side. The old number was never a wrong idea; it was anchored to a simulation that was 95× too optimistic.

Disclosed rather than buried: a 1% temperature error is not reliably caught by any of the three once thresholds tolerate real cross-hardware noise. No threshold wide enough for 0.195 can also catch a fault scoring 0.004. Our test suite asserts this gap exists, so it cannot close or widen silently.

Caveat we will not bury: 61 prompts still leaves a 95% interval of 16.8–38.4%. The rate did not measurably change when we went from 16 prompts to 61 — the interval simply narrowed — so treat 26% as an estimate with real uncertainty, not a specification.

Three things we found while calibrating, which we would rather publish than hide

vLLM is bit-exact — but only once the prefix cache is warm. Repeat a request on a warm server and every logprob is identical to the last bit (16 of 16 prompts). But a prompt’s first execution takes zero cache hits and returns measurably different logprobs — up to 0.087 in token probability, while the generated text stays identical. That is 24× larger than the weakest fault we need to catch.

This is the trap in any naive A-vs-B accuracy comparison: whichever backend happens to be colder looks broken, and the benchmark measures the cache rather than the silicon. Our harness warms both sides on every prompt and discards the result before measuring. Once warm, the reference contributes zero noise — which is what makes it possible to attribute a difference to the target at all.

Cosine similarity cannot detect scaling errors. It is scale-invariant by definition — multiply every logprob by 1.01 or by 2.0 and it returns exactly 1.0000000000 either way. It is widely used for this purpose and it is the wrong instrument. We dropped it.

Comparing logprobs by rank compares the wrong tokens. Deep in the top-k many tokens are near-tied, so a negligible perturbation swaps their order — we recorded rank 3 holding '高' on one side and ' like' on the other. And in log space a 0.5 shift at logprob −26 (a probability near 1e-12, a token that will never be sampled) scores the same as a 0.5 shift at the most likely token, which changes the output. Measured on real hardware, that metric’s noise and its faults overlap: no threshold separates them. We match tokens by identity and compare probabilities instead.

The accuracy delta table

Cross-vendor runs still pending. We will not publish numbers we have not measured. The single-GPU baseline is now measured and shown below; the cross-vendor and Ascend rows are not, and are marked accordingly. Results and raw JSON land here as each completes.

ModelReferenceCandidateQuestion it answersStatus
Qwen3-8BA40 bf16, warmA40 bf16, warmIs the reference itself reproducible?done — bit-exact, 16/16
Qwen3-8BA40 bf16, coldA40 bf16, warmDoes cache state move it?done — 0.087, see above
Qwen3-8BA100 fp16A100 bf16What is the cross-precision noise floor?queued
Qwen3-8BA100 bf16MI300X bf16Cross-vendor, same precisionqueued
Qwen3-8BA100 bs=1A100 bs=8Does batch size alone move it?queued
Llama-3.1-8BA100 bf16MI300X bf16Model-dependencequeued
Qwen3-8BA100 bf16Ascend 910BCUDA → CANNv3

The batch-size row matters as much as the vendor row. Published research shows BF16 accuracy varying by up to 9% from GPU count and batch size alone. Without it, a cross-vendor number looks damning when it may be ordinary.

Method

ruitong port Qwen3-8B \
  --reference nvidia-a100=http://ref:8000 \
  --candidate amd-mi300x=http://cand:8000 \
  --output results/qwen3-8b__a100__mi300x.json

Exit codes: 0 equivalent · 1 gate failed · 2 could not run. The third is deliberately distinct — "the port is broken" and "we could not tell" demand opposite responses.

Who this is for

Teams migrating inference between accelerators who need to answer, to someone who will ask: did the model's behaviour change, and by how much? If that question arrives from a risk, audit or procurement function, a spreadsheet from a debugging tool is not an answer.

The reference table is public and free. If you need it run on your model and your hardware, with a signed, provenance-bound report, get in touch — or buy directly below.

Pricing

Priced per engagement, not a subscription you have to justify before you have a number. Each report is a real comparison — run on rented reference hardware plus your candidate endpoint — never a simulated placeholder.

Single verification

$499 / model × pair
  • One model, one accelerator pair (e.g. NVIDIA → Ascend)
  • Signed report: full provenance, raw JSON + summary table
  • Delivered in 3–5 business days
Buy →

Enterprise

Custom
  • Ongoing verification, CI-gated on every port
  • Self-serve API access when your volume needs it
  • Dedicated SLA and support channel
Contact us →

Payment via Stripe (card). Full refund if we cannot produce a report — the D8 "could not run" case is on us, not you.

Prefer crypto? Send USDT (Ethereum / ERC-20) to 0xdA2b75956eaba2E50075E3258a496C89168d5E80 and email the transaction hash to hello@ruitong.io — we confirm and start the same day.

Get in touch

Tell us what you're migrating. We reply to every technical enquiry, including ones we can't help with.

Opens your mail client with the details filled in — nothing is sent through this page, and no third party sees your enquiry. Or write directly to hello@ruitong.io.

同一个模型,不同的加速卡。
输出到底变了多少?

这个数字没有人公开发布。我们来做。

把大模型推理从 NVIDIA 迁移到 AMD、华为昇腾、Intel Gaudi 或 AWS Trainium,输出不会完全一致。浮点运算不满足结合律,不同算子的归约顺序不同,logprob 就会发生偏移。这是预期之内、无法避免的。

真正关键的问题是差多少——以及你看到的差异,究竟是正常的数值噪声,还是一次真实的迁移故障。目前没有任何公开基准可供对照。

空白在哪里。华为 msprobe 在算子级别做张量比对;MLCommons 为少数基准模型公布 FP32 的 99%/99.9% 门限;而 vLLM 自己的昇腾精度 CI 允许对硬编码数值有 5% 的漂移,且完全没有 GPU 基线列。它们都让你去跑精度测试,却都没有给出可对照的数值。

门限能检出什么——真实硬件实测

在发布精度差异之前,我们必须先证明自己的度量是有效的。门限的校准基准,是从运行在 NVIDIA A40 上的 Qwen3-8B 采集的真实 logprob 语料,而非合成数据。我们注入模拟真实迁移故障的扰动,记录门限是否能检出、以及在多大幅度上能检出。

测试环境:vLLM,temperature=0, seed=1234, top_logprobs=20,16 条提示词(中英文各半)。语料已公开,以下每个数字均可离线复现。

场景模拟的故障token 对齐的 Δ概率判定
完全相同0.0通过
bfloat16 舍入正确迁移,精度不同1.29e-03通过
logprob 缩放 ×1.011% 温度参数误差3.66e-03失败
logprob 缩放 ×1.05softmax/温度参数缺陷1.80e-02失败
每 8 个位置污染 1 个间歇性 kernel 故障0.993失败
交换 top-2 token算子输出转置1.000失败
位置整体偏移 1KV cache 索引差一1.000失败
最大概率 token 被降权灾难性迁移失败1.000失败

上述故障幅度,是相对于一次模拟的正确迁移测得的——即对 A40 自身输出施加 bfloat16 舍入。我们随后用两块真实 GPU 检验了这个模拟,它没有通过。见下文。

首次真实跨硬件实测

NVIDIA A40(Ampere)对比 NVIDIA RTX 6000 Ada。同一厂商、同为 48 GB、同一 vLLM 镜像、同一 Qwen3-8B、同一随机种子,两端均已预热且各自逐比特可复现。唯一的变量是芯片。

指标结果
输出文本完全一致45 / 61 条
输出文本不同16 / 61 条(26%)
Top-1 token 一致率(分叉之前)1.000
最大 token 对齐 Δ概率(分叉之前)0.195
概率质量偏差0.0000791

两块 NVIDIA GPU、完全相同的软件栈,在 26% 的提示词上产生了不同的文本(95% 置信区间 16.8–38.4%)。不只是分布不同——是句子不同。

该结果在两次独立租用的实例上分别实测。将第二次结果限定为首次使用的那 16 条提示词时,两次数值精确到小数点后九位完全一致(0.122442606)——因此这是两款 GPU 的确定性差异,而非某一次租用的偶然。两端在各自的预热重复中均逐比特一致(61/61)。

分叉与输出长度相关,而非提示词类型。我们在扩充语料时预期开放式生成会占主导,事实并非如此:两条简短事实型问题同样发生分叉——包括「水的化学式是什么?」,仅生成 13 个 token。发生分叉的提示词平均 49 个 token,全部语料平均 41 个。因此实用结论是:生成越长,预期分叉越多——分类类任务与长文本生成任务的风险并不相同。

这正是业界没有公开的数字,而它重新定义了问题本身:在追问昇腾或 AMD 的迁移是否忠实之前,必须先知道同一厂商两块卡之间的"忠实"是什么样子。答案不是零。

它同时推翻了我们自己的门限,这一点我们也一并公开

我们此前以 bfloat16 舍入代替"两套硬件 kernel 的差异"来校准门限,定在 2.2e-03。以真实芯片衡量:

数值相对真实噪声
模拟 bf16 噪声(我们的校准依据)1.29e-03小 95 倍
我们公布的门限2.20e-03小 56 倍
×1.05 温度参数故障1.80e-02小 6.8 倍
实测跨芯片噪声1.22e-01

模拟舍入把真实效应低估了 95 倍。更关键的是,真实的跨芯片差异大于一个真实的温度参数缺陷——因此单一的分布距离指标本身,无法区分"迁移到新硬件后依然正确"与"迁移出错"。

我们如何修正——以及在"显而易见的修法"里发现的漏洞

最直接的修法,是彻底弃用分布距离,只用两项在真实硬件上记录完美的指标把关:Top-1 一致率(三次独立实测,所有比对位置均为 1.000)与概率质量守恒。我们在上线前用全部注入故障检验了这个方案,它有漏洞

算子转置类缺陷——logprob 数值被打乱、token 身份不变——会让这两项指标的变化恰好为零:行内数值互换,既不改变排在第 0 位的是哪个 token,也不改变该行的总和。只有按 token 身份对齐概率的指标才能捕获它。

因此门限是复合的:三项指标,任一不通过即判定失败。分布距离予以保留,但是重新校准,而非放宽:上限从 0.0022 调整为 0.4402——取实测跨硬件噪声(0.195)与其需捕获的最弱故障(0.993)的几何平均,两侧各留 2.26 倍余量。旧数值本身并非错误的思路,只是锚定在一个乐观了 95 倍的模拟上。

如实公开而非回避:一旦门限需要容纳真实的跨硬件噪声,1% 的温度参数误差就无法被这三项指标可靠检出——能容纳 0.195 的门限,不可能同时捕获一个得分仅 0.004 的故障。我们的测试套件专门断言了这个盲区的存在,使其无法在无人察觉的情况下改变。

不回避的局限:即便扩充到 61 条,95% 置信区间仍为 16.8–38.4%。从 16 条增加到 61 条时,分叉率并未出现可测量的变化——只是区间收窄了。因此 26% 应被视为带有真实不确定性的估计值,而非规格承诺。

校准过程中的三个发现——我们宁愿公开,也不愿隐去

vLLM 是逐比特可复现的——但前提是 prefix cache 已预热。在已预热的服务上重复同一请求,每个 logprob 都逐比特相同(16 条提示词全部如此)。但一条提示词的首次执行 cache 命中数为零,返回的 logprob 有可测量的差异——token 概率最大相差 0.087,而生成的文本完全一致。这个幅度是我们需要检出的最弱故障的 24 倍

这正是任何朴素 A/B 精度对比的陷阱:哪一端更"冷",哪一端就显得有问题,而这个基准测的其实是缓存,不是芯片。我们的工具会在每条提示词上先预热两端并丢弃结果,然后才开始测量。预热之后,参考端贡献的噪声为零——只有这样,才谈得上把差异归因于被测端。

余弦相似度无法检出缩放类错误。它在定义上就是尺度不变的——把所有 logprob 乘以 1.01 或乘以 2.0,返回值都精确等于 1.0000000000。这个指标被广泛用于此类比对,但它是错误的工具。我们已弃用。

按排名比对 logprob,比的是不同的 token。在 top-k 的尾部,大量 token 概率非常接近,极微小的扰动就会让它们互换次序——我们实测到同一位置的 rank 3,一侧是 '高',另一侧是 ' like'。而在对数空间中,logprob −26 处(概率约 1e-12,永远不会被采样)的 0.5 偏移,与最大概率 token 上的 0.5 偏移得分相同,后者却会改变输出。在真实硬件上,该指标的噪声与故障区间相互重叠:不存在任何能区分二者的门限。我们改为按 token 身份对齐,并在概率空间比对。

精度差异表

跨厂商测试仍在排期。我们不会发布没有实测过的数字。单卡基线现已实测,列于下表;跨厂商与昇腾两行尚未完成,已如实标注。每完成一项,结果与原始 JSON 将在此更新。

模型参考端被测端回答的问题状态
Qwen3-8BA40 bf16,已预热A40 bf16,已预热参考端自身是否可复现?已完成——逐比特一致,16/16
Qwen3-8BA40 bf16,冷启动A40 bf16,已预热缓存状态是否影响结果?已完成——0.087,见上文
Qwen3-8BA100 fp16A100 bf16跨精度噪声基线是多少?排期中
Qwen3-8BA100 bf16MI300X bf16跨厂商、同精度排期中
Qwen3-8BA100 bs=1A100 bs=8仅 batch 变化会影响吗?排期中
Llama-3.1-8BA100 bf16MI300X bf16是否与模型相关排期中
Qwen3-8BA100 bf16昇腾 910BCUDA → CANNv3

batch size 那一行与跨厂商那一行同样重要。已发表的研究显示,仅 GPU 数量与 batch size 的变化,就可使 BF16 精度波动达 9%。缺了这一行,跨厂商的数字会显得触目惊心,而它可能只是常态。

方法

ruitong port Qwen3-8B \
  --reference nvidia-a100=http://ref:8000 \
  --candidate amd-mi300x=http://cand:8000 \
  --output results/qwen3-8b__a100__mi300x.json

退出码:0 等价 · 1 未通过门限 · 2 无法完成比对。第三种刻意区分开——"迁移有问题"与"我们无法判断"需要完全相反的处理方式。

适用对象

正在做加速卡迁移、并且需要向他人回答以下问题的团队:模型行为是否发生了变化,变化了多少?如果这个问题来自风控、审计或采购部门,一份调试工具导出的表格并不构成答案。

参考基准表公开且免费。如果需要在您自己的模型您自己的硬件上运行,并出具带完整溯源的签署报告,欢迎联系——也可直接在下方购买。

价格

按次收费,而非要求您在看到数字之前先证明订阅的价值。每一份报告都是真实比对——在租用的参考硬件与您的被测端点上实测——绝非模拟占位数据。

单次验证

$499 / 模型 × 加速卡组合
  • 一个模型、一组加速卡对比(例如 NVIDIA → 昇腾)
  • 签署报告:完整溯源、原始 JSON + 汇总表
  • 3–5 个工作日交付
购买 →

企业版

定制
  • 持续验证,接入 CI 门限
  • 用量达到规模后可开通自助 API
  • 专属 SLA 与支持渠道
联系我们 →

通过 Stripe 支付(银行卡)。若我们无法出具报告,全额退款——D8 所定义的"无法判断"情形由我们承担,而非您。

也可使用加密货币:将 USDT(以太坊 / ERC-20)发送至 0xdA2b75956eaba2E50075E3258a496C89168d5E80,并将交易哈希发送邮件至 hello@ruitong.io——确认后当天开始处理。

联系我们

请说明您正在迁移的内容。所有技术咨询我们都会回复,包括我们帮不上忙的情况。

将打开您的邮件客户端并自动填好内容——本页面不发送任何数据,也没有第三方能看到您的咨询。也可直接写信至 hello@ruitong.io

Та же модель, другой ускоритель.
Насколько на самом деле меняются ответы?

Этот показатель никто не публикует. Мы — будем.

Если вы переносите LLM с NVIDIA на Huawei Ascend, AMD, Intel Gaudi или отечественный ускоритель, выходные данные не будут идентичными. Сложение чисел с плавающей запятой не ассоциативно: разные ядра суммируют в разном порядке, и логарифмические вероятности смещаются. Это ожидаемо и неизбежно.

Важен другой вопрос — насколько, и является ли наблюдаемое изменение обычным численным шумом или настоящим дефектом переноса. Сегодня нет публичного эталона, с которым это можно сопоставить.

Почему это важно именно сейчас. Если доступ к NVIDIA ограничен, выбора нет — модель придётся переносить на другое железо. Но перенос без доказательства эквивалентности означает, что вы разворачиваете в продакшн модель, поведение которой никто не проверял. Регламенты, отраслевые требования и внутренний контроль качества требуют доказательства, а не обещания.

Первое реальное измерение между ускорителями

NVIDIA A40 (Ampere) против NVIDIA RTX 6000 Ada. Один производитель, одинаковые 48 ГБ, один и тот же образ vLLM, одна и та же модель Qwen3-8B, один и тот же seed. Обе стороны прогреты и побитово воспроизводимы по отдельности. Единственная переменная — кристалл.

ПоказательРезультат
Текст ответа полностью совпал45 / 61 запрос
Текст ответа различался16 / 61 (26%)
Совпадение top-1 токена (до расхождения)1.000
Макс. Δвероятности по совпадающим токенам0.195
Отклонение вероятностной массы0.0000791

Два ускорителя NVIDIA с идентичным программным стеком дают разный текст на 26% запросов (95% доверительный интервал 16.8–38.4%). Не просто другое распределение — другие предложения.

Измерено дважды на независимо арендованных инстансах. При ограничении выборки теми же 16 запросами, что и в первом прогоне, результат совпал до девятого знака после запятой (0.122442606) — то есть это детерминированное свойство пары ускорителей, а не случайность конкретной аренды. Обе стороны показали побитовую воспроизводимость, 61/61.

Расхождение связано с длиной вывода, а не с типом запроса. Расширяя корпус, мы ожидали, что доминировать будут открытые генеративные запросы. Этого не произошло: разошлись и два коротких фактических вопроса — включая «какова химическая формула воды?» при 13 сгенерированных токенах. У разошедшихся запросов в среднем 49 токенов против 41 по всему корпусу. Практический вывод: чем длиннее генерация, тем больше расхождений — задача классификации и задача длинной генерации несут разный риск.

Что обнаруживает наш порог — измерено на реальном железе

Прежде чем публиковать расхождения точности, нужно было доказать, что само измерение работает. Порог откалиброван на корпусе реальных логарифмических вероятностей, снятых с Qwen3-8B на NVIDIA A40, а не на синтетике. Мы вносим дефекты, имитирующие реальные ошибки переноса, и фиксируем, ловит ли их порог и на каком уровне.

СценарийЧто имитируетΔвероятностиВердикт
Полное совпадение0.0пройдено
Округление bfloat16корректный перенос, другая точность1.29e-03пройдено
Масштабирование ×1.05ошибка softmax / температуры1.80e-02не пройдено
Порча 1 позиции из 8периодический сбой ядра0.993не пройдено
Перестановка top-2транспонированный вывод оператора1.000не пройдено
Сдвиг позиций на 1ошибка индексации KV-кэша1.000не пройдено

Три вещи, найденные при калибровке, которые мы предпочитаем опубликовать, а не скрыть

vLLM побитово воспроизводим — но только при прогретом префиксном кэше. Повторный запрос к прогретому серверу даёт логарифмические вероятности, совпадающие до последнего бита (61 запрос из 61). Но первое исполнение запроса не даёт ни одного попадания в кэш и возвращает заметно другие значения — до 0.087 по вероятности токена, при этом сгенерированный текст идентичен. Это в 24 раза больше, чем самый слабый дефект, который порог обязан поймать.

Это ловушка любого наивного сравнения A/B: та сторона, что «холоднее», выглядит сломанной, и тест измеряет кэш, а не кристалл. Наш инструмент прогревает обе стороны на каждом запросе и отбрасывает результат до начала измерения. После прогрева эталонная сторона вносит нулевой шум — только это и позволяет отнести расхождение к целевому ускорителю.

Косинусное сходство не обнаруживает ошибки масштабирования. По определению оно инвариантно к масштабу: умножьте все логарифмические вероятности на 1.01 или на 2.0 — результат в обоих случаях ровно 1.0000000000. Этот показатель широко применяют для такой проверки, и он для неё непригоден. Мы от него отказались.

Сравнение логарифмических вероятностей по рангу сравнивает не те токены. В хвосте top-k многие токены почти равны, и ничтожное возмущение меняет их порядок — мы зафиксировали на одной позиции ранг 3 с '高' с одной стороны и ' like' с другой. Мы сопоставляем токены по идентичности и сравниваем вероятности, а не логарифмы.

Что мы ещё не измерили

Мы не публикуем числа, которые не измерили. Базовая линия на одном производителе измерена и приведена выше. Кросс-вендорные строки и строка Ascend — нет, и они отмечены как таковые. Результаты и исходный JSON появляются здесь по мере готовности.

МодельЭталонПроверяемыйСтатус
Qwen3-8BA40 bf16, прогретRTX 6000 Ada bf16готово — 26%
Qwen3-8BA100 bf16MI300X bf16в очереди
Qwen3-8BA100 bf16Ascend 910Bv3

Метод

Для кого это

Для тех, кто переносит рабочую нагрузку с NVIDIA на другое железо и должен доказать — регулятору, заказчику или собственной службе качества, — что поведение модели не изменилось. Эталонная таблица публична и бесплатна. Если нужно прогнать проверку на вашей модели и вашем оборудовании — напишите нам.

Стоимость

Оплата за конкретную проверку, не подписка, которую нужно оправдывать заранее. Каждый отчёт — реальное сравнение на арендованном эталонном железе и вашей стороне, а не симуляция.

Разовая проверка

$499 / пара модель×ускоритель
  • Одна модель, одна пара ускорителей
  • Подписанный отчёт: полная прослеживаемость, JSON + сводная таблица
  • Срок — 3–5 рабочих дней
Купить →

Корпоративный

По запросу
  • Постоянная проверка, встроенная в CI
  • Самостоятельный доступ к API при достаточном объёме
  • Выделенный SLA и канал поддержки
Связаться →

Оплата через Stripe (банковская карта). Если карта, выпущенная в России, не проходит из-за международных ограничений — используйте оплату криптовалютой ниже, либо напишите нам напрямую. Полный возврат, если отчёт не может быть выполнен.

Оплата криптовалютой: отправьте USDT (Ethereum / ERC-20) на адрес 0xdA2b75956eaba2E50075E3258a496C89168d5E80 и пришлите хеш транзакции на hello@ruitong.io — подтвердим и начнём в тот же день.

Связаться

Письмо уходит из вашего почтового клиента прямо к нам. Ни формы-посредника, ни стороннего сервиса, ни аналитики — заявку не видит никто, кроме нас.