انتخاب یک ارائهدهنده LLM بر اساس نمرات بنچمارک مثل انتخاب رستوران بر اساس عکسهای منو است. مدل مهم است، اما همهچیزِ اطراف مدل هم مهم است، و همین موارد جانبی هستند که واقعاً در محیط عملیاتی به شما ضربه میزنند. این چکلیستی است که من قبل از اینکه هر چیز واقعی را به یک ارائهدهنده وصل کنم، از او عبور میدهم.
زمان کارکرد و SLA
SLA یک قول با اعداد پیوست است، پس اعداد را بخوانید. درصدهای زمان کارکرد تا وقتی آنها را تبدیل نکنید، بهطور گمراهکنندهای نزدیک به هم به نظر میرسند:
| SLA | زمان خرابی در سال | زمان خرابی در ماه |
|---|---|---|
| 99.9% | 8.76 ساعت | 43.8 دقیقه |
| 99.95% | 4.38 ساعت | 21.9 دقیقه |
| 99.99% | 52.6 دقیقه | 4.4 دقیقه |
99.9% عالی به نظر میرسد و هنوز تقریباً یک ساعت قطعی ماهانه را مجاز میداند. اگر محصول شما به endpoint وابسته است، تفاوت 99.9% با 99.99% تفاوت بین «آزاردهنده» و «فراموششدنی» است. همچنین دو چیز فراتر از عدد تیتر را بررسی کنید:
•چه چیزی بهعنوان زمان خرابی حساب میشود. برخی SLAها فقط قطعی کامل را پوشش میدهند، نه کاهش توان عملیاتی یا نرخ خطای بالا را.
•وقتی آن را از دست میدهند چه چیزی دریافت میکنید. اعتبار اگر سقف داشته باشد یا نیاز به ثبت درخواست داشته باشد، ارزش کمی دارد. جبران باید مشخص و عینی باشد.
ارائهدهندهای که اصلاً SLA منتشر نمیکند دارد چیزی به شما میگوید، و این چیز خوبی نیست.
تأخیر و توان عملیاتی
تأخیر دو عدد دارد که برای شما مهم است و هر کدام چیز متفاوتی را میسنجند:
•زمان تا اولین توکن (TTFT). چه مدت طول میکشد تا پاسخ شروع به استریم شدن کند. این همان چیزی است که کاربر بهعنوان «سریع» حس میکند.
•توکن در ثانیه (توان عملیاتی). بقیه پاسخ با چه سرعتی میرسد. این همان چیزی است که تعیین میکند آیا یک پاسخ طولانی کند به نظر میرسد یا نه.
هر دو بسته به مدل و بار متفاوت هستند، پس به یک عدد تبلیغاتی اعتماد نکنید. خودتان اندازهگیری کنید:
import time
from openai import OpenAI
client = OpenAI(base_url="https://api.token8341.com/v1",
api_key="sk-your-key")
start = time.perf_counter()
stream = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": "Write 200 words about caching"}],
stream=True,
)
ttft = None
tokens = 0
for chunk in stream:
if ttft is None:
ttft = time.perf_counter() - start
tokens += 1
elapsed = time.perf_counter() - start
print(f"TTFT: {ttft:.2f}s, total: {elapsed:.2f}s, "
f"{tokens / elapsed:.1f} tok/s")این را در چند زمان مختلف روز و تحت همزمانی مورد انتظار خودتان اجرا کنید. ارائهدهندهای که ساعت 10 صبح سریع است و ساعت 7 عصر کند است، یک مشکل ظرفیت دارد که باید درباره آن بدانید.
هزینه
قیمت هر توکن بخش آسان ماجراست. تصویر کامل هزینه شامل موارد زیر است:
•قیمت ورودی در مقابل خروجی، چون خروجی معمولاً چندین برابر ورودی هزینه دارد.
•قیمت برخورد کش. برای بارهای کاری تکراری، یک کش پرامپت میتواند هزینه را بیش از هر تخفیفی کاهش دهد.
•محدودیت نرخ و throttle کردن. یک endpoint ارزان که فقط بهندرت میتوانید به آن دسترسی داشته باشید، وقتی صف و تلاش مجدد را اضافه کنید ارزان نیست.
•ارز و اصطکاک پرداخت. کارمزد کارتهای فرامرزی و هزینههای تبدیل برای تیمهای کوچک واقعی هستند.
قیمت بار کاری واقعی خود را بخواهید، نه قیمت هر میلیون توکن را بهصورت مجزا.
پوشش مدل و سازگاری
•آیا API با OpenAI سازگار است؟ اگر هست، میتوانید از SDKهای استاندارد استفاده کنید و بعداً بدون بازنویسی جابهجا شوید. اگر اختصاصی است، با ارائهدهنده ازدواج کردهاید.
•آیا میتوانید به چند خانواده مدل از طریق یک کلید دسترسی داشته باشید؟ یک کاتالوگ با یک یا دو مدل شما را بهشدت یک API اختصاصی قفل میکند. یک کاتالوگ با مدلهای زیاد به شما یک جایگزین و مسیری به سمت مسیریابی ارزانتر میدهد.
•آیا embeddings، فراخوانی تابع و استریم پشتیبانی میشوند، نه فقط چت ساده؟ اینها ویژگیهایی هستند که تعیین میکنند آیا endpoint در یک اپلیکیشن واقعی جا میشود یا فقط در یک دمو.
مدیریت داده و پشتیبانی
•نگهداری داده. آیا ارائهدهنده پرامپتها و تکمیلهای شما را برای آموزش نگه میدارد؟ این را کتبی بگیرید.
•منطقه و اقامت داده. درخواستها کجا پردازش میشوند؟ برای برخی کاربران این یک الزام قانونی است، نه یک ترجیح.
•کیفیت پشتیبانی. قبل از تعهد، یک تیکت پشتیبانی باز کنید. سرعت و مفید بودن اولین پاسخ پیشبینیکننده قوی از اینکه یک قطعی چگونه خواهد بود است.
•شفافیت وضعیت. یک صفحه وضعیت عمومی و تاریخچه incidents به شما میگوید آیا ارائهدهنده درباره قابلیت اطمینان خودش صادق است یا نه.
نسخه کوتاه
هر کاندید را از این پنج سؤال عبور دهید:
1.SLA چیست، و وقتی از دست رفت جبران آن چیست؟
2.TTFT و توان عملیاتی اندازهگیریشده تحت بار من چقدر است؟
3.بار کاری واقعی من چقدر هزینه دارد، با احتساب برخوردهای کش؟
4.آیا API با OpenAI سازگار است، با چند مدل پشت یک کلید؟
5.آیا به من خواهند گفت داده کجا پردازش میشود و پشتیبانی چگونه پاسخ میدهد؟
هیچکدام از اینها نیاز به تخصص عمیق ندارند. آنها نیاز دارند که قبل از قطعی بپرسید، نه بعد از آن. ارائهدهندگانی که با راحتی به اینها پاسخ میدهند، معمولاً همانهایی هستند که واقعاً ترافیک عملیاتی را اجرا کردهاند، نه فقط یک مدل را فهرست کردهاند.
SiCore TokenWorks با بیشتر این فهرست بهراحتی همخوانی دارد: یک SLA 99.9%، یک endpoint سازگار با OpenAI در https://api.token8341.com/v1، یک کلید که GPT-4o، Claude، Gemini، DeepSeek، Qwen، ERNIE، Doubao، Spark و Pangu را پوشش میدهد، و صورتحساب مبتنی بر توکن با قیمتگذاری برخورد کش.