Конспект 1: Основные термины ML

Pavel 04.12.2025 19:19 31 просмотров

Конспект: Основные термины ML для автоматизации в N8N

Оглавление

  1. Основные концепции ML
  2. Работа с текстом и данными
  3. Векторизация и эмбеддинги
  4. Векторные базы данных
  5. RAG (Retrieval-Augmented Generation)
  6. N8N: ключевые концепции для автоматизации
  7. Практическое применение 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:
├─ Текстовые данные (обычные колонки)
├─ Эмбеддинги (вектор-колонка)
└─ Индексы для быстрого поиска

Операции с эмбеддингами

Определение: Поиск 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 рабочих процессов

  1. Кэширование — сохранение результатов промежуточных операций
  2. Параллелизм — одновременное выполнение независимых узлов
  3. Батчинг — обработка нескольких элементов за раз
  4. Фильтрация ранних — удаление ненужных данных как можно раньше
  5. Индексирование — ускорение поисков в БД
  6. Мониторинг — логирование и отслеживание ошибок

Лучшие практики чанкирования

  • Размер: 256-1024 токена для большинства задач
  • Overlap: 10-20% от размера чанка
  • Граница: по предложениям или логическим разделам, не посередине текста
  • Метаданные: сохранение исходного документа, даты, автора
  • Тестирование: проверка качества на репрезентативной выборке

Лучшие практики RAG

  1. Качество данных — хорошо подготовленные, чистые данные критичны
  2. Регулярное обновление — свежие эмбеддинги и контекст
  3. Версионирование — отслеживание версий моделей и индексов
  4. Мониторинг качества — регулярная оценка Answer Relevancy и Faithfulness
  5. Fallback стратегия — что делать если поиск ничего не нашел
  6. Прозрачность — показывать пользователю найденные источники

Полезные ресурсы и команды

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. Возврат ответа пользователю

Комментарии (0)

Для добавления комментария необходимо войти в аккаунт

Войти / Зарегистрироваться