Dev48
ЯЗЫК
  • О нас
  • Услуги
  • Индустрии
  • Технологии
  • Статьи
  • Контакты
Забронировать звонок
    Главная/Статьи/Localai s marta 2023 goda po nastoyaschee vremya
Dev48

© 2026 · All rights reserved.

LocalAI: с марта 2023 года по настоящее время

Источник: LocalAI

LocalAI: с марта 2023 года по настоящее время

Источник: LocalAI

LocalAI — это движок ИИ с открытым исходным кодом. Запускайте любые модели: LLM, зрение, голос, изображения и видео на любом оборудовании. GPU не требуется.

25 сентября 2026 г.

Я создал репозиторий LocalAI 18 марта 2023 года. Это был HTTP API, совместимый с OpenAI, работающий поверх llama.cpp, и в этом заключалась вся идея: измените один URL в уже написанном коде, и ответы начнут приходить с вашего собственного ноутбука, а не из чьего-то дата-центра.

Три года спустя 224 человека внесли свой вклад в код проекта, выпустив 133 релиза. За это время он набрал 48 042 звезды, что до сих пор меня удивляет. Сейчас он поддерживает 73 различных бэкенда, вы можете установить любую из 1585 моделей из галереи, не написав ни строчки на Python, а восемнадцать движков, выполняющих основную работу, — это порты на C или C++, которые мы написали сами.

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

Звезды на GitHub, с 31.03.2023 по 31.07.2026

48 042 звезды и четыре изменения на этом пути

Данные считаны через API stargazers на GitHub, который фиксирует время получения каждой звезды, поэтому это измеренная кривая, а не её перерисовка. Наведите курсор или перетащите линию, чтобы увидеть любую дату. API прекращает пагинацию на 40 000 элементов, поэтому всё до 24.12.2025 измерено, а пунктирный «хвост» до сегодняшнего дня — это прямая линия между двумя известными точками, а не данные.

Четыре отметки на графике соответствуют четырем решениям ниже, и вы можете увидеть влияние каждого из них на наклон кривой после них.

Ниже описаны четыре решения, которые изменили облик проекта. Полный список функций доступен в релизах.

С 2023 по 2024 год: API поверх llama.cpp

Одно правило не менялось с момента первого коммита: если функция работает только на GPU, она не включается в основной состав. Каждая модальность имеет путь для CPU, и этот путь тестируется. У большинства людей нет свободного A100, а те, у кого он есть, всё равно хотят разрабатывать ПО в дороге.

Первые два года ушли на расширение того, что скрывалось за API, при сохранении этого ограничения: whisper.cpp для транскрибации, stable-diffusion для изображений, эмбеддинги, затем переранжирование, а также ограниченные грамматики и интерфейс вызова функций. Список совместимости API рос параллельно, и позже были добавлены форматы Anthropic и ElevenLabs наряду с OpenAI, чтобы один и тот же сервер отвечал любому клиенту, который уже есть у пользователя.

Цена за такую широту возможностей проявилась в бинарном файле. Всё компилировалось вместе, поэтому вы скачивали CUDA-ядра, даже если у вас не было GPU, среду выполнения Python, даже если она вам была не нужна, и модели изображений, когда вы просили только чат. Сборка из исходников означала сборку всего подряд. Это стало неловко.

Июль 2025 года: ядро становится компактным

В версии 3.2.0 каждый бэкенд был вынесен из основного бинарного файла. Бэкенды стали отдельными OCI-образами, которые загружаются по требованию при первом запросе модели, а небольшое ядро отвечает за API и управление процессами.

Вы устанавливаете одну вещь, и она остается компактной. Запрашиваете модель GGUF — загружается llama-cpp. Запрашиваете транскрибацию — загружается whisper или parakeet. Ничего лишнего не скачивается, и машина, которая обслуживает только одну модель, никогда не загрузит остальные шестьдесят девять бэкендов.

Всё, что последовало за этим, зависело от одного этого изменения. Добавление бэкенда перестало означать увеличение веса установки для всех, поэтому вопрос «стоит ли поддерживать этот движок» перестал быть спором о размере загрузки и вернулся к вопросу о качестве самого движка. Это также причина, по которой мы можем позволить себе поддерживать восемнадцать собственных движков, о чем речь пойдет позже.

Март 2026 года: агенты и новый интерфейс

В LocalAI 4.0.0 добавлена нативная агентная оркестрация с помощью сообщества Agenthub, поэтому агенты с использованием инструментов, RAG, навыками и потоковой передачей работают внутри того же сервера, а не как отдельный стек, который нужно настраивать самостоятельно.

Веб-интерфейс был переписан на React в то же время, с режимом Canvas, приложениями MCP и клиентскими инструментами с потоковой передачей инструментов (#8947), а также аудио в реальном времени через WebRTC (#8790). MLX получил распределенный режим (#8801).

Путь аудио в реальном времени изменил то, что люди создавали с его помощью. Речь на входе, вызовы инструментов в процессе, речь на выходе через WebRTC — достаточно быстро, чтобы это ощущалось как разговор, а не как рация. Это появилось как Realtime API в феврале 2026 года (#6245), и переписанный интерфейс наконец придал этому лицо.

Апрель 2026 года: превращение в кластер

В LocalAI 4.1.0 добавлен режим распределенного кластера. Вы запускаете воркер на другой машине, он сообщает о своем оборудовании и бэкендах, которые может запустить, и присоединяется к пулу. Запросы распределяются планировщиком, который знает реальный объем свободной видеопамяти, а не делает статическое предположение, и пул автоматически масштабируется.

Тот же релиз превратил LocalAI в систему, которой могут пользоваться несколько человек: OIDC и API-ключи, квоты для пользователей с предиктивной аналитикой, дообучение (fine-tuning) прямо в интерфейсе с помощью TRL, которое экспортируется сразу в GGUF, бэкенд для квантования на лету и визуальный редактор конвейеров.

Версия 4.3.0 в мае добавила маршрутизацию реплик для каждого запроса, атрибуцию использования по API-ключам и пользователям (#9920), подпись OCI-образов бэкендов без ключей (#9823) и кэширование промптов llama.cpp по умолчанию (#9925), что сокращает время обработки повторяющихся системных промптов с минут до секунд. В июне маршрутизация с учетом префиксного кэша (#10071) начала отправлять запрос на реплику, в которой уже есть соответствующий кэш, а не на наименее загруженный узел.

Распределенный режим также стал источником большинства болезненных ошибок. Только в цикле 4.8.0 мы исправили «чистильщик» (reaper), который радостно удалял строки для активных и занятых бэкендов, фронтенд-заглушки, которые жили дольше, чем реплики за ними, и счетчики активных запросов, которые приводили к утечкам и блокировке видеопамяти. Работа на нескольких машинах выявляет режимы сбоев, которые никогда не покажет один процесс, и выявляет их в продакшене.

Май и июнь 2026 года: зрение и слух

В LocalAI 4.2.0 добавлено распознавание голоса (#9500), распознавание лиц с проверкой на «живость» (anti-spoofing) (#9480) и диаризация спикеров, наряду с генерацией видео (#9420), встроенным API Ollama (#9284) и одиннадцатью новыми бэкендами.

Чат-модель знает только то, что ей напечатали. Распознавание расширяет это: кто находится в комнате, кто говорит, является ли лицо перед камерой живым человеком или фотографией, которую кто-то держит. Всё это работает на той же машине, что и модель, что для биометрии является единственным вариантом, который большинство людей могут реально развернуть.

В июне эти две возможности перестали быть Python-кодом. voice-detect.cpp и face-detect.cpp заменили бэкенды распознавания речи и insightface на Python движками на C++ и ggml, написанными с нуля, с автономными весами GGUF, без onnxruntime при инференсе и с побитовой точностью по сравнению с эталонами, которые они заменили (#10441).

Середина 2026 года: восемнадцать собственных движков

В README теперь есть таблица под названием «Бэкенды, созданные нами». В ней перечислены восемнадцать нативных движков на C и C++, плюс apex-quant, наш рецепт квантования для моделей со смесью экспертов (MoE).

Каждый из них существует по одной из трех причин. Некоторые заменяют зависимости Python, которые были слишком тяжелыми для поставки, такие как insightface, speaker-recognition или сам vLLM. Некоторые переносят модель, которую еще никто не написал на C++: Depth Anything 3, LocateAnything, CED audio tagging, TRELLIS.2. А некоторые заполняют пробел в том, что вообще может делать локальный помощник, например, эхоподавление — неприметная функция, которая не дает голосовому циклу бесконечно транскрибировать самого себя.

Рецепт всегда один и тот же. Модель появляется в виде PyTorch или ONNX плюс пакет Python. Мы переносим граф в ggml, конвертируем веса в один файл GGUF и проверяем каждый компонент по эталонным тензорам, выгруженным из оригинала. Только после того, как все работает корректно, мы смотрим на время. Затем LocalAI загружает общую библиотеку через purego поверх плоского C ABI, поэтому на пути обслуживания нет ни одного процесса Python.

Самый последний пример — vllm.cpp, порт архитектуры обслуживания vLLM V1 на C++20 с постраничным кэшем KV, непрерывной пакетной обработкой и кэшированием префиксов, который был выпущен как бэкенд vllm-cpp в версии 4.8.0.

Текущее состояние

По-прежнему MIT, по-прежнему общественный проект. 224 человека внесли свой код, а README переведен на восемь языков, потому что пользователи этого проекта находятся по всему миру. График участников показывает, кто на самом деле создал это, и это не я.

Если вы хотите что-то добавить, бэкенды и записи в галерее — это два места, где первый вклад будет принят наиболее легко. В файле .agents/adding-backends.md есть пошаговый чек-лист для нового бэкенда, а запись в галерее — это просто блок YAML. Заходите поздороваться в Discord, если возникнут трудности.

← Все статьи