Mengenal ELIZA, Pendahulu yang Serupa dengan Chat GPT

Jauh sebelum CHAT GPT ramai diperbincankan dan viral seperti sekarang, dahulu ada program serupa bernama ELIZA. ELIZA adalah program komputer pemrosesan bahasa alami awal yang dibuat dari tahun 1964 hingga 1966 di MIT oleh Joseph Weizenbaum. Dibuat untuk mengeksplorasi komunikasi antara manusia dan mesin, ELIZA menyimulasikan percakapan dengan menggunakan pencocokan pola dan metodologi substitusi yang memberi pengguna ilusi pemahaman pada bagian dari program, tetapi tidak memiliki representasi yang dapat dianggap benar-benar memahami apa yang dikatakan oleh salah satu pihak. Sedangkan program ELIZA itu sendiri ditulis (awalnya) dalam MAD-SLIP, arahan pencocokan pola yang berisi sebagian besar kemampuan bahasanya disediakan dalam "skrip" terpisah, diwakili dalam representasi seperti lisp.

eliza chat

Skrip yang paling terkenal, DOCTOR, mensimulasikan psikoterapis dari sekolah Rogerian (di mana terapis sering mencerminkan kembali kata-kata pasien kepada pasien) dan menggunakan aturan, didikte dalam naskah, untuk menanggapi dengan pertanyaan non-directional terhadap input pengguna. Dengan demikian, ELIZA adalah salah satu chatterbots pertama ("chatbot" modern) dan salah satu program pertama yang mampu mencoba tes Turing.

Pencipta ELIZA, Weizenbaum, bermaksud program ini sebagai metode untuk mengeksplorasi komunikasi antara manusia dan mesin. Dia terkejut, dan terkejut, bahwa orang-orang menghubungkan perasaan seperti manusia dengan program komputer, termasuk sekretaris Weizenbaum. Banyak akademisi percaya bahwa program ini akan dapat secara positif mempengaruhi kehidupan banyak orang, terutama mereka yang memiliki masalah psikologis, dan dapat membantu dokter yang mengerjakan perawatan pasien tersebut.

Sementara ELIZA mampu terlibat dalam wacana, ia tidak dapat berkomunikasi dengan pemahaman yang benar. Namun, banyak pengguna awal yakin akan kecerdasan dan pemahaman ELIZA, meskipun Weizenbaum bersikeras sebaliknya. Kode sumber ELIZA asli telah hilang sejak tahun 1960-an karena tidak umum untuk menerbitkan artikel yang menyertakan kode sumber saat ini. Namun, baru-baru ini kode sumber MAD-SLIP kini telah ditemukan di arsip MIT dan diterbitkan di berbagai platform, seperti archive.org.Kode sumber memiliki kepentingan historis yang tinggi karena tidak hanya menunjukkan kekhususan bahasa dan teknik pemrograman pada waktu itu, tetapi juga awal dari pelapisan perangkat lunak dan abstraksi sebagai sarana untuk mencapai pemrograman perangkat lunak yang canggih.

ELIZA

ELIZA karya Joseph Weizenbaum, menjalankan naskah DOCTOR, diciptakan untuk memberikan parodi "tanggapan psikoterapis non-directional dalam wawancara psikiatri awal" dan untuk "menunjukkan bahwa komunikasi antara manusia dan mesin adalah dangkal". Sementara ELIZA terkenal karena bertindak dengan cara psikoterapis, pola bicara disebabkan oleh data dan instruksi yang disediakan oleh naskah DOKTER. ELIZA sendiri memeriksa teks untuk kata kunci, menerapkan nilai pada kata kunci tersebut, dan mengubah input menjadi output; skrip yang dijalankan ELIZA menentukan kata kunci, menetapkan nilai kata kunci, dan menetapkan aturan transformasi untuk output.

Weizenbaum memilih untuk membuat naskah DOCTOR dalam konteks psikoterapi untuk "menghindari masalah pemberian program basis data pengetahuan dunia nyata", karena dalam situasi terapi Rogerian, program hanya harus mencerminkan kembali pernyataan pasien. Algoritma DOCTOR memungkinkan respons cerdas yang menipu, yang menipu banyak individu saat pertama kali menggunakan program ini.

Weizenbaum menamai programnya ELIZA setelah Eliza Doolittle, karakter kelas pekerja dalam Pygmalion karya George Bernard Shaw. Menurut Weizenbaum, kemampuan Eliza untuk "ditingkatkan secara bertahap" oleh berbagai pengguna membuatnya mirip dengan Eliza Doolittle, karena Eliza Doolittle diajarkan untuk berbicara dengan aksen kelas atas dalam permainan Shaw. Namun, tidak seperti dalam drama Shaw, ELIZA tidak mampu mempelajari pola bicara baru atau kata-kata baru melalui interaksi saja. Pengeditan harus dilakukan langsung ke skrip aktif Eliza untuk mengubah cara program beroperasi.

Weizenbaum pertama kali menerapkan ELIZA dalam bahasa pemrosesan daftar SLIP-nya sendiri, di mana, tergantung pada entri awal oleh pengguna, ilusi kecerdasan manusia dapat muncul, atau dihilangkan melalui beberapa persimpangan. Beberapa tanggapan Eliza begitu meyakinkan sehingga Weizenbaum dan beberapa lainnya memiliki anekdot tentang pengguna yang menjadi terikat secara emosional dengan program tersebut, kadang-kadang lupa bahwa mereka sedang berbicara dengan komputer. Sekretaris Weizenbaum sendiri dilaporkan meminta Weizenbaum untuk meninggalkan ruangan sehingga dia dan ELIZA dapat melakukan percakapan nyata. Weizenbaum terkejut dengan ini, kemudian menulis: "Saya tidak menyadari ... Eksposur yang sangat singkat ke program komputer yang relatif sederhana dapat menyebabkan pemikiran delusi yang kuat pada orang yang cukup normal. ".

Pada tahun 1966, komputasi interaktif (melalui teletype) adalah baru. Itu 15 tahun sebelum komputer pribadi menjadi akrab bagi masyarakat umum, dan tiga dekade sebelum kebanyakan orang mengalami upaya pemrosesan bahasa alami dalam layanan Internet seperti Ask.com atau sistem bantuan PC seperti Microsoft Office Clippit.  Meskipun program-program tersebut mencakup penelitian dan kerja bertahun-tahun, ELIZA tetap menjadi tonggak sejarah hanya karena ini adalah pertama kalinya seorang programmer mencoba interaksi manusia-mesin dengan tujuan menciptakan ilusi (betapapun singkatnya) interaksi manusia-manusia.

Pada ICCC 1972 ELIZA dibawa bersama-sama dengan program kecerdasan buatan awal lain bernama PARRY untuk percakapan komputer saja. Sementara ELIZA dibangun untuk berbicara sebagai dokter, PARRY dimaksudkan untuk mensimulasikan pasien dengan skizofrenia.

Desain ELIZA

Weizenbaum awalnya menulis ELIZA di MAD-SLIP untuk CTSS pada IBM 7094, sebagai program untuk memungkinkan percakapan bahasa alami dengan komputer. Untuk mencapai hal ini, Weizenbaum mengidentifikasi lima "masalah teknis mendasar" untuk diatasi ELIZA: identifikasi kata-kata kritis, penemuan konteks minimal, pilihan transformasi yang tepat, generasi tanggapan yang sesuai dengan transformasi atau tanpa adanya kata-kata kritis dan penyediaan kapasitas akhir untuk eliza skrip. Weizenbaum memecahkan masalah ini dan membuat ELIZA sedemikian rupa sehingga tidak memiliki kerangka kontekstual atau alam semesta wacana bawaan. Namun, ini mengharuskan ELIZA untuk memiliki skrip instruksi tentang cara menanggapi input dari pengguna. 

ELIZA memulai prosesnya menanggapi input oleh pengguna dengan terlebih dahulu memeriksa input teks untuk "kata kunci". ELIZA memulai prosesnya menanggapi input oleh pengguna dengan terlebih dahulu memeriksa input teks untuk "kata kunci". Jika kata-kata seperti itu ditemukan, mereka dimasukkan ke dalam "keystack", dengan kata kunci RANK tertinggi di bagian atas. Kalimat input kemudian dimanipulasi dan diubah sebagai aturan yang terkait dengan kata kunci dari RANK tertinggi mengarahkan. Misalnya, ketika skrip DOCTOR menemukan kata-kata seperti "sama" atau "sama", itu akan menghasilkan pesan yang berkaitan dengan kesamaan, dalam hal ini "Dengan cara apa?" karena kata-kata ini memiliki nomor prioritas tinggi. Ini juga menunjukkan bagaimana kata-kata tertentu, seperti yang ditentukan oleh skrip, dapat dimanipulasi terlepas dari pertimbangan kontekstual, seperti mengganti kata ganti orang pertama dan kata ganti orang kedua dan sebaliknya, karena ini juga memiliki angka prioritas tinggi. Kata-kata seperti itu dengan angka prioritas tinggi dianggap lebih unggul daripada pola percakapan dan diperlakukan secara independen dari pola kontekstual.

Setelah pemeriksaan pertama, langkah selanjutnya dari proses ini adalah menerapkan aturan transformasi yang sesuai, yang mencakup dua bagian: "aturan dekomposisi" dan "aturan reassembly". Pertama, masukan ditinjau untuk pola sintaksis untuk menetapkan konteks minimal yang diperlukan untuk merespons. Dengan menggunakan kata kunci dan kata-kata terdekat lainnya dari input, aturan pembongkaran yang berbeda diuji sampai pola yang sesuai ditemukan. Dengan menggunakan aturan skrip, kalimat tersebut kemudian "dibongkar" dan disusun menjadi beberapa bagian dari bagian-bagian komponen seperti yang ditentukan oleh "aturan dekomposisi untuk kata kunci peringkat tertinggi". Contoh yang diberikan Weizenbaum adalah masukan "Anda sangat membantu", yang diubah menjadi "Saya sangat membantu". Ini kemudian dipecah menjadi (1) kosong (2) "Saya" (3) "adalah" (4) "sangat membantu". Aturan dekomposisi telah memecah frasa menjadi empat segmen kecil yang berisi kata kunci dan informasi dalam kalimat.

Aturan dekomposisi kemudian menunjuk aturan reassembly tertentu, atau seperangkat aturan reassembly, untuk diikuti ketika merekonstruksi kalimat. Aturan reassembly mengambil fragmen input yang telah dibuat oleh aturan dekomposisi, mengaturnya kembali, dan menambahkan kata-kata yang diprogram untuk membuat respons. Menggunakan contoh Weizenbaum yang dinyatakan sebelumnya, aturan perakitan ulang seperti itu akan mengambil fragmen dan menerapkannya pada frasa "Apa yang membuat Anda berpikir saya (4)", yang akan menghasilkan "Apa yang membuat Anda berpikir saya sangat membantu?". Contoh ini agak sederhana, karena tergantung pada aturan pembongkaran, output bisa jauh lebih kompleks dan menggunakan lebih banyak input dari pengguna. Namun, dari reassembly ini, ELIZA kemudian mengirimkan kalimat yang dibangun kepada pengguna dalam bentuk teks di layar.

Langkah-langkah ini mewakili sebagian besar prosedur yang diikuti ELIZA untuk membuat respons dari input tipikal, meskipun ada beberapa situasi khusus yang dapat ditanggapi oleh ELIZA / DOCTOR. Salah satu yang secara khusus ditulis Weizenbaum adalah ketika tidak ada kata kunci. Salah satu solusinya adalah meminta ELIZA menanggapi dengan komentar yang tidak memiliki konten, seperti "Saya mengerti" atau "Silakan lanjutkan". Metode kedua adalah menggunakan struktur "MEMORY", yang mencatat input terbaru sebelumnya, dan akan menggunakan input ini untuk membuat respons yang merujuk bagian dari percakapan sebelumnya ketika ditemui tanpa kata kunci. Ini dimungkinkan karena kemampuan Slip untuk menandai kata-kata untuk penggunaan lain, yang secara bersamaan memungkinkan ELIZA untuk memeriksa, menyimpan, dan menggunakan kembali kata-kata untuk digunakan dalam output.

Sementara fungsi-fungsi ini semua dibingkai dalam pemrograman ELIZA, cara yang tepat dimana program membongkar, memeriksa, dan memasang kembali input ditentukan oleh skrip operasi. Skrip tidak statis dan dapat diedit, atau yang baru dibuat, seperti yang diperlukan untuk operasi dalam konteks yang diperlukan. Ini akan memungkinkan program untuk diterapkan dalam berbagai situasi, termasuk skrip DOCTOR yang terkenal, yang mensimulasikan psikoterapis Rogerian.

Versi Lisp dari ELIZA, berdasarkan makalah CACM Weizenbaum, ditulis tak lama setelah publikasi makalah itu, oleh Bernie Cosell. Versi BASIC muncul di Creative Computing pada tahun 1977 (meskipun ditulis pada tahun 1973 oleh Jeff Shrager). Versi ini, yang porting ke banyak komputer pribadi paling awal, tampaknya telah kemudian diterjemahkan ke dalam banyak versi lain dalam banyak bahasa lain. Shrager mengklaim tidak pernah melihat versi Weizenbaum atau Cosell.

n 2021 Jeff Shrager mencari arsip Weizenbaum MIT, bersama dengan arsiparis MIT Myles Crowley, dan menemukan file berlabel Computer Conversations. Ini termasuk daftar kode sumber lengkap ELIZA di MAD-SLIP, dengan skrip DOCTOR terlampir. Perkebunan Weizenbaum telah memberikan izin untuk membuka sumber kode ini di bawah lisensi domain publik Creative Commons CC0. Kode dan informasi lainnya dapat ditemukan di situs ELIZAGEN.

Versi lain dari Eliza populer di kalangan insinyur perangkat lunak adalah versi yang datang dengan rilis default GNU Emacs, dan yang dapat diakses dengan mengetik M-x doctor dari sebagian besar implementasi Emacs modern.

Pseudocode ELIZA

function ELIZA GENERATOR(user sentence) returns response
   Let w be the word in sentence that has the highest keyword rank
   if w exists
       Let r be the highest ranked rule for w that matches sentence
       response ← Apply the transform in r to sentence
       if w = 'my'
           future ← Apply a transformation from the ‘memory’ rule list to sentence
           Push future onto the memory queue
       else (no keyword applies)
           Either
               response ← Apply the transform for the NONE keyword to sentence
           Or
               response ← Pop the oldest response from the memory queue
   Return response


Post a Comment

0 Comments