AI: различия между версиями
Vt (обсуждение | вклад) (→Открытые российские модели: Лицензии) |
Vt (обсуждение | вклад) |
||
(не показано 14 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
= Использование больших языковых моделей в Альт = | = Использование больших языковых моделей в Альт = | ||
== Software == | == Software == | ||
В Сизифе есть следующие экспериментальные пакеты для работы с большими лингвистическими моделями | В Сизифе есть следующие экспериментальные пакеты для работы с большими лингвистическими моделями: | ||
* '''llama.cpp''' локальный запуск моделей в GGUF формате, которые, как правило, берутся с git-хостинга ''Hugging Face Hub'' ориентированного на ML проекты. ''llama.cpp'' содержит низкоуровневые утилиты, поэтому, сложнее в использовании чем ollama, но гибче. | * '''llama.cpp''' локальный запуск моделей в GGUF формате, которые, как правило, берутся с git-хостинга ''Hugging Face Hub'' ориентированного на ML проекты. ''llama.cpp'' содержит низкоуровневые утилиты, поэтому, сложнее в использовании чем ollama, но гибче. Предоставляет минимальное Web UI и openai-совместимое REST API. | ||
* '''ollama''' локальный запуск моделей | * '''ollama''' локальный запуск моделей; имеется удобное скачивание моделей из их собственного репозитория, это консольный и серверный простой в использовании frontend для ''llama.cpp'', который также предоставляет Web UI и REST API. | ||
* '''aichat''' консольный доступ к удаленным моделям по API, есть простое | * '''aichat''' консольный доступ к удаленным моделям по API, есть простое Web UI, поддержка вызовов функций, RAG. | ||
== Модели == | == Модели == | ||
=== Открытость лицензий === | === Открытость лицензий === | ||
Не все ''открытые'' модели являются ''open-source'' в таком же смысле как код. Как правило, у "открытых" моделей открыты только веса. Нужно быть внимательными к лицензии, так как некоторые модели имеют открытые лицензии (как Apache-2.0), но при этом, другие модели в той-же линейке могут внезапно иметь проприетарную лицензию (например модели Qwen), или некоторые лицензии кажутся открытыми, но имеют пункты отменяющие открытость (например модели Llama). | Не все ''открытые'' модели являются ''open-source'' в таком же смысле как код. Как правило, у "открытых" моделей открыты только веса. Нужно быть внимательными к лицензии, так как некоторые модели имеют открытые лицензии (как Apache-2.0), но при этом, другие модели в той-же линейке могут внезапно иметь проприетарную лицензию (например модели Qwen), или некоторые лицензии кажутся открытыми, но имеют пункты отменяющие открытость (например модели Llama). | ||
=== Параметры === | |||
Чем больше параметров у модели тем она больше знает и умеет, но и требует больше вычислительных ресурсов и памяти. Однако, ''mixture of experts'' (MoE) модели состоят из большого числа маленьких моделей ("экспертов" с малым количеством параметров) вывод которых смешивается. Как правило, одновременно запускаются несколько экспертов в сумме это т.н. ''активные параметры''. Например, модель с общим количеством параметров 30B (т.е. 30 миллиардов), имеющая 3B активных параметров, если это 3 эксперта, то каждый эксперт имеет ''всего лишь'' 1B параметров. Часть экспертов выбираются в зависимости от запроса и требуют загрузки в память, что добавляет времени перед началом генерации. Это нужно учитывать, если у вас есть достаточно VRAM для активных параметров, но не достаточно для всей модели. | |||
=== Квантизация === | === Квантизация === | ||
Так как модели требовательны к памяти, то применяются и распространяются их квантизованные версии. Как правило, оригинальная модель имеет 16-бит на ''параметр'' (<code>fp16</code>), и требует ''как минимум'' в два раза больше памяти чем количество параметров. Чем ниже квантизация, тем ниже требования к памяти ценой качества работы модели. Размер квантизации часто указывается в названии модели после размера (количества параметров) модели как <code>q<число></code> (например, <code>q4_K_M</code>, где другие буквы уточняют вид квантизации). Считается, что качество модели катастрофически ухудшается при квантизации ниже 4-бит, квантизация 4-бита минимально приемлемая (при недостатке памяти) с небольшими ухудшением качество работы модели, а с верхней стороны, квантизация 8-бит работает практически так же хорошо как 16-бит оригинал (требуя в 2 раза меньше памяти). | Так как модели требовательны к памяти, то применяются и распространяются их квантизованные версии. Как правило, оригинальная модель имеет 16-бит на ''параметр'' (<code>fp16</code>), и требует ''как минимум'' в два раза больше памяти чем количество параметров. Чем ниже квантизация, тем ниже требования к памяти ценой качества работы модели. Размер квантизации часто указывается в названии модели после размера (количества параметров) модели как <code>q<число></code> (например, <code>q4_K_M</code>, где другие буквы уточняют вид квантизации). Считается, что качество модели катастрофически ухудшается при квантизации ниже 4-бит, квантизация 4-бита минимально приемлемая (при недостатке памяти) с небольшими ухудшением качество работы модели, а с верхней стороны, квантизация 8-бит работает практически так же хорошо как 16-бит оригинал (требуя в 2 раза меньше памяти). | ||
= Открытые российские модели 🇷🇺 = | |||
Модели, которые можно запустить на движке ''llama.cpp'' скачав c HuggingFace (ссылка в формате: <code>Пользователь_HF/Модель</code>, лучше зайти на страницу пользователя и посмотреть что там): | Модели, которые можно запустить на движке ''llama.cpp'' скачав c HuggingFace (ссылка в формате: <code>Пользователь_HF/Модель</code>, лучше зайти на страницу пользователя и посмотреть что там): | ||
* <code>[https://huggingface.co/IlyaGusev IlyaGusev]/Saiga</code> - тюнинг Mistral и Llama на русском корпусе. | * <code>[https://huggingface.co/IlyaGusev '''IlyaGusev''']/Saiga</code> - тюнинг Mistral и Llama на русском корпусе. | ||
* <code>[https://huggingface.co/AnatoliiPotapov AnatoliiPotapov]/T-lite-0.1</code> (8B базовая модель, предположительно, на базе Llama-3), <code>AnatoliiPotapov/T-lite-instruct-0.1</code> (её тюнинг на инструкции). | * <code>[https://huggingface.co/AnatoliiPotapov '''AnatoliiPotapov''']/T-lite-0.1</code> (8B базовая модель, предположительно, на базе Llama-3), <code>AnatoliiPotapov/T-lite-instruct-0.1</code> (её тюнинг на инструкции). | ||
* <code>[https://huggingface.co/t-tech t-tech]/T-lite-it-1.0</code> (7B), <code>t-tech/T-pro-it-1.0</code> (32B) обе модели на базе Qwen 2.5 с тюнингом на следование инструкциям. | * <code>[https://huggingface.co/t-tech '''t-tech''']/T-lite-it-1.0</code> (7B), <code>t-tech/T-pro-it-1.0</code> (32B) обе модели на базе Qwen 2.5 с тюнингом на следование инструкциям. | ||
* <code>[https://huggingface.co/MTSAIR MTSAIR]/Cotype-Nano-GGUF</code> (1.5B) легковесная LLM. Лицензия Apache-2.0. | * <code>[https://huggingface.co/MTSAIR '''MTSAIR''']/Cotype-Nano-GGUF</code> (1.5B) легковесная LLM. Лицензия Apache-2.0. | ||
* <code>[https://huggingface.co/Vikhrmodels Vikhrmodels] QVikhr-2.5-1.5B-Instruct-r</code> - инструктивная модель на основе Qwen-2.5, обученная на русскоязычном датасете GrandMaster-PRO-MAX с GRPO этапом (RL). Лицензия Apache-2.0. | * <code>[https://huggingface.co/Vikhrmodels '''Vikhrmodels'''] QVikhr-2.5-1.5B-Instruct-r</code> - инструктивная модель на основе Qwen-2.5, обученная на русскоязычном датасете GrandMaster-PRO-MAX с GRPO этапом (RL). Лицензия Apache-2.0. | ||
* <code>[https://huggingface.co/ai-sage ai-sage] GigaChat-20B-A3B</code> (20B MoE, 3B активных) диалоговая модель обучена специально под русский язык с нуля. Лицензия MIT. | * <code>[https://huggingface.co/ai-sage '''ai-sage'''] GigaChat-20B-A3B</code> (20B MoE, 3B активных) диалоговая модель обучена специально под русский язык с нуля. Лицензия MIT. | ||
* <code>[https://huggingface.co/yandex yandex] YandexGPT-5-Lite-8B</code> YandexGPT 5 Lite (8B базовая модель с длиной контекста 32k токенов, llama-like архитектура). Лицензия | * <code>[https://huggingface.co/yandex '''yandex'''] YandexGPT-5-Lite-8B</code> YandexGPT 5 Lite (8B базовая модель с длиной контекста 32k токенов, llama-like архитектура). Лицензия рестриктивная. | ||
= Примеры запуска модели GigaChat = | |||
В '''ollama''' и '''llama.cpp''' можно сразу скачать и запустить модель. Простейшие примеры запуска модели <tt>GigaChat-20B-A3B-instruct</tt> (с квантизацией q4_K_M) в консоли для каждой из них. | |||
{{Note|Рекомендуется настроить видеокарту [[Nvidia|NVIDIA]]. Утилита <code>nvidia-smi</code> должна показать наличие видеокарты.}} | |||
== Запуск в ollama + веб в aichat == | |||
root# apt-get install ollama | |||
root# systemctl enable --now ollama | |||
User$ ollama run infidelis/GigaChat-20B-A3B-instruct-v1.5:q4_K_M | |||
Скачанные модели хранятся в кэше <code>/var/lib/ollama/.ollama/models/</code>. Запуск Web UI через '''aichat''': | |||
root# apt-get install aichat | |||
User# aichat --serve | |||
> No config file, create a new one? '''Yes''' | |||
> API Provider (required): '''openai-compatible''' | |||
> Provider Name (required): '''ollama''' | |||
> API Base (required): '''<nowiki>http://localhost:11434/v1</nowiki>''' | |||
> API Key (optional): <code>↵</code> | |||
> LLMs to include (required): ''выбрать модель'' | |||
Веб интерфейс будет доступен по адресу <code><nowiki>http://localhost:8000/playground</nowiki></code>. | |||
== Запуск в llama.cpp == | |||
root# apt-get install llama.cpp | |||
User$ llama-cli -hf ai-sage/GigaChat-20B-A3B-instruct-v1.5-GGUF:Q4_K_M -ngl 30 | |||
Параметр <code>-ngl</code> важен для использования видеокарты. Скачанная модель (12G) попадает в кэш: <code>~/.cache/llama.cpp/</code>. Запуск Web UI: | |||
User$ llama-server -hf ai-sage/GigaChat-20B-A3B-instruct-v1.5-GGUF:Q4_K_M -ngl 30 | |||
После этого веб интерфейс и API доступны по ссылке <code><nowiki>http://localhost:8080/</nowiki></code>. |
Текущая версия от 06:15, 11 марта 2025
Использование больших языковых моделей в Альт
Software
В Сизифе есть следующие экспериментальные пакеты для работы с большими лингвистическими моделями:
- llama.cpp локальный запуск моделей в GGUF формате, которые, как правило, берутся с git-хостинга Hugging Face Hub ориентированного на ML проекты. llama.cpp содержит низкоуровневые утилиты, поэтому, сложнее в использовании чем ollama, но гибче. Предоставляет минимальное Web UI и openai-совместимое REST API.
- ollama локальный запуск моделей; имеется удобное скачивание моделей из их собственного репозитория, это консольный и серверный простой в использовании frontend для llama.cpp, который также предоставляет Web UI и REST API.
- aichat консольный доступ к удаленным моделям по API, есть простое Web UI, поддержка вызовов функций, RAG.
Модели
Открытость лицензий
Не все открытые модели являются open-source в таком же смысле как код. Как правило, у "открытых" моделей открыты только веса. Нужно быть внимательными к лицензии, так как некоторые модели имеют открытые лицензии (как Apache-2.0), но при этом, другие модели в той-же линейке могут внезапно иметь проприетарную лицензию (например модели Qwen), или некоторые лицензии кажутся открытыми, но имеют пункты отменяющие открытость (например модели Llama).
Параметры
Чем больше параметров у модели тем она больше знает и умеет, но и требует больше вычислительных ресурсов и памяти. Однако, mixture of experts (MoE) модели состоят из большого числа маленьких моделей ("экспертов" с малым количеством параметров) вывод которых смешивается. Как правило, одновременно запускаются несколько экспертов в сумме это т.н. активные параметры. Например, модель с общим количеством параметров 30B (т.е. 30 миллиардов), имеющая 3B активных параметров, если это 3 эксперта, то каждый эксперт имеет всего лишь 1B параметров. Часть экспертов выбираются в зависимости от запроса и требуют загрузки в память, что добавляет времени перед началом генерации. Это нужно учитывать, если у вас есть достаточно VRAM для активных параметров, но не достаточно для всей модели.
Квантизация
Так как модели требовательны к памяти, то применяются и распространяются их квантизованные версии. Как правило, оригинальная модель имеет 16-бит на параметр (fp16
), и требует как минимум в два раза больше памяти чем количество параметров. Чем ниже квантизация, тем ниже требования к памяти ценой качества работы модели. Размер квантизации часто указывается в названии модели после размера (количества параметров) модели как q<число>
(например, q4_K_M
, где другие буквы уточняют вид квантизации). Считается, что качество модели катастрофически ухудшается при квантизации ниже 4-бит, квантизация 4-бита минимально приемлемая (при недостатке памяти) с небольшими ухудшением качество работы модели, а с верхней стороны, квантизация 8-бит работает практически так же хорошо как 16-бит оригинал (требуя в 2 раза меньше памяти).
Открытые российские модели 🇷🇺
Модели, которые можно запустить на движке llama.cpp скачав c HuggingFace (ссылка в формате: Пользователь_HF/Модель
, лучше зайти на страницу пользователя и посмотреть что там):
IlyaGusev/Saiga
- тюнинг Mistral и Llama на русском корпусе.AnatoliiPotapov/T-lite-0.1
(8B базовая модель, предположительно, на базе Llama-3),AnatoliiPotapov/T-lite-instruct-0.1
(её тюнинг на инструкции).t-tech/T-lite-it-1.0
(7B),t-tech/T-pro-it-1.0
(32B) обе модели на базе Qwen 2.5 с тюнингом на следование инструкциям.MTSAIR/Cotype-Nano-GGUF
(1.5B) легковесная LLM. Лицензия Apache-2.0.Vikhrmodels QVikhr-2.5-1.5B-Instruct-r
- инструктивная модель на основе Qwen-2.5, обученная на русскоязычном датасете GrandMaster-PRO-MAX с GRPO этапом (RL). Лицензия Apache-2.0.ai-sage GigaChat-20B-A3B
(20B MoE, 3B активных) диалоговая модель обучена специально под русский язык с нуля. Лицензия MIT.yandex YandexGPT-5-Lite-8B
YandexGPT 5 Lite (8B базовая модель с длиной контекста 32k токенов, llama-like архитектура). Лицензия рестриктивная.
Примеры запуска модели GigaChat
В ollama и llama.cpp можно сразу скачать и запустить модель. Простейшие примеры запуска модели GigaChat-20B-A3B-instruct (с квантизацией q4_K_M) в консоли для каждой из них.
nvidia-smi
должна показать наличие видеокарты.Запуск в ollama + веб в aichat
root# apt-get install ollama root# systemctl enable --now ollama User$ ollama run infidelis/GigaChat-20B-A3B-instruct-v1.5:q4_K_M
Скачанные модели хранятся в кэше /var/lib/ollama/.ollama/models/
. Запуск Web UI через aichat:
root# apt-get install aichat
User# aichat --serve
> No config file, create a new one? Yes
> API Provider (required): openai-compatible
> Provider Name (required): ollama
> API Base (required): http://localhost:11434/v1
> API Key (optional): ↵
> LLMs to include (required): выбрать модель
Веб интерфейс будет доступен по адресу http://localhost:8000/playground
.
Запуск в llama.cpp
root# apt-get install llama.cpp User$ llama-cli -hf ai-sage/GigaChat-20B-A3B-instruct-v1.5-GGUF:Q4_K_M -ngl 30
Параметр -ngl
важен для использования видеокарты. Скачанная модель (12G) попадает в кэш: ~/.cache/llama.cpp/
. Запуск Web UI:
User$ llama-server -hf ai-sage/GigaChat-20B-A3B-instruct-v1.5-GGUF:Q4_K_M -ngl 30
После этого веб интерфейс и API доступны по ссылке http://localhost:8080/
.