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

Techboy

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

استفاده از پایگاه داده گراف Neo4J برای هوش مصنوعی در Azure

تکنیک‌های جدید پایگاه‌های داده گراف را به ابزاری قدرتمند برای پایه‌گذاری مدل‌های زبان بزرگ در داده‌های خصوصی تبدیل می‌کنند.

تکنیک‌های جدید پایگاه‌های داده گراف را به ابزاری قدرتمند برای پایه‌گذاری مدل‌های زبان بزرگ در داده‌های خصوصی تبدیل می‌کنند.

هنگامی که از هیاهوی چت بات عبور کردید، واضح است که هوش مصنوعی مولد ابزار مفیدی است که راهی برای پیمایش برنامه‌ها و سرویس‌ها با استفاده از زبان طبیعی ارائه می‌کند. با گره زدن مدل‌های زبان بزرگ (LLM) به منابع داده خاص، می‌توانیم از خطرات ناشی از استفاده از چیزی جز داده‌های آموزشی اجتناب کنیم.

در حالی که تنظیم دقیق یک LLM بر روی داده‌های خاص امکان‌پذیر است، اما می‌تواند گران و زمان‌بر باشد، و همچنین می‌تواند شما را در یک چارچوب زمانی خاص قفل کند. اگر می‌خواهید پاسخ‌های دقیق و به‌موقع دریافت کنید، باید برای کار با داده‌های خود از تولید تقویت‌شده بازیابی (RAG) استفاده کنید.

RAG: قلب Copilots مایکروسافت

شبکه های عصبی که LLM ها را تامین می کنند، در اصل، موتورهای جستجوی برداری پیچیده ای هستند که مسیرهای بردارهای معنایی را در یک فضای n بعدی برون یابی می کنند، جایی که هرچه ابعاد بالاتر باشد، مدل پیچیده تر است. بنابراین، اگر می‌خواهید از RAG استفاده کنید، باید یک نمایش برداری از داده‌های خود داشته باشید که هم بتواند درخواست‌ها را بسازد و هم بردارهایی را که برای تولید خروجی از یک LLM استفاده می‌شوند، بذر کند. به همین دلیل است که یکی از تکنیک هایی است که به Copilot های مختلف مایکروسافت قدرت می دهد.

من قبلاً در مورد این رویکردها صحبت کرده‌ام، به Prompt Flow Azure AI Studio، چارچوب عامل هوشمند مایکروسافت Semantic Kernel، تقویت مبتنی بر هوش مصنوعی Open Platform Power در Q و A مجدد مهندسی شده آن اشاره کرده‌ام. Maker Copilot Studio و موارد دیگر. در تمام این رویکردها، یک ابزار کلیدی وجود دارد که باید به برنامه های خود بیاورید: یک پایگاه داده برداری. این به شما امکان می دهد از ابزارهای جاسازی استفاده شده توسط یک LLM برای تولید بردارهای متنی برای محتوای خود استفاده کنید، جستجو را سرعت می بخشد و دانه های لازم را برای ایجاد یک گردش کار RAG فراهم می کند. در عین حال، RAG و رویکردهای مشابه تضمین می‌کنند که داده‌های سازمانی شما در سرورهای شما باقی می‌مانند و در معرض دنیای گسترده‌تر فراتر از جستارهایی که با استفاده از کنترل‌های دسترسی مبتنی بر نقش محافظت می‌شوند، قرار نمی‌گیرند.

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

Copilot Runtime: ساختن هوش مصنوعی در ویندوز

افزودن نمودارها به هوش مصنوعی Azure با Neo4j

پایگاه داده های گراف مانند این نباید با مایکروسافت گراف اشتباه گرفته شوند. از یک مدل گره برای پرس و جوها استفاده می کند، اما از آن برای استنتاج روابط بین گره ها استفاده نمی کند. پایگاه داده های گراف ابزار پیچیده تری هستند و اگرچه می توان آنها را با استفاده از GraphQL پرس و جو کرد، اما با استفاده از ابزارهایی مانند موتور جستجوی Gremlin، فرآیند پرس و جو بسیار پیچیده تری دارند.

یکی از شناخته شده ترین پایگاه داده های نمودار، Neo4j است که اخیراً از  پشتیبانی می کند. نسخه سازمانی سرویس میزبان ابری خود، Aura، در Azure. موجود در بازار Azure، SaaS است نسخه ای از ابزار آشنا در محل، به شما این امکان را می دهد که بدون نیاز به صرف زمان برای پیکربندی نصب خود، با داده ها شروع کنید. دو نسخه در دسترس هستند، با گزینه‌های حافظه مختلف که بر اساس ظرفیت رزرو شده ساخته شده‌اند، بنابراین نیازی به نگرانی در مورد در دسترس نبودن نمونه‌ها در زمان نیاز ندارید. ارزان نیست، اما کار با حجم زیادی از داده را ساده می کند و در زمان کار با دریاچه های داده در مقیاس بزرگ در Fabric، در زمان زیادی صرفه جویی می کند.

ایجاد نمودارهای دانش از داده های شما

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

پیمایش غلظت ابر و قفل هوش مصنوعی

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

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

حتی امکان استفاده از LLM برای کمک به تولید آن نمودارهای دانش وجود دارد. ابزارهای خلاصه سازی موجودیت های خاصی را در پایگاه داده گراف شناسایی می کنند و سپس پیوندهای مورد نیاز برای تعریف روابط را ارائه می دهند. این رویکرد به شما امکان می دهد مدل های داده موجود را به سرعت در نمودارها گسترش دهید و آنها را به عنوان بخشی از یک برنامه کاربردی مبتنی بر هوش مصنوعی مفیدتر می کند. در همان زمان، می‌توانید از Azure Open AI API برای افزودن مجموعه‌ای از جاسازی‌ها به داده‌های خود استفاده کنید تا از جستجوی برداری برای کاوش داده‌های خود به عنوان بخشی از یک جریان کاری به سبک عامل با استفاده از LangChain یا Semantic Kernel استفاده کنید.

استفاده از نمودارها در هوش مصنوعی: GraphRAG

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

یک نکته در هنگام کار با مقادیر زیادی داده خصوصی با استفاده از LLM، اندازه پنجره زمینه است. در عمل، استفاده از تعداد توکن‌های مورد نیاز برای ارائه داده‌های زیادی به عنوان بخشی از یک درخواست، از نظر محاسباتی بسیار گران است. برای دور زدن این محدودیت به یک رویکرد RAG نیاز دارید، و GraphRAG فراتر می رود و به شما امکان می دهد زمینه بسیار بیشتری را در مورد درخواست خود ارائه دهید.

Microsoft Dev Box: ایستگاه کاری توسعه شما در Azure

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

به جای جستجوی عبارات مشابه، مانند موتورهای جستجوی سنتی، GraphRAG به شما امکان می دهد اطلاعات را از کل مجموعه داده ای که استفاده می کنید، اعم از رونوشت تماس های پشتیبانی یا تمام اسناد مرتبط با یک پروژه خاص، استخراج کنید.

>

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

داشتن یک پایگاه داده گراف مانند Neo4j در بازار Azure ابزاری را در اختیار شما قرار می دهد که به شما کمک می کند روابط موجود در داده های خود را به گونه ای درک و تجسم کنید که از انسان ها و ماشین ها پشتیبانی می کند. ادغام آن با Fabric باید به ساخت برنامه‌های کاربردی مبتنی بر LLM در مقیاس بزرگ، آگاه از زمینه، کمک کند، و به شما امکان می‌دهد نتایج پایه‌ای از داده‌های خود به‌گونه‌ای دریافت کنید که رویکردهای استاندارد RAG ممکن است از دست بروند. جالب است که ببینیم آیا مایکروسافت شروع به پیاده سازی GraphRAG در ابزار Prompt Flow LLM خود می کند یا خیر.