ТОП-5 фреймворков на Python для локальных LLM: личный опыт из репы
Как я выбирал фреймворки для локальных моделей python
Привет! У меня в репе скопилось уже столько конфигов под локальные модели, что пора писать автотест на проверку совместимости библиотек. Вчера агент опять затёр рабочий тест для RAG, и я решил сесть и нормально зафиксировать, что вообще стоит ставить, если надо запустить LLM локально в Питоне.
Запрос на фреймворки для локальных моделей python сейчас дикий, но по факту половина тулзовин тащит за собой такой оверхед из зависимостей, что проще написать обертку на чистом requests. Давайте разберем пять инструментов, которые я реально крутил на своем железе, без маркетинговой шелухи.
python code on dark theme IDE
1. Ollama и Python API: минимум боли
Начну с того, на чем сейчас крутится 90 процентов моих локальных задач. Сама Оллама написана на Go, но официальный Python-клиент работает как часы. Никаких танцев с компиляцией llama.cpp под конкретную архитектуру процессора — скачал бинарник, поднял демон, дергаешь из скрипта.
Кому да: тем, кто хочет запустить квантованные веса за две минуты и забыть про проблемы с зависимостями. Кому нет: если вам нужен глубокий кастом внутренних слоев модели и специфические токенайзеры.
2. LlamaIndex: для тех, кто строит RAG
Когда мне нужно быстро прикрутить поиск по локальной базе документов, я открываю LlamaIndex. У них отличная интеграция с локальными эмбеддингами и Ollama. Библиотека выросла из простых поисковиков, но сейчас это комбайн.
Кому да: если вы пишите умный поиск, чат-ботов по документации или агентские системы с индексацией файлов. Кому нет: для простых одноразовых запросов к модели это избыточный оверхед с кучей абстракций.
3. LangChain: классика с большой кодовой базой
Про Лангчейн не ругался только ленивый. У меня в репе он то появляется, то улетает в игнор из-за частых breaking changes в минорных версиях. Но экосистема у них огромная — подтянуть локальную модель через ChatOllama или HuggingFacePipeline можно одной строчкой.
Кому да: разработчикам, которым нужны готовые цепочки (chains), память диалогов и интеграция со всеми возможными векторными базами данных. Кому нет: если вы не готовы переписывать код при обновлении мажорной версии.
4. Llama.cpp Python bindings: для полного контроля
Иногда стандартных оберток не хватает, и нужно работать с GGUF-файлами напрямую из кода на Python. Тут на помощь приходит llama-cpp-python. При правильной сборке с поддержкой Metal на macOS или CUDA на линуксе работает шустро.
Кому да: тем, кто хочет выжать максимум производительности из локального железа и сам управляет контекстом. Кому нет: если при словах «соберите проект из исходников» у вас начинается нервный тик.
5. Hugging Face Transformers + Accelerate
Классика жанра, с которой всё и начиналось. Запуск llm локально python библиотеки от Hugging Face — это стандарт индустрии, но на обычном десктопе без шаманства с bitsandbytes модели вроде Llama-3 могут просто не влезть в память.
Кому да: исследователям, ML-инженерам и тем, кто тестирует оригинальные веса без квантования. Кому нет: обычным бэкендерам, которым нужно просто поднять локальный эндпоинт для автодополнения кода.
Итог: что ставить в проект прямо сейчас
Если коротко резюмировать мои мучения с этими библиотеками: для 80% задач хватает связки Ollama + LlamaIndex. Если пилите сложного агента со своими промптами и кучей памяти — смотрите в сторону LangChain, но будьте готовы к боли при обновлениях.
Делитесь в комментариях, какой у вас стек для локальных моделей и что из этого списка уже пробовали ставить.