Dados de comércio eletrônico armazenos (vá para sql_models.py para esquema detalhado) em um banco de dados SQLite usando SQLModel (o componente SQL principal é sql_db.py). Sempre que um produto é inserido no banco de dados usando sql_db.py, seu vetor de texto de produto correspondente correspondente incorporando junto com o ID do produto (para pesquisa de produto) é armazenado automaticamente no banco de dados de vetor de QDrant. O FASTAPI Server Run.Py utiliza SQL_DB.PY para buscar e inserir dados no banco de dados e o componente LLM LLM.Py utiliza SQL_DB.PY para geração de consulta e CSV DataSet Generation para ajuste fino do Google FLAN-T5 (vá para fino.IPYNB).
Git instalado no seu sistema.Python 3 instalado no seu sistema.Docker Desktop (para o servidor QDrant de mangueira) instalado no seu sistema. Página de download: aquicuda instalado em seu sistema para o ajuste fino LLM. Descubra qual é a versão mais recente do CUDA que o Pytorch suporta em: pytorch.org e instale essa versão do CUDA. Consulte o guia de instalação do CUDAS para guia passo a passo para instalação.Verifique se o Git está instalado no seu sistema. Em seguida, abra o terminal e digite:
git clone https://github.com/abhash-rai/E-Commerce-LLM-Based-Recommendation-System.git
Diretório de projeto aberto:
cd E-Commerce-LLM-Based-Recommendation-System
Mantenha a nota do full path para o diretório do projeto, pois será necessário na etapa 2.
Instale o Docker Desktop e verifique a instalação do Docker:
docker --version
Se você obtiver a versão do Docker e criar texto, digite (verifique se o Docker Desktop está aberto e em execução no seu sistema):
docker pull qdrant/qdrant
Execute o servidor QDRANT no Docker com o comando abaixo, mas substitua <PathToLocalRepo> porção pelo full path do diretório do projeto observado na step 1 . Exemplo <PathToLocalRepo> seria algo como 'd:/temp/e-commerce-llm baseado no sistema de recomendação.
docker run -d --name qdrant -p 6333:6333 -v <PathToLocalRepo>/db/qdrant_storage:/qdrant/storage qdrant/qdrant
Instale a biblioteca virtualenv usando o PIP:
pip install virtualenv
Eu achei que o Python3.12 funciona bem junto com as dependências necessárias, portanto, crie um ambiente virtual chamado .venv com a mesma versão Python:
virtualenv -p python3.12 .venv
Ative o ambiente virtual:
.venvScriptsactivate
Instale dependências:
pip install -r requirements.txt
A dependência final para instalar é Pytorch. Antes disso, certifique -se de conhecer o sistema operacional do seu sistema e instalar a versão CUDAS. Você pode verificar a versão CUDAS instalada digitando:
nvcc --version
Descubra quais são as versões do CUDA que o Pytorch suporta em: pytorch.org e veja se uma dessas versão é a que você instalou no seu sistema. Se não houver correspondência, você precisará reinstalar o CUDA em uma versão que o Pytorch suporta.
Vá para o mesmo site pytorch.org e role para baixo até a seção 'Instale Pytorch' e selecione opções relevantes para obter o comando de instalação do Pytorch para o seu sistema. Para o meu sistema operacional Windows com o comando CUDA 12.4, foi (o seu poderia ser diferente de acordo com o seu sistema):
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
Finalmente, instale:
pip install transformers[torch]
Você pode começar a experimentar dados sintéticos que não são necessários, mas recomendados para experimentar. Para preencher os dados sintéticos executados abaixo do comando, que criará o banco de dados SQLite e a coleção de vetores para produtos automaticamente (levará alguns momentos):
python populate_synthetic_db.py
O banco de dados SQLITE estará no E-Commerce-LLM-Based-Recommendation-System/db/sqlite_storage/main.db e QDRANT armazenarão incorporações vetoriais como coleções em E-Commerce-LLM-Based-Recommendation-System/db/qdrant_storage .
Abra o Fine-tuning.ipynb no código VS e selecione o ambiente virtual gerado anteriormente .venv como o kernel. Em seguida, execute cada célula do notebook que, em última análise, gerará o conjunto de dados CSV para ajuste fino, sintonize o modelo Google FLAN-T5 LLM e salve o modelo Fine Tuned localmente para gerar recomendações.
O nome LLM, juntamente com informações e caminhos semelhantes, são definidos em constantes.py. Você pode optar por manter llm_name em qualquer um de: "Google/Flan-T5-Small", "Google/Flan-T5-Base", "Google/Flan-T5-Large", "Google/Flan-T5-XL" ou "Google/Flan-T5-XXL". Para informações do modelo, acesse: https://huggingface.co/docs/transformers/en/model_doc/flan-t5
run.py já tem funcionalidade construída para executar o FASTAPI Server com o Uvicorn. Então, execute o comando:
python run.py
Aguarde um pouco até que o servidor esteja totalmente carregado e, em seguida, experimente as APIs, vá para: http://127.0.0.1:8000/docs. Existem 4 APIs para pesquisar produtos, recomendar o produto a um cliente, armazenar feedback de recomendação e monitorar o desempenho da recomendação. Explore as APIs junto com o banco de dados: E-Commerce-LLM-Based-Recommendation-System/db/sqlite_storage/main.db para identificação de entidades e como o APIs Gerencia o banco de dados.
Você pode modificar o run.py e sql_db.py para adicionar pontos de extremidade para executar operações CRUD em todos os modelos detalhados em sql_models.py para fazer um servidor completo.