Como criar bons prompts para modelos pequenos ⁉️
Olá, gostaria do conhecimento de vocês.
Eu vou trabalhar com modelos realmente pequenos coisa 1b e no máximo 3b.
E para isso a depender do prompt a resposta é completamente alucinada e não importa a línguagem utilizada.
Enfim, vocês tem dicas (SÉRIO, VOCÊS TEM DICAS!!) ?
Construí uma iniciativa chamada maisfoco.life 🌱 Que diminui tua sobrecarga cognitiva em escolher em um mundo moderno inundado de opções e cheios de scoll infintos.
Receba recomendações diárias de filmes, livros e jogos via email/whatsapp, retome sua atenção de forma 100% gratuita!
Mais Foco 🌱, menos scroll, mais vida! YT: Mais Foco 🌱 GIT: Mais Foco 🌱
Meus 2 cents:
Quanto menor o modelo, (geralmente) menor a janela de tokens de input - entao, prompts curtos.
O ideal eh checar quantos tokens teu LLM permite no input.
Faca alguns testes e calcule prompt vs tokens. Um script que permite estimar os tokens de entrada:
Em LLMs pequenos, faca os prompts em ingles. Se for o caso, o usuario entra o prompt em pt-br, teu app traduz para ingles, aplica no LLM e traduz a resposta de volta ao pt-br (nem sempre eh necessario, precisa testar em varios cenarios)
Verifique a especialidade do LLM - pode ter sido treinado voltado para uma area especifica.
Tente ativar o Chain-of-thought (CoT) - exemplos
- "Faca XXX. Primeiro, pense passo a passo e depois forneça a solução."
- "Faca xxx. Pense passo a passo"
- "Faca xxx. Explique o raciocínio por trás da resposta"
- "Faca xxx. Liste os passos necessários para resolver este problema".
Decomponha tarefas complexas em prompts menores.
Utilize verbos especificos conforme a tarefa desejada:
-
Lembrar Objetivo: Recuperar informações específicas da memória. Palavras-chave nos prompts: Liste, defina, identifique, nomeie, descreva, localize, recupere. Exemplo: "Liste os três principais exportadores de café do mundo."
-
Compreender: Objetivo: Interpretar e resumir informações. Palavras-chave nos prompts: Explique, resuma, parafraseie, interprete, descreva, classifique, compare. Exemplo: "Explique o processo de fotossíntese em suas próprias palavras."
-
Aplicar: Objetivo: Usar informações aprendidas em novas situações. Palavras-chave nos prompts: Aplique, demonstre, resolva, use, implemente, execute, calcule. Exemplo: "Aplique a teoria da oferta e demanda para explicar o aumento recente no preço da gasolina."
-
Analisar: Objetivo: Dividir informações em partes componentes para entender a estrutura e as relações. Palavras-chave nos prompts: Analise, diferencie, compare, contraste, examine, categorize, investigue. Exemplo: "Analise o impacto da mídia social no comportamento político dos jovens."
-
Avaliar: Objetivo: Fazer julgamentos com base em critérios e padrões. Palavras-chave nos prompts: Avalie, critique, justifique, defenda, argumente, recomende, priorize. Exemplo: "Avalie a eficácia das políticas governamentais para combater as mudanças climáticas."
-
Criar (nível mais alto): Objetivo: Gerar novas ideias, produtos ou soluções. Palavras-chave nos prompts: Crie, projete, invente, desenvolva, formule, escreva, componha, proponha. Exemplo: "Crie um slogan de marketing para um novo carro elétrico."
E por fim: lembre-se que o LLM eh (grosso modo) apenas um autocompletar. Ele pega os tokens de entrada e a partir deles continua a entrada e tenta "advinhar" qual o proximo token que faca sentido.
O ideal - usar RAG/CAG: caso sua necessidade seja sobre um tema especifico - sempre que possivel recorra ao RAG/CAG para alimentar com os dados relevantes do assunto.
RAG: pesquisa em banco vetorial (R de Retrieval) previamente construido com DOCs relativos ao assunto e alimenta o input com os embeddings encontrados - assim o LLM usa estes dados na montagem da resposta. Problema: dependendo da quantidade de DOCs existe a necessidade de fazer o rankeamento para garantir que os embeddings sao os melhores para a montagem da resposta.
CAG: O mesmo que acima, mas sem pesquisa (C de cache), alimenta direto todos os embeddings dos DOCs disponiveis na janela de input para montar a resposta - muito mais eficiente, mas tem custo de memoria/processamento maior.