Vahid 4 / 11

Cihazda AI: Core ML, TensorFlow Lite və ML Kit

Qazanclar:

  • Cihazda və ya buludda qərar vermək və məxfilik, oflayn ehtiyac, model ölçüsü və batareya meyarlarına əsaslanaraq düzgün aləti (ML Kit, Core ML, TensorFlow Lite) seçmək bacarığı
  • Modelin inteqrasiyasında model sənədindən daxilolmaların əvvəlcədən işlənməsini (ölçü və normallaşdırma) yoxlayaraq səssiz səhvlərin qarşısını almaq imkanı
  • Aşağı inamlı proqnozları mütləq həqiqət kimi təqdim etmədən etibarlılıq xalını qiymətləndirmək və nəticəni istifadəçi təsdiqi ilə və real cihazda ölçmək bacarığı.

İndiyə qədər biz inkişaf prosesini sürətləndirmək üçün süni intellektdən istifadə etmişik. İndi süni intellektin ikinci roluna keçirik: proqrama daxil edilmiş istedad. Müasir telefonlar təsvirin tanınması, mətnin tərcüməsi, nitqin transkripsiyası və s. kimi süni intellekt modellərini birbaşa cihazda (cihazda — serverə getmədən telefonun öz prosessorunda) idarə etmək gücünə malikdir. cihazda AI; Sürət, məxfilik və oflayn əməliyyat baxımından bulud həlləri ilə müqayisədə böyük üstünlüklər təklif edir. Bu bölmədə biz iOS-un Core ML, cross-platform TensorFlow Lite (indi LiteRT kimi tanınır) və Google-un hazır həlli ML Kit ilə AI-ni tətbiqə necə yerləşdirməyi və bu inteqrasiyada süni intellektdən köməkçi kimi istifadə etməyi öyrənəcəyik.

Cihazda və ya buludda?

Bu, ilk və ən vacib memarlıq qərarıdır. Cihazda olan süni intellekt telefondan məlumatları silmir – məxfilik üçün böyük qələbə. O, həmçinin anidir və şəbəkə gecikməsi olmadığı üçün oflayn işləyir. Bununla belə, cihazın emal gücü və yaddaşı ilə məhdudlaşır; Çox böyük modellər (məsələn, nəhəng dilli modellər) telefona sığmayacaq və ya batareyanı boşaldacaq. Bulud AI isə qeyri-məhdud güc təklif edir, lakin məlumatları serverə göndərir, şəbəkə tələb edir və gecikmə yaradır.

meyar

Cihazda

Bulud (bulud API)

Məxfilik

Məlumat cihazda qalır, güclüdür

Məlumat serverə gedir, diqqət tələb olunur

sürət

Ani, şəbəkə yoxdur

Şəbəkə gecikməsindən asılıdır

oflayn

Bu işləyir

işləmir

Model ölçüsü

Məhdud (telefon resursu)

limitsiz

batareya/istilik

Ağır istifadə ilə təsirlər

Server yüklənir, cihaz rahatdır

Xərc

Pulsuz (cihaz mənbəyi)

İstifadəyə görə ödəniş

Qərar vermə qaydası: Əgər şəxsi/həssas məlumatlar emal edilirsə, oflayn işləmək lazımdırsa və ya ani cavab vacibdirsə, cihazda seçin. Çox böyük bir modelə ehtiyacınız varsa, buluda müraciət edin. Bu bölmə cihaz üzərində fokuslanır; Növbəti bölmədə bulud AI-ni əhatə edəcəyik.

İpucu: Həssas məlumatları (sağlamlıq, biometrik məlumatlar, məkan) idarə edən funksiya üçün həmişə cihazı defolt edin. “Məlumat cihazı tərk etmir” ifadəsi həm məxfiliyə uyğunluq, həm də istifadəçi etibarı üçün əvəzolunmazdır və mağazanın məxfilik etiketində böyük fərq yaradır.

Üç yol: ML Kit, Core ML, TensorFlow Lite

ML Kit (Google) başlamağın ən asan yoludur: o, mətnin tanınması (OCR — şəkildəki mətnin oxunması), üz aşkarlanması, ştrixkodun oxunması, bir neçə sətirdə tərcümə kimi hazır imkanlar verir. Öz modelinizi öyrətməyə ehtiyac yoxdur. Core ML (Apple) öz modelinizi və ya iOS-da hazır modeli işlətməyin ən səmərəli yoludur; O, Apple şirkətinin Neural Engine (süni neyron şəbəkə prosessoru) aparatından istifadə edir. TensorFlow Lite/LiteRT həm Android, həm də iOS-da öz təlim keçmiş modelinizi idarə etməyə imkan verən çarpaz platforma həllidir.

AI ilə ümumi inteqrasiya axını belədir:

  1. İstedad tərifi. "Mən fotoşəkildəki mətni oxumaq istəyirəm" kimi aydın bir məqsəd.
  2. Yol seçimi. Hazır istedad varsa, ML Kit; Xüsusi model varsa, Core ML/TF Lite.
  3. Model formatı. .mlmodel (Core ML), .tflite (TF Lite). AI çevrilmə addımlarını izah edir.
  4. İnteqrasiya kodu. Modelin yüklənməsi, girişin əvvəlcədən işlənməsi, çıxışın şərh edilməsi.
  5. Performans testi. Real cihazda sürət, yaddaş, batareyanın ölçülməsi.
Diqqət: Cihazda model inteqrasiyasında ən çox yayılmış süni intellekt səhvi girişin əvvəlcədən işlənməsidir - şəkli modelin gözlədiyi ölçü və rəng formatına çevirmək. Model 224x224 piksel gözləyirsə və ona 300x300 verirsinizsə, nəticə mənasız olacaq, ancaq səhv mesajı almayacaqsınız. Modelin sənədindən ilkin emal dəyərlərini yoxlayın.

Modelin sərhədlərini bilmək

Cihazda olan model təlim keçdiyi məlumatlara əsasən qərarlar qəbul edir. Yalnız gün ərzində çəkilmiş fotoşəkillərdə öyrədilmiş obyekt tanıma modeli gecə görüntülərində səhv olacaq. Modelin etimad balı var (etibar — modelin öz cavabından nə qədər əmin olduğu, adətən 0 ilə 1 arasında); Aşağı inamlı nəticələri istifadəçiyə dəqiq kimi təqdim etmək təhlükəlidir. Məsələn, dəri ləkələrini skan edən proqramda "mütləq xeyirxah" deməməli, "modelin proqnozu belədir, lütfən həkimə müraciət edin" deməlidir. Modelin nəticəsi diaqnoz deyil, tövsiyədir.

üç mini qutu

1-ci hal — OCR ilə sürətləndirmə. Xərcləri izləmə proqramı ML Kit mətn tanınması ilə qəbzləri əl ilə daxil etmək yükünü aradan qaldırdı. İstifadəçi qəbzin şəklini çəkir, məbləğ və tarix avtomatik olaraq doldurulur. Əllə daxil olma müddəti hər qəbz üçün 40 saniyədən 8 saniyəyə endirildi. Komanda həmişə istifadəçidən AI-nin oxuduğu məbləği təsdiqlədi; çünki qırışmış qəbzlərdə 6% xəta marjası var idi. Avtomatlaşdırma + insan təsdiqi düzgün balans idi.

2-ci hal - Əvvəlcədən emal xətası. Bir komanda bitki tanıma modelini TensorFlow Lite ilə birləşdirdi; Test cihazında nəticələr təsadüfi idi. Problem onda idi ki, AI-nin yaratdığı kod təsviri modelin gözlədiyi [0,1] diapazonuna normallaşdırmadı (piksel dəyərləri 0-255 arasında qaldı). Normallaşdırma əlavə edildikdə, dəqiqlik 30%-dən 89%-ə yüksəldi. Dərs: ön emal səssiz, lakin ölümcüldür.

İş 3 - Məxfilik qazancı. Sağlamlıq proqramı cihazda olan Core ML modeli ilə ürək dərəcəsi məlumatlarından anomaliya aşkarladı. Məlumatlar heç vaxt serverə getməyib. Bu seçim tətbiqə App Store məxfilik etiketində "məlumat toplamır" ifadəsini almağa imkan verdi və rəqiblərlə müqayisədə yükləmə sürətini artırdı. Cihazda seçim həm etik, həm də kommersiya baxımından sərfəli idi.

Zəif məlumat / Güclü göstəriş

Zəif göstəriş: "Mənim tətbiqimə şəkil tanınması əlavə edin."

Güclü xəbərdarlıq: "Android/Kotlin tətbiqimə məbləğ və tarix oxuma funksiyasını əlavə edin. - Google ML Kit Mətn Tanınması (cihazda, oflayn) istifadə edin - Kameradan və ya qalereyadan şəkil çəkin - Tanınmış mətndən məbləği və tarixi regex ilə çıxarın - Nəticəni EDITABLE sahəsində təsdiq etmək üçün istifadəçiyə təqdim edin - Əl axını və avtomatik rədd etmə əvvəlcədən emal və səhv vəziyyətləri, addımları izah edin."

Kopyalana bilən şablonlar

Yol seçimi şablonu: "Aşağıdakı funksiyanı etmək istəyirəm: [xüsusiyyət]. Bu, cihazda və ya buludda olmalıdır? Məxfilik, oflayn ehtiyac, model ölçüsü, batareya, qiymətə əsaslanaraq müqayisə edin. Müvafiq aləti (ML Kit / Core ML / TF Lite) tövsiyə edin və əsaslandırın."

İnteqrasiya şablonu:"[platforma] üçün [model/bacarıq] inteqrasiyasını yazın:1) Modelin yüklənməsi2) Daxiletmənin əvvəlcədən işlənməsi (gözlənilən ölçü və normallaşdırma)3) Nəticə çağırışı4) Çıxışın şərhi və etibarlılıq xalının yoxlanılması5) Aşağı inamlı nəticə ilə bağlı istifadəçiyə xəbərdarlıq. Modelin işlənməsinin sənədlərinin dəyərlərini yoxlamağı mənə xatırlat."

Etibar hesabı şablonu:"Bu nəticə kodunda etimad xalını nəzərdən keçirin:- Nəticəni eşikdən aşağı "dəqiq" təqdim edin (məsələn, 0.6) - İstifadəçiyə "bu təxmindir" qeydini göstərin - Kritik sahə (sağlamlıq, təhlükəsizlik) olarsa, ekspertə müraciət edin[kod]"

Performansın yoxlanılması şablonu: "Cihazdaxili model inteqrasiyası üçün faktiki cihazda ölçməli olduğum ölçüləri sadalayın: nəticə çıxarma vaxtı, yaddaş artımı, batareyanın təsiri, istilik. Hər biri üçün ölçmə üsulunu deyin."

Ümumi səhvlər

  • Əvvəlcədən emaldan keçmək və ya səhv etmək. Səhv ölçü/normallaşdırma səssizcə yanlış nəticə verir.
  • Etibar xalını nəzərə almamaq. Aşağı inamlı bir təxminin dəqiq olaraq təqdim edilməsi istifadəçini çaşdıracaq.
  • Modelin emulyatorda sınaqdan keçirilməsi. Cihazın faktiki sürəti və batareyası çox fərqlidir; həmişə real aparat üzərində ölçün.
  • Həssas məlumatların lazımsız olaraq buludlara göndərilməsi. Cihazda mümkün olduqda buludu seçmək məxfilik riskidir.
  • Model ölçüsünə məhəl qoyulmur. Böyük model proqramlar yükləmə ölçüsünü artırır və aşağı aparatda qəzaya uğrayır.
  • Modelin təlim limitini unutmaq. Model görmədiyi vəziyyətdə (gecə, fərqli dildə) səhv edir; Bunu istifadəçiyə aydınlaşdırın.

Xülasə

Cihazda olan AI məlumatları telefonda saxlamaqla məxfilik, sürət və oflayn əməliyyat təmin edir; Limit cihazın gücü və model ölçüsüdür. Hazır imkanlar üçün ML Kit, fərdi modellər üçün Core ML (iOS) və TensorFlow Lite (çarpaz platforma) istifadə olunur. İnteqrasiyanın səssiz qatili düzgün olmayan ilkin emaldır; Giriş ölçüsü və normallaşdırma modelin sənədlərindən yoxlanılır. Hər bir nəticə etimad balı ilə gəlir və aşağı inamlı proqnozlar mütləq həqiqət kimi təqdim edilmir. Qərarlar emulyatorda deyil, real cihazda ölçülür.

Tətbiq tapşırığı

“Fotodan mətn oxumaq” və ya “barkod oxumaq” funksiyası üçün AI-dən “Yol seçimi şablonu” ilə onun cihazda, yoxsa buludda olmasını soruşun, sonra “İnteqrasiya şablonu” ilə ML Kit əsaslı planı istəyin. Kodda əvvəlcədən emal mərhələsinin və istifadəçi təsdiqi/redaktə axınının mövcud olduğunu yoxlayın. Güvən bal həddi təyin edin və nəticə etibarsız olarsa nə edəcəyinizi yazın.

yoxlama siyahısı

  • [ ] Mən meyarlara əsasən cihazda/buludda qərar verdim
  • [ ] Mən düzgün alət seçdim (ML Kit / Core ML / TF Lite)
  • [ ] Mən modelin sənədlərindən ilkin emal ölçüsünü və normallaşmasını təsdiqlədim
  • [ ] Mən güvən xalını yoxladım və aşağı inam nəticələri barədə xəbərdarlıq etdim
  • [ ] Nəticəni təsdiq/redaktə ilə istifadəçiyə təqdim etdim, kor-koranə saxlamadım
  • [ ] Performansı emulyatorda yox, real cihazda ölçdüm