هوش مصنوعی نقطه چگونه کار می کند؟ آشنایی با RAG و Vector Database

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

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

Foundation models یا مدل‌های پایه (FMs) قلب هوش مصنوعی تولیدی هستند که با استفاده از حجم عظیمی از داده‌ها آموزش دیده‌اند. مدل‌های زبان بزرگ (LLMs) یک کلاس از FMs هستند. به عنوان مثال، خانواده Claude از Anthropic، Llama از Meta و غیره.

شما معمولاً از طریق پلتفرم‌های اختصاصی به این مدل‌ها دسترسی پیدا می‌کنید. به عنوان مثال، Amazon Bedrock، یک سرویس کاملاً مدیریت‌شده با طیف وسیعی از مدل‌های قابل دسترسی از طریق API‌ها است. این مدل‌ها بسیار قدرتمند هستند و می‌توانند به صورت مستقل برای ساخت برنامه‌های هوش مصنوعی تولیدی استفاده شوند.

پس، چرا به پایگاه‌های داده برداری نیاز داریم؟

برای درک بهتر این موضوع، بیایید گامی به عقب برداریم و در مورد محدودیت‌های LLM‌ها صحبت کنیم. من چند مورد رایج را برجسته خواهم کرد.

چرا به RAG نیاز داریم؟

محدودیت‌های مدل‌های زبانی بزرگ (LLMs)

  1. محدودیت دانش: دانش این مدل‌ها اغلب به داده‌هایی که در زمان پیش‌آموزش (pre-trained) یا تنظیم دقیق (fine-tuned) بودند، محدود می‌شود.
  2. هذیان‌گویی: گاهی اوقات، این مدل‌ها پاسخ نادرستی را با اطمینان بالا ارائه می‌دهند.
  3. عدم دسترسی به منابع داده خارجی

شما می‌توانید یک حساب کاربری AWS را راه‌اندازی کنید و شروع به استفاده از مدل‌ها در Amazon Bedrock کنید. اما، اگر بخواهید برنامه‌های هوش مصنوعی تولیدی که مخصوص نیازهای کسب‌وکار شما هستند را بسازید، به داده‌های خصوصی مختص به حوزه یا شرکت خود نیاز دارید (مثلاً یک چت‌بات خدمات مشتری که بتواند به جزئیات مشتری، اطلاعات سفارش و غیره دسترسی داشته باشد).
اکنون امکان آموزش یا تنظیم دقیق این مدل‌ها با داده‌های شما وجود دارد؛ این کار ساده یا مقرون‌به‌صرفه نیست. اما تکنیک‌هایی برای دور زدن این محدودیت‌ها وجود دارد! RAG (که بعداً بحث می‌شود) یکی از آنها است و پایگاه‌های داده برداری نقش کلیدی ایفا می‌کنند.

بهینه سازی مدل های زبانی

RAG – Retrieval Augmented Generation چیست؟

ما محدودیت‌های LLM شامل قطع دانش، توهم، عدم دسترسی به داده‌های درونی و … را پوشش دادیم. البته راه‌های متعددی برای غلبه بر این محدودیت‌ها وجود دارد:

تکنیک‌های مهندسی پرامپت

– مطمئناً این کار به صرفه است اما چگونه می‌توان آن را بر داده‌های خاص دامنه اعمال کرد؟

تنظیم دقیق – Fine Tuning

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


تکنیک RAG یک موضع میانی اتخاذ می‌کند. دو بخش کلیدی در فرآیند کاری RAG وجود دارد:
بخش ۱: درج داده‌ها، جایی است که شما داده‌های منبع خود (pdf، متن، تصاویر و غیره) را می‌گیرید، آن‌ها را به چند قسمت تقسیم می‌کنید، از مدل تعبیه عبور می‌دهید و در پایگاه داده برداری ذخیره می‌کنید.
بخش ۲: این بخش شامل برنامه کاربر نهایی (مثلاً یک چت‌بات) است. کاربر یک پرسش ارسال می‌کند؛ این ورودی با استفاده از همان مدل (تعبیه) که برای داده‌های منبع استفاده شده بود، به تعبیه برداری تبدیل می‌شود. سپس ما یک جستجوی معنایی یا شباهت را برای به دست آوردن نتایج نزدیک‌تر برتر انجام می‌دهیم.
بخش ۳: این نتایج، که به عنوان “زمینه” نیز اشاره می‌شوند، با ورودی کاربر و یک پرسش تخصصی ترکیب می‌شوند. در نهایت این به یک LLM ارسال می‌شود. توجه داشته باشید که این مدل تعبیه نیست، این یک مدل زبان بزرگ است. زمینه افزوده شده در پرسش به مدل کمک می‌کند تا پاسخ دقیق‌تر و مرتبط‌ تری به پرسش کاربر ارائه دهد.

Vector Databases

نگاهی عمیق‌تر به پایگاه‌های داده برداری

پیش از آنکه وارد شویم، بیایید درک کنیم…

بردار چیست؟ (Vector)

بردارها نمایش عددی متن هستند.

  • متن ورودی وجود دارد (که به آن پرامپت هم گفته می‌شود)
  • شما آن را از طریق چیزی به نام مدل تعبیه می‌کنید؛ به آن به عنوان یک تابع بدون حالت فکر کنید
  • شما خروجی را دریافت می‌کنید که یک آرایه از اعداد اعشاری است

مهم است که درک کنید بردارها معنای معنایی را ضبط می‌کنند. بنابراین آن‌ها می‌توانند برای جستجوی مرتبط یا بر اساس زمینه استفاده شوند، نه فقط جستجوی متن ساده.

انواع پایگاه داده برداری (Vector Database)

1- پشتیبانی از نوع داده برداری در پایگاه‌های داده موجود، مانند PostgreSQL، Redis، OpenSearch، MongoDB، Cassandra و غیره.
2- پایگاه‌های داده برداری تخصصی، مانند Pinecone، Weaviate، Milvus، Qdrant، ChromaDB و غیره. این حوزه نیز بسیار سریع در حال پیشرفت است و من مطمئنم که در آینده‌ی نزدیک شاهد موارد بیشتری خواهیم بود! اکنون می‌توانید این فروشگاه‌های برداری تخصصی را از طریق پیشنهادات ابری اختصاصی آنها در AWS اجرا کنید.

اما ما در اینجا می‌خواهم نگاهی به دسته اول بیندازیم. این دسته به عنوان پایگاه داده بومی AWS (ها) پشتیبانی می‌شوند که شامل موارد زیر است:

  • سرویس Amazon OpenSearch
  • Amazon Aurora با سازگاری PostgreSQL
  • Amazon DocumentDB (با سازگاری MongoDB)
  • Amazon MemoryDB برای Redis که در حال حاضر جستجوی برداری را در پیش‌نمایش دارد (در زمان نگارش)


در اینجا روند کار ساده‌شده‌ای از جایگاه پایگاه‌های داده برداری در ابزارهای هوش مصنوعی تولیدی آورده شده است:

  • داده‌های خاص دامنه خود را می‌گیرید، آن‌ها را تقسیم/تکه‌تکه می‌کنید
  • آن‌ها را از طریق مدل تعبیه می‌فرستید، این کار بردارها یا تعبیه‌ها را به شما می‌دهد
  • این تعبیه‌ها را در یک پایگاه داده برداری ذخیره می‌کنید
  • سپس، برنامه‌هایی وجود دارند که پرس‌وجوهای جستجوی معنایی را اجرا می‌کنند و آن‌ها را به روش‌های مختلف ترکیب می‌کنند (RAG یکی از آن‌ها است)

ساده ترین راهکار

تجربه‌ی مدیریت کامل RAG – پایگاه‌های دانش برای Amazon Bedrock

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

حالا چطور می‌توانیم برنامه‌های RAG را با استفاده از Amazon Bedrock بسازیم؟

ادغام برنامه‌ها توسط APIها فراهم می‌شود:
فقط کافی است یک API با نام RetrieveAndGenerate را فراخوانی کنید و پاسخ را دریافت کنید. همه چیز (تعبیه پرسش، جستجوی معنایی، مهندسی عبارت محرک، هماهنگی LLM) مدیریت می‌شود!
Retrieve: برای جریان‌های کاری RAG سفارشی، که در آن فقط پاسخ‌های برتر را استخراج می‌کنید (مانند جستجوی معنایی) و بقیه را طبق انتخاب خود یکپارچه‌سازی می‌کنید.

نقطه
Logo