Strands Decider 2B: یک مدل تصمیم گیری کوچک، منبع باز
آدرس مقاله: https://strandsagents.com/blog/introducing-strands-decider/ آدرس نظرات: https://news.ycombinator.com/item?id=49987076 امتیاز: 221 # نظرات: 65
در اوایل سال جاری، ما آزمایشگاههای رشتهای را معرفی کردیم، مکانی برای استفاده عملی با رویکردهای پیشرفته در زمینه هوش مصنوعی. امروز، ما مشتاق اضافه کردن Strands Decider 2B هستیم: یک مدل تصمیم گیری کوچک که برای آزمایش سریع، توسعه محلی و نوآوری بهینه شده است.
Strands تصمیمگیر یکی از دسته جدیدی از مدلهای تصمیمگیری یا مدلهای سیستم یک است، نوعی مدل که از زمان عرضه Jev توسط TypeSafe AI در اوایل ماه جاری توجه زیادی را به خود جلب کرده است. برخلاف LLMهایی که میتوانند خروجی دلخواه تولید کنند، مدلهای تصمیم به گونهای طراحی شدهاند که بین مجموعهای از گزینهها انتخاب شوند (مثلا «آیا رشته «چراغها را روشن کن» در مورد دستگاه قهوهساز است؟ بله یا نه.»، «عبارت «sihamba ngokushesha» به چه زبانی است؟ انگلیسی، زولو، یا هلندی.») و بهعنوان «نمرات عددی ساده» به آن اختصاص میدهند. بین 0 و 1 یک احساس مثبت بخوانید.
در ازای این کاهش انعطافپذیری، مدلهای تصمیمگیری در یک اندازه معین سریعتر و توانایی بیشتری دارند، همیشه از گزینههای انتخابشده پاسخ میدهند و میتوانند با تأخیر بسیار کم اجرا شوند.
طرف دیگر این است که این رویکرد (تولید همه خروجی ها در یک پاس موازی) آن را به طور قابل توجهی در حل مسائل پیچیده نسبت به مدل های استدلال بدتر می کند و عدم توانایی آن در تولید متن آن را برای کدنویسی، چت بات ها، خلاصه سازی اسناد و سایر کارهای رایج LLM نامناسب می کند.
علاوه بر این، مدلهای تصمیمگیری به هر تصمیم یک امتیاز قابلیت اطمینان با کیفیت میدهند (یعنی «چقدر میتوانم مطمئن باشم که این بله/نه درست است؟»)، که از طریق APIهای استنتاج LLM مرزی در دسترس نیست. آنها همچنین باعث می شوند که پرسیدن چندین سؤال در مورد یک درخواست بسیار کارآمد باشد. این ترکیب ویژگیها آنها را برای هدایت انواع گردشهای کاری عاملی که بسیاری از توسعهدهندگان را میبینیم با Strands Harness SDK و Strands که اخیرا راهاندازی شده است، عالی میکند.
ما انتظار داریم که این دسته از مدلها در چند هفته، ماه و سال آینده منجر به نوآوریهای جالب زیادی در هوش مصنوعی شود.
Strands Decider 2B اولین مشارکت ما در این نوآوری است. این یک مدل 2 میلیارد پارامتری است که برای اجرا بر روی یک CPU یا GPU محلی مناسب است، که میتواند در دهها میلیثانیه به سؤالات معنادار پاسخ دهد. دقت و کالیبراسیون آن با سایر مدل هایی که در این کلاس می شناسیم قابل رقابت است. ما strands-decider-2b را بهعنوان منبع باز در GitHub منتشر کردهایم، با وزنهای Hugging Face، شامل تمام دادههای آموزشی و اسکریپتهایی که برای ساختن مدل استفاده کردهایم، و آن را به مکانی عالی برای شروع سفر نوآوری خود تبدیل میکنیم.
ایده اصلی این است که ما یک نیم تنه LLM (Qwen3.5-2B) از قبل آموزش دیده را برداریم و سر LM را برداریم و توانایی تولید متن را از آن سلب کنیم. سر LM با یک سر اشاره گر جایگزین می شود که پاسخ های ارائه شده توسط بالاتنه برای هر گزینه را نمره می دهد. این کار را با امتیاز دادن به حالت پنهان در هر موقعیت گزینه در برابر حالت پنهان در موقعیت <answer> انجام می دهد. این سر بسیار کوچک است، کمی بیش از یک میلیون پارامتر کل. تنه با آداپتور LoRA رتبه 16 به خوبی تنظیم شده است.
شکل 1: معماری Strands Decider 2B.
همانطور که در مخزن مرور می کنید، متوجه می شوید که این دومین تکرار اصلی معماری است. اولین مورد مشابه بود، اما از یک هد شکاف استفاده کرد که به نظر ما عملکرد بسیار بدتری داشت. در واقع، مدلی که امروز منتشر می کنیم نسخه 19 است، با تعداد زیادی تکرار در زیر جلد. همه چیزهایی که در هر نسخه تغییر دادیم در مخزن پوشش داده شده است و شما می توانید کارهایی که انجام دادیم را دنبال کنید.
برای مدلهایی از این نوع، ما به سه هدف عملکرد علاقهمندیم: دقت (چقدر خوب به سؤالات پاسخ میدهد)، کالیبراسیون (نمرات اطمینان آن چقدر قابل اعتماد است) و تأخیر (چقدر سریع میتواند تصمیمگیری کند). ما دو مورد اول را با هم اندازهگیری کردهایم: دقت در مجموعه عمومی JevBench، و کالیبراسیون با استفاده از امتیاز Brier در همان مجموعه. ما دریافتیم که strands-decider-2b در دقت و کالیبراسیون عملکرد خوبی دارد (سوم از 33 در کلاس 2B، و رتبه اول از 30 به استثنای مدلهای کمی بیش از 2B).
همانطور که معماری را تکامل میدهیم، نمرات ما بهتر میشود، و ایدههای زیادی برای بهبودهای آینده داریم. امیدواریم جامعه با روحیه آزمایشگاه های Strands به ما بپیوندد تا ایده های جدید خود را ارائه دهیم.
شکل 2: دقت و کالیبراسیون (امتیاز بریر) در سراسر مسیر تمرین. همانطور که معماری بیش از نسخه های متوالی تکامل یافت، هر دو معیار در مجموعه عمومی JevBench بهبود یافتند.
در زمان تأخیر، strands-decider-2b میتواند تصمیمات محلی را در میانه حدود 115 میلیثانیه بر روی سختافزار بهطور گسترده در دسترس بگیرد. زمان صرف شده برای تصمیم گیری به اندازه کار بستگی دارد، تقریبا با بزرگتر شدن اندازه کار به طور خطی افزایش می یابد. نتایج در نمودار در اینجا در یک Nvidia RTX3090 محلی است، اما عملکرد در مک بوک M3 خیلی بدتر نیست، با تاخیر متوسط برای کارهای کوچک در حدود 153 میلی ثانیه. همانطور که در مورد دقت و کالیبراسیون، ما ایده های زیادی برای بهتر شدن در اینجا داریم، به خصوص در کاهش کف.
شکل 3: تأخیر تصمیم به عنوان تابعی از اندازه کار (در توکن ها)، اندازه گیری شده در Nvidia RTX 3090 محلی در برابر نسخه 18 مدل. تأخیر تقریبا به صورت خطی با اندازه کار افزایش می یابد.
ما تصمیم گرفتیم Strands تصمیمگیرنده را به عنوان یک مدل کوچک در دسترس قرار دهیم به دو دلیل. یکی اینکه ما می خواهیم آزمایش را تشویق کنیم. شما می توانید از Strands-decider-2b و حتی آموزش آن بر روی سخت افزاری که از قبل دارید استفاده کنید. این باعث میشود که امتحان کردن چیزها آسان، سریع و کم خطر باشد. مورد دیگر این است که دو میلیارد پارامتر کل، چیزی شبیه به یک نقطه شیرین به نظر می رسد: به اندازه کافی کوچک برای آزمایش، به اندازه کافی بزرگ برای انجام کار معنی دار.
به عنوان مثال، تصمیمگیرنده رشتهها 100% کارهای آسان را در JevBench به درستی انجام میدهد، و این نوع مشکلات به خوبی با برخی از مشکلات سادهتر که میبینیم افراد با نمایندگان مقابله میکنند، انطباق پیدا میکند.
هر چی بخوای! به طور جدی تر، ما شاهد موفقیت اولیه با استفاده از این کلاس از مدل برای مسیریابی مدل، انتخاب ابزار، ارزیابی ها، نرده های محافظ، حافظه، مدیریت زمینه و طبقه بندی خط مشی هستیم. ما همچنین شاهد نوآوری های هیجان انگیزی در مورد ساخت عوامل ترکیبی، استفاده از LLM برای گرفتن سخت ترین تصمیمات و استفاده از مدل های تصمیم گیرنده برای تصمیم گیری ساده تر، کاهش هزینه و تأخیر بوده ایم. ما شاهد آزمایشهایی هستیم که مدلهای تصمیمگیرنده را با زبانهای جریان کار ثابت ترکیب میکنند تا نوع دیگری از گردش کار ترکیبی ایجاد کنند.
مردم همچنین از این نوع مدل ها برای انجام بازی ها، خودکارسازی وظایف، پیمایش در پیچ و خم ها و موارد دیگر استفاده می کنند. سرعت نوآوری در این فضا خیره کننده است.
ساده ترین مکان برای شروع از طریق Strads-decider CLI است:
می توانید از مدل بخواهید که بر اساس وضعیت و یک سوال انتخاب کند:
در این خروجی می بینیم که مدل صورتحساب را به عنوان پاسخ با بالاترین امتیاز احتمال پیش بینی می کند.
مخزن همچنین شامل نمونههایی با استفاده از strands-decider-2b در داخل یک عامل Strands، در نمونههای/strands/ است. خود عامل به صورت محلی اجرا می شود، به Strands تصمیم گیرنده متصل می شود که به صورت محلی نیز اجرا می شود، و سپس از LLM پیش فرض Amazon Bedrock استفاده می کند.
این یک سناریوی عمدا کوچک است. عامل دارای ابزار دمو (اجباری) get_weather و یک پیام سیستمی است که آن را عمدا مشتاق می کند، به طوری که وقتی کاربر می پرسد "آب و هوا چیست؟" بدون اینکه بگوید کجا، نماینده یک شهر را حدس میزند و به هر حال با ابزار تماس میگیرد. با این حال، قبل از اجرای آن تماس، strands-decider-2b مکالمه و فراخوانی ابزار پیشنهادی را میخواند و به دو سؤال بله/خیر در مورد آن پاسخ میدهد: آیا این مقادیر آرگومان بر اساس هر چیزی است که کاربر واقعا گفته است (اسپویل: نه!) و آیا به هر حال برای فراخوانی این ابزار خیلی زود است.
چند خط پایتون، پیشبینیها را به یک تصمیم تبدیل میکند، و عامل به جای اینکه با اطمینان آب و هوا را در جایی که کسی به آن اشاره نکرده است، گزارش دهد، از شما میپرسد که منظورتان کدام شهر است.
الگوی اینجا سیستم مداخله Strands است. ما از InterventionHandler با یک متد before_tool_call استفاده می کنیم، آن را به Agent(interventions=[...]) می دهیم و قبل از اجرای هر ابزاری اجرا می شود. چیزی که برمیگرداند یک اقدام تایپشده است: ادامه، رد کردن، تأیید (توقف و درخواست از یک شخص)، یا راهنمایی، که مدل را با بازخورد به جای مسدود کردن کامل تماس، نوبت خود را برمیگرداند. این کنترل کننده موجود یک کلاس پایتون است و Strands هیچ نظری در مورد آنچه در داخل آن وجود دارد ندارد، بنابراین چه مدل تصمیم گیری ما، یک خط مشی Cedar یا یک عامل دیگر را فراخوانی کنید، همین شکل وجود دارد.
(در اطراف فراخوانی مدل و کل فراخوانی قلابهای معادل وجود دارد.) این مثال یک تصویر است تا یک توصیه، بنابراین سؤالات، آستانه و خطمشی همگی با دست انتخاب شدند. نکته این است که تصمیمی به این ارزانی می تواند در مسیری قرار گیرد که تماس LLM هرگز نمی تواند انجام شود.
تیم Strands در حال کار بر روی کتابخانههایی برای ادغام مدل تصمیمگیری است، بنابراین بهزودی مخزن را برای بهروزرسانی تماشا کنید.
امروز میتوانید strands-decider-2b را دانلود، استفاده کنید، یا بسازید. همه داده ها به همراه هر آنچه برای شروع نیاز دارید در دسترس است. میتوانید کد را از GitHub و جدیدترین عکسهای فوری را از Hugging Face بگیرید. حالا برو آزمایش کن
متن اصلی (انگلیسی)
Strands Decider 2B: a small, open-source, decision model
Article URL: https://strandsagents.com/blog/introducing-strands-decider/ Comments URL: https://news.ycombinator.com/item?id=49987076 Points: 221 # Comments: 65