Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
На предыдущих этапах вашего решения для алгоритма дополненной генерации (RAG) вы разделили документы на блоки и обогатили их. На этом шаге вы создаете внедрения для этих блоков и всех полей метаданных, в которых планируется выполнять поиск векторов.
Эта статья является частью серии. Прочитайте введение .
Внедрение — это математическое представление объекта, например текста. При обучении нейронной сети процесс создает множество представлений объекта. Каждое представление имеет подключения к другим объектам в сети. Внедрение важно, так как оно фиксирует семантический смысл объекта.
Представление одного объекта имеет связи с представлениями других объектов, чтобы можно было математически сравнивать объекты. В следующем примере показано, как встраивание фиксирует семантические значения и связи между объектами:
embedding (king) - embedding (man) + embedding (woman) = embedding (queen)
Встраивания сравниваются друг с другом с помощью понятий сходства и расстояния. В следующей таблице показано сравнение встроек.
В решении RAG вы встраиваете запрос пользователя, используя ту же модель встраивания, что и для ваших блоков. Затем вы ищете базу данных для получения соответствующих векторов, чтобы вернуть наиболее семантические блоки. Исходный текст соответствующих блоков передается в языковую модель в качестве данных для привязки контекста.
Заметка
Векторы представляют семантический смысл текста таким образом, что позволяет выполнять математическое сравнение. Необходимо очистить блоки, чтобы математическая близость между векторами точно отражала их семантическую релевантность.
Понимание важности модели внедрения
Выбранная модель внедрения может существенно повлиять на релевантность результатов векторного поиска. Необходимо тщательно рассмотреть словарь модели внедрения. Каждая модель встраивания обучается на основе определенного словаря. Например, размер словаря двунаправленного представления кодировщика из модели преобразователей (BERT) составляет около 30 000 слов.
Словарь эмбеддинговой модели важен, так как он уникальным образом обрабатывает слова, которые не входят в его словарь. Если слово не в словаре модели, оно по-прежнему вычисляет вектор для него. Многие модели разбивают слова на подслова. Они обрабатывают подслова как отдельные токены или объединяют векторы подслов для создания единого векторного представления.
Например, слово гистамин может не находиться в словаре модели встраивания. Слово гистамин понимается как химическое вещество, которое ваше тело выделяет и которое вызывает симптомы аллергии. Модель внедрения не содержит гистамин. Таким образом, он может разделить слово на подслова, которые находятся в его словаре, таких как его, таи мой.
Семантические значения этих субслов далеки от смысла гистамина. Отдельные или объединенные векторные значения вложенных слов приводят к более плохому совпадению векторов по сравнению с тем, было ли слово гистомин в словаре модели.
Выбор модели внедрения
Определите правильную модель внедрения для вашего варианта использования. Учитывайте перекрытие между словарным запасом модели встраивания и словами ваших данных при выборе модели встраивания.
Сначала определите, есть ли у вас содержимое для конкретного домена. Например, документы относятся к конкретному случаю использования, вашей организации или сфере? Хороший способ определить специфику домена — проверить, можно ли найти сущности и ключевые слова в содержимом в Интернете. Если это можете сделать вы, то, вероятно, сможет и общая модель встраивания.
Общее содержимое или недоменное содержимое
При выборе общей модели встраивания начните с рейтинга моделей Hugging Face Leaderboard. Оцените работу моделей с данными и начните с моделей верхнего ранжирования.
Содержимое для конкретного домена
Для содержимого для конкретного домена определите, можно ли использовать модель для конкретного домена. Например, данные могут находиться в биомедиатической области, поэтому вы можете использовать модель BioGPT. Эта языковая модель предварительно обучена на большой коллекции биомедической литературы. Его можно использовать для биомедической добычи текста и создания. Если доступны модели, относящиеся к домену, оцените, как эти модели работают с данными.
Если у вас нет модели для конкретного домена или модель для конкретного домена не работает хорошо, вы можете настроить общую модель эмбеддингов с помощью словаря вашего домена.
Важный
Для любой выбранной модели необходимо убедиться, что лицензия соответствует вашим потребностям и модель обеспечивает необходимую языковую поддержку.
Создание многомодальных внедрения
Внедрение не ограничивается текстом. Вы можете создавать внедрения для текста и других типов мультимедиа, таких как изображения, аудио и видео. Процесс создания эмбеддингов аналогичен для разных модальностей. Загрузите содержимое, передайте его через модель внедрения и сохраните полученный вектор. Но выбор модели и этапов предварительной обработки зависит от типа носителя.
Например, можно использовать такие модели, как контрастное языково-изобразительное предварительное обучение (CLIP) для создания эмбеддингов изображений. Затем можно использовать эмбеддинги для векторного поиска, чтобы получить семантически похожие изображения. Для видео необходимо определить схему, которая извлекает определенные функции, такие как присутствие объектов или сводка по повествованию, и использовать специализированные модели для создания внедрения этих функций.
Подсказка
Используйте схему для определения функций, которые требуется извлечь из многомодального содержимого. Этот подход оптимизирует ваши эмбеддинги для достижения целей поиска.
Используйте уменьшение размерности
Векторы внедрения могут иметь высокую размерность, что повышает затраты на хранение и вычислительные ресурсы. Методы уменьшения размерности помогают сделать внедрение более управляемыми, экономичными и интерпретируемыми.
Для уменьшения количества измерений в векторах можно использовать такие алгоритмы, как t-распределенное стохастическое соседское вложение (t-SNE) или метод главных компонент (PCA). Эти средства доступны в библиотеках, таких как PyTorch и scikit-learn.
Уменьшение размерности может улучшить семантическую ясность и визуализацию. Это также помогает устранить неиспользуемые или шумные функции в плотных внедрениях.
Заметка
Уменьшение размерности — это шаг после обработки. Вы применяете это после создания эмбеддингов для оптимизации производительности хранения и извлечения данных.
Сравнение эмбеддингов
При оценке внедрения можно использовать математические формулы для сравнения векторов. Эти формулы помогают определить, насколько похожи или непохожи два эмбеддинга.
Ниже перечислены распространенные методы сравнения:
- Сходство косинуса: измеряет угол между двумя векторами. Полезно для многомерных данных.
- Евклидеан расстояние: измеряет прямое расстояние между двумя векторами.
- Манхэттен расстояние: измеряет абсолютное различие между векторными компонентами.
- Dot product: измеряет проекцию одного вектора на другой.
Подсказка
Выберите метод сравнения в зависимости от варианта использования. Например, используйте косинусное сходство, если вы хотите измерять семантическую близость, и используйте евклидово расстояние, если требуется измерять физическую близость.
Оценка моделей внедрения
Чтобы оценить модель векторных вложений, следует визуализировать вложения и оценить расстояние между векторами вопросов и фрагментов.
Визуализировать векторные представления
Вы можете использовать библиотеки, такие как t-SNE, для построения векторов для блоков и вашего вопроса на графе X-Y. Затем можно определить, насколько далеко куски находятся друг от друга и от вопроса. На следующем графике показаны векторы фрагментов. Две стрелки рядом друг с другом представляют два вектора сегментов. Другая стрелка представляет вектор вопроса. Эту визуализацию можно использовать для того, чтобы понять, насколько далеко вопрос находится от фрагментов.
Две стрелки указывают на точки на графике, расположенные вблизи друг от друга, а другая стрелка показывает точку на графике, находящуюся далеко от этих двух.
Вычисление расстояний внедрения
Вы можете использовать программный метод для оценки того, насколько хорошо работает модель внедрения с вашими вопросами и блоками. Вычислите расстояние между векторами вопросов и векторами блоков. Вы можете использовать расстояние Евклидеана или манхэттенское расстояние.
Оценка моделей встраивания на основе эффективности извлечения
Чтобы выбрать лучшую модель внедрения, оцените, насколько хорошо она выполняется в сценариях извлечения. Внедрение содержимого, выполнение векторного поиска и оценка того, извлекаются ли правильные элементы.
Вы можете экспериментировать с различными моделями, формулами сравнения и параметрами размерности. Используйте метрики оценки, чтобы определить, какая модель обеспечивает наилучшие результаты для вашего варианта использования.
Важный
Производительность извлечения является наиболее практическим способом оценки качества внедрения. Используйте реальные запросы и содержимое для тестирования моделей.
Тонкая настройка моделей встраивания
Если общая модель или модель, относящейся к домену, не соответствует вашим потребностям, вы можете настроить ее с помощью собственных данных. Тонкая настройка корректирует веса модели для более точного представления вашего словаря и семантики.
Тонкая настройка может повысить точность извлечения, особенно для специализированных областей, таких как поиск по коду или работа с юридическими документами. Но для этого требуется тщательная оценка и иногда может снизить производительность, если данные обучения являются плохими.
Современные методы, такие как однобитное обучение с подкреплением (RL), делают процесс вашей точной настройки более экономичным.
Подсказка
Перед точной настройкой модели определите, может ли разработка запросов или ограниченное декодирование решить вашу проблему. Используйте метрики оценки и производительность извлечения для точной настройки.
** Использование рейтинговой таблицы Hugging Face
На таблице лидеров Hugging Face представлены актуальные рейтинги моделей встраивания. Используйте его для определения наиболее высокопроизводительных моделей для вашего варианта использования.
При просмотре моделей рассмотрите следующие возможности:
- Токены: Размер словаря модели.
- Память: Размер и стоимость вывода модели.
- Размеры: Размер векторов выходных данных.
Заметка
Более крупные модели не всегда лучше. Они могут увеличить затраты, не повышая производительность. Используйте уменьшение размерности и оценку извлечения, чтобы найти правильный баланс.
Общие сведения об экономике внедрения
При выборе модели внедрения необходимо найти компромисс между производительностью и затратами. Большие модели внедрения обычно имеют более высокую производительность при тестировании наборов данных. Но, увеличение производительности добавляет затраты. Для больших векторов требуется больше места в базе данных векторов. Кроме того, им требуется больше вычислительных ресурсов и времени для сравнения эмбеддингов. Небольшие модели внедрения обычно имеют более низкую производительность в одних и том же тестах. Они требуют меньше места в векторной базе данных и меньше вычислительных ресурсов и времени для сравнения внедрения.
При разработке системы следует учитывать затраты на внедрение с точки зрения хранения, вычислений и производительности. Необходимо проверить производительность моделей с помощью экспериментирования. Общедоступные тесты часто являются академическими наборами данных и могут не применяться непосредственно к бизнес-данным и вариантам использования. В зависимости от требований вы можете использовать производительность по сравнению с затратами или принять компромисс с достаточной производительностью за более низкую стоимость.