Leerpad
De AI-wedloop is nog in volle gang, met Google’s Gemini en Gemma die recent voor opschudding zorgden, maar nu is Anthropic’s Claude 3 opgestaan als een sterke uitdager, die GPT-4 en Gemini Ultra op alle benchmarks voorbijstreeft.
In deze tutorial verkennen we de Claude 3-modellen, prestatiebenchmarks en hoe je er toegang toe krijgt. We vergelijken Claude 3 ook met zijn voorganger, Claude 2.1, en met ChatGPT. Tot slot bekijken we de Python-API van Claude 3 voor het genereren van tekst, het benutten van vision-mogelijkheden, het streamen van antwoorden en asynchrone aansturing.
Wat is Claude 3?
Anthropic heeft onlangs een nieuwe familie AI-modellen geïntroduceerd: Claude 3. Deze modellen zetten nieuwe maatstaven in uiteenlopende cognitieve taken. De Claude 3-reeks bestaat uit drie toonaangevende modellen: Haiku, Sonnet en Opus. Ze kunnen real-time klantchats, auto-aanvullen en data-extractietaken aandrijven.
Opus en Sonnet zijn momenteel beschikbaar via claude.ai en de Claude API, terwijl het kleinere model Haiku binnenkort verschijnt. De Claude 3-modellen zijn beter in het volgen van complexe, meerstapsinstructies, het vasthouden aan merkrichtlijnen en antwoordstijlen, en het genereren van gestructureerde output in formaten zoals JSON.
Vergeleken met eerdere Claude-modellen tonen deze nieuwe modellen verbeterd contextbegrip, wat leidt tot minder onnodige weigeringen.
Ze bieden een contextvenster van 200K, maar kunnen invoer verwerken van meer dan 1 miljoen tokens. Specifiek behaalde Claude 3 Opus bijna perfecte recall, met een nauwkeurigheid van meer dan 99%.
Om de betrouwbaarheid van de modellen te waarborgen, heeft Anthropic speciale teams die een breed spectrum aan risico’s monitoren en beperken.
Modeldetails
Claude 3 biedt drie modellen met een balans tussen intelligentie, snelheid en kosten voor verschillende toepassingen.
Claude 3 Opus
Opus is ontworpen voor complexe taken met hoge intelligentiebehoefte, blinkt uit in open-einde-probleemoplossing en strategische analyses, heeft een groot contextvenster en een hogere prijs die de geavanceerde capaciteiten weerspiegelt.
Prijs: Invoertokens $15 per miljoen en uitvoertokens $75 per miljoen.
Claude 3 Sonnet
Sonnet biedt een optimale balans tussen prestaties en kosten, ideaal voor enterprise-workloads met dataverwerking, salesoptimalisatie en schaalbare AI-implementaties. Het is betaalbaar en heeft een groot contextvenster.
Prijs: Invoertokens $3 per miljoen en uitvoertokens $15 per miljoen.
Claude 3 Haiku
Haiku valt op door zijn snelheid en efficiëntie, gericht op realtime responsbehoeften in klantenservice, contentmoderatie en kostenbesparende taken, waardoor het het meest betaalbare en reactieve model in de reeks is.
Prijs: Invoertokens $0,25 per miljoen en uitvoertokens $1,25 per miljoen.
Hoe krijg je toegang tot Claude 3
Er zijn drie manieren om toegang te krijgen tot de Claude 3-modellen.
Claude Chat
Zoek je een eenvoudige en gratis manier om de Claude AI-modellen uit te proberen? Meld je dan aan op claude.ai/chats, vergelijkbaar met ChatGPT. De chatinterface is interactief en gebruiksvriendelijk.
Op dit moment bieden ze Claude 3 Sonnet gratis aan, maar voor toegang tot Claude 3 Opus heb je een maandabonnement op Claude Pro nodig.

Claude Chat
Workbench
Om gratis toegang te krijgen tot Claude 3 Opus, moet je je aanmelden voor de Anthropic API: console.anthropic.com.
Volg de eenvoudige stappen om je gratis aan te melden en start met het Opus-model door op het tabblad Workbench te klikken en het model “claude-3-opus-20240229” te selecteren.

Anthropic Workbench
API en SDK
De derde manier om de Claude 3-modellen te gebruiken is via de API. Antropic biedt client Software Development Kits (SDK’s) voor Python en Typescript. Je kunt het model ook benaderen via de REST API door in de terminal het commando curl te gebruiken.
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?"}
]
}'
Een duik in de benchmarks
De Claude 3-modellen zijn vergeleken met de best presterende Large Language Models (LLM’s) en laten aanzienlijke verbeteringen zien in verschillende tests.
Met name Claude 3 Opus presteerde beter dan GPT-4 en Gemini Ultra op enkele van de meest gangbare evaluatiebenchmarks, waaronder MMLU, GPQA en GSM8K. Het vertoont bijna menselijk niveau van begrip en vloeiendheid bij complexe taken, wat het een eerste stap richting algemene intelligentie maakt.
Ontdek het toonaangevende LLM van OpenAI in DataCamp’s artikel What is GPT-4 and Why Does it Matter? Leer ook meer over Google’s ChatGPT-rivaal, Google Gemini, in What is Google Gemini? Everything You Need To Know About It.
Claude 3-modellen zijn beter geworden in analyse en voorspelling, het genereren van code en het produceren van antwoorden in niet-Engelse talen, zoals te zien is in de onderstaande benchmarkgegevens:

De visuele capaciteiten van het Claude 3-model zijn aanzienlijk verbeterd, waardoor het complexe foto’s, diagrammen en grafieken kan begrijpen. Deze vooruitgang is nuttig voor bedrijven met kennisbanken in verschillende formaten, zoals pdf’s, stroomschema’s en presentatieslides.

De Claude 3-modellen zijn ook aanzienlijk verbeterd in het terugdringen van onnodige weigeringen en in nauwkeurigheid vergeleken met eerdere generaties modellen.

Tot slot zien we dat de Claude 3-modellen een tweevoudige verbetering laten zien in nauwkeurigheid op open vragen ten opzichte van Claude 2.1. Daarnaast geven de nieuwe modellen minder foutieve antwoorden.
Claude 3 Opus vs Claude 2.1
In deze sectie vergelijken we de antwoorden van Claude 3 Opus en Claude 2.1 op drie veelvoorkomende taken om hun prestaties te begrijpen.
Q&A
Prompt: I speak without a mouth and hear without ears. I have no body, but I come alive with wind. What am I?
Claude 2.1 weigerde de vraag te beantwoorden vanwege een gebrek aan context. De gebruiker stelde echter een raadsel, en Claude Opus gaf het juiste antwoord.
Code genereren
Prompt: Maak een FastAPI-webapplicatie voor een eenvoudig Scikit-learn-classificatiemodel.
De code van Claude 2.1 leek aanvankelijk te werken, maar gaf een fout nadat de voorbeeldwaarden waren ingevoerd. Bij nader onderzoek ontdekten we dat de code niet geoptimaliseerd is en dat de inference-functie enkele fouten bevat.
Aan de andere kant zagen we bij vergelijking met Claude 3 Opus dat de code soepel draaide en nauwkeurige voorspellingen gaf, zoals hieronder te zien is.

Complex probleem
Prompt: Hoe verhoudt een neuraal netwerk met één laag en één input en output zich tot een logistische regressie?
Beide modellen gaven vergelijkbare antwoorden, maar de reactie van Claude 3 Opus was uitgebreider en beter leesbaar.
Claude 3 Opus vs ChatGPT 4
Laten we Claude 3 Opus en ChatGPT 4 vergelijken op soortgelijke taken als hierboven om te laten zien hoe Claude 3 een kleine voorsprong heeft op het GPT-4-model.
Q&A
Prompt: How many moons does Jupiter have?

Beide uitspraken zijn onjuist. Op 5 februari 2024 had Jupiter 95 manen. Deze prompt is nuttig om de cutoff-periode voor datasets te begrijpen. Het lijkt erop dat Claude 3 Opus is getraind op een oudere dataset uit 2021, terwijl ChatGPT laatst is bijgewerkt in april 2023.
Code genereren
Prompt: Een Gradio-webapplicatie maken voor een eenvoudig Scikit-learn-classificatiemodel.

De door het Claude 3-model gegenereerde code draaide zonder problemen, maar de door GPT-4 gegenereerde code faalde vanwege meerdere fouten en hallucinaties.
Complex probleem
Prompt: Er zitten vier mensen in een lift en er zijn vier verdiepingen in een gebouw. Wat is de kans dat elke persoon op een andere verdieping uitstapt?

Beide modellen kwamen met het juiste antwoord op de bekende kansvraag. De één gaf de wiskundige uitwerking, de ander genereerde en draaide Python-code om hetzelfde antwoord te tonen. In dit geval winnen ze allebei.
Claude 3 Python SDK
In dit deel bekijken we de Claude 3 Python SDK en hoe we die kunnen gebruiken om aangepaste reacties te genereren.
Aan de slag
1. Installeer het Python-pakket anthropic met PIP.
pip install anthropic
2. Voordat we het Python-pakket installeren, moeten we naar https://console.anthropic.com/dashboard gaan en de API-sleutel ophalen.

3. Stel de omgevingsvariabele ANTHROPIC_API_KEY in en geef de waarde van de API-sleutel op. Het instellen en benaderen van de omgevingsvariabele is heel eenvoudig in DataLab, DataCamp’s AI-aangedreven datanotebook.

4. Maak het clientobject met de API-sleutel. We gebruiken deze client voor tekstopwekking, toegang tot vision en streaming.
import os
import anthropic
client = anthropic.Anthropic(
api_key=os.environ["ANTHROPIC_API_KEY"],
)
Claude 2 Completions API
Belangrijk om te weten: het nieuwere Claude 3-model gebruikt de Completion API niet. Als je deze API probeert te gebruiken voor de Claude 3-modellen, resulteert dat in een fout en krijg je het advies om in plaats daarvan de Messages API te gebruiken.
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)

Wil je meer weten over de goedkopere Claude Python API? Lees dan Getting Started with the Claude 2 and Anthropic API.
Claude 3 Messages API
Ter verduidelijking: we testen de Anthropic Messages API voor het Claude 3 Opus-model. Deze API lijkt op de Completion API, maar vereist een argument messages als lijst met dictionaries met de rol en de content.
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)
Met IPython Markdown wordt de reactie in Markdown-formaat weergegeven. Dat wil zeggen dat opsommingen, codeblokken, koppen en links netjes getoond worden.

De code werkt perfect en de uitleg is helder genoeg zodat iedereen begrijpt wat er gebeurt.
Systemprompt toevoegen
We kunnen de reactie aanpassen door een systemprompt mee te geven. We hebben gevraagd om alle antwoorden naar het Zweeds te vertalen.
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)
Er is een uitstekend rapport over klimaatverandering in het Zweeds gegenereerd.

Claude 3 Vision-blok
De Messages API bevat vision-mogelijkheden. In dit onderdeel gebruiken we twee foto’s van Pexels.com om een reactie te genereren.
- Afbeelding 1: Foto door Debayan Chakraborty: https://www.pexels.com/photo/indian-blue-jay-20433278/
- Afbeelding 2: Foto door Rachel Xiao: https://www.pexels.com/photo/brown-pendant-lamp-hanging-on-tree-near-river-772429/

We laden de afbeeldingen met het pakket httpx en zetten ze om naar base64-encoding.
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 met één afbeelding
Om vragen te stellen over de afbeeldingen, moeten we de Claude 3 API voorzien van afbeeldingsdata, het encodingtype en het mediatype. Zowel de afbeelding als de prompt zijn onderdeel van de content-dictionary voor het message-argument.
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 met meerdere afbeeldingen
Meerdere afbeeldingen toevoegen kan complex lijken, maar als je het patroon in het codevoorbeeld volgt, wordt duidelijk hoe het werkt.
We hoeven alleen tekst toe te voegen die verwijst naar Afbeelding 1 en Afbeelding 2, en vervolgens vragen over deze twee afbeeldingen te stellen.
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)
Perfect. Beide afbeeldingen tonen vogels.

Claude 3 Streaming API
Streaming verwijst naar het genereren van tekstoutput op een doorlopende manier, in plaats van te wachten tot de hele sequentie is gegenereerd voordat er iets wordt teruggegeven. Bij deze techniek wordt de output token voor token gegenereerd, wat de waargenomen latency helpt te minimaliseren.
In plaats van create gebruiken we de stream-functie om de streamingrespons te genereren.
Om de resultaten te tonen, gebruiken we de with-syntaxis en een for-loop om de tokens af te drukken zodra ze beschikbaar zijn.
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 Async API
Synchrone API’s voeren verzoeken sequentieel uit en blokkeren tot een reactie is ontvangen voordat de volgende call begint. Asynchrone API’s daarentegen staan meerdere gelijktijdige verzoeken toe zonder te blokkeren, waardoor ze efficiënter en schaalbaarder zijn.
We initialiseren de async-client met AsyncAnthropic. Vervolgens maken we de functie main met het sleutelwoord async en draaien we de functie met asyncio.run.
Opmerking: Als je async gebruikt in Jupyter Notebook, probeer dan await main() in plaats van 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())

Streaming combineren met Async API
We kunnen streaming eenvoudig combineren met async-methoden door de stream-functie van de async-client te gebruiken. Zo kunnen we meerdere verzoeken ontvangen en de reacties streamen, waardoor de AI-applicatie schaalbaar en robuust wordt.
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())

Lukt het niet om de code te draaien? Je kunt deze DataLab-werkmap openen om de code zelf te bekijken en uit te voeren (na het maken van een kopie).
Leer hoe je toegang krijgt tot de grote taalmodellen van OpenAI met de tutorial Using GPT-3.5 and GPT-4 via the OpenAI API in Python.
Tot slot
Anthropic is nu, net als OpenAI, een bedrijf dat zich richt op zowel het publiek als ondernemingen. Het biedt iedereen toegang tot zijn modellen, in sommige gevallen gratis. Je kunt het best presterende LLM, Claude 3 Opus, gebruiken via een Pro-abonnement of via API-toegang. Anthropic heeft echter niet het ecosysteem dat OpenAI heeft: het mist embedding-modellen, beeld- en videogeneratie, tekst-naar-spraak en spraakherkenning. Ook ontbreken kernfuncties die de OpenAI API wel biedt.
Ontdek OpenAI’s nieuwe tekst-naar-video-model dat de sociale media stormenderhand veroverde in What is Open AI's Sora? How it Works, Use Cases, Alternatives & More.
In deze tutorial maakten we kennis met het Claude 3-model, dat veel aandacht krijgt in de AI-wereld. We vergeleken het met Claude 2.1 en GPT-4 op uiteenlopende taken. Tot slot gebruikten we de Anthropic Python SDK om tekst te genereren, vision-mogelijkheden te benutten, het antwoord token voor token te streamen en de API asynchroon te gebruiken.
Ben je nieuw in AI en wil je de werking van toonaangevende LLM’s begrijpen? Overweeg dan de AI Fundamentals-skill track. Die geeft je praktische kennis over populaire AI-onderwerpen zoals ChatGPT, large language models, generative AI en nog veel meer.
Als gecertificeerd data scientist haal ik met passie het maximale uit de nieuwste technologie om innovatieve machinelearning-toepassingen te bouwen. Met een sterke achtergrond in spraakherkenning, data-analyse en -rapportage, MLOps, conversationele AI en NLP heb ik mijn vaardigheden aangescherpt in het ontwikkelen van intelligente systemen die echt impact maken. Naast mijn technische expertise ben ik ook een sterke communicator met een talent om complexe concepten terug te brengen tot heldere, beknopte taal. Daardoor ben ik uitgegroeid tot een veelgelezen blogger over data science, waar ik mijn inzichten en ervaringen deel met een groeiende community van data-professionals. Op dit moment richt ik me op contentcreatie en redactie, waarbij ik met large language models werk aan krachtige en aansprekende content die zowel bedrijven als individuen helpt het beste uit hun data te halen.




