Реализация RAG на основе GigaChat. Как искать и генерировать ответы по базе знаний?

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 ก.ย. 2024
  • Большие языковые модели могут генерировать тексты, содержащие ложную информацию. Это явление называют "галлюцинациями". Кроме того, знания модели ограничены тем корпусом текстов, на котором она обучалась. Чтобы преодолеть эти ограничения принято прибегать к созданию RAG (Retrieval Augmented Generation) - вопросно-ответных систем, где ответы опираются на внешний источник знаний. Обычно в роли такого источника выступает векторная база данных.
    В этом туториале мы рассмотрим, как работает RAG, а также создадим свою RAG-систему на основе GigaChat API и GigaChain.
    В этом видео в качестве текстов для базы знаний использовались статьи с сайта N+1: nplus1.ru/sear...
    Блокнот из ролика можно взять из репозитория: github.com/tra...
    Мой канал в Telegram: t.me/gigatrash

ความคิดเห็น • 12

  • @user-ez6lp1zc9v
    @user-ez6lp1zc9v 3 หลายเดือนก่อน

    Спасибо огромное за выпуск! Мне, как человеку без бэкграунда в AI, было очень интересно, полезно и познавательно!

  • @DigiCatBlog
    @DigiCatBlog 2 หลายเดือนก่อน

    Классная лекция. Было бы интересно узнать то же самое, используя llama или что то ещё локально, а не гигачат

    • @trashchenkov
      @trashchenkov  2 หลายเดือนก่อน +1

      Спасибо. В видео про langflow чуть-чуть показывал использование llama 3.
      В будущем видео тоже планирую использовать маленькую модельку в тандеме с Гигачатом.
      Локальные модели требовательны к железу. Не у всех потянет. Гигачат в этом плане проще. Но почти все примеры, которые я показываю, с небольшими модификациями будут работать и с локальными моделями.

    • @DigiCatBlog
      @DigiCatBlog 2 หลายเดือนก่อน

      @@trashchenkov у меня есть 3060 с 12 Гб памяти, 3080 с 8 Гб памяти и в ноутбуке 3070 с 8 Гб памяти. Если использовать llama 3.1 с квантованием 2, можно ли использовать на таких видеокартах?

    • @trashchenkov
      @trashchenkov  หลายเดือนก่อน

      @@DigiCatBlog ​ @DigiCatBlog с квантованием 2 обычно качество ответов не очень. Обычно рекомендуется брать с квантованием 4, поскольку это уже не самое плохое качество ответов, но все еще существенная экономия памяти. Работать на указанном железе будет, я вообще на своем скромном Macbook Air с M1 запускаю. Но это просто для баловства, иногда ответов ждать приходится по несколько минут.

    • @alexvolobuev5222
      @alexvolobuev5222 หลายเดือนก่อน

      Спасибо за видос! Очень интересно! Вопрос:
      как при разбивании на чанки не потерять смысл?
      Если бить тупо посимвольно, разве не будет резаться смысл статьи на части? Может надо как-то по словам, предложениям, абзацам. Но это все не то. Надо бить как то по смыслу. Например используя ллм, сказать : разрежь статью на атомарные части, чтобы не повредить смысл. И можно заодно саморизовать эти чанки, чтобы потом экономить контекст ллм.
      Думали над этой проблемой?

    • @trashchenkov
      @trashchenkov  หลายเดือนก่อน

      ​@@alexvolobuev5222 Над этой проблемой уже много умных ребят подумали до нас))). Такая проблема есть. Посимвольно никто не режет чанки. Даже в показанных примерах кусочки бьются по словам. Можно в параметрах настроить, чтобы бились по предложениям. Кроме того, нарезка идет с перекрытием, то есть часть текста в соседних кусочках повторяется (так больше шансов сохранить смысл). И это все делается не с помощью LLM, а на основе регулярных выражений.
      Подходы по разбивке не на одинаковые кусочки, а с учетом структуры документа (главы, пункты и т.д.) тоже есть, но в этом ролике была цель показать самый простой подход. У более сложных способов помимо преимуществ, есть свои слабые стороны. Например, есть подход RAPTOR. Там иерархическая структура с самаризацией больших кусочков. Там проблема в том, что если мы хотим добавить новых документов в базу знаний, надо все заново создавать. А в простом подходе, где мы тупо режем на более-менее одинаковые кусочки, проблем с добавлением новых куосчков не возникает.