🤖 OmniGPT-355M-Instruct
OmniGPT-355M-Instruct, GPT-2 Medium (355M parametre) mimarisi üzerine inşa edilmiş ve Stanford Alpaca veri seti ile talimat odaklı (Instruction-Tuned) olarak ince ayar (Fine-Tuning) yapılmış yerel ve bağımsız bir dil modelidir.
Özellikle Self-Reflective RAG (Retrieval-Augmented Generation) mimarilerinde bir "Üretici (Builder/Generator)" ajan olarak çalışmak üzere optimize edilmiştir.
📌 Model Detayları
- Geliştirici: Onur Demircioğlu
- Model Tipi: Causal Language Model (Transformer Decoder)
- Mimari: GPT-2 Medium (355M)
- Bağlam Sınırı (Max Position Embeddings): 256 Token
- Eğitim Stratejisi: Supervised Fine-Tuning (SFT) - Instruction Tuning
- Kullanılan GPU: 2x NVIDIA T4 (Kaggle P100/T4 Environment)
- Dil: Temel olarak İngilizce (İlerleyen sürümlerde Knowledge Distillation ile Türkçe yeteneği artırılacaktır).
🚀 Kullanım Amacı ve Mimari Vizyon
Bu model, tek başına devasa bilgiler ezberlemesi için değil; "Verilen bilgiyi sentezleme ve talimatlara uyma" amacıyla tasarlanmıştır.
Geliştirilen Otonom Yapay Zeka Mimarisi kapsamında OmniGPT; FAISS / MiniLM tabanlı bir vektör veritabanından bağlamı (context) alarak bilgi sentezler. Self-Reflective (Kendi Kendini Denetleyen) sistemlerde bir "Üretici (Builder)" ajan olarak yüksek performansla görev yapabilecek şekilde yapılandırılmıştır.
💻 Nasıl Kullanılır?
Modeli doğrudan Hugging Face transformers kütüphanesi ile çekebilirsiniz:
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = "OnurDemircioglu/OmniGPT-355M-Instruct"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.float16,
attn_implementation="eager" # Windows CUDA cihazlar için önerilir
).to("cuda")
# Alpaca Prompt Formatı
prompt = """Below is an instruction that describes a task. Write a response that appropriately completes the request.
### Instruction:
Explain what artificial intelligence is in simple terms.
### Response:
"""
inputs = tokenizer(prompt, return_tensors="pt", truncation=True, max_length=150).to("cuda")
output_ids = model.generate(
inputs["input_ids"],
attention_mask=inputs["attention_mask"],
max_new_tokens=60,
do_sample=True,
temperature=0.7,
top_p=0.9,
repetition_penalty=1.3,
pad_token_id=tokenizer.eos_token_id
)
response = tokenizer.decode(output_ids[0], skip_special_tokens=True)
print(response)
⚠️ Sınırlamalar ve Uyarılar (Limitations)
- Token Sınırı (WPE Overflow): Modelin maksimum konum yerleştirmesi (Max Position Embeddings) 256'dır. Girdiğiniz metin (prompt) ve üretilecek kelimelerin toplamı 256'yı geçerse
CUDA device-side asserthatası alınabilir. Giriş metnini her zamanmax_length=150gibi sınırlarla (truncation_side="left") koruma altına alın. - Dil Engeli: Model şu an itibarıyla ağırlıklı olarak İngilizce verilerle eğitilmiştir. Türkçe sorularda (veya RAG bağlamlarında) anlam kaybı yaşayabilir veya İngilizce/Türkçe karışımı ("Tarzanca") cevaplar verebilir.
- Repetition Loop (Tekrara Düşme): Küçük modeller doğası gereği döngüye girmeye yatkındır. Üretim (Generation) sırasında
repetition_penalty=1.3veya üzeri değerlerin kullanılması zorunludur.
🔮 Gelecek Yol Haritası (Phase 5 - Continuous Learning)
Bu model, statik bir yapıdan ziyade Self-Improving RAG (Kendi Hatasından Öğrenen Sistem) boru hattının ilk üreticisidir. İlerleyen aşamalarda:
- Daha büyük Teacher modellerinden damıtılan (Knowledge Distillation) sentetik veri setleriyle kapasitesi artırılacaktır.
- Model, bir Data Flywheel içinde biriktirilen insan/yargıç tercihleriyle, DPO (Direct Preference Optimization) kullanılarak kendi ağırlıklarını otonom olarak güncelleyecek şekilde geliştirilmektedir.
- Downloads last month
- 2