AI-modeller og platforme

Mistral 2 og Mistral NeMo: En komplet vejledning til de seneste LLM fra Paris

mm
Føj Unite.AI til dine foretrukne kilder på Google
Mistral Large 2 and Mistral NeMo

Mistral AI, som er grundlagt af tidligere ansatte fra Google’s DeepMind og Meta, har siden 2023 været en af de mest innovative virksomheder i AI-sammenhæng.

Mistral AI fik første gang opmærksomhed med deres debutmodel, Mistral 7B, som blev udgivet i 2023. Denne 7-milliard parameter model opnåede hurtigt stor succes på grund af dens imponerende præstation, som overgik større modeller som Llama 2 13B i flere benchmarks og endda kunne konkurrere med Llama 1 34B i mange metrikker. Det, der adskilte Mistral 7B, var ikke kun dens præstation, men også dens tilgængelighed – modellen kunne let downloades fra GitHub eller endda via en 13,4-gigabyte torrent, hvilket gjorde den let tilgængelig for forskere og udviklere verden over.

Virksomhedens usædvanlige tilgang til udgivelser, ofte uden traditionelle artikler, blogs eller pressemeddelelser, har vist sig at være ekstremt effektiv til at tiltrække AI-samfundets opmærksomhed. Denne strategi, kombineret med deres engagement for åbne kilder, har positioneret Mistral AI som en stærk spiller i AI-landskabet.

Mistral AI’s hurtige opstigning i branchen er yderligere bekræftet af deres seneste funding-succes. Virksomheden opnåede en imponerende vurdering på 2 milliarder dollars efter en funding-runde ledet af Andreessen Horowitz. Dette skete efter en historisk $118 millioner seed-runde – den største i europæisk historie – hvilket viser, hvor stort tillid investorer har til Mistral AI’s vision og evner.

Ud over deres teknologiske fremskridt har Mistral AI også været aktivt engageret i formningen af AI-politik, især i diskussioner om EU’s AI-lov, hvor de har advokeret for reduceret regulering af åbne kilder i AI.

Nu i 2024 har Mistral AI igen sat standarden højt med to banebrydende modeller: Mistral Large 2 (også kendt som Mistral-Large-Instruct-2407) og Mistral NeMo. I denne komplette vejledning vil vi dykke dybt ind i funktionerne, præstationen og de potentielle anvendelser af disse imponerende AI-modeller.

Nøgle-specifikationer for Mistral Large 2 omfatter:

  • 123 milliarder parametre
  • 128k kontekstvindue
  • Understøttelse af dusinvis af sprog
  • Kompetence i 80+ programmeringssprog
  • Avancerede funktionkald-kapaciteter

Modellen er designet til at udvide grænserne for omkostningseffektivitet, hastighed og præstation, hvilket gør den til en attraktiv mulighed for både forskere og virksomheder, der søger at udnytte cutting-edge AI.

Mistral NeMo: Den nye mindre model

Mens Mistral Large 2 repræsenterer det bedste af Mistral AI’s store modeller, tager Mistral NeMo, som blev udgivet i juli 2024, en anden tilgang. Udviklet i samarbejde med NVIDIA (NVDA ), er Mistral NeMo en mere kompakt 12-milliard parameter model, der stadig tilbyder imponerende kapaciteter:

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

Mistral NeMo er positioneret som en erstatning for systemer, der i øjeblikket bruger Mistral 7B, og tilbyder forbedret præstation, samtidig med at den opretholder let brug og kompatibilitet.

Nøglefunktioner og kapaciteter

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

  1. Store kontekstvinduer: Med 128k token kontekstlængder kan begge modeller behandle og forstå langt længere stykker tekst, hvilket muliggør mere sammenhængende og kontekstligt relevante udgang.
  2. Flersproget understøttelse: Modellerne excellerer i en bred vifte af sprog, herunder engelsk, fransk, tysk, spansk, italiensk, kinesisk, japansk, koreansk, arabisk og hindi.
  3. Avancerede kodningskapaciteter: Begge modeller viser exceptionel kompetence i kodegenerering på tværs af mange programmeringssprog.
  4. Instruktionsfølging: Betydelige forbedringer er gjort i modellernes evne til at følge præcise instruktioner og håndtere multi-turn samtaler.
  5. Funktionkald: Naturlig understøttelse for funktionkald giver disse modeller mulighed for at interagere dynamisk med eksterne værktøjer og tjenester.
  6. Resonans og problemløsning: Forbedrede kapaciteter i matematisk resonans og komplekse problemløsningstasks.

Lad os udforske nogle af disse funktioner og se, hvordan de fungerer i praksis.

Præstationsbenchmarks

For at forstå de sande kapaciteter af Mistral Large 2 og Mistral NeMo er det essentiel at se på deres præstation på tværs af forskellige benchmarks. Lad os se på nogle nøglemetrikker:

Mistral Large 2 Benchmarks

Dette tabel præsenterer dygtigheden af forskellige LLM’er i forskellige programmeringssprog. Modeller som Mistral Large 2 (24.07), Llama 3.1 (405B) og GPT-4o er vurderet på deres evne til at forstå og generere kode i sprog som Python, C++, Bash, Java, TypeScript, PHP og C#.

Llama 3.1 405B viser stærk præstation på tværs af multiple sprog, med særligt høje score i Python og Java. Denne kompetence er kritisk for anvendelser, der involverer kodegenerering, fejlfinding 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-score for Mistral NeMo ikke er angivet i den givne information, beskrives den som tilbydende state-of-the-art præstation i sin størrelseskategori. Modellen overgår andre nyligt åbne, forudtrænede modeller som Gemma 2 9B og Llama 3 8B i forskellige opgaver.

Flersproget og kodningsdygtighed

En af de mest fremtrædende funktioner hos både Mistral Large 2 og Mistral NeMo er deres exceptionelle flersprogede kapaciteter. Dette er særligt vigtigt i vores stadig mere globaliserede verden, hvor AI-modeller skal kunne forstå og generere indhold på multiple sprog.

Mistral Large 2, for eksempel, understøtter dusinvis af sprog, herunder fransk, tysk, spansk, italiensk, portugisisk, arabisk, hindi, russisk, kinesisk, japansk og koreansk. Denne flersprogede kompetence 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å, hvordan Mistral Large 2 kan generere tekst på multiple sprog:

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

Her er kort hilsner på de anmodede sprog:

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]

Skriver nu et simpelt “Hello, World!”-program i Python, Java og JavaScript. [/INST]

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

Begge modeller er tilgængelige på forskellige platforme som Hugging Face, Mistral AI’s platform og større cloud-tjenesteudbydere som Google Cloud Platform, Azure AI Studio, Amazon Bedrock og IBM watsonx.ai​ (Mistral AI | Frontier AI in your hands)​​​.

Den agente paradigme og funktionkald

Både Mistral Large 2 og Mistral NeMo omfatter en agente-centreret design, der repræsenterer en paradigmeskift i, hvordan vi interagerer med AI-modeller. Denne tilgang fokuserer på at bygge modeller, der kan interagere med deres omgivelser, træffe beslutninger og udføre handlinger for at opnå specifikke mål.

En nøglefunktion, der muliggør denne paradigme, er den naturlige understøttelse for funktionkald. Dette giver modellerne mulighed for at interagere dynamisk med eksterne værktøjer og tjenester, hvilket effektivt udvider deres kapaciteter ud over blot tekstgenerering.

Lad os se på et eksempel på, hvordan funktionkald 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 model
mistral_models_path = &quot;path/to/mistral/models&quot; # Sørg for, at denne sti 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 funktion til at hente vejret</p>

<p>weather_function = Function(
name=&quot;get_current_weather&quot;,
description=&quot;Get the current weather&quot;,
parameters={
&quot;type&quot;:&quot;object&quot;,
&quot;properties&quot;:{
&quot;location&quot;:{
&quot;type&quot;:&quot;string&quot;,
&quot;description&quot;:&quot;The city and state, e.g. 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;The temperature unit to use. Infer this from the user&#039;s location.&quot;,
},
},
&quot;required&quot;:[&quot;location&quot;, &quot;format&quot;],
),
)</p>

<p># Opret en chat-completion-anmodning med funktionen
completion_request = ChatCompletionRequest(
tools=[Tool(function=weather_function)],
messages=[
UserMessage(content=&quot;What&#039;s the weather like today in Paris?&quot;),
],
)</p>

<p># Encode anmodningen
tokens = tokenizer.encode_chat_completion(completion_request).tokens</p>

<p># Generér 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 eksempel definerer vi en funktion til at hente vejret og inkluderer den i vores chat-completion-anmodning. Modellen kan derefter bruge denne funktion til at hente realtids vejret, hvilket demonstrerer, hvordan den kan interagere med eksterne systemer for at give mere præcis og opdateret information.

Tekken: En mere effektiv tokenizer

Mistral NeMo introducerer en ny tokenizer kaldet Tekken, der er baseret på Tiktoken og trænet på over 100 sprog. Denne nye tokenizer tilbyder betydelige forbedringer i tekstkompressions-effektivitet i forhold til tidligere tokenizere som SentencePiece.

Nøglefunktioner hos Tekken omfatter:

  • 30% mere effektiv kompression for kildekode, kinesisk, italiensk, fransk, tysk, spansk og russisk
  • 2 gange mere effektiv kompression for koreansk
  • 3 gange mere effektiv kompression for arabisk
  • Overgår Llama 3-tokenizeren i kompression af tekst for ca. 85% af alle sprog

Denne forbedrede tokeniseringseffektivitet oversætter sig til bedre modellpræstation, især når det handler om flersproget tekst og kildekode. Det giver modellen mulighed for at behandle mere information inden for samme kontekstvindue, hvilket resulterer i mere sammenhængende og kontekstligt relevante udgang.

Licens og tilgængelighed

Mistral Large 2 og Mistral NeMo har forskellige licensmodeller, der afspejler deres intendrede brugsområder:

Mistral Large 2

  • Udgivet under Mistral Research License
  • Tillader brug og ændring til forsknings- og ikke-kommercielle formål
  • Kommersielt brug kræver en Mistral Commercial License

Mistral NeMo

  • Udgivet under Apache 2.0 licens
  • Tillader åben brug, herunder kommercielle anvendelser

Begge modeller er tilgængelige gennem forskellige platforme:

  • Hugging Face: Vægte for både basis- og instruktionsmodeller er vært her
  • Mistral AI: Tilgængelig som mistral-large-2407 (Mistral Large 2) og open-mistral-nemo-2407 (Mistral NeMo)
  • Cloud Service Providers: Tilgængelig 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 udviklere, der søger at bruge disse modeller, her er et hurtigt eksempel på, hvordan man kan indlæse og bruge Mistral Large 2 med Hugging Face transformers:

from transformers import AutoModelForCausalLM, AutoTokenizer

<p>model_name = &quot;mistralai/Mistral-Large-Instruct-2407&quot;
device = &quot;cuda&quot; # Brug GPU, hvis tilgængelig</p>

<p># Indlæs modellen og tokenizoren
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)</p>

<p># Flyt modellen til den korrekte enhed
model.to(device)</p>

<p># Forbered input
messages = [
{&quot;role&quot;:&quot;system&quot;, &quot;content&quot;:&quot;You are a helpful AI assistant.&quot;},
{&quot;role&quot;:&quot;user&quot;, &quot;content&quot;:&quot;Explain the concept of neural networks in simple terms.&quot;}
]</p>

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

<p># Generér en respons
output_ids = model.generate(input_ids, max_new_tokens=500, do_sample=True)</p>

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

Dette kodeeksempel demonstrerer, hvordan man kan indlæse modellen, forberede input i en chatskabelon, generere en respons og decode output.

Begrænsninger og etiske overvejelser

Selvom Mistral Large 2 og Mistral NeMo repræsenterer betydelige fremskridt i AI-teknologi, er det vigtigt at anerkende deres begrænsninger og de etiske overvejelser, der omgiver deres brug:

  1. Potentiale for fordomme: Ligesom alle AI-modeller, der er trænet på store datasæt, kan disse modeller arve og forstærke fordomme, der er til stede i deres træningsdata. Brugere skal være bevidste om dette og implementere passende sikkerhedsforanstaltninger.
  2. Mangel på sand forståelse: Trods deres imponerende kapaciteter besidder disse modeller ikke sand forståelse eller bevidsthed. De genererer svar baseret på mønstre i deres træningsdata, hvilket kan føre til plausibelt lydende, men forkerte informationer.
  3. Privatlivsproblemer: Når disse modeller bruges, især i anvendelser, der omhandler følsomme oplysninger, er det vigtigt at overveje implikationerne for datasikkerhed og privatliv.

Konklusion

Fine-tuning avancerede modeller som Mistral Large 2 og Mistral NeMo giver en kraftfuld mulighed for at udnytte cutting-edge AI til en række anvendelser, fra dynamisk funktionkald til effektiv flersproget tekstbehandling. Her er nogle praktiske råd og nøgleindsigter at holde øje på:

  1. Forstå dit brugsområde: Definer tydeligt, hvilke specifikke opgaver og mål du ønsker, at din model skal opnå. Denne forståelse vil vejlede dit valg af model og fine-tuning-tilgang, enten det er Mistral’s robuste funktionkaldskapaciteter eller dens effektive flersprogede tekstbehandling.
  2. Optimer for effektivitet: Udnyt Tekken-tokenizeren til at forbedre tekstkompressions-effektiviteten, især hvis din anvendelse indebærer håndtering af store mængder tekst eller multiple sprog. Dette vil forbedre modellens præstation og reducere beregningsomkostningerne.
  3. Udnyt funktionkald: Omfavn den agente paradigme ved at inkludere funktionkald i dine modellinteraktioner. Dette giver din AI mulighed for at interagere dynamisk med eksterne værktøjer og tjenester, hvilket giver mere præcis og brugbar output. For eksempel kan integration af vejropslysninger eller andre eksterne datakilder betydeligt forbedre relevansen og nyttigheden af modellens svar.
  4. Vælg den rigtige platform: Sørg for at implementere dine modeller på platforme, der understøtter deres kapaciteter, såsom Google Cloud Platform’s Vertex AI, Azure AI Studio, Amazon Bedrock og IBM watsonx.ai. Disse platforme giver den nødvendige infrastruktur og værktøjer til at maksimere præstationen og skalerbarheden af dine AI-modeller.

Ved at følge disse råd og bruge de tilgængelige kodeeksempler kan du effektivt udnytte kraften af Mistral Large 2 og Mistral NeMo til dine specifikke behov.

Jeg har brugt de sidste fem år på at dykke ned 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-ingeniørprojekter, med en særlig fokus på AI/ML. Min fortsatte nysgerrighed har også ført mig mod Natural Language Processing, et felt jeg er ivrig efter at udforske yderligere.