هزینه تأیید، هزینه واقعی کدنویسی با هوش مصنوعی است

قبلاً هنگام انتخاب یک مدل هوش مصنوعی برای کدنویسی، یک سوال می‌پرسیدم:

کدام مدل برای این کار به اندازه کافی قوی است؟

این سوال خوب است، اما دیگر اولین سوال من نیست.

سوال بهتر این است: با چه سرعتی می‌توانم خروجی را تأیید کنم؟

این طرز فکر، نحوه استفاده شما از مدل‌های ارزان‌قیمت را تغییر می‌دهد. به آن‌ها به چشم نسخه‌های ضعیف مدل‌های بزرگ نگاه نکنید؛ بلکه آن‌ها را به عنوان کارگرانی برای وظایفی ببینید که مسیر تأیید کوتاهی دارند.

بررسی برخی وظایف ارزان است، زیرا می‌توانید نتایج را بلافاصله مشاهده کنید.

• پاکسازی README • مثال‌های نحوه استفاده (Usage examples) • کامنت‌های کد • یادداشت‌های تغییرات (Changelog) • اسکریپت‌های کوچک قالب‌بندی • قالب‌های Issue

اگر مدلی یک پاراگراف بد برای README بنویسد، شما متوجه آن می‌شوید. بخش بد را حذف می‌کنید. این خطا آزاردهنده است، اما تقریباً هیچ هزینه‌ای برای شما ندارد. این بهترین کاربرد برای مدل‌های ارزان است.

دسته بعدی، کارهای قابل تست هستند.

اگر می‌توانید رفتار مورد انتظار را تعریف کنید و یک مجموعه تست (test suite) را اجرا کنید، از یک مدل ارزان‌تر برای پیش‌نویس اولیه استفاده کنید. شما باید مرزهای مشخصی را به مدل بدهید.

نگویید: برای این تابع کمکی (helper) تست اضافه کن.

بگویید: برای ورودی خالی، ورودی null، مقادیر تکراری، تنظیمات نامعتبر، تنظیمات پیش‌فرض و ورودی عادی تست اضافه کن. کد زمان اجرا (runtime code) را تغییر نده.

این کار مدل را مجبور می‌کند تا در یک چارچوب تأیید عمل کند.

برخی وظایف فاقد تست‌های خودکار هستند اما امکان بررسی دستی شفاف را فراهم می‌کنند.

• قالب‌بندی خروجی CLI • مثال‌های تنظیمات (Config) • یادداشت‌های اجرای آزمایشی مهاجرت (Migration dry run) • اسکریپت‌های کوچک تبدیل داده

برای این موارد، از مدل بخواهید شامل موارد زیر باشد:

  • نحوه اجرای کد
  • چه ورودی‌ای استفاده شود
  • چه خروجی‌ای انتظار می‌رود
  • کدام موارد مرزی (edge cases) باید بررسی شوند

اگر مدلی نتواند توضیح دهد که چگونه کار خودش را تأیید کند، به کد آن اعتماد نکنید.

بازنویسی‌های (refactors) کوچک خطرناک هستند. یک diff ممکن است کوتاه و تمیز به نظر برسد، اما رفتار برنامه ممکن است در یک مسیر پنهان، یک مقدار پیش‌فرض یا یک بررسی سطح دسترسی تغییر کند.

سطح ریسک خود را زمانی افزایش دهید که وظیفه با موارد زیر در ارتباط باشد:

  • جایگزین‌ها (Fallbacks)
  • مقادیر پیش‌فرض (Defaults)
  • مسیریابی (Routing)
  • سطح دسترسی‌ها (Permissions)
  • صورت‌حساب (Billing)
  • محدودیت نرخ (Rate limits)
  • مهاجرت‌ها (Migrations)
  • سازگاری با نسخه‌های قبلی (Backwards compatibility)

دیدن این خطاها در یک بازبینی کد (code review) استاندارد دشوار است. آن‌ها به بافت (context) عمیقی نیاز دارند.

کار خود را بر اساس هزینه تأیید دسته‌بندی کنید:

  • هزینه تأیید پایین: از یک مدل ارزان برای پیش‌نویس استفاده کنید.
  • هزینه تأیید متوسط: از یک مدل ارزان استفاده کنید، سپس توسط انسان ویرایش شود.
  • هزینه تأیید بالا: از یک مدل قدرتمند به همراه تست و بازبینی انسانی استفاده کنید.

اندازه مهم نیست. یک وظیفه کوچک اگر تأیید آن دشوار باشد، گران تمام می‌شود.

بخش گران‌قیمت کدنویسی با هوش مصنوعی، تولید کد نیست؛ بلکه اعتماد است.

Source: https://dev.to/zephyrelabs369/verification-cost-is-the-real-ai-coding-cost-1354

Optional learning community: https://t.me/GyaanSetuAi