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

Techboy

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

LLM وحشی خود را با TypeChat رام کنید

مدل‌های زبان بزرگ به معنای عدم استفاده از کنترل‌کننده‌های پیچیده عبارت منظم برای تبدیل متن به داده است. با استفاده از TypeChat، می‌توانید مطمئن شوید که داده‌ها JSON ایمن هستند.

مدل‌های زبان بزرگ به معنای عدم استفاده از کنترل‌کننده‌های پیچیده عبارت منظم برای تبدیل متن به داده است. با استفاده از TypeChat، می‌توانید مطمئن شوید که داده‌ها JSON ایمن هستند.

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

LLMها به عنوان رابط زبان طبیعی

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

طلوع توسعه سیستم های سازگار با محیط زیست

بنابراین به جای ایجاد یک رابط کاربری سنتی برای سفارش، مثلاً همبرگر، رابطی که از دکمه‌ها و فرم‌ها برای جمع‌آوری سفارش استفاده می‌کند، می‌توانید از یک سری تماس‌های LLM استفاده کنید—ابتدا برای تبدیل گفتار به متن و سپس تبدیل به JSON پیام دهید. سپس تنها کاری که مشتری باید انجام دهد این است که تلفن خود را بردارد، روی نماد میکروفون ضربه بزند و “یک چیزبرگر بزرگ با سیب زمینی سرخ شده” بخواهد.

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

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

محدود کردن خروجی های LLM به طرح JSON

اما آنچه واقعاً مورد نیاز است راهی برای بیان همه اینها به صورت برنامه‌نویسی است، بنابراین می‌توانیم کدهای لازم برای ساخت این رابط‌ها را بنویسیم. اینجاست که کتابخانه تایپ چت وارد می‌شود و بر اساس مدل تعریف نوع آشنا و ابزار TypeScript< /a> برای کمک به مدیریت و تجزیه این ارتباطات زبان طبیعی.

به جای ارائه نمونه ساختار JSON، مانند بسیاری از رویکردهای مهندسی محور دیگر، TypeChat از نوع استفاده می کند تعاریفی برای هدایت پاسخ LLM. آزمایشات با دستورهای دست ساز نشان داد که تعریف انواع به سبک TypeScript و استفاده از آنها برای محدود کردن JSON تولید شده توسط یک LLM پاسخ های بهتری ارائه می دهد. علاوه بر این، این پاسخ‌ها می‌توانند توسط Transpiler TypeScript تأیید شوند و اطمینان حاصل شود که خطاها می‌توانند به سرعت شناسایی شوند و به عنوان بازخورد برای ایجاد پاسخ‌های بهتر در آینده استفاده شوند.

مدیر عامل آزول آینده هوش مصنوعی جاوا را درخشان می بیند

بنابراین TypeChat از محدودیت‌هایی برای کاهش خطر پاسخ‌های تصادفی از مدل استفاده می‌کند و در عین حال داده‌های JSON را استخراج می‌کند که می‌تواند توسط برنامه شما استفاده شود. LLM زیربنایی، به دلیل نیاز به یک کلمه بهتر، رام شده است – به سمت استخراج اطلاعات مورد نیاز کد شما از ورودی های زبان طبیعی هدایت شده است. همانطور که مایکروسافت می‌گوید، TypeChat برای تعریف یک «طرح پاسخ» طراحی شده است که هدف را از درخواست‌های کاربر استخراج می‌کند و از آن هدف به عنوان بخشی از تماس API استفاده می‌کند.

استفاده از TypeChat در کد شما

می توانید TypeChat را از npm نصب کنید و از آن به عنوان یک ماژول TypeScript استفاده کنید. تیم توسعه TypeChat توصیه می کند طرح پاسخ خود را خارج از کد برنامه خود بسازید، آن را به عنوان یک رابط ایجاد کنید و آن را همراه با کتابخانه TypeChat وارد کنید. این رویکرد به شما امکان می‌دهد تا درخواست‌های خود را خارج از متن کد خود حفظ کنید و تغییر سریع برنامه و افزودن ویژگی‌های اضافی در صورت نیاز را آسان‌تر می‌کند.

شروع به کار با TypeChat آسان است—تنها چیزی که نیاز دارید دستگاهی است که با نصب اخیر Node.js راه اندازی شده باشد. هنگامی که مخزن TypeChat را کلون کردید، از npm install برای تنظیم آن استفاده کنید. مایکروسافت مجموعه‌ای از نمونه‌ها را ارائه می‌کند که می‌تواند برای آزمایش روش‌های مختلف استفاده از TypeChat ساخته شود. ، به شما کمک می کند تا ببینید چگونه می توان از انواع مختلف رابط زبان طبیعی در کد خود استفاده کرد. شما به نقطه پایانی OpenAI یا Azure OpenAI نیاز دارید، با مدل انتخابی و کلید API شما به عنوان متغیرهای محیطی یا در یک فایل env. که می تواند در زمان اجرا خوانده شود.

ساخت یک رابط TypeChat برای یک مدل زبان بزرگ به سادگی راه‌اندازی مدلی است که استفاده می‌کنید، با استفاده از متغیرهای محیطی خود، سپس بارگذاری یک طرحواره قبل از فراخوانی روش createJsonTranslator TypeChat. سپس می‌توانید با processRequests تماس بگیرید روش با ورودی کاربر خود برای ارائه درخواست شما، سپس قبل از استخراج داده‌های پاسخ از شی JSON حاصل، منتظر پاسخ باشید.

آنچه در مورد رویکرد TypeChat خوب است این است که هنوز هم مدل برنامه نویسی TypeScript (و با فرمت جاوا اسکریپت) آشنا است. شما از درخواست‌ها و پاسخ‌های استاندارد استفاده می‌کنید. تنها کاری که باید انجام دهید این است که یک شی متنی را وارد کنید، آن را به نقطه پایانی LLM تحویل دهید، و داده‌های قالب‌بندی شده‌ای را استخراج کنید که مطابق با طرحی است که قبلاً طراحی کرده‌اید و برای استفاده توسط منطق تجاری برنامه شما آماده است. هیچ چیز جدیدی در اینجا وجود ندارد – خروجی LLM محدود مانند هر API RESTful است.

اسنیک می‌گوید GitHub Copilot کد ناامن را حتی از امنیت کمتری می‌کند

بهترین شیوه های تایپ چت

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

بهترین شیوه‌های دیگر شامل اطمینان از سازگاری انواع شما با JSON و شما آنها را ساده نگه دارید نظرات زبان طبیعی در طرح شما به ایجاد درخواست های شما کمک می کند. این مستندات استفاده از TypeChat را با استفاده از الگوهای MVVM (Model-View-ViewModel) مقایسه می‌کند، که در آن TypeChat به عنوان یک مدل پاسخ توصیف می‌شود و همان نقش پل ارتباطی بین کد منطق کسب‌وکار و رابط‌های کاربر را ایفا می‌کند، جایی که LLM معادل UI شده است.

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

در حالی که نسخه فعلی TypeChat با Azure OpenAI و APIهای خود OpenAI کار می کند، در نظر گرفته شده است که مدل خنثی باشد. این به شما امکان می دهد از آن با ترانسفورماتورهای Hugging Face و Meta’s Llama 2 استفاده کنید. از آنجایی که TypeChat یک پروژه منبع باز است، با مجوز MIT، دسترسی کامل به کد در GitHub، و می‌توانید هر تغییری را که انجام می‌دهید به‌عنوان درخواست‌های کششی ارائه دهید.