Искусственный интеллект

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

mm
Mistral Large 2 and Mistral NeMo

Основанная выпускниками 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 имеют несколько ключевых особенностей, которые выделяют их на фоне других моделей ИИ:

  1. Большие контекстные окна: С длиной контекста в 128к токенов, обе модели могут обрабатывать и понимать более длинные тексты, что позволяет генерировать более связные и контекстно-релевантные выходные данные.
  2. Мультимедийная поддержка: Модели демонстрируют исключительные результаты в широком спектре языков, включая английский, французский, немецкий, испанский, итальянский, китайский, японский, корейский, арабский и хинди.
  3. Расширенные возможности программирования: Обе модели демонстрируют исключительные результаты в генерации кода на многочисленных языках программирования.
  4. Выполнение инструкций: Значительные улучшения были достигнуты в способности моделей следовать точным инструкциям и обрабатывать разговоры с несколькими ходами.
  5. Вызов функций: Родная поддержка вызова функций позволяет этим моделям динамически взаимодействовать с внешними инструментами и сервисами.
  6. Рассуждение и решение проблем: Улучшенные возможности математического рассуждения и решения сложных задач.

Давайте рассмотрим некоторые из этих особенностей и посмотрим, как они работают на практике.

Производительность в бенчмарках

Чтобы понять истинные возможности 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. Эта профессионализм имеет решающее значение для приложений, связанных с генерацией кода, отладкой и разработкой программного обеспечения, что делает эти модели ценным инструментом для разработчиков.

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/

Бенчмарки 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 = &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
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
https://mistral.ai/news/mistral-large-2407/

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

Для разработчиков, которые хотят использовать эти модели, вот быстрый пример того, как загрузить и использовать Mistral Large 2 с помощью 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>

Этот код демонстрирует, как загрузить модель, подготовить входные данные в формате чата, сгенерировать ответ и расшифровать выходные данные.

Ограничения и этические соображения

Хотя Mistral Large 2 и Mistral NeMo представляют собой значительные достижения в технологии ИИ, важно признать их ограничения и этические соображения, связанные с их использованием:

  1. Потенциал предвзятости: Как и все модели ИИ, обученные на больших наборах данных, эти модели могут унаследовать и усилить предвзятости, присутствующие в их обучающих данных. Пользователям следует быть осведомленными об этом и реализовывать соответствующие меры предосторожности.
  2. Отсутствие истинного понимания: Несмотря на их впечатляющие возможности, эти модели не обладают истинным пониманием или сознанием. Они генерируют ответы на основе закономерностей в своих обучающих данных, что иногда может привести к правдоподобно звучащей, но неверной информации.
  3. Проблемы конфиденциальности: При использовании этих моделей, особенно в приложениях, которые обрабатывают конфиденциальную информацию, важно учитывать последствия для конфиденциальности данных и безопасности.

Заключение

Настройка передовых моделей, таких как Mistral Large 2 и Mistral NeMo, представляет собой мощную возможность использовать передовые технологии ИИ для различных приложений, от динамического вызова функций до эффективной мультимедийной обработки. Вот некоторые практические советы и ключевые выводы, которые следует помнить:

  1. Понимание вашего случая использования: Ясно определите конкретные задачи и цели, которых вы хотите достичь с помощью вашей модели. Это понимание будет руководить вашим выбором модели и подходом к настройке, будь то мощные возможности вызова функций Мистрал или ее эффективная мультимедийная обработка.
  2. Оптимизация для эффективности: Используйте токенизатор Tekken, чтобы значительно улучшить эффективность сжатия текста, особенно если ваше приложение предполагает обработку больших объемов текста или нескольких языков. Это улучшит производительность модели и снизит вычислительные затраты.
  3. Использование вызова функций: Принимайте парадигму агентности, включая вызов функций в ваши взаимодействия с моделью. Это позволяет вашему ИИ динамически взаимодействовать с внешними инструментами и сервисами, обеспечивая более точные и действенные выходные данные. Например, интеграция с API погоды или другими внешними источниками данных может значительно повысить актуальность и полезность ответов модели.
  4. Выбор правильной платформы: Убедитесь, что вы развертываете свои модели на платформах, которые поддерживают их возможности, таких как Google Cloud Platform’s Vertex AI, Azure AI Studio, Amazon Bedrock и IBM watsonx.ai. Эти платформы предоставляют необходимую инфраструктуру и инструменты для максимизации производительности и масштабируемости ваших моделей ИИ.

Следуя этим советам и используя предоставленные примеры кода, вы можете эффективно использовать силу Mistral Large 2 и Mistral NeMo для ваших конкретных потребностей.

Я провел последние пять лет, погружаясь в увлекательный мир машинного обучения и глубокого обучения. Моя страсть и экспертиза привели меня к участию в более чем 50 различных проектах программной инженерии, с особым акцентом на ИИ/МО. Мое непрекращающееся любопытство также привело меня к обработке естественного языка, области, которую я с нетерпением жду возможности изучить дальше.