Introdução ao GPT-3 em Python (com exemplos)
O que a GPT-3?
GPT-3 (Generative Pre-trained Transformer 3) é um modelo de linguagem autorregressivo que usa aprendizado profundo para produzir texto semelhante ao humano. Foi desenvolvido pelo OpenAI, um laboratório de pesquisa com sede em São Francisco, e é o maior modelo de linguagem já criado. É possível usar o GPT-3 para gerar praticamente qualquer tipo de texto, como respostas a perguntas, resumos, código, e muito mais.
Integrando com a API do GPT-3
O modelo é disponibilizado na forma de API paga, você recebe um crédito de $18 ao se cadastrar pela primeira vez. O cliente padrão é escrito em Python, você pode instalar unsado pip
.
pip install openai > /dev/null
Uma vez instalado precisamos de uma chave de API, para conseguir uma basta se cadastrar no site do OpenAI, acessar sua conta e gerar uma nova chave de API.
Depois de conseguir a chave, crie um novo arquivo openai.py
e importe o módulo openai
.
import openai
Logo em seguida configure a chave.
openai.api_key = '<secret>'
A partir daqui podemos fazer chamadas a API, como primeiro exemplo vamos criar um programa Python que imprima a frase "Hello World!".
Primeiro criamos uma variável chamado prompt
que terá o texto da nossa requisição.
prompt = "# Create a Python program that prints 'Hello World!'"
Depois fazemos uma requisição do tipo "Completion", para solicitar que o GPT-3 complete nosso texto.
response = openai.Completion.create(
model="text-davinci-003",
prompt=prompt,
temperature=0,
max_tokens=60,
top_p=1.0,
frequency_penalty=0.0,
presence_penalty=0.0
)
Dentre os parâmetros obrigatórios, o mais importante é o model
que será o modelo que usaremos, existem diversos modelos disponíveis, para ver a lista de modelos e mais detalhes acesse a documentação oficial.
Por fim imprimimos o resultado.
print(response.choices[0].text[2:])
# print('Hello World!')
Como pode ver, deu certo. Claro que esse exemplo é muito simples, podemos fazer coisas muito mais complexas, segue alguns exemplos:
Gerar lista de idéas combinando dois tópicos
# Brainstorm combinando Python e natal
prompt = "Brainstorm and combine Python and christmas:"
response = openai.Completion.create(
model="text-davinci-003",
prompt=prompt,
temperature=0,
max_tokens=256,
top_p=1.0,
frequency_penalty=0.0,
presence_penalty=0.0
)
print(response.choices[0].text[2:])
# 1. Christmas Tree Decorating with Python
# 2. Python-Powered Christmas Lights
# 3. Python-Generated Christmas Cards
# 4. Python-Scripted Christmas Carols
# 5. Python-Controlled Christmas Music
# 6. Python-Programmed Christmas Games
# 7. Python-Based Christmas Shopping List
# 8. Python-Scripted Christmas Jokes
# 9. Python-Powered Christmas Countdown
# 10. Python-Generated Christmas Gift Ideas
Tradução
prompt = "Translate 'GPT-3 is amazing' to Portuguese"
response = openai.Completion.create(
model="text-davinci-003",
prompt=prompt,
temperature=0,
max_tokens=60,
top_p=1.0,
frequency_penalty=0.0,
presence_penalty=0.0
)
print(response.choices[0].text[2:])
# GPT-3 é incrível!
Classificação de sentimentos
prompt = """Classify the sentiment in these list:
1. 'Odiei ler este livro!'
2. 'Este é um dos melhores biscoites que já experimentei na vida'
3. 'Até que foi legal'"""
response = openai.Completion.create(
model="text-davinci-003",
prompt=prompt,
temperature=0,
max_tokens=60,
top_p=1.0,
frequency_penalty=0.0,
presence_penalty=0.0
)
print(response.choices[0].text[2:])
# 1. Negative
# 2. Positive
# 3. Neutral
Como pode ver o potêncial é enorme, você pode gerar basicamente qualquer texto, com resultados de alta qualidade. O que você achou? O que você geraria com a GPT-3? Comente.