Моделі та платформи ШІ

Mistral 2 і Mistral NeMo: Комплексний гід щодо останніх досягнень LLM від Парижа

mm
Додайте Unite.AI до бажаних джерел у Google
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+ мов програмування
  • Продвинуті можливості виклику функцій

Модель розроблена для розширення меж ефективності витрат, швидкості та продуктивності, роблячи її привабливою опцією як для дослідників, так і для підприємств, які хочуть використовувати передові технології штучного інтелекту.

Mistral NeMo: Нова менша модель

Хоча Mistral Large 2 представляє найкраще з великомасштабних моделей Mistral AI, Mistral NeMo, випущений у липні 2024 року, підходить до справи інакше. Розроблений у співробітництві з NVIDIA (NVDA ), 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

Ця таблиця представляє майстерність різних моделей LLM у різних мовах програмування. Моделі, такі як 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] Генеруйте коротке привітання англійською, французькою, німецькою, іспанською та японською. [/INST]

Ось короткі привітання у запрошених мовах:

Англійська: Привіт! Як ти сьогодні?

Французька: Бонжур ! Як ви сьогодні?

Німці: Гало! Як ви сьогодні?

Іспанська: Привіт! Як ти сьогодні?

Японська: こんにちは!今日はお元気ですか?

[INST]

Тепер напишіть просту програму “Привіт, світ!” на Python, Java та 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># Ініціалізація токенізатора та моделі
mistral_models_path = "шлях/до/моделей/mistral" # Перевірте, що шлях правильний
tokenizer = MistralTokenizer.from_file(f"{mistral_models_path}/tokenizer.model.v3")
model = Transformer.from_folder(mistral_models_path)</p>

<p># Визначення функції для отримання інформації про погоду
weather_function = Function(
name="get_current_weather",
description="Отримати поточну погоду",
parameters={
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "Місто та область, наприклад Сан-Франциско, Каліфорнія",
},
"format": {
"type": "string",
"enum": ["цельсій", "фаренгейт"],
"description": "Одиниця температури для використання. Визначається з місця розташування користувача.",
},
},
"required": ["location", "format"],
},
)</p>

<p># Створення запиту на завершення чату з функцією
completion_request = ChatCompletionRequest(
tools=[Tool(function=weather_function)],
messages=[
UserMessage(content="Яка погода сьогодні в Парижі?"),
],
)</p>

<p># Кодування запиту
tokens = tokenizer.encode_chat_completion(completion_request).tokens</p>

<p># Генерація відповіді
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
  • Дозволяє використання та модифікацію для дослідницьких та некомерційних цілей
  • Комерційне використання вимагає ліцензії Mistral Commercial

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 = "mistralai/Mistral-Large-Instruct-2407"
device = "cuda" # Використовуйте GPU, якщо доступно</p>

<p># Завантаження моделі та токенізаційного інструменту
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)</p>

<p># Переміщення моделі на відповідний пристрій
model.to(device)</p>

<p># Підготовка вхідних даних
messages = [
{"role": "system", "content": "Ви є корисним помічником штучного інтелекту."},
{"role": "user", "content": "Опишіть концепцію нейронних мереж у простих термінах."},
]</p>

<p># Кодування вхідних даних
input_ids = tokenizer.apply_chat_template(messages, return_tensors="pt").to(device)</p>

<p># Генерація відповіді
output_ids = model.generate(input_ids, max_new_tokens=500, do_sample=True)</p>

<p># Декодування та друкування відповіді
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. Розуміння свого випадку використання: Чітко визначте конкретні завдання та цілі, яких ви хочете досягти своєю моделлю. Це розуміння буде керувати вашим вибором моделі та підходом до настройки, незалежно від того, чи це потужні можливості виклику функцій Mistral, чи її ефективна багатомовна обробка тексту.
  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 різних проектів програмної інженерії, з особливим акцентом на AI/ML. Моя тривала цікавість також привела мене до природної обробки мови, галузі, яку я бажаю дослідити далі.