Merhaba,
Yapay zeka tabanlı dil modelleri artık yalnızca büyük bulut sistemlerinde değil, bireysel geliştiricilerin yerel bilgisayarlarında da çalıştırılabiliyor. Bu yazıda, Meta’nın LLaMA 3 dil modelini bir Windows bilgisayar üzerinde Ollama adlı araç yardımıyla nasıl çalıştırdığımı ve bu sürecin arkasındaki motivasyonları detaylı şekilde paylaşıyorum.
Neden Yerel Bir Dil Modeli
Benim hedefim, projemde kullanmak üzere yerel kaynaklarla çalışan, internete ihtiyaç duymadan çalıştırabileceğim bir dil modeli kurmaktı. Bu tercih birkaç önemli avantaj sağlıyor:
- Veri gizliliği: Girdi verilerim hiçbir şekilde dış sunuculara gönderilmiyor.
- Bağımsızlık: API limitlerine veya internet bağlantısına bağlı kalmadan çalışma imkânı.
- Geliştirici özgürlüğü: Modeli kendi ihtiyaçlarıma göre yapılandırma ve entegre etme şansı.
Gerekli Araçlar ve Hazırlıklar
Kurulum süreci boyunca kullandığım araçlar şunlar:
- Python 3.9+ (bazı işlemler için gerekli olabilir)
- Ollama (modeli çalıştıran motor)
- huggingface-cli (modeli indirmek için)
- Hugging Face hesabı
Not: Bu kurulum GGUF formatlı quantized (küçültülmüş ve optimize edilmiş) modeller içindir. Bu sayede büyük dil modelleri, daha az kaynakla çalıştırılabiliyor.
1. Ollama Nedir ve Neden Seçtim?
Ollama, yerel olarak GGUF formatındaki modelleri çalıştırmak için kullanılan hafif ve kullanıcı dostu bir araçtır. GPU ya da güçlü bir CPU ile oldukça verimli çalışır. Docker gibi karmaşık yapılandırmalara gerek kalmadan model çalıştırmayı mümkün kılar.
Kurulum:
https://ollama.com/download
Kurulumdan sonra:
ollama --version
2. Model Dizinini D Diskine Taşımak
C diskimde yeterli alan olmadığından, Ollama’nın model klasörünü D diskine taşımak istedim. Bunun için Windows’ta sembolik bağlantı (symlink) kullandım. Böylece sistem D diskindekini C’deymiş gibi görüyor. Tabi kurulumda yerel makinenizde yer kaplamasını istemediğinizde bir harici diske de bu şekilde kurulum yapabilirsiniz.
xcopy "%USERPROFILE%\.ollama" "D:\IOModels" /E /H /K
rmdir /S /Q "%USERPROFILE%\.ollama"
mklink /D "%USERPROFILE%\.ollama" "D:\IOModels"
Bu adım opsiyonel ancak büyük modellerde alan çok önemli hale geliyor.
3. Hugging Face Hesabı ve CLI
Modeli indirirken Hugging Face API’si üzerinden doğrulama gerekiyor. Bunun için:
pip install -U "huggingface_hub[cli]"
huggingface-cli login
Hugging Face üzerinde bir API token oluşturarak giriş yapmanız gerekiyor.
4. LLaMA 3 GGUF Modelini İndirme
Ben, LLaMA 3’ün QuantFactory tarafından hazırlanmış olan quantized versiyonunu kullandım. Bu sürüm daha düşük kaynakla çalışıyor.
huggingface-cli download QuantFactory/Meta-Llama-3-8B-Instruct-GGUF \
--include "Meta-Llama-3-8B-Instruct.Q4_K_M.gguf" \
--local-dir "D:\IOModels\llama3"
Bu model yaklaşık 4-5 GB boyutunda.
5. Modelfile Tanımlama
Ollama, model başlatmak için bir yapılandırma dosyasına ihtiyaç duyuyor. Bu dosya modelin hangi .gguf dosyasından oluşturulacağını tanımlar.
D:\IOModels\llama3\Modelfile içeriği:
FROM Meta-Llama-3-8B-Instruct.Q4_K_M.gguf
Bazı kaynaklarda PARAMETER num_threads gibi satırlar öneriliyor ama Ollama bu satırı tanımadığı için ben dahil etmedim.
6. Modeli Oluşturmak ve Çalıştırmak
Artık modelimizi oluşturabiliriz:
cd D:\IOModels\llama3
ollama create llama3-custom -f Modelfile
Çalıştırmak için:
ollama run llama3-custom
Model başlatıldığında, terminal üzerinden metin tabanlı iletişim kurabilirsiniz.
7. Testler ve Uygulama Örnekleri
>>> "Bu haberi özetle: Türkiye'de enerji piyasasında bugün güneş enerjisi üretimi rekor kırdı. Elektri̇k üretimi̇ni̇n %40'ı yenilenebilir kaynaklardan sağlandı."
Here is a summary of the news:
In Turkey, a record was broken in the energy market today with solar energy production. According to the latest
data, 40% of electricity generated in the country comes from renewable sources.
>>> "Bu haber hangi alana ait: ekonomi, siyaset, sağlık, spor?"
Bu haber ekonomy alanına aittir.
>>> "Bu haber hangi alana ait: ekonomi, siyaset, sağlık, spor? (Tek kelime ile cevapla)"
Ekonomi
>>> "Bu haberi özetle: Türkiye'de enerji piyasasında bugün güneş enerjisi üretimi rekor kırdı. Elektri̇k üretimi̇ni̇n %40'ı yenilenebilir kaynaklardan sağlandı. (Türkçe yanıt ver)"
Bugün Türkiye'de güneş enerjisi üretimi rekor kırdı. Elektrik üretiminin %40'ı yenilenebilir kaynaklardan
sağlanıyor.
Model artık terminalden çalışıyor.
8. Sıradaki Adım: API ile Entegrasyon
Bu kurulumu tamamladıktan sonra, artık modeli bir web projesi veya uygulamayla entegre edebilirim. Bunun için bir .NET Core veya Flask tabanlı basit bir API servisi kurmayı ve bu servis üzerinden modelle haberleşmeyi hedefliyorum. Tabiki asıl önemli nokta ise haberleşmeden önce bu projeyi eğitmek olacak. Yani yolculuk yeni başlıyor.
