Kunstmatige intelligentie

Mistral 2 en Mistral NeMo: Een uitgebreide gids voor de nieuwste LLM uit Parijs

mm
Mistral Large 2 and Mistral NeMo

Opgericht door alumni van Google’s DeepMind en Meta, heeft de Parijse startup Mistral AI sinds 2023 consistent golven gemaakt in de AI-gemeenschap.

Mistral AI trok voor het eerst de aandacht van de wereld met zijn debuutmodel, Mistral 7B, dat in 2023 werd uitgebracht. Dit 7-miljard parametermodel kreeg snel aandacht vanwege zijn indrukwekkende prestaties, waarbij het grotere modellen zoals Llama 2 13B in verschillende benchmarks overtrof en zelfs Llama 1 34B in veel metrics evenaarde. Wat Mistral 7B onderscheidde, was niet alleen de prestaties, maar ook de toegankelijkheid – het model kon gemakkelijk van GitHub worden gedownload of zelfs via een 13,4-gigabyte torrent, waardoor het gemakkelijk beschikbaar was voor onderzoekers en ontwikkelaars over de hele wereld.

De onconventionele aanpak van de releases van het bedrijf, waarbij traditionele papers, blogs of persberichten vaak worden overgeslagen, heeft zichzelf als uiterst effectief bewezen in het trekken van de aandacht van de AI-gemeenschap. Deze strategie, in combinatie met hun toewijding aan open-source-principes, heeft Mistral AI gepositioneerd als een formidabele speler in het AI-landschap.

De snelle opkomst van Mistral AI in de industrie wordt verder aangetoond door hun recente fondsenwervingsucces. Het bedrijf bereikte een verbijsterende waardering van 2 miljard dollar na een fondsenronde die werd geleid door Andreessen Horowitz. Dit volgde op een historische seedronde van 118 miljoen dollar – de grootste in de Europese geschiedenis – en toont de immense vertrouwen van investeerders in de visie en capaciteiten van Mistral AI.

Naast hun technologische vooruitgang is Mistral AI ook actief betrokken geweest bij het vormgeven van het AI-beleid, met name in discussies over de EU AI-wet, waarin ze hebben gepleit voor minder regelgeving in open-source AI.

Nu, in 2024, heeft Mistral AI opnieuw de lat hoger gelegd met twee baanbrekende modellen: Mistral Large 2 (ook bekend als Mistral-Large-Instruct-2407) en Mistral NeMo. In deze uitgebreide gids zullen we diep duiken in de functies, prestaties en potentiële toepassingen van deze indrukwekkende AI-modellen.

Sleutelspecificaties van Mistral Large 2 zijn:

  • 123 miljard parameters
  • 128k contextwindow
  • Ondersteuning voor tientallen talen
  • Vaardigheid in 80+ programmeertalen
  • Geavanceerde functionaliteiten voor het aanroepen van functies

Het model is ontworpen om de grenzen van kostenefficiëntie, snelheid en prestaties te verleggen, waardoor het een aantrekkelijke optie is voor zowel onderzoekers als ondernemingen die gebruik willen maken van state-of-the-art AI.

Mistral NeMo: Het nieuwe kleinere model

Terwijl Mistral Large 2 de beste vertegenwoordiger is van Mistral AI’s grote modellen, neemt Mistral NeMo, dat in juli 2024 werd uitgebracht, een andere aanpak. Ontwikkeld in samenwerking met NVIDIA, is Mistral NeMo een compact model met 12 miljard parameters dat nog steeds indrukwekkende capaciteiten biedt:

  • 12 miljard parameters
  • 128k context window
  • State-of-the-art prestaties in zijn categorie
  • Apache 2.0-licentie voor open gebruik
  • Quantization-aware training voor efficiënte inferentie

Mistral NeMo wordt gepositioneerd als een vervanging voor systemen die momenteel Mistral 7B gebruiken, met verbeterde prestaties en behoud van gemakkelijk gebruik en compatibiliteit.

Sleutelfuncties en capaciteiten

Zowel Mistral Large 2 als Mistral NeMo delen verschillende sleutelfuncties die hen onderscheiden in het AI-landschap:

  1. Grote contextwindows: Met 128k token contextlengtes kunnen beide modellen langer stukken tekst verwerken en begrijpen, waardoor meer samenhangende en contextueel relevante uitvoer mogelijk is.
  2. Meertalige ondersteuning: De modellen excelleren in een breed scala aan talen, waaronder Engels, Frans, Duits, Spaans, Italiaans, Chinees, Japans, Koreaans, Arabisch en Hindi.
  3. Geavanceerde coderingscapaciteiten: Beide modellen tonen uitzonderlijke vaardigheid in codegeneratie over verschillende programmeertalen.
  4. Opdrachtvolging: Aanzienlijke verbeteringen zijn aangebracht in de mogelijkheid van de modellen om precieze opdrachten te volgen en meerdere gespreksronden te hanteren.
  5. Functieaanroep: Native ondersteuning voor functieaanroep stelt deze modellen in staat om dynamisch te communiceren met externe tools en diensten.
  6. Redeneren en probleemoplossing: Verbeterde capaciteiten in wiskundig redeneren en complexe probleemoplossingstaken.

Laten we enkele van deze functies onderzoeken en zien hoe ze in de praktijk presteren.

Prestatiebenchmarks

Om de echte capaciteiten van Mistral Large 2 en Mistral NeMo te begrijpen, is het essentieel om naar hun prestaties op verschillende benchmarks te kijken. Laten we enkele belangrijke metrics onderzoeken:

Mistral Large 2-benchmarks

Deze tabel toont de vaardigheid van verschillende LLM’s in verschillende programmeertalen. Modellen zoals Mistral Large 2 (24.07), Llama 3.1 (405B) en GPT-4o worden beoordeeld op hun vermogen om code te begrijpen en te genereren in talen zoals Python, C++, Bash, Java, TypeScript, PHP en C#.

Llama 3.1 405B toont sterke prestaties in meerdere talen, met name hoge scores in Python en Java. Deze vaardigheid is cruciaal voor toepassingen die codegeneratie, debugging en softwareontwikkeling betreffen, waardoor deze modellen waardevolle tools zijn voor ontwikkelaars.

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

Hoewel specifieke benchmarkscores voor Mistral NeMo niet in de gegeven informatie worden verstrekt, wordt het beschreven als state-of-the-art prestaties in zijn categorie. Het model overtreft andere recente open-source pre-getrainde modellen zoals Gemma 2 9B en Llama 3 8B in verschillende taken.

Meertalige en coderingsvaardigheden

Een van de opvallende functies van zowel Mistral Large 2 als Mistral NeMo is hun uitzonderlijke meertalige capaciteiten. Dit is vooral belangrijk in onze steeds meer geglobaliseerde wereld, waar AI-modellen moeten kunnen begrijpen en inhoud genereren in meerdere talen.

Mistral Large 2 ondersteunt bijvoorbeeld tientallen talen, waaronder Frans, Duits, Spaans, Italiaans, Portugees, Arabisch, Hindi, Russisch, Chinees, Japans en Koreaans. Deze meertalige vaardigheid gaat verder dan alleen vertaling, en omvat een genuanceerd begrip en generatie in deze talen.

Om dit te illustreren, laten we een voorbeeld zien van Mistral Large 2 dat tekst genereert in meerdere talen:

[INST] Generate a short greeting in English, French, German, Spanish, and Japanese. [/INST]

Here are short greetings in the requested languages:

English: Hello! How are you today?
French: Bonjour ! Comment allez-vous aujourd’hui ?
German: Hallo! Wie geht es Ihnen heute?
Spanish: ¡Hola! ¿Cómo estás hoy?
Japanese: こんにちは!今日はお元気ですか?

[INST]

Now, write a simple “Hello, World!” program in Python, Java, and JavaScript. [/INST]

Deze voorbeelden laten zowel de meertalige tekstgeneratie als de coderingscapaciteiten van het model zien.

Beide modellen zijn beschikbaar op verschillende platforms, zoals Hugging Face, het platform van Mistral AI en grote cloudserviceproviders zoals Google Cloud Platform, Azure AI Studio, Amazon Bedrock en IBM watsonx.ai​ (Mistral AI | Frontier AI in your hands)​​​.

Het agente-paradigma en functieaanroep

Zowel Mistral Large 2 als Mistral NeMo omarmen een agente-georiënteerd ontwerp, dat een paradigmaswitch vertegenwoordigt in hoe we met AI-modellen omgaan. Deze benadering richt zich op het bouwen van modellen die in staat zijn om met hun omgeving te communiceren, beslissingen te nemen en acties te ondernemen om specifieke doelen te bereiken.

Een sleutelfunctie die deze paradigma mogelijk maakt, is de native ondersteuning voor functieaanroep. Dit stelt de modellen in staat om dynamisch te communiceren met externe tools en diensten, waardoor hun capaciteiten verder gaan dan eenvoudige tekstgeneratie.

Laten we een voorbeeld zien van hoe functieaanroep zou kunnen werken met 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># Initialize tokenizer en model
mistral_models_path = "path/to/mistral/models" # Zorg ervoor dat dit pad correct is
tokenizer = MistralTokenizer.from_file(f"{mistral_models_path}/tokenizer.model.v3")
model = Transformer.from_folder(mistral_models_path)</p>

<p># Definieer een functie voor het ophalen van weersinformatie
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># Maak een chat-completion request met de functie
completion_request = ChatCompletionRequest(
tools=[Tool(function=weather_function)],
messages=[
UserMessage(content="What's the weather like today in Paris?"),
],
)</p>

<p># Encode de request
input_ids = tokenizer.encode_chat_completion(completion_request).tokens</p>

<p># Genereer een antwoord
output_ids = model.generate(input_ids, max_new_tokens=256, temperature=0.7, eos_id=tokenizer.instruct_tokenizer.tokenizer.eos_id)
result = tokenizer.decode(output_ids[0])</p>

print(result)

In dit voorbeeld definiëren we een functie voor het ophalen van weersinformatie en voegen we deze toe aan onze chat-completion request. Het model kan dan deze functie gebruiken om real-time weersgegevens op te halen, waardoor het kan communiceren met externe systemen om meer accurate en up-to-date informatie te verstrekken.

Tekken: Een efficiëntere tokenizer

Mistral NeMo introduceert een nieuwe tokenizer genaamd Tekken, die is gebaseerd op Tiktoken en getraind op meer dan 100 talen. Deze nieuwe tokenizer biedt aanzienlijke verbeteringen in tekstcompressie-efficiëntie in vergelijking met eerdere tokenizers zoals SentencePiece.

Sleutelfuncties van Tekken zijn:

  • 30% meer efficiënte compressie voor broncode, Chinees, Italiaans, Frans, Duits, Spaans en Russisch
  • 2x meer efficiënte compressie voor Koreaans
  • 3x meer efficiënte compressie voor Arabisch
  • Overtreft de Llama 3-tokenizer in tekstcompressie voor ongeveer 85% van alle talen

Deze verbeterde tokenisatie-efficiëntie vertaalt zich in betere modelprestaties, vooral bij het omgaan met meertalige tekst en broncode. Het stelt het model in staat om meer informatie te verwerken binnen hetzelfde contextwindow, waardoor meer samenhangende en contextueel relevante uitvoer mogelijk is.

Licensing en beschikbaarheid

Mistral Large 2 en Mistral NeMo hebben verschillende licentiemodellen, die hun beoogde gebruikscases weerspiegelen:

Mistral Large 2

  • Uitgebracht onder de Mistral Research License
  • Staat gebruik en modificatie toe voor onderzoek en niet-commerciële doeleinden
  • Commercieel gebruik vereist een Mistral Commercial License

Mistral NeMo

  • Uitgebracht onder de Apache 2.0-licentie
  • Staat open gebruik toe, inclusief commerciële toepassingen

Beide modellen zijn beschikbaar via verschillende platforms:

  • Hugging Face: Gewichten voor zowel basis- als instructiemodellen worden hier gehost
  • Mistral AI: Beschikbaar als mistral-large-2407 (Mistral Large 2) en open-mistral-nemo-2407 (Mistral NeMo)
  • Cloudserviceproviders: Beschikbaar op Google Cloud Platform’s Vertex AI, Azure AI Studio, Amazon Bedrock en IBM watsonx.ai
https://mistral.ai/news/mistral-large-2407/

https://mistral.ai/news/mistral-large-2407/

Voor ontwikkelaars die deze modellen willen gebruiken, is hier een snel voorbeeld van hoe u Mistral Large 2 kunt laden en gebruiken met Hugging Face transformers:

from transformers import AutoModelForCausalLM, AutoTokenizer

<p>model_name = "mistralai/Mistral-Large-Instruct-2407"
device = "cuda" # Gebruik GPU als beschikbaar</p>

<p># Laad het model en de tokenizer
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)</p>

<p># Verplaats het model naar het juiste apparaat
model.to(device)</p>

<p># Bereid invoer voor
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 invoer
input_ids = tokenizer.apply_chat_template(messages, return_tensors="pt").to(device)</p>

<p># Genereer een antwoord
output_ids = model.generate(input_ids, max_new_tokens=500, do_sample=True)</p>

<p># Decodeer en print het antwoord
response = tokenizer.decode(output_ids[0], skip_special_tokens=True)
print(response)</p>

Deze code toont hoe u het model kunt laden, invoer kunt voorbereiden in een chatformat, een antwoord kunt genereren en de uitvoer kunt decoderen.

Beperkingen en ethische overwegingen

Terwijl Mistral Large 2 en Mistral NeMo aanzienlijke vooruitgang vertegenwoordigen in AI-technologie, is het essentieel om hun beperkingen en de ethische overwegingen rond hun gebruik te erkennen:

  1. Potentieel voor vooroordelen: Net als alle AI-modellen die zijn getraind op grote datasets, kunnen deze modellen de vooroordelen die in hun trainingsdata aanwezig zijn erven en versterken. Gebruikers moeten zich hiervan bewust zijn en passende voorzorgsmaatregelen nemen.
  2. Geen echt begrip: Ondanks hun indrukwekkende capaciteiten, beschikken deze modellen niet over echt begrip of bewustzijn. Ze genereren antwoorden op basis van patronen in hun trainingsdata, wat soms kan leiden tot plausibele maar onjuiste informatie.
  3. Privacybezorgdheden: Bij het gebruik van deze modellen, vooral in toepassingen die gevoelige informatie verwerken, is het essentieel om de implicaties voor gegevensprivacy en -beveiliging te overwegen.

Conclusie

Het fine-tunen van geavanceerde modellen zoals Mistral Large 2 en Mistral NeMo biedt een krachtige kans om state-of-the-art AI te gebruiken voor een breed scala aan toepassingen, van dynamische functieaanroep tot efficiënte meertalige verwerking. Hier zijn enkele praktische tips en sleutelinzichten om in gedachten te houden:

  1. Begrijp uw gebruikscase: Definieer duidelijk de specifieke taken en doelen die u met uw model wilt bereiken. Deze begrip zal uw keuze van model en fine-tune-aanpak leiden, of het nu de robuuste functieaanroep van Mistral is of de efficiënte meertalige tekstverwerking.
  2. Optimaliseer voor efficiëntie: Gebruik de Tekken-tokenizer om de tekstcompressie-efficiëntie aanzienlijk te verbeteren, vooral als uw toepassing het verwerken van grote hoeveelheden tekst of meerdere talen betreft. Dit zal de modelprestaties verbeteren en de berekeningskosten verlagen.
  3. Maak gebruik van functieaanroep: Omarm het agente-paradigma door functieaanroepen op te nemen in uw modelinteracties. Dit stelt uw AI in staat om dynamisch te communiceren met externe tools en diensten, waardoor meer accurate en actiegerichte uitvoer mogelijk wordt. Bijvoorbeeld door het integreren van weerdiensten of andere externe gegevensbronnen kan de relevantie en bruikbaarheid van de antwoorden van uw model aanzienlijk worden verbeterd.
  4. Kies het juiste platform: Zorg ervoor dat u uw modellen implementeert op platforms die hun capaciteiten ondersteunen, zoals Google Cloud Platform’s Vertex AI, Azure AI Studio, Amazon Bedrock en IBM watsonx.ai. Deze platforms bieden de benodigde infrastructuur en tools om de prestaties en schaalbaarheid van uw AI-modellen te maximaliseren.

Door deze tips te volgen en de verstrekte codevoorbeelden te gebruiken, kunt u effectief de kracht van Mistral Large 2 en Mistral NeMo benutten voor uw specifieke behoeften.

Ik heb de afgelopen vijf jaar mezelf ondergedompeld in de fascinerende wereld van Machine Learning en Deep Learning. Mijn passie en expertise hebben me geleid om bij te dragen aan meer dan 50 uiteenlopende software-engineeringprojecten, met een bijzondere focus op AI/ML. Mijn voortdurende nieuwsgierigheid heeft me ook aangetrokken tot Natural Language Processing, een vakgebied dat ik graag verder wil verkennen.