小売業者がスケーリングについて語るとき、彼らは検索エンジン、リアルタイム在庫管理、チェックアウト最適化を考えます。これらは目に見える問題です。しかし、その下にはより根深い問題が潜んでいます:**属性値が単純に合わない**ことです。実際の商品カタログでは、これらの値は一貫性に欠けることが多いです。フォーマットが異なり、意味的に曖昧だったり、単純に誤っていたりします。そして、これを何百万もの商品に掛け合わせると、小さな煩わしさがシステム的な大惨事に変わります。## 問題点:小さくても個別、規模が大きくなると巨大具体例を挙げると:- **サイズ**:「XL」「Small」「12cm」「Large」「M」「S」—すべて混在- **色**:「RAL 3020」「Crimson」「Red」「Dark Red」—標準と俗語が入り混じる- **素材**:「Steel」「Carbon Steel」「Stainless」「Stainless Steel」—冗長で曖昧これらは単体では無害に見えます。しかし、300万以上のSKUを扱い、それぞれに数十の属性があると、真の問題が生じます。- フィルターの挙動が予測不能- 検索エンジンの関連性が低下- 顧客の検索がフラストレーションに- チームが手動のデータクレンジングに追われるこれが、ほぼすべての大規模Eコマースカタログの背後に潜む静かな苦痛です。## アプローチ:カオスアルゴリズムではなく、ガイドライン付きAI私は謎のブラックボックスソリューションを望みませんでした。代わりに、**ハイブリッドパイプライン**を目指しました:- 説明可能であること- 予測可能に動作すること- 実際にスケールすること- 人間がコントロールできることその結果:AIは賢く考えますが、常に透明性を保ちます。## アーキテクチャ:リアルタイムではなくオフラインジョブ属性処理はバックグラウンドで行われ、リアルタイムではありません。これは緊急避難ではなく、**戦略的な設計決定**です。リアルタイムパイプラインは魅力的に見えますが、次の問題を引き起こします:- 予測不能な遅延- 高コストのピーク負荷- 脆弱な依存関係- 運用の混乱一方、オフラインジョブは次のことを可能にします:- 大量のデータを高速処理(ライブシステムに負荷をかけずに)- 障害に対して耐性(障害が発生しても顧客に影響しない)- コスト管理(トラフィックの少ない時間帯に計算)- 一貫性(原子性の予測可能なアップデート)顧客向けシステムとデータ処理を分離することが、この規模では重要です。## プロセス:ゴミからクリーンなデータへAIがデータに触れる前に、**クリーニングステップ**が必要です:- 空白文字のトリミング- 空値の削除- 重複の除去- カテゴリーのコンテキストをクリーンな文字列に整形これにより、LLMはクリーンな入力で動作します。原則はシンプル:**ゴミを入れたら、ゴミを出す**。この規模での小さなミスが後に大きな問題を引き起こします。## LLMサービス:単なるソート以上の知性LLMは単純にアルファベット順に並べるだけではありません。コンテキストを理解します。受け取るのは:- クリーンな属性値- カテゴリのパンくずリスト- 属性のメタデータこれらのコンテキストにより、モデルは次を理解します:- 「電動工具」の「電圧」は数値である- 「衣料品」の「サイズ」は既知の進行に従う- 「色」はRAL規格に従う可能性がある- 「素材」は意味的な関係性を持つそして返すのは:- 整列された値- 改良された属性名- 決定:決定論的またはAI駆動のソートこれにより、各カテゴリを個別にコーディングせずとも、さまざまな属性タイプを扱えます。## 決定論的フォールバック:すべてにAIは不要多くの属性はAIなしでうまく動きます:- 数値範囲(5cm、12cm、20cmは自動的にソート)- 単位ベースの値- 単純な数量これらは:- 高速処理- 予測可能なソート- 低コスト- 曖昧さゼロパイプラインはこれらのケースを自動認識し、決定論的ロジックを使用します。これにより、システムの効率性が保たれ、不要なLLM呼び出しを避けられます。## 人間対機械:二重コントロール小売業者は重要な属性に対してコントロールを求めました。そのため、各カテゴリは次のようにタグ付けできます:- **LLM_SORT** — モデルが決定- **MANUAL_SORT** — 小売業者が順序を定義この仕組みは作業を分散させます:AIが大部分を処理し、人間が最終決定を下す。さらに、チームは必要に応じてモデルを無効化できるため、信頼性も向上します。## インフラ:シンプルで中央集権的、スケーラブルすべての結果はMongoDBに直接格納されます—唯一の運用ストレージ:- ソート済み属性値- 改良された属性名- カテゴリタグ- 商品ごとのソート順序これにより、変更の確認、値の上書き、カテゴリの再処理、他システムとの同期が容易になります。## 検索連携:品質が見える場所ソート後、値は2つの検索資産に流れます:- **Elasticsearch**:キーワード検索用- **Vespa**:意味的・ベクトル検索用これにより、:- フィルターが論理的な順序で表示- 商品ページに一貫した属性が表示- 検索エンジンのランキングが向上- 顧客がカテゴリを容易にナビゲートここ、検索の場で良い属性ソートが見えます。## 結果:混沌から明快へ| 属性 | 生データ | ソート済み出力 ||--------|--------------|-------------------|| サイズ | XL, Small, 12cm, Large, M, S | Small, M, Large, XL, 12cm || 色 | RAL 3020, Crimson, Red, Dark Red | Red, Dark Red, Crimson, RAL 3020( || 素材 | Steel, Carbon Steel, Stainless, Stainless Steel | Steel, Stainless Steel, Carbon Steel || 数値 | 5cm, 12cm, 2cm, 20cm | 2cm, 5cm, 12cm, 20cm |その効果は明らかです:- 300万以上のSKUで一貫したソート- 予測可能な数値シーケンス- タグ付けによる完全な小売業者コントロール- 直感的なフィルターとクリーンなページ- 検索の精度向上- 顧客のコンバージョン率向上## 重要な教訓1. **ハイブリッドがAIを凌駕**:スケーリングにはガイドラインが不可欠2. **コンテキストは金**:モデルの精度を大きく向上させる3. **オフライン処理が勝利**:スループットと信頼性に必要4. **人間のコントロールが信頼を生む**:上書き機能はバグではなく機能5. **クリーンな入力が基盤**:データクレンジングに妥協しない属性値のソートは一見単純に見えますが、何百万もの商品では本当の挑戦となります。LLMの知性と明確なルール、販売者のコントロールを組み合わせることで、見えない混沌をスケーラブルな明快さに変えるシステムが生まれます。
見えざる混沌:一貫性のない商品属性が大規模なEコマースを妨害する方法
小売業者がスケーリングについて語るとき、彼らは検索エンジン、リアルタイム在庫管理、チェックアウト最適化を考えます。これらは目に見える問題です。しかし、その下にはより根深い問題が潜んでいます:属性値が単純に合わないことです。実際の商品カタログでは、これらの値は一貫性に欠けることが多いです。フォーマットが異なり、意味的に曖昧だったり、単純に誤っていたりします。そして、これを何百万もの商品に掛け合わせると、小さな煩わしさがシステム的な大惨事に変わります。
問題点:小さくても個別、規模が大きくなると巨大
具体例を挙げると:
これらは単体では無害に見えます。しかし、300万以上のSKUを扱い、それぞれに数十の属性があると、真の問題が生じます。
これが、ほぼすべての大規模Eコマースカタログの背後に潜む静かな苦痛です。
アプローチ:カオスアルゴリズムではなく、ガイドライン付きAI
私は謎のブラックボックスソリューションを望みませんでした。代わりに、ハイブリッドパイプラインを目指しました:
その結果:AIは賢く考えますが、常に透明性を保ちます。
アーキテクチャ:リアルタイムではなくオフラインジョブ
属性処理はバックグラウンドで行われ、リアルタイムではありません。これは緊急避難ではなく、戦略的な設計決定です。
リアルタイムパイプラインは魅力的に見えますが、次の問題を引き起こします:
一方、オフラインジョブは次のことを可能にします:
顧客向けシステムとデータ処理を分離することが、この規模では重要です。
プロセス:ゴミからクリーンなデータへ
AIがデータに触れる前に、クリーニングステップが必要です:
これにより、LLMはクリーンな入力で動作します。原則はシンプル:ゴミを入れたら、ゴミを出す。この規模での小さなミスが後に大きな問題を引き起こします。
LLMサービス:単なるソート以上の知性
LLMは単純にアルファベット順に並べるだけではありません。コンテキストを理解します。
受け取るのは:
これらのコンテキストにより、モデルは次を理解します:
そして返すのは:
これにより、各カテゴリを個別にコーディングせずとも、さまざまな属性タイプを扱えます。
決定論的フォールバック:すべてにAIは不要
多くの属性はAIなしでうまく動きます:
これらは:
パイプラインはこれらのケースを自動認識し、決定論的ロジックを使用します。これにより、システムの効率性が保たれ、不要なLLM呼び出しを避けられます。
人間対機械:二重コントロール
小売業者は重要な属性に対してコントロールを求めました。そのため、各カテゴリは次のようにタグ付けできます:
この仕組みは作業を分散させます:AIが大部分を処理し、人間が最終決定を下す。さらに、チームは必要に応じてモデルを無効化できるため、信頼性も向上します。
インフラ:シンプルで中央集権的、スケーラブル
すべての結果はMongoDBに直接格納されます—唯一の運用ストレージ:
これにより、変更の確認、値の上書き、カテゴリの再処理、他システムとの同期が容易になります。
検索連携:品質が見える場所
ソート後、値は2つの検索資産に流れます:
これにより、:
ここ、検索の場で良い属性ソートが見えます。
結果:混沌から明快へ
その効果は明らかです:
重要な教訓
属性値のソートは一見単純に見えますが、何百万もの商品では本当の挑戦となります。LLMの知性と明確なルール、販売者のコントロールを組み合わせることで、見えない混沌をスケーラブルな明快さに変えるシステムが生まれます。