BlazingText algoritma - Amazon SageMaker

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

BlazingText algoritma

SageMaker BlazingText Algoritma Amazon menyediakan implementasi yang sangat dioptimalkan dari Word2vec dan algoritma klasifikasi teks. Algoritma Word2vec berguna untuk banyak tugas pemrosesan bahasa alami hilir (NLP), seperti analisis sentimen, pengenalan entitas bernama, terjemahan mesin, dll. Klasifikasi teks adalah tugas penting untuk aplikasi yang melakukan pencarian web, pengambilan informasi, peringkat, dan klasifikasi dokumen.

Algoritma Word2vec memetakan kata-kata ke vektor terdistribusi berkualitas tinggi. Representasi vektor yang dihasilkan dari sebuah kata disebut penyematan kata. Kata-kata yang secara semantik mirip sesuai dengan vektor yang berdekatan. Dengan begitu, penyematan kata menangkap hubungan semantik antar kata.

Banyak aplikasi natural language processing (NLP) mempelajari penyematan kata dengan melatih koleksi dokumen yang besar. Representasi vektor yang telah dilatih sebelumnya ini memberikan informasi tentang semantik dan distribusi kata yang biasanya meningkatkan generalisasi model lain yang kemudian dilatih pada jumlah data yang lebih terbatas. Sebagian besar implementasi algoritma Word2vec tidak dioptimalkan untuk arsitektur CPU multi-core. Ini membuatnya sulit untuk menskalakan ke kumpulan data besar.

Dengan BlazingText algoritme, Anda dapat menskalakan ke kumpulan data besar dengan mudah. Mirip dengan Word2VEC, ia menyediakan arsitektur pelatihan Skip-gram dan berkelanjutan bag-of-words (CBOW). BlazingTextimplementasi algoritma klasifikasi teks multi-kelas dan multi-label yang diawasi memperluas pengklasifikasi teks FastText untuk menggunakan akselerasi GPU dengan kernel CUDA khusus. Anda dapat melatih model pada lebih dari satu miliar kata dalam beberapa menit menggunakan CPU multi-core atau GPU. Dan, Anda mencapai kinerja yang setara dengan algoritma klasifikasi teks pembelajaran state-of-the-art mendalam.

BlazingText Algoritma tidak dapat diparalelkan. Untuk informasi selengkapnya tentang parameter yang terkait dengan pelatihan, lihat Docker Registry Paths for SageMaker Built-in Algorithms.

SageMaker BlazingText Algoritma menyediakan fitur-fitur berikut:

  • Pelatihan yang dipercepat dari pengklasifikasi teks FastText pada CPU multi-core atau GPU dan Word2Vec pada GPU menggunakan kernel CUDA yang sangat dioptimalkan. Untuk informasi selengkapnya, lihat BlazingText: Menskalakan dan Mempercepat Word2Vec menggunakan Beberapa GPU.

  • Vektor Kata yang Diperkaya dengan Informasi Subword dengan mempelajari representasi vektor untuk karakter n-gram. Pendekatan ini memungkinkan BlazingText untuk menghasilkan vektor yang bermakna untuk kata-kata out-of-vocabulary (OOV) dengan mewakili vektornya sebagai jumlah karakter n-gram (subkata) vektor.

  • A batch_skipgram mode untuk algoritma Word2Vec yang memungkinkan pelatihan lebih cepat dan komputasi terdistribusi di beberapa node CPU. Mereka batch_skipgram mode melakukan mini-batching menggunakan strategi Berbagi Sampel Negatif untuk mengubah operasi BLAS level-1 menjadi operasi BLAS level-3. Ini secara efisien memanfaatkan instruksi multiply-add dari arsitektur modern. Untuk informasi selengkapnya, lihat Parallelizing Word2Vec di Memori Bersama dan Terdistribusi.

Untuk meringkas, mode berikut didukung oleh BlazingText pada berbagai jenis instance:

Modus

Word2Vec

(Pembelajaran Tanpa Pengawasan)

Klasifikasi Teks

(Pembelajaran yang Diawasi)

Contoh CPU tunggal

cbow

Skip-gram

Batch Skip-gram

supervised

Instans GPU tunggal (dengan 1 atau lebih GPU)

cbow

Skip-gram

superviseddengan satu GPU

Beberapa contoh CPU

Batch Skip-gram Tidak ada

Untuk informasi lebih lanjut tentang matematika di belakang BlazingText, lihat BlazingText: Menskalakan dan Mempercepat Word2Vec menggunakan Beberapa GPU.

Antarmuka Input/Output untuk Algoritma BlazingText

BlazingText Algoritma mengharapkan satu file teks yang telah diproses sebelumnya dengan token yang dipisahkan spasi. Setiap baris dalam file harus berisi satu kalimat. Jika Anda perlu melatih beberapa file teks, gabungkan menjadi satu file dan unggah file di saluran masing-masing.

Format Data Pelatihan dan Validasi

Format Data Pelatihan dan Validasi untuk Algoritma Word2Vec

Untuk pelatihan Word2Vec, unggah file di bawah saluran kereta. Tidak ada saluran lain yang didukung. File harus berisi kalimat pelatihan per baris.

Format Data Pelatihan dan Validasi untuk Algoritma Klasifikasi Teks

Untuk mode yang diawasi, Anda dapat berlatih dengan mode file atau dengan format teks manifes yang ditambah.

Berlatih dengan Mode File

Untuk supervised mode, file pelatihan/validasi harus berisi kalimat pelatihan per baris bersama dengan label. Label adalah kata-kata yang diawali dengan string __label__. Berikut adalah contoh file pelatihan/validasi:

__label__4 linux ready for prime time , intel says , despite all the linux hype , the open-source movement has yet to make a huge splash in the desktop market . that may be about to change , thanks to chipmaking giant intel corp . __label__2 bowled by the slower one again , kolkata , november 14 the past caught up with sourav ganguly as the indian skippers return to international cricket was short lived .
catatan

Urutan label dalam kalimat tidak masalah.

Unggah file pelatihan di bawah saluran kereta api, dan secara opsional unggah file validasi di bawah saluran validasi.

Berlatih dengan Format Teks Augmented Manifest

Mode yang diawasi untuk instance CPU juga mendukung format manifes tambahan, yang memungkinkan Anda melakukan pelatihan dalam mode pipa tanpa perlu membuat file RecorDio. Saat menggunakan format, file manifes S3 perlu dibuat yang berisi daftar kalimat dan label yang sesuai. Format file manifes harus dalam format JSON Lines di mana setiap baris mewakili satu sampel. Kalimat ditentukan menggunakan source tag dan label dapat ditentukan menggunakan label tag. Kedua source dan label tag harus disediakan di bawah nilai AttributeNames parameter seperti yang ditentukan dalam permintaan.

{"source":"linux ready for prime time , intel says , despite all the linux hype", "label":1} {"source":"bowled by the slower one again , kolkata , november 14 the past caught up with sourav ganguly", "label":2}

Pelatihan multi-label juga didukung dengan menentukan array label JSON.

{"source":"linux ready for prime time , intel says , despite all the linux hype", "label": [1, 3]} {"source":"bowled by the slower one again , kolkata , november 14 the past caught up with sourav ganguly", "label": [2, 4, 5]}

Untuk informasi selengkapnya tentang file manifes tambahan, lihatMenyediakan Metadata Set Data untuk Pekerjaan Pelatihan dengan File Manifes yang Ditambah.

Artefak Model dan Inferensi

Artefak Model untuk Algoritma Word2Vec

Untuk pelatihan Word2Vec, artefak model terdiri dari vectors.txt, yang berisi words-to-vectors pemetaan, dan vectors.bin, biner yang digunakan oleh BlazingText untuk hosting, inferensi, atau keduanya. vectors.txt menyimpan vektor dalam format yang kompatibel dengan alat lain seperti Gensim dan Spacy. Misalnya, pengguna Gensim dapat menjalankan perintah berikut untuk memuat file vectors.txt:

from gensim.models import KeyedVectors word_vectors = KeyedVectors.load_word2vec_format('vectors.txt', binary=False) word_vectors.most_similar(positive=['woman', 'king'], negative=['man']) word_vectors.doesnt_match("breakfast cereal dinner lunch".split())

Jika parameter evaluasi diatur keTrue, file tambahan, eval.json, dibuat. File ini berisi hasil evaluasi kesamaan (menggunakan koefisien korelasi peringkat Spearman) pada dataset WS-353. Jumlah kata dari dataset WS-353 yang tidak ada di korpus pelatihan dilaporkan.

Untuk permintaan inferensi, model menerima file JSON yang berisi daftar string dan mengembalikan daftar vektor. Jika kata tersebut tidak ditemukan dalam kosakata, inferensi mengembalikan vektor nol. Jika subkata disetel ke True selama pelatihan, model dapat menghasilkan vektor untuk kata-kata out-of-vocabulary (OOV).

Contoh Permintaan JSON

Tipe MIME: application/json

{ "instances": ["word1", "word2", "word3"] }

Artefak Model untuk Algoritma Klasifikasi Teks

Pelatihan dengan output yang diawasi membuat file model.bin yang dapat dikonsumsi oleh BlazingText hosting. Untuk inferensi, BlazingText model menerima file JSON yang berisi daftar kalimat dan mengembalikan daftar label prediksi dan skor probabilitas yang sesuai. Setiap kalimat diharapkan menjadi string dengan token, kata, atau keduanya yang dipisahkan spasi.

Contoh Permintaan JSON

Tipe MIME: application/json

{ "instances": ["the movie was excellent", "i did not like the plot ."] }

Secara default, server hanya mengembalikan satu prediksi, yang dengan probabilitas tertinggi. Untuk mengambil prediksi k teratas, Anda dapat mengatur k dalam konfigurasi, sebagai berikut:

{ "instances": ["the movie was excellent", "i did not like the plot ."], "configuration": {"k": 2} }

Untuk BlazingText, accept parameter content-type dan harus sama. Untuk transformasi batch, keduanya harusapplication/jsonlines. Jika mereka berbeda, Accept bidang diabaikan. Format untuk masukan berikut:

content-type: application/jsonlines {"source": "source_0"} {"source": "source_1"} if you need to pass the value of k for top-k, then you can do it in the following way: {"source": "source_0", "k": 2} {"source": "source_1", "k": 3}

Format untuk output berikut:

accept: application/jsonlines {"prob": [prob_1], "label": ["__label__1"]} {"prob": [prob_1], "label": ["__label__1"]} If you have passed the value of k to be more than 1, then response will be in this format: {"prob": [prob_1, prob_2], "label": ["__label__1", "__label__2"]} {"prob": [prob_1, prob_2], "label": ["__label__1", "__label__2"]}

Untuk mode yang diawasi (klasifikasi teks) dan tidak diawasi (Word2Vec), binari (*.bin) yang dihasilkan oleh dapat BlazingText dikonsumsi silang oleh FastText dan sebaliknya. Anda dapat menggunakan binari yang diproduksi BlazingText oleh FastText. Demikian juga, Anda dapat meng-host binari model yang dibuat dengan FastText menggunakan. BlazingText

Berikut adalah contoh cara menggunakan model yang dihasilkan BlazingText dengan FastText:

#Download the model artifact from S3 aws s3 cp s3://<YOUR_S3_BUCKET>/<PREFIX>/model.tar.gz model.tar.gz #Unzip the model archive tar -xzf model.tar.gz #Use the model archive with fastText fasttext predict ./model.bin test.txt

Namun, binari hanya didukung saat pelatihan pada CPU dan GPU tunggal; pelatihan tentang multi-GPU tidak akan menghasilkan binari.

Rekomendasi Instans EC2 untuk Algoritma BlazingText

Untuk cbow dan skipgram mode, BlazingText mendukung CPU tunggal dan instance GPU tunggal. Kedua mode ini mendukung pembelajaran subwords penyematan. Untuk mencapai kecepatan tertinggi tanpa mengurangi akurasi, kami sarankan Anda menggunakan instance ml.p3.2xlarge.

Untuk batch_skipgram mode, BlazingText mendukung instance CPU tunggal atau beberapa. Saat melatih beberapa instance, tetapkan nilai S3DataDistributionType bidang S3DataSourceobjek yang Anda CreateTrainingJobkirimkanFullyReplicated. BlazingTextmengurus distribusi data di seluruh mesin.

Untuk mode klasifikasi teks yang diawasi, instance C5 direkomendasikan jika kumpulan data pelatihan kurang dari 2 GB. Untuk kumpulan data yang lebih besar, gunakan instance dengan satu GPU. BlazingText mendukung instance P2, P3, G4dn, dan G5 untuk pelatihan dan inferensi.

BlazingText Contoh Notebook

Untuk contoh buku catatan yang melatih dan menyebarkan SageMaker BlazingText algoritme untuk menghasilkan vektor kata, lihat Mempelajari Representasi Kata Word2Vec menggunakan. BlazingText Untuk petunjuk untuk membuat dan mengakses instance notebook Jupyter yang dapat Anda gunakan untuk menjalankan contoh, lihat. SageMaker Instans SageMaker Notebook Amazon Setelah membuat dan membuka instance notebook, pilih tab SageMaker Contoh untuk melihat daftar semua SageMaker contoh. Contoh buku catatan pemodelan topik yang menggunakan Teks Berkobar terletak di bagian Pengantar algoritma Amazon. Untuk membuka buku catatan, pilih tab Use, lalu pilih Buat salinan.