disket.net Beta
Konu Listesine Dön

Yerel LLM'de (Ollama) Türkçe Dil Desteği Nasıl Geliştirilir?

Yapay Zeka Araçları Açılış: 08.08.2026 01:59 17 Görüntülenme
Merhaba dostlar, uzun zamandır forumu takip ediyorum, ilk konumu açıyorum. Son zamanlarda kendi sunucumda Ollama ile yerel bir LLM (Llama 3 8B) çalıştırıyorum. İngilizce çıktılar çok iyi ama Türkçe sorduğumda cevaplar bazen gramer olarak bozuk, bazen de konudan sapıyor. Özellikle teknik konularda Türkçe cevaplar yetersiz kalıyor. Fine-tuning için elimde birkaç bin Türkçe cümle var ama bu veriyi nasıl formatlayacağım, hangi yöntemi kullanacağım (LoRA vs tam fine-tune) konusunda kafam karışık. Ayrıca sistem prompt'u ile mi yoksa başka bir yöntemle mi bu sorunu çözebilirim? Bu konuda deneyimi olan var mı? Şimdiden teşekkürler.

Cevaplar (4)

Merhaba cepmo, hoş geldin! Öncelikle belirteyim, Ollama'da Türkçe desteği genelde modelin tokenizer'ının zayıf olmasından kaynaklanır. Llama 3 8B aslında 128K tokenizer ile geliyor ve Türkçe karakterleri içeriyor, ama eğitim verisindeki Türkçe oranı düşük olduğu için çıktılar vasat olabiliyor. En pratik çözüm: sistem prompt'una Türkçe yazma talimatı eklemek. Örneğin: 'Sen Türkçe konuşan bir asistansın. Tüm cevaplarını Türkçe ver, dil bilgisi kurallarına dikkat et.' Bu işe yaramazsa, fine-tuning en iyi yöntem. Ama veri setini doğru formatlaman lazım. Ollama'da GGUF formatında model kullanıyorsan, fine-tune için önce modeli HuggingFace formatında indirip LoRA ile eğitip tekrar GGUF'a çevirmen gerek. LoRA (Low-Rank Adaptation) bu iş için ideal çünkü düşük VRAM ile bile çalışıyor. Benzer bir projede ben 4GB VRAM ile 8B modeli LoRA ile fine-tune ettim, sonuçlar iyiydi. Veri formatı olarak şu yapıyı öneririm:

{"instruction": "...", "input": "...", "output": "..."}

Bunu JSONL olarak kaydet. Eğitim için HuggingFace'in TRL kütüphanesini kullanabilirsin. Sonra modeli GGUF'a çevirip Ollama'ya import edersin. Ama önce prompt'u dene, belki yeterli olur.


microcoder42 yazdı:

Ama önce prompt'u dene, belki yeterli olur.



Kesinlikle katılıyorum. Ben de Llama 3 8B'yi Ollama üzerinden kullanıyorum ve sistem prompt'una şunu ekledim: "Dil bilgisi kurallarına uygun, doğal ve akıcı Türkçe cevap ver. Resmi olmayan bir üslup kullan." Bu bile büyük fark yarattı. Ancak, eğer hala tatmin olmuyorsan, fine-tuning şart. Benim eklemek istediğim bir nokta: veri setini oluştururken Türkçe'ye özgü deyimleri ve teknik terimlerin karşılıklarını da ekle. Mesela 'fine-tuning' yerine 'ince ayar' gibi. Ayrıca, eğitim sırasında veri setinin %10'unu doğrulama için ayır, overfitting'i önlemek için. LoRA kullanırken rank değerini 16, alpha değerini 32 seçebilirsin. Bu değerler genelde iyi sonuç verir. Son olarak, eğitim sonrası modeli GGUF'a çevirirken quantization seviyesini Q4_K_M olarak seç, kalite kaybı minimal olur.
Beyler, bu konuda bir de farklı bir yaklaşım önerebilir miyim? Eğer fine-tuning işi çok karmaşık geliyorsa, bir de 'context' yöntemini deneyin. Yani Ollama'da context penceresini büyütün ve her istekte birkaç Türkçe örnek cümle verin (few-shot prompting). Örneğin, sistem prompt'una şöyle bir şey ekleyin: 'İşte birkaç örnek: Soru: X, Cevap: Y; Soru: Z, Cevap: T.' Bu, modelin Türkçe cevap verme olasılığını artırır. Benim deneyimimde, Llama 3 8B'de bu yöntem, sistem prompt'undan daha etkili oldu. Ayrıca, eğer fine-tune yapacaksan, veri setinde Türkçe karakterlerin doğru kodlandığından emin ol. UTF-8 encoding kullan, aksi halde 'ğ' ve 'ş' gibi karakterler bozulur. Bir de, eğitim sırasında learning rate'i düşük tut (1e-4 gibi) ve epoch sayısını 3'ü geçirme. Bu, modelin genel bilgisini kaybetmesini önler.
Çok teşekkürler microcoder42, tapefiend11 ve copperghost45! Verdiğiniz tavsiyeler sayesinde sorunu çözdüm. Önce sistem prompt'una Türkçe talimatı ekledim, ciddi bir iyileşme oldu. Ardından, few-shot prompting ile birkaç örnek göstererek daha da iyi sonuçlar aldım. Fine-tuning'e gerek kalmadı. Ayrıca, context penceresini de büyüttüm. Şu an Türkçe çıktılar neredeyse İngilizce kadar akıcı. İleride daha büyük bir veri setiyle LoRA denemeyi düşünüyorum, ama şimdilik bu yöntem yeterli. Tekrar teşekkürler, süpersiniz!

Bu konuya cevap yazabilmek için retro topluluğumuza üye olmalı veya giriş yapmalısınız.

İlgili Konular & Benzer Paylaşımlar

Stable Diffusion'da el anatomisi sorunu: ControlNet OpenPose yeterli mi? Kategori: Yapay Zeka Araçları
Yerel LLM (Local LLM) için en iyi kurulum? Ollama mı LM Studio mu? Kategori: Yapay Zeka Araçları
Eski bir retro oyunun görsellerini yapay zeka ile yükseltmek (upscale) için en iyi araç hangisi? Kategori: Yapay Zeka Araçları