AI-modeller och plattformar
Mistral 2 och Mistral NeMo: En omfattande guide till de senaste LLM från Paris

Mistral AI, ett företag grundat av tidigare anställda på Google’s DeepMind och Meta, har sedan 2023 varit en viktig aktör i AI-samhället.
Mistral AI drog först uppmärksamhet till sig med sin debutmmodell, Mistral 7B, som släpptes 2023. Denna modell med 7 miljarder parametrar fick snabbt uppmärksamhet för sin imponerande prestanda, som överträffade större modeller som Llama 2 13B i olika benchmark-tester och till och med konkurrerade med Llama 1 34B i många aspekter. Vad som skiljde Mistral 7B från andra modeller var inte bara dess prestanda, utan också dess tillgänglighet – modellen kunde enkelt laddas ner från GitHub eller till och med via en 13,4-gigabyte stor torrent, vilket gjorde den lättillgänglig för forskare och utvecklare över hela världen.
Företagets ovanliga tillvägagångssätt för utgivningar, ofta utan traditionella papper, blogginlägg eller pressmeddelanden, har visat sig vara mycket effektivt för att fånga AI-samhällets uppmärksamhet. Denna strategi, i kombination med deras engagemang för öppen källkod, har positionerat Mistral AI som en betydande aktör i AI-landskapet.
Mistral AI:s snabba framgång i branschen bekräftas ytterligare av deras nyliga framgång i finansieringsrundan. Företaget uppnådde en imponerande värdering på 2 miljarder dollar efter en finansieringsrunda ledd av Andreessen Horowitz. Detta skedde efter en historisk 118 miljoner dollar stor seed-runda – den största i europeisk historia – vilket visar på den enorma tilliten investerare har till Mistral AI:s vision och förmågor.
Utöver sina tekniska framsteg har Mistral AI också varit aktivt engagerat i utformningen av AI-politik, särskilt i diskussioner kring EU:s AI-lag, där de har förespråkat minskad reglering av öppen källkod inom AI.
Nu, 2024, har Mistral AI återigen höjt ribban med två banbrytande modeller: Mistral Large 2 (även känd som Mistral-Large-Instruct-2407) och Mistral NeMo. I denna omfattande guide kommer vi att dyka djupt in i funktionerna, prestandan och de potentiella tillämpningarna för dessa imponerande AI-modeller.
Nyckelfunktioner för Mistral Large 2 inkluderar:
- 123 miljarder parametrar
- 128k kontextfönster
- Stöd för dussintals språk
- Kompetens i 80+ programmeringsspråk
- Avancerade funktioner för funktionssamtal
Modellen är utformad för att pressa gränserna för kostnadseffektivitet, hastighet och prestanda, vilket gör den till ett attraktivt alternativ för både forskare och företag som vill utnyttja den senaste AI-tekniken.
Mistral NeMo: Den nya mindre modellen
Medan Mistral Large 2 representerar det bästa av Mistral AI:s storskaliga modeller, tar Mistral NeMo, som släpptes i juli 2024, en annan väg. Utvecklad i samarbete med NVIDIA (NVDA ) är Mistral NeMo en mer kompakts modell med 12 miljarder parametrar som fortfarande erbjuder imponerande funktioner:
- 12 miljarder parametrar
- 128k kontext fönster
- State-of-the-art prestanda i sin storlekskategori
- Apache 2.0-licens för öppen användning
- Quantization-aware utbildning för effektiv inferens
Mistral NeMo är tänkt att vara en ersättning för system som för närvarande använder Mistral 7B, med förbättrad prestanda samtidigt som den behåller enkelhet och kompatibilitet.
Nyckelfunktioner och förmågor
Både Mistral Large 2 och Mistral NeMo delar flera nyckelfunktioner som särskiljer dem i AI-landskapet:
- Stora kontextfönster: Med 128k token långa kontextfönster kan båda modellerna bearbeta och förstå mycket längre textstycken, vilket möjliggör mer sammanhängande och kontextuellt relevanta utdata.
- Flerspråkigt stöd: Modellerna excellerar i en mängd olika språk, inklusive engelska, franska, tyska, spanska, italienska, kinesiska, japanska, koreanska, arabiska och hindi.
- Avancerade kodningsförmågor: Båda modellerna visar exceptionell kompetens i kodgenerering över ett stort antal programmeringsspråk.
- Instruktionsföljande: Betydande förbättringar har gjorts i modellernas förmåga att följa precisa instruktioner och hantera multi-turn conversations.
- Funktionssamtal: Inbyggt stöd för funktionssamtal tillåter dessa modeller att interagera dynamiskt med externa verktyg och tjänster.
- Resonemang och problemlösning: Förbättrade förmågor i matematiskt resonemang och komplexa problemlösningsuppgifter.
Låt oss undersöka några av dessa funktioner och se hur de fungerar i praktiken.
Prestandabenchmark
För att förstå de verkliga förmågorna hos Mistral Large 2 och Mistral NeMo är det viktigt att titta på deras prestanda över olika benchmark-tester. Låt oss undersöka några nyckelmetricer:
Mistral Large 2 Benchmark
Denna tabell presenterar förmågan hos olika LLM-modeller i olika programmeringsspråk. Modeller som Mistral Large 2 (24.07), Llama 3.1 (405B) och GPT-4o utvärderas utifrån deras förmåga att förstå och generera kod i språk som Python, C++, Bash, Java, TypeScript, PHP och C#.
Llama 3.1 405B visar stark prestanda över flera språk, med särskilt höga poäng i Python och Java. Denna kompetens är avgörande för applikationer som involverar kodgenerering, felsökning och programvaruutveckling, vilket gör dessa modeller till värdefulla verktyg för utvecklare.
Mistral NeMo Benchmark
Medan specifika benchmark-poäng för Mistral NeMo inte tillhandahålls i den givna informationen, beskrivs den som erbjudande state-of-the-art prestanda i sin storlekskategori. Modellen överträffar andra nyliga öppen källkods-förtränade modeller som Gemma 2 9B och Llama 3 8B i olika uppgifter.
Flerspråkig och kodningsförmåga
En av de mest framträdande funktionerna hos både Mistral Large 2 och Mistral NeMo är deras exceptionella flerspråkiga förmågor. Detta är särskilt viktigt i vår alltmer globaliserade värld, där AI-modeller måste kunna förstå och generera innehåll på flera språk.
Mistral Large 2, till exempel, stöder dussintals språk, inklusive franska, tyska, spanska, italienska, portugisiska, arabiska, hindi, ryska, kinesiska, japanska och koreanska. Denna flerspråkiga kompetens sträcker sig bortom enkel översättning, och omfattar en nyanserad förståelse och generering av innehåll på dessa språk.
För att illustrera detta, låt oss titta på ett exempel på Mistral Large 2 som genererar text på flera språk:
[INST] Generera en kort hälsning på engelska, franska, tyska, spanska och japanska. [/INST]
Här är korta hälsningar på de begärda språken:
Engelska: Hello! How are you today?
Franska: Bonjour ! Comment allez-vous aujourd’hui ?
Tyska: Hallo! Wie geht es Ihnen heute?
Spanska: ¡Hola! ¿Cómo estás hoy?
Japanska: こんにちは!今日はお元気ですか?
[INST]
Skriv nu ett enkelt “Hej världen!”-program på Python, Java och JavaScript. [/INST]
Dessa exempel visar både den flerspråkiga textgenereringen och kodningsförmågorna hos modellen.
Båda modellerna är tillgängliga på olika plattformar, såsom Hugging Face, Mistral AI:s plattform och stora molntjänstleverantörer som Google Cloud Platform, Azure AI Studio, Amazon (AMZN ) Bedrock och IBM watsonx.ai (Mistral AI | Frontier AI i dina händer).
Den agenterade paradigm och funktionssamtal
Både Mistral Large 2 och Mistral NeMo omfamnar en agenterad design, som representerar en paradigmförändring i hur vi interagerar med AI-modeller. Detta tillvägagångssätt fokuserar på att bygga modeller som kan interagera med sin omgivning, fatta beslut och vidta åtgärder för att uppnå specifika mål.
En nyckelfunktion som möjliggör denna paradigm är det inbyggda stödet för funktionssamtal. Detta tillåter modellerna att dynamiskt interagera med externa verktyg och tjänster, vilket effektivt utökar deras förmågor bortom enkel textgenerering.
Låt oss titta på ett exempel på hur funktionssamtal kan fungera 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># Initiera tokenizer och modell
mistral_models_path = "sökväg/till/mistral/modeller" # Se till att denna sökväg är korrekt
tokenizer = MistralTokenizer.from_file(f"{mistral_models_path}/tokenizer.model.v3")
model = Transformer.from_folder(mistral_models_path)</p>
<p># Definiera en funktion för att hämta väderinformation
weather_function = Function(
name="get_current_weather",
description="Hämta aktuell väder",
parameters={
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "Staden och staten, t.ex. San Francisco, CA",
},
"format": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "Temperatur enhet att använda. Anta detta från användarens plats.",
},
},
"required": ["location", "format"],
},
)</p>
<p># Skapa en chattkompletteringsbegäran med funktionen
completion_request = ChatCompletionRequest(
tools=[Tool(function=weather_function)],
messages=[
UserMessage(content="Vad är vädret som idag i Paris?"),
],
)</p>
<p># Kodifiera begäran
tokens = tokenizer.encode_chat_template(completion_request).tokens</p>
<p># Generera ett svar
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 detta exempel definierar vi en funktion för att hämta väderinformation och inkluderar den i vår chattkompletteringsbegäran. Modellen kan sedan använda denna funktion för att hämta realtidsväderdata, vilket visar hur den kan interagera med externa system för att tillhandahålla mer exakt och uppdaterad information.
Tekken: En mer effektiv tokenizer
Mistral NeMo introducerar en ny tokenizer som kallas Tekken, som bygger på Tiktoken och tränats på över 100 språk. Denna nya tokenizer erbjuder betydande förbättringar i textkomprimeringseffektivitet jämfört med tidigare tokenizers som SentencePiece.
Nyckelfunktioner i Tekken inkluderar:
- 30% mer effektiv komprimering för källkod, kinesiska, italienska, franska, tyska, spanska och ryska
- 2x mer effektiv komprimering för koreanska
- 3x mer effektiv komprimering för arabiska
- Överträffar Llama 3-tokenizern i komprimering av text för ca 85% av alla språk
Denna förbättrade tokeniserings-effektivitet översätts till bättre modellprestanda, särskilt när det gäller flerspråkig text och källkod. Den tillåter modellen att bearbeta mer information inom samma kontextfönster, vilket leder till mer sammanhängande och kontextuellt relevanta utdata.
Licensiering och tillgänglighet
Mistral Large 2 och Mistral NeMo har olika licensmodeller, som reflekterar deras avsedda användningsområden:
Mistral Large 2
- Släppt under Mistral Research License
- Tillåter användning och modifiering för forskning och icke-kommersiella ändamål
- Kommersiell användning kräver en Mistral Commercial License
Mistral NeMo
- Släppt under Apache 2.0-licens
- Tillåter öppen användning, inklusive kommersiella applikationer
Båda modellerna är tillgängliga via olika plattformar:
- Hugging Face: Vikter för både bas- och instruktionsmodeller finns här
- Mistral AI: Tillgänglig som
mistral-large-2407(Mistral Large 2) ochopen-mistral-nemo-2407(Mistral NeMo) - Molntjänstleverantörer: Tillgänglig på Google Cloud Platforms Vertex AI, Azure AI Studio, Amazon Bedrock och IBM watsonx.ai
För utvecklare som vill använda dessa modeller, här är ett snabbt exempel på hur man kan ladda och använda Mistral Large 2 med Hugging Face transformers:
from transformers import AutoModelForCausalLM, AutoTokenizer
<p>model_name = "mistralai/Mistral-Large-Instruct-2407"
device = "cuda" # Använd GPU om tillgänglig</p>
<p># Ladda modellen och tokenizern
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)</p>
<p># Flytta modellen till lämplig enhet
model.to(device)</p>
<p># Förbered indata
messages = [
{"role": "system", "content": "Du är en hjälpsam AI-assistent."},
{"role": "user", "content": "Förklara konceptet med neuronnät på ett enkelt sätt."}
]</p>
<p># Kodifiera indata
input_ids = tokenizer.apply_chat_template(messages, return_tensors="pt").to(device)</p>
<p># Generera svar
output_ids = model.generate(input_ids, max_new_tokens=500, do_sample=True)</p>
<p># Dekodera och skriv ut svaret
response = tokenizer.decode(output_ids[0], skip_special_tokens=True)
print(response)</p>
Denna kod visar hur man kan ladda modellen, förbereda indata i chattformat, generera ett svar och dekodera utdata.
















