Эмбеддинги
Текстовые эмбеддинги - это числовые представления текста, позволяющие измерять семантическое сходство. Это руководство знакомит с эмбеддингами, их применением и использованием моделей эмбеддингов для таких задач, как поиск, рекомендации и обнаружение аномалий.
Перед внедрением эмбеддингов
При выборе провайдера эмбеддингов следует учитывать несколько факторов в зависимости от ваших потребностей и предпочтений:
- Размер набора данных и специфика предметной области: размер обучающего набора данных модели и его релевантность для области, в которой вы хотите создавать эмбеддинги. Больший объем данных или более специализированные данные обычно дают лучшие эмбеддинги в конкретной области
- Производительность при выводе: скорость поиска эмбеддингов и общая задержка. Это особенно важно для масштабных производственных развертываний
- Возможности настройки: варианты продолжения обучения на частных данных или специализации моделей для очень конкретных областей. Это может улучшить производительность при работе с уникальной лексикой
Как получить эмбеддинги с помощью Anthropic
Anthropic не предлагает собственную модель эмбеддингов. Одним из провайдеров эмбеддингов, который имеет широкий спектр возможностей, охватывающих все вышеперечисленные соображения, является Voyage AI.
Voyage AI создает передовые модели эмбеддингов и предлагает настраиваемые модели для конкретных отраслей, таких как финансы и здравоохранение, или специальные модели, настроенные для отдельных клиентов.
Остальная часть этого руководства посвящена Voyage AI, но мы рекомендуем вам оценить различных поставщиков эмбеддингов, чтобы найти наиболее подходящий вариант для вашего конкретного случая.
Начало работы с Voyage AI
Чтобы получить доступ к эмбеддингам Voyage:
- Зарегистрируйтесь на сайте Voyage AI
- Получите API-ключ
- Установите API-ключ как переменную окружения для удобства:
Вы можете создавать эмбеддинги, используя официальный Python-пакет voyageai или HTTP-запросы, как описано ниже.
Python-пакет Voyage
Пакет voyageai
можно установить с помощью следующей команды:
Затем вы можете создать объект клиента и начать использовать его для создания эмбеддингов ваших текстов:
result.embeddings
будет списком из двух векторов эмбеддингов, каждый из которых содержит 1024 числа с плавающей точкой.
После выполнения вышеуказанного кода на экране будут напечатаны два эмбеддинга:
При создании эмбеддингов вы можете указать несколько других аргументов для функции embed()
. Вот спецификация:
voyageai.Client.embed(texts : List[str], model : str, input_type : Optional[str] = None, truncation : Optional[bool] = None)
- texts (List[str]) - Список текстов в виде списка строк, например
["I like cats", "I also like dogs"]
. В настоящее время максимальная длина списка составляет 128, а общее количество токенов в списке не более 320K дляvoyage-2
и 120K дляvoyage-large-2
/voyage-code-2
. - model (str) - Название модели. Рекомендуемые варианты:
voyage-2
,voyage-large-2
,voyage-code-2
. - input_type (str, необязательно, по умолчанию
None
) - Тип входного текста. По умолчаниюNone
. Другие варианты:query
,document
- Когда input_type установлен в
None
, входной текст будет напрямую кодироваться моделью эмбеддингов Voyage. Альтернативно, когда входные данные являются документами или запросами, пользователи могут указатьinput_type
какquery
илиdocument
соответственно. В таких случаях Voyage добавит специальный промпт к входному тексту и отправит расширенные входные данные в модель эмбеддингов - Для случаев поиска/извлечения мы рекомендуем указывать этот аргумент при кодировании запросов или документов для улучшения качества поиска. Эмбеддинги, созданные с аргументом
input_type
и без него, совместимы
- Когда input_type установлен в
- truncation (bool, необязательно, по умолчанию
None
) - Следует ли обрезать входные тексты, чтобы они помещались в пределы контекста.- Если
True
, слишком длинные входные тексты будут обрезаны, чтобы поместиться в пределы контекста, прежде чем быть векторизованными моделью эмбеддингов - Если
False
, будет вызвана ошибка, если какой-либо текст превышает длину контекста - Если не указано (по умолчанию
None
), Voyage обрежет входной текст перед отправкой его в модель эмбеддингов, если он немного превышает длину контекстного окна. Если он значительно превышает длину контекстного окна, будет вызвана ошибка
- Если
HTTP API Voyage
Вы также можете получить эмбеддинги, отправив запрос к HTTP API Voyage. Например, вы можете отправить HTTP-запрос через команду curl
в терминале:
Ответ, который вы получите, будет JSON-объектом, содержащим эмбеддинги и использование токенов:
Конечная точка эмбеддингов Voyage AI - https://api.voyageai.com/v1/embeddings
(POST). Заголовок запроса должен содержать API-ключ. Тело запроса - это JSON-объект, содержащий следующие аргументы:
- input (str, List[str]) - Одна текстовая строка или список текстов в виде списка строк. В настоящее время максимальная длина списка составляет 128, а общее количество токенов в списке не более 320K для
voyage-2
и 120K дляvoyage-large-2
/voyage-code-2
. - model (str) - Название модели. Рекомендуемые варианты:
voyage-2
,voyage-large-2
,voyage-code-2
. - input_type (str, необязательно, по умолчанию
None
) - Тип входного текста. По умолчаниюNone
. Другие варианты:query
,document
- truncation (bool, необязательно, по умолчанию
None
) - Следует ли обрезать входные тексты, чтобы они помещались в пределы контекста- Если
True
, слишком длинные входные тексты будут обрезаны, чтобы поместиться в пределы контекста, прежде чем быть векторизованными моделью эмбеддингов - Если
False
, будет вызвана ошибка, если какой-либо текст превышает длину контекста - Если не указано (по умолчанию
None
), Voyage обрежет входной текст перед отправкой его в модель эмбеддингов, если он немного превышает длину контекстного окна. Если он значительно превышает длину контекстного окна, будет вызвана ошибка
- Если
- encoding_format (str, необязательно, по умолчанию
None
) - Формат, в котором кодируются эмбеддинги. Voyage в настоящее время поддерживает два варианта:- Если не указано (по умолчанию
None
): эмбеддинги представлены в виде списков чисел с плавающей точкой "base64"
: эмбеддинги сжаты до кодировок Base64
- Если не указано (по умолчанию
Пример использования эмбеддингов Voyage
Теперь, когда мы знаем, как получить эмбеддинги с помощью Voyage, давайте посмотрим на них в действии на коротком примере.
Предположим, у нас есть небольшой корпус из шести документов для поиска
Сначала мы используем Voyage для преобразования каждого из них в вектор эмбеддинга
Эмбеддинги позволят нам выполнять семантический поиск / извлечение в векторном пространстве. Затем мы можем преобразовать пример запроса,
в эмбеддинг, а затем провести поиск ближайших соседей, чтобы найти наиболее релевантный документ на основе расстояния в пространстве эмбеддингов.
Обратите внимание, что мы используем input_type="document"
и input_type="query"
для создания эмбеддингов документа и запроса соответственно. Более подробную спецификацию можно найти здесь.
Результатом будет 5-й документ, который действительно наиболее релевантен запросу:
Доступные модели Voyage
Voyage рекомендует использовать следующие модели эмбеддингов:
Модель | Длина контекста | Размерность эмбеддинга | Описание |
---|---|---|---|
voyage-large-2 | 16000 | 1536 | Самая мощная универсальная модель эмбеддингов Voyage AI. |
voyage-code-2 | 16000 | 1536 | Оптимизирована для поиска кода (на 17% лучше альтернатив), а также достигает наилучших результатов на универсальных корпусах. Подробности в этом блог-посте Voyage. |
voyage-2 | 4000 | 1024 | Базовая универсальная модель эмбеддингов, оптимизированная как для задержки, так и для качества. |
voyage-lite-02-instruct | 4000 | 1024 | Обучена на инструкциях для задач классификации, кластеризации и определения текстового сходства предложений, которые являются единственными рекомендуемыми случаями использования этой модели. |
voyage-2
и voyage-large-2
- это универсальные модели эмбеддингов, которые достигают передовых результатов во всех областях и сохраняют высокую эффективность. voyage-code-2
оптимизирована для области кода, предлагая в 4 раза большую длину контекста для более гибкого использования, хотя и с относительно более высокой задержкой.
Voyage активно разрабатывает более продвинутые и специализированные модели, а также предлагает услуги по тонкой настройке для создания специальных моделей для отдельных клиентов. Напишите вашему менеджеру по работе с клиентами Anthropic или обратитесь в службу поддержки Anthropic для получения дополнительной информации о специальных моделях.
voyage-finance-2
: скороvoyage-law-2
: скороvoyage-multilingual-2
: скороvoyage-healthcare-2
: скоро
Voyage на AWS Marketplace
Эмбеддинги Voyage также доступны на AWS Marketplace. Вот инструкции по доступу к Voyage на AWS:
- Подпишитесь на пакет модели
- Перейдите на страницу списка пакетов моделей и выберите модель для развертывания
- Нажмите кнопку
Continue to subscribe
- Внимательно просмотрите детали на странице
Subscribe to this software
. Если вы согласны со стандартным Лицензионным соглашением конечного пользователя (EULA), ценообразованием и условиями поддержки, нажмите “Accept Offer” - После выбора
Continue to configuration
и выбора региона вам будет представлен Product Arn. Это ARN пакета модели, необходимый для создания развертываемой модели с помощью Boto3- Скопируйте ARN, соответствующий выбранному региону, и используйте его в следующей ячейке
- Разверните пакет модели
Отсюда создайте пространство JupyterLab в Sagemaker Studio, загрузите блокнот Voyage и следуйте инструкциям внутри.
FAQ
Цены
Посетите страницу с ценами Voyage для получения самой актуальной информации о ценах.