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 использует причинные и расширенные свертки, закрытые активации, остаточные связи и нормализацию слоев для эффективного моделирования текстовых данных для задач генерации.
Понимая каждый компонент и его роль в модели, мы можем оценить, как эта архитектура отражает как локальные, так и глобальные зависимости языка, предлагая мощную альтернативу традиционным моделям обработки естественного языка.