Kata-kata yang kita gunakan dalam memberikan arahan dipanggil token. Setiap token mempunyai kuasa tersendiri, yang bergantung kepada kekerapan kemunculannya dalam dataset yang digunakan untuk melatih AI. Kita akan membincangkan butiran teknikal sedikit masa lagi, tetapi pertama kita akan fokus kepada cara untuk memikirkan tentang token secara praktikal.
Mari kita lihat contoh: Saya memberikan arahan “1girl wearing white oversized coat with >< and outstretched arms”. Jika setiap perkataan adalah token, kita mempunyai 11 token.
(Apabila menaip arahan ini ke dalam BetterWaifu, anda akan perasan bahawa pengira token menunjukkan 13. Ini kerana token <start> dan <end> ditambah oleh AI secara tidak langsung. Lebih lanjut tentang ini dalam bahagian seterusnya.)
Preposisi seperti “with”, “for”, “at”, “in” dan partikel seperti “and”, “a”, “to” juga dikira sebagai token. Oleh itu, mereka juga mempunyai kuasa dan mempengaruhi imej.
Mari kita cuba arahan yang sama tanpa sebarang partikel atau preposisi: “1girl, white oversized coat, ><, outstretched arms”. Koma dikira sebagai token, jadi kita masih mempunyai 11 token, 13 dengan token permulaan dan penamat. Hasilnya agak berbeza:
Saya lebih suka hasil ini kerana ia kelihatan seperti lebih perhatian diberikan kepada kot. Token koma digunakan untuk memisahkan antara konsep yang berbeza.
Sekarang, walaupun menggunakan tag yang dipisahkan dengan koma adalah pendekatan yang saya sarankan untuk memberikan arahan di BetterWaifu, itu tidak bermakna mengeluarkan semua preposisi dan partikel sentiasa menjadikan hasil lebih baik. Kadang-kadang, adalah penting untuk menggunakan preposisi untuk menunjukkan kedudukan relatif.
Berikut adalah contoh mudah di mana preposisi membuat semua perbezaan:
1girl, airplane, white oversized coat, ><, outstretched arms1girl inside airplane, white oversized coat, ><, outstretched arms
Selain daripada kekuatan semula jadi token, posisinya dalam arahan juga mempunyai berat. Token di awal mempunyai berat yang lebih besar berbanding token di akhir. Adalah penting untuk memahami ini, kerana token yang lemah di akhir arahan mungkin tidak memberi impak pada imej. Sebaliknya, token yang kuat di awal boleh menentukan hasil sepenuhnya.
Untuk mengawal kekuatan token, anda boleh menggunakan pembinaan (token:1.0), di mana nombor tersebut mewakili kekuatan token. 0 – tiada pengaruh, 1 – berat normal. Saya biasanya tidak melebihi 1.5. Mencuba nilai kekuatan yang berbeza boleh membantu anda menyesuaikan tahap kawalan yang diingini ke atas token dalam arahan anda.
Penerangan Teknikal
Tokenisasi adalah cara biasa untuk mengendalikan data teks dalam penghasilan AI. Kami menggunakannya untuk menukar teks kepada nombor dan memprosesnya dengan rangkaian neural.
Stable Diffusion men-tokenisasi arahan teks kepada satu urutan token. Sebagai contoh, ia memecahkan arahan teks “a cute and adorable bunny” kepada token a, cute, and, adorable, dan bunny. Kemudian Stable Diffusion menambah token <start> dan <end> di awal dan akhir token.
Urutan token yang dihasilkan untuk contoh di atas adalah <start>, a, cute, and, adorable, bunny, dan <end> (7 token).
Untuk pengiraan yang lebih mudah, Stable Diffusion mengekalkan urutan token bagi sebarang arahan teks untuk mempunyai panjang yang sama iaitu 77 dengan menambah atau memendekkan. Jika arahan input mempunyai kurang daripada 77 token, token <end> ditambah di akhir urutan sehingga mencapai 77 token.
Panjang 77 ditetapkan untuk menyeimbangkan prestasi dan kecekapan pengiraan. Perisian yang berbeza akan mempunyai tingkah laku yang berbeza jika lebih daripada 77 token digunakan:
77 token pertama akan dikekalkan dan yang selebihnya akan dipotong.
Seluruh arahan akan dipecahkan kepada kepingan 75, token permulaan dan penamat akan ditambah, dan setiap kepingan akan diproses secara berurutan. Ini adalah kaedah yang digunakan oleh BetterWaifu.