O que preciso saber sobre LLMs para fazer um "tuning" eficiente?
Olá, pessoal!
Após brincar com os principais serviços, peguei esse final de semana pra estudar pra valer sobre o tema. Vi sobre o que de fato são os modelos, inference engine, utilizei o llama.cpp para carregar os modelos localmente... enfim, foi um dia puxado XD.
Mas mesmo após os estudos, os únicos parâmetros que consegui entender bem foi a Temperatura, TopP e o MaxOutputTokens. Os demais, todavia, achei muito confusos de compreender.
Vocês costumam "brincar" com esses parâmetros pra realizar o tuning das LLMs de vocês ou existem formas mais eficientes?
Sou realmente muito novo no tema então ainda me sinto perdido. Agradeço desde já! :-)
Vai depender muito dos objetivos que você busca com o modelo. Por exemplo, se deseja respostas mais criativas, mais concisas ou mais controladas, a configuração dos hiperparâmetros pode mudar bastante.
É interessante testar diferentes combinações para entender como o modelo se comporta, especialmente em modelos menores, onde pequenas mudanças podem ter um impacto maior. Além da Temperatura, TopP e MaxOutputTokens, vale a pena explorar também:
- Top-K: Controla quantas das palavras mais prováveis podem ser escolhidas na geração do texto. Pode ser útil para limitar a aleatoriedade sem perder diversidade.
- Repetition Penalty: Evita que o modelo repita palavras ou frases excessivamente.
- Presence/Frequency Penalty: Reduz a chance de o modelo repetir termos que já apareceram na resposta.
Se você quer um controle ainda maior, pode considerar Fine-Tuning, que permite ajustar o modelo para responder de forma mais específica ao seu caso de uso. Isso pode ser feito treinando um modelo menor com um conjunto de dados contendo prompts + respostas. Dessa forma, você pode ter um modelo eficiente sem precisar de tanto poder computacional.
No geral, testar e observar o comportamento dos modelos é essencial, pois não existe uma configuração universal que funcione para tudo.