۳۰ آذر ۱۴۰۳

Techboy

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

ساخت عوامل هوش مصنوعی با Semantic Kernel

ابزارهای ارکستراسیون LLM مایکروسافت ممکن است در نهایت به وعده سه دهه ای عوامل نرم افزاری مستقل عمل کنند.

ابزارهای ارکستراسیون LLM مایکروسافت ممکن است در نهایت به وعده سه دهه ای عوامل نرم افزاری مستقل عمل کنند.

در اوایل دهه ۱۹۹۰، من در یک آزمایشگاه تحقیقاتی مخابراتی بزرگ به عنوان بخشی از گروه حلقه محلی پیشرفته کار می کردم. حوزه مشکل ما «آخرین مایل» بود – دریافت خدمات به خانه‌های مردم. یکی از حوزه‌های تحقیقاتی من شامل فکر کردن به این بود که وقتی شبکه از سرویس‌های آنالوگ به دیجیتال کامل شد چه اتفاقی می‌افتد.

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

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

بیش از ۳۰ سال طول کشیده است تا صنعت نرم‌افزار به این تحقیقات پیشگام دست یابد، اما با ترکیبی از مدل‌های زبان بزرگ (LLM) مبتنی بر ترانسفورماتور و خطوط لوله‌های ارکستراسیون تطبیقی< /a>، بالاخره می‌توانیم آن ایده‌های اصلی جاه‌طلبانه را ارائه کنیم.

هسته معنایی به عنوان یک چارچوب عامل

تیم هسته معنایی مایکروسافت بر اساس مدل دستیار OpenAI ساخته شده است تا یک نوع عامل هوشمند را ارائه دهد. ، همراه با مجموعه ای از ابزارها برای مدیریت فراخوانی چندین تابع. آنها همچنین راهی برای مدیریت پیام‌های ارسال شده به و از OpenAI API و استفاده از افزونه‌ها برای ادغام چت عمومی با ادغام‌های مبتنی بر داده‌های زمینی با استفاده از RAG ارائه می‌کنند.

تیم شروع به فراتر رفتن از مدل اصلی ارکستراسیون شبیه LangChain با نسخه اخیر ۱.۰۱ و اکنون به Semantic Kernel به عنوان زمان اجرا برای گفتگوی متنی فکر می کند. این نیاز به مدیریت بسیار بیشتری از مکالمه و تاریخچه سریع استفاده شده دارد. همه تعاملات از طریق تابع چت انجام می شود، با Semantic Kernel که هم ورودی ها و هم خروجی ها را مدیریت می کند.

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

استفاده از مدل های یادگیری ماشینی Hugging Face در Azure

نقش افزونه های Semantic Kernel

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

با مدیریت وضعیت گفتگو برای شما، Semantic Kernel عامل زمینه برای نماینده شما. سپس به روشی برای تعامل با ابزارهای خارجی نیاز دارد. اینجاست که افزونه‌ها توضیحات مناسب LLM را به روش ها اضافه کنید. نیازی به انجام بیشتر از افزودن این ابرداده به کد شما نیست. هنگامی که چت وجود دارد، می‌تواند اقداماتی را از طریق API فعال کند، مانند افزایش گرما با استفاده از یک پلت‌فرم خانه هوشمند مانند Home Assistant.

وقتی یک افزونه را به شی هسته Semantic Kernel اضافه می‌کنید، برای هماهنگی مبتنی بر چت در دسترس می‌شود. LLM زیربنایی درک زبان لازم برای اجرای عمل مرتبط با محتمل‌ترین توضیحات افزونه را فراهم می‌کند. این تضمین می کند که کاربرانی که نماینده شما را اداره می کنند نیازی به دقت خسته کننده ندارند. توضیح پلاگین «تنظیم دمای اتاق» را می‌توان با «اتاق را گرم‌تر کنید» یا «اتاق را روی ۱۷ ​​درجه سانتی‌گراد تنظیم کنید» ایجاد شود. هر دو هدف یکسان را نشان می دهند و به Semantic Kernel دستور می دهند تا متد مناسب را فراخوانی کند.

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

فریم ورک مایکروسافت دات نت MAUI می رسد

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

آیا عوامل مبتنی بر LLM می توانند مستقل باشند؟

مجموعه دیگری از توابع هسته معنایی شروع به پیاده سازی شکلی از خودمختاری می کند. اینجاست که همه چیز واقعاً جالب می شود، زیرا با مدیریت زمینه، عامل Semantic Kernel ما می تواند افزونه های مناسب را از کتابخانه فعلی خود برای ارائه پاسخ انتخاب کند.

در اینجا می‌توانیم از برنامه‌ریزان Semantic Kernel استفاده کنیم. برای ایجاد یک گردش کار. برنامه ریز Handlebars که اخیراً منتشر شده است می تواند به صورت پویا یک ارکستراسیون ایجاد کند که شامل حلقه ها و عبارات شرطی است. هنگامی که کاربر یک کار را در یک چت ایجاد می کند، برنامه ریز یک هماهنگی را بر اساس آن دستورالعمل ها ایجاد می کند و در صورت نیاز برای تکمیل کار، افزونه ها را فراخوانی می کند. Semantic Kernel فقط از پلاگین‌هایی استفاده می‌کند که در کد هسته شما تعریف شده‌اند، با استفاده از یک اعلان که تضمین می‌کند فقط آن افزونه‌ها استفاده می‌شوند.

مشکلاتی در مورد کدهایی وجود دارد که به طور مستقل عمل می کند. چگونه می توان مطمئن بود که ثابت می ماند و از اشتباهات و خطاها جلوگیری می کند؟ یک گزینه کار با ابزار Prompt Flow در Azure AI Studio برای یک چارچوب آزمایشی بسازید که دقت برنامه ریزان و افزونه های شما را ارزیابی می کند. می‌تواند از مجموعه بزرگی از داده‌های معیار برای تعیین نحوه عملکرد عامل شما با ورودی‌های مختلف کاربر استفاده کند. شما ممکن است نیاز به ایجاد پرس و جوهای مصنوعی برای به دست آوردن داده های کافی داشته باشید، با استفاده از یک LLM برای تولید درخواست های اولیه.

Copilots مایکروسافت نمونه‌ای از عوامل هوشمند در حال عمل هستند، و خوب است که تیم Semantic Kernel از این اصطلاح استفاده می‌کند. با بیش از ۳۰ سال تحقیق در مورد عوامل نرم‌افزار، تجربیات زیادی برای ارزیابی و بهبود نتایج هماهنگ‌سازی هسته معنایی، و راهنمایی توسعه‌دهندگان در ایجاد تجربیات کاربر و چارچوب‌هایی که این عوامل می‌توانند ارائه دهند، استخراج کرد.< /p>

عوامل هوشمند ۳۰ سال بعد

توجه به این نکته مهم است که مدل عامل Semantic Kernel از یک جهت قابل توجه با مفهوم اصلی عامل متفاوت است: شما کد هوشمندی را برای اجرای پرس‌وجوها در پلتفرم‌های راه دور ارسال نمی‌کنید. اما در حدود ۳۰ سال گذشته، ما شاهد یک انقلاب بزرگ در توسعه برنامه های کاربردی توزیع شده بوده ایم که بسیاری از موارد مورد نیاز برای پشتیبانی از فناوری های عامل را تغییر داده است.

Kubernetes چیست؟ پلت فرم برنامه بعدی شما

نتیجه این رویکرد جدید برای توسعه این است که دیگر نیازی به اجرای کدهای غیرقابل اعتماد و دلخواه در سرورهای راه دور وجود ندارد. درعوض، می‌توانیم از APIها و منابع ابری استفاده کنیم تا یک عامل را به‌عنوان یک گردش کار هماهنگ‌شده که شامل سیستم‌های توزیع‌شده است، در نظر بگیریم. علاوه بر این، آن عامل می تواند به طور هوشمندانه آن ارکستراسیون را بر اساس عملیات قبلی و فعلی سازماندهی مجدد کند. microservices مدرن یک ایده آل هستند پلتفرم برای این، بر پایه مفاهیم معماری سرویس‌محور با توضیحات OpenAPI و GraphQL خود مستند.

به نظر می‌رسد که این مدلی است که Semantic Kernel با ارائه چارچوبی برای میزبانی از آن گردش‌های کاری پویا اتخاذ می‌کند. ترکیب تماس‌های API، جستجوهای برداری، و پلاگین‌های OpenAI با یک داربست برنامه‌ای نسبتاً ساده راهی برای ساختن جایگزینی مدرن برای فرض اصلی عامل به شما می‌دهد. به هر حال، چگونه می‌توانیم عوامل خوش‌خیم را از بدافزار تشخیص دهیم؟ در سال ۱۹۹۴، ویروس‌های رایانه‌ای یک اتفاق نادر بودند، و حملات شبکه‌ای از موضوعات علمی تخیلی بودند.

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

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

از آنجایی که این فناوری‌ها در حال تکامل هستند، مهم است که آنها را به عنوان چیزی کاملاً جدید تلقی نکنید. این نتیجه دهه‌ها کار تحقیقاتی است، کاری که در نهایت کاربران مورد نظر خود را ملاقات می‌کند. در این تحقیقات چیزهای زیادی وجود دارد که می تواند به ما کمک کند عوامل قابل اعتماد، کاربر پسند و هوشمندی را ارائه دهیم که به عنوان پراکسی ما در شبکه نسل بعدی عمل می کنند – دقیقاً همانطور که آن محققان اولیه در دهه ۱۹۹۰ در نظر داشتند.