Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Recomenda-aí Livros - Chatbot Recomendador

recomenda-ai-livros

Este repositório contém o relatório e o código-fonte da aplicação do"Recomenda-aí Livros", um chatbot focado em recomendações literárias utilizando inteligência artificial generativa.


1. Prototipação do Projeto

O projeto foi construído seguindo um fluxo de trabalho estruturado: Prototipação ➔ Desenvolvimento Local ➔ Versionamento ➔ Lançamento.

Escolha do Workflow (API do Groq)

Optei por utilizar a API do Groq para a inferência do modelo, para trazer as seguintes vantagens:

  • Acesso a modelos robustos sem a necessidade de hardware caro (GPUs locais).

  • Processamento integralmente na nuvem.

  • Monitoramento simplificado de consumo dos tokens gerados.

Prompt Engineering.

Nota sobre limitações: O uso da API possui algumas restrições comuns em requisições (RPM/RPD) e quantidade de tokens (TPM), que foram monitoradas durante o desenvolvimento e foram estabelecidas pela própria plataforma do Groq.


2. Arquitetura do Modelo

A aplicação utiliza o Meta LLaMA 3.1 8B, um modelo grande de linguagem (LLM) ajustado por instruções e focado na otimização de diálogos multilíngues (text-in/text-out).

Diferenças da Arquitetura Clássica

O modelo utiliza uma arquitetura similar aos Transformers clássicos, mas com três modificações cruciais que o tornam mais eficiente:

  1. Decoder Only: Diferente da arquitetura Encoder-Decoder tradicional, utiliza apenas blocos de decodificação para um processo de geração autoregressiva (gerando e retroalimentando um token por vez).

  2. Grouped Query Attention (GQA): Em substituição ao Multi-Head Attention, o GQA compartilha consultas entre as cabeças de atenção, otimizando muito o custo computacional, usando menos memória e acelerando a inferência.

  3. Rotary Positional Embeddings (RoPE): Substitui o Positional Encoding tradicional para um melhor mapeamento da relação de distância entre os tokens.

O Processo de Geração do Texto

O texto é construído iterativamente passando pelas seguintes etapas em 32 camadas do decoder:

  • Entrada no Decoder ➔ Blocos de Atenção (GQA, Masked Attention) ➔ Adição de Resíduos e Normalização ➔ MLPs (Redes Feedforward) ➔ Saída Linear com função Softmax para calcular a probabilidade da próxima palavra. O processo se repete até o modelo gerar o token final (End of Sentence - EOS).

3. Desenvolvimento da Aplicação (Streamlit)

A interface e a integração do modelo foram construídas utilizando a biblioteca Streamlit em Python. Todo o comportamento especializado do chatbot foi alcançado por meio de manipulação de parâmetros e configuração de prompt dentro dessa aplicação.

Especialização do Modelo

  • System Prompt: Foi instruído para o modelo generalista uma persona: atuar como um rigoroso especialista em livros. Ele foi configurado para redirecionar perguntas fora do tema, sempre responder em PT-BR e estruturar a saída num formato padronizado: Título + Autor + Justificativa.
  • Ajuste de Hiperparâmetros:
    • Quantidade Máxima de Tokens: Foi limitada inicialmente em 200 para garantir a objetividade da resposta e minimizar os custos de consumo da API.
    • Temperatura: Ajustada inicialmente em 0.7 para encontrar o equilíbrio perfeito entre coerência (respostas precisas) e criatividade (recomendações originais).

4. Deploy

A publicação da aplicação foi realizada no Streamlit Community Cloud, garantindo acesso fácil para o usuário final.

Segurança e Variáveis de Ambiente

  • A chave da API do Groq e outras possíveis credenciais foram mantidas estritamente confidenciais.
  • No ambiente de desenvolvimento local: Utilizamos a biblioteca dotenv e protegemos a chave com um arquivo .gitignore, garantindo que ela não fosse exposta no versionamento de código (GitHub).
  • Em produção: A configuração foi replicada diretamente no painel de Deployment do Streamlit, na área segura designada para secrets.

Acesse a aplicação online: recomenda-ai-livros.streamlit.app


Licença

Este projeto está licenciado sob a Licença MIT. Você tem permissão para usar, copiar, modificar e distribuir o software, desde que mantenha os avisos de direitos autorais originais.

About

Chatbot especialista para a recomendação de livros

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages