Saltar al contenido principal
InicioTutorialesInteligencia Artificial (IA)

Primeros pasos con Claude 3 y la API de Claude 3

Conozca los modelos Claude 3, las pruebas de rendimiento detalladas y cómo acceder a ellas. Además, descubra la nueva API Python de Claude 3 para generar texto, acceder a funciones de visión y streaming.
may 2024

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

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

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:

Claude 3 Puntos de referencia

Fuente de la imagen

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.

Claude 3 Puntos de referencia de la visión

Fuente de la imagen

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.

Comparación de rechazos incorrectos Claude 3

Fuente de la imagen

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 3 Preguntas y respuestas

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.

Claude 3 frente a Claude 2.1 generando código

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.

Claude 3 vs Claude 2.1 generando código respuestas

Problema complejo

Prompt: ¿Cómo se compara una red neuronal con una capa y una entrada y salida con una regresión logística?

Claude 3 frente a Claude 2.1 Problemas complejos

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?

Claude 3 Opus vs ChatGPT 4 Preguntas y respuestas

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.

Claude 3 Opus vs ChatGPT 4 Generar código

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?

Claude 3 Opus vs ChatGPT 4 Problema complejo

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.

Clave API Claude 3

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.

Claude 3 Añadir variables de entorno

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)

Claude 3 Ejemplo

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.

Creación de código en markdown con Claude 3

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.

Claude 3 Salida (sueco)

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.

Bloque de visión Claude 3

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)

Claude 3 Resultados del bloque de visión

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.

Claude 3 Bloque de visión Resultados 2

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 Streaming Respuesta

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())

Claude 3 API asíncrona

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())

Claude 3 Combinación de Streaming con API Async

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.

Temas

Comience hoy mismo su viaje de aprendizaje de la IA

Track

AI Fundamentals

10hrs hr
Discover the fundamentals of AI, dive into models like ChatGPT, and decode generative AI secrets to navigate the dynamic AI landscape.
See DetailsRight Arrow
Start Course
Ver másRight Arrow
Relacionado

blog

Todo lo que sabemos sobre GPT-5

Predecir cómo podría ser la próxima evolución de la tecnología de IA de OpenAI y qué avances podría tener el modelo GPT-5.
Josep Ferrer's photo

Josep Ferrer

10 min

blog

Los 16 mejores marcos y bibliotecas de IA: Guía para principiantes

Explore los mejores marcos y bibliotecas de IA y sus fundamentos en esta guía definitiva para profesionales de datos noveles que comienzan su carrera profesional.
Yuliya Melnik's photo

Yuliya Melnik

15 min

blog

¿Qué es la tokenización?

La tokenización divide el texto en partes más pequeñas para facilitar el análisis mecánico y ayudar a las máquinas a comprender el lenguaje humano.
Abid Ali Awan's photo

Abid Ali Awan

9 min

tutorial

Guía introductoria para perfeccionar los LLM

La puesta a punto de grandes modelos lingüísticos (LLM) ha revolucionado el Procesamiento del Lenguaje Natural (PLN), ofreciendo capacidades sin precedentes en tareas como la traducción de idiomas, el análisis de sentimientos y la generación de textos. Este enfoque transformador aprovecha modelos preentrenados como GPT-2, mejorando su rendimiento en dominios específicos mediante el proceso de ajuste fino.
Josep Ferrer's photo

Josep Ferrer

12 min

tutorial

Cómo recortar una cadena en Python: Tres métodos diferentes

Aprenda los fundamentos del recorte de caracteres iniciales y finales de una cadena en Python.
Adel Nehme's photo

Adel Nehme

5 min

tutorial

Cómo utilizar la API de conversión de texto a voz de OpenAI

La API TTS de OpenAI es un punto final que permite a los usuarios interactuar con su modelo de inteligencia artificial TTS, que convierte el texto en lenguaje hablado con sonido natural.
Kurtis Pykes 's photo

Kurtis Pykes

12 min

See MoreSee More