Lernpfad
Der KI-Wettlauf geht in die nächste Runde: Googles Gemini und Gemma sorgten kürzlich für Aufsehen, doch nun tritt Anthropics Claude 3 als starker Herausforderer auf den Plan und übertrifft GPT-4 und Gemini Ultra in allen Benchmarks.
In diesem Tutorial werfen wir einen Blick auf die Claude-3-Modelle, Performance-Benchmarks und die verschiedenen Zugriffsmöglichkeiten. Außerdem vergleichen wir Claude 3 mit seinem Vorgänger Claude 2.1 und mit ChatGPT. Zum Schluss lernst du die Python-API von Claude 3 kennen: für Textgenerierung, Vision-Funktionen, Streaming-Antworten und asynchrone Nutzung.
Was ist Claude 3?
Anthropic hat kürzlich eine neue Modellfamilie namens Claude 3 vorgestellt. Diese Modelle setzen branchenweit Maßstäbe bei diversen kognitiven Aufgaben. Zur Familie gehören drei Spitzenmodelle: Haiku, Sonnet und Opus. Sie eignen sich für Echtzeit-Kundendialoge, Autovervollständigung und Datenextraktion.
Aktuell sind Opus und Sonnet auf claude.ai und über die Claude-API verfügbar, während das kleinere Haiku bald folgt. Die Claude-3-Modelle befolgen komplexe Anweisungen über mehrere Schritte hinweg besser, halten Markenstimme und Antwortleitlinien ein und erzeugen strukturierten Output in Formaten wie JSON.
Im Vergleich zu früheren Claude-Versionen verfügen die neuen Modelle über ein besseres Kontextverständnis, was zu weniger unnötigen Ablehnungen führt.
Sie bieten ein Kontextfenster von 200.000 Tokens, können aber Eingaben von über 1 Million Tokens verarbeiten. Speziell Claude 3 Opus erreichte nahezu perfekte Trefferquoten von über 99%.
Um die Vertrauenswürdigkeit der Modelle sicherzustellen, betreibt Anthropic spezialisierte Teams, die ein breites Spektrum an Risiken überwachen und mindern.
Modelldetails
Claude 3 bietet drei Modelle, die Intelligenz, Geschwindigkeit und Kosten für unterschiedliche Einsatzzwecke ausbalancieren.
Claude 3 Opus
Opus ist für komplexe, hochintelligente Aufgaben ausgelegt und überzeugt bei offenen Problemlösungen und strategischer Analyse. Das große Kontextfenster und der höhere Preis spiegeln die erweiterten Fähigkeiten wider.
Preis: 15 $ pro Million Input-Tokens und 75 $ pro Million Output-Tokens.
Claude 3 Sonnet
Sonnet bietet ein ideales Preis-Leistungs-Verhältnis, perfekt für Unternehmens-Workloads wie Datenverarbeitung, Vertriebsoptimierung und skalierbare KI-Deployments. Es ist preiswert und verfügt über ein großes Kontextfenster.
Preis: 3 $ pro Million Input-Tokens und 15 $ pro Million Output-Tokens.
Claude 3 Haiku
Haiku punktet mit Geschwindigkeit und Effizienz für Echtzeitanforderungen in Kundenservice, Inhaltsmoderation und kostensensitiven Aufgaben und ist damit das günstigste und reaktionsschnellste Modell der Suite.
Preis: 0,25 $ pro Million Input-Tokens und 1,25 $ pro Million Output-Tokens.
So greifst du auf Claude 3 zu
Es gibt drei Möglichkeiten, die Claude-3-Modelle zu nutzen.
Claude Chat
Wenn du die Claude-KI-Modelle einfach und kostenlos ausprobieren möchtest, kannst du dich bei claude.ai/chats anmelden – ähnlich wie bei ChatGPT. Die Chat-Oberfläche ist interaktiv und leicht zu bedienen.
Derzeit ist Claude 3 Sonnet kostenlos verfügbar. Für den Zugriff auf Claude 3 Opus brauchst du jedoch ein monatliches Claude Pro-Abo.

Claude Chat
Workbench
Um Claude 3 Opus kostenlos zu nutzen, registriere dich für die Anthropic-API: console.anthropic.com.
Folge den einfachen Schritten zur kostenlosen Anmeldung und starte mit dem Opus-Modell über den Tab Workbench, indem du das Modell „claude-3-opus-20240229“ auswählst.

Anthropic Workbench
API und SDK
Die dritte Möglichkeit ist der Zugriff über die API. Anthropic bietet Client Software Development Kits (SDKs) für Python und TypeScript. Alternativ erreichst du das Modell über die REST-API mit dem curl-Befehl im 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?"}
]
}'
Ein Blick auf die Benchmarks
Die Claude-3-Modelle wurden gegen die leistungsstärksten großen Sprachmodelle (LLMs) getestet und zeigen deutliche Verbesserungen in verschiedenen Prüfungen.
Vor allem Claude 3 Opus übertraf GPT-4 und Gemini Ultra in einigen der gebräuchlichsten Evaluationsbenchmarks, darunter MMLU, GPQA und GSM8K. Es zeigt bei komplexen Aufgaben ein Verständnis und eine Flüssigkeit nahe am menschlichen Niveau – ein Schritt in Richtung allgemeiner Intelligenz.
Entdecke das State-of-the-Art-LLM von OpenAI im DataCamp-Artikel What is GPT-4 and Why Does it Matter?. Erfahre außerdem mehr über Googles ChatGPT-Konkurrenten Google Gemini im Beitrag What is Google Gemini? Everything You Need To Know About It.
Claude-3-Modelle sind besser geworden bei Analyse und Prognosen, Codegenerierung und Antworten in Nicht-Englisch – das zeigen die folgenden Benchmark-Daten:

Die visuellen Fähigkeiten der Claude-3-Modelle haben sich stark verbessert. Sie verstehen komplexe Fotos, Diagramme und Charts. Davon profitieren Unternehmen mit Wissensbasen in verschiedenen Formaten wie PDFs, Flussdiagrammen und Präsentationsfolien.

Zudem haben die Claude-3-Modelle im Vergleich zu früheren Generationen unnötige Ablehnungen reduziert und bei der Genauigkeit zugelegt.

Schließlich sehen wir, dass die Claude-3-Modelle bei offenen Fragen die Genauigkeit im Vergleich zu Claude 2.1 etwa verdoppeln. Gleichzeitig sinkt die Zahl falscher Antworten.
Claude 3 Opus vs. Claude 2.1
In diesem Abschnitt vergleichen wir die Antworten von Claude 3 Opus und Claude 2.1 bei drei typischen Aufgaben, um ihre Leistung einzuordnen.
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 lehnte die Antwort mit dem Hinweis auf fehlenden Inhalt ab. Tatsächlich handelte es sich um ein Rätsel – und Claude Opus gab die richtige Lösung.
Code generieren
Prompt: Create a FastAPI web application for a simple Scikit-learn classification model.
Der Code von Claude 2.1 lief zunächst, führte jedoch nach Eingabe der Beispielwerte zu einem Fehler. Bei der Prüfung zeigte sich: Der Code ist nicht optimiert und die Inferenzfunktion enthält Fehler.
Im Vergleich dazu lief der von Claude 3 Opus erzeugte Code reibungslos und lieferte korrekte Vorhersagen, wie unten zu sehen.

Komplexes Problem
Prompt: How does a neural network with one layer and one input and output compare to a logistic regression?
Beide Modelle gaben ähnliche Antworten, aber die Erklärung von Claude 3 Opus war ausführlicher und leichter nachvollziehbar.
Claude 3 Opus vs. ChatGPT 4
Nun vergleichen wir Claude 3 Opus und ChatGPT 4 anhand ähnlicher Aufgaben, um zu zeigen, wo Claude 3 dem GPT-4-Modell leicht überlegen ist.
Q&A
Prompt: How many moons does Jupiter have?

Beide Antworten sind falsch. Stand 5. Februar 2024 hat Jupiter 95 Monde. Dieser Prompt hilft, die Datenbasis abzuschätzen: Offenbar wurde Claude 3 Opus mit einem älteren Datensatz (2021) trainiert, während ChatGPT zuletzt im April 2023 aktualisiert wurde.
Code generieren
Prompt: Creating a Gradio web application for a simple Scikit-learn classification model.

Der von Claude 3 generierte Code lief einwandfrei, während der von GPT-4 erzeugte Code aufgrund mehrerer Fehler und Halluzinationen nicht lauffähig war.
Komplexes Problem
Prompt: There are four people in an elevator and four floors in a building. What’s the probability that each person gets off on a different floor?

Beide Modelle kamen bei dieser bekannten Wahrscheinlichkeitsaufgabe zur richtigen Lösung. Das eine zeigte die mathematische Herleitung, das andere generierte und führte Python-Code aus – hier liegen beide gleichauf.
Claude 3 Python SDK
In diesem Teil lernen wir das Claude 3 Python SDK kennen und wie wir damit individuelle Antworten erzeugen.
Los geht's
1. Installiere das Python-Paket anthropic mit PIP.
pip install anthropic
2. Bevor wir das Python-Paket nutzen, benötigen wir unter https://console.anthropic.com/dashboard einen API-Schlüssel.

3. Setze die Umgebungsvariable ANTHROPIC_API_KEY auf deinen Schlüssel. Das Einrichten und Nutzen von Umgebungsvariablen ist in DataLab, DataCamps KI-unterstütztem Datennotizbuch, besonders einfach.

4. Erzeuge das Client-Objekt mit dem API-Schlüssel. Diesen Client verwenden wir für Textgenerierung, Vision-Funktionen und Streaming.
import os
import anthropic
client = anthropic.Anthropic(
api_key=os.environ["ANTHROPIC_API_KEY"],
)
Claude 2 Completions API
Wichtig: Das neuere Claude 3 verwendet nicht mehr die Completions API. Wenn du diese API mit Claude 3 nutzt, erhältst du einen Fehler und den Hinweis, stattdessen die Messages API zu verwenden.
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)

Wenn du mehr über die günstigere Claude-Python-API erfahren willst, lies Getting Started with the Claude 2 and Anthropic API.
Claude 3 Messages API
Zur Einordnung: Wir testen die Anthropic Messages API mit dem Modell Claude 3 Opus. Diese API ähnelt der Completions API, erwartet jedoch ein messages-Argument als Liste von Dictionaries mit Rolle und Inhalt.
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)
Mit IPython Markdown wird die Antwort als Markdown dargestellt – also sauber mit Aufzählungen, Codeblöcken, Überschriften und Links.

Der Code läuft einwandfrei, und die Erklärung ist verständlich.
System-Prompt hinzufügen
Wir können die Antwort per System-Prompt anpassen. Hier haben wir verlangt, alle Antworten ins Schwedische zu übersetzen.
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)
Das Modell hat einen einwandfreien Bericht auf Schwedisch erzeugt.

Claude 3 Vision Block
Die Messages API umfasst Vision-Funktionen. In diesem Abschnitt verwenden wir zwei Fotos von Pexels.com, um eine Antwort zu erzeugen.
- Bild 1: Foto von Debayan Chakraborty: https://www.pexels.com/photo/indian-blue-jay-20433278/
- Bild 2: Foto von Rachel Xiao: https://www.pexels.com/photo/brown-pendant-lamp-hanging-on-tree-near-river-772429/

Wir laden die Bilder mit dem Paket httpx und kodieren sie 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 mit einem einzelnen Bild
Für Bildabfragen übergeben wir der Claude-3-API die Bilddaten, den Kodierungstyp und den Medientyp. Bild und Prompt sind Teil des Content-Dictionary für das Messages-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 mit mehreren Bildern
Mehrere Bilder einzubinden wirkt zunächst komplex, aber mit dem Muster im Codebeispiel wird das Prinzip klar.
Wir erzeugen einfach Text, der auf Bild 1 und Bild 2 verweist, und stellen dann Fragen zu beiden.
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)
Perfekt. Beide Bilder zeigen Vögel.

Claude 3 Streaming API
Streaming bedeutet, dass Textausgaben fortlaufend generiert werden, statt erst nach Abschluss der gesamten Sequenz. Die Ausgabe entsteht Token für Token – das reduziert die wahrgenommene Latenz.
Statt create nutzen wir die Stream-Funktion, um eine Streaming-Antwort zu erzeugen.
Zur Anzeige verwenden wir die with-Syntax und eine for-Schleife, um Tokens sofort beim Eintreffen auszugeben.
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 APIs führen Anfragen nacheinander aus und blockieren, bis eine Antwort vorliegt. Asynchrone APIs erlauben mehrere parallele Anfragen ohne Blockierung – effizienter und skalierbarer.
Wir initialisieren den Async-Client mit AsyncAnthropic, definieren dann die Funktion main mit dem Schlüsselwort async und starten sie mit asyncio.run.
Hinweis: Wenn du async im Jupyter Notebook verwendest, nutze await main() statt 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 mit der Async API kombinieren
Wir können Streaming einfach mit asynchronen Methoden kombinieren, indem wir die Stream-Funktion des Async-Clients nutzen. So lassen sich mehrere Anfragen parallel empfangen und die Antworten streamen – die KI-Anwendung wird skalierbar und robust.
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())

Wenn du Probleme beim Ausführen des Codes hast, kannst du dieses DataLab-Workbook öffnen. Dort kannst du den Code ansehen und selbst ausführen (nach dem Kopieren).
Lerne, wie du auf OpenAIs große Sprachmodelle zugreifst, mit dem Tutorial Using GPT-3.5 and GPT-4 via the OpenAI API in Python.
Fazit
Anthropic ist inzwischen ähnlich wie OpenAI sowohl für die Öffentlichkeit als auch für Unternehmen positioniert. Der Zugang zu den Modellen ist für alle möglich, teils kostenlos. Das leistungsstärkste LLM, Claude 3 Opus, kannst du über ein Pro-Abo oder per API nutzen. Allerdings verfügt Anthropic nicht über das Ökosystem von OpenAI: Es fehlen Embedding-Modelle, Bild- und Videogenerierung, Text-to-Speech und Spracherkennung – ebenso einige Kernfunktionen der OpenAI-API.
OpenAIs neues Text-zu-Video-Modell, das die sozialen Medien im Sturm erobert, lernst du hier kennen: What is Open AI's Sora? How it Works, Use Cases, Alternatives & More.
In diesem Tutorial haben wir das viel diskutierte Claude 3 kennengelernt, es mit Claude 2.1 und GPT-4 in verschiedenen Aufgaben verglichen und das Anthropic Python SDK genutzt, um Texte zu generieren, Vision-Funktionen anzusprechen, Antworten Token für Token zu streamen und die API asynchron zu verwenden.
Wenn du neu in der KI bist und die inneren Abläufe moderner LLMs verstehen willst, solltest du den Skill Track AI Fundamentals besuchen. Er vermittelt dir praxisnahes Wissen zu populären KI-Themen wie ChatGPT, großen Sprachmodellen, generativer KI und vieles mehr.
Als zertifizierter Data Scientist ist es meine Leidenschaft, modernste Technologien zu nutzen, um innovative Machine Learning-Anwendungen zu entwickeln. Mit meinem fundierten Hintergrund in den Bereichen Spracherkennung, Datenanalyse und Reporting, MLOps, KI und NLP habe ich meine Fähigkeiten bei der Entwicklung intelligenter Systeme verfeinert, die wirklich etwas bewirken können. Neben meinem technischen Fachwissen bin ich auch ein geschickter Kommunikator mit dem Talent, komplexe Konzepte in eine klare und prägnante Sprache zu fassen. Das hat dazu geführt, dass ich ein gefragter Blogger zum Thema Datenwissenschaft geworden bin und meine Erkenntnisse und Erfahrungen mit einer wachsenden Gemeinschaft von Datenexperten teile. Zurzeit konzentriere ich mich auf die Erstellung und Bearbeitung von Inhalten und arbeite mit großen Sprachmodellen, um aussagekräftige und ansprechende Inhalte zu entwickeln, die sowohl Unternehmen als auch Privatpersonen helfen, das Beste aus ihren Daten zu machen.



