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

1. Başlamadan önce

Son zamanlarda makine öğrenimi alanında en heyecan verici gelişmelerden biri büyük dil modelleridir (LLM'ler). Metin oluşturmak, dilleri çevirmek ve soruları kapsamlı ve bilgilendirici bir şekilde yanıtlamak için kullanılabilirler. Google LaMDA ve PaLM gibi LLM'ler, büyük miktarda metin verisiyle eğitilir. Bu sayede kelimeler ve ifadeler arasındaki istatistiksel kalıpları ve ilişkileri öğrenirler. Bu sayede, insan tarafından yazılmış metinlere benzer metinler oluşturabilir ve dilleri yüksek doğrulukla çevirebilirler.

LLM'ler depolama açısından çok büyüktür ve genellikle çalışmak için çok fazla bilgi işlem gücü tüketir. Bu nedenle genellikle bulutta dağıtılırlar ve mobil cihazlardaki sınırlı bilgi işlem gücü nedeniyle cihaz üzerinde makine öğrenimi (ODML) için oldukça zorludur. Ancak daha küçük ölçekli LLM'leri (ör. GPT-2) modern bir Android cihazda çalıştırmak ve yine de etkileyici sonuçlar elde etmek mümkündür.

Google PaLM modelinin 1,5 milyar parametreli bir sürümünün Google Pixel 7 Pro'da oynatma hızını artırmadan çalıştırılmasıyla ilgili demoyu aşağıda bulabilirsiniz.

Pixel 7 Pro'da PaLM

Bu codelab'de, aşağıdakileri kullanarak LLM destekli bir uygulama (örnek model olarak GPT-2 kullanılarak) oluşturma tekniklerini ve araçlarını öğreneceksiniz:

  • Önceden eğitilmiş bir büyük dil modelini yüklemek için KerasNLP
  • Büyük dil modeline ince ayar yapmak için KerasNLP
  • LLM'yi Android'de dönüştürmek, optimize etmek ve dağıtmak için TensorFlow Lite

Ön koşullar

  • Keras ve TensorFlow Lite hakkında orta düzeyde bilgi
  • Android geliştirme hakkında temel bilgiler

Neler öğreneceksiniz?

  • Önceden eğitilmiş bir LLM'yi yüklemek ve ince ayar yapmak için KerasNLP'yi kullanma
  • Büyük bir dil modelini ölçme ve TensorFlow Lite'a dönüştürme
  • Dönüştürülmüş TensorFlow Lite modelinde çıkarım çalıştırma

İhtiyacınız olanlar

  • Colab'e erişim
  • Android Studio'nun en son sürümü
  • 4 GB'den fazla RAM'e sahip modern bir Android cihaz

2. Hazırlanın

Bu codelab'in kodunu indirmek için:

  1. Bu codelab'in GitHub deposuna gidin.
  2. Bu codelab'in tüm kodunu indirmek için Code > Download zip'i (Kod > Zip dosyasını indir) tıklayın.

repo resmi

  1. İndirilen ZIP dosyasını açarak ihtiyacınız olan tüm kaynakları içeren bir examples kök klasörü oluşturun.

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 Emulator'ı başlatın ve gezinme menüsünde execute.png Çalıştır'ı tıklayın.

Uygulamayı çalıştırıp keşfetme

Uygulama, Android cihazınızda başlatılmalıdır. Uygulamanın adı "Otomatik tamamlama"dır. Kullanıcı arayüzü oldukça basittir: Metin kutusuna bazı başlangıç kelimeleri yazıp Oluştur'a dokunabilirsiniz. Uygulama daha sonra bir LLM üzerinde çıkarım yaparak girişinize göre ek metinler oluşturur.

Şu anda, birkaç kelime yazdıktan sonra Oluştur'a dokunduğunuzda hiçbir şey olmuyor. Bunun nedeni, henüz LLM çalıştırmamasıdır.

Başlangıç uygulaması için ekran görüntüsü

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

5. Android uygulamasını tamamlama

GPT-2 modelini TensorFlow Lite'a dönüştürdüğünüze göre artık uygulamada dağıtabilirsiniz.

Uygulamayı çalıştırma

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

Android Studio'ya model ekleme

  1. Gezinme menüsünde execute.png Çalıştır'ı tıklayın ve uygulamanın yüklenmesini bekleyin.
  2. Metin alanına birkaç başlangıç kelimesi yazıp Oluştur'a dokunun.

Tamamlanmış uygulamanın ekran görüntüsü

6. Sorumlu yapay zeka ile ilgili notlar

Orijinal OpenAI GPT-2 duyurusunda belirtildiği gibi, GPT-2 modeliyle ilgili dikkate değer uyarılar ve sınırlamalar vardır. Aslında, günümüzdeki LLM'ler genellikle halüsinasyon, saldırgan çıktı, adalet ve önyargı gibi iyi bilinen bazı zorluklara sahiptir. Bunun nedeni, bu modellerin gerçek dünyadaki verilerle eğitilmesi ve bu nedenle gerçek dünyadaki sorunları yansıtmasıdır.

Bu codelab yalnızca TensorFlow araçlarıyla desteklenen uygulamaların nasıl oluşturulacağını göstermek için hazırlanmıştır. Bu codelab'de üretilen model yalnızca eğitim amaçlıdır ve üretimde kullanılmak üzere tasarlanmamıştır.

LLM'lerin üretimde kullanımı, eğitim veri kümelerinin dikkatli bir şekilde seçilmesini ve kapsamlı güvenlik önlemlerini gerektirir. LLM'ler bağlamında Sorumlu Yapay Zeka hakkında daha fazla bilgi edinmek için Google I/O 2023'teki Üretken Dil Modelleriyle Güvenli ve Sorumlu Geliştirme başlıklı teknik oturumu izleyin ve Sorumlu Yapay Zeka Araç Seti'ni inceleyin.

7. Sonuç

Tebrikler! Tamamen cihaz üzerinde önceden eğitilmiş bir büyük dil modeli çalıştırarak kullanıcı girişine dayalı tutarlı metinler oluşturmak için bir uygulama geliştirdiniz.

Daha fazla bilgi