Qwen3-1.7B Otomobil Yedek Parça LoRA Modeli

Türk otomobil sektörü için özel olarak fine-tune edilmiş Qwen3-1.7B LoRA modeli. Bu model, otomobil yedek parça satışı, teknik destek ve müşteri hizmetleri senaryolarında kullanılmak üzere geliştirilmiştir.

📋 İçindekiler


🤖 Model Özeti

Özellik Değer
Base Model unsloth/Qwen3-1.7B-unsloth-bnb-4bit
Fine-tuning Yöntemi LoRA + Unsloth
Eğitim Süresi ~9 saat
Epoch Sayısı 2
Final Loss 0.4931
GPU 1x NVIDIA L40S
Dil Türkçe

✨ Özellikler

Bu model aşağıdaki yeteneklere sahiptir:

  • 🔍 Ürün Arama: OEM numarası, marka, model ve özelliklere göre yedek parça sorgulama
  • 💰 Fiyat Bilgisi: Ürün fiyatları hakkında güncel bilgi sağlama
  • 🔧 Teknik Destek: Arıza tespiti ve tamir önerileri
  • 📍 Yer Tespiti: Parçaların araç üzerindeki konumunu belirtme
  • 🔄 Uyumluluk Kontrolü: Parçanın araca uygunluğunu doğrulama
  • 🛠️ Function Calling: Tool kullanarak ürün araması yapma ve sonuçları yorumlama
  • 💬 Çoklu Turlu Konuşma: Önceki mesajları hatırlayan devam eden sohbet desteği
  • 🧠 Reasoning: Adım adım akıl yürütme ve karmaşık soruları analiz etme

📊 Eğitim Detayları

Eğitim Hiperparametreleri

# Model Konfigürasyonu
MAX_SEQ_LENGTH = 1024
LOAD_IN_4BIT = True

# LoRA Parametreleri
LORA_R = 8
LORA_ALPHA = 16
LORA_DROPOUT = 0.05

# Training Parametreleri
BATCH_SIZE = 1
GRAD_ACCUM = 4
NUM_EPOCHS = 2
LEARNING_RATE = 2e-5
WARMUP_STEPS = 100

Eğitim İstatistikleri

  • Toplam Eğitim Süresi: ~9 saat
  • Kullanılan GPU: 1x NVIDIA L40S
  • Son Loss Değeri: 0.4931
  • Effective Batch Size: 16 (4 gradyan biriktirme × 1 batch)

📚 Veri Seti

Model, özenle hazırlanmış sentetik bir veri seti üzerinde eğitilmiştir:

Veri Seti Bileşenleri

Veri Tipi Adet Açıklama
Reasoning QA ~43.000 <think> parametreleri içeren, adım adım akıl yürütme gerektiren soru-cevap çiftleri
Parça Tanımları +7.000 Yedek parça açıklamaları, teknik özellikler ve kullanım alanları
Temel QA - <think> parametresi içermeyen, doğrudan cevap gerektiren sorular
Function Calling 1.457 Uzun konuşma bağlamı içeren, tool çağrısı gerektiren senaryolar

Veri Seti Kapsamı

Veri seti aşağıdaki senaryoları kapsar:

  • Ürün Sorgulama: "BMW 320d 5W30 motor yağı fiyatı nedir?"
  • Uyumluluk Kontrolü: "Opel Astra 2015 modelime hangi fren balatası uygun?"
  • Teknik Destek: "Volkswagen Golf 1.6 TDI arıza lambası yandı, ne yapmalıyım?"
  • Konum Bilgisi: "Mazda 3'ün radyatörü neresinde?"
  • Alternatif Marka: "Peugeot 3008 için orjinal alternatifi nedir?"
  • Fiyat Karşılaştırma: "Ford Focus için en uygun fiyatlı kampanalı fren diskı hangisi?"

🚀 Kullanım

Kurulum

# Gerekli kütüphaneleri yükleyin
pip install torch transformers peft unsloth accelerate sentencepiece

Model Yükleme

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer
from peft import PeftModel

# Base model ve tokenizer yükleme
base_model_name = "unsloth/Qwen3-1.7B-unsloth-bnb-4bit"
model = AutoModelForCausalLM.from_pretrained(
    base_model_name,
    device_map="cuda",
    torch_dtype=torch.float16,
    trust_remote_code=True
)

# LoRA adapter'ını yükleme
model = PeftModel.from_pretrained(model, "./qwen3-1.7b-otomobil-yedekparca-lora")

tokenizer = AutoTokenizer.from_pretrained(
    base_model_name,
    trust_remote_code=True
)

if tokenizer.pad_token is None:
    tokenizer.pad_token = tokenizer.eos_token

model.eval()

Temel Sorgulama

# Tekli sorgu örneği
system_prompt = """Sen otomobil yedek parçaları konusunda uzman bir asistansın.\nSorulara net ve kısa cevap ver.\n\nKullanabileceğin araçlar:\n- search_products: Ürün, fiyat, OEM, marka ve güncel bilgiler için\nBir yanıtta en fazla bir araç çağırabilirsin.\nGenel ve teknik sorularda araç kullanma."""

messages = [
    {"role": "system", "content": system_prompt},
    {"role": "user", "content": "BMW 320d 2019 model aracım için hangi motor yağı önerirsin?"}
]

text_input = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
)

inputs = tokenizer([text_input], return_tensors="pt").to("cuda")

with torch.no_grad():
    generated_ids = model.generate(
        **inputs,
        max_new_tokens=512,
        temperature=0.7,
        top_p=0.9,
        do_sample=True
    )

output = tokenizer.decode(generated_ids[0], skip_special_tokens=True)
print(output)

💻 Inference Örnekleri

Detaylı çalıştırma örneği için baglam.py dosyasına bakabilirsiniz.

Interaktif Mod

python baglam.py

Örnek Konuşmalar

Örnek 1: Ürün Sorgulama

Kullanıcı: Mercedes C180 2018 için orijinal akü önerir misin?
Model:  Mercedes-Benz Orijinal Akü (12V 80Ah) - Önerilen ürün:
        Marka: Mercedes-Benz (Varta)
        Voltaj: 12V
        Kapasite: 80Ah
        CCA: 740A
        Boyutlar: 315x175x190mm
        Fiyat: ₺4.500
        ...

Örnek 2: Function Calling

Kullanıcı: Ford Fiesta 2017 model aracım için buji fiyatı nedir?
Model: (Tool çağrısı yapar)
<tool_call>{"name":"search_products","arguments":{"query":"Ford Fiesta 2017 buji"}}</tool_call>
(Veritabanından sonuç alınır)
Model: Ford Fiesta 2017 için önerilen bujiler:
       1. NGK Iridium IX - ₺450 (4'lü set)
       2. Bosch Platinum - ₺380 (4'lü set)
       3. Denso Iridium - ₺420 (4'lü set)
       ...

Örnek 3: Uyumluluk Kontrolü

Kullanıcı: Peugeot 308 2015 model arabama Opel marka fren balatası takılır mı?
Model: Hayır, Opel fren balatası Peugeot 308 2015 modele doğrudan uymaz. 
       Bunun nedenleri:
       1. Fren kaliperleri farklı boyutlarda
       2. Disk kalınlıkları uyumsuz
       3. Sensör konumları farklı
       
       Peugeot 308 2015 için önerilen orijinal fren balatası:
       - Marka: Peugeot (Bosch)
       - Ön Aks: ₺1.850
       - Arka Aks: ₺1.450
       ...

📈 Performans

Eğitim Grafiği

Epoch 1: Loss: 0.8234
Epoch 2: Loss: 0.4931  ✓ (Final)

Benchmark Sonuçları

Model, aşağıdaki senaryolarda test edilmiştir:

Senaryo Başarı Oranı
Ürün Sorgulama İyi
Fiyat Bilgisi İyi
Uyumluluk Kontrolü Kötü
Teknik Destek Kötü
Function Calling İyi
Genel Sohbet Çok kötü

🔧 Teknik Gereksinimler

  • GPU: Minimum 4GB VRAM (8GB önerilir)
  • RAM: Minimum 16GB sistem belleği
  • Python: 3.8+
  • CUDA: 11.0+

📝 Lisans

Bu model, Apache 2.0 Lisansı altında yayınlanmıştır.

Base model olan Qwen3-1.7B'ın lisans koşullarına tabidir.


🙏 Teşekkürler

  • Unsloth - Eğitim optimizasyonları için
  • Qwen - Base model için
  • PEFT - LoRA implementasyonu için

📞 İletişim

Herhangi bir sorunuz veya öneriniz için:


Not: Bu model, otomotiv yedek parça sektörü için eğitilmiş olup genel amaçlı kullanım için optimize edilmemiştir. Ticari kullanım için kendi testlerinizi yapmanızı öneririz. Bu deneysel eğitimdeki temel amaç qwen3 1.7 parametreli modelde E-Ticaret sitelerinde kullanım için yeterli olup olmadığını görebilmekti. 4bit varyasyonu pek sağlıklı bir tercih olmasa da sıkıştırılmamış modeldeki eğitim için fikir verebileceğini düşündüğümüzden tercih edip adaptörü ana model üzerinde de test ettik. Sentetik veriseti hazırlığında minimax m2.1, qwen3 max thinking, glm 4.7 gibi modeller kullanılmıştır ve thinking yapıları kopyalanmak yerine adım-adım mantık zinciri de sentetik olarak sonradan üretilmiştir. Kullanıcı niyeti analiz etme, sorudan alınması gereken cevap analizi de yine düşünce sürecinde geçirilmiştir. Verisetini ilerleyen zamanlarda yayınlamayı planlıyoruz.


Model HuggingFace'de yayınlanmıştır: aiproje/qwen3-1.7b-otomobil-yedekparca-lora

Downloads last month
5
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for aiprojecom/qwen3-1.7b-otomobil-yedekparca-lora

Finetuned
Qwen/Qwen3-1.7B
Adapter
(17)
this model