Kontakt z nami

Mistral 2 i Mistral NeMo: kompleksowy przewodnik po najnowszym LLM pochodzącym z Paryża

Artificial Intelligence

Mistral 2 i Mistral NeMo: kompleksowy przewodnik po najnowszym LLM pochodzącym z Paryża

mm
Mistral Large 2 i Mistral NeMo

Założona przez byłych pracowników Google DeepMind i Meta, firma typu startup z siedzibą w Paryżu Sztuczna inteligencja Mistrala od 2023 r. niezmiennie cieszy się popularnością w społeczności AI.

Mistral AI po raz pierwszy przykuł uwagę świata swoim debiutanckim modelem Mistral 7B, wydanym w 2023 roku. Ten model o 7 miliardach parametrów szybko zyskał popularność dzięki imponującej wydajności, przewyższając większe modele, takie jak Llama 2 13B, w różnych testach porównawczych, a nawet rywalizując z Lama 1 34B w wielu metrykach. Jaki zestaw Mistrala 7B wyróżniała się nie tylko wydajnością, ale także przystępnością – model można było łatwo złożyć pobrane z GitHub lub nawet za pośrednictwem 13.4-gigabajtowego torrenta, dzięki czemu jest łatwo dostępny dla badaczy i programistów na całym świecie.

Niekonwencjonalne podejście firmy do publikacji, często rezygnujące z tradycyjnych artykułów, blogów czy komunikatów prasowych, okazało się niezwykle skuteczne w przyciąganiu uwagi społeczności AI. Ta strategia, w połączeniu z zaangażowaniem w zasady open source, zapewniła Mistral AI pozycję silnego gracza na rynku sztucznej inteligencji.

Szybki rozwój Mistral AI w branży jest dodatkowo potwierdzony niedawnym sukcesem finansowym. Firma osiągnęła oszałamiającą wycenę na poziomie 2 miliardów dolarów po rundzie finansowania, której przewodził Andreessen Horowitz. Stało się to tuż po historycznej rundzie zalążkowej o wartości 118 milionów dolarów – największej w historii Europy – co świadczy o ogromnym zaufaniu inwestorów do wizji i możliwości Mistral AI.

Oprócz rozwoju technologicznego firma Mistral AI aktywnie uczestniczyła w kształtowaniu polityki dotyczącej sztucznej inteligencji, zwłaszcza w dyskusjach na temat unijnej ustawy o sztucznej inteligencji, gdzie opowiadała się za ograniczeniem regulacji dotyczących sztucznej inteligencji opartej na otwartym kodzie źródłowym.

Teraz, w 2024 roku, Mistral AI po raz kolejny podniósł poprzeczkę dzięki dwóm przełomowym modelom: Mistral Duży 2 (znany również jako Mistral-Large-Instruct-2407) i Mistral NeMoW tym kompleksowym przewodniku zagłębimy się w funkcje, wydajność i potencjalne zastosowania tych imponujących modeli sztucznej inteligencji.

Kluczowe specyfikacje Mistral Large 2 obejmują:

  • 123 mld parametry
  • 128k okno kontekstowe
  • Obsługa kilkudziesięciu języków
  • biegłość w Kodowanie 80+ języki
  • Zaawansowane możliwości wywoływania funkcji

Model zaprojektowano tak, aby przesuwał granice efektywności kosztowej, szybkości i wydajności, co czyni go atrakcyjną opcją zarówno dla badaczy, jak i przedsiębiorstw chcących wykorzystać najnowocześniejszą sztuczną inteligencję.

Mistral NeMo: nowy, mniejszy model

Podczas gdy Mistral Large 2 reprezentuje najlepszy z modeli wielkoskalowych Mistral AI, Mistral NeMo, wydany w lipcu 2024 roku, przyjmuje inne podejście. Opracowany we współpracy z firmą NVIDIA, Mistral NeMo to bardziej kompaktowy model o 12 miliardach parametrów, który wciąż oferuje imponujące możliwości:

  • 12 mld parametry
  • Kontekst 128k okno
  • Najnowocześniejsza wydajność w swojej kategorii wielkości
  • Licencja Apache 2.0 do użytku otwartego
  • Świadomość kwantyzacji szkolenie w zakresie skutecznego wnioskowania

Mistral NeMo jest pozycjonowany jako bezpośredni zamiennik systemów obecnie korzystających z Mistral 7B, oferujący zwiększoną wydajność przy jednoczesnym zachowaniu łatwości użytkowania i kompatybilności.

Kluczowe cechy i możliwości

Zarówno Mistral Large 2, jak i Mistral NeMo mają kilka wspólnych kluczowych cech, które wyróżniają je na tle sztucznej inteligencji:

  1. Duże okna kontekstowe: Przy długości kontekstu tokenów wynoszącej 128 tys. oba modele mogą przetwarzać i rozumieć znacznie dłuższe fragmenty tekstu, zapewniając bardziej spójne i kontekstowo odpowiednie wyniki.
  2. Obsługa wielu języków: Modele doskonale posługują się szeroką gamą 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 kodowania: Oba modele wykazują wyjątkową biegłość w generowaniu kodu w wielu językach programowania.
  4. Instrukcja poniżej:Wprowadzono znaczące udoskonalenia w zakresie zdolności modeli do wykonywania precyzyjnych instrukcji i prowadzenia rozmów składających się z wielu zwrotów akcji.
  5. Wywołanie funkcji: Natywna obsługa wywoływania funkcji umożliwia tym modelom dynamiczną interakcję z zewnętrznymi narzędziami i usługami.
  6. Rozumowanie i rozwiązywanie problemów: Zwiększone możliwości rozumowania matematycznego i rozwiązywania złożonych zadań.

Przyjrzyjmy się bliżej niektórym z tych funkcji i sprawdźmy, jak sprawdzają się w praktyce.

Benchmarki wydajności

Aby zrozumieć rzeczywiste możliwości Mistral Large 2 i Mistral NeMo, konieczne jest przyjrzenie się ich wydajności w różnych testach porównawczych. Przyjrzyjmy się kilku kluczowym wskaźnikom:

Testy porównawcze Mistral Large 2

Poniższa tabela przedstawia biegłość różnych 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 rozumienia i generowania kodu w językach takich jak Python, C++, Bash, Java, TypeScript, PHP i C#.

Lama 3.1 405B wykazuje dobrą wydajność w wielu językach, ze szczególnie wysokimi wynikami w Pythonie i Javie. Ta biegłość ma kluczowe znaczenie w zastosowaniach obejmujących generowanie kodu, debugowanie i tworzenie oprogramowania, dzięki czemu modele te są cennymi narzędziami dla programistó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/

Testy Mistral NeMo

Chociaż w podanych informacjach nie podano konkretnych wyników testów porównawczych dla Mistral NeMo, model ten jest opisywany jako oferujący najnowocześniejszą wydajność w swojej kategorii rozmiarów. Model ten przewyższa inne, niedawno opracowane, wstępnie wytrenowane modele open source, takie jak Gemma 2 9B i Llama 3 8B, w różnych zadaniach.

Wielojęzyczność i umiejętność kodowania

Jedną z wyróżniających się cech Mistral Large 2 i Mistral NeMo są ich wyjątkowe możliwości wielojęzyczne. Jest to szczególnie ważne w naszym coraz bardziej zglobalizowanym świecie, w którym modele sztucznej inteligencji muszą rozumieć i generować treści w wielu językach.

Na przykład Mistral Large 2 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 i obejmuje zróżnicowane zrozumienie i generowanie w tych językach.

Aby to zobrazować, przyjrzyjmy się przykładowi generowania tekstu w wielu językach przez Mistral Large 2:

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

Oto krótkie pozdrowienia w żądanych językach:

Angielski: Witam! Jak się dzisiaj miewasz?
Francuski: Bonjour! Skomentuj allez-vous aujourd'hui ?
Niemiecki: Cześć! Wie geht es Ihnen heute?
Hiszpański: ¡Hola! ¿Cómo estás hoy?
Japoński: こんにちは!今日はお元気ですか?

[INST]

Teraz napisz proste „Hello, World!” program w Pythonie, Javie i JavaScript. [/INST]

Te przykłady pokazują zarówno możliwości generowania wielojęzycznego tekstu, jak i kodowania modelu.

Oba modele są dostępne na różnych platformach, takich jak Hugging Face, platforma Mistral AI oraz u głównych dostawców usług w chmurze, takich jak Google Cloud Platform, Azure AI Studio, Amazon Bedrock i IBM watsonx.ai​ (Sztuczna inteligencja Mistrala | Graniczna sztuczna inteligencja w Twoich rękach).

Paradygmat agentyczny i wywoływanie funkcji

Zarówno Mistral Large 2, jak i Mistral NeMo charakteryzują się konstrukcją skoncentrowaną na agentach, co stanowi zmianę paradygmatu w sposobie interakcji z modelami sztucznej inteligencji. Podejście to koncentruje się na budowaniu modeli zdolnych do interakcji z otoczeniem, podejmowania decyzji i podejmowania działań w celu osiągnięcia określonych celów.

Kluczową cechą umożliwiającą ten paradygmat jest natywna obsługa wywoływania funkcji. Pozwala to modelom na dynamiczną interakcję z zewnętrznymi narzędziami i usługami, skutecznie rozszerzając ich możliwości poza proste generowanie tekstu.

Przyjrzyjmy się przykładowi, w jaki sposób wywoływanie funkcji może działać w 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

# Initialize tokenizer and model
mistral_models_path = "path/to/mistral/models"  # Ensure this path is correct
tokenizer = MistralTokenizer.from_file(f"{mistral_models_path}/tokenizer.model.v3")
model = Transformer.from_folder(mistral_models_path)

# Define a function for getting weather information
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"],
    },
)

# Create a chat completion request with the function
completion_request = ChatCompletionRequest(
    tools=[Tool(function=weather_function)],
    messages=[
        UserMessage(content="What's the weather like today in Paris?"),
    ],
)

# Encode the request
tokens = tokenizer.encode_chat_completion(completion_request).tokens

# Generate a response
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])

print(result)


W tym przykładzie definiujemy funkcję uzyskiwania informacji o pogodzie i uwzględniamy ją w naszej prośbie o zakończenie czatu. Model może następnie użyć tej funkcji do pobrania danych pogodowych w czasie rzeczywistym, demonstrując, w jaki sposób może współdziałać z systemami zewnętrznymi, aby zapewnić dokładniejsze i aktualne informacje.

Tekken: bardziej wydajny tokenizer

Mistral NeMo wprowadza nowy tokenizer o nazwie Tekken, który opiera się na Tiktokenie i jest przeszkolony w ponad 100 językach. Ten nowy tokenizator oferuje znaczną poprawę wydajności kompresji tekstu w porównaniu do poprzednich tokenizatorów, takich jak SentencePiece.

Kluczowe cechy Tekkena to:

  • 30% wydajniejsza kompresja kodu źródłowego, chińskiego, włoskiego, francuskiego, niemieckiego, hiszpańskiego i rosyjskiego
  • 2x wydajniejsza kompresja dla języka koreańskiego
  • 3x wydajniejsza kompresja dla języka arabskiego
  • Przewyższa tokenizator Llama 3 w kompresji tekstu dla około 85% wszystkich języków

Ta poprawiona wydajność tokenizacji przekłada się na lepszą wydajność modelu, szczególnie w przypadku wielojęzycznego tekstu i kodu źródłowego. Pozwala modelowi przetwarzać więcej informacji w tym samym oknie kontekstowym, co prowadzi do bardziej spójnych i odpowiednich kontekstowo wyników.

Licencjonowanie i dostępność

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

Mistral Duży 2

  • Wydany na licencji Mistral Research
  • Umożliwia wykorzystanie i modyfikację do celów badawczych i niekomercyjnych
  • Użytek komercyjny wymaga licencji komercyjnej Mistral

Mistral NeMo

  • Wydany na licencji Apache 2.0
  • Umożliwia otwarte wykorzystanie, w tym aplikacje komercyjne

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

  • Przytulająca twarz: Tutaj znajdują się wagi modeli podstawowych i instruktorskich
  • Sztuczna inteligencja Mistrala: Dostępne jako mistral-large-2407 (Mistral Duży 2) i open-mistral-nemo-2407 (Mistral NeMo)
  • Dostawcy usług w chmurzeDostępne w platformach Vertex AI, Azure AI Studio, Amazon Bedrock i IBM watsonx.ai firmy Google Cloud Platform
https://mistral.ai/news/mistral-large-2407/

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

Dla deweloperów, którzy chcą wykorzystać te modele, przedstawiamy krótki przykład ładowania i używania Mistral Large 2 z transformatorami Hugging Face:

 
from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "mistralai/Mistral-Large-Instruct-2407"
device = "cuda"  # Use GPU if available

# Load the model and tokenizer
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)

# Move the model to the appropriate device
model.to(device)

# Prepare input
messages = [
    {"role": "system", "content": "You are a helpful AI assistant."},
    {"role": "user", "content": "Explain the concept of neural networks in simple terms."}
]

# Encode input
input_ids = tokenizer.apply_chat_template(messages, return_tensors="pt").to(device)

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

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

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

Ograniczenia i względy etyczne

Choć Mistral Large 2 i Mistral NeMo stanowią istotny postęp w technologii sztucznej inteligencji, należy mieć świadomość ich ograniczeń i kwestii etycznych związanych z ich wykorzystaniem:

  1. Potencjał uprzedzeń: Podobnie jak wszystkie modele sztucznej inteligencji trenowane na dużych zbiorach danych, modele te mogą dziedziczyć i wzmacniać błędy obecne w ich danych szkoleniowych. Użytkownicy powinni być tego świadomi i wdrożyć odpowiednie zabezpieczenia.
  2. Brak prawdziwego zrozumienia: Pomimo imponujących możliwości modele te nie posiadają prawdziwego zrozumienia ani świadomości. Generują odpowiedzi w oparciu o wzorce zawarte w danych szkoleniowych, co czasami może prowadzić do wiarygodnie brzmiących, ale nieprawidłowych informacji.
  3. Obawy dotyczące prywatności:Korzystając z tych modeli, zwłaszcza w aplikacjach przetwarzających poufne informacje, należy koniecznie wziąć pod uwagę kwestie prywatności i bezpieczeństwa danych.

Podsumowanie

Dostrajanie zaawansowanych modeli, takich jak Mistral Large 2 i Mistral NeMo, stwarza potężną okazję do wykorzystania najnowocześniejszej sztucznej inteligencji do różnych zastosowań, od dynamicznych wywoływań funkcji po wydajne przetwarzanie wielojęzyczne. Oto kilka praktycznych wskazówek i kluczowych spostrzeżeń, o których warto pamiętać:

  1. Poznaj swój przypadek użycia:Jasno określ konkretne zadania i cele, które chcesz osiągnąć dzięki swojemu modelowi. To zrozumienie pomoże Ci w wyborze modelu i dopracowaniu metody, niezależnie od tego, czy chodzi o rozbudowane możliwości wywoływania funkcji Mistral, czy wydajne przetwarzanie tekstu wielojęzycznego.
  2. Optymalizuj pod kątem wydajności: Wykorzystaj tokenizer Tekken, aby znacząco poprawić efektywność kompresji tekstu, szczególnie jeśli Twoja aplikacja wymaga obsługi dużych ilości tekstu lub wielu języków. Poprawi to wydajność modelu i obniży koszty obliczeń.
  3. Wywołanie funkcji dźwigni:Zastosuj paradygmat agentyczny, włączając wywołania funkcji do interakcji modelu. Dzięki temu Twoja sztuczna inteligencja może dynamicznie współdziałać z narzędziami i usługami zewnętrznymi, dostarczając dokładniejsze i bardziej praktyczne wyniki. Na przykład, integracja interfejsów API pogody lub innych zewnętrznych źródeł danych może znacznie zwiększyć trafność i użyteczność odpowiedzi modelu.
  4. Wybierz odpowiednią platformęUpewnij się, że wdrażasz swoje modele na platformach, które obsługują ich możliwości, takich jak Vertex AI od Google Cloud Platform, Azure AI Studio, Amazon Bedrock i IBM watsonx.ai. Platformy te zapewniają niezbędną infrastrukturę i narzędzia do maksymalizacji wydajności i skalowalności modeli AI.

Postępując zgodnie z tymi wskazówkami i korzystając z dostarczonych przykładów kodu, możesz skutecznie wykorzystać moc Mistral Large 2 i Mistral NeMo do swoich konkretnych potrzeb.

Ostatnie pięć lat spędziłem zanurzając się w fascynującym świecie uczenia maszynowego i głębokiego uczenia się. Moja pasja i wiedza sprawiły, że uczestniczyłem w ponad 50 różnorodnych projektach z zakresu inżynierii oprogramowania, ze szczególnym uwzględnieniem AI/ML. Moja ciągła ciekawość przyciągnęła mnie również w stronę przetwarzania języka naturalnego – dziedziny, którą chcę dalej zgłębiać.