Track
Primeiros passos com o Claude 3 e a API do Claude 3
A guerra da IA continua acirrada, com o Gemini e o Gemma do Google fazendo barulho recentemente, mas agora o Claude 3 da Anthropic surgiu como um concorrente poderoso, superando o GPT-4 e o Gemini Ultra em todos os benchmarks.
Neste tutorial, exploraremos os modelos do Claude 3, os benchmarks de desempenho e como acessá-los. Também compararemos o Claude 3 com seu antecessor, o Claude 2.1, e o ChatGPT. Por fim, aprenderemos sobre a API Python do Claude 3 para gerar texto, acessar recursos de visão, transmitir respostas e usá-la de forma assíncrona.
O que é o Claude 3?
A Anthropic lançou recentemente uma nova família de modelos de IA chamada Claude 3. Esses modelos estabelecem padrões de referência do setor em várias tarefas cognitivas. Os modelos Claude 3 incluem três modelos de última geração: Haiku, Sonnet e Opus. Esses modelos podem potencializar os bate-papos com clientes em tempo real, os preenchimentos automáticos e as tarefas de extração de dados.
Atualmente, o Opus e o Sonnet estão disponíveis para o claude.ai e a API do Claude, enquanto o modelo menor Haiku será lançado em breve. Os modelos Claude 3 são melhores para seguir instruções complexas de várias etapas, aderir às diretrizes de voz e resposta da marca e gerar resultados estruturados em formatos como JSON.
Em comparação com os modelos Claude anteriores, esses novos modelos mostram uma melhor compreensão contextual, resultando em menos recusas desnecessárias.
Eles oferecem uma janela de contexto de 200 mil, mas podem processar entradas que excedam 1 milhão de tokens. Especificamente, o Claude 3 Opus obteve uma recuperação quase perfeita, ultrapassando 99% de precisão.
Para garantir a confiabilidade dos modelos, a Anthropic tem equipes dedicadas a rastrear e mitigar um amplo espectro de riscos.
Detalhes do modelo
A Claude 3 oferece três modelos com um equilíbrio de inteligência, velocidade e custo para várias aplicações.
Claude 3 Opus
O Opus foi projetado para tarefas complexas e de alta inteligência, destacando-se na solução de problemas abertos e na análise estratégica, com uma janela de contexto significativa e um custo mais alto que reflete seus recursos avançados.
Preço: Tokens de entrada a US$ 15 por milhão e tokens de saída a US$ 75 por milhão.
Soneto de Claude 3
O Sonnet oferece um equilíbrio ideal entre desempenho e custo, ideal para cargas de trabalho corporativas que envolvem processamento de dados, otimização de vendas e implementações de IA dimensionáveis. Ele é econômico e vem com uma grande janela de contexto.
Preço: Tokens de entrada a US$ 3 por milhão e tokens de saída a US$ 15 por milhão.
Claude 3 Haiku
O Haiku se destaca por sua velocidade e eficiência, atendendo às necessidades de resposta em tempo real no atendimento ao cliente, moderação de conteúdo e tarefas de redução de custos, o que o torna o modelo mais acessível e ágil da suíte.
Preço: Tokens de entrada a US$ 0,25 por milhão e tokens de saída a US$ 1,25 por milhão.
Como acessar o Claude 3
Há três maneiras de acessar os modelos do Claude 3.
Chat do Claude
Se estiver procurando uma maneira simples e gratuita de experimentar os modelos de IA do Claude, você pode se inscrever no claude.ai/chats, que é semelhante ao ChatGPT. A interface de bate-papo é interativa e fácil de usar.
Atualmente, eles estão oferecendo o Claude 3 Sonnet gratuitamente, mas para acessar o Claude 3 Opus, você precisará adquirir uma assinatura mensal do Claude Pro.
Chat do Claude
Bancada de trabalho
Para acessar o Claude 3 Opus gratuitamente, você precisa se inscrever na API do Anthropic: console.anthropic.com.
Siga as etapas simples para se inscrever gratuitamente e começar a usar o modelo Opus clicando na guia Workbench e selecionando o modelo "claude-3-opus-20240229".
Bancada de trabalho antrópica
API e SDK
A terceira maneira de acessar os modelos do Claude 3 é por meio da API. A Antropic oferece kits de desenvolvimento de software (SDKs) para clientes em Python e Typescript. Você também pode acessar o modelo por meio da API REST usando o comando curl
no terminal.
curl https://api.anthropic.com/v1/messages \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "content-type: application/json" \
--data \
'{
"model": "claude-3-opus-20240229",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "How many moons does Jupiter have?"}
]
}'
Um mergulho nos benchmarks
Os modelos Claude 3 foram comparados com os modelos de linguagem grande (LLMs) de melhor desempenho e mostraram melhorias significativas em vários testes.
O Claude 3 Opus, em particular, superou o GPT-4 e o Gemini Ultra em alguns dos benchmarks de avaliação mais comuns, incluindo MMLU, GPQA e GSM8K. Ele apresenta níveis quase humanos de compreensão e fluência em tarefas complexas, o que o torna o primeiro passo para alcançar a inteligência geral.
Descubra o LLM de última geração da OpenAI lendo o artigo da DataCamp sobre O que é o GPT-4 e por que ele é importante? Além disso, saiba mais sobre o rival do ChatGPT do Google, o Google Gemini, lendo . O que é o Google Gemini? Tudo o que você precisa saber sobre ele.
Os modelos Claude 3 ficaram melhores em análise e previsão, geração de código e geração de respostas em idiomas diferentes do inglês, conforme observado nos dados de referência abaixo:
Os recursos visuais do modelo Claude 3 melhoraram significativamente, permitindo que ele compreenda fotos, diagramas e gráficos complexos. Esse avanço beneficia as empresas com bases de conhecimento em vários formatos, como PDFs, fluxogramas e slides de apresentações.
Os modelos Claude 3 também melhoraram significativamente a redução de recusas desnecessárias e a precisão em comparação com as gerações anteriores de modelos.
Por fim, podemos ver que os modelos do Claude 3 apresentam uma melhoria de duas vezes na precisão das perguntas abertas em comparação com o Claude 2.1. Além disso, os novos modelos mostram níveis reduzidos de respostas incorretas.
Claude 3 Opus vs Claude 2.1
Nesta seção, compararemos as respostas do Claude 3 Opus e do Claude 2.1 em três tarefas comuns para entender seus respectivos desempenhos.
PERGUNTAS E RESPOSTAS
Prompt: Falo sem boca e ouço sem ouvidos. Não tenho corpo, mas ganho vida com o vento. O que eu sou?
O Claude 2.1 se recusou a responder à pergunta, alegando falta de conteúdo. No entanto, o usuário estava perguntando uma charada, e o Claude Opus forneceu a resposta correta.
Geração de código
Prompt: Crie um aplicativo da Web FastAPI para um modelo de classificação simples do Scikit-learn.
O código do Claude 2.1 parecia ter funcionado inicialmente, mas apresentou um erro depois de inserir os valores de amostra. Após a investigação, descobrimos que o código não está otimizado e que a função de inferência tem alguns erros.
Por outro lado, quando o comparamos com o Claude 3 Opus, descobrimos que o código foi executado sem problemas e forneceu previsões precisas, conforme mostrado abaixo.
Problema complexo
Prompt: Como uma rede neural com uma camada e uma entrada e saída se compara a uma regressão logística?
Ambos os modelos forneceram respostas semelhantes, mas a resposta do Claude 3 Opus foi mais detalhada e de fácil leitura.
Claude 3 Opus vs ChatGPT 4
Vamos comparar o Claude 3 Opus e o ChatGPT 4 em tarefas semelhantes às mencionadas acima para mostrar como o Claude 3 tem uma pequena vantagem sobre o modelo GPT-4.
PERGUNTAS E RESPOSTAS
Prompt: Quantas luas Júpiter tem?
Ambas as afirmações estão incorretas. Em 5 de fevereiro de 2024, Júpiter tinha 95 luas. Esse prompt é útil para entender o período de corte dos conjuntos de dados. Parece que o Claude 3 Opus foi treinado em um conjunto de dados mais antigo, de 2021, enquanto o ChatGPT foi atualizado pela última vez em abril de 2023.
Geração de código
Prompt: Criação de um aplicativo da Web Gradio para um modelo de classificação simples do Scikit-learn.
O código gerado pelo modelo Claude 3 foi executado sem problemas, mas o código gerado pelo GPT-4 não foi executado devido a vários erros e alucinações.
Problema complexo
Prompt: Há quatro pessoas em um elevador e quatro andares em um edifício. Qual é a probabilidade de que cada pessoa desça em um andar diferente?
Ambos os modelos apresentaram a resposta correta para a famosa pergunta sobre probabilidade. Um forneceu o trabalho matemático, e o outro gerou e executou o código Python para exibir a mesma resposta. Nesse caso, ambos ganham.
Claude 3 Python SDK
Nesta parte, aprenderemos sobre o SDK Python do Claude 3 e como podemos usá-lo para gerar respostas personalizadas.
Primeiros passos
1. Instale o pacote anthropic
Python usando o PIP.
pip install anthropic
2. Antes de instalarmos o pacote Python, precisamos acessar https://console.anthropic.com/dashboard e obter a chave da API.
3. Defina a variável de ambiente ANTHROPIC_API_KEY
e forneça o valor com a chave da API. Configurar e acessar a variável de ambiente é bastante fácil no DataCamp Workspace.
4. Crie o objeto cliente usando a chave da API. Usaremos esse cliente para geração de texto, capacidade de visão de acesso e streaming.
import os
import anthropic
client = anthropic.Anthropic(
api_key=os.environ["ANTHROPIC_API_KEY"],
)
API de conclusões do Claude 2
É importante observar que o modelo mais recente do Claude 3 não usa a API de conclusão. Se você tentar usar essa API para os modelos Claude 3, isso resultará em um erro, e você será aconselhado a usar a API Messages.
from IPython.display import Markdown, display
from anthropic import HUMAN_PROMPT, AI_PROMPT
completion = client.completions.create(
model="claude-2.1",
max_tokens_to_sample=300,
prompt=f"{HUMAN_PROMPT} What is Matthew effect? {AI_PROMPT}",
)
Markdown(completion.completion)
Se você quiser saber mais sobre a API do Claude Python mais barata, leia Introdução à API do Claude 2 e Anthropic.
API de mensagens do Claude 3
Para esclarecer, estaremos testando a API Anthropic Messages para o modelo Claude 3 Opus. Essa API é semelhante à API Completion, mas exige que um argumento messages
seja fornecido como uma lista de dicionários que contêm a função e o conteúdo.
Prompt = "Write the Go code for the simple data analysis."
message = client.messages.create(
model="claude-3-opus-20240229",
max_tokens=1024,
messages=[
{"role": "user", "content": Prompt}
]
)
Markdown(message.content[0].text)
O uso do IPython Markdown exibirá a resposta no formato Markdown. Isso significa que ele mostrará marcadores, blocos de código, cabeçalhos e links de forma limpa.
O código funciona perfeitamente, e a explicação é clara o suficiente para que qualquer pessoa entenda o que está acontecendo.
Adição de prompt do sistema
Podemos personalizar a resposta fornecendo o prompt do sistema. Pedimos a ele que convertesse todas as respostas para o sueco.
Prompt = "Write a report on climate change."
message = client.messages.create(
model="claude-3-opus-20240229",
max_tokens=1024,
system="Respond only in Svenska.",
messages=[
{"role": "user", "content": Prompt}
]
)
Markdown(message.content[0].text)
Ele gerou perfeitamente um relatório sobre mudanças climáticas em Svenska.
Claude 3 Bloco de visão
A API de mensagens inclui recursos de visão. Nesta seção, usaremos duas fotos do Pexels.com para gerar uma resposta.
- Imagem 1: Foto de Debayan Chakraborty: https://www.pexels.com/photo/indian-blue-jay-20433278/
- Imagem 2: Foto de Rachel Xiao: https://www.pexels.com/photo/brown-pendant-lamp-hanging-on-tree-near-river-772429/
Carregaremos as imagens usando o pacote httpx
e as converteremos em codificação base64.
import base64
import httpx
media_type = "image/jpeg"
url_1 = "https://images.pexels.com/photos/20433278/pexels-photo-20433278/free-photo-of-indian-blue-jay.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2"
image_encode_1 = base64.b64encode(httpx.get(url_1).content).decode("utf-8")
url_2 = "https://images.pexels.com/photos/772429/pexels-photo-772429.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2"
image_encode_2 = base64.b64encode(httpx.get(url_2).content).decode("utf-8")
Visão com uma única imagem
Para consultar as imagens, precisamos fornecer à API Claude 3 os dados da imagem, o tipo de codificação e o tipo de mídia. Tanto a imagem quanto o prompt fazem parte do dicionário de conteúdo do argumento da mensagem.
message = client.messages.create(
model="claude-3-opus-20240229",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": media_type,
"data": image_encode_1,
},
},
{
"type": "text",
"text": "Describe the image."
}
],
}
],
)
Markdown(message.content[0].text)
Visão com várias imagens
A adição de várias imagens pode ser complexa, mas se você seguir o padrão de código no exemplo de código, entenderá como funciona.
Precisamos apenas criar um texto que indique a Imagem 1 e a Imagem 2 e, em seguida, fazer perguntas sobre essas duas imagens.
message = client.messages.create(
model="claude-3-opus-20240229",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": "Image 1:"
},
{
"type": "image",
"source": {
"type": "base64",
"media_type": media_type,
"data": image_encode_1,
},
},
{
"type": "text",
"text": "Image 2:"
},
{
"type": "image",
"source": {
"type": "base64",
"media_type": media_type,
"data": image_encode_2,
},
},
{
"type": "text",
"text": "What do these images have in common?"
}
],
}
],
)
Markdown(message.content[0].text)
Perfeito. Ambas as imagens apresentam pássaros.
Claude 3 API de streaming
Streaming refere-se ao processo de geração de saídas de texto de forma contínua, em vez de esperar que toda a sequência seja gerada antes de retornar qualquer saída. Com essa técnica, a saída é gerada token por token, o que ajuda a minimizar a latência percebida.
Em vez de create
, usaremos a função stream para gerar a resposta de streaming.
Para exibir os resultados, usaremos a sintaxe with
e for loop
para imprimir o token assim que ele estiver disponível.
Prompt = "Write a Python code for typical data engineering workflow."
completion = client.messages.stream(
max_tokens=1024,
messages=[
{
"role": "user",
"content": Prompt,
}
],
model="claude-3-opus-20240229",
)
with completion as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
Claude 3 API assíncrona
As APIs síncronas executam solicitações sequencialmente e as bloqueiam até que uma resposta seja recebida antes de iniciar a próxima chamada. Por outro lado, as APIs assíncronas permitem várias solicitações simultâneas sem bloqueio, o que as torna mais eficientes e dimensionáveis.
Inicializaremos o cliente assíncrono usando o AsyncAnthropic
. Em seguida, criaremos a função main
usando a palavra-chave async
e executaremos a função usando a função asyncio.run
.
Observação: Se estiver usando async no Jupyter Notebook, tente usar await main()
, em vez de asyncio.run(main())
.
import asyncio
from anthropic import AsyncAnthropic
async_client = AsyncAnthropic(
api_key=os.environ["ANTHROPIC_API_KEY"],
)
Prompt = "Could you explain what MLOps is and suggest some of the best tools to use for it?"
async def main() -> None:
message = await async_client.messages.create(
max_tokens=1024,
messages=[
{
"role": "user",
"content": Prompt,
}
],
model="claude-3-opus-20240229",
)
display(Markdown(message.content[0].text))
asyncio.run(main())
Combinação de streaming com API assíncrona
Podemos combinar facilmente o streaming com métodos assíncronos usando a função stream do cliente assíncrono. Dessa forma, poderemos receber várias solicitações e transmitir as respostas, tornando o aplicativo de IA dimensionável e robusto.
async def main() -> None:
completion = async_client.messages.stream(
max_tokens=1024,
messages=[
{
"role": "user",
"content": Prompt,
}
],
model="claude-3-opus-20240229",
)
async with completion as stream:
async for text in stream.text_stream:
print(text, end="", flush=True)
asyncio.run(main())
Se estiver com dificuldades para executar o código, você poderá acessar um espaço de trabalho do DataCamp onde poderá visualizar e executar o código por conta própria.
Saiba como acessar os grandes modelos de linguagem da OpenAI seguindo o tutorial sobre Como usar o GPT-3.5 e o GPT-4 por meio da API da OpenAI em Python.
Considerações finais
A Anthropic é agora uma empresa pública e voltada para as empresas, semelhante à OpenAI. Ele fornece acesso aos seus modelos a qualquer pessoa e, em alguns casos, gratuitamente. Você pode acessar o LLM Claude 3 Opus de melhor desempenho por meio de uma assinatura Pro ou acesso à API. No entanto, o Anthropic não tem o ecossistema que o OpenAI tem, faltando modelos de incorporação, geração de imagens e vídeos, conversão de texto em fala e reconhecimento de fala. Ele também não possui as funções principais que a API OpenAI oferece.
Você pode descobrir o novo modelo de conversão de texto em vídeo da OpenAI que conquistou a mídia social lendo O que é o Sora da Open AI? Como funciona, casos de uso, alternativas e muito mais.
Neste tutorial, aprendemos sobre o modelo Claude 3, que está sendo muito badalado no mundo da IA. Nós o comparamos com o Claude 2.1 e o GPT-4 em várias tarefas. Por fim, usamos o Anthropic Python SDK para gerar texto, acessar recursos de visão, transmitir a resposta token por token e usar a API de forma assíncrona.
Se você é novo em IA e quer entender o funcionamento interno dos LLMs de última geração, considere fazer o curso de habilidades AI Fundamentals. Ele fornecerá a você conhecimentos práticos sobre tópicos populares de IA, como ChatGPT, modelos de linguagem grandes, IA generativa e muito mais.
Comece sua jornada de aprendizado de IA hoje mesmo!
blog
A OpenAI anuncia o GPT-4 Turbo com visão: O que sabemos até o momento
blog
Stability AI anuncia a difusão estável 3: Tudo o que sabemos até agora
tutorial
Tutorial da API de assistentes da OpenAI
tutorial
Guia para iniciantes no uso da API do ChatGPT
tutorial
Como criar aplicativos LLM com o tutorial LangChain
tutorial