Transformer telah menjadi pilihan popular untuk pelbagai tugas pembelajaran mesin dan telah mencapai hasil yang hebat, jadi bagaimana lagi ia boleh digunakan? Penyelidik yang mempunyai imaginasi yang hebat sebenarnya mahu menggunakannya untuk mereka bentuk komputer boleh atur cara!
Pengarang kertas kerja ini adalah dari Princeton University dan University of Wisconsin, dan bertajuk "Looped Transformers as Programmable Komputer". Saya sedang meneroka cara menggunakan Transformer untuk melaksanakan komputer tujuan umum.
Secara khusus, penulis mencadangkan rangka kerja untuk menggunakan rangkaian pengubah sebagai komputer tujuan umum dengan memprogramkannya dengan pemberat tertentu dan meletakkannya dalam gelung. Dalam rangka kerja ini, urutan input bertindak sebagai kad tebuk, yang terdiri daripada arahan dan memori untuk membaca/menulis data.
Pengarang menunjukkan bahawa bilangan lapisan pengekod yang tetap boleh mensimulasikan blok pengiraan asas. Menggunakan blok binaan ini, mereka mensimulasikan komputer set arahan kecil. Ini membolehkan mereka memetakan algoritma lelaran kepada program yang boleh dilaksanakan oleh pengubah 13 lapisan bergelung. Mereka menunjukkan cara pengubah ini boleh meniru kalkulator asas, perpustakaan algebra linear asas dan algoritma pembelajaran dalam konteks menggunakan perambatan belakang, berpandukan inputnya. Kerja ini menyerlahkan kepelbagaian mekanisme perhatian dan menunjukkan bahawa walaupun transformer cetek boleh melaksanakan program tujuan am sepenuhnya.
Transformer (TF) telah menjadi pilihan popular untuk pelbagai tugasan pembelajaran mesin Ia telah mencapai keputusan dalam banyak masalah dalam bidang seperti pemprosesan bahasa semula jadi dan penglihatan komputer. Sebab utama kejayaan Transformer ialah keupayaannya untuk menangkap perhubungan peringkat lebih tinggi dan kebergantungan jarak jauh melalui mekanisme perhatian. Ini membolehkan TF memodelkan maklumat kontekstual dan menjadikannya lebih berkesan dalam tugas seperti terjemahan mesin dan pemodelan bahasa, di mana Transformer secara konsisten mengatasi kaedah lain.
Model bahasa dengan ratusan bilion parameter, seperti GPT-3 (parameter 175B) dan PaLM (parameter 540B), telah mencapai prestasi terkini pada banyak jenis semula jadi. tugas pemprosesan bahasa. Menariknya, beberapa model bahasa besar (LLM) ini juga boleh melaksanakan pembelajaran dalam konteks (ICL), menyesuaikan dan melaksanakan tugas tertentu dengan pantas berdasarkan gesaan ringkas dan beberapa contoh. Keupayaan ICL LLM tersedia tanpa perlu melatihnya dan membenarkan model besar ini melaksanakan tugas baharu dengan cekap tanpa mengemas kini pemberat.
Anehnya, melalui ICL, LLM boleh melaksanakan tugasan algoritma dan inferens, dan [Nye et al [2021], Wei et al [2022c], Lewkowycz et al [2022], Wei et al [2022b], Zhou et al [2022]] dan lain-lain telah membuktikan kebolehlaksanaannya. Kerja oleh [Zhou et al. [2022] ] dan lain-lain menunjukkan bahawa LLM boleh berjaya melaksanakan operasi penambahan pada kes penggunaan yang tidak diketahui apabila diberi gesaan dengan algoritma penambahan berbilang bit dan beberapa contoh penambahan. Keputusan ini menunjukkan bahawa LLM boleh melaksanakan arahan pra-arahan pada input yang diberikan pada masa inferens, berdasarkan prinsip algoritma, seolah-olah mentafsir bahasa semula jadi sebagai kod.
Terdapat bukti bahawa Transformer boleh mensimulasikan mesin Turing dengan kedalaman yang mencukupi atau pautan rekursif antara lapisan Perhatian [Pérez et al [2021], Pérez et al . [2022a]]. Ini menunjukkan potensi rangkaian Transformer untuk mengikut tepat arahan algoritma yang ditentukan oleh input. Walau bagaimanapun, binaan ini agak umum dan tidak memberikan pemahaman yang mendalam tentang cara mencipta Transformer yang mampu melaksanakan tugas algoritma tertentu.
Walau bagaimanapun, reka bentuk yang lebih profesional membolehkan TF melaksanakan program yang lebih maju. Sebagai contoh, [Weiss et al. [2021]] mereka bentuk model pengiraan dan bahasa pengaturcaraan yang memetakan arahan pemilihan dan pengagregatan mudah untuk mengindeks token input. Bahasa ini boleh digunakan untuk mencipta pelbagai algoritma yang menarik, seperti mengira token, menyusun, mencipta histogram dan mengenal pasti bahasa Dyck-k. Program yang ditulis dalam Bahasa Pemprosesan Urutan Akses Terhad (RASP) kemudiannya boleh dipetakan ke dalam rangkaian Transformer, yang saiznya biasanya berskala dengan saiz program.
Satu lagi kajian menunjukkan kaedah untuk memilih pemberat model Transformer untuk digunakan sebagai algoritma pengoptimuman untuk mempelajari model regresi linear secara dinamik, melaksanakan operasi tersirat pada masa inferens yang diberikan data latihan sebagai latihan gaya . Kaedah ini biasanya memerlukan beberapa lapisan yang berkadar dengan bilangan lelaran algoritma pembelajaran dan terhad kepada satu fungsi kehilangan dan ensemble model.
Keupayaan untuk memprogram model Transformer untuk meniru pengiraan abstrak mesin Turing, arahan khusus untuk bahasa seperti RASP, dan algoritma khusus untuk ICL, menyerlahkan potensi rangkaian Transformer sebagai komputer boleh atur cara yang serba boleh.
Penyelidikan penulis bertujuan untuk meneroka prospek yang menjanjikan ini dan mendedahkan bagaimana mekanisme Perhatian boleh mensimulasikan komputer tujuan umum yang diilhamkan oleh seni bina set arahan.
Dalam artikel ini, penulis menunjukkan bahawa rangkaian Transformer boleh dibuat dengan pengekodan keras mereka dengan pemberat tertentu dan meletakkannya dalam gelung untuk mensimulasikan algoritma dan program yang kompleks. Penulis melakukan ini dengan Perhatian kejuruteraan terbalik untuk mensimulasikan blok pengiraan asas, seperti operasi penyuntingan pada jujukan input, fungsi tak linear, panggilan fungsi, pembilang program dan cawangan bersyarat. Makalah pengarang menunjukkan kepentingan menggunakan gelung tunggal atau rekursi untuk menggabungkan jujukan output Transformer kembali kepada inputnya, dengan itu mengelakkan keperluan untuk model yang mendalam.
Alamat kertas: https://arxiv.org/pdf/2301.13196.pdf
Pengarang mencapai ini dengan mereka bentuk Transformer yang boleh melaksanakan program yang ditulis dalam versi umum arahan tunggal, dipanggil SUBLEQ (A,B,C), iaitu jika kurang daripada atau sama dengan sifar, tolak dan gabungkan cawangan. SUBLEQ ialah bahasa satu arahan yang mentakrifkan komputer set satu arahan (OISC). SUBLEQ terdiri daripada tiga operan alamat memori Semasa pelaksanaan, nilai alamat memori B ditolak daripada nilai alamat memori A, dan hasilnya disimpan dalam B. Jika keputusan B kurang daripada atau sama dengan 0, lompat ke alamat C, jika tidak, teruskan dengan arahan seterusnya. Tetapi arahan ini mentakrifkan komputer tujuan umum.
Pengarang membina Transformer eksplisit yang melaksanakan program seperti SUBLEQ Pengarang memanggilnya FLEQ, arahan tunggal yang lebih fleksibel dalam bentuk
.
di mana f_m boleh dipilih daripada set fungsi (pendaraban matriks/fungsi bukan linear/polinomial, dsb.), yang boleh dikodkan keras ke dalam rangkaian. Kedalaman Transformer bergelung yang boleh melaksanakan program FLEQ tidak bergantung pada kedalaman program atau bilangan baris kod, sebaliknya pada kedalaman yang diperlukan untuk melaksanakan satu arahan FLEQ, yang malar. Ini dicapai dengan menjalankan Transformer dalam gelung ke atas jujukan input, sama seperti cara CPU beroperasi.
Pengarang menggunakan rangka kerja ini untuk menunjukkan keupayaan untuk mensimulasikan pelbagai fungsi semasa penaakulan, termasuk kalkulator asas, perpustakaan algebra linear asas (transpose matriks, pendaraban, songsang penyelesaian, lelaran kuasa) dan ICL melaksanakan penyebaran balik pada rangkaian tersambung sepenuhnya secara tersirat. Urutan input atau gesaan bertindak seperti kad tebuk, mengandungi arahan yang Transformer perlu laksanakan, sambil menyediakan ruang untuk menyimpan dan mengendalikan pembolehubah yang digunakan dalam program. Rangkaian Transformer yang digunakan untuk melaksanakan prosedur ini semuanya mempunyai kedalaman kurang daripada atau sama dengan 13, dan matriks berat untuk semua model ini disediakan. Teorem berikut meringkaskan penemuan utama pengarang:
Teorem 1: Terdapat Transformer kitaran dengan kurang daripada 13 lapisan, yang boleh mensimulasikan komputer tujuan umum (bahagian 5 artikel) , kalkulator asas (Bahagian 7 artikel), kaedah algebra linear berangka seperti penyongsangan matriks anggaran dan lelaran kuasa (Bahagian 8 artikel), dan algoritma ICL berdasarkan rangkaian saraf (seperti SGD) (Bahagian 9 artikel ).
Rajah 1: Gambar rajah skematik seni bina Transformer gelung, di mana arahan storan jujukan adalah input dan baca daripada / Memori untuk menulis data dan pad calar untuk menyimpan hasil perantaraan. Input diproses oleh rangkaian dan output digunakan sebagai input baharu, membolehkan rangkaian mengemas kini keadaan tersirat secara berulang dan melakukan pengiraan yang kompleks.
Penyelidikan penulis menyerlahkan fleksibiliti mekanisme Perhatian dan kepentingan gelung tunggal, yang memungkinkan untuk mereka bentuk model yang boleh mensimulasikan algoritma berulang yang kompleks dan melaksanakan program tujuan umum. dan seterusnya menunjukkan keupayaan model Transformer untuk melaksanakan tugasan matematik dan algoritma yang kompleks dengan cekap. Boleh dibayangkan bahawa Transformer moden, seperti GPT-3, menggunakan subrutin dalaman yang serupa apabila melakukan pelbagai tugas. Pada tahap tertentu, keupayaan teknik atau algoritma khusus model ini boleh dicerahkan apabila diberikan contoh dan penjelasan kontekstual, serupa dengan panggilan fungsi. Walau bagaimanapun, andaian ini harus dilayan dengan berhati-hati, kerana cara pengarang mereka bentuk struktur itu tidak mempunyai persamaan dengan cara model bahasa dunia sebenar dilatih.
Pengarang berharap kajian mereka akan menggalakkan penyelidikan lanjut tentang potensi mekanisme perhatian dan keupayaan model bahasa untuk melaksanakan arahan algoritma. Reka bentuk yang dicadangkan oleh pengarang boleh membantu menentukan saiz rangkaian Transformer minimum yang diperlukan untuk melaksanakan tugas algoritma tertentu. Di samping itu, penulis berharap penemuan mereka akan membantu memberi inspirasi kepada pembangunan kaedah untuk meningkatkan keupayaan untuk melatih model bahasa dengan memanfaatkan rangkaian Transformer kejuruteraan terbalik yang lebih kecil untuk mencapai tugas algoritma tertentu.
Untuk menggunakan rangkaian Transformer untuk membina rangka kerja pengkomputeran umum, blok pengkomputeran khusus diperlukan. Pasang blok ini untuk mencipta fungsi akhir yang diingini. Berikut memberi tumpuan kepada pelbagai operasi yang boleh dilakukan oleh lapisan Transformer. Operasi ini akan menyediakan asas untuk mencipta rutin dan algoritma yang lebih kompleks. Operasi ini bertujuan untuk saling beroperasi antara satu sama lain, memanfaatkan keupayaan Perhatian untuk melaksanakan pelbagai tugas, seperti menjana anggaran matriks pilih atur dan menghampiri fungsi umum melalui fungsi sigmoid.
Rajah 2: Tiga blok Transformer digunakan sebagai blok binaan untuk melaksanakan komputer set arahan kecil gambarajah skematik. Blok ini mengendalikan operasi penyuntingan dalam urutan input (seperti mengalihkan atau menyalin dari satu blok ke blok lain), menjejak pembilang program dan melakukan lompatan pembilang program apabila syarat yang ditetapkan dipenuhi.
Pengekodan kedudukan, pembilang program dan penuding data
Pengubah biasanya perlu melakukan lelaran algoritma Atau laksanakan satu siri arahan. Untuk mencapai matlamat ini, penulis menggunakan pembilang program yang menggelung melalui arahan. Kaunter mengandungi kod untuk lokasi di mana arahan seterusnya disimpan. Selain itu, arahan mungkin mempunyai penunjuk data yang menunjuk ke lokasi data yang perlu dibaca dan ditulis oleh arahan. Kedua-dua pembilang program dan penuding data menggunakan pengekodan kedudukan yang sama yang dibincangkan dalam perenggan sebelumnya.
Skim pengekodan kedudukan pengarang juga boleh digunakan untuk menunjuk ke lokasi data tertentu untuk membaca atau menulis, yang akan dibincangkan di bawah Satu bahagian membincangkan. Ini dicapai dengan menggunakan vektor binari yang sama seperti pengekodan kedudukan untuk pembilang program dan penuding data. Selain itu, teknik menunjuk ke lokasi data tertentu ini membolehkan Transformers membaca/menulis data dengan cekap semasa melaksanakan algoritma atau urutan perintah yang dibina untuk dilaksanakan.
Baca/tulis: salin data dan arahan ke atau dari daftar sementara
Rajah 3: Gambarajah skematik operasi baca. Anak panah menunjukkan blok arahan yang disalin daripada bahagian input yang diberikan kepada arahan pad gores. Arahan ialah satu set petunjuk. Kod kedudukan dan kaunter digunakan untuk menjejak kandungan yang disalin di mana.
Lema berikut menyatakan bahawa arahan yang ditunjuk oleh pembilang program atau data di lokasi yang dinyatakan dalam arahan semasa boleh disalin ke pad gores untuk selanjutnya pengiraan. Lokasi kaunter program biasanya betul-betul di bawah kandungan pad conteng, tetapi boleh diubah sewenang-wenangnya. Mengekalkannya dalam kedudukan tertentu sepanjang pengiraan membantu memastikan struktur teratur.
Lemma seterusnya menerangkan bahawa vektor v yang disimpan dalam pad calar boleh disalin ke lokasi tertentu dalam ingatan, seperti yang ditentukan oleh pad calar itu sendiri. Ini membolehkan data dipindahkan dari pad calar ke lokasi tertentu dalam ingatan untuk kegunaan atau penyimpanan selanjutnya.
Rajah 4: Gambarajah skematik operasi tulis. Anak panah menunjukkan bahawa blok data sedang disalin dari pad calar ke lokasi yang ditentukan dalam bahagian input yang diperuntukkan kepada memori. Pengekodan kedudukan digunakan untuk menjejak lokasi sasaran dan memastikan data ditulis ke lokasi memori yang betul.
Cawangan bersyarat
Dalam bahagian ini, pengarang melaksanakan arahan cawangan bersyarat yang menilai keadaan dan menetapkan pembilang atur cara ke lokasi yang ditentukan apabila keadaan itu benar, atau menambah pembilang program sebanyak 1 apabila syarat itu palsu. Perintah
mempunyai bentuk: jika mem[a]≤0, kemudian pergi ke i, di mana mem[a] ialah nilai pada kedudukan dalam bahagian ingatan bagi jujukan input . Perintah ini mempunyai dua bahagian: menilai ketidaksamaan dan mengubah suai pembilang program.
SUBLEQ Transformer
Mavaddat dan Parhami seawal 1988 Telah ditunjukkan pada tahun 2001 bahawa terdapat arahan dan mana-mana atur cara komputer boleh ditukar menjadi program yang terdiri daripada instantiasi arahan ini. Variasi arahan ini ialah SUBLEQ, yang boleh mengakses daftar atau lokasi memori yang berbeza.
Cara SUBLEQ berfungsi adalah mudah. Ia mengakses dua daftar dalam ingatan, mendapatkan perbezaan kandungannya dan menyimpannya kembali ke salah satu daftar, kemudian jika hasilnya negatif, ia melompat ke baris kod pratakrif yang berbeza atau meneruskan dengan arahan seterusnya bagi baris semasa . Komputer yang dibina untuk melaksanakan program SUBLEQ dipanggil komputer set arahan tunggal dan merupakan komputer tujuan umum, iaitu Turing lengkap jika ia mempunyai akses kepada memori tak terhingga.
Berikut menerangkan pembinaan Transformer gelung yang boleh melaksanakan atur cara yang ditulis dengan set arahan tertentu. Transformer menjejaki baris kod, lokasi memori, dan pembilang program, menggunakan bahagian memori input sebagai daftar memori dan bahagian arahan sebagai baris kod/arahan. Daftar sementara digunakan untuk merekod penambahan dan petunjuk yang terlibat dalam setiap arahan, bacaan, penulisan, operasi cawangan bersyarat, dsb.
Rajah 5: Perwakilan grafik bagi melaksanakan blok arahan OISC. Dua blok pertama memindahkan data/arahan ke pad awal, yang kedua dan ketiga melakukan penolakan dan menyimpan hasilnya, dan yang terakhir melakukan perintah if goto yang melengkapkan arahan.
FLEQ: Komputer berasaskan Perhatian yang lebih fleksibel
Dalam bahagian ini, penulis memperkenalkan FLEQ Untuk memperkenalkan, ia adalah generalisasi SUBLEQ, yang mentakrifkan komputer set arahan berkurangan yang lebih fleksibel. Set arahan tambahan tersirat ini adalah berdasarkan versi SUBLEQ yang lebih maju dan membolehkan berbilang fungsi dilaksanakan dalam rangkaian Transformer yang sama. Pengarang menggunakan istilah FLEQ untuk merujuk kepada arahan, bahasa, dan komputer berasaskan perhatian yang ditakrifkannya.
FLEQ direka bentuk untuk membenarkan pelaksanaan algoritma kompleks seperti pendaraban matriks, pengiraan punca kuasa dua, fungsi pengaktifan, dsb. dengan menjana fungsi yang lebih umum daripada penolakan mudah.
Kitaran pelaksanaan komputer berasaskan perhatian. Pada setiap lelaran Transformer gelung, arahan diambil daripada set arahan dalam input berdasarkan pembilang program. Arahan itu kemudiannya disalin ke pad conteng. Bergantung pada fungsi yang akan dilaksanakan, lokasi blok fungsi yang berbeza digunakan untuk merekodkan hasil fungsi secara setempat. Setelah keputusan dikira, ia disalin semula ke lokasi memori yang ditentukan yang disediakan oleh arahan.
Kitaran pelaksanaan adalah serupa dengan komputer set arahan tunggal (OISC) dalam bahagian sebelumnya, perbezaan utama ialah untuk setiap arahan, anda boleh memilih daripada senarai pra-pilihan fungsi. Fungsi mengambil input sebagai tatasusunan arbitrari, seperti matriks, vektor dan skalar.
Masukkan format jujukan. Seperti yang ditunjukkan dalam Rajah 6, input X pengubah gelung boleh melaksanakan program yang terdiri daripada satu siri arahan FLEQ (X terdiri daripada tiga bahagian: daftar sementara, ingatan dan arahan).
Format blok fungsi berasaskan Transformer. Setiap blok fungsi terletak di bahagian kiri bawah input X, seperti yang ditunjukkan dalam Rajah 6.
Rajah 6: Struktur input X untuk melaksanakan arahan FLEQ
Sila rujuk kertas asal untuk butiran lanjut teknikal dan contoh.
Atas ialah kandungan terperinci Menggunakan Transformer sebagai komputer tujuan umum, ia juga boleh melaksanakan algoritma pembelajaran dalam konteks Penyelidikan ini sangat imaginatif.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!