кочан Дълбоко потапяне в генерирането с подобрено извличане в LLM - Unite.AI
Свържете се с нас

Изкуствен интелект

Дълбоко потапяне в генерирането с подобрено извличане в LLM

mm

Публикуван

 on

Извличане на увеличена илюстрация за генериране с помощта на Midjourney

Представете си, че сте анализатор и имате достъп до голям езиков модел. Вие сте развълнувани от перспективите, които носи за вашия работен процес. Но след това го питате за последните цени на акциите или текущия процент на инфлация и той ви удря с:

„Съжалявам, но не мога да предоставя данни в реално време или след прекъсване. Последните ми данни за обучение са само до януари 2022 г.“

Големият езиков модел, въпреки цялата си езикова мощ, няма способността да схванесега'. И в забързания свят,сега' е всичко.

Изследванията показват, че големите предварително обучени езикови модели (LLM) също са хранилища на фактически знания.

Те са били обучени на толкова много данни, че са усвоили много факти и цифри. Когато са фино настроени, те могат да постигнат забележителни резултати при различни НЛП задачи.

Но тук е уловката: тяхната способност за достъп и манипулиране на това съхранено знание понякога не е перфектна. Особено когато задачата изисква много знания, тези модели могат да изостанат от по-специализираните архитектури. Това е като да имате библиотека с всички книги на света, но без каталог, за да намерите това, от което се нуждаете.

ChatGPT на OpenAI получава надстройка за сърфиране

Неотдавнашното съобщение на OpenAI относно възможностите за сърфиране на ChatGPT е значителен скок в посока на Retrieval-Augmented Generation (RAG). С ChatGPT, който вече може да претърсва интернет за актуална и достоверна информация, той отразява RAG подхода за динамично извличане на данни от външни източници, за да предостави обогатени отговори.

Понастоящем достъпна за потребители на Plus и Enterprise, OpenAI планира скоро да пусне тази функция за всички потребители. Потребителите могат да активират това, като изберат „Преглед с Bing“ под опцията GPT-4.

Chatgpt Нова функция за сърфиране

Chatgpt Нова функция за сърфиране в „Bing“.

 Бързото инженерство е ефективно, но недостатъчно

Подканите служат като врата към знанията на LLM. Те насочват модела, осигурявайки насока за реакцията. Създаването на ефективна подкана обаче не е пълноценното решение, за да получите това, което искате от LLM. Все пак, нека преминем през някои добри практики, които да вземем предвид, когато пишете подкана:

  1. Яснота: Добре дефинираната подкана елиминира неяснотата. Трябва да е ясен, като гарантира, че моделът разбира намерението на потребителя. Тази яснота често води до по-последователни и уместни отговори.
  2. Контекст: Особено за обширни входове, разположението на инструкцията може да повлияе на изхода. Например преместването на инструкцията в края на дълга подкана често може да доведе до по-добри резултати.
  3. Прецизност в инструкциите: Силата на въпроса, често предавана чрез рамката „кой, какво, къде, кога, защо, как“, може да насочи модела към по-фокусиран отговор. Освен това, указването на желания изходен формат или размер може допълнително да прецизира изхода на модела.
  4. Справяне с несигурността: Важно е да насочвате модела как да реагира, когато не е сигурен. Например, инструктирането на модела да отговаря с „Не знам“, когато е несигурно, може да го предотврати от генериране на неточни или „халюциниран” отговори.
  5. Мислене стъпка по стъпка: За сложни инструкции насочването на модела да мисли систематично или разделянето на задачата на подзадачи може да доведе до по-изчерпателни и точни резултати.

Във връзка с важността на подканите при насочването на ChatGPT, изчерпателна статия може да бъде намерена в статия на Unite.ai.

Предизвикателства в генериращите AI модели

Бързото инженерство включва фина настройка на директивите, дадени на вашия модел, за да се подобри неговата производителност. Това е много рентабилен начин да повишите точността на вашето Generative AI приложение, като изисква само незначителни корекции на кода. Въпреки че бързото инженерство може значително да подобри резултатите, от решаващо значение е да разберете присъщите ограничения на големите езикови модели (LLM). Две основни предизвикателства са халюцинации намлява прекъсване на знанията.

  • Халюцинации: Това се отнася за случаи, в които моделът уверено връща неправилен или измислен отговор. Въпреки че напредналият LLM има вградени механизми за разпознаване и избягване на подобни резултати.
Халюцинации в LLM

Халюцинации в LLM

  • Прекъсвания на знанията: Всеки LLM модел има крайна дата на обучението, за която не знае за събития или развития. Това ограничение означава, че знанията на модела са замразени в момента на последната му дата на обучение. Например, модел, обучен до 2022 г., няма да знае събитията от 2023 г.
Прекъсване на знанията в LLMS

Прекъсване на знанията в LLM

Генериране с подобрено извличане (RAG) предлага решение на тези предизвикателства. Той позволява на моделите да имат достъп до външна информация, смекчавайки проблемите с халюцинациите, като предоставя достъп до собствени или специфични за домейн данни. За прекъсване на знанието, RAG може да има достъп до текуща информация след датата на обучение на модела, като гарантира, че изходът е актуален.

Той също така позволява на LLM да извлича данни от различни външни източници в реално време. Това може да са бази от знания, бази данни или дори огромното пространство на интернет.

Въведение в генерирането с допълнено извличане

Generation-augmented retrieval (RAG) е рамка, а не конкретна технология, позволяваща на Големите езикови модели да се докоснат до данни, на които не са били обучени. Има множество начини за внедряване на RAG и най-добрият вариант зависи от вашата конкретна задача и естеството на вашите данни.

RAG рамката работи по структуриран начин:

Бързо въвеждане

Процесът започва с въвеждане или подкана от потребителя. Това може да е въпрос или изявление, търсещо конкретна информация.

Извличане от външни източници

Вместо директно да генерира отговор въз основа на своето обучение, моделът, с помощта на компонент за извличане, търси във външни източници на данни. Тези източници могат да варират от бази знания, бази данни и хранилища на документи до данни, достъпни в интернет.

Разбиране на извличането

По своята същност извличането отразява операция по търсене. Става дума за извличане на най-уместната информация в отговор на въвеждането на потребителя. Този процес може да бъде разделен на два етапа:

  1. Индексирането: Вероятно най-предизвикателната част от цялото RAG пътуване е индексирането на вашата база знания. Процесът на индексиране може да бъде разделен най-общо на две фази: зареждане и разделяне. В инструменти като LangChain тези процеси се наричат ​​„товарачи"А"сплитери“. Зареждащите програми извличат съдържание от различни източници, било то уеб страници или PDF файлове. Веднъж извлечени, сплитерите след това сегментират това съдържание на парчета с размер на хапка, като ги оптимизират за вграждане и търсене.
  2. Запитване: Това е актът на извличане на най-подходящите фрагменти от знания въз основа на дума за търсене.

Въпреки че има много начини за подход към извличането, от обикновено съпоставяне на текст до използване на търсачки като Google, съвременните системи за генериране с подобрено извличане (RAG) разчитат на семантично търсене. В основата на семантичното търсене лежи концепцията за вграждания.

Вгражданията са централни за начина, по който големите езикови модели (LLM) разбират езика. Когато хората се опитват да артикулират как извличат значение от думите, обяснението често се връща обратно към присъщото разбиране. Дълбоко в нашите когнитивни структури ние осъзнаваме, че „дете“ и „хлапе“ са синоними или че „червено“ и „зелено“ означават цветове.

Увеличаване на подканата

След това извлечената информация се комбинира с оригиналната подкана, създавайки разширена или разширена подкана. Тази разширена подкана предоставя на модела допълнителен контекст, който е особено ценен, ако данните са специфични за домейна или не са част от оригиналния обучителен корпус на модела.

Генериране на завършването

След това с разширената подкана моделът генерира завършване или отговор. Този отговор не се основава само на обучението на модела, но също така се информира от извлечените данни в реално време.

Генериране с допълнено извличане

Генериране с допълнено извличане

Архитектура на първия RAG LLM

Изследователската статия на Meta, публикувана през 2020 г. „Генериране с разширено извличане за NLP задачи, изискващи много знания” предоставя задълбочен поглед върху тази техника. Моделът Retrieval-Augmented Generation допълва традиционния процес на генериране с външен механизъм за извличане или търсене. Това позволява на модела да извлича подходяща информация от огромни масиви от данни, подобрявайки способността му да генерира контекстуално точни отговори.

Ето как става това:

  1. Параметрична памет: Това е вашият традиционен езиков модел, като модел seq2seq. Той е обучен на огромни количества данни и знае много.
  2. Непараметрична памет: Мислете за това като за търсачка. Това е плътен векторен индекс на, да речем, Wikipedia, който може да бъде достъпен с помощта на невронен ретривър.

Когато се комбинират, тези две създават точен модел. RAG моделът първо извлича подходяща информация от своята непараметрична памет и след това използва своите параметрични знания, за да даде съгласуван отговор.

РАГ ОРИГНАЛЕН МОДЕЛ НА МЕТА

Оригинален RAG модел от Meta

1. Двуетапен процес:

RAG LLM работи в процес от две стъпки:

  • възстановяване: Моделът първо търси подходящи документи или пасажи от голям набор от данни. Това се прави с помощта на механизъм за плътно извличане, който използва вграждания за представяне както на заявката, така и на документите. След това вгражданията се използват за изчисляване на оценки за сходство и се извличат най-високо класираните документи.
  • Поколение: С най-добрите подходящи документи в ръка, те след това се насочват към генератор на последователност към последователност заедно с първоначалната заявка. След това този генератор изработва крайния изход, извличайки контекст както от заявката, така и от извлечените документи.

2. Плътно извличане:

Традиционните системи за извличане често разчитат на оскъдни представяния като TF-IDF. Въпреки това, RAG LLM използва плътни представяния, където както заявката, така и документите са вградени в непрекъснати векторни пространства. Това позволява по-нюансирани сравнения на сходство, улавяйки семантичните връзки извън обикновеното съвпадение на ключови думи.

3. Генериране от последователност към последователност:

Извлечените документи действат като разширен контекст за модела на генериране. Този модел, често базиран на архитектури като Transformers, след това генерира крайния изход, като гарантира, че е съгласуван и контекстуално подходящ.

Търсене на документи

Индексиране и извличане на документи

За ефективно извличане на информация, особено от големи документи, данните често се съхраняват във векторна база данни. Всяка част от данни или документ се индексира въз основа на вектор за вграждане, който улавя семантичната същност на съдържанието. Ефективното индексиране гарантира бързо извличане на подходяща информация въз основа на подкана за въвеждане.

Векторни бази данни

Векторна база данни

Източник: Redis

Векторните бази данни, понякога наричани векторно съхранение, са персонализирани бази данни, умели да съхраняват и извличат векторни данни. В областта на изкуствения интелект и компютърните науки векторите по същество са списъци с числа, символизиращи точки в многоизмерно пространство. За разлика от традиционните бази данни, които са по-настроени към таблични данни, векторните бази данни блестят в управлението на данни, които естествено пасват на векторен формат, като например вграждания от AI модели.

Някои забележителни векторни бази данни включват Annoy, Фаис от Мета, Милвус, и Шишарка. Тези бази данни са основни в приложенията на AI, като помагат при задачи, вариращи от системи за препоръки до търсене на изображения. Платформи като AWS също предлагат услуги, пригодени за нуждите на векторни бази данни, като Amazon OpenSearch Service и Amazon RDS за PostgreSQL. Тези услуги са оптимизирани за конкретни случаи на употреба, като осигуряват ефективно индексиране и заявки.

Разкъсване за уместност

Като се има предвид, че много документи могат да бъдат обширни, често се използва техника, известна като „разкъсване“. Това включва разделяне на големи документи на по-малки, семантично съгласувани парчета. След това тези части се индексират и извличат при необходимост, като се гарантира, че най-подходящите части от документа се използват за бързо разширяване.

Съображения за контекстния прозорец

Всеки LLM работи в контекстен прозорец, който по същество е максималното количество информация, което може да разгледа наведнъж. Ако външни източници на данни предоставят информация, която надхвърля този прозорец, тя трябва да бъде разделена на по-малки части, които се побират в контекстния прозорец на модела.

Ползи от използването на генериране с подобрено извличане

  1. Подобрена точност: Чрез използване на външни източници на данни, RAG LLM може да генерира отговори, които не се основават само на неговите данни за обучение, но също така се информират от най-подходящата и актуална информация, налична в корпуса за извличане.
  2. Преодоляване на пропуските в знанията: RAG ефективно се справя с присъщите ограничения на знанията на LLM, независимо дали се дължи на прекъсването на обучението на модела или на липсата на специфични за домейна данни в неговия обучителен корпус.
  3. Гъвкавост: RAG може да се интегрира с различни външни източници на данни, от собствени бази данни в рамките на организация до публично достъпни интернет данни. Това го прави адаптивен към широк спектър от приложения и индустрии.
  4. Намаляване на халюцинациите: Едно от предизвикателствата с LLM е потенциалът за „халюцинации“ или генериране на фактически невярна или изфабрикувана информация. Като предоставя контекст на данни в реално време, RAG може значително да намали шансовете за такива резултати.
  5. скалируемост: Едно от основните предимства на RAG LLM е способността му за мащабиране. Чрез разделяне на процесите на извличане и генериране, моделът може ефективно да обработва огромни набори от данни, което го прави подходящ за приложения в реалния свят, където данните са в изобилие.

Предизвикателства и съображения

  • Изчислителни разходи: Двуетапният процес може да бъде изчислително интензивен, особено когато се работи с големи масиви от данни.
  • Зависимост от данни: Качеството на извлечените документи пряко влияе върху качеството на генериране. Следователно наличието на изчерпателен и добре подбран корпус за извличане е от решаващо значение.

Заключение

Чрез интегриране на процесите на извличане и генериране, Retrieval-Augmented Generation предлага стабилно решение за задачи, изискващи много знания, като гарантира резултати, които са както информирани, така и контекстуално подходящи.

Истинското обещание на RAG се крие в неговите потенциални приложения в реалния свят. За сектори като здравеопазването, където навременната и точна информация може да бъде ключова, RAG предлага възможност за безпроблемно извличане и генериране на прозрения от огромна медицинска литература. В сферата на финансите, където пазарите се развиват с всяка минута, RAG може да предостави прозрения в реално време, управлявани от данни, подпомагайки вземането на информирани решения. Освен това в академичните среди и научните изследвания учените могат да използват RAG за сканиране на огромни хранилища с информация, което прави прегледите на литературата и анализа на данни по-ефективни.

Прекарах последните пет години, потапяйки се в завладяващия свят на машинното обучение и дълбокото обучение. Моята страст и опит ме накараха да допринеса за над 50 различни проекта за софтуерно инженерство, със специален фокус върху AI/ML. Продължаващото ми любопитство също ме насочи към обработката на естествен език, област, която нямам търпение да проуча по-нататък.