1. Başlamadan önce
Bu codelab'de, insan odaklı veri uygulamalarına ve doğru şekilde ayarlanmış kullanıcı güvenine odaklanarak yapay zeka ile yeni bir ürün tasarlamak için People + AI Research (PAIR) Guidebook'un yeni sürümündeki en iyi uygulamaları kullanacaksınız.
Ön koşullar
- Yapay zekanın ne olduğuyla ilgili 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:
- PAIR Rehberi'nin ikinci baskısındaki yenilikleri öğrenin.
- Kullanıcı güvenini ayarlamak 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 inceleyebileceğiniz materyal ve kaynaklardan oluşan daha kapsamlı bir araç seti hakkında bilgi edinin.
İhtiyacınız olanlar
- Tarayıcı
- Colaboratory not defterini (ör. BERT ile Duygu Analizi) görüntülemek için Google Hesabı
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 bilgileri daha da uygulanabilir hale getirmek için bir dizi güncellemeyi kullanıma sunmaktan 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 olduğunda ihtiyacınız olan içeriği 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üven oluşturmasına ve sistemi kalibre etmesine nasıl yardımcı olabilirim?
- 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 yaşandığında kullanıcılara nasıl destek olabilirim?

Bir soru seçtiğinizde, daha küçük ve daha uygulanabilir birimler halinde alakalı içerikler gösterilir.
Ayrıca PAIR Rehberi'ni 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 zekayla yeni bir özellik geliştirirken bu tasarım kalıplarından bazılarını bir iş akışında uygulamalı olarak göreceksiniz.
Haydi, başlayalım.
3. Kullanıcı ihtiyaçlarını yapay zeka sorununa dönüştürme
Şu senaryoyu ele alalım:
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 uygulama işlemine 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 bileti fiyatlarındaki değişiklikler 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 Guidebook'un Veri Toplama + Değerlendirme bölümündeki eşleştirme alıştırmasını kullanarak şunları 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 önerileceği ve neden (duygu etiketleri veya etiketler)
- Yapay zeka sisteminin öğrenmesi: Film önerilerini kabul etme, filmlerin tamamını izleme, filmler hakkında yorum yazma ve 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 neden reddedildiğine dair 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 ("bildirim ve izin fırsatları sunma") ve adalet ("geliştirme döngülerine çeşitli kullanıcıların ihtiyaçlarını dahil etmek için yinelemeli kullanıcı testi yapma") gibi önemli hususları ele almanıza yardımcı olacak çerçeveler için Google'ın Yapay Zeka İlkeleri ve Sorumlu Yapay Zeka Uygulamaları'nı inceleyin.
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 ya da 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 sayede, modelinizi gerçek dünyada kullanıma sunduktan sonra hataları ve düşük kaliteli önerileri önleyebilirsiniz.
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 sorunu 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 kaynaklarda bulabilirsiniz:
- 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ın yeni yapay zeka destekli özelliğe katılımını planlamanız ve beklentilerini uygun şekilde belirlemelerine yardımcı olmanı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. Açıklamaları ürün deneyimi boyunca ve dışında çeşitli şekillerde sunmanız gerekir:
- Anlık olarak açıklama yapma. Uygun olduğunda belirli bir çıkarım, öneri, teklif vb. için nedenler sun.
- Üründe ek açıklamalar sunun. 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 "Yapay zeka sistemimi kullanıcılara nasıl açıklarım?"ı seçtiğinizde şu kalıbı görürsünüz: Anlaşılabilirlik için açıklama yapın, eksiksiz bilgi vermeyin.
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ın örnekleri yer almaktadır.
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çesiyle birlikte film önerisi
Bu örnek açıklamada, PAIR Rehberi'ndeki 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ç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. önem 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 neden veya nasıl belirli bir karara 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, 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. Bu göstergeler, yapay zekanın tahmininde ne kadar kesin olduğunu ve dikkate alınan alternatifleri açıklar.
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:
- En olası N 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 sonra devam etme yolu sunma
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ş. 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 bildirimleri modelinizi iyileştirmek için mümkün olduğunca kullanın.
Yapay zeka sistemlerindeki geri bildirimler çeşitli şekillerde olabilir. Örneğin:
- Ö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ıba bağlantı: 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 sonra devam etme yolu sunma
- Ü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:

