Jedinica 11 / 11

End-to-End Projekt, Odgovorno korištenje umjetne inteligencije i Putokaz u struci

Dobici:

  • Sposobnost razvoja mobilne značajke od kraja do kraja i provjerljive u dizajnu, kodu, AI integraciji, privatnosti, testiranju, otklanjanju pogrešaka, izvedbi i koracima izdavanja
  • Sposobnost uspostavljanja okvira za odgovorno i etičko korištenje umjetne inteligencije s načelima transparentnosti, provjere-odgovornosti i pravde-nezlonamjernosti.
  • Biti u stanju stvoriti održivu profesionalnu praksu razlikovanjem područja u kojima je umjetna inteligencija jaka i slaba i zadržavanjem konačne odluke u rukama ljudi.

Kroz ovaj modul koristili smo AI u svakoj fazi mobilnog razvoja: generiranje koda, sučelje, integracija AI-ja na uređaju i u oblaku, testiranje, otklanjanje pogrešaka, performanse, privatnost i isporuka u trgovinu. U ovoj završnoj cjelini kombinirat ćemo sve te dijelove u jedan tijek od kraja do kraja, razjasniti okvir za odgovornu i etičku upotrebu umjetne inteligencije i govoriti o tome kako te vještine pretvoriti u održivu profesionalnu praksu. Temeljna poruka nije se promijenila, ali je sada čvrsto uspostavljena: AI je snaga koja umnožava kompetentnog mobilnog programera; nije zamjena. To je osoba koja je odgovorna za kvalitetu, sigurnost i obećanje proizvoda korisniku.

Značajka od kraja do kraja: kombiniranje dijelova

Razvijanje stvarne značajke od početka do kraja s podrškom za umjetnu inteligenciju kombinira svaku jedinicu koju smo naučili u lancu. Primjer: značajka "dodaj trošak iz računa". Tijek funkcionira ovako:

  1. Dizajn (jedinica 3). Nacrtajte zaslon i četiri stanja (učitavanje/prazno/pogreška/puno) s AI, zatražite pristupačnost od početka.
  2. Šifra (jedinica 2). Generirajte kameru, podatkovni model i ViewModel sloj po sloj s MVVM; provjeriti svaki sloj.
  3. AI na uređaju (Jedinica 4). Očitavanje iznosa/datuma od prijema uz ML Kit prepoznavanje teksta; Razmislite o prethodnoj obradi i ocjenjivanju pouzdanosti.
  4. Povjerljivost (Jedinica 9). Zatražite dopuštenje kamere s najmanjim privilegijama, napišite scenarij odbijanja, zadržite podatke na uređaju.
  5. Ispitivanje (jedinica 6). Generirajte jedinične testove logike ekstrakcije, testiranje korisničkog sučelja zaslona; Uključite granične države.
  6. Otklanjanje pogrešaka (jedinica 7). Neka AI analizira padove s kontekstom i riješi glavni uzrok.
  7. Izvedba (jedinica 8). Izmjerite trošak baterije za obradu fotoaparata i postavite je prilagođenu bateriji.
  8. Emitiranje (cjelina 10). Transparentno prijavite korištenje umjetne inteligencije, istinito ispunite obrazac o privatnosti i provedite samotestiranje.

U svakom koraku AI ubrzava, čovjek provjerava i odlučuje. Ova petlja je srž modula.

Savjet: Ne pokušavajte natjerati AI da radi složenu značajku s jednim ogromnim zahtjevom. Podijelite ga na provjerljive korake kao gore. Testiranje rezultata svakog koraka i prelazak na sljedeći je i sigurnije i u konačnici brže; Jer veliku grešku uhvatiš ne na kraju, nego na prvom koraku.

Odgovorno i etičko korištenje umjetne inteligencije

Sama tehnička kompetencija nije dovoljna; odgovoran okvir ga dovršava. Tri principa:

Transparentnost. Korisnik mora znati da je u interakciji s umjetnom inteligencijom. Tajna AI je zloporaba povjerenja. Sadržaj generiran umjetnom inteligencijom je označen; Savjeti umjetne inteligencije predstavljeni su kao "korisni savjeti", a ne kao "tvrda istina".

Provjera i odgovornost. AI izlaz je početna točka, a ne gotov proizvod. Vi ste odgovorni za svaku objavljenu liniju koda, svaki odgovor umjetne inteligencije, svaku transakciju podataka. "AI je to tako napisao" nije obrana.

Pravda i bezazlenost. AI modeli mogu nositi pristranosti iz podataka na kojima se treniraju. Prepoznavanje lica može raditi lošije na nekim bojama kože, mehanizam za preporuke može isključiti grupu. Vaša je odgovornost provjeriti radi li vaš proizvod pošteno među različitim skupinama korisnika.

Pažnja: Sve tehnike koje naučite u području IT-a i sigurnosti koriste se samo u ovlaštene i konstruktivne svrhe. Korištenje umjetne inteligencije za stvaranje zlonamjernog softvera, krekiranje tuđe aplikacije bez dopuštenja, prikupljanje korisničkih podataka bez pristanka ili proizvodnju obmanjujućeg sadržaja nezakonito je i protivno je etici profesije. Mjera moći se otkriva tamo gdje je ne koristite.

Prepoznavanje ograničenja AI

Zreli programer zna gdje AI blista, a gdje podbacuje.

AI je moćan

AI je slab

Šifra kalupa, proizvodnja kotlova

Proizvod i arhitektonske odluke

Nacrt ispitivanja i dokumentacije

Razumijevanje poslovnog konteksta i korisnika

Čitanje dnevnika pada, skeniranje grešaka

Konačna dijagnoza temeljnog uzroka (potrebna verifikacija)

Učenje, objašnjenje pojma

Aktualne/neizmišljene informacije o API-ju

Tekst, opis, prijevod

Etika, sigurnost i pravna konačna odluka

Internalizacija ove razlike ključna je za učinkovito korištenje umjetne inteligencije i izbjegavanje njezinih zamki.

tri mini kućišta

Slučaj 1 — Brzina s kraja na kraj. Jedan solo programer završio je "unplugged" značajku u 4 dana s gore navedenim tokom od 8 koraka; Bez AI procjena je bila 12 dana. No budući da je provjeravao svaki korak, objava je odobrena prvi put. Brzina je bila stvarna jer je disciplina bila stvarna. Lekcija: AI + verifikacija je brža od AI - verifikacije.

Slučaj 2 — Uhvaćena pristranost. Tijekom testiranja značajke predviđanja roda imenica temeljene na umjetnoj inteligenciji, tim je primijetio sustavne pogreške u nekim turskim imenicama; model je treniran na uglavnom engleskim podacima. Značajka je promijenjena tako da postavlja pitanje korisniku umjesto donošenja pogrešne pretpostavke. Lekcija: Posao programera je testirati pristranost modela pri treniranju.

Slučaj 3 — Obrana "AI je tako rekla" se srušila. Programer je objavio kod plaćanja generiran AI-om bez provjere; U jednom ekstremnom slučaju kod je radio dvostruke kolekcije. Odgovornost se ne uklanja izjavom "AI je to napisao"; Kao vlasnik računa, bio je programer. Pouka: odgovornost se ne može delegirati.

Slab upit / Jak upit

Slab upit: "Napišite mi potpuni zahtjev za skeniranje računa."

Snažan upit: "Pomozite mi razviti značajku 'dodaj trošak od primitka' korak po korak. Nastavimo redom, kada potvrdim i odobrim svaki korak, prijeđite na sljedeći: 1) Zaslon + četiri stanja + pristupačnost2) MVVM slojevi (kamera, model, ViewModel)3) Čitanje iznosa/datuma od primitka s ML Kitom + ocjena povjerenja4) Dozvola za kameru (najmanja privilegija) + odbijanje tijek5) Testovi jedinica i korisničkog sučelja Recite mi rizike i točke koje trebam provjeriti u svakom koraku."

Predlošci koji se mogu kopirati

Predložak planiranja od kraja do kraja: "Razvit ću sljedeću značajku: [značajka]. Podijelite je na provjerljive korake: dizajn, kod, AI integracija, privatnost/dozvola, testiranje, izvedba, izdanje. Napišite izlaz, rizik i kriterije provjere za svaki korak. Nemojte napraviti jednu ogromnu proizvodnju."

Predložak za reviziju etike/pristranosti: "Provjerite sljedeću značajku umjetne inteligencije na pravednost i pristranost: [značajka]. Koje bi grupe korisnika mogla imati lošu izvedbu? Kako podaci o obuci utječu na pristranost? Kako da je testiram, kako da je učinim inkluzivnijom?"

Predložak provjere odgovornosti: "Navedite pitanja o odgovornosti koja bih trebao postaviti prije objavljivanja ovog koda/značajke generirane umjetnom inteligencijom: jesam li ga razumio, jesam li ga testirao, je li siguran, je li transparentan za korisnika, je li legalan/etički?"

Predložak za kontinuirano učenje: "Predložite 4-tjedni praktični plan za poboljšanje mojih AI vještina u razvoju mobilnih uređaja: jedna tema svaki tjedan (kod, integracija, testiranje, izdanje), s ciljem malog projekta i navike verifikacije."

Uobičajene greške

  • Izrada složene značajke s jednim ogromnim zahtjevom. Ne može se provjeriti; raščlanite ga na korake.
  • Izbjegavanje odgovornosti govoreći "AI je tako napisao". Vi ste odgovorni za objavljeni kod.
  • Ne testira se pristranost umjetne inteligencije. Model može loše funkcionirati u nekim skupinama; Testirajte pravdu.
  • Skrivanje AI interakcije od korisnika. Transparentnost je temelj povjerenja.
  • Zaboravljajući ograničenja umjetne inteligencije. Ljudi imaju posljednju riječ o arhitekturi, etici i trenutnom API-ju.
  • Prestati učiti. Alati i pravila trgovine brzo se mijenjaju; Budite stalno ažurirani.

Ukratko

Značajka end-to-end kombinira sve dijelove modula u lancu: dizajn, kod, AI integraciju, privatnost, testiranje, otklanjanje pogrešaka, performanse i izdanje. U svakom koraku AI ubrzava, čovjek provjerava i odlučuje; Kompleksan posao podijeljen je na male provjerljive korake. Odgovorno korištenje temelji se na tri načela: transparentnost, provjera-odgovornost i poštenje-ne štetiti. AI je moćan multiplikator, ali ljudi imaju posljednju riječ o arhitekturi, etici, sigurnosti i trenutnom znanju. "AI je to tako učinio" nije obrana; Vi ste odgovorni za svoj proizvod i obećanje koje ste dali korisniku. Uz ovu disciplinu, AI vas čini bržim, sveobuhvatnijim i jačim tijekom vaše karijere.

Zadatak aplikacije

Raščlanite mobilnu značajku po vašem izboru (npr. "sažimanje pravljenjem glasovnih bilježaka" ili "prepoznavanje proizvoda s fotografije") na provjerljive korake pomoću "predloška planiranja od početka do kraja". Zapravo razvijte i potvrdite barem jedan korak s AI. Zatim analizirajte koje grupe korisnika značajka može uzrokovati probleme s "Predloškom kontrole etike/pristranosti" i odgovorite na pitanja koja trebate postaviti prije izdavanja pomoću "Predloška kontrole odgovornosti".

popis za provjeru

  • [ ] Podijelio sam značajku na provjerljive male korake, a ne na jednu ogromnu proizvodnju
  • [ ] Provjerio sam izlaz umjetne inteligencije u svakom koraku i donio odluku
  • [ ] Korisniku sam transparentno predstavio interakciju umjetne inteligencije
  • [ ] Procijenio sam radi li značajka pošteno/pristrano u različitim skupinama
  • [ ] Odgovorio sam na pitanja o odgovornosti prije objavljivanja (razumljivo/testiranje/sigurno/etično)
  • [ ] Koristio sam AI samo u kompetentne i konstruktivne svrhe i planiram nastaviti učiti

Modul ispit

1. Što je od sljedećeg najtočnije pozicioniranje za umjetnu inteligenciju u mobilnom razvoju?

  • A) AI zamjenjuje programera; može se objaviti izravno bez čitanja koda koji generira
  • B) Umjetna inteligencija radi samo u pisanju teksta, nema nikakve veze s generiranjem koda
  • C) Umjetna inteligencija je pomoćnik i akcelerator; Odgovornost za arhitektonske, sigurnosne i odluke o emitiranju leži na ljudima ✔
  • D) Budući da umjetna inteligencija uvijek proizvodi točan kod, dodatno testiranje i provjera su nepotrebni

Opis: Umjetna inteligencija je pomoćnik i akcelerator koji generira kod, nacrte i rješenja. Odgovornost i konačno odobrenje odluka kao što su arhitektura, izdavanje dozvola, sigurnost i objavljivanje leži na nadležnom investitoru; Ljudi su odgovorni za svaki objavljeni redak.

2. Kada se od umjetne inteligencije traži mobilni kod, što najviše povećava kvalitetu arhitekture proizvedenog koda?

  • A) Neka upit bude što kraći i recite "napišite mi aplikaciju"
  • B) Prvo nametnite arhitekturu poput MVVM i zatražite kod u malim dijelovima, sloj po sloj ✔
  • C) Izrada cijele značajke kao jedne goleme datoteke u jednom upitu
  • D) Uopće nemojte specificirati arhitekturu i prepustite najbolju odluku umjetnoj inteligenciji

Objašnjenje: nametanje arhitekture kao što je MVVM i zahtijevanje sloj po sloj prije pisanja koda izravno u AI proizvodi strukturu koju je moguće testirati i održavati koja odvaja logiku od ekrana. Zahtjev bez arhitekture vraća kod koji sve trpa na ekran.

3. Što se najčešće zanemaruje kod izrade sučelja s umjetnom inteligencijom, a što je najkritičnije u stvarnoj uporabi?

  • A) Dizajniranje učitavanja, praznog stanja i stanja pogreške, a ne samo cijelog zaslona ✔
  • B) Izrada samo najljepšeg izgleda preko cijelog zaslona, preskakanje ostalih slučajeva
  • C) Dodavanje što više boja i animacija svakom ekranu
  • D) Oznake pristupačnosti ostavite na kraju i bavite se samo izgledom

Objašnjenje: Programeri često uzimaju u obzir samo 'puno' stanje; dok se u stvarnosti korisnik uglavnom susreće sa stanjima učitavanja, praznog i pogreške. Generiranje sva četiri stanja (učitavanje/prazno/pogreška/puno) tajna je robusnog sučelja.

4. Zašto je AI na uređaju često zadani izbor za značajku koja obrađuje osjetljive osobne podatke (npr. mjerenje zdravlja)?

  • A) Modeli na uređaju uvijek su precizniji od modela u oblaku
  • B) Obrada na uređaju nikada ne uzrokuje troškove baterije ili procesora
  • C) Obrada na uređaju je neograničena u pogledu veličine modela
  • D) Budući da podaci ne napuštaju telefon, to pruža veliku prednost u pogledu privatnosti i povjerenja korisnika ✔

Objašnjenje: Obrada na uređaju ne uklanja podatke s telefona; Ovo je velika prednost u pogledu usklađenosti privatnosti i povjerenja korisnika, plus radi izvan mreže i trenutačno. Njegovo ograničenje je snaga uređaja i veličina modela.

5. Koja je najčešća 'tiha' pogreška koja uzrokuje besmislene rezultate i ne proizvodi poruku o pogrešci u integraciji modela na uređaju?

  • A) Pogrešno napisan naziv datoteke modela
  • B) Niska rezolucija ikone aplikacije
  • C) Neispravna predprocesiranje ulaza (veličina/normalizacija) ✔
  • D) Tamna tema zaslona

Objašnjenje: Neispravna predobrada unosa će proizvesti potpuno pogrešne rezultate bez izbacivanja grešaka. Vrijednosti pretprocesiranja treba provjeriti iz dokumentacije modela.

6. Koje je sigurnosno najkritičnije pravilo pri integraciji cloud LLM-a u mobilnu aplikaciju?

  • A) API ključ bi se trebao čuvati samo u pozadini, a ne na klijentu; zahtjevi moraju ići kroz proxy ✔
  • B) API ključ treba biti ugrađen izravno u kod aplikacije radi praktičnosti
  • C) API ključ treba dijeliti u opisu aplikacije
  • D) API ključ treba zadržati u klijentu i sakriti samo promjenom naziva.

Otkrivanje: API ključ nikada nije ugrađen u kod mobilne aplikacije; jer se aplikacija može obrnutim inženjeringom i izvući ključ. Ispravna arhitektura je zadržati ključ samo u pozadini i proslijediti zahtjeve kroz vlastiti proxy poslužitelj.

7. Što najviše povećava brzinu koju percipiraju korisnici i stopu završetka značajke u dugim odgovorima na LLM?

  • A) Čekanje da se dobije cijeli odgovor i njegovo prikazivanje odjednom
  • B) Prikazivanje odgovora riječ po riječ, kako se proizvodi, uz strujanje ✔
  • C) Slanje cijele povijesti razgovora modelu sa svakim zahtjevom
  • D) Povećajte model instrukcija kako biste proširili odgovor što je više moguće

Opis: Streaming dramatično povećava percipiranu brzinu i tečnost prikazivanjem odgovora koji se proizvodi riječ po riječ. Umjesto čekanja na praznom ekranu, korisnik gleda obrazac teksta; To značajno smanjuje stopu napuštanja.

8. Koji je najčešći problem u testovima proizvedenim od strane umjetne inteligencije koji test čini bezvrijednim?

  • A) Testovi pokrivaju previše graničnih stanja
  • B) Testovi koriste lažne objekte, a ne stvarne usluge
  • C) Testovi se izvode vrlo brzo
  • D) Napuhavanje opsega praznim/beskorisnim testovima koji zapravo ne potvrđuju ponašanje ✔

Objašnjenje: Umjetna inteligencija ponekad proizvodi testove koji zapravo ne provjeravaju nikakav izlaz (npr. samo pozovite funkciju i napišite praznu tvrdnju). Oni povećavaju broj pokrivenosti, ali ne pružaju stvarnu zaštitu; Svaki test mora biti provjeren kako bi se potvrdilo smisleno ponašanje.

9. Zašto nije dovoljno rješenje utišati pad stavljanjem u try-catch s prijedlogom umjetne inteligencije?

  • A) try-catch se uopće ne može koristiti u mobilnim aplikacijama
  • B) Pad prestaje, ali budući da glavni uzrok nije riješen, problem se vraća u drugom obliku ✔
  • C) Korištenje try-catch usporava aplikaciju, stoga je zabranjeno
  • D) Utišanu pogrešku trgovina automatski odbija

Objašnjenje: Utišavanje simptoma ne rješava temeljni uzrok; Rušenje prestaje, ali se izvorni problem (npr. prekinuta podatkovna veza) vraća u drugom obliku (npr. gubitak podataka). Cilj profesionalnog otklanjanja pogrešaka je riješiti glavni uzrok, a ne simptom.

10. Koje je osnovno zlatno pravilo koje treba slijediti u optimizaciji performansi?

  • A) Prvo napravite profil i izmjerite stvarno usko grlo, a zatim optimizirajte ✔
  • B) Pogađanje gdje je sporo i tamo koncentracija
  • C) Težnja za malim dobicima u svakoj funkciji
  • D) Mjerenje performansi na emulatoru i nikad isprobavanje stvarnog uređaja

Opis: prvo izmjerite, kasnije optimizirajte. Pravo usko grlo je gotovo uvijek na drugom mjestu od predviđenog; Optimizacija bez profiliranja je slijepo nagađanje i često je gubitak truda.

11. Koja je najvažnija inženjerska briga za stalno pokrenutu AI značajku (npr. prijevod kamerom uživo)?

  • A) Značajka zahtijeva što više dopuštenja
  • B) Upravljanje troškovima baterije i procesora kontinuirane obrade s učestalošću uzorkovanja i skupnom obradom ✔
  • C) Pokrenite značajku samo na najskupljim telefonima
  • D) Kontinuirano renderiranje kamere s najvećom mogućom brzinom sličica u sekundi

Opis: Stalno radni model, kamera i mreža; Može brzo potrošiti bateriju, zagrijati uređaj i biti ograničen od strane sustava. Smanjenje učestalosti uzorkovanja, grupiranje i pokretanje samo po potrebi načini su upravljanja troškovima baterije.

12. Što načelo 'najmanje privilegije' u upravljanju dozvolama znači u mobilnom razvoju?

  • A) Traženje svih mogućih dopuštenja pri pokretanju, za svaki slučaj.
  • B) Onemogućavanje aplikacije ako je dopuštenje odbijeno
  • C) Traženje najšireg dopuštenja i planiranje kasnijeg sužavanja.
  • D) Traženje samo dopuštenja koje je stvarno potrebno, kada je potrebno i unutar najužeg opsega, uz scenarij odbijanja ✔

Objašnjenje: Najmanja privilegija je tražiti samo ono dopuštenje koje je stvarno potrebno, kada je potrebno i u najnižem mogućem opsegu. Previše dopuštenja potkopava povjerenje korisnika, dovodi do odbijanja pohrane i povećava rizik od curenja podataka.

13. Koji specifični zahtjevi moraju biti ispunjeni prilikom predstavljanja aplikacije s umjetnom inteligencijom trgovini?

  • A) Transparentnost sadržaja, kontrola sadržaja i otkrivanje podataka koji idu umjetnoj inteligenciji u obliku povjerljivosti ✔
  • B) Skrivanje korištenja umjetne inteligencije od korisnika
  • C) Označavanje podataka koji zapravo nisu prikupljeni u obrascu privatnosti
  • D) Obećavajuća svojstva koja ne postoje u opisu

Otkrivanje: Trgovine očekuju transparentnost sadržaja (izjava da proizvodi umjetnu inteligenciju), moderiranje sadržaja (filtriranje štetnog izlaza i obavijesti korisnika) i otkrivanje upotrebe podataka iz aplikacija koje sadrže umjetnu inteligenciju; U osjetljivom području potrebno je upozorenje o točnosti. Prijave koje ih izostave bit će odbijene.

14. Zašto je obrana 'AI tako napisao' nevažeća kada se pojavi rubna pogreška u objavljenom kodu generiranom umjetnom inteligencijom?

  • A) Budući da umjetna inteligencija uvijek proizvodi kod bez pogrešaka, pogreška dolazi od korisnika
  • B) Zato što automatski pohranjuje ispravan kod generiran umjetnom inteligencijom
  • C) Zato što se odgovornost ne može prenijeti na umjetnu inteligenciju; Programer je odgovoran za objavljeni kod i podatke ✔
  • D) Zato što se kod generiran umjetnom inteligencijom nikada ne objavljuje

Opis: AI izlaz je početna točka, a ne gotov proizvod. Programer je taj koji je odgovoran za svaki objavljeni redak, svaki obrađen podatak i svako dano obećanje; odgovornost se ne može prenijeti na AI, tako da se izlaz mora razumjeti i testirati prije objavljivanja.