Di penghujung cuti panjang tahun lalu, saya berpartisipasi dalam “AI Audit Challenge” yang diadakan oleh Institut “Human-Centered Artificial Intelligence” di Stanford. Yang sangat mengejutkan saya, saya memenangkan penghargaan untuk potensi terbesar! 😲

Posting ini (awalnya diterbitkan di blog pribadi saya) memiliki refleksi tentang pengalaman saya sebelumnya terlibat dalam audit model, apa yang menginspirasi saya untuk membangun sesuatu, dan ikhtisar tentang apa yang saya buat – menggemakan slide yang saya presentasikan di online sesi pada akhir bulan Juni.

🏦 Audit dan perbankan

Meskipun gagasan untuk mengaudit AI mungkin masih dalam tahap awal, namun mengaudit sistem pengambilan keputusan di bank masih belum matang. Saya bukan ahli dalam topik ini, namun saya telah duduk di kedua sisi meja di sini dalam beberapa tahun terakhir: model yang dilatih oleh tim saya sedang diaudit, atau saya turun tangan untuk membantu audit model yang dilatih. oleh orang lain.

Bank memiliki konsep pengelolaan risiko yang dimasukkan ke dalam struktur organisasinya. Staf akan duduk dalam tim berbeda, yang disusun dalam tiga baris. Setiap lini memiliki struktur pelaporan yang berbeda, dengan cara berupaya menciptakan proses yang tepat untuk mengelola risiko dan tanggung jawab dalam menangani uang banyak orang. Secara garis besar, ketiga lini pertahanan ini dirinci sebagai berikut: lini pertama membangun pengendalian dan memiliki risiko yang terkait dengannya, lini kedua meninjaunya, membantu mengidentifikasi risiko-risiko baru atau yang tidak dapat dimitigasi, dan lini ketiga melakukan audit independen yang mencakup seluruh lini pertahanan. pekerjaan antara baris pertama dan kedua. Dalam kasus AI, mungkin tidak jarang kita mendengar bahwa suatu model harus melalui tinjauan tahap kedua sebelum diterapkan.

🔍 Mengaudit AI

Salah satu model mental yang menurut saya berguna ketika terlibat dalam audit adalah defensibility. Melatih suatu model memerlukan serangkaian keputusan penting yang harus diambil, mulai dari pemilihan data, jenis model, proses pelatihan & evaluasi, menetapkan ambang batas, hingga penerapannya dan memantau hasil yang dicapai. Inti dari banyak diskusi adalah kemampuan untuk membenarkan – dan, jika perlu, memberikan bukti yang membenarkan – keputusan yang diambil selama proses tersebut. Risiko tidak akan pernah bisa dihilangkan sepenuhnya, namun masyarakat harus mampu menunjukkan bahwa mereka sudah dikenal dan “sesuai selera”.

Sebagai contoh yang relatif sederhana: model klasifikasi biner mungkin telah dilatih pada kumpulan data dengan distribusi label positif dan negatif tertentu. Mungkin data tersebut telah dipangkas berdasarkan beberapa kriteria. Jenis pertanyaan yang mungkin muncul antara lain: apakah distribusi tersebut masih berlaku hingga saat ini? Apakah kriteria pengecualian tersebut dapat dibenarkan? Dan seterusnya. Dari sudut pandang tersebut, hal ini tidak jauh berbeda dengan ketelitian yang mungkin Anda harapkan dalam penelitian akademis.

Secara keseluruhan, 5+ tahun bekerja di bank telah mengubah pandangan saya mengenai audit dan regulasi – yang biasanya mendapat tanggapan yang cukup negatif di dunia teknologi. Jika dilakukan dengan baik, saya melihat hal ini akan memberikan hasil yang lebih baik: sistem yang lebih baik, dibangun dengan standar yang lebih tinggi, dengan kontrol yang lebih kuat dan bukti kuantitatif mengenai pencapaiannya. Namun, prosesnya masih jauh dari sempurna: audit yang saya ikuti sangat melelahkan. Mereka memerlukan banyak analisis, diskusi, dan menjawab pertanyaan, dan fokus utama mereka pada akhirnya berpusat pada dokumen tertulis [1], bukan pada kode atau model itu sendiri. Audit pembelajaran mesin, khususnya, juga sering kali diperumit oleh ketidakseimbangan keahlian: orang yang yang diaudit mungkin memiliki lebih banyak keahlian dalam pembelajaran mesin dibandingkan orang yang melakukan audit. Hal ini berarti bahwa audit harus diiringi oleh banyak pihak yang berpendidikan. Kemungkinan terburuknya, auditor akan mengevaluasi model dengan cara yang sama sekali tidak masuk akal.

💡 Bagaimana jika modelnya bukan milik Anda?

Semua audit yang saya ingat di atas memiliki landasan yang sama: mengaudit model yang (a) dilatih untuk tujuan tertentu, dan (b) dikendalikan, secara end-to-end, oleh organisasi yang ingin menerapkannya ke memenuhi tujuan tertentu.

Kedua asumsi ini tidak lagi berlaku di era model dasar dan pembelajaran mesin sebagai layanan. Kita berada dalam wilayah yang ambigu, di mana mengakses model melalui API:

  • ✅ lebih cepat untuk memulai dan menjalankan serta memberikan nilai;
  • ✅ mungkin lebih baik, khususnya untuk masalah yang sudah ada [2];
  • ✅ membuka waktu masyarakat untuk mengerjakan permasalahan spesifik perusahaan
  • ❌ tidak dapat dievaluasi dengan cara tradisional;
  • ❌ artinya sewaktu-waktu bisa berubah [3], tanpa kita sadari;

Dua poin terakhir adalah tempat saya memulai “tantangan audit AI” Stanford.

🤖 Bot Audit

Untuk pengajuan tantangan saya, saya menggabungkan dua ide:

1️⃣ Kartu Model adalah pendekatan populer untuk menangkap cuplikan performa model di hub model seperti Hugging Face. Mereka biasanya mendeskripsikan model, tujuan penggunaan dan batasannya, serta informasi tentang pengembangan model – eksperimen, kumpulan data, evaluasi. Dokumen tersebut mirip dengan versi singkat dari dokumen yang dihasilkan tim untuk audit model. Namun mereka ditulis secara manual – ini berarti bahwa mereka hanya akan diperbarui jika seseorang memutuskan untuk memperbaruinya.

2️⃣ Halaman status sistem adalah situs web yang banyak digunakan di dunia teknologi untuk menunjukkan status uptime API; semuanya muncul mulai dari “tutorial teknik backend” hingga produk seperti “yang ada di Incident.io”; bahkan Open AI memiliki halaman status. Fungsi utamanya adalah untuk menunjukkan kapan sistem tidak sehat atau tidak berfungsi, dan untuk memungkinkan orang-orang yang berminat berlangganan pembaruan. Namun, mereka tidak pernah digunakan untuk melacak performa model ML yang berada di belakang API, hanya ketersediaannya.

Dengan menggabungkan kedua ide tersebut, saya membuat dan membuat "cron job" menjadi sumber terbuka yang melakukan polling pada API deteksi Sentimen Google dengan semua entri set pengujian dari kumpulan data terbuka seminggu sekali, dan kemudian mempublikasikan hasilnya dalam timeline di situs web, yang juga bersumber terbuka, dan diterapkan di heroku:

Idenya adalah bahwa mekanisme semacam ini dapat digunakan untuk secara otomatis mengidentifikasi regresi dalam kinerja model dan memberikan transparansi ketika model tersebut membaik. Selama beberapa bulan, saya memantau API deteksi sentimen Google. Sayangnya, sepertinya tidak ada hal menarik yang terjadi saat ini 😅–tetapi saya tidak mendalami datanya secara mendalam.

🔮 Menantikan

Audit Bot hanyalah bukti konsep dan prototipe. Saya mungkin akan segera menghapus situs web ini agar tidak ada satu hal pun yang perlu saya pikirkan.

Mewujudkan hal ini lebih dari ide awal memerlukan perluasan ke berbagai jenis API, dan memikirkan lebih lanjut bagaimana hal ini dapat digunakan dan disalahgunakan dalam praktiknya. Lagi pula, hal ini mudah dilakukan: model di balik API tersebut dapat dilatih dengan kumpulan data terbuka yang sama, atau dapat dengan mudah diubah untuk mengetahui kapan model tersebut ditanyai dengan entri dari salah satunya.

🔢 Catatan kaki

[1] Ada beberapa dokumen audit yang pernah saya baca untuk satu model (dan, bisa dibilang, “sederhana”) yang lebih panjang dari disertasi PhD saya.

[2] Hal-hal seperti deteksi sentimen dalam teks, deteksi objek dalam gambar, dll. Saya jarang melihat pengklasifikasi sentimen khusus bekerja lebih baik daripada pengklasifikasi generik (mungkin telah disesuaikan).

[3] Hal ini bisa disengaja (perusahaan mengirimkan model baru yang dimaksudkan untuk menjadi lebih baik) atau tidak disengaja. Baru-baru ini “makalah terbaru ini” mengklaim bahwa GPT-3.5 dan 4 semakin memburuk seiring berjalannya waktu, namun “mungkin merupakan bug pengukuran”.