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.
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:
- Bu codelab'in GitHub deposuna gidin.
- Bu codelab'in tüm kodunu indirmek için Code > Download zip'i (Kod > Zip dosyasını indir) tıklayın.
- İ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
examples/lite/examples/generative_ai/android
klasörünü Android Studio'ya aktarın.- Android Emulator'ı başlatın ve gezinme menüsünde
Ç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.
4. LLM'yi cihaz üzerinde dağıtıma hazırlama
- Colab'i açın ve TensorFlow Codelabs GitHub deposunda barındırılan not defterini inceleyin.
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
- 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 uygulamanın yüklenmesini bekleyin.
- Metin alanına birkaç başlangıç kelimesi yazıp Oluştur'a dokunun.
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.