A seguir, o foco é a ideia básica da engenharia de dicas e como ela pode melhorar o desempenho de modelos de linguagem grandes (LLMs)...
Interface do LLM:Um dos principais motivos pelos quais os modelos de linguagem grandes são tão populares é que suas interfaces de texto para texto permitem uma experiência operacional minimalista. No passado, a solução de tarefas com aprendizagem profunda geralmente exigia o ajuste fino de pelo menos alguns dados para ensinar o modelo a resolver a tarefa correspondente. No entanto, a maioria dos modelos só tinha profundidade especializada em tarefas específicas. Mas agora, graças aos excelentes recursos de aprendizagem contextual do LLM, podemos resolver uma grande variedade de problemas com uma única dica textual. O complexo processo original de solução de problemas foi abstraído pela linguagem!
"A engenharia de prompts é uma disciplina relativamente nova que se concentra no uso eficiente de modelos de linguagem para desenvolver e otimizar prompts para uma variedade de aplicações e tópicos de pesquisa." - Citado em [1]
O que é o Projeto Tip?A simplicidade do LLM o torna acessível a mais pessoas. Você não precisa ser um cientista de dados ou um engenheiro de aprendizado de máquina para usar o LLM, basta entender inglês (ou qualquer idioma de sua escolha) e poderá usar o LLM para resolver problemas relativamente complexos! Entretanto, quando se permite que o LLM resolva problemas, os resultados geralmente dependem muito das dicas textuais que fornecemos ao modelo. Como resultado, a engenharia de dicas (ou seja, o método de usar a experiência para testar diferentes dicas para otimizar o desempenho do LLM) tornou-se muito popular e teve grande influência, o que nos levou a várias técnicas e práticas recomendadas.
Como criar um prompt:Há muitas maneiras de criar prompts do LLM. Entretanto, a maioria das estratégias de dicas tem alguns pontos em comum:
- Dados de entrada: os dados reais que o LLM precisa processar (por exemplo, frases a serem traduzidas ou categorizadas, documentos a serem resumidos etc.).
- Exemplares: exemplos dos pares corretos de entrada e saída a serem incluídos no prompt.
- Instrução: uma descrição textual dos resultados esperados do modelo.
- Rótulos (indicadores): rótulos ou elementos de formatação que criam estrutura no prompt.
- Contexto: qualquer informação adicional fornecida ao LLM no prompt.
Na ilustração a seguir, apresentamos um exemplo de como todos os elementos de dicas mencionados acima podem ser mesclados em uma única dica de categorização de frases.
Janela de contexto:Durante o pré-treinamento, o LLM vê sequências de entrada de um comprimento específico. Durante o pré-treinamento, escolhemos esse comprimento de sequência como o "comprimento de contexto" do modelo, que é o comprimento máximo de sequência com o qual o modelo pode lidar. Se for fornecido um trecho de texto significativamente maior do que esse comprimento de contexto predeterminado, o modelo poderá reagir de forma imprevisível e gerar resultados incorretos. Na prática, entretanto, existem métodos - como a autoexpansão [2] ou a interpolação posicional [3] - que podem ser usados para estender a janela de contexto do modelo.
Pesquisas recentes sobre LLMs enfatizaram a criação de janelas de contexto longas, que permitem que o modelo processe mais informações por pista (por exemplo, mais exemplos ou mais contexto). Entretanto, nem todos os LLMs são capazes de processar suas informações contextuais perfeitamente! A capacidade de um LLM de processar informações em uma janela de contexto longa geralmente é avaliada pelo "teste da agulha em um palheiro" [4], que.
1. insira um fato aleatório no contexto.
2) O modelo é necessário para descobrir esse fato.
3. repita esse teste em uma variedade de contextos, comprimentos e localizações de fatos no contexto.
Esse teste gera uma imagem como a que está abaixo (fonte [4]), na qual podemos identificar facilmente os problemas com a janela de contexto.
Minha estratégia de engenharia de pistas:Os detalhes da engenharia de tacos variam de acordo com o modelo utilizado. Entretanto, há alguns princípios gerais que também podem ser usados como guia no processo de engenharia de tacos:
- Abordagem empírica: a primeira etapa da engenharia de dicas é estabelecer uma maneira confiável de avaliar sua dica (por exemplo, por meio de casos de teste, avaliações humanas ou LLM como uma rubrica) para simplesmente medir as modificações na dica.
- Passe do simples para o complexo: as primeiras tentativas de estímulos devem ser as mais simples possíveis, em vez de tentar estímulos complexos de raciocínio em cadeia ou outras técnicas especializadas de estímulo desde o início. Os prompts mais iniciais devem ser simples e, em seguida, aumentar gradualmente a complexidade, medindo as mudanças no desempenho para avaliar se é necessário acrescentar mais complexidade.
- Seja o mais específico e direto possível: procure eliminar a ambiguidade nos prompts e seja o mais conciso, direto e específico possível ao descrever os resultados esperados.
- Inclua exemplos: se for difícil descrever o resultado esperado, tente incluir exemplos no prompt. Os exemplos fornecem exemplos concretos dos resultados esperados e podem eliminar a ambiguidade.
- Evite a complexidade sempre que possível: às vezes, são necessárias estratégias de estímulo complexas (por exemplo, para resolver problemas de raciocínio em várias etapas), mas precisamos pensar duas vezes antes de adotar essa abordagem. Adote uma visão empírica e use estratégias de avaliação estabelecidas para realmente julgar se é necessário incluir essa complexidade.
Para resumir tudo o que foi dito acima, minha estratégia pessoal de engenharia de dicas é: i) comprometer-se com uma boa estrutura de avaliação; ii) começar com uma dica simples; e iii) aumentar lentamente a complexidade conforme necessário para atingir o nível de desempenho desejado.
Anotação:
[1] https://promptingguide.ai
[2] https://arxiv.org/abs/2401.01325
[3] https://arxiv.org/abs/2306.15595
[4] https://github.com/gkamradt/LLMTest_NeedleInAHaystack