Inteligență artificială
Mistral 2 și Mistral NeMo: Ghid Comprehensiv pentru Cele Mai Recent Modele LLM Provenite de la Paris

Fondată de foști angajați ai Google’s DeepMind și Meta, startup-ul parizian Mistral AI a făcut valuri în comunitatea de inteligență artificială din 2023.
Mistral AI a atras atenția lumii cu modelul său de debut, Mistral 7B, lansat în 2023. Acest model cu 7 miliarde de parametri a câștigat rapid popularitate datorită performanței sale impresionante, depășind modele mai mari precum Llama 2 13B în diverse benchmark-uri și chiar rivalizând cu Llama 1 34B în multe metrici. Ceea ce a diferențiat Mistral 7B a fost nu numai performanța sa, ci și accesibilitatea sa – modelul putea fi descărcat ușor de pe GitHub sau chiar prin intermediul unui torrent de 13,4 gigabiți, făcându-l disponibil pentru cercetători și dezvoltatori din întreaga lume.
Abordarea neconvențională a lansărilor, adesea renunțând la articole tradiționale, bloguri sau comunicate de presă, s-a dovedit a fi remarcabil de eficientă în a capta atenția comunității de inteligență artificială. Această strategie, combinată cu angajamentul lor față de principiile open-source, a poziționat Mistral AI ca un jucător formidabil în peisajul inteligenței artificiale.
Ascensiunea rapidă a Mistral AI în industrie este demonstrată și de recenta lor reușită în ceea ce privește finanțarea. Compania a atins o evaluare de 2 miliarde de dolari în urma unei runde de finanțare conduse de Andreessen Horowitz. Acest lucru a venit pe urmele unui istoric tur de capital de 118 milioane de dolari – cel mai mare din Europa –, demonstrând imensa încredere pe care investitorii o au în viziunea și capacitățile Mistral AI.
Dincolo de progresele tehnologice, Mistral AI a fost, de asemenea, activ implicat în modelarea politicii de inteligență artificială, în special în discuțiile despre Actul UE privind inteligența artificială, unde au pledat pentru o reglementare redusă a inteligenței artificiale open-source.
Acum, în 2024, Mistral AI a ridicat din nou ștacheta cu două modele revoluționare: Mistral Large 2 (cunoscut și sub numele de Mistral-Large-Instruct-2407) și Mistral NeMo. În acest ghid comprehensiv, vom explora în profunzime caracteristicile, performanța și posibilele aplicații ale acestor impresionante modele de inteligență artificială.
Specificațiile cheie ale Mistral Large 2 includ:
- 123 de miliarde de parametri
- 128k fereastră de context
- Suport pentru zeci de limbi
- Proficient în 80+ de limbi de programare
- Capacități avansate de apelare a funcțiilor
Modelul este proiectat pentru a împinge limitele eficienței costurilor, vitezei și performanței, făcându-l o opțiune atractivă atât pentru cercetători, cât și pentru întreprinderi care doresc să exploateze inteligența artificială de ultimă generație.
Mistral NeMo: Noul Model Mai Mic
În timp ce Mistral Large 2 reprezintă cel mai bun din modelele de scară largă ale Mistral AI, Mistral NeMo, lansat în iulie 2024, abordează o direcție diferită. Dezvoltat în colaborare cu NVIDIA, Mistral NeMo este un model mai compact cu 12 miliarde de parametri, care oferă totuși capacități impresionante:
- 12 miliarde de parametri
- 128k context fereastră
- Performanță de ultimă generație în categoria sa
- Licență Apache 2.0 pentru utilizare deschisă
- Antrenament conștient de cuantificare pentru inferență eficientă
Mistral NeMo este poziționat ca înlocuitor pentru sistemele care utilizează în prezent Mistral 7B, oferind performanță îmbunătățită, în timp ce menține ușurința în utilizare și compatibilitatea.
Caracteristici și Capabilități Cheie
Atât Mistral Large 2, cât și Mistral NeMo împărtășesc mai multe caracteristici cheie care îi diferențiază în peisajul inteligenței artificiale:
- Ferestre de Context Mare: Cu lungimi de context de 128k tokeni, ambele modele pot procesa și înțelege bucăți mult mai lungi de text, permițând ieșiri mai coerente și mai relevante contextual.
- Suport Multilingv: Modelele excelează într-o gamă largă de limbi, incluzând engleză, franceză, germană, spaniolă, italiană, chineză, japoneză, coreeană, arabă și hindi.
- Capacități Avansate de Programare: Ambele modele demonstrează o proficiență excepțională în generarea de cod în numeroase limbi de programare.
- Urmărirea Instrucțiunilor: S-au făcut îmbunătățiri semnificative în capacitatea modelelor de a urma instrucțiuni precise și de a gestiona conversații cu multiple ture.
- Apelarea Funcțiilor: Suportul nativ pentru apelarea funcțiilor permite acestor modele să interacționeze dinamic cu instrumente și servicii externe.
- Raționament și Rezolvare de Probleme: Capacități îmbunătățite în raționament matematic și în sarcini complexe de rezolvare de probleme.
Să explorăm unele dintre aceste caracteristici și să examinăm cum se desfășoară în practică.
Benchmarke-uri de Performanță
Pentru a înțelege adevăratele capacități ale Mistral Large 2 și Mistral NeMo, este esențial să examinăm performanța lor în diverse benchmarke-uri. Să aruncăm o privire asupra unor metrici cheie:
Benchmarke-uri Mistral Large 2
Acest tabel prezintă proficiența diverselor modele LLM în diferite limbi de programare. Modele precum Mistral Large 2 (24.07), Llama 3.1 (405B) și GPT-4o sunt evaluate pe baza capacității lor de a înțelege și genera cod în limbi precum Python, C++, Bash, Java, TypeScript, PHP și C#.
Llama 3.1 405B arată o performanță puternică în multiple limbi, cu scoruri deosebit de ridicate în Python și Java. Această proficiență este critică pentru aplicații care implică generarea de cod, depanarea și dezvoltarea de software, făcând aceste modele instrumente valoroase pentru dezvoltatori.
Benchmarke-uri Mistral NeMo
Deși nu sunt furnizate scoruri de benchmarke specifice pentru Mistral NeMo în informațiile date, este descris ca oferind performanță de ultimă generație în categoria sa. Modelul depășește alte modele recente de inteligență artificială open-source precum Gemma 2 9B și Llama 3 8B în diverse sarcini.
Capacități Multilingve și de Programare
Una dintre caracteristicile remarcabile ale ambelor Mistral Large 2 și Mistral NeMo este capacitatea lor excepțională de a lucra cu multiple limbi. Acest lucru este deosebit de important în lumea noastră globalizată, unde modelele de inteligență artificială trebuie să înțeleagă și să genereze conținut în mai multe limbi.
Mistral Large 2, de exemplu, suportă zeci de limbi, incluzând franceză, germană, spaniolă, italiană, portugheză, arabă, hindi, rusă, chineză, japoneză și coreeană. Această proficiență multilingvă se extinde dincolo de simpla traducere, cuprinzând o înțelegere și generare nuanțată în aceste limbi.
Pentru a ilustra acest lucru, să aruncăm o privire asupra unui exemplu de generare de text de către Mistral Large 2 în multiple limbi:
[INST] Generează un salut scurt în engleză, franceză, germană, spaniolă și japoneză. [/INST]
Următoarele sunt saluturi scurte în limbile solicitate:
Engleză: Hello! How are you today?
Franceză: Bonjour ! Comment allez-vous aujourd’hui ?
Germană: Hallo! Wie geht es Ihnen heute?
Spaniolă: ¡Hola! ¿Cómo estás hoy?
Japoneză: こんにちは!今日はお元気ですか?
[INST]
Acum, scrieți un program “Hello, World!” simplu în Python, Java și JavaScript. [/INST]
Aceste exemple demonstrează atât capacitatea de generare de text multilingv, cât și capacitățile de programare ale modelului.
Ambele modele sunt disponibile pe diverse platforme, cum ar fi Hugging Face, platforma Mistral AI și principalii furnizori de servicii cloud precum Google Cloud Platform, Azure AI Studio, Amazon Bedrock și IBM watsonx.ai (Mistral AI | Frontier AI în mâinile tale).
Paradigma Agentică și Apelarea Funcțiilor
Atât Mistral Large 2, cât și Mistral NeMo adoptă o proiectare centrată pe agent, care reprezintă o schimbare de paradigmă în modul în care interacționăm cu modelele de inteligență artificială. Această abordare se concentrează pe construirea de modele capabile să interacționeze cu mediul lor, să ia decizii și să acționeze pentru a atinge obiective specifice.
O caracteristică cheie care permite această paradigmă este suportul nativ pentru apelarea funcțiilor. Acest lucru permite modelelor să interacționeze dinamic cu instrumente și servicii externe, extinzându-și eficient capacitățile dincolo de simpla generare de text.
Să aruncăm o privire asupra unui exemplu de apelare a funcțiilor cu 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># Initializează tokenizer și model
mistral_models_path = "path/to/mistral/models" # Asigură-te că acestă cale este corectă
tokenizer = MistralTokenizer.from_file(f"{mistral_models_path}/tokenizer.model.v3")
model = Transformer.from_folder(mistral_models_path)</p>
<p># Definirea unei funcții pentru obținerea informațiilor meteo
weather_function = Function(
name="get_current_weather",
description="Obțineți vremea actuală",
parameters={
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "Orașul și statul, de exemplu San Francisco, CA",
},
"format": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "Unitatea de temperatură de utilizat. Inferența din locația utilizatorului.",
},
},
"required": ["location", "format"],
},
)</p>
<p># Crearea unei cereri de completare a chat-ului cu funcția
completion_request = ChatCompletionRequest(
tools=[Tool(function=weather_function)],
messages=[
UserMessage(content="Ce vreme este astăzi la Paris?"),
],
)</p>
<p># Codificarea cererii
tokens = tokenizer.encode_chat_completion(completion_request).tokens</p>
<p># Generarea unei răspunsuri
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)
În acest exemplu, definim o funcție pentru obținerea informațiilor meteo și o includem în cererea noastră de completare a chat-ului. Modelul poate apoi utiliza această funcție pentru a obține date meteo în timp real, demonstrând cum poate interacționa cu sisteme externe pentru a oferi informații mai precise și actualizate.
Tekken: Un Tokenizer Mai Eficient
Mistral NeMo introduce un nou tokenizer numit Tekken, care se bazează pe Tiktoken și a fost antrenat pe peste 100 de limbi. Acest tokenizer nou oferă îmbunătățiri semnificative în eficiența compresiei textului în comparație cu tokenizerele anterioare, cum ar fi SentencePiece.
Caracteristicile cheie ale Tekken includ:
- 30% mai eficient în compresia pentru cod sursă, chineză, italiană, franceză, germană, spaniolă și rusă
- 2x mai eficient în compresia pentru coreeană
- 3x mai eficient în compresia pentru arabă
- Depășește tokenizerul Llama 3 în compresia textului pentru aproximativ 85% din toate limbile
Această eficiență îmbunătățită a tokenizării se traduce într-o performanță mai bună a modelului, în special atunci când se lucrează cu text multilingv și cod sursă. Permite modelului să proceseze mai multă informație în aceeași fereastră de context, conducând la ieșiri mai coerente și mai relevante contextual.
Licensing și Disponibilitate
Mistral Large 2 și Mistral NeMo au modele de licențiere diferite, reflectând cazurile lor de utilizare intenționate:
Mistral Large 2
- Lansat sub Licența de Cercetare Mistral
- Permite utilizarea și modificarea pentru scopuri de cercetare și non-comerciale
- Utilizarea comercială necesită o Licență Comercială Mistral
Mistral NeMo
- Lansat sub Licența Apache 2.0
- Permite utilizarea deschisă, inclusiv aplicații comerciale
Ambele modele sunt disponibile prin diverse platforme:
- Hugging Face: Greutățile pentru ambele modele de bază și instruct sunt găzduite aici
- Mistral AI: Disponibil ca
mistral-large-2407(Mistral Large 2) șiopen-mistral-nemo-2407(Mistral NeMo) - Furnizori de Servicii Cloud: Disponibil pe Google Cloud Platform’s Vertex AI, Azure AI Studio, Amazon Bedrock și IBM watsonx.ai
Pentru dezvoltatorii care doresc să utilizeze aceste modele, iată un exemplu rapid de cum să încărcați și să utilizați Mistral Large 2 cu Hugging Face transformers:
from transformers import AutoModelForCausalLM, AutoTokenizer
<p>model_name = "mistralai/Mistral-Large-Instruct-2407"
device = "cuda" # Utilizați GPU dacă este disponibil</p>
<p># Încărcați modelul și tokenizerul
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)</p>
<p># Mutarea modelului pe dispozitivul adecvat
model.to(device)</p>
<p># Pregătirea intrării
messages = [
{"role": "system", "content": "Sunteți un asistent AI util."},
{"role": "user", "content": "Explicați conceptul de rețele neuronale în termeni simpli."},
]</p>
<p># Codificarea intrării
input_ids = tokenizer.apply_chat_template(messages, return_tensors="pt").to(device)</p>
<p># Generarea unui răspuns
output_ids = model.generate(input_ids, max_new_tokens=500, do_sample=True)</p>
<p># Decodarea și afișarea răspunsului
response = tokenizer.decode(output_ids[0], skip_special_tokens=True)
print(response)</p>
Acest cod demonstrează cum să încărcați modelul, să pregătiți intrarea în format de chat, să generați un răspuns și să decodați ieșirea.
















