|
|
|
|
|
--- |
|
|
tags: |
|
|
- text-generation |
|
|
- pytorch |
|
|
- llm |
|
|
- custom-tokenizer |
|
|
--- |
|
|
|
|
|
# TinyLLM - Word-Level GPT Model (Türkçe) |
|
|
|
|
|
Bu depo, Türkçe kelime düzeyinde bir GPT modelini içerir. Model, belirli bir soru-cevap formatındaki metin üzerinde eğitilmiştir. |
|
|
|
|
|
## Model Detayları |
|
|
- **Mimari**: Custom GPT (Transformer tabanlı) |
|
|
- **Tokenizasyon**: Kelime düzeyinde `WordTokenizer` sınıfı (NLTK punkt tabanlı) |
|
|
- **Dil**: Türkçe |
|
|
- **Özel Tokenlar**: {"<pad>": 0, "<unk>": 1, "<bos>": 2, "<eos>": 3} |
|
|
|
|
|
## Parametreler |
|
|
- `n_embd`: 256 |
|
|
- `n_head`: 8 |
|
|
- `n_layer`: 6 |
|
|
- `block_size`: 128 |
|
|
- `dropout`: 0.1 |
|
|
|
|
|
## Yükleme ve Kullanım |
|
|
|
|
|
Bu modeli kullanmak için model ağırlıklarını ve tokenizer dosyalarını indirmeniz gerekmektedir. `WordTokenizer` sınıfının ve model mimarisinin tanımı eğitim kodunda bulunmaktadır. |
|
|
|
|
|
```python |
|
|
# Örnek kullanım (eğitim kodundan ilgili sınıfları kopyalayınız) |
|
|
# from huggingface_hub import hf_hub_download |
|
|
# import torch.nn as nn |
|
|
# ... (WordTokenizer ve TinyLLM sınıfları buraya gelecek) ... |
|
|
|
|
|
# model_path = hf_hub_download(repo_id="syko818121/tiny-llm-word-level", filename="pytorch_model.bin") |
|
|
# word_to_id_path = hf_hub_download(repo_id="syko818121/tiny-llm-word-level", filename="tokenizer_word_to_id.json") |
|
|
# id_to_word_path = hf_hub_download(repo_id="syko818121/tiny-llm-word-level", filename="tokenizer_id_to_word.json") |
|
|
|
|
|
# with open(word_to_id_path, "r", encoding="utf-8") as f: |
|
|
# word_to_id_loaded = json.load(f) |
|
|
# with open(id_to_word_path, "r", encoding="utf-8") as f: |
|
|
# id_to_word_loaded = json.load(f) |
|
|
|
|
|
# special_tokens_loaded = {"<pad>": 0, "<unk>": 1, "<bos>": 2, "<eos>": 3} |
|
|
# tokenizer_loaded = WordTokenizer(word_to_id_loaded, id_to_word_loaded, special_tokens_loaded) |
|
|
# vocab_size_loaded = tokenizer_loaded.vocab_size |
|
|
|
|
|
# model_loaded = TinyLLM(vocab_size_loaded, special_tokens_loaded) |
|
|
# model_loaded.load_state_dict(torch.load(model_path, map_location='cpu')) |
|
|
# model_loaded.eval() |
|
|
|
|
|
# # Metin üretimi |
|
|
# start_text = "Soru: Neden ağaç dikmeliyiz?" |
|
|
# input_tokens = tokenizer_loaded.encode(start_text) |
|
|
# input_tokens = [tokenizer_loaded.special_tokens['<bos>']] + input_tokens |
|
|
# context = torch.tensor([input_tokens], dtype=torch.long) |
|
|
|
|
|
# generated_tokens = model_loaded.generate(context, max_new_tokens=50)[0].tolist() |
|
|
# decoded_response = tokenizer_loaded.decode(generated_tokens[len(input_tokens):]) |
|
|
|
|
|
# print(f"Üretilen Metin: cevap : bağlar . soru : duyar artırmayı sağlar ve bardağı yere düşürürsen ne işe yarar ? cevap : gelecekteki alt satıra vermemelisin . soru : vücudundaki en sert bir yalan söylememeliyiz ? cevap : hediye amacı nedir ? cevap : itfaiyeyi ( sıvının içinde erir ve düşüncelerini anlamaya çalışmaktır") |
|
|
``` |
|
|
|