Arkadaşlar Şuanlık Çok İstek Geldi Bende Prototip Kodunu Paylaşmak İstedim
İlk Olarak Kaggle.com’u Açıyoruz Notebook Oluştura Tıklıyoruz
Ayarlardan Acceleactor’ı 2xT4 Gpu Yapıyoruz Ve yeni bi hücre açıp
Bu Kodu Yapıştırıyoruz (prototip) Yarın Detaylı Ve Gelişmiş Geliyo
# 1. Gerekli kütüphaneleri yükleyin
!pip install -q -U transformers accelerate bitsandbytes torch gradio
import torch
import gradio as gr
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
# Model kimliği (İstediğiniz 14B modelle değiştirebilirsiniz)
model_id = "Qwen/Qwen2.5-14B-Instruct"
print("Model yükleniyor, lütfen bekleyin (yaklaşık 1-2 dakika sürebilir)...")
# 4-bit Kuantizasyon Yapılandırması (Bellek optimizasyonu için)
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.float16,
bnb_4bit_use_double_quant=True
)
# Tokenizer yükleme
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
# Modelin 2x T4 GPU üzerine 4-bit olarak yüklenmesi (device_map="auto" otomatik bölüştürür)
model = AutoModelForCausalLM.from_pretrained(
model_id,
quantization_config=bnb_config,
device_map="auto",
torch_dtype=torch.float16,
trust_remote_code=True
)
print("Model başarıyla yüklendi ve GPU'lara dağıtıldı!")
# GPU Bellek Durumu Kontrolü
for i in range(torch.cuda.device_count()):
mem = torch.cuda.memory_allocated(i) / (1024**3)
print(f"GPU {i} ({torch.cuda.get_device_name(i)}): {mem:.2f} GB kullanımda.")
# Gradio Sohbet Fonksiyonu
def predict(message, history):
# Sohbet geçmişini Hugging Face formatına dönüştürme
messages = []
for human, assistant in history:
messages.append({"role": "user", "content": human})
messages.append({"role": "assistant", "content": assistant})
messages.append({"role": "user", "content": message})
# Chat template uygulama
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to("cuda")
with torch.no_grad():
generated_ids = model.generate(
**model_inputs,
max_new_tokens=1024,
do_sample=True,
temperature=0.7,
top_p=0.9
)
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
return response
# Gradio Arayüzünü Oluşturma ve Başlatma
demo = gr.ChatInterface(
fn=predict,
title="14B Yapay Zeka Asistanı (2x T4 GPU - 4-bit)",
description="Kaggle üzerinde 2 adet T4 GPU gücüyle çalışan 14 milyar parametreli LLM modeli.",
theme="soft"
)
if __name__ == "__main__":
demo.launch(share=True, debug=True)
İlk Olarak Kaggle.com’u Açıyoruz Notebook Oluştura Tıklıyoruz
Ayarlardan Acceleactor’ı 2xT4 Gpu Yapıyoruz Ve yeni bi hücre açıp
Bu Kodu Yapıştırıyoruz (prototip) Yarın Detaylı Ve Gelişmiş Geliyo
# 1. Gerekli kütüphaneleri yükleyin
!pip install -q -U transformers accelerate bitsandbytes torch gradio
import torch
import gradio as gr
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
# Model kimliği (İstediğiniz 14B modelle değiştirebilirsiniz)
model_id = "Qwen/Qwen2.5-14B-Instruct"
print("Model yükleniyor, lütfen bekleyin (yaklaşık 1-2 dakika sürebilir)...")
# 4-bit Kuantizasyon Yapılandırması (Bellek optimizasyonu için)
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.float16,
bnb_4bit_use_double_quant=True
)
# Tokenizer yükleme
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
# Modelin 2x T4 GPU üzerine 4-bit olarak yüklenmesi (device_map="auto" otomatik bölüştürür)
model = AutoModelForCausalLM.from_pretrained(
model_id,
quantization_config=bnb_config,
device_map="auto",
torch_dtype=torch.float16,
trust_remote_code=True
)
print("Model başarıyla yüklendi ve GPU'lara dağıtıldı!")
# GPU Bellek Durumu Kontrolü
for i in range(torch.cuda.device_count()):
mem = torch.cuda.memory_allocated(i) / (1024**3)
print(f"GPU {i} ({torch.cuda.get_device_name(i)}): {mem:.2f} GB kullanımda.")
# Gradio Sohbet Fonksiyonu
def predict(message, history):
# Sohbet geçmişini Hugging Face formatına dönüştürme
messages = []
for human, assistant in history:
messages.append({"role": "user", "content": human})
messages.append({"role": "assistant", "content": assistant})
messages.append({"role": "user", "content": message})
# Chat template uygulama
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to("cuda")
with torch.no_grad():
generated_ids = model.generate(
**model_inputs,
max_new_tokens=1024,
do_sample=True,
temperature=0.7,
top_p=0.9
)
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
return response
# Gradio Arayüzünü Oluşturma ve Başlatma
demo = gr.ChatInterface(
fn=predict,
title="14B Yapay Zeka Asistanı (2x T4 GPU - 4-bit)",
description="Kaggle üzerinde 2 adet T4 GPU gücüyle çalışan 14 milyar parametreli LLM modeli.",
theme="soft"
)
if __name__ == "__main__":
demo.launch(share=True, debug=True)
