Ana içeriğe geç

Torchchat ile Android Telefonda Llama 3.2 1B Nasıl Çalıştırılır

Torchchat framework’ünü kullanarak Android cihazınızda Llama 3.2 1B’yi kurup çalıştırmaya yönelik adım adım talimatları alın.
· 12 dk. oku

Yapay Zeka ile Keşfedin

Kısa süre önce Python ve Torchchat ile LLM’lerin nasıl çalıştırılacağı hakkında bir makale yazdım. Torchchat, LLM’leri farklı donanım platformlarında verimli şekilde çalıştırmak için tasarlanmış esnek bir çerçevedir. Bir LLM’i yerelde çalıştırmanın birkaç avantajı vardır:

  • Çevrimdışı erişim: Model cihazımızda çalıştığı için kullanmak için internete bağlı olmamız gerekmez.
  • Gizlilik: Modeli kendimiz çalıştırdığımızdan, girdiğimiz istemler ve veriler özel kalır.
  • Maliyet: Modeli ücretsiz olarak çalıştırabiliriz.

Facebook’un yakın zamanda Llama 3.2 sürümünü yayınlamasının ardından, bir önceki makalemi genişleterek özellikle Android’e odaklanıp bunu mobil telefonlarımıza nasıl dağıtacağımızı anlatmaya karar verdim.

Yapmamız gerekenlerin üst düzey özeti şöyle:

  • Model dosyalarını indirin; model açık kaynak olduğundan dosyalar ücretsiz olarak sunulmaktadır.
  • Modeli mobil bir cihazda çalıştırmak için gerekli dosyaları üretin.
  • Modeli çalıştıran bir Android sohbet uygulaması kurun.

Torchchat bu adımların tümüne çözüm sunar. Modeli indirmek ve çalıştırmak için gereken dosyaları üretmek üzere komutlar sağlar. Üstelik, kendi uygulamamızı geliştirmemize gerek kalmadan kullanabileceğimiz bir Android sohbet demo uygulamasıyla birlikte gelir.

Torchchat’i İndirme

İlk adım, Git kullanarak Torchchat deposunu klonlamaktır:

git clone [email protected]:pytorch/torchchat.git

Bunu Git olmadan da, GitHub’daki indirme düğmesini kullanarak indirebiliriz:

GitHub’dan Torchchat’i indirmek

Önemli not: Depoyu klonladıktan (veya indirdikten) sonra bilgisayarımızda torchchat adlı bir klasör oluşacaktır. Bu makalede geçen tüm komutlar bu klasörün içinden çalıştırılmalıdır.

Torchchat Kurulumu

Python ve Anaconda’nın halihazırda kurulu olduğunu varsayıyoruz. Kurulu değilse şu iki eğitime bakın: Windows’ta Anaconda Kurulumu ve Mac OS X’te Anaconda Nasıl Kurulur.

Alternatif olarak, Anaconda yerine sanal ortam kullanan Torchchat deposundaki adımları izleyin.

Önce şu komutla bir Anaconda ortamı oluşturuyoruz:

conda create -yn llama python=3.10.0

Bu komut, Python’un 3.10 sürümünü kullanan llama adlı bir ortam oluşturur. -yn seçeneği, -y ve -n’yi birleştirir:

  • -y seçeneği, ortam oluşturulmadan önce onay istemeden komutun devam etmesini sağlar.
  • -n seçeneği ortamın adını belirtir; burada llama. Ortamı oluşturduktan sonra etkinleştirir ve bağımlılıkları kurarız. 

Etkinleştirmek için şu komutu kullanırız:

conda activate llama

Gerekli bağımlılıkları kurmak için TorchChat’in sağladığı kurulum betiğinden yararlanırız:

./install/install_requirements.sh

Llama 3.2 1B Modelini İndirme

Bu derste, bir milyar parametreli Llama 3.2 1B modelini kullanacağız. Şu komutla indirebiliriz:

python torchchat.py download llama3.2-1b

Aynı süreç diğer modelleri denemek için de geçerlidir—llama3.2-1b ifadesini hedef modelin takma adıyla değiştirmemiz yeterlidir. Yalnızca mobil uyumlu olarak işaretlenmiş modelleri seçmek önemlidir.

Torchchat, model yönetimi için Hugging Face’ten yararlanır. Dolayısıyla, bir modeli indirmek için Hugging Face hesabı gerekir. Hesap oluşturma ve terminalden oturum açma hakkında kapsamlı bir rehber için bu Torchchat öğreticisindeki “Model indirme” bölümüne bakın.

Alternatif olarak, model Llama’nın resmi web sitesinden de indirilebilir. Ancak Torchchat’i kullanmak daha pratiktir; çünkü model dosyalarını mobil dağıtım için dışa aktarmayı kolaylaştırır.

Modeli Dışa Aktarma

Mobil cihaza dağıtmak için önce modeli dışa aktararak Executorch tarafından kullanılan bir dosya olan .pte artefaktını üretiriz. Executorch, Torchchat’in LLM’i mobil cihazda çalıştırmak için kullandığı motordur.

PTE dosyasını üretmek için önce Executorch’u kurmalıyız. Bunu yapmak için şu komutları çalıştırın:

export TORCHCHAT_ROOT=${PWD} 
./torchchat/utils/scripts/install_et.sh

Kurulum tamamlandıktan sonra PTE dosyasını şu komutla üretebiliriz:

python torchchat.py export llama3.2-1b --quantize torchchat/quant_config/mobile.json --output-pte-path llama3_2-1b.pte

Bu komut, modelin boyutunu küçültüp çıkarım hızını artırmak için modeli niceleyecektir (quantize). torchchat/quant_config/mobile.json içindeki Torchchat’in varsayılan yapılandırmasını kullanıyoruz.

Süreç tamamlandığında, torchchat klasöründe llama3_2-1b.pte adlı bir dosya oluşturulacaktır.

Mobil Uygulamayı Hazırlama

Torchchat, Llama’yı doğrudan akıllı telefonlarımızda çalıştırmamıza olanak tanıyan bir Android demo uygulaması sunar. Bu demo proje, indirilen Torchchat klasöründe bulunur. Göreli yolu torchchat/edge/android/torchchat şeklindedir. Yoldaki ilk torchchat ifadesinin depo içindeki bir klasöre, depo köküne değil, atıfta bulunduğuna dikkat edin.

Java kitaplığını indirme ve kurma

  1. Torchchat’in sağladığı .aar dosyasını indirin. Bu dosya, uygulamayı derlemek ve çalıştırmak için gerekli Java kütüphanesi ve ilgili JNI kütüphanesini içerir. 
  2. Uygulama klasörüne gidin: torchchat/edge/android/torchchat/app/
  3. Bir libs klasörü oluşturun (zaten yoksa)
  4. İndirilen dosyanın adını executorch.aar olarak değiştirin ve libs klasörüne yapıştırın.

Android Studio’da Android projesini yükleme

Android Studio’yu resmi web sitesinden indirin ve kurun. Kurulum tamamlandıktan sonra projeyi açın:

Android Studio’da demo uygulamayı açma

Demo proje torchchat/edge/android/torchchat konumunda yer alır.

Projeyi açtığımızda, kodu güvenilir bulup bulmadığımızı soran bu pencereyle karşılaşırız:

Demo uygulama açıldıktan sonra görülen açılır pencere

Burada “Trust Project” seçeneğini seçin.

Projeyi açtıktan sonra Android Studio’nun yapılandırmayı yüklemesi ve ilk kurulumu tamamlaması için biraz zamana ihtiyacı olacaktır. Bu işlem bitene kadar beklemek önemlidir. Durumu pencerenin sağ alt köşesinden takip edebiliriz. Hazır olduğunda, üstteki çalıştır düğmesi yeşil olacaktır:

Projenin ne zaman yüklendiğini anlamak

Android’de geliştirici modunu ayarlama

Uygulamayı Android Studio üzerinden telefonda çalıştırabilmek için cihazımızda geliştirici modunu etkinleştirmemiz gerekir. Bunu şu şekilde yapabiliriz:

  1. “Ayarlar”a gidin
  2. “Cihaz hakkında” veya “Telefon hakkında”yı seçin
  3. “Yazılım bilgileri”ni açın
  4. “Yapım numarası”nı bulun ve yedi kez dokunun

Hepsi bu kadar! Artık cihazımızı Android Studio’dan uygulamayı çalıştırmak için kullanabiliriz. Bunu yaptığımızda uygulama telefonumuzda kalır ve bilgisayara bağlı olmadan da çalıştırılabilir.

adb kurulumu

Uygulamanın, model dosyalarının telefonda belirli bir klasörde bulunmasına ihtiyacı vardır. Bu dosyaları telefona göndermek için adb (Android Debug Bridge) kullanırız. Android Studio üzerinden şu adımları izleyerek kurabiliriz:

  1. Ayarlar’a gidin ve arama çubuğuna “Android SDK” yazmaya başlayın
  2. “Android SDK” adlı menüyü bulun ve tıklayın
  3. “Android SDK command line tools (latest)” seçeneğini işaretleyin
  4. Kurmak için “Apply”a tıklayın

Android Studio’dan adb kurulumu

Pencerenin üst kısmında Android Studio’nun Android sdk konumunu gösterdiğine dikkat edin:

adb yolunu bulma

Bu yolu kopyalayıp aşağıdaki komutu çalıştırırız (aşağıda <android_skd_location> yerine az önce kopyalanan yolu yazın):

export PATH=$PATH:<android_skd_location>/platform-tools/

adb’nin başarıyla kurulduğunu doğrulamak için adb --version komutunu kullanın; adb sürümünü gösterecektir.

Uygulamayı telefonda ayarlama

Telefonu kabloyla bilgisayara bağlayın. Cihazın adı, çalıştır düğmesinin yanındaki cihaz listesinde görünecektir:

Android Studio’da cihaz seçimi

Uygulamayı telefonda çalıştırmadan önce, gerekli model dosyalarını cihazımıza kopyalamak için şimdi adb kullanırız.

  1. Cihazın kimliğini adb devices komutuyla bulun. Çıktıda birden fazla satır olabilir. <device_code> device biçiminde olan satırı bulun ve cihaz kodunu kopyalayın.
  2. adb -s <device_code> shell mkdir -p /data/local/tmp/llama komutuyla model dosyalarını saklayacak dizini oluşturun.
  3. torchchat klasöründe bulunan .pte dosyasını adb -s <device_code> push llama3_2-1b.pte /data/local/tmp/llama komutuyla kopyalayın.
  4. python torchchat.py where llama3.2-1b komutuyla modelin tokenizer dosyasının konumunu bulun. Birkaç satır çıktısı olacaktır; son satırda gösterilen yolu dikkate alıyoruz.

tokenizer.model dosyasının konumunu bulma

  1. Önceki adımda elde edilen yoldaki <model_path>’i kullanarak tokenizer dosyasını adb -s <device_code> push <model_path>/tokenizer.model /data/local/tmp/llama komutuyla cihaza kopyalayın.

Bu adımları tamamladıktan sonra, model dosyaları telefonumuzda ve kullanıma hazır olmalıdır. Az önce oluşturduğumuz cihaz klasöründeki tüm dosyaları listeleyerek kontrol edebiliriz:

adb -s <device_code> shell ls 

Çıktıda biraz önce kopyaladığımız iki dosya yer almalıdır:

llama3_2-1b.pte
tokenizer.model

Uygulamayı çalıştırma

Artık demo uygulamayı telefonumuzda çalıştırmaya hazırız. Çalıştırmak için yeşil oka tıklayabiliriz.

Uygulamayı telefonda çalıştırma

Bu işlem uygulamayı cihazımızda açacaktır. Uygulama, model ve tokenizer dosyalarını seçmemizi ister.

Model ve tokenizer seçimi

Llama 3.2 1B Uygulamasını Kullanma

Artık telefonumuzda Llama3.2 1B ile sohbet etmeye başlayabiliriz! Uygulamanın arayüzü oldukça basit. “Prompt” metin kutusuna bir istem yazabilir ve “Generate” düğmesini kullanarak modele gönderebiliriz.

Model çevrimdışı çalıştığından, örneğin bir sonraki varışıma uçaktayken bazı yemek önerileri istemek için kullanabildim:

Uygulamanın kullanımına örnek

Bu etkileşimle, demo uygulamanın birkaç sınırlamasını gözlemliyoruz:

  1. Yanıt, istemimizi tekrar ediyor.
  2. Yanıt biçimi “Tayvan’a gittim…” şeklinde başlıyor; bu da uygulamanın modeli doğrudan bir asistan olarak kullanmak üzere tasarlanmadığını gösteriyor.
  3. Yanıtlar aniden kesiliyor; muhtemelen belirteç (token) sınırına ulaşıldığı için.

Davranışı karşılaştırmak için aynı modeli terminalde şu komutla çalıştırabiliriz:

python torchchat.py chat llama3.2-1b

Aynı istemi vererek davranışın farklı olup olmadığını görmek istedik. Nitekim bu durumda yanıt, kesilmiş olsa da çok daha doğal ve kullanışlı görünüyor:

Modelin bilgisayardaki davranışı

Torchchat’in arkasındaki ekiple iletişime geçtim ve Llama 3.2’nin çok yeni olduğunu, demo uygulamanın bunu desteklemek için biraz güncellenmesi gerektiğini söylediler. 

Bununla birlikte, kurulum süreci aynı kalacak ve burada edindiğiniz bilgi güncellenmiş sürüm için de geçerli olacaktır. Bu makaleyi okuduğunuz sırada uygulama zaten güncellenmiş ve düzgün çalışıyor olabilir.

Sonuç

Bu kılavuzda, Torchchat kullanarak Llama 3.2 1B’yi doğrudan bir Android cihazda nasıl kuracağımızı öğrendik. Model dosyaları ve Android demo uygulaması dâhil gerekli bileşenleri indirme ve kurma sürecini adım adım ele aldık.

Mevcut demo uygulamada özellikle yanıt biçimlendirmesi ve uzunluğu konusunda bazı sınırlamalar olsa da, bu tür uygulamaların barındırdığı potansiyel oldukça büyüktür.

Llama 3.2 hakkında daha fazla okumak isterseniz şu blogları öneririm:

François Aubry

Yazar

François Aubry

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

İlgili