Векторный поиск к успеху

До 2022 года, если бы вы хотели быстро вспомнить конкретный отрывок из любимой книги или цитату из только что просмотренного фильма, не имея перед собой самого произведения, вы, вероятно, обратились бы к поисковой системе. Вы запрашиваете его с помощью хорошо сформулированных входных данных для поиска, анализируете полученные результаты, переходите по ссылке SparkNotes или IMDB, которая, по-видимому, содержит ваш ответ, и находите на странице искомый текст в течение нескольких минут. Теперь вы просто открываете ChatGPT и вводите «Какая самая известная цитата Терминатора?» или «напишите вступительный отрывок из «Повести о двух городах»» и через несколько секунд получите дословный ответ.

Одно из самых простых применений большой языковой модели (LLM) — это база данных знаний. LLM прошли обучение на огромных наборах данных с богатой информацией, которую интерфейсы, такие как ChatGPT, упрощают извлечение. Например, когда вы предлагаете ChatGPT вернуть контент из фильма или книги, вы просто используете способность модели вызывать информацию, с которой она столкнулась во время обучения. Но что, если он не обучался по сценарию «Терминатора» или если его веса не придают значения произведениям Диккенса? Чтобы предоставить наиболее точные и актуальные результаты даже для самых простых случаев использования, таких как поиск базовой информации, LLM нуждаются в сложных механизмах индексации и поиска, которые могут обеспечить точный доступ к широкому спектру информации.

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

Обработка ввода: когда вы вводите подсказку или вопрос, этот ввод преобразуется в токены: слова или фрагменты слов. Понимание контекста: модель смотрит на жетоны, которые вы ей дали, и на основе своего обучения пытается понять контекст, который включает в себя все, от рассматриваемой темы до тона, который вы можете использовать. Прогнозирование следующего токена: используя понятный контекст, модель затем прогнозирует, какой наиболее вероятный следующий токен. Это не просто предположение, основанное на предыдущем слове; он учитывает весь контекст разговора до этого момента. Выбор токена: как только он предсказывает диапазон возможных следующих токенов, он выбирает один. Этот выбор основан на вероятности — токене, который, скорее всего, будет следующим, исходя из данных, на которых обучалась модель. Однако стоит отметить, что здесь тоже присутствует некоторая случайность, которая помогает генерировать более разнообразные и естественные ответы. Генерация вывода: выбранный токен затем преобразуется обратно в удобочитаемый текст. Если ответ неполный (что часто не происходит после всего лишь одного токена), процесс повторяется. Новый токен добавляется в последовательность, и модель прогнозирует следующий токен на основе этого обновленного контекста. Итеративное уточнение: этот процесс прогнозирования следующего токена и добавления его в последовательность повторяется до тех пор, пока модель не достигнет точки остановки. Это может произойти, когда ответ достигает определенной длины, модель прогнозирует токен, обозначающий конец предложения или отрывка, или когда она выполняет инструкции, встроенные в подсказку. Ограничения сжатия при обучении LLM Когда LLM прогнозирует токен, он эффективно извлекает и использует сжатые знания, заложенные в его веса, для получения контекстуально соответствующих выходных данных. Таким образом, обучение LLM отражает сжатие базы данных. Точно так же, как база данных оптимизирована для быстрого вызова часто используемых данных, LLM предназначен для извлечения информации — конкретных интерполированных воспоминаний — из ее весов. Эта возможность позволяет ему давать точные ответы на запросы о знакомом материале, с которым он столкнулся во время обучения, во многом подобно запросу в базе данных для получения хорошо индексированной информации. Однако ограничения возникают, когда модель сталкивается с менее знакомым или неясным содержимым. Например, когда вы запрашиваете у LLM конкретные отрывки из Библии, он цитирует их слово в слово, но не может цитировать слово в слово какую-либо концепцию, которую он не «засвидетельствовал» повторно во время обучения, поскольку веса, связанные с этой концепцией, слишком велики. незначительный. В этом смысле LLM аналогична базе данных. Точно так же, как база данных может возвращать только те данные, которые были явно сохранены в ней, LLM может столкнуться с трудностями при создании контента по темам, с которыми он не сталкивался во время обучения.

Конечно, LLM выходят за рамки этой аналогии, поскольку у них есть внутренняя модель мира, которая позволяет им «понимать» вещи, выходящие за рамки простого поиска. Однако это упрощение помогает нам понять некоторые ключевые ограничения в том, как LLM обучаются генерировать контент.

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

Размер окна контекста: один из основных констант.

Raints — это размер контекстного окна модели — максимальный объем текста (в токенах), который модель может учитывать при составлении прогноза. Для многих моделей, включая более ранние версии GPT, это окно недостаточно велико для сохранения контекста в длинных разговорах или документах, что может привести к потере связности в более длинных текстах или сложных обсуждениях, требующих сохранения контекста за пределами непосредственно предшествующих токенов. Обобщение против специфичности. Хотя эти модели обучаются на обширных наборах данных, их способность к обобщению на основе этого обучения иногда может привести к созданию общего или неопределенно релевантного контента. Они могут промахнуться, генерируя весьма конкретные или тонкие ответы, которые требуют детального понимания или современных знаний, выходящих за рамки их обучающих данных. Отсутствие доступа к внешним знаниям: модели прогнозирования следующих токенов ограничены информацией, содержащейся в их наборах обучающих данных. Они не могут получить доступ к новой информации или внедрить ее после обучения, а это означает, что она может быстро устареть или потерять текущий контекст, например недавние события, открытия или актуальные темы. Повторяемость и предсказуемость. Алгоритмическая природа прогнозирования следующего токена может иногда приводить к повторяющейся или предсказуемой генерации текста. Поскольку модель часто отдает предпочтение токенам, которые статистически с большей вероятностью будут следовать в зависимости от контекста, она может зацикливаться или отдавать предпочтение общим фразам, уменьшая вариативность выходных данных. Объяснение поисковой дополненной генерации (RAG) Как уже упоминалось, LLM генерируют ответы на основе весов, которые они присвоили различным аспектам данных во время обучения. Эти веса отражают, насколько важными или значимыми различные элементы входных данных воспринимаются моделью. Если приглашение пользователя включает элементы, которые не были существенно представлены в обучающих данных, модель может не сгенерировать точный или релевантный ответ.

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

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

Во время RAG как запрос (т. е. ввод пользователя в LLM), так и сохраненные данные (например, статьи, документы или предложения) преобразуются в векторы с использованием встраивания текста. Эти вложения преобразуют текстовые данные в числовые векторы, где аналогичные значения отображаются в ближайшие точки векторного пространства. Затем база данных вычисляет расстояния между вектором запроса и векторами сохраненных данных, чтобы определить, насколько тесно связаны значения текстов. База данных извлекает точки данных (текстовое содержимое), векторы которых наиболее близки к вектору запроса, т. е. те, которые семантически наиболее похожи на входные данные. Эти точки данных считаются «ближайшими соседями» с точки зрения контекста и значения.

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

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

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