Фреймворк Haystack AI

Разверните Haystack от deepset на Clore.ai — создавайте производственные RAG-конвейеры, семантический поиск и рабочие процессы агентов LLM на доступной GPU-инфраструктуре.

Haystack — это open-source фреймворк оркестрации ИИ от deepset для создания промышленных приложений на базе LLM. С более чем 18K звёзд на GitHub он предоставляет гибкую архитектуру на основе конвейеров которая соединяет хранилища документов, ретриверы, ридеры, генераторы и агентов — всё в чистом, компонуемом Python. Независимо от того, нужен ли вам RAG по приватным документам, семантический поиск или многошаговые рабочие процессы агентов, Haystack решает инфраструктурные задачи, чтобы вы могли сосредоточиться на логике приложения.

На Clore.ai Haystack особенно полезен, когда вам нужен GPU для локального инференса моделей через Hugging Face Transformers или sentence-transformers. Если вы полностью полагаетесь на внешние API (OpenAI, Anthropic), вы можете запускать его на серверах только с CPU — но для генерации эмбеддингов и локальных LLM наличие GPU значительно снижает задержку.

circle-check
circle-info

Это руководство охватывает Haystack v2.x (пакет haystack-ai API v2 существенно отличается от v1 (farm-haystack). Если у вас есть существующие конвейеры v1, см. руководство по миграцииarrow-up-right.

Обзор

Свойство
Детали

Лицензия

Apache 2.0

Звёзды на GitHub

18K+

Версия

v2.x (пакет haystack-ai)

Основное применение

RAG, семантический поиск, документальный QA, рабочие потоки агентов

Поддержка GPU

Необязательно — требуется для локальных эмбеддингов / локальных LLM

Сложность

Средне

API-сервер

Hayhooks (на базе FastAPI, REST)

Ключевые интеграции

Ollama, OpenAI, Anthropic, HuggingFace, Elasticsearch, Pinecone, Weaviate, Qdrant

Что можно построить

  • RAG-конвейеры — загружать документы, генерировать эмбеддинги, извлекать контекст, отвечать на вопросы

  • Семантический поиск — искать документы по смыслу, а не по ключевым словам

  • Обработка документов — парсить PDF, HTML, Word; разбивать, очищать и индексировать содержимое

  • Рабочие процессы агентов — многошаговое рассуждение с использованием инструментов (веб-поиск, калькуляторы, API)

  • REST API сервисы — выставлять любой конвейер Haystack как endpoint через Hayhooks

Требования

Требования к аппаратному обеспечению

Случай использования
GPU
VRAM
ОЗУ
Диск
Clore.ai Цена

Только режим API (OpenAI/Anthropic)

Нет / только CPU

4 ГБ

20 ГБ

~$0.01–0.05/час

Локальные эмбеддинги (sentence-transformers)

RTX 3060

8 ГБ

16 ГБ

30 GB

~$0.10–0.15/час

Локальные эмбеддинги + небольшой LLM (7B)

RTX 3090

24 ГБ

16 ГБ

50 ГБ

~$0.20–0.25/час

Локальный LLM (13B–34B)

RTX 4090

24 ГБ

32 ГБ

80 ГБ

~$0.35–0.50/час

Большой локальный LLM (70B, квантизированный)

A100 80GB

80 ГБ

64 ГБ

150 ГБ

~$1.10–1.50/час

circle-info

Для большинства задач RAG оптимальным вариантом является RTX 3090 сервер примерно за ~$0.20/час — 24 ГБ VRAM справляются с эмбеддингами sentence-transformer и локальным LLM 7B–13B одновременно.

Требования к программному обеспечению

  • Docker (предустановлен на серверах Clore.ai)

  • Драйверы NVIDIA + CUDA (предустановлены на GPU-серверах Clore.ai)

  • Python 3.10+ (внутри контейнера)

  • CUDA 11.8 или 12.x

Быстрый старт

1. Арендуйте сервер Clore.ai

В Clore.ai Marketplacearrow-up-rightотфильтруйте по:

  • VRAM: ≥ 8 ГБ для задач эмбеддинга, ≥ 24 ГБ для локальных LLM

  • Docker: Включено (по умолчанию на большинстве предложений)

  • Образ: nvidia/cuda:12.1-devel-ubuntu22.04 или pytorch/pytorch:2.2.0-cuda12.1-cudnn8-runtime

Запомните публичный IP сервера и SSH-порт из Моих заказах.

2. Подключитесь и проверьте GPU

3. Постройте Docker-образ Haystack

Haystack v2 рекомендует установку через pip. Создайте кастомный Dockerfile:

4. Запустите Haystack с Hayhooks

Hayhooksarrow-up-right превращает любой конвейер Haystack в REST API автоматически:

Ожидаемый ответ:

5. Создайте ваш первый RAG-конвейер

Напишите YAML конвейера, который Hayhooks будет обслуживать как endpoint:

Hayhooks автоматически обнаружит и будет обслуживать этот конвейер. Протестируйте его:

Конфигурация

Переменные окружения

Переменная
Описание
Пример

OPENAI_API_KEY

OpenAI API ключ для моделей GPT

sk-...

ANTHROPIC_API_KEY

Anthropic API ключ для Claude

sk-ant-...

HF_TOKEN

Токен Hugging Face для защищённых моделей

hf_...

HAYSTACK_TELEMETRY_ENABLED

Отключить телеметрию использования

false

CUDA_VISIBLE_DEVICES

Выбрать конкретный GPU

0

TRANSFORMERS_CACHE

Путь кеша для моделей HF

/workspace/hf-cache

Запуск с полной конфигурацией

Конвейер индексирования документов

Создайте отдельный конвейер индексирования для загрузки документов:

Использование векторных баз данных (в продакшене)

Для продакшен-нагрузок замените in-memory хранилище на постоянную векторную базу данных:

Ускорение с помощью GPU

Haystack использует ускорение на GPU в двух основных сценариях:

1. Генерация эмбеддингов (Sentence Transformers)

GPU сильно полезен для эмбеддинга больших коллекций документов:

2. Локальный инференс LLM (Hugging Face Transformers)

Для запуска LLM напрямую в Haystack без Ollama:

3. Сочетание с Ollama (рекомендуемый подход)

Для лучшего сочетания простоты и производительности запускайте Ollama для инференса LLM, а Haystack для оркестрации:

Мониторьте использование GPU в обоих контейнерах:

Подсказки и лучшие практики

Выберите подходящую модель эмбеддингов

Модель
VRAM
Скорость
Качество
Лучше всего для

BAAI/bge-small-en-v1.5

~0.5 GB

Самая быстрая

Хорошо

Высокопроизводительное индексирование

BAAI/bge-base-en-v1.5

~1 GB

Быстро

Лучше

Общий RAG

BAAI/bge-large-en-v1.5

~2 ГБ

Средне

Лучшее

Максимальная точность

nomic-ai/nomic-embed-text-v1

~1.5 GB

Быстро

Отлично

Длинные документы

Советы по проектированию конвейеров

  • Разбивайте документы разумно — фрагменты по 200–400 слов с перекрытием 10–15% хорошо подходят для большинства задач RAG

  • Кэшируйте эмбеддинги — сохраняйте хранилище документов на диск; переэмбеддинг дорогой

  • Используйте warm_up() — вызовите component.warm_up() перед использованием в продакшене, чтобы загрузить модели в память GPU

  • Пакетное индексирование — обрабатывайте документы партиями по 32–64 для оптимального использования GPU

  • Фильтрация по метаданным — используйте фильтрацию по метаданным Haystack для ограничения области поиска (например, по дате, источнику, категории)

Оптимизация затрат

Защитите Hayhooks для внешнего доступа

Устранение неполадок

Проблема
Вероятная причина
Решение

ModuleNotFoundError: haystack

Пакет не установлен

Пересоберите Docker-образ; проверьте pip install haystack-ai выполнено успешно

CUDA — недостаточно памяти

Модель эмбеддинга слишком большая

Используйте bge-small-en-v1.5 или уменьшите размер батча

Hayhooks возвращает 404 на pipeline

YAML файл не найден

Проверьте монтирование тома; файл конвейера должен находиться в /app/pipelines/

Медленный эмбеддинг на CPU

GPU не обнаружен

Проверьте --gpus all флаг; проверьте torch.cuda.is_available()

Подключение к Ollama отклонено

Неправильное имя хоста

Используйте --add-host=host.docker.internal:host-gateway; установите URL на http://host.docker.internal:11434

Скачивание с HuggingFace не удалось

Отсутствует токен или превышен лимит запросов

Установите HF_TOKEN переменная окружения; убедитесь, что модель не защищена

Ошибка парсинга YAML конвейера

Неверный синтаксис

Проверьте YAML; используйте python3 -c "import yaml; yaml.safe_load(open('pipeline.yml'))"

Контейнер сразу выходит

Ошибка при запуске

Проверьте docker logs haystack; убедитесь, что CMD в Dockerfile корректна

Порт 1416 недоступен извне

Фаервол / проброс портов

Откройте порт в настройках заказа Clore.ai; проверьте открытые порты сервера

Команды для отладки

Дополнительное чтение

Последнее обновление

Это было полезно?