sqlmodel(メインSQLコンポーネントはsql_db.py)を使用したSQLiteデータベースにeコマースデータ(詳細なスキーマのためにsql_models.pyに移動)を保存します。 SQL_DB.PYを使用して製品がデータベースに挿入されるたびに、対応する製品テキストベクトル埋め込みと製品ID(製品検索用)は、QDRANTベクターデータベースに自動的に保存されます。 Fastapi Server run.pyは、データベースとLLMコンポーネントにデータを取得および挿入するためにSQL_DB.PYを使用し、LLMM.PYはクエリ生成とCSVデータセット生成にSQL_DB.PYを使用してGoogle FLAN-T5を微調整します(微調整に移動します)。
Gitをインストールする必要があります。Python 3をインストールする必要があります。Docker Desktop (Hosing QDrant Server用)をインストールする必要があります。ダウンロードページ:こちらcudaをインストールする必要があります。 PytorchがサポートするCUDAの最新バージョンであるCudaを調べて、そのバージョンのCudaをインストールしてください。ステップバイステップガイドについては、CUDASインストールガイドを参照してください。システムにGitがインストールされていることを確認してください。次に、端子を開いて入力します。
git clone https://github.com/abhash-rai/E-Commerce-LLM-Based-Recommendation-System.git
オープンプロジェクトディレクトリ:
cd E-Commerce-LLM-Based-Recommendation-System
ステップ2では必要になるため、プロジェクトディレクトリへのfull pathをメモしてください。
Dockerデスクトップをインストールし、Dockerのインストールを確認します。
docker --version
Dockerバージョンを取得してテキストを作成する場合は、入力します(Dockerデスクトップが開いていてシステムで実行されていることを確認してください):
docker pull qdrant/qdrant
以下のコマンドでdockerでqdrantサーバーを実行しますが、 step 1に記載されているプロジェクトディレクトリのfull pathに<PathToLocalRepo>部分を置き換えます。例<PathToLocalRepo> 、「D:/emp/e-commerce-llmベース - 推奨システム」のようなものです。
docker run -d --name qdrant -p 6333:6333 -v <PathToLocalRepo>/db/qdrant_storage:/qdrant/storage qdrant/qdrant
PIPを使用してvirtualenvライブラリをインストールします。
pip install virtualenv
Python3.12は、必要な依存関係とともにうまく機能することがわかりました.venv
virtualenv -p python3.12 .venv
仮想環境を有効にします:
.venvScriptsactivate
依存関係をインストールします:
pip install -r requirements.txt
インストールする最終的な依存関係はPytorchです。その前に、システムOSを知っていることを確認し、CUDASバージョンをインストールしてください。入力して、インストールされているcudasバージョンを確認できます。
nvcc --version
PytorchがサポートするCUDAのバージョンであるPytorch.orgを調べ、それらのバージョンの1つがシステムにインストールされたバージョンであるかどうかを確認します。一致がない場合は、PytorchがサポートするバージョンにCUDAを再インストールする必要があります。
同じpytorch.orgサイトに移動し、下にスクロールして「pytorch」セクションにスクロールし、関連するオプションを選択して、システムのpytorchインストールコマンドを取得します。 Cuda 12.4コマンドを使用したWindows OSの場合(システムによって異なる場合があります):
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
最後に、インストール:
pip install transformers[torch]
必要ではありませんが、試してみることをお勧めする合成データの実験を開始できます。 Synthetic Dataがコマンドの下に実行される合成データを設定するには、製品用のSQLiteデータベースとVectoreコレクションを自動的に作成します(少し時間がかかります)。
python populate_synthetic_db.py
SQLiteデータベースはE-Commerce-LLM-Based-Recommendation-System/db/sqlite_storage/main.dbで行われ、qdrantはベクトル埋め込みをE-Commerce-LLM-Based-Recommendation-System/db/qdrant_storageのコレクションとして保存します。
VSコードでfine-tuning.ipynbを開き、以前に生成された仮想環境.venvをカーネルとして選択します。次に、ノートブックの各セルを実行し、最終的に微調整のためにCSVデータセットを生成し、 Google FLAN-T5 LLMモデルを調整し、推奨を生成するために微調整モデルをローカルに保存します。
LLM名と同様の情報とパスは、定数で設定されています。 LLM_NAMEを「Google/Flan-T5-Small」、「Google/Flan-T5-Base」、「Google/Flan-T5-Large」、「Google/Flan-T5-XL」、または「Google/Flan-T5-XXL」のいずれかに保持することを選択できます。モデル情報については、https://huggingface.co/docs/transformers/en/model_doc/flan-t5にアクセスしてください
run.pyは、uvicornを使用してFastapiサーバーを実行するための機能を既に構築しています。したがって、コマンドを実行します:
python run.py
サーバーが完全にロードされるまでしばらく待ってから、APIを試してみてください:http://127.0.0.1:8000/docs。製品の検索には4つのAPIがあり、顧客に製品を推奨し、推奨フィードバックを保存し、推奨のパフォーマンスを監視しています。データベースとともにAPIを探索します: E-Commerce-LLM-Based-Recommendation-System/db/sqlite_storage/main.dbエンティティのIDおよびAPIの管理方法。
run.pyおよびsql_db.pyを変更してエンドポイントを追加して、sql_models.pyで詳述されているすべてのモデルでCRUD操作を実行して、本格的なサーバーを作成します。