Комментарии 9
Как настроить LLM на локальном сервере? Пошаговое руководство для ML-специалистов
Ну и как? Где руководство-то?
Интересно, как построить быстрый и экономичный инференс LLM? В тексте поделимся подробным гайдом и полученными результатами
Да, да, очень интересно. Где гайд-то?
Благо, есть такие open source-проекты, как saiga. По сути, это алгоритм «русификации», который применяется к известным моделям, таким как Mistral или Llama.
Текст достали из дальних чердаков палеозойской эры. Saiga, конечно, в свое время был интересным проектом, но он уже на столько устарел и даже близко не дотягивает до текущих уровней SOTA моделей.
Для тех кто всё же искал гайд и тоже не нашел его в статье, вот вам гайд:
Вам нужен сервер с OpenAI-совсместивым API, это может быть: ollama, llama.cpp.
Взять любой клиент, которые умеет подключаться к ChatGPT, и указать ему адрес этого локального сервера.
...
Профит.
Вот и весь гайд, но даже этого нет в статье, которая называется "Как настроить LLM на локальном сервере? Пошаговое руководство".
Список актуальных моделей хорошего качества, а не тот позор из статьи:
Qwen2.5
LLama 3.1 (название 3.2 внутри содержит туже 3.1 без изменений, просто добавлена мультимодальность)
Mistral Large 2 (и более младшие модели Mistral Nemo, Mistral Medium)
DeepSeek 2.5
Gemma2
Есть небольшие модели для кода, чтобы поднять свой локальный copilot: Codestral, Qwen2.5-Coder-7B, DeepSeek-Coder-V2-Lite.
Модели нужны в формате gguf, квантизация подойдет Q4_K_M. Q4 - это квантизация до 4 бит, K_M означает, что важные веса внимания квантованы более высоким квантом. IQ4 - означает квантование с imatrix, считается, что они весят меньше, значит требуется меньше видеопамяти, и при этом выдают лучше качество, но требуют больше вычислительных ресурсов.
Качать их тут:
Качать нужно те, где указано instruct, а не base. instruct модели обучены на выполнение заданий и просто чата, а base нужные для самостоятельного файнтюнинга.
Если модель влезает в видеопамять, можно получить больше скорости: exl2, vllm.
Для моделей выполненных по MoE (DeepSeek, WizardLM-2), отличное ускорение через ktransformers.
Бонусом модель, которая может заменить ChatGPT-4o mini, отлично разговаривает на многих языках, включая русский, и которая влезет в 24гб видеопамяти:

Модель: https://huggingface.co/bartowski/Qwen2.5-32B-Instruct-GGUF
Попробовать онлайн: https://huggingface.co/spaces/Qwen/Qwen2.5
интересно. спасибо. Вопрос- а без 24 gb видеопамяти смысл есть что то ловить? на ноуте с 4050 и 6gb? или совсем в идеале- на телефоне с 8 gen 2 и 24 озу? посматривал на такие, но столько ОЗУ я вижу смысл не на сервере использовать разве что для ИИ вот это было бы прикольно.
и ещё такой вопрос- какие модели сейчас работают с доступом в интернет? что бы могли и подтягивать информацию и в идеале в фоновом процессе парсить информационный поток. И отвечать вечером на вопросы "как сегодня прошли торги на ММВБ? отчётность каких компаний отклонилась от консенсуса аналатиков?"
а без 24 gb видеопамяти смысл есть что то ловить? на ноуте с 4050 и 6gb?
В 6gb vram влезут квантованные Gemma2-9B, Qwen2.5-7B, Llama3.1-8b.
B - это количество параметров модели в млрд, чем больше, тем лучше, но только в рамках семейства одной модели, между собой модели могут сильно отличаться по качеству.
Например, vision модель Qwen2-VL-7B при размере в 1.5 раза меньше ощутимо превосходит Llama-3.2-vision-11B.

Модели можно запускать и CPU only, небольшие модели будут работать с приемлемой скоростью, также gguf позволяет комбинировать CPU + GPU, то, что не влезло в GPU будет крутиться на CPU.
Например, Qwen2.5-7B-Instruct-Q4_K_M требует для запуска 5-6гб. Суммаризировать эту статью на CPU only занимает 60 секунд, скорость 5 t/s, на GPU скорость 30 t/s:

или совсем в идеале- на телефоне
Приложение PocketPal AI, Private AI, возможно есть и другие.
какие модели сейчас работают с доступом в интернет?
Сами модели не имеют доступа к интернету, оборудованию или файлам, этим занимаются клиенты.
Клиент ищет информацию по запросу, и подсовывает её модели, качество напрямую зависит от того, как эта часть реализована в клиенте (RAG with Web Search).
И отвечать вечером на вопросы "как сегодня прошли торги на ММВБ? отчётность каких компаний отклонилась от консенсуса аналатиков?"
Это не реализовано в общем виде, вам нужно самостоятельно создать и запрограммировать агентов, которые будут доставать информацию с нужных сайтов и отправлять её в модель для анализа.
В общем виде такое пытается делает проект perplexity - поисковая система с ИИ, работает не особо хорошо, нет ни стабильности ответа, ни точности.
Локально это реализовано в https://github.com/ItzCrazyKns/Perplexica (сложно) и https://msty.app/ (просто). Но работает еще хуже чем perplexity, так как ответ модели напрямую зависит от поискового движка, который найдет правильную информацию.
Ответ от perplexity

Локально запущенная ollama, gemma2-9b и Perplexica

Юзаю codestral q4 + ollama + continue(vs code) для автодополнения в коде, прикольно, жаль ничего особо лучше на мои 16гб VRAM не влезет, а дополнение кода с CPU offload уж очень медленно.
Стоит отметить что для автодополнения нужны(крайне желательны) модели с FIM(fill in the middle) поскольку там юзается другой формат промпта где модели даётся кусок кода до и после места, и модель под эту задачу специально обучают.
Ещё больше из опыта перевода модели на инференс сервер заметил что квантизация в инты через bnb(bits and bytes, стандартный метод в transformers) работает в 2-3 раза медленнее fp/bf16 торча, для сервиса пришлось юзать vLLM для fp8 квантизация, она скорость не теряет, но тут надо железо поновее.
Спасибо!
Тот случай, когда ценность комментария больше ценности статьи.
В дополнение хотелось бы ещё добавить, то что если, при работе с локальными open source llm, используется какой то проект (типа LLamaSharp, для тех кто занимается разработкой на языке C#, как я например), то крайне(!) желательно знать ещё и шаблоны промтов!
Для каждой модели он свой (да бывают и схожие, если это модели от одной компании или это форк и оригинал) и для качественного ответа модели необходимо знать эти шаблоны
del, не та ветка
Есть же модели и не такие гигантские, хотелось бы также иметь сносный инференс на CPU, но похоже все библиотеки заточены под GPU, что очень печально.
Кто-нибудь пытался эффективно запустить что-то типа https://huggingface.co/microsoft/Phi-3-mini-4k-instruct на процессоре?
Как настроить LLM на локальном сервере? Краткое руководство для ML-специалистов