Showing posts with label Ngrok. Show all posts
Showing posts with label Ngrok. Show all posts

Wednesday, January 21, 2026

Ollama, Kaggle ve Ngrok ile Ücretsiz Bulut LLM Sunucusu Kurulumu

Ollama, Kaggle ve Ngrok ile Ücretsiz Bulut LLM Sunucusu Kurulumu: VS Code ve Open WebUI Entegrasyonu

Murat Karakaya Akademi'ye hoş geldiniz. Değerli arkadaşlar, bugün özellikle donanım kısıtları nedeniyle kendi bilgisayarında büyük dil modellerini (LLM) çalıştırmakta zorlananlar için harika bir çözümden bahsedeceğiz. Biliyorsunuz, günümüzde açık kaynaklı modellerin (Gemma, Llama, Qwen gibi) parametre sayıları ve VRAM ihtiyaçları giderek artıyor. Eğer benim gibi 6GB VRAM'e sahip bir laptop kullanıyorsanız, 12 milyar veya 27 milyar parametreli modelleri yerelde çalıştırmak neredeyse imkansız veya oldukça yavaş hale geliyor.

Bu dersimizde, Kaggle'ın bize ücretsiz sunduğu güçlü GPU altyapısını bir sunucu (Server) gibi kullanarak, Ollama ve Ngrok araçları sayesinde bu gücü nasıl kendi yerel bilgisayarımıza (VS Code, Terminal veya Open WebUI) tünelleyebileceğimizi detaylıca inceleyeceğiz. Yani özetle: Buluttaki GPU'yu, kendi bilgisayarımızdaymış gibi kullanacağız.

Neden Kaggle ve Bulut Tabanlı Çözüm?

Öncelikle sorunu netleştirelim. Akademik çalışmalarımda veya projelerimde bazen onlarca farklı modeli test etmem gerekiyor. Ancak standart bir kullanıcı bilgisayarı, özellikle 8GB, 12B veya üzeri modellerde yetersiz kalıyor. Kaggle ise bize haftalık 30 saatlik ücretsiz bir GPU kullanım hakkı tanıyor. Bu "Accelerator" seçeneğinde genellikle T4 GPU'lar (yaklaşık 15GB VRAM) bulunuyor. Bu, 6GB veya 8GB VRAM isteyen Gemma 3 (12B) veya Qwen 2.5 (14B) gibi modelleri rahatlıkla belleğe sığdırıp çalıştırabileceğimiz anlamına geliyor.

Ben bu yöntemi kendi ihtiyaçlarımdan yola çıkarak geliştirdim ve testlerimi başarıyla tamamladım. Kaggle'ın sağladığı bu 30 saatlik süre, garanti edilen bir süredir; Google Colab gibi sizi aniden oturumdan atma riski daha düşüktür.

Kurulum Mimarisi: Kaggle Üzerinde Ollama

Sistemi kurmak için Kaggle üzerinde bir Notebook açıp, hızlandırıcı (Accelerator) olarak GPU T4 x2'yi seçiyoruz. Burada temel amacımız Kaggle'ı bir "Software as a Service" (SaaS) gibi yapılandırmak. İzleyeceğimiz adımlar şunlar:

  1. Gerekli Kütüphanelerin Kurulumu: Arka planda süreçleri yönetmek için `subprocess` ve tünelleme için `pyngrok` gibi kütüphaneleri Python ortamına kuruyoruz.
  2. GPU Kontrolü: NVIDIA sürücülerinin ve donanımın Ollama tarafından görülebilir olduğunu teyit ediyoruz.
  3. Ollama Kurulumu: Linux tabanlı kurulum komutunu çalıştırarak Ollama'yı Kaggle ortamına indiriyoruz.

Ollama kurulduktan sonra varsayılan olarak `127.0.0.1:11434` portunda çalışmaya başlar. Ancak bu Kaggle'ın kendi iç ağıdır (localhost). Bizim dışarıdan, yani evimizdeki bilgisayardan bu porta erişmemiz gerekiyor. İşte burada devreye Ngrok giriyor.

Ngrok ile Tünel Açmak ve Dışa Erişim

Kaggle'daki yerel sunucuyu internete açmak için Ngrok kullanıyoruz. Bunun için Ngrok sitesine ücretsiz üye olup bir "Authtoken" almanız ve bunu Kaggle'daki "Secrets" (Gizli Anahtarlar) bölümüne eklemeniz gerekiyor. Ayrıca Ngrok size sabit bir domain (alan adı) tanımlayabilir. Bu sabit domain, bağlantı adresinizin her seferinde değişmemesi için önemlidir.

Kurulum kodumuzda (üyelerimizle paylaştığım kod bloğunda), Python üzerinden Ngrok'u konfigüre ederek 11434 portunu dış dünyaya tünelliyoruz. Sonuç olarak elimizde şöyle bir adres oluyor:

https://sizin-domain-adiniz.ngrok-free.app

Bu adres artık bizim Kaggle üzerindeki güçlü GPU'muza açılan kapımızdır. Bu adresi kullanarak sanki model yanımızdaymış gibi işlem yapabiliriz.

Lokal Bilgisayarda Kullanım Senaryoları

Kaggle tarafı hazır olduktan sonra (Ollama running mesajını aldıktan sonra), kendi bilgisayarımıza dönüyoruz. Burada üç farklı şekilde bu gücü kullanabiliriz:

1. Terminal ve Çevresel Değişkenler (Environment Variables)

Kendi bilgisayarınızda bir terminal açıp, Ollama'nın nereye bakacağını söylemeniz gerekir. Bunun için OLLAMA_HOST değişkenini ayarlıyoruz. Bu sayede `ollama list` veya `ollama pull` komutlarını yazdığınızda, komutlar sizin bilgisayarınızda değil, Kaggle sunucusunda çalışır.

2. VS Code Üzerinden Kodlama

Eğer Python ile uygulama geliştiriyorsanız, yazdığınız kodların (örneğin LangChain veya doğrudan API çağrıları) Kaggle'daki modelleri kullanmasını sağlayabilirsiniz. `OllamaClient` nesnesini oluştururken `host` parametresine Ngrok adresini vermeniz yeterlidir. Böylece yazdığınız bir "Hikaye Yazma Botu", işlemleri Kaggle'daki 15GB VRAM üzerinde gerçekleştirir.

3. Open WebUI ile Görsel Arayüz

En sevdiğim yöntemlerden biri de Open WebUI kullanmak. Eğer Docker kullanıyorsanız, Open WebUI'ı ayağa kaldırırken `OLLAMA_BASE_URL` parametresini değiştirerek Kaggle'a bağlayabilirsiniz. Videoda gösterdiğim örnek Docker komutu şöyledir:

docker run -d -p 3000:8080 \
--add-host=host.docker.internal:host-gateway \
-e OLLAMA_BASE_URL=https://sizin-ngrok-adresiniz.app \
-v open-webui:/app/backend/data \
--name open-webui \
ghcr.io/open-webui/open-webui:main

Bu komutla, tarayıcınızdan (localhost:3000) harika bir chat arayüzüne erişirsiniz, ancak arka plandaki beyin Kaggle'da çalışır.

Performans Karşılaştırması ve Uyarılar

Videodaki testlerimde de görebileceğiniz gibi, kendi RTX 3050 ekran kartımla (6GB VRAM) bir işlem yapmaya çalıştığımda veya CPU'ya yüklendiğimde saniyelerce beklerken, Kaggle üzerindeki sistem (T4 GPU) saniyede 30-40 token hızlarına (yaklaşık 3 kat daha hızlı) ulaşabiliyor. 12 Milyar parametreli Gemma 3 modelini kendi bilgisayarımda çalıştırmam mümkün değilken, bu yöntemle akıcı bir şekilde sohbet edebiliyorum.

⚠️ Önemli Güvenlik Uyarısı:

Bu yöntemi kullanırken verileriniz önce Ngrok sunucularına, oradan da Kaggle sunucularına iletilir. Bu nedenle, kişisel, gizli veya ticari sır niteliğindeki verilerinizi bu yöntemle işlemeyin. Ancak benim gibi açık kaynak veri setleri üzerinde akademik çalışmalar, testler veya hobi projeleri yapıyorsanız, bu yöntem hayat kurtarıcıdır.

Sonuç

Yapay zeka modelleri büyüdükçe donanım ihtiyacı artıyor, ancak bulut çözümleri de erişilebilir hale geliyor. Kaggle'ı sadece bir veri bilimi yarışma platformu olarak değil, ücretsiz bir GPU sunucusu olarak da görebilirsiniz. Bu yöntemle donanım sınırlarına takılmadan en yeni LLM'leri deneyimleyebilirsiniz.

Bu yayında kullandığım detaylı Python kodlarına ve Notebook dosyasına erişmek isterseniz, YouTube kanalımızdaki "Katıl" butonunu kullanarak bize destek olabilir ve ayrıcalıklı içeriklere ulaşabilirsiniz. Sorularınızı videonun altına veya Discord sunucumuza bekliyorum. Hepinize iyi çalışmalar!

#MuratKarakayaAkademi #YapayZeka #Ollama #Kaggle #LLM #DerinOgrenme #CloudComputing