چطور مدل OUI-1 رو با vLLM سرو کنیم؟
خلاصهٔ کاملتر
OUI-1 یه مدل دیفیوژنه که شرکت Thesys اونو مخصوص ساخت صفحههای رابط کاربری، با فاینتیون کردن DiffusionGemma گوگل (۲۶ میلیارد پارامتر، فقط ۴ میلیاردش فعال) ساخته. برخلاف مدلهای چت معمولی که کلمهبهکلمه مینویسن، این مدل کدِ رابط کاربری رو بلوکبلوکی میسازه؛ هر بار ۲۵۶ توکن، از یه حالت نویز شروع میکنه و هرکدوم رو که مطمئنتر میشه قطعی میکنه. همین روش باعث میشه خیلی سریع باشه (حدود یه ثانیه برای هر صفحه رو یه GPU)، ولی به همین دلیل هم سرو کردنش نیاز به تنظیمات مخصوص دیفیوژن داره، نه فقط پارامترهای معمول نمونهگیری. نسخهٔ ۰.۲۴ به بعد vLLM این پشتیبانی رو اضافه کرده، برای همین راه توصیهشده برای اجرای این مدله.
راهاندازیش یه دستور نصب و یه دستور اجراست: pip install "vllm>=0.24" و بعد vllm serve thesysdev/OUI-1 با فلگهایی مثل --quantization fp8 که حجم وزنها رو به حدود ۲۵.۸ گیگابایت میرسونه، و --tool-call-parser gemma4 که برای فراخوانی ابزار لازمه. نکتهٔ سختافزاری مهم اینه که کارتهای A100 پشتیبانی سختافزاری بومی از FP8 ندارن؛ vLLM رو این کارتها از راه Marlin کوانتیزیشن رو انجام میده که حافظه رو واقعاً کم میکنه ولی سرعت پردازش اضافهای که کارتهای H100 میدن رو نداره.
دو تا رفتار عجیب مدل رو باید بدونی: پارامترهای temperature و seed قبول میشن ولی هیچ تأثیری ندارن، چون نمونهگیر دیفیوژنی خودش یه برنامهٔ ثابت ۴۸ مرحلهای داره و seed مشخصی رد نمیشه؛ یعنی دو درخواست یکسان میتونن دو صفحهٔ متفاوت (هرچند از نظر ساختار شبیه) برگردونن. همچنین tool_choice="required" قبول میشه ولی نادیده گرفته میشه، چون vLLM هنوز خروجی ساختیافته برای مدلهای دیفیوژن نداره؛ باید همیشه tool_choice رو رو auto بذاری.
فراخوانی ابزار (tool calling) از فرمت بومی Gemma 4 استفاده میکنه و با فلگ --tool-call-parser gemma4 کار میکنه؛ مدل اول ابزار رو صدا میزنه، بعد تو نوبت بعدی از رو نتیجهٔ ابزار صفحه رو میسازه. تو تست، مدل با یه دستور اضافه تو سیستم پرامپت (که مجبورش میکنه قبل از جواب حتماً ابزارو صدا بزنه)، رو ۹ تا از ۹ درخواست مرتبط، ابزار درست رو با آرگومان درست صدا زد و رو ۳ تا درخواست بیربط هم درست هیچ ابزاری صدا نزد.
OUI-1 مدل چت عمومی نیست؛ فقط برای ساخت صفحههای رابط کاربری تو اپلیکیشنهای مبتنی بر OpenUI طراحی شده، جایی که تأخیر کم و self-hosting مهمه. اگه دقیقاً همینو میخوای، سرعتش (حدود یه ثانیه برای صفحههای ساده، سه تا شیش ثانیه برای صفحههای پیچیده) و نمرهٔ بنچمارکش (۷۱.۷٪ در مقابل ۱۳٪ مدل پایه) دلیل خوبیه براش. ولی اگه یه مدلی میخوای که بتونه گفتگو هم بکنه یا به سوالهای عمومی جواب بده، این مدل اون کارو نمیکنه و باید کنار یه مدل دیگه اجراش کنی.
نکات کلیدی:
- OUI-1 یه مدل ۲۶ میلیاردی (۴ میلیارد فعال) از Thesysه، فاینتیونشده از DiffusionGemma گوگل
- با کوانتیزیشن FP8 رو vLLM نسخهٔ ۰.۲۴ به بالا، حجم وزنها حدود ۲۵.۸ گیگابایته
- رو A100 هر صفحهٔ ساده حدود یه ثانیه و صفحههای پیچیده سه تا شیش ثانیه طول میکشه
- تو بنچمارک Generative UI نمرهٔ ۷۱.۷٪ گرفته، در مقابل ۱۳٪ مدل پایه
- temperature و seed تأثیری ندارن و tool_choice="required" نادیده گرفته میشه




