AI-modeller og plattformer

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

mm
Legg til Unite.AI blant dine foretrukne kilder på Google
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 debutmодell, Mistral 7B, lansert i 2023. Denne 7-milliarder parametermodellen fikk raskt stor oppmerksomhet for sin imponerende ytelse, og overgikk større modeller som Llama 2 13B på flere benchmark-tester, og rivaliserte sogar Llama 1 34B på mange målinger. Det som satte Mistral 7B apart 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 dermed lett tilgjengelig for forskere og utviklere over hele verden.

Selskapets uvanlige tilnærming til lanseringer, ofte uten tradisjonelle papirer, blogger eller pressemeldinger, har vist seg å være svært effektiv i å fange AI-samfunnets oppmerksomhet. Denne strategien, kombinert med deres forpliktelse til åpen kildekode, har posisjonert Mistral AI som en betydelig 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 verdi på 2 milliarder dollar etter en finansieringsrunde ledet av Andreessen Horowitz. Dette skjedde på hælene av en historisk $118 millioner seed-runde – den største i europeisk historie – og viser omfattende tillit blant investorer til Mistral AI’s visjon og evner.

Utenfor deres tekniske fremgang, har Mistral AI også vært aktivt engasjert i å forme AI-politikken, spesielt i diskusjoner om EU’s AI-akt, der de har advart mot redusert regulering av åpen kildekode AI.

Nå, i 2024, har Mistral AI igjen løftet båren 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 egenskapene, ytelsen og potensielle anvendelser av disse imponerende AI-modellene.

Nøkkelspesifikasjoner for Mistral Large 2 inkluderer:

  • 123 milliarder parametere
  • 128k kontekstvindu
  • Støtte for dusinvis av språk
  • Kompetanse i 80+ programmeringsspråk
  • Avanserte funksjonskall-kapasiteter

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 (NVDA ), er Mistral NeMo en mer kompakt 12-milliarder parametermodell som likevel tilbyr imponerende kapasiteter:

  • 12 milliarder parametere
  • 128k kontekst vindu
  • Banebrytende ytelse i sin størrelseskategori
  • Apache 2.0-lisens for åpen bruk
  • Kvantiserings-bevis 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økkel-egenskaper og kapasiteter

Både Mistral Large 2 og Mistral NeMo deler flere nøkkel-egenskaper som setter dem apart i AI-landskapet:

  1. Stor kontekstvindu: Med 128k token kontekstlengde 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 kodegenererings-kapasiteter: Begge modellene viser unik kompetanse i kodegenerering over mange programmeringsspråk.
  4. Instruksjonsfølging: Betødige forbedringer har blitt gjort i modellenes evne til å følge nøyaktige instruksjoner og håndtere multi-turn conversasjoner.
  5. Funksjonskall: Naturlig støtte for funksjonskall gjør at disse modellene kan samhandle dynamisk med eksterne verktøy og tjenester.
  6. Resonnering og problemløsning: Forbedrede kapasiteter i matematisk resonnering og komplekse problemløsningstasks.

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

Ytelses-benchmark

For å forstå de sanne kapasitetene til Mistral Large 2 og Mistral NeMo, er det essensielt å se på deres ytelse over ulike benchmark-tester. La oss se på noen nøkkel-målinger:

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 kompetansen 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 spesifikke benchmark-poeng for Mistral NeMo ikke er gitt i den gitte informasjonen, beskrives den som å tilby banebrytende ytelse i sin størrelseskategori. Modellen overgår andre nylige åpne forhånds-trente modeller som Gemma 2 9B og Llama 3 8B i ulike oppgaver.

Flerspråklig og kode-kapasiteter

En av de mest fremtredende egenskapene til både Mistral Large 2 og Mistral NeMo er deres unike flerspråklige kapasiteter. Dette er spesielt viktig i vår stadig mer globaliserte verden, der AI-modeller må kunne 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 kompetansen går langt utover bare oversettelse, og omfatter nyansert forståelse og generering på disse språkene.

For å illustrere dette, la oss se på et eksempel på Mistral Large 2 som 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 forespurte 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 “Hello, World!”-program i Python, Java og JavaScript. [/INST]

Disse eksemplene viser både modellens flerspråklige tekstgenerering og kode-kapasiteter.

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

Den agente paradigme og funksjonskall

Begge 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økkel-egenskap som muliggjør denne paradigmen er den naturlige støtten for funksjonskall. Dette gjør at modellene kan samhandle dynamisk med eksterne verktøy og tjenester, og effektivt utvide deres kapasiteter utover bare tekstgenerering.

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

<p># Initialiser tokenizer og modell
mistral_models_path = &quot;path/to/mistral/models&quot; # Sørg for at denne banen er korrekt
tokenizer = MistralTokenizer.from_file(f&quot;{mistral_models_path}/tokenizer.model.v3&quot;)
model = Transformer.from_folder(mistral_models_path)</p>

<p># Definer en funksjon for å hente vær-informasjon
weather_function = Function(
name=&quot;get_current_weather&quot;,
description=&quot;Hent nåværende vær&quot;,
parameters={
&quot;type&quot;: &quot;object&quot;,
&quot;properties&quot;: {
&quot;location&quot;: {
&quot;type&quot;: &quot;string&quot;,
&quot;description&quot;: &quot;By og stat, f.eks. San Francisco, CA&quot;,
},
&quot;format&quot;: {
&quot;type&quot;: &quot;string&quot;,
&quot;enum&quot;: [&quot;celsius&quot;, &quot;fahrenheit&quot;],
&quot;description&quot;: &quot;Temperatur-enhet å bruke. Gjett denne fra brukerens lokasjon.&quot;,
},
},
&quot;required&quot;: [&quot;location&quot;, &quot;format&quot;],
},
)</p>

<p># Opprett en chat-completion-forespørsel med funksjonen
completion_request = ChatCompletionRequest(
tools=[Tool(function=weather_function)],
messages=[
UserMessage(content=&quot;Hva er været som i dag i Paris?&quot;),
],
)</p>

<p># Kode forespørselen
tokens = tokenizer.encode_chat_completion(completion_request).tokens</p>

<p># Generer en respons
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])</p>

print(result)

I dette eksemplet definerer vi en funksjon for å hente vær-informasjon og inkluderer den i vår chat-completion-forespø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 tokenizer tilbyr betydelige forbedringer i tekst-komprimeringseffektivitet sammenlignet med tidligere tokenizere som SentencePiece.

Nøkkel-egenskaper ved 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 komprimering av tekst for omtrent 85% av alle språk

Denne forbedrede tokeniseringseffektiviteten oversettes til bedre modell-ytelse, spesielt når det gjelder flerspråklig tekst og kildekode. Den gjør at modellen kan prosessere mer informasjon innenfor samme kontekstvindu, og resulterer i mer sammenhengende og kontekstuell relevant utdata.

Lisensiering og tilgjengelighet

Mistral Large 2 og Mistral NeMo har ulike lisensieringsmodeller, som reflekterer deres tiltenkte bruksområder:

Mistral Large 2

  • Utgitt under Mistral Research License
  • Tillater bruk og modifikasjon 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 ulike 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-tjenesteleverandører: 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 raskt eksempel på hvordan du kan laste og bruke Mistral Large 2 med Hugging Face-transformatorer:

from transformers import AutoModelForCausalLM, AutoTokenizer

<p>model_name = &quot;mistralai/Mistral-Large-Instruct-2407&quot;
device = &quot;cuda&quot; # Bruk GPU hvis tilgjengelig</p>

<p># Last modell og tokenizer
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)</p>

<p># Flytt modellen til riktig enhet
model.to(device)</p>

<p># Forbered inndata
messages = [
{&quot;role&quot;: &quot;system&quot;, &quot;content&quot;: &quot;Du er en hjelpsom AI-assistent.&quot;},
{&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: &quot;Forklar konseptet om neurale nettverk på en enkel måte.&quot;}
]</p>

<p># Kode inndata
input_ids = tokenizer.apply_chat_template(messages, return_tensors=&quot;pt&quot;).to(device)</p>

<p># Generer respons
output_ids = model.generate(input_ids, max_new_tokens=500, do_sample=True)</p>

<p># Dekode og skriv ut responsen
response = tokenizer.decode(output_ids[0], skip_special_tokens=True)
print(response)</p>

Denne koden demonstrerer hvordan du kan laste modellen, forberede inndata i en chat-format, generere en respons og dekodere utdata.

Begrensninger og etiske overveielser

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

  1. Potensiale for fordommer: Som alle AI-modeller trent på store datasett, kan disse modellene arve og forsterke fordommer som finnes i deres treningsdata. Brukere bør være klar over dette og implementere nødvendige forsiktighetsforanstaltninger.
  2. Mangel på sannt ekte forståelse: Til tross for deres imponerende kapasiteter, besitter disse modellene ikke sannt ekte forståelse eller bevissthet. De genererer responser basert på mønster i deres treningsdata, som noen ganger kan føre til plausibelt-lydende, men feilaktige opplysninger.
  3. Personvernsproblemer: Når du bruker disse modellene, spesielt i applikasjoner som håndterer følsomme opplysninger, er det viktig å vurdere personverns- 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 funksjonskall til effektiv flerspråklig prosessering. Her er noen praktiske tips og nøkkel-insikter å holde i mente:

  1. Forstå ditt bruksområde: Definer tydelig de spesifikke oppgavene og målene du ønsker å oppnå med modellen. Dette vil veilede ditt valg av modell og fine-tuning-tilnærming, enten det er Mistral’s robuste funksjonskall-kapasiteter eller dens effektive flerspråklige tekstprosessering.
  2. Optimer for effektivitet: Utnytt Tekken-tokenizer for å betydelig forbedre tekst-komprimeringseffektivitet, spesielt hvis din applikasjon involverer håndtering av store mengder tekst eller flere språk. Dette vil forbedre modell-ytelsen og redusere beregningskostnader.
  3. Utnytt funksjonskall: Omfavne den agente-paradigmen ved å inkorporere funksjonskall i dine modell-interaksjoner. Dette gjør at din AI kan samhandle dynamisk med eksterne verktøy og tjenester, og gir mer nøyaktig og håndterbar utdata. For eksempel kan integrering av vær-API eller andre eksterne datakilder betydelig forbedre relevansen og nyttigheten av modellens responser.
  4. Velg riktig plattform: Sørg for å distribuere dine modeller på plattformer som støtter deres kapasiteter, 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 utnytte de tilgjengelige kode-eksemplene, kan du effektivt utnytte kraften til Mistral Large 2 og Mistral NeMo for dine spesifikke behov.

Jeg har brukt de siste fem årene på å dykke ned i den fasiniserende verden av Maskinlæring og Dypt Læring. Min lidenskap og ekspertise har ledet meg til å bidra til over 50 ulike programvareprosjekter, med særlig fokus på AI/ML. Min pågående nysgjørhet har også trukket meg mot Naturlig Språkbehandling, et felt jeg er ivrig etter å utforske videre.