Research
LYR Performance Note #007 インフラ

「十分速い」を、ベンチマークで決めてはいけない

速さの目標は、ユーザー体験から逆算する——「崖(Cliff)」という考え方

2026-07-22 シリーズ第1回 9 min レイテンシUX指標計測

「500ms以内なら速い」——その数字は、どこから来たものだろう。たいていは、なんとなくだ。そして、なんとなくの目標は必ず外す。

字幕翻訳の締め切りは、ベンチマークではなく字幕が画面に映っている時間が決めていた。逆算すると 400〜750ms とコンテンツごとに動き、単一の数字ではどちらの側にも外す。

しかも速さは連続値ではない。だ。締め切りの内側では速度差に価値がなく、越えた瞬間に価値がゼロになる。だから先に決めるべきは「何msを目指すか」ではなく、「どこに崖があるか」だった。

「AIが十分に速いか」を、どう判断していますか。

多くのチームは、なんとなくの数字を置く。「500ms以内なら速い」「1秒を切れば十分」。でも、その500msや1秒は、どこから来た数字だろう。たいていは、なんとなくだ。そして、なんとなくの目標は、必ず外す。

字幕翻訳を作っていて、私はこの目標の立て方を根本から変えることになった。

目標は、こちらが決めるものではなかった

リアルタイムの字幕翻訳では、訳がどれだけ良くても、遅れて届いたら価値はゼロだ。字幕はすぐ次のセリフに切り替わる。訳が間に合わなければ、ユーザーはもう次の場面を見ている。

つまり「十分速い」の基準は、私が決めるものではなかった。字幕が画面に映っている時間——それが締め切りを決める。訳がその時間内に届けば価値があり、1msでも過ぎれば価値がない。

だから私は、目標を”逆算”することにした。まず、字幕が実際に何ミリ秒ぐらい画面に留まるか(dwell time)を、コンテンツごとに測った。

コンテンツ滞在時間 中央値速い1割(p10)=締め切り現状の締め切り遵守率
バラエティ1,200 ms400 ms60%
ドラマ1,750 ms750 ms78%
ゲーム2,065 ms856 ms89%

(右端の「締め切り遵守率」は、翻訳以外の失敗要因を除いてタイミングだけを見たもの。締め切りが厳しいバラエティほど低い。中央値でなくp10で見るのは、いちばん速く消える字幕にこそ間に合わせたいからだ。)

0 1,000 2,000ms 現状 ~500ms バラエティ p10 400 中央値 1,200 ドラマ p10 750 中央値 1,750 ゲーム p10 856 中央値 2,065 縦線=速い1割(p10)=締め切り 太い縦線=中央値(p50) ⋯=省略(p10より速い側・p50より長い側) 破線=現状 ~500ms
図1:コンテンツ別の字幕滞在時間。速い1割(p10)と中央値(p50)を示す。破線は現状パイプラインの約500ms。ドラマとゲームはp10より内側に収まるが、バラエティのp10(400ms)は追い越しており、速い字幕に間に合っていない。
注:p10より速い側・p50より長い側を省略した簡易箱ひげ。

グラフにすると、ひと目でわかる。破線(現状のパイプライン ~500ms)は、ドラマやゲームのp10より内側にあるが、バラエティのp10(400ms)は追い越している——バラエティの速い字幕は、間に合っていない。

これで、目標が数字として立ち上がった。字幕が最も速く切り替わるのはバラエティで、速い1割は400msで消える。この400msの中に、検出・OCR・翻訳・表示を全部収めないと、間に合わない。つまり「崖(cliff)」とは、字幕の滞在時間から逆算した締め切りそのものだ。いちばん厳しいバラエティで約400ms(コンテンツが緩ければ550msほどまで伸びる)。そして、その締め切りの内側から検出・OCR・表示の時間を差し引くと、翻訳そのものに使える予算は約180〜300ms残る。締め切り(崖)は400ms、その内側の翻訳予算が180〜300ms——この2つは別の数字だ。(翻訳予算を、サーバーの物理的な距離がどう食い尽くすかは、次の深掘りで。)

速さは、なだらかな坂と、垂直な崖でできている

ここが一番大事な発見だ。レイテンシは、なめらかに効く連続値だと思われがちだ。「速ければ速いほど、少しずつ良くなる」と。それは半分正しい。だが、もう半分が抜けている。

字幕翻訳のUX価値を、表示までの時間の関数として描くと、こういう形になる。

崖(締め切り) UX価値(高いほど良い) なだらかに低下(速いほど少し良い) 間に合わず ゼロへ落ちる ← 速い 遅い → 字幕表示までの時間(レイテンシ)
図2:UX価値と、表示までの時間。締め切りまではなだらかな坂で、速さの効きは逓減する。締め切り(崖)を越えた瞬間、価値は垂直にゼロへ落ちる。速さは連続値ではなく、崖として設計する。
  • 締め切りまでは、なだらかな坂だ。速く出せば出すほど、UXは少しずつ良くなる(訳が早く目に入る)。ただし効きは緩やかで、逓減していく。
  • そして締め切り(崖)を1msでも超えると、訳は次の場面に流れ、価値は垂直にゼロへ落ちる。

多くの人は、この形を「なだらかな坂」だけだと思っている。だから坂のどこでも一様に「少し速くすれば少し良くなる」と投資する。だが本当は、坂の先にがある。だからいちばん大きな勝ちは、坂の途中を削ることではなく、崖を越えている字幕を、崖の内側へ引き戻すことだ——そこでは価値が、ゼロから一気に立ち上がる。

そして崖の位置は、コンテンツで変わる。バラエティの崖は厳しく(~400ms)、ドラマは緩い(~750ms)。同じ「500ms」という目標が、バラエティには甘く、ドラマには厳しい。単一のベンチマーク値では、どちらも外す。

ベンチマークで決めていたら、どう間違えたか

もし「500ms以内なら速い」というベンチマーク目標を置いていたら、こうなっていた。

  • ドラマ(崖750ms): すでに余裕で間に合っているのに、「500msを切る」ために推論最適化に投資し続ける——崖の内側での無駄な高速化
  • バラエティ(崖400ms): 500msでは崖を越えている。「達成」と思い込んで、間に合っていない字幕を取りこぼし続ける——達成の錯覚

UXから逆算した崖は、この両方を防ぐ。「どこまで速くすれば意味があるか」「もう十分か」を、コンテンツごとに正しく教えてくれる。

(この崖こそ、第5回などで「体感の壁」と呼んでいたものだ。自前化で往復と待ち行列を潰したとき、E2Eがこの崖の内側に収まったから、はじめて”間に合う”と言えた。)

教訓

  1. 「十分速い」の基準を、ベンチマークで決めない。 その数字がどこから来たかを問う。たいていは、なんとなくだ。目標は、ユーザーの状況から逆算する。
  2. レイテンシは連続値でなく、崖だと考える。 崖の内側では速度差は無意味で、越えれば価値はゼロ。「もっと速く」が効く領域を先に見極める。
  3. 崖はコンテンツで動く。 単一のベンチマーク値は、速い側にも遅い側にも外す。逆算した崖だけが、どこに投資すべきかを正しく指す。

マニフェストの3番目の原則——「ユーザー体験の代理指標を、正しく選ぶ」——を、一つの数字にしたのがこの崖だった。ベンチマークの数字を追う前に、ユーザーが課している締め切りを先に測る。


付録:生データ

項目実測条件・留保
字幕の滞在時間(dwell)バラエティ 中央値1,200ms / p10 400ms、ドラマ 1,750 / 750ms、ゲーム 2,065 / 856msp10 が実質の締め切り
締め切り遵守率バラエティ 60% / ドラマ 78% / ゲーム 89%OCR成功を仮定して timing 層だけを単離。崖が厳しいバラエティほど低い
崖(コンテンツ依存)総予算 400ms(最も厳しい)〜 ~550ms。翻訳サブ予算 ~180ms(保守)〜 ~300ms総予算から検出+OCR+表示を引いた残り
ばらつきの影響p10=400ms でもバラエティは4割が未達遵守率はレイテンシ分布の遅い側を含む
含意レイテンシ投資のROIはコンテンツで分岐崖に余裕のあるコンテンツは、速度でなくOCR品質やUXが効く