Airbnb、LLM評価を数週から1日へ短縮し高速化を実現
本文の状態
日本語全文を表示中
詳細モードで約18分の本文を読めます。
同じ出来事の情報源
この情報源を基点に整理
Airbnb AI Engineering
Airbnb AI Engineering チームは、LLM 評価における不確実性を特定し、インフラの断点を解消することで、モデルの評価と反復を数週間から1日以内に短縮する手法を発表した。
AI深層分析を開く2026年8月4日 14:13
AI深層分析
キーポイント
評価ノイズの二重不確実性の定義
LLM 評価におけるノイズは、モデルや判定者の限界による「認知的不確実性」と、タスク自体の曖昧さによる「偶然的不確実性」の2つの源泉に起因すると特定し、それぞれを別個に診断・対策する必要があると指摘する。
4層構成の信頼できるインフラ構築
Airbnb は評価ノイズの定式化、エンジニアリング強化、およびこれらを統合する統合レイヤーからなる4層構造を構築し、個々のコンポーネントが正常でも全体として機能しない「継ぎ目」の問題に対処した。
統計的有意性だけでは不十分
t-テストなどの形式化された検定で有意であっても、判定者の入れ替えやメトリックのバージョン変更によって結果が反転する場合は、実用的な改善とは見なさないという厳格な基準を設けた。
エンドツーエンド検証の重要性
個々のコンポーネントを検証するだけでなく、実際の運用パス全体を行使して断点を発見し、評価基盤が高速に動作することで迅速な反復を可能にするアプローチを採用した。
不確実性の二重性を区別する必要性
評価ノイズはモデルの限界による認識的不確実性とタスクの曖昧さによる事象的不確実性の2つに分類され、これらを混同すると高エントロピーな回答を誤って幻覚と判断してしまう。
重要な引用
The seams are where things break, and finding those breaks requires exercising the full path, not just validating each component in isolation.
A two percent score movement can mean the model improved, the judge drifted, the references shifted, or some combination.
Meaningful, as we use it, means surviving perturbation: the conclusion holds when we rotate judges, version metrics, and re-stratify samples.
Specifically, methods that fail to separate them misclassify high-entropy responses as hallucinations.
編集コメントを表示
編集コメント
LLM の評価はモデルそのものの品質だけでなく、インフラの安定性やノイズの分離に依存する点が明確になった。このアプローチは、大規模なモデル開発において迅速かつ信頼性の高い意思決定を行うための重要な指針となる。
Source Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。
LLM のトレーニング自体は比較的容易です。真に難しいのは、新しいモデルが実際に改善されているかどうかを確信できる信頼性の高い実験と評価を設計することです。
image 著者:Baharak Saberidokht
イントロダクション
本番環境で LLM システムを運用するということは、構造的に非確定的なシステムに対して迅速に改善を繰り返すことを意味します。モデルはドリフトし、評価者が自分自身と矛盾したり、参照データが異なる文字列として再生成されたりします。また、再トレーニングには数週間かかるため、バグが次のリリースまで残ってしまうこともあります。こうした摩擦の多くはモデル自体の品質ではなく、インフラストラクチャ上の課題に起因しており、その解決策は古典的なソフトウェアエンジニアリングの手法によって得られます。
Airbnb では、4 つのレイヤーに対応することで信頼性の高い LLM インフラを構築しました。3 つのレイヤーは私たちが実施したエンジニアリングの強化に対応し、残りの 1 つはそれらをつなぐ統合層です。この統合層は最も見落とされがちですが、個々のコンポーネントが単体では問題ないように見えるためです。私たちのアプローチは2つの観察に基づいています。まず、システムが壊れるのは接合部(シーム)であり、その破綻を見つけるには各コンポーネントを個別に検証するのではなく、全体のパスを実際に動かす必要があるということです。
image図 1: 本番環境における LLM スタックの 4 つのレイヤー。モデルの変更を安全に行うには信頼できる測定が必要であり、エンドツーエンドの検証を行うには評価基盤が結合パス全体で高速に実行可能である必要があります。
レイヤー 1:名前をつける前に除去を試みないこと
このレイヤーは、評価におけるノイズの診断的な枠組みです。ここでは「データ」と「判断」の 2 つの不確実性源に対応します。
従来の機械学習指標(F1 スコア、BLEU、精度など)は決定論的です。同じ入力に対して常に同じ数値を返します。しかし、評価ループに LLM を組み込むと、この前提は崩れます。判断役のモデルは実行ごとに同じ入力を異なるスコアで評価し、LLM が生成した参照データも実行ごとに異なる文字列として再生成されます。
スコアの 2% の変動が意味するものは多岐にわたります。モデル自体が改善されたのか、それとも判断役のモデルがドリフト(偏り)を起こしたのか、参照データが変化したのか、あるいはその複合的な要因なのか。どの種類のノイズを指しているかを特定しなければ、その原因を判別することはできません。

評価において問うべきは、単に「どちらの平均値が高いか」だけではありません。「システムはどこで違いが生じているのか」「その違いは意味があり、安定しており、製品開発に役立つものなのか」という点が重要です。ここで言う「意味がある」とは、擾乱に対して耐えうることを指します。つまり、評価者を入れ替えたり、指標のバージョンを変更したり、サンプルを再分類したりしても、結論が変わらない場合にのみ「意味がある」と言えます。
形式的な有意性検定は補完的な役割を果たすものであり、答えのすべてではありません。t 検定で有意差が認められても、評価者を入れ替えると結果が逆転してしまうような違いを、製品に実装する価値のあるものとは見なせません。
私たちは「二重の不確実性」という枠組みを用いています。LLM の評価におけるノイズには、2 つの潜在的な発生源があり、それぞれに対して個別の診断と対策が必要です。Abbasi Yadkori らはこの分離を形式化し、認識的不確実性(モデルや評価者の限界に起因するもの)と事象的不確実性(タスク自体の曖昧さに起因するもの)は異なる検出戦略を要すると示しました。また、これらを混同すると誤った結論に至ると指摘しています。
具体的には、両者を分離できない手法では、エントロピーの高い応答を「ハルシネーション」として誤分類してしまいます。Ling ら(2024)はこれをコンテキスト内学習の文脈に拡張し、認識的不確実性がより実用的なシグナルであることを示しました。一方、事象的不確実性は、評価者の能力向上では解決できないタスク固有の性質を反映しているのです。

実際には、この 2 つの不確実性は同時に現れることがあります。生成された回答がユーザーの嗜好に関する情報の欠如(偶然的不確実性)に依存している一方で、評価者がそれを検証するためのドメイン知識を欠いている(認識的不確実性)ケースです。評価者の意見の相違には修正可能なものもあれば、タスクそのものの性質によるものもあります。
私たちの設定では、LLM が生成した参照データは、同一の入力に対するラベリング実行ごとに約 4 分の 3 の割合で異なります。また、同じデータセットに対する実行間での評価者のドリフト(意見のズレ)は約 1% です。実際のシグナルが 1〜3% の場合、観測される多くのノイズは、サンプル数を増やすだけでは解決できない種類のものです。
原因を名指しするだけでは不十分です。特定の実験でそれらを区別する必要があります。そのためには、同一入力に対する実行間でも安定した評価者の出力が必要です。Layer 2 はそれを可能にします。
Layer 2:決定論的な評価基盤
ノイジーな評価者への直感的な対応は確率的なものになります。サンプリングして多数決を取る方法や、ベイズ流でノイズをモデル化する手法です。しかし、これらはいずれも不十分です。多数決は正確さではなく、評価者の中央傾向へと収束します。一方、ベイズ的手法には、事前分布と各サンプルの事後分布を実行間で保存するための集中型ストレージが必要になります。これは実質的に、各サンプルごとのキャッシュと同じインフラを必要とするものの、キャッシュなら無料で得られる再現性は得られません。
評価者のスコアが大きく変動する事例(評価者敏感な事例)を特定するには、繰り返しサンプリングが有効です。例えば、安定したケースではスコアのばらつきが小さく [0.78, 0.80, 0.79, 0.81, 0.78] のようになりますが、不安定なケースでは [0.45, 0.83, 0.52, 0.88, 0.60] のように大きな変動が見られます。しかし、この手法を広く適用すると、事例数やシステム、評価者の数に応じてリソースコストが急増するため、現実的ではありません。
よりシンプルなアプローチは、モデル側の不安定性に対処するのではなく、評価者への入力自体を安定させることです。負荷の状況を分析したところ、候補となるモデル出力の半数以上が同一の文字列であることがわかりました。つまり、実験的な変更が影響を与えるのは入力の一部分に過ぎず、同じベースモデルを使う候補同士でも、争点となっている事例でしか結果が分岐しないのです。また、参照出力も再生成しなければ、本来は一致していたはずです。私たちが経験したノイズの多くは、テストプロセス自体が生み出したものでした。
そこで、両軸に対してサンプルごとのキャッシュを実装しました。
- 参照データ:サンプル識別子(テキストなど)と参照生成設定をキーとする
- 評価者スコア:サンプル、モデル出力、評価者設定、指標をキーとする
入力が同一であればキャッシュされた結果を返すため、評価は決定的になり、効率化され、実行間での比較も可能になります。これは Layer 1 が、意見の相違が「認識論的なもの」なのか「偶然によるもの」なのかを診断するために必要な機能です。
実験レベル(インフラストラクチャレベルではなく)でキーを打つことで、部分的な進捗も永続化されます。8,000 番目の例でジョブが失敗しても、キャッシュから再開できるからです。新しい候補や指標は、既存のキャッシュされた出力に対して無料で実行できます。この段階での再現性は単なる利便性ではなく、次のレイヤーへの前提条件です。
レイヤー 3:範囲を限定したモデル変異
評価が決定論的で高速になれば、ボトルネックは「この変更が改善かどうかを測定できるか」から「小さな変更を迅速に行えるか」へと移ります。フルアダプターのリトレーニングは、迅速でも安全でもないため不適切です。LoRA アダプターは、凍結されたベースモデルの上に追加される重みの小さなセットであり、そのランク(rank)が追加する容量の大きさを決定します。ランクが高いほど学習できる量は増えますが、トレーニングコストも高くなります。80 億パラメータのベースモデルで、LoRA の文脈では数百程度の高いランクを持つアダプターをトレーニングするには数日かかり、重みの変更一つひとつが、すでに機能していた入力を後退させるリスクを伴います。
この研究は、正当性と警告の両方を示しています。Meng 氏らの論文(NeurIPS 2022)では、トランスフォーマーにおける事実的な振る舞いが部分的に局在化していることが示され、特定の MLP モジュールへのターゲット指向の重み更新が、無関係な振る舞いを乱すことなく成功し得ることが明らかになりました。一方、Cohen 氏らの論文(TACL 2024)はその限界を示しています。たとえ精密な編集であっても、論理的に関連する知識には波及効果が生じます。さらに Pletenev 氏ら(2025)は実用的な境界を提示しました。LoRA アダプターであれば、ターゲット指向の修正を数例程度まで確実に吸収できますが、それを超えると推論能力が低下し、検出が困難な形でモデルが過信するようになります。
私たちの解決策はマイクロアダプターです。これは既存の共有アダプターの上に重ねる小さな LoRA パッチで、重み自体を変更することなく、ランクは 50 未満とフル再トレーニングに用いられる数百という範囲を大きく下回っています。このパッチされたアダプターは、特定のバグに対する最小限の修正のみを学習し、1 つの GPU で 1 時間以内に訓練が完了します。その配布方法はソフトウェアのホットフィックスと同様です。対象となるのは単一の課題に限定され、2 つのゲート(専門家がレビューしたドメインでの回帰なし、不確実性の高い出力は人間によるレビューへフラグ付け)を通過して検証され、カニオンデプロイで展開されます。問題発生時には自動的にロールバックも可能です。このループは当日中に完了します。
各マイクロアダプターは独立して完結していますが、重ねられたパッチ同士が相互作用を起こすケースがあります。これは Sculley 氏ら(2015)のルール「何かを変更すればすべてが変わる」をそのまま反映したもので、その頭字語として CACE が使われています。このスタックが drifting(逸脱)しないようにするためのライフサイクルルールは以下の 3 つです:
Fuse co-triggering patches。重なる入力に反応するパッチは、関連する近傍領域を共有しています。学習可能な融合(fusion)により、単純なスタッキングが引き起こす部分空間の干渉を解消します (Gao et al., 2024)。
蓄積されたデータで再訓練を行う。あるカテゴリに対するパッチ数が Pletenev らが示した経験的な上限に近づいたら、それらのパッチを統合してクリーンな再訓練(retrain)を行います。
使用しないパッチはアンロードする。アップストリームの変更があるたびに、読み込まれたすべてのパッチの再検証が必要です。定義された期間内にトリガーされなかったパッチは自動的にアンロードされます。
このレイヤーが機能するのは、Layer 2 が存在しているからです。決定論的な評価がなければ、その日のうちに完了させることはできません。検証自体に1日かかる場合、2つのゲートを通過する間に検証を行う時間は確保できないのです。
Layer 4: シームにおけるエンドツーエンドの検証
この最終レイヤーは最も見落としがちです。なぜなら、上流にある個々のコンポーネントはいずれも問題なさそうに見えるからです。言語検出、前処理、モデル層、そしてサービングパスについてはそれぞれ検証済みでした。しかし、現実的な条件下でフルパスをテストするコンポーネントレベルのチェックは存在しなかったため、組み合わせた本番環境での挙動が依然として驚きをもたらすことがありました。
コンポーネントレベルの信頼性は、結合部において誤った安心感を生み出します。これは ML 搭載システムに固有の既知の失敗モードです。Kästner ら(2021)は、ML コンポーネントが従来のソフトウェアでテスト可能な構成推論を拒否すると指摘しています。これらには形式仕様書が存在しないため、結合部での相互作用を実証的に観察するしかありません。Sculley ら(NeurIPS 2015)も CACE の原則を通じて同様の構造的課題を特定しており、ML パイプラインではコンポーネントが複雑に絡み合っているため、個別の検証だけでは不十分だと述べています。個々の部分を検証しても、システム全体を検証する必要性は消えません。
解決策は特別なものではありません。代表的な入力サンプルを本番環境のパス全体に通し、組み合わせ設定における品質と遅延の極値(tail-latency)を測定します。これは Layers 2 と 3 を支える評価フレームワークと同じものを使用するため、エンドツーエンドで決定論的な計測が可能です。重要なのは「代表的な」入力をいかに選定するかであり、そのためにはトラフィック重み付きサンプリングと、結合部テストで最も見落としがちな特定の地域や入力モダリティ、過去にインシデントが発生しやすいパターンといった「極値(tail)」の意図的な過剰代表を組み合わせるのが最適です。
テストセットは、最もトラフィックの多いセグメントを網羅し、コンポーネントのカバレッジが最も弱い地域や入力モードのロングテールも含まれます。また、過去のインシデントから回帰テストケースを意図的に追加しています。このセットは小さく、すべてのリリース候補で効率的に実行可能でありながら、広範囲にわたるため、実装の接合部で発生するバグが本番環境への展開前に発見できます。具体的には、コードミックスされた入力を言語検出が誤って分類したり、モデルが依存していたフィールドを前処理が切り捨ててしまったり、キャッシュウォームアップの相互作用によるレイテンシの急上昇などが含まれます。
基盤が十分に強固であれば、エンドツーエンドの検証は別プロジェクトとして扱う必要はありません。それは、すでに信頼しているインフラストラクチャをもう一度呼び出すに過ぎません。
結論
4 つの層はチェックリストではなく、依存関係のスタックです。決定論的な評価により、その日のうちに修正を行うことが可能になります。当日の修正が可能になることで、マイクロアダプターの実装規律も管理しやすくなります。エンドツーエンドの検証が意味を持つのは、その裏側にある測定値が信頼できる場合だけです。この 4 つの層からどれか一つを欠けば、他の層も機能しなくなります。
より深い教訓は、どこにレバレッジ(効果的な介入点)が存在するかという点にあります。業界全体の直感(そして私たちが初期に持っていた考え)は、システムが不安定だと感じたときにモデルの改善を図ることにあります。しかし、負債が蓄積するのはコンポーネント内部ではなく、その接合部なのです。
LLM パイプラインは、10 年前に Sculley らが記述した ML パイプラインと本質的に異なるわけではありません。真の革新性はここにあります。しかし、その中核にあるのは、新しい失敗モードが実際に発生する場所に判断力を以て適用された、地味でよく理解されているシステムエンジニアリングのパターンです。
LLM パイプラインは、中間に非決定論的な要素を含むパイプラインであり、これが推論を難しくしますが、テストの重要性をより高めています。
この種の業務に興味をお持ちの方は、ぜひオープンポジションをご覧ください。
参考文献
Abbasi Yadkori, Y., Kuzborskij, I., György, A., & Szepesvári, C. (2024). To Believe or Not to Believe Your LLM: Iterative Prompting for Estimating Epistemic Uncertainty. NeurIPS 2024. https://openreview.net/pdf?id=k6iyUfwdI9
Hu, E., Shen, Y., Wallis, P., Allen-Zhu, Z., Li, Y., Wang, S., Wang, L., & Chen, W. (2022). LoRA: Low-Rank Adaptation of Large Language Models. ICLR 2022. https://arxiv.org/abs/2106.09685
Ling, C., Zhao, X., Zhang, X., Cheng, W., Liu, Y., Sun, Y., … & Chen, H. (2024). Uncertainty Quantification for In-Context Learning of Large Language Models. https://arxiv.org/pdf/2402.10189
Sculley, D., Holt, G., Golovin, D., Davydov, E., Phillips, T., Ebner, D., Chaudhary, V., Young, M., Crespo, J., & Dennison, D. (2015). Hidden Technical Debt in Machine Learning Systems. NeurIPS 2015. https://proceedings.neurips.cc/paper_files/paper/2015/file/86df7dcfd896fcaf2674f757a2463eba-Paper.pdf
Liu, Y., et al. (2024). FashionGPT: LLM instruction fine-tuning with multiple LoRA-adapter fusion. Knowledge-Based Systems, Vol 299. https://doi.org/10.1016/j.knosys.2024.112043
Meng, K., Bau, D., Andonian, A., & Belinkov, Y. (2022). Locating and Editing Factual Associations in GPT. NeurIPS 2022. https://arxiv.org/abs/2202.05262
Cohen, R., Biran, E., Yoran, O., Globerson, A., & Geva, M. (2024). Evaluating the Ripple Effects of Knowledge Editing in Language Models. TACL 2024. https://arxiv.org/abs/2307.12976
Kästner, C., Kang, E., & Apel, S. (2021). Feature Interactions on Steroids: On the Composition of ML Models. arXiv:2105.06449. https://arxiv.org/pdf/2105.06449
Pletenev, S., Marina, M., Moskovskiy, D., Konovalov, V., Braslavski, P., Panchenko, A., & Salnikov, M. (2025). How much knowledge can you pack into a LoRA adapter without harming LLM. Association for Computational Linguistics. https://doi.org/10.18653/v1/2025.findings-naacl.243
謝辞
この研究を技術的な議論、インフラのサポート、そしてフィードバックを通じて形作ってくれた同僚や査読者の方々に感謝いたします。
本記事の作成にあたり、各段階で多大なるご指導とご支援を賜りました Yashar Mehdad 氏、Nikolaj Nielsen 氏、Haotian Li 氏、Richa Khandelwal 氏、Dan Miller 氏、Jisheng Liang 氏、Julie Xiang 氏、Atul Kale 氏に心より感謝申し上げます。また、本プロジェクトを推進する上で貴重なご支援とレビューを賜りました Yi 氏にも厚く御礼申し上げます。さらに、本記事のアイデアを洗練させるための議論に参加していただいた ML およびインフラチームの皆様にも感謝いたします。
なお、記載されている製品名、ロゴ、ブランドはすべてそれぞれの所有者の財産です。当ウェブサイトにおいて使用される企業名、製品名、サービス名はいずれも識別目的のみであり、これらを使用することが特定の団体を推奨するものとはみなされません。
image「数週間から 1 日へ:LLM 評価を高速化して迅速な反復を実現した方法」は、もともと Medium の The Airbnb Tech Blog で公開された記事です。ここでは読者によるハイライトやコメントを通じて議論が続いています。
原文を表示
Training an LLM is the easy part. The hard part is designing experiments and evaluations that you can trust enough to know whether the new model is actually an improvement.
imageBy: Baharak Saberidokht
Introduction
Shipping a production LLM system means iterating fast on improvements to something that is, by construction, non-deterministic. Models drift, judges disagree with themselves, references regenerate as different strings, and bugs may persist until the next release, because retraining takes weeks. Most of this friction comes from infrastructure challenges, not model quality, and the fixes come from classical software engineering techniques.
At Airbnb, we built reliable LLM infrastructure by addressing four layers. Three correspond to engineering enhancements we’ve made; the fourth is the integration layer that ties the rest together — the one that is easiest to overlook, because each individual component looks fine in isolation. The approach rests on two observations: the seams are where things break, and finding those breaks requires exercising the full path, not just validating each component in isolation.
imageFigure 1. The four layers of the production LLM stack. Bounded model mutation requires trustworthy measurement, and end-to-end validation requires the eval foundation to be fast enough to run on the combined path.
Layer 1: Name it before trying to remove it
Layer 1 is diagnostic framing of evaluation noise. This layer addresses two different sources of indeterminacy: data and judging uncertainty.
Classical ML metrics are deterministic: F1, BLEU, and accuracy return the same number on the same input. With LLMs in the evaluation loop, that assumption dies. Judges score identical inputs differently across runs, and LLM-generated references regenerate as different strings.
A two percent score movement can mean the model improved, the judge drifted, the references shifted, or some combination. We cannot tell which without naming which kind of noise we are looking at.
imageThe question is not only, “Which average is higher?,” but “Where do the systems differ, and are those differences meaningful, stable, and product-relevant?” Meaningful, as we use it, means surviving perturbation: the conclusion holds when we rotate judges, version metrics, and re-stratify samples. Formal significance testing is a complement, not the whole answer; a difference that passes a t-test but flips under judge swap isn’t a difference worth shipping on.
We use the frame of dual indeterminacy: noise in LLM evaluation has two potential sources, each requiring separate diagnoses & fixes. Abbasi Yadkori et al formalizes this separation, showing that epistemic uncertainty (model/judge limits) and aleatoric uncertainty (task ambiguity) require different detection strategies, and that conflating them produces wrong conclusions. Specifically, methods that fail to separate them misclassify high-entropy responses as hallucinations. Ling et al. (2024) extends this to the in-context learning, demonstrating that epistemic uncertainty is the more actionable signal, while aleatoric uncertainty reflects properties no judge improvement resolves.
imageIn practice, the two kinds of uncertainty can appear together. A generated answer may depend on missing user preferences (aleatoric) while the judge lacks domain knowledge to verify it (epistemic). Some judge disagreements are fixable; others reflect properties of the task.
In our setting, roughly three-quarters of LLM-generated references differ across labeling runs on identical inputs, and the same judge drifts about one percent across runs on the same dataset. When the real signal is one to three percent, much of what we observe is noise — and not the kind more samples will resolve.
Naming the sources isn’t enough; we need to tell them apart in a given experiment. That requires judge outputs stable across runs on identical inputs. Layer 2 makes that possible.
Layer 2: A deterministic evaluation foundation
The instinctive responses to a noisy judge are probabilistic: sample and majority-vote, or model the noise Bayesian-style. Both fall short. Majority voting converges toward the judge’s central tendency, not toward accuracy. Bayesian methods need a centralized store for priors and per-sample posteriors across runs; effectively the same infrastructure as a per-sample cache, but without the reproducibility you get for free by caching.
Repeated sampling is effective at identifying examples where judges’ scores vary significantly (judge-sensitive examples). For instance, a stable case shows low variation (e.g., [0.78, 0.80, 0.79, 0.81, 0.78]), while an unstable case shows high variation (e.g., [0.45, 0.83, 0.52, 0.88, 0.60]). However, applying this method broadly is resource-prohibitive because the evaluation resource burden scales quickly with the number of examples, systems, and judges.
The simpler move is to stabilize the inputs to the judge rather than model around its instability. When we instrumented the workload, more than half of model outputs across candidates were identical strings. So most experimental changes only affect a subset of inputs, and candidates sharing a base model diverge only on contested examples. Most reference outputs would also have matched had we not regenerated them. The noise we experienced was largely generated by the testing process itself.
We built a per-sample cache on both axes:
References: Keyed by sample identifier (eg text or more) and reference-generation configuration.
Judge scores: Keyed by sample, model output, judge configuration, and metric.
Identical inputs return cached results. Evaluation becomes deterministic, more efficient, and comparable across runs, which is exactly what Layer 1 needs to diagnose whether a disagreement is epistemic or aleatoric.
Keying at the experiment level (not the infrastructure level) also makes partial progress durable: a job failing at example 8,000 will resume from the cache. Each new candidate and metric runs against existing cached outputs for free. Reproducibility at this stage is not a convenience; it is a precondition for the next layer.
Layer 3: bounded, scoped model mutation
Once evaluation is deterministic and fast, the bottleneck shifts from “Can we measure whether this change is an improvement?” to “Can we make a small change quickly?” Full adapter retraining is the wrong tool because it is neither quick nor safe. A LoRA adapter is a small set of extra weights trained on top of a frozen base model; its rank sets how much capacity it adds, with higher ranks learning more but costing more to train. On an 8-billion-parameter base model, training a high-rank adapter (a few hundred in LoRA terms) takes days, and every weight change risks regressing inputs that were already working.
The research gives us both the justification and the warning. Meng et al. (NeurIPS 2022) shows factual behavior in transformers is partially localized; targeted weight updates to specific MLP modules can succeed without disturbing unrelated behavior. Cohen et al. (TACL 2024) shows the limits: even precise edits produce ripple effects on logically related knowledge. Pletenev et al. (2025) puts a practical boundary on it; LoRA adapters can absorb targeted corrections reliably up to a few hundred examples, beyond which reasoning degrades and the model becomes overconfident in hard-to-detect ways.
Our solution is the micro adapter: a small LoRA patch — rank less than 50, well below the few-hundred range used for full retraining — layered on top of an existing shared adapter without modifying its weights. The patched adapter learns only the minimal correction for a specific bug, trains in under an hour on one GPU, and ships as a software hotfix would: scoped to one issue, validated behind two gates (no regression on expert-reviewed domains; high-uncertainty outputs flagged for human review), canary-deployed with automatic rollback. The loop runs under a same-day turnaround.
Each micro adapter is self-contained in isolation, but stacked patches interact: a direct case of the rule in Sculley et al. ( 2015) rule, captured in the acronym CACE (changing anything changes everything). Three lifecycle rules keep the stack from drifting:
Fuse co-triggering patches. Patches firing on overlapping inputs share relational neighborhoods; learnable fusion resolves the subspace interference that naive stacking creates (Gao et al., 2024).
Retrain on accumulation. When the number of patches against one category approaches the empirical ceiling given in Pletenev et al., fold the patches into a clean retrain.
Unload unused patches. Every loaded patch needs revalidation when upstream changes. Patches not triggered in a defined window are unloaded automatically.
This layer only works because Layer 2 exists. Without deterministic evaluation, the same-day turnaround collapses; there is no time to validate behind two gates if validation itself takes a day.
Layer 4: end-to-end validation at the seams
This final layer is the layer that is easiest to overlook, because each of the individual components upstream is likely to look fine. We had validated language detection, preprocessing, the modeling layer, and the serving path. Yet the combined production behavior was still capable of surprising us, because none of the component-level checks exercised the full path under realistic conditions.
Component-level confidence creates false assurance at the seams. This is a known failure mode of ML-enabled systems. Kästner et al. (2021) argues that ML components resist the compositional reasoning that makes traditional software testable. They carry no formal specifications, so their interactions at the seams can only be observed empirically. Sculley et al. (NeurIPS 2015) identifies the same structural problem through the CACE principle: in ML pipelines, components are entangled in ways that make isolated validation insufficient. Validating each part does not remove the need to validate the whole.
The fix is unexotic: a small set of representative inputs are run through the entire production path, with quality and tail-latency measured on the combined configuration. This is done using the same eval framework that powers Layers 2 and 3, so deterministic measurement applies end-to-end. Selecting truly “representative” inputs is what matters, and this is best performed by combining traffic-weighted sampling with deliberate over-representation of the tail — the locales, input modalities, and historically incident-prone patterns that individual component tests most often miss.
We stratify across the highest-volume traffic segments, include the long tail of locales and input modalities where component coverage is weakest, and explicitly seed the set with regression cases from prior incidents. The set is small enough to run efficiently on every release candidate, and broad enough that bugs which occur at the seams surface before deployment. These bugs include language detection misclassifying a code-mixed input, preprocessing truncating a field the model relied on, and latency spikes from cache-warmth interactions.
When the foundation is strong enough, an end-to-end pass is not a separate project; it is one more invocation of infrastructure that you already trust.
Conclusion
The four layers are a dependency stack, not a checklist. Deterministic evaluation makes same-day fixes possible. Same-day fixes make micro-adapter discipline tractable. End-to-end validation only means something when the measurement underneath it is trustworthy. Remove any one layer and the others degrade.
The deeper lesson is about where the leverage actually is. The field’s instinct (and our own, early on) is to reach for model improvements when systems feel unreliable. But the debt accumulates at the seams, not in the components.
LLM pipelines are not categorically different from the ML pipelines described a decade ago in Sculley et al. They are pipelines with a nondeterministic component in the middle, which makes the seams harder to reason about, but all the more important to test.
The novelty in the field is real. The leverage is still in the boring, well-understood patterns of systems engineering, applied with judgment to where the new failure modes actually live.
If this type of work interests you, check out some of our open roles.
References
Abbasi Yadkori, Y., Kuzborskij, I., György, A., & Szepesvári, C. (2024). To Believe or Not to Believe Your LLM: Iterative Prompting for Estimating Epistemic Uncertainty. NeurIPS 2024. https://openreview.net/pdf?id=k6iyUfwdI9
Hu, E., Shen, Y., Wallis, P., Allen-Zhu, Z., Li, Y., Wang, S., Wang, L., & Chen, W. (2022). LoRA: Low-Rank Adaptation of Large Language Models. ICLR 2022. https://arxiv.org/abs/2106.09685
Ling, C., Zhao, X., Zhang, X., Cheng, W., Liu, Y., Sun, Y., … & Chen, H. (2024). Uncertainty Quantification for In-Context Learning of Large Language Models. https://arxiv.org/pdf/2402.10189
Sculley, D., Holt, G., Golovin, D., Davydov, E., Phillips, T., Ebner, D., Chaudhary, V., Young, M., Crespo, J., & Dennison, D. (2015). Hidden Technical Debt in Machine Learning Systems. NeurIPS 2015. https://proceedings.neurips.cc/paper_files/paper/2015/file/86df7dcfd896fcaf2674f757a2463eba-Paper.pdf
Liu, Y., et al. (2024). FashionGPT: LLM instruction fine-tuning with multiple LoRA-adapter fusion. Knowledge-Based Systems, Vol 299. https://doi.org/10.1016/j.knosys.2024.112043
Meng, K., Bau, D., Andonian, A., & Belinkov, Y. (2022). Locating and Editing Factual Associations in GPT. NeurIPS 2022. https://arxiv.org/abs/2202.05262
Cohen, R., Biran, E., Yoran, O., Globerson, A., & Geva, M. (2024). Evaluating the Ripple Effects of Knowledge Editing in Language Models. TACL 2024. https://arxiv.org/abs/2307.12976
Kästner, C., Kang, E., & Apel, S. (2021). Feature Interactions on Steroids: On the Composition of ML Models. arXiv:2105.06449. https://arxiv.org/pdf/2105.06449
Pletenev, S., Marina, M., Moskovskiy, D., Konovalov, V., Braslavski, P., Panchenko, A., & Salnikov, M. (2025). How much knowledge can you pack into a LoRA adapter without harming LLM. Association for Computational Linguistics. https://doi.org/10.18653/v1/2025.findings-naacl.243
Acknowledgments
I am grateful to the colleagues and reviewers who shaped this work through technical discussions, infrastructure support, and feedback.
Special thanks to Yashar Mehdad, Nikolaj Nielsen, Haotian Li, Richa Khandelwal, Dan Miller, Jisheng Liang, Julie Xiang, and Atul Kale for their guidance and support at different stages. I’m also grateful to Yi Li for the support and review that helped bring this work forward. I also appreciate the broader ML and infrastructure teams for the discussions that helped refine the ideas in this article.
All product names, logos, and brands are property of their respective owners. All company, product, and service names used in this website are for identification purposes only. Use of these names, logos, and brands does not imply endorsement.
imageFrom weeks to a day: how we made LLM evaluation fast enough to iterate on was originally published in The Airbnb Tech Blog on Medium, where people are continuing the conversation by highlighting and responding to this story.
AI算出
技術分析ainew評価高い
Airbnb が LLM 評価のボトルネック解消のために導入した 4 レイヤー構成や、非確定的なノイズへの対処法など、実装に即した深い技術分析が含まれており、新規性も高い。ただし、特定の製品名やバージョン番号がタイトルに含まれていないため検索機会は中程度であり、日本固有の事例や規制情報もないため関連性は低い。
6つの評価軸を見る
- AI関連度
- 100
- 情報源の信頼性
- 100
- 新規性
- 75
- 調べる価値
- 50
- 重複の少なさ
- 100
- 日本での有用性
- 25
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み