eコマースのスケールアップについて語るとき、人々は分散検索、リアルタイム在庫管理、レコメンデーションエンジン、チェックアウトの最適化といった、大規模なエンジニアリング課題に焦点を当てます。しかし、その根底には、ほぼすべての小売業者が抱える、より目立たず根深い問題が潜んでいます。それは、属性値です。 属性は商品検索の基盤であり、フィルター、比較、検索ランキング、そしてレコメンデーションロジックの基盤となります。しかし、実際のカタログでは、属性値がクリーンであることは稀です。一貫性がなかったり、重複していたり、形式が間違っていたり、意味が曖昧だったりするのです。 ような単純なものを例に挙げてみましょう。次のような表示になるかもしれません。 Size の コード ["XL", "S", "12cm", "L", "M", "S"] または : 色 コード ["RAL 3020", "クリムゾン", "レッド", "ダークレッド"] これらの不一致は個別に見ると無害に見えます。しかし、数十もの属性を持つ300万以上のSKUにまたがると、問題はシステム全体に広がります。フィルターは予測不能な動作をし、検索エンジンは関連性を失い、マーチャンダイザーは手作業によるクリーンアップに追われ、商品検索は遅くなり、顧客はよりイライラすることになります。 これは、Zoro のフルスタック ソフトウェア エンジニアとして私が直面した課題であり、見落としやすい問題でしたが、すべての製品ページに影響を及ぼしました。 私のアプローチ:ハイブリッドAIと決定論の融合 私は、単に物事を分類するだけの謎めいたブラックボックスAIは求めていませんでした。そのようなシステムは、信頼、デバッグ、スケールが困難です。その代わりに、次のようなパイプラインを目指しました。 説明可能な 予測可能 スケーラブル 人間が制御できる その結果、LLMの文脈推論と明確なルール、そしてマーチャンダイザーによる制御を組み合わせたハイブリッドAIパイプラインが誕生しました。必要に応じてスマートに動作しながらも、常に予測可能性を維持します。これはガードレールを備えたAIであり、制御不能なAIではありません。 バックグラウンドジョブ: スループットを重視した設計 すべての属性処理はリアルタイムではなく、オフラインのバックグラウンドジョブで実行されます。これは妥協ではなく、戦略的なアーキテクチャ上の選択でした。 リアルタイム パイプラインは魅力的に聞こえますが、e コマースの規模では次の問題が発生します。 予測不可能な遅延 脆弱な依存関係 高価なコンピューティングの急増 運用上の脆弱性 一方、オフラインの仕事では次のことが得られました。 高スループット: ライブシステムに影響を与えることなく、膨大なバッチを処理 回復力: 障害が顧客のトラフィックに影響を与えることはありません コスト管理: コンピューティングをトラフィックの少ない時間帯にスケジュールできる 分離: LLM のレイテンシは製品ページに影響を与えません 一貫性: 更新はアトミックかつ予測可能 何百万もの SKU を扱う場合、顧客向けシステムをデータ処理パイプラインから分離しておくことが不可欠です。 クリーニングと正規化 データにAIを適用する前に、ノイズと混乱を取り除くための明確な前処理ステップを実行しました。このステップは単純に聞こえるかもしれませんが、LLMの推論能力を大幅に向上させました。 洗浄パイプラインには以下が含まれます。 空白のトリミング 空の値を削除する 値の重複排除 カテゴリのパンくずリストをコンテキスト文字列にフラット化する これにより、LLMはクリーンで明確な入力を確実に受け取ることができ、これは一貫した結果を得るための鍵となります。ガベージイン、ガベージアウト。この規模では、小さなエラーでさえも後々大きな問題につながる可能性があります。 コンテキスト付きLLMサービス LLMは単に値をアルファベット順に並べるだけではありません。値について推論するのです。 受けたサービス: クリーンアップされた属性値 カテゴリパンくずリスト 属性メタデータ このコンテキストにより、モデルは次のことを理解できます。 の「電圧」は数値です 電動工具 の「サイズ」は既知の推移に従っている 衣服 の「色」はRAL規格に従うかもしれない 塗料 の「マテリアル」には意味的な関係がある ハードウェア モデルは次を返しました: 順序付けられた値 洗練された属性名 決定:決定論的順序付けか文脈的順序付けか これにより、パイプラインは、カテゴリごとにルールをハードコーディングすることなく、さまざまな属性タイプを処理できます。 決定論的なフォールバック すべての属性に AI が必要なわけではありません。 実際、多くの属性は決定論的ロジックによってより適切に処理されます。 数値の範囲、単位ベースの値、単純なセットでは、次のような利点がよくあります。 処理速度が速い 予測可能な順序 低コスト 曖昧さゼロ パイプラインはこれらのケースを自動的に検出し、決定論的なロジックを適用しました。これによりシステムの効率が維持され、不要なLLM呼び出しが回避されました。 手動タグ付けとLLMタグ付け マーチャンダイザーは、特にビジネスに敏感な属性については、依然として制御を必要としていました。 したがって、各カテゴリは次のようにタグ付けできます。 LLM_SORT — モデルに決定させる MANUAL_SORT — マーチャンダイザーが順序を定義する このデュアルタグシステムにより、AIがほとんどの作業を行い、最終的な決定は人間が下すことになります。また、マーチャンダイザーは必要に応じてモデルをオーバーライドできるため、パイプラインを中断することなく、信頼関係を築くことができました。 持続性と制御 すべての結果は製品の MongoDB データベースに直接保存され、アーキテクチャはシンプルかつ集中化されています。 MongoDB は、次のものの単一の運用ストアになりました。 ソートされた属性値 洗練された属性名 カテゴリレベルの並べ替えタグ 商品レベルのsortOrderフィールド これにより、変更の確認、値の上書き、カテゴリの再処理、他のシステムとの同期が容易になりました。 検索統合 ソートされると、値は次の場所に流れます。 キーワード駆動型検索のためのElasticsearch セマンティックおよびベクトルベースの検索のためのVespa これにより、次のことが保証されます。 フィルターは論理的な順序で表示される 製品ページには一貫した属性が表示されています 検索エンジンは商品をより正確にランク付けした 顧客はカテゴリーをより簡単に閲覧できる 検索は、属性の並べ替えが最も目立つ場所であり、一貫性が最も重要になる場所です。 アーキテクチャの概要 これを数百万のSKUで実現するために、バックグラウンドジョブ、AI推論、検索統合を中心としたモジュール型パイプラインを設計しました。以下のアーキテクチャ図は、そのフロー全体を示しています。 製品データは製品情報システムから入力されます 属性抽出ジョブは属性値とカテゴリコンテキストを取得します これらはAI分類サービスに渡されます 更新された製品ドキュメントは製品MongoDBに書き込まれます アウトバウンド同期ジョブは、製品情報システムをソート順で更新します。 ElasticsearchとVespa Sync Jobsは、ソートされたデータをそれぞれの検索システムにプッシュします。 APIサービスはElasticsearchとVespaをクライアントアプリケーションに接続します このフローにより、AI によって分類されたか手動で設定されたかに関係なく、すべての属性値が検索、マーチャンダイジング、顧客エクスペリエンスに反映されます。 ソリューションの実践 乱雑な値がどのように変換されたかは次のとおりです。 属性 生の値 順序付けられた出力 サイズ XL、S、12cm、L、M、S S、M、L、XL、12cm 色 RAL 3020、クリムゾン、レッド、ダークレッド 赤、ダークレッド、クリムゾン、レッド(RAL 3020) 材料 鋼、炭素鋼、ステンレス、ステンレス鋼 鋼、ステンレス鋼、炭素鋼 数値 5cm、12cm、2cm、20cm 2cm、5cm、12cm、20cm これらの例は、パイプラインがコンテキスト推論と明確なルールを組み合わせて、明確で理解しやすいシーケンスを作成する方法を示しています。 リアルタイム処理ではなくオフラインジョブを使用する理由 リアルタイム処理により以下が導入されます。 予測不可能な遅延 コンピューティングコストの上昇 脆弱な依存関係 運用の複雑さ オフラインジョブによって、次のことが得られました。 バッチ効率 非同期LLM呼び出し 再試行ロジックとエラーキュー 人間によるレビューウィンドウ 予測可能なコンピューティング費用 トレードオフとしては、データの取り込みと表示の間に若干の遅延が発生しますが、メリットとしては、顧客がより重視する大規模な一貫性が実現されます。 インパクト 結果は顕著でした: 300 万以上の SKU にわたって一貫した属性順序 決定論的なフォールバックによる予測可能な数値ソート 手動タグ付けによるマーチャンダイザーコントロール よりすっきりした商品ページとより直感的なフィルター 検索関連性の向上 顧客の信頼とコンバージョンの向上 これは単なる技術的な勝利ではなく、ユーザー エクスペリエンスと収益の面でも勝利でした。 学んだ教訓 ハイブリッドパイプラインは、大規模な環境では純粋なAIよりも優れたパフォーマンスを発揮します。ガードレールが重要です。 コンテキストはLLMの精度を劇的に向上させる オフラインジョブはスループットと回復力に不可欠 人間のオーバーライドメカニズムは信頼と採用を構築する クリーンな入力は信頼できるAI出力の基盤となる 最終的な考え 属性値の並べ替えは簡単そうに聞こえますが、何百万もの製品に対して実行する必要がある場合、非常に困難になります。 LLM インテリジェンスを明確なルールおよびマーチャンダイザーの制御と組み合わせることで、複雑で隠れた問題をクリーンかつスケーラブルなシステムに変換しました。 これは、最も大きな成果のいくつかは、見落としやすいけれどもあらゆる製品ページに表示される退屈な問題を解決することから得られるということを思い出させてくれます。