Merhaba hoşgeldin umarım kalıcı olursun. Bu Forum Yeni Gelenler İçin Kıymetli Bir Kütüphaneden ve aileden ibarettir.
Teşekürler Ve Kodu Getirdim Umarım Yardımcı olur
# 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)