بلاگ

دستیار تخصصی هوش مصنوعی و دروازه‌هایی که پیش از انتشار لازم است

نویسنده: · ۲۵ اکتبر ۲۰۲۶ · زمان تخمینی مطالعه: ۴ دقیقه

چرا محدودکردن یک مدل زبانی به یک حوزه، مسئله‌ی مهندسی است نه مسئله‌ی پرامپت؛ و دروازه‌هایی که میان تولید و انتشار لازم است.

وقتی سیستمی می‌سازیم که قرار است فقط دربارهٔ یک حوزه حرف بزند، فرضِ اولیه این است که کار ساده‌تر از یک دستیار عمومی است. تجربهٔ ما خلافش را نشان داد. دستیار عمومی اجازه دارد هر جوابی بدهد؛ دستیار تخصصی باید ندهد — و «ندادن» چیزی نیست که با پرامپت تضمین شود.

این مقاله سه خرابیِ واقعی را توضیح می‌دهد که در تولید دیدیم، و معماری‌ای که هر کدام را بست.

خرابیِ اول: مدل با خودش ناسازگار می‌شود

سیستمی که روی چند کانال حرف می‌زند — وب، پیام‌رسان، و متنِ ویدیو — یک عدد را سه جور می‌گوید. در موردِ ما عددِ عضلاتِ صورت بود: صفحهٔ اصلی یک عدد داشت و روایتِ یک ویدیو عددِ دیگری.

نکتهٔ مهم این است که مدل دروغ نگفته بود. منابع علمی بازه‌ای می‌دهند و هر دو عدد داخلِ آن بازه بود. ولی برای مخاطب، ناسازگاری بدتر از عددِ غیرِدقیق است: یک‌بار که دید سایت یک چیز می‌گوید و ویدیو چیزِ دیگر، به هر دو شک می‌کند.

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

خرابیِ دوم: مدل از حوزه بیرون می‌رود، آن هم برای گفتنِ «بلد نیستم»

در یکی از ویدیوها، مدل سه ثانیهٔ اولِ روایت را خرجِ این کرد که بگوید شعر و فال بلد نیست. از نظرِ محتوایی هیچ ادعای غلطی نبود؛ از نظرِ مهندسی، گران‌ترین بخشِ خروجی صرفِ توصیفِ کاری شد که سیستم انجام نمی‌دهد.

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

درمانش این است که مرزِ حوزه را نه به‌صورتِ ممنوعیت، بلکه به‌صورتِ بودجه بیان کنی: این خروجی این‌قدر جا دارد و تمامش باید دربارهٔ الف باشد؛ نامِ ب حتی برای نفی هم نیاید.

خرابیِ سوم: ورودی‌ای که کد اصلاً ندیدش

بدترین خرابی آن است که خطا نمی‌دهد. در لایهٔ پیام‌رسان، کدِ ما پیام‌هایی را که متن نداشتند — عکس، پاسخ به استوری، استیکر، صوت — بی‌صدا رد می‌کرد. یک شرطِ ساده بود: اگر متن خالی است، رد شو.

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

درسِ معماری‌اش این است: هر مسیری که ورودی را دور می‌ریزد باید مقصدی داشته باشد. یا جواب بده، یا به انسان تحویل بده — ولی هیچ‌وقت فقط continue ننویس.

دروازه‌ها رد می‌کنند، اصلاح نمی‌کنند

مهم‌ترین تصمیمِ معماریِ این سیستم همین است و از یک اشتباه آمد.

در نسخه‌های اول، فیلترِ واژه داشتیم که خروجی را بازنویسی می‌کرد. یک واژهٔ فارسی در آن فهرست بود که دو معنا دارد و ما فقط یکی‌اش را دیده بودیم. فیلتر جمله‌ای کاملاً درست را به جمله‌ای بی‌معنا تبدیل کرد و همان‌طور منتشر شد.

از آن به بعد قاعده عوض شد: وقتی نمی‌دانیم کدام طرف درست است، رد می‌کنیم و دوباره تولید می‌خواهیم. ردکردن ارزان است — یک تولیدِ دیگر. بازنویسیِ کور گران است، چون خطایش را فقط بعد از انتشار می‌بینی.

و یک تبصره که لازم شد: هر دروازه‌ای خودش باید ممیزی شود. دروازهٔ ما یک‌بار جمله‌ای را رد کرد که دقیقاً حرفِ درستِ ما بود، چون نفیِ طبیعیِ فارسی را نمی‌شناخت. مثبتِ کاذب روی دروازه‌ای که محتوا را رد می‌کند، خودش یک باگ است — یا تولید را می‌کشد، یا مدل را وادار می‌کند حرفِ درست را عوض کند.

این برای کسب‌وکار ایرانی یعنی چه

اگر قرار است دستیاری روی برندِ شما حرف بزند، آن‌چه کیفیت را تعیین می‌کند انتخابِ مدل نیست. سه چیز است:

یک. حقایقِ برندتان باید یک منبعِ واحد داشته باشند و همان منبع هم در دستورالعمل بیاید و هم در بررسیِ خروجی. هر جا دو نسخه از یک عدد وجود داشته باشد، روزی هر دو منتشر می‌شوند.

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

سه. هر چیزی که سیستم مجاز به جوابش نیست باید مسیرِ تحویل به انسان داشته باشد. بیشترِ لیدهایی که از دست می‌روند با خطا از دست نمی‌روند؛ در سکوت از دست می‌روند.

سیستم‌هایی که ما می‌سازیم روی همین سه اصل بنا شده‌اند. یک نمونهٔ زندهٔ همین معماری — دستیاری که فقط یک حوزه را می‌داند، با همین دروازه‌ها و همین مسیرِ تحویل — روی دستیار تخصصی فیس یوگا در پریان کار می‌کند و می‌توانید مستقیم با خودش حرف بزنید.

اگر می‌خواهید بدانید این رویکرد با چه چیزی فرق دارد، چرا چت‌بات برای کسب‌وکار شما جواب نداد همان مسئله را از سمتِ دیگرش توضیح می‌دهد. شرحِ کاملِ آن‌چه می‌سازیم هم در درباره‌ی ما آمده است.

مدل-زبانی · معماری-سیستم · دروازه-کیفیت · دستیار-تخصصی · زبان-فارسی

In English

Written by Hadi Bakhtzadeh, AI systems architect at Vandidad Group in İzmir, Türkiye. Constraining a language model to a single domain is an engineering problem, not a prompting one. This article describes the failure modes observed in production on a Persian domain-specific assistant: factual drift against the system's own published numbers, out-of-domain openings that waste the most valuable seconds of a short video, and silent drops of non-text inbound messages. It then sets out the architecture that fixed each one — deterministic output gates that reject rather than rewrite, a single source of truth for brand facts, and a handoff path for anything the automated layer is not permitted to answer. A live example of this architecture runs on parian.beauty.

Türkçe özet

İzmir'de Vandidad Group'un yapay zekâ sistem mimarı Hadi Bahtzade tarafından yazılmıştır. Bir dil modelini tek bir alanla sınırlamak bir istem sorunu değil, bir mühendislik sorunudur. Metin üretimden yayına giden yolda gereken deterministik kapıları, marka gerçekleri için tek bir doğruluk kaynağını ve otomatik katmanın yanıtlamaya yetkili olmadığı durumlar için devir yolunu anlatıyor.

این را برای کسی بفرستید:تلگرامواتساپ

می‌خواهید ببینید این برای کارِ خودتان چه شکلی می‌شود؟

همین‌جا با دستیار حرف بزنید — یک جمله درباره‌ی کارتان کافی است.