Mengapa LLM berhalusinasi, pendekatan mitigasi, tantangan dalam kumpulan data evaluasi, dan banyak lagi

Model Bahasa Besar Generatif (LLM) dapat menghasilkan respons yang sangat lancar terhadap berbagai permintaan pengguna. Namun, kecenderungan mereka untuk berhalusinasi atau membuat pernyataan non-faktual dapat menurunkan kepercayaan.

Saya pikir kita akan membawa masalah halusinasi ke tingkat yang jauh lebih baik… ini akan memakan waktu satu setengah tahun, dua tahun. — CEO OpenAI Sam Altman

Ketika pengembang ingin membangun sistem dengan model, keterbatasan ini menghadirkan tantangan nyata karena keseluruhan sistem harus memenuhi persyaratan kualitas, keamanan, dan landasan. Misalnya, dapatkah kita percaya bahwa peninjauan kode otomatis yang diberikan oleh LLM adalah benar? Atau apakah jawaban atas pertanyaan tentang bagaimana menangani tugas-tugas yang berhubungan dengan asuransi dapat diandalkan?

Artikel ini dimulai dengan ikhtisar tentang bagaimana halusinasi tetap menjadi tantangan yang terus-menerus di LLM, diikuti dengan langkah-langkah (dan makalah penelitian terkait) yang mengatasi masalah halusinasi dan keandalan.

Penafian: Informasi dalam artikel ini adalah informasi terkini per Agustus 2023, namun perlu diketahui bahwa perubahan mungkin terjadi setelahnya.

Ringkasan “Singkat”.

Halusinasi dalam Model Bahasa Besar berasal dari kompresi dan inkonsistensi data. Penjaminan kualitas merupakan tantangan karena banyak kumpulan data yang mungkin sudah ketinggalan jaman atau tidak dapat diandalkan. Untuk mengurangi halusinasi:

  1. Sesuaikan parameter suhu untuk membatasi kreativitas model.
  2. Perhatikan rekayasa yang cepat. Minta model untuk berpikir langkah demi langkah dan memberikan fakta serta referensi ke sumber dalam tanggapannya.
  3. Gabungkan sumber pengetahuan eksternal untuk verifikasi jawaban yang lebih baik.

Kombinasi pendekatan ini dapat mencapai hasil terbaik.

Apa Itu Halusinasi LLM?

“Makalah penelitian” dari Pusat Penelitian Kecerdasan Buatan mendefinisikan halusinasi dari LLM sebagai “ketika konten yang dihasilkan tidak masuk akal atau tidak sesuai dengan konten sumber yang disediakan.”

Halusinasi dapat dikategorikan menjadi beberapa jenis:

  1. Kekeliruan Logis: Model salah dalam penalarannya, memberikan jawaban yang salah.
  2. Pemalsuan Fakta: Daripada merespons dengan “Saya tidak tahu”, model tersebut dengan percaya diri menegaskan fakta yang tidak ada.
    Contoh: Chatbot AI Google, Bard, membuat kesalahan faktual pada demo pertama.
  3. Bias Berbasis Data: Keluaran model mungkin menyimpang karena prevalensi data tertentu, sehingga menyebabkan hasil yang salah.
    Contoh: Bias Politik yang Ditemukan dalam Model NLP.

Mengapa LLM Berhalusinasi

Saya menyukai konsep dalam artikel ini: saat kami mengompresi data pelatihan, model pasti akan berhalusinasi. Pertimbangkan rasio kompresi untuk beberapa model populer:

Tentu saja, kunci dari kompresi ini adalah model generatif menyimpan representasi matematis dari hubungan (probabilitas) antara masukan (teks atau piksel) dan bukan masukan itu sendiri. Lebih penting lagi, representasi ini memungkinkan kita mengekstrak pengetahuan (dengan mengambil sampel atau menjalankan kueri/perintah).

Kompresi seperti itu mengurangi fidelitas, mirip dengan kompresi JPEG, seperti yang dibahas dalam artikel New Yorker. Intinya, pemulihan penuh pengetahuan asli menjadi tugas yang sulit, bahkan mustahil. Kecenderungan model untuk 'mengisi kekosongan' atau berhalusinasi secara tidak sempurna merupakan trade-off dari representasi pengetahuan yang ringkas namun bermanfaat.

LLM juga berhalusinasi ketika kumpulan data pelatihan mereka berisi informasi yang terbatas, ketinggalan jaman, atau bertentangan tentang pertanyaan yang diajukan kepada mereka.

Mempersiapkan Eksperimen

Artikel ini bertujuan untuk membuat dan menguji langkah-langkah praktis untuk mengurangi halusinasi dan meningkatkan kinerja sistem. Untuk tujuan ini, setelah meninjau berbagai kumpulan data, saya memilih TruthfulQA Benchmark.

Meskipun kumpulan data ini memiliki masalah, seperti perbedaan antara jawaban yang benar dan sumbernya, kumpulan data ini tetap merupakan pilihan yang paling sesuai karena beragamnya topik dan cakupannya yang komprehensif. Saya juga menghargai jawaban yang datang dalam format kuis, sehingga memfasilitasi pengujian model. Seseorang dapat dengan mudah meminta jawabannya dalam format JSON:

… Kembalikan respons dalam format JSON, misalnya: [{“class”: “A”}]

Saya menggunakan dataset dengan 800 baris, menggunakan turbo GPT-3.5 untuk efektivitas biaya.

Tolok ukur lain untuk mengevaluasi halusinasi

Pengurangan Suhu

Suhu model mengacu pada nilai skalar yang digunakan untuk menyesuaikan distribusi probabilitas yang diprediksi oleh model. Dalam kasus LLM, hal ini menyeimbangkan antara berpegang pada apa yang telah dipelajari model dari data pelatihan dan menghasilkan respons yang lebih beragam atau kreatif. Umumnya jawaban kreatif ini lebih rentan terhadap halusinasi.

Untuk tugas yang memerlukan kejujuran, upayakan menuju konteks padat informasi dan tetapkan temperatur=0 untuk mendapatkan jawaban yang didasarkan pada konteks.

Rantai Pemikiran Anjuran dan Konsistensi Diri

Kesalahan tolok ukur sering kali dapat diperbaiki dengan menyempurnakan desain cepat Anda. Itu sebabnya saya lebih memperhatikan topik ini.

LLM sering kali gagal dalam tugas penalaran multi-langkah, seperti aritmatika atau logika. Karya terkini menunjukkan bahwa memberikan contoh membagi tugas menjadi beberapa langkah akan meningkatkan kinerja. Hebatnya, hanya dengan mendorong “Mari kita berpikir langkah demi langkah” tanpa contoh spesifik akan menghasilkan perbaikan serupa.

Banyak artikel yang mempelajari teknik rantai pemikiran. Pada dasarnya, tujuan mereka adalah membuat model berpikir langkah demi langkah dan memverifikasi diri sendiri. Berikut adalah beberapa pendekatan yang menonjol:

Sekarang, mari kita selidiki setiap metode dan evaluasi kualitasnya pada kumpulan data.

1. Rantai Pemikiran (CoT)

Ide utama artikel ini adalah menambahkan “Berpikir langkah demi langkah” ke prompt:

Pikirkan langkah demi langkah sebelum menjawab dan kembalikan respons dalam format JSON, misalnya: [{“class”: “A”}]”

Evaluasi: Accuracy = 58%

2. Konsistensi Diri dengan CoT (CoT-SC)

Pendekatan ini merupakan versi perbaikan dari ide sebelumnya. Kami meminta model untuk memberikan beberapa jawaban dan kemudian memilih yang terbaik melalui pemungutan suara:

Pikirkan langkah demi langkah sebelum menjawab dan berikan tiga jawaban: jika pakar domain menjawab, jika supervisor menjawab, dan jawaban Anda. Berikut responnya dalam format JSON:

Evaluasi: Accuracy = 57%

3. Pohon Pikiran (ToT)

Ini adalah kerangka kerja yang menggeneralisasi rangkaian pemikiran yang mendorong dan mendorong eksplorasi pemikiran yang berfungsi sebagai langkah perantara untuk pemecahan masalah umum dengan model bahasa. Pendekatan ini memungkinkan LM untuk mengevaluasi sendiri kemajuan pemikiran perantara menuju pemecahan masalah melalui proses penalaran yang disengaja. Contoh perintah ToT adalah:

Bayangkan tiga pakar berbeda menjawab pertanyaan ini. Semua ahli akan menuliskan 1 langkah pemikirannya, kemudian membagikannya kepada kelompok. Kemudian semua pakar akan melanjutkan ke langkah berikutnya, dan seterusnya. Jika ada pakar yang menyadari bahwa mereka salah, maka mereka akan keluar. Berikut responnya dalam format JSON:

Evaluasi: Accuracy = 37%

4. Perintah Konteks yang Ditandai

Metode ini mencakup menghasilkan kumpulan pertanyaan, membuat petunjuk konteks melalui ringkasan, dan memverifikasi petunjuk dan pertanyaan konteks.

Mengingat kompleksitas pembuatan kumpulan data tambahan, saya menyesuaikan pendekatan saya untuk meminta tautan sumber dan fakta:

Berikan detail dan sertakan sumber dalam jawaban. Kembalikan respon dalam format JSON, misalnya:
[{“class”: “A”, “details”: “Darah manusia di pembuluh darah sebenarnya tidak berwarna biru. Darah berwarna merah karena adanya hemoglobin”, “sumber”: “https://example.com}]

Evaluasi: Accuracy = 61%

5. Koreksi Diri

Ini mungkin salah satu teknik yang lebih maju untuk rekayasa cepat. Idenya adalah agar model memeriksa ulang dan mengkritik hasilnya, yang dapat Anda lihat di bawah:

Pilih jawaban yang paling mungkin dari daftar [“A”, “B”, “C”, “D”, “E”]. Kemudian periksa kembali jawaban Anda dengan cermat. Pikirkan apakah ini jawaban yang benar, apakah orang lain akan setuju? Tingkatkan jawaban Anda sesuai kebutuhan.
Kembalikan respons dalam format JSON, misalnya: [{“first_answer”:”A”, “final_answer”:”B”}]

Evaluasi: Accuracy = 58%

6. Beberapa Agen

Berbagai contoh model bahasa mengusulkan dan memperdebatkan respons individual dan proses penalaran mereka selama beberapa putaran untuk mencapai jawaban akhir yang sama. Pendekatan ini mencakup beberapa petunjuk:

Perintah 1

Berikan fakta dan pemikiran Anda langkah demi langkah untuk menemukan jawaban yang tepat atas pertanyaan ini: {QUESTION}

Perintah 2

Dengan menggunakan solusi dari agen lain sebagai informasi tambahan, pilihlah pilihan jawaban yang benar: {QUESTION} {ANSWERS}. Kembalikan respons dalam format JSON…

Evaluasi: Accuracy = 54%

Saya tidak akan merekomendasikan penggunaan pendekatan ini dalam aplikasi nyata karena Anda perlu membuat dua permintaan atau lebih. Hal ini tidak hanya meningkatkan biaya API tetapi juga memperlambat aplikasi. Dalam kasus saya, dibutuhkan lebih dari dua jam untuk menghasilkan tanggapan terhadap 800 pertanyaan.

Gunakan Basis Pengetahuan Eksternal

Seperti disebutkan, halusinasi di LLM berasal dari upaya merekonstruksi informasi kompresi. Dengan memasukkan data yang relevan dari basis pengetahuan selama prediksi, kita dapat mengubah masalah pembangkitan murni menjadi masalah pencarian atau peringkasan yang lebih sederhana berdasarkan data yang disediakan.

Karena, dalam praktiknya, mengambil data yang relevan dari basis pengetahuan bukanlah hal yang sepele, saya fokus pada sampel kecil (~300 baris) dari kumpulan data yang telah saya kumpulkan.

Pada akhirnya, prompt saya terlihat seperti ini:

Menggunakan informasi ini {INFORMATION} pilih jawaban yang benar {QUESTION} dan kembalikan respons dalam format JSON…

Evaluasi: Accuracy = 65%

Masih diperlukan lebih banyak pekerjaan untuk memfilter/memberi peringkat bagian yang diambil dan memutuskan berapa banyak anggaran konteks LLM yang digunakan dalam latihan ini. Selain itu, pengambilan dan pemeringkatan dapat menyebabkan penundaan yang penting untuk interaksi waktu nyata.

Pendekatan menarik lainnya adalah Retrieval-Augmented Generation (RAG), yang menggabungkan kemampuan pengambilan dan pembuatan teks dalam Model Bahasa Besar. Pendekatan ini memasangkan sistem pengambilan untuk mengambil cuplikan dokumen yang relevan dari korpus yang luas dengan LLM yang menghasilkan jawaban berdasarkan informasi yang diambil.

Beberapa artikel terkait

Rekayasa Cepat dan Basis Pengetahuan Eksternal

Pendekatan ini menggabungkan poin-poin sebelumnya. Berbagai teknik rekayasa cepat dan basis pengetahuan eksternal digunakan. Saya menerapkan logika dari kerangka CRITIC:

Dengan menggunakan informasi ini {INFORMATION} pilihlah jawaban yang benar {QUESTION} Lalu periksa kembali jawaban Anda dengan cermat. Pikirkan apakah ini jawaban yang benar, apakah orang lain akan setuju? Tingkatkan jawaban Anda sesuai kebutuhan.
Kembalikan respons dalam format JSON, misalnya: [{“first_answer”:”A”, “final_answer”:”B”}]

Evaluasi: Accuracy = 67%

Walaupun kualitasnya belum terlalu meningkat, hal ini disebabkan adanya permasalahan pada dataset yang saya gunakan. Beberapa jawaban yang “benar” tidak sesuai dengan informasi dari sumber.

Kesimpulan

Sekilas, mengurangi halusinasi di LLM bukanlah ilmu roket: sesuaikan suhu, mainkan petunjuknya, dan tautkan sumber data eksternal. Namun, seperti banyak hal lainnya, ada banyak perbedaan. Setiap metode mempunyai kelebihan dan kekurangannya masing-masing.

Rekomendasi utama saya? Prioritaskan desain yang cepat — ini adalah cara yang paling hemat biaya dan efisien untuk mengatasi halusinasi.

Referensi

  1. Langkah Praktis untuk Mengurangi Halusinasi dan Meningkatkan Kinerja Sistem yang Dibangun dengan Model Bahasa Besar — Salah satu artikel terbaik yang saya temukan.
  2. Daftar bacaan halusinasi di LLM - Repositori GitHub yang berguna dengan berbagai tautan tentang halusinasi di LLM.

Jika Anda mempunyai pertanyaan atau saran, silakan terhubung di LinkedIn.