57 lines
2.5 KiB
Markdown
57 lines
2.5 KiB
Markdown
|
|
---
|
|||
|
|
library_name: transformers
|
|||
|
|
tags:
|
|||
|
|
- qwen
|
|||
|
|
- turkish
|
|||
|
|
- rag
|
|||
|
|
- reasoning
|
|||
|
|
- vllm
|
|||
|
|
- fp16
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# BU-BİP: Bursa Uludağ Üniversitesi Bilgi Asistanı (FP16 / vLLM Versiyonu)
|
|||
|
|
|
|||
|
|
Bu model, Qwen3-14B mimarisi temel alınarak, Bursa Uludağ Üniversitesi (BU-BİP) bilgi asistanı olarak görev yapması için ince ayar (fine-tune) işleminden geçirilmiştir. Model, maksimum doğruluk ve performans sağlaması amacıyla **tam FP16 (Full FP16)** formatında eğitilmiş ve ağırlıkları bu formatta korunmuştur. Özellikle sunucu ortamlarında ve üretim (production) aşamasında yüksek verimli çıkarım (high-throughput inference) yapabilmesi için **vLLM** altyapısı ile tam uyumlu çalışacak şekilde tasarlanmıştır.
|
|||
|
|
|
|||
|
|
## Eğitim Süreci
|
|||
|
|
Modelin eğitimi iki temel aşamadan oluşmaktadır:
|
|||
|
|
* **SFT (Supervised Fine-Tuning):** Model, "Düşünce Zinciri" (Chain-of-Thought) yaklaşımıyla `cot_dataset.jsonl` üzerinden eğitilmiştir.
|
|||
|
|
* **DPO (Direct Preference Optimization):** SFT aşamasının ardından, yanıt kalitesini ve bağlama sadakati artırmak için `dpo_dataset.jsonl` kullanılarak tercih optimizasyonu uygulanmıştır.
|
|||
|
|
|
|||
|
|
## Çıkarım ve Düşünce Yeteneği
|
|||
|
|
Model, doğrudan bir çıktı vermek yerine önce bir mantık yürütme süreci işletir. Bu düşünce adımları `<think> ... </think>` etiketleri arasında üretilir ve sonrasında resmî belgelere dayalı, uydurmadan uzak nihai cevap sunulur.
|
|||
|
|
|
|||
|
|
## vLLM ile Kullanım
|
|||
|
|
|
|||
|
|
Modeli yüksek hızda sunucu olarak ayağa kaldırmak veya Python kodunuzda doğrudan kullanmak için vLLM kütüphanesini tercih edebilirsiniz.
|
|||
|
|
|
|||
|
|
### 1. API Sunucusu Olarak Başlatma (CLI)
|
|||
|
|
Modeli OpenAI uyumlu bir API sunucusu olarak başlatmak için aşağıdaki komutu kullanabilirsiniz:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
python -m vllm.entrypoints.openai.api_server \
|
|||
|
|
--model nypgd/bubip-qwen3-14b \
|
|||
|
|
--dtype float16 \
|
|||
|
|
--max-model-len 4096 \
|
|||
|
|
--gpu-memory-utilization 0.9
|
|||
|
|
|
|||
|
|
|
|||
|
|
from vllm import LLM, SamplingParams
|
|||
|
|
|
|||
|
|
# Modeli yükle
|
|||
|
|
llm = LLM(model="nypgd/bubip-qwen3-14b", dtype="float16")
|
|||
|
|
|
|||
|
|
# Örnekleme parametrelerini ayarla
|
|||
|
|
sampling_params = SamplingParams(temperature=0.7, top_p=0.9, max_tokens=1024)
|
|||
|
|
|
|||
|
|
# Sisteme gönderilecek prompt (Düşünce zinciri tetiklemesi ile)
|
|||
|
|
prompt = "Bursa Uludağ Üniversitesi kütüphane çalışma saatleri nelerdir?"
|
|||
|
|
|
|||
|
|
# Çıkarım yap
|
|||
|
|
outputs = llm.generate([prompt], sampling_params)
|
|||
|
|
|
|||
|
|
# Sonucu yazdır
|
|||
|
|
for output in outputs:
|
|||
|
|
prompt = output.prompt
|
|||
|
|
generated_text = output.outputs[0].text
|
|||
|
|
print(f"Soru: {prompt}\nCevap: {generated_text}")
|