سیستمی که پیش از هر اقدام اجازه میخواهد
چرا در JARVIS مدلها تنها پیشنهاد میدهند و هرگز تصمیم نمیگیرند، و این انتخاب چه اثری بر معماری گذاشت.
پیشنویسی برای بازبینی؛ این نوشته هنوز منتشر نشده است.
نخستین تصویری که از JARVIS در ذهن داشتم، پنجرهای برای گفتوگو بود که از پس کارها هم برمیآمد. آنچه سرانجام ساختم، تقریباً وارونهی آن تصویر است: پایگاه دادهای با قواعد روشن، که مدل زبانی در آن تنها حق پیشنهاد دارد و بس.
پیشنهاد، نه تصمیم
هر بار که مدل بخواهد اتفاقی بیفتد، پیامی فرستاده شود، هزینهای انجام گیرد یا کاری تغییر کند، یک اقدام پیشنهادی میسازد. این پیشنهاد چیزی جز داده نیست و همان راهی را میپیماید که همهچیز دیگر:
- موتور سیاستها آن را با کلیدهای توقف، بودجه و سطح ریسک میسنجد؛
- اگر ریسک آن بالا باشد، در انتظار تأیید من میماند؛
- تنها پس از آن، اجراکننده دست به کار میشود و وارسی میکند که نتیجه همان بوده که باید؛
- و همهی اینها در سابقهی ممیزی زنجیروار ثبت میشود تا گذشته بیسروصدا دگرگون نشود.
مدل هرگز مستقیماً ابزاری را به کار نمیگیرد. ممکن است خطا کند، سردرگم شود یا بیش از اندازه مطمئن باشد؛ بیشترین کاری که از او برمیآید، پیشنهادی است که من به آن پاسخ منفی میدهم.
اثر این انتخاب بر معماری
این شیوهی طراحی سه تصمیم را پیش پای من گذاشت که از هیچکدام پشیمان نیستم:
- وضعیت در پایگاه داده است، نه در پرامپت. JARVIS با انباشتن متن در گفتوگو چیزی را به خاطر نمیسپارد؛ به خاطر میسپارد، چون واقعیتها ردیفهایی در SQLiteاند.
- تنها یک راه به بیرون هست. ارتباط با آدمها فقط از جدول صندوق خروجی میگذرد و هیچ پیامی ناخواسته به کسی نمیرسد.
- سکوت یعنی نه. تأییدی که پاسخی نگیرد، منقضی میشود و به رد میانجامد.
پیامدی دلپذیر هم داشت: کل هسته بینیاز از کلید API و اینترنت کار میکند. پیش از آنکه مدل واقعی به سیستم بپیوندد، توانستم تکتک قواعد را بیازمایم. و وقتی سرانجام لایهی مدل واقعی به کار افتاد، در سیستمی جا گرفت که از پیش، «نه» گفتن را میدانست.
جذابترین بخش یک سیستم هوش مصنوعی، خودِ مدل نیست؛ همهی آن چیزی است که پیرامونش تعیین میکند مدل اجازهی چه کاری دارد.