Connect with us

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

Kunstig intelligens

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

mm
Mistral Large 2 and Mistral NeMo

Mistral AI, der er grundlagt af tidligere ansatte fra Google’s DeepMind og Meta, har siden 2023 konsekvent skabt bølger i AI-samfundet.

Mistral AI fik først verdens opmærksomhed med deres debatmodel, Mistral 7B, der blev udgivet i 2023. Denne 7-milliard parametermodel fik hurtigt opmærksomhed for sin imponerende præstation, der overgik større modeller som Llama 2 13B i forskellige benchmarks og endda udfordrede Llama 1 34B på mange målinger. 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.

Selskabets usædvanlige tilgang til udgivelser, ofte uden traditionelle artikler, blogs eller pressemeddelelser, har vist sig at være bemærkelsesværdigt effektivt til at fange AI-samfundets opmærksomhed. Denne strategi, kombineret med deres engagement for åbne kildeskabsprincipper, har positioneret Mistral AI som en stærk spiller i AI-landskabet.

Mistral AI’s hurtige opstigning i branchen bekræftes yderligere af deres seneste finansieringssucces. Selskabet opnåede en imponerende vurdering på 2 milliarder dollars efter en finansieringsrunde ledet af Andreessen Horowitz. Dette kom efter en historisk $118 millioner seed-runde – den største i europæisk historie – hvilket viser den enorme tillid, investorer har til Mistral AI’s vision og evner.

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

Nu i 2024 har Mistral AI igen sat en ny standard med to banebrydende modeller: Mistral Large 2 (også kendt som Mistral-Large-Instruct-2407) og Mistral NeMo. I denne komplette vejledning dykker vi 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+ kodnings-sprog
  • 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, der blev udgivet i juli 2024, en anden tilgang. Udviklet i samarbejde med NVIDIA, er Mistral NeMo en mere kompakt 12-milliard parametermodel, 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 til åben brug
  • Quantization-aware træning til effektiv inferens

Mistral NeMo er positioneret som en erstatning for systemer, der i øjeblikket bruger Mistral 7B, og tilbyder forbedret præstation, mens 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 koherent og kontekstligt relevant output.
  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 demonstrerer exceptionel kompetence i kodegenerering på tværs af mange programmeringssprog.
  4. Instruktionsfølging: Betydelige forbedringer er blevet gjort i modellernes evne til at følge præcise instruktioner og håndtere multi-turn samtaler.
  5. Funktionkald: Naturlig understøttelse af funktionkald tillader disse modeller 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øgle-målinger:

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 evalueret 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 dygtighed er kritisk for anvendelser, der indebærer 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, er den beskrevet som tilbydende state-of-the-art præstation i sin størrelseskategori. Modellen overgår andre nylige åbne kilde-forudtrænede modeller som Gemma 2 9B og Llama 3 8B i forskellige opgaver.

Flersproget og kodningsdygtighed

En af de fremherskende funktioner af både Mistral Large 2 og Mistral NeMo er deres exceptionelle flersprogede kapaciteter. Dette er særligt vigtigt i vores stadigt mere globaliserede verden, hvor AI-modeller skal 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 udstræ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 genererer tekst på multiple sprog:

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

Her er korte 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]

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

Disse eksempler viser både den flersprogede tekstgenerering og kodningskapaciteterne af modellen.

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-centrisk design, som 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å bestemte mål.

En nøglefunktion, der muliggør denne paradigme, er den naturlige understøttelse af funktionkald. Dette tillader modellerne 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

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

# Definer en funktion til at hente vejret
weather_function = Function(
name="get_current_weather",
description="Hent det aktuelle vejr",
parameters={
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "By og stat, f.eks. San Francisco, CA",
},
"format": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "Temperatur enhed at bruge. Inferer dette fra brugerens placering.",
},
},
"required": ["location", "format"],
},
)

# Opret en chat-completion-anmodning med funktionen
completion_request = ChatCompletionRequest(
tools=[Tool(function=weather_function)],
messages=[
UserMessage(content="Hvad er vejret som i dag i Paris?"),
],
)

# Kod anmodningen
tokens = tokenizer.encode_chat_template(completion_request).tokens

# 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])

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 vejret i realtid, 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, som er baseret på Tiktoken og trænet på over 100 sprog. Denne nye tokenizer tilbyder betydelige forbedringer i tekstkomprimeringseffektivitet i forhold til tidligere tokenizere som SentencePiece.

Nøglefunktioner af Tekken omfatter:

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

Denne forbedrede tokeniseringseffektivitet oversætter sig til bedre modelpræstation, især når det handler om flersproget tekst og kildekode. Det tillader modellen at behandle mere information inden for det samme kontekstvindue, hvilket fører til mere koherent og kontekstligt relevant output.

Licens og tilgængelighed

Mistral Large 2 og Mistral NeMo har forskellige licensmodeller, der afspejler deres tiltenkte 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 base- 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-tjenesteudbydere: Tilgæ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 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

model_name = "mistralai/Mistral-Large-Instruct-2407"
device = "cuda" # Brug GPU, hvis det er tilgængeligt

# Indlæs modellen og tokenizer
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)

# Flyt modellen til den korrekte enhed
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."},
]

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

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

# Dekod og udskriv responsen
response = tokenizer.decode(output_ids[0], skip_special_tokens=True)
print(response)

Dette kodeeksempel demonstrerer, hvordan man kan indlæse modellen, forberede input i en chat-format, generere en respons og dekodere 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 omgærder 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: Selvom de har imponerende kapaciteter, besidder disse modeller ikke sand forståelse eller bevidsthed. De genererer responser baseret på mønstre i deres træningsdata, hvilket kan føre til plausibelt lydende, men forkert information.
  3. Privatlivsproblemer: Når man bruger disse modeller, især i anvendelser, der behandler følsomme oplysninger, er det vigtigt at overveje dataprivatlivs- og sikkerhedsimplikationer.

Konklusion

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

  1. Forstå dit brugsområde: Definer tydeligt de specifikke opgaver og mål, du ønsker, at din model skal opnå. Denne forståelse vil guide dit valg af model og finjusteringsmetode, enten det er Mistral’s robuste funktionkaldskapaciteter eller dens effektive flersprogede tekstbehandling.
  2. Optimer for effektivitet: Udnyt Tekken-tokenizeren til at betydeligt forbedre tekstkomprimeringseffektiviteten, især hvis din anvendelse indebærer håndtering af store mængder tekst eller multiple sprog. Dette vil forbedre modelpræstationen og reducere beregningsomkostningerne.
  3. Udnyt funktionkald: Omfavn den agente paradigme ved at inkorporere funktionkald i dine modelinteraktioner. Dette tillader din AI at interagere dynamisk med eksterne værktøjer og tjenester, hvilket giver mere præcis og handlebart output. For eksempel kan integration af vejrtjenester eller andre eksterne datakilder betydeligt forbedre relevansen og nyttigheden af din models responser.
  4. Vælg den rigtige platform: Sørg for at implementere dine modeller på platforme, der understøtter deres kapaciteter, såsom Google Cloud Platforms Vertex AI, Azure AI Studio, Amazon Bedrock og IBM watsonx.ai. Disse platforme tilbyder 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 udnytte 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 til, at jeg har bidraget til over 50 forskellige software-udviklingsprojekter, med særlig fokus på AI/ML. Min vedvarende nysgerrighed har også ført mig i retning af Natural Language Processing, et felt jeg er ivrig efter at udforske yderligere.