# 08. Zero, One e Few-Shot

As técnicas de one e few-shot são bastante conhecidas. Na prática, elas não passam de formas de passar exemplos de respostas para "inspirar" o modelo a responder mais de acordo. Já mostramos que podemos passar exemplos para o modelo se basear, como no caso em que fornecemos e-mails próprios como referência para a saída desejada. Agora vamos explorar mais algumas formas de passar exemplos, mas antes de avançarmos para o conceito de one e few-shot, vamos entender o que é zero-shot prompting - a forma mais simples de formular um prompt.

### Zero Shot

Os modelos de LLM atuais são ajustados para seguir instruções e treinados com uma quantidade enorme de dados. Logo, eles são capazes de realizar tarefas "zero-shot", ou seja, tarefas sem receber um exemplo anterior.

```python
Classifique o texto como neutro, negativo ou positivo. 
Texto: Eu acho que as férias estão ok. 
Sentimento:
```

```python
Neutro
```

Como falamos, não foi necessário mostrar ao modelo exemplos das respostas que gostaríamos, e ele já conseguiu dar a resposta adequada.

Agora, nos casos em que o "zero-shot" não funciona, é recomendado mostrar mais exemplos com o comportamento esperado para o modelo. Aí que entra o "Few-shot Prompting".

### Utilizando a Técnica One-Shot

Na abordagem de prompting one-shot, o modelo aprende com o contexto fornecido, e essa orientação adicional permite um desempenho melhor. As demonstrações funcionam como condicionamento para exemplos subsequentes nos quais gostaríamos que o modelo gerasse uma resposta. No caso do one-shot, fornecemos apenas uma demonstração para o modelo.

Vamos dar um exemplo:

```python
Um "whatpu" é um animal pequeno e peludo nativo da Tanzânia. Um exemplo de uma frase que usa a palavra whatpu é:
Estávamos viajando na África e vimos esses whatpus muito fofos.

Realizar um "farduddle" significa pular para cima e para baixo muito rápido. Um exemplo de uma frase que usa a palavra farduddle é:
```

```python
A criança estava tão animada que começou a farduddle de alegria.
```

Podemos observar que o modelo de alguma forma aprendeu a realizar a tarefa ao fornecermos apenas um exemplo (ou seja, 1-shot). Para tarefas mais difíceis, podemos experimentar aumentar o número de demonstrações (por exemplo, 3-shot, 5-shot, 10-shot, etc.).

### Utilizando a Técnica Few-Shot

A diferença de one-shot para few-shot é apenas a quantidade de exemplos que são fornecidos ao modelo. No caso de one-shot, uma demonstração é dada, enquanto no few-shot, múltiplas demonstrações são dadas.

### Formatações Few-shot

Podemos utilizar diferentes formatações para realizar o few-shot:

```python
Isso é incrível! // Negativo
Isso é ruim! // Positivo
Uau, esse filme foi incrível! // Positivo
Que programa horrível! //
```

```python
Negativo
```

Outra possível formatação seria a seguinte:

```python
Texto: Isso é incrível!
Sentimento: Negativo
Texto: Isso é ruim!
Sentimento: Positivo
Texto: Uau, esse filme foi incrível!
Sentimento: Positivo
Texto: Que programa horrível!
Sentimento:
```

```python
Negativo
```

E uma muito utilizada é de pergunta e resposta:

![[Pasted image 20240313165747.png]]

### Limitações de Few-shot

Para problemas que exigem um raciocínio mais apurado do modelo, a técnica few-shot não é recomendada. Ao mostrarmos exemplos neste caso, o modelo não consegue entender o padrão que leva à resposta.

```python
Os números ímpares neste grupo somam um número par: 4, 8, 9, 15, 12, 2, 1.
Resposta: A resposta é Falsa.

Os números ímpares neste grupo somam um número par: 17, 10, 19, 4, 8, 12, 24.
Resposta: A resposta é Verdadeira.

Os números ímpares neste grupo somam um número par: 16, 11, 14, 4, 8, 13, 24.
Resposta: A resposta é Verdadeira.

Os números ímpares neste grupo somam um número par: 17, 9, 10, 12, 13, 4, 2.
Resposta: A resposta é Falsa.

Os números ímpares neste grupo somam um número par: 15, 32, 5, 13, 82, 7, 1.
Resposta:
```

```python
A resposta é Verdadeira.
```

A resposta correta é "Falsa", e podemos ver que nos casos em que há necessidade de um raciocínio mais elaborado, a técnica few-shot pode não ser suficiente para atingirmos resultados melhores.
