Серия статей о построении точной большой языковой модели для нейронного поиска с нуля. Мы начнем с BERT и преобразователей предложений, пройдемся по тестам семантического поиска, таким как BEIR, современным моделям, таким как SGPT и E5, и закончим построением нашей игрушечной модели встраивания.
Проблема с семантическим поиском
Базовый дизайн системы семантического поиска, предложенный большинством поставщиков векторного поиска, состоит из двух простых (это ирония судьбы)шагов:
- Вычислите вложения для ваших документов и запросов. Где-то. Как-то. Разберитесь сами.
- Загрузите их в векторный поисковик и наслаждайтесь более качественным семантическим поиском.
Ваш семантический поиск так же хорош, как и ваша модель внедрения, но выбор модели часто считается невозможным для большинства первых пользователей. Так что все просто берут фразу трансформеры/все-MiniLM-L6-v2 и надеются на лучшее.
Но у этого подхода больше открытых вопросов, чем ответов:
- Есть ли разница между встроенными моделями? Платные модели от OpenAI и Cohere лучше?
- Как они справляются с несколькими языками? Есть ли преимущество в больших моделях 1B+?
- Плотный поиск с использованием вложений — один из многих методов семантического поиска. Лучше ли это разреженных подходов нового века, таких как SPLADEv2 и ELSER?
Кроличья нора вложений
В этой серии из 5 статей мы сосредоточимся на выборе и создании надеюсь лучшей модели внедрения семантического поиска. Текущий план:
- (тот, который вы сейчас читаете) Введение во встраивание моделей. Базовые вложения, такие как BERT, MiniLM, DeBERTaV3 и семейство GPT-*. Как вы можете оценить качество встраивания с помощью теста BEIR? Текущие победители BEIR и их плюсы и минусы.
- Разбор преобразователей предложений/все-MiniLM-L6-v2. Почему МиниЛМ, а не БЕРТ? Процесс обучения, набор данных 1B пар предложений и то, как такая крошечная и древняя модель может быть настолько хороша в тесте BEIR.
- Выход за пределы MiniLM-L6-v2 с Microsoft/E5. Объединение всех последних достижений LLM в единую модель семантического поиска: шумоподавление набора данных, асимметричное встраивание и дополнительная тонкая настройка IR. Можно ли его еще улучшить?
- Самостоятельные встраивания, нулевая модель metarank-v0. Объединение всех сильных сторон MiniLM и E5 в одной модели с дополнительным секретным соусом. Подготовка данных для шумоподавления и обучения. Можем ли мы установить и обучить его на одной RTX 4090?
- Самостоятельные встраивания, тонкая настройка модели метаранга v1: E5 точно настроен на MS MARCO+SNLI. Можем ли мы тогда точно настроить полный набор BEIR? Можем ли мы сделать его многоязычным?
Трансформер: дедушка всех LLM
Первоначальную архитектуру Transformer можно рассматривать как черный ящик, который преобразует входной текст в выходной текст. Но нейронные сети не понимают тексты как таковые; они говорят только числа — и все внутренние преобразования являются числовыми.
Трансформатор состоит из двух основных блоков:
- Кодировщик: ввод текста в числовой форме и создание встроенного представления семантического значения ввода.
- Декодер: обратный процесс, встраивание и прогнозирование следующего текстового маркера.
Таким образом, посередине между кодировщиком и декодером находится встроенное представление ввода. И ввод, и встраивание являются числовыми векторами, но между ними все же есть существенная разница:
- Входные векторы — это просто последовательность идентификаторов терминов из предопределенного словаря (для BERT размер словаря составляет 32 КБ), дополненная до фиксированной длины.
- Вектор встраивания является внутренним представлением входных данных. Так сеть видит ваш ввод. И вы можете ожидать, что аналогичные документы будут иметь аналогичные внутренние представления.
Через пару лет появилось яркое семейство различных моделей обработки текста на основе трансформеров с двумя основными отдельными ветвями:
- Подобно BERT, только с использованием энкодера преобразователя. Хорош в классификации, обобщении и распознавании сущностей.
- Семейство GPT, только декодер. Хорошо справляется с генеративными задачами, такими как перевод и контроль качества.
На изображении выше вы можете увидеть разделение между подсемействами моделей BERT и GPT. Традиционно потомки BERT чаще всего используются в области семантического поиска.
Модель БЕРТ
Модель BERT хорошо подходит для нашей задачи семантического поиска, поскольку ее можно свести к задаче бинарной классификации релевантных и нерелевантных документов для конкретного запроса.
Но вложения BERT изначально не предназначены для семантического сходства: модель была обучена предсказывать замаскированное слово в большом текстовом корпусе. Тот факт, что похожие тексты имеют похожие вложения, является приятным самовозникающим побочным эффектом.
Но «изначально не предназначено для семантического сходства» — это всего лишь мнение. Есть ли способ объективно измерить, насколько это хорошо или плохо в эталонном наборе данных?
Бенчмарк BEIR
В академической статье BEIR: Гетерогенный тест для нулевой оценки моделей информационного поиска предложен справочный набор тестов и наборов данных для методов IR. И сделал борьбу за качество модели менее приятной: теперь есть единая таблица лидеров для сравнения вашей модели встраивания с конкурентами.
Бенчмарк BEIR предлагает набор из 19 разнообразных наборов данных IR и весь механизм для оценки качества поиска.
В оригинальной статье также проводится сравнение нескольких базовых методов для всего набора наборов данных. Главный вывод, сделанный в 2021 году, заключается в том, что BM25 — крепкий орешек и надежный базовый показатель.
Позже BEIR был объединен с еще более обширным набором тестов: MTEB, Massive Text Embedding Benchmark. Запустить его довольно просто (при наличии 128 ГБ ОЗУ, современного графического процессора и 8 часов свободного времени):
Вернемся к тезису сырые вложения BERT не для семантического поиска. Если мы запустим bert-base-uncased бок о бок с топовыми моделями преобразования предложений all-MiniLM-L6-v2 и all-mpnet-base-v2по тесту BEIR/MTEB мы увидим следующие цифры:
Из этой таблицы мы можем сделать два очевидных вывода:
- Исходные необработанные вложения BERT предназначены для предсказания следующего слова и никогда не предназначались для семантического поиска и сходства документов. Теперь вы можете понять, почему.
- BM25 по-прежнему является надежной базой — даже массивная модель MPNET, настроенная на семантическое сходство, не может постоянно превосходить ее.
Но почему похожие модели встраивания так сильно отличаются в задачах семантического поиска?
Таблица лидеров
Текущая (на июнь 2023 года) таблица лидеров MTEB/BEIR выглядит пестрящей малоизвестными именами:
Мы можем резюмировать современное состояние семантического поиска следующим образом:
- Модели SBERT (all-MiniLM-L6-v2, all-MiniLM-L12-v2 и all-mpnet-base-v2) обеспечивают хороший баланс между простотой и качеством ранжирования.
- SGPT (5,8 млрд, 2,7 млрд, 1,3 млрд) — это недавняя версия доработанной LoRa модели GPT-NeoX с открытым исходным кодом для ранжирования.
- GTR-T5 — это модель встраивания Google с открытым исходным кодом для семантического поиска, использующая T5 LLM в качестве основы.
- E5 (v1 и v2) — новейшая модель встраивания от Microsoft.
Мы можем рассматривать эти четыре модельных семейства через призму двух философий построения моделей семантического поиска:
- Производительность. Чем меньше модель, тем ниже задержка поиска и выше скорость индексации. Огромные модели SGPT и GTR могут работать только на дорогих графических процессорах.
- Размер. Чем больше параметров в модели, тем лучше качество поиска. all-MiniLM-L6-v2 — фантастическая модель, но она слишком мала, чтобы уловить все семантические различия в поиске с ее 10 миллионами параметров.
Поиск баланса между размером и производительностью имеет решающее значение для создания отличной модели встраивания.
Вложения против разреженного поиска
Вложения — это один из многих способов поиска. Старый добрый BM25 по-прежнему является надежной базой, и есть пара новых «разреженных» методов поиска, таких как SPLADEv2 и ColBERT, сочетающих сильные стороны поиска по терминам и нейронных сетей.
В таблице ниже мы попытались собрать все общедоступные оценки BEIR из следующих источников:
- Репозиторий результатов MTEB содержит все необработанные результаты, используемые в таблице лидеров. Он также включает оценки для коммерческих вложений OpenAI, включая новейшую модель ada-2.
- Препринты ArXiv для статей ColBERT, SPLADEv2 и BEIR.
- Сообщения в блогах поставщиков о реализации ColBERT от Vespa и ELSER от Elastic.
Если вы сравните эту таблицу с таблицей BEIR, опубликованной всего два года назад, вы можете заметить, что BM25 считался надежным базовым уровнем, но BM25 больше не является явным победителем в 2023 году.
Другое наблюдение заключается в том, что разреженные (например, ELSER и SPLADEv2) и плотные (E5) методы поиска довольно близки по качеству. Таким образом, в этой области нет явного победителя, но видеть такую большую конкуренцию — это здорово.
Личное мнение автора о дебатах о разреженных и плотных методах поиска:
- Плотное извлечение более перспективно. Обновление с SBERT до E5 — это 10 строк кода, что приводит к значительному улучшению качества поиска. И ваша система векторного поиска остается прежней, никаких дополнительных инженерных работ не требуется.
- Разреженный поиск вызывает меньше галлюцинаций и может обрабатывать точные совпадения и совпадения ключевых слов. И NDCG@10 — не единственная мера качества поиска.
Но дебаты все еще продолжаются, и мы будем держать вас в курсе последних обновлений.
Скрытая стоимость больших моделей
Существует расхожее мнение, что чем больше модель, тем лучше ее поисковое качество. Это хорошо видно из таблицы лидеров MTEB, но в ней отсутствует важная и практическая характеристика того, насколько просто и дешево обслуживать эти модели.
На практике вам нужно запустить модель встраивания дважды:
- Офлайн на этапе индексации. Это пакетное задание, требующее высокой пропускной способности, но не чувствительное к задержкам.
- Онлайн для встраивания поискового запроса в каждый поисковый запрос.
Небольшие модели, такие как SBERT и E5, могут быть легко запущены на ЦП с разумным бюджетом задержки, но если вы превысите 500 миллионов параметров (как в случае с SGPT), вы не сможете избежать использования графического процессора. А графические процессоры сейчас дорогие.
Чтобы увидеть реальные цифры задержки, мы сделали небольшой тест на основе JMH для вывода ONNX, доступный на https://github.com/shuttie/embed-benchmark.
Как видно из таблицы:
- Существует линейная зависимость между количеством параметров и задержкой как на ЦП, так и на ГП. Большие модели, такие как SGPT-1.3B, должны иметь расчетную задержку 200 мс для коротких запросов из 4 слов, что часто слишком много для рабочих нагрузок, ориентированных на клиента.
- Существует компромисс между задержкой/стоимостью/качеством. Ваш семантический поиск быстрый, дешевый, точный — выберите любые два.
Es gibt nicht nur English
Мир говорит не только на английском языке, но большинство моделей и оценочных фреймворков ориентированы только на английский язык:
- исходный словарь BERT обучается в основном на данных английского языка и довольно слаб на других языках.
- почти все модели встраивания обучаются на англоязычных корпусах текстов, поэтому все они немного смещены в его сторону.
Вот что произойдет, если вы загрузите токенизатор BERT текстом, отличным от английского:
Токенизатор BERT не мог правильно обрабатывать немецкие слова как отдельные токены и должен был разделить их на подслова. Для сравнения, многоязычный токенизатор XLM гораздо лучше обрабатывал одно и то же предложение.
К счастью, большинство моделей, упомянутых в этой статье, имеют многоязычные версии:
- E5: multilingual-e5-base, которая представляет собой выровненную версию многоязычной XLM-базы Roberta.
- SGPT: sgpt-bloom, основанный на модели BLOOM.
- SBERT: multilingual-MiniLM-L12-v2 на основе mUSE.
Эти модели создаются в процессе дистилляции знаний, поэтому для них не требуется специальный обучающий набор данных с похожими предложениями на нескольких языках.
Следующая глава
Подводя итог, вот основные выводы из этого эпизода:
- BM25 не так просто превзойти по качеству поиска. Учитывая, что он не требует настройки и вы можете создать кластер Elasticsearch/OpenSearch за 3 минуты, в 2023 году на него все еще можно рассчитывать.
- В последнее время происходит много разработок в области поиска как в разреженных, так и в плотных мирах. SGPT и E5 младше 1 года, а SPLADE и ELSER еще моложе.
- Нет единого победителя между разреженными и плотными подходами, но индустрия IR объединилась в единый инструмент сравнительного анализа для измерения качества поиска с пакетом MTEB/BEIR.
Так как это первая статья в серии, в следующем выпуске мы разберем пресловутую модель all-MiniLM-L6-v2:
- Что такое MiniLM и почему бы просто не взять BERT за базовую модель?
- Тренировочный процесс: что такое контрастное обучение и пакетные негативы?
- Является ли 1B обучающих пар слишком много или слишком мало для модели встраивания производственного уровня?
- Каковы наиболее очевидные недостатки этой модели и как их можно исправить?