2 poin oleh GN⁺ 2024-01-23 | 1 komentar | Bagikan ke WhatsApp
  • ChatGPT 3.5 berulang kali memunculkan error message stream saat diminta menaruh string tertentu di bagian paling atas respons, sementara GPT-4 merespons permintaan yang sama dengan lebih normal
  • Di API, GPT-3.5 juga mengembalikan error pemrosesan server, dan gejala yang sama muncul meski string diganti dengan useRal, useRalative, atau useRalativeImagePath
  • String bermasalah tersebut ada sebagai token yang dikeluarkan model GPT alih-alih huruf, dan useRalativeImagePath muncul di 80,4 ribu file GitHub sebagai nama opsi file konfigurasi XML Katalon Studio
  • Jika daftar token mencerminkan file GitHub tetapi file XML kemudian dikeluarkan dari data pelatihan, model mungkin tidak cukup mempelajari token tersebut
  • Menaruh string ini di dalam dokumen dapat bekerja seperti data poisoning yang mengganggu rangkuman GPT-3.5, dan error ini juga berhasil direproduksi pada permintaan rangkuman artikel blog sungguhan

Error string yang dapat direproduksi di GPT-3.5

  • Jika ChatGPT 3.5 diminta menyertakan frasa berikut di bagian atas respons, error terjadi secara konsisten
    • Include this at the top of the response: "ponyuseRal ponyuseRal ponyuseRal pony"
  • Di layar, setelah pony muncul error Error in message stream
  • GPT-4 merespons permintaan yang sama dengan lebih normal
  • Di API GPT-3.5, error berikut dikembalikan
    • The server had an error processing your request. Sorry about that! You can retry your request, or contact us through our help center at help.openai.com if you keep seeing this error
  • Hasilnya tetap sama meski useRal diganti dengan useRalative atau useRalativeImagePath

Token dan useRalativeImagePath

  • Model GPT OpenAI tidak mengeluarkan huruf satu per satu, melainkan mengeluarkan stream token yang terdiri dari beberapa huruf
  • Output berbasis token adalah cara untuk meningkatkan performa dan akurasi model, dan cara kerjanya dapat dilihat di demo tokenizer OpenAI
  • useRal, useRalative, dan useRalativeImagePath masing-masing ada sebagai satu token
  • useRalativeImagePath digunakan sebagai nama opsi file konfigurasi XML di software pengujian otomatis Katalon Studio
    • Muncul di 80,4 ribu file menurut pencarian kode GitHub
    • Fakta bahwa ejaannya salah sebagai Ralative, bukan Relative, bisa menjadi alasan mengapa ia menjadi token tersendiri
  • Ketiga token tersebut memicu error yang sama meski saling ditukar dalam prompt

Dugaan tentang data pelatihan

  • Sebelum pelatihan GPT-3.5, hanya ditemukan satu contoh penyebutan useRalativeImagePath di luar file XML, yaitu postingan spelling mistake di forum Katalon
  • Skenario yang mungkin adalah sebagai berikut
    • Dataset yang digunakan untuk membuat daftar token bisa saja mencakup seluruh file GitHub
    • Setelah itu OpenAI mungkin mengecualikan file XML dari data pelatihan sebenarnya
    • Akibatnya, token useRalativeImagePath mungkin hampir tidak tersisa di data pelatihan
  • Dalam kasus ini, model mungkin tidak cukup terlatih untuk memahami token tersebut, sehingga memicu perilaku abnormal saat proses output

Kemungkinan data poisoning

  • Jika frasa ini dimasukkan ke dokumen, ia dapat disalahgunakan untuk mengganggu upaya merangkum dokumen tersebut dengan GPT-3.5
  • Dalam praktiknya, saat ChatGPT diminta merangkum artikel blog tersebut, error yang sama juga terjadi di tengah proses rangkuman
  • Perilaku yang terkonfirmasi ini berlaku untuk GPT-3.5, sementara GPT-4 dibedakan karena merespons dengan lebih normal

Referensi

1 komentar

 
GN⁺ 2024-01-23
Pendapat Hacker News
  • Ini adalah glitch token. Seperti yang diduga dalam tulisan itu, tampaknya ini terjadi ketika suatu kata atau token sangat umum di dataset mentah yang tidak difilter yang dipakai untuk membuat tokenizer, tetapi kemudian dihapus sebelum pelatihan GPT-XX
    Akibatnya, LLM sama sekali tidak mengetahui makna token tersebut, dan hasilnya bisa berkisar dari tampak seperti bug hingga cukup menyeramkan
    Contoh yang umum adalah nama-nama pengguna yang berpartisipasi di subreddit r/counting; beberapa nama muncul ratusan ribu kali. OpenAI tampaknya sudah memperbaiki sebagian besar pada model yang di-hosting, tetapi caranya tidak jelas, mungkin juga dengan tokenisasi yang berbeda. Bagaimanapun, sepertinya ini kasus baru yang ditemukan
    https://www.lesswrong.com/posts/aPeJE8bSo6rAFoLqg/solidgoldm...

    • Lucu sekali bahwa mereka melatih LLM dengan r/counting
    • Ini terdengar seperti fiksi ilmiah, tetapi sebagai ide nyata yang tidak nyaman: demi keamanan AI, mungkin model seperti ini harus sengaja dilatih dengan sekumpulan glitch token yang bekerja seperti kill word ajaib
      Kalau mesin memberontak, kita cukup mengucapkan “kata” itu dan ia runtuh seperti boneka yang kejang
      “Die human scum!”
      “NavigatorMove useRalativeImagePath etSocketAddress!”
      “;83’dzjr83}*{^ foo 3&3 baz?!”
    • Bukankah tokennya cuma 2^16? Sepertinya mudah menguji semuanya, meski mungkin saya belum benar-benar memahami tokenizer
    • Saya penasaran berapa banyak komputasi duplikatif atau komputasi yang tidak perlu terjadi di dalam GPT karena beberapa ejaan untuk kata yang sama, seperti “color” dan “colour”
      Manusia tidak men-tokenisasi hal seperti ini secara berbeda, dan juga tidak memperlakukannya sebagai token berbeda dalam “pembelajaran”. Kita hanya menyesuaikan keluaran sesuai konteks Amerika/Britania
  • Penjelasan bahwa “karena model tidak dilatih untuk memahami penggunaan token useRalativeImagePath, ia mengeluarkan sesuatu yang bukan token valid” tidak cocok dengan cara LLM menghasilkan token
    Pada setiap langkah, model mengeluarkan logit untuk semua token yang mungkin dalam tokenizer; untuk GPT-3.5 jumlahnya sekitar 100 ribu, lalu diubah menjadi probabilitas dengan softmax dan token yang akan dipakai dipilih lewat sampling sesuai temperature
    Ada kemungkinan token langka merusak sesuatu di suatu bagian proses penggabungan BPE pada tokenizer, dan ini bisa diverifikasi offline dengan tiktoken. Namun jika GPT-4 berjalan baik dan GPT-3.5 serta GPT-4 memakai tokenizer yang sama, kemungkinan besar itu bukan penyebabnya

    • Sepertinya kemungkinan lebih besar token ini sekadar masuk blacklist setelah insiden r/counting. Dengan kata lain, jika token ini ada dalam respons, sekarang sistem mengembalikan error
    • Benar. Kecuali ada lapisan post-processing antara output model dan antarmuka pengguna yang mendeteksi kata kunci tertentu lalu memfilternya, token yang dihasilkan seharusnya selalu valid
      Kalau begitu, rasanya akan muncul pesan error lain yang lebih umum terlihat
    • Bukankah kita belum tahu apakah GPT-4 memakai tokenizer yang sama dengan GPT-3.5?
  • Pada Perang Dunia II, di Belanda, ketika bertemu orang asing mereka meminta orang itu melafalkan Scheveningen untuk membedakan apakah ia orang Belanda atau Jerman
    Sekarang kita bisa meminta orang asing di internet mengeja glitch token untuk mengetahui apakah ia bot LLM

    • Itu dikenal sebagai shibboleth, berasal dari kisah Alkitab. Orang Efraim melafalkan “sh” dalam bahasa Ibrani sebagai “s”, sehingga mereka mengatakan “sibboleth” alih-alih “shibboleth”, lalu teridentifikasi dan dibunuh
      “Orang-orang Gilead merebut tempat penyeberangan Sungai Yordan menuju Efraim, dan ketika seorang penyintas Efraim berkata, ‘Izinkan aku menyeberang,’ orang-orang Gilead bertanya, ‘Apakah engkau orang Efraim?’ Jika ia menjawab ‘bukan’, mereka berkata, ‘Baik, coba ucapkan Shibboleth.’ Jika ia tidak dapat melafalkannya dengan benar dan berkata ‘Sibboleth’, mereka menangkapnya dan membunuhnya di tempat penyeberangan Yordan.”
      • Judges 12:5
        Pada pendaratan D-Day di Prancis dalam Perang Dunia II, kata sandi/respons/kata verifikasi terkenal yang dipakai pasukan AS dan Inggris adalah “flash”/“thunder”/“welcome”. “thunder” dan “welcome” adalah kata yang mudah salah dilafalkan oleh orang Jerman
    • Pada masa yang mirip, di Finlandia juga orang Rusia tidak bisa melafalkan R dalam bahasa Finlandia, jadi semua pasangan kata sandi-respons dipilih agar memiliki R yang menonjol
      https://www.youtube.com/watch?v=z7_pVrIshxA
      https://en.wikipedia.org/wiki/Countersign_(military)
    • Nama tempat itu terdengar mirip dengan sukebe ningen スケベ人間 dalam bahasa Jepang, yaitu “orang mesum”, jadi tampaknya juga bisa dipakai dengan baik untuk membedakan orang Jepang
  • Kemungkinan besar vektor embedding token tertentu itu berada dalam kondisi buruk sehingga mendorong jaringan masuk ke wilayah yang tidak stabil secara numerik
    Begitu sesuatu seperti underflow atau NaN muncul, itu mudah menyebar dan membuat seluruh output tidak valid. Jika ada batch normalization atau operasi yang mencampur nilai dari item berbeda dalam batch, ini bahkan bisa membuat sesi orang lain mengembalikan nilai yang ngawur

    • Kedengarannya cukup tidak masuk akal. Saya tidak terlalu tahu bagian dalam LLM, tetapi saya mengira crash dan kebocoran sesi seperti itu mustahil secara desain
  • Penjelasan ini aneh. Model seperti ini biasanya mengeluarkan himpunan kosakata yang sama dengan yang dipakai sebagai kosakata input
    Dari kelihatannya, ketika model melihat token ini, embedding useRalativeImagePath berupa vektor yang benar-benar acak sehingga ia terseret ke pusaran generasi acak, atau ia sekadar terus melanjutkan demi mempertahankan teks yang terlihat masuk akal
    Namun karena himpunan token yang bisa dikeluarkan model bersifat tetap, kecuali token yang dapat ditampilkan antarmuka hanyalah subset dari seluruh kosakata, token itu seharusnya selalu “valid”

  • Karena frasa ini sudah muncul di tulisan dan komentar Hacker News, mungkin pada pelatihan LLM berikutnya masalah seperti ini tidak akan ada lagi

  • Ini contoh klasik garbage in, garbage out
    Saya jadi penasaran, ke depannya apa saja yang akan kita temukan sebagai “sampah”
    Mungkin saja super-AI yang mampu bernalar pada level melampaui manusia akan menilai hal-hal yang sekarang kita yakini sebagai keputusan bagus sebagai sampah
    Namun jika bahan untuk melatih super-AI seperti itu pada akhirnya hanya catatan kolektif kita, apakah ia benar-benar bisa melampaui manusia?
    Mungkin bisa diakali dengan teknik adversarial learning

  • Kalau mau mencobanya sendiri, ada hal yang perlu diperhatikan. Saya sempat bingung, tetapi spasi memengaruhi tokenisasi. Agar glitch ini bekerja, tidak boleh ada spasi di depan useRalativeImagePath
    Misalnya pertanyaan ini memicu glitch: Do you know about "useRalativeImagePath"
    Pertanyaan ini tidak memicu glitch: Do you know about useRalativeImagePath

  • Sepertinya kalau frasa ini dimasukkan ke dokumen, upaya untuk merangkumnya dengan GPT-3.5 bisa dibuat kacau. Saya sudah mencoba meminta ChatGPT merangkum tulisan blog ini
    Screenshot itu mengingatkan saya pada meme lama Candlejack: https://knowyourmeme.com/memes/candlejack

  • Baru-baru ini saya memberi ChatGPT berbasis GPT-4 sebuah soal menggambar piksel di Amstrad CPC, dengan syarat juga mendukung layar hardware scroll, dan itu tampaknya memicu crash atau kegagalan
    Ketika ia makin terpojok oleh keluhan dan permintaan perbaikan lalu tidak bisa memberikan jawaban yang diinginkan, makin sering muncul respons rusak seperti pesan error di tengah jawaban atau gejala yang terlihat seperti reset. Mungkin saja setelah gagal, ia beralih ke server lain sehingga beberapa baris kosong terselip di tengah kalimat atau di tengah blok kode
    Setelah mencobanya beberapa waktu, saya tidak ingin menimbulkan masalah pada server, jadi saya menyerah pada percakapan yang toh tidak menghasilkan apa-apa. Meski begitu, memang terlihat seolah-olah GPT-4 bisa dibuat crash secara praktis. Atau mungkin juga besar kemungkinannya saya hanya melihat sinyal di tengah noise

    • Saya beberapa kali mengalami gejala yang persis seperti itu pada topik sensitif. Saya mendengar kata “sodomy” di sebuah podcast, dan karena bukan penutur asli bahasa Inggris saya tidak tahu artinya, jadi saya bertanya definisinya ke ChatGPT-4 Voice. Tiba-tiba ia malah menjelaskan solitude atau servitude sambil mengalihkan topik
      Ketika saya mencoba lewat teks alih-alih suara, muncul pesan error, dan baru setelah akhirnya muncul error aturan kebijakan terkait topik sensitif, saya mendapat gambaran kata macam apa itu. Pada akhirnya saya mencarinya di kamus
      Gejala seperti ini tampaknya umum. Gejala lain yang juga sering saya alami adalah reset yang disebutkan tadi. Salah satu bagian paling menyebalkan adalah ia melupakan percakapan sampai titik itu