BlazingTextalgoritma - Amazon SageMaker

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

BlazingTextalgoritma

AmazonSageMaker BlazingTextalgoritma menyediakan implementasi yang sangat optimal 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 disebutembedding kata. Kata-kata yang serupa secara semantik sesuai dengan vektor yang berdekatan. Dengan begitu, embeddings kata menangkap hubungan semantik antar kata-kata.

Banyak aplikasi pemrosesan bahasa alami (NLP) mempelajari embeddings kata dengan melatih koleksi dokumen yang besar. Representasi vektor terlatih 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. Hal ini membuat sulit untuk skala ke dataset besar.

DenganBlazingTextalgoritma, Anda dapat skala ke dataset besar dengan mudah. Mirip dengan Word2vec, ia menyediakan Skip-gram dan kontinubag-of-words(CBOW) arsitektur pelatihan. BlazingTextimplementasi algoritma klasifikasi teks multi-kelas multi-label yang diawasi memperluas klasifikasi teks FastText untuk menggunakan akselerasi GPU dengan kustomCUDAkernel. 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 denganstate-of-the-artalgoritma klasifikasi teks pembelajaran mendalam.

YangBlazingTextalgoritma tidak parallelizable. Untuk informasi lebih lanjut tentang parameter yang terkait dengan pelatihan, lihatJalur Registri Docker untukSageMakerAlgoritma Built-in.

YangSageMaker BlazingTextalgoritma 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 optimal. Untuk informasi lebih lanjut, lihatBlazingText: Penskalaan dan Mempercepat Word2Vec menggunakan Beberapa GPU.

  • Vektor Kata yang Diperkaya dengan Informasi Subworddengan mempelajari representasi vektor untuk karakter n-gram. Pendekatan ini memungkinkanBlazingTextuntuk menghasilkan vektor yang bermakna untukout-of-vocabulary(OOV) kata-kata dengan mewakili vektor mereka sebagai jumlah karakter n-gram (subword) vektor.

  • SEBUAHbatch_skipgram modeuntuk algoritma Word2Vec yang memungkinkan pelatihan lebih cepat dan komputasi terdistribusi di beberapa node CPU. Yangbatch_skipgram modemelakukan 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 arsitektur modern. Untuk informasi lebih lanjut, lihatParalelisasi Word2Vec dalam Memori Bersama dan Terdistribusi.

Untuk meringkas, mode berikut didukung olehBlazingTextpada berbagai jenis contoh:

Mode

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 instans CPU

Batch Skip-gram Tidak ada

Untuk informasi lebih lanjut tentang matematika di belakangBlazingText, lihatBlazingText: Penskalaan dan Mempercepat Word2Vec menggunakan Beberapa GPU.

Antarmuka Input/Output untukBlazingTextAlgoritma

YangBlazingTextalgoritma mengharapkan file teks preprocessed tunggal dengan token spasi-dipisahkan. 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 bawahmelatihsaluran. Tidak ada saluran lain yang didukung. File harus berisi kalimat pelatihan per baris.

Format Data Pelatihan dan Validasi untuk Algoritma Klasifikasi Teks

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

Berlatih dengan Mode File

Untuksupervisedmode, file pelatihan/validasi harus berisi kalimat pelatihan per baris bersama dengan label. Label adalah kata-kata yang diawali oleh 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 latihan di bawah saluran kereta api, dan unggah file validasi secara opsional di bawah saluran validasi.

Latih dengan Format Teks Manifes Augmented

Mode yang diawasi untuk instans CPU juga mendukung format manifes yang ditambah, yang memungkinkan Anda melakukan latihan 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 dalamGaris JSONformat di mana setiap baris mewakili satu sampel. Kalimat ditentukan menggunakansourcetag dan label dapat ditentukan menggunakanlabeltag. Keduanyasourcedanlabeltag harus disediakan di bawahAttributeNamesnilai 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 larik 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 yang ditambah, lihatMenyediakan Dataset Metadata untuk Training Jobs dengan Augmented Manifest File.

Model Artefak dan Inferensi

Artefak Model untuk Algoritma Word2Vec

Untuk pelatihan Word2Vec, artefak model terdiri darivectors.txt, yang berisiwords-to-vectorspemetaan, danvectors.bin, biner yang digunakan olehBlazingTextuntuk hosting, inferensi, atau keduanya.vectors.txtmenyimpan 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 kumpulan data 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 diatur keTrueselama pelatihan, model ini mampu menghasilkan vektor untukout-of-vocabulary(OOV) kata-kata.

Contoh Permintaan JSON

Jenis MIME: application/json

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

Artefak Model untuk Algoritma Klasifikasi Teks

Pelatihan dengan output yang diawasi menciptakanmodel.binfile yang dapat dikonsumsi olehBlazingTexthosting. Untuk kesimpulan,BlazingTextModel menerima file JSON yang berisi daftar kalimat dan mengembalikan daftar label prediksi yang sesuai dan skor probabilitas. Setiap kalimat diharapkan menjadi string dengan token, kata, atau keduanya yang dipisahkan ruang.

Contoh Permintaan JSON

Jenis MIME: application/json

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

Secara default, server hanya mengembalikan satu prediksi, yang memiliki probabilitas tertinggi. Untuk mengambil bagian ataskprediksi, Anda dapat mengaturkdalam konfigurasi, sebagai berikut:

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

UntukBlazingText, yang content-typedanacceptparameter harus sama. Untuk transformasi batch, keduanya harusapplication/jsonlines. Jika mereka berbeda,Acceptbidang 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 tanpa pengawasan (Word2Vec), biner (*.tempat sampah) diproduksi olehBlazingTextdapat dikonsumsi silang oleh FastText dan sebaliknya. Anda dapat menggunakan biner yang diproduksi olehBlazingTextoleh FastText. Demikian juga, Anda dapat meng-host binari model yang dibuat dengan FastText menggunakanBlazingText.

Berikut adalah contoh cara menggunakan model yang dihasilkan denganBlazingTextdengan 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, biner hanya didukung ketika pelatihan pada CPU dan GPU tunggal; pelatihan pada multi-GPU tidak akan menghasilkan biner.

Rekomendasi Instans EC2 untukBlazingTextAlgoritma

Untukcbowdanskipgrammode,BlazingTextmendukung CPU tunggal dan instans GPU tunggal. Kedua mode ini mendukung pembelajaransubwordsembeddings. Untuk mencapai kecepatan tertinggi tanpa mengurangi akurasi, kami sarankan Anda menggunakan instans ml.p3.2xlarge.

Untukbatch_skipgrammodus,BlazingTextmendukung instans CPU tunggal atau beberapa. Saat melatih beberapa instance, tetapkan nilaiS3DataDistributionTypebidangS3DataSourceobjek yang Anda lewatiCreateTrainingJobkepadaFullyReplicated. BlazingTextmengurus mendistribusikan data di seluruh mesin.

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

BlazingTextContoh Notebook

Untuk contoh notebook yang melatih dan menyebarkanSageMaker BlazingTextalgoritma untuk menghasilkan vektor kata, lihatBelajar Word2Vec Word Representasi menggunakanBlazingText. Untuk petunjuk untuk membuat dan mengakses instance notebook Jupyter yang dapat Anda gunakan untuk menjalankan contoh diSageMaker, lihatInstans SageMaker Notebook Amazon. Setelah membuat dan membuka instance notebook, pilihSageMakerContohtab untuk melihat daftar semuaSageMakercontoh. Notebook contoh pemodelan topik yang menggunakan Teks Berkobar terletak diPengantar algoritma Amazonbagian. Untuk membuka notebook, pilihGunakantab, lalu pilihBuat salinan.