AIシステムのアーキテクチャパターン
バッチ推論とリアルタイム推論、ラムダアーキテクチャ、特徴量ストア、モデルサービング層について学習します。
「AIシステムのアーキテクチャパターン」はCoddyKit上の無料Learn AI with Pythonレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLearn AI with Python学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Learn AI with Pythonコースには全4レッスンが含まれています。
モデルの先へ
本番環境のAIシステムは、モデルファイルだけで構成されるものではありません。データパイプライン、特徴量ストア、サービング基盤、監視などが含まれます。アーキテクチャパターンは、これらの要素を信頼性の高い形で組み立てるための、実績のある設計図です。
バッチ処理とリアルタイム処理の要件
AIシステムでは、多くの場合、次の両方が必要です。
- 履歴データに対して正確で包括的な結果を得るためのバッチ処理
- 新しいイベントに対して鮮度の高い、低レイテンシーな結果を得るためのリアルタイム処理
この2つを両立させることは、繰り返し登場する設計上の課題です。
Lambdaアーキテクチャ
Lambdaアーキテクチャでは、並列に動作する2つのレイヤーでこの問題に対応します。バッチレイヤーはすべてのデータを対象に正確なビューを再計算し、スピードレイヤーは新しいデータを低レイテンシーで処理します。サービングレイヤーがクエリに対して両方の結果を統合します。
バッチレイヤー
バッチレイヤーは、完全なデータセットを定期的に再処理して、信頼できる正確な結果を生成します。たとえば、夜間に特徴量を再計算します。正確である一方、レイテンシーが高いため、直近数秒間のイベントを反映することはできません。
スピードレイヤー
スピードレイヤーはストリーミングデータをほぼリアルタイムで処理し、前回のバッチ実行以降に生じた差分を埋めます。鮮度を優先するために一部の正確性を犠牲にしており、その結果は次回のバッチ実行によって最終的に置き換えられます。
Feature Storeとは
Feature Storeは、ML特徴量を一元管理するシステムです。トレーニングとサービングで同じ特徴量定義を使う必要があるという重要な問題を解決します。定義が異なると、本番環境でモデルがトレーニング時とは異なる入力を受け取ることになります(トレーニングとサービングのスキュー)。
オフラインストア
オフラインストアは、大量の過去の特徴量値を保持します。通常はデータレイクやデータウェアハウス内のparquetファイルとして保存されます。スループットがレイテンシーより重視されるトレーニングやバッチスコアリングで利用されます。
# Offline: s3://features/user_features.parquet
# Used to build training datasetsオンラインストア
オンラインストアは、最新の特徴量値をRedisなどの低レイテンシーなデータベースに保持します。サービング時には、モデルがここからミリ秒単位で特徴量を取得します。オフラインストアと同じ定義が使われます。
# Online: Redis key user:123 -> {avg_purchase: 42.0, ...}
# Fetched at inference timeオフラインとオンラインの一貫性
Feature Storeは、トレーニング用に計算された特徴量(オフライン)が、サービングで読み取られる値(オンライン)と一致することを保証します。この一貫性により、本番環境で気づきにくいバグの大きな原因が取り除かれ、これがFeature Storeの中核的な価値となります。
シャドーモード
本番環境で新しいモデルを信頼して使う前に、シャドーモードで実行します。実際のトラフィックを受け取って予測を行いますが、その予測はユーザーに提供せず、ログに記録します。ユーザーにリスクを与えることなく、現在のモデルと比較できます。
シャドーからの昇格
シャドーモードによって、新しいモデルが実際のトラフィックに対して正確かつ安定していることを確認できたら、多くの場合はカナリアリリースによって昇格させます。シャドーモードとカナリアリリースを組み合わせることで、トレーニング済みモデルを本番トラフィック全体に移行する安全で段階的な道筋が得られます。
クイックチェック
アーキテクチャの知識を確認しましょう。
まとめ
AIシステムのアーキテクチャパターンについて学びました。
- Lambdaアーキテクチャ:バッチレイヤー(正確)とスピードレイヤー(鮮度)を組み合わせます
- Feature Store:トレーニングにはオフラインのparquet、サービングにはオンラインのRedisを使い、一貫した定義を保ちます
- シャドーモード:昇格前に実際のトラフィックで新しいモデルを検証します
よくある質問
「AIシステムのアーキテクチャパターン」レッスンは無料ですか?
はい。「AIシステムのアーキテクチャパターン」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Learn AI with Pythonコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Learn AI with Pythonコースには全4レッスンが含まれています。
「AIシステムのアーキテクチャパターン」で何を学びますか?
バッチ推論とリアルタイム推論、ラムダアーキテクチャ、特徴量ストア、モデルサービング層について学習します。 ブラウザで直接実行するハンズオンコードでLearn AI with Pythonを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Learn AI with Pythonを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのLearn AI with Pythonは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「AIシステムのアーキテクチャパターン」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このLearn AI with Pythonレッスンでコードを書いて実行できますか?
はい。すべてのLearn AI with Pythonレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- AIシステムのアーキテクチャパターン
- AirflowによるスケーラブルなMLパイプライン
- 特徴量ストア:FeastとTecton
- AIシステムの可観測性とモニタリング