1. Başlamadan önce
Son zamanlarda makine öğrenimi alanındaki en heyecan verici gelişmelerden biri Büyük Dil Modelleri'dir (LLM'ler). Bu metinler metin üretmek, dilleri çevirmek, soruları kapsamlı ve bilgilendirici bir şekilde yanıtlamak için kullanılabilir. Google LaMDA ve PaLM gibi LLM'ler, çok büyük miktarda metin verisi kullanılarak eğitilir. Bu sayede kelimeler ve ifadeler arasındaki istatistiksel kalıpları ve ilişkileri öğrenebilirler. Bu sayede, insanlar tarafından yazılmış metinlere benzeyen metinler oluşturabiliyor ve dilleri yüksek doğrulukla çevirebiliyorlar.
LLM'ler, depolama açısından çok büyüktür ve genellikle çalıştırılmaları için çok fazla bilgi işlem gücü tüketir. Yani, genellikle bulutta dağıtılırlar ve mobil cihazlarda sınırlı işlem gücü nedeniyle cihaz üzerinde makine öğrenimi (ODML) için oldukça zordur. Ancak modern bir Android cihazda daha küçük ölçekli LLM'ler (örneğin, GPT-2) çalıştırıp yine de etkileyici sonuçlar elde etmek mümkündür.
Oynatma hızını artırmadan Google Pixel 7 Pro'da 1,5 milyar parametreye sahip bir Google PaLM modelinin sürümünü çalıştırmayı gösteren demoyu burada bulabilirsiniz.
Bu codelab'de aşağıdakilerle LLM destekli bir uygulama (örnek model olarak GPT-2 kullanarak) derlemeye yönelik teknikleri ve araçları öğreneceksiniz:
- Önceden eğitilmiş bir LLM'yi yüklemek için KerasNLP
- Büyük dil modeli ince ayar yapmak için KerasNLP
- Android'de LLM'yi dönüştürmek, optimize etmek ve dağıtmak için TensorFlow Lite
Ön koşullar
- Orta düzey Keras ve TensorFlow Lite bilgisi
- Android geliştirmeyle ilgili temel bilgiler
Neler öğreneceksiniz?
- Önceden eğitilmiş bir LLM'yi yüklemek ve ince ayar yapmak için KerasNLP kullanma
- LLM'nin miktarını belirleme ve TensorFlow Lite'a dönüştürme
- Dönüştürülmüş TensorFlow Lite modelinde çıkarım çalıştırma
Gerekenler
- Colab'e erişim
- Android Studio'nun en son sürümü
- 4 GB'tan fazla RAM'e sahip modern bir Android cihaz
2. Hazırlanın
Bu codelab'in kodunu indirmek için:
- Bu codelab için GitHub deposuna gidin.
- Kod > ZIP dosyasını indir seçeneğini tıklayın.
- İhtiyacınız olan tüm kaynakların yer aldığı bir
examples
kök klasörünü açmak için, indirilen zip dosyasını açın.
3. Başlangıç uygulamasını çalıştırma
examples/lite/examples/generative_ai/android
klasörünü Android Studio'ya aktarın.- Android Emülatör'ü başlatın ve gezinme menüsünde Çalıştır'ı tıklayın.
Uygulamayı çalıştırma ve keşfetme
Uygulama, Android cihazınızda başlatılır. Bu uygulamaya "Otomatik tamamlama" adı verilir. Kullanıcı arayüzü oldukça basittir: Metin kutusuna bazı temel kelimeler yazıp Oluştur'a dokunabilirsiniz; Uygulama daha sonra bir LLM üzerinde çıkarım çalıştırır ve girişinize göre ek metin oluşturur.
Şu anda, bazı kelimeler yazdıktan sonra Oluştur'a dokunursanız hiçbir şey olmaz. Bunun nedeni, henüz bir LLM çalıştırmıyor olmasıdır.
4. LLM'yi cihaz üzerinde dağıtıma hazırlama
- Colab'i açın ve not defterini (TensorFlow Codelabs GitHub deposunda barındırılan) inceleyin.
5. Android uygulamasını tamamlayın
GPT-2 modelini TensorFlow Lite'a dönüştürdüğünüze göre artık uygulamada dağıtabilirsiniz.
Uygulamayı çalıştırın
- Son adımda indirilen
autocomplete.tflite
model dosyasını Android Studio'dakiapp/src/main/assets/
klasörüne sürükleyin.
- Gezinme menüsünde Çalıştır'ı tıklayın ve ardından uygulamanın yüklenmesini bekleyin.
- Metin alanına bazı temel kelimeleri yazın ve ardından Oluştur'a dokunun.
6. Sorumlu Yapay Zeka ile İlgili Notlar
Orijinal OpenAI GPT-2 duyurusunda belirtildiği gibi, GPT-2 modeliyle ilgili önemli uyarılar ve sınırlamalar vardır. Hatta günümüzde LLM'lerde genellikle halüsinasyonlar, rahatsız edici sonuçlar, adalet ve önyargı gibi iyi bilinen bazı zorluklar vardır. Bunun nedeni, bu modellerin gerçek dünyadan verilerle eğitilmesi ve bu nedenle, gerçek dünyadaki sorunları yansıtmasıdır.
Bu codelab yalnızca TensorFlow araçlarıyla LLM destekli bir uygulamanın nasıl oluşturulacağını göstermek için oluşturulmuştur. Bu codelab'de üretilen model yalnızca eğitim amaçlı olup üretimde kullanılmak üzere tasarlanmamıştır.
LLM üretim kullanımı için eğitim veri kümeleri ve kapsamlı güvenlik önlemlerinin dikkatli bir şekilde seçilmesi gerekir. LLM'ler bağlamında Sorumlu Yapay Zeka hakkında daha fazla bilgi edinmek için Google I/O 2023'te düzenlenen Üretken Dil Modelleriyle Güvenli ve Sorumlu Geliştirme teknik oturumunu izleyin ve Sorumlu Yapay Zeka Araç Seti'ne göz atın.
7. Sonuç
Tebrikler! Yalnızca cihazda önceden eğitilmiş bir büyük dil modeli çalıştırarak kullanıcı girişlerine göre tutarlı metin oluşturacak bir uygulama geliştirdiniz.