AI-mallit ja alustat
Mistral 2 ja Mistral NeMo: Kattava opas uusimpiin Pariisista tuleviin LLM-malleihin

Google (GOOGL ) DeepMindin ja Metan entisten työntekijöiden perustama Pariisissa sijaitseva startup-yritys Mistral AI on järjestelmällisesti tehnyt aaltoa AI-yhteisössä vuodesta 2023 lähtien.
Mistral AI sai maailman huomion ensimmäisen mallinsa, Mistral 7B, julkaisemalla sen vuonna 2023. Tämä 7 miljardin parametrin malli sai nopeasti jalansijaa sen vaikuttavien suorituskyvyn ansiosta, jolla se ohitti suurempia malleja, kuten Llama 2 13B, useissa vertailuissa ja jopa kilpaili Llama 1 34B:n kanssa useissa mittareissa. Se, mikä erotti Mistral 7B:n, ei ollut ainoastaan sen suorituskyky, vaan myös sen saavutettavuus – malli voitiin helposti ladata GitHubista tai jopa 13,4 gigatavun kokoisena torrenttina, mikä teki siitä helposti saatavilla tutkijoille ja kehittäjille ympäri maailmaa.
Yrityksen epäperinteinen lähestymistapa julkaisuihin, usein ohittamalla perinteiset tutkimuspaperit, blogipostaukset tai lehdistötiedotteet, on osoittautunut erittäin tehokkaaksi AI-yhteisön huomion kiinnittämisessä. Tämä strategia, yhdistettynä heidän sitoutumiseensa avoimen lähdekoodin periaatteisiin, on asettanut Mistral AI:n vahvaksi pelaajaksi AI-maailmassa.
Mistral AI:n nopea nousu alalla näkyy myös heidän viimeaikaisessa rahoituskampanjassaan. Yritys saavutti hämmästyttävän 2 miljardin dollarin arvon rahoituskierroksella, jota johti Andreessen Horowitz. Tämä seurasi historiallista 118 miljoonan dollarin siemenvaihetta – Euroopan historian suurinta – osoittaen sijoittajien suuren uskon Mistral AI:n visioon ja kykyihin.
Teknologisen edistymisen lisäksi Mistral AI on ollut myös aktiivisesti mukana muokkaamassa AI-politiikkaa, erityisesti EU:n AI-lain keskusteluissa, joissa he ovat puolustaneet vähennettä sääntelyä avoimen lähdekoodin AI:ssa.
Nyt vuonna 2024 Mistral AI on jälleen asettanut uuden standardin julkaisemalla kaksi merkittävää mallia: Mistral Large 2 (tunnetaan myös nimellä Mistral-Large-Instruct-2407) ja Mistral NeMo. Tässä kattavassa oppaassa syvennymme näiden vaikuttavien AI-mallien ominaisuuksiin, suorituskykyyn ja mahdollisiin sovelluksiin.
Mistral Large 2:n avainominaisuudet sisältävät:
- 123 miljardia parametreja
- 128k konteksti-ikkuna
- Tuki kymmenille kielille
- 80+ ohjelmointikieltä
- Edistyneet funktiokutsuominaisuudet
Malli on suunniteltu rajoittamaan kustannustehokkuutta, nopeutta ja suorituskykyä, mikä tekee siitä houkuttelevan vaihtoehdon sekä tutkijoille että yrityksille, jotka haluavat hyödyntää viimeisintä AI-teknologiaa.
Mistral NeMo: Uusi, Pienempi Malli
Siitä huolimatta, että Mistral Large 2 edustaa Mistral AI:n parasta suorituskykyä, Mistral NeMo, joka julkaistiin heinäkuussa 2024, lähestyy asiaa toisesta näkökulmasta. Yhteistyössä NVIDIA (NVDA ):n kanssa kehitetty Mistral NeMo on 12 miljardin parametrin malli, joka tarjoaa vaikuttavia ominaisuuksia:
- 12 miljardia parametreja
- 128k konteksti-ikkuna
- Huipputason suorituskyky saman kokoisten mallien joukossa
- Apache 2.0 -lisenssi avoimelle käytölle
- Quantization-tietoinen koulutus tehokkaan inferenceksi
Mistral NeMo on tarkoitettu korvaamaan järjestelmiä, jotka käyttävät tällä hetkellä Mistral 7B:ää, tarjoten parannettua suorituskykyä samalla säilyttäen helppokäyttöisyyden ja yhteensopivuuden.
Avainominaisuudet ja Kyvyt
Molemmat Mistral Large 2 ja Mistral NeMo jakavat useita avainominaisuuksia, jotka erottavat ne AI-maailmasta:
- Suuret Konteksti-Ikkunat: 128k tokenin konteksti-ikkunoiden ansiosta molemmat mallit voivat prosessoida ja ymmärtää paljon pidempiä tekstipätkiä, mahdollistaen yhdenmukaisemmat ja kontekstuaalisesti relevantimmat tulokset.
- Monikielinen Tuki: Mallit menestyvät laajasti eri kielillä, mukaan lukien englanti, ranska, saksa, espanja, italia, kiina, japani, korea, arabia ja hindi.
- Edistyneet Koodausominaisuudet: Molemmat mallit osoittavat poikkeuksellista taituruutta koodin generoimisessa useilla ohjelmointikielillä.
- Ohjeiden Seuraaminen: Merkittäviä parannuksia on tehty mallien kyvyssä seurata tarkkoja ohjeita ja käsitellä monivaiheisia keskusteluja.
- Funktiokutsu: Luonnollinen tuki funktiokutsuun mahdollistaa näiden mallien dynaamisen vuorovaikutuksen ulkoisten työkalujen ja palvelujen kanssa.
- Päättely ja Ongelmanratkaisu: Parannettuja kykyjä matemaattisessa päättelyssä ja monimutkaisissa ongelmanratkaisutehtävissä.
Tutustumme nyt tarkemmin näihin ominaisuuksiin ja tarkastelemme, miten ne toimivat käytännössä.
Suorituskykyvertailut
Ymmärtääksemme Mistral Large 2:n ja Mistral NeMo:n todelliset kyvyt, on tärkeää tarkastella heidän suorituskykyään eri vertailuissa. Tarkastelemme nyt joitain avainmittareita:
Mistral Large 2 Vertailut
Tämä taulukko esittää eri LLM-mallien taituruutta eri ohjelmointikielillä. Malleja, kuten Mistral Large 2 (24.07), Llama 3.1 (405B) ja GPT-4o, arvioidaan niiden kyvystä ymmärtää ja generoida koodia kielillä kuten Python, C++, Bash, Java, TypeScript, PHP ja C#.
Llama 3.1 405B osoittaa vahvaa suorituskykyä useilla kielillä, erityisesti Pythonissa ja Javassa. Tämä taituruus on kriittistä sovelluksissa, jotka liittyvät koodin generointiin, virheenjäljitykseen ja ohjelmistokehitykseen, mikä tekee näistä malleista arvokkaita työkaluja kehittäjille.
Mistral NeMo Vertailut
Vaikka tarkkoja vertailulukuja Mistral NeMo:sta ei anneta, se kuvataan tarjoavan huipputason suorituskyvyn saman kokoisten mallien joukossa. Malli suorittaa paremmin kuin muut viimeaikaiset avoimen lähdekoodin esikoulutetut mallit, kuten Gemma 2 9B ja Llama 3 8B, useissa tehtävissä.
Monikielinen ja Koodauskyky
Yksi Mistral Large 2:n ja Mistral NeMo:n erottuvista ominaisuuksista on heidän poikkeuksellinen monikielinen kyky. Tämä on erityisen tärkeää globalisoituvassa maailmassa, jossa AI-mallien on kyettävä ymmärtämään ja generoimaan sisältöä useilla kielillä.
Mistral Large 2, esimerkiksi, tukee kymmeniä kieliä, mukaan lukien ranska, saksa, espanja, italia, portugali, arabia, hindi, venäjä, kiina, japani ja korea. Tämä monikielinen taituruus ulottuu ylittää pelkän käännöksen, kattaa hienostuneen ymmärtämisen ja generoinnin näillä kielillä.
Tässä esimerkki Mistral Large 2:n generoimasta tekstistä useilla kielillä:
[INST] Generoi lyhyt tervehdys englanniksi, ranskaksi, saksaksi, espanjaksi ja japaniksi. [/INST]
Tässä ovat lyhyet tervehdykset pyydetyillä kielillä:
Englanti: Hello! How are you today?
Ranska: Bonjour ! Comment allez-vous aujourd’hui ?
Saksa: Hallo! Wie geht es Ihnen heute?
Espanja: ¡Hola! ¿Cómo estás hoy?
Japani: こんにちは!今日はお元気ですか?
[INST]
Nyt, kirjoita yksinkertainen “Hei, maailma!” -ohjelma Pythonissa, Javassa ja JavaScriptissä. [/INST]
Nämä esimerkit osoittavat sekä monikielisen tekstigeneroinnin että koodauskyvyn.
Molemmat mallit ovat saatavilla useilla alustoilla, kuten Hugging Face, Mistral AI:n alusta ja suurten pilvipalveluntarjoajien kuten Google Cloud Platform, Azure AI Studio, Amazon (AMZN ) Bedrock ja IBM watsonx.ai (Mistral AI | Frontier AI in your hands).
Agenteellinen Paradigma ja Funktiokutsu
Molemmat Mistral Large 2 ja Mistral NeMo omaksuvat agenteellisen suunnittelun, joka edustaa merkittävää muutosta siinä, miten vuorovaikutamme AI-mallien kanssa. Tämä lähestymistapa keskittyy rakentamaan malleja, jotka voivat vuorovaikuttaa ympäristönsä kanssa, tehdä päätöksiä ja suorittaa toimintoja tiettyjen tavoitteiden saavuttamiseksi.
Avainominaisuus, joka mahdollistaa tämän paradigman, on luonnollinen tuki funktiokutsuun. Tämä mahdollistaa mallien dynaamisen vuorovaikutuksen ulkoisten työkalujen ja palvelujen kanssa, laajentamalla heidän kykyjään ylittää pelkän tekstin generoinnin.
Tarkastelemme nyt esimerkkiä siitä, miten funktiokutsu voisi toimia Mistral Large 2:ssa:
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># Alusta tokenisaattori ja malli
mistral_models_path = "polku/mistral/malleihin" # Varmista, että polku on oikein
tokenizer = MistralTokenizer.from_file(f"{mistral_models_path}/tokenizer.model.v3")
model = Transformer.from_folder(mistral_models_path)</p>
<p># Määritä funktio säätilan hakemiseksi
saa_funktiokutsu = Function(
name="get_current_weather",
description="Hae nykyinen sää",
parameters={
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "Kaupunki ja osavaltio, esim. San Francisco, CA",
},
"format": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "Lämpötilan yksikkö. Arvaa sen käyttäjän sijainnin perusteella.",
},
},
"required": ["location", "format"],
},
)</p>
<p># Luo chat-vastauspyyntö funktiokutsulla
vastaus_pyynto = ChatCompletionRequest(
tools=[Tool(function=saa_funktiokutsu)],
messages=[
UserMessage(content="Mikä on tänään sää Pariisissa?"),
],
)</p>
<p># Koodaa pyyntö
tokenit = tokenizer.encode_chat_completion(vastaus_pyynto).tokens</p>
<p># Generoi vastaus
ulos_tokenit, _ = generate([tokenit], model, max_tokens=256, temperature=0.7, eos_id=tokenizer.instruct_tokenizer.tokenizer.eos_id)
tulos = tokenizer.decode(ulos_tokenit[0])</p>
print(tulos)
Tässä esimerkissä määrittelemme säätilan hakemiseen tarkoitetun funktion ja sisällytämme sen chat-vastauspyyntöömme. Malli voi sitten käyttää tätä funktiota hakemaan reaaliaikaisen säätilan, osoittaen, miten se voi vuorovaikuttaa ulkoisten järjestelmien kanssa tarjoamaan tarkemmin ja ajantasaisemmin tietoa.
Tekken: Tehokkaampi Tokenisaattori
Mistral NeMo esittelee uuden tokenisaattorin nimeltä Tekken, joka perustuu Tiktokeniin ja on koulutettu yli 100 kielellä. Tämä uusi tokenisaattori tarjoaa merkittäviä parannuksia tekstin pakkausteossa verrattuna aiempiin tokenisaattoreihin, kuten SentencePieceen.
Tekkenin avainominaisuudet sisältävät:
- 30% tehokkaampi pakkaus lähdekoodille, kiinalle, italialle, ranskalle, saksalle, espanjalle ja venäjälle
- 2x tehokkaampi pakkaus koreaksi
- 3x tehokkaampi pakkaus arabiaksi
- Ylittää Llama 3 -tokenisaattorin tekstin pakkauksessa noin 85%:ssa kaikista kielistä
Tämä parannettu tokenisaatio tehostaa mallin suorituskykyä, erityisesti monikielisen tekstin ja lähdekoodin käsittelyssä. Se mahdollistaa mallille prosessoida enemmän tietoa samassa konteksti-ikkunassa, johtaen yhdenmukaisempiin ja kontekstuaalisesti relevantimpiin tuloksiin.
Lisenssit ja Saatavuus
Mistral Large 2 ja Mistral NeMo eroavat lisenssimalleissaan, heijastaen niiden tarkoitettuja käyttötarkoituksia:
Mistral Large 2
- Julkaisu Mistral Research License -lisenssillä
- Sallii käytön ja muokkauksen tutkimukseen ja ei-kaupallisiin tarkoituksiin
- Kaupallinen käyttö edellyttää Mistral Commercial License -lisenssiä
Mistral NeMo
- Julkaisu Apache 2.0 -lisenssillä
- Sallii avoimen käytön, mukaan lukien kaupalliset sovellukset
Molemmat mallit ovat saatavilla useilla alustoilla:
- Hugging Face: Painot ja mallit ovat saatavilla täällä
- Mistral AI: Saatavilla
mistral-large-2407(Mistral Large 2) jaopen-mistral-nemo-2407(Mistral NeMo) - Pilvipalveluntarjoajat: Saatavilla Google Cloud Platformin Vertex AI:ssa, Azure AI Studion, Amazon Bedrockin ja IBM watsonx.ai:ssa
Kehittäjille, jotka haluavat käyttää näitä malleja, tässä on nopea esimerkki siitä, miten ladata ja käyttää Mistral Large 2:ta Hugging Face -transformereiden kanssa:
from transformers import AutoModelForCausalLM, AutoTokenizer
<p>mallin_nimi = "mistralai/Mistral-Large-Instruct-2407"
laite = "cuda" # Käytä GPU:ta, jos se on saatavilla</p>
<p># Lataa malli ja tokenisaattori
malli = AutoModelForCausalLM.from_pretrained(mallin_nimi)
tokenisaattori = AutoTokenizer.from_pretrained(mallin_nimi)</p>
<p># Siirrä malli oikealle laitteelle
malli.to(laite)</p>
<p># Valmista syöte
viestit = [
{"rooli": "järjestelmä", "sisältö": "Olet avulias AI-apu."},
{"rooli": "käyttäjä", "sisältö": "Selitä neurverkkojen käsite yksinkertaisesti."},
]</p>
<p># Koodaa syöte
syote_id = tokenisaattori.apply_chat_template(viestit, return_tensors="pt").to(laite)</p>
<p># Generoi vastaus
vastaus_id = malli.generate(syote_id, max_new_tokens=500, do_sample=True)</p>
<p># Dekoodaa ja tulosta vastaus
vastaus = tokenisaattori.decode(vastaus_id[0], skip_special_tokens=True)
print(vastaus)</p>
Tämä koodi osoittaa, miten ladata malli, valmistella syöte chat-muodossa, generoida vastaus ja dekoodata tulokset.
















