Modelo Tiny Llama com Fine Tuning (LORA)
Este repositório contém um modelo de linguagem Tiny Llama 1 treinado com Fine Tuning pelo uso do LORA. Esse modelo está especializado em responder perguntas relacionadas a legislação da Universidade Federal do Amazonas.
O repositório contém os dados do modelo, uma pasta Relatórios
, em que se encontram os relatórios de pré processamento, desempenho do modelo e de eficácia do sistema. Além disso, a pasta Notebooks
, é onde temos todos os notebooks utilizados para realizar o fine tuning desse modelo, desde o pré processamento até o uso do RAG.
Pré Processamento
No pré processamento, foi utilizado o OCR para extrair as informações dos PDFs das legislações e armazenar elas em um arquivo de texto. Com os textos extraídos, geramos uma base de dados sintética de instruções, fazendo requisições para a API do modelo Llama-3-70B-Instruct
e usando um prompt em inglês.
LORA
O LORA está sendo utilizado da seguinte forma:
Configuração do LORA:
lora_r, lora_alpha, lora_dropout: Esses parâmetros controlam o tamanho e a complexidade das matrizes de baixo rank adicionadas a cada camada. peft_config: Essa configuração define os parâmetros do LORA para o modelo.
Carregamento do modelo base:
O modelo pré-treinado TinyLlama-1.1B-Chat-v1.0 é carregado com a configuração de quantização para economizar memória.
Criação do modelo fine-tuned:
O modelo base é combinado com a configuração LORA para criar um novo modelo que será treinado nos dados específicos.
Treinamento:
O modelo fine-tuned é treinado nos dados de treinamento, ajustando os parâmetros do LORA para a tarefa específica de responder perguntas sobre legislação.
RAG
O rag pode ser utilizado rodando o notebook 'rag.ipynb' presente na pasta Notebooks
. Todos os detalhes da implementação são comentados no relatório correspondente. Porém o notebook segue a seguinte estrutura:
Segmentação:
Carregamento da base de dados e quebra do conteúdo em chunks.
Indexação:
Salvar os embeddings e o conteúdo usando FAISS
Recuperação:
Carregar o Modelo fine-tuned, o tokenizador e as configs. Preparar o pipeline para interação com a doc_chain. Criar retriever para recuperar os dados da base. Criar retriever chain para conseguirmos "buscar" na base de dados.
Geração:
Testes de geração no final do notebook.
Avaliação
Para avaliar o modelo, fizemos no notebook do Lora um dataframe que agrupa os resultados previstos pelo modelo e os resultados reais (pelos dados separados para teste), permitindo uma análise comparativa acerca do desempenho do modelo.
- Downloads last month
- 0
Model tree for bonfimr/PLN_TP3_TinyLoraFineTuned
Base model
TinyLlama/TinyLlama-1.1B-Chat-v1.0