Kunstig intelligens

Mistral 2 og Mistral NeMo: En omfattende guide til de siste LLM fra Paris

mm
Mistral Large 2 and Mistral NeMo

Grunnlagt av tidligere ansatte fra Google’s DeepMind og Meta, har Paris-baserte startup Mistral AI jevnt og trutt gjort bølger i AI-samfunnet siden 2023.

Mistral AI fanget først verdens oppmerksomhet med sin debutomtale, Mistral 7B, lansert i 2023. Denne 7-milliarders parametermodellen fikk raskt grep på grunn av sin imponerende ytelse, og overgikk større modeller som Llama 2 13B på flere benchmark og til og med rivaliserte Llama 1 34B på mange målinger. Det som satte Mistral 7B fra andre var ikke bare dens ytelse, men også dens tilgjengelighet – modellen kunne lett lastes ned fra GitHub eller selv via en 13,4-gigabyte torrent, og var derfor lett tilgjengelig for forskere og utviklere over hele verden.

Selskapets uvanlige tilnærming til utgivelser, ofte uten tradisjonelle papirer, blogger eller pressemeldinger, har vist seg å være usedvanlig effektiv i å fange AI-samfunnets oppmerksomhet. Denne strategien, kombinert med deres forpliktelse til åpen kildeprinsipper, har posisjonert Mistral AI som en formidabel aktør i AI-landskapet.

Mistral AI’s raske oppstigning i industrien kommer også til uttrykk i deres nylige finansieringssuksess. Selskapet oppnådde en imponerende verdsettelse på 2 milliarder dollar etter en finansieringsrunde ledet av Andreessen Horowitz. Dette kom på hælene av en historisk $118 millioner seed-runde – den største i europeisk historie – og viser den enorme tilliten investorene har til Mistral AI’s visjon og evner.

Foruten deres teknologiske fremgang, har Mistral AI også vært aktivt engasjert i å forme AI-politikken, spesielt i diskusjoner rundt EU AI-loven, der de har advart mot redusert regulering av åpen kilde-AI.

Nå, i 2024, har Mistral AI igjen hevet baren med to banebrytende modeller: Mistral Large 2 (også kjent som Mistral-Large-Instruct-2407) og Mistral NeMo. I denne omfattende guiden vil vi dykke dypt inn i funksjonene, ytelsen og potensielle anvendelser av disse imponerende AI-modellene.

Nøkkelspesifikasjoner for Mistral Large 2 inkluderer:

  • 123 milliarder parametre
  • 128k kontekstvindu
  • Støtte for dusinvis av språk
  • Ferdighet i 80+ kode språk
  • Avanserte funksjonsanropsmuligheter

Modellen er designet for å presse grensene for kostnadseffektivitet, hastighet og ytelse, og gjør den til en attraktiv valgmulighet for både forskere og bedrifter som ønsker å utnytte banebrytende AI.

Mistral NeMo: Den nye, mindre modellen

Mens Mistral Large 2 representerer det beste av Mistral AI’s store modeller, tar Mistral NeMo, lansert i juli 2024, en annen tilnærming. Utviklet i samarbeid med NVIDIA, er Mistral NeMo en mer kompakt 12-milliarders parametermodell som likevel tilbyr imponerende muligheter:

  • 12 milliarder parametre
  • 128k kontekst vindu
  • Toppklassen ytelse i sin størrelseskategori
  • Apache 2.0-lisens for åpen bruk
  • Kvantiseringsbevisst trening for effektiv inferens

Mistral NeMo er posisjonert som en erstatning for systemer som for tiden bruker Mistral 7B, og tilbyr forbedret ytelse samtidig som den opprettholder enkelhet og kompatibilitet.

Nøkelfunksjoner og muligheter

Både Mistral Large 2 og Mistral NeMo deler flere nøkelfunksjoner som setter dem fra seg i AI-landskapet:

  1. Store kontekstvinduer: Med 128k token kontekstlengder kan begge modellene prosessere og forstå mye lengre tekststykker, og muliggjør mer sammenhengende og kontekstuell relevant utdata.
  2. Flerspråklig støtte: Modellene utmerker seg i en rekke språk, inkludert engelsk, fransk, tysk, spansk, italiensk, kinesisk, japansk, koreansk, arabisk og hindi.
  3. Avanserte kodegenereringsmuligheter: Begge modellene demonstrerer unik ferdighet i kodegenerering på tvers av flere programmeringsspråk.
  4. Instruksjonsfølging: Betødige forbedringer har blitt gjort i modellens evne til å følge presise instruksjoner og håndtere multi-turn samtaler.
  5. Funksjonsanrop: Innbygget støtte for funksjonsanrop muliggjør at disse modellene kan samhandle dynamisk med eksterne verktøy og tjenester.
  6. Resonnering og problemløsning: Forbedrede evner i matematisk resonnering og komplekse problemløsning.

La oss utforske noen av disse funksjonene og se hvordan de fungerer i praksis.

Ytelsesbenchmark

For å forstå de sanne evnene til Mistral Large 2 og Mistral NeMo, er det essensielt å se på deres ytelse over flere benchmark:

Mistral Large 2-benchmark

Dette bildet presenterer dyktigheten til ulike LLM’er i forskjellige programmeringsspråk. Modeller som Mistral Large 2 (24.07), Llama 3.1 (405B) og GPT-4o blir evaluert på deres evne til å forstå og generere kode i språk som Python, C++, Bash, Java, TypeScript, PHP og C#.

Llama 3.1 405B viser sterk ytelse over flere språk, med særlig høye poeng i Python og Java. Denne dyktigheten er kritisk for applikasjoner som involverer kodegenerering, feilsøking og programvareutvikling, og gjør disse modellene til verdifulle verktøy for utviklere.

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-benchmark

Selv om bestemte benchmark-poeng for Mistral NeMo ikke er gitt i den gitt informasjonen, beskrives den som tilbyder toppklassen ytelse i sin størrelseskategori. Modellen overgår andre nylige åpne, forhånds trenede modeller som Gemma 2 9B og Llama 3 8B på flere oppgaver.

Flerspråklig og kodeferdighet

En av de mest fremtredende funksjonene til både Mistral Large 2 og Mistral NeMo er deres unike flerspråklige muligheter. Dette er særlig viktig i vår stadig mer globaliserte verden, der AI-modeller må forstå og generere innhold på flere språk.

Mistral Large 2, for eksempel, støtter dusinvis av språk, inkludert fransk, tysk, spansk, italiensk, portugisisk, arabisk, hindi, russisk, kinesisk, japansk og koreansk. Denne flerspråklige ferdigheten går utover ren oversettelse og omfatter nyansert forståelse og generering på disse språkene.

La oss se på et eksempel på hvordan Mistral Large 2 genererer tekst på flere språk:

[INST] Generer en kort hilsen på engelsk, fransk, tysk, spansk og japansk. [/INST]

Her er korte hilsener på de ønskede språkene:

Engelsk: Hello! How are you today?
Fransk: Bonjour ! Comment allez-vous aujourd’hui ?
Tysk: Hallo! Wie geht es Ihnen heute?
Spansk: ¡Hola! ¿Cómo estás hoy?
Japansk: こんにちは!今日はお元気ですか?

[INST]

Nå, skriv et enkelt “Hei, Verden!”-program i Python, Java og JavaScript. [/INST]

Disse eksemplene viser både den flerspråklige tekstgenerering og kodeferdighetene til modellen.

Begge modellene er tilgjengelige på flere plattformer, som Hugging Face, Mistral AI’s plattform og større skytjenesteleverandører som Google Cloud Platform, Azure AI Studio, Amazon Bedrock og IBM watsonx.ai​ (Mistral AI | Frontier AI in your hands)​​​.

Den agente paradigmen og funksjonsanrop

Både Mistral Large 2 og Mistral NeMo omfavner en agente-sentrert design, som representerer en paradigmeskifte i hvordan vi samhandler med AI-modeller. Denne tilnærmingen fokuserer på å bygge modeller som kan samhandle med sin omgivelse, ta beslutninger og utføre handlinger for å oppnå bestemte mål.

En nøkelfunksjon som muliggjør denne paradigmen er den innbygde støtten for funksjonsanrop. Dette muliggjør at modellene kan samhandle dynamisk med eksterne verktøy og tjenester, og effektivt utvider deres muligheter utover ren tekstgenerering.

La oss se på et eksempel på hvordan funksjonsanrop 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

# Initialiser tokenizer og modell
mistral_models_path = "path/to/mistral/models" # Sørg for at denne banen er riktig
tokenizer = MistralTokenizer.from_file(f"{mistral_models_path}/tokenizer.model.v3")
model = Transformer.from_folder(mistral_models_path)

# Definer en funksjon for å hente værinformasjon
weather_function = Function(
name="get_current_weather",
description="Hent nåværende vær",
parameters={
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "By og stat, f.eks. San Francisco, CA",
},
"format": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "Temperatur enhet å bruke. Infer denne fra brukerens plassering.",
},
},
"required": ["location", "format"],
},
)

# Opprett en chat-fulføringsforespørsel med funksjonen
completion_request = ChatCompletionRequest(
tools=[Tool(function=weather_function)],
messages=[
UserMessage(content="Hva er været som i dag i Paris?"),
],
)

# Kode input
tokens = tokenizer.encode_chat_template(completion_request).tokens

# Generer svar
out_tokens = model.generate(tokens, max_new_tokens=256, do_sample=True)

# Dekod og skriv ut svaret
result = tokenizer.decode(out_tokens[0])
print(result)

I dette eksemplet definerer vi en funksjon for å hente værinformasjon og inkluderer den i vår chat-fulføringsforespørsel. Modellen kan deretter bruke denne funksjonen til å hente sanntids værdata, og demonstrerer hvordan den kan samhandle med eksterne systemer for å gi mer nøyaktig og oppdatert informasjon.

Tekken: En mer effektiv tokenizer

Mistral NeMo innfører en ny tokenizer kalt Tekken, som er basert på Tiktoken og trent på over 100 språk. Denne nye tokenizoren tilbyr betydelige forbedringer i tekstkomprimeringseffektivitet sammenlignet med tidligere tokenizere som SentencePiece.

Nøkelfunksjoner i Tekken inkluderer:

  • 30% mer effektiv komprimering for kildekode, kinesisk, italiensk, fransk, tysk, spansk og russisk
  • 2x mer effektiv komprimering for koreansk
  • 3x mer effektiv komprimering for arabisk
  • Overgår Llama 3-tokenizer i å komprimere tekst for omtrent 85% av alle språk

Denne forbedrede tokeniseringseffektiviteten oversettes til bedre modell ytelse, særlig når det gjelder flerspråklig tekst og kildekode. Den muliggjør at modellen kan prosessere mer informasjon innenfor samme kontekstvindu, og fører til mer sammenhengende og kontekstuell relevant utdata.

Lisens og tilgjengelighet

Mistral Large 2 og Mistral NeMo har forskjellige lisensmodeller, som reflekterer deres ønskede bruksområder:

Mistral Large 2

  • Utgitt under Mistral Research License
  • Tillater bruk og modifisering for forskning og ikke-kommersielle formål
  • Kommersiell bruk krever en Mistral Commercial License

Mistral NeMo

  • Utgitt under Apache 2.0-lisens
  • Tillater åpen bruk, inkludert kommersielle applikasjoner

Begge modellene er tilgjengelige gjennom flere plattformer:

  • Hugging Face: Vekter for både base og instruksjonsmodeller er vertet her
  • Mistral AI: Tilgjengelig som mistral-large-2407 (Mistral Large 2) og open-mistral-nemo-2407 (Mistral NeMo)
  • Cloud Service Providers: Tilgjengelig på Google Cloud Platform’s 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 utviklere som ønsker å bruke disse modellene, her er et enkelt eksempel på hvordan du kan laste og bruke Mistral Large 2 med Hugging Face transformers:

from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "mistralai/Mistral-Large-Instruct-2407"
device = "cuda" # Bruk GPU hvis tilgjengelig

# Last modell og tokenizer
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)

# Flytt modellen til riktig enhet
model.to(device)

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

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

# Generer svar
output_ids = model.generate(input_ids, max_new_tokens=500, do_sample=True)

# Dekod og skriv ut svaret
response = tokenizer.decode(output_ids[0], skip_special_tokens=True)
print(response)

Dette kodeeksemplet demonstrerer hvordan du kan laste modellen, forberede input i en chatsformat, generere et svar og dekodere output.

Begrensninger og etiske overveielser

Selv om Mistral Large 2 og Mistral NeMo representerer betydelige fremgang i AI-teknologi, er det viktig å anerkjenne deres begrensninger og de etiske overveielser som omgir deres bruk:

  1. Potensiale for fordommer: Som alle AI-modeller trent på store datamengder, kan disse modellene arve og forsterke fordommer som er til stede i deres treningsdata. Brukere bør være klar over dette og implementere passende sikkerhetstiltak.
  2. Mangel på sanne forståelse: Til tross for deres imponerende muligheter, har disse modellene ikke sanne forståelse eller bevissthet. De genererer svar basert på mønster i deres treningsdata, som noen ganger kan føre til plausibelt lydende, men feilaktig informasjon.
  3. Personvernbekymringer: Når du bruker disse modellene, spesielt i applikasjoner som håndterer følsom informasjon, er det viktig å vurdere datavern- og sikkerhetsimplikasjoner.

Konklusjon

Fine-tuning avanserte modeller som Mistral Large 2 og Mistral NeMo presenterer en kraftfull mulighet til å utnytte banebrytende AI for en rekke applikasjoner, fra dynamisk funksjonsanrop til effektiv flerspråklig prosessering. Her er noen praktiske tips og nøkkelinnsikter å huske på:

  1. Forstå ditt bruksområde: Definer tydelig de spesifikke oppgavene og målene du ønsker å oppnå med din modell. Dette vil veilede valget ditt av modell og fine-tuning-tilnærming, enten det er Mistral’s robuste funksjonsanropsmuligheter eller dens effektive flerspråklige tekstprosessering.
  2. Optimer for effektivitet: Utnytt Tekken-tokenizeren for å betydelig forbedre tekstkomprimeringseffektiviteten, spesielt hvis din applikasjon involverer håndtering av store mengder tekst eller flere språk. Dette vil forbedre modellens ytelse og redusere beregningskostnader.
  3. Utnytt funksjonsanrop: Omfavne den agente paradigmen ved å inkorporere funksjonsanrop i dine modellinteraksjoner. Dette muliggjør at din AI kan samhandle dynamisk med eksterne verktøy og tjenester, og gir mer nøyaktig og handlingorientert utdata. For eksempel kan integrering av vær-API eller andre eksterne datakilder betydelig forbedre relevansen og nytten av modellens svar.
  4. Velg riktig plattform: Sørg for å distribuere dine modeller på plattformer som støtter deres muligheter, som Google Cloud Platform’s Vertex AI, Azure AI Studio, Amazon Bedrock og IBM watsonx.ai. Disse plattformene tilbyr den nødvendige infrastrukturen og verktøyene for å maksimere ytelsen og skalerbarheten til dine AI-modeller.

Ved å følge disse tipsene og bruke de tilgjengelige kodeeksemplene, kan du effektivt utnytte kraften til Mistral Large 2 og Mistral NeMo for dine spesifikke behov.

Jeg har brukt de siste fem årene til å dykke ned i den fasiniserende verden av Machine Learning og Deep Learning. Min lidenskap og ekspertise har ført meg til å bidra til over 50 forskjellige prosjekter innen programvareutvikling, med særlig fokus på AI/ML. Min pågående nysgjerrighet har også trukket meg mot Natural Language Processing, et felt jeg er ivrig etter å utforske videre.