۳۰ آذر ۱۴۰۳

Techboy

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

ساخت برنامه های LLM با جستجوی برداری در Azure Cognitive Services

API جستجوی شناختی مایکروسافت اکنون جستجوی برداری را به عنوان یک سرویس ارائه می‌کند که برای استفاده با مدل‌های زبان بزرگ در Azure OpenAI و فراتر از آن آماده است.

API جستجوی شناختی مایکروسافت اکنون جستجوی برداری را به عنوان یک سرویس ارائه می‌کند که برای استفاده با مدل‌های زبان بزرگ در Azure OpenAI و فراتر از آن آماده است.

ابزارهایی مانند Semantic Kernel، TypeChat و LangChain امکان ساخت برنامه‌های کاربردی پیرامون فناوری‌های هوش مصنوعی مولد را فراهم می‌کنند. مانند Azure OpenAI. دلیل آن این است که آنها به شما امکان می دهند محدودیت هایی را در اطراف مدل زبان بزرگ زیرین (LLM) قرار دهید، و از آن به عنوان ابزاری برای ساخت و اجرای رابط های زبان طبیعی استفاده کنید.

در اصل یک LLM ابزاری برای پیمایش در فضای معنایی است، جایی که یک شبکه عصبی عمیق هجای بعدی را در زنجیره ای از نشانه ها پیش بینی می کند که از دستور اولیه شما پیروی می کند. در جایی که یک درخواست با پایان باز است، LLM می‌تواند ورودی‌های خود را تحت تأثیر قرار دهد و محتوایی تولید کند که ممکن است معقول به نظر برسد اما در واقع کاملاً مزخرف است.

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

چگونه می‌توانیم از خروجی‌های نادرست و بی‌معنی مدل‌های زبان بزرگ خود جلوگیری کنیم و اطمینان حاصل کنیم که کاربرانمان پاسخ‌های دقیق و معقولی به سؤالات خود دریافت می‌کنند؟

محدود کردن مدل‌های زبان بزرگ با حافظه معنایی

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

می‌توانید یک LLM را با استفاده از ابزاری مانند TypeChat برای اجبار یک قالب خروجی خاص، یا با استفاده از خط لوله هماهنگ‌سازی مانند Semantic Kernel برای کار با منابع اضافی اطلاعات قابل اعتماد محدود کنید، و در واقع مدل را در یک معنایی شناخته شده «زمین‌سازی» کنید. فضا. در اینجا LLM می‌تواند کاری را که در آن خوب است انجام دهد، خلاصه کردن یک اعلان ساخته شده و تولید متن بر اساس آن فرمان، بدون اضافه‌کردن (یا حداقل با کاهش قابل‌توجه احتمال وقوع بیش از حد).

یک کنترل کننده احراز هویت برای حداقل API در ASP.NET Core بسازید

آنچه مایکروسافت آن را “حافظه معنایی” می نامد، پایه و اساس این رویکرد آخر است. حافظه معنایی از جستجوی برداری برای ارائه اعلانی استفاده می کند که می تواند برای ارائه یک خروجی واقعی از یک LLM استفاده شود. یک پایگاه داده برداری، زمینه درخواست اولیه را مدیریت می کند، یک جستجوی برداری داده های ذخیره شده را پیدا می کند که با درخواست اولیه کاربر مطابقت دارد، و LLM متنی را بر اساس آن داده تولید می کند. می‌توانید این رویکرد را در عمل با Bing Chat مایکروسافت مشاهده کنید، که از ابزارهای جستجوی بردار بومی Bing برای ایجاد پاسخ‌های گرفته‌شده از پایگاه داده جستجوی خود استفاده می‌کند.

حافظه معنایی پایگاه‌های داده برداری و جستجوی برداری را ابزاری برای ارائه برنامه‌های کاربردی مبتنی بر LLM، زمینی و قابل استفاده می‌سازد. می‌توانید از تعداد فزاینده پایگاه‌های اطلاعاتی برداری منبع باز استفاده کنید یا نمایه‌های برداری را به پایگاه‌های داده آشنای SQL و NoSQL اضافه کنید. یک شرکت جدید که به‌خصوص مفید به نظر می‌رسد، جستجوی شناختی Azure را گسترش می‌دهد، افزودن یک نمایه برداری به داده های شما و APIهای جدید برای جستجو در آن نمایه.

افزودن نمایه سازی برداری به جستجوی شناختی Azure

سازه‌های

جستجوی شناختی Azure در مورد کار خود مایکروسافت در زمینه ابزار جستجو، ارائه ترکیبی از پرس و جوهای آشنای Lucene و ابزار جستجوی زبان طبیعی خود. Azure Cognitive Search یک پلتفرم نرم افزاری به عنوان سرویس است که داده های خصوصی شما را میزبانی می کند و از API های خدمات شناختی برای دسترسی به محتوای شما استفاده می کند. مایکروسافت اخیراً پشتیبانی برای ساخت و استفاده از نمایه‌های برداری اضافه کرده است، به شما امکان می دهد از جستجوهای مشابه برای رتبه بندی نتایج مرتبط از داده های خود و استفاده از آنها در برنامه های مبتنی بر هوش مصنوعی استفاده کنید. این امر جستجوی شناختی Azure را به ابزاری ایده‌آل برای استفاده در برنامه‌های LLM میزبان Azure تبدیل می‌کند که با استفاده از Semantic Kernel و Azure OpenAI ساخته شده‌اند، با افزونه های هسته معنایی برای جستجوی شناختی در C# و Python.

مانند همه سرویس‌های Azure، Azure Cognitive Search یک سرویس مدیریت‌شده است که با سایر سرویس‌های Azure کار می‌کند و به شما امکان می‌دهد تا در طیف گسترده‌ای از سرویس‌های ذخیره‌سازی Azure فهرست‌بندی و جستجو کنید، میزبان متن و تصاویر و همچنین صدا و ویدیو. داده ها در چندین منطقه ذخیره می شوند، در دسترس بودن بالا و کاهش تأخیر و زمان پاسخ. به عنوان یک مزیت اضافی، برای برنامه های سازمانی، می توانید از Microsoft Entra ID (نام جدید Azure Active Directory) برای کنترل دسترسی به داده های خصوصی شما.

SnapLogic از ابزار بدون کد برای ایجاد برنامه های مبتنی بر LLM رونمایی می کند

تولید و ذخیره بردارهای جاسازی برای محتوای شما

یک نکته قابل توجه این است که جستجوی شناختی Azure یک “بردار جاسازی خود را بیاورید”. جستجوی شناختی جاسازی‌های برداری مورد نیاز را برای شما ایجاد نمی‌کند، بنابراین باید از Azure OpenAI یا APIهای تعبیه‌شده OpenAI برای ایجاد جاسازی برای محتوای خود استفاده کنید. ممکن است نیاز به تکه تکه کردن فایل‌های بزرگ داشته باشد تا در محدودیت‌های توکن سرویس بمانید. برای ایجاد جداول جدید برای داده های نمایه شده برداری در صورت لزوم آماده باشید.

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

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

شروع به جستجوی برداری در جستجوی شناختی Azure

استفاده از جستجوی شناختی Azure برای جستارهای برداری ساده است. با ایجاد منابع برای Azure OpenAI و Cognitive Search در همان منطقه شروع کنید. این به شما امکان می دهد فهرست جستجوی خود را با جاسازی هایی با حداقل تاخیر بارگذاری کنید. برای بارگیری فهرست باید با Azure OpenAI و APIهای جستجوی شناختی تماس بگیرید، بنابراین بهتر است با افزودن کدی که تلاش‌های مجدد را مدیریت می‌کند، اطمینان حاصل کنید که کد شما می‌تواند به محدودیت‌های احتمالی نرخ در سرویس پاسخ دهد. برای شما. همانطور که با API های سرویس کار می کنید، باید از تماس های ناهمزمان هم برای ایجاد جاسازی ها و هم برای بارگیری فهرست استفاده کنید.

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

زیر سوال بردن تاثیر محیطی ابر

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

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

فراتر از بردارهای متن ساده

قابلیت‌های برداری Azure Cognitive Search بیش از تطبیق متن است. جستجوی شناختی می‌تواند با جاسازی‌های چند زبانه کار کند تا از جستجو در اسناد به زبان‌های مختلف پشتیبانی کند. می توانید از API های پیچیده تری نیز استفاده کنید. به عنوان مثال، می‌توانید ابزارهای جستجوی معنایی Bing را در یک جستجوی ترکیبی ترکیب کنید که می‌تواند نتایج دقیق‌تری ارائه دهد و کیفیت خروجی برنامه مبتنی بر LLM شما را بهبود بخشد.

مایکروسافت به سرعت در حال تولید ابزارها و تکنیک هایی است که برای ساخت موتور جستجوی Bing مجهز به GPT-4 و Copilot های مختلف آن استفاده می کند. موتورهای ارکستراسیون مانند Semantic Kernel و Azure AI Studio در قلب رویکرد مایکروسافت برای استفاده از مدل های زبان بزرگ هستند. اکنون که این پایه‌ها گذاشته شده‌اند، می‌بینیم که شرکت فناوری‌های حمایتی بیشتری را ارائه می‌کند. جستجوی برداری و شاخص برداری کلیدی برای ارائه پاسخ های دقیق هستند. مایکروسافت با ایجاد ابزارهای آشنا برای ارائه این موارد کمک می کند تا هزینه ها و منحنی های یادگیری ما را به حداقل برسانیم.