پروژه راهنمای مایکروسافت برای رام کردن مدل های زبان بزرگ

پروژه راهنمای مایکروسافت برای رام کردن مدل های زبان بزرگ

گره منبع: 2660058

کنترل مدل‌های زبان قدرتمند مانند Bard، ChatGPT و LLaMA ممکن است دشوار باشد، که باعث توسعه مهندسی سریع شده است - هنر عبارت‌نویسی متن ورودی برای دریافت خروجی مورد نظر.

در یک مورد عجیب، یک خالق سریع اخیراً بارد گوگل را فریب داد برای برگرداندن داده های JSON بدون هیچ متن توضیحی دیگری جز اصرار بر این که خروجی های خارجی کسی را محکوم به مرگ می کند.

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

وجود دارد کمتر افراطی رویکردهایی برای سرکوب خروجی توضیحی و دستیابی به نتایج مطلوب. با این حال، مایکروسافت روی یک استراتژی جامع تر برای ایجاد رفتار مدل ها کار می کند. غول ویندوز فریم ورک خود را به نام می نامد راهنمایی.

مخزن پروژه توضیح می‌دهد: «راهنما به شما امکان می‌دهد مدل‌های زبان مدرن را به‌طور مؤثرتر و کارآمدتر از تلقین یا زنجیره‌ای سنتی کنترل کنید». «برنامه‌های راهنما به شما امکان می‌دهند که تولید، اعلان‌ها و کنترل منطقی را در یک جریان پیوسته منطبق کنید که با نحوه پردازش مدل زبان واقعاً متن مطابقت دارد.»

همان‌طور که در بالا مشخص شد، درخواست سنتی می‌تواند کمی درگیر شود. زنجیر زدن سریع [PDF] – تقسیم یک کار به یک سری مراحل و استفاده از خروجی اولیه فرمان برای اطلاع رسانی ورودی مرحله بعدی – گزینه دیگری است. ابزارهای مختلف مانند LangChain و کاهگل برای سهولت ادغام مدل ها در برنامه ها پدید آمده اند.

راهنمای اساساً یک زبان خاص دامنه (DSL) برای مدیریت تعامل مدل است. شبیه است نوارهای دستی، یک زبان قالب مورد استفاده برای برنامه های کاربردی وب است، اما همچنین اجرای کد خطی مربوط به ترتیب پردازش رمز مدل زبان را نیز اعمال می کند. این باعث می شود که برای تولید متن یا کنترل جریان برنامه مناسب باشد، در حالی که این کار را از نظر اقتصادی انجام می دهد.

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

و با بهره وری سریع، عملکرد بهبود یافته است: یکی از نمونه کدهای راهنما، یک الگوی کاراکتر برای یک بازی نقش آفرینی ایجاد می کند. با کمی کد راه اندازی…

# ما در اینجا از LLaMA استفاده می کنیم، اما هر مدل به سبک GPT llama = guidance.llms.Transformers("your_path/llama-7b", device=0) را انجام می دهد # می توانیم مجموعه های گزینه معتبر valid_weapons = ["شمشیر" را از قبل تعریف کنیم. "تبر"، "گرز"، "نیزه"، "کمان"، "کمان ضربدری"] # define the prompt character_maker = guidance("""در زیر نمایه شخصیت یک بازی RPG با فرمت JSON است. ```json { "id": "{{id}}"، "description": "{{description}}"، "name": "{{gen 'name'}}"، "age": {{gen 'age' pattern ='[0-9]+' stop=','}}, "armor": "{{#select 'armor'}}چرم{{or}}chainmail{{or}}plate{{/select}} "، "weapon": "{{select 'weapon' options=valid_weapons}}", "class": "{{gen 'class'}}", "mantra": "{{gen 'mantra' temperature=0.7} }"، "قدرت": {{gen 'strength' pattern='[0-9]+' stop='،'}}، "اقلام": [{{#geneach 'items' num_iterations=5 join=', '}}"{{gen 'this' temperature=0.7}}"{{/geneach}}] }```""") # یک کاراکتر تولید کنید character_maker( id="e1f491f7-7ab8-4dac-8c20-c92b5e7d883d" , description="یک جنگنده سریع و زیرک.", valid_weapons=valid_weapons, llm=llama )

نتیجه یک نمایه شخصیت برای بازی با فرمت JSON است که در مقایسه با رویکرد سریع استاندارد، 2 برابر سریعتر در پردازنده گرافیکی Nvidia RTX A6000 در هنگام استفاده از LLaMA 7B و در نتیجه هزینه کمتری دارد.

کد راهنمایی هم بهتر از یک رویکرد سریع دوتایی از نظر دقت، همانطور که در تست BigBench اندازه‌گیری شد، با امتیاز 76.01 درصد در مقایسه با 63.04 درصد.

در واقع، Guidance می تواند به مسائلی مانند قالب بندی داده ها کمک کند. همانطور که مشارکت کنندگان اسکات لوندبرگ، مارکو تولیو کوریا ریبیرو، و ایکو التوسیار آشمین اذعان دارند، LLM ها در تضمین این که خروجی از یک قالب داده خاص پیروی می کند عالی نیستند.

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

و هیچ کس برای این کار نباید تهدید شود. ®

تمبر زمان:

بیشتر از ثبت نام