Используем LLaMA 2 для обогащения поискового индекса и систем Q&A

Часто в исходном тексте некоторый объём полезной информации закодирован через местоимения, аббревиатуры, неполное написание и прочие логические, семантические, синтаксические связи. Человеку это понятно, а вот у машин возникают трудности.

Благодаря появлению больших языковых моделей есть техническая возможность распаковывать информацию "из коробки" без каких-либо дополнительных обучений моделей и сборки новых датасетов.

Используем LLaMA 2 для обогащения поискового индекса и систем Q&A

Публичная модель GPT3.5, доступная через платный API, локальная условно-бесплатная LLama 2 и другие LLM-модели позволяют существенно обогатить исходный текст, расширить метаданные к нему. Это может быть полезно для повышения релевантности, как в случае с полнотекстовым поиском по ключевым словам, так и для семантического поиска. В конечном счете это упрощает понимание текста и для самих моделей LLM для использования в Question Answering. Особенно для тех, что будут с меньшим числом параметров.

Далее мы рассмотрим несколько методов обогащения 1) личные местоимения, 2) аббревиатуры, 3) имена и фамилии, 4) составляем вопросы 5) выделяем ключевые слова

1. Личные местоимения - он, она, его, ее, ему

Исходный текст:

В рамках расширения линейки видеокарт было представлено сразу семь новых устройств, одним из которых оказалась NVIDIA RTX A5500. Она примечательна тем, что выступает сразу в двух вариантах — для мобильных и стационарных платформ. В ее стационарную версию поместили 24 ГБ видеопамяти GDDR6.

По смыслу ключевой объект NVIDIA RTX A5500 здесь упоминается 3 раза: сначала полное написание, во второй раз через местоимение "она", третий через "ее". Любая поисковая система воспримет только 1 упоминание объекта в тексте.

Решение

Чтобы повысить релевантность поиска необходимо все местоимения переписать на полное наименование объекта.

Быстрый способ протестировать гипотезу о том, что потенциально может языковая модель, это отправить задачу в GPT4 и GPT3.5 API, их ответы дадут понимание, что можно ожидать от LLM и каким образом будет работать промпт.

Cпросим LLM.

Замени все личные местоимения на полное наименование в тексте

Openai GPT4 через чат-бота генерирует правильный ответ

Помимо названия объекта модель добавила еще и "видеокарта", что обогащает дальнейшие предложения.

В рамках расширения линейки видеокарт было представлено сразу семь новых устройств, одним из которых оказалась видеокарта NVIDIA RTX A5500. Видеокарта NVIDIA RTX A5500 примечательна тем, что выступает сразу в двух вариантах — для мобильных и стационарных платформ. В стационарную версию видеокарты NVIDIA RTX A5500 поместили 24 ГБ видеопамяти GDDR6.

Openai GPT3.5 API не понимает "все личные местоимения"

Просим по-другому:

Замени все "он", "она", "ее", "его" на полное наименование объекта в тексте.

Результат:

В рамках расширения линейки видеокарт было представлено сразу семь новых устройств, одним из которых оказалась видеокарта NVIDIA RTX A5500. Видеокарта NVIDIA RTX A5500 примечательна тем, что выступает сразу в двух вариантах — для мобильных и стационарных платформ. В стационарную версию видеокарты NVIDIA RTX A5500 поместили 24 ГБ видеопамяти GDDR6.

Время выполнения - 19 секунд.

LLAMA2 13B

OpenAssistant/llama2-13b-orca-8k-3319 не понимает промпты Openai.

Предыдущие промпты в любом случае подходят для обработки не очень большого объема текстов, ибо очень дорогие по времени исполнения из-за того, что модель генерирует весь текст с заменами заново, формулируя и склоняя по правилам языка.

Необходимо:

  • Предварительно анализировать текст методами языка программирования - находим в тексте местоимения. Главное чтобы не было повторяющихся местоимений в одном запросе.
  • По каждому местоимению отправляем запрос в LLM модель
  • Замены местоимений на наименования в тексте делать языком программирования через строковые функции.

Это будет гораздо быстрее и дешевле, потому что модель будет генерировать длину токена равную лишь наименованию объекта. Однако может потребуется цикл многоэтапной замены предложения за предложением. Каждая итерация работает сразу с ближайшими предложениями. Ниже приведен простой пример, когда блок текста уже известен и найдено два местоимения "она" и "ее".

1. Просим сначала расшифровку для "она":
Укажи только наименование объекта, к которому относится "она"?

NVIDIA RTX A5500

Время выполнения - 1.2 с.

2. Теперь для "ее":

Укажи только наименование объекта, к которому относится "ее"?

NVIDIA RTX A5500

Время выполнения - 1.2 с.

3. Обогатим текст еще больше и спросим, что это вообще такое:

Определи тип объекта NVIDIA RTX A5500.

Объект NVIDIA RTX A5500 - это видеокарта.

Время выполнения - 1.6 с.

Можно протестировать шаблоны вывода на разных текстах и парсить тип объекта. Нужно быть осторожным, ибо модель по одному и тому же промпту может выдавать ответ в разной форме.

Далее нужно сделать простую замену местоимений в тексте на "видеокарта NVIDIA RTX A5500".

Минус такого подхода по сравнению с OpenAI в том, что окончания могут не соответствовать. Но поскольку мы делаем текст в первую очередь для машины - окончания не сильно важны.

Если же хочется читабельного текста, то можно попробовать перефразировать по предложениям. Поскольку уже знаем в каком предложении какое местоимение ссылается на объект. Можно явно указать:

В ее стационарную версию поместили 24 ГБ видеопамяти GDDR6.

Перефразируй предложение - "ее" замени на "видеокарта NVIDIA RTX A5500".

В стационарную версию видеокарты NVIDIA RTX A5500 поместили 24 ГБ видеопамяти GDDR6.

Время выполнения - 2.3 c.

Итого мы получили такой же результат как GPT3.5.

2. Расшифровываем аббревиатуры

Подход такой же как с местоимениями. В текстах могут однажды указать значение сокращений и далее по всем тексту только их и использовать. Это существенно снижает релевантность в поиске.

Исходный текст

Neurological disorders (ND) are some diseases of the central nervous system with progressive loss of nervous tissue. The lack of regeneration after severe damage to the neurons is the most important point and reason for these diseases. According to the GBD (Global Burden of Disease) 2015 collaborative group on neurological disorders, the incidence rate of ND is associated with some criteria, including cash flow and per capita income, education, and fertility of each country. The GBD study offers a powerful resource to understand the changing health challenges facing people across the world in the 21st century.

Openai GPT3.5 API справился

Замени все аббревиатуры полным написанием в тексте.

Neurological disorders (ND) are some diseases of the central nervous system with progressive loss of nervous tissue. The lack of regeneration after severe damage to the neurons is the most important point and reason for these diseases. According to the Global Burden of Disease (GBD) 2015 collaborative group on neurological disorders, the incidence rate of neurological disorders is associated with some criteria, including cash flow and per capita income, education, and fertility of each country. The Global Burden of Disease study offers a powerful resource to understand the changing health challenges facing people across the world in the 21st century.

Время - 15 с.

LLAMA2 13B

OpenAssistant/llama2-13b-orca-8k-3319 не понимает промпты Openai.

Любопытно, что если спросить

Show all abbreviations:
GBD.

Покажи все сокращения в тексте:
GBD (Global Burden of Disease)

Часто замечал, что на русском языке модели по-другому реагирует, иногда даже более четко понимают, что от нее требуется.

Как видим все сокращения модель не выдала. Возможно можно как-то сформулировать по-другому промпт. Но возможно проще через регулярные выражения найти все сокращения.

Чтобы исправить предложения можно также сделать замену через строковые функции или попросить LLM:
According to the GBD (Global Burden of Disease) 2015 collaborative group on neurological disorders, the incidence rate of ND is associated with some criteria, including cash flow and per capita income, education, and fertility of each country.
переформулируй текст вместо сокращения ND напиши neurological disorders

According to the GBD (Global Burden of Disease) 2015 collaborative group on neurological disorders, the incidence rate of neurological disorders is associated with some criteria, including cash flow and per capita income, education, and fertility of each country

3. Используем полные имена людей

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

Исходный текст

До своего назначения на пост руководителя Лос-Аламосской лаборатории в июне 1942 г. Роберт Оппенгеймер имел связи с левыми организациями, от которых затем отошел. Однако вследствие того, что проверка лояльности сотрудников Манхэттенского проекта простиралась вплоть до событий их детства, за ним была установлена тщательная слежка. Каждый шаг Оппенгеймера, как свидетельствует полковник Б. Паш, был известен агентам манхэттенской службы безопасности, каждое письмо прочитано, каждый телефонный разговор подслушан, каждая встреча проверена и изучена. В результате на Роберта был собран компрометирующий материал. Гровс, чувствуя, что Оппенгеймера заменить невозможно, вызвал его к себе и демонстративно положил этот материал под сукно, чтобы заслужить полное доверие и благодарность ученого.

Openai GPT3.5 API справился

Замени все имена и фамилии полным именем и фамилией персоны в тексте.

До своего назначения на пост руководителя Лос-Аламосской лаборатории в июне 1942 г. Роберт Оппенгеймер имел связи с левыми организациями, от которых затем отошел. Однако вследствие того, что проверка лояльности сотрудников Манхэттенского проекта простиралась вплоть до событий их детства, за ним была установлена тщательная слежка. Каждый шаг Роберта Оппенгеймера, как свидетельствует полковник Б. Паш, был известен агентам манхэттенской службы безопасности, каждое письмо прочитано, каждый телефонный разговор подслушан, каждая встреча проверена и изучена. В результате на Роберта Оппенгеймера был собран компрометирующий материал. Гровс, чувствуя, что Роберта Оппенгеймера заменить невозможно, вызвал его к себе и демонстративно положил этот материал под сукно, чтобы заслужить полное доверие и благодарность ученого.

Время - 59 с.

Исходный текст содержит полное имя только для Оппенгейера, но не содержит имена Гровса и Паш. Предполагается, что они упоминались ранее в тексте, и мы их сохранили уже в словарь. Поэтому после первого шага сделаем обработку со словарем. Этот процесс всегда многоэтапный, поскольку тексты могут быть очень большими и разбиваются на части. Придется делать несколько проходов.

Замени все имена и фамилии полным именем и фамилией персоны в тексте. Используй также словарь: Лесли Гровс, Борис Паш.

До своего назначения на пост руководителя Лос-Аламосской лаборатории в июне 1942 г. Роберт Оппенгеймер имел связи с левыми организациями, от которых затем отошел. Однако вследствие того, что проверка лояльности сотрудников Манхэттенского проекта простиралась вплоть до событий их детства, за ним была установлена тщательная слежка. Каждый шаг Роберта Оппенгеймера, как свидетельствует полковник Борис Паш, был известен агентам манхэттенской службы безопасности, каждое письмо прочитано, каждый телефонный разговор подслушан, каждая встреча проверена и изучена. В результате на Роберта Оппенгеймера был собран компрометирующий материал. Лесли Гровс, чувствуя, что Роберта Оппенгеймера заменить невозможно, вызвал его к себе и демонстративно положил этот материал под сукно, чтобы заслужить полное доверие и благодарность ученого.

Время - 53 с

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

LLAMA2 13B

OpenAssistant/llama2-13b-orca-8k-3319 не понимает эти промпты Openai.

Сначала составим список имен через NER или спросим модель:

Составь список имен.

Роберт Оппенгеймер, Гровс, Б. Паш

Обычный NER выдал бы отдельно фамилии и имена. Далее нам необходимо по каждому предложению, где есть искомое сделать обработку строковыми функциями или формулировку через LLM.

В результате на Роберта был собран компрометирующий материал.

переформулируй текст вместо имени Роберт напиши полное имя Роберт Оппенгеймер

В результате на Роберта Оппенгеймера был собран компрометирующий материал.

Потом соединяем все обработки и на выходе получим тот же текст как и с GPT3.5

4. Составляем вопросы

Модели LLM умеют составлять вопросы к тексту, что также полезно, поскольку формулировка вопроса может существенно отличается от написанного текста. Правда не все составленные вопросы будут полезны, что создаст дополнительные издержки по хранению лишних вопросов.

  • Логично этот этап делать после всех прочих расшифровок в тексте, это позволит более полно формулировать вопросы. Но это необязательно.
  • Чтобы получить все варианты вопросов, лучше запрашивать формулировки на небольших абзацах, наборе из нескольких предложений. Либо указывать составь Х вопросов, где Х заметно больше чем объем текста.
  • Чтобы сформулировать главные вопросы полезно запрашивать через большой блок текста.

Исходный текст:

Китайская корпорация Huawei запустила новый бренд дорогих смартфонов. Об этом сообщает издание GizmoChina.

На мероприятии в Китае руководители компании рассказали, что бренд Ultimate Design будет объединять самые продвинутые и роскошные смартфоны и аксессуары к ним. «Ultimate Design воплощает собой вершину эстетики, мастерства и инноваций», — отметили в корпорации.

Первым гаджетом новой линейки смартфонов оказался Huawei Mate 60 RS Ultimate Design. Представленный аппарат получил 6,82-дюймовый OLED-дисплей, 16 гигабайт оперативной и 1 терабайт встроенной памяти, тройную камеру с объективами разрешением 48, 48 и 40 мегапикселей, вписанными в восьмиугольник.

Журналисты издания отметили, что раньше Huawei выпускала премиальные смартфоны под брендом Porsche Design. Одной из причин отказа от прежней марки и запуска новой специалисты назвали нежелание китайского IT-гиганта платить лицензионные сборы немецкой корпорации Porsche. В материале говорится, что Huawei рационально решила проблему, сократив расходы и создав отдельный бренд.

В конце сентября руководитель китайской компании Honor Чжао Мин прокомментировал слухи о воссоединении с Huawei. По словам предпринимателя, объединение двух компаний «абсолютно невозможно».

GPT3.5 API

Если запросить на весь текст, то получим список самых главных вопросов.

Составь полный список вопросов

1. Какую новую линейку смартфонов запустила китайская корпорация Huawei?

2. Что объединяет бренд Ultimate Design?

3. Какие характеристики имеет первый смартфон новой линейки Huawei Mate 60 RS Ultimate Design?

4. Почему Huawei отказалась от бренда Porsche Design?

5. Какой проблемой рационально решила Huawei, создав отдельный бренд?

6. Что заявил руководитель компании Honor о слухах о воссоединении с Huawei?

Дополнительные вопросы лучше запросить по куску текста:

Первым гаджетом новой линейки смартфонов оказался Huawei Mate 60 RS Ultimate Design. Представленный Huawei Mate 60 RS Ultimate Design получил 6,82-дюймовый OLED-дисплей, 16 гигабайт оперативной и 1 терабайт встроенной памяти, тройную камеру с объективами разрешением 48, 48 и 40 мегапикселей, вписанными в восьмиугольник.

Полученный список

1. Какой гаджет стал первым в новой линейке смартфонов?

2. Какой размер дисплея имеет представленный аппарат?

3. Сколько оперативной памяти и встроенной памяти есть у Huawei Mate 60 RS Ultimate Design?

4. Сколько мегапикселей у тройной камеры этого смартфона?

5. Какие объективы используются в камере Huawei Mate 60 RS Ultimate Design?

6. Какие особенности имеет дизайн этого смартфона?

LLAMA2 13B

На моделях LLAMA2 примерно такой же эффект, не буду разбирать подробнее. Составим список вопросов по блоку текста. Такой ответ даже лучше с точки зрения поискового индекса, т.к. сразу указывает конкретную модель.

1. Какой размер имеет дисплей Huawei Mate 60 RS Ultimate Design?

2. Какой тип оперативной памяти используется в Huawei Mate 60 RS Ultimate Design?

3. Какой размер встроенной памяти имеет Huawei Mate 60 RS Ultimate Design?

4. Какой размер камеры используется в Huawei Mate 60 RS Ultimate Design?

5. Какой тип камеры используется в Huawei Mate 60 RS Ultimate Design?

5. Список ключевых слов

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

Составь список 10 самых важных терминов без объяснения.

GPT3.5 API

1. Huawei

2. Ultimate Design

3. Смартфоны

4. Аксессуары

5. Mate 60 RS Ultimate Design

6. OLED-дисплей

7. Оперативная память

8. Встроенная память

9. Тройная камера

10. Porsche Design

LLAMA2 13B

1. Huawei

2. Ultimate Design

3. Mate 60 RS Ultimate Design

4. OLED-дисплей

5. 16 гигабайт оперативной и 1 терабайт встроенной памяти

6. тройная камерa

7. 48, 48 и 40 мегапикселей

8. восьмиугольник

9. Porsche Design

10. Honor

Если нашли неточность в описании - буду рад поправкам. Если есть вопросы - пишите, чем смогу помогу. Замечу, что я лишь энтузиаст-исследователь, а не профессиональный ИИ-программист. Также вы можете подписаться на мой ТГ-канал, где я делюсь своими находками и опытом.

33
Начать дискуссию