使用SQLModel(主SQL Component是SQL_DB.PY)存儲電子商務數據(轉到SQL_Models.py獲取詳細架構)。每當使用sql_db.py插入產品時,其相應的產品文本向量嵌入與產品ID(用於產品搜索)(用於產品搜索)會自動存儲在Qdrant vector數據庫中。 fastapi Server run.py使用sql_db.py來獲取和插入數據中,而LLM組件llm.py使用SQL_DB.PY用於查詢生成,並且CSV數據集生成用於Google FLAN-T5的微調(轉到fine-tuning.ipynb)。
Git 。Python 3 。Docker Desktop (用於HOSIDER QDRANT服務器)。下載頁面:此處cuda才能進行LLM微調。找出Pytorch支持的CUDA最新版本,請訪問:pytorch.org並安裝該版本的CUDA。請參閱CUDAS安裝指南以獲取安裝逐步指南。確保將GIT安裝在系統上。然後,打開終端並輸入:
git clone https://github.com/abhash-rai/E-Commerce-LLM-Based-Recommendation-System.git
開放項目目錄:
cd E-Commerce-LLM-Based-Recommendation-System
請注意項目目錄的full path ,因為在步驟2中需要。
安裝Docker桌面並檢查Docker安裝:
docker --version
如果您獲得Docker版本並構建文本,請輸入(確保Docker桌面打開並在系統中運行):
docker pull qdrant/qdrant
使用以下命令在Docker上運行QDRANT服務器,但用step 1中指出的項目目錄的full path替換<PathToLocalRepo>部分。示例<PathToLocalRepo>將是'd:/temp/e-commerce-llm基於s-commendation-system'。
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的虛擬環境,具有相同的python版本:
virtualenv -p python3.12 .venv
激活虛擬環境:
.venvScriptsactivate
安裝依賴項:
pip install -r requirements.txt
安裝的最終依賴性是Pytorch。在此之前,請確保您知道系統操作系統並安裝了CUDAS版本。您可以通過輸入來檢查安裝的CUDAS版本:
nvcc --version
找出Pytorch支持的CUDA的版本:pytorch.org,看看其中一個版本是否是您在系統上安裝的版本。如果沒有匹配,則需要將CUDA重新安裝到Pytorch支持的版本。
轉到同一pytorch.org站點,然後向下滾動到“安裝pytorch”部分,然後選擇相關選項以獲取系統的Pytorch安裝命令。對於我的Windows OS,帶有CUDA 12.4命令(根據您的系統可能有所不同):
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
最後,安裝:
pip install transformers[torch]
您可以開始嘗試合成數據,但建議進行嘗試。要填充命令下方運行的合成數據,該命令將自動創建SQLITE數據庫和Vectore Collection(將花一些時間):
python populate_synthetic_db.py
SQLITE數據庫將在E-Commerce-LLM-Based-Recommendation-System/db/sqlite_storage/main.db E-Commerce-LLM-Based-Recommendation-System/db/qdrant_storage /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/Google/Flan-T5-Xl”或“ 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.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操作,以製造完整的fleded服務器。