Ana içeriğe atla

PyTorch'un torchchat Eğitimi: Python ile Yerel Kurulum

Bu uygulamalı eğitimde, adım adım yönergeler ve örneklerle PyTorch’un torchchat aracını Python ile yerelde nasıl kuracağınızı öğrenin.
Güncel 3 Eki 2026

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Büyük dil modelleri (LLM’ler) artık pek çok teknoloji alanının ayrılmaz bir parçası; çoğu ürün bir ölçüde LLM tabanlı özellikler barındırıyor. Ancak bu modelleri dizüstü bilgisayar, masaüstü veya akıllı telefon gibi kişisel cihazlarda çalıştırmak, donanım sınırlamaları nedeniyle önemli engellerle karşılaştı.

Buna yanıt olarak PyTorch ekibi, LLM’lerin farklı donanım platformlarında verimliliğini artırmayı hedefleyen, uyarlanabilir bir çatı olan Torchchat’i tanıttı. Bu çığır açan yaklaşım, geniş bir cihaz yelpazesinde yerel işlemenin etkinleşmesini kolaylaştırarak gelişmiş yapay zekâ modellerini daha erişilebilir kılma potansiyeli taşıyor.

PyTorch, Facebook’un Yapay Zekâ Araştırma Laboratuvarı (FAIR) tarafından geliştirilen, önde gelen bir açık kaynak makine öğrenimi çatısıdır. Bilgisayarlı görü ve doğal dil işleme dahil çeşitli uygulamaları destekler.

Bu yazıda, Torchchat’in yeteneklerine genel bir bakış sunacak ve yerelde nasıl kurulacağını öğreneceğiz.

Yapay Zeka Uygulamaları Geliştirin

OpenAI API'sını kullanarak AI uygulamaları oluşturmayı öğrenin.
Ücretsiz Olarak Beceri Geliştirmeye Başlayın

Torchchat’in Yetenekleri

Torchchat dört temel işlev sunar:

  1. PyTorch ile Python kullanarak LLM’leri çalıştırma.
  2. Python olmadan masaüstü uygulamasında veya sunucuda kendi kendine yeten modeller çalıştırma.
  3. Modelleri bir mobil cihazda yürütme.
  4. Bir modelin performansını değerlendirme.

PyTorch ile Python kullanarak LLM’leri çalıştırın

Bu mod, Python ve PyTorch yüklü bir makinede bir LLM çalıştırmayı sağlar. Modele doğrudan terminalden ya da bir REST API ile bir sunucu kurarak etkileşim kurabiliriz. Bu makalede kurulumda buna odaklanacağız.

Kendi kendine yeten modelleri çalıştırma

Torchchat, PyTorch çıkarım programları için Python ve PyTorch’a bağımlılığı olmayan, dinamik bir kütüphane biçiminde kendi kendine yeten, dağıtılabilir bir yürütülebilir dosya oluşturmak üzere AOT Inductor’ı (Zamandan Önce Derleyici) kullanır.

Bu yaklaşım, üretim ortamında, sunum ortamındaki güncellemeler ve değişiklikler boyunca model çalışma zamanı kararlılığı gereksinimini karşılamaya yöneliktir ve yeniden derleme ihtiyacı olmadan modellerin çalışır durumda kalmasını sağlar. 

AOT Inductor, TorchScript gibi metin biçimleriyle ilişkili sınırlamaları ve ek yükü ele alarak, hızlı yüklenen ve çalıştırmaya hazır, verimli ikili dağıtım formatlarını etkinleştirerek model dağıtımını optimize etmeye odaklanır. Hem CPU hem de GPU performansı için kod üretimi ve optimizasyon tekniklerinden yararlanır; amaç, ek yükü azaltmak ve yürütme hızını artırmaktır. 

Mobil cihazlarda yürütme

Mobil cihazda yürütme için Torchchat, ExecuTorch’tan yararlanır. AOT Inductor’a benzer şekilde ExecuTorch, modeli mobil veya gömülü bir cihazda yürütmeye yönelik olarak optimize eder. Daha sonra modeli yürütmek için kullanılabilecek bir PTE artifaktı üretir.

Bir modeli değerlendirme

Torchchat’in değerlendirme modu, lm_eval içindeki çeşitli görevlerde bir LLM’in performansını ölçmek için kullanılabilir. Bu, yeni modellerini yaygın ölçütlerde değerlendirmek isteyen araştırmacılar için önemli bir özelliktir.

Neden Torchchat Kullanmalı

Bir LLM’i yerelde çalıştırmak, OpenAI’nin API’si gibi üçüncü taraf bir bulut API’sine güvenmek yerine, farklı ihtiyaç ve senaryolara hitap eden çeşitli kullanım durumları ve faydalar sunar. 

  • Gizliliğe duyarlı uygulamalar: Sağlık, finans ve hukuk gibi hassas verilerle uğraşan sektörlerde, LLM’leri yerelde çalıştırmak, gizli bilgilerin kurum altyapısını terk etmemesini sağlar ve veri koruma düzenlemelerine uyum sağlar.
  • Gerçek zamanlı uygulamalar: Etkileşimli sohbet botları, gerçek zamanlı içerik üretimi ve canlı izleme sistemleri gibi düşük gecikme süreli yanıtlar gerektiren uygulamalar, bulut API’sine gidiş-dönüş ağ gecikmesini ortadan kaldıran yerel çalıştırmadan fayda sağlar.
  • Çevrimdışı veya düşük bağlantı senaryoları: İnternet bağlantısının zayıf veya hiç olmadığı ortamlarda, yerel dağıtım; saha çalışmaları, uzaktan eğitim ve uçuş içi eğlence sistemleri gibi LLM uygulamalarının kullanılmasını mümkün kılar.
  • Maliyet kontrolü ve optimizasyon: Yüksek hacimli veya sürekli kullanım durumlarında, yerel dağıtım daha maliyet etkin olabilir; bulut API’lerinin istek başına fiyatlandırmasından kaçınılır ve mevcut hesaplama kaynaklarından yararlanılabilir.

Bir modeli bulut yerine bir cihazda yerel olarak çalıştırma hakkında daha fazla bilgiyle ilgileniyorsanız, Edge AI üzerine bu blog yazısını öneririm.

Python ile Yerel Kurulum

Hadi Torchchat’i adım adım yerelde kuralım. Torcchat deposunu klonlamakla başlayacağız.

Kodu klonlayın veya indirin

Torchchat’i yerelde kurmanın ilk adımı Torchchat deposunu klonlamaktır. Git yüklüyse, bir terminal açıp şu komutu çalıştırarak depoyu klonlayabiliriz:

git clone git@github.com:pytorch/torchchat.git

Alternatif olarak, Github arayüzünü kullanarak depoyu indirebiliriz.

Torchchat’in GitHub’dan nasıl indirileceği.

Kurulum

Python 3.10’un zaten kurulu olduğunu varsayıyoruz. Python’u nasıl kuracağınızla ilgili bir rehber için bu makaleye göz atın.

Torchchat’i kurmak için Torchchat klasöründe bir terminal açın. Önce bir sanal ortam oluşturarak başlayalım:

python -m venv .venv

Kısaca, sanal ortam; bir projeye ait Python kütüphaneleri, paketleri ve bazen Python’un belirli bir sürümüne ait kurulum dizinlerini içeren, projeye özel bir dizindir. Bu sayede her proje, ihtiyaç duyduğu yazılım sürümlerini diğer projelerin gereksinimlerinden etkilenmeden kullanır.

Sanal ortamı oluşturduktan sonra etkinleştirmemiz gerekir. Bunu şu komutla yapabiliriz:

source .venv/bin/activate

Son olarak, Torchchat’in çalışması için gerekli tüm bağımlılıkları kurarak ortamı hazırlamamız gerekiyor. Torchchat bir kurulum betiği, install_requirements.sh, sağlar; bunu şu komutla çalıştırabiliriz:

./install_requirements.sh

Artık Torchchat kurulmuş ve kullanıma hazır olmalı. Kurulumu, kullanılabilir Torchchat komutlarını listeleyerek doğrulayabiliriz, şöyle:

python torchchat.py --help

Torchchat’i Python ile Yerelde Kullanma

Torchchat kurulduğuna göre, LLM’leri yerel makinemizde çalıştırmaya başlayabiliriz.

Desteklenen tüm modelleri listeleme

TorchChat geniş bir LLM yelpazesini destekler. Desteklenen modelleri list komutunu kullanarak listeleyebiliriz:

python torchchat.py list

Modellerin tam listesi GitHub depolarında bulunabilir. 

Torchchat tarafından desteklenen modellerin listesi

“Notlar” bölümü, modelin en iyi kullanım durumu ve Torchchat komutlarında modeli belirtirken kullanılan model takma adı gibi yararlı bilgiler sunar.

Bir model indirme

Torchchat, modeller için dağıtım kanalı olarak Hugging Face’i kullanır. Hugging Face, herkesin açık kaynak kodla NLP ve ML modelleri oluşturmasına, eğitmesine ve dağıtmasına imkân veren araçlara sahip işbirlikçi bir platformdur. Daha fazla bilgi için Hugging Face Nedir başlıklı bu blog yazısına göz atın.

Bir model indirmeden önce şunları yapmamız gerekir:

  1. Hugging Face komut satırı arayüzünü kurun
  2. Hugging Face’te bir hesap oluşturun
  3. Bir erişim belirteci oluşturun
  4. Hugging Face komut satırı arayüzü ile oturum açın

Hugging Face komut satırı arayüzünü kurmak için pip kullanırız:

pip install huggingface_hub

Ardından Hugging Face web sitesine gidip bir hesap oluşturabiliriz. Hesap oluşturduktan sonra, profil ayarlarına giderek bir erişim belirteci oluşturabiliriz:

Hugging Face’te profil ayarları

Profilde, yeni bir belirteç oluşturmak için “Access Tokens” menüsünü açabiliriz:

Hugging Face’te erişim belirteci oluşturma

Belirteç izinleriyle ilgili olarak, bu makale için okuma izinleri yeterlidir. Belirteç oluşturulduğunda panoya kopyalamamız gerektiğini unutmayın; daha sonra tekrar göremeyeceğiz. 

Belirteci kullanarak aşağıdaki komutla oturum açabiliriz:

huggingface-cli login

Oturum açtıktan sonra download komutunu kullanarak bir modeli indirebiliriz. Bu modellerden bazıları oldukça büyük olabilir; yeterli disk alanınız olduğundan emin olun. Örnek olarak, küçük bir öykü üretim modeli olan stories15M modelini kullanacağız. İndirmesi hızlı olduğu ve özel izin gerektirmediği için başlamak için iyi bir modeldir.

İndirmek için şunu yaparız:

python torchchat.py download stories15M

Bir modeli çalıştırma

Modeli indirdikten sonra chat veya generate komutlarını kullanabiliriz. Metin üretmek için --prompt argümanı ile bir yönlendirme sağlamamız gerekir. İşte bir örnek:

python torchchat.py generate stories15M --prompt “Once upon a time”

Yukarıdaki komut, Torchchat’e stories15M modelini ”Once upon a time” yönlendirmesiyle metin üretmesi talimatını verir.

Modeli sohbet modunda çalıştırmak için, bir yönlendirme olmadan chat komutunu kullanırız.

python torchchat.py chat stories15M 

Sohbet komutu, terminalde etkileşimli bir sohbet başlatır; LLM ile karşılıklı konuşabiliriz. Bazı modellerin generate modu için, bazılarının ise chat modu için daha uygun olduğunu unutmayın. Bu bilgi, model belgelerinin “Notlar” bölümünde yer alır.

Bir modele erişim isteme

Bazı modeller, örneğin llama3, indirilebilmek için özel erişim gerektirir. Böyle bir modeli indirmeye çalışırsak bir hata iletisi alırız:

Access to model meta-llama/Meta-Llama-3-8B-Instruct is restricted and you are not in the authorized list. Visit https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct to ask for access.

Hata iletisinde verilen URL’yi takip ederek erişim isteyebiliriz. Kısa bir formu kişisel bilgilerle doldurup hizmet şartlarını kabul etmemiz gerekir. Erişim verildiğinde bir e-posta alacaksınız.

Hugging Face’te bir LLM için erişim talep formu

Gelişmiş Kullanım

Torchchat, LLM’leri yerelde çalıştırırken ihtiyaç ve donanımımıza uyarlamayı mümkün kılan birkaç ek seçenek sunar. Bu seçeneklerden bazılarını inceleyelim.

Hassasiyeti kontrol etme

LLM’ler, çok sayıda kayan nokta sayısının çarpılmasını içeren matris çarpımlarına büyük ölçüde dayanır. Bilgisayarda kayan nokta sayılarını farklı hassasiyetlerle temsil etmek için çeşitli veri türleri bulunur. 

Daha yüksek hassasiyet, özellikle karmaşık görevler veya nüanslı dil anlayışı için, eğitim sırasında yakalanan ayrıntıların çıkarımda da aslına uygun temsil edilmesini sağlayabilir. Ancak yüksek hassasiyetli sayılar kullanmak çıkarımı önemli ölçüde yavaşlatabilir. Doğru veri türü, hız ve doğruluk arasındaki dengeye bağlıdır.

LLM’i çalıştırırken veri türünü ayarlamak için --dtype parametresini kullanabiliriz, örneğin:

python torchchat.py chat --dtype fast stories15M

Anında (Just-In-Time) derleme

--compile bayrağı, modelin Anında Derleme’yi (JIT) etkinleştirir. JIT, her seferinde yorumlamak yerine modelin bölümlerini çalışma zamanında makine düzeyi koda dinamik olarak derleyerek çıkarım performansını optimize etmek için kullanılan bir tekniktir. Bu yaklaşım, farklı donanım platformlarında çalışan modeller için verimliliği ve hızı önemli ölçüde artırabilir.

JIT kullanmak, ek derleme adımı nedeniyle daha yüksek başlangıç sürelerine yol açacaktır; ancak çıkarım daha hızlı çalışacaktır. chat’i JIT ile birlikte şöyle kullanırız:

python torchchat.py chat --compile stories15M

Bu seçeneğin tüm donanım türlerinde desteklenmeyebileceğini unutmayın. Bu durumda Torchchat derleme adımını yok sayacak ve LLM’i derleme olmadan çalıştıracaktır.

Kantizasyon

Kantizasyon, model boyutunu azaltmak ve performans veya doğruluğu önemli ölçüde etkilemeden çıkarım hızını artırmak için kullanılan bir tekniktir. Bu, özellikle LLM’leri uç cihazlara dağıtırken veya hesaplama kaynakları, bellek ve bant genişliğinin sınırlı olduğu ortamlarda önemlidir.

Özetle, kantizasyon; bir sinir ağının ağırlıklarını ve aktivasyonlarını kayan nokta gösteriminden (genellikle 32 bit float) 16 bit tamsayı, 8 bit tamsayı veya bazı durumlarda ikili gösterimler gibi daha düşük bitli gösterimlere dönüştürmeyi içerir. 

Bu, --dtype ile hassasiyet ayarlamaktan farklıdır. Kantizasyon doğrudan model ağırlıkları üzerinde çalışarak daha küçük bir model oluşturur; veri türü ise çıkarım hesaplamalarında kullanılan veri tipini belirtir.

Torchchat’te kantizasyon kullanmak bir JSON yapılandırma dosyası gerektirir ve şu şekilde kullanılabilir:

python torchchat.py chat --quantize config.json stories15M

config.json yapılandırma dosyasının biçimi veya Torchchat’te kantizasyonun nasıl çalıştığı hakkında daha fazla ayrıntı için kantizasyon dokümantasyon sayfalarına göz atın.

Cihaz belirtimi

LLM’in yürütüleceği cihazı --device seçeneğiyle belirtebiliriz. Örneğin CUDA üzerinde çalıştırmak için şöyle kullanırdık:

python torchchat.py chat --device cuda stories15M

Sonuç

Torchchat, LLM çıkarımının demokratikleşmesinde büyük bir adımdır. Herkesin geniş bir cihaz yelpazesinde LLM’leri verimli şekilde çalıştırmasını kolaylaştırır.

Torchchat, bu yazıda tanıttıklarımızdan çok daha fazla yetenek sunar. Python ve PyTorch kullanarak bilgisayarınızda LLM’leri yerelde çalıştırmaya başlamanız için gerekli açıklamaları sağladık. Torchchat’i daha derinlemesine keşfetmenizi önemle tavsiye ederim.


François Aubry's photo
Author
François Aubry
LinkedIn
CheapGPT’te full-stack mühendisi ve kurucuyum. Öğretmek her zaman tutkum oldu. Öğrencilik yıllarımdan itibaren diğer öğrencilere ders verme ve yardımcı olma fırsatlarını hevesle aradım. Bu tutku beni doktora yapmaya yönlendirdi; bu süreçte akademik çalışmalarımı desteklemek için araştırma görevlisi olarak da görev aldım. O yıllarda, geleneksel sınıf ortamında bağlar kurmaktan ve öğrenmeyi kolaylaştırmaktan büyük bir tatmin duydum. Ancak çevrim içi öğrenme platformlarının ortaya çıkmasıyla birlikte dijital eğitimin dönüştürücü potansiyelini fark ettim. Nitekim üniversitemizde bu tür bir platformun geliştirilmesinde aktif rol aldım. Geleneksel öğretim ilkelerini yenilikçi dijital yöntemlerle bütünleştirmeye derinden bağlıyım. Tutkum, yalnızca ilgi çekici ve bilgilendirici olmakla kalmayan, aynı zamanda bu dijital çağdaki öğrenenler için erişilebilir kurslar tasarlamaktır.
Konular
Yapay Zeka
Üretken Yapay Zeka
İlgili

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Devamını GörDevamını Gör