RPP 8-9 Flashcards
(27 cards)
Što je GenAI
tehnologija umjetne inteligencije koja:
▪ Koristi duboko učenje (engl. deep learning)
▪ Kako bi generirala novi sadržaj (tekst, slika, …)
▪ Kao odgovor na upit (engl. prompt).
što je inženjerstvo promptova
Prakse koje se bave formuliranjem promptova koji rezultiraju relevantnim, preciznim i korisnim odgovorima
Navedi kategorije informacija promptova
Zadatak, Kontekst, Format
▪ Zadatak– jasan opis što želimo da model napravi za nas
▪ Npr. Generiraj kôd, predloži dizajn, usporedi rješenja, analiziraj kôd…
▪ Kontekst– Dodatne informacije potrebne za razumijevanje zadatka
▪ Koja su točno očekivanja i zahtjevi krajnjeg korisnika?
▪ Koji tehnološki stog koristimo (npr. programski jezik, okviri, biblioteke…)?
▪ U koji arhitekturalni i dizajnerski kontekst se treba integrirati generirani dio rješenja?
▪ Što trenutno imamo implementirano od relevantnog kôda?
▪ Koji je stil pisanja programskog kôda našeg tima?
▪ Koje postojeće dijelove sustava ili vanjskih servisa treba generirani dio rješenja koristiti?
▪ Format rezultata– format u kojem želimo generirati rezultat, primjeri (one-shot, few-shot prompting)
▪ Npr. u kojem programskom jeziku želimo generirati kôd, koji okvir/biblioteku, koliko
opsežan odgovor želimo, koji predložak želimo koristiti za za strukturiranje odgovora,…
Što su uzorci promptova
Uzorci promptova (engl. prompt patterns) – propisuju generička
rješenja za česte probleme i izazove u formuliranju promptova (po
ideji uzoraka dizajna).
Objasni uzorak Meta Language Creation
▪ Namjera/motivacija: Željeli bismo pisati upite koristeći specijalizirani jezik/notaciju koja je učinkovitija u prenošenju ideja u određenoj domeni.
Namjera ovog obrasca je objasniti sintaksu i semantiku ovog novog jezika/notacije LLM-u, tako da se može koristiti za stvaranje promptova.
▪ Kada koristiti ovaj uzorak:
▪ Zaizradu notacija za grafove (a->b, b->c,…), upitne jezike,
markup jezike, domenski specifične jezike (DSL), i sl.
Objasni uzorak Flipped Interaction
▪ Namjera/motivacija: Umjesto da dajemo detaljne upute LLM-u o tome što/kako nešto učiniti, upućujemo LLM da ON nama postavi pitanja kako bi dobio informacije potrebne za dovršetak zadatka.
▪ Kada upotrijebiti ovaj uzorak:
▪ Kada imamo problem s artikulacijom zadatka koji želimo dati LLM-u (npr. slabije poznavanje domene zadatka, ili jednostavno nemamo inspiraciju)
▪ Također, pružanje konteksta ključno je za dobivanje dobrih rezultata
iz LLM-a. Međutim, pisanje nekoliko odlomaka konteksta može potrajati neko vrijeme i brzo postaje zamorno. Upućivanje LLM-a da nam postavlja pitanja stvara dinamičnu interakciju.
Objasni uzorak Cognitive verifier
▪ Namjera/motivacija: Slično kao i kod uzorka FLIPPED INTERACTION, želimo prisiliti LLM da iz nas izvuče potrebne informacije (kontekst) koje bi mu omogućile da proizvede bolje rezultate.
▪ Kada upotrijebiti ovaj uzorak:
▪ Kada smatramo da nemamo dovoljno znanja o domeni da pružimo potrebne informacije LLM-u.
Objasni uzorak Persona
▪ Namjera/motivacija: Ponekad ne znamo koje su nam točno informacije ili rezultati potrebni ili ih nije lako objasniti. Međutim, možda znamo koja bi bila uloga/pozicija osobe koja je stručnjak u
tome. Dakle, jednostavno uputimo LLM da usvoji određenu ulogu/poziciju i da nas savjetuje/pomogne.
▪ Kada upotrijebiti ovaj uzorak:
▪ Kada nismo sigurni što nam treba (tj. trebamo konzultanta).
▪ Kada je lakše/brže imenovati ulogu/poziciju zaposlenika (npr. sigurnosnog recenzenta, testera, stručnjaka za domenu…) od kojeg trebamo pomoć, umjesto da u osnovi opisujemo što nam točno treba.
▪ LLM također može oponašati sustave (npr. terminal operativnog sustava,
bazu podataka, objekte, API-je, hardver)
Objasni uzorak Template
▪ Namjera/Motivacija: U nekim slučajevima, izlaz koji očekujemo od LLM-a treba biti u preciznom formatu koji je specifičan za aplikaciju/slučaj upotrebe i nije poznatLLM-u.
Namjera ovog uzorka je objasniti LLM-u koji bi format trebao imati izlaz.
▪ Kada upotrijebiti ovaj uzorak:
▪ Kada nam je potreban precizno strukturiran sadržaj,
kao što su URL-ovi, testni podaci, strukturirani zahtjevi, izvješća o greškama itd.
Objasni uzorak Visualization Generator
▪ Namjera/motivacija: LLM-ovi su dobri u generiranju teksta, ali u svom osnovnom obliku nisu osobito dobri za generiranje strukturiranih vizualnih sadržaja (grafova, dijagrama…).
Ovaj uzorak nadilazi ovo ograničenje generiranjem strukturiranih
tekstualnih opisa na temelju kojih posebni programi mogu generirati vizualnu reprezentaciju.
▪ Kada upotrijebiti ovaj uzorak:
▪ Vizualizacija softverskog dizajna korištenjem npr. UML ili C4 notacije.
▪ Izradu Wireframe-a pomoću notacije kao što su HTML, XAML itd.
Objasni uzorak Recipe
▪ Namjera/motivacija: Korisnici često znaju koji je njihov krajnji cilj, međutim, nedostaje im precizan slijed koraka za postizanje tog cilja.
Namjera ovog uzorka je pružiti točan slijed koraka za postizanje opisanog cilja
▪ Kada upotrijebiti ovaj uzorak:
▪ Kada nam je potreban precizan slijed koraka koji će nas dovesti do željenog ishoda.
Što su AI asistenti
integrirani su u razvojna
okruženja i pružaju mogućnosti predlaganja kôda, automatskog završavanja kôda, generiranja „šablonskog” kôda,…
Objasni razliku izmedju GenAI i AI asistenti
Svjesni(ji) konteksta
▪ Integrirani su u razvojno okruženje
▪ Prijedloge generiraju izravno u razvojnom okruženju
▪ Ograničeni su na zadatke iz područja
razvoja softvera
Što je ekonomika programskog inzinjerstva
grana mikroekonomije, nastoji odrediti troškove, resurse i trajanje faza razvojnog i životnog ciklusa
navedi projekte troskove razvoja
projektiranje, programiranje, implementacija, otklanjanje nedostataka,
upravljanje projektom, upravljanje organizacijskim promjenama
Navedi razlike mjerenja Fizicke i Logicke LOC metrike
Fizičke LOC metrike – uključuju mrtav kod, komentare, prazne linije , jednostavno se broji, mogu se automatizirati, problem kod koristenja vise programskih jezika
Logičke LOC metrike – isključuju to sve, teško se automatiziraju i broje, nepouzdanost kod ponovo iskoristivih komponenti i vizualnih prog jezika
što su funkcijske točke
iz vana vidljivi
parametri složenosti sustava, koji se mogu odrediti prije nego imamo detaljni dizajn ili programski kod
*Svaka predstavlja element funkcionalnosti sustava
Nabroji procjene troskova
- Algoritamsko modeliranje troškova (Algorithmic CostModelling)
- Ekspertna procjena (ExpertJudgement)
- Procjena na temelju analogije
- Parkinsonov zakon
- Cijena koja pobjeđuje (Pricing to Win)
- Procjena odozgo dolje(Top-down Estimation)
- Procjena odozdo gore (Bottom-up Estimation)
8.Metoda funkcijskih točaka (Function PointMethod)
Objasni Algoritamsko modeliranje troškova
Troškovi razvoja softvera su funkcionalno ovisni o varijablama (nositelji troškova) koje opisuju svojstva proizvoda, procesa i projekata.
*Algoritam ili formula opisuje funkcijsku ovisnost troškova razvoja softvera o
varijablama.
Objasni ekspertnu procjenu troskova
Jedan ili više eksperata procjenjuju troškove razvoja softvera, nastoji se postići konsenzus ili usklađivanje
Prednosti: jednostavnost, bez puno matematike.
- Nedostaci: * Teško je naći eksperte, posebno one što poznaju metodologiju, tehnologiju, problemsko područje ….
- Procjene su subjektivne i rezultati nisu ponovljivi.
- Teško je odlučiti ako se mišljenja eksperata razlikuju.
Objasni procjenu na temelju analogije
Cijena se procjenjuje na temelju iskustava i sličnosti s prošlim projektima
- Prednosti: Točna procjena ako imamo uzor iz prošlosti i točne podatke.
- Nedostaci:
- Dva puta se ne može zagaziti u istu rijeku.
- Rijetko postoje točni podaci o prošlim projektima.
Objasni parkinsonov zakon procjene troskova
Cijena projekta odgovara raspoloživom proračunu, a utrošak resursa odgovara
resursima koje smo imali na raspolaganju.
- Prednost: Nema prekoračenja troškova.
- Nedostatak:
- Opseg i funkcionalnost softvera nastoji se tijekom projekta reducirati do razine
raspoloživog proračuna, vremena i resursa. - Nezavršeni poslovi prebacuju se u fazu korištenja i održavanja.
Objasni cijena koja pobjeduje kao procjenu troskova
Projekt košta toliko koliko nam je kupac spreman platiti, a sadrži ono što se u okviru
raspoloživog vremena i resursa može napraviti
Prednost - dobit cemo posao
Nedostatak :
Opseg i funkcionalnost softvera nastoji se unaprijed reducirati do razine raspoloživog proračuna, vremena i resursa.
* Najčešće ćemo ili mi, ili kupac, ili oboje biti nezadov
Objasni procjena troskova odozgo dolje TOP DOWN
- Odrede se troškovi postizanja zadane razine funkcionalnosti cijelog sustava
- Zatim se procijene zajednički troškovi
Preostali troškovi rasporede se po komponentama sustava razmjerno njihovoj složenosti
PREDNOST - trošak cjeline je veći od sume troškova dijelova
NEDOSTACI:
* Za razvoj komponenata raspodijeli se ono što preostane.
* Troškovi komponenata i rješavanja problema na nižim razinama često se podcijene.