منطق ایجنت‌ها › M7 — زیرساخت، پلن و هزینه
۷.۷ پایدار تدریسی ~۲۵ دقیقه

کنترل هزینه

قبل از این فصل: فصل ۱.۳ · فصل ۷.۶

در یک نگاه

۷.۷.۱

چه چیزی پول می‌سوزاند

فصل قبل گفت چقدر می‌پردازی. این فصل می‌گوید چطور کم‌ترش کنی — بدون اینکه کیفیت را از دست بدهی.

و اول باید بدانی پول کجا می‌سوزد. سه علت، به ترتیبِ اهمیت:

  1. context بزرگ که مکرراً فرستاده می‌شود. بزرگ‌ترین علت، و کم‌ترین دیده‌شده. بخش بعد کاملاً درباره‌ی همین است.
  2. خروجی بلند. چون خروجی پنج برابرِ ورودی گران است (فصل ۷.۶.۳)، جوابِ هزارکلمه‌ای که دویست کلمه‌اش را می‌خواندی، پنج برابرِ خودش هدر داده.
  3. تکرار بی‌فایده. همان کار را سه بار انجام‌دادن چون بار اول درخواست بدی دادی — که یعنی هزینه‌ی پرامپت ضعیف، مالی هم هست نه فقط زمانی (M2).

و دو چیزی که گمان می‌رود پول می‌سوزانند ولی نمی‌سوزانند: سؤال پرسیدن (ارزان است) و فکر کردن قبل از تایپ‌کردن (رایگان است). عادت‌های گران، عادت‌های بی‌فکریاند نه عادت‌های پرکاری.

۷.۷.۲

context بزرگ‌تر = هزینه‌ی بیشتر

در فصل ۱.۳.۴ گفتیم «token یعنی پول». حالا عددش را دیده‌ای و می‌شود دقیق گفت چرا این‌قدر مهم است.

نکته‌ی کلیدی که اغلب دیر فهمیده می‌شود: در هر نوبتِ گفت‌وگو، کلِ context دوباره فرستاده می‌شود. مدل حافظه ندارد (فصل ۱.۴.۱)، پس برای اینکه بداند قبلاً چه گفتید، همه‌چیز باید هر بار همراه درخواست برود.

به‌خاطر بسپار یک گفت‌وگوی طولانی، هزینه‌اش خطی بالا نمی‌رود — تجمعی بالا می‌رود. نوبت دهم، تقریباً ده برابرِ نوبت اول ورودی دارد. به همین دلیل است که «یک session طولانی» هم گران‌تر است و هم بی‌کیفیت‌تر (فصل ۱.۳.۳) — و همان یک کار هر دو مشکل را حل می‌کند: session تازه.

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

۷.۷.۳

عادت‌های کم‌هزینه

شش عادت، و هیچ‌کدام کیفیت را پایین نمی‌آورند — اکثرشان بالا می‌برند:

و توجه کن که این شش، همان توصیه‌های کیفیتیِ M2 و M3 هستند. این تصادفی نیست: چیزی که context را تمیز نگه می‌دارد، هم ارزان‌تر است و هم جوابِ بهتری می‌گیرد. تقریباً هیچ‌جا لازم نیست بین کیفیت و هزینه انتخاب کنی.

۷.۷.۴

پایش مصرف

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

  1. سقف بگذار. اگر با API کار می‌کنی، سقف ماهانه تنظیم کن. این تنها محافظتی است که حتی وقتی حواست نیست هم کار می‌کند — و همان چیزی است که فصل ۷.۵.۴ گفت در برابر کلیدِ لو‌رفته هم از تو دفاع می‌کند.
  2. هفته‌ای یک بار نگاه کن. پنج دقیقه. دنبال عدد نیستی؛ دنبال تغییرِ ناگهانی هستی. عددِ ثابت خبری نیست؛ عددی که دو برابر شده، یعنی چیزی عوض شده که نمی‌دانی چیست.
  3. و اگر با اشتراک کار می‌کنی، به سقف‌خوردن را یادداشت کن. اینکه «این ماه سه بار به سقف خوردم» داده‌ای است که تصمیمِ ارتقا را با عدد می‌گیرد، نه با حس (فصل ۷.۶.۲).
۷.۷.۵

انتخاب مدل به‌عنوان تصمیم هزینه‌ای

در فصل ۲.۲.۷ انتخاب مدل را از دید کیفیت دیدی. حالا از دید پول — و تفاوتشان جدی است: ارزان‌ترین و گران‌ترین مدل، پنج برابر با هم فرق دارند.

توصیه‌ی خودِ مستندات ساده است و بهترین راهنماست:

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

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

نکته‌ی طلایی اگر فقط یک عادت از این فصل برمی‌داری، این باشد: وقتی موضوع عوض شد، session تازه شروع کن. این یکی هم بیشترین صرفه‌ی مالی را دارد (چون تجمعِ context را صفر می‌کند) و هم بیشترین صرفه‌ی کیفیتی (چون افت context را حذف می‌کند). هیچ عادت دیگری این‌قدر دو طرفه سود نمی‌دهد.
ضدالگو صرفه‌جویی با کم‌تر پرسیدن. پرسیدن ارزان است؛ حدس‌زدن و اشتباه‌کردن گران. اگر برای صرفه‌جویی از سؤال‌های روشن‌کننده پرهیز کنی، کارِ اشتباه انجام می‌شود و باید دوباره انجامش بدهی — که هم بیشتر پول می‌دهی و هم وقتت را از دست می‌دهی. جای صرفه‌جویی ورودیِ بی‌فایده است، نه گفت‌وگوی مفید.

تمرین (فکری)

سه عادت پرهزینه‌ی خودت را پیدا کن و جایگزینشان را بنویس. برای پیدا کردنشان، این سه سؤال را از خودت بپرس:

  1. آخرین گفت‌وگوی طولانی‌ام چند نوبت شد، و از کدام نوبت به بعد موضوع عوض شده بود؟
  2. آخرین باری که کل یک فایل را دادم، واقعاً چند درصدش لازم بود؟
  3. و کدام کارم را با مدلی انجام می‌دهم که برایش زیادی گران است — یا زیادی ارزان؟
پاسخنامه — سه عادت، و آن یکی که برعکسِ انتظار است

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

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

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

الگوی مشترک هر سه: هیچ‌کدام «زیاد کار کردن» نبود. هر سه بی‌دقتی در انتخاب بود — و به همین دلیل رفعشان هیچ چیزی از تو کم نمی‌کند.

ذخیره شد