Зв'язатися з нами

Mistral 2 і Mistral NeMo: вичерпний путівник щодо найновіших LLM з Парижа

Штучний Інтелект

Mistral 2 і Mistral NeMo: вичерпний путівник щодо найновіших LLM з Парижа

mm
оновлений on
Mistral Large 2 і Mistral NeMo

Заснована випускниками паризького стартапу Google DeepMind і Meta Містраль А.І з 2023 року постійно викликав хвилю в спільноті ШІ.

Mistral AI вперше привернув увагу світу своєю дебютною моделлю Mistral 7B, випущеною в 2023 році. Ця модель із 7 мільярдами параметрів швидко завоювала популярність завдяки своїй вражаючій продуктивності, перевершуючи більші моделі, такі як Llama 2 13B, у різних тестах і навіть конкуруючи з ними. Лама 1 34B у багатьох показниках. Який набір Містраль 7Б крім продуктивності, а й доступності – цю модель можна було легко завантажено з GitHub або навіть через 13.4-гігабайтний торрент, що робить його доступним для дослідників і розробників у всьому світі.

Нетрадиційний підхід компанії до випусків, який часто відмовляється від традиційних газет, блогів або прес-релізів, виявився надзвичайно ефективним у приверненні уваги спільноти ШІ. Ця стратегія в поєднанні з їхньою прихильністю до принципів відкритого коду зробила Mistral AI значним гравцем у сфері ШІ.

Швидке зростання Mistral AI в галузі додатково підтверджується недавнім фінансовим успіхом. Компанія досягла приголомшливих 2 мільярдів доларів після раунду фінансування під керівництвом Андріссена Горовіца. Це сталося після історичного стартового раунду вартістю 118 мільйонів доларів США – найбільшого в історії Європи – демонструючи величезну віру інвесторів у бачення та можливості Mistral AI.

Крім технологічних досягнень, Mistral AI також брав активну участь у формуванні політики щодо штучного інтелекту, зокрема в дискусіях навколо Закону ЄС про штучний інтелект, де вони виступали за пом’якшення регулювання ШІ з відкритим кодом.

Тепер, у 2024 році, Mistral AI знову підняв планку з двома новаторськими моделями: Містраль Великий 2 (також відомий як Mistral-Large-Instruct-2407) і Містраль НеМо. У цьому вичерпному посібнику ми детально зануримося в особливості, продуктивність і потенційні застосування цих вражаючих моделей ШІ.

Основні характеристики Mistral Large 2 включають:

  • 123 млрд людей параметри
  • 128k контекстне вікно
  • Підтримка десятків мов
  • Володіння в 80+ кодування мови
  • Розширені можливості виклику функцій

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

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

Хоча Mistral Large 2 представляє найкращі великомасштабні моделі Mistral AI, Mistral NeMo, випущений у липні 2024 року, має інший підхід. Розроблена у співпраці з NVIDIA, Mistral NeMo є більш компактною моделлю з 12 мільярдами параметрів, яка все ще пропонує вражаючі можливості:

  • 12 млрд людей параметри
  • Контекст 128k вікно
  • Найсучасніша продуктивність у своїй категорії розміру
  • Ліцензія 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 Benchmarks

У цій таблиці представлено рівень володіння різними мовами програмування для різних 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] Generate a short greeting in English, French, German, Spanish, and Japanese. [/INST]

Ось короткі привітання потрібними мовами:

Англійська: Привіт! Як справи сьогодні?
Французька: Bonjour ! Коментар allez-vous aujourd'hui ?
Німецька: Привіт! Wie geht es Ihnen heute?
Іспанська: ¡Hola! ¿Cómo estás hoy?
Японська: こんにちは!今日はお元気ですか?

[INST]

Тепер напишіть просте «Привіт, світ!» програма на Python, Java та JavaScript. [/INST]

Ці приклади демонструють як генерацію багатомовного тексту, так і можливості кодування моделі.

Обидві моделі доступні на різних платформах, таких як Hugging Face, платформа Mistral AI, а також у основних постачальників хмарних послуг, таких як Google Cloud Platform, Azure AI Studio, Amazon Bedrock і IBM watsonx.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

# 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)


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

Tekken: більш ефективний токенизатор

Mistral NeMo представляє новий токенізатор під назвою Tekken, яка базується на Tiktoken і навчена більш ніж 100 мовами. Цей новий токенізер пропонує значні покращення в ефективності стиснення тексту порівняно з попередніми токенізерами, такими як SentencePiece.

Ключові особливості Tekken:

  • На 30% ефективніше стиснення вихідного коду, китайської, італійської, французької, німецької, іспанської та російської мов
  • У 2 рази ефективніше стиснення для корейської мови
  • Утричі ефективніше стиснення для арабської мови
  • Перевершує Llama 3 tokenizer у стисненні тексту приблизно для 85% усіх мов

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

Ліцензування та доступність

Mistral Large 2 і Mistral NeMo мають різні моделі ліцензування, які відображають випадки їхнього передбачуваного використання:

Містраль Великий 2

  • Випущено за ліцензією Mistral Research
  • Дозволяє використовувати та модифікувати для дослідницьких і некомерційних цілей
  • Для комерційного використання потрібна комерційна ліцензія Mistral

Містраль НеМо

  • Випущено за ліцензією Apache 2.0
  • Дозволяє відкрите використання, включаючи комерційні програми

Обидві моделі доступні на різних платформах:

  • Обличчя, що обіймається: Тут розміщено ваги як для базової, так і для моделей з інструкцією
  • Містраль А.І: доступний як mistral-large-2407 (Mistral Large 2) і open-mistral-nemo-2407 (Mistral NeMo)
  • Хмарні постачальники послуг: доступно на Vertex AI від Google Cloud Platform, 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:

 
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)

Цей код демонструє, як завантажити модель, підготувати вхідні дані у форматі чату, створити відповідь і декодувати вихідні дані.

Обмеження та етичні міркування

Незважаючи на те, що Mistral Large 2 і Mistral NeMo є значним прогресом у технології штучного інтелекту, дуже важливо визнати їх обмеження та етичні міркування, пов’язані з їх використанням:

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

Висновок

Тонке налаштування передових моделей, таких як Mistral Large 2 і Mistral NeMo, дає потужну можливість використовувати передовий штучний інтелект для різноманітних додатків, від динамічного виклику функцій до ефективної багатомовної обробки. Ось кілька практичних порад і ключових думок, про які варто пам’ятати:

  1. Зрозумійте свій випадок використання: чітко визначте конкретні завдання та цілі, яких ви хочете досягти своєю моделлю. Це розуміння керуватиме вашим вибором моделі та підходу до тонкого налаштування, незалежно від того, чи йдеться про надійні можливості виклику функцій Mistral чи його ефективну багатомовну обробку тексту.
  2. Оптимізація для ефективності: Використовуйте Tekken tokenizer, щоб значно підвищити ефективність стиснення тексту, особливо якщо ваша програма передбачає обробку великих обсягів тексту або кількох мов. Це покращить продуктивність моделі та зменшить обчислювальні витрати.
  3. Виклик функції кредитного плеча: Прийміть агентну парадигму, включивши виклики функцій у свою модель взаємодії. Це дозволяє вашому штучному інтелекту динамічно взаємодіяти із зовнішніми інструментами та службами, забезпечуючи більш точні та дієві результати. Наприклад, інтеграція API погоди або інших зовнішніх джерел даних може значно підвищити релевантність і корисність відповідей вашої моделі.
  4. Виберіть правильну платформу: Переконайтеся, що ви розгортаєте свої моделі на платформах, які підтримують їхні можливості, наприклад Vertex AI Google Cloud Platform, Azure AI Studio, Amazon Bedrock і IBM watsonx.ai. Ці платформи забезпечують необхідну інфраструктуру та інструменти для максимального підвищення продуктивності та масштабованості ваших моделей ШІ.

Дотримуючись цих порад і використовуючи надані приклади коду, ви зможете ефективно використовувати потужність Mistral Large 2 і Mistral NeMo для своїх конкретних потреб.

Останні п’ять років я провів, занурюючись у захоплюючий світ машинного та глибокого навчання. Моя пристрасть і досвід допомогли мені внести свій внесок у понад 50 різноманітних проектів розробки програмного забезпечення, зосередивши особливу увагу на ШІ/ML. Моя постійна цікавість також привела мене до обробки природної мови, галузі, яку я хочу досліджувати далі.