web analytics

Пятиминутный экспресс-курс по RAG

Sztuczna Inteligencja (ИИ/AI)

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

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

Крупные языковые модели, такие как GPT-4 или Claude, обучаются на огромных массивах текста из интернета. Это включает контент из блогов, книг, кода, Википедии и многого другого. Благодаря такому масштабному обучению, языковые модели способны отвечать на ваши запросы.

Источник: Изображение, сгенерированное искусственным интеллектом

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

Кроме того, LLM не знает ваших личных или корпоративных данных, поскольку никогда их не видел. Поэтому, когда вы спросите чат-бота с ИИ: « Какова наша политика возврата средств?» , он не даст правильного ответа, поскольку не был обучен на основе вашей политики возврата. Он скажет «Я не знаю» или, что еще хуже, уверенно даст неверный ответ. И эта часть уверенного предоставления неверных ответов называется галлюцинацией. Это одна из самых больших проблем в области ИИ на данный момент.

Это происходит потому, что цель моделей LLM — бегло отвечать на ваш запрос. Модель не выдает неправильные ответы намеренно. Поскольку она не видела вашу политику возврата средств, она делает предположение и в итоге получает неверный ответ.

Решением подобных проблем является RAG.

Что такое RAG?

RAG расшифровывается как Retrieval-Augmented Generation (генерация с расширенным извлечением) . Поверьте, это очень простая идея.

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

Источник: Изображение, сгенерированное искусственным интеллектом

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

Именно этим и занимается RAG. Сотрудник — это магистр права. Документ — это база знаний. А поиск — это процесс прочтения соответствующего раздела перед тем, как дать ответ.

Как работает RAG

Источник: Изображение, сгенерированное искусственным интеллектом

1. Разделите данные на фрагменты.

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

2. Преобразование в эмбеддинги

На этом этапе каждый созданный нами фрагмент преобразуется в список чисел. Это называется векторным представлением (embedding). Оно отражает смысл текста. Таким образом, слова со схожим значением получают схожие числовые значения. Это помогает в семантическом поиске.

3. Хранить в векторной базе данных.

Теперь, когда мы создали векторные представления, нам нужно где-то их сохранить. Эти представления хранятся в специальной базе данных, известной как векторная база данных. К числу популярных векторных баз данных относятся: Pinecone, Chroma и FAISS.

4. Пользователь задает вопрос.

Это очень простой шаг. Здесь пользователь просто вводит свой вопрос.

5. Найдите наиболее релевантные фрагменты.

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

6. Отправьте контекст в LLM.

Как только мы находим наиболее релевантные фрагменты, мы отправляем их в LLM вместе с исходным вопросом в качестве заключительного контекста. Запрос, который мы отправляем в LLM, выглядит примерно так: «Вот некоторая информация: [полученные фрагменты]. Теперь ответьте на этот вопрос: [вопрос пользователя]».

7. Обоснованный ответ

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

Простой пример кода

Давайте посмотрим, как выглядит настройка RAG в Python с использованием LangChain. Не беспокойтесь о коде. Просто поймите логику.

from langchain.document_loaders import TextLoader 
from langchain.text_splitter import RecursiveCharacterTextSplitter 
from langchain.embeddings import OpenAIEmbeddings 
from langchain.vectorstores import Chroma 
from langchain.chains import RetrievalQA 
from langchain.chat_models import ChatOpenAI 

# Шаг 1: Загрузка документа
 loader = TextLoader( "company_policy.txt" ) 
documents = loader.load() 

# Шаг 2: Разделение на фрагменты
 splitter = RecursiveCharacterTextSplitter(chunk_size= 500 , chunk_overlap= 50 ) 
chunks = splitter.split_documents(documents) 

# Шаг 3: Создание эмбеддингов и сохранение в векторной базе данных
 embedding_model = OpenAIEmbeddings() 
vector_store = Chroma.from_documents(chunks, embedding_model) 

# Шаг 4: Настройка поиска + LLM
 llm = ChatOpenAI(model= "gpt-4" , temperature= 0 ) 
qa_chain = RetrievalQA.from_chain_type( 
    llm=llm, 
    retriever=vector_store.as_retriever() 
) 

# Шаг 5: Задать вопрос
 answer = qa_chain.run( "Какова наша политика возврата средств за цифровые продукты?" ) 
print (answer)

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

Где используется RAG?

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

Источник: Изображение, сгенерированное искусственным интеллектом
  • Чат-боты для работы с PDF-файлами — Загрузите научную статью или документ с исследованием и задайте вопросы по его содержанию. LLM ответит, основываясь на этом документе , а не на своих обучающих данных.
  • Боты для поддержки клиентов — Компании предоставляют доступ ко всем своим данным системе RAG. RAG извлекает правильные статьи и ответы на вопросы LLM на основе проверенной информации, а не выдает ложные данные.
  • Внутренние ассистенты по обмену знаниями — Компания может иметь собственного ассистента, который может отвечать на вопросы о компании, например: «Каков процесс адаптации новых инженеров?». Он выступает в роли личного помощника вашей компании для ответа на внутренние вопросы.
  • Электронная коммерция и поиск товаров — Розничные продавцы используют RAG, чтобы помочь пользователям найти нужный товар , семантически сопоставляя запросы пользователей с существующими описаниями товаров.

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

Почему RAG иногда всё ещё терпит неудачу

RAG — мощная компания, но это не сверхдержава, которая никогда не ошибается.

Самое важное, что вы должны знать: если восстановление не удастся, то всё рухнет.

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

Вот почему люди, занимающиеся созданием систем RAG, тратят много времени на:

  • Размер фрагмента — Если размер слишком велик, вы можете получить ненужную информацию. Если размер слишком мал, вы теряете контекст.
  • Качество встраивания — Различные модели встраивания показывают разные результаты на разных типах текста.
  • Стратегия поиска — Иногда базовый поиск по сходству оказывается эффективным. Однако гибридный поиск (сочетание ключевых слов и значения) часто работает лучше.

Средняя модель LLM с отличными показателями поиска информации превзойдет мощную модель LLM с плохими показателями поиска.

Качество ответов зависит от качества полученных данных.

Итоговый вывод

Теперь вы знаете, что модели ИИ застыли во времени. Они не знают ваших данных. А когда у них возникают сомнения, они начинают галлюцинировать.

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

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

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

Источник:
https://pub.towardsai.net/a-5-minute-crash-course-on-rag-9b3eb41eb4af

Оцените статью
( Пока оценок нет )

Добавить комментарий