Transformers ile çıkarım — İki bakım notunu anlamlarını koruyarak toplu işleme
Öğrenme yolu
Model ayarları ve ağırlıkları, tokenizasyon, alt sözcükler, doldurma, maskeler ve toplu çıkarım.
Kurs, duygu analizini tokenizasyon, model çıkarımı ve sınıf puanlarının yorumlanması olarak ayırır. Bir gruptaki diziler farklı uzunluktaysa tek bir dikdörtgen tensör oluşturmak için kısa satırlar doldurulur. Dikkat maskesi, gerçek girdi konumlarını dolgu konumlarından ayırır.
Örneği adım adım çözün
Sınır tokenları dahil iki örnek kimlik dizisi alın:
[11, 12, 13]ve[21, 22, 23, 24, 25]. Bu alıştırmada dolgu kimliği sıfırdır. Gerçek bir modelde bu değeri tokenizer yapılandırmasından okuyun.Her iki satırı sağdan beş konuma tamamlayın. İlk satır iki dolgu alır. Maskenin ilk üç değerini bir, son iki değerini sıfır yapın. Maske toplamı kısa satırda üç, uzun satırda beş olmalıdır.
Gerçek bir kodlayıcıyla deneyi tekrarlarken modeli ve tokenizer’ı aynı sürümden yükleyin. Modeli değerlendirme kipine alın, maskeyi de modele geçirin. Kısa notun tek başına ve grup içinde ürettiği ham sınıf puanlarını küçük bir sayısal toleransla karşılaştırın.
Özgün GuideWit şeması. Beş kimlik ve ilk üç konumu tutan maske.
Çözülmüş örnek
Girdi kimlikleri | Dikkat maskesi | Görünür token |
|---|---|---|
[11, 12, 13] | [1, 1, 1, 0, 0] | 3 |
[21, 22, 23, 24, 25] | [1, 1, 1, 1, 1] | 5 |
Python 3 ile deneyin
rows = [[11, 12, 13], [21, 22, 23, 24, 25]]
width = max(map(len, rows))
for row in rows:
pad = width - len(row)
ids = row + [0] * pad
mask = [1] * len(row) + [0] * pad
print(ids, mask, sum(mask))Beklenen çıktı
[11, 12, 13, 0, 0] [1, 1, 1, 0, 0] 3
[21, 22, 23, 24, 25] [1, 1, 1, 1, 1] 5GuideWit yerel Python deneyi. Doldurulmuş iki satırda da beş konum var. Maske toplamları ise üç ve beş.
Arıza açıklaması model girdisinden kaybolduysa kesme ayarını inceleyin. Dikkat maskesi daha önce kesilmiş sözcükleri geri getiremez. Arıza bilgisini uzun bir notun sonuna koyun ve modelde kalan tokenları yeniden metne dönüştürün.
Sorun giderme
Belirti | Kontrol |
|---|---|
Kısa satırda beş konumun tamamı görünür. | Dolguya karşılık gelen son iki maske değerinin sıfır olduğunu doğrulayın. |
Notun sonundaki arıza bilgisi token dizisinde yok. | Azami uzunluğu ve kesme yönünü denetleyin. |
Kontrol soruları
- İki satır birlikte kaç dolgu konumu içerir?
- Aynı etiket, modelin iki çalıştırmada aynı girdiyi gördüğünü gösterir mi?
Yanıt anahtarı
- İki. Yalnızca üç tokenlık kısa satırın tamamlanması gerekir.
- Hayır. Farklı ham puanlar aynı sınıfı birinci sıraya taşıyabilir. Kimlikleri, maskeleri ve puanları karşılaştırın.
Sözlük
Logit — Olasılığa dönüştürülmeden önceki ham sınıf puanı.
Kaynaklar ve bölüm üniteleri
Vaka, Python kontrolü ve şema bu ders için hazırlandı. Bölümün birincil kaynakları aşağıdadır.
- Hugging Face LLM Course · 2
- Behind the pipeline
- Models
- Tokenizers
- Handling multiple sequences
- Batching inputs together (PyTorch) · 00:22
- What happens inside the pipeline function? (PyTorch)
- Instantiate a Transformers model (PyTorch)
- Tokenizers overview
- Word-based tokenizers
- Character-based tokenizers
- Subword-based tokenizers
- The tokenization pipeline