Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 19 additions & 19 deletions Genel-1/cross-attn_llm.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@
" div_term = torch.exp(torch.arange(0, d_model, 2).float() * (-math.log(10000.0) / d_model)) # Divisor term\n",
" pe[:, 0::2] = torch.sin(position * div_term) # Sine for even indices\n",
" pe[:, 1::2] = torch.cos(position * div_term) # Cosine for odd indices\n",
" pe = pe.unsqueeze(0) # Batch boyutu ekle\n",
" pe = pe.unsqueeze(0) # Add batch dimension\n",
" self.register_buffer('pe', pe) # Register the positional encoding as a buffer\n",
"\n",
" def forward(self, x):\n",
Expand All @@ -74,7 +74,7 @@
" def __init__(self, features: int, dropout: float) -> None:\n",
" super().__init__()\n",
" self.dropout = nn.Dropout(dropout) # Dropout layer\n",
" self.norm = LayerNormalization(features) # Katman normalizasyonu\n",
" self.norm = LayerNormalization(features) # Layer normalization\n",
"\n",
" def forward(self, x, sublayer):\n",
" # Residual connection: x + dropout(sublayer(norm(x)))\n",
Expand All @@ -100,10 +100,10 @@
" # Compute attention scores: (Q * K^T) / sqrt(d_k)\n",
" attention_scores = (query @ key.transpose(-2, -1)) / math.sqrt(d_k)\n",
" if mask is not None:\n",
" attention_scores.masked_fill_(mask == 0, -1e9) # Maskeli yerleri -∞ yap\n",
" attention_scores = attention_scores.softmax(dim=-1) # Softmax uygula\n",
" attention_scores.masked_fill_(mask == 0, -1e9) # Set masked positions to -∞\n",
" attention_scores = attention_scores.softmax(dim=-1) # Apply softmax\n",
" if dropout is not None:\n",
" attention_scores = dropout(attention_scores) # Dropout uygula\n",
" attention_scores = dropout(attention_scores) # Apply dropout\n",
" return (attention_scores @ value), attention_scores # Output and attention scores\n",
"\n",
" def forward(self, q, k, v, mask):\n",
Expand Down Expand Up @@ -140,13 +140,13 @@
" def __init__(self, features: int, layers: nn.ModuleList) -> None:\n",
" super().__init__()\n",
" self.layers = layers # Encoder blocks\n",
" self.norm = LayerNormalization(features) # Son katman normalizasyonu\n",
" self.norm = LayerNormalization(features) # Final layer normalization\n",
"\n",
" def forward(self, x, mask):\n",
" # Apply all encoder blocks\n",
" for layer in self.layers:\n",
" x = layer(x, mask)\n",
" return self.norm(x) # Son katman normalizasyonu\n",
" return self.norm(x) # Final layer normalization\n",
"\n",
"\n",
"class DecoderBlock(nn.Module):\n",
Expand All @@ -171,13 +171,13 @@
" def __init__(self, features: int, layers: nn.ModuleList) -> None:\n",
" super().__init__()\n",
" self.layers = layers # Decoder blocks\n",
" self.norm = LayerNormalization(features) # Son katman normalizasyonu\n",
" self.norm = LayerNormalization(features) # Final layer normalization\n",
"\n",
" def forward(self, x, encoder_output, src_mask, tgt_mask):\n",
" # Apply all decoder blocks\n",
" for layer in self.layers:\n",
" x = layer(x, encoder_output, src_mask, tgt_mask)\n",
" return self.norm(x) # Son katman normalizasyonu\n",
" return self.norm(x) # Final layer normalization\n",
"\n",
"\n",
"class ProjectionLayer(nn.Module):\n",
Expand All @@ -197,20 +197,20 @@
" self.decoder = decoder # Decoder layer\n",
" self.src_embed = src_embed # Source embedding layer\n",
" self.tgt_embed = tgt_embed # Target embedding layer\n",
" self.src_pos = src_pos # Kaynak konumsal kodlama\n",
" self.tgt_pos = tgt_pos # Hedef konumsal kodlama\n",
" self.src_pos = src_pos # Source positional encoding\n",
" self.tgt_pos = tgt_pos # Target positional encoding\n",
" self.projection_layer = projection_layer # Projection layer\n",
"\n",
" def encode(self, src, src_mask):\n",
" # Kaynak diziyi kodla\n",
" # Encode the source sequence\n",
" src = self.src_embed(src) # Embedding layer\n",
" src = self.src_pos(src) # Konumsal kodlama\n",
" src = self.src_pos(src) # Positional encoding\n",
" return self.encoder(src, src_mask) # Encoder layer\n",
"\n",
" def decode(self, encoder_output: torch.Tensor, src_mask: torch.Tensor, tgt: torch.Tensor, tgt_mask: torch.Tensor):\n",
" # Decode the target sequence\n",
" tgt = self.tgt_embed(tgt) # Embedding layer\n",
" tgt = self.tgt_pos(tgt) # Konumsal kodlama\n",
" tgt = self.tgt_pos(tgt) # Positional encoding\n",
" return self.decoder(tgt, encoder_output, src_mask, tgt_mask) # Decoder layer\n",
"\n",
" def project(self, x):\n",
Expand All @@ -224,8 +224,8 @@
" tgt_embed = InputEmbeddings(d_model, tgt_vocab_size) # Target embedding\n",
"\n",
" # Build the positional encoding layers\n",
" src_pos = PositionalEncoding(d_model, src_seq_len, dropout) # Kaynak konumsal kodlama\n",
" tgt_pos = PositionalEncoding(d_model, tgt_seq_len, dropout) # Hedef konumsal kodlama\n",
" src_pos = PositionalEncoding(d_model, src_seq_len, dropout) # Source positional encoding\n",
" tgt_pos = PositionalEncoding(d_model, tgt_seq_len, dropout) # Target positional encoding\n",
"\n",
" # Build the encoder blocks\n",
" encoder_blocks = []\n",
Expand Down Expand Up @@ -379,15 +379,15 @@
" print(f\"Train loader sample count: {len(train_loader)}, Validation loader sample count: {len(valid_loader)}\")\n",
" return train_loader, valid_loader, tokenizer.get_vocab_size()\n",
"\n",
"# Transformer Modeli\n",
"# Transformer Model\n",
"def build_transformer(src_vocab_size, tgt_vocab_size, src_seq_len, tgt_seq_len, d_model, N, h, dropout, d_ff):\n",
" print(\"Building the Transformer model...\")\n",
" # Embedding layers\n",
" src_embed = InputEmbeddings(d_model, src_vocab_size)\n",
" tgt_embed = InputEmbeddings(d_model, tgt_vocab_size)\n",
" print(\"Embedding layers created.\")\n",
"\n",
" # Konumsal kodlama\n",
" # Positional encoding\n",
" src_pos = PositionalEncoding(d_model, src_seq_len, dropout)\n",
" tgt_pos = PositionalEncoding(d_model, tgt_seq_len, dropout)\n",
" print(\"Positional encoding layers created.\")\n",
Expand Down Expand Up @@ -422,7 +422,7 @@
" projection_layer = ProjectionLayer(d_model, tgt_vocab_size)\n",
" print(\"Projection layer created.\")\n",
"\n",
" # Transformer modeli\n",
" # Transformer model\n",
" transformer = Transformer(\n",
" encoder=encoder,\n",
" decoder=decoder,\n",
Expand Down
4 changes: 2 additions & 2 deletions Genel-1/moe.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -309,15 +309,15 @@
"import torch\n",
"from torch.nn.utils.rnn import pad_sequence\n",
"\n",
"# Hiperparametreler\n",
"# Hyperparameters\n",
"embed_dim = 16\n",
"num_heads = 2\n",
"ff_hidden_dim = 32\n",
"num_experts = 4\n",
"num_epochs = 10\n",
"batch_size = 2\n",
"\n",
"# Model, Loss ve Optimizasyon\n",
"# Model, Loss, and Optimization\n",
"model = TransformerWithMoE(vocab_size, embed_dim, num_heads, ff_hidden_dim, num_experts)\n",
"criterion = nn.CrossEntropyLoss()\n",
"optimizer = optim.Adam(model.parameters(), lr=0.001)\n",
Expand Down
8 changes: 4 additions & 4 deletions Genel-3/DAPO.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@
" \"\"\"\n",
" if length <= max_length:\n",
" return base_reward\n",
" # Sigmoid fonksiyon ile ceza: -1 + 2/(1+exp(-steepness*(length-max_length)))\n",
" # Sigmoid function penalty: -1 + 2/(1+exp(-steepness*(length-max_length)))\n",
" penalty = -1 + 2 / (1 + math.exp(-steepness * (length - max_length)))\n",
" return base_reward + penalty\n",
"\n",
Expand Down Expand Up @@ -176,15 +176,15 @@
"from torch.optim import AdamW\n",
"from datasets import load_dataset\n",
"\n",
"# Model ve Tokenizer\n",
"# Model and Tokenizer\n",
"model_name = \"gpt2\"\n",
"model = GPT2LMHeadModel.from_pretrained(model_name)\n",
"tokenizer = GPT2TokenizerFast.from_pretrained(model_name)\n",
"\n",
"# Define the PAD token\n",
"tokenizer.pad_token = tokenizer.eos_token # Use the EOS token for padding\n",
"\n",
"# Dataset Loadme ve Tokenize Etme\n",
"# Load and tokenize the dataset\n",
"dataset = load_dataset(\"wikitext\", \"wikitext-2-raw-v1\", split=\"train\")\n",
"dataset = dataset.select(range(2000)) # Take a small subset\n",
"\n",
Expand All @@ -198,7 +198,7 @@
"data_collator = DataCollatorForLanguageModeling(tokenizer=tokenizer, mlm=False)\n",
"dataloader = DataLoader(tokenized_dataset, batch_size=4, shuffle=True, collate_fn=data_collator)\n",
"\n",
"# Training Parametreleri\n",
"# Training parameters\n",
"epochs = 3\n",
"optimizer = AdamW(model.parameters(), lr=5e-5)\n",
"num_training_steps = epochs * len(dataloader)\n",
Expand Down
8 changes: 4 additions & 4 deletions Genel-3/SmolVLM-Stratch.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@
" Compresses a patch into the specified number of tokens.\n",
" \n",
" Args:\n",
" patch (np.array): 512x512x3 boyutunda yama.\n",
" patch (np.array): 512x512x3-sized patch.\n",
" num_tokens (int): Number of tokens to generate (default 64).\n",
" \n",
" Returns:\n",
Expand Down Expand Up @@ -233,11 +233,11 @@
" patches.append(patch)\n",
" return torch.stack(patches)\n",
"\n",
"# 2. SmolVLM benzeri model (SigLIP + Llama)\n",
"# 2. SmolVLM-like model (SigLIP + Llama)\n",
"class SmolVLM(nn.Module):\n",
" def __init__(self, vision_model_name=\"google/siglip-base-patch16-224\", language_model_name=\"meta-llama/Llama-2-7b-hf\"):\n",
" super(SmolVLM, self).__init__()\n",
" # SigLIP vizyon modeli\n",
" # SigLIP vision model\n",
" self.vision_model = SiglipVisionModel.from_pretrained(vision_model_name)\n",
" self.processor = SiglipProcessor.from_pretrained(vision_model_name)\n",
" \n",
Expand Down Expand Up @@ -265,7 +265,7 @@
" vision_outputs = self.vision_model(**inputs)\n",
" vision_tokens = vision_outputs.last_hidden_state # [num_patches, seq_len, hidden_size]\n",
" \n",
" # Projeksiyon ile dil modeline uyarla\n",
" # Align with the language model via projection\n",
" vision_tokens = self.proj(vision_tokens) # [num_patches, seq_len, llama_hidden_size]\n",
" \n",
" # Combine the patches and add <patch_sep>\n",
Expand Down
Loading
Loading