Конспект 1: Основные термины ML
Конспект: Основные термины ML для автоматизации в N8N
Оглавление
- Основные концепции ML
- Работа с текстом и данными
- Векторизация и эмбеддинги
- Векторные базы данных
- RAG (Retrieval-Augmented Generation)
- N8N: ключевые концепции для автоматизации
- Практическое применение ML в N8N
Основные концепции ML
Машинное обучение (Machine Learning)
Определение: Область искусственного интеллекта, которая позволяет системам обучаться на данных и улучшать свои показатели без явного программирования на выполнение конкретных задач.
Типы задач: - Классификация — категоризация данных по группам - Регрессия — предсказание непрерывных значений - Кластеризация — группировка похожих объектов - Поиск и ранжирование — нахождение релевантных объектов
Предобученные модели
Определение: Модели, уже обученные на больших наборах данных, которые можно использовать для решения задач без переобучения.
Примеры: - OpenAI GPT-3/GPT-4 - Google Cloud AI - DeepSeek - BERT (для обработки текста)
LLM (Large Language Models) — Большие языковые модели
Определение: Нейросетевые модели, обученные на огромных объемах текста и способные понимать и генерировать человеческий язык.
Характеристики: - Работают с контекстным окном (максимальный объем информации одновременно) - Используют токены для обработки текста - Применяются в чат-ботах, анализе текста, генерации контента
Работа с текстом и данными
Токен
Определение: Минимальная единица текста, которую обрабатывает языковая модель. Может быть целым словом, частью слова, символом или пунктуацией.
Примеры: - "Привет" — 1-2 токена - "," — 1 токен - Сложное слово может быть разбито на несколько токенов
Значение: Токены влияют на стоимость использования API, длину контекста и скорость обработки.
Токенизация (Tokenization)
Определение: Процесс разбиения текста на токены и их преобразование в числовые идентификаторы, понятные модели.
Методы токенизации:
| Метод | Описание | Применение |
|---|---|---|
| BPE (Byte Pair Encoding) | Итеративно заменяет наиболее частые пары символов на новые токены | OpenAI (GPT) |
| WordPiece | Разбивает слова на субсловные единицы | BERT, модели от Google |
| SentencePiece | Рассматривает текст как последовательность символов | Google T5, Facebook's fairseq |
Обязательный этап для работы с LLM, позволяет модели: - Анализировать синтаксис (структуру текста) - Извлекать семантику (глубинный смысл)
Контекстное окно (Context Window)
Определение: Максимальное количество токенов, которые модель может одновременно учитывать при генерации текста.
Примеры: - GPT-3: 2048 токенов - GPT-4: 8000-128000 токенов в зависимости от версии - Claude 3: до 200000 токенов
Влияние: - Определяет максимальный объем информации для обработки - Влияет на качество ответов при работе с длинными текстами - Критично для RAG-систем
Чанкирование (Chunking)
Определение: Разделение больших текстовых документов на управляемые фрагменты (чанки) для обработки и анализа.
Зачем нужно: - Документы часто больше контекстного окна модели - Позволяет обрабатывать информацию поэтапно - Необходимо для создания эмбеддингов в RAG-системах
Стратегии чанкирования:
| Метод | Описание | Плюсы | Минусы |
|---|---|---|---|
| TokenChunker | Разделение по фиксированному количеству токенов | Контролируемый размер | Может разрывать смысловые единицы |
| SentenceChunker | Разделение по границам предложений | Сохраняет смысл | Неравномерный размер чанков |
| RecursiveChunker | Иерархическое разделение на семантически значимые части | Гибкость, адаптивность | Более сложная обработка |
| LateChunker | Сначала векторизирует весь текст, потом чанкирует | Учитывает контекст всего документа | Требует больше вычислительных ресурсов |
| NeuralChunker | Использует BERT для определения оптимальных границ | Умное разделение | Медленнее других методов |
Параметры: - Размер чанка (chunk size) — обычно 256-1024 токена - Overlap (перекрытие) — количество токенов, повторяющихся между соседними чанками (10-20% от размера), повышает релевантность поиска на 1-3%
Пример:
Исходный текст: "Машинное обучение — это область ИИ. Оно позволяет системам обучаться. На данных без явного программирования."
Чанк 1: "Машинное обучение — это область ИИ. Оно позволяет системам обучаться."
Чанк 2: "Оно позволяет системам обучаться. На данных без явного программирования."
Векторизация и эмбеддинги
Эмбеддинг (Embedding)
Определение: Числовое векторное представление данных (текста, изображений, аудио, кода), полученное с помощью специализированной модели-энкодера.
Основная идея: - Преобразует любые входные данные в массив чисел фиксированной длины - Семантически похожие объекты располагаются близко друг к другу в многомерном пространстве - Позволяет проводить математические операции со смыслом текста
Примеры: - Текст "кот" и "кошка" будут иметь близкие векторы - "дом" и "здание" будут близки - "дом" и "яблоко" будут далеки
Размерность: - Типичные модели: 384-1536 размеров - OpenAI text-embedding-3-small: 1536 размеров - Model2Vec: более компактные эмбеддинги с меньшей размерностью
Энкодер (Embedder)
Определение: Специализированная модель, которая преобразует текст (или другие данные) в эмбеддинги.
Популярные модели: - FastEmbed — легковесная, быстрая библиотека для Python - OpenAI text-embedding-3 — высокое качество, облачная - BERT embeddings — универсальная модель от Google - Model2Vec — статические, быстрые эмбеддинги
Применение:
Текст: "N8N помогает автоматизировать процессы"
↓ (Energy-embedder)
Вектор: [0.23, -0.15, 0.87, ..., 0.42] (1536 чисел)
Косинусное расстояние (Cosine Similarity)
Определение: Мера схожести между двумя векторами, основанная на угле между ними в многомерном пространстве.
Формула: значение от -1 до 1 - 1.0 — идеально похожие - 0.5 — среднее сходство - 0.0 — независимые - -1.0 — противоположные
Применение в поиске:
Запрос: "как использовать N8N?" → вектор Q
Документ 1: "N8N автоматизирует процессы" → вектор D1 (сходство: 0.89)
Документ 2: "Яблоки красные" → вектор D2 (сходство: 0.15)
Результат: возвращаем документ 1
Векторные базы данных
Векторная база данных (Vector Database)
Определение: Специализированная база данных, оптимизированная для хранения и поиска векторных данных (эмбеддингов).
Отличия от обычных БД:
- Обычная БД: поиск по точному совпадению (WHERE id = 5)
- Векторная БД: поиск по семантической близости (top-K похожих векторов)
- Результаты возвращаются отсортированные по релевантности
Популярные решения:
| БД | Тип | Особенности | Применение |
|---|---|---|---|
| Qdrant | Open-source + облако | Высокая производительность, фильтрация | RAG, поиск по сходству |
| Milvus | Open-source | Масштабируемость, облако | Большие объемы данных |
| Weaviate | Open-source + облако | GraphQL API, встроенная токенизация | Знания графов, RAG |
| ChromaDB | Open-source | Простая, встраиваемая | Прототипирование, локальные проекты |
| pgvector | PostgreSQL расширение | Интеграция с PostgreSQL | Гибридные решения |
| Redis | In-memory | Быстрый поиск | Реал-тайм приложения |
| LanceDB | Open-source | Оптимизирована для аналитики | Data science, ML |
| Pinecone | Облачный сервис | Управляемый, масштабируемый | Enterprise RAG |
Архитектура хранения:
Вариант 1: Все в векторной БД
Векторная БД:
├─ Эмбеддинг (вектор)
├─ ID документа
├─ Метаданные (дата, автор, тип)
└─ (опционально) исходный текст
Вариант 2: Гибридное решение
Векторная БД: Эмбеддинг + ID + метаданные
↓
Внешнее хранилище: Полный текст (обычная БД, S3, файлы)
Вариант 3: PostgreSQL + pgvector
PostgreSQL с расширением pgvector:
├─ Текстовые данные (обычные колонки)
├─ Эмбеддинги (вектор-колонка)
└─ Индексы для быстрого поиска
Операции с эмбеддингами
Векторный поиск (ANN Search)
Определение: Поиск K наиболее похожих векторов на запрос (Approximate Nearest Neighbors).
Процесс:
Запрос пользователя
↓
Преобразование в эмбеддинг
↓
Поиск в векторной БД (top-K похожих)
↓
Возврат отсортированных по релевантности результатов
Фильтрация по метаданным
Определение: Ограничение поиска по дополнительным критериям (дата, автор, категория, язык).
Пример:
Найти 5 документов похожие на "N8N",
но только опубликованные в 2025 году
Гибридный поиск
Определение: Комбинация векторного поиска и традиционного полнотекстового поиска (BM25).
Применение: Когда нужна и семантика, и точные ключевые слова
Переранжирование (Reranking)
Определение: Улучшение порядка результатов поиска с помощью более сложной модели.
Процесс:
Быстрый поиск (top-100 похожих) → Переранжирование (top-10 лучших)
RAG (Retrieval-Augmented Generation)
Что такое RAG?
Определение: Архитектура, которая улучшает ответы больших языковых моделей путем предоставления им контекстно релевантных данных из внешних источников.
Проблема, которую решает RAG: - LLM обучены на данных до определенного момента времени - Имеют галлюцинации (ложные факты) - Ограничены контекстным окном - Не имеют доступа к приватным данным
Решение: Добавить внешнюю память в виде векторной БД
Архитектура RAG
Этап 1: Подготовка данных (Ingestion)
Исходные документы
↓
Чистка и форматирование
↓
Чанкирование
↓
Генерация эмбеддингов
↓
Сохранение в векторную БД
Компоненты: - Чистка: удаление лишнего текста, добавление недостающего - Чанкирование: разбиение на управляемые куски - Эмбедер: преобразование в векторы - Векторная БД: хранилище
Этап 2: Поиск (Retrieval)
Запрос пользователя
↓
Преобразование в эмбеддинг
↓
Поиск в векторной БД
↓
Извлечение релевантных документов (обычно top-5, top-10)
Этап 3: Генерация (Generation)
Релевантные документы + Исходный запрос
↓
Формирование промпта с контекстом
↓
Отправка в LLM
↓
Генерация ответа
Полный процесс RAG
┌─────────────────────────────────────────┐
│ Запрос: "Как использовать N8N для RAG?"│
└────────────────┬────────────────────────┘
↓
Кодирование (Encoding)
Преобразование запроса в вектор
↓
┌────────────────────────────────────────┐
│ Поиск в Векторной БД │
│ Находим 5 похожих чанков из БД знаний│
└────────────────┬────────────────────────┘
↓
┌────────────────────────────────────┐
│ Релевантные документы: │
│ • "N8N - платформа автоматизации" │
│ • "Как подключить векторную БД" │
│ • "Примеры RAG в N8N" │
└────────────────┬───────────────────┘
↓
┌─────────────────────────────────────────┐
│ Формирование промпта: │
│ Система: "Ты помощник по N8N" │
│ Контекст: [5 релевантных чанков] │
│ Вопрос: "Как использовать N8N для RAG?"│
└────────────────┬────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ Генерация ответа (LLM): │
│ Синтез внутреннего знания + память │
└────────────────┬────────────────────────┘
↓
┌────────────────────────────────────┐
│ Ответ: "N8N - это платформа... │
│ Для использования RAG: │
│ 1. Подготовьте документы │
│ 2. Создайте эмбеддинги │
│ 3. Подключите векторную БД..." │
└────────────────────────────────────┘
Задачи векторной БД в RAG
| Задача | Описание | Примеры решений |
|---|---|---|
| Семантический поиск | Основная задача — найти релевантный контекст | Косинусное расстояние, ANN |
| Фильтрация метаданных | Ограничение по дате, автору, категории | WHERE filters, metadata |
| Гибридный поиск | Векторный поиск + BM25 | Комбинированный поиск |
| Переранжирование | Уточнение порядка результатов | LLM-based reranking |
| Работа с большим объемом | Индексирование, сегментирование | Partitioning, sharding |
| Инкрементальная индексация | Добавление новых документов | Batch updates, incremental |
Метрики качества RAG
| Метрика | Описание | Цель |
|---|---|---|
| Answer Relevancy | Насколько релевантен ответ запросу | Максимизировать (ideally > 0.99) |
| Faithfulness | Насколько ответ придерживается контекста | Максимизировать (> 0.85) |
| Context Relevancy | Релевантность найденных документов | Максимизировать |
| Information Retrieval | Полнота поиска (recall/precision) | Балансировать |
N8N: ключевые концепции для автоматизации
Что такое N8N?
Определение: Открытая платформа для автоматизации рабочих процессов, построенная на концепции узлов (nodes). Относится к категории low-code/no-code платформ.
Преимущества: - Визуальный интерфейс без кода (drag-and-drop) - Возможность использования JavaScript и Python - Тысячи интеграций (API, базы данных, сервисы) - Открытый исходный код - Самостоятельный хостинг или облако
Архитектура рабочего процесса в N8N
Основные компоненты
1. Триггер (Trigger) - Событие, с которого начинается рабочий процесс - Типы: - Webhook — HTTP-запрос от внешней системы - Schedule — по расписанию (каждый день, час и т.д.) - Event trigger — событие из интегрированного сервиса (письмо в Gmail, новый пост в Twitter)
2. Узел (Node) - Отдельный блок обработки данных - Может выполнять действие, трансформацию, проверку логики - Принимает данные на вход, выполняет операцию, выводит результат
3. Соединения (Connections) - Связи между узлами, определяющие поток данных - Данные передаются в формате JSON - Каждый узел может иметь несколько выходов
Типы узлов
| Тип | Назначение | Примеры |
|---|---|---|
| Triggers | Запуск процесса | Webhook, Schedule, API Event |
| Actions | Выполнение операций | Send Email, Update Database, Call API |
| Data transformation | Трансформация данных | Function, Code (JS/Python) |
| Logic | Условная логика | If/Switch, Merge, Split |
| Integrations | Подключение к сервисам | Google Sheets, Airtable, Slack, OpenAI |
Поток данных в N8N
Триггер (Webhook)
↓
Получение данных: {"name": "John", "query": "N8N"}
↓
Узел 1: Трансформация (Function)
↓
Узел 2: Вызов OpenAI API
↓
Узел 3: Сохранение в БД
↓
Узел 4: Отправка письма
↓
Завершение процесса
Обработка данных в N8N
Items (элементы): - Если один узел возвращает несколько элементов, следующие узлы выполнятся для каждого элемента отдельно - Позволяет обрабатывать списки данных параллельно
Пример:
Входные данные: [
{id: 1, text: "Hello"},
{id: 2, text: "World"}
]
Узел Process Item будет выполнен 2 раза:
- Итерация 1: {id: 1, text: "Hello"}
- Итерация 2: {id: 2, text: "World"}
Обработка ошибок в N8N
- Try/Catch блоки — перехват ошибок
- Error workflow — отдельный рабочий процесс при возникновении ошибок
- Conditional execution — пропуск узла при условии
HTTP-запросы в N8N
Узел HTTP Request: - Отправка запросов на API - Поддерживает методы: GET, POST, PUT, DELETE, PATCH - Передача параметров, заголовков, тела запроса - Работа с аутентификацией (API Key, OAuth, Bearer token)
Пример использования:
GET https://api.openai.com/v1/embeddings
Headers: Authorization: Bearer sk-...
Body: {
"input": "N8N - платформа автоматизации",
"model": "text-embedding-3-small"
}
Практическое применение ML в N8N
Применение 1: RAG-агент в N8N
Архитектура:
Входящее письмо →
Извлечение текста →
Преобразование в вектор →
Поиск в Qdrant →
Получение релевантных документов →
Вызов OpenAI с контекстом →
Отправка ответа
Необходимые узлы: 1. Gmail trigger — получение письма 2. Function node — обработка текста (очистка, нормализация) 3. HTTP Request — вызов embedding API 4. Qdrant node — поиск в векторной БД 5. Function node — формирование промпта 6. OpenAI node — генерация ответа 7. Gmail node — отправка ответа
Применение 2: Автоматизированное чанкирование и индексирование
Процесс:
Загруженный документ (PDF, Docx) →
Текста extraction →
Чанкирование (разбиение на части) →
Генерация эмбеддингов →
Сохранение в Qdrant →
Обновление базы знаний
Необходимые узлы: 1. File Upload trigger 2. Document Parser (например, PDFParser) 3. Function node — чанкирование текста 4. HTTP Request — embedding API 5. Qdrant node — сохранение векторов 6. Notification — подтверждение завершения
Применение 3: Анализ данных с ML
Примеры: - Sentiment analysis — анализ тональности текстов - Topic modeling — определение тем в документах - Entity extraction — извлечение сущностей (люди, компании, места) - Classification — категоризация данных
Архитектура:
Данные из источника (CSV, API, DB) →
Обработка текста →
ML-модель (OpenAI/Hugging Face) →
Сохранение результатов →
Визуализация
Применение 4: Мониторинг и алертинг
Процесс:
Сбор данных (API, БД) →
ML анализ (аномалии, тренды) →
Условная логика (пороги) →
Отправка алертов (Slack, Email, SMS)
Пример:
Мониторим социальные сети:
- Сбор данных (Twitter, Reddit)
- Sentiment analysis каждого поста
- Если sentiment < -0.7 (негативный)
- Отправляем алерт в Slack
Применение 5: Обогащение данных
Процесс:
Исходные данные (контакты, продукты) →
Обращение к ML API (классификация, предсказание) →
Добавление новых полей →
Сохранение обогащенных данных
Пример:
База контактов + OpenAI →
Добавление автоматических ответов →
Категоризация по сегментам →
Сохранение в CRM
Интеграция N8N с популярными ML-сервисами
OpenAI (GPT-4, embeddings)
- Встроенный узел в N8N
- Chat completion, embeddings, fine-tuning
- Требуется API key
Google Cloud AI
- Translation API
- Vision API
- Natural Language API
Hugging Face
- Через HTTP Request узел
- Доступ к тысячам моделей
- Inference Endpoints
Qdrant (векторная БД)
- Встроенная интеграция в N8N
- CRUD операции
- Поиск по сходству
Supabase (PostgreSQL + pgvector)
- Основана на PostgreSQL
- Встроенная поддержка векторов
- REST API через N8N
Redis
- Быстрые векторные поиски
- Кэширование результатов
- Реал-тайм приложения
Ключевые метрики и лучшие практики
Производительность RAG
- Latency (задержка поиска) — должна быть < 500ms
- Recall (полнота) — % правильных результатов из всех релевантных
- Precision (точность) — % правильных результатов из всех найденных
- NDCG (нормализованная DCG) — оценка качества ранжирования
Оптимизация N8N рабочих процессов
- Кэширование — сохранение результатов промежуточных операций
- Параллелизм — одновременное выполнение независимых узлов
- Батчинг — обработка нескольких элементов за раз
- Фильтрация ранних — удаление ненужных данных как можно раньше
- Индексирование — ускорение поисков в БД
- Мониторинг — логирование и отслеживание ошибок
Лучшие практики чанкирования
- Размер: 256-1024 токена для большинства задач
- Overlap: 10-20% от размера чанка
- Граница: по предложениям или логическим разделам, не посередине текста
- Метаданные: сохранение исходного документа, даты, автора
- Тестирование: проверка качества на репрезентативной выборке
Лучшие практики RAG
- Качество данных — хорошо подготовленные, чистые данные критичны
- Регулярное обновление — свежие эмбеддинги и контекст
- Версионирование — отслеживание версий моделей и индексов
- Мониторинг качества — регулярная оценка Answer Relevancy и Faithfulness
- Fallback стратегия — что делать если поиск ничего не нашел
- Прозрачность — показывать пользователю найденные источники
Полезные ресурсы и команды
Python библиотеки для ML
# Эмбеддинги
pip install fastembeddings
pip install sentence-transformers
# Векторные БД
pip install qdrant-client
pip install pinecone-client
pip install langchain
# Обработка текста
pip install tiktoken # для подсчета токенов
pip install nltk # обработка текста
pip install spacy # NLP
# LLM интеграции
pip install openai
pip install langchain-openai
N8N Docker команда
# Запуск N8N локально
docker run -it --rm \
-p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
n8nio/n8n
# Доступ: http://localhost:5678
Резюме
Минимальный набор знаний для ML в N8N
| Концепция | Применение в N8N | Когда использовать |
|---|---|---|
| Токены | Подсчет стоимости API, размер контекста | Работа с LLM |
| Чанки | Разбиение документов перед индексацией | Подготовка данных для RAG |
| Эмбеддинги | Векторизация текста перед поиском | RAG, семантический поиск |
| Векторная БД | Хранение и поиск похожих документов | RAG-системы, рекомендации |
| RAG | Улучшение ответов LLM контекстом | Системы вопрос-ответ, чат-боты |
| HTTP Request | Вызов внешних ML API | Интеграция с OpenAI, других сервисов |
| Function node | Трансформация данных на JS/Python | Промежуточная обработка |
| Условная логика | Маршрутизация данных | Разные сценарии обработки |
Типичный рабочий процесс RAG в N8N
1. Триггер (вебхук с запросом)
2. Преобразование запроса в вектор (OpenAI embedding)
3. Поиск в Qdrant (векторная БД)
4. Получение релевантных чанков
5. Формирование промпта с контекстом
6. Запрос к OpenAI GPT-4
7. Возврат ответа пользователю