pt-review-01

pull/123/head
toniseldr 1 year ago
parent 54e039f548
commit 11d2e19708

@ -1,9 +1,9 @@
# Guia de Engenharia Prompt
A engenharia de prompts é uma disciplina relativamente nova para desenvolver e otimizar prompts para usar eficientemente modelos de linguagem (LMs) para uma ampla variedade de aplicativos e tópicos de pesquisa. As habilidades de engenharia de prompt ajudam a entender melhor os recursos e as limitações dos modelos de linguagem grandes (LLMs).
A engenharia de prompts é uma disciplina relativamente nova que visa desenvolver e otimizar prompts e utilizar eficientemente modelos de linguagem (LMs) para uma ampla variedade de aplicativos e tópicos de pesquisa. As habilidades de engenharia de prompt ajudam a entender melhor os recursos e as limitações dos modelos de linguagem grandes (LLMs).
Os pesquisadores usam a engenharia de prompt para melhorar a capacidade dos LLMs em uma ampla gama de tarefas comuns e complexas, como resposta a perguntas e raciocínio aritmético. Os desenvolvedores usam engenharia de prompt para projetar técnicas de prompt robustas e eficazes que fazem interface com LLMs e outras ferramentas.
A engenharia de prompts não é apenas projetar e desenvolver prompts. Abrange uma ampla gama de habilidades e técnicas que são úteis para interagir e desenvolver com LLMs. É uma habilidade importante interagir, construir e entender os recursos dos LLMs. Você pode usar a engenharia de prompt para melhorar a segurança dos LLMs e criar novos recursos, como aumentar os LLMs com conhecimento de domínio e ferramentas externas.
A engenharia de prompts não é apenas projetar e desenvolver prompts. Abrange uma ampla gama de habilidades e técnicas que são úteis para interagir e desenvolver com LLMs. É uma habilidade importante para interagir, construir e entender os recursos dos LLMs. Você pode usar a engenharia de prompt para melhorar a segurança dos LLMs e criar novos recursos, como aumentar os LLMs com conhecimento de domínio e ferramentas externas.
Motivados pelo grande interesse em desenvolver com LLMs, criamos este novo guia de engenharia rápida que contém todos os artigos mais recentes, guias de aprendizagem, modelos, palestras, referências, novos recursos de LLM e ferramentas relacionadas à engenharia rápida.
Motivados pelo grande interesse em desenvolver com LLMs, criamos este novo guia de engenharia rápida que contém todos os artigos mais recentes, guias de aprendizagem, modelos, palestras, referências, novos recursos de LLM e ferramentas relacionadas à engenharia de prompt.

@ -2,6 +2,6 @@
A engenharia de prompts é uma disciplina relativamente nova para desenvolver e otimizar prompts para usar eficientemente modelos de linguagem (LMs) para uma ampla variedade de aplicativos e tópicos de pesquisa. As habilidades imediatas de engenharia ajudam a entender melhor os recursos e as limitações dos modelos de linguagem grandes (LLMs). Os pesquisadores usam a engenharia de prompt para melhorar a capacidade dos LLMs em uma ampla gama de tarefas comuns e complexas, como resposta a perguntas e raciocínio aritmético. Os desenvolvedores usam engenharia de prompt para projetar técnicas de prompt robustas e eficazes que fazem interface com LLMs e outras ferramentas.
Este guia aborda os fundamentos dos prompts para fornecer uma ideia aproximada de como usar prompts para interagir e instruir modelos de linguagem grandes (LLMs).
Este guia aborda os fundamentos dos prompts para fornecer uma ideia aproximada de como utiliza-los para interagir e instruir modelos de linguagem grandes (LLMs).
Todos os exemplos são testados com `text-davinci-003` (usando o playground do OpenAI), a menos que especificado de outra forma. Ele usa as configurações padrão, ou seja, `temperatura=0.7` e `top-p=1`.

@ -58,13 +58,13 @@ ou
Isso pode ser formatado em um formato de resposta a perguntas (QA), que é padrão em muitos conjuntos de dados de QA, como segue:
```
P: <Pergunta>?
Q: <Pergunta>?
A:
```
Ao solicitar como o acima, também é chamado de *prompt de tiro zero*, ou seja, você está solicitando diretamente ao modelo uma resposta sem nenhum exemplo ou demonstração sobre a tarefa que deseja realizar. Alguns modelos de linguagem grandes têm a capacidade de executar prompts zero-shot, mas isso depende da complexidade e do conhecimento da tarefa em questão.
Ao solicitar como o acima, também chamado de *prompt de tiro zero*, ou seja, você está solicitando diretamente ao modelo uma resposta sem nenhum exemplo ou demonstração sobre a tarefa que deseja realizar. Alguns modelos de linguagem grandes têm a capacidade de executar prompts zero-shot, mas isso depende da complexidade e do conhecimento da tarefa em questão.
Dado o formato padrão acima, uma técnica popular e eficaz para solicitação é chamada de *promoção de poucos tiros*, onde fornecemos exemplos (ou seja, demonstrações). Os prompts de poucas fotos podem ser formatados da seguinte maneira:
Dado o formato padrão acima, uma técnica popular e eficaz para solicitação é chamada de *prompt de poucos tiros*, onde fornecemos exemplos (ou seja, demonstrações). Os prompts de poucos tiros podem ser formatados da seguinte maneira:
```
<Pergunta>?
@ -83,16 +83,16 @@ Dado o formato padrão acima, uma técnica popular e eficaz para solicitação
A versão do formato QA ficaria assim:
```
P: <Pergunta>?
R: <Resposta>
Q: <Pergunta>?
A: <Resposta>
P: <Pergunta>?
R: <Resposta>
Q: <Pergunta>?
A: <Resposta>
P: <Pergunta>?
R: <Resposta>
Q: <Pergunta>?
A: <Resposta>
P: <Pergunta>?
Q: <Pergunta>?
A:
```
@ -102,7 +102,7 @@ Lembre-se de que não é necessário usar o formato QA. O formato do prompt depe
```
Isso é incrível! // Positivo
Isto é mau! // Negativo
Uau, esse filme foi rad! // Positivo
Uau, esse filme foi radical! // Positivo
Que espetáculo horrível! //
```
@ -111,4 +111,4 @@ Que espetáculo horrível! //
Negativo
```
Os prompts de poucos disparos permitem o aprendizado no contexto, que é a capacidade dos modelos de linguagem de aprender tarefas dadas algumas demonstrações.
Os prompts de poucos tiros permitem o aprendizado no contexto, que é a capacidade dos modelos de linguagem de aprender tarefas dadas algumas demonstrações.

@ -16,7 +16,7 @@ Tópicos:
---
## Resumo de texto
Uma das tarefas padrão na geração de linguagem natural é o resumo de texto. A sumarização de texto pode incluir muitos sabores e domínios diferentes. Na verdade, uma das aplicações mais promissoras dos modelos de linguagem é a capacidade de resumir artigos e conceitos em resumos rápidos e fáceis de ler. Vamos tentar uma tarefa básica de resumo usando prompts.
Uma das tarefas padrão na geração de linguagem natural é o resumo de texto. A sumarização de texto pode incluir preferências e domínios diferentes. Na verdade, uma das aplicações mais promissoras dos modelos de linguagem é a capacidade de resumir artigos e conceitos em resumos rápidos e fáceis de ler. Vamos tentar uma tarefa básica de resumo usando prompts.
Digamos que estou interessado em aprender sobre antibióticos, poderia tentar um prompt como este:
@ -38,7 +38,7 @@ O "A:" é um formato de prompt explícito usado para responder perguntas. Eu use
```
Os antibióticos são um tipo de medicamento usado para tratar infecções bacterianas. Eles funcionam matando as bactérias ou impedindo-as de se reproduzir, permitindo que o sistema imunológico do corpo combata a infecção. Os antibióticos são geralmente tomados por via oral na forma de comprimidos, cápsulas ou soluções líquidas, ou às vezes administrados por via intravenosa. Eles não são eficazes contra infecções virais e usá-los de forma inadequada pode levar à resistência aos antibióticos.
Explique o que foi dito acima em uma frase:
**Explique o que foi dito acima em uma frase**:
```
*Saída:*
@ -58,7 +58,7 @@ Aqui está um exemplo de um prompt que extrai informações de um determinado pa
```
As declarações de contribuição do autor e os agradecimentos em trabalhos de pesquisa devem indicar clara e especificamente se, e em que medida, os autores usaram tecnologias de IA, como ChatGPT, na preparação de seus manuscritos e análises. Eles também devem indicar quais LLMs foram usados. Isso alertará os editores e revisores para examinar os manuscritos com mais cuidado em busca de possíveis vieses, imprecisões e créditos de origem impróprios. Da mesma forma, os periódicos científicos devem ser transparentes sobre o uso de LLMs, por exemplo, ao selecionar manuscritos enviados.
Mencione o produto baseado em modelo de linguagem grande mencionado no parágrafo acima:
**Mencione o produto baseado em modelo de linguagem grande mencionado no parágrafo acima**:
```
*Saída:*
@ -197,7 +197,7 @@ Acho que fizemos algum progresso. Você pode continuar melhorando. Tenho certeza
---
## Geração de Código
Uma aplicação em que os LLMs são bastante eficazes é a geração de código. O copiloto é um ótimo exemplo disso. Há um grande número de tarefas de geração de código que você pode executar com prompts inteligentes. Vejamos alguns exemplos abaixo.
Uma aplicação em que os LLMs são bastante eficazes é a geração de código. O Copilot é um ótimo exemplo disso. Há um grande número de tarefas de geração de código que você pode executar com prompts inteligentes. Vejamos alguns exemplos abaixo.
Primeiro, vamos tentar um programa simples que saúda o usuário.
@ -241,7 +241,7 @@ Isso é muito impressionante. Nesse caso, fornecemos dados sobre o esquema do ba
## Raciocínio
Talvez uma das tarefas mais difíceis para um LLM hoje seja aquela que requer alguma forma de raciocínio. O raciocínio é uma das áreas que mais me entusiasma devido aos tipos de aplicativos complexos que podem surgir dos LLMs.
Houve algumas melhorias em tarefas envolvendo capacidades matemáticas. Dito isso, é importante observar que os LLMs atuais lutam para executar tarefas de raciocínio, portanto, isso requer técnicas de engenharia imediata ainda mais avançadas. Abordaremos essas técnicas avançadas no próximo guia. Por enquanto, abordaremos alguns exemplos básicos para mostrar as capacidades aritméticas.
Houve algumas melhorias em tarefas envolvendo capacidades matemáticas. Dito isso, é importante observar que os LLMs atuais lutam para executar tarefas de raciocínio, portanto, isso requer técnicas de engenharia de prompt ainda mais avançadas. Abordaremos essas técnicas avançadas no próximo guia. Por enquanto, abordaremos alguns exemplos básicos para mostrar as capacidades aritméticas.
*Prompt:*
```

@ -1,10 +1,10 @@
# Configurações LLM
Ao trabalhar com prompts, você estará interagindo com o LLM por meio de uma API ou diretamente. Você pode configurar alguns parâmetros para obter resultados diferentes para seus prompts.
Ao trabalhar com prompts, você estará interagindo com o LLM diretamente ou por meio de uma API. Você pode configurar alguns parâmetros para obter resultados diferentes para seus prompts.
**Temperatura** - Resumindo, quanto menor a `temperatura`, mais determinísticos são os resultados, no sentido de que o próximo token provável mais alto é sempre escolhido. O aumento da temperatura pode levar a mais aleatoriedade, incentivando saídas mais diversificadas ou criativas. Estamos essencialmente aumentando os pesos dos outros tokens possíveis. Em termos de aplicação, podemos querer usar um valor de temperatura mais baixo para tarefas como controle de qualidade baseado em fatos para encorajar respostas mais factuais e concisas. Para geração de poemas ou outras tarefas criativas, pode ser benéfico aumentar o valor da temperatura.
**Temperatura** - Resumindo, quanto menor a `temperatura`, mais determinísticos são os resultados, no sentido de que o próximo token provável mais alto é sempre escolhido. O aumento da temperatura pode levar a mais aleatoriedade, incentivando saídas mais diversificadas ou criativas. Estamos essencialmente aumentando os pesos dos outros tokens possíveis. Em termos de aplicação, podemos querer usar um valor de temperatura mais baixo para tarefas como controle de qualidade baseado em fatos encorajando respostas mais factuais e concisas. Para geração de poemas ou outras tarefas criativas, pode ser benéfico aumentar o valor da temperatura.
**Top_p** - Da mesma forma, com `top_p`, uma técnica de amostragem com temperatura chamada amostragem de núcleo, você pode controlar o grau de determinismo do modelo na geração de uma resposta. Se você está procurando respostas exatas e factuais, mantenha isso baixo. Se você estiver procurando respostas mais diversificadas, aumente para um valor mais alto.
**Top_p** - Da mesma forma, com o `top_p`, uma técnica de amostragem com temperatura chamada amostragem de núcleo, você pode controlar o grau de determinismo do modelo na geração de uma resposta. Se você está procurando respostas exatas e factuais, mantenha isso baixo. Se você estiver procurando respostas mais diversificadas, aumente para um valor mais alto.
A recomendação geral é alterar um, não ambos.

@ -29,13 +29,13 @@ Texto: "olá!"
*Saída:*
```
Olá!
¡Hola!
```
### Especificidade
Seja muito específico sobre a instrução e a tarefa que deseja que o modelo execute. Quanto mais descritivo e detalhado for o prompt, melhores serão os resultados. Isso é particularmente importante quando você tem um resultado desejado ou estilo de geração que está buscando. Não há tokens ou palavras-chave específicas que levem a melhores resultados. É mais importante ter um bom formato e um prompt descritivo. Na verdade, fornecer exemplos no prompt é muito eficaz para obter a saída desejada em formatos específicos.
Ao criar prompts, você também deve ter em mente o comprimento do prompt, pois há limitações em relação a quanto tempo isso pode durar. Pensar em quão específico e detalhado você deve ser é algo a se considerar. Incluir muitos detalhes desnecessários não é necessariamente uma boa abordagem. Os detalhes devem ser relevantes e contribuir para a tarefa em mãos. Isso é algo que você precisará experimentar muito. Incentivamos muita experimentação e iteração para otimizar os prompts de seus aplicativos.
Ao criar prompts, você também deve ter em mente o tamanho do prompt, pois há limitações em relação a quão grande ele pode ser. Pensar em quão específico e detalhado você deve ser é algo a se considerar. Incluir muitos detalhes desnecessários não é necessariamente uma boa abordagem. Os detalhes devem ser relevantes e contribuir para a tarefa em mãos. Isso é algo que você precisará experimentar muito. Incentivamos muita experimentação e iteração para otimizar os prompts de seus aplicativos.
Como exemplo, vamos tentar um prompt simples para extrair informações específicas de um texto.
@ -44,9 +44,9 @@ Como exemplo, vamos tentar um prompt simples para extrair informações específ
Extraia o nome dos lugares no texto a seguir.
Formato desejado:
Local: <comma_separated_list_of_company_names>
Local: <lista_separada_por_vírgulas_de_nomes_de_empresas>
Contribuição: "Embora estes desenvolvimentos sejam encorajadores para os investigadores, muito ainda é um mistério. “Muitas vezes temos uma caixa preta entre o cérebro e o efeito que vemos na periferia”, diz Henrique Veiga-Fernandes, neuroimunologista do Centro Champalimaud de o Desconhecido em Lisboa. “Se queremos utilizá-lo no contexto terapêutico, precisamos de facto de perceber o mecanismo.""
Input: "Embora estes desenvolvimentos sejam encorajadores para os investigadores, muito ainda é um mistério. “Muitas vezes temos uma caixa preta entre o cérebro e o efeito que vemos na periferia”, diz Henrique Veiga-Fernandes, neuroimunologista do Centro Champalimaud para o Desconhecido em Lisboa. “Se queremos utilizá-lo no contexto terapêutico, precisamos de facto de perceber o mecanismo."
```
*Saída:*
@ -54,7 +54,7 @@ Contribuição: "Embora estes desenvolvimentos sejam encorajadores para os inves
Local: Centro Champalimaud para o Desconhecido, Lisboa
```
O texto de entrada é obtido de [este artigo da Nature](https://www.nature.com/articles/d41586-023-00509-z).
O texto de entrada é obtido [neste artigo da Nature](https://www.nature.com/articles/d41586-023-00509-z).
### Evite Imprecisões
@ -63,13 +63,13 @@ Dadas as dicas acima sobre como ser detalhado e melhorar o formato, é fácil ca
Por exemplo, você pode estar interessado em aprender o conceito de engenharia de prompt. Você pode tentar algo como:
```
Explique o conceito de engenharia imediata. Mantenha a explicação curta, apenas algumas frases, e não seja muito descritivo.
Explique o conceito de engenharia de prompt. Mantenha a explicação curta, apenas algumas frases, e não seja muito descritivo.
```
Não está claro no prompt acima quantas frases usar e qual estilo. Você ainda pode obter boas respostas com os prompts acima, mas o melhor prompt seria aquele que é muito específico, conciso e direto ao ponto. Algo como:
Não está claro no prompt acima quantas frases usar e qual estilo. Você ainda pode obter uma boa resposta com o prompt acima, mas o melhor prompt seria aquele que é muito específico, conciso e direto ao ponto. Algo como:
```
Use 2 a 3 frases para explicar o conceito de engenharia imediata a um aluno do ensino médio.
Use 2 a 3 frases para explicar o conceito de engenharia de prompt a um aluno do ensino médio.
```
### Fazer ou não fazer?
@ -79,7 +79,7 @@ Aqui está um exemplo de um chatbot de recomendação de filme falhando exatamen
*Prompt:*
```
O seguinte é um agente que recomenda filmes a um cliente. NÃO PEÇA INTERESSES. NÃO PEÇA INFORMAÇÕES PESSOAIS.
O agente a seguir recomenda filmes para um cliente. NÃO PEÇA INTERESSES. NÃO PEÇA INFORMAÇÕES PESSOAIS.
Cliente: Por favor, recomende um filme baseado nos meus interesses.
Agente:
@ -94,7 +94,7 @@ Aqui está um prompt melhor:
*Prompt:*
```
O seguinte é um agente que recomenda filmes a um cliente. O agente é responsável por recomendar um filme dos principais filmes de tendências globais. Deve abster-se de perguntar aos usuários sobre suas preferências e evitar pedir informações pessoais. Se o agente não tiver um filme para recomendar, ele deve responder "Desculpe, não foi possível encontrar um filme para recomendar hoje.".
O agente a seguir recomenda filmes para um cliente. O agente é responsável por recomendar um filme dos principais filmes de tendências globais. Deve abster-se de perguntar aos usuários sobre suas preferências e evitar pedir informações pessoais. Se o agente não tiver um filme para recomendar, ele deve responder "Desculpe, não foi possível encontrar um filme para recomendar hoje.".
Cliente: Por favor, recomende um filme baseado nos meus interesses.
Agente:

Loading…
Cancel
Save