CNNGPT
1.0.0
$ 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
: حجم المفردات (عدد الرموز الفريدة).embedding_dim
: أبعاد التضمينات.num_layers
: عدد الطبقات التلافيفية.kernel_size
: حجم النوى التلافيفية.hidden_dim
: أبعاد التمثيلات المخفية (يجب أن تتطابق مع embedding_dim
للاتصالات المتبقية).max_seq_len
: الحد الأقصى لطول التسلسل الذي يمكن للنموذج التعامل معه.t
لا يعتمد على الخطوات الزمنية المستقبلية.في جميع أنحاء الشبكة، نقوم بإدارة أشكال الموتر بعناية للحفاظ على الاتساق:
[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
و hidden_dim
متساويين لإضافة الاتصال المتبقي بشكل صحيح.[batch_size, seq_len, hidden_dim]
قبل تطبيق LayerNorm
.max_seq_len
; يتم تقطيع الترميزات الموضعية وفقًا لذلك. لقد نجحنا في ترجمة الخوارزمية التفصيلية إلى تطبيق PyTorch، مع اتباع كل خطوة بعناية والتأكد من توافق التعليمات البرمجية مع مبادئ التصميم الموضحة مسبقًا. يعمل نموذج اللغة المستند إلى CNN على تعزيز التلافيف السببية والموسعة، والتنشيط المسور، والاتصالات المتبقية، وتطبيع الطبقة لنمذجة البيانات النصية بشكل فعال لمهام الإنشاء.
ومن خلال فهم كل مكون ودوره في النموذج، يمكننا أن نقدر كيف تلتقط هذه البنية التبعيات المحلية والعالمية في اللغة، مما يوفر بديلاً قويًا للنماذج التقليدية في معالجة اللغة الطبيعية.