Всякий раз, когда выходит новая хорошая ИИ модель, Хабр наполняется вопросами "Как нам её попробовать" и неправильными ответами, будто нужно платить за какие-то сервисы или иметь железа на сто лямов. Поэтому я вновь напишу инструкцию, как запустить новейший mixtral-8x7 на многих средних компьютерах.
Требования к железу.
Модель весит около 30Гб, в зависимости от квантования. К ним добавить 10Гб на технические нужды. И сколько там ещё нужно для ОС и браузера. И вот этот суммарный размер нужно раскидать между всеми видеокартами Nvidia и оперативной памятью компьютера. Можно просто засунуть всё в 64Гб оперативки. Это будет медленно, но всё равно вполне применимо. Лучше назначить часть задач видеокарте Nvidia. Тогда и оперативки хватит 32Гб. Ещё лучше — повесить все вычисления туда, но для этого нужно 1–2 карты с суммарной памятью в 48Гб. По ОС — поддерживаются и форточки, и пингвинчики, и яблочки — но последних ни разу не пробовал. Видеокарты только Nvidia. Причём версия драйвера должна быть не от лета 2033 — либо старее, либо самая новая. Для карт AMD есть костыль совместимости, но он работает только в Линуксе. Статья написана с упором на Windows 10–11, а пользователи Линукса и без меня инструкцию прочитают.
Применение.
В чистом виде от такой модели толку немного. Можно поговорить на разные приличные (ага) темы, попрактиковать английский. Ещё модель «читала» википедию и документацию к популярным библиотекам, и неплохо отвечает на новичковые вопросы по ним. Может выдать из памяти пример кода, реализующего ту или иную задачу. Или анекдот на заданную тему, в общем всё. Но главное — используемая программа имеет REST API, полностью повторяющий таковой от OpenAI, а значит, её можно использовать вместо аккаунта OpenAI с любой другой программой, которая позволит ввести свой адрес к API. Вот тут уже начинается разгуляй: там и анализ документов, и интеграция с IDE и куча всего.
Скачивание
Kobold.cpp — программа для запуска, качать отсюда. Обратите внимание, нужна ли вам поддержка CUDA (это поддержка видеокарт Nvidia).
Mixtral-8x7B-Instruct-v0.1-GGUF — сама модель. Качать здесь. На странице вы найдёте список вариантов квантизации. К сожалению, выбирать стоит только между Q-4-M или Q-5-M. Вторая весит чуть больше, и думает чуть дольше, и даёт результаты чуть лучше. А все остальные варианты либо сломанные, либо неоптимальные. Для других моделей Q-3-M будет хорошим выбором.
Сложите оба файла в одну папку.
Теперь важный хак, если собираетесь пользоваться видеокартой. Откройте панель настройки Nvidia → Manage 3D Settings → Program Settings. Нажмите кнопку Add, выбирайте файл Kobold.cpp.exe. Когда он выбран в списке 1, среди настроек внизу найдите CUDA — Sysmem Fallback Policy и выберите Prefer No Sysmem Fallback. Нажмите «Применить» Если этого не сделать, то при неправильных настройках видеопамяти Kobold.cpp может обрушить винду или заблокировать видеопамять до перезагрузки. Глобально эту опцию выставлять не надо — современные игры не оценят.
Запуск
Kobold.cpp на Windows не требует установки. Это один EXE‑шник, который просто работает. К сожалению, он не запоминает некоторые настройки между запусками, поэтому я нахожу, что проще запускать его из командной строки: терминал‑то ваши команды запомнит. Поэтому, откройте в проводнике папку, куда всё скачали, щёлкните по адресу в заголовке и введите вместо него «pwsh» или, если вылезла ошибка, то «powershell». Откроется окно командной строки с выбранной папкой в качестве текущей. Вводите команду.\koboldcpp.exe --model .\mixtral-8x7b-instruct-v0.1.Q4_K_M.gguf
Это запустит программу без использования GPU. Чтобы ими воспользоваться, Добавьте к команде параметры--usecublas --gpulayers 23
Где 23 — это количество слоёв модели, которые требуется сгрузить на видеокарту. В Mixtral всего 33 слоя, они разного размера, но так совпало, что хорошим стартовым значением будет объём видеопамяти в Гб минус 1. Если указать слишком много, то будет какой‑нибудь CUDA Error или просто зависание.
И ещё имеет смысл добавить--contextsize 4096
Размер контекста — это, грубо говоря, сколько слогов разговора модель помнит при ответе. Число должно быть степенью двойки, до 32,768 включительно. По умолчанию там идёт 2048, что явно маловато.
Всё, запускайте команду. Оно должно довольно долго прогрузиться и вывести в консоль много строк текста, из которых нам важны следующие:
llm_load_tensors: using CUDA for GPU acceleration
Означает, что видеокарта успешно используется.
llm_load_tensors: VRAM used: 19564.84 MiB
Эта строка выводится перед тем, как программа начнёт закачивать модель в видеопамять (несмотря на совершённый глагол). Если написанный размер больше, или чуть меньше, чем имеющаяся у вас видеопамять, немедленно закройте консоль. Это убъёт программу надёжнее, чем Ctrl+C. Всё равно ничего, кроме зависания, уже не получится. Вы перенесли в видеокарту слишком много слоёв.
llama_new_context_with_model: total VRAM used: 20293.85 MiB (model: 19564.84 MiB, context: 729.00 MiB)
Означает, что в памяти размечено столько места под модель и контекст. Важно понимать, что ещё должно остаться место для винды и браузера.
Please connect to custom endpoint at http://localhost:5001
Самая приятная строка, означает, что всё заработало.
Зажав Ctrl, щёлкните по адресу. Должен появиться синий интерфейс KoboldUI. Теперь нужно ввести настройки под Mixtral — они отличаются от настроек под предыдущие модели. Вот скриншоты, какие значения нужно ввести. Размер контекста должен быть равен тому, что вы указали в командной строке. С температурой можно поиграться в диапазоне от 1 до 2. Всё остальное менять не стоит. Дело в том, что в случае Mixtral все трюки для сокращения числа повторов только дают больше повторов, поэтому их надо отключить.
Ну и наконец можно пользоваться. Жмите наверху Scenario → New Instruct и вводите свой запрос.