実際の 8,400 件の通話で AI 受付係の精度を測定しました
3 か月間、AI が処理したすべての通話を言語、アクセント、通話の種類ごとに追跡し、その記録を人間の審査員に照らして採点しました。精度の数値は予想よりも優れていました。失敗モードはさらに興味深いものでした。
モデルを肥大化させることなく 32 の言語間でレイテンシの同等性を実現するには、予想外のモデル ルーティング レイヤーが必要でした。潜伏作戦室からのメモ。
当社の音声製品には 2 つの苦情があり、社内で調整できませんでした。英語を話す企業顧客からは、AI はきびきびしていると感じられました。中国語を話す顧客、そしてますますベトナム語、タガログ語、ヒンディー語を話す顧客からは、AI が遅いと感じられました。発信者の沈黙から AI の最初の音節までのエンドツーエンドで測定したギャップは、英語で 260 ミリ秒、中国語で 540 ミリ秒でした。どちらの数値も、公開されているレイテンシの予算内にありました。
電話で対応できると感じたのはそのうちの 1 人だけでした。
レイテンシのギャップを発見したエンジニアリング チームは本能的にモデルを徹底的に検討することになります。より速い推論。より小型のモデル。量子化の改善。私たちはそれをすべて行いました。全体的に 60 ミリ秒を獲得しましたが、何も縮まりませんでした。相対的な差は依然として存在し、英語は依然として 2 倍の速さでした。
本当の修正は、別の観察から生まれました。実際にはルーティングの問題であるにもかかわらず、レイテンシをモデルの問題として扱っていたのです。
540 ミリ秒の北京語応答をセグメントに分割することが、問題を明らかにする最初のことでした。会計は大まかに次のようになりました。
英語のパスでは、同じセグメントが 80 / 60 / 90 / 80 / 40 でした。劇的に分岐した 2 つのセグメントは、音声テキスト変換と大規模モデルの生成でした。中国語で STT が遅くなったのは、音響モデルが、最初のトークンを 80 ミリ秒押し出す、より長いコンテキスト ウィンドウ (声調の曖昧さの解消に必要) でトレーニングされていたためです。
トークナイザーは、英語よりも北京語の方が同等の意味を持つ 1 文字あたりのトークンをより多く生成したため、モデルの生成が遅くなりました。
どちらもモデルの欠陥ではありませんでした。どちらも、精度を求める STT、生成品質を求める LLM など、独自の指標を最適化する独立したチームによって静かに蓄積されてきたトレードオフでした。レイテンシーコストは現実のものでしたが、それは誰の損益でもありませんでした。
単一の LLM を介してすべての言語をルーティングするのをやめました。代わりに、生成の前に薄い分類層を構築しました。この層は、8 ミリ秒未満で 3 つのことを検出します。着信発話の言語、会話の意図クラス、およびリクエストが 200 万の通話セグメントをクラスタリングすることで特定した約 40 の高頻度パターンの 1 つであるかどうかです。
分類子が英語以外の言語の高頻度パターンを識別すると、そのパターンを直接処理する、より小規模で言語に特化したモデルに生成をルーティングします。小規模なモデルは、同じパターンの数百万回の完了に基づいて抽出されているため、それらの特定のパスでの品質は大きなモデルのノイズの範囲内にありますが、最初のトークンのレイテンシは約 3 分の 1 です。
分類子が末尾のインテント (40 パターンにないもの) を見つけると、リクエストは以前と同様に大きなモデルに渡されます。レイテンシの低下のほとんどは、高周波パターンが また 通話量の最大 78% を占めるパターン。テールケースは元のレイテンシを支払いますが、それはまれです。
シン分類器は、誰も予算を付けていなかったプロジェクトの一部でした。障害モードが微妙だったため、ルーティング システム自体を構築するよりも構築に時間がかかりました。リクエストの 1% を、リクエストを処理しない小規模モデルに誤ってルーティングする分類子は、応答の低下だけでなく、幻覚を引き起こします。
分類器が機能する理由は 3 つありました。まず、合成データではなく、実際の運用トラフィックでトレーニングされました。次に、ルーターがしきい値を設定できる信頼度スコアを返します。信頼度 0.91 未満のものは、自動的に大きなモデルに分類されます。
3 番目に、実際にトラフィックが小さなモデルにルーティングされる前に、グラウンド トゥルースを提供する大きなモデルを使用して、既存のパイプラインに対して 6 週間シャドウ デプロイしました。
シャドウ展開では、オフライン テスト セットが見逃していた 4 つのクラスの間違いが見つかりました。 2 つはトレーニング データで簡単に修正できました。 2 つの必須の意図的なルーティング ルール。身元確認、支払い、または約束のキャンセルに関わるものはすべて、分類子の信頼度に関係なく、常に大きなモデルに送られます。これは、これらのパスでの幻覚のコストが遅延の勝利よりも高いためです。
LLM と STT の変更がレビューされている間、並行してチームが音声出力の作業を行っていました。英語の 50 ミリ秒の TTS 最初の音声は事実上無敵でした。英語以外のほとんどの言語での 70 ミリ秒から 90 ミリ秒のギャップは、より小さい音声モデル、あまり積極的ではないキャッシュ、および負荷時に英語を優先する単一の共有 GPU プールによって引き起こされました。
TTS インフラストラクチャを言語に固定されたプールに分割しました。中国語 TTS は現在、中国語トラフィックのほとんどが発生する地域に近いハードウェア上で、独自のスケーリング ルールを備えた独自のプールで実行されます。カットオーバーから 2 週間以内に、遅延は 70 ~ 90 ミリ秒から 45 ミリ秒に減少しました。
これはどれも賢明ではありませんでした。それはインフラストラクチャの作業であり、単一言語のわずかな改善だけでは、それを正当化できるものではなかったため、誰もわざわざ行おうとはしませんでした。
教訓は、そして私たちは現在それを社内で書き留めていますが、「単一のユーザー向け指標がそれを正当化するものではなかったため、これに投資しなかった」ということは、まさに 4 年間にわたる 2 つの言語間の 280 ミリ秒の差を悪化させる種類の決定であるということです。
私たちが社内で行った小さいながらも重要な変更の 1 つは、チームのレイテンシ ダッシュボードのレポート方法に対するものでした。以前は、単一の SLO に対して、すべての言語で平均したエンドツーエンドの遅延の p50 と p95 を追跡していました。ダッシュボードはほとんどの場合緑色に見えました。
新しいダッシュボードは p50 と p95 をレポートします 言語ごと に対して パリティ SLO — サポートされている最も遅い言語と最も速い言語の間のギャップには、個別に適用される独自の予算があります。パリティ バジェットを 60 ミリ秒に設定します。ギャップが予算を超えると、オンコールはページングされます。
パリティ ダッシュボードは、平均ベースのダッシュボードではできなかったことを実行します。つまり、最も遅い言語での回帰を、最も速い言語での回帰と同じ緊急度で表示できるようになります。 32 言語の平均をとった場合、ベトナム語での 200 ミリ秒の回帰により、平均は 6 ミリ秒変化します。パリティを測定すると、ダッシュボードが 200 ミリ秒ずつ移動します。
ルーティング作業、TTS プール、およびパリティ ダッシュボードの後、最悪の言語 (広東語、主にサポートする音響モデル コーパスが小さいため) は 320 ミリ秒にとどまります。英語は220msです。残りの 100 ミリ秒のギャップは実際のものであり、それがどこにあるかはおおよそわかっています。広東語 STT 音響モデルは古く、まだ新しいアーキテクチャに対応していないため、第 3 四半期に再トレーニングする予定です。
ただし、「最も遅い言語は最も速い言語より 100 ミリ秒遅れている」ということと、「最も遅い言語は最も速い言語より 280 ミリ秒遅れている」という話は異なります。前者は既知の回帰であり、四半期ごとに修正が予定されています。後者は、私たちが気づいていなかった顧客体験の緊急事態でした。
現在わかっていることを使ってレイテンシ スタックをゼロから再構築する場合、優先順位として 3 つのことが挙げられます。
これはいずれも新しい研究ではありません。どれも紙を必要としませんでした。レイテンシの同等性を製品のコミットメントとして扱い、そのコミットメントを裏付ける地味なインフラストラクチャに資金を提供する必要がありました。私たちは今必要な等価性を持っています。うちは4年も持たなかった。