cursus
Démarrer avec Claude 3 et l'API Claude 3
La guerre de l'IA se poursuit, avec Gemini et Gemma de Google qui ont récemment fait parler d'eux, mais aujourd'hui, Claude 3 d'Anthropic s'est imposé comme un concurrent puissant, surpassant GPT-4 et Gemini Ultra dans tous les benchmarks.
Dans ce tutoriel, nous explorerons les modèles Claude 3, les critères de performance et la manière d'y accéder. Nous comparerons également Claude 3 avec son prédécesseur, Claude 2.1, et ChatGPT. Enfin, nous découvrirons l'API Python de Claude 3 pour générer du texte, accéder aux capacités de vision, diffuser des réponses en continu et l'utiliser de manière asynchrone.
Qu'est-ce que Claude 3 ?
Anthropic a récemment introduit une nouvelle famille de modèles d'IA appelée Claude 3. Ces modèles constituent des références dans l'industrie pour diverses tâches cognitives. Les modèles Claude 3 comprennent trois modèles de pointe : Haïku, Sonnet et Opus. Ces modèles peuvent alimenter les discussions en temps réel avec les clients, les complétions automatiques et les tâches d'extraction de données.
Actuellement, Opus et Sonnet sont disponibles pour claude.ai et l'API Claude, tandis que le modèle plus petit Haiku sera bientôt disponible. Les modèles Claude 3 sont plus performants pour suivre des instructions complexes en plusieurs étapes, respecter la voix de la marque et les directives de réponse, et générer des résultats structurés dans des formats tels que JSON.
Par rapport aux précédents modèles de Claude, ces nouveaux modèles font preuve d'une meilleure compréhension du contexte, ce qui se traduit par une diminution des refus inutiles.
Ils offrent une fenêtre contextuelle de 200K mais peuvent traiter des entrées dépassant 1 million de jetons. Plus précisément, Claude 3 Opus a obtenu un rappel presque parfait, avec une précision de plus de 99 %.
Pour garantir la fiabilité des modèles, Anthropic dispose d'équipes dédiées au cursus et à l'atténuation d'un large spectre de risques.
Détails du modèle
Claude 3 propose trois modèles avec un équilibre entre l'intelligence, la vitesse et le coût pour diverses applications.
Claude 3 Opus
Opus est conçu pour des tâches complexes et de haute intelligence, excellant dans la résolution de problèmes ouverts et l'analyse stratégique, avec une fenêtre contextuelle importante et un coût plus élevé reflétant ses capacités avancées.
Le prix : Les jetons d'entrée à 15 dollars par million et les jetons de sortie à 75 dollars par million.
Claude 3 Sonnet
Sonnet offre un équilibre optimal entre performance et coût, idéal pour les charges de travail d'entreprise impliquant le traitement des données, l'optimisation des ventes et les déploiements d'IA évolutifs. Il est abordable et s'accompagne d'une grande fenêtre contextuelle.
Le prix : Les jetons d'entrée à 3 dollars par million et les jetons de sortie à 15 dollars par million.
Claude 3 Haiku
Haiku se distingue par sa rapidité et son efficacité, répondant aux besoins de réponse en temps réel du service client, de la modération de contenu et des tâches de réduction des coûts, ce qui en fait le modèle le plus abordable et le plus réactif de la suite.
Le prix : Les jetons d'entrée à 0,25 $ par million et les jetons de sortie à 1,25 $ par million.
Comment accéder à Claude 3
Il y a trois façons d'accéder aux modèles Claude 3.
Claude Chat
Si vous cherchez un moyen simple et gratuit d'essayer les modèles d'IA de Claude, vous pouvez vous inscrire à claude.ai/chats, qui est similaire à ChatGPT. L'interface de chat est interactive et facile à utiliser.
Actuellement, Claude 3 Sonnet est proposé gratuitement, mais pour accéder à Claude 3 Opus, vous devez souscrire un abonnement mensuel à Claude Pro.
Claude Chat
Établi
Pour accéder gratuitement à Claude 3 Opus, vous devez vous inscrire à l'API d'Anthropic : console.anthropic.com.
Suivez les étapes simples pour vous inscrire gratuitement et commencer à utiliser le modèle Opus en cliquant sur l'onglet Workbench et en sélectionnant le modèle "claude-3-opus-20240229".
Établi anthropique
API et SDK
Le troisième moyen d'accéder aux modèles Claude 3 est l'API. Antropic propose des kits de développement logiciel (SDK) pour Python et Typescript. Vous pouvez également accéder au modèle via l'API REST en utilisant la commande curl
dans le 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?"}
]
}'
Une plongée dans les critères de référence
Les modèles Claude 3 ont été comparés aux grands modèles linguistiques (LLM) les plus performants et ont montré des améliorations significatives dans différents tests.
Claude 3 Opus, en particulier, a surpassé GPT-4 et Gemini Ultra sur certains des critères d'évaluation les plus courants, notamment MMLU, GPQA et GSM8K. Il présente des niveaux de compréhension et de fluidité proches de ceux de l'homme dans des tâches complexes, ce qui en fait la première étape vers la réalisation de l'intelligence générale.
Découvrez le LLM à la pointe de l'OpenAI en lisant l'article de DataCamp sur Qu'est-ce que le GPT-4 et pourquoi est-ce important ? Découvrez également le rival du chatGPT de Google, Google Gemini, en consultant le site Qu'est-ce que Google Gemini ? Tout ce que vous devez savoir à ce sujet.
Les modèles de Claude 3 se sont améliorés en matière d'analyse et de prévision, de génération de codes et de réponses dans des langues autres que l'anglais, comme le montrent les données de référence ci-dessous :
Les capacités visuelles du modèle Claude 3 ont été considérablement améliorées, ce qui lui permet de comprendre des photos, des diagrammes et des graphiques complexes. Cette avancée profite aux entreprises dont les bases de connaissances se présentent sous différents formats, tels que les PDF, les organigrammes et les diapositives de présentation.
Les modèles Claude 3 ont également considérablement amélioré la réduction des refus inutiles et la précision par rapport aux générations précédentes de modèles.
Enfin, nous pouvons constater que les modèles de Claude 3 présentent une précision deux fois supérieure à celle de Claude 2.1 pour les questions ouvertes. En outre, les nouveaux modèles présentent des niveaux réduits de réponses incorrectes.
Claude 3 Opus vs Claude 2.1
Dans cette section, nous allons comparer les réponses de Claude 3 Opus et de Claude 2.1 sur trois tâches communes afin de comprendre leurs performances respectives.
Q&A
Prompt : Je parle sans bouche et j'entends sans oreilles. Je n'ai pas de corps, mais je m'anime avec le vent. Qu'est-ce que je suis ?
Claude 2.1 a refusé de répondre à la question, invoquant un manque de contenu. Cependant, l'utilisateur posait une énigme et Claude Opus a fourni la bonne réponse.
Générer du code
Prompt : Créez une application web FastAPI pour un modèle de classification Scikit-learn simple.
Le code de Claude 2.1 semble avoir fonctionné initialement, mais une erreur s'est produite après la saisie des valeurs de l'échantillon. Après enquête, nous avons découvert que le code n'était pas optimisé et que la fonction d'inférence comportait des erreurs.
En revanche, lorsque nous l'avons comparé avec l'Opus Claude 3, nous avons constaté que le code fonctionnait sans problème et fournissait des prédictions précises, comme le montre le graphique ci-dessous.
Un problème complexe
Prompt : Quelle est la comparaison entre un réseau neuronal à une couche, une entrée et une sortie, et une régression logistique ?
Les deux modèles ont fourni des réponses similaires, mais la réponse de Claude 3 Opus était plus détaillée et plus lisible.
Claude 3 Opus vs ChatGPT 4
Comparons Claude 3 Opus et ChatGPT 4 sur des tâches similaires à celles décrites ci-dessus pour montrer comment Claude 3 a un petit avantage sur le modèle GPT-4.
Q&A
Prompt : Combien de lunes Jupiter possède-t-elle ?
Les deux affirmations sont incorrectes. Au 5 février 2024, Jupiter compte 95 lunes. Cette invite est utile pour comprendre la période de coupure des ensembles de données. Il apparaît que Claude 3 Opus a été entraîné sur un jeu de données plus ancien, datant de 2021, tandis que ChatGPT a été mis à jour pour la dernière fois en avril 2023.
Générer du code
Prompt : Création d'une application web Gradio pour un modèle de classification Scikit-learn simple.
Le code généré par le modèle Claude 3 a fonctionné sans problème, mais le code généré par GPT-4 n'a pas fonctionné en raison d'erreurs multiples et d'hallucinations.
Un problème complexe
Prompt : Il y a quatre personnes dans un ascenseur et quatre étages dans un bâtiment. Quelle est la probabilité que chaque personne descende à un étage différent ?
Les deux modèles ont donné la bonne réponse à la fameuse question des probabilités. L'un a fourni le travail mathématique, l'autre a généré et exécuté le code Python pour afficher la même réponse. Dans ce cas, les deux sont gagnants.
SDK Python de Claude 3
Dans cette partie, nous allons découvrir le SDK Python de Claude 3 et comment nous pouvons l'utiliser pour générer des réponses personnalisées.
Pour commencer
1. Installez le paquetage Python anthropic
à l'aide de PIP.
pip install anthropic
2. Avant d'installer le paquet Python, nous devons nous rendre sur le site https://console.anthropic.com/dashboard et obtenir la clé API.
3. Définissez la variable d'environnement ANTHROPIC_API_KEY
et indiquez la valeur de la clé API. La configuration et l'accès à la variable d'environnement sont assez faciles dans DataLab, le carnet de données doté d'IA de DataCamp.
4. Créez l'objet client à l'aide de la clé API. Nous utiliserons ce client pour la génération de texte, la capacité de vision d'accès et la diffusion en continu.
import os
import anthropic
client = anthropic.Anthropic(
api_key=os.environ["ANTHROPIC_API_KEY"],
)
Claude 2 API sur les achèvements
Il est important de noter que le nouveau modèle Claude 3 n'utilise pas l'API d'achèvement. Si vous tentez d'utiliser cette API pour les modèles Claude 3, vous obtiendrez une erreur et il vous sera conseillé d'utiliser l'API Messages à la place.
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 vous souhaitez en savoir plus sur l'API Python de Claude, moins chère, lisez Prise en main de l'API Claude 2 et Anthropic.
Claude 3 API Messages
Pour clarifier, nous allons tester l'API Messages Anthropiques pour le modèle Claude 3 Opus. Cette API est similaire à l'API de complétion, mais elle requiert un argument messages
qui doit être fourni sous la forme d'une liste de dictionnaires contenant le rôle et le contenu.
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)
L'utilisation de IPython Markdown permet d'afficher la réponse au format Markdown. Cela signifie qu'il affichera les puces, les blocs de code, les titres et les liens de manière claire.
Le code fonctionne parfaitement et l'explication est suffisamment claire pour que tout le monde comprenne ce qui se passe.
Ajout d'une invite système
Nous pouvons personnaliser la réponse en fournissant l'invite du système. Nous lui avons demandé de convertir toutes les réponses en suédois.
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)
Il a parfaitement généré un rapport sur le changement climatique en Svenska.
Claude 3 Bloc Vision
L'API Messages comprend des fonctionnalités de vision. Dans cette section, nous utiliserons deux photos de Pexels.com pour générer une réponse.
- Image 1 : Photo de Debayan Chakraborty : https://www.pexels.com/photo/indian-blue-jay-20433278/
- Image 2 : Photo de Rachel Xiao : https://www.pexels.com/photo/brown-pendant-lamp-hanging-on-tree-near-river-772429/
Nous chargerons les images à l'aide du paquetage httpx
et les convertirons en encodage 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")
Vision avec une seule image
Pour obtenir des informations sur les images, nous devons fournir à Claude 3 API les données de l'image, le type d'encodage et le type de média. L'image et l'invite font partie du dictionnaire de contenu de l'argument message.
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)
Vision avec des images multiples
L'ajout de plusieurs images peut être complexe, mais si vous suivez le modèle de code dans l'exemple de code, vous comprendrez comment cela fonctionne.
Il suffit de créer un texte qui indique l'image 1 et l'image 2, puis de poser des questions sur ces deux images.
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)
Parfait. Les deux images représentent des oiseaux.
Claude 3 API de diffusion en continu
Le streaming fait référence au processus de génération de sorties de texte de manière continue, plutôt que d'attendre que la séquence entière soit générée avant de renvoyer une sortie. Avec cette technique, la sortie est générée jeton par jeton, ce qui permet de minimiser la latence perçue.
Au lieu de create
, nous utiliserons la fonction stream pour générer la réponse en continu.
Pour afficher les résultats, nous utiliserons la syntaxe with
et for loop
pour imprimer les jetons dès qu'ils sont 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 asynchrone
Les API synchrones exécutent les demandes de manière séquentielle et les bloquent jusqu'à ce qu'une réponse soit reçue avant de lancer l'appel suivant. En revanche, les API asynchrones permettent d'effectuer plusieurs requêtes simultanées sans blocage, ce qui les rend plus efficaces et plus évolutives.
Nous allons initialiser le client asynchrone à l'aide de la commande AsyncAnthropic
. Ensuite, nous créerons la fonction main
à l'aide du mot-clé async
et nous exécuterons la fonction à l'aide de la fonction asyncio.run
.
Note : Si vous utilisez async dans le Jupyter Notebook, essayez d'utiliser await main()
, au lieu 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())
Combiner le streaming et l'API asynchrone
Nous pouvons facilement combiner le streaming avec les méthodes asynchrones en utilisant la fonction stream du client asynchrone. De cette manière, nous serons en mesure de recevoir plusieurs requêtes et de diffuser les réponses, ce qui rendra l'application d'IA évolutive et robuste.
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 vous avez des difficultés à exécuter le code, vous pouvez accéder à ce classeur DataLab où vous pouvez visualiser et exécuter le code vous-même (après en avoir fait une copie).
Apprenez à accéder aux grands modèles de langage d'OpenAI en suivant le tutoriel sur l' utilisation de GPT-3.5 et GPT-4 via l'API OpenAI en Python.
Réflexions finales
Anthropic est désormais une société publique et orientée vers les entreprises, à l'instar d'OpenAI. Elle donne accès à ses modèles à tout le monde, et dans certains cas gratuitement. Vous pouvez accéder à l'Opus Claude 3 LLM le plus performant par le biais d'un abonnement Pro ou d'un accès API. Cependant, Anthropic ne dispose pas de l'écosystème d'OpenAI, car il lui manque les modèles d'intégration, la génération d'images et de vidéos, la synthèse vocale et la reconnaissance vocale. Elle ne dispose pas non plus des fonctions de base offertes par l'API OpenAI.
Vous pouvez découvrir le nouveau modèle de conversion de texte en vidéo d'OpenAI qui a pris d'assaut les médias sociaux en consultant le site Qu'est-ce que Sora d'Open AI ? Comment ça marche, les cas d'utilisation, les alternatives et plus encore.
Dans ce tutoriel, nous avons découvert le modèle Claude 3, qui fait l'objet d'une grande attention dans le monde de l'IA. Nous l'avons comparé à Claude 2.1 et à GPT-4 dans diverses tâches. Enfin, nous avons utilisé le SDK Python d'Anthropic pour générer du texte, accéder aux capacités de vision, streamer la réponse token par token, et utiliser l'API de manière asynchrone.
Si vous êtes novice en matière d'IA et que vous souhaitez comprendre les rouages des LLM de pointe, vous devriez envisager de suivre le cursus de compétences "AI Fundamentals". Il vous fournira des connaissances pratiques sur des sujets d'IA populaires tels que le ChatGPT, les grands modèles de langage, l'IA générative, et bien plus encore.
En tant que data scientist certifié, je suis passionné par l'utilisation des technologies de pointe pour créer des applications innovantes d'apprentissage automatique. Avec une solide expérience en reconnaissance vocale, en analyse de données et en reporting, en MLOps, en IA conversationnelle et en NLP, j'ai affiné mes compétences dans le développement de systèmes intelligents qui peuvent avoir un impact réel. En plus de mon expertise technique, je suis également un communicateur compétent, doué pour distiller des concepts complexes dans un langage clair et concis. En conséquence, je suis devenu un blogueur recherché dans le domaine de la science des données, partageant mes idées et mes expériences avec une communauté grandissante de professionnels des données. Actuellement, je me concentre sur la création et l'édition de contenu, en travaillant avec de grands modèles linguistiques pour développer un contenu puissant et attrayant qui peut aider les entreprises et les particuliers à tirer le meilleur parti de leurs données.
Commencez dès aujourd'hui votre voyage d'apprentissage de l'IA !