Modele i platformy AI

Mistral 2 i Mistral NeMo: Kompletny przewodnik po najnowszych modelach LLM z Paryża

mm
Dodaj Unite.AI do preferowanych źródeł w Google
Mistral Large 2 and Mistral NeMo

Założona przez absolwentów Google DeepMind i Meta, paryska firma Mistral AI nieustannie robi furorę w społeczności AI od 2023 roku.

Mistral AI po raz pierwszy zwróciła uwagę światu swoim debiutującym modelem, Mistral 7B, wydanym w 2023 roku. Ten model z 7 miliardami parametrów szybko zyskał uznanie za swoją imponującą wydajność, przewyższając większe modele, takie jak Llama 2 13B w różnych testach i nawet rywalizując z Llama 1 34B w wielu wskaźnikach. To, co wyróżniało Mistral 7B, nie było tylko jego wydajnością, ale także dostępnością – model mógł być łatwo pobrany z GitHub lub nawet za pośrednictwem 13,4-gigabajtowego torrentu, co sprawiło, że był on łatwo dostępny dla naukowców i deweloperów na całym świecie.

Nietradycyjne podejście firmy do wydań, często rezygnujące z tradycyjnych artykułów, blogów lub komunikatów prasowych, okazało się niezwykle skuteczne w przyciąganiu uwagi społeczności AI. Ta strategia, w połączeniu z ich zaangażowaniem w otwarte źródło, umieściła Mistral AI jako potężnego gracza w pejzażu AI.

Szybki wzrost Mistral AI w branży potwierdza również ich niedawny sukces finansowy. Firma osiągnęła olbrzymią wycenę 2 miliardów dolarów po rundzie finansowania prowadzonej przez Andreessen Horowitz. To nastąpiło po historycznej rundzie seed o wartości 118 milionów dolarów – największej w historii Europy – co pokazuje, jak wielką wiarę inwestorzy mają w wizji i możliwościach Mistral AI.

Poza postępami technologicznymi, Mistral AI aktywnie uczestniczyła w kształtowaniu polityki AI, zwłaszcza w dyskusjach na temat unijnego aktu AI, gdzie opowiadała się za zmniejszeniem regulacji w przypadku otwartego źródła AI.

Teraz, w 2024 roku, Mistral AI ponownie podniosła poprzeczkę, wprowadzając dwa przełomowe modele: Mistral Large 2 (znany również jako Mistral-Large-Instruct-2407) i Mistral NeMo. W tym kompletnym przewodniku zagłębimy się w funkcje, wydajność i potencjalne zastosowania tych imponujących modeli AI.

Kluczowe specyfikacje Mistral Large 2 obejmują:

  • 123 miliardy parametrów
  • 128k okien kontekstowych
  • Obsługa dziesiątek języków
  • Biegłość w 80+ językach programowania
  • Zaawansowane możliwości wywoływania funkcji

Model został zaprojektowany, aby przekroczyć granice efektywności kosztowej, szybkości i wydajności, co czyni go atrakcyjną opcją zarówno dla naukowców, jak i przedsiębiorstw zainteresowanych wykorzystaniem najnowocześniejszych technologii AI.

Mistral NeMo: Nowy, mniejszy model

Podczas gdy Mistral Large 2 reprezentuje najlepsze, co może zaoferować Mistral AI w zakresie dużych modeli, Mistral NeMo, wydany w lipcu 2024 roku, przyjmuje odmienny podejście. Opracowany we współpracy z NVIDIA (NVDA ), Mistral NeMo to bardziej kompaktowy model z 12 miliardami parametrów, który nadal oferuje imponujące możliwości:

  • 12 miliardów parametrów
  • 128k okien kontekstowych
  • Najnowocześniejsza wydajność w swojej kategorii
  • Licencja Apache 2.0 na użytek otwarty
  • Quantization-aware szkolenie dla wydajnej inferencji

Mistral NeMo jest pozycjonowany jako zamiennik dla systemów, które obecnie wykorzystują Mistral 7B, oferując lepszą wydajność przy zachowaniu łatwości użycia i kompatybilności.

Kluczowe funkcje i możliwości

Obydwa modele, Mistral Large 2 i Mistral NeMo, dzielą kilka kluczowych funkcji, które wyróżniają je na tle innych modeli AI:

  1. Duże okna kontekstowe: Z długością kontekstu 128k tokenów, oba modele mogą przetwarzać i rozumieć znacznie dłuższe fragmenty tekstu, umożliwiając bardziej spójne i kontekstowo istotne dane wyjściowe.
  2. Wspieranie wielu języków: Modele te wyróżniają się w szerokim zakresie języków, w tym angielskim, francuskim, niemieckim, hiszpańskim, włoskim, chińskim, japońskim, koreańskim, arabskim i hindi.
  3. Zaawansowane możliwości programowania: Oba modele wykazują wyjątkową biegłość w generowaniu kodu w wielu językach programowania.
  4. Przestrzeganie instrukcji: Zostały wprowadzone znaczące ulepszenia w możliwościach modeli do przestrzegania precyzyjnych instrukcji i obsługi wieloetapowych rozmów.
  5. Wywoływanie funkcji: Natywne wsparcie dla wywoływania funkcji pozwala tym modelom na dynamiczną interakcję z zewnętrznymi narzędziami i usługami.
  6. Rozumowanie i rozwiązywanie problemów: Ulepszone możliwości w rozumowaniu matematycznym i złożonych zadaniach rozwiązywania problemów.

Przeanalizujmy niektóre z tych funkcji i zobaczmy, jak radzą sobie one w praktyce.

Wyniki testów wydajności

Aby zrozumieć prawdziwe możliwości Mistral Large 2 i Mistral NeMo, konieczne jest spojrzenie na ich wyniki w różnych testach. Przeanalizujmy kilka kluczowych wskaźników:

Wyniki testów Mistral Large 2

Ten tabela przedstawia biegłość różnych modeli LLM w różnych językach programowania. Modele takie jak Mistral Large 2 (24.07), Llama 3.1 (405B) i GPT-4o są oceniane pod kątem ich zdolności do zrozumienia i generowania kodu w językach takich jak Python, C++, Bash, Java, TypeScript, PHP i C#.

Llama 3.1 405B wykazuje silną wydajność w wielu językach, ze szczególnie wysokimi wynikami w Pythonie i Javie. Ta biegłość jest kluczowa w aplikacjach związanych z generowaniem kodu, debugowaniem i rozwojem oprogramowania, co sprawia, że te modele są cennymi narzędziami dla deweloperów.

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/

Wyniki testów Mistral NeMo

Chociaż konkretnych wyników testowych dla Mistral NeMo nie podano w dostarczonych informacjach, opisano go jako oferującego najnowocześniejszą wydajność w swojej kategorii. Model przewyższa inne niedawne modele open-source, takie jak Gemma 2 9B i Llama 3 8B, w różnych zadaniach.

Wielojęzyczność i możliwości programowania

Jedną z wyróżniających się cech obu modeli, Mistral Large 2 i Mistral NeMo, jest ich wyjątkowa wielojęzyczność. Jest to szczególnie ważne w naszym coraz bardziej zglobalizowanym świecie, gdzie modele AI muszą rozumieć i generować treści w wielu językach.

Mistral Large 2, na przykład, obsługuje dziesiątki języków, w tym francuski, niemiecki, hiszpański, włoski, portugalski, arabski, hindi, rosyjski, chiński, japoński i koreański. Ta wielojęzyczna biegłość wykracza poza zwykłe tłumaczenie, obejmując nuansowane zrozumienie i generowanie w tych językach.

Aby zilustrować to, przyjrzyjmy się przykładowi, w którym Mistral Large 2 generuje tekst w wielu językach:

[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]

Te przykłady pokazują zarówno wielojęzyczne generowanie tekstu, jak i możliwości programowania modelu.

Oba modele są dostępne na różnych platformach, takich jak Hugging Face, platforma Mistral AI oraz główni dostawcy usług chmurowych, jak Google Cloud Platform, Azure AI Studio, Amazon (AMZN ) Bedrock i IBM watsonx.ai​ (Mistral AI | Frontier AI in your hands)​​​.

Paradygmat agenty i wywoływanie funkcji

Obydwa modele, Mistral Large 2 i Mistral NeMo, przyjmują agenty-centryczny projekt, który reprezentuje zmianę paradygmatu w sposobie, w jaki interaktywnie korzystamy z modeli AI. To podejście koncentruje się na budowaniu modeli zdolnych do interakcji ze swoim środowiskiem, podejmowania decyzji i wykonywania działań w celu osiągnięcia konkretnych celów.

Kluczową funkcją umożliwiającą ten paradygmat jest natywne wsparcie dla wywoływania funkcji. Pozwala to modelom na dynamiczną interakcję z zewnętrznymi narzędziami i usługami, efektywnie rozszerzając ich możliwości poza zwykłe generowanie tekstu.

Przyjrzyjmy się przykładowi, w jaki sposób wywoływanie funkcji może działać z 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 and model
mistral_models_path = &quot;path/to/mistral/models&quot; # Ensure this path is correct
tokenizer = MistralTokenizer.from_file(f&quot;{mistral_models_path}/tokenizer.model.v3&quot;)
model = Transformer.from_folder(mistral_models_path)</p>

<p># Define a function for getting weather information
weather_function = Function(
name=&quot;get_current_weather&quot;,
description=&quot;Get the current weather&quot;,
parameters={
&quot;type&quot;:&quot;object&quot;,
&quot;properties&quot;:{
&quot;location&quot;:{
&quot;type&quot;:&quot;string&quot;,
&quot;description&quot;:&quot;The city and state, e.g. San Francisco, CA&quot;,
},
&quot;format&quot;:{
&quot;type&quot;:&quot;string&quot;,
&quot;enum&quot;:[&quot;celsius&quot;, &quot;fahrenheit&quot;],
&quot;description&quot;:&quot;The temperature unit to use. Infer this from the user&#039;s location.&quot;,
},
},
&quot;required&quot;:[&quot;location&quot;, &quot;format&quot;],
},
)</p>

<p># Create a chat completion request with the function
completion_request = ChatCompletionRequest(
tools=[Tool(function=weather_function)],
messages=[
UserMessage(content=&quot;What&#039;s the weather like today in Paris?&quot;),
],
)</p>

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

<p># Generate a response
output_ids = model.generate(input_ids, max_new_tokens=256, do_sample=True)</p>

<p># Decode and print the response
response = tokenizer.decode(output_ids[0])
print(response)</p>

W tym przykładzie definiujemy funkcję do pobierania informacji o pogodzie i włączamy ją do naszego żądania uzupełnienia rozmowy. Model może następnie użyć tej funkcji, aby pobrać bieżące dane pogodowe, pokazując, jak może on interaktywnie współpracować z zewnętrznymi systemami, aby dostarczyć bardziej dokładne i aktualne informacje.

Tekken: Bardziej wydajny tokenizator

Mistral NeMo wprowadza nowy tokenizator o nazwie Tekken, który opiera się na Tiktoken i został przeszkolony na ponad 100 językach. Ten nowy tokenizator oferuje znaczące ulepszenia w wydajności kompresji tekstu w porównaniu z poprzednimi tokenizatorami, takimi jak SentencePiece.

Kluczowe funkcje Tekken obejmują:

  • 30% większa efektywność kompresji dla kodu źródłowego, chińskiego, włoskiego, francuskiego, niemieckiego, hiszpańskiego i rosyjskiego
  • 2-krotnie większa efektywność kompresji dla koreańskiego
  • 3-krotnie większa efektywność kompresji dla arabskiego
  • Przewyższa tokenizator Llama 3 w kompresji tekstu dla około 85% wszystkich języków

Ta poprawiona efektywność tokenizacji przekłada się na lepszą wydajność modelu, zwłaszcza przy pracy z wielojęzycznym tekstem i kodem źródłowym. Pozwala modelowi przetwarzać więcej informacji w ramach tego samego okna kontekstowego, prowadząc do bardziej spójnych i kontekstowo istotnych danych wyjściowych.

Licensing i dostępność

Mistral Large 2 i Mistral NeMo mają różne modele licencyjne, odzwierciedlające ich zamierzone przypadki użycia:

Mistral Large 2

  • Wydany na licencji Mistral Research License
  • Zezwala na użycie i modyfikację do celów badawczych i niekomercyjnych
  • Użycie komercyjne wymaga licencji Mistral Commercial License

Mistral NeMo

  • Wydany na licencji Apache 2.0
  • Zezwala na otwarte użycie, w tym aplikacje komercyjne

Oba modele są dostępne na różnych platformach:

  • Hugging Face: Wagi dla obu modeli podstawowych i instruktażowych są hostowane tutaj
  • Mistral AI: Dostępne jako mistral-large-2407 (Mistral Large 2) i open-mistral-nemo-2407 (Mistral NeMo)
  • Dostawcy usług chmurowych: Dostępne na Google Cloud Platform’s Vertex AI, Azure AI Studio, Amazon Bedrock i IBM watsonx.ai
https://mistral.ai/news/mistral-large-2407/

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

Dla deweloperów, którzy chcą wykorzystywać te modele, oto szybki przykład, jak załadować i użyć Mistral Large 2 z Hugging Face transformers:

from transformers import AutoModelForCausalLM, AutoTokenizer

<p>model_name = &quot;mistralai/Mistral-Large-Instruct-2407&quot;
device = &quot;cuda&quot; # Use GPU if available</p>

<p># Load the model and tokenizer
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)</p>

<p># Move the model to the appropriate device
model.to(device)</p>

<p># Prepare input
messages = [
{&quot;role&quot;:&quot;system&quot;, &quot;content&quot;:&quot;You are a helpful AI assistant.&quot;},
{&quot;role&quot;:&quot;user&quot;, &quot;content&quot;:&quot;Explain the concept of neural networks in simple terms.&quot;}
]</p>

<p># Encode input
input_ids = tokenizer.apply_chat_template(messages, return_tensors=&quot;pt&quot;).to(device)</p>

<p># Generate response
output_ids = model.generate(input_ids, max_new_tokens=500, do_sample=True)</p>

<p># Decode and print the response
response = tokenizer.decode(output_ids[0], skip_special_tokens=True)
print(response)</p>

Ten kod pokazuje, jak załadować model, przygotować dane wejściowe w formacie rozmowy, wygenerować odpowiedź i zdekodować dane wyjściowe.

Ograniczenia i uwagi etyczne

Chociaż Mistral Large 2 i Mistral NeMo reprezentują znaczące postępy w technologiach AI, ważne jest, aby uznać ich ograniczenia i uwagi etyczne związane z ich użyciem:

  1. Potencjał uprzedzeń: Jak wszystkie modele AI szkolone na dużych zbiorach danych, te modele mogą odziedziczyć i nasilić uprzedzenia obecne w danych szkoleniowych. Użytkownicy powinni być świadomi tego i wdrożyć odpowiednie środki ostrożności.
  2. Brak prawdziwego zrozumienia: Pomimo ich imponujących możliwości, te modele nie posiadają prawdziwego zrozumienia ani świadomości. Generują odpowiedzi na podstawie wzorców w danych szkoleniowych, co czasem może prowadzić do brzmiących prawdopodobnie, lecz nieprawidłowych informacji.
  3. Uwagi dotyczące prywatności: Podczas korzystania z tych modeli, zwłaszcza w aplikacjach obejmujących wrażliwe informacje, ważne jest, aby wziąć pod uwagę implikacje związane z prywatnością i bezpieczeństwem danych.

Podsumowanie

Dostosowywanie zaawansowanych modeli, takich jak Mistral Large 2 i Mistral NeMo, stanowi potężną okazję do wykorzystania najnowocześniejszych technologii AI w różnych aplikacjach, od dynamicznego wywoływania funkcji po efektywną przetwarzanie wielojęzycznego. Oto kilka praktycznych wskazówek i kluczowych spostrzeżeń, które należy mieć na uwadze:

  1. Zrozum swój przypadek użycia: Wyraźnie zdefiniuj konkretnych zadania i cele, które chcesz osiągnąć za pomocą modelu. To zrozumienie będzie przewodnikiem w wyborze modelu i podejściu do dostosowywania, czy to za pomocą potężnych możliwości wywoływania funkcji Mistral, czy efektywnej przetwarzania wielojęzycznego.
  2. Optymalizuj pod kątem efektywności: Wykorzystaj tokenizator Tekken, aby znacznie poprawić efektywność kompresji tekstu, zwłaszcza jeśli twoja aplikacja obejmuje przetwarzanie dużych ilości tekstu lub wielu języków. To ulepszenie poprawi wydajność modelu i zmniejszy koszty obliczeniowe.
  3. Wykorzystaj wywoływanie funkcji: Przyjmij paradygmat agenty, włączając wywoływanie funkcji w interakcjach z modelem. Pozwala to twojemu AI na dynamiczną interakcję z zewnętrznymi narzędziami i usługami, dostarczając bardziej dokładne i użyteczne dane wyjściowe. Na przykład, integrując API pogodowe lub inne zewnętrzne źródła danych, możesz znacznie poprawić istotność i użyteczność odpowiedzi modelu.
  4. Wybierz odpowiednią platformę: Upewnij się, że wdrożysz swoje modele na platformach, które obsługują ich możliwości, takich jak Google Cloud Platform’s Vertex AI, Azure AI Studio, Amazon Bedrock i IBM watsonx.ai. Te platformy zapewniają niezbędną infrastrukturę i narzędzia, aby maksymalnie wykorzystać wydajność i skalowalność twoich modeli AI.

Poprzez postępowanie zgodnie z tymi wskazówkami i wykorzystując dostarczone przykłady kodu, możesz skutecznie wykorzystać potencjał Mistral Large 2 i Mistral NeMo dla twoich konkretnych potrzeb.

Przez ostatnie pięć lat zanurzałem się w fascynującym świecie Machine Learning i Deep Learning. Moja pasja i ekspertyza doprowadziły mnie do udziału w ponad 50 różnorodnych projektach inżynierii oprogramowania, ze szczególnym uwzględnieniem AI/ML. Moja nieustanna ciekawość również skierowała mnie w stronę Natural Language Processing, dziedziny, którą chcę dalej eksplorować.