هر چند ماه نام یک مدل تازه سر زبانها میافتد و پرسش همیشه یکی است: «کدام بهتر است؟» پاسخی که برای همه درست باشد وجود ندارد، چون «بهتر» به کار شما بستگی دارد. روشی که میخوانید برای نوشتن، خلاصهسازی، کدنویسی و پاسخ به مشتری یکسان کار میکند و بیشتر از یک بعدازظهر وقت نمیخواهد.
کار را در یک جمله بنویسید
مدل برای «هوش مصنوعی» انتخاب نمیشود؛ برای یک کار مشخص انتخاب میشود. «خلاصهکردن قراردادهای فارسی در پنج بند» با «کمک در کدنویسی» دو مدل متفاوت میخواهد. کنار آن جمله سه چیز را بنویسید:
- ورودی معمولی چقدر بلند است: یک پیام کوتاه یا یک فایل چنددهصفحهای؟
- خروجی چه شکلی باید باشد: متن آزاد، جدول یا JSON؟
- اگر پاسخ غلط باشد چه میشود: کسی فقط ناراحت میشود یا گزارش اشتباهی به دست مشتری میرسد؟
معیارها را کنار هم بگذارید
برای هر مدل کاندید همین پنج مورد را بررسی کنید. نیازی نیست همه را با عدد پر کنید؛ کافی است بدانید کدام برای کار شما سنگینتر است.
| معیار | چه چیزی را بررسی کنید | چرا مهم است |
|---|---|---|
| فارسی | متن واقعی خودتان را بدهید، نه جملهٔ آزمایشی. | روانی، نیمفاصله و لحن، فقط روی متن واقعی دیده میشود. |
| طول ورودی | بلندترین ورودیتان در حد مدل جا میشود؟ | ورودی بلندتر از حد، بریده یا رد میشود. |
| قیمت | قیمت ورودی و خروجی را جدا ببینید. | خروجی معمولاً گرانتر از ورودی است. |
| سرعت | زمان رسیدن اولین کلمه را در سناریوی خودتان بسنجید. | برای گفتگوی زنده مهمتر از زمان کل است. |
| تواناییها | تصویر، فایل، ابزار یا خروجی ساختیافته لازم دارید؟ | همهچیز را همهٔ مدلها ندارند. |
قیمت هر میلیون توکن بهتنهایی گمراهکننده است. طول یک گفتگوی معمولیتان را حدس بزنید، در تعداد گفتگوهای ماه ضرب کنید و هزینهٔ ماهانه را حساب کنید. در هویدای قیمت هر مدل پیش از استفاده دیده میشود.
آزمون دهنمونهای
ده ورودی واقعی بردارید، یک پرامپت ثابت بنویسید و همان را به دو یا سه مدل بدهید. اگر برنامهنویس هستید، یک حلقهٔ ساده کافی است:
import osfrom openai import OpenAI client = OpenAI(base_url="https://<HOVEYDAI_BASE_URL>/v1", api_key=os.environ["HOVEYDAI_API_KEY"]) # the same ten real inputs, one prompt, a few candidate modelsMODELS = ["model-a", "model-b", "model-c"] for model in MODELS: for text in my_ten_inputs: r = client.chat.completions.create( model=model, messages=[{"role": "user", "content": PROMPT + text}], ) save(model, text, r.choices[0].message.content)
خروجیها را بدون دیدن نام مدل نمره بدهید. نام مدل بر قضاوت اثر میگذارد، حتی وقتی فکر میکنید اثری ندارد.
در این آزمون، نمونههای شما قاضیاند، نه جدول رتبهبندی دیگران.
کوچکترین مدلِ کافی را بردارید
مدلی که نمرهٔ قابلقبول گرفت و ارزانتر بود، انتخاب درست است؛ حتی اگر مدل دیگری کمی بهتر بنویسد. اگر کار شما چند مرحله دارد، هر مرحله را جدا بسنجید:
- مرحلههای ساده، مثل دستهبندی و استخراج، را به مدل کوچک بدهید.
- فقط مرحلهای را که نمرهاش پایین است به مدل قویتر ببرید.
- خروجیهای حساس را قبل از ارسال خودتان بخوانید.
مثلاً در دستیار پاسخ به مشتری، دستهبندی پیام ورودی کار سادهای است و مدل کوچک از پسش برمیآید؛ اما نوشتن پاسخ برای مشتری ناراضی ظرافت میخواهد و ارزش دارد مدل قویتری آن را بنویسد. با این تقسیم، هزینه فقط جایی خرج میشود که کیفیت را واقعاً عوض میکند.
آزمون را نگه دارید
مدلها عوض میشوند و قیمتها هم. ده نمونه و پرامپتتان را ذخیره کنید تا هر بار که مدل تازهای آمد، در ده دقیقه دوباره بسنجید. این فایل کوچک از هر مقایسهٔ بیرونی به کارتان نزدیکتر است.