Keras ve TensorFlow Lite ile Cihaz Üzerindeki Büyük Dil Modelleri

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.

Pixel 7 Pro'da PaLM

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:

  1. Bu codelab için GitHub deposuna gidin.
  2. Kod > ZIP dosyasını indir seçeneğini tıklayın.

depo görüntüsü

  1. İ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

  1. examples/lite/examples/generative_ai/android klasörünü Android Studio'ya aktarın.
  2. Android Emülatör'ü başlatın ve gezinme menüsünde execute.png Ç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.

başlangıç uygulaması ekran görüntüsü

4. LLM'yi cihaz üzerinde dağıtıma hazırlama

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

  1. Son adımda indirilen autocomplete.tflite model dosyasını Android Studio'daki app/src/main/assets/ klasörüne sürükleyin.

modeli Android Studio'ya ekle

  1. Gezinme menüsünde execute.png Çalıştır'ı tıklayın ve ardından uygulamanın yüklenmesini bekleyin.
  2. Metin alanına bazı temel kelimeleri yazın ve ardından Oluştur'a dokunun.

tamamlanan uygulama için ekran görüntüsü

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.

Daha fazla bilgi