Zephyrnet-logo

Aan de slag met Claude 3 Opus dat zojuist GPT-4 en Gemini heeft vernietigd – KDnuggets

Datum:

Aan de slag met Claude 3 Opus dat zojuist GPT-4 en Gemini heeft vernietigd
Afbeelding door auteur 

Anthropic heeft onlangs een nieuwe reeks AI-modellen gelanceerd die zowel GPT-4 als Gemini beter hebben gepresteerd in benchmarktests. Nu de AI-industrie snel groeit en evolueert, maken Claude 3-modellen aanzienlijke vooruitgang als het volgende grote ding in Large Language Models (LLM's).

In deze blogpost onderzoeken we de prestatiebenchmarks van de 3 modellen van Claude. We zullen ook leren over de nieuwe Python API die het genereren van eenvoudige, asynchrone en stream-reacties ondersteunt, samen met de verbeterde vision-mogelijkheden.

Claude 3 is een belangrijke sprong voorwaarts op het gebied van AI-technologie. Het presteert beter dan de modernste taalmodellen op verschillende evaluatiebenchmarks, waaronder MMLU, GPQA en GSM8K, en demonstreert bijna menselijke niveaus van begrip en vloeiendheid bij complexe taken.

De Claude 3-modellen zijn er in drie varianten: Haiku, Sonnet en Opus, elk met zijn unieke mogelijkheden en sterke punten.

  1. Haiku is het snelste en meest kosteneffectieve model, dat in staat is om informatierijke onderzoekspapers in minder dan drie seconden te lezen en te verwerken.
  2. Sonnet is 2x sneller dan Claude 2 en 2.1 en blinkt uit in taken die snelle reacties vereisen, zoals het ophalen van kennis of verkoopautomatisering.
  3. Opus levert vergelijkbare snelheden als Claude 2 en 2.1, maar met een veel hoger niveau van intelligentie.

Volgens de onderstaande tabel presteerde Claude 3 Opus beter dan GPT-4 en Gemini Ultra op alle LLM-benchmarks, waardoor het de nieuwe leider in de AI-wereld is.

Aan de slag met Claude 3 Opus dat zojuist GPT-4 en Gemini heeft vernietigd
Tafel van Claudia 3 

Een van de belangrijke verbeteringen aan de Claude 3-modellen zijn hun sterke zichtmogelijkheden. Ze kunnen verschillende visuele formaten verwerken, waaronder foto's, grafieken, grafieken en technische diagrammen.

Aan de slag met Claude 3 Opus dat zojuist GPT-4 en Gemini heeft vernietigd
Tafel van Claudia 3 

U kunt het nieuwste model gaan gebruiken door naar te gaan https://www.anthropic.com/claude en een nieuw account aanmaken. Het is vrij eenvoudig vergeleken met de OpenAI-speeltuin.

Aan de slag met Claude 3 Opus dat zojuist GPT-4 en Gemini heeft vernietigd 

  1. Voordat we het Python-pakket installeren, moeten we naar https://console.anthropic.com/dashboard en verkrijg de API-sleutel. 
    Aan de slag met Claude 3 Opus dat zojuist GPT-4 en Gemini heeft vernietigd 
  2. In plaats van de API-sleutel rechtstreeks op te geven voor het maken van het clientobject, kunt u de omgevingsvariabele `ANTHROPIC_API_KEY` instellen en deze als sleutel opgeven.
  3. Installeer het `antropische` Python-pakket met behulp van PIP.
pip install anthropic
  1. Maak het clientobject met behulp van de API-sleutel. We zullen de client gebruiken voor het genereren van tekst, toegang tot vision-mogelijkheden en streaming.
import os
import anthropic
from IPython.display import Markdown, display

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

Laten we de oude Python API proberen om te testen of deze nog steeds werkt of niet. We zullen de voltooiings-API voorzien van de modelnaam, de maximale tokenlengte en de prompt.

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)

De fout laat zien dat we de oude API voor het `claude-3-opus-20240229`-model niet kunnen gebruiken. We moeten in plaats daarvan de Berichten-API gebruiken.

Aan de slag met Claude 3 Opus dat zojuist GPT-4 en Gemini heeft vernietigd 

Laten we de Berichten-API gebruiken om het antwoord te genereren. In plaats van prompt moeten we het berichtenargument voorzien van een lijst met woordenboeken die de rol en inhoud bevatten.

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)

Als u IPython Markdown gebruikt, wordt het antwoord weergegeven als Markdown-indeling. Dit betekent dat het opsommingstekens, codeblokken, koppen en links op een duidelijke manier toont.

Aan de slag met Claude 3 Opus dat zojuist GPT-4 en Gemini heeft vernietigd 

We kunnen ook een systeemprompt geven om uw reactie aan te passen. In ons geval vragen we Claude 3 Opus om in het Urdu te reageren.

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)

Het Opus-model is redelijk goed. Ik bedoel, ik kan het heel duidelijk begrijpen.

Aan de slag met Claude 3 Opus dat zojuist GPT-4 en Gemini heeft vernietigd 

Synchrone API's voeren API-verzoeken sequentieel uit en blokkeren totdat er een antwoord wordt ontvangen voordat de volgende oproep wordt aangeroepen. Asynchrone API's maken daarentegen meerdere gelijktijdige verzoeken mogelijk zonder te blokkeren, waardoor ze efficiënter en schaalbaarder worden.

  1. We moeten een Async Anthropic-client maken.
  2. Maak de hoofdfunctie async.
  3. Genereer het antwoord met behulp van de await-syntaxis.
  4. Voer de hoofdfunctie uit met behulp van de await-syntaxis.
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()

Aan de slag met Claude 3 Opus dat zojuist GPT-4 en Gemini heeft vernietigd 

Opmerking: Als u async gebruikt in het Jupyter Notebook, probeer dan await main() te gebruiken in plaats van asyncio.run(main())

Streaming is een aanpak die het mogelijk maakt de uitvoer van een taalmodel te verwerken zodra deze beschikbaar komt, zonder te wachten op het volledige antwoord. Deze methode minimaliseert de waargenomen latentie door het uitvoertoken voor token te retourneren, in plaats van alles in één keer.

In plaats van `messages.create` zullen we `messages.stream` gebruiken voor het streamen van antwoorden en een lus gebruiken om meerdere woorden uit het antwoord weer te geven zodra ze beschikbaar zijn.

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)

Zoals we kunnen zien, genereren we de respons vrij snel.

Aan de slag met Claude 3 Opus dat zojuist GPT-4 en Gemini heeft vernietigd 

We kunnen ook een asynchrone functie gebruiken bij streaming. Je hoeft alleen maar creatief te zijn en ze te combineren.

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

Aan de slag met Claude 3 Opus dat zojuist GPT-4 en Gemini heeft vernietigd 

Claude 3 Vision is in de loop van de tijd beter geworden en om antwoord te krijgen, hoeft u alleen maar het base64-type afbeelding aan de berichten-API te verstrekken.

In dit voorbeeld zullen we gebruiken Tulpen (Afbeelding 1) en Flamingo (Afbeelding 2) foto's van Pexel.com om respons te genereren door vragen te stellen over de afbeelding.

Aan de slag met Claude 3 Opus dat zojuist GPT-4 en Gemini heeft vernietigd 

We zullen de `httpx`-bibliotheek gebruiken om beide afbeeldingen van pexel.com op te halen en ze naar base64-codering te converteren.

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

We bieden base64-gecodeerde afbeeldingen aan de berichten-API in blokken met afbeeldingsinhoud. Volg het onderstaande codeerpatroon om het antwoord succesvol te genereren.

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)

We kregen een prachtig gedicht over de Tulpen.

Aan de slag met Claude 3 Opus dat zojuist GPT-4 en Gemini heeft vernietigd 

Laten we proberen meerdere afbeeldingen naar dezelfde Claude 3-berichten-API te 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)

We hebben een kort verhaal over een tuin met tulpen en flamingo's.

Aan de slag met Claude 3 Opus dat zojuist GPT-4 en Gemini heeft vernietigd 

Als u problemen ondervindt bij het uitvoeren van de code, volgt hier een Deepnote-werkruimte waar u de code zelf kunt bekijken en uitvoeren.

Ik denk dat de Claude 3 Opus een veelbelovend model is, hoewel hij misschien niet zo snel is als GPT-4 en Gemini. Ik geloof dat betaalde gebruikers mogelijk betere snelheden hebben.

In deze tutorial leerden we over de nieuwe modelserie van Anthropic genaamd Claude 3, beoordeelden we de benchmark en testten we de zichtmogelijkheden. We hebben ook geleerd eenvoudige, asynchrone en gestreamde reacties te genereren. Het is nog te vroeg om te zeggen of dit de beste LLM is die er is, maar als we naar de officiële testbenchmarks kijken, hebben we een nieuwe koning op de troon van AI.

 
 

Abid Ali Awan (@1abidaliawan) is een gecertificeerde datawetenschapper-professional die dol is op het bouwen van machine learning-modellen. Momenteel richt hij zich op het creëren van content en het schrijven van technische blogs over machine learning en data science-technologieën. Abid heeft een Master in Technologie Management en een Bachelor in Telecommunicatie Engineering. Zijn visie is om een ​​AI-product te bouwen met behulp van een grafisch neuraal netwerk voor studenten die worstelen met een psychische aandoening.

spot_img

Laatste intelligentie

spot_img