Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
BlazingText Algoritma Amazon SageMaker AI menyediakan implementasi Word2vec dan algoritma klasifikasi teks yang sangat dioptimalkan. 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.
BlazingText Algoritma tidak dapat diparalelkan. Untuk informasi selengkapnya tentang parameter yang terkait dengan pelatihan, lihat Docker Registry Paths for SageMaker Built-in Algorithms.
BlazingText Algoritma SageMaker AI menyediakan fitur-fitur berikut:
-
Pelatihan yang dipercepat dari pengklasifikasi teks FastText pada CPUs multi-core atau GPU dan GPUs Word2Vec tentang penggunaan kernel CUDA yang sangat dioptimalkan. Untuk informasi selengkapnya, lihat BlazingText: Menskalakan dan Mempercepat Word2Vec
menggunakan Multiple. GPUs -
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.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 diMemori 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 |
|
|
Instans GPU tunggal (dengan 1 atau lebih GPUs) |
|
|
Beberapa contoh CPU |
Batch Skip-gram |
Tidak ada |
Untuk informasi lebih lanjut tentang matematika di belakang BlazingText, lihat BlazingText: Menskalakan dan Mempercepat Word2Vec
Topik
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 Linessource
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, lihatAugmented Manifest Files untuk Pekerjaan Pelatihan.
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 diatur 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.
EC2 Rekomendasi Instance untuk BlazingText Algoritma
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 S3DataSource
objek yang Anda CreateTrainingJob
kirimkanFullyReplicated
. 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 menerapkan BlazingText algoritme SageMaker AI untuk menghasilkan vektor kata, lihat Mempelajari Representasi Kata Word2Vec