Recentemente, experimentei realizar fine-tuning com SFT e LoRA usando os modelos pequenos Gemma 3 no domínio de recomendação de filmes. Durante os experimentos, senti algumas limitações na capacidade de modelos pequenos (SLM) adquirirem conhecimento, então estou deixando esta pergunta.
[Experimento]
- Modelos usados: gemma-3-270m-it, gemma-3-1b-it
- Método de treinamento: LoRA e SFT
- Resultado dos experimentos: o modelo 1B conseguiu fazer algum nível de raciocínio com base no conhecimento já existente, mas o modelo 270M me deu a impressão de que, devido à limitação no número de parâmetros, faltava até mesmo o próprio “recipiente” para absorver novo conhecimento de domínio.
Registrei todo o processo de tuning em várias postagens no blog abaixo.
https://seungsang.tistory.com/entry/…
[Problemas enfrentados]
- Limite de capacidade do LoRA: como os parâmetros treináveis ficam em torno de 1% do total, havia um limite para ir além da simples adaptação de tarefa (Task Adaptation) e chegar à injeção de conhecimento (Knowledge Injection).
- Dilema do fine-tuning completo (Full Fine-tuning): ao atualizar todos os pesos do modelo, a injeção de conhecimento é favorecida, mas acredito que a capacidade geral de raciocínio que ele já possui pode se perder. Mesmo que eu quisesse misturar dados de replay para evitar isso, a situação é difícil porque os dados de treinamento do modelo base não são públicos.
No caso de filmes, acredito que o fine-tuning foi possível porque o modelo já tinha conhecimento prévio.
Mas, se eu quiser me basear em um domínio específico, como devo proceder?
Quando se quer especializar um modelo pequeno em um domínio específico, quais estratégias existem para superar a limitação de capacidade de parâmetros e injetar conhecimento de domínio de forma eficaz?
Agradeço muito quaisquer conselhos. Também ficarei grato se puderem compartilhar experiências diversas, como CPT (Continue Pre-training).
5 comentários
Eu também quase enlouqueci tentando fazer fine-tuning com o 7B porque não estava dando certo. Isso até me trouxe de volta um PTSD.
Você ainda está fazendo isso?
Se por acaso tentou, teria alguma impressão que sentiu no processo ou dicas para compartilhar?
LoRA e fine-tuning não são adequados para injeção de conhecimento. LoRA e fine-tuning são mais indicados para ajustar estilo/tom de saída. Se você incluir informações de conhecimento no prompt de entrada em formato de RAG e depois avaliar o recall/a precisão dos dados de saída, avançando só então para LoRA/fine-tuning, o resultado será muito mais eficaz.
Eu também gostaria de dar mais um voto ao uso de RAG.
Obrigado pela resposta.
No caso de RAG, estou pensando um pouco em como trazer os dados de domínio de forma adequada.
Será que eu teria que treinar o próprio modelo de embeddings...?
Eu queria internalizar o conhecimento também para reduzir a quantidade de tokens do modelo pequeno, mas pelo visto o LoRA tem limitações nisso.
Vou refletir sobre os pontos que você mencionou. Obrigado.