RAG на Raspberry Pi? Теперь это не шутка
Представьте: вам нужно запустить умного чат-бота с доступом к внутренней документации прямо на заводском контроллере. Или сделать поиск по архивам на бортовом компьютере грузовика. Классические векторные базы вроде Pinecone или даже локальный Chroma просто сожрут всю память и процессор. Edge-устройства — это другой мир, где каждый мегабайт и милливатт на счету.
Именно для этого мира Alibaba выпустила Zvec. Не очередной монстр для дата-центров, а минималистичную векторную БД, которая ведет себя как SQLite. Открыл файл — работаешь. Закрыл — забыл. Никаких серверов, оркестраторов и прочей магии.
На момент 12 февраля 2026 года Zvec стабильно обновляется, последняя версия — 2.1.3. Ключевое обновление — нативная поддержка бинарных квантизованных векторов, что сокращает объем памяти в 4 раза без заметной потери точности.
Что такого особенного в этой "жестянке"?
Zvec не пытается быть всем для всех. Его философия проста: один файл, один процесс, нулевая конфигурация. Вот что умеет текущая версия:
- Полноценный векторный поиск с индексами IVF, HNSW и простым brute-force. Для edge сценариев добавили оптимизированный индекс "FlatL2" — меньше вычислений, достаточно точности.
- Смешанные запросы. Можете искать не только по векторам, но и фильтровать по метаданным через простой SQL-подобный синтаксис. Нужны все документы про "термостаты", созданные после 2025 года? Легко.
- Потоковая вставка. Данные можно подкармливать пачками или по одному вектору — БД не упадет в обморок от частых мелких записей.
- Кроссплатформенность. Сборка под ARM, x86, даже под некоторые реальные времени (RTOS) варианты. Библиотека на C++ с обертками для Python, Rust и Go.
Главный козырь — размер. База на 100 000 векторов размером 768 занимает примерно 350 МБ на диске. Для сравнения, тот же Qdrant съест под 600 МБ. Разница кажется небольшой, пока не работаешь на устройстве с 4 ГБ флеш-памяти.
На что смотреть, кроме Zvec? Краткий разбор полетов
Выбор векторных БД для edge сузился, но не исчез. Вот главные конкуренты в начале 2026:
| Инструмент | Плюсы для edge | Минусы для edge | Когда выбирать |
|---|---|---|---|
| Alibaba Zvec 2.1.3 | Минимальный footprint, один файл, встроенные фильтры | Нет распределенного режима, только базовые типы индексов | Любой проект на граничных устройствах с ограниченными ресурсами |
| Chroma 0.5.3 (локальный режим) | Отличная экосистема, простой Python API | Требует больше памяти, зависит от DuckDB | Быстрые прототипы на относительно мощных одноплатниках (Jetson, NUC) |
| EdgeVec | Работает в браузере, феноменальная экономия памяти | Только браузер/WebAssembly, нет персистентности | Клиентские приложения, где данные не покидают устройство |
| Lance 5.7 | Бешеная скорость чтения, облако-нативный формат | Ориентация на большие датасеты, избыточен для мелких устройств | Edge-кластеры, где несколько устройств работают с общим хранилищем |
Если ваш кейс — одинокие устройства без стабильного интернета, Zvec часто становится единственным разумным выбором. Chroma тянет за собой зависимости, Lance требует настройки. Zvec просто работает.
От слов к делу: собираем локальный RAG за 15 минут
Теория — это скучно. Давайте сделаем простой поисковик по техническим мануалам, который запустится на Orange Pi 5. Предположим, у нас уже есть тексты, разбитые на чанки и превращенные в эмбеддинги через какую-нибудь квантованную модель (например, BGE-M3-small, который отлично работает на ARM).
1 Ставим и инициализируем
# Установка через pip (на 12.02.2026 пакет обновлен)
pip install zvec-python
import numpy as np
from zvec import ZVecCollection
# Создаем или открываем коллекцию
# Файл 'manual_embeddings.zvec' появится в рабочей директории
collection = ZVecCollection('manual_embeddings.zvec', dim=768, index_type='IVF')
2 Загружаем данные
# Предположим, у нас есть массив векторов и метаданных
vectors = np.random.randn(1000, 768).astype(np.float32) # 1000 эмбеддингов
metadatas = [
{"id": i, "text": f"Документ {i}", "year": 2025 + (i % 3)}
for i in range(1000)
]
collection = ZVecCollection("my_manual_db.zvec", mode="w", dim=768)
collection.add(vectors, metadatas)
collection.build_index("ivf_flat") # Строим индекс для быстрого поиска
collection.close() # Все сохранено в файл
add_batch с прогресс-баром. Если загружаете десятки тысяч векторов, используйте его — увидите, сколько осталось, и не подумаете, что все зависло.3 Ищем и фильтруем
# В другом скрипте или после перезагрузки
collection = ZVecCollection("my_manual_db.zvec", mode="r")
# Простой векторный поиск
query_vector = np.random.randn(768).astype(np.float32)
results = collection.search(query_vector, k=5)
print("Ближайшие документы:", results["ids"])
# Поиск с фильтром по метаданным (синтаксис похож на SQL WHERE)
filtered_results = collection.search(
query_vector,
k=5,
where="year >= 2026 AND text LIKE '%обслуживание%'"
)
print("Отфильтровано:", filtered_results["ids"])
Вот и весь базовый пайплайн. Файл базы можно копировать, переносить, архивировать. Никаких сервисов, которые нужно поднимать. Для полноценного RAG останется только подключить LLM, например, Qwen-Image-2512 или одну из мелких Llama-моделей.
Кому стоит копать в сторону Zvec, а кому — бежать мимо
Этот инструмент — не волшебная таблетка. Он решает конкретные проблемы конкретных людей.
Берите Zvec, если:
- Делаете приложение для IoT-устройств, медицинских датчиков, полевого оборудования. Там, где интернет — роскошь.
- Храните конфиденциальные данные и принципиально не хотите их никуда отправлять. Полная приватность.
- Работаете в средах с жесткими ограничениями по памяти, как в этом случае с 60 ГБ писем на слабом железе.
- Нужен простой способ встроить поиск по эмбеддингам в десктопное приложение без развертывания инфраструктуры.
Обходите стороной, если:
- Ваш датасет больше 10 миллионов векторов. Zvec не масштабируется горизонтально, это не его цель.
- Нужны сложные запросы с агрегациями или соединениями. Это все же не реляционная БД.
- Требуется максимальная скорость поиска на больших объемах. Специализированные кластерные решения вроде Qdrant или Weaviate будут быстрее.
Что будет дальше? Неочевидный лайфхак
Основной тренд 2026 года — гибридные системы. Zvec идеально вписывается в архитектуру, где тяжелая индексация и обучение идут в облаке, а инференс и легкое обновление — на edge. Например, вы можете переодически "прошивать" устройства обновленными файлами .zvec с актуальными знаниями, а поиск всегда работает локально.
Самый неочевидный совет: используйте Zvec не только для RAG. Попробуйте хранить в нем эмбеддинги изображений с камер наблюдения для поиска аномалий или векторизованные показания сенсоров для предиктивного обслуживания. Его простота открывает возможности для экспериментов, на которые с тяжелыми БД просто не хватит терпения.
И да, загляните в полный каталог инструментов для локального ИИ — там найдете еще с десяток нишевых решений для edge. Но если нужна "рабочая лошадка", которая просто делает свою работу, Zvec — сильный кандидат.