Теперь, когда вы разбили документы на блоки и обогатили блоки, следующим шагом является создание внедрения для этих блоков и всех полей метаданных, по которым планируется выполнять векторные поиски. Внедрение — это математическое представление объекта, например текста. При обучении нейронной сети создается множество представлений объекта, и каждое представление имеет подключения к другим объектам в сети. Внедрение является одним из представлений выбранного объекта, так как он захватывает семантический смысл объекта.
Поскольку внедрение является математическим представлением этого объекта, и это представление имеет связи с представлениями других объектов, вы можете сравнить объекты математически. Известный пример, показывающий, как внедрение фиксирует семантические значения и связи между собой:
embedding("king") - embedding("man") + embedding("женщина") ≈ внедрения ("королева")
Внедрение сравнивается друг с другом с помощью понятий сходства и расстояния. На следующей схеме показано, как можно сравнить внедрение.
Рисунок 1. Сравнение внедрения
В решении получения дополненного поколения (RAG) часто внедряете запрос пользователя с помощью той же модели внедрения, что и блоки и поиск соответствующих векторов из базы данных, чтобы вернуть наиболее семантические блоки. Затем исходный текст соответствующих блоков передается в большую языковую модель в качестве данных о заземления.
Примечание.
Эта функция векторов подчеркивает важность очистки блоков, чтобы математические близости можно было отслеживать более тесно с семантической релевантности.
Этот материал входит в цикл статей. Ознакомьтесь с введением.
Важность модели внедрения
Выбранная модель внедрения может оказать значительное влияние на релевантность результатов векторного поиска. Одним из ключевых факторов, которые необходимо учитывать при выборе модели внедрения, является словарь модели. Каждая модель внедрения обучена определенным словарем. Например, размер словаря BERT составляет около 30 000 слов.
Словарь модели внедрения важен из-за того, как модели внедрения обрабатывают слова, которые не являются в их словаре. Несмотря на то, что слово не в его словаре, модель по-прежнему должна вычислить вектор для него. Для этого многие модели разбивают слова на вложенные слова, которые они рассматривают как отдельные маркеры или объединяют векторы для вложенных слов, чтобы создать одно внедрение.
Рисунок 2. Разбиение неизвестного слова на вложенные слова
Давайте рассмотрим вымышленный пример, где слово "гистомин" не находится в словаре модели внедрения. "Гистомин" имеет семантический смысл, как химический ваш организм освобождает, что приводит к многим симптомам аллергии. Так как модель внедрения не содержит "гистомина", она может разбить его на вложенные слова, которые находятся в его словаре, таких как "его", "ta" и "моя". Семантические значения этих подсловий нигде не близки к значению "гистомина". Отдельные или агрегированные векторные значения вложенных слов создают худшие векторные совпадения, чем если бы "гистомин" был в словаре модели.
Выбор модели внедрения
Определение правильной модели внедрения для вашего варианта использования — это человеческая деятельность. Перекрытие словаря модели внедрения с словами данных должно быть ключевым фактором при выборе модели внедрения.
Рисунок 3. Выбор потока модели внедрения
Первое, что необходимо определить, является ли содержимое конкретным доменом. Например, ваши документы относятся к варианту использования, вашей организации или отрасли? Хороший способ определить специфику домена — узнать, доступны ли сущности и ключевое слово в вашем содержимом общедоступны или доступны для поиска в Интернете. Если они есть, скорее всего, общая модель внедрения делает.
Общее или недоменое содержимое
Когда вы выбираете общую модель внедрения, хорошее место для начала — это список лидеров hugging Face. Этот сайт предоставляет актуальное ранжирование моделей внедрения. Оцените, как модели работают с данными, начиная с моделей верхнего ранжирования.
Содержимое, связанное с доменами
Для содержимого, относящееся к домену, сначала необходимо определить, доступна ли модель, доступная для конкретного домена. Представьте себе, например, что данные находится в биография medical домене. Следует рассмотреть возможность использования модели BioGPT, которая является языковой моделью, предварительно обученной на большом корпусе биография медиатической литературы. Эта модель предназначена для биография medical text mining and generation. Если доступны модели предметных областей, начните с оценки работы этих моделей с данными.
Если нет доступных моделей, относящихся к домену, или модели, относящиеся к домену, не выполняются хорошо, следующим вариантом является настройка общей модели внедрения с помощью словаря конкретного домена.
Внимание
Для любой выбранной модели необходимо убедиться, что лицензия подходит для ваших потребностей, и модель обеспечивает необходимую языковую поддержку.
Оценка моделей внедрения
Двумя эффективными средствами оценки модели внедрения являются визуализация внедрения и оценка расстояния между вопросом и векторами фрагментов.
Визуализация внедрения
Вы можете использовать библиотеки, такие как t-SNE, для построения векторов для блоков и вашего вопроса на графе X-Y. Затем можно определить, насколько далеко друг от друга куски находятся друг от друга и вопрос. На рисунке показаны векторы фрагментов. Две стрелки рядом друг с другом представляют два вектора блоков, а другая стрелка представляет вектор вопроса. Эту визуализацию можно использовать для понимания того, насколько далеко вопрос находится от блоков.
Рисунок 4. График внедрения
Вычисление расстояний внедрения
Программным средством оценки того, насколько хорошо работает модель внедрения с вашими вопросами и блоками, является вычисление расстояния между векторами вопросов и векторами блоков. Вы можете использовать расстояние Евклидеана или манхэттенское расстояние.
Внедрение экономики
При выборе модели внедрения существует компромисс между производительностью и затратами. Более крупные модели внедрения обычно имеют более высокую производительность при тестировании наборов данных. Тем не менее, повышение производительности приходится на стоимость. Для больших векторов требуется больше места для хранения в векторной базы данных и требуются дополнительные вычислительные ресурсы и время при сравнении внедрения. Более мелкие модели внедрения обычно имеют более низкую производительность в одних и том же тестах. Для них требуется меньше места в векторной базе данных и требуется меньше вычислительных ресурсов и времени при сравнении внедрения.
При разработке системы следует учитывать затраты на внедрение с точки зрения хранения, вычислений и требований к производительности. Проверка производительности моделей с помощью экспериментов имеет решающее значение. Общедоступные тесты являются главным образом академическими наборами данных. Большинство результатов нельзя напрямую транспонировать в бизнес-данные и варианты использования. В зависимости от требований вы можете использовать производительность по сравнению с затратами или принять компромисс с достаточной производительностью в обмен на более низкую стоимость.