Track
Primeros pasos con Claude 3 y la API de Claude 3
La guerra de la IA sigue su curso, con Gemini y Gemma de Google causando sensación recientemente, pero ahora Claude 3 de Anthropic ha surgido como un potente contendiente, superando a GPT-4 y Gemini Ultra en todas las pruebas comparativas.
En este tutorial, exploraremos los modelos Claude 3, los puntos de referencia de rendimiento y cómo acceder a ellos. También compararemos Claude 3 con su predecesor, Claude 2.1, y con ChatGPT. Por último, conoceremos la API Python de Claude 3 para generar texto, acceder a las capacidades de visión, transmitir respuestas y utilizarla de forma asíncrona.
¿Qué es Claude 3?
Anthropic ha presentado recientemente una nueva familia de modelos de IA denominada Claude 3. Estos modelos marcan las pautas del sector en diversas tareas cognitivas. Los modelos Claude 3 incluyen tres modelos de última generación: Haiku, Soneto y Opus. Estos modelos pueden alimentar chats de clientes en tiempo real, autocompletar y tareas de extracción de datos.
Actualmente, Opus y Sonnet están disponibles para claude.ai y la API Claude, mientras que el modelo más pequeño Haiku se lanzará próximamente. Los modelos Claude 3 son mejores a la hora de seguir instrucciones complejas de varios pasos, respetar las directrices de voz y respuesta de la marca y generar resultados estructurados en formatos como JSON.
En comparación con los modelos Claude anteriores, estos nuevos modelos muestran una mejor comprensión del contexto, lo que se traduce en menos rechazos innecesarios.
Ofrecen una ventana contextual de 200 000, pero pueden procesar entradas superiores a 1 millón de fichas. En concreto, Claude 3 Opus logró un recuerdo casi perfecto, superando el 99% de precisión.
Para garantizar la fiabilidad de los modelos, Anthropic cuenta con equipos dedicados a rastrear y mitigar un amplio espectro de riesgos.
Detalles del modelo
Claude 3 ofrece tres modelos con un equilibrio entre inteligencia, velocidad y coste para diversas aplicaciones.
Claude 3 Opus
Opus está diseñado para tareas complejas y de alta inteligencia, destacando en la resolución de problemas abiertos y el análisis estratégico, con una ventana de contexto significativa y un coste más elevado que refleja sus capacidades avanzadas.
Precio: Fichas de entrada a 15 dólares por millón y fichas de salida a 75 dólares por millón.
Soneto Claude 3
Sonnet ofrece un equilibrio óptimo entre rendimiento y coste, ideal para cargas de trabajo empresariales que implican procesamiento de datos, optimización de ventas e implementaciones de IA escalables. Es asequible y viene con una gran ventana contextual.
Precio: Fichas de entrada a 3 $ por millón y fichas de salida a 15 $ por millón.
Claude 3 Haiku
Haiku destaca por su rapidez y eficacia, ya que satisface las necesidades de respuesta en tiempo real en tareas de atención al cliente, moderación de contenidos y ahorro de costes, lo que lo convierte en el modelo más asequible y con mayor capacidad de respuesta de la suite.
Precio: Fichas de entrada a 0,25 dólares por millón y fichas de salida a 1,25 dólares por millón.
Cómo acceder a la Claude 3
Hay tres formas de acceder a los modelos Claude 3.
Claude Chat
Si buscas una forma sencilla y gratuita de probar los modelos de Claude AI, puedes inscribirte en claude.ai/chats, que es similar a ChatGPT. La interfaz del chat es interactiva y fácil de usar.
Actualmente, ofrecen Claude 3 Sonnet de forma gratuita, pero para acceder a Claude 3 Opus, tendrás que adquirir una suscripción mensual Claude Pro.
Claude Chat
Banco de trabajo
Para acceder gratuitamente a Claude 3 Opus, tienes que registrarte en la API de Anthropic: console.anthropic.com.
Sigue los sencillos pasos para registrarte gratuitamente y empezar a utilizar el modelo Opus haciendo clic en la pestaña Workbench y seleccionando el modelo "claude-3-opus-20240229".
Banco de trabajo antrópico
API y SDK
La tercera forma de acceder a los modelos Claude 3 es a través de la API. Antropic ofrece kits de desarrollo de software (SDK) cliente para Python y Typescript. También puede acceder al modelo a través de la API REST utilizando el comando curl
en el 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?"}
]
}'
Una inmersión en los puntos de referencia
Los modelos Claude 3 se han comparado con los grandes modelos lingüísticos (LLM) de mayor rendimiento y han mostrado mejoras significativas en diversas pruebas.
Claude 3 Opus, en particular, ha superado a GPT-4 y Gemini Ultra en algunas de las pruebas de evaluación más habituales, como MMLU, GPQA y GSM8K. Muestra niveles de comprensión y fluidez casi humanos en tareas complejas, lo que la convierte en el primer paso hacia el logro de la inteligencia general.
Descubra el LLM de última generación de OpenAI leyendo el artículo de DataCamp sobre ¿Qué es el GPT-4 y por qué es importante? Además, infórmate sobre el rival de Google ChatGPT, Google Gemini, leyendo ¿Qué es Google Gemini? Todo lo que debe saber al respecto.
Los modelos Claude 3 han mejorado en el análisis y la previsión, la generación de código y la generación de respuestas en idiomas distintos del inglés, como se observa en los datos de referencia que figuran a continuación:
Las capacidades visuales del modelo Claude 3 han mejorado notablemente, permitiéndole comprender fotos, diagramas y gráficos complejos. Este avance beneficia a las empresas con bases de conocimientos en diversos formatos, como PDF, diagramas de flujo y diapositivas de presentaciones.
Los modelos Claude 3 también han mejorado significativamente en cuanto a reducción de rechazos innecesarios y precisión en comparación con las generaciones anteriores de modelos.
Por último, podemos ver que los modelos Claude 3 presentan una precisión dos veces superior en las preguntas abiertas en comparación con Claude 2.1. Además, los nuevos modelos muestran niveles reducidos de respuestas incorrectas.
Claude 3 Opus vs Claude 2.1
En esta sección, compararemos las respuestas de Claude 3 Opus y Claude 2.1 en tres tareas comunes para comprender sus respectivos rendimientos.
PREGUNTAS Y RESPUESTAS
Prompt: Hablo sin boca y oigo sin oídos. No tengo cuerpo, pero revivo con el viento. ¿Qué soy yo?
Claude 2.1 se negó a responder a la pregunta alegando falta de contenido. Sin embargo, el usuario estaba preguntando una adivinanza, y Claude Opus dio la respuesta correcta.
Generación de código
Prompt: Crear una aplicación web FastAPI para un sencillo modelo de clasificación Scikit-learn.
El código Claude 2.1 parecía haber funcionado inicialmente, pero dio un error después de introducir los valores de muestra. Tras investigarlo, descubrimos que el código no está optimizado y que la función de inferencia tiene algunos errores.
Por otra parte, cuando lo comparamos con el Claude 3 Opus, comprobamos que el código funcionaba sin problemas y proporcionaba predicciones precisas, como se muestra a continuación.
Problema complejo
Prompt: ¿Cómo se compara una red neuronal con una capa y una entrada y salida con una regresión logística?
Ambos modelos proporcionaron respuestas similares, pero la de Claude 3 Opus fue más detallada y fácil de leer.
Claude 3 Opus vs ChatGPT 4
Comparemos Claude 3 Opus y ChatGPT 4 en tareas similares a las anteriores para mostrar cómo Claude 3 tiene una pequeña ventaja sobre el modelo GPT-4.
PREGUNTAS Y RESPUESTAS
Prompt: ¿Cuántas lunas tiene Júpiter?
Ambas afirmaciones son incorrectas. A 5 de febrero de 2024, Júpiter tiene 95 lunas. Esta indicación es útil para comprender el periodo de corte de los conjuntos de datos. Parece que Claude 3 Opus se entrenó con un conjunto de datos antiguo de 2021, mientras que ChatGPT se actualizó por última vez en abril de 2023.
Generación de código
Prompt: Creación de una aplicación web Gradio para un modelo de clasificación sencillo de Scikit-learn.
El código generado por el modelo Claude 3 funcionó sin problemas, pero el código generado por GPT-4 no pudo ejecutarse debido a múltiples errores y alucinaciones.
Problema complejo
Prompt: Hay cuatro personas en un ascensor y cuatro plantas en un edificio. ¿Cuál es la probabilidad de que cada persona se baje en un piso diferente?
Ambos modelos dieron la respuesta correcta a la famosa pregunta sobre la probabilidad. Uno proporcionaba el trabajo matemático y el otro generaba y ejecutaba código Python para mostrar la misma respuesta. En este caso, ambos ganan.
SDK Python Claude 3
En esta parte, aprenderemos sobre Claude 3 Python SDK y cómo podemos utilizarlo para generar respuestas personalizadas.
Primeros pasos
1. Instale el paquete anthropic
Python utilizando PIP.
pip install anthropic
2. Antes de instalar el paquete Python, tenemos que ir a https://console.anthropic.com/dashboard y obtener la clave API.
3. Establezca la variable de entorno ANTHROPIC_API_KEY
y proporcione el valor con la clave API. La configuración y el acceso a la variable de entorno son bastante sencillos en DataLab, el cuaderno de datos con IA de DataCamp.
4. Crea el objeto cliente utilizando la clave API. Utilizaremos este cliente para la generación de texto, la capacidad de visión de acceso y el streaming.
import os
import anthropic
client = anthropic.Anthropic(
api_key=os.environ["ANTHROPIC_API_KEY"],
)
API de finalizaciones Claude 2
Es importante señalar que el nuevo modelo Claude 3 no utiliza la API de finalización. Si intenta utilizar esta API para los modelos Claude 3, se producirá un error y se le recomendará que utilice en su lugar la API de mensajes.
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)
Si quieres saber más sobre la API Python de Claude, más barata, lee Introducción a la API Claude 2 y Anthropic.
API de mensajes Claude 3
Para aclarar, vamos a probar la API de Mensajes Antrópicos para el modelo Claude 3 Opus. Esta API es similar a la API de finalización, pero requiere que se proporcione un argumento messages
como una lista de diccionarios que contengan el rol y el contenido.
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)
El uso de IPython Markdown mostrará la respuesta en formato Markdown. Es decir, mostrará viñetas, bloques de código, encabezados y enlaces de forma limpia.
El código funciona perfectamente, y la explicación es lo suficientemente clara como para que cualquiera entienda lo que está pasando.
Añadir aviso del sistema
Podemos personalizar la respuesta proporcionando la indicación del sistema. Le hemos pedido que convierta todas las respuestas al 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)
Ha generado perfectamente un informe sobre el cambio climático en Svenska.
Bloque de visión Claude 3
La API de mensajes incluye funciones de visión. En esta sección, utilizaremos dos fotos de Pexels.com para generar una respuesta.
- Imagen 1: Foto de Debayan Chakraborty: https://www.pexels.com/photo/indian-blue-jay-20433278/
- Imagen 2: Foto de Rachel Xiao: https://www.pexels.com/photo/brown-pendant-lamp-hanging-on-tree-near-river-772429/
Cargaremos las imágenes utilizando el paquete httpx
y las convertiremos a codificación 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")
Visión con una sola imagen
Para consultar las imágenes, debemos proporcionar a la API Claude 3 los datos de la imagen, el tipo de codificación y el tipo de medio. Tanto la imagen como el mensaje forman parte del diccionario de contenido del argumento del mensaje.
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)
Visión con múltiples imágenes
Añadir múltiples imágenes puede ser complejo, pero si sigues el patrón de código del ejemplo, entenderás cómo funciona.
Simplemente tenemos que crear un texto que señale la Imagen 1 y la Imagen 2, y luego hacer preguntas sobre estas dos imágenes.
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)
Perfecto. Ambas imágenes están protagonizadas por aves.
API de streaming Claude 3
El streaming se refiere al proceso de generar salidas de texto de forma continua, en lugar de esperar a que se genere toda la secuencia antes de devolver cualquier salida. Con esta técnica, la salida se genera token a token, lo que ayuda a minimizar la latencia percibida.
En lugar de create
, utilizaremos la función stream para generar la respuesta streaming.
Para mostrar los resultados, utilizaremos la sintaxis with
y for loop
para imprimir los token en cuanto estén disponibles.
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 asíncrona
Las API síncronas ejecutan las peticiones secuencialmente y las bloquean hasta recibir una respuesta antes de iniciar la siguiente llamada. Por otro lado, las API asíncronas permiten múltiples peticiones concurrentes sin bloquearse, lo que las hace más eficientes y escalables.
Inicializaremos el cliente asíncrono utilizando AsyncAnthropic
. A continuación, crearemos la función main
utilizando la palabra clave async
y ejecutaremos la función utilizando la función asyncio.run
.
Nota: Si utiliza async en Jupyter Notebook, pruebe a utilizar await main()
, en lugar 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())
Combinación de streaming con API asíncrona
Podemos combinar fácilmente el streaming con métodos asíncronos utilizando la función stream del cliente asíncrono. De esta forma, podremos recibir múltiples peticiones y transmitir las respuestas, haciendo que la aplicación de IA sea escalable y robusta.
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())
Si tiene dificultades para ejecutar el código, puede acceder a este libro de trabajo de DataLab donde podrá ver y ejecutar el código usted mismo (después de hacer una copia).
Aprenda a acceder a los grandes modelos lingüísticos de OpenAI siguiendo el tutorial Uso de GPT-3.5 y GPT-4 a través de la API de OpenAI en Python.
Reflexiones finales
Anthropic es ahora una empresa pública y empresarial, similar a OpenAI. Proporciona acceso a sus modelos a cualquiera, y en algunos casos de forma gratuita. Puede acceder a los mejores resultados de LLM Claude 3 Opus mediante una suscripción Pro o un acceso API. Sin embargo, Anthropic no cuenta con el ecosistema que tiene OpenAI, ya que carece de modelos de incrustación, generación de imágenes y vídeos, conversión de texto a voz y reconocimiento de voz. También carece de las funciones básicas que ofrece la API OpenAI.
Puedes descubrir el nuevo modelo de conversión de texto a vídeo de OpenAI que ha arrasado en las redes sociales leyendo ¿Qué es Sora de Open AI? Cómo funciona, casos de uso, alternativas y más.
En este tutorial, aprendimos sobre el modelo Claude 3, que está recibiendo mucho bombo en el mundo de la IA. Lo comparamos con Claude 2.1 y GPT-4 en varias tareas. Por último, utilizamos el SDK Python de Anthropic para generar texto, acceder a las capacidades de visión, transmitir la respuesta token a token y utilizar la API de forma asíncrona.
Si es nuevo en el campo de la IA y desea comprender el funcionamiento interno de los LLM más avanzados, debería plantearse cursar el itinerario de conocimientos Fundamentos de la IA. Le proporcionará conocimientos prácticos sobre temas populares de IA como ChatGPT, grandes modelos de lenguaje, IA generativa y mucho más.
Comience hoy mismo su viaje de aprendizaje de la IA
blog
Cinco proyectos que puedes crear con modelos de IA generativa (con ejemplos)
tutorial
Ajuste fino de GPT-3 mediante la API OpenAI y Python
tutorial
Uso de GPT-3.5 y GPT-4 mediante la API OpenAI en Python
tutorial
Guía para principiantes de la API de OpenAI: Tutorial práctico y prácticas recomendadas
tutorial
Clasificación de textos en Python
tutorial