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

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:
- 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.
- Flersproget understøttelse: Modellerne excellerer i en bred vifte af sprog, herunder engelsk, fransk, tysk, spansk, italiensk, kinesisk, japansk, koreansk, arabisk og hindi.
- Avancerede kodningskapaciteter: Begge modeller demonstrerer exceptionel kompetence i kodegenerering på tværs af mange programmeringssprog.
- Instruktionsfølging: Betydelige forbedringer er blevet gjort i modellernes evne til at følge præcise instruktioner og håndtere multi-turn samtaler.
- Funktionkald: Naturlig understøttelse af funktionkald tillader disse modeller at interagere dynamisk med eksterne værktøjer og tjenester.
- 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.
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) ogopen-mistral-nemo-2407(Mistral NeMo) - Cloud-tjenesteudbydere: Tilgængelig på Google Cloud Platforms Vertex AI, Azure AI Studio, Amazon Bedrock og IBM watsonx.ai
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.
















