Følg os

Kunstig intelligens

Mistral 2 og Mistral NeMo: En omfattende guide til den seneste LLM, der kommer fra Paris

mm
Mistral Large 2 og Mistral NeMo

Grundlagt af tidligere studerende fra Googles DeepMind og Meta, en startup med base i Paris Mistral AI har konsekvent skabt bølger i AI-fællesskabet siden 2023.

Mistral AI fangede verdens opmærksomhed med sin debutmodel, Mistral 7B, der blev udgivet i 2023. Denne model med 7 milliarder parametre fik hurtigt medvind for sin imponerende ydeevne, og den overgik større modeller som Llama 2 13B i forskellige benchmarks og konkurrerede endda med andre. Llama 1 34B i mange målinger. Hvilket sæt Mistral 7B bortset var ikke kun dens ydeevne, men også dens tilgængelighed – modellen kunne være let downloadet fra GitHub eller endda via en 13.4-gigabyte torrent, hvilket gør den let tilgængelig for forskere og udviklere over hele verden.

Virksomhedens ukonventionelle tilgang til pressemeddelelser, hvor de ofte går forbi traditionelle aviser, blogs eller pressemeddelelser, har vist sig bemærkelsesværdigt effektiv til at fange AI-fællesskabets opmærksomhed. Denne strategi, kombineret med deres engagement i open source-principper, har positioneret Mistral AI som en formidabel spiller i AI-landskabet.

Mistral AIs hurtige opstigning i branchen fremgår yderligere af deres nylige finansieringssucces. Virksomheden opnåede en svimlende værdiansættelse på 2 milliarder dollars efter en finansieringsrunde ledet af Andreessen Horowitz. Dette kom i kølvandet på en historisk seed-runde på 118 millioner dollars – den største i europæisk historie – der viser den enorme tillid, investorerne har til Mistral AIs vision og evner.

Ud over deres teknologiske fremskridt har Mistral AI også været aktivt involveret i udformningen af ​​AI-politik, især i diskussioner omkring EU's AI-lov, hvor de har talt for reduceret regulering af open source AI.

Nu, i 2024, har Mistral AI igen hævet barren med to banebrydende modeller: Mistral Large 2 (også kendt som Mistral-Large-Instruct-2407) og Mistral NeMoI denne omfattende guide dykker vi ned i funktionerne, ydeevnen og de potentielle anvendelser af disse imponerende AI-modeller.

Nøglespecifikationer for Mistral Large 2 inkluderer:

  • 123 milliarder parametre
  • 128k kontekstvindue
  • Support til snesevis af sprog
  • Færdighed i 80+ kodning sprog
  • Avancerede funktionsopkaldsfunktioner

Modellen er designet til at skubbe grænserne for omkostningseffektivitet, hastighed og ydeevne, hvilket gør den til en attraktiv mulighed for både forskere og virksomheder, der ønsker at udnytte banebrydende AI.

Mistral NeMo: Den nye mindre model

Mens Mistral Large 2 repræsenterer den bedste af Mistral AI's storskalamodeller, har Mistral NeMo, der blev udgivet i juli 2024, en anderledes tilgang. Mistral NeMo, der er udviklet i samarbejde med NVIDIA, er en mere kompakt model med 12 milliarder parametre, der stadig tilbyder imponerende funktioner:

  • 12 milliarder parametre
  • 128k kontekst vindue
  • State-of-the-art præstation i sin størrelseskategori
  • Apache 2.0 licens til åben brug
  • Kvantiseringsbevidst træning i effektiv slutning

Mistral NeMo er placeret som en drop-in-erstatning for systemer, der i øjeblikket bruger Mistral 7B, og tilbyder forbedret ydeevne, samtidig med at brugervenlighed og kompatibilitet bevares.

Nøglefunktioner og muligheder

Både Mistral Large 2 og Mistral NeMo deler flere nøglefunktioner, der adskiller dem i AI-landskabet:

  1. Store kontekstvinduer: Med 128 token-kontekstlængder kan begge modeller behandle og forstå meget længere tekststykker, hvilket muliggør mere sammenhængende og kontekstuelt relevante output.
  2. flersproget Support: Modellerne udmærker sig på en lang række sprog, herunder engelsk, fransk, tysk, spansk, italiensk, kinesisk, japansk, koreansk, arabisk og hindi.
  3. Avancerede kodningsfunktioner: Begge modeller demonstrerer enestående færdigheder i kodegenerering på tværs af adskillige programmeringssprog.
  4. Instruktion følgerDer er sket betydelige forbedringer i modellernes evne til at følge præcise instruktioner og håndtere samtaler med flere vendinger.
  5. Funktionsopkald: Indbygget understøttelse af funktionskald gør det muligt for disse modeller at interagere dynamisk med eksterne værktøjer og tjenester.
  6. Begrundelse og problemløsning: Forbedrede evner inden for matematisk ræsonnement og komplekse problemløsningsopgaver.

Lad os udforske nogle af disse funktioner og undersøge, hvordan de fungerer i praksis.

Performance benchmarks

For at forstå de sande muligheder hos Mistral Large 2 og Mistral NeMo er det vigtigt at se på deres ydeevne på tværs af forskellige benchmarks. Lad os undersøge nogle nøgleparametre:

Mistral Large 2 Benchmarks

Denne tabel præsenterer forskellige LLM'ers færdigheder i forskellige programmeringssprog. Modeller som Mistral Large 2 (24.07), Llama 3.1 (405B) og GPT-4o evalueres på deres evne til at forstå og generere kode på sprog som Python, C++, Bash, Java, TypeScript, PHP og C#.

Llama 3.1 405B viser stærk ydeevne på tværs af flere sprog, med særligt høje scores i Python og Java. Denne færdighed er afgørende for applikationer, der involverer kodegenerering, debugging og softwareudvikling, hvilket gør disse modeller til værdifulde værktøjer for udviklere.

https://mistral.ai/news/mistral-large-2407/

https://mistral.ai/news/mistral-large-2407/

https://mistral.ai/news/mistral-large-2407/

https://mistral.ai/news/mistral-large-2407/

Mistral NeMo benchmarks

Selvom specifikke benchmark-scorer for Mistral NeMo ikke er angivet i de givne oplysninger, beskrives den som værende avanceret i sin størrelseskategori. Modellen overgår andre nyere open source-forudtrænede modeller som Gemma 2 9B og Llama 3 8B i forskellige opgaver.

Flersproget og kodende dygtighed

En af de iøjnefaldende funktioner ved både Mistral Large 2 og Mistral NeMo er deres enestående flersprogede muligheder. Dette er særligt vigtigt i vores stadig mere globaliserede verden, hvor AI-modeller skal forstå og generere indhold på flere sprog.

Mistral Large 2 understøtter for eksempel snesevis af sprog, herunder fransk, tysk, spansk, italiensk, portugisisk, arabisk, hindi, russisk, kinesisk, japansk og koreansk. Denne flersprogede færdighed strækker sig ud over blot oversættelse og omfatter nuanceret forståelse og generering på disse sprog.

For at illustrere dette, lad os se på et eksempel på Mistral Large 2, der genererer tekst på flere sprog:

[INST] Generate a short greeting in English, French, German, Spanish, and Japanese. [/INST]

Her er korte hilsner på de ønskede sprog:

Dansk: Hej! Hvordan har du det i dag?
Fransk: Bonjour! Kommentar allez-vous aujourd'hui ?
Tysk: Hej! Wie geht es Ihnen heute?
Spansk: ¡Hola! ¿Cómo estás hoy?
Japansk: こんにちは!今日はお元気ですか?

[INST]

Skriv nu et simpelt "Hej, verden!" program i Python, Java og JavaScript. [/INST]

Disse eksempler viser både modellens flersprogede tekstgenerering og kodningsmuligheder.

Begge modeller er tilgængelige på forskellige platforme såsom Hugging Face, Mistral AI's platform og store cloud-udbydere som Google Cloud Platform, Azure AI Studio, Amazon Bedrock og IBM watsonx.ai. (Mistral AI | Frontier AI i dine hænder).

Det agentiske paradigme og funktionskald

Både Mistral Large 2 og Mistral NeMo omfavner et agent-centreret design, som repræsenterer et paradigmeskift i, hvordan vi interagerer med AI-modeller. Denne tilgang fokuserer på at bygge modeller, der er i stand til at interagere med deres omgivelser, træffe beslutninger og træffe handlinger for at nå specifikke mål.

En nøglefunktion, der muliggør dette paradigme, er den indbyggede understøttelse af funktionskald. Dette gør det muligt for modellerne at interagere dynamisk med eksterne værktøjer og tjenester, hvilket effektivt udvider deres muligheder ud over simpel tekstgenerering.

Lad os se på et eksempel på, hvordan funktionskald kan fungere med Mistral Large 2:

 
from mistral_common.protocol.instruct.tool_calls import Function, Tool
from mistral_inference.transformer import Transformer
from mistral_inference.generate import generate
from mistral_common.tokens.tokenizers.mistral import MistralTokenizer
from mistral_common.protocol.instruct.messages import UserMessage
from mistral_common.protocol.instruct.request import ChatCompletionRequest

# Initialize tokenizer and model
mistral_models_path = "path/to/mistral/models"  # Ensure this path is correct
tokenizer = MistralTokenizer.from_file(f"{mistral_models_path}/tokenizer.model.v3")
model = Transformer.from_folder(mistral_models_path)

# Define a function for getting weather information
weather_function = Function(
    name="get_current_weather",
    description="Get the current weather",
    parameters={
        "type": "object",
        "properties": {
            "location": {
                "type": "string",
                "description": "The city and state, e.g. San Francisco, CA",
            },
            "format": {
                "type": "string",
                "enum": ["celsius", "fahrenheit"],
                "description": "The temperature unit to use. Infer this from the user's location.",
            },
        },
        "required": ["location", "format"],
    },
)

# Create a chat completion request with the function
completion_request = ChatCompletionRequest(
    tools=[Tool(function=weather_function)],
    messages=[
        UserMessage(content="What's the weather like today in Paris?"),
    ],
)

# Encode the request
tokens = tokenizer.encode_chat_completion(completion_request).tokens

# Generate a response
out_tokens, _ = generate([tokens], model, max_tokens=256, temperature=0.7, eos_id=tokenizer.instruct_tokenizer.tokenizer.eos_id)
result = tokenizer.decode(out_tokens[0])

print(result)


I dette eksempel definerer vi en funktion til at få vejrinformation og inkluderer den i vores anmodning om fuldførelse af chat. Modellen kan derefter bruge denne funktion til at hente vejrdata i realtid, og demonstrere, hvordan den kan interagere med eksterne systemer for at give mere nøjagtig og opdateret information.

Tekken: En mere effektiv tokenizer

Mistral NeMo introducerer en ny tokenizer kaldet Tekken, som er baseret på Tiktoken og trænet på over 100 sprog. Denne nye tokenizer tilbyder betydelige forbedringer i tekstkomprimeringseffektiviteten sammenlignet med tidligere tokenizere som SentencePiece.

Nøglefunktioner i Tekken inkluderer:

  • 30 % mere effektiv komprimering af kildekode, kinesisk, italiensk, fransk, tysk, spansk og russisk
  • 2x mere effektiv kompression til koreansk
  • 3x mere effektiv komprimering til arabisk
  • Udkonkurrerer Llama 3-tokenizeren ved at komprimere tekst til cirka 85 % af alle sprog

Denne forbedrede tokeniseringseffektivitet oversætter til bedre modelydeevne, især når det drejer sig om flersproget tekst og kildekode. Det giver modellen mulighed for at behandle mere information inden for det samme kontekstvindue, hvilket fører til mere sammenhængende og kontekstuelt relevante output.

Licens og tilgængelighed

Mistral Large 2 og Mistral NeMo har forskellige licensmodeller, der afspejler deres tilsigtede anvendelsestilfælde:

Mistral Large 2

  • Udgivet under Mistral Research License
  • Tillader brug og modifikation til forskning og ikke-kommercielle formål
  • Kommerciel brug kræver en Mistral Commercial License

Mistral NeMo

  • Udgivet under Apache 2.0-licensen
  • Tillader åben brug, herunder kommercielle applikationer

Begge modeller er tilgængelige via forskellige platforme:

  • Knusende ansigt: Vægte til både basis- og instruktionsmodeller er hostet her
  • Mistral AI: Fås som mistral-large-2407 (Mistral Large 2) og open-mistral-nemo-2407 (Mistral NeMo)
  • Cloud-tjenesteudbydereTilgængelig på Google Cloud Platforms Vertex AI, Azure AI Studio, Amazon Bedrock og IBM watsonx.ai
https://mistral.ai/news/mistral-large-2407/

https://mistral.ai/news/mistral-large-2407/

For udviklere, der ønsker at bruge disse modeller, er her et hurtigt eksempel på, hvordan man indlæser og bruger Mistral Large 2 med Hugging Face-transformere:

 
from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "mistralai/Mistral-Large-Instruct-2407"
device = "cuda"  # Use GPU if available

# Load the model and tokenizer
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)

# Move the model to the appropriate device
model.to(device)

# Prepare input
messages = [
    {"role": "system", "content": "You are a helpful AI assistant."},
    {"role": "user", "content": "Explain the concept of neural networks in simple terms."}
]

# Encode input
input_ids = tokenizer.apply_chat_template(messages, return_tensors="pt").to(device)

# Generate response
output_ids = model.generate(input_ids, max_new_tokens=500, do_sample=True)

# Decode and print the response
response = tokenizer.decode(output_ids[0], skip_special_tokens=True)
print(response)

Denne kode demonstrerer, hvordan man indlæser modellen, forbereder input i et chatformat, genererer et svar og afkoder outputtet.

Begrænsninger og etiske overvejelser

Selvom Mistral Large 2 og Mistral NeMo repræsenterer betydelige fremskridt inden for AI-teknologi, er det afgørende at anerkende deres begrænsninger og de etiske overvejelser omkring deres brug:

  1. Potentiale for skævheder: Som alle AI-modeller trænet på store datasæt, kan disse modeller arve og forstærke skævheder, der er til stede i deres træningsdata. Brugere bør være opmærksomme på dette og implementere passende sikkerhedsforanstaltninger.
  2. Mangel på sand forståelse: På trods af deres imponerende evner besidder disse modeller ikke ægte forståelse eller bevidsthed. De genererer svar baseret på mønstre i deres træningsdata, hvilket nogle gange kan føre til plausibelt klingende, men forkert information.
  3. Beskyttelse af personlige oplysningerNår disse modeller bruges, især i applikationer, der håndterer følsomme oplysninger, er det afgørende at overveje konsekvenserne for databeskyttelse og sikkerhed.

Konklusion

Finjustering af avancerede modeller som Mistral Large 2 og Mistral NeMo giver en effektiv mulighed for at udnytte banebrydende AI til en række applikationer, fra dynamiske funktionskald til effektiv flersproget behandling. Her er nogle praktiske tips og nøgleindsigter, du skal huske på:

  1. Forstå din brugssagDefiner klart de specifikke opgaver og mål, du ønsker, at din model skal opnå. Denne forståelse vil guide dit valg af model og finjusteringstilgang, uanset om det er Mistrals robuste funktionskaldsfunktioner eller dens effektive flersprogede tekstbehandling.
  2. Optimer for effektivitet: Brug Tekken-tokenizeren til at forbedre tekstkomprimeringseffektiviteten markant, især hvis din applikation involverer håndtering af store mængder tekst eller flere sprog. Dette vil forbedre modellens ydeevne og reducere beregningsomkostningerne.
  3. Udnyt funktionsopkaldOmfavn agentparadigmet ved at inkorporere funktionskald i dine modelinteraktioner. Dette giver din AI mulighed for dynamisk at interagere med eksterne værktøjer og tjenester, hvilket giver mere præcise og handlingsrettede output. For eksempel kan integration af vejr-API'er eller andre eksterne datakilder forbedre relevansen og anvendeligheden af ​​din models svar betydeligt.
  4. Vælg den rigtige platformSørg for at implementere dine modeller på platforme, der understøtter deres funktioner, såsom Google Cloud Platforms Vertex AI, Azure AI Studio, Amazon Bedrock og IBM watsonx.ai. Disse platforme leverer den nødvendige infrastruktur og værktøjer til at maksimere ydeevnen og skalerbarheden af ​​dine AI-modeller.

Ved at følge disse tips og bruge de medfølgende kodeeksempler kan du effektivt udnytte kraften i Mistral Large 2 og Mistral NeMo til dine specifikke behov.

Jeg har brugt de sidste fem år på at fordybe mig i den fascinerende verden af ​​Machine Learning og Deep Learning. Min passion og ekspertise har ført mig til at bidrage til over 50 forskellige software engineering projekter, med særligt fokus på AI/ML. Min vedvarende nysgerrighed har også trukket mig hen imod Natural Language Processing, et felt jeg er ivrig efter at udforske yderligere.