۳۰ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

RAG چیست؟ LLM های دقیق تر و قابل اعتمادتر

تولید افزوده شده با بازیابی از منابع داده خارجی برای رفع دو نقص در مدل های زبان بزرگ، مجموعه های آموزشی قدیمی و پنجره های زمینه محدود استفاده می کند.

تولید افزوده شده با بازیابی از منابع داده خارجی برای رفع دو نقص در مدل های زبان بزرگ، مجموعه های آموزشی قدیمی و پنجره های زمینه محدود استفاده می کند.

در تمرینی در مورد آزمایش‌های آزمایشی، از مدل زبان بزرگ GPT-4 پرسیدم “نسل تقویت‌شده با بازیابی چیست؟” با استفاده از پلاگین Browse آن، که یکی از پیاده‌سازی‌های تولید تقویت‌شده بازیابی است.

این چیزی است که GPT-4 در نهایت به من گفت، پس از اینکه از آن خواستم پاسخ خود را دوباره تولید کند:

—————–

نسل تقویت شده بازیابی (RAG) یک چارچوب هوش مصنوعی است که به طور قابل توجهی بر حوزه پردازش زبان طبیعی (NLP) تأثیر می گذارد. برای بهبود دقت و غنای محتوای تولید شده توسط مدل های زبانی طراحی شده است. در اینجا ترکیبی از نکات کلیدی در مورد RAG از منابع مختلف آمده است:

– RAG سیستمی است که حقایق را از یک پایگاه دانش خارجی بازیابی می کند تا زمینه را برای مدل های زبان بزرگ (LLM) فراهم کند. این زمینه سازی تضمین می کند که اطلاعات تولید شده توسط LLM ها بر اساس داده های دقیق و جاری است، که به ویژه با توجه به اینکه LLM ها گاهی اوقات می توانند خروجی های متناقض تولید کنند بسیار مهم است.

– این چارچوب به‌عنوان یک مدل ترکیبی عمل می‌کند و مدل‌های بازیابی و تولیدی را ادغام می‌کند. این ادغام به RAG اجازه می دهد تا متنی را تولید کند که نه تنها از نظر متنی دقیق است، بلکه از نظر اطلاعات نیز غنی است. توانایی RAG برای استخراج از پایگاه‌های اطلاعاتی گسترده، آن را قادر می‌سازد تا محتوای مرتبط و مفصلی را به فرآیند تولید کمک کند.

– RAG به محدودیتی از مدل‌های زبانی اساسی می‌پردازد، که عموماً به‌طور آفلاین در مجموعه‌های دامنه وسیع آموزش داده می‌شوند و با اطلاعات جدید پس از آموزش به‌روزرسانی نمی‌شوند. این باعث می شود آنها برای کارهایی که نیاز به دانش خاص دامنه دارند، کارایی کمتری داشته باشند. در مقابل، RAG می‌تواند به جدیدترین داده‌ها دسترسی داشته باشد، و آن را سازگارتر می‌کند و می‌تواند عملکرد خوبی در برنامه‌های خاص دامنه داشته باشد[۷†source].

Kinetica روی ChatGPT برای جستجوهای پایگاه داده SQL زبان طبیعی ضربه می زند

– در مقایسه با مدل‌های تولید متن سنتی، RAG مزایای قابل‌توجهی از خود نشان داده و در بسیاری از وظایف NLP به عملکردی پیشرفته دست یافته است. توانایی آن در تقویت فرآیند تولید با اطلاعات بازیابی شده، آن را به ابزاری قدرتمند برای ایجاد متن باکیفیت و آموزنده تبدیل می‌کند【۸†منبع】.

قابلیت‌های ترکیبی RAG برای بازیابی و تولید متن، آن را به ابزاری نوآورانه در NLP تبدیل می‌کند که ارتباط و کیفیت خروجی مدل‌های زبان را افزایش می‌دهد.

——————

به استثنای چند نکته اغراق آمیز، پاسخ مناسبی است. این واقعیت را نادیده گرفت که RAG در تحقیقات هوش مصنوعی فیسبوک (اکنون متا) ایجاد شده است.

من نتایج نسبتاً خوبی با استفاده از پیاده‌سازی RAG برای مواردی داشته‌ام که LLM‌های تقویت‌نشده فاقد اطلاعات فعلی هستند، و به‌ویژه در مواردی که LLM پایه از ریل خارج می‌شود و شروع به توهم زدن حقایق خود می‌کند. از سوی دیگر، من دیده ام که LLM ها حتی زمانی که از RAG استفاده می کنند، دچار توهم شده اند.

استفاده از منابع خارجی اطلاعات (بخش بازیابی RAG) تنها به معنای اجرای جستجوی وب نیست. همچنین می‌تواند به این معنا باشد که اسناد خود را برای استفاده از LLM ارائه دهید یا LLM را به اسناد وب خاص نشان دهید (بدون نیاز به جستجوی اضافی)، برای مثال همانطور که توسط همکار InfoWorld من شارون ماچلیس در این مقاله توضیح داده شده است.< /p>

مشکلات: توهمات LLM و زمینه محدود

LLM ها معمولاً با استفاده از منابع گران قیمت برای آموزش زمان زیادی نیاز دارند، گاهی اوقات ماه ها زمان اجرا با ده ها پردازنده گرافیکی سرور پیشرفته مانند NVIDIA H100s. به روز نگه داشتن LLM ها با بازآموزی از ابتدا راهگشا نیست، اگرچه فرآیند کم هزینه تر تنظیم دقیق مدل پایه بر روی داده های جدیدتر می تواند کمک کننده باشد.

12 نمونه از فناوری های قدیمی که هرگز نمی میرند

تنظیم دقیق گاهی اوقات اشکالاتی دارد، اما می‌تواند عملکرد موجود در مدل پایه را کاهش دهد (مانند درخواست‌های همه منظوره که به خوبی در Llama رسیدگی می‌شوند) هنگام افزودن عملکرد جدید با تنظیم دقیق (مانند تولید کد به کد لاما اضافه شده است).

اگر از یک LLM که بر روی داده‌هایی که در سال ۲۰۲۲ به پایان رسیده آموزش دیده است، در مورد چیزی که در سال ۲۰۲۳ رخ داده است بپرسید، چه اتفاقی می‌افتد؟ دو احتمال: یا متوجه می شود که نمی داند یا نمی داند. اگر اولی باشد، معمولاً اطلاعات آموزشی خود را به شما می گوید، به عنوان مثال. “از آخرین به روز رسانی من در ژانویه ۲۰۲۲، من اطلاعاتی در مورد … داشتم.” اگر دومی باشد، سعی می‌کند بر اساس داده‌های قدیمی‌تر، مشابه اما نامربوط به شما پاسخی بدهد، یا ممکن است به طور کامل چیزهایی را بسازد (توهم).

برای جلوگیری از برانگیختن توهمات LLM، گاهی اوقات ذکر تاریخ یک رویداد یا یک URL وب مرتبط در درخواست شما کمک می کند. شما همچنین می توانید یک سند مرتبط را ارائه دهید، اما ارائه اسناد طولانی (چه با ارائه متن یا URL) فقط تا زمانی کار می کند که به محدودیت زمینه LLM برسد و سپس خواندن آن متوقف شود. به هر حال، محدودیت‌های زمینه در بین مدل‌ها متفاوت است: دو مدل Claude یک پنجره زمینه ۱۰۰K توکن ارائه می‌دهند، که با حدود ۷۵۰۰۰ کلمه کار می‌کند، که بسیار بالاتر از بسیاری از LLM‌های دیگر است.

راه حل: LLM را با حقایق پایه گذاری کنید

همانطور که از عنوان و ابتدای این مقاله می‌توانید حدس بزنید، یک پاسخ برای هر دوی این مشکلات، نسل افزوده شده با بازیابی است. در سطح بالایی، RAG با ترکیب یک جستجوی اینترنتی یا سند با یک مدل زبانی کار می‌کند، به روش‌هایی که با تلاش برای انجام دو مرحله به صورت دستی، مشکلاتی را که با آن مواجه می‌شوید، برطرف می‌کند، برای مثال مشکل بیش از حد خروجی جستجو. محدودیت بافت مدل زبان.

مشاغل توسعه دهنده نرم افزار: چگونه اکنون استخدام شویم

اولین گام در RAG استفاده از پرس و جو برای جستجوی اینترنتی یا سند یا پایگاه داده و بردار کردن اطلاعات منبع به شکل متراکم با ابعاد بالا است، معمولاً با تولید یک بردار جاسازی و ذخیره آن در یک پایگاه داده برداری. این مرحله بازیابی است.

سپس می توانید خود پرس و جو را بردارید و از FAISS یا جستجوی مشابه دیگری استفاده کنید، معمولاً با استفاده از یک متریک کسینوس برای شباهت، در مقابل پایگاه داده برداری، و از آن برای استخراج مرتبط ترین بخش ها (یا K آیتم های برتر) اطلاعات منبع و ارائه آنها به LLM به همراه متن پرس و جو استفاده کنید. این مرحله افزایش است.

در نهایت، LLM، که در مقاله اصلی هوش مصنوعی فیس بوک به عنوان مدل seq2seq نامیده می شود، پاسخ ایجاد می کند. این مرحله تولید است.

این همه پیچیده به نظر می رسد، اما واقعاً به اندازه پنج خط پایتون اگر از چارچوب LangChain برای هماهنگی استفاده کنید :

from langchain.document_loaders import WebBaseLoader
from langchain.indexes import VectorstoreIndexCreator
loader = WebBaseLoader("https://www.promptingguide.ai/techniques/rag")
index = VectorstoreIndexCreator().from_loaders([loader])
index.query("What is RAG?")

بنابراین RAG به دو مشکل در مدل‌های زبان بزرگ می‌پردازد: مجموعه‌های آموزشی قدیمی و اسناد مرجع که از پنجره‌های زمینه LLM فراتر می‌روند. با ترکیب بازیابی اطلاعات فعلی، برداری، افزایش اطلاعات با استفاده از جستجوی مشابه برداری، و هوش مصنوعی gفعال، می توانید نتایج فعلی تر، مختصرتر و مستدل تر از آنچه می توانید با استفاده از جستجو یا جستجو بدست آورید. هوش مصنوعی مولد به تنهایی.