Искусственный интеллект
Мистрал 2 и Мистрал НеMo: Комплексное руководство по последним моделям LLM от Парижа

Основанная выпускниками Google’s DeepMind и Meta, парижская стартап-компания Mistral AI последовательно делала волны в сообществе ИИ с 2023 года.
Mistral AI впервые привлекла внимание мира своим дебютным моделью, Mistral 7B, выпущенной в 2023 году. Эта 7-миллиардная модель параметров быстро получила признание за свою впечатляющую производительность, превосходя более крупные модели, такие как Llama 2 13B в различных бенчмарках, и даже конкурируя с Llama 1 34B по многим метрикам. То, что отличало Mistral 7B, было не только ее производительностью, но и доступностью – модель могла быть легко скачана с GitHub или даже через 13,4-гигабайтный торрент, что делало ее легко доступной для исследователей и разработчиков во всем мире.
Необычный подход компании к выпускам, часто отказываясь от традиционных статей, блогов или пресс-релизов, оказался удивительно эффективным в привлечении внимания сообщества ИИ. Эта стратегия, в сочетании с их приверженностью принципам открытого исходного кода, позиционирует Mistral AI как серьезного игрока на рынке ИИ.
Быстрый рост Mistral AI в отрасли еще больше подтверждается их недавним успехом в привлечении инвестиций. Компания достигла ошеломляющей оценки в 2 миллиарда долларов после раунда финансирования под руководством Andreessen Horowitz. Это произошло после исторического раунда финансирования в размере 118 миллионов долларов – самого крупного в европейской истории – что демонстрирует огромную веру инвесторов в видение и возможности Mistral AI.
Помимо технологических достижений, Mistral AI также активно участвует в формировании политики ИИ, особенно в обсуждениях вокруг закона ЕС об ИИ, где они выступают за снижение регулирования в области открытого ИИ.
Теперь, в 2024 году, Mistral AI снова подняла планку с двумя революционными моделями: Mistral Large 2 (также известной как Mistral-Large-Instruct-2407) и Mistral NeMo. В этом комплексном руководстве мы глубоко погрузимся в особенности, производительность и потенциальные применения этих впечатляющих моделей ИИ.
Ключевые характеристики Mistral Large 2 включают:
- 123 миллиарда параметров
- 128к контекстное окно
- Поддержка десятков языков
- Профессионализм в 80+ языках программирования
- Расширенные возможности вызова функций
Модель разработана для расширения границ эффективности затрат, скорости и производительности, что делает ее привлекательным вариантом как для исследователей, так и для предприятий, стремящихся использовать передовые технологии ИИ.
Мистрал НеMo: Новая, более компактная модель
В то время как Mistral Large 2 представляет собой лучшее из крупномасштабных моделей Mistral AI, Mistral NeMo, выпущенная в июле 2024 года, идет по другому пути. Разработанная в сотрудничестве с NVIDIA, Mistral NeMo – это более компактная модель с 12 миллиардами параметров, которая все еще предлагает впечатляющие возможности:
- 12 миллиардов параметров
- 128к контекст окно
- Производительность на уровне лучших в своей категории
- Лицензия Apache 2.0 для открытого использования
- Обучение с учетом квантования для эффективного вывода
Mistral NeMo позиционируется как замена системам, которые в настоящее время используют Mistral 7B, предлагая улучшенную производительность при сохранении легкости использования и совместимости.
Ключевые особенности и возможности
И Mistral Large 2, и Mistral NeMo имеют несколько ключевых особенностей, которые выделяют их на фоне других моделей ИИ:
- Большие контекстные окна: С длиной контекста в 128к токенов, обе модели могут обрабатывать и понимать более длинные тексты, что позволяет генерировать более связные и контекстно-релевантные выходные данные.
- Мультимедийная поддержка: Модели демонстрируют исключительные результаты в широком спектре языков, включая английский, французский, немецкий, испанский, итальянский, китайский, японский, корейский, арабский и хинди.
- Расширенные возможности программирования: Обе модели демонстрируют исключительные результаты в генерации кода на многочисленных языках программирования.
- Выполнение инструкций: Значительные улучшения были достигнуты в способности моделей следовать точным инструкциям и обрабатывать разговоры с несколькими ходами.
- Вызов функций: Родная поддержка вызова функций позволяет этим моделям динамически взаимодействовать с внешними инструментами и сервисами.
- Рассуждение и решение проблем: Улучшенные возможности математического рассуждения и решения сложных задач.
Давайте рассмотрим некоторые из этих особенностей и посмотрим, как они работают на практике.
Производительность в бенчмарках
Чтобы понять истинные возможности Mistral Large 2 и Mistral NeMo, важно посмотреть на их производительность в различных бенчмарках. Давайте рассмотрим некоторые ключевые метрики:
Бенчмарки Mistral Large 2
Эта таблица представляет собой профессионализм различных моделей ИИ в различных языках программирования. Модели, такие как Mistral Large 2 (24.07), Llama 3.1 (405B) и GPT-4o, оцениваются по их способности понимать и генерировать код на языках, таких как Python, C++, Bash, Java, TypeScript, PHP и C#.
Llama 3.1 405B демонстрирует сильную производительность в нескольких языках, с особенно высокими результатами в Python и Java. Эта профессионализм имеет решающее значение для приложений, связанных с генерацией кода, отладкой и разработкой программного обеспечения, что делает эти модели ценным инструментом для разработчиков.
Бенчмарки Mistral NeMo
Хотя конкретные результаты бенчмарков для Mistral NeMo не предоставлены в данной информации, она описывается как предлагающая производительность на уровне лучших в своей категории. Модель превосходит другие недавние открытые предварительно обученные модели, такие как Gemma 2 9B и Llama 3 8B, в различных задачах.
Мультимедийные и программные возможности
Одной из выдающихся особенностей как Mistral Large 2, так и Mistral NeMo является их исключительная мультимедийная способность. Это особенно важно в нашем все более глобализированном мире, где модели ИИ должны понимать и генерировать контент на нескольких языках.
Mistral Large 2, например, поддерживает десятки языков, включая французский, немецкий, испанский, итальянский, португальский, арабский, хинди, русский, китайский, японский и корейский. Эта мультимедийная профессионализм распространяется за пределы простого перевода, охватывая нюансированное понимание и генерацию в этих языках.
Чтобы проиллюстрировать это, давайте рассмотрим пример генерации текста Mistral Large 2 на нескольких языках:
[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]
Эти примеры демонстрируют как мультимедийную текстовую генерацию, так и программные возможности модели.
Обе модели доступны на различных платформах, таких как Hugging Face, платформа Mistral AI и крупные облачные провайдеры, такие как Google Cloud Platform, Azure AI Studio, Amazon Bedrock и IBM watsonx.ai (Mistral AI | Frontier AI в ваших руках).
Парадигма агентности и вызов функций
И Mistral Large 2, и Mistral NeMo принимают агентно-центричный дизайн, который представляет собой сдвиг парадигмы в том, как мы взаимодействуем с моделями ИИ. Этот подход фокусируется на построении моделей, способных взаимодействовать со своей средой, принимать решения и выполнять действия для достижения конкретных целей.
Одной из ключевых особенностей, обеспечивающих эту парадигму, является родная поддержка вызова функций. Это позволяет моделям динамически взаимодействовать с внешними инструментами и сервисами, эффективно расширяя их возможности за пределы простой генерации текста.
Давайте рассмотрим пример того, как вызов функций может работать с 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 = "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)</p>
<p># 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"],
},
)</p>
<p># 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?"),
],
)</p>
<p># Encode the request
tokens = tokenizer.encode_chat_completion(completion_request).tokens</p>
<p># 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])</p>
print(result)
В этом примере мы определяем функцию для получения информации о погоде и включаем ее в наш запрос на завершение чата. Модель может затем использовать эту функцию для получения информации о погоде в режиме реального времени, демонстрируя, как она может взаимодействовать с внешними системами для предоставления более точной и актуальной информации.
Tekken: Более эффективный токенизатор
Mistral NeMo вводит новый токенизатор под названием Tekken, который основан на Tiktoken и обучен на более чем 100 языках. Этот новый токенизатор предлагает значительные улучшения в эффективности сжатия текста по сравнению с предыдущими токенизаторами, такими как SentencePiece.
Ключевые особенности Tekken включают:
- 30% более эффективное сжатие для исходного кода, китайского, итальянского, французского, немецкого, испанского и русского языков
- 2 раза более эффективное сжатие для корейского языка
- 3 раза более эффективное сжатие для арабского языка
- Превосходит токенизатор Llama 3 в сжатии текста для примерно 85% всех языков
Эта улучшенная эффективность токенизации переводится в лучшую производительность модели, особенно при работе с мультимедийным текстом и исходным кодом. Это позволяет модели обрабатывать больше информации в рамках одного контекстного окна, что приводит к более связным и контекстно-релевантным выходным данным.
Лицензирование и доступность
Mistral Large 2 и Mistral NeMo имеют разные модели лицензирования, отражающие их предполагаемые случаи использования:
Mistral Large 2
- Выпущена под лицензией Mistral Research License
- Позволяет использование и модификацию для исследовательских и некоммерческих целей
- Коммерческое использование требует лицензии Mistral Commercial License
Mistral NeMo
- Выпущена под лицензией Apache 2.0
- Позволяет открытое использование, включая коммерческие применения
Обе модели доступны через различные платформы:
- Hugging Face: Веса для обоих базовых и инструктивных моделей размещены здесь
- Mistral AI: Доступна как
mistral-large-2407(Mistral Large 2) иopen-mistral-nemo-2407(Mistral NeMo) - Облачные провайдеры: Доступна на Google Cloud Platform’s Vertex AI, Azure AI Studio, Amazon Bedrock и IBM watsonx.ai
Для разработчиков, которые хотят использовать эти модели, вот быстрый пример того, как загрузить и использовать Mistral Large 2 с помощью Hugging Face transformers:
from transformers import AutoModelForCausalLM, AutoTokenizer
<p>model_name = "mistralai/Mistral-Large-Instruct-2407"
device = "cuda" # 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 = [
{"role": "system", "content": "You are a helpful AI assistant."},
{"role": "user", "content": "Explain the concept of neural networks in simple terms."}
]</p>
<p># Encode input
input_ids = tokenizer.apply_chat_template(messages, return_tensors="pt").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>
Этот код демонстрирует, как загрузить модель, подготовить входные данные в формате чата, сгенерировать ответ и расшифровать выходные данные.
















