$ pip3 install -U cnngpt
import torch
from cnngpt . main import CNNLanguageModel
# Hyperparameters
vocab_size = 5000
embedding_dim = 256
num_layers = 4
kernel_size = 3
hidden_dim = 256
max_seq_len = 100
# Initialize model
model = CNNLanguageModel (
vocab_size ,
embedding_dim ,
num_layers ,
kernel_size ,
hidden_dim ,
max_seq_len ,
)
# Dummy input (batch_size=32, sequence_length=50)
x = torch . randint (
0 , vocab_size , ( 32 , 50 )
) # Random integers as token IDs
# Forward pass
logits = model ( x ) # [batch_size, seq_len, vocab_size]
# Output shape
print ( "Logits shape:" , logits . shape )
vocab_size
: Ukuran kosakata (jumlah token unik).embedding_dim
: Dimensi embeddings.num_layers
: Jumlah lapisan konvolusional.kernel_size
: Ukuran kernel konvolusional.hidden_dim
: Dimensi representasi tersembunyi (harus cocok dengan embedding_dim
untuk koneksi sisa).max_seq_len
: Panjang urutan maksimum yang dapat ditangani model.t
tidak bergantung pada langkah waktu di masa depan.Di seluruh jaringan, kami mengelola bentuk tensor dengan cermat untuk menjaga konsistensi:
[batch_size, seq_len, embedding_dim]
[batch_size, embedding_dim, seq_len]
[batch_size, hidden_dim, seq_len]
[batch_size, seq_len, embedding_dim]
[batch_size, seq_len, vocab_size]
embedding_dim
dan hidden_dim
harus sama untuk menambahkan koneksi sisa dengan benar.[batch_size, seq_len, hidden_dim]
sebelum menerapkan LayerNorm
.max_seq_len
; pengkodean posisi diiris sesuai. Kami telah berhasil menerjemahkan algoritme terperinci ke dalam implementasi PyTorch, mengikuti setiap langkah dengan cermat dan memastikan bahwa kode tersebut selaras dengan prinsip desain yang diuraikan sebelumnya. Model bahasa berbasis CNN ini memanfaatkan konvolusi kausal dan dilatasi, aktivasi yang terjaga keamanannya, koneksi sisa, dan normalisasi lapisan untuk secara efektif memodelkan data tekstual untuk tugas-tugas pembuatan.
Dengan memahami setiap komponen dan perannya dalam model, kita dapat memahami bagaimana arsitektur ini menangkap ketergantungan lokal dan global dalam bahasa, menawarkan alternatif yang kuat terhadap model tradisional dalam pemrosesan bahasa alami.