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 นี้ใช้ประโยชน์จากการโน้มน้าวใจเชิงสาเหตุและแบบขยาย การเปิดใช้งานแบบมีรั้วรอบขอบชิด การเชื่อมต่อที่เหลือ และการทำให้เป็นมาตรฐานของเลเยอร์ เพื่อสร้างแบบจำลองข้อมูลข้อความสำหรับงานสร้างอย่างมีประสิทธิภาพ
โดยการทำความเข้าใจแต่ละส่วนประกอบและบทบาทของมันในแบบจำลอง เราจึงสามารถชื่นชมว่าสถาปัตยกรรมนี้รวบรวมการพึ่งพาทั้งในระดับท้องถิ่นและระดับโลกในภาษาได้อย่างไร โดยเสนอทางเลือกที่มีประสิทธิภาพแทนแบบจำลองแบบดั้งเดิมในการประมวลผลภาษาธรรมชาติ