AI-modeller og platforme
Mistral 2 og Mistral NeMo: En komplet vejledning til de seneste LLM fra Paris

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:
- 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.
- 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 viser exceptionel kompetence i kodegenerering på tværs af mange programmeringssprog.
- Instruktionsfølging: Betydelige forbedringer er gjort i modellernes evne til at følge præcise instruktioner og håndtere multi-turn samtaler.
- Funktionkald: Naturlig understøttelse for funktionkald giver disse modeller mulighed for 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ø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.
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 = "path/to/mistral/models" # Sørg for, at denne sti er korrekt
tokenizer = MistralTokenizer.from_file(f"{mistral_models_path}/tokenizer.model.v3")
model = Transformer.from_folder(mistral_models_path)</p>
<p># Definer en funktion til at hente vejret</p>
<p>weather_function = Function(
name="get_current_weather",
description="Get the current weather",
parameters={
"type":"object",
"properties":{
"location":{
"type":"string",
"description":"The city and state, e.g. San Francisco, CA",
},
"format":{
"type":"string",
"enum":["celsius", "fahrenheit"],
"description":"The temperature unit to use. Infer this from the user's location.",
},
},
"required":["location", "format"],
),
)</p>
<p># Opret en chat-completion-anmodning med funktionen
completion_request = ChatCompletionRequest(
tools=[Tool(function=weather_function)],
messages=[
UserMessage(content="What's the weather like today in Paris?"),
],
)</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) ogopen-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
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 = "mistralai/Mistral-Large-Instruct-2407"
device = "cuda" # 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 = [
{"role":"system", "content":"You are a helpful AI assistant."},
{"role":"user", "content":"Explain the concept of neural networks in simple terms."}
]</p>
<p># Encode input
input_ids = tokenizer.apply_chat_template(messages, return_tensors="pt").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.
















