تصمیم معماری

مدل‌های متن‌باز در برابر API — کدام برای سازمان

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

· ۹ دقیقه مطالعه

سؤال درست چیست

«مدل متن‌باز بهتر است یا API؟» سؤال بدی است، چون جوابش به چیزی بستگی دارد که در خود سؤال نیامده: کدام workload. یک سازمان معمولاً ده‌ها کار مختلف را به مدل زبانی می‌سپارد — از دسته‌بندی تیکت پشتیبانی تا تحلیل قرارداد — و این کارها از نظر حجم، حساسیت داده و سختی، هیچ شباهتی به هم ندارند. انتظار اینکه یک تصمیم واحد برای همه‌شان درست باشد، همان جایی است که بحث خراب می‌شود.

پس سؤال را عوض کنیم: برای این workload مشخص، با این حجم، این نوع داده و این سطح دقت، کدام گزینه هزینه‌ی کل کمتری دارد؟ این مقاله محورهایی را که باید در این مقایسه بسنجید مرتب می‌کند. عمداً هیچ عدد ساختگی‌ای اینجا نیست؛ چیزی که مهم است شکل هزینه است، نه یک رقم که فردا عوض می‌شود.

محور اول: شکل منحنی هزینه

این مهم‌ترین تفاوت است و اغلب بد فهمیده می‌شود. دو گزینه هزینه‌ی متفاوت ندارند — شکل هزینه‌ی متفاوت دارند.

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

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

دو نکته که معمولاً از حساب جا می‌ماند: اول، هزینه‌ی ثابت فقط سخت‌افزار نیست؛ آدمی که سرویس را نگه می‌دارد بخش بزرگی از آن است. دوم، هزینه‌ی نهایی API را می‌شود با مهندسی به‌شدت کم کرد — انتخاب مدل کوچک‌تر برای کارهای ساده، کوتاه کردن prompt و کش کردن بخش ثابت آن. هزینه و توکن و prompt caching دقیقاً همین را باز می‌کنند.

محور دوم: سقف کیفیت

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

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

همچنین به یاد داشته باشید که API معمولاً چند سطح مدل دارد و انتخاب سطح، هم کیفیت و هم هزینه را جابه‌جا می‌کند. برای مثال در خانواده‌ی Claude:

مدلشناسهپنجره زمینهورودی $/1Mخروجی $/1M
Claude Opus 5claude-opus-51M525
Claude Sonnet 5claude-sonnet-51M210
Claude Haiku 4.5claude-haiku-4-5200K15

یعنی «API گران است» به‌تنهایی جمله‌ی درستی نیست؛ بستگی دارد کدام مدل را برای کدام کار بگذارید. راهنمای انتخاب بین این‌ها در راهنمای مدل‌های Claude هست.

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

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

با API، نسخه‌ی مدل را ارائه‌دهنده مدیریت می‌کند. این معمولاً به نفع شماست — مدل بهتر می‌شود بدون اینکه کاری کنید — اما یعنی باید نسخه‌ی مدل را در پیکربندی صریح بنویسید و قبل از هر تغییر نسخه، مجموعه‌ی ارزیابی‌تان را اجرا کنید. اگر شناسه‌ی مدل در کد شما جایی سخت‌کد شده و کسی نمی‌داند کجاست، این کنترل را ندارید.

محور چهارم: بار عملیاتی

این محور معمولاً دست‌کم گرفته می‌شود. اجرای مدل متن‌باز در تولید یعنی مالکیت یک سرویس دیگر:

  • ظرفیت‌سنجی حافظه‌ی GPU و صف
  • مشاهده‌پذیری: تأخیر، throughput، نرخ خطا
  • به‌روزرسانی وزن‌ها با امکان بازگشت
  • کشیک و پاسخ به حادثه در ساعت غیر اداری

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

محور پنجم: انطباق و داده

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

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

الگوی ترکیبی، که در عمل جواب می‌دهد

بیشتر سازمان‌هایی که این مسیر را می‌روند به یک تصمیم دوگانه نمی‌رسند، به یک تفکیک می‌رسند:

  • کارهای پرحجم، تکراری و نسبتاً ساده روی مدل داخلی. دسته‌بندی، برچسب‌زنی، استخراج فیلد، خلاصه‌سازی کوتاه، تولید embedding. این‌ها حجم زیادی از توکن مصرف می‌کنند و سختی‌شان کم است — دقیقاً همان جایی که هزینه‌ی نهایی نزدیک صفر می‌ارزد.
  • کارهای کم‌حجم اما دشوار روی API. استدلال چندمرحله‌ای، تحلیل سند طولانی، مواردی که کیفیت مستقیماً به تصمیم کسب‌وکار وصل است.
  • مسیر داده‌ی حساس همیشه داخلی. بدون استثنا، و با ممیزی.

چیزی که این الگو را ممکن می‌کند یک تصمیم مهندسی ساده است: یک لایه‌ی انتزاع بین کد شما و ارائه‌دهنده‌ی مدل. یک رابط داخلی که ورودی و خروجی استاندارد دارد و پشتش می‌شود مدل داخلی یا API بیرونی نشست. با این لایه، جابه‌جایی یک تغییر پیکربندی است. بدون آن، هر تجدیدنظر یک پروژه‌ی بازنویسی است.

اگر باید یک قاعده‌ی سرانگشتی داشته باشید: با API شروع کنید تا محصول و prompt‌ها تثبیت شوند و بفهمید حجم واقعی چقدر است؛ بعد آن دسته از workloadها را که هم حجمشان بالا رفته و هم سختی‌شان کم است، به مدل داخلی منتقل کنید. تصمیم‌گیری با داده‌ی مصرف واقعی همیشه بهتر از تصمیم‌گیری در جلسه‌ی معماری است.