このリポジトリには、Nvidia開発者ブログ用に書かれた記事「 Nvidia Merlinによるリアルタイム推奨システムの機能ストレージ」という記事を補足する資産が保持されています。
推奨システムアーキテクチャの例を提供し、生産使用に関するクラウド展開の指示を提供します。それぞれの例は、推奨システムを作成するための多くのビルディングブロックを提供するRedisとNvidia Merlinフレームワークに依存しています。
このリポジトリには3つの例があります
大規模なスケールは、大規模な(> 1 GPU)トレーニングまたは推論を要求するユースケースの2番目のアーキテクチャを拡張します。
各例は、DockerとDocker-Composeを使用してNVIDIA GPU対応システムでローカルに実行するように設計されています。 NVIDIA GPU(理想的にはAWS Pytorch Ami)を使用して、クラウドインスタンスで以下をすべて実行することをお勧めします
ただし、AWSインスタンスで例を実行するために必要なインフラストラクチャを展開できる一連のTerraformスクリプトとAnsibleノートブックも提供しています。

「オフライン」推奨システムは、バッチコンピューティングを使用して大量のデータを処理し、後で検索するために保存します。上の図は、2塔のアプローチを使用して推奨事項を生成し、後で取得するためにRedisデータベース内に保存するようなシステムの例を示しています。
オフラインノートブックは、このタイプの推奨システムを構築する方法と、次のセクションでオンライン推奨システムを実行するために必要なモデルをトレーニングおよびエクスポートする方法を提供します。
ノートブックを実行するには、以下を実行します
$ cd offline-batch-recsys/
$ docker compose up # -d to daemonize次に、ブラウザでJupyterによって生成されたリンクを開きます。

「オンライン」推奨システムは、オンデマンドで推奨事項を生成します。バッチ指向システムとは対照的に、オンラインシステムは潜在的に制約されています。これらのシステムを設計するとき、推奨事項を作成する時間が最も重要な要素である可能性があります。一般的に約100〜300ミリ秒の上限があり、システムの各部分には、効率的であるだけでなく、何百万人ものユーザーやアイテムがスケーラブルなコンポーネントが必要です。オンライン推奨システムを作成するには、バッチシステムよりも大幅に多くの制約がありますが、情報(機能)をリアルタイムで更新できるため、結果はより良い推奨事項になることがよくあります。上の図は、このアーキテクチャの例を示しています。
バッチの推奨事項の前の例では、このノートブックのモデルとデータセットを生成しますが、次のようにAWS CLIを使用して事前に訓練された資産をダウンロードすることもできます。
aws s3 cp s3://redisventures/merlin/merlin-recsys-data.zip ./data
ノートブックを実行するには、以下を実行します
$ cd online-multi-stage-recsys/
$ docker compose up # -d to daemonizeこのセクションには、2つのノートブックが含まれています。1つは機能ストア(Redis)を展開し、ベクトルインデックス(Redis)を作成し、もう1つはPipeline(Triton)全体を実行するためのアンサンブルモデルを定義および実行するためです。
注:2回目の前に最初のノートを実行するか、モデルが実行されないようにしてください。

推奨システムでDLRMのようなモデルをトレーニングするときに非常に大きなデータセットを処理する方法を示す最後のノートブック。大企業には多くの場合、何百万人ものユーザーとアイテムがあります。モデルの埋め込みテーブル全体は、単一のGPUに適合しない場合があります。このため、Nvidiaはgugectrフレームワークを作成しました。
Hugectrは、Nvidia Merlinフレームワークの一部であり、分散トレーニングと推奨モデルの提供のための施設を追加します。ここで詳述されているノートブックは、hugectrの展開とサービングに焦点を当てており、例に使用できるDLRMの事前に訓練されたバージョンを提供します。 Hugectrを使用した分散トレーニングの詳細については、こちらをご覧ください。
ローカルノートブックを実行するには、以下を実行します
$ cd large-scale-recsys/
$ docker compose up # -d to daemonizeこのフォルダーには、展開するTerraformスクリプトとAnsible Playbooksが含まれています
すべてAmazon Webサービス。

このリポジトリに示されている例はすべて、最小限の変更でテラフォーミングされたインフラストラクチャで実行できます。これは、このインフラストラクチャを展開して、ここで詳述されている推奨システムパイプラインを試すための簡単な方法です。詳細については、クラウドデプロイ内のreadmeを参照してください。
このチュートリアルのモデルは、実行してAWS CLIで取得できます
aws s3 cp s3://redisventures/merlin/merlin-recsys-data.zip ./data
次の再投稿は、記事やノートブックで使用されているコード/アセットにリンクしています
ここのノートブックは、ような多くの既存のノートブックの作品に基づいています
読むことを強くお勧めします