1. Başlamadan önce
Bu codelab'de, People + AI Research (PAIR) Guidebook'un yeni sürümündeki en iyi uygulamaları kullanarak yapay zeka ile yeni bir ürün tasarlayacaksınız. Bu süreçte, insan odaklı veri uygulamalarına ve kullanıcı güveninin doğru şekilde ayarlanmasına odaklanacaksınız.
Ön koşullar
- Yapay zekanın ne olduğuna dair temel bilgi
- Ürün geliştirme iş akışı hakkında bilgi sahibi olmak
Neler öğreneceksiniz?
Bu codelab'de, güvenilir ve kullanıcı odaklı yapay zeka ürünleri oluşturmak için Google Araştırma'nın People + AI Guidebook'unu nasıl kullanacağınızı öğreneceksiniz.
Özellikle şunları yapacaksınız:
- PAIR Rehberi'nin ikinci baskısındaki yenilikleri öğrenin.
- Kullanıcıların güvenini artırmak için yapay zeka geliştirme sürecindeki fırsatları vurgulayan bir dizi alıştırma yapın. Bu alıştırmalarda, veriler ve kullanıcıya yönelik açıklanabilirlik konularına odaklanın.
- Daha fazla keşif için kullanabileceğiniz daha kapsamlı bir materyal ve kaynak araç seti hakkında bilgi edinin.
İhtiyacınız olanlar
- Tarayıcı
- Colaboratory not defterini görüntülemek için Google Hesabı (ör. BERT ile Yaklaşım Analizi)
2. Başlayın
Bu yıl Google I/O'da PAIR Rehberi'nin ikinci baskısını tanıtıyoruz. İlk sürümü iki yıl önce yayınlanan bu kitap, o zamandan beri dünyanın dört bir yanındaki farklı rollerden (geliştiriciler, tasarımcılar, ürün yöneticileri, öğrenciler vb.) 250.000'den fazla kişi tarafından kullanıldı. Şimdi ise bu özelliği daha da işlem yapılabilir hale getirecek bir dizi güncellemeyi duyurmaktan heyecan duyuyoruz.
Bu ikinci sürümde, özellikle Rehber'de gezinmek ve görevlere göre içerik bulmak için yeni bir yöntem sunuyoruz. Kullanıcı odaklı yapay zeka yaklaşımıyla ürün geliştirirken sizin ve ekibinizin aklına gelebilecek önemli soruların bir listesini oluşturduk. Bu liste, ihtiyacınız olan içeriği ihtiyacınız olduğunda bulmanıza yardımcı olacaktır:
- Ürünüme yapay zekayı ne zaman ve nasıl entegre etmeliyim?
- Veri kümemi nasıl sorumlu bir şekilde oluşturabilirim?
- Kullanıcıların yapay zeka sistemime güvenmelerini ve sistemi kalibre etmelerini nasıl sağlayabilirim?
- Kullanıcıları yeni yapay zeka özelliklerine nasıl dahil edebilirim?
- Yapay zeka sistemimi kullanıcılara nasıl açıklayabilirim?
- Kullanıcı kontrolü ve otomasyon arasında doğru denge nedir?
- Bir sorun oluştuğunda kullanıcılara nasıl destek verebilirim?
Bir soru seçtiğinizde, daha küçük ve daha uygulanabilir birimler halinde alakalı içerikler gösterilir.
PAIR Rehberi'ni de yeni içeriklerle güncelledik:
- Bir dizi yapay zeka tasarım kalıbı
- Örnek olaylar
- Güncellenen bölümler
- Yeni alıştırmalar ve atölye kiti
Bu codelab'de, yapay zeka ile yeni bir özellik geliştirirken bu tasarım kalıplarından bazılarını bir iş akışında kullanırken göreceksiniz.
Haydi, başlayalım.
3. Kullanıcı ihtiyaçlarını yapay zeka sorununa dönüştürme
Aşağıdaki senaryoyu düşünün:
Film izleme uygulaması geliştiriyorsunuz ve kullanıcılara daha iyi ve özelleştirilmiş bir deneyim sunarak keyif alacakları daha fazla film bulmalarına yardımcı olmak istiyorsunuz.
Uygulamanın açılış sayfasında şu anda aşağıdaki bölümler yer almaktadır:
- Yayın tarihine göre sıralanmış yeni filmlerin listesi
- Tüm filmlerin türlerine göre düzenlenmiş kataloğu
- Kullanıcıların film başlığı, oyuncu vb. ile arama yapabileceği bir arama kutusu.
Kişiselleştirilmiş öneriler içermeyen film uygulaması
Kullanıcıya film önerileri içeren yeni bir bölüm eklemek istiyorsunuz ve bu özelliği uygulamak için yapay zekanın iyi bir seçenek olabileceğini düşünüyorsunuz. Herhangi bir uygulamaya başlamadan önce şunları yapmanız gerekir:
- Mevcut iş akışlarını inceleyin: Kullanıcılar şu anda uygulamayla nasıl etkileşim kuruyor ve deneyimlerinin nasıl iyileştirilebileceğini düşünüyorsunuz?
- Yapay zekanın benzersiz bir değer katıp katamayacağını belirleyin: Sorununuz, yapay zeka ile iyi bir şekilde çözülebilecek bir sorunla eşleşiyor mu ve yapay zeka, ürününüzün kullanıcı deneyimini iyileştirecek mi?
PAIR Kılavuzu'nun Kullanıcı İhtiyaçları + Başarıyı Tanımlama bölümünü kullanarak yapay zekanın muhtemelen iyi bir çözüm olacağı kullanım alanlarının listesini inceliyorsunuz ve kullanıcılarınızın ihtiyacının aşağıdaki sorun türleri arasında yer aldığını görüyorsunuz:
- Farklı kullanıcılara farklı içerikler önerme
- Kişiselleştirme, kullanıcı deneyimini iyileştirir
- Dinamik içerik göstermek, tahmin edilebilir bir arayüze göre daha verimlidir.
Yapay zekanın muhtemelen daha iyi bir çözüm olmadığı durumların listesini de incelemeyi unutmayın.
Yapay zeka destekli bir çözümün bu kullanıcı ihtiyacını karşılamak için iyi bir seçenek olduğunu gördüğünüzde, bu çözümün gerçekten daha iyi bir kullanıcı deneyimi sağlayıp sağlamayacağını değerlendirmek isteyeceksiniz.
Desen:
Yapay zeka ile geliştirmeye başlamadan önce, düşündüğünüz ürün veya özelliğin yapay zeka gerektirdiğinden ya da yapay zeka ile geliştirilebileceğinden emin olun.
Yapay zeka, aşağıdaki gibi uygulamalar için uygundur:
- Farklı kullanıcılara farklı içerikler önerme (ör. film önerileri)
- Hava durumu olayları veya uçak fiyatı değişiklikleri gibi gelecekteki olayları tahmin etme
- Doğal dil anlama
- Görüntü tanıma
Kurala veya sezgisel çözüme başvurmak daha iyi olabilir:
- Öngörülebilirliği korumak önemlidir
- Kullanıcılar, müşteriler veya geliştiriciler tam şeffaflık istiyor
- Kullanıcılar, bir görevin otomatikleştirilmesini istemiyor
Yapay zekayı ne zaman kullanacağınız (veya kullanmayacağınız) hakkında daha fazla bilgi için Kullanıcı İhtiyaçları bölümüne bakın.
Tam kalıbın bağlantısı: https://pair.withgoogle.com/guidebook/patterns#determine-if-ai-adds-value
Her kullanıcının beğenebileceği filmleri vurgulayarak uygulamaya değer katabilir, kullanıcılara yalnızca en yeni veya genel olarak en yüksek puanlı filmleri göstermek yerine daha zengin bir kullanıcı deneyimi sunabilirsiniz. Ayrıca, bu özellik sayesinde hızla büyüyen film kataloğunu keşfederken zamandan tasarruf edebileceklerini de düşünüyorsunuz.
Yapay zeka destekli bir çözümle ilerlemeye karar verdiğinize göre, sonraki adımlarınızı planlamaya başlayabilirsiniz.
4. Görev için veri kümesi oluşturma
Bir tavsiye sistemini kullanıcılara film önerileri sunacak şekilde eğitmek için yapay zeka modelinizin öğreneceği bir veri kümesi oluşturmanız gerekir.
Öncelikle kullanıcı ihtiyaçlarını veri ihtiyaçlarıyla eşleştirmeniz gerekir.
PAIR Kılavuzu'nun Veri Toplama + Değerlendirme bölümündeki eşleştirme alıştırmasını kullanarak aşağıdakileri belirlersiniz:
- Kullanıcı: Film izleyicileri (film uygulaması kullanıcıları)
- Kullanıcı ihtiyacı: Beğendikleri filmleri daha kolay ve hızlı bir şekilde bulma
- Kullanıcı işlemi: Uygulama üzerinden film seçip izleme
- Yapay zeka sistemi çıkışı: Hangi filmlerin neden önerileceği (duygu etiketleri veya etiketler)
- Yapay zeka sisteminin öğrenmesi: Film önerilerini kabul etme, filmlerin tamamını izleme, filmler hakkında yorum yazma ve bu filmlere yüksek puan verme gibi davranış kalıpları
- Gerekli veri kümeleri: Uygulamadan alınan film izleme verileri, film bilgileri, film puanları ve yorumları
- Veri kümesinde bulunması gereken temel özellikler: İzleyicinin film tercihleri ve izleme geçmişi, film bilgileri (ör.tür, oyuncular), film yıldız puanları, film yorumları
- Veri kümesinde bulunması gereken temel etiketler: Uygulama önerisinin izleyici tarafından kabul veya reddedilme oranı, izleyicinin filmi tamamlama oranı, izleyici puanları ve yorumları, önerinin reddedilme nedenine ilişkin izleyici geri bildirimi
Bu alıştırmayı tamamladığınıza göre artık birkaç olası veri kaynağının ortaya çıktığını görebilirsiniz:
- Uygulamadaki kullanıcı verileri (belirtilen tercihler ve görüntüleme geçmişi)
- Uygulamadaki film bilgileri (ad, yıl, süre, oyuncular vb.)
- IMDB ve MovieLens gibi diğer kaynaklardan alınan film yorumları ve derecelendirme bilgileri
İhtiyacınız olan veri türü hakkında bir fikriniz olduğunda, gizlilik (ör. "bilgilendirme ve izin verme fırsatları sunma") ve adalet (ör. "Geliştirme döngülerinde farklı kullanıcıların ihtiyaçlarını dahil etmek için iterasyonlu kullanıcı testleri yapın.")
Son olarak, eğitim veri kümenizi hazırlarken gerçekçi olan ve dünyadaki "gürültülü" verileri yansıtan veriler topladığınızdan emin olun. Örneğin, yazım hataları, kısaltmalar, emojiler ve alışılmadık veya beklenmedik karakterler içeren film yorumlarını eklediğinizden emin olun. Çünkü uygulamanızın kullanıcıları gelecekte büyük olasılıkla mükemmel şekilde biçimlendirilmiş yorumlar yerine benzer şekilde gerçek ve "gürültülü" yorumlar gönderecektir.
Desen:
Eğitim veri kümenizi geliştirirken mükemmel bir şekilde düzenlenmiş bir veri kümesi oluşturmaya çalışmayın. Bunun yerine, verilerin kullanıcılarınızdan almayı beklediğiniz gerçek dünya verilerine mümkün olduğunca benzer olması için biraz "gürültüye" izin verin. Bu, modelinizi gerçek dünyada yayınladıktan sonra hataları ve düşük kaliteli önerileri önlemenize yardımcı olabilir.
Bunu yapmak için kullanıcılarınızdan almayı beklediğiniz veri türlerini düşünün ve bu verilerin eğitim kümenizde temsil edildiğinden emin olun.
Örneğin, bir görüntü tanıma sistemi için kullanıcılarınızdan alabileceğiniz verileri göz önünde bulundurun. Müşterinizin yüksek kaliteli fotoğraflar çekmeye vakti olmayacaksa ve modelinizin bulanık akıllı telefon görüntüleriyle çalışması gerekecekse eğitim verilerinize bulanık görüntüler ekleyin.
Tam desene bağlantı: https://pair.withgoogle.com/guidebook/patterns#embrace-noisy-data
Kullanıcı ihtiyaçları bir yapay zeka problemi ve veri kümesi ihtiyaçlarıyla eşleştirildiğinde, yapay zekayı eğiterek uygulamanızın kullanıcılarına öneriler sunmaya ve filmleri etiketlemeye hazır olursunuz. Bu codelab'de sürecin bu bölümünü ele almayacağız ancak öneri sistemleri ve duygu analizi hakkında daha fazla bilgiyi aşağıdaki kaynaklardan edinebilirsiniz:
- Google Developers'daki Öneri Sistemleri adlı kendi kendine çalışma kursu
- TensorFlow.org'daki BERT ile Yaklaşım Analizi için Metin Sınıflandırma eğitimi
5. Sistemin özelliklerini ve sınırlamalarını bildirme
Uygulamanızın kullanıcı deneyimini tasarlarken kullanıcıları yeni yapay zeka destekli özelliğe dahil etmeyi ve beklentilerini uygun şekilde belirlemelerine yardımcı olmayı planlamanız gerekir. Kullanıcılar, her durumda yapay zeka sisteminize örtülü olarak güvenmemeli, bunun yerine güvenlerini doğru şekilde ayarlamalıdır.
Kullanıcılarla beklentileri belirleme, ürününüzle ilk etkileşimlerinden önce başlayacak bilinçli bir süreçtir. Ürün deneyimi boyunca ve dışında çeşitli şekillerde açıklamalar sunmanız gerekir:
- Anlık açıklama yapma Uygun olduğunda belirli bir çıkarım, öneri, teklif vb. için nedenler sun.
- Üründe ek açıklamalar sağlayın. Yapay zeka sistemlerini açıklamak için ilk katılım gibi diğer ürün içi anlardan yararlanın.
- Ürün deneyiminin ötesine geçin. Ürün içi bilgiler yeterli olmayabilir ancak farkındalığı artırmaya yönelik pazarlama kampanyaları ve zihinsel modeller geliştirmeye yönelik eğitim materyalleri ve okuryazarlık kampanyaları gibi çeşitli ek kaynaklarla bu bilgileri destekleyebilirsiniz.
Örneğin, bir kullanıcı uygulamaya giriş yaptıktan sonra açılış sayfasına eklenen yeni listeden önerilen bir filmi seçiyor. Kullanıcılar, film hakkında normalde bulabilecekleri bilgilerin yanı sıra önerilenler listesinde neden bu filmi gördüklerine dair bir açıklama da görmek isteyebilir.
PAIR Rehberi'nin soruya göre arama özelliğini kullanarak ve "Yapay zeka sistemimi kullanıcılara nasıl açıklarım?"ı seçerek şu kalıbı bulursunuz: Anlaşılması için açıklayın, eksiksiz olması için değil.
Desen:
Yapay zeka sisteminizden gelen önerileri açıklarken kullanıcıların karar vermesi ve ilerlemesi için ihtiyaç duyduğu bilgileri paylaşmaya odaklanın. Sistemde olan her şeyi açıklamaya çalışmayın.
Genellikle, belirli bir tahminin arkasındaki gerekçe bilinmez veya basit bir ifade ya da cümleyle özetlenemeyecek kadar karmaşıktır. Ayrıca kullanıcılar, ürününüzü kullanırken gereksiz açıklamalarla bunaltılmak veya dikkatinin dağılmasını istemeyebilir.
Açıklanabilirlik ve Güven bölümünde kısmi açıklamalar, aşamalı açıklama ve model güveni gösterimleri gibi kısa ve kullanıcı dostu açıklamalar oluşturmaya yönelik farklı yaklaşımlar hakkında örnekler verilmektedir.
Sistemin genel olarak nasıl çalıştığına dair daha uzun veya daha ayrıntılı açıklamalar paylaşmak istiyorsanız bunu etkin kullanıcı akışının dışında yapın. Örneğin, pazarlama materyallerinde veya oryantasyon içeriğinde bu açıklamaları paylaşabilirsiniz.
Tam kalıbın bağlantısı: https://pair.withgoogle.com/guidebook/patterns#explain-for-understanding
Bu kalıpta belirtilen en iyi uygulamaları uygulayarak aşağıdaki gibi bir açıklama göstermeye karar veriyorsunuz:
Önerinin gerekçesini de içeren film önerisi
Bu örnek açıklamada, PAIR Rehberi'nin Açıklanabilirlik + Güven bölümündeki yönergeleri uyguluyor ve en çok oy alan üç kullanıcı yorumuyla ilgili olarak kullanıcıya açıklama yapmak için veri kaynaklarını kullanıyorsunuz.
Ayrıca, bu filmle ilgili olumlu duygulara en çok katkıda bulunan kelimeleri vurguladınız. Bu kelimeler, kullanıcının film seçiminde önem verdiği faktörlerdir. PAIR'ın Language Interpretability Tool (LIT)'i için bu demoda duygu sınıflandırıcıyı keşfetme hakkında daha fazla bilgi edinebilirsiniz.
Learning Interpretability Tool'un (LIT) ekran görüntüsü
LIT, görsel, etkileşimli ve genişletilebilir bir araç aracılığıyla Doğal Dil İşleme (NLP) modelinin davranışını incelemenize yardımcı olabilir.Bu araç, hipotezleri test etmenize ve bunları alakalı metrikler ve yerel açıklamalar (ör. belirginlik haritaları ve tahmin görselleştirmeleri) içeren bir veri kümesi üzerinde doğrulamanıza olanak tanır. Ürün ekipleri, aşağıdaki örnek kullanım alanlarında LIT'i kullanabilir:
- Model dağıtmadan önce
- Adalet için test yaparken
- Tek tek tahminlerde hata ayıklama
- Yeni bir modeli eski bir modelle karşılaştırırken
6. Güvenin nasıl gösterileceğini belirleme
Kullanıcıların beklentilerini belirlemenin bir diğer yolu da önerilerde model güvenini göstermektir. Model güveni, yapay zekanın belirli bir karara neden veya nasıl vardığını belirtmek yerine, tahmininde ne kadar emin olduğunu ve dikkate aldığı alternatifleri gösterir. Çoğu model, n-best sınıflandırmaları ve güven puanları verebildiğinden model güveni göstergeleri genellikle kolayca kullanılabilen bir açıklamadır.
Kullanıcıya gösterilen önerilen film sayfalarına güven eklemeden önce bu güvenin kullanıcı için yararlı olup olmadığını ve yararlıysa bunu göstermenin en iyi yolunun ne olabileceğini belirlemeniz gerekir.
Desen:
Bazı durumlarda, yapay zekanın tahmininde ne kadar kesin olduğunun ve dikkate alınan alternatiflerin açıklandığı model güveni göstergeleriyle kullanıcıların yapay zeka çıktısına ne kadar güvenmeleri gerektiğini anlamalarına yardımcı olabilirsiniz.
Ancak diğer bağlamlarda, güven göstergelerinin kullanıcılar tarafından anlaşılması zor olabilir.
Bu türleri kullanmaya karar verirseniz kullanıcılarınız için en iyi sonucu veren türü bulmak üzere farklı ekran türlerini ürün geliştirme sürecinin başlarında test edin.
Tam kalıba bağlantı: https://pair.withgoogle.com/guidebook/patterns#how-to-show-model-confidence
PAIR Kılavuzu'nun Açıklanabilirlik + Güven bölümünde güveni göstermeye yönelik önerilen yaklaşımları incelerken aşağıdaki seçenekleri görürsünüz:
- N en olası sınıflandırma
- Sayısal güven düzeyi
Uygulamadaki açılış sayfasında kullanıcıya önerilen filmlerin bir listesini sunduğunuz için, en olası n filmin sırayla gösterildiği sıralı bir liste kullanmayı tercih ediyorsunuz.
Önerilen filmlerin yer aldığı bantta, en olası öneriler önce gösterilir.
7. Kullanıcıya hatalardan sonraki adımları gösterme
Son birkaç adımda, kullanıcılara beklentilerini belirleme ve ürünle ilgili güvenlerini oluşturup kalibre etmelerine yardımcı olurken açıklama yapma konusunda bazı en iyi uygulamaları öğrendiniz.
Cevaplamanız gereken bir diğer önemli soru da şudur: Hata oluştuğunda kullanıcı deneyimi nasıl görünüyor? Kullanıcıların nasıl ilerlediği de aynı derecede önemlidir. Sistem arızalandıktan sonra kullanıcılarınızın neler yapabileceğine odaklanmak, ürününüzün kullanışlılığını korurken kullanıcılarınızı güçlendirir.
PAIR Guidebook'un Errors + Graceful Failure (Hatalar + Zarif Hata) bölümünde açıklandığı gibi, öncelikle ürününüz için hatanın ne olduğunu ve ne tür bir hata olduğunu (kullanıcı, sistem veya bağlam) tanımlamanız gerekir.
Aşağıdaki örnekleri inceleyelim:
- Kullanıcı, sinemada izlediği bir filmle ilgili öneri alıyor. Bu öneri devre dışı olmasa da kullanıcı için pek yararlı değildir.
- Kullanıcı, sinemada izlediği ve beğenmediği bir filmle ilgili öneri alıyor. Bu öneri, kullanıcının filmlerdeki tercihlerine göre hata olarak değerlendirilebilir.
- Kullanıcı, normalde beğenmediği bir türde film önerisi alıyor. Kullanıcı bunu hata olarak değerlendirebilir.
- Kullanıcı, uygulamada artık barındırılmayan bir film için öneri alıyor. Bu, açık bir sistem hatasıdır.
Yukarıda listelenen ikinci ve üçüncü örneklerde yapay zeka, bu kullanıcı için yararlı olmayan bir öneri sunmuştur. Bu tür hatalar oluştuğunda, kullanıcıya tahminle ilgili geri bildirimde bulunma fırsatı vermeniz ve PAIR Rehberi'nin Geri Bildirim + Kontrol bölümünde önerildiği gibi etki süresini bildirmeniz gerekir.
Desen:
Yapay zeka özellikli sisteminiz, kullanıcının beklemediği veya istemediği şekilde davrandığında geri bildirim paylaşma seçeneği sunduğunuzdan emin olun. Ayrıca, bu geri bildirimi modelinizi iyileştirmek için mümkün olduğunca kullanın.
Yapay zeka sistemlerindeki geri bildirimler aşağıdakiler gibi çeşitli biçimlerde olabilir:
- Önerilere beğenme veya beğenmeme simgesi ekleme
- İstenmeyen önerileri gizleme
- Sorunlu önerileri işaretleme veya bildirme
- Kullanıcının bir formu veya başka bir mekanizmayı kullanarak sorunu manuel olarak bildirdiği daha geleneksel geri bildirim akışları
Kullanıcı geri bildirimde bulunduğunda geri bildirimi aldığınızı onaylayın. Mümkünse sisteme geri bildirimlere nasıl yanıt vereceğini bildirin.
Tam kalıbın bağlantısı: https://pair.withgoogle.com/guidebook/patterns#let-users-give-feedback
Uygulamanızda bu durum şu şekilde görünebilir:
Kullanıcılar önerilerle ilgili geri bildirim verebilir...
...ve sonraki adımlar hakkında bilgilendirilirler
8. Tebrikler
Tebrikler! PAIR Rehberi'ndeki yeni kaynaklardan bazılarını nasıl kullanacağınızı gösteren bir örnek iş akışını incelediniz.
Özet
Bu codelab'de şunları öğrendiniz:
- Kullanıcı ihtiyaçlarını yapay zeka sorununa dönüştürme
- Görev için veri kümesi oluşturma
- Kullanıcıları yeni özelliğe dahil etme
- Sistemi açıklayın ve kullanıcı beklentilerini belirleyin
- Kullanıcıya hatalardan sonraki adımları gösterme
- Ürünü iyileştirmek için geri bildirim toplama
Sırada ne var?
Bu Codelab'de vurgulanan tüm kaynakları ve daha fazlasını aşağıdaki bağlantılarda bulabilirsiniz: