Представлена языковая модель Mistral Large 2 размером 123B. Как запускать. Локальный Сopilot. Открытый конкурент GPT-4o

MistralAI, вслед за LLaMA 3.1 405B, представила свою флагманскую модель с открытыми весами Mistral Large 2 (Mistral-Large-Instruct-2407). Mistral всегда отличалась очень качественными открытыми моделями, и, судя по всему, эта будет не исключением.

Веса открыты, размер контекста составляет 128k, размер модели 123B, модель была обучена на 80 языках программирования и десятках естественных языков, включая русский. Модель хорошо себя показывает как в рассуждениях, так и в математике и программировании.

fda2d7acea56a821386eaf7a2776bcf3.png

Размер модели 123B (это 123 млрд параметров) успешно противостоит самой крупной открытой модели LLaMa 405B, которая вышла несколько дней назад. Модель обучалась меньше бредить и галлюцинировать, если она не уверена в ответе или у неё нет точного ответа.

e24c5daf841fe746bac577387c8f94cc.png

Размер модели составляет 123 млрд параметров (123B) успешно противостоит самой крупной открытой модели LLaMA 405B, которая вышла несколько дней назад. Модель обучена меньше «бредить» и галлюцинировать, если она не уверена в ответе или у неё нет точного ответа, но это не точно.

38a0b56fcba4e738370850945c8071fb.png

Mistral Large 2 была обучена на масштабном многоязычном датасете. Модель демонстрирует высокую эффективность на таких языках, как английский, французский, немецкий, испанский, итальянский, португальский, голландский, русский, китайский, японский, корейский, арабский и хинди.

e08b2a4793bde413ddd526e4f4157a4d.png522552e2a75b8cb94e3cb63427ad11b7.png

Карточка модели на huggingface: https://huggingface.co/mistralai/Mistral-Large-Instruct-2407

gguf: https://huggingface.co/bartowski/Mistral-Nemo-Instruct-2407-GGUF

Модель доступна на арене моделей: https://arena.lmsys.org/ (вкладка side-by-side, нужная модель имеет название mistral-large-2407), где можно её попробовать онлайн.

Стихи, традиционно, самая сложная часть для языковых моделей. Сравним Sonnet-3.5 и Mistral Large 2:

Выводы можете сделать сами

Выводы можете сделать сами

Сравнить перевод песни не получилось, тут Sonnet-3.5 демонстрирует какую-то странную цензуру:

Попросим решить яблочную задачу с усложнением «но после покупки каждых двух яблок, цена за яблоко возрастает на 0,5», которое полностью ломает многие модели, включая GPT-4 (только GPT-4o справляется):

У меня есть 10 яблок. Я нахожу 3 золотые монеты на дне реки. Река протекает рядом с большим городом, который как-то связан с тем, на что я могу потратить монеты. Я теряю 4 яблока, но получаю золотую монету. На мой путь выбегают три птицы и роняют по 6 яблок. Я играю в онлайн-игру и выигрываю 6 золотых монет, но мне приходится делить их поровну с двумя моими товарищами по команде. Я покупаю яблоки на все имеющиеся у меня монеты. Цена одного яблока составляет 0,5 монеты, но после покупки каждых двух яблок, цена за яблоко возрастает на 0,5. Сколько у меня яблок? И где находится река?

fc2424ca37e1d96427a0977948d6a493.png

Large 2 справилась с этой задачей, а Sonnet-3.5 ошиблась в подсчете цены за яблоко, как и многие другие модели. Температура 0.5.

Как запускать локально?

Запускать такие большие модели на обычном ПК позволяет проект llama.cpp, они позволяют квантовать большие модели в формат gguf, тем самым в разы снижая требования к железу. Есть даже 1-битная квантизация.

Qwen2 72B IQ1_M модель справляется с задачей на логику и математику, когда llama3 8B Q8_0 не справляется с задачей вообще

Qwen2 72B IQ1_M модель справляется с задачей на логику и математику, когда llama3 8B Q8_0 не справляется с задачей вообще

Формат gguf также позволяет выгружать часть слоев на GPU, а часть оставлять на CPU. Поэтому если у вас есть видеокарта с 8Гб памяти, а модель занимает 12Гб — выгрузка большего числа слоев на GPU даст неплохое ускорение.

На странице проекта перечислено множество GUI клиентов для запуска gguf-моделей. Одни из самых популярных это:

  • LM Studio — простой и функциональный клиент, позволяющий сразу же загружать модели из своего интерфейса. Есть экспериментальная поддержка rocm для amd видеокарт на Windows.

  • Jan.ai — тоже самое, что и LM Studio, только с открытым исходным кодом.

  • text-generation-webui — для тех, кто предпочитает работать в браузере, это некий аналог automatic1111 webui. Позволяет легко создавать персонажей, роли, загружать файлы персонажей SillyTavern, заставлять модель отвечать с конкретной фразы, редактировать ответы модели.

  • ollama — запускается как сервис на фоне, позволяет легко и быстро загружать одну из множества уже готовых моделей из своего каталога. Также поддерживает AMD карточки на Windows, но кроме rx 6600/6700. Автоматически выгружает модель, если она не используется. Самый продвинутый способ создавать сервер, который уже легко интегрировать в другие клиенты или расширения.

  • koboldcpp-rocm — более простой клиент, но нет проблем с rx 6600/6700, даже позволяет в 1 клик ускорять модели на rx 580 на Windows. ROCm — это прямой аналог CUDA, и если вам нужны другие нейросети на Windows, ищите версии Zluda (это транслятор CUDA запросов в ROCm), например ComfyUI-Zluda.

  • open-webui — красивый клиент в браузере, есть RAG для индексации своих документов и прочие полезные возможности, такие как запуска llava-моделей для распознания изображений.

Интерфейс jan.ai

Интерфейс jan.ai

Запуск совместимого с OpenAI сервера

Многие из клиентов запуска gguf моделей позволяет сразу же создавать сервер, который совместим с ChatGPT серверами, тем самым позволяя создавать локальный сревер, подключившись к которому, вы можете работать с ним из расширений браузера или локальным аналогом Copilot.

В text-generation-webui нужно выбрать вкладку Session и активировать расширение openai.

614c5822160bb908fcf93a4c70010422.png

В других клиентах это делается примерно также, кнопка запустить сервер всегда легко находится.

Сколько нужно памяти для запуска моделей?

GGUF — это формат, который напрямую мапится в память, поэтому размер модели обычно является тем объем памяти, который потребуется для запуска.

Например, Codestral 22B (модель для своих 22B очень хороша для программирования) — это модель размером 22 млрд параметров и в оригинальном виде требует 44Гб памяти для запуска. После конвертации в gguf и квантования до 4-бит, она требует всего 12Гб для запуска. Если взять IQ3_XS модель, она запуститься на 10Гб.

Ссылка на gguf: https://huggingface.co/bartowski/Codestral-22B-v0.1-GGUF

Формат gguf также позволяет выгружать часть слоев на GPU, а часть оставлять на CPU. Поэтому если у вас есть видеокарта с 8Гб памяти, а модель занимает 12Гб — выгрузка большего числа слоев на GPU даст неплохое ускорение.

25 из 57 слоев выгружено на GPU, VRAM занимает 6571Мб, что позволяет получить ускорение даже на 8Гб видеокартах

25 из 57 слоев выгружено на GPU, VRAM занимает 6571Мб, что позволяет получить ускорение даже на 8Гб видеокартах

Локальный Copilot

Теперь, когда модель запущена в режиме сервера, можно заставить её работать как локальный Copilot с помощью расширения Continue для VSCode.

db77c2ecc8f67a71ebd1afdfd00b95b0.png

Ищем расширение Continue, ставим его, и настраиваем его либо просто выбрав сразу сервер ollama, если вы выбрали ollama, либо используя OpenAI-compatible sever. Во-втором случае вам нужно будет нажать на шестеренку расширения и прописать адрес сервера.

Например, если вы активировали плагин openai у text-generation-webui, то сервер будет такой: http://127.0.0.1:5000/v1, адрес указывается при запуске и к нему нужно добавить /v1.

После чего заполнить настройки модели.

{
  "models": [
    {
      "title": "OpenAI-compatible server / API",
      "provider": "openai",
      "model": "MODEL_NAME",
      "apiKey": "EMPTY",
      "contextLength": 8192,
      "apiBase": "http://127.0.0.1:5000/v1"      
    }
  ],

По умолчанию включена телеметрия, отключить её можно тут же.

Теперь вы можете давать команды нейросети прямо из VSCode, работая с вашим проектом локально.

Через ctrl + I мы даем новое задание написать какой-то код.

Нажимаем Ctrl+I и даем задание

Нажимаем Ctrl+I и даем задание

А уже существующий код мы можем выделить и нажать Ctrl + L, после чего автоматически откроется окно расширения слева, где мы можем давать более сложные задания по выделенному коду. Можно выделять код из разных файлов, чтобы создавать контекст для запроса, можно просить написать тесты с учетом многих файлов, рефакторить и прочее.

выделяем код, нажимает ctrl + L и даем задание

выделяем код, нажимает ctrl + L и даем задание

Описание всех возможностей: https://docs.continue.dev/how-to-use-continue

Но для целей Copilot Mistral Large 2 может быть слишком большой и будет работать локально медленно. Поэтому можно попробовать тоже самое с Codestral 22B от них же, которая показывает отличные результаты в коде, или с маленькой Gemma2 9B от гугла.

Codestral 22B: https://huggingface.co/bartowski/Codestral-22B-v0.1-GGUF

Gemma2 9b: https://huggingface.co/bartowski/gemma-2–9b-it-GGUF

© Habrahabr.ru