Вложения — это числовые представления текста, передающие семантическое значение. Они преобразуют текст в векторы (массивы чисел), которые можно использовать для различных задач машинного обучения. LLMSTORE предоставляет унифицированный API для доступа к моделям внедрения от нескольких поставщиков.

Что такое встраивания?

Встраивания преобразуют текст в многомерные векторы, где семантически схожие тексты располагаются ближе друг к другу в векторном пространстве. Например, слова «кошка» и «котенок» будут иметь схожие вложения, а слова «кошка» и «самолет» будут находиться далеко друг от друга. Эти векторные представления позволяют машинам понимать взаимосвязи между фрагментами текста, что делает их необходимыми для многих приложений искусственного интеллекта.

Распространенные случаи использования

Встраивания используются в самых разных приложениях: RAG (дополненная генерация данных): создавайте системы RAG, которые извлекают соответствующий контекст из базы знаний перед генерированием ответов. Вложения помогают найти наиболее подходящие документы для включения в контекст LLM. Семантический поиск: преобразуйте документы и запросы во встраивания, а затем находите наиболее релевантные документы путем сравнения векторного сходства. Это обеспечивает более точные результаты, чем традиционное сопоставление ключевых слов, поскольку оно понимает значение, а не просто сопоставляет слова. Системы рекомендаций: создавайте вставки для элементов (продуктов, статей, фильмов) и предпочтений пользователей, чтобы рекомендовать похожие товары. Сравнивая векторы внедрения, вы можете найти элементы, которые семантически связаны, даже если они не имеют общих ключевых слов. Кластеризация и классификация: группируйте похожие документы вместе или классифицируйте текст по категориям путем анализа шаблонов внедрения. Документы с похожими вложениями, скорее всего, принадлежат к одной и той же теме или категории. Обнаружение дубликатов: выявление повторяющегося или почти повторяющегося контента путем сравнения сходства встраивания. Это работает, даже если текст перефразирован или переформулирован. Обнаружение аномалий: Обнаружение необычного или необычного контента путем выявления вложений, которые далеки от типичных шаблонов в вашем наборе данных.

Как использовать вложения

Основной запрос

Чтобы создать вложения, отправьте POST-запрос на адрес /embeddings с введенным вами текстом и выбранной моделью:

Пакетная обработка

Вы можете генерировать встраивания для нескольких текстов в одном запросе, передавая массив строк:

Ввод изображения

Некоторые модели внедрения поддерживают ввод изображений, что позволяет осуществлять мультимодальное внедрение, захватывающее визуальный контент наряду с текстом. Это полезно для поиска изображений, визуального сходства и задач кросс-модального поиска. Чтобы отправить изображение, оберните введенные данные в мультимодальном формате с помощью content массив, содержащий image_url объектов. Вы также можете объединить текст и изображения в одном входном блоке. Вы также можете объединить текст и изображения в одном входе для создания совместного встраивания:

Справочник по API

Подробную информацию о параметрах запроса, формате ответа и всех доступных опциях см. в Справочнике по API внедрения.

Доступные модели

LLMSTORE предоставляет доступ к различным моделям встраивания от разных поставщиков. Вы можете просмотреть все доступные модели встраивания по адресу: https://llmstore.ru/models?fmt=cards&output_modalities=embeddings Чтобы программно перечислить все доступные модели внедрения:

Практический пример: семантический поиск

Вот полный пример построения системы семантического поиска с использованием вложений: Ожидаемый результат:

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

Выберите правильную модель: разные модели внедрения имеют разные преимущества. Меньшие модели (например, qwen/qwen3-embedding-0.6b или openai/text-embedding-3-small) работают быстрее и дешевле, тогда как более крупные модели (например, openai/text-embedding-3-large) обеспечивают лучшее качество. Протестируйте несколько моделей, чтобы найти наиболее подходящую для вашего случая использования. Группируйте запросы: при обработке нескольких текстов отправляйте их одним запросом, а не делайте отдельные вызовы API. Это уменьшает задержку и затраты. Внедрения в кэш: Встраивания для одного и того же текста являются детерминированными (они не изменяются). Храните внедрения в базе данных или векторном хранилище, чтобы избежать их повторного создания. Нормализация для сравнения: при сравнении вложений используйте косинусное сходство, а не евклидово расстояние. Косинусное сходство не зависит от масштаба и лучше работает для векторов большой размерности. Учитывайте длину контекста: каждая модель имеет максимальную входную длину (контекстное окно). Более длинные тексты, возможно, придется разбить на части или усечь. Прежде чем обрабатывать длинные документы, проверьте характеристики модели. Используйте подходящее разбиение на части. Для длинных документов разбивайте их на значимые фрагменты (абзацы, разделы), а не на произвольные ограничения на количество символов. Это сохраняет семантическую связность.

Маршрутизация провайдера

Вы можете контролировать, какие поставщики обслуживают ваши запросы на встраивание, используя provider параметр. Это полезно для:
  • Обеспечение конфиденциальности данных у конкретных провайдеров
  • Оптимизация стоимости или задержки
  • Использование функций, специфичных для провайдера
Пример с настройками провайдера:
Для получения дополнительной информации см. Маршрутизация поставщика.

Обработка ошибок

Распространенные ошибки, с которыми вы можете столкнуться: 400 Неверный запрос: неверный формат ввода или отсутствуют необходимые параметры. Проверьте, что ваш input и Параметры model имеют правильный формат. 401 Несанкционировано: неверный или отсутствующий ключ API. Убедитесь, что ваш ключ API верен и включен в заголовок авторизации. 402 Требуется оплата: недостаточно кредитов. Добавьте кредиты на свой счет LLMSTORE. 404 Not Found: указанная модель не существует или недоступна для встраивания. Проверьте имя модели и убедитесь, что это модель внедрения. 429 Слишком много запросов: превышен предел скорости. Реализуйте экспоненциальную логику отсрочки и повтора. 529 Поставщик перегружен: поставщик временно перегружен. Включить allow_fallbacks: true для автоматического использования поставщиков резервного копирования.

Ограничения

  • Нет потоковой передачи: в отличие от завершения чата, встраивания возвращаются как полные ответы. Потоковая передача не поддерживается.
  • ​​Ограничения на токены: каждая модель имеет максимальную входную длину. Тексты, превышающие этот лимит, будут обрезаны или отклонены.
  • Детерминированный вывод: Вложения для одного и того же входного текста всегда будут идентичными (без температуры или случайности).
  • ​​Языковая поддержка: некоторые модели оптимизированы для определенных языков. Проверьте документацию модели на наличие языковых возможностей.

Ресурсы по теме