RAG для SEO: работаем с нейросетями без дураков

Если вас уже тошнит от сгенерированных chatGPT текстов про то, как генерировать тексты в chatGPT для никого – это не повод отказываться от использования нейросетей для SEO. В этой статье разберем более здравый подход к работе с контентом с помощью LLM (больших языковых моделей): RAG, генерацию с расширенным поиском.

Добавляем правильный контекст языковой модели просто и доходчиво
Добавляем правильный контекст языковой модели просто и доходчиво

Исходные тезисы

  • Общие генеративные модели (chatGPT и его аналоги) в принципе не способны создавать внятный уникальный осмысленный текст. Это имитация естественного языка, основанная на статистике совместного использования слов.
  • Один сгенерированный текст средствами LLM без корректировок ничем не лучше любого другого сгенерированного текста на ту же тему вне зависимости от модели. Более того, всё это – просто список одних и тех же слов и их последовательностей, и это очевидно для поисковых систем даже после ручного поверхностного редактирования.
  • Хороший текст для SEO должен иметь хоть какую-то ценность для поисковых систем: уникальную в рамках интернета информацию, подтвержденную фактами или практикой, пользу и авторитетность для пользователей, хоть какой-то поисковый спрос.
  • Общая генеративная модель не может сгенерировать экспертный контент, в том числе и потому, что не обучалась на экспертных данных как специфическая модель. Её обучали на классической литературе, статьях Википедии, флуде Reddit – но не на действительно ценных материалах, описывающих какую-то специфическую тему.
  • Выход из ситуации – дообучение общей модели или использование RAG: подмешивания к большой языковой модели необходимых данных из внешнего источника.

Фактически, для частного лица или малого/среднего бизнеса ни о каком реальном дообучении LLM и речи быть не может. Рассмотрим концепцию использования RAG для SEO более подробно.

Почему chatGPT, Claude и другие LLM – не вариант

  • LLM статичны. Нет способа реально обновить эти гигантские наборы информации, они заморожены во времени.
  • Недостаток знаний в конкретной предметной области. LLM – это такой «сферический гуманитарий в вакууме», который знает всё и ничего конкретно.
  • Нет способа узнать, что конкретно заложено в системе, какие источники модель использовала, и можно ли реально опираться на её ответы.
  • LLM – это дорого и малоэффективно для бизнеса. Вы можете воспользоваться чужим продуктом, но не можете создать свой.

Для любого серьезного применения LLM без модификаций будут плохо работать с любой контекстно-зависимой задачей. Устранить эту проблему можно с помощью RAG.

Что такое RAG

RAG (Retrieval Augmented Generation) — генерация с расширенным поиском, сочетающая метод использования больших языковых моделей с моделями, основанными на поиске в сторонних данных, связанных с запросом (промптом). Это позволяет языковой модели генерировать более точные и конкретные ответы, поскольку она имеет доступ к актуальному релевантному контексту.

Примеры RAG: SGE, Bard, Perplexity AI. Эти модели используют данные из поискового индекса, и это само по себе – проблема. Я не предлагаю использовать их: идея – собственные базы данных на вход, в соответствии с тематикой и проектом.

Проще говоря, вы добавляете к используемой языковой модели ещё один источник данных, из которого LLM может извлечь недостающую информацию. Работает это как обычная поисковая система: вы задаёте какой-то корпус данных, модель индексирует их, а когда потребуется – извлекает нужные данные, опираясь либо на ключевые слова (tf-idf), либо на контекст (дистрибутивная семантика, которую ошибочно называют “LSI”).

Мало отдать chatGPT или Claude какой-то файл на вход и сказать: «Запомни контекст». Если вы заставите семиклассника вызубрить четверостишие на латыни, он не станет от этого латинистом. Надо работать всерьёз.

Основные стадии процесса генерации с расширенным поиском:

  • Входной кодировщик кодирует входной запрос в серию векторных вложений (эмбедингов) для последующих операций.
  • Нейронный ретривер извлекает наиболее релевантные документы из внешней базы знаний на основе входного запроса, используя либо ключевые слова, либо контекст. Во время извлечения к подсказке добавляются только наиболее релевантные фрагменты документов или графы знаний.
  • Выходной генератор выводит текст на основе закодированного входного запроса и извлеченных документов. Этот компонент обычно является основополагающим LLM, таким как ChatGPT или Llama2.
Схема работы RAG визуально: LLM получает вопрос, обращается к базе знаний, находит соответствующий контент, отбирает наиболее релевантный, генерирует ответ.
Схема работы RAG визуально: LLM получает вопрос, обращается к базе знаний, находит соответствующий контент, отбирает наиболее релевантный, генерирует ответ.

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

Для чего это нужно

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

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

RAG для SEO: работаем с нейросетями без дураков

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

Дообучить готовую общую модель – сложно, дорого, долго, и вы не будете этим заниматься, если вы не Сбербанк. RAG обойдётся куда дешевле и быстрее.

В рамках SEO использование RAG обеспечит вам некоторые возможности, недостижимые другим способом.

  • Вам нужен «экспертный» контент, но нет эксперта? Подготовьте доступные «экспертные» данные и используйте их с доступной языковой моделью для подготовки текстового контента.
  • Как бы не убеждали вас сгенерированные chatGPT тексты, без дополнительных усилий они ничего хорошего вам не дадут, а общие модели остаются забавной игрушкой. RAG – единственный доступный способ преодолеть их ограничения.
  • Генеративная модель в качестве ответа просто вывалит на вас общие слова. RAG предоставит более точный ответ и укажет источники.
  • Неочевидная идея: языковая модель с вашим сайтом на входе в качестве источника данных – отличный аудит процессов взаимодействия с вашим сайтом поисковых систем. Насколько ваш сайт доступен для машин? Насколько полно и внятно представлена там важнейшая информация? – Подготовьте формальный список вопросов, связанных с конверсией в вашей тематике и имеющим критически важное значение для вашего бизнеса. Если модель не справится – это суровый диагноз.

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

А теперь чуть подробнее о преимуществах RAG.

Преимущества

  • Увеличение точности ответов в заданной тематике. Общая модель знает вашу тему лишь настолько, насколько информация такого рода была ей доступна изначально. Вполне возможно, что этих данных в исходном корпусе не было вообще. Вы можете предоставить недостающие данные.
  • Несмотря на то, что RAG нельзя считать дополнительным обучением, база знаний на входе модели пополняется по мере работы с ней. Вместе с этим повышается точность и релевантность ответов с течением времени. По сути, RAG – чуть не единственный способ добиться от языковой модели конкретики в ответах и получить ссылку на источник информации.
  • RAG обеспечивает актуальность. Простой пример: генеративная модель обучается на данных, полученных за какой-то период. В её базе нет ничего о событиях и фактах, появившихся позднее. Расширенный поиск предоставляет модели более актуальные сведения – без необходимости обучать заново.
  • Уменьшение галлюцинаций генеративной модели. RAG углубляет контекстное окно, повышая фактичность и уменьшая количество неточностей в контенте, генерируемом ИИ.

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

Что самое приятное для специалиста по информационному поиску – так это то, что по сути дела вы на своем проекте внедряете некоторое подобие «Гугл», то есть поисковой системы, работающей по классическим методам извлечения и индексирования информации. Вам не придётся вникать в нюансы машинного и глубокого обучения, вы просто к обученной кем-то модели добавляете полноценный поисковик с индексом и ранжированием.

Возможные проблемы

Не надо думать, что всё будет легко и просто. У генерации с дополненным поиском есть ряд недочётов и проблем, способных вынести вам мозг.

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

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

  • Приоритет всегда отдаётся LLM, а не дополнительным данным. Отсюда – странные галлюцинации, бессвязность, отсутствие полноты в ответах. Чем хуже подобраны и подготовлены ваши данные, тем выше риск, что модель не сможет ими воспользоваться.

  • Типовая проблема: ваша языковая модель может быть перегружена избытком информации, и не может выбрать актуальный и релевантный ответ. Примерно с такими же сложностями сталкиваются в ранжировании и поисковые системы: если на сайте множество документов соответствуют одному запросу, поисковик может выбрать вовсе не самый актуальный, а напротив, устаревший, зато с большим объёмом входящих ссылок и историей.

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

Есть множество хорошо зарекомендовавших себя методик, позволяющих сократить число возможных проблем. Основа – комплексная оценка производительности системы, проверка результатов на разных стадиях генерации и т.п.

Однако с учетом того, что SEO-специалист всё же не эксперт в машинном обучении, и нет у него возможностей полноценно работать с моделями, есть смысл активно использовать дополнительные расширенные методы оптимизации RAG. Среди них:

  • Вложение метаданных

  • Повторное ранжирование

  • Более тщательная подготовка входных данных

  • Разбиение данных на фрагменты (чанки)

  • Извлечение текста и перевод в машиночитаемые форматы

По сути дела, речь идёт о средствах оптимизации, очень напоминающих классические средства SEO – кроме покупки ссылок, подготовки спамных текстов и накликивания CTR на выдаче. Пример: вместо того, чтобы отдавать на вход модели пачку плохо сверстанных PDF с непонятным содержимым и с надеждой, что система распознает текст на картинках и сможет как-то структурировать всё, стоит извлечь текстовые данные заранее, очистить от шума, структурировать и разбить на фрагменты.

Приятный бонус: вы новым взглядом оцените свои проекты и методы их продвижения в поиске.

Почему вам нужна собственная модель RAG

У современных поисковых систем есть проблемы: ресурсы и монетизация. Ресурсов на обход, сканирование, обработку и ранжирование всего уже явно не хватает, и приходится тщательно отбирать источники данных ещё до процесса индексирования. Это разумно, но в результате такого подхода остаётся слишком много реально ценного контента вне зоны видимости поисковых систем. Выдача же представляет собой одну и ту же жеваную-пережёванную статью, размазанную по паре десятков «трастовых» ресурсов.

RAG для SEO: работаем с нейросетями без дураков

Вам, в отличие от Google, менее важны затраты ресурсов на отбор и анализ данных. Формально, вам нужны лишь предельно точные ответы, соответствующие перечню запросов от ваших потенциальных клиентов. У вас уже есть список авторитетных сайтов, библиотека каких-то важных документов из заданной темы, база знаний или скрипт продаж.

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

Какие источники данных можно использовать

Поскольку мы тут обсуждаем не общие вопросы LLM, а вполне прикладные вопросы SEO, то и в качестве источников стоит сделать акцент на том, что есть в реальном мире.

Поскольку речь идёт в основном о сайтах, где важна конверсия, LLM используются для работы чат-ботов, отвечающих на стандартные вопросы клиентов, и создания контента, максимально укладывающегося в конверсионную цепочку. По первому пункту вопросов быть не должно, но чат-боты – это не тема для SEO. А вот для всего симптоматического контента вам понадобится собственная база знаний.

  • Если вы хоть как-то продвигали свой сайт – она, по идее, должна уже быть в каком-то виде. Статьи, страница FAQ, блоки «Вопрос/ответ», коммерческие страницы типа «О компании», «Доставка», «Как оплатить» – всё это содержит важную информацию, которая должна быть доступна клиенту всегда и отовсюду. Если вы ещё не проработали эту базу знаний – начните прямо сейчас.
  • Структурированные данные. Я уже писал о возрастающем значении машиночитаемости данных. Практика показывает, что даже те, кто зарабатывает SEO, не всегда понимают важность микроразметки, графов знаний и онтологий. У вас есть прекрасная возможность проверить, как машина может справиться с данными на вашем сайте. В каком виде представлены ваши данные? Это обычные html и pdf, или хотя бы XML и JSON? Проведите тест «Иголка в стоге сена» (о нём – ниже).
  • Сторонние базы данных и API. Сюда относятся какие-нибудь биржевые котировки, прайс-листы, свежие новости или данные из соцсетей.
  • Скрипты продаж. Да, это один из самых интересных источников контекстных окон для генерации контента. Подразумевается, что ваши «продажники» хорошо знают, какие вопросы задают потенциальные клиенты, что на эти вопросы отвечать, чтобы было хорошо, и как закрывать возможные возражения. Добавьте эти данные для генерации контента.
  • Вручную подобранный корпус данных: руководства пользователя, мануалы, сравнения, презентации, техническая литература – словом, всё, чего нет в общем доступе в интернете, но содержит жизненно важные для конверсии информацию.
  • Бизнес-системы: CRM, ERP (системы планирования ресурсов), SCM (системы управления поставками) – всё, что содержит ту информацию, которую можно предоставить в общий доступ без риска для бизнеса.

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

Как подготовить данные для RAG

Как уже было сказано выше, RAG в рамках поисковых систем (SGE) использует уже готовые корпуса, где данные отобраны, очищены, проиндексированы, определено соответствие каким-то запросам. У вас пока ничего похожего нет, есть лишь набор документов в каких-то форматах. Их нельзя использовать без подготовки, если вы работаете на результат.

Для подготовки датасета для генерации с расширенным поиском (RAG), выполните следующие действия:

  • Все документы из базы данных нужно нарезать на порции, именуемые в обиходе «чанками». Размер варьируется от 100 до 1000 слов. От размера зависит результат: чем меньше чанк – тем точнее поиск по точным вхождениям и меньше контекста. Чем больше – тем больше контекста, тем ближе к семантическому поиску.
  • У каждой LLM есть свои особенности и ограничения в работе с токенами. Многое зависит от выбранной модели. Одна поддерживает контекстное окно в 16 тыс. токенов, другая – 100. Избыточный контекст ничем не лучше недостаточного. Вы в данном случае не собираетесь создавать полноценный генеративный поиск в своей тематике, цель – генерация более внятного контента для использования на сайте. Это упрощает задачу, но без тестирования и доработок всё равно не обойтись.
  • Нельзя просто «выдрать» фрагменты из текста, удалив всё ненужное. Данные должны представлять собой базу данных, граф знаний с чётко выраженными связями. Один чанк должен продолжать предыдущий и быть началом нового.
  • Убедитесь, что датасет действительно содержит ответы на подразумеваемые запросы. Для этого, как минимум, вам нужно проработать список этих запросов, и крайне желательно в датасет включить общие по смыслу, но разные по лексическому составу ответы. Перефразируйте ответы, но аккуратно, чтобы не испортить контекст. 3-5 вариантов вполне достаточно.
  • Предусмотрите вспомогательные алгоритмы поиска. Это может быть TF-IDF, BM25, Word2Vec и т.п.

Качество ответов зависит от качества подготовленной вами базы знаний. Чем точнее и полнее будет подготовленная вами база вопросов и соответствующих им ответов в чанках, тем эффективнее справится ваша модель с дальнейшей работой. Сейчас более чем достаточно LLM, которые могут послужить отличной базой для дальнейшей работы, достаточно и инструментария, который может использовать человек без глубоких знаний в ML. Но вот базу знаний в вашей тематике за вас не создаст никто – и это задачка вполне для SEO-специалиста, умеющего не только покупать ссылки на «сапе», гонять ботов по чужим шаблонам или парсить WB.

Как тестировать

Самый доступный и простой способ известен как «Иголка в стоге сена». Идея его проста: вы берете конкретную целевую информацию и внедряете её в свои данные. Задача – оценить способность системы найти, обработать и использовать эти данные в генерации.

Смысл внедрения RAG в процессы поисковой оптимизации – релевантность и точность контента, используемого для продвижения. LLM не справляется с задачей, в результате чего получаются высокорелевантные с точки зрения поисковой системы фрагменты контента, при этом совершенно бесполезные для людей. Если RAG по итогам не исправляет эту ситуацию – значит, что-то было сделано неправильно.

Для старта задача проста: вам нужно взять некоторые точные данные и спрятать их в чанках, варьируя размеры чанка и глубину, на которую спрятана в чанке ваша «игла». Эффективность конкретной модели существенно меняется от таких показателей: если «игла» спрятана слишком близко к началу контекста, модель может забыть её. Важно понять, насколько точен поиск, эффективно ли подготовлены чанки на вход, а в худшем случае – работает ли поиск вообще, или модель попросту бредит.

Подробнее на эту тему можно прочитать, например, на сайте Anthropic или других специалистов в сфере LLM – материалов на эту тему уже много, ищущий обрящет.

Собственно, вопрос тестирования RAG «иглой» не закрывается даже приблизительно. Это всего лишь самый простой и быстрый способ. Более сложные методы проверки вы легко найдёте на профильных ресурсах, раскрывающих тему куда глубже, чем эта статья.

Заключение

Нравится вам это или нет, нейросети уже стали частью SEO. Благодаря им можно не только увеличить потоки мусорного контента, но и помочь в создании действительно качественного и ценного текста – если приложить некоторые усилия. Поисковые системы требуют экспертности, но у вас нет возможности привлекать реальных экспертов? – Попробуйте использовать возможности RAG.

И, как я уже упоминал, это может стать неплохим инструментом для проведения аудитов сайта – от чистой «технички» до семантики. Воспринимайте каждую страницу своего сайта как чанк. Насколько они связаны? Что из этого вороха фрагментов реально имеет значение, а что лишь тратит ресурсы поисковой системы? Я ещё не тестировал аудиты такого рода, но думаю, в ближайшей перспективе это должно стать мейнстримом. Те, кто воспользуется новыми возможностями раньше других, получит наибольший профит.

3131
18 комментариев

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

2

Тут может случиться, как с голосовым поиском. Кто-то реально оптимизирует под него?Да. Просто это не для любого проекта надо, и проверять-мониторить - непросто. А схема-то несложная по факту.
А с RAG всё сильно проще, чем может казаться. Я-то маялся идеей полноценного обучения, пока не прикинул масштабы. Тут же тебе нужна просто любая доступная LLM - их тонны уже, и чат-бот. Фривари тоже хватает. Дальше - дело техники. Я на локальной машине развернул. Ему видеопамять нужна, но требования не конские.

2

Комментарий удалён автором поста

Одно удовольствие читать! Спасибо

2

Жаль, что он фанат террористов

Виктор, извините за вопрос не по теме, есть где-то туториал о применении ИИ для seo задач (сайты, блоги), сбора семантики, разметки и тд. в виде списка хороших промтов? :)