Artificial Intelligence (AI)

Getting Started With Claude 3 Opus That Just Destroyed GPT-4 and Gemini

Written by smirow

Erste Schritte mit Claude 3 Opus, das gerade GPT-4 und Gemini zerstört hatErste Schritte mit Claude 3 Opus, das gerade GPT-4 und Gemini zerstört hat
Bild vom Autor

Anthropic hat kürzlich eine neue Serie von KI-Modellen auf den Markt gebracht, die in Benchmark-Tests GPT-4 und Gemini übertrafen. Mit dem rasanten Wachstum und der Entwicklung der KI-Branche machen Claude-3-Modelle als nächste große Sache im Bereich der großen Sprachmodelle (LLM) erhebliche Fortschritte.

In diesem Blogbeitrag werden wir die Leistungskriterien der drei Modelle von Claude untersuchen. Wir erfahren außerdem mehr über die neue Python-API, die die einfache, asynchrone und Streaming-Antwortgenerierung sowie ihre erweiterten Vision-Funktionen unterstützt.

Claude 3 stellt einen bedeutenden Fortschritt auf dem Gebiet der KI-Technologie dar. Es übertrifft modernste Sprachmodelle bei verschiedenen Benchmarks, darunter MMLU, GPQA und GSM8K, und demonstriert ein nahezu menschliches Verständnis und Können bei komplexen Aufgaben.

Die Claude 3-Modelle sind in drei Varianten erhältlich: Haiku, Sonett und Opusjeder mit seinen einzigartigen Fähigkeiten und Stärken.

  1. Haiku ist das schnellste und kostengünstigste Modell, das in der Lage ist, informationsreiche Forschungsdokumente in weniger als drei Sekunden zu lesen und zu verarbeiten.
  2. Sonett ist 2x schneller als Claude 2 und 2.1 und eignet sich hervorragend für Aufgaben, die schnelle Reaktionen erfordern, wie z. B. Wissensabruf oder Vertriebsautomatisierung.
  3. Opus bietet ähnliche Geschwindigkeiten wie Claude 2 und 2.1, jedoch mit viel höherer Intelligenz.

Laut der folgenden Tabelle übertraf Claude 3 Opus GPT-4 und Gemini Ultra in allen LLM-Benchmarks und ist damit der neue Spitzenreiter in der KI-Welt.

Erste Schritte mit Claude 3 Opus, das gerade GPT-4 und Gemini zerstört hatErste Schritte mit Claude 3 Opus, das gerade GPT-4 und Gemini zerstört hat
Gemälde von Claude 3

Eine der wesentlichen Verbesserungen der Claude 3-Modelle ist ihre starke Sehfähigkeit. Sie können eine Vielzahl visueller Formate verarbeiten, darunter Fotos, Tabellen, Diagramme und technische Diagramme.

Erste Schritte mit Claude 3 Opus, das gerade GPT-4 und Gemini zerstört hatErste Schritte mit Claude 3 Opus, das gerade GPT-4 und Gemini zerstört hat
Gemälde von Claude 3

Sie können mit der Verwendung der neuesten Vorlage beginnen, indem Sie zu https://www.anthropic.com/claude gehen und ein neues Konto erstellen. Im Vergleich zum OpenAI-Spielplatz ist es ziemlich einfach.

Erste Schritte mit Claude 3 Opus, das gerade GPT-4 und Gemini zerstört hatErste Schritte mit Claude 3 Opus, das gerade GPT-4 und Gemini zerstört hat

  1. Bevor wir das Python-Paket installieren, müssen wir zu https://console.anthropic.com/dashboard gehen und den API-Schlüssel abrufen.
    Erste Schritte mit Claude 3 Opus, das gerade GPT-4 und Gemini zerstört hatErste Schritte mit Claude 3 Opus, das gerade GPT-4 und Gemini zerstört hat
  2. Anstatt den API-Schlüssel direkt zum Erstellen des Clientobjekts bereitzustellen, können Sie die Umgebungsvariable „ANTHROPIC_API_KEY“ festlegen und als Schlüssel bereitstellen.
  3. Installieren Sie das Python-Paket „anthropic“ mit PIP.
  1. Erstellen Sie das Kundenobjekt mithilfe des API-Schlüssels. Wir werden den Client für die Textgenerierung, die Zugriffssichtfähigkeit und das Streaming verwenden.
import os
import anthropic
from IPython.display import Markdown, display

client = anthropic.Anthropic(
    api_key=os.environ["ANTHROPIC_API_KEY"],
)

Probieren wir die alte Python-API aus, um zu testen, ob sie noch funktioniert oder nicht. Wir stellen der Vervollständigungs-API den Modellnamen, die maximale Tokenlänge und die Eingabeaufforderung zur Verfügung.

from anthropic import HUMAN_PROMPT, AI_PROMPT

completion = client.completions.create(
    model="claude-3-opus-20240229",
    max_tokens_to_sample=300,
    prompt=f"{HUMAN_PROMPT} How do I cook a original pasta?{AI_PROMPT}",
)
Markdown(completion.completion)

Der Fehler zeigt, dass wir die alte API nicht für das Modell „claude-3-opus-20240229“ verwenden können. Wir müssen stattdessen die Nachrichten-API verwenden.

Erste Schritte mit Claude 3 Opus, das gerade GPT-4 und Gemini zerstört hatErste Schritte mit Claude 3 Opus, das gerade GPT-4 und Gemini zerstört hat

Lassen Sie uns die Nachrichten-API verwenden, um die Antwort zu generieren. Anstelle einer Eingabeaufforderung müssen wir dem Argument „messages“ eine Liste von Wörterbüchern bereitstellen, die die Rolle und den Inhalt enthalten.

Prompt = "Write the Julia 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)

Bei Verwendung von IPython Markdown wird die Antwort im Markdown-Format angezeigt. Das bedeutet, dass Aufzählungspunkte, Codeblöcke, Titel und Links klar angezeigt werden.

Erste Schritte mit Claude 3 Opus, das gerade GPT-4 und Gemini zerstört hatErste Schritte mit Claude 3 Opus, das gerade GPT-4 und Gemini zerstört hat

Wir können auch eine Systemaufforderung bereitstellen, um Ihre Antwort zu personalisieren. In unserem Fall bitten wir Claude 3 Opus, in Urdu-Sprache zu antworten.

client = anthropic.Anthropic(
    api_key=os.environ["ANTHROPIC_API_KEY"],
)

Prompt = "Write a blog about neural networks."

message = client.messages.create(
    model="claude-3-opus-20240229",
    max_tokens=1024,
    system="Respond only in Urdu.",
    messages=[
        {"role": "user", "content": Prompt}
    ]
)

Markdown(message.content[0].text)

Das Opus-Modell ist ziemlich gut. Ich meine, ich kann es sehr klar verstehen.

Erste Schritte mit Claude 3 Opus, das gerade GPT-4 und Gemini zerstört hatErste Schritte mit Claude 3 Opus, das gerade GPT-4 und Gemini zerstört hat

Synchrone APIs führen API-Anfragen nacheinander aus und blockieren, bis eine Antwort empfangen wird, bevor der nächste Aufruf aufgerufen wird. Asynchrone APIs hingegen ermöglichen mehrere gleichzeitige Anfragen ohne Blockierung, wodurch sie effizienter und skalierbarer werden.

  1. Wir müssen einen Async Anthropic-Client erstellen.
  2. Erstellen Sie die Hauptfunktion mit Async.
  3. Generieren Sie die Antwort mithilfe der Warte-Syntax.
  4. Führen Sie die Hauptfunktion mit der Warte-Syntax aus.
import asyncio
from anthropic import AsyncAnthropic

client = AsyncAnthropic(
    api_key=os.environ["ANTHROPIC_API_KEY"],
)


async def main() -> None:

    Prompt = "What is LLMOps and how do I start learning it?"
       
    message = await client.messages.create(
        max_tokens=1024,
        messages=[
            {
                "role": "user",
                "content": Prompt,
            }
        ],
        model="claude-3-opus-20240229",
    )
    display(Markdown(message.content[0].text))


await main()

Erste Schritte mit Claude 3 Opus, das gerade GPT-4 und Gemini zerstört hatErste Schritte mit Claude 3 Opus, das gerade GPT-4 und Gemini zerstört hat

Notiz: Wenn Sie async in Jupyter Notebook verwenden, versuchen Sie, wait main() anstelle von asyncio.run(main()) zu verwenden.

Streaming ist ein Ansatz, der es ermöglicht, die Ausgabe eines Sprachmodells zu verarbeiten, sobald sie verfügbar ist, ohne auf die vollständige Antwort warten zu müssen. Diese Methode minimiert die wahrgenommene Latenz, indem das Ausgabe-Token für jedes Token und nicht alle auf einmal zurückgegeben wird.

Anstelle von „messages.create“ verwenden wir „messages.stream“ zum Streamen von Antworten und verwenden eine Schleife, um mehrere Wörter der Antwort anzuzeigen, sobald sie verfügbar sind.

from anthropic import Anthropic

client = anthropic.Anthropic(
    api_key=os.environ["ANTHROPIC_API_KEY"],
)


Prompt = "Write a mermaid code for typical MLOps 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)

Wie wir sehen, generieren wir recht schnell eine Antwort.

Erste Schritte mit Claude 3 Opus, das gerade GPT-4 und Gemini zerstört hatErste Schritte mit Claude 3 Opus, das gerade GPT-4 und Gemini zerstört hat

Wir können auch eine asynchrone Funktion mit Streaming verwenden. Man muss nur kreativ sein und sie kombinieren.

import asyncio
from anthropic import AsyncAnthropic

client = AsyncAnthropic()

async def main() -> None:
   
    completion = 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)

await main()

Erste Schritte mit Claude 3 Opus, das gerade GPT-4 und Gemini zerstört hatErste Schritte mit Claude 3 Opus, das gerade GPT-4 und Gemini zerstört hat

Claude 3 Vision hat sich im Laufe der Zeit verbessert. Um die Antwort zu erhalten, stellen Sie einfach das Base64-Image für die Nachrichten-API bereit.

In diesem Beispiel verwenden wir Fotos von Tulpen (Bild 1) und Flamingos (Bild 2) von Pexel.com, um die Antwort zu generieren, indem wir Fragen zum Bild stellen.

Erste Schritte mit Claude 3 Opus, das gerade GPT-4 und Gemini zerstört hatErste Schritte mit Claude 3 Opus, das gerade GPT-4 und Gemini zerstört hat

Wir werden die „httpx“-Bibliothek verwenden, um die beiden Bilder von pexel.com abzurufen und sie in die Base64-Kodierung zu konvertieren.

import anthropic
import base64
import httpx

client = anthropic.Anthropic()

media_type = "image/jpeg"

img_url_1 = "https://images.pexels.com/photos/20230232/pexels-photo-20230232/free-photo-of-tulips-in-a-vase-against-a-green-background.jpeg"

image_data_1 = base64.b64encode(httpx.get(img_url_1).content).decode("utf-8")

img_url_2 = "https://images.pexels.com/photos/20255306/pexels-photo-20255306/free-photo-of-flamingos-in-the-water.jpeg"

image_data_2 = base64.b64encode(httpx.get(img_url_2).content).decode("utf-8")

Wir stellen der Nachrichten-API base64-codierte Bilder in Bildinhaltsblöcken zur Verfügung. Bitte befolgen Sie das unten angegebene Codierungsmuster, um die Antwort erfolgreich zu generieren.

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_data_1,
                    },
                },
                {
                    "type": "text",
                    "text": "Write a poem using this image."
                }
            ],
        }
    ],
)
Markdown(message.content[0].text)

Wir haben ein wunderschönes Gedicht über Tulpen.

Erste Schritte mit Claude 3 Opus, das gerade GPT-4 und Gemini zerstört hatErste Schritte mit Claude 3 Opus, das gerade GPT-4 und Gemini zerstört hat

Versuchen wir, mehrere Bilder in dieselbe Claude 3 Messages API zu laden.

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_data_1,
                    },
                },
                {
                    "type": "text",
                    "text": "Image 2:"
                },
                {
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": media_type,
                        "data": image_data_2,
                    },
                },
                {
                    "type": "text",
                    "text": "Write a short story using these images."
                }
            ],
        }
    ],
)
Markdown(message.content[0].text)

Wir haben eine Kurzgeschichte über einen Garten voller Tulpen und Flamingos.

Erste Schritte mit Claude 3 Opus, das gerade GPT-4 und Gemini zerstört hatErste Schritte mit Claude 3 Opus, das gerade GPT-4 und Gemini zerstört hat

Wenn Sie Probleme beim Ausführen des Codes haben, finden Sie hier einen Deepnote-Arbeitsbereich, in dem Sie den Code anzeigen und selbst ausführen können.

Ich halte den Claude 3 Opus für ein vielversprechendes Modell, auch wenn er möglicherweise nicht so schnell ist wie der GPT-4 und der Gemini. Ich denke, dass zahlende Benutzer möglicherweise bessere Geschwindigkeiten haben.

In diesem Tutorial haben wir etwas über die neue Modellreihe von Anthropic namens Claude 3 erfahren, ihre Benchmark untersucht und ihre Sehfähigkeiten getestet. Wir haben auch gelernt, wie man einfache, asynchrone Streaming-Antworten generiert. Es ist noch zu früh, um zu sagen, ob dies das beste LLM auf dem Markt ist, aber wenn wir uns die offiziellen Benchmarks ansehen, haben wir einen neuen König auf dem KI-Thron.

Abid Ali Awan (@1abidaliawan) ist ein zertifizierter professioneller Datenwissenschaftler, der es liebt, Modelle für maschinelles Lernen zu erstellen. Derzeit konzentriert er sich auf die Erstellung von Inhalten und das Schreiben technischer Blogs zu maschinellem Lernen und Datenwissenschaftstechnologien. Abid verfügt über einen Master-Abschluss in Technologiemanagement und einen Bachelor-Abschluss in Telekommunikationstechnik. Seine Vision ist es, ein KI-Produkt mithilfe eines grafischen neuronalen Netzwerks für Schüler mit psychischen Erkrankungen zu entwickeln.

About the author

smirow

Leave a Comment