Transformers documentation
Glosarium
Glosarium
Glosarium ini mendefinisikan istilah umum machine learning dan 🤗 Transformers untuk membantu Anda memahami dokumentasi dengan lebih baik.
A
attention mask
Mask perhatian adalah argumen opsional yang digunakan saat mem-batching beberapa urutan bersama.
Argumen ini menunjukkan kepada model token mana yang harus diperhatikan dan mana yang tidak.
Sebagai contoh, pertimbangkan dua urutan berikut:
>>> from transformers import BertTokenizer
>>> tokenizer = BertTokenizer.from_pretrained("google-bert/bert-base-cased")
>>> sequence_a = "This is a short sequence."
>>> sequence_b = "This is a rather long sequence. It is at least longer than the sequence A."
>>> encoded_sequence_a = tokenizer(sequence_a)["input_ids"]
>>> encoded_sequence_b = tokenizer(sequence_b)["input_ids"]Versi yang telah dikodekan memiliki panjang yang berbeda:
>>> len(encoded_sequence_a), len(encoded_sequence_b)
(8, 19)Oleh karena itu, kita tidak bisa menggabungkan keduanya dalam tensor yang sama apa adanya. Urutan pertama perlu di-*padding* hingga panjang urutan kedua, atau urutan kedua perlu dipangkas hingga panjang urutan pertama.
Pada kasus pertama, daftar ID akan diperluas dengan indeks padding. Kita dapat meneruskan daftar ke tokenizer dan meminta untuk melakukan padding seperti ini:
>>> padded_sequences = tokenizer([sequence_a, sequence_b], padding=True)Kita dapat melihat bahwa 0 telah ditambahkan di sebelah kanan kalimat pertama agar panjangnya sama dengan kalimat kedua:
>>> padded_sequences["input_ids"]
[[101, 1188, 1110, 170, 1603, 4954, 119, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [101, 1188, 1110, 170, 1897, 1263, 4954, 119, 1135, 1110, 1120, 1655, 2039, 1190, 1103, 4954, 138, 119, 102]]Hal ini kemudian dapat dikonversi menjadi tensor di PyTorch. Attention mask adalah tensor biner yang menunjukkan posisi indeks yang di-pad sehingga model tidak memperhatikan (attend) pada indeks tersebut. Untuk BertTokenizer, 1 menunjukkan nilai yang harus diperhatikan, sedangkan 0 menunjukkan nilai yang di-pad. Attention mask ini terdapat dalam dictionary yang dikembalikan oleh tokenizer di bawah kunci “attention_mask”:
>>> padded_sequences["attention_mask"]
[[1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]model autoencoding
Lihat model encoder dan masked language modeling
model autoregresif
Lihat modeling bahasa kausal dan model decoder
B
backbone
Backbone adalah jaringan (embeddings dan lapisan) yang menghasilkan hidden states atau fitur mentah. Biasanya, backbone terhubung ke head yang menerima fitur sebagai inputnya untuk membuat prediksi. Misalnya, ViTModel adalah backbone tanpa head spesifik di atasnya. Model lain juga dapat menggunakan ViTModel sebagai backbone, seperti DPT.
C
pemodelan bahasa kausal
Tugas pra-pelatihan di mana model membaca teks secara berurutan dan harus memprediksi kata berikutnya. Biasanya dilakukan dengan membaca seluruh kalimat tetapi menggunakan masker di dalam model untuk menyembunyikan token masa depan pada langkah waktu tertentu.
channel
Gambar berwarna terdiri dari beberapa kombinasi nilai dalam tiga saluran: merah, hijau, dan biru (RGB), sedangkan gambar grayscale hanya memiliki satu saluran. Di 🤗 Transformers, saluran dapat menjadi dimensi pertama atau terakhir dari tensor gambar: [n_channels, height, width] atau [height, width, n_channels].
klasifikasi temporal koneksionis (CTC)
Algoritma yang memungkinkan model untuk belajar tanpa mengetahui persis bagaimana input dan output diselaraskan; CTC menghitung distribusi dari semua kemungkinan output untuk input tertentu dan memilih output yang paling mungkin dari antaranya. CTC sering digunakan dalam tugas pengenalan ucapan karena ucapan tidak selalu selaras dengan transkrip secara bersih karena berbagai alasan, seperti perbedaan laju bicara pembicara.
konvolusi
Sejenis lapisan dalam jaringan saraf di mana matriks input dikalikan secara elemen-per-elemen dengan matriks yang lebih kecil (kernel atau filter) dan nilainya dijumlahkan dalam matriks baru. Ini dikenal sebagai operasi konvolusi yang diulang di seluruh matriks input. Setiap operasi diterapkan pada segmen yang berbeda dari matriks input. Convolutional neural networks (CNNs) umum digunakan dalam computer vision.
D
DataParallel (DP)
Teknik paralelisme untuk pelatihan pada beberapa GPU di mana setup yang sama direplikasi beberapa kali, dengan setiap instance menerima potongan data yang berbeda. Pemrosesan dilakukan secara paralel dan semua setup disinkronkan di akhir setiap langkah pelatihan.
Pelajari lebih lanjut tentang DataParallel.
ID input decoder
Input ini khusus untuk model encoder-decoder dan berisi ID input yang akan diberikan ke decoder. Input ini harus digunakan untuk tugas sequence to sequence, seperti penerjemahan atau ringkasan, dan biasanya dibangun dengan cara yang spesifik untuk masing-masing model.
Sebagian besar model encoder-decoder (BART, T5) membuat decoder_input_ids mereka sendiri dari labels. Pada model seperti itu,
menyampaikan labels adalah cara yang lebih disukai untuk menangani pelatihan.
Silakan periksa dokumentasi masing-masing model untuk melihat bagaimana mereka menangani ID input ini untuk pelatihan sequence to sequence.
model decoder
Juga dikenal sebagai model autoregresif, model decoder melibatkan tugas pra-pelatihan (disebabkan pemodelan bahasa kausal) di mana model membaca teks secara berurutan dan harus memprediksi kata berikutnya. Hal ini biasanya dilakukan dengan membaca seluruh kalimat menggunakan masker untuk menyembunyikan token masa depan pada langkah waktu tertentu.
deep learning (DL)
Algoritma machine learning yang menggunakan jaringan saraf dengan beberapa lapisan.
E
model encoder
Juga dikenal sebagai model autoencoding, model encoder mengambil input (seperti teks atau gambar) dan mengubahnya menjadi representasi numerik yang terkondensasi yang disebut embedding. Sering kali, model encoder dilatih sebelumnya menggunakan teknik seperti masked language modeling, yang menyembunyikan sebagian dari urutan input dan memaksa model untuk membuat representasi yang lebih bermakna.
F
ekstraksi fitur
Proses memilih dan mentransformasi data mentah menjadi seperangkat fitur yang lebih informatif dan berguna untuk algoritma machine learning. Beberapa contoh ekstraksi fitur meliputi transformasi teks mentah menjadi word embeddings dan ekstraksi fitur penting seperti tepi atau bentuk dari data gambar/video.
chunking feed forward
Pada setiap blok residual attention di transformers, lapisan self-attention biasanya diikuti oleh 2 lapisan feed forward.
Ukuran embedding intermediate dari lapisan feed forward sering kali lebih besar daripada ukuran hidden dari model (misalnya, untuk google-bert/bert-base-uncased).
Untuk input berukuran [batch_size, sequence_length], memori yang diperlukan untuk menyimpan embedding feed forward antara [batch_size, sequence_length, config.intermediate_size] dapat menyumbang porsi besar dari penggunaan memori. Para penulis Reformer: The Efficient Transformer mengamati bahwa karena komputasinya independen terhadap dimensi sequence_length, secara matematis ekuivalen untuk menghitung embedding output dari kedua lapisan feed forward [batch_size, config.hidden_size]_0, ..., [batch_size, config.hidden_size]_n secara individual dan kemudian menggabungkannya menjadi [batch_size, sequence_length, config.hidden_size] dengan n = sequence_length, yang menukar peningkatan waktu komputasi dengan pengurangan penggunaan memori, namun menghasilkan hasil yang secara matematis ekuivalen.
Untuk model yang menggunakan fungsi apply_chunking_to_forward(), chunk_size menentukan jumlah output embeddings yang dihitung secara paralel dan dengan demikian menentukan trade-off antara kompleksitas memori dan waktu. Jika chunk_size diatur ke 0, tidak ada feed forward chunking yang dilakukan.
model yang telah dilatih ulang
Finetuning adalah bentuk transfer learning yang melibatkan pengambilan model pretrained, pembekuan bobotnya, dan penggantian lapisan output dengan model head yang baru ditambahkan. Model head dilatih pada dataset target Anda.
Lihat tutorial Menyesuaikan model yang telah dilatih untuk detail lebih lanjut, dan pelajari cara menyesuaikan model dengan 🤗 Transformers.
H
head
Model head merujuk pada lapisan terakhir dari jaringan saraf yang menerima hidden states mentah dan memproyeksikannya ke dimensi yang berbeda. Terdapat model head yang berbeda untuk setiap tugas. Sebagai contoh:
- GPT2ForSequenceClassification adalah kepala klasifikasi urutan - lapisan linear - di atas GPT2Model dasar.
- ViTForImageClassification adalah kepala klasifikasi gambar - lapisan linear di atas keadaan tersembunyi akhir dari token
CLS- yang berada di atas ViTModel dasar. - Wav2Vec2ForCTC adalah kepala pemodelan bahasa dengan CTC di atas Wav2Vec2Model dasar.
I
patch gambar
Model Transformers berbasis vision memecah gambar menjadi patch yang lebih kecil, yang kemudian di-embed secara linear dan diteruskan sebagai urutan ke model. Anda dapat menemukan patch_size - atau resolusi - dari model dalam konfigurasinya.
inferensi
Inference adalah proses mengevaluasi model pada data baru setelah pelatihan selesai. Lihat tutorial Pipeline untuk inference untuk mempelajari cara melakukan inference dengan 🤗 Transformers.
ID input
Input ids sering kali merupakan satu-satunya parameter wajib yang perlu diteruskan ke model sebagai input. Mereka adalah indeks token, representasi numerik dari token yang membentuk urutan yang akan digunakan sebagai input oleh model.
Setiap tokenizer bekerja dengan cara yang berbeda, tetapi mekanisme dasarnya tetap sama. Berikut adalah contoh menggunakan tokenizer BERT, yaitu tokenizer WordPiece:
>>> from transformers import BertTokenizer
>>> tokenizer = BertTokenizer.from_pretrained("google-bert/bert-base-cased")
>>> sequence = "A Titan RTX has 24GB of VRAM"Tokenizer menangani pemecahan urutan menjadi token yang tersedia dalam kosakata tokenizer.
>>> tokenized_sequence = tokenizer.tokenize(sequence)Token-token tersebut berupa kata atau subkata. Di sini, misalnya, “VRAM” tidak ada dalam kosakata model, sehingga dipecah menjadi “V”, “RA”, dan “M”. Untuk menunjukkan bahwa token-token tersebut bukan kata terpisah melainkan bagian dari kata yang sama, awalan double-hash ditambahkan pada “RA” dan “M”:
>>> print(tokenized_sequence)
['A', 'Titan', 'R', '##T', '##X', 'has', '24', '##GB', 'of', 'V', '##RA', '##M']Token-token ini kemudian dapat dikonversi menjadi ID yang dapat dipahami oleh model. Hal ini dapat dilakukan dengan langsung memberikan kalimat ke tokenizer, yang memanfaatkan implementasi Rust dari 🤗 Tokenizers untuk performa puncak.
>>> inputs = tokenizer(sequence)Tokenizer mengembalikan kamus dengan semua argumen yang diperlukan agar model yang sesuai dapat berfungsi dengan baik. Indeks token berada di bawah kunci input_ids:
>>> encoded_sequence = inputs["input_ids"]
>>> print(encoded_sequence)
[101, 138, 18696, 155, 1942, 3190, 1144, 1572, 13745, 1104, 159, 9664, 2107, 102]Perhatikan bahwa tokenizer secara otomatis menambahkan “special tokens” (jika model terkait bergantung pada token tersebut), yaitu ID khusus yang kadang digunakan oleh model.
Jika kami mendekode urutan id sebelumnya,
>>> decoded_sequence = tokenizer.decode(encoded_sequence)kami akan melihat
>>> print(decoded_sequence)
[CLS] A Titan RTX has 24GB of VRAM [SEP]karena ini adalah cara BertModel akan mengharapkan inputnya.
L
labels
Label adalah argumen opsional yang dapat diteruskan agar model dapat menghitung loss-nya sendiri. Label ini harus berupa prediksi yang diharapkan dari model: model akan menggunakan loss standar untuk menghitung loss antara prediksinya dan nilai yang diharapkan (label).
Label-label ini berbeda tergantung pada kepala model, misalnya:
- Untuk model klasifikasi urutan (BertForSequenceClassification), model mengharapkan tensor dengan dimensi
(batch_size)di mana setiap nilai dalam batch sesuai dengan label yang diharapkan untuk seluruh urutan. - Untuk model klasifikasi token, (BertForTokenClassification), model mengharapkan tensor dengan dimensi
(batch_size, seq_length)di mana setiap nilai sesuai dengan label yang diharapkan untuk masing-masing token. - Untuk pemodelan bahasa bermasker (BertForMaskedLM), model mengharapkan tensor dengan dimensi
(batch_size, seq_length)di mana setiap nilai sesuai dengan label yang diharapkan untuk masing-masing token: label berupa ID token untuk token yang dimasker, dan nilai yang diabaikan untuk sisanya (biasanya -100). - Untuk tugas sequence to sequence, (BartForConditionalGeneration, MBartForConditionalGeneration), model mengharapkan tensor dengan dimensi
(batch_size, tgt_seq_length)di mana setiap nilai sesuai dengan sequence target yang terkait dengan masing-masing sequence input. Selama pelatihan, baik BART maupun T5 akan membuatdecoder_input_idsdan decoder attention masks yang sesuai secara internal. Biasanya, keduanya tidak perlu diberikan. Hal ini tidak berlaku untuk model yang memanfaatkan kerangka Encoder-Decoder. - Untuk model klasifikasi gambar, (ViTForImageClassification), model mengharapkan tensor dengan dimensi
(batch_size)di mana setiap nilai dalam batch sesuai dengan label yang diharapkan untuk masing-masing gambar. - Untuk model segmentasi semantik, (SegformerForSemanticSegmentation), model mengharapkan tensor dengan dimensi
(batch_size, height, width)di mana setiap nilai dalam batch sesuai dengan label yang diharapkan untuk setiap piksel individu. - Untuk model deteksi objek, (DetrForObjectDetection), model mengharapkan daftar kamus dengan kunci
class_labelsdanboxes, di mana setiap nilai dalam batch sesuai dengan label yang diharapkan dan jumlah kotak batas (bounding box) untuk masing-masing gambar individu. - Untuk model pengenalan ucapan otomatis, (Wav2Vec2ForCTC), model mengharapkan tensor dengan dimensi
(batch_size, target_length)di mana setiap nilai sesuai dengan label yang diharapkan untuk setiap token individual.
Label untuk setiap model mungkin berbeda, jadi pastikan untuk selalu memeriksa dokumentasi masing-masing model untuk informasi lebih lanjut tentang label spesifik mereka!
Model dasar (BertModel) tidak menerima label, karena ini adalah model transformer dasar yang hanya mengoutputkan fitur.
model bahasa besar (LLM)
Istilah umum yang merujuk pada model bahasa transformer (GPT-3, BLOOM, OPT) yang dilatih pada sejumlah besar data. Model-model ini juga cenderung memiliki jumlah parameter yang dapat dipelajari (learnable parameters) dalam jumlah besar (misalnya 175 miliar untuk GPT-3).
M
pemodelan bahasa tersembunyi (MLM)
Tugas pra-pelatihan di mana model melihat versi teks yang rusak, biasanya dilakukan dengan menyamarkan beberapa token secara acak, dan harus memprediksi teks aslinya.
multimodal
Tugas yang menggabungkan teks dengan jenis input lain (misalnya gambar).
N
Generasi bahasa alami (NLG)
Semua tugas yang berkaitan dengan menghasilkan teks (misalnya, Write With Transformers, terjemahan).
Pemrosesan bahasa alami (NLP)
Cara umum untuk menyatakan “menangani teks”.
Pemahaman bahasa alami (NLU)
Semua tugas yang berkaitan dengan memahami apa yang ada dalam teks (misalnya mengklasifikasikan seluruh teks, kata-kata individual).
P
pipeline
Pipeline dalam 🤗 Transformers adalah abstraksi yang merujuk pada serangkaian langkah yang dieksekusi dalam urutan tertentu untuk mempreproses dan mentransformasi data serta mengembalikan prediksi dari model. Beberapa contoh tahap yang ditemukan dalam pipeline mungkin termasuk preproses data, ekstraksi fitur, dan normalisasi.
Untuk detail lebih lanjut, lihat Pipelines untuk inferensi.
PipelineParallel (PP)
Teknik paralelisme di mana model dipecah secara vertikal (level lapisan) di antara beberapa GPU, sehingga hanya satu atau beberapa lapisan model yang ditempatkan pada satu GPU. Setiap GPU memproses tahap yang berbeda dari pipeline secara paralel dan bekerja pada potongan kecil dari batch. Pelajari lebih lanjut tentang PipelineParallel.
nilai piksel
Tensor dari representasi numerik sebuah gambar yang diteruskan ke model. Nilai piksel memiliki bentuk [batch_size, num_channels, height, width], dan dihasilkan dari image processor.
pooling
Operasi yang mengurangi matriks menjadi matriks yang lebih kecil, baik dengan mengambil nilai maksimum maupun rata-rata dari dimensi yang di-pool. Lapisan pooling umumnya ditemukan di antara lapisan konvolusional untuk melakukan downsampling pada representasi fitur.
ID posisi
Berbeda dengan RNN yang memiliki posisi setiap token tertanam di dalamnya, transformer tidak mengetahui posisi setiap token. Oleh karena itu, ID posisi (position_ids) digunakan oleh model untuk mengidentifikasi posisi setiap token dalam daftar token.
Mereka adalah parameter opsional. Jika tidak ada position_ids yang diteruskan ke model, ID tersebut dibuat secara otomatis sebagai
embedding posisi absolut.
Absolute positional embeddings dipilih dalam rentang [0, config.max_position_embeddings - 1]. Beberapa model menggunakan jenis positional embeddings lainnya, seperti sinusoidal position embeddings atau relative position embeddings.
pra-pemrosesan
Tugas untuk menyiapkan data mentah ke dalam format yang dapat dengan mudah digunakan oleh model machine learning. Sebagai contoh, teks biasanya dipreprocess melalui tokenisasi. Untuk mendapatkan gambaran yang lebih baik tentang bagaimana preprocessing terlihat untuk jenis input lainnya, lihat tutorial Preprocess.
model terlatih
Model yang telah dipretrain pada beberapa data (misalnya seluruh Wikipedia). Metode pretraining melibatkan tujuan self-supervised, yaitu membaca teks dan mencoba memprediksi kata berikutnya (lihat causal language modeling) atau menutupi beberapa kata dan mencoba mempredikannya (lihat masked language modeling).
Model ucapan dan visi memiliki tujuan pra-pelatihan mereka sendiri. Misalnya, Wav2Vec2 adalah model ucapan yang dipra-latih pada tugas kontras yang mengharuskan model untuk mengidentifikasi representasi ucapan yang “benar” dari himpunan representasi ucapan yang “salah”. Di sisi lain, BEiT adalah model visi yang dipra-latih pada tugas pemodelan gambar tersembunyi (masked image modeling) yang menyembunyikan beberapa patch gambar dan mengharuskan model untuk memprediksi patch yang disembunyikan (mirip dengan tujuan pemodelan bahasa tersembunyi / masked language modeling).
R
jaringan saraf rekuren (RNN)
Jenis model yang menggunakan loop pada lapisan untuk memproses teks.
pembelajaran representasi
Subbidang machine learning yang berfokus pada pembelajaran representasi yang bermakna dari data mentah. Beberapa contoh teknik pembelajaran representasi meliputi word embeddings, autoencoders, dan Generative Adversarial Networks (GANs).
S
laju sampling
Pengukuran dalam hertz untuk jumlah sampel (sinyal audio) yang diambil per detik. Laju sampling merupakan hasil dari diskretisasi sinyal kontinu seperti ucapan.
self-attention
Setiap elemen dari input menentukan elemen input mana yang harus mereka perhatikan.
self-supervised learning
Kategori teknik machine learning di mana model membuat tujuan belajarnya sendiri dari data tanpa label. Hal ini berbeda dari unsupervised learning dan supervised learning karena proses belajarnya diawasi, tetapi tidak secara eksplisit oleh pengguna.
Salah satu contoh pembelajaran tanpa pengawasan diri adalah modeling bahasa tersembunyi, di mana model diberikan kalimat dengan sebagian tokennya dihapus dan belajar untuk memprediksi token yang hilang.
pembelajaran semi-terawasi
Kategori luas teknik pelatihan machine learning yang memanfaatkan sejumlah kecil data berlabel dengan kuantitas data tidak berlabel yang lebih besar untuk meningkatkan akurasi model, berbeda dengan supervised learning dan unsupervised learning.
Salah satu contoh pendekatan pembelajaran semi-terawasi adalah “self-training”, di mana model dilatih pada data berlabel, lalu digunakan untuk membuat prediksi pada data tanpa label. Bagian dari data tanpa label yang diprediksi model dengan keyakinan tertinggi akan ditambahkan ke dataset berlabel dan digunakan untuk melatih ulang model.
sequence-to-sequence (seq2seq)
Model yang menghasilkan urutan baru dari input, seperti model terjemahan, atau model ringkasan (seperti Bart atau T5).
DDP Tersebar
Nama lain untuk konsep dasar ZeRO yang digunakan oleh berbagai implementasi ZeRO lainnya.
stride
Dalam konvolusi atau pooling, stride merujuk pada jarak pergeseran kernel di atas matriks. Stride 1 berarti kernel dipindahkan satu piksel pada satu waktu, dan stride 2 berarti kernel dipindahkan dua piksel pada satu waktu.
pembelajaran terbimbing
Bentuk pelatihan model yang secara langsung menggunakan data berlabel untuk memperbaiki dan menginstruksikan kinerja model. Data dimasukkan ke dalam model yang sedang dilatih, dan prediksinya dibandingkan dengan label yang diketahui. Model memperbarui bobotnya berdasarkan seberapa salah prediksinya, dan proses ini diulang untuk mengoptimalkan kinerja model.
T
Paralelisme Tensor (TP)
Teknik paralelisme untuk pelatihan pada beberapa GPU, di mana setiap tensor dipecah menjadi beberapa chunk, sehingga alih-alih seluruh tensor berada di satu GPU, setiap shard dari tensor tersebut berada di GPU yang ditugaskan. Shard diproses secara terpisah dan paralel di GPU yang berbeda, dan hasilnya disinkronkan di akhir langkah pemrosesan. Ini adalah apa yang kadang disebut sebagai paralelisme horizontal, karena pemecahan terjadi pada level horizontal. Pelajari lebih lanjut tentang Tensor Parallelism di sini.
token
Bagian dari sebuah kalimat, biasanya berupa kata, tetapi juga bisa berupa subword (kata-kata yang tidak umum sering dipecah menjadi subword) atau simbol tanda baca.
ID tipe token
Beberapa model memiliki tujuan untuk melakukan klasifikasi pada pasangan kalimat atau menjawab pertanyaan.
Hal ini membutuhkan dua urutan berbeda untuk digabungkan dalam satu entri “input_ids”, yang biasanya dilakukan dengan bantuan token khusus, seperti token classifier ([CLS]) dan separator ([SEP]). Sebagai contoh, model BERT membangun input dua urutannya seperti ini:
>>> # [CLS] SEQUENCE_A [SEP] SEQUENCE_B [SEP]Kita dapat menggunakan tokenizer kita untuk secara otomatis menghasilkan kalimat seperti itu dengan meneruskan dua urutan ke tokenizer sebagai dua argumen (dan bukan daftar, seperti sebelumnya) seperti ini:
>>> from transformers import BertTokenizer
>>> tokenizer = BertTokenizer.from_pretrained("google-bert/bert-base-cased")
>>> sequence_a = "HuggingFace is based in NYC"
>>> sequence_b = "Where is HuggingFace based?"
>>> encoded_dict = tokenizer(sequence_a, sequence_b)
>>> decoded = tokenizer.decode(encoded_dict["input_ids"])yang akan mengembalikan:
>>> print(decoded)
[CLS] HuggingFace is based in NYC [SEP] Where is HuggingFace based? [SEP]Ini sudah cukup bagi beberapa model untuk memahami di mana satu urutan berakhir dan di mana urutan lain dimulai. Namun, model lain, seperti BERT, juga menggunakan token type IDs (juga disebut segment IDs). Mereka direpresentasikan sebagai mask biner yang mengidentifikasi dua jenis urutan dalam model.
Tokenizer mengembalikan mask ini sebagai entri “token_type_ids”:
>>> encoded_dict["token_type_ids"]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1]Urutan pertama, yaitu “konteks” yang digunakan untuk pertanyaan, memiliki semua tokennya yang direpresentasikan oleh 0, sedangkan urutan kedua, yang sesuai dengan “pertanyaan”, memiliki semua tokennya yang direpresentasikan oleh 1.
Beberapa model, seperti XLNetModel, menggunakan token tambahan yang direpresentasikan oleh 2.
transfer learning
Teknik yang melibatkan pengambilan model pra-terlatih dan penyesuaiannya ke dataset yang spesifik untuk tugas Anda. Alih-alih melatih model dari nol, Anda dapat memanfaatkan pengetahuan yang diperoleh dari model yang sudah ada sebagai titik awal. Hal ini mempercepat proses pembelajaran dan mengurangi jumlah data pelatihan yang dibutuhkan.
transformer
Arsitektur model pembelajaran mendalam berbasis self-attention.
U
pembelajaran tanpa pengawasan
Bentuk pelatihan model di mana data yang diberikan ke model tidak berlabel. Teknik pembelajaran tanpa pengawasan memanfaatkan informasi statistik dari distribusi data untuk menemukan pola yang berguna untuk tugas yang sedang dikerjakan.
Z
Zero Redundancy Optimizer (ZeRO)
Teknik paralelisme yang melakukan sharding tensor yang agak mirip dengan TensorParallel, kecuali seluruh tensor direkonstruksi tepat waktu untuk komputasi forward atau backward, sehingga model tidak perlu dimodifikasi. Metode ini juga mendukung berbagai teknik offloading untuk mengompensasi memori GPU yang terbatas. Pelajari lebih lanjut tentang ZeRO di sini.
Update on GitHub