AIToday
大規模言語モデルHacker News掲載日時: 2026年8月10日 1:0010分で読める

金融メルマガ配信、9モデルの評議会で信頼性確保

LINEで送る
金融メルマガ配信、9モデルの評議会で信頼性確保

要点

  • MarketDailyの運営者は、金融メールマガジンの信頼性を確保するため、7社の9モデルを「評議会」として活用し、決定論的コード検証と30項目の監査チェックで出力品質を保証するシステムを構築しました。

  • 単一モデルのエラーや沈黙の劣化に対抗し、75日間で購読者21名に対応しており、重大障害時には自動的に低品質な出力を遮断して代替版を配信する仕組みになっています。

3つのポイント

  1. 何が起きたか

    MarketDailyという個人向け金融メールマガジンの運営者が、単一モデルの信頼性不足を解決するため、Gemini・Groq・Ollama・Cloudflare Workers AI・OpenRouter・Cerebras・OpenAIの7社9モデルで構成した「評議会」システムを構築しました。2026年5月19日の初回コミット以来75日間、1,800以上のコミット履歴を経て、現在21名の購読者に対応しており、最後に30の決定論的チェック(修正:当初は31と記載)で出力を検証してから送信しています。

  2. なぜ重要か

    金融コンテンツは価格目標の捏造が単なるバグでは済まず、信頼を失わせる致命傷になります。複数モデルの「沈黙の劣化」(エラーを出さずに低品質な結果を返すこと)に対抗するため、構造的な方向性は決定論的コードで決定し、LLMは意見層のみに限定し、すべての出力をコード検証する3層構造を採用しました。これにより、個別障害への耐性だけでなく、相関した障害(複数クラウド提供者の同時クォータ枯渇など)への耐性も確保できます。

  3. 注目点

    システムは2026年6月30日(日目42)に評議会を導入され、それ以前は単純なモデル+フォールバック方式でした。重大な障害時には、決定論的フォールバック(価格目標を含まない基本的なHTMLレポート)が自動配信され、『絶対にメールを送らない』と『ゴミを送らない』という2つの保証が異なるメカニズムで強制されています。

詳細

全文を読む

MarketDailyはユーザーが米国・台湾株の保有銘柄を登録すると、1日2回、個人向けのカスタマイズされたHTMLレポートを自動生成・配信する日次メールマガジンです。2026年5月19日に初めてコミットされて以来75日間、1,800以上の本番環境でのコミット履歴を蓄積しており、現在21名の購読者に対応しています。金融コンテンツ配信ではきわめて高い信頼性が要求されます。捏造された価格目標や分析は単なるバグ報告ではなく、ユーザーの信頼を失わせる「致命傷」になるからです。

従来の単純な「メインモデル+フォールバックモデル」アーキテクチャでは、明示的なエラーこそ少ないものの、クォータ圧力下で「フォーマットは正しく見えるが分析内容が低品質な出力」(沈黙の劣化)という危険な状態が生じます。これに対応するため、運営者は3層からなる検証パイプラインを設計しました。まず市場データから構造的な方向性( 価格対MA20/MA50比較で買いか売りか)を決定論的コードで決定し、LLMはこの枠組み内でのみ意見を述べるようにしました。

次に、7社9モデルで構成された「評議会」が各銘柄について独立した意見を形成します。座席はGemini×2、Groq、Ollama経由のローカル14Bモデル、Cloudflare Workers AI×2、OpenRouter、Cerebras、OpenAIです。各座席は同一の市場データと構造的制約を受け取り、JSON形式で{傾き(lean)、確信度(conviction)、論拠(thesis)、主要リスク(key_risk)}を返します。異なる意見は「ノイズ」ではなく「機能」として扱われ、評議会内に買いと売りの両方が存在する場合は「不一致度2」と記録され、その銘柄は最終的なカード表現で強制的に慎重な表現に変更され、信頼度も低く表示されます。信頼度は履歴的なキャリブレーション表から75%で上限設定され、それを超える数字は「防御メカニズムの破損」として監査対象になります。

座席選択は「ベンチマーク追求」ではなく「クォータ工学」を原則としています。複数ベンダーの無料枠を活用することで、朝5時の致命傷=相関したクォータ枯渇を回避するためです。実際のスケジューリングに影響した制約は多岐にわたります。Groqの無料層は分当たり8,000トークン・処理数(TPM)、モデル別の日次上限200,000トークン・日(TPD)に制限されており、評議会が197,364TPDを消費して報告書生成の45呼び出しが144秒/回の低速フォールバックモデルに追い込まれた結果、メール配信が1時間35分遅延した事件から、評議会専用と報告書専用で異なるモデルを割り当てる設計に改められました。ローカルGPU上の14Bモデルはクォータ制限なし・ネットワーク依存なしという唯一の特性を持つため、全クラウドプロバイダーのクォータが同時に枯渇するシステム障害時の最後の砦になっています。

評議会の各座席には回路遮断器が設けられ、クォータ消費済み・APIキー欠落・連続3回失敗によって当番は無効化されます。特にHTTP 402(請求壁)は初回で即座に座席を殺し、支払いエラーの再試行は純粋な無駄と見なします。評議会が判定したら、次に「裁判官」(judge)が全座席の意見をJSON形式で読み取り、単に「最も大きい声」をおうむ返しするのではなく、合意と不一致を統合させるように指示されます。裁判官自身もフォールバック鎖を持ち、全体が故障した場合は最も確信度の高い座席の論拠をそのまま使用します。座席数が2未満の場合、評議会の判定は存在しないと見なされ、銘柄は単一モデルの経路を通ります。評議会全体は fail-safe で設計され、いかなる障害も部分的な結果を返して送信をブロックすることはありません。

最終的なHTMLレポートは、その後「監査」(audit)ステップで30の決定論的チェックにかけられます。各チェックは実際のユーザー怒りの事例にマッピングされており、時制規律(午前7時に「台湾株が今日上昇」と書くことは不可、市場は午前9時開場)、保有銘柄カバレッジ(ユーザーが選んだすべての銘柄に行動カードが必須)、捏造検出(XXXプレースホルダー、偽URL、データフィードに存在しない決算予想)、プロンプト指示の漏洩(LLMが自分の指示文をユーザー向けテキストにコピーする)、切断検出、未定義CSSクラスが含まれます。高度な障害が検出された場合、60秒待機(無料層は分単位制限であり、5秒後の再試行は同じ429窓に落ちて弱いモデルに強制される)、より強力なモデルを前に置いて再生成、それでも失敗すれば決定論的フォールバック(コード組立による、価格水準を含まない)を送信します。

3つの本番インシデントが現在のシステムを作りました。「429インシデント」ではGeminiの日次クォータが枯渇し、バックオフロジックが全体で約100秒/呼び出しを焼き尽くし、メール配信が5時間遅延しました。修正は「同一モデルで連続2回の429=当日のクォータは死亡」と分類し、リトライロジックは一時的エラーには正確だが、クォータエラーには有害という学習です。「CSSインシデント」は2段階でした。第1段階:LLMに「既存のCSSクラスを再利用せよ」と指示するとnews-titleのようなニアミス名を生成し、スタイルシートルールが存在しないため全セクションが無装飾でレンダリングされました。修正として undefined_css_class 高度チェックが追加されました。第2段階(1週間後):月曜版プロンプトに逐語的スケルトンが欠落していたため、すべてのモデルがクラスを発明し、12ユーザー全員がチェックに引っかかり、再試行も同じプロンプト・同じ病気のため失敗し、9ユーザーが劣化フォールバック版を受け取りました。防御自体が事件化した一例です。真の修正は検査前の決定論的修復層(既知のニアミス名を正規マッピング、未知の名前は削除)でした。教訓:「既存クラスを使え」は仕様ではなく、逐語的スケルトンが仕様であること、および任意の高度チェック追加前に「全員が同時に失敗した場合」を問うことです。「深度崩壊インシデント」ではある朝、すべての無料クォータが遮断され、生成が最弱モデルに降格し、銘柄ごとの推論が129~165文字から48~64文字に崩壊しました。フォーマットは完璧で価格は存在し、すべてのチェックが合格しましたが、人間が検出しました。修正は統計的:本番履歴に対するキャリブレーション(通常日:中央推論長107~197文字、悪い日:48文字)であり、中央が80未満に落ちた実行はシステム崩壊としてフラグが立ちます。フォーマット検査は簡単ですが深さ検査には自身の良好日のベースラインが必要です。横方向の追加防御:単一実行で3ユーザー以上が同じ高度チェックを発火させた場合、管理者に即座に通知。

全体として、75日間の運用で34日間のシステム改訂を経たことは、このアーキテクチャがエラーから学ぶ仕組みを内組化していることを示します。信頼性は高ステークスLLMシステムではモデル特性ではなく、建築特性なのです。

背景と解説

このシステムの本質は「9モデルが1モデルより賢い」という前提ではなく、アーキテクチャレベルでの信頼性設計にあります。運営者は方向性(強気か弱気か)を決定論的コードに委ねることで、LLMの権限を意見層に限定し、どのモデルも価格データを改竄する権限を持たないようにしました。たとえば、Groqのクォータ管理では、評議会用と報告書生成用で異なるモデルを使い分けることで、197,364トークンを消費した前の評議会がレポート生成を圧迫する事態を防ぎました。

インシデント対応から得られた教訓は運用哲学に組み込まれています。たとえば、クォータ枯渇(HTTP 429)に対する従来の「バックオフと再試行」ロジックは一時的なエラーには有効ですが、日次クォータの場合は同じ429窓に再び当たるだけになるため、「連続2回の429=その日のモデルはクォータ切れ」と分類して即座に除外する仕組みに改められました。CSS問題では、「既存のCラスを使え」という指示は要件ではなく、逆効果(LLMが変種を生成、全ユーザーが同じ検査に引っかかり、フォールバックが次々発動)になることが明らかになったため、決定論的な修復層(既知の類似名を正規化、不正な名前は削除)を検査の前に挿入することで対応しました。

よくある質問

どのAIモデルが使われていますか?
Gemini×2、Groq、Ollama経由のローカル14Bモデル、Cloudflare Workers AI×2、OpenRouter、Cerebras、OpenAIの計9席が構成されています。ただし複数のモデルの座席が無効になることもあり、典型的には約5つの独立した声が稼働します。
システムが出力を検証する仕組みは何ですか?
最終的なHTMLレポートに対して30の決定論的チェック(時制規律、ユーザー保有銘柄のカバレッジ、捏造検出、指示漏洩、CSSクラス定義の確認など)を実行します。高度な障害が検出された場合、60秒待ってより強力なモデルで再生成し、それでも失敗すれば決定論的フォールバック版(価格目標を含まない)を送信します。
どのような障害が実際に起きましたか?
クォータ枯渇でメール配信が5時間遅延した「429インシデント」、LLMが存在しないCSSクラス名を生成した「CSSインシデント」(修正後も全ユーザーで失敗して検査自体が問題になった)、および9つのモデルすべてが弱いモデルに降格して分析深度が48〜64文字に落ち込んだ「深度崩壊インシデント」が記録されています。

「大規模言語モデル」の最新ニュースを、毎朝7時にお届けします

AIが要約して、あなたの選んだトピックだけを1日1通。LINE・Email・Slackで届きます。

登録無料・30秒で完了・いつでも解除できます

AIに質問

この記事についてわからないことをAIに質問できます。Q&Aはこのページに公開され、他の読者も読めます。

関連記事

次の記事へAI安全テスト環境から次世代モデルが逃脱、実システム侵害も

AIニュースの要点を毎朝1分で。

無料で登録