本文へスキップ
Starone

ケイパビリティ

デモではなく、本番運用のために設計するAIシステム

モデルを呼び出すこと自体は難しくありません。私たちが設計するのはその周囲です。検索、オーケストレーション、ツール、評価、セキュリティ、コスト管理、テレメトリーを作り込み、AI機能を計測・運用でき、信頼できるものにします。

概要

AIエンジニアリングとは、モデルの能力を、組織が依存できるシステムへと変える技術領域です。モデルは構成要素のひとつにすぎません。その周囲には検索、オーケストレーション、ツール、ガードレール、評価、アクセス制御、コスト管理、テレメトリーがあり、エンジニアリングの工数の大半はこれらに費やされます。

これが重要なのは、言語モデルが確率的に動作するためです。同じ入力から異なる出力が得られることがあり、流暢な回答が誤っていることもあります。プロバイダーがモデルを更新したり、自社のドキュメントが変わったりすれば、挙動も変わります。こうした構成要素の上に築くシステムには、計測された品質、範囲の限定された障害モード、そしてユーザーより先にリグレッションを検知する手段が必要です。

Staroneは、データ、モデル、オーケストレーション、アプリケーション、評価、オブザーバビリティまでを一続きの経路としてAIを扱います。LLMアプリケーション、検索拡張生成(RAG)、エージェントワークフロー、ドキュメントインテリジェンス、コンピュータビジョン、予測分析を対象とし、要件を満たす最も単純な手法を選びます。それがLLMではなく、勾配ブースティングモデルやルールエンジンである場合もあります。

エンジニアリング領域

技術領域

01

LLMアプリケーションアーキテクチャ

LLMアプリケーションは、非決定的な依存先を抱えた分散システムです。私たちはアプリケーション層とオーケストレーション層を分離し、プロンプト、コンテキストの組み立て、モデルルーティング、リトライ、ストリーミング、フォールバックをオーケストレーション層に持たせます。これにより、プロダクトのコードを書き直さずにモデルを差し替えられます。推論パイプラインには、他のクリティカルパスと同じタイムアウト、キュー、バックプレッシャーを組み込みます。

  • モデルゲートウェイとルーティング
  • スキーマ検証付きの構造化出力
  • ストリーミング応答
  • フォールバックとリトライのポリシー
  • プロンプトキャッシュとセマンティックキャッシュ
  • コンテキストウィンドウの管理
  • バッチ推論とオンライン推論のパイプライン
02

検索とナレッジ

検索拡張生成(RAG)は、モデルの学習データではなく自社のコンテンツに回答を根拠づけます。品質の大部分はモデルより上流で決まります。ドキュメントをどう解析し、チャンク化し、埋め込み、インデックス化し、権限で絞り込むかです。私たちはベクトル検索にキーワード検索とリランキングを組み合わせてナレッジベースを構築し、エンティティ間の関係に依存する問いにはナレッジグラフを用います。

  • 埋め込み(エンベディング)パイプライン
  • ベクトル検索とBM25のハイブリッド検索
  • クロスエンコーダーによるリランキング
  • チャンク化とメタデータの設計
  • 権限を考慮した検索
  • ナレッジグラフ
  • インデックスの増分更新
03

エージェントとツール利用

エージェントは、モデルに手順を計画させ、ツールを呼び出させる仕組みです。ツールとは、システムへの問い合わせや操作を行う、型付きスキーマを持つ関数です。私たちは、明示的な状態、ステップ数の上限、冪等なツール、重大な操作に対する人による承認を備えたエージェントワークフローを設計します。マルチエージェントシステムを採用するのは、コンテキストや権限の異なる役割にタスクをきれいに分けられる場合に限ります。エージェントを一つ増やすごとに、レイテンシ、コスト、障害経路が増えるためです。

  • 型付きスキーマによるツール呼び出し
  • 永続化されたワークフロー状態
  • プランナーとエグゼキューターのパターン
  • マルチエージェントの協調
  • ヒューマン・イン・ザ・ループによる承認
  • ステップ数と予算の上限
04

プロンプトエンジニアリングと評価

プロンプトはコードです。バージョン管理し、レビューし、リリース前にデータセットでテストします。私たちは実際のタスクから評価セットを作り、決定的なチェック、モデルによるルーブリック採点、人によるレビューでスコアを付け、CIで実行します。プロンプト、モデル、検索のいずれの変更も、品質を下げるものはリリースできません。ハルシネーションは、根拠づけ、引用の必須化、出力の制約、そしてシステムが回答を控えられるようにすることで低減します。

  • バージョン管理されたプロンプトレジストリ
  • ゴールデンデータセットとリグレッションスイート
  • 人のレビューで較正したLLM-as-judge
  • 根拠性と引用のチェック
  • 検索の再現率と適合率の指標
  • オンラインA/B評価
05

AIセキュリティとガバナンス

LLMは指示とデータを確実には区別できません。そのため、検索されたドキュメントやツールの実行結果を含め、モデルが読むあらゆるテキストがモデルの挙動を誘導しようとする可能性があります。私たちはモデルの出力を信頼できない入力として扱い、認可をモデルの外側で強制し、各ツールが実行できる操作を制限します。データ漏えいは、権限を考慮した検索、PIIのマスキング、テナント分離、そしてどのプロバイダーに何を送るかについての明確なルールによって制御します。

  • プロンプトインジェクション対策
  • 最小権限のツール権限
  • 出力の検証とフィルタリング
  • PIIの検出とマスキング
  • テナントごとに分離されたインデックス
  • プロンプトと操作の監査ログ
06

LLM以外の応用機械学習

多くの課題には、タスク特化型のモデルのほうが適しています。ドキュメントインテリジェンスは、OCR、レイアウト解析、抽出モデルを組み合わせ、請求書、契約書、帳票を検証済みの構造化データに変換します。コンピュータビジョンは検出、分類、検査を、予測分析は表形式データや時系列データに対する予測、スコアリング、異常検知を扱います。

  • OCRとレイアウトを考慮した抽出
  • 物体検出と画像分類
  • 予測と異常検知
  • 特徴量パイプライン
  • モデルサービングとバッチスコアリング
  • ドリフト監視

実験と本番AIエンジニアリングの違い

実験が答える問いは一つです。そもそもモデルにそのタスクができるかどうか。ノートブックと少数の例、プロンプトがあれば十分で、成否は目視で判断されます。これは有益な作業ですが、証明されるのは作成者が思いついた入力に対する実現可能性だけです。

本番AIエンジニアリングでは、次のことを明らかにしなければなりません。実際の入力分布全体で出力がどの程度正しいのか。プロバイダーがタイムアウトしたり、モデルを変更したりしたときに何が起きるのか。誰がどのデータを見られるのか。1リクエストのコストはいくらか。p95でどれだけ時間がかかるのか。リグレッションをどう検知し、どうロールバックするのか。

両者の差の大部分は、特殊な構成要素に対して通常のエンジニアリングを適用することで埋まります。それを省いたチームは、欠けている部分をインシデントのたびに一つずつ発見することになりがちです。

  • 手で選んだ例は、合格しきい値を持つ継続的に保守される評価データセットへ
  • その場で編集していたプロンプトは、CIを通じてリリースされるバージョン管理された成果物へ
  • 単一のモデル呼び出しは、タイムアウト、フォールバック、キャッシュを備えたルーティング付きの呼び出しへ
  • 制限のないデータアクセスは、監査ログを伴う権限を考慮した検索へ
  • 出力の目視確認は、トレーシング、品質サンプリング、コストダッシュボードへ

アーキテクチャ

本番AIアプリケーションの構造
  1. ユーザー

    • Webアプリ
    • モバイルアプリ
    • チャットUI
    • 社内ツール
  2. アプリケーション層

    ID、権限、ユーザー体験を担う層

    • セッション管理
    • アクセス制御
    • レスポンスストリーミング
    • フィードバック収集
  3. AIオーケストレーション層

    プロンプト、ツール、ポリシーをバージョン管理しテストする層

    • プロンプト管理
    • ツール呼び出し
    • ガードレール
    • モデルルーティング
  4. モデル / エージェント

    • ホスト型LLM
    • セルフホストモデル
    • タスクエージェント
    • 埋め込みモデル
  5. ナレッジ・データ層

    検索は呼び出し元の権限に従う

    • ベクトルインデックス
    • ドキュメントストア
    • リレーショナルデータ
    • セマンティックキャッシュ
  6. 業務システム / API

    • ERP・CRM
    • IDプロバイダー
    • 社内API
    • ドキュメントリポジトリ
  7. インフラ・オブザーバビリティ

    トレース、コスト、品質をリクエスト単位で計測

    • Kubernetes
    • GPU・APIキャパシティ
    • トレーシングと評価
    • コスト監視
本番AIシステムにおいて、ユーザーとモデルの間にある層を示します。エンジニアリングの労力の大半は、モデル呼び出しそのものではなく、オーケストレーション、ナレッジ、統合、オブザーバビリティに費やされます。

本番AIシステムのレイヤー構造

本番AIシステムは、レイヤーとして捉えると考えやすくなります。ユーザーはアプリケーション層とやり取りします。アプリケーションはAIオーケストレーション層を呼び出し、そこからモデルとエージェントが呼び出されます。モデルとエージェントはナレッジ・データ層を参照し、エンタープライズシステムやAPIを通じて操作を行います。そのすべての下にインフラストラクチャとオブザーバビリティがあります。

アプリケーションをLLM APIに直接つなぐと、これらのレイヤーは一つの関数呼び出しに潰れてしまいます。それでも動きますが、その呼び出しでは提供できないものが必要になった時点で行き詰まります。非公開データに基づく根拠づけ、ユーザーごとの権限、単純なリクエスト向けの安価なモデル、回答の理由の記録、指示を含むドキュメントに対する防御などです。それぞれは特定のレイヤーに属するもので、後から追加するにはアプリケーションの再構成が必要になります。

同じ経路はライフサイクルとしても読めます。データ、モデル、オーケストレーション、アプリケーション、評価、オブザーバビリティです。データ品質は検索が返せるものの上限を決め、評価は何をリリースしてよいかを決め、オブザーバビリティは実際の失敗を評価セットに還元します。

  • アプリケーション層:アイデンティティ、セッション、ビジネスルール、UI、ストリーミング
  • AIオーケストレーション層:プロンプトの組み立て、ルーティング、ツール実行、ガードレール、キャッシュ
  • モデルとエージェント:ホスト型またはセルフホストのLLM、埋め込みモデル、タスク特化型モデル
  • ナレッジ・データ層:ベクトルインデックス、検索、ナレッジグラフ、元ドキュメント、特徴量
  • エンタープライズシステムとAPI:ツールが読み書きする基幹システム(System of Record)
  • インフラストラクチャとオブザーバビリティ:コンピュート、キュー、シークレット、トレーシング、評価、コストのテレメトリー

検索、コンテキスト、ハルシネーション

モデルは、コンテキストウィンドウに入っているものをもとに回答します。したがってコンテキスト管理は設計上の課題です。どの指示、検索されたパッセージ、会話履歴、ツールの結果を、どの順序で入れるのか。会話が長くなるにつれて何を要約し、何を落とすのか。コンテキストは多ければよいわけではありません。無関係なパッセージは回答品質を下げ、コストとレイテンシを押し上げます。

エンタープライズシステムにおけるハルシネーションの多くは検索の失敗です。正しいパッセージが検索されなかったために、モデルがその空白を埋めてしまうのです。私たちは検索を生成とは別に計測し、ハイブリッド検索とリランキングで再現率を高め、検索されたソースへの引用を必須とし、ソースに答えが含まれていない場合はそう述べるようシステムに指示します。他のシステムに渡される出力については、自由記述の代わりにスキーマ制約付きの生成と検証を用います。

埋め込みは意味の類似性を捉えるため、セマンティック検索や、単一のパッセージで答えられる問いに適しています。一方、廃止されたポリシーを参照している契約はどれか、といったエンティティと関係をまたぐ問いには、ナレッジグラフや構造化クエリのほうが適しています。よく設計されたシステムは、両者の間でルーティングを行います。

コスト、レイテンシ、オブザーバビリティ

推論コストはトークン数とモデルサイズに応じて増え、レイテンシは出力の長さと逐次的なモデル呼び出しの回数に応じて増えます。主な調整手段は、単純なリクエストを小さなモデルにルーティングすること、変化しないプロンプトのプレフィックスや繰り返される回答をキャッシュすること、コンテキストを削ること、オフライン処理をバッチ化すること、そして最初のトークンをすぐにユーザーへ見せるためのストリーミングです。逐次的に10回呼び出すエージェントは、どのモデルを使っても遅くなります。そのため、より高速なエンドポイントよりも、ツール呼び出しの並列化とステップ数の削減のほうが効果的です。

モデルのオブザーバビリティは、トレーシングをAIの経路まで拡張するものです。各リクエストについて、プロンプトのバージョン、検索されたドキュメント、ツール呼び出し、モデル、トークン数、レイテンシ、結果を記録し、機微な内容はマスキングします。トレースの上で、出力をサンプリングして自動および人による品質採点を行い、ユーザーフィードバックを追跡し、品質、リクエストあたりのコスト、回答拒否率のドリフトに対してアラートを出します。これがなければ、プロバイダー側のモデル変更やインデックスの劣化は、誰かが苦情を言うまで見えないままです。

エンジニアリングの進め方

私たちのアプローチ

タスクと、そこで許容できる誤り率から出発し、それに照らして計測できる最小のシステムを構築します。

  1. 01

    タスクと品質基準の定義

    システムが何をすべきか、誤った回答のコストはどれほどか、どの判断を人に残すかを明確にします。これが、以降のすべてを測る基準となる精度、レイテンシ、コストの目標を定めます。

  2. 02

    データの評価と準備

    元となるコンテンツを精査します。形式、鮮度、所有者、権限、欠落です。アクセスモデルをメタデータとして引き継ぎながら、取り込み、解析、埋め込みのパイプラインを構築します。

  3. 03

    評価セットを最初に構築

    プロンプトを調整する前に、期待される結果を伴う代表的な入力を揃えます。このデータセットがリグレッションスイートとなり、本番での失敗のたびに拡充されます。

  4. 04

    オーケストレーション層の実装

    検索、プロンプトの組み立て、ルーティング、ツール呼び出し、ガードレールを、安定した内部APIの背後に実装します。タイムアウト、フォールバック、構造化出力を備えます。

  5. 05

    セキュリティと障害への堅牢化

    プロンプトインジェクション、データ漏えい、ツールの悪用について脅威モデリングを行います。敵対的な入力でテストし、認可をモデルの外側で強制します。

  6. 06

    リリース、観測、改善

    フラグの背後で限定した対象にロールアウトし、すべてのリクエストをトレースし、品質をサンプリングして、失敗を評価に還元します。プロンプトとモデルの変更は、コードと同じパイプラインを通じてリリースします。

トレードオフ

設計を左右する判断

アーキテクチャを確定する前に、お客様のチームとともに検討する問いです。

RAGか、ファインチューニングか、あるいは両方か
変化する知識、引用が必要な知識、アクセス制御の対象となる知識が必要な場合はRAGを使います。インデックスの更新は再学習よりも安価で、監査もしやすいためです。プロンプトでは実現できない一貫した形式、トーン、タスク上の挙動が必要な場合や、限定的なタスクで小さなモデルを大きなモデルに匹敵させたい場合は、ファインチューニングを行います。両者は異なる課題に対応するもので、挙動にはチューニング済みモデル、事実には検索というように、組み合わせて使うことも少なくありません。
ホスト型のモデルAPIか、セルフホストのオープンウェイトモデルか
ホスト型APIは、キャパシティプランニングなしで最も高性能な汎用モデルを利用でき、ほとんどのワークロードに適しています。セルフホストを選ぶのは、データを自社環境の外に出せない場合、専用GPUのほうがトークン単価の課金より安くなるほど利用量が多く安定している場合、またはモデルのバージョンを自ら管理する必要がある場合です。セルフホストにはGPUの運用、サービングの最適化、アップグレード作業が伴います。データの所在要件、利用量、チームの対応能力をもとに判断します。
一つの高性能モデルですべてを処理するか、複数のモデルにルーティングするか
変数を減らすため、まずは一つのモデルから始めます。ルーティングを導入するのは、トラフィックが単純なリクエストと難しいリクエストに明確に分かれている場合や、レイテンシやコストの目標を達成できない場合です。ルーティングは評価の負担を増やします。各経路の各モデルについて、個別の品質計測が必要になるためです。
決定的なワークフローか、自律型のエージェントか
手順があらかじめ分かっているなら、特定の箇所でモデルを呼び出すワークフローとして実装します。そのほうが安価で高速で、テストもできます。エージェントを使うのは、複数のシステムをまたぐ調査やリサーチのように、途中で判明した内容によって経路が変わる場合です。範囲を限定したツール、ステップ数の予算、取り消せない操作に対する承認ゲートを与えます。
専用のベクトルデータベースか、既存データベースのベクトル検索か
PostgreSQLのpgvectorやOpenSearchのベクトル機能は、多くのコーパスに対して十分であり、トランザクション、フィルター、権限を一か所で扱えます。QdrantやMilvusのような専用エンジンを選ぶのは、インデックスが非常に大きい場合、クエリ量が多い場合、高度なフィルタリングや量子化が必要な場合です。埋め込みと検索をインターフェースの背後に置いておけば、後からの移行にも対応できます。
単一エージェントをマルチエージェントシステムにすべき時期
一つのプロンプトで共有すべきでない、異なるツール、権限、コンテキストが役割ごとに必要な場合に分割します。たとえば、読み取り権限を持つリサーチ役と、書き込み権限を持つ実行役です。組織図をなぞるためだけに分割してはいけません。エージェント間の協調はトークン消費を何倍にも増やし、障害の追跡を難しくします。

本番対応

本番運用に耐える条件

セキュリティの確保

認可は検索層とツール層で強制し、モデルに正しく振る舞うよう求めることには頼りません。入力、検索されたコンテンツ、出力は信頼できないものとして扱い、ツールは最小権限で実行し、機微なデータはプロバイダーやログに届く前にマスキングします。

スケーリング

オーケストレーションサービスはステートレスで水平にスケールし、長時間かかるエージェント処理は永続的な状態を持つキューに移します。プロバイダーのレート制限には、トークン数を考慮したスロットリング、バックオフ、フォールバックモデルで対応し、コーパスの拡大に応じてインデックスをシャーディングまたはレプリケーションします。

監視

すべてのリクエストについて、検索、ツール呼び出し、モデル、トークン、レイテンシ、コストを網羅するトレースを生成し、プロンプトのバージョンに紐づけます。品質はルーブリックに照らして継続的にサンプリングし、精度、レイテンシ、支出のドリフトに対してアラートを発報します。

デプロイ

プロンプト、モデル設定、検索設定はバージョン管理し、評価ゲートを備えたCIを通じて昇格させます。変更はフィーチャーフラグの背後で、またはカナリア対象に向けてリリースし、ロールバックは設定変更で行えます。

システム連携

ツールは既存のAPIを、型付きスキーマ、冪等性キー、明示的な権限スコープでラップし、適合する場面ではModel Context Protocolなどのオープンな規約を用います。AI層は独自のバージョン管理されたAPIを公開するため、Web、モバイル、バックオフィスの各システムは他のサービスと同じようにそれを利用できます。

使用技術

ワークロードとお客様の既存環境に合わせて選定します。

  • Python
  • TypeScript
  • PostgreSQL with pgvector
  • Qdrant
  • OpenSearch
  • Neo4j
  • LangGraph
  • Temporal
  • vLLM
  • PyTorch
  • Redis
  • Kubernetes
  • OpenTelemetry
  • Langfuse

ゼロから本番へ

エンジニアリングライフサイクル

  1. 01

    アイデア

  2. 02

    ディスカバリー

  3. 03

    システムアーキテクチャ

  4. 04

    UX・プロダクトデザイン

  5. 05

    アプリケーション開発

  6. 06

    AI・データレイヤー

  7. 07

    クラウドインフラ

  8. 08

    セキュリティ

  9. 09

    QA・パフォーマンス

  10. 10

    デプロイ

  11. 11

    オブザーバビリティ

  12. 12

    継続的な進化

FAQ

よくあるご質問

独自のモデルを学習させる必要はありますか

ほとんどの場合、必要ありません。エンタープライズのユースケースの多くは、既存のモデルに検索、十分にテストされたプロンプト、評価を組み合わせることで満たせます。学習やファインチューニングに価値が出るのは、ラベル付きデータが豊富にある限定的なタスク、厳しいレイテンシやコストの制約がある場合、あるいはプロンプトでは挙動を一貫させられない場合です。

システムが事実でないことを作り出すのをどう防ぎますか

ハルシネーションをなくすことはできません。できるのは低減と検知です。私たちは検索されたソースに回答を根拠づけ、引用を必須とし、出力形式を制約し、根拠がない場合にはシステムが回答を控えられるようにします。さらに評価セットで根拠性を計測し、残存する発生率を想定ではなく実測値として把握します。

データを自社の環境やリージョン内に留めることはできますか

選択するプロバイダーの規約とデプロイ方式によります。私たちはその制約を前提に設計します。選択肢には、適切なデータ取り扱い条件とデータ所在条件を備えたエンドポイント、リクエストが外部に出る前の機微なフィールドのマスキング、自社環境内でのオープンウェイトモデルのセルフホストがあります。

AI機能がリリース可能かどうかをどう判断しますか

品質、レイテンシ、コストについて評価セット上で合意したしきい値を満たし、敵対的テストに合格し、トレーシングとロールバックが整っていることが条件です。リリース可否は計測に基づくゲートであり、デモを見て下す判断ではありません。

モデルプロバイダーが新しいバージョンをリリースした場合はどうなりますか

トラフィックを移す前に、新しいバージョンをリグレッションスイートで検証します。モデルへのアクセスはバージョンを固定したゲートウェイの背後にあるため、切り替えは設定変更であり、カナリアリリースも切り戻しも可能です。

本番環境で動くシステムが必要な方へ

構築しようとしているものをお聞かせください。エンジニアが内容を拝見し、2営業日以内にご返信します。