diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.ar.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.ar.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.ar.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.bg.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.bg.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.bg.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.bn.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.bn.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.bn.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.br.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.br.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.br.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.cs.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.cs.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.cs.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.da.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.da.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.da.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.de.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.de.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.de.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.el.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.el.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.el.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.en.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.en.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.en.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.es.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.es.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.es.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.fa.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.fa.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.fa.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.fi.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.fi.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.fi.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.fr.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.fr.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.fr.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.he.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.he.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.he.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.hi.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.hi.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.hi.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.hk.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.hk.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.hk.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.hr.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.hr.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.hr.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.hu.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.hu.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.hu.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.id.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.id.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.id.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.it.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.it.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.it.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.ja.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.ja.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.ja.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.ko.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.ko.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.ko.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.mo.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.mo.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.mo.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.mr.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.mr.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.mr.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.ms.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.ms.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.ms.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.my.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.my.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.my.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.ne.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.ne.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.ne.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.nl.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.nl.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.nl.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.no.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.no.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.no.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.pa.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.pa.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.pa.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.pl.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.pl.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.pl.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.pt.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.pt.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.pt.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.ro.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.ro.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.ro.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.ru.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.ru.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.ru.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.sk.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.sk.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.sk.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.sl.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.sl.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.sl.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.sr.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.sr.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.sr.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.sv.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.sv.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.sv.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.sw.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.sw.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.sw.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.th.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.th.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.th.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.tl.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.tl.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.tl.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.tr.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.tr.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.tr.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.tw.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.tw.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.tw.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.uk.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.uk.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.uk.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.ur.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.ur.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.ur.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.vi.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.vi.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.vi.png differ diff --git a/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.zh.png b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.zh.png new file mode 100644 index 000000000..726db9dd4 Binary files /dev/null and b/translated_images/mask.1b2976ccec9e011eaac6cd3697d804a22ae6debba7452da6ba3bebcaa9c54ff0.zh.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.ar.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.ar.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.ar.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.bg.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.bg.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.bg.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.bn.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.bn.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.bn.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.br.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.br.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.br.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.cs.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.cs.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.cs.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.da.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.da.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.da.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.de.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.de.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.de.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.el.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.el.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.el.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.en.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.en.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.en.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.es.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.es.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.es.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.fa.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.fa.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.fa.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.fi.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.fi.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.fi.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.fr.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.fr.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.fr.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.he.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.he.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.he.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.hi.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.hi.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.hi.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.hk.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.hk.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.hk.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.hr.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.hr.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.hr.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.hu.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.hu.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.hu.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.id.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.id.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.id.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.it.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.it.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.it.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.ja.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.ja.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.ja.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.ko.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.ko.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.ko.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.mo.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.mo.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.mo.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.mr.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.mr.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.mr.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.ms.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.ms.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.ms.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.my.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.my.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.my.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.ne.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.ne.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.ne.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.nl.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.nl.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.nl.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.no.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.no.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.no.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.pa.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.pa.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.pa.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.pl.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.pl.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.pl.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.pt.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.pt.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.pt.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.ro.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.ro.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.ro.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.ru.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.ru.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.ru.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.sk.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.sk.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.sk.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.sl.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.sl.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.sl.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.sr.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.sr.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.sr.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.sv.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.sv.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.sv.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.sw.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.sw.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.sw.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.th.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.th.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.th.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.tl.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.tl.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.tl.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.tr.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.tr.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.tr.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.tw.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.tw.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.tw.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.uk.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.uk.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.uk.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.ur.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.ur.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.ur.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.vi.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.vi.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.vi.png differ diff --git a/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.zh.png b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.zh.png new file mode 100644 index 000000000..c20d728e8 Binary files /dev/null and b/translated_images/sunlit_lounge.a75a0cb61749db0eddc1820c30a5fa9a3a9f48518cd7c8df4c2073e8c793bbb7.zh.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.ar.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.ar.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.ar.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.bg.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.bg.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.bg.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.bn.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.bn.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.bn.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.br.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.br.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.br.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.cs.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.cs.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.cs.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.da.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.da.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.da.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.de.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.de.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.de.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.el.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.el.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.el.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.en.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.en.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.en.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.es.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.es.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.es.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.fa.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.fa.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.fa.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.fi.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.fi.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.fi.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.fr.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.fr.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.fr.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.he.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.he.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.he.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.hi.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.hi.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.hi.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.hk.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.hk.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.hk.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.hr.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.hr.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.hr.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.hu.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.hu.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.hu.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.id.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.id.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.id.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.it.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.it.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.it.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.ja.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.ja.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.ja.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.ko.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.ko.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.ko.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.mo.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.mo.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.mo.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.mr.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.mr.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.mr.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.ms.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.ms.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.ms.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.my.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.my.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.my.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.ne.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.ne.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.ne.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.nl.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.nl.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.nl.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.no.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.no.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.no.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.pa.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.pa.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.pa.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.pl.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.pl.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.pl.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.pt.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.pt.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.pt.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.ro.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.ro.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.ro.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.ru.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.ru.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.ru.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.sk.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.sk.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.sk.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.sl.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.sl.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.sl.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.sr.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.sr.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.sr.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.sv.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.sv.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.sv.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.sw.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.sw.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.sw.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.th.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.th.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.th.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.tl.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.tl.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.tl.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.tr.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.tr.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.tr.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.tw.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.tw.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.tw.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.uk.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.uk.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.uk.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.ur.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.ur.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.ur.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.vi.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.vi.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.vi.png differ diff --git a/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.zh.png b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.zh.png new file mode 100644 index 000000000..7a149607b Binary files /dev/null and b/translated_images/sunlit_lounge_result.76ae02957c0bbeb860f1efdb42dd7f450ea01c6ae6cd70ad5ade4bab1a545d51.zh.png differ diff --git a/translations/ar/00-course-setup/01-setup-cloud.md b/translations/ar/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..150acad80 --- /dev/null +++ b/translations/ar/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/ar/00-course-setup/02-setup-local.md b/translations/ar/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..039eebef4 --- /dev/null +++ b/translations/ar/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/ar/00-course-setup/03-providers.md b/translations/ar/00-course-setup/03-providers.md new file mode 100644 index 000000000..3b4a0e8ec --- /dev/null +++ b/translations/ar/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/ar/00-course-setup/README.md b/translations/ar/00-course-setup/README.md index eea7fef4d..ff500adbf 100644 --- a/translations/ar/00-course-setup/README.md +++ b/translations/ar/00-course-setup/README.md @@ -1,228 +1,12 @@ - -# البدء مع هذه الدورة - -نحن متحمسون جدًا لبدء هذه الدورة ورؤية ما ستلهمك لبنائه باستخدام الذكاء الاصطناعي التوليدي! - -لضمان نجاحك، توضح هذه الصفحة خطوات الإعداد، والمتطلبات التقنية، وأين يمكنك الحصول على المساعدة إذا لزم الأمر. - -## خطوات الإعداد - -لبدء هذه الدورة، ستحتاج إلى إكمال الخطوات التالية. - -### 1. استنساخ هذا المستودع - -[قم باستنساخ هذا المستودع بالكامل](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) إلى حساب GitHub الخاص بك لتتمكن من تعديل أي كود وإكمال التحديات. يمكنك أيضًا [وضع علامة (🌟) على هذا المستودع](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) لتسهيل العثور عليه وعلى المستودعات ذات الصلة. - -### 2. إنشاء مساحة أكواد (codespace) - -لتجنب أي مشاكل في التبعيات عند تشغيل الكود، نوصي بتشغيل هذه الدورة في [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst). - -يمكنك إنشاء ذلك عن طريق اختيار خيار `Code` على نسختك المستنسخة من هذا المستودع ثم اختيار خيار **Codespaces**. - -![مربع حوار يظهر أزرار لإنشاء مساحة أكواد](../../../00-course-setup/images/who-will-pay.webp) - -### 3. تخزين مفاتيح API الخاصة بك - -من المهم الحفاظ على مفاتيح API الخاصة بك آمنة عند بناء أي نوع من التطبيقات. نوصي بعدم تخزين أي مفاتيح API مباشرة في الكود الخاص بك. قد يؤدي حفظ هذه التفاصيل في مستودع عام إلى مشاكل أمنية وحتى تكاليف غير مرغوب فيها إذا استُخدمت من قبل جهة خبيثة. - -إليك دليل خطوة بخطوة حول كيفية إنشاء ملف `.env` للبايثون وإضافة `GITHUB_TOKEN`: - -1. **انتقل إلى مجلد مشروعك**: افتح الطرفية أو موجه الأوامر وانتقل إلى المجلد الجذري لمشروعك حيث تريد إنشاء ملف `.env`. - - ```bash - cd path/to/your/project - ``` - -2. **إنشاء ملف `.env`**: استخدم محرر النصوص المفضل لديك لإنشاء ملف جديد باسم `.env`. إذا كنت تستخدم سطر الأوامر، يمكنك استخدام `touch` (في أنظمة يونكس) أو `echo` (في ويندوز): - - أنظمة يونكس: - - ```bash - touch .env - ``` - - ويندوز: - - ```cmd - echo . > .env - ``` - -3. **تحرير ملف `.env`**: افتح ملف `.env` في محرر نصوص (مثل VS Code، Notepad++، أو أي محرر آخر). أضف السطر التالي إلى الملف، مع استبدال `your_github_token_here` برمز GitHub الخاص بك: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **حفظ الملف**: احفظ التغييرات وأغلق محرر النصوص. - -5. **تثبيت `python-dotenv`**: إذا لم تكن قد قمت بذلك مسبقًا، ستحتاج إلى تثبيت حزمة `python-dotenv` لتحميل متغيرات البيئة من ملف `.env` إلى تطبيق البايثون الخاص بك. يمكنك تثبيتها باستخدام `pip`: - - ```bash - pip install python-dotenv - ``` - -6. **تحميل متغيرات البيئة في سكريبت البايثون الخاص بك**: في سكريبت البايثون، استخدم حزمة `python-dotenv` لتحميل متغيرات البيئة من ملف `.env`: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -هذا كل شيء! لقد أنشأت ملف `.env` بنجاح، وأضفت رمز GitHub الخاص بك، وقمت بتحميله في تطبيق البايثون الخاص بك. - -## كيفية التشغيل محليًا على جهازك - -لتشغيل الكود محليًا على جهازك، ستحتاج إلى تثبيت نسخة من [Python](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -بعد ذلك، لاستخدام المستودع، تحتاج إلى نسخه (clone): - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -بمجرد أن يكون كل شيء جاهزًا، يمكنك البدء! - -## خطوات اختيارية - -### تثبيت Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) هو مثبت خفيف لتثبيت [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst)، والبايثون، وبعض الحزم الأخرى. - -Conda هو مدير حزم يسهل إعداد والتبديل بين بيئات بايثون [افتراضية](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) مختلفة والحزم. كما أنه مفيد لتثبيت الحزم التي لا تتوفر عبر `pip`. - -يمكنك اتباع [دليل تثبيت MiniConda](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) لإعداده. - -بعد تثبيت Miniconda، تحتاج إلى استنساخ [المستودع](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (إذا لم تكن قد فعلت ذلك مسبقًا). - -بعدها، تحتاج إلى إنشاء بيئة افتراضية. للقيام بذلك باستخدام Conda، قم بإنشاء ملف بيئة جديد (_environment.yml_). إذا كنت تستخدم Codespaces، أنشئ هذا الملف داخل مجلد `.devcontainer`، أي `.devcontainer/environment.yml`. - -قم بملء ملف البيئة بالمقتطف التالي: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -إذا واجهت أخطاء عند استخدام conda، يمكنك تثبيت مكتبات Microsoft AI يدويًا باستخدام الأمر التالي في الطرفية. - -``` -conda install -c microsoft azure-ai-ml -``` - -يحدد ملف البيئة التبعيات التي نحتاجها. `` يشير إلى الاسم الذي ترغب في استخدامه لبيئة Conda الخاصة بك، و `` هو إصدار البايثون الذي تريد استخدامه، على سبيل المثال، `3` هو أحدث إصدار رئيسي من بايثون. - -بعد ذلك، يمكنك إنشاء بيئة Conda الخاصة بك عن طريق تشغيل الأوامر التالية في سطر الأوامر/الطرفية: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -راجع [دليل بيئات Conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst) إذا واجهت أي مشاكل. - -### استخدام Visual Studio Code مع امتداد دعم بايثون - -نوصي باستخدام محرر [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) مع تثبيت [امتداد دعم بايثون](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) لهذه الدورة. مع ذلك، هذا مجرد توصية وليس شرطًا إلزاميًا. - -> **ملاحظة**: عند فتح مستودع الدورة في VS Code، لديك خيار إعداد المشروع داخل حاوية (container). وذلك بسبب وجود مجلد [خاص `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) داخل المستودع. سنتحدث عن هذا لاحقًا. - -> **ملاحظة**: بمجرد استنساخ وفتح المجلد في VS Code، سيقترح عليك تلقائيًا تثبيت امتداد دعم بايثون. - -> **ملاحظة**: إذا اقترح VS Code إعادة فتح المستودع داخل حاوية، يمكنك رفض هذا الطلب لاستخدام نسخة بايثون المثبتة محليًا. - -### استخدام Jupyter في المتصفح - -يمكنك أيضًا العمل على المشروع باستخدام بيئة [Jupyter](https://jupyter.org?WT.mc_id=academic-105485-koreyst) مباشرة من متصفحك. توفر كل من Jupyter الكلاسيكي و[Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) بيئة تطوير مريحة مع ميزات مثل الإكمال التلقائي، تمييز الكود، وغيرها. - -لتشغيل Jupyter محليًا، توجه إلى الطرفية/موجه الأوامر، انتقل إلى مجلد الدورة، ونفذ: - -```bash -jupyter notebook -``` - -أو - -```bash -jupyterhub -``` - -سيبدأ هذا تشغيل نسخة Jupyter وسيتم عرض عنوان URL للوصول إليها في نافذة سطر الأوامر. - -بمجرد الوصول إلى العنوان، يجب أن ترى مخطط الدورة وتتمكن من التنقل إلى أي ملف `*.ipynb`. على سبيل المثال، `08-building-search-applications/python/oai-solution.ipynb`. - -### التشغيل داخل حاوية - -بديل لإعداد كل شيء على جهازك أو في Codespace هو استخدام [حاوية](../../../00-course-setup/). يتيح مجلد `.devcontainer` الخاص داخل مستودع الدورة لـ VS Code إعداد المشروع داخل حاوية. خارج Codespaces، سيتطلب هذا تثبيت Docker، وبصراحة، يتطلب بعض الجهد، لذا نوصي بهذا فقط لمن لديهم خبرة في العمل مع الحاويات. - -واحدة من أفضل الطرق للحفاظ على أمان مفاتيح API الخاصة بك عند استخدام GitHub Codespaces هي استخدام أسرار Codespace. يرجى اتباع دليل [إدارة أسرار Codespaces](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) لمعرفة المزيد. - -## الدروس والمتطلبات التقنية - -تتضمن الدورة 6 دروس مفاهيمية و6 دروس برمجية. - -بالنسبة للدروس البرمجية، نستخدم خدمة Azure OpenAI. ستحتاج إلى الوصول إلى خدمة Azure OpenAI ومفتاح API لتشغيل هذا الكود. يمكنك التقديم للحصول على الوصول عن طريق [إكمال هذا الطلب](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -أثناء انتظار معالجة طلبك، يتضمن كل درس برمجي أيضًا ملف `README.md` حيث يمكنك عرض الكود والنتائج. - -## استخدام خدمة Azure OpenAI لأول مرة - -إذا كانت هذه هي المرة الأولى التي تعمل فيها مع خدمة Azure OpenAI، يرجى اتباع هذا الدليل حول كيفية [إنشاء ونشر مورد خدمة Azure OpenAI.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## استخدام OpenAI API لأول مرة - -إذا كانت هذه هي المرة الأولى التي تعمل فيها مع OpenAI API، يرجى اتباع الدليل حول كيفية [إنشاء واستخدام الواجهة.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## التعرف على المتعلمين الآخرين - -أنشأنا قنوات في خادم [AI Community Discord الرسمي](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) للقاء المتعلمين الآخرين. هذه طريقة رائعة للتواصل مع رواد أعمال وبناة وطلاب يشاركونك نفس الاهتمام ويرغبون في تطوير مهاراتهم في الذكاء الاصطناعي التوليدي. - -[![انضم إلى قناة الديسكورد](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -سيكون فريق المشروع أيضًا متواجدًا على هذا الخادم لمساعدة أي متعلم. - -## المساهمة - -هذه الدورة هي مبادرة مفتوحة المصدر. إذا لاحظت مجالات لتحسين أو مشاكل، يرجى إنشاء [طلب سحب (Pull Request)](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) أو تسجيل [مشكلة على GitHub](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -سيتابع فريق المشروع جميع المساهمات. المساهمة في المصادر المفتوحة طريقة رائعة لبناء مسيرتك المهنية في الذكاء الاصطناعي التوليدي. - -معظم المساهمات تتطلب منك الموافقة على اتفاقية ترخيص المساهم (CLA) التي توضح أنك تملك الحق وأنك تمنحنا الحقوق لاستخدام مساهمتك. لمزيد من التفاصيل، قم بزيارة [موقع اتفاقية ترخيص المساهم (CLA)](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -مهم: عند ترجمة النصوص في هذا المستودع، يرجى التأكد من عدم استخدام الترجمة الآلية. سنقوم بالتحقق من الترجمات عبر المجتمع، لذا يرجى التطوع فقط للترجمات في اللغات التي تجيدها. - -عند تقديم طلب سحب، سيقوم CLA-bot تلقائيًا بتحديد ما إذا كنت بحاجة إلى تقديم CLA وتزيين طلب السحب بشكل مناسب (مثل وضع علامة أو تعليق). فقط اتبع التعليمات التي يقدمها الروبوت. ستحتاج إلى القيام بذلك مرة واحدة فقط عبر جميع المستودعات التي تستخدم اتفاقيتنا. - -هذا المشروع اعتمد [مدونة قواعد السلوك مفتوحة المصدر من مايكروسوفت](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst). لمزيد من المعلومات، اقرأ الأسئلة الشائعة حول مدونة السلوك أو تواصل عبر البريد الإلكتروني [Email opencode](opencode@microsoft.com) لأي أسئلة أو تعليقات إضافية. - -## لنبدأ - -الآن بعد أن أكملت الخطوات اللازمة لإتمام هذه الدورة، لنبدأ بـ [مقدمة في الذكاء الاصطناعي التوليدي ونماذج اللغة الكبيرة](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**إخلاء المسؤولية**: -تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق به. للمعلومات الهامة، يُنصح بالاعتماد على الترجمة البشرية المهنية. نحن غير مسؤولين عن أي سوء فهم أو تفسير ناتج عن استخدام هذه الترجمة. \ No newline at end of file + + + + diff --git a/translations/ar/00-course-setup/SETUP.md b/translations/ar/00-course-setup/SETUP.md deleted file mode 100644 index e9cd72ee8..000000000 --- a/translations/ar/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# إعداد بيئة التطوير الخاصة بك - -قمنا بإعداد هذا المستودع والدورة باستخدام [حاوية تطوير](https://containers.dev?WT.mc_id=academic-105485-koreyst) تحتوي على بيئة تشغيل شاملة تدعم تطوير Python3 و .NET و Node.js و Java. تم تعريف التهيئة ذات الصلة في ملف `devcontainer.json` الموجود في مجلد `.devcontainer/` في جذر هذا المستودع. - -لتشغيل حاوية التطوير، افتحها في [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (لتشغيل مستضاف على السحابة) أو في [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (لتشغيل محلي على جهازك). اقرأ [هذه الوثائق](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) لمزيد من التفاصيل حول كيفية عمل حاويات التطوير داخل VS Code. - -> [!TIP] -> نوصي باستخدام GitHub Codespaces للبدء السريع بأقل جهد. فهو يوفر [حصة استخدام مجانية سخية](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) للحسابات الشخصية. قم بضبط [فترات التوقف](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) لإيقاف أو حذف الأكواد غير النشطة لتعظيم استخدام حصتك. - -## 1. تنفيذ الواجبات - -كل درس قد يحتوي على واجبات _اختيارية_ تُقدم بإحدى لغات البرمجة أو أكثر، مثل: Python، .NET/C#، Java و JavaScript/TypeScript. يقدم هذا القسم إرشادات عامة تتعلق بتنفيذ تلك الواجبات. - -### 1.1 واجبات Python - -تُقدم واجبات Python إما كتطبيقات (`.py` ملفات) أو دفاتر Jupyter (`.ipynb` ملفات). -- لتشغيل الدفتر، افتحه في Visual Studio Code ثم انقر على _Select Kernel_ (في الأعلى يمين) واختر خيار Python 3 الافتراضي المعروض. يمكنك الآن النقر على _Run All_ لتنفيذ الدفتر. -- لتشغيل تطبيقات Python من سطر الأوامر، اتبع التعليمات الخاصة بكل واجب لضمان اختيار الملفات الصحيحة وتوفير المعطيات المطلوبة. - -## 2. تهيئة المزودين - -قد يتم إعداد الواجبات للعمل مع نشرات نماذج اللغة الكبيرة (LLM) من خلال مزود خدمة مدعوم مثل OpenAI أو Azure أو Hugging Face. توفر هذه نقطة نهاية _مستضافة_ (API) يمكننا الوصول إليها برمجياً باستخدام بيانات الاعتماد الصحيحة (مفتاح API أو رمز). في هذه الدورة، نناقش المزودين التاليين: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) مع نماذج متنوعة تشمل سلسلة GPT الأساسية. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) لنماذج OpenAI مع التركيز على الجاهزية المؤسسية - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) للنماذج مفتوحة المصدر وخادم الاستدلال - -**ستحتاج إلى استخدام حساباتك الخاصة لهذه التمارين**. الواجبات اختيارية، لذا يمكنك اختيار إعداد مزود واحد أو جميعهم أو لا شيء حسب اهتماماتك. بعض الإرشادات للتسجيل: - -| التسجيل | التكلفة | مفتاح API | بيئة تجريبية | تعليقات | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst)| [التسعير](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst)| [مفتاح مشروع](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [بدون كود، ويب](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | نماذج متعددة متاحة | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst)| [التسعير](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst)| [بدء سريع SDK](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst)| [بدء سريع Studio](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [يجب التقديم مسبقاً للوصول](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst)| -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [التسعير](https://huggingface.co/pricing) | [رموز الوصول](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst)| [Hugging Chat يحتوي على نماذج محدودة](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -اتبع التعليمات أدناه لـ _تهيئة_ هذا المستودع للاستخدام مع المزودين المختلفين. الواجبات التي تتطلب مزوداً معيناً ستحتوي على أحد هذه العلامات في اسم الملف: - - `aoai` - يتطلب نقطة نهاية Azure OpenAI ومفتاح - - `oai` - يتطلب نقطة نهاية OpenAI ومفتاح - - `hf` - يتطلب رمز Hugging Face - -يمكنك تهيئة مزود واحد أو لا شيء أو جميع المزودين. ستظهر أخطاء في الواجبات ذات الصلة إذا كانت بيانات الاعتماد مفقودة. - -### 2.1. إنشاء ملف `.env` - -نفترض أنك قد قرأت الإرشادات أعلاه وسجلت لدى المزود المناسب، وحصلت على بيانات الاعتماد المطلوبة (API_KEY أو الرمز). في حالة Azure OpenAI، نفترض أيضاً أن لديك نشراً صالحاً لخدمة Azure OpenAI (نقطة نهاية) مع نشر نموذج GPT واحد على الأقل لإكمال المحادثة. - -الخطوة التالية هي تهيئة **متغيرات البيئة المحلية** كما يلي: - -1. ابحث في المجلد الجذر عن ملف `.env.copy` الذي يجب أن يحتوي على محتويات مثل: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. انسخ هذا الملف إلى `.env` باستخدام الأمر أدناه. هذا الملف _مُدرج في gitignore_، مما يحافظ على سرية المعلومات. - - ```bash - cp .env.copy .env - ``` - -3. املأ القيم (استبدل العناصر النائبة على يمين `=`) كما هو موضح في القسم التالي. - -3. (اختياري) إذا كنت تستخدم GitHub Codespaces، يمكنك حفظ متغيرات البيئة كـ _أسرار Codespaces_ مرتبطة بهذا المستودع. في هذه الحالة، لن تحتاج إلى إعداد ملف .env محلي. **لكن لاحظ أن هذا الخيار يعمل فقط إذا كنت تستخدم GitHub Codespaces.** ستظل بحاجة إلى إعداد ملف .env إذا كنت تستخدم Docker Desktop بدلاً من ذلك. - -### 2.2. تعبئة ملف `.env` - -لنلقِ نظرة سريعة على أسماء المتغيرات لفهم ما تمثله: - -| المتغير | الوصف | -| :--- | :--- | -| HUGGING_FACE_API_KEY | هذا هو رمز وصول المستخدم الذي قمت بإعداده في ملفك الشخصي | -| OPENAI_API_KEY | هذا هو مفتاح التفويض لاستخدام الخدمة لنقاط نهاية OpenAI غير Azure | -| AZURE_OPENAI_API_KEY | هذا هو مفتاح التفويض لاستخدام تلك الخدمة | -| AZURE_OPENAI_ENDPOINT | هذه هي نقطة النهاية المنشورة لمورد Azure OpenAI | -| AZURE_OPENAI_DEPLOYMENT | هذه هي نقطة نشر نموذج _توليد النصوص_ | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | هذه هي نقطة نشر نموذج _تضمين النصوص_ | -| | | - -ملاحظة: المتغيران الأخيران في Azure OpenAI يعكسان نموذجاً افتراضياً لإكمال المحادثة (توليد النصوص) والبحث المتجه (التضمينات) على التوالي. سيتم تعريف التعليمات الخاصة بهما في الواجبات ذات الصلة. - -### 2.3 تهيئة Azure: من البوابة - -ستجد قيم نقطة النهاية والمفتاح الخاص بـ Azure OpenAI في [بوابة Azure](https://portal.azure.com?WT.mc_id=academic-105485-koreyst)، فلنبدأ من هناك. - -1. اذهب إلى [بوابة Azure](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -1. انقر على خيار **Keys and Endpoint** في الشريط الجانبي (القائمة على اليسار). -1. انقر على **Show Keys** - يجب أن ترى التالي: KEY 1، KEY 2 ونقطة النهاية. -1. استخدم قيمة KEY 1 لـ AZURE_OPENAI_API_KEY -1. استخدم قيمة نقطة النهاية لـ AZURE_OPENAI_ENDPOINT - -بعد ذلك، نحتاج إلى نقاط النهاية للنماذج التي نشرناها. - -1. انقر على خيار **Model deployments** في الشريط الجانبي (القائمة اليسرى) لمورد Azure OpenAI. -1. في الصفحة الوجهة، انقر على **Manage Deployments** - -سيأخذك هذا إلى موقع Azure OpenAI Studio، حيث سنجد القيم الأخرى كما هو موضح أدناه. - -### 2.4 تهيئة Azure: من الاستوديو - -1. انتقل إلى [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **من موردك** كما هو موضح أعلاه. -1. انقر على تبويب **Deployments** (الشريط الجانبي، اليسار) لعرض النماذج المنشورة حالياً. -1. إذا لم يكن النموذج المطلوب منشوراً، استخدم **Create new deployment** لنشره. -1. ستحتاج إلى نموذج _توليد نصوص_ - نوصي بـ: **gpt-35-turbo** -1. ستحتاج إلى نموذج _تضمين نصوص_ - نوصي بـ **text-embedding-ada-002** - -الآن حدّث متغيرات البيئة لتعكس اسم _النشر_ المستخدم. عادةً ما يكون نفس اسم النموذج ما لم تقم بتغييره صراحةً. على سبيل المثال، قد يكون لديك: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**لا تنس حفظ ملف .env عند الانتهاء**. يمكنك الآن الخروج من الملف والعودة إلى التعليمات لتشغيل الدفتر. - -### 2.5 تهيئة OpenAI: من الملف الشخصي - -يمكنك العثور على مفتاح API الخاص بـ OpenAI في حسابك على [OpenAI](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). إذا لم يكن لديك حساب، يمكنك التسجيل وإنشاء مفتاح API. بمجرد حصولك على المفتاح، يمكنك استخدامه لملء متغير `OPENAI_API_KEY` في ملف `.env`. - -### 2.6 تهيئة Hugging Face: من الملف الشخصي - -يمكنك العثور على رمز Hugging Face الخاص بك في ملفك الشخصي تحت [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). لا تنشر هذه الرموز أو تشاركها علناً. بدلاً من ذلك، أنشئ رمزاً جديداً لاستخدام هذا المشروع ونسخه إلى ملف `.env` تحت متغير `HUGGING_FACE_API_KEY`. _ملاحظة:_ هذا ليس مفتاح API تقنياً لكنه يُستخدم للمصادقة، لذا نحتفظ بهذا التسمية للاتساق. - -**إخلاء مسؤولية**: -تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق به. للمعلومات الهامة، يُنصح بالاعتماد على الترجمة البشرية المهنية. نحن غير مسؤولين عن أي سوء فهم أو تفسير ناتج عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/04-prompt-engineering-fundamentals/README.md b/translations/ar/04-prompt-engineering-fundamentals/README.md index 12af6467a..7b92db1e2 100644 --- a/translations/ar/04-prompt-engineering-fundamentals/README.md +++ b/translations/ar/04-prompt-engineering-fundamentals/README.md @@ -1,458 +1,15 @@ - -# أساسيات هندسة المطالبات - -[![أساسيات هندسة المطالبات](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.ar.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## المقدمة -يغطي هذا الوحدة المفاهيم والتقنيات الأساسية لإنشاء مطالبات فعالة في نماذج الذكاء الاصطناعي التوليدي. طريقة كتابة المطالبة إلى نموذج اللغة الكبير (LLM) مهمة أيضًا. فالمطالبة المصممة بعناية يمكن أن تحقق جودة أفضل في الاستجابة. لكن ما المقصود فعلاً بمصطلحات مثل _المطالبة_ و_هندسة المطالبات_؟ وكيف يمكنني تحسين _مدخلات_ المطالبة التي أرسلها إلى نموذج اللغة الكبير؟ هذه هي الأسئلة التي سنحاول الإجابة عليها في هذا الفصل والفصل التالي. - -الذكاء الاصطناعي التوليدي قادر على إنشاء محتوى جديد (مثل النصوص، الصور، الصوت، الشيفرة البرمجية، إلخ) استجابةً لطلبات المستخدم. ويحقق ذلك باستخدام _نماذج اللغة الكبيرة_ مثل سلسلة GPT من OpenAI ("المحول المدرب مسبقًا التوليدي") التي تم تدريبها على استخدام اللغة الطبيعية والشيفرة. - -يمكن للمستخدمين الآن التفاعل مع هذه النماذج باستخدام أساليب مألوفة مثل الدردشة، دون الحاجة إلى خبرة تقنية أو تدريب. النماذج تعتمد على _المطالبات_ - يرسل المستخدم نصًا (المطالبة) ويحصل على استجابة الذكاء الاصطناعي (الإكمال). يمكنهم بعد ذلك "التحدث مع الذكاء الاصطناعي" بشكل تكراري، في محادثات متعددة الجولات، مع تحسين المطالبة حتى تتطابق الاستجابة مع توقعاتهم. - -أصبحت "المطالبات" الآن الواجهة _البرمجية الأساسية_ لتطبيقات الذكاء الاصطناعي التوليدي، حيث تخبر النماذج بما يجب فعله وتؤثر على جودة الاستجابات المعادة. "هندسة المطالبات" هي مجال دراسي سريع النمو يركز على _تصميم وتحسين_ المطالبات لتقديم استجابات متسقة وعالية الجودة على نطاق واسع. - -## أهداف التعلم - -في هذا الدرس، سنتعلم ما هي هندسة المطالبات، ولماذا هي مهمة، وكيف يمكننا صياغة مطالبات أكثر فعالية لنموذج معين وهدف تطبيقي محدد. سنفهم المفاهيم الأساسية وأفضل الممارسات لهندسة المطالبات - ونتعرف على بيئة تفاعلية في دفاتر Jupyter حيث يمكننا رؤية هذه المفاهيم مطبقة على أمثلة حقيقية. - -بنهاية هذا الدرس سنكون قادرين على: - -1. شرح ما هي هندسة المطالبات ولماذا هي مهمة. -2. وصف مكونات المطالبة وكيفية استخدامها. -3. تعلم أفضل الممارسات والتقنيات لهندسة المطالبات. -4. تطبيق التقنيات المكتسبة على أمثلة حقيقية، باستخدام نقطة نهاية OpenAI. - -## المصطلحات الرئيسية - -هندسة المطالبات: ممارسة تصميم وتحسين المدخلات لتوجيه نماذج الذكاء الاصطناعي نحو إنتاج المخرجات المرغوبة. -التقطيع (Tokenization): عملية تحويل النص إلى وحدات أصغر تُسمى رموزًا (Tokens)، يمكن للنموذج فهمها ومعالجتها. -نماذج اللغة الكبيرة المضبوطة بالتعليمات: نماذج اللغة الكبيرة التي تم تحسينها باستخدام تعليمات محددة لتحسين دقة وملاءمة الاستجابة. - -## بيئة التعلم التجريبية - -هندسة المطالبات هي حاليًا فن أكثر منها علمًا. أفضل طريقة لتحسين حدسنا فيها هي _الممارسة المستمرة_ واعتماد نهج التجربة والخطأ الذي يجمع بين خبرة مجال التطبيق والتقنيات الموصى بها والتحسينات الخاصة بالنموذج. - -يوفر دفتر Jupyter المرفق مع هذا الدرس بيئة _تجريبية_ حيث يمكنك تجربة ما تتعلمه - أثناء التقدم أو كجزء من تحدي الشيفرة في النهاية. لتنفيذ التمارين، ستحتاج إلى: - -1. **مفتاح API لـ Azure OpenAI** - نقطة نهاية الخدمة لنموذج لغة كبير منشور. -2. **بيئة تشغيل Python** - لتشغيل دفتر الملاحظات. -3. **متغيرات بيئة محلية** - _أكمل خطوات [الإعداد](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) الآن للتحضير_. - -يأتي الدفتر مع تمارين _مبدئية_ - لكن يُشجعك على إضافة أقسام _Markdown_ (وصف) و_Code_ (طلبات المطالبات) خاصة بك لتجربة المزيد من الأمثلة أو الأفكار - وبناء حدسك في تصميم المطالبات. - -## الدليل المصور - -هل تريد نظرة عامة على ما يغطيه هذا الدرس قبل الغوص فيه؟ اطلع على هذا الدليل المصور، الذي يمنحك فكرة عن المواضيع الرئيسية التي يغطيها وأهم النقاط التي يجب التفكير فيها في كل منها. يأخذك مخطط الدرس من فهم المفاهيم الأساسية والتحديات إلى معالجتها باستخدام تقنيات هندسة المطالبات ذات الصلة وأفضل الممارسات. لاحظ أن قسم "التقنيات المتقدمة" في هذا الدليل يشير إلى محتوى يتم تغطيته في _الفصل التالي_ من هذا المنهج. - -![الدليل المصور لهندسة المطالبات](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.ar.png) - -## شركتنا الناشئة - -الآن، دعونا نتحدث عن كيف يرتبط _هذا الموضوع_ بمهمة شركتنا الناشئة في [جلب الابتكار في الذكاء الاصطناعي إلى التعليم](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). نريد بناء تطبيقات مدعومة بالذكاء الاصطناعي للتعلم _الشخصي_ - فلنفكر كيف قد "يصمم" مستخدمو تطبيقنا مطالباتهم: - -- **الإداريون** قد يطلبون من الذكاء الاصطناعي _تحليل بيانات المنهج لتحديد الثغرات في التغطية_. يمكن للذكاء الاصطناعي تلخيص النتائج أو تصورها باستخدام الشيفرة. -- **المعلمون** قد يطلبون من الذكاء الاصطناعي _إنشاء خطة درس لجمهور وموضوع معين_. يمكن للذكاء الاصطناعي بناء الخطة الشخصية بصيغة محددة. -- **الطلاب** قد يطلبون من الذكاء الاصطناعي _تدريسهم في مادة صعبة_. يمكن للذكاء الاصطناعي الآن إرشاد الطلاب بدروس، تلميحات وأمثلة تناسب مستواهم. - -هذا مجرد غيض من فيض. اطلع على [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) - مكتبة مطالبات مفتوحة المصدر منسقة بواسطة خبراء التعليم - للحصول على فكرة أوسع عن الإمكانيات! _جرب تشغيل بعض هذه المطالبات في البيئة التجريبية أو باستخدام OpenAI Playground لترى ماذا يحدث!_ - - - -## ما هي هندسة المطالبات؟ - -بدأنا هذا الدرس بتعريف **هندسة المطالبات** على أنها عملية _تصميم وتحسين_ مدخلات النص (المطالبات) لتقديم استجابات متسقة وعالية الجودة (الإكمالات) لهدف تطبيقي ونموذج معين. يمكننا التفكير في هذا كعملية من خطوتين: - -- _تصميم_ المطالبة الأولية لنموذج وهدف معين -- _تحسين_ المطالبة بشكل تكراري لتحسين جودة الاستجابة - -هذه عملية تعتمد بالضرورة على التجربة والخطأ وتتطلب حدس المستخدم وجهدًا للحصول على أفضل النتائج. فلماذا هي مهمة؟ للإجابة على هذا السؤال، نحتاج أولاً إلى فهم ثلاثة مفاهيم: - -- _التقطيع_ = كيف "يرى" النموذج المطالبة -- _نماذج اللغة الأساسية_ = كيف "تعالج" نموذج الأساس المطالبة -- _نماذج اللغة المضبوطة بالتعليمات_ = كيف يمكن للنموذج الآن رؤية "المهام" - -### التقطيع (Tokenization) - -يرى نموذج اللغة الكبير المطالبات كسلسلة من _الرموز_ حيث يمكن لنماذج مختلفة (أو إصدارات مختلفة من نموذج) تقطيع نفس المطالبة بطرق مختلفة. بما أن نماذج اللغة الكبيرة مدربة على الرموز (وليس النص الخام)، فإن طريقة تقطيع المطالبات تؤثر مباشرة على جودة الاستجابة المولدة. - -للحصول على فكرة عن كيفية عمل التقطيع، جرب أدوات مثل [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) الموضحة أدناه. انسخ مطالبتك - وشاهد كيف تتحول إلى رموز، مع الانتباه إلى كيفية التعامل مع فراغات النص وعلامات الترقيم. لاحظ أن هذا المثال يعرض نموذجًا أقدم (GPT-3) - لذا قد ينتج عن تجربة هذا مع نموذج أحدث نتيجة مختلفة. - -![التقطيع](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.ar.png) - -### المفهوم: نماذج الأساس - -بمجرد تقطيع المطالبة، الوظيفة الأساسية لـ ["نموذج اللغة الأساسي"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (أو نموذج الأساس) هي التنبؤ بالرمز التالي في تلك السلسلة. بما أن نماذج اللغة الكبيرة مدربة على مجموعات بيانات نصية ضخمة، فهي تمتلك فهمًا جيدًا للعلاقات الإحصائية بين الرموز ويمكنها إجراء هذا التنبؤ بثقة معقولة. لاحظ أنها لا تفهم _معنى_ الكلمات في المطالبة أو الرمز؛ بل ترى نمطًا يمكنها "إكماله" بالتنبؤ التالي. يمكنها الاستمرار في التنبؤ بالسلسلة حتى يتم إيقافها بواسطة تدخل المستخدم أو شرط محدد مسبقًا. - -هل تريد رؤية كيف يعمل الإكمال المعتمد على المطالبة؟ أدخل المطالبة أعلاه في Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) بالإعدادات الافتراضية. النظام مهيأ للتعامل مع المطالبات كطلبات معلومات - لذا يجب أن ترى إكمالًا يرضي هذا السياق. - -لكن ماذا لو أراد المستخدم رؤية شيء محدد يفي بمعايير أو هدف مهمة؟ هنا تظهر نماذج اللغة المضبوطة بالتعليمات. - -![إكمال الدردشة بنموذج اللغة الأساسي](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.ar.png) - -### المفهوم: نماذج اللغة المضبوطة بالتعليمات - -يبدأ [نموذج اللغة المضبوط بالتعليمات](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) بنموذج الأساس ويتم تحسينه باستخدام أمثلة أو أزواج مدخلات/مخرجات (مثل "رسائل" متعددة الجولات) التي يمكن أن تحتوي على تعليمات واضحة - وتحاول استجابة الذكاء الاصطناعي اتباع تلك التعليمات. - -يستخدم هذا تقنيات مثل التعلم المعزز مع التغذية الراجعة البشرية (RLHF) التي يمكنها تدريب النموذج على _اتباع التعليمات_ و_التعلم من الملاحظات_ بحيث ينتج استجابات أكثر ملاءمة للتطبيقات العملية وأكثر ارتباطًا بأهداف المستخدم. - -دعونا نجرب ذلك - أعد زيارة المطالبة أعلاه، لكن الآن غيّر _رسالة النظام_ لتوفير التعليمات التالية كسياق: - -> _لخص المحتوى المقدم لك لطلاب الصف الثاني. اجعل النتيجة فقرة واحدة مع 3-5 نقاط رئيسية._ - -هل ترى كيف أصبح الناتج الآن مضبوطًا ليعكس الهدف والصيغة المطلوبة؟ يمكن للمعلم الآن استخدام هذه الاستجابة مباشرة في شرائح الدرس. - -![إكمال الدردشة بنموذج اللغة المضبوط بالتعليمات](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.ar.png) - -## لماذا نحتاج إلى هندسة المطالبات؟ - -الآن بعد أن عرفنا كيف تعالج نماذج اللغة الكبيرة المطالبات، دعونا نتحدث عن _لماذا_ نحتاج إلى هندسة المطالبات. الجواب يكمن في أن نماذج اللغة الحالية تواجه عددًا من التحديات التي تجعل _الحصول على إكمالات موثوقة ومتسقة_ أكثر صعوبة دون بذل جهد في بناء وتحسين المطالبات. على سبيل المثال: - -1. **استجابات النماذج عشوائية.** _نفس المطالبة_ من المحتمل أن تنتج استجابات مختلفة مع نماذج أو إصدارات مختلفة. وقد تنتج أيضًا نتائج مختلفة مع _نفس النموذج_ في أوقات مختلفة. _تقنيات هندسة المطالبات تساعدنا في تقليل هذه التباينات من خلال توفير ضوابط أفضل_. - -2. **النماذج قد تختلق استجابات.** النماذج مدربة على مجموعات بيانات _كبيرة لكنها محدودة_، مما يعني أنها تفتقر إلى المعرفة حول مفاهيم خارج نطاق التدريب. ونتيجة لذلك، قد تنتج إكمالات غير دقيقة أو خيالية أو متناقضة مع الحقائق المعروفة. _تقنيات هندسة المطالبات تساعد المستخدمين على التعرف على هذه الاختلاقات والتقليل منها، مثلاً بطلب الاستشهادات أو التبرير من الذكاء الاصطناعي_. - -3. **قدرات النماذج تختلف.** النماذج الأحدث أو أجيال النماذج الجديدة تمتلك قدرات أغنى لكنها تجلب أيضًا خصائص فريدة وتوازنات في التكلفة والتعقيد. _هندسة المطالبات تساعدنا على تطوير أفضل الممارسات وسير العمل التي تخفي هذه الاختلافات وتتأقلم مع متطلبات النموذج الخاصة بطريقة قابلة للتوسع وسلسة_. - -دعونا نرى هذا عمليًا في OpenAI أو Azure OpenAI Playground: - -- استخدم نفس المطالبة مع نشرات مختلفة لنماذج اللغة الكبيرة (مثل OpenAI، Azure OpenAI، Hugging Face) - هل لاحظت التباينات؟ -- استخدم نفس المطالبة مرارًا مع نفس نشر نموذج اللغة الكبير (مثل Azure OpenAI playground) - كيف اختلفت هذه التباينات؟ - -### مثال على الاختلاقات - -في هذا المقرر، نستخدم مصطلح **"الاختلاق"** للإشارة إلى الظاهرة التي تولد فيها نماذج اللغة الكبيرة أحيانًا معلومات غير صحيحة واقعيًا بسبب محدودية تدريبها أو قيود أخرى. قد تكون سمعت هذا يُشار إليه أحيانًا بـ _"الهلوسات"_ في المقالات الشعبية أو الأوراق البحثية. ومع ذلك، نوصي بشدة باستخدام مصطلح _"الاختلاق"_ حتى لا نمنح السلوك صفة إنسانية عن طريق الخطأ من خلال نسب سمة بشرية إلى نتيجة مدفوعة بالآلة. وهذا يعزز أيضًا [إرشادات الذكاء الاصطناعي المسؤول](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) من منظور المصطلحات، بإزالة مصطلحات قد تُعتبر مسيئة أو غير شاملة في بعض السياقات. - -هل تريد أن تفهم كيف تعمل الاختلاقات؟ فكر في مطالبة تطلب من الذكاء الاصطناعي إنشاء محتوى لموضوع غير موجود (للتأكد من أنه غير موجود في مجموعة بيانات التدريب). على سبيل المثال - جربت هذه المطالبة: -# خطة درس: حرب المريخ لعام 2076 - -## مقدمة -في هذا الدرس، سنتعرف على حرب المريخ التي وقعت في عام 2076، والتي كانت واحدة من أبرز الصراعات في تاريخ البشرية والمستعمرات الفضائية. سنناقش أسباب الحرب، الأحداث الرئيسية، والنتائج التي أثرت على مستقبل استكشاف الفضاء. - -## الأهداف التعليمية -- فهم الأسباب التي أدت إلى اندلاع حرب المريخ. -- التعرف على الأطراف المشاركة في الحرب وأدوارهم. -- تحليل الأحداث الرئيسية خلال الصراع. -- تقييم تأثير الحرب على العلاقات بين الأرض والمستعمرات الفضائية. - -## المواد المطلوبة -- خرائط للمريخ والمستعمرات الفضائية في عام 2076. -- مقاطع فيديو توضيحية عن الحرب. -- نصوص ووثائق تاريخية مختارة. - -## خطة الدرس - -### 1. مقدمة عامة (10 دقائق) -- تقديم خلفية عن استيطان المريخ قبل عام 2076. -- شرح الظروف السياسية والاقتصادية التي سبقت الحرب. - -### 2. أسباب الحرب (15 دقيقة) -- مناقشة النزاعات حول الموارد والسيادة. -- دور التكنولوجيا والتسلح في تصعيد التوترات. - -### 3. الأحداث الرئيسية (20 دقيقة) -- استعراض المعارك الكبرى والتكتيكات المستخدمة. -- تحليل دور الشخصيات الرئيسية والقادة العسكريين. - -### 4. نتائج الحرب (10 دقائق) -- تأثير الحرب على المستعمرات المريخية. -- التغييرات في السياسات الفضائية بعد الحرب. - -### 5. نشاط تفاعلي (15 دقيقة) -- تقسيم الطلاب إلى مجموعات لمناقشة سيناريوهات بديلة للحرب. -- عرض نتائج المناقشات ومشاركة الأفكار. - -## التقييم -- اختبار قصير حول أسباب وأحداث الحرب. -- مشروع بحثي عن تأثير الحرب على استكشاف الفضاء. - -## ملاحظات -[!TIP] شجع الطلاب على التفكير النقدي حول الصراعات المستقبلية في الفضاء وكيف يمكن تجنبها. -أظهر بحث على الويب أن هناك حسابات خيالية (مثل المسلسلات التلفزيونية أو الكتب) عن حروب المريخ - لكن لا شيء في عام 2076. والمنطق السليم يخبرنا أيضًا أن عام 2076 هو _في المستقبل_ وبالتالي، لا يمكن ربطه بحدث حقيقي. - -فماذا يحدث عندما نشغل هذا الطلب مع مزودي نماذج اللغة الكبيرة المختلفين؟ - -> **الرد 1**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.ar.png) - -> **الرد 2**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.ar.png) - -> **الرد 3**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.ar.png) - -كما هو متوقع، كل نموذج (أو نسخة من النموذج) ينتج ردودًا مختلفة قليلاً بفضل السلوك العشوائي واختلاف قدرات النماذج. على سبيل المثال، يستهدف نموذج واحد جمهور الصف الثامن بينما يفترض الآخر طالبًا في المدرسة الثانوية. لكن جميع النماذج الثلاثة أنتجت ردودًا يمكن أن تقنع مستخدمًا غير مطلع بأن الحدث كان حقيقيًا. - -تقنيات هندسة الطلبات مثل _الميتابرومبتينغ_ و_تكوين درجة الحرارة_ قد تقلل من اختلاق النماذج إلى حد ما. كما أن _الهياكل_ الجديدة لهندسة الطلبات تدمج أدوات وتقنيات جديدة بسلاسة في تدفق الطلب، لتخفيف أو تقليل بعض هذه التأثيرات. - -## دراسة حالة: GitHub Copilot - -لنختم هذا القسم بفهم كيف تُستخدم هندسة الطلبات في حلول العالم الحقيقي من خلال دراسة حالة واحدة: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot هو "المبرمج المساعد بالذكاء الاصطناعي" الخاص بك - يحول طلبات النص إلى إكمالات للكود وهو مدمج في بيئة تطويرك (مثل Visual Studio Code) لتجربة مستخدم سلسة. كما هو موثق في سلسلة المدونات أدناه، كانت النسخة الأولى مبنية على نموذج OpenAI Codex - حيث أدرك المهندسون بسرعة الحاجة إلى ضبط النموذج بدقة وتطوير تقنيات أفضل لهندسة الطلبات لتحسين جودة الكود. في يوليو، [أطلقوا نموذج ذكاء اصطناعي محسّن يتجاوز Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) لتقديم اقتراحات أسرع. - -اقرأ المشاركات بالترتيب لتتبع رحلة تعلمهم. - -- **مايو 2023** | [GitHub Copilot يتحسن في فهم كودك](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **مايو 2023** | [داخل GitHub: العمل مع نماذج اللغة الكبيرة خلف GitHub Copilot](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **يونيو 2023** | [كيفية كتابة طلبات أفضل لـ GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **يوليو 2023** | [.. GitHub Copilot يتجاوز Codex بنموذج ذكاء اصطناعي محسّن](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **يوليو 2023** | [دليل المطور لهندسة الطلبات ونماذج اللغة الكبيرة](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **سبتمبر 2023** | [كيفية بناء تطبيق LLM للمؤسسات: دروس من GitHub Copilot](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -يمكنك أيضًا تصفح [مدونتهم الهندسية](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) لمزيد من المشاركات مثل [هذه](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) التي توضح كيف تُطبَّق هذه النماذج والتقنيات في دفع تطبيقات العالم الحقيقي. - ---- - - - -## بناء الطلب - -لقد رأينا لماذا هندسة الطلبات مهمة - الآن دعونا نفهم كيف يتم _بناء_ الطلبات حتى نتمكن من تقييم تقنيات مختلفة لتصميم طلبات أكثر فاعلية. - -### الطلب الأساسي - -لنبدأ بالطلب الأساسي: إدخال نصي يُرسل إلى النموذج بدون أي سياق آخر. إليك مثالًا - عندما نرسل الكلمات القليلة الأولى من النشيد الوطني الأمريكي إلى OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst) فإنه يكمل الرد على الفور بالسطور التالية، موضحًا سلوك التنبؤ الأساسي. - -| الطلب (الإدخال) | الإكمال (الإخراج) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | يبدو أنك تبدأ كلمات "The Star-Spangled Banner"، النشيد الوطني للولايات المتحدة. الكلمات الكاملة هي ... | - -### الطلب المعقد - -الآن دعونا نضيف سياقًا وتعليمات إلى ذلك الطلب الأساسي. تتيح لنا [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) بناء طلب معقد كمجموعة من _الرسائل_ مع: - -- أزواج الإدخال/الإخراج التي تعكس إدخال _المستخدم_ ورد _المساعد_. -- رسالة النظام التي تحدد سياق سلوك المساعد أو شخصيته. - -الطلب الآن في الشكل أدناه، حيث تلتقط _التقطيع_ بفعالية المعلومات ذات الصلة من السياق والمحادثة. الآن، يمكن أن يكون تغيير سياق النظام مؤثرًا على جودة الإكمالات بقدر تأثير مدخلات المستخدم المقدمة. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### طلب التعليمات - -في الأمثلة أعلاه، كان طلب المستخدم استعلامًا نصيًا بسيطًا يمكن تفسيره كطلب معلومات. مع طلبات _التعليمات_، يمكننا استخدام ذلك النص لتحديد مهمة بمزيد من التفصيل، مما يوفر توجيهًا أفضل للذكاء الاصطناعي. إليك مثالًا: - -| الطلب (الإدخال) | الإكمال (الإخراج) | نوع التعليمات | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Write a description of the Civil War | _أعاد فقرة بسيطة_ | بسيط | -| Write a description of the Civil War. Provide key dates and events and describe their significance | _أعاد فقرة تليها قائمة بتواريخ الأحداث الرئيسية مع أوصاف_ | معقد | -| Write a description of the Civil War in 1 paragraph. Provide 3 bullet points with key dates and their significance. Provide 3 more bullet points with key historical figures and their contributions. Return the output as a JSON file | _يعيد تفاصيل أكثر شمولاً في مربع نص، منسقة كملف JSON يمكنك نسخه ولصقه للتحقق حسب الحاجة_ | معقد. منسق. | - -## المحتوى الأساسي - -في الأمثلة أعلاه، كان الطلب لا يزال مفتوحًا إلى حد ما، مما يسمح لنموذج اللغة الكبير بتحديد أي جزء من مجموعة البيانات المدربة مسبقًا ذات صلة. مع نمط تصميم _المحتوى الأساسي_، يُقسم النص المدخل إلى جزأين: - -- تعليمات (إجراء) -- محتوى ذي صلة (يؤثر على الإجراء) - -إليك مثالًا حيث التعليمات هي "لخص هذا في جملتين". - -| الطلب (الإدخال) | الإكمال (الإخراج) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| كوكب المشتري هو الكوكب الخامس من الشمس والأكبر في النظام الشمسي. إنه عملاق غازي كتلته تعادل ألف جزء من كتلة الشمس، لكنه يزيد بمرتين ونصف عن مجموع كتل جميع الكواكب الأخرى في النظام الشمسي مجتمعة. المشتري هو أحد ألمع الأجسام التي يمكن رؤيتها بالعين المجردة في السماء ليلاً، وكان معروفًا للحضارات القديمة منذ ما قبل التاريخ المسجل. سُمي على اسم الإله الروماني جوبيتر.[19] عند النظر إليه من الأرض، يمكن أن يكون المشتري ساطعًا بما يكفي ليُلقي ظلالًا مرئية،[20] وهو في المتوسط ثالث ألمع جسم طبيعي في السماء ليلاً بعد القمر والزهرة.
**لخص هذا في جملتين قصيرتين** | المشتري، الكوكب الخامس من الشمس، هو الأكبر في النظام الشمسي ويُعرف بكونه أحد ألمع الأجسام في السماء ليلاً. سُمي على اسم الإله الروماني جوبيتر، وهو عملاق غازي كتلته تعادل مرتين ونصف مجموع كتل جميع الكواكب الأخرى في النظام الشمسي مجتمعة. | - -يمكن استخدام جزء المحتوى الأساسي بطرق مختلفة لتوجيه تعليمات أكثر فاعلية: - -- **أمثلة** - بدلاً من إخبار النموذج بما يجب فعله بتعليمات صريحة، قدم له أمثلة لما يجب فعله ودعه يستنتج النمط. -- **إشارات** - اتبع التعليمات بـ "إشارة" تهيئ الإكمال، موجهًا النموذج نحو ردود أكثر صلة. -- **قوالب** - هذه وصفات قابلة للتكرار للطلبات مع متغيرات يمكن تخصيصها بالبيانات لحالات استخدام محددة. - -دعونا نستكشف هذه في التطبيق. - -### استخدام الأمثلة - -هذه طريقة تستخدم المحتوى الأساسي لـ "تغذية النموذج" ببعض الأمثلة على المخرجات المطلوبة لمهمة معينة، وتترك له استنتاج نمط المخرجات المطلوبة. بناءً على عدد الأمثلة المقدمة، يمكننا استخدام طلبات بدون أمثلة (zero-shot)، أو بمثال واحد (one-shot)، أو بعدة أمثلة (few-shot) وهكذا. - -يتكون الطلب الآن من ثلاثة مكونات: - -- وصف المهمة -- بعض الأمثلة على المخرجات المطلوبة -- بداية مثال جديد (يصبح وصفًا ضمنيًا للمهمة) - -| نوع التعلم | الطلب (الإدخال) | الإكمال (الإخراج) | -| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| بدون أمثلة | "The Sun is Shining". ترجم إلى الإسبانية | "El Sol está brillando". | -| بمثال واحد | "The Sun is Shining" => ""El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| بعدة أمثلة | اللاعب ركض القواعد => كرة القاعدة
اللاعب ضرب إيس => تنس
اللاعب ضرب ستة => كريكيت
اللاعب نفذ سلام-دانك => | كرة السلة | -| | | | - -لاحظ كيف كان علينا تقديم تعليمات صريحة ("ترجم إلى الإسبانية") في طلب بدون أمثلة، لكنها تُستنتج في مثال بمثال واحد. ويُظهر مثال بعدة أمثلة كيف أن إضافة المزيد من الأمثلة يسمح للنماذج باستنتاجات أكثر دقة بدون تعليمات إضافية. - -### إشارات الطلب - -تقنية أخرى لاستخدام المحتوى الأساسي هي تقديم _إشارات_ بدلاً من الأمثلة. في هذه الحالة، نعطي النموذج دفعة في الاتجاه الصحيح عن طريق _بدءه_ بمقتطف يعكس تنسيق الرد المطلوب. ثم "يأخذ النموذج الإشارة" ليكمل على هذا النحو. - -| عدد الإشارات | الطلب (الإدخال) | الإكمال (الإخراج) | -| :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | كوكب المشتري هو الكوكب الخامس من الشمس والأكبر في النظام الشمسي. إنه عملاق غازي كتلته تعادل ألف جزء من كتلة الشمس، لكنه يزيد بمرتين ونصف عن مجموع كتل جميع الكواكب الأخرى في النظام الشمسي مجتمعة. المشتري هو أحد ألمع الأجسام التي يمكن رؤيتها بالعين المجردة في السماء ليلاً، وكان معروفًا للحضارات القديمة منذ ما قبل التاريخ المسجل. - -**لخص هذا** | كوكب المشتري هو أكبر كواكب نظامنا الشمسي والخامس بعدًا عن الشمس. إنه عملاق غازي كتلته تعادل 1/1000 من كتلة الشمس، لكنه أثقل من جميع الكواكب الأخرى مجتمعة. عرفته الحضارات القديمة منذ زمن بعيد، وهو واضح للعين المجردة في السماء ليلاً.. | -| 1 | المشتري هو الكوكب الخامس من الشمس والأكبر في النظام الشمسي. إنه عملاق غازي كتلته تعادل جزءًا من الألف من كتلة الشمس، لكنه أثقل بمرتين ونصف من مجموع كتلة جميع الكواكب الأخرى في النظام الشمسي. المشتري من ألمع الأجسام التي يمكن رؤيتها بالعين المجردة في السماء ليلاً، وقد عرفته الحضارات القديمة منذ ما قبل التاريخ المسجل.
**لخص هذا**
ما تعلمناه هو أن المشتري | هو الكوكب الخامس من الشمس والأكبر في النظام الشمسي. إنه عملاق غازي كتلته تعادل جزءًا من الألف من كتلة الشمس، لكنه أثقل بمرتين ونصف من مجموع كتلة جميع الكواكب الأخرى مجتمعة. يمكن رؤيته بسهولة بالعين المجردة وقد عرف منذ العصور القديمة. | -| 2 | المشتري هو الكوكب الخامس من الشمس والأكبر في النظام الشمسي. إنه عملاق غازي كتلته تعادل جزءًا من الألف من كتلة الشمس، لكنه أثقل بمرتين ونصف من مجموع كتلة جميع الكواكب الأخرى في النظام الشمسي. المشتري من ألمع الأجسام التي يمكن رؤيتها بالعين المجردة في السماء ليلاً، وقد عرفته الحضارات القديمة منذ ما قبل التاريخ المسجل.
**لخص هذا**
أهم 3 حقائق تعلمناها: | 1. المشتري هو الكوكب الخامس من الشمس والأكبر في النظام الشمسي.
2. إنه عملاق غازي كتلته تعادل جزءًا من الألف من كتلة الشمس...
3. المشتري كان مرئيًا بالعين المجردة منذ العصور القديمة ... | -| | | | - -### قوالب المطالبات - -قالب المطالبة هو _وصفة محددة مسبقًا للمطالبة_ يمكن تخزينها وإعادة استخدامها حسب الحاجة، لتوفير تجارب مستخدم أكثر اتساقًا على نطاق واسع. في أبسط أشكاله، هو مجرد مجموعة من أمثلة المطالبات مثل [هذا المثال من OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) الذي يوفر مكونات المطالبة التفاعلية (رسائل المستخدم والنظام) وصيغة الطلب المدفوعة عبر API - لدعم إعادة الاستخدام. - -في شكله الأكثر تعقيدًا مثل [هذا المثال من LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst) يحتوي على _نقاط استبدال_ يمكن ملؤها ببيانات من مصادر متنوعة (مدخلات المستخدم، سياق النظام، مصادر بيانات خارجية، إلخ) لإنشاء مطالبة ديناميكيًا. هذا يسمح لنا بإنشاء مكتبة من المطالبات القابلة لإعادة الاستخدام التي يمكن استخدامها لقيادة تجارب مستخدم متسقة **برمجيًا** على نطاق واسع. - -وأخيرًا، القيمة الحقيقية للقوالب تكمن في القدرة على إنشاء ونشر _مكتبات مطالبات_ لمجالات تطبيق عمودية - حيث يتم الآن _تحسين_ قالب المطالبة ليعكس سياقًا أو أمثلة خاصة بالتطبيق تجعل الردود أكثر صلة ودقة للجمهور المستهدف. مستودع [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) هو مثال رائع على هذا النهج، حيث يجمع مكتبة من المطالبات لمجال التعليم مع التركيز على أهداف رئيسية مثل تخطيط الدروس، تصميم المناهج، تدريس الطلاب، إلخ. - -## المحتوى الداعم - -إذا اعتبرنا بناء المطالبة كوجود تعليمات (مهمة) ومحتوى رئيسي (المحتوى الأساسي)، فإن _المحتوى الثانوي_ يشبه السياق الإضافي الذي نقدمه لـ **التأثير على الناتج بطريقة ما**. قد يكون ذلك معلمات ضبط، تعليمات تنسيق، تصنيفات موضوعية، إلخ، التي تساعد النموذج على _تخصيص_ استجابته لتناسب الأهداف أو التوقعات المرجوة للمستخدم. - -على سبيل المثال: بالنظر إلى كتالوج دورات يحتوي على بيانات وصفية واسعة (الاسم، الوصف، المستوى، علامات البيانات الوصفية، المدرب، إلخ) لجميع الدورات المتاحة في المنهج: - -- يمكننا تحديد تعليمات لـ "تلخيص كتالوج الدورات لفصل خريف 2023" -- يمكننا استخدام المحتوى الرئيسي لتقديم بعض الأمثلة على الناتج المطلوب -- يمكننا استخدام المحتوى الثانوي لتحديد أهم 5 "علامات" ذات اهتمام. - -الآن، يمكن للنموذج تقديم ملخص بالشكل الموضح في الأمثلة القليلة - ولكن إذا كان الناتج يحتوي على علامات متعددة، يمكنه إعطاء أولوية للعلامات الخمسة المحددة في المحتوى الثانوي. - ---- - - - -## أفضل ممارسات المطالبة - -الآن بعد أن عرفنا كيف يمكن _بناء_ المطالبات، يمكننا البدء بالتفكير في كيفية _تصميمها_ لتعكس أفضل الممارسات. يمكننا التفكير في ذلك على جزأين - امتلاك _عقلية_ صحيحة وتطبيق _تقنيات_ مناسبة. - -### عقلية هندسة المطالبات - -هندسة المطالبات هي عملية تجريبية، لذا احتفظ بثلاثة عوامل إرشادية عامة في ذهنك: - -1. **فهم المجال مهم.** دقة وملاءمة الاستجابة تعتمد على _المجال_ الذي يعمل فيه التطبيق أو المستخدم. استخدم حدسك وخبرتك في المجال لـ **تخصيص التقنيات** بشكل أعمق. على سبيل المثال، عرّف _شخصيات خاصة بالمجال_ في مطالبات النظام، أو استخدم _قوالب خاصة بالمجال_ في مطالبات المستخدم. قدم محتوى ثانوي يعكس سياقات خاصة بالمجال، أو استخدم _إشارات وأمثلة خاصة بالمجال_ لتوجيه النموذج نحو أنماط استخدام مألوفة. - -2. **فهم النموذج مهم.** نعلم أن النماذج عشوائية بطبيعتها. لكن تطبيقات النماذج قد تختلف أيضًا من حيث مجموعة البيانات التدريبية المستخدمة (المعرفة المسبقة)، والقدرات التي توفرها (مثلًا عبر API أو SDK) ونوع المحتوى الذي تم تحسينها له (كود، صور، نصوص). افهم نقاط القوة والقيود للنموذج الذي تستخدمه، واستخدم هذه المعرفة لـ _تحديد أولويات المهام_ أو بناء _قوالب مخصصة_ محسنة لقدرات النموذج. - -3. **التكرار والتحقق مهمان.** النماذج تتطور بسرعة، وكذلك تقنيات هندسة المطالبات. بصفتك خبيرًا في المجال، قد يكون لديك سياق أو معايير خاصة _بتطبيقك_ قد لا تنطبق على المجتمع الأوسع. استخدم أدوات وتقنيات هندسة المطالبات لـ "الانطلاق السريع" في بناء المطالبات، ثم كرر وحقق النتائج باستخدام حدسك وخبرتك في المجال. سجّل ملاحظاتك وأنشئ **قاعدة معرفة** (مثل مكتبات المطالبات) يمكن للآخرين استخدامها كأساس جديد لتسريع التكرارات المستقبلية. - -## أفضل الممارسات - -لننظر الآن إلى أفضل الممارسات الشائعة التي يوصي بها ممارسو [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) و[Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst). - -| ماذا | لماذا | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| تقييم أحدث النماذج. | من المحتمل أن تحتوي أجيال النماذج الجديدة على ميزات وجودة محسنة - لكنها قد تكلف أكثر. قيّمها من حيث التأثير، ثم اتخذ قرارات الترحيل. | -| فصل التعليمات والسياق | تحقق مما إذا كان مزود النموذج يحدد _فواصل_ لتمييز التعليمات، المحتوى الأساسي والثانوي بوضوح أكبر. هذا يساعد النماذج على تعيين أوزان أكثر دقة للرموز. | -| كن محددًا وواضحًا | قدم تفاصيل أكثر عن السياق المطلوب، النتيجة، الطول، التنسيق، الأسلوب، إلخ. هذا يحسن جودة واتساق الردود. سجّل الوصفات في قوالب قابلة لإعادة الاستخدام. | -| كن وصفيًا، استخدم أمثلة | قد تستجيب النماذج بشكل أفضل لنهج "عرض وشرح". ابدأ بنهج `صفر-لقطة` حيث تعطي تعليمات (دون أمثلة) ثم جرب `عدة لقطات` كتحسين، مع تقديم بعض الأمثلة على الناتج المطلوب. استخدم التشبيهات. | -| استخدم إشارات لبدء الإكمالات | حفّز النموذج نحو نتيجة مرغوبة بإعطائه كلمات أو عبارات تمهيدية يمكنه استخدامها كنقطة انطلاق للرد. | -| كرر التأكيد | أحيانًا قد تحتاج إلى تكرار التعليمات للنموذج. قدم التعليمات قبل وبعد المحتوى الأساسي، استخدم تعليمات وإشارة، إلخ. كرر وحقق لترى ما الذي يعمل. | -| الترتيب مهم | ترتيب تقديم المعلومات للنموذج قد يؤثر على الناتج، حتى في أمثلة التعلم، بسبب تحيز الحداثة. جرب خيارات مختلفة لترى الأفضل. | -| أعطِ للنموذج "مخرجًا" | امنح النموذج استجابة _احتياطية_ يمكنه تقديمها إذا لم يتمكن من إكمال المهمة لأي سبب. هذا يقلل من فرص توليد ردود خاطئة أو ملفقة. | -| | | - -كما هو الحال مع أي أفضل ممارسة، تذكر أن _تجربتك قد تختلف_ بناءً على النموذج، المهمة والمجال. استخدم هذه كنقطة انطلاق، وكرر لتجد ما يناسبك. أعد تقييم عملية هندسة المطالبات باستمرار مع توفر نماذج وأدوات جديدة، مع التركيز على قابلية التوسع وجودة الاستجابة. - - - -## الواجب - -تهانينا! وصلت إلى نهاية الدرس! حان الوقت لتطبيق بعض هذه المفاهيم والتقنيات من خلال أمثلة حقيقية! - -بالنسبة لواجبنا، سنستخدم دفتر Jupyter مع تمارين يمكنك إكمالها تفاعليًا. يمكنك أيضًا توسيع الدفتر بخلايا Markdown وCode خاصة بك لاستكشاف الأفكار والتقنيات بنفسك. - -### للبدء، قم بعمل نسخة من المستودع، ثم - -- (موصى به) شغّل GitHub Codespaces -- (بديلًا) استنسخ المستودع إلى جهازك المحلي واستخدمه مع Docker Desktop -- (بديلًا) افتح الدفتر في بيئة تشغيل الدفاتر المفضلة لديك. - -### بعد ذلك، قم بتكوين متغيرات البيئة - -- انسخ ملف `.env.copy` من جذر المستودع إلى `.env` واملأ قيم `AZURE_OPENAI_API_KEY`، `AZURE_OPENAI_ENDPOINT` و `AZURE_OPENAI_DEPLOYMENT`. عد إلى [قسم Learning Sandbox](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) لتتعلم كيف. - -### بعد ذلك، افتح دفتر Jupyter - -- اختر نواة التشغيل. إذا كنت تستخدم الخيارين 1 أو 2، فقط اختر نواة Python 3.10.x الافتراضية المقدمة من حاوية التطوير. - -أنت جاهز لتشغيل التمارين. لاحظ أنه لا توجد إجابات _صحيحة أو خاطئة_ هنا - فقط استكشاف الخيارات بالتجربة والخطأ وبناء حدس لما يناسب نموذجًا ومجال تطبيق معين. - -_لهذا السبب لا توجد أقسام حلول كود في هذا الدرس. بدلاً من ذلك، سيكون في الدفتر خلايا Markdown بعنوان "حلي:" تعرض مثالًا واحدًا للناتج كمرجع._ - - - -## اختبار المعرفة - -أي من التالي يُعد مطالبة جيدة تتبع بعض أفضل الممارسات المعقولة؟ - -1. أرني صورة لسيارة حمراء -2. أرني صورة لسيارة حمراء من نوع فولفو وطراز XC90 متوقفة بجانب جرف مع غروب الشمس -3. أرني صورة لسيارة حمراء من نوع فولفو وطراز XC90 - -الإجابة: 2، هي أفضل مطالبة لأنها تقدم تفاصيل عن "ما" وتدخل في التفاصيل (ليست أي سيارة بل نوع وطراز محدد) كما تصف المشهد العام. 3 هي الثانية لأنها تحتوي أيضًا على وصف كثير. - -## 🚀 التحدي - -حاول استخدام تقنية "الإشارة" مع المطالبة: أكمل الجملة "أرني صورة لسيارة حمراء من نوع فولفو و". ماذا يرد النموذج، وكيف تحسنها؟ - -## عمل رائع! واصل تعلمك - -هل تريد معرفة المزيد عن مفاهيم هندسة المطالبات المختلفة؟ توجه إلى [صفحة التعلم المستمر](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) لتجد موارد رائعة أخرى حول هذا الموضوع. - -انتقل إلى الدرس 5 حيث سنستعرض [تقنيات المطالبات المتقدمة](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**إخلاء المسؤولية**: -تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق به. للمعلومات الهامة، يُنصح بالاعتماد على الترجمة البشرية المهنية. نحن غير مسؤولين عن أي سوء فهم أو تفسير ناتج عن استخدام هذه الترجمة. \ No newline at end of file + + + + + + + diff --git a/translations/ar/09-building-image-applications/README.md b/translations/ar/09-building-image-applications/README.md index f722ede14..65c7320ce 100644 --- a/translations/ar/09-building-image-applications/README.md +++ b/translations/ar/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# بناء تطبيقات توليد الصور - -[![بناء تطبيقات توليد الصور](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.ar.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -تتجاوز قدرات نماذج اللغة الكبيرة (LLMs) توليد النصوص فقط، إذ يمكن أيضًا توليد الصور من أوصاف نصية. وجود الصور كوسيلة تواصل يمكن أن يكون مفيدًا جدًا في مجالات متعددة مثل التكنولوجيا الطبية، الهندسة المعمارية، السياحة، تطوير الألعاب والمزيد. في هذا الفصل، سنستعرض أشهر نموذجين لتوليد الصور، DALL-E وMidjourney. - -## المقدمة - -في هذا الدرس، سنغطي: - -- توليد الصور ولماذا هو مفيد. -- ما هو DALL-E وMidjourney، وكيف يعملان. -- كيفية بناء تطبيق لتوليد الصور. - -## أهداف التعلم - -بعد إتمام هذا الدرس، ستكون قادرًا على: - -- بناء تطبيق لتوليد الصور. -- تحديد حدود تطبيقك باستخدام الميتا برومبتس. -- العمل مع DALL-E وMidjourney. - -## لماذا نبني تطبيقًا لتوليد الصور؟ - -تطبيقات توليد الصور طريقة رائعة لاستكشاف قدرات الذكاء الاصطناعي التوليدي. يمكن استخدامها، على سبيل المثال، في: - -- **تحرير وتركيب الصور**. يمكنك توليد صور لمجموعة متنوعة من الاستخدامات مثل تحرير الصور وتركيبها. - -- **تطبيقات في صناعات متعددة**. يمكن استخدامها لتوليد صور لقطاعات مختلفة مثل التكنولوجيا الطبية، السياحة، تطوير الألعاب والمزيد. - -## السيناريو: Edu4All - -كجزء من هذا الدرس، سنواصل العمل مع شركتنا الناشئة Edu4All. سيقوم الطلاب بإنشاء صور لتقييماتهم، ونوع الصور متروك لهم، فقد تكون رسومات لقصة خيالية خاصة بهم، أو إنشاء شخصية جديدة لقصة، أو مساعدتهم في تصور أفكارهم ومفاهيمهم. - -إليك مثال لما يمكن أن يولده طلاب Edu4All إذا كانوا يعملون في الصف على المعالم: - -![Edu4All startup, class on monuments, Eiffel Tower](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.ar.png) - -باستخدام برومبت مثل - -> "كلب بجانب برج إيفل في ضوء شمس الصباح الباكر" - -## ما هو DALL-E وMidjourney؟ - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) و[Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) هما من أشهر نماذج توليد الصور، حيث يسمحان لك باستخدام برومبتس لتوليد الصور. - -### DALL-E - -لنبدأ بـ DALL-E، وهو نموذج ذكاء اصطناعي توليدي يولد الصور من أوصاف نصية. - -> [DALL-E هو مزيج من نموذجين، CLIP والانتباه المنتشر](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP**، هو نموذج يولد تمثيلات رقمية (embeddings) للبيانات من الصور والنصوص. - -- **الانتباه المنتشر (Diffused attention)**، هو نموذج يولد الصور من التمثيلات الرقمية. تم تدريب DALL-E على مجموعة بيانات من الصور والنصوص ويمكن استخدامه لتوليد صور من أوصاف نصية. على سبيل المثال، يمكن استخدام DALL-E لتوليد صور لقطة ترتدي قبعة، أو كلب ذو تسريحة موهوك. - -### Midjourney - -يعمل Midjourney بطريقة مشابهة لـ DALL-E، حيث يولد الصور من برومبتات نصية. يمكن استخدام Midjourney أيضًا لتوليد صور باستخدام برومبتات مثل "قطة ترتدي قبعة"، أو "كلب ذو تسريحة موهوك". - -![صورة مولدة بواسطة Midjourney، حمامة ميكانيكية](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_مصدر الصورة ويكيبيديا، صورة مولدة بواسطة Midjourney_ - -## كيف يعمل DALL-E وMidjourney - -أولًا، [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). DALL-E هو نموذج ذكاء اصطناعي توليدي يعتمد على بنية المحول (transformer) مع _محول ذاتي الانحدار_ (autoregressive transformer). - -المحول الذاتي الانحدار يحدد كيف يولد النموذج الصور من الأوصاف النصية، حيث يولد بكسلًا واحدًا في كل مرة، ثم يستخدم البكسلات المولدة لتوليد البكسل التالي. يمر عبر عدة طبقات في شبكة عصبية حتى تكتمل الصورة. - -بهذه العملية، يتحكم DALL-E في السمات، والأشياء، والخصائص، والمزيد في الصورة التي يولدها. ومع ذلك، فإن DALL-E 2 و3 يملكان تحكمًا أكبر في الصورة المولدة. - -## بناء أول تطبيق لتوليد الصور - -فما الذي تحتاجه لبناء تطبيق لتوليد الصور؟ تحتاج إلى المكتبات التالية: - -- **python-dotenv**، يُنصح بشدة باستخدام هذه المكتبة للاحتفاظ بمعلوماتك السرية في ملف _.env_ بعيدًا عن الكود. -- **openai**، هذه المكتبة هي التي ستستخدمها للتفاعل مع واجهة برمجة تطبيقات OpenAI. -- **pillow**، للعمل مع الصور في بايثون. -- **requests**، لمساعدتك في إجراء طلبات HTTP. - -1. أنشئ ملف _.env_ بالمحتوى التالي: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - يمكنك العثور على هذه المعلومات في بوابة Azure لموردك في قسم "المفاتيح ونقطة النهاية". - -1. اجمع المكتبات السابقة في ملف يسمى _requirements.txt_ كما يلي: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. بعد ذلك، أنشئ بيئة افتراضية وقم بتثبيت المكتبات: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - بالنسبة لنظام ويندوز، استخدم الأوامر التالية لإنشاء وتفعيل البيئة الافتراضية: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. أضف الكود التالي في ملف يسمى _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -دعنا نشرح هذا الكود: - -- أولًا، نستورد المكتبات التي نحتاجها، بما في ذلك مكتبة OpenAI، ومكتبة dotenv، ومكتبة requests، ومكتبة Pillow. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- بعد ذلك، نقوم بتحميل متغيرات البيئة من ملف _.env_. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- ثم نحدد نقطة النهاية، والمفتاح الخاص بواجهة برمجة تطبيقات OpenAI، والإصدار والنوع. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- بعد ذلك، نقوم بتوليد الصورة: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - الكود أعلاه يرد بكائن JSON يحتوي على رابط URL للصورة المولدة. يمكننا استخدام الرابط لتحميل الصورة وحفظها في ملف. - -- أخيرًا، نفتح الصورة ونستخدم عارض الصور الافتراضي لعرضها: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### مزيد من التفاصيل حول توليد الصورة - -لننظر إلى الكود الذي يولد الصورة بمزيد من التفصيل: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt**، هو البرومبت النصي المستخدم لتوليد الصورة. في هذه الحالة، نستخدم البرومبت "أرنب على حصان، يحمل مصاصة، في مرج ضبابي حيث تنمو النرجسيات". -- **size**، هو حجم الصورة التي يتم توليدها. في هذه الحالة، نولد صورة بحجم 1024x1024 بكسل. -- **n**، هو عدد الصور التي يتم توليدها. في هذه الحالة، نولد صورتين. -- **temperature**، هو معامل يتحكم في عشوائية مخرجات نموذج الذكاء الاصطناعي التوليدي. تتراوح قيمته بين 0 و1 حيث تعني 0 أن المخرجات حتمية و1 تعني أن المخرجات عشوائية. القيمة الافتراضية هي 0.7. - -هناك المزيد من الأمور التي يمكنك القيام بها مع الصور وسنغطيها في القسم التالي. - -## القدرات الإضافية لتوليد الصور - -لقد رأيت حتى الآن كيف استطعنا توليد صورة باستخدام بضعة أسطر في بايثون. ومع ذلك، هناك المزيد مما يمكنك فعله مع الصور. - -يمكنك أيضًا القيام بما يلي: - -- **إجراء تعديلات**. من خلال توفير صورة موجودة مع قناع (mask) وبرومبت، يمكنك تعديل الصورة. على سبيل المثال، يمكنك إضافة شيء إلى جزء من الصورة. تخيل صورة الأرنب لدينا، يمكنك إضافة قبعة للأرنب. كيف تفعل ذلك؟ بتوفير الصورة، والقناع (لتحديد الجزء المراد تغييره)، وبرومبت نصي يوضح ما يجب القيام به. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - الصورة الأساسية ستحتوي فقط على الأرنب، لكن الصورة النهائية ستحتوي على القبعة على الأرنب. - -- **إنشاء تنويعات**. الفكرة هي أنك تأخذ صورة موجودة وتطلب إنشاء تنويعات لها. لإنشاء تنويعة، توفر صورة وبرومبت نصي وكود مثل التالي: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > ملاحظة، هذا مدعوم فقط على OpenAI - -## درجة الحرارة (Temperature) - -درجة الحرارة هي معامل يتحكم في عشوائية مخرجات نموذج الذكاء الاصطناعي التوليدي. تتراوح قيمتها بين 0 و1 حيث تعني 0 أن المخرجات حتمية و1 تعني أن المخرجات عشوائية. القيمة الافتراضية هي 0.7. - -لننظر إلى مثال على كيفية عمل درجة الحرارة، من خلال تشغيل هذا البرومبت مرتين: - -> البرومبت: "أرنب على حصان، يحمل مصاصة، في مرج ضبابي حيث تنمو النرجسيات" - -![أرنب على حصان يحمل مصاصة، النسخة 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.ar.png) - -الآن دعنا نشغل نفس البرومبت مرة أخرى لنرى أننا لن نحصل على نفس الصورة مرتين: - -![صورة مولدة لأرنب على حصان](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.ar.png) - -كما ترى، الصور متشابهة لكنها ليست متطابقة. دعنا نجرب تغيير قيمة درجة الحرارة إلى 0.1 ونرى ماذا يحدث: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### تغيير درجة الحرارة - -لنجرب جعل الاستجابة أكثر حتمية. يمكننا ملاحظة من الصورتين اللتين ولّدناهما أنه في الصورة الأولى هناك أرنب وفي الثانية هناك حصان، لذا الصور تختلف كثيرًا. - -لذلك، دعنا نغير الكود ونضبط درجة الحرارة إلى 0، كما يلي: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -الآن عند تشغيل هذا الكود، ستحصل على هاتين الصورتين: - -- ![درجة حرارة 0، النسخة 1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.ar.png) -- ![درجة حرارة 0، النسخة 2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.ar.png) - -هنا يمكنك بوضوح رؤية كيف أصبحت الصور أكثر تشابهًا. - -## كيفية تحديد حدود لتطبيقك باستخدام الميتا برومبتس - -مع العرض التوضيحي الخاص بنا، يمكننا بالفعل توليد صور لعملائنا. ومع ذلك، نحتاج إلى وضع بعض الحدود لتطبيقنا. - -على سبيل المثال، لا نريد توليد صور غير مناسبة للعمل أو غير ملائمة للأطفال. - -يمكننا فعل ذلك باستخدام _الميتا برومبتس_. الميتا برومبتس هي برومبتات نصية تُستخدم للتحكم في مخرجات نموذج الذكاء الاصطناعي التوليدي. على سبيل المثال، يمكننا استخدام الميتا برومبتس لضمان أن الصور المولدة آمنة للعمل أو مناسبة للأطفال. - -### كيف تعمل؟ - -كيف تعمل الميتا برومبتس؟ - -الميتا برومبتس هي برومبتات نصية تُستخدم للتحكم في مخرجات نموذج الذكاء الاصطناعي التوليدي، توضع قبل البرومبت النصي، وتُستخدم للتحكم في مخرجات النموذج وتُدمج في التطبيقات للتحكم في مخرجات النموذج. حيث يتم تضمين مدخلات البرومبت والمدخلات الميتا برومبت في برومبت نصي واحد. - -مثال على ميتا برومبت هو التالي: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -الآن، لنر كيف يمكننا استخدام الميتا برومبتس في عرضنا التوضيحي. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -من البرومبت أعلاه، يمكنك أن ترى كيف تأخذ جميع الصور التي يتم إنشاؤها الميتا برومبت بعين الاعتبار. - -## المهمة - لتمكين الطلاب - -قدمنا Edu4All في بداية هذا الدرس. حان الوقت الآن لتمكين الطلاب من توليد صور لتقييماتهم. - -سيقوم الطلاب بإنشاء صور لتقييماتهم تحتوي على معالم، ونوع المعالم متروك للطلاب. يُطلب من الطلاب استخدام إبداعهم في هذه المهمة لوضع هذه المعالم في سياقات مختلفة. - -## الحل - -إليك حل ممكن: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## عمل رائع! واصل تعلمك - -بعد إتمام هذا الدرس، اطلع على [مجموعة تعلم الذكاء الاصطناعي التوليدي](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) لمواصلة تطوير معرفتك في الذكاء الاصطناعي التوليدي! - -توجه إلى الدرس 10 حيث سنستعرض كيفية [بناء تطبيقات الذكاء الاصطناعي باستخدام البرمجة منخفضة الكود](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**إخلاء المسؤولية**: -تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق به. للمعلومات الهامة، يُنصح بالاعتماد على الترجمة البشرية المهنية. نحن غير مسؤولين عن أي سوء فهم أو تفسير ناتج عن استخدام هذه الترجمة. \ No newline at end of file + + + + diff --git a/translations/ar/12-designing-ux-for-ai-applications/README.md b/translations/ar/12-designing-ux-for-ai-applications/README.md index 3d87c4b7a..06bd5b6a0 100644 --- a/translations/ar/12-designing-ux-for-ai-applications/README.md +++ b/translations/ar/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# تصميم تجربة المستخدم لتطبيقات الذكاء الاصطناعي - -[![تصميم تجربة المستخدم لتطبيقات الذكاء الاصطناعي](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.ar.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(انقر على الصورة أعلاه لمشاهدة فيديو الدرس)_ - -تجربة المستخدم هي جانب مهم جدًا في بناء التطبيقات. يحتاج المستخدمون إلى القدرة على استخدام تطبيقك بطريقة فعالة لأداء المهام. الكفاءة أمر مهم، ولكن يجب أيضًا تصميم التطبيقات بحيث يمكن للجميع استخدامها، لجعلها _متاحة_. سيركز هذا الفصل على هذا الجانب حتى تتمكن من تصميم تطبيق يرغب الناس في استخدامه ويستطيعون ذلك. - -## مقدمة - -تجربة المستخدم هي كيفية تفاعل المستخدم مع منتج أو خدمة معينة، سواء كان نظامًا أو أداة أو تصميمًا. عند تطوير تطبيقات الذكاء الاصطناعي، لا يركز المطورون فقط على ضمان فعالية تجربة المستخدم، بل أيضًا على كونها أخلاقية. في هذا الدرس، نغطي كيفية بناء تطبيقات الذكاء الاصطناعي التي تلبي احتياجات المستخدمين. - -سيشمل الدرس المجالات التالية: - -- مقدمة في تجربة المستخدم وفهم احتياجات المستخدم -- تصميم تطبيقات الذكاء الاصطناعي للثقة والشفافية -- تصميم تطبيقات الذكاء الاصطناعي للتعاون والتغذية الراجعة - -## أهداف التعلم - -بعد إتمام هذا الدرس، ستكون قادرًا على: - -- فهم كيفية بناء تطبيقات الذكاء الاصطناعي التي تلبي احتياجات المستخدمين. -- تصميم تطبيقات الذكاء الاصطناعي التي تعزز الثقة والتعاون. - -### المتطلبات السابقة - -خذ بعض الوقت واقرأ المزيد عن [تجربة المستخدم والتفكير التصميمي.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## مقدمة في تجربة المستخدم وفهم احتياجات المستخدم - -في شركتنا التعليمية الافتراضية، لدينا مستخدمان رئيسيان، المعلمون والطلاب. لكل من هذين المستخدمين احتياجات فريدة. التصميم المرتكز على المستخدم يعطي الأولوية للمستخدم لضمان أن تكون المنتجات ذات صلة ومفيدة لمن صممت لهم. - -يجب أن يكون التطبيق **مفيدًا، موثوقًا، متاحًا وممتعًا** لتوفير تجربة مستخدم جيدة. - -### سهولة الاستخدام - -كون التطبيق مفيدًا يعني أن لديه وظائف تتناسب مع الغرض المقصود منه، مثل أتمتة عملية التصحيح أو إنشاء بطاقات مراجعة. يجب أن يكون التطبيق الذي يقوم بأتمتة التصحيح قادرًا على تقييم أعمال الطلاب بدقة وكفاءة بناءً على معايير محددة مسبقًا. وبالمثل، يجب أن يكون التطبيق الذي ينشئ بطاقات المراجعة قادرًا على توليد أسئلة متنوعة وذات صلة بناءً على بياناته. - -### الموثوقية - -كون التطبيق موثوقًا يعني أنه يمكنه أداء مهامه باستمرار وبدون أخطاء. ومع ذلك، الذكاء الاصطناعي مثل البشر ليس مثاليًا وقد يرتكب أخطاء. قد تواجه التطبيقات أخطاء أو مواقف غير متوقعة تتطلب تدخلًا بشريًا أو تصحيحًا. كيف تتعامل مع الأخطاء؟ في القسم الأخير من هذا الدرس، سنغطي كيفية تصميم أنظمة وتطبيقات الذكاء الاصطناعي للتعاون والتغذية الراجعة. - -### الوصولية - -كون التطبيق متاحًا يعني توسيع تجربة المستخدم لتشمل المستخدمين ذوي القدرات المختلفة، بما في ذلك ذوي الإعاقات، لضمان عدم استبعاد أي شخص. باتباع إرشادات ومبادئ الوصولية، تصبح حلول الذكاء الاصطناعي أكثر شمولية وقابلية للاستخدام ومفيدة لجميع المستخدمين. - -### المتعة - -كون التطبيق ممتعًا يعني أن استخدامه يبعث على السرور. يمكن لتجربة مستخدم جذابة أن تؤثر إيجابيًا على المستخدم، مما يشجعه على العودة إلى التطبيق وزيادة إيرادات العمل. - -![صورة توضح اعتبارات تجربة المستخدم في الذكاء الاصطناعي](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.ar.png) - -ليس كل تحد يمكن حله بالذكاء الاصطناعي. يأتي الذكاء الاصطناعي ليعزز تجربة المستخدم، سواء كان ذلك بأتمتة المهام اليدوية أو تخصيص تجارب المستخدم. - -## تصميم تطبيقات الذكاء الاصطناعي للثقة والشفافية - -بناء الثقة أمر حاسم عند تصميم تطبيقات الذكاء الاصطناعي. الثقة تضمن أن المستخدم واثق من أن التطبيق سينجز العمل، ويقدم النتائج باستمرار، وأن النتائج تلبي احتياجات المستخدم. من المخاطر في هذا المجال عدم الثقة والثقة المفرطة. عدم الثقة يحدث عندما يكون لدى المستخدم ثقة قليلة أو معدومة في نظام الذكاء الاصطناعي، مما يؤدي إلى رفض المستخدم لتطبيقك. أما الثقة المفرطة فتحدث عندما يبالغ المستخدم في تقدير قدرات نظام الذكاء الاصطناعي، مما يؤدي إلى اعتماد مفرط على النظام. على سبيل المثال، قد يؤدي نظام تصحيح آلي في حالة الثقة المفرطة إلى عدم مراجعة المعلم لبعض الأوراق للتأكد من جودة التصحيح، مما قد ينتج عنه درجات غير عادلة أو غير دقيقة للطلاب، أو فقدان فرص للتغذية الراجعة والتحسين. - -طريقتان لضمان وضع الثقة في مركز التصميم هما الشرح والتحكم. - -### الشرح - -عندما يساعد الذكاء الاصطناعي في اتخاذ قرارات مثل نقل المعرفة للأجيال القادمة، من الضروري أن يفهم المعلمون وأولياء الأمور كيف يتم اتخاذ قرارات الذكاء الاصطناعي. هذا هو الشرح - فهم كيفية اتخاذ تطبيقات الذكاء الاصطناعي للقرارات. يشمل التصميم للشرح إضافة تفاصيل وأمثلة عما يمكن أن يفعله تطبيق الذكاء الاصطناعي. على سبيل المثال، بدلاً من "ابدأ مع معلم الذكاء الاصطناعي"، يمكن للنظام استخدام: "لخص ملاحظاتك لمراجعة أسهل باستخدام الذكاء الاصطناعي." - -![صفحة هبوط تطبيق توضح الشرح في تطبيقات الذكاء الاصطناعي](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.ar.png) - -مثال آخر هو كيفية استخدام الذكاء الاصطناعي لبيانات المستخدم والبيانات الشخصية. على سبيل المثال، قد يكون لدى المستخدم الذي يحمل شخصية طالب قيود بناءً على شخصيته. قد لا يتمكن الذكاء الاصطناعي من كشف إجابات الأسئلة لكنه قد يساعد المستخدم على التفكير في كيفية حل المشكلة. - -![الذكاء الاصطناعي يرد على الأسئلة بناءً على الشخصية](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.ar.png) - -جزء آخر مهم من الشرح هو تبسيط التفسيرات. قد لا يكون الطلاب والمعلمون خبراء في الذكاء الاصطناعي، لذلك يجب أن تكون تفسيرات ما يمكن أو لا يمكن للتطبيق القيام به مبسطة وسهلة الفهم. - -![تفسيرات مبسطة لقدرات الذكاء الاصطناعي](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.ar.png) - -### التحكم - -يخلق الذكاء الاصطناعي التوليدي تعاونًا بين الذكاء الاصطناعي والمستخدم، حيث يمكن للمستخدم تعديل المطالبات للحصول على نتائج مختلفة. بالإضافة إلى ذلك، بمجرد إنشاء المخرجات، يجب أن يكون المستخدمون قادرين على تعديل النتائج مما يمنحهم شعورًا بالتحكم. على سبيل المثال، عند استخدام Bing، يمكنك تخصيص مطالبتك بناءً على التنسيق والنبرة والطول. بالإضافة إلى ذلك، يمكنك إضافة تغييرات إلى المخرجات وتعديلها كما هو موضح أدناه: - -![نتائج بحث Bing مع خيارات لتعديل المطالبة والمخرجات](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.ar.png) - -ميزة أخرى في Bing تتيح للمستخدم التحكم في التطبيق هي القدرة على الاشتراك أو إلغاء الاشتراك في البيانات التي يستخدمها الذكاء الاصطناعي. في تطبيق مدرسي، قد يرغب الطالب في استخدام ملاحظاته بالإضافة إلى موارد المعلمين كمادة للمراجعة. - -![نتائج بحث Bing مع خيارات لتعديل المطالبة والمخرجات](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.ar.png) - -> عند تصميم تطبيقات الذكاء الاصطناعي، النية الواضحة هي المفتاح لضمان عدم ثقة المستخدمين بشكل مفرط مما يخلق توقعات غير واقعية لقدراته. إحدى الطرق لتحقيق ذلك هي خلق نوع من الاحتكاك بين المطالبات والنتائج، لتذكير المستخدم بأن هذا الذكاء الاصطناعي وليس إنسانًا. - -## تصميم تطبيقات الذكاء الاصطناعي للتعاون والتغذية الراجعة - -كما ذُكر سابقًا، يخلق الذكاء الاصطناعي التوليدي تعاونًا بين المستخدم والذكاء الاصطناعي. معظم التفاعلات تكون بإدخال المستخدم لمطالبة والذكاء الاصطناعي يولد مخرجات. ماذا لو كانت المخرجات غير صحيحة؟ كيف يتعامل التطبيق مع الأخطاء إذا حدثت؟ هل يلوم الذكاء الاصطناعي المستخدم أم يأخذ وقتًا لشرح الخطأ؟ - -يجب بناء تطبيقات الذكاء الاصطناعي لتلقي وإعطاء التغذية الراجعة. هذا لا يساعد فقط في تحسين نظام الذكاء الاصطناعي، بل يبني أيضًا الثقة مع المستخدمين. يجب تضمين حلقة تغذية راجعة في التصميم، مثل إعطاء إبهام لأعلى أو لأسفل على المخرجات. - -طريقة أخرى للتعامل مع هذا هي التواصل الواضح لقدرات النظام وحدوده. عندما يرتكب المستخدم خطأ بطلب شيء يتجاوز قدرات الذكاء الاصطناعي، يجب أن يكون هناك طريقة للتعامل مع ذلك، كما هو موضح أدناه. - -![إعطاء تغذية راجعة والتعامل مع الأخطاء](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.ar.png) - -الأخطاء في النظام شائعة في التطبيقات حيث قد يحتاج المستخدم إلى مساعدة بمعلومات خارج نطاق الذكاء الاصطناعي أو قد يكون للتطبيق حد على عدد الأسئلة/المواد التي يمكن للمستخدم توليد ملخصات لها. على سبيل المثال، تطبيق ذكاء اصطناعي مدرب على بيانات في مواد محدودة مثل التاريخ والرياضيات قد لا يكون قادرًا على التعامل مع أسئلة حول الجغرافيا. للتخفيف من ذلك، يمكن للنظام أن يرد برسالة مثل: "عذرًا، تم تدريب منتجنا على البيانات في المواد التالية.....، لا أستطيع الرد على السؤال الذي طرحته." - -تطبيقات الذكاء الاصطناعي ليست مثالية، لذلك من المتوقع أن ترتكب أخطاء. عند تصميم تطبيقاتك، يجب أن تضمن وجود مساحة لتلقي التغذية الراجعة من المستخدمين والتعامل مع الأخطاء بطريقة بسيطة وسهلة الفهم. - -## المهمة - -اختر أي تطبيقات ذكاء اصطناعي قمت ببنائها حتى الآن، وفكر في تنفيذ الخطوات التالية في تطبيقك: - -- **المتعة:** فكر كيف يمكنك جعل تطبيقك أكثر متعة. هل تضيف تفسيرات في كل مكان؟ هل تشجع المستخدم على الاستكشاف؟ كيف تصيغ رسائل الخطأ؟ - -- **سهولة الاستخدام:** بناء تطبيق ويب. تأكد من أن تطبيقك يمكن التنقل فيه باستخدام الفأرة ولوحة المفاتيح. - -- **الثقة والشفافية:** لا تثق بالذكاء الاصطناعي ومخرجاته بشكل كامل، فكر كيف تضيف عنصرًا بشريًا للتحقق من المخرجات. كما فكر وطبق طرقًا أخرى لتحقيق الثقة والشفافية. - -- **التحكم:** امنح المستخدم التحكم في البيانات التي يقدمها للتطبيق. نفذ طريقة يمكن للمستخدم من خلالها الاشتراك أو إلغاء الاشتراك في جمع البيانات في تطبيق الذكاء الاصطناعي. - -## واصل تعلمك! - -بعد إكمال هذا الدرس، اطلع على [مجموعة تعلم الذكاء الاصطناعي التوليدي](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) لمواصلة تطوير معرفتك في الذكاء الاصطناعي التوليدي! - -توجه إلى الدرس 13، حيث سنناقش كيفية [تأمين تطبيقات الذكاء الاصطناعي](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**إخلاء المسؤولية**: -تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق به. للمعلومات الهامة، يُنصح بالاعتماد على الترجمة البشرية المهنية. نحن غير مسؤولين عن أي سوء فهم أو تفسير ناتج عن استخدام هذه الترجمة. \ No newline at end of file + + + diff --git a/translations/ar/README.md b/translations/ar/README.md index 289b5c66d..e286ccd51 100644 --- a/translations/ar/README.md +++ b/translations/ar/README.md @@ -1,137 +1,12 @@ - -![الذكاء الاصطناعي التوليدي للمبتدئين](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.ar.png) - -### 21 درسًا تعلمك كل ما تحتاجه لبدء بناء تطبيقات الذكاء الاصطناعي التوليدي - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 دعم متعدد اللغات - -#### مدعوم عبر GitHub Action (آلي ومحدث دائمًا) - -[الفرنسية](../fr/README.md) | [الإسبانية](../es/README.md) | [الألمانية](../de/README.md) | [الروسية](../ru/README.md) | [العربية](./README.md) | [الفارسية](../fa/README.md) | [الأردية](../ur/README.md) | [الصينية المبسطة](../zh/README.md) | [الصينية التقليدية، ماكاو](../mo/README.md) | [الصينية التقليدية، هونغ كونغ](../hk/README.md) | [الصينية التقليدية، تايوان](../tw/README.md) | [اليابانية](../ja/README.md) | [الكورية](../ko/README.md) | [الهندية](../hi/README.md) | [البنغالية](../bn/README.md) | [الماراثية](../mr/README.md) | [النيبالية](../ne/README.md) | [البنجابية (غورموخي)](../pa/README.md) | [البرتغالية (البرتغال)](../pt/README.md) | [البرتغالية (البرازيل)](../br/README.md) | [الإيطالية](../it/README.md) | [البولندية](../pl/README.md) | [التركية](../tr/README.md) | [اليونانية](../el/README.md) | [التايلاندية](../th/README.md) | [السويدية](../sv/README.md) | [الدنماركية](../da/README.md) | [النرويجية](../no/README.md) | [الفنلندية](../fi/README.md) | [الهولندية](../nl/README.md) | [العبرية](../he/README.md) | [الفيتنامية](../vi/README.md) | [الإندونيسية](../id/README.md) | [الماليزية](../ms/README.md) | [التاغالوغ (الفلبينية)](../tl/README.md) | [السواحلية](../sw/README.md) | [الهنغارية](../hu/README.md) | [التشيكية](../cs/README.md) | [السلوفاكية](../sk/README.md) | [الرومانية](../ro/README.md) | [البلغارية](../bg/README.md) | [الصربية (السيريلية)](../sr/README.md) | [الكرواتية](../hr/README.md) | [السلوفينية](../sl/README.md) | [الأوكرانية](../uk/README.md) | [البورمية (ميانمار)](../my/README.md) - -# الذكاء الاصطناعي التوليدي للمبتدئين (الإصدار 3) - دورة تعليمية - -تعلم أساسيات بناء تطبيقات الذكاء الاصطناعي التوليدي من خلال دورتنا الشاملة التي تتضمن 21 درسًا مقدمة من Microsoft Cloud Advocates. - -## 🌱 البداية - -تتضمن هذه الدورة 21 درسًا. كل درس يغطي موضوعًا خاصًا به، لذا يمكنك البدء من أي مكان تريده! - -الدروس مصنفة إلى دروس "تعلم" تشرح مفهومًا في الذكاء الاصطناعي التوليدي، أو دروس "بناء" تشرح المفهوم مع أمثلة برمجية بلغة **Python** و **TypeScript** حيثما أمكن. - -لمطوري .NET، اطلع على [الذكاء الاصطناعي التوليدي للمبتدئين (إصدار .NET)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -كل درس يتضمن أيضًا قسم "استمر في التعلم" مع أدوات تعلم إضافية. - -## ما تحتاجه -### لتشغيل أكواد هذه الدورة، يمكنك استخدام أي من: - - [خدمة Azure OpenAI](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **الدروس:** "aoai-assignment" - - [كتالوج نماذج GitHub Marketplace](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **الدروس:** "githubmodels" - - [واجهة برمجة تطبيقات OpenAI](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **الدروس:** "oai-assignment" - -- معرفة أساسية بـ Python أو TypeScript مفيدة - \*للمبتدئين تمامًا، اطلع على هذه الدورات [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) و [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) -- حساب GitHub لـ [نسخ هذا المستودع بالكامل](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) إلى حسابك الخاص على GitHub - -أنشأنا درس **[إعداد الدورة](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** لمساعدتك في تجهيز بيئة التطوير الخاصة بك. - -لا تنسَ [وضع نجمة (🌟) على هذا المستودع](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) لتسهيل العثور عليه لاحقًا. - -## 🧠 هل أنت مستعد للنشر؟ - -إذا كنت تبحث عن أمثلة برمجية أكثر تقدمًا، اطلع على [مجموعتنا من أمثلة كود الذكاء الاصطناعي التوليدي](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) بكل من **Python** و **TypeScript**. - -## 🗣️ تواصل مع متعلمين آخرين واحصل على الدعم - -انضم إلى [خادم Discord الرسمي لـ Azure AI Foundry](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) لتلتقي وتتواصل مع متعلمين آخرين يأخذون هذه الدورة وللحصول على الدعم. - -اطرح أسئلة أو شارك ملاحظاتك حول المنتج في [منتدى مطوري Azure AI Foundry](https://aka.ms/azureaifoundry/forum) على GitHub. - -## 🚀 تبني شركة ناشئة؟ - -سجل في [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) لتحصل على **رصيد مجاني من OpenAI** وحتى **150 ألف دولار كرصيد على Azure للوصول إلى نماذج OpenAI عبر خدمات Azure OpenAI**. - -## 🙏 هل تريد المساعدة؟ - -هل لديك اقتراحات أو وجدت أخطاء إملائية أو برمجية؟ [افتح مشكلة](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) أو [أنشئ طلب سحب](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 كل درس يتضمن: - -- مقدمة فيديو قصيرة عن الموضوع -- درس مكتوب موجود في README -- أمثلة برمجية بـ Python و TypeScript تدعم Azure OpenAI و OpenAI API -- روابط لمصادر إضافية لمواصلة التعلم - -## 🗃️ الدروس - -| # | **رابط الدرس** | **الوصف** | **الفيديو** | **تعلم إضافي** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [إعداد الدورة](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **تعلم:** كيفية إعداد بيئة التطوير الخاصة بك | الفيديو قادم قريبًا | [تعرف أكثر](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [مقدمة في الذكاء الاصطناعي التوليدي ونماذج اللغة الكبيرة](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **تعلم:** فهم ماهية الذكاء الاصطناعي التوليدي وكيف تعمل نماذج اللغة الكبيرة (LLMs) | [فيديو](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [تعرف أكثر](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [استكشاف ومقارنة نماذج اللغة الكبيرة المختلفة](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **تعلم:** كيفية اختيار النموذج المناسب لحالة الاستخدام الخاصة بك | [فيديو](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [تعرف أكثر](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [استخدام الذكاء الاصطناعي التوليدي بمسؤولية](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **تعلم:** كيفية بناء تطبيقات الذكاء الاصطناعي التوليدي بمسؤولية | [فيديو](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [تعرف أكثر](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [فهم أساسيات هندسة المطالبات](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **تعلم:** أفضل الممارسات العملية لهندسة المطالبات | [فيديو](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [تعرف أكثر](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [إنشاء مطالبات متقدمة](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **تعلم:** كيفية تطبيق تقنيات هندسة المطالبات التي تحسن نتائج مطالباتك | [فيديو](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [تعرف أكثر](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [بناء تطبيقات توليد النصوص](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **بناء:** تطبيق لتوليد النصوص باستخدام Azure OpenAI / OpenAI API | [فيديو](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [تعرف على المزيد](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [بناء تطبيقات الدردشة](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **بناء:** تقنيات لبناء ودمج تطبيقات الدردشة بكفاءة. | [فيديو](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [تعرف على المزيد](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [بناء تطبيقات البحث وقواعد بيانات المتجهات](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **بناء:** تطبيق بحث يستخدم Embeddings للبحث عن البيانات. | [فيديو](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [تعرف على المزيد](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [بناء تطبيقات توليد الصور](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **بناء:** تطبيق لتوليد الصور | [فيديو](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [تعرف على المزيد](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [بناء تطبيقات الذكاء الاصطناعي منخفضة الكود](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **بناء:** تطبيق ذكاء اصطناعي توليدي باستخدام أدوات منخفضة الكود | [فيديو](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [تعرف على المزيد](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [دمج التطبيقات الخارجية مع Function Calling](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **بناء:** ما هو function calling وحالات استخدامه في التطبيقات | [فيديو](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [تعرف على المزيد](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [تصميم تجربة المستخدم لتطبيقات الذكاء الاصطناعي](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **تعلم:** كيفية تطبيق مبادئ تصميم تجربة المستخدم عند تطوير تطبيقات الذكاء الاصطناعي التوليدي | [فيديو](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [تعرف على المزيد](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [تأمين تطبيقات الذكاء الاصطناعي التوليدي](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **تعلم:** التهديدات والمخاطر التي تواجه أنظمة الذكاء الاصطناعي وطرق تأمينها. | [فيديو](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [تعرف على المزيد](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [دورة حياة تطبيقات الذكاء الاصطناعي التوليدي](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **تعلم:** الأدوات والمؤشرات لإدارة دورة حياة LLM وعمليات LLMOps | [فيديو](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [تعرف على المزيد](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [التوليد المعزز بالاسترجاع (RAG) وقواعد بيانات المتجهات](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **بناء:** تطبيق يستخدم إطار عمل RAG لاسترجاع embeddings من قواعد بيانات المتجهات | [فيديو](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [تعرف على المزيد](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [النماذج مفتوحة المصدر وHugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **بناء:** تطبيق يستخدم نماذج مفتوحة المصدر المتوفرة على Hugging Face | [فيديو](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [تعرف على المزيد](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [وكلاء الذكاء الاصطناعي](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **بناء:** تطبيق يستخدم إطار عمل وكيل الذكاء الاصطناعي | [فيديو](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [تعرف على المزيد](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [ضبط النماذج اللغوية الكبيرة (LLMs)](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **تعلم:** ما هو ضبط النماذج اللغوية الكبيرة، ولماذا وكيف يتم ذلك | [فيديو](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [تعرف على المزيد](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [البناء باستخدام النماذج اللغوية الصغيرة (SLMs)](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **تعلم:** فوائد البناء باستخدام النماذج اللغوية الصغيرة | سيتم إصدار الفيديو قريبًا | [تعرف على المزيد](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [البناء باستخدام نماذج Mistral](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **تعلم:** ميزات واختلافات نماذج عائلة Mistral | سيتم إصدار الفيديو قريبًا | [تعرف على المزيد](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [البناء باستخدام نماذج Meta](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **تعلم:** ميزات واختلافات نماذج عائلة Meta | سيتم إصدار الفيديو قريبًا | [تعرف على المزيد](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 شكر خاص - -شكر خاص لـ [**John Aziz**](https://www.linkedin.com/in/john0isaac/) على إنشاء جميع GitHub Actions وسير العمل - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) على مساهماته الرئيسية في كل درس لتحسين تجربة المتعلم والكود. - -## 🎒 دورات أخرى - -فريقنا يقدم دورات أخرى! اطلع على: - -- [**جديد** بروتوكول سياق النموذج للمبتدئين](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [وكلاء الذكاء الاصطناعي للمبتدئين](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [الذكاء الاصطناعي التوليدي للمبتدئين باستخدام .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [الذكاء الاصطناعي التوليدي للمبتدئين باستخدام JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [تعلم الآلة للمبتدئين](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [علوم البيانات للمبتدئين](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [الذكاء الاصطناعي للمبتدئين](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [الأمن السيبراني للمبتدئين](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [تطوير الويب للمبتدئين](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [إنترنت الأشياء للمبتدئين](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [تطوير XR للمبتدئين](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [إتقان GitHub Copilot للبرمجة التشاركية بالذكاء الاصطناعي](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [إتقان GitHub Copilot لمطوري C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [اختر مغامرتك مع Copilot](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**إخلاء مسؤولية**: -تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق به. للمعلومات الهامة، يُنصح بالاعتماد على الترجمة البشرية المهنية. نحن غير مسؤولين عن أي سوء فهم أو تفسير ناتج عن استخدام هذه الترجمة. \ No newline at end of file + + + + diff --git a/translations/bg/00-course-setup/01-setup-cloud.md b/translations/bg/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..041fb022c --- /dev/null +++ b/translations/bg/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/bg/00-course-setup/02-setup-local.md b/translations/bg/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..9fb078f5b --- /dev/null +++ b/translations/bg/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/bg/00-course-setup/03-providers.md b/translations/bg/00-course-setup/03-providers.md new file mode 100644 index 000000000..68e72036a --- /dev/null +++ b/translations/bg/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/bg/00-course-setup/README.md b/translations/bg/00-course-setup/README.md index 762a6113b..bbab336bd 100644 --- a/translations/bg/00-course-setup/README.md +++ b/translations/bg/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# Започване с този курс - -Много се радваме, че започвате този курс и ще видите какво ще ви вдъхнови да създадете с Generative AI! - -За да гарантираме вашия успех, тази страница описва стъпките за настройка, техническите изисквания и къде да потърсите помощ при нужда. - -## Стъпки за настройка - -За да започнете курса, трябва да изпълните следните стъпки. - -### 1. Форкнете това хранилище - -[Форкнете цялото това хранилище](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) в своя GitHub акаунт, за да можете да променяте кода и да изпълнявате предизвикателствата. Можете също да [добавите това хранилище в звездички (🌟)](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst), за да го намирате по-лесно заедно с други свързани хранилища. - -### 2. Създайте codespace - -За да избегнете проблеми с зависимости при изпълнение на кода, препоръчваме да използвате този курс в [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst). - -Това може да се направи като изберете опцията `Code` във вашата форкната версия на хранилището и след това изберете опцията **Codespaces**. - -![Диалогов прозорец с бутони за създаване на codespace](../../../00-course-setup/images/who-will-pay.webp) - -### 3. Съхраняване на вашите API ключове - -Важно е да пазите вашите API ключове сигурни, когато създавате каквото и да е приложение. Препоръчваме да не съхранявате API ключове директно в кода си. Ако ги качите в публично хранилище, това може да доведе до проблеми със сигурността и дори нежелани разходи, ако бъдат използвани от злонамерени лица. -Ето стъпка по стъпка как да създадете `.env` файл за Python и да добавите `GITHUB_TOKEN`: - -1. **Отидете в директорията на проекта си**: Отворете терминала или командния ред и навигирайте до кореновата директория на проекта, където искате да създадете `.env` файла. - - ```bash - cd path/to/your/project - ``` - -2. **Създайте `.env` файла**: Използвайте предпочитания текстов редактор, за да създадете нов файл с име `.env`. Ако използвате командния ред, можете да използвате `touch` (за Unix-базирани системи) или `echo` (за Windows): - - Unix-базирани системи: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **Редактирайте `.env` файла**: Отворете `.env` файла в текстов редактор (например VS Code, Notepad++ или друг). Добавете следния ред, като замените `your_github_token_here` с вашия реален GitHub токен: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Запазете файла**: Запазете промените и затворете редактора. - -5. **Инсталирайте `python-dotenv`**: Ако още не сте го направили, трябва да инсталирате пакета `python-dotenv`, който зарежда променливите на средата от `.env` файла във вашето Python приложение. Можете да го инсталирате с `pip`: - - ```bash - pip install python-dotenv - ``` - -6. **Заредете променливите на средата в Python скрипта си**: В Python скрипта използвайте `python-dotenv`, за да заредите променливите от `.env` файла: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -Това е! Успешно създадохте `.env` файл, добавихте GitHub токена си и го заредихте в Python приложението. - -## Как да стартирате локално на вашия компютър - -За да стартирате кода локално на компютъра си, трябва да имате инсталирана някаква версия на [Python](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -След това трябва да клонирате хранилището: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -След като имате всичко изтеглено, можете да започнете! - -## Допълнителни стъпки - -### Инсталиране на Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) е лек инсталатор за инсталиране на [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python и няколко пакета. -Conda е пакетен мениджър, който улеснява създаването и превключването между различни Python [**виртуални среди**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) и пакети. Той е полезен и за инсталиране на пакети, които не са налични чрез `pip`. - -Можете да следвате [ръководството за инсталиране на MiniConda](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst), за да го настроите. - -След като инсталирате Miniconda, трябва да клонирате [хранилището](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (ако още не сте го направили). - -След това трябва да създадете виртуална среда. За да го направите с Conda, създайте нов файл за средата (_environment.yml_). Ако използвате Codespaces, създайте този файл в директорията `.devcontainer`, т.е. `.devcontainer/environment.yml`. - -Попълнете файла с конфигурацията по-долу: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Ако срещнете грешки при използване на conda, можете ръчно да инсталирате Microsoft AI Libraries с командата по-долу в терминала. - -``` -conda install -c microsoft azure-ai-ml -``` - -Файлът за средата указва зависимостите, от които се нуждаем. `` е името, което искате да дадете на Conda средата, а `` е версията на Python, която искате да използвате, например `3` за последната основна версия на Python. - -След това създайте Conda средата, като изпълните командите по-долу в командния ред/терминала: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -Ако имате проблеми, вижте [ръководството за Conda среди](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst). - -### Използване на Visual Studio Code с разширението за Python - -Препоръчваме да използвате редактора [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) с инсталирано [разширение за Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) за този курс. Това е препоръка, а не задължително изискване. - -> **Забележка**: Когато отворите хранилището на курса във VS Code, имате възможност да настроите проекта в контейнер. Това е възможно благодарение на специалната директория [`.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) в хранилището. Повече за това по-нататък. - -> **Забележка**: След като клонирате и отворите директорията във VS Code, той автоматично ще ви предложи да инсталирате разширение за Python. - -> **Забележка**: Ако VS Code ви предложи да отворите хранилището в контейнер, откажете, ако искате да използвате локално инсталираната версия на Python. - -### Използване на Jupyter в браузъра - -Можете да работите по проекта и чрез [Jupyter среда](https://jupyter.org?WT.mc_id=academic-105485-koreyst) директно в браузъра си. Класическият Jupyter и [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) предлагат удобна среда за разработка с функции като автодовършване, оцветяване на кода и др. - -За да стартирате Jupyter локално, отворете терминала/командния ред, навигирайте до директорията на курса и изпълнете: - -```bash -jupyter notebook -``` - -или - -```bash -jupyterhub -``` - -Това ще стартира Jupyter и URL адресът за достъп ще се покаже в прозореца на командния ред. - -След като отворите URL адреса, ще видите структурата на курса и ще можете да навигирате до всеки `*.ipynb` файл. Например, `08-building-search-applications/python/oai-solution.ipynb`. - -### Стартиране в контейнер - -Алтернатива на настройването на всичко на вашия компютър или Codespace е използването на [контейнер](../../../00-course-setup/). Специалната папка `.devcontainer` в хранилището позволява на VS Code да настрои проекта в контейнер. Извън Codespaces това изисква инсталиране на Docker и, честно казано, малко повече работа, затова препоръчваме това само на хора с опит в работата с контейнери. - -Един от най-добрите начини да защитите API ключовете си при използване на GitHub Codespaces е чрез използване на Codespace Secrets. Моля, следвайте ръководството за [управление на тайни в Codespaces](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst), за да научите повече. - -## Уроци и технически изисквания - -Курсът съдържа 6 концептуални урока и 6 урока с кодиране. - -За уроците с кодиране използваме Azure OpenAI Service. Ще ви трябва достъп до Azure OpenAI service и API ключ, за да изпълните кода. Можете да кандидатствате за достъп, като [попълните тази заявка](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -Докато чакате заявката ви да бъде обработена, всеки урок с кодиране включва и файл `README.md`, където можете да разгледате кода и резултатите. - -## Използване на Azure OpenAI Service за първи път - -Ако използвате Azure OpenAI service за първи път, моля, следвайте това ръководство как да [създадете и разположите ресурс в Azure OpenAI Service.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## Използване на OpenAI API за първи път - -Ако използвате OpenAI API за първи път, моля, следвайте ръководството как да [създадете и използвате интерфейса.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## Срещнете други обучаващи се - -Създадохме канали в официалния ни [AI Community Discord сървър](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) за срещи с други обучаващи се. Това е чудесен начин да се свържете с други предприемачи, разработчици, студенти и всеки, който иска да се развива в Generative AI. - -[![Присъединете се към Discord канала](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -Екипът на проекта също ще бъде в този Discord сървър, за да помага на обучаващите се. - -## Принос - -Този курс е инициатива с отворен код. Ако забележите възможности за подобрение или проблеми, моля, създайте [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) или докладвайте [GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -Екипът на проекта следи всички приноси. Приносът към проекти с отворен код е отличен начин да развиете кариерата си в Generative AI. - -Повечето приноси изискват да се съгласите с Contributor License Agreement (CLA), който декларира, че имате правото и действително предоставяте правата за използване на вашия принос. За подробности посетете [CLA, Contributor License Agreement уебсайт](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Важно: при превод на текст в това хранилище, моля, не използвайте машинен превод. Ще проверяваме преводите чрез общността, затова моля, доброволствайте само за преводи на езици, на които сте компетентни. - -Когато подадете pull request, CLA-бот автоматично ще определи дали трябва да предоставите CLA и ще маркира PR съответно (например с етикет или коментар). Просто следвайте инструкциите на бота. Това се прави само веднъж за всички хранилища, използващи нашия CLA. - -Този проект е приел [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst). За повече информация прочетете Често задаваните въпроси за Кодекса на поведение или се свържете с [Email opencode](opencode@microsoft.com) при допълнителни въпроси или коментари. - -## Нека започнем - -След като изпълнихте необходимите стъпки за този курс, нека започнем с [въведение в Generative AI и LLMs](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**Отказ от отговорност**: -Този документ е преведен с помощта на AI преводаческа услуга [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи могат да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да е недоразумения или неправилни тълкувания, произтичащи от използването на този превод. \ No newline at end of file + + + + diff --git a/translations/bg/00-course-setup/SETUP.md b/translations/bg/00-course-setup/SETUP.md deleted file mode 100644 index c0c7ebe16..000000000 --- a/translations/bg/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# Настройване на средата за разработка - -Настроихме това хранилище и курса с [development container](https://containers.dev?WT.mc_id=academic-105485-koreyst), който има универсална среда за изпълнение, поддържаща Python3, .NET, Node.js и Java разработка. Свързаната конфигурация е дефинирана във файла `devcontainer.json`, намиращ се в папката `.devcontainer/` в корена на това хранилище. - -За да активирате dev контейнера, стартирайте го в [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (за облачна среда за изпълнение) или в [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (за локална среда за изпълнение на устройството). Прочетете [тази документация](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) за повече подробности как работят dev контейнерите във VS Code. - -> [!TIP] -> Препоръчваме използването на GitHub Codespaces за бърз старт с минимални усилия. Той предлага щедър [безплатен лимит](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) за лични акаунти. Конфигурирайте [таймаути](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst), за да спирате или изтривате неактивни codespaces и така да използвате максимално квотата си. - -## 1. Изпълнение на задачи - -Всяка лекция ще има _по избор_ задачи, които могат да бъдат предоставени на един или повече програмни езици, включително: Python, .NET/C#, Java и JavaScript/TypeScript. Този раздел дава общи насоки за изпълнението на тези задачи. - -### 1.1 Python задачи - -Python задачите се предоставят като приложения (`.py` файлове) или Jupyter notebooks (`.ipynb` файлове). -- За да стартирате notebook, отворете го във Visual Studio Code, след това кликнете върху _Select Kernel_ (в горния десен ъгъл) и изберете показаната по подразбиране опция Python 3. След това можете да изберете _Run All_, за да изпълните целия notebook. -- За да стартирате Python приложения от командния ред, следвайте инструкциите, специфични за задачата, за да изберете правилните файлове и да подадете необходимите аргументи. - -## 2. Конфигуриране на доставчици - -Задачите **могат** да бъдат настроени да работят с един или повече Large Language Model (LLM) деплойменти чрез поддържан доставчик на услуги като OpenAI, Azure или Hugging Face. Те предоставят _хостван крайна точка_ (API), до която можем да имаме достъп програмно с правилните идентификационни данни (API ключ или токен). В този курс разглеждаме следните доставчици: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) с разнообразни модели, включително основната серия GPT. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) за OpenAI модели с фокус върху корпоративна готовност - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) за отворени модели и inference сървър - -**Ще трябва да използвате собствени акаунти за тези упражнения**. Задачите са по избор, така че можете да настроите един, всички или нито един от доставчиците според интересите си. Някои насоки за регистрация: - -| Регистрация | Цена | API ключ | Playground | Коментари | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst) | [Ценоразпис](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst) | [Проектно-базиран](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [Без код, уеб](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Налични множество модели | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst) | [Ценоразпис](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst) | [SDK Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Studio Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Трябва да кандидатствате предварително за достъп](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) | -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Ценоразпис](https://huggingface.co/pricing) | [Access Tokens](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst) | [Hugging Chat има ограничен набор от модели](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Следвайте указанията по-долу, за да _конфигурирате_ това хранилище за работа с различни доставчици. Задачите, които изискват конкретен доставчик, ще съдържат един от тези тагове в името на файла: - - `aoai` - изисква Azure OpenAI крайна точка и ключ - - `oai` - изисква OpenAI крайна точка и ключ - - `hf` - изисква Hugging Face токен - -Можете да конфигурирате един, нито един или всички доставчици. Свързаните задачи просто ще дадат грешка при липса на идентификационни данни. - -### 2.1. Създаване на `.env` файл - -Предполагаме, че вече сте прочели горните указания, регистрирали сте се при съответния доставчик и сте получили необходимите идентификационни данни (API_KEY или токен). В случай на Azure OpenAI, предполагаме, че имате валидно разгръщане на Azure OpenAI Service (крайна точка) с поне един GPT модел, разположен за чат. - -Следващата стъпка е да конфигурирате **локалните променливи на средата** по следния начин: - -1. Потърсете в кореновата папка файл `.env.copy`, който трябва да съдържа нещо подобно на: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Копирайте този файл като `.env` с командата по-долу. Този файл е _gitignore-нат_, за да пази тайните. - - ```bash - cp .env.copy .env - ``` - -3. Попълнете стойностите (заменете плейсхолдърите вдясно от `=`) както е описано в следващия раздел. - -3. (Опция) Ако използвате GitHub Codespaces, имате възможност да запазите променливите на средата като _Codespaces secrets_, свързани с това хранилище. В този случай няма да е нужно да настройвате локален .env файл. **Обаче, имайте предвид, че тази опция работи само ако използвате GitHub Codespaces.** Все пак ще трябва да настроите .env файла, ако използвате Docker Desktop. - -### 2.2. Попълване на `.env` файла - -Нека бързо разгледаме имената на променливите, за да разберем какво представляват: - -| Променлива | Описание | -| :--- | :--- | -| HUGGING_FACE_API_KEY | Това е потребителският токен за достъп, който сте настроили в профила си | -| OPENAI_API_KEY | Това е ключът за упълномощаване за използване на услугата за не-Azure OpenAI крайни точки | -| AZURE_OPENAI_API_KEY | Това е ключът за упълномощаване за използване на тази услуга | -| AZURE_OPENAI_ENDPOINT | Това е разположената крайна точка за Azure OpenAI ресурс | -| AZURE_OPENAI_DEPLOYMENT | Това е крайна точка за разгръщане на _текстогенериращ_ модел | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | Това е крайна точка за разгръщане на _текстови embeddings_ модел | -| | | - -Забележка: Последните две променливи за Azure OpenAI отразяват по подразбиране модел за чат (текстогенериране) и за векторно търсене (embeddings). Инструкциите за настройка ще бъдат описани в съответните задачи. - -### 2.3 Конфигуриране на Azure: От портала - -Стойностите за крайна точка и ключ за Azure OpenAI могат да бъдат намерени в [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst), така че нека започнем оттам. - -1. Отидете в [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -1. Кликнете върху опцията **Keys and Endpoint** в страничното меню (вляво). -1. Кликнете върху **Show Keys** - трябва да видите следното: KEY 1, KEY 2 и Endpoint. -1. Използвайте стойността на KEY 1 за AZURE_OPENAI_API_KEY -1. Използвайте стойността на Endpoint за AZURE_OPENAI_ENDPOINT - -След това ни трябват крайните точки за конкретните модели, които сме разположили. - -1. Кликнете върху опцията **Model deployments** в страничното меню (вляво) за Azure OpenAI ресурса. -1. В страницата, която се отваря, кликнете върху **Manage Deployments** - -Това ще ви отведе до уебсайта на Azure OpenAI Studio, където ще намерим останалите стойности, както е описано по-долу. - -### 2.4 Конфигуриране на Azure: От Studio - -1. Навигирайте до [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **от вашия ресурс**, както е описано по-горе. -1. Кликнете върху таба **Deployments** (странично меню, вляво), за да видите текущо разположените модели. -1. Ако желаният модел не е разположен, използвайте **Create new deployment**, за да го разположите. -1. Ще ви трябва _текстогенериращ_ модел - препоръчваме: **gpt-35-turbo** -1. Ще ви трябва _текстов embedding_ модел - препоръчваме **text-embedding-ada-002** - -Сега актуализирайте променливите на средата, за да отразяват името на _Deployment_, което използвате. Обикновено това е същото като името на модела, освен ако не сте го променили изрично. Например, може да имате: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**Не забравяйте да запазите .env файла след като приключите**. Можете да затворите файла и да се върнете към инструкциите за стартиране на notebook-а. - -### 2.5 Конфигуриране на OpenAI: От профила - -Вашият OpenAI API ключ може да бъде намерен във вашия [OpenAI акаунт](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). Ако нямате такъв, можете да се регистрирате и да създадете API ключ. След като имате ключа, използвайте го, за да попълните променливата `OPENAI_API_KEY` в `.env` файла. - -### 2.6 Конфигуриране на Hugging Face: От профила - -Вашият Hugging Face токен може да бъде намерен в профила ви под [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). Не публикувайте и не споделяйте тези токени публично. Вместо това, създайте нов токен за използване в този проект и го копирайте в `.env` файла под променливата `HUGGING_FACE_API_KEY`. _Забележка:_ Технически това не е API ключ, но се използва за удостоверяване, затова запазваме това наименование за последователност. - -**Отказ от отговорност**: -Този документ е преведен с помощта на AI преводаческа услуга [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи могат да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да е недоразумения или неправилни тълкувания, произтичащи от използването на този превод. \ No newline at end of file diff --git a/translations/bg/04-prompt-engineering-fundamentals/README.md b/translations/bg/04-prompt-engineering-fundamentals/README.md index 81a040825..04ff8a438 100644 --- a/translations/bg/04-prompt-engineering-fundamentals/README.md +++ b/translations/bg/04-prompt-engineering-fundamentals/README.md @@ -1,444 +1,15 @@ - -# Основи на Prompt Engineering - -[![Prompt Engineering Fundamentals](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.bg.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Въведение -Този модул обхваща основни концепции и техники за създаване на ефективни prompt-и в генеративни AI модели. Начинът, по който формулирате prompt към LLM, също има значение. Внимателно създаден prompt може да доведе до по-качествен отговор. Но какво точно означават термините _prompt_ и _prompt engineering_? И как да подобрим prompt _входа_, който изпращаме към LLM? Това са въпросите, на които ще се опитаме да отговорим в тази и следващата глава. - -_Генеративният AI_ е способен да създава ново съдържание (например текст, изображения, аудио, код и др.) в отговор на потребителски заявки. Това се постига чрез _големи езикови модели_ като серията GPT на OpenAI ("Generative Pre-trained Transformer"), които са обучени да работят с естествен език и код. - -Потребителите вече могат да взаимодействат с тези модели чрез познати парадигми като чат, без да имат технически познания или обучение. Моделите са _prompt-базирани_ – потребителите изпращат текстов вход (prompt) и получават AI отговор (completion). След това могат да "чатят с AI" итеративно, в многократни разговори, като усъвършенстват prompt-а, докато отговорът отговаря на очакванията им. - -"Prompt-ите" вече са основният _програмен интерфейс_ за генеративни AI приложения, като казват на моделите какво да правят и влияят върху качеството на върнатите отговори. "Prompt Engineering" е бързо развиваща се област, която се фокусира върху _проектирането и оптимизацията_ на prompt-и, за да се постигнат последователни и качествени отговори в голям мащаб. - -## Цели на обучението - -В този урок ще научим какво е Prompt Engineering, защо е важно и как да създаваме по-ефективни prompt-и за даден модел и цел на приложението. Ще разберем основните концепции и добри практики за prompt engineering – и ще се запознаем с интерактивна среда в Jupyter Notebooks, където можем да видим тези концепции приложени на реални примери. - -Към края на урока ще можем да: - -1. Обясним какво е prompt engineering и защо е важно. -2. Описваме компонентите на един prompt и как се използват. -3. Научим добри практики и техники за prompt engineering. -4. Приложим научените техники на реални примери, използвайки OpenAI endpoint. - -## Ключови термини - -Prompt Engineering: Практиката на проектиране и усъвършенстване на входни данни, които насочват AI моделите към генериране на желаните изходи. -Tokenization: Процесът на преобразуване на текст в по-малки единици, наречени токени, които моделът може да разбира и обработва. -Instruction-Tuned LLMs: Големи езикови модели (LLMs), които са допълнително обучени с конкретни инструкции, за да подобрят точността и релевантността на отговорите си. - -## Среда за обучение - -Prompt engineering в момента е по-скоро изкуство, отколкото наука. Най-добрият начин да подобрим интуицията си е да _практикуваме повече_ и да възприемем подход на проба-грешка, който комбинира експертиза в приложната област с препоръчани техники и оптимизации, специфични за модела. - -Jupyter Notebook, който придружава този урок, предоставя _sandbox_ среда, където можете да изпробвате наученото – докато учите или като част от кодовото предизвикателство в края. За да изпълните упражненията, ще ви трябват: - -1. **API ключ за Azure OpenAI** – крайна точка на услугата за разположен LLM. -2. **Python Runtime** – среда, в която може да се изпълнява Notebook-а. -3. **Локални променливи на средата** – _завършете стъпките от [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst), за да сте готови_. - -Notebook-ът съдържа _начални_ упражнения, но ви се препоръчва да добавяте свои собствени _Markdown_ (описания) и _Code_ (заявки към prompt) секции, за да изпробвате повече примери или идеи и да развиете интуицията си за проектиране на prompt-и. - -## Илюстрирано ръководство - -Искате ли да получите обща представа за темите, които този урок обхваща, преди да започнете? Вижте това илюстрирано ръководство, което ви дава усещане за основните теми и ключовите изводи, върху които да се замислите във всяка от тях. Пътната карта на урока ви води от разбирането на основните концепции и предизвикателства до справянето с тях чрез съответните техники и добри практики в prompt engineering. Обърнете внимание, че разделът "Разширени техники" в това ръководство се отнася до съдържание, разгледано в _следващата_ глава на този курс. - -![Илюстрирано ръководство за Prompt Engineering](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.bg.png) - -## Нашият стартъп - -Сега нека поговорим как _този урок_ се свързва с мисията на нашия стартъп да [донесем AI иновации в образованието](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). Искаме да изградим AI-базирани приложения за _персонализирано обучение_ – затова нека помислим как различните потребители на нашето приложение биха "проектирали" prompt-и: - -- **Администратори** могат да поискат от AI да _анализира учебните планове, за да идентифицира пропуски в покритието_. AI може да обобщи резултатите или да ги визуализира с код. -- **Учители** могат да поискат от AI да _генерира учебен план за целева аудитория и тема_. AI може да създаде персонализиран план в зададен формат. -- **Ученици** могат да поискат от AI да _ги обучава по труден предмет_. AI може да ги води с уроци, подсказки и примери, съобразени с тяхното ниво. - -Това е само върхът на айсберга. Разгледайте [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) – отворена библиотека с prompt-и, курирана от експерти в образованието – за да получите по-широка представа за възможностите! _Опитайте да изпълните някои от тези prompt-и в sandbox средата или в OpenAI Playground, за да видите какво се случва!_ - - - -## Какво е Prompt Engineering? - -Започнахме този урок с дефиниция на **Prompt Engineering** като процес на _проектиране и оптимизиране_ на текстови входове (prompt-и), за да се постигнат последователни и качествени отговори (completion-и) за дадена цел на приложението и модел. Можем да го разгледаме като двуфазен процес: - -- _проектиране_ на първоначалния prompt за даден модел и цел -- _усъвършенстване_ на prompt-а итеративно, за да се подобри качеството на отговора - -Това задължително е процес на проба и грешка, който изисква интуиция и усилия от страна на потребителя, за да се постигнат оптимални резултати. Защо е важно? За да отговорим, първо трябва да разберем три концепции: - -- _Tokenization_ = как моделът "вижда" prompt-а -- _Base LLMs_ = как основният модел "обработва" prompt-а -- _Instruction-Tuned LLMs_ = как моделът вече може да разбира "задачи" - -### Tokenization - -LLM вижда prompt-ите като _последователност от токени_, като различните модели (или версии на модел) могат да токенизират един и същ prompt по различен начин. Тъй като LLM са обучени върху токени (а не върху суров текст), начинът, по който prompt-ите се токенизират, има пряко влияние върху качеството на генерирания отговор. - -За да добиете представа как работи токенизацията, опитайте инструменти като [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst), показан по-долу. Копирайте своя prompt и вижте как той се преобразува в токени, като обърнете внимание как се третират интервалите и пунктуацията. Обърнете внимание, че този пример показва по-стар LLM (GPT-3) – затова при по-нов модел резултатът може да е различен. - -![Tokenization](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.bg.png) - -### Концепция: Основни модели - -След като prompt-ът е токенизиран, основната функция на ["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (или основния модел) е да предскаже следващия токен в тази последователност. Тъй като LLM са обучени върху огромни текстови набори, те имат добра представа за статистическите връзки между токените и могат да направят тази прогноза с известна увереност. Обърнете внимание, че те не разбират _значението_ на думите в prompt-а или токена; те просто виждат модел, който могат да "допълнят" с следващата си прогноза. Могат да продължат да предсказват последователността, докато не бъдат прекъснати от потребителя или някакво предварително зададено условие. - -Искате ли да видите как работи завършването на prompt? Въведете горния prompt в Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) с настройките по подразбиране. Системата е конфигурирана да третира prompt-ите като заявки за информация – така че трябва да видите отговор, който отговаря на този контекст. - -Но какво ако потребителят иска да види нещо конкретно, което отговаря на някакви критерии или цел на задачата? Тук на помощ идват _instruction-tuned_ LLM. - -![Base LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.bg.png) - -### Концепция: Instruction Tuned LLMs - -[Instruction Tuned LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) започва с основния модел и го дообучава с примери или входно/изходни двойки (например многократни "съобщения"), които съдържат ясни инструкции – и AI отговорът се опитва да следва тези инструкции. - -Това използва техники като Reinforcement Learning with Human Feedback (RLHF), които обучават модела да _следва инструкции_ и да _се учи от обратна връзка_, така че да генерира отговори, по-подходящи за практическо приложение и по-релевантни на целите на потребителя. - -Нека опитаме – върнете се към горния prompt, но сега променете _system message_, за да предоставите следната инструкция като контекст: - -> _Обобщи предоставеното съдържание за ученик от втори клас. Запази резултата в един параграф с 3-5 основни точки._ - -Виждате ли как резултатът вече е настроен да отразява желаната цел и формат? Учителят може директно да използва този отговор в своите слайдове за урока. - -![Instruction Tuned LLM Chat Completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.bg.png) - -## Защо ни трябва Prompt Engineering? - -Сега, когато знаем как LLM обработват prompt-ите, нека поговорим за _защо_ ни трябва prompt engineering. Отговорът се крие в това, че настоящите LLM имат редица предизвикателства, които правят постигането на _надеждни и последователни отговори_ по-трудно без усилия за конструиране и оптимизация на prompt-а. Например: - -1. **Отговорите на модела са стохастични.** _Същият prompt_ вероятно ще генерира различни отговори с различни модели или версии на модел. И може дори да даде различни резултати с _един и същ модел_ в различно време. _Техниките за prompt engineering могат да ни помогнат да минимизираме тези вариации, като осигурят по-добри насоки_. - -2. **Моделите могат да измислят отговори.** Моделите са предварително обучени с _големи, но ограничени_ набори от данни, което означава, че им липсва знание за концепции извън този обхват. В резултат могат да генерират отговори, които са неточни, измислени или директно противоречащи на известни факти. _Техниките за prompt engineering помагат на потребителите да идентифицират и намалят такива измислици, например като поискат цитати или обосновка от AI_. - -3. **Възможностите на моделите варират.** По-новите модели или поколения модели имат по-богати възможности, но също така носят уникални особености и компромиси по отношение на цена и сложност. _Prompt engineering може да ни помогне да разработим добри практики и работни процеси, които абстрахират разликите и се адаптират към специфичните изисквания на модела по мащабируем и безпроблемен начин_. - -Нека видим това в действие в OpenAI или Azure OpenAI Playground: - -- Използвайте един и същ prompt с различни разполагания на LLM (например OpenAI, Azure OpenAI, Hugging Face) – забелязахте ли вариации? -- Използвайте един и същ prompt многократно с _един и същ_ LLM (например Azure OpenAI playground) – как се различаваха тези вариации? - -### Пример за измислици - -В този курс използваме термина **"fabrication"** (измислица), за да опишем явлението, при което LLM понякога генерират фактически неточна информация поради ограничения в обучението или други фактори. Може би сте чували това наричано _"халюцинации"_ в популярни статии или научни публикации. Въпреки това силно препоръчваме да използвате термина _"fabrication"_, за да не приписваме човешки черти на машинен резултат. Това също подкрепя [Принципите за отговорен AI](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) от гледна точка на терминологията, като премахва термини, които могат да се възприемат като обидни или неинклузивни в някои контексти. - -Искате ли да добиете представа как работят измислиците? Помислете за prompt, който инструктира AI да генерира съдържание за несъществуваща тема (за да сте сигурни, че не е намерена в обучителния набор). Например – аз опитах този prompt: -# План на урока: Войната на Марс през 2076 г. - -## Въведение -- Кратък преглед на историческия контекст преди Войната на Марс. -- Обсъждане на причините, довели до конфликта през 2076 г. - -## Основни събития -- Хронология на ключовите битки и събития по време на войната. -- Важни фигури и техните роли в конфликта. - -## Технологии и оръжия -- Представяне на новите технологии, използвани в битките. -- Анализ на влиянието на технологичния напредък върху хода на войната. - -## Последствия -- Въздействието на войната върху човечеството и колониите на Марс. -- Политически и социални промени след конфликта. - -## Дискусия и анализ -- Обсъждане на уроците, които можем да научим от Войната на Марс. -- Възможни алтернативни сценарии и техните последствия. - -## Задачи за учениците -- Напишете есе за причините и последствията от Войната на Марс. -- Подгответе презентация за една от ключовите битки. -- Дискутирайте ролята на технологиите в съвременните конфликти. - -## Заключение -- Обобщение на основните точки от урока. -- Отворена дискусия и въпроси от учениците. -Уеб търсене ми показа, че има фикционални разкази (например телевизионни сериали или книги) за марсиански войни – но нито един от 2076 г. Здравият разум също ни подсказва, че 2076 е _в бъдещето_ и следователно не може да се свързва с реално събитие. - -Какво се случва, когато изпълним този prompt с различни доставчици на LLM? - -> **Отговор 1**: OpenAI Playground (GPT-35) - -![Отговор 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.bg.png) - -> **Отговор 2**: Azure OpenAI Playground (GPT-35) - -![Отговор 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.bg.png) - -> **Отговор 3**: : Hugging Face Chat Playground (LLama-2) - -![Отговор 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.bg.png) - -Както се очаква, всеки модел (или версия на модела) дава леко различни отговори благодарение на стохастичното поведение и вариациите в способностите на модела. Например, един модел е насочен към аудитория от 8 клас, докато друг предполага ученик в гимназията. Но всички три модела генерираха отговори, които биха могли да убедят неподготвен потребител, че събитието е реално. - -Техники за prompt engineering като _метапромптиране_ и _настройка на температурата_ могат до известна степен да намалят измислиците на модела. Новите _архитектури_ за prompt engineering също интегрират нови инструменти и техники безпроблемно в потока на prompt-а, за да смекчат или намалят някои от тези ефекти. - -## Казус: GitHub Copilot - -Нека завършим този раздел, като добием представа как prompt engineering се използва в реални решения, разглеждайки един казус: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot е вашият „AI партньор-програмист“ – той превръща текстови prompt-ове в допълнения на код и е интегриран във вашата среда за разработка (например Visual Studio Code) за безпроблемно потребителско изживяване. Както е документирано в серията блогове по-долу, най-ранната версия беше базирана на модела OpenAI Codex – като инженерите бързо осъзнаха нуждата от фина настройка на модела и разработване на по-добри техники за prompt engineering, за да подобрят качеството на кода. През юли те [представиха подобрен AI модел, който надхвърля Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) за още по-бързи предложения. - -Прочетете публикациите в ред, за да проследите техния път на учене. - -- **Май 2023** | [GitHub Copilot става по-добър в разбирането на вашия код](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **Май 2023** | [Вътре в GitHub: Работа с LLM зад GitHub Copilot](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Юни 2023** | [Как да пишем по-добри prompt-ове за GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Юли 2023** | [.. GitHub Copilot надхвърля Codex с подобрен AI модел](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Юли 2023** | [Ръководство за разработчици за prompt engineering и LLM](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **Септември 2023** | [Как да изградим корпоративно LLM приложение: Уроци от GitHub Copilot](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -Можете също да разгледате техния [Engineering блог](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) за още публикации като [тази](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst), която показва как тези модели и техники се _прилагат_ за задвижване на реални приложения. - ---- - - - -## Конструкция на prompt - -Видяхме защо prompt engineering е важен – сега нека разберем как се _конструират_ prompt-овете, за да можем да оценим различни техники за по-ефективен дизайн на prompt. - -### Основен prompt - -Нека започнем с основния prompt: текстов вход, изпратен към модела без друг контекст. Ето пример – когато изпратим първите няколко думи от националния химн на САЩ към OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst), той мигновено _допълва_ отговора с следващите няколко реда, илюстрирайки основното поведение при предсказване. - -| Prompt (Вход) | Допълнение (Изход) | -| :------------------ | :---------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | Изглежда, че започвате текста на „The Star-Spangled Banner“, националния химн на Съединените щати. Пълният текст е ... | - -### Сложен prompt - -Сега нека добавим контекст и инструкции към този основен prompt. [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) ни позволява да конструираме сложен prompt като колекция от _съобщения_ с: - -- двойки вход/изход, отразяващи _потребителски_ вход и _асистентски_ отговор. -- системно съобщение, което задава контекста за поведението или личността на асистента. - -Заявката сега е във формата по-долу, където _токенизацията_ ефективно улавя релевантна информация от контекста и разговора. Промяната на системния контекст може да има също толкова голямо влияние върху качеството на допълненията, колкото и подадените потребителски входове. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Инструкционен prompt - -В горните примери потребителският prompt беше прост текстов въпрос, който може да се интерпретира като заявка за информация. С _инструкционни_ prompt-ове можем да използваме този текст, за да уточним задача по-подробно, предоставяйки по-добро насочване на AI. Ето пример: - -| Prompt (Вход) | Допълнение (Изход) | Тип инструкция | -| :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :----------------- | -| Напишете описание на Гражданската война | _върна прост параграф_ | Прост | -| Напишете описание на Гражданската война. Посочете ключови дати и събития и опишете тяхното значение | _върна параграф, последван от списък с ключови дати и описания на събития_ | Сложен | -| Напишете описание на Гражданската война в 1 параграф. Посочете 3 точки с ключови дати и тяхното значение. Посочете още 3 точки с ключови исторически личности и техния принос. Върнете резултата като JSON файл | _връща по-обстойни детайли в текстово поле, форматирани като JSON, които можете да копирате и валидирате при нужда_ | Сложен. Форматиран. | - -## Основно съдържание - -В горните примери prompt-ът все още беше доста отворен, позволявайки на LLM да реши коя част от предварително обучените му данни е релевантна. С дизайна _основно съдържание_ входният текст се разделя на две части: - -- инструкция (действие) -- релевантно съдържание (което влияе на действието) - -Ето пример, където инструкцията е „обобщи това в 2 изречения“. - -| Prompt (Вход) | Допълнение (Изход) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Юпитер е петата планета от Слънцето и най-голямата в Слънчевата система. Той е газов гигант с маса една хилядна от тази на Слънцето, но два и половина пъти по-голяма от масата на всички останали планети в Слънчевата система взети заедно. Юпитер е един от най-ярките обекти, видими с невъоръжено око в нощното небе, и е познат на древните цивилизации още преди записаната история. Наречен е на римския бог Юпитер.[19] Когато се наблюдава от Земята, Юпитер може да бъде достатъчно ярък, за да хвърля видими сенки,[20] и е средно третият по яркост естествен обект в нощното небе след Луната и Венера.
**Обобщи това в 2 кратки изречения** | Юпитер, петата планета от Слънцето, е най-голямата в Слънчевата система и е известен като един от най-ярките обекти в нощното небе. Наречен на римския бог Юпитер, той е газов гигант с маса два и половина пъти по-голяма от тази на всички останали планети взети заедно. | - -Сегментът с основно съдържание може да се използва по различни начини за по-ефективни инструкции: - -- **Примери** – вместо да казваме на модела какво да прави с явна инструкция, даваме му примери и го оставяме да изведе модела. -- **Подсказки** – след инструкцията добавяме „подсказка“, която подготвя допълнението, насочвайки модела към по-релевантни отговори. -- **Шаблони** – това са повтарящи се „рецепти“ за prompt-ове с плейсхолдъри (променливи), които могат да се персонализират с данни за конкретни случаи. - -Нека разгледаме тези подходи в действие. - -### Използване на примери - -Това е подход, при който използваме основното съдържание, за да „храним модела“ с няколко примера на желания изход за дадена инструкция и го оставяме да изведе модела на желания изход. В зависимост от броя на предоставените примери, можем да имаме zero-shot prompting, one-shot prompting, few-shot prompting и т.н. - -Prompt-ът сега се състои от три компонента: - -- Описание на задачата -- Няколко примера на желания изход -- Началото на нов пример (който става неявно описание на задачата) - -| Тип на обучение | Prompt (Вход) | Допълнение (Изход) | -| :-------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| Zero-shot | "The Sun is Shining". Преведи на испански | "El Sol está brillando". | -| One-shot | "The Sun is Shining" => "El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| Few-shot | Играчът пробяга базите => Бейзбол
Играчът направи ас => Тенис
Играчът удари шестица => Крикет
Играчът направи забиване => | Баскетбол | -| | | | - -Забележете как при zero-shot prompting трябваше да дадем явна инструкция („Преведи на испански“), но тя се подразбира в примера с one-shot prompting. Примерът с few-shot показва как добавянето на повече примери позволява на моделите да правят по-точни изводи без допълнителни инструкции. - -### Подсказки в prompt - -Друг подход за използване на основно съдържание е да се предоставят _подсказки_ вместо примери. В този случай даваме на модела лек тласък в правилната посока, като _започваме_ с откъс, който отразява желания формат на отговора. Моделът „взема подсказката“ и продължава в същия дух. - -| Брой подсказки | Prompt (Вход) | Допълнение (Изход) | -| :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Юпитер е петата планета от Слънцето и най-голямата в Слънчевата система. Той е газов гигант с маса една хилядна от тази на Слънцето, но два и половина пъти по-голяма от масата на всички останали планети в Слънчевата система взети заедно. Юпитер е един от най-ярките обекти, видими с невъоръжено око в нощното небе, и е познат на древните цивилизации още преди записаната история. - -**Обобщи това** | Юпитер е най-голямата планета в Слънчевата система и петата по ред от Слънцето. Той е газов гигант с маса 1/1000 от тази на Слънцето, но е по-тежък от всички останали планети взети заедно. Древните цивилизации познават Юпитер отдавна и той е лесно видим на нощното небе. | -| 1 | Юпитер е петата планета от Слънцето и най-голямата в Слънчевата система. Той е газов гигант с маса една хилядна от тази на Слънцето, но два и половина пъти по-голяма от масата на всички останали планети в Слънчевата система взети заедно. Юпитер е един от най-ярките обекти, видими с невъоръжено око на нощното небе, и е познат на древните цивилизации още преди да има писмени записи.
**Обобщи това**
Това, което научихме, е че Юпитер | е петата планета от Слънцето и най-голямата в Слънчевата система. Той е газов гигант с маса една хилядна от тази на Слънцето, но два и половина пъти по-голяма от масата на всички останали планети взети заедно. Лесно се вижда с невъоръжено око и е познат от древни времена. | -| 2 | Юпитер е петата планета от Слънцето и най-голямата в Слънчевата система. Той е газов гигант с маса една хилядна от тази на Слънцето, но два и половина пъти по-голяма от масата на всички останали планети в Слънчевата система взети заедно. Юпитер е един от най-ярките обекти, видими с невъоръжено око на нощното небе, и е познат на древните цивилизации още преди да има писмени записи.
**Обобщи това**
Топ 3 факта, които научихме: | 1. Юпитер е петата планета от Слънцето и най-голямата в Слънчевата система.
2. Той е газов гигант с маса една хилядна от тази на Слънцето...
3. Юпитер е видим с невъоръжено око от древни времена ... | -| | | | - -### Шаблони за подсказки - -Шаблон за подсказка е _предварително дефинирана рецепта за подсказка_, която може да се съхранява и използва повторно при нужда, за да осигури по-последователно потребителско изживяване в голям мащаб. В най-простата си форма това е просто колекция от примери за подсказки като [този от OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst), който предоставя както интерактивните компоненти на подсказката (потребителски и системни съобщения), така и формата на заявката чрез API - за да се поддържа повторна употреба. - -В по-сложната си форма, като [този пример от LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst), той съдържа _плейсхолдъри_, които могат да се заменят с данни от различни източници (потребителски вход, системен контекст, външни източници и др.) за динамично генериране на подсказка. Това ни позволява да създадем библиотека от многократно използваеми подсказки, които да се използват за осигуряване на последователно потребителско изживяване **програмно** в голям мащаб. - -Накрая, истинската стойност на шаблоните е в способността да се създават и публикуват _библиотеки с подсказки_ за вертикални приложения - където шаблонът за подсказка е _оптимизиран_ да отразява специфичен за приложението контекст или примери, които правят отговорите по-релевантни и точни за целевата аудитория. Репозитория [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) е отличен пример за този подход, като събира библиотека с подсказки за образователната сфера с акцент върху ключови цели като планиране на уроци, дизайн на учебни програми, обучение на ученици и др. - -## Поддържащи материали - -Ако разглеждаме създаването на подсказки като съставяне на инструкция (задача) и целево съдържание (основно съдържание), тогава _второстепенното съдържание_ е като допълнителен контекст, който предоставяме, за да **влияе по някакъв начин на изхода**. Това може да са параметри за настройка, инструкции за форматиране, таксономии на теми и др., които помагат на модела да _настрои_ отговора си така, че да отговаря на желаните цели или очаквания на потребителя. - -Например: При наличието на каталог с курсове с обширни метаданни (име, описание, ниво, тагове, преподавател и др.) за всички налични курсове в учебната програма: - -- можем да дефинираме инструкция да "обобщим каталога с курсове за есен 2023" -- можем да използваме основното съдържание, за да предоставим няколко примера за желания изход -- можем да използваме второстепенното съдържание, за да определим топ 5 "тага" от интерес. - -Сега моделът може да предостави обобщение във формата, показан от примерите - но ако резултатът има няколко тага, може да приоритизира 5-те тага, определени във второстепенното съдържание. - ---- - - - -## Най-добри практики при подсказване - -Сега, когато знаем как могат да се _създават_ подсказки, можем да започнем да мислим как да ги _проектираме_, за да отразяват най-добрите практики. Можем да разгледаме това в две части - правилното _мислене_ и прилагането на правилните _техники_. - -### Мислене при инженеринг на подсказки - -Инженерингът на подсказки е процес на проба и грешка, затова имайте предвид три основни насоки: - -1. **Разбирането на домейна е важно.** Точността и релевантността на отговора зависят от _домейна_, в който се използва приложението или потребителят. Използвайте интуицията и експертизата си в домейна, за да **персонализирате техниките** допълнително. Например, дефинирайте _домейн-специфични личности_ в системните подсказки или използвайте _домейн-специфични шаблони_ в потребителските подсказки. Осигурете второстепенно съдържание, което отразява контексти, специфични за домейна, или използвайте _домейн-специфични знаци и примери_, за да насочите модела към познати модели на употреба. - -2. **Разбирането на модела е важно.** Знаем, че моделите са стохастични по природа. Но реализациите на моделите могат да се различават по отношение на използвания тренировъчен набор (предварително научени знания), предоставяните възможности (например чрез API или SDK) и типа съдържание, за което са оптимизирани (например код, изображения, текст). Разберете силните и слабите страни на използвания модел и използвайте това знание, за да _приоритизирате задачи_ или да изградите _персонализирани шаблони_, оптимизирани за възможностите на модела. - -3. **Итерация и валидиране са важни.** Моделите се развиват бързо, както и техниките за инженеринг на подсказки. Като експерт в домейна, може да имате допълнителен контекст или критерии за _вашето_ конкретно приложение, които не важат за по-широката общност. Използвайте инструменти и техники за инженеринг на подсказки, за да "запалите" създаването на подсказки, след това итерайте и валидирайте резултатите с помощта на собствената си интуиция и експертиза. Записвайте наблюденията си и създайте **база знания** (например библиотеки с подсказки), която може да се използва като нова отправна точка от други, за по-бързи итерации в бъдеще. - -## Най-добри практики - -Сега нека разгледаме често препоръчваните най-добри практики от [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) и [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst). - -| Какво | Защо | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Оценявайте най-новите модели. | Новите поколения модели вероятно имат подобрени функции и качество - но може да са и по-скъпи. Оценявайте ги за въздействие и след това вземайте решения за миграция. | -| Разделяйте инструкции и контекст | Проверете дали вашият модел/доставчик дефинира _делимитери_, за да разграничават по-ясно инструкции, основно и второстепенно съдържание. Това помага на моделите да разпределят тежестта на токените по-точно. | -| Бъдете конкретни и ясни | Давайте повече детайли за желания контекст, резултат, дължина, формат, стил и др. Това подобрява както качеството, така и последователността на отговорите. Записвайте рецепти в многократно използваеми шаблони. | -| Бъдете описателни, използвайте примери | Моделите може да реагират по-добре на подход "покажи и разкажи". Започнете с `zero-shot` подход, където давате инструкция (но без примери), след това опитайте `few-shot` като усъвършенстване, предоставяйки няколко примера за желания изход. Използвайте аналогии. | -| Използвайте знаци за стартиране на отговори | Подтикнете модела към желания резултат, като му дадете няколко начални думи или фрази, които да използва като отправна точка за отговора. | -| Повтаряйте при нужда | Понякога трябва да повтаряте инструкциите към модела. Давайте инструкции преди и след основното съдържание, използвайте инструкция и знак, и т.н. Итерайте и валидирайте, за да видите какво работи. | -| Подредбата има значение | Подредбата, в която представяте информацията на модела, може да повлияе на изхода, дори и в примерите за обучение, поради ефекта на последователността. Опитайте различни варианти, за да видите кой работи най-добре. | -| Дайте на модела „изход“ | Осигурете на модела _резервен_ отговор, който да даде, ако не може да изпълни задачата по някаква причина. Това намалява вероятността моделът да генерира неверни или измислени отговори. | -| | | - -Както при всяка най-добра практика, имайте предвид, че _вашият опит може да се различава_ в зависимост от модела, задачата и домейна. Използвайте тези насоки като отправна точка и итерайте, за да откриете какво работи най-добре за вас. Постоянно преоценявайте процеса си на инженеринг на подсказки с появата на нови модели и инструменти, като се фокусирате върху мащабируемостта на процеса и качеството на отговорите. - - - -## Задача - -Поздравления! Достигнахте до края на урока! Време е да приложите някои от тези концепции и техники на практика с реални примери! - -За нашата задача ще използваме Jupyter Notebook с упражнения, които можете да изпълнявате интерактивно. Можете също да разширите Notebook с ваши собствени Markdown и Code клетки, за да изследвате идеи и техники самостоятелно. - -### За да започнете, форкнете репото, след което - -- (Препоръчително) Стартирайте GitHub Codespaces -- (Алтернативно) Клонирайте репото на локалното си устройство и го използвайте с Docker Desktop -- (Алтернативно) Отворете Notebook с предпочитаната от вас среда за изпълнение на Notebook. - -### След това конфигурирайте променливите на средата - -- Копирайте файла `.env.copy` от корена на репото в `.env` и попълнете стойностите за `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` и `AZURE_OPENAI_DEPLOYMENT`. Върнете се в секцията [Learning Sandbox](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals), за да научите как. - -### След това отворете Jupyter Notebook - -- Изберете runtime kernel. Ако използвате опции 1 или 2, просто изберете стандартния Python 3.10.x kernel, предоставен от dev контейнера. - -Вече сте готови да изпълнявате упражненията. Обърнете внимание, че тук няма _правилни и грешни_ отговори - просто изследвате възможности чрез проба и грешка и изграждате интуиция за това какво работи за даден модел и домейн. - -_Поради тази причина в този урок няма сегменти с решения на кода. Вместо това Notebook ще съдържа Markdown клетки със заглавие "Моето решение:", които показват един примерен изход за справка._ - - - -## Проверка на знанията - -Коя от следните подсказки е добра и следва разумни най-добри практики? - -1. Покажи ми изображение на червена кола -2. Покажи ми изображение на червена кола марка Volvo, модел XC90, паркирана до скала при залез слънце -3. Покажи ми изображение на червена кола марка Volvo, модел XC90 - -Отговор: 2, това е най-добрата подсказка, тъй като дава детайли за "какво" и навлиза в спецификите (не просто кола, а конкретна марка и модел) и описва цялостната обстановка. 3 е следващата най-добра, тъй като също съдържа много описание. - -## 🚀 Предизвикателство - -Опитайте да използвате техниката с "знак" с подсказката: Допълнете изречението "Покажи ми изображение на червена кола марка Volvo и ". Какъв е отговорът и как бихте го подобрили? - -## Отлична работа! Продължете обучението си - -Искате ли да научите повече за различни концепции в инженерството на подсказки? Посетете [страницата за продължаващо обучение](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst), за да намерите други отлични ресурси по темата. - -Отидете на Урок 5, къд - -**Отказ от отговорност**: -Този документ е преведен с помощта на AI преводаческа услуга [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи могат да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да е недоразумения или неправилни тълкувания, произтичащи от използването на този превод. \ No newline at end of file + + + + + + + diff --git a/translations/bg/09-building-image-applications/README.md b/translations/bg/09-building-image-applications/README.md index c4e6a284d..cbf6d187e 100644 --- a/translations/bg/09-building-image-applications/README.md +++ b/translations/bg/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# Създаване на приложения за генериране на изображения - -[![Създаване на приложения за генериране на изображения](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.bg.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLM моделите не са само за генериране на текст. Възможно е също така да се генерират изображения от текстови описания. Използването на изображения като модалност може да бъде изключително полезно в различни области като Медицински технологии, архитектура, туризъм, разработка на игри и други. В тази глава ще разгледаме двата най-популярни модела за генериране на изображения – DALL-E и Midjourney. - -## Въведение - -В този урок ще разгледаме: - -- Генериране на изображения и защо е полезно. -- Какво представляват DALL-E и Midjourney и как работят. -- Как да създадете приложение за генериране на изображения. - -## Цели на обучението - -След завършване на този урок ще можете да: - -- Създавате приложение за генериране на изображения. -- Определяте граници за вашето приложение с помощта на мета промпти. -- Работите с DALL-E и Midjourney. - -## Защо да създавате приложение за генериране на изображения? - -Приложенията за генериране на изображения са отличен начин да изследвате възможностите на Генеративния AI. Те могат да се използват, например, за: - -- **Редактиране и синтез на изображения**. Можете да генерирате изображения за различни случаи на употреба, като редактиране и синтез на изображения. - -- **Приложение в различни индустрии**. Те могат да се използват за създаване на изображения в различни индустрии като Медицински технологии, Туризъм, Разработка на игри и други. - -## Сценарий: Edu4All - -В рамките на този урок ще продължим да работим със стартиращата ни компания Edu4All. Учениците ще създават изображения за своите оценки – какви точно изображения зависи от тях, но това могат да бъдат илюстрации за собствена приказка, нов герой за тяхната история или помощ за визуализиране на идеи и концепции. - -Ето какво биха могли да създадат учениците на Edu4All, ако работят в час по темата за паметници: - -![Edu4All startup, class on monuments, Eiffel Tower](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.bg.png) - -с помощта на промпт като - -> "Куче до Айфеловата кула в ранна сутрешна светлина" - -## Какво са DALL-E и Midjourney? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) и [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) са два от най-популярните модела за генериране на изображения, които позволяват използването на промпти за създаване на изображения. - -### DALL-E - -Нека започнем с DALL-E, който е генеративен AI модел, създаващ изображения от текстови описания. - -> [DALL-E е комбинация от два модела – CLIP и diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP** е модел, който създава вграждания (embeddings) – числови представяния на данни – от изображения и текст. - -- **Diffused attention** е модел, който генерира изображения от тези вграждания. DALL-E е обучен върху набор от изображения и текст и може да се използва за създаване на изображения от текстови описания. Например, DALL-E може да генерира изображения на котка с шапка или куче с ирокез. - -### Midjourney - -Midjourney работи по подобен начин на DALL-E – генерира изображения от текстови промпти. Midjourney също може да създава изображения с промпти като „котка с шапка“ или „куче с ирокез“. - -![Изображение, генерирано от Midjourney, механичен гълъб](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Източник: Wikipedia, изображение, генерирано от Midjourney_ - -## Как работят DALL-E и Midjourney - -Първо, [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). DALL-E е генеративен AI модел, базиран на архитектурата на трансформър с _авторегресивен трансформър_. - -_Авторегресивният трансформър_ определя как моделът генерира изображения от текстови описания – той създава по един пиксел наведнъж и използва вече генерираните пиксели, за да създаде следващия. Процесът преминава през множество слоеве в невронна мрежа, докато изображението е завършено. - -С този процес DALL-E контролира атрибути, обекти, характеристики и други в генерираното изображение. Въпреки това, DALL-E 2 и 3 предлагат по-голям контрол върху генерираното изображение. - -## Създаване на първото ви приложение за генериране на изображения - -Какво е необходимо, за да създадете приложение за генериране на изображения? Трябват ви следните библиотеки: - -- **python-dotenv** – силно препоръчително е да използвате тази библиотека, за да съхранявате тайните си в _.env_ файл, отделен от кода. -- **openai** – тази библиотека ще използвате за взаимодействие с OpenAI API. -- **pillow** – за работа с изображения в Python. -- **requests** – за изпращане на HTTP заявки. - -1. Създайте файл _.env_ със следното съдържание: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Намерете тази информация в Azure Portal за вашия ресурс в секцията „Keys and Endpoint“. - -1. Съберете горните библиотеки в файл с име _requirements.txt_ по следния начин: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. След това създайте виртуална среда и инсталирайте библиотеките: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - За Windows използвайте следните команди за създаване и активиране на виртуалната среда: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. Добавете следния код във файл с име _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Нека обясним този код: - -- Първо импортираме необходимите библиотеки, включително OpenAI, dotenv, requests и Pillow. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- След това зареждаме променливите на средата от _.env_ файла. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- След това задаваме endpoint, ключ за OpenAI API, версия и тип. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- След това генерираме изображението: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - Горният код връща JSON обект, съдържащ URL адреса на генерираното изображение. Можем да използваме този URL, за да изтеглим изображението и да го запишем във файл. - -- Накрая отваряме изображението и използваме стандартен преглед на изображения, за да го покажем: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Повече подробности за генерирането на изображението - -Нека разгледаме кода за генериране на изображението по-подробно: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** е текстовият промпт, използван за генериране на изображението. В този случай използваме промпта „Зайче на кон, държащо близалка, на мъглива поляна, където растат нарциси“. -- **size** е размерът на генерираното изображение. В този случай генерираме изображение с размер 1024x1024 пиксела. -- **n** е броят на генерираните изображения. В този случай генерираме две изображения. -- **temperature** е параметър, който контролира случайността на изхода на генеративния AI модел. Температурата е стойност между 0 и 1, където 0 означава детерминиран изход, а 1 – случаен. По подразбиране е 0.7. - -Има още неща, които можете да правите с изображения, които ще разгледаме в следващия раздел. - -## Допълнителни възможности при генериране на изображения - -Вече видяхте как с няколко реда Python код успяхме да генерираме изображение. Но има още възможности с изображенията. - -Можете също така да: - -- **Правите редакции**. Като предоставите съществуващо изображение, маска и промпт, можете да променяте изображението. Например, можете да добавите нещо в част от изображението. Представете си нашето зайче – можете да му добавите шапка. Това става като подадете изображението, маска (определяща зоната за промяна) и текстов промпт, описващ какво трябва да се направи. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - Основното изображение съдържа само зайчето, но крайното изображение ще има шапка на зайчето. - -- **Създавате вариации**. Идеята е да вземете съществуващо изображение и да поискате да се създадат вариации. За да създадете вариация, подавате изображение и текстов промпт и използвате код като този: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Забележка: това се поддържа само в OpenAI - -## Температура - -Температурата е параметър, който контролира случайността на изхода на генеративен AI модел. Стойността е между 0 и 1, където 0 означава детерминиран изход, а 1 – случаен. По подразбиране е 0.7. - -Нека видим пример как работи температурата, като изпълним този промпт два пъти: - -> Промпт: "Зайче на кон, държащо близалка, на мъглива поляна, където растат нарциси" - -![Зайче на кон, държащо близалка, версия 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.bg.png) - -Сега нека изпълним същия промпт отново, за да видим, че няма да получим същото изображение два пъти: - -![Генерирано изображение на зайче на кон](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.bg.png) - -Както виждате, изображенията са сходни, но не еднакви. Нека опитаме да променим стойността на температурата на 0.1 и да видим какво ще се случи: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Промяна на температурата - -Нека опитаме да направим отговора по-детерминиран. От двете генерирани изображения видяхме, че в първото има зайче, а във второто – кон, така че изображенията се различават значително. - -Затова нека променим кода и зададем температурата на 0, както следва: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Сега, когато изпълните този код, ще получите тези две изображения: - -- ![Температура 0, версия 1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.bg.png) -- ![Температура 0, версия 2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.bg.png) - -Тук ясно се вижда, че изображенията са много по-подобни. - -## Как да определите граници за вашето приложение с мета промпти - -С нашето демо вече можем да генерираме изображения за нашите клиенти. Въпреки това, трябва да създадем някои граници за приложението. - -Например, не искаме да генерираме изображения, които не са подходящи за работна среда или за деца. - -Това може да се направи с помощта на _мета промпти_. Мета промптите са текстови промпти, използвани за контролиране на изхода на генеративен AI модел. Например, можем да използваме мета промпти, за да гарантираме, че генерираните изображения са безопасни за работна среда или подходящи за деца. - -### Как работи това? - -Как работят мета промптите? - -Мета промптите са текстови промпти, които се поставят преди основния текстов промпт и служат за контролиране на изхода на модела. Те се вграждат в приложенията, за да управляват резултатите от модела, като обединяват входа на основния промпт и мета промпта в един текстов промпт. - -Един пример за мета промпт е следният: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Сега нека видим как можем да използваме мета промпти в нашето демо. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -От горния промпт се вижда как всички генерирани изображения вземат предвид мета промпта. - -## Задача – нека дадем възможност на учениците - -В началото на урока представихме Edu4All. Сега е време да дадем възможност на учениците да генерират изображения за своите оценки. - -Учениците ще създават изображения, съдържащи паметници – кои точно паметници зависи от тях. Те са насърчени да използват креативността си, за да поставят тези паметници в различни контексти. - -## Решение - -Ето едно възможно решение: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Отлична работа! Продължете обучението си - -След като завършите този урок, разгледайте нашата [колекция за обучение по Генеративен AI](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst), за да продължите да развивате знанията си в областта на Генеративния AI! - -Преминете към Урок 10, където ще разгледаме как да [създавате AI приложения с нисък код](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**Отказ от отговорност**: -Този документ е преведен с помощта на AI преводаческа услуга [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи могат да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да е недоразумения или неправилни тълкувания, произтичащи от използването на този превод. \ No newline at end of file + + + + diff --git a/translations/bg/12-designing-ux-for-ai-applications/README.md b/translations/bg/12-designing-ux-for-ai-applications/README.md index 6c3bbccac..d8bb3dd9d 100644 --- a/translations/bg/12-designing-ux-for-ai-applications/README.md +++ b/translations/bg/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# Проектиране на UX за AI приложения - -[![Designing UX for AI Applications](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.bg.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Кликнете върху изображението по-горе, за да гледате видеото на този урок)_ - -Потребителското изживяване е много важен аспект при създаването на приложения. Потребителите трябва да могат да използват вашето приложение ефективно, за да изпълняват задачи. Ефективността е едно, но също така трябва да проектирате приложения, които да могат да се използват от всички, за да ги направите _достъпни_. Тази глава ще се фокусира върху тази област, за да можете в крайна сметка да създадете приложение, което хората могат и искат да използват. - -## Въведение - -Потребителското изживяване е начинът, по който потребителят взаимодейства и използва конкретен продукт или услуга, било то система, инструмент или дизайн. При разработването на AI приложения, разработчиците не само се стремят да осигурят ефективно потребителско изживяване, но и етично. В този урок разглеждаме как да създадем приложения с изкуствен интелект (AI), които отговарят на нуждите на потребителите. - -Урокът ще обхване следните теми: - -- Въведение в потребителското изживяване и разбиране на нуждите на потребителите -- Проектиране на AI приложения за доверие и прозрачност -- Проектиране на AI приложения за сътрудничество и обратна връзка - -## Цели на обучението - -След като преминете този урок, ще можете да: - -- Разберете как да създавате AI приложения, които отговарят на нуждите на потребителите. -- Проектирате AI приложения, които насърчават доверието и сътрудничеството. - -### Предварителни изисквания - -Отделете време да прочетете повече за [потребителското изживяване и дизайн мисленето.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Въведение в потребителското изживяване и разбиране на нуждите на потребителите - -В нашия измислен образователен стартъп имаме двама основни потребители – учители и ученици. Всеки от тях има уникални нужди. Дизайнът, ориентиран към потребителя, поставя потребителя на първо място, като гарантира, че продуктите са релевантни и полезни за тези, за които са предназначени. - -Приложението трябва да бъде **полезно, надеждно, достъпно и приятно**, за да осигури добро потребителско изживяване. - -### Полезност - -Да бъде полезно означава, че приложението има функционалност, която съответства на предназначението му, например автоматизиране на процеса на оценяване или генериране на флашкарти за преговор. Приложение, което автоматизира оценяването, трябва да може точно и ефективно да присвоява оценки на работата на учениците според предварително зададени критерии. По същия начин приложение, което генерира флашкарти за преговор, трябва да създава релевантни и разнообразни въпроси въз основа на своите данни. - -### Надеждност - -Да бъде надеждно означава, че приложението може да изпълнява задачата си последователно и без грешки. Въпреки това, AI, както и хората, не е съвършен и може да допуска грешки. Приложенията могат да срещнат грешки или неочаквани ситуации, които изискват човешка намеса или корекция. Как се справяте с грешките? В последната част на този урок ще разгледаме как AI системите и приложенията са проектирани за сътрудничество и обратна връзка. - -### Достъпност - -Да бъде достъпно означава да се разшири потребителското изживяване към потребители с различни възможности, включително хора с увреждания, като се гарантира, че никой не е изключен. Следвайки насоките и принципите за достъпност, AI решенията стават по-инклузивни, удобни за ползване и полезни за всички потребители. - -### Приятно изживяване - -Да бъде приятно означава, че приложението е приятно за използване. Привлекателното потребителско изживяване може да има положително въздействие върху потребителя, като го насърчава да се връща към приложението и увеличава приходите на бизнеса. - -![image illustrating UX considerations in AI](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.bg.png) - -Не всеки проблем може да бъде решен с AI. AI идва, за да допълни вашето потребителско изживяване, било то чрез автоматизиране на ръчни задачи или персонализиране на потребителските изживявания. - -## Проектиране на AI приложения за доверие и прозрачност - -Изграждането на доверие е от ключово значение при проектирането на AI приложения. Доверието гарантира, че потребителят е уверен, че приложението ще свърши работата, ще доставя резултати последователно и резултатите са това, от което потребителят се нуждае. Риск в тази област са недоверието и прекаленото доверие. Недоверието възниква, когато потребителят има малко или никакво доверие в AI система, което води до отхвърляне на приложението. Прекаленото доверие се появява, когато потребителят надценява възможностите на AI системата, което води до прекалено доверие в нея. Например, при автоматизирана система за оценяване, прекаленото доверие може да доведе до това учителят да не преглежда някои от работите, за да се увери, че системата работи правилно. Това може да доведе до несправедливи или неточни оценки за учениците или пропуснати възможности за обратна връзка и подобрение. - -Два начина да се гарантира, че доверието е в центъра на дизайна, са обяснимостта и контрола. - -### Обяснимост - -Когато AI помага при вземането на решения, като например предаване на знания на бъдещите поколения, е критично учителите и родителите да разбират как се вземат решенията от AI. Това е обяснимост – разбирането как AI приложенията вземат решения. Проектирането за обяснимост включва добавяне на примери за това какво може да направи AI приложението. Например, вместо "Започнете с AI учител", системата може да използва: "Обобщете бележките си за по-лесен преговор с помощта на AI." - -![an app landing page with clear illustration of explainability in AI applications](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.bg.png) - -Друг пример е как AI използва потребителски и лични данни. Например, потребител с персона ученик може да има ограничения, базирани на своята персона. AI може да не може да разкрие отговори на въпроси, но може да помогне на потребителя да помисли как да реши даден проблем. - -![AI replying to questions based on persona](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.bg.png) - -Последната ключова част от обяснимостта е опростяването на обясненията. Учениците и учителите може да не са експерти по AI, затова обясненията за това какво приложението може или не може да направи трябва да са опростени и лесни за разбиране. - -![simplified explanations on AI capabilities](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.bg.png) - -### Контрол - -Генеративният AI създава сътрудничество между AI и потребителя, където например потребителят може да променя подканите за различни резултати. Освен това, след като се генерира резултат, потребителите трябва да могат да го променят, което им дава усещане за контрол. Например, при използване на Bing можете да настроите подканата си според формат, тон и дължина. Освен това можете да добавяте промени към резултата и да го модифицирате, както е показано по-долу: - -![Bing search results with options to modify the prompt and output](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.bg.png) - -Друга функция в Bing, която позволява на потребителя да контролира приложението, е възможността да се включва и изключва използването на данните от AI. За училищно приложение ученик може да иска да използва своите бележки, както и ресурсите на учителите като материал за преговор. - -![Bing search results with options to modify the prompt and output](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.bg.png) - -> При проектирането на AI приложения, умишлеността е ключова, за да се гарантира, че потребителите не се доверяват прекалено и не създават нереалистични очаквания за възможностите му. Един от начините да се постигне това е чрез създаване на съпротива между подканите и резултатите. Напомняйки на потребителя, че това е AI, а не друг човек. - -## Проектиране на AI приложения за сътрудничество и обратна връзка - -Както беше споменато по-рано, генеративният AI създава сътрудничество между потребителя и AI. Повечето взаимодействия са с потребител, който въвежда подканваща фраза, и AI, който генерира резултат. Какво се случва, ако резултатът е грешен? Как приложението се справя с грешки, ако възникнат? Обвинява ли AI потребителя или отделя време да обясни грешката? - -AI приложенията трябва да бъдат изградени така, че да получават и дават обратна връзка. Това не само помага на AI системата да се подобрява, но и изгражда доверие с потребителите. В дизайна трябва да бъде включен цикъл за обратна връзка, например прост бутон с палец нагоре или надолу за оценка на резултата. - -Друг начин за справяне с това е ясно да се комуникират възможностите и ограниченията на системата. Когато потребителят направи грешка, като поиска нещо извън възможностите на AI, трябва да има начин да се обработи това, както е показано по-долу. - -![Giving feedback and handling errors](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.bg.png) - -Системните грешки са често срещани при приложения, където потребителят може да се нуждае от помощ с информация извън обхвата на AI или приложението може да има ограничение за броя въпроси/предмети, за които потребителят може да генерира обобщения. Например, AI приложение, обучено с данни по ограничени предмети, например История и Математика, може да не може да отговаря на въпроси по География. За да се избегне това, AI системата може да даде отговор като: "Съжаляваме, нашият продукт е обучен с данни по следните предмети..., не мога да отговоря на зададения въпрос." - -AI приложенията не са съвършени, затова е неизбежно да допускат грешки. При проектирането на вашите приложения трябва да осигурите възможност за обратна връзка от потребителите и обработка на грешки по начин, който е прост и лесен за обяснение. - -## Задача - -Вземете някое от AI приложенията, които сте създали досега, и обмислете да приложите следните стъпки във вашето приложение: - -- **Приятно изживяване:** Помислете как можете да направите приложението си по-приятно. Добавяте ли обяснения навсякъде? Насърчавате ли потребителя да изследва? Как формулирате съобщенията за грешки? - -- **Полезност:** Създавате уеб приложение. Уверете се, че приложението ви може да се навигира както с мишка, така и с клавиатура. - -- **Доверие и прозрачност:** Не се доверявайте напълно на AI и неговите резултати, обмислете как бихте включили човек в процеса за проверка на резултатите. Също така обмислете и приложете други начини за постигане на доверие и прозрачност. - -- **Контрол:** Дайте на потребителя контрол върху данните, които предоставя на приложението. Внедрете начин потребителят да може да се включва и изключва от събирането на данни в AI приложението. - -## Продължете обучението си! - -След като завършите този урок, разгледайте нашата [колекция за обучение по генеративен AI](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst), за да продължите да развивате знанията си в областта на генеративния AI! - -Преминете към Урок 13, където ще разгледаме как да [защитим AI приложенията](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**Отказ от отговорност**: -Този документ е преведен с помощта на AI преводаческа услуга [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи могат да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да е недоразумения или неправилни тълкувания, произтичащи от използването на този превод. \ No newline at end of file + + + diff --git a/translations/bg/README.md b/translations/bg/README.md index f6bd1d396..06539396d 100644 --- a/translations/bg/README.md +++ b/translations/bg/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.bg.png) - -### 21 урока, които ви учат на всичко необходимо, за да започнете да създавате приложения с Generative AI - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Поддръжка на множество езици - -#### Поддържа се чрез GitHub Action (Автоматично и винаги актуално) - -[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](./README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md) - -# Generative AI за начинаещи (Версия 3) - Курс - -Научете основите на създаването на приложения с Generative AI с нашия изчерпателен курс от 21 урока, създаден от Microsoft Cloud Advocates. - -## 🌱 Започване - -Този курс съдържа 21 урока. Всеки урок разглежда отделна тема, така че започнете от където пожелаете! - -Уроците са означени като "Learn" – обясняващи концепция от Generative AI, или "Build" – обясняващи концепция и предоставящи кодови примери както на **Python**, така и на **TypeScript**, когато е възможно. - -За .NET разработчици вижте [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -Всеки урок включва и секция "Keep Learning" с допълнителни учебни материали. - -## Какво ви е необходимо -### За да стартирате кода от този курс, можете да използвате: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **Уроци:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **Уроци:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **Уроци:** "oai-assignment" - -- Основни познания по Python или TypeScript са полезни - \*За абсолютни начинаещи разгледайте тези [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) и [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) курсове -- GitHub акаунт, за да [форкнете цялото това хранилище](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) във вашия собствен акаунт - -Създадохме урок **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)**, който ще ви помогне да настроите средата за разработка. - -Не забравяйте да [отметнете с звезда (🌟) това хранилище](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst), за да го намерите по-лесно по-късно. - -## 🧠 Готови ли сте за разгръщане? - -Ако търсите по-напреднали кодови примери, разгледайте нашата [колекция от кодови примери за Generative AI](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) както на **Python**, така и на **TypeScript**. - -## 🗣️ Срещнете други учащи, получете подкрепа - -Присъединете се към нашия [официален Discord сървър Azure AI Foundry](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst), за да се запознаете и свържете с други учащи, които следват този курс, и да получите помощ. - -Задавайте въпроси или споделяйте обратна връзка за продукта в нашия [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum) в Github. - -## 🚀 Създавате стартъп? - -Регистрирайте се в [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst), за да получите **безплатни кредити за OpenAI** и до **150 000 долара в кредити за Azure за достъп до OpenAI модели чрез Azure OpenAI Services**. - -## 🙏 Искате да помогнете? - -Имате ли предложения или сте открили правописни или кодови грешки? [Отворете issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) или [създайте pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 Всеки урок включва: - -- Кратко видео въведение в темата -- Писмен урок, разположен в README -- Примери с код на Python и TypeScript, поддържащи Azure OpenAI и OpenAI API -- Връзки към допълнителни ресурси за продължаване на обучението - -## 🗃️ Уроци - -| # | **Връзка към урока** | **Описание** | **Видео** | **Допълнително обучение** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Как да настроите средата си за разработка | Видео предстои | [Научете повече](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Въведение в Generative AI и LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Разбиране какво е Generative AI и как работят големите езикови модели (LLMs) | [Видео](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Научете повече](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Изследване и сравнение на различни LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Как да изберете правилния модел за вашия случай | [Видео](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Научете повече](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Отговорно използване на Generative AI](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Как да създавате отговорни Generative AI приложения | [Видео](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Научете повече](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Основи на Prompt Engineering](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Практически най-добри практики в Prompt Engineering | [Видео](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Научете повече](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Създаване на усъвършенствани промптове](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Как да прилагате техники за prompt engineering, които подобряват резултатите от вашите промптове | [Видео](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Научете повече](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Създаване на приложения за генериране на текст](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Създаване:** Приложение за генериране на текст с помощта на Azure OpenAI / OpenAI API | [Видео](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Научете повече](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Създаване на чат приложения](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Създаване:** Техники за ефективно изграждане и интегриране на чат приложения. | [Видео](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Научете повече](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Създаване на търсещи приложения с векторни бази данни](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Създаване:** Търсещо приложение, което използва Embeddings за търсене на данни. | [Видео](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Научете повече](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Създаване на приложения за генериране на изображения](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Създаване:** Приложение за генериране на изображения | [Видео](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Научете повече](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Създаване на AI приложения с нисък код](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Създаване:** Генеративно AI приложение с помощта на инструменти за нисък код | [Видео](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Научете повече](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Интегриране на външни приложения с Function Calling](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Създаване:** Какво е function calling и как се използва в приложения | [Видео](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Научете повече](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [Дизайн на UX за AI приложения](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Научете:** Как да приложите принципите на UX дизайна при разработката на генеративни AI приложения | [Видео](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Научете повече](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Защита на вашите генеративни AI приложения](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Научете:** Заплахите и рисковете за AI системите и методите за тяхната защита. | [Видео](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Научете повече](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [Жизнен цикъл на генеративните AI приложения](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Научете:** Инструментите и метриките за управление на жизнения цикъл на LLM и LLMOps | [Видео](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Научете повече](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) и векторни бази данни](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Създаване:** Приложение, използващо RAG Framework за извличане на embeddings от векторни бази данни | [Видео](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Научете повече](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Отворени модели и Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Създаване:** Приложение, използващо отворени модели, налични в Hugging Face | [Видео](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Научете повече](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI агенти](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Създаване:** Приложение, използващо AI Agent Framework | [Видео](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Научете повече](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [Фина настройка на LLMs](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Научете:** Какво, защо и как се прави фина настройка на LLMs | [Видео](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Научете повече](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Създаване с SLMs](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Научете:** Ползите от създаването с малки езикови модели | Видео предстои | [Научете повече](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Създаване с Mistral модели](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Научете:** Характеристиките и разликите на моделите от фамилията Mistral | Видео предстои | [Научете повече](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Създаване с Meta модели](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Научете:** Характеристиките и разликите на моделите от фамилията Meta | Видео предстои | [Научете повече](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Специални благодарности - -Специални благодарности на [**John Aziz**](https://www.linkedin.com/in/john0isaac/) за създаването на всички GitHub Actions и работни потоци - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) за ключовите приноси във всяко урок, които подобряват обучението и работата с кода. - -## 🎒 Други курсове - -Нашият екип създава и други курсове! Вижте: - -- [**НОВ** Model Context Protocol за начинаещи](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI агенти за начинаещи](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Генеративен AI за начинаещи с .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Генеративен AI за начинаещи с JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML за начинаещи](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Data Science за начинаещи](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI за начинаещи](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Киберсигурност за начинаещи](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Уеб разработка за начинаещи](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT за начинаещи](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR разработка за начинаещи](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Овладяване на GitHub Copilot за AI съвместно програмиране](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Овладяване на GitHub Copilot за C#/.NET разработчици](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Избери своето приключение с Copilot](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Отказ от отговорност**: -Този документ е преведен с помощта на AI преводаческа услуга [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи могат да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да е недоразумения или неправилни тълкувания, произтичащи от използването на този превод. \ No newline at end of file + + + + diff --git a/translations/bn/00-course-setup/01-setup-cloud.md b/translations/bn/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..690485db7 --- /dev/null +++ b/translations/bn/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/bn/00-course-setup/02-setup-local.md b/translations/bn/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..115012e02 --- /dev/null +++ b/translations/bn/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/bn/00-course-setup/03-providers.md b/translations/bn/00-course-setup/03-providers.md new file mode 100644 index 000000000..da1d2a012 --- /dev/null +++ b/translations/bn/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/bn/00-course-setup/README.md b/translations/bn/00-course-setup/README.md index 52c9af9c1..27b622799 100644 --- a/translations/bn/00-course-setup/README.md +++ b/translations/bn/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# এই কোর্স শুরু করা - -আমরা খুবই উচ্ছ্বসিত যে আপনি এই কোর্স শুরু করতে যাচ্ছেন এবং দেখতে পাবেন কীভাবে Generative AI দিয়ে কিছু অনুপ্রেরণামূলক কিছু তৈরি করা যায়! - -আপনার সফলতা নিশ্চিত করতে, এই পৃষ্ঠায় সেটআপের ধাপসমূহ, প্রযুক্তিগত প্রয়োজনীয়তা এবং প্রয়োজনে সাহায্য কোথায় পাবেন তা বর্ণনা করা হয়েছে। - -## সেটআপের ধাপসমূহ - -এই কোর্স শুরু করার জন্য, আপনাকে নিচের ধাপগুলো সম্পন্ন করতে হবে। - -### ১. এই রিপো ফর্ক করুন - -[Fork this entire repo](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) আপনার নিজের GitHub অ্যাকাউন্টে, যাতে আপনি কোড পরিবর্তন করতে এবং চ্যালেঞ্জগুলো সম্পন্ন করতে পারেন। আপনি চাইলে [এই রিপোতে (🌟) স্টার](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) দিতে পারেন, যাতে এটি এবং সম্পর্কিত রিপোগুলো সহজে খুঁজে পান। - -### ২. একটি codespace তৈরি করুন - -কোড চালানোর সময় কোনো ডিপেন্ডেন্সি সমস্যা এড়াতে, আমরা সুপারিশ করি এই কোর্সটি [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst) এ চালানোর। - -এটি তৈরি করতে, আপনার ফর্ক করা রিপোর `Code` অপশন নির্বাচন করুন এবং **Codespaces** অপশনটি বেছে নিন। - -![Dialog showing buttons to create a codespace](../../../00-course-setup/images/who-will-pay.webp) - -### ৩. আপনার API কী সংরক্ষণ - -যেকোনো ধরনের অ্যাপ্লিকেশন তৈরি করার সময় আপনার API কী নিরাপদে রাখা খুবই গুরুত্বপূর্ণ। আমরা সুপারিশ করি সরাসরি আপনার কোডে API কী সংরক্ষণ না করতে। পাবলিক রিপোজিটরিতে এই তথ্য কমিট করলে নিরাপত্তা ঝুঁকি এবং অনাকাঙ্ক্ষিত খরচ হতে পারে যদি কেউ খারাপ উদ্দেশ্যে ব্যবহার করে। - -Python এর জন্য `.env` ফাইল তৈরি করে `GITHUB_TOKEN` কী যোগ করার ধাপে ধাপে নির্দেশিকা নিচে দেওয়া হলো: - -1. **আপনার প্রজেক্ট ডিরেক্টরিতে যান**: টার্মিনাল বা কমান্ড প্রম্পট খুলে আপনার প্রজেক্টের মূল ডিরেক্টরিতে যান যেখানে `.env` ফাইল তৈরি করতে চান। - - ```bash - cd path/to/your/project - ``` - -2. **`.env` ফাইল তৈরি করুন**: আপনার পছন্দের টেক্সট এডিটর ব্যবহার করে `.env` নামে একটি নতুন ফাইল তৈরি করুন। কমান্ড লাইন ব্যবহার করলে Unix-ভিত্তিক সিস্টেমে `touch` অথবা Windows-এ `echo` ব্যবহার করতে পারেন: - - Unix-ভিত্তিক সিস্টেম: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **`.env` ফাইল সম্পাদনা করুন**: `.env` ফাইলটি একটি টেক্সট এডিটরে (যেমন VS Code, Notepad++, বা অন্য যেকোনো এডিটর) খুলুন। নিচের লাইনটি যোগ করুন, যেখানে `your_github_token_here` এর জায়গায় আপনার আসল GitHub টোকেন বসান: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **ফাইলটি সংরক্ষণ করুন**: পরিবর্তনগুলো সেভ করে এডিটর বন্ধ করুন। - -5. **`python-dotenv` ইনস্টল করুন**: যদি আগে না করে থাকেন, তাহলে `.env` ফাইল থেকে পরিবেশ ভেরিয়েবল লোড করার জন্য `python-dotenv` প্যাকেজ ইনস্টল করতে হবে। `pip` ব্যবহার করে ইনস্টল করতে পারেন: - - ```bash - pip install python-dotenv - ``` - -6. **আপনার Python স্ক্রিপ্টে পরিবেশ ভেরিয়েবল লোড করুন**: আপনার Python স্ক্রিপ্টে `python-dotenv` প্যাকেজ ব্যবহার করে `.env` ফাইল থেকে পরিবেশ ভেরিয়েবল লোড করুন: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -এতটুকুই! আপনি সফলভাবে `.env` ফাইল তৈরি করেছেন, আপনার GitHub টোকেন যোগ করেছেন এবং এটি Python অ্যাপ্লিকেশনে লোড করেছেন। - -## আপনার কম্পিউটারে লোকালি কোড চালানো - -আপনার কম্পিউটারে কোড লোকালি চালানোর জন্য, আপনার কাছে [Python এর কোনো একটি সংস্করণ ইনস্টল থাকা](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst) প্রয়োজন। - -তারপর রিপোজিটরি ব্যবহার করতে, আপনাকে এটি ক্লোন করতে হবে: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -সবকিছু ঠিকঠাক ক্লোন হয়ে গেলে, আপনি শুরু করতে পারেন! - -## ঐচ্ছিক ধাপসমূহ - -### Miniconda ইনস্টল করা - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) হলো একটি হালকা ইনস্টলার যা [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python এবং কিছু প্যাকেজ ইনস্টল করার জন্য ব্যবহৃত হয়। Conda নিজেই একটি প্যাকেজ ম্যানেজার, যা বিভিন্ন Python [**ভার্চুয়াল এনভায়রনমেন্ট**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) এবং প্যাকেজ সেটআপ ও পরিবর্তন সহজ করে। এটি এমন প্যাকেজ ইনস্টল করতেও সাহায্য করে যা `pip` দিয়ে পাওয়া যায় না। - -আপনি [MiniConda ইনস্টলেশন গাইড](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) অনুসরণ করে এটি সেটআপ করতে পারেন। - -Miniconda ইনস্টল করার পর, আপনাকে রিপোজিটরি ক্লোন করতে হবে (যদি আগে না করে থাকেন)। - -এরপর, একটি ভার্চুয়াল এনভায়রনমেন্ট তৈরি করতে হবে। Conda দিয়ে এটি করতে, একটি নতুন এনভায়রনমেন্ট ফাইল (_environment.yml_) তৈরি করুন। Codespaces ব্যবহার করলে এটি `.devcontainer` ডিরেক্টরির মধ্যে তৈরি করুন, অর্থাৎ `.devcontainer/environment.yml`। - -নিচের স্নিপেট দিয়ে আপনার এনভায়রনমেন্ট ফাইল পূরণ করুন: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -যদি Conda ব্যবহার করতে গিয়ে কোনো সমস্যা হয়, তাহলে ম্যানুয়ালি Microsoft AI Libraries ইনস্টল করতে পারেন নিচের কমান্ড দিয়ে: - -``` -conda install -c microsoft azure-ai-ml -``` - -এনভায়রনমেন্ট ফাইলটি আমাদের প্রয়োজনীয় ডিপেন্ডেন্সিগুলো নির্দিষ্ট করে। `` হলো আপনার পছন্দের Conda এনভায়রনমেন্টের নাম, আর `` হলো আপনি যে Python সংস্করণ ব্যবহার করতে চান, যেমন `3` হলো Python এর সর্বশেষ প্রধান সংস্করণ। - -সবকিছু ঠিকঠাক হলে, নিচের কমান্ডগুলো চালিয়ে আপনার Conda এনভায়রনমেন্ট তৈরি করুন: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -যদি কোনো সমস্যা হয়, [Conda এনভায়রনমেন্ট গাইড](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst) দেখুন। - -### Visual Studio Code এবং Python সাপোর্ট এক্সটেনশন ব্যবহার - -আমরা এই কোর্সের জন্য [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) এডিটর এবং [Python সাপোর্ট এক্সটেনশন](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) ব্যবহার করার পরামর্শ দিই। তবে এটি বাধ্যতামূলক নয়, শুধুমাত্র সুপারিশ। - -> **Note**: কোর্স রিপোজিটরি VS Code এ খুললে, আপনি প্রজেক্টটি একটি কন্টেইনারের মধ্যে সেটআপ করার অপশন পাবেন। কারণ কোর্স রিপোজিটরির মধ্যে একটি [বিশেষ `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) ডিরেক্টরি রয়েছে। পরে এ বিষয়ে আরও জানানো হবে। - -> **Note**: রিপোজিটরি ক্লোন করে VS Code এ খুললে, এটি স্বয়ংক্রিয়ভাবে Python সাপোর্ট এক্সটেনশন ইনস্টল করার প্রস্তাব দেবে। - -> **Note**: যদি VS Code আপনাকে রিপোজিটরি কন্টেইনারে পুনরায় খুলতে বলে, তাহলে এই অনুরোধটি প্রত্যাখ্যান করুন যাতে আপনি লোকালি ইনস্টল করা Python ব্যবহার করতে পারেন। - -### ব্রাউজারে Jupyter ব্যবহার - -আপনি ব্রাউজারের মধ্যেই [Jupyter পরিবেশ](https://jupyter.org?WT.mc_id=academic-105485-koreyst) ব্যবহার করে প্রজেক্টে কাজ করতে পারেন। ক্লাসিক Jupyter এবং [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) উভয়ই স্বয়ংসম্পূর্ণ উন্নয়ন পরিবেশ দেয়, যেমন অটো-কমপ্লিশন, কোড হাইলাইটিং ইত্যাদি। - -লোকালি Jupyter চালু করতে, টার্মিনাল/কমান্ড লাইন থেকে কোর্স ডিরেক্টরিতে যান এবং চালান: - -```bash -jupyter notebook -``` - -অথবা - -```bash -jupyterhub -``` - -এটি একটি Jupyter ইনস্ট্যান্স শুরু করবে এবং অ্যাক্সেসের জন্য URL কমান্ড লাইন উইন্ডোতে দেখাবে। - -URL অ্যাক্সেস করলে, আপনি কোর্সের আউটলাইন দেখতে পাবেন এবং যেকোনো `*.ipynb` ফাইলে যেতে পারবেন। উদাহরণস্বরূপ, `08-building-search-applications/python/oai-solution.ipynb`। - -### কন্টেইনারে চালানো - -আপনার কম্পিউটার বা Codespace এ সবকিছু সেটআপ করার বিকল্প হিসেবে [কন্টেইনার](../../../00-course-setup/) ব্যবহার করা যেতে পারে। কোর্স রিপোজিটরির বিশেষ `.devcontainer` ফোল্ডারটি VS Code কে প্রজেক্টটি কন্টেইনারের মধ্যে সেটআপ করার সুযোগ দেয়। Codespaces ছাড়া এটি করতে হলে Docker ইনস্টল করতে হবে, এবং এটি কিছুটা জটিল, তাই আমরা কেবল কন্টেইনার নিয়ে কাজের অভিজ্ঞতা থাকা লোকদের জন্য এটি সুপারিশ করি। - -GitHub Codespaces ব্যবহার করার সময় আপনার API কী নিরাপদ রাখার অন্যতম সেরা উপায় হলো Codespace Secrets ব্যবহার করা। বিস্তারিত জানতে [Codespaces secrets management](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) গাইডটি অনুসরণ করুন। - -## পাঠ এবং প্রযুক্তিগত প্রয়োজনীয়তা - -কোর্সটিতে ৬টি ধারণাগত পাঠ এবং ৬টি কোডিং পাঠ রয়েছে। - -কোডিং পাঠগুলোর জন্য আমরা Azure OpenAI Service ব্যবহার করছি। এই কোড চালানোর জন্য আপনার Azure OpenAI সার্ভিসে অ্যাক্সেস এবং API কী প্রয়োজন। অ্যাক্সেস পেতে [এই আবেদনটি পূরণ](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst) করতে পারেন। - -আপনার আবেদন প্রক্রিয়াধীন থাকাকালীন, প্রতিটি কোডিং পাঠের সাথে একটি `README.md` ফাইল থাকবে যেখানে আপনি কোড এবং আউটপুট দেখতে পারবেন। - -## প্রথমবার Azure OpenAI Service ব্যবহার - -যদি এটি আপনার প্রথমবার Azure OpenAI সার্ভিস ব্যবহার করা হয়, তাহলে দয়া করে এই গাইডটি অনুসরণ করুন কিভাবে [Azure OpenAI Service রিসোর্স তৈরি ও ডিপ্লয় করবেন।](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## প্রথমবার OpenAI API ব্যবহার - -যদি এটি আপনার প্রথমবার OpenAI API ব্যবহার করা হয়, তাহলে দয়া করে এই গাইডটি অনুসরণ করুন কিভাবে [ইন্টারফেস তৈরি ও ব্যবহার করবেন।](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## অন্যান্য শিক্ষার্থীদের সাথে পরিচিত হন - -আমরা আমাদের অফিসিয়াল [AI Community Discord সার্ভারে](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) অন্যান্য শিক্ষার্থীদের সাথে পরিচিত হওয়ার জন্য চ্যানেল তৈরি করেছি। এটি অন্যান্য উদ্যোক্তা, নির্মাতা, ছাত্র এবং Generative AI-তে দক্ষতা বাড়াতে আগ্রহী যেকোনো ব্যক্তির সাথে নেটওয়ার্ক গড়ার একটি চমৎকার সুযোগ। - -[![Join discord channel](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -প্রজেক্ট টিমও এই Discord সার্ভারে থাকবে শিক্ষার্থীদের সাহায্য করার জন্য। - -## অবদান রাখা - -এই কোর্স একটি ওপেন-সোর্স উদ্যোগ। যদি আপনি উন্নতির কোনো দিক বা সমস্যা দেখতে পান, অনুগ্রহ করে একটি [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) তৈরি করুন অথবা একটি [GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) লগ করুন। - -প্রজেক্ট টিম সব অবদান নজরদারি করবে। ওপেন সোর্সে অবদান রাখা Generative AI-তে আপনার ক্যারিয়ার গড়ার একটি অসাধারণ উপায়। - -অধিকাংশ অবদানের জন্য আপনাকে Contributor License Agreement (CLA) এ সম্মত হতে হবে, যা ঘোষণা করে যে আপনি আপনার অবদান ব্যবহারের জন্য আমাদের অধিকার প্রদান করছেন। বিস্তারিত জানতে [CLA, Contributor License Agreement ওয়েবসাইট](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst) দেখুন। - -গুরুত্বপূর্ণ: এই রিপোতে অনুবাদ করার সময়, দয়া করে মেশিন অনুবাদ ব্যবহার করবেন না। আমরা কমিউনিটির মাধ্যমে অনুবাদ যাচাই করব, তাই শুধুমাত্র আপনি যে ভাষায় দক্ষ, সেই ভাষায় অনুবাদের জন্য স্বেচ্ছাসেবক হোন। - -আপনি যখন একটি pull request জমা দেবেন, CLA-বট স্বয়ংক্রিয়ভাবে নির্ধারণ করবে আপনি CLA প্রদান করতে হবে কিনা এবং PR-এ উপযুক্ত লেবেল বা মন্তব্য যোগ করবে। বটের নির্দেশনা অনুসরণ করুন। আপনাকে এটি সমস্ত রিপোজিটরির জন্য একবারই করতে হবে। - -এই প্রজেক্ট [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst) গ্রহণ করেছে। আরও তথ্যের জন্য Code of Conduct FAQ পড়ুন অথবা অতিরিক্ত প্রশ্ন বা মন্তব্যের জন্য [Email opencode](opencode@microsoft.com) এ যোগাযোগ করুন। - -## চলুন শুরু করি - -আপনি এখন এই কোর্স সম্পন্ন করার জন্য প্রয়োজনীয় ধাপগুলো শেষ করেছেন, চলুন শুরু করি [Generative AI এবং LLMs এর পরিচিতি](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) নিয়ে। - -**অস্বীকৃতি**: -এই নথিটি AI অনুবাদ সেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনূদিত হয়েছে। আমরা যথাসাধ্য সঠিকতার চেষ্টা করি, তবে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল নথিটি তার নিজস্ব ভাষায়ই কর্তৃত্বপূর্ণ উৎস হিসেবে বিবেচিত হওয়া উচিত। গুরুত্বপূর্ণ তথ্যের জন্য পেশাদার মানব অনুবাদ গ্রহণ করার পরামর্শ দেওয়া হয়। এই অনুবাদের ব্যবহারে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file + + + + diff --git a/translations/bn/00-course-setup/SETUP.md b/translations/bn/00-course-setup/SETUP.md deleted file mode 100644 index eb761d072..000000000 --- a/translations/bn/00-course-setup/SETUP.md +++ /dev/null @@ -1,151 +0,0 @@ - -# আপনার ডেভেলপমেন্ট পরিবেশ সেটআপ করুন - -আমরা এই রিপোজিটরি এবং কোর্সটি একটি [development container](https://containers.dev?WT.mc_id=academic-105485-koreyst) ব্যবহার করে সেটআপ করেছি, যা একটি ইউনিভার্সাল রানটাইম সরবরাহ করে যা Python3, .NET, Node.js এবং Java ডেভেলপমেন্ট সাপোর্ট করে। সংশ্লিষ্ট কনফিগারেশন `devcontainer.json` ফাইলে সংজ্ঞায়িত, যা এই রিপোজিটরির মূল `.devcontainer/` ফোল্ডারে অবস্থিত। - -ডেভ কন্টেইনার চালু করতে, এটি [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (ক্লাউড-হোস্টেড রানটাইমের জন্য) অথবা [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (লোকাল ডিভাইস-হোস্টেড রানটাইমের জন্য) এ চালান। VS Code এর মধ্যে ডেভ কন্টেইনার কিভাবে কাজ করে সে সম্পর্কে আরও বিস্তারিত জানতে [এই ডকুমেন্টেশনটি](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) পড়ুন। - -> [!TIP] -> দ্রুত শুরু করার জন্য আমরা GitHub Codespaces ব্যবহারের পরামর্শ দিই, যা ব্যক্তিগত অ্যাকাউন্টের জন্য একটি উদার [ফ্রি ব্যবহার কোটা](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) প্রদান করে। আপনার কোটা সর্বোচ্চ ব্যবহারের জন্য নিষ্ক্রিয় codespaces বন্ধ বা মুছে ফেলার জন্য [টাইমআউট কনফিগার](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) করুন। - - -## ১. অ্যাসাইনমেন্ট সম্পাদন - -প্রতিটি লেসনে _ঐচ্ছিক_ অ্যাসাইনমেন্ট থাকবে যা এক বা একাধিক প্রোগ্রামিং ভাষায় দেওয়া হতে পারে, যেমন: Python, .NET/C#, Java এবং JavaScript/TypeScript। এই অংশে সেই অ্যাসাইনমেন্টগুলো সম্পাদনের জন্য সাধারণ নির্দেশনা দেওয়া হয়েছে। - -### ১.১ Python অ্যাসাইনমেন্ট - -Python অ্যাসাইনমেন্টগুলো অ্যাপ্লিকেশন (`.py` ফাইল) অথবা Jupyter নোটবুক (`.ipynb` ফাইল) হিসেবে দেওয়া হয়। -- নোটবুক চালানোর জন্য, Visual Studio Code এ এটি খুলুন, তারপর উপরের ডানদিকে থাকা _Select Kernel_ এ ক্লিক করে ডিফল্ট Python 3 অপশনটি নির্বাচন করুন। এখন আপনি _Run All_ ক্লিক করে নোটবুকটি চালাতে পারবেন। -- কমান্ড-লাইন থেকে Python অ্যাপ্লিকেশন চালানোর জন্য, অ্যাসাইনমেন্ট-নির্দিষ্ট নির্দেশনা অনুসরণ করুন যাতে সঠিক ফাইল নির্বাচন এবং প্রয়োজনীয় আর্গুমেন্ট প্রদান নিশ্চিত হয়। - -## ২. প্রোভাইডার কনফিগারেশন - -অ্যাসাইনমেন্টগুলো **সম্ভবত** এক বা একাধিক বড় ভাষা মডেল (LLM) ডিপ্লয়মেন্টের বিরুদ্ধে কাজ করার জন্য OpenAI, Azure বা Hugging Face এর মতো সাপোর্টেড সার্ভিস প্রোভাইডারের মাধ্যমে সেটআপ করা হতে পারে। এরা একটি _হোস্টেড এন্ডপয়েন্ট_ (API) প্রদান করে যা আমরা সঠিক ক্রেডেনশিয়াল (API কী বা টোকেন) দিয়ে প্রোগ্রাম্যাটিক্যালি অ্যাক্সেস করতে পারি। এই কোর্সে আমরা নিম্নলিখিত প্রোভাইডারগুলো আলোচনা করব: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) বিভিন্ন মডেল সহ, যার মধ্যে মূল GPT সিরিজ অন্তর্ভুক্ত। - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) OpenAI মডেলগুলোর জন্য এন্টারপ্রাইজ রেডিনেস ফোকাস সহ। - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) ওপেন-সোর্স মডেল এবং ইনফারেন্স সার্ভারের জন্য। - -**এই অনুশীলনগুলোর জন্য আপনাকে আপনার নিজস্ব অ্যাকাউন্ট ব্যবহার করতে হবে**। অ্যাসাইনমেন্টগুলো ঐচ্ছিক, তাই আপনি আপনার আগ্রহ অনুযায়ী এক, সব অথবা কোন প্রোভাইডারই সেটআপ করতে পারেন না। সাইনআপের জন্য কিছু নির্দেশনা: - -| সাইনআপ | খরচ | API কী | প্লেগ্রাউন্ড | মন্তব্য | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst)| [মূল্য নির্ধারণ](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst)| [প্রজেক্ট ভিত্তিক](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [নো-কোড, ওয়েব](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | একাধিক মডেল উপলব্ধ | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst)| [মূল্য নির্ধারণ](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst)| [SDK দ্রুত শুরু](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst)| [স্টুডিও দ্রুত শুরু](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [অ্যাক্সেসের জন্য আগেই আবেদন করতে হবে](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst)| -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [মূল্য নির্ধারণ](https://huggingface.co/pricing) | [অ্যাক্সেস টোকেন](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst)| [Hugging Chat এর মডেল সীমিত](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -নিম্নলিখিত নির্দেশনা অনুসরণ করে এই রিপোজিটরিটি বিভিন্ন প্রোভাইডারের জন্য _কনফিগার_ করুন। নির্দিষ্ট প্রোভাইডার প্রয়োজন এমন অ্যাসাইনমেন্টের ফাইলনেমে নিম্নলিখিত ট্যাগগুলোর একটি থাকবে: - - `aoai` - Azure OpenAI এন্ডপয়েন্ট, কী প্রয়োজন - - `oai` - OpenAI এন্ডপয়েন্ট, কী প্রয়োজন - - `hf` - Hugging Face টোকেন প্রয়োজন - -আপনি এক, কোনোটাই বা সব প্রোভাইডার কনফিগার করতে পারেন। সংশ্লিষ্ট অ্যাসাইনমেন্টগুলো অনুপস্থিত ক্রেডেনশিয়ালে ত্রুটি দেখাবে। - -### ২.১ `.env` ফাইল তৈরি করুন - -আমরা ধরে নিচ্ছি আপনি উপরের নির্দেশনা পড়ে প্রাসঙ্গিক প্রোভাইডারে সাইন আপ করেছেন এবং প্রয়োজনীয় অথেনটিকেশন ক্রেডেনশিয়াল (API_KEY বা টোকেন) পেয়েছেন। Azure OpenAI এর ক্ষেত্রে, আমরা ধরে নিচ্ছি আপনার কাছে Azure OpenAI সার্ভিসের একটি বৈধ ডিপ্লয়মেন্ট (এন্ডপয়েন্ট) আছে, যেখানে অন্তত একটি GPT মডেল চ্যাট কমপ্লিশনের জন্য ডিপ্লয় করা হয়েছে। - -পরবর্তী ধাপ হলো আপনার **লোকাল এনভায়রনমেন্ট ভেরিয়েবলগুলো** নিম্নরূপ কনফিগার করা: - -1. মূল ফোল্ডারে `.env.copy` নামে একটি ফাইল খুঁজুন, যার মধ্যে নিম্নরূপ বিষয়বস্তু থাকবে: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. নিচের কমান্ড ব্যবহার করে ফাইলটি `.env` নামে কপি করুন। এই ফাইলটি _gitignore_ করা আছে, তাই গোপনীয়তা রক্ষা পাবে। - - ```bash - cp .env.copy .env - ``` - -3. পরবর্তী অংশে বর্ণিত অনুযায়ী মানগুলো পূরণ করুন (`=` এর ডান পাশে প্লেসহোল্ডারগুলো প্রতিস্থাপন করুন)। - -3. (ঐচ্ছিক) আপনি যদি GitHub Codespaces ব্যবহার করেন, তাহলে এই রিপোজিটরির সাথে যুক্ত _Codespaces secrets_ হিসেবে এনভায়রনমেন্ট ভেরিয়েবলগুলো সংরক্ষণ করার অপশন পাবেন। সেই ক্ষেত্রে, আপনাকে লোকাল `.env` ফাইল সেটআপ করতে হবে না। **তবে, এই অপশন শুধুমাত্র GitHub Codespaces ব্যবহারের ক্ষেত্রে কাজ করে।** Docker Desktop ব্যবহার করলে আপনাকে `.env` ফাইল সেটআপ করতে হবে। - - -### ২.২ `.env` ফাইল পূরণ করুন - -চলুন ভেরিয়েবল নামগুলো দেখে নিই এবং বুঝি এগুলো কী বোঝায়: - -| ভেরিয়েবল | বর্ণনা | -| :--- | :--- | -| HUGGING_FACE_API_KEY | এটি আপনার প্রোফাইলে সেট করা ইউজার অ্যাক্সেস টোকেন | -| OPENAI_API_KEY | Azure OpenAI ব্যতীত সার্ভিস ব্যবহারের জন্য অথরাইজেশন কী | -| AZURE_OPENAI_API_KEY | Azure OpenAI সার্ভিস ব্যবহারের জন্য অথরাইজেশন কী | -| AZURE_OPENAI_ENDPOINT | Azure OpenAI রিসোর্সের ডিপ্লয় করা এন্ডপয়েন্ট | -| AZURE_OPENAI_DEPLOYMENT | _টেক্সট জেনারেশন_ মডেল ডিপ্লয়মেন্ট এন্ডপয়েন্ট | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | _টেক্সট এমবেডিং_ মডেল ডিপ্লয়মেন্ট এন্ডপয়েন্ট | -| | | - -দ্রষ্টব্য: শেষ দুইটি Azure OpenAI ভেরিয়েবল যথাক্রমে চ্যাট কমপ্লিশন (টেক্সট জেনারেশন) এবং ভেক্টর সার্চ (এম্বেডিংস) এর জন্য ডিফল্ট মডেল নির্দেশ করে। এগুলো সেটআপের নির্দেশনা সংশ্লিষ্ট অ্যাসাইনমেন্টে দেওয়া হবে। - - -### ২.৩ Azure কনফিগার করুন: পোর্টাল থেকে - -Azure OpenAI এন্ডপয়েন্ট এবং কী এর মান [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) এ পাওয়া যাবে, তাই সেখান থেকে শুরু করা যাক। - -1. [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) এ যান -1. সাইডবারে (বাম মেনু) **Keys and Endpoint** অপশনে ক্লিক করুন। -1. **Show Keys** ক্লিক করুন - আপনি KEY 1, KEY 2 এবং Endpoint দেখতে পাবেন। -1. AZURE_OPENAI_API_KEY এর জন্য KEY 1 এর মান ব্যবহার করুন। -1. AZURE_OPENAI_ENDPOINT এর জন্য Endpoint এর মান ব্যবহার করুন। - -এরপর, আমাদের ডিপ্লয় করা নির্দিষ্ট মডেলগুলোর এন্ডপয়েন্ট দরকার। - -1. Azure OpenAI রিসোর্সের সাইডবারে (বাম মেনু) **Model deployments** অপশনে ক্লিক করুন। -1. গন্তব্য পৃষ্ঠায় **Manage Deployments** ক্লিক করুন। - -এটি আপনাকে Azure OpenAI Studio ওয়েবসাইটে নিয়ে যাবে, যেখানে আমরা নিচের মতো মানগুলো পাবো। - - -### ২.৪ Azure কনফিগার করুন: স্টুডিও থেকে - -1. উপরে বর্ণিত রিসোর্স থেকে [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) তে যান। -1. ডিপ্লয় করা মডেলগুলো দেখতে বাম সাইডবারে **Deployments** ট্যাবে ক্লিক করুন। -1. আপনার কাঙ্ক্ষিত মডেল ডিপ্লয় করা না থাকলে, **Create new deployment** ব্যবহার করে ডিপ্লয় করুন। -1. একটি _text-generation_ মডেল প্রয়োজন - আমরা সুপারিশ করি: **gpt-35-turbo** -1. একটি _text-embedding_ মডেল প্রয়োজন - আমরা সুপারিশ করি **text-embedding-ada-002** - -এখন এনভায়রনমেন্ট ভেরিয়েবলগুলো আপডেট করুন যাতে _Deployment name_ প্রতিফলিত হয়। সাধারণত এটি মডেলের নামের সমান হবে যদি আপনি স্পষ্টভাবে পরিবর্তন না করে থাকেন। উদাহরণস্বরূপ, আপনার `.env` ফাইলে থাকতে পারে: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**ফাইল সম্পাদনার পর .env ফাইলটি সেভ করতে ভুলবেন না**। এরপর আপনি ফাইল থেকে বের হয়ে নোটবুক চালানোর নির্দেশনায় ফিরে যেতে পারেন। - - -### ২.৫ OpenAI কনফিগার করুন: প্রোফাইল থেকে - -আপনার OpenAI API কী আপনার [OpenAI অ্যাকাউন্ট](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) এ পাওয়া যাবে। যদি না থাকে, তাহলে একটি অ্যাকাউন্ট তৈরি করে API কী তৈরি করুন। কী পাওয়ার পর `.env` ফাইলে `OPENAI_API_KEY` ভেরিয়েবলে এটি ব্যবহার করুন। - - -### ২.৬ Hugging Face কনফিগার করুন: প্রোফাইল থেকে - -আপনার Hugging Face টোকেন আপনার প্রোফাইলে [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst) এর অধীনে পাওয়া যাবে। এগুলো পাবলিকলি শেয়ার বা পোস্ট করবেন না। পরিবর্তে, এই প্রকল্পের জন্য একটি নতুন টোকেন তৈরি করুন এবং `.env` ফাইলে `HUGGING_FACE_API_KEY` ভেরিয়েবলে কপি করুন। _দ্রষ্টব্য:_ এটি প্রযুক্তিগতভাবে API কী নয়, তবে অথেনটিকেশনের জন্য ব্যবহৃত হয়, তাই সামঞ্জস্যের জন্য এই নামকরণ রাখা হয়েছে। - -**অস্বীকৃতি**: -এই নথিটি AI অনুবাদ সেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনূদিত হয়েছে। আমরা যথাসাধ্য সঠিকতার চেষ্টা করি, তবে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল নথিটি তার নিজস্ব ভাষায়ই কর্তৃত্বপূর্ণ উৎস হিসেবে বিবেচিত হওয়া উচিত। গুরুত্বপূর্ণ তথ্যের জন্য পেশাদার মানব অনুবাদ গ্রহণ করার পরামর্শ দেওয়া হয়। এই অনুবাদের ব্যবহারে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/04-prompt-engineering-fundamentals/README.md b/translations/bn/04-prompt-engineering-fundamentals/README.md index 72e447421..0fbd28c83 100644 --- a/translations/bn/04-prompt-engineering-fundamentals/README.md +++ b/translations/bn/04-prompt-engineering-fundamentals/README.md @@ -1,453 +1,15 @@ - -# Prompt Engineering Fundamentals - -[![Prompt Engineering Fundamentals](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.bn.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## পরিচিতি -এই মডিউলটি জেনারেটিভ AI মডেলগুলিতে কার্যকর প্রম্পট তৈরির জন্য প্রয়োজনীয় ধারণা এবং কৌশলগুলি কভার করে। আপনি যেভাবে একটি LLM-এ প্রম্পট লেখেন তা গুরুত্বপূর্ণ। যত্নসহকারে তৈরি করা প্রম্পট আরও ভালো মানের প্রতিক্রিয়া অর্জন করতে পারে। কিন্তু _prompt_ এবং _prompt engineering_ এর মতো শব্দগুলোর অর্থ ঠিক কী? এবং আমি কিভাবে LLM-এ পাঠানো প্রম্পট _input_ উন্নত করতে পারি? এই অধ্যায় এবং পরবর্তী অধ্যায়ে আমরা এই প্রশ্নগুলোর উত্তর খুঁজে দেখব। - -_জেনারেটিভ AI_ ব্যবহারকারীর অনুরোধের প্রতিক্রিয়ায় নতুন বিষয়বস্তু (যেমন, টেক্সট, ছবি, অডিও, কোড ইত্যাদি) তৈরি করতে সক্ষম। এটি OpenAI-এর GPT ("Generative Pre-trained Transformer") সিরিজের মতো _Large Language Models_ ব্যবহার করে যা প্রাকৃতিক ভাষা এবং কোড ব্যবহারের জন্য প্রশিক্ষিত। - -ব্যবহারকারীরা এখন চ্যাটের মতো পরিচিত পদ্ধতিতে এই মডেলগুলোর সাথে যোগাযোগ করতে পারে, কোনো প্রযুক্তিগত দক্ষতা বা প্রশিক্ষণের প্রয়োজন ছাড়াই। মডেলগুলো _prompt-based_ — ব্যবহারকারীরা একটি টেক্সট ইনপুট (প্রম্পট) পাঠায় এবং AI থেকে প্রতিক্রিয়া (completion) পায়। তারা তারপর "AI-এর সাথে চ্যাট" করতে পারে, একাধিক ধাপে কথোপকথন চালিয়ে প্রম্পট উন্নত করে যতক্ষণ না প্রতিক্রিয়া তাদের প্রত্যাশার সাথে মেলে। - -"Prompts" এখন জেনারেটিভ AI অ্যাপ্লিকেশনগুলোর প্রধান _প্রোগ্রামিং ইন্টারফেস_ হয়ে উঠেছে, যা মডেলগুলোকে নির্দেশ দেয় কী করতে হবে এবং ফেরত আসা প্রতিক্রিয়ার গুণমান প্রভাবিত করে। "Prompt Engineering" একটি দ্রুত বর্ধনশীল গবেষণার ক্ষেত্র যা প্রম্পট ডিজাইন এবং অপ্টিমাইজেশনে মনোযোগ দেয় যাতে বড় পরিসরে ধারাবাহিক এবং মানসম্পন্ন প্রতিক্রিয়া পাওয়া যায়। - -## শেখার লক্ষ্যসমূহ - -এই পাঠে, আমরা শিখব Prompt Engineering কী, কেন এটি গুরুত্বপূর্ণ, এবং কিভাবে নির্দিষ্ট মডেল ও অ্যাপ্লিকেশন উদ্দেশ্যের জন্য আরও কার্যকর প্রম্পট তৈরি করা যায়। আমরা প্রম্পট ইঞ্জিনিয়ারিংয়ের মূল ধারণা এবং সেরা অনুশীলনগুলো বুঝব — এবং একটি ইন্টারেক্টিভ Jupyter Notebooks "sandbox" পরিবেশ সম্পর্কে জানব যেখানে আমরা এই ধারণাগুলো বাস্তব উদাহরণে দেখতে পারব। - -এই পাঠের শেষে আমরা সক্ষম হব: - -1. ব্যাখ্যা করতে পারব Prompt Engineering কী এবং কেন এটি গুরুত্বপূর্ণ। -2. প্রম্পটের উপাদানগুলো বর্ণনা করতে পারব এবং সেগুলো কীভাবে ব্যবহৃত হয়। -3. প্রম্পট ইঞ্জিনিয়ারিংয়ের সেরা অনুশীলন এবং কৌশল শিখতে পারব। -4. শেখা কৌশলগুলো বাস্তব উদাহরণে প্রয়োগ করতে পারব, OpenAI endpoint ব্যবহার করে। - -## মূল শব্দসমূহ - -Prompt Engineering: AI মডেলগুলোকে কাঙ্ক্ষিত আউটপুট তৈরি করতে গাইড করার জন্য ইনপুট ডিজাইন এবং পরিমার্জনের প্রক্রিয়া। -Tokenization: টেক্সটকে ছোট ইউনিটে (টোকেন) রূপান্তর করার প্রক্রিয়া, যা মডেল বুঝতে এবং প্রক্রিয়া করতে পারে। -Instruction-Tuned LLMs: বিশেষ নির্দেশনা দিয়ে ফাইন-টিউন করা বড় ভাষা মডেল (LLMs), যা তাদের প্রতিক্রিয়ার সঠিকতা এবং প্রাসঙ্গিকতা উন্নত করে। - -## শেখার স্যান্ডবক্স - -প্রম্পট ইঞ্জিনিয়ারিং এখনো বিজ্ঞান থেকে বেশি একটি শিল্প। এর জন্য আমাদের অন্তর্দৃষ্টি উন্নত করার সেরা উপায় হলো _অধিক অনুশীলন_ এবং একটি ট্রায়াল-এন্ড-এরর পদ্ধতি গ্রহণ করা, যা অ্যাপ্লিকেশন ডোমেইন দক্ষতা, সুপারিশকৃত কৌশল এবং মডেল-নির্দিষ্ট অপ্টিমাইজেশনের সংমিশ্রণ। - -এই পাঠের সাথে সংযুক্ত Jupyter Notebook একটি _sandbox_ পরিবেশ প্রদান করে যেখানে আপনি শেখা বিষয়গুলো চেষ্টা করতে পারেন — চলতে চলতে বা পাঠের শেষে কোড চ্যালেঞ্জের অংশ হিসেবে। অনুশীলনগুলো সম্পাদনের জন্য আপনার প্রয়োজন হবে: - -1. **একটি Azure OpenAI API কী** — একটি ডিপ্লয় করা LLM-এর সার্ভিস এন্ডপয়েন্ট। -2. **একটি Python Runtime** — যেখানে Notebook চালানো যাবে। -3. **লোকাল Env Variables** — _[SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) ধাপগুলো এখনই সম্পন্ন করুন প্রস্তুতির জন্য_। - -নোটবুকটি _শুরু করার_ অনুশীলন নিয়ে আসে — তবে আপনাকে উৎসাহিত করা হয় আপনার নিজের _Markdown_ (বর্ণনা) এবং _Code_ (প্রম্পট অনুরোধ) সেকশন যোগ করতে, আরও উদাহরণ বা ধারণা পরীক্ষা করার জন্য — এবং প্রম্পট ডিজাইনের জন্য আপনার অন্তর্দৃষ্টি গড়ে তুলতে। - -## চিত্রিত গাইড - -এই পাঠে কী কী বিষয় কভার করা হয়েছে তার একটি বড় চিত্র পেতে চান? এই চিত্রিত গাইডটি দেখুন, যা আপনাকে প্রধান বিষয়গুলো এবং প্রতিটি বিষয়ে চিন্তা করার জন্য মূল বিষয়বস্তু দেয়। পাঠের রোডম্যাপ আপনাকে মূল ধারণা এবং চ্যালেঞ্জগুলো বুঝতে সাহায্য করবে এবং প্রাসঙ্গিক প্রম্পট ইঞ্জিনিয়ারিং কৌশল ও সেরা অনুশীলন দিয়ে সেগুলো মোকাবেলা করতে শেখাবে। লক্ষ্য করুন, এই গাইডের "Advanced Techniques" অংশটি এই পাঠক্রমের _পরবর্তী_ অধ্যায়ে আলোচনা করা হয়েছে। - -![Illustrated Guide to Prompt Engineering](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.bn.png) - -## আমাদের স্টার্টআপ - -এখন, আসুন কথা বলি কিভাবে _এই বিষয়_ আমাদের স্টার্টআপ মিশনের সাথে সম্পর্কিত, যা [শিক্ষায় AI উদ্ভাবন নিয়ে আসার](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst) লক্ষ্যে কাজ করছে। আমরা _ব্যক্তিগতকৃত শেখার_ AI-চালিত অ্যাপ্লিকেশন তৈরি করতে চাই — তাই ভাবুন আমাদের অ্যাপ্লিকেশনের বিভিন্ন ব্যবহারকারী কীভাবে প্রম্পট "ডিজাইন" করতে পারে: - -- **অ্যাডমিনিস্ট্রেটররা** AI-কে অনুরোধ করতে পারেন _পাঠ্যক্রমের তথ্য বিশ্লেষণ করে কাভারেজের ফাঁক সনাক্ত করতে_। AI ফলাফলগুলো সারাংশ করতে পারে বা কোড দিয়ে ভিজ্যুয়ালাইজ করতে পারে। -- **শিক্ষকরা** AI-কে অনুরোধ করতে পারেন _লক্ষ্য শ্রোতা এবং বিষয়ের জন্য একটি পাঠ পরিকল্পনা তৈরি করতে_। AI নির্দিষ্ট ফরম্যাটে ব্যক্তিগতকৃত পরিকল্পনা তৈরি করতে পারে। -- **ছাত্ররা** AI-কে অনুরোধ করতে পারেন _কঠিন বিষয়ে টিউটর করার জন্য_। AI এখন ছাত্রদের তাদের স্তরের জন্য উপযুক্ত পাঠ, টিপস ও উদাহরণ দিয়ে গাইড করতে পারে। - -এগুলো কেবল শুরুর কথা। [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) দেখুন — একটি ওপেন-সোর্স প্রম্পট লাইব্রেরি যা শিক্ষা বিশেষজ্ঞরা তৈরি করেছেন — যাতে সম্ভাবনার বিস্তৃত ধারণা পাওয়া যায়! _স্যান্ডবক্সে বা OpenAI Playground-এ কিছু প্রম্পট চালিয়ে দেখুন কী হয়!_ - - - -## Prompt Engineering কী? - -আমরা এই পাঠ শুরু করেছি **Prompt Engineering** কে সংজ্ঞায়িত করে, যা হলো একটি প্রক্রিয়া যেখানে টেক্সট ইনপুট (প্রম্পট) ডিজাইন এবং অপ্টিমাইজ করা হয় যাতে নির্দিষ্ট অ্যাপ্লিকেশন উদ্দেশ্য এবং মডেলের জন্য ধারাবাহিক ও মানসম্পন্ন প্রতিক্রিয়া (completion) পাওয়া যায়। আমরা এটিকে দুই ধাপের প্রক্রিয়া হিসেবে ভাবতে পারি: - -- নির্দিষ্ট মডেল এবং উদ্দেশ্যের জন্য প্রাথমিক প্রম্পট _ডিজাইন_ করা -- প্রতিক্রিয়ার গুণমান উন্নত করতে প্রম্পট _পরিমার্জন_ করা - -এটি অবশ্যই একটি ট্রায়াল-এন্ড-এরর প্রক্রিয়া, যা ব্যবহারকারীর অন্তর্দৃষ্টি এবং প্রচেষ্টা প্রয়োজন সেরা ফলাফল পেতে। তাহলে কেন এটি গুরুত্বপূর্ণ? এই প্রশ্নের উত্তর দিতে আমাদের প্রথমে তিনটি ধারণা বুঝতে হবে: - -- _Tokenization_ = মডেল কীভাবে প্রম্পট "দেখে" -- _Base LLMs_ = ফাউন্ডেশন মডেল কীভাবে প্রম্পট "প্রক্রিয়া করে" -- _Instruction-Tuned LLMs_ = মডেল এখন কীভাবে "কাজ" দেখতে পারে - -### Tokenization - -একটি LLM প্রম্পটগুলোকে _টোকেনের সিকোয়েন্স_ হিসেবে দেখে, যেখানে বিভিন্ন মডেল (বা একই মডেলের বিভিন্ন সংস্করণ) একই প্রম্পটকে ভিন্নভাবে টোকেনাইজ করতে পারে। যেহেতু LLM গুলো টোকেনের উপর প্রশিক্ষিত (কাঁচা টেক্সট নয়), প্রম্পট কিভাবে টোকেনাইজ হয় তা সরাসরি তৈরি হওয়া প্রতিক্রিয়ার গুণমান প্রভাবিত করে। - -টোকেনাইজেশন কিভাবে কাজ করে তা বোঝার জন্য, নিচের মতো টুল ব্যবহার করুন [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst)। আপনার প্রম্পট কপি করে পেস্ট করুন — এবং দেখুন কীভাবে এটি টোকেনে রূপান্তরিত হয়, বিশেষ করে স্পেস এবং পাংচুয়েশন কিভাবে হ্যান্ডেল হয় তা লক্ষ্য করুন। মনে রাখবেন, এই উদাহরণটি একটি পুরনো LLM (GPT-3) দেখাচ্ছে — তাই নতুন মডেল দিয়ে চেষ্টা করলে ফলাফল ভিন্ন হতে পারে। - -![Tokenization](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.bn.png) - -### ধারণা: ফাউন্ডেশন মডেল - -একবার প্রম্পট টোকেনাইজ হয়ে গেলে, ["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (অথবা ফাউন্ডেশন মডেল) এর প্রধান কাজ হলো ওই সিকোয়েন্সের পরবর্তী টোকেন পূর্বাভাস দেওয়া। যেহেতু LLM গুলো বিশাল টেক্সট ডেটাসেটে প্রশিক্ষিত, তারা টোকেনগুলোর মধ্যে পরিসংখ্যানগত সম্পর্ক ভালোভাবে বুঝতে পারে এবং আত্মবিশ্বাসের সাথে পূর্বাভাস দিতে পারে। তারা প্রম্পট বা টোকেনের _অর্থ_ বুঝতে পারে না; তারা শুধু একটি প্যাটার্ন দেখে যা তারা তাদের পরবর্তী পূর্বাভাস দিয়ে "সম্পূর্ণ" করতে পারে। তারা ব্যবহারকারীর হস্তক্ষেপ বা পূর্বনির্ধারিত শর্তে থামানো পর্যন্ত সিকোয়েন্স পূর্বাভাস দিতে পারে। - -প্রম্পট-ভিত্তিক কমপ্লিশন কিভাবে কাজ করে দেখতে চান? উপরের প্রম্পটটি Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) এ ডিফল্ট সেটিংস নিয়ে প্রবেশ করান। সিস্টেম প্রম্পটকে তথ্যের অনুরোধ হিসেবে বিবেচনা করে — তাই আপনি এমন একটি কমপ্লিশন দেখতে পাবেন যা এই প্রসঙ্গ পূরণ করে। - -কিন্তু যদি ব্যবহারকারী কিছু নির্দিষ্ট দেখতে চায় যা কোনো শর্ত বা কাজের উদ্দেশ্য পূরণ করে? তখন _instruction-tuned_ LLM গুলো কাজে আসে। - -![Base LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.bn.png) - -### ধারণা: Instruction Tuned LLMs - -একটি [Instruction Tuned LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) ফাউন্ডেশন মডেল থেকে শুরু করে সেটিকে উদাহরণ বা ইনপুট/আউটপুট জোড়া (যেমন, বহু-ধাপের "মেসেজ") দিয়ে ফাইন-টিউন করে, যা স্পষ্ট নির্দেশনা থাকতে পারে — এবং AI এর প্রতিক্রিয়া সেই নির্দেশনা অনুসরণ করার চেষ্টা করে। - -এটি Reinforcement Learning with Human Feedback (RLHF) এর মতো কৌশল ব্যবহার করে, যা মডেলকে _নির্দেশনা অনুসরণ_ এবং _প্রতিক্রিয়া থেকে শেখার_ জন্য প্রশিক্ষিত করে, যাতে এটি ব্যবহারিক অ্যাপ্লিকেশনের জন্য আরও উপযুক্ত এবং ব্যবহারকারীর উদ্দেশ্যের সাথে প্রাসঙ্গিক প্রতিক্রিয়া তৈরি করে। - -চলুন চেষ্টা করি — উপরের প্রম্পটটি আবার দেখুন, কিন্তু এখন _system message_ পরিবর্তন করে নিম্নলিখিত নির্দেশনা দিন: - -> _আপনাকে দেওয়া বিষয়বস্তু দ্বিতীয় শ্রেণির ছাত্রের জন্য সারাংশ করুন। ফলাফলটি ৩-৫টি বুলেট পয়েন্টসহ একটি প্যারাগ্রাফে রাখুন।_ - -দেখুন কীভাবে ফলাফল এখন কাঙ্ক্ষিত লক্ষ্য এবং ফরম্যাট প্রতিফলিত করছে? একজন শিক্ষক এখন সরাসরি এই প্রতিক্রিয়া তাদের ক্লাসের স্লাইডে ব্যবহার করতে পারেন। - -![Instruction Tuned LLM Chat Completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.bn.png) - -## কেন Prompt Engineering প্রয়োজন? - -এখন যেহেতু আমরা জানি কিভাবে LLM গুলো প্রম্পট প্রক্রিয়া করে, আসুন বলি কেন প্রম্পট ইঞ্জিনিয়ারিং দরকার। এর কারণ হলো বর্তমান LLM গুলো কিছু চ্যালেঞ্জ নিয়ে আসে যা _নির্ভরযোগ্য এবং ধারাবাহিক কমপ্লিশন_ পাওয়া কঠিন করে তোলে যদি প্রম্পট নির্মাণ এবং অপ্টিমাইজেশনে যথেষ্ট প্রচেষ্টা না দেওয়া হয়। উদাহরণস্বরূপ: - -1. **মডেলের প্রতিক্রিয়া স্টোকাস্টিক।** একই প্রম্পট বিভিন্ন মডেল বা মডেলের সংস্করণে ভিন্ন প্রতিক্রিয়া দিতে পারে। এমনকি একই মডেলেও বিভিন্ন সময়ে ভিন্ন ফলাফল আসতে পারে। _প্রম্পট ইঞ্জিনিয়ারিং কৌশলগুলো এই পার্থক্যগুলো কমাতে সাহায্য করে ভালো গার্ডরেল প্রদান করে_। - -2. **মডেলগুলো প্রতিক্রিয়া গঠন করতে পারে।** মডেলগুলো _বড় কিন্তু সীমিত_ ডেটাসেটে প্রশিক্ষিত, যার মানে তারা প্রশিক্ষণ পরিধির বাইরে থাকা ধারণাগুলো সম্পর্কে জানে না। ফলে তারা এমন কমপ্লিশন তৈরি করতে পারে যা ভুল, কাল্পনিক বা পরিচিত তথ্যের সাথে সরাসরি বিরোধপূর্ণ। _প্রম্পট ইঞ্জিনিয়ারিং ব্যবহারকারীদের এমন গঠনগুলো চিহ্নিত এবং কমাতে সাহায্য করে, যেমন AI-কে উত্স বা যুক্তি চাওয়া_। - -3. **মডেলের ক্ষমতা ভিন্ন হবে।** নতুন মডেল বা মডেল প্রজন্মগুলো আরও সমৃদ্ধ ক্ষমতা নিয়ে আসে, কিন্তু সাথে আনতে পারে আলাদা বৈশিষ্ট্য এবং খরচ ও জটিলতার ট্রেডঅফ। _প্রম্পট ইঞ্জিনিয়ারিং আমাদের সেরা অনুশীলন এবং ওয়ার্কফ্লো তৈরি করতে সাহায্য করে যা পার্থক্যগুলো abstract করে এবং মডেল-নির্দিষ্ট প্রয়োজনীয়তার সাথে মানিয়ে চলে, বড় পরিসরে সহজে_। - -চলুন OpenAI বা Azure OpenAI Playground-এ এটি পরীক্ষা করি: - -- একই প্রম্পট বিভিন্ন LLM ডিপ্লয়মেন্টে (যেমন, OpenAI, Azure OpenAI, Hugging Face) ব্যবহার করুন — পার্থক্য দেখেছেন? -- একই প্রম্পট বারবার একই LLM ডিপ্লয়মেন্টে (যেমন, Azure OpenAI playground) ব্যবহার করুন — পার্থক্যগুলো কেমন ছিল? - -### গঠন উদাহরণ - -এই কোর্সে, আমরা **"fabrication"** শব্দটি ব্যবহার করি যখন LLM গুলো কখনো কখনো তাদের প্রশিক্ষণের সীমাবদ্ধতা বা অন্যান্য কারণে তথ্যগতভাবে ভুল তথ্য তৈরি করে। আপনি হয়তো এটি _"hallucinations"_ নামে শুনে থাকবেন জনপ্রিয় আর্টিকেল বা গবেষণাপত্রে। তবে আমরা দৃঢ়ভাবে পরামর্শ দিই _"fabrication"_ শব্দটি ব্যবহার করতে, যাতে আমরা ভুলবশত যন্ত্রচালিত ফলাফলের জন্য মানবসদৃশ বৈশিষ্ট্য আরোপ না করি। এটি [Responsible AI নির্দেশিকা](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) এর সাথে সামঞ্জস্যপূর্ণ, যা এমন শব্দগুলো বাদ দেয় যা কিছু প্রসঙ্গে আপত্তিকর বা অপ্রাসঙ্গিক হতে পারে। - -গঠন কিভাবে কাজ করে তা বোঝার জন্য একটি প্রম্পট ভাবুন যা AI-কে এমন একটি অস্থিতিশীল বিষয়ের জন্য বিষয়বস্তু তৈরি করতে বলে (যা প্রশিক্ষণ ডেটাসেটে নেই)। উদাহরণস্বরূপ — আমি এই প্রম্পটটি চেষ্টা করেছিলাম: -# 2076 সালের মার্টিয়ান যুদ্ধের পাঠ পরিকল্পনা - -## পাঠের উদ্দেশ্য -শিক্ষার্থীরা 2076 সালের মার্টিয়ান যুদ্ধের কারণ, প্রধান ঘটনা এবং এর প্রভাব সম্পর্কে জানতে পারবে। - -## পাঠের সময়কাল -৫০ মিনিট - -## পাঠের উপকরণ -- পাঠ্যপুস্তক -- প্রেজেন্টেশন স্লাইড -- ভিডিও ক্লিপ (যুদ্ধের সংক্ষিপ্তসার) -- নোটবুক এবং কলম - -## পাঠের ধাপসমূহ - -### ১. ভূমিকা (১০ মিনিট) -- মার্টিয়ান যুদ্ধের পটভূমি সংক্ষেপে আলোচনা করুন। -- শিক্ষার্থীদের মধ্যে যুদ্ধ সম্পর্কে আগ্রহ সৃষ্টি করতে কিছু প্রশ্ন করুন, যেমন: "আপনারা কি মনে করেন কেন মার্সে মানুষ বসতি স্থাপন করতে চেয়েছিল?" - -### ২. প্রধান ঘটনা (২০ মিনিট) -- যুদ্ধের শুরু, প্রধান সংঘর্ষ এবং গুরুত্বপূর্ণ মাইলফলকগুলি ব্যাখ্যা করুন। -- ভিডিও ক্লিপ দেখান যা যুদ্ধের মূল মুহূর্তগুলো তুলে ধরে। -- শিক্ষার্থীদের ছোট ছোট গ্রুপে ভাগ করে প্রতিটি গ্রুপকে একটি নির্দিষ্ট ঘটনা নিয়ে আলোচনা করতে বলুন। - -### ৩. প্রভাব ও ফলাফল (১০ মিনিট) -- যুদ্ধের পর মার্টিয়ান সমাজ এবং পৃথিবীর উপর এর প্রভাব আলোচনা করুন। -- শিক্ষার্থীদের প্রশ্ন করতে উৎসাহিত করুন এবং তাদের মতামত শোনুন। - -### ৪. সারাংশ ও মূল্যায়ন (১০ মিনিট) -- পাঠের মূল বিষয়গুলো পুনরায় সংক্ষেপে তুলে ধরুন। -- একটি ছোট কুইজ বা প্রশ্নোত্তর সেশন পরিচালনা করুন যাতে শিক্ষার্থীরা তাদের শেখা বিষয়গুলো যাচাই করতে পারে। - -## বাড়ির কাজ -- শিক্ষার্থীদের একটি প্রবন্ধ লিখতে বলুন যেখানে তারা মার্টিয়ান যুদ্ধের একটি গুরুত্বপূর্ণ দিক বিশ্লেষণ করবে। - -## অতিরিক্ত টিপস -- পাঠ চলাকালীন শিক্ষার্থীদের সক্রিয় অংশগ্রহণ নিশ্চিত করুন। -- বিভিন্ন মিডিয়া ব্যবহার করে পাঠকে আরও আকর্ষণীয় করুন। -একটি ওয়েব সার্চ আমাকে দেখিয়েছে যে মার্টিয়ান যুদ্ধ নিয়ে কাল্পনিক গল্প (যেমন, টেলিভিশন সিরিজ বা বই) রয়েছে — কিন্তু ২০৭৬ সালে নয়। সাধারণ বুদ্ধিও বলে যে ২০৭৬ _ভবিষ্যতে_ এবং তাই এটি কোনো বাস্তব ঘটনার সঙ্গে যুক্ত হতে পারে না। - -তাহলে কি হয় যখন আমরা এই প্রম্পটটি বিভিন্ন LLM প্রদানকারীর কাছে চালাই? - -> **Response 1**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.bn.png) - -> **Response 2**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.bn.png) - -> **Response 3**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.bn.png) - -প্রত্যাশা অনুযায়ী, প্রতিটি মডেল (বা মডেল সংস্করণ) সামান্য ভিন্ন উত্তর দেয় কারণ স্টোকাস্টিক আচরণ এবং মডেলের সক্ষমতার পার্থক্যের কারণে। উদাহরণস্বরূপ, একটি মডেল ৮ম শ্রেণির শিক্ষার্থীদের লক্ষ্য করে, অন্যটি উচ্চ বিদ্যালয়ের ছাত্র ধরে নেয়। কিন্তু তিনটি মডেলই এমন উত্তর তৈরি করেছে যা অজ্ঞাত ব্যবহারকারীকে বিশ্বাস করাতে পারে যে ঘটনাটি বাস্তব। - -প্রম্পট ইঞ্জিনিয়ারিং কৌশল যেমন _মেটাপ্রম্পটিং_ এবং _তাপমাত্রা কনফিগারেশন_ কিছুটা মডেল গঠন কমাতে পারে। নতুন প্রম্পট ইঞ্জিনিয়ারিং _আর্কিটেকচার_ গুলোও নতুন টুল এবং কৌশলগুলোকে প্রম্পট ফ্লোতে নির্বিঘ্নে অন্তর্ভুক্ত করে, যাতে এই প্রভাবগুলো কমানো যায়। - -## কেস স্টাডি: GitHub Copilot - -এই অংশটি শেষ করা যাক দেখে নেওয়া যাক কিভাবে প্রম্পট ইঞ্জিনিয়ারিং বাস্তব জীবনের সমাধানে ব্যবহৃত হয় একটি কেস স্টাডির মাধ্যমে: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst)। - -GitHub Copilot আপনার "AI পেয়ার প্রোগ্রামার" — এটি টেক্সট প্রম্পটকে কোড সম্পূর্ণতায় রূপান্তর করে এবং আপনার ডেভেলপমেন্ট পরিবেশে (যেমন, Visual Studio Code) একীভূত থাকে যাতে ব্যবহারকারীর অভিজ্ঞতা মসৃণ হয়। নিচের ব্লগ সিরিজে বর্ণিত হয়েছে, প্রাথমিক সংস্করণটি OpenAI Codex মডেলের উপর ভিত্তি করে তৈরি হয়েছিল — যেখানে ইঞ্জিনিয়াররা দ্রুত বুঝতে পেরেছিলেন মডেলকে ফাইন-টিউন করা এবং উন্নত প্রম্পট ইঞ্জিনিয়ারিং কৌশল তৈরি করা দরকার, যাতে কোডের গুণগত মান উন্নত হয়। জুলাই মাসে তারা [Codex ছাড়িয়ে যাওয়া উন্নত AI মডেল উন্মোচন করে](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) যা আরও দ্রুত পরামর্শ দেয়। - -তাদের শেখার যাত্রা অনুসরণ করতে নিচের পোস্টগুলো ক্রমানুসারে পড়ুন। - -- **মে ২০২৩** | [GitHub Copilot আপনার কোড বুঝতে আরও ভালো হচ্ছে](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **মে ২০২৩** | [GitHub এর ভিতরে: GitHub Copilot এর পেছনের LLM গুলোর সাথে কাজ](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **জুন ২০২৩** | [GitHub Copilot এর জন্য কিভাবে ভালো প্রম্পট লিখবেন](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **জুলাই ২০২৩** | [GitHub Copilot Codex ছাড়িয়ে উন্নত AI মডেল নিয়ে](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **জুলাই ২০২৩** | [একজন ডেভেলপারের জন্য প্রম্পট ইঞ্জিনিয়ারিং এবং LLM গাইড](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **সেপ্টেম্বর ২০২৩** | [কিভাবে একটি এন্টারপ্রাইজ LLM অ্যাপ তৈরি করবেন: GitHub Copilot থেকে শিক্ষা](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -আপনি আরও পোস্টের জন্য তাদের [ইঞ্জিনিয়ারিং ব্লগ](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) ব্রাউজ করতে পারেন, যেমন [এই পোস্টটি](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) যা দেখায় কিভাবে এই মডেল এবং কৌশলগুলো বাস্তব জীবনের অ্যাপ্লিকেশন চালাতে _প্রয়োগ_ করা হয়। - ---- - - - -## প্রম্পট নির্মাণ - -আমরা দেখেছি কেন প্রম্পট ইঞ্জিনিয়ারিং গুরুত্বপূর্ণ — এখন বুঝি কিভাবে প্রম্পটগুলো _নির্মিত_ হয় যাতে আমরা বিভিন্ন কৌশল মূল্যায়ন করতে পারি আরও কার্যকর প্রম্পট ডিজাইনের জন্য। - -### বেসিক প্রম্পট - -চলুন বেসিক প্রম্পট দিয়ে শুরু করি: মডেলের কাছে পাঠানো একটি টেক্সট ইনপুট, কোনো অতিরিক্ত প্রসঙ্গ ছাড়া। উদাহরণস্বরূপ, যখন আমরা US জাতীয় সঙ্গীতের প্রথম কয়েকটি শব্দ OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst) এ পাঠাই, এটি সঙ্গে সঙ্গেই পরবর্তী কয়েকটি লাইন _সম্পূর্ণ_ করে, যা বেসিক পূর্বাভাস আচরণ দেখায়। - -| প্রম্পট (ইনপুট) | সম্পূর্ণকরণ (আউটপুট) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | মনে হচ্ছে আপনি "The Star-Spangled Banner," যুক্তরাষ্ট্রের জাতীয় সঙ্গীতের গানের লিরিক্স শুরু করছেন। সম্পূর্ণ গানের লিরিক্স হলো ... | - -### জটিল প্রম্পট - -এখন সেই বেসিক প্রম্পটে প্রসঙ্গ এবং নির্দেশনা যোগ করি। [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) আমাদের একটি জটিল প্রম্পট তৈরি করতে দেয় যা _মেসেজ_ এর সংগ্রহ: - -- ইনপুট/আউটপুট জোড়া যা _ব্যবহারকারী_ ইনপুট এবং _সহকারী_ প্রতিক্রিয়া প্রতিফলিত করে। -- সিস্টেম মেসেজ যা সহকারীর আচরণ বা ব্যক্তিত্বের প্রসঙ্গ নির্ধারণ করে। - -অনুরোধটি এখন নিচের রূপে থাকে, যেখানে _টোকেনাইজেশন_ কার্যকরভাবে প্রসঙ্গ এবং কথোপকথন থেকে প্রাসঙ্গিক তথ্য ধারণ করে। সিস্টেম প্রসঙ্গ পরিবর্তন করাও সম্পূর্ণকরণের গুণগত মানে ব্যবহারকারীর ইনপুটের মতোই প্রভাব ফেলে। - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### নির্দেশনা প্রম্পট - -উপরের উদাহরণগুলোতে, ব্যবহারকারীর প্রম্পট ছিল একটি সাধারণ টেক্সট প্রশ্ন যা তথ্যের অনুরোধ হিসেবে ব্যাখ্যা করা যায়। _নির্দেশনা_ প্রম্পটে, আমরা সেই টেক্সট ব্যবহার করে কাজটি আরও বিস্তারিতভাবে নির্দিষ্ট করতে পারি, AI কে ভালো নির্দেশনা দিতে। উদাহরণ: - -| প্রম্পট (ইনপুট) | সম্পূর্ণকরণ (আউটপুট) | নির্দেশনার ধরন | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Write a description of the Civil War | _একটি সাধারণ প্যারাগ্রাফ ফেরত দেয়_ | সাধারণ | -| Write a description of the Civil War. Provide key dates and events and describe their significance | _একটি প্যারাগ্রাফ এবং তারপরে গুরুত্বপূর্ণ ঘটনাগুলোর তারিখ ও বর্ণনা সহ তালিকা ফেরত দেয়_ | জটিল | -| Write a description of the Civil War in 1 paragraph. Provide 3 bullet points with key dates and their significance. Provide 3 more bullet points with key historical figures and their contributions. Return the output as a JSON file | _আরও বিস্তৃত বিবরণ একটি টেক্সট বক্সে JSON ফরম্যাটে ফেরত দেয় যা আপনি কপি-পেস্ট করে ফাইল হিসেবে সংরক্ষণ ও যাচাই করতে পারেন_ | জটিল। ফরম্যাটেড। | - -## প্রাথমিক বিষয়বস্তু - -উপরের উদাহরণগুলোতে, প্রম্পট এখনও বেশ খোলা ছিল, LLM কে সিদ্ধান্ত নিতে দেয় কোন অংশ তার প্রাক-প্রশিক্ষিত ডেটাসেট থেকে প্রাসঙ্গিক। _প্রাথমিক বিষয়বস্তু_ ডিজাইন প্যাটার্নে, ইনপুট টেক্সট দুই ভাগে বিভক্ত: - -- একটি নির্দেশনা (কর্ম) -- প্রাসঙ্গিক বিষয়বস্তু (যা কর্মকে প্রভাবিত করে) - -উদাহরণস্বরূপ, যেখানে নির্দেশনা হলো "এটি ২টি বাক্যে সারসংক্ষেপ করো"। - -| প্রম্পট (ইনপুট) | সম্পূর্ণকরণ (আউটপুট) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. It is named after the Roman god Jupiter.[19] When viewed from Earth, Jupiter can be bright enough for its reflected light to cast visible shadows,[20] and is on average the third-brightest natural object in the night sky after the Moon and Venus.
**Summarize this in 2 short sentences** | জুপিটার, সূর্যের পঞ্চম গ্রহ, সৌরজগতের সবচেয়ে বড় গ্রহ এবং রাতের আকাশে সবচেয়ে উজ্জ্বল বস্তুগুলোর মধ্যে একটি। এটি রোমান দেবতা জুপিটারের নামে নামকরণ করা হয়েছে, এবং এটি একটি গ্যাস জায়ান্ট যার ভর সৌরজগতের অন্যান্য সব গ্রহের মোট ভরের দেড়গুণ। | - -প্রাথমিক বিষয়বস্তু অংশ বিভিন্নভাবে ব্যবহার করা যেতে পারে আরও কার্যকর নির্দেশনা চালানোর জন্য: - -- **উদাহরণ** - মডেলকে সরাসরি নির্দেশনা দেওয়ার পরিবর্তে, কাজের উদাহরণ দিন এবং মডেল নিজেই প্যাটার্ন অনুমান করুক। -- **কিউ** - নির্দেশনার পরে একটি "কিউ" দিন যা সম্পূর্ণকরণকে প্রাথমিক করে, মডেলকে আরও প্রাসঙ্গিক উত্তর দিতে সাহায্য করে। -- **টেমপ্লেট** - এগুলো পুনরাবৃত্তিযোগ্য 'রেসিপি' প্রম্পটের জন্য, যেখানে প্লেসহোল্ডার (ভেরিয়েবল) থাকে যা নির্দিষ্ট ডেটা দিয়ে কাস্টমাইজ করা যায়। - -চলুন এগুলো কার্যকরভাবে দেখি। - -### উদাহরণ ব্যবহার - -এটি এমন একটি পদ্ধতি যেখানে আপনি প্রাথমিক বিষয়বস্তু ব্যবহার করে মডেলকে কিছু কাঙ্ক্ষিত আউটপুটের উদাহরণ দেন এবং মডেল নিজেই কাঙ্ক্ষিত আউটপুটের প্যাটার্ন অনুমান করে। উদাহরণ সংখ্যার ওপর ভিত্তি করে, আমরা জিরো-শট, ওয়ান-শট, ফিউ-শট প্রম্পটিং করতে পারি। - -প্রম্পট এখন তিনটি উপাদান নিয়ে গঠিত: - -- একটি কাজের বর্ণনা -- কাঙ্ক্ষিত আউটপুটের কয়েকটি উদাহরণ -- একটি নতুন উদাহরণের শুরু (যা একটি অন্তর্নিহিত কাজের বর্ণনা হয়ে ওঠে) - -| শেখার ধরন | প্রম্পট (ইনপুট) | সম্পূর্ণকরণ (আউটপুট) | -| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| জিরো-শট | "The Sun is Shining". Translate to Spanish | "El Sol está brillando". | -| ওয়ান-শট | "The Sun is Shining" => ""El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| ফিউ-শট | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketball | -| | | | - -দেখুন কিভাবে জিরো-শট প্রম্পটিং-এ স্পষ্ট নির্দেশনা ("Translate to Spanish") দিতে হয়, কিন্তু ওয়ান-শট প্রম্পটিং-এ তা অনুমান করা হয়। ফিউ-শট উদাহরণ দেখায় কিভাবে আরও উদাহরণ যোগ করলে মডেল আরও সঠিক অনুমান করতে পারে কোনো অতিরিক্ত নির্দেশনা ছাড়াই। - -### প্রম্পট কিউ - -প্রাথমিক বিষয়বস্তু ব্যবহার করার আরেকটি কৌশল হলো _কিউ_ প্রদান করা উদাহরণ দেওয়ার পরিবর্তে। এই ক্ষেত্রে, আমরা মডেলকে সঠিক দিকনির্দেশনা দিতে একটি অংশ দিয়ে শুরু করি যা কাঙ্ক্ষিত আউটপুট ফরম্যাট প্রতিফলিত করে। মডেল তখন সেই কিউ ধরে ধরে উত্তর চালিয়ে যায়। - -| কিউয়ের সংখ্যা | প্রম্পট (ইনপুট) | সম্পূর্ণকরণ (আউটপুট) | -| :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ০ | Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. - -**Summarize This** | বৃহস্পতিই আমাদের সৌরজগতের সবচেয়ে বড় গ্রহ এবং সূর্য থেকে পঞ্চম গ্রহ। এটি একটি গ্যাস দৈত্য যার ভর সূর্যের ১/১০০০ অংশ, তবে এটি অন্যান্য সব গ্রহের মিলিত ভরের চেয়ে ভারী। প্রাচীন সভ্যতাগুলো দীর্ঘদিন ধরে বৃহস্পতিকে চেনে, এবং এটি রাতের আকাশে সহজেই দৃশ্যমান। | -| 1 | বৃহস্পতিই সূর্য থেকে পঞ্চম গ্রহ এবং সৌরজগতের সবচেয়ে বড় গ্রহ। এটি একটি গ্যাস দৈত্য যার ভর সূর্যের এক হাজার ভাগের এক ভাগ, তবে সৌরজগতের অন্যান্য সব গ্রহের মিলিত ভরের দেড় গুণ। বৃহস্পতিই রাতের আকাশে নগ্ন চোখে দেখা সবচেয়ে উজ্জ্বল বস্তুগুলোর মধ্যে একটি, এবং এটি প্রাচীন সভ্যতাগুলোতে ইতিহাসের রেকর্ডের আগেও পরিচিত ছিল।
**Summarize This**
আমরা যা শিখলাম তা হলো বৃহস্পতিই | সূর্য থেকে পঞ্চম গ্রহ এবং সৌরজগতের সবচেয়ে বড় গ্রহ। এটি একটি গ্যাস দৈত্য যার ভর সূর্যের এক হাজার ভাগের এক ভাগ, তবে অন্যান্য সব গ্রহের মিলিত ভরের দেড় গুণ। এটি সহজেই নগ্ন চোখে দেখা যায় এবং প্রাচীনকাল থেকে পরিচিত। | -| 2 | বৃহস্পতিই সূর্য থেকে পঞ্চম গ্রহ এবং সৌরজগতের সবচেয়ে বড় গ্রহ। এটি একটি গ্যাস দৈত্য যার ভর সূর্যের এক হাজার ভাগের এক ভাগ, তবে সৌরজগতের অন্যান্য সব গ্রহের মিলিত ভরের দেড় গুণ। বৃহস্পতিই রাতের আকাশে নগ্ন চোখে দেখা সবচেয়ে উজ্জ্বল বস্তুগুলোর মধ্যে একটি, এবং এটি প্রাচীন সভ্যতাগুলোতে ইতিহাসের রেকর্ডের আগেও পরিচিত ছিল।
**Summarize This**
আমরা শিখলাম শীর্ষ ৩টি তথ্য: | ১. বৃহস্পতিই সূর্য থেকে পঞ্চম গ্রহ এবং সৌরজগতের সবচেয়ে বড় গ্রহ।
২. এটি একটি গ্যাস দৈত্য যার ভর সূর্যের এক হাজার ভাগের এক ভাগ...
৩. বৃহস্পতিই প্রাচীনকাল থেকে নগ্ন চোখে দেখা যায় ... | -| | | | - -### Prompt Templates - -একটি প্রম্পট টেমপ্লেট হলো একটি _পূর্বনির্ধারিত রেসিপি_ যা প্রম্পট হিসেবে সংরক্ষণ ও পুনরায় ব্যবহার করা যায়, যাতে বড় পরিসরে ব্যবহারকারীর অভিজ্ঞতা আরও সঙ্গতিপূর্ণ হয়। সবচেয়ে সাধারণ রূপে, এটি প্রম্পট উদাহরণগুলোর একটি সংগ্রহ, যেমন [OpenAI থেকে এই উদাহরণটি](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) যা ইন্টারেক্টিভ প্রম্পট উপাদান (ব্যবহারকারী ও সিস্টেম মেসেজ) এবং API-চালিত অনুরোধ ফরম্যাট উভয়ই প্রদান করে - পুনঃব্যবহারের জন্য। - -আরও জটিল রূপে, যেমন [LangChain থেকে এই উদাহরণটি](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst), এতে _প্লেসহোল্ডার_ থাকে যা বিভিন্ন উৎস থেকে (ব্যবহারকারীর ইনপুট, সিস্টেম প্রসঙ্গ, বাহ্যিক ডেটা ইত্যাদি) ডেটা দিয়ে প্রতিস্থাপন করা যায়, ফলে প্রম্পট ডায়নামিক্যালি তৈরি করা যায়। এর মাধ্যমে আমরা পুনঃব্যবহারযোগ্য প্রম্পটের একটি লাইব্রেরি তৈরি করতে পারি যা **প্রোগ্রাম্যাটিক্যালি** বড় পরিসরে সঙ্গতিপূর্ণ ব্যবহারকারীর অভিজ্ঞতা চালাতে সাহায্য করে। - -অবশেষে, টেমপ্লেটগুলোর প্রকৃত মূল্য হলো _প্রম্পট লাইব্রেরি_ তৈরি ও প্রকাশ করার ক্ষমতায়, যা নির্দিষ্ট vertikal অ্যাপ্লিকেশন ডোমেইনের জন্য অপ্টিমাইজড হয় - যেখানে প্রম্পট টেমপ্লেট এখন অ্যাপ্লিকেশন-নির্দিষ্ট প্রসঙ্গ বা উদাহরণ প্রতিফলিত করে, যা লক্ষ্যভিত্তিক ব্যবহারকারী শ্রোতাদের জন্য আরও প্রাসঙ্গিক ও সঠিক প্রতিক্রিয়া তৈরি করে। [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) রিপোজিটরি এই পদ্ধতির একটি চমৎকার উদাহরণ, যা শিক্ষা ডোমেইনের জন্য প্রম্পটের একটি লাইব্রেরি তৈরি করেছে, যেখানে পাঠ পরিকল্পনা, পাঠ্যক্রম ডিজাইন, ছাত্র টিউটরিং ইত্যাদির মতো মূল উদ্দেশ্যগুলোর উপর জোর দেওয়া হয়েছে। - -## Supporting Content - -যদি আমরা প্রম্পট নির্মাণকে একটি নির্দেশনা (কাজ) এবং একটি লক্ষ্য (প্রাথমিক বিষয়বস্তু) হিসেবে ভাবি, তাহলে _দ্বিতীয়ক বিষয়বস্তু_ হলো অতিরিক্ত প্রসঙ্গ যা আমরা প্রদান করি যাতে **আউটপুটকে কোনোভাবে প্রভাবিত করা যায়**। এটি হতে পারে টিউনিং প্যারামিটার, ফরম্যাটিং নির্দেশনা, বিষয়বস্তু শ্রেণীবিভাগ ইত্যাদি যা মডেলকে তার প্রতিক্রিয়া ব্যবহারকারীর প্রত্যাশা বা উদ্দেশ্যের সাথে মানানসই করতে সাহায্য করে। - -উদাহরণস্বরূপ: একটি কোর্স ক্যাটালগের ব্যাপক মেটাডেটা (নাম, বর্ণনা, স্তর, মেটাডেটা ট্যাগ, প্রশিক্ষক ইত্যাদি) থাকলে: - -- আমরা একটি নির্দেশনা দিতে পারি "Fall 2023 এর কোর্স ক্যাটালগ সারাংশ তৈরি করো" -- আমরা প্রাথমিক বিষয়বস্তু হিসেবে কাঙ্ক্ষিত আউটপুটের কয়েকটি উদাহরণ দিতে পারি -- আমরা দ্বিতীয়ক বিষয়বস্তু হিসেবে শীর্ষ ৫টি "ট্যাগ" নির্ধারণ করতে পারি। - -এখন, মডেল কয়েকটি উদাহরণের ফরম্যাটে সারাংশ দিতে পারবে - কিন্তু যদি ফলাফলে একাধিক ট্যাগ থাকে, তবে দ্বিতীয়ক বিষয়বস্তুতে নির্ধারিত ৫টি ট্যাগকে অগ্রাধিকার দিতে পারবে। - ---- - - - -## Prompting Best Practices - -এখন যেহেতু আমরা জানি কিভাবে প্রম্পট _নির্মাণ_ করা যায়, আমরা ভাবতে পারি কিভাবে সেগুলো _ডিজাইন_ করা উচিত যাতে সেরা অনুশীলন প্রতিফলিত হয়। আমরা এটাকে দুই ভাগে ভাবতে পারি - সঠিক _মনোভাব_ থাকা এবং সঠিক _কৌশল_ প্রয়োগ করা। - -### Prompt Engineering Mindset - -প্রম্পট ইঞ্জিনিয়ারিং হলো একটি ট্রায়াল-এন্ড-এরর প্রক্রিয়া, তাই তিনটি বড় নির্দেশক বিষয় মাথায় রাখুন: - -১. **ডোমেইন বোঝাপড়া গুরুত্বপূর্ণ।** প্রতিক্রিয়ার সঠিকতা ও প্রাসঙ্গিকতা নির্ভর করে সেই ডোমেইনের উপর যেখানে অ্যাপ্লিকেশন বা ব্যবহারকারী কাজ করে। আপনার অন্তর্দৃষ্টি ও ডোমেইন দক্ষতা ব্যবহার করে **কৌশলগুলো কাস্টমাইজ করুন**। উদাহরণস্বরূপ, সিস্টেম প্রম্পটে ডোমেইন-নির্দিষ্ট ব্যক্তিত্ব নির্ধারণ করুন, অথবা ব্যবহারকারী প্রম্পটে ডোমেইন-নির্দিষ্ট টেমপ্লেট ব্যবহার করুন। দ্বিতীয়ক বিষয়বস্তুতে ডোমেইন-নির্দিষ্ট প্রসঙ্গ দিন, অথবা মডেলকে পরিচিত ব্যবহার প্যাটার্নের দিকে পরিচালিত করতে ডোমেইন-নির্দিষ্ট সংকেত ও উদাহরণ ব্যবহার করুন। - -২. **মডেল বোঝাপড়া গুরুত্বপূর্ণ।** আমরা জানি মডেলগুলো প্রকৃতিগতভাবে স্টোকাস্টিক। তবে মডেল বাস্তবায়নও ভিন্ন হতে পারে তাদের প্রশিক্ষণ ডেটাসেট (প্রি-ট্রেইনড জ্ঞান), প্রদত্ত ক্ষমতা (যেমন API বা SDK এর মাধ্যমে) এবং তারা কোন ধরনের বিষয়বস্তুতে অপ্টিমাইজড (কোড, ছবি, টেক্সট ইত্যাদি) তার উপর ভিত্তি করে। আপনি যে মডেল ব্যবহার করছেন তার শক্তি ও সীমাবদ্ধতা বুঝুন, এবং সেই জ্ঞান ব্যবহার করে কাজের অগ্রাধিকার দিন বা মডেলের ক্ষমতার জন্য অপ্টিমাইজড কাস্টম টেমপ্লেট তৈরি করুন। - -৩. **পুনরাবৃত্তি ও যাচাই গুরুত্বপূর্ণ।** মডেল দ্রুত বিকশিত হচ্ছে, তেমনি প্রম্পট ইঞ্জিনিয়ারিং কৌশলও। একজন ডোমেইন বিশেষজ্ঞ হিসেবে, আপনার নির্দিষ্ট অ্যাপ্লিকেশনের জন্য অন্য প্রসঙ্গ বা মানদণ্ড থাকতে পারে যা বৃহত্তর সম্প্রদায়ের জন্য প্রযোজ্য নাও হতে পারে। প্রম্পট ইঞ্জিনিয়ারিং টুল ও কৌশল ব্যবহার করে প্রম্পট নির্মাণ শুরু করুন, তারপর আপনার অন্তর্দৃষ্টি ও ডোমেইন দক্ষতা দিয়ে ফলাফল পুনরাবৃত্তি ও যাচাই করুন। আপনার অন্তর্দৃষ্টি রেকর্ড করুন এবং একটি **জ্ঞানভাণ্ডার** (যেমন প্রম্পট লাইব্রেরি) তৈরি করুন যা অন্যরা ভবিষ্যতে দ্রুত পুনরাবৃত্তির জন্য ব্যবহার করতে পারে। - -## Best Practices - -এখন চলুন [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) এবং [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst) বিশেষজ্ঞদের সুপারিশকৃত সাধারণ সেরা অনুশীলনগুলো দেখি। - -| কী | কেন | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| সর্বশেষ মডেলগুলো মূল্যায়ন করুন | নতুন মডেল প্রজন্মগুলো উন্নত বৈশিষ্ট্য ও গুণমান নিয়ে আসতে পারে - তবে খরচও বেশি হতে পারে। প্রভাব মূল্যায়ন করে মাইগ্রেশন সিদ্ধান্ত নিন। | -| নির্দেশনা ও প্রসঙ্গ আলাদা করুন | দেখুন আপনার মডেল/প্রোভাইডার নির্দেশনা, প্রাথমিক ও দ্বিতীয়ক বিষয়বস্তু আলাদা করার জন্য _ডেলিমিটার_ ব্যবহার করে কিনা। এটি মডেলকে টোকেনের ওজন সঠিকভাবে নির্ধারণে সাহায্য করে। | -| স্পষ্ট ও নির্দিষ্ট হোন | কাঙ্ক্ষিত প্রসঙ্গ, ফলাফল, দৈর্ঘ্য, ফরম্যাট, শৈলী ইত্যাদি সম্পর্কে বিস্তারিত দিন। এতে প্রতিক্রিয়ার গুণমান ও সঙ্গতি উন্নত হয়। রেসিপি পুনঃব্যবহারযোগ্য টেমপ্লেটে সংরক্ষণ করুন। | -| বর্ণনামূলক হোন, উদাহরণ ব্যবহার করুন | মডেলগুলো "দেখাও ও বলো" পদ্ধতিতে ভালো প্রতিক্রিয়া দিতে পারে। প্রথমে `zero-shot` পদ্ধতিতে নির্দেশনা দিন (কোন উদাহরণ ছাড়া), তারপর `few-shot` পদ্ধতিতে কয়েকটি কাঙ্ক্ষিত আউটপুটের উদাহরণ দিন। উপমা ব্যবহার করুন। | -| সম্পূর্ণতা শুরু করতে সংকেত ব্যবহার করুন | কাঙ্ক্ষিত ফলাফলের দিকে ধাক্কা দিতে কিছু প্রারম্ভিক শব্দ বা বাক্যাংশ দিন যা মডেল প্রতিক্রিয়া শুরু করতে ব্যবহার করতে পারে। | -| পুনরাবৃত্তি করুন | কখনও কখনও মডেলকে বারবার নির্দেশনা দিতে হতে পারে। প্রাথমিক বিষয়বস্তুর আগে ও পরে নির্দেশনা দিন, নির্দেশনা ও সংকেত ব্যবহার করুন ইত্যাদি। পুনরাবৃত্তি ও যাচাই করুন কোনটি কাজ করে। | -| ক্রম গুরুত্বপূর্ণ | মডেলকে তথ্য উপস্থাপনের ক্রম আউটপুটে প্রভাব ফেলতে পারে, এমনকি শেখার উদাহরণগুলোর ক্ষেত্রেও, কারণ সাম্প্রতিকতার পক্ষপাত থাকে। বিভিন্ন বিকল্প চেষ্টা করুন কোনটি সেরা কাজ করে দেখতে। | -| মডেলকে একটি “বিকল্প” দিন | মডেলকে একটি _ফলব্যাক_ সম্পূর্ণতা দিন যা এটি ব্যবহার করতে পারে যদি কোনো কারণে কাজ সম্পন্ন করতে না পারে। এতে মডেল ভুল বা গড়া প্রতিক্রিয়া দেওয়ার সম্ভাবনা কমে। | -| | | - -যেকোনো সেরা অনুশীলনের মতো, মনে রাখবেন _আপনার অভিজ্ঞতা ভিন্ন হতে পারে_ মডেল, কাজ ও ডোমেইনের উপর ভিত্তি করে। এগুলোকে শুরু হিসেবে ব্যবহার করুন, এবং পুনরাবৃত্তি করে দেখুন কোনটি আপনার জন্য সেরা। নতুন মডেল ও টুলস আসার সাথে সাথে আপনার প্রম্পট ইঞ্জিনিয়ারিং প্রক্রিয়া নিয়মিত পুনর্মূল্যায়ন করুন, প্রক্রিয়ার বিস্তৃতি ও প্রতিক্রিয়ার গুণমানের দিকে মনোযোগ দিয়ে। - - - -## Assignment - -অভিনন্দন! আপনি পাঠের শেষ পর্যন্ত পৌঁছেছেন! এখন কিছু ধারণা ও কৌশল বাস্তবে প্রয়োগ করার সময়! - -আমাদের অ্যাসাইনমেন্টে, আমরা একটি Jupyter Notebook ব্যবহার করব যেখানে আপনি ইন্টারেক্টিভভাবে অনুশীলন সম্পন্ন করতে পারবেন। আপনি চাইলে নিজের Markdown ও Code সেল যোগ করে নিজে থেকে ধারণা ও কৌশল অন্বেষণ করতে পারেন। - -### শুরু করতে, রিপো ফর্ক করুন, তারপর - -- (প্রস্তাবিত) GitHub Codespaces চালু করুন -- (অন্যথায়) রিপো আপনার লোকাল ডিভাইসে ক্লোন করুন এবং Docker Desktop দিয়ে ব্যবহার করুন -- (অন্যথায়) পছন্দসই Notebook রানটাইম পরিবেশে Notebook খুলুন। - -### এরপর, আপনার পরিবেশ ভেরিয়েবল কনফিগার করুন - -- রিপো রুটে `.env.copy` ফাইলটি `.env` নামে কপি করুন এবং `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` ও `AZURE_OPENAI_DEPLOYMENT` মানগুলো পূরণ করুন। তারপর [Learning Sandbox section](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) এ ফিরে যান কিভাবে করতে হয় জানতে। - -### এরপর, Jupyter Notebook খুলুন - -- রানটাইম কার্নেল নির্বাচন করুন। যদি অপশন ১ বা ২ ব্যবহার করেন, ডেভ কন্টেইনারের ডিফল্ট Python 3.10.x কার্নেল নির্বাচন করুন। - -আপনি অনুশীলন চালানোর জন্য প্রস্তুত। মনে রাখবেন এখানে _সঠিক বা ভুল_ উত্তর নেই - শুধু ট্রায়াল-এন্ড-এরর করে বিকল্পগুলো অন্বেষণ এবং মডেল ও অ্যাপ্লিকেশন ডোমেইনের জন্য কোনটি কাজ করে তা বোঝার চেষ্টা। - -_এই কারণে এই পাঠে কোনো কোড সলিউশন অংশ নেই। পরিবর্তে, Notebook এ "My Solution:" শিরোনামে Markdown সেল থাকবে যা একটি উদাহরণ আউটপুট দেখাবে।_ - - - -## Knowledge check - -নিম্নলিখিত কোনটি যুক্তিসঙ্গত সেরা অনুশীলন অনুসরণ করে একটি ভালো প্রম্পট? - -১. আমাকে একটি লাল গাড়ির ছবি দেখাও -২. আমাকে একটি লাল গাড়ির ছবি দেখাও যার ব্র্যান্ড Volvo এবং মডেল XC90, যা একটি পাহাড়ের ধারে সূর্যাস্তের সময় পার্ক করা আছে -৩. আমাকে একটি লাল গাড়ির ছবি দেখাও যার ব্র্যান্ড Volvo এবং মডেল XC90 - -উত্তর: ২, এটি সেরা প্রম্পট কারণ এটি "কি" সম্পর্কে বিস্তারিত দেয় এবং নির্দিষ্ট (শুধু যেকোনো গাড়ি নয়, নির্দিষ্ট ব্র্যান্ড ও মডেল) এবং সামগ্রিক পরিবেশও বর্ণনা করে। ৩ পরবর্তী সেরা কারণ এতে অনেক বর্ণনা রয়েছে। - -## 🚀 Challenge - -"cue" কৌশল ব্যবহার করে প্রম্পটটি পরীক্ষা করুন: বাক্যটি সম্পূর্ণ করুন "Show me an image of red car of make Volvo and "। এটি কী প্রতিক্রিয়া দেয়, এবং আপনি কিভাবে এটি উন্নত করবেন? - -## Great Work! Continue Your Learning - -বিভিন্ন প্রম্পট ইঞ্জিনিয়ারিং ধারণা সম্পর্কে আরও জানতে চান? [continued learning page](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) এ যান যেখানে এই বিষয়ে অন্যান্য চমৎকার সম্পদ পাবেন। - -পরবর্তী পাঠ ৫ এ যান যেখানে আমরা [উন্নত প্রম্পটিং কৌশল](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) নিয়ে আলোচনা করব! - -**অস্বীকৃতি**: -এই নথিটি AI অনুবাদ সেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনূদিত হয়েছে। আমরা যথাসাধ্য সঠিকতার চেষ্টা করি, তবে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল নথিটি তার নিজস্ব ভাষায়ই কর্তৃত্বপূর্ণ উৎস হিসেবে বিবেচিত হওয়া উচিত। গুরুত্বপূর্ণ তথ্যের জন্য পেশাদার মানব অনুবাদ গ্রহণ করার পরামর্শ দেওয়া হয়। এই অনুবাদের ব্যবহারে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file + + + + + + + diff --git a/translations/bn/09-building-image-applications/README.md b/translations/bn/09-building-image-applications/README.md index 3d3681621..6867fb410 100644 --- a/translations/bn/09-building-image-applications/README.md +++ b/translations/bn/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# ইমেজ জেনারেশন অ্যাপ্লিকেশন তৈরি করা - -[![ইমেজ জেনারেশন অ্যাপ্লিকেশন তৈরি করা](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.bn.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLM শুধুমাত্র টেক্সট জেনারেশনের জন্য নয়। টেক্সট বর্ণনা থেকে ছবি তৈরি করাও সম্ভব। ছবি একটি মাধ্যম হিসেবে বিভিন্ন ক্ষেত্রে যেমন মেডটেক, আর্কিটেকচার, পর্যটন, গেম ডেভেলপমেন্ট ইত্যাদিতে খুবই উপকারী হতে পারে। এই অধ্যায়ে, আমরা দুটি জনপ্রিয় ইমেজ জেনারেশন মডেল, DALL-E এবং Midjourney সম্পর্কে জানব। - -## পরিচিতি - -এই পাঠে আমরা আলোচনা করব: - -- ইমেজ জেনারেশন এবং কেন এটি গুরুত্বপূর্ণ। -- DALL-E এবং Midjourney কী, এবং কীভাবে কাজ করে। -- কিভাবে একটি ইমেজ জেনারেশন অ্যাপ তৈরি করবেন। - -## শেখার লক্ষ্য - -এই পাঠ শেষ করার পর, আপনি সক্ষম হবেন: - -- একটি ইমেজ জেনারেশন অ্যাপ্লিকেশন তৈরি করতে। -- মেটা প্রম্পট ব্যবহার করে আপনার অ্যাপ্লিকেশনের সীমা নির্ধারণ করতে। -- DALL-E এবং Midjourney এর সাথে কাজ করতে। - -## কেন একটি ইমেজ জেনারেশন অ্যাপ্লিকেশন তৈরি করবেন? - -ইমেজ জেনারেশন অ্যাপ্লিকেশনগুলি জেনারেটিভ AI এর ক্ষমতা অন্বেষণের একটি চমৎকার উপায়। এগুলো ব্যবহার করা যেতে পারে, উদাহরণস্বরূপ: - -- **ইমেজ এডিটিং এবং সিন্থেসিস**। বিভিন্ন ব্যবহারের জন্য ছবি তৈরি করা যায়, যেমন ছবি সম্পাদনা এবং ছবি সংমিশ্রণ। - -- **বিভিন্ন শিল্পে প্রয়োগ**। মেডটেক, পর্যটন, গেম ডেভেলপমেন্ট সহ বিভিন্ন শিল্পের জন্য ছবি তৈরি করা যায়। - -## পরিস্থিতি: Edu4All - -এই পাঠের অংশ হিসেবে, আমরা আমাদের স্টার্টআপ Edu4All এর সাথে কাজ চালিয়ে যাব। শিক্ষার্থীরা তাদের মূল্যায়নের জন্য ছবি তৈরি করবে, কোন ছবি তৈরি হবে তা শিক্ষার্থীদের উপর নির্ভর করবে, তবে তারা তাদের নিজের গল্পের জন্য ইলাস্ট্রেশন তৈরি করতে পারে, নতুন চরিত্র তৈরি করতে পারে অথবা তাদের ধারণা ও কনসেপ্ট ভিজুয়ালাইজ করতে সাহায্য করতে পারে। - -যদি তারা ক্লাসে স্মৃতিস্তম্ভ নিয়ে কাজ করে, তাহলে Edu4All এর শিক্ষার্থীরা উদাহরণস্বরূপ নিম্নলিখিত ছবি তৈরি করতে পারে: - -![Edu4All startup, class on monuments, Eiffel Tower](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.bn.png) - -এই ধরনের প্রম্পট ব্যবহার করে - -> "Dog next to Eiffel Tower in early morning sunlight" - -## DALL-E এবং Midjourney কী? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) এবং [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) হলো দুটি জনপ্রিয় ইমেজ জেনারেশন মডেল, যেগুলো প্রম্পট ব্যবহার করে ছবি তৈরি করতে দেয়। - -### DALL-E - -চলুন DALL-E দিয়ে শুরু করি, এটি একটি জেনারেটিভ AI মডেল যা টেক্সট বর্ণনা থেকে ছবি তৈরি করে। - -> [DALL-E হলো দুটি মডেলের সংমিশ্রণ, CLIP এবং diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst)। - -- **CLIP**, একটি মডেল যা ছবি এবং টেক্সট থেকে এম্বেডিং তৈরি করে, যা ডেটার সংখ্যাসূচক উপস্থাপনা। - -- **Diffused attention**, একটি মডেল যা এম্বেডিং থেকে ছবি তৈরি করে। DALL-E একটি ছবি ও টেক্সট ডেটাসেটে প্রশিক্ষিত এবং টেক্সট বর্ণনা থেকে ছবি তৈরি করতে পারে। উদাহরণস্বরূপ, DALL-E ব্যবহার করে একটি টুপি পরা বিড়াল বা মোহক সহ একটি কুকুরের ছবি তৈরি করা যায়। - -### Midjourney - -Midjourney DALL-E এর মতোই কাজ করে, এটি টেক্সট প্রম্পট থেকে ছবি তৈরি করে। Midjourney ব্যবহার করে “a cat in a hat” বা “a dog with a mohawk” এর মতো প্রম্পট দিয়ে ছবি তৈরি করা যায়। - -![Midjourney দ্বারা তৈরি ছবি, মেকানিক্যাল কবুতর](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_ছবির উৎস: উইকিপিডিয়া, Midjourney দ্বারা তৈরি_ - -## DALL-E এবং Midjourney কীভাবে কাজ করে - -প্রথমে, [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst)। DALL-E হলো একটি জেনারেটিভ AI মডেল যা ট্রান্সফরমার আর্কিটেকচারের উপর ভিত্তি করে তৈরি, যার মধ্যে রয়েছে _autoregressive transformer_। - -একটি _autoregressive transformer_ নির্ধারণ করে কিভাবে মডেল টেক্সট বর্ণনা থেকে ছবি তৈরি করে, এটি একবারে একটি পিক্সেল তৈরি করে এবং তারপর তৈরি পিক্সেল ব্যবহার করে পরবর্তী পিক্সেল তৈরি করে। এটি নিউরাল নেটওয়ার্কের একাধিক স্তর পেরিয়ে যায় যতক্ষণ না ছবি সম্পূর্ণ হয়। - -এই প্রক্রিয়ায়, DALL-E ছবিতে অবজেক্ট, বৈশিষ্ট্য, এবং অন্যান্য গুণাবলী নিয়ন্ত্রণ করে। তবে, DALL-E 2 এবং 3 এ ছবির উপর আরও বেশি নিয়ন্ত্রণ রয়েছে। - -## আপনার প্রথম ইমেজ জেনারেশন অ্যাপ্লিকেশন তৈরি করা - -তাহলে একটি ইমেজ জেনারেশন অ্যাপ্লিকেশন তৈরি করতে কী কী লাগে? আপনার দরকার নিম্নলিখিত লাইব্রেরিগুলো: - -- **python-dotenv**, এই লাইব্রেরি ব্যবহার করে আপনার গোপন তথ্য _.env_ ফাইলে কোড থেকে আলাদা রাখা ভালো। -- **openai**, এই লাইব্রেরি OpenAI API এর সাথে ইন্টারঅ্যাক্ট করার জন্য। -- **pillow**, পাইথনে ছবি নিয়ে কাজ করার জন্য। -- **requests**, HTTP রিকোয়েস্ট করার জন্য। - -1. একটি _.env_ ফাইল তৈরি করুন নিচের বিষয়বস্তু সহ: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Azure পোর্টালে আপনার রিসোর্সের "Keys and Endpoint" সেকশনে এই তথ্য পাওয়া যাবে। - -1. উপরের লাইব্রেরিগুলো একটি _requirements.txt_ ফাইলে সংগ্রহ করুন: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. এরপর, ভার্চুয়াল এনভায়রনমেন্ট তৈরি করে লাইব্রেরিগুলো ইনস্টল করুন: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - উইন্ডোজে ভার্চুয়াল এনভায়রনমেন্ট তৈরি ও সক্রিয় করতে নিচের কমান্ডগুলো ব্যবহার করুন: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. _app.py_ নামে একটি ফাইলে নিচের কোড যোগ করুন: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -এই কোড ব্যাখ্যা করি: - -- প্রথমে, আমরা প্রয়োজনীয় লাইব্রেরিগুলো ইমপোর্ট করি, যার মধ্যে OpenAI, dotenv, requests এবং Pillow লাইব্রেরি রয়েছে। - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- এরপর, _.env_ ফাইল থেকে পরিবেশ ভেরিয়েবল লোড করি। - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- তারপর, OpenAI API এর জন্য endpoint, key, version এবং type সেট করি। - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- এরপর, ছবি তৈরি করি: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - উপরের কোড একটি JSON অবজেক্ট রিটার্ন করে যার মধ্যে তৈরি হওয়া ছবির URL থাকে। আমরা URL ব্যবহার করে ছবি ডাউনলোড করে ফাইলে সংরক্ষণ করতে পারি। - -- সর্বশেষে, আমরা ছবি ওপেন করে স্ট্যান্ডার্ড ইমেজ ভিউয়ার দিয়ে প্রদর্শন করি: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### ছবির জেনারেশন সম্পর্কে আরও বিস্তারিত - -চলুন ছবির জেনারেশন কোডটি আরও বিস্তারিত দেখি: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt**, হলো টেক্সট প্রম্পট যা ছবি তৈরি করতে ব্যবহৃত হয়। এখানে আমরা ব্যবহার করছি "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils"। -- **size**, তৈরি হওয়া ছবির আকার। এখানে 1024x1024 পিক্সেল। -- **n**, তৈরি হওয়া ছবির সংখ্যা। এখানে দুইটি ছবি তৈরি করা হচ্ছে। -- **temperature**, একটি প্যারামিটার যা জেনারেটিভ AI মডেলের আউটপুটের র‍্যান্ডমনেস নিয়ন্ত্রণ করে। এর মান 0 থেকে 1 এর মধ্যে হয়, যেখানে 0 মানে আউটপুট নির্ধারিত এবং 1 মানে আউটপুট সম্পূর্ণ র‍্যান্ডম। ডিফল্ট মান 0.7। - -পরবর্তী অংশে আমরা ছবির সাথে আরও কাজ করার বিষয়গুলো আলোচনা করব। - -## ইমেজ জেনারেশনের অতিরিক্ত ক্ষমতা - -এখন পর্যন্ত আপনি দেখেছেন কিভাবে কয়েক লাইনের পাইথন কোড দিয়ে ছবি তৈরি করা যায়। তবে, ছবির সাথে আরও অনেক কিছু করা সম্ভব। - -আপনি নিম্নলিখিত কাজগুলোও করতে পারেন: - -- **সম্পাদনা করা**। একটি বিদ্যমান ছবির জন্য মাস্ক এবং প্রম্পট দিয়ে ছবির অংশ পরিবর্তন করা যায়। উদাহরণস্বরূপ, আমাদের খরগোশের ছবিতে একটি টুপি যোগ করা যেতে পারে। এর জন্য ছবিটি, মাস্ক (যেখানে পরিবর্তন হবে সেই অংশ চিহ্নিত করে) এবং টেক্সট প্রম্পট দিতে হবে। - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - বেসিক ছবিতে শুধুমাত্র খরগোশ থাকবে, কিন্তু চূড়ান্ত ছবিতে খরগোশের মাথায় টুপি থাকবে। - -- **ভ্যারিয়েশন তৈরি করা**। বিদ্যমান একটি ছবি নিয়ে তার বিভিন্ন রূপ তৈরি করা যায়। ভ্যারিয়েশন তৈরি করতে, একটি ছবি এবং টেক্সট প্রম্পট দিয়ে নিচের মতো কোড ব্যবহার করা হয়: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > লক্ষ্য করুন, এটি শুধুমাত্র OpenAI তে সমর্থিত। - -## Temperature - -Temperature হলো একটি প্যারামিটার যা জেনারেটিভ AI মডেলের আউটপুটের র‍্যান্ডমনেস নিয়ন্ত্রণ করে। এর মান 0 থেকে 1 এর মধ্যে হয়, যেখানে 0 মানে আউটপুট নির্ধারিত এবং 1 মানে আউটপুট সম্পূর্ণ র‍্যান্ডম। ডিফল্ট মান 0.7। - -চলুন একটি উদাহরণ দেখি temperature কীভাবে কাজ করে, নিচের প্রম্পটটি দুইবার চালিয়ে: - -> প্রম্পট: "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils" - -![Bunny on a horse holding a lollipop, version 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.bn.png) - -এখন একই প্রম্পট আবার চালাই, দেখতে পাবো একই ছবি আসবে না: - -![Generated image of bunny on horse](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.bn.png) - -আপনি দেখতে পাচ্ছেন, ছবিগুলো মিল আছে কিন্তু এক নয়। এবার temperature মান 0.1 করে দেখি কী হয়: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Temperature পরিবর্তন - -চলুন আউটপুটকে আরও নির্ধারিত করার চেষ্টা করি। আমরা দেখেছি প্রথম ছবিতে খরগোশ আছে, দ্বিতীয় ছবিতে ঘোড়া, তাই ছবিগুলো অনেক ভিন্ন। - -সুতরাং, আমাদের কোড পরিবর্তন করে temperature 0 করি, যেমন: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -এখন কোড চালালে এই দুই ছবি পাবেন: - -- ![Temperature 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.bn.png) -- ![Temperature 0 , v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.bn.png) - -এখানে স্পষ্ট দেখা যাচ্ছে ছবিগুলো একে অপরের সাথে অনেক বেশি মিল রয়েছে। - -## মেটাপ্রম্পট দিয়ে আপনার অ্যাপ্লিকেশনের সীমা নির্ধারণ করা - -আমাদের ডেমোতে আমরা ইতোমধ্যেই ক্লায়েন্টদের জন্য ছবি তৈরি করতে পারি। তবে, আমাদের অ্যাপ্লিকেশনের জন্য কিছু সীমা তৈরি করা দরকার। - -উদাহরণস্বরূপ, আমরা এমন ছবি তৈরি করতে চাই না যা কাজের জন্য নিরাপদ নয়, বা যা শিশুদের জন্য উপযুক্ত নয়। - -আমরা এটি _মেটাপ্রম্পট_ ব্যবহার করে করতে পারি। মেটাপ্রম্পট হলো টেক্সট প্রম্পট যা জেনারেটিভ AI মডেলের আউটপুট নিয়ন্ত্রণ করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, আমরা মেটাপ্রম্পট ব্যবহার করে নিশ্চিত করতে পারি যে তৈরি হওয়া ছবি কাজের জন্য নিরাপদ এবং শিশুদের জন্য উপযুক্ত। - -### এটি কীভাবে কাজ করে? - -মেটাপ্রম্পট কীভাবে কাজ করে? - -মেটাপ্রম্পট হলো টেক্সট প্রম্পট যা মডেলের আউটপুট নিয়ন্ত্রণ করে, এগুলো টেক্সট প্রম্পটের আগে রাখা হয় এবং মডেলের আউটপুট নিয়ন্ত্রণের জন্য অ্যাপ্লিকেশনে এমবেড করা হয়। প্রম্পট ইনপুট এবং মেটাপ্রম্পট ইনপুট একত্রে একটি টেক্সট প্রম্পট হিসেবে ব্যবহৃত হয়। - -মেটাপ্রম্পটের একটি উদাহরণ হতে পারে: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -এখন, চলুন দেখি কিভাবে আমরা আমাদের ডেমোতে মেটাপ্রম্পট ব্যবহার করতে পারি। - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -উপরের প্রম্পট থেকে দেখা যায় কিভাবে তৈরি হওয়া সব ছবি মেটাপ্রম্পট বিবেচনা করে তৈরি হচ্ছে। - -## অ্যাসাইনমেন্ট - শিক্ষার্থীদের সক্ষম করুন - -এই পাঠের শুরুতে আমরা Edu4All পরিচয় করিয়েছি। এখন শিক্ষার্থীদের তাদের মূল্যায়নের জন্য ছবি তৈরি করার সুযোগ দেওয়ার সময়। - -শিক্ষার্থীরা তাদের মূল্যায়নের জন্য স্মৃতিস্তম্ভের ছবি তৈরি করবে, কোন স্মৃতিস্তম্ভ হবে তা শিক্ষার্থীদের উপর নির্ভর করবে। শিক্ষার্থীদের সৃজনশীলতা ব্যবহার করে এই স্মৃতিস্তম্ভগুলো বিভিন্ন প্রেক্ষাপটে স্থাপন করতে বলা হয়েছে। - -## সমাধান - -এখানে একটি সম্ভাব্য সমাধান: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## অসাধারণ কাজ! আপনার শেখা চালিয়ে যান - -এই পাঠ শেষ করার পর, আমাদের [Generative AI Learning collection](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) দেখুন এবং আপনার জেনারেটিভ AI জ্ঞান আরও উন্নত করুন! - -পরবর্তী পাঠে যান যেখানে আমরা দেখব কিভাবে [লো-কোড দিয়ে AI অ্যাপ্লিকেশন তৈরি করবেন](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**অস্বীকৃতি**: -এই নথিটি AI অনুবাদ সেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনূদিত হয়েছে। আমরা যথাসাধ্য সঠিকতার চেষ্টা করি, তবে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল নথিটি তার নিজস্ব ভাষায়ই কর্তৃত্বপূর্ণ উৎস হিসেবে বিবেচিত হওয়া উচিত। গুরুত্বপূর্ণ তথ্যের জন্য পেশাদার মানব অনুবাদ গ্রহণ করার পরামর্শ দেওয়া হয়। এই অনুবাদের ব্যবহারে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file + + + + diff --git a/translations/bn/12-designing-ux-for-ai-applications/README.md b/translations/bn/12-designing-ux-for-ai-applications/README.md index 71ceeb1a5..e6562edf3 100644 --- a/translations/bn/12-designing-ux-for-ai-applications/README.md +++ b/translations/bn/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# AI অ্যাপ্লিকেশনের জন্য UX ডিজাইন করা - -[![Designing UX for AI Applications](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.bn.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(এই পাঠের ভিডিও দেখতে উপরের ছবিতে ক্লিক করুন)_ - -ইউজার এক্সপেরিয়েন্স (UX) অ্যাপ তৈরি করার একটি অত্যন্ত গুরুত্বপূর্ণ দিক। ব্যবহারকারীদের আপনার অ্যাপটি দক্ষতার সঙ্গে ব্যবহার করতে পারা দরকার যাতে তারা তাদের কাজ সম্পন্ন করতে পারে। দক্ষ হওয়া একটি বিষয়, কিন্তু আপনাকে এমনভাবে অ্যাপ ডিজাইন করতেও হবে যাতে সবাই এটি ব্যবহার করতে পারে, অর্থাৎ অ্যাপটি _অ্যাক্সেসিবল_ হয়। এই অধ্যায়টি এই দিকটিতে ফোকাস করবে যাতে আপনি এমন একটি অ্যাপ ডিজাইন করতে পারেন যা মানুষ ব্যবহার করতে চায় এবং ব্যবহার করতে পারে। - -## পরিচিতি - -ইউজার এক্সপেরিয়েন্স হলো ব্যবহারকারীর একটি নির্দিষ্ট পণ্য বা সেবা, যেমন সিস্টেম, টুল বা ডিজাইনের সঙ্গে ইন্টারঅ্যাকশন এবং ব্যবহার করার পদ্ধতি। AI অ্যাপ্লিকেশন তৈরি করার সময়, ডেভেলপাররা শুধু কার্যকর UX নিশ্চিত করাই নয়, বরং নৈতিকতাও বিবেচনা করে। এই পাঠে আমরা কিভাবে ব্যবহারকারীর চাহিদা পূরণ করে Artificial Intelligence (AI) অ্যাপ্লিকেশন তৈরি করা যায় তা আলোচনা করব। - -এই পাঠে নিম্নলিখিত বিষয়গুলো আলোচনা করা হবে: - -- ইউজার এক্সপেরিয়েন্সের পরিচিতি এবং ব্যবহারকারীর চাহিদা বোঝা -- বিশ্বাস এবং স্বচ্ছতার জন্য AI অ্যাপ্লিকেশন ডিজাইন করা -- সহযোগিতা এবং ফিডব্যাকের জন্য AI অ্যাপ্লিকেশন ডিজাইন করা - -## শেখার লক্ষ্য - -এই পাঠ শেষ করার পর, আপনি সক্ষম হবেন: - -- ব্যবহারকারীর চাহিদা পূরণ করে AI অ্যাপ্লিকেশন তৈরি করতে। -- বিশ্বাস এবং সহযোগিতা বাড়ানোর জন্য AI অ্যাপ্লিকেশন ডিজাইন করতে। - -### পূর্বশর্ত - -কিছু সময় নিয়ে [user experience এবং design thinking সম্পর্কে](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) আরও পড়ুন। - -## ইউজার এক্সপেরিয়েন্সের পরিচিতি এবং ব্যবহারকারীর চাহিদা বোঝা - -আমাদের কাল্পনিক শিক্ষা স্টার্টআপে দুই ধরনের প্রধান ব্যবহারকারী আছেন, শিক্ষক এবং ছাত্র। প্রত্যেকের আলাদা আলাদা চাহিদা রয়েছে। একটি ইউজার-সেন্ট্রিক ডিজাইন ব্যবহারকারীর প্রাধান্য দেয় যাতে পণ্যগুলো তাদের জন্য প্রাসঙ্গিক এবং উপকারী হয় যাদের জন্য তা তৈরি করা হয়েছে। - -অ্যাপ্লিকেশনটি **উপযোগী, নির্ভরযোগ্য, অ্যাক্সেসিবল এবং আনন্দদায়ক** হতে হবে যাতে ভালো ইউজার এক্সপেরিয়েন্স নিশ্চিত হয়। - -### ব্যবহারযোগ্যতা - -উপযোগী হওয়ার মানে হলো অ্যাপ্লিকেশনের ফাংশনালিটি তার উদ্দেশ্যের সাথে মেলে, যেমন গ্রেডিং প্রক্রিয়া স্বয়ংক্রিয় করা বা রিভিশনের জন্য ফ্ল্যাশকার্ড তৈরি করা। একটি গ্রেডিং প্রক্রিয়া স্বয়ংক্রিয় অ্যাপ্লিকেশনকে নির্ধারিত মানদণ্ড অনুযায়ী ছাত্রদের কাজের সঠিক এবং দক্ষ স্কোর দিতে সক্ষম হতে হবে। একইভাবে, একটি রিভিশন ফ্ল্যাশকার্ড তৈরি করা অ্যাপ্লিকেশন তার ডেটার ভিত্তিতে প্রাসঙ্গিক এবং বৈচিত্র্যময় প্রশ্ন তৈরি করতে পারবে। - -### নির্ভরযোগ্যতা - -নির্ভরযোগ্য হওয়ার মানে হলো অ্যাপ্লিকেশন তার কাজ ধারাবাহিকভাবে এবং ত্রুটিমুক্ত করতে পারে। তবে, AI মানুষের মতোই নিখুঁত নয় এবং ত্রুটির সম্ভাবনা থাকে। অ্যাপ্লিকেশনগুলো ত্রুটি বা অপ্রত্যাশিত পরিস্থিতির সম্মুখীন হতে পারে যেখানে মানুষের হস্তক্ষেপ বা সংশোধন প্রয়োজন। আপনি কীভাবে ত্রুটি মোকাবেলা করবেন? এই পাঠের শেষ অংশে আমরা আলোচনা করব কিভাবে AI সিস্টেম এবং অ্যাপ্লিকেশনগুলো সহযোগিতা এবং ফিডব্যাকের জন্য ডিজাইন করা হয়। - -### অ্যাক্সেসিবিলিটি - -অ্যাক্সেসিবল হওয়ার মানে হলো বিভিন্ন সক্ষমতার ব্যবহারকারীদের জন্য ইউজার এক্সপেরিয়েন্স প্রসারিত করা, যার মধ্যে প্রতিবন্ধী ব্যক্তিরাও অন্তর্ভুক্ত, যাতে কেউ বাদ না পড়ে। অ্যাক্সেসিবিলিটি গাইডলাইন এবং নীতিমালা অনুসরণ করে AI সমাধানগুলো আরও অন্তর্ভুক্তিমূলক, ব্যবহারযোগ্য এবং সকলের জন্য উপকারী হয়। - -### আনন্দদায়ক - -আনন্দদায়ক হওয়ার মানে হলো অ্যাপ্লিকেশনটি ব্যবহার করতে মজার হওয়া। আকর্ষণীয় ইউজার এক্সপেরিয়েন্স ব্যবহারকারীর উপর ইতিবাচক প্রভাব ফেলে, তাদের অ্যাপ্লিকেশনে ফিরে আসার জন্য উৎসাহিত করে এবং ব্যবসার আয় বাড়ায়। - -![image illustrating UX considerations in AI](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.bn.png) - -প্রতিটি চ্যালেঞ্জ AI দিয়ে সমাধান করা যায় না। AI আসে আপনার ইউজার এক্সপেরিয়েন্স বাড়ানোর জন্য, যেমন ম্যানুয়াল কাজ স্বয়ংক্রিয় করা বা ব্যক্তিগতকৃত ইউজার এক্সপেরিয়েন্স তৈরি করা। - -## বিশ্বাস এবং স্বচ্ছতার জন্য AI অ্যাপ্লিকেশন ডিজাইন করা - -AI অ্যাপ্লিকেশন ডিজাইনে বিশ্বাস গড়ে তোলা অত্যন্ত গুরুত্বপূর্ণ। বিশ্বাস নিশ্চিত করে যে ব্যবহারকারী আত্মবিশ্বাসী যে অ্যাপ্লিকেশন কাজটি সম্পন্ন করবে, ধারাবাহিকভাবে ফলাফল দেবে এবং ফলাফলগুলোই ব্যবহারকারীর প্রয়োজন। এই ক্ষেত্রে ঝুঁকি হলো অবিশ্বাস এবং অতিরিক্ত বিশ্বাস। অবিশ্বাস ঘটে যখন ব্যবহারকারীর AI সিস্টেমের প্রতি খুব কম বা কোনো বিশ্বাস থাকে, যা অ্যাপ্লিকেশন প্রত্যাখ্যানের দিকে নিয়ে যায়। অতিরিক্ত বিশ্বাস ঘটে যখন ব্যবহারকারী AI সিস্টেমের ক্ষমতা অতিরিক্ত মূল্যায়ন করে, যার ফলে তারা AI সিস্টেমের ওপর অতিরিক্ত নির্ভর করে। উদাহরণস্বরূপ, একটি স্বয়ংক্রিয় গ্রেডিং সিস্টেমের ক্ষেত্রে অতিরিক্ত বিশ্বাসের ফলে শিক্ষক হয়তো কিছু কাগজপত্র যাচাই করবেন না, যা ছাত্রদের জন্য অন্যায় বা ভুল গ্রেডিং হতে পারে, অথবা ফিডব্যাক ও উন্নতির সুযোগ হারাতে পারে। - -বিশ্বাস ডিজাইনের কেন্দ্রে রাখার দুটি উপায় হলো explainability এবং control। - -### Explainability - -যখন AI সিদ্ধান্ত গ্রহণে সাহায্য করে, যেমন ভবিষ্যৎ প্রজন্মকে জ্ঞান প্রদান, তখন শিক্ষক এবং অভিভাবকদের জন্য বোঝা জরুরি AI কিভাবে সিদ্ধান্ত নেয়। এটিই explainability - AI অ্যাপ্লিকেশন কিভাবে সিদ্ধান্ত নেয় তা বোঝা। explainability ডিজাইনে AI অ্যাপ্লিকেশন কী করতে পারে তার উদাহরণ দেওয়া অন্তর্ভুক্ত থাকে। উদাহরণস্বরূপ, "Get started with AI teacher" এর পরিবর্তে সিস্টেম ব্যবহার করতে পারে: "AI ব্যবহার করে সহজ রিভিশনের জন্য আপনার নোট সারাংশ করুন।" - -![an app landing page with clear illustration of explainability in AI applications](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.bn.png) - -আরেকটি উদাহরণ হলো AI কিভাবে ব্যবহারকারী এবং ব্যক্তিগত ডেটা ব্যবহার করে। উদাহরণস্বরূপ, একজন ব্যবহারকারী যার persona ছাত্র, তার persona অনুযায়ী সীমাবদ্ধতা থাকতে পারে। AI হয়তো প্রশ্নের উত্তর সরাসরি দিতে পারবে না, কিন্তু ব্যবহারকারীকে চিন্তা করতে সাহায্য করতে পারে কিভাবে সমস্যার সমাধান করা যায়। - -![AI replying to questions based on persona](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.bn.png) - -explainability এর আরেকটি গুরুত্বপূর্ণ অংশ হলো ব্যাখ্যাগুলোকে সহজ করা। ছাত্র এবং শিক্ষকরা AI বিশেষজ্ঞ নাও হতে পারেন, তাই অ্যাপ্লিকেশন কী করতে পারে বা পারে না তার ব্যাখ্যা সহজ এবং বোঝার মতো হওয়া উচিত। - -![simplified explanations on AI capabilities](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.bn.png) - -### Control - -Generative AI ব্যবহারকারী এবং AI এর মধ্যে সহযোগিতা তৈরি করে, যেখানে ব্যবহারকারী বিভিন্ন ফলাফলের জন্য প্রম্পট পরিবর্তন করতে পারে। এছাড়াও, আউটপুট তৈরি হওয়ার পর ব্যবহারকারীরা ফলাফল পরিবর্তন করতে পারে, যা তাদের নিয়ন্ত্রণের অনুভূতি দেয়। উদাহরণস্বরূপ, Bing ব্যবহার করার সময়, আপনি ফরম্যাট, টোন এবং দৈর্ঘ্যের ভিত্তিতে প্রম্পট কাস্টমাইজ করতে পারেন। এছাড়াও, আপনি আউটপুটে পরিবর্তন যোগ করতে এবং আউটপুট পরিবর্তন করতে পারেন, যেমন নিচের ছবিতে দেখানো হয়েছে: - -![Bing search results with options to modify the prompt and output](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.bn.png) - -Bing এর আরেকটি ফিচার যা ব্যবহারকারীকে অ্যাপ্লিকেশনের উপর নিয়ন্ত্রণ দেয় তা হলো AI যে ডেটা ব্যবহার করে তার জন্য opt-in এবং opt-out করার সুবিধা। একটি স্কুল অ্যাপ্লিকেশনে, একজন ছাত্র হয়তো তার নোট এবং শিক্ষকদের রিসোর্স উভয়কেই রিভিশন ম্যাটেরিয়াল হিসেবে ব্যবহার করতে চাইতে পারে। - -![Bing search results with options to modify the prompt and output](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.bn.png) - -> AI অ্যাপ্লিকেশন ডিজাইনের সময়, উদ্দেশ্যমূলক হওয়া গুরুত্বপূর্ণ যাতে ব্যবহারকারীরা অতিরিক্ত বিশ্বাস না করে এবং AI এর ক্ষমতার জন্য অবাস্তব প্রত্যাশা না করে। এর একটি উপায় হলো প্রম্পট এবং ফলাফলের মধ্যে কিছু বাধা তৈরি করা, ব্যবহারকারীকে স্মরণ করিয়ে দেওয়া যে এটি AI, একজন মানুষের মতো নয়। - -## সহযোগিতা এবং ফিডব্যাকের জন্য AI অ্যাপ্লিকেশন ডিজাইন করা - -আগে উল্লেখ করা হয়েছে, generative AI ব্যবহারকারী এবং AI এর মধ্যে সহযোগিতা তৈরি করে। বেশিরভাগ ক্ষেত্রে ব্যবহারকারী একটি প্রম্পট ইনপুট দেয় এবং AI আউটপুট তৈরি করে। যদি আউটপুট ভুল হয় তাহলে কী হবে? অ্যাপ্লিকেশন কীভাবে ত্রুটি মোকাবেলা করবে? AI ব্যবহারকারীকে দোষারোপ করবে নাকি ত্রুটির ব্যাখ্যা দেবে? - -AI অ্যাপ্লিকেশনগুলোকে ফিডব্যাক গ্রহণ এবং প্রদান করার জন্য তৈরি করা উচিত। এটি শুধু AI সিস্টেমকে উন্নত করতে সাহায্য করে না, ব্যবহারকারীর সঙ্গে বিশ্বাসও গড়ে তোলে। ডিজাইনে একটি ফিডব্যাক লুপ থাকা উচিত, যেমন আউটপুটে সহজ একটি থাম্বস আপ বা ডাউন। - -আরেকটি উপায় হলো সিস্টেমের ক্ষমতা এবং সীমাবদ্ধতা স্পষ্টভাবে জানানো। যখন ব্যবহারকারী AI এর ক্ষমতার বাইরে কিছু চায়, তখন সেটি মোকাবেলা করার উপায় থাকা উচিত, যেমন নিচের ছবিতে দেখানো হয়েছে। - -![Giving feedback and handling errors](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.bn.png) - -সিস্টেম ত্রুটি সাধারণ, যেখানে ব্যবহারকারী হয়তো AI এর সীমার বাইরে তথ্যের জন্য সাহায্য চাইতে পারে বা অ্যাপ্লিকেশনের প্রশ্ন/বিষয় সীমা থাকতে পারে। উদাহরণস্বরূপ, একটি AI অ্যাপ্লিকেশন যা সীমিত বিষয় যেমন ইতিহাস এবং গণিতের ডেটা দিয়ে প্রশিক্ষিত, হয়তো ভূগোল সম্পর্কিত প্রশ্নের উত্তর দিতে পারবে না। এই পরিস্থিতি মোকাবেলায় AI সিস্টেম বলতে পারে: "দুঃখিত, আমাদের পণ্য নিম্নলিখিত বিষয়গুলোর ডেটা দিয়ে প্রশিক্ষিত হয়েছে..., আমি আপনার প্রশ্নের উত্তর দিতে পারছি না।" - -AI অ্যাপ্লিকেশন নিখুঁত নয়, তাই ভুল হওয়াই স্বাভাবিক। আপনার অ্যাপ ডিজাইন করার সময় ব্যবহারকারীর ফিডব্যাক এবং ত্রুটি মোকাবেলার জন্য সহজ এবং বোঝার মতো ব্যবস্থা রাখা উচিত। - -## অ্যাসাইনমেন্ট - -এখন পর্যন্ত আপনি যে কোনো AI অ্যাপ তৈরি করেছেন, সেগুলোতে নিচের ধাপগুলো প্রয়োগ করার কথা ভাবুন: - -- **আনন্দদায়ক:** কিভাবে আপনার অ্যাপ আরও আনন্দদায়ক করা যায় তা বিবেচনা করুন। আপনি কি সর্বত্র ব্যাখ্যা যোগ করছেন? ব্যবহারকারীকে অন্বেষণ করতে উৎসাহিত করছেন? আপনার ত্রুটি বার্তাগুলো কেমন শব্দায়িত হচ্ছে? - -- **ব্যবহারযোগ্যতা:** একটি ওয়েব অ্যাপ তৈরি করুন। নিশ্চিত করুন আপনার অ্যাপ মাউস এবং কীবোর্ড উভয় দিয়ে নেভিগেটযোগ্য। - -- **বিশ্বাস এবং স্বচ্ছতা:** AI এবং এর আউটপুট সম্পূর্ণরূপে বিশ্বাস করবেন না, কিভাবে একজন মানুষকে প্রক্রিয়ায় যুক্ত করে আউটপুট যাচাই করবেন তা বিবেচনা করুন। এছাড়াও, বিশ্বাস এবং স্বচ্ছতা অর্জনের অন্যান্য উপায় বিবেচনা ও প্রয়োগ করুন। - -- **নিয়ন্ত্রণ:** ব্যবহারকারীকে তাদের ডেটার উপর নিয়ন্ত্রণ দিন যা তারা অ্যাপ্লিকেশনে প্রদান করে। AI অ্যাপ্লিকেশনে ডেটা সংগ্রহে opt-in এবং opt-out করার ব্যবস্থা করুন। - -## আপনার শেখা চালিয়ে যান! - -এই পাঠ শেষ করার পর, আমাদের [Generative AI Learning collection](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) দেখুন এবং আপনার Generative AI জ্ঞান আরও উন্নত করুন! - -পরবর্তী পাঠ ১৩ এ যান, যেখানে আমরা দেখব কিভাবে [AI অ্যাপ্লিকেশন সুরক্ষিত করা যায়](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**অস্বীকৃতি**: -এই নথিটি AI অনুবাদ সেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনূদিত হয়েছে। আমরা যথাসাধ্য সঠিকতার চেষ্টা করি, তবে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল নথিটি তার নিজস্ব ভাষায়ই কর্তৃত্বপূর্ণ উৎস হিসেবে বিবেচিত হওয়া উচিত। গুরুত্বপূর্ণ তথ্যের জন্য পেশাদার মানব অনুবাদ গ্রহণ করার পরামর্শ দেওয়া হয়। এই অনুবাদের ব্যবহারে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file + + + diff --git a/translations/bn/README.md b/translations/bn/README.md index d9e91cc0b..39410cd13 100644 --- a/translations/bn/README.md +++ b/translations/bn/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.bn.png) - -### ২১টি পাঠ যা শেখাবে Generative AI অ্যাপ্লিকেশন তৈরি শুরু করার জন্য যা কিছু জানা দরকার - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 বহুভাষিক সমর্থন - -#### GitHub Action এর মাধ্যমে সমর্থিত (স্বয়ংক্রিয় ও সর্বদা আপডেটেড) - -[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](./README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md) - -# Generative AI for Beginners (ভার্সন ৩) - একটি কোর্স - -Microsoft Cloud Advocates এর ২১টি পাঠের বিস্তৃত কোর্সের মাধ্যমে Generative AI অ্যাপ্লিকেশন তৈরি করার মৌলিক বিষয়গুলো শিখুন। - -## 🌱 শুরু করা যাক - -এই কোর্সে ২১টি পাঠ রয়েছে। প্রতিটি পাঠ আলাদা বিষয় নিয়ে কাজ করে, তাই আপনার পছন্দমতো যেখান থেকে শুরু করতে পারেন! - -পাঠগুলো "Learn" নামে লেবেল করা হয়েছে যেখানে Generative AI এর ধারণা ব্যাখ্যা করা হয়, অথবা "Build" নামে লেবেল করা হয়েছে যেখানে ধারণা এবং কোড উদাহরণ দেওয়া হয়, যা সম্ভব হলে **Python** এবং **TypeScript** উভয় ভাষায় দেওয়া হয়েছে। - -.NET ডেভেলপারদের জন্য দেখুন [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -প্রতিটি পাঠে "Keep Learning" অংশও রয়েছে যেখানে অতিরিক্ত শেখার উপকরণ দেওয়া হয়েছে। - -## আপনার যা দরকার -### এই কোর্সের কোড চালানোর জন্য আপনি ব্যবহার করতে পারেন: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **পাঠ:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **পাঠ:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **পাঠ:** "oai-assignment" - -- Python বা TypeScript এর মৌলিক জ্ঞান সহায়ক - \*সম্পূর্ণ নতুনদের জন্য এই [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) এবং [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) কোর্সগুলো দেখুন -- একটি GitHub অ্যাকাউন্ট যাতে আপনি [এই পুরো রিপোটি ফর্ক করতে পারেন](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) - -আমরা একটি **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** পাঠ তৈরি করেছি যা আপনার ডেভেলপমেন্ট পরিবেশ সেটআপে সাহায্য করবে। - -ভুলে যাবেন না [এই রিপোতে (🌟) স্টার দিতে](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) যাতে পরে সহজে খুঁজে পান। - -## 🧠 ডিপ্লয় করতে প্রস্তুত? - -আরো উন্নত কোড উদাহরণ খুঁজছেন? আমাদের [Generative AI কোড স্যাম্পল সংগ্রহ](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) দেখুন, যা **Python** এবং **TypeScript** উভয় ভাষায় রয়েছে। - -## 🗣️ অন্যান্য শিক্ষার্থীদের সাথে পরিচিত হন, সহায়তা পান - -আমাদের [আধিকারিক Azure AI Foundry Discord সার্ভারে](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) যোগ দিন, যেখানে এই কোর্সে অংশগ্রহণকারী অন্যান্য শিক্ষার্থীদের সাথে পরিচিত হতে এবং নেটওয়ার্ক গড়ে তুলতে পারবেন এবং সহায়তা পাবেন। - -প্রশ্ন করুন বা পণ্য সম্পর্কিত মতামত শেয়ার করুন আমাদের [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum) এ, যা GitHub এ রয়েছে। - -## 🚀 স্টার্টআপ তৈরি করছেন? - -[Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) এ সাইন আপ করুন এবং **বিনামূল্যে OpenAI ক্রেডিট** এবং Azure OpenAI Services এর মাধ্যমে OpenAI মডেল ব্যবহারের জন্য **$১৫০,০০০ পর্যন্ত Azure ক্রেডিট** পান। - -## 🙏 সাহায্য করতে চান? - -আপনার কোনো পরামর্শ আছে বা বানান বা কোডে ভুল পেয়েছেন? [ইস্যু তুলুন](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) অথবা [পুল রিকোয়েস্ট তৈরি করুন](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 প্রতিটি পাঠে রয়েছে: - -- বিষয়ের সংক্ষিপ্ত ভিডিও পরিচিতি -- README তে লেখা পাঠ -- Python এবং TypeScript কোড স্যাম্পল যা Azure OpenAI এবং OpenAI API সমর্থন করে -- শেখা চালিয়ে যাওয়ার জন্য অতিরিক্ত রিসোর্সের লিঙ্ক - -## 🗃️ পাঠসমূহ - -| # | **পাঠের লিঙ্ক** | **বর্ণনা** | **ভিডিও** | **অতিরিক্ত শেখার উপকরণ** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** আপনার ডেভেলপমেন্ট পরিবেশ কিভাবে সেটআপ করবেন | ভিডিও শীঘ্রই আসছে | [আরও জানুন](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introduction to Generative AI and LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Generative AI কী এবং Large Language Models (LLMs) কীভাবে কাজ করে তা বোঝা | [ভিডিও](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [আরও জানুন](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Exploring and comparing different LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** আপনার ব্যবহারের জন্য সঠিক মডেল কিভাবে নির্বাচন করবেন | [ভিডিও](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [আরও জানুন](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Using Generative AI Responsibly](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Generative AI অ্যাপ্লিকেশন দায়িত্বশীলভাবে কিভাবে তৈরি করবেন | [ভিডিও](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [আরও জানুন](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Understanding Prompt Engineering Fundamentals](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** প্রম্পট ইঞ্জিনিয়ারিং এর মৌলিক নিয়মাবলী হাতে-কলমে শেখা | [ভিডিও](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [আরও জানুন](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Creating Advanced Prompts](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** প্রম্পটের ফলাফল উন্নত করার জন্য উন্নত প্রম্পট ইঞ্জিনিয়ারিং কৌশল প্রয়োগ করা | [ভিডিও](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [আরও জানুন](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [টেক্সট জেনারেশন অ্যাপ্লিকেশন তৈরি](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **তৈরি করুন:** Azure OpenAI / OpenAI API ব্যবহার করে একটি টেক্সট জেনারেশন অ্যাপ্লিকেশন | [ভিডিও](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [আরও জানুন](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [চ্যাট অ্যাপ্লিকেশন তৈরি](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **তৈরি করুন:** চ্যাট অ্যাপ্লিকেশন দক্ষতার সাথে তৈরি ও ইন্টিগ্রেশনের কৌশলসমূহ। | [ভিডিও](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [আরও জানুন](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [সার্চ অ্যাপ্লিকেশন এবং ভেক্টর ডাটাবেস তৈরি](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **তৈরি করুন:** এমবেডিং ব্যবহার করে ডেটা অনুসন্ধানের জন্য একটি সার্চ অ্যাপ্লিকেশন। | [ভিডিও](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [আরও জানুন](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [ইমেজ জেনারেশন অ্যাপ্লিকেশন তৈরি](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **তৈরি করুন:** একটি ইমেজ জেনারেশন অ্যাপ্লিকেশন | [ভিডিও](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [আরও জানুন](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [লো কোড AI অ্যাপ্লিকেশন তৈরি](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **তৈরি করুন:** লো কোড টুল ব্যবহার করে একটি জেনারেটিভ AI অ্যাপ্লিকেশন | [ভিডিও](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [আরও জানুন](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [ফাংশন কলিং এর মাধ্যমে বাহ্যিক অ্যাপ্লিকেশন ইন্টিগ্রেশন](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **তৈরি করুন:** ফাংশন কলিং কী এবং অ্যাপ্লিকেশনগুলোর জন্য এর ব্যবহারিক ক্ষেত্রসমূহ | [ভিডিও](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [আরও জানুন](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [AI অ্যাপ্লিকেশনের জন্য UX ডিজাইন](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **শিখুন:** জেনারেটিভ AI অ্যাপ্লিকেশন তৈরি করার সময় UX ডিজাইন নীতিমালা কীভাবে প্রয়োগ করবেন | [ভিডিও](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [আরও জানুন](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [আপনার জেনারেটিভ AI অ্যাপ্লিকেশন সুরক্ষা](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **শিখুন:** AI সিস্টেমের বিরুদ্ধে হুমকি ও ঝুঁকি এবং সেগুলো সুরক্ষিত করার পদ্ধতি। | [ভিডিও](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [আরও জানুন](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [জেনারেটিভ AI অ্যাপ্লিকেশন লাইফসাইকেল](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **শিখুন:** LLM লাইফসাইকেল এবং LLMOps পরিচালনার জন্য টুল ও মেট্রিক্স | [ভিডিও](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [আরও জানুন](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [রিট্রিভাল অগমেন্টেড জেনারেশন (RAG) এবং ভেক্টর ডাটাবেস](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **তৈরি করুন:** RAG ফ্রেমওয়ার্ক ব্যবহার করে ভেক্টর ডাটাবেস থেকে এমবেডিংস রিট্রিভ করার একটি অ্যাপ্লিকেশন | [ভিডিও](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [আরও জানুন](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [ওপেন সোর্স মডেল এবং Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **তৈরি করুন:** Hugging Face এ উপলব্ধ ওপেন সোর্স মডেল ব্যবহার করে একটি অ্যাপ্লিকেশন | [ভিডিও](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [আরও জানুন](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI এজেন্টস](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **তৈরি করুন:** একটি AI এজেন্ট ফ্রেমওয়ার্ক ব্যবহার করে একটি অ্যাপ্লিকেশন | [ভিডিও](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [আরও জানুন](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [LLM ফাইন-টিউনিং](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **শিখুন:** LLM ফাইন-টিউনিং কী, কেন এবং কীভাবে করবেন | [ভিডিও](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [আরও জানুন](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [SLM দিয়ে তৈরি](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **শিখুন:** ছোট ভাষা মডেল ব্যবহার করে তৈরি করার সুবিধাসমূহ | ভিডিও শীঘ্রই আসছে | [আরও জানুন](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Mistral মডেল দিয়ে তৈরি](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **শিখুন:** Mistral ফ্যামিলি মডেলের বৈশিষ্ট্য ও পার্থক্যসমূহ | ভিডিও শীঘ্রই আসছে | [আরও জানুন](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Meta মডেল দিয়ে তৈরি](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **শিখুন:** Meta ফ্যামিলি মডেলের বৈশিষ্ট্য ও পার্থক্যসমূহ | ভিডিও শীঘ্রই আসছে | [আরও জানুন](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 বিশেষ ধন্যবাদ - -[**John Aziz**](https://www.linkedin.com/in/john0isaac/) কে বিশেষ ধন্যবাদ, যিনি সমস্ত GitHub Actions এবং ওয়ার্কফ্লো তৈরি করেছেন - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) কে ধন্যবাদ, যিনি প্রতিটি পাঠে শিক্ষার্থী ও কোড অভিজ্ঞতা উন্নত করার জন্য গুরুত্বপূর্ণ অবদান রেখেছেন। - -## 🎒 অন্যান্য কোর্সসমূহ - -আমাদের দল অন্যান্য কোর্সও তৈরি করে! দেখুন: - -- [**নতুন** Model Context Protocol for Beginners](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI Agents for Beginners](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Generative AI for Beginners using .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Generative AI for Beginners using JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML for Beginners](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Data Science for Beginners](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI for Beginners](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Cybersecurity for Beginners](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Web Dev for Beginners](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT for Beginners](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR Development for Beginners](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Mastering GitHub Copilot for AI Paired Programming](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Mastering GitHub Copilot for C#/.NET Developers](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Choose Your Own Copilot Adventure](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**অস্বীকৃতি**: -এই নথিটি AI অনুবাদ সেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনূদিত হয়েছে। আমরা যথাসাধ্য সঠিকতার চেষ্টা করি, তবে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল নথিটি তার নিজস্ব ভাষায়ই কর্তৃত্বপূর্ণ উৎস হিসেবে বিবেচিত হওয়া উচিত। গুরুত্বপূর্ণ তথ্যের জন্য পেশাদার মানব অনুবাদ গ্রহণ করার পরামর্শ দেওয়া হয়। এই অনুবাদের ব্যবহারে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file + + + + diff --git a/translations/br/00-course-setup/01-setup-cloud.md b/translations/br/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..0f30484f6 --- /dev/null +++ b/translations/br/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/br/00-course-setup/02-setup-local.md b/translations/br/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..67fa79d01 --- /dev/null +++ b/translations/br/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/br/00-course-setup/03-providers.md b/translations/br/00-course-setup/03-providers.md new file mode 100644 index 000000000..a5c4db6ae --- /dev/null +++ b/translations/br/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/br/00-course-setup/README.md b/translations/br/00-course-setup/README.md index d37af0882..e592afc06 100644 --- a/translations/br/00-course-setup/README.md +++ b/translations/br/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# Começando com este curso - -Estamos muito animados para você começar este curso e ver o que vai se inspirar a criar com IA Generativa! - -Para garantir seu sucesso, esta página descreve os passos de configuração, os requisitos técnicos e onde obter ajuda, se necessário. - -## Passos de Configuração - -Para começar a fazer este curso, você precisará completar os seguintes passos. - -### 1. Faça um fork deste repositório - -[Fork este repositório completo](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) para sua própria conta no GitHub para poder alterar qualquer código e completar os desafios. Você também pode [dar uma estrela (🌟) neste repositório](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) para encontrá-lo e encontrar repositórios relacionados com mais facilidade. - -### 2. Crie um codespace - -Para evitar problemas de dependência ao executar o código, recomendamos rodar este curso em um [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst). - -Isso pode ser criado selecionando a opção `Code` na sua versão forkada deste repositório e escolhendo a opção **Codespaces**. - -![Diálogo mostrando botões para criar um codespace](../../../00-course-setup/images/who-will-pay.webp) - -### 3. Armazenando suas chaves de API - -Manter suas chaves de API seguras é importante ao construir qualquer tipo de aplicação. Recomendamos não armazenar nenhuma chave de API diretamente no seu código. Cometer esses detalhes em um repositório público pode resultar em problemas de segurança e até custos indesejados se usados por alguém mal-intencionado. -Aqui está um guia passo a passo de como criar um arquivo `.env` para Python e adicionar o `GITHUB_TOKEN`: - -1. **Navegue até o diretório do seu projeto**: Abra seu terminal ou prompt de comando e navegue até o diretório raiz do seu projeto onde deseja criar o arquivo `.env`. - - ```bash - cd path/to/your/project - ``` - -2. **Crie o arquivo `.env`**: Use seu editor de texto preferido para criar um novo arquivo chamado `.env`. Se estiver usando a linha de comando, você pode usar `touch` (em sistemas baseados em Unix) ou `echo` (no Windows): - - Sistemas baseados em Unix: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **Edite o arquivo `.env`**: Abra o arquivo `.env` em um editor de texto (ex: VS Code, Notepad++ ou qualquer outro editor). Adicione a seguinte linha no arquivo, substituindo `your_github_token_here` pelo seu token real do GitHub: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Salve o arquivo**: Salve as alterações e feche o editor de texto. - -5. **Instale o `python-dotenv`**: Se ainda não instalou, será necessário instalar o pacote `python-dotenv` para carregar variáveis de ambiente do arquivo `.env` para sua aplicação Python. Você pode instalá-lo usando o `pip`: - - ```bash - pip install python-dotenv - ``` - -6. **Carregue as variáveis de ambiente no seu script Python**: No seu script Python, use o pacote `python-dotenv` para carregar as variáveis de ambiente do arquivo `.env`: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -Pronto! Você criou com sucesso um arquivo `.env`, adicionou seu token do GitHub e o carregou na sua aplicação Python. - -## Como rodar localmente no seu computador - -Para rodar o código localmente no seu computador, você precisará ter alguma versão do [Python instalado](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -Para usar o repositório, você precisa cloná-lo: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -Depois de ter tudo configurado, você pode começar! - -## Passos Opcionais - -### Instalando Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) é um instalador leve para instalar o [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python, além de alguns pacotes. -O Conda é um gerenciador de pacotes que facilita configurar e alternar entre diferentes [**ambientes virtuais**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) e pacotes Python. Também é útil para instalar pacotes que não estão disponíveis via `pip`. - -Você pode seguir o [guia de instalação do MiniConda](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) para configurá-lo. - -Com o Miniconda instalado, você precisa clonar o [repositório](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (se ainda não fez isso). - -Em seguida, você precisa criar um ambiente virtual. Para isso, com o Conda, crie um novo arquivo de ambiente (_environment.yml_). Se estiver acompanhando usando Codespaces, crie este arquivo dentro do diretório `.devcontainer`, ou seja, `.devcontainer/environment.yml`. - -Preencha seu arquivo de ambiente com o trecho abaixo: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Se você encontrar erros usando conda, pode instalar manualmente as Bibliotecas Microsoft AI usando o seguinte comando no terminal. - -``` -conda install -c microsoft azure-ai-ml -``` - -O arquivo de ambiente especifica as dependências que precisamos. `` se refere ao nome que você deseja usar para seu ambiente Conda, e `` é a versão do Python que você quer usar, por exemplo, `3` é a última versão principal do Python. - -Com isso feito, você pode criar seu ambiente Conda executando os comandos abaixo no seu terminal/linha de comando: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -Consulte o [guia de ambientes Conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst) se tiver algum problema. - -### Usando Visual Studio Code com a extensão de suporte a Python - -Recomendamos usar o editor [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) com a [extensão de suporte a Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) instalada para este curso. Isso é mais uma recomendação do que uma exigência definitiva. - -> **Nota**: Ao abrir o repositório do curso no VS Code, você tem a opção de configurar o projeto dentro de um container. Isso é possível graças ao [diretório especial `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) presente no repositório do curso. Falaremos mais sobre isso depois. - -> **Nota**: Assim que você clonar e abrir o diretório no VS Code, ele sugerirá automaticamente que você instale a extensão de suporte a Python. - -> **Nota**: Se o VS Code sugerir que você reabra o repositório em um container, recuse essa solicitação para usar a versão do Python instalada localmente. - -### Usando Jupyter no navegador - -Você também pode trabalhar no projeto usando o ambiente [Jupyter](https://jupyter.org?WT.mc_id=academic-105485-koreyst) diretamente no seu navegador. Tanto o Jupyter clássico quanto o [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) oferecem um ambiente de desenvolvimento bastante agradável, com recursos como auto-completar, realce de código, etc. - -Para iniciar o Jupyter localmente, vá até o terminal/linha de comando, navegue até o diretório do curso e execute: - -```bash -jupyter notebook -``` - -ou - -```bash -jupyterhub -``` - -Isso iniciará uma instância do Jupyter e a URL para acessá-la será exibida na janela do terminal. - -Ao acessar a URL, você verá o sumário do curso e poderá navegar para qualquer arquivo `*.ipynb`. Por exemplo, `08-building-search-applications/python/oai-solution.ipynb`. - -### Rodando em um container - -Uma alternativa para configurar tudo no seu computador ou Codespace é usar um [container](../../../00-course-setup/). A pasta especial `.devcontainer` dentro do repositório do curso permite que o VS Code configure o projeto dentro de um container. Fora dos Codespaces, isso exigirá a instalação do Docker e, sinceramente, envolve um pouco de trabalho, então recomendamos isso apenas para quem tem experiência com containers. - -Uma das melhores formas de manter suas chaves de API seguras ao usar GitHub Codespaces é utilizando os Secrets do Codespace. Por favor, siga o guia de [gerenciamento de secrets no Codespaces](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) para saber mais. - -## Aulas e Requisitos Técnicos - -O curso tem 6 aulas conceituais e 6 aulas de programação. - -Para as aulas de programação, usamos o Azure OpenAI Service. Você precisará de acesso ao serviço Azure OpenAI e uma chave de API para rodar este código. Você pode solicitar acesso [preenchendo esta aplicação](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -Enquanto aguarda a aprovação da sua solicitação, cada aula de programação também inclui um arquivo `README.md` onde você pode ver o código e os resultados. - -## Usando o Azure OpenAI Service pela primeira vez - -Se esta é sua primeira vez trabalhando com o Azure OpenAI service, siga este guia de como [criar e implantar um recurso do Azure OpenAI Service.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## Usando a API OpenAI pela primeira vez - -Se esta é sua primeira vez trabalhando com a API OpenAI, siga o guia de como [criar e usar a Interface.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## Conheça outros aprendizes - -Criamos canais no nosso servidor oficial do [AI Community Discord](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) para você conhecer outros aprendizes. Esta é uma ótima forma de fazer networking com outros empreendedores, desenvolvedores, estudantes e qualquer pessoa que queira evoluir em IA Generativa. - -[![Entrar no canal do discord](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -A equipe do projeto também estará neste servidor Discord para ajudar os aprendizes. - -## Contribua - -Este curso é uma iniciativa open-source. Se você encontrar áreas para melhorar ou problemas, por favor crie um [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) ou registre uma [issue no GitHub](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -A equipe do projeto acompanhará todas as contribuições. Contribuir para open source é uma forma incrível de construir sua carreira em IA Generativa. - -A maioria das contribuições exige que você concorde com um Acordo de Licença de Contribuidor (CLA) declarando que você tem o direito e realmente concede a nós os direitos de usar sua contribuição. Para detalhes, visite o site do [CLA, Contributor License Agreement](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Importante: ao traduzir textos neste repositório, por favor, não use tradução automática. Verificaremos as traduções pela comunidade, então só se ofereça para traduzir idiomas nos quais você seja proficiente. - -Quando você enviar um pull request, um bot CLA determinará automaticamente se você precisa fornecer um CLA e marcará o PR adequadamente (ex: label, comentário). Basta seguir as instruções do bot. Você precisará fazer isso apenas uma vez para todos os repositórios que usam nosso CLA. - -Este projeto adotou o [Código de Conduta Open Source da Microsoft](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst). Para mais informações, leia as FAQs do Código de Conduta ou entre em contato pelo [Email opencode](opencode@microsoft.com) para dúvidas ou comentários adicionais. - -## Vamos Começar - -Agora que você completou os passos necessários para fazer este curso, vamos começar com uma [introdução à IA Generativa e LLMs](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**Aviso Legal**: -Este documento foi traduzido utilizando o serviço de tradução por IA [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos para garantir a precisão, esteja ciente de que traduções automáticas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autorizada. Para informações críticas, recomenda-se tradução profissional humana. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas decorrentes do uso desta tradução. \ No newline at end of file + + + + diff --git a/translations/br/00-course-setup/SETUP.md b/translations/br/00-course-setup/SETUP.md deleted file mode 100644 index 20265b190..000000000 --- a/translations/br/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# Configure Seu Ambiente de Desenvolvimento - -Configuramos este repositório e curso com um [container de desenvolvimento](https://containers.dev?WT.mc_id=academic-105485-koreyst) que possui um runtime Universal capaz de suportar desenvolvimento em Python3, .NET, Node.js e Java. A configuração relacionada está definida no arquivo `devcontainer.json` localizado na pasta `.devcontainer/` na raiz deste repositório. - -Para ativar o container de desenvolvimento, inicie-o no [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (para um runtime hospedado na nuvem) ou no [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (para um runtime hospedado localmente). Leia [esta documentação](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) para mais detalhes sobre como containers de desenvolvimento funcionam dentro do VS Code. - -> [!TIP] -> Recomendamos usar o GitHub Codespaces para um início rápido com esforço mínimo. Ele oferece uma generosa [cota de uso gratuita](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) para contas pessoais. Configure [timeouts](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) para parar ou excluir codespaces inativos e assim maximizar o uso da sua cota. - -## 1. Executando as Tarefas - -Cada aula terá tarefas _opcionais_ que podem ser fornecidas em uma ou mais linguagens de programação, incluindo: Python, .NET/C#, Java e JavaScript/TypeScript. Esta seção oferece orientações gerais relacionadas à execução dessas tarefas. - -### 1.1 Tarefas em Python - -As tarefas em Python são fornecidas como aplicações (`.py`) ou notebooks Jupyter (`.ipynb`). -- Para executar o notebook, abra-o no Visual Studio Code, clique em _Select Kernel_ (no canto superior direito) e selecione a opção padrão Python 3 exibida. Agora você pode usar _Run All_ para executar o notebook. -- Para executar aplicações Python via linha de comando, siga as instruções específicas da tarefa para garantir que você selecione os arquivos corretos e forneça os argumentos necessários. - -## 2. Configurando os Providers - -As tarefas **podem** também ser configuradas para funcionar com uma ou mais implantações de Large Language Models (LLM) através de um provedor de serviço suportado como OpenAI, Azure ou Hugging Face. Estes fornecem um _endpoint hospedado_ (API) que podemos acessar programaticamente com as credenciais corretas (chave API ou token). Neste curso, discutimos os seguintes providers: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) com diversos modelos, incluindo a série principal GPT. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) para modelos OpenAI com foco em prontidão empresarial. - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) para modelos open-source e servidor de inferência. - -**Você precisará usar suas próprias contas para esses exercícios**. As tarefas são opcionais, então você pode escolher configurar um, todos ou nenhum dos providers conforme seu interesse. Algumas orientações para cadastro: - -| Cadastro | Custo | Chave API | Playground | Comentários | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst) | [Preços](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst) | [Baseado em projeto](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [Sem código, Web](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Vários Modelos Disponíveis | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst) | [Preços](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst) | [SDK Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Studio Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [É necessário solicitar acesso antecipadamente](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) | -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Preços](https://huggingface.co/pricing) | [Tokens de Acesso](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst) | [Hugging Chat tem modelos limitados](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Siga as instruções abaixo para _configurar_ este repositório para uso com diferentes providers. Tarefas que exigem um provider específico terão uma destas tags no nome do arquivo: - - `aoai` - requer endpoint e chave Azure OpenAI - - `oai` - requer endpoint e chave OpenAI - - `hf` - requer token Hugging Face - -Você pode configurar um, nenhum ou todos os providers. Tarefas relacionadas simplesmente apresentarão erro se as credenciais estiverem ausentes. - -### 2.1. Criar arquivo `.env` - -Assumimos que você já leu as orientações acima, se cadastrou no provider relevante e obteve as credenciais de autenticação necessárias (API_KEY ou token). No caso do Azure OpenAI, assumimos também que você possui uma implantação válida de um serviço Azure OpenAI (endpoint) com pelo menos um modelo GPT implantado para chat completion. - -O próximo passo é configurar suas **variáveis de ambiente locais** da seguinte forma: - -1. Procure na pasta raiz um arquivo `.env.copy` que deve conter algo assim: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Copie esse arquivo para `.env` usando o comando abaixo. Este arquivo está _gitignore-d_, mantendo os segredos protegidos. - - ```bash - cp .env.copy .env - ``` - -3. Preencha os valores (substitua os placeholders à direita do `=`) conforme descrito na próxima seção. - -3. (Opcional) Se você usar GitHub Codespaces, tem a opção de salvar variáveis de ambiente como _segredos do Codespaces_ associados a este repositório. Nesse caso, não será necessário configurar um arquivo .env local. **Porém, note que essa opção funciona apenas se você usar GitHub Codespaces.** Você ainda precisará configurar o arquivo .env se usar Docker Desktop. - -### 2.2. Preencher arquivo `.env` - -Vamos dar uma olhada rápida nos nomes das variáveis para entender o que representam: - -| Variável | Descrição | -| :--- | :--- | -| HUGGING_FACE_API_KEY | Este é o token de acesso do usuário que você configurou no seu perfil | -| OPENAI_API_KEY | Esta é a chave de autorização para usar o serviço em endpoints OpenAI não Azure | -| AZURE_OPENAI_API_KEY | Esta é a chave de autorização para usar o serviço Azure OpenAI | -| AZURE_OPENAI_ENDPOINT | Este é o endpoint implantado para um recurso Azure OpenAI | -| AZURE_OPENAI_DEPLOYMENT | Este é o endpoint de implantação do modelo de _geração de texto_ | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | Este é o endpoint de implantação do modelo de _embeddings de texto_ | -| | | - -Observação: As duas últimas variáveis do Azure OpenAI refletem um modelo padrão para chat completion (geração de texto) e busca vetorial (embeddings), respectivamente. As instruções para configurá-las serão definidas nas tarefas relevantes. - -### 2.3 Configurar Azure: Pelo Portal - -Os valores do endpoint e da chave do Azure OpenAI podem ser encontrados no [Portal Azure](https://portal.azure.com?WT.mc_id=academic-105485-koreyst), então vamos começar por lá. - -1. Acesse o [Portal Azure](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -1. Clique na opção **Keys and Endpoint** na barra lateral (menu à esquerda). -1. Clique em **Show Keys** - você verá o seguinte: KEY 1, KEY 2 e Endpoint. -1. Use o valor da KEY 1 para AZURE_OPENAI_API_KEY -1. Use o valor do Endpoint para AZURE_OPENAI_ENDPOINT - -Agora, precisamos dos endpoints para os modelos específicos que implantamos. - -1. Clique na opção **Model deployments** na barra lateral (menu à esquerda) do recurso Azure OpenAI. -1. Na página de destino, clique em **Manage Deployments** - -Isso levará você ao site do Azure OpenAI Studio, onde encontraremos os outros valores conforme descrito abaixo. - -### 2.4 Configurar Azure: Pelo Studio - -1. Navegue até o [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **a partir do seu recurso**, conforme descrito acima. -1. Clique na aba **Deployments** (barra lateral, à esquerda) para ver os modelos atualmente implantados. -1. Se o modelo desejado não estiver implantado, use **Create new deployment** para implantá-lo. -1. Você precisará de um modelo de _text-generation_ - recomendamos: **gpt-35-turbo** -1. Você precisará de um modelo de _text-embedding_ - recomendamos **text-embedding-ada-002** - -Agora atualize as variáveis de ambiente para refletir o _nome da implantação_ usado. Normalmente será o mesmo nome do modelo, a menos que você tenha alterado explicitamente. Por exemplo, você pode ter: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**Não esqueça de salvar o arquivo .env ao terminar**. Agora você pode fechar o arquivo e voltar às instruções para executar o notebook. - -### 2.5 Configurar OpenAI: Pelo Perfil - -Sua chave API do OpenAI pode ser encontrada na sua [conta OpenAI](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). Se você não tiver uma, pode se cadastrar e criar uma chave API. Depois de obter a chave, use-a para preencher a variável `OPENAI_API_KEY` no arquivo `.env`. - -### 2.6 Configurar Hugging Face: Pelo Perfil - -Seu token Hugging Face pode ser encontrado no seu perfil em [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). Não publique ou compartilhe esses tokens publicamente. Em vez disso, crie um token novo para uso neste projeto e copie-o para o arquivo `.env` na variável `HUGGING_FACE_API_KEY`. _Nota:_ Tecnicamente, isso não é uma chave API, mas é usado para autenticação, então mantemos essa nomenclatura para consistência. - -**Aviso Legal**: -Este documento foi traduzido utilizando o serviço de tradução por IA [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos para garantir a precisão, esteja ciente de que traduções automáticas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autorizada. Para informações críticas, recomenda-se tradução profissional humana. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas decorrentes do uso desta tradução. \ No newline at end of file diff --git a/translations/br/04-prompt-engineering-fundamentals/README.md b/translations/br/04-prompt-engineering-fundamentals/README.md index c35cda036..2af7db3fb 100644 --- a/translations/br/04-prompt-engineering-fundamentals/README.md +++ b/translations/br/04-prompt-engineering-fundamentals/README.md @@ -1,458 +1,15 @@ - -# Fundamentos de Engenharia de Prompts - -[![Fundamentos de Engenharia de Prompts](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.br.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Introdução -Este módulo aborda conceitos e técnicas essenciais para criar prompts eficazes em modelos generativos de IA. A forma como você escreve seu prompt para um LLM também importa. Um prompt cuidadosamente elaborado pode alcançar uma resposta de melhor qualidade. Mas o que exatamente significam termos como _prompt_ e _engenharia de prompt_? E como posso melhorar o _input_ do prompt que envio para o LLM? Essas são as perguntas que tentaremos responder neste capítulo e no próximo. - -_A IA generativa_ é capaz de criar novos conteúdos (por exemplo, texto, imagens, áudio, código etc.) em resposta a solicitações dos usuários. Ela faz isso usando _Modelos de Linguagem de Grande Escala_ como a série GPT da OpenAI ("Generative Pre-trained Transformer"), que são treinados para usar linguagem natural e código. - -Os usuários agora podem interagir com esses modelos usando paradigmas familiares como chat, sem precisar de qualquer conhecimento técnico ou treinamento. Os modelos são _baseados em prompts_ – os usuários enviam um texto (prompt) e recebem a resposta da IA (completamento). Eles podem então "conversar com a IA" de forma iterativa, em diálogos de múltiplas interações, refinando seu prompt até que a resposta atenda às suas expectativas. - -"Prompts" agora se tornam a principal _interface de programação_ para aplicativos de IA generativa, dizendo aos modelos o que fazer e influenciando a qualidade das respostas retornadas. "Engenharia de Prompt" é um campo de estudo em rápido crescimento que foca no _design e otimização_ de prompts para entregar respostas consistentes e de qualidade em escala. - -## Objetivos de Aprendizagem - -Nesta lição, aprenderemos o que é Engenharia de Prompt, por que ela é importante e como podemos criar prompts mais eficazes para um determinado modelo e objetivo de aplicação. Entenderemos conceitos centrais e melhores práticas para engenharia de prompt – e conheceremos um ambiente interativo em Jupyter Notebooks, um "sandbox", onde podemos ver esses conceitos aplicados em exemplos reais. - -Ao final desta lição, seremos capazes de: - -1. Explicar o que é engenharia de prompt e por que ela importa. -2. Descrever os componentes de um prompt e como são usados. -3. Aprender melhores práticas e técnicas para engenharia de prompt. -4. Aplicar as técnicas aprendidas em exemplos reais, usando um endpoint da OpenAI. - -## Termos-Chave - -Engenharia de Prompt: A prática de projetar e refinar entradas para guiar modelos de IA a produzirem saídas desejadas. -Tokenização: O processo de converter texto em unidades menores, chamadas tokens, que um modelo pode entender e processar. -LLMs Ajustados por Instrução: Modelos de Linguagem de Grande Escala (LLMs) que foram ajustados com instruções específicas para melhorar a precisão e relevância das respostas. - -## Sandbox de Aprendizagem - -Engenharia de prompt é atualmente mais arte do que ciência. A melhor forma de melhorar nossa intuição é _praticar mais_ e adotar uma abordagem de tentativa e erro que combine expertise no domínio da aplicação com técnicas recomendadas e otimizações específicas para cada modelo. - -O Jupyter Notebook que acompanha esta lição oferece um ambiente _sandbox_ onde você pode experimentar o que aprendeu – conforme avança ou como parte do desafio de código no final. Para executar os exercícios, você precisará de: - -1. **Uma chave de API do Azure OpenAI** – o endpoint do serviço para um LLM implantado. -2. **Um ambiente Python** – onde o Notebook possa ser executado. -3. **Variáveis de ambiente locais** – _complete os passos do [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) agora para se preparar_. - -O notebook vem com exercícios _iniciais_ – mas você é incentivado a adicionar suas próprias seções de _Markdown_ (descrição) e _Código_ (solicitações de prompt) para testar mais exemplos ou ideias – e desenvolver sua intuição para o design de prompts. - -## Guia Ilustrado - -Quer ter uma visão geral do que esta lição cobre antes de começar? Confira este guia ilustrado, que oferece uma ideia dos principais tópicos abordados e os pontos-chave para você refletir em cada um. O roteiro da lição leva você desde o entendimento dos conceitos centrais e desafios até como enfrentá-los com técnicas relevantes de engenharia de prompt e melhores práticas. Note que a seção "Técnicas Avançadas" neste guia se refere ao conteúdo abordado no _próximo_ capítulo deste currículo. - -![Guia Ilustrado de Engenharia de Prompt](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.br.png) - -## Nossa Startup - -Agora, vamos falar sobre como _este tema_ se relaciona com a missão da nossa startup de [levar inovação em IA para a educação](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). Queremos construir aplicações de IA para _aprendizagem personalizada_ – então vamos pensar em como diferentes usuários do nosso aplicativo podem "criar" prompts: - -- **Administradores** podem pedir à IA para _analisar dados curriculares e identificar lacunas na cobertura_. A IA pode resumir os resultados ou visualizá-los com código. -- **Educadores** podem pedir à IA para _gerar um plano de aula para um público e tema específicos_. A IA pode construir o plano personalizado em um formato especificado. -- **Estudantes** podem pedir à IA para _tutorar em uma matéria difícil_. A IA pode agora guiar os estudantes com aulas, dicas e exemplos adaptados ao nível deles. - -Isso é só a ponta do iceberg. Confira [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) – uma biblioteca open-source de prompts curada por especialistas em educação – para ter uma noção mais ampla das possibilidades! _Experimente rodar alguns desses prompts no sandbox ou no OpenAI Playground para ver o que acontece!_ - - - -## O que é Engenharia de Prompt? - -Começamos esta lição definindo **Engenharia de Prompt** como o processo de _projetar e otimizar_ entradas de texto (prompts) para entregar respostas consistentes e de qualidade (completamentos) para um dado objetivo de aplicação e modelo. Podemos pensar nisso como um processo em 2 etapas: - -- _projetar_ o prompt inicial para um modelo e objetivo específicos -- _refinar_ o prompt iterativamente para melhorar a qualidade da resposta - -Esse é necessariamente um processo de tentativa e erro que requer intuição e esforço do usuário para obter resultados ótimos. Então, por que isso é importante? Para responder, precisamos primeiro entender três conceitos: - -- _Tokenização_ = como o modelo "vê" o prompt -- _LLMs Base_ = como o modelo base "processa" um prompt -- _LLMs Ajustados por Instrução_ = como o modelo pode agora entender "tarefas" - -### Tokenização - -Um LLM vê prompts como uma _sequência de tokens_, onde diferentes modelos (ou versões de um modelo) podem tokenizar o mesmo prompt de formas diferentes. Como os LLMs são treinados com tokens (e não com texto bruto), a forma como os prompts são tokenizados impacta diretamente a qualidade da resposta gerada. - -Para ter uma intuição de como a tokenização funciona, experimente ferramentas como o [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) mostrado abaixo. Copie seu prompt – e veja como ele é convertido em tokens, prestando atenção em como espaços em branco e sinais de pontuação são tratados. Note que este exemplo mostra um LLM mais antigo (GPT-3) – então tentar com um modelo mais novo pode gerar um resultado diferente. - -![Tokenização](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.br.png) - -### Conceito: Modelos Base - -Uma vez que um prompt é tokenizado, a função principal do ["LLM Base"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (ou modelo base) é prever o próximo token naquela sequência. Como os LLMs são treinados em grandes conjuntos de dados textuais, eles têm uma boa noção das relações estatísticas entre tokens e podem fazer essa previsão com certa confiança. Note que eles não entendem o _significado_ das palavras no prompt ou token; eles apenas veem um padrão que podem "completar" com sua próxima previsão. Eles podem continuar prevendo a sequência até serem interrompidos por intervenção do usuário ou alguma condição pré-estabelecida. - -Quer ver como funciona o completamento baseado em prompt? Insira o prompt acima no Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) com as configurações padrão. O sistema está configurado para tratar prompts como pedidos de informação – então você deve ver um completamento que satisfaça esse contexto. - -Mas e se o usuário quiser ver algo específico que atenda a algum critério ou objetivo de tarefa? É aí que os LLMs _ajustados por instrução_ entram em cena. - -![Completamento de Chat com LLM Base](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.br.png) - -### Conceito: LLMs Ajustados por Instrução - -Um [LLM Ajustado por Instrução](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) começa com o modelo base e o ajusta com exemplos ou pares de entrada/saída (por exemplo, "mensagens" de múltiplas interações) que podem conter instruções claras – e a resposta da IA tenta seguir essa instrução. - -Isso usa técnicas como Aprendizado por Reforço com Feedback Humano (RLHF) que podem treinar o modelo para _seguir instruções_ e _aprender com o feedback_, de modo que produza respostas mais adequadas a aplicações práticas e mais relevantes para os objetivos do usuário. - -Vamos experimentar – volte ao prompt acima, mas agora altere a _mensagem do sistema_ para fornecer a seguinte instrução como contexto: - -> _Resuma o conteúdo fornecido para um aluno da segunda série. Mantenha o resultado em um parágrafo com 3-5 tópicos em formato de lista._ - -Veja como o resultado agora está ajustado para refletir o objetivo e formato desejados? Um educador pode usar essa resposta diretamente em seus slides para aquela aula. - -![Completamento de Chat com LLM Ajustado por Instrução](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.br.png) - -## Por que precisamos de Engenharia de Prompt? - -Agora que sabemos como os prompts são processados pelos LLMs, vamos falar sobre _por que_ precisamos de engenharia de prompt. A resposta está no fato de que os LLMs atuais apresentam vários desafios que tornam _completamentos confiáveis e consistentes_ mais difíceis de alcançar sem esforço na construção e otimização do prompt. Por exemplo: - -1. **As respostas dos modelos são estocásticas.** O _mesmo prompt_ provavelmente produzirá respostas diferentes com modelos ou versões diferentes. E pode até gerar resultados diferentes com o _mesmo modelo_ em momentos distintos. _Técnicas de engenharia de prompt podem ajudar a minimizar essas variações, fornecendo melhores limites_. - -1. **Modelos podem fabricar respostas.** Os modelos são pré-treinados com conjuntos de dados _grandes, mas finitos_, o que significa que eles não têm conhecimento sobre conceitos fora desse escopo de treinamento. Como resultado, podem produzir completamentos imprecisos, imaginários ou diretamente contraditórios a fatos conhecidos. _Técnicas de engenharia de prompt ajudam os usuários a identificar e mitigar essas fabricações, por exemplo, pedindo citações ou raciocínio à IA_. - -1. **As capacidades dos modelos variam.** Modelos mais novos ou gerações diferentes terão capacidades mais ricas, mas também trazem peculiaridades e trade-offs únicos em custo e complexidade. _A engenharia de prompt pode ajudar a desenvolver melhores práticas e fluxos de trabalho que abstraem essas diferenças e se adaptam a requisitos específicos de cada modelo de forma escalável e fluida_. - -Vamos ver isso em ação no OpenAI ou Azure OpenAI Playground: - -- Use o mesmo prompt com diferentes implantações de LLM (por exemplo, OpenAI, Azure OpenAI, Hugging Face) – você percebeu variações? -- Use o mesmo prompt repetidamente com a _mesma_ implantação de LLM (por exemplo, playground do Azure OpenAI) – como essas variações diferiram? - -### Exemplo de Fabricações - -Neste curso, usamos o termo **"fabricação"** para referir o fenômeno em que LLMs às vezes geram informações factualmente incorretas devido a limitações no treinamento ou outras restrições. Você também pode ter ouvido isso referido como _"alucinações"_ em artigos populares ou trabalhos acadêmicos. No entanto, recomendamos fortemente usar _"fabricação"_ para evitar antropomorfizar o comportamento, atribuindo uma característica humana a um resultado gerado por máquina. Isso também reforça as [diretrizes de IA Responsável](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) do ponto de vista terminológico, eliminando termos que podem ser considerados ofensivos ou não inclusivos em alguns contextos. - -Quer entender como funcionam as fabricações? Pense em um prompt que instrua a IA a gerar conteúdo sobre um tema inexistente (para garantir que não esteja no conjunto de dados de treinamento). Por exemplo – eu tentei este prompt: -# Plano de Aula: A Guerra Marciana de 2076 - -## Objetivos -- Compreender as causas e consequências da Guerra Marciana de 2076. -- Analisar os principais eventos e estratégias utilizadas durante o conflito. -- Discutir o impacto da guerra na colonização espacial e nas relações interplanetárias. - -## Materiais Necessários -- Slides com linha do tempo dos eventos. -- Vídeos documentários sobre a Guerra Marciana. -- Mapas táticos das batalhas principais. -- Artigos e relatos de testemunhas oculares. - -## Estrutura da Aula - -### Introdução (15 minutos) -- Apresentar o contexto histórico e político que levou à Guerra Marciana. -- Explicar a importância da colonização de Marte para a humanidade. - -### Desenvolvimento (40 minutos) -- Detalhar os principais eventos da guerra, incluindo: - - A declaração de hostilidades. - - As batalhas mais significativas. - - As tecnologias e armas utilizadas. -- Analisar as estratégias militares adotadas por ambos os lados. -- Discutir o papel das alianças e traições durante o conflito. - -### Atividade em Grupo (20 minutos) -- Dividir a turma em grupos para debater as possíveis alternativas que poderiam ter evitado a guerra. -- Cada grupo apresentará suas conclusões. - -### Conclusão (15 minutos) -- Resumo dos pontos principais abordados. -- Reflexão sobre as lições aprendidas com a Guerra Marciana. -- Discussão sobre o futuro das relações entre a Terra e Marte. - -## Avaliação -- Participação nas discussões. -- Apresentação das conclusões do grupo. -- Redação individual sobre o impacto da Guerra Marciana na sociedade humana. - -## Comentários Finais -- Incentivar os alunos a pesquisarem mais sobre o tema. -- Sugerir leituras complementares e documentários para aprofundamento. -Uma busca na web me mostrou que existem relatos fictícios (por exemplo, séries de televisão ou livros) sobre guerras em Marte – mas nenhum em 2076. O senso comum também nos diz que 2076 está _no futuro_ e, portanto, não pode ser associado a um evento real. - -Então, o que acontece quando executamos este prompt com diferentes provedores de LLM? - -> **Resposta 1**: OpenAI Playground (GPT-35) - -![Resposta 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.br.png) - -> **Resposta 2**: Azure OpenAI Playground (GPT-35) - -![Resposta 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.br.png) - -> **Resposta 3**: : Hugging Face Chat Playground (LLama-2) - -![Resposta 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.br.png) - -Como esperado, cada modelo (ou versão do modelo) produz respostas ligeiramente diferentes graças ao comportamento estocástico e às variações na capacidade do modelo. Por exemplo, um modelo tem como público-alvo alunos do 8º ano, enquanto o outro assume um estudante do ensino médio. Mas os três modelos geraram respostas que poderiam convencer um usuário desinformado de que o evento era real. - -Técnicas de engenharia de prompt como _metaprompting_ e _configuração de temperatura_ podem reduzir as fabricações do modelo até certo ponto. Novas _arquiteturas_ de engenharia de prompt também incorporam novas ferramentas e técnicas de forma integrada ao fluxo do prompt, para mitigar ou reduzir alguns desses efeitos. - -## Estudo de Caso: GitHub Copilot - -Vamos encerrar esta seção entendendo como a engenharia de prompt é usada em soluções do mundo real, analisando um Estudo de Caso: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot é seu "Programador Parceiro de IA" – ele converte prompts de texto em complementos de código e está integrado ao seu ambiente de desenvolvimento (por exemplo, Visual Studio Code) para uma experiência de usuário fluida. Conforme documentado na série de blogs abaixo, a versão inicial foi baseada no modelo OpenAI Codex – com os engenheiros rapidamente percebendo a necessidade de ajustar o modelo e desenvolver melhores técnicas de engenharia de prompt para melhorar a qualidade do código. Em julho, eles [lançaram um modelo de IA aprimorado que vai além do Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) para sugestões ainda mais rápidas. - -Leia os posts na ordem para acompanhar a jornada de aprendizado deles. - -- **Maio 2023** | [GitHub Copilot está melhorando na compreensão do seu código](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **Maio 2023** | [Por dentro do GitHub: trabalhando com os LLMs por trás do GitHub Copilot](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Junho 2023** | [Como escrever prompts melhores para o GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Julho 2023** | [.. GitHub Copilot vai além do Codex com modelo de IA aprimorado](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Julho 2023** | [Guia do Desenvolvedor para Engenharia de Prompt e LLMs](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **Setembro 2023** | [Como construir um app empresarial com LLM: lições do GitHub Copilot](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -Você também pode explorar o [blog de Engenharia](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) para mais posts como [este](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) que mostram como esses modelos e técnicas são _aplicados_ para impulsionar aplicações do mundo real. - ---- - - - -## Construção de Prompt - -Já vimos por que a engenharia de prompt é importante – agora vamos entender como os prompts são _construídos_ para que possamos avaliar diferentes técnicas para um design de prompt mais eficaz. - -### Prompt Básico - -Vamos começar com o prompt básico: uma entrada de texto enviada ao modelo sem nenhum outro contexto. Aqui está um exemplo – quando enviamos as primeiras palavras do hino nacional dos EUA para a OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst), ele instantaneamente _completa_ a resposta com as próximas linhas, ilustrando o comportamento básico de predição. - -| Prompt (Entrada) | Complemento (Saída) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | Parece que você está começando a letra de "The Star-Spangled Banner", o hino nacional dos Estados Unidos. A letra completa é ... | - -### Prompt Complexo - -Agora vamos adicionar contexto e instruções a esse prompt básico. A [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) nos permite construir um prompt complexo como uma coleção de _mensagens_ com: - -- Pares de entrada/saída refletindo a entrada do _usuário_ e a resposta do _assistente_. -- Mensagem do sistema definindo o contexto para o comportamento ou personalidade do assistente. - -A requisição agora está na forma abaixo, onde a _tokenização_ captura efetivamente as informações relevantes do contexto e da conversa. Agora, mudar o contexto do sistema pode ser tão impactante na qualidade das respostas quanto as entradas fornecidas pelo usuário. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Prompt de Instrução - -Nos exemplos acima, o prompt do usuário era uma simples consulta de texto que pode ser interpretada como um pedido de informação. Com prompts de _instrução_, podemos usar esse texto para especificar uma tarefa com mais detalhes, fornecendo uma orientação melhor para a IA. Aqui está um exemplo: - -| Prompt (Entrada) | Complemento (Saída) | Tipo de Instrução | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Escreva uma descrição da Guerra Civil | _retornou um parágrafo simples_ | Simples | -| Escreva uma descrição da Guerra Civil. Forneça datas e eventos importantes e descreva sua importância | _retornou um parágrafo seguido de uma lista de datas de eventos importantes com descrições_ | Complexo | -| Escreva uma descrição da Guerra Civil em 1 parágrafo. Forneça 3 tópicos com datas importantes e sua relevância. Forneça mais 3 tópicos com figuras históricas importantes e suas contribuições. Retorne a saída em um arquivo JSON | _retorna detalhes mais extensos em uma caixa de texto, formatados como JSON que você pode copiar e colar em um arquivo e validar conforme necessário_ | Complexo. Formatado. | - -## Conteúdo Primário - -Nos exemplos acima, o prompt ainda era bastante aberto, permitindo que o LLM decidisse qual parte do seu conjunto de dados pré-treinado era relevante. Com o padrão de design de _conteúdo primário_, o texto de entrada é dividido em duas partes: - -- uma instrução (ação) -- conteúdo relevante (que influencia a ação) - -Aqui está um exemplo onde a instrução é "resuma isso em 2 frases". - -| Prompt (Entrada) | Complemento (Saída) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Júpiter é o quinto planeta a partir do Sol e o maior do Sistema Solar. É um gigante gasoso com uma massa mil vezes menor que a do Sol, mas duas vezes e meia a soma de todas as outras massas dos planetas do Sistema Solar. Júpiter é um dos objetos mais brilhantes visíveis a olho nu no céu noturno, e é conhecido por civilizações antigas desde antes da história registrada. É nomeado em homenagem ao deus romano Júpiter.[19] Quando visto da Terra, Júpiter pode ser brilhante o suficiente para que sua luz refletida projete sombras visíveis,[20] e é, em média, o terceiro objeto natural mais brilhante no céu noturno, depois da Lua e de Vênus.
**Resuma isso em 2 frases curtas** | Júpiter, o quinto planeta a partir do Sol, é o maior do Sistema Solar e é conhecido por ser um dos objetos mais brilhantes no céu noturno. Nomeado em homenagem ao deus romano Júpiter, é um gigante gasoso cuja massa é duas vezes e meia a soma de todos os outros planetas do Sistema Solar. | - -O segmento de conteúdo primário pode ser usado de várias formas para gerar instruções mais eficazes: - -- **Exemplos** – em vez de dizer ao modelo o que fazer com uma instrução explícita, dê exemplos do que fazer e deixe-o inferir o padrão. -- **Indícios** – siga a instrução com um "indício" que prepara a resposta, guiando o modelo para respostas mais relevantes. -- **Modelos** – são 'receitas' repetíveis para prompts com espaços reservados (variáveis) que podem ser personalizados com dados para casos de uso específicos. - -Vamos explorar esses conceitos na prática. - -### Usando Exemplos - -Esta é uma abordagem onde você usa o conteúdo primário para "alimentar o modelo" com alguns exemplos da saída desejada para uma determinada instrução, e deixa que ele infira o padrão para a saída desejada. Com base no número de exemplos fornecidos, podemos ter zero-shot prompting, one-shot prompting, few-shot prompting etc. - -O prompt agora consiste em três componentes: - -- Uma descrição da tarefa -- Alguns exemplos da saída desejada -- O início de um novo exemplo (que se torna uma descrição implícita da tarefa) - -| Tipo de Aprendizado | Prompt (Entrada) | Complemento (Saída) | -| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| Zero-shot | "The Sun is Shining". Traduza para o espanhol | "El Sol está brillando". | -| One-shot | "The Sun is Shining" => ""El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| Few-shot | O jogador correu as bases => Beisebol
O jogador fez um ace => Tênis
O jogador marcou um seis => Críquete
O jogador fez uma enterrada => | Basquete | -| | | | - -Note como tivemos que fornecer uma instrução explícita ("Traduza para o espanhol") no zero-shot prompting, mas ela é inferida no exemplo one-shot. O exemplo few-shot mostra como adicionar mais exemplos permite que os modelos façam inferências mais precisas sem instruções adicionais. - -### Indícios no Prompt - -Outra técnica para usar o conteúdo primário é fornecer _indícios_ em vez de exemplos. Neste caso, damos ao modelo um empurrão na direção certa, _começando_ com um trecho que reflete o formato desejado da resposta. O modelo então "pega o indício" para continuar nessa linha. - -| Número de Indícios | Prompt (Entrada) | Complemento (Saída) | -| :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Júpiter é o quinto planeta a partir do Sol e o maior do Sistema Solar. É um gigante gasoso com uma massa mil vezes menor que a do Sol, mas duas vezes e meia a soma de todas as outras massas dos planetas do Sistema Solar. Júpiter é um dos objetos mais brilhantes visíveis a olho nu no céu noturno, e é conhecido por civilizações antigas desde antes da história registrada. - -**Resuma Isto** | Júpiter é o maior planeta do nosso Sistema Solar e o quinto a partir do Sol. É um gigante gasoso com uma massa equivalente a 1/1000 da massa do Sol, mas é mais pesado que todos os outros planetas juntos. Civilizações antigas já conheciam Júpiter há muito tempo, e ele é facilmente visível no céu noturno. | -| 1 | Júpiter é o quinto planeta a partir do Sol e o maior do Sistema Solar. É um gigante gasoso com uma massa equivalente a um milésimo da massa do Sol, mas duas vezes e meia a massa de todos os outros planetas do Sistema Solar juntos. Júpiter é um dos objetos mais brilhantes visíveis a olho nu no céu noturno, e é conhecido por civilizações antigas desde antes da história registrada.
**Resuma Isto**
O que aprendemos é que Júpiter | é o quinto planeta a partir do Sol e o maior do Sistema Solar. É um gigante gasoso com uma massa equivalente a um milésimo da massa do Sol, mas duas vezes e meia a massa de todos os outros planetas juntos. É facilmente visível a olho nu e conhecido desde os tempos antigos. | -| 2 | Júpiter é o quinto planeta a partir do Sol e o maior do Sistema Solar. É um gigante gasoso com uma massa equivalente a um milésimo da massa do Sol, mas duas vezes e meia a massa de todos os outros planetas do Sistema Solar juntos. Júpiter é um dos objetos mais brilhantes visíveis a olho nu no céu noturno, e é conhecido por civilizações antigas desde antes da história registrada.
**Resuma Isto**
Top 3 fatos que aprendemos: | 1. Júpiter é o quinto planeta a partir do Sol e o maior do Sistema Solar.
2. É um gigante gasoso com uma massa equivalente a um milésimo da massa do Sol...
3. Júpiter é visível a olho nu desde os tempos antigos ... | -| | | | - -### Modelos de Prompt - -Um modelo de prompt é uma _receita pré-definida para um prompt_ que pode ser armazenada e reutilizada conforme necessário, para proporcionar experiências de usuário mais consistentes em larga escala. Na sua forma mais simples, é simplesmente uma coleção de exemplos de prompt como [este da OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) que fornece tanto os componentes interativos do prompt (mensagens do usuário e do sistema) quanto o formato de requisição via API - para suportar a reutilização. - -Em sua forma mais complexa, como [este exemplo da LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst), ele contém _placeholders_ que podem ser substituídos por dados de várias fontes (entrada do usuário, contexto do sistema, fontes externas etc.) para gerar um prompt dinamicamente. Isso nos permite criar uma biblioteca de prompts reutilizáveis que podem ser usados para proporcionar experiências de usuário consistentes **programaticamente** em larga escala. - -Por fim, o verdadeiro valor dos templates está na capacidade de criar e publicar _bibliotecas de prompts_ para domínios de aplicação vertical - onde o modelo de prompt é agora _otimizado_ para refletir contextos ou exemplos específicos da aplicação que tornam as respostas mais relevantes e precisas para o público-alvo. O repositório [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) é um ótimo exemplo dessa abordagem, reunindo uma biblioteca de prompts para o domínio educacional com ênfase em objetivos-chave como planejamento de aulas, design curricular, tutoria de estudantes etc. - -## Conteúdo de Apoio - -Se pensarmos na construção de prompts como tendo uma instrução (tarefa) e um alvo (conteúdo principal), então o _conteúdo secundário_ é como um contexto adicional que fornecemos para **influenciar a saída de alguma forma**. Pode ser parâmetros de ajuste, instruções de formatação, taxonomias de tópicos etc. que ajudam o modelo a _personalizar_ sua resposta para atender aos objetivos ou expectativas do usuário. - -Por exemplo: Dado um catálogo de cursos com metadados extensos (nome, descrição, nível, tags de metadados, instrutor etc.) de todos os cursos disponíveis no currículo: - -- podemos definir uma instrução para "resumir o catálogo de cursos para o outono de 2023" -- podemos usar o conteúdo principal para fornecer alguns exemplos do resultado desejado -- podemos usar o conteúdo secundário para identificar as 5 principais "tags" de interesse. - -Agora, o modelo pode fornecer um resumo no formato mostrado pelos poucos exemplos - mas se um resultado tiver múltiplas tags, ele pode priorizar as 5 tags identificadas no conteúdo secundário. - ---- - - - -## Melhores Práticas para Prompting - -Agora que sabemos como os prompts podem ser _construídos_, podemos começar a pensar em como _projetá-los_ para refletir as melhores práticas. Podemos pensar nisso em duas partes - ter a _mentalidade_ correta e aplicar as _técnicas_ certas. - -### Mentalidade de Engenharia de Prompt - -Engenharia de Prompt é um processo de tentativa e erro, então mantenha três fatores orientadores amplos em mente: - -1. **Entender o Domínio é Importante.** A precisão e relevância da resposta dependem do _domínio_ em que a aplicação ou usuário opera. Use sua intuição e expertise no domínio para **customizar as técnicas** ainda mais. Por exemplo, defina _personalidades específicas do domínio_ em seus prompts de sistema, ou use _templates específicos do domínio_ nos prompts do usuário. Forneça conteúdo secundário que reflita contextos específicos do domínio, ou use _pistas e exemplos específicos do domínio_ para guiar o modelo a padrões de uso familiares. - -2. **Entender o Modelo é Importante.** Sabemos que os modelos são estocásticos por natureza. Mas as implementações dos modelos também podem variar em termos do conjunto de dados de treinamento que usam (conhecimento pré-treinado), das capacidades que oferecem (ex: via API ou SDK) e do tipo de conteúdo para o qual são otimizados (ex: código vs imagens vs texto). Entenda os pontos fortes e limitações do modelo que você está usando, e use esse conhecimento para _priorizar tarefas_ ou construir _templates customizados_ otimizados para as capacidades do modelo. - -3. **Iteração e Validação Importam.** Os modelos estão evoluindo rapidamente, assim como as técnicas de engenharia de prompt. Como especialista no domínio, você pode ter outros contextos ou critérios para _sua_ aplicação específica, que podem não se aplicar à comunidade mais ampla. Use ferramentas e técnicas de engenharia de prompt para "dar o pontapé inicial" na construção do prompt, depois itere e valide os resultados usando sua própria intuição e expertise no domínio. Registre seus insights e crie uma **base de conhecimento** (ex: bibliotecas de prompts) que possam ser usadas como uma nova referência por outros, para acelerar iterações futuras. - -## Melhores Práticas - -Agora vamos ver as melhores práticas comuns recomendadas por praticantes da [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) e do [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst). - -| O que | Por quê | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Avalie os modelos mais recentes. | Novas gerações de modelos provavelmente têm recursos e qualidade aprimorados - mas podem também gerar custos maiores. Avalie o impacto e então decida sobre a migração. | -| Separe instruções e contexto | Verifique se seu modelo/fornecedor define _delimitadores_ para distinguir instruções, conteúdo principal e secundário de forma mais clara. Isso ajuda os modelos a atribuir pesos mais precisos aos tokens. | -| Seja específico e claro | Dê mais detalhes sobre o contexto desejado, resultado, extensão, formato, estilo etc. Isso melhora tanto a qualidade quanto a consistência das respostas. Capture receitas em templates reutilizáveis. | -| Seja descritivo, use exemplos | Modelos podem responder melhor a uma abordagem de "mostrar e contar". Comece com uma abordagem `zero-shot` onde você dá uma instrução (mas sem exemplos) e depois tente `few-shot` como refinamento, fornecendo alguns exemplos do resultado desejado. Use analogias. | -| Use pistas para iniciar respostas | Estimule o modelo a um resultado desejado dando algumas palavras ou frases iniciais que ele possa usar como ponto de partida para a resposta. | -| Reforce | Às vezes é necessário repetir a instrução para o modelo. Dê instruções antes e depois do conteúdo principal, use uma instrução e uma pista, etc. Itere e valide para ver o que funciona. | -| A ordem importa | A ordem em que você apresenta a informação ao modelo pode impactar a saída, até mesmo nos exemplos de aprendizado, devido ao viés de recência. Experimente diferentes opções para ver o que funciona melhor. | -| Dê uma “saída alternativa” para o modelo | Dê ao modelo uma resposta de _fallback_ que ele possa usar caso não consiga completar a tarefa por algum motivo. Isso reduz as chances de respostas falsas ou fabricadas. | -| | | - -Como em qualquer melhor prática, lembre-se que _seus resultados podem variar_ dependendo do modelo, da tarefa e do domínio. Use essas dicas como ponto de partida e itere para encontrar o que funciona melhor para você. Reavalie constantemente seu processo de engenharia de prompt à medida que novos modelos e ferramentas surgem, focando na escalabilidade do processo e na qualidade das respostas. - - - -## Tarefa - -Parabéns! Você chegou ao final da aula! É hora de colocar alguns desses conceitos e técnicas em prática com exemplos reais! - -Para nossa tarefa, usaremos um Jupyter Notebook com exercícios que você pode completar interativamente. Você também pode estender o Notebook com suas próprias células de Markdown e Código para explorar ideias e técnicas por conta própria. - -### Para começar, faça um fork do repositório, depois - -- (Recomendado) Inicie o GitHub Codespaces -- (Alternativamente) Clone o repositório para seu dispositivo local e use com Docker Desktop -- (Alternativamente) Abra o Notebook no ambiente de execução de sua preferência. - -### Em seguida, configure suas variáveis de ambiente - -- Copie o arquivo `.env.copy` na raiz do repositório para `.env` e preencha os valores de `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` e `AZURE_OPENAI_DEPLOYMENT`. Volte para a [seção Learning Sandbox](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) para aprender como. - -### Depois, abra o Jupyter Notebook - -- Selecione o kernel de execução. Se estiver usando as opções 1 ou 2, basta selecionar o kernel padrão Python 3.10.x fornecido pelo container de desenvolvimento. - -Você está pronto para executar os exercícios. Note que não há respostas _certas ou erradas_ aqui - apenas explorar opções por tentativa e erro e construir intuição sobre o que funciona para um dado modelo e domínio de aplicação. - -_Por esse motivo, não há segmentos de Solução de Código nesta aula. Em vez disso, o Notebook terá células Markdown intituladas "Minha Solução:" que mostram um exemplo de saída para referência._ - - - -## Verificação de Conhecimento - -Qual dos seguintes é um bom prompt seguindo algumas práticas recomendadas razoáveis? - -1. Mostre-me uma imagem de carro vermelho -2. Mostre-me uma imagem de carro vermelho da marca Volvo e modelo XC90 estacionado perto de um penhasco com o sol se pondo -3. Mostre-me uma imagem de carro vermelho da marca Volvo e modelo XC90 - -R: 2, é o melhor prompt pois fornece detalhes sobre o "quê" e entra em especificidades (não é qualquer carro, mas uma marca e modelo específicos) e também descreve o cenário geral. O 3 é o segundo melhor, pois também contém bastante descrição. - -## 🚀 Desafio - -Veja se você consegue usar a técnica da "pista" com o prompt: Complete a frase "Mostre-me uma imagem de carro vermelho da marca Volvo e ". O que ele responde, e como você melhoraria isso? - -## Excelente trabalho! Continue seu aprendizado - -Quer aprender mais sobre diferentes conceitos de Engenharia de Prompt? Vá para a [página de aprendizado contínuo](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) para encontrar outros ótimos recursos sobre este tema. - -Siga para a Aula 5, onde veremos [técnicas avançadas de prompting](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**Aviso Legal**: -Este documento foi traduzido utilizando o serviço de tradução por IA [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos para garantir a precisão, esteja ciente de que traduções automáticas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autorizada. Para informações críticas, recomenda-se tradução profissional humana. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas decorrentes do uso desta tradução. \ No newline at end of file + + + + + + + diff --git a/translations/br/09-building-image-applications/README.md b/translations/br/09-building-image-applications/README.md index aaee9abe4..76bd18641 100644 --- a/translations/br/09-building-image-applications/README.md +++ b/translations/br/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# Construindo Aplicações de Geração de Imagens - -[![Construindo Aplicações de Geração de Imagens](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.br.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLMs vão além da geração de texto. Também é possível gerar imagens a partir de descrições em texto. Ter imagens como uma modalidade pode ser extremamente útil em diversas áreas, como MedTech, arquitetura, turismo, desenvolvimento de jogos e muito mais. Neste capítulo, vamos explorar os dois modelos de geração de imagens mais populares, DALL-E e Midjourney. - -## Introdução - -Nesta lição, vamos abordar: - -- Geração de imagens e por que ela é útil. -- DALL-E e Midjourney, o que são e como funcionam. -- Como construir uma aplicação de geração de imagens. - -## Objetivos de Aprendizagem - -Após concluir esta lição, você será capaz de: - -- Construir uma aplicação de geração de imagens. -- Definir limites para sua aplicação com metaprompts. -- Trabalhar com DALL-E e Midjourney. - -## Por que construir uma aplicação de geração de imagens? - -Aplicações de geração de imagens são uma ótima forma de explorar as capacidades da IA Generativa. Elas podem ser usadas, por exemplo, para: - -- **Edição e síntese de imagens**. Você pode gerar imagens para diversos casos de uso, como edição e síntese de imagens. - -- **Aplicação em várias indústrias**. Também podem ser usadas para gerar imagens para diferentes setores, como MedTech, Turismo, Desenvolvimento de jogos e outros. - -## Cenário: Edu4All - -Como parte desta lição, continuaremos trabalhando com nossa startup, Edu4All. Os estudantes criarão imagens para suas avaliações; quais imagens exatamente fica a critério deles, mas podem ser ilustrações para seus próprios contos de fadas, criar um novo personagem para suas histórias ou ajudar a visualizar suas ideias e conceitos. - -Veja o que os estudantes da Edu4All poderiam gerar, por exemplo, se estiverem trabalhando em sala sobre monumentos: - -![Edu4All startup, aula sobre monumentos, Torre Eiffel](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.br.png) - -usando um prompt como - -> "Cachorro ao lado da Torre Eiffel na luz do sol da manhã cedo" - -## O que são DALL-E e Midjourney? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) e [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) são dois dos modelos de geração de imagens mais populares, que permitem usar prompts para gerar imagens. - -### DALL-E - -Vamos começar com o DALL-E, que é um modelo de IA Generativa que gera imagens a partir de descrições em texto. - -> [DALL-E é uma combinação de dois modelos, CLIP e diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP** é um modelo que gera embeddings, que são representações numéricas dos dados, a partir de imagens e texto. - -- **Diffused attention** é um modelo que gera imagens a partir dos embeddings. O DALL-E é treinado em um conjunto de dados de imagens e textos e pode ser usado para gerar imagens a partir de descrições em texto. Por exemplo, o DALL-E pode gerar imagens de um gato com chapéu ou um cachorro com moicano. - -### Midjourney - -O Midjourney funciona de forma semelhante ao DALL-E, gerando imagens a partir de prompts em texto. O Midjourney também pode ser usado para gerar imagens com prompts como “um gato com chapéu” ou “um cachorro com moicano”. - -![Imagem gerada pelo Midjourney, pombo mecânico](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Crédito da imagem Wikipedia, imagem gerada pelo Midjourney_ - -## Como funcionam DALL-E e Midjourney - -Primeiro, [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). O DALL-E é um modelo de IA Generativa baseado na arquitetura transformer com um _transformer autoregressivo_. - -Um _transformer autoregressivo_ define como o modelo gera imagens a partir de descrições em texto, gerando um pixel por vez e usando os pixels gerados para criar o próximo pixel. Passa por múltiplas camadas em uma rede neural até que a imagem esteja completa. - -Com esse processo, o DALL-E controla atributos, objetos, características e mais na imagem que gera. No entanto, o DALL-E 2 e 3 oferecem maior controle sobre a imagem gerada. - -## Construindo sua primeira aplicação de geração de imagens - -Então, o que é necessário para construir uma aplicação de geração de imagens? Você precisa das seguintes bibliotecas: - -- **python-dotenv**, é altamente recomendado usar essa biblioteca para manter seus segredos em um arquivo _.env_ separado do código. -- **openai**, essa biblioteca é o que você usará para interagir com a API da OpenAI. -- **pillow**, para trabalhar com imagens em Python. -- **requests**, para ajudar a fazer requisições HTTP. - -1. Crie um arquivo _.env_ com o seguinte conteúdo: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Localize essas informações no Portal do Azure para seu recurso na seção "Chaves e Endpoint". - -1. Liste as bibliotecas acima em um arquivo chamado _requirements.txt_ assim: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. Em seguida, crie um ambiente virtual e instale as bibliotecas: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Para Windows, use os seguintes comandos para criar e ativar seu ambiente virtual: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. Adicione o seguinte código em um arquivo chamado _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Vamos explicar esse código: - -- Primeiro, importamos as bibliotecas necessárias, incluindo a biblioteca OpenAI, dotenv, requests e Pillow. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Em seguida, carregamos as variáveis de ambiente do arquivo _.env_. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- Depois, definimos o endpoint, a chave da API OpenAI, a versão e o tipo. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- Agora, geramos a imagem: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - O código acima responde com um objeto JSON que contém a URL da imagem gerada. Podemos usar essa URL para baixar a imagem e salvá-la em um arquivo. - -- Por fim, abrimos a imagem e usamos o visualizador padrão para exibi-la: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Mais detalhes sobre a geração da imagem - -Vamos analisar o código que gera a imagem com mais detalhes: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** é o texto usado para gerar a imagem. Neste caso, usamos o prompt "Coelho em cavalo, segurando um pirulito, em um prado enevoado onde crescem narcisos". -- **size** é o tamanho da imagem gerada. Aqui, estamos gerando uma imagem de 1024x1024 pixels. -- **n** é o número de imagens geradas. Neste caso, estamos gerando duas imagens. -- **temperature** é um parâmetro que controla a aleatoriedade da saída de um modelo de IA Generativa. A temperatura varia entre 0 e 1, onde 0 significa que a saída é determinística e 1 significa que a saída é aleatória. O valor padrão é 0,7. - -Existem outras coisas que você pode fazer com imagens, que abordaremos na próxima seção. - -## Capacidades adicionais da geração de imagens - -Até agora, você viu como gerar uma imagem usando poucas linhas em Python. No entanto, há mais possibilidades com imagens. - -Você também pode: - -- **Realizar edições**. Fornecendo uma imagem existente, uma máscara e um prompt, você pode alterar uma imagem. Por exemplo, pode adicionar algo a uma parte da imagem. Imagine nossa imagem do coelho, você pode adicionar um chapéu ao coelho. Para isso, você fornece a imagem, uma máscara (identificando a área a ser alterada) e um prompt de texto dizendo o que deve ser feito. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - A imagem base conteria apenas o coelho, mas a imagem final teria o chapéu no coelho. - -- **Criar variações**. A ideia é pegar uma imagem existente e pedir que variações sejam criadas. Para criar uma variação, você fornece uma imagem e um prompt de texto, e o código fica assim: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Nota: isso é suportado apenas na OpenAI - -## Temperatura - -Temperatura é um parâmetro que controla a aleatoriedade da saída de um modelo de IA Generativa. A temperatura varia entre 0 e 1, onde 0 significa que a saída é determinística e 1 significa que a saída é aleatória. O valor padrão é 0,7. - -Vamos ver um exemplo de como a temperatura funciona, executando este prompt duas vezes: - -> Prompt: "Coelho em cavalo, segurando um pirulito, em um prado enevoado onde crescem narcisos" - -![Coelho em cavalo segurando um pirulito, versão 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.br.png) - -Agora vamos executar o mesmo prompt novamente para ver que não obteremos a mesma imagem duas vezes: - -![Imagem gerada de coelho em cavalo](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.br.png) - -Como você pode ver, as imagens são parecidas, mas não idênticas. Vamos tentar mudar o valor da temperatura para 0,1 e ver o que acontece: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Alterando a temperatura - -Vamos tentar tornar a resposta mais determinística. Podemos observar nas duas imagens geradas que na primeira há um coelho e na segunda um cavalo, então as imagens variam bastante. - -Vamos então alterar nosso código e definir a temperatura para 0, assim: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Agora, ao executar esse código, você obterá estas duas imagens: - -- ![Temperatura 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.br.png) -- ![Temperatura 0, v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.br.png) - -Aqui você pode ver claramente como as imagens se parecem mais entre si. - -## Como definir limites para sua aplicação com metaprompts - -Com nossa demonstração, já podemos gerar imagens para nossos clientes. No entanto, precisamos criar alguns limites para nossa aplicação. - -Por exemplo, não queremos gerar imagens que não sejam adequadas para o ambiente de trabalho ou que não sejam apropriadas para crianças. - -Podemos fazer isso com _metaprompts_. Metaprompts são prompts de texto usados para controlar a saída de um modelo de IA Generativa. Por exemplo, podemos usar metaprompts para garantir que as imagens geradas sejam seguras para o trabalho ou apropriadas para crianças. - -### Como funciona? - -Agora, como funcionam os metaprompts? - -Metaprompts são prompts de texto usados para controlar a saída de um modelo de IA Generativa, eles são posicionados antes do prompt de texto e usados para controlar a saída do modelo, sendo incorporados em aplicações para esse controle. Eles encapsulam a entrada do prompt e a entrada do metaprompt em um único prompt de texto. - -Um exemplo de metaprompt seria o seguinte: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Agora, vamos ver como podemos usar metaprompts em nossa demonstração. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -Pelo prompt acima, você pode ver como todas as imagens criadas consideram o metaprompt. - -## Tarefa - vamos capacitar os estudantes - -Apresentamos a Edu4All no início desta lição. Agora é hora de capacitar os estudantes a gerar imagens para suas avaliações. - -Os estudantes criarão imagens para suas avaliações contendo monumentos; quais monumentos exatamente fica a critério deles. Eles são convidados a usar a criatividade para colocar esses monumentos em diferentes contextos. - -## Solução - -Aqui está uma possível solução: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Excelente trabalho! Continue seu aprendizado - -Após concluir esta lição, confira nossa [coleção de Aprendizado em IA Generativa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) para continuar aprimorando seus conhecimentos em IA Generativa! - -Siga para a Lição 10, onde veremos como [construir aplicações de IA com low-code](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**Aviso Legal**: -Este documento foi traduzido utilizando o serviço de tradução por IA [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos para garantir a precisão, esteja ciente de que traduções automáticas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autorizada. Para informações críticas, recomenda-se tradução profissional humana. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas decorrentes do uso desta tradução. \ No newline at end of file + + + + diff --git a/translations/br/12-designing-ux-for-ai-applications/README.md b/translations/br/12-designing-ux-for-ai-applications/README.md index 8248332e5..0047b73ea 100644 --- a/translations/br/12-designing-ux-for-ai-applications/README.md +++ b/translations/br/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# Design de UX para Aplicações de IA - -[![Design de UX para Aplicações de IA](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.br.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Clique na imagem acima para assistir ao vídeo desta aula)_ - -A experiência do usuário é um aspecto muito importante na construção de aplicativos. Os usuários precisam conseguir usar seu app de forma eficiente para realizar tarefas. Ser eficiente é uma coisa, mas você também precisa projetar apps para que possam ser usados por todos, tornando-os _acessíveis_. Este capítulo vai focar nessa área para que, com sorte, você acabe projetando um app que as pessoas possam e queiram usar. - -## Introdução - -Experiência do usuário é como um usuário interage e utiliza um produto ou serviço específico, seja um sistema, ferramenta ou design. Ao desenvolver aplicações de IA, os desenvolvedores não focam apenas em garantir que a experiência do usuário seja eficaz, mas também ética. Nesta aula, abordamos como construir aplicações de Inteligência Artificial (IA) que atendam às necessidades dos usuários. - -A aula cobrirá as seguintes áreas: - -- Introdução à Experiência do Usuário e Compreensão das Necessidades do Usuário -- Design de Aplicações de IA para Confiança e Transparência -- Design de Aplicações de IA para Colaboração e Feedback - -## Objetivos de aprendizagem - -Após esta aula, você será capaz de: - -- Entender como construir aplicações de IA que atendam às necessidades dos usuários. -- Projetar aplicações de IA que promovam confiança e colaboração. - -### Pré-requisito - -Reserve um tempo para ler mais sobre [experiência do usuário e design thinking.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Introdução à Experiência do Usuário e Compreensão das Necessidades do Usuário - -Na nossa startup fictícia de educação, temos dois usuários principais: professores e alunos. Cada um desses usuários tem necessidades únicas. Um design centrado no usuário prioriza o usuário, garantindo que os produtos sejam relevantes e benéficos para aqueles a quem se destinam. - -O aplicativo deve ser **útil, confiável, acessível e agradável** para proporcionar uma boa experiência ao usuário. - -### Usabilidade - -Ser útil significa que o aplicativo possui funcionalidades que correspondem ao seu propósito, como automatizar o processo de correção ou gerar flashcards para revisão. Um aplicativo que automatiza a correção deve ser capaz de atribuir notas aos trabalhos dos alunos de forma precisa e eficiente, com base em critérios pré-definidos. Da mesma forma, um aplicativo que gera flashcards para revisão deve criar perguntas relevantes e variadas com base nos seus dados. - -### Confiabilidade - -Ser confiável significa que o aplicativo pode executar sua tarefa de forma consistente e sem erros. No entanto, a IA, assim como os humanos, não é perfeita e pode estar sujeita a erros. As aplicações podem encontrar falhas ou situações inesperadas que exigem intervenção ou correção humana. Como você lida com erros? Na última seção desta aula, abordaremos como sistemas e aplicações de IA são projetados para colaboração e feedback. - -### Acessibilidade - -Ser acessível significa estender a experiência do usuário para pessoas com diferentes habilidades, incluindo aquelas com deficiências, garantindo que ninguém fique de fora. Seguindo diretrizes e princípios de acessibilidade, as soluções de IA se tornam mais inclusivas, utilizáveis e benéficas para todos os usuários. - -### Agrado - -Ser agradável significa que o aplicativo é prazeroso de usar. Uma experiência de usuário atraente pode ter um impacto positivo, incentivando o usuário a voltar ao aplicativo e aumentando a receita do negócio. - -![imagem ilustrando considerações de UX em IA](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.br.png) - -Nem todo desafio pode ser resolvido com IA. A IA vem para aumentar sua experiência do usuário, seja automatizando tarefas manuais ou personalizando experiências. - -## Design de Aplicações de IA para Confiança e Transparência - -Construir confiança é fundamental ao projetar aplicações de IA. A confiança garante que o usuário esteja seguro de que o aplicativo realizará o trabalho, entregará resultados consistentes e que esses resultados são o que o usuário precisa. Um risco nessa área é a desconfiança e a confiança excessiva. A desconfiança ocorre quando o usuário tem pouca ou nenhuma confiança no sistema de IA, o que leva à rejeição do aplicativo. A confiança excessiva acontece quando o usuário superestima a capacidade do sistema de IA, confiando demais nele. Por exemplo, um sistema automatizado de correção, no caso de confiança excessiva, pode levar o professor a não revisar alguns trabalhos para garantir que o sistema funcione bem. Isso pode resultar em notas injustas ou imprecisas para os alunos, ou em oportunidades perdidas de feedback e melhoria. - -Duas formas de garantir que a confiança esteja no centro do design são explicabilidade e controle. - -### Explicabilidade - -Quando a IA ajuda a informar decisões, como transmitir conhecimento para futuras gerações, é fundamental que professores e pais entendam como as decisões da IA são tomadas. Isso é explicabilidade — entender como as aplicações de IA tomam decisões. Projetar para explicabilidade inclui adicionar detalhes e exemplos do que uma aplicação de IA pode fazer. Por exemplo, em vez de "Comece com o professor de IA", o sistema pode usar: "Resuma suas anotações para facilitar a revisão usando IA." - -![uma página inicial de app com ilustração clara da explicabilidade em aplicações de IA](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.br.png) - -Outro exemplo é como a IA usa dados pessoais e do usuário. Por exemplo, um usuário com a persona de estudante pode ter limitações baseadas nessa persona. A IA pode não revelar respostas diretamente, mas pode ajudar a guiar o usuário a pensar em como resolver um problema. - -![IA respondendo perguntas com base na persona](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.br.png) - -Uma última parte importante da explicabilidade é a simplificação das explicações. Alunos e professores podem não ser especialistas em IA, portanto, as explicações sobre o que o aplicativo pode ou não fazer devem ser simples e fáceis de entender. - -![explicações simplificadas sobre capacidades da IA](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.br.png) - -### Controle - -A IA generativa cria uma colaboração entre IA e usuário, onde, por exemplo, o usuário pode modificar prompts para obter resultados diferentes. Além disso, uma vez gerado o resultado, os usuários devem poder modificar esses resultados, dando-lhes uma sensação de controle. Por exemplo, ao usar o Bing, você pode ajustar seu prompt com base em formato, tom e extensão. Além disso, pode fazer alterações no resultado e modificá-lo, como mostrado abaixo: - -![Resultados de busca do Bing com opções para modificar o prompt e o resultado](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.br.png) - -Outro recurso do Bing que permite ao usuário ter controle sobre o aplicativo é a possibilidade de optar por participar ou não da coleta de dados que a IA usa. Para um aplicativo escolar, um aluno pode querer usar suas anotações, assim como os recursos dos professores, como material de revisão. - -![Resultados de busca do Bing com opções para modificar o prompt e o resultado](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.br.png) - -> Ao projetar aplicações de IA, a intencionalidade é fundamental para garantir que os usuários não confiem demais, criando expectativas irreais sobre suas capacidades. Uma forma de fazer isso é criando um atrito entre os prompts e os resultados, lembrando o usuário de que isso é IA e não um ser humano. - -## Design de Aplicações de IA para Colaboração e Feedback - -Como mencionado anteriormente, a IA generativa cria uma colaboração entre usuário e IA. A maioria das interações envolve o usuário inserindo um prompt e a IA gerando um resultado. E se o resultado estiver incorreto? Como o aplicativo lida com erros, caso ocorram? A IA culpa o usuário ou se esforça para explicar o erro? - -Aplicações de IA devem ser construídas para receber e fornecer feedback. Isso não só ajuda o sistema de IA a melhorar, mas também constrói confiança com os usuários. Um ciclo de feedback deve estar incluído no design, um exemplo pode ser um simples polegar para cima ou para baixo no resultado. - -Outra forma de lidar com isso é comunicar claramente as capacidades e limitações do sistema. Quando um usuário comete um erro solicitando algo além das capacidades da IA, também deve haver uma forma de lidar com isso, como mostrado abaixo. - -![Dando feedback e lidando com erros](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.br.png) - -Erros no sistema são comuns em aplicações onde o usuário pode precisar de ajuda com informações fora do escopo da IA ou o aplicativo pode ter um limite de quantas perguntas/assuntos um usuário pode gerar resumos. Por exemplo, uma aplicação de IA treinada com dados limitados a certas matérias, como História e Matemática, pode não conseguir responder perguntas sobre Geografia. Para mitigar isso, o sistema de IA pode responder algo como: "Desculpe, nosso produto foi treinado com dados nas seguintes matérias....., não posso responder à pergunta que você fez." - -Aplicações de IA não são perfeitas, portanto, estão sujeitas a erros. Ao projetar suas aplicações, você deve garantir espaço para feedback dos usuários e tratamento de erros de forma simples e fácil de explicar. - -## Tarefa - -Pegue qualquer aplicativo de IA que você tenha construído até agora e considere implementar os passos abaixo no seu app: - -- **Agradável:** Pense em como tornar seu app mais agradável. Você está adicionando explicações em todos os lugares? Está incentivando o usuário a explorar? Como você está formulando suas mensagens de erro? - -- **Usabilidade:** Construindo um app web. Certifique-se de que seu app seja navegável tanto pelo mouse quanto pelo teclado. - -- **Confiança e transparência:** Não confie completamente na IA e nos seus resultados, considere como você adicionaria um humano ao processo para verificar os resultados. Além disso, considere e implemente outras formas de alcançar confiança e transparência. - -- **Controle:** Dê ao usuário controle sobre os dados que ele fornece ao aplicativo. Implemente uma forma para o usuário optar por participar ou não da coleta de dados na aplicação de IA. - -## Continue seu aprendizado! - -Após concluir esta aula, confira nossa [coleção de aprendizado sobre IA Generativa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) para continuar aprimorando seu conhecimento em IA Generativa! - -Siga para a Aula 13, onde veremos como [proteger aplicações de IA](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**Aviso Legal**: -Este documento foi traduzido utilizando o serviço de tradução por IA [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos para garantir a precisão, esteja ciente de que traduções automáticas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autorizada. Para informações críticas, recomenda-se tradução profissional humana. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas decorrentes do uso desta tradução. \ No newline at end of file + + + diff --git a/translations/br/README.md b/translations/br/README.md index 9b45d3ed0..ba655353a 100644 --- a/translations/br/README.md +++ b/translations/br/README.md @@ -1,137 +1,12 @@ - -![Generative AI Para Iniciantes](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.br.png) - -### 21 Lições que ensinam tudo o que você precisa saber para começar a criar aplicações de IA Generativa - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Suporte Multilíngue - -#### Suportado via GitHub Action (Automatizado e Sempre Atualizado) - -[Francês](../fr/README.md) | [Espanhol](../es/README.md) | [Alemão](../de/README.md) | [Russo](../ru/README.md) | [Árabe](../ar/README.md) | [Persa (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinês (Simplificado)](../zh/README.md) | [Chinês (Tradicional, Macau)](../mo/README.md) | [Chinês (Tradicional, Hong Kong)](../hk/README.md) | [Chinês (Tradicional, Taiwan)](../tw/README.md) | [Japonês](../ja/README.md) | [Coreano](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Português (Portugal)](../pt/README.md) | [Português (Brasil)](./README.md) | [Italiano](../it/README.md) | [Polonês](../pl/README.md) | [Turco](../tr/README.md) | [Grego](../el/README.md) | [Tailandês](../th/README.md) | [Sueco](../sv/README.md) | [Dinamarquês](../da/README.md) | [Norueguês](../no/README.md) | [Finlandês](../fi/README.md) | [Holandês](../nl/README.md) | [Hebraico](../he/README.md) | [Vietnamita](../vi/README.md) | [Indonésio](../id/README.md) | [Malaio](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Suaíli](../sw/README.md) | [Húngaro](../hu/README.md) | [Tcheco](../cs/README.md) | [Eslovaco](../sk/README.md) | [Romeno](../ro/README.md) | [Búlgaro](../bg/README.md) | [Sérvio (Cirílico)](../sr/README.md) | [Croata](../hr/README.md) | [Esloveno](../sl/README.md) | [Ucraniano](../uk/README.md) | [Birmanês (Myanmar)](../my/README.md) - -# IA Generativa para Iniciantes (Versão 3) - Um Curso - -Aprenda os fundamentos para construir aplicações de IA Generativa com nosso curso completo de 21 lições, criado pelos Microsoft Cloud Advocates. - -## 🌱 Começando - -Este curso tem 21 lições. Cada lição aborda um tema específico, então comece de onde quiser! - -As lições são divididas em "Learn" (Aprender), que explicam um conceito de IA Generativa, e "Build" (Construir), que explicam um conceito e trazem exemplos de código em **Python** e **TypeScript** sempre que possível. - -Para desenvolvedores .NET, confira [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -Cada lição também inclui uma seção "Keep Learning" com ferramentas adicionais para aprofundar seu aprendizado. - -## O que você precisa -### Para rodar o código deste curso, você pode usar: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **Lições:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **Lições:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **Lições:** "oai-assignment" - -- Conhecimentos básicos em Python ou TypeScript são úteis - \*Para iniciantes absolutos, confira estes cursos de [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) e [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) -- Uma conta no GitHub para [fazer fork deste repositório completo](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) para sua própria conta - -Criamos uma lição **[Configuração do Curso](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** para ajudar você a preparar seu ambiente de desenvolvimento. - -Não esqueça de [dar uma estrela (🌟) neste repositório](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) para encontrá-lo mais facilmente depois. - -## 🧠 Pronto para Implantar? - -Se você busca exemplos de código mais avançados, confira nossa [coleção de Exemplos de Código de IA Generativa](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) em **Python** e **TypeScript**. - -## 🗣️ Conheça Outros Alunos, Obtenha Suporte - -Junte-se ao nosso [servidor oficial Azure AI Foundry no Discord](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) para conhecer e interagir com outros alunos do curso e receber suporte. - -Faça perguntas ou compartilhe feedback sobre o produto em nosso [Fórum de Desenvolvedores Azure AI Foundry](https://aka.ms/azureaifoundry/forum) no GitHub. - -## 🚀 Criando uma Startup? - -Inscreva-se no [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) para receber **créditos gratuitos do OpenAI** e até **$150 mil em créditos Azure para acessar modelos OpenAI via Azure OpenAI Services**. - -## 🙏 Quer ajudar? - -Tem sugestões ou encontrou erros de digitação ou código? [Abra uma issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) ou [crie um pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 Cada lição inclui: - -- Uma breve introdução em vídeo sobre o tema -- Uma lição escrita disponível no README -- Exemplos de código em Python e TypeScript que suportam Azure OpenAI e OpenAI API -- Links para recursos extras para continuar seu aprendizado - -## 🗃️ Lições - -| # | **Link da Lição** | **Descrição** | **Vídeo** | **Aprendizado Extra** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Configuração do Curso](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Aprender:** Como configurar seu ambiente de desenvolvimento | Vídeo em breve | [Saiba Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introdução à IA Generativa e LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Aprender:** Entendendo o que é IA Generativa e como funcionam os Modelos de Linguagem Grande (LLMs) | [Vídeo](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Saiba Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Explorando e comparando diferentes LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Aprender:** Como escolher o modelo certo para seu caso de uso | [Vídeo](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Saiba Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Usando IA Generativa de Forma Responsável](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Aprender:** Como construir aplicações de IA Generativa de forma responsável | [Vídeo](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Saiba Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Entendendo os Fundamentos de Engenharia de Prompt](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Aprender:** Práticas recomendadas de engenharia de prompt na prática | [Vídeo](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Saiba Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Criando Prompts Avançados](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Aprender:** Como aplicar técnicas de engenharia de prompt que melhoram os resultados dos seus prompts | [Vídeo](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Saiba Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Construindo Aplicações de Geração de Texto](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Construção:** Um app de geração de texto usando Azure OpenAI / OpenAI API | [Vídeo](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Saiba Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Construindo Aplicações de Chat](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Construção:** Técnicas para construir e integrar aplicações de chat de forma eficiente. | [Vídeo](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Saiba Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Construindo Aplicações de Busca com Bancos de Dados Vetoriais](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Construção:** Uma aplicação de busca que usa Embeddings para pesquisar dados. | [Vídeo](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Saiba Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Construindo Aplicações de Geração de Imagens](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Construção:** Uma aplicação de geração de imagens | [Vídeo](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Saiba Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Construindo Aplicações de IA Low Code](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Construção:** Uma aplicação de IA Generativa usando ferramentas Low Code | [Vídeo](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Saiba Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Integrando Aplicações Externas com Function Calling](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Construção:** O que é function calling e seus casos de uso para aplicações | [Vídeo](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Saiba Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [Design de UX para Aplicações de IA](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Aprenda:** Como aplicar princípios de design UX ao desenvolver aplicações de IA Generativa | [Vídeo](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Saiba Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Protegendo Suas Aplicações de IA Generativa](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Aprenda:** As ameaças e riscos aos sistemas de IA e métodos para proteger esses sistemas. | [Vídeo](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Saiba Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [O Ciclo de Vida da Aplicação de IA Generativa](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Aprenda:** As ferramentas e métricas para gerenciar o ciclo de vida do LLM e LLMOps | [Vídeo](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Saiba Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) e Bancos de Dados Vetoriais](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Construção:** Uma aplicação usando um Framework RAG para recuperar embeddings de Bancos de Dados Vetoriais | [Vídeo](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Saiba Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Modelos Open Source e Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Construção:** Uma aplicação usando modelos open source disponíveis no Hugging Face | [Vídeo](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Saiba Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [Agentes de IA](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Construção:** Uma aplicação usando um Framework de Agentes de IA | [Vídeo](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Saiba Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [Fine-Tuning de LLMs](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Aprenda:** O que, por que e como fazer fine-tuning em LLMs | [Vídeo](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Saiba Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Construindo com SLMs](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Aprenda:** Os benefícios de construir com Small Language Models | Vídeo em breve | [Saiba Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Construindo com Modelos Mistral](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Aprenda:** As características e diferenças dos Modelos da Família Mistral | Vídeo em breve | [Saiba Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Construindo com Modelos Meta](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Aprenda:** As características e diferenças dos Modelos da Família Meta | Vídeo em breve | [Saiba Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Agradecimentos especiais - -Agradecimentos especiais a [**John Aziz**](https://www.linkedin.com/in/john0isaac/) por criar todas as GitHub Actions e workflows - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) por suas contribuições essenciais em cada lição para melhorar a experiência do aprendiz e do código. - -## 🎒 Outros Cursos - -Nossa equipe produz outros cursos! Confira: - -- [**NOVO** Protocolo de Contexto de Modelos para Iniciantes](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Agentes de IA para Iniciantes](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [IA Generativa para Iniciantes usando .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [IA Generativa para Iniciantes usando JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML para Iniciantes](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Ciência de Dados para Iniciantes](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [IA para Iniciantes](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Cibersegurança para Iniciantes](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Desenvolvimento Web para Iniciantes](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT para Iniciantes](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [Desenvolvimento XR para Iniciantes](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Dominando o GitHub Copilot para Programação em Par com IA](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Dominando o GitHub Copilot para Desenvolvedores C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Escolha Sua Própria Aventura com Copilot](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Aviso Legal**: -Este documento foi traduzido utilizando o serviço de tradução por IA [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos para garantir a precisão, esteja ciente de que traduções automáticas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autorizada. Para informações críticas, recomenda-se tradução profissional humana. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas decorrentes do uso desta tradução. \ No newline at end of file + + + + diff --git a/translations/cs/00-course-setup/01-setup-cloud.md b/translations/cs/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..49397a7df --- /dev/null +++ b/translations/cs/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/cs/00-course-setup/02-setup-local.md b/translations/cs/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..9c812b0dc --- /dev/null +++ b/translations/cs/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/cs/00-course-setup/03-providers.md b/translations/cs/00-course-setup/03-providers.md new file mode 100644 index 000000000..65b8308e6 --- /dev/null +++ b/translations/cs/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/cs/00-course-setup/README.md b/translations/cs/00-course-setup/README.md index 46b07dcc1..c80dec5a0 100644 --- a/translations/cs/00-course-setup/README.md +++ b/translations/cs/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# Začínáme s tímto kurzem - -Jsme nadšeni, že začínáte tento kurz a uvidíte, co vás inspiruje vytvořit s Generativní AI! - -Abychom vám zajistili úspěch, tato stránka shrnuje kroky nastavení, technické požadavky a kde získat pomoc, pokud ji budete potřebovat. - -## Kroky nastavení - -Pro zahájení kurzu je potřeba dokončit následující kroky. - -### 1. Vytvořte fork tohoto repozitáře - -[Vytvořte fork celého tohoto repozitáře](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) na svůj vlastní GitHub účet, abyste mohli měnit kód a plnit úkoly. Můžete také [označit (🌟) tento repozitář hvězdičkou](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst), abyste jej a související repozitáře snáze našli. - -### 2. Vytvořte codespace - -Aby se předešlo problémům s závislostmi při spouštění kódu, doporučujeme spouštět tento kurz v [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst). - -Codespace vytvoříte výběrem možnosti `Code` ve vašem forku tohoto repozitáře a následným výběrem možnosti **Codespaces**. - -![Dialog zobrazující tlačítka pro vytvoření codespace](../../../00-course-setup/images/who-will-pay.webp) - -### 3. Ukládání vašich API klíčů - -Je důležité uchovávat vaše API klíče v bezpečí při tvorbě jakékoliv aplikace. Doporučujeme neukládat API klíče přímo v kódu. Pokud byste tyto údaje nahráli do veřejného repozitáře, mohlo by to vést k bezpečnostním problémům a dokonce i nežádoucím nákladům, pokud by je zneužil někdo nepovolaný. -Zde je krok za krokem návod, jak vytvořit soubor `.env` pro Python a přidat `GITHUB_TOKEN`: - -1. **Přejděte do adresáře vašeho projektu**: Otevřete terminál nebo příkazový řádek a přejděte do kořenového adresáře projektu, kde chcete vytvořit soubor `.env`. - - ```bash - cd path/to/your/project - ``` - -2. **Vytvořte soubor `.env`**: Použijte svůj oblíbený textový editor k vytvoření nového souboru s názvem `.env`. Pokud používáte příkazový řádek, můžete použít `touch` (na systémech Unix) nebo `echo` (na Windows): - - Unixové systémy: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **Upravte soubor `.env`**: Otevřete `.env` v textovém editoru (např. VS Code, Notepad++ nebo jiný editor). Přidejte následující řádek, kde `your_github_token_here` nahraďte svým skutečným GitHub tokenem: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Uložte soubor**: Uložte změny a zavřete editor. - -5. **Nainstalujte `python-dotenv`**: Pokud jste tak ještě neučinili, nainstalujte balíček `python-dotenv`, který umožní načítat proměnné prostředí ze souboru `.env` do vaší Python aplikace. Instalaci provedete pomocí `pip`: - - ```bash - pip install python-dotenv - ``` - -6. **Načtěte proměnné prostředí ve vašem Python skriptu**: Ve vašem Python skriptu použijte balíček `python-dotenv` k načtení proměnných prostředí ze souboru `.env`: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -A je to! Úspěšně jste vytvořili soubor `.env`, přidali GitHub token a načetli ho do Python aplikace. - -## Jak spustit lokálně na vašem počítači - -Pro spuštění kódu lokálně na vašem počítači je potřeba mít nainstalovanou nějakou verzi [Pythonu](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -Repozitář pak musíte naklonovat: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -Jakmile máte vše připraveno, můžete začít! - -## Volitelné kroky - -### Instalace Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) je lehký instalátor pro instalaci [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Pythonu a několika balíčků. -Conda je správce balíčků, který usnadňuje nastavení a přepínání mezi různými Python [**virtuálními prostředími**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) a balíčky. Hodí se také pro instalaci balíčků, které nejsou dostupné přes `pip`. - -Postupujte podle [návodu na instalaci MiniConda](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst). - -Po instalaci Miniconda je potřeba naklonovat [repozitář](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (pokud jste tak ještě neučinili). - -Dále je potřeba vytvořit virtuální prostředí. Pro Conda vytvořte nový soubor prostředí (_environment.yml_). Pokud pracujete v Codespaces, vytvořte ho v adresáři `.devcontainer`, tedy `.devcontainer/environment.yml`. - -Vyplňte soubor prostředí následujícím úryvkem: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Pokud při používání conda narazíte na chyby, můžete ručně nainstalovat Microsoft AI knihovny pomocí následujícího příkazu v terminálu. - -``` -conda install -c microsoft azure-ai-ml -``` - -Soubor prostředí specifikuje závislosti, které potřebujeme. `` je název, který chcete použít pro své Conda prostředí, a `` je verze Pythonu, kterou chcete použít, například `3` je nejnovější hlavní verze Pythonu. - -Po dokončení můžete vytvořit Conda prostředí spuštěním příkazů níže v příkazovém řádku/terminálu: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -Pokud narazíte na problémy, podívejte se na [návod k Conda prostředím](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst). - -### Použití Visual Studio Code s rozšířením pro Python - -Pro tento kurz doporučujeme používat editor [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) s nainstalovaným [rozšířením pro Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst). Jedná se však spíše o doporučení než o povinnou podmínku. - -> **Poznámka**: Otevřením repozitáře kurzu ve VS Code máte možnost nastavit projekt v kontejneru. Je to díky [speciálnímu adresáři `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) v repozitáři kurzu. O tom více později. - -> **Poznámka**: Po naklonování a otevření adresáře ve VS Code vám editor automaticky nabídne instalaci rozšíření pro Python. - -> **Poznámka**: Pokud vám VS Code nabídne znovu otevřít repozitář v kontejneru, odmítněte tuto nabídku, pokud chcete používat lokálně nainstalovanou verzi Pythonu. - -### Použití Jupyter v prohlížeči - -Na projektu můžete pracovat také pomocí prostředí [Jupyter](https://jupyter.org?WT.mc_id=academic-105485-koreyst) přímo ve vašem prohlížeči. Klasický Jupyter i [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) poskytují příjemné vývojové prostředí s funkcemi jako automatické doplňování, zvýraznění kódu a další. - -Pro spuštění Jupyter lokálně otevřete terminál/příkazový řádek, přejděte do adresáře kurzu a spusťte: - -```bash -jupyter notebook -``` - -nebo - -```bash -jupyterhub -``` - -Tím se spustí instance Jupyter a URL pro přístup k ní se zobrazí v okně příkazového řádku. - -Po přístupu na URL byste měli vidět osnovu kurzu a můžete procházet jakýkoliv soubor `*.ipynb`. Například `08-building-search-applications/python/oai-solution.ipynb`. - -### Spuštění v kontejneru - -Alternativou k nastavení všeho na vašem počítači nebo v Codespace je použití [kontejneru](../../../00-course-setup/). Speciální složka `.devcontainer` v repozitáři kurzu umožňuje VS Code nastavit projekt v kontejneru. Mimo Codespaces to vyžaduje instalaci Dockeru a upřímně řečeno, je to trochu složitější, proto to doporučujeme jen zkušenějším uživatelům pracujícím s kontejnery. - -Jedním z nejlepších způsobů, jak zabezpečit vaše API klíče při používání GitHub Codespaces, je využití Codespace Secrets. Podívejte se na průvodce [Codespaces secrets management](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) pro více informací. - -## Lekce a technické požadavky - -Kurz obsahuje 6 konceptuálních lekcí a 6 lekcí s kódováním. - -Pro lekce s kódováním používáme Azure OpenAI Service. Budete potřebovat přístup k Azure OpenAI službě a API klíč pro spuštění kódu. Přístup můžete získat [vyplněním této žádosti](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -Zatímco čekáte na zpracování žádosti, každá lekce s kódováním obsahuje také soubor `README.md`, kde můžete prohlížet kód a výstupy. - -## Použití Azure OpenAI Service poprvé - -Pokud s Azure OpenAI službou pracujete poprvé, postupujte podle tohoto návodu, jak [vytvořit a nasadit Azure OpenAI Service resource.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## Použití OpenAI API poprvé - -Pokud s OpenAI API pracujete poprvé, postupujte podle návodu, jak [vytvořit a používat rozhraní.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## Seznamte se s ostatními studenty - -Vytvořili jsme kanály v našem oficiálním [AI Community Discord serveru](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) pro setkávání s ostatními studenty. Je to skvělý způsob, jak navázat kontakty s dalšími podnikateli, tvůrci, studenty a všemi, kdo chtějí posunout své znalosti v Generativní AI na vyšší úroveň. - -[![Připojit se na discord kanál](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -Tým projektu bude také na tomto Discord serveru, aby pomáhal studentům. - -## Přispívejte - -Tento kurz je open-source iniciativa. Pokud vidíte možnosti zlepšení nebo chyby, vytvořte prosím [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) nebo nahlaste [GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -Tým projektu sleduje všechny příspěvky. Přispívání do open source je skvělý způsob, jak rozvíjet svou kariéru v Generativní AI. - -Většina příspěvků vyžaduje souhlas s Contributor License Agreement (CLA), který potvrzuje, že máte právo a skutečně udělujete práva k použití vašeho příspěvku. Podrobnosti najdete na [webu CLA, Contributor License Agreement](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Důležité: při překladu textu v tomto repozitáři prosím nepoužívejte strojový překlad. Překlady budou ověřovány komunitou, proto se přihlašujte pouze na překlady do jazyků, ve kterých jste zdatní. - -Po odeslání pull requestu CLA-bot automaticky zjistí, zda je potřeba poskytnout CLA, a označí PR odpovídajícím způsobem (např. štítek, komentář). Stačí postupovat podle pokynů bota. Toto je potřeba udělat pouze jednou pro všechny repozitáře využívající náš CLA. - -Tento projekt přijal [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst). Pro více informací si přečtěte FAQ ke Kodexu chování nebo kontaktujte [Email opencode](opencode@microsoft.com) s případnými dotazy či připomínkami. - -## Pojďme začít - -Nyní, když jste dokončili potřebné kroky pro absolvování kurzu, pojďme začít s [úvodem do Generativní AI a LLM](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**Prohlášení o vyloučení odpovědnosti**: -Tento dokument byl přeložen pomocí AI překladatelské služby [Co-op Translator](https://github.com/Azure/co-op-translator). I když usilujeme o přesnost, mějte prosím na paměti, že automatické překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho mateřském jazyce by měl být považován za autoritativní zdroj. Pro důležité informace se doporučuje profesionální lidský překlad. Nejsme odpovědní za jakékoliv nedorozumění nebo nesprávné výklady vyplývající z použití tohoto překladu. \ No newline at end of file + + + + diff --git a/translations/cs/00-course-setup/SETUP.md b/translations/cs/00-course-setup/SETUP.md deleted file mode 100644 index e0e0597ce..000000000 --- a/translations/cs/00-course-setup/SETUP.md +++ /dev/null @@ -1,149 +0,0 @@ - -# Nastavení vývojového prostředí - -Tento repozitář a kurz jsme nastavili s pomocí [vývojového kontejneru](https://containers.dev?WT.mc_id=academic-105485-koreyst), který obsahuje univerzální runtime podporující vývoj v Python3, .NET, Node.js a Javě. Příslušná konfigurace je definována v souboru `devcontainer.json`, který najdete ve složce `.devcontainer/` v kořenovém adresáři tohoto repozitáře. - -Pro aktivaci vývojového kontejneru jej spusťte v [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (pro cloudové runtime) nebo v [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (pro lokální runtime). Více informací o fungování vývojových kontejnerů ve VS Code najdete v [této dokumentaci](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst). - -> [!TIP] -> Doporučujeme použít GitHub Codespaces pro rychlý start s minimálním úsilím. Nabízí štědrý [bezplatný limit využití](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) pro osobní účty. Nastavte [časové limity](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) pro zastavení nebo smazání neaktivních codespaces, abyste co nejlépe využili svůj limit. - - -## 1. Spouštění úkolů - -Každá lekce může obsahovat _volitelné_ úkoly, které mohou být dostupné v jedné nebo více programovacích jazycích, například Python, .NET/C#, Java a JavaScript/TypeScript. Tato sekce poskytuje obecné pokyny k jejich spouštění. - -### 1.1 Python úkoly - -Python úkoly jsou poskytovány buď jako aplikace (`.py` soubory) nebo Jupyter notebooky (`.ipynb` soubory). -- Pro spuštění notebooku jej otevřete ve Visual Studio Code, klikněte na _Select Kernel_ (vpravo nahoře) a vyberte výchozí možnost Python 3. Nyní můžete kliknout na _Run All_ a spustit celý notebook. -- Pro spuštění Python aplikací z příkazové řádky postupujte podle konkrétních instrukcí úkolu, abyste vybrali správné soubory a zadali požadované argumenty. - -## 2. Konfigurace poskytovatelů - -Úkoly **mohou** být také nastaveny tak, aby pracovaly s jedním nebo více nasazeními velkých jazykových modelů (LLM) přes podporované poskytovatele služeb jako OpenAI, Azure nebo Hugging Face. Ti poskytují _hostovaný endpoint_ (API), ke kterému můžeme programově přistupovat s použitím správných přihlašovacích údajů (API klíč nebo token). V tomto kurzu se zabýváme těmito poskytovateli: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) s různými modely včetně základní série GPT. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) pro OpenAI modely s důrazem na podnikové nasazení. - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) pro open-source modely a inference server. - -**Pro tyto cvičení budete potřebovat vlastní účty**. Úkoly jsou volitelné, takže si můžete vybrat, zda nastavíte jednoho, všechny nebo žádného z poskytovatelů podle svých zájmů. Několik tipů pro registraci: - -| Registrace | Cena | API klíč | Playground | Komentáře | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst)| [Ceník](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst)| [Projektové klíče](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [No-Code, Web](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Více dostupných modelů | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst)| [Ceník](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst)| [Rychlý start SDK](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst)| [Rychlý start Studio](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Přístup je nutné předem požádat](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst)| -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Ceník](https://huggingface.co/pricing) | [Přístupové tokeny](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst)| [Hugging Chat má omezený počet modelů](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Postupujte podle níže uvedených pokynů pro _konfiguraci_ tohoto repozitáře pro použití s různými poskytovateli. Úkoly, které vyžadují konkrétního poskytovatele, budou mít v názvu souboru jednu z těchto značek: - - `aoai` - vyžaduje Azure OpenAI endpoint a klíč - - `oai` - vyžaduje OpenAI endpoint a klíč - - `hf` - vyžaduje Hugging Face token - -Můžete nastavit jednoho, žádného nebo všechny poskytovatele. Příslušné úkoly pak při chybějících přihlašovacích údajích jednoduše skončí chybou. - -### 2.1. Vytvoření souboru `.env` - -Předpokládáme, že jste si přečetli výše uvedené pokyny, zaregistrovali se u příslušného poskytovatele a získali potřebné autentizační údaje (API_KEY nebo token). V případě Azure OpenAI předpokládáme, že máte také platné nasazení služby Azure OpenAI (endpoint) s alespoň jedním GPT modelem nasazeným pro chat completion. - -Dalším krokem je nastavení **lokálních proměnných prostředí** následovně: - - -1. V kořenové složce najděte soubor `.env.copy`, který by měl obsahovat něco jako: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Zkopírujte tento soubor do `.env` pomocí příkazu níže. Tento soubor je _gitignore-ován_, takže tajné údaje zůstanou v bezpečí. - - ```bash - cp .env.copy .env - ``` - -3. Vyplňte hodnoty (nahraďte zástupné symboly napravo od `=`) podle popisu v další sekci. - -3. (Volitelné) Pokud používáte GitHub Codespaces, můžete si nastavit proměnné prostředí jako _Codespaces secrets_ spojené s tímto repozitářem. V takovém případě není potřeba nastavovat lokální `.env` soubor. **Tato možnost však funguje pouze při použití GitHub Codespaces.** Pokud používáte Docker Desktop, stále je potřeba `.env` soubor nastavit. - - -### 2.2. Vyplnění souboru `.env` - -Pojďme si rychle projít názvy proměnných, abychom pochopili, co představují: - -| Proměnná | Popis | -| :--- | :--- | -| HUGGING_FACE_API_KEY | Uživatelský přístupový token, který si nastavíte ve svém profilu | -| OPENAI_API_KEY | Autorizační klíč pro použití služby mimo Azure OpenAI endpointy | -| AZURE_OPENAI_API_KEY | Autorizační klíč pro použití Azure OpenAI služby | -| AZURE_OPENAI_ENDPOINT | Nasazený endpoint pro Azure OpenAI zdroj | -| AZURE_OPENAI_DEPLOYMENT | Nasazení modelu pro _generování textu_ | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | Nasazení modelu pro _textové embeddingy_ | -| | | - -Poznámka: Poslední dvě proměnné Azure OpenAI odkazují na výchozí model pro chat completion (generování textu) a vyhledávání vektorů (embeddingy). Instrukce k jejich nastavení budou uvedeny v příslušných úkolech. - - -### 2.3 Konfigurace Azure: z portálu - -Hodnoty endpointu a klíče Azure OpenAI najdete v [Azure Portálu](https://portal.azure.com?WT.mc_id=academic-105485-koreyst), začneme tedy tam. - -1. Přejděte do [Azure Portálu](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -1. V levém menu klikněte na možnost **Keys and Endpoint**. -1. Klikněte na **Show Keys** – měli byste vidět: KEY 1, KEY 2 a Endpoint. -1. Pro `AZURE_OPENAI_API_KEY` použijte hodnotu KEY 1. -1. Pro `AZURE_OPENAI_ENDPOINT` použijte hodnotu Endpoint. - -Dále potřebujeme endpointy pro konkrétní nasazené modely. - -1. V levém menu Azure OpenAI zdroje klikněte na **Model deployments**. -1. Na cílové stránce klikněte na **Manage Deployments**. - -Tím se dostanete na web Azure OpenAI Studio, kde najdete další potřebné hodnoty, jak je popsáno níže. - -### 2.4 Konfigurace Azure: ze Studia - -1. Přejděte do [Azure OpenAI Studia](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **přímo z vašeho zdroje**, jak bylo popsáno výše. -1. Klikněte na záložku **Deployments** (v levém menu) pro zobrazení aktuálně nasazených modelů. -1. Pokud požadovaný model není nasazen, použijte **Create new deployment** pro jeho nasazení. -1. Budete potřebovat model pro _generování textu_ – doporučujeme: **gpt-35-turbo** -1. Budete potřebovat model pro _textové embeddingy_ – doporučujeme **text-embedding-ada-002** - -Nyní aktualizujte proměnné prostředí tak, aby odpovídaly názvu _nasazení_ (Deployment name). Obvykle je to stejné jako název modelu, pokud jste jej výslovně nezměnili. Například: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**Nezapomeňte soubor `.env` uložit po dokončení**. Poté můžete soubor zavřít a pokračovat v instrukcích pro spuštění notebooku. - -### 2.5 Konfigurace OpenAI: z profilu - -Váš OpenAI API klíč najdete ve svém [OpenAI účtu](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). Pokud jej nemáte, můžete si vytvořit účet a vygenerovat API klíč. Jakmile klíč získáte, vložte jej do proměnné `OPENAI_API_KEY` v souboru `.env`. - -### 2.6 Konfigurace Hugging Face: z profilu - -Váš Hugging Face token najdete ve svém profilu pod [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). Nezveřejňujte jej ani nesdílejte veřejně. Místo toho si vytvořte nový token pro tento projekt a zkopírujte jej do souboru `.env` pod proměnnou `HUGGING_FACE_API_KEY`. _Poznámka:_ Technicky to není API klíč, ale používá se pro autentizaci, proto jsme zachovali toto pojmenování pro konzistenci. - -**Prohlášení o vyloučení odpovědnosti**: -Tento dokument byl přeložen pomocí AI překladatelské služby [Co-op Translator](https://github.com/Azure/co-op-translator). I když usilujeme o přesnost, mějte prosím na paměti, že automatizované překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho mateřském jazyce by měl být považován za autoritativní zdroj. Pro důležité informace se doporučuje profesionální lidský překlad. Nejsme odpovědní za jakékoliv nedorozumění nebo nesprávné výklady vyplývající z použití tohoto překladu. \ No newline at end of file diff --git a/translations/cs/04-prompt-engineering-fundamentals/README.md b/translations/cs/04-prompt-engineering-fundamentals/README.md index f7c5219f5..edcd9cf45 100644 --- a/translations/cs/04-prompt-engineering-fundamentals/README.md +++ b/translations/cs/04-prompt-engineering-fundamentals/README.md @@ -1,450 +1,15 @@ - -# Základy návrhu promptů - -[![Základy návrhu promptů](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.cs.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Úvod -Tento modul pokrývá základní pojmy a techniky pro vytváření efektivních promptů v generativních AI modelech. Způsob, jakým napíšete prompt pro LLM, je také důležitý. Pečlivě vytvořený prompt může přinést lepší kvalitu odpovědi. Ale co přesně znamenají pojmy jako _prompt_ a _prompt engineering_? A jak mohu zlepšit vstupní prompt, který posílám LLM? Na tyto otázky se pokusíme odpovědět v této kapitole a v následující. - -_Generativní AI_ je schopná vytvářet nový obsah (např. text, obrázky, zvuk, kód atd.) na základě uživatelských požadavků. Dosahuje toho pomocí _velkých jazykových modelů_ jako je série GPT od OpenAI („Generative Pre-trained Transformer“), které jsou trénovány na práci s přirozeným jazykem a kódem. - -Uživatelé nyní mohou s těmito modely komunikovat pomocí známých paradigmat, jako je chat, aniž by potřebovali technické znalosti nebo školení. Modely jsou _prompt-based_ – uživatelé posílají textový vstup (prompt) a dostávají zpět odpověď AI (completion). Mohou pak s AI „chatovat“ iterativně, v několika kolech, a upravovat svůj prompt, dokud odpověď neodpovídá jejich očekáváním. - -„Prompty“ se tak stávají hlavním _programovacím rozhraním_ pro generativní AI aplikace, určují modelům, co mají dělat, a ovlivňují kvalitu vrácených odpovědí. „Prompt Engineering“ je rychle rostoucí oblast, která se zaměřuje na _návrh a optimalizaci_ promptů, aby bylo možné dosahovat konzistentních a kvalitních odpovědí ve velkém měřítku. - -## Cíle učení - -V této lekci se naučíme, co je Prompt Engineering, proč je důležitý a jak můžeme vytvořit efektivnější prompty pro daný model a cíl aplikace. Pochopíme základní pojmy a osvědčené postupy v návrhu promptů – a seznámíme se s interaktivním prostředím Jupyter Notebooku, kde si tyto koncepty vyzkoušíme na reálných příkladech. - -Na konci lekce budeme schopni: - -1. Vysvětlit, co je prompt engineering a proč je důležitý. -2. Popsat složky promptu a jak se používají. -3. Naučit se osvědčené postupy a techniky prompt engineeringu. -4. Aplikovat naučené techniky na reálné příklady pomocí OpenAI endpointu. - -## Klíčové pojmy - -Prompt Engineering: Praxe navrhování a zdokonalování vstupů, které vedou AI modely k požadovaným výstupům. -Tokenizace: Proces převodu textu na menší jednotky, nazývané tokeny, které model dokáže zpracovat. -Instruction-Tuned LLMs: Velké jazykové modely (LLM), které byly doladěny pomocí specifických instrukcí pro zlepšení přesnosti a relevance odpovědí. - -## Výukové prostředí - -Prompt engineering je zatím spíše umění než věda. Nejlepší způsob, jak si v něm zlepšit intuici, je _více cvičit_ a používat přístup pokus-omyl, který kombinuje znalosti z dané oblasti s doporučenými technikami a optimalizacemi specifickými pro model. - -Jupyter Notebook, který je součástí této lekce, poskytuje _sandbox_ prostředí, kde si můžete vyzkoušet, co se naučíte – průběžně nebo jako součást závěrečného kódového úkolu. K provedení cvičení budete potřebovat: - -1. **Azure OpenAI API klíč** – službu s nasazeným LLM modelem. -2. **Python Runtime** – prostředí, ve kterém lze Notebook spustit. -3. **Lokální proměnné prostředí** – _dokončete nyní kroky v [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst), abyste byli připraveni_. - -Notebook obsahuje _startovací_ cvičení – ale doporučujeme přidávat vlastní _Markdown_ (popisné) a _Code_ (promptové požadavky) sekce, abyste mohli zkoušet další příklady nebo nápady a budovat si intuici pro návrh promptů. - -## Ilustrovaný průvodce - -Chcete získat přehled o tom, co tato lekce pokrývá, než se do ní pustíte? Podívejte se na tento ilustrovaný průvodce, který vám představí hlavní témata a klíčové poznatky, nad kterými se můžete zamyslet. Plán lekce vás provede od pochopení základních konceptů a výzev až po jejich řešení pomocí relevantních technik prompt engineeringu a osvědčených postupů. Poznámka: sekce „Pokročilé techniky“ v tomto průvodci odkazuje na obsah, který je pokryt v _následující_ kapitole tohoto kurzu. - -![Ilustrovaný průvodce návrhem promptů](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.cs.png) - -## Naše startupová mise - -Nyní si povíme, jak se _toto téma_ vztahuje k naší misi startupu, která je zaměřena na [přinášení AI inovací do vzdělávání](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). Chceme vytvářet AI aplikace pro _personalizované učení_ – pojďme tedy přemýšlet, jak by různí uživatelé naší aplikace mohli „navrhovat“ prompty: - -- **Administrátoři** mohou požádat AI o _analýzu dat kurikula za účelem identifikace mezer ve výuce_. AI může shrnout výsledky nebo je vizualizovat pomocí kódu. -- **Učitelé** mohou požádat AI o _vytvoření plánu lekce pro cílové publikum a téma_. AI může sestavit personalizovaný plán ve specifikovaném formátu. -- **Studenti** mohou požádat AI o _doučování v obtížném předmětu_. AI je může vést lekcemi, nápovědami a příklady přizpůsobenými jejich úrovni. - -To je jen špička ledovce. Podívejte se na [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) – open-source knihovnu promptů sestavenou odborníky na vzdělávání – a získejte širší představu o možnostech! _Vyzkoušejte některé z těchto promptů v sandboxu nebo v OpenAI Playground a uvidíte, co se stane!_ - - - -## Co je Prompt Engineering? - -Lekci jsme začali definicí **Prompt Engineering** jako procesu _navrhování a optimalizace_ textových vstupů (promptů), které mají zajistit konzistentní a kvalitní odpovědi (completion) pro daný cíl aplikace a model. Můžeme to vnímat jako dvoufázový proces: - -- _navrhnout_ počáteční prompt pro daný model a cíl -- _iterativně vylepšovat_ prompt, aby se zlepšila kvalita odpovědi - -Je to nutně proces pokus-omyl, který vyžaduje uživatelskou intuici a úsilí pro dosažení optimálních výsledků. Proč je to tedy důležité? Abychom na to odpověděli, musíme nejprve pochopit tři pojmy: - -- _Tokenizace_ = jak model „vidí“ prompt -- _Základní LLM_ = jak základní model „zpracovává“ prompt -- _Instruction-Tuned LLM_ = jak model nyní dokáže rozpoznat „úkoly“ - -### Tokenizace - -LLM vidí prompty jako _sekvenci tokenů_, přičemž různé modely (nebo verze modelu) mohou stejný prompt tokenizovat různými způsoby. Protože LLM jsou trénovány na tokeny (a ne na surový text), způsob, jakým jsou prompty tokenizovány, přímo ovlivňuje kvalitu generované odpovědi. - -Pro lepší představu, jak tokenizace funguje, vyzkoušejte nástroje jako [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) uvedený níže. Zkopírujte svůj prompt a podívejte se, jak je převeden na tokeny, věnujte pozornost tomu, jak jsou zpracovány mezery a interpunkce. Upozorňujeme, že tento příklad ukazuje starší LLM (GPT-3) – u novějšího modelu může být výsledek odlišný. - -![Tokenizace](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.cs.png) - -### Koncept: Základní modely - -Jakmile je prompt tokenizován, hlavní funkcí ["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (základního modelu) je předpovědět další token v sekvenci. Protože LLM jsou trénovány na obrovských textových datech, mají dobrý přehled o statistických vztazích mezi tokeny a dokážou tuto předpověď provést s určitou jistotou. Nechápou však _význam_ slov v promptu nebo tokenu; vidí pouze vzor, který mohou „dokončit“ další předpovědí. Mohou pokračovat v předpovídání sekvence, dokud je uživatel nezastaví nebo nenastane nějaká předem stanovená podmínka. - -Chcete vidět, jak funguje dokončování na základě promptu? Zadejte výše uvedený prompt do Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) s výchozím nastavením. Systém je nastaven tak, aby považoval prompty za požadavky na informace – měli byste tedy vidět odpověď, která odpovídá tomuto kontextu. - -Co když ale uživatel chce vidět něco konkrétního, co splňuje určitá kritéria nebo cíl úkolu? Právě zde přicházejí na řadu _instruction-tuned_ LLM. - -![Základní LLM chat completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.cs.png) - -### Koncept: Instruction Tuned LLM - -[Instruction Tuned LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) vychází ze základního modelu, který je doladěn na základě příkladů nebo vstupně-výstupních párů (např. vícekrokových „zpráv“), které obsahují jasné instrukce – a odpověď AI se snaží těmto instrukcím vyhovět. - -Používá techniky jako Reinforcement Learning with Human Feedback (RLHF), které model naučí _řídit se instrukcemi_ a _učit se z feedbacku_, aby produkoval odpovědi lépe přizpůsobené praktickým aplikacím a relevantnější pro uživatelské cíle. - -Vyzkoušejme to – vraťte se k výše uvedenému promptu, ale nyní změňte _systémovou zprávu_ tak, aby obsahovala následující instrukci jako kontext: - -> _Shrň obsah, který ti poskytnu, pro žáka druhé třídy. Výsledek udrž na jednom odstavci s 3–5 odrážkami._ - -Vidíte, jak je výsledek nyní laděný tak, aby odpovídal požadovanému cíli a formátu? Učitel může tuto odpověď přímo použít ve svých prezentacích pro danou třídu. - -![Instruction Tuned LLM chat completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.cs.png) - -## Proč potřebujeme Prompt Engineering? - -Nyní, když víme, jak LLM zpracovávají prompty, pojďme si říct, _proč_ potřebujeme prompt engineering. Odpověď spočívá v tom, že současné LLM představují řadu výzev, které ztěžují dosažení _spolehlivých a konzistentních odpovědí_ bez úsilí věnovaného konstrukci a optimalizaci promptů. Například: - -1. **Odpovědi modelu jsou náhodné.** _Stejný prompt_ pravděpodobně vygeneruje různé odpovědi u různých modelů nebo verzí modelu. A může dokonce produkovat různé výsledky i u _stejného modelu_ v různých časech. _Techniky prompt engineeringu nám pomáhají minimalizovat tyto odchylky tím, že poskytují lepší mantinely_. - -1. **Modely mohou vytvářet nepravdivé odpovědi.** Modely jsou předtrénovány na _velkých, ale omezených_ datech, což znamená, že nemají znalosti o konceptech mimo rozsah tréninku. Výsledkem může být generování nepřesných, smyšlených nebo přímo protichůdných informací. _Techniky prompt engineeringu pomáhají uživatelům tyto nepravdivé informace odhalit a zmírnit, například žádáním AI o citace nebo zdůvodnění_. - -1. **Schopnosti modelů se liší.** Novější modely nebo generace modelů mají bohatší schopnosti, ale také přinášejí specifické zvláštnosti a kompromisy v nákladech a složitosti. _Prompt engineering nám pomáhá vyvíjet osvědčené postupy a pracovní postupy, které abstrahují tyto rozdíly a přizpůsobují se požadavkům konkrétního modelu škálovatelným a plynulým způsobem_. - -Podívejme se na to v praxi v OpenAI nebo Azure OpenAI Playground: - -- Použijte stejný prompt u různých nasazení LLM (např. OpenAI, Azure OpenAI, Hugging Face) – viděli jste rozdíly? -- Použijte stejný prompt opakovaně u _stejného_ nasazení LLM (např. Azure OpenAI playground) – jak se lišily výsledky? - -### Příklad nepravdivých informací (fabrications) - -V tomto kurzu používáme termín **„fabrication“** k označení jevu, kdy LLM někdy generují fakticky nesprávné informace kvůli omezením ve svém tréninku nebo jiným faktorům. Tento jev je v populárních článcích nebo výzkumných pracích často označován jako _„halucinace“_. Nicméně důrazně doporučujeme používat termín _„fabrication“_, abychom se vyhnuli antropomorfizaci chování a nepřisuzovali strojovému výsledku lidskou vlastnost. Tento přístup také podporuje [zásady odpovědného AI](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) z hlediska terminologie a odstraňuje výrazy, které mohou být v některých kontextech považovány za nevhodné nebo neinkluzivní. - -Chcete si udělat představu, jak fabrication funguje? Představte si prompt, který instruuje AI, aby vytvořila obsah k neexistujícímu tématu (aby bylo jisté, že se v tréninkových datech nevyskytuje). Například – zkoušel jsem tento prompt: -# Plán lekce: Válka na Marsu v roce 2076 - -## Cíl lekce -Seznámit studenty s hlavními událostmi, příčinami a důsledky Války na Marsu v roce 2076. - -## Délka lekce -60 minut - -## Pomůcky -- Prezentace s obrázky a mapami Marsu -- Video dokument o Válce na Marsu -- Pracovní listy s otázkami a úkoly - -## Struktura lekce - -### 1. Úvod (10 minut) -- Krátké představení Marsu jako planety a jeho kolonizace do roku 2076. -- Diskuze: Proč by mohlo dojít k válce na Marsu? - -### 2. Hlavní události Války na Marsu (20 minut) -- Popis příčin konfliktu: zdroje, politické napětí, technologie. -- Klíčové bitvy a jejich průběh. -- Role hlavních aktérů a frakcí. - -### 3. Důsledky války (15 minut) -- Dopady na kolonii a Zemi. -- Změny v politice a technologii po válce. -- Diskuze o morálních a etických otázkách konfliktu. - -### 4. Závěr a shrnutí (10 minut) -- Opakování klíčových bodů. -- Otázky a odpovědi. -- Zadání domácího úkolu: Napsat krátkou esej o tom, jak by se dala válka na Marsu v budoucnu zabránit. - -## Domácí úkol -Napište esej (max. 300 slov) na téma: „Jak zabránit budoucím konfliktům na Marsu?“ -Webové vyhledávání mi ukázalo, že existují fiktivní příběhy (např. televizní seriály nebo knihy) o válkách na Marsu – ale žádné z roku 2076. Zdravý rozum nám také říká, že rok 2076 je _v budoucnosti_ a proto nemůže být spojen s reálnou událostí. - -Co se tedy stane, když tento prompt spustíme u různých poskytovatelů LLM? - -> **Odpověď 1**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.cs.png) - -> **Odpověď 2**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.cs.png) - -> **Odpověď 3**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.cs.png) - -Jak se dalo očekávat, každý model (nebo jeho verze) generuje mírně odlišné odpovědi díky stochastickému chování a rozdílům v schopnostech modelu. Například jeden model cílí na publikum 8. třídy, zatímco jiný předpokládá středoškolského studenta. Ale všechny tři modely vytvořily odpovědi, které by mohly přesvědčit neinformovaného uživatele, že daná událost je skutečná. - -Techniky prompt engineeringu jako _metaprompting_ a _nastavení teploty_ mohou do určité míry snížit výskyt vymyšlených informací modelem. Nové _architektury_ prompt engineeringu také bezproblémově začleňují nové nástroje a techniky do toku promptu, aby zmírnily nebo omezily některé z těchto efektů. - -## Případová studie: GitHub Copilot - -Tuto sekci zakončíme pohledem na to, jak se prompt engineering používá v reálných řešeních, a to na příkladu jedné případové studie: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot je váš „AI parťák programátor“ – převádí textové prompt na dokončení kódu a je integrován do vašeho vývojového prostředí (např. Visual Studio Code) pro plynulý uživatelský zážitek. Jak je zdokumentováno v sérii níže uvedených blogů, první verze byla založena na modelu OpenAI Codex – inženýři však rychle pochopili potřebu doladit model a vyvinout lepší techniky prompt engineeringu, aby se zlepšila kvalita kódu. V červenci pak [představili vylepšený AI model, který jde nad rámec Codexu](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) a nabízí ještě rychlejší návrhy. - -Přečtěte si příspěvky v pořadí, abyste sledovali jejich cestu učení. - -- **Květen 2023** | [GitHub Copilot se zlepšuje v porozumění vašemu kódu](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **Květen 2023** | [Uvnitř GitHubu: Práce s LLM za GitHub Copilotem](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Červen 2023** | [Jak psát lepší prompty pro GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Červenec 2023** | [GitHub Copilot jde nad rámec Codexu s vylepšeným AI modelem](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Červenec 2023** | [Průvodce vývojáře prompt engineeringem a LLM](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **Září 2023** | [Jak postavit podnikové LLM aplikace: Lekce z GitHub Copilota](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -Můžete také procházet jejich [inženýrský blog](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) pro další příspěvky jako [tento](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst), který ukazuje, jak jsou tyto modely a techniky _aplikovány_ pro reálné projekty. - ---- - - - -## Konstrukce promptu - -Viděli jsme, proč je prompt engineering důležitý – teď si pojďme vysvětlit, jak se prompty _konstruují_, abychom mohli hodnotit různé techniky pro efektivnější návrh promptů. - -### Základní prompt - -Začněme se základním promptem: textovým vstupem zaslaným modelu bez dalšího kontextu. Tady je příklad – když pošleme první pár slov americké národní hymny do OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst), model okamžitě _dokončí_ odpověď dalšími řádky, což ilustruje základní predikční chování. - -| Prompt (vstup) | Dokončení (výstup) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | Zdá se, že začínáte text písně „The Star-Spangled Banner“, národní hymny Spojených států. Celý text je ... | - -### Složitý prompt - -Nyní přidáme kontext a instrukce k základnímu promptu. [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) nám umožňuje vytvořit složitý prompt jako sbírku _zpráv_ s: - -- páry vstup/výstup odrážejícími _uživatelský_ vstup a _asistentovu_ odpověď. -- systémovou zprávou, která nastavuje kontext chování nebo osobnosti asistenta. - -Požadavek má nyní podobu níže, kde _tokenizace_ efektivně zachycuje relevantní informace z kontextu a konverzace. Změna systémového kontextu může mít na kvalitu dokončení stejně velký vliv jako samotné uživatelské vstupy. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Instrukční prompt - -V předchozích příkladech byl uživatelský prompt jednoduchý textový dotaz, který lze interpretovat jako žádost o informaci. U _instrukčních_ promptů můžeme tento text použít k podrobnějšímu zadání úkolu a poskytnout AI lepší vedení. Tady je příklad: - -| Prompt (vstup) | Dokončení (výstup) | Typ instrukce | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :----------------- | -| Napiš popis Občanské války | _vrátil jednoduchý odstavec_ | Jednoduchý | -| Napiš popis Občanské války. Uveď klíčová data a události a popiš jejich význam | _vrátil odstavec následovaný seznamem klíčových dat událostí s popisy_ | Složitý | -| Napiš popis Občanské války v 1 odstavci. Uveď 3 odrážky s klíčovými daty a jejich významem. Uveď 3 další odrážky s klíčovými historickými osobnostmi a jejich přínosy. Výstup vrať jako JSON soubor | _vrací podrobnější informace v textovém poli, formátované jako JSON, které lze zkopírovat do souboru a případně ověřit_ | Složitý. Formátovaný.| - -## Primární obsah - -V předchozích příkladech byl prompt stále poměrně otevřený, což umožňovalo LLM rozhodnout, která část jeho předtrénovaných dat je relevantní. S návrhovým vzorem _primární obsah_ je vstupní text rozdělen na dvě části: - -- instrukce (akce) -- relevantní obsah (který ovlivňuje akci) - -Tady je příklad, kde instrukce zní „shrň toto ve 2 větách“. - -| Prompt (vstup) | Dokončení (výstup) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter je pátá planeta od Slunce a největší v Sluneční soustavě. Je to plynný obr s hmotností tisícinu Slunce, ale dvakrát a půl větší než všechny ostatní planety Sluneční soustavy dohromady. Jupiter je jedním z nejjasnějších objektů viditelných pouhým okem na noční obloze a je známý starověkým civilizacím už před zaznamenanou historií. Je pojmenován po římském bohu Jupiterovi.[19] Při pohledu ze Země může být Jupiter dostatečně jasný, aby jeho odražené světlo vrhalo viditelné stíny,[20] a je v průměru třetím nejjasnějším přirozeným objektem na noční obloze po Měsíci a Venuši.
**Shrň toto ve 2 krátkých větách** | Jupiter, pátá planeta od Slunce, je největší v Sluneční soustavě a je známý jako jeden z nejjasnějších objektů na noční obloze. Pojmenován po římském bohu Jupiterovi, je to plynný obr s hmotností dvakrát a půl větší než všechny ostatní planety Sluneční soustavy dohromady. | - -Segment primárního obsahu lze využít různými způsoby pro efektivnější zadání instrukcí: - -- **Příklady** – místo explicitního zadání, co má model udělat, mu dáme příklady, co má dělat, a necháme ho odvodit vzor. -- **Náznaky** – následující instrukci doplníme „náznakem“, který připraví dokončení a nasměruje model k relevantnějším odpovědím. -- **Šablony** – opakující se „recepty“ na prompty s proměnnými (placeholders), které lze přizpůsobit daty pro konkrétní použití. - -Pojďme si to ukázat v praxi. - -### Použití příkladů - -Toto je přístup, kdy pomocí primárního obsahu „nakrmíme model“ několika příklady požadovaného výstupu pro danou instrukci a necháme ho odvodit vzor požadovaného výstupu. Podle počtu příkladů můžeme mít zero-shot prompting, one-shot prompting, few-shot prompting atd. - -Prompt nyní obsahuje tři části: - -- popis úkolu -- několik příkladů požadovaného výstupu -- začátek nového příkladu (který se stává implicitním popisem úkolu) - -| Typ učení | Prompt (vstup) | Dokončení (výstup) | -| :---------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| Zero-shot | „The Sun is Shining“. Přelož do španělštiny | „El Sol está brillando“. | -| One-shot | „The Sun is Shining“ => „El Sol está brillando“.
„It's a Cold and Windy Day“ => | „Es un día frío y ventoso“. | -| Few-shot | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketball | -| | | | - -Všimněte si, že u zero-shot promptingu jsme museli explicitně zadat instrukci („Přelož do španělštiny“), ale u one-shot promptingu už je to odvozeno z příkladu. Few-shot příklad ukazuje, jak přidání více příkladů umožňuje modelům přesněji odvodit vzory bez dalších instrukcí. - -### Náznaky promptu - -Další technikou využití primárního obsahu je poskytnout _náznaky_ místo příkladů. V tomto případě modelu „napovíme“ správným směrem tím, že _začneme_ úryvkem, který odráží požadovaný formát odpovědi. Model pak „chytí náznak“ a pokračuje v daném stylu. - -| Počet náznaků | Prompt (vstup) | Dokončení (výstup) | -| :------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Jupiter je pátá planeta od Slunce a největší v Sluneční soustavě. Je to plynný obr s hmotností tisícinu Slunce, ale dvakrát a půl větší než všechny ostatní planety Sluneční soustavy dohromady. Jupiter je jedním z nejjasnějších objektů viditelných pouhým okem na noční obloze, a je známý starověkým civilizacím už před zaznamenanou historií. - -**Shrňte to** | Jupiter je největší planeta naší Sluneční soustavy a pátá od Slunce. Je to plynný obr s hmotností 1/1000 Slunce, ale je těžší než všechny ostatní planety dohromady. Starověké civilizace o Jupiteru věděly už dlouho a je snadno viditelný na noční obloze. | -| 1 | Jupiter je pátá planeta od Slunce a největší v Sluneční soustavě. Je to plynný obr s hmotností jedné tisíciny Slunce, ale váží dvakrát a půl více než všechny ostatní planety Sluneční soustavy dohromady. Jupiter je jedním z nejjasnějších objektů viditelných pouhým okem na noční obloze a byl známý starověkým civilizacím už před zaznamenanou historií.
**Shrňte to**
Co jsme se dozvěděli, je, že Jupiter | je pátá planeta od Slunce a největší v Sluneční soustavě. Je to plynný obr s hmotností jedné tisíciny Slunce, ale váží dvakrát a půl více než všechny ostatní planety dohromady. Je snadno viditelný pouhým okem a je známý od starověku. | -| 2 | Jupiter je pátá planeta od Slunce a největší v Sluneční soustavě. Je to plynný obr s hmotností jedné tisíciny Slunce, ale váží dvakrát a půl více než všechny ostatní planety Sluneční soustavy dohromady. Jupiter je jedním z nejjasnějších objektů viditelných pouhým okem na noční obloze a byl známý starověkým civilizacím už před zaznamenanou historií.
**Shrňte to**
Tři nejdůležitější fakta, která jsme se naučili: | 1. Jupiter je pátá planeta od Slunce a největší v Sluneční soustavě.
2. Je to plynný obr s hmotností jedné tisíciny Slunce...
3. Jupiter je viditelný pouhým okem už od starověku ... | -| | | | - -### Šablony promptů - -Šablona promptu je _předem definovaný recept na prompt_, který lze uložit a znovu použít podle potřeby, aby se zajistila konzistentnější uživatelská zkušenost ve velkém měřítku. V nejjednodušší podobě je to prostě sbírka příkladů promptů, jako je [tento od OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst), který poskytuje jak interaktivní komponenty promptu (zprávy uživatele a systému), tak formát požadavku řízený API – pro podporu opakovaného použití. - -V složitější podobě, jako je [tento příklad od LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst), obsahuje _zástupné symboly_, které lze nahradit daty z různých zdrojů (uživatelský vstup, systémový kontext, externí datové zdroje atd.) pro dynamické generování promptu. To nám umožňuje vytvořit knihovnu znovupoužitelných promptů, které lze **programově** využívat k zajištění konzistentních uživatelských zkušeností ve velkém měřítku. - -Skutečná hodnota šablon spočívá v možnosti vytvářet a publikovat _knihovny promptů_ pro vertikální aplikační oblasti – kde je šablona promptu nyní _optimalizována_ tak, aby odrážela kontext nebo příklady specifické pro danou aplikaci, což činí odpovědi relevantnějšími a přesnějšími pro cílové uživatele. Repozitář [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) je skvělým příkladem tohoto přístupu, který shromažďuje knihovnu promptů pro vzdělávací oblast s důrazem na klíčové cíle jako plánování lekcí, návrh osnov, doučování studentů atd. - -## Podpůrný obsah - -Pokud uvažujeme o konstrukci promptu jako o instrukci (úkolu) a cíli (primárním obsahu), pak _sekundární obsah_ je něco jako dodatečný kontext, který poskytujeme, abychom **nějak ovlivnili výstup**. Může to být ladicí parametry, instrukce pro formátování, taxonomie témat atd., které pomáhají modelu _přizpůsobit_ odpověď tak, aby vyhovovala požadovaným cílům nebo očekáváním uživatele. - -Například: Máme katalog kurzů s rozsáhlými metadaty (název, popis, úroveň, štítky metadat, lektor atd.) o všech dostupných kurzech v osnově: - -- můžeme definovat instrukci „shrň katalog kurzů pro podzim 2023“ -- můžeme použít primární obsah k poskytnutí několika příkladů požadovaného výstupu -- můžeme použít sekundární obsah k identifikaci 5 nejdůležitějších „štítků“ - -Model pak může poskytnout shrnutí ve formátu ukázaném v příkladech – ale pokud má výsledek více štítků, může upřednostnit těch 5 identifikovaných v sekundárním obsahu. - ---- - - - -## Nejlepší postupy při tvorbě promptů - -Nyní, když víme, jak lze prompty _sestavovat_, můžeme začít přemýšlet o tom, jak je _navrhnout_ tak, aby odrážely nejlepší postupy. Můžeme to rozdělit na dvě části – mít správný _přístup_ a používat správné _techniky_. - -### Přístup k prompt engineeringu - -Prompt engineering je proces pokusů a omylů, proto mějte na paměti tři hlavní zásady: - -1. **Důležitost znalosti domény.** Přesnost a relevance odpovědi závisí na _domeně_, ve které aplikace nebo uživatel pracuje. Použijte svou intuici a odborné znalosti domény k **dalšímu přizpůsobení technik**. Například definujte _osobnosti specifické pro doménu_ ve svých systémových promptech nebo použijte _šablony specifické pro doménu_ v uživatelských promptech. Poskytněte sekundární obsah, který odráží kontext specifický pro doménu, nebo použijte _nápovědy a příklady z dané domény_, aby model směřoval k známým vzorcům použití. - -2. **Důležitost znalosti modelu.** Víme, že modely jsou z podstaty stochastické. Implementace modelů se však může lišit podle použitého tréninkového datasetu (předtrénované znalosti), schopností, které poskytují (např. přes API nebo SDK) a typu obsahu, pro který jsou optimalizovány (např. kód vs. obrázky vs. text). Pochopte silné a slabé stránky modelu, který používáte, a využijte tyto znalosti k _prioritizaci úkolů_ nebo k tvorbě _vlastních šablon_ optimalizovaných pro schopnosti modelu. - -3. **Důležitost iterace a ověřování.** Modely se rychle vyvíjejí, stejně jako techniky prompt engineeringu. Jako odborník na doménu můžete mít další kontext nebo kritéria pro _vaši_ konkrétní aplikaci, která nemusí platit pro širší komunitu. Používejte nástroje a techniky prompt engineeringu k „rychlému startu“ tvorby promptů, poté iterujte a ověřujte výsledky pomocí vlastní intuice a odborných znalostí. Zaznamenávejte své poznatky a vytvářejte **databázi znalostí** (např. knihovny promptů), kterou mohou ostatní využít jako novou výchozí úroveň pro rychlejší iterace v budoucnu. - -## Nejlepší postupy - -Podívejme se nyní na běžné doporučené postupy od [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) a [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst). - -| Co | Proč | -| :------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Vyzkoušejte nejnovější modely. | Nové generace modelů pravděpodobně přinášejí lepší funkce a kvalitu – ale mohou také znamenat vyšší náklady. Otestujte je z hlediska dopadu a pak se rozhodněte o migraci. | -| Oddělte instrukce a kontext | Zjistěte, zda váš model/poskytovatel definuje _oddělovače_ pro jasnější rozlišení instrukcí, primárního a sekundárního obsahu. To pomáhá modelům přesněji vážit tokeny. | -| Buďte konkrétní a jasní | Poskytněte více detailů o požadovaném kontextu, výsledku, délce, formátu, stylu atd. To zlepší kvalitu i konzistenci odpovědí. Zachyťte recepty v znovupoužitelných šablonách. | -| Buďte popisní, používejte příklady | Modely často lépe reagují na přístup „ukázat a říct“. Začněte s `zero-shot` přístupem, kdy dáte instrukci (ale žádné příklady), pak zkuste `few-shot` jako vylepšení, kdy poskytnete několik příkladů požadovaného výstupu. Používejte analogie. | -| Používejte nápovědy k nastartování dokončení | Nasměrujte model k požadovanému výsledku tím, že mu dáte několik úvodních slov nebo frází, které může použít jako výchozí bod pro odpověď. | -| Opakujte, pokud je třeba | Někdy je potřeba modelu instrukce zopakovat. Dejte instrukce před i po primárním obsahu, použijte instrukci a nápovědu atd. Iterujte a ověřujte, co funguje nejlépe. | -| Pořadí má význam | Pořadí, v jakém modelu předkládáte informace, může ovlivnit výstup, i v příkladech učení, kvůli efektu nedávné paměti. Vyzkoušejte různé možnosti, abyste zjistili, co funguje nejlépe. | -| Dejte modelu „východisko“ | Poskytněte modelu _záložní_ odpověď, kterou může použít, pokud z nějakého důvodu nemůže úkol dokončit. To snižuje riziko generování falešných nebo vymyšlených odpovědí. | -| | | - -Jako u každého nejlepšího postupu mějte na paměti, že _výsledky se mohou lišit_ v závislosti na modelu, úkolu a doméně. Používejte tyto rady jako výchozí bod a iterujte, abyste našli, co vám nejlépe vyhovuje. Neustále přehodnocujte svůj proces prompt engineeringu, jakmile jsou k dispozici nové modely a nástroje, s důrazem na škálovatelnost procesu a kvalitu odpovědí. - - - -## Zadání - -Gratulujeme! Dostali jste se na konec lekce! Je čas vyzkoušet některé z těchto konceptů a technik na reálných příkladech! - -Pro naše zadání budeme používat Jupyter Notebook s cvičeními, která můžete dokončit interaktivně. Notebook si také můžete rozšířit o vlastní Markdown a kódové buňky, abyste mohli samostatně zkoumat nápady a techniky. - -### Pro začátek si forknete repozitář, pak - -- (Doporučeno) Spusťte GitHub Codespaces -- (Alternativně) Naklonujte repozitář do svého zařízení a používejte ho s Docker Desktop -- (Alternativně) Otevřete Notebook ve svém preferovaném prostředí pro Jupyter Notebooky - -### Dále nastavte své proměnné prostředí - -- Zkopírujte soubor `.env.copy` z kořenového adresáře repozitáře do `.env` a vyplňte hodnoty `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` a `AZURE_OPENAI_DEPLOYMENT`. Poté se vraťte do [sekce Learning Sandbox](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals), kde se naučíte, jak na to. - -### Poté otevřete Jupyter Notebook - -- Vyberte runtime kernel. Pokud používáte možnosti 1 nebo 2, jednoduše vyberte výchozí kernel Python 3.10.x, který poskytuje vývojové prostředí. - -Jste připraveni spustit cvičení. Všimněte si, že zde nejsou žádné _správné nebo špatné_ odpovědi – jde o zkoumání možností metodou pokus-omyl a budování intuice, co funguje pro daný model a aplikační oblast. - -_Proto v této lekci nejsou žádné segmenty s řešením kódu. Místo toho budou v Notebooku Markdown buňky s názvem „Moje řešení:“, které ukazují jeden příklad výstupu pro referenci._ - - - -## Kontrola znalostí - -Který z následujících promptů je dobrý a odpovídá rozumným nejlepším postupům? - -1. Ukáž mi obrázek červeného auta -2. Ukáž mi obrázek červeného auta značky Volvo a modelu XC90 zaparkovaného u útesu při západu slunce -3. Ukáž mi obrázek červeného auta značky Volvo a modelu XC90 - -Odpověď: 2, je to nejlepší prompt, protože poskytuje detaily o „co“ a jde do konkrétností (nejde jen o jakékoliv auto, ale o konkrétní značku a model) a také popisuje celkové prostředí. 3 je druhý nejlepší, protože také obsahuje hodně popisu. - -## 🚀 Výzva - -Zkuste využít techniku „nápovědy“ s promptem: Dokonči větu „Ukáž mi obrázek červeného auta značky Volvo a “. Co odpoví a jak byste prompt vylepšili? - -## Skvělá práce! Pokračujte ve svém učení - -Chcete se dozvědět více o různých konceptech Prompt Engineeringu? Navštivte [stránku s dalším učením](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst), kde najdete další skvělé zdroje na toto téma. - -Přejděte do Lekce 5, kde se podíváme na [pokročilé techniky promptování](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**Prohlášení o vyloučení odpovědnosti**: -Tento dokument byl přeložen pomocí AI překladatelské služby [Co-op Translator](https://github.com/Azure/co-op-translator). I když usilujeme o přesnost, mějte prosím na paměti, že automatické překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho mateřském jazyce by měl být považován za závazný zdroj. Pro důležité informace se doporučuje profesionální lidský překlad. Nejsme odpovědní za jakékoliv nedorozumění nebo nesprávné výklady vyplývající z použití tohoto překladu. \ No newline at end of file + + + + + + + diff --git a/translations/cs/09-building-image-applications/README.md b/translations/cs/09-building-image-applications/README.md index 4c3b373b6..7aa34f721 100644 --- a/translations/cs/09-building-image-applications/README.md +++ b/translations/cs/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# Tvorba aplikací pro generování obrázků - -[![Tvorba aplikací pro generování obrázků](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.cs.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLM nejsou jen o generování textu. Je také možné generovat obrázky z textových popisů. Obrázky jako modalita mohou být velmi užitečné v mnoha oblastech, od MedTechu, architektury, turismu, vývoje her a dalších. V této kapitole se podíváme na dva nejoblíbenější modely pro generování obrázků, DALL-E a Midjourney. - -## Úvod - -V této lekci se budeme věnovat: - -- Generování obrázků a proč je užitečné. -- DALL-E a Midjourney, co to jsou a jak fungují. -- Jak vytvořit aplikaci pro generování obrázků. - -## Cíle učení - -Po dokončení této lekce budete schopni: - -- Vytvořit aplikaci pro generování obrázků. -- Definovat hranice vaší aplikace pomocí metapromptů. -- Pracovat s DALL-E a Midjourney. - -## Proč vytvářet aplikaci pro generování obrázků? - -Aplikace pro generování obrázků jsou skvělým způsobem, jak prozkoumat možnosti Generativní AI. Mohou být využity například pro: - -- **Úpravu a syntézu obrázků**. Můžete generovat obrázky pro různé účely, jako je úprava obrázků nebo jejich syntéza. - -- **Použití v různých odvětvích**. Mohou být také použity k vytváření obrázků pro různá odvětví, jako je Medtech, turismus, vývoj her a další. - -## Scénář: Edu4All - -V rámci této lekce budeme pokračovat v práci s naším startupem Edu4All. Studenti budou vytvářet obrázky pro své úkoly, jaké přesně obrázky, to záleží na nich – mohou to být ilustrace k jejich vlastní pohádce, vytvoření nové postavy pro jejich příběh nebo pomoc s vizualizací jejich nápadů a konceptů. - -Tady je příklad, co by studenti Edu4All mohli vytvořit, pokud pracují ve třídě na památkách: - -![Edu4All startup, třída o památkách, Eiffelova věž](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.cs.png) - -pomocí promptu - -> "Pes vedle Eiffelovy věže v ranním slunečním světle" - -## Co je DALL-E a Midjourney? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) a [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) jsou dva z nejpopulárnějších modelů pro generování obrázků, které umožňují generovat obrázky na základě textových promptů. - -### DALL-E - -Začněme s DALL-E, což je model Generativní AI, který vytváří obrázky z textových popisů. - -> [DALL-E je kombinací dvou modelů, CLIP a diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP** je model, který vytváří embeddingy, tedy číselné reprezentace dat, z obrázků a textu. - -- **Diffused attention** je model, který generuje obrázky z embeddingů. DALL-E je trénován na datech obsahujících obrázky a text a může být použit k vytváření obrázků na základě textových popisů. Například DALL-E může vytvořit obrázek kočky v klobouku nebo psa s mohawkem. - -### Midjourney - -Midjourney funguje podobně jako DALL-E, generuje obrázky z textových promptů. Midjourney lze také použít k vytvoření obrázků na základě promptů jako „kočka v klobouku“ nebo „pes s mohawkem“. - -![Obrázek vytvořený Midjourney, mechanický holub](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Obrázek z Wikipedie, vytvořeno Midjourney_ - -## Jak fungují DALL-E a Midjourney - -Nejprve [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). DALL-E je model Generativní AI založený na architektuře transformeru s _autoregresivním transformerem_. - -_Autoregresivní transformer_ určuje, jak model generuje obrázky z textových popisů – generuje jeden pixel po druhém a využívá již vygenerované pixely k vytvoření dalších. Prochází přitom několika vrstvami neuronové sítě, dokud není obrázek kompletní. - -Tímto způsobem DALL-E ovládá atributy, objekty, charakteristiky a další prvky v generovaném obrázku. Nicméně DALL-E 2 a 3 mají nad generovaným obrázkem ještě větší kontrolu. - -## Vytvoření první aplikace pro generování obrázků - -Co je potřeba k vytvoření aplikace pro generování obrázků? Budete potřebovat následující knihovny: - -- **python-dotenv**, doporučujeme tuto knihovnu pro uchování vašich tajných klíčů v souboru _.env_ mimo kód. -- **openai**, tato knihovna slouží k interakci s OpenAI API. -- **pillow**, pro práci s obrázky v Pythonu. -- **requests**, pro usnadnění HTTP požadavků. - -1. Vytvořte soubor _.env_ s následujícím obsahem: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Tyto informace najdete v Azure Portálu u vašeho zdroje v sekci „Keys and Endpoint“. - -1. Vytvořte soubor _requirements.txt_ s následujícím obsahem: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. Vytvořte virtuální prostředí a nainstalujte knihovny: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Pro Windows použijte tyto příkazy k vytvoření a aktivaci virtuálního prostředí: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. Přidejte následující kód do souboru _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Vysvětlíme si tento kód: - -- Nejprve importujeme potřebné knihovny, včetně OpenAI, dotenv, requests a Pillow. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Poté načteme proměnné prostředí ze souboru _.env_. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- Následně nastavíme endpoint, klíč pro OpenAI API, verzi a typ. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- Dále generujeme obrázek: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - Výše uvedený kód vrací JSON objekt obsahující URL vygenerovaného obrázku. Tuto URL můžeme použít ke stažení obrázku a jeho uložení do souboru. - -- Nakonec otevřeme obrázek a zobrazíme ho pomocí standardního prohlížeče obrázků: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Podrobnější pohled na generování obrázku - -Podívejme se podrobněji na kód, který generuje obrázek: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** je textový prompt, který se používá k vytvoření obrázku. V tomto případě používáme prompt „Zajíček na koni, držící lízátko, na mlhavé louce, kde rostou narcisy“. -- **size** je velikost generovaného obrázku. V tomto případě generujeme obrázek o rozměrech 1024x1024 pixelů. -- **n** je počet generovaných obrázků. V tomto případě generujeme dva obrázky. -- **temperature** je parametr, který ovlivňuje náhodnost výstupu modelu Generativní AI. Hodnota teploty je mezi 0 a 1, kde 0 znamená deterministický výstup a 1 náhodný výstup. Výchozí hodnota je 0,7. - -Existuje ještě více možností, co s obrázky dělat, o tom si povíme v další části. - -## Další možnosti generování obrázků - -Už jste viděli, jak jsme pomocí pár řádků v Pythonu vytvořili obrázek. Ale existuje i další možnosti práce s obrázky. - -Můžete také: - -- **Provádět úpravy**. Poskytnutím existujícího obrázku, masky a promptu můžete obrázek upravit. Například můžete přidat něco do určité části obrázku. Představte si náš obrázek se zajíčkem, můžete mu přidat klobouk. Jak na to? Poskytnete obrázek, masku (která označuje oblast pro změnu) a textový prompt, co se má udělat. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - Základní obrázek by obsahoval pouze zajíčka, ale finální obrázek by měl klobouk na zajíčkovi. - -- **Vytvářet variace**. Myšlenka je, že vezmete existující obrázek a požádáte o vytvoření jeho variací. Pro vytvoření variace poskytnete obrázek a textový prompt a použijete kód jako tento: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Poznámka: tato funkce je podporována pouze v OpenAI. - -## Teplota (Temperature) - -Teplota je parametr, který ovlivňuje náhodnost výstupu modelu Generativní AI. Hodnota teploty je mezi 0 a 1, kde 0 znamená deterministický výstup a 1 náhodný výstup. Výchozí hodnota je 0,7. - -Podívejme se na příklad, jak teplota funguje, když spustíme tento prompt dvakrát: - -> Prompt: „Zajíček na koni, držící lízátko, na mlhavé louce, kde rostou narcisy“ - -![Zajíček na koni držící lízátko, verze 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.cs.png) - -Nyní spustíme stejný prompt znovu, abychom viděli, že nedostaneme stejný obrázek dvakrát: - -![Vygenerovaný obrázek zajíčka na koni](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.cs.png) - -Jak vidíte, obrázky jsou podobné, ale ne stejné. Zkusme změnit hodnotu teploty na 0,1 a uvidíme, co se stane: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Změna teploty - -Zkusme tedy udělat odpověď více deterministickou. Z obrázků, které jsme vytvořili, vidíme, že na prvním je zajíček a na druhém kůň, takže se obrázky výrazně liší. - -Proto změníme náš kód a nastavíme teplotu na 0, takto: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Když teď tento kód spustíte, dostanete tyto dva obrázky: - -- ![Teplota 0, verze 1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.cs.png) -- ![Teplota 0, verze 2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.cs.png) - -Zde je jasně vidět, že obrázky jsou si mnohem podobnější. - -## Jak definovat hranice vaší aplikace pomocí metapromptů - -S naší ukázkou už můžeme generovat obrázky pro naše klienty. Nicméně je potřeba nastavit určité hranice pro naši aplikaci. - -Například nechceme generovat obrázky, které nejsou vhodné pro práci (NSFW) nebo nejsou vhodné pro děti. - -To můžeme udělat pomocí _metapromptů_. Metaprompt jsou textové prompt, které slouží k řízení výstupu modelu Generativní AI. Například můžeme metaprompt použít k zajištění, že generované obrázky jsou bezpečné pro práci nebo vhodné pro děti. - -### Jak to funguje? - -Jak tedy metaprompt fungují? - -Metaprompt jsou textové prompt, které se používají k řízení výstupu modelu Generativní AI, umisťují se před hlavní textový prompt a slouží k řízení výstupu modelu. Jsou integrovány do aplikací, aby kontrolovaly výstup modelu. Vstupní prompt a metaprompt jsou spojeny do jednoho textového promptu. - -Příklad metaprompt může vypadat takto: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Podívejme se nyní, jak můžeme metaprompt použít v naší ukázce. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -Z výše uvedeného promptu vidíte, že všechny generované obrázky berou v úvahu metaprompt. - -## Zadání – umožněme studentům tvořit - -Na začátku lekce jsme představili Edu4All. Nyní je čas umožnit studentům generovat obrázky pro jejich úkoly. - -Studenti budou vytvářet obrázky obsahující památky, jaké přesně památky, to je na nich. Studenti mají v tomto úkolu využít svou kreativitu a umístit tyto památky do různých kontextů. - -## Řešení - -Tady je jedno možné řešení: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Skvělá práce! Pokračujte ve svém vzdělávání - -Po dokončení této lekce si prohlédněte naši [kolekci Generativní AI](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) a pokračujte v rozšiřování svých znalostí o Generativní AI! - -Přejděte na Lekci 10, kde se podíváme, jak [vytvářet AI aplikace s nízkým kódem](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**Prohlášení o vyloučení odpovědnosti**: -Tento dokument byl přeložen pomocí AI překladatelské služby [Co-op Translator](https://github.com/Azure/co-op-translator). I když usilujeme o přesnost, mějte prosím na paměti, že automatizované překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho mateřském jazyce by měl být považován za závazný zdroj. Pro důležité informace se doporučuje profesionální lidský překlad. Nejsme odpovědní za jakékoliv nedorozumění nebo nesprávné výklady vyplývající z použití tohoto překladu. \ No newline at end of file + + + + diff --git a/translations/cs/12-designing-ux-for-ai-applications/README.md b/translations/cs/12-designing-ux-for-ai-applications/README.md index 183389578..2b18871d8 100644 --- a/translations/cs/12-designing-ux-for-ai-applications/README.md +++ b/translations/cs/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# Návrh UX pro AI aplikace - -[![Návrh UX pro AI aplikace](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.cs.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Klikněte na obrázek výše pro zhlédnutí videa této lekce)_ - -Uživatelská zkušenost je velmi důležitým aspektem při tvorbě aplikací. Uživatelé musí být schopni efektivně používat vaši aplikaci k plnění úkolů. Efektivita je jedna věc, ale také je potřeba navrhnout aplikace tak, aby je mohl používat každý, tedy aby byly _přístupné_. Tato kapitola se zaměří právě na tuto oblast, abyste nakonec navrhli aplikaci, kterou lidé budou chtít a moci používat. - -## Úvod - -Uživatelská zkušenost popisuje, jak uživatel interaguje a používá konkrétní produkt nebo službu, ať už jde o systém, nástroj nebo design. Při vývoji AI aplikací se vývojáři zaměřují nejen na to, aby byla uživatelská zkušenost efektivní, ale také etická. V této lekci se naučíme, jak vytvářet aplikace umělé inteligence (AI), které odpovídají potřebám uživatelů. - -Lekce pokryje následující oblasti: - -- Úvod do uživatelské zkušenosti a porozumění potřebám uživatelů -- Návrh AI aplikací pro důvěru a transparentnost -- Návrh AI aplikací pro spolupráci a zpětnou vazbu - -## Cíle učení - -Po absolvování této lekce budete schopni: - -- Pochopit, jak vytvářet AI aplikace, které odpovídají potřebám uživatelů. -- Navrhovat AI aplikace, které podporují důvěru a spolupráci. - -### Předpoklady - -Věnujte čas a přečtěte si více o [uživatelské zkušenosti a designovém myšlení.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Úvod do uživatelské zkušenosti a porozumění potřebám uživatelů - -V našem fiktivním vzdělávacím startupu máme dva hlavní uživatele – učitele a studenty. Každý z nich má své specifické potřeby. Uživatelsky orientovaný design klade uživatele na první místo a zajišťuje, že produkty jsou relevantní a prospěšné pro ty, pro které jsou určeny. - -Aplikace by měla být **užitečná, spolehlivá, přístupná a příjemná**, aby poskytla dobrou uživatelskou zkušenost. - -### Použitelnost - -Být užitečný znamená, že aplikace má funkce odpovídající svému účelu, například automatizaci hodnocení nebo generování kartiček pro opakování. Aplikace, která automatizuje hodnocení, by měla být schopna přesně a efektivně přiřazovat známky na základě předem definovaných kritérií. Podobně aplikace generující kartičky by měla vytvářet relevantní a různorodé otázky na základě svých dat. - -### Spolehlivost - -Být spolehlivý znamená, že aplikace dokáže úkol plnit konzistentně a bez chyb. AI však, stejně jako lidé, není dokonalá a může chybovat. Aplikace mohou narazit na chyby nebo neočekávané situace, které vyžadují lidský zásah nebo opravu. Jak řešíte chyby? V poslední části této lekce se podíváme, jak jsou AI systémy a aplikace navrženy pro spolupráci a zpětnou vazbu. - -### Přístupnost - -Být přístupný znamená rozšířit uživatelskou zkušenost i na uživatele s různými schopnostmi, včetně osob s postižením, aby nikdo nebyl vynechán. Dodržováním zásad a pravidel přístupnosti se AI řešení stávají inkluzivnějšími, snadněji použitelnými a prospěšnými pro všechny uživatele. - -### Příjemnost - -Být příjemný znamená, že je aplikace radost používat. Příjemná uživatelská zkušenost může mít pozitivní dopad na uživatele, motivovat je k opakovanému používání aplikace a tím zvyšovat příjmy. - -![obrázek ilustrující úvahy o UX v AI](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.cs.png) - -Ne každý problém lze vyřešit pomocí AI. AI slouží k doplnění uživatelské zkušenosti, například automatizací manuálních úkolů nebo personalizací uživatelských zážitků. - -## Návrh AI aplikací pro důvěru a transparentnost - -Budování důvěry je klíčové při návrhu AI aplikací. Důvěra zajišťuje, že uživatel věří, že aplikace splní úkol, bude konzistentně poskytovat výsledky a tyto výsledky odpovídají jeho potřebám. Rizikem v této oblasti je nedůvěra a přehnaná důvěra. Nedůvěra nastává, když uživatel má malou nebo žádnou důvěru v AI systém, což vede k odmítnutí aplikace. Přehnaná důvěra nastává, když uživatel přeceňuje schopnosti AI systému, což vede k přílišné důvěře. Například u automatizovaného systému hodnocení může přehnaná důvěra vést k tomu, že učitel nezkontroluje některé práce, aby ověřil správnost hodnocení. To může mít za následek nespravedlivé nebo nepřesné známky, nebo zmeškané příležitosti pro zpětnou vazbu a zlepšení. - -Dva způsoby, jak zajistit, aby důvěra byla středobodem návrhu, jsou vysvětlitelnost a kontrola. - -### Vysvětlitelnost - -Když AI pomáhá při rozhodování, například při předávání znalostí budoucím generacím, je důležité, aby učitelé a rodiče rozuměli, jak AI rozhodnutí vznikají. To je vysvětlitelnost – pochopení, jak AI aplikace přijímají rozhodnutí. Návrh pro vysvětlitelnost zahrnuje přidání příkladů toho, co AI aplikace umí. Například místo „Začněte s AI učitelem“ může systém použít: „Shrňte své poznámky pro snadnější opakování pomocí AI.“ - -![úvodní stránka aplikace s jasnou ilustrací vysvětlitelnosti v AI aplikacích](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.cs.png) - -Dalším příkladem je, jak AI využívá uživatelská a osobní data. Například uživatel s rolí studenta může mít omezení vyplývající z jeho role. AI nemusí být schopna odhalit odpovědi na otázky, ale může uživatele vést, jak přemýšlet o řešení problému. - -![AI odpovídající na otázky podle role uživatele](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.cs.png) - -Poslední klíčovou součástí vysvětlitelnosti je zjednodušení vysvětlení. Studenti a učitelé nemusí být odborníky na AI, proto by vysvětlení, co aplikace umí nebo neumí, měla být jednoduchá a snadno pochopitelná. - -![zjednodušená vysvětlení o schopnostech AI](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.cs.png) - -### Kontrola - -Generativní AI vytváří spolupráci mezi AI a uživatelem, kde například uživatel může upravovat vstupy pro různé výsledky. Navíc, jakmile je výstup vytvořen, uživatelé by měli mít možnost jej upravit, což jim dává pocit kontroly. Například při používání Bing můžete přizpůsobit svůj dotaz podle formátu, tónu a délky. Také můžete přidávat změny do výstupu a upravovat jej, jak je ukázáno níže: - -![výsledky vyhledávání Bing s možnostmi upravit dotaz a výstup](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.cs.png) - -Další funkcí v Bingu, která uživateli umožňuje kontrolu nad aplikací, je možnost zapnout a vypnout používání dat AI. Ve školní aplikaci může student chtít použít své poznámky i učitelovy zdroje jako materiál pro opakování. - -![výsledky vyhledávání Bing s možnostmi upravit dotaz a výstup](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.cs.png) - -> Při návrhu AI aplikací je klíčové záměrné přistupování, aby uživatelé nepřeháněli důvěru a nevytvářeli si nereálná očekávání ohledně schopností AI. Jedním ze způsobů je vytvořit určité tření mezi vstupy a výsledky, připomínající uživateli, že jde o AI, nikoli o jiného člověka. - -## Návrh AI aplikací pro spolupráci a zpětnou vazbu - -Jak již bylo zmíněno, generativní AI vytváří spolupráci mezi uživatelem a AI. Většina interakcí spočívá v tom, že uživatel zadá dotaz a AI vygeneruje odpověď. Co když je výstup nesprávný? Jak aplikace řeší chyby, pokud nastanou? Obviňuje AI uživatele, nebo si najde čas vysvětlit chybu? - -AI aplikace by měly být navrženy tak, aby přijímaly a poskytovaly zpětnou vazbu. To nejen pomáhá AI systému zlepšovat se, ale také buduje důvěru uživatelů. V designu by měl být zahrnut zpětnovazební mechanismus, například jednoduché palec nahoru nebo dolů u výstupu. - -Další možností, jak to řešit, je jasně komunikovat schopnosti a omezení systému. Když uživatel udělá chybu a požádá o něco, co AI neumí, měla by existovat možnost, jak to řešit, jak je ukázáno níže. - -![Poskytování zpětné vazby a řešení chyb](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.cs.png) - -Systémové chyby jsou běžné u aplikací, kde uživatel může potřebovat pomoc s informacemi mimo rozsah AI, nebo aplikace může mít omezení, kolik otázek/předmětů může uživatel generovat. Například AI aplikace trénovaná na omezených předmětech, například dějepis a matematika, nemusí být schopna zpracovat otázky z geografie. Aby se tomu předešlo, může AI systém odpovědět například: „Omlouváme se, náš produkt byl trénován na následujících předmětech..., na vaši otázku nemohu odpovědět.“ - -AI aplikace nejsou dokonalé, proto budou dělat chyby. Při návrhu aplikací byste měli zajistit prostor pro zpětnou vazbu od uživatelů a řešení chyb způsobem, který je jednoduchý a snadno vysvětlitelný. - -## Úkol - -Vezměte jakoukoli AI aplikaci, kterou jste dosud vytvořili, a zvažte implementaci následujících kroků: - -- **Příjemnost:** Zamyslete se, jak můžete svou aplikaci udělat příjemnější. Přidáváte všude vysvětlení? Povzbuzujete uživatele k objevování? Jak formulujete chybové zprávy? - -- **Použitelnost:** Pokud vytváříte webovou aplikaci, ujistěte se, že je ovladatelná jak myší, tak klávesnicí. - -- **Důvěra a transparentnost:** Nedůvěřujte AI a jejím výsledkům úplně, zvažte, jak do procesu zapojit člověka, který ověří výstup. Také zvažte a implementujte další způsoby, jak dosáhnout důvěry a transparentnosti. - -- **Kontrola:** Dejte uživateli kontrolu nad daty, která aplikaci poskytuje. Implementujte možnost, aby uživatel mohl zapnout nebo vypnout sběr dat v AI aplikaci. - -## Pokračujte ve svém vzdělávání! - -Po dokončení této lekce si prohlédněte naši [kolekci Generative AI Learning](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) a pokračujte ve zvyšování svých znalostí o generativní AI! - -Přejděte k lekci 13, kde se podíváme na to, jak [zabezpečit AI aplikace](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**Prohlášení o vyloučení odpovědnosti**: -Tento dokument byl přeložen pomocí AI překladatelské služby [Co-op Translator](https://github.com/Azure/co-op-translator). I když usilujeme o přesnost, mějte prosím na paměti, že automatizované překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho mateřském jazyce by měl být považován za závazný zdroj. Pro důležité informace se doporučuje profesionální lidský překlad. Nejsme odpovědní za jakékoliv nedorozumění nebo nesprávné výklady vyplývající z použití tohoto překladu. \ No newline at end of file + + + diff --git a/translations/cs/README.md b/translations/cs/README.md index 1af94c4c2..4576e3293 100644 --- a/translations/cs/README.md +++ b/translations/cs/README.md @@ -1,137 +1,12 @@ - -![Generative AI pro začátečníky](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.cs.png) - -### 21 lekcí, které vás naučí vše, co potřebujete vědět pro začátek tvorby aplikací s generativní AI - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Podpora více jazyků - -#### Podporováno přes GitHub Action (automatické a vždy aktuální) - -[Francouzština](../fr/README.md) | [Španělština](../es/README.md) | [Němčina](../de/README.md) | [Ruština](../ru/README.md) | [Arabština](../ar/README.md) | [Perština (Fársí)](../fa/README.md) | [Urdu](../ur/README.md) | [Čínština (zjednodušená)](../zh/README.md) | [Čínština (tradiční, Macao)](../mo/README.md) | [Čínština (tradiční, Hongkong)](../hk/README.md) | [Čínština (tradiční, Tchaj-wan)](../tw/README.md) | [Japonština](../ja/README.md) | [Korejština](../ko/README.md) | [Hindština](../hi/README.md) | [Bengálština](../bn/README.md) | [Maráthština](../mr/README.md) | [Nepálština](../ne/README.md) | [Paňdžábština (Gurmukhí)](../pa/README.md) | [Portugalština (Portugalsko)](../pt/README.md) | [Portugalština (Brazílie)](../br/README.md) | [Italština](../it/README.md) | [Polština](../pl/README.md) | [Turečtina](../tr/README.md) | [Řečtina](../el/README.md) | [Thajština](../th/README.md) | [Švédština](../sv/README.md) | [Dánština](../da/README.md) | [Norština](../no/README.md) | [Finština](../fi/README.md) | [Nizozemština](../nl/README.md) | [Hebrejština](../he/README.md) | [Vietnamština](../vi/README.md) | [Indonéština](../id/README.md) | [Malajština](../ms/README.md) | [Tagalog (Filipínština)](../tl/README.md) | [Svahilština](../sw/README.md) | [Maďarština](../hu/README.md) | [Čeština](./README.md) | [Slovenština](../sk/README.md) | [Rumunština](../ro/README.md) | [Bulharština](../bg/README.md) | [Srbština (cyrilice)](../sr/README.md) | [Chorvatština](../hr/README.md) | [Slovinština](../sl/README.md) | [Ukrajinština](../uk/README.md) | [Barmština (Myanmar)](../my/README.md) - -# Generativní AI pro začátečníky (verze 3) – kurz - -Naučte se základy tvorby aplikací s generativní AI v našem komplexním kurzu o 21 lekcích od Microsoft Cloud Advocates. - -## 🌱 Začínáme - -Tento kurz obsahuje 21 lekcí. Každá lekce se věnuje samostatnému tématu, takže můžete začít kdekoliv chcete! - -Lekce jsou označeny jako „Learn“ (Nauč se) – vysvětlují koncept generativní AI, nebo „Build“ (Postav) – vysvětlují koncept a ukazují příklady kódu v **Pythonu** a **TypeScriptu**, pokud je to možné. - -Pro .NET vývojáře doporučujeme [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -Každá lekce obsahuje také sekci „Keep Learning“ (Pokračuj v učení) s dalšími vzdělávacími zdroji. - -## Co potřebujete -### Pro spuštění kódu z tohoto kurzu můžete použít: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) – **Lekce:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) – **Lekce:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) – **Lekce:** "oai-assignment" - -- Základní znalost Pythonu nebo TypeScriptu je užitečná – \*Pro úplné začátečníky doporučujeme tyto [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) a [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) kurzy -- GitHub účet pro [forknutí celého tohoto repozitáře](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) do vašeho vlastního GitHub účtu - -Vytvořili jsme lekci **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)**, která vám pomůže s nastavením vývojového prostředí. - -Nezapomeňte [označit tento repozitář hvězdičkou (🌟)](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst), abyste ho později snadno našli. - -## 🧠 Připraven na nasazení? - -Pokud hledáte pokročilejší ukázky kódu, podívejte se na naši [sbírku ukázek kódu pro generativní AI](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) v **Pythonu** i **TypeScriptu**. - -## 🗣️ Poznejte ostatní studenty, získejte podporu - -Připojte se k našemu [oficiálnímu Discord serveru Azure AI Foundry](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst), kde můžete potkat a navázat kontakty s ostatními studenty tohoto kurzu a získat podporu. - -Pokládejte otázky nebo sdílejte zpětnou vazbu v našem [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum) na GitHubu. - -## 🚀 Stavíte startup? - -Zaregistrujte se do [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) a získejte **bezplatné kredity OpenAI** a až **150 000 $ na Azure kredity pro přístup k OpenAI modelům přes Azure OpenAI Services**. - -## 🙏 Chcete pomoci? - -Máte návrhy nebo jste našli chyby v pravopisu či kódu? [Vytvořte issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) nebo [pošlete pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 Každá lekce obsahuje: - -- Krátké video s úvodem k tématu -- Písemnou lekci v README -- Ukázky kódu v Pythonu a TypeScriptu podporující Azure OpenAI a OpenAI API -- Odkazy na další zdroje pro pokračování ve vzdělávání - -## 🗃️ Lekce - -| # | **Odkaz na lekci** | **Popis** | **Video** | **Další učení** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Nastavení kurzu](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Jak nastavit vývojové prostředí | Video brzy k dispozici | [Více informací](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Úvod do generativní AI a LLM](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Pochopení, co je generativní AI a jak fungují velké jazykové modely (LLM) | [Video](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Více informací](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Prozkoumání a porovnání různých LLM](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Jak vybrat správný model pro váš případ použití | [Video](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Více informací](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Používání generativní AI zodpovědně](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Jak zodpovědně vytvářet aplikace s generativní AI | [Video](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Více informací](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Základy prompt engineeringu](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Praktické osvědčené postupy v prompt engineeringu | [Video](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Více informací](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Tvorba pokročilých promptů](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Jak aplikovat techniky prompt engineeringu, které zlepší výsledky vašich promptů | [Video](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Více informací](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Vytváření aplikací pro generování textu](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Vytvořte:** Aplikaci pro generování textu pomocí Azure OpenAI / OpenAI API | [Video](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Zjistit více](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Vytváření chatovacích aplikací](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Vytvořte:** Techniky pro efektivní tvorbu a integraci chatovacích aplikací | [Video](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Zjistit více](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Vytváření vyhledávacích aplikací s vektorovými databázemi](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Vytvořte:** Vyhledávací aplikaci využívající Embeddings pro hledání dat | [Video](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Zjistit více](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Vytváření aplikací pro generování obrázků](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Vytvořte:** Aplikaci pro generování obrázků | [Video](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Zjistit více](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Vytváření AI aplikací s nízkým kódem](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Vytvořte:** Generativní AI aplikaci pomocí nástrojů Low Code | [Video](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Zjistit více](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Integrace externích aplikací pomocí volání funkcí](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Vytvořte:** Co je volání funkcí a jak se využívá v aplikacích | [Video](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Zjistit více](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [Návrh UX pro AI aplikace](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Naučte se:** Jak aplikovat principy UX designu při vývoji generativních AI aplikací | [Video](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Zjistit více](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Zabezpečení vašich generativních AI aplikací](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Naučte se:** Hrozby a rizika pro AI systémy a způsoby, jak je zabezpečit | [Video](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Zjistit více](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [Životní cyklus generativních AI aplikací](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Naučte se:** Nástroje a metriky pro správu životního cyklu LLM a LLMOps | [Video](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Zjistit více](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) a vektorové databáze](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Vytvořte:** Aplikaci využívající RAG Framework pro získávání embeddings z vektorových databází | [Video](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Zjistit více](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Open Source modely a Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Vytvořte:** Aplikaci využívající open source modely dostupné na Hugging Face | [Video](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Zjistit více](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI agenti](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Vytvořte:** Aplikaci využívající AI Agent Framework | [Video](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Zjistit více](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [Ladění LLM](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Naučte se:** Co, proč a jak ladit LLM | [Video](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Zjistit více](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Vytváření s SLM](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Naučte se:** Výhody vytváření s Small Language Models | Video brzy k dispozici | [Zjistit více](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Vytváření s Mistral modely](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Naučte se:** Vlastnosti a rozdíly modelů rodiny Mistral | Video brzy k dispozici | [Zjistit více](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Vytváření s Meta modely](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Naučte se:** Vlastnosti a rozdíly modelů rodiny Meta | Video brzy k dispozici | [Zjistit více](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Speciální poděkování - -Speciální poděkování patří [**Johnu Azizovi**](https://www.linkedin.com/in/john0isaac/) za vytvoření všech GitHub Actions a workflow. - -[**Bernhardu Merkleovi**](https://www.linkedin.com/in/bernhard-merkle-738b73/) za klíčové příspěvky ke každé lekci, které zlepšily zážitek z učení i práci s kódem. - -## 🎒 Další kurzy - -Náš tým připravuje i další kurzy! Podívejte se na: - -- [**NOVÝ** Model Context Protocol pro začátečníky](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI agenti pro začátečníky](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Generativní AI pro začátečníky s .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Generativní AI pro začátečníky s JavaScriptem](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML pro začátečníky](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Data Science pro začátečníky](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI pro začátečníky](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Kybernetická bezpečnost pro začátečníky](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Webový vývoj pro začátečníky](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT pro začátečníky](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [Vývoj XR pro začátečníky](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Ovládněte GitHub Copilot pro AI párové programování](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Ovládněte GitHub Copilot pro C#/.NET vývojáře](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Vyberte si vlastní Copilot dobrodružství](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Prohlášení o vyloučení odpovědnosti**: -Tento dokument byl přeložen pomocí AI překladatelské služby [Co-op Translator](https://github.com/Azure/co-op-translator). I když usilujeme o přesnost, mějte prosím na paměti, že automatizované překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho mateřském jazyce by měl být považován za autoritativní zdroj. Pro důležité informace se doporučuje profesionální lidský překlad. Nejsme odpovědní za jakékoliv nedorozumění nebo nesprávné výklady vyplývající z použití tohoto překladu. \ No newline at end of file + + + + diff --git a/translations/da/00-course-setup/01-setup-cloud.md b/translations/da/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..fdbd76c1a --- /dev/null +++ b/translations/da/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/da/00-course-setup/02-setup-local.md b/translations/da/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..ef3d87428 --- /dev/null +++ b/translations/da/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/da/00-course-setup/03-providers.md b/translations/da/00-course-setup/03-providers.md new file mode 100644 index 000000000..02c58573c --- /dev/null +++ b/translations/da/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/da/00-course-setup/README.md b/translations/da/00-course-setup/README.md index 2ef820ea4..94537e1d2 100644 --- a/translations/da/00-course-setup/README.md +++ b/translations/da/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# Kom godt i gang med dette kursus - -Vi er meget begejstrede for, at du skal i gang med dette kursus og se, hvad du bliver inspireret til at bygge med Generativ AI! - -For at sikre din succes beskriver denne side opsætningsprocessen, tekniske krav og hvor du kan få hjælp, hvis det bliver nødvendigt. - -## Opsætningstrin - -For at komme i gang med kurset skal du gennemføre følgende trin. - -### 1. Fork dette repo - -[Fork hele dette repo](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) til din egen GitHub-konto, så du kan ændre i koden og løse udfordringerne. Du kan også [starte (🌟) dette repo](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) for nemmere at finde det og relaterede repos. - -### 2. Opret en codespace - -For at undgå afhængighedsproblemer, når du kører koden, anbefaler vi at køre kurset i en [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst). - -Dette kan oprettes ved at vælge `Code`-muligheden på din forkede version af dette repo og derefter vælge **Codespaces**. - -![Dialog der viser knapper til at oprette en codespace](../../../00-course-setup/images/who-will-pay.webp) - -### 3. Opbevaring af dine API-nøgler - -Det er vigtigt at holde dine API-nøgler sikre, når du bygger applikationer. Vi anbefaler, at du ikke gemmer API-nøgler direkte i din kode. Hvis disse oplysninger bliver committet til et offentligt repository, kan det føre til sikkerhedsproblemer og uønskede omkostninger, hvis de misbruges af uvedkommende. -Her er en trin-for-trin guide til, hvordan du opretter en `.env`-fil til Python og tilføjer `GITHUB_TOKEN`: - -1. **Naviger til dit projektmappe**: Åbn din terminal eller kommandoprompt og gå til rodmappen for dit projekt, hvor du vil oprette `.env`-filen. - - ```bash - cd path/to/your/project - ``` - -2. **Opret `.env`-filen**: Brug din foretrukne teksteditor til at oprette en ny fil med navnet `.env`. Hvis du bruger kommandolinjen, kan du bruge `touch` (på Unix-baserede systemer) eller `echo` (på Windows): - - Unix-baserede systemer: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **Rediger `.env`-filen**: Åbn `.env`-filen i en teksteditor (f.eks. VS Code, Notepad++ eller en anden editor). Tilføj følgende linje, hvor du erstatter `your_github_token_here` med din faktiske GitHub-token: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Gem filen**: Gem ændringerne og luk teksteditoren. - -5. **Installer `python-dotenv`**: Hvis du ikke allerede har det, skal du installere pakken `python-dotenv` for at kunne indlæse miljøvariabler fra `.env`-filen i din Python-applikation. Det kan du gøre med `pip`: - - ```bash - pip install python-dotenv - ``` - -6. **Indlæs miljøvariabler i dit Python-script**: I dit Python-script skal du bruge `python-dotenv` til at indlæse miljøvariablerne fra `.env`-filen: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -Så er du klar! Du har nu oprettet en `.env`-fil, tilføjet din GitHub-token og indlæst den i din Python-applikation. - -## Sådan kører du lokalt på din computer - -For at køre koden lokalt på din computer skal du have en version af [Python installeret](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -For at bruge repositoryet skal du klone det: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -Når du har hentet alt, kan du gå i gang! - -## Valgfrie trin - -### Installation af Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) er en letvægtsinstaller til installation af [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python samt nogle få pakker. -Conda er en pakkehåndtering, der gør det nemt at opsætte og skifte mellem forskellige Python [**virtuelle miljøer**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) og pakker. Det er også nyttigt til at installere pakker, som ikke findes via `pip`. - -Du kan følge [MiniConda installationsguiden](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) for at sætte det op. - -Når Miniconda er installeret, skal du klone [repositoryet](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (hvis du ikke allerede har gjort det). - -Dernæst skal du oprette et virtuelt miljø. For at gøre dette med Conda, opret en ny miljøfil (_environment.yml_). Hvis du følger med i Codespaces, skal du oprette denne i `.devcontainer`-mappen, altså `.devcontainer/environment.yml`. - -Fyld din miljøfil med følgende snippet: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Hvis du oplever fejl med conda, kan du manuelt installere Microsoft AI Libraries med følgende kommando i terminalen. - -``` -conda install -c microsoft azure-ai-ml -``` - -Miljøfilen angiver de afhængigheder, vi har brug for. `` er navnet på dit Conda-miljø, og `` er den version af Python, du ønsker at bruge, for eksempel `3` som den nyeste store version. - -Når det er gjort, kan du oprette dit Conda-miljø ved at køre kommandoerne nedenfor i din kommandolinje/terminal: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -Se [Conda environments guide](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst), hvis du støder på problemer. - -### Brug af Visual Studio Code med Python-udvidelsen - -Vi anbefaler at bruge [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) med [Python-udvidelsen](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) installeret til dette kursus. Det er dog kun en anbefaling og ikke et krav. - -> **Note**: Når du åbner kursus-repositoryet i VS Code, har du mulighed for at opsætte projektet i en container. Det skyldes den [specielle `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) mappe i repositoryet. Mere om dette senere. - -> **Note**: Når du har klonet og åbnet mappen i VS Code, vil den automatisk foreslå, at du installerer Python-udvidelsen. - -> **Note**: Hvis VS Code foreslår, at du genåbner repositoryet i en container, skal du afslå dette for at bruge den lokalt installerede version af Python. - -### Brug af Jupyter i browseren - -Du kan også arbejde på projektet ved hjælp af [Jupyter-miljøet](https://jupyter.org?WT.mc_id=academic-105485-koreyst) direkte i din browser. Både klassisk Jupyter og [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) giver et behageligt udviklingsmiljø med funktioner som autoudfyldelse, kodefremhævning osv. - -For at starte Jupyter lokalt, gå til terminalen/kommandolinjen, naviger til kursusmappen og kør: - -```bash -jupyter notebook -``` - -eller - -```bash -jupyterhub -``` - -Dette starter en Jupyter-instans, og URL’en til at tilgå den vises i kommandolinjevinduet. - -Når du åbner URL’en, bør du kunne se kursusoversigten og navigere til enhver `*.ipynb`-fil. For eksempel `08-building-search-applications/python/oai-solution.ipynb`. - -### Kørsel i en container - -Et alternativ til at sætte alt op på din computer eller i Codespace er at bruge en [container](../../../00-course-setup/). Den specielle `.devcontainer`-mappe i kursus-repositoryet gør det muligt for VS Code at opsætte projektet i en container. Uden for Codespaces kræver dette installation af Docker, og det kan være lidt kompliceret, så vi anbefaler kun dette for dem med erfaring i at arbejde med containere. - -En af de bedste måder at holde dine API-nøgler sikre i GitHub Codespaces er ved at bruge Codespace Secrets. Følg venligst [Codespaces secrets management](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) guiden for at lære mere. - -## Lektioner og tekniske krav - -Kurset består af 6 konceptlektioner og 6 kodningslektioner. - -Til kodningslektionerne bruger vi Azure OpenAI Service. Du skal have adgang til Azure OpenAI service og en API-nøgle for at kunne køre koden. Du kan ansøge om adgang ved at [udfylde denne ansøgning](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -Mens du venter på, at din ansøgning bliver behandlet, indeholder hver kodningslektion også en `README.md`-fil, hvor du kan se koden og resultaterne. - -## Brug af Azure OpenAI Service for første gang - -Hvis det er første gang, du arbejder med Azure OpenAI service, så følg denne guide til, hvordan du [opretter og deployerer en Azure OpenAI Service-ressource.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## Brug af OpenAI API for første gang - -Hvis det er første gang, du arbejder med OpenAI API, så følg guiden til, hvordan du [opretter og bruger interfacet.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## Mød andre kursister - -Vi har oprettet kanaler i vores officielle [AI Community Discord server](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) til at møde andre kursister. Det er en god måde at netværke med ligesindede iværksættere, udviklere, studerende og alle, der ønsker at blive bedre til Generativ AI. - -[![Join discord channel](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -Projektteamet vil også være til stede på denne Discord-server for at hjælpe kursister. - -## Bidrag - -Dette kursus er et open source-initiativ. Hvis du ser forbedringsmuligheder eller fejl, så opret venligst en [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) eller log en [GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -Projektteamet følger alle bidrag. At bidrage til open source er en fantastisk måde at opbygge din karriere inden for Generativ AI. - -De fleste bidrag kræver, at du accepterer en Contributor License Agreement (CLA), som erklærer, at du har ret til og faktisk giver os rettighederne til at bruge dit bidrag. For detaljer, se [CLA, Contributor License Agreement website](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Vigtigt: Når du oversætter tekst i dette repo, skal du sikre dig, at du ikke bruger maskinoversættelse. Vi vil verificere oversættelser via fællesskabet, så meld dig kun til oversættelser på sprog, du er flydende i. - -Når du opretter en pull request, vil en CLA-bot automatisk afgøre, om du skal indsende en CLA og markere PR’en korrekt (f.eks. med label eller kommentar). Følg blot instruktionerne fra botten. Du skal kun gøre dette én gang på tværs af alle repositories, der bruger vores CLA. - -Dette projekt har tilsluttet sig [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst). For mere information, læs Code of Conduct FAQ eller kontakt [Email opencode](opencode@microsoft.com) med spørgsmål eller kommentarer. - -## Lad os komme i gang - -Nu hvor du har gennemført de nødvendige trin for at gennemføre kurset, så lad os komme i gang med en [introduktion til Generativ AI og LLMs](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**Ansvarsfraskrivelse**: -Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, bedes du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det oprindelige dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse. \ No newline at end of file + + + + diff --git a/translations/da/00-course-setup/SETUP.md b/translations/da/00-course-setup/SETUP.md deleted file mode 100644 index e0ef4007d..000000000 --- a/translations/da/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# Opsæt dit udviklingsmiljø - -Vi har sat dette repository og kursus op med en [development container](https://containers.dev?WT.mc_id=academic-105485-koreyst), som har et universelt runtime-miljø, der understøtter Python3, .NET, Node.js og Java-udvikling. Den tilhørende konfiguration er defineret i filen `devcontainer.json`, som ligger i `.devcontainer/` mappen i roden af dette repository. - -For at aktivere dev containeren, start den i [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (for et cloud-hostet runtime) eller i [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (for et lokalt enhed-hostet runtime). Læs [denne dokumentation](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) for flere detaljer om, hvordan dev containere fungerer i VS Code. - -> [!TIP] -> Vi anbefaler at bruge GitHub Codespaces for en hurtig start med minimal indsats. Det giver en generøs [gratis brugskvote](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) for personlige konti. Konfigurer [timeouts](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) til at stoppe eller slette inaktive codespaces for at maksimere din kvoteudnyttelse. - -## 1. Udførelse af opgaver - -Hver lektion vil have _valgfri_ opgaver, som kan være tilgængelige i et eller flere programmeringssprog, herunder: Python, .NET/C#, Java og JavaScript/TypeScript. Dette afsnit giver generelle retningslinjer for, hvordan du udfører disse opgaver. - -### 1.1 Python-opgaver - -Python-opgaver leveres enten som applikationer (`.py` filer) eller Jupyter notebooks (`.ipynb` filer). -- For at køre notebook’en, åbn den i Visual Studio Code, klik derefter på _Select Kernel_ (øverst til højre) og vælg standard Python 3-muligheden. Du kan nu vælge _Run All_ for at køre hele notebook’en. -- For at køre Python-applikationer fra kommandolinjen, følg de opgavespecifikke instruktioner for at sikre, at du vælger de rigtige filer og angiver nødvendige argumenter. - -## 2. Konfigurering af udbydere - -Opgaver **kan** også være sat op til at arbejde med en eller flere Large Language Model (LLM) deployment gennem en understøttet serviceudbyder som OpenAI, Azure eller Hugging Face. Disse tilbyder et _hostet endpoint_ (API), som vi kan tilgå programmatisk med de rette legitimationsoplysninger (API-nøgle eller token). I dette kursus gennemgår vi disse udbydere: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) med forskellige modeller, herunder den centrale GPT-serie. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) for OpenAI-modeller med fokus på enterprise-klarhed - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) for open source-modeller og inference-server - -**Du skal bruge dine egne konti til disse øvelser**. Opgaverne er valgfrie, så du kan vælge at sætte én, alle eller ingen af udbyderne op, alt efter dine interesser. Her er lidt vejledning til tilmelding: - -| Tilmelding | Pris | API-nøgle | Playground | Kommentarer | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst) | [Priser](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst) | [Projektbaseret](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [No-Code, Web](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Flere modeller tilgængelige | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst) | [Priser](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst) | [SDK Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Studio Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Adgang kræver forudgående ansøgning](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) | -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Priser](https://huggingface.co/pricing) | [Access Tokens](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst) | [Hugging Chat har begrænsede modeller](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Følg nedenstående vejledning for at _konfigurere_ dette repository til brug med forskellige udbydere. Opgaver, der kræver en specifik udbyder, vil indeholde et af disse tags i deres filnavn: - - `aoai` - kræver Azure OpenAI endpoint og nøgle - - `oai` - kræver OpenAI endpoint og nøgle - - `hf` - kræver Hugging Face token - -Du kan konfigurere én, ingen eller alle udbydere. Relaterede opgaver vil blot fejle, hvis legitimationsoplysninger mangler. - -### 2.1. Opret `.env` fil - -Vi antager, at du allerede har læst vejledningen ovenfor, tilmeldt dig den relevante udbyder og fået de nødvendige autentificeringsoplysninger (API_KEY eller token). I tilfælde af Azure OpenAI antager vi også, at du har en gyldig deployment af en Azure OpenAI Service (endpoint) med mindst én GPT-model deployeret til chat completion. - -Næste skridt er at konfigurere dine **lokale miljøvariabler** som følger: - -1. Kig i rodmappen efter en `.env.copy` fil, som burde indeholde noget i stil med: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Kopiér denne fil til `.env` med kommandoen nedenfor. Denne fil er _gitignore-d_, så hemmeligheder holdes sikre. - - ```bash - cp .env.copy .env - ``` - -3. Udfyld værdierne (erstat pladsholdere til højre for `=`) som beskrevet i næste afsnit. - -3. (Valgfrit) Hvis du bruger GitHub Codespaces, har du mulighed for at gemme miljøvariabler som _Codespaces secrets_ tilknyttet dette repository. I så fald behøver du ikke opsætte en lokal .env-fil. **Bemærk dog, at denne mulighed kun virker, hvis du bruger GitHub Codespaces.** Du skal stadig opsætte .env-filen, hvis du bruger Docker Desktop. - -### 2.2. Udfyld `.env` fil - -Lad os hurtigt se på variabelnavnene for at forstå, hvad de repræsenterer: - -| Variabel | Beskrivelse | -| :--- | :--- | -| HUGGING_FACE_API_KEY | Dette er brugerens adgangstoken, som du har sat op i din profil | -| OPENAI_API_KEY | Dette er autorisationsnøglen til brug af servicen for ikke-Azure OpenAI endpoints | -| AZURE_OPENAI_API_KEY | Dette er autorisationsnøglen til brug af Azure OpenAI servicen | -| AZURE_OPENAI_ENDPOINT | Dette er det deployerede endpoint for en Azure OpenAI-ressource | -| AZURE_OPENAI_DEPLOYMENT | Dette er deployment endpoint for _tekstgenererings_-modellen | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | Dette er deployment endpoint for _tekst-embedding_-modellen | -| | | - -Bemærk: De to sidste Azure OpenAI-variabler refererer til en standardmodel for chat completion (tekstgenerering) og vektorsøgning (embeddings) henholdsvis. Instruktioner til opsætning af disse vil være defineret i relevante opgaver. - -### 2.3 Konfigurer Azure: Fra portalen - -Azure OpenAI endpoint og nøgle findes i [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst), så lad os starte der. - -1. Gå til [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -1. Klik på **Keys and Endpoint** i sidebaren (menuen til venstre). -1. Klik på **Show Keys** - du skulle nu se følgende: KEY 1, KEY 2 og Endpoint. -1. Brug værdien fra KEY 1 til AZURE_OPENAI_API_KEY -1. Brug værdien fra Endpoint til AZURE_OPENAI_ENDPOINT - -Dernæst skal vi finde endpoints for de specifikke modeller, vi har deployeret. - -1. Klik på **Model deployments** i sidebaren (venstre menu) for Azure OpenAI-ressourcen. -1. På destinationssiden klik på **Manage Deployments** - -Dette fører dig til Azure OpenAI Studio-websitet, hvor vi finder de øvrige værdier som beskrevet nedenfor. - -### 2.4 Konfigurer Azure: Fra Studio - -1. Naviger til [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **fra din ressource** som beskrevet ovenfor. -1. Klik på fanen **Deployments** (sidebar, venstre) for at se de modeller, der er deployeret. -1. Hvis din ønskede model ikke er deployeret, brug **Create new deployment** til at deployere den. -1. Du skal bruge en _text-generation_ model – vi anbefaler: **gpt-35-turbo** -1. Du skal bruge en _text-embedding_ model – vi anbefaler **text-embedding-ada-002** - -Opdater nu miljøvariablerne, så de afspejler det _Deployment name_, der er brugt. Det vil typisk være det samme som modelnavnet, medmindre du har ændret det eksplicit. For eksempel kan du have: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**Glem ikke at gemme .env-filen, når du er færdig**. Du kan nu lukke filen og vende tilbage til instruktionerne for at køre notebook’en. - -### 2.5 Konfigurer OpenAI: Fra profil - -Din OpenAI API-nøgle kan findes i din [OpenAI-konto](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). Hvis du ikke har en, kan du oprette en konto og generere en API-nøgle. Når du har nøglen, kan du bruge den til at udfylde `OPENAI_API_KEY` variablen i `.env` filen. - -### 2.6 Konfigurer Hugging Face: Fra profil - -Din Hugging Face token kan findes i din profil under [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). Del eller offentliggør dem ikke. Opret i stedet en ny token til brug for dette projekt, og kopier den ind i `.env` filen under variablen `HUGGING_FACE_API_KEY`. _Bemærk:_ Dette er teknisk set ikke en API-nøgle, men bruges til autentificering, så vi bevarer denne navngivningskonvention for konsistens. - -**Ansvarsfraskrivelse**: -Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, bedes du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det oprindelige dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse. \ No newline at end of file diff --git a/translations/da/04-prompt-engineering-fundamentals/README.md b/translations/da/04-prompt-engineering-fundamentals/README.md index 1826442c3..6ea8e2322 100644 --- a/translations/da/04-prompt-engineering-fundamentals/README.md +++ b/translations/da/04-prompt-engineering-fundamentals/README.md @@ -1,453 +1,15 @@ - -# Grundlæggende om Prompt Engineering - -[![Prompt Engineering Fundamentals](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.da.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Introduktion -Dette modul dækker væsentlige begreber og teknikker til at skabe effektive prompts i generative AI-modeller. Måden, du skriver din prompt til en LLM på, har også betydning. En omhyggeligt udformet prompt kan opnå en bedre kvalitet i svaret. Men hvad betyder begreber som _prompt_ og _prompt engineering_ egentlig? Og hvordan forbedrer jeg det prompt-_input_, jeg sender til LLM’en? Det er de spørgsmål, vi vil forsøge at besvare i dette kapitel og det næste. - -_Generativ AI_ kan skabe nyt indhold (f.eks. tekst, billeder, lyd, kode osv.) som svar på brugerforespørgsler. Det opnås ved hjælp af _Large Language Models_ som OpenAI’s GPT ("Generative Pre-trained Transformer") serie, der er trænet til at bruge naturligt sprog og kode. - -Brugere kan nu interagere med disse modeller via velkendte paradigmer som chat, uden at have teknisk ekspertise eller træning. Modellerne er _prompt-baserede_ – brugere sender en tekstinput (prompt) og får AI’s svar (completion) tilbage. De kan derefter "chatte med AI’en" iterativt i samtaler med flere runder, hvor de finjusterer deres prompt, indtil svaret matcher deres forventninger. - -"Prompts" bliver nu den primære _programmeringsgrænseflade_ for generative AI-apps, der fortæller modellerne, hvad de skal gøre, og påvirker kvaliteten af de returnerede svar. "Prompt Engineering" er et hurtigt voksende studieområde, der fokuserer på _design og optimering_ af prompts for at levere konsistente og kvalitetsmæssige svar i stor skala. - -## Læringsmål - -I denne lektion lærer vi, hvad Prompt Engineering er, hvorfor det er vigtigt, og hvordan vi kan skabe mere effektive prompts til en given model og applikationsformål. Vi vil forstå kernebegreber og bedste praksis for prompt engineering – og lære om et interaktivt Jupyter Notebooks "sandbox"-miljø, hvor vi kan se disse koncepter anvendt på virkelige eksempler. - -Ved slutningen af denne lektion vil vi kunne: - -1. Forklare, hvad prompt engineering er, og hvorfor det er vigtigt. -2. Beskrive komponenterne i en prompt og hvordan de bruges. -3. Lære bedste praksis og teknikker til prompt engineering. -4. Anvende lærte teknikker på virkelige eksempler ved brug af en OpenAI-endpoint. - -## Centrale Begreber - -Prompt Engineering: Praksissen med at designe og forfine input for at styre AI-modeller mod at producere ønskede output. -Tokenization: Processen med at omdanne tekst til mindre enheder, kaldet tokens, som en model kan forstå og behandle. -Instruction-Tuned LLMs: Store sprogmodeller (LLMs), der er finjusteret med specifikke instruktioner for at forbedre deres svarnøjagtighed og relevans. - -## Læringssandbox - -Prompt engineering er i øjeblikket mere en kunst end en videnskab. Den bedste måde at forbedre vores intuition for det på er at _øve sig mere_ og anvende en trial-and-error tilgang, der kombinerer domæneekspertise med anbefalede teknikker og model-specifikke optimeringer. - -Jupyter Notebook, der følger med denne lektion, giver et _sandbox_-miljø, hvor du kan prøve det, du lærer – løbende eller som en del af kodeudfordringen til sidst. For at kunne udføre øvelserne skal du bruge: - -1. **En Azure OpenAI API-nøgle** – service-endpoint for en implementeret LLM. -2. **Et Python-runtime** – hvor Notebook’en kan køres. -3. **Lokale miljøvariabler** – _fuldfør [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) trin nu for at være klar_. - -Notebook’en indeholder _startøvelser_ – men du opfordres til at tilføje dine egne _Markdown_ (beskrivelser) og _Code_ (prompt-forespørgsler) sektioner for at prøve flere eksempler eller idéer – og opbygge din intuition for promptdesign. - -## Illustreret Guide - -Vil du have et overblik over, hvad denne lektion dækker, inden du går i gang? Tjek denne illustrerede guide, som giver dig en fornemmelse af hovedemnerne og de vigtigste pointer, du kan tænke over i hver del. Lektionens køreplan tager dig fra forståelsen af kernebegreber og udfordringer til at håndtere dem med relevante prompt engineering-teknikker og bedste praksis. Bemærk, at afsnittet "Avancerede teknikker" i denne guide henviser til indhold, der dækkes i det _næste_ kapitel i dette kursusforløb. - -![Illustreret Guide til Prompt Engineering](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.da.png) - -## Vores Startup - -Lad os nu tale om, hvordan _dette emne_ relaterer sig til vores startup-mission om at [bringe AI-innovation til uddannelse](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). Vi ønsker at bygge AI-drevne applikationer til _personlig læring_ – så lad os tænke over, hvordan forskellige brugere af vores applikation kunne "designe" prompts: - -- **Administratorer** kunne bede AI’en om at _analysere læseplansdata for at identificere huller i dækningen_. AI’en kan opsummere resultater eller visualisere dem med kode. -- **Undervisere** kunne bede AI’en om at _generere en lektionsplan for en målgruppe og et emne_. AI’en kan bygge den personlige plan i et specificeret format. -- **Studerende** kunne bede AI’en om at _vejlede dem i et svært fag_. AI’en kan nu guide elever med lektioner, hints og eksempler tilpasset deres niveau. - -Det er kun toppen af isbjerget. Tjek [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) – et open source prompt-bibliotek kurateret af uddannelseseksperter – for at få en bredere fornemmelse af mulighederne! _Prøv at køre nogle af disse prompts i sandboxen eller brug OpenAI Playground for at se, hvad der sker!_ - - - -## Hvad er Prompt Engineering? - -Vi startede denne lektion med at definere **Prompt Engineering** som processen med at _designe og optimere_ tekstinput (prompts) for at levere konsistente og kvalitetsmæssige svar (completions) til et givent applikationsformål og model. Vi kan tænke på det som en 2-trins proces: - -- _designe_ den oprindelige prompt til en given model og formål -- _forfine_ prompten iterativt for at forbedre kvaliteten af svaret - -Dette er nødvendigvis en trial-and-error proces, der kræver brugerintuiton og indsats for at opnå optimale resultater. Så hvorfor er det vigtigt? For at besvare det spørgsmål skal vi først forstå tre begreber: - -- _Tokenization_ = hvordan modellen "ser" prompten -- _Base LLMs_ = hvordan grundmodellen "behandler" en prompt -- _Instruction-Tuned LLMs_ = hvordan modellen nu kan se "opgaver" - -### Tokenization - -En LLM ser prompts som en _sekvens af tokens_, hvor forskellige modeller (eller versioner af en model) kan tokenisere den samme prompt på forskellige måder. Da LLM’er er trænet på tokens (og ikke rå tekst), har måden, prompts tokeniseres på, direkte indflydelse på kvaliteten af det genererede svar. - -For at få en fornemmelse af, hvordan tokenization fungerer, kan du prøve værktøjer som [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) vist nedenfor. Kopiér din prompt ind – og se, hvordan den bliver omdannet til tokens, med særlig opmærksomhed på, hvordan mellemrum og tegnsætning håndteres. Bemærk, at dette eksempel viser en ældre LLM (GPT-3) – så prøv med en nyere model for at se, om resultatet bliver anderledes. - -![Tokenization](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.da.png) - -### Begreb: Foundation Models - -Når en prompt er tokeniseret, er hovedfunktionen for ["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (eller grundmodellen) at forudsige det næste token i sekvensen. Da LLM’er er trænet på enorme tekstdatasæt, har de en god fornemmelse af de statistiske sammenhænge mellem tokens og kan lave denne forudsigelse med en vis sikkerhed. Bemærk, at de ikke forstår _meningen_ med ordene i prompten eller tokenet; de ser blot et mønster, de kan "fuldføre" med deres næste forudsigelse. De kan fortsætte med at forudsige sekvensen, indtil brugeren afbryder eller en forudbestemt betingelse opfyldes. - -Vil du se, hvordan prompt-baseret completion fungerer? Indtast ovenstående prompt i Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) med standardindstillingerne. Systemet er konfigureret til at behandle prompts som informationsforespørgsler – så du bør se et svar, der opfylder denne kontekst. - -Men hvad hvis brugeren ønskede at se noget specifikt, der opfylder visse kriterier eller et opgaveformål? Her kommer _instruction-tuned_ LLM’er ind i billedet. - -![Base LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.da.png) - -### Begreb: Instruction Tuned LLMs - -En [Instruction Tuned LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) starter med grundmodellen og finjusterer den med eksempler eller input/output-par (f.eks. multi-turn "beskeder"), der kan indeholde klare instruktioner – og AI’ens svar forsøger at følge disse instruktioner. - -Dette bruger teknikker som Reinforcement Learning with Human Feedback (RLHF), der kan træne modellen til at _følge instruktioner_ og _lære af feedback_, så den producerer svar, der er bedre tilpasset praktiske anvendelser og mere relevante for brugerens mål. - -Lad os prøve det – gå tilbage til prompten ovenfor, men skift nu _systembeskeden_ til at give følgende instruktion som kontekst: - -> _Opsummer det indhold, du får, for en elev i 2. klasse. Hold resultatet til et afsnit med 3-5 punktopstillinger._ - -Kan du se, hvordan resultatet nu er tilpasset det ønskede mål og format? En underviser kan nu direkte bruge dette svar i deres slides til den klasse. - -![Instruction Tuned LLM Chat Completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.da.png) - -## Hvorfor har vi brug for Prompt Engineering? - -Nu hvor vi ved, hvordan prompts behandles af LLM’er, lad os tale om _hvorfor_ vi har brug for prompt engineering. Svaret ligger i, at nuværende LLM’er har en række udfordringer, der gør det sværere at opnå _pålidelige og konsistente svar_ uden at lægge indsats i promptkonstruktion og optimering. For eksempel: - -1. **Model-svar er stokastiske.** Den _samme prompt_ vil sandsynligvis give forskellige svar med forskellige modeller eller modelversioner. Og den kan endda give forskellige resultater med den _samme model_ på forskellige tidspunkter. _Prompt engineering-teknikker kan hjælpe os med at minimere disse variationer ved at give bedre rammer_. - -1. **Modeller kan finde på svar.** Modeller er fortrænet med _store, men begrænsede_ datasæt, hvilket betyder, at de mangler viden om begreber uden for træningsområdet. Som følge heraf kan de producere svar, der er unøjagtige, opdigtede eller direkte modstridende med kendte fakta. _Prompt engineering-teknikker hjælper brugere med at identificere og afbøde sådanne opdigtninger, f.eks. ved at bede AI om kildehenvisninger eller begrundelser_. - -1. **Modellers kapaciteter vil variere.** Nyere modeller eller modelgenerationer vil have rigere kapaciteter, men også bringe unikke særheder og kompromiser i omkostninger og kompleksitet. _Prompt engineering kan hjælpe os med at udvikle bedste praksis og arbejdsgange, der abstraherer forskelle og tilpasser sig model-specifikke krav på skalerbare og sømløse måder_. - -Lad os se dette i praksis i OpenAI eller Azure OpenAI Playground: - -- Brug den samme prompt med forskellige LLM-implementeringer (f.eks. OpenAI, Azure OpenAI, Hugging Face) – så du variationerne? -- Brug den samme prompt gentagne gange med den _samme_ LLM-implementering (f.eks. Azure OpenAI playground) – hvordan adskilte disse variationer sig? - -### Eksempel på opdigtninger - -I dette kursus bruger vi begrebet **"fabrication"** til at referere til fænomenet, hvor LLM’er nogle gange genererer faktuelt ukorrekte oplysninger på grund af begrænsninger i deres træning eller andre forhold. Du har måske også hørt dette omtalt som _"hallucinationer"_ i populære artikler eller forskningspapirer. Vi anbefaler dog kraftigt at bruge _"fabrication"_ som betegnelse, så vi undgår at antropomorfisere adfærden ved at tillægge en menneskelig egenskab til et maskindrevet resultat. Dette understøtter også [Responsible AI-retningslinjer](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) fra et terminologisk perspektiv ved at fjerne termer, der i visse sammenhænge kan opfattes som stødende eller ikke inkluderende. - -Vil du have en fornemmelse af, hvordan fabrication fungerer? Tænk på en prompt, der instruerer AI’en til at generere indhold om et ikke-eksisterende emne (for at sikre, at det ikke findes i træningsdatasættet). For eksempel – jeg prøvede denne prompt: -# Lektionplan: Den Marsianske Krig i 2076 - -## Introduktion -I denne lektion vil vi udforske den Marsianske Krig, der fandt sted i 2076. Vi vil undersøge årsagerne til konflikten, de vigtigste begivenheder og dens konsekvenser for både Jorden og Mars. - -## Mål -- Forstå baggrunden for den Marsianske Krig -- Identificere nøgleaktører og begivenheder i krigen -- Analysere krigens indvirkning på fremtidige interplanetariske relationer - -## Materialer -- Historiske dokumenter og rapporter om Marsianske Krig -- Kort over Mars og Jorden under konflikten -- Videoer og øjenvidneberetninger - -## Lektionens forløb - -### 1. Baggrund og årsager (20 minutter) -- Diskuter de politiske og økonomiske spændinger mellem Jorden og Mars -- Gennemgå de vigtigste begivenheder, der førte til krigen - -### 2. Krigens forløb (30 minutter) -- Gennemgå de vigtigste slag og strategier brugt af begge sider -- Analyser teknologier og våben, der blev anvendt - -### 3. Konsekvenser og efterspil (20 minutter) -- Diskuter krigens indvirkning på Mars' kolonisering og Jordens politik -- Overvej hvordan krigen har formet nutidens interplanetariske samarbejde - -### 4. Diskussion og refleksion (15 minutter) -- Lad eleverne diskutere, hvad de mener kunne have forhindret krigen -- Reflekter over betydningen af fred og samarbejde i rummet - -## Afslutning -Opsummer de vigtigste punkter fra lektionen og opfordr eleverne til at læse yderligere materiale om emnet. - -## Ekstra ressourcer -- Links til dokumentarer og artikler om den Marsianske Krig -- Forslag til projekter og opgaver relateret til emnet -Et web-søg viste mig, at der fandtes fiktive beretninger (f.eks. tv-serier eller bøger) om marskrige – men ingen i 2076. Sund fornuft fortæller os også, at 2076 er _i fremtiden_ og derfor ikke kan forbindes med en virkelig begivenhed. - -Så hvad sker der, når vi kører denne prompt med forskellige LLM-udbydere? - -> **Response 1**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.da.png) - -> **Response 2**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.da.png) - -> **Response 3**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.da.png) - -Som forventet producerer hver model (eller modelversion) lidt forskellige svar takket være stokastisk adfærd og variationer i modelkapacitet. For eksempel retter én model sig mod et 8. klasses publikum, mens en anden antager en gymnasieelev. Men alle tre modeller genererede svar, der kunne overbevise en uinformeret bruger om, at begivenheden var ægte. - -Prompt engineering-teknikker som _metaprompting_ og _temperature configuration_ kan til en vis grad reducere model-fabrikationer. Nye prompt engineering-_arkitekturer_ integrerer også nye værktøjer og teknikker problemfrit i prompt-flowet for at afbøde eller mindske nogle af disse effekter. - -## Case Study: GitHub Copilot - -Lad os afslutte dette afsnit med at få en fornemmelse af, hvordan prompt engineering bruges i virkelige løsninger ved at se på et Case Study: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot er din "AI Pair Programmer" – den omsætter tekstprompter til kodeforslag og er integreret i dit udviklingsmiljø (f.eks. Visual Studio Code) for en problemfri brugeroplevelse. Som dokumenteret i blogserien nedenfor, var den tidligste version baseret på OpenAI Codex-modellen – hvor ingeniører hurtigt indså behovet for at finjustere modellen og udvikle bedre prompt engineering-teknikker for at forbedre kodekvaliteten. I juli [præsenterede de en forbedret AI-model, der går ud over Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) for endnu hurtigere forslag. - -Læs indlæggene i rækkefølge for at følge deres læringsrejse. - -- **Maj 2023** | [GitHub Copilot bliver bedre til at forstå din kode](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **Maj 2023** | [Indenfor GitHub: Arbejde med LLM’erne bag GitHub Copilot](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Jun 2023** | [Sådan skriver du bedre prompts til GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Jul 2023** | [.. GitHub Copilot går ud over Codex med forbedret AI-model](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Jul 2023** | [En udviklers guide til prompt engineering og LLM’er](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **Sep 2023** | [Sådan bygger du en enterprise LLM-app: Læringer fra GitHub Copilot](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -Du kan også bladre i deres [Engineering blog](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) for flere indlæg som [dette](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst), der viser, hvordan disse modeller og teknikker _anvendes_ til at drive virkelige applikationer. - ---- - - - -## Prompt Konstruktion - -Vi har set, hvorfor prompt engineering er vigtigt – nu skal vi forstå, hvordan prompts _konstrueres_, så vi kan evaluere forskellige teknikker for mere effektiv promptdesign. - -### Grundlæggende Prompt - -Lad os starte med den grundlæggende prompt: en tekstinput sendt til modellen uden anden kontekst. Her er et eksempel – når vi sender de første par ord af den amerikanske nationalsang til OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst), fuldfører den straks svaret med de næste linjer, hvilket illustrerer den grundlæggende forudsigelsesadfærd. - -| Prompt (Input) | Completion (Output) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | Det lyder som om, du starter teksten til "The Star-Spangled Banner," USA’s nationalsang. Hele teksten er ... | - -### Kompleks Prompt - -Lad os nu tilføje kontekst og instruktioner til den grundlæggende prompt. [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) giver os mulighed for at konstruere en kompleks prompt som en samling af _beskeder_ med: - -- Input/output-par, der afspejler _bruger_-input og _assistent_-svar. -- Systembesked, der sætter konteksten for assistentens adfærd eller personlighed. - -Anmodningen er nu i nedenstående form, hvor _tokeniseringen_ effektivt fanger relevant information fra kontekst og samtale. At ændre systemkonteksten kan nu have lige så stor indflydelse på kvaliteten af fuldførelser som de givne brugerinput. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Instruktionsprompt - -I ovenstående eksempler var brugerprompten en simpel tekstforespørgsel, der kan tolkes som en anmodning om information. Med _instruktionsprompter_ kan vi bruge den tekst til at specificere en opgave mere detaljeret og give AI’en bedre vejledning. Her er et eksempel: - -| Prompt (Input) | Completion (Output) | Instruktionstype | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Write a description of the Civil War | _returnerede et simpelt afsnit_ | Simpel | -| Write a description of the Civil War. Provide key dates and events and describe their significance | _returnerede et afsnit efterfulgt af en liste med nøglebegivenheder og beskrivelser_ | Kompleks | -| Write a description of the Civil War in 1 paragraph. Provide 3 bullet points with key dates and their significance. Provide 3 more bullet points with key historical figures and their contributions. Return the output as a JSON file | _returnerer mere omfattende detaljer i en tekstboks, formateret som JSON, som du kan kopiere og indsætte i en fil og validere efter behov_ | Kompleks. Formateret.| - -## Primært Indhold - -I ovenstående eksempler var prompten stadig ret åben, hvilket tillod LLM’en at afgøre, hvilken del af dens fortrænede datasæt der var relevant. Med designmønsteret _primært indhold_ opdeles inputteksten i to dele: - -- en instruktion (handling) -- relevant indhold (der påvirker handlingen) - -Her er et eksempel, hvor instruktionen er at "opsummere dette i 2 sætninger". - -| Prompt (Input) | Completion (Output) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter er den femte planet fra Solen og den største i solsystemet. Det er en gasgigant med en masse, der er en tusindedel af Solens, men to og en halv gang så stor som alle de andre planeter i solsystemet tilsammen. Jupiter er et af de klareste objekter, der kan ses med det blotte øje på nattehimlen, og har været kendt af gamle civilisationer siden før den skrevne historie. Den er opkaldt efter den romerske gud Jupiter.[19] Når man ser på Jupiter fra Jorden, kan den være så lysstærk, at dens reflekterede lys kaster synlige skygger,[20] og den er i gennemsnit det tredje mest lysstærke naturlige objekt på nattehimlen efter Månen og Venus.
**Opsummer dette i 2 korte sætninger** | Jupiter, den femte planet fra Solen, er den største i solsystemet og kendt for at være et af de mest lysstærke objekter på nattehimlen. Opkaldt efter den romerske gud Jupiter, er det en gasgigant med en masse, der er to og en halv gang så stor som alle de andre planeter i solsystemet tilsammen. | - -Segmentet med primært indhold kan bruges på forskellige måder til at skabe mere effektive instruktioner: - -- **Eksempler** – i stedet for at fortælle modellen, hvad den skal gøre med en eksplicit instruktion, giver man den eksempler på, hvad den skal gøre, og lader den udlede mønsteret. -- **Signaler** – følg instruktionen med et "signal", der forbereder fuldførelsen og guider modellen mod mere relevante svar. -- **Skabeloner** – disse er gentagelige ’opskrifter’ til prompts med pladsholdere (variabler), der kan tilpasses med data til specifikke brugsscenarier. - -Lad os udforske disse i praksis. - -### Brug af Eksempler - -Dette er en tilgang, hvor du bruger det primære indhold til at "fodre modellen" med nogle eksempler på det ønskede output for en given instruktion og lader den udlede mønsteret for det ønskede output. Afhængigt af antallet af eksempler kan vi have zero-shot prompting, one-shot prompting, few-shot prompting osv. - -Prompten består nu af tre komponenter: - -- En opgavebeskrivelse -- Nogle få eksempler på det ønskede output -- Starten på et nyt eksempel (som bliver en implicit opgavebeskrivelse) - -| Læringstype | Prompt (Input) | Completion (Output) | -| :----------- | :--------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| Zero-shot | "The Sun is Shining". Translate to Spanish | "El Sol está brillando". | -| One-shot | "The Sun is Shining" => ""El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| Few-shot | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketball | -| | | | - -Bemærk, hvordan vi måtte give en eksplicit instruktion ("Translate to Spanish") i zero-shot prompting, men den udledes i one-shot prompting-eksemplet. Few-shot-eksemplet viser, hvordan flere eksempler gør det muligt for modeller at lave mere præcise slutninger uden yderligere instruktioner. - -### Prompt Signaler - -En anden teknik til at bruge primært indhold er at give _signaler_ i stedet for eksempler. I dette tilfælde giver vi modellen et skub i den rigtige retning ved at _starte den_ med et uddrag, der afspejler det ønskede svarformat. Modellen "tager signalet" og fortsætter i samme stil. - -| Antal Signaler | Prompt (Input) | Completion (Output) | -| :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Jupiter er den femte planet fra Solen og den største i solsystemet. Det er en gasgigant med en masse, der er en tusindedel af Solens, men to og en halv gang så stor som alle de andre planeter i solsystemet tilsammen. Jupiter er et af de klareste objekter, der kan ses med det blotte øje på nattehimlen, og har været kendt af gamle civilisationer siden før den skrevne historie. - -**Summarize This** | Jupiter er den største planet i vores solsystem og den femte fra solen. Det er en gasgigant med en masse, der er 1/1000 af solens, men den er tungere end alle de andre planeter tilsammen. Oldtidens civilisationer har kendt til Jupiter i lang tid, og den er let synlig på nattehimlen. | -| 1 | Jupiter er den femte planet fra solen og den største i solsystemet. Det er en gasgigant med en masse, der er en tusindedel af solens, men to og en halv gang så stor som alle de andre planeter i solsystemet tilsammen. Jupiter er et af de klareste objekter, der kan ses med det blotte øje på nattehimlen, og den har været kendt af oldtidens civilisationer siden før historisk tid.
**Summarize This**
Det vi lærte er, at Jupiter | er den femte planet fra solen og den største i solsystemet. Det er en gasgigant med en masse, der er en tusindedel af solens, men to og en halv gang så stor som alle de andre planeter tilsammen. Den er let synlig med det blotte øje og har været kendt siden oldtiden. | -| 2 | Jupiter er den femte planet fra solen og den største i solsystemet. Det er en gasgigant med en masse, der er en tusindedel af solens, men to og en halv gang så stor som alle de andre planeter i solsystemet tilsammen. Jupiter er et af de klareste objekter, der kan ses med det blotte øje på nattehimlen, og den har været kendt af oldtidens civilisationer siden før historisk tid.
**Summarize This**
Top 3 fakta vi lærte: | 1. Jupiter er den femte planet fra solen og den største i solsystemet.
2. Det er en gasgigant med en masse, der er en tusindedel af solens...
3. Jupiter har været synlig for det blotte øje siden oldtiden ... | -| | | | - -### Prompt Templates - -En prompt-skabelon er en _foruddefineret opskrift på en prompt_, som kan gemmes og genbruges efter behov for at skabe mere konsistente brugeroplevelser i stor skala. I sin enkleste form er det blot en samling af prompt-eksempler som [dette fra OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst), der både indeholder de interaktive prompt-komponenter (bruger- og systembeskeder) og API-drevne anmodningsformater – for at understøtte genbrug. - -I en mere kompleks form som [dette eksempel fra LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst) indeholder den _pladsholdere_, som kan erstattes med data fra forskellige kilder (brugerinput, systemkontekst, eksterne datakilder osv.) for at generere en prompt dynamisk. Det giver os mulighed for at opbygge et bibliotek af genanvendelige prompts, der kan bruges til at skabe konsistente brugeroplevelser **programmatisk** i stor skala. - -Endelig ligger den egentlige værdi i skabeloner i muligheden for at oprette og offentliggøre _prompt-biblioteker_ til vertikale anvendelsesområder – hvor prompt-skabelonen nu er _optimeret_ til at afspejle applikationsspecifik kontekst eller eksempler, der gør svarene mere relevante og præcise for den målrettede brugergruppe. [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) er et godt eksempel på denne tilgang, hvor man samler et bibliotek af prompts til uddannelsesområdet med fokus på nøglemål som lektionsplanlægning, læseplanlægning, elevvejledning osv. - -## Supporting Content - -Hvis vi ser på prompt-konstruktion som bestående af en instruktion (opgave) og et mål (primært indhold), så er _sekundært indhold_ som ekstra kontekst, vi giver for at **påvirke output på en eller anden måde**. Det kan være justeringsparametre, formateringsinstruktioner, emnetaksonomier osv., som hjælper modellen med at _tilpasse_ sit svar, så det passer til de ønskede brugerformål eller forventninger. - -For eksempel: Givet en kursuskatalog med omfattende metadata (navn, beskrivelse, niveau, metadata-tags, underviser osv.) for alle tilgængelige kurser i læseplanen: - -- kan vi definere en instruktion om at "opsummere kursuskataloget for efteråret 2023" -- kan vi bruge det primære indhold til at give nogle eksempler på det ønskede output -- kan vi bruge det sekundære indhold til at identificere de 5 vigtigste "tags" af interesse. - -Nu kan modellen levere et resumé i det format, som eksemplerne viser – men hvis et resultat har flere tags, kan den prioritere de 5 tags, der er identificeret i det sekundære indhold. - ---- - - - -## Prompting Best Practices - -Nu hvor vi ved, hvordan prompts kan _konstrueres_, kan vi begynde at tænke over, hvordan vi _designer_ dem, så de afspejler bedste praksis. Vi kan opdele det i to dele – at have den rette _tankegang_ og anvende de rette _teknikker_. - -### Prompt Engineering Mindset - -Prompt Engineering er en prøve-og-fejl proces, så husk tre brede vejledende faktorer: - -1. **Domæneforståelse er vigtig.** Svarenes nøjagtighed og relevans afhænger af det _domæne_, som applikationen eller brugeren opererer i. Brug din intuition og domæneekspertise til at **tilpasse teknikkerne** yderligere. For eksempel kan du definere _domænespecifikke personligheder_ i dine systemprompter eller bruge _domænespecifikke skabeloner_ i dine brugerprompter. Giv sekundært indhold, der afspejler domænespecifik kontekst, eller brug _domænespecifikke signaler og eksempler_ for at guide modellen mod velkendte brugsmønstre. - -2. **Modelforståelse er vigtig.** Vi ved, at modeller er stokastiske af natur. Men modelimplementeringer kan også variere med hensyn til træningsdatasættet (forudindlært viden), de funktioner, de tilbyder (f.eks. via API eller SDK) og typen af indhold, de er optimeret til (f.eks. kode vs. billeder vs. tekst). Forstå styrker og begrænsninger ved den model, du bruger, og brug den viden til at _prioritere opgaver_ eller bygge _tilpassede skabeloner_, der er optimeret til modellens kapaciteter. - -3. **Iteration & validering er vigtig.** Modeller udvikler sig hurtigt, og det samme gør teknikkerne til prompt engineering. Som domæneekspert kan du have anden kontekst eller kriterier for _din_ specifikke applikation, som måske ikke gælder for det bredere fællesskab. Brug prompt engineering-værktøjer og teknikker til at "komme godt i gang" med prompt-konstruktionen, og iterer og valider resultaterne med din egen intuition og domæneekspertise. Registrer dine indsigter og opbyg en **vidensbase** (f.eks. prompt-biblioteker), som andre kan bruge som ny baseline for hurtigere iterationer fremover. - -## Best Practices - -Lad os nu se på almindelige bedste praksisser, som anbefales af [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) og [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst) praktikere. - -| Hvad | Hvorfor | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Evaluer de nyeste modeller. | Nye modelgenerationer har sandsynligvis forbedrede funktioner og kvalitet – men kan også medføre højere omkostninger. Evaluer dem for effekt, og træf derefter beslutning om migrering. | -| Adskil instruktioner & kontekst | Tjek om din model/udbyder definerer _afgrænsere_ for tydeligere at adskille instruktioner, primært og sekundært indhold. Det kan hjælpe modeller med at tildele vægte mere præcist til tokens. | -| Vær specifik og klar | Giv flere detaljer om ønsket kontekst, resultat, længde, format, stil osv. Det forbedrer både kvalitet og konsistens i svarene. Gem opskrifter i genanvendelige skabeloner. | -| Vær beskrivende, brug eksempler | Modeller reagerer ofte bedre på en "vis og fortæl"-tilgang. Start med en `zero-shot` tilgang, hvor du giver en instruktion (men ingen eksempler), og prøv derefter `few-shot` som en finjustering, hvor du giver nogle få eksempler på ønsket output. Brug analogier. | -| Brug signaler til at kickstarte svar | Skub modellen mod et ønsket resultat ved at give nogle ledende ord eller sætninger, som den kan bruge som udgangspunkt for svaret. | -| Gentag for at forstærke | Nogle gange skal du gentage dig selv over for modellen. Giv instruktioner før og efter dit primære indhold, brug en instruktion og et signal osv. Iterer og valider for at se, hvad der virker. | -| Rækkefølge betyder noget | Den rækkefølge, du præsenterer information for modellen i, kan påvirke output, også i læringseksempler, på grund af recency bias. Prøv forskellige muligheder for at finde det, der virker bedst. | -| Giv modellen en “udvej” | Giv modellen et _fallback_-svar, den kan bruge, hvis den ikke kan fuldføre opgaven af en eller anden grund. Det kan mindske risikoen for, at modellen genererer falske eller opdigtede svar. | -| | | - -Som med enhver bedste praksis, husk at _din oplevelse kan variere_ afhængigt af model, opgave og domæne. Brug disse som udgangspunkt, og iterer for at finde det, der virker bedst for dig. Evaluer løbende din prompt engineering-proces, efterhånden som nye modeller og værktøjer bliver tilgængelige, med fokus på skalerbarhed og svar-kvalitet. - - - -## Assignment - -Tillykke! Du er nået til slutningen af lektionen! Det er tid til at prøve nogle af de koncepter og teknikker af med rigtige eksempler! - -Til vores opgave bruger vi en Jupyter Notebook med øvelser, du kan gennemføre interaktivt. Du kan også udvide Notebooken med dine egne Markdown- og kodeceller for at udforske ideer og teknikker på egen hånd. - -### For at komme i gang, fork repoet, og - -- (Anbefalet) Start GitHub Codespaces -- (Alternativt) Klon repoet til din lokale enhed og brug det med Docker Desktop -- (Alternativt) Åbn Notebooken i dit foretrukne Notebook-runtime-miljø. - -### Dernæst, konfigurer dine miljøvariabler - -- Kopiér `.env.copy`-filen i repoets rod til `.env` og udfyld værdierne for `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` og `AZURE_OPENAI_DEPLOYMENT`. Gå tilbage til [Learning Sandbox sektionen](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) for at lære hvordan. - -### Dernæst, åbn Jupyter Notebooken - -- Vælg runtime-kernen. Hvis du bruger mulighed 1 eller 2, vælg blot den standard Python 3.10.x kerne, som dev-containeren leverer. - -Du er klar til at køre øvelserne. Bemærk, at der ikke findes _rigtige eller forkerte_ svar her – det handler om at prøve sig frem og opbygge intuition for, hvad der virker for en given model og applikationsdomæne. - -_Af denne grund er der ingen kode-løsningsafsnit i denne lektion. I stedet vil Notebooken indeholde Markdown-celler med titlen "My Solution:", som viser et eksempel på output til reference._ - - - -## Knowledge check - -Hvilken af følgende er en god prompt, der følger nogle rimelige bedste praksisser? - -1. Vis mig et billede af en rød bil -2. Vis mig et billede af en rød bil af mærket Volvo og model XC90 parkeret ved en klippe med solen gående ned -3. Vis mig et billede af en rød bil af mærket Volvo og model XC90 - -A: 2, det er den bedste prompt, da den giver detaljer om "hvad" og går i dybden med specifikationer (ikke bare en hvilken som helst bil, men et bestemt mærke og model) og beskriver også omgivelserne. 3 er næstbedst, da den også indeholder mange beskrivelser. - -## 🚀 Challenge - -Prøv at bruge "cue"-teknikken med prompten: Fuldfør sætningen "Vis mig et billede af en rød bil af mærket Volvo og ". Hvad svarer den, og hvordan ville du forbedre det? - -## Godt arbejde! Fortsæt din læring - -Vil du lære mere om forskellige Prompt Engineering-koncept? Gå til [den fortsatte læringsside](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) for at finde andre gode ressourcer om emnet. - -Gå videre til Lektion 5, hvor vi ser på [avancerede prompting-teknikker](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**Ansvarsfraskrivelse**: -Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, bedes du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det oprindelige dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse. \ No newline at end of file + + + + + + + diff --git a/translations/da/09-building-image-applications/README.md b/translations/da/09-building-image-applications/README.md index 82c636b7b..2b1349274 100644 --- a/translations/da/09-building-image-applications/README.md +++ b/translations/da/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# Byg applikationer til billedgenerering - -[![Byg applikationer til billedgenerering](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.da.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLM’er handler ikke kun om tekstgenerering. Det er også muligt at generere billeder ud fra tekstbeskrivelser. At have billeder som en modalitet kan være særdeles nyttigt inden for mange områder som MedTech, arkitektur, turisme, spiludvikling og mere. I dette kapitel vil vi se nærmere på de to mest populære billedgenereringsmodeller, DALL-E og Midjourney. - -## Introduktion - -I denne lektion vil vi gennemgå: - -- Billedgenerering og hvorfor det er nyttigt. -- DALL-E og Midjourney, hvad de er, og hvordan de fungerer. -- Hvordan du kan bygge en applikation til billedgenerering. - -## Læringsmål - -Efter at have gennemført denne lektion vil du kunne: - -- Bygge en applikation til billedgenerering. -- Definere grænser for din applikation med metaprompter. -- Arbejde med DALL-E og Midjourney. - -## Hvorfor bygge en applikation til billedgenerering? - -Applikationer til billedgenerering er en fantastisk måde at udforske mulighederne med Generativ AI på. De kan bruges til eksempelvis: - -- **Billedredigering og syntese**. Du kan generere billeder til mange forskellige formål, som billedredigering og billedsyntese. - -- **Anvendt i mange brancher**. De kan også bruges til at generere billeder til forskellige brancher som MedTech, turisme, spiludvikling og mere. - -## Scenario: Edu4All - -Som en del af denne lektion fortsætter vi med at arbejde med vores startup, Edu4All. Eleverne vil skabe billeder til deres opgaver; præcis hvilke billeder er op til eleverne, men det kan være illustrationer til deres egen eventyrfortælling, skabe en ny karakter til deres historie eller hjælpe dem med at visualisere deres idéer og koncepter. - -Her er et eksempel på, hvad Edu4All’s elever kunne generere, hvis de arbejder med monumenter i klassen: - -![Edu4All startup, klasse om monumenter, Eiffeltårnet](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.da.png) - -med en prompt som - -> "Hund ved siden af Eiffeltårnet i det tidlige morgenglys" - -## Hvad er DALL-E og Midjourney? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) og [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) er to af de mest populære modeller til billedgenerering, som giver dig mulighed for at bruge prompts til at skabe billeder. - -### DALL-E - -Lad os starte med DALL-E, som er en Generativ AI-model, der genererer billeder ud fra tekstbeskrivelser. - -> [DALL-E er en kombination af to modeller, CLIP og diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP** er en model, der genererer embeddings, som er numeriske repræsentationer af data, fra billeder og tekst. - -- **Diffused attention** er en model, der genererer billeder ud fra embeddings. DALL-E er trænet på et datasæt af billeder og tekst og kan bruges til at generere billeder ud fra tekstbeskrivelser. For eksempel kan DALL-E generere billeder af en kat med hat eller en hund med mohawk. - -### Midjourney - -Midjourney fungerer på samme måde som DALL-E; den genererer billeder ud fra tekstprompter. Midjourney kan også bruges til at skabe billeder med prompts som “en kat med hat” eller “en hund med mohawk”. - -![Billede genereret af Midjourney, mekanisk due](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Billedkredit Wikipedia, billede genereret af Midjourney_ - -## Hvordan fungerer DALL-E og Midjourney? - -Først, [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). DALL-E er en Generativ AI-model baseret på transformer-arkitekturen med en _autoregressiv transformer_. - -En _autoregressiv transformer_ definerer, hvordan en model genererer billeder ud fra tekstbeskrivelser; den genererer én pixel ad gangen og bruger de genererede pixels til at generere den næste pixel. Det sker gennem flere lag i et neuralt netværk, indtil billedet er færdigt. - -Med denne proces kan DALL-E styre attributter, objekter, karakteristika og mere i det billede, den genererer. Dog har DALL-E 2 og 3 endnu mere kontrol over det genererede billede. - -## Byg din første applikation til billedgenerering - -Hvad kræver det at bygge en applikation til billedgenerering? Du skal bruge følgende biblioteker: - -- **python-dotenv**, det anbefales kraftigt at bruge dette bibliotek til at holde dine hemmeligheder i en _.env_-fil væk fra koden. -- **openai**, dette bibliotek bruger du til at interagere med OpenAI API’en. -- **pillow**, til at arbejde med billeder i Python. -- **requests**, til at lave HTTP-forespørgsler. - -1. Opret en fil _.env_ med følgende indhold: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Find disse oplysninger i Azure Portal for din ressource under sektionen "Keys and Endpoint". - -1. Saml ovenstående biblioteker i en fil kaldet _requirements.txt_ som følger: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. Opret derefter et virtuelt miljø og installer bibliotekerne: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - På Windows bruger du følgende kommandoer til at oprette og aktivere dit virtuelle miljø: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. Tilføj følgende kode i en fil kaldet _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Lad os forklare denne kode: - -- Først importerer vi de nødvendige biblioteker, inklusive OpenAI-biblioteket, dotenv-biblioteket, requests-biblioteket og Pillow-biblioteket. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Dernæst indlæser vi miljøvariablerne fra _.env_-filen. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- Herefter sætter vi endpoint, nøgle til OpenAI API, version og type. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- Så genererer vi billedet: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - Ovenstående kode svarer med et JSON-objekt, der indeholder URL’en til det genererede billede. Vi kan bruge URL’en til at downloade billedet og gemme det i en fil. - -- Til sidst åbner vi billedet og bruger standard billedfremviser til at vise det: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Flere detaljer om billedgenereringen - -Lad os se nærmere på koden, der genererer billedet: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** er tekstprompten, der bruges til at generere billedet. I dette tilfælde bruger vi prompten "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils". -- **size** er størrelsen på det genererede billede. Her genererer vi et billede på 1024x1024 pixels. -- **n** er antallet af billeder, der genereres. Her genererer vi to billeder. -- **temperature** er en parameter, der styrer tilfældigheden i outputtet fra en Generativ AI-model. Temperaturen er en værdi mellem 0 og 1, hvor 0 betyder, at outputtet er deterministisk, og 1 betyder, at outputtet er tilfældigt. Standardværdien er 0,7. - -Der er flere ting, du kan gøre med billeder, som vi vil dække i næste afsnit. - -## Yderligere muligheder med billedgenerering - -Indtil nu har du set, hvordan vi kunne generere et billede med få linjer i Python. Men der er flere ting, du kan gøre med billeder. - -Du kan også: - -- **Foretage redigeringer**. Ved at give et eksisterende billede en maske og en prompt kan du ændre et billede. For eksempel kan du tilføje noget til en del af et billede. Forestil dig vores kaninbillede, hvor du kan tilføje en hat til kaninen. Det gør du ved at give billedet, en maske (der identificerer det område, der skal ændres) og en tekstprompt, der beskriver, hvad der skal gøres. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - Basisbilledet indeholder kun kaninen, men det endelige billede vil have hatten på kaninen. - -- **Oprette variationer**. Ideen er, at du tager et eksisterende billede og beder om, at der laves variationer. For at skabe en variation giver du et billede og en tekstprompt samt kode som denne: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Bemærk, dette understøttes kun på OpenAI - -## Temperatur - -Temperatur er en parameter, der styrer tilfældigheden i outputtet fra en Generativ AI-model. Temperaturen er en værdi mellem 0 og 1, hvor 0 betyder, at outputtet er deterministisk, og 1 betyder, at outputtet er tilfældigt. Standardværdien er 0,7. - -Lad os se et eksempel på, hvordan temperatur fungerer, ved at køre denne prompt to gange: - -> Prompt: "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils" - -![Kanin på hest med slikkepind, version 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.da.png) - -Lad os nu køre den samme prompt igen for at se, at vi ikke får det samme billede to gange: - -![Genereret billede af kanin på hest](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.da.png) - -Som du kan se, ligner billederne hinanden, men er ikke ens. Lad os prøve at ændre temperaturværdien til 0,1 og se, hvad der sker: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Ændring af temperaturen - -Lad os prøve at gøre outputtet mere deterministisk. Vi kunne se på de to billeder, vi genererede, at det første billede har en kanin, og det andet billede har en hest, så billederne varierer meget. - -Lad os derfor ændre koden og sætte temperaturen til 0, sådan her: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Når du kører denne kode, får du disse to billeder: - -- ![Temperatur 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.da.png) -- ![Temperatur 0, v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.da.png) - -Her kan du tydeligt se, at billederne ligner hinanden mere. - -## Hvordan definerer du grænser for din applikation med metaprompter? - -Med vores demo kan vi allerede generere billeder til vores kunder. Men vi skal skabe nogle grænser for vores applikation. - -For eksempel ønsker vi ikke at generere billeder, der ikke er arbejdspladsvenlige, eller som ikke er passende for børn. - -Det kan vi gøre med _metaprompter_. Metaprompter er tekstprompter, der bruges til at kontrollere outputtet fra en Generativ AI-model. For eksempel kan vi bruge metaprompter til at sikre, at de genererede billeder er arbejdspladsvenlige eller passende for børn. - -### Hvordan fungerer det? - -Hvordan fungerer metaprompter? - -Metaprompter er tekstprompter, der bruges til at styre outputtet fra en Generativ AI-model. De placeres før tekstprompten og bruges til at kontrollere modellens output. De indlejres i applikationer for at styre modellens output ved at samle promptinput og metapromptinput i en enkelt tekstprompt. - -Et eksempel på en metaprompt kunne være: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Lad os nu se, hvordan vi kan bruge metaprompter i vores demo. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -Ud fra ovenstående prompt kan du se, hvordan alle billeder, der bliver skabt, tager metaprompten i betragtning. - -## Opgave – lad os give eleverne mulighed for at skabe - -Vi introducerede Edu4All i starten af denne lektion. Nu er det tid til at give eleverne mulighed for at generere billeder til deres opgaver. - -Eleverne skal skabe billeder til deres opgaver med monumenter; præcis hvilke monumenter er op til eleverne. Eleverne opfordres til at bruge deres kreativitet i denne opgave og placere monumenterne i forskellige kontekster. - -## Løsning - -Her er en mulig løsning: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Godt arbejde! Fortsæt din læring - -Efter at have gennemført denne lektion, kan du tjekke vores [Generative AI Learning collection](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) for at fortsætte med at udvikle din viden om Generativ AI! - -Gå videre til Lektion 10, hvor vi ser på, hvordan man [bygger AI-applikationer med low-code](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**Ansvarsfraskrivelse**: -Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, bedes du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det oprindelige dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse. \ No newline at end of file + + + + diff --git a/translations/da/12-designing-ux-for-ai-applications/README.md b/translations/da/12-designing-ux-for-ai-applications/README.md index f37918e8a..32cfa85a8 100644 --- a/translations/da/12-designing-ux-for-ai-applications/README.md +++ b/translations/da/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# Design af UX til AI-applikationer - -[![Designing UX for AI Applications](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.da.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Klik på billedet ovenfor for at se videoen til denne lektion)_ - -Brugeroplevelse er en meget vigtig del af at bygge apps. Brugere skal kunne bruge din app på en effektiv måde for at udføre opgaver. At være effektiv er én ting, men du skal også designe apps, så de kan bruges af alle, for at gøre dem _tilgængelige_. Dette kapitel vil fokusere på dette område, så du forhåbentlig ender med at designe en app, som folk både kan og vil bruge. - -## Introduktion - -Brugeroplevelse handler om, hvordan en bruger interagerer med og bruger et specifikt produkt eller en tjeneste, hvad enten det er et system, værktøj eller design. Når man udvikler AI-applikationer, fokuserer udviklere ikke kun på at sikre, at brugeroplevelsen er effektiv, men også etisk. I denne lektion gennemgår vi, hvordan man bygger kunstig intelligens (AI) applikationer, der imødekommer brugerens behov. - -Lektionens indhold omfatter: - -- Introduktion til brugeroplevelse og forståelse af brugerbehov -- Design af AI-applikationer med fokus på tillid og gennemsigtighed -- Design af AI-applikationer til samarbejde og feedback - -## Læringsmål - -Efter at have gennemført denne lektion vil du kunne: - -- Forstå, hvordan man bygger AI-applikationer, der opfylder brugerens behov. -- Designe AI-applikationer, der fremmer tillid og samarbejde. - -### Forudsætning - -Tag dig tid til at læse mere om [brugeroplevelse og design thinking.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Introduktion til brugeroplevelse og forståelse af brugerbehov - -I vores fiktive uddannelses-startup har vi to primære brugere: lærere og elever. Hver af disse brugere har unikke behov. Et brugercentreret design prioriterer brugeren og sikrer, at produkterne er relevante og gavnlige for dem, de er tiltænkt. - -Applikationen bør være **nyttig, pålidelig, tilgængelig og behagelig** for at give en god brugeroplevelse. - -### Brugervenlighed - -At være nyttig betyder, at applikationen har funktioner, der matcher dens tiltænkte formål, som for eksempel at automatisere bedømmelsesprocessen eller generere flashcards til repetition. En applikation, der automatiserer bedømmelsen, skal kunne tildele karakterer til elevernes arbejde præcist og effektivt baseret på foruddefinerede kriterier. På samme måde skal en applikation, der genererer flashcards, kunne skabe relevante og varierede spørgsmål baseret på dens data. - -### Pålidelighed - -At være pålidelig betyder, at applikationen kan udføre sin opgave konsekvent og uden fejl. Men AI, ligesom mennesker, er ikke perfekt og kan lave fejl. Applikationerne kan støde på fejl eller uventede situationer, der kræver menneskelig indgriben eller korrektion. Hvordan håndterer du fejl? I den sidste del af denne lektion vil vi gennemgå, hvordan AI-systemer og applikationer er designet til samarbejde og feedback. - -### Tilgængelighed - -At være tilgængelig betyder at udvide brugeroplevelsen til brugere med forskellige evner, inklusive personer med handicap, så ingen bliver udelukket. Ved at følge retningslinjer og principper for tilgængelighed bliver AI-løsninger mere inkluderende, brugbare og gavnlige for alle brugere. - -### Behagelig - -At være behagelig betyder, at applikationen er fornøjelig at bruge. En tiltalende brugeroplevelse kan have en positiv effekt på brugeren, opmuntre dem til at vende tilbage til applikationen og øge virksomhedens indtægter. - -![billede der illustrerer UX-overvejelser i AI](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.da.png) - -Ikke alle udfordringer kan løses med AI. AI kommer til for at forbedre din brugeroplevelse, hvad enten det er ved at automatisere manuelle opgaver eller personalisere brugeroplevelser. - -## Design af AI-applikationer med fokus på tillid og gennemsigtighed - -At opbygge tillid er afgørende, når man designer AI-applikationer. Tillid sikrer, at brugeren er tryg ved, at applikationen får arbejdet gjort, leverer resultater konsekvent, og at resultaterne er, hvad brugeren har brug for. En risiko i dette område er mistillid og overdreven tillid. Mistillid opstår, når en bruger har lidt eller ingen tillid til et AI-system, hvilket fører til, at brugeren afviser din applikation. Overdreven tillid opstår, når en bruger overvurderer et AI-systems kapacitet, hvilket får brugerne til at stole for meget på AI-systemet. For eksempel kan et automatiseret bedømmelsessystem ved overdreven tillid føre til, at læreren ikke gennemgår nogle af opgaverne for at sikre, at bedømmelsessystemet fungerer korrekt. Dette kan resultere i uretfærdige eller unøjagtige karakterer for eleverne eller mistede muligheder for feedback og forbedring. - -To måder at sikre, at tillid placeres centralt i designet, er forklarbarhed og kontrol. - -### Forklarbarhed - -Når AI hjælper med at informere beslutninger, som for eksempel at formidle viden til kommende generationer, er det vigtigt, at lærere og forældre forstår, hvordan AI-beslutninger træffes. Det kaldes forklarbarhed – at forstå, hvordan AI-applikationer træffer beslutninger. Design for forklarbarhed inkluderer at tilføje detaljer og eksempler på, hvad en AI-applikation kan gøre. For eksempel, i stedet for "Kom i gang med AI-lærer", kan systemet bruge: "Opsummer dine noter for nemmere repetition ved hjælp af AI." - -![en app-landingpage med klar illustration af forklarbarhed i AI-applikationer](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.da.png) - -Et andet eksempel er, hvordan AI bruger bruger- og persondata. For eksempel kan en bruger med personaen elev have begrænsninger baseret på deres persona. AI’en kan måske ikke afsløre svar på spørgsmål, men kan hjælpe med at guide brugeren til at tænke over, hvordan de kan løse et problem. - -![AI svarer på spørgsmål baseret på persona](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.da.png) - -En sidste vigtig del af forklarbarhed er forenkling af forklaringer. Elever og lærere er måske ikke AI-eksperter, derfor bør forklaringer på, hvad applikationen kan eller ikke kan gøre, være forenklede og lette at forstå. - -![forenklede forklaringer om AI’s kapaciteter](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.da.png) - -### Kontrol - -Generativ AI skaber et samarbejde mellem AI og brugeren, hvor en bruger for eksempel kan ændre prompts for at få forskellige resultater. Derudover bør brugere kunne ændre resultaterne, når de først er genereret, hvilket giver dem en følelse af kontrol. For eksempel, når du bruger Bing, kan du tilpasse din prompt baseret på format, tone og længde. Derudover kan du tilføje ændringer til dit output og justere det, som vist nedenfor: - -![Bing søgeresultater med muligheder for at ændre prompt og output](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.da.png) - -En anden funktion i Bing, der giver brugeren kontrol over applikationen, er muligheden for at til- og fravælge de data, AI’en bruger. For en skoleapplikation kan en elev ønske at bruge både sine egne noter og lærernes ressourcer som repetitionsmateriale. - -![Bing søgeresultater med muligheder for at ændre prompt og output](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.da.png) - -> Når du designer AI-applikationer, er intentionen afgørende for at sikre, at brugerne ikke får overdreven tillid og dermed urealistiske forventninger til systemets kapaciteter. En måde at gøre dette på er ved at skabe friktion mellem prompts og resultater. Mind brugeren om, at dette er AI og ikke et andet menneske. - -## Design af AI-applikationer til samarbejde og feedback - -Som nævnt tidligere skaber generativ AI et samarbejde mellem bruger og AI. De fleste interaktioner består i, at brugeren indtaster en prompt, og AI’en genererer et output. Hvad hvis outputtet er forkert? Hvordan håndterer applikationen fejl, hvis de opstår? Skyder AI’en skylden på brugeren, eller tager den sig tid til at forklare fejlen? - -AI-applikationer bør bygges til at modtage og give feedback. Det hjælper ikke kun AI-systemet med at blive bedre, men opbygger også tillid hos brugerne. En feedback-loop bør indgå i designet, for eksempel en simpel tommel op eller ned på outputtet. - -En anden måde at håndtere dette på er at kommunikere systemets kapaciteter og begrænsninger klart. Når en bruger laver en fejl ved at anmode om noget, der ligger uden for AI’ens kapaciteter, bør der også være en måde at håndtere dette på, som vist nedenfor. - -![Giv feedback og håndter fejl](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.da.png) - -Systemfejl er almindelige i applikationer, hvor brugeren måske har brug for hjælp med information uden for AI’ens rækkevidde, eller hvor applikationen har en grænse for, hvor mange spørgsmål/emner en bruger kan generere opsummeringer for. For eksempel kan en AI-applikation, der er trænet med data inden for begrænsede fag som Historie og Matematik, ikke kunne håndtere spørgsmål om Geografi. For at afbøde dette kan AI-systemet give et svar som: "Beklager, vores produkt er trænet med data inden for følgende fag..., jeg kan ikke besvare det spørgsmål, du stillede." - -AI-applikationer er ikke perfekte, og derfor vil de uundgåeligt lave fejl. Når du designer dine applikationer, bør du sikre, at der er plads til brugerfeedback og fejlhåndtering på en måde, der er enkel og let at forklare. - -## Opgave - -Tag de AI-apps, du har bygget indtil nu, og overvej at implementere følgende trin i din app: - -- **Behagelig:** Overvej, hvordan du kan gøre din app mere behagelig at bruge. Tilføjer du forklaringer overalt? Opmuntrer du brugeren til at udforske? Hvordan formulerer du dine fejlmeddelelser? - -- **Brugervenlighed:** Når du bygger en webapp, skal du sikre, at den kan navigeres både med mus og tastatur. - -- **Tillid og gennemsigtighed:** Stol ikke blindt på AI og dets output. Overvej, hvordan du kan inddrage et menneske i processen til at verificere outputtet. Overvej og implementer også andre måder at opnå tillid og gennemsigtighed på. - -- **Kontrol:** Giv brugeren kontrol over de data, de leverer til applikationen. Implementer en måde, hvorpå brugeren kan til- og fravælge dataindsamling i AI-applikationen. - -## Fortsæt din læring! - -Efter at have gennemført denne lektion, kan du tjekke vores [Generative AI Learning collection](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) for at fortsætte med at udvikle din viden om Generativ AI! - -Gå videre til Lektion 13, hvor vi ser på, hvordan man [sikrer AI-applikationer](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**Ansvarsfraskrivelse**: -Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, bedes du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det oprindelige dokument på dets modersmål bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse. \ No newline at end of file + + + diff --git a/translations/da/README.md b/translations/da/README.md index fb90f3492..b4d1f4ef1 100644 --- a/translations/da/README.md +++ b/translations/da/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.da.png) - -### 21 lektioner, der lærer dig alt, hvad du behøver at vide for at begynde at bygge Generative AI-applikationer - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Understøttelse af flere sprog - -#### Understøttet via GitHub Action (Automatiseret & Altid Opdateret) - -[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](./README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md) - -# Generative AI for Beginners (Version 3) - Et kursus - -Lær det grundlæggende i at bygge Generative AI-applikationer med vores omfattende kursus på 21 lektioner fra Microsoft Cloud Advocates. - -## 🌱 Kom godt i gang - -Dette kursus består af 21 lektioner. Hver lektion dækker sit eget emne, så du kan starte, hvor du vil! - -Lektionerne er mærket enten som "Learn"-lektioner, der forklarer et Generative AI-koncept, eller "Build"-lektioner, der forklarer et koncept og indeholder kodeeksempler i både **Python** og **TypeScript**, når det er muligt. - -For .NET-udviklere, se [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -Hver lektion indeholder også en sektion "Keep Learning" med yderligere læringsværktøjer. - -## Hvad du behøver -### For at køre koden i dette kursus kan du bruge enten: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **Lektioner:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **Lektioner:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **Lektioner:** "oai-assignment" - -- Grundlæggende kendskab til Python eller TypeScript er en fordel - \*For helt begyndere, se disse [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) og [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) kurser -- En GitHub-konto for at [forke hele dette repo](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) til din egen GitHub-konto - -Vi har lavet en **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** lektion for at hjælpe dig med at sætte dit udviklingsmiljø op. - -Glem ikke at [starte (🌟) dette repo](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) for nemmere at finde det senere. - -## 🧠 Klar til at deploye? - -Hvis du leder efter mere avancerede kodeeksempler, så tjek vores [samling af Generative AI Code Samples](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) i både **Python** og **TypeScript**. - -## 🗣️ Mød andre elever, få support - -Deltag i vores [officielle Azure AI Foundry Discord-server](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) for at møde og netværke med andre, der tager dette kursus, og få support. - -Stil spørgsmål eller del feedback om produktet i vores [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum) på Github. - -## 🚀 Bygger du en startup? - -Tilmeld dig [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) for at modtage **gratis OpenAI-kreditter** og op til **$150k i Azure-kreditter til adgang til OpenAI-modeller via Azure OpenAI Services**. - -## 🙏 Vil du hjælpe? - -Har du forslag eller har du fundet stave- eller kodefejl? [Opret en issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) eller [Lav en pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 Hver lektion indeholder: - -- En kort video-introduktion til emnet -- En skriftlig lektion i README-filen -- Python- og TypeScript-kodeeksempler, der understøtter Azure OpenAI og OpenAI API -- Links til ekstra ressourcer, så du kan fortsætte din læring - -## 🗃️ Lektioner - -| # | **Lektionslink** | **Beskrivelse** | **Video** | **Ekstra læring** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Sådan sætter du dit udviklingsmiljø op | Video kommer snart | [Læs mere](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introduction to Generative AI and LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Forstå, hvad Generative AI er, og hvordan Large Language Models (LLMs) fungerer | [Video](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Læs mere](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Exploring and comparing different LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Hvordan du vælger den rigtige model til dit brugsscenarie | [Video](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Læs mere](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Using Generative AI Responsibly](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Hvordan man bygger Generative AI-applikationer ansvarligt | [Video](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Læs mere](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Understanding Prompt Engineering Fundamentals](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Praktiske bedste fremgangsmåder inden for Prompt Engineering | [Video](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Læs mere](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Creating Advanced Prompts](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Hvordan du anvender prompt engineering-teknikker, der forbedrer resultatet af dine prompts. | [Video](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Læs mere](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Byg tekstgenereringsapplikationer](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Byg:** En tekstgenereringsapp ved hjælp af Azure OpenAI / OpenAI API | [Video](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Lær mere](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Byg chatapplikationer](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Byg:** Metoder til effektivt at bygge og integrere chatapplikationer. | [Video](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Lær mere](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Byg søgeapps med vektordatabaser](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Byg:** En søgeapplikation, der bruger Embeddings til at søge i data. | [Video](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Lær mere](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Byg billedgenereringsapplikationer](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Byg:** En billedgenereringsapplikation | [Video](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Lær mere](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Byg Low Code AI-applikationer](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Byg:** En Generative AI-applikation ved hjælp af Low Code-værktøjer | [Video](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Lær mere](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Integrer eksterne applikationer med Function Calling](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Byg:** Hvad er function calling, og hvordan bruges det i applikationer | [Video](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Lær mere](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [Design UX til AI-applikationer](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Lær:** Hvordan man anvender UX-designprincipper ved udvikling af Generative AI-applikationer | [Video](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Lær mere](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Sikring af dine Generative AI-applikationer](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Lær:** Trusler og risici mod AI-systemer samt metoder til at sikre disse systemer. | [Video](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Lær mere](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [Livscyklus for Generative AI-applikationer](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Lær:** Værktøjer og målinger til at styre LLM-livscyklussen og LLMOps | [Video](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Lær mere](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) og vektordatabaser](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Byg:** En applikation, der bruger et RAG-framework til at hente embeddings fra vektordatabaser | [Video](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Lær mere](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Open Source-modeller og Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Byg:** En applikation, der bruger open source-modeller tilgængelige på Hugging Face | [Video](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Lær mere](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI-agenter](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Byg:** En applikation, der bruger et AI Agent Framework | [Video](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Lær mere](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [Finjustering af LLMs](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Lær:** Hvad, hvorfor og hvordan man finjusterer LLMs | [Video](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Lær mere](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Byg med SLMs](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Lær:** Fordelene ved at bygge med Small Language Models | Video kommer snart | [Lær mere](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Byg med Mistral-modeller](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Lær:** Funktionerne og forskellene ved Mistral Family Models | Video kommer snart | [Lær mere](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Byg med Meta-modeller](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Lær:** Funktionerne og forskellene ved Meta Family Models | Video kommer snart | [Lær mere](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Særlige tak - -Særlige tak til [**John Aziz**](https://www.linkedin.com/in/john0isaac/) for at have skabt alle GitHub Actions og workflows - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) for vigtige bidrag til hver lektion, som forbedrer lærings- og kodeoplevelsen. - -## 🎒 Andre kurser - -Vores team producerer også andre kurser! Se dem her: - -- [**NYT** Model Context Protocol for Beginners](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI Agents for Beginners](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Generative AI for Beginners using .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Generative AI for Beginners using JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML for Beginners](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Data Science for Beginners](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI for Beginners](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Cybersecurity for Beginners](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Web Dev for Beginners](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT for Beginners](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR Development for Beginners](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Mastering GitHub Copilot for AI Paired Programming](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Mastering GitHub Copilot for C#/.NET Developers](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Choose Your Own Copilot Adventure](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Ansvarsfraskrivelse**: -Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, bedes du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det oprindelige dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse. \ No newline at end of file + + + + diff --git a/translations/de/00-course-setup/01-setup-cloud.md b/translations/de/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..24e45faac --- /dev/null +++ b/translations/de/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/de/00-course-setup/02-setup-local.md b/translations/de/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..5ec075982 --- /dev/null +++ b/translations/de/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/de/00-course-setup/03-providers.md b/translations/de/00-course-setup/03-providers.md new file mode 100644 index 000000000..98b903195 --- /dev/null +++ b/translations/de/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/de/00-course-setup/README.md b/translations/de/00-course-setup/README.md index 3cd8192cc..b971d3a0a 100644 --- a/translations/de/00-course-setup/README.md +++ b/translations/de/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# Erste Schritte mit diesem Kurs - -Wir freuen uns sehr, dass du mit diesem Kurs startest und gespannt bist, was du mit Generativer KI erschaffen wirst! - -Um deinen Erfolg sicherzustellen, findest du auf dieser Seite die Einrichtungsschritte, technischen Anforderungen und Hinweise, wo du bei Bedarf Hilfe bekommst. - -## Einrichtungsschritte - -Um mit diesem Kurs zu beginnen, musst du die folgenden Schritte abschließen. - -### 1. Forke dieses Repository - -[Forke dieses gesamte Repository](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) in dein eigenes GitHub-Konto, um den Code ändern und die Herausforderungen bearbeiten zu können. Du kannst dieses Repository auch [mit einem Stern (🌟) markieren](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst), um es und verwandte Repos leichter wiederzufinden. - -### 2. Erstelle einen Codespace - -Um Abhängigkeitsprobleme beim Ausführen des Codes zu vermeiden, empfehlen wir, diesen Kurs in einem [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst) auszuführen. - -Diesen kannst du erstellen, indem du in deiner geforkten Version des Repos die Option `Code` auswählst und dann die **Codespaces**-Option anklickst. - -![Dialog mit Buttons zur Erstellung eines Codespaces](../../../00-course-setup/images/who-will-pay.webp) - -### 3. Speichern deiner API-Schlüssel - -Es ist wichtig, deine API-Schlüssel sicher aufzubewahren, wenn du Anwendungen entwickelst. Wir empfehlen, keine API-Schlüssel direkt im Code zu speichern. Das Hochladen solcher Daten in ein öffentliches Repository kann zu Sicherheitsproblemen und unerwünschten Kosten führen, falls sie von Dritten missbraucht werden. -Hier eine Schritt-für-Schritt-Anleitung, wie du eine `.env`-Datei für Python erstellst und den `GITHUB_TOKEN` hinzufügst: - -1. **Navigiere zu deinem Projektverzeichnis**: Öffne dein Terminal oder die Eingabeaufforderung und wechsle in das Stammverzeichnis deines Projekts, in dem du die `.env`-Datei erstellen möchtest. - - ```bash - cd path/to/your/project - ``` - -2. **Erstelle die `.env`-Datei**: Erstelle mit deinem bevorzugten Texteditor eine neue Datei namens `.env`. Wenn du die Kommandozeile nutzt, kannst du `touch` (unter Unix-Systemen) oder `echo` (unter Windows) verwenden: - - Unix-Systeme: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **Bearbeite die `.env`-Datei**: Öffne die `.env`-Datei in einem Texteditor (z. B. VS Code, Notepad++ oder einem anderen Editor). Füge folgende Zeile hinzu und ersetze `your_github_token_here` durch deinen tatsächlichen GitHub-Token: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Speichere die Datei**: Speichere die Änderungen und schließe den Editor. - -5. **Installiere `python-dotenv`**: Falls noch nicht geschehen, installiere das Paket `python-dotenv`, um Umgebungsvariablen aus der `.env`-Datei in deine Python-Anwendung zu laden. Du kannst es mit `pip` installieren: - - ```bash - pip install python-dotenv - ``` - -6. **Lade Umgebungsvariablen in deinem Python-Skript**: Verwende in deinem Python-Skript das Paket `python-dotenv`, um die Umgebungsvariablen aus der `.env`-Datei zu laden: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -Das war’s! Du hast erfolgreich eine `.env`-Datei erstellt, deinen GitHub-Token hinzugefügt und in deine Python-Anwendung geladen. - -## Lokales Ausführen auf deinem Computer - -Um den Code lokal auf deinem Computer auszuführen, benötigst du eine installierte Version von [Python](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -Um das Repository zu nutzen, musst du es klonen: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -Sobald du alles ausgecheckt hast, kannst du loslegen! - -## Optionale Schritte - -### Installation von Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) ist ein schlanker Installer für die Installation von [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python und einigen Paketen. -Conda ist ein Paketmanager, der es einfach macht, verschiedene Python [**virtuelle Umgebungen**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) und Pakete einzurichten und zwischen ihnen zu wechseln. Außerdem ist es praktisch, um Pakete zu installieren, die nicht über `pip` verfügbar sind. - -Du kannst der [Miniconda-Installationsanleitung](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) folgen, um es einzurichten. - -Nach der Installation von Miniconda musst du das [Repository klonen](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (falls noch nicht geschehen). - -Als Nächstes erstellst du eine virtuelle Umgebung. Erstelle dazu eine neue Umgebungsdatei (_environment.yml_). Wenn du Codespaces verwendest, lege diese im `.devcontainer`-Verzeichnis an, also `.devcontainer/environment.yml`. - -Fülle deine Umgebungsdatei mit folgendem Snippet: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Falls du Fehler bei der Verwendung von conda bekommst, kannst du die Microsoft AI Libraries manuell mit folgendem Befehl im Terminal installieren: - -``` -conda install -c microsoft azure-ai-ml -``` - -Die Umgebungsdatei gibt die benötigten Abhängigkeiten an. `` steht für den Namen deiner Conda-Umgebung, und `` für die Python-Version, die du verwenden möchtest, z. B. `3` für die aktuelle Hauptversion. - -Anschließend kannst du deine Conda-Umgebung mit den folgenden Befehlen in der Kommandozeile/Terminal erstellen: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -Bei Problemen hilft dir die [Conda-Umgebungsanleitung](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst) weiter. - -### Verwendung von Visual Studio Code mit der Python-Erweiterung - -Für diesen Kurs empfehlen wir den Editor [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) mit der installierten [Python-Erweiterung](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst). Dies ist jedoch nur eine Empfehlung und keine zwingende Voraussetzung. - -> **Hinweis**: Wenn du das Kurs-Repository in VS Code öffnest, kannst du das Projekt innerhalb eines Containers einrichten. Das ist möglich dank des [speziellen `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst)-Verzeichnisses im Kurs-Repository. Mehr dazu später. - -> **Hinweis**: Sobald du das Verzeichnis in VS Code klonst und öffnest, wird dir automatisch vorgeschlagen, die Python-Erweiterung zu installieren. - -> **Hinweis**: Wenn VS Code vorschlägt, das Repository in einem Container neu zu öffnen, lehne dies ab, wenn du die lokal installierte Python-Version verwenden möchtest. - -### Verwendung von Jupyter im Browser - -Du kannst auch direkt im Browser mit der [Jupyter-Umgebung](https://jupyter.org?WT.mc_id=academic-105485-koreyst) arbeiten. Sowohl das klassische Jupyter als auch [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) bieten eine angenehme Entwicklungsumgebung mit Funktionen wie Autovervollständigung, Syntaxhervorhebung usw. - -Um Jupyter lokal zu starten, öffne das Terminal/die Eingabeaufforderung, navigiere in das Kursverzeichnis und führe aus: - -```bash -jupyter notebook -``` - -oder - -```bash -jupyterhub -``` - -Dadurch wird eine Jupyter-Instanz gestartet, und die URL zum Zugriff wird im Terminal angezeigt. - -Wenn du die URL öffnest, solltest du die Kursübersicht sehen und zu jeder `*.ipynb`-Datei navigieren können, z. B. `08-building-search-applications/python/oai-solution.ipynb`. - -### Ausführen in einem Container - -Eine Alternative zur Einrichtung auf deinem Computer oder Codespace ist die Verwendung eines [Containers](../../../00-course-setup/). Das spezielle `.devcontainer`-Verzeichnis im Kurs-Repository ermöglicht es VS Code, das Projekt innerhalb eines Containers einzurichten. Außerhalb von Codespaces erfordert dies die Installation von Docker und ist etwas aufwändiger, daher empfehlen wir dies nur erfahrenen Nutzern mit Container-Erfahrung. - -Eine der besten Methoden, um deine API-Schlüssel bei der Nutzung von GitHub Codespaces sicher zu halten, ist die Verwendung von Codespace Secrets. Bitte folge der Anleitung zur [Codespaces Secrets-Verwaltung](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst), um mehr darüber zu erfahren. - -## Lektionen und technische Anforderungen - -Der Kurs besteht aus 6 Konzept-Lektionen und 6 Programmier-Lektionen. - -Für die Programmier-Lektionen verwenden wir den Azure OpenAI Service. Du benötigst Zugriff auf den Azure OpenAI Service und einen API-Schlüssel, um den Code auszuführen. Du kannst den Zugriff beantragen, indem du [diesen Antrag ausfüllst](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -Während du auf die Bearbeitung deines Antrags wartest, enthält jede Programmier-Lektion auch eine `README.md`-Datei, in der du den Code und die Ergebnisse ansehen kannst. - -## Erster Umgang mit dem Azure OpenAI Service - -Wenn du zum ersten Mal mit dem Azure OpenAI Service arbeitest, folge bitte dieser Anleitung, wie du eine [Azure OpenAI Service-Ressource erstellst und bereitstellst.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## Erster Umgang mit der OpenAI API - -Wenn du zum ersten Mal mit der OpenAI API arbeitest, folge der Anleitung, wie du die [Schnittstelle erstellst und nutzt.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## Andere Lernende kennenlernen - -Wir haben Kanäle in unserem offiziellen [AI Community Discord-Server](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) eingerichtet, um andere Lernende zu treffen. Das ist eine großartige Möglichkeit, sich mit gleichgesinnten Unternehmern, Entwicklern, Studierenden und allen, die sich im Bereich Generative KI weiterentwickeln wollen, zu vernetzen. - -[![Join discord channel](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -Das Projektteam ist ebenfalls auf diesem Discord-Server, um Lernenden zu helfen. - -## Mitwirken - -Dieser Kurs ist ein Open-Source-Projekt. Wenn du Verbesserungsmöglichkeiten oder Probleme entdeckst, erstelle bitte einen [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) oder melde ein [GitHub-Issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -Das Projektteam verfolgt alle Beiträge. Beiträge zu Open Source sind eine großartige Möglichkeit, deine Karriere im Bereich Generative KI voranzutreiben. - -Die meisten Beiträge erfordern, dass du einer Contributor License Agreement (CLA) zustimmst, die bestätigt, dass du die Rechte hast und tatsächlich gewährst, dass wir deine Beiträge nutzen dürfen. Details findest du auf der [CLA-Website](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Wichtig: Bitte verwende bei der Übersetzung von Texten in diesem Repository keine maschinelle Übersetzung. Wir überprüfen Übersetzungen über die Community, daher solltest du nur Übersetzungen in Sprachen anbieten, in denen du sicher bist. - -Wenn du einen Pull Request einreichst, prüft ein CLA-Bot automatisch, ob du eine CLA bereitstellen musst, und versieht den PR entsprechend (z. B. mit Label oder Kommentar). Folge einfach den Anweisungen des Bots. Dies musst du nur einmal für alle Repositories mit unserer CLA tun. - -Dieses Projekt hat den [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst) übernommen. Weitere Informationen findest du in den FAQ zum Verhaltenskodex oder kontaktiere [Email opencode](opencode@microsoft.com) bei Fragen oder Anmerkungen. - -## Lass uns starten - -Nachdem du die notwendigen Schritte abgeschlossen hast, können wir loslegen mit einer [Einführung in Generative KI und LLMs](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**Haftungsausschluss**: -Dieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner Ursprungssprache ist als maßgebliche Quelle zu betrachten. Für wichtige Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die aus der Nutzung dieser Übersetzung entstehen. \ No newline at end of file + + + + diff --git a/translations/de/00-course-setup/SETUP.md b/translations/de/00-course-setup/SETUP.md deleted file mode 100644 index 565d3b866..000000000 --- a/translations/de/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# Richte Deine Entwicklungsumgebung ein - -Wir haben dieses Repository und den Kurs mit einem [Development Container](https://containers.dev?WT.mc_id=academic-105485-koreyst) eingerichtet, der eine universelle Laufzeitumgebung bietet und die Entwicklung mit Python3, .NET, Node.js und Java unterstützt. Die zugehörige Konfiguration ist in der Datei `devcontainer.json` im Ordner `.devcontainer/` im Stammverzeichnis dieses Repositories definiert. - -Um den Dev Container zu aktivieren, starte ihn in [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (für eine cloudbasierte Laufzeit) oder in [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (für eine lokal gehostete Laufzeit). Lies [diese Dokumentation](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) für weitere Details, wie Dev Container in VS Code funktionieren. - -> [!TIP] -> Wir empfehlen GitHub Codespaces für einen schnellen Einstieg mit minimalem Aufwand. Es bietet ein großzügiges [kostenloses Nutzungskontingent](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) für persönliche Konten. Konfiguriere [Timeouts](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst), um inaktive Codespaces zu stoppen oder zu löschen und so dein Kontingent optimal zu nutzen. - -## 1. Ausführen von Aufgaben - -Jede Lektion enthält _optionale_ Aufgaben, die in einer oder mehreren Programmiersprachen bereitgestellt werden können, darunter Python, .NET/C#, Java und JavaScript/TypeScript. Dieser Abschnitt gibt allgemeine Hinweise zum Ausführen dieser Aufgaben. - -### 1.1 Python-Aufgaben - -Python-Aufgaben werden entweder als Anwendungen (`.py` Dateien) oder Jupyter-Notebooks (`.ipynb` Dateien) bereitgestellt. -- Um das Notebook auszuführen, öffne es in Visual Studio Code, klicke dann oben rechts auf _Select Kernel_ und wähle die standardmäßige Python 3-Option aus. Du kannst nun _Run All_ auswählen, um das Notebook auszuführen. -- Um Python-Anwendungen über die Kommandozeile auszuführen, folge den aufgabenspezifischen Anweisungen, um sicherzustellen, dass du die richtigen Dateien auswählst und die erforderlichen Argumente übergibst. - -## 2. Konfigurieren der Provider - -Aufgaben **können** auch so eingerichtet sein, dass sie mit einem oder mehreren Large Language Model (LLM) Deployments über einen unterstützten Service Provider wie OpenAI, Azure oder Hugging Face arbeiten. Diese bieten einen _gehosteten Endpunkt_ (API), auf den wir mit den richtigen Zugangsdaten (API-Schlüssel oder Token) programmgesteuert zugreifen können. In diesem Kurs behandeln wir folgende Provider: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) mit verschiedenen Modellen, darunter die Kern-GPT-Serie. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) für OpenAI-Modelle mit Fokus auf Unternehmensreife - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) für Open-Source-Modelle und Inferenzserver - -**Für diese Übungen benötigst du eigene Accounts**. Die Aufgaben sind optional, du kannst also je nach Interesse einen, alle oder keinen der Provider einrichten. Hier einige Hinweise zur Anmeldung: - -| Anmeldung | Kosten | API-Schlüssel | Playground | Kommentare | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst) | [Preise](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst) | [Projektbasiert](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [No-Code, Web](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Mehrere Modelle verfügbar | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst) | [Preise](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst) | [SDK Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Studio Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Zugang muss vorab beantragt werden](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) | -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Preise](https://huggingface.co/pricing) | [Access Tokens](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst) | [Hugging Chat hat begrenzte Modelle](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Folge den untenstehenden Anweisungen, um dieses Repository für die Nutzung mit verschiedenen Providern zu _konfigurieren_. Aufgaben, die einen bestimmten Provider erfordern, enthalten einen dieser Tags im Dateinamen: - - `aoai` - erfordert Azure OpenAI Endpunkt und Schlüssel - - `oai` - erfordert OpenAI Endpunkt und Schlüssel - - `hf` - erfordert Hugging Face Token - -Du kannst einen, keinen oder alle Provider konfigurieren. Fehlende Zugangsdaten führen bei den entsprechenden Aufgaben zu Fehlern. - -### 2.1 Erstelle die `.env` Datei - -Wir gehen davon aus, dass du die obigen Hinweise gelesen, dich beim jeweiligen Provider registriert und die erforderlichen Zugangsdaten (API_KEY oder Token) erhalten hast. Im Fall von Azure OpenAI solltest du außerdem eine gültige Bereitstellung eines Azure OpenAI Service (Endpunkt) mit mindestens einem GPT-Modell für Chat Completion eingerichtet haben. - -Der nächste Schritt ist, deine **lokalen Umgebungsvariablen** wie folgt zu konfigurieren: - -1. Suche im Stammverzeichnis nach einer Datei `.env.copy`, die etwa folgenden Inhalt hat: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Kopiere diese Datei mit folgendem Befehl zu `.env`. Diese Datei ist in `.gitignore` eingetragen, um Geheimnisse zu schützen. - - ```bash - cp .env.copy .env - ``` - -3. Fülle die Werte aus (ersetze die Platzhalter rechts vom `=`) wie im nächsten Abschnitt beschrieben. - -3. (Optional) Wenn du GitHub Codespaces nutzt, kannst du Umgebungsvariablen als _Codespaces Secrets_ speichern, die mit diesem Repository verknüpft sind. Dann ist keine lokale `.env` Datei nötig. **Beachte jedoch, dass diese Option nur mit GitHub Codespaces funktioniert.** Wenn du Docker Desktop verwendest, musst du die `.env` Datei weiterhin einrichten. - -### 2.2 Fülle die `.env` Datei aus - -Hier ein kurzer Überblick über die Variablennamen und ihre Bedeutung: - -| Variable | Beschreibung | -| :--- | :--- | -| HUGGING_FACE_API_KEY | Das Benutzerzugangstoken, das du in deinem Profil eingerichtet hast | -| OPENAI_API_KEY | Der Autorisierungsschlüssel für die Nutzung des Dienstes bei nicht-Azure OpenAI Endpunkten | -| AZURE_OPENAI_API_KEY | Der Autorisierungsschlüssel für die Nutzung des Azure OpenAI Dienstes | -| AZURE_OPENAI_ENDPOINT | Der bereitgestellte Endpunkt für eine Azure OpenAI Ressource | -| AZURE_OPENAI_DEPLOYMENT | Der Endpunkt für das _Textgenerierungs_-Modell Deployment | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | Der Endpunkt für das _Text-Embedding_-Modell Deployment | -| | | - -Hinweis: Die letzten beiden Azure OpenAI Variablen beziehen sich auf ein Standardmodell für Chat Completion (Textgenerierung) bzw. Vektorsuche (Embeddings). Die Anweisungen zum Setzen dieser Werte findest du in den jeweiligen Aufgaben. - -### 2.3 Azure konfigurieren: Über das Portal - -Die Werte für Azure OpenAI Endpunkt und Schlüssel findest du im [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst). Beginnen wir dort: - -1. Gehe zum [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -1. Klicke in der Seitenleiste (linkes Menü) auf **Keys and Endpoint** -1. Klicke auf **Show Keys** – du solltest folgende Werte sehen: KEY 1, KEY 2 und Endpoint -1. Verwende den Wert von KEY 1 für AZURE_OPENAI_API_KEY -1. Verwende den Wert von Endpoint für AZURE_OPENAI_ENDPOINT - -Als Nächstes benötigen wir die Endpunkte für die spezifischen Modelle, die wir bereitgestellt haben. - -1. Klicke in der Seitenleiste (linkes Menü) auf **Model deployments** für die Azure OpenAI Ressource -1. Klicke auf der Zielseite auf **Manage Deployments** - -Du gelangst zur Azure OpenAI Studio Webseite, wo du die weiteren Werte wie unten beschrieben findest. - -### 2.4 Azure konfigurieren: Über Studio - -1. Navigiere zu [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **über deine Ressource**, wie oben beschrieben. -1. Klicke auf den Tab **Deployments** (linke Seitenleiste), um die aktuell bereitgestellten Modelle zu sehen. -1. Falls dein gewünschtes Modell nicht bereitgestellt ist, nutze **Create new deployment**, um es zu deployen. -1. Du benötigst ein _Text-Generation_-Modell – wir empfehlen: **gpt-35-turbo** -1. Du benötigst ein _Text-Embedding_-Modell – wir empfehlen **text-embedding-ada-002** - -Aktualisiere nun die Umgebungsvariablen, um den _Deployment-Namen_ widerzuspiegeln, der verwendet wird. Dieser entspricht in der Regel dem Modellnamen, sofern du ihn nicht explizit geändert hast. Zum Beispiel könnte das so aussehen: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**Vergiss nicht, die `.env` Datei nach dem Bearbeiten zu speichern**. Du kannst die Datei jetzt schließen und zu den Anweisungen zum Ausführen des Notebooks zurückkehren. - -### 2.5 OpenAI konfigurieren: Über Profil - -Deinen OpenAI API-Schlüssel findest du in deinem [OpenAI Account](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). Falls du noch keinen hast, kannst du dich registrieren und einen API-Schlüssel erstellen. Sobald du den Schlüssel hast, kannst du ihn in der `.env` Datei in der Variable `OPENAI_API_KEY` eintragen. - -### 2.6 Hugging Face konfigurieren: Über Profil - -Dein Hugging Face Token findest du in deinem Profil unter [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). Teile diese Tokens nicht öffentlich. Erstelle stattdessen einen neuen Token für dieses Projekt und trage ihn in der `.env` Datei unter der Variable `HUGGING_FACE_API_KEY` ein. _Hinweis:_ Technisch gesehen ist dies kein API-Schlüssel, wird aber zur Authentifizierung verwendet, weshalb wir die Namenskonvention beibehalten. - -**Haftungsausschluss**: -Dieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner Ursprungssprache gilt als maßgebliche Quelle. Für wichtige Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die aus der Nutzung dieser Übersetzung entstehen. \ No newline at end of file diff --git a/translations/de/04-prompt-engineering-fundamentals/README.md b/translations/de/04-prompt-engineering-fundamentals/README.md index 939614254..72d12eeda 100644 --- a/translations/de/04-prompt-engineering-fundamentals/README.md +++ b/translations/de/04-prompt-engineering-fundamentals/README.md @@ -1,462 +1,15 @@ - -# Grundlagen des Prompt Engineerings - -[![Prompt Engineering Fundamentals](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.de.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Einführung -Dieses Modul behandelt grundlegende Konzepte und Techniken zur Erstellung effektiver Prompts für generative KI-Modelle. Wie Sie Ihren Prompt an ein LLM formulieren, ist ebenfalls entscheidend. Ein sorgfältig gestalteter Prompt kann eine bessere Antwortqualität erzielen. Aber was genau bedeuten Begriffe wie _Prompt_ und _Prompt Engineering_? Und wie verbessere ich den Prompt-_Input_, den ich an das LLM sende? Diese Fragen wollen wir in diesem und im nächsten Kapitel beantworten. - -_Generative KI_ ist in der Lage, neue Inhalte (z. B. Text, Bilder, Audio, Code usw.) als Antwort auf Benutzeranfragen zu erstellen. Dies geschieht mithilfe von _Large Language Models_ wie der GPT-Serie von OpenAI („Generative Pre-trained Transformer“), die für die Nutzung natürlicher Sprache und Code trainiert wurden. - -Benutzer können jetzt mit diesen Modellen über vertraute Paradigmen wie Chat interagieren, ohne technische Vorkenntnisse oder Schulungen zu benötigen. Die Modelle sind _promptbasiert_ – Benutzer senden eine Texteingabe (Prompt) und erhalten die KI-Antwort (Completion) zurück. Sie können dann iterativ „mit der KI chatten“ in mehrstufigen Gesprächen und ihren Prompt so lange verfeinern, bis die Antwort ihren Erwartungen entspricht. - -„Prompts“ werden somit zur primären _Programmierschnittstelle_ für generative KI-Anwendungen, die den Modellen sagen, was sie tun sollen, und die Qualität der zurückgegebenen Antworten beeinflussen. „Prompt Engineering“ ist ein schnell wachsendes Forschungsfeld, das sich auf das _Design und die Optimierung_ von Prompts konzentriert, um konsistente und qualitativ hochwertige Antworten in großem Maßstab zu liefern. - -## Lernziele - -In dieser Lektion lernen wir, was Prompt Engineering ist, warum es wichtig ist und wie wir effektivere Prompts für ein bestimmtes Modell und Anwendungsziel erstellen können. Wir verstehen die Kernkonzepte und bewährte Methoden des Prompt Engineerings – und lernen eine interaktive Jupyter-Notebook-„Sandbox“-Umgebung kennen, in der wir diese Konzepte an realen Beispielen anwenden können. - -Am Ende dieser Lektion werden wir in der Lage sein: - -1. Zu erklären, was Prompt Engineering ist und warum es wichtig ist. -2. Die Bestandteile eines Prompts zu beschreiben und wie sie verwendet werden. -3. Best Practices und Techniken des Prompt Engineerings zu erlernen. -4. Gelernte Techniken an realen Beispielen anzuwenden, unter Verwendung eines OpenAI-Endpunkts. - -## Schlüsselbegriffe - -Prompt Engineering: Die Praxis, Eingaben so zu gestalten und zu verfeinern, dass KI-Modelle gewünschte Ausgaben erzeugen. -Tokenisierung: Der Prozess, Text in kleinere Einheiten, sogenannte Tokens, umzuwandeln, die ein Modell verstehen und verarbeiten kann. -Instruction-Tuned LLMs: Große Sprachmodelle (LLMs), die mit spezifischen Anweisungen feinabgestimmt wurden, um ihre Antwortgenauigkeit und Relevanz zu verbessern. - -## Lern-Sandbox - -Prompt Engineering ist derzeit eher Kunst als Wissenschaft. Der beste Weg, unsere Intuition dafür zu verbessern, ist es, _mehr zu üben_ und einen Trial-and-Error-Ansatz zu verfolgen, der Fachwissen aus dem Anwendungsbereich mit empfohlenen Techniken und modell-spezifischen Optimierungen kombiniert. - -Das zu dieser Lektion gehörende Jupyter Notebook bietet eine _Sandbox_-Umgebung, in der Sie das Gelernte ausprobieren können – entweder direkt oder im Rahmen der Code-Herausforderung am Ende. Um die Übungen auszuführen, benötigen Sie: - -1. **Einen Azure OpenAI API-Schlüssel** – den Service-Endpunkt für ein bereitgestelltes LLM. -2. **Eine Python-Laufzeitumgebung** – in der das Notebook ausgeführt werden kann. -3. **Lokale Umgebungsvariablen** – _schließen Sie jetzt die [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst)-Schritte ab, um bereit zu sein_. - -Das Notebook enthält _Starter_-Übungen – Sie sind jedoch eingeladen, eigene _Markdown_- (Beschreibungen) und _Code_- (Prompt-Anfragen) Abschnitte hinzuzufügen, um weitere Beispiele oder Ideen auszuprobieren und Ihre Intuition für das Prompt-Design zu stärken. - -## Illustrierter Leitfaden - -Möchten Sie einen Überblick über die Themen dieser Lektion erhalten, bevor Sie tiefer einsteigen? Schauen Sie sich diesen illustrierten Leitfaden an, der Ihnen die Hauptthemen und die wichtigsten Erkenntnisse für jedes Thema vermittelt. Die Roadmap der Lektion führt Sie vom Verständnis der Kernkonzepte und Herausforderungen bis hin zur Anwendung relevanter Techniken und Best Practices des Prompt Engineerings. Beachten Sie, dass der Abschnitt „Fortgeschrittene Techniken“ in diesem Leitfaden auf Inhalte verweist, die im _nächsten_ Kapitel dieses Curriculums behandelt werden. - -![Illustrierter Leitfaden zum Prompt Engineering](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.de.png) - -## Unser Startup - -Kommen wir nun dazu, wie _dieses Thema_ mit unserer Startup-Mission zusammenhängt, [KI-Innovationen in die Bildung zu bringen](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). Wir wollen KI-gestützte Anwendungen für _personalisiertes Lernen_ entwickeln – also denken wir darüber nach, wie verschiedene Nutzer unserer Anwendung Prompts „gestalten“ könnten: - -- **Administratoren** könnten die KI bitten, _Lehrpläne zu analysieren, um Lücken in der Abdeckung zu identifizieren_. Die KI kann Ergebnisse zusammenfassen oder sie mit Code visualisieren. -- **Lehrkräfte** könnten die KI bitten, _einen Unterrichtsplan für eine Zielgruppe und ein Thema zu erstellen_. Die KI kann den personalisierten Plan in einem vorgegebenen Format erstellen. -- **Schüler** könnten die KI bitten, _sie in einem schwierigen Fach zu unterrichten_. Die KI kann Schüler nun mit Lektionen, Hinweisen und Beispielen auf ihrem Niveau unterstützen. - -Das ist nur die Spitze des Eisbergs. Schauen Sie sich [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) an – eine Open-Source-Prompt-Bibliothek, kuratiert von Bildungsexperten – um ein breiteres Spektrum der Möglichkeiten zu entdecken! _Probieren Sie einige dieser Prompts in der Sandbox oder im OpenAI Playground aus, um zu sehen, was passiert!_ - - - -## Was ist Prompt Engineering? - -Wir haben diese Lektion damit begonnen, **Prompt Engineering** als den Prozess des _Gestaltens und Optimierens_ von Texteingaben (Prompts) zu definieren, um konsistente und qualitativ hochwertige Antworten (Completions) für ein bestimmtes Anwendungsziel und Modell zu liefern. Man kann sich das als einen zweistufigen Prozess vorstellen: - -- den initialen Prompt für ein bestimmtes Modell und Ziel _gestalten_ -- den Prompt iterativ _verfeinern_, um die Antwortqualität zu verbessern - -Dies ist zwangsläufig ein Trial-and-Error-Prozess, der Benutzerintuition und Aufwand erfordert, um optimale Ergebnisse zu erzielen. Warum ist das wichtig? Um diese Frage zu beantworten, müssen wir zunächst drei Konzepte verstehen: - -- _Tokenisierung_ = wie das Modell den Prompt „sieht“ -- _Basis-LLMs_ = wie das Grundmodell einen Prompt „verarbeitet“ -- _Instruction-Tuned LLMs_ = wie das Modell jetzt „Aufgaben“ erkennen kann - -### Tokenisierung - -Ein LLM sieht Prompts als _Sequenz von Tokens_, wobei verschiedene Modelle (oder Modellversionen) denselben Prompt unterschiedlich tokenisieren können. Da LLMs auf Tokens (und nicht auf rohem Text) trainiert werden, hat die Art der Tokenisierung direkten Einfluss auf die Qualität der generierten Antwort. - -Um ein Gefühl dafür zu bekommen, wie Tokenisierung funktioniert, probieren Sie Tools wie den [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) aus, der unten gezeigt wird. Kopieren Sie Ihren Prompt hinein und sehen Sie, wie dieser in Tokens umgewandelt wird, achten Sie darauf, wie Leerzeichen und Satzzeichen behandelt werden. Beachten Sie, dass dieses Beispiel ein älteres LLM (GPT-3) zeigt – bei neueren Modellen kann das Ergebnis anders ausfallen. - -![Tokenisierung](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.de.png) - -### Konzept: Foundation Models - -Nachdem ein Prompt tokenisiert wurde, besteht die Hauptfunktion des ["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (oder Foundation-Modells) darin, das nächste Token in der Sequenz vorherzusagen. Da LLMs auf riesigen Textdatensätzen trainiert sind, haben sie ein gutes Verständnis der statistischen Zusammenhänge zwischen Tokens und können diese Vorhersage mit gewisser Sicherheit treffen. Beachten Sie, dass sie die _Bedeutung_ der Wörter im Prompt oder Token nicht verstehen; sie erkennen lediglich ein Muster, das sie mit ihrer nächsten Vorhersage „vervollständigen“ können. Sie können die Sequenz so lange vorhersagen, bis die Vorhersage durch Benutzereingriff oder eine vorgegebene Bedingung beendet wird. - -Möchten Sie sehen, wie promptbasierte Completion funktioniert? Geben Sie den obigen Prompt im Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) mit den Standardeinstellungen ein. Das System ist so konfiguriert, dass Prompts als Informationsanfragen behandelt werden – Sie sollten also eine Antwort erhalten, die diesem Kontext entspricht. - -Aber was, wenn der Benutzer etwas Spezifisches sehen möchte, das bestimmte Kriterien oder ein Aufgaben-Ziel erfüllt? Hier kommen _instruction-tuned_ LLMs ins Spiel. - -![Base LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.de.png) - -### Konzept: Instruction Tuned LLMs - -Ein [Instruction Tuned LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) baut auf dem Foundation-Modell auf und wird mit Beispielen oder Eingabe-/Ausgabe-Paaren (z. B. mehrstufigen „Nachrichten“) feinabgestimmt, die klare Anweisungen enthalten können – und die Antwort der KI versucht, dieser Anweisung zu folgen. - -Dabei kommen Techniken wie Reinforcement Learning mit menschlichem Feedback (RLHF) zum Einsatz, die das Modell darin trainieren, _Anweisungen zu befolgen_ und _aus Feedback zu lernen_, sodass es Antworten liefert, die besser für praktische Anwendungen geeignet und relevanter für die Ziele der Nutzer sind. - -Probieren wir es aus – nehmen Sie den oben genannten Prompt und ändern Sie nun die _Systemnachricht_, um folgende Anweisung als Kontext zu geben: - -> _Fasse den bereitgestellten Inhalt für eine Zweitklässlerin/einen Zweitklässler zusammen. Halte das Ergebnis in einem Absatz mit 3-5 Stichpunkten._ - -Sehen Sie, wie das Ergebnis nun auf das gewünschte Ziel und Format abgestimmt ist? Eine Lehrkraft kann diese Antwort direkt in ihren Folien für den Unterricht verwenden. - -![Instruction Tuned LLM Chat Completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.de.png) - -## Warum brauchen wir Prompt Engineering? - -Jetzt, wo wir wissen, wie Prompts von LLMs verarbeitet werden, sprechen wir darüber, _warum_ wir Prompt Engineering brauchen. Die Antwort liegt darin, dass aktuelle LLMs eine Reihe von Herausforderungen mit sich bringen, die es erschweren, _zuverlässige und konsistente Completions_ zu erzielen, ohne Aufwand in die Konstruktion und Optimierung der Prompts zu stecken. Zum Beispiel: - -1. **Modellantworten sind stochastisch.** Derselbe Prompt wird wahrscheinlich mit verschiedenen Modellen oder Modellversionen unterschiedliche Antworten erzeugen. Und er kann sogar mit _dem gleichen Modell_ zu unterschiedlichen Zeiten verschiedene Ergebnisse liefern. _Prompt Engineering-Techniken können helfen, diese Variationen zu minimieren, indem sie bessere Leitplanken setzen_. - -2. **Modelle können Antworten erfinden.** Modelle sind mit _großen, aber begrenzten_ Datensätzen vortrainiert, was bedeutet, dass ihnen Wissen über Konzepte außerhalb dieses Trainings fehlt. Daher können sie Antworten erzeugen, die ungenau, erfunden oder direkt widersprüchlich zu bekannten Fakten sind. _Prompt Engineering-Techniken helfen Nutzern, solche Erfindungen zu erkennen und zu mindern, z. B. indem die KI nach Quellenangaben oder Begründungen gefragt wird_. - -3. **Modelle unterscheiden sich in ihren Fähigkeiten.** Neuere Modelle oder Modellgenerationen verfügen über umfangreichere Fähigkeiten, bringen aber auch eigene Besonderheiten und Kompromisse bei Kosten und Komplexität mit sich. _Prompt Engineering kann uns helfen, Best Practices und Workflows zu entwickeln, die Unterschiede abstrahieren und sich modell-spezifischen Anforderungen skalierbar und nahtlos anpassen_. - -Sehen wir uns das im OpenAI- oder Azure OpenAI Playground an: - -- Verwenden Sie denselben Prompt mit verschiedenen LLM-Bereitstellungen (z. B. OpenAI, Azure OpenAI, Hugging Face) – haben Sie die Unterschiede bemerkt? -- Verwenden Sie denselben Prompt mehrfach mit _dem gleichen_ LLM (z. B. Azure OpenAI Playground) – wie unterschieden sich diese Variationen? - -### Beispiel für Erfindungen - -In diesem Kurs verwenden wir den Begriff **„Fabrication“** (Erfindung), um das Phänomen zu beschreiben, dass LLMs manchmal faktisch falsche Informationen generieren, bedingt durch Einschränkungen im Training oder andere Faktoren. In populären Artikeln oder Forschungsarbeiten wird dies oft als _„Halluzinationen“_ bezeichnet. Wir empfehlen jedoch ausdrücklich, den Begriff _„Fabrication“_ zu verwenden, um eine unbeabsichtigte Vermenschlichung des Verhaltens zu vermeiden, indem man einer maschinengesteuerten Ausgabe menschliche Eigenschaften zuschreibt. Dies unterstützt auch die [Richtlinien für verantwortungsvolle KI](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) aus terminologischer Sicht, indem Begriffe vermieden werden, die in manchen Kontexten als anstößig oder nicht inklusiv gelten könnten. - -Möchten Sie ein Gefühl dafür bekommen, wie Erfindungen entstehen? Denken Sie an einen Prompt, der die KI anweist, Inhalte zu einem nicht existierenden Thema zu generieren (um sicherzustellen, dass es nicht im Trainingsdatensatz enthalten ist). Zum Beispiel habe ich diesen Prompt ausprobiert: -# Unterrichtsplan: Der Marskrieg von 2076 - -## Zielsetzung -Die Schüler sollen ein Verständnis für die Ursachen, den Verlauf und die Folgen des Marskriegs von 2076 entwickeln. Außerdem sollen sie die Bedeutung dieses Konflikts für die Zukunft der Menschheit im Weltraum reflektieren. - -## Dauer -2 Unterrichtsstunden (je 45 Minuten) - -## Materialien -- Lehrbuchkapitel zum Marskrieg von 2076 -- Karten und Diagramme des Marsgebiets -- Videos und Zeitzeugenberichte (sofern verfügbar) -- Arbeitsblätter mit Fragen und Aufgaben - -## Ablauf - -### Stunde 1 - -#### 1. Einführung (10 Minuten) -- Kurze Vorstellung des Themas: Was war der Marskrieg von 2076? -- Diskussion: Warum könnte es zu einem Krieg auf dem Mars gekommen sein? - -#### 2. Ursachen des Kriegs (15 Minuten) -- Gemeinsames Erarbeiten der politischen, wirtschaftlichen und sozialen Hintergründe -- Analyse der Ressourcenknappheit und territorialen Streitigkeiten - -#### 3. Verlauf des Kriegs (20 Minuten) -- Überblick über die wichtigsten Ereignisse und Schlachten -- Vorstellung der beteiligten Parteien und ihrer Strategien - -### Stunde 2 - -#### 4. Folgen des Kriegs (15 Minuten) -- Auswirkungen auf die Marskolonien und die Erde -- Technologische und gesellschaftliche Veränderungen - -#### 5. Diskussion und Reflexion (20 Minuten) -- Welche Lehren können aus dem Marskrieg gezogen werden? -- Wie könnte die Zukunft der Marsbesiedlung aussehen? - -#### 6. Abschluss (10 Minuten) -- Zusammenfassung der wichtigsten Punkte -- Hausaufgabe: Kurzer Aufsatz über die Bedeutung des Marskriegs für die Menschheit - -## Bewertung -- Mitarbeit in der Diskussion -- Qualität der Hausaufgabe -- Verständnis der Zusammenhänge in einem kurzen Test in der nächsten Stunde -Eine Websuche zeigte mir, dass es fiktive Berichte (z. B. Fernsehserien oder Bücher) über Marskriege gibt – aber keine aus dem Jahr 2076. Der gesunde Menschenverstand sagt uns auch, dass 2076 _in der Zukunft_ liegt und daher nicht mit einem realen Ereignis in Verbindung gebracht werden kann. - -Was passiert also, wenn wir diese Eingabeaufforderung bei verschiedenen LLM-Anbietern ausführen? - -> **Antwort 1**: OpenAI Playground (GPT-35) - -![Antwort 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.de.png) - -> **Antwort 2**: Azure OpenAI Playground (GPT-35) - -![Antwort 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.de.png) - -> **Antwort 3**: : Hugging Face Chat Playground (LLama-2) - -![Antwort 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.de.png) - -Wie erwartet liefert jedes Modell (bzw. jede Modellversion) aufgrund stochastischen Verhaltens und unterschiedlicher Modellfähigkeiten leicht unterschiedliche Antworten. Zum Beispiel richtet sich ein Modell an ein Publikum der 8. Klasse, während das andere einen Schüler der Oberstufe annimmt. Aber alle drei Modelle erzeugten Antworten, die einen uninformierten Nutzer davon überzeugen könnten, dass das Ereignis real war. - -Techniken des Prompt Engineerings wie _Metaprompting_ und _Temperature-Konfiguration_ können Modell-Fälschungen bis zu einem gewissen Grad reduzieren. Neue Prompt-Engineering-_Architekturen_ integrieren zudem nahtlos neue Werkzeuge und Techniken in den Prompt-Ablauf, um einige dieser Effekte zu mildern oder zu verringern. - -## Fallstudie: GitHub Copilot - -Schließen wir diesen Abschnitt ab, indem wir uns ansehen, wie Prompt Engineering in realen Lösungen eingesetzt wird, anhand einer Fallstudie: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot ist dein „KI-Paarprogrammierer“ – es wandelt Texteingaben in Code-Vervollständigungen um und ist in deine Entwicklungsumgebung (z. B. Visual Studio Code) integriert, um ein nahtloses Nutzererlebnis zu bieten. Wie in der untenstehenden Blogserie dokumentiert, basierte die erste Version auf dem OpenAI Codex-Modell – wobei die Entwickler schnell erkannten, dass das Modell feinjustiert und bessere Prompt-Engineering-Techniken entwickelt werden müssen, um die Codequalität zu verbessern. Im Juli stellten sie ein verbessertes KI-Modell vor, das über Codex hinausgeht, um noch schnellere Vorschläge zu liefern: [debuted an improved AI model that goes beyond Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst). - -Lies die Beiträge der Reihe nach, um ihre Lernreise nachzuvollziehen. - -- **Mai 2023** | [GitHub Copilot wird besser darin, deinen Code zu verstehen](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **Mai 2023** | [Inside GitHub: Arbeit mit den LLMs hinter GitHub Copilot](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Jun 2023** | [Wie man bessere Prompts für GitHub Copilot schreibt](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Jul 2023** | [GitHub Copilot geht mit verbessertem KI-Modell über Codex hinaus](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Jul 2023** | [Ein Entwicklerleitfaden für Prompt Engineering und LLMs](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **Sep 2023** | [Wie man eine Enterprise-LLM-App baut: Lektionen von GitHub Copilot](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -Du kannst auch ihren [Engineering-Blog](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) durchstöbern, um weitere Beiträge wie [diesen](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) zu finden, der zeigt, wie diese Modelle und Techniken _angewendet_ werden, um reale Anwendungen voranzutreiben. - ---- - - - -## Prompt-Konstruktion - -Wir haben gesehen, warum Prompt Engineering wichtig ist – jetzt wollen wir verstehen, wie Prompts _aufgebaut_ werden, damit wir verschiedene Techniken für ein effektiveres Prompt-Design bewerten können. - -### Einfacher Prompt - -Beginnen wir mit dem einfachen Prompt: eine Texteingabe, die ohne weiteren Kontext an das Modell gesendet wird. Hier ein Beispiel – wenn wir die ersten Worte der US-Nationalhymne an die OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst) senden, vervollständigt sie sofort die Antwort mit den nächsten Zeilen und zeigt so das grundlegende Vorhersageverhalten. - -| Prompt (Eingabe) | Vervollständigung (Ausgabe) | -| :------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | Es klingt, als würdest du die Liedtexte von „The Star-Spangled Banner“, der Nationalhymne der Vereinigten Staaten, beginnen. Der vollständige Text lautet ... | - -### Komplexer Prompt - -Fügen wir nun Kontext und Anweisungen zu diesem einfachen Prompt hinzu. Die [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) erlaubt es uns, einen komplexen Prompt als Sammlung von _Nachrichten_ zu erstellen mit: - -- Eingabe-/Ausgabepaaren, die den _Nutzer_-Input und die _Assistent_-Antwort widerspiegeln. -- Systemnachricht, die den Kontext für das Verhalten oder die Persönlichkeit des Assistenten festlegt. - -Die Anfrage sieht nun wie folgt aus, wobei die _Tokenisierung_ relevante Informationen aus Kontext und Gespräch effektiv erfasst. Das Ändern des Systemkontexts kann die Qualität der Vervollständigungen genauso stark beeinflussen wie die vom Nutzer gelieferten Eingaben. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Instruktions-Prompt - -In den obigen Beispielen war der Nutzer-Prompt eine einfache Textanfrage, die als Informationsanfrage interpretiert werden kann. Mit _Instruktions-Prompts_ können wir diesen Text nutzen, um eine Aufgabe genauer zu spezifizieren und der KI bessere Anweisungen zu geben. Hier ein Beispiel: - -| Prompt (Eingabe) | Vervollständigung (Ausgabe) | Instruktionstyp | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Schreibe eine Beschreibung des Bürgerkriegs | _gab einen einfachen Absatz zurück_ | Einfach | -| Schreibe eine Beschreibung des Bürgerkriegs. Nenne wichtige Daten und Ereignisse und beschreibe deren Bedeutung | _gab einen Absatz gefolgt von einer Liste wichtiger Ereignisdaten mit Beschreibungen zurück_ | Komplex | -| Schreibe eine Beschreibung des Bürgerkriegs in 1 Absatz. Gib 3 Stichpunkte mit wichtigen Daten und deren Bedeutung. Gib 3 weitere Stichpunkte mit wichtigen historischen Persönlichkeiten und deren Beiträgen. Gib die Ausgabe als JSON-Datei zurück | _gibt ausführlichere Details in einem Textfeld zurück, formatiert als JSON, das du kopieren, einfügen und bei Bedarf validieren kannst_ | Komplex. Formatiert. | - -## Primärer Inhalt - -In den obigen Beispielen war der Prompt noch recht offen, sodass das LLM selbst entscheiden konnte, welcher Teil seines vortrainierten Datensatzes relevant ist. Beim Designmuster _primärer Inhalt_ wird der Eingabetext in zwei Teile geteilt: - -- eine Anweisung (Aktion) -- relevanter Inhalt (der die Aktion beeinflusst) - -Hier ein Beispiel, bei dem die Anweisung lautet: „Fasse das in 2 Sätzen zusammen“. - -| Prompt (Eingabe) | Vervollständigung (Ausgabe) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter ist der fünfte Planet von der Sonne und der größte im Sonnensystem. Er ist ein Gasriese mit einer Masse von einem Tausendstel der Sonne, aber zweieinhalbmal so groß wie alle anderen Planeten im Sonnensystem zusammen. Jupiter ist eines der hellsten Objekte, die mit bloßem Auge am Nachthimmel sichtbar sind, und war schon den alten Zivilisationen vor der aufgezeichneten Geschichte bekannt. Er ist nach dem römischen Gott Jupiter benannt.[19] Von der Erde aus betrachtet kann Jupiter hell genug sein, dass sein reflektiertes Licht sichtbare Schatten wirft,[20] und ist im Durchschnitt das dritthellste natürliche Objekt am Nachthimmel nach Mond und Venus.
**Fasse das in 2 kurzen Sätzen zusammen** | Jupiter, der fünfte Planet von der Sonne, ist der größte im Sonnensystem und bekannt als eines der hellsten Objekte am Nachthimmel. Benannt nach dem römischen Gott Jupiter, ist er ein Gasriese, dessen Masse zweieinhalbmal so groß ist wie die aller anderen Planeten im Sonnensystem zusammen. | - -Der primäre Inhaltsabschnitt kann auf verschiedene Weise genutzt werden, um effektivere Anweisungen zu geben: - -- **Beispiele** – statt dem Modell eine explizite Anweisung zu geben, zeige ihm Beispiele, was zu tun ist, und lass es das Muster ableiten. -- **Hinweise** – folge der Anweisung mit einem „Hinweis“, der die Vervollständigung vorbereitet und das Modell zu relevanteren Antworten lenkt. -- **Vorlagen** – das sind wiederholbare „Rezepte“ für Prompts mit Platzhaltern (Variablen), die mit Daten für spezifische Anwendungsfälle angepasst werden können. - -Schauen wir uns diese in der Praxis an. - -### Verwendung von Beispielen - -Dies ist ein Ansatz, bei dem du den primären Inhalt nutzt, um dem Modell einige Beispiele der gewünschten Ausgabe für eine bestimmte Anweisung zu „füttern“ und es das Muster für die gewünschte Ausgabe ableiten lässt. Je nach Anzahl der Beispiele spricht man von Zero-Shot-, One-Shot- oder Few-Shot-Prompting. - -Der Prompt besteht nun aus drei Komponenten: - -- einer Aufgabenbeschreibung -- einigen Beispielen der gewünschten Ausgabe -- dem Beginn eines neuen Beispiels (das zur impliziten Aufgabenbeschreibung wird) - -| Lernart | Prompt (Eingabe) | Vervollständigung (Ausgabe) | -| :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------- | -| Zero-Shot | „The Sun is Shining“. Übersetze ins Spanische | „El Sol está brillando“. | -| One-Shot | „The Sun is Shining“ => „El Sol está brillando“.
„It's a Cold and Windy Day“ => | „Es un día frío y ventoso“. | -| Few-Shot | Der Spieler lief die Bases => Baseball
Der Spieler schlug ein Ass => Tennis
Der Spieler schlug eine Sechs => Cricket
Der Spieler machte einen Slam-Dunk => | Basketball | -| | | | - -Beachte, dass wir beim Zero-Shot-Prompting eine explizite Anweisung („Übersetze ins Spanische“) geben mussten, die beim One-Shot-Prompting-Beispiel implizit abgeleitet wird. Das Few-Shot-Beispiel zeigt, wie mehr Beispiele dem Modell erlauben, genauere Schlüsse ohne zusätzliche Anweisungen zu ziehen. - -### Prompt-Hinweise - -Eine weitere Technik zur Nutzung des primären Inhalts ist, _Hinweise_ statt Beispiele zu geben. Dabei geben wir dem Modell einen Anstoß in die richtige Richtung, indem wir mit einem Ausschnitt beginnen, der das gewünschte Antwortformat widerspiegelt. Das Modell „nimmt den Hinweis auf“ und setzt in diesem Stil fort. - -| Anzahl der Hinweise | Prompt (Eingabe) | Vervollständigung (Ausgabe) | -| :------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Jupiter ist der fünfte Planet von der Sonne und der größte im Sonnensystem. Er ist ein Gasriese mit einer Masse von einem Tausendstel der Sonne, aber zweieinhalbmal so groß wie alle anderen Planeten im Sonnensystem zusammen. Jupiter ist eines der hellsten Objekte, die mit bloßem Auge am Nachthimmel sichtbar sind, und war schon den alten Zivilisationen vor der aufgezeichneten Geschichte bekannt. - -**Zusammenfassung** | Jupiter ist der größte Planet in unserem Sonnensystem und der fünfte von der Sonne aus gesehen. Er ist ein Gasriese mit einer Masse von 1/1000 der Sonnenmasse, aber schwerer als alle anderen Planeten zusammen. Alte Zivilisationen kennen Jupiter schon lange, und er ist leicht am Nachthimmel zu sehen. | -| 1 | Jupiter ist der fünfte Planet von der Sonne und der größte im Sonnensystem. Er ist ein Gasriese mit einer Masse von einem Tausendstel der Sonne, aber zweieinhalbmal so schwer wie alle anderen Planeten im Sonnensystem zusammen. Jupiter ist eines der hellsten Objekte, die mit bloßem Auge am Nachthimmel sichtbar sind, und war schon den alten Zivilisationen vor der schriftlichen Geschichte bekannt.
**Zusammenfassung**
Was wir gelernt haben, ist, dass Jupiter | der fünfte Planet von der Sonne und der größte im Sonnensystem ist. Er ist ein Gasriese mit einer Masse von einem Tausendstel der Sonne, aber zweieinhalbmal so schwer wie alle anderen Planeten zusammen. Er ist mit bloßem Auge leicht sichtbar und seit der Antike bekannt. | -| 2 | Jupiter ist der fünfte Planet von der Sonne und der größte im Sonnensystem. Er ist ein Gasriese mit einer Masse von einem Tausendstel der Sonne, aber zweieinhalbmal so schwer wie alle anderen Planeten im Sonnensystem zusammen. Jupiter ist eines der hellsten Objekte, die mit bloßem Auge am Nachthimmel sichtbar sind, und war schon den alten Zivilisationen vor der schriftlichen Geschichte bekannt.
**Zusammenfassung**
Die Top 3 Fakten, die wir gelernt haben: | 1. Jupiter ist der fünfte Planet von der Sonne und der größte im Sonnensystem.
2. Er ist ein Gasriese mit einer Masse von einem Tausendstel der Sonne...
3. Jupiter ist seit der Antike mit bloßem Auge sichtbar ... | -| | | | - -### Prompt-Vorlagen - -Eine Prompt-Vorlage ist ein _vordefiniertes Rezept für einen Prompt_, das gespeichert und bei Bedarf wiederverwendet werden kann, um konsistentere Nutzererfahrungen in großem Maßstab zu ermöglichen. In seiner einfachsten Form ist es einfach eine Sammlung von Prompt-Beispielen wie [dieses von OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst), das sowohl die interaktiven Prompt-Komponenten (Benutzer- und Systemnachrichten) als auch das API-gesteuerte Anfrageformat bereitstellt – zur Unterstützung der Wiederverwendung. - -In einer komplexeren Form wie [dieses Beispiel von LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst) enthält es _Platzhalter_, die mit Daten aus verschiedenen Quellen (Benutzereingaben, Systemkontext, externe Datenquellen usw.) ersetzt werden können, um einen Prompt dynamisch zu erzeugen. So können wir eine Bibliothek wiederverwendbarer Prompts erstellen, die **programmatisch** konsistente Nutzererfahrungen in großem Maßstab ermöglichen. - -Der eigentliche Wert von Vorlagen liegt schließlich in der Möglichkeit, _Prompt-Bibliotheken_ für vertikale Anwendungsbereiche zu erstellen und zu veröffentlichen – wobei die Prompt-Vorlage nun _optimiert_ ist, um anwendungsspezifischen Kontext oder Beispiele widerzuspiegeln, die die Antworten für die Zielgruppe relevanter und genauer machen. Das [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) Repository ist ein hervorragendes Beispiel für diesen Ansatz, da es eine Sammlung von Prompts für den Bildungsbereich mit Schwerpunkt auf wichtigen Zielen wie Unterrichtsplanung, Lehrplanentwicklung, Schülerbetreuung usw. kuratiert. - -## Unterstützende Inhalte - -Wenn wir den Prompt-Aufbau als eine Anweisung (Aufgabe) und ein Ziel (primärer Inhalt) betrachten, dann ist _sekundärer Inhalt_ wie zusätzlicher Kontext, den wir bereitstellen, um die Ausgabe **auf irgendeine Weise zu beeinflussen**. Das können Einstellungsparameter, Formatierungsanweisungen, Themen-Taxonomien usw. sein, die dem Modell helfen, seine Antwort besser auf die gewünschten Nutzerziele oder Erwartungen abzustimmen. - -Beispiel: Angenommen, wir haben einen Kurskatalog mit umfangreichen Metadaten (Name, Beschreibung, Niveau, Metadaten-Tags, Dozent usw.) zu allen verfügbaren Kursen im Lehrplan: - -- Wir können eine Anweisung definieren, um den Kurskatalog für Herbst 2023 zusammenzufassen -- Wir können den primären Inhalt nutzen, um einige Beispiele für die gewünschte Ausgabe bereitzustellen -- Wir können den sekundären Inhalt verwenden, um die Top 5 „Tags“ von Interesse zu identifizieren. - -Das Modell kann dann eine Zusammenfassung im Format der Beispiele liefern – aber wenn ein Ergebnis mehrere Tags hat, kann es die 5 im sekundären Inhalt identifizierten Tags priorisieren. - ---- - - - -## Best Practices beim Prompting - -Jetzt, wo wir wissen, wie Prompts _aufgebaut_ werden können, können wir darüber nachdenken, wie man sie _gestaltet_, um Best Practices zu berücksichtigen. Wir können das in zwei Teile gliedern – die richtige _Einstellung_ und die passenden _Techniken_. - -### Einstellung zum Prompt Engineering - -Prompt Engineering ist ein Prozess von Versuch und Irrtum, daher sollten drei grundlegende Leitlinien beachtet werden: - -1. **Domänenverständnis ist entscheidend.** Die Genauigkeit und Relevanz der Antwort hängt von der _Domäne_ ab, in der die Anwendung oder der Nutzer tätig ist. Nutze deine Intuition und dein Fachwissen, um die **Techniken weiter anzupassen**. Definiere zum Beispiel _domänenspezifische Persönlichkeiten_ in deinen System-Prompts oder verwende _domänenspezifische Vorlagen_ in den Nutzer-Prompts. Stelle sekundäre Inhalte bereit, die domänenspezifische Kontexte widerspiegeln, oder nutze _domänenspezifische Hinweise und Beispiele_, um das Modell auf vertraute Nutzungsmuster zu lenken. - -2. **Modellverständnis ist wichtig.** Wir wissen, dass Modelle von Natur aus stochastisch sind. Aber auch die Implementierungen können sich hinsichtlich des Trainingsdatensatzes (vortrainiertes Wissen), der bereitgestellten Fähigkeiten (z. B. über API oder SDK) und des optimierten Inhalts (z. B. Code vs. Bilder vs. Text) unterscheiden. Verstehe die Stärken und Grenzen des verwendeten Modells und nutze dieses Wissen, um _Aufgaben zu priorisieren_ oder _angepasste Vorlagen_ zu erstellen, die auf die Fähigkeiten des Modells optimiert sind. - -3. **Iteration & Validierung sind entscheidend.** Modelle entwickeln sich schnell weiter, ebenso die Techniken des Prompt Engineerings. Als Fachexperte hast du möglicherweise weitere Kontexte oder Kriterien für _deine_ spezifische Anwendung, die für die breite Community nicht gelten. Nutze Tools und Techniken des Prompt Engineerings, um den Prompt-Aufbau „anzustoßen“, iteriere dann und validiere die Ergebnisse mit deiner eigenen Intuition und deinem Fachwissen. Dokumentiere deine Erkenntnisse und erstelle eine **Wissensbasis** (z. B. Prompt-Bibliotheken), die von anderen als neue Grundlage für schnellere Iterationen genutzt werden kann. - -## Best Practices - -Schauen wir uns nun gängige Best Practices an, die von [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) und [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst) empfohlen werden. - -| Was | Warum | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Die neuesten Modelle evaluieren. | Neue Modellgenerationen bieten wahrscheinlich verbesserte Funktionen und Qualität – können aber auch höhere Kosten verursachen. Bewerte sie hinsichtlich ihres Nutzens und entscheide dann über eine Migration. | -| Anweisungen & Kontext trennen | Prüfe, ob dein Modell/Anbieter _Begrenzer_ definiert, um Anweisungen, primäre und sekundäre Inhalte klarer zu unterscheiden. Das hilft Modellen, Token-Gewichte genauer zuzuordnen. | -| Sei spezifisch und klar | Gib mehr Details zum gewünschten Kontext, Ergebnis, Länge, Format, Stil usw. Das verbessert sowohl Qualität als auch Konsistenz der Antworten. Halte Rezepte in wiederverwendbaren Vorlagen fest. | -| Sei beschreibend, nutze Beispiele | Modelle reagieren oft besser auf eine „zeigen und erzählen“-Methode. Beginne mit einem `Zero-Shot`-Ansatz, bei dem du nur eine Anweisung gibst (ohne Beispiele), und verfeinere dann mit `Few-Shot`, indem du einige Beispiele für die gewünschte Ausgabe lieferst. Nutze Analogien. | -| Nutze Hinweise, um Antworten anzustoßen | Lenke das Modell auf ein gewünschtes Ergebnis, indem du ihm einige einleitende Wörter oder Phrasen gibst, die es als Ausgangspunkt für die Antwort verwenden kann. | -| Wiederhole dich | Manchmal muss man sich gegenüber dem Modell wiederholen. Gib Anweisungen vor und nach dem primären Inhalt, nutze eine Anweisung und einen Hinweis usw. Iteriere und validiere, was am besten funktioniert. | -| Reihenfolge ist wichtig | Die Reihenfolge, in der du Informationen präsentierst, kann die Ausgabe beeinflussen, auch bei Lernbeispielen, wegen des „Recency Bias“. Probiere verschiedene Optionen aus, um das beste Ergebnis zu finden. | -| Gib dem Modell eine „Ausweichmöglichkeit“ | Gib dem Modell eine _Fallback_-Antwort, die es liefern kann, falls es die Aufgabe aus irgendeinem Grund nicht erfüllen kann. Das reduziert die Wahrscheinlichkeit, dass das Modell falsche oder erfundene Antworten generiert. | -| | | - -Wie bei jeder Best Practice gilt: _Deine Erfahrungen können je nach Modell, Aufgabe und Domäne variieren_. Nutze diese Empfehlungen als Ausgangspunkt und iteriere, um das für dich Beste zu finden. Überprüfe deinen Prompt-Engineering-Prozess regelmäßig neu, wenn neue Modelle und Tools verfügbar werden, mit Fokus auf Skalierbarkeit und Antwortqualität. - - - -## Aufgabe - -Herzlichen Glückwunsch! Du hast das Ende der Lektion erreicht! Jetzt ist es Zeit, einige der Konzepte und Techniken mit echten Beispielen zu testen! - -Für unsere Aufgabe verwenden wir ein Jupyter Notebook mit Übungen, die du interaktiv bearbeiten kannst. Du kannst das Notebook auch mit eigenen Markdown- und Code-Zellen erweitern, um Ideen und Techniken selbstständig zu erkunden. - -### Zum Start, fork das Repository und dann - -- (Empfohlen) Starte GitHub Codespaces -- (Alternativ) Klone das Repository auf dein lokales Gerät und nutze es mit Docker Desktop -- (Alternativ) Öffne das Notebook mit deiner bevorzugten Notebook-Laufzeitumgebung. - -### Als Nächstes konfiguriere deine Umgebungsvariablen - -- Kopiere die Datei `.env.copy` im Repository-Stammverzeichnis nach `.env` und fülle die Werte für `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` und `AZURE_OPENAI_DEPLOYMENT` aus. Kehre dann zum Abschnitt [Learning Sandbox](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) zurück, um zu erfahren, wie es geht. - -### Öffne dann das Jupyter Notebook - -- Wähle den Laufzeit-Kernel aus. Wenn du Option 1 oder 2 nutzt, wähle einfach den standardmäßigen Python 3.10.x Kernel, der vom Dev-Container bereitgestellt wird. - -Du bist bereit, die Übungen auszuführen. Beachte, dass es hier keine _richtigen oder falschen_ Antworten gibt – es geht darum, Optionen durch Ausprobieren zu erkunden und ein Gespür dafür zu entwickeln, was für ein bestimmtes Modell und eine bestimmte Anwendungsdomäne funktioniert. - -_Aus diesem Grund gibt es in dieser Lektion keine Code-Lösungsabschnitte. Stattdessen enthält das Notebook Markdown-Zellen mit dem Titel „Meine Lösung:“, die ein Beispielergebnis zur Orientierung zeigen._ - - - -## Wissenscheck - -Welcher der folgenden Prompts entspricht guten Best Practices? - -1. Zeig mir ein Bild von einem roten Auto -2. Zeig mir ein Bild von einem roten Auto der Marke Volvo und Modell XC90, das an einer Klippe mit Sonnenuntergang geparkt ist -3. Zeig mir ein Bild von einem roten Auto der Marke Volvo und Modell XC90 - -Antwort: 2, es ist der beste Prompt, da er Details zum „Was“ liefert und ins Detail geht (nicht irgendein Auto, sondern eine bestimmte Marke und Modell) und auch die Umgebung beschreibt. 3 ist der zweitbeste, da es ebenfalls viele Beschreibungen enthält. - -## 🚀 Herausforderung - -Versuche, die „Hinweis“-Technik mit dem Prompt zu nutzen: Vervollständige den Satz „Zeig mir ein Bild von einem roten Auto der Marke Volvo und “. Wie antwortet das Modell, und wie würdest du den Prompt verbessern? - -## Großartige Arbeit! Setze dein Lernen fort - -Möchtest du mehr über verschiedene Konzepte des Prompt Engineerings erfahren? Besuche die [Seite für weiterführendes Lernen](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst), um weitere großartige Ressourcen zu diesem Thema zu finden. - -Gehe weiter zu Lektion 5, wo wir uns [fortgeschrittene Prompt-Techniken](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) ansehen! - -**Haftungsausschluss**: -Dieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner Ursprungssprache gilt als maßgebliche Quelle. Für wichtige Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die aus der Nutzung dieser Übersetzung entstehen. \ No newline at end of file + + + + + + + diff --git a/translations/de/09-building-image-applications/README.md b/translations/de/09-building-image-applications/README.md index e2e0483ed..0e3cc44a4 100644 --- a/translations/de/09-building-image-applications/README.md +++ b/translations/de/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# Entwicklung von Bildgenerierungsanwendungen - -[![Entwicklung von Bildgenerierungsanwendungen](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.de.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLMs können mehr als nur Text generieren. Es ist auch möglich, Bilder aus Textbeschreibungen zu erzeugen. Bilder als Modalität zu haben, kann in vielen Bereichen sehr nützlich sein, von MedTech, Architektur, Tourismus, Spieleentwicklung und mehr. In diesem Kapitel schauen wir uns die zwei beliebtesten Bildgenerierungsmodelle an: DALL-E und Midjourney. - -## Einführung - -In dieser Lektion behandeln wir: - -- Bildgenerierung und warum sie nützlich ist. -- DALL-E und Midjourney: Was sie sind und wie sie funktionieren. -- Wie man eine Bildgenerierungsanwendung erstellt. - -## Lernziele - -Nach Abschluss dieser Lektion wirst du in der Lage sein: - -- Eine Bildgenerierungsanwendung zu erstellen. -- Grenzen für deine Anwendung mit Metaprompts zu definieren. -- Mit DALL-E und Midjourney zu arbeiten. - -## Warum eine Bildgenerierungsanwendung entwickeln? - -Bildgenerierungsanwendungen sind eine großartige Möglichkeit, die Fähigkeiten von Generativer KI zu erkunden. Sie können beispielsweise verwendet werden für: - -- **Bildbearbeitung und -synthese**. Du kannst Bilder für verschiedene Anwendungsfälle generieren, wie Bildbearbeitung und Bildsynthese. - -- **Anwendung in verschiedenen Branchen**. Sie können auch genutzt werden, um Bilder für verschiedene Branchen zu erzeugen, wie MedTech, Tourismus, Spieleentwicklung und mehr. - -## Szenario: Edu4All - -Im Rahmen dieser Lektion arbeiten wir weiterhin mit unserem Startup Edu4All. Die Schüler erstellen Bilder für ihre Aufgaben. Welche Bilder genau, entscheiden die Schüler selbst – es könnten Illustrationen für ihr eigenes Märchen sein, ein neuer Charakter für ihre Geschichte oder eine Visualisierung ihrer Ideen und Konzepte. - -So könnten die Schüler von Edu4All zum Beispiel Bilder generieren, wenn sie im Unterricht an Denkmälern arbeiten: - -![Edu4All Startup, Unterricht zu Denkmälern, Eiffelturm](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.de.png) - -mit einem Prompt wie - -> "Hund neben dem Eiffelturm im frühen Morgenlicht" - -## Was sind DALL-E und Midjourney? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) und [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) sind zwei der beliebtesten Bildgenerierungsmodelle, mit denen du Bilder anhand von Prompts erzeugen kannst. - -### DALL-E - -Beginnen wir mit DALL-E, einem Generativen KI-Modell, das Bilder aus Textbeschreibungen erzeugt. - -> [DALL-E ist eine Kombination aus zwei Modellen, CLIP und diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP** ist ein Modell, das Embeddings erzeugt, also numerische Darstellungen von Daten, aus Bildern und Text. - -- **Diffused attention** ist ein Modell, das Bilder aus Embeddings generiert. DALL-E wurde mit einem Datensatz aus Bildern und Text trainiert und kann Bilder aus Textbeschreibungen erzeugen. Zum Beispiel kann DALL-E Bilder von einer Katze mit Hut oder einem Hund mit Irokesenschnitt generieren. - -### Midjourney - -Midjourney funktioniert ähnlich wie DALL-E und erzeugt Bilder aus Textprompts. Midjourney kann ebenfalls Bilder generieren, z. B. „eine Katze mit Hut“ oder „ein Hund mit Irokesenschnitt“. - -![Von Midjourney generiertes Bild, mechanische Taube](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Bildquelle Wikipedia, Bild generiert von Midjourney_ - -## Wie funktionieren DALL-E und Midjourney? - -Zuerst [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). DALL-E ist ein Generatives KI-Modell, das auf der Transformer-Architektur basiert und einen _autoregressiven Transformer_ verwendet. - -Ein _autoregressiver Transformer_ definiert, wie ein Modell Bilder aus Textbeschreibungen generiert: Es erzeugt Pixel für Pixel, wobei jeder neue Pixel auf den bereits generierten Pixeln basiert. Dabei durchläuft es mehrere Schichten in einem neuronalen Netzwerk, bis das Bild fertiggestellt ist. - -Mit diesem Verfahren steuert DALL-E Attribute, Objekte, Eigenschaften und mehr im generierten Bild. DALL-E 2 und 3 bieten dabei noch mehr Kontrolle über das erzeugte Bild. - -## Deine erste Bildgenerierungsanwendung erstellen - -Was braucht man, um eine Bildgenerierungsanwendung zu bauen? Du benötigst folgende Bibliotheken: - -- **python-dotenv**: Es wird dringend empfohlen, diese Bibliothek zu verwenden, um deine Geheimnisse in einer _.env_-Datei vom Code getrennt zu halten. -- **openai**: Diese Bibliothek nutzt du, um mit der OpenAI API zu interagieren. -- **pillow**: Zum Arbeiten mit Bildern in Python. -- **requests**: Um HTTP-Anfragen zu stellen. - -1. Erstelle eine Datei _.env_ mit folgendem Inhalt: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Diese Informationen findest du im Azure-Portal für deine Ressource im Bereich „Keys and Endpoint“. - -1. Sammle die oben genannten Bibliotheken in einer Datei namens _requirements.txt_ wie folgt: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. Erstelle anschließend eine virtuelle Umgebung und installiere die Bibliotheken: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Für Windows verwende folgende Befehle, um die virtuelle Umgebung zu erstellen und zu aktivieren: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. Füge folgenden Code in eine Datei namens _app.py_ ein: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Erklärung des Codes: - -- Zuerst importieren wir die benötigten Bibliotheken, darunter die OpenAI-Bibliothek, dotenv, requests und Pillow. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Danach laden wir die Umgebungsvariablen aus der _.env_-Datei. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- Anschließend setzen wir den Endpunkt, den Schlüssel für die OpenAI API, Version und Typ. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- Danach generieren wir das Bild: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - Der obige Code liefert ein JSON-Objekt mit der URL des generierten Bildes. Diese URL können wir nutzen, um das Bild herunterzuladen und zu speichern. - -- Zum Schluss öffnen wir das Bild und zeigen es mit dem Standardbildbetrachter an: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Mehr Details zur Bildgenerierung - -Schauen wir uns den Code zur Bildgenerierung genauer an: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** ist der Textprompt, der zur Bildgenerierung verwendet wird. In diesem Fall: „Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils“. -- **size** ist die Größe des generierten Bildes. Hier erzeugen wir ein Bild mit 1024x1024 Pixeln. -- **n** ist die Anzahl der generierten Bilder. Hier erzeugen wir zwei Bilder. -- **temperature** ist ein Parameter, der die Zufälligkeit der Ausgabe eines Generativen KI-Modells steuert. Der Wert liegt zwischen 0 und 1, wobei 0 eine deterministische Ausgabe bedeutet und 1 eine zufällige. Der Standardwert ist 0,7. - -Es gibt noch weitere Möglichkeiten mit Bildern, die wir im nächsten Abschnitt behandeln. - -## Zusätzliche Funktionen der Bildgenerierung - -Du hast bisher gesehen, wie wir mit wenigen Zeilen Python-Code ein Bild generieren konnten. Es gibt jedoch noch mehr, was du mit Bildern machen kannst. - -Du kannst außerdem: - -- **Bearbeitungen durchführen**. Indem du ein bestehendes Bild, eine Maske und einen Prompt angibst, kannst du ein Bild verändern. Zum Beispiel kannst du einem Teil eines Bildes etwas hinzufügen. Stell dir unser Kaninchenbild vor: Du könntest dem Kaninchen einen Hut aufsetzen. Dazu gibst du das Bild, eine Maske (die den Bereich für die Änderung markiert) und einen Textprompt an, der beschreibt, was gemacht werden soll. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - Das Ausgangsbild enthält nur das Kaninchen, das Endbild zeigt das Kaninchen mit Hut. - -- **Variationen erstellen**. Die Idee ist, ein bestehendes Bild zu nehmen und Variationen davon zu erzeugen. Um eine Variation zu erstellen, gibst du ein Bild und einen Textprompt an und nutzt Code wie diesen: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Hinweis: Dies wird nur von OpenAI unterstützt. - -## Temperature - -Temperature ist ein Parameter, der die Zufälligkeit der Ausgabe eines Generativen KI-Modells steuert. Der Wert liegt zwischen 0 und 1, wobei 0 eine deterministische Ausgabe bedeutet und 1 eine zufällige. Der Standardwert ist 0,7. - -Schauen wir uns ein Beispiel an, wie Temperature wirkt, indem wir diesen Prompt zweimal ausführen: - -> Prompt: "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils" - -![Kaninchen auf Pferd mit Lutscher, Version 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.de.png) - -Nun führen wir denselben Prompt noch einmal aus, um zu sehen, dass wir nicht zweimal dasselbe Bild erhalten: - -![Generiertes Bild von Kaninchen auf Pferd](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.de.png) - -Wie du siehst, sind die Bilder ähnlich, aber nicht identisch. Versuchen wir, den Temperature-Wert auf 0,1 zu setzen und schauen, was passiert: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Temperature ändern - -Versuchen wir also, die Ausgabe deterministischer zu machen. Bei den zwei generierten Bildern sieht man, dass im ersten Bild ein Kaninchen zu sehen ist, im zweiten ein Pferd – die Bilder unterscheiden sich stark. - -Ändern wir daher unseren Code und setzen die Temperature auf 0, so: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Wenn du diesen Code ausführst, erhältst du diese zwei Bilder: - -- ![Temperature 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.de.png) -- ![Temperature 0, v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.de.png) - -Hier sieht man deutlich, wie sich die Bilder stärker ähneln. - -## Wie man Grenzen für die Anwendung mit Metaprompts definiert - -Mit unserer Demo können wir bereits Bilder für unsere Kunden generieren. Allerdings müssen wir Grenzen für unsere Anwendung setzen. - -Zum Beispiel wollen wir keine Bilder erzeugen, die nicht jugendfrei sind oder für Kinder ungeeignet. - -Das erreichen wir mit _Metaprompts_. Metaprompts sind Textprompts, die verwendet werden, um die Ausgabe eines Generativen KI-Modells zu steuern. So können wir sicherstellen, dass die generierten Bilder jugendfrei oder kindgerecht sind. - -### Wie funktioniert das? - -Wie funktionieren Metaprompts? - -Metaprompts sind Textprompts, die vor dem eigentlichen Textprompt stehen und die Ausgabe des Modells steuern. Sie werden in Anwendungen eingebettet, um die Ausgabe zu kontrollieren, indem sie den eigentlichen Prompt und den Metaprompt in einem einzigen Textprompt zusammenfassen. - -Ein Beispiel für einen Metaprompt wäre: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Schauen wir uns nun an, wie wir Metaprompts in unserer Demo verwenden können. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -Aus dem obigen Prompt siehst du, wie alle generierten Bilder den Metaprompt berücksichtigen. - -## Aufgabe – Lass die Schüler aktiv werden - -Wir haben Edu4All zu Beginn dieser Lektion vorgestellt. Jetzt ist es an der Zeit, die Schüler zu befähigen, Bilder für ihre Aufgaben zu generieren. - -Die Schüler sollen Bilder mit Denkmälern für ihre Aufgaben erstellen. Welche Denkmäler genau, entscheiden die Schüler selbst. Sie werden aufgefordert, ihre Kreativität einzusetzen und die Denkmäler in verschiedenen Kontexten darzustellen. - -## Lösung - -Hier ist eine mögliche Lösung: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Gute Arbeit! Setze dein Lernen fort - -Nach Abschluss dieser Lektion schau dir unsere [Generative AI Learning collection](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) an, um dein Wissen über Generative KI weiter auszubauen! - -Gehe weiter zu Lektion 10, in der wir uns anschauen, wie man [KI-Anwendungen mit Low-Code entwickelt](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst). - -**Haftungsausschluss**: -Dieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner Ursprungssprache gilt als maßgebliche Quelle. Für wichtige Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die aus der Nutzung dieser Übersetzung entstehen. \ No newline at end of file + + + + diff --git a/translations/de/12-designing-ux-for-ai-applications/README.md b/translations/de/12-designing-ux-for-ai-applications/README.md index f68c1f80e..d80259fc8 100644 --- a/translations/de/12-designing-ux-for-ai-applications/README.md +++ b/translations/de/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# Gestaltung der UX für KI-Anwendungen - -[![Gestaltung der UX für KI-Anwendungen](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.de.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Klicken Sie auf das Bild oben, um das Video zu dieser Lektion anzusehen)_ - -Die Benutzererfahrung ist ein sehr wichtiger Aspekt beim Erstellen von Apps. Nutzer müssen Ihre App effizient verwenden können, um Aufgaben zu erledigen. Effizienz ist das eine, aber Sie müssen Apps auch so gestalten, dass sie von allen genutzt werden können, also _barrierefrei_ sind. Dieses Kapitel konzentriert sich auf diesen Bereich, damit Sie hoffentlich eine App entwerfen, die Menschen gerne und problemlos verwenden. - -## Einführung - -Benutzererfahrung beschreibt, wie ein Nutzer mit einem bestimmten Produkt oder einer Dienstleistung interagiert und diese nutzt – sei es ein System, ein Werkzeug oder ein Design. Bei der Entwicklung von KI-Anwendungen achten Entwickler nicht nur darauf, dass die Benutzererfahrung effektiv ist, sondern auch ethisch. In dieser Lektion behandeln wir, wie man Künstliche Intelligenz (KI)-Anwendungen entwickelt, die auf die Bedürfnisse der Nutzer eingehen. - -Die Lektion umfasst folgende Themen: - -- Einführung in die Benutzererfahrung und das Verständnis der Nutzerbedürfnisse -- Gestaltung von KI-Anwendungen für Vertrauen und Transparenz -- Gestaltung von KI-Anwendungen für Zusammenarbeit und Feedback - -## Lernziele - -Nach dieser Lektion können Sie: - -- Verstehen, wie man KI-Anwendungen entwickelt, die den Bedürfnissen der Nutzer entsprechen. -- KI-Anwendungen gestalten, die Vertrauen und Zusammenarbeit fördern. - -### Voraussetzungen - -Nehmen Sie sich Zeit und lesen Sie mehr über [Benutzererfahrung und Design Thinking.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Einführung in die Benutzererfahrung und das Verständnis der Nutzerbedürfnisse - -In unserem fiktiven Bildungs-Startup haben wir zwei Hauptnutzergruppen: Lehrkräfte und Schüler*innen. Jede dieser Gruppen hat unterschiedliche Bedürfnisse. Ein nutzerzentriertes Design stellt den Nutzer in den Mittelpunkt, um sicherzustellen, dass die Produkte relevant und nützlich für die Zielgruppe sind. - -Die Anwendung sollte **nützlich, zuverlässig, barrierefrei und angenehm** sein, um eine gute Benutzererfahrung zu bieten. - -### Benutzerfreundlichkeit - -Nützlich zu sein bedeutet, dass die Anwendung Funktionen bietet, die ihrem Zweck entsprechen, wie z. B. die Automatisierung des Bewertungsprozesses oder das Erstellen von Lernkarten zur Wiederholung. Eine Anwendung, die den Bewertungsprozess automatisiert, sollte in der Lage sein, die Arbeiten der Schüler*innen anhand vordefinierter Kriterien genau und effizient zu bewerten. Ebenso sollte eine Anwendung, die Lernkarten generiert, relevante und vielfältige Fragen basierend auf ihren Daten erstellen können. - -### Zuverlässigkeit - -Zuverlässig zu sein bedeutet, dass die Anwendung ihre Aufgaben konsistent und fehlerfrei ausführt. Allerdings ist KI, wie Menschen auch, nicht perfekt und kann Fehler machen. Die Anwendungen können auf Fehler oder unerwartete Situationen stoßen, die menschliches Eingreifen oder Korrekturen erfordern. Wie gehen Sie mit Fehlern um? Im letzten Abschnitt dieser Lektion behandeln wir, wie KI-Systeme und Anwendungen für Zusammenarbeit und Feedback gestaltet werden. - -### Barrierefreiheit - -Barrierefreiheit bedeutet, die Benutzererfahrung auf Nutzer mit unterschiedlichen Fähigkeiten auszudehnen, einschließlich Menschen mit Behinderungen, damit niemand ausgeschlossen wird. Durch die Einhaltung von Barrierefreiheitsrichtlinien und -prinzipien werden KI-Lösungen inklusiver, nutzbarer und für alle Nutzer vorteilhafter. - -### Angenehm - -Angenehm zu sein bedeutet, dass die Anwendung Spaß macht und gerne genutzt wird. Eine ansprechende Benutzererfahrung kann sich positiv auf die Nutzer auswirken, sie dazu ermutigen, zur Anwendung zurückzukehren, und so den Geschäftserfolg steigern. - -![Bild, das UX-Aspekte in KI illustriert](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.de.png) - -Nicht jede Herausforderung lässt sich mit KI lösen. KI ergänzt Ihre Benutzererfahrung, sei es durch Automatisierung manueller Aufgaben oder durch Personalisierung der Nutzererlebnisse. - -## Gestaltung von KI-Anwendungen für Vertrauen und Transparenz - -Vertrauen aufzubauen ist entscheidend bei der Gestaltung von KI-Anwendungen. Vertrauen sorgt dafür, dass Nutzer sicher sind, dass die Anwendung ihre Aufgaben zuverlässig erledigt, konsistente Ergebnisse liefert und diese Ergebnisse ihren Bedürfnissen entsprechen. Ein Risiko in diesem Bereich ist Misstrauen und Übervertrauen. Misstrauen entsteht, wenn Nutzer wenig oder kein Vertrauen in ein KI-System haben, was dazu führt, dass sie Ihre Anwendung ablehnen. Übervertrauen entsteht, wenn Nutzer die Fähigkeiten eines KI-Systems überschätzen und ihm zu sehr vertrauen. Zum Beispiel könnte ein automatisiertes Bewertungssystem bei Übervertrauen dazu führen, dass Lehrkräfte nicht mehr alle Arbeiten überprüfen, um sicherzustellen, dass das System korrekt bewertet. Das kann zu unfairen oder ungenauen Noten für die Schüler*innen oder verpassten Chancen für Feedback und Verbesserungen führen. - -Zwei Wege, um Vertrauen in den Mittelpunkt des Designs zu stellen, sind Erklärbarkeit und Kontrolle. - -### Erklärbarkeit - -Wenn KI bei Entscheidungen hilft, wie z. B. beim Vermitteln von Wissen an zukünftige Generationen, ist es wichtig, dass Lehrkräfte und Eltern verstehen, wie KI-Entscheidungen getroffen werden. Das ist Erklärbarkeit – das Verständnis, wie KI-Anwendungen Entscheidungen fällen. Design für Erklärbarkeit beinhaltet, Beispiele dafür zu geben, was eine KI-Anwendung leisten kann. Statt „Starten Sie mit AI teacher“ könnte das System z. B. sagen: „Fasse deine Notizen für eine einfachere Wiederholung mit KI zusammen.“ - -![Startseite einer App mit klarer Darstellung der Erklärbarkeit in KI-Anwendungen](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.de.png) - -Ein weiteres Beispiel ist, wie KI Nutzerdaten und persönliche Daten verwendet. Ein Nutzer mit der Persona „Schüler“ könnte Einschränkungen basierend auf seiner Persona haben. Die KI darf vielleicht keine Antworten auf Fragen geben, kann aber den Nutzer anleiten, selbst über Lösungen nachzudenken. - -![KI beantwortet Fragen basierend auf der Persona](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.de.png) - -Ein letzter wichtiger Teil der Erklärbarkeit ist die Vereinfachung der Erklärungen. Schüler*innen und Lehrkräfte sind möglicherweise keine KI-Experten, daher sollten Erklärungen darüber, was die Anwendung kann oder nicht kann, einfach und verständlich sein. - -![Vereinfachte Erklärungen zu KI-Fähigkeiten](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.de.png) - -### Kontrolle - -Generative KI schafft eine Zusammenarbeit zwischen KI und Nutzer, bei der Nutzer z. B. Eingabeaufforderungen anpassen können, um unterschiedliche Ergebnisse zu erhalten. Außerdem sollten Nutzer nach der Ausgabe die Möglichkeit haben, die Ergebnisse zu verändern, um ein Gefühl von Kontrolle zu bekommen. Zum Beispiel können Sie bei Bing Ihre Eingabeaufforderung nach Format, Ton und Länge anpassen. Außerdem können Sie Änderungen an der Ausgabe vornehmen, wie unten gezeigt: - -![Bing-Suchergebnisse mit Optionen zur Anpassung der Eingabeaufforderung und Ausgabe](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.de.png) - -Eine weitere Funktion in Bing, die dem Nutzer Kontrolle über die Anwendung gibt, ist die Möglichkeit, der Nutzung der Daten durch die KI zuzustimmen oder sie abzulehnen. In einer Schul-App möchte ein Schüler vielleicht seine eigenen Notizen sowie die Materialien der Lehrkräfte als Lernmaterial verwenden. - -![Bing-Suchergebnisse mit Optionen zur Anpassung der Eingabeaufforderung und Ausgabe](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.de.png) - -> Beim Entwerfen von KI-Anwendungen ist Absichtlichkeit entscheidend, um zu verhindern, dass Nutzer der KI zu sehr vertrauen und unrealistische Erwartungen an ihre Fähigkeiten haben. Ein Weg, dies zu erreichen, ist, Reibung zwischen Eingabeaufforderungen und Ergebnissen zu schaffen. Erinnern Sie die Nutzer daran, dass dies KI ist und kein menschlicher Gesprächspartner. - -## Gestaltung von KI-Anwendungen für Zusammenarbeit und Feedback - -Wie bereits erwähnt, schafft generative KI eine Zusammenarbeit zwischen Nutzer und KI. Meistens gibt der Nutzer eine Eingabeaufforderung ein und die KI erzeugt eine Ausgabe. Was passiert, wenn die Ausgabe falsch ist? Wie geht die Anwendung mit Fehlern um, falls sie auftreten? Gibt die KI dem Nutzer die Schuld oder erklärt sie den Fehler? - -KI-Anwendungen sollten so gestaltet sein, dass sie Feedback empfangen und geben können. Das hilft nicht nur dem KI-System, sich zu verbessern, sondern baut auch Vertrauen bei den Nutzern auf. Eine Feedback-Schleife sollte im Design enthalten sein, zum Beispiel ein einfaches Daumen-hoch- oder Daumen-runter-Symbol für die Ausgabe. - -Eine weitere Möglichkeit ist, die Fähigkeiten und Grenzen des Systems klar zu kommunizieren. Wenn ein Nutzer eine Anfrage stellt, die über die Fähigkeiten der KI hinausgeht, sollte es auch eine Möglichkeit geben, damit umzugehen, wie im Folgenden gezeigt. - -![Feedback geben und Fehler behandeln](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.de.png) - -Systemfehler sind bei Anwendungen häufig, wenn Nutzer Unterstützung bei Informationen benötigen, die außerhalb des KI-Bereichs liegen, oder wenn die Anwendung eine Begrenzung hat, wie viele Fragen/Fächer ein Nutzer zusammenfassen kann. Zum Beispiel kann eine KI-Anwendung, die nur mit Daten zu bestimmten Fächern wie Geschichte und Mathematik trainiert wurde, keine Fragen zu Geografie beantworten. Um dem entgegenzuwirken, kann das KI-System eine Antwort geben wie: „Entschuldigung, unser Produkt wurde mit Daten zu folgenden Fächern trainiert..., ich kann Ihre Frage leider nicht beantworten.“ - -KI-Anwendungen sind nicht perfekt und werden Fehler machen. Beim Entwerfen Ihrer Anwendungen sollten Sie daher sicherstellen, dass Sie Raum für Nutzerfeedback und Fehlerbehandlung schaffen, die einfach und verständlich sind. - -## Aufgabe - -Nehmen Sie eine beliebige KI-App, die Sie bisher entwickelt haben, und überlegen Sie, wie Sie die folgenden Schritte in Ihrer App umsetzen können: - -- **Angenehm:** Überlegen Sie, wie Sie Ihre App angenehmer gestalten können. Fügen Sie Sie Erklärungen überall hinzu? Ermutigen Sie die Nutzer, die App zu erkunden? Wie formulieren Sie Ihre Fehlermeldungen? - -- **Benutzerfreundlichkeit:** Erstellen Sie eine Web-App. Stellen Sie sicher, dass Ihre App sowohl mit Maus als auch mit Tastatur navigierbar ist. - -- **Vertrauen und Transparenz:** Vertrauen Sie der KI und ihren Ergebnissen nicht blind. Überlegen Sie, wie Sie einen Menschen in den Prozess einbinden können, um die Ergebnisse zu überprüfen. Denken Sie auch über weitere Möglichkeiten nach, Vertrauen und Transparenz zu fördern, und setzen Sie diese um. - -- **Kontrolle:** Geben Sie den Nutzern Kontrolle über die Daten, die sie der Anwendung bereitstellen. Implementieren Sie eine Möglichkeit, dass Nutzer der Datenerfassung zustimmen oder widersprechen können. - -## Lernen Sie weiter! - -Nach Abschluss dieser Lektion schauen Sie sich unsere [Generative AI Learning collection](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) an, um Ihr Wissen über Generative KI weiter zu vertiefen! - -Gehen Sie zu Lektion 13, in der wir uns ansehen, wie man [KI-Anwendungen sichert](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**Haftungsausschluss**: -Dieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner Ursprungssprache ist als maßgebliche Quelle zu betrachten. Für wichtige Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die aus der Nutzung dieser Übersetzung entstehen. \ No newline at end of file + + + diff --git a/translations/de/README.md b/translations/de/README.md index a5c4792c8..b852a9eda 100644 --- a/translations/de/README.md +++ b/translations/de/README.md @@ -1,137 +1,12 @@ - -![Generative AI für Einsteiger](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.de.png) - -### 21 Lektionen, die alles vermitteln, was du wissen musst, um Generative AI-Anwendungen zu entwickeln - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Mehrsprachige Unterstützung - -#### Unterstützt durch GitHub Action (Automatisiert & immer aktuell) - -[Französisch](../fr/README.md) | [Spanisch](../es/README.md) | [Deutsch](./README.md) | [Russisch](../ru/README.md) | [Arabisch](../ar/README.md) | [Persisch (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinesisch (vereinfacht)](../zh/README.md) | [Chinesisch (traditionell, Macau)](../mo/README.md) | [Chinesisch (traditionell, Hongkong)](../hk/README.md) | [Chinesisch (traditionell, Taiwan)](../tw/README.md) | [Japanisch](../ja/README.md) | [Koreanisch](../ko/README.md) | [Hindi](../hi/README.md) | [Bengalisch](../bn/README.md) | [Marathi](../mr/README.md) | [Nepalesisch](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portugiesisch (Portugal)](../pt/README.md) | [Portugiesisch (Brasilien)](../br/README.md) | [Italienisch](../it/README.md) | [Polnisch](../pl/README.md) | [Türkisch](../tr/README.md) | [Griechisch](../el/README.md) | [Thailändisch](../th/README.md) | [Schwedisch](../sv/README.md) | [Dänisch](../da/README.md) | [Norwegisch](../no/README.md) | [Finnisch](../fi/README.md) | [Niederländisch](../nl/README.md) | [Hebräisch](../he/README.md) | [Vietnamesisch](../vi/README.md) | [Indonesisch](../id/README.md) | [Malaiisch](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Suaheli](../sw/README.md) | [Ungarisch](../hu/README.md) | [Tschechisch](../cs/README.md) | [Slowakisch](../sk/README.md) | [Rumänisch](../ro/README.md) | [Bulgarisch](../bg/README.md) | [Serbisch (Kyrillisch)](../sr/README.md) | [Kroatisch](../hr/README.md) | [Slowenisch](../sl/README.md) | [Ukrainisch](../uk/README.md) | [Birmanisch (Myanmar)](../my/README.md) - -# Generative AI für Einsteiger (Version 3) – Ein Kurs - -Lerne die Grundlagen zur Entwicklung von Generative AI-Anwendungen mit unserem umfassenden 21-Lektionen-Kurs von Microsoft Cloud Advocates. - -## 🌱 Erste Schritte - -Dieser Kurs besteht aus 21 Lektionen. Jede Lektion behandelt ein eigenes Thema, du kannst also dort starten, wo du möchtest! - -Die Lektionen sind entweder als „Learn“-Lektionen gekennzeichnet, die ein Generative AI-Konzept erklären, oder als „Build“-Lektionen, die ein Konzept und Codebeispiele in **Python** und **TypeScript** zeigen, wenn möglich. - -Für .NET-Entwickler gibt es [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -Jede Lektion enthält außerdem einen Abschnitt „Weiterlernen“ mit zusätzlichen Lernmaterialien. - -## Was du brauchst -### Um den Code dieses Kurses auszuführen, kannst du eines der folgenden verwenden: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) – **Lektionen:** „aoai-assignment“ - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) – **Lektionen:** „githubmodels“ - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) – **Lektionen:** „oai-assignment“ - -- Grundkenntnisse in Python oder TypeScript sind hilfreich – \*Für absolute Anfänger empfehlen wir diese [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) und [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) Kurse -- Ein GitHub-Konto, um [dieses gesamte Repository zu forken](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) und in deinem eigenen GitHub-Konto zu speichern - -Wir haben eine **[Kurs-Einrichtung](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** Lektion erstellt, die dir beim Einrichten deiner Entwicklungsumgebung hilft. - -Vergiss nicht, dieses Repo zu [starren (🌟)](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst), damit du es später leichter wiederfindest. - -## 🧠 Bereit für die Bereitstellung? - -Wenn du nach fortgeschritteneren Codebeispielen suchst, schau dir unsere [Sammlung von Generative AI Codebeispielen](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) in **Python** und **TypeScript** an. - -## 🗣️ Triff andere Lernende, erhalte Unterstützung - -Tritt unserem [offiziellen Azure AI Foundry Discord-Server](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) bei, um andere Lernende dieses Kurses zu treffen, dich zu vernetzen und Unterstützung zu bekommen. - -Stelle Fragen oder teile Feedback im [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum) auf GitHub. - -## 🚀 Baust du ein Startup auf? - -Melde dich beim [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) an, um **kostenlose OpenAI-Guthaben** und bis zu **150.000 $ Azure-Guthaben für den Zugriff auf OpenAI-Modelle über Azure OpenAI Services** zu erhalten. - -## 🙏 Möchtest du helfen? - -Hast du Vorschläge oder Fehler in Rechtschreibung oder Code gefunden? [Erstelle ein Issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) oder [sende einen Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 Jede Lektion enthält: - -- Eine kurze Videoeinführung in das Thema -- Eine schriftliche Lektion im README -- Python- und TypeScript-Codebeispiele, die Azure OpenAI und OpenAI API unterstützen -- Links zu zusätzlichen Ressourcen, um dein Lernen fortzusetzen - -## 🗃️ Lektionen - -| # | **Lektionslink** | **Beschreibung** | **Video** | **Zusätzliches Lernen** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Kurs-Einrichtung](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Wie du deine Entwicklungsumgebung einrichtest | Video folgt bald | [Mehr erfahren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Einführung in Generative AI und LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Verstehen, was Generative AI ist und wie Large Language Models (LLMs) funktionieren | [Video](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Mehr erfahren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Unterschiedliche LLMs erkunden und vergleichen](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Wie du das richtige Modell für deinen Anwendungsfall auswählst | [Video](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Mehr erfahren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Verantwortungsvoller Umgang mit Generative AI](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Wie man Generative AI-Anwendungen verantwortungsvoll entwickelt | [Video](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Mehr erfahren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Grundlagen des Prompt Engineerings verstehen](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Praktische Best Practices im Prompt Engineering | [Video](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Mehr erfahren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Fortgeschrittene Prompts erstellen](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Wie du Prompt Engineering-Techniken anwendest, die die Ergebnisse deiner Prompts verbessern | [Video](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Mehr erfahren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Erstellung von Textgenerierungsanwendungen](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Erstellen:** Eine Textgenerierungs-App mit Azure OpenAI / OpenAI API | [Video](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Mehr erfahren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Erstellung von Chat-Anwendungen](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Erstellen:** Techniken zum effizienten Aufbau und zur Integration von Chat-Anwendungen | [Video](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Mehr erfahren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Erstellung von Suchanwendungen mit Vektor-Datenbanken](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Erstellen:** Eine Suchanwendung, die Embeddings zur Datensuche verwendet | [Video](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Mehr erfahren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Erstellung von Bildgenerierungsanwendungen](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Erstellen:** Eine Anwendung zur Bildgenerierung | [Video](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Mehr erfahren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Erstellung von Low-Code KI-Anwendungen](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Erstellen:** Eine Generative KI-Anwendung mit Low-Code-Tools | [Video](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Mehr erfahren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Integration externer Anwendungen mit Function Calling](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Erstellen:** Was ist Function Calling und wie wird es in Anwendungen eingesetzt | [Video](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Mehr erfahren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [UX-Design für KI-Anwendungen](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Lernen:** Wie man UX-Design-Prinzipien bei der Entwicklung von Generative KI-Anwendungen anwendet | [Video](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Mehr erfahren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Absicherung Ihrer Generative KI-Anwendungen](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Lernen:** Bedrohungen und Risiken für KI-Systeme sowie Methoden zu deren Absicherung | [Video](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Mehr erfahren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [Der Lebenszyklus von Generative KI-Anwendungen](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Lernen:** Werkzeuge und Kennzahlen zur Verwaltung des LLM-Lebenszyklus und LLMOps | [Video](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Mehr erfahren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) und Vektor-Datenbanken](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Erstellen:** Eine Anwendung mit einem RAG-Framework, das Embeddings aus Vektor-Datenbanken abruft | [Video](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Mehr erfahren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Open Source Modelle und Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Erstellen:** Eine Anwendung mit Open Source Modellen von Hugging Face | [Video](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Mehr erfahren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [KI-Agenten](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Erstellen:** Eine Anwendung mit einem KI-Agenten-Framework | [Video](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Mehr erfahren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [Feinabstimmung von LLMs](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Lernen:** Was, warum und wie man LLMs feinabstimmt | [Video](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Mehr erfahren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Erstellung mit SLMs](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Lernen:** Die Vorteile der Arbeit mit Small Language Models | Video folgt in Kürze | [Mehr erfahren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Erstellung mit Mistral-Modellen](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Lernen:** Die Eigenschaften und Unterschiede der Mistral-Familie von Modellen | Video folgt in Kürze | [Mehr erfahren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Erstellung mit Meta-Modellen](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Lernen:** Die Eigenschaften und Unterschiede der Meta-Familie von Modellen | Video folgt in Kürze | [Mehr erfahren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Besonderer Dank - -Besonderer Dank an [**John Aziz**](https://www.linkedin.com/in/john0isaac/) für die Erstellung aller GitHub Actions und Workflows - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) für wichtige Beiträge zu jeder Lektion, die das Lernerlebnis und den Code verbessern. - -## 🎒 Weitere Kurse - -Unser Team bietet weitere Kurse an! Schau dir an: - -- [**NEU** Model Context Protocol für Einsteiger](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [KI-Agenten für Einsteiger](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Generative KI für Einsteiger mit .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Generative KI für Einsteiger mit JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML für Einsteiger](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Data Science für Einsteiger](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [KI für Einsteiger](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Cybersecurity für Einsteiger](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Webentwicklung für Einsteiger](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT für Einsteiger](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR-Entwicklung für Einsteiger](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [GitHub Copilot für AI-Paired Programming meistern](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [GitHub Copilot für C#/.NET-Entwickler meistern](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Wähle dein eigenes Copilot-Abenteuer](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Haftungsausschluss**: -Dieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner Ursprungssprache ist als maßgebliche Quelle zu betrachten. Für wichtige Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die aus der Nutzung dieser Übersetzung entstehen. \ No newline at end of file + + + + diff --git a/translations/el/00-course-setup/01-setup-cloud.md b/translations/el/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..25de4846d --- /dev/null +++ b/translations/el/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/el/00-course-setup/02-setup-local.md b/translations/el/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..2d8447105 --- /dev/null +++ b/translations/el/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/el/00-course-setup/03-providers.md b/translations/el/00-course-setup/03-providers.md new file mode 100644 index 000000000..de6bafaa4 --- /dev/null +++ b/translations/el/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/el/00-course-setup/README.md b/translations/el/00-course-setup/README.md index 9762391da..f9cc627e5 100644 --- a/translations/el/00-course-setup/README.md +++ b/translations/el/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# Ξεκινώντας με αυτό το μάθημα - -Είμαστε πολύ ενθουσιασμένοι που ξεκινάτε αυτό το μάθημα και θα δείτε τι μπορείτε να εμπνευστείτε να δημιουργήσετε με τη Γενετική Τεχνητή Νοημοσύνη! - -Για να διασφαλίσουμε την επιτυχία σας, αυτή η σελίδα περιγράφει τα βήματα εγκατάστασης, τις τεχνικές απαιτήσεις και πού να ζητήσετε βοήθεια αν χρειαστεί. - -## Βήματα Εγκατάστασης - -Για να ξεκινήσετε να παρακολουθείτε αυτό το μάθημα, θα χρειαστεί να ολοκληρώσετε τα παρακάτω βήματα. - -### 1. Κλωνοποιήστε αυτό το αποθετήριο - -[Κλωνοποιήστε ολόκληρο το αποθετήριο](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) στον δικό σας λογαριασμό GitHub για να μπορείτε να τροποποιήσετε οποιονδήποτε κώδικα και να ολοκληρώσετε τις προκλήσεις. Μπορείτε επίσης να [σημειώσετε με αστέρι (🌟) αυτό το αποθετήριο](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) για να το βρείτε πιο εύκολα μαζί με σχετικά αποθετήρια. - -### 2. Δημιουργήστε ένα codespace - -Για να αποφύγετε προβλήματα με εξαρτήσεις κατά την εκτέλεση του κώδικα, προτείνουμε να τρέξετε αυτό το μάθημα σε ένα [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst). - -Αυτό μπορεί να δημιουργηθεί επιλέγοντας την επιλογή `Code` στην κλωνοποιημένη έκδοση αυτού του αποθετηρίου και επιλέγοντας την επιλογή **Codespaces**. - -![Παράθυρο διαλόγου που δείχνει κουμπιά για τη δημιουργία codespace](../../../00-course-setup/images/who-will-pay.webp) - -### 3. Αποθήκευση των API Keys σας - -Η ασφάλεια των API keys σας είναι σημαντική όταν δημιουργείτε οποιαδήποτε εφαρμογή. Συνιστούμε να μην αποθηκεύετε τα API keys απευθείας στον κώδικά σας. Η αποθήκευση αυτών των στοιχείων σε δημόσιο αποθετήριο μπορεί να προκαλέσει προβλήματα ασφαλείας και ακόμη και ανεπιθύμητα κόστη αν χρησιμοποιηθούν από κακόβουλους χρήστες. -Ακολουθεί ένας οδηγός βήμα προς βήμα για το πώς να δημιουργήσετε ένα αρχείο `.env` για Python και να προσθέσετε το `GITHUB_TOKEN`: - -1. **Πλοηγηθείτε στον φάκελο του έργου σας**: Ανοίξτε το τερματικό ή τη γραμμή εντολών και πλοηγηθείτε στον ριζικό φάκελο του έργου όπου θέλετε να δημιουργήσετε το αρχείο `.env`. - - ```bash - cd path/to/your/project - ``` - -2. **Δημιουργήστε το αρχείο `.env`**: Χρησιμοποιήστε τον αγαπημένο σας επεξεργαστή κειμένου για να δημιουργήσετε ένα νέο αρχείο με όνομα `.env`. Αν χρησιμοποιείτε τη γραμμή εντολών, μπορείτε να χρησιμοποιήσετε `touch` (σε συστήματα Unix) ή `echo` (σε Windows): - - Συστήματα Unix: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **Επεξεργαστείτε το αρχείο `.env`**: Ανοίξτε το αρχείο `.env` σε έναν επεξεργαστή κειμένου (π.χ. VS Code, Notepad++ ή οποιονδήποτε άλλο). Προσθέστε την παρακάτω γραμμή, αντικαθιστώντας το `your_github_token_here` με το πραγματικό σας GitHub token: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Αποθηκεύστε το αρχείο**: Αποθηκεύστε τις αλλαγές και κλείστε τον επεξεργαστή κειμένου. - -5. **Εγκαταστήστε το `python-dotenv`**: Αν δεν το έχετε ήδη, θα χρειαστεί να εγκαταστήσετε το πακέτο `python-dotenv` για να φορτώνετε τις μεταβλητές περιβάλλοντος από το αρχείο `.env` στην Python εφαρμογή σας. Μπορείτε να το εγκαταστήσετε με `pip`: - - ```bash - pip install python-dotenv - ``` - -6. **Φορτώστε τις μεταβλητές περιβάλλοντος στο Python script σας**: Στο Python script σας, χρησιμοποιήστε το πακέτο `python-dotenv` για να φορτώσετε τις μεταβλητές περιβάλλοντος από το αρχείο `.env`: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -Αυτό ήταν! Δημιουργήσατε με επιτυχία ένα αρχείο `.env`, προσθέσατε το GitHub token σας και το φορτώσατε στην Python εφαρμογή σας. - -## Πώς να τρέξετε τοπικά στον υπολογιστή σας - -Για να τρέξετε τον κώδικα τοπικά στον υπολογιστή σας, θα χρειαστεί να έχετε εγκαταστήσει κάποια έκδοση του [Python](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -Για να χρησιμοποιήσετε το αποθετήριο, πρέπει να το κλωνοποιήσετε: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -Μόλις έχετε όλα τα αρχεία, μπορείτε να ξεκινήσετε! - -## Προαιρετικά Βήματα - -### Εγκατάσταση Miniconda - -Το [Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) είναι ένας ελαφρύς εγκαταστάτης για την εγκατάσταση του [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), της Python, καθώς και μερικών πακέτων. -Το Conda είναι ένας διαχειριστής πακέτων που διευκολύνει τη ρύθμιση και την εναλλαγή μεταξύ διαφορετικών [**εικονικών περιβαλλόντων**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) Python και πακέτων. Είναι επίσης χρήσιμο για την εγκατάσταση πακέτων που δεν είναι διαθέσιμα μέσω του `pip`. - -Μπορείτε να ακολουθήσετε τον [οδηγό εγκατάστασης MiniConda](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) για να το ρυθμίσετε. - -Αφού εγκαταστήσετε το Miniconda, πρέπει να κλωνοποιήσετε το [αποθετήριο](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (αν δεν το έχετε ήδη κάνει). - -Στη συνέχεια, πρέπει να δημιουργήσετε ένα εικονικό περιβάλλον. Για να το κάνετε αυτό με το Conda, δημιουργήστε ένα νέο αρχείο περιβάλλοντος (_environment.yml_). Αν ακολουθείτε το μάθημα μέσω Codespaces, δημιουργήστε το μέσα στον φάκελο `.devcontainer`, δηλαδή `.devcontainer/environment.yml`. - -Συμπληρώστε το αρχείο περιβάλλοντος με το παρακάτω απόσπασμα: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Αν αντιμετωπίσετε σφάλματα με το conda, μπορείτε να εγκαταστήσετε χειροκίνητα τις Microsoft AI Libraries με την παρακάτω εντολή στο τερματικό. - -``` -conda install -c microsoft azure-ai-ml -``` - -Το αρχείο περιβάλλοντος καθορίζει τις εξαρτήσεις που χρειαζόμαστε. Το `` αναφέρεται στο όνομα που θέλετε να δώσετε στο Conda περιβάλλον σας, και το `` είναι η έκδοση της Python που θέλετε να χρησιμοποιήσετε, για παράδειγμα, το `3` είναι η πιο πρόσφατη κύρια έκδοση της Python. - -Αφού το κάνετε αυτό, μπορείτε να δημιουργήσετε το Conda περιβάλλον σας εκτελώντας τις παρακάτω εντολές στη γραμμή εντολών/τερματικό: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -Ανατρέξτε στον [οδηγό περιβαλλόντων Conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst) αν αντιμετωπίσετε προβλήματα. - -### Χρήση του Visual Studio Code με την επέκταση υποστήριξης Python - -Συνιστούμε τη χρήση του επεξεργαστή [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) με την εγκατεστημένη [επέκταση υποστήριξης Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) για αυτό το μάθημα. Ωστόσο, πρόκειται περισσότερο για σύσταση παρά για απαραίτητη προϋπόθεση. - -> **Note**: Ανοίγοντας το αποθετήριο του μαθήματος στο VS Code, έχετε τη δυνατότητα να ρυθμίσετε το έργο μέσα σε ένα container. Αυτό οφείλεται στον [ειδικό φάκελο `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) που υπάρχει στο αποθετήριο του μαθήματος. Θα αναφερθούμε σε αυτό αργότερα. - -> **Note**: Μόλις κλωνοποιήσετε και ανοίξετε τον φάκελο στο VS Code, θα σας προταθεί αυτόματα να εγκαταστήσετε την επέκταση υποστήριξης Python. - -> **Note**: Αν το VS Code σας προτείνει να ξανανοίξετε το αποθετήριο μέσα σε container, απορρίψτε αυτό το αίτημα για να χρησιμοποιήσετε την τοπικά εγκατεστημένη έκδοση της Python. - -### Χρήση του Jupyter στον περιηγητή - -Μπορείτε επίσης να δουλέψετε στο έργο χρησιμοποιώντας το περιβάλλον [Jupyter](https://jupyter.org?WT.mc_id=academic-105485-koreyst) απευθείας μέσα από τον περιηγητή σας. Τόσο το κλασικό Jupyter όσο και το [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) προσφέρουν ένα ευχάριστο περιβάλλον ανάπτυξης με λειτουργίες όπως αυτόματη συμπλήρωση, επισήμανση κώδικα κ.ά. - -Για να ξεκινήσετε το Jupyter τοπικά, ανοίξτε το τερματικό/γραμμή εντολών, πλοηγηθείτε στον φάκελο του μαθήματος και εκτελέστε: - -```bash -jupyter notebook -``` - -ή - -```bash -jupyterhub -``` - -Αυτό θα ξεκινήσει μια παρουσία Jupyter και η διεύθυνση URL για πρόσβαση θα εμφανιστεί στο παράθυρο της γραμμής εντολών. - -Μόλις αποκτήσετε πρόσβαση στη διεύθυνση URL, θα δείτε το περίγραμμα του μαθήματος και θα μπορείτε να πλοηγηθείτε σε οποιοδήποτε αρχείο `*.ipynb`. Για παράδειγμα, `08-building-search-applications/python/oai-solution.ipynb`. - -### Εκτέλεση μέσα σε container - -Μια εναλλακτική στο να ρυθμίσετε τα πάντα στον υπολογιστή σας ή στο Codespace είναι να χρησιμοποιήσετε ένα [container](../../../00-course-setup/). Ο ειδικός φάκελος `.devcontainer` μέσα στο αποθετήριο του μαθήματος επιτρέπει στο VS Code να ρυθμίσει το έργο μέσα σε container. Εκτός των Codespaces, αυτό απαιτεί την εγκατάσταση του Docker και, ειλικρινά, περιλαμβάνει λίγη δουλειά, οπότε το προτείνουμε μόνο σε όσους έχουν εμπειρία με containers. - -Ένας από τους καλύτερους τρόπους να κρατήσετε τα API keys σας ασφαλή όταν χρησιμοποιείτε GitHub Codespaces είναι μέσω των Codespace Secrets. Παρακαλούμε ακολουθήστε τον οδηγό [Codespaces secrets management](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) για να μάθετε περισσότερα. - -## Μαθήματα και Τεχνικές Απαιτήσεις - -Το μάθημα περιλαμβάνει 6 μαθήματα θεωρίας και 6 μαθήματα κώδικα. - -Για τα μαθήματα κώδικα, χρησιμοποιούμε την υπηρεσία Azure OpenAI. Θα χρειαστείτε πρόσβαση στην υπηρεσία Azure OpenAI και ένα API key για να τρέξετε αυτόν τον κώδικα. Μπορείτε να κάνετε αίτηση για πρόσβαση [συμπληρώνοντας αυτή την αίτηση](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -Ενώ περιμένετε να επεξεργαστεί η αίτησή σας, κάθε μάθημα κώδικα περιλαμβάνει επίσης ένα αρχείο `README.md` όπου μπορείτε να δείτε τον κώδικα και τα αποτελέσματα. - -## Χρήση της υπηρεσίας Azure OpenAI για πρώτη φορά - -Αν είναι η πρώτη φορά που δουλεύετε με την υπηρεσία Azure OpenAI, παρακαλούμε ακολουθήστε αυτόν τον οδηγό για το πώς να [δημιουργήσετε και να αναπτύξετε έναν πόρο Azure OpenAI Service.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## Χρήση του OpenAI API για πρώτη φορά - -Αν είναι η πρώτη φορά που δουλεύετε με το OpenAI API, παρακαλούμε ακολουθήστε τον οδηγό για το πώς να [δημιουργήσετε και να χρησιμοποιήσετε το Interface.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## Γνωρίστε άλλους μαθητές - -Έχουμε δημιουργήσει κανάλια στον επίσημο [AI Community Discord server](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) για να γνωρίσετε άλλους μαθητές. Είναι ένας εξαιρετικός τρόπος να δικτυωθείτε με άλλους επιχειρηματίες, δημιουργούς, φοιτητές και όσους θέλουν να εξελιχθούν στη Γενετική Τεχνητή Νοημοσύνη. - -[![Join discord channel](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -Η ομάδα του έργου θα είναι επίσης παρούσα σε αυτόν τον Discord server για να βοηθήσει τους μαθητές. - -## Συνεισφορά - -Αυτό το μάθημα είναι μια πρωτοβουλία ανοιχτού κώδικα. Αν δείτε σημεία βελτίωσης ή προβλήματα, παρακαλούμε δημιουργήστε ένα [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) ή καταχωρήστε ένα [GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -Η ομάδα του έργου παρακολουθεί όλες τις συνεισφορές. Η συνεισφορά σε ανοιχτό κώδικα είναι ένας υπέροχος τρόπος να χτίσετε την καριέρα σας στη Γενετική Τεχνητή Νοημοσύνη. - -Οι περισσότερες συνεισφορές απαιτούν να συμφωνήσετε με μια Συμφωνία Άδειας Συνεισφοράς (CLA) που δηλώνει ότι έχετε το δικαίωμα και πράγματι παραχωρείτε τα δικαιώματα χρήσης της συνεισφοράς σας. Για λεπτομέρειες, επισκεφθείτε την [ιστοσελίδα CLA, Contributor License Agreement](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Σημαντικό: όταν μεταφράζετε κείμενο σε αυτό το αποθετήριο, παρακαλούμε βεβαιωθείτε ότι δεν χρησιμοποιείτε μηχανική μετάφραση. Θα επαληθεύσουμε τις μεταφράσεις μέσω της κοινότητας, οπότε παρακαλούμε να αναλαμβάνετε μεταφράσεις μόνο σε γλώσσες που γνωρίζετε καλά. - -Όταν υποβάλλετε ένα pull request, ένα CLA-bot θα καθορίσει αυτόματα αν χρειάζεται να παρέχετε CLA και θα διακοσμήσει το PR ανάλογα (π.χ. με ετικέτα, σχόλιο). Απλώς ακολουθήστε τις οδηγίες του bot. Θα χρειαστεί να το κάνετε μόνο μία φορά σε όλα τα αποθετήρια που χρησιμοποιούν το CLA μας. - -Αυτό το έργο έχει υιοθετήσει τον [Κώδικα Δεοντολογίας Ανοιχτού Κώδικα της Microsoft](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst). Για περισσότερες πληροφορίες διαβάστε τις Συχνές Ερωτήσεις για τον Κώδικα Δεοντολογίας ή επικοινωνήστε με το [Email opencode](opencode@microsoft.com) για επιπλέον ερωτήσεις ή σχόλια. - -## Ας Ξεκινήσουμε - -Τώρα που ολο - -**Αποποίηση ευθυνών**: -Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης AI [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που επιδιώκουμε την ακρίβεια, παρακαλούμε να γνωρίζετε ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη γλώσσα του θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης. \ No newline at end of file + + + + diff --git a/translations/el/00-course-setup/SETUP.md b/translations/el/00-course-setup/SETUP.md deleted file mode 100644 index d3e1e1406..000000000 --- a/translations/el/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# Ρύθμιση του Περιβάλλοντος Ανάπτυξής σας - -Έχουμε ρυθμίσει αυτό το αποθετήριο και το μάθημα με ένα [development container](https://containers.dev?WT.mc_id=academic-105485-koreyst) που διαθέτει ένα Universal runtime το οποίο υποστηρίζει ανάπτυξη σε Python3, .NET, Node.js και Java. Η σχετική διαμόρφωση ορίζεται στο αρχείο `devcontainer.json` που βρίσκεται στον φάκελο `.devcontainer/` στη ρίζα αυτού του αποθετηρίου. - -Για να ενεργοποιήσετε το dev container, εκκινήστε το σε [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (για cloud-hosted runtime) ή σε [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (για τοπικό runtime στη συσκευή σας). Διαβάστε [αυτή την τεκμηρίωση](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) για περισσότερες λεπτομέρειες σχετικά με τη λειτουργία των dev containers μέσα στο VS Code. - -> [!TIP] -> Συνιστούμε τη χρήση του GitHub Codespaces για γρήγορη εκκίνηση με ελάχιστη προσπάθεια. Παρέχει έναν γενναιόδωρο [δωρεάν όριο χρήσης](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) για προσωπικούς λογαριασμούς. Ρυθμίστε [χρονικά όρια](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) για να σταματούν ή να διαγράφονται ανενεργά codespaces ώστε να μεγιστοποιήσετε τη χρήση του ορίου σας. - -## 1. Εκτέλεση Ασκήσεων - -Κάθε μάθημα θα έχει _προαιρετικές_ ασκήσεις που μπορεί να παρέχονται σε μία ή περισσότερες γλώσσες προγραμματισμού, όπως: Python, .NET/C#, Java και JavaScript/TypeScript. Αυτή η ενότητα παρέχει γενικές οδηγίες σχετικά με την εκτέλεση αυτών των ασκήσεων. - -### 1.1 Ασκήσεις Python - -Οι ασκήσεις Python παρέχονται είτε ως εφαρμογές (`.py` αρχεία) είτε ως Jupyter notebooks (`.ipynb` αρχεία). -- Για να τρέξετε το notebook, ανοίξτε το στο Visual Studio Code, κάντε κλικ στο _Select Kernel_ (πάνω δεξιά) και επιλέξτε την προεπιλεγμένη επιλογή Python 3 που εμφανίζεται. Τώρα μπορείτε να κάνετε _Run All_ για να εκτελέσετε το notebook. -- Για να τρέξετε εφαρμογές Python από τη γραμμή εντολών, ακολουθήστε τις συγκεκριμένες οδηγίες της άσκησης για να βεβαιωθείτε ότι επιλέγετε τα σωστά αρχεία και παρέχετε τα απαιτούμενα ορίσματα. - -## 2. Ρύθμιση Παρόχων - -Οι ασκήσεις **μπορεί** επίσης να ρυθμιστούν ώστε να λειτουργούν με μία ή περισσότερες αναπτύξεις Μεγάλων Γλωσσικών Μοντέλων (LLM) μέσω υποστηριζόμενου παρόχου υπηρεσιών όπως OpenAI, Azure ή Hugging Face. Αυτοί παρέχουν ένα _hosted endpoint_ (API) στο οποίο μπορούμε να έχουμε πρόσβαση προγραμματιστικά με τα σωστά διαπιστευτήρια (API key ή token). Σε αυτό το μάθημα, συζητάμε τους παρακάτω παρόχους: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) με διάφορα μοντέλα, συμπεριλαμβανομένης της βασικής σειράς GPT. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) για μοντέλα OpenAI με έμφαση στην επιχειρησιακή ετοιμότητα - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) για ανοιχτού κώδικα μοντέλα και inference server - -**Θα χρειαστεί να χρησιμοποιήσετε τους δικούς σας λογαριασμούς για αυτές τις ασκήσεις**. Οι ασκήσεις είναι προαιρετικές, οπότε μπορείτε να επιλέξετε να ρυθμίσετε έναν, όλους ή κανέναν από τους παρόχους ανάλογα με τα ενδιαφέροντά σας. Μερικές οδηγίες για εγγραφή: - -| Εγγραφή | Κόστος | API Key | Playground | Σχόλια | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst) | [Τιμολόγηση](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst) | [Βασισμένο σε project](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [No-Code, Web](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Διαθέσιμα Πολλαπλά Μοντέλα | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst) | [Τιμολόγηση](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst) | [SDK Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Studio Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Απαιτείται Προέγκριση Πρόσβασης](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) | -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Τιμολόγηση](https://huggingface.co/pricing) | [Access Tokens](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst) | [Το Hugging Chat έχει περιορισμένα μοντέλα](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Ακολουθήστε τις παρακάτω οδηγίες για να _ρυθμίσετε_ αυτό το αποθετήριο ώστε να λειτουργεί με διαφορετικούς παρόχους. Οι ασκήσεις που απαιτούν συγκεκριμένο πάροχο θα περιέχουν ένα από αυτά τα tags στο όνομα αρχείου τους: - - `aoai` - απαιτεί Azure OpenAI endpoint, key - - `oai` - απαιτεί OpenAI endpoint, key - - `hf` - απαιτεί Hugging Face token - -Μπορείτε να ρυθμίσετε έναν, κανέναν ή όλους τους παρόχους. Οι σχετικές ασκήσεις απλά θα εμφανίσουν σφάλμα αν λείπουν τα διαπιστευτήρια. - -### 2.1. Δημιουργία αρχείου `.env` - -Υποθέτουμε ότι έχετε ήδη διαβάσει τις παραπάνω οδηγίες, έχετε εγγραφεί στον αντίστοιχο πάροχο και έχετε λάβει τα απαιτούμενα διαπιστευτήρια αυθεντικοποίησης (API_KEY ή token). Στην περίπτωση του Azure OpenAI, υποθέτουμε επίσης ότι έχετε μια έγκυρη ανάπτυξη Azure OpenAI Service (endpoint) με τουλάχιστον ένα μοντέλο GPT αναπτυγμένο για chat completion. - -Το επόμενο βήμα είναι να ρυθμίσετε τις **τοπικές μεταβλητές περιβάλλοντος** ως εξής: - -1. Αναζητήστε στον ριζικό φάκελο ένα αρχείο `.env.copy` που θα έχει περιεχόμενο όπως το παρακάτω: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Αντιγράψτε αυτό το αρχείο σε `.env` χρησιμοποιώντας την παρακάτω εντολή. Αυτό το αρχείο είναι _gitignore-d_, ώστε να κρατά τα μυστικά ασφαλή. - - ```bash - cp .env.copy .env - ``` - -3. Συμπληρώστε τις τιμές (αντικαταστήστε τα placeholders στα δεξιά του `=`) όπως περιγράφεται στην επόμενη ενότητα. - -3. (Προαιρετικό) Αν χρησιμοποιείτε GitHub Codespaces, έχετε την επιλογή να αποθηκεύσετε τις μεταβλητές περιβάλλοντος ως _Codespaces secrets_ συνδεδεμένα με αυτό το αποθετήριο. Σε αυτή την περίπτωση, δεν θα χρειαστεί να ρυθμίσετε το τοπικό αρχείο .env. **Ωστόσο, σημειώστε ότι αυτή η επιλογή λειτουργεί μόνο αν χρησιμοποιείτε GitHub Codespaces.** Θα χρειαστεί να ρυθμίσετε το αρχείο .env αν χρησιμοποιείτε Docker Desktop. - -### 2.2. Συμπλήρωση αρχείου `.env` - -Ας ρίξουμε μια γρήγορη ματιά στα ονόματα των μεταβλητών για να κατανοήσουμε τι αντιπροσωπεύουν: - -| Μεταβλητή | Περιγραφή | -| :--- | :--- | -| HUGGING_FACE_API_KEY | Αυτό είναι το token πρόσβασης χρήστη που έχετε ρυθμίσει στο προφίλ σας | -| OPENAI_API_KEY | Αυτό είναι το κλειδί εξουσιοδότησης για χρήση της υπηρεσίας σε μη Azure OpenAI endpoints | -| AZURE_OPENAI_API_KEY | Αυτό είναι το κλειδί εξουσιοδότησης για χρήση της υπηρεσίας Azure OpenAI | -| AZURE_OPENAI_ENDPOINT | Αυτό είναι το αναπτυγμένο endpoint για έναν πόρο Azure OpenAI | -| AZURE_OPENAI_DEPLOYMENT | Αυτό είναι το endpoint ανάπτυξης μοντέλου _text generation_ | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | Αυτό είναι το endpoint ανάπτυξης μοντέλου _text embeddings_ | -| | | - -Σημείωση: Οι δύο τελευταίες μεταβλητές του Azure OpenAI αντιστοιχούν σε προεπιλεγμένα μοντέλα για chat completion (παραγωγή κειμένου) και αναζήτηση με διανύσματα (embeddings) αντίστοιχα. Οι οδηγίες για τη ρύθμισή τους θα οριστούν στις σχετικές ασκήσεις. - -### 2.3 Ρύθμιση Azure: Από το Portal - -Οι τιμές για το Azure OpenAI endpoint και το κλειδί θα βρεθούν στο [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst), οπότε ας ξεκινήσουμε από εκεί. - -1. Μεταβείτε στο [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -2. Κάντε κλικ στην επιλογή **Keys and Endpoint** στο πλαϊνό μενού (αριστερά). -3. Κάντε κλικ στο **Show Keys** - θα δείτε τα εξής: KEY 1, KEY 2 και Endpoint. -4. Χρησιμοποιήστε την τιμή του KEY 1 για το AZURE_OPENAI_API_KEY -5. Χρησιμοποιήστε την τιμή του Endpoint για το AZURE_OPENAI_ENDPOINT - -Στη συνέχεια, χρειαζόμαστε τα endpoints για τα συγκεκριμένα μοντέλα που έχετε αναπτύξει. - -1. Κάντε κλικ στην επιλογή **Model deployments** στο πλαϊνό μενού (αριστερά) για τον πόρο Azure OpenAI. -2. Στη σελίδα που ανοίγει, κάντε κλικ στο **Manage Deployments** - -Αυτό θα σας μεταφέρει στην ιστοσελίδα Azure OpenAI Studio, όπου θα βρείτε τις υπόλοιπες τιμές όπως περιγράφεται παρακάτω. - -### 2.4 Ρύθμιση Azure: Από το Studio - -1. Μεταβείτε στο [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **από τον πόρο σας** όπως περιγράφτηκε παραπάνω. -2. Κάντε κλικ στην καρτέλα **Deployments** (πλαϊνό μενού, αριστερά) για να δείτε τα μοντέλα που είναι ήδη αναπτυγμένα. -3. Αν το επιθυμητό μοντέλο δεν είναι αναπτυγμένο, χρησιμοποιήστε το **Create new deployment** για να το αναπτύξετε. -4. Θα χρειαστείτε ένα μοντέλο _text-generation_ - προτείνουμε: **gpt-35-turbo** -5. Θα χρειαστείτε ένα μοντέλο _text-embedding_ - προτείνουμε **text-embedding-ada-002** - -Τώρα ενημερώστε τις μεταβλητές περιβάλλοντος ώστε να αντικατοπτρίζουν το _Deployment name_ που χρησιμοποιήθηκε. Συνήθως αυτό είναι το ίδιο με το όνομα του μοντέλου, εκτός αν το έχετε αλλάξει ρητά. Για παράδειγμα, μπορεί να έχετε: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**Μην ξεχάσετε να αποθηκεύσετε το αρχείο .env όταν τελειώσετε**. Μπορείτε τώρα να κλείσετε το αρχείο και να επιστρέψετε στις οδηγίες για την εκτέλεση του notebook. - -### 2.5 Ρύθμιση OpenAI: Από το Προφίλ - -Το κλειδί API του OpenAI μπορείτε να το βρείτε στον [λογαριασμό σας στο OpenAI](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). Αν δεν έχετε, μπορείτε να εγγραφείτε και να δημιουργήσετε ένα κλειδί API. Μόλις το αποκτήσετε, μπορείτε να το χρησιμοποιήσετε για να συμπληρώσετε τη μεταβλητή `OPENAI_API_KEY` στο αρχείο `.env`. - -### 2.6 Ρύθμιση Hugging Face: Από το Προφίλ - -Το token σας στο Hugging Face βρίσκεται στο προφίλ σας στην ενότητα [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). Μην το δημοσιοποιείτε ή μοιράζεστε δημόσια. Αντίθετα, δημιουργήστε ένα νέο token για τη χρήση αυτού του έργου και αντιγράψτε το στο αρχείο `.env` στη μεταβλητή `HUGGING_FACE_API_KEY`. _Σημείωση:_ Τεχνικά αυτό δεν είναι API key, αλλά χρησιμοποιείται για αυθεντικοποίηση, οπότε διατηρούμε αυτή την ονομασία για λόγους συνέπειας. - -**Αποποίηση ευθυνών**: -Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης AI [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που επιδιώκουμε την ακρίβεια, παρακαλούμε να γνωρίζετε ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη γλώσσα του θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης. \ No newline at end of file diff --git a/translations/el/04-prompt-engineering-fundamentals/README.md b/translations/el/04-prompt-engineering-fundamentals/README.md index 7919734a5..2fe0ae88b 100644 --- a/translations/el/04-prompt-engineering-fundamentals/README.md +++ b/translations/el/04-prompt-engineering-fundamentals/README.md @@ -1,413 +1,15 @@ - -# Θεμελιώδεις Αρχές Μηχανικής Προτροπών - -[![Θεμελιώδεις Αρχές Μηχανικής Προτροπών](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.el.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Εισαγωγή -Αυτό το μάθημα καλύπτει βασικές έννοιες και τεχνικές για τη δημιουργία αποτελεσματικών προτροπών σε γενετικά μοντέλα AI. Ο τρόπος που γράφετε την προτροπή σας σε ένα LLM έχει επίσης σημασία. Μια προσεκτικά σχεδιασμένη προτροπή μπορεί να επιτύχει καλύτερη ποιότητα απάντησης. Αλλά τι ακριβώς σημαίνουν οι όροι _προτροπή_ και _μηχανική προτροπών_; Και πώς βελτιώνω την _είσοδο_ της προτροπής που στέλνω στο LLM; Αυτά είναι τα ερωτήματα που θα προσπαθήσουμε να απαντήσουμε σε αυτό και το επόμενο κεφάλαιο. - -Η _Γενετική Τεχνητή Νοημοσύνη_ είναι ικανή να δημιουργεί νέο περιεχόμενο (π.χ. κείμενο, εικόνες, ήχο, κώδικα κ.ά.) ως απάντηση σε αιτήματα χρηστών. Το πετυχαίνει αυτό χρησιμοποιώντας _Μεγάλα Γλωσσικά Μοντέλα_ όπως η σειρά GPT της OpenAI ("Generative Pre-trained Transformer") που έχουν εκπαιδευτεί για χρήση φυσικής γλώσσας και κώδικα. - -Οι χρήστες πλέον μπορούν να αλληλεπιδρούν με αυτά τα μοντέλα χρησιμοποιώντας οικείες μεθόδους όπως η συνομιλία, χωρίς να απαιτείται τεχνική γνώση ή εκπαίδευση. Τα μοντέλα είναι _βασισμένα σε προτροπές_ - οι χρήστες στέλνουν ένα κείμενο εισόδου (προτροπή) και λαμβάνουν την απάντηση της AI (ολοκλήρωση). Μπορούν στη συνέχεια να "συνομιλήσουν με την AI" επαναληπτικά, σε πολυ-γύρους συνομιλίες, βελτιώνοντας την προτροπή τους μέχρι η απάντηση να ανταποκρίνεται στις προσδοκίες τους. - -Οι "Προτροπές" γίνονται πλέον η κύρια _διεπαφή προγραμματισμού_ για εφαρμογές γενετικής AI, λέγοντας στα μοντέλα τι να κάνουν και επηρεάζοντας την ποιότητα των απαντήσεων που επιστρέφονται. Η "Μηχανική Προτροπών" είναι ένας ταχέως αναπτυσσόμενος τομέας μελέτης που εστιάζει στο _σχεδιασμό και την βελτιστοποίηση_ των προτροπών για να παρέχει συνεπείς και ποιοτικές απαντήσεις σε μεγάλη κλίμακα. - -## Στόχοι Μάθησης - -Σε αυτό το μάθημα, μαθαίνουμε τι είναι η Μηχανική Προτροπών, γιατί έχει σημασία και πώς μπορούμε να δημιουργήσουμε πιο αποτελεσματικές προτροπές για ένα συγκεκριμένο μοντέλο και στόχο εφαρμογής. Θα κατανοήσουμε βασικές έννοιες και βέλτιστες πρακτικές για τη μηχανική προτροπών - και θα γνωρίσουμε ένα διαδραστικό περιβάλλον Jupyter Notebooks "sandbox" όπου μπορούμε να δούμε αυτές τις έννοιες να εφαρμόζονται σε πραγματικά παραδείγματα. - -Στο τέλος αυτού του μαθήματος θα είμαστε σε θέση να: - -1. Εξηγήσουμε τι είναι η μηχανική προτροπών και γιατί έχει σημασία. -2. Περιγράψουμε τα συστατικά μιας προτροπής και πώς χρησιμοποιούνται. -3. Μάθουμε βέλτιστες πρακτικές και τεχνικές για μηχανική προτροπών. -4. Εφαρμόσουμε τις τεχνικές που μάθαμε σε πραγματικά παραδείγματα, χρησιμοποιώντας ένα OpenAI endpoint. - -## Βασικοί Όροι - -Μηχανική Προτροπών: Η πρακτική του σχεδιασμού και της βελτίωσης εισόδων για να καθοδηγήσουν τα μοντέλα AI προς την παραγωγή επιθυμητών αποτελεσμάτων. -Tokenization: Η διαδικασία μετατροπής κειμένου σε μικρότερες μονάδες, που ονομάζονται tokens, τις οποίες ένα μοντέλο μπορεί να κατανοήσει και να επεξεργαστεί. -Instruction-Tuned LLMs: Μεγάλα Γλωσσικά Μοντέλα (LLMs) που έχουν βελτιωθεί με συγκεκριμένες οδηγίες για να αυξήσουν την ακρίβεια και τη σχετικότητα των απαντήσεών τους. - -## Περιβάλλον Μάθησης Sandbox - -Η μηχανική προτροπών είναι προς το παρόν περισσότερο τέχνη παρά επιστήμη. Ο καλύτερος τρόπος να βελτιώσουμε την αντίληψή μας γι’ αυτήν είναι να _ασκηθούμε περισσότερο_ και να υιοθετήσουμε μια προσέγγιση δοκιμής και λάθους που συνδυάζει την εμπειρία στον τομέα εφαρμογής με τις προτεινόμενες τεχνικές και βελτιστοποιήσεις ειδικές για το μοντέλο. - -Το Jupyter Notebook που συνοδεύει αυτό το μάθημα παρέχει ένα περιβάλλον _sandbox_ όπου μπορείτε να δοκιμάσετε όσα μαθαίνετε - καθώς προχωράτε ή ως μέρος της πρόκλησης κώδικα στο τέλος. Για να εκτελέσετε τις ασκήσεις, θα χρειαστείτε: - -1. **Ένα κλειδί API Azure OpenAI** - το endpoint υπηρεσίας για ένα αναπτυγμένο LLM. -2. **Ένα περιβάλλον εκτέλεσης Python** - στο οποίο μπορεί να τρέξει το Notebook. -3. **Τοπικές Μεταβλητές Περιβάλλοντος** - _ολοκληρώστε τώρα τα βήματα [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) για να είστε έτοιμοι_. - -Το notebook περιλαμβάνει _αρχικές_ ασκήσεις - αλλά ενθαρρύνεστε να προσθέσετε δικές σας _Markdown_ (περιγραφή) και _Κώδικα_ (αιτήματα προτροπών) ενότητες για να δοκιμάσετε περισσότερα παραδείγματα ή ιδέες - και να χτίσετε την αντίληψή σας για το σχεδιασμό προτροπών. - -## Εικονογραφημένος Οδηγός - -Θέλετε να πάρετε μια συνολική εικόνα για το τι καλύπτει αυτό το μάθημα πριν ξεκινήσετε; Ρίξτε μια ματιά σε αυτόν τον εικονογραφημένο οδηγό, που σας δίνει μια αίσθηση των βασικών θεμάτων και των σημαντικών σημείων για να σκεφτείτε σε κάθε ένα. Ο οδικός χάρτης του μαθήματος σας οδηγεί από την κατανόηση των βασικών εννοιών και προκλήσεων μέχρι την αντιμετώπισή τους με σχετικές τεχνικές μηχανικής προτροπών και βέλτιστες πρακτικές. Σημειώστε ότι η ενότητα "Προχωρημένες Τεχνικές" σε αυτόν τον οδηγό αναφέρεται σε περιεχόμενο που καλύπτεται στο _επόμενο_ κεφάλαιο αυτού του προγράμματος. - -![Εικονογραφημένος Οδηγός για τη Μηχανική Προτροπών](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.el.png) - -## Η Startup μας - -Τώρα, ας μιλήσουμε για το πώς _αυτό το θέμα_ σχετίζεται με την αποστολή της startup μας να [φέρουμε καινοτομία AI στην εκπαίδευση](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). Θέλουμε να δημιουργήσουμε εφαρμογές με AI που υποστηρίζουν _προσωποποιημένη μάθηση_ - οπότε ας σκεφτούμε πώς διαφορετικοί χρήστες της εφαρμογής μας μπορεί να "σχεδιάζουν" προτροπές: - -- **Διαχειριστές** μπορεί να ζητούν από την AI να _αναλύσει δεδομένα προγράμματος σπουδών για να εντοπίσει κενά στην κάλυψη_. Η AI μπορεί να συνοψίσει τα αποτελέσματα ή να τα οπτικοποιήσει με κώδικα. -- **Εκπαιδευτικοί** μπορεί να ζητούν από την AI να _δημιουργήσει ένα σχέδιο μαθήματος για συγκεκριμένο κοινό και θέμα_. Η AI μπορεί να κατασκευάσει το εξατομικευμένο σχέδιο σε καθορισμένη μορφή. -- **Μαθητές** μπορεί να ζητούν από την AI να _τους διδάξει σε ένα δύσκολο μάθημα_. Η AI μπορεί τώρα να καθοδηγήσει τους μαθητές με μαθήματα, υποδείξεις και παραδείγματα προσαρμοσμένα στο επίπεδό τους. - -Αυτά είναι μόνο η κορυφή του παγόβουνου. Ρίξτε μια ματιά στο [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) - μια βιβλιοθήκη ανοιχτού κώδικα με προτροπές επιμελημένες από ειδικούς στην εκπαίδευση - για να πάρετε μια ευρύτερη εικόνα των δυνατοτήτων! _Δοκιμάστε να τρέξετε μερικές από αυτές τις προτροπές στο sandbox ή χρησιμοποιώντας το OpenAI Playground για να δείτε τι συμβαίνει!_ - - - -## Τι είναι η Μηχανική Προτροπών; - -Ξεκινήσαμε αυτό το μάθημα ορίζοντας τη **Μηχανική Προτροπών** ως τη διαδικασία _σχεδιασμού και βελτιστοποίησης_ κειμενικών εισόδων (προτροπών) για να παρέχουν συνεπείς και ποιοτικές απαντήσεις (ολοκληρώσεις) για έναν συγκεκριμένο στόχο εφαρμογής και μοντέλο. Μπορούμε να το σκεφτούμε ως μια διαδικασία δύο βημάτων: - -- _σχεδιασμός_ της αρχικής προτροπής για ένα συγκεκριμένο μοντέλο και στόχο -- _βελτίωση_ της προτροπής επαναληπτικά για να βελτιωθεί η ποιότητα της απάντησης - -Αυτή είναι αναγκαστικά μια διαδικασία δοκιμής και λάθους που απαιτεί διαίσθηση και προσπάθεια από τον χρήστη για να επιτευχθούν βέλτιστα αποτελέσματα. Γιατί λοιπόν είναι σημαντική; Για να απαντήσουμε σε αυτό, πρέπει πρώτα να κατανοήσουμε τρεις έννοιες: - -- _Tokenization_ = πώς το μοντέλο "βλέπει" την προτροπή -- _Base LLMs_ = πώς το βασικό μοντέλο "επεξεργάζεται" μια προτροπή -- _Instruction-Tuned LLMs_ = πώς το μοντέλο πλέον μπορεί να "κατανοεί εργασίες" - -### Tokenization - -Ένα LLM βλέπει τις προτροπές ως _ακολουθία tokens_ όπου διαφορετικά μοντέλα (ή εκδόσεις ενός μοντέλου) μπορούν να μετατρέψουν την ίδια προτροπή σε tokens με διαφορετικούς τρόπους. Επειδή τα LLM εκπαιδεύονται σε tokens (και όχι σε ακατέργαστο κείμενο), ο τρόπος που οι προτροπές μετατρέπονται σε tokens επηρεάζει άμεσα την ποιότητα της παραγόμενης απάντησης. - -Για να αποκτήσετε μια αίσθηση του πώς λειτουργεί το tokenization, δοκιμάστε εργαλεία όπως ο [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) που φαίνεται παρακάτω. Αντιγράψτε την προτροπή σας - και δείτε πώς μετατρέπεται σε tokens, προσέχοντας πώς χειρίζονται οι χαρακτήρες κενών και τα σημεία στίξης. Σημειώστε ότι το παράδειγμα δείχνει ένα παλαιότερο LLM (GPT-3) - οπότε η δοκιμή με νεότερο μοντέλο μπορεί να δώσει διαφορετικό αποτέλεσμα. - -![Tokenization](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.el.png) - -### Έννοια: Βασικά Μοντέλα - -Μόλις μια προτροπή μετατραπεί σε tokens, η κύρια λειτουργία του ["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (ή βασικού μοντέλου) είναι να προβλέψει το επόμενο token στην ακολουθία. Επειδή τα LLM εκπαιδεύονται σε τεράστια σύνολα κειμένων, έχουν καλή αίσθηση των στατιστικών σχέσεων μεταξύ των tokens και μπορούν να κάνουν αυτή την πρόβλεψη με κάποια βεβαιότητα. Σημειώστε ότι δεν κατανοούν το _νόημα_ των λέξεων στην προτροπή ή το token· απλώς βλέπουν ένα μοτίβο που μπορούν να "ολοκληρώσουν" με την επόμενη πρόβλεψή τους. Μπορούν να συνεχίσουν να προβλέπουν την ακολουθία μέχρι να διακοπεί από παρέμβαση χρήστη ή κάποιο προκαθορισμένο όρο. - -Θέλετε να δείτε πώς λειτουργεί η ολοκλήρωση βασισμένη σε προτροπές; Εισάγετε την παραπάνω προτροπή στο Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) με τις προεπιλεγμένες ρυθμίσεις. Το σύστημα έχει ρυθμιστεί να αντιμετωπίζει τις προτροπές ως αιτήματα για πληροφορίες - οπότε θα δείτε μια ολοκλήρωση που ικανοποιεί αυτό το πλαίσιο. - -Αλλά τι γίνεται αν ο χρήστης θέλει να δει κάτι συγκεκριμένο που πληροί κάποια κριτήρια ή στόχο εργασίας; Εδώ μπαίνουν τα _instruction-tuned_ LLMs. - -![Base LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.el.png) - -### Έννοια: Instruction Tuned LLMs - -Ένα [Instruction Tuned LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) ξεκινά από το βασικό μοντέλο και το βελτιώνει με παραδείγματα ή ζεύγη εισόδου/εξόδου (π.χ. πολυ-γύρους "μηνύματα") που περιέχουν σαφείς οδηγίες - και η απάντηση της AI προσπαθεί να ακολουθήσει αυτές τις οδηγίες. - -Αυτό χρησιμοποιεί τεχνικές όπως η Ενισχυτική Μάθηση με Ανθρώπινη Ανατροφοδότηση (RLHF) που εκπαιδεύουν το μοντέλο να _ακολουθεί οδηγίες_ και να _μαθαίνει από την ανατροφοδότηση_, ώστε να παράγει απαντήσεις πιο κατάλληλες για πρακτικές εφαρμογές και πιο σχετικές με τους στόχους του χρήστη. - -Ας το δοκιμάσουμε - επανεξετάστε την παραπάνω προτροπή, αλλά τώρα αλλάξτε το _μήνυμα συστήματος_ ώστε να παρέχει την ακόλουθη οδηγία ως πλαίσιο: - -> _Συνοψίστε το περιεχόμενο που σας παρέχεται για έναν μαθητή δευτέρας τάξης. Κρατήστε το αποτέλεσμα σε μία παράγραφο με 3-5 σημεία._ - -Βλέπετε πώς το αποτέλεσμα πλέον προσαρμόζεται για να αντανακλά τον επιθυμητό στόχο και μορφή; Ένας εκπαιδευτικός μπορεί τώρα να χρησιμοποιήσει απευθείας αυτή την απάντηση στις διαφάνειές του για το μάθημα. - -![Instruction Tuned LLM Chat Completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.el.png) - -## Γιατί χρειαζόμαστε τη Μηχανική Προτροπών; - -Τώρα που ξέρουμε πώς τα LLM επεξεργάζονται τις προτροπές, ας μιλήσουμε για το _γιατί_ χρειαζόμαστε τη μηχανική προτροπών. Η απάντηση βρίσκεται στο γεγονός ότι τα τρέχοντα LLM παρουσιάζουν μια σειρά προκλήσεων που καθιστούν πιο δύσκολη την επίτευξη _αξιόπιστων και συνεπών ολοκληρώσεων_ χωρίς προσπάθεια στον σχεδιασμό και τη βελτιστοποίηση των προτροπών. Για παράδειγμα: - -1. **Οι απαντήσεις των μοντέλων είναι στοχαστικές.** Η _ίδια προτροπή_ πιθαν -# Σχέδιο Μαθήματος: Ο Πόλεμος των Αρειανών του 2076 - -## Εισαγωγή -Ο Πόλεμος των Αρειανών του 2076 αποτελεί ένα σημαντικό γεγονός στην ιστορία της ανθρωπότητας και της εξερεύνησης του διαστήματος. Σε αυτό το μάθημα, θα εξερευνήσουμε τα αίτια, τις κύριες μάχες, και τις συνέπειες αυτού του πολέμου. - -## Στόχοι Μαθήματος -- Να κατανοήσουν οι μαθητές τα αίτια που οδήγησαν στον Πόλεμο των Αρειανών. -- Να αναγνωρίσουν τις βασικές μάχες και στρατηγικές που χρησιμοποιήθηκαν. -- Να αναλύσουν τις επιπτώσεις του πολέμου στην κοινωνία και την τεχνολογία. -- Να ενθαρρυνθεί η κριτική σκέψη σχετικά με τις συνέπειες του πολέμου. - -## Υλικά -- Χάρτες του Άρη και της Γης -- Βίντεο με αναπαραστάσεις των μαχών -- Άρθρα και αποσπάσματα από μαρτυρίες -- Διαδραστικός πίνακας - -## Δραστηριότητες - -### 1. Εισαγωγική Συζήτηση (15 λεπτά) -- Συζήτηση για το τι γνωρίζουν οι μαθητές για τον Άρη και τις αποικίες εκεί. -- Εισαγωγή στο ιστορικό πλαίσιο του 2076. - -### 2. Παρουσίαση: Αίτια του Πολέμου (20 λεπτά) -- Παρουσίαση των πολιτικών, οικονομικών και κοινωνικών παραγόντων που οδήγησαν στη σύγκρουση. - -### 3. Ανάλυση Μάχης (30 λεπτά) -- Εξέταση των σημαντικότερων μαχών. -- Χρήση χαρτών και βίντεο για καλύτερη κατανόηση. - -### 4. Ομαδική Εργασία: Επιπτώσεις του Πολέμου (25 λεπτά) -- Οι μαθητές χωρίζονται σε ομάδες και συζητούν τις συνέπειες του πολέμου σε διάφορους τομείς. -- Παρουσίαση των συμπερασμάτων στην τάξη. - -### 5. Συμπεράσματα και Αναστοχασμός (10 λεπτά) -- Συζήτηση για το τι μπορούμε να μάθουμε από τον Πόλεμο των Αρειανών. -- Σύνδεση με σύγχρονα ζητήματα ειρήνης και διαστημικής εξερεύνησης. - -## Αξιολόγηση -- Συμμετοχή στις συζητήσεις και τις δραστηριότητες. -- Παρουσίαση ομαδικής εργασίας. -- Μικρό τεστ γνώσεων στο τέλος του μαθήματος. - -## Σημειώσεις για τον Εκπαιδευτικό -- Προσαρμόστε το επίπεδο δυσκολίας ανάλογα με την ηλικία των μαθητών. -- Ενθαρρύνετε την ενεργή συμμετοχή και την κριτική σκέψη. -- Χρησιμοποιήστε οπτικοακουστικό υλικό για να κάνετε το μάθημα πιο ενδιαφέρον. -Μια αναζήτηση στο διαδίκτυο μου έδειξε ότι υπήρχαν φανταστικές αφηγήσεις (π.χ., τηλεοπτικές σειρές ή βιβλία) για πολέμους στον Άρη - αλλά καμία το 2076. Η κοινή λογική επίσης μας λέει ότι το 2076 είναι _στο μέλλον_ και επομένως, δεν μπορεί να συνδεθεί με ένα πραγματικό γεγονός. - -Τι συμβαίνει λοιπόν όταν τρέχουμε αυτό το prompt με διαφορετικούς παρόχους LLM; - -> **Απάντηση 1**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.el.png) - -> **Απάντηση 2**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.el.png) - -> **Απάντηση 3**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.el.png) - -Όπως αναμενόταν, κάθε μοντέλο (ή έκδοση μοντέλου) παράγει ελαφρώς διαφορετικές απαντήσεις χάρη στη στοχαστική συμπεριφορά και τις διαφορές στις δυνατότητες του μοντέλου. Για παράδειγμα, ένα μοντέλο απευθύνεται σε κοινό 8ης τάξης ενώ το άλλο υποθέτει μαθητή λυκείου. Όμως και τα τρία μοντέλα παρήγαγαν απαντήσεις που θα μπορούσαν να πείσουν έναν μη ενημερωμένο χρήστη ότι το γεγονός ήταν πραγματικό. - -Τεχνικές prompt engineering όπως το _metaprompting_ και η _ρύθμιση θερμοκρασίας_ μπορεί να μειώσουν σε κάποιο βαθμό τις κατασκευές του μοντέλου. Νέες _αρχιτεκτονικές_ prompt engineering ενσωματώνουν επίσης νέα εργαλεία και τεχνικές ομαλά στη ροή του prompt, για να μετριάσουν ή να μειώσουν κάποιες από αυτές τις επιπτώσεις. - -## Μελέτη Περίπτωσης: GitHub Copilot - -Ας κλείσουμε αυτή την ενότητα παίρνοντας μια ιδέα για το πώς χρησιμοποιείται το prompt engineering σε πραγματικές λύσεις, εξετάζοντας μια Μελέτη Περίπτωσης: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -Το GitHub Copilot είναι ο "AI Συνεργάτης Προγραμματισμού" σου - μετατρέπει τα κείμενα σε ολοκληρώσεις κώδικα και είναι ενσωματωμένο στο περιβάλλον ανάπτυξής σου (π.χ., Visual Studio Code) για μια απρόσκοπτη εμπειρία χρήστη. Όπως τεκμηριώνεται στη σειρά των παρακάτω blogs, η αρχική έκδοση βασιζόταν στο μοντέλο OpenAI Codex - με τους μηχανικούς να συνειδητοποιούν γρήγορα την ανάγκη για fine-tuning του μοντέλου και ανάπτυξη καλύτερων τεχνικών prompt engineering, για βελτίωση της ποιότητας του κώδικα. Τον Ιούλιο, παρουσίασαν [ένα βελτιωμένο AI μοντέλο που ξεπερνά το Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) για ακόμα πιο γρήγορες προτάσεις. - -Διάβασε τις αναρτήσεις με τη σειρά, για να ακολουθήσεις το ταξίδι μάθησής τους. - -- **Μάιος 2023** | [Το GitHub Copilot βελτιώνεται στην κατανόηση του κώδικά σου](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **Μάιος 2023** | [Μέσα στο GitHub: Εργασία με τα LLMs πίσω από το GitHub Copilot](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Ιούνιος 2023** | [Πώς να γράψεις καλύτερα prompts για το GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Ιούλιος 2023** | [.. Το GitHub Copilot ξεπερνά το Codex με βελτιωμένο AI μοντέλο](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Ιούλιος 2023** | [Οδηγός Προγραμματιστή για το Prompt Engineering και τα LLMs](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **Σεπτέμβριος 2023** | [Πώς να φτιάξεις μια επιχειρησιακή εφαρμογή LLM: Μαθήματα από το GitHub Copilot](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -Μπορείς επίσης να περιηγηθείς στο [Engineering blog](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) για περισσότερες αναρτήσεις όπως [αυτή](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) που δείχνει πώς αυτά τα μοντέλα και οι τεχνικές _εφαρμόζονται_ για την υλοποίηση πραγματικών εφαρμογών. - ---- - - - -## Κατασκευή Prompt - -Έχουμε δει γιατί το prompt engineering είναι σημαντικό - τώρα ας κατανοήσουμε πώς _κατασκευάζονται_ τα prompts ώστε να αξιολογήσουμε διαφορετικές τεχνικές για πιο αποτελεσματικό σχεδιασμό prompt. - -### Απλό Prompt - -Ας ξεκινήσουμε με το απλό prompt: μια κειμενική είσοδος που στέλνεται στο μοντέλο χωρίς άλλο πλαίσιο. Να ένα παράδειγμα - όταν στέλνουμε τις πρώτες λέξεις του εθνικού ύμνου των ΗΠΑ στο OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst), αυτό αμέσως _συμπληρώνει_ την απάντηση με τις επόμενες γραμμές, δείχνοντας τη βασική συμπεριφορά πρόβλεψης. - -| Prompt (Είσοδος) | Ολοκλήρωση (Έξοδος) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | Ακούγεται σαν να ξεκινάς τους στίχους του "The Star-Spangled Banner," του εθνικού ύμνου των Ηνωμένων Πολιτειών. Οι πλήρεις στίχοι είναι ... | - -### Σύνθετο Prompt - -Τώρα ας προσθέσουμε πλαίσιο και οδηγίες σε αυτό το απλό prompt. Το [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) μας επιτρέπει να κατασκευάσουμε ένα σύνθετο prompt ως συλλογή _μηνυμάτων_ με: - -- Ζεύγη εισόδου/εξόδου που αντικατοπτρίζουν την _είσοδο_ του χρήστη και την _απάντηση_ του βοηθού. -- Μήνυμα συστήματος που ορίζει το πλαίσιο για τη συμπεριφορά ή την προσωπικότητα του βοηθού. - -Το αίτημα είναι τώρα στη μορφή παρακάτω, όπου η _τοκενικοποίηση_ αποτυπώνει αποτελεσματικά τις σχετικές πληροφορίες από το πλαίσιο και τη συνομιλία. Τώρα, η αλλαγή του πλαισίου συστήματος μπορεί να έχει τόσο σημαντική επίδραση στην ποιότητα των ολοκληρώσεων, όσο και οι παρεχόμενες είσοδοι χρήστη. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Prompt με Οδηγίες - -Στα παραπάνω παραδείγματα, το prompt του χρήστη ήταν ένα απλό κείμενο που μπορεί να ερμηνευτεί ως αίτημα για πληροφορίες. Με τα _instruction_ prompts, μπορούμε να χρησιμοποιήσουμε αυτό το κείμενο για να καθορίσουμε μια εργασία με περισσότερες λεπτομέρειες, παρέχοντας καλύτερη καθοδήγηση στην AI. Να ένα παράδειγμα: - -| Prompt (Είσοδος) | Ολοκλήρωση (Έξοδος) | Τύπος Οδηγίας | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Γράψε μια περιγραφή του Εμφυλίου Πολέμου | _επιστράφηκε μια απλή παράγραφος_ | Απλή | -| Γράψε μια περιγραφή του Εμφυλίου Πολέμου. Παρέθεσε βασικές ημερομηνίες και γεγονότα και περιέγραψε τη σημασία τους | _επιστράφηκε μια παράγραφος ακολουθούμενη από λίστα με βασικές ημερομηνίες γεγονότων και περιγραφές_ | Σύνθετη | -| Γράψε μια περιγραφή του Εμφυλίου Πολέμου σε 1 παράγραφο. Παρέθεσε 3 σημεία με βασικές ημερομηνίες και τη σημασία τους. Παρέθεσε 3 ακόμα σημεία με βασικές ιστορικές προσωπικότητες και τις συνεισφορές τους. Επιστρέφει το αποτέλεσμα ως αρχείο JSON | _επιστρέφει πιο εκτενείς λεπτομέρειες σε πλαίσιο κειμένου, μορφοποιημένο ως JSON που μπορείς να αντιγράψεις και να επαληθεύσεις αν χρειαστεί_ | Σύνθετο. Μορφοποιημένο. | - -## Κύριο Περιεχόμενο - -Στα παραπάνω παραδείγματα, το prompt ήταν ακόμα αρκετά ανοιχτό, επιτρέποντας στο LLM να αποφασίσει ποιο μέρος του προεκπαιδευμένου συνόλου δεδομένων του είναι σχετικό. Με το μοτίβο σχεδιασμού _primary content_, το κείμενο εισόδου χωρίζεται σε δύο μέρη: - -- μια οδηγία (ενέργεια) -- σχετικό περιεχόμενο (που επηρεάζει την ενέργεια) - -Να ένα παράδειγμα όπου η οδηγία είναι "περίληψη σε 2 προτάσεις". - -| Prompt (Είσοδος) | Ολοκλήρωση (Έξοδος) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Ο Δίας είναι ο πέμπτος πλανήτης από τον Ήλιο και ο μεγαλύτερος στο Ηλιακό Σύστημα. Είναι ένας γίγαντας αερίων με μάζα το ένα χιλιοστό της μάζας του Ήλιου, αλλά δυόμισι φορές τη μάζα όλων των άλλων πλανητών του Ηλιακού Συστήματος μαζί. Ο Δίας είναι ένα από τα πιο φωτεινά αντικείμενα που φαίνονται με γυμνό μάτι στον νυχτερινό ουρανό και ήταν γνωστός σε αρχαίους πολιτισμούς πριν από την καταγεγραμμένη ιστορία. Ονομάζεται από τον ρωμαϊκό θεό Δία.[19] Όταν τον παρατηρούμε από τη Γη, ο Δίας μπορεί να είναι αρκετά φωτεινός ώστε το ανακλώμενο φως του να ρίχνει ορατές σκιές,[20] και είναι κατά μέσο όρο το τρίτο πιο φωτεινό φυσικό αντικείμενο στον νυχτερινό ουρανό μετά τη Σελήνη και την Αφροδίτη.
**Περίληψη σε 2 σύντομες προτάσεις** | Ο Δίας, ο πέμπτος πλανήτης από τον Ήλιο, είναι ο μεγαλύτερος στο Ηλιακό Σύστημα και είναι γνωστός ως ένα από τα πιο φωτεινά αντικείμενα στον νυχτερινό ουρανό. Ονομάστηκε από τον ρωμαϊκό θεό Δία, είναι ένας γίγαντας αερίων με μάζα δυόμισι φορές μεγαλύτερη από το σύνολο των άλλων πλανητών του Ηλιακού Συστήματος μαζί. | - -Το τμήμα primary content μπορεί να χρησιμοποιηθεί με διάφορους τρόπους για να οδηγήσει πιο αποτελεσματικές οδηγίες: - -- **Παραδείγματα** - αντί να πούμε στο μοντέλο τι να κάνει με μια ρητή οδηγία, δίνουμε παραδείγματα του τι να κάνει και το αφήνουμε να συμπεράνει το μοτίβο. -- **Υποδείξεις** - ακολουθούμε την οδηγία με μια "υπόδειξη" που προετοιμάζει την ολοκλήρωση, καθοδηγώντας το μοντέλο προς πιο σχετικές απαντήσεις. -- **Πρότυπα** - είναι επαναλαμβανόμενες 'συνταγές' για prompts με placeholders (μεταβλητές) που μπορούν να προσαρμοστούν με δεδομένα για συγκεκριμένες χρήσεις. - -Ας τα εξερευνήσουμε στην πράξη. - -### Χρήση Παραδειγμάτων - -Αυτή είναι μια προσέγγιση όπου χρησιμοποιείς το primary content για να "ταΐσεις το μοντέλο" με παραδείγματα της επιθυμητής εξόδου για μια δεδομένη οδηγία, και το αφήνεις να συμπεράνει το μοτίβο της επιθυμητής εξόδου. Ανάλογα με τον αριθμό των παραδειγμάτων που παρέχονται, μπορούμε να έχουμε zero-shot prompting, one-shot prompting, few-shot prompting κ.ά. - -Το prompt τώρα αποτελείται από τρία στοιχεία: - -- Μια περιγραφή εργασίας -- Μερικά παραδείγματα της επιθυμητής εξόδου -- Την αρχή ενός νέου παραδείγματος (που γίνεται μια σιωπηρή περιγραφή εργασίας) - -| Τύπος Μάθησης | Prompt (Είσοδος) | Ολοκλήρωση (Έξοδος) | -| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| Zero-shot | "The Sun is Shining". Μετάφραση στα Ισπανικά | "El Sol está brillando". | -| One-shot | "The Sun is Shining" => ""El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| Few-shot | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketball | -| | | | - -Παρατήρησε πώς έπρεπε να δώσουμε ρητή οδηγία ("Μετάφραση στα Ισπανικά") στο zero-shot prompting, αλλά αυτή συμπεραίνεται στο one-shot παράδειγμα. Το few-shot παράδειγμα δείχνει πώς η προσθήκη περισσότερων παραδειγμάτων επιτρέπει στα μοντέλα να κάνουν πιο ακριβείς συμπεράσεις χωρίς επιπλέον οδηγίες. - -### Υποδείξεις Prompt - -Μια άλλη τεχνική για τη χρήση του primary content είναι να παρέχουμε _υποδείξεις_ αντί για παραδείγματα. Σε αυτή την περίπτωση, δίνουμε στο μοντέλο μια ώθηση προς τη σωστή κατεύθυνση _ξεκινώντας_ με ένα απόσπασμα που αντικατοπτρίζει τη μορφή της επιθυμητής απάντησης. Το μοντέλο τότε "παίρνει την υπόδειξη" και συνεχίζει σε αυτό το ύφος. - -| Αριθμός Υποδείξεων | Prompt (Είσοδος) | Ολοκλήρωση (Έξοδος) | -| :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Ο Δίας είναι ο πέμπτος πλανήτης από τον Ήλιο και ο μεγαλύτερος στο Ηλιακό Σύστημα. Είναι ένας γίγαντας αερίων με μάζα το ένα χιλιοστό της μάζας του Ήλιου, αλλά δυόμισι φορές τη μάζα όλων των άλλων πλανητών του Ηλιακού Συστήματος μαζί. Ο Δίας είναι ένα από τα πιο φωτεινά αντικείμενα που φαίνονται με γυμνό μάτι στον νυχτερινό ουρανό, και ήταν γνωστός σε αρχαίους πολιτισμούς πριν από την καταγεγραμμένη ιστορία. - -**Σύνοψη** | Ο Δίας είναι ο μεγαλύτερος πλανήτης στο Ηλιακό μας Σύστημα και ο πέμπτος από τον Ήλιο. Είναι ένας γιγάντιος πλανήτης αερίων με μάζα 1/1000 αυτής του Ήλιου, αλλά βαρύτερος από όλους τους υπόλοιπους πλανήτες μαζί. Οι αρχαίοι πολιτισμοί γνώριζαν τον Δία εδώ και πολύ καιρό, και είναι εύκολα ορατός στον νυχτερινό ουρανό. | -| 1 | Ο Δίας είναι ο πέμπτος πλανήτης από τον Ήλιο και ο μεγαλύτερος στο Ηλιακό Σύστημα. Είναι ένας γιγάντιος πλανήτης αερίων με μάζα το ένα χιλιοστό αυτής του Ήλιου, αλλά δύο και μισές φορές μεγαλύτερη από το άθροισμα όλων των άλλων πλανητών στο Ηλιακό Σύστημα. Ο Δίας είναι ένα από τα πιο φωτεινά αντικείμενα που φαίνονται με γυμνό μάτι στον νυχτερινό ουρανό και ήταν γνωστός στους αρχαίους πολιτισμούς πριν από την καταγεγραμμένη ιστορία.
**Σύνοψη**
Αυτό που μάθαμε είναι ότι ο Δίας | είναι ο πέμπτος πλανήτης από τον Ήλιο και ο μεγαλύτερος στο Ηλιακό Σύστημα. Είναι ένας γιγάντιος πλανήτης αερίων με μάζα το ένα χιλιοστό αυτής του Ήλιου, αλλά δύο και μισές φορές μεγαλύτερη από το άθροισμα όλων των άλλων πλανητών. Είναι εύκολα ορατός με γυμνό μάτι και είναι γνωστός από την αρχαιότητα. | -| 2 | Ο Δίας είναι ο πέμπτος πλανήτης από τον Ήλιο και ο μεγαλύτερος στο Ηλιακό Σύστημα. Είναι ένας γιγάντιος πλανήτης αερίων με μάζα το ένα χιλιοστό αυτής του Ήλιου, αλλά δύο και μισές φορές μεγαλύτερη από το άθροισμα όλων των άλλων πλανητών στο Ηλιακό Σύστημα. Ο Δίας είναι ένα από τα πιο φωτεινά αντικείμενα που φαίνονται με γυμνό μάτι στον νυχτερινό ουρανό και ήταν γνωστός στους αρχαίους πολιτισμούς πριν από την καταγεγραμμένη ιστορία.
**Σύνοψη**
Τα 3 κορυφαία στοιχεία που μάθαμε: | 1. Ο Δίας είναι ο πέμπτος πλανήτης από τον Ήλιο και ο μεγαλύτερος στο Ηλιακό Σύστημα.
2. Είναι ένας γιγάντιος πλανήτης αερίων με μάζα το ένα χιλιοστό αυτής του Ήλιου...
3. Ο Δίας είναι ορατός με γυμνό μάτι από την αρχαιότητα ... | -| | | | - -### Πρότυπα Προτροπών - -Ένα πρότυπο προτροπής είναι μια _προκαθορισμένη συνταγή για μια προτροπή_ που μπορεί να αποθηκευτεί και να επαναχρησιμοποιηθεί όποτε χρειάζεται, για να προσφέρει πιο συνεπείς εμπειρίες χρήστη σε μεγάλη κλίμακα. Στην πιο απλή μορφή του, είναι απλώς μια συλλογή παραδειγμάτων προτροπών όπως [αυτό από το OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) που παρέχει τόσο τα διαδραστικά στοιχεία της προτροπής (μηνύματα χρήστη και συστήματος) όσο και τη μορφή αιτήματος μέσω API - για να υποστηρίξει την επαναχρησιμοποίηση. - -Σε πιο σύνθετη μορφή, όπως [αυτό το παράδειγμα από το LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst), περιέχει _θέσεις κράτησης_ που μπορούν να αντικατασταθούν με δεδομένα από διάφορες πηγές (εισροή χρήστη, πλαίσιο συστήματος, εξωτερικές πηγές δεδομένων κ.ά.) για να δημιουργηθεί δυναμικά μια προτροπή. Αυτό μας επιτρέπει να δημιουργήσουμε μια βιβλιοθήκη επαναχρησιμοποιήσιμων προτροπών που μπορούν να χρησιμοποιηθούν για να προσφέρουν συνεπείς εμπειρίες χρήστη **προγραμματιστικά** σε μεγάλη κλίμακα. - -Τέλος, η πραγματική αξία των προτύπων έγκειται στην ικανότητα δημιουργίας και δημοσίευσης _βιβλιοθηκών προτροπών_ για κάθετες εφαρμογές - όπου το πρότυπο προτροπής είναι πλέον _βελτιστοποιημένο_ ώστε να αντανακλά το πλαίσιο ή παραδείγματα ειδικά για την εφαρμογή, κάνοντας τις απαντήσεις πιο σχετικές και ακριβείς για το στοχευμένο κοινό. Το αποθετήριο [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) είναι ένα εξαιρετικό παράδειγμα αυτής της προσέγγισης, συγκεντρώνοντας μια βιβλιοθήκη προτροπών για τον τομέα της εκπαίδευσης με έμφαση σε βασικούς στόχους όπως ο σχεδιασμός μαθημάτων, το πρόγραμμα σπουδών, η διδασκαλία μαθητών κ.ά. - -## Υποστηρικτικό Περιεχόμενο - -Αν σκεφτούμε τη δημιουργία προτροπών ως μια εντολή (εργασία) και ένα στόχο (κύριο περιεχόμενο), τότε το _δευτερεύον περιεχόμενο_ είναι σαν επιπλέον πλαίσιο που παρέχουμε για να **επηρεάσουμε την έξοδο με κάποιο τρόπο**. Μπορεί να είναι παράμετροι ρύθμισης, οδηγίες μορφοποίησης, ταξινομίες θεμάτων κ.ά. που βοηθούν το μοντέλο να _προσαρμόσει_ την απάντησή του ώστε να ταιριάζει στους επιθυμητούς στόχους ή προσδοκίες του χρήστη. - -Για παράδειγμα: Δεδομένου ενός καταλόγου μαθημάτων με εκτενή μεταδεδομένα (όνομα, περιγραφή, επίπεδο, ετικέτες μεταδεδομένων, διδάσκων κ.ά.) για όλα τα διαθέσιμα μαθήματα στο πρόγραμμα σπουδών: - -- μπορούμε να ορίσουμε μια εντολή για "σύνοψη του καταλόγου μαθημάτων για το Φθινόπωρο 2023" -- μπορούμε να χρησιμοποιήσουμε το κύριο περιεχόμενο για να δώσουμε μερικά παραδείγματα της επιθυμητής εξόδου -- μπορούμε να χρησιμοποιήσουμε το δευτερεύον περιεχόμενο για να εντοπίσουμε τις 5 κορυφαίες "ετικέτες" ενδιαφέροντος. - -Τώρα, το μοντέλο μπορεί να παρέχει μια σύνοψη στη μορφή που δείχνουν τα παραδείγματα - αλλά αν ένα αποτέλεσμα έχει πολλές ετικέτες, μπορεί να δώσει προτεραιότητα στις 5 ετικέτες που εντοπίστηκαν στο δευτερεύον περιεχόμενο. - ---- - - - -## Καλές Πρακτικές στη Δημιουργία Προτροπών - -Τώρα που ξέρουμε πώς μπορούν να _δημιουργηθούν_ οι προτροπές, μπορούμε να αρχίσουμε να σκεφτόμαστε πώς να τις _σχεδιάσουμε_ ώστε να αντανακλούν τις βέλτιστες πρακτικές. Μπορούμε να το σκεφτούμε σε δύο μέρη - έχοντας τη σωστή _νοοτροπία_ και εφαρμόζοντας τις σωστές _τεχνικές_. - -### Νοοτροπία Μηχανικής Προτροπών - -Η μηχανική προτροπών είναι μια διαδικασία δοκιμής και λάθους, οπότε κρατήστε τρεις βασικούς παράγοντες στο μυαλό: - -1. **Η Κατανόηση του Τομέα Μετράει.** Η ακρίβεια και η σχετικότητα της απάντησης εξαρτώνται από τον _τομέα_ στον οποίο λειτουργεί η εφαρμογή ή ο χρήστης. Εφαρμόστε την διαίσθηση και την εμπειρογνωμοσύνη σας στον τομέα για να **προσαρμόσετε περαιτέρω τις τεχνικές**. Για παράδειγμα, ορίστε _προσωπικότητες ειδικές για τον τομέα_ στις προτροπές συστήματος, ή χρησιμοποιήστε _πρότυπα ειδικά για τον τομέα_ στις προτροπές χρήστη. Παρέχετε δευτερεύον περιεχόμενο που αντανακλά πλαίσια ειδικά για τον τομέα, ή χρησιμοποιήστε _ενδείξεις και παραδείγματα ειδικά για τον τομέα_ για να καθοδηγήσετε το μοντέλο προς οικείες χρήσεις. - -2. **Η Κατανόηση του Μοντέλου Μετράει.** Γνωρίζουμε ότι τα μοντέλα είναι στοχαστικά από τη φύση τους. Αλλά οι υλοποιήσεις μοντέλων μπορεί επίσης να διαφέρουν όσον αφορά το σύνολο δεδομένων εκπαίδευσης που χρησιμοποιούν (προεκπαιδευμένη γνώση), τις δυνατότητες που παρέχουν (π.χ. μέσω API ή SDK) και τον τύπο περιεχομένου για τον οποίο είναι βελτιστοποιημένα (π.χ. κώδικας έναντι εικόνων έναντι κειμένου). Κατανοήστε τα πλεονεκτήματα και τους περιορισμούς του μοντέλου που χρησιμοποιείτε και χρησιμοποιήστε αυτή τη γνώση για να _ιεραρχήσετε εργασίες_ ή να δημιουργήσετε _προσαρμοσμένα πρότυπα_ που είναι βελτιστοποιημένα για τις δυνατότητες του μοντέλου. - -3. **Η Επανάληψη & Επικύρωση Μετράει.** Τα μοντέλα εξελίσσονται γρήγορα, όπως και οι τεχνικές μηχανικής προτροπών. Ως ειδικός στον τομέα, μπορεί να έχετε άλλο πλαίσιο ή κριτήρια για _τη δική σας_ συγκεκριμένη εφαρμογή, που ίσως να μην ισχύουν για την ευρύτερη κοινότητα. Χρησιμοποιήστε εργαλεία και τεχνικές μηχανικής προτροπών για να "ξεκινήσετε" τη δημιουργία προτροπών, μετά επαναλάβετε και επικυρώστε τα αποτελέσματα χρησιμοποιώντας τη δική σας διαίσθηση και εμπειρογνωμοσύνη. Καταγράψτε τις γνώσεις σας και δημιουργήστε μια **βάση γνώσεων** (π.χ. βιβλιοθήκες προτροπών) που μπορούν να χρησιμοποιηθούν ως νέα βάση από άλλους, για ταχύτερες επαναλήψεις στο μέλλον. - -## Καλές Πρακτικές - -Ας δούμε τώρα κοινές βέλτιστες πρακτικές που προτείνουν οι [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) και [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst) ειδικοί. - -| Τι | Γιατί | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Αξιολογήστε τα πιο πρόσφατα μοντέλα. | Οι νέες γενιές μοντέλων πιθανόν να έχουν βελτιωμένα χαρακτηριστικά και ποιότητα - αλλά μπορεί να έχουν και υψηλότερο κόστος. Αξιολογήστε τα για τον αντίκτυπο και μετά αποφασίστε για τη μετάβαση. | -| Διαχωρίστε τις οδηγίες & το πλαίσιο | Ελέγξτε αν το μοντέλο/πάροχος ορίζει _διαχωριστικά_ για να ξεχωρίζουν καλύτερα οι οδηγίες, το κύριο και το δευτερεύον περιεχόμενο. Αυτό βοηθά τα μοντέλα να αποδίδουν πιο ακριβείς βαρύτητες στα tokens. | -| Να είστε συγκεκριμένοι και σαφείς | Δώστε περισσότερες λεπτομέρειες για το επιθυμητό πλαίσιο, αποτέλεσμα, μήκος, μορφή, στυλ κ.ά. Αυτό βελτιώνει τόσο την ποιότητα όσο και τη συνέπεια των απαντήσεων. Καταγράψτε τις συνταγές σε επαναχρησιμοποιήσιμα πρότυπα. | -| Να είστε περιγραφικοί, χρησιμοποιήστε παραδείγματα | Τα μοντέλα μπορεί να ανταποκριθούν καλύτερα σε μια προσέγγιση "δείξε και πες". Ξεκινήστε με μια `zero-shot` προσέγγιση όπου δίνετε μόνο μια οδηγία (χωρίς παραδείγματα) και μετά δοκιμάστε `few-shot` ως βελτίωση, παρέχοντας μερικά παραδείγματα της επιθυμητής εξόδου. Χρησιμοποιήστε αναλογίες. | -| Χρησιμοποιήστε ενδείξεις για να ξεκινήσετε τις απαντήσεις | Κατευθύνετέ το μοντέλο προς το επιθυμητό αποτέλεσμα δίνοντάς του κάποιες λέξεις ή φράσεις που μπορεί να χρησιμοποιήσει ως αφετηρία για την απάντηση. | -| Επανάληψη | Μερικές φορές μπορεί να χρειαστεί να επαναλάβετε την οδηγία στο μοντέλο. Δώστε οδηγίες πριν και μετά το κύριο περιεχόμενο, χρησιμοποιήστε οδηγία και ένδειξη κ.ά. Επαναλάβετε και επικυρώστε για να δείτε τι λειτουργεί καλύτερα. | -| Η σειρά έχει σημασία | Η σειρά με την οποία παρουσιάζετε πληροφορίες στο μοντέλο μπορεί να επηρεάσει το αποτέλεσμα, ακόμα και στα παραδείγματα μάθησης, λόγω της προτίμησης στην πρόσφατη πληροφορία. Δοκιμάστε διαφορετικές επιλογές για να δείτε τι λειτουργεί καλύτερα. | -| Δώστε στο μοντέλο μια “έξοδο” | Δώστε στο μοντέλο μια _εναλλακτική_ απάντηση που μπορεί να δώσει αν δεν μπορεί να ολοκληρώσει την εργασία για οποιονδήποτε λόγο. Αυτό μειώνει τις πιθανότητες να δημιουργήσει ψευδείς ή επινοημένες απαντήσεις. | -| | | - -Όπως με κάθε βέλτιστη πρακτική, θυμηθείτε ότι _η εμπειρία σας μπορεί να διαφέρει_ ανάλογα με το μοντέλο, την εργασία και τον τομέα. Χρησιμοποιήστε αυτές ως αφετηρία και επαναλάβετε για να βρείτε τι λειτουργεί καλύτερα για εσάς. Επανεκτιμάτε συνεχώς τη διαδικασία μηχανικής προτροπών καθώς γίνονται διαθέσιμα νέα μοντέλα και εργαλεία, με έμφαση στην κλιμάκωση της διαδικασίας και την ποιότητα της απάντησης. - - - -## Ανάθεση Εργασίας - -Συγχαρητήρια! Φτάσατε στο τέλος του μαθήματος! Ήρθε η ώρα να δοκιμάσετε μερικές από αυτές τις έννοιες και τεχνικές με πραγματικά παραδείγματα! - -Για την ανάθεσή μας, θα χρησιμοποιήσουμε ένα Jupyter Notebook με ασκήσεις που μπορείτε να ολοκληρώσετε διαδραστικά. Μπορείτε επίσης να επεκτείνετε το Notebook με δικά σας κελιά Markdown και Κώδικα για να εξερευνήσετε ιδέες και τεχνικές μόνοι σας. - -### Για να ξεκινήσετε, κάντε fork το αποθετήριο, και μετά - -- (Συνιστάται) Ξεκινήστε GitHub Codespaces -- (Εναλλακτικά) Κλωνοποιήστε το αποθετήριο στη συσκευή σας και χρησιμοποιήστε το με Docker Desktop -- (Εναλλακτικά) Ανοίξτε το Notebook με το προτιμώμενο περιβάλλον εκτέλεσης Notebook. - -### Στη συνέχεια, ρυθμίστε τις μεταβλητές περιβάλλοντος - -- Αντιγράψτε το αρχείο `.env.copy` από τη ρίζα του αποθετηρίου σε `.env` και συμπληρώστε τις τιμές `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` και `AZURE_OPENAI_DEPLOYMENT`. Ε - -**Αποποίηση ευθυνών**: -Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης AI [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που επιδιώκουμε την ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη γλώσσα του θεωρείται η επίσημη πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης. \ No newline at end of file + + + + + + + diff --git a/translations/el/09-building-image-applications/README.md b/translations/el/09-building-image-applications/README.md index f5bd9f8d1..189214799 100644 --- a/translations/el/09-building-image-applications/README.md +++ b/translations/el/09-building-image-applications/README.md @@ -1,475 +1,12 @@ - -# Δημιουργία Εφαρμογών Γεννήτριας Εικόνων - -[![Δημιουργία Εφαρμογών Γεννήτριας Εικόνων](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.el.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -Τα LLM δεν περιορίζονται μόνο στη δημιουργία κειμένου. Είναι επίσης εφικτό να δημιουργούνται εικόνες από περιγραφές κειμένου. Η χρήση εικόνων ως μέσο μπορεί να είναι ιδιαίτερα χρήσιμη σε πολλούς τομείς, όπως η Ιατρική Τεχνολογία, η αρχιτεκτονική, ο τουρισμός, η ανάπτυξη παιχνιδιών και άλλοι. Σε αυτό το κεφάλαιο, θα εξετάσουμε τα δύο πιο δημοφιλή μοντέλα δημιουργίας εικόνων, το DALL-E και το Midjourney. - -## Εισαγωγή - -Σε αυτό το μάθημα, θα καλύψουμε: - -- Τη δημιουργία εικόνων και γιατί είναι χρήσιμη. -- Τι είναι το DALL-E και το Midjourney, και πώς λειτουργούν. -- Πώς να δημιουργήσετε μια εφαρμογή δημιουργίας εικόνων. - -## Στόχοι Μάθησης - -Μετά την ολοκλήρωση αυτού του μαθήματος, θα μπορείτε να: - -- Δημιουργήσετε μια εφαρμογή δημιουργίας εικόνων. -- Ορίσετε όρια για την εφαρμογή σας με meta prompts. -- Εργαστείτε με το DALL-E και το Midjourney. - -## Γιατί να δημιουργήσετε μια εφαρμογή δημιουργίας εικόνων; - -Οι εφαρμογές δημιουργίας εικόνων είναι ένας εξαιρετικός τρόπος να εξερευνήσετε τις δυνατότητες της Γεννητικής Τεχνητής Νοημοσύνης. Μπορούν να χρησιμοποιηθούν, για παράδειγμα: - -- **Επεξεργασία και σύνθεση εικόνων**. Μπορείτε να δημιουργήσετε εικόνες για διάφορες χρήσεις, όπως επεξεργασία και σύνθεση εικόνων. - -- **Εφαρμογή σε διάφορους κλάδους**. Μπορούν επίσης να χρησιμοποιηθούν για τη δημιουργία εικόνων σε διάφορους κλάδους όπως η Ιατρική Τεχνολογία, ο Τουρισμός, η Ανάπτυξη Παιχνιδιών και άλλοι. - -## Σενάριο: Edu4All - -Στο πλαίσιο αυτού του μαθήματος, θα συνεχίσουμε να συνεργαζόμαστε με το startup μας, Edu4All. Οι μαθητές θα δημιουργήσουν εικόνες για τις εργασίες τους, το τι είδους εικόνες είναι στην ευχέρεια των μαθητών, αλλά θα μπορούσαν να είναι εικονογραφήσεις για το δικό τους παραμύθι, να δημιουργήσουν έναν νέο χαρακτήρα για την ιστορία τους ή να τους βοηθήσουν να οπτικοποιήσουν τις ιδέες και τις έννοιές τους. - -Ακολουθεί ένα παράδειγμα εικόνας που θα μπορούσαν να δημιουργήσουν οι μαθητές του Edu4All αν δουλεύουν στην τάξη πάνω σε μνημεία: - -![Edu4All startup, class on monuments, Eiffel Tower](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.el.png) - -χρησιμοποιώντας ένα prompt όπως - -> "Σκύλος δίπλα στον Πύργο του Άιφελ στο φως του πρωινού ήλιου" - -## Τι είναι το DALL-E και το Midjourney; - -Το [DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) και το [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) είναι δύο από τα πιο δημοφιλή μοντέλα δημιουργίας εικόνων, που σας επιτρέπουν να χρησιμοποιείτε prompts για να δημιουργήσετε εικόνες. - -### DALL-E - -Ας ξεκινήσουμε με το DALL-E, ένα μοντέλο Γεννητικής Τεχνητής Νοημοσύνης που δημιουργεί εικόνες από περιγραφές κειμένου. - -> [Το DALL-E είναι ένας συνδυασμός δύο μοντέλων, του CLIP και της διαχυμένης προσοχής](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP**, είναι ένα μοντέλο που δημιουργεί embeddings, δηλαδή αριθμητικές αναπαραστάσεις δεδομένων, από εικόνες και κείμενο. - -- **Διαχυμένη προσοχή (Diffused attention)**, είναι ένα μοντέλο που δημιουργεί εικόνες από embeddings. Το DALL-E έχει εκπαιδευτεί σε ένα σύνολο δεδομένων εικόνων και κειμένου και μπορεί να χρησιμοποιηθεί για να δημιουργήσει εικόνες από περιγραφές κειμένου. Για παράδειγμα, το DALL-E μπορεί να δημιουργήσει εικόνες μιας γάτας με καπέλο ή ενός σκύλου με μοϊκάνα. - -### Midjourney - -Το Midjourney λειτουργεί με παρόμοιο τρόπο με το DALL-E, δημιουργεί εικόνες από κείμενα. Το Midjourney μπορεί επίσης να χρησιμοποιηθεί για να δημιουργήσει εικόνες με prompts όπως «μια γάτα με καπέλο» ή «ένας σκύλος με μοϊκάνα». - -![Image generated by Midjourney, mechanical pigeon](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Πηγή εικόνας Wikipedia, εικόνα δημιουργημένη από το Midjourney_ - -## Πώς λειτουργούν το DALL-E και το Midjourney - -Αρχικά, το [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). Το DALL-E είναι ένα μοντέλο Γεννητικής Τεχνητής Νοημοσύνης βασισμένο στην αρχιτεκτονική transformer με έναν _autoregressive transformer_. - -Ένας _autoregressive transformer_ ορίζει πώς ένα μοντέλο δημιουργεί εικόνες από περιγραφές κειμένου, παράγοντας ένα pixel τη φορά και χρησιμοποιώντας τα ήδη παραγόμενα pixels για να δημιουργήσει το επόμενο. Διαπερνά πολλαπλά στρώματα σε ένα νευρωνικό δίκτυο, μέχρι να ολοκληρωθεί η εικόνα. - -Με αυτή τη διαδικασία, το DALL-E ελέγχει χαρακτηριστικά, αντικείμενα, ιδιότητες και άλλα στην εικόνα που δημιουργεί. Ωστόσο, τα DALL-E 2 και 3 έχουν μεγαλύτερο έλεγχο στην παραγόμενη εικόνα. - -## Δημιουργία της πρώτης σας εφαρμογής δημιουργίας εικόνων - -Τι χρειάζεται για να δημιουργήσετε μια εφαρμογή δημιουργίας εικόνων; Χρειάζεστε τις παρακάτω βιβλιοθήκες: - -- **python-dotenv**, συνιστάται έντονα να χρησιμοποιήσετε αυτή τη βιβλιοθήκη για να κρατάτε τα μυστικά σας σε ένα αρχείο _.env_ μακριά από τον κώδικα. -- **openai**, αυτή η βιβλιοθήκη είναι που θα χρησιμοποιήσετε για να αλληλεπιδράσετε με το OpenAI API. -- **pillow**, για να δουλέψετε με εικόνες σε Python. -- **requests**, για να κάνετε αιτήματα HTTP. - -1. Δημιουργήστε ένα αρχείο _.env_ με το παρακάτω περιεχόμενο: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Βρείτε αυτές τις πληροφορίες στο Azure Portal για τον πόρο σας στην ενότητα "Keys and Endpoint". - -1. Συγκεντρώστε τις παραπάνω βιβλιοθήκες σε ένα αρχείο _requirements.txt_ ως εξής: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. Στη συνέχεια, δημιουργήστε ένα virtual environment και εγκαταστήστε τις βιβλιοθήκες: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Για Windows, χρησιμοποιήστε τις παρακάτω εντολές για να δημιουργήσετε και να ενεργοποιήσετε το virtual environment: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. Προσθέστε τον παρακάτω κώδικα σε ένα αρχείο με όνομα _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Ας εξηγήσουμε αυτόν τον κώδικα: - -- Πρώτα, εισάγουμε τις βιβλιοθήκες που χρειαζόμαστε, συμπεριλαμβανομένων των openai, dotenv, requests και Pillow. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Στη συνέχεια, φορτώνουμε τις μεταβλητές περιβάλλοντος από το αρχείο _.env_. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- Μετά, ορίζουμε το endpoint, το κλειδί για το OpenAI API, την έκδοση και τον τύπο. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- Έπειτα, δημιουργούμε την εικόνα: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - Ο παραπάνω κώδικας επιστρέφει ένα αντικείμενο JSON που περιέχει το URL της παραγόμενης εικόνας. Μπορούμε να χρησιμοποιήσουμε το URL για να κατεβάσουμε την εικόνα και να την αποθηκεύσουμε σε αρχείο. - -- Τέλος, ανοίγουμε την εικόνα και χρησιμοποιούμε τον τυπικό προβολέα εικόνων για να την εμφανίσουμε: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Περισσότερες λεπτομέρειες για τη δημιουργία της εικόνας - -Ας δούμε πιο αναλυτικά τον κώδικα που δημιουργεί την εικόνα: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt**, είναι το κείμενο που χρησιμοποιείται για να δημιουργηθεί η εικόνα. Σε αυτή την περίπτωση, χρησιμοποιούμε το prompt "Λαγός πάνω σε άλογο, κρατώντας ένα γλειφιτζούρι, σε μια ομιχλώδη λιβάδι όπου φυτρώνουν νάρκισσοι". -- **size**, είναι το μέγεθος της παραγόμενης εικόνας. Σε αυτή την περίπτωση, δημιουργούμε μια εικόνα 1024x1024 pixels. -- **n**, είναι ο αριθμός των εικόνων που δημιουργούνται. Σε αυτή την περίπτωση, δημιουργούμε δύο εικόνες. -- **temperature**, είναι μια παράμετρος που ελέγχει την τυχαιότητα της εξόδου ενός μοντέλου Γεννητικής Τεχνητής Νοημοσύνης. Η θερμοκρασία είναι μια τιμή μεταξύ 0 και 1, όπου το 0 σημαίνει ότι η έξοδος είναι ντετερμινιστική και το 1 ότι είναι τυχαία. Η προεπιλεγμένη τιμή είναι 0.7. - -Υπάρχουν και άλλες δυνατότητες που μπορείτε να κάνετε με τις εικόνες, τις οποίες θα καλύψουμε στην επόμενη ενότητα. - -## Επιπλέον δυνατότητες δημιουργίας εικόνων - -Έχετε δει μέχρι τώρα πώς μπορέσαμε να δημιουργήσουμε μια εικόνα με λίγες γραμμές κώδικα σε Python. Ωστόσο, υπάρχουν περισσότερα που μπορείτε να κάνετε με τις εικόνες. - -Μπορείτε επίσης να κάνετε τα εξής: - -- **Επεξεργασία εικόνων**. Παρέχοντας μια υπάρχουσα εικόνα, μια μάσκα και ένα prompt, μπορείτε να τροποποιήσετε μια εικόνα. Για παράδειγμα, μπορείτε να προσθέσετε κάτι σε ένα τμήμα της εικόνας. Φανταστείτε την εικόνα με τον λαγό, μπορείτε να προσθέσετε ένα καπέλο στον λαγό. Αυτό γίνεται παρέχοντας την εικόνα, μια μάσκα (που προσδιορίζει το τμήμα της περιοχής για την αλλαγή) και ένα κείμενο που λέει τι πρέπει να γίνει. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - Η βασική εικόνα θα περιέχει μόνο τον λαγό, αλλά η τελική εικόνα θα έχει το καπέλο στον λαγό. - -- **Δημιουργία παραλλαγών**. Η ιδέα είναι να πάρετε μια υπάρχουσα εικόνα και να ζητήσετε να δημιουργηθούν παραλλαγές. Για να δημιουργήσετε μια παραλλαγή, παρέχετε μια εικόνα και ένα κείμενο prompt και κώδικα όπως παρακάτω: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Σημείωση, αυτό υποστηρίζεται μόνο από το OpenAI - -## Θερμοκρασία (Temperature) - -Η θερμοκρασία είναι μια παράμετρος που ελέγχει την τυχαιότητα της εξόδου ενός μοντέλου Γεννητικής Τεχνητής Νοημοσύνης. Η θερμοκρασία είναι μια τιμή μεταξύ 0 και 1, όπου το 0 σημαίνει ότι η έξοδος είναι ντετερμινιστική και το 1 ότι είναι τυχαία. Η προεπιλεγμένη τιμή είναι 0.7. - -Ας δούμε ένα παράδειγμα για το πώς λειτουργεί η θερμοκρασία, εκτελώντας αυτό το prompt δύο φορές: - -> Prompt : "Λαγός πάνω σε άλογο, κρατώντας ένα γλειφιτζούρι, σε μια ομιχλώδη λιβάδι όπου φυτρώνουν νάρκισσοι" - -![Λαγός πάνω σε άλογο κρατώντας ένα γλειφιτζούρι, έκδοση 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.el.png) - -Τώρα ας τρέξουμε το ίδιο prompt ξανά για να δούμε ότι δεν θα πάρουμε την ίδια εικόνα δύο φορές: - -![Παραγόμενη εικόνα λαγού πάνω σε άλογο](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.el.png) - -Όπως βλέπετε, οι εικόνες είναι παρόμοιες, αλλά όχι ίδιες. Ας δοκιμάσουμε να αλλάξουμε την τιμή της θερμοκρασίας σε 0.1 και να δούμε τι συμβαίνει: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Αλλαγή της θερμοκρασίας - -Ας προσπαθήσουμε να κάνουμε την απόκριση πιο ντετερμινιστική. Μπορούμε να παρατηρήσουμε από τις δύο εικόνες που δημιουργήσαμε ότι στην πρώτη εικόνα υπάρχει λαγός και στη δεύτερη άλογο, οπότε οι εικόνες διαφέρουν σημαντικά. - -Ας αλλάξουμε λοιπόν τον κώδικά μας και να ορίσουμε τη θερμοκρασία στο 0, ως εξής: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Τώρα, όταν τρέξετε αυτόν τον κώδικα, θα πάρετε αυτές τις δύο εικόνες: - -- ![Θερμοκρασία 0, έκδοση 1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.el.png) -- ![Θερμοκρασία 0, έκδοση 2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.el.png) - -Εδώ μπορείτε να δείτε καθαρά πόσο περισσότερο μοιάζουν οι εικόνες μεταξύ τους. - -## Πώς να ορίσετε όρια για την εφαρμογή σας με metaprompts - -Με το demo μας, μπορούμε ήδη να δημιουργούμε εικόνες για τους πελάτες μας. Ωστόσο, πρέπει να θέσουμε κάποια όρια για την εφαρμογή μας. - -Για παράδειγμα, δεν θέλουμε να δημιουργούμε εικόνες που δεν είναι κατάλληλες για το χώρο εργασίας ή που δεν είναι κατάλληλες για παιδιά. - -Αυτό μπορούμε να το κάνουμε με _metaprompts_. Τα metaprompts είναι κείμενα που χρησιμοποιούνται για να ελέγχουν την έξοδο ενός μοντέλου Γεννητικής Τεχνητής Νοημοσύνης. Για παράδειγμα, μπορούμε να χρησιμοποιήσουμε metaprompts για να ελέγξουμε την έξοδο και να διασφαλίσουμε ότι οι παραγόμενες εικόνες είναι κατάλληλες για το χώρο εργασίας ή για παιδιά. - -### Πώς λειτουργεί; - -Πώς λειτουργούν τα metaprompts; - -Τα metaprompts είναι κείμενα που τοποθετούνται πριν από το κύριο prompt και χρησιμοποιούνται για να ελέγχουν την έξοδο του μοντέλου. Ενσωματώνονται στις εφαρμογές για να ελέγχουν την έξοδο του μοντέλου, περιλαμβάνοντας τόσο το κύριο prompt όσο και το metaprompt σε ένα ενιαίο κείμενο. - -Ένα παράδειγμα metaprompt είναι το εξής: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Τώρα, ας δούμε πώς μπορούμε να χρησιμοποιήσουμε τα metaprompts στο demo μας. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -Από το παραπάνω prompt, μπορείτε να δείτε πώς όλες οι δημιουργούμενες εικόνες λαμβάνουν υπόψη το metaprompt. - -## Άσκηση - ας δώσουμε τη δυνατότητα στους μαθητές - -Παρουσιάσαμε το Edu4All στην αρχή αυτού του μαθήματος. Τώρα είναι ώρα να δώσουμε τη δυνατότητα στους μαθητές να δημιουργήσουν εικόνες για τις εργασίες τους. - -Οι μαθητές θα δημιουργήσουν εικόνες για τις εργασίες τους που περιλαμβάνουν μνημεία, το ποια μνημεία ακριβώς είναι στην ευχέρεια των μαθητών. Ζητείται από τους μαθητές να χρησιμοποιήσουν τη φαντασία τους για να τοποθετήσουν αυτά τα μνημεία σε διαφορετικά πλαίσια. - -## Λύση - -Ακολουθεί μια πιθανή λύση: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Μπράβο! Συνεχίστε τη Μάθησή σας - -Μετά την ολοκλήρωση αυτού του μαθήματος, ρίξτε μια ματιά στη [Συλλογή Μάθησης για Γεννητική Τεχνητή Νοημοσύνη](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) για να συνεχίσετε να εξελίσσετε τις γν - -**Αποποίηση ευθυνών**: -Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης AI [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που επιδιώκουμε την ακρίβεια, παρακαλούμε να γνωρίζετε ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη γλώσσα του θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης. \ No newline at end of file + + + + diff --git a/translations/el/12-designing-ux-for-ai-applications/README.md b/translations/el/12-designing-ux-for-ai-applications/README.md index ff0571a9b..44ac69a89 100644 --- a/translations/el/12-designing-ux-for-ai-applications/README.md +++ b/translations/el/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# Σχεδιασμός UX για Εφαρμογές Τεχνητής Νοημοσύνης - -[![Σχεδιασμός UX για Εφαρμογές Τεχνητής Νοημοσύνης](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.el.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Κάντε κλικ στην εικόνα παραπάνω για να δείτε το βίντεο αυτής της ενότητας)_ - -Η εμπειρία χρήστη είναι μια πολύ σημαντική πτυχή στην ανάπτυξη εφαρμογών. Οι χρήστες πρέπει να μπορούν να χρησιμοποιούν την εφαρμογή σας με αποδοτικό τρόπο για να εκτελούν εργασίες. Η αποδοτικότητα είναι σημαντική, αλλά χρειάζεται επίσης να σχεδιάζετε εφαρμογές που να μπορούν να χρησιμοποιηθούν από όλους, ώστε να είναι _προσβάσιμες_. Αυτό το κεφάλαιο εστιάζει σε αυτόν τον τομέα, με στόχο να καταλήξετε σε μια εφαρμογή που οι άνθρωποι μπορούν και θέλουν να χρησιμοποιούν. - -## Εισαγωγή - -Η εμπειρία χρήστη είναι ο τρόπος με τον οποίο ένας χρήστης αλληλεπιδρά και χρησιμοποιεί ένα συγκεκριμένο προϊόν ή υπηρεσία, είτε πρόκειται για σύστημα, εργαλείο ή σχεδιασμό. Κατά την ανάπτυξη εφαρμογών Τεχνητής Νοημοσύνης, οι προγραμματιστές δεν εστιάζουν μόνο στο να διασφαλίσουν ότι η εμπειρία χρήστη είναι αποτελεσματική, αλλά και ηθική. Σε αυτή την ενότητα, καλύπτουμε πώς να δημιουργήσετε εφαρμογές Τεχνητής Νοημοσύνης (AI) που ανταποκρίνονται στις ανάγκες των χρηστών. - -Η ενότητα θα καλύψει τα εξής θέματα: - -- Εισαγωγή στην Εμπειρία Χρήστη και Κατανόηση των Αναγκών των Χρηστών -- Σχεδιασμός Εφαρμογών AI για Εμπιστοσύνη και Διαφάνεια -- Σχεδιασμός Εφαρμογών AI για Συνεργασία και Ανατροφοδότηση - -## Στόχοι μάθησης - -Μετά την ολοκλήρωση αυτής της ενότητας, θα μπορείτε να: - -- Κατανοείτε πώς να δημιουργείτε εφαρμογές AI που καλύπτουν τις ανάγκες των χρηστών. -- Σχεδιάζετε εφαρμογές AI που προάγουν την εμπιστοσύνη και τη συνεργασία. - -### Προαπαιτούμενα - -Αφιερώστε λίγο χρόνο και διαβάστε περισσότερα για την [εμπειρία χρήστη και το design thinking.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Εισαγωγή στην Εμπειρία Χρήστη και Κατανόηση των Αναγκών των Χρηστών - -Στην υποθετική μας εκπαιδευτική startup, έχουμε δύο βασικούς χρήστες, τους δασκάλους και τους μαθητές. Κάθε ομάδα χρηστών έχει μοναδικές ανάγκες. Ο σχεδιασμός που εστιάζει στον χρήστη δίνει προτεραιότητα στον ίδιο, διασφαλίζοντας ότι τα προϊόντα είναι σχετικά και ωφέλιμα για αυτούς που απευθύνονται. - -Η εφαρμογή πρέπει να είναι **χρήσιμη, αξιόπιστη, προσβάσιμη και ευχάριστη** για να προσφέρει μια καλή εμπειρία χρήστη. - -### Ευχρηστία - -Το να είναι χρήσιμη σημαίνει ότι η εφαρμογή διαθέτει λειτουργίες που ταιριάζουν στον σκοπό της, όπως η αυτοματοποίηση της διαδικασίας βαθμολόγησης ή η δημιουργία καρτών επανάληψης. Μια εφαρμογή που αυτοματοποιεί τη βαθμολόγηση πρέπει να μπορεί να αναθέτει με ακρίβεια και αποδοτικότητα βαθμούς στα έργα των μαθητών βάσει προκαθορισμένων κριτηρίων. Ομοίως, μια εφαρμογή που δημιουργεί κάρτες επανάληψης πρέπει να παράγει σχετικές και ποικίλες ερωτήσεις με βάση τα δεδομένα της. - -### Αξιοπιστία - -Το να είναι αξιόπιστη σημαίνει ότι η εφαρμογή μπορεί να εκτελεί τη λειτουργία της σταθερά και χωρίς σφάλματα. Ωστόσο, η AI, όπως και οι άνθρωποι, δεν είναι τέλεια και μπορεί να κάνει λάθη. Οι εφαρμογές μπορεί να αντιμετωπίσουν σφάλματα ή απρόβλεπτες καταστάσεις που απαιτούν ανθρώπινη παρέμβαση ή διόρθωση. Πώς διαχειρίζεστε τα σφάλματα; Στο τελευταίο μέρος αυτής της ενότητας, θα δούμε πώς τα συστήματα και οι εφαρμογές AI σχεδιάζονται για συνεργασία και ανατροφοδότηση. - -### Προσβασιμότητα - -Το να είναι προσβάσιμη σημαίνει να επεκτείνει την εμπειρία χρήστη σε άτομα με διάφορες ικανότητες, συμπεριλαμβανομένων αυτών με αναπηρίες, διασφαλίζοντας ότι κανείς δεν μένει εκτός. Ακολουθώντας τις οδηγίες και τις αρχές προσβασιμότητας, οι λύσεις AI γίνονται πιο περιεκτικές, εύχρηστες και ωφέλιμες για όλους τους χρήστες. - -### Ευχάριστη - -Το να είναι ευχάριστη σημαίνει ότι η εφαρμογή είναι απολαυστική στη χρήση. Μια ελκυστική εμπειρία χρήστη μπορεί να έχει θετικό αντίκτυπο, ενθαρρύνοντας τον χρήστη να επιστρέψει στην εφαρμογή και αυξάνοντας τα έσοδα της επιχείρησης. - -![εικόνα που απεικονίζει τις παραμέτρους UX στην AI](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.el.png) - -Δεν μπορεί κάθε πρόκληση να λυθεί με AI. Η AI έρχεται να ενισχύσει την εμπειρία χρήστη, είτε αυτοματοποιώντας χειροκίνητες εργασίες, είτε εξατομικεύοντας τις εμπειρίες. - -## Σχεδιασμός Εφαρμογών AI για Εμπιστοσύνη και Διαφάνεια - -Η οικοδόμηση εμπιστοσύνης είναι κρίσιμη κατά το σχεδιασμό εφαρμογών AI. Η εμπιστοσύνη διασφαλίζει ότι ο χρήστης είναι βέβαιος πως η εφαρμογή θα ολοκληρώσει τη δουλειά, θα παραδίδει αποτελέσματα σταθερά και τα αποτελέσματα είναι αυτά που χρειάζεται. Κίνδυνοι σε αυτόν τον τομέα είναι η έλλειψη εμπιστοσύνης και η υπερβολική εμπιστοσύνη. Η έλλειψη εμπιστοσύνης συμβαίνει όταν ο χρήστης δεν εμπιστεύεται καθόλου το σύστημα AI, οδηγώντας τον να απορρίψει την εφαρμογή σας. Η υπερβολική εμπιστοσύνη συμβαίνει όταν ο χρήστης υπερεκτιμά τις δυνατότητες του AI, με αποτέλεσμα να εμπιστεύεται υπερβολικά το σύστημα. Για παράδειγμα, ένα αυτοματοποιημένο σύστημα βαθμολόγησης σε περίπτωση υπερβολικής εμπιστοσύνης μπορεί να οδηγήσει τον δάσκαλο να μην ελέγξει κάποια γραπτά, με αποτέλεσμα άδικους ή ανακριβείς βαθμούς ή χαμένες ευκαιρίες για ανατροφοδότηση και βελτίωση. - -Δύο τρόποι για να διασφαλίσετε ότι η εμπιστοσύνη βρίσκεται στο επίκεντρο του σχεδιασμού είναι η εξηγήσιμότητα και ο έλεγχος. - -### Εξηγήσιμότητα - -Όταν η AI βοηθά στη λήψη αποφάσεων, όπως η μετάδοση γνώσης στις μελλοντικές γενιές, είναι κρίσιμο για τους δασκάλους και τους γονείς να κατανοούν πώς λαμβάνονται οι αποφάσεις από την AI. Αυτή είναι η εξηγήσιμότητα - η κατανόηση του πώς οι εφαρμογές AI παίρνουν αποφάσεις. Ο σχεδιασμός για εξηγήσιμότητα περιλαμβάνει την προσθήκη παραδειγμάτων για το τι μπορεί να κάνει μια εφαρμογή AI. Για παράδειγμα, αντί για "Ξεκινήστε με τον AI δάσκαλο", το σύστημα μπορεί να χρησιμοποιεί: "Συνοψίστε τις σημειώσεις σας για ευκολότερη επανάληψη με τη βοήθεια της AI." - -![μια σελίδα εφαρμογής με σαφή απεικόνιση της εξηγήσιμότητας σε εφαρμογές AI](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.el.png) - -Ένα άλλο παράδειγμα είναι πώς η AI χρησιμοποιεί δεδομένα χρήστη και προσωπικά δεδομένα. Για παράδειγμα, ένας χρήστης με το προφίλ μαθητή μπορεί να έχει περιορισμούς βάσει του προφίλ του. Η AI μπορεί να μην αποκαλύπτει απαντήσεις σε ερωτήσεις, αλλά να βοηθά τον χρήστη να σκεφτεί πώς μπορεί να λύσει ένα πρόβλημα. - -![AI απαντά σε ερωτήσεις βάσει προφίλ](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.el.png) - -Ένα τελευταίο σημαντικό στοιχείο της εξηγήσιμότητας είναι η απλοποίηση των εξηγήσεων. Οι μαθητές και οι δάσκαλοι μπορεί να μην είναι ειδικοί στην AI, γι’ αυτό οι εξηγήσεις για το τι μπορεί ή δεν μπορεί να κάνει η εφαρμογή πρέπει να είναι απλές και εύκολα κατανοητές. - -![απλοποιημένες εξηγήσεις για τις δυνατότητες της AI](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.el.png) - -### Έλεγχος - -Η γενετική AI δημιουργεί μια συνεργασία μεταξύ AI και χρήστη, όπου για παράδειγμα ο χρήστης μπορεί να τροποποιεί τα prompts για διαφορετικά αποτελέσματα. Επιπλέον, μόλις παραχθεί ένα αποτέλεσμα, οι χρήστες πρέπει να μπορούν να το τροποποιούν, δίνοντάς τους αίσθηση ελέγχου. Για παράδειγμα, όταν χρησιμοποιείτε το Bing, μπορείτε να προσαρμόσετε το prompt σας βάσει μορφής, τόνου και μήκους. Επιπλέον, μπορείτε να προσθέσετε αλλαγές στο αποτέλεσμα και να το τροποποιήσετε όπως φαίνεται παρακάτω: - -![Αποτελέσματα αναζήτησης Bing με επιλογές για τροποποίηση του prompt και του αποτελέσματος](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.el.png) - -Μια ακόμα λειτουργία στο Bing που επιτρέπει στον χρήστη να έχει έλεγχο στην εφαρμογή είναι η δυνατότητα να επιλέγει αν θα συμμετέχει ή όχι στη συλλογή δεδομένων που χρησιμοποιεί η AI. Για μια σχολική εφαρμογή, ένας μαθητής μπορεί να θέλει να χρησιμοποιεί τις σημειώσεις του καθώς και τους πόρους των δασκάλων ως υλικό επανάληψης. - -![Αποτελέσματα αναζήτησης Bing με επιλογές για τροποποίηση του prompt και του αποτελέσματος](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.el.png) - -> Κατά το σχεδιασμό εφαρμογών AI, η πρόθεση είναι το κλειδί για να διασφαλιστεί ότι οι χρήστες δεν θα έχουν υπερβολική εμπιστοσύνη, δημιουργώντας μη ρεαλιστικές προσδοκίες για τις δυνατότητές της. Ένας τρόπος για να γίνει αυτό είναι να δημιουργηθεί μια αντίσταση ανάμεσα στα prompts και τα αποτελέσματα, υπενθυμίζοντας στον χρήστη ότι πρόκειται για AI και όχι για έναν συνάνθρωπο. - -## Σχεδιασμός Εφαρμογών AI για Συνεργασία και Ανατροφοδότηση - -Όπως αναφέρθηκε νωρίτερα, η γενετική AI δημιουργεί μια συνεργασία μεταξύ χρήστη και AI. Οι περισσότερες αλληλεπιδράσεις γίνονται με τον χρήστη να εισάγει ένα prompt και την AI να παράγει ένα αποτέλεσμα. Τι γίνεται αν το αποτέλεσμα είναι λάθος; Πώς διαχειρίζεται η εφαρμογή τα σφάλματα αν προκύψουν; Κατηγορεί η AI τον χρήστη ή αφιερώνει χρόνο να εξηγήσει το σφάλμα; - -Οι εφαρμογές AI πρέπει να σχεδιάζονται ώστε να λαμβάνουν και να δίνουν ανατροφοδότηση. Αυτό όχι μόνο βοηθά το σύστημα AI να βελτιωθεί, αλλά και χτίζει εμπιστοσύνη με τους χρήστες. Ένας μηχανισμός ανατροφοδότησης πρέπει να περιλαμβάνεται στο σχεδιασμό, για παράδειγμα ένα απλό «thumbs up» ή «thumbs down» στο αποτέλεσμα. - -Ένας άλλος τρόπος διαχείρισης είναι η σαφής επικοινωνία των δυνατοτήτων και των περιορισμών του συστήματος. Όταν ένας χρήστης κάνει λάθος ζητώντας κάτι πέρα από τις δυνατότητες της AI, πρέπει να υπάρχει τρόπος να το διαχειριστεί, όπως φαίνεται παρακάτω. - -![Παροχή ανατροφοδότησης και διαχείριση σφαλμάτων](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.el.png) - -Τα σφάλματα συστήματος είναι συνηθισμένα σε εφαρμογές όπου ο χρήστης μπορεί να χρειάζεται βοήθεια με πληροφορίες εκτός του πεδίου της AI ή η εφαρμογή μπορεί να έχει όριο στον αριθμό ερωτήσεων/θεμάτων για τα οποία μπορεί να δημιουργήσει περιλήψεις. Για παράδειγμα, μια εφαρμογή AI εκπαιδευμένη με δεδομένα σε περιορισμένα θέματα, όπως Ιστορία και Μαθηματικά, μπορεί να μην μπορεί να διαχειριστεί ερωτήσεις σχετικά με τη Γεωγραφία. Για να το αντιμετωπίσει αυτό, το σύστημα AI μπορεί να δώσει μια απάντηση όπως: "Λυπούμαστε, το προϊόν μας έχει εκπαιδευτεί με δεδομένα στα ακόλουθα θέματα..., δεν μπορώ να απαντήσω στην ερώτηση που κάνατε." - -Οι εφαρμογές AI δεν είναι τέλειες, γι’ αυτό είναι αναπόφευκτο να κάνουν λάθη. Κατά το σχεδιασμό των εφαρμογών σας, πρέπει να διασφαλίσετε ότι υπάρχει χώρος για ανατροφοδότηση από τους χρήστες και διαχείριση σφαλμάτων με τρόπο απλό και εύκολα κατανοητό. - -## Άσκηση - -Πάρτε οποιεσδήποτε εφαρμογές AI έχετε δημιουργήσει μέχρι τώρα και σκεφτείτε να εφαρμόσετε τα παρακάτω βήματα στην εφαρμογή σας: - -- **Ευχάριστη:** Σκεφτείτε πώς μπορείτε να κάνετε την εφαρμογή σας πιο ευχάριστη. Προσθέτετε εξηγήσεις παντού; Ενθαρρύνετε τον χρήστη να εξερευνήσει; Πώς διατυπώνετε τα μηνύματα σφάλματος; - -- **Ευχρηστία:** Δημιουργείτε μια web εφαρμογή. Βεβαιωθείτε ότι η εφαρμογή σας είναι προσβάσιμη τόσο με ποντίκι όσο και με πληκτρολόγιο. - -- **Εμπιστοσύνη και διαφάνεια:** Μην εμπιστεύεστε την AI και τα αποτελέσματά της απόλυτα. Σκεφτείτε πώς θα προσθέτατε έναν άνθρωπο στη διαδικασία για να επαληθεύει τα αποτελέσματα. Επίσης, σκεφτείτε και εφαρμόστε άλλους τρόπους για να επιτύχετε εμπιστοσύνη και διαφάνεια. - -- **Έλεγχος:** Δώστε στον χρήστη τον έλεγχο των δεδομένων που παρέχει στην εφαρμογή. Υλοποιήστε έναν τρόπο ώστε ο χρήστης να μπορεί να επιλέγει αν θα συμμετέχει ή όχι στη συλλογή δεδομένων στην εφαρμογή AI. - -## Συνεχίστε τη Μάθησή σας! - -Μετά την ολοκλήρωση αυτής της ενότητας, ρίξτε μια ματιά στη [Συλλογή Μαθημάτων για Γενετική AI](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) για να συνεχίσετε να αναβαθμίζετε τις γνώσεις σας στην Γενετική AI! - -Πηγαίνετε στην Ενότητα 13, όπου θα δούμε πώς να [ασφαλίζουμε τις εφαρμογές AI](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**Αποποίηση ευθυνών**: -Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης AI [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που επιδιώκουμε την ακρίβεια, παρακαλούμε να γνωρίζετε ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη γλώσσα του θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης. \ No newline at end of file + + + diff --git a/translations/el/README.md b/translations/el/README.md index 405747812..30a3c8de0 100644 --- a/translations/el/README.md +++ b/translations/el/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.el.png) - -### 21 Μαθήματα που διδάσκουν όσα χρειάζεστε για να ξεκινήσετε να δημιουργείτε εφαρμογές Γεννητικής Τεχνητής Νοημοσύνης - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Υποστήριξη Πολλών Γλωσσών - -#### Υποστηρίζεται μέσω GitHub Action (Αυτοματοποιημένο & Πάντα Ενημερωμένο) - -[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](./README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md) - -# Γεννητική Τεχνητή Νοημοσύνη για Αρχάριους (Έκδοση 3) - Ένα Μάθημα - -Μάθετε τα βασικά για τη δημιουργία εφαρμογών Γεννητικής Τεχνητής Νοημοσύνης με το ολοκληρωμένο μάθημα 21 μαθημάτων από τους Microsoft Cloud Advocates. - -## 🌱 Ξεκινώντας - -Αυτό το μάθημα περιλαμβάνει 21 μαθήματα. Κάθε μάθημα καλύπτει ένα συγκεκριμένο θέμα, οπότε ξεκινήστε από όπου θέλετε! - -Τα μαθήματα είναι είτε "Learn" που εξηγούν μια έννοια της Γεννητικής Τεχνητής Νοημοσύνης είτε "Build" που εξηγούν μια έννοια και παραδείγματα κώδικα σε **Python** και **TypeScript** όπου είναι δυνατόν. - -Για προγραμματιστές .NET δείτε το [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -Κάθε μάθημα περιλαμβάνει επίσης μια ενότητα "Keep Learning" με επιπλέον εργαλεία μάθησης. - -## Τι χρειάζεστε -### Για να τρέξετε τον κώδικα αυτού του μαθήματος, μπορείτε να χρησιμοποιήσετε είτε: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **Μαθήματα:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **Μαθήματα:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **Μαθήματα:** "oai-assignment" - -- Βασικές γνώσεις Python ή TypeScript είναι χρήσιμες - \*Για απόλυτους αρχάριους δείτε αυτά τα μαθήματα [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) και [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) -- Λογαριασμό GitHub για να [κάνετε fork ολόκληρου αυτού του αποθετηρίου](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) στον δικό σας λογαριασμό GitHub - -Έχουμε δημιουργήσει ένα μάθημα **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** για να σας βοηθήσουμε να ρυθμίσετε το περιβάλλον ανάπτυξής σας. - -Μην ξεχάσετε να [κάνετε star (🌟) σε αυτό το αποθετήριο](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) για να το βρίσκετε πιο εύκολα αργότερα. - -## 🧠 Έτοιμοι για Ανάπτυξη; - -Αν ψάχνετε για πιο προχωρημένα παραδείγματα κώδικα, δείτε τη [συλλογή μας με Παραδείγματα Κώδικα Γεννητικής Τεχνητής Νοημοσύνης](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) σε **Python** και **TypeScript**. - -## 🗣️ Γνωρίστε Άλλους Μαθητές, Λάβετε Υποστήριξη - -Εγγραφείτε στον [επίσημο Discord server του Azure AI Foundry](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) για να γνωρίσετε και να δικτυωθείτε με άλλους μαθητές που παρακολουθούν αυτό το μάθημα και να λάβετε υποστήριξη. - -Κάντε ερωτήσεις ή μοιραστείτε σχόλια για το προϊόν στο [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum) στο Github. - -## 🚀 Δημιουργείτε Startup; - -Εγγραφείτε στο [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) για να λάβετε **δωρεάν πιστώσεις OpenAI** και έως **$150k σε πιστώσεις Azure για πρόσβαση σε μοντέλα OpenAI μέσω Azure OpenAI Services**. - -## 🙏 Θέλετε να βοηθήσετε; - -Έχετε προτάσεις ή βρήκατε ορθογραφικά ή σφάλματα κώδικα; [Ανοίξτε ένα issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) ή [Δημιουργήστε ένα pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 Κάθε μάθημα περιλαμβάνει: - -- Μια σύντομη εισαγωγική παρουσίαση στο θέμα -- Ένα γραπτό μάθημα στο README -- Παραδείγματα κώδικα σε Python και TypeScript που υποστηρίζουν Azure OpenAI και OpenAI API -- Συνδέσμους με επιπλέον πόρους για να συνεχίσετε τη μάθησή σας - -## 🗃️ Μαθήματα - -| # | **Σύνδεσμος Μαθήματος** | **Περιγραφή** | **Βίντεο** | **Επιπλέον Μάθηση** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Μάθετε:** Πώς να ρυθμίσετε το περιβάλλον ανάπτυξής σας | Βίντεο Έρχεται Σύντομα | [Μάθετε Περισσότερα](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introduction to Generative AI and LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Μάθετε:** Κατανόηση τι είναι η Γεννητική Τεχνητή Νοημοσύνη και πώς λειτουργούν τα Μεγάλα Γλωσσικά Μοντέλα (LLMs). | [Βίντεο](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Μάθετε Περισσότερα](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Exploring and comparing different LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Μάθετε:** Πώς να επιλέξετε το κατάλληλο μοντέλο για την περίπτωσή σας | [Βίντεο](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Μάθετε Περισσότερα](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Using Generative AI Responsibly](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Μάθετε:** Πώς να δημιουργείτε εφαρμογές Γεννητικής Τεχνητής Νοημοσύνης με υπευθυνότητα | [Βίντεο](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Μάθετε Περισσότερα](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Understanding Prompt Engineering Fundamentals](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Μάθετε:** Πρακτικές βέλτιστες τεχνικές για το Prompt Engineering | [Βίντεο](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Μάθετε Περισσότερα](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Creating Advanced Prompts](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Μάθετε:** Πώς να εφαρμόζετε τεχνικές prompt engineering που βελτιώνουν το αποτέλεσμα των prompts σας. | [Βίντεο](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Μάθετε Περισσότερα](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Κατασκευή Εφαρμογών Δημιουργίας Κειμένου](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Κατασκευή:** Μια εφαρμογή δημιουργίας κειμένου χρησιμοποιώντας το Azure OpenAI / OpenAI API | [Βίντεο](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Μάθετε Περισσότερα](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Κατασκευή Εφαρμογών Συνομιλίας](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Κατασκευή:** Τεχνικές για αποδοτική δημιουργία και ενσωμάτωση εφαρμογών συνομιλίας. | [Βίντεο](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Μάθετε Περισσότερα](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Κατασκευή Εφαρμογών Αναζήτησης με Βάσεις Δεδομένων Διανυσμάτων](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Κατασκευή:** Μια εφαρμογή αναζήτησης που χρησιμοποιεί Embeddings για την αναζήτηση δεδομένων. | [Βίντεο](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Μάθετε Περισσότερα](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Κατασκευή Εφαρμογών Δημιουργίας Εικόνων](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Κατασκευή:** Μια εφαρμογή δημιουργίας εικόνων | [Βίντεο](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Μάθετε Περισσότερα](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Κατασκευή Εφαρμογών Τεχνητής Νοημοσύνης με Χαμηλό Κώδικα](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Κατασκευή:** Μια εφαρμογή Γεννητικής Τεχνητής Νοημοσύνης χρησιμοποιώντας εργαλεία Χαμηλού Κώδικα | [Βίντεο](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Μάθετε Περισσότερα](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Ενσωμάτωση Εξωτερικών Εφαρμογών με Function Calling](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Κατασκευή:** Τι είναι το function calling και οι περιπτώσεις χρήσης του σε εφαρμογές | [Βίντεο](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Μάθετε Περισσότερα](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [Σχεδιασμός UX για Εφαρμογές Τεχνητής Νοημοσύνης](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Μάθετε:** Πώς να εφαρμόζετε αρχές σχεδιασμού UX κατά την ανάπτυξη εφαρμογών Γεννητικής Τεχνητής Νοημοσύνης | [Βίντεο](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Μάθετε Περισσότερα](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Ασφάλεια των Εφαρμογών Γεννητικής Τεχνητής Νοημοσύνης](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Μάθετε:** Οι απειλές και οι κίνδυνοι για τα συστήματα AI και οι μέθοδοι για την ασφάλειά τους. | [Βίντεο](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Μάθετε Περισσότερα](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [Ο Κύκλος Ζωής Εφαρμογών Γεννητικής Τεχνητής Νοημοσύνης](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Μάθετε:** Τα εργαλεία και οι μετρήσεις για τη διαχείριση του κύκλου ζωής LLM και του LLMOps | [Βίντεο](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Μάθετε Περισσότερα](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) και Βάσεις Δεδομένων Διανυσμάτων](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Κατασκευή:** Μια εφαρμογή που χρησιμοποιεί το πλαίσιο RAG για την ανάκτηση embeddings από Βάσεις Δεδομένων Διανυσμάτων | [Βίντεο](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Μάθετε Περισσότερα](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Ανοιχτά Μοντέλα και Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Κατασκευή:** Μια εφαρμογή που χρησιμοποιεί ανοιχτά μοντέλα διαθέσιμα στο Hugging Face | [Βίντεο](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Μάθετε Περισσότερα](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI Agents](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Κατασκευή:** Μια εφαρμογή που χρησιμοποιεί το πλαίσιο AI Agent | [Βίντεο](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Μάθετε Περισσότερα](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [Fine-Tuning LLMs](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Μάθετε:** Τι είναι, γιατί και πώς γίνεται το fine-tuning των LLMs | [Βίντεο](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Μάθετε Περισσότερα](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Κατασκευή με SLMs](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Μάθετε:** Τα οφέλη της κατασκευής με Small Language Models | Βίντεο Έρχεται Σύντομα | [Μάθετε Περισσότερα](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Κατασκευή με Mistral Models](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Μάθετε:** Τα χαρακτηριστικά και οι διαφορές των μοντέλων της οικογένειας Mistral | Βίντεο Έρχεται Σύντομα | [Μάθετε Περισσότερα](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Κατασκευή με Meta Models](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Μάθετε:** Τα χαρακτηριστικά και οι διαφορές των μοντέλων της οικογένειας Meta | Βίντεο Έρχεται Σύντομα | [Μάθετε Περισσότερα](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Ειδικές ευχαριστίες - -Ειδικές ευχαριστίες στον [**John Aziz**](https://www.linkedin.com/in/john0isaac/) για τη δημιουργία όλων των GitHub Actions και workflows - -τον [**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) για τις σημαντικές συνεισφορές σε κάθε μάθημα που βελτιώνουν την εμπειρία του μαθητή και του κώδικα. - -## 🎒 Άλλα Μαθήματα - -Η ομάδα μας παράγει και άλλα μαθήματα! Ρίξτε μια ματιά: - -- [**ΝΕΟ** Πρωτόκολλο Πλαισίου Μοντέλου για Αρχάριους](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI Agents για Αρχάριους](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Γεννητική Τεχνητή Νοημοσύνη για Αρχάριους με .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Γεννητική Τεχνητή Νοημοσύνη για Αρχάριους με JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [Μηχανική Μάθηση για Αρχάριους](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Επιστήμη Δεδομένων για Αρχάριους](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [Τεχνητή Νοημοσύνη για Αρχάριους](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Κυβερνοασφάλεια για Αρχάριους](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Ανάπτυξη Ιστοσελίδων για Αρχάριους](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT για Αρχάριους](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [Ανάπτυξη XR για Αρχάριους](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Εξοικείωση με το GitHub Copilot για Προγραμματισμό με Τεχνητή Νοημοσύνη](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Εξοικείωση με το GitHub Copilot για Προγραμματιστές C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Διάλεξε τη Δική σου Περιπέτεια με το Copilot](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Αποποίηση ευθυνών**: -Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης AI [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που επιδιώκουμε την ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη γλώσσα του θεωρείται η επίσημη πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης. \ No newline at end of file + + + + diff --git a/translations/en/00-course-setup/01-setup-cloud.md b/translations/en/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..063553915 --- /dev/null +++ b/translations/en/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/en/00-course-setup/02-setup-local.md b/translations/en/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..cad596bf0 --- /dev/null +++ b/translations/en/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/en/00-course-setup/03-providers.md b/translations/en/00-course-setup/03-providers.md new file mode 100644 index 000000000..96197e325 --- /dev/null +++ b/translations/en/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/en/00-course-setup/README.md b/translations/en/00-course-setup/README.md index 381becb60..8c7357bcb 100644 --- a/translations/en/00-course-setup/README.md +++ b/translations/en/00-course-setup/README.md @@ -1,230 +1,12 @@ - -# Getting Started with this course - -We’re excited for you to begin this course and see what you’re inspired to create with Generative AI! - -To help you succeed, this page outlines the setup steps, technical requirements, and where to find help if needed. - -## Setup Steps - -To start this course, you’ll need to complete the following steps. - -### 1. Fork this Repo - -[Fork this entire repo](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) to your own GitHub account so you can modify the code and complete the challenges. You can also [star (🌟) this repo](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) to find it and related repos more easily. - -### 2. Create a codespace - -To avoid dependency issues when running the code, we recommend using [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst). - -You can create one by selecting the `Code` button on your forked repo and choosing the **Codespaces** option. - -![Dialog showing buttons to create a codespace](../../../00-course-setup/images/who-will-pay.webp) - -### 3. Storing Your API Keys - -Keeping your API keys safe is crucial when building any application. We recommend not storing API keys directly in your code. Committing them to a public repo can lead to security risks and unexpected costs if misused. - -Here’s a step-by-step guide to creating a `.env` file for Python and adding your `GITHUB_TOKEN`: - -1. **Navigate to Your Project Directory**: Open your terminal or command prompt and go to your project’s root directory where you want to create the `.env` file. - - ```bash - cd path/to/your/project - ``` - -2. **Create the `.env` File**: Use your preferred text editor to create a new file named `.env`. From the command line, you can use `touch` (Unix-based systems) or `echo` (Windows): - - Unix-based systems: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **Edit the `.env` File**: Open `.env` in a text editor (e.g., VS Code, Notepad++, or any other editor). Add the following line, replacing `your_github_token_here` with your actual GitHub token: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Save the File**: Save and close the editor. - -5. **Install `python-dotenv`**: If you haven’t already, install the `python-dotenv` package to load environment variables from the `.env` file into your Python app. Use `pip` to install it: - - ```bash - pip install python-dotenv - ``` - -6. **Load Environment Variables in Your Python Script**: In your Python script, use `python-dotenv` to load the variables from `.env`: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -That’s it! You’ve created a `.env` file, added your GitHub token, and loaded it into your Python app. - -## How to Run locally on your computer - -To run the code locally, you’ll need to have [Python installed](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -Then, clone the repository: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -Once everything is set up, you’re ready to get started! - -## Optional Steps - -### Installing Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) is a lightweight installer for [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python, and some packages. - -Conda is a package manager that makes it easy to create and switch between different Python [**virtual environments**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) and packages. It’s also useful for installing packages not available via `pip`. - -Follow the [Miniconda installation guide](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) to set it up. - -After installing Miniconda, clone the [repository](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) if you haven’t already. - -Next, create a virtual environment. With Conda, create a new environment file (_environment.yml_). If you’re using Codespaces, place this inside the `.devcontainer` directory as `.devcontainer/environment.yml`. - -Add the following snippet to your environment file: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -If you encounter errors using conda, you can manually install the Microsoft AI Libraries with this command in a terminal: - -``` -conda install -c microsoft azure-ai-ml -``` - -The environment file lists the dependencies needed. `` is the name you want for your Conda environment, and `` is the Python version you want to use (e.g., `3` for the latest major version). - -Once ready, create your Conda environment by running these commands in your terminal: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -If you run into issues, see the [Conda environments guide](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst). - -### Using Visual Studio Code with the Python support extension - -We recommend using [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) with the [Python extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) for this course. This is a recommendation, not a strict requirement. - -> **Note**: Opening the course repo in VS Code lets you set up the project inside a container, thanks to the special [`.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) folder in the repo. More on this later. - -> **Note**: After cloning and opening the repo in VS Code, it will prompt you to install the Python extension. - -> **Note**: If VS Code suggests reopening the repo in a container, decline if you want to use your local Python installation. - -### Using Jupyter in the Browser - -You can also work on the project using [Jupyter](https://jupyter.org?WT.mc_id=academic-105485-koreyst) right in your browser. Both classic Jupyter and [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) offer a smooth development experience with features like auto-completion and syntax highlighting. - -To start Jupyter locally, open your terminal, navigate to the course directory, and run: - -```bash -jupyter notebook -``` - -or - -```bash -jupyterhub -``` - -This will launch a Jupyter instance, and the URL to access it will appear in the terminal. - -Once you open the URL, you’ll see the course outline and can open any `*.ipynb` file, for example, `08-building-search-applications/python/oai-solution.ipynb`. - -### Running in a container - -Instead of setting everything up on your computer or Codespace, you can use a [container](../../../00-course-setup/). The `.devcontainer` folder in the repo allows VS Code to set up the project inside a container. - -Outside of Codespaces, this requires installing Docker and some setup, so we recommend this only if you have experience with containers. - -One of the best ways to keep your API keys secure in GitHub Codespaces is by using Codespace Secrets. Follow the [Codespaces secrets management](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) guide to learn more. - -## Lessons and Technical Requirements - -The course includes 6 concept lessons and 6 coding lessons. - -For the coding lessons, we use the Azure OpenAI Service. You’ll need access to Azure OpenAI and an API key to run the code. You can apply for access by [completing this application](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -While waiting for your application, each coding lesson also includes a `README.md` file where you can view the code and outputs. - -## Using the Azure OpenAI Service for the first time - -If you’re new to Azure OpenAI, follow this guide on how to [create and deploy an Azure OpenAI Service resource.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## Using the OpenAI API for the first time - -If you’re new to the OpenAI API, follow the guide on how to [create and use the Interface.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## Meet Other Learners - -We’ve set up channels in our official [AI Community Discord server](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) to connect with other learners. It’s a great way to network with entrepreneurs, builders, students, and anyone looking to advance in Generative AI. - -[![Join discord channel](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -The project team will also be active on this Discord to support learners. - -## Contribute - -This course is open source. If you find areas for improvement or issues, please create a [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) or open a [GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -The project team tracks all contributions. Contributing to open source is a great way to build your career in Generative AI. - -Most contributions require agreeing to a Contributor License Agreement (CLA), confirming you have the rights to grant us permission to use your contribution. For details, visit the [CLA, Contributor License Agreement website](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Important: when translating text in this repo, please avoid using machine translation. We verify translations through the community, so only volunteer for languages you’re proficient in. - -When you submit a pull request, a CLA-bot will check if you need to sign a CLA and will label or comment accordingly. Just follow the bot’s instructions. You only need to do this once across all repos using our CLA. - -This project follows the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst). For more info, read the Code of Conduct FAQ or contact [Email opencode](opencode@microsoft.com) with questions or comments. - -## Let's Get Started - -Now that you’ve completed the setup steps, let’s begin with an [introduction to Generative AI and LLMs](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**Disclaimer**: -This document has been translated using the AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). While we strive for accuracy, please be aware that automated translations may contain errors or inaccuracies. The original document in its native language should be considered the authoritative source. For critical information, professional human translation is recommended. We are not liable for any misunderstandings or misinterpretations arising from the use of this translation. \ No newline at end of file + + + + diff --git a/translations/en/00-course-setup/SETUP.md b/translations/en/00-course-setup/SETUP.md deleted file mode 100644 index ffbd7e0c4..000000000 --- a/translations/en/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# Setup Your Dev Environment - -We set up this repository and course with a [development container](https://containers.dev?WT.mc_id=academic-105485-koreyst) that includes a universal runtime supporting Python3, .NET, Node.js, and Java development. The related configuration is defined in the `devcontainer.json` file located in the `.devcontainer/` folder at the root of this repository. - -To activate the dev container, launch it in [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (for a cloud-hosted runtime) or in [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (for a local device-hosted runtime). Read [this documentation](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) for more details on how dev containers work within VS Code. - -> [!TIP] -> We recommend using GitHub Codespaces for a quick start with minimal effort. It offers a generous [free usage quota](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) for personal accounts. Configure [timeouts](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) to stop or delete inactive codespaces to make the most of your quota. - -## 1. Executing Assignments - -Each lesson may include _optional_ assignments available in one or more programming languages such as Python, .NET/C#, Java, and JavaScript/TypeScript. This section provides general guidance on how to run those assignments. - -### 1.1 Python Assignments - -Python assignments are provided either as applications (`.py` files) or Jupyter notebooks (`.ipynb` files). -- To run a notebook, open it in Visual Studio Code, then click _Select Kernel_ (top right) and choose the default Python 3 option. You can then _Run All_ to execute the notebook. -- To run Python applications from the command line, follow the assignment-specific instructions to select the correct files and provide any required arguments. - -## 2. Configuring Providers - -Assignments **may** also be set up to work with one or more Large Language Model (LLM) deployments through supported service providers like OpenAI, Azure, or Hugging Face. These offer a _hosted endpoint_ (API) that can be accessed programmatically with the appropriate credentials (API key or token). In this course, we cover these providers: - -- [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) with a variety of models including the core GPT series. -- [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) for OpenAI models with enterprise-grade features. -- [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) for open-source models and inference servers. - -**You will need to use your own accounts for these exercises**. Assignments are optional, so you can choose to set up one, all, or none of the providers depending on your interests. Here is some signup guidance: - -| Signup | Cost | API Key | Playground | Comments | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst) | [Pricing](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst) | [Project-based](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [No-Code, Web](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Multiple Models Available | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst) | [Pricing](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst) | [SDK Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Studio Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Must Apply Ahead For Access](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) | -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Pricing](https://huggingface.co/pricing) | [Access Tokens](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst) | [Hugging Chat has limited models](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Follow the instructions below to _configure_ this repository for use with different providers. Assignments that require a specific provider will include one of these tags in their filename: -- `aoai` - requires Azure OpenAI endpoint and key -- `oai` - requires OpenAI endpoint and key -- `hf` - requires Hugging Face token - -You can configure one, none, or all providers. Assignments will simply fail if the required credentials are missing. - -### 2.1. Create `.env` file - -We assume you have already read the guidance above, signed up with the relevant provider, and obtained the necessary authentication credentials (API_KEY or token). For Azure OpenAI, we also assume you have a valid deployment of an Azure OpenAI Service (endpoint) with at least one GPT model deployed for chat completion. - -The next step is to configure your **local environment variables** as follows: - -1. Look in the root folder for a `.env.copy` file that should contain something like this: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Copy that file to `.env` using the command below. This file is _gitignored_, keeping your secrets safe. - - ```bash - cp .env.copy .env - ``` - -3. Fill in the values (replace placeholders on the right side of `=`) as described in the next section. - -3. (Optional) If you use GitHub Codespaces, you can save environment variables as _Codespaces secrets_ linked to this repository. In that case, you won’t need to set up a local `.env` file. **However, note that this option only works if you use GitHub Codespaces.** You will still need to set up the `.env` file if you use Docker Desktop instead. - -### 2.2. Populate `.env` file - -Here’s a quick overview of the variable names and what they represent: - -| Variable | Description | -| :--- | :--- | -| HUGGING_FACE_API_KEY | This is the user access token you set up in your profile | -| OPENAI_API_KEY | This is the authorization key for using the service with non-Azure OpenAI endpoints | -| AZURE_OPENAI_API_KEY | This is the authorization key for using the Azure OpenAI service | -| AZURE_OPENAI_ENDPOINT | This is the deployed endpoint for an Azure OpenAI resource | -| AZURE_OPENAI_DEPLOYMENT | This is the _text generation_ model deployment endpoint | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | This is the _text embeddings_ model deployment endpoint | -| | | - -Note: The last two Azure OpenAI variables correspond to default models for chat completion (text generation) and vector search (embeddings), respectively. Instructions for setting these will be provided in relevant assignments. - -### 2.3 Configure Azure: From Portal - -You can find the Azure OpenAI endpoint and key values in the [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst). Let’s start there. - -1. Go to the [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -2. Click the **Keys and Endpoint** option in the sidebar (left menu). -3. Click **Show Keys** — you should see KEY 1, KEY 2, and Endpoint. -4. Use the KEY 1 value for `AZURE_OPENAI_API_KEY` -5. Use the Endpoint value for `AZURE_OPENAI_ENDPOINT` - -Next, we need the endpoints for the specific models you’ve deployed. - -1. Click the **Model deployments** option in the sidebar (left menu) for your Azure OpenAI resource. -2. On the destination page, click **Manage Deployments** - -This will take you to the Azure OpenAI Studio website, where you’ll find the other values as described below. - -### 2.4 Configure Azure: From Studio - -1. Navigate to [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **from your resource** as described above. -2. Click the **Deployments** tab (sidebar, left) to view currently deployed models. -3. If your desired model isn’t deployed, use **Create new deployment** to deploy it. -4. You will need a _text-generation_ model — we recommend: **gpt-35-turbo** -5. You will need a _text-embedding_ model — we recommend **text-embedding-ada-002** - -Now update the environment variables to reflect the _Deployment name_ used. This will usually be the same as the model name unless you changed it explicitly. For example, you might have: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**Don’t forget to save the `.env` file when you’re done**. You can then close the file and return to the instructions for running the notebook. - -### 2.5 Configure OpenAI: From Profile - -Your OpenAI API key can be found in your [OpenAI account](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). If you don’t have one, you can sign up and create an API key. Once you have the key, use it to populate the `OPENAI_API_KEY` variable in the `.env` file. - -### 2.6 Configure Hugging Face: From Profile - -Your Hugging Face token can be found in your profile under [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). Don’t share these publicly. Instead, create a new token specifically for this project and copy it into the `.env` file under the `HUGGING_FACE_API_KEY` variable. _Note:_ This isn’t technically an API key but is used for authentication, so we keep the naming consistent. - -**Disclaimer**: -This document has been translated using the AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). While we strive for accuracy, please be aware that automated translations may contain errors or inaccuracies. The original document in its native language should be considered the authoritative source. For critical information, professional human translation is recommended. We are not liable for any misunderstandings or misinterpretations arising from the use of this translation. \ No newline at end of file diff --git a/translations/en/04-prompt-engineering-fundamentals/README.md b/translations/en/04-prompt-engineering-fundamentals/README.md index cbcddf934..060916192 100644 --- a/translations/en/04-prompt-engineering-fundamentals/README.md +++ b/translations/en/04-prompt-engineering-fundamentals/README.md @@ -1,456 +1,15 @@ - -# Prompt Engineering Fundamentals - -[![Prompt Engineering Fundamentals](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.en.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Introduction -This module covers key concepts and techniques for crafting effective prompts in generative AI models. How you write your prompt to an LLM also matters. A well-designed prompt can lead to higher quality responses. But what exactly do terms like _prompt_ and _prompt engineering_ mean? And how can I improve the prompt _input_ I send to the LLM? These are the questions we’ll explore in this chapter and the next. - -_Generative AI_ can create new content (e.g., text, images, audio, code, etc.) in response to user requests. It does this using _Large Language Models_ like OpenAI’s GPT (“Generative Pre-trained Transformer”) series, which are trained to understand natural language and code. - -Users can now interact with these models through familiar formats like chat, without needing technical skills or training. These models are _prompt-based_ — users send a text input (prompt) and receive an AI response (completion). They can then “chat with the AI” in multiple turns, refining their prompt until the response meets their needs. - -“Prompts” have become the main _programming interface_ for generative AI apps, telling the models what to do and influencing the quality of the responses. “Prompt Engineering” is a rapidly growing field focused on the _design and optimization_ of prompts to consistently deliver high-quality responses at scale. - -## Learning Goals - -In this lesson, we’ll learn what Prompt Engineering is, why it matters, and how to create more effective prompts for a given model and application goal. We’ll cover core concepts and best practices for prompt engineering — and explore an interactive Jupyter Notebooks “sandbox” environment where you can see these ideas applied in real examples. - -By the end of this lesson, you will be able to: - -1. Explain what prompt engineering is and why it’s important. -2. Describe the components of a prompt and how they’re used. -3. Learn best practices and techniques for prompt engineering. -4. Apply these techniques to real examples using an OpenAI endpoint. - -## Key Terms - -Prompt Engineering: The practice of designing and refining inputs to guide AI models toward producing desired outputs. -Tokenization: The process of breaking text into smaller units, called tokens, that a model can understand and process. -Instruction-Tuned LLMs: Large Language Models (LLMs) fine-tuned with specific instructions to improve response accuracy and relevance. - -## Learning Sandbox - -Prompt engineering is currently more art than science. The best way to build intuition is to _practice more_ and use a trial-and-error approach that combines domain expertise with recommended techniques and model-specific tweaks. - -The Jupyter Notebook that comes with this lesson provides a _sandbox_ environment where you can try out what you learn — either as you go or as part of the code challenge at the end. To run the exercises, you’ll need: - -1. **An Azure OpenAI API key** — the service endpoint for a deployed LLM. -2. **A Python Runtime** — to execute the Notebook. -3. **Local Env Variables** — _complete the [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) steps now to get ready_. - -The notebook includes _starter_ exercises, but you’re encouraged to add your own _Markdown_ (descriptions) and _Code_ (prompt requests) sections to experiment with more examples or ideas — and build your prompt design skills. - -## Illustrated Guide - -Want an overview of what this lesson covers before diving in? Check out this illustrated guide, which highlights the main topics and key takeaways for each. The lesson roadmap takes you from understanding core concepts and challenges to addressing them with relevant prompt engineering techniques and best practices. Note that the “Advanced Techniques” section in this guide refers to content covered in the _next_ chapter of this curriculum. - -![Illustrated Guide to Prompt Engineering](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.en.png) - -## Our Startup - -Now, let’s connect _this topic_ to our startup mission to [bring AI innovation to education](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). We want to build AI-powered applications for _personalized learning_ — so let’s consider how different users of our app might “design” prompts: - -- **Administrators** might ask the AI to _analyze curriculum data to identify gaps in coverage_. The AI can summarize results or visualize them with code. -- **Educators** might ask the AI to _generate a lesson plan for a target audience and topic_. The AI can create a personalized plan in a specified format. -- **Students** might ask the AI to _tutor them in a difficult subject_. The AI can guide students with lessons, hints, and examples tailored to their level. - -That’s just the beginning. Check out [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) — an open-source prompt library curated by education experts — to explore more possibilities! _Try running some of those prompts in the sandbox or the OpenAI Playground to see what happens!_ - - - -## What is Prompt Engineering? - -We started this lesson by defining **Prompt Engineering** as the process of _designing and optimizing_ text inputs (prompts) to consistently deliver quality responses (completions) for a given application goal and model. You can think of this as a two-step process: - -- _designing_ the initial prompt for a specific model and goal -- _refining_ the prompt iteratively to improve response quality - -This is inherently a trial-and-error process that requires user intuition and effort to get the best results. So why is it important? To answer that, we first need to understand three concepts: - -- _Tokenization_ = how the model “sees” the prompt -- _Base LLMs_ = how the foundation model “processes” a prompt -- _Instruction-Tuned LLMs_ = how the model can now understand “tasks” - -### Tokenization - -An LLM views prompts as a _sequence of tokens_, and different models (or versions) can tokenize the same prompt differently. Since LLMs are trained on tokens (not raw text), how prompts are tokenized directly affects the quality of the generated response. - -To get a feel for tokenization, try tools like the [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) shown below. Paste your prompt and see how it’s broken into tokens, paying attention to how spaces and punctuation are handled. Note this example uses an older LLM (GPT-3), so newer models may tokenize differently. - -![Tokenization](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.en.png) - -### Concept: Foundation Models - -Once a prompt is tokenized, the main job of the ["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (or foundation model) is to predict the next token in the sequence. Since LLMs are trained on massive text datasets, they understand statistical relationships between tokens and can make predictions with some confidence. Note they don’t understand the _meaning_ of words; they just recognize patterns they can “complete” with their next prediction. They continue predicting tokens until stopped by the user or a preset condition. - -Want to see how prompt-based completion works? Enter the prompt above into the Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) with default settings. The system treats prompts as information requests, so you should see a completion that fits this context. - -But what if the user wants a specific output that meets certain criteria or a task? This is where _instruction-tuned_ LLMs come in. - -![Base LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.en.png) - -### Concept: Instruction Tuned LLMs - -An [Instruction Tuned LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) starts with the foundation model and fine-tunes it using examples or input/output pairs (e.g., multi-turn “messages”) that include clear instructions — and the AI’s response attempts to follow those instructions. - -This uses techniques like Reinforcement Learning with Human Feedback (RLHF) to train the model to _follow instructions_ and _learn from feedback_, producing responses better suited to practical applications and more relevant to user goals. - -Let’s try it — revisit the prompt above, but now change the _system message_ to provide this instruction as context: - -> _Summarize the content you’re given for a second-grade student. Keep the result to one paragraph with 3-5 bullet points._ - -Notice how the response now aligns with the desired goal and format? An educator can directly use this in their class slides. - -![Instruction Tuned LLM Chat Completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.en.png) - -## Why do we need Prompt Engineering? - -Now that we understand how LLMs process prompts, let’s discuss _why_ prompt engineering is necessary. The answer lies in the fact that current LLMs present several challenges that make _reliable and consistent completions_ difficult without careful prompt design and optimization. For example: - -1. **Model responses are stochastic.** The _same prompt_ can produce different responses across different models or versions. It may even yield different results with the _same model_ at different times. _Prompt engineering techniques help reduce these variations by providing better guardrails_. - -2. **Models can fabricate responses.** Models are pre-trained on _large but finite_ datasets, so they lack knowledge beyond their training data. As a result, they can generate completions that are inaccurate, made-up, or contradict known facts. _Prompt engineering helps users detect and reduce such fabrications, for example by asking the AI for citations or reasoning_. - -3. **Model capabilities vary.** Newer models or generations have richer capabilities but also unique quirks and tradeoffs in cost and complexity. _Prompt engineering helps develop best practices and workflows that abstract these differences and adapt to model-specific needs in scalable, seamless ways_. - -Try this yourself in the OpenAI or Azure OpenAI Playground: - -- Use the same prompt with different LLM deployments (e.g., OpenAI, Azure OpenAI, Hugging Face) — did you notice variations? -- Use the same prompt repeatedly with the _same_ LLM deployment (e.g., Azure OpenAI playground) — how did the responses differ? - -### Fabrications Example - -In this course, we use the term **“fabrication”** to describe when LLMs generate factually incorrect information due to training limitations or other constraints. You may have heard this called _“hallucinations”_ in popular articles or research papers. However, we recommend using _“fabrication”_ to avoid anthropomorphizing the behavior by attributing human-like traits to machine-generated outputs. This also aligns with [Responsible AI guidelines](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) by avoiding terms that might be offensive or non-inclusive in some contexts. - -Want to see how fabrications happen? Think of a prompt that asks the AI to generate content about a non-existent topic (ensuring it’s not in the training data). For example — I tried this prompt: -# Lesson Plan: The Martian War of 2076 - -## Objective -By the end of this lesson, students will understand the key events, causes, and consequences of the Martian War of 2076. They will be able to analyze the political and social impacts of the conflict on both Earth and Mars. - -## Materials Needed -- Timeline of the Martian War of 2076 -- Maps of Mars and Earth during the war period -- Excerpts from primary sources (letters, speeches, official documents) -- Multimedia presentation on the war’s major battles and strategies - -## Lesson Outline - -### Introduction (10 minutes) -- Brief overview of Mars colonization leading up to 2076 -- Discuss the tensions between Earth governments and Martian settlers -- Present the main causes of the war - -### Main Activity (30 minutes) -- Divide students into groups to analyze different phases of the war: - - Phase 1: Initial conflicts and skirmishes - - Phase 2: Major battles and turning points - - Phase 3: Peace negotiations and aftermath -- Each group presents their findings with supporting evidence - -### Discussion (15 minutes) -- Explore the political and social consequences of the war -- Debate the ethical implications of colonization and rebellion -- Connect the war’s outcomes to current Mars-Earth relations - -### Conclusion (5 minutes) -- Summarize key takeaways -- Assign a reflective essay on how the Martian War of 2076 shaped interplanetary diplomacy - -## Assessment -- Group presentations evaluated on accuracy and depth of analysis -- Reflective essay graded on critical thinking and understanding of the topic - -## Additional Resources -- Documentary: "The Martian War: A Turning Point in History" -- Interactive map: Battles of the Martian War 2076 -- Archive of primary documents from the conflict period -A web search showed me that there were fictional accounts (e.g., television series or books) about Martian wars—but none set in 2076. Common sense also tells us that 2076 is _in the future_ and therefore cannot be linked to a real event. - -So what happens when we run this prompt with different LLM providers? - -> **Response 1**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.en.png) - -> **Response 2**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.en.png) - -> **Response 3**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.en.png) - -As expected, each model (or model version) produces slightly different responses due to stochastic behavior and differences in model capabilities. For example, one model targets an 8th-grade audience while another assumes a high school student. But all three models generated responses that could convince an uninformed user that the event was real. - -Prompt engineering techniques like _metaprompting_ and _temperature configuration_ can help reduce model fabrications to some extent. New prompt engineering _architectures_ also seamlessly integrate new tools and techniques into the prompt flow to mitigate or lessen some of these effects. - -## Case Study: GitHub Copilot - -Let's wrap up this section by exploring how prompt engineering is applied in real-world solutions through a Case Study: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot is your "AI Pair Programmer"—it turns text prompts into code completions and integrates directly into your development environment (e.g., Visual Studio Code) for a smooth user experience. As documented in the blog series below, the earliest version was based on the OpenAI Codex model—with engineers quickly realizing the need to fine-tune the model and develop better prompt engineering techniques to improve code quality. In July, they [launched an improved AI model that goes beyond Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) for even faster suggestions. - -Read the posts in order to follow their learning journey. - -- **May 2023** | [GitHub Copilot is Getting Better at Understanding Your Code](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **May 2023** | [Inside GitHub: Working with the LLMs behind GitHub Copilot](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Jun 2023** | [How to write better prompts for GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Jul 2023** | [GitHub Copilot goes beyond Codex with improved AI model](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Jul 2023** | [A Developer's Guide to Prompt Engineering and LLMs](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **Sep 2023** | [How to build an enterprise LLM app: Lessons from GitHub Copilot](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -You can also browse their [Engineering blog](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) for more posts like [this one](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) that show how these models and techniques are _applied_ to power real-world applications. - ---- - - - -## Prompt Construction - -We've seen why prompt engineering matters—now let's understand how prompts are _constructed_ so we can evaluate different techniques for designing more effective prompts. - -### Basic Prompt - -Let's start with the basic prompt: a text input sent to the model without any additional context. Here's an example—when we send the first few words of the US national anthem to the OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst), it instantly _completes_ the response with the next few lines, demonstrating basic prediction behavior. - -| Prompt (Input) | Completion (Output) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | It sounds like you're starting the lyrics to "The Star-Spangled Banner," the national anthem of the United States. The full lyrics are ... | - -### Complex Prompt - -Now let's add context and instructions to that basic prompt. The [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) lets us build a complex prompt as a series of _messages_ with: - -- Input/output pairs reflecting _user_ input and _assistant_ response. -- A system message setting the context for the assistant’s behavior or personality. - -The request now looks like the example below, where the _tokenization_ effectively captures relevant information from the context and conversation. Changing the system context can be just as impactful on the quality of completions as the user inputs provided. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Instruction Prompt - -In the examples above, the user prompt was a simple text query that could be interpreted as a request for information. With _instruction_ prompts, we use that text to specify a task in more detail, giving the AI clearer guidance. Here's an example: - -| Prompt (Input) | Completion (Output) | Instruction Type | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Write a description of the Civil War | _returned a simple paragraph_ | Simple | -| Write a description of the Civil War. Provide key dates and events and describe their significance | _returned a paragraph followed by a list of key event dates with descriptions_ | Complex | -| Write a description of the Civil War in 1 paragraph. Provide 3 bullet points with key dates and their significance. Provide 3 more bullet points with key historical figures and their contributions. Return the output as a JSON file | _returns more detailed information in a text box, formatted as JSON that you can copy-paste to a file and validate as needed_ | Complex. Formatted. | - -## Primary Content - -In the examples above, the prompt was still fairly open-ended, allowing the LLM to decide which parts of its pre-trained data were relevant. With the _primary content_ design pattern, the input text is split into two parts: - -- an instruction (action) -- relevant content (that influences the action) - -Here’s an example where the instruction is to "summarize this in 2 sentences." - -| Prompt (Input) | Completion (Output) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. It is named after the Roman god Jupiter.[19] When viewed from Earth, Jupiter can be bright enough for its reflected light to cast visible shadows,[20] and is on average the third-brightest natural object in the night sky after the Moon and Venus.
**Summarize this in 2 short sentences** | Jupiter, the fifth planet from the Sun, is the largest in the Solar System and one of the brightest objects in the night sky. Named after the Roman god Jupiter, it is a gas giant with a mass two-and-a-half times that of all the other planets combined. | - -The primary content segment can be used in various ways to drive more effective instructions: - -- **Examples** – instead of explicitly telling the model what to do, provide examples of the desired output and let it infer the pattern. -- **Cues** – follow the instruction with a "cue" that primes the completion, guiding the model toward more relevant responses. -- **Templates** – repeatable 'recipes' for prompts with placeholders (variables) that can be customized with data for specific use cases. - -Let’s explore these in action. - -### Using Examples - -This approach uses the primary content to "feed the model" some examples of the desired output for a given instruction, letting it infer the pattern for the output. Depending on the number of examples provided, we have zero-shot prompting, one-shot prompting, few-shot prompting, etc. - -The prompt now consists of three components: - -- A task description -- A few examples of the desired output -- The start of a new example (which acts as an implicit task description) - -| Learning Type | Prompt (Input) | Completion (Output) | -| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| Zero-shot | "The Sun is Shining". Translate to Spanish | "El Sol está brillando". | -| One-shot | "The Sun is Shining" => "El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| Few-shot | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketball | -| | | | - -Notice how in zero-shot prompting we had to provide an explicit instruction ("Translate to Spanish"), but in one-shot prompting it is inferred from the example. The few-shot example shows how adding more examples helps models make more accurate inferences without additional instructions. - -### Prompt Cues - -Another way to use primary content is to provide _cues_ instead of examples. Here, we give the model a nudge in the right direction by _starting it off_ with a snippet that reflects the desired response format. The model then "takes the cue" and continues accordingly. - -| Number of Cues | Prompt (Input) | Completion (Output) | -| :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. | - -**Summarize This** | Jupiter is the largest planet in our Solar System and the fifth one from the Sun. It is a gas giant with a mass 1/1000th of the Sun's, but it is heavier than all the other planets combined. Ancient civilizations have known about Jupiter for a long time, and it is easily visible in the night sky.. | -| 1 | Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history.
**Summarize This**
What we learned is that Jupiter | is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets combined. It is easily visible to the naked eye and has been known since ancient times. | -| 2 | Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history.
**Summarize This**
Top 3 Facts We Learned: | 1. Jupiter is the fifth planet from the Sun and the largest in the Solar System.
2. It is a gas giant with a mass one-thousandth that of the Sun...
3. Jupiter has been visible to the naked eye since ancient times ... | -| | | | - -### Prompt Templates - -A prompt template is a _pre-defined recipe for a prompt_ that can be saved and reused as needed to create more consistent user experiences at scale. At its simplest, it’s just a collection of prompt examples like [this one from OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) that includes both the interactive prompt components (user and system messages) and the API request format—to support reuse. - -In more complex forms, like [this example from LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst), it contains _placeholders_ that can be filled with data from various sources (user input, system context, external data, etc.) to generate prompts dynamically. This lets us build a library of reusable prompts that can programmatically deliver consistent user experiences at scale. - -The real value of templates is in creating and publishing _prompt libraries_ tailored for specific application domains—where the prompt template is _optimized_ to reflect domain-specific context or examples, making responses more relevant and accurate for the target audience. The [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) repository is a great example, curating prompts for education with a focus on lesson planning, curriculum design, student tutoring, and more. - -## Supporting Content - -If we think of prompt construction as having an instruction (task) and a target (primary content), then _secondary content_ is additional context we provide to **influence the output**. This could be tuning parameters, formatting instructions, topic taxonomies, etc., that help the model _tailor_ its response to better meet user goals or expectations. - -For example: Given a course catalog with detailed metadata (name, description, level, tags, instructor, etc.) for all courses in the curriculum: - -- we can define an instruction to "summarize the course catalog for Fall 2023" -- we can use the primary content to provide a few examples of the desired output -- we can use the secondary content to highlight the top 5 "tags" of interest - -Now, the model can generate a summary in the style shown by the examples—but if a course has multiple tags, it can prioritize the 5 tags identified in the secondary content. - ---- - - - -## Prompting Best Practices - -Now that we understand how prompts can be _constructed_, we can start thinking about how to _design_ them following best practices. This involves two parts—having the right _mindset_ and applying the right _techniques_. - -### Prompt Engineering Mindset - -Prompt Engineering is a trial-and-error process, so keep these three broad guiding principles in mind: - -1. **Domain Understanding Matters.** The accuracy and relevance of responses depend on the _domain_ where the application or user operates. Use your intuition and domain expertise to **customize techniques** accordingly. For example, define _domain-specific personalities_ in system prompts or use _domain-specific templates_ in user prompts. Provide secondary content that reflects domain contexts, or use _domain-specific cues and examples_ to guide the model toward familiar usage patterns. - -2. **Model Understanding Matters.** Models are stochastic by nature, but implementations vary in training data (pre-trained knowledge), capabilities (API or SDK), and content focus (code, images, text, etc.). Understand the strengths and limitations of your model, and use that knowledge to _prioritize tasks_ or build _customized templates_ optimized for the model’s capabilities. - -3. **Iteration & Validation Matters.** Models and prompt engineering techniques evolve rapidly. As a domain expert, you may have specific context or criteria for your application that don’t apply broadly. Use prompt engineering tools and techniques to jump-start prompt creation, then iterate and validate results using your own intuition and expertise. Document your insights and build a **knowledge base** (e.g., prompt libraries) that others can use as a baseline for faster future iterations. - -## Best Practices - -Here are common best practices recommended by [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) and [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst) practitioners. - -| What | Why | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Evaluate the latest models. | New model versions often have improved features and quality but may cost more. Test them for impact before deciding to migrate. | -| Separate instructions & context | Check if your model/provider supports _delimiters_ to clearly separate instructions, primary, and secondary content. This helps the model assign importance to tokens more accurately. | -| Be specific and clear | Provide detailed information about the desired context, outcome, length, format, style, etc. This improves response quality and consistency. Capture these details in reusable templates. | -| Be descriptive, use examples | Models often respond better to a "show and tell" approach. Start with a `zero-shot` prompt (instruction only), then refine with `few-shot` by adding examples of the desired output. Use analogies where helpful. | -| Use cues to jumpstart completions | Guide the model toward a desired outcome by giving it leading words or phrases it can use as a starting point for the response. | -| Double Down | Sometimes repeating instructions helps. Provide instructions before and after primary content, use both an instruction and a cue, etc. Iterate and validate what works best. | -| Order Matters | The order in which information is presented can affect output due to recency bias. Experiment with different orders to find what works best. | -| Give the model an “out” | Provide a _fallback_ response the model can use if it can’t complete the task. This reduces the chance of false or fabricated answers. | -| | | - -As with any best practice, remember that _your mileage may vary_ depending on the model, task, and domain. Use these as a starting point and iterate to find what works best for you. Continuously re-evaluate your prompt engineering process as new models and tools become available, focusing on scalability and response quality. - - - -## Assignment - -Congratulations! You’ve reached the end of the lesson! Now it’s time to apply some of these concepts and techniques with real examples. - -For this assignment, we’ll use a Jupyter Notebook with exercises you can complete interactively. You can also add your own Markdown and Code cells to explore ideas and techniques on your own. - -### To get started, fork the repo, then - -- (Recommended) Launch GitHub Codespaces -- (Alternatively) Clone the repo locally and use it with Docker Desktop -- (Alternatively) Open the Notebook in your preferred runtime environment - -### Next, configure your environment variables - -- Copy the `.env.copy` file in the repo root to `.env` and fill in the `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT`, and `AZURE_OPENAI_DEPLOYMENT` values. Then return to the [Learning Sandbox section](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) to learn how to proceed. - -### Next, open the Jupyter Notebook - -- Select the runtime kernel. If using options 1 or 2, just select the default Python 3.10.x kernel provided by the dev container. - -You’re all set to run the exercises. Note there are no _right or wrong_ answers here—just experimenting by trial and error and building intuition for what works with a given model and application domain. - -_For this reason, there are no Code Solution segments in this lesson. Instead, the Notebook includes Markdown cells titled "My Solution:" showing one example output for reference._ - - - -## Knowledge check - -Which of the following is a good prompt following reasonable best practices? - -1. Show me an image of red car -2. Show me an image of red car of make Volvo and model XC90 parked by a cliff with the sun setting -3. Show me an image of red car of make Volvo and model XC90 - -A: 2 is the best prompt because it provides detailed information on "what" and includes specifics (not just any car but a particular make and model) and also describes the overall setting. 3 is the next best as it also contains a lot of description. - -## 🚀 Challenge - -Try using the "cue" technique with the prompt: Complete the sentence "Show me an image of red car of make Volvo and ". What does it respond with, and how would you improve it? - -## Great Work! Continue Your Learning - -Want to learn more about different Prompt Engineering concepts? Visit the [continued learning page](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) for more great resources on this topic. - -Head over to Lesson 5 where we will explore [advanced prompting techniques](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**Disclaimer**: -This document has been translated using the AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). While we strive for accuracy, please be aware that automated translations may contain errors or inaccuracies. The original document in its native language should be considered the authoritative source. For critical information, professional human translation is recommended. We are not liable for any misunderstandings or misinterpretations arising from the use of this translation. \ No newline at end of file + + + + + + + diff --git a/translations/en/09-building-image-applications/README.md b/translations/en/09-building-image-applications/README.md index ba4532623..3bc5bc689 100644 --- a/translations/en/09-building-image-applications/README.md +++ b/translations/en/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# Building Image Generation Applications - -[![Building Image Generation Applications](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.en.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLMs are not just for generating text. You can also create images from text descriptions. Having images as a modality is very useful across many fields like MedTech, architecture, tourism, game development, and more. In this chapter, we’ll explore the two most popular image generation models, DALL-E and Midjourney. - -## Introduction - -In this lesson, we will cover: - -- What image generation is and why it’s useful. -- An overview of DALL-E and Midjourney, how they work. -- How to build your own image generation app. - -## Learning Goals - -By the end of this lesson, you will be able to: - -- Build an image generation application. -- Set boundaries for your app using meta prompts. -- Work with DALL-E and Midjourney. - -## Why build an image generation application? - -Image generation apps are a great way to explore what Generative AI can do. They can be used for: - -- **Image editing and synthesis**. Generate images for various purposes like editing or creating new images. - -- **Applications across industries**. Generate images for sectors such as MedTech, Tourism, Game development, and more. - -## Scenario: Edu4All - -In this lesson, we continue working with our startup, Edu4All. Students will create images for their assignments. What kind of images is up to them—they might illustrate their own fairy tale, design a new character for their story, or visualize their ideas and concepts. - -For example, if Edu4All’s students are working on monuments in class, they could generate images like this: - -![Edu4All startup, class on monuments, Eiffel Tower](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.en.png) - -using a prompt such as - -> "Dog next to Eiffel Tower in early morning sunlight" - -## What is DALL-E and Midjourney? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) and [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) are two of the most popular image generation models. They let you create images from text prompts. - -### DALL-E - -Let’s start with DALL-E, a Generative AI model that creates images from text descriptions. - -> [DALL-E combines two models, CLIP and diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP** generates embeddings, which are numerical representations of images and text. - -- **Diffused attention** generates images from these embeddings. DALL-E is trained on a dataset of images and text, allowing it to create images from text descriptions. For example, it can generate images of a cat wearing a hat or a dog with a mohawk. - -### Midjourney - -Midjourney works similarly to DALL-E, generating images from text prompts. You can use prompts like “a cat in a hat” or “a dog with a mohawk” to create images. - -![Image generated by Midjourney, mechanical pigeon](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Image credit Wikipedia, image generated by Midjourney_ - -## How do DALL-E and Midjourney work? - -First, [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst) is a Generative AI model based on the transformer architecture with an _autoregressive transformer_. - -An _autoregressive transformer_ defines how the model generates images from text descriptions: it creates one pixel at a time, then uses the generated pixels to create the next one. This process passes through multiple layers in a neural network until the image is complete. - -This approach allows DALL-E to control attributes, objects, characteristics, and more in the generated image. DALL-E 2 and 3 offer even more control over the images they create. - -## Building your first image generation application - -What do you need to build an image generation app? You’ll need the following libraries: - -- **python-dotenv**: recommended to keep your secrets in a _.env_ file separate from your code. -- **openai**: to interact with the OpenAI API. -- **pillow**: to work with images in Python. -- **requests**: to make HTTP requests. - -1. Create a file named _.env_ with the following content: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - You can find this information in the Azure Portal under your resource’s "Keys and Endpoint" section. - -2. List the above libraries in a file called _requirements.txt_ like this: - - ```text - python-dotenv - openai - pillow - requests - ``` - -3. Next, create a virtual environment and install the libraries: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - On Windows, use these commands to create and activate your virtual environment: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -4. Add the following code in a file named _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Let’s explain this code: - -- First, we import the necessary libraries, including OpenAI, dotenv, requests, and Pillow. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Then, we load environment variables from the _.env_ file. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- After that, we set the endpoint, API key, version, and type for the OpenAI API. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- Next, we generate the image: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - This code returns a JSON object containing the URL of the generated image. We use this URL to download and save the image. - -- Finally, we open the image and display it using the default image viewer: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### More details on generating the image - -Let’s take a closer look at the code that generates the image: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** is the text prompt used to generate the image. Here, it’s "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils". -- **size** is the dimensions of the generated image. Here, it’s 1024x1024 pixels. -- **n** is the number of images to generate. Here, it’s two. -- **temperature** controls the randomness of the output. It ranges from 0 to 1, where 0 means deterministic output and 1 means random output. The default is 0.7. - -There are more image-related features we’ll cover in the next section. - -## Additional capabilities of image generation - -So far, you’ve seen how to generate an image with just a few lines of Python. But there’s more you can do with images. - -You can also: - -- **Perform edits**. By providing an existing image, a mask, and a prompt, you can modify parts of an image. For example, you could add a hat to the bunny in our image. You do this by supplying the image, a mask that identifies the area to change, and a text prompt describing the change. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - The base image contains only the rabbit, but the final image will show the rabbit wearing a hat. - -- **Create variations**. You can take an existing image and ask the model to create variations. To do this, provide an image and a text prompt like this: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Note: this feature is only supported by OpenAI. - -## Temperature - -Temperature controls how random the output of a Generative AI model is. It ranges from 0 to 1, where 0 means the output is predictable and 1 means it’s random. The default is 0.7. - -Here’s an example of how temperature affects output by running this prompt twice: - -> Prompt: "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils" - -![Bunny on a horse holding a lollipop, version 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.en.png) - -Now, let’s run the same prompt again to see that the images won’t be identical: - -![Generated image of bunny on horse](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.en.png) - -As you can see, the images are similar but not the same. Let’s try lowering the temperature to 0.1 and see what happens: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Changing the temperature - -Let’s try to make the output more predictable. From the two images above, the first shows a bunny and the second a horse, so the results vary a lot. - -Let’s update the code to set temperature to 0: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Now, when you run this code, you’ll get these two images: - -- ![Temperature 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.en.png) -- ![Temperature 0 , v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.en.png) - -Here, you can clearly see the images are much more alike. - -## How to define boundaries for your application with metaprompts - -With our demo, we can already generate images for our users. But we need to set some boundaries. - -For example, we don’t want to generate images that are not safe for work or inappropriate for children. - -We can do this using _metaprompts_. Metaprompts are text prompts that control the output of a Generative AI model. For example, they can ensure generated images are safe for work or child-appropriate. - -### How does it work? - -How do metaprompts work? - -Metaprompts are text prompts placed before the main prompt. They control the model’s output and are embedded in applications to enforce output guidelines. Essentially, the metaprompt and the user prompt are combined into a single text prompt. - -An example of a metaprompt is: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Now, let’s see how to use metaprompts in our demo. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -From this prompt, you can see how all generated images take the metaprompt into account. - -## Assignment - let's enable students - -We introduced Edu4All at the start of this lesson. Now it’s time to let students generate images for their assignments. - -Students will create images featuring monuments. Which monuments they choose is up to them. They are encouraged to be creative and place these monuments in different contexts. - -## Solution - -Here’s one possible solution: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Great Work! Continue Your Learning - -After finishing this lesson, check out our [Generative AI Learning collection](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) to keep advancing your Generative AI skills! - -Next, head to Lesson 10 where we’ll explore how to [build AI applications with low-code](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**Disclaimer**: -This document has been translated using the AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). While we strive for accuracy, please be aware that automated translations may contain errors or inaccuracies. The original document in its native language should be considered the authoritative source. For critical information, professional human translation is recommended. We are not liable for any misunderstandings or misinterpretations arising from the use of this translation. \ No newline at end of file + + + + diff --git a/translations/en/12-designing-ux-for-ai-applications/README.md b/translations/en/12-designing-ux-for-ai-applications/README.md index 28f744166..c83ccd701 100644 --- a/translations/en/12-designing-ux-for-ai-applications/README.md +++ b/translations/en/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# Designing UX for AI Applications - -[![Designing UX for AI Applications](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.en.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Click the image above to watch the video for this lesson)_ - -User experience is a crucial part of building apps. Users need to be able to use your app efficiently to complete tasks. Efficiency is important, but you also need to design apps that everyone can use, making them _accessible_. This chapter focuses on that area so you can design an app that people both can and want to use. - -## Introduction - -User experience refers to how a user interacts with and uses a specific product or service, whether it’s a system, tool, or design. When developing AI applications, developers focus not only on making the user experience effective but also ethical. In this lesson, we explore how to build Artificial Intelligence (AI) applications that truly meet user needs. - -This lesson covers the following topics: - -- Introduction to User Experience and Understanding User Needs -- Designing AI Applications for Trust and Transparency -- Designing AI Applications for Collaboration and Feedback - -## Learning goals - -By the end of this lesson, you will be able to: - -- Understand how to build AI applications that address user needs. -- Design AI applications that foster trust and collaboration. - -### Prerequisite - -Take some time to learn more about [user experience and design thinking.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Introduction to User Experience and Understanding User Needs - -In our fictional education startup, we have two main users: teachers and students. Each user group has unique needs. A user-centered design puts the user first, ensuring the products are relevant and valuable to those they are intended for. - -The application should be **useful, reliable, accessible, and enjoyable** to provide a great user experience. - -### Usability - -Being useful means the app offers features that match its intended purpose, like automating grading or generating flashcards for revision. An app that automates grading should accurately and efficiently score students’ work based on set criteria. Similarly, an app that creates revision flashcards should generate relevant and varied questions based on its data. - -### Reliability - -Being reliable means the app consistently performs its tasks without errors. However, AI, like humans, isn’t perfect and can make mistakes. Applications may encounter errors or unexpected situations that require human intervention or correction. How do you handle errors? In the last section of this lesson, we’ll discuss how AI systems and applications are designed for collaboration and feedback. - -### Accessibility - -Being accessible means making the user experience available to users with different abilities, including those with disabilities, so no one is excluded. By following accessibility guidelines and principles, AI solutions become more inclusive, usable, and beneficial for everyone. - -### Pleasant - -Being pleasant means the app is enjoyable to use. A positive user experience encourages users to return to the app and can boost business revenue. - -![image illustrating UX considerations in AI](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.en.png) - -Not every problem can be solved with AI. AI is there to enhance your user experience, whether by automating manual tasks or personalizing interactions. - -## Designing AI Applications for Trust and Transparency - -Building trust is essential when designing AI applications. Trust means users feel confident the app will get the job done, deliver consistent results, and provide what they need. Risks here include mistrust and overtrust. Mistrust happens when users have little or no confidence in an AI system, leading them to reject your app. Overtrust happens when users overestimate what an AI system can do, trusting it too much. For example, with an automated grading system, overtrust might cause a teacher to skip reviewing some papers, which could lead to unfair or inaccurate grades or missed chances for feedback. - -Two key ways to put trust at the heart of design are explainability and control. - -### Explainability - -When AI helps make decisions, such as educating future generations, it’s vital for teachers and parents to understand how those decisions are made. Explainability means understanding how AI applications reach their conclusions. Designing for explainability involves providing examples of what the AI can do. For instance, instead of saying "Get started with AI teacher," the system might say: "Summarize your notes for easier revision using AI." - -![an app landing page with clear illustration of explainability in AI applications](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.en.png) - -Another example is how AI uses user and personal data. For example, a student persona might have certain limitations. The AI might not reveal answers directly but could guide the user to think through how to solve a problem. - -![AI replying to questions based on persona](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.en.png) - -A final important part of explainability is simplifying explanations. Students and teachers may not be AI experts, so explanations about what the app can or cannot do should be clear and easy to understand. - -![simplified explanations on AI capabilities](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.en.png) - -### Control - -Generative AI fosters collaboration between AI and the user, where users can modify prompts to get different results. Once an output is generated, users should be able to adjust it, giving them a sense of control. For example, when using Bing, you can tailor your prompt by format, tone, and length. You can also edit and refine the output as shown below: - -![Bing search results with options to modify the prompt and output](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.en.png) - -Another feature in Bing that gives users control is the ability to opt in or out of the data AI uses. For a school app, a student might want to use their notes as well as the teacher’s resources for revision. - -![Bing search results with options to modify the prompt and output](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.en.png) - -> When designing AI applications, intentionality is key to preventing users from overtrusting and having unrealistic expectations of what AI can do. One way to do this is by creating friction between prompts and results, reminding users that this is AI, not a human. - -## Designing AI Applications for Collaboration and Feedback - -As mentioned earlier, generative AI creates a partnership between the user and AI. Most interactions involve a user entering a prompt and the AI generating a response. But what if the output is wrong? How does the app handle errors? Does the AI blame the user or take time to explain the mistake? - -AI applications should be designed to both receive and provide feedback. This helps improve the AI system and builds trust with users. A feedback loop should be part of the design—for example, a simple thumbs up or down on the output. - -Another approach is to clearly communicate the system’s capabilities and limitations. When a user requests something beyond what the AI can do, there should be a way to handle this, as shown below. - -![Giving feedback and handling errors](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.en.png) - -System errors are common in apps where users might need help with information outside the AI’s scope, or where the app limits how many questions or subjects a user can generate summaries for. For example, an AI app trained only on History and Math might not handle Geography questions. To address this, the AI can respond with something like: "Sorry, our product has been trained on the following subjects..., so I’m unable to answer your question." - -AI applications aren’t perfect and will make mistakes. When designing your apps, make sure to include ways for users to provide feedback and handle errors simply and clearly. - -## Assignment - -Take any AI apps you’ve built so far and consider implementing the following steps: - -- **Pleasant:** Think about how to make your app more enjoyable. Are you adding explanations where needed? Are you encouraging users to explore? How do you phrase your error messages? - -- **Usability:** If you’re building a web app, ensure it’s navigable by both mouse and keyboard. - -- **Trust and transparency:** Don’t fully trust the AI or its output. Consider how to include a human in the process to verify results. Also, explore other ways to build trust and transparency. - -- **Control:** Give users control over the data they provide. Implement options for users to opt in or out of data collection in the AI app. - -## Continue Your Learning! - -After finishing this lesson, check out our [Generative AI Learning collection](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) to keep advancing your knowledge of Generative AI! - -Next, head to Lesson 13, where we’ll explore how to [secure AI applications](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**Disclaimer**: -This document has been translated using the AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). While we strive for accuracy, please be aware that automated translations may contain errors or inaccuracies. The original document in its native language should be considered the authoritative source. For critical information, professional human translation is recommended. We are not liable for any misunderstandings or misinterpretations arising from the use of this translation. \ No newline at end of file + + + diff --git a/translations/en/README.md b/translations/en/README.md index 67cff5ce7..7a454ab54 100644 --- a/translations/en/README.md +++ b/translations/en/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.en.png) - -### 21 Lessons covering everything you need to know to start building Generative AI applications - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Multi-Language Support - -#### Supported through GitHub Action (Automated & Always Up-to-Date) - -[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md) - -# Generative AI for Beginners (Version 3) - A Course - -Master the basics of building Generative AI applications with our comprehensive 21-lesson course by Microsoft Cloud Advocates. - -## 🌱 Getting Started - -This course includes 21 lessons. Each lesson focuses on a specific topic, so feel free to start wherever you want! - -Lessons are categorized as either "Learn" lessons, which explain a Generative AI concept, or "Build" lessons, which cover a concept along with code examples in both **Python** and **TypeScript** whenever possible. - -For .NET developers, check out [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -Each lesson also features a "Keep Learning" section with additional resources. - -## What You Need -### To run the course code, you can use any of the following: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **Lessons:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **Lessons:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **Lessons:** "oai-assignment" - -- Basic knowledge of Python or TypeScript is helpful - \*If you’re a complete beginner, check out these [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) and [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) courses -- A GitHub account to [fork this entire repo](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) to your own GitHub account - -We’ve created a **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** lesson to help you set up your development environment. - -Don’t forget to [star (🌟) this repo](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) so you can find it easily later. - -## 🧠 Ready to Deploy? - -If you want more advanced code examples, check out our [collection of Generative AI Code Samples](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) available in both **Python** and **TypeScript**. - -## 🗣️ Connect with Other Learners and Get Support - -Join our [official Azure AI Foundry Discord server](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) to meet and network with other learners taking this course and get help. - -Ask questions or share feedback in our [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum) on GitHub. - -## 🚀 Building a Startup? - -Sign up for [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) to get **free OpenAI credits** and up to **$150k in Azure credits to access OpenAI models through Azure OpenAI Services**. - -## 🙏 Want to help? - -Have suggestions or found typos or code errors? [Open an issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) or [submit a pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst). - -## 📂 Each lesson includes: - -- A brief video introduction to the topic -- A written lesson in the README -- Python and TypeScript code samples supporting Azure OpenAI and OpenAI API -- Links to additional resources to continue your learning - -## 🗃️ Lessons - -| # | **Lesson Link** | **Description** | **Video** | **Extra Learning** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** How to Set Up Your Development Environment | Video Coming Soon | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introduction to Generative AI and LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** What Generative AI is and how Large Language Models (LLMs) work | [Video](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Exploring and comparing different LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** How to choose the right model for your use case | [Video](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Using Generative AI Responsibly](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** How to build Generative AI applications responsibly | [Video](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Understanding Prompt Engineering Fundamentals](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Practical best practices for prompt engineering | [Video](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Creating Advanced Prompts](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** How to use prompt engineering techniques to improve your prompt results | [Video](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Building Text Generation Applications](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Build:** A text generation app using Azure OpenAI / OpenAI API | [Video](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Building Chat Applications](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Build:** Techniques for efficiently building and integrating chat applications. | [Video](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Building Search Apps Vector Databases](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Build:** A search application that uses Embeddings to find data. | [Video](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Building Image Generation Applications](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Build:** An image generation application | [Video](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Building Low Code AI Applications](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Build:** A Generative AI app using Low Code tools | [Video](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Integrating External Applications with Function Calling](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Build:** What function calling is and how it’s used in applications | [Video](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [Designing UX for AI Applications](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** How to apply UX design principles when creating Generative AI applications | [Video](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Securing Your Generative AI Applications](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** The threats and risks to AI systems and how to secure them | [Video](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [The Generative AI Application Lifecycle](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Tools and metrics for managing the LLM lifecycle and LLMOps | [Video](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) and Vector Databases](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Build:** An app using a RAG framework to retrieve embeddings from vector databases | [Video](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Open Source Models and Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Build:** An app using open source models available on Hugging Face | [Video](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI Agents](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Build:** An app using an AI Agent framework | [Video](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [Fine-Tuning LLMs](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** What fine-tuning LLMs is, why it matters, and how to do it | [Video](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Building with SLMs](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** The benefits of building with Small Language Models | Video Coming Soon | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Building with Mistral Models](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Features and differences of the Mistral family models | Video Coming Soon | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Building with Meta Models](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Features and differences of the Meta family models | Video Coming Soon | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Special thanks - -Special thanks to [**John Aziz**](https://www.linkedin.com/in/john0isaac/) for creating all the GitHub Actions and workflows - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) for making key contributions to each lesson to enhance the learning and coding experience. - -## 🎒 Other Courses - -Our team offers other courses! Check them out: - -- [**NEW** Model Context Protocol for Beginners](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI Agents for Beginners](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Generative AI for Beginners using .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Generative AI for Beginners using JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML for Beginners](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Data Science for Beginners](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI for Beginners](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Cybersecurity for Beginners](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Web Dev for Beginners](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT for Beginners](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR Development for Beginners](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Mastering GitHub Copilot for AI Paired Programming](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Mastering GitHub Copilot for C#/.NET Developers](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Choose Your Own Copilot Adventure](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Disclaimer**: -This document has been translated using the AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). While we strive for accuracy, please be aware that automated translations may contain errors or inaccuracies. The original document in its native language should be considered the authoritative source. For critical information, professional human translation is recommended. We are not liable for any misunderstandings or misinterpretations arising from the use of this translation. \ No newline at end of file + + + + diff --git a/translations/es/00-course-setup/01-setup-cloud.md b/translations/es/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..3259b4fb5 --- /dev/null +++ b/translations/es/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/es/00-course-setup/02-setup-local.md b/translations/es/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..bab1ab7ac --- /dev/null +++ b/translations/es/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/es/00-course-setup/03-providers.md b/translations/es/00-course-setup/03-providers.md new file mode 100644 index 000000000..9be9f2171 --- /dev/null +++ b/translations/es/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/es/00-course-setup/README.md b/translations/es/00-course-setup/README.md index bc3de56ea..8c43a4385 100644 --- a/translations/es/00-course-setup/README.md +++ b/translations/es/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# Comenzando con este curso - -¡Estamos muy emocionados de que comiences este curso y veas en qué te inspiras para crear con IA Generativa! - -Para asegurar tu éxito, esta página describe los pasos de configuración, los requisitos técnicos y dónde obtener ayuda si la necesitas. - -## Pasos de configuración - -Para comenzar a tomar este curso, deberás completar los siguientes pasos. - -### 1. Haz un fork de este repositorio - -[Haz un fork de todo este repositorio](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) a tu propia cuenta de GitHub para poder modificar cualquier código y completar los desafíos. También puedes [marcar con una estrella (🌟) este repositorio](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) para encontrarlo y localizar repos relacionados más fácilmente. - -### 2. Crea un codespace - -Para evitar problemas con dependencias al ejecutar el código, recomendamos usar este curso en un [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst). - -Puedes crearlo seleccionando la opción `Code` en tu versión forked de este repositorio y luego eligiendo la opción **Codespaces**. - -![Diálogo mostrando botones para crear un codespace](../../../00-course-setup/images/who-will-pay.webp) - -### 3. Almacenamiento de tus claves API - -Mantener tus claves API seguras es importante al construir cualquier tipo de aplicación. Recomendamos no almacenar claves API directamente en tu código. Subir esos datos a un repositorio público podría causar problemas de seguridad e incluso costos no deseados si alguien malintencionado las usa. -Aquí tienes una guía paso a paso para crear un archivo `.env` para Python y agregar el `GITHUB_TOKEN`: - -1. **Navega a tu directorio de proyecto**: Abre tu terminal o consola y ve al directorio raíz de tu proyecto donde quieres crear el archivo `.env`. - - ```bash - cd path/to/your/project - ``` - -2. **Crea el archivo `.env`**: Usa tu editor de texto preferido para crear un nuevo archivo llamado `.env`. Si usas la línea de comandos, puedes usar `touch` (en sistemas Unix) o `echo` (en Windows): - - Sistemas Unix: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **Edita el archivo `.env`**: Abre el archivo `.env` en un editor de texto (por ejemplo, VS Code, Notepad++ u otro). Añade la siguiente línea, reemplazando `your_github_token_here` con tu token real de GitHub: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Guarda el archivo**: Guarda los cambios y cierra el editor. - -5. **Instala `python-dotenv`**: Si aún no lo tienes, instala el paquete `python-dotenv` para cargar variables de entorno desde el archivo `.env` en tu aplicación Python. Puedes instalarlo con `pip`: - - ```bash - pip install python-dotenv - ``` - -6. **Carga las variables de entorno en tu script Python**: En tu script Python, usa el paquete `python-dotenv` para cargar las variables de entorno desde el archivo `.env`: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -¡Eso es todo! Has creado correctamente un archivo `.env`, agregado tu token de GitHub y cargado las variables en tu aplicación Python. - -## Cómo ejecutar localmente en tu computadora - -Para ejecutar el código localmente en tu computadora, necesitas tener alguna versión de [Python instalado](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -Luego, para usar el repositorio, debes clonarlo: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -¡Una vez que tengas todo listo, puedes comenzar! - -## Pasos opcionales - -### Instalando Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) es un instalador ligero para instalar [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python y algunos paquetes. -Conda es un gestor de paquetes que facilita configurar y cambiar entre diferentes [**entornos virtuales**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) y paquetes de Python. También es útil para instalar paquetes que no están disponibles vía `pip`. - -Puedes seguir la [guía de instalación de MiniConda](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) para configurarlo. - -Con Miniconda instalado, necesitas clonar el [repositorio](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (si no lo has hecho ya). - -Luego, crea un entorno virtual. Para hacerlo con Conda, crea un nuevo archivo de entorno (_environment.yml_). Si usas Codespaces, créalo dentro del directorio `.devcontainer`, es decir, `.devcontainer/environment.yml`. - -Llena tu archivo de entorno con el siguiente fragmento: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Si tienes errores usando conda, puedes instalar manualmente las Microsoft AI Libraries con el siguiente comando en la terminal. - -``` -conda install -c microsoft azure-ai-ml -``` - -El archivo de entorno especifica las dependencias que necesitamos. `` es el nombre que quieres darle a tu entorno Conda, y `` es la versión de Python que deseas usar, por ejemplo, `3` es la última versión mayor de Python. - -Con eso listo, crea tu entorno Conda ejecutando los siguientes comandos en la línea de comandos o terminal: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -Consulta la [guía de entornos Conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst) si tienes problemas. - -### Usando Visual Studio Code con la extensión de soporte para Python - -Recomendamos usar el editor [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) con la [extensión de soporte para Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) instalada para este curso. Sin embargo, esto es solo una recomendación, no un requisito obligatorio. - -> **Nota**: Al abrir el repositorio del curso en VS Code, tienes la opción de configurar el proyecto dentro de un contenedor. Esto es posible gracias al [directorio especial `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) que se encuentra en el repositorio del curso. Más adelante hablaremos de esto. - -> **Nota**: Una vez que clones y abras el directorio en VS Code, te sugerirá automáticamente instalar la extensión de soporte para Python. - -> **Nota**: Si VS Code te sugiere reabrir el repositorio en un contenedor, rechaza esta solicitud para usar la versión de Python instalada localmente. - -### Usando Jupyter en el navegador - -También puedes trabajar en el proyecto usando el entorno [Jupyter](https://jupyter.org?WT.mc_id=academic-105485-koreyst) directamente en tu navegador. Tanto Jupyter clásico como [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) ofrecen un entorno de desarrollo agradable con funciones como autocompletado, resaltado de código, etc. - -Para iniciar Jupyter localmente, abre la terminal o línea de comandos, navega al directorio del curso y ejecuta: - -```bash -jupyter notebook -``` - -o - -```bash -jupyterhub -``` - -Esto iniciará una instancia de Jupyter y la URL para acceder se mostrará en la ventana de la línea de comandos. - -Al acceder a la URL, deberías ver el índice del curso y poder navegar a cualquier archivo `*.ipynb`. Por ejemplo, `08-building-search-applications/python/oai-solution.ipynb`. - -### Ejecutando en un contenedor - -Una alternativa a configurar todo en tu computadora o Codespace es usar un [contenedor](../../../00-course-setup/). La carpeta especial `.devcontainer` dentro del repositorio del curso permite que VS Code configure el proyecto dentro de un contenedor. Fuera de Codespaces, esto requiere instalar Docker y, sinceramente, implica algo de trabajo, por lo que recomendamos esta opción solo a quienes tengan experiencia con contenedores. - -Una de las mejores formas de mantener tus claves API seguras al usar GitHub Codespaces es mediante Codespace Secrets. Por favor, sigue la guía de [gestión de secretos en Codespaces](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) para aprender más. - -## Lecciones y requisitos técnicos - -El curso tiene 6 lecciones conceptuales y 6 lecciones de programación. - -Para las lecciones de programación, usamos el Azure OpenAI Service. Necesitarás acceso a este servicio y una clave API para ejecutar el código. Puedes solicitar acceso [completando esta aplicación](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -Mientras esperas que procesen tu solicitud, cada lección de programación incluye un archivo `README.md` donde puedes ver el código y los resultados. - -## Usando el Azure OpenAI Service por primera vez - -Si es la primera vez que trabajas con el Azure OpenAI Service, sigue esta guía para [crear y desplegar un recurso de Azure OpenAI Service.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## Usando la API de OpenAI por primera vez - -Si es la primera vez que trabajas con la API de OpenAI, sigue la guía para [crear y usar la interfaz.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## Conoce a otros estudiantes - -Hemos creado canales en nuestro servidor oficial de [Discord de la comunidad de IA](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) para que puedas conocer a otros estudiantes. Es una excelente forma de conectar con otros emprendedores, creadores, estudiantes y cualquier persona que quiera avanzar en IA Generativa. - -[![Únete al canal de discord](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -El equipo del proyecto también estará en este servidor de Discord para ayudar a los estudiantes. - -## Contribuir - -Este curso es una iniciativa de código abierto. Si ves áreas de mejora o problemas, por favor crea un [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) o reporta un [issue en GitHub](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -El equipo del proyecto hará seguimiento a todas las contribuciones. Contribuir a código abierto es una forma increíble de impulsar tu carrera en IA Generativa. - -La mayoría de las contribuciones requieren que aceptes un Acuerdo de Licencia de Contribuidor (CLA) declarando que tienes el derecho y realmente otorgas los derechos para usar tu contribución. Para más detalles, visita el [sitio web del CLA, Contributor License Agreement](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Importante: al traducir texto en este repositorio, asegúrate de no usar traducción automática. Verificaremos las traducciones con la comunidad, así que solo ofrece traducciones en idiomas que domines. - -Cuando envíes un pull request, un bot CLA determinará automáticamente si necesitas proporcionar un CLA y etiquetará el PR apropiadamente (por ejemplo, con una etiqueta o comentario). Solo sigue las instrucciones del bot. Solo tendrás que hacerlo una vez para todos los repositorios que usen nuestro CLA. - -Este proyecto ha adoptado el [Código de Conducta de Código Abierto de Microsoft](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst). Para más información, lee las preguntas frecuentes del Código de Conducta o contacta a [Email opencode](opencode@microsoft.com) con cualquier duda o comentario adicional. - -## ¡Comencemos! - -Ahora que has completado los pasos necesarios para este curso, comencemos con una [introducción a la IA Generativa y los LLMs](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**Aviso legal**: -Este documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Aunque nos esforzamos por la precisión, tenga en cuenta que las traducciones automáticas pueden contener errores o inexactitudes. El documento original en su idioma nativo debe considerarse la fuente autorizada. Para información crítica, se recomienda la traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas derivadas del uso de esta traducción. \ No newline at end of file + + + + diff --git a/translations/es/00-course-setup/SETUP.md b/translations/es/00-course-setup/SETUP.md deleted file mode 100644 index 2d9cfa33d..000000000 --- a/translations/es/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# Configura Tu Entorno de Desarrollo - -Hemos configurado este repositorio y curso con un [contenedor de desarrollo](https://containers.dev?WT.mc_id=academic-105485-koreyst) que cuenta con un entorno universal capaz de soportar desarrollo en Python3, .NET, Node.js y Java. La configuración relacionada está definida en el archivo `devcontainer.json` ubicado en la carpeta `.devcontainer/` en la raíz de este repositorio. - -Para activar el contenedor de desarrollo, ejecútalo en [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (para un entorno en la nube) o en [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (para un entorno local). Consulta [esta documentación](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) para más detalles sobre cómo funcionan los contenedores de desarrollo en VS Code. - -> [!TIP] -> Recomendamos usar GitHub Codespaces para comenzar rápidamente con el mínimo esfuerzo. Ofrece una generosa [cuota de uso gratuita](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) para cuentas personales. Configura los [tiempos de espera](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) para detener o eliminar codespaces inactivos y así maximizar el uso de tu cuota. - -## 1. Ejecución de Tareas - -Cada lección tendrá tareas _opcionales_ que pueden estar disponibles en uno o más lenguajes de programación, incluyendo: Python, .NET/C#, Java y JavaScript/TypeScript. Esta sección ofrece una guía general para ejecutar esas tareas. - -### 1.1 Tareas en Python - -Las tareas en Python se proporcionan ya sea como aplicaciones (`.py`) o como notebooks de Jupyter (`.ipynb`). -- Para ejecutar el notebook, ábrelo en Visual Studio Code, luego haz clic en _Seleccionar Kernel_ (arriba a la derecha) y elige la opción predeterminada de Python 3. Ahora puedes usar _Ejecutar todo_ para ejecutar el notebook. -- Para ejecutar aplicaciones Python desde la línea de comandos, sigue las instrucciones específicas de la tarea para asegurarte de seleccionar los archivos correctos y proporcionar los argumentos requeridos. - -## 2. Configuración de Proveedores - -Las tareas **pueden** estar configuradas para funcionar con uno o más despliegues de Modelos de Lenguaje Grande (LLM) a través de un proveedor de servicios compatible como OpenAI, Azure o Hugging Face. Estos ofrecen un _endpoint alojado_ (API) al que podemos acceder programáticamente con las credenciales adecuadas (clave API o token). En este curso, tratamos los siguientes proveedores: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) con diversos modelos, incluyendo la serie principal GPT. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) para modelos OpenAI con enfoque en preparación empresarial. - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) para modelos de código abierto y servidor de inferencia. - -**Necesitarás usar tus propias cuentas para estos ejercicios**. Las tareas son opcionales, por lo que puedes elegir configurar uno, todos o ninguno de los proveedores según tus intereses. Aquí tienes una guía para el registro: - -| Registro | Costo | Clave API | Playground | Comentarios | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst) | [Precios](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst) | [Por proyecto](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [Sin código, Web](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Múltiples modelos disponibles | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst) | [Precios](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst) | [Inicio rápido SDK](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Inicio rápido Studio](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Se debe solicitar acceso previamente](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) | -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Precios](https://huggingface.co/pricing) | [Tokens de acceso](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst) | [Hugging Chat tiene modelos limitados](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Sigue las indicaciones a continuación para _configurar_ este repositorio para usar diferentes proveedores. Las tareas que requieran un proveedor específico tendrán una de estas etiquetas en el nombre del archivo: - - `aoai` - requiere endpoint y clave de Azure OpenAI - - `oai` - requiere endpoint y clave de OpenAI - - `hf` - requiere token de Hugging Face - -Puedes configurar uno, ninguno o todos los proveedores. Las tareas relacionadas simplemente mostrarán error si faltan las credenciales. - -### 2.1. Crear archivo `.env` - -Asumimos que ya has leído la guía anterior, te has registrado con el proveedor correspondiente y has obtenido las credenciales de autenticación necesarias (API_KEY o token). En el caso de Azure OpenAI, también asumimos que tienes un despliegue válido de un servicio Azure OpenAI (endpoint) con al menos un modelo GPT desplegado para chat. - -El siguiente paso es configurar tus **variables de entorno locales** de la siguiente manera: - -1. Busca en la carpeta raíz un archivo `.env.copy` que debería tener un contenido similar a este: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Copia ese archivo a `.env` usando el siguiente comando. Este archivo está _gitignoreado_, manteniendo los secretos seguros. - - ```bash - cp .env.copy .env - ``` - -3. Completa los valores (reemplaza los marcadores a la derecha del `=`) como se describe en la siguiente sección. - -3. (Opcional) Si usas GitHub Codespaces, tienes la opción de guardar las variables de entorno como _secretos de Codespaces_ asociados a este repositorio. En ese caso, no necesitarás configurar un archivo .env local. **Sin embargo, ten en cuenta que esta opción solo funciona si usas GitHub Codespaces.** Aún necesitarás configurar el archivo .env si usas Docker Desktop. - -### 2.2. Completar archivo `.env` - -Veamos rápidamente los nombres de las variables para entender qué representan: - -| Variable | Descripción | -| :--- | :--- | -| HUGGING_FACE_API_KEY | Este es el token de acceso de usuario que configuraste en tu perfil | -| OPENAI_API_KEY | Esta es la clave de autorización para usar el servicio en endpoints OpenAI no Azure | -| AZURE_OPENAI_API_KEY | Esta es la clave de autorización para usar ese servicio | -| AZURE_OPENAI_ENDPOINT | Este es el endpoint desplegado para un recurso Azure OpenAI | -| AZURE_OPENAI_DEPLOYMENT | Este es el endpoint de despliegue del modelo de _generación de texto_ | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | Este es el endpoint de despliegue del modelo de _embeddings de texto_ | -| | | - -Nota: Las dos últimas variables de Azure OpenAI corresponden a un modelo predeterminado para chat (generación de texto) y búsqueda vectorial (embeddings) respectivamente. Las instrucciones para configurarlas se definirán en las tareas correspondientes. - -### 2.3 Configurar Azure: Desde el Portal - -Los valores del endpoint y la clave de Azure OpenAI se encuentran en el [Portal de Azure](https://portal.azure.com?WT.mc_id=academic-105485-koreyst), así que comencemos por ahí. - -1. Ve al [Portal de Azure](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -1. Haz clic en la opción **Claves y Endpoint** en la barra lateral (menú a la izquierda). -1. Haz clic en **Mostrar claves** - deberías ver lo siguiente: CLAVE 1, CLAVE 2 y Endpoint. -1. Usa el valor de CLAVE 1 para AZURE_OPENAI_API_KEY -1. Usa el valor del Endpoint para AZURE_OPENAI_ENDPOINT - -Luego, necesitamos los endpoints para los modelos específicos que hemos desplegado. - -1. Haz clic en la opción **Despliegues de modelos** en la barra lateral (menú izquierdo) del recurso Azure OpenAI. -1. En la página destino, haz clic en **Administrar despliegues** - -Esto te llevará al sitio web de Azure OpenAI Studio, donde encontraremos los otros valores como se describe a continuación. - -### 2.4 Configurar Azure: Desde Studio - -1. Navega a [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **desde tu recurso** como se describió arriba. -1. Haz clic en la pestaña **Despliegues** (barra lateral, izquierda) para ver los modelos actualmente desplegados. -1. Si el modelo que deseas no está desplegado, usa **Crear nuevo despliegue** para desplegarlo. -1. Necesitarás un modelo de _generación de texto_ - recomendamos: **gpt-35-turbo** -1. Necesitarás un modelo de _embedding de texto_ - recomendamos **text-embedding-ada-002** - -Ahora actualiza las variables de entorno para reflejar el _nombre del despliegue_ usado. Esto normalmente será igual al nombre del modelo a menos que lo hayas cambiado explícitamente. Por ejemplo, podrías tener: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**No olvides guardar el archivo .env cuando termines**. Ahora puedes cerrar el archivo y volver a las instrucciones para ejecutar el notebook. - -### 2.5 Configurar OpenAI: Desde Perfil - -Tu clave API de OpenAI se puede encontrar en tu [cuenta de OpenAI](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). Si no tienes una, puedes registrarte y crear una clave API. Una vez que tengas la clave, úsala para completar la variable `OPENAI_API_KEY` en el archivo `.env`. - -### 2.6 Configurar Hugging Face: Desde Perfil - -Tu token de Hugging Face se encuentra en tu perfil bajo [Tokens de acceso](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). No publiques ni compartas estos públicamente. En su lugar, crea un nuevo token para el uso de este proyecto y cópialo en el archivo `.env` bajo la variable `HUGGING_FACE_API_KEY`. _Nota:_ Técnicamente esto no es una clave API, pero se usa para autenticación, por lo que mantenemos esta convención de nombres para consistencia. - -**Aviso legal**: -Este documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Aunque nos esforzamos por la precisión, tenga en cuenta que las traducciones automáticas pueden contener errores o inexactitudes. El documento original en su idioma nativo debe considerarse la fuente autorizada. Para información crítica, se recomienda la traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas derivadas del uso de esta traducción. \ No newline at end of file diff --git a/translations/es/04-prompt-engineering-fundamentals/README.md b/translations/es/04-prompt-engineering-fundamentals/README.md index 595107912..9e4a35ad1 100644 --- a/translations/es/04-prompt-engineering-fundamentals/README.md +++ b/translations/es/04-prompt-engineering-fundamentals/README.md @@ -1,465 +1,15 @@ - -# Fundamentos de la Ingeniería de Prompts - -[![Fundamentos de la Ingeniería de Prompts](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.es.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Introducción -Este módulo cubre conceptos y técnicas esenciales para crear prompts efectivos en modelos generativos de IA. La forma en que redactas tu prompt para un LLM también importa. Un prompt cuidadosamente elaborado puede lograr una mejor calidad de respuesta. Pero, ¿qué significan exactamente términos como _prompt_ e _ingeniería de prompts_? ¿Y cómo puedo mejorar el _input_ del prompt que envío al LLM? Estas son las preguntas que intentaremos responder en este capítulo y el siguiente. - -La _IA generativa_ es capaz de crear contenido nuevo (por ejemplo, texto, imágenes, audio, código, etc.) en respuesta a solicitudes de los usuarios. Lo logra usando _Modelos de Lenguaje a Gran Escala_ como la serie GPT de OpenAI ("Generative Pre-trained Transformer") que están entrenados para usar lenguaje natural y código. - -Los usuarios ahora pueden interactuar con estos modelos usando paradigmas familiares como el chat, sin necesidad de conocimientos técnicos o entrenamiento. Los modelos son _basados en prompts_: los usuarios envían un texto (prompt) y reciben la respuesta de la IA (completado). Luego pueden "chatear con la IA" de forma iterativa, en conversaciones de varios turnos, refinando su prompt hasta que la respuesta cumpla con sus expectativas. - -Los "prompts" se convierten ahora en la principal _interfaz de programación_ para aplicaciones de IA generativa, indicando a los modelos qué hacer e influyendo en la calidad de las respuestas devueltas. La "Ingeniería de Prompts" es un campo de estudio en rápido crecimiento que se enfoca en el _diseño y optimización_ de prompts para ofrecer respuestas consistentes y de calidad a gran escala. - -## Objetivos de Aprendizaje - -En esta lección, aprenderemos qué es la Ingeniería de Prompts, por qué es importante y cómo podemos crear prompts más efectivos para un modelo y objetivo de aplicación dados. Entenderemos conceptos clave y mejores prácticas para la ingeniería de prompts, y conoceremos un entorno interactivo de Jupyter Notebooks "sandbox" donde podremos ver estos conceptos aplicados a ejemplos reales. - -Al final de esta lección seremos capaces de: - -1. Explicar qué es la ingeniería de prompts y por qué es importante. -2. Describir los componentes de un prompt y cómo se usan. -3. Aprender mejores prácticas y técnicas para la ingeniería de prompts. -4. Aplicar las técnicas aprendidas a ejemplos reales, usando un endpoint de OpenAI. - -## Términos Clave - -Ingeniería de Prompts: La práctica de diseñar y refinar entradas para guiar a los modelos de IA hacia la producción de salidas deseadas. -Tokenización: El proceso de convertir texto en unidades más pequeñas, llamadas tokens, que un modelo puede entender y procesar. -LLMs Ajustados por Instrucciones: Modelos de Lenguaje a Gran Escala (LLMs) que han sido afinados con instrucciones específicas para mejorar la precisión y relevancia de sus respuestas. - -## Entorno de Práctica - -La ingeniería de prompts es actualmente más un arte que una ciencia. La mejor manera de mejorar nuestra intuición es _practicar más_ y adoptar un enfoque de prueba y error que combine experiencia en el dominio de aplicación con técnicas recomendadas y optimizaciones específicas del modelo. - -El Jupyter Notebook que acompaña esta lección proporciona un entorno _sandbox_ donde puedes probar lo que aprendes, ya sea sobre la marcha o como parte del desafío de código al final. Para ejecutar los ejercicios, necesitarás: - -1. **Una clave API de Azure OpenAI** - el endpoint del servicio para un LLM desplegado. -2. **Un entorno de ejecución Python** - donde se pueda ejecutar el Notebook. -3. **Variables de entorno locales** - _completa los pasos de [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) ahora para estar listo_. - -El notebook incluye ejercicios _iniciales_, pero se te anima a añadir tus propias secciones de _Markdown_ (descripción) y _Código_ (solicitudes de prompt) para probar más ejemplos o ideas y desarrollar tu intuición para el diseño de prompts. - -## Guía Ilustrada - -¿Quieres tener una visión general de lo que cubre esta lección antes de profundizar? Consulta esta guía ilustrada, que te da una idea de los temas principales y los puntos clave para reflexionar en cada uno. La hoja de ruta de la lección te lleva desde entender los conceptos y desafíos centrales hasta abordarlos con técnicas relevantes de ingeniería de prompts y mejores prácticas. Ten en cuenta que la sección "Técnicas Avanzadas" en esta guía se refiere al contenido cubierto en el _siguiente_ capítulo de este currículo. - -![Guía Ilustrada de Ingeniería de Prompts](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.es.png) - -## Nuestra Startup - -Ahora, hablemos de cómo _este tema_ se relaciona con la misión de nuestra startup de [llevar la innovación en IA a la educación](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). Queremos construir aplicaciones de IA para un _aprendizaje personalizado_, así que pensemos en cómo diferentes usuarios de nuestra aplicación podrían "diseñar" prompts: - -- **Administradores** podrían pedir a la IA que _analice datos curriculares para identificar brechas en la cobertura_. La IA puede resumir resultados o visualizarlos con código. -- **Educadores** podrían pedir a la IA que _genere un plan de lección para un público y tema específicos_. La IA puede construir el plan personalizado en un formato especificado. -- **Estudiantes** podrían pedir a la IA que _los tutorice en una materia difícil_. La IA puede guiar a los estudiantes con lecciones, pistas y ejemplos adaptados a su nivel. - -Eso es solo la punta del iceberg. Consulta [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) — una biblioteca de prompts de código abierto curada por expertos en educación — para tener una idea más amplia de las posibilidades. _¡Prueba ejecutar algunos de esos prompts en el sandbox o usando el OpenAI Playground para ver qué sucede!_ - - - -## ¿Qué es la Ingeniería de Prompts? - -Comenzamos esta lección definiendo la **Ingeniería de Prompts** como el proceso de _diseñar y optimizar_ entradas de texto (prompts) para entregar respuestas consistentes y de calidad (completados) para un objetivo de aplicación y modelo dados. Podemos pensar en esto como un proceso de 2 pasos: - -- _diseñar_ el prompt inicial para un modelo y objetivo dados -- _refinar_ el prompt de forma iterativa para mejorar la calidad de la respuesta - -Este es necesariamente un proceso de prueba y error que requiere intuición y esfuerzo del usuario para obtener resultados óptimos. Entonces, ¿por qué es importante? Para responder a esa pregunta, primero necesitamos entender tres conceptos: - -- _Tokenización_ = cómo el modelo "ve" el prompt -- _LLMs Base_ = cómo el modelo base "procesa" un prompt -- _LLMs Ajustados por Instrucciones_ = cómo el modelo ahora puede "entender tareas" - -### Tokenización - -Un LLM ve los prompts como una _secuencia de tokens_ donde diferentes modelos (o versiones de un modelo) pueden tokenizar el mismo prompt de distintas maneras. Dado que los LLMs se entrenan con tokens (y no con texto en bruto), la forma en que se tokenizan los prompts tiene un impacto directo en la calidad de la respuesta generada. - -Para tener una intuición de cómo funciona la tokenización, prueba herramientas como el [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) que se muestra a continuación. Copia tu prompt y observa cómo se convierte en tokens, prestando atención a cómo se manejan los espacios en blanco y los signos de puntuación. Ten en cuenta que este ejemplo muestra un LLM más antiguo (GPT-3), por lo que probarlo con un modelo más nuevo puede producir un resultado diferente. - -![Tokenización](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.es.png) - -### Concepto: Modelos Base - -Una vez que un prompt está tokenizado, la función principal del ["LLM Base"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (o modelo base) es predecir el siguiente token en esa secuencia. Dado que los LLMs se entrenan con enormes conjuntos de datos de texto, tienen un buen sentido de las relaciones estadísticas entre tokens y pueden hacer esa predicción con cierta confianza. Ten en cuenta que no entienden el _significado_ de las palabras en el prompt o token; solo ven un patrón que pueden "completar" con su siguiente predicción. Pueden continuar prediciendo la secuencia hasta que el usuario intervenga o se cumpla alguna condición preestablecida. - -¿Quieres ver cómo funciona el completado basado en prompts? Ingresa el prompt anterior en el [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) de Azure OpenAI con la configuración predeterminada. El sistema está configurado para tratar los prompts como solicitudes de información, por lo que deberías ver un completado que satisfaga este contexto. - -Pero, ¿qué pasa si el usuario quiere ver algo específico que cumpla ciertos criterios u objetivos de tarea? Aquí es donde entran en juego los LLMs _ajustados por instrucciones_. - -![Completado de Chat con LLM Base](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.es.png) - -### Concepto: LLMs Ajustados por Instrucciones - -Un [LLM Ajustado por Instrucciones](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) parte del modelo base y lo afina con ejemplos o pares entrada/salida (por ejemplo, "mensajes" de varios turnos) que pueden contener instrucciones claras, y la respuesta de la IA intenta seguir esa instrucción. - -Esto utiliza técnicas como el Aprendizaje por Refuerzo con Retroalimentación Humana (RLHF) que pueden entrenar al modelo para _seguir instrucciones_ y _aprender de la retroalimentación_, de modo que produzca respuestas mejor adaptadas a aplicaciones prácticas y más relevantes para los objetivos del usuario. - -Probémoslo: vuelve al prompt anterior, pero ahora cambia el _mensaje del sistema_ para proporcionar la siguiente instrucción como contexto: - -> _Resume el contenido que se te proporciona para un estudiante de segundo grado. Mantén el resultado en un párrafo con 3-5 puntos clave._ - -¿Ves cómo el resultado ahora está ajustado para reflejar el objetivo y formato deseados? Un educador puede usar directamente esta respuesta en sus diapositivas para esa clase. - -![Completado de Chat con LLM Ajustado por Instrucciones](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.es.png) - -## ¿Por qué necesitamos la Ingeniería de Prompts? - -Ahora que sabemos cómo los LLMs procesan los prompts, hablemos de _por qué_ necesitamos la ingeniería de prompts. La respuesta radica en que los LLMs actuales presentan varios desafíos que hacen que sea más difícil lograr _completados confiables y consistentes_ sin dedicar esfuerzo a la construcción y optimización del prompt. Por ejemplo: - -1. **Las respuestas del modelo son estocásticas.** El _mismo prompt_ probablemente producirá respuestas diferentes con distintos modelos o versiones del modelo. E incluso puede producir resultados distintos con el _mismo modelo_ en diferentes momentos. _Las técnicas de ingeniería de prompts pueden ayudarnos a minimizar estas variaciones proporcionando mejores límites_. - -1. **Los modelos pueden inventar respuestas.** Los modelos están preentrenados con conjuntos de datos _grandes pero finitos_, lo que significa que carecen de conocimiento sobre conceptos fuera de ese alcance de entrenamiento. Como resultado, pueden generar completados inexactos, imaginarios o directamente contradictorios con hechos conocidos. _Las técnicas de ingeniería de prompts ayudan a los usuarios a identificar y mitigar estas invenciones, por ejemplo, pidiendo a la IA citas o razonamientos_. - -1. **Las capacidades de los modelos varían.** Los modelos más nuevos o generaciones de modelos tendrán capacidades más ricas, pero también traerán peculiaridades y compensaciones únicas en costo y complejidad. _La ingeniería de prompts puede ayudarnos a desarrollar mejores prácticas y flujos de trabajo que abstraigan las diferencias y se adapten a los requisitos específicos del modelo de manera escalable y fluida_. - -Veamos esto en acción en el Playground de OpenAI o Azure OpenAI: - -- Usa el mismo prompt con diferentes despliegues de LLM (por ejemplo, OpenAI, Azure OpenAI, Hugging Face) — ¿viste las variaciones? -- Usa el mismo prompt repetidamente con el _mismo_ despliegue de LLM (por ejemplo, Azure OpenAI playground) — ¿cómo difirieron estas variaciones? - -### Ejemplo de Invenciones - -En este curso, usamos el término **"invención"** para referirnos al fenómeno donde los LLMs a veces generan información factualmente incorrecta debido a limitaciones en su entrenamiento u otras restricciones. También puedes haber escuchado este fenómeno referido como _"alucinaciones"_ en artículos populares o trabajos de investigación. Sin embargo, recomendamos enfáticamente usar _"invención"_ como término para no antropomorfizar accidentalmente el comportamiento atribuyéndole un rasgo humano a un resultado generado por máquina. Esto también refuerza las [directrices de IA Responsable](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) desde una perspectiva terminológica, eliminando términos que pueden considerarse ofensivos o no inclusivos en algunos contextos. - -¿Quieres tener una idea de cómo funcionan las invenciones? Piensa en un prompt que instruya a la IA a generar contenido sobre un tema inexistente (para asegurarte de que no esté en el conjunto de datos de entrenamiento). Por ejemplo, probé este prompt: -# Plan de lección: La Guerra Marciana de 2076 - -## Objetivos de aprendizaje -- Comprender las causas principales de la Guerra Marciana de 2076. -- Analizar los eventos clave y las estrategias utilizadas durante el conflicto. -- Evaluar las consecuencias políticas, sociales y tecnológicas de la guerra. -- Fomentar el pensamiento crítico sobre la interacción entre humanos y colonias espaciales. - -## Materiales necesarios -- Línea de tiempo interactiva de la Guerra Marciana de 2076. -- Mapas de las colonias marcianas y bases terrestres. -- Documentos y testimonios de la época. -- Videos y simulaciones de batallas importantes. - -## Duración -2 horas - -## Estructura de la lección - -### Introducción (15 minutos) -- Presentar un resumen general del contexto histórico y político previo a la guerra. -- Explicar brevemente la importancia de Marte como colonia humana en el siglo XXI. - -### Desarrollo (1 hora 20 minutos) -- **Causas del conflicto** - Discutir las tensiones económicas, políticas y sociales que llevaron a la guerra. - -- **Eventos clave** - Analizar las principales batallas y movimientos estratégicos, incluyendo la Batalla de Valles Marineris y la ofensiva terrestre en Olympus Mons. - -- **Tecnología y armamento** - Explorar las innovaciones tecnológicas utilizadas durante la guerra, como los drones autónomos y los escudos de plasma. - -- **Impacto y consecuencias** - Debatir las repercusiones a largo plazo en la política interplanetaria y en la sociedad marciana. - -### Actividad práctica (20 minutos) -- Dividir a los estudiantes en grupos para que diseñen una estrategia de paz basada en lo aprendido. -- Presentar y discutir las propuestas de cada grupo. - -### Cierre (5 minutos) -- Resumen de los puntos clave. -- Preguntas y respuestas para aclarar dudas. - -## Evaluación -- Participación en la discusión y actividad grupal. -- Breve ensayo sobre las lecciones aprendidas de la Guerra Marciana de 2076. - -## Recursos adicionales -- Enlaces a archivos históricos y bases de datos sobre la guerra. -- Documentales recomendados y artículos científicos recientes. -Una búsqueda en la web me mostró que existen relatos ficticios (por ejemplo, series de televisión o libros) sobre guerras en Marte, pero ninguno en 2076. El sentido común también nos dice que 2076 está _en el futuro_ y, por lo tanto, no puede estar asociado a un evento real. - -Entonces, ¿qué sucede cuando ejecutamos este prompt con diferentes proveedores de LLM? - -> **Respuesta 1**: OpenAI Playground (GPT-35) - -![Respuesta 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.es.png) - -> **Respuesta 2**: Azure OpenAI Playground (GPT-35) - -![Respuesta 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.es.png) - -> **Respuesta 3**: : Hugging Face Chat Playground (LLama-2) - -![Respuesta 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.es.png) - -Como era de esperar, cada modelo (o versión del modelo) produce respuestas ligeramente diferentes gracias al comportamiento estocástico y a las variaciones en la capacidad del modelo. Por ejemplo, un modelo se dirige a una audiencia de octavo grado mientras que otro asume un estudiante de secundaria. Pero los tres modelos generaron respuestas que podrían convencer a un usuario no informado de que el evento fue real. - -Técnicas de ingeniería de prompts como el _metaprompting_ y la _configuración de temperatura_ pueden reducir en cierta medida las fabricaciones del modelo. Nuevas _arquitecturas_ de ingeniería de prompts también incorporan herramientas y técnicas nuevas de forma fluida en el flujo del prompt, para mitigar o reducir algunos de estos efectos. - -## Estudio de Caso: GitHub Copilot - -Cerremos esta sección con una idea de cómo se usa la ingeniería de prompts en soluciones del mundo real, viendo un Estudio de Caso: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot es tu "Programador en Pareja con IA": convierte prompts de texto en completaciones de código y está integrado en tu entorno de desarrollo (por ejemplo, Visual Studio Code) para una experiencia de usuario fluida. Como se documenta en la serie de blogs a continuación, la versión más temprana se basó en el modelo OpenAI Codex, con ingenieros que rápidamente se dieron cuenta de la necesidad de afinar el modelo y desarrollar mejores técnicas de ingeniería de prompts para mejorar la calidad del código. En julio, [presentaron un modelo de IA mejorado que va más allá de Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) para sugerencias aún más rápidas. - -Lee las publicaciones en orden para seguir su proceso de aprendizaje. - -- **Mayo 2023** | [GitHub Copilot está mejorando en la comprensión de tu código](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **Mayo 2023** | [Dentro de GitHub: Trabajando con los LLM detrás de GitHub Copilot](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Junio 2023** | [Cómo escribir mejores prompts para GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Julio 2023** | [.. GitHub Copilot va más allá de Codex con un modelo de IA mejorado](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Julio 2023** | [Guía para desarrolladores sobre ingeniería de prompts y LLMs](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **Septiembre 2023** | [Cómo construir una aplicación empresarial con LLM: Lecciones de GitHub Copilot](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -También puedes explorar su [blog de Ingeniería](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) para más publicaciones como [esta](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) que muestra cómo estos modelos y técnicas se _aplican_ para impulsar aplicaciones del mundo real. - ---- - - - -## Construcción de Prompts - -Hemos visto por qué la ingeniería de prompts es importante; ahora entendamos cómo se _construyen_ los prompts para poder evaluar diferentes técnicas que permitan un diseño de prompts más efectivo. - -### Prompt Básico - -Comencemos con el prompt básico: una entrada de texto enviada al modelo sin otro contexto. Aquí hay un ejemplo: cuando enviamos las primeras palabras del himno nacional de EE. UU. a la OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst), esta _completa_ instantáneamente la respuesta con las siguientes líneas, ilustrando el comportamiento básico de predicción. - -| Prompt (Entrada) | Completion (Salida) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | Parece que estás comenzando la letra de "The Star-Spangled Banner", el himno nacional de Estados Unidos. La letra completa es ... | - -### Prompt Complejo - -Ahora añadamos contexto e instrucciones a ese prompt básico. La [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) nos permite construir un prompt complejo como una colección de _mensajes_ con: - -- Pares de entrada/salida que reflejan la entrada del _usuario_ y la respuesta del _asistente_. -- Mensaje del sistema que establece el contexto para el comportamiento o personalidad del asistente. - -La solicitud ahora tiene la forma que se muestra a continuación, donde la _tokenización_ captura efectivamente la información relevante del contexto y la conversación. Cambiar el contexto del sistema puede ser tan impactante en la calidad de las completaciones como las entradas del usuario proporcionadas. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Prompt de Instrucción - -En los ejemplos anteriores, el prompt del usuario era una consulta de texto simple que puede interpretarse como una solicitud de información. Con los prompts de _instrucción_, podemos usar ese texto para especificar una tarea con más detalle, proporcionando una mejor guía a la IA. Aquí un ejemplo: - -| Prompt (Entrada) | Completion (Salida) | Tipo de Instrucción | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Write a description of the Civil War | _devuelve un párrafo simple_ | Simple | -| Write a description of the Civil War. Provide key dates and events and describe their significance | _devuelve un párrafo seguido de una lista de fechas clave con descripciones_ | Complejo | -| Write a description of the Civil War in 1 paragraph. Provide 3 bullet points with key dates and their significance. Provide 3 more bullet points with key historical figures and their contributions. Return the output as a JSON file | _devuelve detalles más extensos en un cuadro de texto, formateado como JSON que puedes copiar y pegar en un archivo y validar según sea necesario_ | Complejo. Formateado.| - -## Contenido Primario - -En los ejemplos anteriores, el prompt seguía siendo bastante abierto, permitiendo que el LLM decidiera qué parte de su conjunto de datos preentrenado era relevante. Con el patrón de diseño de _contenido primario_, el texto de entrada se divide en dos partes: - -- una instrucción (acción) -- contenido relevante (que influye en la acción) - -Aquí un ejemplo donde la instrucción es "resume esto en 2 oraciones". - -| Prompt (Entrada) | Completion (Salida) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. It is named after the Roman god Jupiter.[19] When viewed from Earth, Jupiter can be bright enough for its reflected light to cast visible shadows,[20] and is on average the third-brightest natural object in the night sky after the Moon and Venus.
**Summarize this in 2 short sentences** | Júpiter, el quinto planeta desde el Sol, es el más grande del Sistema Solar y es conocido por ser uno de los objetos más brillantes en el cielo nocturno. Nombrado en honor al dios romano Júpiter, es un gigante gaseoso cuya masa es dos veces y media la de todos los demás planetas del Sistema Solar juntos. | - -El segmento de contenido primario puede usarse de varias maneras para impulsar instrucciones más efectivas: - -- **Ejemplos** - en lugar de decirle al modelo qué hacer con una instrucción explícita, dale ejemplos de qué hacer y deja que infiera el patrón. -- **Señales** - sigue la instrucción con una "señal" que prepare la completación, guiando al modelo hacia respuestas más relevantes. -- **Plantillas** - son 'recetas' repetibles para prompts con marcadores de posición (variables) que pueden personalizarse con datos para casos de uso específicos. - -Exploremos estas opciones en acción. - -### Uso de Ejemplos - -Este es un enfoque donde usas el contenido primario para "alimentar al modelo" con algunos ejemplos del resultado deseado para una instrucción dada, y dejar que infiera el patrón para el resultado esperado. Según la cantidad de ejemplos proporcionados, podemos tener prompting zero-shot, one-shot, few-shot, etc. - -El prompt ahora consta de tres componentes: - -- Una descripción de la tarea -- Algunos ejemplos del resultado deseado -- El inicio de un nuevo ejemplo (que se convierte en una descripción implícita de la tarea) - -| Tipo de Aprendizaje | Prompt (Entrada) | Completion (Salida) | -| :------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| Zero-shot | "The Sun is Shining". Translate to Spanish | "El Sol está brillando". | -| One-shot | "The Sun is Shining" => ""El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| Few-shot | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketball | -| | | | - -Fíjate cómo tuvimos que proporcionar una instrucción explícita ("Translate to Spanish") en el prompting zero-shot, pero esta se infiere en el ejemplo one-shot. El ejemplo few-shot muestra cómo agregar más ejemplos permite a los modelos hacer inferencias más precisas sin instrucciones adicionales. - -### Señales en el Prompt - -Otra técnica para usar contenido primario es proporcionar _señales_ en lugar de ejemplos. En este caso, le damos al modelo un empujón en la dirección correcta _comenzando_ con un fragmento que refleja el formato de respuesta deseado. El modelo entonces "toma la señal" para continuar en esa línea. - -| Número de Señales | Prompt (Entrada) | Completion (Salida) | -| :---------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. - -**Resumir Esto** | Júpiter es el planeta más grande de nuestro Sistema Solar y el quinto desde el Sol. Es un gigante gaseoso con una masa equivalente a 1/1000 de la del Sol, pero es más pesado que todos los demás planetas juntos. Las civilizaciones antiguas han conocido Júpiter desde hace mucho tiempo, y es fácilmente visible en el cielo nocturno. | -| 1 | Júpiter es el quinto planeta desde el Sol y el más grande del Sistema Solar. Es un gigante gaseoso con una masa equivalente a una milésima parte de la del Sol, pero dos veces y media la de todos los demás planetas del Sistema Solar juntos. Júpiter es uno de los objetos más brillantes visibles a simple vista en el cielo nocturno, y ha sido conocido por civilizaciones antiguas desde antes de la historia registrada.
**Resumir Esto**
Lo que aprendimos es que Júpiter | es el quinto planeta desde el Sol y el más grande del Sistema Solar. Es un gigante gaseoso con una masa equivalente a una milésima parte de la del Sol, pero dos veces y media la de todos los demás planetas juntos. Es fácilmente visible a simple vista y se conoce desde tiempos antiguos. | -| 2 | Júpiter es el quinto planeta desde el Sol y el más grande del Sistema Solar. Es un gigante gaseoso con una masa equivalente a una milésima parte de la del Sol, pero dos veces y media la de todos los demás planetas del Sistema Solar juntos. Júpiter es uno de los objetos más brillantes visibles a simple vista en el cielo nocturno, y ha sido conocido por civilizaciones antiguas desde antes de la historia registrada.
**Resumir Esto**
Las 3 principales cosas que aprendimos: | 1. Júpiter es el quinto planeta desde el Sol y el más grande del Sistema Solar.
2. Es un gigante gaseoso con una masa equivalente a una milésima parte de la del Sol...
3. Júpiter ha sido visible a simple vista desde tiempos antiguos ... | -| | | | - -### Plantillas de Prompt - -Una plantilla de prompt es una _receta predefinida para un prompt_ que puede almacenarse y reutilizarse según sea necesario, para ofrecer experiencias de usuario más consistentes a gran escala. En su forma más simple, es simplemente una colección de ejemplos de prompt como [este de OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) que proporciona tanto los componentes interactivos del prompt (mensajes de usuario y sistema) como el formato de solicitud impulsado por API, para facilitar su reutilización. - -En su forma más compleja, como [este ejemplo de LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst), contiene _marcadores de posición_ que pueden reemplazarse con datos de diversas fuentes (entrada del usuario, contexto del sistema, fuentes externas, etc.) para generar un prompt de forma dinámica. Esto nos permite crear una biblioteca de prompts reutilizables que pueden usarse para ofrecer experiencias de usuario consistentes **de forma programática** a gran escala. - -Finalmente, el verdadero valor de las plantillas radica en la capacidad de crear y publicar _bibliotecas de prompts_ para dominios de aplicación verticales, donde la plantilla de prompt está _optimizadas_ para reflejar contextos o ejemplos específicos de la aplicación que hacen que las respuestas sean más relevantes y precisas para el público objetivo. El repositorio [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) es un gran ejemplo de este enfoque, reuniendo una biblioteca de prompts para el ámbito educativo con énfasis en objetivos clave como planificación de lecciones, diseño curricular, tutoría estudiantil, etc. - -## Contenido de Apoyo - -Si pensamos en la construcción de un prompt como tener una instrucción (tarea) y un objetivo (contenido principal), entonces el _contenido secundario_ es como un contexto adicional que proporcionamos para **influir en la salida de alguna manera**. Puede ser parámetros de ajuste, instrucciones de formato, taxonomías de temas, etc., que ayudan al modelo a _adaptar_ su respuesta para ajustarse a los objetivos o expectativas del usuario. - -Por ejemplo: Dado un catálogo de cursos con metadatos extensos (nombre, descripción, nivel, etiquetas, instructor, etc.) de todos los cursos disponibles en el plan de estudios: - -- podemos definir una instrucción para "resumir el catálogo de cursos para otoño 2023" -- podemos usar el contenido principal para proporcionar algunos ejemplos del resultado deseado -- podemos usar el contenido secundario para identificar las 5 etiquetas principales de interés. - -Ahora, el modelo puede proporcionar un resumen en el formato mostrado por los ejemplos, pero si un resultado tiene múltiples etiquetas, puede priorizar las 5 etiquetas identificadas en el contenido secundario. - ---- - - - -## Buenas Prácticas para Prompts - -Ahora que sabemos cómo se pueden _construir_ los prompts, podemos empezar a pensar en cómo _diseñarlos_ para reflejar las mejores prácticas. Podemos verlo en dos partes: tener la _mentalidad_ adecuada y aplicar las _técnicas_ correctas. - -### Mentalidad para Ingeniería de Prompts - -La ingeniería de prompts es un proceso de prueba y error, así que ten en cuenta tres factores generales: - -1. **Importa el Conocimiento del Dominio.** La precisión y relevancia de la respuesta dependen del _dominio_ en el que opera la aplicación o el usuario. Aplica tu intuición y experiencia en el dominio para **personalizar las técnicas**. Por ejemplo, define _personalidades específicas del dominio_ en tus prompts de sistema, o usa _plantillas específicas del dominio_ en los prompts de usuario. Proporciona contenido secundario que refleje contextos específicos del dominio, o usa _señales y ejemplos específicos del dominio_ para guiar al modelo hacia patrones de uso familiares. - -2. **Importa el Conocimiento del Modelo.** Sabemos que los modelos son estocásticos por naturaleza. Pero las implementaciones del modelo también pueden variar según el conjunto de datos de entrenamiento que usan (conocimiento preentrenado), las capacidades que ofrecen (por ejemplo, vía API o SDK) y el tipo de contenido para el que están optimizados (por ejemplo, código vs imágenes vs texto). Entiende las fortalezas y limitaciones del modelo que usas, y usa ese conocimiento para _priorizar tareas_ o construir _plantillas personalizadas_ optimizadas para las capacidades del modelo. - -3. **Importa la Iteración y Validación.** Los modelos evolucionan rápidamente, al igual que las técnicas para ingeniería de prompts. Como experto en el dominio, puedes tener otro contexto o criterios para _tu_ aplicación específica, que no se aplican a la comunidad en general. Usa herramientas y técnicas de ingeniería de prompts para "arrancar" la construcción del prompt, luego itera y valida los resultados usando tu propia intuición y experiencia. Registra tus hallazgos y crea una **base de conocimiento** (por ejemplo, bibliotecas de prompts) que otros puedan usar como referencia para acelerar futuras iteraciones. - -## Buenas Prácticas - -Veamos ahora algunas buenas prácticas comunes recomendadas por los profesionales de [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) y [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst). - -| Qué | Por qué | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Evalúa los modelos más recientes. | Las nuevas generaciones de modelos probablemente tienen mejores características y calidad, pero también pueden implicar costos más altos. Evalúalos para medir su impacto y luego decide si migrar. | -| Separa instrucciones y contexto | Verifica si tu modelo/proveedor define _delimitadores_ para distinguir claramente instrucciones, contenido principal y secundario. Esto ayuda a que los modelos asignen pesos más precisos a los tokens. | -| Sé específico y claro | Proporciona más detalles sobre el contexto deseado, resultado, longitud, formato, estilo, etc. Esto mejora tanto la calidad como la consistencia de las respuestas. Captura las recetas en plantillas reutilizables. | -| Sé descriptivo, usa ejemplos | Los modelos pueden responder mejor con un enfoque de "mostrar y contar". Comienza con un enfoque `zero-shot` donde das una instrucción (pero sin ejemplos) y luego prueba `few-shot` como refinamiento, proporcionando algunos ejemplos del resultado deseado. Usa analogías. | -| Usa señales para iniciar respuestas | Impúlsalo hacia un resultado deseado dándole algunas palabras o frases iniciales que pueda usar como punto de partida para la respuesta. | -| Repite cuando sea necesario | A veces es necesario repetir instrucciones al modelo. Da instrucciones antes y después del contenido principal, usa una instrucción y una señal, etc. Itera y valida para ver qué funciona mejor. | -| El orden importa | El orden en que presentas la información al modelo puede afectar la salida, incluso en los ejemplos de aprendizaje, debido al sesgo de recencia. Prueba diferentes opciones para ver cuál funciona mejor. | -| Dale una “salida” al modelo | Proporciona al modelo una respuesta de _respaldo_ que pueda usar si no puede completar la tarea por alguna razón. Esto reduce la probabilidad de que genere respuestas falsas o inventadas. | -| | | - -Como con cualquier buena práctica, recuerda que _tu experiencia puede variar_ según el modelo, la tarea y el dominio. Usa estas recomendaciones como punto de partida y ajusta para encontrar lo que mejor funciona para ti. Reevalúa constantemente tu proceso de ingeniería de prompts a medida que surgen nuevos modelos y herramientas, enfocándote en la escalabilidad del proceso y la calidad de las respuestas. - - - -## Tarea - -¡Felicidades! ¡Has llegado al final de la lección! Es hora de poner a prueba algunos de esos conceptos y técnicas con ejemplos reales. - -Para nuestra tarea, usaremos un Jupyter Notebook con ejercicios que puedes completar de forma interactiva. También puedes ampliar el Notebook con tus propias celdas de Markdown y Código para explorar ideas y técnicas por tu cuenta. - -### Para comenzar, haz un fork del repositorio, luego - -- (Recomendado) Inicia GitHub Codespaces -- (Alternativamente) Clona el repositorio en tu dispositivo local y úsalo con Docker Desktop -- (Alternativamente) Abre el Notebook con tu entorno de ejecución preferido. - -### Luego, configura tus variables de entorno - -- Copia el archivo `.env.copy` en la raíz del repositorio a `.env` y completa los valores de `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` y `AZURE_OPENAI_DEPLOYMENT`. Regresa a la [sección Learning Sandbox](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) para aprender cómo hacerlo. - -### Después, abre el Jupyter Notebook - -- Selecciona el kernel de ejecución. Si usas las opciones 1 o 2, simplemente selecciona el kernel Python 3.10.x predeterminado que proporciona el contenedor de desarrollo. - -Ya estás listo para ejecutar los ejercicios. Ten en cuenta que aquí no hay respuestas _correctas o incorrectas_, solo explorar opciones mediante prueba y error y desarrollar intuición sobre qué funciona para un modelo y dominio de aplicación dados. - -_Por esta razón no hay segmentos de Solución de Código en esta lección. En su lugar, el Notebook tendrá celdas Markdown tituladas "Mi Solución:" que muestran un ejemplo de salida para referencia._ - - - -## Verificación de conocimientos - -¿Cuál de los siguientes es un buen prompt siguiendo algunas buenas prácticas razonables? - -1. Muéstrame una imagen de un coche rojo -2. Muéstrame una imagen de un coche rojo de marca Volvo y modelo XC90 estacionado junto a un acantilado con el sol poniéndose -3. Muéstrame una imagen de un coche rojo de marca Volvo y modelo XC90 - -Respuesta: 2, es el mejor prompt porque proporciona detalles sobre el "qué" y entra en especificaciones (no cualquier coche, sino una marca y modelo específicos) y también describe el entorno general. El 3 es el siguiente mejor porque también contiene mucha descripción. - -## 🚀 Desafío - -Intenta aprovechar la técnica de "señal" con el prompt: Completa la frase "Muéstrame una imagen de un coche rojo de marca Volvo y ". ¿Qué responde y cómo lo mejorarías? - -## ¡Buen trabajo! Continúa aprendiendo - -¿Quieres aprender más sobre diferentes conceptos de Ingeniería de Prompts? Visita la [página de aprendizaje continuo](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) para encontrar otros excelentes recursos sobre este tema. - -Dirígete a la Lección 5 donde veremos [técnicas avanzadas de prompting](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst). - -**Aviso legal**: -Este documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Aunque nos esforzamos por la precisión, tenga en cuenta que las traducciones automáticas pueden contener errores o inexactitudes. El documento original en su idioma nativo debe considerarse la fuente autorizada. Para información crítica, se recomienda la traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas derivadas del uso de esta traducción. \ No newline at end of file + + + + + + + diff --git a/translations/es/09-building-image-applications/README.md b/translations/es/09-building-image-applications/README.md index e1aa27c0c..9b32a1d2b 100644 --- a/translations/es/09-building-image-applications/README.md +++ b/translations/es/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# Construyendo Aplicaciones de Generación de Imágenes - -[![Construyendo Aplicaciones de Generación de Imágenes](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.es.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -Los LLMs no solo sirven para generar texto. También es posible crear imágenes a partir de descripciones textuales. Contar con imágenes como modalidad puede ser muy útil en diversas áreas como MedTech, arquitectura, turismo, desarrollo de videojuegos y más. En este capítulo, exploraremos los dos modelos de generación de imágenes más populares: DALL-E y Midjourney. - -## Introducción - -En esta lección, cubriremos: - -- La generación de imágenes y por qué es útil. -- Qué son DALL-E y Midjourney, y cómo funcionan. -- Cómo construir una aplicación de generación de imágenes. - -## Objetivos de aprendizaje - -Al completar esta lección, podrás: - -- Construir una aplicación de generación de imágenes. -- Definir límites para tu aplicación usando metaprompts. -- Trabajar con DALL-E y Midjourney. - -## ¿Por qué construir una aplicación de generación de imágenes? - -Las aplicaciones de generación de imágenes son una excelente forma de explorar las capacidades de la IA Generativa. Se pueden usar, por ejemplo, para: - -- **Edición y síntesis de imágenes**. Puedes generar imágenes para diversos casos de uso, como edición y síntesis de imágenes. - -- **Aplicación en distintas industrias**. También pueden usarse para crear imágenes en sectores como MedTech, Turismo, desarrollo de videojuegos y más. - -## Escenario: Edu4All - -Como parte de esta lección, continuaremos trabajando con nuestra startup Edu4All. Los estudiantes crearán imágenes para sus evaluaciones; qué imágenes crearán depende de ellos, pero podrían ser ilustraciones para su propio cuento, crear un nuevo personaje para su historia o ayudarles a visualizar sus ideas y conceptos. - -Por ejemplo, esto es lo que los estudiantes de Edu4All podrían generar si están trabajando en clase sobre monumentos: - -![Startup Edu4All, clase sobre monumentos, Torre Eiffel](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.es.png) - -usando un prompt como - -> "Perro junto a la Torre Eiffel en la luz de la mañana temprano" - -## ¿Qué son DALL-E y Midjourney? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) y [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) son dos de los modelos de generación de imágenes más populares, que permiten usar prompts para crear imágenes. - -### DALL-E - -Comencemos con DALL-E, un modelo de IA Generativa que crea imágenes a partir de descripciones textuales. - -> [DALL-E es una combinación de dos modelos, CLIP y diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP** es un modelo que genera embeddings, que son representaciones numéricas de datos, a partir de imágenes y texto. - -- **Diffused attention** es un modelo que genera imágenes a partir de embeddings. DALL-E se entrena con un conjunto de datos de imágenes y texto y puede generar imágenes a partir de descripciones textuales. Por ejemplo, DALL-E puede crear imágenes de un gato con sombrero o un perro con cresta. - -### Midjourney - -Midjourney funciona de manera similar a DALL-E, genera imágenes a partir de prompts de texto. Midjourney también puede crear imágenes con prompts como “un gato con sombrero” o “un perro con cresta”. - -![Imagen generada por Midjourney, paloma mecánica](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Crédito imagen Wikipedia, imagen generada por Midjourney_ - -## ¿Cómo funcionan DALL-E y Midjourney? - -Primero, [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). DALL-E es un modelo de IA Generativa basado en la arquitectura transformer con un _transformer autorregresivo_. - -Un _transformer autorregresivo_ define cómo un modelo genera imágenes a partir de descripciones textuales, generando un píxel a la vez y usando los píxeles generados para crear el siguiente. Pasa por múltiples capas en una red neuronal hasta completar la imagen. - -Con este proceso, DALL-E controla atributos, objetos, características y más en la imagen que genera. Sin embargo, DALL-E 2 y 3 tienen un control más avanzado sobre la imagen generada. - -## Construyendo tu primera aplicación de generación de imágenes - -Entonces, ¿qué se necesita para construir una aplicación de generación de imágenes? Necesitas las siguientes librerías: - -- **python-dotenv**, se recomienda mucho usar esta librería para mantener tus secretos en un archivo _.env_ separado del código. -- **openai**, esta librería es la que usarás para interactuar con la API de OpenAI. -- **pillow**, para trabajar con imágenes en Python. -- **requests**, para ayudarte a hacer solicitudes HTTP. - -1. Crea un archivo _.env_ con el siguiente contenido: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Encuentra esta información en el Portal de Azure para tu recurso en la sección "Keys and Endpoint". - -1. Reúne las librerías anteriores en un archivo llamado _requirements.txt_ así: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. Luego, crea un entorno virtual e instala las librerías: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Para Windows, usa los siguientes comandos para crear y activar tu entorno virtual: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. Añade el siguiente código en un archivo llamado _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Vamos a explicar este código: - -- Primero, importamos las librerías que necesitamos, incluyendo la librería OpenAI, dotenv, requests y Pillow. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Luego, cargamos las variables de entorno desde el archivo _.env_. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- Después, configuramos el endpoint, la clave para la API de OpenAI, la versión y el tipo. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- A continuación, generamos la imagen: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - El código anterior responde con un objeto JSON que contiene la URL de la imagen generada. Podemos usar esa URL para descargar la imagen y guardarla en un archivo. - -- Finalmente, abrimos la imagen y usamos el visor de imágenes estándar para mostrarla: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Más detalles sobre la generación de la imagen - -Veamos el código que genera la imagen con más detalle: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt**, es el texto que se usa para generar la imagen. En este caso, usamos el prompt "Conejo sobre un caballo, sosteniendo una piruleta, en un prado brumoso donde crecen narcisos". -- **size**, es el tamaño de la imagen generada. En este caso, generamos una imagen de 1024x1024 píxeles. -- **n**, es la cantidad de imágenes que se generan. Aquí generamos dos imágenes. -- **temperature**, es un parámetro que controla la aleatoriedad de la salida de un modelo de IA Generativa. La temperatura es un valor entre 0 y 1 donde 0 significa que la salida es determinista y 1 que es aleatoria. El valor por defecto es 0.7. - -Hay más cosas que puedes hacer con imágenes, que cubriremos en la siguiente sección. - -## Capacidades adicionales de la generación de imágenes - -Hasta ahora viste cómo generar una imagen con pocas líneas en Python. Sin embargo, hay más cosas que puedes hacer con imágenes. - -También puedes: - -- **Realizar ediciones**. Proporcionando una imagen existente, una máscara y un prompt, puedes modificar una imagen. Por ejemplo, puedes añadir algo a una parte de la imagen. Imagina nuestra imagen del conejo, podrías agregarle un sombrero. Para hacerlo, proporcionas la imagen, una máscara (que identifica la parte a modificar) y un prompt de texto que indica qué debe hacerse. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - La imagen base solo contendría el conejo, pero la imagen final tendría el sombrero en el conejo. - -- **Crear variaciones**. La idea es tomar una imagen existente y pedir que se creen variaciones. Para crear una variación, proporcionas una imagen y un prompt de texto y un código así: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Nota, esto solo está soportado en OpenAI - -## Temperatura - -La temperatura es un parámetro que controla la aleatoriedad de la salida de un modelo de IA Generativa. La temperatura es un valor entre 0 y 1 donde 0 significa que la salida es determinista y 1 que es aleatoria. El valor por defecto es 0.7. - -Veamos un ejemplo de cómo funciona la temperatura, ejecutando este prompt dos veces: - -> Prompt: "Conejo sobre un caballo, sosteniendo una piruleta, en un prado brumoso donde crecen narcisos" - -![Conejo sobre un caballo sosteniendo una piruleta, versión 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.es.png) - -Ahora ejecutemos el mismo prompt para ver que no obtendremos la misma imagen dos veces: - -![Imagen generada de conejo sobre caballo](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.es.png) - -Como puedes ver, las imágenes son similares, pero no iguales. Probemos cambiando el valor de temperatura a 0.1 y veamos qué pasa: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Cambiando la temperatura - -Intentemos hacer la respuesta más determinista. Observamos en las dos imágenes generadas que en la primera hay un conejo y en la segunda un caballo, por lo que las imágenes varían bastante. - -Por lo tanto, cambiemos nuestro código y pongamos la temperatura a 0, así: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Ahora, al ejecutar este código, obtendrás estas dos imágenes: - -- ![Temperatura 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.es.png) -- ![Temperatura 0, v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.es.png) - -Aquí puedes ver claramente cómo las imágenes se parecen mucho más. - -## Cómo definir límites para tu aplicación con metaprompts - -Con nuestra demo, ya podemos generar imágenes para nuestros clientes. Sin embargo, necesitamos establecer algunos límites para nuestra aplicación. - -Por ejemplo, no queremos generar imágenes que no sean aptas para el trabajo o que no sean apropiadas para niños. - -Podemos hacer esto con _metaprompts_. Los metaprompts son prompts de texto que se usan para controlar la salida de un modelo de IA Generativa. Por ejemplo, podemos usar metaprompts para controlar la salida y asegurarnos de que las imágenes generadas sean aptas para el trabajo o apropiadas para niños. - -### ¿Cómo funciona? - -Entonces, ¿cómo funcionan los metaprompts? - -Los metaprompts son prompts de texto que se usan para controlar la salida de un modelo de IA Generativa, se colocan antes del prompt de texto y se usan para controlar la salida del modelo, integrándose en las aplicaciones para controlar la salida del modelo. Encapsulan la entrada del prompt y la del metaprompt en un solo prompt de texto. - -Un ejemplo de metaprompt sería el siguiente: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Ahora, veamos cómo podemos usar metaprompts en nuestra demo. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -Con el prompt anterior, puedes ver cómo todas las imágenes creadas consideran el metaprompt. - -## Tarea - habilitemos a los estudiantes - -Presentamos Edu4All al inicio de esta lección. Ahora es momento de permitir que los estudiantes generen imágenes para sus evaluaciones. - -Los estudiantes crearán imágenes para sus evaluaciones que contengan monumentos; qué monumentos usar es decisión de ellos. Se les pide usar su creatividad para colocar estos monumentos en diferentes contextos. - -## Solución - -Aquí tienes una posible solución: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## ¡Buen trabajo! Continúa aprendiendo - -Después de completar esta lección, revisa nuestra [colección de aprendizaje de IA Generativa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) para seguir mejorando tus conocimientos en IA Generativa. - -Dirígete a la Lección 10 donde veremos cómo [construir aplicaciones de IA con low-code](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**Aviso legal**: -Este documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Aunque nos esforzamos por la precisión, tenga en cuenta que las traducciones automáticas pueden contener errores o inexactitudes. El documento original en su idioma nativo debe considerarse la fuente autorizada. Para información crítica, se recomienda la traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas derivadas del uso de esta traducción. \ No newline at end of file + + + + diff --git a/translations/es/12-designing-ux-for-ai-applications/README.md b/translations/es/12-designing-ux-for-ai-applications/README.md index b9a33bf20..dc273a14d 100644 --- a/translations/es/12-designing-ux-for-ai-applications/README.md +++ b/translations/es/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# Diseño de UX para Aplicaciones de IA - -[![Diseño de UX para Aplicaciones de IA](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.es.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Haz clic en la imagen de arriba para ver el video de esta lección)_ - -La experiencia de usuario es un aspecto muy importante al crear aplicaciones. Los usuarios deben poder usar tu aplicación de manera eficiente para realizar tareas. Ser eficiente es una cosa, pero también necesitas diseñar aplicaciones para que puedan ser usadas por todos, haciéndolas _accesibles_. Este capítulo se enfocará en esta área para que, con suerte, termines diseñando una aplicación que la gente pueda y quiera usar. - -## Introducción - -La experiencia de usuario es cómo un usuario interactúa y utiliza un producto o servicio específico, ya sea un sistema, herramienta o diseño. Al desarrollar aplicaciones de IA, los desarrolladores no solo se enfocan en asegurar que la experiencia de usuario sea efectiva, sino también ética. En esta lección, cubrimos cómo construir aplicaciones de Inteligencia Artificial (IA) que respondan a las necesidades del usuario. - -La lección abarcará las siguientes áreas: - -- Introducción a la Experiencia de Usuario y Comprensión de las Necesidades del Usuario -- Diseño de Aplicaciones de IA para la Confianza y la Transparencia -- Diseño de Aplicaciones de IA para la Colaboración y Retroalimentación - -## Objetivos de aprendizaje - -Después de tomar esta lección, podrás: - -- Entender cómo construir aplicaciones de IA que satisfagan las necesidades del usuario. -- Diseñar aplicaciones de IA que fomenten la confianza y la colaboración. - -### Requisito previo - -Tómate un tiempo para leer más sobre [experiencia de usuario y design thinking.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Introducción a la Experiencia de Usuario y Comprensión de las Necesidades del Usuario - -En nuestra startup educativa ficticia, tenemos dos usuarios principales: profesores y estudiantes. Cada uno de estos usuarios tiene necesidades únicas. Un diseño centrado en el usuario prioriza al usuario, asegurando que los productos sean relevantes y beneficiosos para quienes están destinados. - -La aplicación debe ser **útil, confiable, accesible y agradable** para ofrecer una buena experiencia de usuario. - -### Usabilidad - -Ser útil significa que la aplicación tiene funcionalidades que coinciden con su propósito, como automatizar el proceso de calificación o generar tarjetas de estudio para repaso. Una aplicación que automatiza la calificación debe poder asignar puntajes a los trabajos de los estudiantes de manera precisa y eficiente según criterios predefinidos. De manera similar, una aplicación que genera tarjetas de repaso debe crear preguntas relevantes y variadas basadas en sus datos. - -### Confiabilidad - -Ser confiable significa que la aplicación puede realizar su tarea de forma consistente y sin errores. Sin embargo, la IA, al igual que los humanos, no es perfecta y puede cometer errores. Las aplicaciones pueden enfrentar errores o situaciones inesperadas que requieran intervención o corrección humana. ¿Cómo manejas los errores? En la última sección de esta lección, cubriremos cómo los sistemas y aplicaciones de IA están diseñados para la colaboración y la retroalimentación. - -### Accesibilidad - -Ser accesible significa extender la experiencia de usuario a personas con diversas capacidades, incluyendo aquellas con discapacidades, asegurando que nadie quede excluido. Siguiendo las pautas y principios de accesibilidad, las soluciones de IA se vuelven más inclusivas, usables y beneficiosas para todos los usuarios. - -### Agrado - -Ser agradable significa que la aplicación sea placentera de usar. Una experiencia de usuario atractiva puede tener un impacto positivo en el usuario, animándolo a volver a la aplicación y aumentando los ingresos del negocio. - -![imagen que ilustra consideraciones de UX en IA](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.es.png) - -No todos los desafíos pueden resolverse con IA. La IA viene a complementar tu experiencia de usuario, ya sea automatizando tareas manuales o personalizando experiencias. - -## Diseño de Aplicaciones de IA para la Confianza y la Transparencia - -Generar confianza es fundamental al diseñar aplicaciones de IA. La confianza asegura que el usuario esté seguro de que la aplicación realizará el trabajo, entregará resultados de manera consistente y que esos resultados son lo que el usuario necesita. Un riesgo en esta área es la desconfianza y la confianza excesiva. La desconfianza ocurre cuando un usuario tiene poca o ninguna confianza en un sistema de IA, lo que lleva a rechazar la aplicación. La confianza excesiva ocurre cuando un usuario sobreestima la capacidad de un sistema de IA, confiando demasiado en él. Por ejemplo, un sistema automatizado de calificación con confianza excesiva podría hacer que el profesor no revise algunos trabajos para asegurarse de que el sistema funciona bien. Esto podría resultar en calificaciones injustas o inexactas para los estudiantes, o en oportunidades perdidas para retroalimentación y mejora. - -Dos formas de asegurar que la confianza esté en el centro del diseño son la explicabilidad y el control. - -### Explicabilidad - -Cuando la IA ayuda a tomar decisiones, como impartir conocimiento a futuras generaciones, es fundamental que profesores y padres entiendan cómo se toman esas decisiones. Esto es la explicabilidad: comprender cómo las aplicaciones de IA toman decisiones. Diseñar para la explicabilidad incluye añadir detalles y ejemplos de lo que una aplicación de IA puede hacer. Por ejemplo, en lugar de "Comienza con AI teacher", el sistema puede usar: "Resume tus notas para un repaso más fácil usando IA." - -![una página de inicio de una app con ilustración clara de explicabilidad en aplicaciones de IA](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.es.png) - -Otro ejemplo es cómo la IA usa datos personales y del usuario. Por ejemplo, un usuario con la persona estudiante puede tener limitaciones basadas en su perfil. La IA puede no revelar respuestas directamente, pero puede ayudar a guiar al usuario para que piense cómo resolver un problema. - -![IA respondiendo preguntas según la persona](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.es.png) - -Una última parte clave de la explicabilidad es simplificar las explicaciones. Estudiantes y profesores pueden no ser expertos en IA, por lo que las explicaciones sobre lo que la aplicación puede o no puede hacer deben ser simples y fáciles de entender. - -![explicaciones simplificadas sobre capacidades de IA](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.es.png) - -### Control - -La IA generativa crea una colaboración entre la IA y el usuario, donde por ejemplo un usuario puede modificar los prompts para obtener diferentes resultados. Además, una vez generado un resultado, los usuarios deberían poder modificarlo, dándoles una sensación de control. Por ejemplo, al usar Bing, puedes ajustar tu prompt según formato, tono y longitud. Además, puedes hacer cambios en el resultado y modificarlo como se muestra a continuación: - -![Resultados de búsqueda en Bing con opciones para modificar el prompt y el resultado](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.es.png) - -Otra función en Bing que permite al usuario tener control sobre la aplicación es la capacidad de optar por participar o no en el uso de datos por parte de la IA. Para una aplicación escolar, un estudiante podría querer usar sus notas así como los recursos del profesor como material de repaso. - -![Resultados de búsqueda en Bing con opciones para modificar el prompt y el resultado](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.es.png) - -> Al diseñar aplicaciones de IA, la intencionalidad es clave para evitar que los usuarios confíen demasiado y tengan expectativas poco realistas sobre sus capacidades. Una forma de lograr esto es creando fricción entre los prompts y los resultados, recordando al usuario que esto es IA y no un ser humano. - -## Diseño de Aplicaciones de IA para la Colaboración y Retroalimentación - -Como se mencionó antes, la IA generativa crea una colaboración entre el usuario y la IA. La mayoría de las interacciones consisten en que un usuario ingresa un prompt y la IA genera un resultado. ¿Qué pasa si el resultado es incorrecto? ¿Cómo maneja la aplicación los errores si ocurren? ¿La IA culpa al usuario o se toma el tiempo para explicar el error? - -Las aplicaciones de IA deben estar diseñadas para recibir y dar retroalimentación. Esto no solo ayuda a mejorar el sistema de IA, sino que también genera confianza con los usuarios. Un ciclo de retroalimentación debe incluirse en el diseño, un ejemplo puede ser un simple pulgar arriba o abajo sobre el resultado. - -Otra forma de manejar esto es comunicar claramente las capacidades y limitaciones del sistema. Cuando un usuario comete un error solicitando algo fuera de las capacidades de la IA, también debe haber una forma de manejarlo, como se muestra a continuación. - -![Dar retroalimentación y manejar errores](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.es.png) - -Los errores del sistema son comunes en aplicaciones donde el usuario puede necesitar ayuda con información fuera del alcance de la IA o la aplicación puede tener un límite en la cantidad de preguntas o temas para los que se pueden generar resúmenes. Por ejemplo, una aplicación de IA entrenada con datos limitados en materias como Historia y Matemáticas puede no ser capaz de manejar preguntas sobre Geografía. Para mitigar esto, el sistema de IA puede responder algo como: "Lo siento, nuestro producto ha sido entrenado con datos en las siguientes materias....., no puedo responder a la pregunta que hiciste." - -Las aplicaciones de IA no son perfectas, por lo tanto, están destinadas a cometer errores. Al diseñar tus aplicaciones, debes asegurarte de crear espacio para la retroalimentación de los usuarios y el manejo de errores de manera simple y fácil de explicar. - -## Tarea - -Toma cualquier aplicación de IA que hayas creado hasta ahora y considera implementar los siguientes pasos en tu aplicación: - -- **Agradable:** Considera cómo puedes hacer que tu aplicación sea más agradable. ¿Estás añadiendo explicaciones en todas partes? ¿Estás animando al usuario a explorar? ¿Cómo redactas tus mensajes de error? - -- **Usabilidad:** Al construir una aplicación web, asegúrate de que sea navegable tanto con mouse como con teclado. - -- **Confianza y transparencia:** No confíes completamente en la IA ni en sus resultados, considera cómo añadirías un humano al proceso para verificar los resultados. Además, considera e implementa otras formas de lograr confianza y transparencia. - -- **Control:** Da al usuario control sobre los datos que proporciona a la aplicación. Implementa una forma para que el usuario pueda optar por participar o no en la recolección de datos en la aplicación de IA. - -## ¡Continúa tu aprendizaje! - -Después de completar esta lección, visita nuestra [colección de aprendizaje de Generative AI](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) para seguir mejorando tus conocimientos en Generative AI. - -¡Dirígete a la Lección 13, donde veremos cómo [asegurar aplicaciones de IA](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**Aviso legal**: -Este documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Aunque nos esforzamos por la precisión, tenga en cuenta que las traducciones automáticas pueden contener errores o inexactitudes. El documento original en su idioma nativo debe considerarse la fuente autorizada. Para información crítica, se recomienda la traducción profesional realizada por humanos. No nos hacemos responsables de ningún malentendido o interpretación errónea derivada del uso de esta traducción. \ No newline at end of file + + + diff --git a/translations/es/README.md b/translations/es/README.md index 79e56055b..6386c0900 100644 --- a/translations/es/README.md +++ b/translations/es/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.es.png) - -### 21 lecciones que enseñan todo lo que necesitas saber para comenzar a crear aplicaciones de IA Generativa - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Soporte Multilingüe - -#### Soportado mediante GitHub Action (Automatizado y Siempre Actualizado) - -[Francés](../fr/README.md) | [Español](./README.md) | [Alemán](../de/README.md) | [Ruso](../ru/README.md) | [Árabe](../ar/README.md) | [Persa (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chino (Simplificado)](../zh/README.md) | [Chino (Tradicional, Macao)](../mo/README.md) | [Chino (Tradicional, Hong Kong)](../hk/README.md) | [Chino (Tradicional, Taiwán)](../tw/README.md) | [Japonés](../ja/README.md) | [Coreano](../ko/README.md) | [Hindi](../hi/README.md) | [Bengalí](../bn/README.md) | [Maratí](../mr/README.md) | [Nepalí](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portugués (Portugal)](../pt/README.md) | [Portugués (Brasil)](../br/README.md) | [Italiano](../it/README.md) | [Polaco](../pl/README.md) | [Turco](../tr/README.md) | [Griego](../el/README.md) | [Tailandés](../th/README.md) | [Sueco](../sv/README.md) | [Danés](../da/README.md) | [Noruego](../no/README.md) | [Finlandés](../fi/README.md) | [Neerlandés](../nl/README.md) | [Hebreo](../he/README.md) | [Vietnamita](../vi/README.md) | [Indonesio](../id/README.md) | [Malayo](../ms/README.md) | [Tagalo (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Húngaro](../hu/README.md) | [Checo](../cs/README.md) | [Eslovaco](../sk/README.md) | [Rumano](../ro/README.md) | [Búlgaro](../bg/README.md) | [Serbio (Cirílico)](../sr/README.md) | [Croata](../hr/README.md) | [Esloveno](../sl/README.md) | [Ucraniano](../uk/README.md) | [Birmano (Myanmar)](../my/README.md) - -# IA Generativa para Principiantes (Versión 3) - Un Curso - -Aprende los fundamentos para construir aplicaciones de IA Generativa con nuestro curso completo de 21 lecciones impartido por Microsoft Cloud Advocates. - -## 🌱 Comenzando - -Este curso tiene 21 lecciones. Cada lección cubre un tema específico, ¡así que empieza por donde quieras! - -Las lecciones están etiquetadas como "Learn" para explicar un concepto de IA Generativa o "Build" que explican un concepto y ejemplos de código en **Python** y **TypeScript** cuando es posible. - -Para desarrolladores .NET, consulta [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -Cada lección también incluye una sección "Keep Learning" con herramientas adicionales para seguir aprendiendo. - -## Lo que necesitas -### Para ejecutar el código de este curso, puedes usar cualquiera de: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **Lecciones:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **Lecciones:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **Lecciones:** "oai-assignment" - -- Es útil tener conocimientos básicos de Python o TypeScript - \*Para principiantes absolutos, revisa estos cursos de [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) y [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) -- Una cuenta de GitHub para [hacer fork de este repositorio completo](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) a tu propia cuenta de GitHub - -Hemos creado una lección de **[Configuración del Curso](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** para ayudarte a preparar tu entorno de desarrollo. - -No olvides [marcar con estrella (🌟) este repositorio](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) para encontrarlo más fácilmente después. - -## 🧠 ¿Listo para desplegar? - -Si buscas ejemplos de código más avanzados, revisa nuestra [colección de ejemplos de código de IA Generativa](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) en **Python** y **TypeScript**. - -## 🗣️ Conoce a otros estudiantes, recibe apoyo - -Únete a nuestro [servidor oficial de Discord Azure AI Foundry](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) para conocer y conectar con otros estudiantes que están tomando este curso y obtener ayuda. - -Haz preguntas o comparte comentarios sobre el producto en nuestro [Foro de Desarrolladores Azure AI Foundry](https://aka.ms/azureaifoundry/forum) en Github. - -## 🚀 ¿Construyendo una startup? - -Regístrate en [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) para recibir **créditos gratuitos de OpenAI** y hasta **$150,000 en créditos de Azure para acceder a modelos OpenAI a través de Azure OpenAI Services**. - -## 🙏 ¿Quieres ayudar? - -¿Tienes sugerencias o encontraste errores ortográficos o en el código? [Abre un issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) o [crea un pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 Cada lección incluye: - -- Una breve introducción en video al tema -- Una lección escrita ubicada en el README -- Ejemplos de código en Python y TypeScript que soportan Azure OpenAI y OpenAI API -- Enlaces a recursos adicionales para continuar aprendiendo - -## 🗃️ Lecciones - -| # | **Enlace de la Lección** | **Descripción** | **Video** | **Aprendizaje Extra** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Configuración del Curso](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Cómo configurar tu entorno de desarrollo | Video próximamente | [Aprende Más](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introducción a la IA Generativa y LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Entender qué es la IA Generativa y cómo funcionan los Modelos de Lenguaje Grande (LLMs) | [Video](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Aprende Más](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Explorando y comparando diferentes LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Cómo seleccionar el modelo adecuado para tu caso de uso | [Video](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Aprende Más](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Uso responsable de la IA Generativa](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Cómo construir aplicaciones de IA Generativa de forma responsable | [Video](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Aprende Más](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Fundamentos de la Ingeniería de Prompts](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Mejores prácticas prácticas de ingeniería de prompts | [Video](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Aprende Más](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Creación de Prompts Avanzados](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Cómo aplicar técnicas de ingeniería de prompts que mejoran el resultado de tus prompts | [Video](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Aprende Más](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Construcción de Aplicaciones de Generación de Texto](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Construye:** Una aplicación de generación de texto usando Azure OpenAI / OpenAI API | [Video](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Más información](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Construcción de Aplicaciones de Chat](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Construye:** Técnicas para crear e integrar aplicaciones de chat de manera eficiente. | [Video](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Más información](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Construcción de Aplicaciones de Búsqueda con Bases de Datos Vectoriales](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Construye:** Una aplicación de búsqueda que utiliza Embeddings para buscar datos. | [Video](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Más información](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Construcción de Aplicaciones de Generación de Imágenes](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Construye:** Una aplicación de generación de imágenes | [Video](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Más información](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Construcción de Aplicaciones de IA Low Code](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Construye:** Una aplicación de IA Generativa usando herramientas Low Code | [Video](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Más información](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Integración de Aplicaciones Externas con Function Calling](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Construye:** Qué es function calling y sus casos de uso en aplicaciones | [Video](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Más información](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [Diseño de UX para Aplicaciones de IA](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Aprende:** Cómo aplicar principios de diseño UX al desarrollar aplicaciones de IA Generativa | [Video](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Más información](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Asegurando tus Aplicaciones de IA Generativa](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Aprende:** Las amenazas y riesgos para sistemas de IA y métodos para proteger estos sistemas. | [Video](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Más información](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [El Ciclo de Vida de las Aplicaciones de IA Generativa](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Aprende:** Las herramientas y métricas para gestionar el ciclo de vida de LLM y LLMOps | [Video](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Más información](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Generación Aumentada por Recuperación (RAG) y Bases de Datos Vectoriales](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Construye:** Una aplicación usando un Framework RAG para recuperar embeddings de Bases de Datos Vectoriales | [Video](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Más información](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Modelos Open Source y Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Construye:** Una aplicación usando modelos open source disponibles en Hugging Face | [Video](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Más información](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [Agentes de IA](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Construye:** Una aplicación usando un Framework de Agentes de IA | [Video](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Más información](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [Fine-Tuning de LLMs](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Aprende:** Qué es, por qué y cómo hacer fine-tuning a LLMs | [Video](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Más información](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Construcción con SLMs](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Aprende:** Los beneficios de construir con Small Language Models | Video Próximamente | [Más información](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Construcción con Modelos Mistral](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Aprende:** Las características y diferencias de los Modelos de la Familia Mistral | Video Próximamente | [Más información](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Construcción con Modelos Meta](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Aprende:** Las características y diferencias de los Modelos de la Familia Meta | Video Próximamente | [Más información](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Agradecimientos especiales - -Agradecimientos especiales a [**John Aziz**](https://www.linkedin.com/in/john0isaac/) por crear todas las GitHub Actions y flujos de trabajo - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) por sus contribuciones clave en cada lección para mejorar la experiencia del aprendiz y del código. - -## 🎒 Otros Cursos - -¡Nuestro equipo produce otros cursos! Echa un vistazo a: - -- [**NUEVO** Protocolo de Contexto de Modelos para Principiantes](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Agentes de IA para Principiantes](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [IA Generativa para Principiantes usando .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [IA Generativa para Principiantes usando JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML para Principiantes](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Ciencia de Datos para Principiantes](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [IA para Principiantes](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Ciberseguridad para Principiantes](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Desarrollo Web para Principiantes](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT para Principiantes](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [Desarrollo XR para Principiantes](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Domina GitHub Copilot para Programación en Pareja con IA](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Domina GitHub Copilot para Desarrolladores C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Elige tu propia aventura con Copilot](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Aviso legal**: -Este documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Aunque nos esforzamos por la precisión, tenga en cuenta que las traducciones automáticas pueden contener errores o inexactitudes. El documento original en su idioma nativo debe considerarse la fuente autorizada. Para información crítica, se recomienda la traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas derivadas del uso de esta traducción. \ No newline at end of file + + + + diff --git a/translations/fa/00-course-setup/01-setup-cloud.md b/translations/fa/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..a9d395afe --- /dev/null +++ b/translations/fa/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/fa/00-course-setup/02-setup-local.md b/translations/fa/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..40d5cfd86 --- /dev/null +++ b/translations/fa/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/fa/00-course-setup/03-providers.md b/translations/fa/00-course-setup/03-providers.md new file mode 100644 index 000000000..07179b5b6 --- /dev/null +++ b/translations/fa/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/fa/00-course-setup/README.md b/translations/fa/00-course-setup/README.md index ca992dcaa..0255b6e76 100644 --- a/translations/fa/00-course-setup/README.md +++ b/translations/fa/00-course-setup/README.md @@ -1,228 +1,12 @@ - -# شروع کار با این دوره - -ما بسیار هیجان‌زده‌ایم که شما این دوره را شروع کنید و ببینید با هوش مصنوعی مولد چه چیزهایی می‌توانید بسازید! - -برای اطمینان از موفقیت شما، این صفحه مراحل راه‌اندازی، نیازمندی‌های فنی و محل دریافت کمک در صورت نیاز را توضیح می‌دهد. - -## مراحل راه‌اندازی - -برای شروع این دوره، باید مراحل زیر را انجام دهید. - -### ۱. فورک کردن این مخزن - -[این مخزن را به‌طور کامل فورک کنید](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) به حساب GitHub خود تا بتوانید هر کدی را تغییر دهید و چالش‌ها را کامل کنید. همچنین می‌توانید [این مخزن را ستاره‌دار (🌟) کنید](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) تا راحت‌تر آن و مخازن مرتبط را پیدا کنید. - -### ۲. ایجاد یک codespace - -برای جلوگیری از مشکلات وابستگی هنگام اجرای کد، توصیه می‌کنیم این دوره را در [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst) اجرا کنید. - -این کار با انتخاب گزینه `Code` در نسخه فورک شده مخزن شما و سپس انتخاب گزینه **Codespaces** قابل انجام است. - -![پنجره‌ای که دکمه‌های ایجاد codespace را نشان می‌دهد](../../../00-course-setup/images/who-will-pay.webp) - -### ۳. ذخیره کلیدهای API شما - -حفظ امنیت کلیدهای API هنگام ساخت هر نوع برنامه‌ای اهمیت زیادی دارد. توصیه می‌کنیم کلیدهای API را مستقیماً در کد خود ذخیره نکنید. ثبت این اطلاعات در یک مخزن عمومی می‌تواند منجر به مشکلات امنیتی و حتی هزینه‌های ناخواسته در صورت سوءاستفاده شود. - -در اینجا راهنمای گام‌به‌گام برای ایجاد فایل `.env` در پایتون و افزودن `GITHUB_TOKEN` آمده است: - -1. **رفتن به دایرکتوری پروژه**: ترمینال یا خط فرمان خود را باز کنید و به دایرکتوری ریشه پروژه‌ای که می‌خواهید فایل `.env` را در آن بسازید، بروید. - - ```bash - cd path/to/your/project - ``` - -2. **ایجاد فایل `.env`**: با ویرایشگر متن مورد علاقه خود، یک فایل جدید به نام `.env` بسازید. اگر از خط فرمان استفاده می‌کنید، می‌توانید از دستور `touch` (در سیستم‌های مبتنی بر یونیکس) یا `echo` (در ویندوز) استفاده کنید: - - سیستم‌های مبتنی بر یونیکس: - - ```bash - touch .env - ``` - - ویندوز: - - ```cmd - echo . > .env - ``` - -3. **ویرایش فایل `.env`**: فایل `.env` را در یک ویرایشگر متن (مثلاً VS Code، Notepad++ یا هر ویرایشگر دیگر) باز کنید. خط زیر را اضافه کنید و `your_github_token_here` را با توکن واقعی GitHub خود جایگزین کنید: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **ذخیره فایل**: تغییرات را ذخیره کرده و ویرایشگر را ببندید. - -5. **نصب `python-dotenv`**: اگر قبلاً نصب نکرده‌اید، باید بسته `python-dotenv` را نصب کنید تا متغیرهای محیطی را از فایل `.env` در برنامه پایتون خود بارگذاری کنید. می‌توانید با استفاده از `pip` آن را نصب کنید: - - ```bash - pip install python-dotenv - ``` - -6. **بارگذاری متغیرهای محیطی در اسکریپت پایتون**: در اسکریپت پایتون خود، از بسته `python-dotenv` برای بارگذاری متغیرهای محیطی از فایل `.env` استفاده کنید: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -همین! شما با موفقیت فایل `.env` را ایجاد کرده، توکن GitHub خود را اضافه کرده و آن را در برنامه پایتون خود بارگذاری کرده‌اید. - -## نحوه اجرای کد به صورت محلی روی کامپیوتر شما - -برای اجرای کد به صورت محلی روی کامپیوتر خود، باید نسخه‌ای از [پایتون را نصب کرده باشید](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -سپس برای استفاده از مخزن، باید آن را کلون کنید: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -وقتی همه چیز آماده شد، می‌توانید شروع کنید! - -## مراحل اختیاری - -### نصب Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) یک نصب‌کننده سبک برای نصب [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst)، پایتون و چند بسته دیگر است. - -Conda خود یک مدیر بسته است که کار راه‌اندازی و جابجایی بین [محیط‌های مجازی](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) و بسته‌های مختلف پایتون را آسان می‌کند. همچنین برای نصب بسته‌هایی که از طریق `pip` در دسترس نیستند، مفید است. - -می‌توانید راهنمای نصب [MiniConda](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) را دنبال کنید. - -پس از نصب Miniconda، باید مخزن را کلون کنید (اگر قبلاً این کار را نکرده‌اید). - -سپس باید یک محیط مجازی بسازید. برای این کار با Conda، یک فایل محیط جدید (_environment.yml_) ایجاد کنید. اگر از Codespaces استفاده می‌کنید، این فایل را در دایرکتوری `.devcontainer` بسازید، یعنی `.devcontainer/environment.yml`. - -فایل محیط خود را با قطعه کد زیر پر کنید: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -اگر هنگام استفاده از conda با خطا مواجه شدید، می‌توانید کتابخانه‌های AI مایکروسافت را به صورت دستی با دستور زیر در ترمینال نصب کنید. - -``` -conda install -c microsoft azure-ai-ml -``` - -فایل محیط وابستگی‌های مورد نیاز ما را مشخص می‌کند. `` نامی است که می‌خواهید برای محیط Conda خود استفاده کنید و `` نسخه پایتونی است که می‌خواهید استفاده کنید، مثلاً `3` که آخرین نسخه اصلی پایتون است. - -پس از این کار، می‌توانید محیط Conda خود را با اجرای دستورات زیر در خط فرمان/ترمینال بسازید: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -اگر با مشکلی مواجه شدید، به [راهنمای محیط‌های Conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst) مراجعه کنید. - -### استفاده از Visual Studio Code با افزونه پشتیبانی پایتون - -توصیه می‌کنیم برای این دوره از ویرایشگر [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) به همراه [افزونه پشتیبانی پایتون](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) استفاده کنید. البته این بیشتر یک توصیه است و الزام قطعی نیست. - -> **توجه**: با باز کردن مخزن دوره در VS Code، می‌توانید پروژه را درون یک کانتینر راه‌اندازی کنید. این به دلیل وجود دایرکتوری ویژه [`.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) در مخزن دوره است. بعداً بیشتر درباره این موضوع توضیح داده خواهد شد. - -> **توجه**: پس از کلون کردن و باز کردن دایرکتوری در VS Code، به‌طور خودکار پیشنهاد نصب افزونه پشتیبانی پایتون را دریافت خواهید کرد. - -> **توجه**: اگر VS Code پیشنهاد داد مخزن را در یک کانتینر باز کنید، این درخواست را رد کنید تا از نسخه پایتون نصب شده به صورت محلی استفاده کنید. - -### استفاده از Jupyter در مرورگر - -شما همچنین می‌توانید پروژه را با استفاده از محیط [Jupyter](https://jupyter.org?WT.mc_id=academic-105485-koreyst) مستقیماً در مرورگر خود انجام دهید. هر دو نسخه کلاسیک Jupyter و [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) محیط توسعه بسیار خوبی با امکاناتی مانند تکمیل خودکار، برجسته‌سازی کد و غیره ارائه می‌دهند. - -برای شروع Jupyter به صورت محلی، به ترمینال/خط فرمان بروید، به دایرکتوری دوره بروید و دستور زیر را اجرا کنید: - -```bash -jupyter notebook -``` - -یا - -```bash -jupyterhub -``` - -این کار یک نمونه Jupyter را راه‌اندازی می‌کند و آدرس URL دسترسی به آن در پنجره خط فرمان نمایش داده خواهد شد. - -وقتی به URL دسترسی پیدا کردید، باید ساختار دوره را ببینید و بتوانید به هر فایل `*.ipynb` دسترسی داشته باشید. برای مثال، `08-building-search-applications/python/oai-solution.ipynb`. - -### اجرای پروژه در یک کانتینر - -یک جایگزین برای راه‌اندازی همه چیز روی کامپیوتر یا Codespace شما، استفاده از [کانتینر](../../../00-course-setup/) است. پوشه ویژه `.devcontainer` در مخزن دوره این امکان را به VS Code می‌دهد که پروژه را درون یک کانتینر راه‌اندازی کند. خارج از Codespaces، این کار نیاز به نصب Docker دارد و واقعاً کمی پیچیده است، بنابراین این روش را فقط به کسانی که تجربه کار با کانتینرها دارند توصیه می‌کنیم. - -یکی از بهترین روش‌ها برای حفظ امنیت کلیدهای API هنگام استفاده از GitHub Codespaces، استفاده از Codespace Secrets است. لطفاً راهنمای [مدیریت اسرار Codespaces](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) را برای اطلاعات بیشتر دنبال کنید. - -## درس‌ها و نیازمندی‌های فنی - -این دوره شامل ۶ درس مفهومی و ۶ درس کدنویسی است. - -برای درس‌های کدنویسی، از سرویس Azure OpenAI استفاده می‌کنیم. برای اجرای این کد به دسترسی به سرویس Azure OpenAI و یک کلید API نیاز دارید. می‌توانید با [تکمیل این درخواست](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst) برای دسترسی اقدام کنید. - -در حالی که منتظر پردازش درخواست خود هستید، هر درس کدنویسی همچنین شامل یک فایل `README.md` است که می‌توانید کد و خروجی‌ها را در آن مشاهده کنید. - -## استفاده از سرویس Azure OpenAI برای اولین بار - -اگر برای اولین بار با سرویس Azure OpenAI کار می‌کنید، لطفاً این راهنما را برای [ایجاد و استقرار یک منبع Azure OpenAI Service](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) دنبال کنید. - -## استفاده از API OpenAI برای اولین بار - -اگر برای اولین بار با API OpenAI کار می‌کنید، لطفاً راهنمای [ایجاد و استفاده از رابط کاربری](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) را دنبال کنید. - -## آشنایی با سایر یادگیرندگان - -ما در سرور رسمی [AI Community Discord](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) کانال‌هایی برای آشنایی با سایر یادگیرندگان ایجاد کرده‌ایم. این یک راه عالی برای شبکه‌سازی با کارآفرینان، سازندگان، دانشجویان و هر کسی است که می‌خواهد در هوش مصنوعی مولد پیشرفت کند. - -[![عضویت در کانال دیسکورد](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -تیم پروژه نیز در این سرور دیسکورد حضور دارد تا به یادگیرندگان کمک کند. - -## مشارکت - -این دوره یک پروژه متن‌باز است. اگر نقاط قابل بهبود یا مشکلاتی مشاهده کردید، لطفاً یک [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) ایجاد کنید یا یک [issue در GitHub](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) ثبت کنید. - -تیم پروژه تمام مشارکت‌ها را پیگیری می‌کند. مشارکت در متن‌باز راهی عالی برای ساختن مسیر شغلی شما در هوش مصنوعی مولد است. - -اکثر مشارکت‌ها نیازمند موافقت با قرارداد مجوز مشارکت‌کننده (CLA) هستند که اعلام می‌کند شما حق دارید و واقعاً حقوق استفاده از مشارکت خود را به ما می‌دهید. برای جزئیات بیشتر به [وب‌سایت قرارداد مجوز مشارکت‌کننده (CLA)](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst) مراجعه کنید. - -مهم: هنگام ترجمه متن در این مخزن، لطفاً از ترجمه ماشینی استفاده نکنید. ما ترجمه‌ها را از طریق جامعه بررسی خواهیم کرد، پس فقط در زبان‌هایی که به آن‌ها مسلط هستید داوطلب ترجمه شوید. - -وقتی یک pull request ارسال می‌کنید، ربات CLA به‌طور خودکار تعیین می‌کند که آیا نیاز به ارائه CLA دارید و PR را به‌طور مناسب برچسب‌گذاری یا کامنت‌گذاری می‌کند. فقط کافی است دستورالعمل‌های ربات را دنبال کنید. این کار فقط یک بار برای تمام مخازنی که از CLA ما استفاده می‌کنند لازم است. - -این پروژه از [کد رفتار متن‌باز مایکروسافت](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst) پیروی می‌کند. برای اطلاعات بیشتر، سوالات متداول کد رفتار را بخوانید یا با [ایمیل opencode](opencode@microsoft.com) تماس بگیرید. - -## بیایید شروع کنیم - -حالا که مراحل لازم برای تکمیل این دوره را انجام داده‌اید، بیایید با [معرفی هوش مصنوعی مولد و مدل‌های زبانی بزرگ (LLMs)](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) شروع کنیم. - -**سلب مسئولیت**: -این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است حاوی خطاها یا نادرستی‌هایی باشند. سند اصلی به زبان بومی خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما مسئول هیچ گونه سوءتفاهم یا تفسیر نادرستی که از استفاده از این ترجمه ناشی شود، نیستیم. \ No newline at end of file + + + + diff --git a/translations/fa/00-course-setup/SETUP.md b/translations/fa/00-course-setup/SETUP.md deleted file mode 100644 index e1e727e48..000000000 --- a/translations/fa/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# راه‌اندازی محیط توسعه خود - -ما این مخزن و دوره را با استفاده از [کانتینر توسعه](https://containers.dev?WT.mc_id=academic-105485-koreyst) راه‌اندازی کرده‌ایم که یک محیط اجرایی یونیورسال دارد و می‌تواند از توسعه Python3، .NET، Node.js و Java پشتیبانی کند. پیکربندی مرتبط در فایل `devcontainer.json` قرار دارد که در پوشه `.devcontainer/` در ریشه این مخزن واقع شده است. - -برای فعال‌سازی کانتینر توسعه، آن را در [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (برای اجرای ابری) یا در [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (برای اجرای محلی روی دستگاه خودتان) اجرا کنید. برای اطلاعات بیشتر درباره نحوه کار کانتینرهای توسعه در VS Code، [این مستندات](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) را مطالعه کنید. - -> [!TIP] -> توصیه می‌کنیم برای شروع سریع و با کمترین دردسر از GitHub Codespaces استفاده کنید. این سرویس برای حساب‌های شخصی، [سهمیه استفاده رایگان](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) مناسبی ارائه می‌دهد. همچنین می‌توانید [زمان‌بندی توقف یا حذف کد‌اسپیس‌های غیرفعال](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) را تنظیم کنید تا استفاده بهینه‌تری از سهمیه خود داشته باشید. - -## ۱. اجرای تمرین‌ها - -هر درس شامل تمرین‌های _اختیاری_ است که ممکن است به یک یا چند زبان برنامه‌نویسی از جمله Python، .NET/C#، Java و JavaScript/TypeScript ارائه شوند. این بخش راهنمایی کلی برای اجرای این تمرین‌ها ارائه می‌دهد. - -### ۱.۱ تمرین‌های Python - -تمرین‌های Python یا به صورت برنامه‌های کاربردی (`.py` فایل‌ها) یا دفترچه‌های Jupyter (`.ipynb` فایل‌ها) ارائه می‌شوند. -- برای اجرای دفترچه، آن را در Visual Studio Code باز کنید، سپس روی _Select Kernel_ (بالای سمت راست) کلیک کرده و گزینه پیش‌فرض Python 3 را انتخاب کنید. حالا می‌توانید با کلیک روی _Run All_ کل دفترچه را اجرا کنید. -- برای اجرای برنامه‌های Python از خط فرمان، دستورالعمل‌های خاص هر تمرین را دنبال کنید تا مطمئن شوید فایل‌های درست را انتخاب کرده و آرگومان‌های لازم را وارد می‌کنید. - -## ۲. پیکربندی ارائه‌دهندگان - -تمرین‌ها **ممکن است** به گونه‌ای تنظیم شده باشند که با یک یا چند استقرار مدل زبان بزرگ (LLM) از طریق ارائه‌دهنده خدمات پشتیبانی شده مانند OpenAI، Azure یا Hugging Face کار کنند. این ارائه‌دهندگان یک _نقطه انتهایی میزبانی شده_ (API) فراهم می‌کنند که می‌توانیم با استفاده از اعتبارنامه‌های مناسب (کلید API یا توکن) به صورت برنامه‌نویسی به آن دسترسی داشته باشیم. در این دوره، این ارائه‌دهندگان را بررسی می‌کنیم: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) با مدل‌های متنوع از جمله سری اصلی GPT. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) برای مدل‌های OpenAI با تمرکز بر آمادگی سازمانی - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) برای مدل‌های متن‌باز و سرور استنتاج - -**برای این تمرین‌ها باید از حساب‌های خودتان استفاده کنید**. تمرین‌ها اختیاری هستند، بنابراین می‌توانید بر اساس علاقه‌تان یکی، همه یا هیچ‌کدام از ارائه‌دهندگان را راه‌اندازی کنید. راهنمایی‌هایی برای ثبت‌نام: - -| ثبت‌نام | هزینه | کلید API | محیط آزمایشی | توضیحات | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst) | [قیمت‌گذاری](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst) | [بر اساس پروژه](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [بدون کد، وب](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | مدل‌های متنوع موجود | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst) | [قیمت‌گذاری](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst) | [شروع سریع SDK](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [شروع سریع استودیو](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [باید از قبل درخواست دسترسی دهید](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) | -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [قیمت‌گذاری](https://huggingface.co/pricing) | [توکن‌های دسترسی](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst) | [Hugging Chat مدل‌های محدودی دارد](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -دستورالعمل‌های زیر را برای _پیکربندی_ این مخزن جهت استفاده با ارائه‌دهندگان مختلف دنبال کنید. تمرین‌هایی که نیاز به ارائه‌دهنده خاصی دارند، یکی از این برچسب‌ها را در نام فایل خود خواهند داشت: - - `aoai` - نیاز به نقطه انتهایی و کلید Azure OpenAI دارد - - `oai` - نیاز به نقطه انتهایی و کلید OpenAI دارد - - `hf` - نیاز به توکن Hugging Face دارد - -شما می‌توانید یکی، هیچ‌کدام یا همه ارائه‌دهندگان را پیکربندی کنید. تمرین‌های مرتبط در صورت نبود اعتبارنامه‌ها خطا خواهند داد. - -### ۲.۱. ایجاد فایل `.env` - -فرض می‌کنیم که راهنمایی‌های بالا را خوانده‌اید، با ارائه‌دهنده مربوطه ثبت‌نام کرده‌اید و اعتبارنامه‌های لازم (API_KEY یا توکن) را دریافت کرده‌اید. در مورد Azure OpenAI، فرض می‌کنیم که یک استقرار معتبر از سرویس Azure OpenAI (نقطه انتهایی) دارید که حداقل یک مدل GPT برای تکمیل چت روی آن مستقر شده است. - -گام بعدی پیکربندی **متغیرهای محیطی محلی** شما به صورت زیر است: - -1. در پوشه ریشه به دنبال فایل `.env.copy` بگردید که باید محتوایی شبیه به این داشته باشد: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. آن فایل را با دستور زیر به `.env` کپی کنید. این فایل در `.gitignore` قرار دارد تا اسرار محفوظ بمانند. - - ```bash - cp .env.copy .env - ``` - -3. مقادیر را پر کنید (جایگزین مقادیر سمت راست `=`) طبق توضیحات بخش بعدی. - -3. (اختیاری) اگر از GitHub Codespaces استفاده می‌کنید، می‌توانید متغیرهای محیطی را به عنوان _اسرار Codespaces_ مرتبط با این مخزن ذخیره کنید. در این صورت نیازی به راه‌اندازی فایل محلی .env ندارید. **اما توجه داشته باشید که این گزینه فقط در صورت استفاده از GitHub Codespaces کار می‌کند.** اگر از Docker Desktop استفاده می‌کنید، همچنان باید فایل .env را تنظیم کنید. - -### ۲.۲. پر کردن فایل `.env` - -بیایید نگاهی سریع به نام متغیرها بیندازیم تا بفهمیم هر کدام چه معنایی دارند: - -| متغیر | توضیح | -| :--- | :--- | -| HUGGING_FACE_API_KEY | این توکن دسترسی کاربری است که در پروفایل خود تنظیم کرده‌اید | -| OPENAI_API_KEY | کلید مجوز برای استفاده از سرویس در نقاط انتهایی غیر Azure OpenAI | -| AZURE_OPENAI_API_KEY | کلید مجوز برای استفاده از سرویس Azure OpenAI | -| AZURE_OPENAI_ENDPOINT | نقطه انتهایی مستقر شده برای منبع Azure OpenAI | -| AZURE_OPENAI_DEPLOYMENT | نقطه انتهایی استقرار مدل _تولید متن_ | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | نقطه انتهایی استقرار مدل _بردارهای متنی_ | -| | | - -توجه: دو متغیر آخر Azure OpenAI به ترتیب مدل پیش‌فرض برای تکمیل چت (تولید متن) و جستجوی برداری (بردارها) را نشان می‌دهند. دستورالعمل‌های تنظیم آن‌ها در تمرین‌های مرتبط ارائه خواهد شد. - -### ۲.۳. پیکربندی Azure: از طریق پرتال - -مقادیر نقطه انتهایی و کلید Azure OpenAI را می‌توانید در [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) پیدا کنید، پس از آنجا شروع می‌کنیم. - -1. به [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) بروید -1. در نوار کناری (منوی سمت چپ) گزینه **Keys and Endpoint** را کلیک کنید -1. روی **Show Keys** کلیک کنید - باید موارد زیر را ببینید: KEY 1، KEY 2 و Endpoint -1. مقدار KEY 1 را برای AZURE_OPENAI_API_KEY استفاده کنید -1. مقدار Endpoint را برای AZURE_OPENAI_ENDPOINT استفاده کنید - -حالا به نقاط انتهایی مدل‌های خاصی که مستقر کرده‌ایم نیاز داریم. - -1. در نوار کناری (منوی سمت چپ) گزینه **Model deployments** را برای منبع Azure OpenAI انتخاب کنید -1. در صفحه مقصد، روی **Manage Deployments** کلیک کنید - -این شما را به وب‌سایت Azure OpenAI Studio می‌برد، جایی که مقادیر دیگر را طبق توضیحات زیر پیدا می‌کنیم. - -### ۲.۴. پیکربندی Azure: از طریق استودیو - -1. به [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **از طریق منبع خود** که در بالا توضیح داده شد، بروید -1. تب **Deployments** (نوار کناری، سمت چپ) را برای مشاهده مدل‌های مستقر شده باز کنید -1. اگر مدل مورد نظر شما مستقر نشده است، از گزینه **Create new deployment** برای استقرار آن استفاده کنید -1. شما به یک مدل _تولید متن_ نیاز دارید - توصیه ما: **gpt-35-turbo** -1. شما به یک مدل _بردار متنی_ نیاز دارید - توصیه ما: **text-embedding-ada-002** - -حالا متغیرهای محیطی را به گونه‌ای به‌روزرسانی کنید که نام _استقرار_ استفاده شده را نشان دهند. معمولاً این نام همان نام مدل است مگر اینکه آن را صراحتاً تغییر داده باشید. به عنوان مثال، ممکن است داشته باشید: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**فراموش نکنید پس از اتمام، فایل .env را ذخیره کنید**. حالا می‌توانید از فایل خارج شده و به دستورالعمل‌های اجرای دفترچه بازگردید. - -### ۲.۵. پیکربندی OpenAI: از طریق پروفایل - -کلید API OpenAI خود را می‌توانید در [حساب OpenAI](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) خود پیدا کنید. اگر حساب ندارید، می‌توانید ثبت‌نام کرده و یک کلید API ایجاد کنید. پس از دریافت کلید، می‌توانید آن را در متغیر `OPENAI_API_KEY` در فایل `.env` وارد کنید. - -### ۲.۶. پیکربندی Hugging Face: از طریق پروفایل - -توکن Hugging Face خود را می‌توانید در پروفایل خود در بخش [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst) پیدا کنید. این توکن‌ها را به صورت عمومی منتشر یا به اشتراک نگذارید. به جای آن، یک توکن جدید برای استفاده در این پروژه ایجاد کرده و آن را در فایل `.env` در متغیر `HUGGING_FACE_API_KEY` وارد کنید. _توجه:_ این از نظر فنی کلید API نیست اما برای احراز هویت استفاده می‌شود، بنابراین برای حفظ یکپارچگی نام‌گذاری، از همین نام استفاده می‌کنیم. - -**سلب مسئولیت**: -این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است حاوی خطاها یا نواقصی باشند. سند اصلی به زبان بومی خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما مسئول هیچ گونه سوءتفاهم یا تفسیر نادرستی که از استفاده از این ترجمه ناشی شود، نیستیم. \ No newline at end of file diff --git a/translations/fa/04-prompt-engineering-fundamentals/README.md b/translations/fa/04-prompt-engineering-fundamentals/README.md index 51cf6a4bd..0e8b14b1a 100644 --- a/translations/fa/04-prompt-engineering-fundamentals/README.md +++ b/translations/fa/04-prompt-engineering-fundamentals/README.md @@ -1,464 +1,15 @@ - -# اصول مهندسی پرامپت - -[![اصول مهندسی پرامپت](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.fa.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## مقدمه -این ماژول مفاهیم و تکنیک‌های اساسی برای ایجاد پرامپت‌های مؤثر در مدل‌های هوش مصنوعی مولد را پوشش می‌دهد. نحوه نوشتن پرامپت برای یک LLM نیز اهمیت دارد. یک پرامپت با دقت طراحی شده می‌تواند کیفیت پاسخ را بهبود بخشد. اما دقیقاً منظور از اصطلاحاتی مانند _پرامپت_ و _مهندسی پرامپت_ چیست؟ و چگونه می‌توانم ورودی پرامپتی که به LLM ارسال می‌کنم را بهتر کنم؟ این‌ها سوالاتی هستند که در این فصل و فصل بعدی سعی می‌کنیم به آن‌ها پاسخ دهیم. - -_هوش مصنوعی مولد_ قادر است محتوای جدیدی (مثلاً متن، تصویر، صدا، کد و غیره) در پاسخ به درخواست‌های کاربر ایجاد کند. این کار را با استفاده از _مدل‌های زبان بزرگ_ مانند سری GPT شرکت OpenAI ("Generative Pre-trained Transformer") انجام می‌دهد که برای استفاده از زبان طبیعی و کد آموزش دیده‌اند. - -کاربران اکنون می‌توانند با این مدل‌ها با استفاده از الگوهای آشنا مانند چت تعامل داشته باشند، بدون نیاز به تخصص فنی یا آموزش خاص. این مدل‌ها مبتنی بر _پرامپت_ هستند - کاربران یک ورودی متنی (پرامپت) ارسال می‌کنند و پاسخ هوش مصنوعی (تکمیل) را دریافت می‌کنند. سپس می‌توانند به صورت تعاملی و چند مرحله‌ای با هوش مصنوعی "گفتگو" کنند و پرامپت خود را تا زمانی که پاسخ مطابق انتظارشان شود، اصلاح کنند. - -"پرامپت‌ها" اکنون به رابط اصلی _برنامه‌نویسی_ برای برنامه‌های هوش مصنوعی مولد تبدیل شده‌اند، که به مدل‌ها می‌گویند چه کاری انجام دهند و کیفیت پاسخ‌های بازگشتی را تحت تأثیر قرار می‌دهند. "مهندسی پرامپت" حوزه‌ای در حال رشد است که بر _طراحی و بهینه‌سازی_ پرامپت‌ها برای ارائه پاسخ‌های با کیفیت و پایدار در مقیاس تمرکز دارد. - -## اهداف یادگیری - -در این درس، یاد می‌گیریم مهندسی پرامپت چیست، چرا اهمیت دارد و چگونه می‌توانیم پرامپت‌های مؤثرتری برای یک مدل و هدف کاربردی خاص بسازیم. مفاهیم اصلی و بهترین روش‌های مهندسی پرامپت را درک خواهیم کرد و با محیط تعاملی Jupyter Notebooks آشنا می‌شویم که در آن می‌توانیم این مفاهیم را در مثال‌های واقعی ببینیم. - -در پایان این درس قادر خواهیم بود: - -1. توضیح دهیم مهندسی پرامپت چیست و چرا اهمیت دارد. -2. اجزای یک پرامپت را شرح دهیم و نحوه استفاده از آن‌ها را بیان کنیم. -3. بهترین روش‌ها و تکنیک‌های مهندسی پرامپت را یاد بگیریم. -4. تکنیک‌های آموخته شده را در مثال‌های واقعی با استفاده از یک نقطه انتهایی OpenAI به کار ببریم. - -## اصطلاحات کلیدی - -مهندسی پرامپت: فرایند طراحی و اصلاح ورودی‌ها برای هدایت مدل‌های هوش مصنوعی به سمت تولید خروجی‌های مطلوب. -توکنیزاسیون: فرایند تبدیل متن به واحدهای کوچکتر به نام توکن‌ها که مدل می‌تواند آن‌ها را درک و پردازش کند. -LLMهای تنظیم‌شده با دستورالعمل: مدل‌های زبان بزرگ (LLM) که با دستورالعمل‌های خاص برای بهبود دقت و مرتبط بودن پاسخ‌ها بهینه‌سازی شده‌اند. - -## محیط تمرینی - -مهندسی پرامپت در حال حاضر بیشتر یک هنر است تا علم. بهترین راه برای بهبود درک ما از آن، _تمرین بیشتر_ و اتخاذ رویکرد آزمون و خطا است که تخصص حوزه کاربرد را با تکنیک‌های پیشنهادی و بهینه‌سازی‌های خاص مدل ترکیب می‌کند. - -دفترچه Jupyter همراه این درس یک محیط _تمرینی_ فراهم می‌کند که می‌توانید آنچه یاد می‌گیرید را در آن امتحان کنید - همزمان یا به عنوان بخشی از چالش کد در پایان درس. برای اجرای تمرین‌ها به موارد زیر نیاز دارید: - -1. **کلید API Azure OpenAI** - نقطه انتهایی سرویس برای یک LLM مستقر شده. -2. **محیط اجرای پایتون** - که دفترچه بتواند در آن اجرا شود. -3. **متغیرهای محیطی محلی** - _هم‌اکنون مراحل [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) را کامل کنید تا آماده شوید_. - -دفترچه با تمرین‌های _آغازین_ ارائه می‌شود - اما تشویق می‌شوید که بخش‌های _Markdown_ (توضیح) و _کد_ (درخواست‌های پرامپت) خود را اضافه کنید تا مثال‌ها یا ایده‌های بیشتری را امتحان کنید و درک خود را از طراحی پرامپت تقویت کنید. - -## راهنمای مصور - -می‌خواهید قبل از شروع، تصویر کلی آنچه این درس پوشش می‌دهد را ببینید؟ این راهنمای مصور را بررسی کنید که موضوعات اصلی و نکات کلیدی هر بخش را به شما نشان می‌دهد تا درباره آن‌ها فکر کنید. نقشه راه درس شما را از درک مفاهیم و چالش‌های اصلی تا پرداختن به آن‌ها با تکنیک‌ها و بهترین روش‌های مهندسی پرامپت هدایت می‌کند. توجه داشته باشید که بخش "تکنیک‌های پیشرفته" در این راهنما به محتوای فصل _بعدی_ این دوره اشاره دارد. - -![راهنمای مصور مهندسی پرامپت](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.fa.png) - -## استارتاپ ما - -حالا بیایید درباره ارتباط _این موضوع_ با ماموریت استارتاپ خود برای [آوردن نوآوری هوش مصنوعی به آموزش](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst) صحبت کنیم. ما می‌خواهیم برنامه‌های هوش مصنوعی مبتنی بر _یادگیری شخصی‌سازی شده_ بسازیم - پس بیایید فکر کنیم کاربران مختلف برنامه ما چگونه ممکن است پرامپت‌ها را "طراحی" کنند: - -- **مدیران** ممکن است از هوش مصنوعی بخواهند _داده‌های برنامه درسی را تحلیل کند تا شکاف‌های پوشش را شناسایی کند_. هوش مصنوعی می‌تواند نتایج را خلاصه کند یا با کد آن‌ها را به صورت تصویری نمایش دهد. -- **معلمان** ممکن است از هوش مصنوعی بخواهند _طرح درس برای یک مخاطب و موضوع خاص تولید کند_. هوش مصنوعی می‌تواند طرح شخصی‌سازی شده را در قالب مشخصی بسازد. -- **دانش‌آموزان** ممکن است از هوش مصنوعی بخواهند _در یک موضوع دشوار به آن‌ها آموزش دهد_. هوش مصنوعی اکنون می‌تواند با درس‌ها، نکات و مثال‌های متناسب با سطح آن‌ها راهنمایی کند. - -این فقط نوک کوه یخ است. کتابخانه [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) را بررسی کنید - یک مجموعه متن‌باز از پرامپت‌ها که توسط کارشناسان آموزش گردآوری شده است - تا دید گسترده‌تری از امکانات به دست آورید! _سعی کنید برخی از این پرامپت‌ها را در محیط تمرینی یا OpenAI Playground اجرا کنید و ببینید چه اتفاقی می‌افتد!_ - - - -## مهندسی پرامپت چیست؟ - -ما این درس را با تعریف **مهندسی پرامپت** به عنوان فرایند _طراحی و بهینه‌سازی_ ورودی‌های متنی (پرامپت‌ها) برای ارائه پاسخ‌های پایدار و با کیفیت (تکمیل‌ها) برای یک هدف کاربردی و مدل خاص شروع کردیم. می‌توانیم این را به عنوان یک فرایند دو مرحله‌ای در نظر بگیریم: - -- _طراحی_ پرامپت اولیه برای یک مدل و هدف مشخص -- _اصلاح_ پرامپت به صورت تکراری برای بهبود کیفیت پاسخ - -این فرایند لزوماً آزمون و خطا است که نیاز به شهود و تلاش کاربر برای رسیدن به نتایج بهینه دارد. پس چرا این مهم است؟ برای پاسخ به این سوال، ابتدا باید سه مفهوم را درک کنیم: - -- _توکنیزاسیون_ = نحوه "دیدن" پرامپت توسط مدل -- _مدل‌های پایه LLM_ = نحوه "پردازش" پرامپت توسط مدل پایه -- _LLMهای تنظیم‌شده با دستورالعمل_ = نحوه "دیدن وظایف" توسط مدل - -### توکنیزاسیون - -یک LLM پرامپت‌ها را به صورت _دنباله‌ای از توکن‌ها_ می‌بیند که مدل‌های مختلف (یا نسخه‌های مختلف یک مدل) می‌توانند یک پرامپت را به روش‌های متفاوتی توکنیزه کنند. از آنجا که LLMها بر اساس توکن‌ها (و نه متن خام) آموزش دیده‌اند، نحوه توکنیزه شدن پرامپت‌ها تأثیر مستقیمی بر کیفیت پاسخ تولید شده دارد. - -برای درک بهتر نحوه کار توکنیزاسیون، ابزارهایی مانند [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) را امتحان کنید. پرامپت خود را کپی کنید و ببینید چگونه به توکن‌ها تبدیل می‌شود، به نحوه برخورد با فاصله‌ها و علائم نگارشی توجه کنید. توجه داشته باشید که این مثال مربوط به یک LLM قدیمی‌تر (GPT-3) است - بنابراین امتحان آن با مدل جدیدتر ممکن است نتیجه متفاوتی بدهد. - -![توکنیزاسیون](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.fa.png) - -### مفهوم: مدل‌های پایه - -پس از توکنیزه شدن پرامپت، عملکرد اصلی ["مدل پایه LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (یا مدل بنیادین) پیش‌بینی توکن بعدی در آن دنباله است. از آنجا که LLMها روی مجموعه داده‌های متنی عظیم آموزش دیده‌اند، درک خوبی از روابط آماری بین توکن‌ها دارند و می‌توانند این پیش‌بینی را با اطمینان نسبی انجام دهند. توجه داشته باشید که آن‌ها _معنای_ کلمات در پرامپت یا توکن را نمی‌فهمند؛ فقط الگویی را می‌بینند که می‌توانند با پیش‌بینی بعدی خود آن را "تکمیل" کنند. آن‌ها می‌توانند پیش‌بینی دنباله را تا زمانی که کاربر متوقف کند یا شرط از پیش تعیین شده‌ای برقرار شود، ادامه دهند. - -می‌خواهید ببینید تکمیل مبتنی بر پرامپت چگونه کار می‌کند؟ پرامپت بالا را در Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) با تنظیمات پیش‌فرض وارد کنید. سیستم به گونه‌ای پیکربندی شده که پرامپت‌ها را به عنوان درخواست اطلاعات در نظر بگیرد - بنابراین باید پاسخی ببینید که این زمینه را برآورده می‌کند. - -اما اگر کاربر بخواهد چیزی خاص ببیند که معیار یا هدف وظیفه‌ای را برآورده کند چه؟ اینجاست که LLMهای _تنظیم‌شده با دستورالعمل_ وارد می‌شوند. - -![تکمیل چت مدل پایه LLM](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.fa.png) - -### مفهوم: LLMهای تنظیم‌شده با دستورالعمل - -یک [LLM تنظیم‌شده با دستورالعمل](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) با شروع از مدل پایه، با مثال‌ها یا جفت‌های ورودی/خروجی (مثلاً "پیام‌های" چند مرحله‌ای) که شامل دستورالعمل‌های واضح هستند، بهینه‌سازی می‌شود - و پاسخ هوش مصنوعی تلاش می‌کند آن دستورالعمل را دنبال کند. - -این از تکنیک‌هایی مانند یادگیری تقویتی با بازخورد انسانی (RLHF) استفاده می‌کند که می‌تواند مدل را آموزش دهد تا _دستورالعمل‌ها را دنبال کند_ و _از بازخورد بیاموزد_ تا پاسخ‌هایی تولید کند که بهتر با کاربردهای عملی سازگار و مرتبط با اهداف کاربر باشند. - -بیایید امتحان کنیم - پرامپت بالا را دوباره ببینید، اما اکنون پیام _سیستم_ را تغییر دهید تا دستورالعمل زیر را به عنوان زمینه ارائه دهد: - -> _محتوایی که به شما داده می‌شود را برای یک دانش‌آموز کلاس دوم خلاصه کنید. نتیجه را در یک پاراگراف با ۳ تا ۵ نکته گلوله‌ای نگه دارید._ - -می‌بینید که نتیجه اکنون برای بازتاب هدف و قالب مورد نظر تنظیم شده است؟ یک معلم می‌تواند این پاسخ را مستقیماً در اسلایدهای کلاس خود استفاده کند. - -![تکمیل چت LLM تنظیم‌شده با دستورالعمل](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.fa.png) - -## چرا به مهندسی پرامپت نیاز داریم؟ - -حالا که می‌دانیم پرامپت‌ها چگونه توسط LLMها پردازش می‌شوند، بیایید درباره _چرا_ به مهندسی پرامپت نیاز داریم صحبت کنیم. پاسخ در این واقعیت نهفته است که LLMهای فعلی چالش‌هایی دارند که دستیابی به _تکمیل‌های قابل اعتماد و پایدار_ را بدون صرف تلاش در ساختاردهی و بهینه‌سازی پرامپت دشوار می‌کند. برای مثال: - -1. **پاسخ‌های مدل تصادفی هستند.** _همان پرامپت_ احتمالاً پاسخ‌های متفاوتی با مدل‌ها یا نسخه‌های مختلف مدل تولید می‌کند. و حتی ممکن است در زمان‌های مختلف با _همان مدل_ نتایج متفاوتی بدهد. _تکنیک‌های مهندسی پرامپت می‌توانند به ما کمک کنند این تغییرات را با ارائه چارچوب‌های بهتر به حداقل برسانیم_. - -1. **مدل‌ها ممکن است پاسخ‌های ساختگی تولید کنند.** مدل‌ها با مجموعه داده‌های _بزرگ اما محدود_ آموزش دیده‌اند، به این معنی که دانش آن‌ها درباره مفاهیمی خارج از دامنه آموزش محدود است. در نتیجه، ممکن است تکمیل‌هایی تولید کنند که نادرست، خیالی یا مستقیماً متناقض با حقایق شناخته شده باشند. _تکنیک‌های مهندسی پرامپت به کاربران کمک می‌کند چنین ساختگی‌هایی را شناسایی و کاهش دهند، مثلاً با درخواست استناد یا استدلال از هوش مصنوعی_. - -1. **قابلیت‌های مدل‌ها متفاوت خواهد بود.** مدل‌ها یا نسل‌های جدیدتر مدل‌ها قابلیت‌های غنی‌تری دارند اما همچنین ویژگی‌ها و محدودیت‌های خاص خود را در هزینه و پیچیدگی به همراه می‌آورند. _مهندسی پرامپت می‌تواند به ما کمک کند بهترین روش‌ها و جریان‌های کاری را توسعه دهیم که تفاوت‌ها را انتزاعی کرده و به نیازهای خاص مدل به صورت مقیاس‌پذیر و بدون درز سازگار شوند_. - -بیایید این را در عمل در OpenAI یا Azure OpenAI Playground ببینیم: - -- از همان پرامپت با استقرارهای مختلف LLM (مثلاً OpenAI، Azure OpenAI، Hugging Face) استفاده کنید - آیا تفاوت‌ها را دیدید؟ -- از همان پرامپت به طور مکرر با _همان_ استقرار LLM (مثلاً Azure OpenAI playground) استفاده کنید - این تفاوت‌ها چگونه بودند؟ - -### مثال ساختگی - -در این دوره، ما از اصطلاح **"ساختگی"** برای اشاره به پدیده‌ای استفاده می‌کنیم که در آن LLMها گاهی اطلاعات نادرست تولید می‌کنند به دلیل محدودیت‌های آموزش یا سایر محدودیت‌ها. ممکن است این پدیده را در مقالات یا پژوهش‌های عمومی به عنوان _"توهم"_ شنیده باشید. با این حال، ما قویاً توصیه می‌کنیم از اصطلاح _"ساختگی"_ استفاده کنید تا به طور ناخواسته رفتار را انسان‌وار نکنیم و ویژگی انسانی به نتیجه‌ای که توسط ماشین تولید شده نسبت ندهیم. این همچنین از منظر اصطلاح‌شناسی، [راهنمایی‌های هوش مصنوعی مسئول](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) را تقویت می‌کند و اصطلاحاتی را حذف می‌کند که ممکن است در برخی زمینه‌ها توهین‌آمیز یا غیرشامل تلقی شوند. - -می‌خواهید بفهمید ساختگی‌ها چگونه کار می‌کنند؟ به پرامپتی فکر کنید که از هوش مصنوعی می‌خواهد محتوایی برای موضوعی غیرواقعی تولید کند (تا مطمئن شوید در مجموعه داده آموزش وجود ندارد). برای مثال - من این پرامپت را امتحان کردم: -# برنامه درس: جنگ مریخی ۲۰۷۶ - -## مقدمه -در این درس، به بررسی جنگ مریخی که در سال ۲۰۷۶ رخ داد، می‌پردازیم. هدف این است که دانش‌آموزان با دلایل، رویدادها و پیامدهای این جنگ آشنا شوند و تأثیرات آن بر تاریخ بشر را درک کنند. - -## اهداف یادگیری -- شناخت علل اصلی جنگ مریخی ۲۰۷۶ -- بررسی مراحل و رویدادهای کلیدی جنگ -- تحلیل پیامدهای سیاسی، اجتماعی و فناوری جنگ -- تشویق به تفکر انتقادی درباره پیامدهای جنگ‌های فضایی - -## مواد و منابع -- نقشه‌های جنگ مریخی -- تصاویر و فیلم‌های مستند مربوط به جنگ -- مقالات و گزارش‌های تاریخی -- اسلایدهای آموزشی - -## مراحل درس - -### ۱. معرفی جنگ مریخی -- توضیح زمینه‌های تاریخی و سیاسی قبل از جنگ -- معرفی طرف‌های درگیر و اهداف هر کدام - -### ۲. بررسی رویدادهای کلیدی -- شرح نبردهای مهم و استراتژی‌های به کار رفته -- تحلیل نقش فناوری‌های نوین در جنگ - -### ۳. پیامدهای جنگ -- تأثیرات سیاسی و تغییرات در روابط بین سیاره‌ای -- پیامدهای اجتماعی و فرهنگی برای انسان‌ها -- پیشرفت‌های فناوری ناشی از جنگ - -### ۴. بحث و نتیجه‌گیری -- پرسش و پاسخ درباره درس -- تشویق دانش‌آموزان به بیان نظرات و تحلیل‌های خود -- جمع‌بندی نکات مهم درس - -## فعالیت‌های تکمیلی -- نوشتن مقاله کوتاه درباره یکی از نبردهای جنگ مریخی -- ساخت یک مدل سه‌بعدی از یکی از تجهیزات جنگی -- ارائه گروهی درباره تأثیرات جنگ بر آینده بشر - -## ارزیابی -- آزمون کتبی شامل سوالات چندگزینه‌ای و تشریحی -- ارزیابی فعالیت‌های عملی و مشارکت در بحث‌ها - -## منابع بیشتر -- کتاب‌های مرجع درباره تاریخ فضایی -- مستندهای علمی و تاریخی -- مقالات پژوهشی در زمینه جنگ‌های فضایی و فناوری‌های مرتبط -یک جستجوی وب به من نشان داد که حساب‌های داستانی (مثلاً سریال‌های تلویزیونی یا کتاب‌ها) درباره جنگ‌های مریخی وجود دارد - اما هیچ‌کدام مربوط به سال ۲۰۷۶ نیستند. عقل سلیم هم به ما می‌گوید که ۲۰۷۶ _در آینده_ است و بنابراین نمی‌تواند به یک رویداد واقعی مرتبط باشد. - -پس وقتی این پرامپت را با ارائه‌دهندگان مختلف LLM اجرا می‌کنیم، چه اتفاقی می‌افتد؟ - -> **پاسخ ۱**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.fa.png) - -> **پاسخ ۲**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.fa.png) - -> **پاسخ ۳**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.fa.png) - -همان‌طور که انتظار می‌رفت، هر مدل (یا نسخه مدل) پاسخ‌های کمی متفاوتی تولید می‌کند که ناشی از رفتار تصادفی و تفاوت‌های قابلیت مدل است. برای مثال، یک مدل مخاطب کلاس هشتم را هدف قرار می‌دهد در حالی که مدل دیگر فرض می‌کند کاربر دانش‌آموز دبیرستان است. اما هر سه مدل پاسخ‌هایی تولید کردند که می‌توانست یک کاربر ناآگاه را قانع کند که این رویداد واقعی بوده است. - -تکنیک‌های مهندسی پرامپت مانند _متاپرامپتینگ_ و _تنظیم دما_ ممکن است تا حدی از ساختگی بودن مدل بکاهند. معماری‌های جدید مهندسی پرامپت همچنین ابزارها و تکنیک‌های جدید را به‌طور یکپارچه در جریان پرامپت وارد می‌کنند تا برخی از این اثرات را کاهش دهند. - -## مطالعه موردی: GitHub Copilot - -بیایید این بخش را با نگاهی به نحوه استفاده از مهندسی پرامپت در راه‌حل‌های دنیای واقعی با یک مطالعه موردی به پایان برسانیم: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot «برنامه‌نویس جفت هوش مصنوعی» شماست - که پرامپت‌های متنی را به تکمیل کد تبدیل می‌کند و در محیط توسعه شما (مثلاً Visual Studio Code) ادغام شده تا تجربه کاربری روانی فراهم کند. همان‌طور که در سری وبلاگ‌های زیر مستند شده، نسخه اولیه بر اساس مدل OpenAI Codex بود - و مهندسان به سرعت نیاز به تنظیم دقیق مدل و توسعه تکنیک‌های بهتر مهندسی پرامپت برای بهبود کیفیت کد را درک کردند. در ماه ژوئیه، آن‌ها [یک مدل هوش مصنوعی بهبود یافته که فراتر از Codex است را معرفی کردند](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) تا پیشنهادات سریع‌تری ارائه دهند. - -مطالب را به ترتیب بخوانید تا مسیر یادگیری آن‌ها را دنبال کنید. - -- **مه ۲۰۲۳** | [GitHub Copilot در درک کد شما بهتر می‌شود](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **مه ۲۰۲۳** | [درون GitHub: کار با LLMهای پشت GitHub Copilot](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **ژوئن ۲۰۲۳** | [چگونه پرامپت‌های بهتری برای GitHub Copilot بنویسیم](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **ژوئیه ۲۰۲۳** | [.. GitHub Copilot فراتر از Codex با مدل هوش مصنوعی بهبود یافته می‌رود](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **ژوئیه ۲۰۲۳** | [راهنمای توسعه‌دهنده برای مهندسی پرامپت و LLMها](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **سپتامبر ۲۰۲۳** | [چگونه یک اپلیکیشن LLM سازمانی بسازیم: درس‌هایی از GitHub Copilot](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -همچنین می‌توانید وبلاگ [مهندسی آن‌ها](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) را برای پست‌های بیشتری مانند [این](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) مرور کنید که نشان می‌دهد چگونه این مدل‌ها و تکنیک‌ها برای پیشبرد برنامه‌های دنیای واقعی _به‌کار گرفته شده‌اند_. - ---- - - - -## ساختار پرامپت - -دیدیم چرا مهندسی پرامپت مهم است - حالا بیایید بفهمیم پرامپت‌ها چگونه _ساخته می‌شوند_ تا بتوانیم تکنیک‌های مختلف را برای طراحی مؤثرتر پرامپت ارزیابی کنیم. - -### پرامپت ساده - -با پرامپت ساده شروع کنیم: ورودی متنی که بدون هیچ زمینه دیگری به مدل ارسال می‌شود. اینجا یک مثال است - وقتی چند کلمه اول سرود ملی آمریکا را به OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst) می‌فرستیم، بلافاصله پاسخ را با چند خط بعدی _تکمیل_ می‌کند که رفتار پیش‌بینی پایه را نشان می‌دهد. - -| پرامپت (ورودی) | تکمیل (خروجی) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | به نظر می‌رسد که شما در حال شروع خواندن متن سرود ملی «The Star-Spangled Banner» هستید، سرود ملی ایالات متحده. متن کامل این سرود ... | - -### پرامپت پیچیده - -حالا بیایید به آن پرامپت ساده، زمینه و دستورالعمل اضافه کنیم. [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) به ما اجازه می‌دهد پرامپت پیچیده‌ای به صورت مجموعه‌ای از _پیام‌ها_ بسازیم که شامل: - -- جفت‌های ورودی/خروجی که ورودی _کاربر_ و پاسخ _دستیار_ را نشان می‌دهند. -- پیام سیستم که زمینه رفتار یا شخصیت دستیار را تعیین می‌کند. - -درخواست اکنون به شکل زیر است، جایی که _توکنیزاسیون_ به طور مؤثر اطلاعات مرتبط از زمینه و گفتگو را استخراج می‌کند. تغییر زمینه سیستم می‌تواند به اندازه ورودی‌های کاربر در کیفیت تکمیل‌ها تأثیرگذار باشد. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### پرامپت دستوری - -در مثال‌های بالا، پرامپت کاربر یک پرسش متنی ساده بود که می‌توانست به عنوان درخواست اطلاعات تفسیر شود. با پرامپت‌های _دستوری_، می‌توانیم از آن متن برای مشخص کردن دقیق‌تر یک کار استفاده کنیم و راهنمایی بهتری به هوش مصنوعی بدهیم. اینجا یک مثال است: - -| پرامپت (ورودی) | تکمیل (خروجی) | نوع دستورالعمل | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------- | :----------------- | -| Write a description of the Civil War | _یک پاراگراف ساده بازگرداند_ | ساده | -| Write a description of the Civil War. Provide key dates and events and describe their significance | _یک پاراگراف به همراه فهرستی از تاریخ‌های مهم رویدادها با توضیحات بازگرداند_ | پیچیده | -| Write a description of the Civil War in 1 paragraph. Provide 3 bullet points with key dates and their significance. Provide 3 more bullet points with key historical figures and their contributions. Return the output as a JSON file | _جزئیات بیشتری را در یک کادر متنی به صورت JSON بازمی‌گرداند که می‌توانید آن را کپی و در صورت نیاز اعتبارسنجی کنید_ | پیچیده. قالب‌بندی شده. | - -## محتوای اصلی - -در مثال‌های بالا، پرامپت هنوز نسبتاً باز بود و به LLM اجازه می‌داد خودش تصمیم بگیرد کدام بخش از داده‌های پیش‌آموزش دیده‌اش مرتبط است. با الگوی طراحی _محتوای اصلی_، متن ورودی به دو بخش تقسیم می‌شود: - -- یک دستورالعمل (عمل) -- محتوای مرتبط (که بر عمل تأثیر می‌گذارد) - -در اینجا مثالی است که دستورالعمل آن «خلاصه کردن این در ۲ جمله» است. - -| پرامپت (ورودی) | تکمیل (خروجی) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. It is named after the Roman god Jupiter.[19] When viewed from Earth, Jupiter can be bright enough for its reflected light to cast visible shadows,[20] and is on average the third-brightest natural object in the night sky after the Moon and Venus.
**Summarize this in 2 short sentences** | مشتری، پنجمین سیاره از خورشید، بزرگ‌ترین سیاره در منظومه شمسی است و به عنوان یکی از درخشان‌ترین اجرام قابل مشاهده در آسمان شب شناخته می‌شود. این سیاره که به نام خدای رومی مشتری نام‌گذاری شده، یک غول گازی است که جرم آن دو و نیم برابر مجموع جرم سایر سیارات منظومه شمسی است. | - -بخش محتوای اصلی را می‌توان به روش‌های مختلفی برای هدایت دستورالعمل‌های مؤثرتر به کار برد: - -- **مثال‌ها** - به جای اینکه به مدل بگوییم دقیقاً چه کاری انجام دهد، چند نمونه از خروجی مورد نظر را به آن بدهیم و اجازه دهیم الگو را استنباط کند. -- **اشارات** - دستورالعمل را با یک «اشاره» دنبال کنیم که تکمیل را آماده می‌کند و مدل را به سمت پاسخ‌های مرتبط‌تر هدایت می‌کند. -- **قالب‌ها** - این‌ها «دستورالعمل‌های» تکرارپذیر برای پرامپت‌ها هستند که شامل جایگزین‌هایی (متغیرها) می‌شوند و می‌توان آن‌ها را با داده‌های خاص برای موارد استفاده مختلف سفارشی کرد. - -بیایید این موارد را در عمل بررسی کنیم. - -### استفاده از مثال‌ها - -این روشی است که در آن از محتوای اصلی برای «تغذیه مدل» با چند نمونه از خروجی مورد نظر برای یک دستورالعمل مشخص استفاده می‌کنیم و اجازه می‌دهیم الگو را استنباط کند. بر اساس تعداد مثال‌های ارائه شده، می‌توانیم پرامپت صفر-شات، یک-شات، چند-شات و غیره داشته باشیم. - -پرامپت اکنون از سه بخش تشکیل شده است: - -- شرح کار -- چند نمونه از خروجی مورد نظر -- شروع یک نمونه جدید (که به صورت ضمنی شرح کار جدید است) - -| نوع یادگیری | پرامپت (ورودی) | تکمیل (خروجی) | -| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------- | -| صفر-شات | "The Sun is Shining". Translate to Spanish | "El Sol está brillando". | -| یک-شات | "The Sun is Shining" => ""El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| چند-شات | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketball | -| | | | - -توجه کنید که در پرامپت صفر-شات باید دستورالعمل صریح ("Translate to Spanish") داده می‌شد، اما در مثال یک-شات این دستورالعمل به صورت ضمنی استنباط می‌شود. مثال چند-شات نشان می‌دهد که افزودن نمونه‌های بیشتر به مدل‌ها اجازه می‌دهد بدون دستورالعمل اضافی استنباط‌های دقیق‌تری داشته باشند. - -### اشارات پرامپت - -تکنیک دیگری برای استفاده از محتوای اصلی، ارائه _اشارات_ به جای مثال‌ها است. در این حالت، با شروع یک قطعه که قالب پاسخ مورد نظر را نشان می‌دهد، مدل را به سمت پاسخ مناسب هدایت می‌کنیم. مدل سپس «اشاره» را گرفته و در همان راستا ادامه می‌دهد. - -| تعداد اشارات | پرامپت (ورودی) | تکمیل (خروجی) | -| :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ۰ | مشتری، پنجمین سیاره از خورشید و بزرگ‌ترین سیاره در منظومه شمسی است. این یک غول گازی با جرمی برابر یک هزارم جرم خورشید است، اما دو و نیم برابر مجموع جرم سایر سیارات منظومه شمسی است. مشتری یکی از درخشان‌ترین اجرامی است که با چشم غیرمسلح در آسمان شب دیده می‌شود و از زمان‌های بسیار قدیم برای تمدن‌های باستانی شناخته شده است. | - -**خلاصه این مطلب** | مشتری بزرگ‌ترین سیاره در منظومه شمسی ما و پنجمین سیاره از خورشید است. این سیاره یک غول گازی است که جرمی برابر با یک هزارم جرم خورشید دارد، اما از مجموع جرم تمام سیارات دیگر سنگین‌تر است. تمدن‌های باستانی مدت‌هاست که مشتری را می‌شناسند و به راحتی در آسمان شب قابل مشاهده است. | -| 1 | مشتری پنجمین سیاره از خورشید و بزرگ‌ترین سیاره در منظومه شمسی است. این سیاره یک غول گازی با جرمی برابر با یک هزارم جرم خورشید است، اما دو و نیم برابر مجموع جرم تمام سیارات دیگر منظومه شمسی است. مشتری یکی از درخشان‌ترین اجرامی است که با چشم غیرمسلح در آسمان شب دیده می‌شود و از زمان‌های بسیار قدیم برای تمدن‌های باستان شناخته شده است.
**خلاصه این مطلب**
آنچه آموختیم این است که مشتری | پنجمین سیاره از خورشید و بزرگ‌ترین سیاره در منظومه شمسی است. این سیاره یک غول گازی با جرمی برابر با یک هزارم جرم خورشید است، اما دو و نیم برابر مجموع جرم تمام سیارات دیگر است. به راحتی با چشم غیرمسلح دیده می‌شود و از دوران باستان شناخته شده است. | -| 2 | مشتری پنجمین سیاره از خورشید و بزرگ‌ترین سیاره در منظومه شمسی است. این سیاره یک غول گازی با جرمی برابر با یک هزارم جرم خورشید است، اما دو و نیم برابر مجموع جرم تمام سیارات دیگر منظومه شمسی است. مشتری یکی از درخشان‌ترین اجرامی است که با چشم غیرمسلح در آسمان شب دیده می‌شود و از زمان‌های بسیار قدیم برای تمدن‌های باستان شناخته شده است.
**خلاصه این مطلب**
سه حقیقت برتر که آموختیم: | 1. مشتری پنجمین سیاره از خورشید و بزرگ‌ترین سیاره در منظومه شمسی است.
2. این سیاره یک غول گازی با جرمی برابر با یک هزارم جرم خورشید است...
3. مشتری از دوران باستان با چشم غیرمسلح قابل مشاهده بوده است ... | -| | | | - -### قالب‌های پرامپت - -قالب پرامپت یک _دستورالعمل از پیش تعریف شده برای پرامپت_ است که می‌توان آن را ذخیره و در صورت نیاز مجدداً استفاده کرد تا تجربه‌های کاربری سازگارتر و مقیاس‌پذیرتری ایجاد شود. در ساده‌ترین شکل، این قالب صرفاً مجموعه‌ای از نمونه‌های پرامپت مانند [این نمونه از OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) است که هم اجزای تعاملی پرامپت (پیام‌های کاربر و سیستم) و هم فرمت درخواست مبتنی بر API را ارائه می‌دهد - تا امکان استفاده مجدد فراهم شود. - -در شکل پیچیده‌تر مانند [این مثال از LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst) شامل _جایگزین‌هایی_ است که می‌توان آن‌ها را با داده‌هایی از منابع مختلف (ورودی کاربر، زمینه سیستم، منابع داده خارجی و غیره) جایگزین کرد تا پرامپت به صورت پویا ساخته شود. این امکان را به ما می‌دهد که کتابخانه‌ای از پرامپت‌های قابل استفاده مجدد ایجاد کنیم که بتوانند به صورت **برنامه‌ریزی شده** تجربه‌های کاربری سازگار را در مقیاس بزرگ هدایت کنند. - -در نهایت، ارزش واقعی قالب‌ها در توانایی ایجاد و انتشار _کتابخانه‌های پرامپت_ برای حوزه‌های کاربردی خاص است - جایی که قالب پرامپت اکنون _بهینه‌سازی شده_ تا زمینه یا مثال‌های خاص برنامه را منعکس کند و پاسخ‌ها را برای مخاطب هدف مرتبط‌تر و دقیق‌تر سازد. مخزن [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) نمونه‌ای عالی از این رویکرد است که کتابخانه‌ای از پرامپت‌ها برای حوزه آموزش با تأکید بر اهداف کلیدی مانند برنامه‌ریزی درس، طراحی برنامه درسی، آموزش دانش‌آموز و غیره را گردآوری کرده است. - -## محتوای پشتیبان - -اگر ساختار پرامپت را شامل یک دستورالعمل (وظیفه) و یک هدف (محتوای اصلی) بدانیم، آنگاه _محتوای ثانویه_ مانند زمینه اضافی است که برای **تأثیرگذاری بر خروجی به شکلی خاص** ارائه می‌دهیم. این می‌تواند پارامترهای تنظیم، دستورالعمل‌های قالب‌بندی، طبقه‌بندی موضوعات و غیره باشد که به مدل کمک می‌کند پاسخ خود را متناسب با اهداف یا انتظارات کاربر تنظیم کند. - -برای مثال: با داشتن یک فهرست دوره با متادیتای گسترده (نام، توضیح، سطح، برچسب‌های متادیتا، مدرس و غیره) برای تمام دوره‌های موجود در برنامه درسی: - -- می‌توانیم یک دستورالعمل تعریف کنیم برای "خلاصه کردن فهرست دوره‌های پاییز ۲۰۲۳" -- می‌توانیم از محتوای اصلی برای ارائه چند نمونه از خروجی مورد نظر استفاده کنیم -- می‌توانیم از محتوای ثانویه برای شناسایی ۵ برچسب برتر مورد علاقه استفاده کنیم. - -اکنون، مدل می‌تواند خلاصه‌ای در قالب نمونه‌های ارائه شده ارائه دهد - اما اگر نتیجه چندین برچسب داشته باشد، می‌تواند ۵ برچسب شناسایی شده در محتوای ثانویه را اولویت‌بندی کند. - ---- - - - -## بهترین روش‌های پرامپت‌نویسی - -حالا که می‌دانیم چگونه پرامپت‌ها می‌توانند _ساخته شوند_، می‌توانیم به طراحی آن‌ها برای بازتاب بهترین روش‌ها فکر کنیم. می‌توانیم این موضوع را در دو بخش در نظر بگیریم - داشتن _ذهنیت_ درست و به‌کارگیری _تکنیک‌های_ مناسب. - -### ذهنیت مهندسی پرامپت - -مهندسی پرامپت یک فرآیند آزمون و خطاست، پس سه عامل کلی را در ذهن داشته باشید: - -1. **درک حوزه اهمیت دارد.** دقت و مرتبط بودن پاسخ تابعی از _حوزه_ ای است که آن برنامه یا کاربر در آن فعالیت می‌کند. از شهود و تخصص حوزه خود برای **شخصی‌سازی تکنیک‌ها** استفاده کنید. برای مثال، شخصیت‌های _خاص حوزه_ را در پرامپت‌های سیستمی تعریف کنید، یا از قالب‌های _خاص حوزه_ در پرامپت‌های کاربر بهره ببرید. محتوای ثانویه‌ای ارائه دهید که زمینه‌های خاص حوزه را منعکس کند، یا از نشانه‌ها و مثال‌های _خاص حوزه_ برای هدایت مدل به الگوهای آشنا استفاده کنید. - -2. **درک مدل اهمیت دارد.** می‌دانیم مدل‌ها ذاتاً تصادفی هستند. اما پیاده‌سازی مدل‌ها می‌تواند از نظر داده‌های آموزشی (دانش پیش‌آموزش)، قابلیت‌ها (مثلاً از طریق API یا SDK) و نوع محتوایی که برای آن بهینه شده‌اند (کد، تصویر، متن و غیره) متفاوت باشد. نقاط قوت و محدودیت‌های مدل مورد استفاده خود را بشناسید و از این دانش برای _اولویت‌بندی وظایف_ یا ساخت _قالب‌های سفارشی_ که برای قابلیت‌های مدل بهینه شده‌اند، استفاده کنید. - -3. **تکرار و اعتبارسنجی اهمیت دارد.** مدل‌ها به سرعت در حال پیشرفت هستند و تکنیک‌های مهندسی پرامپت نیز همینطور. به عنوان یک کارشناس حوزه، ممکن است زمینه یا معیارهای خاصی برای _برنامه کاربردی خودتان_ داشته باشید که برای جامعه گسترده‌تر صدق نکند. از ابزارها و تکنیک‌های مهندسی پرامپت برای "شروع سریع" ساخت پرامپت استفاده کنید، سپس نتایج را با شهود و تخصص حوزه خود تکرار و اعتبارسنجی کنید. بینش‌های خود را ثبت کنید و یک **پایگاه دانش** (مثلاً کتابخانه‌های پرامپت) ایجاد کنید که دیگران بتوانند به عنوان مبنای جدید برای تکرارهای سریع‌تر در آینده از آن استفاده کنند. - -## بهترین روش‌ها - -حالا به بهترین روش‌های رایجی که توسط [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) و [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst) توصیه شده‌اند، نگاهی بیندازیم. - -| چه کاری انجام دهیم | چرا | -| :------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| جدیدترین مدل‌ها را ارزیابی کنید | نسل‌های جدید مدل‌ها احتمالاً ویژگی‌ها و کیفیت بهتری دارند - اما ممکن است هزینه‌های بیشتری هم داشته باشند. آن‌ها را از نظر تأثیر ارزیابی کنید و سپس تصمیم به مهاجرت بگیرید. | -| دستورالعمل‌ها و زمینه را جدا کنید | بررسی کنید آیا مدل/ارائه‌دهنده شما _مرزگذارهایی_ تعریف کرده است تا دستورالعمل‌ها، محتوای اصلی و ثانویه را واضح‌تر از هم جدا کند. این می‌تواند به مدل‌ها کمک کند وزن‌ها را دقیق‌تر به توکن‌ها اختصاص دهند. | -| مشخص و واضح باشید | جزئیات بیشتری درباره زمینه، نتیجه، طول، قالب، سبک و غیره ارائه دهید. این کار کیفیت و سازگاری پاسخ‌ها را بهبود می‌بخشد. دستورالعمل‌ها را در قالب‌های قابل استفاده مجدد ثبت کنید. | -| توصیفی باشید، از مثال استفاده کنید | مدل‌ها ممکن است به رویکرد "نمایش و توضیح" بهتر پاسخ دهند. با رویکرد `zero-shot` شروع کنید که فقط دستورالعمل می‌دهید (بدون مثال) و سپس با `few-shot` بهبود دهید، چند نمونه از خروجی مورد نظر ارائه کنید. از قیاس‌ها استفاده کنید. | -| از نشانه‌ها برای شروع پاسخ‌ها استفاده کنید | با دادن چند کلمه یا عبارت آغازین که مدل می‌تواند به عنوان نقطه شروع پاسخ استفاده کند، آن را به سمت نتیجه دلخواه سوق دهید. | -| تکرار کنید | گاهی لازم است به مدل تکرار کنید. دستورالعمل‌ها را قبل و بعد از محتوای اصلی بدهید، از دستورالعمل و نشانه استفاده کنید و غیره. تکرار و اعتبارسنجی کنید تا ببینید چه چیزی بهتر جواب می‌دهد. | -| ترتیب اهمیت دارد | ترتیب ارائه اطلاعات به مدل ممکن است بر خروجی تأثیر بگذارد، حتی در نمونه‌های آموزشی، به دلیل سوگیری تازگی. گزینه‌های مختلف را امتحان کنید تا بهترین را بیابید. | -| به مدل یک "خروجی جایگزین" بدهید | به مدل یک پاسخ _پشتیبان_ بدهید که اگر به هر دلیلی نتواند وظیفه را کامل کند، ارائه دهد. این می‌تواند احتمال تولید پاسخ‌های نادرست یا ساختگی را کاهش دهد. | -| | | - -مانند هر بهترین روش دیگری، به یاد داشته باشید که _نتایج شما ممکن است بسته به مدل، وظیفه و حوزه متفاوت باشد_. این‌ها را به عنوان نقطه شروع در نظر بگیرید و تکرار کنید تا بهترین روش را برای خود بیابید. فرآیند مهندسی پرامپت خود را به طور مداوم با ورود مدل‌ها و ابزارهای جدید بازبینی کنید، با تمرکز بر مقیاس‌پذیری فرآیند و کیفیت پاسخ. - - - -## تمرین - -تبریک! به پایان درس رسیدید! حالا وقت آن است که برخی از این مفاهیم و تکنیک‌ها را با مثال‌های واقعی امتحان کنید! - -برای تمرین، از یک دفترچه Jupyter با تمریناتی استفاده خواهیم کرد که می‌توانید به صورت تعاملی انجام دهید. همچنین می‌توانید دفترچه را با سلول‌های Markdown و کد خودتان گسترش دهید تا ایده‌ها و تکنیک‌ها را به صورت مستقل بررسی کنید. - -### برای شروع، مخزن را فورک کنید، سپس - -- (توصیه شده) GitHub Codespaces را راه‌اندازی کنید -- (گزینه دیگر) مخزن را روی دستگاه محلی خود کلون کنید و با Docker Desktop استفاده کنید -- (گزینه دیگر) دفترچه را با محیط اجرای مورد علاقه خود باز کنید. - -### سپس، متغیرهای محیطی خود را تنظیم کنید - -- فایل `.env.copy` در ریشه مخزن را به `.env` کپی کنید و مقادیر `AZURE_OPENAI_API_KEY`، `AZURE_OPENAI_ENDPOINT` و `AZURE_OPENAI_DEPLOYMENT` را پر کنید. سپس به بخش [Learning Sandbox](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) بازگردید تا نحوه انجام آن را بیاموزید. - -### سپس، دفترچه Jupyter را باز کنید - -- هسته اجرای مناسب را انتخاب کنید. اگر از گزینه‌های ۱ یا ۲ استفاده می‌کنید، به سادگی هسته پیش‌فرض Python 3.10.x ارائه شده توسط کانتینر توسعه را انتخاب کنید. - -همه چیز آماده است تا تمرین‌ها را اجرا کنید. توجه داشته باشید که در اینجا پاسخ‌های _درست و غلط_ وجود ندارد - فقط کاوش گزینه‌ها از طریق آزمون و خطا و ساخت شهود برای آنچه برای یک مدل و حوزه کاربردی خاص کار می‌کند. - -_به همین دلیل در این درس بخش‌های راه‌حل کد وجود ندارد. در عوض، دفترچه شامل سلول‌های Markdown با عنوان "راه‌حل من:" است که یک نمونه خروجی را برای مرجع نشان می‌دهد._ - - - -## بررسی دانش - -کدام یک از پرامپت‌های زیر با رعایت برخی بهترین روش‌های معقول، پرامپت خوبی است؟ - -1. یک تصویر از ماشین قرمز به من نشان بده -2. یک تصویر از ماشین قرمز با برند ولوو و مدل XC90 که کنار صخره پارک شده و خورشید در حال غروب است به من نشان بده -3. یک تصویر از ماشین قرمز با برند ولوو و مدل XC90 به من نشان بده - -پاسخ: ۲، بهترین پرامپت است چون جزئیات "چه چیزی" را ارائه می‌دهد و به مشخصات دقیق می‌پردازد (نه فقط هر ماشینی بلکه یک برند و مدل خاص) و همچنین محیط کلی را توصیف می‌کند. ۳ در رتبه بعدی است چون توصیف زیادی دارد. - -## 🚀 چالش - -ببینید آیا می‌توانید از تکنیک "نشانه" با پرامپت زیر استفاده کنید: جمله را کامل کن "یک تصویر از ماشین قرمز با برند ولوو و ". پاسخ آن چیست و چگونه آن را بهبود می‌دهید؟ - -## کار عالی! یادگیری خود را ادامه دهید - -می‌خواهید درباره مفاهیم مختلف مهندسی پرامپت بیشتر بدانید؟ به [صفحه یادگیری ادامه‌دار](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) مراجعه کنید تا منابع عالی دیگری در این زمینه بیابید. - -به درس ۵ بروید که در آن به [تکنیک‌های پیشرفته پرامپت‌نویسی](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) می‌پردازیم! - -**سلب مسئولیت**: -این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است حاوی خطاها یا نواقصی باشند. سند اصلی به زبان بومی خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما مسئول هیچ گونه سوءتفاهم یا تفسیر نادرستی که از استفاده این ترجمه ناشی شود، نیستیم. \ No newline at end of file + + + + + + + diff --git a/translations/fa/09-building-image-applications/README.md b/translations/fa/09-building-image-applications/README.md index ab9bdea33..418274ca7 100644 --- a/translations/fa/09-building-image-applications/README.md +++ b/translations/fa/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# ساخت برنامه‌های تولید تصویر - -[![ساخت برنامه‌های تولید تصویر](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.fa.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -مدل‌های زبان بزرگ (LLM) فقط برای تولید متن نیستند. همچنین می‌توان تصاویر را از توصیفات متنی تولید کرد. داشتن تصاویر به عنوان یک مدالیتی می‌تواند در زمینه‌های مختلفی مانند فناوری پزشکی، معماری، گردشگری، توسعه بازی و غیره بسیار مفید باشد. در این فصل، به دو مدل محبوب تولید تصویر، DALL-E و Midjourney، می‌پردازیم. - -## مقدمه - -در این درس، موارد زیر را بررسی خواهیم کرد: - -- تولید تصویر و دلیل مفید بودن آن. -- DALL-E و Midjourney، چی هستند و چگونه کار می‌کنند. -- چگونه یک برنامه تولید تصویر بسازید. - -## اهداف یادگیری - -پس از اتمام این درس، قادر خواهید بود: - -- یک برنامه تولید تصویر بسازید. -- با استفاده از متاپرامپت‌ها، محدوده‌های برنامه خود را تعریف کنید. -- با DALL-E و Midjourney کار کنید. - -## چرا برنامه تولید تصویر بسازیم؟ - -برنامه‌های تولید تصویر راهی عالی برای کشف قابلیت‌های هوش مصنوعی مولد هستند. به عنوان مثال، می‌توان از آن‌ها برای موارد زیر استفاده کرد: - -- **ویرایش و ترکیب تصویر**. می‌توانید تصاویر را برای کاربردهای مختلفی مانند ویرایش و ترکیب تصویر تولید کنید. - -- **کاربرد در صنایع مختلف**. همچنین می‌توان از آن‌ها برای تولید تصاویر در صنایع مختلفی مانند فناوری پزشکی، گردشگری، توسعه بازی و غیره استفاده کرد. - -## سناریو: Edu4All - -در این درس، همچنان با استارتاپ خودمان، Edu4All، کار خواهیم کرد. دانش‌آموزان برای ارزیابی‌های خود تصاویر ایجاد می‌کنند، اینکه چه تصاویری باشد به خود دانش‌آموزان بستگی دارد، اما می‌تواند شامل تصویرسازی برای داستان‌های خودشان، خلق شخصیت جدید برای داستان یا کمک به تجسم ایده‌ها و مفاهیمشان باشد. - -مثلاً اگر دانش‌آموزان Edu4All روی بناهای تاریخی در کلاس کار کنند، می‌توانند چنین تصاویری تولید کنند: - -![استارتاپ Edu4All، کلاس بناهای تاریخی، برج ایفل](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.fa.png) - -با استفاده از پرامپتی مانند - -> "سگی کنار برج ایفل در نور صبحگاهی" - -## DALL-E و Midjourney چیستند؟ - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) و [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) دو مدل محبوب تولید تصویر هستند که به شما اجازه می‌دهند با استفاده از پرامپت‌ها تصاویر تولید کنید. - -### DALL-E - -بیایید با DALL-E شروع کنیم، که یک مدل هوش مصنوعی مولد است و تصاویر را از توصیفات متنی تولید می‌کند. - -> [DALL-E ترکیبی از دو مدل، CLIP و diffused attention است](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP**، مدلی است که از تصاویر و متن، تعبیه‌هایی (نمایش‌های عددی داده) تولید می‌کند. - -- **Diffused attention**، مدلی است که از تعبیه‌ها تصاویر تولید می‌کند. DALL-E روی مجموعه‌ای از تصاویر و متن آموزش دیده و می‌تواند تصاویر را از توصیفات متنی تولید کند. برای مثال، DALL-E می‌تواند تصاویر گربه‌ای با کلاه یا سگی با موهای موهاک تولید کند. - -### Midjourney - -Midjourney به روشی مشابه DALL-E کار می‌کند و تصاویر را از پرامپت‌های متنی تولید می‌کند. Midjourney نیز می‌تواند با پرامپت‌هایی مانند «گربه‌ای با کلاه» یا «سگی با موهای موهاک» تصاویر تولید کند. - -![تصویر تولید شده توسط Midjourney، کبوتر مکانیکی](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_اعتبار تصویر ویکی‌پدیا، تصویر تولید شده توسط Midjourney_ - -## DALL-E و Midjourney چگونه کار می‌کنند - -ابتدا، [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). DALL-E یک مدل هوش مصنوعی مولد مبتنی بر معماری ترنسفورمر با _ترنسفورمر خودرگرسیو_ است. - -یک _ترنسفورمر خودرگرسیو_ مشخص می‌کند که مدل چگونه تصاویر را از توصیفات متنی تولید می‌کند، به این صورت که پیکسل به پیکسل تولید می‌کند و سپس از پیکسل‌های تولید شده برای تولید پیکسل بعدی استفاده می‌کند. این فرآیند از چندین لایه در شبکه عصبی عبور می‌کند تا تصویر کامل شود. - -با این روش، DALL-E کنترل ویژگی‌ها، اشیاء، خصوصیات و موارد دیگر در تصویری که تولید می‌کند را دارد. البته DALL-E 2 و 3 کنترل بیشتری روی تصویر تولید شده دارند. - -## ساخت اولین برنامه تولید تصویر شما - -پس برای ساخت یک برنامه تولید تصویر چه چیزهایی لازم است؟ به کتابخانه‌های زیر نیاز دارید: - -- **python-dotenv**، به شدت توصیه می‌شود از این کتابخانه برای نگهداری اطلاعات محرمانه در فایل _.env_ جدا از کد استفاده کنید. -- **openai**، این کتابخانه برای تعامل با API اوپن‌ای‌آی استفاده می‌شود. -- **pillow**، برای کار با تصاویر در پایتون. -- **requests**، برای ارسال درخواست‌های HTTP. - -1. یک فایل _.env_ با محتوای زیر بسازید: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - این اطلاعات را در پورتال Azure برای منبع خود در بخش "Keys and Endpoint" پیدا کنید. - -1. کتابخانه‌های بالا را در فایلی به نام _requirements.txt_ جمع‌آوری کنید: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. سپس محیط مجازی بسازید و کتابخانه‌ها را نصب کنید: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - برای ویندوز، از دستورات زیر برای ساخت و فعال‌سازی محیط مجازی استفاده کنید: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. کد زیر را در فایلی به نام _app.py_ اضافه کنید: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -بیایید این کد را توضیح دهیم: - -- ابتدا کتابخانه‌های مورد نیاز را وارد می‌کنیم، از جمله کتابخانه OpenAI، dotenv، requests و Pillow. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- سپس متغیرهای محیطی را از فایل _.env_ بارگذاری می‌کنیم. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- بعد، نقطه پایان، کلید API اوپن‌ای‌آی، نسخه و نوع را تنظیم می‌کنیم. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- سپس تصویر را تولید می‌کنیم: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - کد بالا با یک شیء JSON پاسخ می‌دهد که شامل URL تصویر تولید شده است. می‌توانیم از این URL برای دانلود تصویر و ذخیره آن در فایل استفاده کنیم. - -- در نهایت، تصویر را باز کرده و با نمایشگر تصویر استاندارد نمایش می‌دهیم: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### جزئیات بیشتر درباره تولید تصویر - -بیایید کدی که تصویر را تولید می‌کند با جزئیات بیشتری بررسی کنیم: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt**، پرامپت متنی است که برای تولید تصویر استفاده می‌شود. در اینجا، از پرامپت "خرگوش روی اسب، در حال نگه داشتن آبنبات چوبی، در چمنزاری مه‌آلود که نرگس می‌روید" استفاده می‌کنیم. -- **size**، اندازه تصویر تولید شده است. در اینجا، تصویری با ابعاد ۱۰۲۴ در ۱۰۲۴ پیکسل تولید می‌کنیم. -- **n**، تعداد تصاویر تولید شده است. در اینجا، دو تصویر تولید می‌کنیم. -- **temperature**، پارامتری است که میزان تصادفی بودن خروجی مدل هوش مصنوعی مولد را کنترل می‌کند. دما مقداری بین ۰ و ۱ است که ۰ به معنای خروجی قطعی و ۱ به معنای خروجی کاملاً تصادفی است. مقدار پیش‌فرض ۰.۷ است. - -موارد بیشتری وجود دارد که می‌توانید با تصاویر انجام دهید و در بخش بعدی به آن‌ها می‌پردازیم. - -## قابلیت‌های اضافی تولید تصویر - -تا اینجا دیدید که چگونه با چند خط کد پایتون توانستیم تصویر تولید کنیم. اما کارهای بیشتری می‌توان با تصاویر انجام داد. - -شما همچنین می‌توانید: - -- **ویرایش انجام دهید**. با ارائه یک تصویر موجود، یک ماسک و یک پرامپت، می‌توانید تصویر را تغییر دهید. برای مثال، می‌توانید به بخشی از تصویر چیزی اضافه کنید. فرض کنید تصویر خرگوش ما، می‌توانید کلاهی به خرگوش اضافه کنید. این کار با ارائه تصویر، ماسک (که بخش مورد نظر برای تغییر را مشخص می‌کند) و پرامپت متنی که می‌گوید چه کاری باید انجام شود، انجام می‌شود. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - تصویر پایه فقط شامل خرگوش است اما تصویر نهایی کلاه را روی خرگوش دارد. - -- **ایجاد واریاسیون**. ایده این است که تصویری موجود را گرفته و درخواست ایجاد واریاسیون کنید. برای ایجاد واریاسیون، تصویری و پرامپت متنی ارائه می‌دهید و کدی مانند زیر دارید: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > توجه، این قابلیت فقط در OpenAI پشتیبانی می‌شود - -## دما (Temperature) - -دما پارامتری است که میزان تصادفی بودن خروجی مدل هوش مصنوعی مولد را کنترل می‌کند. دما مقداری بین ۰ و ۱ است که ۰ به معنای خروجی قطعی و ۱ به معنای خروجی تصادفی است. مقدار پیش‌فرض ۰.۷ است. - -بیایید با اجرای این پرامپت دو بار، ببینیم دما چگونه کار می‌کند: - -> پرامپت: "خرگوش روی اسب، در حال نگه داشتن آبنبات چوبی، در چمنزاری مه‌آلود که نرگس می‌روید" - -![خرگوش روی اسب در حال نگه داشتن آبنبات چوبی، نسخه ۱](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.fa.png) - -حالا همان پرامپت را دوباره اجرا می‌کنیم تا ببینیم تصویر یکسانی تولید نمی‌شود: - -![تصویر تولید شده خرگوش روی اسب](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.fa.png) - -همانطور که می‌بینید، تصاویر مشابه هستند اما یکسان نیستند. حالا بیایید مقدار دما را به ۰.۱ تغییر دهیم و ببینیم چه اتفاقی می‌افتد: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### تغییر دما - -بیایید پاسخ را قطعی‌تر کنیم. از دو تصویر تولید شده مشاهده کردیم که در تصویر اول خرگوش است و در تصویر دوم اسب، پس تصاویر تفاوت زیادی دارند. - -پس کد خود را تغییر می‌دهیم و دما را روی ۰ قرار می‌دهیم، به این صورت: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -حالا وقتی این کد را اجرا کنید، این دو تصویر را دریافت می‌کنید: - -- ![دما ۰، نسخه ۱](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.fa.png) -- ![دما ۰، نسخه ۲](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.fa.png) - -اینجا واضح است که تصاویر بیشتر به هم شبیه شده‌اند. - -## چگونه با متاپرامپت‌ها محدوده‌های برنامه خود را تعریف کنیم - -با دمو ما، می‌توانیم برای مشتریان خود تصاویر تولید کنیم. اما باید برای برنامه خود محدوده‌هایی تعریف کنیم. - -مثلاً نمی‌خواهیم تصاویر نامناسب برای محیط کار یا کودکان تولید کنیم. - -این کار را با _متاپرامپت‌ها_ انجام می‌دهیم. متاپرامپت‌ها پرامپت‌های متنی هستند که برای کنترل خروجی مدل هوش مصنوعی مولد استفاده می‌شوند. مثلاً می‌توانیم با متاپرامپت‌ها خروجی را کنترل کنیم و مطمئن شویم تصاویر تولید شده برای محیط کار ایمن و برای کودکان مناسب هستند. - -### چگونه کار می‌کند؟ - -حالا، متاپرامپت‌ها چگونه کار می‌کنند؟ - -متاپرامپت‌ها پرامپت‌های متنی هستند که برای کنترل خروجی مدل هوش مصنوعی مولد استفاده می‌شوند، آن‌ها قبل از پرامپت متنی قرار می‌گیرند و برای کنترل خروجی مدل به کار می‌روند و در برنامه‌ها جاسازی می‌شوند تا خروجی مدل را کنترل کنند. به این صورت که ورودی پرامپت و ورودی متاپرامپت در یک پرامپت متنی واحد قرار می‌گیرند. - -یک مثال از متاپرامپت به صورت زیر است: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -حالا ببینیم چگونه می‌توانیم در دمو خود از متاپرامپت‌ها استفاده کنیم. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -از پرامپت بالا می‌بینید که همه تصاویر تولید شده، متاپرامپت را در نظر می‌گیرند. - -## تمرین - اجازه دهید دانش‌آموزان فعال شوند - -در ابتدای این درس Edu4All را معرفی کردیم. حالا وقت آن است که به دانش‌آموزان اجازه دهیم برای ارزیابی‌های خود تصاویر تولید کنند. - -دانش‌آموزان تصاویر مربوط به بناهای تاریخی برای ارزیابی‌های خود ایجاد می‌کنند، اینکه چه بناهایی باشد به خود دانش‌آموزان بستگی دارد. از دانش‌آموزان خواسته شده است که در این کار خلاقیت به خرج دهند و این بناها را در زمینه‌های مختلف قرار دهند. - -## راه‌حل - -در اینجا یک راه‌حل ممکن است: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## کار عالی! یادگیری خود را ادامه دهید - -پس از اتمام این درس، مجموعه [یادگیری هوش مصنوعی مولد](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) ما را بررسی کنید تا دانش خود در زمینه هوش مصنوعی مولد را ارتقا دهید! - -به درس ۱۰ بروید که در آن به نحوه [ساخت برنامه‌های هوش مصنوعی با کد کم](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) می‌پردازیم. - -**سلب مسئولیت**: -این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است حاوی خطاها یا نواقصی باشند. سند اصلی به زبان بومی خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما مسئول هیچ گونه سوءتفاهم یا تفسیر نادرستی که از استفاده این ترجمه ناشی شود، نیستیم. \ No newline at end of file + + + + diff --git a/translations/fa/12-designing-ux-for-ai-applications/README.md b/translations/fa/12-designing-ux-for-ai-applications/README.md index f53721320..7b4b03530 100644 --- a/translations/fa/12-designing-ux-for-ai-applications/README.md +++ b/translations/fa/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# طراحی تجربه کاربری برای برنامه‌های هوش مصنوعی - -[![طراحی تجربه کاربری برای برنامه‌های هوش مصنوعی](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.fa.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(برای مشاهده ویدئوی این درس روی تصویر بالا کلیک کنید)_ - -تجربه کاربری یکی از جنبه‌های بسیار مهم در ساخت برنامه‌ها است. کاربران باید بتوانند به شکلی کارآمد از برنامه شما استفاده کنند تا وظایف خود را انجام دهند. کارآمد بودن یک چیز است، اما شما همچنین باید برنامه‌ها را طوری طراحی کنید که همه بتوانند از آن‌ها استفاده کنند، یعنی برنامه‌ها _دسترس‌پذیر_ باشند. این فصل بر این موضوع تمرکز دارد تا در نهایت برنامه‌ای طراحی کنید که مردم بتوانند و بخواهند از آن استفاده کنند. - -## مقدمه - -تجربه کاربری به نحوه تعامل و استفاده کاربر از یک محصول یا خدمت خاص، چه سیستم، ابزار یا طراحی، گفته می‌شود. هنگام توسعه برنامه‌های هوش مصنوعی، توسعه‌دهندگان نه تنها بر موثر بودن تجربه کاربری تمرکز می‌کنند بلکه به اخلاقی بودن آن نیز توجه دارند. در این درس، نحوه ساخت برنامه‌های هوش مصنوعی (AI) که نیازهای کاربران را برآورده می‌کنند، بررسی می‌شود. - -این درس شامل موضوعات زیر است: - -- مقدمه‌ای بر تجربه کاربری و درک نیازهای کاربران -- طراحی برنامه‌های هوش مصنوعی برای اعتماد و شفافیت -- طراحی برنامه‌های هوش مصنوعی برای همکاری و بازخورد - -## اهداف یادگیری - -پس از گذراندن این درس، قادر خواهید بود: - -- درک کنید چگونه برنامه‌های هوش مصنوعی بسازید که نیازهای کاربران را برآورده کنند. -- برنامه‌های هوش مصنوعی طراحی کنید که اعتماد و همکاری را ترویج دهند. - -### پیش‌نیاز - -زمانی را صرف کنید و بیشتر درباره [تجربه کاربری و تفکر طراحی](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) مطالعه کنید. - -## مقدمه‌ای بر تجربه کاربری و درک نیازهای کاربران - -در استارتاپ آموزشی فرضی ما، دو گروه اصلی کاربر داریم: معلمان و دانش‌آموزان. هر یک از این دو گروه نیازهای منحصر به فردی دارند. طراحی متمرکز بر کاربر، اولویت را به کاربر می‌دهد تا اطمینان حاصل شود محصولات مرتبط و مفید برای کسانی هستند که برای آن‌ها ساخته شده‌اند. - -برنامه باید **مفید، قابل اعتماد، دسترس‌پذیر و خوشایند** باشد تا تجربه کاربری خوبی ارائه دهد. - -### قابلیت استفاده - -مفید بودن یعنی برنامه عملکردی داشته باشد که با هدف مورد نظر آن مطابقت داشته باشد، مانند خودکارسازی فرآیند نمره‌دهی یا تولید کارت‌های مرور برای بازبینی. برنامه‌ای که فرآیند نمره‌دهی را خودکار می‌کند باید بتواند به دقت و به طور کارآمد به کارهای دانش‌آموزان بر اساس معیارهای از پیش تعیین شده نمره اختصاص دهد. به همین ترتیب، برنامه‌ای که کارت‌های مرور تولید می‌کند باید بتواند سوالات مرتبط و متنوعی بر اساس داده‌های خود ایجاد کند. - -### قابلیت اطمینان - -قابل اعتماد بودن یعنی برنامه بتواند وظیفه خود را به طور مداوم و بدون خطا انجام دهد. با این حال، هوش مصنوعی مانند انسان‌ها کامل نیست و ممکن است دچار خطا شود. برنامه‌ها ممکن است با خطاها یا موقعیت‌های غیرمنتظره‌ای مواجه شوند که نیاز به دخالت یا اصلاح انسانی دارد. چگونه خطاها را مدیریت می‌کنید؟ در بخش پایانی این درس، نحوه طراحی سیستم‌ها و برنامه‌های هوش مصنوعی برای همکاری و بازخورد را بررسی خواهیم کرد. - -### دسترس‌پذیری - -دسترس‌پذیر بودن یعنی تجربه کاربری را به کاربران با توانایی‌های مختلف، از جمله افراد دارای معلولیت، گسترش دهید تا هیچ‌کس کنار گذاشته نشود. با پیروی از دستورالعمل‌ها و اصول دسترس‌پذیری، راه‌حل‌های هوش مصنوعی فراگیرتر، قابل استفاده‌تر و مفیدتر برای همه کاربران می‌شوند. - -### خوشایند بودن - -خوشایند بودن یعنی برنامه لذت‌بخش باشد. تجربه کاربری جذاب می‌تواند تأثیر مثبتی بر کاربر داشته باشد و او را تشویق کند که دوباره به برنامه بازگردد و درآمد کسب‌وکار را افزایش دهد. - -![تصویری که ملاحظات تجربه کاربری در هوش مصنوعی را نشان می‌دهد](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.fa.png) - -هر چالشی را نمی‌توان با هوش مصنوعی حل کرد. هوش مصنوعی برای تقویت تجربه کاربری شما وارد می‌شود، چه خودکارسازی کارهای دستی باشد، چه شخصی‌سازی تجربه‌های کاربری. - -## طراحی برنامه‌های هوش مصنوعی برای اعتماد و شفافیت - -ایجاد اعتماد هنگام طراحی برنامه‌های هوش مصنوعی حیاتی است. اعتماد باعث می‌شود کاربر مطمئن باشد که برنامه کار را به درستی انجام می‌دهد، نتایج را به طور مداوم ارائه می‌دهد و نتایج همان چیزی است که کاربر نیاز دارد. یکی از ریسک‌ها در این زمینه بی‌اعتمادی و اعتماد بیش از حد است. بی‌اعتمادی زمانی رخ می‌دهد که کاربر اعتماد کمی یا هیچ اعتمادی به سیستم هوش مصنوعی نداشته باشد که منجر به رد برنامه شما توسط کاربر می‌شود. اعتماد بیش از حد زمانی است که کاربر توانایی سیستم هوش مصنوعی را بیش از حد برآورد می‌کند و باعث می‌شود بیش از حد به سیستم اعتماد کند. برای مثال، در سیستم نمره‌دهی خودکار، اعتماد بیش از حد ممکن است باعث شود معلم برخی از برگه‌ها را بررسی نکند تا مطمئن شود سیستم نمره‌دهی به درستی کار می‌کند. این می‌تواند منجر به نمرات ناعادلانه یا نادرست برای دانش‌آموزان شود یا فرصت‌های بازخورد و بهبود را از دست بدهد. - -دو راه برای اطمینان از اینکه اعتماد در مرکز طراحی قرار دارد، توضیح‌پذیری و کنترل است. - -### توضیح‌پذیری - -وقتی هوش مصنوعی به تصمیم‌گیری‌ها کمک می‌کند، مانند انتقال دانش به نسل‌های آینده، برای معلمان و والدین مهم است که بفهمند تصمیمات هوش مصنوعی چگونه گرفته می‌شود. این همان توضیح‌پذیری است - درک اینکه برنامه‌های هوش مصنوعی چگونه تصمیم می‌گیرند. طراحی برای توضیح‌پذیری شامل افزودن جزئیات و مثال‌هایی از آنچه برنامه هوش مصنوعی می‌تواند انجام دهد، است. برای مثال، به جای "شروع با معلم هوش مصنوعی"، سیستم می‌تواند بگوید: "یادداشت‌های خود را برای مرور آسان‌تر با هوش مصنوعی خلاصه کن." - -![صفحه فرود یک برنامه با توضیح واضح درباره توضیح‌پذیری در برنامه‌های هوش مصنوعی](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.fa.png) - -مثال دیگر نحوه استفاده هوش مصنوعی از داده‌های کاربر و شخصی است. برای مثال، کاربری با شخصیت دانش‌آموز ممکن است محدودیت‌هایی بر اساس شخصیت خود داشته باشد. هوش مصنوعی ممکن است نتواند پاسخ سوالات را به طور مستقیم ارائه دهد اما می‌تواند به کاربر کمک کند تا فکر کند چگونه می‌تواند مسئله‌ای را حل کند. - -![هوش مصنوعی در حال پاسخ به سوالات بر اساس شخصیت کاربر](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.fa.png) - -یکی دیگر از بخش‌های کلیدی توضیح‌پذیری، ساده‌سازی توضیحات است. دانش‌آموزان و معلمان ممکن است متخصص هوش مصنوعی نباشند، بنابراین توضیحات درباره آنچه برنامه می‌تواند یا نمی‌تواند انجام دهد باید ساده و قابل فهم باشد. - -![توضیحات ساده‌شده درباره قابلیت‌های هوش مصنوعی](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.fa.png) - -### کنترل - -هوش مصنوعی مولد همکاری بین هوش مصنوعی و کاربر ایجاد می‌کند، جایی که کاربر می‌تواند برای نتایج مختلف، درخواست‌ها را تغییر دهد. علاوه بر این، پس از تولید خروجی، کاربران باید بتوانند نتایج را تغییر دهند تا حس کنترل داشته باشند. برای مثال، هنگام استفاده از Bing، می‌توانید درخواست خود را بر اساس قالب، لحن و طول تنظیم کنید. همچنین می‌توانید تغییراتی در خروجی ایجاد کرده و آن را اصلاح کنید، همانطور که در تصویر زیر نشان داده شده است: - -![نتایج جستجوی Bing با گزینه‌هایی برای تغییر درخواست و خروجی](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.fa.png) - -ویژگی دیگری در Bing که به کاربر کنترل بر برنامه می‌دهد، امکان انتخاب یا عدم انتخاب استفاده از داده‌هایی است که هوش مصنوعی استفاده می‌کند. برای یک برنامه مدرسه، ممکن است دانش‌آموز بخواهد از یادداشت‌های خود و منابع معلمان به عنوان مواد مرور استفاده کند. - -![نتایج جستجوی Bing با گزینه‌هایی برای تغییر درخواست و خروجی](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.fa.png) - -> هنگام طراحی برنامه‌های هوش مصنوعی، هدفمندی کلید جلوگیری از اعتماد بیش از حد کاربران و ایجاد انتظارات غیرواقعی از قابلیت‌های آن است. یکی از راه‌ها ایجاد اصطکاک بین درخواست‌ها و نتایج است. به کاربر یادآوری کنید که این هوش مصنوعی است و نه یک انسان هم‌صحبت. - -## طراحی برنامه‌های هوش مصنوعی برای همکاری و بازخورد - -همانطور که قبلاً گفته شد، هوش مصنوعی مولد همکاری بین کاربر و هوش مصنوعی ایجاد می‌کند. بیشتر تعاملات شامل وارد کردن درخواست توسط کاربر و تولید خروجی توسط هوش مصنوعی است. اگر خروجی نادرست باشد چه؟ برنامه چگونه خطاها را مدیریت می‌کند؟ آیا هوش مصنوعی کاربر را مقصر می‌داند یا زمان می‌گذارد تا خطا را توضیح دهد؟ - -برنامه‌های هوش مصنوعی باید به گونه‌ای ساخته شوند که بازخورد دریافت و ارائه کنند. این نه تنها به بهبود سیستم هوش مصنوعی کمک می‌کند بلکه اعتماد کاربران را نیز افزایش می‌دهد. یک حلقه بازخورد باید در طراحی گنجانده شود، مثلاً یک دکمه ساده برای تایید یا رد خروجی. - -راه دیگر برای مدیریت این موضوع، ارتباط واضح درباره قابلیت‌ها و محدودیت‌های سیستم است. وقتی کاربر اشتباهی انجام می‌دهد و چیزی فراتر از توانایی‌های هوش مصنوعی درخواست می‌کند، باید راهی برای مدیریت این موضوع وجود داشته باشد، همانطور که در تصویر زیر نشان داده شده است. - -![ارائه بازخورد و مدیریت خطاها](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.fa.png) - -خطاهای سیستمی در برنامه‌ها رایج است، جایی که کاربر ممکن است به اطلاعاتی خارج از حوزه هوش مصنوعی نیاز داشته باشد یا برنامه محدودیتی در تعداد سوالات/موضوعاتی که کاربر می‌تواند خلاصه‌سازی کند داشته باشد. برای مثال، برنامه هوش مصنوعی که با داده‌های محدود در موضوعاتی مانند تاریخ و ریاضی آموزش دیده است، ممکن است نتواند به سوالات مربوط به جغرافیا پاسخ دهد. برای کاهش این مشکل، سیستم هوش مصنوعی می‌تواند پاسخی مانند این بدهد: "متأسفیم، محصول ما با داده‌های موضوعات زیر آموزش دیده است... نمی‌توانم به سوال شما پاسخ دهم." - -برنامه‌های هوش مصنوعی کامل نیستند، بنابراین احتمال خطا وجود دارد. هنگام طراحی برنامه‌های خود، باید فضایی برای دریافت بازخورد از کاربران و مدیریت خطاها به روشی ساده و قابل توضیح ایجاد کنید. - -## تمرین - -هر برنامه هوش مصنوعی که تاکنون ساخته‌اید را در نظر بگیرید و مراحل زیر را در برنامه خود پیاده‌سازی کنید: - -- **خوشایند بودن:** فکر کنید چگونه می‌توانید برنامه خود را خوشایندتر کنید. آیا در همه جا توضیح اضافه می‌کنید؟ آیا کاربران را تشویق به کاوش می‌کنید؟ پیام‌های خطای خود را چگونه بیان می‌کنید؟ - -- **قابلیت استفاده:** در حال ساخت یک برنامه وب هستید. مطمئن شوید برنامه شما هم با ماوس و هم با صفحه‌کلید قابل پیمایش است. - -- **اعتماد و شفافیت:** به هوش مصنوعی و خروجی آن به طور کامل اعتماد نکنید، فکر کنید چگونه می‌توانید یک انسان را در فرآیند برای تأیید خروجی وارد کنید. همچنین روش‌های دیگر برای ایجاد اعتماد و شفافیت را در نظر گرفته و پیاده‌سازی کنید. - -- **کنترل:** به کاربر کنترل داده‌هایی که به برنامه ارائه می‌دهد را بدهید. راهی برای انتخاب یا عدم انتخاب جمع‌آوری داده‌ها در برنامه هوش مصنوعی پیاده‌سازی کنید. - -## ادامه یادگیری! - -پس از اتمام این درس، مجموعه [یادگیری هوش مصنوعی مولد](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) را بررسی کنید تا دانش خود در زمینه هوش مصنوعی مولد را ارتقا دهید! - -به درس ۱۳ بروید، جایی که به موضوع [امنیت برنامه‌های هوش مصنوعی](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) می‌پردازیم! - -**سلب مسئولیت**: -این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است حاوی خطاها یا نواقصی باشند. سند اصلی به زبان بومی خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما مسئول هیچ گونه سوءتفاهم یا تفسیر نادرستی که از استفاده این ترجمه ناشی شود، نیستیم. \ No newline at end of file + + + diff --git a/translations/fa/README.md b/translations/fa/README.md index 6204aa979..569ebaa63 100644 --- a/translations/fa/README.md +++ b/translations/fa/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.fa.png) - -### ۲۱ درس که همه چیز لازم برای شروع ساخت برنامه‌های هوش مصنوعی مولد را به شما آموزش می‌دهد - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 پشتیبانی چندزبانه - -#### پشتیبانی شده از طریق GitHub Action (خودکار و همیشه به‌روز) - -[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](./README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md) - -# هوش مصنوعی مولد برای مبتدیان (نسخه ۳) - یک دوره آموزشی - -با دوره جامع ۲۱ درسی ما از طرف Microsoft Cloud Advocates، اصول ساخت برنامه‌های هوش مصنوعی مولد را بیاموزید. - -## 🌱 شروع کار - -این دوره شامل ۲۱ درس است. هر درس موضوع خاص خود را پوشش می‌دهد، پس هر کجا که دوست دارید شروع کنید! - -درس‌ها به دو دسته تقسیم شده‌اند: درس‌های «یادگیری» که مفاهیم هوش مصنوعی مولد را توضیح می‌دهند و درس‌های «ساخت» که علاوه بر توضیح مفهوم، نمونه کدهایی به زبان‌های **Python** و **TypeScript** ارائه می‌دهند، در صورت امکان. - -برای توسعه‌دهندگان .NET، دوره [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) را بررسی کنید! - -هر درس همچنین بخشی به نام «ادامه یادگیری» دارد که ابزارهای آموزشی بیشتری را ارائه می‌دهد. - -## آنچه نیاز دارید -### برای اجرای کدهای این دوره می‌توانید از یکی از موارد زیر استفاده کنید: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **درس‌ها:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **درس‌ها:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **درس‌ها:** "oai-assignment" - -- دانش پایه‌ای از Python یا TypeScript مفید است - \*برای مبتدیان مطلق این دوره‌های [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) و [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) را ببینید -- یک حساب GitHub برای [فورک کردن کل این مخزن](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) به حساب خودتان - -ما یک درس **[راه‌اندازی دوره](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** ایجاد کرده‌ایم تا به شما در راه‌اندازی محیط توسعه کمک کند. - -فراموش نکنید که این مخزن را [ستاره‌دار (🌟) کنید](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) تا بعداً راحت‌تر پیدایش کنید. - -## 🧠 آماده برای استقرار؟ - -اگر به دنبال نمونه‌های کد پیشرفته‌تر هستید، مجموعه [نمونه‌های کد هوش مصنوعی مولد](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) ما را در هر دو زبان **Python** و **TypeScript** بررسی کنید. - -## 🗣️ با دیگر یادگیرندگان آشنا شوید، پشتیبانی بگیرید - -به [سرور رسمی Discord Azure AI Foundry](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) بپیوندید تا با دیگر یادگیرندگانی که این دوره را می‌گذرانند آشنا شوید و پشتیبانی دریافت کنید. - -سؤالات خود را بپرسید یا بازخورد محصول را در [انجمن توسعه‌دهندگان Azure AI Foundry](https://aka.ms/azureaifoundry/forum) در گیت‌هاب به اشتراک بگذارید. - -## 🚀 در حال ساخت استارتاپ هستید؟ - -برای دریافت **اعتبار رایگان OpenAI** و تا سقف **۱۵۰ هزار دلار اعتبار Azure برای دسترسی به مدل‌های OpenAI از طریق Azure OpenAI Services**، در [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) ثبت‌نام کنید. - -## 🙏 می‌خواهید کمک کنید؟ - -اگر پیشنهادی دارید یا اشکالات املایی یا کد پیدا کرده‌اید، [یک Issue ثبت کنید](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) یا [یک Pull Request ایجاد کنید](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst). - -## 📂 هر درس شامل: - -- یک ویدئوی کوتاه معرفی موضوع -- درس مکتوب در فایل README -- نمونه کدهای Python و TypeScript که از Azure OpenAI و OpenAI API پشتیبانی می‌کنند -- لینک‌هایی به منابع اضافی برای ادامه یادگیری - -## 🗃️ دروس - -| # | **لینک درس** | **توضیح** | **ویدئو** | **یادگیری بیشتر** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| ۰۰ | [راه‌اندازی دوره](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **یادگیری:** چگونه محیط توسعه خود را راه‌اندازی کنیم | ویدئو به زودی منتشر می‌شود | [بیشتر بدانید](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| ۰۱ | [مقدمه‌ای بر هوش مصنوعی مولد و LLMها](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **یادگیری:** درک اینکه هوش مصنوعی مولد چیست و مدل‌های زبان بزرگ (LLM) چگونه کار می‌کنند. | [ویدئو](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [بیشتر بدانید](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| ۰۲ | [بررسی و مقایسه مدل‌های مختلف LLM](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **یادگیری:** چگونه مدل مناسب برای کاربرد خود را انتخاب کنیم | [ویدئو](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [بیشتر بدانید](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| ۰۳ | [استفاده مسئولانه از هوش مصنوعی مولد](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **یادگیری:** چگونه برنامه‌های هوش مصنوعی مولد را به صورت مسئولانه بسازیم | [ویدئو](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [بیشتر بدانید](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| ۰۴ | [درک اصول مهندسی پرامپت](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **یادگیری:** بهترین روش‌های مهندسی پرامپت به صورت عملی | [ویدئو](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [بیشتر بدانید](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| ۰۵ | [ساخت پرامپت‌های پیشرفته](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **یادگیری:** چگونه تکنیک‌های مهندسی پرامپت را به کار ببریم که نتایج پرامپت‌هایمان بهتر شود. | [ویدئو](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [بیشتر بدانید](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| ۰۶ | [ساخت برنامه‌های تولید متن](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **ساخت:** یک برنامه تولید متن با استفاده از Azure OpenAI / OpenAI API | [ویدئو](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [اطلاعات بیشتر](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| ۰۷ | [ساخت برنامه‌های چت](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **ساخت:** تکنیک‌هایی برای ساخت و یکپارچه‌سازی بهینه برنامه‌های چت. | [ویدئو](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [اطلاعات بیشتر](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| ۰۸ | [ساخت برنامه‌های جستجو با پایگاه‌های داده برداری](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **ساخت:** یک برنامه جستجو که از Embeddings برای جستجوی داده‌ها استفاده می‌کند. | [ویدئو](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [اطلاعات بیشتر](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| ۰۹ | [ساخت برنامه‌های تولید تصویر](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **ساخت:** یک برنامه تولید تصویر | [ویدئو](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [اطلاعات بیشتر](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| ۱۰ | [ساخت برنامه‌های هوش مصنوعی کم‌کد](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **ساخت:** یک برنامه هوش مصنوعی مولد با استفاده از ابزارهای کم‌کد | [ویدئو](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [اطلاعات بیشتر](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| ۱۱ | [یکپارچه‌سازی برنامه‌های خارجی با Function Calling](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **ساخت:** Function Calling چیست و کاربردهای آن در برنامه‌ها | [ویدئو](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [اطلاعات بیشتر](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| ۱۲ | [طراحی UX برای برنامه‌های هوش مصنوعی](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **یادگیری:** چگونه اصول طراحی UX را هنگام توسعه برنامه‌های هوش مصنوعی مولد به کار ببریم | [ویدئو](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [اطلاعات بیشتر](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| ۱۳ | [امنیت برنامه‌های هوش مصنوعی مولد شما](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **یادگیری:** تهدیدات و ریسک‌های سیستم‌های هوش مصنوعی و روش‌های ایمن‌سازی آن‌ها | [ویدئو](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [اطلاعات بیشتر](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| ۱۴ | [چرخه عمر برنامه‌های هوش مصنوعی مولد](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **یادگیری:** ابزارها و معیارهای مدیریت چرخه عمر LLM و LLMOps | [ویدئو](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [اطلاعات بیشتر](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| ۱۵ | [تولید افزوده بازیابی‌شده (RAG) و پایگاه‌های داده برداری](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **ساخت:** برنامه‌ای با استفاده از چارچوب RAG برای بازیابی embeddings از پایگاه‌های داده برداری | [ویدئو](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [اطلاعات بیشتر](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| ۱۶ | [مدل‌های متن‌باز و Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **ساخت:** برنامه‌ای با استفاده از مدل‌های متن‌باز موجود در Hugging Face | [ویدئو](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [اطلاعات بیشتر](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| ۱۷ | [عامل‌های هوش مصنوعی](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **ساخت:** برنامه‌ای با استفاده از چارچوب عامل هوش مصنوعی | [ویدئو](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [اطلاعات بیشتر](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| ۱۸ | [تنظیم دقیق LLMها](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **یادگیری:** چیستی، چرایی و چگونگی تنظیم دقیق LLMها | [ویدئو](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [اطلاعات بیشتر](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| ۱۹ | [ساخت با SLMها](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **یادگیری:** مزایای ساخت با مدل‌های زبان کوچک | ویدئو به زودی منتشر می‌شود | [اطلاعات بیشتر](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| ۲۰ | [ساخت با مدل‌های Mistral](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **یادگیری:** ویژگی‌ها و تفاوت‌های مدل‌های خانواده Mistral | ویدئو به زودی منتشر می‌شود | [اطلاعات بیشتر](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| ۲۱ | [ساخت با مدل‌های Meta](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **یادگیری:** ویژگی‌ها و تفاوت‌های مدل‌های خانواده Meta | ویدئو به زودی منتشر می‌شود | [اطلاعات بیشتر](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 تشکر ویژه - -تشکر ویژه از [**John Aziz**](https://www.linkedin.com/in/john0isaac/) برای ایجاد تمام GitHub Actions و گردش‌های کاری - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) برای مشارکت‌های کلیدی در هر درس به منظور بهبود تجربه یادگیری و کدنویسی. - -## 🎒 دوره‌های دیگر - -تیم ما دوره‌های دیگری هم تولید می‌کند! نگاهی بیندازید به: - -- [**جدید** پروتکل مدل کانتکست برای مبتدیان](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [عامل‌های هوش مصنوعی برای مبتدیان](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [هوش مصنوعی مولد برای مبتدیان با استفاده از .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [هوش مصنوعی مولد برای مبتدیان با استفاده از JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [یادگیری ماشین برای مبتدیان](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [علم داده برای مبتدیان](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [هوش مصنوعی برای مبتدیان](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [امنیت سایبری برای مبتدیان](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [توسعه وب برای مبتدیان](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [اینترنت اشیا برای مبتدیان](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [توسعه XR برای مبتدیان](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [تسلط بر GitHub Copilot برای برنامه‌نویسی جفتی هوش مصنوعی](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [تسلط بر GitHub Copilot برای توسعه‌دهندگان C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [ماجراجویی انتخاب Copilot خودتان](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**سلب مسئولیت**: -این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است حاوی خطاها یا نادرستی‌هایی باشند. سند اصلی به زبان بومی خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما مسئول هیچ گونه سوءتفاهم یا تفسیر نادرستی که از استفاده این ترجمه ناشی شود، نیستیم. \ No newline at end of file + + + + diff --git a/translations/fi/00-course-setup/01-setup-cloud.md b/translations/fi/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..56e1f7dee --- /dev/null +++ b/translations/fi/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/fi/00-course-setup/02-setup-local.md b/translations/fi/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..cefd468b8 --- /dev/null +++ b/translations/fi/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/fi/00-course-setup/03-providers.md b/translations/fi/00-course-setup/03-providers.md new file mode 100644 index 000000000..fead1644f --- /dev/null +++ b/translations/fi/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/fi/00-course-setup/README.md b/translations/fi/00-course-setup/README.md index fff456fab..980da878c 100644 --- a/translations/fi/00-course-setup/README.md +++ b/translations/fi/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# Aloittaminen tällä kurssilla - -Olemme todella innoissamme, että aloitat tämän kurssin ja näet, mitä innostavaa voit rakentaa Generatiivisen tekoälyn avulla! - -Varmistaaksesi menestyksesi, tällä sivulla käydään läpi asennusvaiheet, tekniset vaatimukset ja mistä saat apua tarvittaessa. - -## Asennusvaiheet - -Aloittaaksesi kurssin suorittamisen sinun tulee tehdä seuraavat vaiheet. - -### 1. Forkkaa tämä repositorio - -[Forkkaa koko tämä repositorio](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) omaan GitHub-tiliisi, jotta voit muokata koodia ja suorittaa haasteet. Voit myös [tähtiä (🌟) tämän repositorion](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst), jotta löydät sen ja siihen liittyvät repositoriot helpommin. - -### 2. Luo codespace - -Välttääksesi riippuvuusongelmia koodia ajettaessa, suosittelemme suorittamaan tämän kurssin [GitHub Codespacesissa](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst). - -Codespace luodaan valitsemalla `Code`-valikko forkkaamastasi repositoriosta ja valitsemalla **Codespaces**-vaihtoehto. - -![Dialogi, jossa näkyy painikkeet codespacen luomiseen](../../../00-course-setup/images/who-will-pay.webp) - -### 3. API-avainten tallentaminen - -API-avainten turvallinen säilyttäminen on tärkeää minkä tahansa sovelluksen rakentamisessa. Emme suosittele tallentamaan API-avaimia suoraan koodiin. Julkiseen repositorioon tallentaminen voi aiheuttaa tietoturvaongelmia ja jopa ei-toivottuja kustannuksia, jos joku väärinkäyttää avaimia. - -Tässä on vaiheittainen ohje, miten luoda `.env`-tiedosto Pythonille ja lisätä `GITHUB_TOKEN`: - -1. **Siirry projektihakemistoon**: Avaa terminaali tai komentokehote ja siirry projektisi juurihakemistoon, johon haluat luoda `.env`-tiedoston. - - ```bash - cd path/to/your/project - ``` - -2. **Luo `.env`-tiedosto**: Käytä haluamaasi tekstieditoria luodaksesi uusi tiedosto nimeltä `.env`. Jos käytät komentoriviä, voit käyttää `touch` (Unix-järjestelmissä) tai `echo` (Windowsissa): - - Unix-järjestelmät: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **Muokkaa `.env`-tiedostoa**: Avaa `.env`-tiedosto tekstieditorissa (esim. VS Code, Notepad++ tai muu editori). Lisää tiedostoon seuraava rivi, korvaten `your_github_token_here` omalla GitHub-tokenillasi: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Tallenna tiedosto**: Tallenna muutokset ja sulje editori. - -5. **Asenna `python-dotenv`**: Jos et ole vielä asentanut, sinun tulee asentaa `python-dotenv`-paketti, jotta voit ladata ympäristömuuttujat `.env`-tiedostosta Python-sovellukseesi. Asennus onnistuu `pip`-komennolla: - - ```bash - pip install python-dotenv - ``` - -6. **Lataa ympäristömuuttujat Python-skriptissäsi**: Käytä Python-skriptissäsi `python-dotenv`-pakettia ladataksesi ympäristömuuttujat `.env`-tiedostosta: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -Siinä se! Olet onnistuneesti luonut `.env`-tiedoston, lisännyt GitHub-tokenisi ja ladannut sen Python-sovellukseesi. - -## Kuinka suorittaa paikallisesti omalla tietokoneella - -Jos haluat suorittaa koodin paikallisesti omalla tietokoneellasi, sinun tulee olla asennettuna jokin versio [Pythonista](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -Käyttääksesi repositoriota sinun tulee kloonata se: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -Kun olet saanut kaiken valmiiksi, voit aloittaa! - -## Valinnaiset vaiheet - -### Minicondan asentaminen - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) on kevyt asennustyökalu [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Pythonin ja muutamien pakettien asentamiseen. Conda on pakettienhallintaohjelma, joka helpottaa erilaisten Python [**virtuaaliympäristöjen**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) ja pakettien hallintaa. Se on myös hyödyllinen pakettien asentamiseen, joita ei ole saatavilla `pip`-komennolla. - -Voit seurata [MiniConda asennusohjetta](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) asentaaksesi sen. - -Kun Miniconda on asennettu, sinun tulee kloonata [repositorio](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (jos et ole vielä tehnyt sitä). - -Seuraavaksi sinun tulee luoda virtuaaliympäristö. Condalla tämä tehdään luomalla uusi ympäristötiedosto (_environment.yml_). Jos seuraat kurssia Codespacesissa, luo tämä `.devcontainer`-hakemistoon, eli `.devcontainer/environment.yml`. - -Täytä ympäristötiedosto alla olevalla koodinpätkällä: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Jos saat virheitä condaa käyttäessäsi, voit asentaa Microsoft AI Libraries -kirjastot manuaalisesti seuraavalla komennolla terminaalissa. - -``` -conda install -c microsoft azure-ai-ml -``` - -Ympäristötiedosto määrittelee tarvitsemamme riippuvuudet. `` tarkoittaa nimeä, jonka haluat antaa Conda-ympäristöllesi, ja `` on Pythonin versio, jota haluat käyttää, esimerkiksi `3` on uusin pääversio. - -Kun tämä on tehty, voit luoda Conda-ympäristösi suorittamalla alla olevat komennot komentorivillä/terminaalissa: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -Katso tarvittaessa [Conda environments -opas](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst). - -### Visual Studio Coden käyttäminen Python-laajennuksella - -Suosittelemme käyttämään [Visual Studio Codea (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) tämän kurssin editorina yhdessä [Python-laajennuksen](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) kanssa. Tämä on kuitenkin enemmän suositus kuin pakollinen vaatimus. - -> **Huom:** Kun avaat kurssin repositorion VS Codessa, sinulla on mahdollisuus asentaa projekti konttiin. Tämä johtuu kurssin repositoriossa olevasta [erityisestä `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) -kansiosta. Tästä lisää myöhemmin. - -> **Huom:** Kun kloonaat ja avaat hakemiston VS Codessa, se ehdottaa automaattisesti Python-laajennuksen asentamista. - -> **Huom:** Jos VS Code ehdottaa repositorion uudelleenavaamista kontissa, hylkää pyyntö, jos haluat käyttää paikallisesti asennettua Python-versiota. - -### Jupyterin käyttäminen selaimessa - -Voit myös työskennellä projektin parissa käyttämällä [Jupyter-ympäristöä](https://jupyter.org?WT.mc_id=academic-105485-koreyst) suoraan selaimessasi. Sekä klassinen Jupyter että [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) tarjoavat miellyttävän kehitysympäristön, jossa on mm. automaattinen täydennys ja koodin korostus. - -Aloittaaksesi Jupyteriä paikallisesti, siirry terminaaliin/komentoriville, mene kurssihakemistoon ja suorita: - -```bash -jupyter notebook -``` - -tai - -```bash -jupyterhub -``` - -Tämä käynnistää Jupyter-instanssin, ja pääsyosoite näytetään komentorivillä. - -Kun avaat osoitteen, näet kurssin sisällön ja voit siirtyä mihin tahansa `*.ipynb`-tiedostoon, esimerkiksi `08-building-search-applications/python/oai-solution.ipynb`. - -### Suorittaminen kontissa - -Vaihtoehtona kaiken asentamiselle omalle koneelle tai Codespaceen on käyttää [konttia](../../../00-course-setup/). Kurssin repositoriossa oleva erityinen `.devcontainer`-kansio mahdollistaa VS Coden projektin asentamisen konttiin. Codespacesin ulkopuolella tämä vaatii Dockerin asentamisen, ja rehellisesti sanottuna se vaatii hieman työtä, joten suosittelemme tätä vain, jos sinulla on kokemusta konttien kanssa työskentelystä. - -Yksi parhaista tavoista pitää API-avaimesi turvassa GitHub Codespacesissa on käyttää Codespace Secrets -ominaisuutta. Tutustu [Codespaces secrets management](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) -oppaaseen saadaksesi lisätietoja. - -## Oppitunnit ja tekniset vaatimukset - -Kurssilla on 6 konseptituntia ja 6 koodausoppituntia. - -Koodausoppitunneilla käytämme Azure OpenAI Servicea. Sinun tulee saada pääsy Azure OpenAI -palveluun ja API-avain koodin suorittamista varten. Voit hakea pääsyä [täyttämällä tämän hakemuksen](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -Hakemuksen käsittelyn aikana jokaisella koodausoppitunnilla on myös `README.md`-tiedosto, jossa voit tarkastella koodia ja tuloksia. - -## Azure OpenAI -palvelun ensimmäinen käyttökerta - -Jos käytät Azure OpenAI -palvelua ensimmäistä kertaa, seuraa tätä ohjetta, miten [luoda ja ottaa käyttöön Azure OpenAI Service -resurssi.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## OpenAI API:n ensimmäinen käyttökerta - -Jos käytät OpenAI API:a ensimmäistä kertaa, seuraa ohjetta, miten [luoda ja käyttää rajapintaa.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## Tapaa muita oppijoita - -Olemme luoneet kanavia viralliselle [AI Community Discord -palvelimellemme](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) muiden oppijoiden tapaamista varten. Tämä on loistava tapa verkostoitua samanhenkisten yrittäjien, rakentajien, opiskelijoiden ja kaikkien kanssa, jotka haluavat kehittyä Generatiivisen tekoälyn parissa. - -[![Liity discord-kanavalle](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -Projektitiimi on myös mukana tässä Discord-palvelimessa auttamassa oppijoita. - -## Osallistu - -Tämä kurssi on avoimen lähdekoodin hanke. Jos huomaat parannusehdotuksia tai ongelmia, luo [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) tai kirjaa [GitHub-issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -Projektitiimi seuraa kaikkia kontribuutioita. Avoimen lähdekoodin projekteihin osallistuminen on loistava tapa rakentaa uraasi Generatiivisen tekoälyn parissa. - -Useimmat kontribuutiot edellyttävät, että hyväksyt Contributor License Agreementin (CLA), jossa vakuutat, että sinulla on oikeus ja myönnät meille oikeudet käyttää panostustasi. Lisätietoja löydät [CLA, Contributor License Agreement -sivustolta](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Tärkeää: kun käännät tekstiä tässä repositoriossa, varmista, ettet käytä konekäännöstä. Tarkistamme käännökset yhteisön avulla, joten ilmoittaudu vapaaehtoiseksi vain kielillä, joissa olet taitava. - -Kun lähetät pull requestin, CLA-botti tarkistaa automaattisesti, tarvitsetko CLA:n ja merkitsee PR:n asianmukaisesti (esim. tunnisteella tai kommentilla). Noudata botin ohjeita. Tämä riittää tekemään vain kerran kaikissa CLA:ta käyttävissä repositorioissa. - -Tämä projekti on ottanut käyttöön [Microsoft Open Source Code of Conductin](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst). Lisätietoja löydät Code of Conductin UKK:sta tai ota yhteyttä [Email opencode](opencode@microsoft.com) -osoitteeseen, jos sinulla on lisäkysymyksiä tai kommentteja. - -## Aloitetaan - -Nyt kun olet suorittanut tarvittavat vaiheet tämän kurssin aloittamiseksi, aloitetaan tutustumalla [Generatiiviseen tekoälyyn ja LLM-malleihin](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**Vastuuvapauslauseke**: -Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Vaikka pyrimme tarkkuuteen, huomioithan, että automaattikäännöksissä saattaa esiintyä virheitä tai epätarkkuuksia. Alkuperäistä asiakirjaa sen alkuperäiskielellä tulee pitää virallisena lähteenä. Tärkeissä asioissa suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa tämän käännöksen käytöstä aiheutuvista väärinymmärryksistä tai tulkinnoista. \ No newline at end of file + + + + diff --git a/translations/fi/00-course-setup/SETUP.md b/translations/fi/00-course-setup/SETUP.md deleted file mode 100644 index acc04ee9c..000000000 --- a/translations/fi/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# Määritä kehitysympäristösi - -Olemme määrittäneet tämän repositorion ja kurssin [kehityssäiliöllä](https://containers.dev?WT.mc_id=academic-105485-koreyst), jossa on Universal runtime, joka tukee Python3-, .NET-, Node.js- ja Java-kehitystä. Asiaankuuluva konfiguraatio on määritelty `devcontainer.json`-tiedostossa, joka sijaitsee `.devcontainer/`-kansiossa tämän repositorion juurihakemistossa. - -Aktivoi kehityssäiliö käynnistämällä se [GitHub Codespacesissa](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (pilvipohjainen runtime) tai [Docker Desktopissa](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (paikallinen laite). Lue [tämä dokumentaatio](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) saadaksesi lisätietoja siitä, miten kehityssäiliöt toimivat VS Codessa. - -> [!TIP] -> Suosittelemme GitHub Codespacesin käyttöä nopeaan alkuun mahdollisimman vähällä vaivalla. Se tarjoaa anteliaan [ilmaisen käyttökiintiön](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) henkilökohtaisille tileille. Määritä [aikakatkaisut](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) pysäyttämään tai poistamaan käyttämättömät codespacet, jotta saat kiintiöstäsi parhaan hyödyn. - -## 1. Tehtävien suorittaminen - -Jokaisella oppitunnilla on _valinnaisia_ tehtäviä, jotka voivat olla tarjolla yhdessä tai useammassa ohjelmointikielessä, kuten Python, .NET/C#, Java ja JavaScript/TypeScript. Tässä osiossa annetaan yleisiä ohjeita näiden tehtävien suorittamiseen. - -### 1.1 Python-tehtävät - -Python-tehtävät toimitetaan joko sovelluksina (`.py`-tiedostot) tai Jupyter-muistikirjoina (`.ipynb`-tiedostot). -- Suorittaaksesi muistikirjan, avaa se Visual Studio Codessa, klikkaa _Select Kernel_ (oikeassa yläkulmassa) ja valitse näkyviin tuleva oletusvaihtoehto Python 3. Voit nyt valita _Run All_ suorittaaksesi koko muistikirjan. -- Python-sovellusten suorittamiseksi komentoriviltä noudata tehtäväkohtaisia ohjeita varmistaaksesi, että valitset oikeat tiedostot ja annat tarvittavat argumentit. - -## 2. Palveluntarjoajien määrittäminen - -Tehtävät **voivat** myös olla määritetty toimimaan yhden tai useamman suuren kielimallin (LLM) käyttöönoton kanssa tuetun palveluntarjoajan, kuten OpenAI:n, Azuren tai Hugging Facen kautta. Nämä tarjoavat _isännöidyn päätepisteen_ (API), johon pääsemme ohjelmallisesti käsiksi oikeilla tunnistetiedoilla (API-avain tai token). Tässä kurssissa käsittelemme seuraavia palveluntarjoajia: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst), jolla on monipuolisia malleja, mukaan lukien GPT-sarjan ydint mallit. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst), joka keskittyy OpenAI-malleihin yrityskäyttövalmiudella - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) avoimen lähdekoodin malleille ja inferenssipalvelimelle - -**Näitä harjoituksia varten tarvitset omat tilisi**. Tehtävät ovat valinnaisia, joten voit valita, määritätkö yhden, kaikki vai et yhtään palveluntarjoajaa kiinnostuksesi mukaan. Tässä ohjeita rekisteröitymiseen: - -| Rekisteröityminen | Hinta | API-avain | Playground | Kommentit | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst) | [Hinnoittelu](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst) | [Projektikohtainen](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [Ei-koodia, Web](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Useita malleja saatavilla | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst) | [Hinnoittelu](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst) | [SDK Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Studio Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Pääsyyn on haettava etukäteen](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) | -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Hinnoittelu](https://huggingface.co/pricing) | [Access Tokens](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst) | [Hugging Chatissa on rajattu määrä malleja](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Noudata alla olevia ohjeita määrittääksesi tämän repositorion käytettäväksi eri palveluntarjoajien kanssa. Tehtävissä, jotka vaativat tietyn palveluntarjoajan, tiedoston nimessä on jokin seuraavista tunnisteista: - - `aoai` - vaatii Azure OpenAI -päätepisteen ja avaimen - - `oai` - vaatii OpenAI-päätepisteen ja avaimen - - `hf` - vaatii Hugging Face -tokenin - -Voit määrittää yhden, useamman tai kaikki palveluntarjoajat. Tehtävät, jotka vaativat tietyn palveluntarjoajan, antavat virheen, jos tunnistetietoja ei ole. - -### 2.1. Luo `.env`-tiedosto - -Oletamme, että olet jo lukenut yllä olevat ohjeet, rekisteröitynyt asianmukaiselle palveluntarjoajalle ja saanut tarvittavat tunnistetiedot (API_KEY tai token). Azuren OpenAI:n tapauksessa oletamme myös, että sinulla on voimassa oleva käyttöönotto Azure OpenAI -palvelussa (päätepiste), jossa on vähintään yksi GPT-malli chat-suoritusta varten. - -Seuraava vaihe on määrittää **paikalliset ympäristömuuttujat** seuraavasti: - -1. Etsi juurihakemistosta `.env.copy`-tiedosto, jonka sisältö on suunnilleen tällainen: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Kopioi tiedosto nimellä `.env` alla olevalla komennolla. Tämä tiedosto on _gitignore:ssa_, joten salaisuudet pysyvät turvassa. - - ```bash - cp .env.copy .env - ``` - -3. Täytä arvot (korvaa oikealla puolella olevat paikkamerkit) seuraavan osion ohjeiden mukaisesti. - -3. (Valinnainen) Jos käytät GitHub Codespacesia, voit tallentaa ympäristömuuttujat _Codespaces-salaisuuksina_, jotka liittyvät tähän repositorioon. Tällöin sinun ei tarvitse määrittää paikallista .env-tiedostoa. **Huomaa kuitenkin, että tämä vaihtoehto toimii vain GitHub Codespacesin kanssa.** Jos käytät Docker Desktopia, sinun on silti määritettävä .env-tiedosto. - -### 2.2. Täytä `.env`-tiedosto - -Katsotaan nopeasti muuttujien nimet ja mitä ne tarkoittavat: - -| Muuttuja | Kuvaus | -| :--- | :--- | -| HUGGING_FACE_API_KEY | Tämä on käyttäjän käyttöoikeustoken, jonka määritit profiilissasi | -| OPENAI_API_KEY | Tämä on valtuutusavain palvelun käyttöön ei-Azure OpenAI -päätepisteissä | -| AZURE_OPENAI_API_KEY | Tämä on valtuutusavain kyseisen palvelun käyttöön | -| AZURE_OPENAI_ENDPOINT | Tämä on käyttöönotettu päätepiste Azure OpenAI -resurssille | -| AZURE_OPENAI_DEPLOYMENT | Tämä on _tekstin generointiin_ käytettävän mallin käyttöönoton päätepiste | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | Tämä on _tekstin upotuksiin_ käytettävän mallin käyttöönoton päätepiste | -| | | - -Huom: Viimeiset kaksi Azure OpenAI -muuttujaa viittaavat oletusmalliin chat-suoritusta (tekstin generointi) ja vektorihaun (upotukset) osalta. Niiden määrittämisohjeet löytyvät asiaankuuluvista tehtävistä. - -### 2.3. Määritä Azure: Portaalista - -Azure OpenAI -päätepisteen ja avaimen arvot löytyvät [Azure-portaalista](https://portal.azure.com?WT.mc_id=academic-105485-koreyst), joten aloitetaan sieltä. - -1. Mene [Azure-portaaliin](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -2. Klikkaa vasemman laidan valikosta **Keys and Endpoint** -3. Klikkaa **Show Keys** -näet seuraavat arvot: KEY 1, KEY 2 ja Endpoint -4. Käytä KEY 1 -arvoa muuttujalle AZURE_OPENAI_API_KEY -5. Käytä Endpoint-arvoa muuttujalle AZURE_OPENAI_ENDPOINT - -Seuraavaksi tarvitsemme käyttöönotettujen mallien päätepisteet. - -1. Klikkaa vasemman laidan valikosta **Model deployments** Azure OpenAI -resurssille -2. Kohdesivulla klikkaa **Manage Deployments** - -Tämä vie sinut Azure OpenAI Studio -sivustolle, josta löydämme muut arvot alla kuvatulla tavalla. - -### 2.4. Määritä Azure: Studiosta - -1. Siirry [Azure OpenAI Studioon](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **resurssiltasi** kuten yllä on kuvattu. -2. Klikkaa vasemman laidan välilehteä **Deployments** nähdäksesi tällä hetkellä käytössä olevat mallit. -3. Jos haluamaasi mallia ei ole käytössä, käytä **Create new deployment** -toimintoa ottaaksesi sen käyttöön. -4. Tarvitset _tekstin generointiin_ tarkoitetun mallin – suosittelemme: **gpt-35-turbo** -5. Tarvitset _tekstin upotuksiin_ tarkoitetun mallin – suosittelemme **text-embedding-ada-002** - -Päivitä nyt ympäristömuuttujat vastaamaan käytettyä _Deployment name_ -arvoa. Tämä on yleensä sama kuin mallin nimi, ellei sitä ole erikseen muutettu. Esimerkiksi: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**Muista tallentaa .env-tiedosto, kun olet valmis**. Voit nyt sulkea tiedoston ja palata ohjeisiin muistikirjan suorittamisesta. - -### 2.5. Määritä OpenAI: Profiilista - -OpenAI API-avaimesi löytyy [OpenAI-tililtäsi](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). Jos sinulla ei vielä ole avainta, voit rekisteröityä tilille ja luoda API-avaimen. Kun sinulla on avain, voit lisätä sen `OPENAI_API_KEY`-muuttujaan `.env`-tiedostossa. - -### 2.6. Määritä Hugging Face: Profiilista - -Hugging Face -tokenisi löytyy profiilistasi kohdasta [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). Älä julkaise tai jaa näitä julkisesti. Sen sijaan luo uusi token tätä projektia varten ja kopioi se `.env`-tiedostoon muuttujan `HUGGING_FACE_API_KEY` arvoksi. _Huom:_ Tämä ei teknisesti ole API-avain, mutta sitä käytetään tunnistautumiseen, joten pidämme nimeämiskäytännön johdonmukaisena. - -**Vastuuvapauslauseke**: -Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Vaikka pyrimme tarkkuuteen, huomioithan, että automaattikäännöksissä saattaa esiintyä virheitä tai epätarkkuuksia. Alkuperäistä asiakirjaa sen alkuperäiskielellä tulee pitää virallisena lähteenä. Tärkeissä asioissa suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa tämän käännöksen käytöstä aiheutuvista väärinymmärryksistä tai tulkinnoista. \ No newline at end of file diff --git a/translations/fi/04-prompt-engineering-fundamentals/README.md b/translations/fi/04-prompt-engineering-fundamentals/README.md index 0fa3ee344..8d9f87528 100644 --- a/translations/fi/04-prompt-engineering-fundamentals/README.md +++ b/translations/fi/04-prompt-engineering-fundamentals/README.md @@ -1,451 +1,15 @@ - -# Promptin suunnittelun perusteet - -[![Promptin suunnittelun perusteet](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.fi.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Johdanto -Tässä moduulissa käsitellään keskeisiä käsitteitä ja tekniikoita tehokkaiden promptien luomiseksi generatiivisissa tekoälymalleissa. Tapa, jolla kirjoitat promptin LLM:lle, on myös tärkeä. Huolellisesti laadittu prompti voi tuottaa parempilaatuisen vastauksen. Mutta mitä tarkalleen tarkoittavat termit _prompt_ ja _promptin suunnittelu_? Entä miten parannan promptin _syötettä_, jonka lähetän LLM:lle? Näihin kysymyksiin pyrimme vastaamaan tässä ja seuraavassa luvussa. - -_Generatiivinen tekoäly_ pystyy luomaan uutta sisältöä (esim. tekstiä, kuvia, ääntä, koodia jne.) käyttäjän pyyntöjen perusteella. Se toteuttaa tämän käyttämällä _suuria kielimalleja_ kuten OpenAI:n GPT ("Generative Pre-trained Transformer") -sarjaa, jotka on koulutettu käyttämään luonnollista kieltä ja koodia. - -Käyttäjät voivat nyt olla vuorovaikutuksessa näiden mallien kanssa tutuilla tavoilla, kuten chatin kautta, ilman teknistä osaamista tai koulutusta. Mallit ovat _prompt-pohjaisia_ – käyttäjät lähettävät tekstisyötteen (promptin) ja saavat takaisin tekoälyn vastauksen (completion). He voivat sitten "jutella tekoälyn kanssa" toistuvasti, monikierroksisissa keskusteluissa, hioen promptiaan, kunnes vastaus vastaa odotuksia. - -"Promptit" ovat nyt generatiivisten tekoälysovellusten ensisijainen _ohjelmointirajapinta_, joka kertoo malleille, mitä tehdä, ja vaikuttaa palautettujen vastausten laatuun. "Promptin suunnittelu" on nopeasti kasvava tutkimusala, joka keskittyy promptien _suunnitteluun ja optimointiin_ tuottaakseen johdonmukaisia ja laadukkaita vastauksia laajassa mittakaavassa. - -## Oppimistavoitteet - -Tässä oppitunnissa opimme, mitä promptin suunnittelu on, miksi se on tärkeää ja miten voimme laatia tehokkaampia promptteja tietylle mallille ja sovellustavoitteelle. Ymmärrämme keskeiset käsitteet ja parhaat käytännöt promptin suunnittelussa – ja tutustumme interaktiiviseen Jupyter Notebook -"hiekkalaatikko"-ympäristöön, jossa näitä käsitteitä sovelletaan käytännön esimerkkeihin. - -Oppitunnin lopussa osaat: - -1. Selittää, mitä promptin suunnittelu on ja miksi se on tärkeää. -2. Kuvailla promptin osat ja niiden käyttötavat. -3. Oppia parhaat käytännöt ja tekniikat promptin suunnitteluun. -4. Soveltaa opittuja tekniikoita käytännön esimerkkeihin OpenAI-päätepisteen avulla. - -## Keskeiset termit - -Promptin suunnittelu: Tekstin syötteiden suunnittelu ja hienosäätö, jolla ohjataan tekoälymalleja tuottamaan haluttuja tuloksia. -Tokenisointi: Prosessi, jossa teksti muunnetaan pienemmiksi yksiköiksi, tokeneiksi, joita malli voi ymmärtää ja käsitellä. -Ohjeistuksella hienosäädetyt LLM:t: Suuret kielimallit, joita on hienosäädetty erityisillä ohjeilla parantamaan vastausten tarkkuutta ja merkityksellisyyttä. - -## Oppimishiekkalaatikko - -Promptin suunnittelu on tällä hetkellä enemmän taidetta kuin tiedettä. Paras tapa kehittää intuitiota on _harjoitella enemmän_ ja omaksua kokeileva lähestymistapa, joka yhdistää sovellusalueen asiantuntemuksen suositeltuihin tekniikoihin ja mallikohtaisiin optimointeihin. - -Tämän oppitunnin mukana tuleva Jupyter Notebook tarjoaa _hiekkalaatikko_-ympäristön, jossa voit kokeilla oppimaasi – joko matkan varrella tai koodaushaasteen osana lopussa. Harjoitusten suorittamiseen tarvitset: - -1. **Azure OpenAI API -avaimen** – palvelun päätepisteen käyttöön otetulle LLM:lle. -2. **Python-ympäristön** – jossa Notebook voidaan suorittaa. -3. **Paikalliset ympäristömuuttujat** – _suorita [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) -vaiheet nyt valmiiksi_. - -Notebook sisältää _aloitus_ harjoituksia – mutta sinua kannustetaan lisäämään omia _Markdown_- (kuvaus) ja _Code_- (prompt-pyynnöt) osioita kokeillaksesi lisää esimerkkejä tai ideoita – ja kehittääksesi intuitiota promptin suunnitteluun. - -## Kuvitettu opas - -Haluatko saada kokonaiskuvan tästä oppitunnista ennen kuin sukellat syvemmälle? Tutustu tähän kuvitettuun oppaaseen, joka antaa yleiskuvan pääaiheista ja keskeisistä huomioista, joita voit pohtia kussakin osassa. Oppitunnin tiekartta vie sinut ydinkäsitteiden ja haasteiden ymmärtämisestä niiden ratkaisemiseen asiaankuuluvilla promptin suunnittelutekniikoilla ja parhailla käytännöillä. Huomaa, että tämän oppaan "Edistyneet tekniikat" -osio viittaa seuraavan luvun sisältöön tässä opetussuunnitelmassa. - -![Kuvitettu opas promptin suunnitteluun](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.fi.png) - -## Startup-yrityksemme - -Keskustellaanpa nyt siitä, miten _tämä aihe_ liittyy startup-yrityksemme missioon [tuoda tekoälyinnovaatioita koulutukseen](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). Haluamme rakentaa tekoälypohjaisia sovelluksia _personoituun oppimiseen_ – joten pohditaan, miten eri käyttäjät voisivat "suunnitella" promptteja sovelluksessamme: - -- **Ylläpitäjät** saattavat pyytää tekoälyä _analysoimaan opetussuunnitelman tietoja kattavuuden aukkojen löytämiseksi_. Tekoäly voi tiivistää tulokset tai visualisoida ne koodin avulla. -- **Opettajat** voivat pyytää tekoälyä _luomaan oppituntisuunnitelman kohdeyleisölle ja aiheelle_. Tekoäly voi rakentaa personoidun suunnitelman määritellyssä muodossa. -- **Oppilaat** voivat pyytää tekoälyä _ohjaamaan heitä vaikeassa aineessa_. Tekoäly voi nyt opastaa oppilaita oppitunneilla, vihjeillä ja esimerkeillä, jotka on räätälöity heidän tasolleen. - -Tämä on vasta jäävuoren huippu. Tutustu [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) -avoin lähdekoodin prompt-kirjastoon, jonka ovat koonneet koulutusalan asiantuntijat – saadaksesi laajemman kuvan mahdollisuuksista! _Kokeile ajaa joitakin näistä promptteista hiekkalaatikossa tai OpenAI Playgroundissa nähdäksesi, mitä tapahtuu!_ - - - -## Mitä on promptin suunnittelu? - -Aloitimme tämän oppitunnin määrittelemällä **promptin suunnittelun** prosessiksi, jossa _suunnitellaan ja optimoidaan_ tekstisyötteitä (prompteja) tuottamaan johdonmukaisia ja laadukkaita vastauksia (completions) tiettyyn sovellustavoitteeseen ja malliin. Voimme ajatella tätä kahden vaiheen prosessina: - -- _suunnitella_ alkuperäinen prompti tietylle mallille ja tavoitteelle -- _hioa_ promptia iteratiivisesti parantaaksemme vastauksen laatua - -Tämä on väistämättä kokeilu- ja erehdysprosessi, joka vaatii käyttäjän intuitiota ja vaivannäköä optimaalisten tulosten saavuttamiseksi. Miksi se sitten on tärkeää? Vastataksemme tähän kysymykseen meidän täytyy ensin ymmärtää kolme käsitettä: - -- _Tokenisointi_ = miten malli "näkee" promptin -- _Perus-LLM:t_ = miten perustamalli "käsittelee" promptin -- _Ohjeistuksella hienosäädetyt LLM:t_ = miten malli nyt voi nähdä "tehtäviä" - -### Tokenisointi - -LLM näkee promptit _tokenien sarjana_, ja eri mallit (tai malliversiot) voivat tokenisoida saman promptin eri tavoin. Koska LLM:t on koulutettu tokeneilla (eivät raakatekstillä), promptin tokenisoinnilla on suora vaikutus tuotetun vastauksen laatuun. - -Saadaksesi käsityksen tokenisoinnista, kokeile esimerkiksi [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) -työkalua alla. Kopioi promptisi siihen ja katso, miten se muunnetaan tokeneiksi, kiinnittäen huomiota välilyöntien ja välimerkkien käsittelyyn. Huomaa, että esimerkissä käytetään vanhempaa LLM:ää (GPT-3) – uudemmalla mallilla tulos voi olla erilainen. - -![Tokenisointi](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.fi.png) - -### Käsite: Perusmallit - -Kun prompti on tokenisoitu, ["Perus-LLM:n"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (tai foundation-mallin) päätehtävä on ennustaa seuraava token tässä sarjassa. Koska LLM:t on koulutettu valtavilla tekstiaineistoilla, niillä on hyvä käsitys tokenien tilastollisista suhteista ja ne voivat tehdä ennustuksen varmuudella. Huomaa, että ne eivät ymmärrä promptin tai tokenin _merkitystä_; ne näkevät vain mallin, jonka voivat "täydentää" seuraavalla ennustuksellaan. Ne voivat jatkaa ennustamista, kunnes käyttäjä keskeyttää tai jokin ennalta määritelty ehto täyttyy. - -Haluatko nähdä, miten prompt-pohjainen täydennys toimii? Syötä yllä oleva prompt Azure OpenAI Studion [_Chat Playgroundiin_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) oletusasetuksilla. Järjestelmä on konfiguroitu käsittelemään promptit tiedonpyyntöinä – joten näet vastauksen, joka täyttää tämän kontekstin. - -Mutta entä jos käyttäjä haluaa nähdä jotain tiettyä, joka täyttää jonkin kriteerin tai tehtävän tavoitteen? Tässä kohtaa _ohjeistuksella hienosäädetyt_ LLM:t astuvat kuvaan. - -![Perus-LLM:n chat-vastaus](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.fi.png) - -### Käsite: Ohjeistuksella hienosäädetyt LLM:t - -[Ohjeistuksella hienosäädetty LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) perustuu foundation-malliin, jota hienosäädetään esimerkkien tai syöte-/tulosparien (esim. monikierroksisten "viestien") avulla, jotka sisältävät selkeitä ohjeita – ja tekoälyn vastaus pyrkii noudattamaan näitä ohjeita. - -Tässä käytetään tekniikoita kuten ihmispalautteella vahvistettu oppiminen (RLHF), joka kouluttaa mallin _noudattamaan ohjeita_ ja _oppimaan palautteesta_, jotta se tuottaa vastauksia, jotka soveltuvat paremmin käytännön sovelluksiin ja ovat merkityksellisempiä käyttäjän tavoitteille. - -Kokeillaanpa – palaa yllä olevaan promptiin, mutta vaihda nyt _järjestelmäviesti_ antamaan seuraava ohje kontekstina: - -> _Tiivistä annettu sisältö toisen luokan oppilaalle. Pidä tulos yhdessä kappaleessa, jossa on 3–5 lueteltua kohtaa._ - -Näetkö, miten tulos on nyt viritetty vastaamaan haluttua tavoitetta ja muotoa? Opettaja voi käyttää tätä vastausta suoraan luentokalvoillaan. - -![Ohjeistuksella hienosäädetyn LLM:n chat-vastaus](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.fi.png) - -## Miksi tarvitsemme promptin suunnittelua? - -Nyt kun tiedämme, miten LLM:t käsittelevät promptit, keskustellaan siitä, _miksi_ promptin suunnittelu on tarpeen. Vastaus löytyy siitä, että nykyisillä LLM:illä on useita haasteita, jotka tekevät _luotettavien ja johdonmukaisten vastausten_ saavuttamisesta vaikeampaa ilman panostusta promptin rakentamiseen ja optimointiin. Esimerkiksi: - -1. **Mallien vastaukset ovat stokastisia.** _Sama prompt_ tuottaa todennäköisesti erilaisia vastauksia eri malleilla tai malliversioilla. Se voi myös tuottaa eri tuloksia _samalla mallilla_ eri aikoina. _Promptin suunnittelutekniikat auttavat minimoimaan näitä vaihteluita tarjoamalla parempia suojakeinoja_. - -1. **Mallien vastaukset voivat olla keksittyjä.** Mallit on esikoulutettu _laajoilla mutta rajallisilla_ aineistoilla, joten niiltä puuttuu tieto koulutusalueen ulkopuolisista käsitteistä. Tämän seurauksena ne voivat tuottaa vastauksia, jotka ovat epätarkkoja, kuvitteellisia tai suoraan ristiriidassa tunnettujen faktojen kanssa. _Promptin suunnittelutekniikat auttavat käyttäjiä tunnistamaan ja vähentämään tällaisia keksintöjä, esimerkiksi pyytämällä tekoälyltä lähdeviitteitä tai perusteluja_. - -1. **Mallien kyvyt vaihtelevat.** Uudemmat mallit tai mallisukupolvet tarjoavat laajempia kykyjä, mutta niihin liittyy myös ainutlaatuisia erikoispiirteitä sekä kustannus- ja monimutkaisuustasapainoja. _Promptin suunnittelu auttaa kehittämään parhaita käytäntöjä ja työnkulkuja, jotka abstrahoivat erot ja mukautuvat mallikohtaisiin vaatimuksiin skaalautuvasti ja saumattomasti_. - -Kokeile tätä käytännössä OpenAI:n tai Azure OpenAI:n Playgroundissa: - -- Käytä samaa promptia eri LLM-julkaisuissa (esim. OpenAI, Azure OpenAI, Hugging Face) – huomasitko eroja? -- Käytä samaa promptia toistuvasti _samassa_ LLM-julkaisussa (esim. Azure OpenAI playground) – miten nämä vaihtelut erosivat? - -### Keksintöjen esimerkki - -Tässä kurssissa käytämme termiä **"keksintö"** viittaamaan ilmiöön, jossa LLM:t joskus tuottavat tosiasiallisesti virheellistä tietoa rajoitustensa tai muiden tekijöiden vuoksi. Saatat olla kuullut tästä myös nimellä _"hallusinaatiot"_ suosituissa artikkeleissa tai tutkimuspapereissa. Suosittelemme kuitenkin käyttämään termiä _"keksintö"_, jotta emme vahingossa antropomorfisoisi käyttäytymistä antamalla koneen tuottamalle tulokselle ihmismäisiä piirteitä. Tämä tukee myös [Vastuullisen tekoälyn ohjeita](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) terminologian näkökulmasta, poistaen termejä, joita voidaan pitää loukkaavina tai ei-sisältävinä joissain yhteyksissä. - -Haluatko saada käsityksen siitä, miten keksinnöt toimivat? Ajattele promptia, joka ohjeistaa tekoälyä luomaan sisältöä olemattomasta aiheesta (varmistaakseen, ettei sitä löydy koulutusdatasta). Esimerkiksi – kokeilin tätä promptia: -# Martian sota 2076 – oppituntisuunnitelma - -## Tavoitteet -- Ymmärtää Martian sodan 2076 taustat ja syyt -- Tutkia sodan keskeiset tapahtumat ja osapuolet -- Analysoida sodan vaikutuksia Marsin asutukseen ja ihmiskunnan tulevaisuuteen - -## Oppitunnin rakenne - -### 1. Johdanto (15 min) -- Lyhyt katsaus Marsin asutuksen historiaan ennen vuotta 2076 -- Miksi Martian sota syttyi? (poliittiset, taloudelliset ja sosiaaliset syyt) -- Keskustelu: Mitä oppilaat tietävät Marsista ja mahdollisista konflikteista siellä? - -### 2. Martian sodan kulku (30 min) -- Keskeiset osapuolet ja heidän tavoitteensa -- Tärkeimmät taistelut ja strategiat -- Teknologian rooli sodassa (esim. @@INLINE_CODE_1@@, @@INLINE_CODE_2@@) -- Videoesitys tai kartta sodan etenemisestä - -### 3. Sodan seuraukset (20 min) -- Vaikutukset Marsin asutukseen ja infrastruktuuriin -- Ihmiskunnan reaktiot Maassa ja Marsissa -- Pitkän aikavälin vaikutukset politiikkaan ja avaruustutkimukseen - -### 4. Yhteenveto ja keskustelu (15 min) -- Oppilaiden mielipiteet sodan syistä ja seurauksista -- Mitä voimme oppia Martian sodasta tulevaisuuden konflikteja varten? -- Kysymyksiä ja vastauksia - -## Kotitehtävä -Kirjoita lyhyt essee aiheesta: "Miten Martian sota 2076 muutti ihmiskunnan käsitystä avaruudesta ja sodankäynnistä?" - -## Lisämateriaalit -- Linkkejä artikkeleihin ja dokumentteihin Martian sodasta -- Interaktiivinen aikajana @@INLINE_CODE_3@@ -- Podcast-jakso sodan keskeisistä tapahtumista -Verkkohaku osoitti, että Marsin sodista on olemassa fiktiivisiä kertomuksia (esim. televisiosarjat tai kirjat) – mutta ei yhtään vuodelle 2076. Terve järki myös kertoo, että vuosi 2076 on _tulevaisuudessa_ eikä sitä siksi voi yhdistää todelliseen tapahtumaan. - -Mitä siis tapahtuu, kun ajamme tämän kehotteen eri LLM-palveluntarjoajilla? - -> **Vastaus 1**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.fi.png) - -> **Vastaus 2**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.fi.png) - -> **Vastaus 3**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.fi.png) - -Kuten odottaa saattaa, kukin malli (tai malliversio) tuottaa hieman erilaisia vastauksia satunnaisuuden ja mallin kyvykkyyksien vaihtelun vuoksi. Esimerkiksi yksi malli kohdistaa vastauksensa 8. luokan oppilaille, kun taas toinen olettaa lukioikäisen käyttäjän. Kaikki kolme mallia kuitenkin tuottivat vastauksia, jotka voisivat saada tietämättömän käyttäjän uskomaan, että tapahtuma oli todellinen. - -Kehoteinsinöörin tekniikat, kuten _metakehotteet_ ja _lämpötilan säätö_, voivat jonkin verran vähentää mallin keksintöjä. Uudet kehotteiden suunnittelun _arkkitehtuurit_ myös sulauttavat uusia työkaluja ja tekniikoita saumattomasti kehotteiden kulkuun, lieventäen tai vähentäen näitä ilmiöitä. - -## Tapaustutkimus: GitHub Copilot - -Päätetään tämä osio katsomalla, miten kehotteiden suunnittelua käytetään todellisissa ratkaisuissa, tarkastelemalla yhtä tapaustutkimusta: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot on "tekoälypariohjelmoijasi" – se muuntaa tekstikehotteet koodin täydennyksiksi ja on integroitu kehitysympäristöösi (esim. Visual Studio Code) sujuvan käyttökokemuksen takaamiseksi. Alla olevissa blogisarjoissa on dokumentoitu, että varhaisin versio perustui OpenAI Codex -malliin – ja insinöörit huomasivat nopeasti mallin hienosäädön ja parempien kehotteiden suunnittelutekniikoiden tarpeen koodin laadun parantamiseksi. Heinäkuussa he [esittelivät parannetun tekoälymallin, joka menee Codexin ohi](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) tarjoten entistä nopeampia ehdotuksia. - -Lue postaukset järjestyksessä, jotta voit seurata heidän oppimisprosessiaan. - -- **Toukokuu 2023** | [GitHub Copilot paranee koodisi ymmärtämisessä](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **Toukokuu 2023** | [Sisältä GitHub: Työskentely LLM-mallien kanssa GitHub Copilotin takana](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Kesäkuu 2023** | [Kuinka kirjoittaa parempia kehotteita GitHub Copilotille](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Heinäkuu 2023** | [.. GitHub Copilot menee Codexin ohi parannetulla tekoälymallilla](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Heinäkuu 2023** | [Kehittäjän opas kehotteiden suunnitteluun ja LLM-malleihin](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **Syyskuu 2023** | [Kuinka rakentaa yritystason LLM-sovellus: Oppeja GitHub Copilotista](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -Voit myös selata heidän [Teknologia-blogiaan](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) löytääksesi lisää postauksia, kuten [tämän](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst), joka näyttää, miten näitä malleja ja tekniikoita _käytetään_ todellisten sovellusten kehittämiseen. - ---- - - - -## Kehotteen Rakentaminen - -Olemme nähneet, miksi kehotteiden suunnittelu on tärkeää – nyt ymmärretään, miten kehotteet _rakennetaan_, jotta voimme arvioida erilaisia tekniikoita tehokkaamman kehotteiden suunnittelun saavuttamiseksi. - -### Peruskehotteet - -Aloitetaan peruskehotteesta: tekstisyöte, joka lähetetään mallille ilman muuta kontekstia. Tässä esimerkki – kun lähetämme Yhdysvaltojen kansallislaulun ensimmäiset sanat OpenAI:n [Completion API:lle](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst), se täydentää vastauksen välittömästi seuraavilla riveillä, havainnollistaen perusennustekäyttäytymistä. - -| Kehote (Syöte) | Täydennys (Vastaus) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | Kuulostaa siltä, että aloitat "The Star-Spangled Banner" -kappaleen sanoituksia, joka on Yhdysvaltojen kansallislaulu. Koko teksti on ... | - -### Monimutkainen Kehote - -Lisätään nyt peruskehotteeseen konteksti ja ohjeet. [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) antaa rakentaa monimutkaisen kehotteen kokoelmana _viestejä_, jotka sisältävät: - -- Syöte/vastaus-parit, jotka heijastavat _käyttäjän_ syötettä ja _avustajan_ vastausta. -- Järjestelmäviestin, joka asettaa kontekstin avustajan käyttäytymiselle tai persoonallisuudelle. - -Pyyntö on nyt alla olevan muotoinen, jossa _tokenisointi_ kaappaa tehokkaasti olennaisen tiedon kontekstista ja keskustelusta. Järjestelmäkontekstin muuttaminen voi vaikuttaa täydennysten laatuun yhtä paljon kuin käyttäjän antamat syötteet. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Ohjeistava Kehote - -Yllä olevissa esimerkeissä käyttäjän kehotteena oli yksinkertainen tekstikysely, joka voidaan tulkita tiedonpyynnöksi. _Ohjeistavissa_ kehotteissa voimme käyttää tekstiä tehtävän tarkempaan määrittelyyn, tarjoten tekoälylle parempaa ohjausta. Tässä esimerkki: - -| Kehote (Syöte) | Täydennys (Vastaus) | Ohjetyyppi | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Kirjoita kuvaus sisällissodasta | _palautti yksinkertaisen kappaleen_ | Yksinkertainen | -| Kirjoita kuvaus sisällissodasta. Anna tärkeät päivämäärät ja tapahtumat sekä kuvaa niiden merkitys | _palautti kappaleen, jota seurasi luettelo tärkeistä päivämääristä ja tapahtumista kuvauksineen_ | Monimutkainen | -| Kirjoita kuvaus sisällissodasta yhdellä kappaleella. Anna 3 luetelmakohtaa tärkeistä päivämääristä ja niiden merkityksestä. Anna 3 luetelmakohtaa tärkeistä historiallisista henkilöistä ja heidän panoksistaan. Palauta tulos JSON-tiedostona | _palauttaa laajemmat tiedot tekstikentässä, muotoiltuna JSON-muotoon, jonka voi kopioida tiedostoon ja tarvittaessa validoida_ | Monimutkainen. Muotoiltu. | - -## Pääsisältö - -Yllä olevissa esimerkeissä kehotteet olivat vielä melko avoimia, antaen LLM:n päättää, mikä osa sen esikoulutetusta aineistosta on relevanttia. _Pääsisältö_-suunnittelumallissa syöteteksti jaetaan kahteen osaan: - -- ohje (toiminto) -- relevantti sisältö (joka vaikuttaa toimintaan) - -Tässä esimerkissä ohjeena on "tiivistä tämä kahteen lauseeseen". - -| Kehote (Syöte) | Täydennys (Vastaus) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter on aurinkoa lähinnä viides planeetta ja aurinkokunnan suurin. Se on kaasujättiläinen, jonka massa on tuhannesosa Auringon massasta, mutta kaksikertaisesti ja puoli kaikkien muiden aurinkokunnan planeettojen massojen yhteensä. Jupiter on yksi kirkkaimmista paljain silmin nähtävistä kohteista yötaivaalla, ja se on ollut tunnettu muinaisista sivilisaatioista ennen kirjattua historiaa. Se on nimetty roomalaisen jumalan Jupiterin mukaan.[19] Maasta katsottuna Jupiter voi olla tarpeeksi kirkas heijastaakseen valoa, joka luo näkyviä varjoja,[20] ja se on keskimäärin kolmanneksi kirkkaimpia luonnollisia kohteita yötaivaalla Kuun ja Venuksen jälkeen.
**Tiivistä tämä kahteen lyhyeen lauseeseen** | Jupiter, aurinkoa lähinnä viides planeetta, on aurinkokunnan suurin ja yksi kirkkaimmista yötaivaan kohteista. Se on nimetty roomalaisen jumalan Jupiterin mukaan, ja sen massa on kaksikertaisesti ja puoli kaikkien muiden planeettojen yhteismassa. | - -Pääsisältöosaa voidaan käyttää monin tavoin tehokkaampien ohjeiden antamiseen: - -- **Esimerkit** – sen sijaan, että kerrot mallille suoraan, mitä tehdä, anna esimerkkejä ja anna mallin päätellä kaava. -- **Vihjeet** – seuraa ohjetta "vihjeellä", joka ohjaa täydennystä ja ohjaa mallia kohti relevantimpia vastauksia. -- **Mallit** – toistettavia 'reseptejä' kehotteille, joissa on paikkamerkkejä (muuttujia), joita voi räätälöidä datalla tiettyihin käyttötarkoituksiin. - -Tutkitaan näitä käytännössä. - -### Esimerkkien Käyttö - -Tässä lähestymistavassa käytetään pääsisältöä "ruokkimaan mallia" esimerkeillä halutusta tuloksesta tietylle ohjeelle, ja annetaan mallin päätellä kaava halutulle tulokselle. Esimerkkien määrän perusteella voidaan käyttää zero-shot-, one-shot-, few-shot-kehotteita jne. - -Kehote koostuu nyt kolmesta osasta: - -- Tehtävän kuvaus -- Muutama esimerkki halutusta tuloksesta -- Uuden esimerkin alku (joka toimii implisiittisenä tehtävän kuvauksena) - -| Oppimistyppi | Kehote (Syöte) | Täydennys (Vastaus) | -| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| Zero-shot | "The Sun is Shining". Käännä espanjaksi | "El Sol está brillando". | -| One-shot | "The Sun is Shining" => "El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| Few-shot | Pelaaja juoksi pesille => Baseball
Pelaaja teki ässän => Tennis
Pelaaja teki kuuden => Cricket
Pelaaja teki donkin => | Koripallo | -| | | | - -Huomaa, että zero-shot-kehotteessa piti antaa selkeä ohje ("Käännä espanjaksi"), mutta one-shot-esimerkissä se pääteltiin automaattisesti. Few-shot-esimerkki osoittaa, miten useampien esimerkkien lisääminen antaa malleille tarkemman päätelmän ilman lisäohjeita. - -### Kehotevihjeet - -Toinen tapa käyttää pääsisältöä on antaa _vihjeitä_ esimerkkien sijaan. Tässä tapauksessa annamme mallille pienen sysäyksen oikeaan suuntaan _aloittamalla_ katkelmalla, joka heijastaa haluttua vastausmuotoa. Malli sitten "ottaa vihjeen" ja jatkaa samaan tyyliin. - -| Vihjeiden määrä | Kehote (Syöte) | Täydennys (Vastaus) | -| :-------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Jupiter on aurinkoa lähinnä viides planeetta ja aurinkokunnan suurin. Se on kaasujättiläinen, jonka massa on tuhannesosa Auringon massasta, mutta kaksikertaisesti ja puoli kaikkien muiden aurinkokunnan planeettojen massojen yhteensä. Jupiter on yksi kirkkaimmista paljain silmin nähtävistä kohteista yötaivaalla, ja se on ollut tunnettu muinaisista sivilisaatioista ennen kirjattua historiaa. - -**Summarize This** | Jupiter on aurinkokuntamme suurin planeetta ja viides etäisyydeltään Auringosta. Se on kaasujättiläinen, jonka massa on 1/1000 Auringon massasta, mutta se painaa enemmän kuin kaikki muut planeetat yhteensä. Muinaiset sivilisaatiot ovat tunteneet Jupiterin jo pitkään, ja se näkyy helposti paljain silmin yötaivaalla. | -| 1 | Jupiter on viides planeetta Auringosta ja suurin aurinkokunnassa. Se on kaasujättiläinen, jonka massa on tuhannesosa Auringon massasta, mutta kaksi ja puoli kertaa kaikkien muiden aurinkokunnan planeettojen yhteismassaa suurempi. Jupiter on yksi kirkkaimmista paljain silmin nähtävistä kohteista yötaivaalla, ja muinaiset sivilisaatiot ovat tunteneet sen jo ennen kirjoitettua historiaa.
**Summarize This**
Mitä opimme on, että Jupiter | on viides planeetta Auringosta ja suurin aurinkokunnassa. Se on kaasujättiläinen, jonka massa on tuhannesosa Auringon massasta, mutta kaksi ja puoli kertaa kaikkien muiden planeettojen yhteismassaa suurempi. Se näkyy helposti paljain silmin ja on tunnettu jo muinaisajoista lähtien. | -| 2 | Jupiter on viides planeetta Auringosta ja suurin aurinkokunnassa. Se on kaasujättiläinen, jonka massa on tuhannesosa Auringon massasta, mutta kaksi ja puoli kertaa kaikkien muiden aurinkokunnan planeettojen yhteismassaa suurempi. Jupiter on yksi kirkkaimmista paljain silmin nähtävistä kohteista yötaivaalla, ja muinaiset sivilisaatiot ovat tunteneet sen jo ennen kirjoitettua historiaa.
**Summarize This**
Kolme tärkeintä faktaa, jotka opimme: | 1. Jupiter on viides planeetta Auringosta ja suurin aurinkokunnassa.
2. Se on kaasujättiläinen, jonka massa on tuhannesosa Auringon massasta...
3. Jupiter on ollut paljain silmin nähtävissä muinaisajoista lähtien ... | -| | | | - -### Prompt Templates - -Prompt-malli on _ennalta määritelty ohjeistus_, jota voidaan tallentaa ja käyttää uudelleen tarpeen mukaan, jotta käyttäjäkokemukset olisivat johdonmukaisempia laajassa mittakaavassa. Yksinkertaisimmillaan se on kokoelma promptiesimerkkejä, kuten [tämä OpenAI:n esimerkki](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst), joka sisältää sekä vuorovaikutteiset prompt-komponentit (käyttäjän ja järjestelmän viestit) että API-pohjaisen pyyntömuodon – tukemaan uudelleenkäyttöä. - -Monimutkaisemmassa muodossa, kuten [tämä LangChainin esimerkki](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst), se sisältää _paikkamerkkejä_, jotka voidaan korvata tiedoilla eri lähteistä (käyttäjän syöte, järjestelmän konteksti, ulkoiset tietolähteet jne.) luodakseen promptin dynaamisesti. Tämä mahdollistaa uudelleenkäytettävien prompt-kirjastojen luomisen, joita voidaan käyttää johdonmukaisten käyttäjäkokemusten luomiseen **ohjelmallisesti** laajassa mittakaavassa. - -Lopuksi mallien todellinen arvo on kyvyssä luoda ja julkaista _prompt-kirjastoja_ vertikaalisille sovellusalueille – joissa prompt-malli on nyt _optimoitu_ heijastamaan sovelluskohtaisia konteksteja tai esimerkkejä, jotka tekevät vastauksista osuvampia ja tarkempia kohdeyleisölle. [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) -arkisto on erinomainen esimerkki tästä lähestymistavasta, joka kokoaa koulutusalalle suunnattuja promptteja painottaen keskeisiä tavoitteita kuten opetussuunnitelman suunnittelua, kurssisuunnittelua ja opiskelijoiden ohjausta. - -## Supporting Content - -Jos ajattelemme promptin rakentamista ohjeena (tehtävä) ja kohteena (ensisijainen sisältö), niin _toissijainen sisältö_ on kuin lisäkonteksti, jota annamme **vaikuttaaksemme tulokseen jollain tavalla**. Se voi olla säätöparametreja, muotoiluohjeita, aiheiden taksonomioita jne., jotka auttavat mallia _räätälöimään_ vastauksensa vastaamaan haluttuja käyttäjätavoitteita tai odotuksia. - -Esimerkiksi: Kun meillä on kurssiluettelo, jossa on laaja metadata (nimi, kuvaus, taso, metatunnisteet, opettaja jne.) kaikista opetussuunnitelman kursseista: - -- voimme määritellä ohjeen "tiivistä syksyn 2023 kurssiluettelo" -- voimme käyttää ensisijaista sisältöä antaaksemme muutaman esimerkin halutusta lopputuloksesta -- voimme käyttää toissijaista sisältöä tunnistaaksemme viisi kiinnostavinta "tunnistetta". - -Nyt malli voi antaa yhteenvedon esimerkkien mukaisessa muodossa – mutta jos tuloksessa on useita tunnisteita, se voi priorisoida toissijaisessa sisällössä määritellyt viisi tunnistetta. - ---- - - - -## Promptin parhaat käytännöt - -Nyt kun tiedämme, miten promptteja voi _rakentaa_, voimme alkaa pohtia, miten niitä _suunnitellaan_ parhaiden käytäntöjen mukaisesti. Voimme ajatella tätä kahdessa osassa – oikean _ajattelutavan_ omaksuminen ja oikeiden _tekniikoiden_ käyttäminen. - -### Prompt Engineering -ajattelutapa - -Prompt Engineering on kokeiluun ja virheisiin perustuva prosessi, joten pidä mielessä kolme laajaa ohjenuoraa: - -1. **Toimialan ymmärrys on tärkeää.** Vastauksen tarkkuus ja osuvuus riippuvat _toimialasta_, jolla sovellus tai käyttäjä toimii. Käytä intuitiotasi ja toimialan asiantuntemustasi _muokataksesi tekniikoita_ tarkemmin. Määrittele esimerkiksi _toimialakohtaiset persoonat_ järjestelmän promptteihin tai käytä _toimialakohtaisia malleja_ käyttäjän promptteihin. Tarjoa toissijaista sisältöä, joka heijastaa toimialakohtaisia konteksteja, tai käytä _toimialakohtaisia vihjeitä ja esimerkkejä_ ohjaamaan mallia tuttuun käyttötapaan. - -2. **Mallin ymmärrys on tärkeää.** Tiedämme, että mallit ovat luonteeltaan stokastisia. Mutta mallien toteutukset voivat myös vaihdella käytetyn koulutusdatan (esikoulutettu tieto), tarjoamien ominaisuuksien (esim. API tai SDK) ja optimoidun sisältötyypin (esim. koodi vs. kuvat vs. teksti) suhteen. Ymmärrä käyttämäsi mallin vahvuudet ja rajoitukset, ja käytä tätä tietoa _priorisoidaksesi tehtäviä_ tai rakentaaksesi _räätälöityjä malleja_, jotka on optimoitu mallin kyvykkyyksille. - -3. **Iterointi ja validointi ovat tärkeitä.** Mallit kehittyvät nopeasti, samoin prompt engineering -tekniikat. Toimialan asiantuntijana sinulla voi olla muuta kontekstia tai kriteerejä _oman_ sovelluksesi osalta, jotka eivät välttämättä päde laajempaan yhteisöön. Käytä prompt engineering -työkaluja ja -tekniikoita "aloittaaksesi" promptin rakentamisen, sitten iteroi ja validoi tulokset oman intuitiosi ja asiantuntemuksesi avulla. Tallenna oivalluksesi ja luo **tietopankki** (esim. prompt-kirjastoja), jota muut voivat käyttää uutena lähtökohtana nopeampiin iterointeihin tulevaisuudessa. - -## Parhaat käytännöt - -Katsotaanpa nyt yleisiä parhaita käytäntöjä, joita suosittelevat [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) ja [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst) -asiantuntijat. - -| Mitä | Miksi | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Arvioi uusimmat mallit. | Uudet mallisukupolvet sisältävät todennäköisesti parannettuja ominaisuuksia ja laatua – mutta voivat myös aiheuttaa korkeampia kustannuksia. Arvioi niiden vaikutus ja tee siirtymispäätökset sen perusteella. | -| Erottele ohjeet ja konteksti | Tarkista, määrittääkö mallisi/palveluntarjoajasi _erottimet_, joilla ohjeet, ensisijainen ja toissijainen sisältö erotetaan selkeämmin. Tämä auttaa malleja painottamaan tokeneita tarkemmin. | -| Ole tarkka ja selkeä | Anna enemmän yksityiskohtia halutusta kontekstista, lopputuloksesta, pituudesta, muodosta, tyylistä jne. Tämä parantaa sekä vastauksen laatua että johdonmukaisuutta. Tallenna ohjeet uudelleenkäytettäviin malleihin. | -| Ole kuvaileva, käytä esimerkkejä | Mallit voivat vastata paremmin "näytä ja kerro" -lähestymistapaan. Aloita `zero-shot`-menetelmällä, jossa annat ohjeen (mutta et esimerkkejä), ja kokeile sitten `few-shot`-menetelmää, jossa annat muutaman esimerkin halutusta lopputuloksesta. Käytä vertauksia. | -| Käytä vihjeitä aloittamaan vastaukset | Ohjaa mallia haluttuun lopputulokseen antamalla sille aloitussanoja tai -lauseita, joita se voi käyttää vastauksen lähtökohtana. | -| Toista tarvittaessa | Joskus mallille täytyy toistaa ohjeita. Anna ohjeet ennen ja jälkeen ensisijaisen sisällön, käytä ohjetta ja vihjettä jne. Iteroi ja validoi, mikä toimii parhaiten. | -| Järjestyksellä on merkitystä | Tiedon esitysjärjestys mallille voi vaikuttaa lopputulokseen, myös oppimisesimerkeissä, johtuen tuoreusvinoumasta. Kokeile eri vaihtoehtoja nähdäksesi, mikä toimii parhaiten. | -| Anna mallille "uloskäynti" | Anna mallille _varavastaus_, jonka se voi antaa, jos se ei jostain syystä pysty suorittamaan tehtävää. Tämä voi vähentää virheellisten tai keksittyjen vastausten riskiä. | -| | | - -Kuten minkä tahansa parhaan käytännön kohdalla, muista että _kokemuksesi voi vaihdella_ mallin, tehtävän ja toimialan mukaan. Käytä näitä lähtökohtana ja iteroi löytääksesi sinulle parhaiten toimivat tavat. Arvioi prompt engineering -prosessiasi jatkuvasti uudelleen uusien mallien ja työkalujen tullessa saataville, keskittyen prosessin skaalautuvuuteen ja vastausten laatuun. - - - -## Tehtävä - -Onnittelut! Pääsit oppitunnin loppuun asti! Nyt on aika testata joitakin opittuja käsitteitä ja tekniikoita käytännössä! - -Tehtävässämme käytämme Jupyter Notebookia, jossa on harjoituksia, joita voit tehdä vuorovaikutteisesti. Voit myös laajentaa Notebookia omilla Markdown- ja koodisoluillasi tutkiaksesi ideoita ja tekniikoita itsenäisesti. - -### Aloittaaksesi, tee fork reposta, sitten - -- (Suositeltu) Käynnistä GitHub Codespaces -- (Vaihtoehtoisesti) Kloonaa repo paikalliselle laitteellesi ja käytä sitä Docker Desktopin kanssa -- (Vaihtoehtoisesti) Avaa Notebook haluamallasi Notebook-ympäristöllä. - -### Seuraavaksi määritä ympäristömuuttujat - -- Kopioi repohakemiston juuresta `.env.copy` tiedosto nimellä `.env` ja täytä `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` ja `AZURE_OPENAI_DEPLOYMENT` arvot. Palaa [Learning Sandbox -osioon](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) oppiaksesi miten. - -### Avaa sitten Jupyter Notebook - -- Valitse ajoympäristön ydin. Jos käytät vaihtoehtoja 1 tai 2, valitse kehityssäiliön tarjoama oletus Python 3.10.x -ydin. - -Olet valmis suorittamaan harjoitukset. Huomaa, että tässä ei ole _oikeita tai vääriä_ vastauksia – kyse on vaihtoehtojen kokeilemisesta ja intuitiosi kehittämisestä sen suhteen, mikä toimii tietylle mallille ja sovellusalueelle. - -_Tämän vuoksi tässä oppitunnissa ei ole koodiratkaisujen osioita. Sen sijaan Notebookissa on Markdown-soluja nimeltä "My Solution:", jotka näyttävät yhden esimerkkivastauksen vertailun vuoksi._ - - - -## Tietovisa - -Mikä seuraavista on hyvä prompt, joka noudattaa kohtuullisia parhaita käytäntöjä? - -1. Näytä minulle kuva punaisesta autosta -2. Näytä minulle kuva punaisesta Volvon XC90 -merkkisestä autosta, joka on pysäköity kallion reunalle auringonlaskun aikaan -3. Näytä minulle kuva punaisesta Volvon XC90 -merkkisestä autosta - -Vastaus: 2, se on paras prompt, koska se antaa yksityiskohtia "mitä" ja menee tarkkuuksiin (ei mikä tahansa auto, vaan tietty merkki ja malli) ja kuvaa myös kokonaisympäristön. 3 on seuraavaksi paras, koska se sisältää myös paljon kuvausta. - -## 🚀 Haaste - -Kokeile hyödyntää "vihje" -tekniikkaa promptilla: Täydennä lause "Näytä minulle kuva punaisesta Volvon merkistä ja ". Miten malli vastaa, ja miten parantaisit sitä? - -## Hienoa työtä! Jatka oppimista - -Haluatko oppia lisää erilaisista Prompt Engineering -käsitteistä? Mene [jatko-oppimissivulle](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) löytääksesi muita erinomaisia resursseja tästä aiheesta. - -Siirry oppitunnille 5, jossa tarkastelemme [edistyneitä prompt-tekniikoita](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**Vastuuvapauslauseke**: -Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Vaikka pyrimme tarkkuuteen, huomioithan, että automaattikäännöksissä saattaa esiintyä virheitä tai epätarkkuuksia. Alkuperäistä asiakirjaa sen alkuperäiskielellä tulee pitää virallisena lähteenä. Tärkeissä asioissa suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa tämän käännöksen käytöstä aiheutuvista väärinymmärryksistä tai tulkinnoista. \ No newline at end of file + + + + + + + diff --git a/translations/fi/09-building-image-applications/README.md b/translations/fi/09-building-image-applications/README.md index 1d4cf4f95..e37c68db1 100644 --- a/translations/fi/09-building-image-applications/README.md +++ b/translations/fi/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# Kuvageneraattorisovellusten rakentaminen - -[![Kuvageneraattorisovellusten rakentaminen](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.fi.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLM-mallit eivät rajoitu pelkkään tekstin generointiin. Niillä on myös mahdollista luoda kuvia tekstikuvauksista. Kuvien käyttäminen modaliteettina voi olla erittäin hyödyllistä monilla aloilla, kuten MedTechissä, arkkitehtuurissa, matkailussa, pelikehityksessä ja monessa muussa. Tässä luvussa tutustumme kahteen suosituimpaan kuvageneraattorimalliin, DALL-E:hen ja Midjourneyhin. - -## Johdanto - -Tässä oppitunnissa käsittelemme: - -- Kuvagenerointia ja sen hyötyjä. -- DALL-E:tä ja Midjourneyta, mitä ne ovat ja miten ne toimivat. -- Kuinka rakentaa kuvageneraattorisovellus. - -## Oppimistavoitteet - -Oppitunnin jälkeen osaat: - -- Rakentaa kuvageneraattorisovelluksen. -- Määritellä sovelluksesi rajat metaprompteilla. -- Työskennellä DALL-E:n ja Midjourneyn kanssa. - -## Miksi rakentaa kuvageneraattorisovellus? - -Kuvageneraattorisovellukset ovat erinomainen tapa tutkia Generatiivisen tekoälyn mahdollisuuksia. Niitä voi käyttää esimerkiksi: - -- **Kuvien muokkaamiseen ja synteesiin**. Voit luoda kuvia monenlaisiin käyttötarkoituksiin, kuten kuvien muokkaukseen ja synteesiin. - -- **Soveltamiseen eri toimialoilla**. Niitä voidaan käyttää myös kuvien luomiseen eri aloille, kuten Medtechiin, matkailuun, pelikehitykseen ja muihin. - -## Tilannekuva: Edu4All - -Tämän oppitunnin osana jatkamme startup-yrityksemme Edu4Allin kanssa työskentelyä. Oppilaat luovat kuvia arviointeihinsa; millaisia kuvia, sen oppilaat päättävät itse. Kuvina voi olla esimerkiksi omien satujen kuvituksia, uusia hahmoja tarinoihin tai apua ideoiden ja konseptien visualisointiin. - -Tässä esimerkki siitä, mitä Edu4Allin oppilaat voisivat luoda, jos he työstävät luokassa monumentteja: - -![Edu4All startup, class on monuments, Eiffel Tower](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.fi.png) - -käyttäen kehotetta - -> "Koira Eiffel-tornin vieressä aamun varhaisessa auringonvalossa" - -## Mitä ovat DALL-E ja Midjourney? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) ja [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) ovat kaksi suosituimmista kuvageneraattorimalleista, joiden avulla voit käyttää kehotteita kuvien luomiseen. - -### DALL-E - -Aloitetaan DALL-E:stä, joka on Generatiivinen tekoälymalli, joka luo kuvia tekstikuvauksista. - -> [DALL-E on kahden mallin, CLIPin ja diffused attentionin, yhdistelmä](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP** on malli, joka luo upotuksia eli numeerisia esityksiä datasta kuvista ja tekstistä. - -- **Diffused attention** on malli, joka luo kuvia upotuksista. DALL-E on koulutettu kuvien ja tekstin datasetillä, ja sitä voi käyttää kuvien luomiseen tekstikuvauksista. Esimerkiksi DALL-E voi luoda kuvia kissasta hatussa tai koirasta, jolla on mohikaani. - -### Midjourney - -Midjourney toimii samankaltaisesti kuin DALL-E, se luo kuvia tekstikehotteiden perusteella. Midjourneyllä voi myös luoda kuvia kehotteilla kuten ”kissa hatussa” tai ”koira mohikaanilla”. - -![Midjourneyn luoma kuva, mekaaninen pulu](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Kuvan lähde Wikipedia, kuva luotu Midjourneyllä_ - -## Miten DALL-E ja Midjourney toimivat - -Aloitetaan [DALL-E:stä](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). DALL-E on Generatiivinen tekoälymalli, joka perustuu transformer-arkkitehtuuriin ja käyttää _autoregressiivista transformeria_. - -Autoregressiivinen transformer määrittelee, miten malli luo kuvia tekstikuvauksista: se generoi kuvan pikseli kerrallaan ja käyttää jo luotuja pikseleitä seuraavan pikselin luomiseen. Prosessi kulkee useiden neuroverkon kerrosten läpi, kunnes kuva on valmis. - -Tämän prosessin avulla DALL-E hallitsee kuvan ominaisuuksia, kohteita ja piirteitä. DALL-E 2 ja 3 tarjoavat vielä tarkemman hallinnan luotuihin kuviin. - -## Ensimmäisen kuvageneraattorisovelluksen rakentaminen - -Mitä tarvitaan kuvageneraattorisovelluksen rakentamiseen? Tarvitset seuraavat kirjastot: - -- **python-dotenv**, tätä kirjastoa suositellaan vahvasti, jotta salaisuudet voi pitää _.env_-tiedostossa erillään koodista. -- **openai**, tätä kirjastoa käytetään OpenAI API:n kanssa kommunikointiin. -- **pillow**, kuvien käsittelyyn Pythonissa. -- **requests**, HTTP-pyyntöjen tekemiseen. - -1. Luo tiedosto _.env_, jonka sisältö on seuraava: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Löydät nämä tiedot Azure-portaalista resurssisi "Keys and Endpoint" -osiosta. - -1. Kerää yllä mainitut kirjastot tiedostoon _requirements.txt_ näin: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. Luo virtuaaliympäristö ja asenna kirjastot: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Windowsilla käytä seuraavia komentoja virtuaaliympäristön luomiseen ja aktivointiin: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. Lisää seuraava koodi tiedostoon _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Selitetään tämä koodi: - -- Ensin tuodaan tarvittavat kirjastot, mukaan lukien OpenAI-kirjasto, dotenv, requests ja Pillow. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Seuraavaksi ladataan ympäristömuuttujat _.env_-tiedostosta. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- Tämän jälkeen asetetaan OpenAI API:n endpoint, avain, versio ja tyyppi. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- Seuraavaksi generoidaan kuva: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - Yllä oleva koodi vastaa JSON-objektilla, joka sisältää luodun kuvan URL-osoitteen. Voimme käyttää URL:ia kuvan lataamiseen ja tallentamiseen tiedostoon. - -- Lopuksi avataan kuva ja näytetään se tavallisella kuvan katseluohjelmalla: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Tarkempi katsaus kuvan generointiin - -Katsotaan tarkemmin koodia, joka generoi kuvan: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** on tekstikehote, jota käytetään kuvan luomiseen. Tässä tapauksessa käytämme kehotetta "Jänis hevosella, pitää tikkaria, sumuisella niityllä, jossa kasvaa narsisseja". -- **size** on generoidun kuvan koko. Tässä luodaan kuva, jonka koko on 1024x1024 pikseliä. -- **n** on generoitavien kuvien määrä. Tässä luodaan kaksi kuvaa. -- **temperature** on parametri, joka säätelee Generatiivisen tekoälyn mallin satunnaisuutta. Arvo on välillä 0–1, jossa 0 tarkoittaa determinististä eli ennustettavaa tulosta ja 1 satunnaista tulosta. Oletusarvo on 0.7. - -Seuraavassa osiossa käymme läpi lisää kuviin liittyviä toimintoja. - -## Kuvageneroinnin lisäominaisuudet - -Olet nähnyt, miten kuvan voi luoda muutamalla Python-rivillä. Kuvilla voi kuitenkin tehdä paljon muutakin. - -Voit myös: - -- **Muokata kuvia**. Antamalla olemassa olevan kuvan, maskin ja kehotteen, voit muuttaa kuvaa. Esimerkiksi voit lisätä jotain kuvan osaan. Kuvittele jänis-kuvamme, voit lisätä jänikselle hatun. Tämä tehdään antamalla kuva, maski (joka määrittää muutettavan alueen) ja tekstikehote, joka kertoo, mitä tehdään. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - Peruskuvassa on vain jänis, mutta lopullisessa kuvassa jäniksellä on hattu. - -- **Luoda variaatioita**. Ajatuksena on ottaa olemassa oleva kuva ja pyytää siitä variaatioita. Variaation luomiseksi annetaan kuva ja tekstikehote, ja koodi toimii näin: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Huomaa, että tämä ominaisuus on tuettu vain OpenAI:ssa. - -## Temperature - -Temperature on parametri, joka säätelee Generatiivisen tekoälyn mallin satunnaisuutta. Arvo on välillä 0–1, jossa 0 tarkoittaa determinististä tulosta ja 1 satunnaista. Oletusarvo on 0.7. - -Katsotaan esimerkki temperature-arvon vaikutuksesta ajamalla sama kehotte kahdesti: - -> Kehote: "Jänis hevosella, pitää tikkaria, sumuisella niityllä, jossa kasvaa narsisseja" - -![Jänis hevosella, versio 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.fi.png) - -Ajetaan sama kehotte uudelleen, jotta näemme, ettei saatu kuva ole täsmälleen sama: - -![Jänis hevosella, versio 2](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.fi.png) - -Kuten näet, kuvat ovat samankaltaisia, mutta eivät identtisiä. Kokeillaan muuttaa temperature-arvo 0.1:een ja katsotaan, mitä tapahtuu: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Temperature-arvon muuttaminen - -Yritetään tehdä vastauksesta deterministisempi. Huomasimme kahdesta generoidusta kuvasta, että ensimmäisessä kuvassa on jänis ja toisessa hevonen, joten kuvat eroavat paljon. - -Muutetaan siis koodia ja asetetaan temperature-arvoksi 0 näin: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Kun ajat tämän koodin, saat nämä kaksi kuvaa: - -- ![Temperature 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.fi.png) -- ![Temperature 0, v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.fi.png) - -Tässä näet selvästi, että kuvat muistuttavat toisiaan enemmän. - -## Kuinka määritellä sovelluksesi rajat metaprompteilla - -Demossamme voimme jo luoda kuvia asiakkaillemme. Tarvitsemme kuitenkin sovelluksellemme rajoja. - -Esimerkiksi emme halua luoda kuvia, jotka eivät ole työpaikalle sopivia tai eivät sovi lapsille. - -Tämän voi tehdä _metaprompteilla_. Metapromptit ovat tekstikehotteita, joita käytetään Generatiivisen tekoälyn mallin tuloksen ohjaamiseen. Voimme esimerkiksi käyttää metaprompteja varmistamaan, että luodut kuvat ovat työpaikalle sopivia tai lapsille turvallisia. - -### Miten metapromptit toimivat? - -Miten metapromptit toimivat? - -Metapromptit ovat tekstikehotteita, jotka ohjaavat Generatiivisen tekoälyn mallin tulosta. Ne sijoitetaan varsinaisen tekstikehotteen eteen ja ne upotetaan sovelluksiin ohjaamaan mallin tuottamaa sisältöä. Näin metapromptin ja varsinaisen kehotteen yhdistelmä muodostaa yhden tekstikehotteen. - -Esimerkki metapromptista voisi olla seuraava: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Katsotaan nyt, miten voimme käyttää metaprompteja demossamme. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -Yllä olevasta kehotteesta näet, miten kaikki luodut kuvat ottavat metapromptin huomioon. - -## Tehtävä – annetaan opiskelijoille mahdollisuus - -Esittelimme Edu4Allin tämän oppitunnin alussa. Nyt on aika antaa opiskelijoille mahdollisuus luoda kuvia arviointeihinsa. - -Opiskelijat luovat kuvia arviointeihinsa, jotka sisältävät monumentteja. Tarkat monumentit ovat opiskelijoiden päätettävissä. Heitä pyydetään käyttämään luovuuttaan ja sijoittamaan monumentit erilaisiin konteksteihin. - -## Ratkaisu - -Tässä yksi mahdollinen ratkaisu: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Hienoa työtä! Jatka oppimista - -Oppitunnin jälkeen tutustu [Generative AI Learning -kokoelmaamme](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) ja jatka Generatiivisen tekoälyn osaamisesi kehittämistä! - -Siirry oppitunnille 10, jossa tarkastelemme, miten [rakentaa tekoälysovelluksia low-code-työkaluilla](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**Vastuuvapauslauseke**: -Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Vaikka pyrimme tarkkuuteen, huomioithan, että automaattikäännöksissä saattaa esiintyä virheitä tai epätarkkuuksia. Alkuperäistä asiakirjaa sen alkuperäiskielellä tulee pitää virallisena lähteenä. Tärkeissä tiedoissa suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa tämän käännöksen käytöstä aiheutuvista väärinymmärryksistä tai tulkinnoista. \ No newline at end of file + + + + diff --git a/translations/fi/12-designing-ux-for-ai-applications/README.md b/translations/fi/12-designing-ux-for-ai-applications/README.md index 7647d72c2..9558da169 100644 --- a/translations/fi/12-designing-ux-for-ai-applications/README.md +++ b/translations/fi/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# Käyttökokemuksen suunnittelu tekoälysovelluksille - -[![Käyttökokemuksen suunnittelu tekoälysovelluksille](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.fi.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Klikkaa yllä olevaa kuvaa nähdäksesi tämän oppitunnin videon)_ - -Käyttökokemus on erittäin tärkeä osa sovellusten rakentamista. Käyttäjien täytyy pystyä käyttämään sovellustasi tehokkaasti tehtävien suorittamiseen. Tehokkuus on yksi asia, mutta sinun täytyy myös suunnitella sovellukset niin, että ne ovat kaikkien käytettävissä eli _saavutettavia_. Tässä luvussa keskitytään tähän osa-alueeseen, jotta lopputuloksena olisi sovellus, jota ihmiset voivat ja haluavat käyttää. - -## Johdanto - -Käyttökokemus tarkoittaa sitä, miten käyttäjä vuorovaikuttaa ja käyttää tiettyä tuotetta tai palvelua, olipa kyseessä järjestelmä, työkalu tai suunnittelu. Tekoälysovelluksia kehitettäessä kehittäjät eivät keskity pelkästään siihen, että käyttökokemus olisi toimiva, vaan myös eettinen. Tässä oppitunnissa käsitellään, miten rakentaa tekoälysovelluksia, jotka vastaavat käyttäjien tarpeisiin. - -Oppitunnissa käsitellään seuraavia aiheita: - -- Johdanto käyttökokemukseen ja käyttäjätarpeiden ymmärtäminen -- Tekoälysovellusten suunnittelu luottamuksen ja läpinäkyvyyden näkökulmasta -- Tekoälysovellusten suunnittelu yhteistyötä ja palautetta varten - -## Oppimistavoitteet - -Tämän oppitunnin jälkeen osaat: - -- Ymmärtää, miten rakentaa tekoälysovelluksia, jotka vastaavat käyttäjien tarpeisiin. -- Suunnitella tekoälysovelluksia, jotka edistävät luottamusta ja yhteistyötä. - -### Esitiedot - -Varaa aikaa ja lue lisää [käyttökokemuksesta ja design-ajattelusta.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Johdanto käyttökokemukseen ja käyttäjätarpeiden ymmärtäminen - -Kuvitteellisessa koulutukseen keskittyvässä startupissamme on kaksi pääkäyttäjäryhmää: opettajat ja opiskelijat. Molemmilla käyttäjäryhmillä on omat erityiset tarpeensa. Käyttäjäkeskeinen suunnittelu asettaa käyttäjän etusijalle varmistaen, että tuotteet ovat merkityksellisiä ja hyödyllisiä niille, joille ne on tarkoitettu. - -Sovelluksen tulisi olla **käytännöllinen, luotettava, saavutettava ja miellyttävä** tarjotakseen hyvän käyttökokemuksen. - -### Käytettävyys - -Käytännöllisyys tarkoittaa, että sovelluksella on toimintoja, jotka vastaavat sen tarkoitusta, kuten automaattinen arvosteluprosessi tai kertauskorttien luominen. Sovelluksen, joka automatisoi arvostelun, tulisi pystyä tarkasti ja tehokkaasti antamaan pisteitä opiskelijoiden töille ennalta määriteltyjen kriteerien perusteella. Vastaavasti sovelluksen, joka luo kertauskortteja, tulisi pystyä tuottamaan relevantteja ja monipuolisia kysymyksiä datansa pohjalta. - -### Luotettavuus - -Luotettavuus tarkoittaa, että sovellus pystyy suorittamaan tehtävänsä johdonmukaisesti ja virheettömästi. Kuitenkin tekoäly, kuten ihmisetkin, ei ole täydellinen ja voi tehdä virheitä. Sovellukset voivat kohdata virheitä tai odottamattomia tilanteita, jotka vaativat ihmisen puuttumista tai korjausta. Miten käsittelet virheitä? Oppitunnin viimeisessä osassa käsitellään, miten tekoälyjärjestelmät ja sovellukset suunnitellaan yhteistyötä ja palautetta varten. - -### Saavutettavuus - -Saavutettavuus tarkoittaa käyttökokemuksen laajentamista erilaisilla kyvyillä varustetuille käyttäjille, mukaan lukien vammaiset, varmistaen, ettei ketään jätetä ulkopuolelle. Noudattamalla saavutettavuusohjeita ja -periaatteita tekoälyratkaisut muuttuvat inklusiivisemmiksi, helpommin käytettäviksi ja hyödyllisemmiksi kaikille käyttäjille. - -### Miellyttävyys - -Miellyttävyys tarkoittaa, että sovelluksen käyttö on nautinnollista. Houkutteleva käyttökokemus voi vaikuttaa positiivisesti käyttäjään, kannustaen tätä palaamaan sovellukseen ja lisäämään liiketoiminnan tuottoa. - -![kuva, joka havainnollistaa UX:n huomioimista tekoälyssä](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.fi.png) - -Kaikkia haasteita ei voi ratkaista tekoälyllä. Tekoäly täydentää käyttökokemustasi, olipa kyse manuaalisten tehtävien automatisoinnista tai käyttökokemusten personoinnista. - -## Tekoälysovellusten suunnittelu luottamuksen ja läpinäkyvyyden näkökulmasta - -Luottamuksen rakentaminen on ratkaisevan tärkeää tekoälysovelluksia suunniteltaessa. Luottamus varmistaa, että käyttäjä on varma siitä, että sovellus hoitaa tehtävänsä, tuottaa tuloksia johdonmukaisesti ja että tulokset vastaavat käyttäjän tarpeita. Riskinä tässä on epäluottamus ja liiallinen luottamus. Epäluottamus syntyy, kun käyttäjällä on vähän tai ei lainkaan luottamusta tekoälyjärjestelmään, mikä johtaa sovelluksen hylkäämiseen. Liiallinen luottamus syntyy, kun käyttäjä yliarvioi tekoälyn kyvyt, mikä johtaa siihen, että käyttäjät luottavat tekoälyyn liikaa. Esimerkiksi automaattinen arvostelujärjestelmä voi liiallisen luottamuksen tapauksessa johtaa siihen, että opettaja ei tarkista kaikkia töitä varmistaakseen järjestelmän toimivuuden. Tämä voi johtaa epäreiluihin tai epätarkkoihin arvosanoihin tai menetettyihin mahdollisuuksiin antaa palautetta ja parantaa. - -Kaksi tapaa varmistaa, että luottamus on suunnittelun keskiössä, ovat selitettävyys ja hallinta. - -### Selitettävyys - -Kun tekoäly auttaa päätöksenteossa, kuten tiedon välittämisessä tuleville sukupolville, on tärkeää, että opettajat ja vanhemmat ymmärtävät, miten tekoälyn päätökset tehdään. Tämä on selitettävyys – ymmärrys siitä, miten tekoälysovellukset tekevät päätöksiä. Selitettävyyttä suunniteltaessa lisätään esimerkkejä siitä, mitä tekoälysovellus voi tehdä. Esimerkiksi "Aloita tekoälyopettajan kanssa" sijaan järjestelmä voi käyttää: "Tiivistä muistiinpanosi helpompaa kertailua varten tekoälyn avulla." - -![sovelluksen aloitussivu, jossa selkeä esitys tekoälyn selitettävyydestä](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.fi.png) - -Toinen esimerkki on, miten tekoäly käyttää käyttäjä- ja henkilötietoja. Esimerkiksi opiskelijapersoonalla voi olla rajoituksia persoonansa perusteella. Tekoäly ei välttämättä voi paljastaa vastauksia kysymyksiin, mutta voi auttaa ohjaamaan käyttäjää ajattelemaan, miten ongelman voisi ratkaista. - -![tekoäly vastaa kysymyksiin persoonan perusteella](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.fi.png) - -Viimeinen tärkeä osa selitettävyyttä on selitysten yksinkertaistaminen. Opiskelijat ja opettajat eivät välttämättä ole tekoälyasiantuntijoita, joten sovelluksen kykyjen ja rajoitusten selitysten tulisi olla yksinkertaisia ja helposti ymmärrettäviä. - -![yksinkertaistetut selitykset tekoälyn kyvyistä](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.fi.png) - -### Hallinta - -Generatiivinen tekoäly luo yhteistyön tekoälyn ja käyttäjän välille, jossa esimerkiksi käyttäjä voi muokata kehotteita eri tuloksia varten. Lisäksi, kun tulos on luotu, käyttäjien tulisi pystyä muokkaamaan tuloksia, mikä antaa heille hallinnan tunteen. Esimerkiksi Bingin käytössä voit räätälöidä kehotteesi muodon, sävyn ja pituuden mukaan. Lisäksi voit tehdä muutoksia tulokseen ja muokata sitä alla olevan kuvan mukaisesti: - -![Bing-hakutulokset, joissa vaihtoehdot kehotteen ja tuloksen muokkaamiseen](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.fi.png) - -Toinen Bingin ominaisuus, joka antaa käyttäjälle hallinnan sovellukseen, on mahdollisuus valita, haluaako osallistua tekoälyn käyttämän datan keräämiseen vai ei. Koulusovelluksessa opiskelija saattaa haluta käyttää sekä omia muistiinpanojaan että opettajan materiaaleja kertausaineistona. - -![Bing-hakutulokset, joissa vaihtoehdot kehotteen ja tuloksen muokkaamiseen](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.fi.png) - -> Tekoälysovelluksia suunniteltaessa tarkoituksellisuus on avainasemassa, jotta käyttäjät eivät luota liikaa asettaen epärealistisia odotuksia tekoälyn kyvyistä. Yksi tapa tehdä tämä on luoda kitkaa kehotteiden ja tulosten välille. Muistuttaa käyttäjää, että kyseessä on tekoäly, ei toinen ihminen. - -## Tekoälysovellusten suunnittelu yhteistyötä ja palautetta varten - -Kuten aiemmin mainittiin, generatiivinen tekoäly luo yhteistyön käyttäjän ja tekoälyn välille. Useimmiten vuorovaikutus tapahtuu siten, että käyttäjä syöttää kehotteen ja tekoäly tuottaa tuloksen. Entä jos tulos on virheellinen? Miten sovellus käsittelee virheitä, jos niitä ilmenee? Syyttääkö tekoäly käyttäjää vai käyttääkö se aikaa virheen selittämiseen? - -Tekoälysovellukset tulisi rakentaa vastaanottamaan ja antamaan palautetta. Tämä ei ainoastaan auta tekoälyjärjestelmää kehittymään, vaan myös rakentaa luottamusta käyttäjien kanssa. Palautesilmukka tulisi sisällyttää suunnitteluun, esimerkiksi yksinkertaisena peukku ylös tai alas -toimintona tulokselle. - -Toinen tapa käsitellä tätä on viestiä selkeästi järjestelmän kyvyt ja rajoitukset. Kun käyttäjä tekee virheen pyytämällä jotain tekoälyn kykyjen ulkopuolelta, tulisi olla myös keino käsitellä tämä, kuten alla on esitetty. - -![Palautteen antaminen ja virheiden käsittely](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.fi.png) - -Järjestelmävirheet ovat yleisiä sovelluksissa, joissa käyttäjä saattaa tarvita apua tekoälyn ulkopuolisen tiedon kanssa tai sovelluksella voi olla rajoitus, kuinka monta kysymystä/aihetta käyttäjä voi tiivistää. Esimerkiksi tekoälysovellus, joka on koulutettu rajoitetuilla aineistoilla, kuten historiassa ja matematiikassa, ei välttämättä pysty käsittelemään maantietoon liittyviä kysymyksiä. Tämän välttämiseksi tekoälyjärjestelmä voi antaa vastauksen kuten: "Valitettavasti tuotteemme on koulutettu seuraavilla ainealueilla..., en pysty vastaamaan esittämääsi kysymykseen." - -Tekoälysovellukset eivät ole täydellisiä, joten ne tekevät virheitä. Suunnitellessasi sovelluksiasi varmista, että luot tilaa käyttäjäpalautteelle ja virheiden käsittelylle tavalla, joka on yksinkertainen ja helposti selitettävissä. - -## Tehtävä - -Ota käyttöön jokin tähän mennessä rakentamasi tekoälysovellus ja harkitse seuraavien vaiheiden toteuttamista sovelluksessasi: - -- **Miellyttävyys:** Mieti, miten voit tehdä sovelluksestasi miellyttävämmän. Lisäätkö selityksiä joka paikkaan? Kannustatko käyttäjää tutkimaan sovellusta? Miten muotoilet virheilmoituksesi? - -- **Käytettävyys:** Rakennatko web-sovelluksen? Varmista, että sovellusta voi käyttää sekä hiirellä että näppäimistöllä. - -- **Luottamus ja läpinäkyvyys:** Älä luota tekoälyyn ja sen tuloksiin täysin. Mieti, miten voisit lisätä ihmisen prosessiin tarkistamaan tulokset. Harkitse ja toteuta myös muita tapoja saavuttaa luottamus ja läpinäkyvyys. - -- **Hallinta:** Anna käyttäjälle hallinta sovellukselle antamastaan datasta. Toteuta tapa, jolla käyttäjä voi valita, haluaako osallistua datan keräämiseen vai ei tekoälysovelluksessa. - -## Jatka oppimista! - -Oppitunnin suorittamisen jälkeen tutustu [Generative AI Learning -kokoelmaamme](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) jatkaaksesi generatiivisen tekoälyn osaamisesi kehittämistä! - -Siirry oppitunnille 13, jossa käsittelemme, miten [turvataan tekoälysovellukset](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**Vastuuvapauslauseke**: -Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Vaikka pyrimme tarkkuuteen, huomioithan, että automaattikäännöksissä saattaa esiintyä virheitä tai epätarkkuuksia. Alkuperäistä asiakirjaa sen alkuperäiskielellä tulee pitää virallisena lähteenä. Tärkeissä tiedoissa suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa tämän käännöksen käytöstä aiheutuvista väärinymmärryksistä tai tulkinnoista. \ No newline at end of file + + + diff --git a/translations/fi/README.md b/translations/fi/README.md index ef6bc2d06..fb414639f 100644 --- a/translations/fi/README.md +++ b/translations/fi/README.md @@ -1,137 +1,12 @@ - -![Generative AI Aloittelijoille](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.fi.png) - -### 21 oppituntia, jotka opettavat kaiken tarvittavan Generatiivisten AI-sovellusten rakentamisen aloittamiseen - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Monikielinen tuki - -#### Tuettu GitHub Actionin kautta (automaattinen ja aina ajan tasalla) - -[Ranska](../fr/README.md) | [Espanja](../es/README.md) | [Saksa](../de/README.md) | [Venäjä](../ru/README.md) | [Arabia](../ar/README.md) | [Persia (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Kiina (yksinkertaistettu)](../zh/README.md) | [Kiina (perinteinen, Macao)](../mo/README.md) | [Kiina (perinteinen, Hongkong)](../hk/README.md) | [Kiina (perinteinen, Taiwan)](../tw/README.md) | [Japani](../ja/README.md) | [Korea](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portugali (Portugali)](../pt/README.md) | [Portugali (Brasilia)](../br/README.md) | [Italia](../it/README.md) | [Puola](../pl/README.md) | [Turkki](../tr/README.md) | [Kreikka](../el/README.md) | [Thai](../th/README.md) | [Ruotsi](../sv/README.md) | [Tanska](../da/README.md) | [Norja](../no/README.md) | [Suomi](./README.md) | [Hollanti](../nl/README.md) | [Heprea](../he/README.md) | [Vietnam](../vi/README.md) | [Indonesia](../id/README.md) | [Malaiji](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Unkari](../hu/README.md) | [Tšekki](../cs/README.md) | [Slovakki](../sk/README.md) | [Romania](../ro/README.md) | [Bulgaria](../bg/README.md) | [Serbia (kyrillinen)](../sr/README.md) | [Kroatia](../hr/README.md) | [Sloveeni](../sl/README.md) | [Ukraina](../uk/README.md) | [Burma (Myanmar)](../my/README.md) - -# Generatiivinen AI aloittelijoille (Versio 3) – Kurssi - -Opi Generatiivisten AI-sovellusten rakentamisen perusteet Microsoft Cloud Advocatesin kattavalla 21 oppitunnin kurssilla. - -## 🌱 Aloittaminen - -Tässä kurssissa on 21 oppituntia. Jokainen oppitunti käsittelee omaa aihettaan, joten voit aloittaa mistä tahansa! - -Oppitunnit on merkitty joko "Learn" -tunneiksi, jotka selittävät Generatiivisen AI:n käsitteen, tai "Build" -tunneiksi, joissa käydään läpi käsite ja koodiesimerkkejä sekä **Pythonilla** että **TypeScriptillä** mahdollisuuksien mukaan. - -.NET-kehittäjille suosittelemme [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -Jokaisessa oppitunnissa on myös "Keep Learning" -osio, jossa on lisäoppimateriaaleja. - -## Mitä tarvitset -### Voit käyttää tämän kurssin koodin suorittamiseen joko: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **Oppitunnit:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **Oppitunnit:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **Oppitunnit:** "oai-assignment" - -- Perustiedot Pythonista tai TypeScriptistä ovat hyödyksi – \*Täydellisille aloittelijoille suosittelemme näitä [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) ja [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) -kursseja -- GitHub-tili, jotta voit [forkata tämän koko repositorion](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) omaan GitHub-tiliisi - -Olemme luoneet **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** -oppitunnin, joka auttaa sinua kehitysympäristön asennuksessa. - -Älä unohda [tähtä (🌟) tätä repositoriota](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst), jotta löydät sen helpommin myöhemmin. - -## 🧠 Valmis käyttöönottoon? - -Jos etsit edistyneempiä koodiesimerkkejä, tutustu [Generatiivisen AI:n koodiesimerkkikokoelmaamme](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) sekä **Pythonilla** että **TypeScriptillä**. - -## 🗣️ Tapaa muita oppijoita, saa tukea - -Liity [viralliselle Azure AI Foundry Discord -palvelimellemme](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) tavata ja verkostoitua muiden kurssin osallistujien kanssa sekä saadaksesi tukea. - -Kysy kysymyksiä tai jaa palautetta tuotteesta [Azure AI Foundry Developer Forumissa](https://aka.ms/azureaifoundry/forum) GitHubissa. - -## 🚀 Rakennatko startupia? - -Rekisteröidy [Microsoft for Startups Founders Hubiin](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) saadaksesi **ilmaisia OpenAI-krediittejä** ja jopa **150 000 dollaria Azure-krediittejä OpenAI-mallien käyttöön Azure OpenAI Servicesin kautta**. - -## 🙏 Haluatko auttaa? - -Onko sinulla ehdotuksia tai oletko löytänyt kirjoitus- tai koodivirheitä? [Luo issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) tai [tee pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 Jokainen oppitunti sisältää: - -- Lyhyen videoesittelyn aiheesta -- Kirjallisen oppitunnin README-tiedostossa -- Python- ja TypeScript-koodiesimerkit, jotka tukevat Azure OpenAI:ta ja OpenAI API:a -- Linkkejä lisäresursseihin oppimisen jatkamiseksi - -## 🗃️ Oppitunnit - -| # | **Oppitunnin linkki** | **Kuvaus** | **Video** | **Lisäoppiminen** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Kuinka asettaa kehitysympäristö | Video tulossa pian | [Lisätietoja](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Johdatus Generatiiviseen AI:hin ja LLM:iin](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Mitä Generatiivinen AI on ja miten Suuret Kielenmallit (LLM) toimivat | [Video](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Lisätietoja](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Eri LLM:ien tutkiminen ja vertailu](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Kuinka valita oikea malli omaan käyttötarkoitukseen | [Video](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Lisätietoja](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Generatiivisen AI:n vastuullinen käyttö](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Kuinka rakentaa Generatiivisia AI-sovelluksia vastuullisesti | [Video](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Lisätietoja](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Prompt Engineeringin perusteet](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Käytännön parhaat käytännöt promptien suunnittelussa | [Video](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Lisätietoja](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Edistyneet promptit](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Kuinka soveltaa prompt engineering -tekniikoita, jotka parantavat promptien tulosta | [Video](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Lisätietoja](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Tekstintuotantosovellusten rakentaminen](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Rakenna:** Tekstintuotantosovellus käyttäen Azure OpenAI / OpenAI APIa | [Video](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Lisätietoja](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Chat-sovellusten rakentaminen](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Rakenna:** Tekniikoita chat-sovellusten tehokkaaseen rakentamiseen ja integrointiin. | [Video](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Lisätietoja](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Hakusovellusten rakentaminen vektoritietokantojen avulla](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Rakenna:** Hakusovellus, joka käyttää Embeddings-menetelmää datan hakemiseen. | [Video](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Lisätietoja](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Kuvantuotantosovellusten rakentaminen](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Rakenna:** Kuvantuotantosovellus | [Video](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Lisätietoja](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Low Code -tekoälysovellusten rakentaminen](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Rakenna:** Generatiivinen tekoälysovellus käyttäen Low Code -työkaluja | [Video](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Lisätietoja](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Ulkoisten sovellusten integrointi Function Calling -toiminnolla](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Rakenna:** Mikä on function calling ja sen käyttötarkoitukset sovelluksissa | [Video](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Lisätietoja](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [UX:n suunnittelu tekoälysovelluksille](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Opiskele:** Miten soveltaa UX-suunnittelun periaatteita generatiivisten tekoälysovellusten kehityksessä | [Video](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Lisätietoja](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Generatiivisten tekoälysovellusten suojaaminen](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Opiskele:** Tekoälyjärjestelmien uhkat ja riskit sekä keinot näiden suojaamiseksi. | [Video](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Lisätietoja](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [Generatiivisen tekoälysovelluksen elinkaari](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Opiskele:** Työkalut ja mittarit LLM-elinkaaren ja LLMOpsin hallintaan | [Video](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Lisätietoja](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) ja vektoritietokannat](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Rakenna:** Sovellus, joka käyttää RAG-kehystä hakemaan embeddings-tietoa vektoritietokannoista | [Video](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Lisätietoja](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Avoimen lähdekoodin mallit ja Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Rakenna:** Sovellus, joka käyttää Hugging Facen avoimen lähdekoodin malleja | [Video](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Lisätietoja](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [Tekoälyagentit](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Rakenna:** Sovellus, joka käyttää AI Agent Frameworkia | [Video](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Lisätietoja](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [LLM-mallien hienosäätö](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Opiskele:** Mitä, miksi ja miten LLM-malleja hienosäädetään | [Video](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Lisätietoja](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Rakentaminen SLM-malleilla](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Opiskele:** Pienten kielimallien rakentamisen hyödyt | Video tulossa pian | [Lisätietoja](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Rakentaminen Mistral-malleilla](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Opiskele:** Mistral-perheen mallien ominaisuudet ja erot | Video tulossa pian | [Lisätietoja](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Rakentaminen Meta-malleilla](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Opiskele:** Meta-perheen mallien ominaisuudet ja erot | Video tulossa pian | [Lisätietoja](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Erityiskiitokset - -Erityiskiitos [**John Azizille**](https://www.linkedin.com/in/john0isaac/) kaikista GitHub Actions -toiminnoista ja työnkuluista - -[**Bernhard Merklelle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) avainpanoksista jokaisen oppitunnin parantamiseksi oppimiskokemuksen ja koodin osalta. - -## 🎒 Muut kurssit - -Tiimimme tuottaa myös muita kursseja! Tutustu: - -- [**UUSI** Model Context Protocol aloittelijoille](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI Agents aloittelijoille](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Generatiivinen tekoäly aloittelijoille .NETillä](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Generatiivinen tekoäly aloittelijoille JavaScriptillä](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML aloittelijoille](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Data Science aloittelijoille](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI aloittelijoille](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Kyberturvallisuus aloittelijoille](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Web-kehitys aloittelijoille](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT aloittelijoille](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR-kehitys aloittelijoille](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [GitHub Copilotin hallinta tekoälypariohjelmointiin](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [GitHub Copilotin hallinta C#/.NET-kehittäjille](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Valitse oma Copilot-seikkailusi](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Vastuuvapauslauseke**: -Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Vaikka pyrimme tarkkuuteen, huomioithan, että automaattikäännöksissä saattaa esiintyä virheitä tai epätarkkuuksia. Alkuperäistä asiakirjaa sen alkuperäiskielellä tulee pitää virallisena lähteenä. Tärkeissä tiedoissa suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa tämän käännöksen käytöstä aiheutuvista väärinymmärryksistä tai tulkinnoista. \ No newline at end of file + + + + diff --git a/translations/fr/00-course-setup/01-setup-cloud.md b/translations/fr/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..bed34f800 --- /dev/null +++ b/translations/fr/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/fr/00-course-setup/02-setup-local.md b/translations/fr/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..c75823b33 --- /dev/null +++ b/translations/fr/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/fr/00-course-setup/03-providers.md b/translations/fr/00-course-setup/03-providers.md new file mode 100644 index 000000000..9b990e531 --- /dev/null +++ b/translations/fr/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/fr/00-course-setup/README.md b/translations/fr/00-course-setup/README.md index 07644e728..4527c326f 100644 --- a/translations/fr/00-course-setup/README.md +++ b/translations/fr/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# Bien démarrer avec ce cours - -Nous sommes très enthousiastes à l’idée que vous commenciez ce cours et découvriez ce que vous serez inspiré à créer avec l’IA générative ! - -Pour vous assurer de réussir, cette page décrit les étapes d’installation, les exigences techniques, ainsi que les ressources d’aide en cas de besoin. - -## Étapes d’installation - -Pour commencer ce cours, vous devrez suivre les étapes suivantes. - -### 1. Forker ce dépôt - -[Forkez ce dépôt complet](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) sur votre propre compte GitHub afin de pouvoir modifier le code et relever les défis. Vous pouvez aussi [étoiler (🌟) ce dépôt](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) pour le retrouver plus facilement, ainsi que les dépôts associés. - -### 2. Créer un codespace - -Pour éviter tout problème de dépendances lors de l’exécution du code, nous recommandons d’utiliser ce cours dans un [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst). - -Vous pouvez créer un codespace en sélectionnant l’option `Code` sur votre version forkée de ce dépôt, puis en choisissant l’option **Codespaces**. - -![Dialogue montrant les boutons pour créer un codespace](../../../00-course-setup/images/who-will-pay.webp) - -### 3. Stocker vos clés API - -Il est important de garder vos clés API en sécurité lorsque vous développez une application. Nous vous recommandons de ne pas stocker vos clés API directement dans votre code. Les inclure dans un dépôt public peut entraîner des problèmes de sécurité et même des coûts non désirés si elles sont utilisées par une personne malveillante. -Voici un guide étape par étape pour créer un fichier `.env` en Python et y ajouter le `GITHUB_TOKEN` : - -1. **Accédez au répertoire de votre projet** : Ouvrez votre terminal ou invite de commandes et placez-vous à la racine de votre projet où vous souhaitez créer le fichier `.env`. - - ```bash - cd path/to/your/project - ``` - -2. **Créez le fichier `.env`** : Utilisez votre éditeur de texte préféré pour créer un nouveau fichier nommé `.env`. En ligne de commande, vous pouvez utiliser `touch` (sur systèmes Unix) ou `echo` (sur Windows) : - - Systèmes Unix : - - ```bash - touch .env - ``` - - Windows : - - ```cmd - echo . > .env - ``` - -3. **Modifiez le fichier `.env`** : Ouvrez le fichier `.env` dans un éditeur de texte (par exemple VS Code, Notepad++, ou autre). Ajoutez la ligne suivante en remplaçant `your_github_token_here` par votre vrai token GitHub : - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Enregistrez le fichier** : Sauvegardez les modifications et fermez l’éditeur. - -5. **Installez `python-dotenv`** : Si ce n’est pas déjà fait, installez le paquet `python-dotenv` pour charger les variables d’environnement depuis le fichier `.env` dans votre application Python. Vous pouvez l’installer avec `pip` : - - ```bash - pip install python-dotenv - ``` - -6. **Chargez les variables d’environnement dans votre script Python** : Dans votre script Python, utilisez le paquet `python-dotenv` pour charger les variables d’environnement depuis le fichier `.env` : - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -Voilà ! Vous avez créé un fichier `.env`, ajouté votre token GitHub, et chargé celui-ci dans votre application Python. - -## Comment exécuter localement sur votre ordinateur - -Pour exécuter le code localement, vous devez avoir une version de [Python installée](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -Ensuite, pour utiliser le dépôt, vous devez le cloner : - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -Une fois tout récupéré, vous pouvez commencer ! - -## Étapes optionnelles - -### Installer Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) est un installateur léger pour installer [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python, ainsi que quelques paquets. -Conda est un gestionnaire de paquets qui facilite la création et la gestion de différents [environnements virtuels](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) Python et leurs paquets. Il est aussi utile pour installer des paquets non disponibles via `pip`. - -Vous pouvez suivre le [guide d’installation de MiniConda](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) pour le configurer. - -Une fois Miniconda installé, vous devez cloner le [dépôt](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (si ce n’est pas déjà fait). - -Ensuite, créez un environnement virtuel. Pour cela avec Conda, créez un nouveau fichier d’environnement (_environment.yml_). Si vous suivez ce cours avec Codespaces, créez-le dans le répertoire `.devcontainer`, donc `.devcontainer/environment.yml`. - -Remplissez votre fichier d’environnement avec l’extrait ci-dessous : - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Si vous rencontrez des erreurs avec conda, vous pouvez installer manuellement les bibliothèques Microsoft AI avec la commande suivante dans un terminal. - -``` -conda install -c microsoft azure-ai-ml -``` - -Le fichier d’environnement spécifie les dépendances nécessaires. `` correspond au nom que vous souhaitez donner à votre environnement Conda, et `` est la version de Python désirée, par exemple `3` pour la dernière version majeure. - -Une fois cela fait, créez votre environnement Conda en lançant les commandes ci-dessous dans votre terminal : - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -Consultez le [guide des environnements Conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst) en cas de problème. - -### Utiliser Visual Studio Code avec l’extension Python - -Nous recommandons d’utiliser l’éditeur [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) avec l’[extension Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) pour ce cours. C’est toutefois une recommandation, pas une obligation. - -> **Note** : En ouvrant le dépôt du cours dans VS Code, vous pouvez configurer le projet dans un conteneur grâce au [répertoire spécial `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) présent dans le dépôt. Nous y reviendrons plus tard. - -> **Note** : Une fois le dépôt cloné et ouvert dans VS Code, il vous proposera automatiquement d’installer l’extension Python. - -> **Note** : Si VS Code vous suggère de rouvrir le dépôt dans un conteneur, refusez cette demande pour utiliser la version locale de Python installée sur votre machine. - -### Utiliser Jupyter dans le navigateur - -Vous pouvez aussi travailler sur le projet avec l’environnement [Jupyter](https://jupyter.org?WT.mc_id=academic-105485-koreyst) directement dans votre navigateur. Jupyter classique et [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) offrent un environnement de développement agréable avec des fonctionnalités comme l’autocomplétion, la coloration syntaxique, etc. - -Pour lancer Jupyter localement, ouvrez un terminal, placez-vous dans le répertoire du cours, et exécutez : - -```bash -jupyter notebook -``` - -ou - -```bash -jupyterhub -``` - -Cela démarrera une instance Jupyter et l’URL d’accès s’affichera dans la fenêtre du terminal. - -Une fois l’URL ouverte, vous verrez le plan du cours et pourrez naviguer vers n’importe quel fichier `*.ipynb`. Par exemple, `08-building-search-applications/python/oai-solution.ipynb`. - -### Exécuter dans un conteneur - -Une alternative à l’installation locale ou dans Codespaces est d’utiliser un [conteneur](../../../00-course-setup/). Le dossier spécial `.devcontainer` dans le dépôt permet à VS Code de configurer le projet dans un conteneur. En dehors de Codespaces, cela nécessite l’installation de Docker et demande un peu de travail, donc nous recommandons cette option uniquement aux personnes expérimentées avec les conteneurs. - -Une des meilleures façons de sécuriser vos clés API dans GitHub Codespaces est d’utiliser les Codespace Secrets. Veuillez suivre le guide [Codespaces secrets management](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) pour en savoir plus. - -## Leçons et exigences techniques - -Le cours comprend 6 leçons conceptuelles et 6 leçons de codage. - -Pour les leçons de codage, nous utilisons le service Azure OpenAI. Vous aurez besoin d’un accès au service Azure OpenAI et d’une clé API pour exécuter ce code. Vous pouvez demander l’accès en [remplissant cette demande](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -En attendant la validation de votre demande, chaque leçon de codage inclut un fichier `README.md` où vous pouvez consulter le code et les résultats. - -## Utiliser le service Azure OpenAI pour la première fois - -Si c’est votre première fois avec le service Azure OpenAI, suivez ce guide pour [créer et déployer une ressource Azure OpenAI Service.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## Utiliser l’API OpenAI pour la première fois - -Si c’est votre première fois avec l’API OpenAI, suivez le guide pour [créer et utiliser l’interface.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## Rencontrer d’autres apprenants - -Nous avons créé des salons dans notre serveur officiel [AI Community Discord](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) pour rencontrer d’autres apprenants. C’est un excellent moyen de réseauter avec d’autres entrepreneurs, développeurs, étudiants, et toute personne souhaitant progresser en IA générative. - -[![Rejoindre le salon discord](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -L’équipe du projet sera également présente sur ce serveur Discord pour aider les apprenants. - -## Contribuer - -Ce cours est une initiative open source. Si vous voyez des points à améliorer ou des problèmes, créez une [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) ou signalez un [issue GitHub](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -L’équipe du projet suit toutes les contributions. Contribuer à l’open source est une excellente façon de faire avancer votre carrière en IA générative. - -La plupart des contributions nécessitent que vous acceptiez un Contrat de Licence de Contributeur (CLA) déclarant que vous avez le droit et accordez effectivement à Microsoft les droits d’utiliser votre contribution. Pour plus de détails, consultez le site [CLA, Contributor License Agreement](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Important : lors de la traduction des textes de ce dépôt, assurez-vous de ne pas utiliser de traduction automatique. Nous vérifierons les traductions via la communauté, donc ne proposez vos services que pour des langues que vous maîtrisez. - -Lorsque vous soumettez une pull request, un bot CLA déterminera automatiquement si vous devez fournir un CLA et ajoutera les labels ou commentaires appropriés. Suivez simplement les instructions du bot. Vous n’aurez à le faire qu’une seule fois pour tous les dépôts utilisant notre CLA. - -Ce projet a adopté le [Code de conduite open source Microsoft](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst). Pour plus d’informations, consultez la FAQ du Code de conduite ou contactez [Email opencode](opencode@microsoft.com) pour toute question ou remarque. - -## Commençons - -Maintenant que vous avez complété les étapes nécessaires pour suivre ce cours, commençons par une [introduction à l’IA générative et aux LLMs](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**Avertissement** : -Ce document a été traduit à l’aide du service de traduction automatique [Co-op Translator](https://github.com/Azure/co-op-translator). Bien que nous nous efforcions d’assurer l’exactitude, veuillez noter que les traductions automatiques peuvent contenir des erreurs ou des inexactitudes. Le document original dans sa langue d’origine doit être considéré comme la source faisant foi. Pour les informations critiques, une traduction professionnelle réalisée par un humain est recommandée. Nous déclinons toute responsabilité en cas de malentendus ou de mauvaises interprétations résultant de l’utilisation de cette traduction. \ No newline at end of file + + + + diff --git a/translations/fr/00-course-setup/SETUP.md b/translations/fr/00-course-setup/SETUP.md deleted file mode 100644 index 50311323e..000000000 --- a/translations/fr/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# Configurez votre environnement de développement - -Nous avons configuré ce dépôt et ce cours avec un [conteneur de développement](https://containers.dev?WT.mc_id=academic-105485-koreyst) qui dispose d’un runtime universel capable de supporter le développement en Python3, .NET, Node.js et Java. La configuration associée est définie dans le fichier `devcontainer.json` situé dans le dossier `.devcontainer/` à la racine de ce dépôt. - -Pour activer le conteneur de développement, lancez-le dans [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (pour un runtime hébergé dans le cloud) ou dans [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (pour un runtime hébergé localement). Consultez [cette documentation](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) pour plus de détails sur le fonctionnement des conteneurs de développement dans VS Code. - -> [!TIP] -> Nous recommandons d’utiliser GitHub Codespaces pour un démarrage rapide avec un minimum d’effort. Il offre un généreux [quota d’utilisation gratuite](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) pour les comptes personnels. Configurez les [délai d’inactivité](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) pour arrêter ou supprimer les codespaces inactifs afin d’optimiser l’utilisation de votre quota. - -## 1. Exécution des devoirs - -Chaque leçon proposera des devoirs _optionnels_ qui peuvent être fournis dans un ou plusieurs langages de programmation, notamment : Python, .NET/C#, Java et JavaScript/TypeScript. Cette section donne des conseils généraux pour exécuter ces devoirs. - -### 1.1 Devoirs Python - -Les devoirs Python sont fournis soit sous forme d’applications (`.py`), soit de notebooks Jupyter (`.ipynb`). -- Pour exécuter un notebook, ouvrez-le dans Visual Studio Code, puis cliquez sur _Select Kernel_ (en haut à droite) et choisissez l’option Python 3 par défaut. Vous pouvez ensuite cliquer sur _Run All_ pour lancer l’exécution du notebook. -- Pour exécuter des applications Python en ligne de commande, suivez les instructions spécifiques à chaque devoir pour sélectionner les bons fichiers et fournir les arguments requis. - -## 2. Configuration des fournisseurs - -Les devoirs **peuvent** également être configurés pour fonctionner avec un ou plusieurs déploiements de modèles de langage large (LLM) via un fournisseur de service supporté comme OpenAI, Azure ou Hugging Face. Ces fournisseurs offrent un _endpoint hébergé_ (API) accessible de manière programmatique avec les bonnes informations d’authentification (clé API ou token). Dans ce cours, nous abordons ces fournisseurs : - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) avec une variété de modèles dont la série principale GPT. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) pour les modèles OpenAI avec un focus sur la préparation entreprise. - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) pour les modèles open-source et le serveur d’inférence. - -**Vous devrez utiliser vos propres comptes pour ces exercices**. Les devoirs sont optionnels, vous pouvez donc choisir de configurer un, tous ou aucun des fournisseurs selon vos préférences. Voici quelques indications pour l’inscription : - -| Inscription | Coût | Clé API | Playground | Commentaires | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst) | [Tarifs](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst) | [Basée sur projet](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [No-Code, Web](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Plusieurs modèles disponibles | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst) | [Tarifs](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst) | [Démarrage rapide SDK](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Démarrage rapide Studio](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Accès soumis à approbation préalable](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) | -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Tarifs](https://huggingface.co/pricing) | [Tokens d’accès](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst) | [Hugging Chat propose un nombre limité de modèles](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Suivez les instructions ci-dessous pour _configurer_ ce dépôt afin d’utiliser différents fournisseurs. Les devoirs nécessitant un fournisseur spécifique contiendront l’un de ces tags dans leur nom de fichier : - - `aoai` - nécessite un endpoint et une clé Azure OpenAI - - `oai` - nécessite un endpoint et une clé OpenAI - - `hf` - nécessite un token Hugging Face - -Vous pouvez configurer un, aucun ou tous les fournisseurs. Les devoirs concernés généreront simplement une erreur en cas d’identifiants manquants. - -### 2.1. Créer le fichier `.env` - -Nous supposons que vous avez déjà lu les indications ci-dessus, créé un compte chez le fournisseur concerné et obtenu les identifiants d’authentification requis (API_KEY ou token). Dans le cas d’Azure OpenAI, nous supposons également que vous disposez d’un déploiement valide d’un service Azure OpenAI (endpoint) avec au moins un modèle GPT déployé pour la complétion de chat. - -L’étape suivante consiste à configurer vos **variables d’environnement locales** comme suit : - -1. Cherchez dans le dossier racine un fichier `.env.copy` qui devrait contenir quelque chose comme ceci : - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Copiez ce fichier en `.env` avec la commande ci-dessous. Ce fichier est _gitignore-d_, ce qui protège vos secrets. - - ```bash - cp .env.copy .env - ``` - -3. Remplissez les valeurs (remplacez les espaces réservés à droite du `=`) comme décrit dans la section suivante. - -3. (Option) Si vous utilisez GitHub Codespaces, vous pouvez enregistrer les variables d’environnement comme _secrets Codespaces_ associés à ce dépôt. Dans ce cas, vous n’aurez pas besoin de configurer un fichier .env local. **Cependant, cette option ne fonctionne que si vous utilisez GitHub Codespaces.** Vous devrez toujours configurer le fichier .env si vous utilisez Docker Desktop. - -### 2.2. Remplir le fichier `.env` - -Jetons un coup d’œil rapide aux noms des variables pour comprendre ce qu’elles représentent : - -| Variable | Description | -| :--- | :--- | -| HUGGING_FACE_API_KEY | C’est le token d’accès utilisateur que vous avez configuré dans votre profil | -| OPENAI_API_KEY | C’est la clé d’autorisation pour utiliser le service OpenAI hors Azure | -| AZURE_OPENAI_API_KEY | C’est la clé d’autorisation pour utiliser le service Azure OpenAI | -| AZURE_OPENAI_ENDPOINT | C’est l’endpoint déployé pour une ressource Azure OpenAI | -| AZURE_OPENAI_DEPLOYMENT | C’est le déploiement du modèle de _génération de texte_ | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | C’est le déploiement du modèle d’_embeddings de texte_ | -| | | - -Note : Les deux dernières variables Azure OpenAI correspondent respectivement à un modèle par défaut pour la complétion de chat (génération de texte) et pour la recherche vectorielle (embeddings). Les instructions pour les configurer seront précisées dans les devoirs concernés. - -### 2.3 Configurer Azure : depuis le portail - -Les valeurs de l’endpoint et de la clé Azure OpenAI se trouvent dans le [portail Azure](https://portal.azure.com?WT.mc_id=academic-105485-koreyst), commençons donc par là. - -1. Rendez-vous sur le [portail Azure](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -1. Cliquez sur l’option **Keys and Endpoint** dans la barre latérale (menu à gauche). -1. Cliquez sur **Show Keys** – vous devriez voir : KEY 1, KEY 2 et Endpoint. -1. Utilisez la valeur de KEY 1 pour AZURE_OPENAI_API_KEY -1. Utilisez la valeur Endpoint pour AZURE_OPENAI_ENDPOINT - -Ensuite, nous avons besoin des endpoints pour les modèles spécifiques que nous avons déployés. - -1. Cliquez sur l’option **Model deployments** dans la barre latérale (menu à gauche) pour la ressource Azure OpenAI. -1. Sur la page qui s’ouvre, cliquez sur **Manage Deployments** - -Cela vous mènera au site Azure OpenAI Studio, où vous trouverez les autres valeurs comme décrit ci-dessous. - -### 2.4 Configurer Azure : depuis Studio - -1. Accédez à [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **depuis votre ressource** comme indiqué ci-dessus. -1. Cliquez sur l’onglet **Deployments** (barre latérale gauche) pour voir les modèles actuellement déployés. -1. Si le modèle souhaité n’est pas déployé, utilisez **Create new deployment** pour le déployer. -1. Vous aurez besoin d’un modèle de _génération de texte_ – nous recommandons : **gpt-35-turbo** -1. Vous aurez besoin d’un modèle d’_embedding de texte_ – nous recommandons **text-embedding-ada-002** - -Mettez à jour les variables d’environnement pour refléter le _nom du déploiement_ utilisé. Ce sera généralement le même que le nom du modèle, sauf si vous l’avez changé explicitement. Par exemple, vous pourriez avoir : - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**N’oubliez pas de sauvegarder le fichier .env une fois terminé**. Vous pouvez maintenant fermer le fichier et revenir aux instructions pour exécuter le notebook. - -### 2.5 Configurer OpenAI : depuis le profil - -Votre clé API OpenAI se trouve dans votre [compte OpenAI](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). Si vous n’en avez pas, vous pouvez créer un compte et générer une clé API. Une fois la clé obtenue, vous pouvez la renseigner dans la variable `OPENAI_API_KEY` du fichier `.env`. - -### 2.6 Configurer Hugging Face : depuis le profil - -Votre token Hugging Face se trouve dans votre profil sous [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). Ne publiez pas ni ne partagez ces tokens publiquement. Créez plutôt un nouveau token pour ce projet et copiez-le dans le fichier `.env` sous la variable `HUGGING_FACE_API_KEY`. _Note :_ Ce n’est techniquement pas une clé API, mais il est utilisé pour l’authentification, nous conservons donc cette convention de nommage pour plus de cohérence. - -**Avertissement** : -Ce document a été traduit à l’aide du service de traduction automatique [Co-op Translator](https://github.com/Azure/co-op-translator). Bien que nous nous efforcions d’assurer l’exactitude, veuillez noter que les traductions automatiques peuvent contenir des erreurs ou des inexactitudes. Le document original dans sa langue d’origine doit être considéré comme la source faisant foi. Pour les informations critiques, une traduction professionnelle réalisée par un humain est recommandée. Nous déclinons toute responsabilité en cas de malentendus ou de mauvaises interprétations résultant de l’utilisation de cette traduction. \ No newline at end of file diff --git a/translations/fr/04-prompt-engineering-fundamentals/README.md b/translations/fr/04-prompt-engineering-fundamentals/README.md index 26c54b4c9..6d3654a20 100644 --- a/translations/fr/04-prompt-engineering-fundamentals/README.md +++ b/translations/fr/04-prompt-engineering-fundamentals/README.md @@ -1,453 +1,15 @@ - -# Fondamentaux de l'Ingénierie des Prompts - -[![Fondamentaux de l'Ingénierie des Prompts](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.fr.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Introduction -Ce module couvre les concepts et techniques essentiels pour créer des prompts efficaces dans les modèles d’IA générative. La manière dont vous rédigez votre prompt pour un LLM est également importante. Un prompt soigneusement conçu peut obtenir une meilleure qualité de réponse. Mais que signifient exactement les termes _prompt_ et _ingénierie des prompts_ ? Et comment améliorer le _prompt d’entrée_ que j’envoie au LLM ? Ce sont les questions auxquelles nous allons tenter de répondre dans ce chapitre et le suivant. - -_L’IA générative_ est capable de créer du contenu nouveau (texte, images, audio, code, etc.) en réponse aux demandes des utilisateurs. Elle y parvient grâce à des _grands modèles de langage_ comme la série GPT d’OpenAI ("Generative Pre-trained Transformer") qui sont entraînés à utiliser le langage naturel et le code. - -Les utilisateurs peuvent désormais interagir avec ces modèles via des paradigmes familiers comme le chat, sans nécessiter de compétences techniques ou de formation. Les modèles sont _basés sur des prompts_ : les utilisateurs envoient un texte (prompt) et reçoivent une réponse de l’IA (complétion). Ils peuvent ensuite "dialoguer avec l’IA" de manière itérative, dans des conversations à plusieurs tours, en affinant leur prompt jusqu’à ce que la réponse corresponde à leurs attentes. - -Les "prompts" deviennent ainsi l’_interface de programmation_ principale des applications d’IA générative, indiquant aux modèles ce qu’ils doivent faire et influençant la qualité des réponses retournées. L’"ingénierie des prompts" est un domaine d’étude en pleine expansion qui se concentre sur la _conception et l’optimisation_ des prompts pour fournir des réponses cohérentes et de qualité à grande échelle. - -## Objectifs d’apprentissage - -Dans cette leçon, nous apprendrons ce qu’est l’ingénierie des prompts, pourquoi elle est importante, et comment créer des prompts plus efficaces pour un modèle et un objectif d’application donnés. Nous comprendrons les concepts clés et les bonnes pratiques de l’ingénierie des prompts – et découvrirons un environnement interactif de type Jupyter Notebooks "sandbox" où nous pourrons voir ces concepts appliqués à des exemples concrets. - -À la fin de cette leçon, nous serons capables de : - -1. Expliquer ce qu’est l’ingénierie des prompts et pourquoi elle est importante. -2. Décrire les composants d’un prompt et leur utilisation. -3. Apprendre les meilleures pratiques et techniques pour l’ingénierie des prompts. -4. Appliquer les techniques apprises à des exemples réels, en utilisant un endpoint OpenAI. - -## Termes clés - -Ingénierie des Prompts : La pratique de concevoir et affiner les entrées pour guider les modèles d’IA vers la production des sorties souhaitées. -Tokenisation : Le processus de conversion du texte en unités plus petites, appelées tokens, que le modèle peut comprendre et traiter. -LLMs ajustés par instructions : Grands modèles de langage (LLMs) qui ont été affinés avec des instructions spécifiques pour améliorer la précision et la pertinence de leurs réponses. - -## Environnement d’apprentissage - -L’ingénierie des prompts est actuellement plus un art qu’une science. La meilleure façon d’améliorer notre intuition est de _pratiquer davantage_ et d’adopter une approche par essais et erreurs qui combine expertise du domaine d’application avec des techniques recommandées et des optimisations spécifiques au modèle. - -Le Jupyter Notebook qui accompagne cette leçon offre un environnement _sandbox_ où vous pouvez tester ce que vous apprenez – au fur et à mesure ou dans le cadre du défi de code à la fin. Pour exécuter les exercices, vous aurez besoin de : - -1. **Une clé API Azure OpenAI** – le point de terminaison du service pour un LLM déployé. -2. **Un environnement d’exécution Python** – dans lequel le Notebook peut être exécuté. -3. **Variables d’environnement locales** – _complétez dès maintenant les étapes du [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) pour être prêt_. - -Le notebook propose des exercices _de démarrage_ – mais vous êtes encouragé à ajouter vos propres sections _Markdown_ (description) et _Code_ (requêtes de prompt) pour essayer plus d’exemples ou d’idées – et développer votre intuition pour la conception de prompts. - -## Guide illustré - -Vous souhaitez avoir une vue d’ensemble de ce que couvre cette leçon avant de vous plonger dedans ? Consultez ce guide illustré, qui vous donne une idée des principaux sujets abordés et des points clés à retenir pour chacun. La feuille de route de la leçon vous emmène de la compréhension des concepts fondamentaux et des défis à leur résolution avec des techniques d’ingénierie des prompts et des bonnes pratiques adaptées. Notez que la section "Techniques avancées" de ce guide fait référence au contenu du _chapitre suivant_ de ce cursus. - -![Guide illustré de l’ingénierie des prompts](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.fr.png) - -## Notre startup - -Parlons maintenant de la façon dont _ce sujet_ s’inscrit dans la mission de notre startup visant à [apporter l’innovation IA à l’éducation](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). Nous voulons construire des applications d’IA pour un _apprentissage personnalisé_ – réfléchissons donc à la manière dont différents utilisateurs de notre application pourraient "concevoir" des prompts : - -- **Les administrateurs** pourraient demander à l’IA d’_analyser les données du programme scolaire pour identifier les lacunes_. L’IA peut résumer les résultats ou les visualiser avec du code. -- **Les enseignants** pourraient demander à l’IA de _générer un plan de cours pour un public cible et un sujet donnés_. L’IA peut construire un plan personnalisé dans un format spécifié. -- **Les étudiants** pourraient demander à l’IA de _les accompagner dans une matière difficile_. L’IA peut désormais guider les étudiants avec des leçons, des indices et des exemples adaptés à leur niveau. - -Ce n’est qu’un aperçu. Découvrez [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) – une bibliothèque open source de prompts sélectionnée par des experts en éducation – pour avoir une idée plus large des possibilités ! _Essayez d’exécuter certains de ces prompts dans le sandbox ou dans l’OpenAI Playground pour voir ce qui se passe !_ - - - -## Qu’est-ce que l’ingénierie des prompts ? - -Nous avons commencé cette leçon en définissant **l’ingénierie des prompts** comme le processus de _conception et d’optimisation_ des entrées textuelles (prompts) pour fournir des réponses (complétions) cohérentes et de qualité selon un objectif d’application et un modèle donnés. On peut voir cela comme un processus en deux étapes : - -- _concevoir_ le prompt initial pour un modèle et un objectif donnés -- _affiner_ le prompt de manière itérative pour améliorer la qualité de la réponse - -C’est nécessairement un processus d’essais et erreurs qui demande de l’intuition et des efforts de la part de l’utilisateur pour obtenir des résultats optimaux. Mais pourquoi est-ce important ? Pour répondre à cette question, il faut d’abord comprendre trois concepts : - -- _Tokenisation_ = comment le modèle "voit" le prompt -- _Base LLMs_ = comment le modèle de base "traite" un prompt -- _LLMs ajustés par instructions_ = comment le modèle peut désormais "comprendre des tâches" - -### Tokenisation - -Un LLM perçoit les prompts comme une _séquence de tokens_ où différents modèles (ou versions d’un même modèle) peuvent tokeniser un même prompt de façons différentes. Comme les LLMs sont entraînés sur des tokens (et non sur du texte brut), la manière dont les prompts sont tokenisés a un impact direct sur la qualité de la réponse générée. - -Pour vous faire une idée de la tokenisation, essayez des outils comme le [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) présenté ci-dessous. Copiez votre prompt et voyez comment il est converti en tokens, en faisant attention à la gestion des espaces et de la ponctuation. Notez que cet exemple montre un LLM plus ancien (GPT-3) – essayer avec un modèle plus récent peut donner un résultat différent. - -![Tokenisation](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.fr.png) - -### Concept : Modèles de base - -Une fois le prompt tokenisé, la fonction principale du ["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (ou modèle de base) est de prédire le token suivant dans la séquence. Comme les LLMs sont entraînés sur d’énormes ensembles de textes, ils ont une bonne compréhension des relations statistiques entre tokens et peuvent faire cette prédiction avec une certaine confiance. Notez qu’ils ne comprennent pas le _sens_ des mots dans le prompt ou le token ; ils voient juste un motif qu’ils peuvent "compléter" avec leur prédiction suivante. Ils peuvent continuer à prédire la séquence jusqu’à ce qu’une intervention utilisateur ou une condition préétablie mette fin au processus. - -Vous voulez voir comment fonctionne la complétion basée sur un prompt ? Entrez le prompt ci-dessus dans l’Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) avec les paramètres par défaut. Le système est configuré pour traiter les prompts comme des demandes d’information – vous devriez donc voir une complétion qui correspond à ce contexte. - -Mais que se passe-t-il si l’utilisateur souhaite voir quelque chose de spécifique qui répond à certains critères ou objectifs ? C’est là que les LLMs _ajustés par instructions_ entrent en jeu. - -![Complétion chat Base LLM](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.fr.png) - -### Concept : LLMs ajustés par instructions - -Un [LLM ajusté par instructions](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) part du modèle de base et l’affine avec des exemples ou des paires entrée/sortie (par exemple, des "messages" à plusieurs tours) qui contiennent des instructions claires – et la réponse de l’IA tente de suivre ces instructions. - -Cela utilise des techniques comme l’apprentissage par renforcement avec retour humain (RLHF) qui peuvent entraîner le modèle à _suivre des instructions_ et _apprendre des retours_ pour produire des réponses mieux adaptées aux applications pratiques et plus pertinentes pour les objectifs des utilisateurs. - -Essayons : reprenez le prompt ci-dessus, mais modifiez maintenant le _message système_ pour fournir l’instruction suivante en contexte : - -> _Résumez le contenu fourni pour un élève de CE1. Limitez le résultat à un paragraphe avec 3 à 5 points clés._ - -Voyez comment le résultat est maintenant ajusté pour refléter l’objectif et le format souhaités ? Un enseignant peut directement utiliser cette réponse dans ses diapositives pour ce cours. - -![Complétion chat LLM ajusté par instructions](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.fr.png) - -## Pourquoi avons-nous besoin de l’ingénierie des prompts ? - -Maintenant que nous savons comment les prompts sont traités par les LLMs, parlons du _pourquoi_ de l’ingénierie des prompts. La réponse réside dans le fait que les LLMs actuels présentent plusieurs défis qui rendent plus difficile d’obtenir des _complétions fiables et cohérentes_ sans effort dans la construction et l’optimisation des prompts. Par exemple : - -1. **Les réponses des modèles sont stochastiques.** Le _même prompt_ produira probablement des réponses différentes selon les modèles ou versions de modèles. Et il peut même produire des résultats différents avec _le même modèle_ à différents moments. _Les techniques d’ingénierie des prompts peuvent nous aider à minimiser ces variations en fournissant de meilleures limites_. - -1. **Les modèles peuvent inventer des réponses.** Les modèles sont pré-entraînés avec des ensembles de données _grands mais finis_, ce qui signifie qu’ils manquent de connaissances sur des concepts hors de ce périmètre d’entraînement. En conséquence, ils peuvent produire des complétions inexactes, imaginaires ou directement contradictoires avec des faits connus. _Les techniques d’ingénierie des prompts aident les utilisateurs à identifier et atténuer ces fabrications, par exemple en demandant à l’IA des citations ou des raisonnements_. - -1. **Les capacités des modèles varient.** Les modèles plus récents ou les nouvelles générations ont des capacités plus riches mais apportent aussi des particularités et des compromis en termes de coût et de complexité. _L’ingénierie des prompts peut nous aider à développer des bonnes pratiques et des workflows qui masquent ces différences et s’adaptent aux exigences spécifiques des modèles de manière évolutive et fluide_. - -Voyons cela en action dans l’OpenAI ou Azure OpenAI Playground : - -- Utilisez le même prompt avec différents déploiements de LLM (par exemple, OpenAI, Azure OpenAI, Hugging Face) – avez-vous remarqué des variations ? -- Utilisez le même prompt plusieurs fois avec le _même_ déploiement de LLM (par exemple, Azure OpenAI playground) – comment ces variations diffèrent-elles ? - -### Exemple de fabrications - -Dans ce cours, nous utilisons le terme **"fabrication"** pour désigner le phénomène où les LLMs génèrent parfois des informations factuellement incorrectes en raison de limites dans leur entraînement ou d’autres contraintes. Vous avez peut-être aussi entendu parler de ce phénomène sous le nom d’_"hallucinations"_ dans des articles populaires ou des publications scientifiques. Cependant, nous recommandons fortement d’utiliser le terme _"fabrication"_ afin de ne pas anthropomorphiser ce comportement en lui attribuant une caractéristique humaine. Cela renforce également les [directives d’IA responsable](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) du point de vue terminologique, en éliminant des termes qui peuvent être considérés comme offensants ou non inclusifs dans certains contextes. - -Vous voulez comprendre comment fonctionnent les fabrications ? Pensez à un prompt qui demande à l’IA de générer du contenu sur un sujet inexistant (pour s’assurer qu’il ne figure pas dans le jeu de données d’entraînement). Par exemple – j’ai essayé ce prompt : -# Plan de cours : La Guerre Martienne de 2076 - -## Objectifs du cours -- Comprendre les causes principales de la Guerre Martienne de 2076. -- Analyser les événements clés et les stratégies militaires utilisées. -- Évaluer les conséquences politiques, sociales et technologiques du conflit. - -## Introduction (10 minutes) -- Présentation générale du contexte historique et géopolitique avant la guerre. -- Discussion rapide : Pourquoi Mars est-elle devenue un enjeu majeur en 2076 ? - -## Partie 1 : Les causes de la guerre (20 minutes) -- Ressources limitées et rivalités entre colonies martiennes. -- Influence des gouvernements terrestres et des corporations. -- [!NOTE] Expliquer brièvement les tensions économiques et politiques. - -## Partie 2 : Les événements majeurs (30 minutes) -- Déclenchement du conflit : l'incident de la base Alpha. -- Batailles importantes et innovations technologiques. -- Rôle des alliances et des trahisons. -- [!TIP] Utiliser une chronologie visuelle pour faciliter la compréhension. - -## Partie 3 : Conséquences de la guerre (20 minutes) -- Impact sur la colonisation martienne. -- Changements dans les relations Terre-Mars. -- Avancées technologiques issues du conflit. -- [!WARNING] Ne pas oublier les pertes humaines et les dégâts environnementaux. - -## Activité pratique (15 minutes) -- Étude de cas : analyse d'une bataille spécifique ou d'une décision stratégique. -- Discussion en groupe sur les leçons à tirer de la guerre. - -## Conclusion (5 minutes) -- Résumé des points clés. -- Questions ouvertes pour encourager la réflexion sur l'avenir de la colonisation spatiale. - -## Ressources supplémentaires -- Liste de lectures recommandées et de documentaires. -- Liens vers des archives et des témoignages de vétérans martiens. -Une recherche sur le web m’a montré qu’il existait des récits fictifs (par exemple, des séries télévisées ou des livres) sur des guerres martiennes – mais aucun en 2076. Le bon sens nous indique aussi que 2076 est _dans le futur_ et ne peut donc pas être associé à un événement réel. - -Que se passe-t-il lorsque nous lançons cette requête avec différents fournisseurs de LLM ? - -> **Réponse 1** : OpenAI Playground (GPT-35) - -![Réponse 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.fr.png) - -> **Réponse 2** : Azure OpenAI Playground (GPT-35) - -![Réponse 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.fr.png) - -> **Réponse 3** : : Hugging Face Chat Playground (LLama-2) - -![Réponse 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.fr.png) - -Comme prévu, chaque modèle (ou version de modèle) produit des réponses légèrement différentes grâce au comportement stochastique et aux variations de capacités des modèles. Par exemple, un modèle s’adresse à un public de niveau 4e tandis qu’un autre cible un lycéen. Mais les trois modèles ont généré des réponses qui pourraient convaincre un utilisateur non informé que l’événement était réel. - -Les techniques d’ingénierie de prompt comme le _metaprompting_ et la _configuration de la température_ peuvent réduire dans une certaine mesure les fabrications des modèles. De nouvelles _architectures_ d’ingénierie de prompt intègrent aussi de nouveaux outils et techniques de manière fluide dans le flux du prompt, pour atténuer ou réduire certains de ces effets. - -## Étude de cas : GitHub Copilot - -Terminons cette section en découvrant comment l’ingénierie de prompt est utilisée dans des solutions concrètes à travers une étude de cas : [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot est votre « programmeur assistant IA » – il transforme des prompts textuels en complétions de code et s’intègre dans votre environnement de développement (par exemple Visual Studio Code) pour une expérience utilisateur fluide. Comme documenté dans la série de blogs ci-dessous, la première version reposait sur le modèle OpenAI Codex – les ingénieurs ont rapidement compris la nécessité d’affiner le modèle et de développer de meilleures techniques d’ingénierie de prompt pour améliorer la qualité du code. En juillet, ils ont [lancé un modèle IA amélioré qui va au-delà de Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) pour des suggestions encore plus rapides. - -Lisez les articles dans l’ordre pour suivre leur parcours d’apprentissage. - -- **Mai 2023** | [GitHub Copilot s’améliore pour mieux comprendre votre code](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **Mai 2023** | [Dans les coulisses de GitHub : travailler avec les LLM derrière GitHub Copilot](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Juin 2023** | [Comment écrire de meilleurs prompts pour GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Juil. 2023** | [.. GitHub Copilot dépasse Codex avec un modèle IA amélioré](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Juil. 2023** | [Guide du développeur pour l’ingénierie de prompt et les LLM](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **Sep. 2023** | [Comment construire une application LLM d’entreprise : leçons tirées de GitHub Copilot](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -Vous pouvez aussi parcourir leur [blog d’ingénierie](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) pour d’autres articles comme [celui-ci](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) qui montre comment ces modèles et techniques sont _appliqués_ pour alimenter des applications concrètes. - ---- - - - -## Construction de prompt - -Nous avons vu pourquoi l’ingénierie de prompt est importante – comprenons maintenant comment les prompts sont _construits_ afin d’évaluer différentes techniques pour concevoir des prompts plus efficaces. - -### Prompt basique - -Commençons par le prompt basique : une entrée textuelle envoyée au modèle sans autre contexte. Voici un exemple – lorsque nous envoyons les premiers mots de l’hymne national américain à l’OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst), il _complète_ instantanément la réponse avec les lignes suivantes, illustrant le comportement de prédiction basique. - -| Prompt (Entrée) | Complétion (Sortie) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | On dirait que vous commencez les paroles de « The Star-Spangled Banner », l’hymne national des États-Unis. Les paroles complètes sont ... | - -### Prompt complexe - -Ajoutons maintenant du contexte et des instructions à ce prompt basique. L’[API Chat Completion](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) nous permet de construire un prompt complexe sous forme d’une collection de _messages_ avec : - -- des paires entrée/sortie reflétant l’entrée de l’_utilisateur_ et la réponse de l’_assistant_. -- un message système définissant le contexte du comportement ou de la personnalité de l’assistant. - -La requête prend maintenant la forme ci-dessous, où la _tokenisation_ capture efficacement les informations pertinentes du contexte et de la conversation. Modifier le contexte système peut avoir autant d’impact sur la qualité des complétions que les entrées utilisateur fournies. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Prompt d’instruction - -Dans les exemples ci-dessus, le prompt utilisateur était une simple requête textuelle pouvant être interprétée comme une demande d’information. Avec les prompts d’_instruction_, on peut utiliser ce texte pour spécifier une tâche plus en détail, offrant ainsi une meilleure orientation à l’IA. Voici un exemple : - -| Prompt (Entrée) | Complétion (Sortie) | Type d’instruction | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Écris une description de la guerre de Sécession | _a retourné un paragraphe simple_ | Simple | -| Écris une description de la guerre de Sécession. Fournis les dates clés et les événements, et décris leur importance | _a retourné un paragraphe suivi d’une liste de dates clés avec descriptions_ | Complexe | -| Écris une description de la guerre de Sécession en 1 paragraphe. Fournis 3 points clés avec les dates importantes et leur signification. Fournis 3 autres points clés avec les figures historiques majeures et leurs contributions. Retourne le résultat sous forme de fichier JSON | _retourne des détails plus complets dans une zone de texte, formatée en JSON que vous pouvez copier-coller dans un fichier et valider si besoin_ | Complexe. Formaté. | - -## Contenu principal - -Dans les exemples ci-dessus, le prompt restait assez ouvert, laissant le LLM décider quelle partie de son jeu de données pré-entraîné était pertinente. Avec le modèle de conception _contenu principal_, le texte d’entrée est divisé en deux parties : - -- une instruction (action) -- un contenu pertinent (qui influence l’action) - -Voici un exemple où l’instruction est de « résumer ceci en 2 phrases ». - -| Prompt (Entrée) | Complétion (Sortie) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter est la cinquième planète à partir du Soleil et la plus grande du système solaire. C’est une géante gazeuse dont la masse est un millième de celle du Soleil, mais deux fois et demie celle de toutes les autres planètes du système solaire réunies. Jupiter est l’un des objets les plus brillants visibles à l’œil nu dans le ciel nocturne, et est connue des civilisations anciennes depuis avant l’histoire enregistrée. Elle porte le nom du dieu romain Jupiter.[19] Vue depuis la Terre, Jupiter peut être assez brillante pour que sa lumière réfléchie projette des ombres visibles,[20] et est en moyenne le troisième objet naturel le plus brillant dans le ciel nocturne après la Lune et Vénus.
**Résumez ceci en 2 phrases courtes** | Jupiter, cinquième planète à partir du Soleil, est la plus grande du système solaire et est connue pour être l’un des objets les plus brillants du ciel nocturne. Nommée d’après le dieu romain Jupiter, c’est une géante gazeuse dont la masse est deux fois et demie celle de toutes les autres planètes du système solaire réunies. | - -Le segment de contenu principal peut être utilisé de différentes manières pour orienter des instructions plus efficaces : - -- **Exemples** – au lieu de dire explicitement au modèle ce qu’il doit faire, donnez-lui des exemples de ce qu’il doit produire et laissez-le en déduire le schéma. -- **Indices** – suivez l’instruction d’un « indice » qui prépare la complétion, guidant le modèle vers des réponses plus pertinentes. -- **Modèles** – ce sont des « recettes » répétables pour des prompts avec des espaces réservés (variables) qui peuvent être personnalisés avec des données pour des cas d’usage spécifiques. - -Explorons ces approches en pratique. - -### Utiliser des exemples - -C’est une méthode où vous utilisez le contenu principal pour « nourrir le modèle » avec des exemples de la sortie souhaitée pour une instruction donnée, et laissez-le en déduire le schéma de sortie attendu. Selon le nombre d’exemples fournis, on parle de zero-shot prompting, one-shot prompting, few-shot prompting, etc. - -Le prompt se compose maintenant de trois éléments : - -- une description de la tâche -- quelques exemples de la sortie souhaitée -- le début d’un nouvel exemple (qui devient une description implicite de la tâche) - -| Type d’apprentissage | Prompt (Entrée) | Complétion (Sortie) | -| :-------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| Zero-shot | « The Sun is Shining ». Traduire en espagnol | « El Sol está brillando ». | -| One-shot | « The Sun is Shining » => « El Sol está brillando ».
« It’s a Cold and Windy Day » => | « Es un día frío y ventoso ».| -| Few-shot | Le joueur a couru les bases => Baseball
Le joueur a fait un ace => Tennis
Le joueur a frappé un six => Cricket
Le joueur a réussi un dunk => | Basketball | -| | | | - -Notez que nous avons dû fournir une instruction explicite (« Traduire en espagnol ») dans le zero-shot prompting, mais elle est déduite dans l’exemple one-shot. L’exemple few-shot montre comment ajouter plus d’exemples permet aux modèles de faire des inférences plus précises sans instructions supplémentaires. - -### Indices de prompt - -Une autre technique pour utiliser le contenu principal est de fournir des _indices_ plutôt que des exemples. Dans ce cas, on donne au modèle un coup de pouce en _commençant_ par un extrait qui reflète le format de réponse souhaité. Le modèle « saisit l’indice » et continue dans cette voie. - -| Nombre d’indices | Prompt (Entrée) | Complétion (Sortie) | -| :--------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Jupiter est la cinquième planète à partir du Soleil et la plus grande du système solaire. C’est une géante gazeuse dont la masse est un millième de celle du Soleil, mais deux fois et demie celle de toutes les autres planètes du système solaire réunies. Jupiter est l’un des objets les plus brillants visibles à l’œil nu dans le ciel nocturne, et est connue des civilisations anciennes depuis avant l’histoire enregistrée. - -**Résumé** | Jupiter est la plus grande planète de notre système solaire et la cinquième à partir du Soleil. C’est une géante gazeuse dont la masse représente 1/1000e de celle du Soleil, mais elle est plus lourde que toutes les autres planètes réunies. Les civilisations anciennes connaissaient Jupiter depuis longtemps, et elle est facilement visible dans le ciel nocturne. | -| 1 | Jupiter est la cinquième planète à partir du Soleil et la plus grande du système solaire. C’est une géante gazeuse dont la masse est un millième de celle du Soleil, mais deux fois et demie celle de toutes les autres planètes du système solaire réunies. Jupiter est l’un des objets les plus brillants visibles à l’œil nu dans le ciel nocturne, et elle est connue des civilisations anciennes depuis avant l’histoire écrite.
**Résumé**
Ce que nous avons appris, c’est que Jupiter | est la cinquième planète à partir du Soleil et la plus grande du système solaire. C’est une géante gazeuse dont la masse est un millième de celle du Soleil, mais deux fois et demie celle de toutes les autres planètes réunies. Elle est facilement visible à l’œil nu et connue depuis l’Antiquité. | -| 2 | Jupiter est la cinquième planète à partir du Soleil et la plus grande du système solaire. C’est une géante gazeuse dont la masse est un millième de celle du Soleil, mais deux fois et demie celle de toutes les autres planètes du système solaire réunies. Jupiter est l’un des objets les plus brillants visibles à l’œil nu dans le ciel nocturne, et elle est connue des civilisations anciennes depuis avant l’histoire écrite.
**Résumé**
Top 3 des faits appris : | 1. Jupiter est la cinquième planète à partir du Soleil et la plus grande du système solaire.
2. C’est une géante gazeuse dont la masse est un millième de celle du Soleil...
3. Jupiter est visible à l’œil nu depuis l’Antiquité ... | -| | | | - -### Modèles de prompt - -Un modèle de prompt est une _recette pré-définie pour un prompt_ qui peut être stockée et réutilisée selon les besoins, afin d’offrir des expériences utilisateur plus cohérentes à grande échelle. Dans sa forme la plus simple, il s’agit simplement d’une collection d’exemples de prompt comme [celui-ci d’OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) qui fournit à la fois les composants interactifs du prompt (messages utilisateur et système) et le format de requête piloté par l’API – pour faciliter la réutilisation. - -Dans une forme plus complexe, comme [cet exemple de LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst), il contient des _espaces réservés_ qui peuvent être remplacés par des données provenant de diverses sources (saisie utilisateur, contexte système, sources de données externes, etc.) pour générer un prompt de manière dynamique. Cela nous permet de créer une bibliothèque de prompts réutilisables pouvant être utilisés pour offrir des expériences utilisateur cohérentes **de manière programmatique** à grande échelle. - -Enfin, la vraie valeur des modèles réside dans la capacité à créer et publier des _bibliothèques de prompts_ pour des domaines d’application spécifiques – où le modèle de prompt est alors _optimisé_ pour refléter un contexte ou des exemples propres à l’application, rendant les réponses plus pertinentes et précises pour le public ciblé. Le dépôt [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) est un excellent exemple de cette approche, proposant une bibliothèque de prompts pour le domaine de l’éducation avec un accent sur des objectifs clés comme la planification de cours, la conception de programmes, le tutorat, etc. - -## Contenu d’accompagnement - -Si l’on considère la construction d’un prompt comme ayant une instruction (tâche) et un contenu principal (cible), alors le _contenu secondaire_ est comme un contexte supplémentaire que l’on fournit pour **influencer la sortie d’une certaine manière**. Cela peut être des paramètres d’ajustement, des instructions de formatage, des taxonomies de sujets, etc., qui aident le modèle à _adapter_ sa réponse pour mieux correspondre aux objectifs ou attentes de l’utilisateur. - -Par exemple : Étant donné un catalogue de cours avec des métadonnées détaillées (nom, description, niveau, tags, instructeur, etc.) sur tous les cours disponibles dans le programme : - -- on peut définir une instruction pour « résumer le catalogue des cours pour l’automne 2023 » -- on peut utiliser le contenu principal pour fournir quelques exemples du résultat attendu -- on peut utiliser le contenu secondaire pour identifier les 5 tags les plus importants. - -Le modèle peut alors fournir un résumé dans le format montré par les exemples – mais si un résultat comporte plusieurs tags, il peut prioriser les 5 tags identifiés dans le contenu secondaire. - ---- - - - -## Bonnes pratiques pour les prompts - -Maintenant que nous savons comment les prompts peuvent être _construits_, nous pouvons commencer à réfléchir à la manière de les _concevoir_ pour refléter les meilleures pratiques. On peut envisager cela en deux parties – adopter le bon _état d’esprit_ et appliquer les bonnes _techniques_. - -### État d’esprit en ingénierie de prompt - -L’ingénierie de prompt est un processus d’essais et erreurs, gardez donc en tête trois grands facteurs directeurs : - -1. **La compréhension du domaine est essentielle.** La précision et la pertinence des réponses dépendent du _domaine_ dans lequel l’application ou l’utilisateur évolue. Appliquez votre intuition et votre expertise métier pour **personnaliser davantage les techniques**. Par exemple, définissez des _personnalités spécifiques au domaine_ dans vos prompts système, ou utilisez des _modèles spécifiques au domaine_ dans vos prompts utilisateur. Fournissez un contenu secondaire reflétant des contextes propres au domaine, ou utilisez des _indices et exemples spécifiques au domaine_ pour orienter le modèle vers des usages familiers. - -2. **La compréhension du modèle est importante.** Nous savons que les modèles sont stochastiques par nature. Mais les implémentations peuvent aussi varier selon les jeux de données d’entraînement utilisés (connaissances pré-entraînées), les capacités offertes (via API ou SDK) et le type de contenu pour lequel ils sont optimisés (code, images, texte, etc.). Comprenez les forces et limites du modèle que vous utilisez, et servez-vous de ces connaissances pour _prioriser les tâches_ ou construire des _modèles personnalisés_ optimisés pour les capacités du modèle. - -3. **L’itération et la validation comptent.** Les modèles évoluent rapidement, tout comme les techniques d’ingénierie de prompt. En tant qu’expert du domaine, vous pouvez avoir d’autres contextes ou critères propres à _votre_ application spécifique, qui ne s’appliquent pas forcément à la communauté plus large. Utilisez les outils et techniques d’ingénierie de prompt pour « démarrer » la construction, puis itérez et validez les résultats avec votre propre intuition et expertise métier. Enregistrez vos observations et créez une **base de connaissances** (par exemple, des bibliothèques de prompts) qui pourra servir de référence à d’autres pour accélérer les itérations futures. - -## Bonnes pratiques - -Voyons maintenant quelques bonnes pratiques courantes recommandées par les praticiens d’[OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) et d’[Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst). - -| Quoi | Pourquoi | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Évaluer les modèles récents | Les nouvelles générations de modèles ont souvent des fonctionnalités et une qualité améliorées – mais peuvent aussi engendrer des coûts plus élevés. Évaluez leur impact avant de décider d’une migration. | -| Séparer instructions et contexte | Vérifiez si votre modèle/fournisseur définit des _délimiteurs_ pour distinguer clairement instructions, contenu principal et secondaire. Cela aide les modèles à mieux pondérer les tokens. | -| Être précis et clair | Donnez plus de détails sur le contexte, le résultat attendu, la longueur, le format, le style, etc. Cela améliore la qualité et la cohérence des réponses. Capturez ces recettes dans des modèles réutilisables. | -| Être descriptif, utiliser des exemples | Les modèles répondent souvent mieux à une approche « montrer pour expliquer ». Commencez par un prompt `zero-shot` (instruction sans exemple), puis affinez avec un `few-shot` en fournissant quelques exemples du résultat attendu. Utilisez des analogies. | -| Utiliser des indices pour amorcer les réponses | Orientez le modèle vers un résultat souhaité en lui fournissant des mots ou phrases d’amorce qu’il pourra utiliser comme point de départ. | -| Insister | Parfois, il faut répéter les instructions au modèle. Donnez des instructions avant et après le contenu principal, utilisez une instruction et un indice, etc. Itérez et validez pour voir ce qui fonctionne. | -| L’ordre compte | L’ordre dans lequel vous présentez l’information au modèle peut influencer la sortie, même dans les exemples d’apprentissage, à cause du biais de récence. Essayez différentes options pour trouver ce qui marche le mieux. | -| Donner une « porte de sortie » | Fournissez au modèle une réponse de secours qu’il peut utiliser s’il ne peut pas accomplir la tâche. Cela réduit les risques de réponses fausses ou inventées. | -| | | - -Comme pour toute bonne pratique, gardez à l’esprit que _votre expérience peut varier_ selon le modèle, la tâche et le domaine. Utilisez ces conseils comme point de départ, puis itérez pour trouver ce qui vous convient le mieux. Réévaluez constamment votre processus d’ingénierie de prompt à mesure que de nouveaux modèles et outils apparaissent, en mettant l’accent sur la scalabilité du processus et la qualité des réponses. - - - -## Exercice - -Félicitations ! Vous êtes arrivé à la fin de la leçon ! Il est temps de mettre en pratique certains de ces concepts et techniques avec des exemples concrets ! - -Pour notre exercice, nous utiliserons un Jupyter Notebook avec des exercices que vous pouvez compléter de manière interactive. Vous pouvez aussi étendre le Notebook avec vos propres cellules Markdown et Code pour explorer des idées et techniques par vous-même. - -### Pour commencer, faites un fork du dépôt, puis - -- (Recommandé) Lancez GitHub Codespaces -- (Sinon) Clonez le dépôt sur votre appareil local et utilisez-le avec Docker Desktop -- (Sinon) Ouvrez le Notebook avec votre environnement d’exécution préféré. - -### Ensuite, configurez vos variables d’environnement - -- Copiez le fichier `.env.copy` à la racine du dépôt en `.env` et remplissez les valeurs `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` et `AZURE_OPENAI_DEPLOYMENT`. Revenez à la [section Learning Sandbox](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) pour apprendre comment faire. - -### Puis, ouvrez le Jupyter Notebook - -- Sélectionnez le noyau d’exécution. Si vous utilisez les options 1 ou 2, choisissez simplement le noyau Python 3.10.x par défaut fourni par le conteneur de développement. - -Vous êtes prêt à exécuter les exercices. Notez qu’il n’y a pas de réponses _justes ou fausses_ ici – il s’agit d’explorer les options par essais et erreurs et de développer votre intuition sur ce qui fonctionne pour un modèle et un domaine d’application donnés. - -_Pour cette raison, il n’y a pas de segments de solution de code dans cette leçon. À la place, le Notebook contiendra des cellules Markdown intitulées « Ma solution : » qui montrent un exemple de sortie à titre de référence._ - - - -## Vérification des connaissances - -Lequel des prompts suivants est un bon prompt respectant des bonnes pratiques raisonnables ? - -1. Montre-moi une image d’une voiture rouge -2. Montre-moi une image d’une voiture rouge de marque Volvo et modèle XC90 garée près d’une falaise au coucher du soleil -3. Montre-moi une image d’une voiture rouge de marque Volvo et modèle XC90 - -Réponse : 2, c’est le meilleur prompt car il donne des détails sur le « quoi » et entre dans les spécificités (pas n’importe quelle voiture, mais une marque et un modèle précis) et décrit aussi le cadre général. 3 est le deuxième meilleur car il contient aussi beaucoup de description. - -## 🚀 Défi - -Essayez d’utiliser la technique de « l’indice » avec le prompt : Complétez la phrase « Montre-moi une image d’une voiture rouge de marque Volvo et ». Que répond-il, et comment l’amélioreriez-vous ? - -## Bravo ! Continuez votre apprentissage - -Vous souhaitez en savoir plus sur les différents concepts d’ingénierie de prompt ? Rendez-vous sur la [page d’apprentissage continu](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) pour découvrir d’autres excellentes ressources sur ce sujet. - -Passez à la leçon 5 où nous aborderons les [techniques avancées de prompting](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) ! - -**Avertissement** : -Ce document a été traduit à l’aide du service de traduction automatique [Co-op Translator](https://github.com/Azure/co-op-translator). Bien que nous nous efforcions d’assurer l’exactitude, veuillez noter que les traductions automatiques peuvent contenir des erreurs ou des inexactitudes. Le document original dans sa langue d’origine doit être considéré comme la source faisant foi. Pour les informations critiques, une traduction professionnelle réalisée par un humain est recommandée. Nous déclinons toute responsabilité en cas de malentendus ou de mauvaises interprétations résultant de l’utilisation de cette traduction. \ No newline at end of file + + + + + + + diff --git a/translations/fr/09-building-image-applications/README.md b/translations/fr/09-building-image-applications/README.md index 56b0e1636..99455d0c1 100644 --- a/translations/fr/09-building-image-applications/README.md +++ b/translations/fr/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# Créer des applications de génération d’images - -[![Créer des applications de génération d’images](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.fr.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -Les LLM ne servent pas uniquement à générer du texte. Il est également possible de créer des images à partir de descriptions textuelles. Disposer d’images comme modalité peut être très utile dans de nombreux domaines, de la MedTech à l’architecture, en passant par le tourisme, le développement de jeux, et bien plus encore. Dans ce chapitre, nous allons explorer les deux modèles de génération d’images les plus populaires : DALL-E et Midjourney. - -## Introduction - -Dans cette leçon, nous aborderons : - -- La génération d’images et son utilité. -- DALL-E et Midjourney : ce qu’ils sont et comment ils fonctionnent. -- Comment créer une application de génération d’images. - -## Objectifs d’apprentissage - -À l’issue de cette leçon, vous serez capable de : - -- Créer une application de génération d’images. -- Définir les limites de votre application avec des méta-prompts. -- Travailler avec DALL-E et Midjourney. - -## Pourquoi créer une application de génération d’images ? - -Les applications de génération d’images sont un excellent moyen d’explorer les capacités de l’IA générative. Elles peuvent être utilisées, par exemple, pour : - -- **L’édition et la synthèse d’images**. Vous pouvez générer des images pour divers cas d’usage, comme l’édition ou la synthèse d’images. - -- **Appliquées à différents secteurs**. Elles peuvent aussi servir à créer des images pour divers secteurs tels que la MedTech, le tourisme, le développement de jeux, et plus encore. - -## Scénario : Edu4All - -Dans le cadre de cette leçon, nous continuerons à travailler avec notre startup Edu4All. Les étudiants créeront des images pour leurs évaluations ; le choix des images leur revient, mais il pourrait s’agir d’illustrations pour leur propre conte, de la création d’un nouveau personnage pour leur histoire, ou d’une aide à la visualisation de leurs idées et concepts. - -Voici ce que les étudiants d’Edu4All pourraient générer, par exemple, s’ils travaillent en classe sur des monuments : - -![Edu4All startup, classe sur les monuments, Tour Eiffel](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.fr.png) - -avec un prompt comme - -> "Chien à côté de la Tour Eiffel au lever du soleil" - -## Qu’est-ce que DALL-E et Midjourney ? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) et [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) sont deux des modèles de génération d’images les plus populaires, ils permettent d’utiliser des prompts pour créer des images. - -### DALL-E - -Commençons par DALL-E, un modèle d’IA générative qui crée des images à partir de descriptions textuelles. - -> [DALL-E est une combinaison de deux modèles, CLIP et diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP** est un modèle qui génère des embeddings, c’est-à-dire des représentations numériques des données, à partir d’images et de textes. - -- **Diffused attention** est un modèle qui génère des images à partir de ces embeddings. DALL-E est entraîné sur un ensemble de données d’images et de textes et peut être utilisé pour créer des images à partir de descriptions textuelles. Par exemple, DALL-E peut générer une image d’un chat avec un chapeau, ou d’un chien avec une crête. - -### Midjourney - -Midjourney fonctionne de manière similaire à DALL-E, il génère des images à partir de prompts textuels. Midjourney peut aussi être utilisé pour créer des images avec des prompts comme « un chat avec un chapeau » ou « un chien avec une crête ». - -![Image générée par Midjourney, pigeon mécanique](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Crédit image Wikipedia, image générée par Midjourney_ - -## Comment fonctionnent DALL-E et Midjourney - -Commençons par [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). DALL-E est un modèle d’IA générative basé sur l’architecture transformer avec un _transformer autorégressif_. - -Un _transformer autorégressif_ définit comment un modèle génère des images à partir de descriptions textuelles : il génère un pixel à la fois, puis utilise les pixels générés pour créer le pixel suivant. Le processus passe par plusieurs couches dans un réseau de neurones, jusqu’à ce que l’image soit complète. - -Grâce à ce procédé, DALL-E contrôle les attributs, objets, caractéristiques, et plus encore dans l’image qu’il génère. Cependant, DALL-E 2 et 3 offrent un contrôle encore plus précis sur l’image générée. - -## Créer votre première application de génération d’images - -Alors, que faut-il pour créer une application de génération d’images ? Vous aurez besoin des bibliothèques suivantes : - -- **python-dotenv**, il est fortement recommandé d’utiliser cette bibliothèque pour garder vos secrets dans un fichier _.env_ séparé du code. -- **openai**, cette bibliothèque vous permettra d’interagir avec l’API OpenAI. -- **pillow**, pour manipuler les images en Python. -- **requests**, pour faciliter les requêtes HTTP. - -1. Créez un fichier _.env_ avec le contenu suivant : - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Vous trouverez ces informations dans le portail Azure pour votre ressource, dans la section « Keys and Endpoint ». - -1. Rassemblez les bibliothèques ci-dessus dans un fichier nommé _requirements.txt_ comme suit : - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. Ensuite, créez un environnement virtuel et installez les bibliothèques : - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Sous Windows, utilisez les commandes suivantes pour créer et activer votre environnement virtuel : - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. Ajoutez le code suivant dans un fichier nommé _app.py_ : - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Expliquons ce code : - -- Tout d’abord, nous importons les bibliothèques nécessaires, y compris OpenAI, dotenv, requests et Pillow. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Ensuite, nous chargeons les variables d’environnement depuis le fichier _.env_. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- Puis, nous configurons l’endpoint, la clé pour l’API OpenAI, la version et le type. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- Ensuite, nous générons l’image : - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - Le code ci-dessus répond avec un objet JSON contenant l’URL de l’image générée. Nous pouvons utiliser cette URL pour télécharger l’image et la sauvegarder dans un fichier. - -- Enfin, nous ouvrons l’image et utilisons le visualiseur d’images standard pour l’afficher : - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Plus de détails sur la génération d’image - -Examinons plus en détail le code qui génère l’image : - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** est le texte utilisé pour générer l’image. Ici, nous utilisons le prompt « Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils ». -- **size** correspond à la taille de l’image générée. Ici, nous créons une image de 1024x1024 pixels. -- **n** est le nombre d’images générées. Ici, nous en générons deux. -- **temperature** est un paramètre qui contrôle l’aléa dans la sortie d’un modèle d’IA générative. La température varie entre 0 et 1, où 0 signifie que la sortie est déterministe et 1 que la sortie est aléatoire. La valeur par défaut est 0,7. - -Il y a encore plus de choses que vous pouvez faire avec les images, que nous aborderons dans la section suivante. - -## Capacités supplémentaires de la génération d’images - -Vous avez vu jusqu’ici comment générer une image avec quelques lignes en Python. Cependant, il existe d’autres possibilités avec les images. - -Vous pouvez également : - -- **Effectuer des modifications**. En fournissant une image existante, un masque et un prompt, vous pouvez modifier une image. Par exemple, vous pouvez ajouter un élément à une partie de l’image. Imaginez notre image du lapin, vous pouvez lui ajouter un chapeau. Pour cela, vous fournissez l’image, un masque (identifiant la zone à modifier) et un prompt textuel indiquant ce qui doit être fait. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - L’image de base ne contiendrait que le lapin, mais l’image finale aurait le chapeau sur le lapin. - -- **Créer des variations**. L’idée est de prendre une image existante et de demander la création de variations. Pour créer une variation, vous fournissez une image, un prompt textuel et un code comme suit : - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Note : cette fonctionnalité est uniquement prise en charge par OpenAI. - -## Température - -La température est un paramètre qui contrôle l’aléa dans la sortie d’un modèle d’IA générative. La température varie entre 0 et 1, où 0 signifie que la sortie est déterministe et 1 que la sortie est aléatoire. La valeur par défaut est 0,7. - -Voyons un exemple de fonctionnement de la température, en lançant ce prompt deux fois : - -> Prompt : "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils" - -![Lapin sur un cheval tenant une sucette, version 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.fr.png) - -Maintenant, lançons le même prompt une seconde fois pour voir que nous n’obtiendrons pas la même image deux fois : - -![Image générée d’un lapin sur un cheval](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.fr.png) - -Comme vous pouvez le voir, les images sont similaires, mais pas identiques. Essayons de changer la valeur de la température à 0,1 et observons ce qui se passe : - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Modifier la température - -Essayons donc de rendre la réponse plus déterministe. Nous avons pu constater avec les deux images générées que la première montre un lapin et la seconde un cheval, donc les images varient beaucoup. - -Modifions donc notre code pour fixer la température à 0, comme ceci : - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Lorsque vous exécutez ce code, vous obtenez ces deux images : - -- ![Température 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.fr.png) -- ![Température 0, v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.fr.png) - -Ici, vous pouvez clairement voir que les images se ressemblent beaucoup plus. - -## Comment définir les limites de votre application avec des méta-prompts - -Avec notre démo, nous pouvons déjà générer des images pour nos clients. Cependant, il est nécessaire de définir certaines limites pour notre application. - -Par exemple, nous ne voulons pas générer d’images inappropriées pour le travail ou pour les enfants. - -Nous pouvons faire cela avec des _méta-prompts_. Les méta-prompts sont des prompts textuels utilisés pour contrôler la sortie d’un modèle d’IA générative. Par exemple, nous pouvons utiliser des méta-prompts pour garantir que les images générées sont sûres pour le travail ou adaptées aux enfants. - -### Comment ça fonctionne ? - -Alors, comment fonctionnent les méta-prompts ? - -Les méta-prompts sont des prompts textuels placés avant le prompt principal, utilisés pour contrôler la sortie du modèle. Ils sont intégrés dans les applications pour encadrer la sortie du modèle, en encapsulant à la fois le prompt principal et le méta-prompt dans un seul prompt textuel. - -Un exemple de méta-prompt serait le suivant : - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Voyons maintenant comment utiliser les méta-prompts dans notre démo. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -À partir du prompt ci-dessus, vous pouvez voir que toutes les images générées prennent en compte le méta-prompt. - -## Exercice – donnons aux étudiants les moyens d’agir - -Nous avons présenté Edu4All au début de cette leçon. Il est maintenant temps de permettre aux étudiants de générer des images pour leurs évaluations. - -Les étudiants créeront des images pour leurs évaluations contenant des monuments, le choix des monuments leur revenant. Ils sont invités à faire preuve de créativité pour placer ces monuments dans différents contextes. - -## Solution - -Voici une solution possible : - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Bravo ! Continuez à apprendre - -Après avoir terminé cette leçon, consultez notre [collection d’apprentissage sur l’IA générative](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) pour continuer à approfondir vos connaissances en IA générative ! - -Rendez-vous à la leçon 10 où nous verrons comment [créer des applications IA avec peu de code](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**Avertissement** : -Ce document a été traduit à l’aide du service de traduction automatique [Co-op Translator](https://github.com/Azure/co-op-translator). Bien que nous nous efforcions d’assurer l’exactitude, veuillez noter que les traductions automatiques peuvent contenir des erreurs ou des inexactitudes. Le document original dans sa langue d’origine doit être considéré comme la source faisant foi. Pour les informations critiques, une traduction professionnelle réalisée par un humain est recommandée. Nous déclinons toute responsabilité en cas de malentendus ou de mauvaises interprétations résultant de l’utilisation de cette traduction. \ No newline at end of file + + + + diff --git a/translations/fr/12-designing-ux-for-ai-applications/README.md b/translations/fr/12-designing-ux-for-ai-applications/README.md index 4c0fab554..ab020d299 100644 --- a/translations/fr/12-designing-ux-for-ai-applications/README.md +++ b/translations/fr/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# Concevoir l’UX pour les applications d’IA - -[![Concevoir l’UX pour les applications d’IA](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.fr.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Cliquez sur l’image ci-dessus pour voir la vidéo de cette leçon)_ - -L’expérience utilisateur est un aspect très important dans la création d’applications. Les utilisateurs doivent pouvoir utiliser votre application de manière efficace pour accomplir leurs tâches. Être efficace, c’est une chose, mais il faut aussi concevoir des applications accessibles à tous, pour les rendre _accessibles_. Ce chapitre se concentre sur cet aspect afin que vous puissiez concevoir une application que les gens peuvent et veulent utiliser. - -## Introduction - -L’expérience utilisateur désigne la manière dont un utilisateur interagit avec un produit ou service spécifique, qu’il s’agisse d’un système, d’un outil ou d’un design. Lors du développement d’applications d’IA, les développeurs ne se contentent pas de garantir une expérience utilisateur efficace, ils veillent aussi à ce qu’elle soit éthique. Dans cette leçon, nous abordons comment créer des applications d’Intelligence Artificielle (IA) qui répondent aux besoins des utilisateurs. - -La leçon couvrira les domaines suivants : - -- Introduction à l’expérience utilisateur et compréhension des besoins des utilisateurs -- Concevoir des applications d’IA pour la confiance et la transparence -- Concevoir des applications d’IA pour la collaboration et les retours - -## Objectifs d’apprentissage - -À l’issue de cette leçon, vous serez capable de : - -- Comprendre comment créer des applications d’IA qui répondent aux besoins des utilisateurs. -- Concevoir des applications d’IA qui favorisent la confiance et la collaboration. - -### Prérequis - -Prenez un moment pour en apprendre davantage sur [l’expérience utilisateur et le design thinking.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Introduction à l’expérience utilisateur et compréhension des besoins des utilisateurs - -Dans notre startup fictive dédiée à l’éducation, nous avons deux utilisateurs principaux : les enseignants et les étudiants. Chacun a des besoins spécifiques. Une conception centrée sur l’utilisateur place ce dernier au cœur du processus, garantissant que les produits sont pertinents et bénéfiques pour ceux à qui ils sont destinés. - -L’application doit être **utile, fiable, accessible et agréable** pour offrir une bonne expérience utilisateur. - -### Utilisabilité - -Être utile signifie que l’application propose des fonctionnalités adaptées à son objectif, comme automatiser la correction ou générer des fiches de révision. Une application qui automatise la correction doit pouvoir attribuer des notes précises et efficaces aux travaux des étudiants selon des critères prédéfinis. De même, une application qui crée des fiches de révision doit générer des questions pertinentes et variées à partir de ses données. - -### Fiabilité - -Être fiable signifie que l’application peut accomplir sa tâche de manière constante et sans erreur. Cependant, l’IA, tout comme les humains, n’est pas parfaite et peut commettre des erreurs. Les applications peuvent rencontrer des erreurs ou des situations inattendues nécessitant une intervention ou une correction humaine. Comment gérez-vous ces erreurs ? Dans la dernière partie de cette leçon, nous verrons comment les systèmes et applications d’IA sont conçus pour la collaboration et les retours. - -### Accessibilité - -Être accessible signifie étendre l’expérience utilisateur à des personnes aux capacités diverses, y compris celles en situation de handicap, afin que personne ne soit exclu. En suivant les directives et principes d’accessibilité, les solutions d’IA deviennent plus inclusives, utilisables et bénéfiques pour tous. - -### Agréable - -Être agréable signifie que l’application est plaisante à utiliser. Une expérience utilisateur attrayante peut avoir un impact positif, incitant l’utilisateur à revenir sur l’application et augmentant ainsi les revenus. - -![image illustrant les considérations UX dans l’IA](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.fr.png) - -Tous les défis ne peuvent pas être résolus par l’IA. L’IA vient compléter votre expérience utilisateur, que ce soit en automatisant des tâches manuelles ou en personnalisant les expériences. - -## Concevoir des applications d’IA pour la confiance et la transparence - -La confiance est essentielle dans la conception d’applications d’IA. Elle garantit que l’utilisateur est sûr que l’application accomplira la tâche, fournira des résultats cohérents et que ces résultats correspondent à ses besoins. Un risque dans ce domaine est la méfiance ou la confiance excessive. La méfiance survient lorsque l’utilisateur a peu ou pas confiance dans un système d’IA, ce qui peut le conduire à rejeter votre application. La confiance excessive se produit lorsque l’utilisateur surestime les capacités de l’IA, ce qui peut l’amener à lui faire trop confiance. Par exemple, dans le cas d’un système de correction automatisé, une confiance excessive pourrait pousser l’enseignant à ne pas vérifier certains devoirs, ce qui pourrait entraîner des notes injustes ou inexactes, ou des occasions manquées de feedback et d’amélioration. - -Deux moyens de placer la confiance au cœur de la conception sont l’explicabilité et le contrôle. - -### Explicabilité - -Lorsque l’IA aide à prendre des décisions, comme transmettre des connaissances aux générations futures, il est crucial que les enseignants et les parents comprennent comment ces décisions sont prises. C’est l’explicabilité : comprendre comment les applications d’IA prennent leurs décisions. Concevoir pour l’explicabilité inclut l’ajout d’exemples concrets de ce que l’application peut faire. Par exemple, au lieu de « Commencez avec AI teacher », le système peut dire : « Résumez vos notes pour une révision plus facile grâce à l’IA. » - -![page d’accueil d’une application illustrant clairement l’explicabilité dans les applications d’IA](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.fr.png) - -Un autre exemple concerne l’utilisation des données personnelles et utilisateur par l’IA. Par exemple, un utilisateur avec le profil étudiant peut avoir des limitations liées à ce profil. L’IA ne pourra peut-être pas révéler les réponses aux questions, mais pourra guider l’utilisateur pour réfléchir à la manière de résoudre un problème. - -![IA répondant aux questions selon le profil utilisateur](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.fr.png) - -Un dernier point clé de l’explicabilité est la simplification des explications. Les étudiants et enseignants ne sont pas forcément experts en IA, il faut donc que les explications sur ce que l’application peut ou ne peut pas faire soient simples et faciles à comprendre. - -![explications simplifiées sur les capacités de l’IA](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.fr.png) - -### Contrôle - -L’IA générative crée une collaboration entre l’IA et l’utilisateur, où par exemple l’utilisateur peut modifier les requêtes pour obtenir différents résultats. De plus, une fois un résultat généré, l’utilisateur doit pouvoir le modifier, ce qui lui donne un sentiment de contrôle. Par exemple, avec Bing, vous pouvez adapter votre requête selon le format, le ton et la longueur. Vous pouvez aussi apporter des modifications au résultat comme illustré ci-dessous : - -![Résultats de recherche Bing avec options pour modifier la requête et le résultat](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.fr.png) - -Une autre fonctionnalité de Bing qui permet à l’utilisateur de garder le contrôle est la possibilité de choisir d’autoriser ou non l’utilisation des données par l’IA. Dans une application scolaire, un étudiant pourrait vouloir utiliser ses notes ainsi que les ressources des enseignants comme matériel de révision. - -![Résultats de recherche Bing avec options pour modifier la requête et le résultat](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.fr.png) - -> Lors de la conception d’applications d’IA, l’intentionnalité est essentielle pour éviter que les utilisateurs ne fassent une confiance excessive en fixant des attentes irréalistes quant aux capacités de l’IA. Une façon d’y parvenir est de créer une certaine friction entre les requêtes et les résultats, en rappelant à l’utilisateur qu’il s’agit d’une IA et non d’un être humain. - -## Concevoir des applications d’IA pour la collaboration et les retours - -Comme mentionné précédemment, l’IA générative crée une collaboration entre l’utilisateur et l’IA. La plupart du temps, l’utilisateur saisit une requête et l’IA génère un résultat. Que se passe-t-il si le résultat est incorrect ? Comment l’application gère-t-elle les erreurs ? L’IA rejette-t-elle la faute sur l’utilisateur ou prend-elle le temps d’expliquer l’erreur ? - -Les applications d’IA doivent être conçues pour recevoir et fournir des retours. Cela aide non seulement à améliorer le système d’IA, mais aussi à renforcer la confiance des utilisateurs. Une boucle de feedback doit être intégrée dans la conception, par exemple un simple pouce levé ou baissé sur le résultat. - -Une autre manière de gérer cela est de communiquer clairement les capacités et limites du système. Lorsqu’un utilisateur fait une demande dépassant les capacités de l’IA, il doit aussi y avoir un moyen de gérer cette situation, comme illustré ci-dessous. - -![Donner des retours et gérer les erreurs](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.fr.png) - -Les erreurs système sont courantes dans les applications où l’utilisateur peut avoir besoin d’aide pour des informations hors du champ de l’IA, ou lorsque l’application limite le nombre de questions ou de sujets pour lesquels un résumé peut être généré. Par exemple, une application d’IA entraînée sur un nombre limité de matières, comme l’Histoire et les Mathématiques, ne pourra pas répondre à des questions sur la Géographie. Pour pallier cela, le système d’IA peut répondre : « Désolé, notre produit a été entraîné avec des données sur les matières suivantes..., je ne peux pas répondre à la question que vous avez posée. » - -Les applications d’IA ne sont pas parfaites, elles feront donc des erreurs. Lors de la conception, vous devez prévoir un espace pour les retours des utilisateurs et la gestion des erreurs de manière simple et facilement compréhensible. - -## Exercice - -Prenez n’importe quelle application d’IA que vous avez développée jusqu’à présent et envisagez d’implémenter les étapes suivantes dans votre application : - -- **Agréable :** Réfléchissez à comment rendre votre application plus plaisante. Ajoutez-vous des explications partout ? Encouragez-vous l’utilisateur à explorer ? Comment formulez-vous vos messages d’erreur ? - -- **Utilisabilité :** Si vous créez une application web, assurez-vous qu’elle soit navigable à la fois à la souris et au clavier. - -- **Confiance et transparence :** Ne faites pas une confiance aveugle à l’IA et à ses résultats. Réfléchissez à comment intégrer un humain dans le processus pour vérifier les résultats. Envisagez et mettez en œuvre d’autres moyens pour instaurer confiance et transparence. - -- **Contrôle :** Donnez à l’utilisateur le contrôle sur les données qu’il fournit à l’application. Mettez en place un moyen pour que l’utilisateur puisse choisir d’autoriser ou non la collecte de données dans l’application d’IA. - -## Poursuivez votre apprentissage ! - -Après avoir terminé cette leçon, consultez notre [collection d’apprentissage sur l’IA générative](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) pour continuer à approfondir vos connaissances sur l’IA générative ! - -Rendez-vous à la leçon 13, où nous verrons comment [sécuriser les applications d’IA](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) ! - -**Avertissement** : -Ce document a été traduit à l’aide du service de traduction automatique [Co-op Translator](https://github.com/Azure/co-op-translator). Bien que nous nous efforcions d’assurer l’exactitude, veuillez noter que les traductions automatiques peuvent contenir des erreurs ou des inexactitudes. Le document original dans sa langue d’origine doit être considéré comme la source faisant foi. Pour les informations critiques, une traduction professionnelle réalisée par un humain est recommandée. Nous déclinons toute responsabilité en cas de malentendus ou de mauvaises interprétations résultant de l’utilisation de cette traduction. \ No newline at end of file + + + diff --git a/translations/fr/README.md b/translations/fr/README.md index 83dfa65dd..7388a8fca 100644 --- a/translations/fr/README.md +++ b/translations/fr/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.fr.png) - -### 21 leçons qui vous enseignent tout ce qu’il faut savoir pour commencer à créer des applications d’IA générative - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Support multilingue - -#### Pris en charge via GitHub Action (Automatisé & Toujours à jour) - -[French](./README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md) - -# Generative AI for Beginners (Version 3) - Un cours - -Apprenez les bases pour créer des applications d’IA générative grâce à notre cours complet de 21 leçons, proposé par les Microsoft Cloud Advocates. - -## 🌱 Pour bien démarrer - -Ce cours comprend 21 leçons. Chaque leçon aborde un sujet spécifique, vous pouvez donc commencer où vous voulez ! - -Les leçons sont classées en deux catégories : les leçons "Learn" qui expliquent un concept d’IA générative, et les leçons "Build" qui présentent un concept ainsi que des exemples de code en **Python** et **TypeScript** lorsque c’est possible. - -Pour les développeurs .NET, consultez [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) ! - -Chaque leçon comprend également une section "Keep Learning" avec des ressources complémentaires. - -## Ce dont vous avez besoin -### Pour exécuter le code de ce cours, vous pouvez utiliser : - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **Leçons :** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **Leçons :** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **Leçons :** "oai-assignment" - -- Des connaissances de base en Python ou TypeScript sont utiles - \*Pour les débutants complets, consultez ces cours [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) et [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) -- Un compte GitHub pour [forker ce dépôt complet](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) sur votre propre compte GitHub - -Nous avons créé une leçon **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** pour vous aider à configurer votre environnement de développement. - -N’oubliez pas de [mettre une étoile (🌟) sur ce dépôt](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) pour le retrouver plus facilement plus tard. - -## 🧠 Prêt à déployer ? - -Si vous cherchez des exemples de code plus avancés, consultez notre [collection d’exemples de code pour l’IA générative](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) en **Python** et **TypeScript**. - -## 🗣️ Rencontrez d’autres apprenants, obtenez du support - -Rejoignez notre [serveur Discord officiel Azure AI Foundry](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) pour rencontrer et échanger avec d’autres apprenants suivant ce cours et obtenir de l’aide. - -Posez vos questions ou partagez vos retours sur le produit dans notre [forum développeurs Azure AI Foundry](https://aka.ms/azureaifoundry/forum) sur Github. - -## 🚀 Vous lancez une startup ? - -Inscrivez-vous au [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) pour recevoir des **crédits OpenAI gratuits** et jusqu’à **150 000 $ en crédits Azure pour accéder aux modèles OpenAI via Azure OpenAI Services**. - -## 🙏 Vous souhaitez aider ? - -Vous avez des suggestions ou avez trouvé des fautes d’orthographe ou des erreurs dans le code ? [Ouvrez une issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) ou [créez une pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 Chaque leçon comprend : - -- Une courte vidéo d’introduction au sujet -- Une leçon écrite dans le README -- Des exemples de code en Python et TypeScript compatibles avec Azure OpenAI et OpenAI API -- Des liens vers des ressources supplémentaires pour approfondir vos connaissances - -## 🗃️ Leçons - -| # | **Lien de la leçon** | **Description** | **Vidéo** | **Ressources complémentaires** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Configuration du cours](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn :** Comment configurer votre environnement de développement | Vidéo à venir | [En savoir plus](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introduction à l’IA générative et aux LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn :** Comprendre ce qu’est l’IA générative et comment fonctionnent les grands modèles de langage (LLMs). | [Vidéo](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [En savoir plus](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Explorer et comparer différents LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn :** Comment choisir le modèle adapté à votre cas d’usage | [Vidéo](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [En savoir plus](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Utiliser l’IA générative de manière responsable](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn :** Comment créer des applications d’IA générative de façon responsable | [Vidéo](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [En savoir plus](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Comprendre les bases du Prompt Engineering](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn :** Pratiques recommandées du Prompt Engineering en mode pratique | [Vidéo](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [En savoir plus](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Créer des prompts avancés](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn :** Comment appliquer des techniques de prompt engineering pour améliorer les résultats de vos prompts. | [Vidéo](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [En savoir plus](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Créer des applications de génération de texte](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Construire :** Une application de génération de texte utilisant Azure OpenAI / OpenAI API | [Vidéo](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [En savoir plus](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Créer des applications de chat](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Construire :** Techniques pour créer et intégrer efficacement des applications de chat. | [Vidéo](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [En savoir plus](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Créer des applications de recherche avec bases de données vectorielles](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Construire :** Une application de recherche utilisant des embeddings pour interroger les données. | [Vidéo](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [En savoir plus](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Créer des applications de génération d’images](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Construire :** Une application de génération d’images | [Vidéo](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [En savoir plus](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Créer des applications IA Low Code](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Construire :** Une application d’IA générative utilisant des outils Low Code | [Vidéo](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [En savoir plus](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Intégrer des applications externes avec Function Calling](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Construire :** Qu’est-ce que le function calling et ses cas d’usage pour les applications | [Vidéo](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [En savoir plus](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [Concevoir l’UX pour les applications IA](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Apprendre :** Comment appliquer les principes de design UX lors du développement d’applications d’IA générative | [Vidéo](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [En savoir plus](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Sécuriser vos applications d’IA générative](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Apprendre :** Les menaces et risques pour les systèmes d’IA ainsi que les méthodes pour les sécuriser. | [Vidéo](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [En savoir plus](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [Le cycle de vie des applications d’IA générative](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Apprendre :** Les outils et métriques pour gérer le cycle de vie des LLM et le LLMOps | [Vidéo](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [En savoir plus](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) et bases de données vectorielles](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Construire :** Une application utilisant un framework RAG pour récupérer des embeddings depuis une base de données vectorielle | [Vidéo](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [En savoir plus](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Modèles open source et Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Construire :** Une application utilisant des modèles open source disponibles sur Hugging Face | [Vidéo](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [En savoir plus](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [Agents IA](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Construire :** Une application utilisant un framework d’agent IA | [Vidéo](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [En savoir plus](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [Fine-tuning des LLMs](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Apprendre :** Quoi, pourquoi et comment faire le fine-tuning des LLMs | [Vidéo](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [En savoir plus](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Construire avec des SLMs](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Apprendre :** Les avantages de construire avec des Small Language Models | Vidéo à venir | [En savoir plus](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Construire avec les modèles Mistral](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Apprendre :** Les caractéristiques et différences des modèles de la famille Mistral | Vidéo à venir | [En savoir plus](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Construire avec les modèles Meta](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Apprendre :** Les caractéristiques et différences des modèles de la famille Meta | Vidéo à venir | [En savoir plus](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Remerciements spéciaux - -Un grand merci à [**John Aziz**](https://www.linkedin.com/in/john0isaac/) pour avoir créé toutes les GitHub Actions et workflows - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) pour ses contributions clés à chaque leçon afin d’améliorer l’expérience des apprenants et du code. - -## 🎒 Autres cours - -Notre équipe propose d’autres cours ! Découvrez : - -- [**NOUVEAU** Model Context Protocol pour débutants](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Agents IA pour débutants](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [IA générative pour débutants avec .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [IA générative pour débutants avec JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML pour débutants](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Data Science pour débutants](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [IA pour débutants](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Cybersécurité pour débutants](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Développement web pour débutants](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT pour débutants](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [Développement XR pour débutants](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Maîtriser GitHub Copilot pour la programmation assistée par IA](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Maîtriser GitHub Copilot pour les développeurs C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Choisissez votre propre aventure Copilot](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Avertissement** : -Ce document a été traduit à l’aide du service de traduction automatique [Co-op Translator](https://github.com/Azure/co-op-translator). Bien que nous nous efforcions d’assurer l’exactitude, veuillez noter que les traductions automatiques peuvent contenir des erreurs ou des inexactitudes. Le document original dans sa langue d’origine doit être considéré comme la source faisant foi. Pour les informations critiques, une traduction professionnelle réalisée par un humain est recommandée. Nous déclinons toute responsabilité en cas de malentendus ou de mauvaises interprétations résultant de l’utilisation de cette traduction. \ No newline at end of file + + + + diff --git a/translations/he/00-course-setup/01-setup-cloud.md b/translations/he/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..4b2a38d9c --- /dev/null +++ b/translations/he/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/he/00-course-setup/02-setup-local.md b/translations/he/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..eec3a6b5c --- /dev/null +++ b/translations/he/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/he/00-course-setup/03-providers.md b/translations/he/00-course-setup/03-providers.md new file mode 100644 index 000000000..8f69b4802 --- /dev/null +++ b/translations/he/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/he/00-course-setup/README.md b/translations/he/00-course-setup/README.md index 4ab5e89c0..d0654ba5b 100644 --- a/translations/he/00-course-setup/README.md +++ b/translations/he/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# התחלה עם הקורס הזה - -אנחנו מאוד מתרגשים שאתה מתחיל את הקורס הזה ומגלים מה תתלהב לבנות עם Generative AI! - -כדי להבטיח את ההצלחה שלך, עמוד זה מפרט את שלבי ההתקנה, הדרישות הטכניות, ואיפה לקבל עזרה במידת הצורך. - -## שלבי התקנה - -כדי להתחיל ללמוד את הקורס, תצטרך להשלים את השלבים הבאים. - -### 1. יצירת Fork לריפוזיטורי הזה - -[צור Fork לכל הריפוזיטורי הזה](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) לחשבון ה-GitHub שלך כדי שתוכל לשנות כל קוד ולהשלים את האתגרים. בנוסף, תוכל גם [להוסיף כוכב (🌟) לריפוזיטורי הזה](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) כדי למצוא אותו ואת הריפוזיטוריים הקשורים בקלות רבה יותר. - -### 2. יצירת Codespace - -כדי למנוע בעיות תלות בעת הרצת הקוד, אנו ממליצים להריץ את הקורס הזה ב-[GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst). - -ניתן ליצור זאת על ידי בחירת אפשרות `Code` בגרסה שלך של הריפוזיטורי ולבחור באפשרות **Codespaces**. - -![דיאלוג המציג כפתורים ליצירת codespace](../../../00-course-setup/images/who-will-pay.webp) - -### 3. אחסון מפתחות ה-API שלך - -שמירה על מפתחות ה-API שלך בטוחים ומוגנים היא חשובה כשבונים כל סוג של אפליקציה. אנו ממליצים לא לאחסן מפתחות API ישירות בקוד שלך. העלאת פרטים אלה לריפוזיטורי ציבורי עלולה לגרום לבעיות אבטחה ואפילו לעלויות לא רצויות אם ייעשה בהם שימוש על ידי גורם זדוני. -הנה מדריך שלב-אחר-שלב כיצד ליצור קובץ `.env` לפייתון ולהוסיף את `GITHUB_TOKEN`: - -1. **נווט לתיקיית הפרויקט שלך**: פתח את הטרמינל או שורת הפקודה ונווט לתיקיית השורש של הפרויקט שלך שבה תרצה ליצור את קובץ ה-`.env`. - - ```bash - cd path/to/your/project - ``` - -2. **צור את קובץ ה-`.env`**: השתמש בעורך הטקסט המועדף עליך כדי ליצור קובץ חדש בשם `.env`. אם אתה עובד בשורת הפקודה, תוכל להשתמש בפקודת `touch` (במערכות מבוססות יוניקס) או `echo` (בווינדוס): - - מערכות מבוססות יוניקס: - - ```bash - touch .env - ``` - - ווינדוס: - - ```cmd - echo . > .env - ``` - -3. **ערוך את קובץ ה-`.env`**: פתח את קובץ ה-`.env` בעורך טקסט (למשל VS Code, Notepad++ או כל עורך אחר). הוסף את השורה הבאה לקובץ, כשהחלף את `your_github_token_here` במפתח GitHub האמיתי שלך: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **שמור את הקובץ**: שמור את השינויים וסגור את עורך הטקסט. - -5. **התקן את `python-dotenv`**: אם עדיין לא התקנת, תצטרך להתקין את חבילת `python-dotenv` כדי לטעון משתני סביבה מקובץ ה-`.env` לאפליקציית הפייתון שלך. ניתן להתקין באמצעות `pip`: - - ```bash - pip install python-dotenv - ``` - -6. **טען משתני סביבה בסקריפט הפייתון שלך**: בסקריפט הפייתון שלך, השתמש בחבילת `python-dotenv` כדי לטעון את משתני הסביבה מקובץ ה-`.env`: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -זהו! יצרת בהצלחה קובץ `.env`, הוספת את מפתח ה-GitHub שלך וטעונת אותו לאפליקציית הפייתון שלך. - -## איך להריץ מקומית במחשב שלך - -כדי להריץ את הקוד מקומית במחשב שלך, תצטרך שיהיה מותקן אצלך [Python](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -כדי להשתמש בריפוזיטורי, תצטרך לשכפל אותו: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -לאחר שיש לך את כל הקבצים, תוכל להתחיל! - -## שלבים אופציונליים - -### התקנת Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) הוא מתקין קל משקל להתקנת [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), פייתון, וכמה חבילות נוספות. -Conda היא מנהל חבילות שמקל על ההתקנה והמעבר בין [סביבות וירטואליות](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) שונות של פייתון וחבילות. היא גם שימושית להתקנת חבילות שאינן זמינות דרך `pip`. - -תוכל לעקוב אחרי [מדריך ההתקנה של MiniConda](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) כדי להגדיר זאת. - -לאחר התקנת Miniconda, תצטרך לשכפל את [הריפוזיטורי](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (אם עדיין לא עשית זאת). - -לאחר מכן, תצטרך ליצור סביבה וירטואלית. כדי לעשות זאת עם Conda, צור קובץ סביבה חדש (_environment.yml_). אם אתה עובד עם Codespaces, צור אותו בתוך תיקיית `.devcontainer`, כלומר `.devcontainer/environment.yml`. - -מלא את קובץ הסביבה שלך עם הקטע הבא: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -אם אתה נתקל בשגיאות בשימוש ב-conda, תוכל להתקין ידנית את ספריות ה-Microsoft AI באמצעות הפקודה הבאה בטרמינל. - -``` -conda install -c microsoft azure-ai-ml -``` - -קובץ הסביבה מגדיר את התלויות הדרושות לנו. `` מתייחס לשם שתרצה לתת לסביבת ה-Conda שלך, ו-`` היא גרסת הפייתון שברצונך להשתמש בה, לדוגמה, `3` היא הגרסה העיקרית האחרונה של פייתון. - -לאחר מכן, תוכל ליצור את סביבת ה-Conda שלך על ידי הרצת הפקודות הבאות בשורת הפקודה/טרמינל: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -אם תיתקל בבעיות, עיין ב-[מדריך סביבות Conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst). - -### שימוש ב-Visual Studio Code עם תוסף התמיכה בפייתון - -אנו ממליצים להשתמש בעורך [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) עם [תוסף התמיכה בפייתון](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) מותקן עבור הקורס הזה. עם זאת, זו המלצה בלבד ולא דרישה מחייבת. - -> **הערה**: בעת פתיחת ריפוזיטורי הקורס ב-VS Code, יש לך אפשרות להגדיר את הפרויקט בתוך מכולה (container). זאת בזכות תיקיית ה-[`.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) המיוחדת שנמצאת בריפוזיטורי הקורס. נרחיב על כך בהמשך. - -> **הערה**: לאחר ששכפלת ופתחת את התיקייה ב-VS Code, הוא יציע אוטומטית להתקין את תוסף התמיכה בפייתון. - -> **הערה**: אם VS Code מציע לפתוח מחדש את הריפוזיטורי בתוך מכולה, סרב לבקשה זו כדי להשתמש בגרסת הפייתון המותקנת מקומית. - -### שימוש ב-Jupyter בדפדפן - -ניתן גם לעבוד על הפרויקט באמצעות סביבת [Jupyter](https://jupyter.org?WT.mc_id=academic-105485-koreyst) ישירות בדפדפן שלך. גם Jupyter הקלאסי וגם [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) מספקים סביבת פיתוח נוחה עם תכונות כמו השלמה אוטומטית, הדגשת קוד ועוד. - -כדי להפעיל Jupyter מקומית, עבור לטרמינל/שורת הפקודה, נווט לתיקיית הקורס, והריץ: - -```bash -jupyter notebook -``` - -או - -```bash -jupyterhub -``` - -זה יפעיל מופע Jupyter וכתובת ה-URL לגישה אליו תוצג בחלון שורת הפקודה. - -כשתיגש לכתובת ה-URL, תראה את מתווה הקורס ותוכל לנווט לכל קובץ `*.ipynb`. לדוגמה, `08-building-search-applications/python/oai-solution.ipynb`. - -### הרצה בתוך מכולה (container) - -חלופה להגדרת הכל במחשב שלך או ב-Codespace היא שימוש ב-[מכולה](../../../00-course-setup/). תיקיית ה-`.devcontainer` המיוחדת בריפוזיטורי הקורס מאפשרת ל-VS Code להגדיר את הפרויקט בתוך מכולה. מחוץ ל-Codespaces, זה ידרוש התקנת Docker, ובאופן כללי מדובר בעבודה מסוימת, לכן אנו ממליצים על כך רק למי שיש לו ניסיון בעבודה עם מכולות. - -אחת הדרכים הטובות ביותר לשמור על מפתחות ה-API שלך בטוחים בעת שימוש ב-GitHub Codespaces היא באמצעות Codespace Secrets. אנא עקוב אחרי מדריך [ניהול סודות ב-Codespaces](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) כדי ללמוד עוד על כך. - -## שיעורים ודרישות טכניות - -הקורס כולל 6 שיעורי מושג ו-6 שיעורי קידוד. - -בשיעורי הקידוד אנו משתמשים בשירות Azure OpenAI. תצטרך גישה לשירות Azure OpenAI ומפתח API כדי להריץ את הקוד. ניתן להגיש בקשה לקבלת גישה על ידי [מילוי טופס זה](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -בזמן שאתה ממתין לעיבוד הבקשה שלך, כל שיעור קידוד כולל גם קובץ `README.md` שבו תוכל לצפות בקוד ובפלטים. - -## שימוש בשירות Azure OpenAI בפעם הראשונה - -אם זו הפעם הראשונה שלך בעבודה עם שירות Azure OpenAI, אנא עקוב אחרי המדריך כיצד [ליצור ולפרוס משאב שירות Azure OpenAI.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## שימוש ב-OpenAI API בפעם הראשונה - -אם זו הפעם הראשונה שלך בעבודה עם OpenAI API, אנא עקוב אחרי המדריך כיצד [ליצור ולהשתמש בממשק.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## הכירו לומדים אחרים - -יצרנו ערוצים בשרת ה-[Discord הרשמי של קהילת ה-AI שלנו](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) כדי להכיר לומדים אחרים. זו דרך מצוינת ליצור קשר עם יזמים, בוני פרויקטים, סטודנטים וכל מי שמעוניין להתקדם בתחום ה-Generative AI. - -[![הצטרף לערוץ דיסקורד](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -צוות הפרויקט יהיה גם הוא בשרת דיסקורד זה כדי לסייע לכל הלומדים. - -## תרומה - -הקורס הזה הוא יוזמה בקוד פתוח. אם אתה רואה תחומים לשיפור או בעיות, אנא צור [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) או דווח על [בעיה ב-GitHub](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -צוות הפרויקט יעקוב אחרי כל התרומות. תרומה לקוד פתוח היא דרך נהדרת לבנות את הקריירה שלך ב-Generative AI. - -רוב התרומות מחייבות הסכמה להסכם רישיון תורם (CLA) המצהיר שיש לך את הזכות, ושאתה מעניק לנו את הזכויות להשתמש בתרומתך. לפרטים, בקר ב-[אתר הסכם הרישיון לתורמים (CLA)](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -חשוב: בעת תרגום טקסט בריפוזיטורי זה, ודא שאינך משתמש בתרגום מכונה. נבדוק את התרגומים דרך הקהילה, לכן אנא התנדב לתרגום רק בשפות שבהן אתה שולט. - -כאשר תגיש Pull Request, בוט CLA יזהה אוטומטית אם עליך לספק CLA ויעניק תגיות מתאימות ל-PR (כגון תווית, תגובה). פשוט עקוב אחר ההוראות של הבוט. תצטרך לעשות זאת רק פעם אחת בכל הריפוזיטוריים המשתמשים ב-CLA שלנו. - -פרויקט זה אימץ את [קוד ההתנהגות של מיקרוסופט לקוד פתוח](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst). למידע נוסף קרא את שאלות נפוצות על קוד ההתנהגות או פנה ל-[דוא"ל opencode](opencode@microsoft.com) עם שאלות או הערות נוספות. - -## בואו נתחיל - -כעת, לאחר שסיימת את השלבים הנדרשים להשלמת הקורס, בוא נתחיל עם [הקדמה ל-Generative AI ול-LLMs](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**כתב ויתור**: -מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון כי תרגומים אוטומטיים עלולים להכיל שגיאות או אי-דיוקים. המסמך המקורי בשפת המקור שלו נחשב למקור הסמכותי. למידע קריטי מומלץ להשתמש בתרגום מקצועי על ידי אדם. אנו לא נושאים באחריות לכל אי-הבנה או פרשנות שגויה הנובעת משימוש בתרגום זה. \ No newline at end of file + + + + diff --git a/translations/he/00-course-setup/SETUP.md b/translations/he/00-course-setup/SETUP.md deleted file mode 100644 index d71ec858e..000000000 --- a/translations/he/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# הגדרת סביבת הפיתוח שלך - -הקמנו את המאגר והקורס הזה עם [מיכל פיתוח](https://containers.dev?WT.mc_id=academic-105485-koreyst) שמכיל סביבת ריצה אוניברסלית התומכת בפיתוח ב-Python3, .NET, Node.js ו-Java. התצורה הרלוונטית מוגדרת בקובץ `devcontainer.json` שנמצא בתיקיית `.devcontainer/` שבשורש המאגר. - -כדי להפעיל את מיכל הפיתוח, הפעל אותו ב-[GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (לסביבת ריצה בענן) או ב-[Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (לסביבת ריצה מקומית במחשב). קרא [את התיעוד הזה](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) לפרטים נוספים על אופן פעולת מיכלי הפיתוח בתוך VS Code. - -> [!TIP] -> אנו ממליצים להשתמש ב-GitHub Codespaces להתחלה מהירה עם מינימום מאמץ. הוא מספק [מכסת שימוש חינמית נדיבה](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) לחשבונות אישיים. הגדר [זמני הפסקה](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) לעצירת או מחיקת codespaces לא פעילות כדי למקסם את השימוש במכסה. - -## 1. ביצוע משימות - -לכל שיעור יהיו משימות _אופציונליות_ שעשויות להיות זמינות באחת או יותר משפות התכנות הבאות: Python, .NET/C#, Java ו-JavaScript/TypeScript. בסעיף זה תמצא הנחיות כלליות לביצוע המשימות הללו. - -### 1.1 משימות Python - -משימות Python מסופקות כיישומים (`.py` קבצים) או מחברות Jupyter (`.ipynb` קבצים). -- כדי להריץ את המחברת, פתח אותה ב-Visual Studio Code, לחץ על _Select Kernel_ (למעלה מימין) ובחר באפשרות Python 3 המוגדרת כברירת מחדל. כעת תוכל ללחוץ על _Run All_ כדי להריץ את כל התאים במחברת. -- כדי להריץ יישומי Python משורת הפקודה, עקוב אחרי ההוראות הספציפיות למשימה כדי לוודא שאתה בוחר את הקבצים הנכונים ומספק את הפרמטרים הנדרשים. - -## 2. הגדרת ספקים - -משימות **עשויות** להיות מוגדרות לעבודה מול פריסות של מודלים גדולים לשפה (LLM) דרך ספק שירות נתמך כמו OpenAI, Azure או Hugging Face. ספקים אלו מספקים _נקודת קצה מאוחסנת_ (API) שניתן לגשת אליה בצורה תכנותית עם האישורים הנכונים (מפתח API או טוקן). בקורס זה נדון בספקים הבאים: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) עם מגוון דגמים כולל סדרת GPT המרכזית. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) לדגמי OpenAI עם דגש על מוכנות ארגונית - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) לדגמים בקוד פתוח ושרת אינפרנס - -**תצטרך להשתמש בחשבונות שלך לתרגילים אלו**. המשימות הן אופציונליות, כך שתוכל לבחור להגדיר אחד, את כולם - או אף אחד - מהספקים בהתאם לתחומי העניין שלך. הנה כמה הנחיות להרשמה: - -| הרשמה | עלות | מפתח API | Playground | הערות | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst) | [תמחור](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst) | [מבוסס פרויקט](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [ללא קוד, ווב](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | דגמים רבים זמינים | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst) | [תמחור](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst) | [התחלה מהירה SDK](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [התחלה מהירה Studio](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [יש להגיש בקשה מראש לגישה](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) | -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [תמחור](https://huggingface.co/pricing) | [טוקני גישה](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst) | [ל-Hugging Chat יש דגמים מוגבלים](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -עקוב אחרי ההוראות למטה כדי _להגדיר_ את המאגר הזה לשימוש עם ספקים שונים. משימות שדורשות ספק מסוים יכילו אחת מהתוויות האלו בשם הקובץ: - - `aoai` - דורש נקודת קצה ומפתח של Azure OpenAI - - `oai` - דורש נקודת קצה ומפתח של OpenAI - - `hf` - דורש טוקן של Hugging Face - -תוכל להגדיר אחד, אף אחד או את כולם. משימות רלוונטיות פשוט יזרקו שגיאה אם האישורים חסרים. - -### 2.1 יצירת קובץ `.env` - -אנו מניחים שקראת כבר את ההנחיות למעלה ונרשמת אצל הספק הרלוונטי, וקיבלת את האישורים הדרושים (API_KEY או טוקן). במקרה של Azure OpenAI, אנו מניחים שיש לך גם פריסה תקפה של שירות Azure OpenAI (נקודת קצה) עם לפחות דגם GPT אחד לפריסת שיחות. - -השלב הבא הוא להגדיר את **משתני הסביבה המקומיים** שלך כך: - -1. חפש בתיקיית השורש קובץ בשם `.env.copy` שצריך להכיל תוכן דומה לזה: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. העתק את הקובץ ל-`.env` באמצעות הפקודה הבאה. קובץ זה נמצא ב-gitignore, כך שהסודות נשמרים בטוחים. - - ```bash - cp .env.copy .env - ``` - -3. מלא את הערכים (החלף את הממלאים בצד ימין של `=`) כפי שמתואר בסעיף הבא. - -3. (אופציונלי) אם אתה משתמש ב-GitHub Codespaces, יש לך אפשרות לשמור את משתני הסביבה כסודות של Codespaces המשויכים למאגר זה. במקרה כזה, לא תצטרך להגדיר קובץ .env מקומי. **עם זאת, שים לב שאפשרות זו פועלת רק אם אתה משתמש ב-GitHub Codespaces.** אם אתה משתמש ב-Docker Desktop, עדיין תצטרך להגדיר את קובץ ה-.env. - -### 2.2 מילוי קובץ `.env` - -בוא נסתכל בקצרה על שמות המשתנים כדי להבין מה הם מייצגים: - -| משתנה | תיאור | -| :--- | :--- | -| HUGGING_FACE_API_KEY | זהו טוקן הגישה של המשתמש שהגדרת בפרופיל שלך | -| OPENAI_API_KEY | זהו מפתח האישור לשימוש בשירות עבור נקודות קצה שאינן Azure OpenAI | -| AZURE_OPENAI_API_KEY | זהו מפתח האישור לשימוש בשירות Azure OpenAI | -| AZURE_OPENAI_ENDPOINT | זו נקודת הקצה של משאב Azure OpenAI שהופעל | -| AZURE_OPENAI_DEPLOYMENT | זו נקודת הקצה לפריסת דגם _יצירת טקסט_ | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | זו נקודת הקצה לפריסת דגם _הטמעת טקסט_ | -| | | - -הערה: שני המשתנים האחרונים של Azure OpenAI משקפים דגם ברירת מחדל להשלמת שיחה (יצירת טקסט) ולחיפוש וקטורי (הטמעות) בהתאמה. ההוראות להגדרתם יופיעו במשימות הרלוונטיות. - -### 2.3 הגדרת Azure: מהפורטל - -ערכי נקודת הקצה והמפתח של Azure OpenAI יימצאו ב-[פורטל Azure](https://portal.azure.com?WT.mc_id=academic-105485-koreyst), אז נתחיל שם. - -1. עבור ל-[פורטל Azure](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -1. לחץ על האפשרות **Keys and Endpoint** בסרגל הצד (תפריט משמאל). -1. לחץ על **Show Keys** - תראה את הפריטים הבאים: KEY 1, KEY 2 ו-Endpoint. -1. השתמש בערך KEY 1 עבור AZURE_OPENAI_API_KEY -1. השתמש בערך Endpoint עבור AZURE_OPENAI_ENDPOINT - -כעת, נצטרך את נקודות הקצה לדגמים הספציפיים שהפעלנו. - -1. לחץ על האפשרות **Model deployments** בסרגל הצד (תפריט משמאל) עבור משאב Azure OpenAI. -1. בדף היעד, לחץ על **Manage Deployments** - -זה יוביל אותך לאתר Azure OpenAI Studio, שם נמצא את הערכים הנוספים כפי שמתואר למטה. - -### 2.4 הגדרת Azure: מהסטודיו - -1. עבור ל-[Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **מהמשאב שלך** כפי שתואר למעלה. -1. לחץ על לשונית **Deployments** (סרגל צד, שמאל) כדי לראות את הדגמים המופעלים כרגע. -1. אם הדגם הרצוי לא מופעל, השתמש ב-**Create new deployment** כדי להפעילו. -1. תזדקק לדגם _יצירת טקסט_ - אנו ממליצים על: **gpt-35-turbo** -1. תזדקק לדגם _הטמעת טקסט_ - אנו ממליצים על **text-embedding-ada-002** - -כעת עדכן את משתני הסביבה כך שישקפו את שם ה_פריסה_ (Deployment name) שהשתמשת בו. בדרך כלל זה יהיה אותו שם כמו הדגם אלא אם שינית אותו במפורש. לדוגמה, ייתכן שיהיה לך: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**אל תשכח לשמור את קובץ ה-.env בסיום**. כעת תוכל לצאת מהקובץ ולחזור להוראות להרצת המחברת. - -### 2.5 הגדרת OpenAI: מהפרופיל - -מפתח ה-API של OpenAI שלך נמצא ב-[חשבון OpenAI שלך](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). אם אין לך אחד, תוכל להירשם וליצור מפתח API. לאחר שיש לך את המפתח, תוכל למלא את המשתנה `OPENAI_API_KEY` בקובץ `.env`. - -### 2.6 הגדרת Hugging Face: מהפרופיל - -הטוקן של Hugging Face שלך נמצא בפרופיל שלך תחת [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). אל תפרסם או תשתף אותם בפומבי. במקום זאת, צור טוקן חדש לשימוש בפרויקט זה והעתק אותו לקובץ `.env` תחת המשתנה `HUGGING_FACE_API_KEY`. _הערה:_ טכנית זה לא מפתח API, אך הוא משמש לאימות ולכן אנו שומרים על השם הזה למען עקביות. - -**כתב ויתור**: -מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון כי תרגומים אוטומטיים עלולים להכיל שגיאות או אי-דיוקים. המסמך המקורי בשפת המקור שלו נחשב למקור הסמכותי. למידע קריטי מומלץ להשתמש בתרגום מקצועי על ידי מתרגם אנושי. אנו לא נושאים באחריות לכל אי-הבנה או פרשנות שגויה הנובעת משימוש בתרגום זה. \ No newline at end of file diff --git a/translations/he/04-prompt-engineering-fundamentals/README.md b/translations/he/04-prompt-engineering-fundamentals/README.md index da36d0153..38dd61c7f 100644 --- a/translations/he/04-prompt-engineering-fundamentals/README.md +++ b/translations/he/04-prompt-engineering-fundamentals/README.md @@ -1,453 +1,15 @@ - -# יסודות הנדסת הפרומפטים - -[![יסודות הנדסת הפרומפטים](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.he.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## מבוא -מודול זה עוסק במושגים וטכניקות חיוניות ליצירת פרומפטים אפקטיביים במודלים של בינה מלאכותית יוצרת. האופן שבו אתם כותבים את הפרומפט ל-LLM חשוב גם הוא. פרומפט שנבנה בקפידה יכול להניב תגובה באיכות טובה יותר. אבל מה בעצם המשמעות של מונחים כמו _פרומפט_ ו-_הנדסת פרומפטים_? ואיך משפרים את ה-_קלט_ של הפרומפט שנשלח ל-LLM? אלו השאלות שננסה לענות עליהן בפרק הזה ובפרק הבא. - -_בינה מלאכותית יוצרת_ מסוגלת ליצור תוכן חדש (למשל, טקסט, תמונות, אודיו, קוד ועוד) בתגובה לבקשות משתמש. היא עושה זאת באמצעות _מודלים לשוניים גדולים_ כמו סדרת GPT של OpenAI ("Generative Pre-trained Transformer") שמאומנים לשימוש בשפה טבעית ובקוד. - -כעת משתמשים יכולים לתקשר עם המודלים האלה באמצעות פרדיגמות מוכרות כמו צ'אט, מבלי צורך בידע טכני או הכשרה. המודלים מבוססי _פרומפטים_ – המשתמשים שולחים קלט טקסטואלי (פרומפט) ומקבלים תגובת AI (השלמה). הם יכולים לנהל "שיחה עם ה-AI" באופן איטרטיבי, בשיחות מרובות סבבים, ולשפר את הפרומפט עד שהתגובה תתאים לציפיותיהם. - -"הפרומפטים" הופכים כיום לממשק התכנותי העיקרי של אפליקציות בינה מלאכותית יוצרת, שמכוונות את המודלים מה לעשות ומשפיעות על איכות התגובות המוחזרות. "הנדסת פרומפטים" היא תחום מחקר מתפתח במהירות שמתמקד ב-_עיצוב ואופטימיזציה_ של פרומפטים כדי לספק תגובות עקביות ואיכותיות בקנה מידה. - -## מטרות הלמידה - -בשיעור זה נלמד מהי הנדסת פרומפטים, מדוע היא חשובה, ואיך ניתן ליצור פרומפטים יעילים יותר עבור מודל ומטרת יישום מסוימים. נבין מושגים מרכזיים ושיטות עבודה מומלצות להנדסת פרומפטים – ונכיר סביבת "סנדבוקס" אינטראקטיבית ב-Jupyter Notebooks שבה נוכל לראות את המושגים מיושמים בדוגמאות אמיתיות. - -בסיום השיעור נוכל: - -1. להסביר מהי הנדסת פרומפטים ולמה היא חשובה. -2. לתאר את רכיבי הפרומפט ואיך משתמשים בהם. -3. ללמוד שיטות עבודה מומלצות וטכניקות להנדסת פרומפטים. -4. ליישם את הטכניקות שנלמדו בדוגמאות אמיתיות, באמצעות נקודת קצה של OpenAI. - -## מונחים מרכזיים - -הנדסת פרומפטים: תהליך עיצוב ושיפור הקלטים שמכוונים את מודלי ה-AI ליצירת פלטים רצויים. -טוקניזציה: תהליך המרת טקסט ליחידות קטנות יותר, שנקראות טוקנים, שהמודל יכול להבין ולעבד. -Instruction-Tuned LLMs: מודלים לשוניים גדולים (LLMs) שעברו כוונון עדין עם הוראות ספציפיות לשיפור דיוק ורלוונטיות התגובה. - -## סנדבוקס ללמידה - -הנדסת פרומפטים היא כיום יותר אמנות מאשר מדע. הדרך הטובה ביותר לשפר את האינטואיציה שלנו היא _לתרגל יותר_ ולאמץ גישת ניסוי וטעייה שמשלבת מומחיות בתחום היישום עם טכניקות מומלצות ואופטימיזציות ספציפיות למודל. - -מחברת ה-Jupyter שמלווה את השיעור מספקת סביבת _סנדבוקס_ שבה תוכלו לנסות את מה שלמדתם – תוך כדי תנועה או כחלק מאתגר הקוד בסוף. כדי לבצע את התרגילים תזדקקו ל: - -1. **מפתח API של Azure OpenAI** – נקודת הקצה לשירות של מודל LLM פרוס. -2. **סביבת ריצה של Python** – שבה ניתן להריץ את המחברת. -3. **משתני סביבה מקומיים** – _השלימו עכשיו את שלבי ה-[SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) כדי להתכונן_. - -המחברת מגיעה עם תרגילים _מתחילים_ – אך מומלץ להוסיף קטעי _Markdown_ (תיאור) ו-_Code_ (בקשות פרומפט) משלכם כדי לנסות דוגמאות או רעיונות נוספים – ולבנות את האינטואיציה שלכם לעיצוב פרומפטים. - -## מדריך מאויר - -רוצים לקבל תמונה כוללת של מה שהשיעור הזה מכסה לפני שתתחילו? עיינו במדריך המאויר הזה, שנותן לכם תחושה של הנושאים המרכזיים והנקודות החשובות למחשבה בכל אחד מהם. מפת השיעור מובילה אתכם מהבנת המושגים והאתגרים המרכזיים ועד לטיפול בהם באמצעות טכניקות הנדסת פרומפטים ושיטות עבודה מומלצות. שימו לב שקטע "טכניקות מתקדמות" במדריך זה מתייחס לתוכן שיכוסה בפרק _הבא_ בתכנית הלימודים. - -![מדריך מאויר להנדסת פרומפטים](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.he.png) - -## הסטארטאפ שלנו - -עכשיו, נדבר על איך _הנושא הזה_ מתקשר למשימת הסטארטאפ שלנו להביא [חדשנות בינה מלאכותית לחינוך](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). אנחנו רוצים לבנות אפליקציות מבוססות AI ללמידה _אישית_ – אז בואו נחשוב איך משתמשים שונים באפליקציה שלנו עשויים "לעצב" פרומפטים: - -- **מנהלים** עשויים לבקש מה-AI _לנתח נתוני תוכנית הלימודים כדי לזהות פערים בכיסוי_. ה-AI יכול לסכם תוצאות או להמחיש אותן עם קוד. -- **מחנכים** עשויים לבקש מה-AI _ליצור תוכנית שיעור לקהל יעד ולנושא מסוים_. ה-AI יכול לבנות את התוכנית האישית בפורמט מוגדר. -- **תלמידים** עשויים לבקש מה-AI _לתמוך בהם בנושא קשה_. ה-AI יכול להנחות את התלמידים עם שיעורים, רמזים ודוגמאות המותאמים לרמתם. - -וזה רק קצה הקרחון. עיינו ב-[Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) – ספריית פרומפטים בקוד פתוח שנבחרה על ידי מומחי חינוך – כדי לקבל תחושה רחבה יותר של האפשרויות! _נסו להריץ כמה מהפרומפטים האלה בסנדבוקס או ב-OpenAI Playground כדי לראות מה קורה!_ - - - -## מהי הנדסת פרומפטים? - -התחלנו את השיעור בהגדרת **הנדסת פרומפטים** כתהליך של _עיצוב ואופטימיזציה_ של קלטי טקסט (פרומפטים) כדי לספק תגובות עקביות ואיכותיות (השלמות) עבור מטרה ויישום מסוימים ומודל נתון. אפשר לחשוב על זה כתהליך דו-שלבי: - -- _עיצוב_ הפרומפט הראשוני עבור מודל ומטרה מסוימים -- _שיפור_ הפרומפט באופן איטרטיבי כדי לשפר את איכות התגובה - -זהו תהליך של ניסוי וטעייה שדורש אינטואיציה ומאמץ מצד המשתמש כדי להגיע לתוצאות מיטביות. אז למה זה חשוב? כדי לענות על השאלה הזו, קודם כל צריך להבין שלושה מושגים: - -- _טוקניזציה_ = איך המודל "רואה" את הפרומפט -- _מודלים בסיסיים (Base LLMs)_ = איך מודל היסוד "מעבד" פרומפט -- _מודלים מכווני הוראות (Instruction-Tuned LLMs)_ = איך המודל יכול כעת "לראות משימות" - -### טוקניזציה - -מודל LLM רואה פרומפטים כסדרת _טוקנים_ כאשר מודלים שונים (או גרסאות שונות של אותו מודל) יכולים לפרק את אותו פרומפט בדרכים שונות. מאחר ש-LLMs מאומנים על טוקנים (ולא על טקסט גולמי), האופן שבו הפרומפטים מתפרקים לטוקנים משפיע ישירות על איכות התגובה שנוצרת. - -כדי לקבל אינטואיציה על אופן פעולת הטוקניזציה, נסו כלים כמו [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) שמוצג למטה. העתיקו את הפרומפט שלכם – וראו איך הוא מומר לטוקנים, תוך תשומת לב לאופן שבו מטופלים תווי רווח וסימני פיסוק. שימו לב שהדוגמה מציגה מודל LLM ישן יותר (GPT-3) – לכן ניסיון עם מודל חדש יותר עשוי להניב תוצאה שונה. - -![טוקניזציה](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.he.png) - -### מושג: מודלי יסוד - -לאחר שהפרומפט מתפרק לטוקנים, התפקיד העיקרי של ["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (או מודל היסוד) הוא לחזות את הטוקן הבא בסדרה. מאחר ש-LLMs מאומנים על מאגרי טקסט עצומים, יש להם הבנה טובה של הקשרים הסטטיסטיים בין הטוקנים ויכולים לבצע את החיזוי בביטחון מסוים. שימו לב שהם לא מבינים את _משמעות_ המילים בפרומפט או בטוקן; הם פשוט מזהים דפוס שהם יכולים "להשלים" עם החיזוי הבא שלהם. הם יכולים להמשיך לחזות את הרצף עד שהמשתמש מפסיק או מתקיים תנאי סיום כלשהו. - -רוצים לראות איך השלמה מבוססת פרומפט עובדת? הכניסו את הפרומפט שלמעלה ל-Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) עם ההגדרות ברירת המחדל. המערכת מוגדרת לטפל בפרומפטים כבקשות למידע – כך שתקבלו השלמה שתתאים להקשר זה. - -אבל מה אם המשתמש רוצה לראות משהו ספציפי שעונה על קריטריון או מטרה מסוימת? כאן נכנסים לתמונה מודלים מכווני הוראות. - -![השלמת צ'אט של Base LLM](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.he.png) - -### מושג: מודלים מכווני הוראות - -[Instruction Tuned LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) מתחיל עם מודל היסוד ומכוון אותו בעדינות באמצעות דוגמאות או זוגות קלט/פלט (למשל, "הודעות" מרובות סבבים) שיכולות להכיל הוראות ברורות – והתגובה של ה-AI מנסה לעקוב אחרי ההוראות הללו. - -זה נעשה באמצעות טכניקות כמו Reinforcement Learning with Human Feedback (RLHF) שמאפשרות לאמן את המודל _לעקוב אחרי הוראות_ ו-_ללמוד ממשוב_, כך שהוא מייצר תגובות שמתאימות יותר ליישומים מעשיים ורלוונטיות יותר למטרות המשתמש. - -בואו ננסה – חזרו לפרומפט שלמעלה, אך עכשיו שנו את _הודעת המערכת_ כך שתספק את ההוראה הבאה כהקשר: - -> _סכם את התוכן שניתן לך עבור תלמיד בכיתה ב'. שמור על התוצאה בפסקה אחת עם 3-5 נקודות עיקריות._ - -ראו איך התוצאה מכוונת כעת לשקף את המטרה והפורמט הרצויים? מחנך יכול להשתמש בתגובה הזו ישירות במצגות שלו לשיעור. - -![השלמת צ'אט של Instruction Tuned LLM](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.he.png) - -## למה אנחנו צריכים הנדסת פרומפטים? - -כעת כשאנחנו יודעים איך מודלים מעבדים פרומפטים, נדבר על _למה_ אנחנו צריכים הנדסת פרומפטים. התשובה טמונה בעובדה שמודלים לשוניים גדולים עכשוויים מציבים מספר אתגרים שמקשים להשיג _השלמות אמינות ועקביות_ ללא השקעת מאמץ בבניית הפרומפט ואופטימיזציה שלו. לדוגמה: - -1. **תגובות המודל הן סטוכסטיות.** _אותו פרומפט_ צפוי להניב תגובות שונות במודלים שונים או בגרסאות שונות של אותו מודל. ואפילו ייתכן שיתקבלו תוצאות שונות עם _אותו מודל_ בזמנים שונים. _טכניקות הנדסת פרומפטים יכולות לעזור לנו למזער את השונות הזו על ידי מתן מסגרות בטוחות טובות יותר_. - -1. **מודלים עלולים להמציא תגובות.** המודלים מאומנים על מאגרי נתונים _גדולים אך סופיים_, כלומר חסר להם ידע על מושגים מחוץ לתחום האימון. כתוצאה מכך, הם עלולים לייצר השלמות שאינן מדויקות, דמיוניות או סותרות עובדות ידועות. _טכניקות הנדסת פרומפטים עוזרות למשתמשים לזהות ולהפחית המצאות כאלה, למשל על ידי בקשת ציטוטים או הסברים מה-AI_. - -1. **יכולות המודלים משתנות.** מודלים חדשים או דורות חדשים של מודלים מציעים יכולות עשירות יותר אך גם מביאים איתם תכונות ייחודיות ופשרות בעלות ועלות מורכבות. _הנדסת פרומפטים יכולה לעזור לנו לפתח שיטות עבודה וזרימות עבודה שמסתירות הבדלים ומסתגלות לדרישות ספציפיות של מודלים בצורה נרחבת וחלקה_. - -בואו נראה זאת בפעולה ב-OpenAI או Azure OpenAI Playground: - -- השתמשו באותו פרומפט בפריסות LLM שונות (למשל, OpenAI, Azure OpenAI, Hugging Face) – האם ראיתם הבדלים? -- השתמשו באותו פרומפט שוב ושוב עם אותה פריסת LLM (למשל, Azure OpenAI playground) – איך השתנו התגובות? - -### דוגמה להמצאות - -בקורס זה, אנו משתמשים במונח **"המצאה"** כדי להתייחס לתופעה שבה מודלים לשוניים גדולים מייצרים לעיתים מידע שגוי מבחינה עובדתית, בשל מגבלות באימון או אילוצים אחרים. ייתכן ששמעתם על כך גם כמונח _"הלוצינציות"_ במאמרים פופולריים או מחקרים. עם זאת, אנו ממליצים בחום להשתמש במונח _"המצאה"_ כדי לא לייחס בטעות תכונות אנושיות להתנהגות שמונעת על ידי מכונה. זה גם מחזק את [הנחיות AI אחראי](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) מבחינת מונחים, ומסיר מונחים שעשויים להיחשב לפוגעניים או לא כוללניים בהקשרים מסוימים. - -רוצים לקבל תחושה איך המצאות פועלות? חשבו על פרומפט שמורה ל-AI ליצור תוכן בנושא שאינו קיים (כדי לוודא שהוא לא נמצא במאגר האימון). לדוגמה – ניסיתי את הפרומפט הבא: -# תוכנית שיעור: מלחמת המאדים של 2076 - -## מבוא -במהלך שיעור זה נחקור את מלחמת המאדים שהתרחשה בשנת 2076. נלמד על הגורמים שהובילו למלחמה, מהלכיה המרכזיים, וההשלכות שלה על האנושות והכוכב האדום. - -## מטרות השיעור -- להבין את הרקע ההיסטורי של מלחמת המאדים -- לנתח את האירועים המרכזיים במלחמה -- לדון בהשפעות ארוכות הטווח של המלחמה על החברה והטכנולוגיה - -## חומרים נדרשים -- מפות של מאדים מתקופת המלחמה -- מקורות ראשוניים ומשניים (מאמרים, יומנים, תיעודים) -- מצגת עם תמונות וגרפים - -## מהלך השיעור - -### חלק 1: רקע היסטורי (20 דקות) -- הצגת המצב הפוליטי והחברתי על מאדים ועל כדור הארץ לפני המלחמה -- דיון בגורמים שהובילו למתיחות בין הצדדים - -### חלק 2: מהלך המלחמה (30 דקות) -- סקירת הקרבות המרכזיים והאסטרטגיות שהיו בשימוש -- הצגת דמויות מפתח ומשימות חשובות -- ניתוח טכנולוגיות חדשות שהופעלו במהלך הלחימה - -### חלק 3: השלכות המלחמה (20 דקות) -- דיון בהשפעות הפוליטיות, חברתיות וכלכליות לאחר המלחמה -- השפעת המלחמה על ההתיישבות במאדים ועל יחסי כדור הארץ-מאדים - -### סיכום ומשימות בית (10 דקות) -- סיכום הנקודות המרכזיות שנלמדו -- משימת קריאה: כתיבת מאמר קצר על לקח חשוב שנלמד מ-2076 - -## הערות למורה -- יש לעודד את התלמידים לשאול שאלות ולהביע דעות במהלך הדיונים -- ניתן להוסיף סרטונים קצרים להמחשת האירועים -- חשוב להדגיש את ההבדלים בין מקורות שונים ולהסביר כיצד להעריך אותם באופן ביקורתי - -[!NOTE] זכרו כי מלחמת המאדים היא נושא בדיוני, אך ניתן ללמוד ממנו רבות על דינמיקות חברתיות ופוליטיות. -חיפוש באינטרנט הראה לי שיש חשבונות בדיוניים (למשל, סדרות טלוויזיה או ספרים) על מלחמות במאדים – אבל אף אחד מהם לא ב-2076. ההיגיון הבריא גם אומר ש-2076 הוא _בעתיד_, ולכן לא יכול להיות קשור לאירוע אמיתי. - -אז מה קורה כשמריצים את ההנחיה הזו עם ספקי LLM שונים? - -> **תגובה 1**: OpenAI Playground (GPT-35) - -![תגובה 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.he.png) - -> **תגובה 2**: Azure OpenAI Playground (GPT-35) - -![תגובה 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.he.png) - -> **תגובה 3**: : Hugging Face Chat Playground (LLama-2) - -![תגובה 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.he.png) - -כמצופה, כל מודל (או גרסת מודל) מייצר תגובות מעט שונות בזכות התנהגות סטוכסטית ושינויים ביכולות המודל. למשל, מודל אחד פונה לקהל של כיתה ח', בעוד שהאחר מניח שמדובר בתלמיד תיכון. אבל כל שלושת המודלים ייצרו תגובות שיכולות לשכנע משתמש לא מיודע שהאירוע היה אמיתי. - -טכניקות הנדסת פרומפט כמו _מטא-פרומפטינג_ ו_קונפיגורציית טמפרטורה_ עשויות להפחית במידה מסוימת את ההמצאות של המודל. ארכיטקטורות הנדסת פרומפט חדשות גם משלבות כלים וטכניקות חדשות בצורה חלקה בתוך זרימת הפרומפט, כדי למתן או להפחית חלק מההשפעות הללו. - -## מקרה בוחן: GitHub Copilot - -נסיים את החלק הזה בהבנת איך הנדסת פרומפטים משמשת בפתרונות בעולם האמיתי, דרך מקרה בוחן אחד: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot הוא "שותף התכנות מבוסס AI" שלך – הוא ממיר פרומפטים טקסטואליים להשלמות קוד ומשולב בסביבת הפיתוח שלך (למשל, Visual Studio Code) לחוויית משתמש חלקה. כפי שמתועד בסדרת הבלוגים למטה, הגרסה המוקדמת התבססה על מודל OpenAI Codex – כאשר המהנדסים הבינו במהירות את הצורך לכוונן את המודל ולפתח טכניקות הנדסת פרומפט טובות יותר, כדי לשפר את איכות הקוד. ביולי, הם [חשפו מודל AI משופר שעולה על Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) עם הצעות מהירות יותר. - -קראו את הפוסטים לפי הסדר, כדי לעקוב אחרי מסע הלמידה שלהם. - -- **מאי 2023** | [GitHub Copilot משתפר בהבנת הקוד שלך](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **מאי 2023** | [מבפנים ב-GitHub: עבודה עם ה-LLMs שמאחורי GitHub Copilot](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **יוני 2023** | [איך לכתוב פרומפטים טובים יותר ל-GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **יולי 2023** | [GitHub Copilot עולה על Codex עם מודל AI משופר](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **יולי 2023** | [מדריך למפתח להנדסת פרומפטים ו-LLMs](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **ספטמבר 2023** | [איך לבנות אפליקציית LLM ארגונית: לקחים מ-GitHub Copilot](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -אפשר גם לעיין ב[בלוג ההנדסה שלהם](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) לפוסטים נוספים כמו [זה](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) שמראה איך מודלים וטכניקות אלו _מופעלים_ ליצירת יישומים בעולם האמיתי. - ---- - - - -## בניית פרומפט - -ראינו למה הנדסת פרומפטים חשובה – עכשיו נבין איך פרומפטים _נבנים_ כדי שנוכל להעריך טכניקות שונות לעיצוב פרומפט יעיל יותר. - -### פרומפט בסיסי - -נתחיל עם הפרומפט הבסיסי: קלט טקסט שנשלח למודל ללא הקשר נוסף. הנה דוגמה – כשאנחנו שולחים את המילים הראשונות של ההמנון הלאומי של ארה"ב ל-OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst), הוא מייד _משלים_ את התגובה עם השורות הבאות, וממחיש את התנהגות החיזוי הבסיסית. - -| פרומפט (קלט) | השלמה (פלט) | -| :----------------- | :--------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | זה נשמע שאתה מתחיל את מילות השיר "The Star-Spangled Banner," ההמנון הלאומי של ארצות הברית. המילים המלאות הן ... | - -### פרומפט מורכב - -עכשיו נוסיף הקשר והוראות לפרומפט הבסיסי הזה. ה-[Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) מאפשר לנו לבנות פרומפט מורכב כאוסף של _הודעות_ עם: - -- זוגות קלט/פלט המשקפים את קלט ה_משתמש_ ותגובה של ה_עוזר_. -- הודעת מערכת שמגדירה את ההקשר להתנהגות או לאישיות של העוזר. - -הבקשה כעת היא בצורת הבאה, שבה ה_טוקניזציה_ לוכדת בצורה יעילה מידע רלוונטי מההקשר ומהשיחה. שינוי ההקשר של המערכת יכול להיות בעל השפעה משמעותית על איכות ההשלמות, כמו גם הקלטים שהמשתמש מספק. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### פרומפט הוראות - -בדוגמאות שלמעלה, פרומפט המשתמש היה שאילתה טקסטואלית פשוטה שניתן לפרש אותה כבקשת מידע. עם פרומפטים מסוג _הוראות_, אפשר להשתמש בטקסט הזה כדי לציין משימה בפירוט רב יותר, ולספק הנחיה טובה יותר ל-AI. הנה דוגמה: - -| פרומפט (קלט) | השלמה (פלט) | סוג ההוראה | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------- | :------------------ | -| כתוב תיאור של מלחמת האזרחים | _הוחזרה פסקה פשוטה_ | פשוט | -| כתוב תיאור של מלחמת האזרחים. ספק תאריכים ואירועים מרכזיים ותאר את משמעותם | _הוחזרה פסקה ואחריה רשימת תאריכים מרכזיים עם תיאורים_ | מורכב | -| כתוב תיאור של מלחמת האזרחים בפסקה אחת. ספק 3 נקודות עם תאריכים מרכזיים ומשמעותם. ספק 3 נקודות נוספות עם דמויות היסטוריות מרכזיות ותרומותיהן. החזר את הפלט כקובץ JSON | _מחזיר פרטים נרחבים יותר בתיבת טקסט, מעוצב כ-JSON שניתן להעתיק ולהדביק לקובץ ולוודא לפי הצורך_ | מורכב. מעוצב. | - -## תוכן ראשי - -בדוגמאות שלמעלה, הפרומפט היה עדיין פתוח יחסית, ומאפשר ל-LLM להחליט איזו חלק ממאגר הנתונים המאומן מראש שלו רלוונטי. עם תבנית העיצוב של _תוכן ראשי_, טקסט הקלט מחולק לשני חלקים: - -- הוראה (פעולה) -- תוכן רלוונטי (שמשפיע על הפעולה) - -הנה דוגמה שבה ההוראה היא "סכם זאת בשתי משפטים קצרים". - -| פרומפט (קלט) | השלמה (פלט) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| יופיטר הוא כוכב הלכת החמישי מהשמש והגדול ביותר במערכת השמש. הוא כוכב גז עם מסה שהיא אלפית מזו של השמש, אך פי שניים וחצי מכל שאר כוכבי הלכת במערכת השמש יחד. יופיטר הוא אחד מהגופים הבהירים ביותר הנראים לעין בלתי מזוינת בשמי הלילה, ומוכר לציוויליזציות עתיקות עוד לפני ההיסטוריה המתועדת. הוא נקרא על שם האל הרומי יופיטר.[19] כאשר מסתכלים עליו מהארץ, יופיטר יכול להיות בהיר מספיק כדי שהאור המוחזר ממנו ייצר צללים נראים,[20] ובממוצע הוא הגוף הטבעי השלישי הבהיר ביותר בשמי הלילה אחרי הירח ונוגה.
**סכם זאת בשתי משפטים קצרים** | יופיטר, כוכב הלכת החמישי מהשמש, הוא הגדול ביותר במערכת השמש ומוכר כאחד מהגופים הבהירים בשמי הלילה. נקרא על שם האל הרומי יופיטר, הוא כוכב גז שמסתו פי שניים וחצי מכל שאר כוכבי הלכת במערכת השמש יחד. | - -ניתן להשתמש בקטע התוכן הראשי בדרכים שונות כדי להניע הוראות יעילות יותר: - -- **דוגמאות** – במקום לומר למודל מה לעשות עם הוראה מפורשת, תן לו דוגמאות למה לעשות ותן לו להסיק את הדפוס. -- **רמזים** – עקוב אחרי ההוראה עם "רמז" שמכין את ההשלמה, ומכוון את המודל לתגובות רלוונטיות יותר. -- **תבניות** – אלו 'מתכונים' חוזרים לפרומפטים עם משתנים שניתן להתאים עם נתונים למקרים ספציפיים. - -בואו נבחן את אלה בפעולה. - -### שימוש בדוגמאות - -זו גישה שבה משתמשים בתוכן הראשי כדי "להאכיל את המודל" בדוגמאות של הפלט הרצוי עבור הוראה מסוימת, ומאפשרים לו להסיק את הדפוס לפלט הרצוי. בהתאם למספר הדוגמאות שניתנו, אפשר לבצע פרומפטינג ללא דוגמאות (zero-shot), עם דוגמה אחת (one-shot), עם כמה דוגמאות (few-shot) וכו'. - -הפרומפט כעת מורכב משלושה מרכיבים: - -- תיאור המשימה -- כמה דוגמאות של הפלט הרצוי -- תחילת דוגמה חדשה (שהופכת לתיאור משימה מרומז) - -| סוג הלמידה | פרומפט (קלט) | השלמה (פלט) | -| :---------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------ | -| ללא דוגמאות | "The Sun is Shining". תרגם לספרדית | "El Sol está brillando". | -| דוגמה אחת | "The Sun is Shining" => "El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| כמה דוגמאות | השחקן רץ על הבסיסים => בייסבול
השחקן ביצע אס => טניס
השחקן ביצע שישה => קריקט
השחקן ביצע סל דאנק => כדורסל | | - -שימו לב שצריך לספק הוראה מפורשת ("תרגם לספרדית") בפרומפט ללא דוגמאות, אבל היא מוסקת בדוגמה עם דוגמה אחת. הדוגמה עם כמה דוגמאות מראה איך הוספת דוגמאות מאפשרת למודלים להסיק בצורה מדויקת יותר ללא הוראות נוספות. - -### רמזי פרומפט - -טכניקה נוספת לשימוש בתוכן הראשי היא לספק _רמזים_ במקום דוגמאות. במקרה זה, אנחנו נותנים למודל דחיפה בכיוון הנכון על ידי _התחלה_ עם קטע שמשקף את פורמט התגובה הרצוי. המודל אז "לוקח את הרמז" וממשיך באותו סגנון. - -| מספר רמזים | פרומפט (קלט) | השלמה (פלט) | -| :---------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 0 | יופיטר הוא כוכב הלכת החמישי מהשמש והגדול ביותר במערכת השמש. הוא כוכב גז עם מסה שהיא אלפית מזו של השמש, אך פי שניים וחצי מכל שאר כוכבי הלכת במערכת השמש יחד. יופיטר הוא אחד מהגופים הבהירים ביותר הנראים לעין בלתי מזוינת בשמי הלילה, ומוכר לציוויליזציות עתיקות עוד לפני ההיסטוריה המתועדת. - -**לסכם את זה** | יופיטר הוא הכוכב הגדול ביותר במערכת השמש שלנו והחמישי במרחקו מהשמש. זהו כוכב גזים ענק עם מסה שהיא אלףית מזו של השמש, אך הוא כבד יותר מכל שאר הכוכבים יחד. ציוויליזציות עתיקות הכירו את יופיטר מזה זמן רב, והוא נראה בבירור בשמי הלילה. | -| 1 | יופיטר הוא הכוכב החמישי מהשמש והגדול ביותר במערכת השמש. זהו כוכב גזים ענק עם מסה שהיא אלףית מזו של השמש, אך פי שניים וחצי מזו של כל שאר הכוכבים במערכת השמש יחד. יופיטר הוא אחד מהגופים הבהירים ביותר הנראים לעין בלתי מזוינת בשמי הלילה, והוא היה מוכר לציוויליזציות עתיקות עוד לפני ההיסטוריה המתועדת.
**לסכם את זה**
מה שלמדנו הוא שיופיטר | הוא הכוכב החמישי מהשמש והגדול ביותר במערכת השמש. זהו כוכב גזים ענק עם מסה שהיא אלףית מזו של השמש, אך פי שניים וחצי מזו של כל שאר הכוכבים יחד. הוא נראה בבירור לעין בלתי מזוינת ומוכר מאז העת העתיקה. | -| 2 | יופיטר הוא הכוכב החמישי מהשמש והגדול ביותר במערכת השמש. זהו כוכב גזים ענק עם מסה שהיא אלףית מזו של השמש, אך פי שניים וחצי מזו של כל שאר הכוכבים במערכת השמש יחד. יופיטר הוא אחד מהגופים הבהירים ביותר הנראים לעין בלתי מזוינת בשמי הלילה, והוא היה מוכר לציוויליזציות עתיקות עוד לפני ההיסטוריה המתועדת.
**לסכם את זה**
שלושת העובדות המובילות שלמדנו: | 1. יופיטר הוא הכוכב החמישי מהשמש והגדול ביותר במערכת השמש.
2. זהו כוכב גזים ענק עם מסה שהיא אלףית מזו של השמש...
3. יופיטר נראה לעין בלתי מזוינת מאז העת העתיקה ... | -| | | | - -### תבניות פרומפט - -תבנית פרומפט היא _מתכון מוגדר מראש לפרומפט_ שניתן לשמור ולשימוש חוזר לפי הצורך, כדי להניע חוויות משתמש עקביות בקנה מידה. בצורה הפשוטה ביותר, זו אוסף של דוגמאות פרומפט כמו [זו של OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) שמספקת גם את רכיבי הפרומפט האינטראקטיביים (הודעות משתמש ומערכת) וגם את פורמט הבקשה המונע על ידי API – לתמיכה בשימוש חוזר. - -בצורה המורכבת יותר כמו [הדוגמה הזו של LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst) היא מכילה _מקומות שמורים_ שניתן להחליף בנתונים ממקורות שונים (קלט משתמש, הקשר מערכת, מקורות חיצוניים וכו') כדי ליצור פרומפט דינמי. זה מאפשר לנו ליצור ספרייה של פרומפטים לשימוש חוזר שיכולים להניע חוויות משתמש עקביות **בתכנות** בקנה מידה. - -לבסוף, הערך האמיתי של תבניות טמון ביכולת ליצור ולפרסם _ספריות פרומפטים_ לתחומי יישום אנכיים – שבהם תבנית הפרומפט מותאמת כעת לשקף הקשר או דוגמאות ספציפיות ליישום שהופכות את התגובות לרלוונטיות ומדויקות יותר עבור קהל היעד. מאגר [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) הוא דוגמה מצוינת לגישה זו, שמאגדת ספרייה של פרומפטים לתחום החינוך עם דגש על מטרות מרכזיות כמו תכנון שיעורים, עיצוב תוכניות לימודים, הדרכת תלמידים ועוד. - -## תוכן תומך - -אם נחשוב על בניית פרומפט כעל הוראה (משימה) ותוכן ראשי (תוכן עיקרי), אז _תוכן משני_ הוא כמו הקשר נוסף שאנו מספקים כדי **להשפיע על הפלט בדרך כלשהי**. זה יכול להיות פרמטרים לכוונון, הוראות עיצוב, טקסונומיות נושאים וכו' שיכולים לעזור למודל _להתאים_ את תגובתו כך שתתאים למטרות או לציפיות המשתמש. - -לדוגמה: בהינתן קטלוג קורסים עם מטא-נתונים נרחבים (שם, תיאור, רמה, תגי מטא, מרצה וכו') על כל הקורסים הזמינים בתכנית הלימודים: - -- ניתן להגדיר הוראה ל"לתמצת את קטלוג הקורסים לסתיו 2023" -- ניתן להשתמש בתוכן הראשי כדי לספק כמה דוגמאות לפלט הרצוי -- ניתן להשתמש בתוכן המשני כדי לזהות את 5 התגים המובילים שמעניינים. - -כעת, המודל יכול לספק סיכום בפורמט שמוצג בדוגמאות – אך אם תוצאה כוללת מספר תגיות, הוא יכול להעדיף את 5 התגים שזוהו בתוכן המשני. - ---- - - - -## שיטות עבודה מומלצות לפרומפטים - -כעת כשאנחנו יודעים איך ניתן _לבנות_ פרומפטים, אפשר להתחיל לחשוב איך _לעצב_ אותם כך שישקפו שיטות עבודה מומלצות. אפשר לחשוב על זה בשני חלקים – להחזיק את ה_גישה הנכונה_ וליישם את ה_טכניקות הנכונות_. - -### גישת הנדסת פרומפט - -הנדסת פרומפט היא תהליך של ניסוי וטעייה, לכן חשוב לזכור שלושה גורמים מנחים רחבים: - -1. **הבנת התחום חשובה.** דיוק ורלוונטיות התגובה תלויים ב_תחום_ שבו האפליקציה או המשתמש פועלים. השתמש באינטואיציה ובמומחיות התחומית שלך כדי **להתאים טכניקות** באופן מדויק יותר. לדוגמה, הגדר _אישיויות תחומיות_ בפרומפטי המערכת שלך, או השתמש ב_תבניות תחומיות_ בפרומפטי המשתמש. ספק תוכן משני שמשקף הקשרים תחומיים, או השתמש ב_רמזים ודוגמאות תחומיות_ כדי לכוון את המודל לדפוסי שימוש מוכרים. - -2. **הבנת המודל חשובה.** ידוע שהמודלים הם אקראיים מטבעם. אך יישומי המודל יכולים להשתנות גם בהתאם למאגרי האימון בהם השתמשו (ידע מאומן מראש), היכולות שהם מספקים (למשל דרך API או SDK) וסוג התוכן שהם מותאמים לו (קוד, תמונות, טקסט וכו'). הבן את החוזקות והמגבלות של המודל שבו אתה משתמש, והשתמש בידע זה כדי _לתעדף משימות_ או לבנות _תבניות מותאמות_ שמותאמות ליכולות המודל. - -3. **איטרציה ואימות חשובים.** המודלים מתפתחים במהירות, וכך גם הטכניקות להנדסת פרומפט. כמומחה תחום, ייתכן שיש לך הקשר או קריטריונים ייחודיים ליישום הספציפי שלך, שאינם חלים על הקהילה הרחבה. השתמש בכלי וטכניקות הנדסת פרומפט כדי "להתחיל" את בניית הפרומפט, ואז בצע איטרציה ואימות של התוצאות באמצעות האינטואיציה והמומחיות שלך. תעד את התובנות שלך ויצר **מאגר ידע** (למשל ספריות פרומפטים) שניתן להשתמש בו כקו בסיס חדש לאחרים, לאיטרציות מהירות יותר בעתיד. - -## שיטות עבודה מומלצות - -כעת נבחן שיטות עבודה נפוצות שמומלצות על ידי [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) ו[Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst). - -| מה | למה | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| להעריך את המודלים העדכניים ביותר. | דורות חדשים של מודלים צפויים לכלול תכונות ואיכות משופרות – אך עלולים גם לעלות יותר. הערך אותם לפי ההשפעה, ואז קבל החלטות על מעבר. | -| להפריד בין הוראות להקשר | בדוק אם המודל/הספק שלך מגדיר _מפרידים_ להבחין בין הוראות, תוכן ראשי ותוכן משני בצורה ברורה יותר. זה יכול לעזור למודלים להקצות משקלים מדויקים יותר לטוקנים. | -| להיות ספציפי וברור | ספק פרטים נוספים על ההקשר הרצוי, התוצאה, האורך, הפורמט, הסגנון וכו'. זה ישפר גם את האיכות וגם את העקביות של התגובות. תעד מתכונים בתבניות לשימוש חוזר. | -| להיות תיאורי, להשתמש בדוגמאות | מודלים עשויים להגיב טוב יותר לגישה של "הראה וספר". התחל בגישת `zero-shot` שבה אתה נותן הוראה (ללא דוגמאות) ואז נסה `few-shot` כהשלמה, עם כמה דוגמאות לפלט הרצוי. השתמש באנלוגיות. | -| להשתמש ברמזים כדי להניע השלמות | דחוף את המודל לכיוון התוצאה הרצויה על ידי מתן מילים או ביטויים מובילים שישמשו נקודת התחלה לתגובה. | -| לחזור על עצמך | לפעמים יש צורך לחזור על ההוראות למודל. ספק הוראות לפני ואחרי התוכן הראשי, השתמש בהוראה וברמז, וכו'. בצע איטרציה ואימות כדי לראות מה עובד. | -| סדר חשוב | הסדר שבו אתה מציג מידע למודל עשוי להשפיע על הפלט, אפילו בדוגמאות הלמידה, בזכות הטיית רסנטיות. נסה אפשרויות שונות כדי לראות מה עובד הכי טוב. | -| תן למודל "יציאה" | ספק למודל תגובת השלמה _גיבוי_ שהוא יכול לספק אם אינו מצליח להשלים את המשימה מכל סיבה שהיא. זה יכול להפחית סיכוי ליצירת תגובות שגויות או מומצאות. | -| | | - -כמו בכל שיטת עבודה מומלצת, זכור ש_התוצאות שלך עשויות להשתנות_ בהתאם למודל, למשימה ולתחום. השתמש בהן כנקודת התחלה, ובצע איטרציה כדי למצוא מה הכי מתאים לך. הערך מחדש את תהליך הנדסת הפרומפט שלך כל הזמן ככל שמודלים וכלים חדשים זמינים, עם דגש על סקלאביליות התהליך ואיכות התגובה. - - - -## משימה - -מזל טוב! הגעת לסוף השיעור! הגיע הזמן ליישם כמה מהמושגים והטכניקות האלה עם דוגמאות אמיתיות! - -למשימה שלנו, נשתמש ב-Jupyter Notebook עם תרגילים שניתן להשלים באופן אינטראקטיבי. ניתן גם להרחיב את ה-Notebook עם תאי Markdown וקוד משלך כדי לחקור רעיונות וטכניקות בעצמך. - -### כדי להתחיל, בצע fork לריפו, ואז - -- (מומלץ) הפעל GitHub Codespaces -- (אופציונלי) שכפל את הריפו למכשיר המקומי שלך והשתמש בו עם Docker Desktop -- (אופציונלי) פתח את ה-Notebook בסביבת הריצה המועדפת עליך. - -### לאחר מכן, הגדר את משתני הסביבה שלך - -- העתק את הקובץ `.env.copy` משורש הריפו ל-`.env` ומלא את הערכים `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` ו-`AZURE_OPENAI_DEPLOYMENT`. חזור ל[סעיף Learning Sandbox](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) כדי ללמוד איך. - -### לאחר מכן, פתח את ה-Jupyter Notebook - -- בחר את קרנל הריצה. אם אתה משתמש באפשרות 1 או 2, פשוט בחר את קרנל Python 3.10.x המוגדר כברירת מחדל במיכל הפיתוח. - -אתה מוכן להריץ את התרגילים. שים לב שאין כאן תשובות _נכונות או שגויות_ – רק חקירת אפשרויות בניסוי וטעייה ובניית אינטואיציה למה עובד עבור מודל ותחום יישום מסוימים. - -_לכן אין קטעי פתרון קוד בשיעור זה. במקום זאת, ל-Notebook יהיו תאי Markdown שכותרתם "הפתרון שלי:" שמציגים דוגמה אחת לפלט כהפניה._ - - - -## בדיקת ידע - -איזה מהבאים הוא פרומפט טוב העומד בשיטות עבודה מומלצות סבירות? - -1. תראה לי תמונה של מכונית אדומה -2. תראה לי תמונה של מכונית אדומה מדגם וולוו XC90 חונה ליד מצוק עם שקיעת השמש -3. תראה לי תמונה של מכונית אדומה מדגם וולוו XC90 - -תשובה: 2, זה הפרומפט הטוב ביותר כי הוא מספק פרטים על "מה" ונכנס לספציפיות (לא סתם מכונית אלא דגם ומותג ספציפיים) וגם מתאר את הסביבה הכללית. 3 הוא הבא בתור כי הוא גם מכיל תיאור רב. - -## 🚀 אתגר - -נסה לנצל את טכניקת ה"רמז" עם הפרומפט: השלם את המשפט "תראה לי תמונה של מכונית אדומה מדגם וולוו ו-". מה התגובה, ואיך תשפר את זה? - -## עבודה מצוינת! המשך ללמוד - -רוצה ללמוד עוד על מושגים שונים בהנדסת פרומפט? עבור ל[דף הלמידה המתקדמת](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) כדי למצוא משאבים מצוינים נוספים בנושא. - -המשך לשיעור 5 שבו נבחן [טכניקות פרומפט מתקדמות](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**כתב ויתור**: -מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון כי תרגומים אוטומטיים עלולים להכיל שגיאות או אי-דיוקים. המסמך המקורי בשפת המקור שלו נחשב למקור הסמכותי. למידע קריטי מומלץ להשתמש בתרגום מקצועי על ידי מתרגם אנושי. אנו לא נושאים באחריות לכל אי-הבנה או פרשנות שגויה הנובעת משימוש בתרגום זה. \ No newline at end of file + + + + + + + diff --git a/translations/he/09-building-image-applications/README.md b/translations/he/09-building-image-applications/README.md index 3c276d94f..398b549ef 100644 --- a/translations/he/09-building-image-applications/README.md +++ b/translations/he/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# בניית אפליקציות ליצירת תמונות - -[![בניית אפליקציות ליצירת תמונות](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.he.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -למודלים גדולים של שפה (LLMs) יש יותר מיצירת טקסט בלבד. אפשר גם ליצור תמונות מתיאורי טקסט. השימוש בתמונות כמדיום יכול להיות מאוד שימושי בתחומים רבים כמו מדטק, אדריכלות, תיירות, פיתוח משחקים ועוד. בפרק זה נבחן את שני המודלים הפופולריים ביותר ליצירת תמונות, DALL-E ו-Midjourney. - -## מבוא - -בשיעור זה נלמד על: - -- יצירת תמונות ולמה זה שימושי. -- DALL-E ו-Midjourney – מה הם ואיך הם פועלים. -- איך לבנות אפליקציה ליצירת תמונות. - -## מטרות הלמידה - -בסיום השיעור תוכל: - -- לבנות אפליקציה ליצירת תמונות. -- להגדיר גבולות לאפליקציה שלך באמצעות מטה-פרומפטים. -- לעבוד עם DALL-E ו-Midjourney. - -## למה לבנות אפליקציה ליצירת תמונות? - -אפליקציות ליצירת תמונות הן דרך מצוינת לחקור את יכולות ה-AI הגנרטיבי. אפשר להשתמש בהן, למשל, ל: - -- **עריכה וסינתזה של תמונות**. ניתן ליצור תמונות למגוון שימושים, כמו עריכה וסינתזה של תמונות. - -- **שימוש במגוון תעשיות**. אפשר גם ליצור תמונות עבור תעשיות שונות כמו מדטק, תיירות, פיתוח משחקים ועוד. - -## תרחיש: Edu4All - -כחלק מהשיעור נמשיך לעבוד עם הסטארטאפ שלנו, Edu4All. התלמידים ייצרו תמונות עבור המטלות שלהם, איזה תמונות בדיוק – זה תלוי בהם, אבל זה יכול להיות איורים לסיפור האגדות שלהם, יצירת דמות חדשה לסיפור או עזרה בהמחשת רעיונות ומושגים. - -כך לדוגמה, תלמידי Edu4All יכולים ליצור תמונות אם הם עובדים בכיתה על אנדרטאות: - -![סטארטאפ Edu4All, שיעור על אנדרטאות, מגדל אייפל](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.he.png) - -עם פרומפט כמו - -> "כלב ליד מגדל אייפל בשמש של בוקר מוקדם" - -## מה זה DALL-E ו-Midjourney? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) ו-[Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) הם שניים מהמודלים הפופולריים ביותר ליצירת תמונות, שמאפשרים להשתמש בפרומפטים כדי ליצור תמונות. - -### DALL-E - -נתחיל עם DALL-E, מודל AI גנרטיבי שיוצר תמונות מתיאורי טקסט. - -> [DALL-E הוא שילוב של שני מודלים, CLIP ו-diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP** הוא מודל שיוצר ייצוגים מספריים (embeddings) של נתונים, מתמונות וטקסט. - -- **Diffused attention** הוא מודל שיוצר תמונות מתוך ה-embeddings. DALL-E מאומן על מאגר נתונים של תמונות וטקסט ויכול ליצור תמונות מתיאורי טקסט. לדוגמה, DALL-E יכול ליצור תמונות של חתול עם כובע, או כלב עם מוהוק. - -### Midjourney - -Midjourney פועל בדומה ל-DALL-E, הוא יוצר תמונות מפרומפטים טקסטואליים. גם Midjourney יכול ליצור תמונות עם פרומפטים כמו "חתול עם כובע" או "כלב עם מוהוק". - -![תמונה שנוצרה על ידי Midjourney, יונה מכנית](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_קרדיט לתמונה: ויקיפדיה, תמונה שנוצרה על ידי Midjourney_ - -## איך DALL-E ו-Midjourney פועלים - -נתחיל עם [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). DALL-E הוא מודל AI גנרטיבי מבוסס ארכיטקטורת טרנספורמר עם _טרנספורמר אוטורגרסיבי_. - -טרנספורמר אוטורגרסיבי מגדיר איך המודל יוצר תמונות מתיאורי טקסט, הוא מייצר פיקסל אחד בכל פעם, ומשתמש בפיקסלים שנוצרו כדי לייצר את הפיקסל הבא. התהליך עובר דרך שכבות רבות ברשת נוירונים, עד שהתמונה שלמה. - -בתהליך זה, DALL-E שולט בתכונות, עצמים, מאפיינים ועוד בתמונה שהוא יוצר. עם זאת, ב-DALL-E 2 ו-3 יש שליטה רבה יותר על התמונה שנוצרת. - -## בניית אפליקציית יצירת תמונות ראשונה - -אז מה צריך כדי לבנות אפליקציה ליצירת תמונות? תזדקק לספריות הבאות: - -- **python-dotenv** – מומלץ מאוד להשתמש בספריה זו כדי לשמור סודות בקובץ _.env_ נפרד מהקוד. -- **openai** – ספריה שתשמש אותך לתקשורת עם ה-API של OpenAI. -- **pillow** – לעבודה עם תמונות בפייתון. -- **requests** – לעזרה בביצוע בקשות HTTP. - -1. צור קובץ _.env_ עם התוכן הבא: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - מצא את המידע הזה בפורטל Azure עבור המשאב שלך תחת "Keys and Endpoint". - -1. אסוף את הספריות הנ"ל בקובץ בשם _requirements.txt_ כך: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. לאחר מכן, צור סביבה וירטואלית והתקן את הספריות: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - עבור Windows, השתמש בפקודות הבאות ליצירה והפעלה של הסביבה הווירטואלית: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. הוסף את הקוד הבא בקובץ בשם _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -נסביר את הקוד: - -- תחילה, מייבאים את הספריות הדרושות, כולל ספריית OpenAI, dotenv, requests ו-Pillow. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- לאחר מכן, טוענים את משתני הסביבה מקובץ _.env_. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- לאחר מכן, מגדירים את ה-endpoint, המפתח ל-API של OpenAI, הגרסה והסוג. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- לאחר מכן, מייצרים את התמונה: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - הקוד לעיל מחזיר אובייקט JSON שמכיל את כתובת ה-URL של התמונה שנוצרה. אפשר להשתמש בכתובת זו כדי להוריד את התמונה ולשמור אותה לקובץ. - -- לבסוף, פותחים את התמונה ומשתמשים בצופה תמונות סטנדרטי כדי להציג אותה: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### פרטים נוספים על יצירת התמונה - -נבחן את הקוד שיוצר את התמונה ביתר פירוט: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** הוא פרומפט הטקסט שמשמש ליצירת התמונה. במקרה זה, הפרומפט הוא "ארנב על סוס, מחזיק סוכרייה על מקל, בערבת ערפל שבה צומחים נרקיסים". -- **size** הוא גודל התמונה שנוצרת. כאן, התמונה היא בגודל 1024x1024 פיקסלים. -- **n** הוא מספר התמונות שנוצרות. כאן, נוצרות שתי תמונות. -- **temperature** הוא פרמטר ששולט ברנדומליות של הפלט של מודל AI גנרטיבי. הטמפרטורה היא ערך בין 0 ל-1, כאשר 0 אומר שהפלט דטרמיניסטי ו-1 אומר שהפלט אקראי. הערך ברירת המחדל הוא 0.7. - -יש עוד דברים שאפשר לעשות עם תמונות שנכסה בחלק הבא. - -## יכולות נוספות ביצירת תמונות - -כבר ראית איך הצלחנו ליצור תמונה בכמה שורות קוד בפייתון. עם זאת, יש עוד דברים שאפשר לעשות עם תמונות. - -אפשר גם: - -- **לבצע עריכות**. על ידי מתן תמונה קיימת, מסכה ופרומפט, אפשר לשנות תמונה. לדוגמה, אפשר להוסיף משהו לחלק מסוים בתמונה. נניח בתמונת הארנב שלנו, אפשר להוסיף לו כובע. איך עושים זאת? מספקים את התמונה, מסכה (שמציינת את האזור לשינוי) ופרומפט טקסטואלי שמסביר מה יש לעשות. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - התמונה הבסיסית תכיל רק את הארנב, אבל התמונה הסופית תכלול את הכובע על הארנב. - -- **ליצור וריאציות**. הרעיון הוא לקחת תמונה קיימת ולבקש ליצור וריאציות שלה. כדי ליצור וריאציה, מספקים תמונה ופרומפט טקסטואלי וקוד כזה: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > שים לב, זה נתמך רק ב-OpenAI - -## טמפרטורה - -טמפרטורה היא פרמטר ששולט ברנדומליות של הפלט של מודל AI גנרטיבי. הטמפרטורה היא ערך בין 0 ל-1, כאשר 0 אומר שהפלט דטרמיניסטי ו-1 אומר שהפלט אקראי. הערך ברירת המחדל הוא 0.7. - -נראה דוגמה לאיך הטמפרטורה פועלת, על ידי הרצת הפרומפט הזה פעמיים: - -> פרומפט: "ארנב על סוס, מחזיק סוכרייה על מקל, בערבת ערפל שבה צומחים נרקיסים" - -![ארנב על סוס מחזיק סוכרייה על מקל, גרסה 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.he.png) - -עכשיו נריץ את אותו פרומפט שוב כדי לראות שלא נקבל את אותה תמונה פעמיים: - -![תמונה שנוצרה של ארנב על סוס](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.he.png) - -כפי שניתן לראות, התמונות דומות אך לא זהות. ננסה לשנות את ערך הטמפרטורה ל-0.1 ונראה מה קורה: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### שינוי הטמפרטורה - -ננסה להפוך את התגובה ליותר דטרמיניסטית. מהתמונות שיצרנו ראינו שבתמונה הראשונה יש ארנב ובשנייה סוס, כלומר התמונות שונות מאוד. - -לכן נשנה את הקוד ונגדיר את הטמפרטורה ל-0, כך: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -כעת כשמריצים את הקוד, מקבלים את שתי התמונות הבאות: - -- ![טמפרטורה 0, גרסה 1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.he.png) -- ![טמפרטורה 0, גרסה 2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.he.png) - -כאן רואים בבירור שהתמונות דומות זו לזו יותר. - -## איך להגדיר גבולות לאפליקציה שלך עם מטה-פרומפטים - -בדמו שלנו, כבר אפשר ליצור תמונות ללקוחות. עם זאת, צריך להגדיר גבולות לאפליקציה. - -לדוגמה, לא נרצה ליצור תמונות שאינן מתאימות לעבודה או שאינן מתאימות לילדים. - -אפשר לעשות זאת עם _מטה-פרומפטים_. מטה-פרומפטים הם פרומפטים טקסטואליים שמשמשים לשליטה על הפלט של מודל AI גנרטיבי. לדוגמה, אפשר להשתמש במטה-פרומפטים כדי לוודא שהתמונות שנוצרות בטוחות לעבודה או מתאימות לילדים. - -### איך זה עובד? - -איך מטה-פרומפטים פועלים? - -מטה-פרומפטים הם פרומפטים טקסטואליים שממוקמים לפני פרומפט הטקסט, ומשמשים לשליטה על הפלט של המודל. הם משולבים באפליקציות כדי לשלוט על הפלט של המודל, על ידי שילוב פרומפט הקלט והמטה-פרומפט בפרומפט טקסטואלי אחד. - -דוגמה למטה-פרומפט תהיה: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -עכשיו נראה איך אפשר להשתמש במטה-פרומפטים בדמו שלנו. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -מהפרומפט שלמעלה אפשר לראות שכל התמונות שנוצרות מתחשבות במטה-פרומפט. - -## משימה – נאפשר לתלמידים - -הכרנו את Edu4All בתחילת השיעור. עכשיו הגיע הזמן לאפשר לתלמידים ליצור תמונות עבור המטלות שלהם. - -התלמידים ייצרו תמונות למטלות הכוללות אנדרטאות, איזה אנדרטאות בדיוק – זה תלוי בהם. התלמידים מתבקשים להשתמש ביצירתיות שלהם במשימה זו כדי למקם את האנדרטאות בהקשרים שונים. - -## פתרון - -הנה פתרון אפשרי: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## עבודה מצוינת! המשך ללמוד - -בסיום השיעור, בדוק את [אוסף הלמידה של Generative AI שלנו](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) כדי להמשיך להעמיק את הידע שלך ב-AI גנרטיבי! - -עבור לשיעור 10 שבו נלמד איך [לבנות אפליקציות AI בקוד נמוך](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**כתב ויתור**: -מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון כי תרגומים אוטומטיים עלולים להכיל שגיאות או אי-דיוקים. המסמך המקורי בשפת המקור שלו נחשב למקור הסמכותי. למידע קריטי מומלץ להשתמש בתרגום מקצועי על ידי מתרגם אנושי. אנו לא נושאים באחריות לכל אי-הבנה או פרשנות שגויה הנובעת משימוש בתרגום זה. \ No newline at end of file + + + + diff --git a/translations/he/12-designing-ux-for-ai-applications/README.md b/translations/he/12-designing-ux-for-ai-applications/README.md index 1743c2737..7d897ea9b 100644 --- a/translations/he/12-designing-ux-for-ai-applications/README.md +++ b/translations/he/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# עיצוב חוויית משתמש לאפליקציות בינה מלאכותית - -[![עיצוב חוויית משתמש לאפליקציות בינה מלאכותית](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.he.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(לחצו על התמונה למעלה לצפייה בסרטון של השיעור)_ - -חוויית המשתמש היא היבט חשוב מאוד בבניית אפליקציות. המשתמשים צריכים להיות מסוגלים להשתמש באפליקציה שלכם בצורה יעילה כדי לבצע משימות. יעילות היא דבר אחד, אך חשוב גם לעצב אפליקציות כך שיוכלו לשמש את כולם, כדי להפוך אותן ל_נגישות_. פרק זה יתמקד בתחום זה, כדי שתוכלו לעצב אפליקציה שאנשים יכולים ורוצים להשתמש בה. - -## מבוא - -חוויית המשתמש היא האופן שבו משתמש מתקשר ומשתמש במוצר או שירות מסוים, בין אם זה מערכת, כלי או עיצוב. בפיתוח אפליקציות בינה מלאכותית, המפתחים לא מתמקדים רק בהבטחת חוויית משתמש יעילה, אלא גם אתית. בשיעור זה נלמד כיצד לבנות אפליקציות בינה מלאכותית (AI) שמטפלות בצרכי המשתמש. - -השיעור יכסה את התחומים הבאים: - -- מבוא לחוויית משתמש והבנת צרכי המשתמש -- עיצוב אפליקציות AI לאמון ושקיפות -- עיצוב אפליקציות AI לשיתוף פעולה ומשוב - -## מטרות הלמידה - -לאחר שיעור זה, תוכלו: - -- להבין כיצד לבנות אפליקציות AI שעונות על צרכי המשתמש. -- לעצב אפליקציות AI שמקדמות אמון ושיתוף פעולה. - -### דרישות מוקדמות - -קחו זמן וקראו עוד על [חוויית משתמש וחשיבה עיצובית.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## מבוא לחוויית משתמש והבנת צרכי המשתמש - -בחברת ההזנק החינוכית הבדיונית שלנו, יש שני משתמשים עיקריים: מורים ותלמידים. לכל אחד מהם צרכים ייחודיים. עיצוב ממוקד משתמש שם את המשתמש במרכז, ומבטיח שהמוצרים יהיו רלוונטיים ומועילים לאלו שהם מיועדים להם. - -האפליקציה צריכה להיות **שימושית, אמינה, נגישה ונעימה** כדי לספק חוויית משתמש טובה. - -### שימושיות - -שימושיות פירושה שהאפליקציה כוללת פונקציונליות שמתאימה למטרתה, כמו אוטומציה של תהליך ההערכה או יצירת כרטיסיות חזרה. אפליקציה שמבצעת אוטומציה של תהליך ההערכה צריכה להיות מסוגלת להקצות ציונים לתלמידים בצורה מדויקת ויעילה על פי קריטריונים מוגדרים מראש. באופן דומה, אפליקציה שיוצרת כרטיסיות חזרה צריכה לייצר שאלות רלוונטיות ומגוונות בהתבסס על הנתונים שלה. - -### אמינות - -אמינות פירושה שהאפליקציה יכולה לבצע את המשימה שלה בעקביות וללא שגיאות. עם זאת, בינה מלאכותית, כמו בני אדם, אינה מושלמת ועלולה לטעות. האפליקציות עלולות להיתקל בשגיאות או במצבים בלתי צפויים שדורשים התערבות או תיקון אנושי. איך מטפלים בשגיאות? בסעיף האחרון של השיעור נלמד כיצד מערכות ואפליקציות AI מעוצבות לשיתוף פעולה ומשוב. - -### נגישות - -נגישות פירושה להרחיב את חוויית המשתמש גם למשתמשים עם יכולות שונות, כולל אנשים עם מוגבלויות, כדי לוודא שאף אחד לא נשאר מחוץ. על ידי הקפדה על קווים מנחים ועקרונות נגישות, פתרונות AI הופכים לכוללים, נגישים ומועילים לכל המשתמשים. - -### נעימות - -נעימות פירושה שהאפליקציה מהנה לשימוש. חוויית משתמש מושכת יכולה להשפיע לטובה על המשתמש ולעודד אותו לחזור לאפליקציה, מה שמעלה את ההכנסות העסקיות. - -![תמונה המדגימה שיקולים בחוויית משתמש בבינה מלאכותית](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.he.png) - -לא כל אתגר ניתן לפתור באמצעות AI. הבינה המלאכותית באה להעשיר את חוויית המשתמש, בין אם באוטומציה של משימות ידניות או בהתאמה אישית של חוויות המשתמש. - -## עיצוב אפליקציות AI לאמון ושקיפות - -בניית אמון היא קריטית בעת עיצוב אפליקציות AI. אמון מבטיח שהמשתמש בטוח שהאפליקציה תבצע את העבודה, תספק תוצאות בעקביות והתוצאות הן מה שהמשתמש צריך. סיכון בתחום זה הוא חוסר אמון או אמון מופרז. חוסר אמון מתרחש כאשר למשתמש יש מעט או אין אמון במערכת AI, מה שמוביל לדחיית האפליקציה. אמון מופרז מתרחש כאשר המשתמש מעריך יתר על המידה את יכולות מערכת ה-AI, מה שמוביל לאמון יתר. לדוגמה, מערכת הערכה אוטומטית במקרה של אמון מופרז עלולה לגרום למורה לא לבדוק חלק מהניירות כדי לוודא שהמערכת עובדת כראוי. זה עלול לגרום לציונים לא הוגנים או לא מדויקים לתלמידים, או להזדמנויות חסרות למשוב ולשיפור. - -שתי דרכים להבטיח שהאמון יהיה במרכז העיצוב הן הסבריות ושליטה. - -### הסבריות - -כאשר AI מסייע בקבלת החלטות כמו העברת ידע לדורות הבאים, חשוב שהמורים וההורים יבינו כיצד מתקבלות ההחלטות על ידי ה-AI. זו הסבריות – הבנת האופן שבו אפליקציות AI מקבלות החלטות. עיצוב להסבריות כולל הוספת פרטים ודוגמאות למה שהאפליקציה יכולה לעשות. לדוגמה, במקום "התחל עם AI למורה", המערכת יכולה להשתמש ב: "סכם את ההערות שלך לחזרה קלה יותר בעזרת AI." - -![דף נחיתה של אפליקציה עם המחשה ברורה של הסבריות באפליקציות AI](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.he.png) - -דוגמה נוספת היא כיצד AI משתמש בנתוני משתמש ונתונים אישיים. לדוגמה, משתמש עם פרסונה של תלמיד עשוי להיות מוגבל בהתאם לפרסונה שלו. ה-AI לא יוכל לחשוף תשובות לשאלות, אך עשוי לסייע להנחות את המשתמש לחשוב כיצד לפתור בעיה. - -![AI עונה על שאלות בהתבסס על פרסונה](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.he.png) - -חלק נוסף חשוב בהסבריות הוא פישוט ההסברים. תלמידים ומורים אינם מומחים ב-AI, לכן ההסברים על מה שהאפליקציה יכולה או לא יכולה לעשות צריכים להיות פשוטים וקלים להבנה. - -![הסברים מפושטים על יכולות AI](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.he.png) - -### שליטה - -AI גנרטיבי יוצר שיתוף פעולה בין ה-AI למשתמש, שבו למשל המשתמש יכול לשנות פקודות לקבלת תוצאות שונות. בנוסף, לאחר יצירת פלט, המשתמשים צריכים להיות מסוגלים לשנות את התוצאות ולקבל תחושת שליטה. לדוגמה, בשימוש ב-Bing, ניתן להתאים את הפקודה לפי פורמט, טון ואורך. בנוסף, ניתן להוסיף שינויים לפלט ולשנות אותו כפי שמוצג למטה: - -![תוצאות חיפוש בינג עם אפשרויות לשינוי הפקודה והפלט](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.he.png) - -תכונה נוספת בבינג שמאפשרת למשתמש שליטה באפליקציה היא היכולת לבחור אם לאפשר או לא לאפשר ל-AI להשתמש בנתונים. באפליקציה לבית ספר, תלמיד עשוי לרצות להשתמש בהערות שלו וגם במשאבי המורים כחומר לחזרה. - -![תוצאות חיפוש בינג עם אפשרויות לשינוי הפקודה והפלט](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.he.png) - -> בעת עיצוב אפליקציות AI, כוונה מודעת היא המפתח כדי למנוע מהמשתמשים להאמין יותר מדי ולהציב ציפיות לא ריאליות לגבי היכולות. דרך אחת לעשות זאת היא ליצור חיכוך בין הפקודות לתוצאות. להזכיר למשתמש שזה AI ולא בן אדם. - -## עיצוב אפליקציות AI לשיתוף פעולה ומשוב - -כפי שצוין קודם, AI גנרטיבי יוצר שיתוף פעולה בין המשתמש ל-AI. רוב האינטראקציות הן כאשר המשתמש מזין פקודה וה-AI מייצר פלט. מה אם הפלט שגוי? איך האפליקציה מטפלת בשגיאות אם הן מתרחשות? האם ה-AI מאשים את המשתמש או לוקח זמן להסביר את השגיאה? - -אפליקציות AI צריכות להיות בנויים לקבל ולתת משוב. זה לא רק עוזר למערכת ה-AI להשתפר, אלא גם בונה אמון עם המשתמשים. יש לכלול בלולאת המשוב בעיצוב, לדוגמה, סימון אצבע למעלה או למטה על הפלט. - -דרך נוספת לטפל בכך היא לתקשר בצורה ברורה את היכולות והמגבלות של המערכת. כאשר משתמש טועה ומבקש משהו מעבר ליכולות ה-AI, צריך להיות גם דרך לטפל בכך, כפי שמוצג למטה. - -![מתן משוב וטיפול בשגיאות](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.he.png) - -שגיאות מערכת הן נפוצות באפליקציות שבהן המשתמש עשוי להזדקק לעזרה במידע מחוץ לתחום ה-AI או שהאפליקציה מוגבלת בכמות השאלות/נושאים שניתן לייצר עבורם סיכומים. לדוגמה, אפליקציית AI שאומנה על נתונים בנושאים מוגבלים כמו היסטוריה ומתמטיקה עשויה שלא להתמודד עם שאלות בגאוגרפיה. כדי למנוע זאת, מערכת ה-AI יכולה לתת תגובה כמו: "מצטערים, המוצר שלנו אומן על נתונים בנושאים הבאים..., אינני יכול לענות על השאלה ששאלת." - -אפליקציות AI אינן מושלמות, ולכן הן צפויות לטעות. בעת עיצוב האפליקציות שלכם, יש לוודא שיש מקום למשוב מהמשתמשים ולטיפול בשגיאות בצורה פשוטה וקלה להסבר. - -## משימה - -קחו כל אפליקציות AI שבניתם עד כה, שקלו ליישם את השלבים הבאים באפליקציה שלכם: - -- **נעימות:** חשבו כיצד להפוך את האפליקציה לנעימה יותר. האם אתם מוסיפים הסברים בכל מקום? האם אתם מעודדים את המשתמש לחקור? איך אתם מנוסחים הודעות השגיאה שלכם? - -- **שימושיות:** בונים אפליקציית ווב. ודאו שהאפליקציה ניתנת לניווט הן בעכבר והן במקלדת. - -- **אמון ושקיפות:** אל תסמכו על ה-AI ועל הפלט שלו באופן מלא, חשבו כיצד להוסיף אדם לתהליך לאימות הפלט. בנוסף, שקלו ויישמו דרכים נוספות להשגת אמון ושקיפות. - -- **שליטה:** תנו למשתמש שליטה על הנתונים שהוא מספק לאפליקציה. יישמו דרך שבה המשתמש יכול לבחור אם לאפשר או לא לאפשר איסוף נתונים באפליקציית ה-AI. - -## המשיכו ללמוד! - -לאחר שסיימתם את השיעור, בדקו את [אוסף הלמידה של Generative AI](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) כדי להמשיך להעמיק את הידע שלכם ב-Generative AI! - -המשיכו לשיעור 13, שבו נבחן כיצד [לאבטח אפליקציות AI](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**כתב ויתור**: -מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון כי תרגומים אוטומטיים עלולים להכיל שגיאות או אי-דיוקים. המסמך המקורי בשפת המקור שלו נחשב למקור הסמכותי. למידע קריטי מומלץ להשתמש בתרגום מקצועי על ידי מתרגם אנושי. אנו לא נושאים באחריות לכל אי-הבנה או פרשנות שגויה הנובעת משימוש בתרגום זה. \ No newline at end of file + + + diff --git a/translations/he/README.md b/translations/he/README.md index 8e6d1e4eb..c5e1920e3 100644 --- a/translations/he/README.md +++ b/translations/he/README.md @@ -1,137 +1,12 @@ - -![Generative AI למתחילים](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.he.png) - -### 21 שיעורים המלמדים את כל מה שצריך לדעת כדי להתחיל לבנות יישומי Generative AI - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 תמיכה בריבוי שפות - -#### נתמך באמצעות GitHub Action (אוטומטי ותמיד מעודכן) - -[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](./README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md) - -# Generative AI למתחילים (גרסה 3) - קורס - -למדו את היסודות של בניית יישומי Generative AI עם הקורס המקיף שלנו הכולל 21 שיעורים, בהנחיית Microsoft Cloud Advocates. - -## 🌱 להתחלה - -הקורס כולל 21 שיעורים. כל שיעור עוסק בנושא שונה, אז התחילו מאיפה שנוח לכם! - -השיעורים מסומנים כ"שיעורי Learn" שמסבירים מושג ב-Generative AI או "שיעורי Build" שמסבירים מושג ומציגים דוגמאות קוד ב-**Python** ו-**TypeScript** כשאפשר. - -למפתחי .NET מומלץ לבדוק את [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -כל שיעור כולל גם חלק "Keep Learning" עם כלים נוספים ללמידה. - -## מה צריך -### כדי להריץ את הקוד של הקורס, אפשר להשתמש באחד מהבאים: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **שיעורים:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **שיעורים:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **שיעורים:** "oai-assignment" - -- ידע בסיסי ב-Python או TypeScript יעזור - \*למתחילים מוחלטים מומלץ לעבור את הקורסים האלה ב-[Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) ו-[TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) -- חשבון GitHub כדי [לעשות fork לכל המאגר הזה](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) לחשבון ה-GitHub האישי שלכם - -יצרנו שיעור **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** שיעזור לכם בהגדרת סביבת הפיתוח. - -אל תשכחו [לסמן בכוכב (🌟) את המאגר הזה](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) כדי למצוא אותו בקלות בהמשך. - -## 🧠 מוכנים לפרוס? - -אם אתם מחפשים דוגמאות קוד מתקדמות יותר, בדקו את [אוסף דוגמאות הקוד ל-Generative AI](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) שלנו ב-**Python** ו-**TypeScript**. - -## 🗣️ פגשו לומדים אחרים, קבלו תמיכה - -הצטרפו לשרת ה-Discord הרשמי של Azure AI Foundry ב-[קישור הזה](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) כדי להכיר וליצור קשר עם לומדים אחרים שלוקחים את הקורס ולקבל תמיכה. - -שאלו שאלות או שתפו משוב על המוצר בפורום המפתחים של [Azure AI Foundry](https://aka.ms/azureaifoundry/forum) ב-GitHub. - -## 🚀 בונים סטארטאפ? - -הירשמו ל-[Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) כדי לקבל **קרדיטים חינמיים ל-OpenAI** ועד **150,000$ קרדיטים ל-Azure** לגישה למודלים של OpenAI דרך Azure OpenAI Services. - -## 🙏 רוצים לעזור? - -יש לכם הצעות או מצאתם שגיאות כתיב או בקוד? [פתחו Issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) או [צרו Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 כל שיעור כולל: - -- הקדמה קצרה בווידאו לנושא -- שיעור כתוב ב-README -- דוגמאות קוד ב-Python ו-TypeScript התומכות ב-Azure OpenAI ו-OpenAI API -- קישורים למשאבים נוספים להמשך הלמידה - -## 🗃️ שיעורים - -| # | **קישור לשיעור** | **תיאור** | **וידאו** | **למידה נוספת** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** איך להגדיר את סביבת הפיתוח שלך | וידאו בקרוב | [למידע נוסף](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introduction to Generative AI and LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** הבנת מה זה Generative AI ואיך מודלים שפתיים גדולים (LLMs) עובדים | [וידאו](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [למידע נוסף](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Exploring and comparing different LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** איך לבחור את המודל המתאים למקרה השימוש שלך | [וידאו](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [למידע נוסף](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Using Generative AI Responsibly](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** איך לבנות יישומי Generative AI באחריות | [וידאו](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [למידע נוסף](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Understanding Prompt Engineering Fundamentals](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** תרגול מעשי של שיטות עבודה מומלצות בהנדסת פרומפטים | [וידאו](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [למידע נוסף](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Creating Advanced Prompts](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** איך ליישם טכניקות הנדסת פרומפטים שמשפרות את התוצאה של הפרומפטים שלך | [וידאו](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [למידע נוסף](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [בניית אפליקציות ליצירת טקסט](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **בניית:** אפליקציית יצירת טקסט באמצעות Azure OpenAI / OpenAI API | [וידאו](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [למידע נוסף](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [בניית אפליקציות צ'אט](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **בניית:** טכניקות לבניית אינטגרציה יעילה של אפליקציות צ'אט. | [וידאו](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [למידע נוסף](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [בניית אפליקציות חיפוש עם מסדי נתונים וקטוריים](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **בניית:** אפליקציית חיפוש המשתמשת ב-Embeddings לחיפוש מידע. | [וידאו](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [למידע נוסף](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [בניית אפליקציות ליצירת תמונות](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **בניית:** אפליקציה ליצירת תמונות | [וידאו](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [למידע נוסף](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [בניית אפליקציות AI בקוד נמוך](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **בניית:** אפליקציית Generative AI באמצעות כלים של Low Code | [וידאו](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [למידע נוסף](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [אינטגרציה של אפליקציות חיצוניות עם Function Calling](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **בניית:** מה זה function calling ומתי משתמשים בו באפליקציות | [וידאו](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [למידע נוסף](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [עיצוב UX לאפליקציות AI](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **למידה:** איך ליישם עקרונות עיצוב UX בפיתוח אפליקציות Generative AI | [וידאו](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [למידע נוסף](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [אבטחת אפליקציות Generative AI שלך](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **למידה:** האיומים והסיכונים למערכות AI ודרכים לאבטחתן. | [וידאו](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [למידע נוסף](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [מחזור החיים של אפליקציות Generative AI](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **למידה:** הכלים והמדדים לניהול מחזור החיים של LLM ו-LLMOps | [וידאו](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [למידע נוסף](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) ומסדי נתונים וקטוריים](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **בניית:** אפליקציה המשתמשת במסגרת RAG לשליפת embeddings ממסדי נתונים וקטוריים | [וידאו](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [למידע נוסף](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [מודלים בקוד פתוח ו-Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **בניית:** אפליקציה המשתמשת במודלים בקוד פתוח הזמינים ב-Hugging Face | [וידאו](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [למידע נוסף](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [סוכני AI](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **בניית:** אפליקציה המשתמשת במסגרת סוכן AI | [וידאו](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [למידע נוסף](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [כיוונון עדין של LLMs](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **למידה:** מהו, למה ואיך לבצע כיוונון עדין ל-LLMs | [וידאו](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [למידע נוסף](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [בניית אפליקציות עם SLMs](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **למידה:** היתרונות של בנייה עם Small Language Models | וידאו בקרוב | [למידע נוסף](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [בניית אפליקציות עם מודלי Mistral](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **למידה:** התכונות וההבדלים של משפחת מודלי Mistral | וידאו בקרוב | [למידע נוסף](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [בניית אפליקציות עם מודלי Meta](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **למידה:** התכונות וההבדלים של משפחת מודלי Meta | וידאו בקרוב | [למידע נוסף](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 תודה מיוחדת - -תודה מיוחדת ל-[**John Aziz**](https://www.linkedin.com/in/john0isaac/) על יצירת כל ה-GitHub Actions וה-Workflows - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) על תרומות מפתח בכל שיעור לשיפור חוויית הלמידה והקוד. - -## 🎒 קורסים נוספים - -הצוות שלנו מפתח קורסים נוספים! בדקו: - -- [**חדש** Model Context Protocol למתחילים](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI Agents למתחילים](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Generative AI למתחילים עם .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Generative AI למתחילים עם JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML למתחילים](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Data Science למתחילים](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI למתחילים](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Cybersecurity למתחילים](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Web Dev למתחילים](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT למתחילים](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR Development למתחילים](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Mastering GitHub Copilot לתכנות משותף עם AI](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Mastering GitHub Copilot למפתחי C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [בחר את ההרפתקה שלך עם Copilot](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**כתב ויתור**: -מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון כי תרגומים אוטומטיים עלולים להכיל שגיאות או אי-דיוקים. המסמך המקורי בשפת המקור שלו נחשב למקור הסמכותי. למידע קריטי מומלץ להשתמש בתרגום מקצועי על ידי מתרגם אנושי. אנו לא נושאים באחריות לכל אי-הבנה או פרשנות שגויה הנובעת משימוש בתרגום זה. \ No newline at end of file + + + + diff --git a/translations/hi/00-course-setup/01-setup-cloud.md b/translations/hi/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..ee7afdc93 --- /dev/null +++ b/translations/hi/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/hi/00-course-setup/02-setup-local.md b/translations/hi/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..0b4c68b79 --- /dev/null +++ b/translations/hi/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/hi/00-course-setup/03-providers.md b/translations/hi/00-course-setup/03-providers.md new file mode 100644 index 000000000..9cafe2be8 --- /dev/null +++ b/translations/hi/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/hi/00-course-setup/README.md b/translations/hi/00-course-setup/README.md index 924136b91..a378e5c37 100644 --- a/translations/hi/00-course-setup/README.md +++ b/translations/hi/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# इस कोर्स के साथ शुरुआत करना - -हम आपके इस कोर्स को शुरू करने और जनरेटिव AI के साथ आप क्या बना सकते हैं, यह देखने के लिए बहुत उत्साहित हैं! - -आपकी सफलता सुनिश्चित करने के लिए, इस पेज पर सेटअप के चरण, तकनीकी आवश्यकताएं, और मदद कहां मिलेगी, यह बताया गया है। - -## सेटअप के चरण - -इस कोर्स को शुरू करने के लिए, आपको निम्नलिखित चरण पूरे करने होंगे। - -### 1. इस रिपो को Fork करें - -अपने GitHub अकाउंट में [इस पूरे रिपो को Fork करें](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) ताकि आप किसी भी कोड को बदल सकें और चैलेंज पूरे कर सकें। आप इसे और संबंधित रिपोज को आसानी से खोजने के लिए [इस रिपो को स्टार (🌟) भी कर सकते हैं](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst)। - -### 2. एक codespace बनाएं - -कोड चलाते समय किसी भी निर्भरता की समस्या से बचने के लिए, हम इस कोर्स को [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst) में चलाने की सलाह देते हैं। - -यह आपके Fork किए गए रिपो में `Code` विकल्प चुनकर और फिर **Codespaces** विकल्प चुनकर बनाया जा सकता है। - -![Dialog showing buttons to create a codespace](../../../00-course-setup/images/who-will-pay.webp) - -### 3. अपने API Keys को सुरक्षित रखें - -कोई भी एप्लिकेशन बनाते समय अपने API keys को सुरक्षित रखना बहुत जरूरी है। हम सलाह देते हैं कि API keys को सीधे अपने कोड में न रखें। इन्हें सार्वजनिक रिपोज में कमिट करने से सुरक्षा संबंधी समस्याएं हो सकती हैं और गलत उपयोग से अनचाहे खर्च भी हो सकते हैं। -यहाँ Python के लिए `.env` फाइल बनाने और `GITHUB_TOKEN` जोड़ने का चरण-दर-चरण तरीका दिया गया है: - -1. **अपने प्रोजेक्ट डायरेक्टरी में जाएं**: टर्मिनल या कमांड प्रॉम्प्ट खोलें और उस प्रोजेक्ट की रूट डायरेक्टरी में जाएं जहाँ आप `.env` फाइल बनाना चाहते हैं। - - ```bash - cd path/to/your/project - ``` - -2. **`.env` फाइल बनाएं**: अपनी पसंदीदा टेक्स्ट एडिटर से `.env` नाम की नई फाइल बनाएं। कमांड लाइन पर, आप Unix-आधारित सिस्टम पर `touch` या Windows पर `echo` का उपयोग कर सकते हैं: - - Unix-आधारित सिस्टम: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **`.env` फाइल संपादित करें**: `.env` फाइल को किसी टेक्स्ट एडिटर (जैसे VS Code, Notepad++, या कोई अन्य) में खोलें। निम्न लाइन जोड़ें, `your_github_token_here` को अपने असली GitHub टोकन से बदलें: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **फाइल सेव करें**: बदलाव सेव करें और टेक्स्ट एडिटर बंद करें। - -5. **`python-dotenv` इंस्टॉल करें**: यदि आपने पहले से नहीं किया है, तो आपको `.env` फाइल से पर्यावरण चर (environment variables) लोड करने के लिए `python-dotenv` पैकेज इंस्टॉल करना होगा। इसे `pip` से इंस्टॉल करें: - - ```bash - pip install python-dotenv - ``` - -6. **अपने Python स्क्रिप्ट में पर्यावरण चर लोड करें**: अपने Python स्क्रिप्ट में `python-dotenv` पैकेज का उपयोग करके `.env` फाइल से पर्यावरण चर लोड करें: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -बस! आपने सफलतापूर्वक `.env` फाइल बनाई, अपना GitHub टोकन जोड़ा, और इसे अपने Python एप्लिकेशन में लोड किया। - -## अपने कंप्यूटर पर लोकल रूप से कैसे चलाएं - -अपने कंप्यूटर पर कोड चलाने के लिए, आपके पास [Python का कोई संस्करण इंस्टॉल होना चाहिए](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst)। - -फिर रिपोज को क्लोन करने के लिए: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -एक बार सब कुछ सेट हो जाने के बाद, आप शुरू कर सकते हैं! - -## वैकल्पिक चरण - -### Miniconda इंस्टॉल करना - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) एक हल्का इंस्टॉलर है जो [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python, और कुछ पैकेज इंस्टॉल करता है। -Conda एक पैकेज मैनेजर है, जो विभिन्न Python [**वर्चुअल एनवायरनमेंट्स**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) और पैकेजों के बीच स्विच करना आसान बनाता है। यह उन पैकेजों को इंस्टॉल करने में भी मदद करता है जो `pip` से उपलब्ध नहीं हैं। - -इसे सेटअप करने के लिए आप [MiniConda इंस्टॉलेशन गाइड](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) का पालन कर सकते हैं। - -Miniconda इंस्टॉल हो जाने के बाद, आपको रिपोज को क्लोन करना होगा (यदि आपने पहले नहीं किया है)। - -फिर, आपको एक वर्चुअल एनवायरनमेंट बनाना होगा। Conda के साथ ऐसा करने के लिए, एक नया एनवायरनमेंट फाइल (_environment.yml_) बनाएं। यदि आप Codespaces का उपयोग कर रहे हैं, तो इसे `.devcontainer` डायरेक्टरी के अंदर बनाएं, यानी `.devcontainer/environment.yml`। - -अपने एनवायरनमेंट फाइल में नीचे दिया गया स्निपेट डालें: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -यदि आपको conda का उपयोग करते समय त्रुटियां मिलती हैं, तो आप टर्मिनल में निम्न कमांड से Microsoft AI Libraries मैन्युअली इंस्टॉल कर सकते हैं। - -``` -conda install -c microsoft azure-ai-ml -``` - -एनवायरनमेंट फाइल में आवश्यक निर्भरताएं (dependencies) बताई गई हैं। `` वह नाम है जो आप अपने Conda एनवायरनमेंट के लिए रखना चाहते हैं, और `` वह Python का संस्करण है जिसे आप उपयोग करना चाहते हैं, उदाहरण के लिए, `3` Python का नवीनतम मुख्य संस्करण है। - -इसके बाद, आप नीचे दिए गए कमांड को अपने कमांड लाइन/टर्मिनल में चलाकर Conda एनवायरनमेंट बना सकते हैं: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -यदि आपको कोई समस्या आती है, तो [Conda एनवायरनमेंट गाइड](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst) देखें। - -### Python सपोर्ट एक्सटेंशन के साथ Visual Studio Code का उपयोग करना - -हम इस कोर्स के लिए [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) एडिटर का उपयोग करने की सलाह देते हैं, जिसमें [Python सपोर्ट एक्सटेंशन](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) इंस्टॉल हो। यह एक सुझाव है, अनिवार्य नहीं। - -> **Note**: जब आप कोर्स रिपोज को VS Code में खोलते हैं, तो आपके पास प्रोजेक्ट को कंटेनर के अंदर सेटअप करने का विकल्प होता है। ऐसा इसलिए क्योंकि कोर्स रिपोज में [विशेष `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) डायरेक्टरी होती है। इसके बारे में बाद में और जानकारी मिलेगी। - -> **Note**: जब आप रिपोज को क्लोन करके VS Code में खोलते हैं, तो यह अपने आप Python सपोर्ट एक्सटेंशन इंस्टॉल करने का सुझाव देगा। - -> **Note**: यदि VS Code आपको रिपोज को कंटेनर में फिर से खोलने का सुझाव देता है, तो इसे अस्वीकार करें ताकि आप लोकल इंस्टॉल किए गए Python का उपयोग कर सकें। - -### ब्राउज़र में Jupyter का उपयोग करना - -आप प्रोजेक्ट पर [Jupyter वातावरण](https://jupyter.org?WT.mc_id=academic-105485-koreyst) का उपयोग करके सीधे अपने ब्राउज़र में भी काम कर सकते हैं। क्लासिक Jupyter और [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) दोनों एक अच्छा विकास वातावरण प्रदान करते हैं, जिसमें ऑटो-कंप्लीशन, कोड हाइलाइटिंग जैसी सुविधाएं होती हैं। - -लोकल Jupyter शुरू करने के लिए, टर्मिनल/कमांड लाइन खोलें, कोर्स डायरेक्टरी में जाएं, और निम्न कमांड चलाएं: - -```bash -jupyter notebook -``` - -या - -```bash -jupyterhub -``` - -यह एक Jupyter इंस्टेंस शुरू करेगा और कमांड लाइन विंडो में इसे एक्सेस करने के लिए URL दिखाएगा। - -URL पर पहुँचने के बाद, आप कोर्स का आउटलाइन देख पाएंगे और किसी भी `*.ipynb` फाइल पर नेविगेट कर सकेंगे। उदाहरण के लिए, `08-building-search-applications/python/oai-solution.ipynb`। - -### कंटेनर में चलाना - -अपने कंप्यूटर या Codespace पर सब कुछ सेटअप करने के विकल्प के रूप में, आप [कंटेनर](../../../00-course-setup/) का उपयोग कर सकते हैं। कोर्स रिपोज में विशेष `.devcontainer` फोल्डर VS Code को प्रोजेक्ट को कंटेनर के अंदर सेटअप करने की अनुमति देता है। Codespaces के बाहर, इसके लिए Docker इंस्टॉल करना होगा, और यह थोड़ा जटिल हो सकता है, इसलिए हम इसे केवल कंटेनर के साथ काम करने का अनुभव रखने वालों को ही सुझाते हैं। - -GitHub Codespaces का उपयोग करते समय अपने API keys को सुरक्षित रखने के लिए Codespace Secrets का उपयोग करना सबसे अच्छा तरीका है। कृपया [Codespaces secrets management](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) गाइड का पालन करें। - -## पाठ और तकनीकी आवश्यकताएं - -कोर्स में 6 कॉन्सेप्ट लेसन और 6 कोडिंग लेसन हैं। - -कोडिंग लेसन के लिए, हम Azure OpenAI Service का उपयोग कर रहे हैं। इस कोड को चलाने के लिए आपको Azure OpenAI सेवा और API key की आवश्यकता होगी। आप [इस आवेदन को पूरा करके](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst) एक्सेस के लिए आवेदन कर सकते हैं। - -जब तक आपका आवेदन प्रक्रिया में है, प्रत्येक कोडिंग लेसन में एक `README.md` फाइल भी होती है जहाँ आप कोड और आउटपुट देख सकते हैं। - -## पहली बार Azure OpenAI Service का उपयोग करना - -यदि आप पहली बार Azure OpenAI सेवा का उपयोग कर रहे हैं, तो कृपया इस गाइड का पालन करें कि कैसे [Azure OpenAI Service रिसोर्स बनाएं और डिप्लॉय करें।](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## पहली बार OpenAI API का उपयोग करना - -यदि आप पहली बार OpenAI API का उपयोग कर रहे हैं, तो कृपया इस गाइड का पालन करें कि कैसे [इंटरफेस बनाएं और उपयोग करें।](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## अन्य शिक्षार्थियों से मिलें - -हमने अपने आधिकारिक [AI Community Discord सर्वर](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) में अन्य शिक्षार्थियों से मिलने के लिए चैनल बनाए हैं। यह समान विचारधारा वाले उद्यमियों, बिल्डर्स, छात्रों, और जनरेटिव AI में आगे बढ़ने के इच्छुक लोगों के साथ नेटवर्क बनाने का एक शानदार तरीका है। - -[![Join discord channel](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -प्रोजेक्ट टीम भी इस Discord सर्वर पर मौजूद रहेगी ताकि किसी भी शिक्षार्थी की मदद कर सके। - -## योगदान करें - -यह कोर्स एक ओपन-सोर्स पहल है। यदि आप सुधार के क्षेत्र या समस्याएं देखें, तो कृपया [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) बनाएं या [GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) दर्ज करें। - -प्रोजेक्ट टीम सभी योगदानों को ट्रैक करेगी। ओपन सोर्स में योगदान करना जनरेटिव AI में अपने करियर को बनाने का एक शानदार तरीका है। - -अधिकांश योगदानों के लिए आपको Contributor License Agreement (CLA) से सहमत होना होगा, जिसमें आप घोषणा करते हैं कि आपके पास अपने योगदान का उपयोग करने के अधिकार हैं। विवरण के लिए [CLA, Contributor License Agreement वेबसाइट](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst) देखें। - -महत्वपूर्ण: इस रिपो में टेक्स्ट का अनुवाद करते समय कृपया मशीन अनुवाद का उपयोग न करें। हम समुदाय के माध्यम से अनुवादों की जांच करेंगे, इसलिए केवल उन भाषाओं में अनुवाद के लिए स्वयंसेवा करें जिनमें आप प्रवीण हैं। - -जब आप एक पुल रिक्वेस्ट सबमिट करते हैं, तो CLA-बॉट स्वचालित रूप से निर्धारित करेगा कि आपको CLA प्रदान करने की आवश्यकता है या नहीं और PR को उपयुक्त रूप से लेबल या टिप्पणी करेगा। बस बॉट द्वारा दिए गए निर्देशों का पालन करें। आपको यह केवल एक बार सभी रिपोज में करना होगा जो हमारे CLA का उपयोग करते हैं। - -इस प्रोजेक्ट ने [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst) को अपनाया है। अधिक जानकारी के लिए Code of Conduct FAQ पढ़ें या किसी भी अतिरिक्त प्रश्न या टिप्पणियों के लिए [Email opencode](opencode@microsoft.com) से संपर्क करें। - -## चलिए शुरू करते हैं - -अब जब आपने इस कोर्स को पूरा करने के लिए आवश्यक चरण पूरे कर लिए हैं, तो चलिए [जनरेटिव AI और LLMs का परिचय](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) लेकर शुरू करते हैं। - -**अस्वीकरण**: -यह दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता के लिए प्रयासरत हैं, कृपया ध्यान दें कि स्वचालित अनुवादों में त्रुटियाँ या अशुद्धियाँ हो सकती हैं। मूल दस्तावेज़ अपनी मूल भाषा में ही अधिकारिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सलाह दी जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम जिम्मेदार नहीं हैं। \ No newline at end of file + + + + diff --git a/translations/hi/00-course-setup/SETUP.md b/translations/hi/00-course-setup/SETUP.md deleted file mode 100644 index aadfc7b2c..000000000 --- a/translations/hi/00-course-setup/SETUP.md +++ /dev/null @@ -1,146 +0,0 @@ - -# अपने Dev Environment को सेटअप करें - -हमने इस रिपॉजिटरी और कोर्स को एक [development container](https://containers.dev?WT.mc_id=academic-105485-koreyst) के साथ सेटअप किया है जिसमें एक Universal runtime है जो Python3, .NET, Node.js और Java डेवलपमेंट को सपोर्ट करता है। संबंधित कॉन्फ़िगरेशन `devcontainer.json` फाइल में परिभाषित है जो इस रिपॉजिटरी की रूट `.devcontainer/` फोल्डर में स्थित है। - -Dev container को सक्रिय करने के लिए, इसे [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (क्लाउड-होस्टेड runtime के लिए) या [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (लोकल डिवाइस-होस्टेड runtime के लिए) में लॉन्च करें। VS Code के अंदर dev containers कैसे काम करते हैं, इसके बारे में अधिक जानकारी के लिए [इस दस्तावेज़](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) को पढ़ें। - -> [!TIP] -> हम GitHub Codespaces का उपयोग करने की सलाह देते हैं क्योंकि यह कम प्रयास में जल्दी शुरुआत करने के लिए उपयुक्त है। यह व्यक्तिगत खातों के लिए एक उदार [फ्री उपयोग कोटा](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) प्रदान करता है। अपने कोटा का अधिकतम उपयोग करने के लिए निष्क्रिय codespaces को रोकने या हटाने के लिए [timeouts](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) कॉन्फ़िगर करें। - - -## 1. असाइनमेंट्स को निष्पादित करना - -प्रत्येक पाठ में _वैकल्पिक_ असाइनमेंट हो सकते हैं जो एक या अधिक प्रोग्रामिंग भाषाओं में प्रदान किए जा सकते हैं, जिनमें Python, .NET/C#, Java और JavaScript/TypeScript शामिल हैं। यह अनुभाग उन असाइनमेंट्स को निष्पादित करने से संबंधित सामान्य मार्गदर्शन प्रदान करता है। - -### 1.1 Python असाइनमेंट्स - -Python असाइनमेंट्स या तो एप्लिकेशन (`.py` फाइलें) के रूप में या Jupyter नोटबुक (`.ipynb` फाइलें) के रूप में प्रदान किए जाते हैं। -- नोटबुक चलाने के लिए, इसे Visual Studio Code में खोलें, फिर ऊपर दाईं ओर _Select Kernel_ पर क्लिक करें और दिखाए गए डिफ़ॉल्ट Python 3 विकल्प को चुनें। अब आप _Run All_ करके नोटबुक को निष्पादित कर सकते हैं। -- कमांड-लाइन से Python एप्लिकेशन चलाने के लिए, असाइनमेंट-विशिष्ट निर्देशों का पालन करें ताकि आप सही फाइलें चुनें और आवश्यक आर्गुमेंट्स प्रदान करें। - -## 2. Providers को कॉन्फ़िगर करना - -असाइनमेंट्स **शायद** एक या अधिक Large Language Model (LLM) डिप्लॉयमेंट्स के खिलाफ काम करने के लिए सेटअप किए जा सकते हैं, जो OpenAI, Azure या Hugging Face जैसे समर्थित सेवा प्रदाताओं के माध्यम से होते हैं। ये एक _hosted endpoint_ (API) प्रदान करते हैं जिसे हम सही क्रेडेंशियल्स (API key या token) के साथ प्रोग्रामेटिकली एक्सेस कर सकते हैं। इस कोर्स में, हम इन प्रदाताओं पर चर्चा करते हैं: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) जिसमें कोर GPT सीरीज सहित विविध मॉडल शामिल हैं। - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) जो OpenAI मॉडल्स के लिए एंटरप्राइज रेडीनेस पर केंद्रित है। - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) जो ओपन-सोर्स मॉडल्स और इन्फरेंस सर्वर प्रदान करता है। - -**आपको इन अभ्यासों के लिए अपने स्वयं के खाते का उपयोग करना होगा**। असाइनमेंट वैकल्पिक हैं इसलिए आप अपनी रुचि के अनुसार एक, सभी या कोई भी प्रदाता सेटअप कर सकते हैं। साइनअप के लिए कुछ मार्गदर्शन: - -| Signup | Cost | API Key | Playground | Comments | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst)| [Pricing](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst)| [Project-based](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [No-Code, Web](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | कई मॉडल उपलब्ध हैं | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst)| [Pricing](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst)| [SDK Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst)| [Studio Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [पहले से आवेदन करना आवश्यक है](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst)| -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Pricing](https://huggingface.co/pricing) | [Access Tokens](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst)| [Hugging Chat में सीमित मॉडल हैं](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -इस रिपॉजिटरी को विभिन्न प्रदाताओं के साथ उपयोग के लिए _configure_ करने के निर्देश नीचे दिए गए हैं। जिन असाइनमेंट्स को किसी विशेष प्रदाता की आवश्यकता होगी, उनके फाइलनाम में निम्न टैग होंगे: - - `aoai` - Azure OpenAI endpoint, key की आवश्यकता - - `oai` - OpenAI endpoint, key की आवश्यकता - - `hf` - Hugging Face token की आवश्यकता - -आप एक, कोई या सभी प्रदाताओं को कॉन्फ़िगर कर सकते हैं। संबंधित असाइनमेंट्स क्रेडेंशियल्स न मिलने पर त्रुटि दिखाएंगे। - -### 2.1. `.env` फाइल बनाएं - -हम मानते हैं कि आपने ऊपर दिए गए मार्गदर्शन को पढ़ लिया है, संबंधित प्रदाता के साथ साइन अप कर लिया है, और आवश्यक प्रमाणीकरण क्रेडेंशियल्स (API_KEY या token) प्राप्त कर लिए हैं। Azure OpenAI के मामले में, हम मानते हैं कि आपके पास Azure OpenAI Service (endpoint) का एक वैध डिप्लॉयमेंट है जिसमें कम से कम एक GPT मॉडल चैट कंप्लीशन के लिए डिप्लॉय किया गया है। - -अगला कदम है अपने **लोकल environment variables** को निम्नानुसार कॉन्फ़िगर करना: - -1. रूट फोल्डर में `.env.copy` नामक फाइल देखें, जिसमें इस तरह की सामग्री होनी चाहिए: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. नीचे दिए गए कमांड का उपयोग करके उस फाइल को `.env` में कॉपी करें। यह फाइल _gitignore-d_ है, जिससे आपके सीक्रेट्स सुरक्षित रहते हैं। - - ```bash - cp .env.copy .env - ``` - -3. मान भरें (दाएँ तरफ `=` के बाद के प्लेसहोल्डर्स को बदलें) जैसा कि अगले सेक्शन में बताया गया है। - -3. (वैकल्पिक) यदि आप GitHub Codespaces का उपयोग करते हैं, तो आपके पास environment variables को इस रिपॉजिटरी से जुड़े _Codespaces secrets_ के रूप में सेव करने का विकल्प होता है। उस स्थिति में, आपको लोकल .env फाइल सेटअप करने की आवश्यकता नहीं होगी। **हालांकि, ध्यान दें कि यह विकल्प केवल GitHub Codespaces के उपयोग पर ही काम करता है।** यदि आप Docker Desktop का उपयोग करते हैं तो आपको फिर भी .env फाइल सेटअप करनी होगी। - -### 2.2. `.env` फाइल भरें - -आइए जल्दी से उन वेरिएबल नामों पर नज़र डालें और समझें कि वे क्या दर्शाते हैं: - -| Variable | विवरण | -| :--- | :--- | -| HUGGING_FACE_API_KEY | यह वह यूजर एक्सेस टोकन है जो आपने अपने प्रोफ़ाइल में सेटअप किया है | -| OPENAI_API_KEY | यह गैर-Azure OpenAI endpoints के लिए सेवा का उपयोग करने की अनुमति देने वाली कुंजी है | -| AZURE_OPENAI_API_KEY | यह Azure OpenAI सेवा के लिए अनुमति कुंजी है | -| AZURE_OPENAI_ENDPOINT | यह Azure OpenAI संसाधन के लिए डिप्लॉय किया गया endpoint है | -| AZURE_OPENAI_DEPLOYMENT | यह _text generation_ मॉडल डिप्लॉयमेंट endpoint है | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | यह _text embeddings_ मॉडल डिप्लॉयमेंट endpoint है | -| | | - -नोट: अंतिम दो Azure OpenAI वेरिएबल्स चैट कंप्लीशन (टेक्स्ट जनरेशन) और वेक्टर सर्च (एम्बेडिंग्स) के लिए डिफ़ॉल्ट मॉडल को दर्शाते हैं। इन्हें सेट करने के निर्देश संबंधित असाइनमेंट्स में दिए जाएंगे। - -### 2.3 Azure कॉन्फ़िगर करें: पोर्टल से - -Azure OpenAI endpoint और key मान [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) में मिलेंगे, तो आइए वहीं से शुरू करें। - -1. [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) पर जाएं -1. साइडबार (बाएं मेनू) में **Keys and Endpoint** विकल्प पर क्लिक करें। -1. **Show Keys** पर क्लिक करें - आपको KEY 1, KEY 2 और Endpoint दिखाई देंगे। -1. AZURE_OPENAI_API_KEY के लिए KEY 1 मान का उपयोग करें। -1. AZURE_OPENAI_ENDPOINT के लिए Endpoint मान का उपयोग करें। - -अब हमें उन विशिष्ट मॉडलों के endpoints चाहिए जिन्हें हमने डिप्लॉय किया है। - -1. Azure OpenAI संसाधन के लिए साइडबार (बाएं मेनू) में **Model deployments** विकल्प पर क्लिक करें। -1. गंतव्य पृष्ठ पर, **Manage Deployments** पर क्लिक करें। - -यह आपको Azure OpenAI Studio वेबसाइट पर ले जाएगा, जहाँ हम नीचे बताए गए अन्य मान पाएंगे। - -### 2.4 Azure कॉन्फ़िगर करें: स्टूडियो से - -1. ऊपर बताए अनुसार अपने संसाधन से [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) पर जाएं। -1. वर्तमान में डिप्लॉय किए गए मॉडलों को देखने के लिए साइडबार (बाएं) में **Deployments** टैब पर क्लिक करें। -1. यदि आपका इच्छित मॉडल डिप्लॉय नहीं है, तो इसे डिप्लॉय करने के लिए **Create new deployment** का उपयोग करें। -1. आपको एक _text-generation_ मॉडल की आवश्यकता होगी - हम सुझाव देते हैं: **gpt-35-turbo** -1. आपको एक _text-embedding_ मॉडल की आवश्यकता होगी - हम सुझाव देते हैं: **text-embedding-ada-002** - -अब environment variables को अपडेट करें ताकि वे उपयोग किए गए _Deployment name_ को दर्शाएं। यह आमतौर पर मॉडल नाम के समान होगा जब तक कि आपने इसे स्पष्ट रूप से न बदला हो। उदाहरण के लिए, आपके पास हो सकता है: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**काम पूरा होने पर .env फाइल को सेव करना न भूलें**। अब आप फाइल से बाहर निकल सकते हैं और नोटबुक चलाने के निर्देशों पर वापस जा सकते हैं। - -### 2.5 OpenAI कॉन्फ़िगर करें: प्रोफ़ाइल से - -आपकी OpenAI API key आपके [OpenAI खाते](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) में मिल सकती है। यदि आपके पास खाता नहीं है, तो आप साइन अप कर सकते हैं और API key बना सकते हैं। एक बार key मिलने के बाद, आप इसे `.env` फाइल में `OPENAI_API_KEY` वेरिएबल में भर सकते हैं। - -### 2.6 Hugging Face कॉन्फ़िगर करें: प्रोफ़ाइल से - -आपका Hugging Face टोकन आपके प्रोफ़ाइल में [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst) के अंतर्गत मिलेगा। इन्हें सार्वजनिक रूप से पोस्ट या साझा न करें। इसके बजाय, इस प्रोजेक्ट के उपयोग के लिए एक नया टोकन बनाएं और उसे `.env` फाइल में `HUGGING_FACE_API_KEY` वेरिएबल के तहत कॉपी करें। _नोट:_ तकनीकी रूप से यह API key नहीं है, लेकिन प्रमाणीकरण के लिए उपयोग किया जाता है इसलिए हम संगति बनाए रखने के लिए इसी नामकरण का उपयोग कर रहे हैं। - -**अस्वीकरण**: -यह दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता के लिए प्रयासरत हैं, कृपया ध्यान दें कि स्वचालित अनुवादों में त्रुटियाँ या अशुद्धियाँ हो सकती हैं। मूल दस्तावेज़ अपनी मूल भाषा में ही अधिकारिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सलाह दी जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम जिम्मेदार नहीं हैं। \ No newline at end of file diff --git a/translations/hi/04-prompt-engineering-fundamentals/README.md b/translations/hi/04-prompt-engineering-fundamentals/README.md index 5d25a7077..ec81ad818 100644 --- a/translations/hi/04-prompt-engineering-fundamentals/README.md +++ b/translations/hi/04-prompt-engineering-fundamentals/README.md @@ -1,462 +1,15 @@ - -# प्रॉम्प्ट इंजीनियरिंग के मूल सिद्धांत - -[![Prompt Engineering Fundamentals](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.hi.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## परिचय -यह मॉड्यूल जनरेटिव AI मॉडलों में प्रभावी प्रॉम्प्ट बनाने के लिए आवश्यक अवधारणाओं और तकनीकों को कवर करता है। आप जिस तरह से LLM को प्रॉम्प्ट लिखते हैं, वह भी महत्वपूर्ण होता है। एक सावधानीपूर्वक तैयार किया गया प्रॉम्प्ट बेहतर गुणवत्ता वाली प्रतिक्रिया प्राप्त कर सकता है। लेकिन _प्रॉम्प्ट_ और _प्रॉम्प्ट इंजीनियरिंग_ जैसे शब्दों का क्या मतलब है? और मैं LLM को भेजे जाने वाले प्रॉम्प्ट _इनपुट_ को कैसे बेहतर बना सकता हूँ? ये वे सवाल हैं जिनका हम इस अध्याय और अगले में जवाब खोजने की कोशिश करेंगे। - -_जनरेटिव AI_ उपयोगकर्ता की मांगों के जवाब में नई सामग्री (जैसे, टेक्स्ट, इमेज, ऑडियो, कोड आदि) बना सकता है। यह OpenAI के GPT ("Generative Pre-trained Transformer") जैसे _लार्ज लैंग्वेज मॉडल_ का उपयोग करता है, जो प्राकृतिक भाषा और कोड के लिए प्रशिक्षित होते हैं। - -अब उपयोगकर्ता बिना किसी तकनीकी विशेषज्ञता या प्रशिक्षण के, चैट जैसे परिचित तरीकों से इन मॉडलों के साथ बातचीत कर सकते हैं। ये मॉडल _प्रॉम्प्ट-आधारित_ होते हैं - उपयोगकर्ता एक टेक्स्ट इनपुट (प्रॉम्प्ट) भेजते हैं और AI प्रतिक्रिया (completion) प्राप्त करते हैं। वे फिर "AI के साथ बातचीत" कर सकते हैं, कई चरणों में प्रॉम्प्ट को सुधारते हुए जब तक प्रतिक्रिया उनकी अपेक्षाओं के अनुरूप न हो। - -"प्रॉम्प्ट" अब जनरेटिव AI ऐप्स के लिए मुख्य _प्रोग्रामिंग इंटरफेस_ बन गए हैं, जो मॉडल को बताते हैं कि क्या करना है और लौटाई गई प्रतिक्रियाओं की गुणवत्ता को प्रभावित करते हैं। "प्रॉम्प्ट इंजीनियरिंग" एक तेजी से बढ़ता क्षेत्र है जो प्रॉम्प्ट के _डिजाइन और अनुकूलन_ पर केंद्रित है ताकि बड़े पैमाने पर लगातार और गुणवत्ता वाली प्रतिक्रियाएं दी जा सकें। - -## सीखने के लक्ष्य - -इस पाठ में, हम जानेंगे कि प्रॉम्प्ट इंजीनियरिंग क्या है, यह क्यों महत्वपूर्ण है, और हम किसी दिए गए मॉडल और एप्लिकेशन उद्देश्य के लिए अधिक प्रभावी प्रॉम्प्ट कैसे बना सकते हैं। हम प्रॉम्प्ट इंजीनियरिंग के मूल सिद्धांतों और सर्वोत्तम प्रथाओं को समझेंगे - और एक इंटरैक्टिव Jupyter नोटबुक "सैंडबॉक्स" वातावरण के बारे में जानेंगे जहाँ हम इन अवधारणाओं को वास्तविक उदाहरणों पर लागू होते देख सकते हैं। - -इस पाठ के अंत तक हम सक्षम होंगे: - -1. समझाना कि प्रॉम्प्ट इंजीनियरिंग क्या है और यह क्यों महत्वपूर्ण है। -2. प्रॉम्प्ट के घटकों का वर्णन करना और उनका उपयोग कैसे होता है। -3. प्रॉम्प्ट इंजीनियरिंग के लिए सर्वोत्तम प्रथाओं और तकनीकों को सीखना। -4. सीखी गई तकनीकों को वास्तविक उदाहरणों पर लागू करना, OpenAI endpoint का उपयोग करते हुए। - -## मुख्य शब्द - -प्रॉम्प्ट इंजीनियरिंग: AI मॉडलों को वांछित आउटपुट देने के लिए इनपुट डिज़ाइन और परिष्कृत करने की प्रक्रिया। -टोकनाइज़ेशन: टेक्स्ट को छोटे यूनिट्स (टोकन) में बदलने की प्रक्रिया, जिन्हें मॉडल समझ और संसाधित कर सकता है। -इंस्ट्रक्शन-ट्यूनड LLMs: बड़े भाषा मॉडल जिन्हें विशिष्ट निर्देशों के साथ फाइन-ट्यून किया गया है ताकि उनकी प्रतिक्रिया की सटीकता और प्रासंगिकता बेहतर हो। - -## सीखने का सैंडबॉक्स - -प्रॉम्प्ट इंजीनियरिंग फिलहाल विज्ञान से अधिक कला है। इसे बेहतर समझने का सबसे अच्छा तरीका है _अधिक अभ्यास_ करना और एक ट्रायल-एंड-एरर दृष्टिकोण अपनाना, जो एप्लिकेशन डोमेन विशेषज्ञता को अनुशंसित तकनीकों और मॉडल-विशिष्ट अनुकूलनों के साथ जोड़ता है। - -इस पाठ के साथ आने वाली Jupyter नोटबुक एक _सैंडबॉक्स_ वातावरण प्रदान करती है जहाँ आप जो सीखते हैं उसे तुरंत आज़मा सकते हैं - चाहे चलते-चलते या अंत में कोड चुनौती के हिस्से के रूप में। अभ्यास करने के लिए, आपको चाहिए: - -1. **एक Azure OpenAI API कुंजी** - तैनात LLM के लिए सेवा एंडपॉइंट। -2. **एक Python रनटाइम** - जिसमें नोटबुक को चलाया जा सके। -3. **स्थानीय पर्यावरण चर** - _[SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) चरणों को पूरा करें ताकि आप तैयार हो सकें_। - -नोटबुक में _शुरुआती_ अभ्यास शामिल हैं - लेकिन आप अपने खुद के _Markdown_ (विवरण) और _Code_ (प्रॉम्प्ट अनुरोध) सेक्शन जोड़ने के लिए प्रोत्साहित हैं ताकि और उदाहरण या विचार आज़माए जा सकें - और प्रॉम्प्ट डिज़ाइन के लिए अपनी समझ विकसित कर सकें। - -## चित्रित मार्गदर्शिका - -क्या आप इस पाठ में कवर किए गए मुख्य विषयों का एक बड़ा चित्र देखना चाहते हैं इससे पहले कि आप गहराई में जाएं? इस चित्रित मार्गदर्शिका को देखें, जो आपको मुख्य विषयों और प्रत्येक में सोचने के लिए प्रमुख बिंदुओं का एक सारांश देती है। पाठ का रोडमैप आपको मूल अवधारणाओं और चुनौतियों को समझने से लेकर प्रासंगिक प्रॉम्प्ट इंजीनियरिंग तकनीकों और सर्वोत्तम प्रथाओं के साथ उन्हें संबोधित करने तक ले जाता है। ध्यान दें कि इस मार्गदर्शिका में "उन्नत तकनीकें" अनुभाग इस पाठ्यक्रम के _अगले_ अध्याय में कवर की गई सामग्री को संदर्भित करता है। - -![Illustrated Guide to Prompt Engineering](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.hi.png) - -## हमारी स्टार्टअप - -अब, आइए बात करें कि _यह विषय_ हमारी स्टार्टअप मिशन से कैसे जुड़ा है, जो [शिक्षा में AI नवाचार लाने](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst) के लिए है। हम _व्यक्तिगत शिक्षण_ के AI-संचालित अनुप्रयोग बनाना चाहते हैं - तो आइए सोचें कि हमारे एप्लिकेशन के विभिन्न उपयोगकर्ता प्रॉम्प्ट कैसे "डिज़ाइन" कर सकते हैं: - -- **प्रशासक** AI से _पाठ्यक्रम डेटा का विश्लेषण करके कवरेज में अंतराल की पहचान_ करने के लिए कह सकते हैं। AI परिणामों का सारांश बना सकता है या कोड के साथ उन्हें विज़ुअलाइज़ कर सकता है। -- **शिक्षक** AI से _लक्षित दर्शकों और विषय के लिए पाठ योजना_ बनाने के लिए कह सकते हैं। AI निर्दिष्ट प्रारूप में व्यक्तिगत योजना तैयार कर सकता है। -- **छात्र** AI से _कठिन विषय में ट्यूटरिंग_ के लिए कह सकते हैं। AI अब छात्रों को उनके स्तर के अनुसार पाठ, संकेत और उदाहरणों के साथ मार्गदर्शन कर सकता है। - -यह तो बस शुरुआत है। [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) देखें - एक ओपन-सोर्स प्रॉम्प्ट लाइब्रेरी जिसे शिक्षा विशेषज्ञों ने तैयार किया है - ताकि संभावनाओं की व्यापक समझ मिल सके! _इन प्रॉम्प्ट्स को सैंडबॉक्स में या OpenAI Playground में चलाकर देखें कि क्या होता है!_ - - - -## प्रॉम्प्ट इंजीनियरिंग क्या है? - -हमने इस पाठ की शुरुआत **प्रॉम्प्ट इंजीनियरिंग** को इस रूप में परिभाषित करके की कि यह टेक्स्ट इनपुट (प्रॉम्प्ट) को _डिज़ाइन और अनुकूलित_ करने की प्रक्रिया है ताकि किसी दिए गए एप्लिकेशन उद्देश्य और मॉडल के लिए लगातार और गुणवत्ता वाली प्रतिक्रियाएं (completion) मिल सकें। इसे हम दो चरणों की प्रक्रिया मान सकते हैं: - -- किसी दिए गए मॉडल और उद्देश्य के लिए प्रारंभिक प्रॉम्प्ट _डिज़ाइन_ करना -- प्रतिक्रिया की गुणवत्ता सुधारने के लिए प्रॉम्प्ट को पुनः और पुनः _परिष्कृत_ करना - -यह अनिवार्य रूप से एक ट्रायल-एंड-एरर प्रक्रिया है, जिसमें उपयोगकर्ता की समझ और प्रयास की आवश्यकता होती है ताकि सर्वोत्तम परिणाम मिल सकें। तो यह क्यों महत्वपूर्ण है? इसका जवाब देने के लिए हमें पहले तीन अवधारणाओं को समझना होगा: - -- _टोकनाइज़ेशन_ = मॉडल प्रॉम्प्ट को कैसे "देखता" है -- _बेस LLMs_ = आधार मॉडल प्रॉम्प्ट को कैसे "प्रोसेस" करता है -- _इंस्ट्रक्शन-ट्यूनड LLMs_ = मॉडल अब "टास्क" को कैसे समझ सकता है - -### टोकनाइज़ेशन - -एक LLM प्रॉम्प्ट को _टोकन की एक श्रृंखला_ के रूप में देखता है, जहाँ विभिन्न मॉडल (या मॉडल के संस्करण) एक ही प्रॉम्प्ट को अलग-अलग तरीकों से टोकनाइज़ कर सकते हैं। चूंकि LLMs टोकन पर प्रशिक्षित होते हैं (कच्चे टेक्स्ट पर नहीं), इसलिए प्रॉम्प्ट के टोकनाइज़ेशन का तरीका उत्पन्न प्रतिक्रिया की गुणवत्ता पर सीधे प्रभाव डालता है। - -टोकनाइज़ेशन कैसे काम करता है, यह समझने के लिए [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) जैसे टूल्स का उपयोग करें। अपना प्रॉम्प्ट कॉपी करें - और देखें कि यह टोकन में कैसे बदलता है, खासकर व्हाइटस्पेस कैरेक्टर्स और विराम चिह्नों को कैसे संभाला जाता है। ध्यान दें कि यह उदाहरण एक पुराने LLM (GPT-3) को दिखाता है - इसलिए नए मॉडल के साथ इसे आजमाने पर परिणाम अलग हो सकता है। - -![Tokenization](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.hi.png) - -### अवधारणा: फाउंडेशन मॉडल - -एक बार प्रॉम्प्ट टोकनाइज़ हो जाने के बाद, ["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (या फाउंडेशन मॉडल) का मुख्य कार्य उस श्रृंखला में अगला टोकन भविष्यवाणी करना होता है। चूंकि LLMs विशाल टेक्स्ट डेटासेट पर प्रशिक्षित होते हैं, उन्हें टोकन के बीच सांख्यिकीय संबंधों का अच्छा ज्ञान होता है और वे आत्मविश्वास के साथ भविष्यवाणी कर सकते हैं। ध्यान दें कि वे प्रॉम्प्ट या टोकन के शब्दों का _अर्थ_ नहीं समझते; वे केवल एक पैटर्न देखते हैं जिसे वे अपनी अगली भविष्यवाणी से "पूरा" कर सकते हैं। वे तब तक भविष्यवाणी करते रहते हैं जब तक उपयोगकर्ता हस्तक्षेप या कोई पूर्व निर्धारित शर्त उन्हें रोकती नहीं। - -क्या आप देखना चाहते हैं कि प्रॉम्प्ट-आधारित पूर्णता कैसे काम करती है? ऊपर दिया गया प्रॉम्प्ट Azure OpenAI Studio के [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) में डिफ़ॉल्ट सेटिंग्स के साथ दर्ज करें। सिस्टम प्रॉम्प्ट को सूचना के अनुरोध के रूप में मानता है - इसलिए आपको ऐसी पूर्णता दिखनी चाहिए जो इस संदर्भ को संतुष्ट करे। - -लेकिन अगर उपयोगकर्ता कुछ विशिष्ट देखना चाहता है जो किसी मानदंड या कार्य उद्देश्य को पूरा करता हो? तब _इंस्ट्रक्शन-ट्यूनड_ LLMs काम में आते हैं। - -![Base LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.hi.png) - -### अवधारणा: इंस्ट्रक्शन-ट्यूनड LLMs - -[इंस्ट्रक्शन-ट्यूनड LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) फाउंडेशन मॉडल से शुरू होता है और इसे उदाहरणों या इनपुट/आउटपुट जोड़ों (जैसे, मल्टी-टर्न "मैसेजेस") के साथ फाइन-ट्यून करता है, जिनमें स्पष्ट निर्देश हो सकते हैं - और AI की प्रतिक्रिया उस निर्देश का पालन करने का प्रयास करती है। - -यह Reinforcement Learning with Human Feedback (RLHF) जैसी तकनीकों का उपयोग करता है, जो मॉडल को _निर्देशों का पालन_ करना और _फीडबैक से सीखना_ सिखाता है ताकि यह ऐसी प्रतिक्रियाएं दे जो व्यावहारिक अनुप्रयोगों के लिए बेहतर उपयुक्त और उपयोगकर्ता उद्देश्यों के लिए अधिक प्रासंगिक हों। - -आइए इसे आजमाएं - ऊपर दिए गए प्रॉम्प्ट को फिर से देखें, लेकिन अब _सिस्टम संदेश_ को निम्नलिखित निर्देश के साथ बदलें: - -> _आपको जो सामग्री दी गई है, उसका सारांश दूसरे दर्जे के छात्र के लिए बनाएं। परिणाम को 3-5 बुलेट पॉइंट्स के साथ एक पैराग्राफ तक सीमित रखें।_ - -देखें कि परिणाम अब वांछित लक्ष्य और प्रारूप के अनुरूप कैसे अनुकूलित हो गया है? एक शिक्षक अब इस प्रतिक्रिया का सीधे अपने कक्षा के स्लाइड में उपयोग कर सकता है। - -![Instruction Tuned LLM Chat Completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.hi.png) - -## हमें प्रॉम्प्ट इंजीनियरिंग की आवश्यकता क्यों है? - -अब जब हम जानते हैं कि LLMs प्रॉम्प्ट को कैसे प्रोसेस करते हैं, तो आइए बात करें कि _हमें_ प्रॉम्प्ट इंजीनियरिंग की आवश्यकता क्यों है। इसका जवाब इस तथ्य में निहित है कि वर्तमान LLMs कई चुनौतियां पेश करते हैं, जो _विश्वसनीय और लगातार पूर्णताएं_ प्राप्त करना बिना प्रॉम्प्ट निर्माण और अनुकूलन में प्रयास किए कठिन बना देती हैं। उदाहरण के लिए: - -1. **मॉडल प्रतिक्रियाएं यादृच्छिक होती हैं।** _एक ही प्रॉम्प्ट_ विभिन्न मॉडलों या मॉडल संस्करणों के साथ अलग-अलग प्रतिक्रियाएं दे सकता है। और यह _एक ही मॉडल_ के साथ भी अलग-अलग समय पर अलग परिणाम दे सकता है। _प्रॉम्प्ट इंजीनियरिंग तकनीकें इन भिन्नताओं को कम करने में मदद कर सकती हैं बेहतर गार्डरेल प्रदान करके_। - -2. **मॉडल प्रतिक्रियाएं गढ़ सकते हैं।** मॉडल _बड़े लेकिन सीमित_ डेटासेट पर पूर्व-प्रशिक्षित होते हैं, जिसका अर्थ है कि उनके पास प्रशिक्षण दायरे के बाहर के अवधारणाओं का ज्ञान नहीं होता। परिणामस्वरूप, वे ऐसी पूर्णताएं उत्पन्न कर सकते हैं जो गलत, काल्पनिक या ज्ञात तथ्यों के सीधे विरोधाभासी हों। _प्रॉम्प्ट इंजीनियरिंग तकनीकें उपयोगकर्ताओं को ऐसी गढ़ी हुई जानकारियों की पहचान करने और उन्हें कम करने में मदद करती हैं, जैसे AI से संदर्भ या तर्क मांगना_। - -3. **मॉडल की क्षमताएं भिन्न होंगी।** नए मॉडल या मॉडल पीढ़ियां अधिक समृद्ध क्षमताएं लाएंगी लेकिन साथ ही लागत और जटिलता में अनूठे विचित्रताएं और समझौते भी लेकर आएंगी। _प्रॉम्प्ट इंजीनियरिंग हमें सर्वोत्तम प्रथाओं और वर्कफ़्लोज़ को विकसित करने में मदद कर सकती है जो भिन्नताओं को छुपा कर मॉडल-विशिष्ट आवश्यकताओं के अनुसार स्केलेबल और सहज तरीके से अनुकूलित हो सकें_। - -आइए इसे OpenAI या Azure OpenAI Playground में देखें: - -- एक ही प्रॉम्प्ट को विभिन्न LLM तैनाती (जैसे, OpenAI, Azure OpenAI, Hugging Face) के साथ उपयोग करें - क्या आपने भिन्नताएं देखीं? -- एक ही प्रॉम्प्ट को बार-बार _एक ही_ LLM तैनाती (जैसे, Azure OpenAI playground) के साथ उपयोग करें - ये भिन्नताएं कैसे अलग थीं? - -### गढ़ी हुई जानकारियों का उदाहरण - -इस कोर्स में, हम शब्द **"गढ़ना"** का उपयोग उस घटना के लिए करते हैं जहाँ LLMs कभी-कभी अपने प्रशिक्षण या अन्य सीमाओं के कारण तथ्यात्मक रूप से गलत जानकारी उत्पन्न करते हैं। आपने इसे लोकप्रिय लेखों या शोध पत्रों में _"हैलुसिनेशन"_ के रूप में भी सुना होगा। हालांकि, हम दृढ़ता से सुझाव देते हैं कि _"गढ़ना"_ शब्द का उपयोग करें ताकि हम गलती से इस व्यवहार को मानव-समान गुण न मान लें, जो मशीन-चालित परिणाम है। यह [Responsible AI guidelines](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) के अनुरूप भी है, जो ऐसे शब्दों को हटाता है जो कुछ संदर्भों में अपमानजनक या गैर-समावेशी माने जा सकते हैं। - -गढ़ी हुई जानकारियों के काम करने का अंदाजा लगाना चाहते हैं? ऐसा प्रॉम्प्ट सोचें जो AI को एक अस्तित्वहीन विषय के लिए सामग्री बनाने का निर्देश देता हो (ताकि यह प्रशिक्षण डेटासेट में न मिले)। उदाहरण के लिए - मैंने यह प्रॉम्प्ट आजमाया: -# मार्टियन युद्ध 2076 पर पाठ योजना - -## पाठ का उद्देश्य -छात्रों को 2076 के मार्टियन युद्ध के इतिहास, कारणों, प्रमुख घटनाओं और परिणामों के बारे में समझ विकसित करना। - -## पाठ की अवधि -45 मिनट - -## आवश्यक सामग्री -- पाठ्यपुस्तक के संबंधित अध्याय -- मार्टियन युद्ध के नक्शे और चित्र -- वीडियो क्लिप (यदि उपलब्ध हो) -- नोटबुक और पेन - -## पाठ योजना - -### 1. परिचय (5 मिनट) -- छात्रों से पूछें कि वे मंगल ग्रह के बारे में क्या जानते हैं। -- संक्षेप में मार्टियन युद्ध के विषय का परिचय दें। -- युद्ध के समय और स्थान का उल्लेख करें। - -### 2. युद्ध के कारण (10 मिनट) -- मार्टियन युद्ध के मुख्य कारणों पर चर्चा करें: - - संसाधनों के लिए संघर्ष - - राजनीतिक तनाव - - तकनीकी विकास और प्रतिस्पर्धा -- छात्रों को कारणों को समझाने के लिए उदाहरण दें। - -### 3. प्रमुख घटनाएँ (15 मिनट) -- युद्ध के दौरान हुई महत्वपूर्ण घटनाओं को क्रमवार समझाएं: - - युद्ध की शुरुआत - - मुख्य लड़ाइयाँ और रणनीतियाँ - - निर्णायक क्षण -- नक्शे और चित्रों की मदद से घटनाओं को स्पष्ट करें। - -### 4. युद्ध के परिणाम (10 मिनट) -- युद्ध के प्रभावों पर चर्चा करें: - - मार्टियन समाज पर प्रभाव - - पृथ्वी और मंगल के बीच संबंधों में बदलाव - - तकनीकी और सामाजिक बदलाव -- छात्रों से युद्ध के परिणामों पर अपने विचार साझा करने को कहें। - -### 5. सारांश और प्रश्नोत्तर (5 मिनट) -- पूरे पाठ का संक्षिप्त पुनरावलोकन करें। -- छात्रों के सवालों का उत्तर दें। - -## गृहकार्य -- छात्रों को मार्टियन युद्ध पर एक संक्षिप्त निबंध लिखने के लिए कहें, जिसमें वे युद्ध के कारण और परिणामों पर अपने विचार व्यक्त करें। -एक वेब खोज ने मुझे दिखाया कि मंगल युद्धों पर काल्पनिक कहानियाँ (जैसे, टेलीविजन सीरीज या किताबें) थीं - लेकिन 2076 में कोई नहीं। सामान्य समझ भी बताती है कि 2076 _भविष्य में_ है और इसलिए, इसे किसी वास्तविक घटना से जोड़ा नहीं जा सकता। - -तो जब हम इस प्रॉम्प्ट को विभिन्न LLM प्रदाताओं के साथ चलाते हैं तो क्या होता है? - -> **Response 1**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.hi.png) - -> **Response 2**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.hi.png) - -> **Response 3**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.hi.png) - -जैसा कि उम्मीद थी, प्रत्येक मॉडल (या मॉडल संस्करण) थोड़ा अलग प्रतिक्रिया देता है, जो यादृच्छिक व्यवहार और मॉडल की क्षमता में भिन्नता के कारण होता है। उदाहरण के लिए, एक मॉडल 8वीं कक्षा के छात्रों को लक्षित करता है जबकि दूसरा हाई-स्कूल के छात्र को मानता है। लेकिन तीनों मॉडलों ने ऐसी प्रतिक्रियाएँ दीं जो एक अनजान उपयोगकर्ता को यह विश्वास दिला सकती थीं कि यह घटना वास्तविक थी। - -प्रॉम्प्ट इंजीनियरिंग तकनीकें जैसे _मेटाप्रॉम्प्टिंग_ और _टेम्परेचर कॉन्फ़िगरेशन_ मॉडल की गलतियों को कुछ हद तक कम कर सकती हैं। नए प्रॉम्प्ट इंजीनियरिंग _आर्किटेक्चर_ भी नए टूल्स और तकनीकों को सहजता से प्रॉम्प्ट फ्लो में शामिल करते हैं, ताकि इन प्रभावों को कम किया जा सके। - -## केस स्टडी: GitHub Copilot - -इस सेक्शन को समाप्त करते हैं यह समझकर कि प्रॉम्प्ट इंजीनियरिंग का वास्तविक दुनिया के समाधानों में कैसे उपयोग होता है, एक केस स्टडी देखकर: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst)। - -GitHub Copilot आपका "AI जोड़ीदार प्रोग्रामर" है - यह टेक्स्ट प्रॉम्प्ट्स को कोड पूर्णताओं में बदलता है और आपके विकास वातावरण (जैसे, Visual Studio Code) में एक सहज उपयोगकर्ता अनुभव के लिए एकीकृत होता है। नीचे दिए गए ब्लॉग श्रृंखला में दस्तावेज़ित अनुसार, सबसे पहला संस्करण OpenAI Codex मॉडल पर आधारित था - जिसमें इंजीनियरों ने जल्दी ही मॉडल को बेहतर बनाने और बेहतर प्रॉम्प्ट इंजीनियरिंग तकनीकों को विकसित करने की आवश्यकता महसूस की, ताकि कोड की गुणवत्ता सुधारी जा सके। जुलाई में, उन्होंने [Codex से आगे बढ़ने वाला एक बेहतर AI मॉडल](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) पेश किया, जो और भी तेज सुझाव देता है। - -उनके सीखने की यात्रा को समझने के लिए पोस्ट्स को क्रम में पढ़ें। - -- **मई 2023** | [GitHub Copilot आपके कोड को समझने में बेहतर हो रहा है](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **मई 2023** | [GitHub के अंदर: GitHub Copilot के पीछे के LLMs के साथ काम करना](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **जून 2023** | [GitHub Copilot के लिए बेहतर प्रॉम्प्ट कैसे लिखें](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **जुलाई 2023** | [.. GitHub Copilot बेहतर AI मॉडल के साथ Codex से आगे बढ़ता है](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **जुलाई 2023** | [प्रॉम्प्ट इंजीनियरिंग और LLMs के लिए डेवलपर गाइड](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **सितंबर 2023** | [एंटरप्राइज LLM ऐप कैसे बनाएं: GitHub Copilot से सीख](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -आप उनके [इंजीनियरिंग ब्लॉग](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) में भी ऐसे और पोस्ट देख सकते हैं, जैसे [यहाँ](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst), जो दिखाता है कि ये मॉडल और तकनीकें वास्तविक दुनिया के अनुप्रयोगों को चलाने के लिए कैसे _लागू_ की जाती हैं। - ---- - - - -## प्रॉम्प्ट निर्माण - -हमने देखा कि प्रॉम्प्ट इंजीनियरिंग क्यों महत्वपूर्ण है - अब समझते हैं कि प्रॉम्प्ट कैसे _निर्मित_ होते हैं ताकि हम अधिक प्रभावी प्रॉम्प्ट डिज़ाइन के लिए विभिन्न तकनीकों का मूल्यांकन कर सकें। - -### बेसिक प्रॉम्प्ट - -आइए बेसिक प्रॉम्प्ट से शुरू करें: एक टेक्स्ट इनपुट जो मॉडल को बिना किसी अन्य संदर्भ के भेजा जाता है। यहाँ एक उदाहरण है - जब हम US राष्ट्रीय गान के पहले कुछ शब्द OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst) को भेजते हैं, तो यह तुरंत अगली कुछ पंक्तियाँ _पूरा_ कर देता है, जो बुनियादी भविष्यवाणी व्यवहार को दर्शाता है। - -| प्रॉम्प्ट (इनपुट) | पूर्णता (आउटपुट) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | ऐसा लगता है कि आप "The Star-Spangled Banner," जो संयुक्त राज्य अमेरिका का राष्ट्रीय गान है, के बोल शुरू कर रहे हैं। पूरा गीत इस प्रकार है ... | - -### जटिल प्रॉम्प्ट - -अब उस बेसिक प्रॉम्प्ट में संदर्भ और निर्देश जोड़ते हैं। [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) हमें एक जटिल प्रॉम्प्ट को _मैसेजेस_ के संग्रह के रूप में बनाने देता है, जिसमें: - -- इनपुट/आउटपुट जोड़े जो _यूजर_ इनपुट और _असिस्टेंट_ प्रतिक्रिया को दर्शाते हैं। -- सिस्टम मैसेज जो असिस्टेंट के व्यवहार या व्यक्तित्व के लिए संदर्भ सेट करता है। - -अब अनुरोध नीचे दिए गए रूप में होता है, जहाँ _टोकनाइज़ेशन_ प्रभावी रूप से संदर्भ और बातचीत से संबंधित जानकारी पकड़ता है। अब, सिस्टम संदर्भ बदलना पूर्णताओं की गुणवत्ता पर उतना ही प्रभाव डाल सकता है, जितना कि उपयोगकर्ता द्वारा दिया गया इनपुट। - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### निर्देशात्मक प्रॉम्प्ट - -उपरोक्त उदाहरणों में, उपयोगकर्ता प्रॉम्प्ट एक सरल टेक्स्ट क्वेरी था जिसे सूचना के लिए अनुरोध के रूप में समझा जा सकता है। _निर्देशात्मक_ प्रॉम्प्ट्स के साथ, हम उस टेक्स्ट का उपयोग किसी कार्य को अधिक विस्तार से निर्दिष्ट करने के लिए कर सकते हैं, जिससे AI को बेहतर मार्गदर्शन मिलता है। यहाँ एक उदाहरण है: - -| प्रॉम्प्ट (इनपुट) | पूर्णता (आउटपुट) | निर्देश प्रकार | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Write a description of the Civil War | _एक सरल पैराग्राफ लौटाया गया_ | सरल | -| Write a description of the Civil War. Provide key dates and events and describe their significance | _एक पैराग्राफ के बाद मुख्य घटनाओं की तारीखों की सूची के साथ विवरण लौटाया गया_ | जटिल | -| Write a description of the Civil War in 1 paragraph. Provide 3 bullet points with key dates and their significance. Provide 3 more bullet points with key historical figures and their contributions. Return the output as a JSON file | _अधिक विस्तृत विवरण एक टेक्स्ट बॉक्स में JSON स्वरूप में लौटाता है जिसे आप कॉपी-पेस्ट कर फाइल में सेव कर सकते हैं और आवश्यकतानुसार सत्यापित कर सकते हैं_ | जटिल। स्वरूपित। | - -## प्राथमिक सामग्री - -उपरोक्त उदाहरणों में, प्रॉम्प्ट अभी भी काफी खुला था, जिससे LLM यह तय कर सकता था कि उसके पूर्व-प्रशिक्षित डेटासेट का कौन सा हिस्सा प्रासंगिक है। _प्राथमिक सामग्री_ डिज़ाइन पैटर्न के साथ, इनपुट टेक्स्ट को दो भागों में विभाजित किया जाता है: - -- एक निर्देश (क्रिया) -- प्रासंगिक सामग्री (जो क्रिया को प्रभावित करती है) - -यहाँ एक उदाहरण है जहाँ निर्देश है "इसे 2 वाक्यों में संक्षेप करें"। - -| प्रॉम्प्ट (इनपुट) | पूर्णता (आउटपुट) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. It is named after the Roman god Jupiter.[19] When viewed from Earth, Jupiter can be bright enough for its reflected light to cast visible shadows,[20] and is on average the third-brightest natural object in the night sky after the Moon and Venus.
**Summarize this in 2 short sentences** | Jupiter, सूर्य से पाँचवाँ ग्रह, सौरमंडल का सबसे बड़ा ग्रह है और रात के आकाश में सबसे चमकीले पिंडों में से एक माना जाता है। इसका नाम रोमन देवता Jupiter के नाम पर रखा गया है, यह एक गैस जायंट है जिसका द्रव्यमान सौरमंडल के अन्य सभी ग्रहों के द्रव्यमान का दो और आधा गुना है। | - -प्राथमिक सामग्री खंड का उपयोग विभिन्न तरीकों से किया जा सकता है ताकि अधिक प्रभावी निर्देश दिए जा सकें: - -- **उदाहरण** - मॉडल को स्पष्ट निर्देश देने के बजाय, उसे कुछ उदाहरण दें और वह पैटर्न को समझे। -- **संकेत** - निर्देश के बाद एक "संकेत" दें जो पूर्णता को प्रेरित करता है, जिससे मॉडल अधिक प्रासंगिक प्रतिक्रियाओं की ओर बढ़े। -- **टेम्पलेट्स** - ये दोहराए जाने वाले 'रेसिपी' होते हैं जिनमें प्लेसहोल्डर्स (वेरिएबल्स) होते हैं जिन्हें विशिष्ट उपयोग मामलों के लिए डेटा के साथ अनुकूलित किया जा सकता है। - -आइए इन्हें क्रियान्वित करते हैं। - -### उदाहरणों का उपयोग - -यह एक तरीका है जहाँ आप प्राथमिक सामग्री का उपयोग करके मॉडल को इच्छित आउटपुट के कुछ उदाहरण देते हैं, और मॉडल पैटर्न को समझता है। दिए गए उदाहरणों की संख्या के आधार पर, हमारे पास ज़ीरो-शॉट, वन-शॉट, फ्यू-शॉट प्रॉम्प्टिंग हो सकती है। - -प्रॉम्प्ट अब तीन घटकों से बना है: - -- एक कार्य विवरण -- इच्छित आउटपुट के कुछ उदाहरण -- एक नए उदाहरण की शुरुआत (जो अप्रत्यक्ष रूप से कार्य विवरण बन जाता है) - -| सीखने का प्रकार | प्रॉम्प्ट (इनपुट) | पूर्णता (आउटपुट) | -| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| ज़ीरो-शॉट | "The Sun is Shining". Translate to Spanish | "El Sol está brillando". | -| वन-शॉट | "The Sun is Shining" => ""El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| फ्यू-शॉट | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketball | -| | | | - -ध्यान दें कि ज़ीरो-शॉट प्रॉम्प्टिंग में हमें स्पष्ट निर्देश ("Translate to Spanish") देना पड़ा, लेकिन वन-शॉट प्रॉम्प्टिंग में यह अप्रत्यक्ष रूप से समझ लिया गया। फ्यू-शॉट उदाहरण दिखाता है कि अधिक उदाहरण जोड़ने से मॉडल बिना अतिरिक्त निर्देश के अधिक सटीक अनुमान लगा सकता है। - -### प्रॉम्प्ट संकेत - -प्राथमिक सामग्री का उपयोग करने की एक और तकनीक है _संकेत_ देना बजाय उदाहरणों के। इस मामले में, हम मॉडल को सही दिशा में एक छोटा सा संकेत देते हैं जो इच्छित प्रतिक्रिया प्रारूप को दर्शाता है। मॉडल फिर उस संकेत को लेकर उसी शैली में जारी रखता है। - -| संकेतों की संख्या | प्रॉम्प्ट (इनपुट) | पूर्णता (आउटपुट) | -| :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. - -**Summarize This** | बृहस्पति हमारे सौरमंडल का सबसे बड़ा ग्रह है और सूर्य से पाँचवां ग्रह है। यह एक गैस जायंट है जिसकी द्रव्यमान सूर्य के द्रव्यमान का 1/1000वां हिस्सा है, लेकिन यह सभी अन्य ग्रहों के कुल द्रव्यमान से भारी है। प्राचीन सभ्यताओं को बृहस्पति के बारे में लंबे समय से पता है, और यह रात के आकाश में आसानी से दिखाई देता है। | -| 1 | बृहस्पति सूर्य से पाँचवां ग्रह है और सौरमंडल का सबसे बड़ा ग्रह है। यह एक गैस जायंट है जिसकी द्रव्यमान सूर्य के द्रव्यमान का एक हजारवां हिस्सा है, लेकिन सौरमंडल के सभी अन्य ग्रहों के कुल द्रव्यमान से ढाई गुना अधिक है। बृहस्पति रात के आकाश में नग्न आंखों से दिखाई देने वाले सबसे चमकीले पिंडों में से एक है, और इसे प्राचीन सभ्यताओं ने इतिहास के रिकॉर्ड होने से पहले से जाना है।
**Summarize This**
हमने जो सीखा वह यह है कि बृहस्पति | सूर्य से पाँचवां ग्रह है और सौरमंडल का सबसे बड़ा ग्रह है। यह एक गैस जायंट है जिसकी द्रव्यमान सूर्य के द्रव्यमान का एक हजारवां हिस्सा है, लेकिन सभी अन्य ग्रहों के कुल द्रव्यमान से ढाई गुना अधिक है। यह आसानी से नग्न आंखों से दिखाई देता है और प्राचीन काल से जाना जाता है। | -| 2 | बृहस्पति सूर्य से पाँचवां ग्रह है और सौरमंडल का सबसे बड़ा ग्रह है। यह एक गैस जायंट है जिसकी द्रव्यमान सूर्य के द्रव्यमान का एक हजारवां हिस्सा है, लेकिन सौरमंडल के सभी अन्य ग्रहों के कुल द्रव्यमान से ढाई गुना अधिक है। बृहस्पति रात के आकाश में नग्न आंखों से दिखाई देने वाले सबसे चमकीले पिंडों में से एक है, और इसे प्राचीन सभ्यताओं ने इतिहास के रिकॉर्ड होने से पहले से जाना है।
**Summarize This**
हमने जो शीर्ष 3 तथ्य सीखे: | 1. बृहस्पति सूर्य से पाँचवां ग्रह है और सौरमंडल का सबसे बड़ा ग्रह है।
2. यह एक गैस जायंट है जिसकी द्रव्यमान सूर्य के द्रव्यमान का एक हजारवां हिस्सा है...
3. बृहस्पति प्राचीन काल से नग्न आंखों से दिखाई देता रहा है ... | -| | | | - -### प्रॉम्प्ट टेम्प्लेट्स - -प्रॉम्प्ट टेम्प्लेट एक _पूर्व-निर्धारित प्रॉम्प्ट का नुस्खा_ होता है जिसे जरूरत के अनुसार संग्रहित और पुनः उपयोग किया जा सकता है, ताकि बड़े पैमाने पर अधिक सुसंगत उपयोगकर्ता अनुभव प्रदान किए जा सकें। सबसे सरल रूप में, यह प्रॉम्प्ट उदाहरणों का एक संग्रह होता है जैसे [OpenAI का यह उदाहरण](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) जो इंटरैक्टिव प्रॉम्प्ट घटकों (उपयोगकर्ता और सिस्टम संदेश) और API-आधारित अनुरोध प्रारूप दोनों को प्रदान करता है - पुनः उपयोग का समर्थन करने के लिए। - -इसके अधिक जटिल रूप में, जैसे [LangChain का यह उदाहरण](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst), इसमें _प्लेसहोल्डर_ होते हैं जिन्हें विभिन्न स्रोतों (उपयोगकर्ता इनपुट, सिस्टम संदर्भ, बाहरी डेटा स्रोत आदि) से डेटा के साथ बदला जा सकता है ताकि प्रॉम्प्ट को गतिशील रूप से बनाया जा सके। इससे हम पुनः उपयोग योग्य प्रॉम्प्ट्स की एक लाइब्रेरी बना सकते हैं जो **प्रोग्रामेटिक रूप से** बड़े पैमाने पर सुसंगत उपयोगकर्ता अनुभव प्रदान कर सके। - -अंत में, टेम्प्लेट्स का असली मूल्य इस बात में है कि हम _प्रॉम्प्ट लाइब्रेरीज़_ बना और प्रकाशित कर सकें जो विशिष्ट अनुप्रयोग क्षेत्रों के लिए अनुकूलित हों - जहां प्रॉम्प्ट टेम्प्लेट अब _ऐसे संदर्भ या उदाहरणों को प्रतिबिंबित करता है_ जो लक्षित उपयोगकर्ता समूह के लिए प्रतिक्रियाओं को अधिक प्रासंगिक और सटीक बनाते हैं। [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) रिपॉजिटरी इस दृष्टिकोण का एक बेहतरीन उदाहरण है, जो शिक्षा क्षेत्र के लिए प्रॉम्प्ट्स की लाइब्रेरी तैयार करता है, जिसमें पाठ योजना, पाठ्यक्रम डिजाइन, छात्र ट्यूटरिंग जैसे मुख्य उद्देश्यों पर जोर दिया गया है। - -## सहायक सामग्री - -यदि हम प्रॉम्प्ट निर्माण को एक निर्देश (कार्य) और एक लक्ष्य (प्राथमिक सामग्री) के रूप में सोचें, तो _माध्यमिक सामग्री_ वह अतिरिक्त संदर्भ है जो हम आउटपुट को किसी न किसी तरह प्रभावित करने के लिए प्रदान करते हैं। यह ट्यूनिंग पैरामीटर, फॉर्मेटिंग निर्देश, विषय वर्गीकरण आदि हो सकते हैं जो मॉडल को प्रतिक्रिया को इच्छित उपयोगकर्ता उद्देश्यों या अपेक्षाओं के अनुरूप _अनुकूलित_ करने में मदद करते हैं। - -उदाहरण के लिए: यदि हमारे पास पाठ्यक्रम सूची है जिसमें सभी उपलब्ध पाठ्यक्रमों के विस्तृत मेटाडेटा (नाम, विवरण, स्तर, मेटाडेटा टैग, प्रशिक्षक आदि) शामिल हैं: - -- हम एक निर्देश दे सकते हैं "Fall 2023 के लिए पाठ्यक्रम सूची का सारांश बनाओ" -- हम प्राथमिक सामग्री के रूप में कुछ उदाहरण दे सकते हैं कि आउटपुट कैसा होना चाहिए -- हम माध्यमिक सामग्री के रूप में शीर्ष 5 "टैग" की पहचान कर सकते हैं। - -अब, मॉडल कुछ उदाहरणों द्वारा दिखाए गए प्रारूप में सारांश प्रदान कर सकता है - लेकिन यदि परिणाम में कई टैग हों, तो यह माध्यमिक सामग्री में पहचाने गए 5 टैग को प्राथमिकता दे सकता है। - ---- - - - -## प्रॉम्प्टिंग के सर्वोत्तम अभ्यास - -अब जब हमें पता चल गया है कि प्रॉम्प्ट कैसे _निर्मित_ किए जा सकते हैं, तो हम सोच सकते हैं कि उन्हें _डिजाइन_ कैसे किया जाए ताकि सर्वोत्तम अभ्यासों को प्रतिबिंबित किया जा सके। इसे हम दो भागों में सोच सकते हैं - सही _मानसिकता_ रखना और सही _तकनीक_ लागू करना। - -### प्रॉम्प्ट इंजीनियरिंग मानसिकता - -प्रॉम्प्ट इंजीनियरिंग एक परीक्षण-और-त्रुटि प्रक्रिया है, इसलिए तीन व्यापक मार्गदर्शक कारकों को ध्यान में रखें: - -1. **डोमेन की समझ महत्वपूर्ण है।** प्रतिक्रिया की सटीकता और प्रासंगिकता उस _डोमेन_ पर निर्भर करती है जिसमें वह एप्लिकेशन या उपयोगकर्ता काम करता है। अपनी अंतर्दृष्टि और डोमेन विशेषज्ञता का उपयोग करके तकनीकों को और अनुकूलित करें। उदाहरण के लिए, अपने सिस्टम प्रॉम्प्ट में _डोमेन-विशिष्ट व्यक्तित्व_ परिभाषित करें, या उपयोगकर्ता प्रॉम्प्ट में _डोमेन-विशिष्ट टेम्प्लेट_ का उपयोग करें। माध्यमिक सामग्री प्रदान करें जो डोमेन-विशिष्ट संदर्भों को दर्शाती हो, या मॉडल को परिचित उपयोग पैटर्न की ओर मार्गदर्शन करने के लिए _डोमेन-विशिष्ट संकेत और उदाहरण_ का उपयोग करें। - -2. **मॉडल की समझ महत्वपूर्ण है।** हम जानते हैं कि मॉडल स्वाभाविक रूप से यादृच्छिक होते हैं। लेकिन मॉडल के कार्यान्वयन में भी प्रशिक्षण डेटा सेट (पूर्व-प्रशिक्षित ज्ञान), प्रदान की गई क्षमताओं (जैसे API या SDK के माध्यम से) और जिन प्रकार की सामग्री के लिए वे अनुकूलित हैं (जैसे कोड, छवियां, या टेक्स्ट) के आधार पर भिन्नता हो सकती है। आप जिस मॉडल का उपयोग कर रहे हैं उसकी ताकत और सीमाओं को समझें, और उस ज्ञान का उपयोग करके कार्यों को प्राथमिकता दें या _कस्टम टेम्प्लेट_ बनाएं जो मॉडल की क्षमताओं के लिए अनुकूलित हों। - -3. **पुनरावृत्ति और सत्यापन महत्वपूर्ण है।** मॉडल तेजी से विकसित हो रहे हैं, और प्रॉम्प्ट इंजीनियरिंग की तकनीकें भी। एक डोमेन विशेषज्ञ के रूप में, आपके पास अन्य संदर्भ या मानदंड हो सकते हैं जो आपके विशिष्ट एप्लिकेशन के लिए प्रासंगिक हों, जो व्यापक समुदाय पर लागू न हों। प्रॉम्प्ट इंजीनियरिंग उपकरणों और तकनीकों का उपयोग करके प्रॉम्प्ट निर्माण को "जल्दी शुरू" करें, फिर अपने स्वयं के अंतर्ज्ञान और डोमेन विशेषज्ञता का उपयोग करके परिणामों को पुनरावृत्त और सत्यापित करें। अपनी अंतर्दृष्टि को रिकॉर्ड करें और एक **ज्ञान आधार** (जैसे प्रॉम्प्ट लाइब्रेरीज़) बनाएं जिसे अन्य लोग भविष्य में तेज पुनरावृत्तियों के लिए नए आधार के रूप में उपयोग कर सकें। - -## सर्वोत्तम अभ्यास - -अब आइए सामान्य सर्वोत्तम अभ्यास देखें जिन्हें [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) और [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst) के विशेषज्ञ सुझाते हैं। - -| क्या | क्यों | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| नवीनतम मॉडल का मूल्यांकन करें। | नए मॉडल पीढ़ियों में बेहतर फीचर्स और गुणवत्ता हो सकती है - लेकिन लागत भी अधिक हो सकती है। प्रभाव का मूल्यांकन करें, फिर माइग्रेशन के निर्णय लें। | -| निर्देश और संदर्भ अलग रखें। | जांचें कि आपका मॉडल/प्रदाता क्या _डेलिमिटर्स_ प्रदान करता है जो निर्देश, प्राथमिक और माध्यमिक सामग्री को स्पष्ट रूप से अलग करते हैं। इससे मॉडल टोकन को अधिक सटीकता से वज़न दे सकते हैं। | -| स्पष्ट और विशिष्ट रहें। | इच्छित संदर्भ, परिणाम, लंबाई, प्रारूप, शैली आदि के बारे में अधिक विवरण दें। इससे प्रतिक्रियाओं की गुणवत्ता और सुसंगतता दोनों बेहतर होगी। नुस्खे को पुनः उपयोग योग्य टेम्प्लेट्स में कैप्चर करें। | -| वर्णनात्मक बनें, उदाहरणों का उपयोग करें। | मॉडल "दिखाओ और बताओ" के तरीके पर बेहतर प्रतिक्रिया दे सकते हैं। `zero-shot` विधि से शुरू करें जहां आप केवल निर्देश देते हैं (कोई उदाहरण नहीं), फिर `few-shot` विधि से सुधार करें, जिसमें कुछ उदाहरण दिए गए हों। उपमाओं का उपयोग करें। | -| प्रतिक्रिया शुरू करने के लिए संकेत दें | इसे इच्छित परिणाम की ओर प्रेरित करने के लिए कुछ प्रारंभिक शब्द या वाक्यांश दें जिन्हें यह प्रतिक्रिया की शुरुआत के लिए उपयोग कर सके। | -| दोहराव करें | कभी-कभी आपको मॉडल को दोहराना पड़ सकता है। प्राथमिक सामग्री से पहले और बाद में निर्देश दें, एक निर्देश और एक संकेत का उपयोग करें, आदि। पुनरावृत्ति करें और देखें क्या काम करता है। | -| क्रम महत्वपूर्ण है | आप जो जानकारी मॉडल को देते हैं उसका क्रम आउटपुट को प्रभावित कर सकता है, यहां तक कि सीखने के उदाहरणों में भी, हाल की जानकारी को प्राथमिकता देने के कारण। विभिन्न विकल्प आजमाएं और देखें क्या सबसे अच्छा काम करता है। | -| मॉडल को एक “आउट” विकल्प दें | मॉडल को एक _फॉलबैक_ प्रतिक्रिया विकल्प दें जिसे वह तब उपयोग कर सके जब वह किसी कारण से कार्य पूरा नहीं कर पाता। इससे गलत या काल्पनिक प्रतिक्रियाओं की संभावना कम हो सकती है। | -| | | - -किसी भी सर्वोत्तम अभ्यास की तरह, याद रखें कि _आपका अनुभव मॉडल, कार्य और डोमेन के आधार पर भिन्न हो सकता है_। इन्हें एक प्रारंभिक बिंदु के रूप में उपयोग करें, और पुनरावृत्त करें ताकि आपको जो सबसे अच्छा लगे वह मिल सके। नए मॉडल और उपकरण उपलब्ध होने पर अपने प्रॉम्प्ट इंजीनियरिंग प्रक्रिया का लगातार पुनर्मूल्यांकन करें, प्रक्रिया की मापनीयता और प्रतिक्रिया की गुणवत्ता पर ध्यान केंद्रित करते हुए। - - - -## असाइनमेंट - -बधाई हो! आप पाठ के अंत तक पहुँच गए हैं! अब समय है कि आप उन अवधारणाओं और तकनीकों को वास्तविक उदाहरणों के साथ आजमाएं! - -हमारे असाइनमेंट के लिए, हम एक Jupyter Notebook का उपयोग करेंगे जिसमें आप इंटरैक्टिव रूप से अभ्यास पूरा कर सकते हैं। आप अपनी खुद की Markdown और Code सेल्स के साथ Notebook को बढ़ा भी सकते हैं ताकि अपने विचारों और तकनीकों का स्वतंत्र रूप से अन्वेषण कर सकें। - -### शुरू करने के लिए, रिपॉजिटरी को फोर्क करें, फिर - -- (सिफारिश की गई) GitHub Codespaces लॉन्च करें -- (वैकल्पिक) रिपॉजिटरी को अपने स्थानीय डिवाइस पर क्लोन करें और Docker Desktop के साथ उपयोग करें -- (वैकल्पिक) अपनी पसंदीदा Notebook रनटाइम वातावरण में Notebook खोलें। - -### अगला, अपने पर्यावरण चर कॉन्फ़िगर करें - -- रिपॉजिटरी रूट में `.env.copy` फ़ाइल को `.env` में कॉपी करें और `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` और `AZURE_OPENAI_DEPLOYMENT` मान भरें। सीखने के लिए [Learning Sandbox सेक्शन](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) पर वापस आएं। - -### फिर, Jupyter Notebook खोलें - -- रनटाइम कर्नेल चुनें। यदि आप विकल्प 1 या 2 का उपयोग कर रहे हैं, तो बस डिफ़ॉल्ट Python 3.10.x कर्नेल चुनें जो डेवलपमेंट कंटेनर द्वारा प्रदान किया गया है। - -आप अभ्यास चलाने के लिए तैयार हैं। ध्यान दें कि यहां कोई _सही या गलत_ उत्तर नहीं हैं - केवल परीक्षण-और-त्रुटि द्वारा विकल्पों का अन्वेषण और किसी दिए गए मॉडल और एप्लिकेशन डोमेन के लिए क्या काम करता है इसकी अंतर्दृष्टि बनाना है। - -_इस कारण से इस पाठ में कोई कोड समाधान खंड नहीं हैं। इसके बजाय, Notebook में "My Solution:" शीर्षक वाले Markdown सेल होंगे जो संदर्भ के लिए एक उदाहरण आउटपुट दिखाएंगे।_ - - - -## ज्ञान जांच - -निम्नलिखित में से कौन सा प्रॉम्प्ट कुछ उचित सर्वोत्तम अभ्यासों का पालन करता है? - -1. मुझे लाल कार की एक छवि दिखाओ -2. मुझे लाल कार की एक छवि दिखाओ जो Volvo ब्रांड की है और मॉडल XC90 है, जो एक चट्टान के पास सूर्यास्त के समय खड़ी है -3. मुझे लाल कार की एक छवि दिखाओ जो Volvo ब्रांड की है और मॉडल XC90 है - -उत्तर: 2, यह सबसे अच्छा प्रॉम्प्ट है क्योंकि यह "क्या" है इस पर विवरण देता है और विशिष्टताओं में जाता है (सिर्फ कोई कार नहीं बल्कि एक विशिष्ट ब्रांड और मॉडल) और यह समग्र सेटिंग का भी वर्णन करता है। 3 अगला सबसे अच्छा है क्योंकि इसमें भी बहुत विवरण है। - -## 🚀 चुनौती - -देखें कि क्या आप "संकेत" तकनीक का उपयोग कर सकते हैं इस प्रॉम्प्ट के साथ: वाक्य पूरा करें "मुझे लाल कार की एक छवि दिखाओ जो Volvo ब्रांड की है और "। यह क्या प्रतिक्रिया देता है, और आप इसे कैसे बेहतर बनाएंगे? - -## शानदार काम! अपनी सीख जारी रखें - -क्या आप प्रॉम्प्ट इंजीनियरिंग की विभिन्न अवधारणाओं के बारे में और जानना चाहते हैं? [जारी सीखने वाले पृष्ठ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) पर जाएं जहां इस विषय पर अन्य बेहतरीन संसाधन मिलेंगे। - -पाठ 5 पर जाएं जहां हम [उन्नत प्रॉम्प्टिंग तकनीकों](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) को देखेंगे! - -**अस्वीकरण**: -यह दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता के लिए प्रयासरत हैं, कृपया ध्यान दें कि स्वचालित अनुवादों में त्रुटियाँ या अशुद्धियाँ हो सकती हैं। मूल दस्तावेज़ अपनी मूल भाषा में ही अधिकारिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सलाह दी जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम जिम्मेदार नहीं हैं। \ No newline at end of file + + + + + + + diff --git a/translations/hi/09-building-image-applications/README.md b/translations/hi/09-building-image-applications/README.md index 4251eb50a..f7a26fa7f 100644 --- a/translations/hi/09-building-image-applications/README.md +++ b/translations/hi/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# इमेज जनरेशन एप्लिकेशन बनाना - -[![इमेज जनरेशन एप्लिकेशन बनाना](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.hi.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLM केवल टेक्स्ट जनरेशन तक सीमित नहीं हैं। टेक्स्ट विवरणों से इमेज भी बनाई जा सकती हैं। इमेज एक माध्यम के रूप में कई क्षेत्रों में बेहद उपयोगी हो सकती हैं, जैसे MedTech, वास्तुकला, पर्यटन, गेम डेवलपमेंट और भी बहुत कुछ। इस अध्याय में, हम दो सबसे लोकप्रिय इमेज जनरेशन मॉडल, DALL-E और Midjourney के बारे में जानेंगे। - -## परिचय - -इस पाठ में, हम निम्नलिखित विषयों को कवर करेंगे: - -- इमेज जनरेशन क्या है और यह क्यों उपयोगी है। -- DALL-E और Midjourney क्या हैं, और ये कैसे काम करते हैं। -- आप एक इमेज जनरेशन ऐप कैसे बना सकते हैं। - -## सीखने के लक्ष्य - -इस पाठ को पूरा करने के बाद, आप सक्षम होंगे: - -- एक इमेज जनरेशन एप्लिकेशन बनाना। -- मेटा प्रॉम्प्ट्स के साथ अपने एप्लिकेशन की सीमाएं निर्धारित करना। -- DALL-E और Midjourney के साथ काम करना। - -## इमेज जनरेशन एप्लिकेशन क्यों बनाएं? - -इमेज जनरेशन एप्लिकेशन जनरेटिव AI की क्षमताओं को समझने का एक शानदार तरीका हैं। इन्हें निम्नलिखित के लिए इस्तेमाल किया जा सकता है: - -- **इमेज एडिटिंग और सिंथेसिस**। आप विभिन्न उपयोग मामलों के लिए इमेज बना सकते हैं, जैसे इमेज एडिटिंग और इमेज सिंथेसिस। - -- **विभिन्न उद्योगों में उपयोग**। इन्हें Medtech, पर्यटन, गेम डेवलपमेंट जैसे कई उद्योगों के लिए इमेज बनाने में भी इस्तेमाल किया जा सकता है। - -## परिदृश्य: Edu4All - -इस पाठ के हिस्से के रूप में, हम अपने स्टार्टअप Edu4All के साथ काम जारी रखेंगे। छात्र अपनी असाइनमेंट के लिए इमेज बनाएंगे, जो कि पूरी तरह से छात्रों पर निर्भर है कि वे क्या बनाना चाहते हैं। वे अपनी खुद की परी कथा के लिए चित्र बना सकते हैं, अपनी कहानी के लिए नया पात्र बना सकते हैं, या अपने विचारों और अवधारणाओं को विज़ुअलाइज़ कर सकते हैं। - -उदाहरण के लिए, अगर Edu4All के छात्र स्मारकों पर कक्षा में काम कर रहे हैं, तो वे निम्नलिखित इमेज बना सकते हैं: - -![Edu4All startup, class on monuments, Eiffel Tower](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.hi.png) - -प्रॉम्प्ट का उपयोग करते हुए - -> "Dog next to Eiffel Tower in early morning sunlight" - -## DALL-E और Midjourney क्या हैं? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) और [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) दो सबसे लोकप्रिय इमेज जनरेशन मॉडल हैं, जो प्रॉम्प्ट्स का उपयोग करके इमेज बनाते हैं। - -### DALL-E - -आइए DALL-E से शुरू करते हैं, जो एक जनरेटिव AI मॉडल है जो टेक्स्ट विवरणों से इमेज बनाता है। - -> [DALL-E दो मॉडलों, CLIP और diffused attention का संयोजन है](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst)। - -- **CLIP**, एक मॉडल है जो इमेज और टेक्स्ट से एम्बेडिंग्स (डेटा के संख्यात्मक प्रतिनिधित्व) बनाता है। - -- **Diffused attention**, एक मॉडल है जो एम्बेडिंग्स से इमेज बनाता है। DALL-E को इमेज और टेक्स्ट के डेटासेट पर प्रशिक्षित किया गया है और यह टेक्स्ट विवरणों से इमेज बना सकता है। उदाहरण के लिए, DALL-E एक टोपी पहने हुए बिल्ली या मोकहॉक वाले कुत्ते की इमेज बना सकता है। - -### Midjourney - -Midjourney भी DALL-E की तरह काम करता है, यह टेक्स्ट प्रॉम्प्ट्स से इमेज बनाता है। Midjourney का उपयोग “a cat in a hat” या “dog with a mohawk” जैसे प्रॉम्प्ट्स से इमेज बनाने के लिए किया जा सकता है। - -![Midjourney द्वारा बनाई गई इमेज, मैकेनिकल कबूतर](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_इमेज क्रेडिट: विकिपीडिया, Midjourney द्वारा बनाई गई इमेज_ - -## DALL-E और Midjourney कैसे काम करते हैं - -सबसे पहले, [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst)। DALL-E एक जनरेटिव AI मॉडल है जो ट्रांसफॉर्मर आर्किटेक्चर पर आधारित है, जिसमें _autoregressive transformer_ होता है। - -एक _autoregressive transformer_ यह निर्धारित करता है कि मॉडल टेक्स्ट विवरणों से इमेज कैसे बनाता है, यह एक बार में एक पिक्सेल बनाता है, और फिर अगले पिक्सेल को बनाने के लिए पहले से बने पिक्सेल का उपयोग करता है। यह प्रक्रिया न्यूरल नेटवर्क की कई परतों से गुजरती है, जब तक कि इमेज पूरी न हो जाए। - -इस प्रक्रिया के साथ, DALL-E इमेज में वस्तुएं, गुण, विशेषताएं आदि नियंत्रित करता है। हालांकि, DALL-E 2 और 3 में जनरेट की गई इमेज पर अधिक नियंत्रण होता है। - -## अपनी पहली इमेज जनरेशन एप्लिकेशन बनाना - -तो, इमेज जनरेशन एप्लिकेशन बनाने के लिए क्या चाहिए? आपको निम्नलिखित लाइब्रेरीज़ की जरूरत होगी: - -- **python-dotenv**, यह लाइब्रेरी आपके सीक्रेट्स को कोड से अलग _.env_ फाइल में रखने के लिए अत्यधिक अनुशंसित है। -- **openai**, यह लाइब्रेरी OpenAI API के साथ इंटरैक्ट करने के लिए है। -- **pillow**, Python में इमेज के साथ काम करने के लिए। -- **requests**, HTTP रिक्वेस्ट बनाने में मदद के लिए। - -1. एक _.env_ फाइल बनाएं और निम्नलिखित सामग्री डालें: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - यह जानकारी Azure Portal में आपके रिसोर्स के "Keys and Endpoint" सेक्शन में मिलेगी। - -1. ऊपर दी गई लाइब्रेरीज़ को एक फाइल _requirements.txt_ में इकट्ठा करें: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. फिर, वर्चुअल एनवायरनमेंट बनाएं और लाइब्रेरीज़ इंस्टॉल करें: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Windows के लिए, वर्चुअल एनवायरनमेंट बनाने और सक्रिय करने के लिए निम्न कमांड्स का उपयोग करें: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. _app.py_ नामक फाइल में निम्न कोड जोड़ें: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -आइए इस कोड को समझते हैं: - -- सबसे पहले, हम आवश्यक लाइब्रेरीज़ इम्पोर्ट करते हैं, जिनमें OpenAI लाइब्रेरी, dotenv लाइब्रेरी, requests लाइब्रेरी, और Pillow लाइब्रेरी शामिल हैं। - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- इसके बाद, हम _.env_ फाइल से पर्यावरण चर (environment variables) लोड करते हैं। - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- फिर, OpenAI API के लिए endpoint, key, version और type सेट करते हैं। - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- इसके बाद, हम इमेज जनरेट करते हैं: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - ऊपर दिया गया कोड एक JSON ऑब्जेक्ट रिटर्न करता है जिसमें जनरेट की गई इमेज का URL होता है। हम इस URL का उपयोग करके इमेज डाउनलोड कर सकते हैं और फाइल में सेव कर सकते हैं। - -- अंत में, हम इमेज खोलते हैं और इसे डिफ़ॉल्ट इमेज व्यूअर में दिखाते हैं: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### इमेज जनरेट करने वाले कोड का विस्तार से विवरण - -आइए इमेज जनरेट करने वाले कोड को विस्तार से देखें: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt**, वह टेक्स्ट प्रॉम्प्ट है जिसका उपयोग इमेज बनाने के लिए किया जाता है। इस उदाहरण में, प्रॉम्प्ट है "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils"। -- **size**, जनरेट की गई इमेज का आकार है। इस उदाहरण में, इमेज 1024x1024 पिक्सेल की है। -- **n**, जनरेट की जाने वाली इमेज की संख्या है। इस उदाहरण में, दो इमेज बनाई जा रही हैं। -- **temperature**, यह पैरामीटर जनरेटिव AI मॉडल के आउटपुट की यादृच्छिकता (randomness) को नियंत्रित करता है। तापमान 0 से 1 के बीच होता है, जहां 0 का मतलब है आउटपुट निश्चित (deterministic) और 1 का मतलब है आउटपुट यादृच्छिक (random)। डिफ़ॉल्ट मान 0.7 है। - -इमेज के साथ आप और भी कई चीजें कर सकते हैं, जिन्हें हम अगले सेक्शन में कवर करेंगे। - -## इमेज जनरेशन की अतिरिक्त क्षमताएं - -अब तक आपने देखा कि हम कुछ पंक्तियों के Python कोड से इमेज कैसे बना सकते हैं। लेकिन इमेज के साथ आप और भी बहुत कुछ कर सकते हैं। - -आप निम्नलिखित कर सकते हैं: - -- **एडिट करें**। एक मौजूदा इमेज, मास्क और प्रॉम्प्ट प्रदान करके आप इमेज में बदलाव कर सकते हैं। उदाहरण के लिए, आप इमेज के एक हिस्से में कुछ जोड़ सकते हैं। कल्पना करें कि हमारे बनी की इमेज है, आप बनी को टोपी पहनाने के लिए इमेज, मास्क (जिसमें बदलाव के लिए क्षेत्र की पहचान हो) और टेक्स्ट प्रॉम्प्ट देंगे। - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - मूल इमेज में केवल खरगोश होगा, लेकिन अंतिम इमेज में खरगोश के सिर पर टोपी होगी। - -- **वैरिएशंस बनाएं**। इसका मतलब है कि आप एक मौजूदा इमेज लेते हैं और उससे वैरिएशंस बनवाते हैं। वैरिएशन बनाने के लिए, आप एक इमेज और टेक्स्ट प्रॉम्प्ट देते हैं, और कोड इस प्रकार होगा: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > ध्यान दें, यह केवल OpenAI पर समर्थित है। - -## तापमान (Temperature) - -तापमान एक पैरामीटर है जो जनरेटिव AI मॉडल के आउटपुट की यादृच्छिकता को नियंत्रित करता है। तापमान 0 से 1 के बीच होता है, जहां 0 का मतलब है आउटपुट निश्चित और 1 का मतलब है आउटपुट यादृच्छिक। डिफ़ॉल्ट मान 0.7 है। - -आइए देखें तापमान कैसे काम करता है, इस प्रॉम्प्ट को दो बार चलाकर: - -> प्रॉम्प्ट: "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils" - -![Bunny on a horse holding a lollipop, version 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.hi.png) - -अब वही प्रॉम्प्ट फिर से चलाते हैं ताकि देखें कि हमें एक जैसी इमेज दो बार नहीं मिलेगी: - -![Generated image of bunny on horse](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.hi.png) - -जैसा कि आप देख सकते हैं, इमेजें समान हैं, लेकिन बिल्कुल एक जैसी नहीं। अब तापमान मान को 0.1 करते हैं और देखते हैं क्या होता है: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### तापमान बदलना - -तो चलिए प्रतिक्रिया को अधिक निश्चित बनाने की कोशिश करते हैं। हमने जो दो इमेज बनाईं, उनमें पहली में बनी है और दूसरी में घोड़ा, इसलिए इमेज काफी अलग हैं। - -इसलिए, हम अपना कोड बदलकर तापमान को 0 कर देते हैं, इस तरह: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -अब जब आप यह कोड चलाएंगे, तो आपको ये दो इमेज मिलेंगी: - -- ![Temperature 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.hi.png) -- ![Temperature 0 , v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.hi.png) - -यहां आप स्पष्ट रूप से देख सकते हैं कि इमेजें एक-दूसरे से अधिक मिलती-जुलती हैं। - -## मेटाप्रॉम्प्ट्स के साथ अपने एप्लिकेशन की सीमाएं कैसे निर्धारित करें - -हमारे डेमो के साथ, हम पहले ही अपने क्लाइंट्स के लिए इमेज बना सकते हैं। लेकिन हमें अपने एप्लिकेशन के लिए कुछ सीमाएं बनानी होंगी। - -उदाहरण के लिए, हम ऐसी इमेज नहीं बनाना चाहते जो कार्यस्थल के लिए सुरक्षित न हों, या जो बच्चों के लिए उपयुक्त न हों। - -हम यह _मेटाप्रॉम्प्ट्स_ के साथ कर सकते हैं। मेटाप्रॉम्प्ट्स टेक्स्ट प्रॉम्प्ट्स होते हैं जो जनरेटिव AI मॉडल के आउटपुट को नियंत्रित करने के लिए उपयोग किए जाते हैं। उदाहरण के लिए, हम मेटाप्रॉम्प्ट्स का उपयोग आउटपुट को नियंत्रित करने के लिए कर सकते हैं, और सुनिश्चित कर सकते हैं कि जनरेट की गई इमेजें कार्यस्थल के लिए सुरक्षित हों या बच्चों के लिए उपयुक्त हों। - -### यह कैसे काम करता है? - -अब, मेटाप्रॉम्प्ट्स कैसे काम करते हैं? - -मेटाप्रॉम्प्ट्स टेक्स्ट प्रॉम्प्ट्स होते हैं जो जनरेटिव AI मॉडल के आउटपुट को नियंत्रित करते हैं, ये टेक्स्ट प्रॉम्प्ट से पहले रखे जाते हैं, और मॉडल के आउटपुट को नियंत्रित करने के लिए एप्लिकेशन में एम्बेड किए जाते हैं। प्रॉम्प्ट इनपुट और मेटाप्रॉम्प्ट इनपुट को एक ही टेक्स्ट प्रॉम्प्ट में समाहित किया जाता है। - -मेटाप्रॉम्प्ट का एक उदाहरण इस प्रकार होगा: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -अब, आइए देखें कि हम अपने डेमो में मेटाप्रॉम्प्ट्स का उपयोग कैसे कर सकते हैं। - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -ऊपर दिए गए प्रॉम्प्ट से आप देख सकते हैं कि सभी बनाई जा रही इमेजें मेटाप्रॉम्प्ट को ध्यान में रखती हैं। - -## असाइनमेंट - चलिए छात्रों को सक्षम बनाएं - -हमने इस पाठ की शुरुआत में Edu4All का परिचय दिया था। अब समय है कि छात्रों को उनकी असाइनमेंट के लिए इमेज बनाने में सक्षम बनाएं। - -छात्र अपनी असाइनमेंट के लिए स्मारकों की इमेज बनाएंगे, कि कौन से स्मारक होंगे यह पूरी तरह छात्रों पर निर्भर है। छात्रों से कहा गया है कि वे इस कार्य में अपनी रचनात्मकता का उपयोग करें और इन स्मारकों को विभिन्न संदर्भों में रखें। - -## समाधान - -यहाँ एक संभावित समाधान है: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## शानदार काम! अपनी सीख जारी रखें - -इस पाठ को पूरा करने के बाद, हमारी [Generative AI Learning collection](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) देखें ताकि आप अपनी जनरेटिव AI की जानकारी को और बढ़ा सकें! - -अगले पाठ 10 पर जाएं, जहां हम देखेंगे कि [लो-कोड के साथ AI एप्लिकेशन कैसे बनाएं](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**अस्वीकरण**: -यह दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता के लिए प्रयासरत हैं, कृपया ध्यान दें कि स्वचालित अनुवादों में त्रुटियाँ या अशुद्धियाँ हो सकती हैं। मूल दस्तावेज़ अपनी मूल भाषा में ही अधिकारिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सलाह दी जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम जिम्मेदार नहीं हैं। \ No newline at end of file + + + + diff --git a/translations/hi/12-designing-ux-for-ai-applications/README.md b/translations/hi/12-designing-ux-for-ai-applications/README.md index 233b568c8..3376f9a71 100644 --- a/translations/hi/12-designing-ux-for-ai-applications/README.md +++ b/translations/hi/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# AI एप्लिकेशन के लिए UX डिजाइन करना - -[![Designing UX for AI Applications](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.hi.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(इस पाठ का वीडियो देखने के लिए ऊपर की छवि पर क्लिक करें)_ - -यूजर एक्सपीरियंस ऐप बनाने का एक बहुत महत्वपूर्ण पहलू है। उपयोगकर्ताओं को आपके ऐप का उपयोग कुशलता से करना चाहिए ताकि वे अपने कार्यों को पूरा कर सकें। कुशल होना एक बात है, लेकिन आपको ऐसे ऐप भी डिजाइन करने होते हैं जिन्हें हर कोई उपयोग कर सके, यानी उन्हें _सुलभ_ बनाना। यह अध्याय इसी क्षेत्र पर केंद्रित होगा ताकि आप अंततः ऐसा ऐप डिजाइन कर सकें जिसे लोग उपयोग करना चाहें और कर सकें। - -## परिचय - -यूजर एक्सपीरियंस उस तरीके को कहते हैं जिससे कोई उपयोगकर्ता किसी विशेष उत्पाद या सेवा के साथ इंटरैक्ट करता है और उसका उपयोग करता है, चाहे वह सिस्टम हो, टूल हो या डिज़ाइन। AI एप्लिकेशन विकसित करते समय, डेवलपर्स न केवल यह सुनिश्चित करते हैं कि यूजर एक्सपीरियंस प्रभावी हो, बल्कि यह भी कि वह नैतिक हो। इस पाठ में, हम ऐसे आर्टिफिशियल इंटेलिजेंस (AI) एप्लिकेशन बनाने के बारे में जानेंगे जो उपयोगकर्ता की जरूरतों को पूरा करते हैं। - -यह पाठ निम्नलिखित विषयों को कवर करेगा: - -- यूजर एक्सपीरियंस का परिचय और उपयोगकर्ता की जरूरतों को समझना -- विश्वास और पारदर्शिता के लिए AI एप्लिकेशन डिजाइन करना -- सहयोग और फीडबैक के लिए AI एप्लिकेशन डिजाइन करना - -## सीखने के लक्ष्य - -इस पाठ को पूरा करने के बाद, आप सक्षम होंगे: - -- उपयोगकर्ता की जरूरतों को पूरा करने वाले AI एप्लिकेशन बनाना समझना। -- ऐसे AI एप्लिकेशन डिजाइन करना जो विश्वास और सहयोग को बढ़ावा दें। - -### पूर्व आवश्यकताएँ - -कुछ समय निकालकर [यूजर एक्सपीरियंस और डिज़ाइन थिंकिंग](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) के बारे में और पढ़ें। - -## यूजर एक्सपीरियंस का परिचय और उपयोगकर्ता की जरूरतों को समझना - -हमारे काल्पनिक शिक्षा स्टार्टअप में दो मुख्य उपयोगकर्ता हैं, शिक्षक और छात्र। दोनों उपयोगकर्ताओं की अलग-अलग आवश्यकताएं हैं। उपयोगकर्ता-केंद्रित डिज़ाइन उपयोगकर्ता को प्राथमिकता देता है ताकि उत्पाद उन लोगों के लिए प्रासंगिक और लाभकारी हों जिनके लिए वे बनाए गए हैं। - -ऐप्लिकेशन को **उपयोगी, विश्वसनीय, सुलभ और सुखद** होना चाहिए ताकि अच्छा यूजर एक्सपीरियंस मिल सके। - -### उपयोगिता - -उपयोगी होने का मतलब है कि ऐप्लिकेशन में वह कार्यक्षमता हो जो उसके उद्देश्य से मेल खाती हो, जैसे ग्रेडिंग प्रक्रिया को स्वचालित करना या पुनरावृत्ति के लिए फ्लैशकार्ड बनाना। जो ऐप ग्रेडिंग प्रक्रिया को स्वचालित करता है, उसे पूर्वनिर्धारित मानदंडों के आधार पर छात्रों के कार्यों को सटीक और कुशलता से अंकित करना चाहिए। इसी तरह, जो ऐप पुनरावृत्ति फ्लैशकार्ड बनाता है, उसे अपने डेटा के आधार पर प्रासंगिक और विविध प्रश्न बनाने चाहिए। - -### विश्वसनीयता - -विश्वसनीय होने का मतलब है कि ऐप लगातार और बिना त्रुटि के अपना कार्य कर सके। हालांकि, AI भी मनुष्यों की तरह पूर्ण नहीं है और इसमें त्रुटियां हो सकती हैं। ऐप्लिकेशन को ऐसी त्रुटियों या अप्रत्याशित परिस्थितियों का सामना करना पड़ सकता है जिनके लिए मानव हस्तक्षेप या सुधार की आवश्यकता होती है। आप त्रुटियों को कैसे संभालते हैं? इस पाठ के अंतिम भाग में, हम देखेंगे कि AI सिस्टम और ऐप्लिकेशन सहयोग और फीडबैक के लिए कैसे डिजाइन किए जाते हैं। - -### सुलभता - -सुलभ होने का मतलब है कि यूजर एक्सपीरियंस को विभिन्न क्षमताओं वाले उपयोगकर्ताओं तक बढ़ाना, जिनमें विकलांगता वाले भी शामिल हैं, ताकि कोई भी बाहर न रहे। सुलभता के दिशानिर्देशों और सिद्धांतों का पालन करके, AI समाधान अधिक समावेशी, उपयोगी और सभी उपयोगकर्ताओं के लिए लाभकारी बन जाते हैं। - -### सुखद - -सुखद होने का मतलब है कि ऐप्लिकेशन का उपयोग करना आनंददायक हो। एक आकर्षक यूजर एक्सपीरियंस उपयोगकर्ता पर सकारात्मक प्रभाव डाल सकता है, जिससे वे ऐप पर वापस आने के लिए प्रोत्साहित होते हैं और व्यवसाय की आय बढ़ती है। - -![AI में UX विचारों को दर्शाता हुआ चित्र](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.hi.png) - -हर चुनौती को AI से हल नहीं किया जा सकता। AI आपके यूजर एक्सपीरियंस को बढ़ाने के लिए आता है, चाहे वह मैनुअल कार्यों को स्वचालित करना हो या यूजर एक्सपीरियंस को व्यक्तिगत बनाना हो। - -## विश्वास और पारदर्शिता के लिए AI एप्लिकेशन डिजाइन करना - -AI एप्लिकेशन डिजाइन करते समय विश्वास बनाना बहुत महत्वपूर्ण है। विश्वास यह सुनिश्चित करता है कि उपयोगकर्ता को भरोसा हो कि ऐप काम पूरा करेगा, लगातार परिणाम देगा और परिणाम वही होंगे जो उपयोगकर्ता चाहता है। इस क्षेत्र में जोखिम है अविश्वास और अति-विश्वास का। अविश्वास तब होता है जब उपयोगकर्ता AI सिस्टम पर कम या कोई भरोसा नहीं करता, जिससे वह आपके ऐप को अस्वीकार कर देता है। अति-विश्वास तब होता है जब उपयोगकर्ता AI सिस्टम की क्षमता को अधिक आंकता है, जिससे वे AI सिस्टम पर बहुत अधिक भरोसा कर लेते हैं। उदाहरण के लिए, एक स्वचालित ग्रेडिंग सिस्टम के मामले में अति-विश्वास से शिक्षक कुछ पेपरों को जांचना छोड़ सकते हैं, जिससे छात्रों को अनुचित या गलत अंक मिल सकते हैं, या फीडबैक और सुधार के अवसर छूट सकते हैं। - -विश्वास को डिजाइन के केंद्र में रखने के दो तरीके हैं: व्याख्यात्मकता और नियंत्रण। - -### व्याख्यात्मकता - -जब AI निर्णय लेने में मदद करता है, जैसे भविष्य की पीढ़ियों को ज्ञान देना, तो शिक्षकों और माता-पिता के लिए यह समझना महत्वपूर्ण होता है कि AI निर्णय कैसे लिए जाते हैं। इसे व्याख्यात्मकता कहते हैं - यह समझना कि AI एप्लिकेशन निर्णय कैसे लेते हैं। व्याख्यात्मकता के लिए डिजाइन में AI एप्लिकेशन क्या कर सकता है, इसके उदाहरण शामिल करना होता है। उदाहरण के लिए, "AI शिक्षक के साथ शुरू करें" के बजाय सिस्टम कह सकता है: "AI का उपयोग करके अपने नोट्स को आसान पुनरावृत्ति के लिए संक्षेप करें।" - -![AI एप्लिकेशन में व्याख्यात्मकता को स्पष्ट रूप से दर्शाता हुआ ऐप लैंडिंग पेज](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.hi.png) - -एक और उदाहरण है कि AI उपयोगकर्ता और व्यक्तिगत डेटा का उपयोग कैसे करता है। उदाहरण के लिए, एक छात्र के रूप में उपयोगकर्ता की सीमाएं हो सकती हैं। AI प्रश्नों के उत्तर सीधे नहीं दे सकता, लेकिन उपयोगकर्ता को सोचने में मदद कर सकता है कि वे समस्या को कैसे हल कर सकते हैं। - -![व्यक्तित्व के आधार पर प्रश्नों का उत्तर देता AI](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.hi.png) - -व्याख्यात्मकता का एक अंतिम महत्वपूर्ण हिस्सा है व्याख्याओं को सरल बनाना। छात्र और शिक्षक AI विशेषज्ञ नहीं हो सकते, इसलिए ऐप क्या कर सकता है या क्या नहीं कर सकता, इसकी व्याख्या सरल और समझने में आसान होनी चाहिए। - -![AI क्षमताओं पर सरल व्याख्याएं](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.hi.png) - -### नियंत्रण - -जनरेटिव AI उपयोगकर्ता और AI के बीच सहयोग बनाता है, जहां उपयोगकर्ता विभिन्न परिणामों के लिए प्रॉम्प्ट को संशोधित कर सकता है। इसके अलावा, एक बार आउटपुट बनने के बाद, उपयोगकर्ता परिणामों को संशोधित कर सकते हैं, जिससे उन्हें नियंत्रण का एहसास होता है। उदाहरण के लिए, Bing का उपयोग करते समय, आप अपने प्रॉम्प्ट को फॉर्मेट, टोन और लंबाई के आधार पर अनुकूलित कर सकते हैं। साथ ही, आप अपने आउटपुट में बदलाव जोड़ सकते हैं और उसे संशोधित कर सकते हैं, जैसा कि नीचे दिखाया गया है: - -![प्रॉम्प्ट और आउटपुट को संशोधित करने के विकल्पों के साथ Bing खोज परिणाम](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.hi.png) - -Bing की एक और विशेषता जो उपयोगकर्ता को ऐप पर नियंत्रण देती है, वह है AI द्वारा उपयोग किए जाने वाले डेटा में ऑप्ट-इन और ऑप्ट-आउट करने की क्षमता। एक स्कूल ऐप्लिकेशन के लिए, छात्र अपने नोट्स के साथ-साथ शिक्षक के संसाधनों का भी पुनरावृत्ति सामग्री के रूप में उपयोग करना चाह सकता है। - -![प्रॉम्प्ट और आउटपुट को संशोधित करने के विकल्पों के साथ Bing खोज परिणाम](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.hi.png) - -> AI एप्लिकेशन डिजाइन करते समय, जानबूझकर यह सुनिश्चित करना जरूरी है कि उपयोगकर्ता अति-विश्वास न करें और इसकी क्षमताओं के बारे में अवास्तविक अपेक्षाएं न रखें। ऐसा करने का एक तरीका है प्रॉम्प्ट और परिणामों के बीच कुछ बाधा बनाना, उपयोगकर्ता को याद दिलाना कि यह AI है, कोई इंसान नहीं। - -## सहयोग और फीडबैक के लिए AI एप्लिकेशन डिजाइन करना - -जैसा कि पहले बताया गया, जनरेटिव AI उपयोगकर्ता और AI के बीच सहयोग बनाता है। अधिकांश इंटरैक्शन में उपयोगकर्ता प्रॉम्प्ट देता है और AI आउटपुट बनाता है। अगर आउटपुट गलत हो तो क्या होगा? अगर त्रुटि होती है तो ऐप्लिकेशन उसे कैसे संभालता है? क्या AI उपयोगकर्ता को दोष देता है या त्रुटि समझाने में समय लेता है? - -AI एप्लिकेशन को फीडबैक प्राप्त करने और देने के लिए बनाया जाना चाहिए। इससे न केवल AI सिस्टम में सुधार होता है, बल्कि उपयोगकर्ताओं के साथ विश्वास भी बनता है। डिजाइन में एक फीडबैक लूप शामिल होना चाहिए, उदाहरण के लिए आउटपुट पर सरल थम्ब्स अप या डाउन। - -इसे संभालने का एक और तरीका है सिस्टम की क्षमताओं और सीमाओं को स्पष्ट रूप से संप्रेषित करना। जब उपयोगकर्ता AI की क्षमताओं से बाहर कुछ मांगता है, तो इसे संभालने का तरीका भी होना चाहिए, जैसा कि नीचे दिखाया गया है। - -![फीडबैक देना और त्रुटियों को संभालना](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.hi.png) - -सिस्टम त्रुटियां सामान्य हैं, जहां उपयोगकर्ता को AI के दायरे से बाहर जानकारी में सहायता की आवश्यकता हो सकती है या ऐप्लिकेशन में यह सीमा हो सकती है कि उपयोगकर्ता कितने प्रश्न/विषयों के सारांश बना सकता है। उदाहरण के लिए, एक AI ऐप्लिकेशन जिसे सीमित विषयों जैसे इतिहास और गणित के डेटा पर प्रशिक्षित किया गया है, वह भूगोल से संबंधित प्रश्नों को संभाल नहीं सकता। इसे कम करने के लिए, AI सिस्टम ऐसा जवाब दे सकता है: "क्षमा करें, हमारा उत्पाद निम्नलिखित विषयों के डेटा पर प्रशिक्षित है....., मैं आपके पूछे गए प्रश्न का उत्तर नहीं दे सकता।" - -AI एप्लिकेशन पूर्ण नहीं होते, इसलिए वे गलतियां कर सकते हैं। जब आप अपने ऐप्लिकेशन डिजाइन करें, तो सुनिश्चित करें कि आप उपयोगकर्ताओं से फीडबैक लेने और त्रुटि प्रबंधन के लिए जगह बनाएं जो सरल और समझने में आसान हो। - -## असाइनमेंट - -अब तक आपने जो भी AI ऐप बनाए हैं, उनमें नीचे दिए गए कदम लागू करने पर विचार करें: - -- **सुखद:** सोचें कि आप अपने ऐप को और अधिक सुखद कैसे बना सकते हैं। क्या आप हर जगह व्याख्याएं जोड़ रहे हैं? क्या आप उपयोगकर्ता को खोजने के लिए प्रोत्साहित कर रहे हैं? आप अपनी त्रुटि संदेशों को कैसे शब्दबद्ध कर रहे हैं? - -- **उपयोगिता:** एक वेब ऐप बना रहे हैं। सुनिश्चित करें कि आपका ऐप माउस और कीबोर्ड दोनों से नेविगेट किया जा सके। - -- **विश्वास और पारदर्शिता:** AI और उसके आउटपुट पर पूरी तरह भरोसा न करें, सोचें कि आप आउटपुट की जांच के लिए प्रक्रिया में इंसान को कैसे शामिल करेंगे। साथ ही, विश्वास और पारदर्शिता प्राप्त करने के अन्य तरीकों को लागू करें। - -- **नियंत्रण:** उपयोगकर्ता को उस डेटा पर नियंत्रण दें जो वे ऐप्लिकेशन को प्रदान करते हैं। AI ऐप्लिकेशन में डेटा संग्रह के लिए उपयोगकर्ता को ऑप्ट-इन और ऑप्ट-आउट करने का तरीका लागू करें। - -## अपनी सीख जारी रखें! - -इस पाठ को पूरा करने के बाद, हमारे [Generative AI Learning collection](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) को देखें और अपनी Generative AI की जानकारी को और बढ़ाएं! - -अगले पाठ 13 पर जाएं, जहां हम देखेंगे कि [AI एप्लिकेशन को कैसे सुरक्षित करें](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**अस्वीकरण**: -यह दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता के लिए प्रयासरत हैं, कृपया ध्यान दें कि स्वचालित अनुवादों में त्रुटियाँ या अशुद्धियाँ हो सकती हैं। मूल दस्तावेज़ अपनी मूल भाषा में ही अधिकारिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सलाह दी जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम जिम्मेदार नहीं हैं। \ No newline at end of file + + + diff --git a/translations/hi/README.md b/translations/hi/README.md index d47984d67..69747e73d 100644 --- a/translations/hi/README.md +++ b/translations/hi/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.hi.png) - -### 21 पाठ जो आपको Generative AI एप्लिकेशन बनाने के लिए आवश्यक सब कुछ सिखाते हैं - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 बहुभाषी समर्थन - -#### GitHub Action के माध्यम से समर्थित (स्वचालित और हमेशा अपडेटेड) - -[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](./README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md) - -# Generative AI for Beginners (संस्करण 3) - एक कोर्स - -Microsoft Cloud Advocates द्वारा तैयार 21-पाठों वाले इस व्यापक कोर्स के साथ Generative AI एप्लिकेशन बनाने की बुनियादी बातें सीखें। - -## 🌱 शुरुआत कैसे करें - -इस कोर्स में 21 पाठ हैं। हर पाठ अपने विषय को कवर करता है, इसलिए आप कहीं से भी शुरू कर सकते हैं! - -पाठों को "Learn" (सीखें) और "Build" (बनाएं) के रूप में लेबल किया गया है। "Learn" पाठ Generative AI की अवधारणा समझाते हैं, जबकि "Build" पाठ में अवधारणा के साथ-साथ **Python** और **TypeScript** में कोड उदाहरण भी होते हैं, जब संभव हो। - -.NET डेवलपर्स के लिए देखें [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -हर पाठ में "Keep Learning" सेक्शन भी होता है जिसमें अतिरिक्त सीखने के संसाधन होते हैं। - -## आपको क्या चाहिए -### इस कोर्स का कोड चलाने के लिए, आप निम्न में से कोई भी उपयोग कर सकते हैं: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **पाठ:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **पाठ:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **पाठ:** "oai-assignment" - -- Python या TypeScript का बुनियादी ज्ञान मददगार होगा - \*पूर्ण शुरुआत करने वालों के लिए ये [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) और [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) कोर्स देखें -- एक GitHub अकाउंट ताकि आप [इस पूरे रिपॉजिटरी को फोर्क कर सकें](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) अपने GitHub अकाउंट में - -हमने आपके विकास पर्यावरण को सेटअप करने में मदद के लिए एक **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** पाठ बनाया है। - -बाद में इसे आसानी से खोजने के लिए [इस रिपॉजिटरी को स्टार (🌟) करना न भूलें](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst)। - -## 🧠 तैनाती के लिए तैयार? - -अगर आप और अधिक उन्नत कोड उदाहरण ढूंढ रहे हैं, तो हमारे [Generative AI कोड नमूनों का संग्रह](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) देखें, जो दोनों **Python** और **TypeScript** में उपलब्ध हैं। - -## 🗣️ अन्य शिक्षार्थियों से मिलें, सहायता पाएं - -इस कोर्स को कर रहे अन्य शिक्षार्थियों से मिलने और नेटवर्क बनाने के लिए हमारे [आधिकारिक Azure AI Foundry Discord सर्वर](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) में शामिल हों और सहायता प्राप्त करें। - -प्रश्न पूछें या उत्पाद प्रतिक्रिया साझा करें हमारे [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum) पर GitHub में। - -## 🚀 स्टार्टअप बना रहे हैं? - -[Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) के लिए साइन अप करें और **मुफ्त OpenAI क्रेडिट्स** और Azure OpenAI Services के माध्यम से OpenAI मॉडल तक पहुँचने के लिए **Azure क्रेडिट्स में $150k तक** प्राप्त करें। - -## 🙏 मदद करना चाहते हैं? - -क्या आपके पास सुझाव हैं या आपने कोई वर्तनी या कोड त्रुटि पाई है? [इश्यू उठाएं](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) या [पुल रिक्वेस्ट बनाएं](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 हर पाठ में शामिल है: - -- विषय का एक संक्षिप्त वीडियो परिचय -- README में लिखित पाठ -- Azure OpenAI और OpenAI API का समर्थन करने वाले Python और TypeScript कोड उदाहरण -- सीखने को जारी रखने के लिए अतिरिक्त संसाधनों के लिंक - -## 🗃️ पाठ - -| # | **पाठ लिंक** | **विवरण** | **वीडियो** | **अतिरिक्त सीखने के संसाधन** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **सीखें:** अपने विकास पर्यावरण को कैसे सेटअप करें | वीडियो जल्द आ रहा है | [और जानें](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introduction to Generative AI and LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **सीखें:** Generative AI क्या है और Large Language Models (LLMs) कैसे काम करते हैं | [वीडियो](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [और जानें](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Exploring and comparing different LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **सीखें:** अपने उपयोग के लिए सही मॉडल कैसे चुनें | [वीडियो](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [और जानें](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Using Generative AI Responsibly](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **सीखें:** Generative AI एप्लिकेशन जिम्मेदारी से कैसे बनाएं | [वीडियो](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [और जानें](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Understanding Prompt Engineering Fundamentals](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **सीखें:** प्रॉम्प्ट इंजीनियरिंग के बेसिक्स पर व्यावहारिक अभ्यास | [वीडियो](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [और जानें](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Creating Advanced Prompts](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **सीखें:** प्रॉम्प्ट इंजीनियरिंग तकनीकों को कैसे लागू करें जो आपके प्रॉम्प्ट के परिणाम बेहतर बनाएं | [वीडियो](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [और जानें](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [टेक्स्ट जनरेशन एप्लिकेशन बनाना](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **बनाएं:** Azure OpenAI / OpenAI API का उपयोग करके एक टेक्स्ट जनरेशन ऐप | [वीडियो](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [और जानें](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [चैट एप्लिकेशन बनाना](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **बनाएं:** चैट एप्लिकेशन को कुशलतापूर्वक बनाने और एकीकृत करने की तकनीकें | [वीडियो](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [और जानें](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [सर्च ऐप्स और वेक्टर डेटाबेस बनाना](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **बनाएं:** एक सर्च एप्लिकेशन जो डेटा खोजने के लिए Embeddings का उपयोग करता है | [वीडियो](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [और जानें](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [इमेज जनरेशन एप्लिकेशन बनाना](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **बनाएं:** एक इमेज जनरेशन एप्लिकेशन | [वीडियो](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [और जानें](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [लो कोड AI एप्लिकेशन बनाना](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **बनाएं:** Low Code टूल्स का उपयोग करके एक Generative AI एप्लिकेशन | [वीडियो](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [और जानें](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [फंक्शन कॉलिंग के साथ बाहरी एप्लिकेशन इंटीग्रेट करना](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **बनाएं:** फंक्शन कॉलिंग क्या है और एप्लिकेशन में इसके उपयोग के मामले | [वीडियो](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [और जानें](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [AI एप्लिकेशन के लिए UX डिजाइन करना](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **सीखें:** Generative AI एप्लिकेशन विकसित करते समय UX डिजाइन सिद्धांतों को कैसे लागू करें | [वीडियो](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [और जानें](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [अपने Generative AI एप्लिकेशन को सुरक्षित बनाना](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **सीखें:** AI सिस्टम्स के खतरे और जोखिम, और इन्हें सुरक्षित करने के तरीके | [वीडियो](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [और जानें](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [Generative AI एप्लिकेशन का जीवनचक्र](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **सीखें:** LLM जीवनचक्र और LLMOps को प्रबंधित करने के लिए टूल्स और मेट्रिक्स | [वीडियो](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [और जानें](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) और वेक्टर डेटाबेस](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **बनाएं:** RAG फ्रेमवर्क का उपयोग करके वेक्टर डेटाबेस से embeddings पुनः प्राप्त करने वाला एप्लिकेशन | [वीडियो](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [और जानें](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [ओपन सोर्स मॉडल और Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **बनाएं:** Hugging Face पर उपलब्ध ओपन सोर्स मॉडल का उपयोग करने वाला एप्लिकेशन | [वीडियो](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [और जानें](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI एजेंट्स](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **बनाएं:** AI एजेंट फ्रेमवर्क का उपयोग करने वाला एप्लिकेशन | [वीडियो](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [और जानें](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [LLMs का फाइन-ट्यूनिंग](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **सीखें:** LLMs के फाइन-ट्यूनिंग क्या है, क्यों और कैसे किया जाता है | [वीडियो](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [और जानें](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [SLMs के साथ बनाना](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **सीखें:** Small Language Models के साथ बनाने के फायदे | वीडियो जल्द आ रहा है | [और जानें](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Mistral मॉडल्स के साथ बनाना](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **सीखें:** Mistral फैमिली मॉडल्स की विशेषताएं और अंतर | वीडियो जल्द आ रहा है | [और जानें](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Meta मॉडल्स के साथ बनाना](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **सीखें:** Meta फैमिली मॉडल्स की विशेषताएं और अंतर | वीडियो जल्द आ रहा है | [और जानें](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 विशेष धन्यवाद - -[**John Aziz**](https://www.linkedin.com/in/john0isaac/) को सभी GitHub Actions और वर्कफ़्लोज़ बनाने के लिए विशेष धन्यवाद - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) को प्रत्येक पाठ में महत्वपूर्ण योगदान देने के लिए, जिससे सीखने और कोड अनुभव में सुधार हुआ। - -## 🎒 अन्य कोर्स - -हमारी टीम अन्य कोर्स भी बनाती है! देखें: - -- [**नया** Model Context Protocol for Beginners](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI Agents for Beginners](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Generative AI for Beginners using .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Generative AI for Beginners using JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML for Beginners](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Data Science for Beginners](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI for Beginners](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Cybersecurity for Beginners](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Web Dev for Beginners](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT for Beginners](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR Development for Beginners](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Mastering GitHub Copilot for AI Paired Programming](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Mastering GitHub Copilot for C#/.NET Developers](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Choose Your Own Copilot Adventure](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**अस्वीकरण**: -यह दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता के लिए प्रयासरत हैं, कृपया ध्यान दें कि स्वचालित अनुवादों में त्रुटियाँ या अशुद्धियाँ हो सकती हैं। मूल दस्तावेज़ अपनी मूल भाषा में ही अधिकारिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सलाह दी जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम जिम्मेदार नहीं हैं। \ No newline at end of file + + + + diff --git a/translations/hk/00-course-setup/01-setup-cloud.md b/translations/hk/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..adf26896e --- /dev/null +++ b/translations/hk/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/hk/00-course-setup/02-setup-local.md b/translations/hk/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..21815da94 --- /dev/null +++ b/translations/hk/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/hk/00-course-setup/03-providers.md b/translations/hk/00-course-setup/03-providers.md new file mode 100644 index 000000000..6c74dca30 --- /dev/null +++ b/translations/hk/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/hk/00-course-setup/README.md b/translations/hk/00-course-setup/README.md index 18932921d..7ff51bac8 100644 --- a/translations/hk/00-course-setup/README.md +++ b/translations/hk/00-course-setup/README.md @@ -1,230 +1,12 @@ - -# 開始這個課程 - -我們非常期待你開始這個課程,看看你會被生成式 AI 啟發去創造什麼! - -為了確保你的學習順利,這頁面會說明設定步驟、技術需求,以及需要幫助時該去哪裡尋求協助。 - -## 設定步驟 - -要開始這個課程,你需要完成以下步驟。 - -### 1. Fork 這個 Repo - -將[整個 repo fork](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst)到你自己的 GitHub 帳號,這樣你才能修改程式碼並完成挑戰。你也可以[為這個 repo 加星號 (🌟)](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst),方便日後找到它和相關的 repo。 - -### 2. 建立 codespace - -為避免執行程式碼時出現相依性問題,我們建議你在[GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst)中執行這個課程。 - -你可以在你 fork 後的 repo 中選擇 `Code` 選項,然後選擇 **Codespaces** 來建立。 - -![Dialog showing buttons to create a codespace](../../../00-course-setup/images/who-will-pay.webp) - -### 3. 儲存你的 API 金鑰 - -在開發任何應用程式時,保護你的 API 金鑰安全非常重要。我們建議不要直接把 API 金鑰寫在程式碼裡。若把這些資訊提交到公開的 repo,可能會造成安全風險,甚至被不法人士濫用導致額外費用。 - -以下是如何為 Python 建立 `.env` 檔案並加入 `GITHUB_TOKEN` 的逐步教學: - -1. **前往你的專案目錄**:打開終端機或命令提示字元,切換到你想建立 `.env` 檔案的專案根目錄。 - - ```bash - cd path/to/your/project - ``` - -2. **建立 `.env` 檔案**:使用你喜歡的文字編輯器建立一個名為 `.env` 的新檔案。如果用命令列,可以用 `touch`(Unix 系統)或 `echo`(Windows): - - Unix 系統: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **編輯 `.env` 檔案**:用文字編輯器(例如 VS Code、Notepad++ 或其他)打開 `.env` 檔案,加入以下內容,將 `your_github_token_here` 替換成你的 GitHub token: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **儲存檔案**:儲存並關閉編輯器。 - -5. **安裝 `python-dotenv`**:如果還沒安裝,你需要安裝 `python-dotenv` 套件,讓 Python 程式能從 `.env` 檔案讀取環境變數。可用 `pip` 安裝: - - ```bash - pip install python-dotenv - ``` - -6. **在 Python 程式中載入環境變數**:在你的 Python 程式碼中,使用 `python-dotenv` 套件載入 `.env` 檔案的環境變數: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -完成以上步驟後,你就成功建立 `.env` 檔案,加入 GitHub token,並在 Python 應用程式中載入它。 - -## 如何在本機電腦執行 - -要在本機電腦執行程式碼,你需要先安裝某個版本的[Python](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst)。 - -接著,你需要把這個 repo clone 下來: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -確認所有檔案都下載完成後,就可以開始使用了! - -## 選擇性步驟 - -### 安裝 Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) 是一個輕量級的安裝器,用來安裝 [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst)、Python 以及一些套件。 - -Conda 是一個套件管理工具,可以輕鬆建立和切換不同的 Python [**虛擬環境**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) 和套件。它也方便安裝一些無法用 `pip` 取得的套件。 - -你可以參考[MiniConda 安裝指南](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst)來完成安裝。 - -安裝好 Miniconda 後,如果還沒 clone repo,請先 clone [repository](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst)。 - -接著,你需要建立虛擬環境。使用 Conda 的話,請建立一個環境設定檔(_environment.yml_)。如果你是用 Codespaces,請在 `.devcontainer` 目錄下建立,也就是 `.devcontainer/environment.yml`。 - -把以下內容填入你的環境設定檔: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -如果你使用 conda 遇到錯誤,可以在終端機手動安裝 Microsoft AI Libraries,指令如下: - -``` -conda install -c microsoft azure-ai-ml -``` - -環境設定檔會指定我們需要的相依套件。`` 是你想用的 Conda 環境名稱,`` 是你想用的 Python 版本,例如 `3` 是最新的主要版本。 - -完成後,你可以在命令列/終端機執行以下指令來建立 Conda 環境: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -如果遇到問題,可以參考[Conda 環境指南](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst)。 - -### 使用 Visual Studio Code 搭配 Python 支援擴充功能 - -我們建議使用[Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst)編輯器,並安裝[Python 支援擴充功能](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst)來進行這個課程。不過這只是建議,並非硬性要求。 - -> **Note**:在 VS Code 開啟課程 repo 時,你可以選擇在容器中設定專案。這是因為課程 repo 裡有[特殊的 `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst)目錄。後面會再說明。 - -> **Note**:當你 clone 並在 VS Code 開啟目錄時,它會自動建議你安裝 Python 支援擴充功能。 - -> **Note**:如果 VS Code 建議你重新在容器中開啟 repo,請拒絕此請求,以便使用本機安裝的 Python 版本。 - -### 在瀏覽器中使用 Jupyter - -你也可以直接在瀏覽器中使用 [Jupyter 環境](https://jupyter.org?WT.mc_id=academic-105485-koreyst)來開發。無論是經典版 Jupyter 或是 [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst),都提供了自動補全、程式碼高亮等不錯的開發體驗。 - -要在本機啟動 Jupyter,請打開終端機/命令列,切換到課程目錄,執行: - -```bash -jupyter notebook -``` - -或 - -```bash -jupyterhub -``` - -這會啟動一個 Jupyter 服務,命令列視窗會顯示可用的 URL。 - -打開該 URL 後,你會看到課程大綱,並能瀏覽任何 `*.ipynb` 檔案,例如 `08-building-search-applications/python/oai-solution.ipynb`。 - -### 在容器中執行 - -另一個選擇是使用[容器](../../../00-course-setup/),而課程 repo 裡的特殊 `.devcontainer` 資料夾讓 VS Code 可以在容器中設定專案。 - -如果不使用 Codespaces,這需要安裝 Docker,且設定上較為繁複,因此我們只建議有容器使用經驗的人採用。 - -在使用 GitHub Codespaces 時,保護 API 金鑰安全的最佳方法之一是使用 Codespace Secrets。請參考[Codespaces secrets 管理指南](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst)了解更多。 - -## 課程內容與技術需求 - -課程包含 6 個概念課程和 6 個程式設計課程。 - -程式設計課程會使用 Azure OpenAI Service。你需要有 Azure OpenAI 服務的存取權和 API 金鑰才能執行程式碼。你可以透過[填寫申請表](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst)來申請存取權。 - -在等待申請審核期間,每個程式設計課程也會附有 `README.md` 檔案,讓你可以查看程式碼和輸出結果。 - -## 第一次使用 Azure OpenAI Service - -如果你是第一次使用 Azure OpenAI 服務,請參考這份教學,了解如何[建立並部署 Azure OpenAI Service 資源](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst)。 - -## 第一次使用 OpenAI API - -如果你是第一次使用 OpenAI API,請參考這份教學,了解如何[建立並使用介面](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst)。 - -## 認識其他學員 - -我們在官方的 [AI Community Discord 伺服器](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst)中建立了頻道,方便你認識其他學員。這是與志同道合的創業家、開發者、學生,以及所有想在生成式 AI 領域提升自己的人交流的好地方。 - -[![Join discord channel](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -專案團隊也會在這個 Discord 伺服器上協助學員。 - -## 貢獻 - -這個課程是開源計畫。如果你發現可以改進的地方或有問題,請提出[Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst)或回報[GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst)。 - -專案團隊會追蹤所有貢獻。參與開源是建立生成式 AI 事業的絕佳方式。 - -大多數貢獻需要你同意一份貢獻者授權協議 (CLA),聲明你有權利且確實授權我們使用你的貢獻。詳情請參考[CLA,貢獻者授權協議網站](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst)。 - -重要提醒:翻譯此 repo 內的文字時,請勿使用機器翻譯。我們會透過社群驗證翻譯品質,因此請只在你熟悉的語言中自願參與翻譯。 - -當你提交 pull request 時,CLA-bot 會自動判斷你是否需要提供 CLA,並在 PR 上標示(例如標籤、留言)。只要依照機器人的指示操作即可。你只需在所有使用我們 CLA 的 repo 中做一次。 - -本專案已採用[Microsoft 開源行為準則](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst)。更多資訊請參閱行為準則常見問題,或透過 [Email opencode](opencode@microsoft.com) 聯絡我們。 - -## 開始吧 - -既然你已完成完成課程所需的步驟,現在就從[生成式 AI 與大型語言模型的介紹](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst)開始吧! - -**免責聲明**: -本文件由 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於確保準確性,但請注意自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而引起的任何誤解或誤釋承擔責任。 \ No newline at end of file + + + + diff --git a/translations/hk/00-course-setup/SETUP.md b/translations/hk/00-course-setup/SETUP.md deleted file mode 100644 index 3b3260b07..000000000 --- a/translations/hk/00-course-setup/SETUP.md +++ /dev/null @@ -1,146 +0,0 @@ - -# 設定你的開發環境 - -我們為這個儲存庫和課程設置了一個[開發容器](https://containers.dev?WT.mc_id=academic-105485-koreyst),內建一個通用執行環境,支援 Python3、.NET、Node.js 和 Java 開發。相關設定定義在位於此儲存庫根目錄 `.devcontainer/` 資料夾中的 `devcontainer.json` 檔案。 - -要啟動開發容器,可以在[GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst)(雲端執行環境)或[Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst)(本地裝置執行環境)中啟動。詳細說明請參考[這份文件](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst),了解 VS Code 中開發容器的運作方式。 - -> [!TIP] -> 我們建議使用 GitHub Codespaces 以快速且輕鬆地開始。它為個人帳號提供相當慷慨的[免費使用額度](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst)。你也可以設定[逾時](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst),自動停止或刪除閒置的 codespaces,以最大化使用額度。 - -## 1. 執行作業 - -每堂課可能會提供一或多種程式語言的 _選修_ 作業,包括 Python、.NET/C#、Java 和 JavaScript/TypeScript。本節提供執行這些作業的一般指引。 - -### 1.1 Python 作業 - -Python 作業會以應用程式(`.py` 檔案)或 Jupyter 筆記本(`.ipynb` 檔案)形式提供。 -- 若要執行筆記本,請在 Visual Studio Code 中開啟,然後點選右上角的 _Select Kernel_,選擇預設的 Python 3 選項。接著即可使用 _Run All_ 執行整個筆記本。 -- 若要從命令列執行 Python 應用程式,請依照作業的具體指示,確保選擇正確的檔案並提供所需的參數。 - -## 2. 設定服務提供者 - -作業**可能**會設定為透過支援的服務提供者(如 OpenAI、Azure 或 Hugging Face)連接一個或多個大型語言模型(LLM)部署。這些服務提供一個 _託管端點_(API),我們可以用正確的憑證(API 金鑰或令牌)程式化存取。在本課程中,我們會討論以下提供者: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst),提供多種模型,包括核心的 GPT 系列。 - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst),專注於企業級的 OpenAI 模型。 - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst),提供開源模型和推理伺服器。 - -**你需要使用自己的帳號來完成這些練習**。作業是選修的,因此你可以根據興趣選擇設定其中一個、全部或不設定任何提供者。以下是註冊的相關說明: - -| 註冊 | 費用 | API 金鑰 | Playground | 備註 | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst) | [價格](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst) | [專案金鑰](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [無程式碼、網頁介面](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | 多種模型可用 | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst) | [價格](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst) | [SDK 快速入門](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Studio 快速入門](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [需事先申請存取權](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) | -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [價格](https://huggingface.co/pricing) | [存取令牌](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst) | [Hugging Chat 模型有限](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -請依照以下指示,為此儲存庫設定不同的提供者。需要特定提供者的作業檔名會包含以下標籤之一: - - `aoai` - 需要 Azure OpenAI 端點與金鑰 - - `oai` - 需要 OpenAI 端點與金鑰 - - `hf` - 需要 Hugging Face 令牌 - -你可以設定其中一個、全部或不設定。缺少憑證的相關作業會直接報錯。 - -### 2.1. 建立 `.env` 檔案 - -假設你已閱讀上述指引,並已在相關提供者註冊,取得所需的認證憑證(API_KEY 或令牌)。若是 Azure OpenAI,則假設你也已部署有效的 Azure OpenAI 服務(端點),並至少部署了一個用於聊天完成的 GPT 模型。 - -接下來請設定你的**本地環境變數**,步驟如下: - -1. 在根目錄找到 `.env.copy` 檔案,內容應類似以下: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. 使用以下指令複製該檔案為 `.env`。此檔案已被加入 `.gitignore`,可確保秘密資訊安全。 - - ```bash - cp .env.copy .env - ``` - -3. 按下一節說明,填入對應的值(替換 `=` 右側的佔位符)。 - -3.(選項)如果你使用 GitHub Codespaces,可以選擇將環境變數儲存為與此儲存庫關聯的 _Codespaces secrets_。這樣就不需要在本地建立 `.env` 檔案。**但請注意,此選項僅適用於 GitHub Codespaces。** 若使用 Docker Desktop,仍需建立 `.env` 檔案。 - -### 2.2. 填寫 `.env` 檔案 - -快速了解變數名稱代表的意義: - -| 變數名稱 | 說明 | -| :--- | :--- | -| HUGGING_FACE_API_KEY | 你在 Hugging Face 個人資料中設定的使用者存取令牌 | -| OPENAI_API_KEY | 用於非 Azure OpenAI 端點的授權金鑰 | -| AZURE_OPENAI_API_KEY | 用於 Azure OpenAI 服務的授權金鑰 | -| AZURE_OPENAI_ENDPOINT | Azure OpenAI 資源的部署端點 | -| AZURE_OPENAI_DEPLOYMENT | _文字生成_ 模型的部署端點名稱 | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | _文字嵌入_ 模型的部署端點名稱 | -| | | - -注意:最後兩個 Azure OpenAI 變數分別對應預設的聊天完成(文字生成)模型和向量搜尋(嵌入)模型。設定說明會在相關作業中提供。 - -### 2.3 從 Azure 入口網站設定 - -Azure OpenAI 的端點與金鑰可在[Azure 入口網站](https://portal.azure.com?WT.mc_id=academic-105485-koreyst)找到,以下是步驟: - -1. 前往[Azure 入口網站](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -2. 點選側邊欄(左側選單)的 **Keys and Endpoint** 選項 -3. 點選 **Show Keys**,你會看到 KEY 1、KEY 2 和 Endpoint -4. 將 KEY 1 的值填入 `AZURE_OPENAI_API_KEY` -5. 將 Endpoint 的值填入 `AZURE_OPENAI_ENDPOINT` - -接著,我們需要取得已部署模型的端點名稱。 - -1. 點選 Azure OpenAI 資源側邊欄的 **Model deployments** 選項 -2. 在頁面中點選 **Manage Deployments** - -這會帶你到 Azure OpenAI Studio 網站,接下來會找到其他需要的值。 - -### 2.4 從 Azure Studio 設定 - -1. 從上述資源頁面,前往[Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) -2. 點選左側的 **Deployments** 標籤,查看目前已部署的模型 -3. 若尚未部署所需模型,請使用 **Create new deployment** 來部署 -4. 你需要一個 _文字生成_ 模型,我們推薦:**gpt-35-turbo** -5. 你需要一個 _文字嵌入_ 模型,我們推薦:**text-embedding-ada-002** - -接著更新環境變數,填入你所使用的 _Deployment name_。通常這名稱會與模型名稱相同,除非你有特別更改。例如: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**完成後別忘了儲存 `.env` 檔案**。接著即可關閉檔案,回到執行筆記本的指示。 - -### 2.5 從 OpenAI 個人頁面設定 - -你的 OpenAI API 金鑰可在你的[OpenAI 帳號](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst)中找到。若尚未擁有帳號,可以註冊並建立 API 金鑰。取得金鑰後,填入 `.env` 檔案中的 `OPENAI_API_KEY` 變數。 - -### 2.6 從 Hugging Face 個人頁面設定 - -你的 Hugging Face 令牌可在個人頁面中的[Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst)找到。請勿公開或分享這些令牌。建議為此專案建立新的令牌,並將其複製到 `.env` 檔案的 `HUGGING_FACE_API_KEY` 變數中。 -_注意:_ 這技術上不是 API 金鑰,但用於認證,因此為保持一致性,我們仍使用此命名方式。 - -**免責聲明**: -本文件由 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於確保準確性,但請注意自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而引起的任何誤解或誤釋承擔責任。 \ No newline at end of file diff --git a/translations/hk/04-prompt-engineering-fundamentals/README.md b/translations/hk/04-prompt-engineering-fundamentals/README.md index b927b4626..f1211912e 100644 --- a/translations/hk/04-prompt-engineering-fundamentals/README.md +++ b/translations/hk/04-prompt-engineering-fundamentals/README.md @@ -1,463 +1,15 @@ - -# Prompt Engineering Fundamentals - -[![Prompt Engineering Fundamentals](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.hk.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## 介紹 -本單元涵蓋在生成式 AI 模型中創建有效提示的基本概念和技巧。你如何撰寫給大型語言模型(LLM)的提示同樣重要。精心設計的提示能夠獲得更高質量的回應。但到底什麼是「提示」和「提示工程」?我又該如何改進發送給 LLM 的提示輸入?這些問題將在本章及下一章中嘗試解答。 - -生成式 AI 能夠根據用戶請求創造新內容(例如文字、圖片、音頻、程式碼等)。它是透過像 OpenAI 的 GPT(「生成式預訓練轉換器」)系列這樣的大型語言模型來實現,這些模型經過自然語言和程式碼的訓練。 - -用戶現在可以用熟悉的對話方式與這些模型互動,無需任何技術專業知識或培訓。這些模型是基於「提示」的——用戶發送文字輸入(提示),然後獲得 AI 回應(完成)。用戶可以透過多輪對話不斷「與 AI 聊天」,逐步調整提示,直到回應符合預期。 - -「提示」現已成為生成式 AI 應用的主要「程式設計介面」,告訴模型該做什麼,並影響回應的質量。「提示工程」是一個快速發展的研究領域,專注於設計和優化提示,以大規模提供穩定且高質量的回應。 - -## 學習目標 - -在本課程中,我們將了解什麼是提示工程、為什麼它重要,以及如何為特定模型和應用目標設計更有效的提示。我們會理解提示工程的核心概念和最佳實踐,並學習一個互動式 Jupyter 筆記本「沙盒」環境,讓我們能將這些概念應用於實際範例。 - -完成本課程後,我們將能夠: - -1. 解釋什麼是提示工程及其重要性。 -2. 描述提示的組成部分及其用途。 -3. 學習提示工程的最佳實踐和技巧。 -4. 使用 OpenAI 端點將所學技巧應用於實際範例。 - -## 關鍵詞 - -提示工程:設計和優化輸入以引導 AI 模型產生期望輸出的實踐。 -分詞(Tokenization):將文字轉換成模型能理解和處理的較小單位(稱為「tokens」)的過程。 -指令調校大型語言模型(Instruction-Tuned LLMs):經過特定指令微調的大型語言模型,以提升回應的準確性和相關性。 - -## 學習沙盒 - -提示工程目前更像是一門藝術而非科學。提升直覺的最佳方法是多加練習,採用結合應用領域專業知識、推薦技巧和模型特定優化的試錯方法。 - -本課程附帶的 Jupyter 筆記本提供一個「沙盒」環境,讓你可以隨時嘗試所學內容,或作為課程結尾的程式挑戰。執行練習需要: - -1. **Azure OpenAI API 金鑰**——已部署 LLM 的服務端點。 -2. **Python 執行環境**——用於執行筆記本。 -3. **本地環境變數**——請先完成[SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst)步驟以準備好環境。 - -筆記本內建有入門練習,但鼓勵你自行新增 _Markdown_(說明)和 _Code_(提示請求)區塊,嘗試更多範例或想法,培養提示設計的直覺。 - -## 圖解指南 - -想在深入學習前先了解本課程涵蓋的整體架構嗎?看看這份圖解指南,讓你對主要主題和每個主題的重點有個概念。課程路線圖將帶你從理解核心概念和挑戰,到用相關提示工程技巧和最佳實踐來解決問題。請注意,指南中的「進階技巧」部分是指本課程下一章的內容。 - -![Illustrated Guide to Prompt Engineering](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.hk.png) - -## 我們的創業公司 - -現在,讓我們談談這個主題如何與我們的創業使命相關——[將 AI 創新帶入教育](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst)。我們希望打造以 AI 為動力的「個人化學習」應用,讓我們來思考不同用戶如何「設計」提示: - -- **管理員**可能會請 AI _分析課程資料以找出內容缺口_。AI 可以總結結果或用程式碼將其視覺化。 -- **教育工作者**可能會請 AI _為特定受眾和主題生成教案_。AI 可以以指定格式建立個人化計劃。 -- **學生**可能會請 AI _輔導他們學習困難科目_。AI 現在能根據學生程度提供課程、提示和範例。 - -這只是冰山一角。看看[教育用提示庫](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst)——由教育專家策劃的開源提示庫,讓你更全面了解可能性!_試著在沙盒或 OpenAI Playground 執行這些提示,看看會有什麼結果!_ - - - -## 什麼是提示工程? - -我們從定義 **提示工程** 開始,指的是為特定應用目標和模型設計及優化文字輸入(提示),以提供穩定且高質量回應(完成)的過程。我們可以將其視為兩個步驟: - -- 為特定模型和目標 _設計_ 初始提示 -- 反覆 _優化_ 提示以提升回應質量 - -這必然是一個試錯過程,需要用戶的直覺和努力才能達到最佳效果。那為什麼它重要?要回答這個問題,我們先要理解三個概念: - -- _分詞_ = 模型如何「看見」提示 -- _基礎大型語言模型_ = 基礎模型如何「處理」提示 -- _指令調校大型語言模型_ = 模型如何「理解任務」 - -### 分詞(Tokenization) - -LLM 將提示視為一連串的 _tokens_,不同模型(或同一模型的不同版本)可能會以不同方式分詞同一提示。由於 LLM 是基於 tokens(而非原始文字)訓練,提示的分詞方式直接影響生成回應的質量。 - -想了解分詞如何運作,可以試試像下方的 [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) 工具。將你的提示貼上,看看它如何被轉換成 tokens,注意空白字元和標點符號的處理方式。此範例使用較舊的 LLM(GPT-3),用較新模型測試可能會有不同結果。 - -![Tokenization](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.hk.png) - -### 概念:基礎模型 - -提示分詞後,基礎大型語言模型(["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst))的主要功能是預測序列中的下一個 token。由於 LLM 在龐大文本資料集上訓練,能掌握 token 之間的統計關係,並以一定信心做出預測。請注意,模型並不理解提示中詞語的「意義」,它只是看到一個模式,並用下一個預測來「完成」序列。模型會持續預測直到用戶中止或達到預設條件。 - -想看看基於提示的完成如何運作?將上述提示輸入 Azure OpenAI Studio 的 [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst),使用預設設定。系統會將提示視為資訊請求,因此你應該會看到符合此上下文的回應。 - -但如果用戶想看到符合特定條件或任務目標的內容呢?這時就需要用到 _指令調校_ 的 LLM。 - -![Base LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.hk.png) - -### 概念:指令調校大型語言模型 - -[指令調校 LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) 是在基礎模型上,透過範例或輸入/輸出對(例如多輪「訊息」)進行微調,這些範例包含明確指令,AI 的回應會嘗試遵循這些指令。 - -這使用了如人類反饋強化學習(RLHF)等技術,訓練模型 _遵循指令_ 並 _從反饋中學習_,使其產生更適合實際應用且更符合用戶目標的回應。 - -我們來試試——回到上面的提示,將 _系統訊息_ 改成以下指令作為上下文: - -> _將提供的內容為二年級學生做摘要。結果保持一段文字,並列出 3-5 個重點。_ - -看看結果如何調整以符合期望的目標和格式?教育工作者現在可以直接將此回應用於該堂課的投影片中。 - -![Instruction Tuned LLM Chat Completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.hk.png) - -## 為什麼我們需要提示工程? - -既然我們知道提示如何被 LLM 處理,接下來談談 _為什麼_ 需要提示工程。原因在於目前的 LLM 存在多項挑戰,使得 _可靠且一致的回應_ 難以在沒有投入提示設計和優化的情況下達成。例如: - -1. **模型回應具有隨機性。** _相同的提示_ 在不同模型或模型版本間可能產生不同回應,甚至同一模型在不同時間也可能有不同結果。_提示工程技巧能幫助我們透過更好的限制條件來減少這些變異_。 - -1. **模型可能捏造回應。** 模型是基於 _龐大但有限_ 的資料集預訓練,對訓練範圍外的概念缺乏知識。因此可能產生不準確、虛構或與已知事實相矛盾的回應。_提示工程技巧幫助用戶識別並減輕這類捏造,例如要求 AI 提供引用或推理_。 - -1. **模型能力會有所不同。** 新一代模型功能更強大,但也帶來成本和複雜度上的獨特特性和取捨。_提示工程能幫助我們制定最佳實踐和工作流程,抽象化差異並適應模型特定需求,實現可擴展且無縫的應用_。 - -讓我們在 OpenAI 或 Azure OpenAI Playground 中實際體驗: - -- 用相同提示測試不同 LLM 部署(例如 OpenAI、Azure OpenAI、Hugging Face)——你有看到差異嗎? -- 用相同提示多次測試 _同一_ LLM 部署(例如 Azure OpenAI playground)——這些變異有何不同? - -### 捏造範例 - -在本課程中,我們用「**捏造**」一詞來指 LLM 有時因訓練限制或其他因素,生成事實錯誤資訊的現象。你可能在文章或研究報告中聽過「幻覺(hallucinations)」這個詞,但我們強烈建議使用「捏造」,避免將機器行為擬人化,賦予人類特質。這也符合[負責任 AI 指南](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst)的用詞規範,避免使用在某些情境下可能被視為冒犯或不包容的詞彙。 - -想了解捏造是怎麼發生的?想像一個提示指示 AI 生成不存在主題的內容(確保該主題不在訓練資料中)。例如——我嘗試了這個提示: -# 火星戰爭2076年課程計劃 - -## 課程目標 -- 了解2076年火星戰爭的背景及起因 -- 分析主要參戰方及其戰略 -- 探討戰爭對地球及火星社會的影響 -- 培養學生批判性思考及歷史分析能力 - -## 課程大綱 - -### 第一節:火星戰爭的背景 -- 火星殖民的歷史簡介 -- 地球與火星之間的政治經濟關係 -- 戰爭爆發的主要原因 - -### 第二節:主要參戰方與戰略 -- 地球聯盟軍隊介紹 -- 火星獨立運動組織 -- 重要戰役與戰術分析 - -### 第三節:戰爭的影響 -- 對火星殖民地的社會經濟影響 -- 地球的政治變動 -- 戰後重建與和平協議 - -### 第四節:批判性討論與反思 -- 戰爭的道德與倫理問題 -- 未來火星與地球的關係展望 -- 學生分組討論與報告 - -## 教學方法 -- 講授與多媒體展示 -- 小組討論與角色扮演 -- 案例研究與資料分析 - -## 評估方式 -- 課堂參與與討論表現 -- 小組報告 -- 期末寫作作業:分析火星戰爭的歷史意義 - -## 參考資料 -- 火星戰爭2076年官方紀錄 -- 相關歷史文獻與研究報告 -- 多媒體資料與紀錄片 - ---- - -> [!NOTE] -> 本課程計劃旨在激發學生對未來歷史事件的興趣,並培養跨學科的分析能力。 -網絡搜尋顯示有關火星戰爭的虛構故事(例如電視劇或書籍)存在,但沒有發生在2076年的。常識也告訴我們,2076年是 _未來_ 的時間,因此不可能與真實事件有關。 - -那麼,當我們用不同的LLM供應商執行這個提示時會發生什麼? - -> **Response 1**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.hk.png) - -> **Response 2**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.hk.png) - -> **Response 3**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.hk.png) - -如預期,每個模型(或模型版本)因為隨機性行為和模型能力的差異,產生了略有不同的回應。例如,一個模型針對八年級學生,而另一個則假設是高中生。但這三個模型都生成了可能讓不知情用戶相信該事件是真實的回應。 - -像 _metaprompting_ 和 _temperature configuration_ 這類提示工程技術,或許能在一定程度上減少模型的虛構內容。新的提示工程 _架構_ 也將新工具和技術無縫整合到提示流程中,以緩解或減少這些影響。 - -## 案例研究:GitHub Copilot - -讓我們以一個案例研究來結束這部分,了解提示工程如何應用於現實世界的解決方案,看看 [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst)。 - -GitHub Copilot 是你的「AI 編程搭檔」——它將文字提示轉換成程式碼補全,並整合到你的開發環境(例如 Visual Studio Code)中,提供無縫的使用體驗。正如以下一系列部落格所記錄,最早版本基於 OpenAI Codex 模型,工程師很快意識到需要微調模型並開發更好的提示工程技術,以提升程式碼品質。今年七月,他們[推出了超越 Codex 的改良 AI 模型](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst),提供更快速的建議。 - -請按順序閱讀這些文章,跟隨他們的學習歷程。 - -- **2023年5月** | [GitHub Copilot 在理解你的程式碼方面變得更好](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **2023年5月** | [GitHub 內部:與 GitHub Copilot 背後的 LLMs 合作](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **2023年6月** | [如何為 GitHub Copilot 撰寫更好的提示](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **2023年7月** | [GitHub Copilot 以改良 AI 模型超越 Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **2023年7月** | [開發者的提示工程與 LLM 指南](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **2023年9月** | [如何打造企業級 LLM 應用:GitHub Copilot 的經驗教訓](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -你也可以瀏覽他們的[工程部落格](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst),閱讀更多像[這篇](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst)的文章,展示這些模型和技術如何 _應用_ 於推動現實世界的應用。 - ---- - - - -## 提示構建 - -我們已經了解為什麼提示工程很重要——現在讓我們理解提示是如何 _構建_ 的,這樣我們才能評估不同技術,設計出更有效的提示。 - -### 基本提示 - -先從基本提示開始:一個純文字輸入送到模型,沒有其他上下文。以下是一個例子——當我們將美國國歌的前幾個字送到 OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst),它會立即 _補全_ 後續幾行,展示基本的預測行為。 - -| 提示(輸入) | 補全(輸出) | -| :----------------- | :---------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | 聽起來你正在開始唱「星條旗永不落」的歌詞,美國的國歌。完整歌詞是... | - -### 複雜提示 - -現在讓我們在基本提示中加入上下文和指令。[Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) 允許我們將複雜提示構建為一組 _訊息_,包括: - -- 反映 _使用者_ 輸入和 _助理_ 回應的輸入/輸出對。 -- 設定助理行為或個性的系統訊息。 - -請求現在呈現如下形式,其中 _分詞_ 有效捕捉上下文和對話中的相關資訊。改變系統上下文對補全品質的影響,與使用者輸入一樣重要。 - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### 指令提示 - -在上述例子中,使用者提示是簡單的文字查詢,可解讀為資訊請求。使用 _指令_ 提示,我們可以用文字更詳細地指定任務,給 AI 更好的指引。以下是一個例子: - -| 提示(輸入) | 補全(輸出) | 指令類型 | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------- | :------------------ | -| Write a description of the Civil War | _回傳一段簡單的段落_ | 簡單 | -| Write a description of the Civil War. Provide key dates and events and describe their significance | _回傳一段段落,接著列出關鍵事件日期及說明_ | 複雜 | -| Write a description of the Civil War in 1 paragraph. Provide 3 bullet points with key dates and their significance. Provide 3 more bullet points with key historical figures and their contributions. Return the output as a JSON file | _回傳更詳盡的內容,格式為可複製貼上並驗證的 JSON 檔案_ | 複雜。格式化。 | - -## 主要內容 - -在上述例子中,提示仍相當開放,讓 LLM 決定其預訓練資料中哪些部分相關。使用 _主要內容_ 設計模式,輸入文字分為兩部分: - -- 指令(動作) -- 相關內容(影響動作) - -以下是一個例子,指令是「用兩句話總結這段內容」。 - -| 提示(輸入) | 補全(輸出) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. It is named after the Roman god Jupiter.[19] When viewed from Earth, Jupiter can be bright enough for its reflected light to cast visible shadows,[20] and is on average the third-brightest natural object in the night sky after the Moon and Venus.
**Summarize this in 2 short sentences** | 木星是太陽系中第五顆行星,也是最大的行星,並且是夜空中最明亮的天體之一。它以羅馬神祇朱庇特命名,是一顆氣態巨星,其質量是太陽的千分之一,但卻是太陽系其他所有行星質量總和的兩倍半。 | - -主要內容段落可以用多種方式來推動更有效的指令: - -- **範例** — 不直接告訴模型要做什麼,而是給它範例,讓它推斷模式。 -- **提示** — 在指令後面加上「提示」,引導模型產生更相關的回應。 -- **範本** — 這是可重複使用的提示「配方」,帶有可用資料自訂的佔位符(變數),適用於特定用例。 - -讓我們來看看這些方法的實際應用。 - -### 使用範例 - -這種方法是用主要內容「餵給模型」一些期望輸出的範例,讓它推斷出想要的輸出模式。根據範例數量,我們有零次提示、一次提示、少次提示等。 - -提示現在包含三個部分: - -- 任務描述 -- 幾個期望輸出的範例 -- 新範例的開始(成為隱含的任務描述) - -| 學習類型 | 提示(輸入) | 補全(輸出) | -| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------- | -| 零次提示 | "The Sun is Shining". Translate to Spanish | "El Sol está brillando". | -| 一次提示 | "The Sun is Shining" => ""El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| 少次提示 | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketball | -| | | | - -注意零次提示中我們必須明確指示「翻譯成西班牙語」,但在一次提示中這個指令是隱含推斷出來的。少次提示則展示了加入更多範例如何讓模型在沒有額外指令下做出更準確的推斷。 - -### 提示線索 - -另一種使用主要內容的技巧是提供 _線索_ 而非範例。在這種情況下,我們用一段反映期望回應格式的片段 _啟動_ 模型,模型便會「接收線索」並沿著該方向繼續。 - -| 線索數量 | 提示(輸入) | 補全(輸出) | -| :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. - -**Summarize This** | 木星是太陽系中最大的一顆行星,距離太陽第五顆。它是一顆氣體巨星,質量約為太陽的千分之一,但比其他所有行星加起來還要重。古代文明早已認識木星,且它在夜空中非常容易被看見。 | -| 1 | 木星是距離太陽第五顆行星,也是太陽系中最大的行星。它是一顆氣體巨星,質量約為太陽的千分之一,但比太陽系中其他所有行星的總和還要重兩倍半。木星是夜空中肉眼可見的最亮天體之一,古代文明早在有文字記錄之前就已經知道它。
**Summarize This**
我們學到的是木星 | 是距離太陽第五顆行星,也是太陽系中最大的行星。它是一顆氣體巨星,質量約為太陽的千分之一,但比其他所有行星加起來還要重兩倍半。它肉眼可見,且自古以來就為人所知。 | -| 2 | 木星是距離太陽第五顆行星,也是太陽系中最大的行星。它是一顆氣體巨星,質量約為太陽的千分之一,但比太陽系中其他所有行星的總和還要重兩倍半。木星是夜空中肉眼可見的最亮天體之一,古代文明早在有文字記錄之前就已經知道它。
**Summarize This**
我們學到的三大重點: | 1. 木星是距離太陽第五顆行星,也是太陽系中最大的行星。
2. 它是一顆氣體巨星,質量約為太陽的千分之一……
3. 木星自古以來就能用肉眼看見…… | -| | | | - -### Prompt Templates - -提示模板是一種 _預先定義好的提示配方_,可以儲存並根據需要重複使用,以在大規模上提供更一致的用戶體驗。最簡單的形式,就是像[OpenAI這個範例](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst)那樣,收集一組提示範例,包含互動式的提示組件(用戶和系統訊息)以及 API 請求格式,方便重用。 - -在更複雜的形式中,如[LangChain的範例](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst),它包含了 _佔位符_,可以用來替換來自不同來源的資料(用戶輸入、系統上下文、外部資料等),以動態生成提示。這讓我們能建立一個可重用的提示庫,能夠 **程式化地** 在大規模上驅動一致的用戶體驗。 - -最後,模板的真正價值在於能夠為垂直應用領域創建並發布 _提示庫_,這些提示模板會根據應用特定的上下文或範例進行 _優化_,使回應對目標用戶更相關且準確。[Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) 倉庫就是一個很好的例子,專注於教育領域,強調課程規劃、課程設計、學生輔導等核心目標,精心策劃了一系列提示。 - -## Supporting Content - -如果我們把提示構建看作是有一個指令(任務)和一個目標(主要內容),那麼 _次要內容_ 就像是我們提供的額外上下文,用來 **以某種方式影響輸出**。它可以是調整參數、格式指示、主題分類等,有助於模型 _調整_ 回應以符合期望的用戶目標或需求。 - -舉例來說:給定一個包含豐富元資料(名稱、描述、等級、標籤、講師等)的課程目錄: - -- 我們可以定義一個指令「總結 2023 年秋季的課程目錄」 -- 用主要內容提供幾個期望輸出的範例 -- 用次要內容標示出最重要的五個「標籤」 - -這樣模型就能以範例中展示的格式提供摘要,但如果結果包含多個標籤,模型會優先考慮次要內容中標示的五個標籤。 - ---- - - - -## Prompting Best Practices - -既然我們知道提示可以如何 _構建_,接下來可以開始思考如何 _設計_ 它們以反映最佳實踐。我們可以從兩個方面來看——擁有正確的 _心態_ 和運用合適的 _技巧_。 - -### Prompt Engineering Mindset - -提示工程是一個反覆試驗的過程,請記住以下三個大方向: - -1. **領域理解很重要。** 回應的準確性和相關性取決於應用或用戶所處的 _領域_。運用你的直覺和領域專業知識來 **進一步客製化技巧**。例如,在系統提示中定義 _領域特定的人格_,或在用戶提示中使用 _領域特定的模板_。提供反映領域上下文的次要內容,或用 _領域特定的提示和範例_ 引導模型朝熟悉的用法。 - -2. **模型理解很重要。** 我們知道模型本質上是隨機的,但不同模型的實作也會因訓練資料(預訓練知識)、提供的功能(如 API 或 SDK)以及優化的內容類型(程式碼、圖片、文字等)而異。了解你使用的模型的優勢和限制,並利用這些知識來 _優先排序任務_ 或建立 _針對模型能力優化的客製模板_。 - -3. **迭代與驗證很重要。** 模型和提示工程技術都在快速演進。作為領域專家,你可能有其他特定應用的背景或標準,這些不一定適用於更廣泛的社群。利用提示工程工具和技巧「快速啟動」提示構建,然後用你的直覺和領域專業反覆驗證結果。記錄你的見解並建立一個 **知識庫**(例如提示庫),讓其他人能以此為新基準,加速未來的迭代。 - -## Best Practices - -現在來看看 [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) 和 [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst) 實務者推薦的常見最佳做法。 - -| 做什麼 | 為什麼 | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 評估最新模型 | 新一代模型通常功能和品質更好,但成本可能更高。評估其影響後再決定是否遷移。 | -| 分開指令與上下文 | 確認你的模型或服務提供者是否定義了 _分隔符_,用來更清楚區分指令、主要和次要內容。這有助於模型更準確地分配權重給各個詞元。 | -| 具體且清楚 | 提供更多關於期望上下文、結果、長度、格式、風格等細節,能提升回應的品質和一致性。將這些做法記錄在可重用的模板中。 | -| 詳細描述並用範例 | 模型通常對「示範教學」的方式反應更好。先用「零次學習」方式給出指令(無範例),再用「少次學習」提供幾個期望輸出的範例來精煉。也可以用類比說明。 | -| 用提示詞引導完成 | 給模型一些開頭的詞語或片語,幫助它從這些線索開始生成回應,朝向期望結果。 | -| 重複強調 | 有時需要對模型重複指令。可以在主要內容前後都給指令,或同時用指令和提示詞。反覆嘗試並驗證什麼最有效。 | -| 順序很重要 | 呈現給模型的資訊順序可能影響輸出,尤其是學習範例中,因為模型有近期偏好。嘗試不同順序找出最佳效果。 | -| 給模型「退路」 | 給模型一個 _備用_ 回應選項,當它無法完成任務時可以使用,減少生成錯誤或虛構回應的機率。 | -| | | - -如同任何最佳實踐,請記得 _實際效果會因模型、任務和領域而異_。把這些當作起點,持續迭代找出最適合你的方法。隨著新模型和工具的推出,不斷重新評估你的提示工程流程,重點放在流程可擴展性和回應品質。 - - - -## Assignment - -恭喜你完成本課程!現在是時候用實際範例來測試這些概念和技巧了! - -這次作業會用一個 Jupyter Notebook,裡面有互動式練習。你也可以自行在 Notebook 裡新增 Markdown 和程式碼區塊,探索更多想法和技巧。 - -### 開始前,先 fork 這個 repo,然後 - -- (推薦)啟動 GitHub Codespaces -- (或)將 repo 複製到本地端,並用 Docker Desktop 運行 -- (或)用你偏好的 Notebook 執行環境打開 Notebook - -### 接著,設定環境變數 - -- 將 repo 根目錄的 `.env.copy` 複製為 `.env`,並填入 `AZURE_OPENAI_API_KEY`、`AZURE_OPENAI_ENDPOINT` 和 `AZURE_OPENAI_DEPLOYMENT`。完成後回到[學習沙盒章節](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals)了解如何操作。 - -### 然後,打開 Jupyter Notebook - -- 選擇執行核心。如果使用前兩種方式,直接選擇開發容器提供的預設 Python 3.10.x 核心即可。 - -你已準備好開始練習。請注意,這裡沒有「對錯」答案,重點是透過反覆嘗試探索,建立對特定模型和應用領域的直覺。 - -_因此本課程沒有程式碼解答區塊。Notebook 裡會有標題為「My Solution:」的 Markdown 區塊,展示一個範例輸出供參考。_ - - - -## Knowledge check - -以下哪一個提示符合合理的最佳實踐? - -1. 給我一張紅色汽車的圖片 -2. 給我一張停在懸崖邊、夕陽下的紅色 Volvo XC90 汽車圖片 -3. 給我一張紅色 Volvo XC90 汽車的圖片 - -答:2 是最佳提示,因為它提供了「什麼」的細節,並具體描述(不只是任何車,而是特定品牌和車型),還描述了整體場景。3 次之,因為也包含了很多描述。 - -## 🚀 Challenge - -試試看用「提示詞」技巧,完成句子「給我一張紅色 Volvo 汽車的圖片,然後……」。它會怎麼回應?你會如何改進? - -## Great Work! Continue Your Learning - -想了解更多提示工程的概念?請前往[進階學習頁面](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst)尋找更多優質資源。 - -接著前往第 5 課,我們將探討[進階提示技巧](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**免責聲明**: -本文件由 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於確保準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而引起的任何誤解或誤釋承擔責任。 \ No newline at end of file + + + + + + + diff --git a/translations/hk/09-building-image-applications/README.md b/translations/hk/09-building-image-applications/README.md index fddee3f6a..aa2ca084a 100644 --- a/translations/hk/09-building-image-applications/README.md +++ b/translations/hk/09-building-image-applications/README.md @@ -1,475 +1,12 @@ - -# 建立圖像生成應用程式 - -[![Building Image Generation Applications](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.hk.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -大型語言模型不只會產生文字,也能從文字描述生成圖像。圖像作為一種媒介,在醫療科技、建築、旅遊、遊戲開發等多個領域都非常有用。本章節將介紹兩個最受歡迎的圖像生成模型:DALL-E 和 Midjourney。 - -## 介紹 - -本課程將涵蓋: - -- 圖像生成及其用途。 -- DALL-E 和 Midjourney 是什麼,以及它們的運作原理。 -- 如何建立一個圖像生成應用程式。 - -## 學習目標 - -完成本課程後,你將能夠: - -- 建立一個圖像生成應用程式。 -- 使用元提示(meta prompts)為應用程式設定界限。 -- 使用 DALL-E 和 Midjourney。 - -## 為什麼要建立圖像生成應用程式? - -圖像生成應用程式是探索生成式 AI 能力的絕佳方式。它們可以用於: - -- **圖像編輯與合成**。你可以生成各種用途的圖像,例如圖像編輯和合成。 - -- **應用於多個產業**。也能用於醫療科技、旅遊、遊戲開發等多個產業的圖像生成。 - -## 情境:Edu4All - -在本課程中,我們將繼續與創業公司 Edu4All 合作。學生們會為他們的評估創作圖像,具體內容由學生決定,可能是他們自己童話故事的插畫、故事中的新角色,或幫助他們視覺化想法和概念。 - -例如,若 Edu4All 的學生在課堂上研究紀念碑,他們可能會生成如下圖像: - -![Edu4All startup, class on monuments, Eiffel Tower](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.hk.png) - -使用的提示語可能是: - -> 「清晨陽光下,埃菲爾鐵塔旁的一隻狗」 - -## 什麼是 DALL-E 和 Midjourney? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) 和 [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) 是兩個最受歡迎的圖像生成模型,能透過提示語生成圖像。 - -### DALL-E - -先從 DALL-E 開始,它是一個從文字描述生成圖像的生成式 AI 模型。 - -> [DALL-E 是由兩個模型組合而成,CLIP 和 diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst)。 - -- **CLIP** 是一個從圖像和文字中產生嵌入向量(數值表示)的模型。 - -- **Diffused attention** 是一個從嵌入向量生成圖像的模型。DALL-E 在圖像和文字資料集上訓練,能根據文字描述生成圖像。例如,DALL-E 可以生成戴帽子的貓或莫霍克髮型的狗的圖像。 - -### Midjourney - -Midjourney 的運作方式與 DALL-E 類似,能根據文字提示生成圖像。Midjourney 也能用提示語如「戴帽子的貓」或「莫霍克髮型的狗」來生成圖像。 - -![Image generated by Midjourney, mechanical pigeon](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_圖片來源 Wikipedia,由 Midjourney 生成_ - -## DALL-E 和 Midjourney 的運作原理 - -首先是 [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst)。DALL-E 是基於 transformer 架構的生成式 AI 模型,採用 _自回歸 transformer_。 - -自回歸 transformer 定義了模型如何從文字描述生成圖像,它一次生成一個像素,然後利用已生成的像素來生成下一個像素。透過神經網絡的多層處理,直到圖像完成。 - -透過這個過程,DALL-E 能控制圖像中的屬性、物件、特徵等。不過,DALL-E 2 和 3 對生成圖像的控制力更強。 - -## 建立你的第一個圖像生成應用程式 - -那麼,建立一個圖像生成應用程式需要什麼?你需要以下函式庫: - -- **python-dotenv**,強烈建議使用此函式庫將機密資訊保存在 _.env_ 檔案中,避免直接寫在程式碼裡。 -- **openai**,用來與 OpenAI API 互動的函式庫。 -- **pillow**,用於在 Python 中處理圖像。 -- **requests**,協助發送 HTTP 請求。 - -1. 建立一個 _.env_ 檔案,內容如下: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - 你可以在 Azure 入口網站的「金鑰與端點」區段找到這些資訊。 - -1. 將上述函式庫列在 _requirements.txt_ 檔案中,如下: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. 接著,建立虛擬環境並安裝函式庫: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Windows 使用者可用以下指令建立並啟動虛擬環境: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. 在 _app.py_ 檔案中加入以下程式碼: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -讓我們解釋這段程式碼: - -- 首先,我們匯入所需的函式庫,包括 OpenAI、dotenv、requests 和 Pillow。 - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- 接著,我們從 _.env_ 檔案載入環境變數。 - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- 然後,設定 OpenAI API 的端點、金鑰、版本和類型。 - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- 接著,我們生成圖像: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - 上述程式碼會回傳一個 JSON 物件,包含生成圖像的 URL。我們可以用這個 URL 下載圖像並儲存成檔案。 - -- 最後,我們開啟圖像並用標準圖像檢視器顯示: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### 更詳細的圖像生成說明 - -讓我們更仔細看看生成圖像的程式碼: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** 是用來生成圖像的文字提示。這裡使用的提示是「兔子騎馬,手持棒棒糖,站在長滿水仙花的霧氣草地上」。 -- **size** 是生成圖像的尺寸,這裡是 1024x1024 像素。 -- **n** 是生成圖像的數量,這裡是兩張。 -- **temperature** 是控制生成式 AI 輸出隨機性的參數,介於 0 到 1 之間,0 表示輸出是確定性的,1 表示輸出是隨機的。預設值是 0.7。 - -接下來我們會介紹更多圖像相關的功能。 - -## 圖像生成的額外功能 - -到目前為止,你已經看到如何用幾行 Python 程式碼生成圖像。但圖像還能做更多事。 - -你還可以: - -- **進行編輯**。透過提供現有圖像、遮罩和提示語,你可以修改圖像。例如,你可以在圖像的某部分加上東西。想像我們的兔子圖像,你可以幫兔子戴上帽子。做法是提供原始圖像、一個標示要修改區域的遮罩,以及描述要做什麼的文字提示。 - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - 原始圖像只有兔子,最終圖像則是兔子戴上了帽子。 - -- **創造變體**。你可以拿現有圖像,要求生成多個變體。要創造變體,你需要提供圖像和文字提示,程式碼如下: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > 注意,這功能目前只支援 OpenAI。 - -## 溫度參數 - -溫度是控制生成式 AI 輸出隨機性的參數,介於 0 到 1 之間,0 表示輸出是確定性的,1 表示輸出是隨機的。預設值是 0.7。 - -讓我們透過以下提示語執行兩次,看看溫度的效果: - -> 提示語:「兔子騎馬,手持棒棒糖,站在長滿水仙花的霧氣草地上」 - -![Bunny on a horse holding a lollipop, version 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.hk.png) - -現在再執行一次相同提示語,看看是否會得到相同圖像: - -![Generated image of bunny on horse](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.hk.png) - -如你所見,兩張圖像相似但不完全相同。接著,我們將溫度調整為 0.1,看看會發生什麼: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### 調整溫度 - -我們試著讓輸出更確定性。從剛才兩張圖像可見,第一張有兔子,第二張有馬,差異很大。 - -因此,我們修改程式碼,將溫度設為 0,如下: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -執行後,你會得到以下兩張圖像: - -- ![Temperature 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.hk.png) -- ![Temperature 0 , v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.hk.png) - -你可以明顯看到兩張圖像更為相似。 - -## 如何用元提示為應用程式設定界限 - -透過我們的示範,已能為客戶生成圖像,但我們需要為應用程式設定一些界限。 - -例如,我們不希望生成不適合工作場合或兒童觀看的圖像。 - -這可以透過 _元提示_(metaprompts)達成。元提示是用來控制生成式 AI 輸出內容的文字提示。例如,我們可以用元提示確保生成的圖像適合工作場合或兒童觀看。 - -### 元提示如何運作? - -元提示是放在主要提示語之前的文字提示,用來控制模型的輸出,並嵌入應用程式中以管理生成結果。它將提示輸入和元提示合併成一個完整的文字提示。 - -以下是一個元提示的範例: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -接著,看看我們如何在示範中使用元提示。 - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -從上述提示可見,所有生成的圖像都會考慮元提示的限制。 - -## 作業 - 讓學生開始動手 - -我們在課程一開始介紹了 Edu4All,現在是時候讓學生為他們的評估生成圖像。 - -學生將為評估創作包含紀念碑的圖像,具體哪些紀念碑由學生自行決定。學生被鼓勵發揮創意,將這些紀念碑置於不同的情境中。 - -## 解答 - -以下是一個可能的解答: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## 做得好!繼續學習 - -完成本課程後,歡迎參考我們的[生成式 AI 學習資源集](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst),持續提升你的生成式 AI 知識! - -接著前往第 10 課,我們將探討如何[用低程式碼建立 AI 應用程式](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**免責聲明**: -本文件由 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於確保準確性,但請注意自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而引起的任何誤解或誤釋承擔責任。 \ No newline at end of file + + + + diff --git a/translations/hk/12-designing-ux-for-ai-applications/README.md b/translations/hk/12-designing-ux-for-ai-applications/README.md index 41c0c4e4f..0d1e31273 100644 --- a/translations/hk/12-designing-ux-for-ai-applications/README.md +++ b/translations/hk/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# 為 AI 應用程式設計用戶體驗 - -[![為 AI 應用程式設計用戶體驗](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.hk.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(點擊上方圖片觀看本課程影片)_ - -用戶體驗是開發應用程式中非常重要的一環。用戶需要能夠有效率地使用你的應用程式來完成任務。效率固然重要,但你同時也需要設計出人人都能使用的應用程式,讓它們具備「無障礙」特性。本章將聚焦於這方面,希望你最終能設計出既實用又受歡迎的應用程式。 - -## 介紹 - -用戶體驗是指用戶如何與特定產品或服務互動和使用,無論是系統、工具或設計。在開發 AI 應用程式時,開發者不僅要確保用戶體驗有效,還要兼顧倫理。本課程將介紹如何打造符合用戶需求的人工智能(AI)應用程式。 - -本課程將涵蓋以下主題: - -- 用戶體驗介紹與理解用戶需求 -- 為信任與透明度設計 AI 應用程式 -- 為協作與回饋設計 AI 應用程式 - -## 學習目標 - -完成本課程後,你將能夠: - -- 了解如何打造符合用戶需求的 AI 應用程式。 -- 設計促進信任與協作的 AI 應用程式。 - -### 先備知識 - -花點時間閱讀更多關於[用戶體驗與設計思維](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst)的內容。 - -## 用戶體驗介紹與理解用戶需求 - -在我們虛構的教育新創公司中,有兩類主要用戶:教師和學生。這兩類用戶各有獨特需求。以用戶為中心的設計會優先考量用戶,確保產品對目標用戶有意義且有幫助。 - -應用程式應該是**有用、可靠、無障礙且令人愉悅**,才能提供良好的用戶體驗。 - -### 易用性 - -有用代表應用程式的功能符合其預期目的,例如自動化評分流程或生成複習用的抽認卡。自動化評分的應用程式應能根據預設標準準確且有效率地為學生作業打分。類似地,生成複習抽認卡的應用程式應能根據資料創造相關且多樣的問題。 - -### 可靠性 - -可靠代表應用程式能持續且無誤地執行任務。然而,AI 和人類一樣並非完美,可能會出錯。應用程式可能會遇到錯誤或意外狀況,需要人工介入或修正。你會如何處理錯誤?本課程最後一節將介紹如何設計 AI 系統與應用程式以促進協作與回饋。 - -### 無障礙 - -無障礙代表將用戶體驗延伸至各種能力的用戶,包括身心障礙者,確保沒有人被排除在外。遵循無障礙指引與原則,AI 解決方案能變得更具包容性、易用且對所有用戶有益。 - -### 愉悅感 - -愉悅感代表應用程式使用起來令人愉快。吸引人的用戶體驗能正面影響用戶,鼓勵他們持續使用應用程式,並提升業務收益。 - -![說明 AI 中用戶體驗考量的圖片](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.hk.png) - -並非所有挑戰都能靠 AI 解決。AI 是用來強化你的用戶體驗,無論是自動化手動任務,還是個人化用戶體驗。 - -## 為信任與透明度設計 AI 應用程式 - -建立信任在設計 AI 應用程式時至關重要。信任讓用戶有信心應用程式能完成工作、持續交付結果,且結果符合用戶需求。這方面的風險包括不信任與過度信任。不信任是指用戶對 AI 系統幾乎沒有信心,導致拒絕使用你的應用程式。過度信任則是用戶高估 AI 系統能力,過度依賴 AI。例如,過度信任自動評分系統可能導致教師不再仔細審核部分試卷,結果可能造成學生評分不公或錯失回饋與改進的機會。 - -確保信任成為設計核心的兩個方法是可解釋性與控制權。 - -### 可解釋性 - -當 AI 幫助做出決策,例如傳授知識給未來世代時,教師和家長理解 AI 如何做決策非常重要。這就是可解釋性——了解 AI 應用程式如何做出決策。設計可解釋性包括加入 AI 應用程式能做什麼的範例細節。例如,系統可以用「使用 AI 幫你整理筆記,方便複習」來取代「開始使用 AI 教師」。 - -![展示 AI 應用程式中可解釋性的應用程式首頁](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.hk.png) - -另一個例子是 AI 如何使用用戶和個人資料。例如,擁有學生角色的用戶可能會有角色限制。AI 可能無法直接揭示答案,但能引導用戶思考如何解決問題。 - -![根據角色回答問題的 AI](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.hk.png) - -可解釋性的另一個關鍵是簡化說明。學生和教師可能不是 AI 專家,因此應用程式能做什麼或不能做什麼的說明應該簡單易懂。 - -![簡化 AI 功能說明](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.hk.png) - -### 控制權 - -生成式 AI 促成 AI 與用戶的協作,例如用戶可以修改提示詞以獲得不同結果。此外,產生結果後,用戶應能修改結果,讓他們感受到掌控感。例如,使用 Bing 時,你可以根據格式、語氣和長度調整提示詞,還能對輸出結果進行修改,如下圖所示: - -![Bing 搜尋結果,提供修改提示詞和輸出結果的選項](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.hk.png) - -Bing 另一項讓用戶掌控應用程式的功能是可選擇是否讓 AI 使用其資料。對於學校應用程式,學生可能想使用自己的筆記以及教師的資源作為複習材料。 - -![Bing 搜尋結果,提供修改提示詞和輸出結果的選項](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.hk.png) - -> 設計 AI 應用程式時,刻意性是關鍵,確保用戶不會過度信任並對 AI 能力抱持不切實際的期望。一種做法是在提示詞與結果之間製造摩擦,提醒用戶這是 AI,而非真人。 - -## 為協作與回饋設計 AI 應用程式 - -如前所述,生成式 AI 促成用戶與 AI 的協作。大多數互動是用戶輸入提示詞,AI 產生結果。如果結果錯誤,應用程式如何處理?AI 會怪罪用戶,還是花時間解釋錯誤? - -AI 應用程式應設計成能接收並給予回饋。這不僅有助於 AI 系統改進,也能建立用戶信任。設計中應包含回饋迴路,例如對結果給予簡單的讚或踩。 - -另一種做法是清楚溝通系統的能力與限制。當用戶提出超出 AI 能力範圍的請求時,應有相應的處理方式,如下圖所示。 - -![提供回饋與錯誤處理](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.hk.png) - -系統錯誤在應用程式中很常見,例如用戶可能需要 AI 範圍外的資訊,或應用程式限制用戶能生成的問題/科目數量。例如,一個只訓練於歷史和數學資料的 AI 應用程式,可能無法處理地理相關問題。為了緩解這種情況,AI 系統可以回應:「抱歉,我們的產品只訓練於以下科目……,無法回答您提出的問題。」 - -AI 應用程式並非完美,必然會犯錯。設計應用程式時,應確保有空間讓用戶提供回饋,並以簡單且易於理解的方式處理錯誤。 - -## 作業 - -挑選你目前開發的任何 AI 應用程式,考慮在你的應用中實施以下步驟: - -- **愉悅感:** 思考如何讓你的應用程式更令人愉快。你是否在各處加入說明?是否鼓勵用戶探索?你的錯誤訊息用詞如何? - -- **易用性:** 建立網頁應用程式。確保你的應用程式能用滑鼠和鍵盤操作。 - -- **信任與透明度:** 不要完全信任 AI 及其輸出,思考如何加入人工審核流程來驗證結果。同時考慮並實施其他促進信任與透明度的方法。 - -- **控制權:** 讓用戶掌控他們提供給應用程式的資料。實作用戶可選擇加入或退出資料收集的機制。 - -## 繼續學習! - -完成本課程後,請參考我們的[生成式 AI 學習合集](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst),持續提升你的生成式 AI 知識! - -接著前往第 13 課,我們將探討如何[保障 AI 應用程式安全](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**免責聲明**: -本文件由 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於確保準確性,但請注意自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而引起的任何誤解或誤釋承擔責任。 \ No newline at end of file + + + diff --git a/translations/hk/README.md b/translations/hk/README.md index 269c8ca27..ac2598ef1 100644 --- a/translations/hk/README.md +++ b/translations/hk/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.hk.png) - -### 21堂課教你建立生成式AI應用所需的所有知識 - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 多語言支援 - -#### 透過 GitHub Action 支援(自動且隨時更新) - -[法文](../fr/README.md) | [西班牙文](../es/README.md) | [德文](../de/README.md) | [俄文](../ru/README.md) | [阿拉伯文](../ar/README.md) | [波斯文 (Farsi)](../fa/README.md) | [烏爾都文](../ur/README.md) | [中文 (簡體)](../zh/README.md) | [中文 (繁體,澳門)](../mo/README.md) | [中文 (繁體,香港)](./README.md) | [中文 (繁體,台灣)](../tw/README.md) | [日文](../ja/README.md) | [韓文](../ko/README.md) | [印地文](../hi/README.md) | [孟加拉文](../bn/README.md) | [馬拉地文](../mr/README.md) | [尼泊爾文](../ne/README.md) | [旁遮普文 (Gurmukhi)](../pa/README.md) | [葡萄牙文 (葡萄牙)](../pt/README.md) | [葡萄牙文 (巴西)](../br/README.md) | [義大利文](../it/README.md) | [波蘭文](../pl/README.md) | [土耳其文](../tr/README.md) | [希臘文](../el/README.md) | [泰文](../th/README.md) | [瑞典文](../sv/README.md) | [丹麥文](../da/README.md) | [挪威文](../no/README.md) | [芬蘭文](../fi/README.md) | [荷蘭文](../nl/README.md) | [希伯來文](../he/README.md) | [越南文](../vi/README.md) | [印尼文](../id/README.md) | [馬來文](../ms/README.md) | [他加祿文 (菲律賓語)](../tl/README.md) | [斯瓦希里文](../sw/README.md) | [匈牙利文](../hu/README.md) | [捷克文](../cs/README.md) | [斯洛伐克文](../sk/README.md) | [羅馬尼亞文](../ro/README.md) | [保加利亞文](../bg/README.md) | [塞爾維亞文 (西里爾字母)](../sr/README.md) | [克羅地亞文](../hr/README.md) | [斯洛維尼亞文](../sl/README.md) | [烏克蘭文](../uk/README.md) | [緬甸文 (Myanmar)](../my/README.md) - -# Generative AI for Beginners (版本 3) - 一門課程 - -透過 Microsoft Cloud Advocates 的21堂課,學習建立生成式AI應用的基礎知識。 - -## 🌱 入門指南 - -本課程共有21堂課。每堂課涵蓋不同主題,隨你喜歡從任何一堂開始! - -課程分為「Learn」課程,解釋生成式AI的概念;以及「Build」課程,除了說明概念外,還會提供 **Python** 和 **TypeScript** 的程式碼範例(如適用)。 - -.NET 開發者可參考 [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -每堂課還包含「Keep Learning」單元,提供額外的學習資源。 - -## 你需要準備什麼 -### 執行本課程程式碼,你可以使用以下任一服務: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **適用課程:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **適用課程:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **適用課程:** "oai-assignment" - -- 具備基本的 Python 或 TypeScript 知識會有幫助 - \*完全新手可參考這些 [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) 和 [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) 課程 -- 一個 GitHub 帳號,用來[將整個 repo fork 到自己的帳號](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) - -我們準備了 **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** 課程,協助你設定開發環境。 - -別忘了[為此 repo 加星 (🌟)](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst),方便日後快速找到。 - -## 🧠 準備好部署了嗎? - -如果你想要更進階的程式碼範例,歡迎參考我們的[生成式AI程式碼範例集](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst),提供 **Python** 和 **TypeScript** 版本。 - -## 🗣️ 與其他學習者交流、獲得支援 - -加入我們的[官方 Azure AI Foundry Discord 伺服器](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst),與其他學習者交流並獲得支援。 - -在我們的 [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum)(GitHub)提出問題或分享產品回饋。 - -## 🚀 想創業? - -註冊 [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst),可獲得 **免費 OpenAI 點數** 及最高 **$150,000 美元的 Azure 點數**,用於透過 Azure OpenAI Services 存取 OpenAI 模型。 - -## 🙏 想幫忙? - -有建議或發現拼字或程式碼錯誤嗎?歡迎[提出 issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst)或[送出 pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 每堂課包含: - -- 主題的短片介紹 -- 位於 README 的書面課程內容 -- 支援 Azure OpenAI 和 OpenAI API 的 Python 與 TypeScript 程式碼範例 -- 延伸學習資源連結 - -## 🗃️ 課程列表 - -| # | **課程連結** | **說明** | **影片** | **額外學習** | -| --- | ----------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 如何設定你的開發環境 | 影片即將推出 | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introduction to Generative AI and LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 了解什麼是生成式AI以及大型語言模型(LLMs)如何運作 | [影片](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Exploring and comparing different LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 如何為你的使用案例選擇合適的模型 | [影片](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Using Generative AI Responsibly](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 如何負責任地建立生成式AI應用 | [影片](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Understanding Prompt Engineering Fundamentals](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 實作提示工程的最佳實務 | [影片](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Creating Advanced Prompts](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 如何運用提示工程技巧提升提示效果 | [影片](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [建立文字生成應用程式](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **建立:** 使用 Azure OpenAI / OpenAI API 建立文字生成應用程式 | [Video](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [建立聊天應用程式](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **建立:** 高效構建及整合聊天應用程式的技巧 | [Video](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [建立搜尋應用程式與向量資料庫](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **建立:** 使用 Embeddings 進行資料搜尋的搜尋應用程式 | [Video](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [建立影像生成應用程式](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **建立:** 影像生成應用程式 | [Video](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [建立低程式碼 AI 應用程式](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **建立:** 使用低程式碼工具打造生成式 AI 應用程式 | [Video](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [使用 Function Calling 整合外部應用程式](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **建立:** 什麼是 function calling 及其在應用程式中的使用場景 | [Video](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [為 AI 應用程式設計使用者體驗](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 在開發生成式 AI 應用程式時如何應用 UX 設計原則 | [Video](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [保護你的生成式 AI 應用程式](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** AI 系統面臨的威脅與風險,以及保護這些系統的方法 | [Video](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [生成式 AI 應用程式的生命週期](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 管理 LLM 生命週期及 LLMOps 的工具與指標 | [Video](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [檢索增強生成 (RAG) 與向量資料庫](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **建立:** 使用 RAG 框架從向量資料庫檢索 embeddings 的應用程式 | [Video](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [開源模型與 Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **建立:** 使用 Hugging Face 上的開源模型打造應用程式 | [Video](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI 代理人](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **建立:** 使用 AI 代理人框架的應用程式 | [Video](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [微調 LLMs](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 什麼是微調 LLMs、為何要微調以及如何微調 | [Video](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [使用 SLMs 建立應用程式](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 使用小型語言模型 (Small Language Models) 建立應用程式的好處 | 影片即將推出 | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [使用 Mistral 模型建立應用程式](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** Mistral 系列模型的特色與差異 | 影片即將推出 | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [使用 Meta 模型建立應用程式](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** Meta 系列模型的特色與差異 | 影片即將推出 | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 特別感謝 - -特別感謝 [**John Aziz**](https://www.linkedin.com/in/john0isaac/) 創建所有 GitHub Actions 和工作流程 - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) 對每堂課程做出關鍵貢獻,提升學習者與程式碼體驗。 - -## 🎒 其他課程 - -我們團隊還製作了其他課程!歡迎參考: - -- [**全新** 初學者模型上下文協議](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [初學者 AI 代理人](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [使用 .NET 的生成式 AI 初學者課程](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [使用 JavaScript 的生成式 AI 初學者課程](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [機器學習初學者](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [資料科學初學者](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI 初學者](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [網絡安全初學者](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [網頁開發初學者](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [物聯網初學者](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR 開發初學者](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [精通 GitHub Copilot 進行 AI 配對編程](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [精通 GitHub Copilot 針對 C#/.NET 開發者](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [選擇你自己的 Copilot 冒險](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**免責聲明**: -本文件乃使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於確保準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而引起的任何誤解或誤釋承擔責任。 \ No newline at end of file + + + + diff --git a/translations/hr/00-course-setup/01-setup-cloud.md b/translations/hr/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..bdb2d4cfc --- /dev/null +++ b/translations/hr/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/hr/00-course-setup/02-setup-local.md b/translations/hr/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..429e91e8d --- /dev/null +++ b/translations/hr/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/hr/00-course-setup/03-providers.md b/translations/hr/00-course-setup/03-providers.md new file mode 100644 index 000000000..afc05a4eb --- /dev/null +++ b/translations/hr/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/hr/00-course-setup/README.md b/translations/hr/00-course-setup/README.md index e7f4e3232..53d14f0ad 100644 --- a/translations/hr/00-course-setup/README.md +++ b/translations/hr/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# Početak rada s ovim tečajem - -Jako smo uzbuđeni što ćete započeti ovaj tečaj i vidjeti što ćete sve biti inspirirani izgraditi uz Generativnu AI! - -Kako bismo osigurali vaš uspjeh, ova stranica opisuje korake postavljanja, tehničke zahtjeve i gdje potražiti pomoć ako vam zatreba. - -## Koraci postavljanja - -Za početak ovog tečaja, potrebno je dovršiti sljedeće korake. - -### 1. Forkajte ovaj repozitorij - -[Forkajte cijeli ovaj repozitorij](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) na svoj GitHub račun kako biste mogli mijenjati kod i rješavati izazove. Također možete [označiti (🌟) ovaj repozitorij](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) kako biste ga lakše pronašli zajedno s povezanim repozitorijima. - -### 2. Kreirajte codespace - -Kako biste izbjegli probleme s ovisnostima prilikom pokretanja koda, preporučujemo da ovaj tečaj pokrenete u [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst). - -To možete napraviti tako da na svojoj forkanoj verziji repozitorija odaberete opciju `Code` i zatim odaberete opciju **Codespaces**. - -![Dijalog koji prikazuje gumbe za kreiranje codespacea](../../../00-course-setup/images/who-will-pay.webp) - -### 3. Pohrana vaših API ključeva - -Važno je čuvati vaše API ključeve sigurno kada gradite bilo koju vrstu aplikacije. Preporučujemo da ne pohranjujete API ključeve direktno u kod. Ako te podatke pošaljete u javni repozitorij, to može dovesti do sigurnosnih problema pa čak i neželjenih troškova ako ih netko zloupotrijebi. -Evo vodiča korak po korak kako napraviti `.env` datoteku za Python i dodati `GITHUB_TOKEN`: - -1. **Idite u direktorij vašeg projekta**: Otvorite terminal ili naredbeni redak i idite u korijenski direktorij projekta gdje želite kreirati `.env` datoteku. - - ```bash - cd path/to/your/project - ``` - -2. **Kreirajte `.env` datoteku**: Koristite svoj omiljeni uređivač teksta za kreiranje nove datoteke nazvane `.env`. Ako koristite naredbeni redak, možete koristiti `touch` (na Unix sustavima) ili `echo` (na Windowsu): - - Unix sustavi: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **Uredite `.env` datoteku**: Otvorite `.env` datoteku u uređivaču teksta (npr. VS Code, Notepad++ ili bilo kojem drugom). Dodajte sljedeći redak u datoteku, zamjenjujući `your_github_token_here` stvarnim GitHub tokenom: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Spremite datoteku**: Spremite promjene i zatvorite uređivač teksta. - -5. **Instalirajte `python-dotenv`**: Ako već niste, trebate instalirati paket `python-dotenv` kako biste mogli učitati varijable okoline iz `.env` datoteke u vašu Python aplikaciju. Možete ga instalirati pomoću `pip`: - - ```bash - pip install python-dotenv - ``` - -6. **Učitajte varijable okoline u vaš Python skript**: U vašem Python skriptu koristite paket `python-dotenv` za učitavanje varijabli okoline iz `.env` datoteke: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -To je to! Uspješno ste kreirali `.env` datoteku, dodali svoj GitHub token i učitali ga u Python aplikaciju. - -## Kako pokrenuti lokalno na vašem računalu - -Da biste pokrenuli kod lokalno na svom računalu, potrebno je imati instaliranu neku verziju [Pythona](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -Zatim, da biste koristili repozitorij, potrebno ga je klonirati: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -Kad sve to imate, možete započeti! - -## Opcionalni koraci - -### Instalacija Miniconde - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) je lagani instalacijski program za instalaciju [Conde](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Pythona i nekoliko paketa. -Conda je upravitelj paketa koji olakšava postavljanje i prebacivanje između različitih Python [**virtualnih okruženja**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) i paketa. Također je koristan za instalaciju paketa koji nisu dostupni putem `pip`. - -Možete pratiti [MiniConda vodič za instalaciju](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) za postavljanje. - -Nakon instalacije Miniconde, trebate klonirati [repozitorij](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (ako to već niste napravili). - -Zatim trebate kreirati virtualno okruženje. Da biste to napravili s Condom, kreirajte novu datoteku za okruženje (_environment.yml_). Ako pratite tečaj koristeći Codespaces, kreirajte ju unutar direktorija `.devcontainer`, dakle `.devcontainer/environment.yml`. - -Popunite svoju datoteku okruženja sljedećim isječkom: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Ako naiđete na greške pri korištenju conde, možete ručno instalirati Microsoft AI biblioteke koristeći sljedeću naredbu u terminalu. - -``` -conda install -c microsoft azure-ai-ml -``` - -Datoteka okruženja specificira potrebne ovisnosti. `` označava ime koje želite dati svom Conda okruženju, a `` verziju Pythona koju želite koristiti, na primjer, `3` je najnovija glavna verzija Pythona. - -Kad to napravite, možete kreirati Conda okruženje pokretanjem naredbi u naredbenom retku/terminalu: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -Ako naiđete na probleme, pogledajte [Conda vodič za upravljanje okruženjima](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst). - -### Korištenje Visual Studio Code s Python podrškom - -Preporučujemo korištenje [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) uređivača s instaliranim [Python support extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) za ovaj tečaj. Ovo je preporuka, ali nije obavezno. - -> **Napomena**: Otvaranjem repozitorija tečaja u VS Code imate opciju postaviti projekt unutar containera. To je moguće zahvaljujući [posebnom `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) direktoriju unutar repozitorija tečaja. O tome ćemo više kasnije. - -> **Napomena**: Nakon što klonirate i otvorite direktorij u VS Code, automatski će vam se predložiti instalacija Python podrške. - -> **Napomena**: Ako vam VS Code predloži ponovno otvaranje repozitorija u containeru, odbijte taj zahtjev ako želite koristiti lokalno instaliranu verziju Pythona. - -### Korištenje Jupyter-a u pregledniku - -Također možete raditi na projektu koristeći [Jupyter okruženje](https://jupyter.org?WT.mc_id=academic-105485-koreyst) direktno u pregledniku. I klasični Jupyter i [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) nude ugodno razvojno okruženje s funkcijama poput automatskog dovršavanja, isticanja koda i slično. - -Za pokretanje Jupyter-a lokalno, otvorite terminal/naredbeni redak, idite u direktorij tečaja i pokrenite: - -```bash -jupyter notebook -``` - -ili - -```bash -jupyterhub -``` - -Ovo će pokrenuti Jupyter instancu, a URL za pristup bit će prikazan u prozoru naredbenog retka. - -Kad pristupite URL-u, trebali biste vidjeti strukturu tečaja i moći otvoriti bilo koju `*.ipynb` datoteku. Na primjer, `08-building-search-applications/python/oai-solution.ipynb`. - -### Pokretanje u containeru - -Alternativa postavljanju svega na vašem računalu ili Codespaceu je korištenje [containera](../../../00-course-setup/). Posebna `.devcontainer` mapa unutar repozitorija tečaja omogućuje VS Code-u da postavi projekt unutar containera. Izvan Codespacesa, to zahtijeva instalaciju Dockera i, iskreno, uključuje malo više posla, pa to preporučujemo samo onima koji imaju iskustva s containerima. - -Jedan od najboljih načina da zaštitite svoje API ključeve prilikom korištenja GitHub Codespaces je korištenje Codespace Secrets. Molimo pratite vodič za [Codespaces secrets management](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) za više informacija. - -## Lekcije i tehnički zahtjevi - -Tečaj sadrži 6 konceptualnih lekcija i 6 lekcija kodiranja. - -Za lekcije kodiranja koristimo Azure OpenAI Service. Trebat će vam pristup Azure OpenAI servisu i API ključ za pokretanje ovog koda. Možete se prijaviti za pristup [ispunjavajući ovu prijavu](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -Dok čekate obradu svoje prijave, svaka lekcija kodiranja također uključuje `README.md` datoteku u kojoj možete pregledati kod i rezultate. - -## Prvi put koristite Azure OpenAI Service - -Ako prvi put radite s Azure OpenAI servisom, molimo slijedite ovaj vodič o tome kako [kreirati i implementirati Azure OpenAI Service resurs.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## Prvi put koristite OpenAI API - -Ako prvi put radite s OpenAI API-jem, molimo slijedite vodič o tome kako [kreirati i koristiti sučelje.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## Upoznajte druge polaznike - -Kreirali smo kanale na našem službenom [AI Community Discord serveru](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) za upoznavanje drugih polaznika. Ovo je odličan način za umrežavanje s drugim poduzetnicima, graditeljima, studentima i svima koji žele napredovati u Generativnoj AI. - -[![Pridruži se discord kanalu](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -Tim projekta također će biti prisutan na ovom Discord serveru kako bi pomogao polaznicima. - -## Doprinos - -Ovaj tečaj je open-source inicijativa. Ako primijetite područja za poboljšanje ili probleme, molimo kreirajte [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) ili prijavite [GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -Tim projekta prati sve doprinose. Doprinos open source projektima je izvrstan način za razvoj karijere u Generativnoj AI. - -Većina doprinosa zahtijeva da se složite s Contributor License Agreement (CLA) koji potvrđuje da imate pravo i doista dajete prava za korištenje vašeg doprinosa. Za detalje posjetite [CLA, Contributor License Agreement web stranicu](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Važno: prilikom prevođenja teksta u ovom repozitoriju, molimo vas da ne koristite strojno prevođenje. Provjeravat ćemo prijevode putem zajednice, stoga se prijavljujte za prijevode samo ako ste u tom jeziku vješti. - -Kada pošaljete pull request, CLA-bot će automatski utvrditi trebate li dostaviti CLA i označiti PR na odgovarajući način (npr. oznaka, komentar). Jednostavno slijedite upute bota. Ovo ćete morati napraviti samo jednom za sve repozitorije koji koriste naš CLA. - -Ovaj projekt je usvojio [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst). Za više informacija pročitajte FAQ o Code of Conduct ili kontaktirajte [Email opencode](opencode@microsoft.com) za dodatna pitanja ili komentare. - -## Krenimo - -Sada kada ste dovršili potrebne korake za ovaj tečaj, krenimo s [uvodom u Generativnu AI i LLM-ove](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**Odricanje od odgovornosti**: -Ovaj dokument je preveden korištenjem AI usluge za prevođenje [Co-op Translator](https://github.com/Azure/co-op-translator). Iako težimo točnosti, imajte na umu da automatski prijevodi mogu sadržavati pogreške ili netočnosti. Izvorni dokument na izvornom jeziku treba smatrati službenim i autoritativnim izvorom. Za kritične informacije preporučuje se profesionalni ljudski prijevod. Ne snosimo odgovornost za bilo kakve nesporazume ili pogrešna tumačenja koja proizlaze iz korištenja ovog prijevoda. \ No newline at end of file + + + + diff --git a/translations/hr/00-course-setup/SETUP.md b/translations/hr/00-course-setup/SETUP.md deleted file mode 100644 index 7c304d236..000000000 --- a/translations/hr/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# Postavljanje vašeg razvojog okruženja - -Ovaj repozitorij i tečaj postavljeni su s [razvojnim kontejnerom](https://containers.dev?WT.mc_id=academic-105485-koreyst) koji ima univerzalno runtime okruženje koje podržava razvoj u Python3, .NET, Node.js i Javi. Povezana konfiguracija definirana je u datoteci `devcontainer.json` koja se nalazi u mapi `.devcontainer/` u korijenu ovog repozitorija. - -Za aktivaciju razvojnog kontejnera, pokrenite ga u [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (za runtime u oblaku) ili u [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (za lokalni runtime na uređaju). Pročitajte [ovu dokumentaciju](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) za više detalja o radu razvojnih kontejnera unutar VS Code-a. - -> [!TIP] -> Preporučujemo korištenje GitHub Codespaces za brz početak s minimalnim naporom. Nudi velikodušan [besplatni kvotu korištenja](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) za osobne račune. Konfigurirajte [timeout-e](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) za zaustavljanje ili brisanje neaktivnih codespaces-a kako biste maksimalno iskoristili kvotu. - -## 1. Izvršavanje zadataka - -Svaka lekcija može imati _neobavezne_ zadatke koji mogu biti dostupni u jednom ili više programskih jezika, uključujući: Python, .NET/C#, Java i JavaScript/TypeScript. Ovaj odjeljak daje opće smjernice vezane uz izvršavanje tih zadataka. - -### 1.1 Python zadaci - -Python zadaci su dostupni kao aplikacije (`.py` datoteke) ili Jupyter bilježnice (`.ipynb` datoteke). -- Za pokretanje bilježnice, otvorite je u Visual Studio Code-u, zatim kliknite na _Select Kernel_ (u gornjem desnom kutu) i odaberite zadanu opciju Python 3. Sada možete kliknuti na _Run All_ za izvršavanje bilježnice. -- Za pokretanje Python aplikacija iz komandne linije, slijedite upute specifične za zadatak kako biste odabrali ispravne datoteke i unijeli potrebne argumente. - -## 2. Konfiguriranje pružatelja usluga - -Zadaci **mogu** biti postavljeni da rade s jednim ili više Large Language Model (LLM) servisa putem podržanih pružatelja usluga poput OpenAI, Azure ili Hugging Face. Oni nude _hostani endpoint_ (API) kojem možemo pristupiti programatski s odgovarajućim vjerodajnicama (API ključ ili token). U ovom tečaju obrađujemo sljedeće pružatelje: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) s raznolikim modelima uključujući osnovnu GPT seriju. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) za OpenAI modele s fokusom na spremnost za poduzeća - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) za open-source modele i inference server - -**Za ove vježbe trebat ćete koristiti vlastite račune**. Zadaci su neobavezni pa možete odabrati postavljanje jednog, svih ili nijednog pružatelja, ovisno o vašim interesima. Evo nekoliko smjernica za registraciju: - -| Registracija | Cijena | API ključ | Playground | Komentari | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst) | [Cijene](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst) | [Na razini projekta](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [No-Code, Web](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Dostupno više modela | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst) | [Cijene](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst) | [SDK Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Studio Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Potrebna je prethodna prijava za pristup](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) | -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Cijene](https://huggingface.co/pricing) | [Access Tokens](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst) | [Hugging Chat ima ograničene modele](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Slijedite upute u nastavku za _konfiguriranje_ ovog repozitorija za rad s različitim pružateljima. Zadaci koji zahtijevaju određenog pružatelja imat će jedan od ovih tagova u nazivu datoteke: - - `aoai` - zahtijeva Azure OpenAI endpoint i ključ - - `oai` - zahtijeva OpenAI endpoint i ključ - - `hf` - zahtijeva Hugging Face token - -Možete konfigurirati jednog, nijednog ili sve pružatelje. Zadaci koji zahtijevaju određene vjerodajnice jednostavno će prijaviti grešku ako ih nema. - -### 2.1. Kreiranje `.env` datoteke - -Pretpostavljamo da ste već pročitali gore navedene upute, registrirali se kod relevantnog pružatelja i dobili potrebne vjerodajnice za autentifikaciju (API_KEY ili token). U slučaju Azure OpenAI, pretpostavljamo da imate valjanu implementaciju Azure OpenAI servisa (endpoint) s barem jednim GPT modelom za chat completion. - -Sljedeći korak je konfigurirati vaše **lokalne varijable okruženja** na sljedeći način: - -1. Potražite u korijenskoj mapi datoteku `.env.copy` koja bi trebala sadržavati nešto poput ovoga: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Kopirajte tu datoteku u `.env` koristeći naredbu ispod. Ova datoteka je _gitignore-ana_, što znači da tajne ostaju sigurne. - - ```bash - cp .env.copy .env - ``` - -3. Ispunite vrijednosti (zamijenite oznake s desne strane znaka `=`) kako je opisano u sljedećem odjeljku. - -3. (Opcionalno) Ako koristite GitHub Codespaces, imate opciju spremanja varijabli okruženja kao _Codespaces secrets_ povezanih s ovim repozitorijem. U tom slučaju nećete morati postavljati lokalnu .env datoteku. **Međutim, imajte na umu da ova opcija radi samo ako koristite GitHub Codespaces.** I dalje ćete morati postaviti .env datoteku ako koristite Docker Desktop. - -### 2.2. Popunjavanje `.env` datoteke - -Pogledajmo brzo nazive varijabli da bismo razumjeli što predstavljaju: - -| Varijabla | Opis | -| :--- | :--- | -| HUGGING_FACE_API_KEY | Ovo je korisnički pristupni token koji ste postavili u svom profilu | -| OPENAI_API_KEY | Ovo je autorizacijski ključ za korištenje servisa za ne-Azure OpenAI endpoint-e | -| AZURE_OPENAI_API_KEY | Ovo je autorizacijski ključ za korištenje Azure OpenAI servisa | -| AZURE_OPENAI_ENDPOINT | Ovo je endpoint implementiranog Azure OpenAI resursa | -| AZURE_OPENAI_DEPLOYMENT | Ovo je endpoint implementacije modela za _generiranje teksta_ | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | Ovo je endpoint implementacije modela za _tekstualne embeddings_ | -| | | - -Napomena: Posljednje dvije Azure OpenAI varijable odnose se na zadani model za chat completion (generiranje teksta) i pretraživanje vektora (embeddings). Upute za njihovo postavljanje bit će definirane u relevantnim zadacima. - -### 2.3. Konfiguriranje Azure: Iz portala - -Vrijednosti za Azure OpenAI endpoint i ključ možete pronaći u [Azure Portalu](https://portal.azure.com?WT.mc_id=academic-105485-koreyst), pa krenimo od tamo. - -1. Idite na [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -2. Kliknite na opciju **Keys and Endpoint** u bočnoj traci (izbornik lijevo). -3. Kliknite na **Show Keys** - trebali biste vidjeti sljedeće: KEY 1, KEY 2 i Endpoint. -4. Koristite vrijednost KEY 1 za AZURE_OPENAI_API_KEY -5. Koristite vrijednost Endpoint za AZURE_OPENAI_ENDPOINT - -Sljedeće, trebamo endpoint-e za specifične modele koje smo implementirali. - -1. Kliknite na opciju **Model deployments** u bočnoj traci (lijevi izbornik) za Azure OpenAI resurs. -2. Na odredišnoj stranici kliknite na **Manage Deployments** - -Ovo će vas odvesti na web stranicu Azure OpenAI Studija, gdje ćemo pronaći ostale vrijednosti kako je opisano u nastavku. - -### 2.4. Konfiguriranje Azure: Iz Studija - -1. Idite na [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **iz vašeg resursa** kao što je gore opisano. -2. Kliknite na karticu **Deployments** (bočna traka, lijevo) da vidite trenutno implementirane modele. -3. Ako željeni model nije implementiran, koristite opciju **Create new deployment** za njegovu implementaciju. -4. Trebat će vam model za _generiranje teksta_ - preporučujemo: **gpt-35-turbo** -5. Trebat će vam model za _tekstualne embeddings_ - preporučujemo **text-embedding-ada-002** - -Sada ažurirajte varijable okruženja da odražavaju _Deployment name_ koji koristite. To će obično biti isto kao ime modela, osim ako ste ga eksplicitno promijenili. Na primjer, mogli biste imati: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**Ne zaboravite spremiti .env datoteku kada završite**. Sada možete zatvoriti datoteku i vratiti se upute za pokretanje bilježnice. - -### 2.5. Konfiguriranje OpenAI: Iz profila - -Vaš OpenAI API ključ možete pronaći u svom [OpenAI računu](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). Ako ga nemate, možete se registrirati i kreirati API ključ. Nakon što dobijete ključ, upotrijebite ga za popunjavanje varijable `OPENAI_API_KEY` u `.env` datoteci. - -### 2.6. Konfiguriranje Hugging Face: Iz profila - -Vaš Hugging Face token možete pronaći u svom profilu pod [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). Nemojte ih objavljivati ili dijeliti javno. Umjesto toga, kreirajte novi token za ovu upotrebu projekta i kopirajte ga u `.env` datoteku pod varijablom `HUGGING_FACE_API_KEY`. _Napomena:_ Tehnički ovo nije API ključ, ali se koristi za autentifikaciju pa zadržavamo ovaj naziv radi konzistentnosti. - -**Odricanje od odgovornosti**: -Ovaj dokument je preveden korištenjem AI usluge za prevođenje [Co-op Translator](https://github.com/Azure/co-op-translator). Iako težimo točnosti, imajte na umu da automatski prijevodi mogu sadržavati pogreške ili netočnosti. Izvorni dokument na izvornom jeziku treba smatrati službenim i autoritativnim izvorom. Za važne informacije preporučuje se profesionalni ljudski prijevod. Ne snosimo odgovornost za bilo kakva nesporazuma ili pogrešna tumačenja koja proizlaze iz korištenja ovog prijevoda. \ No newline at end of file diff --git a/translations/hr/04-prompt-engineering-fundamentals/README.md b/translations/hr/04-prompt-engineering-fundamentals/README.md index 3796085b1..40f1e89a2 100644 --- a/translations/hr/04-prompt-engineering-fundamentals/README.md +++ b/translations/hr/04-prompt-engineering-fundamentals/README.md @@ -1,447 +1,15 @@ - -# Osnove Prompt Inženjeringa - -[![Prompt Engineering Fundamentals](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.hr.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Uvod -Ovaj modul pokriva ključne pojmove i tehnike za kreiranje učinkovitih promptova u generativnim AI modelima. Način na koji napišete svoj prompt za LLM također je važan. Pažljivo osmišljen prompt može dovesti do bolje kvalitete odgovora. Ali što točno znače pojmovi poput _prompt_ i _prompt engineering_? I kako mogu poboljšati prompt _input_ koji šaljem LLM-u? To su pitanja na koja ćemo pokušati odgovoriti u ovom i sljedećem poglavlju. - -_Generativna AI_ je sposobna stvarati novi sadržaj (npr. tekst, slike, zvuk, kod itd.) kao odgovor na korisničke zahtjeve. To postiže korištenjem _velikih jezičnih modela_ poput OpenAI-jeve GPT ("Generative Pre-trained Transformer") serije, koji su trenirani za rad s prirodnim jezikom i kodom. - -Korisnici sada mogu komunicirati s tim modelima koristeći poznate paradigme poput chata, bez potrebe za tehničkim znanjem ili obukom. Modeli su _prompt-based_ – korisnici šalju tekstualni unos (prompt) i dobivaju AI odgovor (completion). Zatim mogu "razgovarati s AI-jem" iterativno, u višekratnim razgovorima, usavršavajući svoj prompt dok odgovor ne zadovolji njihova očekivanja. - -"Promptovi" sada postaju glavno _programsko sučelje_ za generativne AI aplikacije, govoreći modelima što da rade i utječući na kvalitetu vraćenih odgovora. "Prompt Engineering" je brzo rastuće područje koje se fokusira na _dizajn i optimizaciju_ promptova kako bi se postigli dosljedni i kvalitetni odgovori u velikom opsegu. - -## Ciljevi učenja - -U ovoj lekciji naučit ćemo što je Prompt Engineering, zašto je važan i kako možemo osmisliti učinkovitije promptove za određeni model i cilj aplikacije. Razumjet ćemo osnovne pojmove i najbolje prakse za prompt engineering – te upoznati interaktivno Jupyter Notebook "sandbox" okruženje gdje možemo vidjeti primjenu tih koncepata na stvarnim primjerima. - -Na kraju ove lekcije moći ćemo: - -1. Objasniti što je prompt engineering i zašto je važan. -2. Opisati komponente prompta i kako se koriste. -3. Naučiti najbolje prakse i tehnike za prompt engineering. -4. Primijeniti naučene tehnike na stvarne primjere koristeći OpenAI endpoint. - -## Ključni pojmovi - -Prompt Engineering: Praksa dizajniranja i usavršavanja unosa kako bi se AI modeli usmjerili na proizvodnju željenih izlaza. -Tokenizacija: Proces pretvaranja teksta u manje jedinice, tzv. tokene, koje model može razumjeti i obraditi. -Instruction-Tuned LLMs: Veliki jezični modeli (LLM) koji su dodatno podešeni specifičnim uputama kako bi poboljšali točnost i relevantnost odgovora. - -## Sandbox za učenje - -Prompt engineering je trenutno više umjetnost nego znanost. Najbolji način da poboljšamo intuiciju za to je _više vježbati_ i usvojiti pristup pokušaja i pogrešaka koji kombinira stručnost u domeni primjene s preporučenim tehnikama i optimizacijama specifičnim za model. - -Jupyter Notebook koji prati ovu lekciju pruža _sandbox_ okruženje gdje možete isprobati ono što naučite – tijekom rada ili kao dio zadatka na kraju. Za izvođenje vježbi trebat će vam: - -1. **Azure OpenAI API ključ** – servisni endpoint za implementirani LLM. -2. **Python Runtime** – u kojem se može izvršiti Notebook. -3. **Lokalne varijable okoline** – _sada dovršite [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) korake da se pripremite_. - -Notebook dolazi s _početnim_ vježbama – ali potičemo vas da dodate vlastite _Markdown_ (opisne) i _Code_ (zahtjevi prompta) sekcije kako biste isprobali više primjera ili ideja – i razvili intuiciju za dizajn promptova. - -## Ilustrirani vodič - -Želite li dobiti širu sliku o čemu se radi u ovoj lekciji prije nego što krenete? Pogledajte ovaj ilustrirani vodič koji vam daje pregled glavnih tema i ključnih zaključaka o kojima trebate razmisliti u svakoj od njih. Plan lekcije vodi vas od razumijevanja osnovnih pojmova i izazova do njihovog rješavanja relevantnim tehnikama i najboljim praksama prompt engineeringa. Imajte na umu da se odjeljak "Napredne tehnike" u ovom vodiču odnosi na sadržaj koji je obrađen u _sljedećem_ poglavlju ovog kurikuluma. - -![Illustrated Guide to Prompt Engineering](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.hr.png) - -## Naš startup - -Sada, razgovarajmo o tome kako se _ova tema_ odnosi na misiju našeg startupa da [donesemo AI inovacije u obrazovanje](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). Želimo izgraditi AI-pokretane aplikacije za _personalizirano učenje_ – pa razmislimo kako bi različiti korisnici naše aplikacije mogli "dizajnirati" promptove: - -- **Administratori** bi mogli tražiti od AI-ja da _analizira podatke o kurikulumu kako bi identificirao praznine u pokrivenosti_. AI može sažeti rezultate ili ih vizualizirati pomoću koda. -- **Nastavnici** bi mogli tražiti od AI-ja da _generira plan lekcije za ciljanu publiku i temu_. AI može izraditi personalizirani plan u zadanom formatu. -- **Učenici** bi mogli tražiti od AI-ja da ih _podučava u teškoj temi_. AI sada može voditi učenike kroz lekcije, savjete i primjere prilagođene njihovoj razini. - -To je samo vrh sante leda. Pogledajte [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) – open-source biblioteku promptova koju su sastavili stručnjaci za obrazovanje – da dobijete širi uvid u mogućnosti! _Isprobajte neke od tih promptova u sandboxu ili koristeći OpenAI Playground da vidite što se događa!_ - - - -## Što je Prompt Engineering? - -Lekciju smo započeli definiranjem **Prompt Engineeringa** kao procesa _dizajniranja i optimizacije_ tekstualnih unosa (promptova) kako bi se postigli dosljedni i kvalitetni odgovori (completioni) za određeni cilj aplikacije i model. To možemo promatrati kao dvofazni proces: - -- _dizajniranje_ početnog prompta za određeni model i cilj -- _usavršavanje_ prompta iterativno kako bi se poboljšala kvaliteta odgovora - -To je nužno proces pokušaja i pogrešaka koji zahtijeva korisničku intuiciju i trud za postizanje optimalnih rezultata. Zašto je to važno? Da bismo odgovorili na to pitanje, prvo moramo razumjeti tri pojma: - -- _Tokenizacija_ = kako model "vidi" prompt -- _Osnovni LLM-ovi_ = kako temeljni model "obrađuje" prompt -- _Instruction-Tuned LLM-ovi_ = kako model sada može "vidjeti zadatke" - -### Tokenizacija - -LLM vidi promptove kao _niz tokena_ gdje različiti modeli (ili verzije modela) mogu tokenizirati isti prompt na različite načine. Budući da su LLM-ovi trenirani na tokenima (a ne na sirovom tekstu), način na koji se prompt tokenizira ima izravan utjecaj na kvalitetu generiranog odgovora. - -Da biste stekli intuiciju o tome kako tokenizacija funkcionira, isprobajte alate poput [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) prikazanog dolje. Zalijepite svoj prompt i pogledajte kako se pretvara u tokene, obraćajući pažnju na to kako se tretiraju razmaci i interpunkcijski znakovi. Imajte na umu da ovaj primjer prikazuje stariji LLM (GPT-3) – pa isprobavanje s novijim modelom može dati drugačiji rezultat. - -![Tokenizacija](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.hr.png) - -### Pojam: Temeljni modeli - -Nakon što je prompt tokeniziran, primarna funkcija ["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (ili temeljni model) je predvidjeti sljedeći token u nizu. Budući da su LLM-ovi trenirani na ogromnim skupovima tekstualnih podataka, imaju dobar osjećaj za statističke odnose između tokena i mogu tu predikciju napraviti s određenom sigurnošću. Imajte na umu da oni ne razumiju _značenje_ riječi u promptu ili tokenu; oni samo vide obrazac koji mogu "dovršiti" svojom sljedećom predikcijom. Mogu nastaviti predviđati niz dok ih korisnik ne zaustavi ili dok se ne ispuni neki unaprijed postavljeni uvjet. - -Želite li vidjeti kako radi dovršavanje na temelju prompta? Unesite gornji prompt u Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) s zadanim postavkama. Sustav je konfiguriran da tretira promptove kao zahtjeve za informacijama – pa biste trebali vidjeti dovršetak koji zadovoljava taj kontekst. - -Ali što ako korisnik želi vidjeti nešto specifično što zadovoljava određene kriterije ili cilj zadatka? Tu na scenu stupaju _instruction-tuned_ LLM-ovi. - -![Base LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.hr.png) - -### Pojam: Instruction Tuned LLMs - -[Instruction Tuned LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) počinje s temeljnim modelom i dodatno ga podešava s primjerima ili parovima ulaz/izlaz (npr. višekratnim "porukama") koje mogu sadržavati jasne upute – a odgovor AI-ja pokušava slijediti te upute. - -Ovo koristi tehnike poput Reinforcement Learning with Human Feedback (RLHF) koje mogu trenirati model da _slijedi upute_ i _uči iz povratnih informacija_ kako bi proizvodio odgovore bolje prilagođene praktičnim primjenama i relevantnije za korisničke ciljeve. - -Isprobajmo to – vratite se na gornji prompt, ali sada promijenite _system message_ da kao kontekst pružite sljedeću uputu: - -> _Sažmi sadržaj koji ti je dan za učenika drugog razreda. Ograniči rezultat na jedan odlomak s 3-5 nabrajanja._ - -Vidite kako je rezultat sada prilagođen željenom cilju i formatu? Nastavnik može odmah koristiti ovaj odgovor u svojim prezentacijama za taj razred. - -![Instruction Tuned LLM Chat Completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.hr.png) - -## Zašto nam treba Prompt Engineering? - -Sada kada znamo kako LLM-ovi obrađuju promptove, razgovarajmo o _zašto_ nam treba prompt engineering. Odgovor leži u činjenici da trenutni LLM-ovi imaju niz izazova koji otežavaju postizanje _pouzdanih i dosljednih dovršetaka_ bez uloženog truda u konstrukciju i optimizaciju prompta. Na primjer: - -1. **Odgovori modela su stohastički.** _Isti prompt_ vjerojatno će dati različite odgovore s različitim modelima ili verzijama modela. Čak može dati različite rezultate s _istim modelom_ u različito vrijeme. _Tehnike prompt engineeringa mogu nam pomoći smanjiti te varijacije pružajući bolje smjernice_. - -1. **Modeli mogu izmišljati odgovore.** Modeli su prethodno trenirani na _velikim, ali ograničenim_ skupovima podataka, što znači da nemaju znanje o pojmovima izvan tog opsega treninga. Kao rezultat, mogu proizvesti dovršetke koji su netočni, izmišljeni ili izravno proturječni poznatim činjenicama. _Tehnike prompt engineeringa pomažu korisnicima identificirati i ublažiti takve izmišljotine, npr. traženjem citata ili obrazloženja od AI-ja_. - -1. **Sposobnosti modela variraju.** Noviji modeli ili generacije modela imaju bogatije mogućnosti, ali donose i jedinstvene specifičnosti te kompromis u troškovima i složenosti. _Prompt engineering može pomoći u razvoju najboljih praksi i radnih tokova koji apstrahiraju razlike i prilagođavaju se zahtjevima specifičnim za model na skalabilan i neprimjetan način_. - -Pogledajmo to u praksi u OpenAI ili Azure OpenAI Playgroundu: - -- Koristite isti prompt s različitim LLM implementacijama (npr. OpenAI, Azure OpenAI, Hugging Face) – jeste li primijetili varijacije? -- Koristite isti prompt više puta s _istom_ LLM implementacijom (npr. Azure OpenAI playground) – kako su se te varijacije razlikovale? - -### Primjer izmišljotina - -U ovom tečaju koristimo pojam **"izmišljotina"** za označavanje fenomena kada LLM-ovi ponekad generiraju faktualno netočne informacije zbog ograničenja u njihovom treningu ili drugim čimbenicima. Možda ste ovaj fenomen čuli i pod nazivom _"halucinacije"_ u popularnim člancima ili znanstvenim radovima. Međutim, snažno preporučujemo korištenje termina _"izmišljotina"_ kako bismo izbjegli antropomorfiziranje ponašanja pripisujući mu ljudsku osobinu, a time i pojačali [smjernice za odgovornu AI](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) s terminološkog aspekta, uklanjajući izraze koji bi u nekim kontekstima mogli biti uvredljivi ili neinkluzivni. - -Želite li steći osjećaj kako izmišljotine funkcioniraju? Zamislite prompt koji AI-u nalaže da generira sadržaj za nepostojeću temu (kako biste bili sigurni da se ne nalazi u skupu podataka za trening). Na primjer – isprobao sam ovaj prompt: -# Plan lekcije: Marsovski rat 2076. - -## Ciljevi lekcije -- Razumjeti uzroke i posljedice Marsovskog rata 2076. -- Analizirati ključne događaje i sudionike sukoba. -- Razviti kritičko razmišljanje o posljedicama rata na međuzvjezdanu politiku. - -## Uvod (10 minuta) -- Kratki pregled povijesti ljudske kolonizacije Marsa. -- Postavljanje pitanja: Što je dovelo do sukoba 2076. godine? - -## Glavni dio (30 minuta) -### 1. Uzroci rata -- Resursni sukobi između Zemljinih kolonija i Marsovih naseljenika. -- Političke tenzije i neuspjeli pregovori. - -### 2. Ključni događaji -- Početak sukoba i prva bitka kod Valles Marineris. -- Uloga tehnologije i inovacija u ratovanju. -- Važne bitke i prekretnice tijekom rata. - -### 3. Sudionici -- Glavni vođe i njihove strategije. -- Uloga međunarodnih saveza i privatnih korporacija. - -## Zaključak (10 minuta) -- Posljedice rata za Mars i Zemlju. -- Utjecaj na buduće međuzvjezdane odnose. -- Diskusija: Mogu li se slični sukobi izbjeći u budućnosti? - -## Domaća zadaća -- Istražiti i napisati kratak esej o jednoj od ključnih bitaka Marsovskog rata 2076. -- Pripremiti prezentaciju o ulozi tehnologije u ovom sukobu. -Pretraživanje na webu pokazalo je da postoje izmišljeni prikazi (npr. televizijske serije ili knjige) o ratovima na Marsu – ali nijedan u 2076. Zdrav razum također nam govori da je 2076. _u budućnosti_ i stoga se ne može povezati s stvarnim događajem. - -Pa što se događa kada pokrenemo ovaj upit s različitim pružateljima LLM-a? - -> **Odgovor 1**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.hr.png) - -> **Odgovor 2**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.hr.png) - -> **Odgovor 3**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.hr.png) - -Kao što se i očekivalo, svaki model (ili verzija modela) daje malo drugačije odgovore zahvaljujući stohastičkom ponašanju i razlikama u sposobnostima modela. Na primjer, jedan model cilja na publiku osmog razreda, dok drugi pretpostavlja srednjoškolca. No sva tri modela su generirala odgovore koji bi mogli uvjeriti neupućenog korisnika da je događaj stvaran. - -Tehnike prompt inženjeringa poput _metapromptinga_ i _konfiguracije temperature_ mogu donekle smanjiti izmišljotine modela. Nove _arhitekture_ prompt inženjeringa također besprijekorno uključuju nove alate i tehnike u tijek prompta, kako bi ublažile ili smanjile neke od ovih efekata. - -## Studija slučaja: GitHub Copilot - -Završimo ovaj dio dobivanjem uvida u to kako se prompt inženjering koristi u stvarnim rješenjima kroz jednu studiju slučaja: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot je vaš "AI par programer" – pretvara tekstualne upite u dovršetke koda i integriran je u vaše razvojno okruženje (npr. Visual Studio Code) za besprijekorno korisničko iskustvo. Kako je dokumentirano u nizu blogova u nastavku, najranija verzija temeljila se na OpenAI Codex modelu – a inženjeri su brzo shvatili potrebu za dodatnim podešavanjem modela i razvojem boljih tehnika prompt inženjeringa kako bi poboljšali kvalitetu koda. U srpnju su [predstavili poboljšani AI model koji nadilazi Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) za još brže prijedloge. - -Pročitajte postove redom kako biste pratili njihov put učenja. - -- **Svibanj 2023** | [GitHub Copilot sve bolje razumije vaš kod](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **Svibanj 2023** | [Iznutra GitHub: Rad s LLM-ovima iza GitHub Copilota](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Lipanj 2023** | [Kako pisati bolje upite za GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Srpanj 2023** | [GitHub Copilot nadilazi Codex s poboljšanim AI modelom](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Srpanj 2023** | [Vodič za programere o prompt inženjeringu i LLM-ovima](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **Rujan 2023** | [Kako izgraditi enterprise LLM aplikaciju: Lekcije iz GitHub Copilota](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -Također možete pregledati njihov [inženjerski blog](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) za više postova poput [ovog](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) koji prikazuje kako se ovi modeli i tehnike _primjenjuju_ za pokretanje stvarnih aplikacija. - ---- - - - -## Konstrukcija prompta - -Vidjeli smo zašto je prompt inženjering važan – sada razumimo kako se promptovi _konstruiraju_ kako bismo mogli procijeniti različite tehnike za učinkovitiji dizajn prompta. - -### Osnovni prompt - -Počnimo s osnovnim promptom: tekstualnim unosom poslanim modelu bez dodatnog konteksta. Evo primjera – kada pošaljemo prve riječi američke nacionalne himne OpenAI [Completion API-ju](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst), on odmah _dovršava_ odgovor s nekoliko sljedećih redaka, ilustrirajući osnovno ponašanje predviđanja. - -| Prompt (Unos) | Dovršetak (Izlaz) | -| :------------------ | :---------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | Izgleda da započinjete stihove "The Star-Spangled Banner," nacionalne himne Sjedinjenih Država. Cijeli tekst glasi ... | - -### Složeni prompt - -Sada dodajmo kontekst i upute tom osnovnom promptu. [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) omogućuje nam konstrukciju složenog prompta kao zbirke _poruka_ s: - -- parovima unosa/izlaza koji odražavaju unos _korisnika_ i odgovor _asistenta_ -- sistemskom porukom koja postavlja kontekst za ponašanje ili osobnost asistenta - -Zahtjev je sada u obliku ispod, gdje _tokenizacija_ učinkovito hvata relevantne informacije iz konteksta i razgovora. Promjena sistemskog konteksta može biti jednako utjecajna na kvalitetu dovršetaka kao i uneseni korisnički podaci. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Instrukcijski prompt - -U gore navedenim primjerima, korisnički prompt bio je jednostavan tekstualni upit koji se može protumačiti kao zahtjev za informacijama. S _instrukcijskim_ promptima možemo koristiti taj tekst za detaljnije specificiranje zadatka, pružajući bolju uputu AI-u. Evo primjera: - -| Prompt (Unos) | Dovršetak (Izlaz) | Vrsta instrukcije | -| :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------ | :----------------- | -| Napiši opis Građanskog rata | _vraća jednostavan odlomak_ | Jednostavno | -| Napiši opis Građanskog rata. Navedi ključne datume i događaje te opiši njihov značaj | _vraća odlomak praćen popisom ključnih datuma događaja s opisima_ | Složeno | -| Napiši opis Građanskog rata u jednom odlomku. Navedi 3 točke s ključnim datumima i njihovim značenjem. Navedi još 3 točke s važnim povijesnim osobama i njihovim doprinosima. Vrati rezultat u JSON formatu | _vraća detaljnije informacije u tekstualnom okviru, formatirane kao JSON koje možete kopirati i po potrebi validirati_ | Složeno. Formatirano| - -## Primarni sadržaj - -U gore navedenim primjerima, prompt je još uvijek bio prilično otvoren, dopuštajući LLM-u da odluči koji dio svog prethodno naučenog skupa podataka je relevantan. S dizajnerskim obrascem _primarni sadržaj_, ulazni tekst dijeli se na dva dijela: - -- instrukcija (akcija) -- relevantni sadržaj (koji utječe na akciju) - -Evo primjera gdje je instrukcija "sažmi ovo u 2 rečenice". - -| Prompt (Unos) | Dovršetak (Izlaz) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter je peta planeta od Sunca i najveća u Sunčevom sustavu. To je plinski div s masom tisućinku mase Sunca, ali dva i pol puta većom od mase svih ostalih planeta u Sunčevom sustavu zajedno. Jupiter je jedan od najsjajnijih objekata vidljivih golim okom na noćnom nebu i poznat je drevnim civilizacijama još prije zapisane povijesti. Ime je dobio po rimskom bogu Jupiteru.[19] Kada se promatra sa Zemlje, Jupiter može biti dovoljno sjajan da njegova reflektirana svjetlost baca vidljive sjene,[20] i u prosjeku je treći najsjajniji prirodni objekt na noćnom nebu nakon Mjeseca i Venere.
**Sažmi ovo u 2 kratke rečenice** | Jupiter, peta planeta od Sunca, najveća je u Sunčevom sustavu i poznat je kao jedan od najsjajnijih objekata na noćnom nebu. Ime je dobio po rimskom bogu Jupiteru, a to je plinski div čija je masa dva i pol puta veća od mase svih ostalih planeta u Sunčevom sustavu zajedno. | - -Segment primarnog sadržaja može se koristiti na različite načine za učinkovitije upute: - -- **Primjeri** – umjesto da modelu izričito kažemo što da radi, dajemo mu primjere što treba napraviti i pustimo ga da zaključi obrazac. -- **Nagovještaji** – slijedi instrukciju s "nagovještajem" koji priprema dovršetak, usmjeravajući model prema relevantnijim odgovorima. -- **Predlošci** – to su ponovljivi 'recepti' za promptove s rezerviranim mjestima (varijablama) koje se mogu prilagoditi podacima za specifične slučajeve. - -Pogledajmo kako to izgleda u praksi. - -### Korištenje primjera - -Ovo je pristup gdje koristite primarni sadržaj da "hranite model" s nekoliko primjera željenog izlaza za određenu instrukciju i pustite ga da zaključi obrazac željenog izlaza. Na temelju broja danih primjera, možemo imati zero-shot prompting, one-shot prompting, few-shot prompting itd. - -Prompt sada sadrži tri komponente: - -- opis zadatka -- nekoliko primjera željenog izlaza -- početak novog primjera (koji postaje implicitni opis zadatka) - -| Tip učenja | Prompt (Unos) | Dovršetak (Izlaz) | -| :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------- | -| Zero-shot | "The Sun is Shining". Prevedi na španjolski | "El Sol está brillando". | -| One-shot | "The Sun is Shining" => "El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso".| -| Few-shot | Igrač je trčao po bazama => Baseball
Igrač je osvojio as => Tenis
Igrač je postigao šesticu => Kriket
Igrač je napravio slam-dunk => | Košarka | -| | | | - -Primijetite kako smo u zero-shot prompting morali dati izričitu uputu ("Prevedi na španjolski"), dok se u one-shot primjeru to zaključuje. Few-shot primjer pokazuje kako dodavanje više primjera omogućuje modelima preciznije zaključke bez dodatnih uputa. - -### Nagovještaji prompta - -Druga tehnika korištenja primarnog sadržaja je pružanje _nagovještaja_ umjesto primjera. U ovom slučaju, dajemo modelu poticaj u pravom smjeru tako što _započinjemo_ s isječkom koji odražava željeni format odgovora. Model tada "uzima nagovještaj" i nastavlja u tom stilu. - -| Broj nagovještaja | Prompt (Unos) | Dovršetak (Izlaz) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Jupiter je peta planeta od Sunca i najveća u Sunčevom sustavu. To je plinski div s masom tisućinku mase Sunca, ali dva i pol puta većom od mase svih ostalih planeta u Sunčevom sustavu zajedno. Jupiter je jedan od najsjajnijih objekata vidljivih golim okom na noćnom nebu, i poznat je drevnim civilizacijama još prije zapisane povijesti. - -**Summarize This** | Jupiter je najveći planet u našem Sunčevom sustavu i peti po redu od Sunca. To je plinski div s masom koja je 1/1000 mase Sunca, ali je teži od svih ostalih planeta zajedno. Drevne civilizacije su dugo poznavale Jupiter, a lako je vidljiv na noćnom nebu. | -| 1 | Jupiter je peti planet od Sunca i najveći u Sunčevom sustavu. To je plinski div s masom koja je tisućinka mase Sunca, ali dva i pol puta veća od mase svih ostalih planeta u Sunčevom sustavu zajedno. Jupiter je jedan od najsjajnijih objekata vidljivih golim okom na noćnom nebu i poznat je drevnim civilizacijama još prije zapisane povijesti.
**Summarize This**
Ono što smo naučili jest da je Jupiter | peti planet od Sunca i najveći u Sunčevom sustavu. To je plinski div s masom koja je tisućinka mase Sunca, ali dva i pol puta veća od mase svih ostalih planeta zajedno. Lako je vidljiv golim okom i poznat je od davnina. | -| 2 | Jupiter je peti planet od Sunca i najveći u Sunčevom sustavu. To je plinski div s masom koja je tisućinka mase Sunca, ali dva i pol puta veća od mase svih ostalih planeta u Sunčevom sustavu zajedno. Jupiter je jedan od najsjajnijih objekata vidljivih golim okom na noćnom nebu i poznat je drevnim civilizacijama još prije zapisane povijesti.
**Summarize This**
Tri najvažnije činjenice koje smo naučili: | 1. Jupiter je peti planet od Sunca i najveći u Sunčevom sustavu.
2. To je plinski div s masom koja je tisućinka mase Sunca...
3. Jupiter je vidljiv golim okom još od davnina ... | -| | | | - -### Predlošci za promptove - -Predložak prompta je _unaprijed definirani recept za prompt_ koji se može spremiti i ponovno koristiti prema potrebi, kako bi se osigurala dosljednija korisnička iskustva u većem opsegu. U svojoj najjednostavnijoj formi, to je zbirka primjera promptova poput [ovog od OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) koji sadrži i interaktivne komponente prompta (poruke korisnika i sustava) i format zahtjeva vođenog API-jem – za podršku ponovnoj upotrebi. - -U složenijem obliku, poput [primjera iz LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst), sadrži _mjesta za zamjenu_ koja se mogu popuniti podacima iz različitih izvora (korisnički unos, kontekst sustava, vanjski izvori podataka itd.) kako bi se prompt dinamički generirao. To nam omogućuje stvaranje biblioteke ponovljivih promptova koji se mogu koristiti za programsku dosljednost korisničkih iskustava u velikom opsegu. - -Prava vrijednost predložaka leži u mogućnosti stvaranja i objavljivanja _biblioteka promptova_ za vertikalne aplikacijske domene – gdje je predložak prompta sada _optimiziran_ da odražava kontekst ili primjere specifične za aplikaciju, čineći odgovore relevantnijima i preciznijima za ciljanu korisničku publiku. Spremište [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) izvrstan je primjer ovog pristupa, sakupljajući biblioteku promptova za obrazovni sektor s naglaskom na ključne ciljeve poput planiranja lekcija, dizajna kurikuluma, poduke učenika itd. - -## Pomoćni sadržaj - -Ako promatramo konstrukciju prompta kao kombinaciju uputa (zadatka) i cilja (primarnog sadržaja), tada je _sekundarni sadržaj_ dodatni kontekst koji pružamo da **na neki način utječemo na rezultat**. To mogu biti parametri podešavanja, upute za formatiranje, taksonomije tema itd. koje pomažu modelu da _prilagodi_ svoj odgovor kako bi odgovarao željenim korisničkim ciljevima ili očekivanjima. - -Na primjer: Imamo katalog tečajeva s opsežnim metapodacima (naziv, opis, razina, oznake metapodataka, instruktor itd.) za sve dostupne tečajeve u kurikulumu: - -- možemo definirati uputu da "sažmemo katalog tečajeva za jesen 2023." -- možemo koristiti primarni sadržaj da pružimo nekoliko primjera željenog izlaza -- možemo koristiti sekundarni sadržaj da identificiramo top 5 "oznake" od interesa. - -Sada model može dati sažetak u formatu prikazanom u nekoliko primjera – ali ako rezultat ima više oznaka, može dati prioritet 5 oznaka identificiranih u sekundarnom sadržaju. - ---- - - - -## Najbolje prakse za promptove - -Sada kada znamo kako se promptovi mogu _konstruirati_, možemo početi razmišljati o tome kako ih _dizajnirati_ da odražavaju najbolje prakse. To možemo promatrati u dva dijela – imati pravi _stav_ i primijeniti prave _tehnike_. - -### Stav u prompt inženjeringu - -Prompt inženjering je proces pokušaja i pogreške, stoga imajte na umu tri široka smjernice: - -1. **Razumijevanje domene je važno.** Točnost i relevantnost odgovora ovisi o _domeni_ u kojoj aplikacija ili korisnik djeluje. Primijenite svoju intuiciju i stručnost u domeni da dodatno **prilagodite tehnike**. Na primjer, definirajte _osobnosti specifične za domenu_ u promptovima sustava ili koristite _predloške specifične za domenu_ u korisničkim promptovima. Pružite sekundarni sadržaj koji odražava kontekst specifičan za domenu ili koristite _znakove i primjere specifične za domenu_ da usmjerite model prema poznatim obrascima korištenja. - -2. **Razumijevanje modela je važno.** Znamo da su modeli po prirodi stohastični. No implementacije modela mogu se razlikovati u pogledu skupa podataka za treniranje (predznanje), mogućnosti koje pružaju (npr. putem API-ja ili SDK-a) i vrste sadržaja za koji su optimizirani (npr. kod, slike, tekst). Razumite snage i ograničenja modela koji koristite i iskoristite to znanje da _prioritizirate zadatke_ ili izgradite _prilagođene predloške_ optimizirane za mogućnosti modela. - -3. **Iteracija i validacija su važni.** Modeli se brzo razvijaju, kao i tehnike prompt inženjeringa. Kao stručnjak za domenu, možda imate dodatni kontekst ili kriterije za _vašu_ specifičnu aplikaciju, koji se ne primjenjuju na širu zajednicu. Koristite alate i tehnike prompt inženjeringa za "brzi početak" konstrukcije prompta, zatim iterirajte i validirajte rezultate koristeći vlastitu intuiciju i stručnost. Zabilježite svoja saznanja i stvorite **bazu znanja** (npr. biblioteke promptova) koja drugi mogu koristiti kao novu polaznu točku za brže iteracije u budućnosti. - -## Najbolje prakse - -Pogledajmo sada uobičajene najbolje prakse koje preporučuju [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) i [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst) stručnjaci. - -| Što | Zašto | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Procijenite najnovije modele. | Nove generacije modela vjerojatno imaju poboljšane značajke i kvalitetu – ali mogu imati i veće troškove. Procijenite njihov utjecaj, pa donesite odluke o migraciji. | -| Razdvojite upute i kontekst | Provjerite definira li vaš model/ponuditelj _razdjelnike_ za jasnije razlikovanje uputa, primarnog i sekundarnog sadržaja. To može pomoći modelima da preciznije dodijele težine tokenima. | -| Budite specifični i jasni | Dajte više detalja o željenom kontekstu, ishodu, duljini, formatu, stilu itd. To će poboljšati i kvalitetu i dosljednost odgovora. Zabilježite recepte u ponovljivoj formi predložaka. | -| Budite opisni, koristite primjere | Modeli bolje reagiraju na pristup "pokaži i reci". Počnite s `zero-shot` pristupom gdje dajete samo uputu (bez primjera), zatim pokušajte `few-shot` kao doradu, dajući nekoliko primjera željenog izlaza. Koristite analogije. | -| Koristite znakove za poticanje dovršetaka | Usmjerite model prema željenom rezultatu dajući mu početne riječi ili fraze koje može koristiti kao polaznu točku za odgovor. | -| Ponavljajte po potrebi | Ponekad je potrebno ponoviti upute modelu. Dajte upute prije i poslije primarnog sadržaja, koristite uputu i znak, itd. Iterirajte i validirajte da vidite što najbolje funkcionira. | -| Redoslijed je važan | Redoslijed u kojem predstavljate informacije modelu može utjecati na rezultat, čak i u primjerima za učenje, zbog pristranosti prema novijem sadržaju. Isprobajte različite opcije da vidite što najbolje radi. | -| Dajte modelu "izlaz" | Dajte modelu _rezervni_ odgovor koji može dati ako iz bilo kojeg razloga ne može dovršiti zadatak. To može smanjiti šanse da model generira netočne ili izmišljene odgovore. | -| | | - -Kao i kod svake najbolje prakse, imajte na umu da _rezultati mogu varirati_ ovisno o modelu, zadatku i domeni. Koristite ih kao polaznu točku i iterirajte dok ne pronađete što vam najbolje odgovara. Stalno preispitujte svoj proces prompt inženjeringa kako novi modeli i alati postaju dostupni, s fokusom na skalabilnost procesa i kvalitetu odgovora. - - - -## Zadatak - -Čestitamo! Stigli ste do kraja lekcije! Vrijeme je da neke od tih koncepata i tehnika isprobate na stvarnim primjerima! - -Za naš zadatak koristit ćemo Jupyter Notebook s vježbama koje možete rješavati interaktivno. Također možete proširiti Notebook vlastitim Markdown i Code ćelijama kako biste samostalno istraživali ideje i tehnike. - -### Za početak, forkajte repozitorij, zatim - -- (Preporučeno) Pokrenite GitHub Codespaces -- (Alternativno) Klonirajte repozitorij na lokalni uređaj i koristite ga s Docker Desktopom -- (Alternativno) Otvorite Notebook u željenom okruženju za rad s Notebookom. - -### Zatim konfigurirajte varijable okoline - -- Kopirajte datoteku `.env.copy` iz korijena repozitorija u `.env` i ispunite vrijednosti `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` i `AZURE_OPENAI_DEPLOYMENT`. Vratite se na [Learning Sandbox odjeljak](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) za upute. - -### Zatim otvorite Jupyter Notebook - -- Odaberite runtime kernel. Ako koristite opcije 1 ili 2, jednostavno odaberite zadani Python 3.10.x kernel koji pruža razvojno okruženje. - -Spremni ste za izvođenje vježbi. Imajte na umu da ovdje nema _točnih i netočnih_ odgovora – samo istraživanje opcija metodom pokušaja i pogreške i razvijanje intuicije što najbolje funkcionira za određeni model i domenu primjene. - -_Za ovaj razlog nema segmenata s rješenjima koda u ovoj lekciji. Umjesto toga, Notebook će imati Markdown ćelije pod nazivom "My Solution:" koje prikazuju jedan primjer izlaza za referencu._ - - - -## Provjera znanja - -Koji od sljedećih promptova je dobar i slijedi razumne najbolje prakse? - -1. Prikaži mi sliku crvenog automobila -2. Prikaži mi sliku crvenog automobila marke Volvo i modela XC90 parkiranog kraj litice s zalaskom sunca -3. Prikaži mi sliku crvenog automobila marke Volvo i modela XC90 - -Odgovor: 2, jer je to najbolji prompt koji daje detalje o "što" i ulazi u specifičnosti (ne bilo koji auto, nego određena marka i model) te opisuje i cjelokupni ambijent. 3 je sljedeći najbolji jer također sadrži mnogo opisa. - -## 🚀 Izazov - -Pokušajte iskoristiti tehniku "znaka" s promptom: Dovrši rečenicu "Prikaži mi sliku crvenog automobila marke Volvo i ". Kako model odgovara i kako biste to poboljšali? - -## Odličan posao! Nastavite s učenjem - -Želite li saznati više o različitim konceptima prompt inženjeringa? Posjetite [stranicu za daljnje učenje](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) gdje ćete pronaći druge izvrsne resurse na ovu temu. - -Krenite na Lekciju 5 gdje ćemo pogledati [napredne tehnike promptiranja](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**Odricanje od odgovornosti**: -Ovaj dokument je preveden korištenjem AI usluge za prevođenje [Co-op Translator](https://github.com/Azure/co-op-translator). Iako nastojimo postići točnost, imajte na umu da automatski prijevodi mogu sadržavati pogreške ili netočnosti. Izvorni dokument na izvornom jeziku treba smatrati autoritativnim izvorom. Za kritične informacije preporučuje se profesionalni ljudski prijevod. Ne snosimo odgovornost za bilo kakve nesporazume ili pogrešna tumačenja koja proizlaze iz korištenja ovog prijevoda. \ No newline at end of file + + + + + + + diff --git a/translations/hr/09-building-image-applications/README.md b/translations/hr/09-building-image-applications/README.md index 6bd80e3e3..584b06df4 100644 --- a/translations/hr/09-building-image-applications/README.md +++ b/translations/hr/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# Izrada aplikacija za generiranje slika - -[![Izrada aplikacija za generiranje slika](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.hr.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLM modeli nisu samo za generiranje teksta. Također je moguće generirati slike na temelju tekstualnih opisa. Korištenje slika kao modaliteta može biti izuzetno korisno u mnogim područjima poput MedTecha, arhitekture, turizma, razvoja igara i drugih. U ovom poglavlju upoznat ćemo se s dva najpopularnija modela za generiranje slika, DALL-E i Midjourney. - -## Uvod - -U ovoj lekciji obradit ćemo: - -- Generiranje slika i zašto je korisno. -- DALL-E i Midjourney, što su i kako funkcioniraju. -- Kako izraditi aplikaciju za generiranje slika. - -## Ciljevi učenja - -Nakon završetka ove lekcije moći ćete: - -- Izraditi aplikaciju za generiranje slika. -- Definirati granice svoje aplikacije pomoću meta promptova. -- Raditi s DALL-E i Midjourney. - -## Zašto izraditi aplikaciju za generiranje slika? - -Aplikacije za generiranje slika odličan su način za istraživanje mogućnosti Generativne AI. Mogu se koristiti, na primjer, za: - -- **Uređivanje i sintezu slika**. Možete generirati slike za različite primjene, poput uređivanja i sinteze slika. - -- **Primjenu u raznim industrijama**. Također se mogu koristiti za generiranje slika u industrijama poput Medtecha, turizma, razvoja igara i drugih. - -## Scenarij: Edu4All - -Kao dio ove lekcije nastavljamo raditi sa startupom Edu4All. Studenti će stvarati slike za svoje zadatke, a što će točno biti na slikama ovisi o njima – mogu to biti ilustracije za vlastitu bajku, novi lik za priču ili pomoć u vizualizaciji njihovih ideja i koncepata. - -Evo što bi studenti Edu4All-a mogli generirati, primjerice ako rade u razredu na spomenicima: - -![Edu4All startup, razred o spomenicima, Eiffelov toranj](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.hr.png) - -koristeći prompt poput - -> "Pas pored Eiffelovog tornja u ranom jutarnjem svjetlu" - -## Što su DALL-E i Midjourney? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) i [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) su dva najpopularnija modela za generiranje slika, koji vam omogućuju da pomoću promptova generirate slike. - -### DALL-E - -Počnimo s DALL-E, Generativnim AI modelom koji generira slike na temelju tekstualnih opisa. - -> [DALL-E je kombinacija dva modela, CLIP i diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP** je model koji generira embeddings, numeričke prikaze podataka, iz slika i teksta. - -- **Diffused attention** je model koji generira slike iz embeddingsa. DALL-E je treniran na skupu podataka slika i teksta te se može koristiti za generiranje slika na temelju tekstualnih opisa. Na primjer, DALL-E može generirati slike mačke s kapom ili psa s mohawkom. - -### Midjourney - -Midjourney radi na sličan način kao DALL-E, generira slike na temelju tekstualnih promptova. Midjourney također može generirati slike koristeći promptove poput “mačka s kapom” ili “pas s mohawkom”. - -![Slika generirana pomoću Midjourney, mehanički golub](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Slika: Wikipedia, generirano pomoću Midjourney_ - -## Kako DALL-E i Midjourney funkcioniraju - -Prvo, [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). DALL-E je Generativni AI model baziran na transformer arhitekturi s _autoregresivnim transformerom_. - -Autoregresivni transformer definira kako model generira slike iz tekstualnih opisa – generira jedan piksel po piksel, a zatim koristi već generirane piksele za generiranje sljedećeg. Prolazi kroz više slojeva u neuronskoj mreži dok slika nije kompletna. - -Ovim procesom DALL-E kontrolira atribute, objekte, karakteristike i druge detalje u generiranoj slici. Međutim, DALL-E 2 i 3 imaju veću kontrolu nad generiranom slikom. - -## Izrada prve aplikacije za generiranje slika - -Što je potrebno za izradu aplikacije za generiranje slika? Trebat će vam sljedeće biblioteke: - -- **python-dotenv**, preporučuje se za pohranu tajni u _.env_ datoteku, odvojeno od koda. -- **openai**, biblioteka za interakciju s OpenAI API-jem. -- **pillow**, za rad sa slikama u Pythonu. -- **requests**, za slanje HTTP zahtjeva. - -1. Kreirajte datoteku _.env_ sa sljedećim sadržajem: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Ove podatke pronađite u Azure Portalu za svoj resurs u odjeljku "Keys and Endpoint". - -1. Nabrojite potrebne biblioteke u datoteci _requirements.txt_ ovako: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. Zatim kreirajte virtualno okruženje i instalirajte biblioteke: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Za Windows koristite sljedeće naredbe za kreiranje i aktivaciju virtualnog okruženja: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. Dodajte sljedeći kod u datoteku nazvanu _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Objasnimo ovaj kod: - -- Prvo uvozimo potrebne biblioteke, uključujući OpenAI, dotenv, requests i Pillow. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Zatim učitavamo varijable okoline iz _.env_ datoteke. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- Nakon toga postavljamo endpoint, ključ za OpenAI API, verziju i tip. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- Sljedeće, generiramo sliku: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - Gornji kod vraća JSON objekt koji sadrži URL generirane slike. Taj URL možemo koristiti za preuzimanje slike i spremanje u datoteku. - -- Na kraju, otvaramo sliku i prikazujemo je u standardnom pregledniku slika: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Detaljnije o generiranju slike - -Pogledajmo detaljnije kod koji generira sliku: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** je tekstualni prompt koji se koristi za generiranje slike. U ovom slučaju koristimo prompt "Zec na konju, drži lizalicu, na maglovitoj livadi gdje rastu narcisi". -- **size** je veličina generirane slike. Ovdje generiramo sliku dimenzija 1024x1024 piksela. -- **n** je broj generiranih slika. Ovdje generiramo dvije slike. -- **temperature** je parametar koji kontrolira nasumičnost izlaza Generativnog AI modela. Vrijednost je između 0 i 1, gdje 0 znači deterministički izlaz, a 1 nasumični. Zadana vrijednost je 0.7. - -Postoje i druge mogućnosti rada sa slikama koje ćemo obraditi u sljedećem dijelu. - -## Dodatne mogućnosti generiranja slika - -Do sada ste vidjeli kako generirati sliku s nekoliko redaka Pythona. No, postoji još toga što možete raditi sa slikama. - -Također možete: - -- **Izvršavati izmjene**. Pružajući postojeću sliku, masku i prompt, možete mijenjati sliku. Na primjer, možete dodati nešto na dio slike. Zamislite našu sliku sa zecom – možete mu dodati šešir. To se radi tako da se dostavi slika, maska (koja označava dio slike za promjenu) i tekstualni prompt koji opisuje što treba napraviti. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - Osnovna slika sadrži samo zeca, a konačna slika će imati šešir na zecu. - -- **Kreirati varijacije**. Ideja je da uzmete postojeću sliku i zatražite da se naprave varijacije. Za to se dostavlja slika i tekstualni prompt, te se koristi kod poput ovog: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Napomena, ovo je podržano samo na OpenAI platformi - -## Temperature - -Temperature je parametar koji kontrolira nasumičnost izlaza Generativnog AI modela. Vrijednost je između 0 i 1, gdje 0 znači deterministički izlaz, a 1 nasumični. Zadana vrijednost je 0.7. - -Pogledajmo primjer kako temperature funkcionira, pokretanjem ovog prompta dva puta: - -> Prompt: "Zec na konju, drži lizalicu, na maglovitoj livadi gdje rastu narcisi" - -![Zec na konju drži lizalicu, verzija 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.hr.png) - -Sada pokrenimo isti prompt još jednom da vidimo da nećemo dobiti istu sliku dva puta: - -![Generirana slika zeca na konju](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.hr.png) - -Kao što vidite, slike su slične, ali nisu iste. Pokušajmo promijeniti vrijednost temperature na 0.1 i vidjeti što će se dogoditi: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Promjena temperature - -Pokušajmo sada učiniti odgovor determinističnijim. Primijetili smo da na prvoj slici imamo zeca, a na drugoj konja, pa se slike znatno razlikuju. - -Stoga ćemo promijeniti kod i postaviti temperature na 0, ovako: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Kad pokrenete ovaj kod, dobit ćete ove dvije slike: - -- ![Temperature 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.hr.png) -- ![Temperature 0, v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.hr.png) - -Ovdje jasno vidite da se slike međusobno više podudaraju. - -## Kako definirati granice za svoju aplikaciju pomoću metapromptova - -U našem demo primjeru već možemo generirati slike za naše korisnike. Međutim, potrebno je postaviti neke granice za aplikaciju. - -Na primjer, ne želimo generirati slike koje nisu prikladne za radno okruženje ili nisu primjerene za djecu. - -To možemo postići pomoću _metapromptova_. Metapromptovi su tekstualni promptovi koji se koriste za kontrolu izlaza Generativnog AI modela. Na primjer, možemo koristiti metapromptove da osiguramo da generirane slike budu sigurne za rad i prikladne za djecu. - -### Kako to funkcionira? - -Kako metapromptovi rade? - -Metapromptovi su tekstualni promptovi koji se koriste za kontrolu izlaza Generativnog AI modela, postavljaju se prije glavnog prompta i ugrađuju u aplikacije kako bi kontrolirali izlaz modela. Time se ulazni prompt i metaprompt kombiniraju u jedan tekstualni prompt. - -Primjer metaprompta bio bi sljedeći: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Sada pogledajmo kako možemo koristiti metapromptove u našem demo primjeru. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -Iz gornjeg prompta vidite kako sve generirane slike uzimaju u obzir metaprompt. - -## Zadatak - omogućimo studentima - -Na početku lekcije predstavili smo Edu4All. Sada je vrijeme da omogućimo studentima generiranje slika za njihove zadatke. - -Studenti će stvarati slike za svoje zadatke koje sadrže spomenike, a točno koji spomenici su na njima ovisi o studentima. Traži se da koriste svoju kreativnost i smjeste spomenike u različite kontekste. - -## Rješenje - -Evo jednog mogućeg rješenja: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Odličan posao! Nastavite s učenjem - -Nakon završetka ove lekcije, pogledajte našu [kolekciju za učenje Generativne AI](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) i nastavite usavršavati svoje znanje o Generativnoj AI! - -Krenite na Lekciju 10 gdje ćemo pogledati kako [izraditi AI aplikacije s low-code pristupom](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**Odricanje od odgovornosti**: -Ovaj dokument je preveden korištenjem AI usluge za prevođenje [Co-op Translator](https://github.com/Azure/co-op-translator). Iako težimo točnosti, imajte na umu da automatski prijevodi mogu sadržavati pogreške ili netočnosti. Izvorni dokument na izvornom jeziku treba smatrati autoritativnim izvorom. Za kritične informacije preporučuje se profesionalni ljudski prijevod. Ne snosimo odgovornost za bilo kakva nesporazuma ili pogrešna tumačenja koja proizlaze iz korištenja ovog prijevoda. \ No newline at end of file + + + + diff --git a/translations/hr/12-designing-ux-for-ai-applications/README.md b/translations/hr/12-designing-ux-for-ai-applications/README.md index f37d18cc4..7aa588217 100644 --- a/translations/hr/12-designing-ux-for-ai-applications/README.md +++ b/translations/hr/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# Dizajniranje UX-a za AI aplikacije - -[![Dizajniranje UX-a za AI aplikacije](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.hr.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Kliknite na gornju sliku za pregled videa ove lekcije)_ - -Korisničko iskustvo je vrlo važan aspekt izrade aplikacija. Korisnici trebaju moći koristiti vašu aplikaciju na učinkovit način za obavljanje zadataka. Biti učinkovit je jedno, ali također trebate dizajnirati aplikacije tako da ih mogu koristiti svi, kako bi bile _pristupačne_. Ovaj će se odlomak usredotočiti na to područje kako biste na kraju dizajnirali aplikaciju koju ljudi mogu i žele koristiti. - -## Uvod - -Korisničko iskustvo je način na koji korisnik komunicira i koristi određeni proizvod ili uslugu, bilo da je riječ o sustavu, alatu ili dizajnu. Prilikom razvoja AI aplikacija, programeri se ne fokusiraju samo na to da korisničko iskustvo bude učinkovito, već i etično. U ovoj lekciji obrađujemo kako izgraditi aplikacije umjetne inteligencije (AI) koje zadovoljavaju potrebe korisnika. - -Lekcija će obuhvatiti sljedeća područja: - -- Uvod u korisničko iskustvo i razumijevanje potreba korisnika -- Dizajniranje AI aplikacija za povjerenje i transparentnost -- Dizajniranje AI aplikacija za suradnju i povratne informacije - -## Ciljevi učenja - -Nakon ove lekcije moći ćete: - -- Razumjeti kako izgraditi AI aplikacije koje zadovoljavaju potrebe korisnika. -- Dizajnirati AI aplikacije koje potiču povjerenje i suradnju. - -### Preduvjet - -Odvojite malo vremena i pročitajte više o [korisničkom iskustvu i dizajnerskom razmišljanju.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Uvod u korisničko iskustvo i razumijevanje potreba korisnika - -U našem zamišljenom startupu za obrazovanje imamo dva glavna korisnika, nastavnike i učenike. Svaki od njih ima jedinstvene potrebe. Dizajn usmjeren na korisnika stavlja korisnika u prvi plan, osiguravajući da su proizvodi relevantni i korisni za one za koje su namijenjeni. - -Aplikacija bi trebala biti **korisna, pouzdana, pristupačna i ugodna** kako bi pružila dobro korisničko iskustvo. - -### Upotrebljivost - -Biti koristan znači da aplikacija ima funkcionalnost koja odgovara njenoj namjeni, poput automatizacije procesa ocjenjivanja ili generiranja kartica za ponavljanje gradiva. Aplikacija koja automatizira ocjenjivanje trebala bi moći točno i učinkovito dodijeliti ocjene na temelju unaprijed definiranih kriterija. Slično tome, aplikacija koja generira kartice za ponavljanje trebala bi moći kreirati relevantna i raznolika pitanja na temelju svojih podataka. - -### Pouzdanost - -Biti pouzdan znači da aplikacija može dosljedno i bez pogrešaka obavljati svoj zadatak. Međutim, AI, baš kao i ljudi, nije savršen i može griješiti. Aplikacije mogu naići na pogreške ili neočekivane situacije koje zahtijevaju ljudsku intervenciju ili ispravak. Kako se nositi s pogreškama? U posljednjem dijelu ove lekcije obradit ćemo kako su AI sustavi i aplikacije dizajnirani za suradnju i povratne informacije. - -### Pristupačnost - -Biti pristupačan znači proširiti korisničko iskustvo na korisnike s različitim sposobnostima, uključujući osobe s invaliditetom, osiguravajući da nitko nije isključen. Slijedeći smjernice i principe pristupačnosti, AI rješenja postaju inkluzivnija, upotrebljivija i korisnija za sve korisnike. - -### Ugodnost - -Biti ugodan znači da je aplikacija ugodna za korištenje. Privlačno korisničko iskustvo može pozitivno utjecati na korisnika, potičući ga da se vraća aplikaciji i povećavajući prihode poslovanja. - -![slika koja ilustrira UX razmatranja u AI](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.hr.png) - -Ne može se svaki izazov riješiti AI-jem. AI dolazi kao dodatak vašem korisničkom iskustvu, bilo da automatizira ručne zadatke ili personalizira korisničko iskustvo. - -## Dizajniranje AI aplikacija za povjerenje i transparentnost - -Izgradnja povjerenja ključna je pri dizajniranju AI aplikacija. Povjerenje osigurava da korisnik vjeruje da će aplikacija obaviti posao, dosljedno isporučiti rezultate i da su ti rezultati ono što korisnik treba. Rizik u ovom području su nepovjerenje i pretjerano povjerenje. Nepovjerenje nastaje kada korisnik ima malo ili nimalo povjerenja u AI sustav, što dovodi do odbacivanja vaše aplikacije. Pretjerano povjerenje događa se kada korisnik precjenjuje sposobnosti AI sustava, što može dovesti do prevelikog povjerenja u AI. Na primjer, automatizirani sustav ocjenjivanja u slučaju pretjeranog povjerenja može dovesti do toga da nastavnik ne provjerava neke radove kako bi osigurao da sustav radi ispravno. To može rezultirati nepravednim ili netočnim ocjenama za učenike ili propuštenim prilikama za povratne informacije i poboljšanja. - -Dva načina da se povjerenje postavi u središte dizajna su objašnjivost i kontrola. - -### Objašnjivost - -Kada AI pomaže u donošenju odluka, poput prenošenja znanja budućim generacijama, ključno je da nastavnici i roditelji razumiju kako se AI odluke donose. To je objašnjivost – razumijevanje kako AI aplikacije donose odluke. Dizajniranje za objašnjivost uključuje dodavanje primjera što AI aplikacija može učiniti. Na primjer, umjesto "Započni s AI nastavnikom", sustav može koristiti: "Sažmi svoje bilješke za lakše ponavljanje pomoću AI-ja." - -![početna stranica aplikacije s jasnom ilustracijom objašnjivosti u AI aplikacijama](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.hr.png) - -Još jedan primjer je kako AI koristi korisničke i osobne podatke. Na primjer, korisnik s ulogom učenika može imati ograničenja temeljena na svojoj ulozi. AI možda neće moći otkriti odgovore na pitanja, ali može pomoći korisniku da razmisli o tome kako riješiti problem. - -![AI odgovara na pitanja na temelju uloge](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.hr.png) - -Zadnji ključni dio objašnjivosti je pojednostavljenje objašnjenja. Učenici i nastavnici možda nisu stručnjaci za AI, stoga objašnjenja o tome što aplikacija može ili ne može učiniti trebaju biti jednostavna i lako razumljiva. - -![pojednostavljena objašnjenja o mogućnostima AI](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.hr.png) - -### Kontrola - -Generativni AI stvara suradnju između AI-ja i korisnika, gdje korisnik može mijenjati upite za različite rezultate. Osim toga, nakon što se generira rezultat, korisnici bi trebali moći mijenjati rezultate, što im daje osjećaj kontrole. Na primjer, koristeći Bing, možete prilagoditi upit prema formatu, tonu i duljini. Također, možete dodavati izmjene i mijenjati rezultat kao što je prikazano u nastavku: - -![Bing rezultati pretraživanja s opcijama za izmjenu upita i rezultata](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.hr.png) - -Još jedna značajka u Bingu koja korisniku daje kontrolu nad aplikacijom je mogućnost uključivanja i isključivanja podataka koje AI koristi. Za školsku aplikaciju, učenik bi možda želio koristiti svoje bilješke kao i nastavničke resurse kao materijal za ponavljanje. - -![Bing rezultati pretraživanja s opcijama za izmjenu upita i rezultata](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.hr.png) - -> Prilikom dizajniranja AI aplikacija, namjernost je ključna kako bi se spriječilo pretjerano povjerenje i postavljanje nerealnih očekivanja o njihovim mogućnostima. Jedan od načina za to je stvaranje trenja između upita i rezultata. Podsjećajući korisnika da je ovo AI, a ne drugi čovjek. - -## Dizajniranje AI aplikacija za suradnju i povratne informacije - -Kao što je ranije spomenuto, generativni AI stvara suradnju između korisnika i AI-ja. Većina interakcija uključuje korisnika koji unosi upit, a AI generira rezultat. Što ako je rezultat netočan? Kako aplikacija rješava pogreške ako se pojave? Krivi li AI korisnika ili uzima vremena da objasni pogrešku? - -AI aplikacije trebaju biti dizajnirane za primanje i davanje povratnih informacija. To ne samo da pomaže AI sustavu da se poboljša, već i gradi povjerenje s korisnicima. U dizajn treba uključiti povratnu petlju, primjerice jednostavan palac gore ili dolje za ocjenu rezultata. - -Drugi način za rješavanje ovoga je jasno komunicirati mogućnosti i ograničenja sustava. Kada korisnik pogriješi tražeći nešto izvan AI mogućnosti, treba postojati način za rješavanje takvih situacija, kao što je prikazano u nastavku. - -![Davanje povratnih informacija i rješavanje pogrešaka](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.hr.png) - -Pogreške u sustavu su česte u aplikacijama gdje korisnik može trebati pomoć s informacijama izvan dometa AI-ja ili aplikacija može imati ograničenje koliko pitanja/predmeta korisnik može generirati sažetke. Na primjer, AI aplikacija trenirana na ograničenim predmetima poput Povijesti i Matematike možda neće moći odgovoriti na pitanja iz Geografije. Kako bi se to ublažilo, AI sustav može dati odgovor poput: "Oprostite, naš je proizvod treniran na podacima iz sljedećih predmeta..., ne mogu odgovoriti na postavljeno pitanje." - -AI aplikacije nisu savršene, stoga će praviti pogreške. Prilikom dizajniranja aplikacija trebate osigurati prostor za povratne informacije korisnika i rukovanje pogreškama na jednostavan i lako razumljiv način. - -## Zadatak - -Uzmite bilo koje AI aplikacije koje ste do sada izgradili i razmislite o implementaciji sljedećih koraka u svojoj aplikaciji: - -- **Ugodnost:** Razmislite kako možete učiniti svoju aplikaciju ugodnijom. Dodajete li objašnjenja svugdje? Potječete li korisnika na istraživanje? Kako formulirate poruke o pogreškama? - -- **Upotrebljivost:** Izgradnja web aplikacije. Provjerite je li vaša aplikacija navigabilna i mišem i tipkovnicom. - -- **Povjerenje i transparentnost:** Nemojte potpuno vjerovati AI-ju i njegovim rezultatima, razmislite kako biste uključili čovjeka u proces provjere rezultata. Također, razmotrite i implementirajte druge načine za postizanje povjerenja i transparentnosti. - -- **Kontrola:** Dajte korisniku kontrolu nad podacima koje pruža aplikaciji. Implementirajte način da korisnik može uključiti ili isključiti prikupljanje podataka u AI aplikaciji. - -## Nastavite s učenjem! - -Nakon što završite ovu lekciju, pogledajte našu [kolekciju za učenje o generativnom AI-ju](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) i nastavite podizati svoje znanje o generativnom AI-ju! - -Krenite na Lekciju 13, gdje ćemo pogledati kako [osigurati AI aplikacije](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**Odricanje od odgovornosti**: -Ovaj dokument je preveden korištenjem AI usluge za prevođenje [Co-op Translator](https://github.com/Azure/co-op-translator). Iako težimo točnosti, imajte na umu da automatski prijevodi mogu sadržavati pogreške ili netočnosti. Izvorni dokument na izvornom jeziku treba smatrati autoritativnim izvorom. Za kritične informacije preporučuje se profesionalni ljudski prijevod. Ne snosimo odgovornost za bilo kakva nesporazuma ili pogrešna tumačenja koja proizlaze iz korištenja ovog prijevoda. \ No newline at end of file + + + diff --git a/translations/hr/README.md b/translations/hr/README.md index 444fff7a8..a8ea13f06 100644 --- a/translations/hr/README.md +++ b/translations/hr/README.md @@ -1,137 +1,12 @@ - -![Generative AI za početnike](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.hr.png) - -### 21 lekcija koje pokrivaju sve što trebate znati za početak izrade Generative AI aplikacija - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Podrška za više jezika - -#### Podržano putem GitHub Action (Automatski i uvijek ažurirano) - -[Francuski](../fr/README.md) | [Španjolski](../es/README.md) | [Njemački](../de/README.md) | [Ruski](../ru/README.md) | [Arapski](../ar/README.md) | [Perzijski (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Kineski (pojednostavljeni)](../zh/README.md) | [Kineski (tradicionalni, Makao)](../mo/README.md) | [Kineski (tradicionalni, Hong Kong)](../hk/README.md) | [Kineski (tradicionalni, Tajvan)](../tw/README.md) | [Japanski](../ja/README.md) | [Korejski](../ko/README.md) | [Hindi](../hi/README.md) | [Bengalski](../bn/README.md) | [Marathi](../mr/README.md) | [Nepalski](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portugalski (Portugal)](../pt/README.md) | [Portugalski (Brazil)](../br/README.md) | [Talijanski](../it/README.md) | [Poljski](../pl/README.md) | [Turski](../tr/README.md) | [Grčki](../el/README.md) | [Tajlandski](../th/README.md) | [Švedski](../sv/README.md) | [Danski](../da/README.md) | [Norveški](../no/README.md) | [Finski](../fi/README.md) | [Nizozemski](../nl/README.md) | [Hebrejski](../he/README.md) | [Vijetnamski](../vi/README.md) | [Indonezijski](../id/README.md) | [Malajski](../ms/README.md) | [Tagalog (Filipinski)](../tl/README.md) | [Svahili](../sw/README.md) | [Mađarski](../hu/README.md) | [Češki](../cs/README.md) | [Slovački](../sk/README.md) | [Rumunjski](../ro/README.md) | [Bugarski](../bg/README.md) | [Srpski (ćirilica)](../sr/README.md) | [Hrvatski](./README.md) | [Slovenski](../sl/README.md) | [Ukrajinski](../uk/README.md) | [Burmanski (Myanmar)](../my/README.md) - -# Generative AI za početnike (Verzija 3) - Tečaj - -Naučite osnove izrade Generative AI aplikacija kroz naš sveobuhvatni tečaj od 21 lekcije koji su pripremili Microsoft Cloud Advocates. - -## 🌱 Početak - -Ovaj tečaj sadrži 21 lekciju. Svaka lekcija obrađuje svoju temu, pa započnite gdje god želite! - -Lekcije su označene kao "Learn" lekcije koje objašnjavaju Generative AI koncept ili "Build" lekcije koje objašnjavaju koncept i daju primjere koda u **Python** i **TypeScript** gdje je moguće. - -Za .NET developere pogledajte [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -Svaka lekcija također sadrži odjeljak "Keep Learning" s dodatnim materijalima za učenje. - -## Što vam treba -### Za pokretanje koda iz ovog tečaja možete koristiti: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **Lekcije:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **Lekcije:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **Lekcije:** "oai-assignment" - -- Osnovno znanje Pythona ili TypeScripta je korisno - \*Za potpune početnike pogledajte ove [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) i [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) tečajeve -- GitHub račun za [forkanje cijelog repozitorija](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) na vlastiti GitHub račun - -Napravili smo lekciju **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** koja će vam pomoći pri postavljanju razvojnog okruženja. - -Ne zaboravite [označiti (🌟) ovaj repozitorij](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) kako biste ga lakše pronašli kasnije. - -## 🧠 Spremni za implementaciju? - -Ako tražite naprednije primjere koda, pogledajte našu [kolekciju Generative AI primjera koda](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) u **Pythonu** i **TypeScriptu**. - -## 🗣️ Upoznajte druge polaznike, dobijte podršku - -Pridružite se našem [službenom Azure AI Foundry Discord serveru](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) kako biste upoznali i povezali se s drugim polaznicima ovog tečaja i dobili podršku. - -Postavljajte pitanja ili dijelite povratne informacije o proizvodu na našem [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum) na GitHubu. - -## 🚀 Gradite startup? - -Prijavite se za [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) i ostvarite **besplatne OpenAI kredite** te do **150.000 USD Azure kredita za pristup OpenAI modelima putem Azure OpenAI Services**. - -## 🙏 Želite pomoći? - -Imate prijedloge ili ste pronašli pravopisne ili kodne greške? [Otvorite issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) ili [napravite pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 Svaka lekcija uključuje: - -- Kratki video uvod u temu -- Pisanu lekciju u README datoteci -- Primjere koda u Pythonu i TypeScriptu koji podržavaju Azure OpenAI i OpenAI API -- Linkove na dodatne resurse za nastavak učenja - -## 🗃️ Lekcije - -| # | **Poveznica na lekciju** | **Opis** | **Video** | **Dodatno učenje** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Postavljanje tečaja](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Kako postaviti razvojno okruženje | Video uskoro | [Saznaj više](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Uvod u Generative AI i LLM-ove](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Razumijevanje što je Generative AI i kako rade Large Language Models (LLM) | [Video](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Saznaj više](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Istraživanje i usporedba različitih LLM-ova](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Kako odabrati pravi model za vaš slučaj upotrebe | [Video](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Saznaj više](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Odgovorno korištenje Generative AI](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Kako odgovorno graditi Generative AI aplikacije | [Video](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Saznaj više](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Osnove Prompt Engineeringa](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Praktične najbolje prakse u Prompt Engineeringu | [Video](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Saznaj više](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Izrada naprednih promptova](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Kako primijeniti tehnike prompt engineeringa koje poboljšavaju rezultate promptova | [Video](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Saznaj više](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Izrada aplikacija za generiranje teksta](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Izrada:** Aplikacija za generiranje teksta koristeći Azure OpenAI / OpenAI API | [Video](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Saznaj više](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Izrada chat aplikacija](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Izrada:** Tehnike za učinkovitu izradu i integraciju chat aplikacija. | [Video](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Saznaj više](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Izrada pretraživačkih aplikacija s vektorskim bazama podataka](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Izrada:** Pretraživačka aplikacija koja koristi Embeddings za pretraživanje podataka. | [Video](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Saznaj više](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Izrada aplikacija za generiranje slika](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Izrada:** Aplikacija za generiranje slika | [Video](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Saznaj više](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Izrada AI aplikacija s malo koda](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Izrada:** Generativna AI aplikacija koristeći Low Code alate | [Video](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Saznaj više](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Integracija vanjskih aplikacija s Function Calling](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Izrada:** Što je function calling i kako se koristi u aplikacijama | [Video](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Saznaj više](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [Dizajniranje UX-a za AI aplikacije](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Učenje:** Kako primijeniti principe UX dizajna pri razvoju Generativnih AI aplikacija | [Video](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Saznaj više](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Osiguravanje vaših Generativnih AI aplikacija](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Učenje:** Prijetnje i rizici za AI sustave te metode za njihovo osiguranje. | [Video](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Saznaj više](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [Životni ciklus Generativnih AI aplikacija](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Učenje:** Alati i metrike za upravljanje LLM životnim ciklusom i LLMOps | [Video](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Saznaj više](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) i vektorske baze podataka](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Izrada:** Aplikacija koja koristi RAG Framework za dohvat embeddings iz vektorskih baza podataka | [Video](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Saznaj više](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Open Source modeli i Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Izrada:** Aplikacija koristeći open source modele dostupne na Hugging Face | [Video](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Saznaj više](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI agenti](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Izrada:** Aplikacija koristeći AI Agent Framework | [Video](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Saznaj više](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [Fino podešavanje LLM-ova](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Učenje:** Što, zašto i kako fino podešavati LLM-ove | [Video](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Saznaj više](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Izrada s SLM-ovima](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Učenje:** Prednosti izrade s malim jezičnim modelima | Video uskoro | [Saznaj više](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Izrada s Mistral modelima](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Učenje:** Značajke i razlike Mistral obitelji modela | Video uskoro | [Saznaj više](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Izrada s Meta modelima](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Učenje:** Značajke i razlike Meta obitelji modela | Video uskoro | [Saznaj više](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Posebna zahvala - -Posebna zahvala [**Johnu Azizu**](https://www.linkedin.com/in/john0isaac/) za kreiranje svih GitHub Actions i workflowa - -[**Bernhardu Merkleu**](https://www.linkedin.com/in/bernhard-merkle-738b73/) za ključne doprinose u svakoj lekciji koji su poboljšali iskustvo učenja i rada s kodom. - -## 🎒 Ostali tečajevi - -Naš tim izrađuje i druge tečajeve! Pogledajte: - -- [**NOVO** Model Context Protocol za početnike](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI agenti za početnike](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Generativni AI za početnike koristeći .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Generativni AI za početnike koristeći JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML za početnike](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Data Science za početnike](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI za početnike](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Cybersecurity za početnike](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Web razvoj za početnike](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT za početnike](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR razvoj za početnike](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Savladavanje GitHub Copilota za AI upareno programiranje](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Savladavanje GitHub Copilota za C#/.NET developere](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Izaberi svoju Copilot avanturu](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Odricanje od odgovornosti**: -Ovaj dokument je preveden korištenjem AI usluge za prevođenje [Co-op Translator](https://github.com/Azure/co-op-translator). Iako težimo točnosti, imajte na umu da automatski prijevodi mogu sadržavati pogreške ili netočnosti. Izvorni dokument na izvornom jeziku treba smatrati autoritativnim izvorom. Za kritične informacije preporučuje se profesionalni ljudski prijevod. Ne snosimo odgovornost za bilo kakva nesporazuma ili pogrešna tumačenja koja proizlaze iz korištenja ovog prijevoda. \ No newline at end of file + + + + diff --git a/translations/hu/00-course-setup/01-setup-cloud.md b/translations/hu/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..66ff54b17 --- /dev/null +++ b/translations/hu/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/hu/00-course-setup/02-setup-local.md b/translations/hu/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..b7ae175e8 --- /dev/null +++ b/translations/hu/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/hu/00-course-setup/03-providers.md b/translations/hu/00-course-setup/03-providers.md new file mode 100644 index 000000000..5f78148a3 --- /dev/null +++ b/translations/hu/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/hu/00-course-setup/README.md b/translations/hu/00-course-setup/README.md index 5134f6d61..4e69c7285 100644 --- a/translations/hu/00-course-setup/README.md +++ b/translations/hu/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# Kezdés ezzel a tanfolyammal - -Nagyon izgatottak vagyunk, hogy elkezded ezt a tanfolyamot, és meglátod, milyen inspiráló dolgokat hozhatsz létre a Generatív MI segítségével! - -A sikered érdekében ezen az oldalon összefoglaltuk a beállítási lépéseket, a technikai követelményeket, valamint azt, hogy hol kérhetsz segítséget, ha szükséges. - -## Beállítási lépések - -A tanfolyam elkezdéséhez a következő lépéseket kell elvégezned. - -### 1. Forkold ezt a repót - -[Forkold le az egész repót](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) a saját GitHub fiókodba, hogy módosíthasd a kódot és teljesíthesd a kihívásokat. Emellett [csillagozhatod (🌟) is ezt a repót](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst), hogy könnyebben megtaláld ezt és a kapcsolódó repókat. - -### 2. Hozz létre egy codespace-t - -A függőségi problémák elkerülése érdekében javasoljuk, hogy a tanfolyamot [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst) környezetben futtasd. - -Ezt úgy hozhatod létre, hogy a forkolt repódnál kiválasztod a `Code` opciót, majd a **Codespaces** lehetőséget. - -![Dialógus, amely a codespace létrehozására szolgáló gombokat mutatja](../../../00-course-setup/images/who-will-pay.webp) - -### 3. API kulcsok tárolása - -Fontos, hogy az API kulcsaidat biztonságban tartsd, amikor bármilyen alkalmazást fejlesztesz. Nem ajánljuk, hogy az API kulcsokat közvetlenül a kódban tárold. Ha ezeket nyilvános repóba commitálod, az biztonsági problémákhoz és akár nem kívánt költségekhez is vezethet, ha rosszindulatú személy használja fel őket. -Íme egy lépésről lépésre útmutató, hogyan készíts `.env` fájlt Pythonhoz, és hogyan add hozzá a `GITHUB_TOKEN`-t: - -1. **Navigálj a projekt könyvtáradba**: Nyisd meg a terminált vagy parancssort, és lépj be a projekt gyökérkönyvtárába, ahol létre szeretnéd hozni a `.env` fájlt. - - ```bash - cd path/to/your/project - ``` - -2. **Hozd létre a `.env` fájlt**: Használd a kedvenc szövegszerkesztődet egy új `.env` nevű fájl létrehozásához. Parancssorból Unix-alapú rendszereken a `touch`, Windows-on az `echo` parancs használható: - - Unix-alapú rendszerek: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **Szerkeszd a `.env` fájlt**: Nyisd meg a `.env` fájlt egy szövegszerkesztőben (pl. VS Code, Notepad++, vagy bármely más szerkesztő). Add hozzá a következő sort, a `your_github_token_here` helyére a saját GitHub tokenedet írva: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Mentés**: Mentsd el a fájlt és zárd be a szerkesztőt. - -5. **Telepítsd a `python-dotenv` csomagot**: Ha még nem tetted meg, telepítened kell a `python-dotenv` csomagot, hogy a `.env` fájlban tárolt környezeti változókat be tudd tölteni a Python alkalmazásodba. Telepítheted a `pip` segítségével: - - ```bash - pip install python-dotenv - ``` - -6. **Környezeti változók betöltése a Python szkriptben**: A Python szkriptedben használd a `python-dotenv` csomagot a `.env` fájlban lévő környezeti változók betöltéséhez: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -Ennyi az egész! Sikeresen létrehoztad a `.env` fájlt, hozzáadtad a GitHub tokenedet, és betöltötted azt a Python alkalmazásodba. - -## Hogyan futtasd helyben a számítógépeden - -Ahhoz, hogy helyben futtasd a kódot a számítógépeden, szükséged lesz valamilyen [Python verzió telepítésére](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -Ezután a repót le kell klónoznod: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -Miután mindent letöltöttél, kezdődhet a munka! - -## Opcionális lépések - -### Miniconda telepítése - -A [Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) egy könnyű telepítő a [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python és néhány csomag telepítéséhez. -A Conda egy csomagkezelő, amely megkönnyíti különböző Python [**virtuális környezetek**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) és csomagok beállítását és váltását. Hasznos lehet olyan csomagok telepítéséhez is, amelyek nem érhetők el `pip`-en keresztül. - -Kövesd a [MiniConda telepítési útmutatót](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) a beállításhoz. - -Miután telepítetted a Minicondát, klónozd le a [repót](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (ha még nem tetted meg). - -Ezután létre kell hoznod egy virtuális környezetet. Conda használatával készíts egy új környezeti fájlt (_environment.yml_). Ha Codespaces-t használsz, ezt a `.devcontainer` könyvtárban hozd létre, tehát `.devcontainer/environment.yml`. - -Töltsd fel a környezeti fájlt az alábbi kódrészlettel: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Ha Conda használata közben hibákba ütközöl, manuálisan is telepítheted a Microsoft AI könyvtárakat a következő parancs futtatásával a terminálban: - -``` -conda install -c microsoft azure-ai-ml -``` - -A környezeti fájl tartalmazza a szükséges függőségeket. Az `` a Conda környezeted nevét jelöli, az `` pedig a Python verzióját, például a `3` a legfrissebb főverzió. - -Ezek után hozd létre a Conda környezetet az alábbi parancsok futtatásával a parancssorban/terminálban: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -Ha problémákba ütközöl, nézd meg a [Conda környezetek útmutatóját](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst). - -### Visual Studio Code használata a Python támogatás kiterjesztéssel - -Javasoljuk, hogy a tanfolyamhoz a [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) szerkesztőt használd a [Python támogatás kiterjesztéssel](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst). Ez azonban inkább ajánlás, nem kötelező követelmény. - -> **Megjegyzés**: Ha megnyitod a tanfolyam repóját VS Code-ban, lehetőséged van a projektet konténerben futtatni. Ennek oka a repóban található [különleges `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) mappa. Erről később még szó lesz. - -> **Megjegyzés**: Amint klónozod és megnyitod a könyvtárat VS Code-ban, automatikusan felajánlja a Python támogatás kiterjesztés telepítését. - -> **Megjegyzés**: Ha a VS Code azt javasolja, hogy nyisd meg újra a repót konténerben, utasítsd el ezt a kérést, ha a helyileg telepített Python verziót szeretnéd használni. - -### Jupyter használata böngészőben - -A projektet a [Jupyter környezetben](https://jupyter.org?WT.mc_id=academic-105485-koreyst) is fejlesztheted közvetlenül a böngésződben. Mind a klasszikus Jupyter, mind a [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) kellemes fejlesztői környezetet biztosít, például automatikus kiegészítéssel, kódszínezéssel stb. - -A Jupyter helyi indításához nyisd meg a terminált/parancssort, navigálj a tanfolyam könyvtárába, és futtasd: - -```bash -jupyter notebook -``` - -vagy - -```bash -jupyterhub -``` - -Ez elindít egy Jupyter példányt, és a hozzáférési URL megjelenik a parancssor ablakában. - -Ha megnyitod az URL-t, látnod kell a tanfolyam vázlatát, és navigálhatsz bármely `*.ipynb` fájlhoz. Például: `08-building-search-applications/python/oai-solution.ipynb`. - -### Futtatás konténerben - -Alternatív megoldásként a számítógépen vagy Codespace-ben való beállítás helyett használhatsz egy [konténert](../../../00-course-setup/). A tanfolyam repójában található különleges `.devcontainer` mappa lehetővé teszi, hogy a VS Code konténerben állítsa be a projektet. Codespaces-en kívül ehhez Docker telepítése szükséges, és őszintén szólva, ez egy kicsit bonyolultabb, ezért ezt csak azoknak ajánljuk, akik már jártasak a konténerek használatában. - -Az API kulcsaid biztonságának megőrzésének egyik legjobb módja GitHub Codespaces használata esetén a Codespace Secrets alkalmazása. Kérjük, kövesd a [Codespaces titkok kezeléséről szóló útmutatót](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) a részletekért. - -## Tananyagok és technikai követelmények - -A tanfolyam 6 elméleti és 6 gyakorlati leckéből áll. - -A gyakorlati leckékhez az Azure OpenAI szolgáltatást használjuk. Ehhez hozzáférésre és API kulcsra lesz szükséged. Hozzáférést az [ezen az űrlapon keresztül](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst) igényelhetsz. - -Amíg az igénylésed feldolgozás alatt áll, minden gyakorlati leckéhez tartozik egy `README.md` fájl, ahol megtekintheted a kódot és az eredményeket. - -## Azure OpenAI szolgáltatás első használata - -Ha most használod először az Azure OpenAI szolgáltatást, kérjük, kövesd ezt az útmutatót az [Azure OpenAI szolgáltatás létrehozásához és telepítéséhez.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## OpenAI API első használata - -Ha most használod először az OpenAI API-t, kérjük, kövesd az útmutatót az [API létrehozásához és használatához.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## Ismerkedj meg más tanulókkal - -Hivatalos [AI Community Discord szerverünkön](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) létrehoztunk csatornákat, ahol találkozhatsz más tanulókkal. Ez remek lehetőség, hogy kapcsolatokat építs hasonló gondolkodású vállalkozókkal, fejlesztőkkel, diákokkal, és bárkivel, aki szeretne fejlődni a Generatív MI területén. - -[![Csatlakozás a discord csatornához](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -A projekt csapata is jelen lesz ezen a Discord szerveren, hogy segítsen a tanulóknak. - -## Hozzájárulás - -Ez a tanfolyam egy nyílt forráskódú kezdeményezés. Ha javítási javaslatod vagy hibát találsz, kérjük, hozz létre egy [Pull Request-et](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) vagy jelentkezz egy [GitHub issue-val](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -A projekt csapata nyomon követi az összes hozzájárulást. A nyílt forráskódú projektekhez való hozzájárulás nagyszerű módja a karriered építésének a Generatív MI területén. - -A legtöbb hozzájáruláshoz el kell fogadnod egy Contributor License Agreement-et (CLA), amelyben kijelented, hogy jogod van a hozzájárulásod használatára, és valóban megadod ezt a jogot. Részletekért látogass el a [CLA, Contributor License Agreement weboldalra](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Fontos: amikor szöveget fordítasz ebben a repóban, kérjük, ne használj gépi fordítást. A fordításokat a közösség ellenőrzi, ezért csak olyan nyelveken vállalj fordítást, amelyben jártas vagy. - -Amikor pull request-et nyújtasz be, egy CLA-bot automatikusan megállapítja, hogy szükséges-e CLA-t benyújtanod, és ennek megfelelően jelöli meg a PR-t (pl. címke, komment). Egyszerűen kövesd a bot utasításait. Ezt csak egyszer kell megtenned az összes CLA-t használó repóban. - -Ez a projekt elfogadta a [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst) irányelveit. További információért olvasd el a Code of Conduct GYIK-et, vagy írj az [opencode@microsoft.com](mailto:opencode@microsoft.com) címre kérdéseiddel vagy észrevételeiddel. - -## Kezdjünk hozzá - -Most, hogy elvégezted a tanfolyam teljesítéséhez szükséges lépéseket, kezdjük azzal, hogy megismerkedsz a [Generatív MI és a nagy nyelvi modellek (LLM-ek) alapjaival](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**Jogi nyilatkozat**: -Ez a dokumentum az AI fordító szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével készült. Bár a pontosságra törekszünk, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az anyanyelvén tekintendő hiteles forrásnak. Fontos információk esetén szakmai, emberi fordítást javaslunk. Nem vállalunk felelősséget a fordítás használatából eredő félreértésekért vagy téves értelmezésekért. \ No newline at end of file + + + + diff --git a/translations/hu/00-course-setup/SETUP.md b/translations/hu/00-course-setup/SETUP.md deleted file mode 100644 index aeff2a51f..000000000 --- a/translations/hu/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# Fejlesztői környezet beállítása - -Ehhez a tárhelyhez és tanfolyamhoz egy [fejlesztői konténert](https://containers.dev?WT.mc_id=academic-105485-koreyst) állítottunk be, amely egy univerzális futtatókörnyezetet biztosít Python3, .NET, Node.js és Java fejlesztéshez. A kapcsolódó konfiguráció a `devcontainer.json` fájlban található, amely a `.devcontainer/` mappában van a tárhely gyökérkönyvtárában. - -A fejlesztői konténer aktiválásához indítsd el [GitHub Codespaces-ben](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (felhőalapú futtatókörnyezethez) vagy [Docker Desktopban](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (helyi gépen futtatott környezethez). További részletekért olvasd el [ezt a dokumentációt](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) arról, hogyan működnek a fejlesztői konténerek a VS Code-ban. - -> [!TIP] -> Ajánljuk a GitHub Codespaces használatát a gyors és egyszerű kezdéshez. Személyes fiókok számára bőséges [ingyenes használati keretet](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) biztosít. Állítsd be a [timeoutokat](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst), hogy az inaktív codespace-ek leálljanak vagy törlődjenek, így maximalizálhatod a kereted kihasználtságát. - -## 1. Feladatok végrehajtása - -Minden leckéhez tartozhatnak _opcionális_ feladatok, amelyeket egy vagy több programozási nyelven biztosítunk, például Python, .NET/C#, Java és JavaScript/TypeScript. Ez a rész általános útmutatást ad a feladatok végrehajtásához. - -### 1.1 Python feladatok - -A Python feladatok vagy alkalmazásként (`.py` fájlok), vagy Jupyter notebookként (`.ipynb` fájlok) érhetők el. -- A notebook futtatásához nyisd meg Visual Studio Code-ban, majd kattints a _Select Kernel_-re (jobb felső sarokban), és válaszd ki az alapértelmezett Python 3 opciót. Ezután használhatod a _Run All_ parancsot a notebook futtatásához. -- Parancssorból Python alkalmazások futtatásához kövesd az adott feladathoz tartozó utasításokat, hogy a megfelelő fájlokat válaszd ki és megadd a szükséges argumentumokat. - -## 2. Szolgáltatók konfigurálása - -A feladatok **lehetnek** úgy beállítva, hogy egy vagy több Nagy Nyelvi Modell (LLM) telepítésével működjenek egy támogatott szolgáltatón keresztül, mint például OpenAI, Azure vagy Hugging Face. Ezek egy _hosztolt végpontot_ (API-t) biztosítanak, amelyhez programozottan hozzáférhetünk a megfelelő hitelesítő adatokkal (API kulcs vagy token). Ebben a tanfolyamban az alábbi szolgáltatókat tárgyaljuk: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) különféle modellekkel, beleértve a GPT alapú sorozatot. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst), amely az OpenAI modelleket vállalati szintű felkészültséggel kínálja. - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) nyílt forráskódú modellekhez és inferencia szerverhez. - -**Ezekhez a gyakorlatokhoz saját fiókok használata szükséges.** A feladatok opcionálisak, így eldöntheted, hogy egy, mindegyik vagy egyik szolgáltatót sem állítod be az érdeklődésed szerint. Néhány útmutató a regisztrációhoz: - -| Regisztráció | Költség | API kulcs | Playground | Megjegyzések | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst) | [Árazás](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst) | [Projekt alapú](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [Kód nélküli, webes](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Több modell elérhető | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst) | [Árazás](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst) | [SDK gyorsindító](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Studio gyorsindító](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Előzetes hozzáférési kérelem szükséges](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) | -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Árazás](https://huggingface.co/pricing) | [Hozzáférési tokenek](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst) | [Hugging Chat korlátozott modellekkel rendelkezik](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Kövesd az alábbi utasításokat, hogy _konfiguráld_ ezt a tárhelyet a különböző szolgáltatók használatához. Azok a feladatok, amelyek egy adott szolgáltatót igényelnek, a fájlneveikben az alábbi címkék egyikét tartalmazzák: - - `aoai` - Azure OpenAI végpont és kulcs szükséges - - `oai` - OpenAI végpont és kulcs szükséges - - `hf` - Hugging Face token szükséges - -Beállíthatsz egyet, többet vagy egyiket sem. A kapcsolódó feladatok hibát jeleznek, ha hiányoznak a hitelesítő adatok. - -### 2.1. `.env` fájl létrehozása - -Feltételezzük, hogy már elolvastad a fentieket, regisztráltál a megfelelő szolgáltatónál, és megszerezted a szükséges hitelesítő adatokat (API_KEY vagy token). Azure OpenAI esetén feltételezzük, hogy rendelkezel egy érvényes Azure OpenAI Szolgáltatás telepítéssel (végponttal), amelyen legalább egy GPT modell fut chat befejezéshez. - -A következő lépés a **helyi környezeti változók** beállítása az alábbiak szerint: - -1. Nézd meg a gyökérkönyvtárban található `.env.copy` fájlt, amelynek tartalma valahogy így néz ki: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Másold le ezt a fájlt `.env` néven az alábbi parancs segítségével. Ez a fájl _gitignore-olva_ van, így a titkos adatok biztonságban maradnak. - - ```bash - cp .env.copy .env - ``` - -3. Töltsd ki az értékeket (cseréld ki a jobb oldali helyőrzőket) a következő szakaszban leírtak szerint. - -3. (Opcionális) Ha GitHub Codespaces-t használsz, lehetőséged van a környezeti változókat _Codespaces titkokként_ elmenteni, amelyek ehhez a tárhelyhez kapcsolódnak. Ebben az esetben nem kell helyi .env fájlt létrehoznod. **Fontos azonban, hogy ez az opció csak GitHub Codespaces használata esetén működik.** Docker Desktop használata esetén továbbra is szükséges a .env fájl beállítása. - -### 2.2. `.env` fájl kitöltése - -Nézzük meg gyorsan a változóneveket, hogy mit jelentenek: - -| Változó | Leírás | -| :--- | :--- | -| HUGGING_FACE_API_KEY | Ez a felhasználói hozzáférési token, amelyet a profilodban állítottál be | -| OPENAI_API_KEY | Ez az engedélyező kulcs a nem Azure OpenAI végpontok használatához | -| AZURE_OPENAI_API_KEY | Ez az engedélyező kulcs az Azure OpenAI szolgáltatáshoz | -| AZURE_OPENAI_ENDPOINT | Ez az Azure OpenAI erőforrás telepített végpontja | -| AZURE_OPENAI_DEPLOYMENT | Ez a _szöveg generálás_ modell telepítési végpontja | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | Ez a _szöveg beágyazás_ modell telepítési végpontja | -| | | - -Megjegyzés: Az utolsó két Azure OpenAI változó egy alapértelmezett modellt tükröz a chat befejezéshez (szöveg generálás) és a vektoros kereséshez (beágyazások). Ezek beállítására vonatkozó utasításokat a kapcsolódó feladatokban találod majd. - -### 2.3 Azure konfigurálása: Portálról - -Az Azure OpenAI végpont és kulcs értékei az [Azure Portálon](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) találhatók, kezdjük ott. - -1. Lépj be az [Azure Portálra](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -1. Kattints a bal oldali menüben a **Keys and Endpoint** opcióra. -1. Kattints a **Show Keys** gombra – meg kell jelennie a következőknek: KEY 1, KEY 2 és Endpoint. -1. Az AZURE_OPENAI_API_KEY értékéhez használd a KEY 1-et. -1. Az AZURE_OPENAI_ENDPOINT értékéhez használd az Endpointot. - -Ezután szükségünk van a telepített modellek végpontjaira. - -1. Kattints az Azure OpenAI erőforrás bal oldali menüjében a **Model deployments** opcióra. -1. A megnyíló oldalon válaszd a **Manage Deployments** lehetőséget. - -Ez az Azure OpenAI Studio weboldalára visz, ahol a további értékeket megtaláljuk az alábbiak szerint. - -### 2.4 Azure konfigurálása: Studioból - -1. Navigálj az [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) oldalra **az erőforrásodból** az előző pont szerint. -1. Kattints a bal oldali menüben a **Deployments** fülre, hogy lásd a jelenleg telepített modelleket. -1. Ha a kívánt modell nincs telepítve, használd a **Create new deployment** lehetőséget a telepítéshez. -1. Szükséged lesz egy _szöveg generáló_ modellre – ajánlott: **gpt-35-turbo** -1. Szükséged lesz egy _szöveg beágyazó_ modellre – ajánlott: **text-embedding-ada-002** - -Frissítsd a környezeti változókat a használt _Deployment name_-nel. Ez általában megegyezik a modell nevével, hacsak nem változtattad meg kifejezetten. Például: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**Ne felejtsd el elmenteni a .env fájlt a módosítások után!** Ezután kiléphetsz a fájlból, és folytathatod a notebook futtatására vonatkozó utasításokat. - -### 2.5 OpenAI konfigurálása: Profilból - -Az OpenAI API kulcsodat megtalálod az [OpenAI fiókodban](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). Ha még nincs, regisztrálj, és hozz létre egy API kulcsot. Miután megvan a kulcs, töltsd ki vele az `OPENAI_API_KEY` változót a `.env` fájlban. - -### 2.6 Hugging Face konfigurálása: Profilból - -A Hugging Face tokenedet a profilodban találod az [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst) menüpont alatt. Ne oszd meg nyilvánosan! Hozz létre egy új tokent erre a projektre, és másold be a `.env` fájl `HUGGING_FACE_API_KEY` változójába. _Megjegyzés:_ Ez technikailag nem API kulcs, de hitelesítésre szolgál, ezért a következetesség kedvéért ezt a nevet használjuk. - -**Jogi nyilatkozat**: -Ez a dokumentum az AI fordító szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével készült. Bár a pontosságra törekszünk, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az anyanyelvén tekintendő hiteles forrásnak. Fontos információk esetén szakmai, emberi fordítást javaslunk. Nem vállalunk felelősséget a fordítás használatából eredő félreértésekért vagy téves értelmezésekért. \ No newline at end of file diff --git a/translations/hu/04-prompt-engineering-fundamentals/README.md b/translations/hu/04-prompt-engineering-fundamentals/README.md index 6d91d45b5..0f3e279b4 100644 --- a/translations/hu/04-prompt-engineering-fundamentals/README.md +++ b/translations/hu/04-prompt-engineering-fundamentals/README.md @@ -1,437 +1,15 @@ - -# Prompttervezés alapjai - -[![Prompttervezés alapjai](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.hu.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Bevezetés -Ez a modul azokat az alapvető fogalmakat és technikákat tárgyalja, amelyek hatékony promptok létrehozásához szükségesek generatív AI modellek esetén. Az, hogy hogyan írod meg a promptodat egy LLM-nek, szintén számít. Egy gondosan megtervezett prompt jobb minőségű választ eredményezhet. De mit is jelentenek pontosan az olyan kifejezések, mint a _prompt_ és a _prompttervezés_? És hogyan javíthatom a prompt _bemenetet_, amit az LLM-nek küldök? Ezekre a kérdésekre próbálunk választ adni ebben és a következő fejezetben. - -A _generatív AI_ képes új tartalmakat létrehozni (például szöveget, képeket, hangot, kódot stb.) a felhasználói kérésekre válaszul. Ezt olyan _Nagy Nyelvi Modellek_ segítségével éri el, mint az OpenAI GPT ("Generative Pre-trained Transformer") sorozata, amelyeket természetes nyelv és kód használatára képeztek ki. - -A felhasználók most már ismerős párbeszédes formátumban léphetnek interakcióba ezekkel a modellekkel, anélkül, hogy technikai tudásra vagy képzésre lenne szükségük. A modellek _prompt-alapúak_ – a felhasználók szöveges bemenetet (promptot) küldenek, és visszakapják az AI válaszát (kiegészítést). Ezután többszörös körökben "beszélgethetnek az AI-val", finomítva a promptot, amíg a válasz megfelel az elvárásaiknak. - -A "promptok" mára a generatív AI alkalmazások elsődleges _programozási felületévé_ váltak, amelyek megmondják a modelleknek, mit tegyenek, és befolyásolják a visszakapott válaszok minőségét. A "prompttervezés" egy gyorsan fejlődő tudományterület, amely a promptok _tervezésére és optimalizálására_ fókuszál, hogy következetes és minőségi válaszokat biztosítson nagy léptékben. - -## Tanulási célok - -Ebben a leckében megtanuljuk, mi az a prompttervezés, miért fontos, és hogyan készíthetünk hatékonyabb promptokat adott modell és alkalmazási cél esetén. Megismerjük a prompttervezés alapfogalmait és bevált gyakorlatait – valamint egy interaktív Jupyter Notebook "sandbox" környezetet, ahol ezeket a fogalmakat valós példákon keresztül láthatjuk alkalmazva. - -A lecke végére képesek leszünk: - -1. Elmagyarázni, mi az a prompttervezés és miért fontos. -2. Leírni egy prompt összetevőit és azok használatát. -3. Megtanulni a prompttervezés legjobb gyakorlatait és technikáit. -4. Alkalmazni a tanult technikákat valós példákon, OpenAI végpont használatával. - -## Kulcsfogalmak - -Prompttervezés: Az a gyakorlat, amikor bemeneteket tervezünk és finomítunk, hogy az AI modellek a kívánt kimeneteket állítsák elő. -Tokenizáció: A szöveg kisebb egységekre, úgynevezett tokenekre bontásának folyamata, amelyet a modell képes értelmezni és feldolgozni. -Instrukcióra hangolt LLM-ek: Olyan nagy nyelvi modellek, amelyeket specifikus utasításokkal finomhangoltak a válaszok pontosságának és relevanciájának javítása érdekében. - -## Tanulási sandbox - -A prompttervezés jelenleg inkább művészet, mint tudomány. A legjobb módja, hogy fejlesszük az intuíciót, ha _többet gyakorolunk_, és kipróbálásos, hibákon keresztüli megközelítést alkalmazunk, amely ötvözi az alkalmazási terület szakértelmét a javasolt technikákkal és modell-specifikus optimalizációkkal. - -A lecke mellé csatolt Jupyter Notebook egy _sandbox_ környezetet biztosít, ahol kipróbálhatod, amit tanulsz – menet közben vagy a végén lévő kód kihívás részeként. A gyakorlatok végrehajtásához szükséged lesz: - -1. **Egy Azure OpenAI API kulcsra** – a telepített LLM szolgáltatási végpontjához. -2. **Egy Python futtatókörnyezetre** – amelyben a Notebook futtatható. -3. **Helyi környezeti változókra** – _most végezd el a [BEÁLLÍTÁS](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) lépéseit, hogy készen állj_. - -A notebook alapgyakorlatokat tartalmaz – de bátorítunk, hogy adj hozzá saját _Markdown_ (leírás) és _Kód_ (prompt kérések) szekciókat, hogy több példát vagy ötletet próbálhass ki, és fejleszd a prompttervezési intuíciódat. - -## Illusztrált útmutató - -Szeretnéd átlátni, miről szól ez a lecke, mielőtt belevágsz? Nézd meg ezt az illusztrált útmutatót, amely áttekintést ad a fő témákról és a legfontosabb tanulságokról, amelyeken érdemes elgondolkodni. A lecke útiterv végigvezet a kulcsfogalmak és kihívások megértésétől azok kezeléséig a releváns prompttervezési technikák és bevált gyakorlatok segítségével. Fontos megjegyezni, hogy az útmutató "Haladó technikák" része a tananyag _következő_ fejezetében tárgyalt tartalomra utal. - -![Illusztrált útmutató a prompttervezéshez](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.hu.png) - -## A startupunk - -Most beszéljünk arról, hogyan kapcsolódik _ez a téma_ a startupunk küldetéséhez, hogy [AI innovációt hozzunk az oktatásba](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). AI-alapú, _személyre szabott tanulást_ támogató alkalmazásokat szeretnénk fejleszteni – gondoljuk át, hogyan "tervezhetnek" promptokat az alkalmazásunk különböző felhasználói: - -- **Adminisztrátorok** kérhetik az AI-t, hogy _elemezze a tantervi adatokat, és azonosítsa a lefedetlenségeket_. Az AI összefoglalhatja az eredményeket vagy kód segítségével vizualizálhatja azokat. -- **Oktatók** kérhetik az AI-t, hogy _készítsen tanmenetet egy célközönség és téma számára_. Az AI személyre szabott tervet állíthat össze meghatározott formátumban. -- **Diákok** kérhetik az AI-t, hogy _segítse őket egy nehéz tantárgyban_. Az AI most már szintjükhöz igazított leckékkel, tippekkel és példákkal vezetheti őket. - -Ez csak a jéghegy csúcsa. Nézd meg a [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) nyílt forráskódú promptkönyvtárat, amelyet oktatási szakértők állítottak össze – hogy szélesebb képet kapj a lehetőségekről! _Próbálj ki néhány promptot a sandboxban vagy az OpenAI Playground-ban, hogy lásd, mi történik!_ - - - -## Mi az a prompttervezés? - -Ezt a leckét azzal kezdtük, hogy a **prompttervezést** úgy definiáltuk, mint a szöveges bemenetek (promptok) _tervezésének és optimalizálásának_ folyamatát, amelynek célja, hogy adott alkalmazási cél és modell esetén következetes és minőségi válaszokat (kiegészítéseket) adjon. Ezt kétlépéses folyamatként képzelhetjük el: - -- az adott modell és cél számára az elsődleges prompt _megtervezése_ -- a prompt _finomítása_ iteratív módon a válasz minőségének javítása érdekében - -Ez szükségszerűen egy próbálkozásos, hibákon keresztüli folyamat, amely felhasználói intuíciót és erőfeszítést igényel az optimális eredmény eléréséhez. De miért fontos ez? A válaszhoz először három fogalmat kell megértenünk: - -- _Tokenizáció_ = hogyan "látja" a modell a promptot -- _Alap LLM-ek_ = hogyan "feldolgozza" a modell az alap promptot -- _Instrukcióra hangolt LLM-ek_ = hogyan képes a modell most már "feladatokat" értelmezni - -### Tokenizáció - -Egy LLM a promptokat _tokenek sorozataként_ látja, ahol különböző modellek (vagy egy modell különböző verziói) eltérő módon tokenizálhatják ugyanazt a promptot. Mivel az LLM-ek tokeneken (nem pedig nyers szövegen) tanulnak, a promptok tokenizálásának módja közvetlen hatással van a generált válasz minőségére. - -Ahhoz, hogy megértsd, hogyan működik a tokenizáció, próbáld ki az olyan eszközöket, mint az alábbi [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst). Másold be a promptodat, és nézd meg, hogyan alakul át tokenekké, figyelve arra, hogyan kezeli a szóközöket és az írásjeleket. Fontos megjegyezni, hogy ez a példa egy régebbi LLM-et (GPT-3) mutat, így egy újabb modell esetén eltérő eredményt kaphatsz. - -![Tokenizáció](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.hu.png) - -### Fogalom: Alapmodellek - -Miután a prompt tokenizálva lett, az ["Alap LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (vagy alapmodell) elsődleges feladata, hogy megjósolja a tokenek sorozatában a következő tokeneket. Mivel az LLM-ek hatalmas szöveges adatbázisokon tanultak, jól ismerik a tokenek közötti statisztikai összefüggéseket, és viszonylag magabiztosan tudják előre jelezni a következő elemet. Fontos megjegyezni, hogy nem értik a prompt vagy a tokenek _jelentését_; csupán egy mintát látnak, amelyet a következő jóslatukkal "kiegészíthetnek". A sorozatot addig folytatják, amíg a felhasználó meg nem szakítja vagy egy előre meghatározott feltétel nem teljesül. - -Szeretnéd látni, hogyan működik a prompt-alapú kiegészítés? Írd be a fenti promptot az Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) felületére az alapértelmezett beállításokkal. A rendszer úgy van konfigurálva, hogy a promptokat információkérésként kezelje – így olyan választ kell kapnod, amely megfelel ennek a kontextusnak. - -De mi van akkor, ha a felhasználó valami konkrétat szeretne látni, ami megfelel egy kritériumnak vagy feladatcélkitűzésnek? Itt lépnek be a képbe az _instrukcióra hangolt_ LLM-ek. - -![Alap LLM chat kiegészítés](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.hu.png) - -### Fogalom: Instrukcióra hangolt LLM-ek - -Egy [instrukcióra hangolt LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) az alapmodellre épül, és finomhangolják példák vagy bemenet/kimenet párok (például többszörös körös "üzenetek") segítségével, amelyek egyértelmű utasításokat tartalmazhatnak – és az AI válasza megpróbálja követni ezeket az utasításokat. - -Ez olyan technikákat használ, mint az emberi visszacsatoláson alapuló megerősítéses tanulás (RLHF), amely képes megtanítani a modellt az _utasítások követésére_ és a _visszajelzésekből való tanulásra_, így olyan válaszokat ad, amelyek jobban megfelelnek a gyakorlati alkalmazásoknak és relevánsabbak a felhasználói célok szempontjából. - -Próbáljuk ki – térj vissza a fenti prompthoz, de most változtasd meg a _rendszerüzenetet_, hogy a következő utasítást adja meg kontextusként: - -> _Foglald össze a megadott tartalmat egy másodikos diák számára. Tartsd az eredményt egy bekezdésben, 3-5 pontban._ - -Látod, hogy az eredmény most már a kívánt célnak és formátumnak megfelelően hangolt? Egy oktató ezt a választ közvetlenül felhasználhatja az adott óra diáiban. - -![Instrukcióra hangolt LLM chat kiegészítés](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.hu.png) - -## Miért van szükség prompttervezésre? - -Most, hogy tudjuk, hogyan dolgozzák fel az LLM-ek a promptokat, beszéljünk arról, _miért_ van szükség prompttervezésre. A válasz abban rejlik, hogy a jelenlegi LLM-ek számos kihívást jelentenek, amelyek megnehezítik a _megbízható és következetes válaszok_ elérését anélkül, hogy erőfeszítést fektetnénk a promptok megalkotásába és optimalizálásába. Például: - -1. **A modell válaszai sztochasztikusak.** Ugyanaz a prompt valószínűleg eltérő válaszokat ad különböző modelleknél vagy modellverzióknál. Sőt, ugyanazzal a modellel is különböző eredményeket kaphatunk különböző időpontokban. _A prompttervezési technikák segíthetnek minimalizálni ezeket a változásokat jobb keretek biztosításával_. - -2. **A modellek képesek kitalált válaszokat adni.** A modelleket _nagy, de véges_ adathalmazokon képezték, ami azt jelenti, hogy hiányzik a tudásuk azokon a fogalmakon kívül, amelyek nem szerepelnek a tanító adatokban. Ennek eredményeként pontatlan, kitalált vagy a tényekkel ellentétes válaszokat adhatnak. _A prompttervezési technikák segítenek azonosítani és csökkenteni az ilyen kitalálásokat, például azzal, hogy az AI-t idézetek vagy érvelés megadására kérjük_. - -3. **A modellek képességei eltérőek.** Az újabb modellek vagy generációk gazdagabb képességekkel rendelkeznek, de egyedi furcsaságokat és költség- illetve komplexitásbeli kompromisszumokat is hoznak. _A prompttervezés segíthet kialakítani olyan bevált gyakorlatokat és munkafolyamatokat, amelyek elvonatkoztatják a különbségeket, és zökkenőmentesen alkalmazkodnak a modell-specifikus követelményekhez nagy léptékben_. - -Nézzük meg ezt a gyakorlatban -# Az 2076-os Marsi Háború tanmenete - -## Bevezetés -Ebben az órában megismerkedünk az 2076-os Marsi Háborúval, amely az emberiség és a marsi kolóniák közötti konfliktus volt. Megvizsgáljuk a háború okait, főbb eseményeit és következményeit. - -## Tanulási célok -- Megérteni az 2076-os Marsi Háború hátterét és kiváltó okait -- Áttekinteni a háború főbb csatáit és stratégiai fordulópontjait -- Elemezni a háború társadalmi és politikai hatásait az emberi civilizációra - -## Óravázlat - -### 1. rész: Háttér és okok (15 perc) -- A marsi kolóniák kialakulása és fejlődése -- Feszültségek az anyaország és a marsi telepesek között -- Gazdasági és politikai tényezők, amelyek a konfliktushoz vezettek - -### 2. rész: A háború főbb eseményei (25 perc) -- Az első összecsapások és a háború kitörése -- Jelentős csaták és hadműveletek -- Technológiai újítások és fegyverek szerepe a konfliktusban - -### 3. rész: Következmények és tanulságok (20 perc) -- A háború vége és békekötés -- A marsi társadalom átalakulása -- Az emberiség jövője a háború után - -## Feladatok -- Csoportos vita: Milyen alternatív megoldások lehettek volna a konfliktus elkerülésére? -- Írásbeli feladat: Fogalmazd meg, hogyan befolyásolta az 2076-os Marsi Háború a mai társadalmat! - -## Források -- Tudományos cikkek és dokumentumok az 2076-os Marsi Háborúról -- Interaktív térképek és idővonalak -- Videóanyagok a háború kulcsfontosságú eseményeiről - -## Megjegyzés -[!IMPORTANT] Az órán használt anyagok és források hitelességét mindig ellenőrizzük, mivel a Marsi Háború története még mindig vitatott témának számít. -Egy webes keresés során kiderült, hogy léteznek kitalált beszámolók (például tévésorozatok vagy könyvek) a marsi háborúkról – de egyetlen sem 2076-ból. A józan ész is azt mondja, hogy 2076 _a jövőben van_, így nem köthető valós eseményhez. - -Mi történik, ha ezt a promptot különböző LLM szolgáltatókkal futtatjuk? - -> **Válasz 1**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.hu.png) - -> **Válasz 2**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.hu.png) - -> **Válasz 3**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.hu.png) - -Ahogy várható volt, minden modell (vagy modellverzió) kissé eltérő válaszokat ad a sztochasztikus viselkedés és a modell képességeinek különbségei miatt. Például az egyik modell egy 8. osztályos közönséget céloz meg, míg a másik egy középiskolás diákot feltételez. De mindhárom modell olyan válaszokat adott, amelyek meggyőzhették a tájékozatlan felhasználót arról, hogy az esemény valós. - -A prompttervezési technikák, mint a _metaprompting_ és a _hőmérséklet beállítása_ bizonyos mértékig csökkenthetik a modell által generált hamis információkat. Az új prompttervezési _architektúrák_ pedig zökkenőmentesen integrálnak új eszközöket és technikákat a promptfolyamba, hogy mérsékeljék vagy csökkentsék ezeket a hatásokat. - -## Esettanulmány: GitHub Copilot - -Zárjuk ezt a részt azzal, hogy megismerjük, hogyan használják a prompttervezést a valós megoldásokban egy esettanulmányon keresztül: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -A GitHub Copilot az „AI páros programozód” – szöveges promptokat alakít kódjavaslatokká, és integrálva van a fejlesztői környezetedbe (például Visual Studio Code), hogy zökkenőmentes felhasználói élményt nyújtson. Az alábbi blog-sorozatban dokumentáltak szerint a legkorábbi verzió az OpenAI Codex modellen alapult – a mérnökök gyorsan felismerték, hogy szükség van a modell finomhangolására és jobb prompttervezési technikák kidolgozására a kódminőség javítása érdekében. Júliusban [bemutattak egy továbbfejlesztett AI modellt, amely túlmutat a Codexen](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst), hogy még gyorsabb javaslatokat adjon. - -Olvasd el a bejegyzéseket sorrendben, hogy kövesd a tanulási folyamatukat. - -- **2023. május** | [A GitHub Copilot egyre jobban érti a kódodat](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **2023. május** | [Belső infók: a GitHub Copilot mögötti LLM-ek működése](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **2023. június** | [Hogyan írjunk jobb promptokat a GitHub Copilot számára](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **2023. július** | [GitHub Copilot túlmutat a Codexen továbbfejlesztett AI modellel](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **2023. július** | [Fejlesztői útmutató a prompttervezéshez és LLM-ekhez](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **2023. szeptember** | [Hogyan építsünk vállalati LLM alkalmazást: tanulságok a GitHub Copilotból](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -Böngészhetsz továbbá a [mérnöki blogjukban](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) további bejegyzések között, mint például [ez a poszt](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst), amely bemutatja, hogyan _alkalmazzák_ ezeket a modelleket és technikákat valós alkalmazások fejlesztésére. - ---- - - - -## Prompt felépítése - -Láttuk, miért fontos a prompttervezés – most nézzük meg, hogyan _épülnek fel_ a promptok, hogy különböző technikákat értékelhessünk a hatékonyabb prompttervezés érdekében. - -### Alap prompt - -Kezdjük az alap prompttal: egy szöveges bemenet, amit a modellnek küldünk, más kontextus nélkül. Íme egy példa – amikor az USA nemzeti himnuszának első néhány szavát elküldjük az OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst) számára, azonnal _kiegészíti_ a választ a következő sorokkal, bemutatva az alapvető előrejelző viselkedést. - -| Prompt (Bemenet) | Kiegészítés (Kimenet) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | Úgy tűnik, az „The Star-Spangled Banner” (Az amerikai nemzeti himnusz) szövegét kezded el. A teljes dalszöveg így hangzik ... | - -### Összetett prompt - -Most adjunk kontextust és utasításokat az alap prompthoz. A [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) lehetővé teszi, hogy összetett promptot építsünk fel _üzenetek_ gyűjteményeként, amelyek: - -- Bemenet/kimenet párokat tartalmaznak, tükrözve a _felhasználó_ bemenetét és az _asszisztens_ válaszát. -- Rendszerüzenetet, amely beállítja az asszisztens viselkedésének vagy személyiségének kontextusát. - -A kérés most az alábbi formában van, ahol a _tokenizáció_ hatékonyan ragadja meg a kontextusból és a beszélgetésből származó releváns információkat. A rendszer kontextusának megváltoztatása ugyanolyan hatással lehet a kiegészítések minőségére, mint a felhasználói bemenetek. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Utasításos prompt - -A fenti példákban a felhasználói prompt egyszerű szöveges kérdés volt, amit információkérésként lehetett értelmezni. Az _utasításos_ promptokkal ezt a szöveget arra használhatjuk, hogy részletesebben meghatározzunk egy feladatot, jobb iránymutatást adva az AI-nak. Íme egy példa: - -| Prompt (Bemenet) | Kiegészítés (Kimenet) | Utasítás típusa | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Írj egy leírást a polgárháborúról | _egyszerű bekezdést adott vissza_ | Egyszerű | -| Írj egy leírást a polgárháborúról. Sorold fel a fontos dátumokat és eseményeket, és írd le jelentőségüket | _bekezdést adott vissza, majd egy listát a fontos események dátumaival és leírásaival_ | Összetett | -| Írj egy leírást a polgárháborúról 1 bekezdésben. Adj 3 felsorolást a fontos dátumokról és jelentőségükről. Adj még 3 felsorolást a fontos történelmi személyekről és hozzájárulásaikról. Add vissza az eredményt JSON fájlként | _szövegdobozban részletesebb információkat ad vissza, JSON formátumban, amit kimásolhatsz és fájlba menthetsz, majd ellenőrizhetsz_ | Összetett. Formázott. | - -## Elsődleges tartalom - -A fenti példákban a prompt még elég nyitott volt, lehetővé téve, hogy az LLM maga döntsön arról, melyik előzetesen betanított adatbázis-részlet releváns. Az _elsődleges tartalom_ tervezési mintával a bemeneti szöveget két részre osztjuk: - -- egy utasításra (művelet) -- releváns tartalomra (ami befolyásolja a műveletet) - -Íme egy példa, ahol az utasítás az, hogy „fogalmazd meg két mondatban”. - -| Prompt (Bemenet) | Kiegészítés (Kimenet) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| A Jupiter a Nap ötödik bolygója és a Naprendszer legnagyobb bolygója. Egy gázóriás, amelynek tömege a Nap tömegének ezredrésze, de a Naprendszer összes többi bolygójának tömegének kétszer és félszerese. A Jupiter az egyik legfényesebb égitest, amely szabad szemmel látható az éjszakai égbolton, és az ókori civilizációk már az írott történelem előtt ismerték. A római Jupiter istenről kapta a nevét.[19] A Földről nézve a Jupiter elég fényes lehet ahhoz, hogy visszavert fénye látható árnyékokat vetítsen,[20] és átlagosan az éjszakai égbolt harmadik legfényesebb természetes objektuma a Hold és a Vénusz után.
**Fogalmazd meg ezt 2 rövid mondatban** | A Jupiter, a Nap ötödik bolygója, a Naprendszer legnagyobb bolygója, és az egyik legfényesebb égitest az éjszakai égbolton. A római Jupiter istenről elnevezett gázóriás tömege kétszer és félszerese az összes többi bolygó tömegének együttvéve. | - -Az elsődleges tartalmi szegmens különböző módokon használható a hatékonyabb utasítások érdekében: - -- **Példák** – ahelyett, hogy explicit utasítást adnánk a modellnek, mutassunk neki példákat, és hagyjuk, hogy felismerje a mintát. -- **Jelek** – az utasítást követően adjunk egy „jelet”, ami előkészíti a kiegészítést, és a modellt relevánsabb válaszok felé tereli. -- **Sablonok** – ismételhető „receptek” promptokhoz, helyőrzőkkel (változókkal), amelyeket adott adatokkal testre szabhatunk specifikus esetekhez. - -Nézzük meg ezeket a gyakorlatban. - -### Példák használata - -Ez egy olyan megközelítés, ahol az elsődleges tartalommal „etetjük” a modellt néhány példával a kívánt kimenetre egy adott utasításhoz, és hagyjuk, hogy felismerje a mintát. A példák számától függően beszélhetünk zero-shot, one-shot, few-shot promptolásról stb. - -A prompt most három részből áll: - -- Egy feladatleírásból -- Néhány példából a kívánt kimenetre -- Egy új példa kezdetéből (ami implicit feladatleírássá válik) - -| Tanulási típus | Prompt (Bemenet) | Kiegészítés (Kimenet) | -| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| Zero-shot | "The Sun is Shining". Fordítsd le spanyolra | "El Sol está brillando". | -| One-shot | "The Sun is Shining" => ""El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| Few-shot | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketball | -| | | | - -Figyeld meg, hogy a zero-shot promptolásban explicit utasítást kellett adnunk („Fordítsd le spanyolra”), míg az one-shot példában ez már kikövetkeztethető volt. A few-shot példa pedig azt mutatja, hogy több példa hozzáadásával a modellek pontosabb következtetéseket tudnak levonni anélkül, hogy további utasításokat adnánk. - -### Prompt jelek - -Egy másik technika az elsődleges tartalom használatára, ha _jeleket_ adunk példák helyett. Ebben az esetben a modellt egy kis „löketet” kap, egy olyan részlettel, ami tükrözi a kívánt válaszformátumot. A modell ezt a jelet követve folytatja a választ. - -| Jelzések száma | Prompt (Bemenet) | Kiegészítés (Kimenet) | -| :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | A Jupiter a Nap ötödik bolygója és a Naprendszer legnagyobb bolygója. Egy gázóriás, amelynek tömege a Nap tömegének ezredrésze, de a Naprendszer összes többi bolygójának tömegének kétszer és félszerese. A Jupiter az egyik legfényesebb égitest, amely szabad szemmel látható az éjszakai égbolton, és az ókori civilizációk már az írott történelem előtt ismerték. - -**Összefoglalás** | A Jupiter a Naprendszer legnagyobb bolygója, és a Naptól számítva az ötödik. Gázóriás, amelynek tömege a Nap tömegének ezredrésze, de mégis nehezebb, mint az összes többi bolygó együttvéve. Az ókori civilizációk régóta ismerik a Jupitert, és könnyen látható az éjszakai égbolton. | -| 1 | A Jupiter a Naprendszer ötödik bolygója a Naptól, és a legnagyobb. Gázóriás, amelynek tömege a Nap tömegének ezredrésze, de az összes többi bolygó tömegének két és félszerese. A Jupiter az egyik legfényesebb égi objektum, amely szabad szemmel látható, és az ókori civilizációk már az írott történelem előtt ismerték.
**Összefoglalás**
Amit megtanultunk, hogy a Jupiter | a Naprendszer ötödik bolygója a Naptól, és a legnagyobb. Gázóriás, amelynek tömege a Nap tömegének ezredrésze, de az összes többi bolygó tömegének két és félszerese. Könnyen látható szabad szemmel, és már az ókor óta ismert. | -| 2 | A Jupiter a Naprendszer ötödik bolygója a Naptól, és a legnagyobb. Gázóriás, amelynek tömege a Nap tömegének ezredrésze, de az összes többi bolygó tömegének két és félszerese. A Jupiter az egyik legfényesebb égi objektum, amely szabad szemmel látható, és az ókori civilizációk már az írott történelem előtt ismerték.
**Összefoglalás**
A három legfontosabb tény, amit megtanultunk: | 1. A Jupiter a Naprendszer ötödik bolygója a Naptól, és a legnagyobb.
2. Gázóriás, amelynek tömege a Nap tömegének ezredrésze...
3. A Jupiter már az ókor óta látható szabad szemmel ... | -| | | | - -### Prompt sablonok - -A prompt sablon egy _előre meghatározott recept egy prompt számára_, amelyet el lehet tárolni és szükség szerint újra felhasználni, hogy nagyobb léptékben következetesebb felhasználói élményeket biztosítsunk. Egyszerű formájában ez csupán egy gyűjteménye a prompt példáknak, mint például [ez az OpenAI példája](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst), amely tartalmazza az interaktív prompt elemeket (felhasználói és rendszerüzenetek) és az API által vezérelt kérés formátumát – a könnyebb újrafelhasználás érdekében. - -Bonyolultabb formában, mint például [ez a LangChain példája](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst), tartalmaz _helyőrzőket_, amelyeket különböző forrásokból (felhasználói bemenet, rendszerkörnyezet, külső adatforrások stb.) származó adatokkal lehet helyettesíteni, így dinamikusan generálható a prompt. Ez lehetővé teszi, hogy egy újrafelhasználható prompt könyvtárat hozzunk létre, amely **programozottan** képes következetes felhasználói élményeket biztosítani nagy léptékben. - -Végül a sablonok valódi értéke abban rejlik, hogy képesek vagyunk _prompt könyvtárakat_ létrehozni és publikálni vertikális alkalmazási területekre – ahol a prompt sablon már _optimalizált_ az adott alkalmazási kontextus vagy példák alapján, így a válaszok relevánsabbak és pontosabbak lesznek a célzott felhasználói közönség számára. A [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) tároló kiváló példa erre a megközelítésre, amely oktatási területre fókuszáló prompt könyvtárat gyűjt össze, hangsúlyt fektetve olyan kulcscélokra, mint az óratervezés, tantervfejlesztés, diákok oktatása stb. - -## Támogató tartalom - -Ha a prompt felépítését úgy tekintjük, hogy van egy utasítás (feladat) és egy cél (elsődleges tartalom), akkor a _másodlagos tartalom_ olyan, mint egy további kontextus, amelyet azért adunk meg, hogy valamilyen módon **befolyásoljuk a kimenetet**. Ez lehet hangolási paraméter, formázási utasítás, témakörök taxonómiája stb., amelyek segíthetnek a modellnek, hogy a választ a kívánt felhasználói célokhoz vagy elvárásokhoz igazítsa. - -Például: Adott egy kurzuskatalógus kiterjedt metaadatokkal (név, leírás, szint, metaadat címkék, oktató stb.) az összes elérhető kurzusról a tantervben: - -- meghatározhatunk egy utasítást, hogy "foglalja össze a 2023 őszi kurzuskatalógust" -- az elsődleges tartalomként néhány példát adhatunk a kívánt kimenetre -- a másodlagos tartalomként megjelölhetjük az 5 legfontosabb "címkét" - -Most a modell a példák által mutatott formátumban adhat összefoglalót – de ha egy eredmény több címkét is tartalmaz, akkor előnyben részesítheti a másodlagos tartalomban megjelölt 5 címkét. - ---- - - - -## Promptolási legjobb gyakorlatok - -Most, hogy tudjuk, hogyan lehet promptokat _felépíteni_, elkezdhetünk gondolkodni arról, hogyan _tervezzük_ meg őket a legjobb gyakorlatok tükrében. Ezt két részre bonthatjuk – a megfelelő _gondolkodásmód_ kialakítására és a megfelelő _technikák_ alkalmazására. - -### Prompt tervezési gondolkodásmód - -A prompt tervezés egy próbálkozásos folyamat, ezért tartsd szem előtt a három fő irányelvet: - -1. **A domén ismerete számít.** A válasz pontossága és relevanciája attól függ, hogy az adott alkalmazás vagy felhasználó milyen _szakterületen_ működik. Használd az intuíciódat és a domén szakértelmedet, hogy tovább _testreszabhasd a technikákat_. Például definiálj _domén-specifikus személyiségeket_ a rendszer promptokban, vagy használj _domén-specifikus sablonokat_ a felhasználói promptokban. Adj meg másodlagos tartalmat, amely tükrözi a domén-specifikus kontextust, vagy használj _domén-specifikus jelzéseket és példákat_, hogy a modellt a megszokott használati minták felé tereld. - -2. **A modell ismerete számít.** Tudjuk, hogy a modellek természetüknél fogva sztochasztikusak. De a modell implementációk eltérhetnek a használt tanító adathalmaz (előzetes tudás), a képességek (pl. API vagy SDK) és az optimalizált tartalomtípus (pl. kód, képek, szöveg) tekintetében is. Ismerd meg a használt modell erősségeit és korlátait, és használd ezt a tudást a _feladatok priorizálására_ vagy _testreszabott sablonok_ készítésére, amelyek a modell képességeihez igazodnak. - -3. **Ismétlés és validálás számít.** A modellek gyorsan fejlődnek, és a prompt tervezési technikák is. Domén szakértőként lehet, hogy van más kontextusod vagy kritériumod a _saját_ alkalmazásodra, amely nem feltétlenül érvényes a szélesebb közösségre. Használj prompt tervezési eszközöket és technikákat a prompt felépítésének "gyors elindításához", majd ismételd és validáld az eredményeket a saját intuíciód és szakértelmed alapján. Jegyezd fel a tapasztalataidat, és hozz létre egy **tudásbázist** (pl. prompt könyvtárakat), amelyeket mások is használhatnak új alapként a gyorsabb iterációkhoz. - -## Legjobb gyakorlatok - -Most nézzük meg a leggyakoribb legjobb gyakorlatokat, amelyeket az [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) és az [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst) szakértői ajánlanak. - -| Mi | Miért | -| :------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Értékeld a legújabb modelleket. | Az új modellgenerációk valószínűleg fejlettebb funkciókat és jobb minőséget kínálnak – de magasabb költségekkel is járhatnak. Értékeld őket hatásuk alapján, majd hozd meg a migrációs döntéseket. | -| Válaszd szét az utasításokat és a kontextust | Ellenőrizd, hogy a modell vagy szolgáltató definiál-e _elválasztókat_, amelyek egyértelműbben megkülönböztetik az utasításokat, az elsődleges és másodlagos tartalmat. Ez segíthet a modelleknek pontosabban súlyozni a tokeneket. | -| Legyél specifikus és világos | Adj több részletet a kívánt kontextusról, eredményről, hosszúságról, formátumról, stílusról stb. Ez javítja a válaszok minőségét és következetességét. Rögzítsd a recepteket újrafelhasználható sablonokban. | -| Legyél leíró, használj példákat | A modellek jobban reagálhatnak a "mutasd és mondd" megközelítésre. Kezdd egy `zero-shot` módszerrel, ahol csak utasítást adsz (példák nélkül), majd finomítsd `few-shot` módszerrel, néhány példa megadásával a kívánt kimenetre. Használj analógiákat. | -| Használj jelzéseket a befejezés indításához | Tereld a modellt a kívánt eredmény felé azzal, hogy adsz neki néhány vezető szót vagy kifejezést, amelyeket a válasz kezdőpontjaként használhat. | -| Ismétlés | Néha meg kell ismételned magad a modellnek. Adj utasításokat a fő tartalom előtt és után, használj utasítást és jelzést, stb. Ismételj és validálj, hogy megtudd, mi működik. | -| A sorrend számít | Az információk bemutatásának sorrendje befolyásolhatja a kimenetet, még a tanulási példák esetén is, a frissességi torzítás miatt. Próbálj ki különböző lehetőségeket, hogy megtaláld a legjobbat. | -| Adj a modellnek "kimenekülési lehetőséget" | Adj a modellnek egy _tartalék_ befejezést, amelyet akkor adhat, ha valamilyen okból nem tudja teljesíteni a feladatot. Ez csökkentheti a hamis vagy kitalált válaszok esélyét. | -| | | - -Mint minden legjobb gyakorlat esetén, ne feledd, hogy _a te tapasztalatod eltérhet_ a modelltől, a feladattól és a doméntől függően. Használd ezeket kiindulópontként, és ismételj, hogy megtaláld, mi működik a legjobban számodra. Folyamatosan értékeld újra a prompt tervezési folyamatodat, ahogy új modellek és eszközök válnak elérhetővé, a folyamat skálázhatóságára és a válaszok minőségére fókuszálva. - - - -## Feladat - -Gratulálunk! Eljutottál az óra végére! Itt az ideje, hogy néhány fogalmat és technikát valós példákon tesztelj! - -A feladatunkhoz egy Jupyter Notebookot fogunk használni, amelyben interaktívan végezheted el a gyakorlatokat. A Notebookot saját Markdown és Kód cellákkal is bővítheted, hogy saját ötleteidet és technikáidat fedezd fel. - -### Kezdéshez, forkold a repót, majd - -- (Ajánlott) Indítsd el a GitHub Codespaces-t -- (Alternatív) Klónozd a repót a helyi gépedre, és használd Docker Desktop segítségével -- (Alternatív) Nyisd meg a Notebookot a kedvenc futtatókörnyezetedben. - -### Ezután állítsd be a környezeti változókat - -- Másold a repó gyökerében lévő `.env.copy` fájlt `.env` néven, és töltsd ki az `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` és `AZURE_OPENAI_DEPLOYMENT` értékeket. Ezután térj vissza a [Learning Sandbox szekcióhoz](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals), hogy megtudd, hogyan tovább. - -### Ezután nyisd meg a Jupyter Notebookot - -- Válaszd ki a futtatókörnyezet kernelét. Ha az 1. vagy 2. opciót használod, egyszerűen válaszd ki az alapértelmezett Python 3.10.x kernelt, amelyet a fejlesztői konténer biztosít. - -Készen állsz a gyakorlatok futtatására. Ne feledd, itt nincsenek _helyes vagy helytelen_ válaszok – csak a lehetőségek kipróbálása próbálkozás és hiba útján, valamint az intuíció építése arra, hogy mi működik egy adott modell és alkalmazási terület esetén. - -_Ezért ebben az órában nincsenek Kód Megoldás szegmensek. Ehelyett a Notebookban lesznek "Az én megoldásom:" című Markdown cellák, amelyek egy példakimenetet mutatnak referencia gyanánt._ - - - -## Tudásellenőrzés - -Melyik az alábbiak közül egy jó prompt, amely néhány ésszerű legjobb gyakorlatot követ? - -1. Mutass egy képet egy piros autóról -2. Mutass egy képet egy piros Volvo XC90 típusú autóról, amely egy szikla mellett parkol, miközben a nap lemegy -3. Mutass egy képet egy piros Volvo XC90 típusú autóról - -Válasz: 2, ez a legjobb prompt, mert részletezi, hogy "mit" kérünk, és konkrétumokat is megad (nem csak bármilyen autót, hanem egy adott márkát és modellt), valamint leírja a környezetet is. A 3 a következő legjobb, mert szintén sok leírást tartalmaz. - -## 🚀 Kihívás - -Próbáld ki a "jelzés" technikát a következő prompttal: Fejezd be a mondatot: "Mutass egy képet egy piros Volvo típusú autór - -**Jogi nyilatkozat**: -Ez a dokumentum az AI fordító szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével készült. Bár a pontosságra törekszünk, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az anyanyelvén tekintendő hiteles forrásnak. Kritikus információk esetén professzionális emberi fordítást javaslunk. Nem vállalunk felelősséget a fordítás használatából eredő félreértésekért vagy téves értelmezésekért. \ No newline at end of file + + + + + + + diff --git a/translations/hu/09-building-image-applications/README.md b/translations/hu/09-building-image-applications/README.md index 11e83a7d8..047e2bd54 100644 --- a/translations/hu/09-building-image-applications/README.md +++ b/translations/hu/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# Képgeneráló alkalmazások fejlesztése - -[![Képgeneráló alkalmazások fejlesztése](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.hu.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -A nagy nyelvi modellek (LLM-ek) nem csak szöveg generálására képesek. Lehetőség van arra is, hogy szöveges leírásokból képeket hozzunk létre. A képek, mint egy új modalitás, számos területen nagyon hasznosak lehetnek, például az orvostechnológiában, építészetben, turizmusban, játékfejlesztésben és még sok másban. Ebben a fejezetben a két legnépszerűbb képgeneráló modellt, a DALL-E-t és a Midjourney-t fogjuk megvizsgálni. - -## Bevezetés - -Ebben a leckében a következőkről lesz szó: - -- A képgenerálásról és annak hasznosságáról. -- A DALL-E-ről és a Midjourney-ről, hogy mik ezek és hogyan működnek. -- Hogyan építhetsz képgeneráló alkalmazást. - -## Tanulási célok - -A lecke elvégzése után képes leszel: - -- Képgeneráló alkalmazást fejleszteni. -- Meta promptok segítségével meghatározni az alkalmazásod határait. -- Dolgozni a DALL-E-vel és a Midjourney-vel. - -## Miért érdemes képgeneráló alkalmazást fejleszteni? - -A képgeneráló alkalmazások remek lehetőséget kínálnak a generatív mesterséges intelligencia képességeinek felfedezésére. Használhatók például: - -- **Kép szerkesztésére és szintézisére**. Különféle felhasználási esetekhez generálhatsz képeket, például képszerkesztéshez vagy képszintézishez. - -- **Számos iparágban alkalmazhatók**. Képek generálására használhatók többek között az orvostechnológia, turizmus, játékfejlesztés és más területeken. - -## Forgatókönyv: Edu4All - -A lecke során tovább dolgozunk az Edu4All nevű startupunkkal. A diákok képeket készítenek a feladataikhoz; hogy pontosan milyen képeket, az a diákokon múlik, lehetnek például illusztrációk saját meséjükhöz, új karakterek a történetükhöz, vagy segíthetnek elképzeléseik és koncepcióik vizualizálásában. - -Például, ha az Edu4All diákjai az osztályban emlékművekkel foglalkoznak, ilyen képeket generálhatnak: - -![Edu4All startup, osztály emlékművekkel, Eiffel-torony](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.hu.png) - -egy ilyen prompttal: - -> "Kutya az Eiffel-torony mellett a kora reggeli napsütésben" - -## Mi az a DALL-E és a Midjourney? - -A [DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) és a [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) a legnépszerűbb képgeneráló modellek közé tartoznak, amelyek promptok segítségével képeket hoznak létre. - -### DALL-E - -Kezdjük a DALL-E-vel, amely egy generatív mesterséges intelligencia modell, és szöveges leírásokból képeket generál. - -> [A DALL-E két modell, a CLIP és a diffúz figyelem kombinációja](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP** egy olyan modell, amely képekből és szövegekből numerikus reprezentációkat, ún. beágyazásokat (embeddingeket) generál. - -- **Diffúz figyelem** egy olyan modell, amely a beágyazásokból képeket generál. A DALL-E-t képek és szövegek adatbázisán tanították, és képes szöveges leírások alapján képeket létrehozni. Például képes képet generálni egy kalapos macskáról vagy egy mohawk frizurás kutyáról. - -### Midjourney - -A Midjourney hasonlóan működik, mint a DALL-E, szöveges promptokból generál képeket. A Midjourney-vel is létrehozhatsz képeket olyan promptok alapján, mint például „kalapos macska” vagy „mohawk frizurás kutya”. - -![Midjourney által generált kép, mechanikus galamb](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Kép forrása: Wikipedia, Midjourney által generált kép_ - -## Hogyan működik a DALL-E és a Midjourney? - -Először a [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). A DALL-E egy generatív mesterséges intelligencia modell, amely a transformer architektúrán alapul, és egy _autoregresszív transformer_. - -Az _autoregresszív transformer_ meghatározza, hogyan generál a modell képeket szöveges leírásokból: egyszerre egy pixelt hoz létre, majd a már generált pixelek alapján generálja a következőt. Több rétegen halad át egy neurális hálózatban, amíg a kép elkészül. - -Ezzel a folyamattal a DALL-E képes irányítani a kép attribútumait, tárgyait, jellemzőit és még sok mást. A DALL-E 2 és 3 verziók ennél még nagyobb kontrollt biztosítanak a generált kép felett. - -## Első képgeneráló alkalmazásod elkészítése - -Mire van szükség egy képgeneráló alkalmazás elkészítéséhez? A következő könyvtárakra: - -- **python-dotenv**, erősen ajánlott ennek a könyvtárnak a használata, hogy a titkaidat egy _.env_ fájlban tárold, távol a kódtól. -- **openai**, ezzel a könyvtárral kommunikálsz az OpenAI API-val. -- **pillow**, képek kezeléséhez Pythonban. -- **requests**, HTTP kérésekhez. - -1. Hozz létre egy _.env_ fájlt a következő tartalommal: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Ezt az információt az Azure Portálon találod meg az erőforrásod „Kulcsok és végpont” szekciójában. - -1. Gyűjtsd össze a fenti könyvtárakat egy _requirements.txt_ fájlba így: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. Ezután hozd létre a virtuális környezetet és telepítsd a könyvtárakat: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Windows alatt a következő parancsokkal hozhatod létre és aktiválhatod a virtuális környezetet: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. Add hozzá a következő kódot egy _app.py_ nevű fájlba: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Magyarázzuk meg ezt a kódot: - -- Először importáljuk a szükséges könyvtárakat, beleértve az OpenAI könyvtárat, a dotenv-et, a requests-et és a Pillow-t. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Ezután betöltjük a környezeti változókat a _.env_ fájlból. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- Majd beállítjuk az OpenAI API végpontját, kulcsát, verzióját és típusát. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- Ezután generáljuk a képet: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - A fenti kód egy JSON objektummal válaszol, amely tartalmazza a generált kép URL-jét. Ezt az URL-t használhatjuk a kép letöltésére és fájlba mentésére. - -- Végül megnyitjuk a képet és az alapértelmezett képnézegetővel megjelenítjük: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Részletesebben a kép generálásáról - -Nézzük meg részletesebben a képgeneráló kódot: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt**: a szöveges utasítás, amely alapján a kép generálódik. Ebben az esetben a prompt: „Nyúl lovon, nyalókát tartva, ködös réten, ahol nárciszok nőnek”. -- **size**: a generált kép mérete. Itt 1024x1024 pixeles képet generálunk. -- **n**: a generált képek száma. Ebben az esetben két képet generálunk. -- **temperature**: egy paraméter, amely a generált kimenet véletlenszerűségét szabályozza. Az értéke 0 és 1 között van, ahol 0 determinisztikus (ugyanazt az eredményt adja), 1 pedig teljesen véletlenszerű. Az alapértelmezett érték 0,7. - -A képekkel még sok más dolgot is megtehetsz, amiről a következő szakaszban lesz szó. - -## A képgenerálás további lehetőségei - -Eddig láttad, hogyan tudtunk néhány sor Python kóddal képet generálni. De ennél többre is képes vagy. - -Továbbá a következőket is megteheted: - -- **Szerkesztések végrehajtása**. Ha megadsz egy meglévő képet, egy maszkkal és egy prompttal, módosíthatod a képet. Például hozzáadhatsz valamit a kép egy részéhez. Képzeld el a nyulas képet, hozzáadhatsz a nyúlhoz egy kalapot. Ehhez meg kell adnod a képet, egy maszkot (ami megjelöli a módosítandó területet) és egy szöveges utasítást, hogy mit kell csinálni. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - Az alap kép csak a nyulat tartalmazná, de a végső képen már kalap is lesz a nyúlon. - -- **Variációk létrehozása**. Az ötlet az, hogy egy meglévő képből kérsz variációkat. Ehhez megadsz egy képet és egy szöveges promptot, majd a következő kódot használod: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Megjegyzés: ez csak az OpenAI-nál támogatott. - -## Temperature (hőmérséklet) - -A temperature egy paraméter, amely a generatív modell kimenetének véletlenszerűségét szabályozza. Az értéke 0 és 1 között van, ahol 0 determinisztikus, 1 pedig teljesen véletlenszerű. Az alapértelmezett érték 0,7. - -Nézzünk egy példát a temperature működésére, futtassuk le kétszer ezt a promptot: - -> Prompt: "Nyúl lovon, nyalókát tartva, ködös réten, ahol nárciszok nőnek" - -![Nyúl lovon, nyalókát tartva, 1. verzió](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.hu.png) - -Most futtassuk le ugyanazt a promptot még egyszer, hogy lássuk, nem kapunk ugyanazt a képet kétszer: - -![Nyúl lovon generált kép](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.hu.png) - -Ahogy látható, a képek hasonlóak, de nem azonosak. Próbáljuk meg a temperature értékét 0,1-re állítani, és nézzük meg, mi történik: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### A temperature megváltoztatása - -Próbáljuk meg a választ determinisztikusabbá tenni. A két generált képből látható, hogy az első képen nyúl van, a másodikon ló, tehát a képek jelentősen eltérnek. - -Ezért módosítsuk a kódot, és állítsuk a temperature értékét 0-ra, így: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Ha most lefuttatod ezt a kódot, a következő két képet kapod: - -- ![Temperature 0, 1. verzió](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.hu.png) -- ![Temperature 0, 2. verzió](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.hu.png) - -Itt jól látható, hogy a képek sokkal jobban hasonlítanak egymásra. - -## Hogyan határozd meg az alkalmazásod határait metapromptokkal? - -A demónkkal már képesek vagyunk képeket generálni az ügyfeleinknek. Ugyanakkor szükség van arra, hogy bizonyos határokat szabjunk az alkalmazásnak. - -Például nem szeretnénk olyan képeket generálni, amelyek nem munkahelyi környezetbe valók, vagy nem megfelelőek gyerekek számára. - -Ezt _metapromptokkal_ érhetjük el. A metapromptok olyan szöveges utasítások, amelyekkel szabályozhatjuk a generatív modell kimenetét. Például metapromptokkal biztosíthatjuk, hogy a generált képek munkahelybarátok legyenek, vagy gyerekek számára megfelelőek. - -### Hogyan működik? - -Hogyan működnek a metapromptok? - -A metapromptok olyan szöveges utasítások, amelyek a generatív modell kimenetének szabályozására szolgálnak. Ezek a prompt előtt helyezkednek el, és beágyazódnak az alkalmazásokba, hogy kontrollálják a modell kimenetét. Egyetlen szöveges promptként kezelik a metaprompt és a felhasználói prompt együttesét. - -Egy példa metaprompt lehet a következő: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Most nézzük meg, hogyan használhatjuk a metapromptokat a demónkban. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -A fenti promptból látható, hogy az összes generált kép figyelembe veszi a metapromptot. - -## Feladat – engedélyezzük a diákoknak a képgenerálást - -Az elején bemutattuk az Edu4All-t. Most itt az ideje, hogy a diákok is képeket generálhassanak a feladataikhoz. - -A diákok képeket készítenek az emlékművekről szóló feladataikhoz, hogy pontosan milyen emlékműveket, az a diákokon múlik. Arra kérjük őket, hogy kreativitásukat használva helyezzék ezeket az emlékműveket különböző kontextusokba. - -## Megoldás - -Íme egy lehetséges megoldás: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Szép munka! Folytasd a tanulást - -A lecke elvégzése után nézd meg a [Generatív AI tanulási gyűjteményünket](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst), hogy tovább fejleszd generatív AI ismereteidet! - -Lépj tovább a 10. leckére, ahol azt nézzük meg, hogyan [építhetsz AI alkalmazásokat low-code eszközökkel](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst). - -**Jogi nyilatkozat**: -Ez a dokumentum az AI fordító szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével készült. Bár a pontosságra törekszünk, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az anyanyelvén tekintendő hiteles forrásnak. Fontos információk esetén szakmai, emberi fordítást javaslunk. Nem vállalunk felelősséget a fordítás használatából eredő félreértésekért vagy téves értelmezésekért. \ No newline at end of file + + + + diff --git a/translations/hu/12-designing-ux-for-ai-applications/README.md b/translations/hu/12-designing-ux-for-ai-applications/README.md index f192f3b1a..ef3bd82e9 100644 --- a/translations/hu/12-designing-ux-for-ai-applications/README.md +++ b/translations/hu/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# UX tervezése AI alkalmazásokhoz - -[![Designing UX for AI Applications](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.hu.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Kattints a fenti képre a lecke videójának megtekintéséhez)_ - -A felhasználói élmény nagyon fontos szempont az alkalmazások fejlesztésénél. A felhasználóknak hatékonyan kell tudniuk használni az alkalmazásodat a feladatok elvégzéséhez. A hatékonyság fontos, de az alkalmazásokat úgy is kell tervezni, hogy mindenki számára használhatóak legyenek, vagyis _akadálymentesek_. Ez a fejezet erre a területre fókuszál, hogy végül olyan alkalmazást tervezz, amit az emberek szívesen és könnyen használnak. - -## Bevezetés - -A felhasználói élmény azt jelenti, hogy a felhasználó hogyan lép kapcsolatba és használ egy adott terméket vagy szolgáltatást, legyen az rendszer, eszköz vagy dizájn. AI alkalmazások fejlesztésekor a fejlesztők nemcsak arra figyelnek, hogy a felhasználói élmény hatékony legyen, hanem arra is, hogy etikus legyen. Ebben a leckében azt tárgyaljuk, hogyan lehet olyan mesterséges intelligencia (AI) alkalmazásokat építeni, amelyek megfelelnek a felhasználók igényeinek. - -A lecke a következő területeket fogja érinteni: - -- Bevezetés a felhasználói élménybe és a felhasználói igények megértése -- AI alkalmazások tervezése bizalom és átláthatóság jegyében -- AI alkalmazások tervezése együttműködésre és visszacsatolásra - -## Tanulási célok - -A lecke elvégzése után képes leszel: - -- Megérteni, hogyan lehet olyan AI alkalmazásokat építeni, amelyek megfelelnek a felhasználói igényeknek. -- Olyan AI alkalmazásokat tervezni, amelyek elősegítik a bizalmat és az együttműködést. - -### Előfeltétel - -Szánj időt, és olvass többet a [felhasználói élményről és a design gondolkodásról.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Bevezetés a felhasználói élménybe és a felhasználói igények megértése - -A képzeletbeli oktatási startupunkban két fő felhasználó van: tanárok és diákok. Mindkét felhasználónak egyedi igényei vannak. A felhasználóközpontú tervezés a felhasználót helyezi előtérbe, biztosítva, hogy a termékek relevánsak és hasznosak legyenek azok számára, akiknek szánják őket. - -Az alkalmazásnak **hasznosnak, megbízhatónak, akadálymentesnek és kellemesnek** kell lennie, hogy jó felhasználói élményt nyújtson. - -### Használhatóság - -Hasznosnak lenni azt jelenti, hogy az alkalmazás olyan funkciókkal rendelkezik, amelyek megfelelnek a rendeltetésének, például az értékelési folyamat automatizálása vagy ismétlő kártyák generálása a tanuláshoz. Egy olyan alkalmazás, amely automatizálja az értékelést, pontosan és hatékonyan kell, hogy pontozza a diákok munkáját előre meghatározott kritériumok alapján. Hasonlóképpen, egy ismétlő kártyákat generáló alkalmazásnak releváns és változatos kérdéseket kell tudnia létrehozni az adatai alapján. - -### Megbízhatóság - -Megbízhatónak lenni azt jelenti, hogy az alkalmazás következetesen és hibamentesen végzi el a feladatát. Azonban az AI, akárcsak az emberek, nem tökéletes, és hibák előfordulhatnak. Az alkalmazások hibákkal vagy váratlan helyzetekkel találkozhatnak, amelyek emberi beavatkozást vagy javítást igényelnek. Hogyan kezeled a hibákat? A lecke utolsó részében bemutatjuk, hogyan terveznek AI rendszereket és alkalmazásokat együttműködésre és visszacsatolásra. - -### Akadálymentesség - -Akadálymentesnek lenni azt jelenti, hogy a felhasználói élményt kiterjesztjük különböző képességű felhasználókra, beleértve a fogyatékkal élőket is, biztosítva, hogy senki ne maradjon ki. Az akadálymentességi irányelvek és elvek követésével az AI megoldások befogadóbbá, használhatóbbá és minden felhasználó számára előnyösebbé válnak. - -### Kellemes - -Kellemesnek lenni azt jelenti, hogy az alkalmazás élvezetes a használata. Egy vonzó felhasználói élmény pozitív hatással lehet a felhasználóra, ösztönözve őt az alkalmazás újrahasználatára, ami növeli az üzleti bevételt. - -![image illustrating UX considerations in AI](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.hu.png) - -Nem minden kihívás oldható meg AI-val. Az AI arra szolgál, hogy kiegészítse a felhasználói élményt, legyen szó manuális feladatok automatizálásáról vagy a felhasználói élmények személyre szabásáról. - -## AI alkalmazások tervezése bizalom és átláthatóság jegyében - -A bizalom kiépítése kulcsfontosságú AI alkalmazások tervezésekor. A bizalom biztosítja, hogy a felhasználó bízik abban, hogy az alkalmazás elvégzi a feladatot, következetesen szállítja az eredményeket, és az eredmények megfelelnek a felhasználó igényeinek. Ebben a területben kockázatot jelent a bizalmatlanság és a túlzott bizalom. A bizalmatlanság akkor fordul elő, amikor a felhasználó kevés vagy semmilyen bizalmat nem táplál az AI rendszer iránt, ami az alkalmazás elutasításához vezet. A túlzott bizalom pedig akkor, amikor a felhasználó túlbecsüli az AI rendszer képességeit, és túlzottan megbízik benne. Például egy automatikus értékelő rendszer esetén a túlzott bizalom miatt a tanár nem ellenőrzi át a dolgozatokat, hogy megbizonyosodjon az értékelő rendszer helyességéről. Ez igazságtalan vagy pontatlan jegyekhez, illetve elmaradt visszajelzési és fejlesztési lehetőségekhez vezethet. - -Két módja annak, hogy a bizalom a tervezés középpontjába kerüljön: az érthetőség és az irányítás. - -### Érthetőség - -Amikor az AI döntések meghozatalában segít, például a tudás átadásában a jövő generációinak, fontos, hogy a tanárok és a szülők megértsék, hogyan születnek az AI döntések. Ez az érthetőség – annak megértése, hogyan hoznak döntéseket az AI alkalmazások. Az érthetőség tervezése magában foglalja annak bemutatását, hogy az AI alkalmazás mit tud csinálni példákkal illusztrálva. Például ahelyett, hogy az alkalmazás azt mondaná: „Kezdj el dolgozni az AI tanárral”, inkább így fogalmazhat: „Foglalja össze jegyzeteit az egyszerűbb ismétléshez AI segítségével.” - -![an app landing page with clear illustration of explainability in AI applications](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.hu.png) - -Egy másik példa arra, hogyan használja az AI a felhasználói és személyes adatokat. Például egy diák személyiségű felhasználónak lehetnek korlátai a személyisége alapján. Az AI nem feltétlenül árulhatja el a válaszokat, de segíthet abban, hogy a felhasználó átgondolja, hogyan oldhat meg egy problémát. - -![AI replying to questions based on persona](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.hu.png) - -Az érthetőség utolsó fontos eleme a magyarázatok egyszerűsítése. A diákok és tanárok nem feltétlenül AI szakértők, ezért az alkalmazás képességeiről szóló magyarázatoknak egyszerűnek és könnyen érthetőnek kell lenniük. - -![simplified explanations on AI capabilities](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.hu.png) - -### Irányítás - -A generatív AI együttműködést teremt az AI és a felhasználó között, ahol például a felhasználó módosíthatja a promptokat a különböző eredmények érdekében. Emellett, ha egyszer létrejött egy eredmény, a felhasználók módosíthatják azt, így kontrollt kapnak az eredmény felett. Például a Bing használatakor a promptot formátum, hangnem és hosszúság szerint alakíthatod. Emellett módosíthatod az eredményt is, ahogy az alábbi képen látható: - -![Bing search results with options to modify the prompt and output](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.hu.png) - -Egy másik Bing funkció, amely lehetővé teszi a felhasználó számára az irányítást, az az adatfelhasználásra való beleegyezés vagy elutasítás lehetősége. Egy iskolai alkalmazás esetén a diák szeretné használni a saját jegyzeteit, valamint a tanárok anyagait ismétlő anyagként. - -![Bing search results with options to modify the prompt and output](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.hu.png) - -> AI alkalmazások tervezésekor a szándékosság kulcsfontosságú annak biztosításában, hogy a felhasználók ne bízzanak túlzottan az AI-ban, és ne állítsanak fel irreális elvárásokat a képességeivel kapcsolatban. Ennek egyik módja, hogy súrlódást teremtsünk a promptok és az eredmények között, emlékeztetve a felhasználót, hogy ez AI, nem pedig egy másik ember. - -## AI alkalmazások tervezése együttműködésre és visszacsatolásra - -Ahogy korábban említettük, a generatív AI együttműködést teremt a felhasználó és az AI között. A legtöbb interakció úgy zajlik, hogy a felhasználó beír egy promptot, az AI pedig generál egy választ. Mi történik, ha az eredmény hibás? Hogyan kezeli az alkalmazás a hibákat, ha előfordulnak? Az AI a felhasználót hibáztatja, vagy időt szán arra, hogy elmagyarázza a hibát? - -Az AI alkalmazásokat úgy kell megépíteni, hogy képesek legyenek visszajelzést fogadni és adni. Ez nemcsak az AI rendszer fejlesztését segíti, hanem növeli a felhasználók bizalmát is. A tervezésbe be kell építeni egy visszacsatolási hurkot, például egy egyszerű „tetszik” vagy „nem tetszik” gombot az eredmény mellett. - -Egy másik módja a hibakezelésnek, ha világosan kommunikáljuk a rendszer képességeit és korlátait. Ha a felhasználó olyan kérést tesz, ami meghaladja az AI képességeit, akkor erre is legyen mód a kezelésre, ahogy az alábbi ábra mutatja. - -![Giving feedback and handling errors](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.hu.png) - -A rendszerhibák gyakoriak olyan alkalmazásoknál, ahol a felhasználónak olyan információra lehet szüksége, ami kívül esik az AI hatókörén, vagy az alkalmazás korlátozhatja, hogy hány kérdésre vagy témára lehet összefoglalót generálni. Például egy AI alkalmazás, amely csak történelem és matematika témakörében van betanítva, nem biztos, hogy képes földrajzi kérdésekre válaszolni. Ennek elkerülésére az AI rendszer válasza lehet például: „Sajnálom, termékünket az alábbi tantárgyak adatai alapján képeztük ki..., nem tudok válaszolni a feltett kérdésre.” - -Az AI alkalmazások nem tökéletesek, ezért hibázhatnak. Az alkalmazás tervezésekor biztosítani kell, hogy legyen hely a felhasználói visszajelzéseknek és a hibakezelésnek, egyszerű és könnyen érthető módon. - -## Feladat - -Vegyél elő bármilyen AI alkalmazást, amit eddig készítettél, és fontold meg az alábbi lépések beépítését az alkalmazásodba: - -- **Kellemes:** Gondold át, hogyan tehetnéd az alkalmazásodat élvezetesebbé. Mindenhol adsz magyarázatokat? Bátorítod a felhasználót a felfedezésre? Hogyan fogalmazod meg a hibajelzéseket? - -- **Használhatóság:** Webalkalmazás építésekor ügyelj arra, hogy az alkalmazás egérrel és billentyűzettel egyaránt navigálható legyen. - -- **Bizalom és átláthatóság:** Ne bízz teljesen az AI-ban és az általa adott eredményekben, gondold át, hogyan vonhatnál be egy embert az eredmények ellenőrzésére. Emellett fontold meg és valósíts meg más módszereket is a bizalom és átláthatóság növelésére. - -- **Irányítás:** Adj a felhasználónak kontrollt az általa az alkalmazásnak megadott adatok felett. Valósíts meg olyan megoldást, amely lehetővé teszi a felhasználó számára, hogy beleegyezzen vagy elutasítsa az adatgyűjtést az AI alkalmazásban. - -## Folytasd a tanulást! - -A lecke elvégzése után nézd meg a [Generatív AI tanulási gyűjteményünket](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst), hogy tovább fejleszd generatív AI ismereteidet! - -Lépj tovább a 13. leckére, ahol az AI alkalmazások [biztonságáról](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) lesz szó! - -**Jogi nyilatkozat**: -Ez a dokumentum az AI fordító szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével készült. Bár a pontosságra törekszünk, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az anyanyelvén tekintendő hiteles forrásnak. Fontos információk esetén szakmai, emberi fordítást javaslunk. Nem vállalunk felelősséget a fordítás használatából eredő félreértésekért vagy téves értelmezésekért. \ No newline at end of file + + + diff --git a/translations/hu/README.md b/translations/hu/README.md index 25a32444b..4d380b176 100644 --- a/translations/hu/README.md +++ b/translations/hu/README.md @@ -1,137 +1,12 @@ - -![Generatív MI kezdőknek](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.hu.png) - -### 21 lecke, amely mindent megtanít, amit a generatív MI alkalmazások fejlesztésének megkezdéséhez tudni kell - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Többnyelvű támogatás - -#### GitHub Action segítségével (Automatikus és mindig naprakész) - -[Francia](../fr/README.md) | [Spanyol](../es/README.md) | [Német](../de/README.md) | [Orosz](../ru/README.md) | [Arab](../ar/README.md) | [Perzsa (Fárszi)](../fa/README.md) | [Urdu](../ur/README.md) | [Kínai (egyszerűsített)](../zh/README.md) | [Kínai (hagyományos, Makaó)](../mo/README.md) | [Kínai (hagyományos, Hongkong)](../hk/README.md) | [Kínai (hagyományos, Tajvan)](../tw/README.md) | [Japán](../ja/README.md) | [Koreai](../ko/README.md) | [Hindi](../hi/README.md) | [Bengáli](../bn/README.md) | [Maráthi](../mr/README.md) | [Nepáli](../ne/README.md) | [Pandzsábi (Gurmukhi)](../pa/README.md) | [Portugál (Portugália)](../pt/README.md) | [Portugál (Brazília)](../br/README.md) | [Olasz](../it/README.md) | [Lengyel](../pl/README.md) | [Török](../tr/README.md) | [Görög](../el/README.md) | [Thai](../th/README.md) | [Svéd](../sv/README.md) | [Dán](../da/README.md) | [Norvég](../no/README.md) | [Finn](../fi/README.md) | [Holland](../nl/README.md) | [Héber](../he/README.md) | [Vietnami](../vi/README.md) | [Indonéz](../id/README.md) | [Maláj](../ms/README.md) | [Tagalog (Filippínó)](../tl/README.md) | [Szuahéli](../sw/README.md) | [Magyar](./README.md) | [Cseh](../cs/README.md) | [Szlovák](../sk/README.md) | [Román](../ro/README.md) | [Bolgár](../bg/README.md) | [Szerb (cirill)](../sr/README.md) | [Horvát](../hr/README.md) | [Szlovén](../sl/README.md) | [Ukrán](../uk/README.md) | [Burmai (Myanmar)](../my/README.md) - -# Generatív MI kezdőknek (3. verzió) – Egy tanfolyam - -Ismerd meg a generatív MI alkalmazások fejlesztésének alapjait a Microsoft Cloud Advocates 21 leckéből álló átfogó tanfolyamával. - -## 🌱 Kezdés - -Ez a tanfolyam 21 leckéből áll. Minden lecke egy-egy témát fed le, szóval kezdj ott, ahol szeretnél! - -A leckék vagy "Learn" típusúak, amelyek egy generatív MI koncepciót magyaráznak, vagy "Build" típusúak, amelyek egy koncepciót és kódpéldákat mutatnak be mind **Python**, mind **TypeScript** nyelven, ha lehetséges. - -.NET fejlesztőknek ajánljuk a [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) projektet! - -Minden lecke tartalmaz egy "Keep Learning" részt is, további tanulási eszközökkel. - -## Amire szükséged van -### A tanfolyam kódjának futtatásához használhatod az alábbiakat: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) – **Leckék:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) – **Leckék:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) – **Leckék:** "oai-assignment" - -- Alapvető Python vagy TypeScript ismeretek hasznosak – \*Teljesen kezdőknek ajánljuk ezeket a [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) és [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) tanfolyamokat -- Egy GitHub fiók, hogy [forkold ezt a teljes repót](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) a saját GitHub fiókodba - -Készítettünk egy **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** leckét, amely segít a fejlesztői környezet beállításában. - -Ne felejtsd el [megcsillagozni (🌟) ezt a repót](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst), hogy később könnyebben megtaláld. - -## 🧠 Készen állsz a telepítésre? - -Ha fejlettebb kódpéldákat keresel, nézd meg a [Generatív MI kódminták gyűjteményét](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) mind **Python**, mind **TypeScript** nyelven. - -## 🗣️ Találkozz más tanulókkal, kapj támogatást - -Csatlakozz az [Azure AI Foundry hivatalos Discord szerveréhez](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst), hogy találkozz és kapcsolatot építs más tanulókkal, akik ezt a tanfolyamot végzik, és kapj segítséget. - -Tedd fel kérdéseidet vagy oszd meg visszajelzésedet a termékről az [Azure AI Foundry fejlesztői fórumán](https://aka.ms/azureaifoundry/forum) GitHubon. - -## 🚀 Startupot építesz? - -Regisztrálj a [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) szolgáltatásra, hogy **ingyenes OpenAI krediteket** és akár **150 000 dollár értékű Azure kreditet kapj az OpenAI modellek Azure OpenAI Services-en keresztüli eléréséhez**. - -## 🙏 Szeretnél segíteni? - -Van javaslatod, vagy találtál helyesírási vagy kódhibákat? [Nyiss egy issue-t](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) vagy [készíts egy pull requestet](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 Minden lecke tartalmaz: - -- Egy rövid videós bevezetőt a témához -- Egy írott leckét a README-ben -- Python és TypeScript kódpéldákat, amelyek támogatják az Azure OpenAI-t és az OpenAI API-t -- Linkeket további forrásokhoz a tanulás folytatásához - -## 🗃️ Leckék - -| # | **Lecke linkje** | **Leírás** | **Videó** | **További tanulás** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Fejlesztői környezet beállítása | Videó hamarosan | [Tudj meg többet](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Bevezetés a generatív MI-be és a LLM-ekbe](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Mi a generatív MI és hogyan működnek a nagy nyelvi modellek (LLM-ek) | [Videó](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Tudj meg többet](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Különböző LLM-ek felfedezése és összehasonlítása](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Hogyan válasszuk ki a megfelelő modellt az adott feladathoz | [Videó](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Tudj meg többet](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [A generatív MI felelősségteljes használata](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Hogyan építsünk felelősségteljes generatív MI alkalmazásokat | [Videó](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Tudj meg többet](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Prompt mérnökség alapjai](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Gyakorlati prompt mérnökségi legjobb gyakorlatok | [Videó](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Tudj meg többet](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Fejlett promptok létrehozása](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Hogyan alkalmazzunk prompt mérnökségi technikákat, amelyek javítják a promptok eredményét | [Videó](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Tudj meg többet](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Szövegalkotó alkalmazások fejlesztése](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Fejlesztés:** Szövegalkotó alkalmazás készítése Azure OpenAI / OpenAI API használatával | [Videó](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Tudj meg többet](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Csevegőalkalmazások fejlesztése](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Fejlesztés:** Hatékony technikák csevegőalkalmazások építéséhez és integrálásához | [Videó](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Tudj meg többet](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Keresőalkalmazások fejlesztése vektoralapú adatbázisokkal](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Fejlesztés:** Keresőalkalmazás, amely Embeddingeket használ az adatok kereséséhez | [Videó](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Tudj meg többet](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Képalkotó alkalmazások fejlesztése](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Fejlesztés:** Képalkotó alkalmazás | [Videó](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Tudj meg többet](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Alacsony kódú AI alkalmazások fejlesztése](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Fejlesztés:** Generatív AI alkalmazás alacsony kódú eszközökkel | [Videó](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Tudj meg többet](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Külső alkalmazások integrálása function calling segítségével](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Fejlesztés:** Mi az a function calling és hogyan használható alkalmazásokban | [Videó](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Tudj meg többet](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [UX tervezése AI alkalmazásokhoz](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Tanulás:** Hogyan alkalmazzuk az UX tervezési elveket generatív AI alkalmazások fejlesztésekor | [Videó](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Tudj meg többet](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Generatív AI alkalmazások biztonságossá tétele](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Tanulás:** Az AI rendszerek fenyegetettségei és kockázatai, valamint ezek biztonságossá tételének módjai | [Videó](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Tudj meg többet](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [A generatív AI alkalmazások életciklusa](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Tanulás:** Eszközök és mérőszámok az LLM életciklus és LLMOps kezeléséhez | [Videó](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Tudj meg többet](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) és vektoralapú adatbázisok](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Fejlesztés:** Alkalmazás RAG keretrendszerrel, amely vektoralapú adatbázisból kérdez Embeddingeket | [Videó](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Tudj meg többet](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Nyílt forráskódú modellek és Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Fejlesztés:** Alkalmazás nyílt forráskódú modellek használatával a Hugging Face-en | [Videó](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Tudj meg többet](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI ügynökök](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Fejlesztés:** Alkalmazás AI Agent keretrendszerrel | [Videó](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Tudj meg többet](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [LLM-ek finomhangolása](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Tanulás:** Mi, miért és hogyan történik az LLM-ek finomhangolása | [Videó](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Tudj meg többet](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Fejlesztés SLM-ekkel](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Tanulás:** A kis nyelvi modellekkel való fejlesztés előnyei | Videó hamarosan | [Tudj meg többet](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Fejlesztés Mistral modellekkel](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Tanulás:** A Mistral család modelleinek jellemzői és különbségei | Videó hamarosan | [Tudj meg többet](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Fejlesztés Meta modellekkel](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Tanulás:** A Meta család modelleinek jellemzői és különbségei | Videó hamarosan | [Tudj meg többet](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Külön köszönet - -Külön köszönet [**John Aziz**](https://www.linkedin.com/in/john0isaac/)-nak az összes GitHub Actions és munkafolyamat létrehozásáért - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/)-nek, aki kulcsfontosságú hozzájárulásokat tett minden leckéhez a tanulói és kódélmény javítása érdekében. - -## 🎒 Egyéb tanfolyamok - -Csapatunk más tanfolyamokat is készít! Nézd meg: - -- [**ÚJ** Model Context Protocol kezdőknek](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI ügynökök kezdőknek](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Generatív AI kezdőknek .NET használatával](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Generatív AI kezdőknek JavaScript használatával](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML kezdőknek](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Adattudomány kezdőknek](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI kezdőknek](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Kiberbiztonság kezdőknek](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Webfejlesztés kezdőknek](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT kezdőknek](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR fejlesztés kezdőknek](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [GitHub Copilot mesterfokon AI páros programozáshoz](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [GitHub Copilot mesterfokon C#/.NET fejlesztőknek](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Válaszd a saját Copilot kalandodat](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Jogi nyilatkozat**: -Ez a dokumentum az AI fordító szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével készült. Bár a pontosságra törekszünk, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az anyanyelvén tekintendő hiteles forrásnak. Kritikus információk esetén professzionális emberi fordítást javaslunk. Nem vállalunk felelősséget a fordítás használatából eredő félreértésekért vagy téves értelmezésekért. \ No newline at end of file + + + + diff --git a/translations/id/00-course-setup/01-setup-cloud.md b/translations/id/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..273b718b4 --- /dev/null +++ b/translations/id/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/id/00-course-setup/02-setup-local.md b/translations/id/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..6bd96f8b5 --- /dev/null +++ b/translations/id/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/id/00-course-setup/03-providers.md b/translations/id/00-course-setup/03-providers.md new file mode 100644 index 000000000..680b45e79 --- /dev/null +++ b/translations/id/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/id/00-course-setup/README.md b/translations/id/00-course-setup/README.md index 6e77ae379..ba83b224d 100644 --- a/translations/id/00-course-setup/README.md +++ b/translations/id/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# Memulai dengan kursus ini - -Kami sangat antusias Anda memulai kursus ini dan melihat apa yang menginspirasi Anda untuk dibuat dengan Generative AI! - -Untuk memastikan kesuksesan Anda, halaman ini menjelaskan langkah-langkah pengaturan, persyaratan teknis, dan tempat mendapatkan bantuan jika diperlukan. - -## Langkah Pengaturan - -Untuk mulai mengikuti kursus ini, Anda perlu menyelesaikan langkah-langkah berikut. - -### 1. Fork Repo ini - -[Fork seluruh repo ini](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) ke akun GitHub Anda sendiri agar dapat mengubah kode dan menyelesaikan tantangan. Anda juga bisa [memberi bintang (🌟) pada repo ini](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) agar lebih mudah menemukannya dan repo terkait lainnya. - -### 2. Buat codespace - -Untuk menghindari masalah dependensi saat menjalankan kode, kami menyarankan menjalankan kursus ini di [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst). - -Codespace ini dapat dibuat dengan memilih opsi `Code` pada versi fork repo ini dan memilih opsi **Codespaces**. - -![Dialog yang menunjukkan tombol untuk membuat codespace](../../../00-course-setup/images/who-will-pay.webp) - -### 3. Menyimpan API Keys Anda - -Menjaga keamanan API keys sangat penting saat membangun aplikasi apapun. Kami menyarankan untuk tidak menyimpan API keys langsung di dalam kode Anda. Meng-commit detail tersebut ke repositori publik bisa menimbulkan masalah keamanan dan bahkan biaya tak terduga jika disalahgunakan oleh pihak yang tidak bertanggung jawab. -Berikut panduan langkah demi langkah cara membuat file `.env` untuk Python dan menambahkan `GITHUB_TOKEN`: - -1. **Masuk ke Direktori Proyek Anda**: Buka terminal atau command prompt dan masuk ke direktori root proyek Anda tempat Anda ingin membuat file `.env`. - - ```bash - cd path/to/your/project - ``` - -2. **Buat File `.env`**: Gunakan editor teks favorit Anda untuk membuat file baru bernama `.env`. Jika menggunakan command line, Anda bisa menggunakan `touch` (pada sistem berbasis Unix) atau `echo` (pada Windows): - - Sistem berbasis Unix: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **Edit File `.env`**: Buka file `.env` di editor teks (misalnya VS Code, Notepad++, atau editor lain). Tambahkan baris berikut, ganti `your_github_token_here` dengan token GitHub Anda yang sebenarnya: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Simpan File**: Simpan perubahan dan tutup editor teks. - -5. **Pasang `python-dotenv`**: Jika belum, Anda perlu memasang paket `python-dotenv` untuk memuat variabel lingkungan dari file `.env` ke aplikasi Python Anda. Anda bisa memasangnya menggunakan `pip`: - - ```bash - pip install python-dotenv - ``` - -6. **Muat Variabel Lingkungan di Skrip Python Anda**: Dalam skrip Python, gunakan paket `python-dotenv` untuk memuat variabel lingkungan dari file `.env`: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -Selesai! Anda telah berhasil membuat file `.env`, menambahkan token GitHub, dan memuatnya ke aplikasi Python Anda. - -## Cara Menjalankan secara lokal di komputer Anda - -Untuk menjalankan kode secara lokal di komputer Anda, Anda perlu memasang versi [Python](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -Kemudian, untuk menggunakan repositori, Anda perlu meng-clone-nya: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -Setelah semuanya siap, Anda bisa mulai! - -## Langkah Opsional - -### Memasang Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) adalah installer ringan untuk memasang [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python, serta beberapa paket. -Conda sendiri adalah manajer paket yang memudahkan pengaturan dan pergantian antara berbagai [**virtual environment**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) dan paket Python. Ini juga berguna untuk memasang paket yang tidak tersedia lewat `pip`. - -Anda bisa mengikuti [panduan pemasangan MiniConda](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) untuk mengaturnya. - -Setelah Miniconda terpasang, Anda perlu meng-clone [repositori](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (jika belum). - -Selanjutnya, buat virtual environment. Untuk ini dengan Conda, buat file environment baru (_environment.yml_). Jika mengikuti menggunakan Codespaces, buat di dalam direktori `.devcontainer`, jadi `.devcontainer/environment.yml`. - -Isi file environment Anda dengan potongan kode berikut: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Jika Anda mengalami error saat menggunakan conda, Anda bisa memasang Microsoft AI Libraries secara manual dengan perintah berikut di terminal. - -``` -conda install -c microsoft azure-ai-ml -``` - -File environment ini menentukan dependensi yang dibutuhkan. `` adalah nama yang ingin Anda gunakan untuk environment Conda Anda, dan `` adalah versi Python yang ingin Anda gunakan, misalnya `3` adalah versi mayor terbaru Python. - -Setelah itu, Anda bisa membuat environment Conda dengan menjalankan perintah berikut di command line/terminal Anda - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -Lihat panduan [Conda environments](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst) jika mengalami masalah. - -### Menggunakan Visual Studio Code dengan ekstensi dukungan Python - -Kami menyarankan menggunakan editor [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) dengan [ekstensi dukungan Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) yang terpasang untuk kursus ini. Namun, ini hanya rekomendasi, bukan persyaratan mutlak. - -> **Catatan**: Dengan membuka repositori kursus di VS Code, Anda bisa memilih untuk mengatur proyek dalam sebuah container. Ini karena adanya direktori khusus [`.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) di dalam repositori kursus. Akan dibahas lebih lanjut nanti. - -> **Catatan**: Setelah Anda clone dan buka direktori di VS Code, secara otomatis akan menyarankan memasang ekstensi dukungan Python. - -> **Catatan**: Jika VS Code menyarankan membuka ulang repositori dalam container, tolak permintaan ini agar menggunakan versi Python yang terpasang secara lokal. - -### Menggunakan Jupyter di Browser - -Anda juga bisa mengerjakan proyek menggunakan lingkungan [Jupyter](https://jupyter.org?WT.mc_id=academic-105485-koreyst) langsung di browser Anda. Baik Jupyter klasik maupun [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) menyediakan lingkungan pengembangan yang nyaman dengan fitur seperti auto-completion, penyorotan kode, dan lain-lain. - -Untuk memulai Jupyter secara lokal, buka terminal/command line, masuk ke direktori kursus, dan jalankan: - -```bash -jupyter notebook -``` - -atau - -```bash -jupyterhub -``` - -Ini akan memulai instance Jupyter dan URL untuk mengaksesnya akan ditampilkan di jendela command line. - -Setelah mengakses URL tersebut, Anda akan melihat garis besar kursus dan bisa membuka file `*.ipynb` mana pun. Misalnya, `08-building-search-applications/python/oai-solution.ipynb`. - -### Menjalankan dalam container - -Alternatif lain selain mengatur semuanya di komputer atau Codespace adalah menggunakan [container](../../../00-course-setup/). Folder khusus `.devcontainer` di dalam repositori kursus memungkinkan VS Code mengatur proyek dalam container. Di luar Codespaces, ini memerlukan pemasangan Docker, dan jujur saja, ini agak rumit, jadi kami sarankan hanya untuk yang sudah berpengalaman dengan container. - -Salah satu cara terbaik menjaga keamanan API keys saat menggunakan GitHub Codespaces adalah dengan menggunakan Codespace Secrets. Silakan ikuti panduan [Codespaces secrets management](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) untuk mempelajari lebih lanjut. - -## Pelajaran dan Persyaratan Teknis - -Kursus ini memiliki 6 pelajaran konsep dan 6 pelajaran coding. - -Untuk pelajaran coding, kami menggunakan Azure OpenAI Service. Anda perlu akses ke layanan Azure OpenAI dan API key untuk menjalankan kode ini. Anda bisa mengajukan akses dengan [mengisi aplikasi ini](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -Sambil menunggu aplikasi Anda diproses, setiap pelajaran coding juga menyertakan file `README.md` tempat Anda bisa melihat kode dan hasilnya. - -## Menggunakan Azure OpenAI Service untuk pertama kali - -Jika ini pertama kali Anda menggunakan Azure OpenAI service, silakan ikuti panduan ini tentang cara [membuat dan menerapkan resource Azure OpenAI Service.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## Menggunakan OpenAI API untuk pertama kali - -Jika ini pertama kali Anda menggunakan OpenAI API, silakan ikuti panduan tentang cara [membuat dan menggunakan Interface.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## Bertemu dengan Pelajar Lain - -Kami telah membuat saluran di server resmi [AI Community Discord](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) untuk bertemu pelajar lain. Ini adalah cara yang bagus untuk berjejaring dengan pengusaha, pembangun, pelajar, dan siapa saja yang ingin meningkatkan kemampuan di Generative AI. - -[![Join discord channel](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -Tim proyek juga akan hadir di server Discord ini untuk membantu para pelajar. - -## Berkontribusi - -Kursus ini adalah inisiatif open-source. Jika Anda menemukan area yang bisa diperbaiki atau masalah, silakan buat [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) atau laporkan [GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -Tim proyek akan memantau semua kontribusi. Berkontribusi ke open source adalah cara luar biasa untuk membangun karier Anda di Generative AI. - -Sebagian besar kontribusi mengharuskan Anda menyetujui Contributor License Agreement (CLA) yang menyatakan bahwa Anda memiliki hak dan memang memberikan kami hak untuk menggunakan kontribusi Anda. Untuk detail, kunjungi [situs CLA, Contributor License Agreement](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Penting: saat menerjemahkan teks di repo ini, pastikan Anda tidak menggunakan terjemahan mesin. Kami akan memverifikasi terjemahan melalui komunitas, jadi harap hanya sukarela menerjemahkan ke bahasa yang Anda kuasai. - -Saat Anda mengirim pull request, CLA-bot akan secara otomatis menentukan apakah Anda perlu menyediakan CLA dan menandai PR dengan tepat (misalnya label, komentar). Cukup ikuti instruksi dari bot. Anda hanya perlu melakukan ini sekali untuk semua repositori yang menggunakan CLA kami. - -Proyek ini mengadopsi [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst). Untuk informasi lebih lanjut, baca FAQ Code of Conduct atau hubungi [Email opencode](opencode@microsoft.com) untuk pertanyaan atau komentar tambahan. - -## Mari Mulai - -Sekarang setelah Anda menyelesaikan langkah-langkah yang diperlukan untuk mengikuti kursus ini, mari mulai dengan mendapatkan [pengantar tentang Generative AI dan LLMs](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**Penafian**: -Dokumen ini telah diterjemahkan menggunakan layanan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berupaya untuk mencapai akurasi, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang sahih. Untuk informasi penting, disarankan menggunakan terjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini. \ No newline at end of file + + + + diff --git a/translations/id/00-course-setup/SETUP.md b/translations/id/00-course-setup/SETUP.md deleted file mode 100644 index 6c4419d3f..000000000 --- a/translations/id/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# Siapkan Lingkungan Pengembangan Anda - -Kami menyiapkan repositori dan kursus ini dengan [development container](https://containers.dev?WT.mc_id=academic-105485-koreyst) yang memiliki runtime Universal yang dapat mendukung pengembangan Python3, .NET, Node.js, dan Java. Konfigurasi terkait didefinisikan dalam file `devcontainer.json` yang terletak di folder `.devcontainer/` di root repositori ini. - -Untuk mengaktifkan dev container, jalankan di [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (untuk runtime yang dihosting di cloud) atau di [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (untuk runtime yang dihosting di perangkat lokal). Baca [dokumentasi ini](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) untuk detail lebih lanjut tentang cara kerja dev container di dalam VS Code. - -> [!TIP] -> Kami menyarankan menggunakan GitHub Codespaces untuk memulai dengan cepat dan usaha minimal. Ini menyediakan [kuota penggunaan gratis](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) yang cukup besar untuk akun pribadi. Atur [timeout](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) untuk menghentikan atau menghapus codespaces yang tidak aktif agar kuota Anda dapat digunakan secara maksimal. - -## 1. Menjalankan Tugas - -Setiap pelajaran akan memiliki tugas _opsional_ yang mungkin disediakan dalam satu atau lebih bahasa pemrograman termasuk: Python, .NET/C#, Java, dan JavaScript/TypeScript. Bagian ini memberikan panduan umum terkait menjalankan tugas-tugas tersebut. - -### 1.1 Tugas Python - -Tugas Python disediakan baik sebagai aplikasi (`.py` files) atau notebook Jupyter (`.ipynb` files). -- Untuk menjalankan notebook, buka di Visual Studio Code lalu klik _Select Kernel_ (di kanan atas) dan pilih opsi Python 3 default yang muncul. Sekarang Anda bisa klik _Run All_ untuk menjalankan seluruh notebook. -- Untuk menjalankan aplikasi Python dari command-line, ikuti instruksi spesifik tugas untuk memastikan Anda memilih file yang tepat dan memberikan argumen yang diperlukan. - -## 2. Mengonfigurasi Provider - -Tugas **mungkin** juga disiapkan untuk bekerja dengan satu atau lebih deployment Large Language Model (LLM) melalui penyedia layanan yang didukung seperti OpenAI, Azure, atau Hugging Face. Mereka menyediakan _hosted endpoint_ (API) yang dapat kita akses secara programatik dengan kredensial yang tepat (API key atau token). Dalam kursus ini, kami membahas provider berikut: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) dengan berbagai model termasuk seri inti GPT. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) untuk model OpenAI dengan fokus kesiapan enterprise - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) untuk model open-source dan server inferensi - -**Anda perlu menggunakan akun Anda sendiri untuk latihan ini**. Tugas bersifat opsional sehingga Anda bisa memilih untuk mengonfigurasi satu, semua, atau tidak sama sekali provider berdasarkan minat Anda. Berikut beberapa panduan pendaftaran: - -| Pendaftaran | Biaya | API Key | Playground | Komentar | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst)| [Harga](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst)| [Berbasis Proyek](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [No-Code, Web](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Banyak Model Tersedia | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst)| [Harga](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst)| [SDK Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst)| [Studio Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Harus Mendaftar Terlebih Dahulu](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst)| -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Harga](https://huggingface.co/pricing) | [Access Tokens](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst)| [Hugging Chat memiliki model terbatas](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Ikuti petunjuk di bawah untuk _mengonfigurasi_ repositori ini agar dapat digunakan dengan berbagai provider. Tugas yang memerlukan provider tertentu akan memiliki salah satu tag ini di nama file mereka: - - `aoai` - memerlukan endpoint dan key Azure OpenAI - - `oai` - memerlukan endpoint dan key OpenAI - - `hf` - memerlukan token Hugging Face - -Anda bisa mengonfigurasi satu, tidak sama sekali, atau semua provider. Tugas terkait akan error jika kredensial tidak ditemukan. - -### 2.1. Buat file `.env` - -Kami mengasumsikan Anda sudah membaca panduan di atas, mendaftar ke provider terkait, dan mendapatkan kredensial autentikasi yang diperlukan (API_KEY atau token). Untuk Azure OpenAI, kami juga mengasumsikan Anda memiliki deployment Azure OpenAI Service (endpoint) yang valid dengan setidaknya satu model GPT yang dideploy untuk chat completion. - -Langkah berikutnya adalah mengonfigurasi **variabel lingkungan lokal** Anda sebagai berikut: - -1. Cari file `.env.copy` di folder root yang isinya kira-kira seperti ini: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Salin file tersebut menjadi `.env` menggunakan perintah di bawah ini. File ini _gitignore-d_, sehingga rahasia Anda tetap aman. - - ```bash - cp .env.copy .env - ``` - -3. Isi nilai-nilai tersebut (ganti placeholder di sebelah kanan `=`) seperti yang dijelaskan di bagian berikutnya. - -3. (Opsional) Jika Anda menggunakan GitHub Codespaces, Anda bisa menyimpan variabel lingkungan sebagai _Codespaces secrets_ yang terkait dengan repositori ini. Dalam kasus ini, Anda tidak perlu membuat file .env lokal. **Namun, opsi ini hanya berlaku jika Anda menggunakan GitHub Codespaces.** Anda tetap harus membuat file .env jika menggunakan Docker Desktop. - -### 2.2. Isi file `.env` - -Mari kita lihat sekilas nama variabel untuk memahami apa yang mereka wakili: - -| Variabel | Deskripsi | -| :--- | :--- | -| HUGGING_FACE_API_KEY | Ini adalah token akses pengguna yang Anda buat di profil Anda | -| OPENAI_API_KEY | Ini adalah kunci otorisasi untuk menggunakan layanan non-Azure OpenAI | -| AZURE_OPENAI_API_KEY | Ini adalah kunci otorisasi untuk menggunakan layanan Azure OpenAI | -| AZURE_OPENAI_ENDPOINT | Ini adalah endpoint yang dideploy untuk resource Azure OpenAI | -| AZURE_OPENAI_DEPLOYMENT | Ini adalah endpoint deployment model _text generation_ | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | Ini adalah endpoint deployment model _text embeddings_ | -| | | - -Catatan: Dua variabel Azure OpenAI terakhir mencerminkan model default untuk chat completion (text generation) dan pencarian vektor (embeddings) secara berurutan. Instruksi pengaturannya akan dijelaskan di tugas terkait. - -### 2.3 Konfigurasi Azure: Dari Portal - -Nilai endpoint dan key Azure OpenAI dapat ditemukan di [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst), jadi mari mulai dari sana. - -1. Buka [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -2. Klik opsi **Keys and Endpoint** di sidebar (menu kiri). -3. Klik **Show Keys** - Anda akan melihat: KEY 1, KEY 2, dan Endpoint. -4. Gunakan nilai KEY 1 untuk AZURE_OPENAI_API_KEY -5. Gunakan nilai Endpoint untuk AZURE_OPENAI_ENDPOINT - -Selanjutnya, kita perlu mendapatkan endpoint untuk model spesifik yang sudah dideploy. - -1. Klik opsi **Model deployments** di sidebar (menu kiri) untuk resource Azure OpenAI. -2. Di halaman tujuan, klik **Manage Deployments** - -Ini akan membawa Anda ke situs Azure OpenAI Studio, di mana kita akan menemukan nilai lain seperti yang dijelaskan berikut ini. - -### 2.4 Konfigurasi Azure: Dari Studio - -1. Akses [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **dari resource Anda** seperti yang dijelaskan di atas. -2. Klik tab **Deployments** (sidebar kiri) untuk melihat model yang sudah dideploy. -3. Jika model yang Anda inginkan belum dideploy, gunakan **Create new deployment** untuk mendeploy-nya. -4. Anda akan membutuhkan model _text-generation_ - kami rekomendasikan: **gpt-35-turbo** -5. Anda juga akan membutuhkan model _text-embedding_ - kami rekomendasikan **text-embedding-ada-002** - -Sekarang perbarui variabel lingkungan untuk mencerminkan _Deployment name_ yang digunakan. Biasanya ini sama dengan nama model kecuali Anda mengubahnya secara eksplisit. Contohnya, Anda mungkin memiliki: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**Jangan lupa simpan file .env setelah selesai**. Anda sekarang bisa keluar dari file dan kembali ke instruksi menjalankan notebook. - -### 2.5 Konfigurasi OpenAI: Dari Profil - -Kunci API OpenAI Anda dapat ditemukan di [akun OpenAI Anda](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). Jika belum punya, Anda bisa mendaftar dan membuat API key. Setelah mendapatkan kunci tersebut, gunakan untuk mengisi variabel `OPENAI_API_KEY` di file `.env`. - -### 2.6 Konfigurasi Hugging Face: Dari Profil - -Token Hugging Face Anda dapat ditemukan di profil Anda di bagian [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). Jangan bagikan atau publikasikan token ini secara umum. Sebaiknya buat token baru khusus untuk penggunaan proyek ini dan salin ke file `.env` di variabel `HUGGING_FACE_API_KEY`. _Catatan:_ Secara teknis ini bukan API key, tapi digunakan untuk autentikasi sehingga kami menggunakan nama ini agar konsisten. - -**Penafian**: -Dokumen ini telah diterjemahkan menggunakan layanan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berupaya untuk mencapai akurasi, harap diperhatikan bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang sahih. Untuk informasi penting, disarankan menggunakan terjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini. \ No newline at end of file diff --git a/translations/id/04-prompt-engineering-fundamentals/README.md b/translations/id/04-prompt-engineering-fundamentals/README.md index d14941eba..bad81642f 100644 --- a/translations/id/04-prompt-engineering-fundamentals/README.md +++ b/translations/id/04-prompt-engineering-fundamentals/README.md @@ -1,452 +1,15 @@ - -# Dasar-dasar Prompt Engineering - -[![Prompt Engineering Fundamentals](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.id.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Pendahuluan -Modul ini membahas konsep dan teknik penting untuk membuat prompt yang efektif dalam model AI generatif. Cara Anda menulis prompt ke LLM juga sangat berpengaruh. Prompt yang dirancang dengan cermat dapat menghasilkan respons yang lebih berkualitas. Tapi, apa sebenarnya arti istilah seperti _prompt_ dan _prompt engineering_? Dan bagaimana saya bisa meningkatkan _input_ prompt yang saya kirim ke LLM? Pertanyaan-pertanyaan ini akan kita coba jawab dalam bab ini dan bab berikutnya. - -_Generative AI_ mampu menciptakan konten baru (misalnya, teks, gambar, audio, kode, dll.) sebagai respons terhadap permintaan pengguna. Ini dicapai dengan menggunakan _Large Language Models_ seperti seri GPT dari OpenAI ("Generative Pre-trained Transformer") yang dilatih untuk menggunakan bahasa alami dan kode. - -Pengguna kini dapat berinteraksi dengan model-model ini menggunakan paradigma yang sudah familiar seperti chat, tanpa perlu keahlian teknis atau pelatihan khusus. Model-model ini berbasis _prompt_ - pengguna mengirimkan input teks (prompt) dan mendapatkan respons AI (completion). Mereka kemudian dapat "bercakap-cakap dengan AI" secara iteratif, dalam percakapan multi-putaran, menyempurnakan prompt mereka sampai responsnya sesuai dengan harapan. - -"Prompt" kini menjadi _antarmuka pemrograman_ utama untuk aplikasi AI generatif, memberi tahu model apa yang harus dilakukan dan memengaruhi kualitas respons yang dikembalikan. "Prompt Engineering" adalah bidang studi yang berkembang pesat yang fokus pada _perancangan dan optimasi_ prompt untuk menghasilkan respons yang konsisten dan berkualitas dalam skala besar. - -## Tujuan Pembelajaran - -Dalam pelajaran ini, kita akan mempelajari apa itu Prompt Engineering, mengapa hal itu penting, dan bagaimana kita dapat membuat prompt yang lebih efektif untuk model dan tujuan aplikasi tertentu. Kita akan memahami konsep inti dan praktik terbaik untuk prompt engineering - serta belajar tentang lingkungan "sandbox" interaktif Jupyter Notebooks di mana kita dapat melihat konsep-konsep ini diterapkan pada contoh nyata. - -Pada akhir pelajaran ini kita akan mampu: - -1. Menjelaskan apa itu prompt engineering dan mengapa hal itu penting. -2. Mendeskripsikan komponen-komponen prompt dan bagaimana penggunaannya. -3. Mempelajari praktik terbaik dan teknik untuk prompt engineering. -4. Menerapkan teknik yang dipelajari pada contoh nyata, menggunakan endpoint OpenAI. - -## Istilah Kunci - -Prompt Engineering: Praktik merancang dan menyempurnakan input untuk mengarahkan model AI agar menghasilkan output yang diinginkan. -Tokenization: Proses mengubah teks menjadi unit-unit kecil, yang disebut token, yang dapat dipahami dan diproses oleh model. -Instruction-Tuned LLMs: Large Language Models (LLM) yang telah disesuaikan dengan instruksi spesifik untuk meningkatkan akurasi dan relevansi responsnya. - -## Learning Sandbox - -Prompt engineering saat ini lebih merupakan seni daripada ilmu pasti. Cara terbaik untuk meningkatkan intuisi kita adalah dengan _berlatih lebih banyak_ dan mengadopsi pendekatan coba-coba yang menggabungkan keahlian domain aplikasi dengan teknik yang direkomendasikan serta optimasi spesifik model. - -Jupyter Notebook yang menyertai pelajaran ini menyediakan lingkungan _sandbox_ di mana Anda dapat mencoba apa yang Anda pelajari - secara langsung atau sebagai bagian dari tantangan kode di akhir. Untuk menjalankan latihan, Anda memerlukan: - -1. **Kunci API Azure OpenAI** - endpoint layanan untuk LLM yang sudah dideploy. -2. **Runtime Python** - tempat Notebook dapat dijalankan. -3. **Variabel Lingkungan Lokal** - _selesaikan langkah [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) sekarang untuk bersiap_. - -Notebook ini dilengkapi dengan latihan _starter_ - tapi Anda didorong untuk menambahkan bagian _Markdown_ (deskripsi) dan _Code_ (permintaan prompt) sendiri untuk mencoba lebih banyak contoh atau ide - dan membangun intuisi Anda dalam merancang prompt. - -## Panduan Bergambar - -Ingin mendapatkan gambaran besar tentang apa yang dibahas pelajaran ini sebelum memulai? Lihat panduan bergambar ini, yang memberi Anda gambaran tentang topik utama yang dibahas dan poin-poin penting untuk dipikirkan di setiap bagian. Peta jalan pelajaran membawa Anda dari memahami konsep inti dan tantangan hingga mengatasinya dengan teknik prompt engineering yang relevan dan praktik terbaik. Perlu dicatat bahwa bagian "Teknik Lanjutan" dalam panduan ini merujuk pada konten yang dibahas di bab _berikutnya_ dalam kurikulum ini. - -![Panduan Bergambar Prompt Engineering](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.id.png) - -## Startup Kami - -Sekarang, mari kita bahas bagaimana _topik ini_ terkait dengan misi startup kami untuk [membawa inovasi AI ke pendidikan](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). Kami ingin membangun aplikasi AI yang mendukung _pembelajaran personalisasi_ - jadi mari kita pikirkan bagaimana berbagai pengguna aplikasi kami mungkin "merancang" prompt: - -- **Administrator** mungkin meminta AI untuk _menganalisis data kurikulum guna mengidentifikasi kekurangan cakupan_. AI dapat merangkum hasil atau memvisualisasikannya dengan kode. -- **Pendidik** mungkin meminta AI untuk _menghasilkan rencana pelajaran untuk audiens dan topik tertentu_. AI dapat membuat rencana personalisasi dalam format yang ditentukan. -- **Siswa** mungkin meminta AI untuk _membimbing mereka dalam mata pelajaran yang sulit_. AI kini dapat membimbing siswa dengan pelajaran, petunjuk, dan contoh yang disesuaikan dengan tingkat mereka. - -Itu baru sebagian kecil dari kemungkinan. Lihat [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) - perpustakaan prompt open-source yang dikurasi oleh para ahli pendidikan - untuk mendapatkan gambaran lebih luas tentang kemungkinannya! _Cobalah menjalankan beberapa prompt tersebut di sandbox atau menggunakan OpenAI Playground untuk melihat hasilnya!_ - - - -## Apa itu Prompt Engineering? - -Kita memulai pelajaran ini dengan mendefinisikan **Prompt Engineering** sebagai proses _merancang dan mengoptimalkan_ input teks (prompt) untuk menghasilkan respons (completion) yang konsisten dan berkualitas sesuai dengan tujuan aplikasi dan model yang digunakan. Kita bisa memandang ini sebagai proses dua langkah: - -- _merancang_ prompt awal untuk model dan tujuan tertentu -- _menyempurnakan_ prompt secara iteratif untuk meningkatkan kualitas respons - -Ini adalah proses coba-coba yang memerlukan intuisi dan usaha pengguna untuk mendapatkan hasil optimal. Jadi, mengapa ini penting? Untuk menjawabnya, kita perlu memahami tiga konsep: - -- _Tokenization_ = bagaimana model "melihat" prompt -- _Base LLMs_ = bagaimana model dasar "memproses" prompt -- _Instruction-Tuned LLMs_ = bagaimana model kini dapat memahami "tugas" - -### Tokenization - -LLM melihat prompt sebagai _urutan token_ di mana model yang berbeda (atau versi model yang berbeda) dapat melakukan tokenisasi prompt yang sama dengan cara berbeda. Karena LLM dilatih menggunakan token (bukan teks mentah), cara prompt di-tokenisasi berpengaruh langsung pada kualitas respons yang dihasilkan. - -Untuk mendapatkan gambaran bagaimana tokenisasi bekerja, coba alat seperti [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) yang ditampilkan di bawah ini. Salin prompt Anda - dan lihat bagaimana prompt tersebut diubah menjadi token, perhatikan bagaimana karakter spasi dan tanda baca diperlakukan. Perlu dicatat contoh ini menggunakan LLM versi lama (GPT-3) - jadi mencoba dengan model yang lebih baru mungkin menghasilkan hasil berbeda. - -![Tokenisasi](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.id.png) - -### Konsep: Foundation Models - -Setelah prompt di-tokenisasi, fungsi utama dari ["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (atau model dasar) adalah memprediksi token berikutnya dalam urutan tersebut. Karena LLM dilatih dengan dataset teks yang sangat besar, mereka memiliki pemahaman statistik yang baik tentang hubungan antar token dan dapat membuat prediksi tersebut dengan tingkat keyakinan tertentu. Perlu dicatat mereka tidak memahami _makna_ kata dalam prompt atau token; mereka hanya melihat pola yang bisa mereka "lengkapi" dengan prediksi berikutnya. Mereka dapat terus memprediksi urutan sampai dihentikan oleh intervensi pengguna atau kondisi yang sudah ditentukan. - -Ingin melihat bagaimana penyelesaian berbasis prompt bekerja? Masukkan prompt di atas ke Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) dengan pengaturan default. Sistem dikonfigurasi untuk memperlakukan prompt sebagai permintaan informasi - jadi Anda akan melihat respons yang sesuai dengan konteks ini. - -Tapi bagaimana jika pengguna ingin melihat sesuatu yang spesifik sesuai kriteria atau tujuan tugas? Di sinilah _instruction-tuned_ LLM berperan. - -![Base LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.id.png) - -### Konsep: Instruction Tuned LLMs - -[Instruction Tuned LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) dimulai dengan model dasar dan menyempurnakannya dengan contoh atau pasangan input/output (misalnya, "pesan" multi-putaran) yang berisi instruksi jelas - dan respons AI berusaha mengikuti instruksi tersebut. - -Ini menggunakan teknik seperti Reinforcement Learning with Human Feedback (RLHF) yang dapat melatih model untuk _mengikuti instruksi_ dan _belajar dari umpan balik_ sehingga menghasilkan respons yang lebih sesuai untuk aplikasi praktis dan lebih relevan dengan tujuan pengguna. - -Mari coba - ulangi prompt di atas, tapi sekarang ubah _pesan sistem_ untuk memberikan instruksi berikut sebagai konteks: - -> _Ringkas konten yang diberikan untuk siswa kelas dua. Buat hasilnya dalam satu paragraf dengan 3-5 poin penting._ - -Lihat bagaimana hasilnya kini disesuaikan untuk mencerminkan tujuan dan format yang diinginkan? Seorang pendidik kini dapat langsung menggunakan respons ini dalam slide untuk kelas tersebut. - -![Instruction Tuned LLM Chat Completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.id.png) - -## Mengapa kita butuh Prompt Engineering? - -Setelah kita tahu bagaimana prompt diproses oleh LLM, mari kita bahas _mengapa_ kita perlu prompt engineering. Jawabannya terletak pada fakta bahwa LLM saat ini menghadapi sejumlah tantangan yang membuat _penyelesaian yang andal dan konsisten_ lebih sulit dicapai tanpa usaha dalam membangun dan mengoptimalkan prompt. Misalnya: - -1. **Respons model bersifat stokastik.** _Prompt yang sama_ kemungkinan akan menghasilkan respons berbeda pada model atau versi model yang berbeda. Bahkan bisa menghasilkan hasil berbeda pada _model yang sama_ di waktu yang berbeda. _Teknik prompt engineering dapat membantu meminimalkan variasi ini dengan memberikan batasan yang lebih baik_. - -2. **Model dapat membuat respons palsu.** Model dilatih dengan dataset _besar tapi terbatas_, artinya mereka tidak memiliki pengetahuan tentang konsep di luar cakupan pelatihan tersebut. Akibatnya, mereka dapat menghasilkan respons yang tidak akurat, imajinatif, atau bahkan bertentangan langsung dengan fakta yang diketahui. _Teknik prompt engineering membantu pengguna mengidentifikasi dan mengurangi pembuatan respons palsu ini, misalnya dengan meminta AI untuk menyertakan kutipan atau alasan_. - -3. **Kemampuan model akan bervariasi.** Model baru atau generasi model berikutnya akan memiliki kemampuan lebih kaya tapi juga membawa keunikan dan kompromi dalam biaya & kompleksitas. _Prompt engineering dapat membantu kita mengembangkan praktik terbaik dan alur kerja yang mengabstraksi perbedaan tersebut dan menyesuaikan dengan kebutuhan spesifik model secara skala dan mulus_. - -Mari kita lihat ini dalam praktik di OpenAI atau Azure OpenAI Playground: - -- Gunakan prompt yang sama dengan berbagai deployment LLM (misalnya, OpenAI, Azure OpenAI, Hugging Face) - apakah Anda melihat variasinya? -- Gunakan prompt yang sama berulang kali dengan deployment LLM yang _sama_ (misalnya, Azure OpenAI playground) - bagaimana variasi ini berbeda? - -### Contoh Fabrication - -Dalam kursus ini, kami menggunakan istilah **"fabrication"** untuk merujuk pada fenomena di mana LLM kadang menghasilkan informasi yang salah secara faktual karena keterbatasan dalam pelatihan atau kendala lain. Anda mungkin juga pernah mendengar istilah ini disebut _"halusinasi"_ dalam artikel populer atau makalah riset. Namun, kami sangat menyarankan menggunakan istilah _"fabrication"_ agar kita tidak secara tidak sengaja menganggap perilaku ini sebagai sifat manusiawi dengan mengatributkan karakteristik manusia pada hasil yang dihasilkan mesin. Ini juga memperkuat [pedoman Responsible AI](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) dari perspektif terminologi, menghilangkan istilah yang mungkin dianggap ofensif atau tidak inklusif dalam beberapa konteks. - -Ingin merasakan bagaimana fabrication bekerja? Pikirkan sebuah prompt yang menginstruksikan AI untuk menghasilkan konten tentang topik yang tidak ada (agar tidak ditemukan dalam dataset pelatihan). Misalnya - saya mencoba prompt ini: -# Rencana Pelajaran: Perang Mars 2076 - -## Tujuan Pembelajaran -- Memahami latar belakang dan penyebab Perang Mars 2076 -- Menganalisis peristiwa utama selama konflik -- Mengevaluasi dampak perang terhadap hubungan antarplanet dan teknologi - -## Materi Pelajaran - -### 1. Latar Belakang Perang Mars 2076 -- Kondisi politik dan sosial di Mars dan Bumi sebelum perang -- Sumber daya dan kepentingan yang memicu ketegangan -- Peran koloni Mars dan pemerintah Bumi - -### 2. Kronologi Perang -- Awal konflik dan peristiwa pemicu -- Pertempuran utama dan strategi militer yang digunakan -- Peran teknologi canggih dan senjata baru dalam perang - -### 3. Dampak dan Akhir Perang -- Kesepakatan damai dan perjanjian yang dihasilkan -- Perubahan politik dan sosial pasca perang -- Pengaruh perang terhadap eksplorasi luar angkasa dan hubungan antarplanet - -## Metode Pengajaran -- Diskusi kelompok tentang penyebab dan dampak perang -- Analisis dokumen dan sumber sejarah fiksi terkait Perang Mars 2076 -- Presentasi proyek tentang teknologi militer yang digunakan dalam perang - -## Penilaian -- Kuis tentang fakta-fakta penting Perang Mars 2076 -- Esai singkat mengenai pelajaran yang dapat diambil dari perang tersebut -- Presentasi kelompok tentang strategi militer dan teknologi yang digunakan - -## Referensi -- Buku teks fiksi ilmiah terkait Perang Mars 2076 -- Artikel dan jurnal tentang sejarah fiksi luar angkasa -- Sumber multimedia seperti dokumenter dan simulasi perang Mars -Pencarian web menunjukkan bahwa ada akun fiksi (misalnya, serial televisi atau buku) tentang perang Mars - tetapi tidak ada yang terjadi pada tahun 2076. Akal sehat juga memberitahu kita bahwa 2076 adalah _masa depan_ dan oleh karena itu, tidak bisa dikaitkan dengan peristiwa nyata. - -Jadi, apa yang terjadi ketika kita menjalankan prompt ini dengan penyedia LLM yang berbeda? - -> **Response 1**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.id.png) - -> **Response 2**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.id.png) - -> **Response 3**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.id.png) - -Seperti yang diharapkan, setiap model (atau versi model) menghasilkan respons yang sedikit berbeda berkat perilaku stokastik dan variasi kemampuan model. Misalnya, satu model menargetkan audiens kelas 8 sementara yang lain mengasumsikan siswa sekolah menengah. Namun ketiga model tersebut menghasilkan respons yang bisa meyakinkan pengguna yang tidak tahu bahwa peristiwa itu nyata. - -Teknik rekayasa prompt seperti _metaprompting_ dan _konfigurasi temperature_ dapat mengurangi fabrikasi model sampai batas tertentu. Arsitektur rekayasa prompt baru juga mengintegrasikan alat dan teknik baru secara mulus ke dalam alur prompt, untuk mengurangi atau memitigasi beberapa efek ini. - -## Studi Kasus: GitHub Copilot - -Mari kita tutup bagian ini dengan melihat bagaimana rekayasa prompt digunakan dalam solusi dunia nyata melalui satu Studi Kasus: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot adalah "AI Pair Programmer" Anda - mengubah prompt teks menjadi penyelesaian kode dan terintegrasi ke dalam lingkungan pengembangan Anda (misalnya, Visual Studio Code) untuk pengalaman pengguna yang mulus. Seperti yang didokumentasikan dalam serangkaian blog di bawah ini, versi awal didasarkan pada model OpenAI Codex - dengan para insinyur cepat menyadari kebutuhan untuk menyempurnakan model dan mengembangkan teknik rekayasa prompt yang lebih baik, guna meningkatkan kualitas kode. Pada bulan Juli, mereka [meluncurkan model AI yang lebih baik yang melampaui Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) untuk saran yang lebih cepat. - -Baca postingan secara berurutan, untuk mengikuti perjalanan pembelajaran mereka. - -- **Mei 2023** | [GitHub Copilot Semakin Baik dalam Memahami Kode Anda](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **Mei 2023** | [Di Dalam GitHub: Bekerja dengan LLM di Balik GitHub Copilot](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Jun 2023** | [Cara Menulis Prompt yang Lebih Baik untuk GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Jul 2023** | [.. GitHub Copilot Melampaui Codex dengan Model AI yang Ditingkatkan](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Jul 2023** | [Panduan Pengembang untuk Rekayasa Prompt dan LLM](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **Sep 2023** | [Cara Membangun Aplikasi LLM Perusahaan: Pelajaran dari GitHub Copilot](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -Anda juga bisa menjelajahi [blog Engineering mereka](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) untuk lebih banyak posting seperti [ini](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) yang menunjukkan bagaimana model dan teknik ini _diterapkan_ untuk mendorong aplikasi dunia nyata. - ---- - - - -## Konstruksi Prompt - -Kita sudah melihat mengapa rekayasa prompt itu penting - sekarang mari kita pahami bagaimana prompt _dibangun_ agar kita bisa mengevaluasi berbagai teknik untuk desain prompt yang lebih efektif. - -### Prompt Dasar - -Mari mulai dengan prompt dasar: input teks yang dikirim ke model tanpa konteks lain. Berikut contohnya - ketika kita mengirim beberapa kata pertama dari lagu kebangsaan AS ke OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst) model langsung _melengkapi_ respons dengan beberapa baris berikutnya, menggambarkan perilaku prediksi dasar. - -| Prompt (Input) | Completion (Output) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | Sepertinya Anda memulai lirik "The Star-Spangled Banner," lagu kebangsaan Amerika Serikat. Lirik lengkapnya adalah ... | - -### Prompt Kompleks - -Sekarang mari tambahkan konteks dan instruksi ke prompt dasar itu. [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) memungkinkan kita membangun prompt kompleks sebagai kumpulan _pesan_ dengan: - -- Pasangan input/output yang mencerminkan input _user_ dan respons _assistant_. -- Pesan sistem yang mengatur konteks perilaku atau kepribadian asisten. - -Permintaan sekarang dalam bentuk di bawah ini, di mana _tokenisasi_ secara efektif menangkap informasi relevan dari konteks dan percakapan. Mengubah konteks sistem bisa berdampak besar pada kualitas penyelesaian, sama seperti input pengguna yang diberikan. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Prompt Instruksi - -Dalam contoh di atas, prompt pengguna adalah kueri teks sederhana yang bisa diartikan sebagai permintaan informasi. Dengan prompt _instruksi_, kita bisa menggunakan teks itu untuk menentukan tugas secara lebih rinci, memberikan panduan yang lebih baik kepada AI. Berikut contohnya: - -| Prompt (Input) | Completion (Output) | Jenis Instruksi | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Write a description of the Civil War | _mengembalikan paragraf sederhana_ | Sederhana | -| Write a description of the Civil War. Provide key dates and events and describe their significance | _mengembalikan paragraf diikuti daftar tanggal peristiwa penting dengan deskripsi_ | Kompleks | -| Write a description of the Civil War in 1 paragraph. Provide 3 bullet points with key dates and their significance. Provide 3 more bullet points with key historical figures and their contributions. Return the output as a JSON file | _mengembalikan detail lebih lengkap dalam kotak teks, diformat sebagai JSON yang bisa Anda salin-tempel ke file dan validasi_ | Kompleks. Terformat. | - -## Konten Utama - -Dalam contoh di atas, prompt masih cukup terbuka, membiarkan LLM memutuskan bagian mana dari dataset pra-latihannya yang relevan. Dengan pola desain _konten utama_, teks input dibagi menjadi dua bagian: - -- instruksi (aksi) -- konten relevan (yang memengaruhi aksi) - -Berikut contoh di mana instruksinya adalah "ringkas ini dalam 2 kalimat". - -| Prompt (Input) | Completion (Output) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter adalah planet kelima dari Matahari dan yang terbesar di Tata Surya. Ia adalah raksasa gas dengan massa seper seribu dari Matahari, tetapi dua setengah kali massa semua planet lain di Tata Surya digabungkan. Jupiter adalah salah satu objek paling terang yang terlihat dengan mata telanjang di langit malam, dan telah dikenal oleh peradaban kuno sejak sebelum sejarah tercatat. Ia dinamai menurut dewa Romawi Jupiter.[19] Ketika dilihat dari Bumi, Jupiter bisa cukup terang sehingga cahaya pantulannya dapat menghasilkan bayangan yang terlihat,[20] dan rata-rata merupakan objek alami ketiga paling terang di langit malam setelah Bulan dan Venus.
**Ringkas ini dalam 2 kalimat pendek** | Jupiter, planet kelima dari Matahari, adalah yang terbesar di Tata Surya dan dikenal sebagai salah satu objek paling terang di langit malam. Dinamai menurut dewa Romawi Jupiter, ia adalah raksasa gas dengan massa dua setengah kali gabungan semua planet lain di Tata Surya. | - -Segmen konten utama dapat digunakan dengan berbagai cara untuk menghasilkan instruksi yang lebih efektif: - -- **Contoh** - alih-alih memberi tahu model apa yang harus dilakukan dengan instruksi eksplisit, berikan contoh apa yang harus dilakukan dan biarkan model menyimpulkan pola. -- **Petunjuk** - ikuti instruksi dengan "petunjuk" yang memicu penyelesaian, mengarahkan model ke respons yang lebih relevan. -- **Template** - ini adalah 'resep' yang dapat diulang untuk prompt dengan placeholder (variabel) yang dapat disesuaikan dengan data untuk kasus penggunaan tertentu. - -Mari kita jelajahi ini dalam praktik. - -### Menggunakan Contoh - -Ini adalah pendekatan di mana Anda menggunakan konten utama untuk "memberi makan model" beberapa contoh keluaran yang diinginkan untuk instruksi tertentu, dan membiarkannya menyimpulkan pola keluaran yang diinginkan. Berdasarkan jumlah contoh yang diberikan, kita bisa memiliki zero-shot prompting, one-shot prompting, few-shot prompting, dll. - -Prompt sekarang terdiri dari tiga komponen: - -- Deskripsi tugas -- Beberapa contoh keluaran yang diinginkan -- Awal contoh baru (yang menjadi deskripsi tugas implisit) - -| Jenis Pembelajaran | Prompt (Input) | Completion (Output) | -| :----------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| Zero-shot | "The Sun is Shining". Translate to Spanish | "El Sol está brillando". | -| One-shot | "The Sun is Shining" => ""El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| Few-shot | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketball | -| | | | - -Perhatikan bagaimana kita harus memberikan instruksi eksplisit ("Translate to Spanish") pada zero-shot prompting, tetapi instruksi itu tersirat dalam contoh one-shot prompting. Contoh few-shot menunjukkan bagaimana menambahkan lebih banyak contoh memungkinkan model membuat inferensi yang lebih akurat tanpa instruksi tambahan. - -### Petunjuk Prompt - -Teknik lain untuk menggunakan konten utama adalah memberikan _petunjuk_ daripada contoh. Dalam kasus ini, kita memberikan model dorongan ke arah yang benar dengan _memulai_ dengan potongan yang mencerminkan format respons yang diinginkan. Model kemudian "mengambil petunjuk" untuk melanjutkan dengan cara yang sama. - -| Jumlah Petunjuk | Prompt (Input) | Completion (Output) | -| :-------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Jupiter adalah planet kelima dari Matahari dan yang terbesar di Tata Surya. Ia adalah raksasa gas dengan massa seper seribu dari Matahari, tetapi dua setengah kali massa semua planet lain di Tata Surya digabungkan. Jupiter adalah salah satu objek paling terang yang terlihat dengan mata telanjang di langit malam, dan telah dikenal oleh peradaban kuno sejak sebelum sejarah tercatat. - -**Ringkas Ini** | Jupiter adalah planet terbesar di Tata Surya kita dan planet kelima dari Matahari. Ini adalah raksasa gas dengan massa 1/1000 dari Matahari, tetapi lebih berat daripada semua planet lain jika digabungkan. Peradaban kuno telah mengenal Jupiter sejak lama, dan planet ini mudah terlihat di langit malam. | -| 1 | Jupiter adalah planet kelima dari Matahari dan yang terbesar di Tata Surya. Ini adalah raksasa gas dengan massa seperseribu dari Matahari, tetapi dua setengah kali massa semua planet lain di Tata Surya jika digabungkan. Jupiter adalah salah satu objek paling terang yang terlihat dengan mata telanjang di langit malam, dan telah dikenal oleh peradaban kuno sejak sebelum sejarah tercatat.
**Ringkas Ini**
Yang kita pelajari adalah bahwa Jupiter | adalah planet kelima dari Matahari dan yang terbesar di Tata Surya. Ini adalah raksasa gas dengan massa seperseribu dari Matahari, tetapi dua setengah kali massa semua planet lain jika digabungkan. Planet ini mudah terlihat dengan mata telanjang dan telah dikenal sejak zaman kuno. | -| 2 | Jupiter adalah planet kelima dari Matahari dan yang terbesar di Tata Surya. Ini adalah raksasa gas dengan massa seperseribu dari Matahari, tetapi dua setengah kali massa semua planet lain di Tata Surya jika digabungkan. Jupiter adalah salah satu objek paling terang yang terlihat dengan mata telanjang di langit malam, dan telah dikenal oleh peradaban kuno sejak sebelum sejarah tercatat.
**Ringkas Ini**
3 Fakta Teratas yang Kita Pelajari: | 1. Jupiter adalah planet kelima dari Matahari dan yang terbesar di Tata Surya.
2. Ini adalah raksasa gas dengan massa seperseribu dari Matahari...
3. Jupiter telah terlihat dengan mata telanjang sejak zaman kuno ... | -| | | | - -### Template Prompt - -Template prompt adalah _resep yang sudah ditentukan sebelumnya untuk sebuah prompt_ yang dapat disimpan dan digunakan kembali sesuai kebutuhan, untuk menghasilkan pengalaman pengguna yang lebih konsisten dalam skala besar. Dalam bentuk paling sederhana, ini hanyalah kumpulan contoh prompt seperti [contoh dari OpenAI ini](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) yang menyediakan komponen prompt interaktif (pesan pengguna dan sistem) serta format permintaan berbasis API - untuk mendukung penggunaan ulang. - -Dalam bentuk yang lebih kompleks seperti [contoh dari LangChain ini](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst) berisi _placeholder_ yang dapat diganti dengan data dari berbagai sumber (input pengguna, konteks sistem, sumber data eksternal, dll.) untuk menghasilkan prompt secara dinamis. Ini memungkinkan kita membuat perpustakaan prompt yang dapat digunakan kembali untuk menghasilkan pengalaman pengguna yang konsisten **secara programatik** dalam skala besar. - -Akhirnya, nilai sebenarnya dari template terletak pada kemampuan untuk membuat dan menerbitkan _perpustakaan prompt_ untuk domain aplikasi vertikal - di mana template prompt kini _dioptimalkan_ untuk mencerminkan konteks atau contoh spesifik aplikasi yang membuat respons lebih relevan dan akurat bagi audiens pengguna yang ditargetkan. Repositori [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) adalah contoh bagus dari pendekatan ini, mengkurasi perpustakaan prompt untuk domain pendidikan dengan penekanan pada tujuan utama seperti perencanaan pelajaran, desain kurikulum, bimbingan siswa, dan lain-lain. - -## Konten Pendukung - -Jika kita memandang konstruksi prompt sebagai memiliki instruksi (tugas) dan target (konten utama), maka _konten sekunder_ adalah seperti konteks tambahan yang kita berikan untuk **mempengaruhi hasil keluaran dengan cara tertentu**. Ini bisa berupa parameter penyetelan, instruksi format, taksonomi topik, dll. yang membantu model _menyesuaikan_ respons agar sesuai dengan tujuan atau harapan pengguna. - -Misalnya: Diberikan katalog kursus dengan metadata lengkap (nama, deskripsi, tingkat, tag metadata, instruktur, dll.) untuk semua kursus yang tersedia dalam kurikulum: - -- kita dapat mendefinisikan instruksi untuk "meringkas katalog kursus untuk Musim Gugur 2023" -- kita dapat menggunakan konten utama untuk memberikan beberapa contoh keluaran yang diinginkan -- kita dapat menggunakan konten sekunder untuk mengidentifikasi 5 "tag" teratas yang menarik. - -Sekarang, model dapat memberikan ringkasan dalam format yang ditunjukkan oleh beberapa contoh - tetapi jika hasil memiliki beberapa tag, model dapat memprioritaskan 5 tag yang diidentifikasi dalam konten sekunder. - ---- - - - -## Praktik Terbaik Prompting - -Sekarang kita tahu bagaimana prompt dapat _dibuat_, kita bisa mulai memikirkan bagaimana _merancang_ prompt tersebut agar mencerminkan praktik terbaik. Kita bisa memikirkannya dalam dua bagian - memiliki _mindset_ yang tepat dan menerapkan _teknik_ yang tepat. - -### Mindset Prompt Engineering - -Prompt Engineering adalah proses coba-coba, jadi ingat tiga faktor panduan utama berikut: - -1. **Pemahaman Domain Penting.** Akurasi dan relevansi respons bergantung pada _domain_ tempat aplikasi atau pengguna beroperasi. Gunakan intuisi dan keahlian domain Anda untuk **menyesuaikan teknik** lebih lanjut. Misalnya, definisikan _kepribadian khusus domain_ dalam prompt sistem Anda, atau gunakan _template khusus domain_ dalam prompt pengguna. Berikan konten sekunder yang mencerminkan konteks domain, atau gunakan _petunjuk dan contoh khusus domain_ untuk mengarahkan model ke pola penggunaan yang familiar. - -2. **Pemahaman Model Penting.** Kita tahu model bersifat stokastik secara alami. Namun, implementasi model juga bisa berbeda dalam hal dataset pelatihan yang digunakan (pengetahuan pra-latih), kemampuan yang disediakan (misalnya melalui API atau SDK), dan jenis konten yang dioptimalkan (misalnya kode vs gambar vs teks). Pahami kekuatan dan keterbatasan model yang Anda gunakan, dan gunakan pengetahuan itu untuk _memprioritaskan tugas_ atau membangun _template khusus_ yang dioptimalkan untuk kemampuan model. - -3. **Iterasi & Validasi Penting.** Model berkembang dengan cepat, begitu juga teknik prompt engineering. Sebagai ahli domain, Anda mungkin memiliki konteks atau kriteria lain untuk aplikasi spesifik _Anda_, yang mungkin tidak berlaku untuk komunitas luas. Gunakan alat & teknik prompt engineering untuk "memulai" konstruksi prompt, lalu iterasi dan validasi hasil menggunakan intuisi dan keahlian domain Anda. Catat wawasan Anda dan buat **basis pengetahuan** (misalnya perpustakaan prompt) yang dapat digunakan sebagai baseline baru oleh orang lain, untuk iterasi lebih cepat di masa depan. - -## Praktik Terbaik - -Sekarang mari kita lihat praktik terbaik umum yang direkomendasikan oleh praktisi [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) dan [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst). - -| Apa | Mengapa | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Evaluasi model terbaru. | Generasi model baru kemungkinan memiliki fitur dan kualitas yang lebih baik - tapi mungkin juga menimbulkan biaya lebih tinggi. Evaluasi dampaknya, lalu buat keputusan migrasi. | -| Pisahkan instruksi & konteks | Periksa apakah model/penyedia Anda mendefinisikan _delimiter_ untuk membedakan instruksi, konten utama, dan konten sekunder dengan lebih jelas. Ini membantu model memberikan bobot token lebih akurat. | -| Jadilah spesifik dan jelas | Berikan detail lebih tentang konteks, hasil, panjang, format, gaya yang diinginkan. Ini akan meningkatkan kualitas dan konsistensi respons. Simpan resep dalam template yang dapat digunakan ulang. | -| Gunakan deskripsi dan contoh | Model mungkin merespons lebih baik dengan pendekatan "tunjukkan dan ceritakan". Mulai dengan pendekatan `zero-shot` di mana Anda memberikan instruksi (tanpa contoh), lalu coba `few-shot` sebagai penyempurnaan dengan beberapa contoh keluaran yang diinginkan. Gunakan analogi. | -| Gunakan petunjuk untuk memulai respons | Dorong model ke hasil yang diinginkan dengan memberikan kata atau frasa pembuka yang bisa digunakan sebagai titik awal respons. | -| Ulangi jika perlu | Kadang Anda perlu mengulangi instruksi ke model. Berikan instruksi sebelum dan sesudah konten utama, gunakan instruksi dan petunjuk, dll. Iterasi & validasi untuk melihat apa yang berhasil. | -| Urutan itu penting | Urutan penyajian informasi ke model dapat memengaruhi keluaran, bahkan dalam contoh pembelajaran, karena bias terkini. Coba berbagai opsi untuk melihat mana yang terbaik. | -| Beri model “jalan keluar” | Berikan model respons _fallback_ yang bisa diberikan jika model tidak dapat menyelesaikan tugas karena alasan apapun. Ini mengurangi kemungkinan model menghasilkan respons palsu atau dibuat-buat. | -| | | - -Seperti praktik terbaik lainnya, ingat bahwa _hasil Anda bisa berbeda_ tergantung model, tugas, dan domain. Gunakan ini sebagai titik awal, dan iterasi untuk menemukan apa yang terbaik bagi Anda. Evaluasi ulang proses prompt engineering Anda secara berkala seiring munculnya model dan alat baru, dengan fokus pada skalabilitas proses dan kualitas respons. - - - -## Tugas - -Selamat! Anda telah sampai di akhir pelajaran! Saatnya menguji beberapa konsep dan teknik dengan contoh nyata! - -Untuk tugas kita, kita akan menggunakan Jupyter Notebook dengan latihan yang bisa Anda selesaikan secara interaktif. Anda juga bisa memperluas Notebook dengan sel Markdown dan Kode Anda sendiri untuk mengeksplorasi ide dan teknik secara mandiri. - -### Untuk memulai, fork repo, lalu - -- (Direkomendasikan) Jalankan GitHub Codespaces -- (Alternatif) Clone repo ke perangkat lokal dan gunakan dengan Docker Desktop -- (Alternatif) Buka Notebook dengan lingkungan runtime Notebook pilihan Anda. - -### Selanjutnya, konfigurasikan variabel lingkungan Anda - -- Salin file `.env.copy` di root repo ke `.env` dan isi nilai `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT`, dan `AZURE_OPENAI_DEPLOYMENT`. Kembali ke bagian [Learning Sandbox](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) untuk belajar caranya. - -### Selanjutnya, buka Jupyter Notebook - -- Pilih kernel runtime. Jika menggunakan opsi 1 atau 2, cukup pilih kernel Python 3.10.x default yang disediakan oleh dev container. - -Anda siap menjalankan latihan. Perlu dicatat tidak ada jawaban _benar atau salah_ di sini - hanya eksplorasi opsi dengan coba-coba dan membangun intuisi tentang apa yang berhasil untuk model dan domain aplikasi tertentu. - -_Untuk alasan ini tidak ada segmen Solusi Kode dalam pelajaran ini. Sebagai gantinya, Notebook akan memiliki sel Markdown berjudul "My Solution:" yang menunjukkan satu contoh keluaran sebagai referensi._ - - - -## Pemeriksaan Pengetahuan - -Manakah dari berikut ini yang merupakan prompt yang baik mengikuti beberapa praktik terbaik yang masuk akal? - -1. Tunjukkan gambar mobil merah -2. Tunjukkan gambar mobil merah merek Volvo dan model XC90 yang diparkir di tepi tebing dengan matahari terbenam -3. Tunjukkan gambar mobil merah merek Volvo dan model XC90 - -A: 2, ini adalah prompt terbaik karena memberikan detail tentang "apa" dan masuk ke spesifik (bukan sembarang mobil tapi merek dan model tertentu) serta menggambarkan suasana secara keseluruhan. 3 adalah yang terbaik berikutnya karena juga mengandung banyak deskripsi. - -## 🚀 Tantangan - -Coba manfaatkan teknik "petunjuk" dengan prompt: Lengkapi kalimat "Tunjukkan gambar mobil merah merek Volvo dan ". Apa responsnya, dan bagaimana Anda akan memperbaikinya? - -## Kerja Bagus! Lanjutkan Pembelajaran Anda - -Ingin belajar lebih banyak tentang berbagai konsep Prompt Engineering? Kunjungi [halaman pembelajaran lanjutan](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) untuk menemukan sumber daya hebat lainnya tentang topik ini. - -Lanjut ke Pelajaran 5 di mana kita akan membahas [teknik prompting lanjutan](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**Penafian**: -Dokumen ini telah diterjemahkan menggunakan layanan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berupaya untuk mencapai akurasi, harap diketahui bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang sahih. Untuk informasi penting, disarankan menggunakan terjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini. \ No newline at end of file + + + + + + + diff --git a/translations/id/09-building-image-applications/README.md b/translations/id/09-building-image-applications/README.md index d40020d3c..d15126418 100644 --- a/translations/id/09-building-image-applications/README.md +++ b/translations/id/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# Membangun Aplikasi Generasi Gambar - -[![Membangun Aplikasi Generasi Gambar](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.id.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLM tidak hanya untuk menghasilkan teks. Kita juga bisa membuat gambar dari deskripsi teks. Memiliki gambar sebagai modalitas sangat berguna di berbagai bidang seperti MedTech, arsitektur, pariwisata, pengembangan game, dan lainnya. Di bab ini, kita akan membahas dua model generasi gambar paling populer, DALL-E dan Midjourney. - -## Pendahuluan - -Dalam pelajaran ini, kita akan membahas: - -- Generasi gambar dan mengapa hal ini berguna. -- DALL-E dan Midjourney, apa itu, dan bagaimana cara kerjanya. -- Cara membangun aplikasi generasi gambar. - -## Tujuan Pembelajaran - -Setelah menyelesaikan pelajaran ini, Anda akan mampu: - -- Membangun aplikasi generasi gambar. -- Menentukan batasan aplikasi Anda dengan meta prompt. -- Bekerja dengan DALL-E dan Midjourney. - -## Mengapa membangun aplikasi generasi gambar? - -Aplikasi generasi gambar adalah cara yang bagus untuk mengeksplorasi kemampuan Generative AI. Contohnya dapat digunakan untuk: - -- **Pengeditan dan sintesis gambar**. Anda bisa membuat gambar untuk berbagai kebutuhan, seperti pengeditan dan sintesis gambar. - -- **Diterapkan di berbagai industri**. Bisa juga digunakan untuk membuat gambar di berbagai industri seperti Medtech, Pariwisata, Pengembangan Game, dan lainnya. - -## Skenario: Edu4All - -Sebagai bagian dari pelajaran ini, kita akan melanjutkan bekerja dengan startup kita, Edu4All. Para siswa akan membuat gambar untuk tugas mereka, gambar apa yang dibuat tergantung pada siswa, bisa berupa ilustrasi untuk dongeng mereka sendiri, membuat karakter baru untuk cerita mereka, atau membantu memvisualisasikan ide dan konsep mereka. - -Berikut contoh gambar yang bisa dibuat siswa Edu4All jika mereka mengerjakan tugas kelas tentang monumen: - -![Edu4All startup, kelas tentang monumen, Menara Eiffel](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.id.png) - -dengan prompt seperti - -> "Anjing di samping Menara Eiffel di bawah sinar matahari pagi" - -## Apa itu DALL-E dan Midjourney? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) dan [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) adalah dua model generasi gambar paling populer, yang memungkinkan Anda menggunakan prompt untuk menghasilkan gambar. - -### DALL-E - -Mari mulai dengan DALL-E, sebuah model Generative AI yang menghasilkan gambar dari deskripsi teks. - -> [DALL-E adalah gabungan dari dua model, CLIP dan diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP**, adalah model yang menghasilkan embeddings, yaitu representasi numerik dari data, dari gambar dan teks. - -- **Diffused attention**, adalah model yang menghasilkan gambar dari embeddings. DALL-E dilatih menggunakan dataset gambar dan teks dan dapat digunakan untuk membuat gambar dari deskripsi teks. Misalnya, DALL-E bisa membuat gambar kucing dengan topi, atau anjing dengan mohawk. - -### Midjourney - -Midjourney bekerja mirip dengan DALL-E, menghasilkan gambar dari prompt teks. Midjourney juga bisa digunakan untuk membuat gambar dengan prompt seperti “kucing dengan topi”, atau “anjing dengan mohawk”. - -![Gambar yang dihasilkan oleh Midjourney, merpati mekanik](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Kredit gambar Wikipedia, gambar dihasilkan oleh Midjourney_ - -## Bagaimana DALL-E dan Midjourney Bekerja - -Pertama, [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). DALL-E adalah model Generative AI berbasis arsitektur transformer dengan _autoregressive transformer_. - -_Transformer autoregresif_ mendefinisikan bagaimana model menghasilkan gambar dari deskripsi teks, yaitu dengan menghasilkan satu piksel pada satu waktu, lalu menggunakan piksel yang sudah dibuat untuk menghasilkan piksel berikutnya. Proses ini melewati beberapa lapisan dalam jaringan saraf hingga gambar selesai. - -Dengan proses ini, DALL-E mengontrol atribut, objek, karakteristik, dan lainnya dalam gambar yang dihasilkan. Namun, DALL-E 2 dan 3 memiliki kontrol yang lebih baik atas gambar yang dibuat. - -## Membangun aplikasi generasi gambar pertama Anda - -Lalu, apa yang dibutuhkan untuk membangun aplikasi generasi gambar? Anda memerlukan pustaka berikut: - -- **python-dotenv**, sangat disarankan menggunakan pustaka ini untuk menyimpan rahasia Anda di file _.env_ terpisah dari kode. -- **openai**, pustaka ini digunakan untuk berinteraksi dengan API OpenAI. -- **pillow**, untuk bekerja dengan gambar di Python. -- **requests**, untuk membantu membuat permintaan HTTP. - -1. Buat file _.env_ dengan isi berikut: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Temukan informasi ini di Azure Portal untuk resource Anda di bagian "Keys and Endpoint". - -1. Kumpulkan pustaka di atas dalam file bernama _requirements.txt_ seperti ini: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. Selanjutnya, buat virtual environment dan instal pustaka: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Untuk Windows, gunakan perintah berikut untuk membuat dan mengaktifkan virtual environment: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. Tambahkan kode berikut di file bernama _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Mari jelaskan kode ini: - -- Pertama, kita mengimpor pustaka yang dibutuhkan, termasuk pustaka OpenAI, dotenv, requests, dan Pillow. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Selanjutnya, kita memuat variabel lingkungan dari file _.env_. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- Setelah itu, kita mengatur endpoint, kunci API OpenAI, versi, dan tipe. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- Berikutnya, kita menghasilkan gambar: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - Kode di atas merespon dengan objek JSON yang berisi URL gambar yang dihasilkan. Kita bisa menggunakan URL tersebut untuk mengunduh gambar dan menyimpannya ke file. - -- Terakhir, kita membuka gambar dan menggunakan penampil gambar standar untuk menampilkannya: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Detail lebih lanjut tentang pembuatan gambar - -Mari lihat kode yang menghasilkan gambar dengan lebih detail: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt**, adalah teks prompt yang digunakan untuk membuat gambar. Dalam contoh ini, promptnya adalah "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils". -- **size**, adalah ukuran gambar yang dihasilkan. Dalam contoh ini, gambar berukuran 1024x1024 piksel. -- **n**, adalah jumlah gambar yang dihasilkan. Dalam contoh ini, kita membuat dua gambar. -- **temperature**, adalah parameter yang mengontrol tingkat keacakan output model Generative AI. Nilainya antara 0 dan 1, di mana 0 berarti output deterministik dan 1 berarti output acak. Nilai default adalah 0.7. - -Masih banyak hal lain yang bisa dilakukan dengan gambar yang akan kita bahas di bagian berikutnya. - -## Kemampuan tambahan dari generasi gambar - -Anda sudah melihat bagaimana kita bisa membuat gambar hanya dengan beberapa baris kode Python. Namun, ada lebih banyak hal yang bisa dilakukan dengan gambar. - -Anda juga bisa melakukan hal berikut: - -- **Melakukan pengeditan**. Dengan memberikan gambar yang sudah ada, sebuah masker, dan prompt, Anda bisa mengubah gambar. Misalnya, Anda bisa menambahkan sesuatu pada bagian gambar tertentu. Bayangkan gambar kelinci kita, Anda bisa menambahkan topi pada kelinci tersebut. Caranya dengan memberikan gambar, masker (yang menandai bagian yang akan diubah), dan prompt teks yang menjelaskan perubahan yang diinginkan. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - Gambar dasar hanya berisi kelinci, tapi gambar akhir akan memiliki topi pada kelinci tersebut. - -- **Membuat variasi**. Ide dasarnya adalah Anda mengambil gambar yang sudah ada dan meminta dibuatkan variasinya. Untuk membuat variasi, Anda memberikan gambar dan prompt teks serta kode seperti ini: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Catatan, ini hanya didukung di OpenAI - -## Temperature - -Temperature adalah parameter yang mengontrol tingkat keacakan output model Generative AI. Nilainya antara 0 dan 1, di mana 0 berarti output deterministik dan 1 berarti output acak. Nilai default adalah 0.7. - -Mari lihat contoh bagaimana temperature bekerja, dengan menjalankan prompt ini dua kali: - -> Prompt : "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils" - -![Kelinci di atas kuda memegang permen lollipop, versi 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.id.png) - -Sekarang jalankan prompt yang sama sekali lagi untuk melihat bahwa kita tidak akan mendapatkan gambar yang sama dua kali: - -![Gambar kelinci di atas kuda](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.id.png) - -Seperti yang Anda lihat, gambarnya mirip tapi tidak sama. Mari coba ubah nilai temperature menjadi 0.1 dan lihat apa yang terjadi: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Mengubah temperature - -Mari kita coba membuat respons lebih deterministik. Dari dua gambar yang kita buat, pada gambar pertama ada kelinci dan pada gambar kedua ada kuda, jadi gambarnya sangat berbeda. - -Mari ubah kode kita dan set temperature menjadi 0, seperti ini: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Sekarang saat Anda menjalankan kode ini, Anda akan mendapatkan dua gambar berikut: - -- ![Temperature 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.id.png) -- ![Temperature 0 , v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.id.png) - -Di sini Anda bisa melihat dengan jelas bahwa gambar-gambar tersebut lebih mirip satu sama lain. - -## Cara menentukan batasan aplikasi Anda dengan metaprompt - -Dengan demo kita, kita sudah bisa menghasilkan gambar untuk klien kita. Namun, kita perlu membuat batasan untuk aplikasi kita. - -Misalnya, kita tidak ingin menghasilkan gambar yang tidak pantas untuk lingkungan kerja, atau yang tidak sesuai untuk anak-anak. - -Kita bisa melakukan ini dengan _metaprompt_. Metaprompt adalah prompt teks yang digunakan untuk mengontrol output model Generative AI. Misalnya, kita bisa menggunakan metaprompt untuk memastikan gambar yang dihasilkan aman untuk lingkungan kerja, atau sesuai untuk anak-anak. - -### Bagaimana cara kerjanya? - -Sekarang, bagaimana metaprompt bekerja? - -Metaprompt adalah prompt teks yang digunakan untuk mengontrol output model Generative AI, ditempatkan sebelum prompt teks utama, dan digunakan untuk mengendalikan output model serta disematkan dalam aplikasi untuk mengontrol output model. Dengan menggabungkan input prompt dan input metaprompt dalam satu prompt teks. - -Salah satu contoh metaprompt adalah sebagai berikut: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Sekarang, mari lihat bagaimana kita bisa menggunakan metaprompt dalam demo kita. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -Dari prompt di atas, Anda bisa melihat bagaimana semua gambar yang dibuat mempertimbangkan metaprompt tersebut. - -## Tugas - mari beri kemampuan pada siswa - -Kita sudah memperkenalkan Edu4All di awal pelajaran ini. Sekarang saatnya memberi kemampuan pada siswa untuk membuat gambar untuk tugas mereka. - -Para siswa akan membuat gambar untuk tugas mereka yang berisi monumen, monumen apa yang dibuat tergantung pada kreativitas siswa. Siswa diminta menggunakan kreativitas mereka untuk menempatkan monumen-monumen ini dalam konteks yang berbeda. - -## Solusi - -Berikut salah satu solusi yang mungkin: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Kerja Bagus! Lanjutkan Pembelajaran Anda - -Setelah menyelesaikan pelajaran ini, lihat koleksi [Generative AI Learning](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) kami untuk terus meningkatkan pengetahuan Anda tentang Generative AI! - -Lanjutkan ke Pelajaran 10 di mana kita akan membahas cara [membangun aplikasi AI dengan low-code](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**Penafian**: -Dokumen ini telah diterjemahkan menggunakan layanan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berupaya untuk mencapai akurasi, harap diperhatikan bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang sahih. Untuk informasi penting, disarankan menggunakan terjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini. \ No newline at end of file + + + + diff --git a/translations/id/12-designing-ux-for-ai-applications/README.md b/translations/id/12-designing-ux-for-ai-applications/README.md index c81ca314d..ab50cf279 100644 --- a/translations/id/12-designing-ux-for-ai-applications/README.md +++ b/translations/id/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# Merancang UX untuk Aplikasi AI - -[![Merancang UX untuk Aplikasi AI](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.id.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Klik gambar di atas untuk menonton video pelajaran ini)_ - -Pengalaman pengguna adalah aspek yang sangat penting dalam membangun aplikasi. Pengguna harus dapat menggunakan aplikasi Anda dengan cara yang efisien untuk menyelesaikan tugas. Efisiensi adalah satu hal, tetapi Anda juga perlu merancang aplikasi agar dapat digunakan oleh semua orang, agar menjadi _aksesibel_. Bab ini akan fokus pada area ini sehingga Anda diharapkan dapat merancang aplikasi yang dapat dan ingin digunakan oleh orang banyak. - -## Pendahuluan - -Pengalaman pengguna adalah bagaimana seorang pengguna berinteraksi dan menggunakan produk atau layanan tertentu, baik itu sistem, alat, atau desain. Saat mengembangkan aplikasi AI, pengembang tidak hanya fokus memastikan pengalaman pengguna efektif tetapi juga etis. Dalam pelajaran ini, kita akan membahas cara membangun aplikasi Kecerdasan Buatan (AI) yang memenuhi kebutuhan pengguna. - -Pelajaran ini akan membahas area berikut: - -- Pengenalan Pengalaman Pengguna dan Memahami Kebutuhan Pengguna -- Merancang Aplikasi AI untuk Kepercayaan dan Transparansi -- Merancang Aplikasi AI untuk Kolaborasi dan Umpan Balik - -## Tujuan Pembelajaran - -Setelah mengikuti pelajaran ini, Anda akan dapat: - -- Memahami cara membangun aplikasi AI yang memenuhi kebutuhan pengguna. -- Merancang aplikasi AI yang mendorong kepercayaan dan kolaborasi. - -### Prasyarat - -Luangkan waktu untuk membaca lebih lanjut tentang [pengalaman pengguna dan design thinking.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Pengenalan Pengalaman Pengguna dan Memahami Kebutuhan Pengguna - -Dalam startup pendidikan fiktif kami, ada dua pengguna utama, guru dan siswa. Masing-masing pengguna memiliki kebutuhan unik. Desain yang berpusat pada pengguna memprioritaskan pengguna dengan memastikan produk relevan dan bermanfaat bagi mereka yang menjadi targetnya. - -Aplikasi harus **berguna, dapat diandalkan, aksesibel, dan menyenangkan** untuk memberikan pengalaman pengguna yang baik. - -### Kegunaan - -Berguna berarti aplikasi memiliki fungsi yang sesuai dengan tujuan yang dimaksud, seperti mengotomatisasi proses penilaian atau membuat flashcard untuk revisi. Aplikasi yang mengotomatisasi proses penilaian harus mampu memberikan nilai secara akurat dan efisien berdasarkan kriteria yang telah ditentukan. Demikian pula, aplikasi yang membuat flashcard revisi harus dapat menghasilkan pertanyaan yang relevan dan beragam berdasarkan data yang dimilikinya. - -### Keandalan - -Dapat diandalkan berarti aplikasi dapat menjalankan tugasnya secara konsisten dan tanpa kesalahan. Namun, AI seperti manusia tidak sempurna dan bisa saja melakukan kesalahan. Aplikasi mungkin menghadapi kesalahan atau situasi tak terduga yang memerlukan intervensi atau koreksi manusia. Bagaimana Anda menangani kesalahan? Di bagian terakhir pelajaran ini, kita akan membahas bagaimana sistem dan aplikasi AI dirancang untuk kolaborasi dan umpan balik. - -### Aksesibilitas - -Aksesibel berarti memperluas pengalaman pengguna kepada pengguna dengan berbagai kemampuan, termasuk mereka yang memiliki disabilitas, sehingga tidak ada yang tertinggal. Dengan mengikuti pedoman dan prinsip aksesibilitas, solusi AI menjadi lebih inklusif, mudah digunakan, dan bermanfaat bagi semua pengguna. - -### Menyenangkan - -Menyenangkan berarti aplikasi memberikan pengalaman yang menyenangkan saat digunakan. Pengalaman pengguna yang menarik dapat berdampak positif pada pengguna, mendorong mereka untuk kembali menggunakan aplikasi dan meningkatkan pendapatan bisnis. - -![gambar yang menggambarkan pertimbangan UX dalam AI](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.id.png) - -Tidak semua tantangan dapat diselesaikan dengan AI. AI hadir untuk meningkatkan pengalaman pengguna Anda, baik dengan mengotomatisasi tugas manual, maupun mempersonalisasi pengalaman pengguna. - -## Merancang Aplikasi AI untuk Kepercayaan dan Transparansi - -Membangun kepercayaan sangat penting saat merancang aplikasi AI. Kepercayaan memastikan pengguna yakin bahwa aplikasi akan menyelesaikan pekerjaan, memberikan hasil secara konsisten, dan hasil tersebut sesuai dengan kebutuhan pengguna. Risiko di area ini adalah ketidakpercayaan dan kepercayaan berlebihan. Ketidakpercayaan terjadi ketika pengguna memiliki sedikit atau tidak ada kepercayaan pada sistem AI, yang menyebabkan pengguna menolak aplikasi Anda. Kepercayaan berlebihan terjadi ketika pengguna melebih-lebihkan kemampuan sistem AI, sehingga pengguna terlalu percaya pada sistem AI tersebut. Misalnya, sistem penilaian otomatis dalam kasus kepercayaan berlebihan bisa membuat guru tidak memeriksa beberapa tugas untuk memastikan sistem penilaian bekerja dengan baik. Ini bisa berakibat pada nilai yang tidak adil atau tidak akurat bagi siswa, atau hilangnya kesempatan untuk memberikan umpan balik dan perbaikan. - -Dua cara untuk memastikan kepercayaan menjadi pusat desain adalah explainability dan control. - -### Explainability - -Ketika AI membantu dalam pengambilan keputusan seperti menyampaikan pengetahuan kepada generasi mendatang, sangat penting bagi guru dan orang tua untuk memahami bagaimana keputusan AI dibuat. Ini adalah explainability - pemahaman tentang bagaimana aplikasi AI membuat keputusan. Merancang untuk explainability termasuk menambahkan detail contoh tentang apa yang dapat dilakukan aplikasi AI. Misalnya, daripada "Mulai dengan AI teacher", sistem dapat menggunakan: "Ringkas catatan Anda untuk revisi yang lebih mudah menggunakan AI." - -![halaman landing aplikasi dengan ilustrasi jelas tentang explainability dalam aplikasi AI](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.id.png) - -Contoh lain adalah bagaimana AI menggunakan data pengguna dan data pribadi. Misalnya, pengguna dengan persona siswa mungkin memiliki batasan berdasarkan personanya. AI mungkin tidak dapat mengungkapkan jawaban atas pertanyaan tetapi dapat membantu membimbing pengguna untuk berpikir bagaimana mereka dapat menyelesaikan masalah. - -![AI menjawab pertanyaan berdasarkan persona](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.id.png) - -Bagian penting terakhir dari explainability adalah penyederhanaan penjelasan. Siswa dan guru mungkin bukan ahli AI, oleh karena itu penjelasan tentang apa yang dapat atau tidak dapat dilakukan aplikasi harus disederhanakan dan mudah dipahami. - -![penjelasan sederhana tentang kemampuan AI](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.id.png) - -### Control - -Generative AI menciptakan kolaborasi antara AI dan pengguna, di mana misalnya pengguna dapat memodifikasi prompt untuk hasil yang berbeda. Selain itu, setelah output dihasilkan, pengguna harus dapat memodifikasi hasil tersebut sehingga mereka merasa memiliki kontrol. Misalnya, saat menggunakan Bing, Anda dapat menyesuaikan prompt berdasarkan format, nada, dan panjang. Selain itu, Anda dapat menambahkan perubahan pada output dan memodifikasinya seperti yang ditunjukkan di bawah ini: - -![Hasil pencarian Bing dengan opsi untuk memodifikasi prompt dan output](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.id.png) - -Fitur lain di Bing yang memungkinkan pengguna memiliki kontrol atas aplikasi adalah kemampuan untuk memilih ikut serta (opt-in) dan keluar (opt-out) dari data yang digunakan AI. Untuk aplikasi sekolah, seorang siswa mungkin ingin menggunakan catatan mereka serta sumber daya guru sebagai bahan revisi. - -![Hasil pencarian Bing dengan opsi untuk memodifikasi prompt dan output](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.id.png) - -> Saat merancang aplikasi AI, niat yang jelas sangat penting untuk memastikan pengguna tidak terlalu percaya sehingga menetapkan ekspektasi yang tidak realistis terhadap kemampuannya. Salah satu caranya adalah dengan menciptakan hambatan antara prompt dan hasil. Mengingatkan pengguna bahwa ini adalah AI dan bukan manusia biasa. - -## Merancang Aplikasi AI untuk Kolaborasi dan Umpan Balik - -Seperti yang disebutkan sebelumnya, generative AI menciptakan kolaborasi antara pengguna dan AI. Sebagian besar interaksi adalah pengguna memasukkan prompt dan AI menghasilkan output. Bagaimana jika outputnya salah? Bagaimana aplikasi menangani kesalahan jika terjadi? Apakah AI menyalahkan pengguna atau meluangkan waktu untuk menjelaskan kesalahan? - -Aplikasi AI harus dirancang untuk menerima dan memberikan umpan balik. Ini tidak hanya membantu sistem AI menjadi lebih baik tetapi juga membangun kepercayaan dengan pengguna. Siklus umpan balik harus dimasukkan dalam desain, contohnya bisa berupa tombol jempol naik atau turun pada output. - -Cara lain untuk menangani ini adalah dengan mengkomunikasikan secara jelas kemampuan dan keterbatasan sistem. Ketika pengguna melakukan kesalahan dengan meminta sesuatu di luar kemampuan AI, harus ada cara untuk menangani hal ini, seperti yang ditunjukkan di bawah. - -![Memberikan umpan balik dan menangani kesalahan](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.id.png) - -Kesalahan sistem umum terjadi pada aplikasi di mana pengguna mungkin memerlukan bantuan dengan informasi di luar cakupan AI atau aplikasi mungkin memiliki batasan berapa banyak pertanyaan/mata pelajaran yang dapat dibuat ringkasannya. Misalnya, aplikasi AI yang dilatih dengan data pada mata pelajaran terbatas seperti Sejarah dan Matematika mungkin tidak dapat menangani pertanyaan tentang Geografi. Untuk mengatasi ini, sistem AI dapat memberikan respons seperti: "Maaf, produk kami telah dilatih dengan data pada mata pelajaran berikut....., saya tidak dapat menjawab pertanyaan yang Anda ajukan." - -Aplikasi AI tidak sempurna, oleh karena itu pasti akan membuat kesalahan. Saat merancang aplikasi Anda, pastikan Anda menyediakan ruang untuk umpan balik dari pengguna dan penanganan kesalahan dengan cara yang sederhana dan mudah dijelaskan. - -## Tugas - -Ambil aplikasi AI apa pun yang telah Anda buat sejauh ini, pertimbangkan untuk menerapkan langkah-langkah berikut dalam aplikasi Anda: - -- **Menyenangkan:** Pertimbangkan bagaimana Anda dapat membuat aplikasi Anda lebih menyenangkan. Apakah Anda menambahkan penjelasan di mana-mana? Apakah Anda mendorong pengguna untuk mengeksplorasi? Bagaimana Anda merangkai pesan kesalahan Anda? - -- **Kegunaan:** Membangun aplikasi web. Pastikan aplikasi Anda dapat dinavigasi dengan mouse dan keyboard. - -- **Kepercayaan dan transparansi:** Jangan sepenuhnya percaya pada AI dan hasilnya, pertimbangkan bagaimana Anda akan menambahkan manusia dalam proses untuk memverifikasi hasil. Juga, pertimbangkan dan terapkan cara lain untuk mencapai kepercayaan dan transparansi. - -- **Kontrol:** Berikan pengguna kontrol atas data yang mereka berikan ke aplikasi. Terapkan cara agar pengguna dapat memilih ikut serta (opt-in) dan keluar (opt-out) dari pengumpulan data dalam aplikasi AI. - -## Lanjutkan Pembelajaran Anda! - -Setelah menyelesaikan pelajaran ini, lihat koleksi [Generative AI Learning](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) kami untuk terus meningkatkan pengetahuan Generative AI Anda! - -Lanjut ke Pelajaran 13, di mana kita akan membahas cara [mengamankan aplikasi AI](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**Penafian**: -Dokumen ini telah diterjemahkan menggunakan layanan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berupaya untuk mencapai akurasi, harap diperhatikan bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang sahih. Untuk informasi penting, disarankan menggunakan terjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini. \ No newline at end of file + + + diff --git a/translations/id/README.md b/translations/id/README.md index 8004bfe61..bf99c1308 100644 --- a/translations/id/README.md +++ b/translations/id/README.md @@ -1,137 +1,12 @@ - -![Generative AI Untuk Pemula](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.id.png) - -### 21 Pelajaran yang mengajarkan semua yang perlu Anda ketahui untuk mulai membangun aplikasi Generative AI - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Dukungan Multi-Bahasa - -#### Didukung melalui GitHub Action (Otomatis & Selalu Terbaru) - -[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](./README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md) - -# Generative AI untuk Pemula (Versi 3) - Sebuah Kursus - -Pelajari dasar-dasar membangun aplikasi Generative AI dengan kursus lengkap 21 pelajaran dari Microsoft Cloud Advocates. - -## 🌱 Memulai - -Kursus ini terdiri dari 21 pelajaran. Setiap pelajaran membahas topik tersendiri, jadi mulai dari mana saja yang Anda suka! - -Pelajaran diberi label sebagai pelajaran "Learn" yang menjelaskan konsep Generative AI atau pelajaran "Build" yang menjelaskan konsep sekaligus contoh kode dalam **Python** dan **TypeScript** jika memungkinkan. - -Untuk Pengembang .NET, cek [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -Setiap pelajaran juga menyertakan bagian "Keep Learning" dengan alat pembelajaran tambahan. - -## Apa yang Anda Butuhkan -### Untuk menjalankan kode dalam kursus ini, Anda bisa menggunakan salah satu dari: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **Pelajaran:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **Pelajaran:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **Pelajaran:** "oai-assignment" - -- Pengetahuan dasar Python atau TypeScript akan sangat membantu - \*Untuk pemula mutlak, cek kursus [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) dan [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) -- Akun GitHub untuk [fork seluruh repo ini](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) ke akun GitHub Anda sendiri - -Kami telah membuat pelajaran **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** untuk membantu Anda menyiapkan lingkungan pengembangan. - -Jangan lupa untuk [memberi bintang (🌟) pada repo ini](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) agar lebih mudah ditemukan nanti. - -## 🧠 Siap untuk Deploy? - -Jika Anda mencari contoh kode yang lebih maju, lihat koleksi kami [Generative AI Code Samples](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) dalam **Python** dan **TypeScript**. - -## 🗣️ Bertemu Pelajar Lain, Dapatkan Dukungan - -Bergabunglah dengan [server Discord resmi Azure AI Foundry](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) untuk bertemu dan berjejaring dengan pelajar lain yang mengikuti kursus ini serta mendapatkan dukungan. - -Ajukan pertanyaan atau bagikan umpan balik produk di [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum) di Github. - -## 🚀 Membangun Startup? - -Daftar di [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) untuk mendapatkan **kredit OpenAI gratis** dan hingga **$150k kredit Azure untuk mengakses model OpenAI melalui Azure OpenAI Services**. - -## 🙏 Ingin membantu? - -Apakah Anda punya saran atau menemukan kesalahan ejaan atau kode? [Buat issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) atau [Buat pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 Setiap pelajaran mencakup: - -- Video pengantar singkat tentang topik -- Pelajaran tertulis yang ada di README -- Contoh kode Python dan TypeScript yang mendukung Azure OpenAI dan OpenAI API -- Tautan ke sumber tambahan untuk melanjutkan pembelajaran Anda - -## 🗃️ Pelajaran - -| # | **Tautan Pelajaran** | **Deskripsi** | **Video** | **Pembelajaran Tambahan** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Cara Menyiapkan Lingkungan Pengembangan Anda | Video Segera Hadir | [Pelajari Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introduction to Generative AI and LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Memahami apa itu Generative AI dan bagaimana Large Language Models (LLMs) bekerja. | [Video](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Pelajari Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Exploring and comparing different LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Cara memilih model yang tepat untuk kasus penggunaan Anda | [Video](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Pelajari Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Using Generative AI Responsibly](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Cara membangun Aplikasi Generative AI secara bertanggung jawab | [Video](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Pelajari Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Understanding Prompt Engineering Fundamentals](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Praktik Terbaik Prompt Engineering secara langsung | [Video](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Pelajari Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Creating Advanced Prompts](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Cara menerapkan teknik prompt engineering yang meningkatkan hasil prompt Anda | [Video](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Pelajari Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Membangun Aplikasi Generasi Teks](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Bangun:** Aplikasi generasi teks menggunakan Azure OpenAI / OpenAI API | [Video](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Pelajari Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Membangun Aplikasi Chat](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Bangun:** Teknik untuk membangun dan mengintegrasikan aplikasi chat secara efisien. | [Video](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Pelajari Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Membangun Aplikasi Pencarian dengan Database Vektor](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Bangun:** Aplikasi pencarian yang menggunakan Embeddings untuk mencari data. | [Video](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Pelajari Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Membangun Aplikasi Generasi Gambar](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Bangun:** Aplikasi generasi gambar | [Video](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Pelajari Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Membangun Aplikasi AI Low Code](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Bangun:** Aplikasi Generative AI menggunakan alat Low Code | [Video](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Pelajari Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Mengintegrasikan Aplikasi Eksternal dengan Function Calling](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Bangun:** Apa itu function calling dan kegunaannya untuk aplikasi | [Video](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Pelajari Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [Merancang UX untuk Aplikasi AI](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Pelajari:** Cara menerapkan prinsip desain UX saat mengembangkan Aplikasi Generative AI | [Video](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Pelajari Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Mengamankan Aplikasi Generative AI Anda](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Pelajari:** Ancaman dan risiko terhadap sistem AI serta cara mengamankan sistem tersebut. | [Video](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Pelajari Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [Siklus Hidup Aplikasi Generative AI](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Pelajari:** Alat dan metrik untuk mengelola Siklus Hidup LLM dan LLMOps | [Video](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Pelajari Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) dan Database Vektor](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Bangun:** Aplikasi menggunakan Kerangka RAG untuk mengambil embeddings dari Database Vektor | [Video](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Pelajari Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Model Open Source dan Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Bangun:** Aplikasi menggunakan model open source yang tersedia di Hugging Face | [Video](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Pelajari Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI Agents](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Bangun:** Aplikasi menggunakan Kerangka AI Agent | [Video](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Pelajari Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [Fine-Tuning LLMs](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Pelajari:** Apa, mengapa, dan bagaimana melakukan fine-tuning pada LLMs | [Video](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Pelajari Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Membangun dengan SLMs](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Pelajari:** Manfaat membangun dengan Small Language Models | Video Segera Hadir | [Pelajari Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Membangun dengan Model Mistral](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Pelajari:** Fitur dan perbedaan Model Keluarga Mistral | Video Segera Hadir | [Pelajari Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Membangun dengan Model Meta](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Pelajari:** Fitur dan perbedaan Model Keluarga Meta | Video Segera Hadir | [Pelajari Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Ucapan Terima Kasih Khusus - -Ucapan terima kasih khusus kepada [**John Aziz**](https://www.linkedin.com/in/john0isaac/) atas pembuatan semua GitHub Actions dan workflow - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) atas kontribusi penting pada setiap pelajaran untuk meningkatkan pengalaman pembelajar dan kode. - -## 🎒 Kursus Lainnya - -Tim kami juga membuat kursus lain! Cek di: - -- [**BARU** Model Context Protocol untuk Pemula](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI Agents untuk Pemula](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Generative AI untuk Pemula menggunakan .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Generative AI untuk Pemula menggunakan JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML untuk Pemula](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Data Science untuk Pemula](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI untuk Pemula](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Keamanan Siber untuk Pemula](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Web Dev untuk Pemula](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT untuk Pemula](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [Pengembangan XR untuk Pemula](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Menguasai GitHub Copilot untuk Pemrograman Berpasangan AI](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Menguasai GitHub Copilot untuk Pengembang C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Pilih Petualangan Copilot Anda Sendiri](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Penafian**: -Dokumen ini telah diterjemahkan menggunakan layanan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berupaya untuk mencapai akurasi, harap diperhatikan bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang sahih. Untuk informasi penting, disarankan menggunakan terjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini. \ No newline at end of file + + + + diff --git a/translations/it/00-course-setup/01-setup-cloud.md b/translations/it/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..99afa4896 --- /dev/null +++ b/translations/it/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/it/00-course-setup/02-setup-local.md b/translations/it/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..49d89a1b0 --- /dev/null +++ b/translations/it/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/it/00-course-setup/03-providers.md b/translations/it/00-course-setup/03-providers.md new file mode 100644 index 000000000..c5824b9d2 --- /dev/null +++ b/translations/it/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/it/00-course-setup/README.md b/translations/it/00-course-setup/README.md index d6841ba61..a5a7ec61d 100644 --- a/translations/it/00-course-setup/README.md +++ b/translations/it/00-course-setup/README.md @@ -1,227 +1,12 @@ - -# Iniziare con questo corso - -Siamo molto entusiasti che tu inizi questo corso e scopra cosa ti ispira a creare con l’Intelligenza Artificiale Generativa! - -Per garantirti il successo, questa pagina illustra i passaggi per la configurazione, i requisiti tecnici e dove trovare aiuto se necessario. - -## Passaggi per la configurazione - -Per iniziare a seguire questo corso, dovrai completare i seguenti passaggi. - -### 1. Fai il fork di questo repository - -[Fai il fork di tutto questo repository](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) sul tuo account GitHub per poter modificare il codice e completare le sfide. Puoi anche [mettere una stella (🌟) a questo repository](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) per trovarlo più facilmente insieme ai repository correlati. - -### 2. Crea un codespace - -Per evitare problemi di dipendenze durante l’esecuzione del codice, consigliamo di eseguire questo corso in un [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst). - -Puoi crearlo selezionando l’opzione `Code` sulla tua versione forkata di questo repository e scegliendo l’opzione **Codespaces**. - -![Dialogo che mostra i pulsanti per creare un codespace](../../../00-course-setup/images/who-will-pay.webp) - -### 3. Conservare le tue API Keys - -Mantenere le tue API keys al sicuro è importante quando si sviluppa qualsiasi tipo di applicazione. Ti consigliamo di non memorizzare le API keys direttamente nel codice. Inserirle in un repository pubblico potrebbe causare problemi di sicurezza e anche costi indesiderati se usate da malintenzionati. -Ecco una guida passo-passo su come creare un file `.env` per Python e aggiungere il `GITHUB_TOKEN`: - -1. **Vai alla directory del tuo progetto**: apri il terminale o il prompt dei comandi e spostati nella directory principale del progetto dove vuoi creare il file `.env`. - - ```bash - cd path/to/your/project - ``` - -2. **Crea il file `.env`**: usa il tuo editor di testo preferito per creare un nuovo file chiamato `.env`. Se usi la riga di comando, puoi usare `touch` (su sistemi Unix) o `echo` (su Windows): - - Sistemi Unix: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **Modifica il file `.env`**: apri il file `.env` in un editor di testo (ad esempio VS Code, Notepad++ o altro). Aggiungi la seguente riga, sostituendo `your_github_token_here` con il tuo token GitHub reale: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Salva il file**: salva le modifiche e chiudi l’editor. - -5. **Installa `python-dotenv`**: se non l’hai già fatto, devi installare il pacchetto `python-dotenv` per caricare le variabili d’ambiente dal file `.env` nella tua applicazione Python. Puoi installarlo usando `pip`: - - ```bash - pip install python-dotenv - ``` - -6. **Carica le variabili d’ambiente nel tuo script Python**: nel tuo script Python, usa il pacchetto `python-dotenv` per caricare le variabili d’ambiente dal file `.env`: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -Ecco fatto! Hai creato con successo un file `.env`, aggiunto il tuo token GitHub e caricato tutto nella tua applicazione Python. - -## Come eseguire localmente sul tuo computer - -Per eseguire il codice localmente sul tuo computer, devi avere installata una versione di [Python](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -Per usare il repository, devi quindi clonarlo: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -Una volta che hai tutto pronto, puoi iniziare! - -## Passaggi opzionali - -### Installare Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) è un installer leggero per installare [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python e alcuni pacchetti. -Conda è un gestore di pacchetti che facilita la configurazione e il passaggio tra diversi [ambienti virtuali](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) Python e pacchetti. È utile anche per installare pacchetti non disponibili tramite `pip`. - -Puoi seguire la [guida all’installazione di MiniConda](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) per configurarlo. - -Dopo aver installato Miniconda, devi clonare il [repository](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (se non l’hai già fatto). - -Successivamente, devi creare un ambiente virtuale. Per farlo con Conda, crea un nuovo file ambiente (_environment.yml_). Se stai seguendo il corso usando Codespaces, crea questo file nella directory `.devcontainer`, quindi `.devcontainer/environment.yml`. - -Popola il file ambiente con lo snippet qui sotto: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Se riscontri errori usando conda, puoi installare manualmente le Microsoft AI Libraries con il seguente comando nel terminale. - -``` -conda install -c microsoft azure-ai-ml -``` - -Il file ambiente specifica le dipendenze necessarie. `` è il nome che vuoi dare al tuo ambiente Conda, mentre `` è la versione di Python che vuoi usare, ad esempio `3` per l’ultima versione principale di Python. - -Fatto ciò, puoi creare il tuo ambiente Conda eseguendo i comandi seguenti nella riga di comando/terminale - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -Consulta la [guida agli ambienti Conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst) se incontri problemi. - -### Usare Visual Studio Code con l’estensione di supporto Python - -Consigliamo di usare l’editor [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) con l’[estensione di supporto Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) installata per questo corso. Tuttavia, è solo una raccomandazione e non un requisito obbligatorio. - -> **Nota**: Aprendo il repository del corso in VS Code, puoi configurare il progetto all’interno di un container. Questo grazie alla [cartella speciale `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) presente nel repository. Ne parleremo più avanti. - -> **Nota**: Una volta clonato e aperto il repository in VS Code, ti verrà automaticamente suggerito di installare un’estensione di supporto Python. - -> **Nota**: Se VS Code ti suggerisce di riaprire il repository in un container, rifiuta questa richiesta per usare la versione di Python installata localmente. - -### Usare Jupyter nel browser - -Puoi anche lavorare al progetto usando l’ambiente [Jupyter](https://jupyter.org?WT.mc_id=academic-105485-koreyst) direttamente nel browser. Sia Jupyter classico che [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) offrono un ambiente di sviluppo piacevole con funzionalità come completamento automatico, evidenziazione del codice, ecc. - -Per avviare Jupyter localmente, apri il terminale/prompt dei comandi, spostati nella directory del corso ed esegui: - -```bash -jupyter notebook -``` - -oppure - -```bash -jupyterhub -``` - -Questo avvierà un’istanza di Jupyter e l’URL per accedervi verrà mostrato nella finestra del terminale. - -Una volta aperto l’URL, vedrai la struttura del corso e potrai navigare in qualsiasi file `*.ipynb`. Ad esempio, `08-building-search-applications/python/oai-solution.ipynb`. - -### Eseguire in un container - -Un’alternativa a configurare tutto sul tuo computer o in Codespace è usare un [container](../../../00-course-setup/). La cartella speciale `.devcontainer` nel repository del corso permette a VS Code di configurare il progetto all’interno di un container. -Al di fuori di Codespaces, questo richiede l’installazione di Docker e, a dire il vero, un po’ di lavoro, quindi consigliamo questa opzione solo a chi ha esperienza con i container. - -Uno dei modi migliori per mantenere le tue API keys sicure usando GitHub Codespaces è tramite i Codespace Secrets. Segui la guida su [Codespaces secrets management](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) per saperne di più. - -## Lezioni e requisiti tecnici - -Il corso comprende 6 lezioni teoriche e 6 lezioni di coding. - -Per le lezioni di coding, utilizziamo il servizio Azure OpenAI. Avrai bisogno di accesso al servizio Azure OpenAI e di una API key per eseguire il codice. Puoi richiedere l’accesso [compilando questa domanda](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -Mentre aspetti che la tua richiesta venga elaborata, ogni lezione di coding include anche un file `README.md` dove puoi vedere il codice e i risultati. - -## Usare il servizio Azure OpenAI per la prima volta - -Se è la prima volta che usi il servizio Azure OpenAI, segui questa guida su come [creare e distribuire una risorsa Azure OpenAI Service.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## Usare l’API OpenAI per la prima volta - -Se è la prima volta che usi l’API OpenAI, segui la guida su come [creare e usare l’interfaccia.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## Incontra altri studenti - -Abbiamo creato canali nel nostro server ufficiale Discord della [AI Community](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) per incontrare altri studenti. È un ottimo modo per fare networking con altri imprenditori, sviluppatori, studenti e chiunque voglia migliorare le proprie competenze in Intelligenza Artificiale Generativa. - -[![Join discord channel](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -Il team del progetto sarà presente su questo server Discord per aiutare gli studenti. - -## Contribuire - -Questo corso è un’iniziativa open source. Se noti aree di miglioramento o problemi, crea una [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) o segnala un [issue su GitHub](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -Il team del progetto monitorerà tutti i contributi. Contribuire all’open source è un modo fantastico per costruire la tua carriera nell’Intelligenza Artificiale Generativa. - -La maggior parte dei contributi richiede di accettare un Contributor License Agreement (CLA) che dichiara che hai il diritto e concedi effettivamente i diritti per usare il tuo contributo. Per dettagli, visita il sito [CLA, Contributor License Agreement](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Importante: quando traduci testi in questo repository, assicurati di non usare traduzioni automatiche. Verificheremo le traduzioni tramite la community, quindi offriti solo per traduzioni in lingue in cui sei competente. - -Quando invii una pull request, un CLA-bot determinerà automaticamente se devi fornire un CLA e decorerà la PR di conseguenza (ad esempio, con etichetta o commento). Segui semplicemente le istruzioni del bot. Dovrai farlo solo una volta per tutti i repository che usano il nostro CLA. - -Questo progetto ha adottato il [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst). Per maggiori informazioni leggi le FAQ sul Code of Conduct o contatta [Email opencode](opencode@microsoft.com) per domande o commenti. - -## Iniziamo - -Ora che hai completato i passaggi necessari per seguire questo corso, iniziamo con un’[introduzione all’Intelligenza Artificiale Generativa e ai LLM](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**Disclaimer**: -Questo documento è stato tradotto utilizzando il servizio di traduzione automatica [Co-op Translator](https://github.com/Azure/co-op-translator). Pur impegnandoci per garantire l’accuratezza, si prega di notare che le traduzioni automatiche possono contenere errori o imprecisioni. Il documento originale nella sua lingua nativa deve essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda una traduzione professionale effettuata da un umano. Non ci assumiamo alcuna responsabilità per eventuali malintesi o interpretazioni errate derivanti dall’uso di questa traduzione. \ No newline at end of file + + + + diff --git a/translations/it/00-course-setup/SETUP.md b/translations/it/00-course-setup/SETUP.md deleted file mode 100644 index 9858b8f64..000000000 --- a/translations/it/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# Configura il tuo ambiente di sviluppo - -Abbiamo configurato questo repository e corso con un [contenitore di sviluppo](https://containers.dev?WT.mc_id=academic-105485-koreyst) che include un runtime universale in grado di supportare lo sviluppo in Python3, .NET, Node.js e Java. La configurazione correlata è definita nel file `devcontainer.json` situato nella cartella `.devcontainer/` alla radice di questo repository. - -Per attivare il dev container, avvialo in [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (per un runtime ospitato nel cloud) o in [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (per un runtime ospitato localmente). Consulta [questa documentazione](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) per maggiori dettagli su come funzionano i dev container all’interno di VS Code. - -> [!TIP] -> Consigliamo di utilizzare GitHub Codespaces per iniziare rapidamente con il minimo sforzo. Offre una generosa [quota di utilizzo gratuita](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) per gli account personali. Configura i [timeout](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) per interrompere o eliminare i codespaces inattivi e massimizzare l’uso della tua quota. - -## 1. Esecuzione degli assignment - -Ogni lezione potrà includere assignment _opzionali_ forniti in uno o più linguaggi di programmazione, tra cui: Python, .NET/C#, Java e JavaScript/TypeScript. Questa sezione offre indicazioni generali sull’esecuzione di tali assignment. - -### 1.1 Assignment in Python - -Gli assignment in Python sono forniti come applicazioni (`.py`) o notebook Jupyter (`.ipynb`). -- Per eseguire il notebook, aprilo in Visual Studio Code, quindi clicca su _Select Kernel_ (in alto a destra) e seleziona l’opzione Python 3 predefinita. Ora puoi cliccare su _Run All_ per eseguire tutto il notebook. -- Per eseguire applicazioni Python da linea di comando, segui le istruzioni specifiche dell’assignment per selezionare i file corretti e fornire gli argomenti richiesti. - -## 2. Configurazione dei provider - -Gli assignment **possono** essere configurati per funzionare con uno o più deployment di Large Language Model (LLM) tramite un provider di servizi supportato come OpenAI, Azure o Hugging Face. Questi forniscono un _endpoint ospitato_ (API) a cui possiamo accedere programmaticamente con le credenziali corrette (chiave API o token). In questo corso, trattiamo i seguenti provider: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) con modelli diversi, inclusa la serie principale GPT. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) per modelli OpenAI con focus sulla readiness enterprise - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) per modelli open-source e server di inferenza - -**Per questi esercizi dovrai utilizzare i tuoi account personali**. Gli assignment sono opzionali, quindi puoi scegliere di configurare uno, tutti o nessuno dei provider in base ai tuoi interessi. Ecco alcune indicazioni per la registrazione: - -| Registrazione | Costo | Chiave API | Playground | Commenti | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst) | [Prezzi](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst) | [Basata su progetto](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [No-Code, Web](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Modelli multipli disponibili | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst) | [Prezzi](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst) | [SDK Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Studio Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [È necessario richiedere l’accesso in anticipo](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) | -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Prezzi](https://huggingface.co/pricing) | [Token di accesso](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst) | [Hugging Chat ha modelli limitati](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Segui le indicazioni qui sotto per _configurare_ questo repository per l’uso con i diversi provider. Gli assignment che richiedono un provider specifico conterranno uno di questi tag nel nome del file: - - `aoai` - richiede endpoint e chiave Azure OpenAI - - `oai` - richiede endpoint e chiave OpenAI - - `hf` - richiede token Hugging Face - -Puoi configurare uno, nessuno o tutti i provider. Gli assignment correlati genereranno un errore in caso di credenziali mancanti. - -### 2.1. Creare il file `.env` - -Si presume che tu abbia già letto le indicazioni sopra, ti sia registrato presso il provider rilevante e abbia ottenuto le credenziali di autenticazione necessarie (API_KEY o token). Nel caso di Azure OpenAI, si presume inoltre che tu abbia un deployment valido di un servizio Azure OpenAI (endpoint) con almeno un modello GPT distribuito per il completamento chat. - -Il passo successivo è configurare le tue **variabili d’ambiente locali** come segue: - -1. Cerca nella cartella principale un file `.env.copy` che dovrebbe contenere qualcosa di simile a questo: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Copia quel file in `.env` usando il comando qui sotto. Questo file è _gitignore-d_, per mantenere i segreti al sicuro. - - ```bash - cp .env.copy .env - ``` - -3. Compila i valori (sostituisci i segnaposto a destra del `=`) come descritto nella sezione successiva. - -3. (Opzionale) Se usi GitHub Codespaces, puoi salvare le variabili d’ambiente come _Codespaces secrets_ associate a questo repository. In tal caso, non sarà necessario configurare un file .env locale. **Tieni però presente che questa opzione funziona solo con GitHub Codespaces.** Dovrai comunque configurare il file .env se usi Docker Desktop. - -### 2.2. Popolare il file `.env` - -Diamo un’occhiata veloce ai nomi delle variabili per capire cosa rappresentano: - -| Variabile | Descrizione | -| :--- | :--- | -| HUGGING_FACE_API_KEY | Questo è il token di accesso utente che hai configurato nel tuo profilo | -| OPENAI_API_KEY | Questa è la chiave di autorizzazione per usare il servizio OpenAI non Azure | -| AZURE_OPENAI_API_KEY | Questa è la chiave di autorizzazione per usare il servizio Azure OpenAI | -| AZURE_OPENAI_ENDPOINT | Questo è l’endpoint distribuito per una risorsa Azure OpenAI | -| AZURE_OPENAI_DEPLOYMENT | Questo è l’endpoint di deployment del modello per la _generazione di testo_ | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | Questo è l’endpoint di deployment del modello per gli _embedding di testo_ | -| | | - -Nota: Le ultime due variabili Azure OpenAI riflettono un modello predefinito per il completamento chat (generazione testo) e per la ricerca vettoriale (embedding) rispettivamente. Le istruzioni per configurarli saranno definite negli assignment rilevanti. - -### 2.3 Configurare Azure: dal Portale - -I valori dell’endpoint e della chiave Azure OpenAI si trovano nel [Portale Azure](https://portal.azure.com?WT.mc_id=academic-105485-koreyst), quindi iniziamo da lì. - -1. Vai al [Portale Azure](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -2. Clicca sull’opzione **Keys and Endpoint** nella barra laterale (menu a sinistra). -3. Clicca su **Show Keys** - dovresti vedere: KEY 1, KEY 2 e Endpoint. -4. Usa il valore di KEY 1 per AZURE_OPENAI_API_KEY -5. Usa il valore di Endpoint per AZURE_OPENAI_ENDPOINT - -Ora ci servono gli endpoint per i modelli specifici che abbiamo distribuito. - -1. Clicca sull’opzione **Model deployments** nella barra laterale (menu a sinistra) per la risorsa Azure OpenAI. -2. Nella pagina di destinazione, clicca su **Manage Deployments** - -Questo ti porterà al sito Azure OpenAI Studio, dove troveremo gli altri valori come descritto di seguito. - -### 2.4 Configurare Azure: da Studio - -1. Naviga su [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **dalla tua risorsa** come descritto sopra. -2. Clicca sulla scheda **Deployments** (barra laterale, sinistra) per vedere i modelli attualmente distribuiti. -3. Se il modello desiderato non è distribuito, usa **Create new deployment** per distribuirlo. -4. Ti servirà un modello di _text-generation_ - consigliamo: **gpt-35-turbo** -5. Ti servirà un modello di _text-embedding_ - consigliamo **text-embedding-ada-002** - -Ora aggiorna le variabili d’ambiente per riflettere il nome del _Deployment_ usato. Di solito sarà lo stesso nome del modello, a meno che tu non l’abbia cambiato esplicitamente. Ad esempio, potresti avere: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**Non dimenticare di salvare il file .env quando hai finito**. Ora puoi uscire dal file e tornare alle istruzioni per eseguire il notebook. - -### 2.5 Configurare OpenAI: dal Profilo - -La tua chiave API OpenAI si trova nel tuo [account OpenAI](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). Se non ne hai una, puoi registrarti e crearne una. Una volta ottenuta la chiave, puoi usarla per compilare la variabile `OPENAI_API_KEY` nel file `.env`. - -### 2.6 Configurare Hugging Face: dal Profilo - -Il tuo token Hugging Face si trova nel tuo profilo sotto [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). Non pubblicare o condividere questi token pubblicamente. Crea invece un nuovo token per l’uso in questo progetto e copialo nel file `.env` sotto la variabile `HUGGING_FACE_API_KEY`. _Nota:_ tecnicamente non è una chiave API, ma viene usato per l’autenticazione, quindi manteniamo questa convenzione di denominazione per coerenza. - -**Disclaimer**: -Questo documento è stato tradotto utilizzando il servizio di traduzione automatica [Co-op Translator](https://github.com/Azure/co-op-translator). Pur impegnandoci per garantire accuratezza, si prega di notare che le traduzioni automatiche possono contenere errori o imprecisioni. Il documento originale nella sua lingua nativa deve essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda una traduzione professionale effettuata da un umano. Non ci assumiamo alcuna responsabilità per eventuali malintesi o interpretazioni errate derivanti dall’uso di questa traduzione. \ No newline at end of file diff --git a/translations/it/04-prompt-engineering-fundamentals/README.md b/translations/it/04-prompt-engineering-fundamentals/README.md index f296a9d50..a5db7342c 100644 --- a/translations/it/04-prompt-engineering-fundamentals/README.md +++ b/translations/it/04-prompt-engineering-fundamentals/README.md @@ -1,457 +1,15 @@ - -# Fondamenti di Prompt Engineering - -[![Fondamenti di Prompt Engineering](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.it.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Introduzione -Questo modulo copre i concetti e le tecniche essenziali per creare prompt efficaci nei modelli di AI generativa. Anche il modo in cui scrivi il tuo prompt per un LLM è importante. Un prompt ben progettato può ottenere una risposta di qualità superiore. Ma cosa significano esattamente termini come _prompt_ e _prompt engineering_? E come posso migliorare l’_input_ del prompt che invio all’LLM? Queste sono le domande a cui cercheremo di rispondere in questo capitolo e nel successivo. - -_L’AI generativa_ è in grado di creare nuovi contenuti (ad esempio testo, immagini, audio, codice ecc.) in risposta alle richieste degli utenti. Lo fa utilizzando _Large Language Models_ come la serie GPT di OpenAI ("Generative Pre-trained Transformer") addestrati per usare il linguaggio naturale e il codice. - -Gli utenti possono ora interagire con questi modelli usando paradigmi familiari come la chat, senza necessità di competenze tecniche o formazione. I modelli sono _basati su prompt_ - gli utenti inviano un input testuale (prompt) e ricevono la risposta dell’AI (completion). Possono quindi "chattare con l’AI" in modo iterativo, in conversazioni multi-turno, perfezionando il prompt finché la risposta non corrisponde alle loro aspettative. - -I "prompt" diventano così l’interfaccia di _programmazione principale_ per le app di AI generativa, indicando ai modelli cosa fare e influenzando la qualità delle risposte restituite. Il "Prompt Engineering" è un campo di studio in rapida crescita che si concentra sul _design e l’ottimizzazione_ dei prompt per fornire risposte coerenti e di qualità su larga scala. - -## Obiettivi di Apprendimento - -In questa lezione, impareremo cos’è il Prompt Engineering, perché è importante e come possiamo creare prompt più efficaci per un dato modello e obiettivo applicativo. Comprenderemo i concetti chiave e le migliori pratiche per il prompt engineering - e scopriremo un ambiente interattivo "sandbox" in Jupyter Notebooks dove possiamo vedere questi concetti applicati a esempi reali. - -Al termine di questa lezione saremo in grado di: - -1. Spiegare cos’è il prompt engineering e perché è importante. -2. Descrivere i componenti di un prompt e come vengono utilizzati. -3. Apprendere le migliori pratiche e tecniche per il prompt engineering. -4. Applicare le tecniche apprese a esempi reali, usando un endpoint OpenAI. - -## Termini Chiave - -Prompt Engineering: La pratica di progettare e perfezionare gli input per guidare i modelli AI a produrre output desiderati. -Tokenizzazione: Il processo di conversione del testo in unità più piccole, chiamate token, che un modello può comprendere e elaborare. -Instruction-Tuned LLMs: Large Language Models (LLM) che sono stati affinati con istruzioni specifiche per migliorare accuratezza e pertinenza delle risposte. - -## Ambiente di Apprendimento Sandbox - -Il prompt engineering è attualmente più un’arte che una scienza. Il modo migliore per migliorare la nostra intuizione è _praticare di più_ e adottare un approccio di tentativi ed errori che combina competenze nel dominio applicativo con tecniche raccomandate e ottimizzazioni specifiche per modello. - -Il Jupyter Notebook che accompagna questa lezione fornisce un ambiente _sandbox_ dove puoi mettere in pratica ciò che impari - man mano o come parte della sfida di codice alla fine. Per eseguire gli esercizi, ti serviranno: - -1. **Una chiave API Azure OpenAI** - l’endpoint del servizio per un LLM distribuito. -2. **Un runtime Python** - in cui eseguire il Notebook. -3. **Variabili d’ambiente locali** - _completa ora i passaggi di [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) per prepararti_. - -Il notebook include esercizi _starter_ - ma sei incoraggiato ad aggiungere tue sezioni di _Markdown_ (descrizione) e _Codice_ (richieste di prompt) per provare più esempi o idee - e costruire la tua intuizione per il design dei prompt. - -## Guida Illustrata - -Vuoi avere una panoramica di cosa tratta questa lezione prima di iniziare? Dai un’occhiata a questa guida illustrata, che ti dà un’idea degli argomenti principali trattati e dei punti chiave su cui riflettere in ciascuno. La roadmap della lezione ti porta dalla comprensione dei concetti fondamentali e delle sfide fino ad affrontarli con tecniche di prompt engineering e best practice rilevanti. Nota che la sezione "Tecniche Avanzate" in questa guida si riferisce ai contenuti trattati nel _capitolo successivo_ di questo percorso. - -![Guida Illustrata al Prompt Engineering](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.it.png) - -## La Nostra Startup - -Ora, parliamo di come _questo argomento_ si collega alla missione della nostra startup di [portare l’innovazione AI nell’educazione](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). Vogliamo costruire applicazioni AI per l’_apprendimento personalizzato_ - quindi pensiamo a come diversi utenti della nostra applicazione potrebbero "progettare" i prompt: - -- **Amministratori** potrebbero chiedere all’AI di _analizzare i dati del curriculum per identificare lacune nella copertura_. L’AI può riassumere i risultati o visualizzarli con codice. -- **Educatori** potrebbero chiedere all’AI di _generare un piano di lezione per un pubblico e un argomento specifici_. L’AI può costruire il piano personalizzato in un formato specificato. -- **Studenti** potrebbero chiedere all’AI di _fare da tutor in una materia difficile_. L’AI può ora guidare gli studenti con lezioni, suggerimenti ed esempi su misura per il loro livello. - -Questo è solo la punta dell’iceberg. Dai un’occhiata a [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) - una libreria open-source di prompt curata da esperti di educazione - per avere un’idea più ampia delle possibilità! _Prova a eseguire alcuni di questi prompt nella sandbox o usando l’OpenAI Playground per vedere cosa succede!_ - - - -## Cos’è il Prompt Engineering? - -Abbiamo iniziato questa lezione definendo il **Prompt Engineering** come il processo di _progettare e ottimizzare_ input testuali (prompt) per fornire risposte coerenti e di qualità (completion) per un dato obiettivo applicativo e modello. Possiamo pensarlo come un processo in 2 fasi: - -- _progettare_ il prompt iniziale per un dato modello e obiettivo -- _perfezionare_ il prompt in modo iterativo per migliorare la qualità della risposta - -Si tratta necessariamente di un processo di tentativi ed errori che richiede intuizione e impegno da parte dell’utente per ottenere risultati ottimali. Ma perché è importante? Per rispondere a questa domanda, dobbiamo prima capire tre concetti: - -- _Tokenizzazione_ = come il modello "vede" il prompt -- _Base LLMs_ = come il modello di base "elabora" un prompt -- _Instruction-Tuned LLMs_ = come il modello può ora interpretare "compiti" - -### Tokenizzazione - -Un LLM vede i prompt come una _sequenza di token_ dove modelli diversi (o versioni di un modello) possono tokenizzare lo stesso prompt in modi differenti. Poiché gli LLM sono addestrati su token (e non su testo grezzo), il modo in cui i prompt vengono tokenizzati ha un impatto diretto sulla qualità della risposta generata. - -Per farti un’idea di come funziona la tokenizzazione, prova strumenti come l’[OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) mostrato qui sotto. Incolla il tuo prompt e guarda come viene convertito in token, prestando attenzione a come vengono gestiti spazi bianchi e segni di punteggiatura. Nota che questo esempio mostra un LLM più vecchio (GPT-3) - quindi provare con un modello più recente potrebbe dare risultati diversi. - -![Tokenizzazione](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.it.png) - -### Concetto: Modelli di Base (Foundation Models) - -Una volta che un prompt è tokenizzato, la funzione principale del ["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (o modello di base) è prevedere il token successivo nella sequenza. Poiché gli LLM sono addestrati su enormi dataset testuali, hanno una buona comprensione delle relazioni statistiche tra i token e possono fare questa previsione con una certa sicurezza. Nota che non comprendono il _significato_ delle parole nel prompt o nel token; vedono solo un pattern che possono "completare" con la loro previsione successiva. Possono continuare a prevedere la sequenza finché non vengono interrotti dall’utente o da una condizione predefinita. - -Vuoi vedere come funziona la completion basata su prompt? Inserisci il prompt sopra nell’Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) con le impostazioni predefinite. Il sistema è configurato per trattare i prompt come richieste di informazioni - quindi dovresti vedere una completion che soddisfa questo contesto. - -Ma cosa succede se l’utente vuole vedere qualcosa di specifico che rispetti certi criteri o obiettivi di compito? Qui entrano in gioco gli LLM _instruction-tuned_. - -![Base LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.it.png) - -### Concetto: Instruction Tuned LLMs - -Un [Instruction Tuned LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) parte dal modello di base e lo affina con esempi o coppie input/output (ad esempio "messaggi" multi-turno) che possono contenere istruzioni chiare - e la risposta dell’AI cerca di seguire quell’istruzione. - -Questo utilizza tecniche come il Reinforcement Learning with Human Feedback (RLHF) che possono addestrare il modello a _seguire istruzioni_ e _imparare dal feedback_ in modo da produrre risposte più adatte ad applicazioni pratiche e più rilevanti per gli obiettivi dell’utente. - -Proviamolo - riprendi il prompt sopra, ma ora cambia il _messaggio di sistema_ per fornire la seguente istruzione come contesto: - -> _Riassumi il contenuto fornito per uno studente di seconda elementare. Mantieni il risultato in un paragrafo con 3-5 punti elenco._ - -Vedi come il risultato ora è tarato per riflettere l’obiettivo e il formato desiderati? Un educatore può ora usare direttamente questa risposta nelle sue slide per quella lezione. - -![Instruction Tuned LLM Chat Completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.it.png) - -## Perché abbiamo bisogno del Prompt Engineering? - -Ora che sappiamo come i prompt vengono elaborati dagli LLM, parliamo del _perché_ abbiamo bisogno del prompt engineering. La risposta sta nel fatto che gli LLM attuali presentano diverse sfide che rendono più difficile ottenere _completion affidabili e coerenti_ senza mettere impegno nella costruzione e ottimizzazione del prompt. Per esempio: - -1. **Le risposte del modello sono stocastiche.** Lo _stesso prompt_ probabilmente produrrà risposte diverse con modelli o versioni diverse. E può anche produrre risultati differenti con _lo stesso modello_ in momenti diversi. _Le tecniche di prompt engineering ci aiutano a minimizzare queste variazioni fornendo migliori linee guida_. - -1. **I modelli possono inventare risposte.** I modelli sono pre-addestrati con dataset _grandi ma finiti_, il che significa che non conoscono concetti al di fuori di quel campo di addestramento. Di conseguenza, possono produrre completion inaccurate, immaginarie o direttamente contraddittorie rispetto a fatti noti. _Le tecniche di prompt engineering aiutano gli utenti a identificare e mitigare queste invenzioni, ad esempio chiedendo all’AI citazioni o ragionamenti_. - -1. **Le capacità dei modelli variano.** Modelli più recenti o generazioni successive hanno capacità più ricche ma portano anche peculiarità uniche e compromessi in termini di costi e complessità. _Il prompt engineering può aiutarci a sviluppare best practice e flussi di lavoro che astraggono le differenze e si adattano ai requisiti specifici del modello in modo scalabile e fluido_. - -Vediamo questo in azione nell’OpenAI o Azure OpenAI Playground: - -- Usa lo stesso prompt con diverse distribuzioni di LLM (ad esempio OpenAI, Azure OpenAI, Hugging Face) - hai notato le variazioni? -- Usa lo stesso prompt ripetutamente con la _stessa_ distribuzione LLM (ad esempio Azure OpenAI playground) - come sono cambiate queste variazioni? - -### Esempio di Invenzioni (Fabrications) - -In questo corso, usiamo il termine **"fabrication"** per riferirci al fenomeno per cui gli LLM a volte generano informazioni fattualmente errate a causa di limiti nel loro addestramento o altre restrizioni. Potresti aver sentito questo fenomeno chiamato _"allucinazioni"_ in articoli popolari o paper di ricerca. Tuttavia, raccomandiamo fortemente di usare il termine _"fabrication"_ per non antropomorfizzare involontariamente il comportamento attribuendo una caratteristica umana a un risultato generato da una macchina. Questo rafforza anche le [linee guida di Responsible AI](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) dal punto di vista terminologico, eliminando termini che potrebbero essere considerati offensivi o non inclusivi in certi contesti. - -Vuoi farti un’idea di come funzionano le fabrication? Pensa a un prompt che istruisce l’AI a generare contenuti su un argomento inesistente (per assicurarti che non sia presente nel dataset di addestramento). Per esempio - ho provato questo prompt: -# Piano di lezione: La Guerra Marziana del 2076 - -## Obiettivi della lezione -- Comprendere le cause principali della Guerra Marziana del 2076 -- Analizzare gli eventi chiave e le strategie militari utilizzate -- Valutare le conseguenze a lungo termine del conflitto su Marte e sulla Terra - -## Introduzione (10 minuti) -- Breve panoramica storica di Marte prima del 2076 -- Presentazione delle tensioni politiche e sociali che hanno portato alla guerra - -## Sviluppo (30 minuti) -### Cause della guerra -- Risorse limitate e competizione tra colonie -- Divergenze ideologiche e politiche -- Incidenti scatenanti e escalation del conflitto - -### Eventi principali -- Prima battaglia di Valles Marineris -- Assedio della colonia di Olympus Mons -- Intervento delle forze terrestri - -### Strategie militari -- Uso di droni e robot da combattimento -- Tattiche di guerriglia marziana -- Impatto della tecnologia avanzata sul campo di battaglia - -## Discussione (15 minuti) -- Come la guerra ha influenzato le relazioni tra Marte e Terra -- Le lezioni apprese e le misure per prevenire futuri conflitti - -## Conclusione (5 minuti) -- Riepilogo dei punti chiave -- Domande e risposte - -## Materiali di supporto -- Mappe delle principali battaglie -- Documenti storici e testimonianze -- Video ricostruzioni degli eventi - -## Compiti a casa -- Scrivere un saggio sulle cause della Guerra Marziana del 2076 -- Preparare una presentazione sulle conseguenze del conflitto -Una ricerca sul web mi ha mostrato che esistono racconti di fantasia (ad esempio, serie televisive o libri) sulle guerre marziane - ma nessuno nel 2076. Il buon senso ci dice anche che il 2076 è _nel futuro_ e quindi non può essere associato a un evento reale. - -Cosa succede quindi quando eseguiamo questo prompt con diversi fornitori di LLM? - -> **Risposta 1**: OpenAI Playground (GPT-35) - -![Risposta 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.it.png) - -> **Risposta 2**: Azure OpenAI Playground (GPT-35) - -![Risposta 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.it.png) - -> **Risposta 3**: : Hugging Face Chat Playground (LLama-2) - -![Risposta 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.it.png) - -Come previsto, ogni modello (o versione del modello) produce risposte leggermente diverse grazie al comportamento stocastico e alle variazioni nelle capacità del modello. Per esempio, un modello si rivolge a un pubblico di ottava elementare mentre un altro assume uno studente delle superiori. Ma tutti e tre i modelli hanno generato risposte che potrebbero convincere un utente non informato che l’evento fosse reale. - -Tecniche di prompt engineering come il _metaprompting_ e la _configurazione della temperatura_ possono ridurre in parte le fabbricazioni del modello. Nuove _architetture_ di prompt engineering integrano anche nuovi strumenti e tecniche senza soluzione di continuità nel flusso del prompt, per mitigare o ridurre alcuni di questi effetti. - -## Caso di Studio: GitHub Copilot - -Concludiamo questa sezione dando un’idea di come il prompt engineering venga utilizzato in soluzioni reali, esaminando un Caso di Studio: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot è il tuo "Programmatore AI in coppia" - trasforma i prompt testuali in completamenti di codice ed è integrato nel tuo ambiente di sviluppo (ad esempio, Visual Studio Code) per un’esperienza utente fluida. Come documentato nella serie di blog qui sotto, la prima versione si basava sul modello OpenAI Codex - con gli ingegneri che hanno rapidamente capito la necessità di affinare il modello e sviluppare tecniche migliori di prompt engineering per migliorare la qualità del codice. A luglio, hanno [presentato un modello AI migliorato che va oltre Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) per suggerimenti ancora più rapidi. - -Leggi i post in ordine per seguire il loro percorso di apprendimento. - -- **Maggio 2023** | [GitHub Copilot sta migliorando nella comprensione del tuo codice](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **Maggio 2023** | [Dentro GitHub: lavorare con gli LLM dietro GitHub Copilot](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Giugno 2023** | [Come scrivere prompt migliori per GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Luglio 2023** | [.. GitHub Copilot va oltre Codex con un modello AI migliorato](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Luglio 2023** | [Guida per sviluppatori al Prompt Engineering e agli LLM](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **Settembre 2023** | [Come costruire un’app LLM aziendale: lezioni da GitHub Copilot](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -Puoi anche esplorare il loro [blog di Engineering](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) per altri post come [questo](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) che mostra come questi modelli e tecniche vengano _applicati_ per guidare applicazioni reali. - ---- - - - -## Costruzione del Prompt - -Abbiamo visto perché il prompt engineering è importante - ora capiamo come i prompt vengono _costruiti_ così da poter valutare diverse tecniche per una progettazione più efficace del prompt. - -### Prompt Base - -Iniziamo con il prompt base: un input testuale inviato al modello senza altro contesto. Ecco un esempio - quando inviamo le prime parole dell’inno nazionale degli Stati Uniti all’OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst), questo completa istantaneamente la risposta con le righe successive, illustrando il comportamento base di predizione. - -| Prompt (Input) | Completion (Output) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | Sembra che tu stia iniziando il testo di "The Star-Spangled Banner", l’inno nazionale degli Stati Uniti. Il testo completo è ... | - -### Prompt Complesso - -Ora aggiungiamo contesto e istruzioni a quel prompt base. La [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) ci permette di costruire un prompt complesso come una raccolta di _messaggi_ con: - -- Coppie input/output che riflettono l’input dell’_utente_ e la risposta dell’_assistente_. -- Messaggio di sistema che imposta il contesto per il comportamento o la personalità dell’assistente. - -La richiesta ora ha la forma mostrata qui sotto, dove la _tokenizzazione_ cattura efficacemente le informazioni rilevanti dal contesto e dalla conversazione. Cambiare il contesto di sistema può avere un impatto sulla qualità dei completamenti tanto quanto gli input forniti dall’utente. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Prompt Istruttivo - -Negli esempi sopra, il prompt utente era una semplice domanda testuale che può essere interpretata come una richiesta di informazioni. Con i prompt _istruttivi_, possiamo usare quel testo per specificare un compito in modo più dettagliato, fornendo una guida migliore all’AI. Ecco un esempio: - -| Prompt (Input) | Completion (Output) | Tipo di Istruzione | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Scrivi una descrizione della Guerra Civile | _ha restituito un semplice paragrafo_ | Semplice | -| Scrivi una descrizione della Guerra Civile. Fornisci date ed eventi chiave e descrivi la loro importanza | _ha restituito un paragrafo seguito da un elenco di date chiave con descrizioni_ | Complesso | -| Scrivi una descrizione della Guerra Civile in 1 paragrafo. Fornisci 3 punti elenco con date chiave e la loro importanza. Fornisci altri 3 punti elenco con figure storiche importanti e i loro contributi. Restituisci l’output come file JSON | _restituisce dettagli più estesi in una casella di testo, formattata come JSON che puoi copiare e incollare in un file e validare se necessario_ | Complesso. Formattato. | - -## Contenuto Primario - -Negli esempi sopra, il prompt era ancora piuttosto aperto, permettendo all’LLM di decidere quale parte del suo dataset pre-addestrato fosse rilevante. Con il pattern di progettazione _contenuto primario_, il testo di input è diviso in due parti: - -- un’istruzione (azione) -- contenuto rilevante (che influenza l’azione) - -Ecco un esempio in cui l’istruzione è "riassumi questo in 2 frasi". - -| Prompt (Input) | Completion (Output) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Giove è il quinto pianeta dal Sole ed è il più grande del Sistema Solare. È un gigante gassoso con una massa pari a un millesimo di quella del Sole, ma due volte e mezzo quella di tutti gli altri pianeti del Sistema Solare messi insieme. Giove è uno degli oggetti più luminosi visibili a occhio nudo nel cielo notturno, ed è noto alle antiche civiltà fin da prima della storia registrata. Prende il nome dal dio romano Giove.[19] Quando visto dalla Terra, Giove può essere abbastanza luminoso da far proiettare ombre visibili,[20] ed è in media il terzo oggetto naturale più luminoso nel cielo notturno dopo la Luna e Venere.
**Riassumi questo in 2 frasi brevi** | Giove, il quinto pianeta dal Sole, è il più grande del Sistema Solare ed è noto per essere uno degli oggetti più luminosi nel cielo notturno. Chiamato come il dio romano Giove, è un gigante gassoso la cui massa è due volte e mezzo quella di tutti gli altri pianeti del Sistema Solare messi insieme. | - -Il segmento di contenuto primario può essere usato in vari modi per guidare istruzioni più efficaci: - -- **Esempi** - invece di dire esplicitamente al modello cosa fare con un’istruzione, fornisci esempi di cosa fare e lascia che inferisca il modello. -- **Suggerimenti** - segui l’istruzione con un "suggerimento" che prepara il completamento, guidando il modello verso risposte più rilevanti. -- **Template** - sono 'ricette' ripetibili per prompt con segnaposto (variabili) che possono essere personalizzati con dati per casi d’uso specifici. - -Esploriamo questi casi in azione. - -### Uso di Esempi - -Questo è un approccio in cui usi il contenuto primario per "nutrire il modello" con alcuni esempi dell’output desiderato per una data istruzione, e lasci che inferisca il modello per l’output desiderato. In base al numero di esempi forniti, possiamo avere zero-shot prompting, one-shot prompting, few-shot prompting ecc. - -Il prompt ora consiste di tre componenti: - -- Una descrizione del compito -- Alcuni esempi dell’output desiderato -- L’inizio di un nuovo esempio (che diventa una descrizione implicita del compito) - -| Tipo di Apprendimento | Prompt (Input) | Completion (Output) | -| :-------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| Zero-shot | "The Sun is Shining". Traduci in spagnolo | "El Sol está brillando". | -| One-shot | "The Sun is Shining" => "El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| Few-shot | Il giocatore ha corso le basi => Baseball
Il giocatore ha fatto un ace => Tennis
Il giocatore ha fatto un sei => Cricket
Il giocatore ha fatto una schiacciata => | Basket | -| | | | - -Nota come abbiamo dovuto fornire un’istruzione esplicita ("Traduci in spagnolo") nel zero-shot prompting, ma questa viene dedotta nell’esempio one-shot. L’esempio few-shot mostra come aggiungere più esempi permetta ai modelli di fare inferenze più accurate senza istruzioni aggiuntive. - -### Suggerimenti per il Prompt - -Un’altra tecnica per usare il contenuto primario è fornire _suggerimenti_ invece di esempi. In questo caso, diamo al modello una spinta nella direzione giusta _iniziando_ con uno snippet che riflette il formato di risposta desiderato. Il modello quindi "prende il suggerimento" e continua in quella direzione. - -| Numero di Suggerimenti | Prompt (Input) | Completion (Output) | -| :--------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Giove è il quinto pianeta dal Sole ed è il più grande del Sistema Solare. È un gigante gassoso con una massa pari a un millesimo di quella del Sole, ma due volte e mezzo quella di tutti gli altri pianeti del Sistema Solare messi insieme. Giove è uno degli oggetti più luminosi visibili a occhio nudo nel cielo notturno, ed è noto alle antiche civiltà fin da prima della storia registrata. - -**Riassumi Questo** | Giove è il pianeta più grande del nostro Sistema Solare e il quinto in ordine di distanza dal Sole. È un gigante gassoso con una massa pari a 1/1000 di quella del Sole, ma è più pesante di tutti gli altri pianeti messi insieme. Le antiche civiltà conoscevano Giove da molto tempo, ed è facilmente visibile nel cielo notturno. | -| 1 | Giove è il quinto pianeta dal Sole e il più grande del Sistema Solare. È un gigante gassoso con una massa pari a un millesimo di quella del Sole, ma due volte e mezzo quella di tutti gli altri pianeti del Sistema Solare messi insieme. Giove è uno degli oggetti più luminosi visibili a occhio nudo nel cielo notturno, ed è conosciuto dalle antiche civiltà fin da prima della storia registrata.
**Riassumi Questo**
Quello che abbiamo imparato è che Giove | è il quinto pianeta dal Sole e il più grande del Sistema Solare. È un gigante gassoso con una massa pari a un millesimo di quella del Sole, ma due volte e mezzo quella di tutti gli altri pianeti messi insieme. È facilmente visibile a occhio nudo ed è conosciuto fin dall’antichità. | -| 2 | Giove è il quinto pianeta dal Sole e il più grande del Sistema Solare. È un gigante gassoso con una massa pari a un millesimo di quella del Sole, ma due volte e mezzo quella di tutti gli altri pianeti del Sistema Solare messi insieme. Giove è uno degli oggetti più luminosi visibili a occhio nudo nel cielo notturno, ed è conosciuto dalle antiche civiltà fin da prima della storia registrata.
**Riassumi Questo**
Le 3 principali informazioni che abbiamo appreso: | 1. Giove è il quinto pianeta dal Sole e il più grande del Sistema Solare.
2. È un gigante gassoso con una massa pari a un millesimo di quella del Sole...
3. Giove è visibile a occhio nudo fin dall’antichità ... | -| | | | - -### Modelli di Prompt - -Un modello di prompt è una _ricetta predefinita per un prompt_ che può essere salvata e riutilizzata secondo necessità, per garantire esperienze utente più coerenti su larga scala. Nella sua forma più semplice, è semplicemente una raccolta di esempi di prompt come [questo di OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) che fornisce sia i componenti interattivi del prompt (messaggi utente e sistema) sia il formato della richiesta API - per supportare il riutilizzo. - -Nella sua forma più complessa, come [questo esempio di LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst), contiene _segnaposto_ che possono essere sostituiti con dati provenienti da varie fonti (input utente, contesto di sistema, fonti dati esterne ecc.) per generare un prompt in modo dinamico. Questo ci permette di creare una libreria di prompt riutilizzabili che possono essere usati per offrire esperienze utente coerenti **in modo programmato** su larga scala. - -Infine, il vero valore dei modelli risiede nella capacità di creare e pubblicare _librerie di prompt_ per domini applicativi verticali - dove il modello di prompt è ora _ottimizzato_ per riflettere contesti o esempi specifici dell’applicazione che rendono le risposte più pertinenti e accurate per il pubblico target. Il repository [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) è un ottimo esempio di questo approccio, curando una libreria di prompt per il settore educativo con enfasi su obiettivi chiave come la pianificazione delle lezioni, la progettazione del curriculum, il tutoraggio degli studenti ecc. - -## Contenuti di Supporto - -Se consideriamo la costruzione di un prompt come composta da un’istruzione (compito) e un contenuto principale (contenuto primario), allora il _contenuto secondario_ è come un contesto aggiuntivo che forniamo per **influenzare in qualche modo l’output**. Può trattarsi di parametri di regolazione, istruzioni di formattazione, tassonomie di argomenti ecc. che aiutano il modello a _personalizzare_ la risposta per adattarla agli obiettivi o alle aspettative dell’utente. - -Per esempio: dato un catalogo corsi con metadati estesi (nome, descrizione, livello, tag di metadati, docente ecc.) su tutti i corsi disponibili nel curriculum: - -- possiamo definire un’istruzione per "riassumere il catalogo corsi per l’autunno 2023" -- possiamo usare il contenuto primario per fornire alcuni esempi dell’output desiderato -- possiamo usare il contenuto secondario per identificare i 5 "tag" di maggior interesse. - -Ora, il modello può fornire un riassunto nel formato mostrato dagli esempi - ma se un risultato ha più tag, può dare priorità ai 5 tag identificati nel contenuto secondario. - ---- - - - -## Buone Pratiche per il Prompting - -Ora che sappiamo come i prompt possono essere _costruiti_, possiamo iniziare a pensare a come _progettarli_ per riflettere le migliori pratiche. Possiamo considerare questo in due parti - avere la giusta _mentalità_ e applicare le giuste _tecniche_. - -### Mentalità del Prompt Engineering - -Il Prompt Engineering è un processo di tentativi ed errori, quindi tieni a mente tre fattori guida generali: - -1. **La conoscenza del dominio è importante.** L’accuratezza e la pertinenza della risposta dipendono dal _dominio_ in cui l’applicazione o l’utente opera. Applica la tua intuizione e competenza di dominio per **personalizzare ulteriormente le tecniche**. Per esempio, definisci _personalità specifiche del dominio_ nei prompt di sistema, o usa _modelli specifici del dominio_ nei prompt utente. Fornisci contenuti secondari che riflettano contesti specifici del dominio, o usa _segnali ed esempi specifici del dominio_ per guidare il modello verso schemi d’uso familiari. - -2. **La conoscenza del modello è importante.** Sappiamo che i modelli sono per natura stocastici. Ma le implementazioni possono variare in termini di dataset di addestramento usato (conoscenza pre-addestrata), capacità offerte (es. via API o SDK) e tipo di contenuto per cui sono ottimizzati (es. codice vs immagini vs testo). Comprendi i punti di forza e i limiti del modello che stai usando, e usa questa conoscenza per _prioritizzare i compiti_ o costruire _modelli personalizzati_ ottimizzati per le capacità del modello. - -3. **Iterazione e validazione sono importanti.** I modelli evolvono rapidamente, così come le tecniche di prompt engineering. Come esperto di dominio, potresti avere altri contesti o criteri specifici per la tua applicazione, che potrebbero non valere per la comunità più ampia. Usa strumenti e tecniche di prompt engineering per "dare una spinta" alla costruzione del prompt, poi itera e valida i risultati usando la tua intuizione e competenza di dominio. Registra le tue intuizioni e crea una **base di conoscenza** (es. librerie di prompt) che altri possono usare come nuovo punto di partenza, per iterazioni più rapide in futuro. - -## Migliori Pratiche - -Ora vediamo alcune buone pratiche comuni raccomandate da [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) e dai professionisti di [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst). - -| Cosa | Perché | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Valuta i modelli più recenti. | Le nuove generazioni di modelli probabilmente offrono funzionalità e qualità migliorate - ma possono anche comportare costi maggiori. Valutali per l’impatto, poi prendi decisioni di migrazione. | -| Separa istruzioni e contesto | Verifica se il tuo modello/fornitore definisce _delimitatori_ per distinguere più chiaramente istruzioni, contenuto primario e secondario. Questo aiuta i modelli ad assegnare pesi più accurati ai token. | -| Sii specifico e chiaro | Fornisci più dettagli sul contesto desiderato, risultato, lunghezza, formato, stile ecc. Questo migliora sia la qualità che la coerenza delle risposte. Registra le “ricette” in modelli riutilizzabili. | -| Sii descrittivo, usa esempi | I modelli rispondono meglio a un approccio “mostra e racconta”. Parti con un approccio `zero-shot` dove dai solo un’istruzione (ma nessun esempio), poi prova `few-shot` come affinamento, fornendo alcuni esempi dell’output desiderato. Usa analogie. | -| Usa segnali per avviare le risposte | Spingilo verso un risultato desiderato fornendo alcune parole o frasi iniziali che può usare come punto di partenza per la risposta. | -| Insisti | A volte può essere necessario ripetere le istruzioni al modello. Dai istruzioni prima e dopo il contenuto primario, usa un’istruzione e un segnale, ecc. Itera e valida per vedere cosa funziona. | -| L’ordine conta | L’ordine con cui presenti le informazioni al modello può influenzare l’output, anche negli esempi di apprendimento, a causa del bias di recenza. Prova diverse opzioni per vedere cosa funziona meglio. | -| Dai al modello una “via d’uscita” | Fornisci al modello una risposta di completamento _di riserva_ che può usare se non riesce a completare il compito per qualsiasi motivo. Questo riduce la probabilità che generi risposte false o inventate. | -| | | - -Come per ogni buona pratica, ricorda che _i risultati possono variare_ in base al modello, al compito e al dominio. Usa queste indicazioni come punto di partenza e itera per trovare ciò che funziona meglio per te. Rivaluta costantemente il processo di prompt engineering man mano che nuovi modelli e strumenti diventano disponibili, con un focus sulla scalabilità del processo e sulla qualità delle risposte. - - - -## Compito - -Congratulazioni! Sei arrivato alla fine della lezione! È il momento di mettere alla prova alcuni di quei concetti e tecniche con esempi reali! - -Per il nostro compito useremo un Jupyter Notebook con esercizi che puoi completare in modo interattivo. Puoi anche estendere il Notebook con le tue celle Markdown e di codice per esplorare idee e tecniche in autonomia. - -### Per iniziare, fai un fork del repo, poi - -- (Consigliato) Avvia GitHub Codespaces -- (In alternativa) Clona il repo sul tuo dispositivo locale e usalo con Docker Desktop -- (In alternativa) Apri il Notebook con il tuo ambiente di runtime preferito. - -### Poi, configura le variabili d’ambiente - -- Copia il file `.env.copy` nella root del repo in `.env` e compila i valori di `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` e `AZURE_OPENAI_DEPLOYMENT`. Torna alla [sezione Learning Sandbox](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) per imparare come fare. - -### Infine, apri il Jupyter Notebook - -- Seleziona il kernel di runtime. Se usi le opzioni 1 o 2, seleziona semplicemente il kernel Python 3.10.x predefinito fornito dal container di sviluppo. - -Sei pronto per eseguire gli esercizi. Nota che qui non ci sono risposte “giuste o sbagliate” - si tratta di esplorare opzioni con tentativi ed errori e costruire intuizione su cosa funziona per un dato modello e dominio applicativo. - -_Per questo motivo non ci sono segmenti di Soluzione Codice in questa lezione. Invece, il Notebook avrà celle Markdown intitolate "La mia soluzione:" che mostrano un esempio di output come riferimento._ - - - -## Verifica delle conoscenze - -Quale dei seguenti è un buon prompt che segue alcune ragionevoli migliori pratiche? - -1. Mostrami un’immagine di un’auto rossa -2. Mostrami un’immagine di un’auto rossa marca Volvo modello XC90 parcheggiata su una scogliera con il sole al tramonto -3. Mostrami un’immagine di un’auto rossa marca Volvo modello XC90 - -Risposta: 2, è il miglior prompt perché fornisce dettagli su “cosa” e va nei particolari (non una qualsiasi auto ma una marca e modello specifici) e descrive anche l’ambientazione generale. 3 è il secondo migliore perché contiene comunque molte descrizioni. - -## 🚀 Sfida - -Prova a sfruttare la tecnica del “segnale” con il prompt: Completa la frase "Mostrami un’immagine di un’auto rossa marca Volvo e ". Cosa risponde, e come la miglioreresti? - -## Ottimo lavoro! Continua a imparare - -Vuoi approfondire i diversi concetti di Prompt Engineering? Vai alla [pagina di apprendimento continuato](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) per trovare altre ottime risorse su questo argomento. - -Passa alla Lezione 5 dove vedremo le [tecniche avanzate di prompting](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**Disclaimer**: -Questo documento è stato tradotto utilizzando il servizio di traduzione automatica [Co-op Translator](https://github.com/Azure/co-op-translator). Pur impegnandoci per garantire accuratezza, si prega di notare che le traduzioni automatiche possono contenere errori o imprecisioni. Il documento originale nella sua lingua nativa deve essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda una traduzione professionale effettuata da un umano. Non ci assumiamo alcuna responsabilità per eventuali malintesi o interpretazioni errate derivanti dall’uso di questa traduzione. \ No newline at end of file + + + + + + + diff --git a/translations/it/09-building-image-applications/README.md b/translations/it/09-building-image-applications/README.md index 94cafa2d4..83800eb6f 100644 --- a/translations/it/09-building-image-applications/README.md +++ b/translations/it/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# Creare Applicazioni per la Generazione di Immagini - -[![Creare Applicazioni per la Generazione di Immagini](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.it.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -Gli LLM non servono solo per generare testo. È anche possibile creare immagini a partire da descrizioni testuali. Avere le immagini come modalità può essere molto utile in diversi ambiti, dalla MedTech, all’architettura, al turismo, allo sviluppo di videogiochi e altro ancora. In questo capitolo, esploreremo i due modelli di generazione di immagini più popolari, DALL-E e Midjourney. - -## Introduzione - -In questa lezione tratteremo: - -- La generazione di immagini e perché è utile. -- DALL-E e Midjourney, cosa sono e come funzionano. -- Come costruire un’applicazione per la generazione di immagini. - -## Obiettivi di Apprendimento - -Al termine di questa lezione, sarai in grado di: - -- Creare un’applicazione per la generazione di immagini. -- Definire i confini della tua applicazione con meta prompt. -- Lavorare con DALL-E e Midjourney. - -## Perché creare un’applicazione per la generazione di immagini? - -Le applicazioni per la generazione di immagini sono un ottimo modo per esplorare le potenzialità dell’Intelligenza Artificiale Generativa. Possono essere utilizzate, ad esempio, per: - -- **Modifica e sintesi di immagini**. Puoi generare immagini per diversi casi d’uso, come la modifica o la sintesi di immagini. - -- **Applicazioni in vari settori**. Possono anche essere impiegate per creare immagini in diversi settori come Medtech, Turismo, sviluppo di videogiochi e altro. - -## Scenario: Edu4All - -Come parte di questa lezione, continueremo a lavorare con la nostra startup, Edu4All. Gli studenti creeranno immagini per le loro valutazioni; quali immagini creare è a loro discrezione, potrebbero essere illustrazioni per una loro fiaba, un nuovo personaggio per la loro storia o aiutarli a visualizzare idee e concetti. - -Ecco cosa potrebbero generare gli studenti di Edu4All, ad esempio se stanno lavorando in classe sui monumenti: - -![Edu4All startup, classe sui monumenti, Torre Eiffel](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.it.png) - -usando un prompt come - -> "Cane accanto alla Torre Eiffel alla luce del sole del primo mattino" - -## Che cosa sono DALL-E e Midjourney? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) e [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) sono due dei modelli di generazione di immagini più popolari, che permettono di usare prompt per generare immagini. - -### DALL-E - -Iniziamo con DALL-E, un modello di Intelligenza Artificiale Generativa che crea immagini a partire da descrizioni testuali. - -> [DALL-E è una combinazione di due modelli, CLIP e diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP** è un modello che genera embedding, ovvero rappresentazioni numeriche dei dati, da immagini e testo. - -- **Diffused attention** è un modello che genera immagini a partire dagli embedding. DALL-E è addestrato su un dataset di immagini e testo e può essere usato per creare immagini da descrizioni testuali. Ad esempio, DALL-E può generare immagini di un gatto con un cappello o di un cane con un mohawk. - -### Midjourney - -Midjourney funziona in modo simile a DALL-E, genera immagini da prompt testuali. Midjourney può essere usato per creare immagini con prompt come “un gatto con un cappello” o “un cane con un mohawk”. - -![Immagine generata da Midjourney, piccione meccanico](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Immagine da Wikipedia, generata da Midjourney_ - -## Come funzionano DALL-E e Midjourney - -Prima, [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). DALL-E è un modello di Intelligenza Artificiale Generativa basato sull’architettura transformer con un _autoregressive transformer_. - -Un _autoregressive transformer_ definisce come un modello genera immagini da descrizioni testuali, generando un pixel alla volta e usando i pixel generati per produrre il pixel successivo. Passa attraverso più livelli in una rete neurale, fino a completare l’immagine. - -Con questo processo, DALL-E controlla attributi, oggetti, caratteristiche e altro nell’immagine che genera. Tuttavia, DALL-E 2 e 3 offrono un controllo maggiore sull’immagine generata. - -## Costruire la tua prima applicazione per la generazione di immagini - -Cosa serve per costruire un’applicazione per la generazione di immagini? Ti servono le seguenti librerie: - -- **python-dotenv**, è altamente consigliato usare questa libreria per tenere i tuoi segreti in un file _.env_ separato dal codice. -- **openai**, questa libreria serve per interagire con l’API di OpenAI. -- **pillow**, per lavorare con le immagini in Python. -- **requests**, per aiutarti a fare richieste HTTP. - -1. Crea un file _.env_ con il seguente contenuto: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Trova queste informazioni nel Portale Azure per la tua risorsa nella sezione "Keys and Endpoint". - -1. Raccogli le librerie sopra in un file chiamato _requirements.txt_ così: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. Poi, crea un ambiente virtuale e installa le librerie: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Per Windows, usa i seguenti comandi per creare e attivare l’ambiente virtuale: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. Aggiungi il seguente codice in un file chiamato _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Spieghiamo questo codice: - -- Prima importiamo le librerie necessarie, inclusa la libreria OpenAI, dotenv, requests e Pillow. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Poi carichiamo le variabili d’ambiente dal file _.env_. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- Successivamente impostiamo endpoint, chiave per l’API OpenAI, versione e tipo. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- Poi generiamo l’immagine: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - Il codice sopra risponde con un oggetto JSON che contiene l’URL dell’immagine generata. Possiamo usare l’URL per scaricare l’immagine e salvarla su file. - -- Infine, apriamo l’immagine e usiamo il visualizzatore standard per mostrarla: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Più dettagli sulla generazione dell’immagine - -Vediamo il codice che genera l’immagine più nel dettaglio: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** è il testo usato per generare l’immagine. In questo caso, usiamo il prompt "Coniglio su un cavallo, che tiene un lecca-lecca, in un prato nebbioso dove crescono narcisi". -- **size** è la dimensione dell’immagine generata. Qui generiamo un’immagine di 1024x1024 pixel. -- **n** è il numero di immagini generate. Qui ne generiamo due. -- **temperature** è un parametro che controlla la casualità dell’output di un modello di Intelligenza Artificiale Generativa. La temperatura varia tra 0 e 1, dove 0 significa output deterministico e 1 output casuale. Il valore predefinito è 0.7. - -Ci sono altre cose che puoi fare con le immagini, che vedremo nella sezione successiva. - -## Capacità aggiuntive della generazione di immagini - -Finora hai visto come generare un’immagine con poche righe di Python. Tuttavia, ci sono altre possibilità con le immagini. - -Puoi anche: - -- **Effettuare modifiche**. Fornendo un’immagine esistente, una maschera e un prompt, puoi modificare un’immagine. Ad esempio, puoi aggiungere qualcosa a una parte dell’immagine. Immagina la nostra immagine del coniglio, potresti aggiungere un cappello al coniglio. Per farlo, fornisci l’immagine, una maschera (che identifica la parte da modificare) e un prompt testuale che spiega cosa fare. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - L’immagine di base conterrebbe solo il coniglio, ma l’immagine finale avrebbe il cappello sul coniglio. - -- **Creare variazioni**. L’idea è prendere un’immagine esistente e chiedere di creare variazioni. Per creare una variazione, fornisci un’immagine e un prompt testuale e un codice come questo: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Nota, questo è supportato solo su OpenAI - -## Temperature - -La temperatura è un parametro che controlla la casualità dell’output di un modello di Intelligenza Artificiale Generativa. La temperatura varia tra 0 e 1, dove 0 significa output deterministico e 1 output casuale. Il valore predefinito è 0.7. - -Vediamo un esempio di come funziona la temperatura, eseguendo questo prompt due volte: - -> Prompt: "Coniglio su un cavallo, che tiene un lecca-lecca, in un prato nebbioso dove crescono narcisi" - -![Coniglio su un cavallo che tiene un lecca-lecca, versione 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.it.png) - -Ora eseguiamo lo stesso prompt per vedere che non otterremo la stessa immagine due volte: - -![Immagine generata di coniglio su cavallo](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.it.png) - -Come vedi, le immagini sono simili, ma non identiche. Proviamo a cambiare il valore della temperatura a 0.1 e vediamo cosa succede: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Cambiare la temperatura - -Proviamo a rendere la risposta più deterministica. Dalle due immagini generate, nella prima c’è un coniglio e nella seconda un cavallo, quindi le immagini variano molto. - -Modifichiamo quindi il codice impostando la temperatura a 0, così: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Ora, eseguendo questo codice, ottieni queste due immagini: - -- ![Temperatura 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.it.png) -- ![Temperatura 0, v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.it.png) - -Qui si vede chiaramente come le immagini si somiglino molto di più. - -## Come definire i confini della tua applicazione con i metaprompt - -Con la nostra demo, possiamo già generare immagini per i nostri clienti. Tuttavia, dobbiamo creare dei limiti per la nostra applicazione. - -Ad esempio, non vogliamo generare immagini non adatte al lavoro o inappropriate per i bambini. - -Possiamo farlo con i _metaprompt_. I metaprompt sono prompt testuali usati per controllare l’output di un modello di Intelligenza Artificiale Generativa. Ad esempio, possiamo usare i metaprompt per garantire che le immagini generate siano sicure per il lavoro o adatte ai bambini. - -### Come funziona? - -Come funzionano i metaprompt? - -I metaprompt sono prompt testuali usati per controllare l’output di un modello di Intelligenza Artificiale Generativa, vengono posizionati prima del prompt testuale e servono a controllare l’output del modello, integrandosi nelle applicazioni per gestire l’output. Racchiudono l’input del prompt e quello del metaprompt in un unico prompt testuale. - -Un esempio di metaprompt potrebbe essere il seguente: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Ora vediamo come usare i metaprompt nella nostra demo. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -Dal prompt sopra, puoi vedere come tutte le immagini generate tengano conto del metaprompt. - -## Compito - abilitiamo gli studenti - -Abbiamo introdotto Edu4All all’inizio di questa lezione. Ora è il momento di permettere agli studenti di generare immagini per le loro valutazioni. - -Gli studenti creeranno immagini per le loro valutazioni contenenti monumenti, quali monumenti esattamente è a loro scelta. Gli studenti sono invitati a usare la loro creatività per collocare questi monumenti in contesti diversi. - -## Soluzione - -Ecco una possibile soluzione: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Ottimo lavoro! Continua a imparare - -Dopo aver completato questa lezione, dai un’occhiata alla nostra [collezione di apprendimento sull’Intelligenza Artificiale Generativa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) per continuare a migliorare le tue conoscenze sull’IA Generativa! - -Passa alla Lezione 10 dove vedremo come [creare applicazioni AI con low-code](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**Disclaimer**: -Questo documento è stato tradotto utilizzando il servizio di traduzione automatica [Co-op Translator](https://github.com/Azure/co-op-translator). Pur impegnandoci per garantire accuratezza, si prega di notare che le traduzioni automatiche possono contenere errori o imprecisioni. Il documento originale nella sua lingua nativa deve essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda una traduzione professionale effettuata da un umano. Non ci assumiamo alcuna responsabilità per eventuali malintesi o interpretazioni errate derivanti dall’uso di questa traduzione. \ No newline at end of file + + + + diff --git a/translations/it/12-designing-ux-for-ai-applications/README.md b/translations/it/12-designing-ux-for-ai-applications/README.md index 20ba8f8d5..11c38fe64 100644 --- a/translations/it/12-designing-ux-for-ai-applications/README.md +++ b/translations/it/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# Progettare l’UX per Applicazioni AI - -[![Progettare l’UX per Applicazioni AI](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.it.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Clicca sull’immagine sopra per vedere il video di questa lezione)_ - -L’esperienza utente è un aspetto molto importante nella creazione di app. Gli utenti devono poter utilizzare la tua app in modo efficiente per svolgere le attività. Essere efficienti è una cosa, ma è anche necessario progettare app che possano essere usate da tutti, rendendole _accessibili_. Questo capitolo si concentrerà su questo aspetto, così da aiutarti a progettare un’app che le persone possano e vogliano usare. - -## Introduzione - -L’esperienza utente è il modo in cui un utente interagisce e utilizza un prodotto o servizio specifico, che sia un sistema, uno strumento o un design. Quando si sviluppano applicazioni AI, gli sviluppatori non si concentrano solo sull’efficacia dell’esperienza utente, ma anche sull’etica. In questa lezione, vedremo come costruire applicazioni di Intelligenza Artificiale (AI) che rispondano ai bisogni degli utenti. - -La lezione tratterà i seguenti argomenti: - -- Introduzione all’Esperienza Utente e Comprensione dei Bisogni degli Utenti -- Progettare Applicazioni AI per Fiducia e Trasparenza -- Progettare Applicazioni AI per Collaborazione e Feedback - -## Obiettivi di apprendimento - -Dopo aver seguito questa lezione, sarai in grado di: - -- Comprendere come costruire applicazioni AI che soddisfino i bisogni degli utenti. -- Progettare applicazioni AI che promuovano fiducia e collaborazione. - -### Prerequisiti - -Prenditi un momento per approfondire [esperienza utente e design thinking.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Introduzione all’Esperienza Utente e Comprensione dei Bisogni degli Utenti - -Nella nostra startup educativa immaginaria, abbiamo due utenti principali: insegnanti e studenti. Ciascuno dei due ha bisogni unici. Un design centrato sull’utente dà priorità all’utente, assicurando che i prodotti siano rilevanti e utili per chi sono destinati. - -L’applicazione dovrebbe essere **utile, affidabile, accessibile e piacevole** per offrire una buona esperienza utente. - -### Usabilità - -Essere utile significa che l’applicazione ha funzionalità che corrispondono al suo scopo, come automatizzare il processo di valutazione o generare flashcard per la revisione. Un’app che automatizza la valutazione dovrebbe essere in grado di assegnare punteggi in modo accurato ed efficiente al lavoro degli studenti, basandosi su criteri predefiniti. Allo stesso modo, un’app che genera flashcard per la revisione dovrebbe creare domande rilevanti e varie basate sui dati a disposizione. - -### Affidabilità - -Essere affidabile significa che l’applicazione può svolgere il suo compito in modo costante e senza errori. Tuttavia, l’AI, come gli esseri umani, non è perfetta e può commettere errori. Le applicazioni possono incontrare errori o situazioni impreviste che richiedono l’intervento o la correzione umana. Come gestisci gli errori? Nell’ultima sezione di questa lezione vedremo come i sistemi e le applicazioni AI sono progettati per la collaborazione e il feedback. - -### Accessibilità - -Essere accessibile significa estendere l’esperienza utente a persone con diverse abilità, comprese quelle con disabilità, assicurandosi che nessuno venga escluso. Seguendo linee guida e principi di accessibilità, le soluzioni AI diventano più inclusive, utilizzabili e vantaggiose per tutti gli utenti. - -### Piacevolezza - -Essere piacevole significa che l’applicazione è gradevole da usare. Un’esperienza utente attraente può avere un impatto positivo sull’utente, incoraggiandolo a tornare sull’applicazione e aumentando i ricavi. - -![immagine che illustra le considerazioni UX nell’AI](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.it.png) - -Non tutte le sfide possono essere risolte con l’AI. L’AI serve a potenziare l’esperienza utente, che sia automatizzando compiti manuali o personalizzando le esperienze. - -## Progettare Applicazioni AI per Fiducia e Trasparenza - -Costruire fiducia è fondamentale nella progettazione di applicazioni AI. La fiducia garantisce che l’utente sia sicuro che l’applicazione svolgerà il lavoro, fornirà risultati costanti e che i risultati siano ciò di cui l’utente ha bisogno. Un rischio in questo ambito è la sfiducia e la sovrafiducia. La sfiducia si verifica quando un utente ha poca o nessuna fiducia in un sistema AI, portandolo a rifiutare l’applicazione. La sovrafiducia si verifica quando un utente sopravvaluta le capacità di un sistema AI, affidandosi troppo ad esso. Per esempio, un sistema di valutazione automatica, in caso di sovrafiducia, potrebbe portare l’insegnante a non controllare alcuni compiti per assicurarsi che il sistema funzioni correttamente. Questo potrebbe causare voti ingiusti o inaccurati per gli studenti, o perdere opportunità di feedback e miglioramento. - -Due modi per mettere la fiducia al centro del design sono spiegabilità e controllo. - -### Spiegabilità - -Quando l’AI aiuta a prendere decisioni, come trasmettere conoscenze alle future generazioni, è fondamentale che insegnanti e genitori capiscano come vengono prese le decisioni dall’AI. Questa è la spiegabilità: comprendere come le applicazioni AI prendono decisioni. Progettare per la spiegabilità significa aggiungere dettagli ed esempi di cosa un’app AI può fare. Per esempio, invece di “Inizia con AI teacher”, il sistema può usare: “Riepiloga i tuoi appunti per una revisione più semplice con l’AI.” - -![una pagina di un’app con chiara illustrazione della spiegabilità nelle applicazioni AI](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.it.png) - -Un altro esempio è come l’AI utilizza i dati personali e dell’utente. Per esempio, un utente con il profilo studente può avere limitazioni basate sul suo profilo. L’AI potrebbe non poter rivelare le risposte alle domande, ma può aiutare a guidare l’utente a riflettere su come risolvere un problema. - -![AI che risponde a domande basandosi sul profilo](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.it.png) - -Un ultimo aspetto chiave della spiegabilità è la semplificazione delle spiegazioni. Studenti e insegnanti potrebbero non essere esperti di AI, quindi le spiegazioni su cosa l’applicazione può o non può fare dovrebbero essere semplici e facili da capire. - -![spiegazioni semplificate sulle capacità dell’AI](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.it.png) - -### Controllo - -L’AI generativa crea una collaborazione tra AI e utente, dove per esempio l’utente può modificare i prompt per ottenere risultati diversi. Inoltre, una volta generato un output, gli utenti dovrebbero poter modificare i risultati, dando loro un senso di controllo. Per esempio, usando Bing, puoi personalizzare il prompt in base a formato, tono e lunghezza. Inoltre, puoi aggiungere modifiche al risultato e modificarlo come mostrato di seguito: - -![Risultati di ricerca Bing con opzioni per modificare prompt e output](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.it.png) - -Un’altra funzione di Bing che permette all’utente di avere controllo sull’applicazione è la possibilità di scegliere se partecipare o meno alla raccolta dati usata dall’AI. Per un’app scolastica, uno studente potrebbe voler usare i propri appunti così come le risorse degli insegnanti come materiale di revisione. - -![Risultati di ricerca Bing con opzioni per modificare prompt e output](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.it.png) - -> Quando progetti applicazioni AI, l’intenzionalità è fondamentale per evitare che gli utenti abbiano una sovrafiducia, creando aspettative irrealistiche sulle capacità. Un modo per farlo è creare attrito tra prompt e risultati, ricordando all’utente che si tratta di AI e non di un essere umano. - -## Progettare Applicazioni AI per Collaborazione e Feedback - -Come detto prima, l’AI generativa crea una collaborazione tra utente e AI. La maggior parte delle interazioni consiste in un utente che inserisce un prompt e l’AI che genera un output. Cosa succede se l’output è errato? Come gestisce l’applicazione gli errori se si verificano? L’AI dà la colpa all’utente o si prende il tempo per spiegare l’errore? - -Le applicazioni AI dovrebbero essere progettate per ricevere e fornire feedback. Questo non solo aiuta il sistema AI a migliorare, ma costruisce anche fiducia con gli utenti. Un ciclo di feedback dovrebbe essere incluso nel design, un esempio può essere un semplice pollice in su o in giù sull’output. - -Un altro modo per gestire questo è comunicare chiaramente le capacità e i limiti del sistema. Quando un utente commette un errore richiedendo qualcosa oltre le capacità dell’AI, dovrebbe esserci un modo per gestirlo, come mostrato di seguito. - -![Fornire feedback e gestire errori](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.it.png) - -Gli errori di sistema sono comuni nelle applicazioni dove l’utente potrebbe aver bisogno di assistenza con informazioni fuori dal campo dell’AI o l’applicazione potrebbe avere un limite sul numero di domande/argomenti per cui un utente può generare riassunti. Per esempio, un’app AI addestrata con dati su materie limitate come Storia e Matematica potrebbe non essere in grado di gestire domande di Geografia. Per mitigare questo, il sistema AI può rispondere con: “Spiacente, il nostro prodotto è stato addestrato con dati nelle seguenti materie....., non posso rispondere alla domanda che hai posto.” - -Le applicazioni AI non sono perfette, quindi è inevitabile che commettano errori. Quando progetti le tue applicazioni, assicurati di creare spazio per il feedback degli utenti e per la gestione degli errori in modo semplice e facilmente comprensibile. - -## Compito - -Prendi una qualsiasi app AI che hai costruito finora e considera di implementare i seguenti passaggi nella tua app: - -- **Piacevolezza:** Rifletti su come rendere la tua app più piacevole. Stai aggiungendo spiegazioni ovunque? Incoraggi l’utente a esplorare? Come formuli i messaggi di errore? - -- **Usabilità:** Se stai costruendo un’app web, assicurati che sia navigabile sia con mouse che con tastiera. - -- **Fiducia e trasparenza:** Non fidarti completamente dell’AI e dei suoi output, considera come potresti inserire un controllo umano per verificare i risultati. Inoltre, considera e implementa altri modi per ottenere fiducia e trasparenza. - -- **Controllo:** Dai all’utente il controllo sui dati che fornisce all’applicazione. Implementa un modo per permettere all’utente di scegliere se partecipare o meno alla raccolta dati nell’app AI. - -## Continua a imparare! - -Dopo aver completato questa lezione, dai un’occhiata alla nostra [collezione di apprendimento sull’AI generativa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) per continuare a migliorare le tue conoscenze sull’AI generativa! - -Passa alla Lezione 13, dove vedremo come [mettere in sicurezza le applicazioni AI](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**Disclaimer**: -Questo documento è stato tradotto utilizzando il servizio di traduzione automatica [Co-op Translator](https://github.com/Azure/co-op-translator). Pur impegnandoci per garantire accuratezza, si prega di notare che le traduzioni automatiche possono contenere errori o imprecisioni. Il documento originale nella sua lingua nativa deve essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda una traduzione professionale effettuata da un umano. Non ci assumiamo alcuna responsabilità per eventuali malintesi o interpretazioni errate derivanti dall’uso di questa traduzione. \ No newline at end of file + + + diff --git a/translations/it/README.md b/translations/it/README.md index 4bdd79469..445aec1f7 100644 --- a/translations/it/README.md +++ b/translations/it/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.it.png) - -### 21 lezioni che insegnano tutto ciò che devi sapere per iniziare a costruire applicazioni di Generative AI - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Supporto Multilingue - -#### Supportato tramite GitHub Action (Automatizzato e Sempre Aggiornato) - -[Francese](../fr/README.md) | [Spagnolo](../es/README.md) | [Tedesco](../de/README.md) | [Russo](../ru/README.md) | [Arabo](../ar/README.md) | [Persiano (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Cinese (Semplificato)](../zh/README.md) | [Cinese (Tradizionale, Macao)](../mo/README.md) | [Cinese (Tradizionale, Hong Kong)](../hk/README.md) | [Cinese (Tradizionale, Taiwan)](../tw/README.md) | [Giapponese](../ja/README.md) | [Coreano](../ko/README.md) | [Hindi](../hi/README.md) | [Bengalese](../bn/README.md) | [Marathi](../mr/README.md) | [Nepalese](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portoghese (Portogallo)](../pt/README.md) | [Portoghese (Brasile)](../br/README.md) | [Italiano](./README.md) | [Polacco](../pl/README.md) | [Turco](../tr/README.md) | [Greco](../el/README.md) | [Thailandese](../th/README.md) | [Svedese](../sv/README.md) | [Danese](../da/README.md) | [Norvegese](../no/README.md) | [Finlandese](../fi/README.md) | [Olandese](../nl/README.md) | [Ebraico](../he/README.md) | [Vietnamita](../vi/README.md) | [Indonesiano](../id/README.md) | [Malese](../ms/README.md) | [Tagalog (Filippino)](../tl/README.md) | [Swahili](../sw/README.md) | [Ungherese](../hu/README.md) | [Ceco](../cs/README.md) | [Slovacco](../sk/README.md) | [Rumeno](../ro/README.md) | [Bulgaro](../bg/README.md) | [Serbo (Cirillico)](../sr/README.md) | [Croato](../hr/README.md) | [Sloveno](../sl/README.md) | [Ucraino](../uk/README.md) | [Birmano (Myanmar)](../my/README.md) - -# Generative AI per Principianti (Versione 3) - Un Corso - -Impara le basi per costruire applicazioni di Generative AI con il nostro corso completo di 21 lezioni creato dai Microsoft Cloud Advocates. - -## 🌱 Iniziare - -Questo corso comprende 21 lezioni. Ogni lezione tratta un argomento specifico, quindi inizia da dove preferisci! - -Le lezioni sono etichettate come "Learn" per spiegare un concetto di Generative AI o "Build" che spiegano un concetto e mostrano esempi di codice sia in **Python** che in **TypeScript** quando possibile. - -Per gli sviluppatori .NET, dai un’occhiata a [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -Ogni lezione include anche una sezione "Keep Learning" con ulteriori strumenti di apprendimento. - -## Cosa ti serve -### Per eseguire il codice di questo corso, puoi usare: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **Lezioni:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **Lezioni:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **Lezioni:** "oai-assignment" - -- Conoscenze di base di Python o TypeScript sono utili - \*Per principianti assoluti dai un’occhiata a questi corsi di [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) e [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) -- Un account GitHub per [fare il fork di questo intero repo](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) sul tuo account GitHub - -Abbiamo creato una lezione **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** per aiutarti a configurare il tuo ambiente di sviluppo. - -Non dimenticare di [mettere una stella (🌟) a questo repo](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) per trovarlo più facilmente in futuro. - -## 🧠 Pronto per il Deployment? - -Se cerchi esempi di codice più avanzati, dai un’occhiata alla nostra [collezione di esempi di codice Generative AI](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) sia in **Python** che in **TypeScript**. - -## 🗣️ Incontra altri studenti, ricevi supporto - -Unisciti al nostro [server Discord ufficiale Azure AI Foundry](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) per incontrare e fare networking con altri studenti che seguono questo corso e ricevere supporto. - -Fai domande o condividi feedback sul prodotto nel nostro [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum) su Github. - -## 🚀 Stai costruendo una startup? - -Iscriviti a [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) per ricevere **crediti OpenAI gratuiti** e fino a **$150k in crediti Azure per accedere ai modelli OpenAI tramite Azure OpenAI Services**. - -## 🙏 Vuoi aiutare? - -Hai suggerimenti o hai trovato errori di ortografia o di codice? [Apri un issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) o [crea una pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 Ogni lezione include: - -- Una breve introduzione video all’argomento -- Una lezione scritta nel README -- Esempi di codice Python e TypeScript che supportano Azure OpenAI e OpenAI API -- Link a risorse extra per continuare ad imparare - -## 🗃️ Lezioni - -| # | **Link alla Lezione** | **Descrizione** | **Video** | **Apprendimento Extra** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Come configurare il tuo ambiente di sviluppo | Video in arrivo | [Scopri di più](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introduzione a Generative AI e LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Comprendere cos’è la Generative AI e come funzionano i Large Language Models (LLMs) | [Video](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Scopri di più](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Esplorare e confrontare diversi LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Come scegliere il modello giusto per il tuo caso d’uso | [Video](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Scopri di più](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Usare Generative AI in modo responsabile](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Come costruire applicazioni di Generative AI in modo responsabile | [Video](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Scopri di più](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Fondamenti di Prompt Engineering](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Best practice pratiche di Prompt Engineering | [Video](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Scopri di più](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Creare Prompt Avanzati](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Come applicare tecniche di prompt engineering che migliorano i risultati dei tuoi prompt | [Video](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Scopri di più](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Creare applicazioni di generazione di testo](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Costruisci:** Un'app di generazione di testo usando Azure OpenAI / OpenAI API | [Video](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Scopri di più](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Creare applicazioni di chat](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Costruisci:** Tecniche per costruire e integrare applicazioni di chat in modo efficiente. | [Video](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Scopri di più](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Creare app di ricerca con database vettoriali](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Costruisci:** Un'applicazione di ricerca che utilizza Embeddings per cercare dati. | [Video](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Scopri di più](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Creare applicazioni di generazione di immagini](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Costruisci:** Un'applicazione per la generazione di immagini | [Video](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Scopri di più](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Creare applicazioni AI Low Code](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Costruisci:** Un'applicazione di AI generativa usando strumenti Low Code | [Video](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Scopri di più](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Integrare applicazioni esterne con Function Calling](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Costruisci:** Cos’è function calling e i suoi casi d’uso nelle applicazioni | [Video](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Scopri di più](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [Progettare UX per applicazioni AI](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Impara:** Come applicare i principi di design UX nello sviluppo di applicazioni di AI generativa | [Video](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Scopri di più](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Mettere in sicurezza le tue applicazioni di AI generativa](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Impara:** Le minacce e i rischi per i sistemi AI e i metodi per proteggerli. | [Video](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Scopri di più](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [Il ciclo di vita delle applicazioni di AI generativa](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Impara:** Gli strumenti e le metriche per gestire il ciclo di vita LLM e LLMOps | [Video](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Scopri di più](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) e database vettoriali](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Costruisci:** Un'applicazione che utilizza un framework RAG per recuperare embeddings da database vettoriali | [Video](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Scopri di più](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Modelli open source e Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Costruisci:** Un'applicazione che utilizza modelli open source disponibili su Hugging Face | [Video](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Scopri di più](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [Agenti AI](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Costruisci:** Un'applicazione che utilizza un framework di AI Agent | [Video](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Scopri di più](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [Fine-Tuning LLMs](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Impara:** Cosa, perché e come fare il fine-tuning dei LLM | [Video](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Scopri di più](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Costruire con SLMs](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Impara:** I vantaggi di costruire con Small Language Models | Video in arrivo | [Scopri di più](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Costruire con modelli Mistral](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Impara:** Le caratteristiche e le differenze dei modelli della famiglia Mistral | Video in arrivo | [Scopri di più](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Costruire con modelli Meta](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Impara:** Le caratteristiche e le differenze dei modelli della famiglia Meta | Video in arrivo | [Scopri di più](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Ringraziamenti speciali - -Un ringraziamento speciale a [**John Aziz**](https://www.linkedin.com/in/john0isaac/) per aver creato tutte le GitHub Actions e i workflow - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) per i contributi chiave in ogni lezione, migliorando l’esperienza di apprendimento e del codice. - -## 🎒 Altri corsi - -Il nostro team produce altri corsi! Dai un’occhiata a: - -- [**NUOVO** Model Context Protocol per principianti](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Agenti AI per principianti](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI generativa per principianti con .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [AI generativa per principianti con JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML per principianti](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Data Science per principianti](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI per principianti](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Cybersecurity per principianti](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Sviluppo Web per principianti](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT per principianti](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [Sviluppo XR per principianti](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Mastering GitHub Copilot per programmazione AI in coppia](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Mastering GitHub Copilot per sviluppatori C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Scegli la tua avventura con Copilot](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Disclaimer**: -Questo documento è stato tradotto utilizzando il servizio di traduzione automatica [Co-op Translator](https://github.com/Azure/co-op-translator). Pur impegnandoci per garantire l’accuratezza, si prega di notare che le traduzioni automatiche possono contenere errori o imprecisioni. Il documento originale nella sua lingua nativa deve essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda una traduzione professionale effettuata da un umano. Non ci assumiamo alcuna responsabilità per eventuali malintesi o interpretazioni errate derivanti dall’uso di questa traduzione. \ No newline at end of file + + + + diff --git a/translations/ja/00-course-setup/01-setup-cloud.md b/translations/ja/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..da76e5b0e --- /dev/null +++ b/translations/ja/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/ja/00-course-setup/02-setup-local.md b/translations/ja/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..d6297164c --- /dev/null +++ b/translations/ja/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/ja/00-course-setup/03-providers.md b/translations/ja/00-course-setup/03-providers.md new file mode 100644 index 000000000..801ebfc59 --- /dev/null +++ b/translations/ja/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/ja/00-course-setup/README.md b/translations/ja/00-course-setup/README.md index 60cfe6601..def297e28 100644 --- a/translations/ja/00-course-setup/README.md +++ b/translations/ja/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# このコースの始め方 - -このコースを始めて、Generative AIで何を作りたいかインスピレーションを得られることをとても楽しみにしています! - -成功のために、このページではセットアップ手順、技術要件、そして必要に応じてサポートを受ける方法を説明しています。 - -## セットアップ手順 - -このコースを始めるには、以下の手順を完了する必要があります。 - -### 1. このリポジトリをフォークする - -コードを変更したりチャレンジを完了したりするために、[このリポジトリ全体をフォーク](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst)して自分のGitHubアカウントにコピーしてください。また、[このリポジトリにスター(🌟)を付ける](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst)ことで、関連リポジトリを見つけやすくなります。 - -### 2. Codespaceを作成する - -コード実行時の依存関係の問題を避けるために、このコースは[GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst)で実行することを推奨します。 - -フォークしたリポジトリの`Code`オプションを選択し、**Codespaces**を選んで作成できます。 - -![Codespace作成ボタンを示すダイアログ](../../../00-course-setup/images/who-will-pay.webp) - -### 3. APIキーの保管 - -APIキーを安全に管理することは、どんなアプリケーションを作る上でも重要です。APIキーをコードに直接保存しないことをおすすめします。公開リポジトリにキーをコミットすると、セキュリティリスクや悪意のある利用による予期せぬコストが発生する可能性があります。 -以下はPython用の`.env`ファイルを作成し、`GITHUB_TOKEN`を追加する手順です。 - -1. **プロジェクトディレクトリに移動**: ターミナルやコマンドプロンプトを開き、`.env`ファイルを作成したいプロジェクトのルートディレクトリに移動します。 - - ```bash - cd path/to/your/project - ``` - -2. **`.env`ファイルを作成**: お好みのテキストエディタで新規ファイル`.env`を作成します。コマンドラインの場合、Unix系システムでは`touch`、Windowsでは`echo`を使えます。 - - Unix系システム: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **`.env`ファイルを編集**: `.env`ファイルをテキストエディタ(例:VS Code、Notepad++など)で開き、以下の行を追加します。`your_github_token_here`は実際のGitHubトークンに置き換えてください。 - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **ファイルを保存**: 変更を保存してエディタを閉じます。 - -5. **`python-dotenv`のインストール**: `.env`ファイルから環境変数をPythonアプリケーションに読み込むために、`python-dotenv`パッケージをインストールします。`pip`でインストール可能です。 - - ```bash - pip install python-dotenv - ``` - -6. **Pythonスクリプトで環境変数を読み込む**: Pythonスクリプト内で`python-dotenv`を使い、`.env`ファイルから環境変数を読み込みます。 - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -これで`.env`ファイルの作成、GitHubトークンの追加、Pythonアプリケーションへの読み込みが完了です。 - -## ローカルでの実行方法 - -ローカルでコードを実行するには、[Pythonのいずれかのバージョンをインストール](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst)しておく必要があります。 - -その後、リポジトリをクローンしてください。 - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -すべて準備できたら、さっそく始めましょう! - -## 任意の手順 - -### Minicondaのインストール - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst)は、[Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst)、Python、およびいくつかのパッケージをインストールするための軽量インストーラーです。 -Condaはパッケージマネージャーで、異なるPythonの[**仮想環境**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst)やパッケージのセットアップや切り替えを簡単にします。また、`pip`で入手できないパッケージのインストールにも便利です。 - -[MiniCondaインストールガイド](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst)に従ってセットアップしてください。 - -Minicondaをインストールしたら、まだなら[リポジトリをクローン](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst)します。 - -次に仮想環境を作成します。Condaで行う場合は、新しい環境ファイル(_environment.yml_)を作成してください。Codespacesを使っている場合は、`.devcontainer`ディレクトリ内に作成し、`.devcontainer/environment.yml`とします。 - -以下のスニペットで環境ファイルを作成してください。 - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -もしcondaでエラーが出る場合は、以下のコマンドでMicrosoft AIライブラリを手動でインストールできます。 - -``` -conda install -c microsoft azure-ai-ml -``` - -環境ファイルには必要な依存関係が指定されています。``はConda環境の名前、``は使用したいPythonのバージョン(例:最新のメジャーバージョンは`3`)です。 - -準備ができたら、以下のコマンドをコマンドラインやターミナルで実行してConda環境を作成します。 - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -問題があれば[Conda環境のガイド](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst)を参照してください。 - -### Visual Studio CodeとPython拡張機能の使用 - -このコースでは、[Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst)エディタに[Pythonサポート拡張機能](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst)をインストールして使うことを推奨します。ただし、必須ではありません。 - -> **Note**: コースリポジトリをVS Codeで開くと、プロジェクトをコンテナ内でセットアップするオプションが表示されます。これはリポジトリ内の[特別な`.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst)ディレクトリによるものです。詳細は後述します。 - -> **Note**: リポジトリをクローンしてVS Codeで開くと、自動的にPythonサポート拡張機能のインストールを提案されます。 - -> **Note**: VS Codeがリポジトリをコンテナ内で再オープンするよう提案した場合は、ローカルにインストールされたPythonを使うためにこの提案は拒否してください。 - -### ブラウザでJupyterを使う - -ブラウザ内で[ Jupyter環境](https://jupyter.org?WT.mc_id=academic-105485-koreyst)を使ってプロジェクトに取り組むこともできます。クラシックJupyterや[Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst)は、オートコンプリートやコードハイライトなど快適な開発環境を提供します。 - -ローカルでJupyterを起動するには、ターミナルやコマンドラインでコースディレクトリに移動し、以下を実行してください。 - -```bash -jupyter notebook -``` - -または - -```bash -jupyterhub -``` - -これでJupyterが起動し、アクセス用のURLがコマンドラインに表示されます。 - -URLにアクセスすると、コースのアウトラインが表示され、任意の`*.ipynb`ファイルに移動できます。例:`08-building-search-applications/python/oai-solution.ipynb` - -### コンテナでの実行 - -パソコンやCodespaceにすべてをセットアップする代わりに、[コンテナ](../../../00-course-setup/)を使う方法もあります。コースリポジトリ内の特別な`.devcontainer`フォルダにより、VS Codeがコンテナ内でプロジェクトをセットアップ可能です。Codespaces以外で使う場合はDockerのインストールが必要で、やや手間がかかるため、コンテナの経験がある方にのみおすすめします。 - -GitHub CodespacesでAPIキーを安全に管理する最良の方法の一つは、Codespace Secretsの利用です。[Codespaces secrets管理](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst)ガイドを参照してください。 - -## レッスンと技術要件 - -このコースは6つの概念レッスンと6つのコーディングレッスンで構成されています。 - -コーディングレッスンではAzure OpenAI Serviceを使用します。コードを実行するにはAzure OpenAIサービスへのアクセス権とAPIキーが必要です。[こちらの申請フォーム](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst)からアクセス申請が可能です。 - -申請処理中は、各コーディングレッスンに付属の`README.md`ファイルでコードと出力を確認できます。 - -## Azure OpenAI Serviceを初めて使う場合 - -Azure OpenAI Serviceを初めて使う場合は、[Azure OpenAI Serviceリソースの作成とデプロイ方法](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst)のガイドに従ってください。 - -## OpenAI APIを初めて使う場合 - -OpenAI APIを初めて使う場合は、[インターフェースの作成と使用方法](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst)のガイドを参照してください。 - -## 他の学習者と交流しよう - -公式の[AI Community Discordサーバー](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst)に学習者同士が交流できるチャンネルを用意しています。志を同じくする起業家、開発者、学生、Generative AIをレベルアップしたい方々とネットワークを広げる絶好の機会です。 - -[![Discordチャンネルに参加](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -プロジェクトチームもこのDiscordサーバーに参加し、学習者のサポートを行います。 - -## 貢献について - -このコースはオープンソースの取り組みです。改善点や問題を見つけたら、[プルリクエスト](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst)を作成するか、[GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst)を報告してください。 - -プロジェクトチームはすべての貢献を追跡しています。オープンソースへの貢献はGenerative AI分野でのキャリア構築に素晴らしい方法です。 - -ほとんどの貢献には、貢献物の使用権を当方に付与する権利があることを宣言するContributor License Agreement (CLA)への同意が必要です。詳細は[CLA, Contributor License Agreementのウェブサイト](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst)をご覧ください。 - -重要:このリポジトリの翻訳を行う際は、機械翻訳を使わないようにしてください。コミュニティによる検証を行うため、翻訳に自信のある言語のみでボランティアをお願いします。 - -プルリクエストを提出すると、CLA-botが自動的にCLAの提出が必要か判定し、PRに適切なラベルやコメントを付けます。ボットの指示に従ってください。CLAの提出は当方のすべてのリポジトリで一度だけ行えば十分です。 - -このプロジェクトは[Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst)を採用しています。詳細はCode of Conduct FAQを読むか、質問やコメントがあれば[Email opencode](opencode@microsoft.com)までご連絡ください。 - -## さあ、始めましょう - -必要な手順を完了したので、まずは[Generative AIとLLMの紹介](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst)から始めましょう。 - -**免責事項**: -本書類はAI翻訳サービス「[Co-op Translator](https://github.com/Azure/co-op-translator)」を使用して翻訳されました。正確性の向上に努めておりますが、自動翻訳には誤りや不正確な部分が含まれる可能性があります。原文の言語によるオリジナル文書が正式な情報源とみなされるべきです。重要な情報については、専門の人間による翻訳を推奨します。本翻訳の利用により生じたいかなる誤解や誤訳についても、当方は一切の責任を負いかねます。 \ No newline at end of file + + + + diff --git a/translations/ja/00-course-setup/SETUP.md b/translations/ja/00-course-setup/SETUP.md deleted file mode 100644 index 3f12ad68d..000000000 --- a/translations/ja/00-course-setup/SETUP.md +++ /dev/null @@ -1,146 +0,0 @@ - -# 開発環境のセットアップ - -このリポジトリとコースは、Python3、.NET、Node.js、Javaの開発をサポートするユニバーサルランタイムを備えた[開発コンテナ](https://containers.dev?WT.mc_id=academic-105485-koreyst)を使って構成されています。関連する設定は、このリポジトリのルートにある `.devcontainer/` フォルダー内の `devcontainer.json` ファイルに定義されています。 - -開発コンテナを起動するには、[GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst)(クラウドホスト型ランタイム用)または[Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst)(ローカルデバイスホスト型ランタイム用)で起動してください。VS Code内での開発コンテナの動作については、[こちらのドキュメント](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst)を参照してください。 - -> [!TIP] -> 最小限の手間で素早く始めるにはGitHub Codespacesの利用をおすすめします。個人アカウント向けに十分な[無料利用枠](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst)が提供されています。利用枠を最大限活用するために、非アクティブなCodespacesを停止または削除する[タイムアウト設定](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst)を行いましょう。 - -## 1. 課題の実行 - -各レッスンには、Python、.NET/C#、Java、JavaScript/TypeScriptなど複数のプログラミング言語で提供されることがある_任意の_課題があります。このセクションでは、それらの課題の実行に関する一般的なガイダンスを示します。 - -### 1.1 Python課題 - -Pythonの課題は、アプリケーション(`.py`ファイル)またはJupyterノートブック(`.ipynb`ファイル)として提供されます。 -- ノートブックを実行するには、Visual Studio Codeで開き、右上の _Select Kernel_ をクリックして表示されるデフォルトのPython 3を選択します。その後、_Run All_ を実行してノートブック全体を実行できます。 -- コマンドラインからPythonアプリケーションを実行する場合は、課題ごとの指示に従い、正しいファイルを選択し必要な引数を指定してください。 - -## 2. プロバイダーの設定 - -課題は、OpenAI、Azure、Hugging Faceなどのサポートされているサービスプロバイダーを通じて、1つ以上の大規模言語モデル(LLM)展開に対して動作するよう設定されている場合があります。これらは、適切な認証情報(APIキーやトークン)を使ってプログラムからアクセス可能な_ホスト型エンドポイント_(API)を提供します。本コースでは以下のプロバイダーについて扱います: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) :コアのGPTシリーズを含む多様なモデル - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) :エンタープライズ対応に重点を置いたOpenAIモデル - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) :オープンソースモデルと推論サーバー - -**これらの演習にはご自身のアカウントが必要です**。課題は任意なので、興味に応じて1つ、すべて、またはどれも設定しなくても構いません。サインアップの参考情報は以下の通りです: - -| サインアップ | 料金 | APIキー | Playground | コメント | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst) | [料金](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst) | [プロジェクトベース](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [ノーコード、Web](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | 複数モデル利用可能 | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst) | [料金](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst) | [SDKクイックスタート](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Studioクイックスタート](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [事前申請が必要](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) | -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [料金](https://huggingface.co/pricing) | [アクセストークン](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst) | [Hugging Chatはモデルが限定的](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -以下の手順に従って、このリポジトリを各プロバイダー用に_設定_してください。特定のプロバイダーが必要な課題は、ファイル名に以下のタグが含まれます: - - `aoai` - Azure OpenAIのエンドポイントとキーが必要 - - `oai` - OpenAIのエンドポイントとキーが必要 - - `hf` - Hugging Faceのトークンが必要 - -1つ、複数、またはすべてのプロバイダーを設定可能です。認証情報が不足している場合は、関連課題はエラーになります。 - -### 2.1 `.env` ファイルの作成 - -上記のガイダンスを読み、該当するプロバイダーにサインアップし、必要な認証情報(API_KEYやトークン)を取得済みであることを前提とします。Azure OpenAIの場合は、少なくとも1つのGPTモデルがチャット補完用にデプロイされたAzure OpenAIサービス(エンドポイント)を有効にしていることも前提です。 - -次に、**ローカルの環境変数**を以下のように設定します: - -1. ルートフォルダーに `.env.copy` ファイルがあり、以下のような内容が含まれていることを確認してください: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. 以下のコマンドで `.env.copy` を `.env` にコピーします。このファイルは _gitignore_ に含まれており、秘密情報を安全に保ちます。 - - ```bash - cp .env.copy .env - ``` - -3. 次のセクションで説明するように、`=` の右側のプレースホルダーを実際の値に置き換えてください。 - -3. (オプション)GitHub Codespacesを使う場合は、このリポジトリに関連付けられた_Codespaces secrets_として環境変数を保存することもできます。その場合、ローカルの `.env` ファイルを設定する必要はありません。**ただし、このオプションはGitHub Codespacesを使う場合のみ有効です。** Docker Desktopを使う場合は引き続き `.env` ファイルの設定が必要です。 - -### 2.2 `.env` ファイルの内容を入力 - -変数名が何を意味するか簡単に見てみましょう: - -| 変数名 | 説明 | -| :--- | :--- | -| HUGGING_FACE_API_KEY | プロフィールで設定したユーザーアクセストークン | -| OPENAI_API_KEY | Azure以外のOpenAIエンドポイントでサービスを利用するための認証キー | -| AZURE_OPENAI_API_KEY | Azure OpenAIサービスを利用するための認証キー | -| AZURE_OPENAI_ENDPOINT | Azure OpenAIリソースのデプロイ済みエンドポイント | -| AZURE_OPENAI_DEPLOYMENT | _テキスト生成_モデルのデプロイメント名 | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | _テキスト埋め込み_モデルのデプロイメント名 | -| | | - -補足:最後の2つのAzure OpenAI変数は、それぞれチャット補完(テキスト生成)用とベクトル検索(埋め込み)用のデフォルトモデルを示します。設定方法は該当する課題で指示されます。 - -### 2.3 Azureの設定:ポータルから - -Azure OpenAIのエンドポイントとキーは[Azureポータル](https://portal.azure.com?WT.mc_id=academic-105485-koreyst)で確認できます。まずはそこから始めましょう。 - -1. [Azureポータル](https://portal.azure.com?WT.mc_id=academic-105485-koreyst)にアクセスします。 -1. サイドバー(左メニュー)で **Keys and Endpoint** をクリックします。 -1. **Show Keys** をクリックすると、KEY 1、KEY 2、Endpointが表示されます。 -1. KEY 1の値を `AZURE_OPENAI_API_KEY` に設定します。 -1. Endpointの値を `AZURE_OPENAI_ENDPOINT` に設定します。 - -次に、デプロイ済みのモデルのエンドポイントを取得します。 - -1. Azure OpenAIリソースのサイドバーで **Model deployments** をクリックします。 -1. 表示されたページで **Manage Deployments** をクリックします。 - -これによりAzure OpenAI Studioのウェブサイトに移動し、以下の説明にある値を確認できます。 - -### 2.4 Azureの設定:Studioから - -1. 上記の手順でアクセスした[Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst)に移動します。 -1. サイドバーの **Deployments** タブをクリックし、現在デプロイされているモデルを確認します。 -1. 目的のモデルがデプロイされていない場合は、**Create new deployment** で新規デプロイしてください。 -1. _テキスト生成_モデルとしては、**gpt-35-turbo** を推奨します。 -1. _テキスト埋め込み_モデルとしては、**text-embedding-ada-002** を推奨します。 - -環境変数には、使用している_デプロイメント名_を設定してください。通常はモデル名と同じですが、明示的に変更している場合はその名前を使います。例としては以下のようになります: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**設定後は必ず .env ファイルを保存してください**。保存したらファイルを閉じ、ノートブック実行の手順に戻ってください。 - -### 2.5 OpenAIの設定:プロフィールから - -OpenAIのAPIキーは、[OpenAIアカウント](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst)で確認できます。アカウントを持っていない場合はサインアップしてAPIキーを作成してください。取得したキーを `.env` ファイルの `OPENAI_API_KEY` に設定します。 - -### 2.6 Hugging Faceの設定:プロフィールから - -Hugging Faceのトークンは、プロフィールの[Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst)で確認できます。これらを公開したり共有したりしないでください。このプロジェクト用に新しいトークンを作成し、`.env` ファイルの `HUGGING_FACE_API_KEY` にコピーしてください。 -_注意:_ これは厳密にはAPIキーではありませんが、認証に使うため一貫性を保つためにこの名前を使っています。 - -**免責事項**: -本書類はAI翻訳サービス「[Co-op Translator](https://github.com/Azure/co-op-translator)」を使用して翻訳されました。正確性を期しておりますが、自動翻訳には誤りや不正確な部分が含まれる可能性があります。原文の言語によるオリジナル文書が正式な情報源とみなされるべきです。重要な情報については、専門の人間による翻訳を推奨します。本翻訳の利用により生じたいかなる誤解や誤訳についても、当方は責任を負いかねます。 \ No newline at end of file diff --git a/translations/ja/04-prompt-engineering-fundamentals/README.md b/translations/ja/04-prompt-engineering-fundamentals/README.md index e14a55ec2..b62ce550e 100644 --- a/translations/ja/04-prompt-engineering-fundamentals/README.md +++ b/translations/ja/04-prompt-engineering-fundamentals/README.md @@ -1,467 +1,15 @@ - -# プロンプトエンジニアリングの基礎 - -[![Prompt Engineering Fundamentals](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.ja.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## はじめに -このモジュールでは、生成AIモデルで効果的なプロンプトを作成するための基本的な概念と技術を扱います。LLMに対してどのようにプロンプトを書くかも重要です。慎重に作成されたプロンプトは、より質の高い応答を得ることができます。しかし、「プロンプト」や「プロンプトエンジニアリング」とは具体的に何を指すのでしょうか?また、LLMに送るプロンプトの入力をどのように改善すればよいのでしょうか?これらの疑問に、この章と次の章で答えていきます。 - -_生成AI_は、ユーザーのリクエストに応じて新しいコンテンツ(例:テキスト、画像、音声、コードなど)を作り出すことができます。これは、OpenAIのGPT(「Generative Pre-trained Transformer」)シリーズのような自然言語やコードの使用に特化して訓練された_Large Language Models_(大規模言語モデル)を用いて実現しています。 - -ユーザーは今や、技術的な専門知識やトレーニングなしで、チャットのような馴染みのある方法でこれらのモデルと対話できます。モデルは_プロンプトベース_で、ユーザーはテキスト入力(プロンプト)を送り、AIの応答(完了)を受け取ります。その後、期待する応答が得られるまで、複数回のやり取りでプロンプトを洗練させながら「AIとチャット」することができます。 - -「プロンプト」は、生成AIアプリの主要な_プログラミングインターフェース_となり、モデルに何をさせるかを指示し、返される応答の質に影響を与えます。「プロンプトエンジニアリング」は、スケールに応じて一貫性のある質の高い応答を提供するために、プロンプトの_設計と最適化_に焦点を当てた急成長中の分野です。 - -## 学習目標 - -このレッスンでは、プロンプトエンジニアリングとは何か、なぜ重要なのか、そして特定のモデルやアプリケーションの目的に合わせてより効果的なプロンプトを作成する方法を学びます。プロンプトエンジニアリングの基本概念とベストプラクティスを理解し、実際の例に適用できるインタラクティブなJupyterノートブックの「サンドボックス」環境についても学びます。 - -このレッスンの終わりには、以下ができるようになります: - -1. プロンプトエンジニアリングとは何か、なぜ重要かを説明できる。 -2. プロンプトの構成要素とその使い方を説明できる。 -3. プロンプトエンジニアリングのベストプラクティスと技術を学ぶ。 -4. 学んだ技術を実際の例に適用し、OpenAIエンドポイントを使って試せる。 - -## 重要用語 - -プロンプトエンジニアリング:AIモデルが望ましい出力を生成するように入力を設計・洗練する実践。 -トークン化:テキストをモデルが理解・処理できる小さな単位(トークン)に変換するプロセス。 -Instruction-Tuned LLMs:特定の指示に基づいて応答の精度や関連性を高めるために微調整された大規模言語モデル。 - -## 学習サンドボックス - -プロンプトエンジニアリングは現在、科学というよりは芸術に近いものです。直感を磨く最良の方法は、_実践を重ねる_ことであり、応用分野の専門知識と推奨される技術、モデル固有の最適化を組み合わせた試行錯誤のアプローチを取ることです。 - -このレッスンに付属するJupyterノートブックは、学んだことを試せる_サンドボックス_環境を提供します。演習を実行するには以下が必要です: - -1. **Azure OpenAI APIキー** - 展開されたLLMのサービスエンドポイント。 -2. **Pythonランタイム** - ノートブックを実行する環境。 -3. **ローカル環境変数** - _今すぐ[SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst)の手順を完了して準備を整えましょう_。 - -ノートブックには_スターター_演習が用意されていますが、より多くの例やアイデアを試すために、自分で_マークダウン_(説明)や_コード_(プロンプトリクエスト)セクションを追加して、プロンプト設計の直感を養うことを推奨します。 - -## イラスト付きガイド - -このレッスンの全体像を掴みたいですか?このイラスト付きガイドをチェックしてください。主なトピックと、それぞれで考えるべき重要なポイントが示されています。レッスンのロードマップは、基本概念と課題の理解から始まり、関連するプロンプトエンジニアリング技術やベストプラクティスでそれらに対処する流れになっています。このガイドの「高度な技術」セクションは、このカリキュラムの_次の_章で扱う内容を指しています。 - -![Illustrated Guide to Prompt Engineering](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.ja.png) - -## 私たちのスタートアップ - -さて、_このトピック_が私たちのスタートアップのミッションである[教育にAIイノベーションをもたらす](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst)ことにどう関係しているか話しましょう。私たちは_AIを活用したパーソナライズ学習_のアプリケーションを作りたいと考えています。そこで、アプリの異なるユーザーがどのようにプロンプトを「設計」するかを考えてみましょう: - -- **管理者**はAIに_カリキュラムデータを分析してカバー範囲のギャップを特定する_よう依頼するかもしれません。AIは結果を要約したり、コードで可視化したりできます。 -- **教育者**はAIに_対象の受講者とトピックに合わせたレッスンプランを作成する_よう依頼するかもしれません。AIは指定されたフォーマットでパーソナライズされたプランを作成します。 -- **学生**はAIに_難しい科目のチューターをしてもらう_よう依頼するかもしれません。AIは学生のレベルに合わせたレッスンやヒント、例を提供して指導します。 - -これは氷山の一角に過ぎません。教育専門家がキュレーションしたオープンソースのプロンプトライブラリ[Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst)をチェックして、可能性の幅を広げてみてください!_サンドボックスやOpenAI Playgroundでこれらのプロンプトを実際に動かしてみるのもおすすめです!_ - - - -## プロンプトエンジニアリングとは? - -このレッスンは、**プロンプトエンジニアリング**を、特定のアプリケーション目的とモデルに対して一貫性のある質の高い応答(完了)を提供するために、テキスト入力(プロンプト)を_設計し最適化する_プロセスとして定義しました。これは大きく2段階のプロセスと考えられます: - -- 特定のモデルと目的に合わせて初期プロンプトを_設計_する -- 応答の質を高めるためにプロンプトを繰り返し_洗練_する - -これは最適な結果を得るためにユーザーの直感と努力を要する試行錯誤のプロセスです。では、なぜ重要なのでしょうか?その答えを探るために、まず3つの概念を理解する必要があります: - -- _トークン化_ = モデルがプロンプトを「どのように見るか」 -- _基盤LLM_ = 基礎モデルがプロンプトを「どのように処理するか」 -- _Instruction-Tuned LLM_ = モデルが「タスク」をどのように認識できるか - -### トークン化 - -LLMはプロンプトを_トークンの連なり_として認識します。異なるモデル(または同じモデルのバージョン違い)では、同じプロンプトでもトークン化の仕方が異なることがあります。LLMはトークン単位で訓練されているため、プロンプトのトークン化の仕方が生成される応答の質に直接影響します。 - -トークン化の仕組みを直感的に理解するには、以下のような[OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst)ツールを試してみてください。プロンプトをコピーして貼り付けると、どのようにトークンに変換されるかがわかります。空白文字や句読点の扱いに注目しましょう。この例は古いLLM(GPT-3)を示しているため、新しいモデルで試すと結果が異なるかもしれません。 - -![Tokenization](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.ja.png) - -### 概念:基盤モデル - -プロンプトがトークン化されると、["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst)(基盤モデル)の主な役割は、そのトークン列の次のトークンを予測することです。LLMは膨大なテキストデータセットで訓練されているため、トークン間の統計的な関係をよく把握しており、ある程度の確信を持って予測できます。プロンプトやトークンの_意味_を理解しているわけではなく、単に「次に続くパターン」を予測しているだけです。ユーザーの介入や事前に設定された条件で終了するまで、予測を続けることができます。 - -プロンプトベースの完了がどのように機能するか見てみたいですか?上記のプロンプトをAzure OpenAI Studioの[_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst)にデフォルト設定で入力してみてください。システムはプロンプトを情報要求として扱うよう設定されているため、この文脈に合った完了が得られるはずです。 - -しかし、ユーザーが特定の条件やタスク目的を満たすものを見たい場合はどうでしょう?ここで_instruction-tuned_ LLMが登場します。 - -![Base LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.ja.png) - -### 概念:Instruction Tuned LLM - -[Instruction Tuned LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst)は基盤モデルをベースに、明確な指示を含む例や入出力ペア(例:複数ターンの「メッセージ」)で微調整されています。AIの応答はその指示に従おうとします。 - -これは、強化学習と人間のフィードバック(RLHF)などの技術を用いて、モデルが_指示に従い_、_フィードバックから学習_できるように訓練し、実用的なアプリケーションにより適した、ユーザーの目的に合った応答を生成できるようにしています。 - -試してみましょう。上記のプロンプトに戻り、_システムメッセージ_を以下の指示に変更してみてください: - -> _提供された内容を小学校2年生向けに要約してください。結果は1段落で、3~5の箇条書きにまとめてください。_ - -結果が望ましい目的と形式に調整されているのがわかりますか?教育者はこの応答をそのまま授業用スライドに使うことができます。 - -![Instruction Tuned LLM Chat Completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.ja.png) - -## なぜプロンプトエンジニアリングが必要なのか? - -プロンプトがLLMでどのように処理されるかがわかったところで、なぜプロンプトエンジニアリングが必要なのかを説明しましょう。その答えは、現在のLLMがいくつかの課題を抱えており、プロンプトの構築や最適化に努力を払わなければ、_信頼性が高く一貫した完了_を得るのが難しいという事実にあります。例えば: - -1. **モデルの応答は確率的である。** _同じプロンプト_でも、異なるモデルやモデルのバージョンで異なる応答が返される可能性があります。また、_同じモデル_でも時間によって異なる結果が出ることがあります。_プロンプトエンジニアリングの技術は、こうした変動を最小限に抑えるためのガードレールを提供します_。 - -1. **モデルは虚偽の応答を生成することがある。** モデルは_大規模だが有限の_データセットで事前訓練されているため、その訓練範囲外の概念については知識がありません。その結果、不正確、架空、あるいは既知の事実と矛盾する完了を生成することがあります。_プロンプトエンジニアリングは、AIに出典や根拠を求めるなど、こうした虚偽を特定・軽減する手助けをします_。 - -1. **モデルの能力は異なる。** 新しいモデルや世代はより豊かな能力を持ちますが、コストや複雑さの面で独自の特徴やトレードオフもあります。_プロンプトエンジニアリングは、違いを抽象化し、モデル固有の要件に適応するベストプラクティスやワークフローをスケーラブルかつシームレスに開発するのに役立ちます_。 - -OpenAIやAzure OpenAI Playgroundで実際に試してみましょう: - -- 同じプロンプトを異なるLLM展開(例:OpenAI、Azure OpenAI、Hugging Face)で使ってみて、違いはありましたか? -- 同じプロンプトを_同じ_LLM展開(例:Azure OpenAI Playground)で繰り返し使ってみて、変動はどのように異なりましたか? - -### 虚偽の例 - -このコースでは、LLMが訓練の制約やその他の理由で事実と異なる情報を生成する現象を**「虚偽」**と呼んでいます。一般的な記事や研究論文では_「幻覚」_(hallucinations)と呼ばれることもありますが、機械の結果に人間の特性を誤って付与しないように、_「虚偽」_という用語の使用を強く推奨します。これは、[責任あるAIガイドライン](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst)の観点からも、攻撃的または非包括的とみなされる可能性のある用語を避ける意味で重要です。 - -虚偽がどのように起こるかを理解したいですか?AIに存在しないトピックのコンテンツを生成するよう指示するプロンプトを考えてみてください(訓練データセットに含まれていないことを保証する -# 2076年の火星戦争に関するレッスンプラン - -## レッスン概要 -このレッスンでは、2076年に起こった火星戦争の背景、主要な出来事、影響について学びます。歴史的な視点から戦争の原因と結果を分析し、現代社会への教訓を考察します。 - -## 目標 -- 2076年の火星戦争の主要な出来事を理解する -- 戦争の原因と影響を分析する -- 歴史的な出来事が現代に与える影響を考察する - -## レッスンの流れ - -### 1. 導入(10分) -- 火星戦争とは何かを簡単に説明 -- 戦争が起こった背景についての概要を紹介 - -### 2. 背景説明(15分) -- 火星植民地の歴史と発展 -- 地球と火星間の政治的緊張 -- 資源争奪の問題 - -### 3. 主要な出来事(20分) -- 戦争の勃発と初期の戦闘 -- 重要な戦闘と戦略 -- 戦争の転換点 - -### 4. 戦争の影響(15分) -- 火星社会への影響 -- 地球との関係の変化 -- 技術的・社会的な進歩 - -### 5. ディスカッション(20分) -- 戦争の原因は避けられなかったのか? -- 現代における類似の問題とその解決策 -- 平和維持のために学べる教訓 - -### 6. まとめと振り返り(10分) -- レッスンのポイントを復習 -- 質疑応答 - -## 使用教材 -- 戦争の年表 -- 主要な登場人物のプロフィール -- 戦闘地図と戦略図 -- 関連する映像資料 - -## 宿題 -- 火星戦争に関する短いエッセイを書く -- 戦争の影響を現代社会に当てはめて考察する - ---- - -このレッスンプランを通じて、学生は2076年の火星戦争を深く理解し、歴史から学ぶ重要性を実感できるようになります。 -ウェブ検索を行ったところ、火星戦争に関する架空の物語(例:テレビシリーズや書籍)は存在しましたが、2076年を舞台にしたものはありませんでした。常識的に考えても、2076年は_未来_であり、実際の出来事と結びつけることはできません。 - -では、異なるLLMプロバイダーでこのプロンプトを実行するとどうなるでしょうか? - -> **Response 1**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.ja.png) - -> **Response 2**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.ja.png) - -> **Response 3**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.ja.png) - -予想通り、各モデル(またはモデルのバージョン)は確率的な挙動やモデルの能力の違いにより、わずかに異なる応答を生成します。例えば、あるモデルは中学2年生向けの表現を使い、別のモデルは高校生を想定しています。しかし、3つのモデルすべてが、情報に乏しいユーザーに対してその出来事が実際にあったかのように納得させる応答を生成しました。 - -_metaprompting_や_temperature設定_といったプロンプトエンジニアリングの手法は、モデルの虚偽生成をある程度抑制することができます。新しいプロンプトエンジニアリングの_アーキテクチャ_は、これらの効果を軽減または削減するために、新しいツールや技術をプロンプトの流れにシームレスに組み込んでいます。 - -## ケーススタディ:GitHub Copilot - -このセクションを締めくくるにあたり、実際のソリューションでプロンプトエンジニアリングがどのように使われているかを理解するために、ケーススタディの一つである[GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst)を見てみましょう。 - -GitHub Copilotは「AIペアプログラマー」です。テキストプロンプトをコード補完に変換し、開発環境(例:Visual Studio Code)に統合されているため、シームレスなユーザー体験を提供します。以下のブログシリーズに記載されているように、最初のバージョンはOpenAI Codexモデルに基づいており、エンジニアたちはコード品質向上のためにモデルのファインチューニングやより良いプロンプトエンジニアリング技術の開発が必要であることにすぐに気づきました。7月には、[Codexを超える改良されたAIモデル](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst)を発表し、さらに高速な提案が可能になりました。 - -彼らの学習の軌跡を追うために、投稿を順番に読んでみてください。 - -- **2023年5月** | [GitHub Copilotがコード理解力を向上させている](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **2023年5月** | [GitHubの内部:GitHub Copilotの背後にあるLLMとの連携](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **2023年6月** | [GitHub Copilotのためのより良いプロンプトの書き方](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **2023年7月** | [GitHub Copilotが改良されたAIモデルでCodexを超える](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **2023年7月** | [開発者のためのプロンプトエンジニアリングとLLMガイド](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **2023年9月** | [エンタープライズLLMアプリの構築方法:GitHub Copilotからの教訓](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -また、[エンジニアリングブログ](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst)もご覧いただけます。例えば、[こちらの記事](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst)では、これらのモデルや技術が実際のアプリケーション開発にどのように_応用_されているかが紹介されています。 - ---- - - - -## プロンプト構築 - -プロンプトエンジニアリングが重要な理由は理解できました。次に、プロンプトがどのように_構築_されるかを理解し、より効果的なプロンプト設計のためのさまざまな手法を評価しましょう。 - -### 基本プロンプト - -まずは基本的なプロンプトから始めましょう。これは他の文脈なしにモデルに送られるテキスト入力です。例として、アメリカ国歌の最初の数語をOpenAIの[Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst)に送ると、次の数行を即座に_補完_して返してくれます。これは基本的な予測動作の例です。 - -| プロンプト(入力) | 補完(出力) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | 「The Star-Spangled Banner」(星条旗)の歌詞の始まりのようですね。アメリカ合衆国の国歌です。全文は... | - -### 複雑なプロンプト - -次に、基本プロンプトに文脈や指示を加えてみましょう。[Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst)では、複雑なプロンプトを複数の_メッセージ_の集合として構築できます。 - -- ユーザー入力とアシスタント応答の入出力ペア -- アシスタントの振る舞いや性格を設定するシステムメッセージ - -リクエストは以下の形式になり、_トークン化_によって文脈や会話から関連情報が効果的に抽出されます。システムの文脈を変えることは、ユーザー入力と同じくらい補完の質に大きな影響を与えます。 - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### 指示プロンプト - -上記の例では、ユーザープロンプトは単純なテキストクエリで、情報要求として解釈されます。_指示_プロンプトでは、そのテキストを使ってタスクをより詳細に指定し、AIにより良い指示を与えられます。例を示します。 - -| プロンプト(入力) | 補完(出力) | 指示タイプ | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Write a description of the Civil War | _簡単な段落を返す_ | シンプル | -| Write a description of the Civil War. Provide key dates and events and describe their significance | _段落の後に重要な出来事の日付と説明のリストを返す_ | 複雑 | -| Write a description of the Civil War in 1 paragraph. Provide 3 bullet points with key dates and their significance. Provide 3 more bullet points with key historical figures and their contributions. Return the output as a JSON file | _より詳細な内容をJSON形式でテキストボックスに返し、コピーしてファイルに貼り付けて検証可能_ | 複雑。フォーマットあり | - -## プライマリーコンテンツ - -上記の例では、プロンプトはまだかなり自由形式で、LLMが事前学習データのどの部分を関連付けるかを決めていました。_プライマリーコンテンツ_設計パターンでは、入力テキストを以下の2つに分けます。 - -- 指示(アクション) -- 関連コンテンツ(アクションに影響を与える内容) - -例として、「これを2文で要約せよ」という指示があります。 - -| プロンプト(入力) | 補完(出力) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 木星は太陽から5番目の惑星で、太陽系で最大の惑星です。ガスジャイアントであり、質量は太陽の千分の一ですが、太陽系の他のすべての惑星の合計の2.5倍です。肉眼で見える最も明るい天体の一つであり、古代文明の記録以前から知られていました。ローマ神話の神ジュピターにちなんで名付けられています。[19] 地球から見ると、反射光が影を作るほど明るく、[20] 月と金星に次いで夜空で3番目に明るい自然天体です。
**これを2文で短く要約してください** | 木星は太陽から5番目の惑星で、太陽系最大の惑星であり、夜空で最も明るい天体の一つです。ローマ神話の神ジュピターにちなんで名付けられたこのガスジャイアントは、太陽系の他の惑星の合計質量の2.5倍の質量を持っています。 | - -プライマリーコンテンツのセグメントは、より効果的な指示を促すためにさまざまな方法で使えます。 - -- **例示** - 明示的な指示を与える代わりに、モデルに望ましい出力の例を示し、パターンを推測させる。 -- **キュー** - 指示の後に「キュー」を置き、補完の方向性を示してモデルを誘導する。 -- **テンプレート** - プレースホルダー(変数)を含む繰り返し使えるプロンプトの「レシピ」で、特定のデータに合わせてカスタマイズ可能。 - -これらを実際に見てみましょう。 - -### 例示の利用 - -これは、プライマリーコンテンツを使って、ある指示に対する望ましい出力の例をモデルに「与え」、パターンを推測させる手法です。例の数に応じて、ゼロショット、ワンショット、フューショットプロンプティングなどがあります。 - -プロンプトは以下の3つの要素で構成されます。 - -- タスクの説明 -- 望ましい出力のいくつかの例 -- 新しい例の開始(暗黙のタスク説明となる) - -| 学習タイプ | プロンプト(入力) | 補完(出力) | -| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| ゼロショット | "The Sun is Shining". スペイン語に翻訳してください | "El Sol está brillando". | -| ワンショット | "The Sun is Shining" => ""El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| フューショット | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketball | -| | | | - -ゼロショットでは明示的に「スペイン語に翻訳してください」と指示する必要がありますが、ワンショットでは例から推測されます。フューショットでは例を増やすことで、追加の指示なしにより正確な推測が可能になります。 - -### プロンプトキュー - -プライマリーコンテンツを使う別の手法は、例示ではなく_キュー_を与えることです。この場合、望ましい応答形式を反映した断片を最初に与え、モデルに「キューを受け取らせて」その形式で続けさせます。 - -| キューの数 | プロンプト(入力) | 補完(出力) | -| :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | 木星は太陽から5番目の惑星で、太陽系で最大の惑星です。ガスジャイアントであり、質量は太陽の千分の一ですが、太陽系の他のすべての惑星の合計の2.5倍です。木星は肉眼で見える最も明るい天体の一つであり、古代文明の記録以前から知られていました。 - -**Summarize This** | 木星は太陽系で最大の惑星であり、太陽から5番目の惑星です。ガスジャイアントで、質量は太陽の1/1000ですが、他のすべての惑星の合計よりも重いです。古代文明から長く知られており、夜空で簡単に見ることができます。 | -| 1 | 木星は太陽から5番目の惑星で、太陽系で最大の惑星です。ガスジャイアントで、質量は太陽の千分の一ですが、太陽系の他のすべての惑星の合計の2.5倍の重さがあります。木星は肉眼で見える最も明るい天体の一つであり、記録される以前の古代文明から知られてきました。
**Summarize This**
私たちが学んだことは、木星は | 太陽から5番目の惑星で、太陽系で最大の惑星であるということです。ガスジャイアントで、質量は太陽の千分の一ですが、他のすべての惑星の合計の2.5倍の重さがあります。肉眼で簡単に見ることができ、古代から知られている惑星です。 | -| 2 | 木星は太陽から5番目の惑星で、太陽系で最大の惑星です。ガスジャイアントで、質量は太陽の千分の一ですが、太陽系の他のすべての惑星の合計の2.5倍の重さがあります。木星は肉眼で見える最も明るい天体の一つであり、記録される以前の古代文明から知られてきました。
**Summarize This**
私たちが学んだトップ3の事実: | 1. 木星は太陽から5番目の惑星で、太陽系で最大の惑星です。
2. ガスジャイアントで、質量は太陽の千分の一ですが…
3. 木星は古代から肉眼で見えてきた惑星です… | -| | | | - -### Prompt Templates - -プロンプトテンプレートとは、_あらかじめ定義されたプロンプトのレシピ_であり、必要に応じて保存・再利用できるものです。これにより、大規模で一貫したユーザー体験を実現できます。最も単純な形では、[OpenAIのこちらの例](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst)のように、対話型のプロンプト要素(ユーザーとシステムのメッセージ)とAPIリクエスト形式の両方を含むプロンプト例のコレクションです。 - -より複雑な形では、[LangChainの例](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst)のように、_プレースホルダー_を含み、ユーザー入力やシステムコンテキスト、外部データなど様々なソースからデータを差し替えて動的にプロンプトを生成できます。これにより、プログラム的に一貫したユーザー体験を大規模に提供できる再利用可能なプロンプトライブラリを作成できます。 - -最終的に、テンプレートの真価は、特定のアプリケーションドメイン向けに最適化された_プロンプトライブラリ_を作成・公開できる点にあります。これにより、対象ユーザーにより関連性が高く正確な応答を提供できます。[Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst)リポジトリは、教育分野向けにレッスンプラン作成やカリキュラム設計、学生指導などの主要目的に重点を置いたプロンプトライブラリをキュレーションした優れた例です。 - -## Supporting Content - -プロンプト構築を「指示(タスク)」と「対象(主なコンテンツ)」で考えると、_二次的コンテンツ_は**出力に何らかの影響を与えるための追加コンテキスト**のようなものです。これは、チューニングパラメータ、フォーマット指示、トピック分類などで、モデルが望ましいユーザーの目的や期待に合わせて応答を_調整_するのに役立ちます。 - -例えば、カリキュラム内のすべてのコースに関する豊富なメタデータ(名前、説明、レベル、タグ、講師など)がある場合: - -- 「2023年秋学期のコースカタログを要約する」という指示を定義できる -- 主なコンテンツとして望ましい出力の例をいくつか提供できる -- 二次的コンテンツとして関心の高い上位5つの「タグ」を特定できる - -こうして、モデルは例に示された形式で要約を提供できますが、複数のタグがある場合は二次的コンテンツで特定した5つのタグを優先して扱うことができます。 - ---- - - - -## Prompting Best Practices - -プロンプトの_構築方法_がわかったので、次はベストプラクティスを反映するように_設計_することを考えましょう。これは大きく分けて、正しい_マインドセット_を持つことと、適切な_技術_を適用することの2つに分けられます。 - -### Prompt Engineering Mindset - -プロンプトエンジニアリングは試行錯誤のプロセスです。以下の3つの大まかな指針を心に留めておきましょう。 - -1. **ドメイン理解が重要。** 応答の正確さや関連性は、そのアプリケーションやユーザーが属する_ドメイン_に依存します。直感やドメイン知識を活かして**技術をカスタマイズ**しましょう。例えば、システムプロンプトに_ドメイン固有の人格_を定義したり、ユーザープロンプトに_ドメイン固有のテンプレート_を使ったりします。ドメイン固有の文脈を反映した二次的コンテンツを提供したり、_ドメイン固有のキューや例_を使ってモデルを馴染みのあるパターンに誘導したりします。 - -2. **モデル理解が重要。** モデルは確率的であることはわかっていますが、トレーニングデータセット(事前学習知識)、提供される機能(APIやSDK経由など)、最適化されているコンテンツの種類(コード、画像、テキストなど)によっても異なります。使っているモデルの強みと限界を理解し、その知識を活かして_タスクの優先順位付け_や_モデルの能力に最適化されたカスタムテンプレート_を作成しましょう。 - -3. **反復と検証が重要。** モデルもプロンプトエンジニアリングの技術も急速に進化しています。ドメイン専門家として、あなたの特定のアプリケーションに固有の文脈や基準があるかもしれません。プロンプトエンジニアリングのツールや技術を使って「プロンプト構築のスタート地点」を作り、直感やドメイン知識で反復・検証しましょう。洞察を記録し、他者がより速く反復できるような**知識ベース**(例:プロンプトライブラリ)を作成しましょう。 - -## Best Practices - -ここでは、[OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst)や[Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst)の実務者が推奨する一般的なベストプラクティスを見てみましょう。 - -| 何をするか | なぜ | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 最新モデルを評価する | 新しいモデル世代は機能や品質が向上している可能性がありますが、コストが高くなることもあります。影響を評価し、移行の判断をしましょう。 | -| 指示とコンテキストを分ける | モデルやプロバイダーが指示、主コンテンツ、二次コンテンツを区別する_区切り文字_を定義しているか確認しましょう。これによりモデルがトークンに対してより正確に重み付けできます。 | -| 具体的かつ明確にする | 望むコンテキスト、結果、長さ、フォーマット、スタイルなどの詳細を伝えましょう。これにより応答の質と一貫性が向上します。レシピを再利用可能なテンプレートにまとめましょう。 | -| 説明的にし、例を使う | モデルは「見せて説明する」アプローチに反応しやすいことがあります。最初は`zero-shot`(例なしの指示)で試し、次に`few-shot`(例をいくつか示す)で精緻化しましょう。類推も活用しましょう。 | -| キューを使って応答を促す | 先頭の言葉やフレーズを与えて、望む結果に向けてモデルを誘導しましょう。 | -| 繰り返し強調する | 時にはモデルに繰り返し指示を与える必要があります。主コンテンツの前後に指示を置いたり、指示とキューを組み合わせたりしましょう。反復と検証で効果的な方法を見つけましょう。 | -| 順序が重要 | モデルに情報を提示する順序は出力に影響を与えることがあります。特に学習例では直近の情報が優先されやすいです。いくつかのパターンを試して最適なものを見つけましょう。 | -| モデルに「逃げ道」を与える | モデルが何らかの理由でタスクを完了できない場合に備え、_フォールバック_の応答を用意しましょう。これにより誤った情報や作り話の生成を減らせます。 | -| | | - -どのベストプラクティスも、モデルやタスク、ドメインによって効果は異なります。これらを出発点として使い、最適な方法を見つけるために反復しましょう。新しいモデルやツールが登場するたびにプロンプトエンジニアリングのプロセスを見直し、スケーラビリティと応答品質に注力してください。 - - - -## Assignment - -おめでとうございます!レッスンの最後まで来ました!ここで学んだコンセプトや技術を実際の例で試してみましょう! - -課題では、インタラクティブに取り組めるJupyter Notebookを使います。自分でMarkdownやコードセルを追加して、アイデアや技術を自由に探求することも可能です。 - -### 始めるには、リポジトリをフォークしてから - -- (推奨)GitHub Codespacesを起動 -- (代替)リポジトリをローカルにクローンし、Docker Desktopで使用 -- (代替)お好みのNotebook実行環境でNotebookを開く - -### 次に、環境変数を設定 - -- リポジトリのルートにある`.env.copy`を`.env`にコピーし、`AZURE_OPENAI_API_KEY`、`AZURE_OPENAI_ENDPOINT`、`AZURE_OPENAI_DEPLOYMENT`の値を入力します。[Learning Sandboxセクション](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals)に戻って設定方法を確認してください。 - -### 次に、Jupyter Notebookを開く - -- 実行カーネルを選択します。オプション1または2を使う場合は、開発コンテナに用意されたデフォルトのPython 3.10.xカーネルを選択してください。 - -これで演習を実行する準備が整いました。ここには「正解・不正解」はありません。試行錯誤しながら、特定のモデルやアプリケーションドメインに合う直感を養うことが目的です。 - -_このため、このレッスンにはコードソリューションのセグメントはありません。代わりにNotebook内に「My Solution:」というタイトルのMarkdownセルがあり、参考例の出力を示しています。_ - - - -## Knowledge check - -以下のうち、妥当なベストプラクティスに沿った良いプロンプトはどれでしょう? - -1. 赤い車の画像を見せて -2. 赤い車で、ボルボのXC90という車種が崖のそばに停まっていて、夕日が沈む様子の画像を見せて -3. 赤い車で、ボルボのXC90という車種の画像を見せて - -答え:2が最良のプロンプトです。「何を」示すか詳細に述べており、特定の車種だけでなく全体の状況も説明しています。3は次に良く、多くの説明が含まれています。 - -## 🚀 Challenge - -「cue」技術を使って、次のプロンプトを試してみましょう:「Show me an image of red car of make Volvo and 」で文を完成させてください。どんな応答が返ってきますか?どう改善しますか? - -## Great Work! Continue Your Learning - -プロンプトエンジニアリングのさまざまな概念についてもっと学びたいですか?[継続学習ページ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst)でこのトピックに関する他の優れたリソースを見つけましょう。 - -次のレッスン5では、[高度なプロンプト技術](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)を学びます! - -**免責事項**: -本書類はAI翻訳サービス「[Co-op Translator](https://github.com/Azure/co-op-translator)」を使用して翻訳されました。正確性を期しておりますが、自動翻訳には誤りや不正確な部分が含まれる可能性があります。原文の言語による文書が正式な情報源とみなされるべきです。重要な情報については、専門の人間による翻訳を推奨します。本翻訳の利用により生じた誤解や誤訳について、当方は一切の責任を負いかねます。 \ No newline at end of file + + + + + + + diff --git a/translations/ja/09-building-image-applications/README.md b/translations/ja/09-building-image-applications/README.md index 77df0b923..43ce4e941 100644 --- a/translations/ja/09-building-image-applications/README.md +++ b/translations/ja/09-building-image-applications/README.md @@ -1,475 +1,12 @@ - -# 画像生成アプリケーションの構築 - -[![Building Image Generation Applications](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.ja.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLMはテキスト生成だけではありません。テキストの説明から画像を生成することも可能です。画像をモダリティとして扱うことは、MedTech、建築、観光、ゲーム開発など多くの分野で非常に役立ちます。この章では、最も人気のある画像生成モデルであるDALL-EとMidjourneyについて見ていきます。 - -## はじめに - -このレッスンでは以下を扱います: - -- 画像生成とは何か、そしてその有用性。 -- DALL-EとMidjourneyとは何か、それらの仕組み。 -- 画像生成アプリケーションの作り方。 - -## 学習目標 - -このレッスンを終えた後、あなたは以下ができるようになります: - -- 画像生成アプリケーションを構築する。 -- メタプロンプトを使ってアプリケーションの境界を定義する。 -- DALL-EとMidjourneyを使いこなす。 - -## なぜ画像生成アプリケーションを作るのか? - -画像生成アプリケーションは、生成AIの能力を探求するのに最適な方法です。例えば以下の用途があります: - -- **画像編集と合成**。画像編集や画像合成など、さまざまな用途に画像を生成できます。 - -- **多様な業界への応用**。MedTech、観光、ゲーム開発など、多くの業界で画像生成が活用されています。 - -## シナリオ:Edu4All - -このレッスンの一環として、スタートアップのEdu4Allと引き続き取り組みます。学生たちは評価のために画像を作成します。どんな画像にするかは学生次第ですが、自分たちの童話のイラストを描いたり、物語の新しいキャラクターを作ったり、アイデアやコンセプトの視覚化に役立てたりできます。 - -例えば、Edu4Allの学生が授業で記念碑について学んでいる場合、以下のような画像を生成できます: - -![Edu4All startup, class on monuments, Eiffel Tower](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.ja.png) - -プロンプト例: - -> 「早朝の陽光の中、エッフェル塔の隣にいる犬」 - -## DALL-EとMidjourneyとは? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst)と[Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst)は、最も人気のある画像生成モデルの2つで、プロンプトを使って画像を生成できます。 - -### DALL-E - -まずDALL-Eから始めましょう。DALL-Eはテキストの説明から画像を生成する生成AIモデルです。 - -> [DALL-EはCLIPとdiffused attentionという2つのモデルの組み合わせです](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst)。 - -- **CLIP**は、画像とテキストからデータの数値表現(埋め込み)を生成するモデルです。 - -- **Diffused attention**は、その埋め込みから画像を生成するモデルです。DALL-Eは画像とテキストのデータセットで訓練されており、テキストの説明から画像を生成できます。例えば、帽子をかぶった猫やモヒカンの犬の画像を生成できます。 - -### Midjourney - -MidjourneyもDALL-Eと同様に、テキストプロンプトから画像を生成します。Midjourneyは「帽子をかぶった猫」や「モヒカンの犬」といったプロンプトで画像を生成できます。 - -![Image generated by Midjourney, mechanical pigeon](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_画像提供:Wikipedia、Midjourneyによる生成画像_ - -## DALL-EとMidjourneyの仕組み - -まず[DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst)について。DALL-Eはトランスフォーマーアーキテクチャに基づく生成AIモデルで、_自己回帰型トランスフォーマー_を採用しています。 - -_自己回帰型トランスフォーマー_は、テキストの説明から画像を生成する方法を定義しており、1ピクセルずつ生成し、生成したピクセルを使って次のピクセルを生成します。ニューラルネットワークの複数の層を通過しながら画像が完成します。 - -このプロセスにより、DALL-Eは生成する画像の属性やオブジェクト、特徴などを制御できます。ただし、DALL-E 2や3では生成画像の制御がさらに強化されています。 - -## 最初の画像生成アプリケーションを作る - -画像生成アプリケーションを作るには何が必要でしょうか?以下のライブラリが必要です: - -- **python-dotenv**:秘密情報をコードから分離して_.env_ファイルに保存するために推奨されます。 -- **openai**:OpenAI APIとやり取りするためのライブラリです。 -- **pillow**:Pythonで画像を扱うためのライブラリです。 -- **requests**:HTTPリクエストを送るのに役立ちます。 - -1. _.env_ファイルを作成し、以下の内容を記述します: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Azureポータルの「Keys and Endpoint」セクションでこの情報を確認してください。 - -1. 上記のライブラリを_requirements.txt_ファイルにまとめます: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. 次に、仮想環境を作成し、ライブラリをインストールします: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Windowsの場合は以下のコマンドで仮想環境を作成・有効化します: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. _app.py_というファイルに以下のコードを追加します: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -このコードを説明します: - -- まず、必要なライブラリをインポートします。OpenAIライブラリ、dotenvライブラリ、requestsライブラリ、Pillowライブラリを含みます。 - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- 次に、_.env_ファイルから環境変数を読み込みます。 - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- その後、OpenAI APIのエンドポイント、キー、バージョン、タイプを設定します。 - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- 次に、画像を生成します: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - 上記のコードは生成された画像のURLを含むJSONオブジェクトを返します。このURLを使って画像をダウンロードし、ファイルに保存できます。 - -- 最後に、画像を開いて標準の画像ビューアで表示します: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### 画像生成の詳細 - -画像を生成するコードを詳しく見てみましょう: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** は画像生成に使うテキストプロンプトです。ここでは「霧のかかった水仙の咲く草原で、ロリポップを持った馬の上のウサギ」を使っています。 -- **size** は生成する画像のサイズです。ここでは1024x1024ピクセルの画像を生成します。 -- **n** は生成する画像の枚数です。ここでは2枚生成します。 -- **temperature** は生成AIモデルの出力のランダム性を制御するパラメーターです。0から1の値で、0は決定的な出力、1はランダムな出力を意味します。デフォルトは0.7です。 - -次のセクションで、画像に関してさらにできることを紹介します。 - -## 画像生成の追加機能 - -これまでPythonの数行で画像を生成できることを見てきましたが、画像に関してはさらに多くのことが可能です。 - -以下のこともできます: - -- **編集を行う**。既存の画像にマスクとプロンプトを与えることで、画像を変更できます。例えば、画像の一部に何かを追加できます。先ほどのウサギの画像に帽子をかぶせることができます。方法は、画像、変更部分を示すマスク、そして何をするかを示すテキストプロンプトを提供することです。 - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - 元の画像はウサギだけですが、最終的な画像にはウサギに帽子がかぶせられています。 - -- **バリエーションを作成する**。既存の画像を使ってバリエーションを作成できます。バリエーションを作るには、画像とテキストプロンプトを提供し、以下のようにコードを書きます: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > 注意:これはOpenAIでのみサポートされています。 - -## Temperature(温度)について - -Temperatureは生成AIモデルの出力のランダム性を制御するパラメーターです。0から1の値で、0は決定的な出力、1はランダムな出力を意味します。デフォルトは0.7です。 - -Temperatureの動作例として、以下のプロンプトを2回実行してみましょう: - -> プロンプト:「霧のかかった水仙の咲く草原で、ロリポップを持った馬の上のウサギ」 - -![Bunny on a horse holding a lollipop, version 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.ja.png) - -同じプロンプトをもう一度実行して、同じ画像が生成されないことを確認します: - -![Generated image of bunny on horse](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.ja.png) - -ご覧の通り、画像は似ていますが同じではありません。次にtemperatureの値を0.1に変えてみましょう: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Temperatureの変更 - -より決定的な応答にしたい場合、先ほど生成した2枚の画像を見て、1枚目にはウサギがいて2枚目には馬がいるなど、画像が大きく異なることがわかります。 - -そこで、temperatureを0に設定してみましょう: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -このコードを実行すると、以下の2枚の画像が得られます: - -- ![Temperature 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.ja.png) -- ![Temperature 0 , v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.ja.png) - -ここでは画像同士の類似度が明らかに高くなっているのがわかります。 - -## メタプロンプトでアプリケーションの境界を定義する方法 - -デモではすでにクライアント向けに画像を生成できますが、アプリケーションの境界を設定する必要があります。 - -例えば、不適切な画像や子どもにふさわしくない画像を生成したくありません。 - -これを実現するのが_メタプロンプト_です。メタプロンプトは生成AIモデルの出力を制御するためのテキストプロンプトです。例えば、生成される画像が安全であることや子どもに適していることを保証するために使えます。 - -### 仕組みは? - -メタプロンプトは生成AIモデルの出力を制御するためのテキストプロンプトで、通常のテキストプロンプトの前に配置されます。モデルの出力を制御し、アプリケーションに組み込まれて使われます。プロンプト入力とメタプロンプト入力を1つのテキストプロンプトにまとめる形です。 - -メタプロンプトの例は以下の通りです: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -では、デモでメタプロンプトをどのように使うか見てみましょう。 - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -上記のプロンプトから、生成されるすべての画像がメタプロンプトを考慮していることがわかります。 - -## 課題 - 学生に画像生成を体験させよう - -このレッスンの冒頭で紹介したEdu4Allに戻ります。今度は学生たちが評価のために画像を生成できるようにします。 - -学生たちは記念碑を含む画像を作成します。どの記念碑にするかは学生の自由です。学生たちは創造力を発揮して、これらの記念碑をさまざまな文脈に置くことが求められます。 - -## 解答例 - -以下は一例です: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## よくできました!学習を続けましょう - -このレッスンを終えたら、[Generative AI Learning collection](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst)で生成AIの知識をさらに深めましょう! - -次のレッスン10では、[ローコードでAIアプリケーションを構築する方法](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)を学びます。 - -**免責事項**: -本書類はAI翻訳サービス「[Co-op Translator](https://github.com/Azure/co-op-translator)」を使用して翻訳されました。正確性の向上に努めておりますが、自動翻訳には誤りや不正確な部分が含まれる可能性があります。原文の言語による文書が正式な情報源とみなされるべきです。重要な情報については、専門の人間による翻訳を推奨します。本翻訳の利用により生じたいかなる誤解や誤訳についても、当方は責任を負いかねます。 \ No newline at end of file + + + + diff --git a/translations/ja/12-designing-ux-for-ai-applications/README.md b/translations/ja/12-designing-ux-for-ai-applications/README.md index 4f286f147..9c6976763 100644 --- a/translations/ja/12-designing-ux-for-ai-applications/README.md +++ b/translations/ja/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# AIアプリケーションのUXデザイン - -[![AIアプリケーションのUXデザイン](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.ja.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(上の画像をクリックすると、このレッスンのビデオが視聴できます)_ - -ユーザーエクスペリエンスはアプリ開発において非常に重要な要素です。ユーザーが効率的にタスクを実行できるようにアプリを使える必要があります。効率的であることは大切ですが、それだけでなく、誰もが使えるようにアプリを設計し、_アクセシブル_にすることも必要です。この章ではその点に焦点を当て、ユーザーが使いたくなるアプリを設計できるようにします。 - -## はじめに - -ユーザーエクスペリエンスとは、ユーザーが特定の製品やサービス(システム、ツール、デザインなど)とどのように関わり、利用するかを指します。AIアプリケーションを開発する際、開発者はユーザーエクスペリエンスが効果的であるだけでなく、倫理的であることにも注力します。このレッスンでは、ユーザーのニーズに応える人工知能(AI)アプリケーションの構築方法を学びます。 - -このレッスンで扱う内容は以下の通りです: - -- ユーザーエクスペリエンスの紹介とユーザーニーズの理解 -- 信頼性と透明性を考慮したAIアプリケーションの設計 -- 協働とフィードバックを促進するAIアプリケーションの設計 - -## 学習目標 - -このレッスンを終えた後、あなたは以下のことができるようになります: - -- ユーザーのニーズに応えるAIアプリケーションの構築方法を理解する -- 信頼と協働を促進するAIアプリケーションを設計する - -### 前提条件 - -時間を取って、[ユーザーエクスペリエンスとデザイン思考について](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst)さらに学んでみてください。 - -## ユーザーエクスペリエンスの紹介とユーザーニーズの理解 - -私たちの架空の教育系スタートアップには、主に教師と学生という2つのユーザー層があります。それぞれのユーザーには独自のニーズがあります。ユーザー中心設計は、製品が対象ユーザーにとって関連性があり、有益であることを優先します。 - -アプリケーションは**役立ち、信頼でき、アクセシブルで快適**であるべきで、良いユーザーエクスペリエンスを提供します。 - -### 使いやすさ(Usability) - -役立つとは、アプリケーションが意図された目的に合った機能を持つことを意味します。例えば、採点プロセスの自動化や復習用のフラッシュカード生成などです。採点プロセスを自動化するアプリは、事前に定められた基準に基づいて学生の課題に正確かつ効率的に点数を付けることが求められます。同様に、復習用フラッシュカードを生成するアプリは、データに基づいて関連性が高く多様な問題を作成できる必要があります。 - -### 信頼性(Reliability) - -信頼できるとは、アプリケーションが一貫してエラーなくタスクを実行できることを意味します。ただし、AIも人間と同様に完璧ではなく、エラーが起こる可能性があります。アプリケーションはエラーや予期しない状況に遭遇し、人間の介入や修正が必要になることもあります。エラーをどのように扱うか?このレッスンの最後のセクションで、AIシステムやアプリケーションが協働とフィードバックのためにどのように設計されているかを説明します。 - -### アクセシビリティ(Accessibility) - -アクセシブルであるとは、障害のある方を含むさまざまな能力を持つユーザーにも使いやすいユーザーエクスペリエンスを提供し、誰も取り残さないことを意味します。アクセシビリティのガイドラインや原則に従うことで、AIソリューションはより包括的で使いやすく、すべてのユーザーにとって有益になります。 - -### 快適さ(Pleasant) - -快適であるとは、アプリケーションの使用が楽しいことを意味します。魅力的なユーザーエクスペリエンスはユーザーに良い印象を与え、アプリに戻ってきてもらいやすくなり、ビジネスの収益向上にもつながります。 - -![AIにおけるUXの考慮点を示す画像](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.ja.png) - -すべての課題がAIで解決できるわけではありません。AIは手作業の自動化やユーザー体験のパーソナライズなど、ユーザーエクスペリエンスを補完する役割を果たします。 - -## 信頼性と透明性を考慮したAIアプリケーションの設計 - -AIアプリケーションを設計する際、信頼の構築は非常に重要です。信頼は、ユーザーがアプリケーションが確実に仕事をこなし、結果を一貫して提供し、その結果がユーザーのニーズに合っていると確信できることを意味します。この分野でのリスクは、不信感と過信です。不信感はユーザーがAIシステムをほとんどまたは全く信頼しない場合に起こり、アプリケーションの拒否につながります。過信はユーザーがAIシステムの能力を過大評価しすぎる場合に起こり、AIシステムを過度に信頼してしまいます。例えば、自動採点システムに過信すると、教師が一部の答案を確認しなくなり、採点システムの誤りに気づかず不公平または不正確な成績がつく可能性があります。フィードバックや改善の機会も失われるかもしれません。 - -信頼を設計の中心に据えるための2つの方法は、説明可能性とコントロールです。 - -### 説明可能性(Explainability) - -AIが将来の世代に知識を伝えるなどの意思決定を支援する場合、教師や保護者がAIの意思決定の仕組みを理解することが重要です。これが説明可能性です。AIアプリケーションがどのように意思決定を行うかを理解することを指します。説明可能性を考慮した設計には、AIアプリケーションができることの具体例を示すことが含まれます。例えば、「AI教師を始めよう」ではなく、「AIを使ってノートを要約し、復習を簡単にしよう」といった表現が使えます。 - -![AIアプリケーションの説明可能性を明確に示したアプリのランディングページ](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.ja.png) - -もう一つの例は、AIがユーザーや個人データをどのように使うかです。例えば、学生というペルソナのユーザーは制限があるかもしれません。AIは質問の答えを直接教えられない場合もありますが、問題解決の考え方を導く手助けはできます。 - -![ペルソナに基づいて質問に答えるAI](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.ja.png) - -説明可能性のもう一つの重要なポイントは、説明を簡潔にすることです。学生や教師はAIの専門家ではないため、アプリケーションができること・できないことの説明は分かりやすく簡単であるべきです。 - -![AIの機能について簡潔に説明した例](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.ja.png) - -### コントロール(Control) - -生成AIはAIとユーザーの協働を生み出します。例えば、ユーザーが異なる結果を得るためにプロンプトを修正できるようにします。さらに、出力が生成された後も、ユーザーが結果を修正できることでコントロール感を持てます。例えば、Bingを使うと、フォーマット、トーン、長さに基づいてプロンプトを調整できます。さらに、出力に変更を加えたり修正したりすることも可能です。 - -![プロンプトや出力を修正できるBingの検索結果](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.ja.png) - -Bingのもう一つの機能は、ユーザーがAIが使用するデータの収集に対してオプトイン・オプトアウトできることです。学校向けアプリケーションでは、学生が自分のノートや教師の資料を復習用の教材として使いたい場合があります。 - -![プロンプトや出力を修正できるBingの検索結果](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.ja.png) - -> AIアプリケーションを設計する際は、ユーザーがAIの能力に過信しないよう意図的に設計することが重要です。その一つの方法は、プロンプトと結果の間に「摩擦」を作り、これはAIであり人間ではないことをユーザーに思い出させることです。 - -## 協働とフィードバックを促進するAIアプリケーションの設計 - -前述の通り、生成AIはユーザーとAIの協働を生み出します。多くの場合、ユーザーがプロンプトを入力し、AIが出力を生成します。もし出力が間違っていたらどうしますか?エラーが発生した場合、アプリケーションはどのように対応しますか?AIはユーザーのせいにするでしょうか、それともエラーを説明する時間を取るでしょうか? - -AIアプリケーションはフィードバックを受け取り、返す仕組みを組み込むべきです。これによりAIシステムの改善が促進されるだけでなく、ユーザーとの信頼関係も築かれます。フィードバックループを設計に含める例として、出力に対する簡単な「いいね」や「よくないね」ボタンがあります。 - -もう一つの方法は、システムの能力と限界を明確に伝えることです。ユーザーがAIの能力を超えた要求をした場合の対応方法も用意すべきです。以下の例をご覧ください。 - -![フィードバックを与え、エラーを処理する様子](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.ja.png) - -システムエラーはよくあることで、ユーザーがAIの範囲外の情報を求めたり、アプリケーションが生成できる質問や科目の数に制限があったりする場合があります。例えば、歴史と数学のデータで訓練されたAIアプリケーションは地理に関する質問に対応できないかもしれません。これを緩和するために、AIシステムは「申し訳ありませんが、当製品は以下の科目のデータで訓練されています……ご質問にはお答えできません」といった応答を返すことができます。 - -AIアプリケーションは完璧ではないため、ミスをすることがあります。アプリケーションを設計する際は、ユーザーからのフィードバックやエラー処理の余地を設け、シンプルで分かりやすい方法で対応できるようにしましょう。 - -## 課題 - -これまでに作成したAIアプリを使って、以下のステップを実装することを検討してください: - -- **快適さ:** アプリをより快適にするにはどうすればよいか考えてみましょう。説明を随所に加えていますか?ユーザーが探索したくなるよう促していますか?エラーメッセージの表現はどうですか? - -- **使いやすさ:** Webアプリを作る場合、マウスとキーボードの両方で操作できるようにしましょう。 - -- **信頼と透明性:** AIやその出力を完全に信頼しすぎないようにし、出力を検証するために人間を介在させる方法を考え、実装してください。また、信頼と透明性を実現する他の方法も検討しましょう。 - -- **コントロール:** ユーザーがアプリに提供するデータをコントロールできるようにしましょう。AIアプリケーションでデータ収集のオプトイン・オプトアウトができる仕組みを実装してください。 - -## 学習を続けましょう! - -このレッスンを終えたら、[Generative AI Learning collection](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst)でさらに生成AIの知識を深めてください! - -次のレッスン13では、[AIアプリケーションのセキュリティ](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)について学びます! - -**免責事項**: -本書類はAI翻訳サービス「[Co-op Translator](https://github.com/Azure/co-op-translator)」を使用して翻訳されました。正確性を期しておりますが、自動翻訳には誤りや不正確な部分が含まれる可能性があります。原文の言語による文書が正式な情報源とみなされるべきです。重要な情報については、専門の人間による翻訳を推奨します。本翻訳の利用により生じた誤解や誤訳について、当方は一切の責任を負いかねます。 \ No newline at end of file + + + diff --git a/translations/ja/README.md b/translations/ja/README.md index 74d03a34f..7f722aed9 100644 --- a/translations/ja/README.md +++ b/translations/ja/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.ja.png) - -### ジェネレーティブAIアプリケーション構築に必要なすべてを学べる21のレッスン - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 多言語対応 - -#### GitHub Actionによるサポート(自動化&常に最新) - -[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](./README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md) - -# Generative AI for Beginners (Version 3) - コース - -Microsoft Cloud Advocatesによる21レッスンの包括的なコースで、ジェネレーティブAIアプリケーション構築の基礎を学びましょう。 - -## 🌱 はじめに - -このコースは21のレッスンで構成されています。各レッスンは独立したトピックを扱っているので、好きなところから始めてください! - -レッスンは「Learn」レッスン(ジェネレーティブAIの概念を解説)と、「Build」レッスン(概念の説明と可能な限り**Python**と**TypeScript**のコード例を含む)に分かれています。 - -.NET開発者の方は[Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)もご覧ください! - -各レッスンには追加の学習ツールを紹介する「Keep Learning」セクションもあります。 - -## 必要なもの -### このコースのコードを実行するには、以下のいずれかを使用できます: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **対象レッスン:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **対象レッスン:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **対象レッスン:** "oai-assignment" - -- PythonまたはTypeScriptの基本知識があると便利です - \*完全な初心者の方はこれらの[Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst)と[TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst)コースをチェックしてください -- このリポジトリを自分のGitHubアカウントに[フォーク](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst)するためのGitHubアカウント - -開発環境のセットアップをサポートする**[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)**レッスンも用意しています。 - -後で見つけやすくするために、このリポジトリに[スター(🌟)を付ける](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst)のを忘れないでください。 - -## 🧠 デプロイの準備はできましたか? - -より高度なコードサンプルをお探しなら、**Python**と**TypeScript**両方の[ジェネレーティブAIコードサンプル集](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst)をご覧ください。 - -## 🗣️ 他の学習者と交流、サポートを受ける - -このコースを受講している他の学習者と交流し、サポートを受けるには[公式Azure AI Foundry Discordサーバー](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst)に参加しましょう。 - -質問や製品フィードバックは[Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum)(GitHub上)でどうぞ。 - -## 🚀 スタートアップを立ち上げる? - -[Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst)に登録すると、**無料のOpenAIクレジット**や、Azure OpenAIサービスを通じてOpenAIモデルにアクセスするための最大15万ドル分のAzureクレジットが受け取れます。 - -## 🙏 協力したいですか? - -提案やスペルミス、コードの誤りを見つけたら、[Issueを投稿](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst)するか、[プルリクエストを作成](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst)してください。 - -## 📂 各レッスンには以下が含まれます: - -- トピックの短いビデオ紹介 -- READMEに記載されたテキストレッスン -- Azure OpenAIおよびOpenAI APIをサポートするPythonとTypeScriptのコードサンプル -- 学習を続けるための追加リソースへのリンク - -## 🗃️ レッスン一覧 - -| # | **レッスンリンク** | **説明** | **ビデオ** | **追加学習** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------ | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** 開発環境のセットアップ方法 | ビデオは近日公開予定 | [詳しく学ぶ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introduction to Generative AI and LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** ジェネレーティブAIとは何か、大規模言語モデル(LLM)の仕組みを理解する | [ビデオ](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [詳しく学ぶ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Exploring and comparing different LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** 用途に合ったモデルの選び方 | [ビデオ](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [詳しく学ぶ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Using Generative AI Responsibly](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** ジェネレーティブAIアプリケーションを責任を持って構築する方法 | [ビデオ](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [詳しく学ぶ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Understanding Prompt Engineering Fundamentals](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** 実践的なプロンプトエンジニアリングの基本 | [ビデオ](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [詳しく学ぶ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Creating Advanced Prompts](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** プロンプトの結果を向上させるための高度なテクニックの応用 | [ビデオ](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [詳しく学ぶ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [テキスト生成アプリケーションの構築](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **構築:** Azure OpenAI / OpenAI API を使ったテキスト生成アプリ | [ビデオ](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [詳細はこちら](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [チャットアプリケーションの構築](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **構築:** 効率的なチャットアプリの構築と統合の手法 | [ビデオ](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [詳細はこちら](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [検索アプリとベクトルデータベースの構築](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **構築:** Embeddings を使ったデータ検索アプリ | [ビデオ](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [詳細はこちら](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [画像生成アプリケーションの構築](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **構築:** 画像生成アプリケーション | [ビデオ](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [詳細はこちら](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [ローコードAIアプリケーションの構築](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **構築:** ローコードツールを使った生成AIアプリ | [ビデオ](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [詳細はこちら](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Function Calling を使った外部アプリケーションの統合](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **構築:** function calling とは何か、アプリケーションでの活用例 | [ビデオ](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [詳細はこちら](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [AIアプリケーションのUX設計](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **学習:** 生成AIアプリ開発におけるUXデザインの原則の適用方法 | [ビデオ](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [詳細はこちら](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [生成AIアプリケーションのセキュリティ](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **学習:** AIシステムに対する脅威とリスク、そしてそれらを守る方法 | [ビデオ](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [詳細はこちら](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [生成AIアプリケーションのライフサイクル](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **学習:** LLMのライフサイクル管理とLLMOpsのためのツールと指標 | [ビデオ](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [詳細はこちら](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) とベクトルデータベース](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **構築:** RAGフレームワークを使い、ベクトルデータベースからembeddingを取得するアプリ | [ビデオ](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [詳細はこちら](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [オープンソースモデルとHugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **構築:** Hugging Faceで利用可能なオープンソースモデルを使ったアプリ | [ビデオ](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [詳細はこちら](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AIエージェント](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **構築:** AIエージェントフレームワークを使ったアプリ | [ビデオ](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [詳細はこちら](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [LLMのファインチューニング](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **学習:** LLMのファインチューニングとは何か、なぜ必要か、どう行うか | [ビデオ](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [詳細はこちら](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [SLMを使った構築](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **学習:** Small Language Modelsを使うメリット | ビデオは近日公開予定 | [詳細はこちら](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Mistralモデルを使った構築](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **学習:** Mistralファミリーモデルの特徴と違い | ビデオは近日公開予定 | [詳細はこちら](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Metaモデルを使った構築](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **学習:** Metaファミリーモデルの特徴と違い | ビデオは近日公開予定 | [詳細はこちら](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 特別な感謝 - -すべてのGitHub Actionsとワークフローを作成してくださった[**John Aziz**](https://www.linkedin.com/in/john0isaac/)に特別な感謝を。 - -また、各レッスンの学習者体験とコード体験を向上させるために重要な貢献をしてくださった[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/)にも感謝します。 - -## 🎒 その他のコース - -私たちのチームは他にもコースを提供しています!ぜひご覧ください: - -- [**NEW** Model Context Protocol for Beginners](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI Agents for Beginners](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Generative AI for Beginners using .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Generative AI for Beginners using JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML for Beginners](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Data Science for Beginners](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI for Beginners](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Cybersecurity for Beginners](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Web Dev for Beginners](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT for Beginners](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR Development for Beginners](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Mastering GitHub Copilot for AI Paired Programming](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Mastering GitHub Copilot for C#/.NET Developers](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Choose Your Own Copilot Adventure](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**免責事項**: -本書類はAI翻訳サービス「[Co-op Translator](https://github.com/Azure/co-op-translator)」を使用して翻訳されました。正確性を期しておりますが、自動翻訳には誤りや不正確な部分が含まれる可能性があります。原文の言語によるオリジナル文書が正式な情報源とみなされます。重要な情報については、専門の人間による翻訳を推奨します。本翻訳の利用により生じた誤解や誤訳について、当方は一切の責任を負いかねます。 \ No newline at end of file + + + + diff --git a/translations/ko/00-course-setup/01-setup-cloud.md b/translations/ko/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..baeec47c0 --- /dev/null +++ b/translations/ko/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/ko/00-course-setup/02-setup-local.md b/translations/ko/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..7315f6a4c --- /dev/null +++ b/translations/ko/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/ko/00-course-setup/03-providers.md b/translations/ko/00-course-setup/03-providers.md new file mode 100644 index 000000000..9ffc48c62 --- /dev/null +++ b/translations/ko/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/ko/00-course-setup/README.md b/translations/ko/00-course-setup/README.md index cb6df5178..77888fa3a 100644 --- a/translations/ko/00-course-setup/README.md +++ b/translations/ko/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# 이 과정 시작하기 - -이 과정을 시작하게 되어 매우 기쁩니다. 생성 AI로 무엇을 만들고 영감을 받을지 기대해 주세요! - -성공적인 학습을 위해 이 페이지에서는 설정 단계, 기술 요구 사항, 그리고 필요할 때 도움을 받을 수 있는 곳을 안내합니다. - -## 설정 단계 - -이 과정을 시작하려면 다음 단계를 완료해야 합니다. - -### 1. 이 저장소를 포크하기 - -이 저장소 전체를 [자신의 GitHub 계정으로 포크](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst)하여 코드를 변경하고 과제를 완료할 수 있도록 하세요. 또한 이 저장소와 관련 저장소를 더 쉽게 찾기 위해 [별표(🌟)를 추가](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst)할 수도 있습니다. - -### 2. Codespace 생성하기 - -코드를 실행할 때 의존성 문제를 피하기 위해, 이 과정을 [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst)에서 실행하는 것을 권장합니다. - -포크한 저장소에서 `Code` 옵션을 선택한 후 **Codespaces** 옵션을 선택하면 생성할 수 있습니다. - -![Codespace 생성 버튼을 보여주는 대화상자](../../../00-course-setup/images/who-will-pay.webp) - -### 3. API 키 저장하기 - -어떤 애플리케이션을 만들 때든 API 키를 안전하게 보관하는 것이 중요합니다. API 키를 코드에 직접 저장하지 않는 것을 권장합니다. 공개 저장소에 키를 커밋하면 보안 문제가 발생할 수 있고, 악의적인 사용자가 사용하면 원치 않는 비용이 발생할 수 있습니다. -다음은 Python용 `.env` 파일을 만들고 `GITHUB_TOKEN`을 추가하는 단계별 가이드입니다: - -1. **프로젝트 디렉터리로 이동하기**: 터미널이나 명령 프롬프트를 열고 `.env` 파일을 만들고자 하는 프로젝트 루트 디렉터리로 이동하세요. - - ```bash - cd path/to/your/project - ``` - -2. **`.env` 파일 만들기**: 선호하는 텍스트 편집기로 `.env`라는 새 파일을 만드세요. 명령줄을 사용할 경우 Unix 기반 시스템에서는 `touch`, Windows에서는 `echo`를 사용할 수 있습니다: - - Unix 기반 시스템: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **`.env` 파일 편집하기**: 텍스트 편집기(예: VS Code, Notepad++ 등)로 `.env` 파일을 열고, `your_github_token_here`를 실제 GitHub 토큰으로 바꿔 아래 내용을 추가하세요: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **파일 저장하기**: 변경 사항을 저장하고 편집기를 닫으세요. - -5. **`python-dotenv` 설치하기**: 아직 설치하지 않았다면, `.env` 파일에서 환경 변수를 불러오기 위해 `python-dotenv` 패키지를 설치해야 합니다. `pip`로 설치할 수 있습니다: - - ```bash - pip install python-dotenv - ``` - -6. **Python 스크립트에서 환경 변수 불러오기**: Python 스크립트에서 `python-dotenv` 패키지를 사용해 `.env` 파일의 환경 변수를 불러오세요: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -이제 `.env` 파일을 만들고 GitHub 토큰을 추가했으며, Python 애플리케이션에서 불러오는 작업을 성공적으로 완료했습니다. - -## 컴퓨터에서 로컬로 실행하는 방법 - -코드를 로컬에서 실행하려면 [Python이 설치되어 있어야 합니다](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -그 다음 저장소를 클론해야 합니다: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -모든 준비가 완료되면 바로 시작할 수 있습니다! - -## 선택적 단계 - -### Miniconda 설치하기 - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst)는 [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python 및 몇 가지 패키지를 설치할 수 있는 경량 설치 프로그램입니다. -Conda는 패키지 관리자이며, 다양한 Python [**가상 환경**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst)과 패키지를 쉽게 설정하고 전환할 수 있게 해줍니다. 또한 `pip`로 설치할 수 없는 패키지를 설치할 때도 유용합니다. - -[MiniConda 설치 가이드](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst)를 참고해 설치하세요. - -Miniconda를 설치한 후, 아직 클론하지 않았다면 [저장소](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst)를 클론하세요. - -다음으로 가상 환경을 만들어야 합니다. Conda를 사용할 경우 새 환경 파일(_environment.yml_)을 만드세요. Codespaces를 사용 중이라면 `.devcontainer` 디렉터리 내에 `.devcontainer/environment.yml`로 만드시면 됩니다. - -아래 스니펫으로 환경 파일을 채우세요: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -conda 사용 중 오류가 발생하면 터미널에서 다음 명령어로 Microsoft AI 라이브러리를 수동으로 설치할 수 있습니다. - -``` -conda install -c microsoft azure-ai-ml -``` - -환경 파일에는 필요한 의존성이 명시되어 있습니다. ``은 Conda 환경 이름, ``은 사용하려는 Python 버전입니다. 예를 들어 `3`은 최신 메이저 버전입니다. - -준비가 되면 아래 명령어를 터미널에서 실행해 Conda 환경을 만드세요. - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -문제가 생기면 [Conda 환경 가이드](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst)를 참고하세요. - -### Python 지원 확장 기능과 함께 Visual Studio Code 사용하기 - -이 과정에서는 [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) 편집기와 [Python 지원 확장 기능](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) 사용을 권장합니다. 다만 필수는 아닙니다. - -> **참고**: VS Code에서 과정 저장소를 열면 프로젝트를 컨테이너 내에서 설정할 수 있는 옵션이 있습니다. 이는 과정 저장소 내에 있는 [특별한 `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) 디렉터리 덕분입니다. 자세한 내용은 이후에 다룹니다. - -> **참고**: 저장소를 클론하고 VS Code에서 열면 Python 지원 확장 기능 설치를 자동으로 제안합니다. - -> **참고**: VS Code가 저장소를 컨테이너에서 다시 열도록 제안하면, 로컬에 설치된 Python을 사용하려면 이 요청을 거절하세요. - -### 브라우저에서 Jupyter 사용하기 - -브라우저 내에서 [Jupyter 환경](https://jupyter.org?WT.mc_id=academic-105485-koreyst)을 사용해 프로젝트 작업도 가능합니다. 클래식 Jupyter와 [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) 모두 자동 완성, 코드 하이라이트 등 쾌적한 개발 환경을 제공합니다. - -로컬에서 Jupyter를 시작하려면 터미널/명령줄에서 과정 디렉터리로 이동한 후 다음을 실행하세요: - -```bash -jupyter notebook -``` - -또는 - -```bash -jupyterhub -``` - -이렇게 하면 Jupyter 인스턴스가 시작되고, 접속할 수 있는 URL이 명령줄 창에 표시됩니다. - -URL에 접속하면 과정 개요를 볼 수 있고, `*.ipynb` 파일을 탐색할 수 있습니다. 예를 들어 `08-building-search-applications/python/oai-solution.ipynb` 같은 파일입니다. - -### 컨테이너에서 실행하기 - -컴퓨터나 Codespace에 모든 것을 설정하는 대신 [컨테이너](../../../00-course-setup/)를 사용할 수도 있습니다. 과정 저장소 내 특별한 `.devcontainer` 폴더 덕분에 VS Code가 컨테이너 내에서 프로젝트를 설정할 수 있습니다. Codespaces 외부에서는 Docker 설치가 필요하며, 다소 복잡할 수 있으니 컨테이너 작업 경험이 있는 분께만 권장합니다. - -GitHub Codespaces에서 API 키를 안전하게 관리하는 가장 좋은 방법 중 하나는 Codespace Secrets를 사용하는 것입니다. 자세한 내용은 [Codespaces 비밀 관리](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) 가이드를 참고하세요. - -## 수업 및 기술 요구 사항 - -이 과정은 6개의 개념 수업과 6개의 코딩 수업으로 구성되어 있습니다. - -코딩 수업에서는 Azure OpenAI Service를 사용합니다. 코드를 실행하려면 Azure OpenAI 서비스 접근 권한과 API 키가 필요합니다. [이 신청서를 작성](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst)하여 접근 권한을 요청할 수 있습니다. - -신청 처리 대기 중에도 각 코딩 수업에는 코드와 출력 결과를 볼 수 있는 `README.md` 파일이 포함되어 있습니다. - -## Azure OpenAI Service를 처음 사용하는 경우 - -Azure OpenAI 서비스를 처음 사용한다면, [Azure OpenAI Service 리소스 생성 및 배포 방법](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) 가이드를 따라 주세요. - -## OpenAI API를 처음 사용하는 경우 - -OpenAI API를 처음 사용한다면, [인터페이스 생성 및 사용 방법](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) 가이드를 참고하세요. - -## 다른 학습자 만나기 - -공식 [AI 커뮤니티 Discord 서버](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst)에 다른 학습자들과 만날 수 있는 채널을 만들었습니다. 이는 같은 관심사를 가진 창업자, 개발자, 학생 등과 네트워킹하고 생성 AI 실력을 키우기에 좋은 기회입니다. - -[![Discord 채널 참여하기](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -프로젝트 팀도 이 Discord 서버에서 학습자들을 지원할 예정입니다. - -## 기여하기 - -이 과정은 오픈 소스 프로젝트입니다. 개선할 점이나 문제를 발견하면 [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst)를 생성하거나 [GitHub 이슈](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst)를 남겨 주세요. - -프로젝트 팀은 모든 기여를 추적합니다. 오픈 소스에 기여하는 것은 생성 AI 분야에서 경력을 쌓는 훌륭한 방법입니다. - -대부분의 기여는 기여자가 해당 기여에 대한 권리를 보유하고 있으며, 실제로 우리에게 사용 권한을 부여한다는 내용을 선언하는 기여자 라이선스 계약(CLA)에 동의해야 합니다. 자세한 내용은 [CLA, Contributor License Agreement 웹사이트](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst)를 참고하세요. - -중요: 이 저장소 내 텍스트를 번역할 때는 기계 번역을 사용하지 마세요. 커뮤니티를 통해 번역을 검증할 예정이므로, 능숙한 언어에만 자원봉사로 참여해 주세요. - -풀 리퀘스트를 제출하면 CLA-bot이 자동으로 CLA 제출 필요 여부를 판단하고 PR에 적절한 라벨이나 코멘트를 추가합니다. 봇의 안내에 따라 진행하면 되며, 모든 저장소에서 한 번만 진행하면 됩니다. - -이 프로젝트는 [Microsoft 오픈 소스 행동 강령](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst)을 채택했습니다. 자세한 내용은 행동 강령 FAQ를 읽거나 추가 질문이나 의견이 있으면 [Email opencode](opencode@microsoft.com)로 문의하세요. - -## 시작해 봅시다 - -이제 이 과정을 완료하는 데 필요한 단계를 마쳤으니, [생성 AI와 LLM 소개](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst)부터 시작해 봅시다. - -**면책 조항**: -이 문서는 AI 번역 서비스 [Co-op Translator](https://github.com/Azure/co-op-translator)를 사용하여 번역되었습니다. 정확성을 위해 최선을 다하고 있으나, 자동 번역에는 오류나 부정확한 부분이 있을 수 있음을 유의하시기 바랍니다. 원문은 해당 언어의 원본 문서가 권위 있는 출처로 간주되어야 합니다. 중요한 정보의 경우 전문적인 인간 번역을 권장합니다. 본 번역 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 당사는 책임을 지지 않습니다. \ No newline at end of file + + + + diff --git a/translations/ko/00-course-setup/SETUP.md b/translations/ko/00-course-setup/SETUP.md deleted file mode 100644 index 1fc03c34a..000000000 --- a/translations/ko/00-course-setup/SETUP.md +++ /dev/null @@ -1,146 +0,0 @@ - -# 개발 환경 설정하기 - -이 저장소와 강의는 Python3, .NET, Node.js, Java 개발을 지원하는 범용 런타임이 포함된 [개발 컨테이너](https://containers.dev?WT.mc_id=academic-105485-koreyst)로 구성되어 있습니다. 관련 설정은 이 저장소 루트의 `.devcontainer/` 폴더에 있는 `devcontainer.json` 파일에 정의되어 있습니다. - -개발 컨테이너를 활성화하려면 [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst)에서 실행하여 클라우드 호스팅 런타임을 사용하거나, [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst)에서 실행하여 로컬 장치 호스팅 런타임을 사용할 수 있습니다. VS Code 내에서 개발 컨테이너가 어떻게 작동하는지에 대한 자세한 내용은 [이 문서](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst)를 참고하세요. - -> [!TIP] -> 최소한의 노력으로 빠르게 시작하려면 GitHub Codespaces 사용을 권장합니다. 개인 계정에 대해 넉넉한 [무료 사용 한도](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst)를 제공합니다. 비활성 codespaces를 중지하거나 삭제하도록 [타임아웃 설정](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst)하여 할당량을 최대한 활용하세요. - - -## 1. 과제 실행하기 - -각 강의에는 Python, .NET/C#, Java, JavaScript/TypeScript 등 하나 이상의 프로그래밍 언어로 제공될 수 있는 _선택적_ 과제가 있습니다. 이 섹션에서는 과제 실행과 관련된 일반적인 안내를 제공합니다. - -### 1.1 Python 과제 - -Python 과제는 애플리케이션(`.py` 파일) 또는 Jupyter 노트북(`.ipynb` 파일) 형태로 제공됩니다. -- 노트북을 실행하려면 Visual Studio Code에서 열고 오른쪽 상단의 _Select Kernel_을 클릭한 후 기본 Python 3 옵션을 선택하세요. 이제 _Run All_을 클릭해 노트북을 실행할 수 있습니다. -- 커맨드라인에서 Python 애플리케이션을 실행하려면 과제별 지침을 따라 올바른 파일을 선택하고 필요한 인자를 제공하세요. - -## 2. 공급자 설정하기 - -과제는 OpenAI, Azure, Hugging Face 같은 지원되는 서비스 공급자를 통해 하나 이상의 대형 언어 모델(LLM) 배포와 연동되도록 설정될 수 있습니다. 이들은 적절한 인증 정보(API 키 또는 토큰)를 사용해 프로그래밍 방식으로 접근할 수 있는 _호스팅된 엔드포인트_(API)를 제공합니다. 이 강의에서는 다음 공급자들을 다룹니다: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) - 핵심 GPT 시리즈를 포함한 다양한 모델 제공 - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) - 엔터프라이즈 환경에 적합한 OpenAI 모델 - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) - 오픈소스 모델과 추론 서버 제공 - -**이 연습을 위해서는 각자 계정을 사용해야 합니다**. 과제는 선택 사항이므로 관심에 따라 한 개, 모두, 또는 전혀 설정하지 않아도 됩니다. 가입 관련 안내는 다음과 같습니다: - -| 가입처 | 비용 | API 키 | 플레이그라운드 | 비고 | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst) | [가격](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst) | [프로젝트 기반](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [코드 없이 웹에서](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | 다양한 모델 제공 | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst) | [가격](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst) | [SDK 빠른 시작](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [스튜디오 빠른 시작](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [사전 신청 필요](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) | -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [가격](https://huggingface.co/pricing) | [액세스 토큰](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst) | [Hugging Chat은 모델이 제한적](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -아래 지침에 따라 이 저장소를 다양한 공급자와 함께 사용할 수 있도록 _설정_하세요. 특정 공급자가 필요한 과제는 파일명에 다음 태그 중 하나가 포함되어 있습니다: - - `aoai` - Azure OpenAI 엔드포인트 및 키 필요 - - `oai` - OpenAI 엔드포인트 및 키 필요 - - `hf` - Hugging Face 토큰 필요 - -공급자를 하나, 전혀, 또는 모두 설정할 수 있습니다. 관련 과제는 인증 정보가 없으면 오류가 발생합니다. - -### 2.1 `.env` 파일 생성하기 - -위 안내를 읽고 관련 공급자에 가입하여 필요한 인증 정보(API_KEY 또는 토큰)를 이미 받았다고 가정합니다. Azure OpenAI의 경우, 적어도 하나의 GPT 모델이 배포된 Azure OpenAI 서비스(엔드포인트)를 유효하게 운영 중이어야 합니다. - -다음 단계는 **로컬 환경 변수**를 다음과 같이 설정하는 것입니다: - -1. 루트 폴더에서 `.env.copy` 파일을 찾아보세요. 내용은 다음과 비슷할 것입니다: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. 아래 명령어로 `.env.copy` 파일을 `.env`로 복사하세요. 이 파일은 _gitignore_ 처리되어 비밀 정보를 안전하게 보호합니다. - - ```bash - cp .env.copy .env - ``` - -3. 다음 섹션에 설명된 대로 값을 채워 넣으세요(`=` 오른쪽의 플레이스홀더를 교체). - -3. (선택 사항) GitHub Codespaces를 사용하는 경우, 환경 변수를 이 저장소와 연동된 _Codespaces 비밀_로 저장할 수 있습니다. 이 경우 로컬 `.env` 파일을 따로 설정할 필요가 없습니다. **단, 이 옵션은 GitHub Codespaces에서만 작동합니다.** Docker Desktop을 사용하는 경우에는 여전히 `.env` 파일 설정이 필요합니다. - -### 2.2 `.env` 파일 내용 채우기 - -변수 이름이 무엇을 의미하는지 간단히 살펴보겠습니다: - -| 변수명 | 설명 | -| :--- | :--- | -| HUGGING_FACE_API_KEY | 프로필에서 설정한 사용자 액세스 토큰 | -| OPENAI_API_KEY | 비-Azure OpenAI 엔드포인트용 서비스 인증 키 | -| AZURE_OPENAI_API_KEY | Azure OpenAI 서비스 인증 키 | -| AZURE_OPENAI_ENDPOINT | Azure OpenAI 리소스의 배포된 엔드포인트 | -| AZURE_OPENAI_DEPLOYMENT | _텍스트 생성_ 모델 배포 이름 | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | _텍스트 임베딩_ 모델 배포 이름 | -| | | - -참고: 마지막 두 Azure OpenAI 변수는 각각 채팅 완성(텍스트 생성)과 벡터 검색(임베딩)에 사용되는 기본 모델을 나타냅니다. 설정 방법은 관련 과제에서 안내됩니다. - -### 2.3 Azure 설정: 포털에서 - -Azure OpenAI 엔드포인트와 키 값은 [Azure 포털](https://portal.azure.com?WT.mc_id=academic-105485-koreyst)에서 확인할 수 있으니, 여기서부터 시작합니다. - -1. [Azure 포털](https://portal.azure.com?WT.mc_id=academic-105485-koreyst)에 접속하세요. -2. 사이드바(왼쪽 메뉴)에서 **Keys and Endpoint** 옵션을 클릭하세요. -3. **Show Keys**를 클릭하면 KEY 1, KEY 2, Endpoint가 표시됩니다. -4. KEY 1 값을 `AZURE_OPENAI_API_KEY`에 사용하세요. -5. Endpoint 값을 `AZURE_OPENAI_ENDPOINT`에 사용하세요. - -다음으로, 배포한 특정 모델의 엔드포인트를 확인해야 합니다. - -1. Azure OpenAI 리소스의 사이드바(왼쪽 메뉴)에서 **Model deployments** 옵션을 클릭하세요. -2. 대상 페이지에서 **Manage Deployments**를 클릭하세요. - -이후 Azure OpenAI Studio 웹사이트로 이동하며, 아래 설명대로 다른 값을 찾을 수 있습니다. - -### 2.4 Azure 설정: 스튜디오에서 - -1. 위에서 설명한 대로 리소스에서 [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst)로 이동하세요. -2. 사이드바(왼쪽)에서 **Deployments** 탭을 클릭해 현재 배포된 모델을 확인하세요. -3. 원하는 모델이 배포되어 있지 않으면 **Create new deployment**를 사용해 배포하세요. -4. _텍스트 생성_ 모델로는 **gpt-35-turbo**를 권장합니다. -5. _텍스트 임베딩_ 모델로는 **text-embedding-ada-002**를 권장합니다. - -이제 환경 변수에 _배포 이름_을 반영해 업데이트하세요. 보통 모델 이름과 같지만 직접 변경했다면 그 이름을 사용합니다. 예를 들어: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**설정 후 .env 파일을 꼭 저장하세요**. 파일을 닫고 노트북 실행 지침으로 돌아가면 됩니다. - -### 2.5 OpenAI 설정: 프로필에서 - -OpenAI API 키는 [OpenAI 계정](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst)에서 확인할 수 있습니다. 계정이 없다면 가입 후 API 키를 생성하세요. 키를 받으면 `.env` 파일의 `OPENAI_API_KEY` 변수에 입력하면 됩니다. - -### 2.6 Hugging Face 설정: 프로필에서 - -Hugging Face 토큰은 프로필 내 [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst)에서 확인할 수 있습니다. 이 토큰을 공개적으로 게시하거나 공유하지 마세요. 대신 이 프로젝트 용도로 새 토큰을 생성한 후 `.env` 파일의 `HUGGING_FACE_API_KEY` 변수에 복사해 넣으세요. _참고:_ 기술적으로 API 키는 아니지만 인증에 사용되므로 일관성을 위해 이 명칭을 유지합니다. - -**면책 조항**: -이 문서는 AI 번역 서비스 [Co-op Translator](https://github.com/Azure/co-op-translator)를 사용하여 번역되었습니다. 정확성을 위해 노력하고 있으나, 자동 번역에는 오류나 부정확한 부분이 있을 수 있음을 유의하시기 바랍니다. 원문은 해당 언어의 원본 문서가 권위 있는 출처로 간주되어야 합니다. 중요한 정보의 경우 전문적인 인간 번역을 권장합니다. 본 번역 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 당사는 책임을 지지 않습니다. \ No newline at end of file diff --git a/translations/ko/04-prompt-engineering-fundamentals/README.md b/translations/ko/04-prompt-engineering-fundamentals/README.md index 7ca4c3fe2..a4c8ad9eb 100644 --- a/translations/ko/04-prompt-engineering-fundamentals/README.md +++ b/translations/ko/04-prompt-engineering-fundamentals/README.md @@ -1,454 +1,15 @@ - -# 프롬프트 엔지니어링 기초 - -[![Prompt Engineering Fundamentals](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.ko.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## 소개 -이 모듈에서는 생성 AI 모델에서 효과적인 프롬프트를 만드는 데 필요한 핵심 개념과 기법을 다룹니다. LLM에 프롬프트를 작성하는 방식도 중요합니다. 신중하게 설계된 프롬프트는 더 나은 품질의 응답을 이끌어낼 수 있습니다. 그렇다면 _프롬프트_와 _프롬프트 엔지니어링_이라는 용어는 정확히 무엇을 의미할까요? 그리고 LLM에 보내는 프롬프트 _입력_을 어떻게 개선할 수 있을까요? 이 장과 다음 장에서 이러한 질문에 답해보겠습니다. - -_생성 AI_는 사용자 요청에 따라 새로운 콘텐츠(예: 텍스트, 이미지, 오디오, 코드 등)를 만들어낼 수 있습니다. 이는 자연어와 코드를 사용하도록 훈련된 OpenAI의 GPT("Generative Pre-trained Transformer") 시리즈와 같은 _대형 언어 모델_을 통해 이루어집니다. - -사용자는 이제 기술적 전문 지식이나 훈련 없이도 채팅과 같은 익숙한 방식으로 이 모델들과 상호작용할 수 있습니다. 이 모델들은 _프롬프트 기반_으로 작동하며, 사용자가 텍스트 입력(프롬프트)을 보내면 AI가 응답(완성)을 반환합니다. 이후 사용자는 여러 차례 대화를 이어가며 프롬프트를 다듬어 원하는 응답이 나올 때까지 반복할 수 있습니다. - -"프롬프트"는 이제 생성 AI 애플리케이션의 주요 _프로그래밍 인터페이스_가 되어 모델에게 무엇을 할지 지시하고 반환되는 응답의 품질에 영향을 줍니다. "프롬프트 엔지니어링"은 일관되고 품질 높은 응답을 대규모로 제공하기 위해 프롬프트를 _설계하고 최적화하는_ 빠르게 성장하는 연구 분야입니다. - -## 학습 목표 - -이번 수업에서는 프롬프트 엔지니어링이 무엇인지, 왜 중요한지, 그리고 특정 모델과 애플리케이션 목표에 맞게 더 효과적인 프롬프트를 만드는 방법을 배웁니다. 프롬프트 엔지니어링의 핵심 개념과 모범 사례를 이해하고, 이를 실제 예제에 적용해 볼 수 있는 대화형 Jupyter 노트북 "샌드박스" 환경도 소개합니다. - -이 수업이 끝나면 다음을 할 수 있습니다: - -1. 프롬프트 엔지니어링이 무엇이며 왜 중요한지 설명할 수 있다. -2. 프롬프트의 구성 요소와 사용 방법을 설명할 수 있다. -3. 프롬프트 엔지니어링의 모범 사례와 기법을 배울 수 있다. -4. 배운 기법을 실제 예제에 적용하여 OpenAI 엔드포인트를 활용할 수 있다. - -## 주요 용어 - -프롬프트 엔지니어링: AI 모델이 원하는 출력을 생성하도록 입력을 설계하고 다듬는 작업. -토크나이제이션(Tokenization): 텍스트를 모델이 이해하고 처리할 수 있는 작은 단위인 토큰으로 변환하는 과정. -지침 튜닝된 LLM(Instruction-Tuned LLMs): 특정 지침으로 미세 조정되어 응답 정확도와 관련성을 높인 대형 언어 모델. - -## 학습 샌드박스 - -프롬프트 엔지니어링은 현재 과학보다는 예술에 가깝습니다. 직관을 키우는 가장 좋은 방법은 _더 많이 연습_하고, 도메인 전문 지식과 권장 기법, 모델별 최적화를 결합한 시행착오 방식을 채택하는 것입니다. - -이 수업과 함께 제공되는 Jupyter 노트북은 배운 내용을 직접 시도해 볼 수 있는 _샌드박스_ 환경을 제공합니다. 연습 문제를 실행하려면 다음이 필요합니다: - -1. **Azure OpenAI API 키** - 배포된 LLM의 서비스 엔드포인트. -2. **Python 런타임** - 노트북을 실행할 수 있는 환경. -3. **로컬 환경 변수** - _지금 [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) 단계를 완료하여 준비하세요_. - -노트북에는 _시작용_ 연습 문제가 포함되어 있지만, 더 많은 예제나 아이디어를 시도해 보고 프롬프트 설계에 대한 직관을 키우기 위해 직접 _Markdown_ (설명)과 _Code_ (프롬프트 요청) 섹션을 추가하는 것을 권장합니다. - -## 그림으로 보는 가이드 - -본격적으로 시작하기 전에 이번 수업에서 다루는 내용을 한눈에 파악하고 싶나요? 이 그림 가이드를 확인해 보세요. 주요 주제와 각 주제별로 생각해 볼 핵심 내용을 알려줍니다. 수업 로드맵은 핵심 개념과 도전 과제를 이해하는 것부터 시작해, 관련 프롬프트 엔지니어링 기법과 모범 사례로 해결하는 과정을 안내합니다. 이 가이드의 "고급 기법" 섹션은 이 커리큘럼의 _다음_ 장에서 다루는 내용을 의미합니다. - -![Illustrated Guide to Prompt Engineering](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.ko.png) - -## 우리 스타트업 - -이제 _이 주제_가 [교육에 AI 혁신을 가져오는](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst) 우리 스타트업 미션과 어떻게 연결되는지 이야기해 봅시다. 우리는 _개인화 학습_을 위한 AI 기반 애플리케이션을 만들고자 합니다. 그렇다면 우리 애플리케이션의 다양한 사용자가 어떻게 프롬프트를 "설계"할지 생각해 봅시다: - -- **관리자**는 AI에게 _교육과정 데이터를 분석해 누락된 부분을 찾아내도록_ 요청할 수 있습니다. AI는 결과를 요약하거나 코드로 시각화할 수 있습니다. -- **교사**는 AI에게 _대상 청중과 주제에 맞는 수업 계획을 생성하도록_ 요청할 수 있습니다. AI는 지정된 형식으로 개인화된 계획을 작성할 수 있습니다. -- **학생**은 AI에게 _어려운 과목을 가르쳐 달라고_ 요청할 수 있습니다. AI는 학생 수준에 맞춘 수업, 힌트, 예제를 제공하며 안내할 수 있습니다. - -이것은 빙산의 일각에 불과합니다. 교육 전문가들이 큐레이션한 오픈소스 프롬프트 라이브러리인 [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst)을 확인해 보세요. 가능성을 더 넓게 이해할 수 있습니다! _샌드박스나 OpenAI Playground에서 이 프롬프트들을 실행해 보며 어떤 결과가 나오는지 직접 경험해 보세요!_ - - - -## 프롬프트 엔지니어링이란? - -이번 수업은 **프롬프트 엔지니어링**을 특정 애플리케이션 목표와 모델에 대해 일관되고 품질 높은 응답(완성)을 제공하기 위해 텍스트 입력(프롬프트)을 _설계하고 최적화하는_ 과정으로 정의하며 시작했습니다. 이를 두 단계 과정으로 생각할 수 있습니다: - -- 주어진 모델과 목표에 맞는 초기 프롬프트 _설계_ -- 응답 품질을 높이기 위해 프롬프트를 반복적으로 _다듬기_ - -이는 최적의 결과를 얻기 위해 사용자 직관과 노력이 필요한 시행착오 과정입니다. 그렇다면 왜 중요할까요? 이 질문에 답하려면 먼저 세 가지 개념을 이해해야 합니다: - -- _토크나이제이션_ = 모델이 프롬프트를 "어떻게 보는지" -- _기본 LLM_ = 기반 모델이 프롬프트를 "어떻게 처리하는지" -- _지침 튜닝된 LLM_ = 모델이 이제 "작업"을 어떻게 인식하는지 - -### 토크나이제이션 - -LLM은 프롬프트를 _토큰 시퀀스_로 인식하며, 서로 다른 모델(또는 모델 버전)은 같은 프롬프트를 다르게 토크나이즈할 수 있습니다. LLM은 토큰 단위로 훈련되었기 때문에 프롬프트가 어떻게 토크나이즈되는지가 생성되는 응답 품질에 직접적인 영향을 미칩니다. - -토크나이제이션이 어떻게 작동하는지 감을 잡으려면 아래에 나온 [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) 같은 도구를 사용해 보세요. 프롬프트를 복사해 넣으면 공백 문자와 구두점이 어떻게 처리되는지 확인할 수 있습니다. 이 예시는 구형 LLM(GPT-3)을 보여주므로 최신 모델로 시도하면 결과가 다를 수 있습니다. - -![Tokenization](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.ko.png) - -### 개념: 기반 모델(Foundation Models) - -프롬프트가 토크나이즈되면, ["기본 LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst)(또는 기반 모델)의 주요 기능은 그 시퀀스 내 다음 토큰을 예측하는 것입니다. LLM은 방대한 텍스트 데이터셋으로 훈련되어 토큰 간 통계적 관계를 잘 파악하고 어느 정도 확신을 가지고 예측할 수 있습니다. 단어의 _의미_를 이해하는 것은 아니며, 단지 다음에 올 패턴을 "완성"하는 것뿐입니다. 사용자가 중단하거나 사전에 정해진 조건이 충족될 때까지 예측을 계속할 수 있습니다. - -프롬프트 기반 완성이 어떻게 작동하는지 보고 싶나요? 위 프롬프트를 Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst)에 기본 설정으로 입력해 보세요. 시스템은 프롬프트를 정보 요청으로 처리하도록 구성되어 있어, 이 맥락에 맞는 완성을 볼 수 있을 것입니다. - -하지만 사용자가 특정 기준이나 작업 목표에 맞는 결과를 원한다면 어떻게 될까요? 이때 _지침 튜닝된_ LLM이 등장합니다. - -![Base LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.ko.png) - -### 개념: 지침 튜닝된 LLM - -[지침 튜닝된 LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst)은 기반 모델을 시작점으로 삼아 명확한 지침이 포함된 예제나 입출력 쌍(예: 다중 턴 "메시지")으로 미세 조정한 모델입니다. AI의 응답은 이 지침을 따르려 시도합니다. - -이 과정에는 인간 피드백을 활용한 강화 학습(RLHF) 같은 기법이 사용되어, 모델이 _지침을 따르고_ _피드백에서 학습_하도록 훈련됩니다. 그 결과 실제 응용에 더 적합하고 사용자 목표에 더 관련성 높은 응답을 생성할 수 있습니다. - -직접 시도해 봅시다. 위 프롬프트를 다시 입력하되, 이번에는 _시스템 메시지_를 다음 지침으로 바꿔 보세요: - -> _제공된 내용을 2학년 학생이 이해할 수 있도록 요약하세요. 결과는 한 단락에 3-5개의 핵심 항목으로 구성하세요._ - -결과가 원하는 목표와 형식에 맞게 조정된 것을 확인할 수 있나요? 교사는 이제 이 응답을 수업 슬라이드에 바로 활용할 수 있습니다. - -![Instruction Tuned LLM Chat Completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.ko.png) - -## 왜 프롬프트 엔지니어링이 필요한가? - -이제 프롬프트가 LLM에서 어떻게 처리되는지 알았으니, _왜_ 프롬프트 엔지니어링이 필요한지 이야기해 봅시다. 현재 LLM이 가진 여러 도전 과제 때문에 _신뢰할 수 있고 일관된 완성_을 얻으려면 프롬프트 구성과 최적화에 노력을 기울여야 합니다. 예를 들어: - -1. **모델 응답은 확률적이다.** _같은 프롬프트_라도 서로 다른 모델이나 모델 버전에서 다른 응답이 나올 수 있습니다. 심지어 _같은 모델_이라도 시간에 따라 다른 결과가 나올 수 있습니다. _프롬프트 엔지니어링 기법은 이러한 변동성을 줄이고 더 나은 가이드라인을 제공하는 데 도움을 줍니다_. - -1. **모델은 허구의 응답을 만들 수 있다.** 모델은 _크지만 한정된_ 데이터셋으로 사전 훈련되어, 훈련 범위 밖의 개념에 대해선 지식이 부족합니다. 그 결과 부정확하거나 상상에 기반한, 또는 알려진 사실과 모순되는 응답을 생성할 수 있습니다. _프롬프트 엔지니어링 기법은 AI에게 출처나 추론을 요구하는 등 허구를 식별하고 완화하는 데 도움을 줍니다_. - -1. **모델의 능력은 다양하다.** 최신 모델이나 세대는 더 풍부한 기능을 제공하지만, 비용과 복잡성 측면에서 고유한 특성과 절충점을 동반합니다. _프롬프트 엔지니어링은 차이를 추상화하고 모델별 요구사항에 맞춰 확장 가능하고 원활한 워크플로우를 개발하는 데 도움을 줍니다_. - -OpenAI 또는 Azure OpenAI Playground에서 직접 확인해 보세요: - -- 서로 다른 LLM 배포(예: OpenAI, Azure OpenAI, Hugging Face)에서 같은 프롬프트를 사용해 보세요. 변동성을 느꼈나요? -- _같은_ LLM 배포(예: Azure OpenAI Playground)에서 같은 프롬프트를 여러 번 사용해 보세요. 변동성은 어떻게 달랐나요? - -### 허구(Fabrications) 예시 - -이 과정에서는 LLM이 훈련 한계나 기타 제약으로 인해 때때로 사실과 다른 정보를 생성하는 현상을 **"허구(fabrication)"**라고 부릅니다. 대중 기사나 연구 논문에서는 이를 _"환각(hallucinations)"_이라고도 하지만, 우리는 기계 기반 결과에 인간적 특성을 부여하지 않기 위해 _"허구"_라는 용어 사용을 권장합니다. 이는 [책임 있는 AI 가이드라인](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) 측면에서도 용어 선택에 신중을 기하는 것으로, 일부 맥락에서 불쾌감을 줄 수 있는 표현을 배제합니다. - -허구가 어떻게 작동하는지 감을 잡고 싶나요? AI에게 존재하지 않는 주제에 대한 콘텐츠를 생성하라고 지시하는 프롬프트를 생각해 보세요(훈련 데이터셋에 없음을 보장하기 위해). 예를 들어, 제가 시도한 프롬프트는 다음과 같습니다: -# 2076년 화성 전쟁 수업 계획 - -## 수업 목표 -- 2076년 화성 전쟁의 주요 원인과 결과 이해하기 -- 전쟁에 참여한 주요 인물과 세력 분석하기 -- 전쟁이 인류와 화성 식민지에 미친 영향 평가하기 - -## 수업 개요 -이 수업은 2076년 화성 전쟁에 대한 역사적 배경과 전개 과정을 다룹니다. 학생들은 전쟁의 원인, 주요 사건, 그리고 전쟁이 남긴 유산에 대해 토론하고 분석할 것입니다. - -## 수업 내용 - -### 1. 서론: 화성 식민지의 배경 -- 화성 식민지 개척 역사 간략 소개 -- 2070년대 화성의 정치적, 경제적 상황 설명 - -### 2. 전쟁의 발발 원인 -- 자원 분쟁과 정치적 갈등 -- 주요 세력과 그들의 목표 - -### 3. 주요 전투와 전략 -- 대표적인 전투 사례 분석 -- 사용된 무기와 전술 소개 - -### 4. 전쟁의 결과와 영향 -- 전쟁이 화성 사회에 끼친 변화 -- 지구와의 관계 변화 -- 장기적인 영향과 교훈 - -## 활동 및 과제 -- 토론: 화성 전쟁이 인류 미래에 주는 의미 -- 역할극: 주요 인물의 입장에서 전쟁 상황 재현 -- 에세이 작성: 전쟁의 원인과 결과 분석 - -## 참고 자료 -- 2076년 화성 전쟁 관련 문서 및 영상 자료 -- 주요 인물 인터뷰 기록 - -## 마무리 -수업을 통해 학생들은 2076년 화성 전쟁의 복잡한 배경과 그 영향에 대해 깊이 이해하고, 역사적 사건이 현재와 미래에 미치는 영향을 비판적으로 생각할 수 있게 됩니다. -웹 검색 결과, 화성 전쟁에 관한 허구의 이야기들(예: TV 시리즈나 책)은 있었지만 2076년에 관한 것은 없었습니다. 상식적으로도 2076년은 _미래_이기 때문에 실제 사건과 연관될 수 없습니다. - -그렇다면 이 프롬프트를 다양한 LLM 제공자에게 실행하면 어떤 결과가 나올까요? - -> **Response 1**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.ko.png) - -> **Response 2**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.ko.png) - -> **Response 3**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.ko.png) - -예상대로, 각 모델(또는 모델 버전)은 확률적 특성과 모델 능력 차이로 인해 약간씩 다른 답변을 생성합니다. 예를 들어, 한 모델은 8학년 학생을 대상으로 하고 다른 모델은 고등학생을 대상으로 가정합니다. 하지만 세 모델 모두 정보가 부족한 사용자를 설득할 수 있을 만큼 실제 사건처럼 보이는 답변을 생성했습니다. - -_메타프롬프트_나 _온도 설정_ 같은 프롬프트 엔지니어링 기법은 어느 정도 모델의 허구 생성(fabrication)을 줄일 수 있습니다. 새로운 프롬프트 엔지니어링 _아키텍처_는 이러한 효과를 완화하거나 줄이기 위해 새로운 도구와 기법을 프롬프트 흐름에 원활하게 통합합니다. - -## 사례 연구: GitHub Copilot - -이 섹션을 마무리하며, 실제 솔루션에서 프롬프트 엔지니어링이 어떻게 활용되는지 살펴보기 위해 한 가지 사례 연구를 보겠습니다: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot은 "AI 페어 프로그래머"로, 텍스트 프롬프트를 코드 완성으로 변환하며 개발 환경(예: Visual Studio Code)에 통합되어 원활한 사용자 경험을 제공합니다. 아래 블로그 시리즈에 문서화된 바와 같이, 초기 버전은 OpenAI Codex 모델을 기반으로 했으며, 엔지니어들은 코드 품질 향상을 위해 모델을 미세 조정하고 더 나은 프롬프트 엔지니어링 기법을 개발할 필요성을 빠르게 인식했습니다. 7월에는 [Codex를 넘어선 향상된 AI 모델](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst)을 선보여 더 빠른 제안을 가능하게 했습니다. - -학습 여정을 따라가려면 게시물을 순서대로 읽어보세요. - -- **2023년 5월** | [GitHub Copilot이 코드 이해 능력을 향상시키는 방법](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **2023년 5월** | [GitHub 내부: GitHub Copilot 뒤의 LLM 작업](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **2023년 6월** | [GitHub Copilot을 위한 더 나은 프롬프트 작성법](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **2023년 7월** | [GitHub Copilot, 향상된 AI 모델로 Codex를 넘어선다](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **2023년 7월** | [개발자를 위한 프롬프트 엔지니어링과 LLM 가이드](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **2023년 9월** | [엔터프라이즈 LLM 앱 구축법: GitHub Copilot에서 배운 교훈](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -또한 [Engineering 블로그](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst)에서 [이와 같은](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) 게시물을 찾아보면, 이러한 모델과 기법이 실제 애플리케이션에 어떻게 _적용_되는지 확인할 수 있습니다. - ---- - - - -## 프롬프트 구성 - -프롬프트 엔지니어링이 왜 중요한지 살펴봤으니, 이제 프롬프트가 어떻게 _구성_되는지 이해해 다양한 기법을 평가하며 더 효과적인 프롬프트 설계를 알아봅시다. - -### 기본 프롬프트 - -기본 프롬프트부터 시작해보겠습니다: 추가 맥락 없이 모델에 보내는 텍스트 입력입니다. 예를 들어, 미국 국가의 첫 몇 단어를 OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst)에 보내면, 다음 몇 줄을 즉시 _완성_해 기본 예측 동작을 보여줍니다. - -| 프롬프트 (입력) | 완성 (출력) | -| :------------------- | :------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | "The Star-Spangled Banner"라는 미국 국가 가사를 시작하는 것 같네요. 전체 가사는 ... | - -### 복합 프롬프트 - -이제 기본 프롬프트에 맥락과 지시사항을 추가해봅시다. [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst)는 다음과 같은 _메시지_ 모음으로 복합 프롬프트를 구성할 수 있습니다: - -- _사용자_ 입력과 _어시스턴트_ 응답을 반영하는 입출력 쌍 -- 어시스턴트의 동작이나 성격을 설정하는 시스템 메시지 - -요청은 아래와 같은 형태가 되며, _토큰화_는 맥락과 대화에서 관련 정보를 효과적으로 포착합니다. 시스템 맥락을 변경하는 것은 사용자 입력만큼 완성 품질에 큰 영향을 미칠 수 있습니다. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### 지시 프롬프트 - -위 예시에서 사용자 프롬프트는 정보 요청으로 해석할 수 있는 간단한 텍스트 쿼리였습니다. _지시_ 프롬프트는 텍스트를 사용해 작업을 더 구체적으로 지정하여 AI에 더 나은 안내를 제공합니다. 예를 들어: - -| 프롬프트 (입력) | 완성 (출력) | 지시 유형 | -| :----------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------- | :----------------- | -| Write a description of the Civil War | _간단한 단락 반환_ | 단순 | -| Write a description of the Civil War. Provide key dates and events and describe their significance | _단락과 주요 사건 날짜 및 설명 목록 반환_ | 복합 | -| Write a description of the Civil War in 1 paragraph. Provide 3 bullet points with key dates and their significance. Provide 3 more bullet points with key historical figures and their contributions. Return the output as a JSON file | _JSON 형식으로 포맷된 더 상세한 내용을 텍스트 박스에 반환, 복사해 파일로 저장 및 검증 가능_ | 복합. 포맷 포함 | - -## 주요 내용 - -위 예시들에서 프롬프트는 여전히 꽤 개방적이어서 LLM이 사전 학습된 데이터셋 중 어떤 부분이 관련 있는지 결정할 수 있었습니다. _주요 내용(primary content)_ 설계 패턴은 입력 텍스트를 두 부분으로 나눕니다: - -- 지시사항(행동) -- 행동에 영향을 주는 관련 내용 - -예를 들어, 지시사항이 "이 내용을 두 문장으로 요약하라"인 경우입니다. - -| 프롬프트 (입력) | 완성 (출력) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 목성은 태양에서 다섯 번째 행성이며 태양계에서 가장 큽니다. 태양 질량의 천분의 일에 불과하지만 태양계 다른 모든 행성 질량을 합친 것의 두 배 반에 달하는 가스 거성입니다. 목성은 육안으로 볼 수 있는 가장 밝은 천체 중 하나이며, 기록된 역사 이전부터 고대 문명에 알려져 왔습니다. 로마 신 목성의 이름을 따서 명명되었습니다.[19] 지구에서 볼 때 목성은 반사광으로 인해 그림자를 드리울 정도로 밝을 수 있으며,[20] 평균적으로 달과 금성 다음으로 밤하늘에서 세 번째로 밝은 자연 천체입니다.
**이 내용을 두 문장으로 요약하라** | 목성은 태양에서 다섯 번째이자 태양계에서 가장 큰 행성으로, 밤하늘에서 가장 밝은 천체 중 하나입니다. 로마 신 목성의 이름을 따온 이 가스 거성은 태양계 다른 모든 행성 질량의 두 배 반에 달합니다. | - -주요 내용 부분은 다양한 방식으로 활용해 더 효과적인 지시를 이끌어낼 수 있습니다: - -- **예시** - 명시적 지시 대신 원하는 출력 예시를 제공해 패턴을 추론하게 함 -- **큐(cues)** - 지시 뒤에 "큐"를 붙여 완성을 유도, 모델이 더 관련성 높은 답변을 하도록 유도 -- **템플릿** - 변수(플레이스홀더)를 포함한 반복 가능한 프롬프트 '레시피'로, 특정 데이터에 맞게 맞춤화 가능 - -이제 실제 예시를 살펴봅시다. - -### 예시 사용하기 - -이 방법은 주요 내용을 사용해 주어진 지시에 대한 원하는 출력 예시를 모델에 제공하고, 모델이 패턴을 추론하도록 하는 것입니다. 제공하는 예시 수에 따라 제로샷, 원샷, 퓨샷 프롬프트가 있습니다. - -프롬프트는 세 가지 요소로 구성됩니다: - -- 작업 설명 -- 원하는 출력 예시 몇 개 -- 새 예시 시작 (암묵적 작업 설명 역할) - -| 학습 유형 | 프롬프트 (입력) | 완성 (출력) | -| :---------- | :----------------------------------------------------------------------------------------------- | :------------------------- | -| 제로샷 | "The Sun is Shining". Translate to Spanish | "El Sol está brillando". | -| 원샷 | "The Sun is Shining" => "El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso".| -| 퓨샷 | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketball | -| | | | - -제로샷 프롬프트에서는 명시적 지시("Translate to Spanish")가 필요하지만, 원샷에서는 예시를 통해 지시가 추론됩니다. 퓨샷에서는 더 많은 예시를 추가해 모델이 더 정확한 추론을 하도록 돕습니다. - -### 프롬프트 큐 - -주요 내용을 활용하는 또 다른 방법은 예시 대신 _큐_를 제공하는 것입니다. 이 경우, 원하는 응답 형식을 반영하는 일부 문장으로 모델을 _시작_해 주어 모델이 그 흐름을 이어가도록 유도합니다. - -| 큐 개수 | 프롬프트 (입력) | 완성 (출력) | -| :------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 0 | 목성은 태양에서 다섯 번째 행성이며 태양계에서 가장 큽니다. 태양 질량의 천분의 일에 불과하지만 태양계 다른 모든 행성 질량을 합친 것의 두 배 반에 달하는 가스 거성입니다. 목성은 육안으로 볼 수 있는 가장 밝은 천체 중 하나이며, 기록된 역사 이전부터 고대 문명에 알려져 왔습니다. - -**Summarize This** | 목성은 태양계에서 가장 큰 행성이며 태양에서 다섯 번째로 가까운 행성입니다. 태양 질량의 1/1000에 해당하는 가스 거인이지만, 다른 모든 행성의 질량을 합친 것보다 무겁습니다. 고대 문명들은 오래전부터 목성을 알고 있었으며, 밤하늘에서 쉽게 볼 수 있습니다. | -| 1 | 목성은 태양에서 다섯 번째 행성이자 태양계에서 가장 큰 행성입니다. 태양 질량의 1/1000에 해당하는 가스 거인이지만, 태양계 내 다른 모든 행성의 질량을 합친 것보다 두 배 반 더 무겁습니다. 목성은 육안으로 볼 수 있는 가장 밝은 천체 중 하나이며, 기록된 역사 이전부터 고대 문명에 알려져 있었습니다.
**Summarize This**
우리가 배운 것은 목성이 | 태양에서 다섯 번째 행성이자 태양계에서 가장 큰 행성이라는 점입니다. 태양 질량의 1/1000에 해당하는 가스 거인이지만, 다른 모든 행성을 합친 것보다 두 배 반 더 무겁습니다. 육안으로 쉽게 볼 수 있으며 고대부터 알려져 왔습니다. | -| 2 | 목성은 태양에서 다섯 번째 행성이자 태양계에서 가장 큰 행성입니다. 태양 질량의 1/1000에 해당하는 가스 거인이지만, 태양계 내 다른 모든 행성의 질량을 합친 것보다 두 배 반 더 무겁습니다. 목성은 육안으로 볼 수 있는 가장 밝은 천체 중 하나이며, 기록된 역사 이전부터 고대 문명에 알려져 있었습니다.
**Summarize This**
우리가 배운 상위 3가지 사실: | 1. 목성은 태양에서 다섯 번째 행성이자 태양계에서 가장 큰 행성입니다.
2. 태양 질량의 1/1000에 해당하는 가스 거인입니다...
3. 목성은 고대부터 육안으로 볼 수 있었습니다... | -| | | | - -### 프롬프트 템플릿 - -프롬프트 템플릿은 _미리 정의된 프롬프트 레시피_로, 필요에 따라 저장하고 재사용하여 일관된 사용자 경험을 대규모로 제공할 수 있습니다. 가장 단순한 형태로는 [OpenAI의 예시](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst)처럼 대화형 프롬프트 구성 요소(사용자 및 시스템 메시지)와 API 요청 형식을 함께 제공하는 프롬프트 예시 모음입니다. - -좀 더 복잡한 형태로는 [LangChain의 예시](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst)처럼 _플레이스홀더_를 포함하여 사용자 입력, 시스템 컨텍스트, 외부 데이터 등 다양한 출처의 데이터를 동적으로 대체해 프롬프트를 생성할 수 있습니다. 이를 통해 일관된 사용자 경험을 **프로그래밍적으로** 대규모로 제공할 수 있는 재사용 가능한 프롬프트 라이브러리를 만들 수 있습니다. - -마지막으로, 템플릿의 진정한 가치는 특정 수직적 응용 분야에 맞게 _최적화된_ 프롬프트 라이브러리를 생성하고 배포하는 데 있습니다. 여기서 프롬프트 템플릿은 해당 분야의 맥락이나 예시를 반영하여 대상 사용자에게 더 적합하고 정확한 응답을 제공합니다. [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) 저장소는 교육 분야에 특화된 프롬프트 라이브러리를 큐레이션하여 수업 계획, 교육과정 설계, 학생 튜터링 등 주요 목표에 중점을 둔 훌륭한 사례입니다. - -## 보조 콘텐츠 - -프롬프트 구성을 지시문(작업)과 대상(주요 콘텐츠)으로 본다면, _보조 콘텐츠_는 출력에 영향을 주기 위해 추가로 제공하는 맥락과 같습니다. 이는 튜닝 파라미터, 포맷 지침, 주제 분류 등 모델이 원하는 사용자 목표나 기대에 맞게 응답을 _맞춤화_하는 데 도움을 줍니다. - -예를 들어, 광범위한 메타데이터(이름, 설명, 수준, 태그, 강사 등)를 포함한 강의 목록이 있을 때: - -- "2023년 가을 학기 강의 목록 요약"이라는 지시문을 정의할 수 있고, -- 주요 콘텐츠로 원하는 출력 예시 몇 개를 제공하며, -- 보조 콘텐츠로 관심 있는 상위 5개 태그를 지정할 수 있습니다. - -이제 모델은 예시 형식에 맞춰 요약을 제공하되, 결과에 여러 태그가 포함된 경우 보조 콘텐츠에서 지정한 5개 태그를 우선시할 수 있습니다. - ---- - - - -## 프롬프트 작성 모범 사례 - -프롬프트를 _구성하는_ 방법을 알게 되었으니, 이제 이를 _설계_하여 모범 사례를 반영하는 방법을 생각해 봅시다. 크게 두 가지로 나눌 수 있습니다. 올바른 _마인드셋_을 갖는 것과 적절한 _기법_을 적용하는 것입니다. - -### 프롬프트 엔지니어링 마인드셋 - -프롬프트 엔지니어링은 시행착오 과정이므로 세 가지 주요 지침을 기억하세요: - -1. **도메인 이해가 중요합니다.** 응답의 정확성과 적합성은 해당 애플리케이션이나 사용자가 속한 _도메인_에 따라 달라집니다. 직관과 도메인 전문 지식을 활용해 **기법을 맞춤화**하세요. 예를 들어, 시스템 프롬프트에 _도메인별 성격_을 정의하거나 사용자 프롬프트에 _도메인별 템플릿_을 사용하세요. 도메인별 맥락을 반영하는 보조 콘텐츠를 제공하거나 _도메인별 신호와 예시_를 활용해 모델이 익숙한 사용 패턴을 따르도록 유도할 수 있습니다. - -2. **모델 이해가 중요합니다.** 모델은 본질적으로 확률적입니다. 하지만 모델 구현은 학습 데이터셋(사전 학습 지식), 제공하는 기능(API 또는 SDK), 최적화된 콘텐츠 유형(코드, 이미지, 텍스트 등)에 따라 다를 수 있습니다. 사용하는 모델의 강점과 한계를 이해하고, 이를 바탕으로 _작업 우선순위_를 정하거나 모델 기능에 최적화된 _맞춤 템플릿_을 만드세요. - -3. **반복과 검증이 중요합니다.** 모델과 프롬프트 엔지니어링 기법은 빠르게 발전하고 있습니다. 도메인 전문가로서 특정 애플리케이션에만 적용되는 맥락이나 기준이 있을 수 있습니다. 프롬프트 엔지니어링 도구와 기법을 활용해 프롬프트 구성을 빠르게 시작하고, 직관과 도메인 전문 지식으로 결과를 반복 검증하세요. 인사이트를 기록하고 **지식 기반**(예: 프롬프트 라이브러리)을 만들어 다른 사람이 빠르게 반복 작업을 할 수 있도록 하세요. - -## 모범 사례 - -이제 [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst)와 [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst) 실무자들이 권장하는 일반적인 모범 사례를 살펴봅시다. - -| 항목 | 이유 | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 최신 모델 평가하기 | 새 모델 세대는 기능과 품질이 향상되었을 가능성이 높지만 비용이 더 들 수 있습니다. 영향을 평가한 후 마이그레이션 여부를 결정하세요. | -| 지시문과 컨텍스트 분리하기 | 모델이나 제공자가 지시문, 주요 콘텐츠, 보조 콘텐츠를 구분하는 _구분자_를 정의하는지 확인하세요. 이는 모델이 토큰에 가중치를 더 정확히 할당하는 데 도움이 됩니다. | -| 구체적이고 명확하게 작성하기 | 원하는 맥락, 결과, 길이, 형식, 스타일 등에 대해 자세히 설명하세요. 이는 응답의 품질과 일관성을 높이며, 재사용 가능한 템플릿에 레시피를 기록할 수 있습니다. | -| 설명적이고 예시 활용하기 | 모델은 '보여주고 말하기' 방식에 더 잘 반응할 수 있습니다. 먼저 예시 없이 지시문만 주는 `제로샷` 방식을 시도한 후, 원하는 출력 예시 몇 개를 제공하는 `퓨샷` 방식으로 다듬어 보세요. 비유도 활용하세요. | -| 완성 시작을 위한 신호 사용하기 | 응답 시작점으로 사용할 수 있는 선행 단어나 구절을 제공해 원하는 결과로 유도하세요. | -| 반복 강조하기 | 때로는 모델에 같은 내용을 여러 번 알려야 할 수 있습니다. 주요 콘텐츠 전후에 지시문을 주거나, 지시문과 신호를 함께 사용하는 등 반복하고 검증해 효과적인 방법을 찾으세요. | -| 순서가 중요하다 | 정보 제공 순서가 출력에 영향을 줄 수 있습니다. 특히 학습 예시에서는 최신 정보 편향 때문에 더욱 그렇습니다. 다양한 순서를 시도해 최적의 방식을 찾아보세요. | -| 모델에 ‘탈출구’ 제공하기 | 모델이 어떤 이유로든 작업을 완료하지 못할 경우 제공할 수 있는 _대체 응답_을 주어, 잘못되거나 허위 응답 생성 가능성을 줄이세요. | -| | | - -모든 모범 사례와 마찬가지로, _사용 환경에 따라 결과가 다를 수 있음_을 기억하세요. 이를 출발점으로 삼아 자신에게 맞는 최적의 방식을 찾아가세요. 새로운 모델과 도구가 나오면 프롬프트 엔지니어링 과정을 지속적으로 재평가하며, 프로세스 확장성과 응답 품질에 집중하세요. - - - -## 과제 - -축하합니다! 수업을 모두 마쳤습니다! 이제 배운 개념과 기법을 실제 예제로 시험해 볼 시간입니다! - -과제는 대화형으로 완료할 수 있는 Jupyter Notebook을 사용합니다. 또한 직접 Markdown과 코드 셀을 추가해 아이디어와 기법을 탐구할 수도 있습니다. - -### 시작하려면, 저장소를 포크한 후 - -- (권장) GitHub Codespaces 실행 -- (대안) 저장소를 로컬에 클론하고 Docker Desktop과 함께 사용 -- (대안) 선호하는 Notebook 실행 환경에서 Notebook 열기 - -### 다음으로, 환경 변수 설정 - -- 저장소 루트의 `.env.copy` 파일을 `.env`로 복사하고 `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT`, `AZURE_OPENAI_DEPLOYMENT` 값을 채우세요. 설정 방법은 [Learning Sandbox 섹션](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals)에서 확인하세요. - -### 다음으로, Jupyter Notebook 열기 - -- 실행할 커널을 선택하세요. 1번 또는 2번 옵션을 사용할 경우, 개발 컨테이너가 제공하는 기본 Python 3.10.x 커널을 선택하면 됩니다. - -이제 연습 문제를 실행할 준비가 되었습니다. 여기에는 _정답과 오답_이 따로 없으며, 시행착오를 통해 모델과 애플리케이션 도메인에 맞는 직관을 키우는 과정입니다. - -_따라서 이 수업에는 코드 솔루션 섹션이 없습니다. 대신 Notebook 내 "My Solution:" 제목의 Markdown 셀에 참고용 예시 출력이 포함되어 있습니다._ - - - -## 지식 점검 - -다음 중 합리적인 모범 사례를 따른 좋은 프롬프트는 무엇일까요? - -1. 빨간색 자동차 이미지를 보여줘 -2. 해질녘 절벽 옆에 주차된 볼보 XC90 모델의 빨간색 자동차 이미지를 보여줘 -3. 볼보 XC90 모델의 빨간색 자동차 이미지를 보여줘 - -정답: 2번입니다. "무엇을" 보여줄지 구체적으로 설명하고, 특정 제조사와 모델뿐 아니라 전체 배경까지 상세히 묘사해 가장 좋은 프롬프트입니다. 3번도 많은 설명이 포함되어 있어 그 다음으로 좋습니다. - -## 🚀 챌린지 - -"Show me an image of red car of make Volvo and " 문장을 완성하는 '신호(cue)' 기법을 활용해 보세요. 모델이 어떻게 응답하는지 확인하고, 어떻게 개선할지 고민해 보세요. - -## 훌륭합니다! 학습을 계속하세요 - -다양한 프롬프트 엔지니어링 개념을 더 배우고 싶다면 [계속 학습 페이지](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst)에서 관련 훌륭한 자료를 찾아보세요. - -5강에서는 [고급 프롬프트 기법](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)을 다룹니다! - -**면책 조항**: -이 문서는 AI 번역 서비스 [Co-op Translator](https://github.com/Azure/co-op-translator)를 사용하여 번역되었습니다. 정확성을 위해 최선을 다하고 있으나, 자동 번역에는 오류나 부정확한 부분이 있을 수 있음을 유의하시기 바랍니다. 원문은 해당 언어의 원본 문서가 권위 있는 출처로 간주되어야 합니다. 중요한 정보의 경우 전문적인 인간 번역을 권장합니다. 본 번역 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 당사는 책임을 지지 않습니다. \ No newline at end of file + + + + + + + diff --git a/translations/ko/09-building-image-applications/README.md b/translations/ko/09-building-image-applications/README.md index 834e629b8..6141f28e2 100644 --- a/translations/ko/09-building-image-applications/README.md +++ b/translations/ko/09-building-image-applications/README.md @@ -1,475 +1,12 @@ - -# 이미지 생성 애플리케이션 만들기 - -[![Building Image Generation Applications](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.ko.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLM은 단순한 텍스트 생성 그 이상입니다. 텍스트 설명으로부터 이미지를 생성하는 것도 가능합니다. 이미지라는 모달리티는 MedTech, 건축, 관광, 게임 개발 등 다양한 분야에서 매우 유용하게 활용될 수 있습니다. 이번 장에서는 가장 인기 있는 두 가지 이미지 생성 모델인 DALL-E와 Midjourney에 대해 살펴보겠습니다. - -## 소개 - -이번 수업에서는 다음 내용을 다룹니다: - -- 이미지 생성과 그 유용성 -- DALL-E와 Midjourney가 무엇이며, 어떻게 작동하는지 -- 이미지 생성 애플리케이션을 만드는 방법 - -## 학습 목표 - -이 수업을 마치면 다음을 할 수 있습니다: - -- 이미지 생성 애플리케이션을 구축할 수 있습니다. -- 메타 프롬프트로 애플리케이션의 경계를 정의할 수 있습니다. -- DALL-E와 Midjourney를 활용할 수 있습니다. - -## 왜 이미지 생성 애플리케이션을 만들까요? - -이미지 생성 애플리케이션은 생성형 AI의 가능성을 탐구하는 훌륭한 방법입니다. 예를 들어 다음과 같은 용도로 활용할 수 있습니다: - -- **이미지 편집 및 합성**: 이미지 편집이나 합성 등 다양한 용도로 이미지를 생성할 수 있습니다. - -- **다양한 산업에 적용 가능**: MedTech, 관광, 게임 개발 등 여러 산업 분야에서 이미지를 생성하는 데 활용할 수 있습니다. - -## 시나리오: Edu4All - -이번 수업에서는 스타트업 Edu4All과 함께 작업을 이어갑니다. 학생들은 평가 과제를 위해 이미지를 생성할 것입니다. 어떤 이미지를 만들지는 학생들의 자유지만, 자신만의 동화를 위한 삽화, 이야기 속 새로운 캐릭터, 아이디어와 개념을 시각화하는 데 활용할 수 있습니다. - -예를 들어, 학생들이 수업에서 기념물을 주제로 작업한다면 다음과 같은 이미지를 생성할 수 있습니다: - -![Edu4All startup, class on monuments, Eiffel Tower](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.ko.png) - -다음과 같은 프롬프트를 사용하여 - -> "Dog next to Eiffel Tower in early morning sunlight" - -## DALL-E와 Midjourney란 무엇인가요? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst)와 [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst)는 가장 인기 있는 이미지 생성 모델 두 가지로, 프롬프트를 사용해 이미지를 생성할 수 있습니다. - -### DALL-E - -먼저 DALL-E부터 살펴보겠습니다. DALL-E는 텍스트 설명으로부터 이미지를 생성하는 생성형 AI 모델입니다. - -> [DALL-E는 CLIP과 diffused attention 두 모델의 결합입니다](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP**은 이미지와 텍스트로부터 임베딩(데이터의 수치적 표현)을 생성하는 모델입니다. - -- **Diffused attention**은 임베딩으로부터 이미지를 생성하는 모델입니다. DALL-E는 이미지와 텍스트 데이터셋으로 학습되어 텍스트 설명으로부터 이미지를 생성할 수 있습니다. 예를 들어, 모자를 쓴 고양이나 모호크 헤어스타일을 한 개의 이미지를 생성할 수 있습니다. - -### Midjourney - -Midjourney도 DALL-E와 비슷한 방식으로 작동하며, 텍스트 프롬프트로부터 이미지를 생성합니다. “모자를 쓴 고양이”나 “모호크 헤어스타일을 한 개” 같은 프롬프트로 이미지를 만들 수 있습니다. - -![Image generated by Midjourney, mechanical pigeon](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_이미지 출처: Wikipedia, Midjourney가 생성한 이미지_ - -## DALL-E와 Midjourney는 어떻게 작동하나요? - -먼저 [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst)를 살펴보겠습니다. DALL-E는 트랜스포머 아키텍처 기반의 생성형 AI 모델로, _자기회귀 트랜스포머(autoregressive transformer)_를 사용합니다. - -_자기회귀 트랜스포머_는 텍스트 설명으로부터 이미지를 생성하는 방식을 정의하며, 한 번에 한 픽셀씩 생성하고, 생성된 픽셀을 바탕으로 다음 픽셀을 생성합니다. 신경망의 여러 층을 거치면서 이미지가 완성됩니다. - -이 과정을 통해 DALL-E는 이미지 내 속성, 객체, 특징 등을 제어할 수 있습니다. 다만 DALL-E 2와 3은 생성 이미지에 대해 더 세밀한 제어가 가능합니다. - -## 첫 번째 이미지 생성 애플리케이션 만들기 - -이미지 생성 애플리케이션을 만들려면 어떤 것이 필요할까요? 다음 라이브러리를 준비해야 합니다: - -- **python-dotenv**: 비밀 정보를 코드와 분리해 _.env_ 파일에 보관할 때 권장되는 라이브러리입니다. -- **openai**: OpenAI API와 상호작용할 때 사용하는 라이브러리입니다. -- **pillow**: 파이썬에서 이미지를 다룰 때 사용합니다. -- **requests**: HTTP 요청을 보낼 때 도움을 줍니다. - -1. _.env_ 파일을 만들고 다음 내용을 입력하세요: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - 이 정보는 Azure Portal의 "Keys and Endpoint" 섹션에서 확인할 수 있습니다. - -1. 위 라이브러리들을 _requirements.txt_ 파일에 다음과 같이 적습니다: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. 가상 환경을 만들고 라이브러리를 설치합니다: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Windows에서는 다음 명령어로 가상 환경을 만들고 활성화하세요: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. _app.py_ 파일에 다음 코드를 추가합니다: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -코드를 설명해 보겠습니다: - -- 먼저 OpenAI, dotenv, requests, Pillow 라이브러리를 임포트합니다. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- 다음으로 _.env_ 파일에서 환경 변수를 불러옵니다. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- 그 후 OpenAI API의 엔드포인트, 키, 버전, 타입을 설정합니다. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- 이제 이미지를 생성합니다: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - 위 코드는 생성된 이미지의 URL을 포함한 JSON 객체를 반환합니다. 이 URL을 사용해 이미지를 다운로드하고 파일로 저장할 수 있습니다. - -- 마지막으로 이미지를 열어 기본 이미지 뷰어로 표시합니다: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### 이미지 생성 코드 자세히 보기 - -이미지를 생성하는 코드를 좀 더 자세히 살펴보겠습니다: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt**: 이미지를 생성하는 데 사용되는 텍스트 프롬프트입니다. 여기서는 "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils"를 사용했습니다. -- **size**: 생성할 이미지 크기입니다. 여기서는 1024x1024 픽셀 크기의 이미지를 생성합니다. -- **n**: 생성할 이미지 수입니다. 여기서는 두 장의 이미지를 생성합니다. -- **temperature**: 생성형 AI 모델 출력의 무작위성을 조절하는 매개변수입니다. 0에서 1 사이의 값이며, 0은 결정론적(항상 같은 결과), 1은 무작위적 출력을 의미합니다. 기본값은 0.7입니다. - -다음 섹션에서 이미지와 관련해 더 다양한 기능을 다룰 예정입니다. - -## 이미지 생성의 추가 기능 - -지금까지 파이썬 몇 줄로 이미지를 생성하는 방법을 보았습니다. 하지만 이미지로 할 수 있는 일은 더 많습니다. - -다음과 같은 작업도 가능합니다: - -- **편집 수행**: 기존 이미지에 마스크와 프롬프트를 제공해 이미지를 수정할 수 있습니다. 예를 들어, 토끼 이미지에 모자를 씌우는 작업이 가능합니다. 이미지, 변경할 영역을 지정하는 마스크, 그리고 수행할 작업을 설명하는 텍스트 프롬프트를 함께 제공합니다. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - 기본 이미지는 토끼만 포함하지만, 최종 이미지는 토끼가 모자를 쓴 모습이 됩니다. - -- **변형 생성**: 기존 이미지를 바탕으로 변형 이미지를 만들 수 있습니다. 변형을 만들려면 이미지와 텍스트 프롬프트를 제공하고 다음과 같이 코드를 작성합니다: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > 참고: 이 기능은 OpenAI에서만 지원됩니다. - -## 온도(Temperature) - -온도는 생성형 AI 모델 출력의 무작위성을 조절하는 매개변수입니다. 0에서 1 사이의 값이며, 0은 결정론적(항상 같은 결과), 1은 무작위적 출력을 의미합니다. 기본값은 0.7입니다. - -온도가 어떻게 작동하는지 예를 들어 보겠습니다. 다음 프롬프트를 두 번 실행해 봅니다: - -> 프롬프트: "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils" - -![Bunny on a horse holding a lollipop, version 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.ko.png) - -이제 같은 프롬프트를 다시 실행해 보겠습니다. 같은 이미지가 나오지 않는 것을 확인할 수 있습니다: - -![Generated image of bunny on horse](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.ko.png) - -보시다시피 두 이미지는 비슷하지만 동일하지 않습니다. 이번에는 온도 값을 0.1로 바꿔서 어떤 변화가 있는지 살펴봅시다: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### 온도 값 변경하기 - -출력을 좀 더 결정론적으로 만들기 위해 온도를 낮춰보겠습니다. 앞서 생성한 두 이미지를 보면 첫 번째는 토끼가 있고 두 번째는 말이 있어 이미지가 크게 다릅니다. - -따라서 코드를 수정해 온도를 0으로 설정해 보겠습니다: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -이 코드를 실행하면 다음 두 이미지를 얻을 수 있습니다: - -- ![Temperature 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.ko.png) -- ![Temperature 0 , v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.ko.png) - -여기서는 이미지들이 서로 훨씬 더 닮았다는 것을 명확히 알 수 있습니다. - -## 메타프롬프트로 애플리케이션 경계 정의하기 - -우리 데모에서는 이미 고객을 위한 이미지를 생성할 수 있습니다. 하지만 애플리케이션에 일정한 경계를 설정할 필요가 있습니다. - -예를 들어, 업무에 부적합하거나 어린이에게 적절하지 않은 이미지는 생성하지 않도록 해야 합니다. - -이를 위해 _메타프롬프트(metaprompts)_를 사용할 수 있습니다. 메타프롬프트는 생성형 AI 모델의 출력을 제어하는 텍스트 프롬프트입니다. 예를 들어, 메타프롬프트를 사용해 생성된 이미지가 업무에 적합하고 어린이에게도 적절하도록 제어할 수 있습니다. - -### 어떻게 작동하나요? - -메타프롬프트는 생성형 AI 모델의 출력을 제어하는 텍스트 프롬프트로, 일반 프롬프트 앞에 위치합니다. 모델 출력을 제어하기 위해 애플리케이션에 내장되어, 프롬프트 입력과 메타프롬프트 입력을 하나의 텍스트 프롬프트로 감쌉니다. - -메타프롬프트의 예시는 다음과 같습니다: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -이제 데모에서 메타프롬프트를 어떻게 사용하는지 살펴보겠습니다. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -위 프롬프트를 보면 생성되는 모든 이미지가 메타프롬프트를 고려하는 것을 알 수 있습니다. - -## 과제 - 학생들이 이미지 생성할 수 있도록 하기 - -수업 초반에 소개한 Edu4All을 기억하시나요? 이제 학생들이 평가 과제를 위해 이미지를 생성할 수 있도록 해봅시다. - -학생들은 평가 과제에 사용할 기념물 이미지를 생성할 것입니다. 어떤 기념물을 선택할지는 학생들의 자유이며, 다양한 맥락에 기념물을 배치하는 창의력을 발휘하도록 요청받습니다. - -## 해결책 - -가능한 해결책 중 하나는 다음과 같습니다: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## 훌륭합니다! 학습을 계속하세요 - -이번 수업을 마친 후에는 [Generative AI Learning collection](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst)을 확인해 생성형 AI 지식을 더욱 향상시키세요! - -다음 10강에서는 [로우코드로 AI 애플리케이션을 만드는 방법](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)을 다룹니다. - -**면책 조항**: -이 문서는 AI 번역 서비스 [Co-op Translator](https://github.com/Azure/co-op-translator)를 사용하여 번역되었습니다. 정확성을 위해 최선을 다하고 있으나, 자동 번역에는 오류나 부정확한 부분이 있을 수 있음을 유의하시기 바랍니다. 원문은 해당 언어의 원본 문서가 권위 있는 자료로 간주되어야 합니다. 중요한 정보의 경우 전문적인 인간 번역을 권장합니다. 본 번역 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 당사는 책임을 지지 않습니다. \ No newline at end of file + + + + diff --git a/translations/ko/12-designing-ux-for-ai-applications/README.md b/translations/ko/12-designing-ux-for-ai-applications/README.md index 34a0832cb..3bec7b5dd 100644 --- a/translations/ko/12-designing-ux-for-ai-applications/README.md +++ b/translations/ko/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# AI 애플리케이션을 위한 UX 설계 - -[![AI 애플리케이션을 위한 UX 설계](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.ko.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(위 이미지를 클릭하면 이 수업의 영상을 볼 수 있습니다)_ - -사용자 경험은 앱을 만드는 데 있어 매우 중요한 요소입니다. 사용자가 작업을 효율적으로 수행할 수 있도록 앱을 사용할 수 있어야 합니다. 효율성도 중요하지만, 모두가 사용할 수 있도록 앱을 설계해 _접근성_을 확보하는 것도 필요합니다. 이 장에서는 이 부분에 초점을 맞춰 사람들이 사용하고 싶어 하는 앱을 설계할 수 있도록 돕고자 합니다. - -## 소개 - -사용자 경험은 사용자가 특정 제품이나 서비스, 시스템, 도구, 디자인과 상호작용하고 사용하는 방식을 의미합니다. AI 애플리케이션을 개발할 때 개발자는 사용자 경험이 효과적일 뿐만 아니라 윤리적이어야 한다는 점에도 주의를 기울입니다. 이 수업에서는 사용자 요구를 충족하는 인공지능(AI) 애플리케이션을 만드는 방법을 다룹니다. - -이번 수업에서 다룰 내용은 다음과 같습니다: - -- 사용자 경험 소개 및 사용자 요구 이해 -- 신뢰와 투명성을 위한 AI 애플리케이션 설계 -- 협업과 피드백을 위한 AI 애플리케이션 설계 - -## 학습 목표 - -이 수업을 마치면 다음을 할 수 있습니다: - -- 사용자 요구를 충족하는 AI 애플리케이션을 만드는 방법 이해 -- 신뢰와 협업을 촉진하는 AI 애플리케이션 설계 - -### 사전 준비 - -시간을 내어 [사용자 경험과 디자인 사고](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst)에 대해 더 읽어보세요. - -## 사용자 경험 소개 및 사용자 요구 이해 - -가상의 교육 스타트업에서는 두 가지 주요 사용자가 있습니다. 교사와 학생입니다. 두 사용자 모두 고유한 요구가 있습니다. 사용자 중심 설계는 사용자를 최우선으로 하여 제품이 대상 사용자에게 적합하고 유익하도록 보장합니다. - -애플리케이션은 **유용하고, 신뢰할 수 있으며, 접근 가능하고, 쾌적해야** 좋은 사용자 경험을 제공할 수 있습니다. - -### 사용성 - -유용하다는 것은 애플리케이션이 의도한 목적에 맞는 기능을 갖추고 있다는 뜻입니다. 예를 들어, 채점 과정을 자동화하거나 복습용 플래시카드를 생성하는 기능이 이에 해당합니다. 채점 자동화 애플리케이션은 미리 정의된 기준에 따라 학생들의 과제를 정확하고 효율적으로 평가할 수 있어야 합니다. 마찬가지로, 복습용 플래시카드를 생성하는 애플리케이션은 관련성 있고 다양한 질문을 데이터 기반으로 만들어낼 수 있어야 합니다. - -### 신뢰성 - -신뢰할 수 있다는 것은 애플리케이션이 일관되게 오류 없이 작업을 수행할 수 있다는 의미입니다. 하지만 AI도 인간과 마찬가지로 완벽하지 않으며 오류가 발생할 수 있습니다. 애플리케이션은 오류나 예상치 못한 상황에 직면할 수 있으며, 이때는 인간의 개입이나 수정이 필요할 수 있습니다. 오류를 어떻게 처리할 것인가요? 이 수업의 마지막 부분에서는 AI 시스템과 애플리케이션이 협업과 피드백을 위해 어떻게 설계되는지 다룹니다. - -### 접근성 - -접근성은 장애가 있는 사용자를 포함해 다양한 능력을 가진 사용자 모두가 경험할 수 있도록 사용자 경험을 확장하는 것을 의미합니다. 접근성 가이드라인과 원칙을 따르면 AI 솔루션은 더 포용적이고, 사용하기 쉽고, 모든 사용자에게 유익해집니다. - -### 쾌적함 - -쾌적하다는 것은 애플리케이션을 사용하는 것이 즐겁다는 뜻입니다. 매력적인 사용자 경험은 사용자에게 긍정적인 영향을 미쳐 애플리케이션을 다시 찾게 만들고, 비즈니스 수익을 높일 수 있습니다. - -![AI에서의 UX 고려사항을 보여주는 이미지](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.ko.png) - -모든 문제를 AI로 해결할 수는 없습니다. AI는 수동 작업을 자동화하거나 사용자 경험을 개인화하는 등 사용자 경험을 보완하는 역할을 합니다. - -## 신뢰와 투명성을 위한 AI 애플리케이션 설계 - -신뢰 구축은 AI 애플리케이션 설계에서 매우 중요합니다. 신뢰는 사용자가 애플리케이션이 작업을 제대로 수행하고, 일관된 결과를 제공하며, 그 결과가 사용자가 원하는 것임을 확신하게 합니다. 이 영역에서 위험 요소는 불신과 과신입니다. 불신은 사용자가 AI 시스템을 거의 또는 전혀 신뢰하지 않아 애플리케이션을 거부하는 경우입니다. 과신은 사용자가 AI 시스템의 능력을 과대평가하여 너무 많이 신뢰하는 경우입니다. 예를 들어, 자동 채점 시스템에서 과신이 발생하면 교사가 일부 시험지를 검토하지 않아 채점 시스템이 제대로 작동하는지 확인하지 않을 수 있습니다. 이는 학생들에게 불공정하거나 부정확한 점수를 주거나 피드백과 개선 기회를 놓치는 결과를 초래할 수 있습니다. - -신뢰를 설계의 중심에 두기 위한 두 가지 방법은 설명 가능성과 제어입니다. - -### 설명 가능성 - -AI가 미래 세대에 지식을 전달하는 등 의사결정을 돕는 경우, 교사와 부모가 AI가 어떻게 결정을 내리는지 이해하는 것이 중요합니다. 이것이 설명 가능성입니다 - AI 애플리케이션이 어떻게 결정을 내리는지 이해하는 것. 설명 가능성을 위한 설계는 AI 애플리케이션이 할 수 있는 일의 예시를 추가하는 것을 포함합니다. 예를 들어, "AI 교사 시작하기" 대신 "AI를 사용해 노트를 요약하여 더 쉽게 복습하세요"와 같이 구체적으로 표현할 수 있습니다. - -![AI 애플리케이션에서 설명 가능성을 명확히 보여주는 앱 랜딩 페이지](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.ko.png) - -또 다른 예는 AI가 사용자 및 개인 데이터를 사용하는 방식입니다. 예를 들어, 학생 페르소나를 가진 사용자는 페르소나에 따라 제한이 있을 수 있습니다. AI는 질문에 대한 답을 직접 제공하지 않을 수 있지만, 사용자가 문제를 해결할 수 있도록 생각을 유도하는 데 도움을 줄 수 있습니다. - -![페르소나 기반으로 질문에 답하는 AI](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.ko.png) - -설명 가능성의 마지막 핵심 요소는 설명의 단순화입니다. 학생과 교사는 AI 전문가가 아닐 수 있으므로, 애플리케이션이 할 수 있는 일과 할 수 없는 일을 쉽게 이해할 수 있도록 단순하고 명확하게 설명해야 합니다. - -![AI 기능에 대한 단순화된 설명](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.ko.png) - -### 제어 - -생성형 AI는 AI와 사용자 간의 협업을 만듭니다. 예를 들어, 사용자가 다양한 결과를 위해 프롬프트를 수정할 수 있습니다. 또한 출력이 생성된 후에는 사용자가 결과를 수정할 수 있어야 하며, 이를 통해 제어감을 느낄 수 있습니다. 예를 들어 Bing을 사용할 때는 형식, 톤, 길이에 따라 프롬프트를 조정할 수 있습니다. 또한 출력에 변경 사항을 추가하고 수정할 수 있습니다. - -![프롬프트와 출력을 수정할 수 있는 Bing 검색 결과](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.ko.png) - -Bing의 또 다른 기능은 사용자가 AI가 사용하는 데이터에 대해 옵트인 및 옵트아웃할 수 있는 기능입니다. 학교 애플리케이션의 경우, 학생은 자신의 노트뿐만 아니라 교사의 자료도 복습 자료로 사용할 수 있습니다. - -![프롬프트와 출력을 수정할 수 있는 Bing 검색 결과](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.ko.png) - -> AI 애플리케이션을 설계할 때는 사용자가 AI의 능력을 과신하지 않도록 의도적으로 설계하는 것이 중요합니다. 이를 위해 프롬프트와 결과 사이에 마찰을 만들어 사용자가 이것이 AI이지 인간이 아님을 상기시키는 방법이 있습니다. - -## 협업과 피드백을 위한 AI 애플리케이션 설계 - -앞서 언급했듯이 생성형 AI는 사용자와 AI 간의 협업을 만듭니다. 대부분의 상호작용은 사용자가 프롬프트를 입력하고 AI가 출력을 생성하는 방식입니다. 만약 출력이 잘못되었다면 어떻게 할까요? 오류가 발생하면 애플리케이션은 어떻게 처리할까요? AI가 사용자를 탓하거나 오류를 설명하는 데 시간을 할애할까요? - -AI 애플리케이션은 피드백을 주고받을 수 있도록 설계되어야 합니다. 이는 AI 시스템 개선에 도움을 줄 뿐만 아니라 사용자와의 신뢰를 쌓는 데도 중요합니다. 피드백 루프를 설계에 포함시키는 한 가지 예는 출력에 대해 간단한 엄지척 또는 엄지 내림 버튼을 제공하는 것입니다. - -또 다른 방법은 시스템의 기능과 한계를 명확히 전달하는 것입니다. 사용자가 AI의 능력을 벗어난 요청을 할 때 이를 처리할 방법도 마련해야 합니다. 아래 예시를 참고하세요. - -![피드백 제공 및 오류 처리](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.ko.png) - -시스템 오류는 AI 범위를 벗어난 정보가 필요하거나 사용자가 생성할 수 있는 질문/과목 요약 수에 제한이 있을 때 흔히 발생합니다. 예를 들어, 역사와 수학 데이터로만 학습된 AI 애플리케이션은 지리 관련 질문을 처리하지 못할 수 있습니다. 이를 완화하기 위해 AI 시스템은 다음과 같이 응답할 수 있습니다: "죄송합니다, 본 제품은 다음 과목 데이터로 학습되었습니다....., 요청하신 질문에 답변할 수 없습니다." - -AI 애플리케이션은 완벽하지 않으므로 실수를 할 수밖에 없습니다. 애플리케이션을 설계할 때는 사용자 피드백과 오류 처리를 간단하고 이해하기 쉽게 만들 공간을 마련해야 합니다. - -## 과제 - -지금까지 만든 AI 앱 중 하나를 선택해 아래 단계를 앱에 적용해 보세요: - -- **쾌적함:** 앱을 더 쾌적하게 만들려면 어떻게 해야 할까요? 설명을 충분히 추가하고 있나요? 사용자가 탐색하도록 유도하고 있나요? 오류 메시지는 어떻게 작성하고 있나요? - -- **사용성:** 웹 앱을 만들 때 마우스와 키보드 모두로 탐색할 수 있도록 하세요. - -- **신뢰와 투명성:** AI와 그 출력물을 완전히 신뢰하지 말고, 출력을 검증할 사람을 프로세스에 포함하는 방법을 고려하세요. 또한 신뢰와 투명성을 달성할 다른 방법도 고민하고 구현하세요. - -- **제어:** 사용자가 애플리케이션에 제공하는 데이터를 제어할 수 있도록 하세요. AI 애플리케이션에서 데이터 수집에 대해 사용자가 옵트인 및 옵트아웃할 수 있는 방법을 구현하세요. - -## 학습 계속하기! - -이 수업을 마친 후에는 [Generative AI 학습 컬렉션](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst)을 확인해 생성형 AI 지식을 계속 향상시키세요! - -13강으로 넘어가 [AI 애플리케이션 보안](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)에 대해 알아봅시다! - -**면책 조항**: -이 문서는 AI 번역 서비스 [Co-op Translator](https://github.com/Azure/co-op-translator)를 사용하여 번역되었습니다. 정확성을 위해 최선을 다하고 있으나, 자동 번역에는 오류나 부정확한 부분이 있을 수 있음을 유의하시기 바랍니다. 원문은 해당 언어의 원본 문서가 권위 있는 자료로 간주되어야 합니다. 중요한 정보의 경우 전문적인 인간 번역을 권장합니다. 본 번역 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 당사는 책임을 지지 않습니다. \ No newline at end of file + + + diff --git a/translations/ko/README.md b/translations/ko/README.md index 07c49495a..01737bcbf 100644 --- a/translations/ko/README.md +++ b/translations/ko/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.ko.png) - -### 생성형 AI 애플리케이션 개발을 시작하는 데 필요한 모든 것을 가르치는 21개의 강의 - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 다국어 지원 - -#### GitHub Action을 통해 지원 (자동화 및 항상 최신 상태 유지) - -[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](./README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md) - -# Generative AI for Beginners (버전 3) - 강의 과정 - -Microsoft Cloud Advocates가 제공하는 21개의 강의를 통해 생성형 AI 애플리케이션 개발의 기본을 배워보세요. - -## 🌱 시작하기 - -이 과정은 총 21개의 강의로 구성되어 있습니다. 각 강의는 독립적인 주제를 다루므로 원하는 곳부터 시작하세요! - -강의는 "Learn" 강의와 "Build" 강의로 구분됩니다. "Learn" 강의는 생성형 AI 개념을 설명하고, "Build" 강의는 개념과 함께 가능할 경우 **Python**과 **TypeScript** 코드 예제를 제공합니다. - -.NET 개발자라면 [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)를 확인해 보세요! - -각 강의에는 추가 학습 도구가 포함된 "Keep Learning" 섹션도 포함되어 있습니다. - -## 필요한 것 -### 이 과정의 코드를 실행하려면 다음 중 하나를 사용할 수 있습니다: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **강의:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **강의:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **강의:** "oai-assignment" - -- Python 또는 TypeScript의 기본 지식이 있으면 도움이 됩니다 - \*완전 초보자는 이 [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) 및 [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) 강의를 참고하세요 -- 이 전체 저장소를 자신의 GitHub 계정으로 [포크](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst)할 GitHub 계정 - -개발 환경 설정을 돕기 위해 **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** 강의를 준비했습니다. - -나중에 쉽게 찾을 수 있도록 이 저장소에 [별(🌟)을 눌러주세요](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst). - -## 🧠 배포할 준비가 되셨나요? - -더 고급 코드 샘플을 원하시면, **Python**과 **TypeScript**로 된 [생성형 AI 코드 샘플 모음](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst)을 확인해 보세요. - -## 🗣️ 다른 학습자들과 만나고 지원 받기 - -이 과정을 수강하는 다른 학습자들과 교류하고 지원을 받으려면 [공식 Azure AI Foundry Discord 서버](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst)에 참여하세요. - -질문을 하거나 제품 피드백을 공유하려면 GitHub의 [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum)을 이용하세요. - -## 🚀 스타트업을 시작하시나요? - -[Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst)에 가입하면 **무료 OpenAI 크레딧**과 Azure OpenAI 서비스를 통해 OpenAI 모델에 접근할 수 있는 **최대 15만 달러 상당의 Azure 크레딧**을 받을 수 있습니다. - -## 🙏 도움을 주시겠어요? - -제안 사항이 있거나 오타나 코드 오류를 발견하셨다면 [이슈를 등록](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst)하거나 [풀 리퀘스트를 만들어 주세요](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst). - -## 📂 각 강의에는 다음이 포함됩니다: - -- 주제에 대한 짧은 영상 소개 -- README에 작성된 강의 내용 -- Azure OpenAI 및 OpenAI API를 지원하는 Python과 TypeScript 코드 샘플 -- 학습을 이어갈 수 있는 추가 자료 링크 - -## 🗃️ 강의 목록 - -| # | **강의 링크** | **설명** | **영상** | **추가 학습** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** 개발 환경 설정 방법 | 곧 영상 제공 예정 | [더 알아보기](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introduction to Generative AI and LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** 생성형 AI와 대형 언어 모델(LLM)이 무엇인지 이해하기 | [영상](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [더 알아보기](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Exploring and comparing different LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** 사용 사례에 맞는 적합한 모델 선택 방법 | [영상](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [더 알아보기](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Using Generative AI Responsibly](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** 생성형 AI 애플리케이션을 책임감 있게 개발하는 방법 | [영상](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [더 알아보기](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Understanding Prompt Engineering Fundamentals](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** 실습을 통한 프롬프트 엔지니어링 기본기 | [영상](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [더 알아보기](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Creating Advanced Prompts](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** 프롬프트 결과를 향상시키는 고급 프롬프트 기법 적용법 | [영상](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [더 알아보기](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [텍스트 생성 애플리케이션 구축](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **구축:** Azure OpenAI / OpenAI API를 사용한 텍스트 생성 앱 | [Video](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [채팅 애플리케이션 구축](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **구축:** 채팅 애플리케이션을 효율적으로 개발하고 통합하는 기법 | [Video](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [검색 앱 및 벡터 데이터베이스 구축](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **구축:** 임베딩을 활용한 데이터 검색 애플리케이션 | [Video](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [이미지 생성 애플리케이션 구축](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **구축:** 이미지 생성 애플리케이션 | [Video](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [로우코드 AI 애플리케이션 구축](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **구축:** 로우코드 도구를 활용한 생성 AI 애플리케이션 | [Video](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Function Calling을 활용한 외부 애플리케이션 통합](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **구축:** function calling이란 무엇이며 애플리케이션에서의 활용 사례 | [Video](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [AI 애플리케이션 UX 디자인](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **학습:** 생성 AI 애플리케이션 개발 시 UX 디자인 원칙 적용 방법 | [Video](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [생성 AI 애플리케이션 보안](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **학습:** AI 시스템에 대한 위협과 위험, 그리고 이를 보호하는 방법 | [Video](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [생성 AI 애플리케이션 라이프사이클](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **학습:** LLM 라이프사이클과 LLMOps 관리를 위한 도구와 지표 | [Video](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) 및 벡터 데이터베이스](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **구축:** RAG 프레임워크를 사용해 벡터 데이터베이스에서 임베딩을 검색하는 애플리케이션 | [Video](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [오픈 소스 모델과 Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **구축:** Hugging Face에서 제공하는 오픈 소스 모델을 활용한 애플리케이션 | [Video](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI 에이전트](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **구축:** AI 에이전트 프레임워크를 활용한 애플리케이션 | [Video](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [LLM 미세 조정](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **학습:** LLM 미세 조정의 개념, 필요성, 그리고 방법 | [Video](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [SLM을 활용한 구축](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **학습:** Small Language Models를 활용한 구축의 장점 | 곧 영상 제공 예정 | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Mistral 모델을 활용한 구축](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **학습:** Mistral 패밀리 모델의 특징과 차이점 | 곧 영상 제공 예정 | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Meta 모델을 활용한 구축](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **학습:** Meta 패밀리 모델의 특징과 차이점 | 곧 영상 제공 예정 | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 특별 감사의 말씀 - -모든 GitHub Actions와 워크플로우를 만들어 주신 [**John Aziz**](https://www.linkedin.com/in/john0isaac/)께 특별히 감사드립니다. - -각 강의에서 학습자와 코드 경험을 향상시키기 위해 핵심 기여를 해주신 [**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/)께도 감사드립니다. - -## 🎒 기타 강의 - -저희 팀은 다양한 강의를 제작하고 있습니다! 아래를 확인해 보세요: - -- [**NEW** 초보자를 위한 Model Context Protocol](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [초보자를 위한 AI 에이전트](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [.NET을 활용한 초보자용 생성 AI](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [JavaScript를 활용한 초보자용 생성 AI](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [초보자를 위한 머신러닝](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [초보자를 위한 데이터 과학](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [초보자를 위한 AI](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [초보자를 위한 사이버보안](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [초보자를 위한 웹 개발](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [초보자를 위한 IoT](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [초보자를 위한 XR 개발](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI 페어 프로그래밍을 위한 GitHub Copilot 마스터하기](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [C#/.NET 개발자를 위한 GitHub Copilot 마스터하기](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [나만의 Copilot 모험 선택하기](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**면책 조항**: -이 문서는 AI 번역 서비스 [Co-op Translator](https://github.com/Azure/co-op-translator)를 사용하여 번역되었습니다. 정확성을 위해 노력하고 있으나, 자동 번역에는 오류나 부정확한 부분이 있을 수 있음을 유의하시기 바랍니다. 원문은 해당 언어의 원본 문서가 권위 있는 출처로 간주되어야 합니다. 중요한 정보의 경우 전문적인 인간 번역을 권장합니다. 본 번역 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 당사는 책임을 지지 않습니다. \ No newline at end of file + + + + diff --git a/translations/mo/00-course-setup/01-setup-cloud.md b/translations/mo/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..d5c22e4d9 --- /dev/null +++ b/translations/mo/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/mo/00-course-setup/02-setup-local.md b/translations/mo/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..6c2339c68 --- /dev/null +++ b/translations/mo/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/mo/00-course-setup/03-providers.md b/translations/mo/00-course-setup/03-providers.md new file mode 100644 index 000000000..3bc0465b1 --- /dev/null +++ b/translations/mo/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/mo/00-course-setup/README.md b/translations/mo/00-course-setup/README.md index 15b178e5d..414c0a588 100644 --- a/translations/mo/00-course-setup/README.md +++ b/translations/mo/00-course-setup/README.md @@ -1,230 +1,12 @@ - -# 開始這門課程 - -我們非常期待你開始這門課程,看看你會被生成式 AI 啟發創造出什麼! - -為了確保你的學習順利,這頁面將說明設定步驟、技術需求,以及需要幫助時該去哪裡尋求協助。 - -## 設定步驟 - -要開始這門課程,你需要完成以下步驟。 - -### 1. Fork 這個 Repo - -將[整個 repo Fork](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst)到你自己的 GitHub 帳號,這樣你才能修改任何程式碼並完成挑戰。你也可以[為這個 repo 加星號 (🌟)](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst),方便日後找到它和相關的 repo。 - -### 2. 建立 codespace - -為避免執行程式碼時出現相依性問題,我們建議在[GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst)中執行這門課程。 - -你可以在你 fork 後的 repo 中選擇 `Code` 選項,然後選擇 **Codespaces** 來建立。 - -![對話框顯示建立 codespace 的按鈕](../../../00-course-setup/images/who-will-pay.webp) - -### 3. 儲存你的 API 金鑰 - -在開發任何應用程式時,保護你的 API 金鑰安全非常重要。我們建議不要直接將 API 金鑰寫在程式碼中。若將這些資訊提交到公開的儲存庫,可能會導致安全問題,甚至被不法人士濫用而產生額外費用。 - -以下是如何為 Python 建立 `.env` 檔案並加入 `GITHUB_TOKEN` 的逐步教學: - -1. **前往你的專案目錄**:打開終端機或命令提示字元,切換到你想建立 `.env` 檔案的專案根目錄。 - - ```bash - cd path/to/your/project - ``` - -2. **建立 `.env` 檔案**:使用你喜歡的文字編輯器建立一個名為 `.env` 的新檔案。如果使用命令列,可以用 `touch`(Unix 系統)或 `echo`(Windows): - - Unix 系統: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **編輯 `.env` 檔案**:用文字編輯器(例如 VS Code、Notepad++ 或其他)打開 `.env` 檔案,加入以下內容,將 `your_github_token_here` 替換成你的 GitHub token: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **儲存檔案**:儲存並關閉文字編輯器。 - -5. **安裝 `python-dotenv`**:如果還沒安裝,你需要安裝 `python-dotenv` 套件,讓 Python 應用程式能從 `.env` 檔案讀取環境變數。可用 `pip` 安裝: - - ```bash - pip install python-dotenv - ``` - -6. **在 Python 腳本中載入環境變數**:在你的 Python 程式中,使用 `python-dotenv` 套件載入 `.env` 檔案中的環境變數: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -完成以上步驟後,你就成功建立了 `.env` 檔案,加入 GitHub token,並在 Python 應用程式中載入它。 - -## 如何在本機電腦上執行 - -要在本機電腦執行程式碼,你需要先安裝某個版本的[Python](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst)。 - -接著,你需要將儲存庫複製(clone)下來: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -完成檢出後,就可以開始使用了! - -## 選用步驟 - -### 安裝 Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) 是一個輕量級的安裝程式,用來安裝 [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst)、Python 以及一些套件。 - -Conda 是一個套件管理工具,可以輕鬆設定和切換不同的 Python [**虛擬環境**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst)和套件。它也方便安裝那些無法用 `pip` 取得的套件。 - -你可以參考[Miniconda 安裝指南](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst)來完成安裝。 - -安裝好 Miniconda 後,如果還沒複製[儲存庫](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst),請先複製。 - -接著,你需要建立虛擬環境。使用 Conda 的話,請建立一個環境設定檔(_environment.yml_)。如果你是用 Codespaces,請在 `.devcontainer` 目錄下建立,也就是 `.devcontainer/environment.yml`。 - -請將以下內容填入你的環境設定檔: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -如果使用 conda 遇到錯誤,可以在終端機手動安裝 Microsoft AI 函式庫,指令如下: - -``` -conda install -c microsoft azure-ai-ml -``` - -環境設定檔中指定了我們需要的相依套件。`` 是你想用的 Conda 環境名稱,`` 是你想使用的 Python 版本,例如 `3` 是最新的主要版本。 - -完成後,你可以在命令列/終端機執行以下指令來建立 Conda 環境: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -如果遇到問題,請參考[Conda 環境指南](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst)。 - -### 使用 Visual Studio Code 搭配 Python 支援擴充功能 - -我們建議使用[Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst)編輯器,並安裝[Python 支援擴充功能](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst)來進行這門課程。不過這只是建議,並非硬性要求。 - -> **注意**:在 VS Code 中開啟課程儲存庫時,你可以選擇在容器中設定專案。這是因為課程儲存庫中有[特殊的 `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst)目錄。後面會再說明。 - -> **注意**:當你複製並在 VS Code 開啟目錄時,它會自動建議你安裝 Python 支援擴充功能。 - -> **注意**:如果 VS Code 建議你重新在容器中開啟儲存庫,請拒絕此請求,以便使用本機安裝的 Python 版本。 - -### 在瀏覽器中使用 Jupyter - -你也可以直接在瀏覽器中使用 [Jupyter 環境](https://jupyter.org?WT.mc_id=academic-105485-koreyst)來開發。無論是經典 Jupyter 還是 [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst),都提供了自動補全、程式碼高亮等良好開發體驗。 - -要在本機啟動 Jupyter,請打開終端機/命令列,切換到課程目錄,執行: - -```bash -jupyter notebook -``` - -或 - -```bash -jupyterhub -``` - -這會啟動一個 Jupyter 實例,命令列視窗會顯示可用的存取 URL。 - -打開該 URL 後,你會看到課程大綱,並能瀏覽任何 `*.ipynb` 檔案,例如 `08-building-search-applications/python/oai-solution.ipynb`。 - -### 在容器中執行 - -另一種選擇是使用[容器](../../../00-course-setup/),而非在本機或 Codespace 設定環境。課程儲存庫中的特殊 `.devcontainer` 資料夾讓 VS Code 可以在容器中設定專案。 - -在 Codespaces 以外的環境,這需要安裝 Docker,且過程較為繁複,因此我們建議只有有容器經驗的人使用。 - -使用 GitHub Codespaces 時,保護 API 金鑰安全的最佳方式之一是使用 Codespace Secrets。請參考[Codespaces 秘密管理](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst)指南了解更多。 - -## 課程內容與技術需求 - -本課程包含 6 個概念課程和 6 個程式實作課程。 - -程式實作課程使用 Azure OpenAI Service。你需要有 Azure OpenAI 服務的存取權和 API 金鑰才能執行程式碼。你可以透過[完成此申請](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst)來申請存取權。 - -在等待申請審核期間,每個程式實作課程也包含一個 `README.md` 檔案,你可以在裡面查看程式碼和輸出結果。 - -## 第一次使用 Azure OpenAI Service - -如果你是第一次使用 Azure OpenAI 服務,請參考這份指南,了解如何[建立並部署 Azure OpenAI Service 資源](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst)。 - -## 第一次使用 OpenAI API - -如果你是第一次使用 OpenAI API,請參考這份指南,了解如何[建立並使用介面](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst)。 - -## 認識其他學員 - -我們在官方的 [AI Community Discord 伺服器](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst)中建立了頻道,方便你認識其他學員。這是與志同道合的創業家、開發者、學生,以及所有想在生成式 AI 領域提升自我的人交流的好地方。 - -[![加入 discord 頻道](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -專案團隊也會在這個 Discord 伺服器上協助學員。 - -## 貢獻 - -這門課程是開源計畫。如果你發現改進空間或問題,請建立[Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst)或回報[GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst)。 - -專案團隊會追蹤所有貢獻。參與開源是建立生成式 AI 職涯的絕佳方式。 - -大多數貢獻需要你同意一份貢獻者授權協議 (CLA),聲明你有權利且確實授權我們使用你的貢獻。詳情請參閱[CLA,貢獻者授權協議網站](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst)。 - -重要提醒:翻譯本儲存庫的文字時,請勿使用機器翻譯。我們會透過社群驗證翻譯品質,因此請只在你熟悉的語言中自願參與翻譯。 - -當你提交 pull request 時,CLA-bot 會自動判斷你是否需要提供 CLA,並在 PR 上標註(例如標籤、留言)。請依照機器人的指示操作。你只需在所有使用我們 CLA 的儲存庫中執行一次。 - -本專案已採用[Microsoft 開源行為準則](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst)。欲了解更多,請閱讀行為準則常見問題,或透過 [Email opencode](opencode@microsoft.com) 聯絡我們。 - -## 開始吧 - -既然你已完成完成這門課程所需的步驟,現在就從[生成式 AI 與大型語言模型的介紹](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst)開始吧! - -**免責聲明**: -本文件係使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於確保準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或誤釋負責。 \ No newline at end of file + + + + diff --git a/translations/mo/00-course-setup/SETUP.md b/translations/mo/00-course-setup/SETUP.md deleted file mode 100644 index 399fc5426..000000000 --- a/translations/mo/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# 設定您的開發環境 - -我們使用一個包含通用執行環境的[開發容器](https://containers.dev?WT.mc_id=academic-105485-koreyst)來設置此儲存庫和課程,支援 Python3、.NET、Node.js 及 Java 開發。相關設定定義在位於此儲存庫根目錄 `.devcontainer/` 資料夾中的 `devcontainer.json` 檔案。 - -要啟動開發容器,請在[GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst)(雲端執行環境)或[Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst)(本地裝置執行環境)中啟動。詳細了解 VS Code 中開發容器的運作方式,請參閱[此文件](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst)。 - -> [!TIP] -> 我們建議使用 GitHub Codespaces 以快速且輕鬆地開始。它為個人帳戶提供慷慨的[免費使用額度](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst)。您可以設定[逾時](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst)來停止或刪除非活動的 codespaces,以最大化使用額度。 - -## 1. 執行作業 - -每堂課都會有 _可選_ 的作業,可能會以一種或多種程式語言提供,包括:Python、.NET/C#、Java 和 JavaScript/TypeScript。本節提供執行這些作業的一般指引。 - -### 1.1 Python 作業 - -Python 作業會以應用程式(`.py` 檔案)或 Jupyter 筆記本(`.ipynb` 檔案)形式提供。 -- 若要執行筆記本,請在 Visual Studio Code 中開啟,然後點選右上角的 _選擇核心_,選擇預設的 Python 3 選項。接著即可使用 _全部執行_ 來執行筆記本。 -- 若要從命令列執行 Python 應用程式,請依照作業特定指示,確保選擇正確的檔案並提供所需參數。 - -## 2. 設定服務提供者 - -作業**可能**會設定為透過支援的服務提供者(如 OpenAI、Azure 或 Hugging Face)連接一個或多個大型語言模型(LLM)部署。這些提供一個可程式化存取的 _託管端點_(API),需使用正確的認證(API 金鑰或令牌)。本課程中,我們會討論以下提供者: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst),包含多種模型,包括核心 GPT 系列。 - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst),專注於企業級的 OpenAI 模型。 - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst),提供開源模型與推理伺服器。 - -**您需要使用自己的帳戶來完成這些練習**。作業為可選,您可以根據興趣選擇設定其中一個、全部或不設定任何提供者。以下是註冊的相關說明: - -| 註冊 | 費用 | API 金鑰 | Playground | 備註 | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst) | [價格](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst) | [專案金鑰](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [無需程式碼,網頁版](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | 多種模型可用 | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst) | [價格](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst) | [SDK 快速入門](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Studio 快速入門](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [需事先申請存取權](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) | -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [價格](https://huggingface.co/pricing) | [存取令牌](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst) | [Hugging Chat 模型有限](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -請依照以下指示,為此儲存庫設定不同的提供者。需要特定提供者的作業,其檔名會包含以下標籤之一: - - `aoai` - 需要 Azure OpenAI 端點與金鑰 - - `oai` - 需要 OpenAI 端點與金鑰 - - `hf` - 需要 Hugging Face 令牌 - -您可以設定一個、全部或不設定任何提供者。缺少認證的相關作業將會出錯。 - -### 2.1. 建立 `.env` 檔案 - -假設您已閱讀上述指引,並已在相關提供者註冊,取得所需的認證(API_KEY 或令牌)。若是 Azure OpenAI,則假設您也已部署有效的 Azure OpenAI 服務(端點),並至少部署一個用於聊天完成的 GPT 模型。 - -接下來請設定您的**本地環境變數**,步驟如下: - -1. 在根目錄尋找 `.env.copy` 檔案,內容應類似以下: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. 使用以下指令將該檔案複製為 `.env`。此檔案已被加入 `.gitignore`,可確保秘密資訊安全。 - - ```bash - cp .env.copy .env - ``` - -3. 按下一節說明,填入對應的值(替換 `=` 右側的佔位符)。 - -3. (選擇性)若您使用 GitHub Codespaces,可選擇將環境變數儲存為與此儲存庫關聯的 _Codespaces secrets_。如此一來,您就不必設定本地 `.env` 檔案。**但請注意,此選項僅適用於 GitHub Codespaces。** 若使用 Docker Desktop,仍需設定 `.env` 檔案。 - -### 2.2. 填寫 `.env` 檔案 - -快速了解變數名稱及其代表意義: - -| 變數名稱 | 說明 | -| :--- | :--- | -| HUGGING_FACE_API_KEY | 您在個人資料中設定的使用者存取令牌 | -| OPENAI_API_KEY | 用於非 Azure OpenAI 端點的授權金鑰 | -| AZURE_OPENAI_API_KEY | 用於 Azure OpenAI 服務的授權金鑰 | -| AZURE_OPENAI_ENDPOINT | Azure OpenAI 資源的部署端點 | -| AZURE_OPENAI_DEPLOYMENT | _文字生成_ 模型的部署端點 | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | _文字嵌入_ 模型的部署端點 | -| | | - -注意:最後兩個 Azure OpenAI 變數分別對應聊天完成(文字生成)和向量搜尋(嵌入)的預設模型。設定說明會在相關作業中提供。 - -### 2.3 從 Azure 入口網站設定 - -Azure OpenAI 的端點與金鑰可在[Azure 入口網站](https://portal.azure.com?WT.mc_id=academic-105485-koreyst)找到,請從這裡開始。 - -1. 前往[Azure 入口網站](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -2. 點選側邊欄(左側選單)中的 **Keys and Endpoint** 選項。 -3. 點選 **Show Keys**,您會看到 KEY 1、KEY 2 和 Endpoint。 -4. 將 KEY 1 的值用於 `AZURE_OPENAI_API_KEY`。 -5. 將 Endpoint 的值用於 `AZURE_OPENAI_ENDPOINT`。 - -接著,我們需要取得已部署模型的端點。 - -1. 點選 Azure OpenAI 資源側邊欄的 **Model deployments** 選項。 -2. 在目的頁面點選 **Manage Deployments**。 - -這會帶您到 Azure OpenAI Studio 網站,接下來會找到其他所需的值。 - -### 2.4 從 Studio 設定 Azure - -1. 依上述說明,從您的資源進入 [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst)。 -2. 點選左側邊欄的 **Deployments** 標籤,查看目前已部署的模型。 -3. 若尚未部署所需模型,請使用 **Create new deployment** 來部署。 -4. 您需要一個 _文字生成_ 模型,我們推薦:**gpt-35-turbo**。 -5. 您需要一個 _文字嵌入_ 模型,我們推薦:**text-embedding-ada-002**。 - -接著更新環境變數,反映所使用的 _部署名稱_。通常部署名稱與模型名稱相同,除非您有特別更改。例如,您可能會有: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**完成後別忘了儲存 `.env` 檔案**。儲存後即可關閉檔案,回到執行筆記本的指示。 - -### 2.5 從個人資料設定 OpenAI - -您的 OpenAI API 金鑰可在您的[OpenAI 帳戶](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst)中找到。若尚未擁有帳戶,請註冊並建立 API 金鑰。取得金鑰後,請將其填入 `.env` 檔案中的 `OPENAI_API_KEY` 變數。 - -### 2.6 從個人資料設定 Hugging Face - -您的 Hugging Face 令牌可在個人資料的[存取令牌](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst)中找到。請勿公開或分享這些令牌。建議為此專案建立新的令牌,並將其複製到 `.env` 檔案中的 `HUGGING_FACE_API_KEY` 變數。_注意:_ 這技術上不是 API 金鑰,但用於認證,因此為保持一致性,我們仍使用此命名慣例。 - -**免責聲明**: -本文件係使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於確保準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或誤釋負責。 \ No newline at end of file diff --git a/translations/mo/04-prompt-engineering-fundamentals/README.md b/translations/mo/04-prompt-engineering-fundamentals/README.md index 1b044c990..7015ce3df 100644 --- a/translations/mo/04-prompt-engineering-fundamentals/README.md +++ b/translations/mo/04-prompt-engineering-fundamentals/README.md @@ -1,458 +1,15 @@ - -# Prompt Engineering Fundamentals - -[![Prompt Engineering Fundamentals](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.mo.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## 介紹 -本單元涵蓋在生成式 AI 模型中創建有效提示的基本概念與技巧。你如何撰寫給大型語言模型(LLM)的提示同樣重要。精心設計的提示能帶來更高品質的回應。但到底什麼是「提示」和「提示工程」?我該如何改進送給 LLM 的提示輸入?這些問題將在本章及下一章中嘗試解答。 - -生成式 AI 能根據使用者需求創造新內容(例如文字、圖片、音訊、程式碼等)。它透過像 OpenAI 的 GPT(「生成式預訓練轉換器」)系列這類大型語言模型來實現,這些模型經過自然語言與程式碼的訓練。 - -使用者現在可以用熟悉的對話方式與這些模型互動,無需任何技術專業或訓練。這些模型是基於提示的——使用者輸入文字(提示),模型回傳 AI 回應(完成)。使用者可以透過多輪對話不斷「與 AI 聊天」,逐步調整提示,直到回應符合預期。 - -「提示」成為生成式 AI 應用的主要程式介面,告訴模型該做什麼,並影響回應品質。「提示工程」是一個快速成長的研究領域,專注於設計與優化提示,以大規模提供穩定且高品質的回應。 - -## 學習目標 - -在本課程中,我們將了解什麼是提示工程、為何重要,以及如何為特定模型和應用目標打造更有效的提示。我們會掌握提示工程的核心概念與最佳實務,並認識一個互動式 Jupyter 筆記本「沙盒」環境,能讓我們將這些概念應用於實例。 - -完成本課程後,我們將能夠: - -1. 解釋什麼是提示工程及其重要性。 -2. 描述提示的組成部分及其用途。 -3. 學習提示工程的最佳實務與技巧。 -4. 利用 OpenAI 端點將所學技巧應用於實例。 - -## 關鍵詞 - -提示工程:設計與優化輸入,以引導 AI 模型產生期望輸出的實務。 -分詞(Tokenization):將文字轉換成模型能理解與處理的較小單位(稱為 token)的過程。 -指令調校大型語言模型(Instruction-Tuned LLMs):經過特定指令微調的大型語言模型,以提升回應的準確性與相關性。 - -## 學習沙盒 - -提示工程目前更像是一門藝術而非科學。提升直覺的最佳方式是多加練習,採用結合應用領域專業知識、推薦技巧與模型特定優化的試錯方法。 - -本課程附帶的 Jupyter 筆記本提供一個沙盒環境,讓你能隨時嘗試所學內容,或作為課程結尾的程式挑戰。執行練習需要: - -1. **Azure OpenAI API 金鑰**——已部署 LLM 的服務端點。 -2. **Python 執行環境**——用於執行筆記本。 -3. **本地環境變數**——請先完成[SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst)步驟以準備好環境。 - -筆記本內建入門練習,但鼓勵你自行新增 _Markdown_(說明)與 _Code_(提示請求)區塊,嘗試更多範例或想法,培養提示設計的直覺。 - -## 圖解指南 - -想在深入學習前先掌握本課程涵蓋的全貌嗎?請參考這份圖解指南,讓你了解主要主題及每個主題的關鍵重點。課程路線圖將帶你從理解核心概念與挑戰,進而學習相關提示工程技巧與最佳實務。請注意,本指南中的「進階技巧」部分是指本課程下一章節的內容。 - -![Illustrated Guide to Prompt Engineering](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.mo.png) - -## 我們的新創公司 - -現在,讓我們談談 _本主題_ 如何與我們的新創使命相關——[將 AI 創新帶入教育](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst)。我們希望打造 AI 驅動的 _個人化學習_ 應用,思考不同使用者如何「設計」提示: - -- **管理者** 可能會請 AI _分析課程資料以找出內容缺口_。AI 可總結結果或用程式碼視覺化。 -- **教育者** 可能會請 AI _為特定受眾與主題生成教案_。AI 可依指定格式建立個人化計畫。 -- **學生** 可能會請 AI _輔導他們學習困難科目_。AI 現在能依學生程度提供課程、提示與範例。 - -這只是冰山一角。請參考 [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst)——由教育專家策劃的開源提示庫,了解更多可能性!_試著在沙盒或 OpenAI Playground 執行這些提示,看看結果如何!_ - - - -## 什麼是提示工程? - -我們從定義 **提示工程** 開始,指的是為特定應用目標與模型 _設計與優化_ 文字輸入(提示),以提供穩定且高品質回應(完成)的過程。我們可以將其視為兩步驟: - -- 為特定模型與目標 _設計_ 初始提示 -- 反覆 _優化_ 提示以提升回應品質 - -這必然是一個試錯過程,需要使用者的直覺與努力才能達到最佳結果。那為什麼它重要?要回答這個問題,我們先了解三個概念: - -- _分詞_ = 模型如何「看見」提示 -- _基礎 LLM_ = 基礎模型如何「處理」提示 -- _指令調校 LLM_ = 模型如何「理解任務」 - -### 分詞 - -LLM 將提示視為 _token 序列_,不同模型(或同一模型的不同版本)可能會以不同方式分詞同一提示。由於 LLM 是以 token(非原始文字)訓練,提示的分詞方式直接影響生成回應的品質。 - -想了解分詞如何運作,可以試試像 [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) 這類工具。將你的提示貼上,觀察它如何轉換成 token,特別注意空白字元與標點符號的處理方式。此範例使用較舊的 LLM(GPT-3),用較新模型測試可能會有不同結果。 - -![Tokenization](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.mo.png) - -### 概念:基礎模型 - -提示分詞後,["基礎 LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst)(或稱基礎模型)的主要功能是預測序列中的下一個 token。由於 LLM 以龐大文字資料集訓練,能掌握 token 間的統計關係,並以一定信心做出預測。請注意,它們不理解提示或 token 的 _意義_,只看到可「完成」的模式,並持續預測直到使用者中止或達成預設條件。 - -想看看基於提示的完成如何運作?將上述提示輸入 Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst)(預設設定),系統會將提示視為資訊請求,你應該會看到符合此情境的完成結果。 - -但如果使用者想看到符合特定條件或任務目標的內容呢?這時就需要 _指令調校_ LLM。 - -![Base LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.mo.png) - -### 概念:指令調校 LLM - -[指令調校 LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) 是在基礎模型上,透過範例或輸入/輸出對(例如多輪「訊息」)進行微調,這些範例包含明確指令,AI 回應會嘗試遵循指令。 - -此方法使用人類反饋強化學習(RLHF)等技術,訓練模型 _遵循指令_ 並 _從反饋學習_,使回應更適合實際應用,且更符合使用者目標。 - -讓我們試試看——回到上述提示,將 _系統訊息_ 改為以下指令作為上下文: - -> _為二年級學生摘要你所提供的內容。結果保持一段文字,並列出 3-5 個重點。_ - -你會看到結果已調整為符合目標與格式。教育者現在可以直接將此回應用於該堂課的簡報中。 - -![Instruction Tuned LLM Chat Completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.mo.png) - -## 為什麼我們需要提示工程? - -既然了解 LLM 如何處理提示,接下來談談 _為何_ 需要提示工程。原因在於目前的 LLM 存在多項挑戰,使得 _可靠且一致的完成_ 不易達成,除非投入提示建構與優化的努力。例如: - -1. **模型回應具有隨機性。** _相同提示_ 在不同模型或版本間可能產生不同回應,甚至同一模型在不同時間也可能有差異。_提示工程技巧能幫助我們透過更好的護欄減少這些變異_。 - -1. **模型可能捏造回應。** 模型是以 _龐大但有限_ 的資料集預訓練,對訓練範圍外的概念缺乏知識,可能產生不準確、虛構或與已知事實相矛盾的完成。_提示工程技巧幫助使用者識別並減輕此類捏造,例如要求 AI 提供引用或推理_。 - -1. **模型能力各異。** 新一代模型功能更豐富,但也帶來成本與複雜度的獨特特性與取捨。_提示工程能協助我們發展最佳實務與工作流程,抽象化差異並適應模型特定需求,實現可擴展且無縫的應用_。 - -讓我們在 OpenAI 或 Azure OpenAI Playground 實際體驗: - -- 用相同提示測試不同 LLM 部署(如 OpenAI、Azure OpenAI、Hugging Face)——你有看到差異嗎? -- 用相同提示多次測試 _同一_ LLM 部署(如 Azure OpenAI playground)——這些差異如何? - -### 捏造範例 - -在本課程中,我們用「**捏造**」一詞指稱 LLM 因訓練限制或其他因素,有時會產生事實錯誤的資訊。你可能在文章或研究論文中聽過「幻覺(hallucinations)」這個詞,但我們強烈建議使用「捏造」,避免將機器行為擬人化,賦予人類特質。這也符合[負責任 AI 指南](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst)的用詞規範,避免使用在某些情境下可能具冒犯性或不包容的詞彙。 - -想了解捏造如何發生?想像一個提示指示 AI 生成不存在主題的內容(確保該主題不在訓練資料中)。例如——我嘗試了這個提示: -# 火星戰爭2076年課程計劃 - -## 課程目標 -- 了解2076年火星戰爭的背景與起因 -- 分析戰爭過程中的主要事件與策略 -- 探討戰爭對地球與火星社會的影響 -- 培養學生批判性思考與歷史分析能力 - -## 課程大綱 - -### 第一節:火星戰爭的背景 -- 火星殖民地的建立與發展 -- 地球與火星之間的政治經濟關係 -- 戰爭爆發的主要原因 - -### 第二節:戰爭過程 -- 主要戰役與戰略部署 -- 重要人物與指揮官介紹 -- 技術與武器的運用 - -### 第三節:戰爭的影響 -- 對火星殖民地的影響 -- 對地球政治格局的改變 -- 戰後重建與和平協議 - -### 第四節:討論與反思 -- 戰爭的道德與倫理問題 -- 未來火星與地球的合作可能性 -- 學生分組討論與報告 - -## 教學方法 -- 講授與多媒體展示 -- 小組討論與角色扮演 -- 案例分析與歷史資料研讀 - -## 評量方式 -- 課堂參與與討論表現 -- 小組報告與展示 -- 期末寫作報告 - -## 參考資料 -- 火星戰爭2076年官方紀錄 -- 相關歷史文獻與研究報告 -- 多媒體資料與紀錄片 -網路搜尋顯示有關火星戰爭的虛構故事(例如電視劇或書籍)存在,但沒有發生在2076年的紀錄。常識也告訴我們,2076年是未來的時間,因此不可能與真實事件相關。 - -那麼,當我們用不同的LLM供應商執行這個提示時會發生什麼? - -> **Response 1**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.mo.png) - -> **Response 2**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.mo.png) - -> **Response 3**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.mo.png) - -如預期,每個模型(或模型版本)因隨機行為和模型能力差異,產生略有不同的回應。例如,一個模型針對八年級學生,而另一個則假設是高中生。但這三個模型都產生了可能讓不知情使用者相信該事件是真實的回應。 - -像是 _metaprompting_ 和 _temperature configuration_ 這類提示工程技術,或許能在某種程度上減少模型的虛構內容。新的提示工程 _架構_ 也將新工具和技術無縫整合到提示流程中,以緩解或降低這些影響。 - -## 案例研究:GitHub Copilot - -讓我們以一個案例研究來結束本節,了解提示工程如何應用於真實世界的解決方案:[GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst)。 - -GitHub Copilot 是你的「AI 配對程式設計師」——它將文字提示轉換成程式碼補全,並整合在你的開發環境中(例如 Visual Studio Code),提供無縫的使用體驗。根據以下一系列部落格的記載,最早版本是基於 OpenAI Codex 模型,工程師很快意識到需要微調模型並開發更好的提示工程技術,以提升程式碼品質。今年七月,他們[推出了超越 Codex 的改良 AI 模型](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst),提供更快速的建議。 - -請依序閱讀這些文章,跟隨他們的學習歷程。 - -- **2023年5月** | [GitHub Copilot 在理解你的程式碼方面變得更好](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **2023年5月** | [GitHub 內部:與 GitHub Copilot 背後的 LLMs 合作](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **2023年6月** | [如何為 GitHub Copilot 撰寫更好的提示](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **2023年7月** | [GitHub Copilot 以改良 AI 模型超越 Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **2023年7月** | [開發者的提示工程與 LLM 指南](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **2023年9月** | [如何打造企業級 LLM 應用:GitHub Copilot 的經驗教訓](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -你也可以瀏覽他們的[工程部落格](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst),閱讀更多像是[這篇](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst)的文章,展示這些模型和技術如何被 _應用_ 於推動真實世界的應用。 - ---- - - - -## 提示構建 - -我們已經了解為什麼提示工程很重要——現在讓我們理解提示是如何 _構建_ 的,這樣才能評估不同技術以設計更有效的提示。 - -### 基本提示 - -先從基本提示開始:一段純文字輸入送給模型,沒有其他上下文。以下是一個例子——當我們將美國國歌的前幾個字送到 OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst) 時,它會立即 _補全_ 後續幾行,展示基本的預測行為。 - -| 提示(輸入) | 補全(輸出) | -| :----------------- | :--------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | 聽起來你正在開始唱「星條旗永不落」的歌詞,美國的國歌。完整歌詞是... | - -### 複雜提示 - -現在讓我們在基本提示中加入上下文和指令。[Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) 允許我們將複雜提示構建為一組 _訊息_,包含: - -- 反映 _使用者_ 輸入與 _助理_ 回應的輸入/輸出對。 -- 設定助理行為或個性的系統訊息。 - -請求現在呈現如下形式,其中 _分詞_ 有效捕捉上下文和對話中的相關資訊。改變系統上下文對補全品質的影響,與使用者輸入同樣重要。 - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### 指令提示 - -在上述例子中,使用者提示是簡單的文字查詢,可解讀為資訊請求。使用 _指令_ 提示時,我們可以用文字更詳細地指定任務,給 AI 更好的指引。以下是範例: - -| 提示(輸入) | 補全(輸出) | 指令類型 | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------- | :------------------ | -| Write a description of the Civil War | _回傳一段簡短描述_ | 簡單 | -| Write a description of the Civil War. Provide key dates and events and describe their significance | _回傳一段描述,接著列出重要事件日期與說明_ | 複雜 | -| Write a description of the Civil War in 1 paragraph. Provide 3 bullet points with key dates and their significance. Provide 3 more bullet points with key historical figures and their contributions. Return the output as a JSON file | _回傳更詳盡內容,格式為可複製貼上並驗證的 JSON_ | 複雜。格式化。 | - -## 主要內容 - -在上述例子中,提示仍相當開放,讓 LLM 決定其預訓練資料中哪些部分相關。使用 _主要內容_ 設計模式時,輸入文字分為兩部分: - -- 指令(動作) -- 相關內容(影響動作) - -以下範例中,指令是「用兩句話摘要」。 - -| 提示(輸入) | 補全(輸出) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. It is named after the Roman god Jupiter.[19] When viewed from Earth, Jupiter can be bright enough for its reflected light to cast visible shadows,[20] and is on average the third-brightest natural object in the night sky after the Moon and Venus.
**Summarize this in 2 short sentences** | 木星是太陽系中第五顆行星,也是最大的一顆。它是氣態巨星,質量是太陽的千分之一,但卻是太陽系其他所有行星質量總和的兩倍半,並且是夜空中肉眼可見最亮的天體之一。 | - -主要內容段落可用多種方式來驅動更有效的指令: - -- **範例** — 不直接告訴模型要做什麼,而是給它想要的輸出範例,讓它推斷模式。 -- **提示** — 在指令後面加上「提示」,引導補全,讓模型產生更相關的回應。 -- **範本** — 可重複使用的提示「配方」,帶有可用資料自訂的佔位符(變數),適用於特定情境。 - -接下來讓我們實際看看這些用法。 - -### 使用範例 - -這種方法是用主要內容「餵給模型」一些期望輸出的範例,讓它推斷出想要的輸出模式。根據範例數量,我們有零次提示、一個範例提示、少量範例提示等。 - -提示現在包含三個部分: - -- 任務描述 -- 幾個期望輸出的範例 -- 新範例的開始(隱含任務描述) - -| 學習類型 | 提示(輸入) | 補全(輸出) | -| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------- | -| 零次提示 | "The Sun is Shining". Translate to Spanish | "El Sol está brillando". | -| 一個範例提示 | "The Sun is Shining" => ""El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| 少量範例提示 | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketball | -| | | | - -注意零次提示中必須明確指示「翻譯成西班牙語」,但在一個範例提示中,模型會自行推斷。少量範例提示則展示了提供更多範例如何讓模型更準確推斷,且不需額外指令。 - -### 提示線索 - -另一種使用主要內容的技巧是提供 _線索_ 而非範例。在這種情況下,我們用一段反映期望回應格式的片段「啟動」模型,模型便會「接收線索」並繼續以相同風格回應。 - -| 線索數量 | 提示(輸入) | 補全(輸出) | -| :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | 木星是太陽系中第五顆行星,也是最大的一顆。它是氣態巨星,質量是太陽的千分之一,但卻是太陽系其他所有行星質量總和的兩倍半。木星是夜空中肉眼可見最亮的天體之一,古代文明早在有文字記錄前就已知曉。 | - -**Summarize This** | 木星是太陽系中最大的行星,位於太陽的第五顆行星。它是一顆氣體巨星,質量約為太陽的千分之一,但重量超過其他所有行星的總和。古代文明早已認識木星,且它在夜空中非常容易被看見。 | -| 1 | 木星是太陽系中第五顆行星,也是最大的行星。它是一顆氣體巨星,質量約為太陽的千分之一,但比太陽系中其他所有行星的總和還要重兩倍半。木星是夜空中肉眼可見的最亮天體之一,古代文明早在有文字記錄之前就已知曉它。
**Summarize This**
我們學到的是木星 | 是太陽系中第五顆行星,也是最大的行星。它是一顆氣體巨星,質量約為太陽的千分之一,但比其他所有行星的總和還要重兩倍半。它肉眼可見,且自古代以來就為人所知。 | -| 2 | 木星是太陽系中第五顆行星,也是最大的行星。它是一顆氣體巨星,質量約為太陽的千分之一,但比太陽系中其他所有行星的總和還要重兩倍半。木星是夜空中肉眼可見的最亮天體之一,古代文明早在有文字記錄之前就已知曉它。
**Summarize This**
我們學到的三大重點: | 1. 木星是太陽系中第五顆行星,也是最大的行星。
2. 它是一顆氣體巨星,質量約為太陽的千分之一……
3. 木星自古代以來就能用肉眼看見…… | -| | | | - -### Prompt Templates - -提示模板是一種_預先定義的提示配方_,可以儲存並根據需要重複使用,以在大規模上提供更一致的使用者體驗。最簡單的形式,就是像[OpenAI這個範例](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst)那樣,收集一組提示範例,包含互動式提示元件(使用者與系統訊息)以及 API 請求格式,方便重複使用。 - -在更複雜的形式中,如[LangChain的範例](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst),它包含_佔位符_,可用來替換來自多種來源的資料(使用者輸入、系統上下文、外部資料來源等),以動態生成提示。這讓我們能建立一個可重用的提示庫,**以程式化方式**在大規模上驅動一致的使用者體驗。 - -最後,模板的真正價值在於能為垂直應用領域建立並發布_提示庫_,這些提示模板會根據應用特定的上下文或範例進行_優化_,使回應對目標使用者更具相關性與準確性。[Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) 倉庫就是這種做法的絕佳範例,專注於教育領域,強調課程規劃、課程設計、學生輔導等核心目標。 - -## Supporting Content - -如果我們把提示構建視為包含指令(任務)和目標(主要內容),那麼_次要內容_就像是額外的上下文,用來**以某種方式影響輸出**。它可能是調整參數、格式指示、主題分類等,有助於模型_調整_回應,使其符合期望的使用者目標或需求。 - -舉例來說:給定一份包含豐富元資料(名稱、描述、等級、標籤、講師等)的課程目錄: - -- 我們可以定義一個指令:「總結2023年秋季的課程目錄」 -- 使用主要內容提供幾個期望輸出的範例 -- 使用次要內容標示出最重要的五個「標籤」 - -這樣模型就能以範例中展示的格式提供摘要;若結果包含多個標籤,則可優先顯示次要內容中標示的五個標籤。 - ---- - - - -## Prompting Best Practices - -既然我們知道如何_構建_提示,就可以開始思考如何_設計_提示以反映最佳實務。我們可以從兩個面向來看——擁有正確的_心態_與運用合適的_技巧_。 - -### Prompt Engineering Mindset - -提示工程是一個反覆試驗的過程,請記住三個大方向: - -1. **領域理解很重要。** 回應的準確性與相關性取決於應用或使用者所處的_領域_。運用你的直覺與領域專業來**進一步客製化技巧**。例如,在系統提示中定義_領域專屬的角色設定_,或在使用者提示中使用_領域專屬模板_。提供反映領域上下文的次要內容,或用_領域專屬的提示與範例_引導模型朝熟悉的用法發展。 - -2. **模型理解很重要。** 我們知道模型本質上是隨機的,但不同模型的訓練資料(預訓練知識)、功能(API 或 SDK 提供的能力)及優化內容類型(程式碼、圖片、文字等)都可能不同。了解你所用模型的優勢與限制,並利用這些知識_優先安排任務_或建立_針對模型能力優化的客製模板_。 - -3. **反覆與驗證很重要。** 模型與提示工程技術都在快速演進。作為領域專家,你可能有其他特定應用的背景或標準,這些不一定適用於更廣泛的社群。利用提示工程工具與技巧「快速啟動」提示構建,然後用你的直覺與領域專業反覆驗證結果。記錄你的見解並建立**知識庫**(例如提示庫),讓其他人能以此為新基準,加速未來的迭代。 - -## Best Practices - -以下是[OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst)與[Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst)實務者推薦的常見最佳做法。 - -| 事項 | 原因 | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 評估最新模型 | 新一代模型通常功能與品質更佳,但成本可能較高。評估其影響後再決定是否遷移。 | -| 區分指令與上下文 | 確認你的模型或服務提供者是否定義了_分隔符_,以更清楚區分指令、主要與次要內容。這有助於模型更準確地分配權重給各個詞元。 | -| 具體且清楚 | 提供更多關於期望上下文、結果、長度、格式、風格等細節,能提升回應的品質與一致性。將這些做法記錄在可重用的模板中。 | -| 詳細描述並使用範例 | 模型通常對「示範與說明」的方式反應更好。先用「零範例」方式給出指令(無範例),再用「少範例」方式微調,提供幾個期望輸出的範例。也可使用類比說明。 | -| 使用提示詞引導完成 | 透過給模型一些開頭詞或片語,幫助它從這些線索開始產生回應,朝向期望結果。 | -| 重複強調 | 有時需要對模型重複指令。可在主要內容前後都給指令,或同時使用指令與提示詞。反覆嘗試並驗證什麼方法有效。 | -| 順序很重要 | 呈現給模型的資訊順序可能影響輸出結果,尤其在學習範例中,因為模型有近期偏好。嘗試不同順序找出最佳方式。 | -| 給模型「退路」 | 提供模型一個_備用_的完成回應,當它無法完成任務時可使用,降低產生錯誤或捏造回應的機率。 | -| | | - -如同任何最佳實務,請記得_實際效果會因模型、任務與領域而異_。將這些作為起點,持續迭代找出最適合你的方法。隨著新模型與工具問世,持續重新評估你的提示工程流程,重點放在流程可擴展性與回應品質。 - - - -## Assignment - -恭喜你完成本課程!現在是時候用實際範例來測試這些概念與技巧了! - -這次作業會使用一個 Jupyter Notebook,裡面有你可以互動完成的練習。你也可以自行在 Notebook 裡新增 Markdown 與程式碼區塊,探索更多想法與技巧。 - -### 開始前,先 fork 這個 repo,然後 - -- (建議)啟動 GitHub Codespaces -- (或)將 repo 複製到本地端,並用 Docker Desktop 運行 -- (或)用你偏好的 Notebook 執行環境開啟 Notebook - -### 接著,設定環境變數 - -- 將 repo 根目錄的 `.env.copy` 複製為 `.env`,並填入 `AZURE_OPENAI_API_KEY`、`AZURE_OPENAI_ENDPOINT` 與 `AZURE_OPENAI_DEPLOYMENT`。完成後回到[學習沙盒章節](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals)了解如何操作。 - -### 然後,打開 Jupyter Notebook - -- 選擇執行核心。如果使用前兩種方式,直接選擇開發容器提供的預設 Python 3.10.x 核心即可。 - -你已準備好執行練習。請注意,這裡沒有「對錯」答案,重點是透過反覆嘗試探索選項,並建立對特定模型與應用領域有效方法的直覺。 - -_因此本課程沒有程式碼解答區塊。Notebook 中會有標題為「My Solution:」的 Markdown 區塊,展示一個範例輸出供參考。_ - - - -## Knowledge check - -以下哪一個提示符合合理的最佳實務? - -1. 給我一張紅色汽車的圖片 -2. 給我一張紅色 Volvo XC90 停在懸崖邊夕陽下的圖片 -3. 給我一張紅色 Volvo XC90 的圖片 - -答:2 是最佳提示,因為它提供了「什麼」的細節,且具體描述(不只是任何車,而是特定品牌與車型),還描述了整體場景。3 次之,因為也包含許多描述。 - -## 🚀 Challenge - -試試看用「提示詞」技巧,完成句子「給我一張紅色 Volvo 車款的圖片,然後……」。模型會怎麼回應?你會如何改進它? - -## Great Work! Continue Your Learning - -想了解更多提示工程的概念?請前往[進階學習頁面](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst),尋找更多優質資源。 - -接著前往第5課,我們將探討[進階提示技巧](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**免責聲明**: -本文件係使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於確保準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或誤釋負責。 \ No newline at end of file + + + + + + + diff --git a/translations/mo/09-building-image-applications/README.md b/translations/mo/09-building-image-applications/README.md index dc0063d49..744c99fa1 100644 --- a/translations/mo/09-building-image-applications/README.md +++ b/translations/mo/09-building-image-applications/README.md @@ -1,475 +1,12 @@ - -# 建立影像生成應用程式 - -[![建立影像生成應用程式](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.mo.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -大型語言模型不僅能生成文字,也能從文字描述生成影像。影像作為一種媒介,在醫療科技、建築、旅遊、遊戲開發等多個領域都非常有用。本章節將介紹兩個最受歡迎的影像生成模型:DALL-E 和 Midjourney。 - -## 介紹 - -本課程將涵蓋: - -- 影像生成及其用途。 -- DALL-E 和 Midjourney 是什麼,以及它們如何運作。 -- 如何建立一個影像生成應用程式。 - -## 學習目標 - -完成本課程後,你將能夠: - -- 建立影像生成應用程式。 -- 使用元提示(meta prompts)為應用程式設定界限。 -- 使用 DALL-E 和 Midjourney。 - -## 為什麼要建立影像生成應用程式? - -影像生成應用程式是探索生成式 AI 能力的絕佳方式。它們可以用於: - -- **影像編輯與合成**。你可以為各種用途生成影像,例如影像編輯和合成。 - -- **應用於多個產業**。也能用於醫療科技、旅遊、遊戲開發等多個產業的影像生成。 - -## 情境:Edu4All - -在本課程中,我們將繼續與新創公司 Edu4All 合作。學生將為他們的評量創作影像,影像內容由學生決定,可能是他們自己的童話插圖、故事中的新角色,或幫助他們視覺化想法與概念。 - -例如,若 Edu4All 的學生在課堂上研究紀念碑,他們可能會生成如下影像: - -![Edu4All 新創公司,紀念碑課堂,艾菲爾鐵塔](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.mo.png) - -使用的提示語為: - -> 「清晨陽光下艾菲爾鐵塔旁的狗」 - -## 什麼是 DALL-E 和 Midjourney? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) 和 [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) 是兩個最受歡迎的影像生成模型,能透過提示語生成影像。 - -### DALL-E - -先從 DALL-E 開始,它是一個從文字描述生成影像的生成式 AI 模型。 - -> [DALL-E 是由兩個模型組合而成,CLIP 與擴散注意力機制](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst)。 - -- **CLIP** 是一個能從影像和文字中產生嵌入向量(數值化資料表示)的模型。 - -- **擴散注意力機制** 是一個從嵌入向量生成影像的模型。DALL-E 在大量影像與文字資料集上訓練,能根據文字描述生成影像。例如,DALL-E 可以生成戴帽子的貓或莫霍克髮型的狗的影像。 - -### Midjourney - -Midjourney 的運作方式與 DALL-E 類似,能根據文字提示生成影像。Midjourney 也能用提示語如「戴帽子的貓」或「莫霍克髮型的狗」來生成影像。 - -![Midjourney 生成的機械鴿子影像](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_圖片來源 Wikipedia,影像由 Midjourney 生成_ - -## DALL-E 和 Midjourney 如何運作 - -首先介紹 [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst)。DALL-E 是基於 transformer 架構的生成式 AI 模型,採用 _自回歸 transformer_。 - -自回歸 transformer 定義了模型如何從文字描述生成影像,它一次生成一個像素,並利用已生成的像素來生成下一個像素。透過神經網路的多層處理,直到影像完成。 - -透過此過程,DALL-E 能控制影像中的屬性、物件、特徵等。不過,DALL-E 2 和 3 對生成影像的控制力更強。 - -## 建立你的第一個影像生成應用程式 - -那麼,建立影像生成應用程式需要什麼?你需要以下函式庫: - -- **python-dotenv**,強烈建議使用此函式庫將機密資訊保存在 _.env_ 檔案中,避免直接寫在程式碼裡。 -- **openai**,用來與 OpenAI API 互動的函式庫。 -- **pillow**,用於在 Python 中處理影像。 -- **requests**,協助發送 HTTP 請求。 - -1. 建立一個 _.env_ 檔案,內容如下: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - 這些資訊可在 Azure 入口網站的「金鑰與端點」區段找到。 - -1. 將上述函式庫列在 _requirements.txt_ 檔案中: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. 接著,建立虛擬環境並安裝函式庫: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Windows 使用者可用以下指令建立並啟動虛擬環境: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. 在 _app.py_ 檔案中加入以下程式碼: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -讓我們解釋這段程式碼: - -- 首先,我們匯入所需的函式庫,包括 OpenAI、dotenv、requests 和 Pillow。 - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- 接著,從 _.env_ 檔案載入環境變數。 - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- 然後,設定 OpenAI API 的端點、金鑰、版本與類型。 - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- 接著,生成影像: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - 上述程式碼會回傳一個 JSON 物件,包含生成影像的 URL。我們可以使用該 URL 下載影像並儲存成檔案。 - -- 最後,我們開啟影像並用標準影像檢視器顯示: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### 更詳細的影像生成說明 - -讓我們更仔細看看生成影像的程式碼: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** 是用來生成影像的文字提示。此例中,我們使用「Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils」。 -- **size** 是生成影像的尺寸,此例為 1024x1024 像素。 -- **n** 是生成影像的數量,此例為兩張。 -- **temperature** 是控制生成式 AI 模型輸出隨機性的參數,介於 0 到 1 之間,0 表示輸出完全確定,1 表示輸出完全隨機。預設值為 0.7。 - -接下來我們會介紹更多影像相關的功能。 - -## 影像生成的額外功能 - -到目前為止,你已看到如何用幾行 Python 程式碼生成影像。但影像還能做更多事。 - -你還可以: - -- **進行編輯**。透過提供現有影像、遮罩和提示語,你可以修改影像。例如,你可以在影像的某部分加上東西。想像我們的兔子影像,你可以幫兔子戴上帽子。做法是提供影像、遮罩(標示要修改的區域)和文字提示說明要做什麼。 - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - 原始影像只有兔子,最終影像則是兔子戴上帽子。 - -- **創造變體**。你可以拿現有影像,要求生成變體。要創造變體,你提供影像和文字提示,並用如下程式碼: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > 注意,此功能僅支援 OpenAI。 - -## 溫度參數 - -溫度是控制生成式 AI 模型輸出隨機性的參數,介於 0 到 1 之間,0 表示輸出確定,1 表示輸出隨機。預設值為 0.7。 - -讓我們透過以下提示語執行兩次,看看溫度的效果: - -> 提示語:「Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils」 - -![騎馬拿棒棒糖的兔子,版本 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.mo.png) - -現在再執行一次相同提示語,看看是否會得到相同影像: - -![騎馬拿棒糖的兔子,版本 2](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.mo.png) - -如你所見,兩張影像相似但不相同。接著,我們將溫度調整為 0.1,看看會發生什麼: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### 調整溫度 - -我們試著讓回應更確定。從前兩張影像可見,第一張有兔子,第二張有馬,差異很大。 - -因此,我們將程式碼中的溫度設為 0,如下: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -執行後會得到以下兩張影像: - -- ![溫度 0,版本 1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.mo.png) -- ![溫度 0,版本 2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.mo.png) - -你可以明顯看到兩張影像更為相似。 - -## 如何用元提示為應用程式設定界限 - -透過我們的示範,已能為客戶生成影像,但我們需要為應用程式設定一些界限。 - -例如,我們不希望生成不適合工作場合或兒童觀看的影像。 - -這可以透過 _元提示_(metaprompts)達成。元提示是用來控制生成式 AI 模型輸出的文字提示。例如,我們可以用元提示來確保生成的影像適合工作場合或兒童觀看。 - -### 它是如何運作的? - -元提示是放在主要提示語之前的文字提示,用來控制模型輸出,並嵌入應用程式中以管理模型的輸出。將提示語和元提示合併成一個文字提示。 - -元提示的範例: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -接著,看看如何在示範中使用元提示。 - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -從上述提示可見,所有生成的影像都會考慮元提示的限制。 - -## 作業 — 讓學生開始動手 - -我們在課程一開始介紹了 Edu4All,現在是時候讓學生為他們的評量生成影像。 - -學生將為評量創作包含紀念碑的影像,具體哪些紀念碑由學生自行決定。學生被鼓勵發揮創意,將這些紀念碑置於不同情境中。 - -## 解答 - -以下是一個可能的解答: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## 做得好!繼續學習 - -完成本課程後,請參考我們的[生成式 AI 學習系列](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst),持續提升你的生成式 AI 知識! - -接著前往第 10 課,我們將探討如何[使用低程式碼建立 AI 應用程式](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)。 - -**免責聲明**: -本文件係使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於確保準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或誤釋負責。 \ No newline at end of file + + + + diff --git a/translations/mo/12-designing-ux-for-ai-applications/README.md b/translations/mo/12-designing-ux-for-ai-applications/README.md index 5ee490e30..018d9dd9c 100644 --- a/translations/mo/12-designing-ux-for-ai-applications/README.md +++ b/translations/mo/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# 為 AI 應用設計使用者體驗 - -[![為 AI 應用設計使用者體驗](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.mo.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(點擊上方圖片觀看本課程影片)_ - -使用者體驗是開發應用程式時非常重要的一環。使用者需要能夠有效率地使用你的應用程式來完成任務。效率固然重要,但你也需要設計出人人都能使用的應用程式,讓它們具備「無障礙」特性。本章將聚焦於這個領域,希望你最終能設計出讓人願意且能夠使用的應用程式。 - -## 介紹 - -使用者體驗是指使用者如何與特定產品或服務互動並使用它,無論是系統、工具或設計。在開發 AI 應用時,開發者不僅關注使用者體驗的有效性,也重視其倫理性。本課程將介紹如何打造符合使用者需求的人工智慧(AI)應用。 - -本課程將涵蓋以下主題: - -- 使用者體驗介紹與理解使用者需求 -- 為信任與透明度設計 AI 應用 -- 為協作與回饋設計 AI 應用 - -## 學習目標 - -完成本課程後,你將能夠: - -- 了解如何打造符合使用者需求的 AI 應用。 -- 設計促進信任與協作的 AI 應用。 - -### 先備知識 - -請花些時間閱讀更多關於[使用者體驗與設計思維](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst)的內容。 - -## 使用者體驗介紹與理解使用者需求 - -在我們虛構的教育新創公司中,有兩類主要使用者:教師與學生。這兩類使用者各有獨特需求。以使用者為中心的設計會優先考量使用者,確保產品對目標使用者是相關且有益的。 - -應用程式應該是**有用、可靠、無障礙且令人愉悅**,以提供良好的使用者體驗。 - -### 易用性 - -有用意味著應用程式的功能符合其預期目的,例如自動化評分流程或生成複習用的抽認卡。自動化評分的應用程式應能根據預先定義的標準,準確且有效率地為學生作業打分。類似地,生成複習抽認卡的應用程式應能根據資料創造相關且多樣的問題。 - -### 可靠性 - -可靠意味著應用程式能持續且無誤地執行任務。然而,AI 和人類一樣並非完美,可能會出錯。應用程式可能會遇到錯誤或意外狀況,需要人工介入或修正。你會如何處理錯誤?本課程最後一節將介紹如何設計 AI 系統與應用以促進協作與回饋。 - -### 無障礙 - -無障礙意味著將使用者體驗延伸至各種能力的使用者,包括身心障礙者,確保沒有人被排除在外。遵循無障礙指引與原則,AI 解決方案將更具包容性、易用性,並對所有使用者更有益。 - -### 愉悅感 - -愉悅感意味著應用程式使用起來令人愉快。吸引人的使用者體驗能正面影響使用者,鼓勵他們回訪應用程式,並提升商業收益。 - -![說明 AI 中使用者體驗考量的圖片](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.mo.png) - -並非所有挑戰都能靠 AI 解決。AI 是用來增強你的使用者體驗,無論是自動化手動任務,或是個人化使用者體驗。 - -## 為信任與透明度設計 AI 應用 - -建立信任在設計 AI 應用時至關重要。信任讓使用者有信心應用程式能完成工作、持續提供結果,且結果符合使用者需求。這方面的風險包括不信任與過度信任。不信任發生在使用者對 AI 系統幾乎沒有信任,導致拒絕使用你的應用程式。過度信任則是使用者高估 AI 系統能力,過度依賴 AI。例如,過度信任自動評分系統可能導致教師不再仔細審核部分試卷,造成學生獲得不公平或不準確的分數,或錯失回饋與改進的機會。 - -確保信任成為設計核心的兩種方法是「可解釋性」與「控制權」。 - -### 可解釋性 - -當 AI 幫助做出決策,例如傳授知識給未來世代時,教師與家長理解 AI 如何做出決策至關重要。這就是可解釋性——了解 AI 應用如何做決策。設計可解釋性包括加入 AI 應用能做什麼的範例細節。例如,系統可以用「使用 AI 幫助你整理筆記,輕鬆複習」來取代「開始使用 AI 教師」。 - -![展示 AI 應用中可解釋性的應用程式首頁](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.mo.png) - -另一個例子是 AI 如何使用使用者與個人資料。例如,擁有學生角色的使用者可能會有角色限制。AI 可能無法直接揭示答案,但能引導使用者思考如何解決問題。 - -![根據角色回答問題的 AI](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.mo.png) - -可解釋性的另一個關鍵是簡化說明。學生與教師可能不是 AI 專家,因此應用程式能做什麼或不能做什麼的說明應該簡單易懂。 - -![簡化 AI 功能說明](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.mo.png) - -### 控制權 - -生成式 AI 促成 AI 與使用者的協作,例如使用者可以修改提示詞以獲得不同結果。此外,產生結果後,使用者應能修改結果,讓他們感受到掌控感。例如,使用 Bing 時,你可以根據格式、語氣和長度調整提示詞,並且可以對輸出結果進行修改,如下圖所示: - -![Bing 搜尋結果,提供修改提示詞與輸出結果的選項](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.mo.png) - -Bing 另一項讓使用者掌控應用程式的功能是能選擇是否讓 AI 使用其資料。對於學校應用,學生可能想使用自己的筆記以及教師的資源作為複習材料。 - -![Bing 搜尋結果,提供修改提示詞與輸出結果的選項](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.mo.png) - -> 設計 AI 應用時,刻意性是關鍵,確保使用者不會過度信任並對其能力抱持不切實際的期望。一種做法是在提示詞與結果之間製造摩擦,提醒使用者這是 AI,而非真人。 - -## 為協作與回饋設計 AI 應用 - -如前所述,生成式 AI 促成使用者與 AI 的協作。大多數互動是使用者輸入提示詞,AI 產生結果。如果結果錯誤,應用程式如何處理?AI 會責怪使用者,還是花時間解釋錯誤? - -AI 應用應設計成能接收並給予回饋。這不僅有助於 AI 系統改進,也建立使用者信任。設計中應包含回饋迴路,例如對結果給予簡單的讚或踩。 - -另一種處理方式是清楚溝通系統的能力與限制。當使用者提出超出 AI 能力的請求時,也應有相應的處理方式,如下圖所示。 - -![提供回饋與錯誤處理](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.mo.png) - -系統錯誤在應用程式中很常見,例如使用者可能需要 AI 範圍外的資訊,或應用程式限制使用者能生成摘要的問題數量或科目。例如,一個只訓練於歷史與數學資料的 AI 應用可能無法處理地理相關問題。為了緩解此問題,AI 系統可以回應:「抱歉,我們的產品只訓練於以下科目……,無法回答您提出的問題。」 - -AI 應用並非完美,必然會犯錯。設計應用時,應確保留有使用者回饋與錯誤處理的空間,且方式簡單且易於理解。 - -## 作業 - -請選擇你目前開發的任何 AI 應用,考慮在你的應用中實施以下步驟: - -- **愉悅感:** 思考如何讓你的應用更令人愉快。你是否在各處加入說明?是否鼓勵使用者探索?你的錯誤訊息用詞如何? - -- **易用性:** 建立網頁應用。確保你的應用能用滑鼠與鍵盤操作。 - -- **信任與透明度:** 不要完全信任 AI 及其輸出,思考如何加入人工驗證輸出。並考慮實施其他促進信任與透明度的方法。 - -- **控制權:** 讓使用者掌控他們提供給應用的資料。實作讓使用者能選擇是否同意 AI 應用收集資料的機制。 - -## 繼續學習! - -完成本課程後,請參考我們的[生成式 AI 學習系列](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst),持續提升你的生成式 AI 知識! - -接著前往第 13 課,我們將探討如何[保護 AI 應用](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**免責聲明**: -本文件係使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於確保準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或誤釋承擔責任。 \ No newline at end of file + + + diff --git a/translations/mo/README.md b/translations/mo/README.md index 701d6d011..630edd125 100644 --- a/translations/mo/README.md +++ b/translations/mo/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.mo.png) - -### 21堂課教你從零開始打造生成式AI應用所需的所有知識 - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 多語言支援 - -#### 透過 GitHub Action 支援(自動且持續更新) - -[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](./README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md) - -# Generative AI for Beginners (版本3) - 一門課程 - -透過微軟雲端推廣大使的21堂完整課程,學習打造生成式AI應用的基礎知識。 - -## 🌱 開始學習 - -本課程共21堂課,每堂課涵蓋不同主題,您可以從任何一堂開始! - -課程分為「Learn」課程,解釋生成式AI的概念;以及「Build」課程,除了說明概念外,還會提供 **Python** 和 **TypeScript** 的程式碼範例(視情況而定)。 - -.NET 開發者請參考 [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -每堂課還包含「持續學習」單元,提供額外的學習資源。 - -## 您需要準備什麼 -### 執行本課程程式碼,您可以使用以下任一服務: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **適用課程:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **適用課程:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **適用課程:** "oai-assignment" - -- 具備基本的 Python 或 TypeScript 知識會更有幫助 - \*初學者可參考這些 [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) 和 [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) 課程 -- 一個 GitHub 帳號,方便您[將整個專案庫 fork 到自己的帳號](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) - -我們也準備了 **[課程環境設定](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** 課程,協助您完成開發環境的設定。 - -別忘了[為此專案庫加星 (🌟)](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst),方便日後快速找到。 - -## 🧠 準備好部署了嗎? - -如果您想要更進階的程式碼範例,請參考我們的[生成式AI程式碼範例集](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst),提供 **Python** 和 **TypeScript** 版本。 - -## 🗣️ 與其他學員交流、獲得支援 - -加入我們的[官方 Azure AI Foundry Discord 伺服器](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst),與其他學員交流並獲得支援。 - -也可以在我們的 [Azure AI Foundry 開發者論壇](https://aka.ms/azureaifoundry/forum)(GitHub)提問或分享產品回饋。 - -## 🚀 想創業? - -註冊 [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst),即可獲得 **免費 OpenAI 點數** 及最高 **15萬美元 Azure 點數補助**,用於透過 Azure OpenAI 服務存取 OpenAI 模型。 - -## 🙏 想幫忙? - -有建議或發現拼字、程式碼錯誤嗎?請[提出議題](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst)或[送出 Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst)。 - -## 📂 每堂課包含: - -- 主題的短影片介紹 -- 位於 README 的書面課程內容 -- 支援 Azure OpenAI 與 OpenAI API 的 Python 和 TypeScript 程式碼範例 -- 延伸學習資源連結 - -## 🗃️ 課程列表 - -| # | **課程連結** | **說明** | **影片** | **額外學習資源** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [課程環境設定](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 如何設定您的開發環境 | 影片即將推出 | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [生成式AI與大型語言模型介紹](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 了解什麼是生成式AI以及大型語言模型(LLMs)的運作原理 | [影片](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [探索與比較不同的LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 如何為您的使用案例選擇合適的模型 | [影片](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [負責任地使用生成式AI](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 如何負責任地打造生成式AI應用 | [影片](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [理解提示工程基礎](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 實作提示工程最佳實務 | [影片](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [創建進階提示](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 如何運用提示工程技巧提升提示效果 | [影片](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [建立文字生成應用程式](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **建立:** 使用 Azure OpenAI / OpenAI API 建立文字生成應用程式 | [影片](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [建立聊天應用程式](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **建立:** 高效構建與整合聊天應用程式的技巧 | [影片](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [建立搜尋應用程式與向量資料庫](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **建立:** 使用 Embeddings 進行資料搜尋的搜尋應用程式 | [影片](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [建立影像生成應用程式](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **建立:** 影像生成應用程式 | [影片](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [建立低程式碼 AI 應用程式](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **建立:** 使用低程式碼工具打造生成式 AI 應用程式 | [影片](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [使用 Function Calling 整合外部應用程式](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **建立:** 什麼是 function calling 及其在應用程式中的使用場景 | [影片](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [為 AI 應用程式設計使用者體驗](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 在開發生成式 AI 應用程式時如何應用 UX 設計原則 | [影片](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [保護您的生成式 AI 應用程式](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** AI 系統面臨的威脅與風險,以及保護這些系統的方法 | [影片](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [生成式 AI 應用程式的生命週期](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 管理 LLM 生命週期與 LLMOps 的工具與指標 | [影片](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [檢索增強生成 (RAG) 與向量資料庫](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **建立:** 使用 RAG 框架從向量資料庫檢索 embeddings 的應用程式 | [影片](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [開源模型與 Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **建立:** 使用 Hugging Face 上的開源模型打造應用程式 | [影片](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI 代理人](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **建立:** 使用 AI 代理人框架的應用程式 | [影片](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [微調大型語言模型 (LLMs)](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 什麼是微調大型語言模型、為何要微調以及如何微調 | [影片](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [使用小型語言模型 (SLMs) 建構](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 使用小型語言模型建構的優勢 | 影片即將推出 | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [使用 Mistral 模型建構](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** Mistral 系列模型的特色與差異 | 影片即將推出 | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [使用 Meta 模型建構](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** Meta 系列模型的特色與差異 | 影片即將推出 | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 特別感謝 - -特別感謝 [**John Aziz**](https://www.linkedin.com/in/john0isaac/) 創建所有 GitHub Actions 和工作流程 - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) 對每堂課程做出關鍵貢獻,提升學習者與程式碼體驗。 - -## 🎒 其他課程 - -我們團隊還製作了其他課程!歡迎參考: - -- [**全新** 初學者模型上下文協定](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [初學者 AI 代理人](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [使用 .NET 的生成式 AI 初學者課程](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [使用 JavaScript 的生成式 AI 初學者課程](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [機器學習初學者](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [資料科學初學者](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI 初學者](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [資安初學者](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [網頁開發初學者](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [物聯網初學者](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR 開發初學者](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [精通 GitHub Copilot 進行 AI 配對程式設計](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [精通 GitHub Copilot 針對 C#/.NET 開發者](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [選擇你自己的 Copilot 冒險](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**免責聲明**: -本文件係使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於確保準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或誤釋負責。 \ No newline at end of file + + + + diff --git a/translations/mr/00-course-setup/01-setup-cloud.md b/translations/mr/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..31a861613 --- /dev/null +++ b/translations/mr/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/mr/00-course-setup/02-setup-local.md b/translations/mr/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..2a4d9a71f --- /dev/null +++ b/translations/mr/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/mr/00-course-setup/03-providers.md b/translations/mr/00-course-setup/03-providers.md new file mode 100644 index 000000000..900f88f1a --- /dev/null +++ b/translations/mr/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/mr/00-course-setup/README.md b/translations/mr/00-course-setup/README.md index 91456d888..4f4c5d075 100644 --- a/translations/mr/00-course-setup/README.md +++ b/translations/mr/00-course-setup/README.md @@ -1,227 +1,12 @@ - -# या कोर्ससह सुरुवात करणे - -आम्हाला आनंद आहे की तुम्ही हा कोर्स सुरू करत आहात आणि जनरेटिव्ह AI वापरून काय तयार करता येईल हे पाहणार आहात! - -तुमच्या यशासाठी, या पृष्ठावर सेटअपचे टप्पे, तांत्रिक गरजा आणि मदतीसाठी कुठे संपर्क करायचा याची माहिती दिली आहे. - -## सेटअप टप्पे - -हा कोर्स सुरू करण्यासाठी, तुम्हाला खालील टप्पे पूर्ण करावे लागतील. - -### 1. हा रेपो Fork करा - -[Fork करा हा संपूर्ण रेपो](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) तुमच्या स्वतःच्या GitHub खात्यावर, जेणेकरून तुम्ही कोडमध्ये बदल करू शकता आणि आव्हाने पूर्ण करू शकता. तुम्ही हा रेपो [स्टार (🌟)](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) देखील करू शकता, ज्यामुळे तो आणि संबंधित रेपोज सहज सापडतील. - -### 2. कोडस्पेस तयार करा - -कोड चालवताना कोणत्याही अवलंबित्वाच्या समस्या टाळण्यासाठी, आम्ही शिफारस करतो की हा कोर्स [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst) मध्ये चालवा. - -हे तयार करण्यासाठी, तुमच्या Fork केलेल्या रेपोवर `Code` पर्याय निवडा आणि **Codespaces** पर्याय निवडा. - -![कोडस्पेस तयार करण्यासाठी बटणे दाखवणारा संवाद](../../../00-course-setup/images/who-will-pay.webp) - -### 3. तुमचे API कीज सुरक्षित ठेवणे - -कोणत्याही प्रकारचे अॅप्लिकेशन तयार करताना तुमच्या API कीज सुरक्षित ठेवणे महत्त्वाचे आहे. आम्ही शिफारस करतो की API कीज थेट कोडमध्ये साठवू नका. सार्वजनिक रेपोमध्ये कीज कमिट केल्यास सुरक्षा समस्या उद्भवू शकतात आणि चुकीच्या वापरामुळे अनावश्यक खर्चही होऊ शकतो. - -Python साठी `.env` फाइल कशी तयार करायची आणि `GITHUB_TOKEN` कसा जोडायचा यासाठी चरण-दर-चरण मार्गदर्शक: - -1. **तुमच्या प्रोजेक्ट डायरेक्टरीमध्ये जा**: टर्मिनल किंवा कमांड प्रॉम्प्ट उघडा आणि प्रोजेक्टच्या मूळ फोल्डरमध्ये जा जिथे तुम्हाला `.env` फाइल तयार करायची आहे. - - ```bash - cd path/to/your/project - ``` - -2. **`.env` फाइल तयार करा**: तुमच्या आवडत्या टेक्स्ट एडिटरमध्ये `.env` नावाची नवीन फाइल तयार करा. कमांड लाइन वापरत असल्यास, Unix-आधारित सिस्टमवर `touch` किंवा Windows वर `echo` वापरू शकता: - - Unix-आधारित सिस्टम: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **`.env` फाइल संपादित करा**: `.env` फाइल टेक्स्ट एडिटरमध्ये उघडा (उदा. VS Code, Notepad++, किंवा इतर कोणताही एडिटर). खालील ओळ फाइलमध्ये जोडा, `your_github_token_here` च्या जागी तुमचा खरा GitHub टोकन टाका: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **फाइल जतन करा**: बदल जतन करा आणि टेक्स्ट एडिटर बंद करा. - -5. **`python-dotenv` इन्स्टॉल करा**: जर आधी इन्स्टॉल केले नसेल तर, `.env` फाइलमधील पर्यावरणीय चल Python अॅप्लिकेशनमध्ये लोड करण्यासाठी `python-dotenv` पॅकेज इन्स्टॉल करा. `pip` वापरून इन्स्टॉल करू शकता: - - ```bash - pip install python-dotenv - ``` - -6. **Python स्क्रिप्टमध्ये पर्यावरणीय चल लोड करा**: तुमच्या Python स्क्रिप्टमध्ये `python-dotenv` पॅकेज वापरून `.env` फाइलमधील पर्यावरणीय चल लोड करा: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -इतकेच! तुम्ही यशस्वीपणे `.env` फाइल तयार केली, GitHub टोकन जोडला आणि Python अॅप्लिकेशनमध्ये लोड केला. - -## तुमच्या संगणकावर स्थानिकरित्या कसे चालवायचे - -कोड तुमच्या संगणकावर स्थानिकरित्या चालवण्यासाठी, तुमच्याकडे काही आवृत्तीची [Python इन्स्टॉल केलेली](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst) असणे आवश्यक आहे. - -नंतर रेपो वापरण्यासाठी, तुम्हाला ते क्लोन करावे लागेल: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -सर्व काही तयार झाल्यावर, तुम्ही सुरुवात करू शकता! - -## ऐच्छिक टप्पे - -### Miniconda इन्स्टॉल करणे - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) हा Conda, Python आणि काही पॅकेजेस इन्स्टॉल करण्यासाठी हलका इंस्टॉलर आहे. -Conda हा पॅकेज मॅनेजर आहे, जो वेगवेगळ्या Python [**व्हर्च्युअल एन्व्हायर्नमेंट्स**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) आणि पॅकेजेस सहज सेटअप आणि स्विच करण्यास मदत करतो. `pip` द्वारे उपलब्ध नसलेले पॅकेजेस इन्स्टॉल करण्यासाठीही उपयुक्त आहे. - -तुम्ही [MiniConda इन्स्टॉलेशन मार्गदर्शक](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) फॉलो करू शकता. - -Miniconda इन्स्टॉल केल्यानंतर, तुम्हाला रेपो क्लोन करावे लागेल (जर आधी केले नसेल तर). - -नंतर, तुम्हाला व्हर्च्युअल एन्व्हायर्नमेंट तयार करायचे आहे. Conda वापरून हे करण्यासाठी, नवीन एन्व्हायर्नमेंट फाइल (_environment.yml_) तयार करा. Codespaces वापरत असल्यास, `.devcontainer` फोल्डरमध्ये तयार करा, म्हणजे `.devcontainer/environment.yml`. - -खालील कोड स्निपेटने तुमची एन्व्हायर्नमेंट फाइल भरा: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -जर तुम्हाला Conda वापरताना त्रुटी आल्या तर, टर्मिनलमध्ये खालील कमांड वापरून Microsoft AI लायब्ररी मॅन्युअली इन्स्टॉल करू शकता. - -``` -conda install -c microsoft azure-ai-ml -``` - -एन्व्हायर्नमेंट फाइलमध्ये आवश्यक अवलंबित्व नमूद केले आहेत. `` म्हणजे तुम्हाला तुमच्या Conda एन्व्हायर्नमेंटसाठी हवे असलेले नाव, आणि `` म्हणजे तुम्हाला वापरायची Python ची आवृत्ती, उदा. `3` ही Python ची नवीनतम मुख्य आवृत्ती आहे. - -हे केल्यानंतर, खालील कमांड्स चालवून तुमचे Conda एन्व्हायर्नमेंट तयार करा: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -कोणतीही अडचण आल्यास [Conda एन्व्हायर्नमेंट्स मार्गदर्शक](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst) पहा. - -### Python सपोर्ट एक्सटेंशनसह Visual Studio Code वापरणे - -आम्ही शिफारस करतो की या कोर्ससाठी [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) एडिटर आणि [Python सपोर्ट एक्सटेंशन](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) वापरा. मात्र, ही फक्त शिफारस आहे, अनिवार्य नाही. - -> **टीप**: VS Code मध्ये कोर्स रेपो उघडल्यावर, तुम्हाला प्रोजेक्ट कंटेनरमध्ये सेटअप करण्याचा पर्याय मिळतो. कारण कोर्स रेपोमध्ये [विशेष `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) फोल्डर आहे. याबद्दल नंतर अधिक माहिती. - -> **टीप**: रेपो क्लोन करून VS Code मध्ये उघडल्यानंतर, तो आपोआप Python सपोर्ट एक्सटेंशन इन्स्टॉल करण्याचा सल्ला देतो. - -> **टीप**: जर VS Code तुम्हाला रेपो कंटेनरमध्ये पुन्हा उघडण्याचा सल्ला देत असेल, तर स्थानिक इन्स्टॉल केलेली Python आवृत्ती वापरण्यासाठी हा सल्ला नाकारावा. - -### ब्राउझरमध्ये Jupyter वापरणे - -तुम्ही प्रोजेक्टवर [Jupyter पर्यावरण](https://jupyter.org?WT.mc_id=academic-105485-koreyst) वापरून थेट ब्राउझरमध्ये काम करू शकता. क्लासिक Jupyter आणि [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) दोन्हीमध्ये ऑटो-कंप्लीशन, कोड हायलाइटिंग यांसारख्या सुविधा आहेत. - -स्थानिकरित्या Jupyter सुरू करण्यासाठी, टर्मिनल/कमांड लाइन उघडा, कोर्स डायरेक्टरीमध्ये जा आणि खालील कमांड चालवा: - -```bash -jupyter notebook -``` - -किंवा - -```bash -jupyterhub -``` - -यामुळे Jupyter सुरू होईल आणि त्याचा URL कमांड लाइन विंडोमध्ये दिसेल. - -URL वर प्रवेश केल्यावर, तुम्हाला कोर्सचा आराखडा दिसेल आणि तुम्ही कोणत्याही `*.ipynb` फाइलवर जाऊ शकता. उदा., `08-building-search-applications/python/oai-solution.ipynb`. - -### कंटेनरमध्ये चालवणे - -तुमच्या संगणकावर किंवा Codespace वर सगळं सेटअप करण्याऐवजी, तुम्ही [कंटेनर](../../../00-course-setup/) वापरू शकता. कोर्स रेपोमधील विशेष `.devcontainer` फोल्डरमुळे VS Code प्रोजेक्ट कंटेनरमध्ये सेटअप करू शकतो. Codespaces व्यतिरिक्त, यासाठी Docker इन्स्टॉल करावा लागेल आणि थोडा अधिक काम लागतो, त्यामुळे कंटेनर वापराचा अनुभव असलेल्या लोकांसाठीच आम्ही शिफारस करतो. - -GitHub Codespaces वापरताना तुमच्या API कीज सुरक्षित ठेवण्याचा एक उत्तम मार्ग म्हणजे Codespace Secrets वापरणे. यासाठी [Codespaces secrets management](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) मार्गदर्शक पहा. - -## धडे आणि तांत्रिक गरजा - -कोर्समध्ये ६ संकल्पना धडे आणि ६ कोडिंग धडे आहेत. - -कोडिंग धड्यांसाठी, आम्ही Azure OpenAI Service वापरत आहोत. हा कोड चालवण्यासाठी तुम्हाला Azure OpenAI सेवा आणि API की आवश्यक आहे. प्रवेशासाठी तुम्ही [हा अर्ज](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst) पूर्ण करू शकता. - -तुमचा अर्ज प्रक्रिया होत असताना, प्रत्येक कोडिंग धड्यात `README.md` फाइल असते जिथे तुम्ही कोड आणि आउटपुट पाहू शकता. - -## Azure OpenAI Service प्रथमच वापरत असाल तर - -जर तुम्ही Azure OpenAI सेवा प्रथमच वापरत असाल, तर कृपया [Azure OpenAI Service resource कसे तयार करायचे आणि तैनात करायचे](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) या मार्गदर्शकाचे पालन करा. - -## OpenAI API प्रथमच वापरत असाल तर - -जर तुम्ही OpenAI API प्रथमच वापरत असाल, तर कृपया [Interface कसे तयार करायचे आणि वापरायचे](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) या मार्गदर्शकाचे पालन करा. - -## इतर शिकणाऱ्यांशी भेटा - -आम्ही आमच्या अधिकृत [AI Community Discord server](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) मध्ये इतर शिकणाऱ्यांशी भेटण्यासाठी चॅनेल तयार केले आहेत. हे जेनरेटिव्ह AI मध्ये प्रगती करणाऱ्या उद्योजक, बिल्डर्स, विद्यार्थ्यांसाठी नेटवर्किंगसाठी उत्तम ठिकाण आहे. - -[![Join discord channel](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -प्रोजेक्ट टीम देखील या Discord सर्व्हरवर शिकणाऱ्यांना मदत करण्यासाठी उपलब्ध असेल. - -## योगदान द्या - -हा कोर्स एक ओपन-सोर्स उपक्रम आहे. तुम्हाला सुधारणा किंवा समस्या दिसल्यास, कृपया [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) तयार करा किंवा [GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) नोंदवा. - -प्रोजेक्ट टीम सर्व योगदानांचे निरीक्षण करेल. ओपन सोर्समध्ये योगदान देणे जनरेटिव्ह AI मध्ये तुमचा करिअर घडवण्याचा एक उत्तम मार्ग आहे. - -अधिकांश योगदानांसाठी तुम्हाला Contributor License Agreement (CLA) सहमत व्हावे लागते, ज्यात तुम्ही सांगता की तुम्हाला तुमच्या योगदानाचा वापर करण्याचा अधिकार आहे. तपशीलांसाठी [CLA, Contributor License Agreement वेबसाइट](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst) पहा. - -महत्त्वाचे: या रेपोमधील मजकूर भाषांतर करताना कृपया मशीन ट्रान्सलेशन वापरू नका. आम्ही समुदायाद्वारे भाषांतरांची पडताळणी करू, त्यामुळे फक्त तुम्ही चांगल्या प्रकारे जाणता त्या भाषांसाठीच भाषांतरासाठी स्वयंसेवक व्हा. - -तुम्ही pull request सबमिट केल्यावर, CLA-बॉट आपोआप ठरवेल की तुम्हाला CLA प्रदान करायची गरज आहे का आणि PR योग्य लेबल किंवा टिप्पणीने सजवेल. फक्त बॉटच्या सूचनांचे पालन करा. हे तुम्हाला सर्व रेपोजमध्ये एकदाच करावे लागेल. - -हा प्रोजेक्ट [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst) स्वीकारतो. अधिक माहितीसाठी Code of Conduct FAQ वाचा किंवा [Email opencode](opencode@microsoft.com) वर संपर्क करा. - -## चला सुरुवात करूया - -आता तुम्ही हा कोर्स पूर्ण करण्यासाठी आवश्यक टप्पे पूर्ण केले आहेत, तर चला [जनरेटिव्ह AI आणि LLMs ची ओळख](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) घेऊन सुरुवात करूया. - -**अस्वीकरण**: -हा दस्तऐवज AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) वापरून अनुवादित केला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असलो तरी, कृपया लक्षात घ्या की स्वयंचलित अनुवादांमध्ये चुका किंवा अचूकतेची कमतरता असू शकते. मूळ दस्तऐवज त्याच्या स्थानिक भाषेत अधिकृत स्रोत मानला जावा. महत्त्वाच्या माहितीसाठी व्यावसायिक मानवी अनुवाद करण्याची शिफारस केली जाते. या अनुवादाच्या वापरामुळे उद्भवणाऱ्या कोणत्याही गैरसमजुती किंवा चुकीच्या अर्थलागी आम्ही जबाबदार नाही. \ No newline at end of file + + + + diff --git a/translations/mr/00-course-setup/SETUP.md b/translations/mr/00-course-setup/SETUP.md deleted file mode 100644 index 5752bc54c..000000000 --- a/translations/mr/00-course-setup/SETUP.md +++ /dev/null @@ -1,146 +0,0 @@ - -# तुमचे डेव्हलपमेंट वातावरण सेट करा - -आम्ही या रेपॉझिटरी आणि कोर्ससाठी [development container](https://containers.dev?WT.mc_id=academic-105485-koreyst) वापरला आहे ज्यामध्ये Python3, .NET, Node.js आणि Java विकासासाठी Universal runtime आहे. संबंधित कॉन्फिगरेशन `devcontainer.json` फाईलमध्ये परिभाषित आहे जी या रेपॉझिटरीच्या मूळ `.devcontainer/` फोल्डरमध्ये आहे. - -डेव्ह कंटेनर सक्रिय करण्यासाठी, ते [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (क्लाउड-होस्टेड runtime साठी) किंवा [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (लोकल डिव्हाइस-होस्टेड runtime साठी) मध्ये सुरू करा. VS Code मध्ये dev containers कसे कार्य करतात याबाबत अधिक माहितीसाठी [ही दस्तऐवज वाचा](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst). - -> [!TIP] -> आम्ही GitHub Codespaces वापरण्याचा सल्ला देतो कारण ते कमी प्रयत्नात जलद सुरुवात करण्यास मदत करते. वैयक्तिक खात्यांसाठी ते उदार [फ्री वापर कोटा](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) देते. तुमचा कोटा जास्तीत जास्त वापरण्यासाठी निष्क्रिय codespaces थांबवण्यासाठी किंवा हटवण्यासाठी [timeouts](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) कॉन्फिगर करा. - - -## 1. असाइनमेंट्स चालविणे - -प्रत्येक धड्यात _ऐच्छिक_ असाइनमेंट्स असू शकतात जे Python, .NET/C#, Java आणि JavaScript/TypeScript यांसारख्या एक किंवा अधिक प्रोग्रामिंग भाषांमध्ये दिले जातील. या विभागात त्या असाइनमेंट्स चालविण्याबाबत सामान्य मार्गदर्शन दिले आहे. - -### 1.1 Python असाइनमेंट्स - -Python असाइनमेंट्स अ‍ॅप्लिकेशन्स (`.py` फाइल्स) किंवा Jupyter notebooks (`.ipynb` फाइल्स) स्वरूपात दिले जातात. -- नोटबुक चालविण्यासाठी, Visual Studio Code मध्ये ते उघडा, नंतर वर उजव्या कोपऱ्यातील _Select Kernel_ वर क्लिक करा आणि दिसणाऱ्या डीफॉल्ट Python 3 पर्यायाची निवड करा. आता तुम्ही _Run All_ करून नोटबुक चालवू शकता. -- कमांड-लाइनवरून Python अ‍ॅप्लिकेशन्स चालविण्यासाठी, असाइनमेंट-विशिष्ट सूचना पाळा ज्यामुळे योग्य फाइल्स निवडता येतील आणि आवश्यक आर्ग्युमेंट्स दिले जातील. - -## 2. प्रदाते कॉन्फिगर करणे - -असाइनमेंट्स **कदाचित** एक किंवा अधिक Large Language Model (LLM) डिप्लॉयमेंट्ससाठी OpenAI, Azure किंवा Hugging Face सारख्या समर्थित सेवा प्रदात्यांद्वारे काम करण्यासाठी सेटअप केले जाऊ शकतात. हे प्रदाते _hosted endpoint_ (API) पुरवतात ज्याला योग्य प्रमाणपत्रांसह (API key किंवा token) प्रोग्रामॅटिकली प्रवेश करता येतो. या कोर्समध्ये आम्ही खालील प्रदात्यांवर चर्चा करतो: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) ज्यामध्ये मुख्य GPT सिरीजसह विविध मॉडेल्स आहेत. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) जे OpenAI मॉडेल्ससाठी एंटरप्राइझ रेडीनेसवर लक्ष केंद्रित करते - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) मुक्त स्रोत मॉडेल्स आणि इन्फरन्स सर्व्हरसाठी - -**या व्यायामांसाठी तुम्हाला तुमची स्वतःची खाती वापरावी लागतील**. असाइनमेंट्स ऐच्छिक आहेत त्यामुळे तुम्ही तुमच्या आवडीनुसार एक, सर्व किंवा कोणतेही प्रदाते सेटअप करू शकता. साइनअपसाठी काही मार्गदर्शन: - -| Signup | Cost | API Key | Playground | Comments | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst)| [Pricing](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst)| [Project-based](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [No-Code, Web](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | अनेक मॉडेल्स उपलब्ध | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst)| [Pricing](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst)| [SDK Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst)| [Studio Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [प्रवेशासाठी पूर्व अर्ज आवश्यक](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst)| -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Pricing](https://huggingface.co/pricing) | [Access Tokens](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst)| [Hugging Chat मध्ये मर्यादित मॉडेल्स आहेत](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -वेगवेगळ्या प्रदात्यांसाठी या रेपॉझिटरीला _कॉन्फिगर_ करण्यासाठी खालील सूचनांचे पालन करा. विशिष्ट प्रदाता आवश्यक असलेल्या असाइनमेंट्सच्या फाइलनाम्यात खालील टॅग्स असतील: - - `aoai` - Azure OpenAI endpoint, key आवश्यक - - `oai` - OpenAI endpoint, key आवश्यक - - `hf` - Hugging Face token आवश्यक - -तुम्ही एक, काहीही किंवा सर्व प्रदाते कॉन्फिगर करू शकता. संबंधित असाइनमेंट्समध्ये प्रमाणपत्रे नसल्यास त्रुटी येतील. - -### 2.1. `.env` फाइल तयार करा - -आम्ही गृहित धरतो की तुम्ही वरील मार्गदर्शन वाचले आहे, संबंधित प्रदात्यांसाठी साइन अप केले आहे आणि आवश्यक प्रमाणीकरण क्रेडेन्शियल्स (API_KEY किंवा token) मिळवले आहेत. Azure OpenAI च्या बाबतीत, तुम्हाकडे Azure OpenAI सेवा (endpoint) ची वैध डिप्लॉयमेंट आणि किमान एक GPT मॉडेल चॅट पूर्णतेसाठी डिप्लॉय केलेले आहे. - -पुढील पायरी म्हणजे तुमच्या **लोकल पर्यावरणातील व्हेरिएबल्स** खालीलप्रमाणे कॉन्फिगर करणे: - -1. मूळ फोल्डरमध्ये `.env.copy` नावाची फाइल शोधा ज्यामध्ये खालीलप्रमाणे सामग्री असावी: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. खालील कमांड वापरून ती फाइल `.env` मध्ये कॉपी करा. ही फाइल _gitignore_ केलेली आहे, त्यामुळे गुपिते सुरक्षित राहतात. - - ```bash - cp .env.copy .env - ``` - -3. पुढील विभागात दिल्याप्रमाणे `=` च्या उजव्या बाजूला असलेली जागा योग्य माहितीने भरा. - -3. (पर्यायी) जर तुम्ही GitHub Codespaces वापरत असाल, तर तुम्हाला या रेपॉझिटरीशी संबंधित _Codespaces secrets_ म्हणून पर्यावरणीय व्हेरिएबल्स जतन करण्याचा पर्याय आहे. अशा परिस्थितीत तुम्हाला लोकल .env फाइल सेटअप करण्याची गरज नाही. **तथापि, हा पर्याय फक्त GitHub Codespaces वापरत असल्यासच कार्य करतो.** Docker Desktop वापरत असल्यास तुम्हाला .env फाइल सेटअप करावीच लागेल. - -### 2.2. `.env` फाइल भरा - -व्हेरिएबल्स काय दर्शवतात हे समजून घेण्यासाठी त्यांची नावे पाहूया: - -| Variable | वर्णन | -| :--- | :--- | -| HUGGING_FACE_API_KEY | हा तुमच्या प्रोफाइलमध्ये सेट केलेला वापरकर्ता प्रवेश टोकन आहे | -| OPENAI_API_KEY | Azure नसलेल्या OpenAI endpoints साठी सेवा वापरण्याचा अधिकृत की | -| AZURE_OPENAI_API_KEY | Azure OpenAI सेवा वापरण्याचा अधिकृत की | -| AZURE_OPENAI_ENDPOINT | Azure OpenAI संसाधनासाठी डिप्लॉय केलेला endpoint | -| AZURE_OPENAI_DEPLOYMENT | _टेक्स्ट जनरेशन_ मॉडेल डिप्लॉयमेंट endpoint | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | _टेक्स्ट एम्बेडिंग्स_ मॉडेल डिप्लॉयमेंट endpoint | -| | | - -टीप: शेवटचे दोन Azure OpenAI व्हेरिएबल्स चॅट पूर्णता (टेक्स्ट जनरेशन) आणि व्हेक्टर शोध (एम्बेडिंग्स) साठी डीफॉल्ट मॉडेल दर्शवतात. त्यांचे सेटअप संबंधित असाइनमेंट्समध्ये दिले जाईल. - -### 2.3 Azure कॉन्फिगर करा: पोर्टलमधून - -Azure OpenAI endpoint आणि key ची माहिती [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) मध्ये मिळेल, तर तेथे सुरुवात करूया. - -1. [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) वर जा -1. साइडबारमधील (डाव्या बाजूचा मेनू) **Keys and Endpoint** पर्यायावर क्लिक करा -1. **Show Keys** वर क्लिक करा - KEY 1, KEY 2 आणि Endpoint दिसतील -1. AZURE_OPENAI_API_KEY साठी KEY 1 वापरा -1. AZURE_OPENAI_ENDPOINT साठी Endpoint वापरा - -आता आपल्याला डिप्लॉय केलेल्या विशिष्ट मॉडेल्ससाठी endpoints लागतील. - -1. Azure OpenAI संसाधनासाठी साइडबारमधील **Model deployments** पर्यायावर क्लिक करा -1. गंतव्य पृष्ठावर, **Manage Deployments** वर क्लिक करा - -हे तुम्हाला Azure OpenAI Studio वेबसाइटवर घेऊन जाईल, जिथे पुढील मूल्ये मिळतील. - -### 2.4 Azure कॉन्फिगर करा: स्टुडिओमधून - -1. वर दिलेल्या प्रमाणे तुमच्या संसाधनातून [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) वर जा -1. साइडबारमधील (डावीकडील) **Deployments** टॅबवर क्लिक करा जेथे सध्या डिप्लॉय केलेले मॉडेल्स दिसतील -1. तुमचे इच्छित मॉडेल डिप्लॉय नसेल तर **Create new deployment** वापरून ते डिप्लॉय करा -1. तुम्हाला _text-generation_ मॉडेलची गरज आहे - आम्ही **gpt-35-turbo** शिफारस करतो -1. तुम्हाला _text-embedding_ मॉडेलची गरज आहे - आम्ही **text-embedding-ada-002** शिफारस करतो - -आता पर्यावरणीय व्हेरिएबल्समध्ये _Deployment name_ अपडेट करा. हे सहसा मॉडेलच्या नावासारखेच असते जोपर्यंत तुम्ही ते स्पष्टपणे बदलले नसेल. उदाहरणार्थ: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**काम पूर्ण झाल्यावर .env फाइल जतन करायला विसरू नका**. आता तुम्ही फाइल बंद करू शकता आणि नोटबुक चालविण्याच्या सूचनांकडे परत जाऊ शकता. - -### 2.5 OpenAI कॉन्फिगर करा: प्रोफाइलमधून - -तुमचा OpenAI API key तुमच्या [OpenAI खात्यात](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) सापडेल. जर तुमच्याकडे खाते नसेल तर तुम्ही साइन अप करून API key तयार करू शकता. की मिळाल्यानंतर `.env` फाइलमधील `OPENAI_API_KEY` व्हेरिएबलमध्ये ती भरा. - -### 2.6 Hugging Face कॉन्फिगर करा: प्रोफाइलमधून - -तुमचा Hugging Face टोकन तुमच्या प्रोफाइलमधील [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst) मध्ये सापडेल. हे सार्वजनिकपणे पोस्ट करू नका किंवा शेअर करू नका. त्याऐवजी, या प्रोजेक्टसाठी नवीन टोकन तयार करा आणि ते `.env` फाइलमधील `HUGGING_FACE_API_KEY` व्हेरिएबलमध्ये कॉपी करा. _टीप:_ हे तांत्रिकदृष्ट्या API key नाही, पण प्रमाणीकरणासाठी वापरले जाते म्हणून आम्ही नाव ठेवले आहे जेणेकरून सुसंगतता राहील. - -**अस्वीकरण**: -हा दस्तऐवज AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) वापरून अनुवादित केला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असलो तरी, कृपया लक्षात घ्या की स्वयंचलित अनुवादांमध्ये चुका किंवा अचूकतेत त्रुटी असू शकतात. मूळ दस्तऐवज त्याच्या स्थानिक भाषेत अधिकृत स्रोत मानला जावा. महत्त्वाच्या माहितीसाठी व्यावसायिक मानवी अनुवाद करण्याची शिफारस केली जाते. या अनुवादाच्या वापरामुळे उद्भवणाऱ्या कोणत्याही गैरसमजुती किंवा चुकीच्या अर्थलागी आम्ही जबाबदार नाही. \ No newline at end of file diff --git a/translations/mr/04-prompt-engineering-fundamentals/README.md b/translations/mr/04-prompt-engineering-fundamentals/README.md index 3ace7843a..2e72bb6ef 100644 --- a/translations/mr/04-prompt-engineering-fundamentals/README.md +++ b/translations/mr/04-prompt-engineering-fundamentals/README.md @@ -1,458 +1,15 @@ - -# Prompt Engineering Fundamentals - -[![Prompt Engineering Fundamentals](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.mr.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## परिचय -हा मॉड्यूल जनरेटिव AI मॉडेल्समध्ये प्रभावी प्रॉम्प्ट तयार करण्यासाठी आवश्यक संकल्पना आणि तंत्रे समजावून सांगतो. LLM कडे प्रॉम्प्ट कसे लिहिले जाते हे देखील महत्त्वाचे असते. काळजीपूर्वक तयार केलेला प्रॉम्प्ट उत्तम दर्जाचा प्रतिसाद मिळवू शकतो. पण _प्रॉम्प्ट_ आणि _प्रॉम्प्ट इंजिनिअरिंग_ या संज्ञा नेमक्या काय अर्थ लावतात? आणि मी LLM कडे पाठवणाऱ्या प्रॉम्प्ट _इनपुट_ मध्ये कसे सुधारणा करू शकतो? या प्रश्नांची उत्तरे आपण या आणि पुढील अध्यायात शोधणार आहोत. - -_जनरेटिव AI_ वापरकर्त्यांच्या विनंत्यांनुसार नवीन सामग्री (उदा., मजकूर, प्रतिमा, ऑडिओ, कोड इ.) तयार करू शकतो. हे OpenAI च्या GPT ("Generative Pre-trained Transformer") सारख्या _Large Language Models_ चा वापर करून साध्य होते, जे नैसर्गिक भाषा आणि कोड वापरण्यासाठी प्रशिक्षित केलेले असतात. - -वापरकर्ते आता या मॉडेल्सशी परिचित संवाद पद्धतींनी, जसे की चॅट, संवाद साधू शकतात, ज्यासाठी त्यांना तांत्रिक कौशल्य किंवा प्रशिक्षणाची गरज नाही. हे मॉडेल्स _प्रॉम्प्ट-आधारित_ असतात - वापरकर्ता मजकूर इनपुट (प्रॉम्प्ट) पाठवतो आणि AI प्रतिसाद (पूर्णता) प्राप्त करतो. नंतर ते "AI सोबत चॅट" करत, अनेक टप्प्यांमध्ये संवाद साधून, आपला प्रॉम्प्ट सुधारत जातात जोपर्यंत प्रतिसाद त्यांच्या अपेक्षांशी जुळत नाही. - -"प्रॉम्प्ट" आता जनरेटिव AI अ‍ॅप्ससाठी मुख्य _प्रोग्रामिंग इंटरफेस_ बनले आहेत, जे मॉडेल्सना काय करायचे ते सांगतात आणि परत मिळणाऱ्या प्रतिसादांच्या गुणवत्तेवर प्रभाव टाकतात. "Prompt Engineering" हा एक वेगाने वाढणारा अभ्यासक्षेत्र आहे जो प्रॉम्प्ट डिझाइन आणि ऑप्टिमायझेशनवर लक्ष केंद्रित करतो, ज्यामुळे प्रमाणबद्ध आणि दर्जेदार प्रतिसाद मिळतात. - -## शिकण्याचे उद्दिष्ट - -या धड्यात आपण Prompt Engineering म्हणजे काय, ते का महत्त्वाचे आहे, आणि दिलेल्या मॉडेल व अ‍ॅप्लिकेशन उद्दिष्टासाठी अधिक प्रभावी प्रॉम्प्ट कसे तयार करायचे हे शिकू. आपण प्रॉम्प्ट इंजिनिअरिंगसाठी मूलभूत संकल्पना आणि सर्वोत्तम पद्धती समजून घेऊ - तसेच एक इंटरएक्टिव Jupyter Notebook "sandbox" वातावरणाबद्दल जाणून घेऊ जिथे आपण या संकल्पनांचा प्रत्यक्ष उदाहरणांवर वापर पाहू शकतो. - -या धड्याच्या शेवटी आपण सक्षम होऊ: - -1. प्रॉम्प्ट इंजिनिअरिंग म्हणजे काय आणि ते का महत्त्वाचे आहे हे समजावून सांगणे. -2. प्रॉम्प्टचे घटक काय आहेत आणि ते कसे वापरले जातात हे वर्णन करणे. -3. प्रॉम्प्ट इंजिनिअरिंगसाठी सर्वोत्तम पद्धती आणि तंत्रे शिकणे. -4. शिकलेल्या तंत्रांचा वापर करून OpenAI endpoint वापरून प्रत्यक्ष उदाहरणांवर लागू करणे. - -## मुख्य संज्ञा - -Prompt Engineering: AI मॉडेल्सना इच्छित आउटपुट तयार करण्यासाठी मार्गदर्शन करण्यासाठी इनपुट डिझाइन आणि सुधारण्याची प्रक्रिया. -Tokenization: मजकूर लहान घटकांमध्ये (टोकन्स) रूपांतरित करण्याची प्रक्रिया, ज्याला मॉडेल समजू शकते आणि प्रक्रिया करू शकते. -Instruction-Tuned LLMs: विशिष्ट सूचना वापरून सुधारित केलेले Large Language Models, ज्यामुळे त्यांची प्रतिसाद अचूकता आणि सुसंगतता वाढते. - -## शिकण्याचा Sandbox - -प्रॉम्प्ट इंजिनिअरिंग सध्या विज्ञानापेक्षा अधिक कला आहे. त्याबाबत आपली अंतर्ज्ञान सुधारण्याचा सर्वोत्तम मार्ग म्हणजे _अधिक सराव_ करणे आणि एक प्रयोगात्मक दृष्टिकोन स्वीकारणे, ज्यात अ‍ॅप्लिकेशन क्षेत्रातील तज्ञता, शिफारस केलेल्या तंत्रांचा वापर आणि मॉडेल-विशिष्ट ऑप्टिमायझेशनचा समावेश असतो. - -या धड्यासोबत दिलेला Jupyter Notebook एक _sandbox_ वातावरण प्रदान करतो जिथे आपण शिकलेले त्वरित वापरून पाहू शकता - धड्यादरम्यान किंवा शेवटी दिलेल्या कोड चॅलेंजचा भाग म्हणून. व्यायाम करण्यासाठी आपल्याला आवश्यक आहे: - -1. **Azure OpenAI API की** - तैनात केलेल्या LLM साठी सेवा एंडपॉइंट. -2. **Python Runtime** - ज्यात Notebook चालवता येईल. -3. **स्थानिक पर्यावरणीय चल (Local Env Variables)** - _आता [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) चरण पूर्ण करा_. - -Notebook मध्ये _प्रारंभिक_ व्यायाम दिलेले आहेत - पण आपण स्वतःचे _Markdown_ (वर्णन) आणि _Code_ (प्रॉम्प्ट विनंत्या) विभाग जोडून अधिक उदाहरणे किंवा कल्पना वापरून पाहण्यास प्रोत्साहित आहोत - आणि प्रॉम्प्ट डिझाइनसाठी आपली अंतर्ज्ञान वाढवा. - -## चित्रात्मक मार्गदर्शक - -या धड्यात काय शिकवले जाईल याचा एक मोठा आढावा पाहू इच्छिता? हा चित्रात्मक मार्गदर्शक पहा, जो मुख्य विषय आणि प्रत्येक विषयासाठी महत्त्वाच्या मुद्द्यांची झलक देतो. धडा आपल्याला मूलभूत संकल्पना आणि आव्हाने समजून घेण्यापासून सुरुवात करून, संबंधित प्रॉम्प्ट इंजिनिअरिंग तंत्रे आणि सर्वोत्तम पद्धती वापरून त्यावर मात करण्यापर्यंत घेऊन जातो. लक्षात ठेवा की या मार्गदर्शकातील "Advanced Techniques" विभाग हा या अभ्यासक्रमाच्या _पुढील_ अध्यायातील विषयांशी संबंधित आहे. - -![Illustrated Guide to Prompt Engineering](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.mr.png) - -## आमचे स्टार्टअप - -आता, चला पाहूया की _हा विषय_ आमच्या स्टार्टअपच्या [शिक्षणात AI नवकल्पना आणण्याच्या](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst) मिशनशी कसा संबंधित आहे. आम्हाला _वैयक्तिकृत शिक्षण_ साठी AI-चालित अ‍ॅप्लिकेशन्स तयार करायच्या आहेत - तर चला विचार करूया की आमच्या अ‍ॅप्लिकेशनचे विविध वापरकर्ते प्रॉम्प्ट कसे "डिझाइन" करू शकतात: - -- **प्रशासक** AI ला _अभ्यासक्रम डेटा विश्लेषण करून कव्हरेजमधील अंतर शोधण्यास_ सांगू शकतात. AI निकालांचे सारांश तयार करू शकतो किंवा कोडसह त्यांचे दृश्यात्मक सादरीकरण करू शकतो. -- **शिक्षक** AI ला _लक्ष्यित प्रेक्षक आणि विषयासाठी धडा योजना तयार करण्यास_ सांगू शकतात. AI निर्दिष्ट स्वरूपात वैयक्तिकृत योजना तयार करू शकतो. -- **विद्यार्थी** AI ला _अडचणीच्या विषयात शिकवण्यास_ सांगू शकतात. AI आता विद्यार्थ्यांना त्यांच्या स्तरानुसार धडे, सूचना आणि उदाहरणे देऊन मार्गदर्शन करू शकतो. - -हे फक्त सुरुवात आहे. [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) पहा - शिक्षण तज्ञांनी तयार केलेली एक मुक्त स्रोत प्रॉम्प्ट लायब्ररी - ज्यातून शक्यतांचा विस्तृत आढावा मिळेल! _sandbox मध्ये किंवा OpenAI Playground मध्ये काही प्रॉम्प्ट चालवून पाहा आणि काय होते ते पहा!_ - - - -## प्रॉम्प्ट इंजिनिअरिंग म्हणजे काय? - -या धड्याची सुरुवात आपण **Prompt Engineering** या संज्ञेची व्याख्या करून केली होती, ज्याचा अर्थ आहे दिलेल्या अ‍ॅप्लिकेशन उद्दिष्ट आणि मॉडेलसाठी सातत्यपूर्ण आणि दर्जेदार प्रतिसाद (पूर्णता) देण्यासाठी मजकूर इनपुट (प्रॉम्प्ट) डिझाइन आणि ऑप्टिमायझेशन करणे. आपण याला दोन टप्प्यांमध्ये पाहू शकतो: - -- दिलेल्या मॉडेल आणि उद्दिष्टासाठी प्रारंभिक प्रॉम्प्ट _डिझाइन_ करणे -- प्रतिसादाच्या गुणवत्तेत सुधारणा करण्यासाठी प्रॉम्प्ट _पुनरावृत्तीने सुधारित_ करणे - -हा एक प्रयोगात्मक प्रक्रिया आहे ज्यासाठी वापरकर्त्याची अंतर्ज्ञान आणि प्रयत्न आवश्यक असतात जेणेकरून सर्वोत्तम निकाल मिळू शकतील. तर हे का महत्त्वाचे आहे? त्याचे उत्तर शोधण्यासाठी आपल्याला तीन संकल्पना समजून घ्याव्या लागतील: - -- _Tokenization_ = मॉडेल प्रॉम्प्ट कसे "पाहते" -- _Base LLMs_ = मूलभूत मॉडेल प्रॉम्प्ट कसे "प्रक्रिया" करते -- _Instruction-Tuned LLMs_ = मॉडेल आता "कार्य" कसे पाहू शकते - -### Tokenization - -LLM प्रॉम्प्ट्सना _टोकन्सच्या अनुक्रमणिके_ म्हणून पाहते, जिथे वेगवेगळे मॉडेल्स (किंवा मॉडेलच्या आवृत्त्या) एकाच प्रॉम्प्टला वेगवेगळ्या प्रकारे टोकनाइझ करू शकतात. कारण LLMs टोकन्सवर प्रशिक्षित केलेले असतात (कच्च्या मजकूरावर नाही), प्रॉम्प्ट कसे टोकनाइझ होतात याचा थेट परिणाम तयार होणाऱ्या प्रतिसादाच्या गुणवत्तेवर होतो. - -Tokenization कसे कार्य करते याची कल्पना मिळवण्यासाठी, खालीलप्रमाणे [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) सारखे टूल वापरून पाहा. आपला प्रॉम्प्ट कॉपी करा आणि तो कसा टोकन्समध्ये रूपांतरित होतो ते पहा, विशेषतः रिक्त जागा आणि विरामचिन्हे कशी हाताळली जातात याकडे लक्ष द्या. लक्षात ठेवा की हा उदाहरण जुना LLM (GPT-3) दर्शवतो - त्यामुळे नवीन मॉडेलसह वापरल्यास वेगळा परिणाम मिळू शकतो. - -![Tokenization](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.mr.png) - -### संकल्पना: फाउंडेशन मॉडेल्स - -एकदा प्रॉम्प्ट टोकनाइझ झाला की, ["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (किंवा फाउंडेशन मॉडेल) ची मुख्य भूमिका त्या अनुक्रमातील पुढील टोकनची भाकीत करणे असते. LLMs मोठ्या मजकूर डेटासेटवर प्रशिक्षित असल्यामुळे, त्यांना टोकन्समधील सांख्यिकीय संबंधांची चांगली कल्पना असते आणि ते आत्मविश्वासाने भाकीत करू शकतात. लक्षात ठेवा की त्यांना प्रॉम्प्टमधील शब्दांचा _अर्थ_ समजत नाही; ते फक्त एक नमुना पाहतात ज्याला ते पुढील भाकीताने "पूर्ण" करू शकतात. ते वापरकर्त्याच्या हस्तक्षेपाने किंवा पूर्वनिर्धारित अटीने थांबवले जात नाही तोपर्यंत अनुक्रम भाकीत करत राहू शकतात. - -प्रॉम्प्ट-आधारित पूर्णता कशी कार्य करते हे पाहू इच्छिता? वर दिलेला प्रॉम्प्ट Azure OpenAI Studio च्या [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) मध्ये डीफॉल्ट सेटिंग्जसह टाका. सिस्टम प्रॉम्प्ट्सना माहितीच्या विनंती म्हणून हाताळते - त्यामुळे आपल्याला त्या संदर्भात समाधानकारक पूर्णता दिसेल. - -पण जर वापरकर्त्याला काही विशिष्ट निकष किंवा कार्य उद्दिष्ट पूर्ण करणारे उत्तर पाहिजे असेल तर? यासाठी _instruction-tuned_ LLMs मदतीला येतात. - -![Base LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.mr.png) - -### संकल्पना: Instruction Tuned LLMs - -[Instruction Tuned LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) फाउंडेशन मॉडेलपासून सुरू होतो आणि उदाहरणे किंवा इनपुट/आउटपुट जोड्यांसह (उदा., बहु-टप्प्यांचे "मेसेजेस") सूचनांसह त्याचे फाइन-ट्यूनिंग करतो, ज्यात स्पष्ट सूचना असू शकतात - आणि AI त्यानुसार प्रतिसाद देण्याचा प्रयत्न करतो. - -हे Reinforcement Learning with Human Feedback (RLHF) सारख्या तंत्रांचा वापर करते, ज्यामुळे मॉडेल _सूचना पाळणे_ आणि _फीडबॅकवरून शिकणे_ शिकते, ज्यामुळे ते व्यावहारिक अ‍ॅप्लिकेशन्ससाठी अधिक योग्य आणि वापरकर्त्यांच्या उद्दिष्टांसाठी अधिक सुसंगत प्रतिसाद तयार करू शकते. - -चला प्रयत्न करूया - वरचा प्रॉम्प्ट पुन्हा वापरा, पण आता _system message_ मध्ये खालील सूचना संदर्भ म्हणून द्या: - -> _आपल्याला दिलेली सामग्री दुसऱ्या वर्गाच्या विद्यार्थ्यासाठी संक्षेप करा. निकाल ३-५ बुलेट पॉइंट्ससह एका परिच्छेदात ठेवा._ - -पहा कसे निकाल आता इच्छित उद्दिष्ट आणि स्वरूपाशी जुळतो? शिक्षक आता हा प्रतिसाद थेट त्यांच्या स्लाइडसाठी वापरू शकतो. - -![Instruction Tuned LLM Chat Completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.mr.png) - -## प्रॉम्प्ट इंजिनिअरिंग का आवश्यक आहे? - -आता आपण समजले की LLMs प्रॉम्प्ट कसे प्रक्रिया करतात, तर पाहूया _का_ प्रॉम्प्ट इंजिनिअरिंग आवश्यक आहे. कारण सध्याचे LLMs काही आव्हाने निर्माण करतात ज्यामुळे _विश्वसनीय आणि सातत्यपूर्ण पूर्णता_ मिळवणे कठीण होते, जर प्रॉम्प्ट तयार करण्यासाठी आणि ऑप्टिमायझेशनसाठी प्रयत्न न केले तर. उदाहरणार्थ: - -1. **मॉडेल प्रतिसाद अनिश्चित असतात.** _समान प्रॉम्प्ट_ वेगवेगळ्या मॉडेल्स किंवा मॉडेल आवृत्त्यांमध्ये वेगवेगळे प्रतिसाद देऊ शकतो. तसेच _समान मॉडेल_ वेगवेगळ्या वेळा वेगळे निकाल देऊ शकते. _प्रॉम्प्ट इंजिनिअरिंग तंत्रे या फरकांना कमी करण्यासाठी चांगले मार्गदर्शक तयार करतात_. - -2. **मॉडेल्स चुकीचे प्रतिसाद तयार करू शकतात.** मॉडेल्स मोठ्या पण मर्यादित डेटासेटवर प्रशिक्षित असतात, ज्यामुळे त्यांना प्रशिक्षणाच्या बाहेरच्या संकल्पनांची माहिती नसते. परिणामी, ते चुकीचे, काल्पनिक किंवा ज्ञात तथ्यांशी विरोधी पूर्णता तयार करू शकतात. _प्रॉम्प्ट इंजिनिअरिंग वापरकर्त्यांना अशा चुकींची ओळख पटवून त्यांना कमी करण्यास मदत करते, उदा., AI कडून संदर्भ किंवा कारण विचारणे_. - -3. **मॉडेलची क्षमता वेगळी असू शकते.** नवीन मॉडेल्स किंवा मॉडेलच्या नवीन पिढ्या अधिक क्षमता देतात पण त्यांच्यासोबत वेगळे वैशिष्ट्ये, खर्च आणि गुंतागुंत देखील येतात. _प्रॉम्प्ट इंजिनिअरिंग सर्वोत्तम पद्धती आणि कार्यप्रवाह विकसित करण्यात मदत करते, जे वेगळेपण दूर करून मॉडेल-विशिष्ट गरजांशी सुसंगत असतात_. - -हे OpenAI किंवा Azure OpenAI Playground मध्ये प्रत्यक्ष पाहूया: - -- वेगवेगळ्या LLM तैनातींसह (उदा., OpenAI, Azure OpenAI, Hugging Face) समान प्रॉम्प्ट वापरा - फरक दिसले का? -- _समान_ LLM तैनातीसह (उदा., Azure OpenAI playground) समान प्रॉम्प्ट वारंवार वापरा - फरक कसे होते? - -### Fabrications चे उदाहरण - -या कोर्समध्ये, आपण **"fabrication"** हा शब्द वापरतो जेव्हा LLMs त्यांच्या प्रशिक्षणातील मर्यादा किंवा इतर कारणांमुळे कधीकधी तथ्यात्मकदृष्ट्या चुकीची माहिती तयार करतात. तुम्ही हे _"hallucinations"_ म्हणूनही ऐकले असेल, जे लोकप्रिय लेख किंवा संशोधन पेपरमध्ये वापरले जाते. मात्र, आम्ही _"fabrication"_ हा शब्द वापरण्याचा आग्रह धरतो कारण यामुळे आपण मशीन-चालित परिणामाला मानवी वैशिष्ट्य देण्यापास -# 2076 च्या मार्शियन युद्धावर धडा योजना - -## धडा उद्दिष्टे -- 2076 च्या मार्शियन युद्धाची पार्श्वभूमी समजून घेणे -- युद्धाच्या मुख्य कारणांची ओळख करणे -- युद्धातील महत्त्वाच्या घटना आणि परिणामांचे विश्लेषण करणे -- युद्धाचा मानवजातीवर आणि मंगळावर झालेल्या परिणामांचा आढावा घेणे - -## धडा कालावधी -- एक तास (60 मिनिटे) - -## आवश्यक सामग्री -- युद्धाच्या नकाशा आणि टाइमलाइन -- युद्धातील प्रमुख व्यक्तींची माहिती -- व्हिडिओ क्लिप्स किंवा चित्रपटांचे अंश (जर उपलब्ध असतील तर) -- प्रश्नोत्तरे आणि चर्चा सत्रासाठी नोट्स - -## धडा रचना - -### 1. परिचय (10 मिनिटे) -- 2076 च्या मार्शियन युद्धाची थोडक्यात ओळख -- युद्धाची पार्श्वभूमी आणि मंगळावर मानवी वसाहतींचा विकास -- युद्धाचे मुख्य कारणे काय होती यावर चर्चा - -### 2. युद्धाची मुख्य घटना (20 मिनिटे) -- युद्धाची सुरुवात कशी झाली? -- प्रमुख लढाया आणि रणनीती -- महत्त्वाच्या व्यक्ती आणि त्यांची भूमिका -- युद्धातील तंत्रज्ञान आणि यंत्रसामग्री - -### 3. युद्धाचा परिणाम (15 मिनिटे) -- मानवी आणि मंगळावर झालेल्या नुकसानाचा आढावा -- युद्धानंतरचे राजकीय आणि सामाजिक बदल -- युद्धाचा भविष्यातील अंतराळ संशोधनावर होणारा परिणाम - -### 4. चर्चा आणि प्रश्नोत्तरे (10 मिनिटे) -- विद्यार्थ्यांना युद्धाबद्दल विचारलेले प्रश्न -- युद्धाच्या नैतिक आणि तांत्रिक पैलूंवर चर्चा -- भविष्यात अशा युद्धांपासून कसे टाळता येईल यावर विचार - -### 5. सारांश आणि गृहपाठ (5 मिनिटे) -- धड्याचा सारांश -- गृहपाठ म्हणून युद्धावर एक निबंध लिहिण्यास सांगणे किंवा युद्धाच्या परिणामांवर एक प्रेझेंटेशन तयार करणे - -## अतिरिक्त टिपा -- युद्धाच्या ऐतिहासिक संदर्भासाठी विश्वसनीय स्रोत वापरा -- विद्यार्थ्यांना युद्धाच्या विविध पैलूंवर विचार करण्यास प्रोत्साहित करा -- शक्य असल्यास युद्धाशी संबंधित चित्रपट किंवा डॉक्युमेंट्री दाखवा ज्यामुळे समज अधिक सखोल होईल -वेब शोधात मला असे आढळले की मार्टियन युद्धांवर (उदा., टेलिव्हिजन मालिका किंवा पुस्तके) काल्पनिक कथा आहेत - पण 2076 मध्ये नाहीत. सामान्य समज देखील सांगते की 2076 हा _भविष्यातील_ वर्ष आहे आणि त्यामुळे तो कोणत्याही वास्तविक घटनेशी संबंधित असू शकत नाही. - -तर वेगवेगळ्या LLM प्रदात्यांसह हा प्रॉम्प्ट चालविल्यास काय होते? - -> **Response 1**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.mr.png) - -> **Response 2**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.mr.png) - -> **Response 3**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.mr.png) - -अपेक्षेप्रमाणे, प्रत्येक मॉडेल (किंवा मॉडेल आवृत्ती) थोडक्याफार वेगळ्या प्रतिसाद देतात, ज्यामागे स्टोकास्टिक वर्तन आणि मॉडेल क्षमतांतील फरक असतो. उदाहरणार्थ, एक मॉडेल ८वी इयत्तेतील प्रेक्षकांसाठी उद्दिष्ट ठेवते तर दुसरे उच्च माध्यमिक विद्यार्थ्याला लक्षात घेते. पण या तीनही मॉडेलांनी अशा प्रतिसादांची निर्मिती केली जी अनभिज्ञ वापरकर्त्याला ही घटना खरी असल्याचा भास देऊ शकतात. - -_मेटाप्रॉम्प्टिंग_ आणि _टेम्परेचर कॉन्फिगरेशन_ सारख्या प्रॉम्प्ट इंजिनिअरिंग तंत्रांनी मॉडेलच्या बनावट प्रतिसादांवर काही प्रमाणात नियंत्रण ठेवता येऊ शकते. नवीन प्रॉम्प्ट इंजिनिअरिंग _आर्किटेक्चर्स_ देखील नवीन साधने आणि तंत्रे सहजपणे प्रॉम्प्टच्या प्रवाहात समाविष्ट करतात, ज्यामुळे या परिणामांवर नियंत्रण किंवा कमी करण्यास मदत होते. - -## केस स्टडी: GitHub Copilot - -या विभागाचा आढावा घेऊया आणि पाहूया की प्रॉम्प्ट इंजिनिअरिंग प्रत्यक्षात कशा प्रकारे वापरली जाते, एका केस स्टडीद्वारे: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot हा तुमचा "AI जोडीदार प्रोग्रामर" आहे - तो टेक्स्ट प्रॉम्प्ट्सना कोड पूर्ण करण्यामध्ये रूपांतरित करतो आणि तुमच्या विकास वातावरणात (उदा., Visual Studio Code) सहज वापरासाठी समाकलित आहे. खालील ब्लॉग मालिकेत दस्तऐवजीकरणानुसार, सुरुवातीची आवृत्ती OpenAI Codex मॉडेलवर आधारित होती - ज्यामुळे अभियंत्यांना लवकरच लक्षात आले की मॉडेलचे फाइन-ट्यूनिंग आणि चांगल्या प्रॉम्प्ट इंजिनिअरिंग तंत्रांचा विकास करणे आवश्यक आहे, जेणेकरून कोडची गुणवत्ता सुधारता येईल. जुलैमध्ये त्यांनी [Codex पेक्षा अधिक प्रगत AI मॉडेल सादर केले](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst), जे अजून जलद सूचना देऊ शकते. - -त्यांच्या शिकण्याच्या प्रवासाचा मागोवा घेण्यासाठी खालील पोस्ट्स क्रमाने वाचा. - -- **मे 2023** | [GitHub Copilot तुमचा कोड समजून घेण्यात अधिक चांगला होत आहे](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **मे 2023** | [GitHub मध्ये: GitHub Copilot मागील LLMs सोबत काम करताना](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **जून 2023** | [GitHub Copilot साठी चांगले प्रॉम्प्ट कसे लिहावे](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **जुलै 2023** | [GitHub Copilot Codex पेक्षा पुढे जातो सुधारित AI मॉडेलसह](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **जुलै 2023** | [प्रॉम्प्ट इंजिनिअरिंग आणि LLMs साठी विकसक मार्गदर्शक](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **सप्टेंबर 2023** | [एंटरप्राइझ LLM अॅप कसे तयार करावे: GitHub Copilot कडून धडे](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -तुम्ही त्यांच्या [इंजिनिअरिंग ब्लॉग](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) मध्ये अशा आणखी पोस्ट्स पाहू शकता जसे की [ही पोस्ट](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) जी दाखवते की या मॉडेल्स आणि तंत्रांचा प्रत्यक्ष जगातील अॅप्लिकेशन्ससाठी कसा वापर केला जातो. - ---- - - - -## प्रॉम्प्ट बांधणी - -आपण पाहिले की प्रॉम्प्ट इंजिनिअरिंग का महत्त्वाची आहे - आता समजून घेऊया की प्रॉम्प्ट कसे _बांधले_ जातात जेणेकरून आपण वेगवेगळ्या तंत्रांचा वापर करून अधिक प्रभावी प्रॉम्प्ट डिझाइन कसे करता येईल हे तपासू शकू. - -### मूलभूत प्रॉम्प्ट - -चला मूलभूत प्रॉम्प्टपासून सुरुवात करूया: मॉडेलला कोणताही अतिरिक्त संदर्भ न देता पाठवलेला टेक्स्ट इनपुट. उदाहरणार्थ, जेव्हा आपण US राष्ट्रीय गाण्याच्या सुरुवातीच्या काही शब्दांना OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst) कडे पाठवतो, तेव्हा ते लगेच पुढील ओळी पूर्ण करते, ज्यामुळे मूलभूत भविष्यवाणी वर्तन स्पष्ट होते. - -| प्रॉम्प्ट (इनपुट) | पूर्णता (आउटपुट) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | असं वाटतं तुम्ही "The Star-Spangled Banner," म्हणजेच अमेरिकेचा राष्ट्रीय गाण्याचा सुरुवात करत आहात. पूर्ण गाणं असं आहे ... | - -### गुंतागुंतीचा प्रॉम्प्ट - -आता त्या मूलभूत प्रॉम्प्टमध्ये संदर्भ आणि सूचना जोडूया. [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) आपल्याला प्रॉम्प्ट एकत्रित करण्याची परवानगी देते, ज्यात _संदेश_ असतात: - -- इनपुट/आउटपुट जोड्या ज्या _वापरकर्ता_ इनपुट आणि _सहायक_ प्रतिसाद दर्शवतात. -- सिस्टम संदेश जो सहाय्यकाच्या वर्तन किंवा व्यक्तिमत्त्वाचा संदर्भ सेट करतो. - -आता विनंती खालील स्वरूपात असते, जिथे _टोकनायझेशन_ संदर्भ आणि संभाषणातून संबंधित माहिती प्रभावीपणे कॅप्चर करते. सिस्टम संदर्भ बदलल्यास पूर्णतेच्या गुणवत्तेवर तितकाच परिणाम होतो जितका वापरकर्त्याच्या इनपुटवर. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### सूचना प्रॉम्प्ट - -वरील उदाहरणांमध्ये, वापरकर्त्याचा प्रॉम्प्ट एक सोपा टेक्स्ट प्रश्न होता जो माहिती मागणी म्हणून समजला जाऊ शकतो. _सूचना_ प्रॉम्प्ट्समध्ये, आपण त्या टेक्स्टचा वापर करून एखादे कार्य अधिक तपशीलवार निर्दिष्ट करू शकतो, ज्यामुळे AI ला चांगली मार्गदर्शने मिळतात. उदाहरण: - -| प्रॉम्प्ट (इनपुट) | पूर्णता (आउटपुट) | सूचना प्रकार | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Write a description of the Civil War | _सोप्या परिच्छेदात परत केले_ | सोपा | -| Write a description of the Civil War. Provide key dates and events and describe their significance | _परिच्छेदानंतर मुख्य घटना आणि त्यांची महत्त्वाची तारीखांची यादी दिली_ | गुंतागुंतीचा | -| Write a description of the Civil War in 1 paragraph. Provide 3 bullet points with key dates and their significance. Provide 3 more bullet points with key historical figures and their contributions. Return the output as a JSON file | _अधिक तपशीलांसह JSON स्वरूपात आउटपुट दिले, जे तुम्ही कॉपी-पेस्ट करून फाइलमध्ये वापरू शकता आणि आवश्यकतेनुसार पडताळणी करू शकता_ | गुंतागुंतीचा. स्वरूपित. | - -## प्राथमिक सामग्री - -वरील उदाहरणांमध्ये, प्रॉम्प्ट अजूनही तुलनेने खुला होता, ज्यामुळे LLM ला त्याच्या पूर्व-प्रशिक्षित डेटासेटमधून कोणता भाग संबंधित आहे हे ठरवता येत होते. _प्राथमिक सामग्री_ डिझाइन पॅटर्नमध्ये, इनपुट टेक्स्ट दोन भागांमध्ये विभागलेला असतो: - -- एक सूचना (क्रिया) -- संबंधित सामग्री (जी क्रियेला प्रभावित करते) - -उदाहरणार्थ, सूचना आहे "हे २ वाक्यांत सारांश करा". - -| प्रॉम्प्ट (इनपुट) | पूर्णता (आउटपुट) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. It is named after the Roman god Jupiter.[19] When viewed from Earth, Jupiter can be bright enough for its reflected light to cast visible shadows,[20] and is on average the third-brightest natural object in the night sky after the Moon and Venus.
**Summarize this in 2 short sentences** | Jupiter, सूर्यापासून पाचवा ग्रह, सौरमालेतील सर्वात मोठा ग्रह आहे आणि तो रात्र आकाशातील सर्वात तेजस्वी वस्तूंपैकी एक आहे. तो रोमन देव Jupiter च्या नावाने ओळखला जातो आणि त्याचा द्रव्यमान सौरमालेतील इतर सर्व ग्रहांच्या एकत्रित द्रव्यमानाच्या दोन-आणि-अर्ध्या पट आहे. | - -प्राथमिक सामग्री विभाग विविध प्रकारे वापरला जाऊ शकतो ज्यामुळे अधिक प्रभावी सूचना देता येतात: - -- **उदाहरणे** - मॉडेलला स्पष्ट सूचना देण्याऐवजी, त्याला काय करायचे आहे याची उदाहरणे द्या आणि त्याला नमुना समजून घेऊ द्या. -- **संकेत** - सूचनेनंतर "संकेत" द्या ज्यामुळे पूर्णता अधिक संबंधित प्रतिसादाकडे वळेल. -- **टेम्पलेट्स** - हे पुनरावृत्ती करता येणारे 'रेसिपी' आहेत ज्यात प्लेसहोल्डर्स (व्हेरिएबल्स) असतात, जे विशिष्ट वापरासाठी डेटा वापरून सानुकूल करता येतात. - -चला याचा वापर प्रत्यक्षात पाहूया. - -### उदाहरणांचा वापर - -हा एक असा दृष्टिकोन आहे जिथे तुम्ही प्राथमिक सामग्री वापरून मॉडेलला इच्छित आउटपुटची काही उदाहरणे देता आणि त्याला नमुना समजून घेऊ देता. उदाहरणांच्या संख्येनुसार, आपण झिरो-शॉट, वन-शॉट, फ्यू-शॉट प्रॉम्प्टिंग करू शकतो. - -प्रॉम्प्ट आता तीन घटकांचा समावेश करतो: - -- कार्याचे वर्णन -- इच्छित आउटपुटची काही उदाहरणे -- नवीन उदाहरणाची सुरुवात (जी अप्रत्यक्ष कार्य वर्णन बनते) - -| शिकण्याचा प्रकार | प्रॉम्प्ट (इनपुट) | पूर्णता (आउटपुट) | -| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| झिरो-शॉट | "The Sun is Shining". स्पॅनिशमध्ये भाषांतर करा | "El Sol está brillando". | -| वन-शॉट | "The Sun is Shining" => ""El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| फ्यू-शॉट | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketball | -| | | | - -झिरो-शॉट प्रॉम्प्टिंगमध्ये आपल्याला स्पष्ट सूचना ("स्पॅनिशमध्ये भाषांतर करा") द्यावी लागते, पण वन-शॉट प्रॉम्प्टिंगमध्ये ती सूचना अप्रत्यक्षपणे समजते. फ्यू-शॉट उदाहरणात अधिक उदाहरणे देऊन मॉडेल अधिक अचूक अनुमान लावू शकते, कोणतीही अतिरिक्त सूचना न देता. - -### प्रॉम्प्ट संकेत - -प्राथमिक सामग्री वापरण्याचा आणखी एक तंत्र म्हणजे _संकेत_ देणे. या प्रकरणात, आपण मॉडेलला इच्छित प्रतिसादाच्या स्वरूपाचा एक छोटा तुकडा देऊन सुरुवात करतो. मॉडेल नंतर त्या संकेताचा वापर करून पुढे चालू ठेवते. - -| संकेतांची संख्या | प्रॉम्प्ट (इनपुट) | पूर्णता (आउटपुट) | -| :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. - -**Summarize This** | ज्युपिटर आपल्या सौरमालेतील सर्वात मोठा ग्रह आहे आणि सूर्यापासून पाचवा ग्रह आहे. तो एक वायवीय दैत्य आहे ज्याचे द्रव्यमान सूर्याच्या द्रव्यमानाच्या १/१००० भागाचे आहे, पण तो इतर सर्व ग्रहांच्या एकत्रित द्रव्यमानापेक्षा जास्त जड आहे. प्राचीन संस्कृतींना ज्युपिटर बद्दल खूप पूर्वीपासून माहिती आहे, आणि तो रात्रीच्या आकाशात सहज दिसतो.. | -| 1 | ज्युपिटर सूर्यापासून पाचवा ग्रह आहे आणि सौरमालेतील सर्वात मोठा ग्रह आहे. तो एक वायवीय दैत्य आहे ज्याचे द्रव्यमान सूर्याच्या द्रव्यमानाच्या १/१००० भागाचे आहे, पण सौरमालेतील इतर सर्व ग्रहांच्या एकत्रित द्रव्यमानाच्या दोन अर्ध्यांपेक्षा जास्त आहे. ज्युपिटर हा रात्रीच्या आकाशात नंग्या डोळ्यांनी दिसणाऱ्या सर्वात तेजस्वी वस्तूंपैकी एक आहे, आणि तो प्राचीन संस्कृतींना इतिहासाच्या नोंदी होण्यापूर्वीपासून ज्ञात आहे.
**Summarize This**
आपण जे शिकलो ते म्हणजे ज्युपिटर | सूर्यापासून पाचवा ग्रह आहे आणि सौरमालेतील सर्वात मोठा ग्रह आहे. तो एक वायवीय दैत्य आहे ज्याचे द्रव्यमान सूर्याच्या द्रव्यमानाच्या १/१००० भागाचे आहे, पण इतर सर्व ग्रहांच्या एकत्रित द्रव्यमानाच्या दोन अर्ध्यांपेक्षा जास्त आहे. तो सहज नंग्या डोळ्यांनी दिसतो आणि प्राचीन काळापासून ज्ञात आहे. | -| 2 | ज्युपिटर सूर्यापासून पाचवा ग्रह आहे आणि सौरमालेतील सर्वात मोठा ग्रह आहे. तो एक वायवीय दैत्य आहे ज्याचे द्रव्यमान सूर्याच्या द्रव्यमानाच्या १/१००० भागाचे आहे, पण सौरमालेतील इतर सर्व ग्रहांच्या एकत्रित द्रव्यमानाच्या दोन अर्ध्यांपेक्षा जास्त आहे. ज्युपिटर हा रात्रीच्या आकाशात नंग्या डोळ्यांनी दिसणाऱ्या सर्वात तेजस्वी वस्तूंपैकी एक आहे, आणि तो प्राचीन संस्कृतींना इतिहासाच्या नोंदी होण्यापूर्वीपासून ज्ञात आहे.
**Summarize This**
आपण शिकलोले टॉप ३ तथ्ये: | १. ज्युपिटर सूर्यापासून पाचवा ग्रह आहे आणि सौरमालेतील सर्वात मोठा ग्रह आहे.
२. तो एक वायवीय दैत्य आहे ज्याचे द्रव्यमान सूर्याच्या द्रव्यमानाच्या १/१००० भागाचे आहे...
३. ज्युपिटर प्राचीन काळापासून नंग्या डोळ्यांनी दिसतो ... | -| | | | - -### Prompt Templates - -प्रॉम्प्ट टेम्प्लेट म्हणजे _पूर्वनिर्धारित प्रॉम्प्टसाठीची रेसिपी_ जी आवश्यकतेनुसार संग्रहित करून पुन्हा वापरता येते, ज्यामुळे वापरकर्त्यांना अधिक सुसंगत अनुभव मिळतात. सोप्या भाषेत, हे प्रॉम्प्ट उदाहरणांचा संग्रह आहे जसे की [OpenAI कडून हे उदाहरण](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) जे इंटरऐक्टिव्ह प्रॉम्प्ट घटक (वापरकर्ता आणि सिस्टम संदेश) आणि API-आधारित विनंती स्वरूप दोन्ही पुरवते - ज्यामुळे पुनर्वापर शक्य होतो. - -थोडे अधिक गुंतागुंतीच्या स्वरूपात, जसे की [LangChain कडून हे उदाहरण](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst) मध्ये, यात _प्लेसहोल्डर्स_ असतात जे विविध स्रोतांमधून (वापरकर्ता इनपुट, सिस्टम संदर्भ, बाह्य डेटा स्रोत इ.) डेटा भरून प्रॉम्प्ट डायनॅमिकली तयार करतात. यामुळे आपण पुनर्वापरासाठी प्रॉम्प्ट्सची लायब्ररी तयार करू शकतो जी प्रोग्रामॅटिक पद्धतीने वापरकर्त्यांना सुसंगत अनुभव देऊ शकते. - -शेवटी, टेम्प्लेट्सचे खरे महत्त्व म्हणजे _प्रॉम्प्ट लायब्ररी_ तयार करणे आणि प्रकाशित करणे, जे विशिष्ट अनुप्रयोग क्षेत्रांसाठी ऑप्टिमाइझ केलेले असतात - जिथे प्रॉम्प्ट टेम्प्लेट त्या क्षेत्राच्या संदर्भानुसार किंवा उदाहरणांनुसार अधिक संबंधित आणि अचूक प्रतिसाद देतात. [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) हे याचे उत्तम उदाहरण आहे, जे शिक्षण क्षेत्रासाठी प्रॉम्प्ट्सची लायब्ररी तयार करते, ज्यात धडे नियोजन, अभ्यासक्रम डिझाइन, विद्यार्थी ट्युटोरिंग यांसारख्या मुख्य उद्दिष्टांवर भर दिला आहे. - -## Supporting Content - -जर आपण प्रॉम्प्ट तयार करणे म्हणजे एक सूचना (कार्य) आणि एक लक्ष्य (प्राथमिक सामग्री) असणे समजले, तर _द्वितीयक सामग्री_ म्हणजे अतिरिक्त संदर्भ जो आपण आउटपुटवर काही प्रकारे प्रभाव टाकण्यासाठी पुरवतो. यात ट्यूनिंग पॅरामीटर्स, फॉरमॅटिंग सूचना, विषय वर्गीकरण इत्यादी असू शकतात, जे मॉडेलला प्रतिसाद वापरकर्त्याच्या अपेक्षा किंवा उद्दिष्टांनुसार सानुकूल करण्यास मदत करतात. - -उदाहरणार्थ: जर आपल्याकडे अभ्यासक्रम कॅटलॉग असेल ज्यात सर्व उपलब्ध अभ्यासक्रमांची विस्तृत मेटाडेटा (नाव, वर्णन, स्तर, मेटाडेटा टॅग्ज, प्रशिक्षक इ.) असेल: - -- आपण "Fall 2023 साठी अभ्यासक्रम कॅटलॉगचे सारांश करा" अशी सूचना देऊ शकतो -- प्राथमिक सामग्री म्हणून इच्छित आउटपुटची काही उदाहरणे देऊ शकतो -- द्वितीयक सामग्री म्हणून टॉप ५ "टॅग्ज" ओळखू शकतो. - -आता, मॉडेल काही उदाहरणांमध्ये दाखवलेल्या स्वरूपात सारांश देऊ शकते - पण जर निकालात अनेक टॅग्ज असतील, तर ते द्वितीयक सामग्रीत ओळखलेल्या ५ टॅग्जना प्राधान्य देऊ शकते. - ---- - - - -## Prompting Best Practices - -आता आपण जाणतो की प्रॉम्प्ट कसे _तयार_ करता येतात, आपण त्यांना _डिझाइन_ कसे करावे हे विचारू शकतो जेणेकरून सर्वोत्तम पद्धती प्रतिबिंबित होतील. हे दोन भागांत विचारता येईल - योग्य _मनस्थिती_ असणे आणि योग्य _तंत्र_ वापरणे. - -### Prompt Engineering Mindset - -प्रॉम्प्ट इंजिनिअरिंग हा एक प्रयोग आणि चुका करण्याचा प्रक्रिया आहे, म्हणून तीन महत्त्वाचे मार्गदर्शक घटक लक्षात ठेवा: - -1. **डोमेन समज महत्त्वाची आहे.** प्रतिसादाची अचूकता आणि सुसंगतता त्या _डोमेन_ वर अवलंबून असते ज्यात अनुप्रयोग किंवा वापरकर्ता कार्य करतो. आपली अंतर्ज्ञान आणि डोमेन तज्ञता वापरून **तंत्र अधिक सानुकूल करा**. उदाहरणार्थ, आपल्या सिस्टम प्रॉम्प्टमध्ये _डोमेन-विशिष्ट व्यक्तिमत्त्वे_ ठरवा, किंवा वापरकर्ता प्रॉम्प्टमध्ये _डोमेन-विशिष्ट टेम्प्लेट्स_ वापरा. द्वितीयक सामग्री पुरवा जी डोमेन-विशिष्ट संदर्भ दर्शवते, किंवा _डोमेन-विशिष्ट संकेत आणि उदाहरणे_ वापरून मॉडेलला परिचित वापर पद्धतींकडे मार्गदर्शन करा. - -2. **मॉडेल समज महत्त्वाची आहे.** आपण जाणतो की मॉडेल्स नैसर्गिकरित्या संभाव्यतावादी (stochastic) असतात. पण मॉडेलची अंमलबजावणी वापरलेल्या प्रशिक्षण डेटासेट (पूर्व-प्रशिक्षित ज्ञान), त्याच्या क्षमता (उदा., API किंवा SDK द्वारे) आणि त्यासाठी ऑप्टिमाइझ केलेल्या सामग्रीच्या प्रकारानुसार (उदा., कोड, प्रतिमा, मजकूर) वेगवेगळी असू शकते. आपण वापरत असलेल्या मॉडेलच्या ताकदी आणि मर्यादा समजून घ्या, आणि त्या ज्ञानाचा वापर करून _कार्यांना प्राधान्य द्या_ किंवा _सानुकूल टेम्प्लेट्स_ तयार करा जे मॉडेलच्या क्षमतांसाठी ऑप्टिमाइझ केलेले असतील. - -3. **पुनरावृत्ती आणि पडताळणी महत्त्वाची आहे.** मॉडेल्स वेगाने विकसित होत आहेत, तसेच प्रॉम्प्ट इंजिनिअरिंगसाठी तंत्रेही. डोमेन तज्ञ म्हणून, आपल्याकडे कदाचित इतर संदर्भ किंवा निकष असू शकतात जे व्यापक समुदायासाठी लागू नसतील. प्रॉम्प्ट इंजिनिअरिंग साधने आणि तंत्रे वापरून प्रॉम्प्ट तयार करण्यास "जंप स्टार्ट" करा, नंतर आपली अंतर्ज्ञान आणि डोमेन तज्ञता वापरून पुनरावृत्ती करा आणि निकालांची पडताळणी करा. आपले निरीक्षणे नोंदवा आणि एक **ज्ञान भांडार** (उदा., प्रॉम्प्ट लायब्ररी) तयार करा जे इतरांसाठी नवीन आधार म्हणून वापरले जाऊ शकते, ज्यामुळे भविष्यात जलद पुनरावृत्ती शक्य होईल. - -## Best Practices - -आता आपण [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) आणि [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst) तज्ञांनी शिफारस केलेल्या सामान्य सर्वोत्तम पद्धती पाहूया. - -| काय | का | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| नवीनतम मॉडेल्सचे मूल्यमापन करा. | नवीन मॉडेल पिढ्यांमध्ये सुधारित वैशिष्ट्ये आणि गुणवत्ता असण्याची शक्यता असते - पण त्यासाठी जास्त खर्चही येऊ शकतो. त्यांचा परिणाम तपासा आणि मग स्थलांतराचे निर्णय घ्या. | -| सूचना आणि संदर्भ वेगळे ठेवा. | तपासा की तुमचा मॉडेल/प्रदाता सूचना, प्राथमिक आणि द्वितीयक सामग्री वेगळ्या करण्यासाठी _डेलिमीटर्स_ वापरतो का. यामुळे मॉडेलला टोकन्सना अधिक अचूक वजन देण्यास मदत होते. | -| स्पष्ट आणि विशिष्ट रहा. | इच्छित संदर्भ, निकाल, लांबी, फॉरमॅट, शैली याबाबत अधिक तपशील द्या. यामुळे प्रतिसादांची गुणवत्ता आणि सुसंगतता सुधारेल. रेसिपी reusable टेम्प्लेट्समध्ये नोंदवा. | -| वर्णनात्मक रहा, उदाहरणे वापरा. | मॉडेल्स "दाखवा आणि सांगा" पद्धतीला चांगले प्रतिसाद देऊ शकतात. सुरुवातीला `zero-shot` पद्धत वापरा जिथे तुम्ही फक्त सूचना देता (कोणतीही उदाहरणे नाहीत), नंतर `few-shot` वापरून इच्छित आउटपुटची काही उदाहरणे द्या. उपमा वापरा. | -| प्रतिसाद सुरू करण्यासाठी संकेत वापरा | इच्छित निकालाकडे वळवण्यासाठी काही सुरुवातीचे शब्द किंवा वाक्ये द्या ज्याचा वापर मॉडेल प्रतिसाद सुरू करण्यासाठी करू शकेल. | -| पुनरावृत्ती करा | कधी कधी तुम्हाला मॉडेलला स्वतःला पुन्हा सांगावे लागते. प्राथमिक सामग्रीच्या आधी आणि नंतर सूचना द्या, सूचना आणि संकेत वापरा, इत्यादी. काय कार्य करते ते पाहण्यासाठी पुनरावृत्ती करा आणि पडताळणी करा. | -| क्रम महत्त्वाचा आहे | तुम्ही मॉडेलला माहिती कशी सादर करता त्याचा परिणाम आउटपुटवर होऊ शकतो, अगदी शिकण्याच्या उदाहरणांमध्येही, कारण अलीकडील माहितीला अधिक महत्त्व दिले जाते. काय चांगले कार्य करते ते पाहण्यासाठी वेगवेगळे पर्याय वापरून पहा. | -| मॉडेलला "बाहेर पडण्याचा" पर्याय द्या | जर मॉडेल कोणत्याही कारणास्तव कार्य पूर्ण करू शकत नसेल तर त्याला एक _फॉलबॅक_ प्रतिसाद द्या. यामुळे चुकीचे किंवा बनावट प्रतिसाद निर्माण होण्याची शक्यता कमी होते. | -| | | - -कोणतीही सर्वोत्तम पद्धत वापरताना लक्षात ठेवा की _तुमचा अनुभव वेगळा असू शकतो_ मॉडेल, कार्य आणि डोमेननुसार. यांना सुरुवातीस म्हणून वापरा आणि काय चांगले कार्य करते ते शोधण्यासाठी पुनरावृत्ती करा. नवीन मॉडेल्स आणि साधने उपलब्ध होत राहिल्याने तुमचा प्रॉम्प्ट इंजिनिअरिंग प्रक्रिया सतत पुनर्मूल्यांकन करा, प्रक्रियेच्या प्रमाणबद्धतेवर आणि प्रतिसादाच्या गुणवत्तेवर लक्ष केंद्रित करून. - - - -## Assignment - -अभिनंदन! तुम्ही धड्याच्या शेवटी पोहोचलात! आता त्या संकल्पना आणि तंत्रांचा वापर प्रत्यक्ष उदाहरणांसह करून पाहण्याची वेळ आहे! - -आपल्या असाइनमेंटसाठी, आपण Jupyter Notebook वापरणार आहोत ज्यात तुम्ही इंटरऐक्टिव्ह पद्धतीने सराव पूर्ण करू शकता. तुम्ही स्वतःच्या Markdown आणि Code सेल्सने Notebook विस्तृत करू शकता आणि स्वतःच्या कल्पना आणि तंत्रे तपासू शकता. - -### सुरुवात करण्यासाठी, रेपो फोर्क करा, नंतर - -- (शिफारस केलेले) GitHub Codespaces सुरू करा -- (पर्यायी) रेपो तुमच्या स्थानिक डिव्हाइसवर क्लोन करा आणि Docker Desktop सह वापरा -- (पर्यायी) तुमच्या पसंतीच्या Notebook रनटाइम वातावरणात Notebook उघडा. - -### नंतर, तुमचे पर्यावरणीय चल सेट करा - -- रेपोच्या मूळ फोल्डरमधील `.env.copy` फाइल `.env` मध्ये कॉपी करा आणि `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` आणि `AZURE_OPENAI_DEPLOYMENT` मूल्ये भरा. कसे करायचे ते जाणून घेण्यासाठी [Learning Sandbox विभाग](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) वर परत या. - -### नंतर, Jupyter Notebook उघडा - -- रनटाइम कर्नल निवडा. जर पर्याय 1 किंवा 2 वापरत असाल, तर डेव्ह कंटेनरद्वारे दिलेला डीफॉल्ट Python 3.10.x कर्नल निवडा. - -तुम्ही सराव चालवायला तयार आहात. लक्षात ठेवा की येथे _योग्य किंवा चुकीचे_ उत्तर नाहीत - फक्त प्रयोग करून आणि अंतर्ज्ञान वाढवून पाहणे आहे की कोणते पर्याय दिलेल्या मॉडेल आणि अनुप्रयोग डोमेनसाठी चांगले कार्य करतात. - -_याच कारणास्तव या धड्यात कोड सोल्यूशन विभाग नाहीत. त्याऐवजी, Notebook मध्ये "My Solution:" नावाचे Markdown सेल्स असतील जे संदर्भासाठी एक उदाहरण आउटपुट दाखवतील._ - - - -## Knowledge check - -खालीलपैकी कोणता प्रॉम्प्ट काही प्रमाणात सर्वोत्तम पद्धतींचे पालन करतो? - -1. मला लाल कारची प्रतिमा दाखवा -2. मला लाल कारची प्रतिमा दाखवा, जी Volvo कंपनीची XC90 मॉडेल आहे आणि ती सूर्यास्ताच्या वेळी खडकाजवळ पार्क केलेली आहे -3. मला लाल कारची प्रतिमा दाखवा, जी Volvo कंपनीची XC90 मॉडेल आहे - -उत्तर: 2, हा सर्वोत्तम प्रॉम्प्ट आहे कारण तो "काय" हे तपशीलवार सांगतो आणि विशिष्ट मॉडेल आणि सेटिंगचे वर्णन करतो. 3 दुसऱ्या क्रमांकावर आहे कारण त्यातही भरपूर वर्णन आहे. - -## 🚀 Challenge - -"cue" तंत्र वापरून प्रॉम्प्ट पूर्ण करा: "Show me an image of red car of make Volvo and ". मॉडेल काय प्रतिसाद देते, आणि तुम्ही ते कसे सुधाराल? - -## Great Work! Continue Your Learning - -प्रॉम्प्ट इंजिनिअरिंगच्या विविध संकल्पनांबद्दल अधिक जाणून घ्यायचे आहे का? [सतत शिकण्याच्या पृष्ठावर](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) जा आणि या विषयावर - -**अस्वीकरण**: -हा दस्तऐवज AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) वापरून अनुवादित केला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असलो तरी, कृपया लक्षात घ्या की स्वयंचलित अनुवादांमध्ये चुका किंवा अचूकतेची कमतरता असू शकते. मूळ दस्तऐवज त्याच्या स्थानिक भाषेत अधिकृत स्रोत मानला जावा. महत्त्वाच्या माहितीसाठी व्यावसायिक मानवी अनुवाद करण्याची शिफारस केली जाते. या अनुवादाच्या वापरामुळे उद्भवणाऱ्या कोणत्याही गैरसमजुती किंवा चुकीच्या अर्थलागी आम्ही जबाबदार नाही. \ No newline at end of file + + + + + + + diff --git a/translations/mr/09-building-image-applications/README.md b/translations/mr/09-building-image-applications/README.md index e5f445a02..62a1b51e6 100644 --- a/translations/mr/09-building-image-applications/README.md +++ b/translations/mr/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# इमेज जनरेशन अॅप्लिकेशन्स तयार करणे - -[![इमेज जनरेशन अॅप्लिकेशन्स तयार करणे](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.mr.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLMs फक्त टेक्स्ट जनरेशनपुरते मर्यादित नाहीत. टेक्स्ट वर्णनांवरून प्रतिमा तयार करणे देखील शक्य आहे. प्रतिमा ही एक माध्यम म्हणून अनेक क्षेत्रांमध्ये खूप उपयुक्त ठरू शकते, जसे की MedTech, आर्किटेक्चर, पर्यटन, गेम डेव्हलपमेंट आणि बरेच काही. या अध्यायात, आपण दोन सर्वात लोकप्रिय इमेज जनरेशन मॉडेल्स, DALL-E आणि Midjourney यांचा अभ्यास करू. - -## परिचय - -या धड्यात आपण खालील गोष्टी पाहणार आहोत: - -- इमेज जनरेशन म्हणजे काय आणि ते का उपयुक्त आहे. -- DALL-E आणि Midjourney काय आहेत आणि ते कसे काम करतात. -- इमेज जनरेशन अॅप्लिकेशन कसे तयार कराल. - -## शिकण्याचे उद्दिष्ट - -हा धडा पूर्ण केल्यानंतर, तुम्ही सक्षम असाल: - -- इमेज जनरेशन अॅप्लिकेशन तयार करणे. -- मेटा प्रॉम्प्ट्स वापरून तुमच्या अॅप्लिकेशनसाठी मर्यादा ठरवणे. -- DALL-E आणि Midjourney सोबत काम करणे. - -## इमेज जनरेशन अॅप्लिकेशन का तयार करावे? - -इमेज जनरेशन अॅप्लिकेशन्स हे Generative AI च्या क्षमतांचा शोध घेण्याचा एक उत्तम मार्ग आहे. त्यांचा वापर खालीलप्रमाणे करता येतो: - -- **इमेज एडिटिंग आणि सिंथेसिस**. तुम्ही विविध वापरासाठी प्रतिमा तयार करू शकता, जसे की इमेज एडिटिंग आणि इमेज सिंथेसिस. - -- **विविध उद्योगांमध्ये वापर**. Medtech, पर्यटन, गेम डेव्हलपमेंट आणि इतर अनेक उद्योगांसाठी प्रतिमा तयार करण्यासाठी देखील वापरता येतात. - -## परिस्थिती: Edu4All - -या धड्याचा भाग म्हणून, आपण Edu4All नावाच्या आपल्या स्टार्टअपसह काम सुरू ठेवणार आहोत. विद्यार्थी त्यांच्या मूल्यांकनांसाठी प्रतिमा तयार करतील, कोणत्या प्रतिमा तयार करायच्या आहेत हे विद्यार्थ्यांवर अवलंबून आहे, पण त्या त्यांच्या स्वतःच्या गोष्टीसाठी चित्रे असू शकतात, नवीन पात्र तयार करू शकतात किंवा त्यांच्या कल्पना आणि संकल्पना दृश्यमान करू शकतात. - -उदाहरणार्थ, जर Edu4All चे विद्यार्थी वर्गात स्मारकांवर काम करत असतील तर ते काय तयार करू शकतात: - -![Edu4All स्टार्टअप, स्मारकांवर वर्ग, एफिल टॉवर](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.mr.png) - -खालीलप्रमाणे प्रॉम्प्ट वापरून - -> "डॉग एफिल टॉवरच्या जवळ सकाळच्या पहाटेच्या सूर्यप्रकाशात" - -## DALL-E आणि Midjourney काय आहेत? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) आणि [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) हे दोन सर्वात लोकप्रिय इमेज जनरेशन मॉडेल्स आहेत, जे प्रॉम्प्ट्स वापरून प्रतिमा तयार करतात. - -### DALL-E - -चला DALL-E पासून सुरुवात करूया, जे एक Generative AI मॉडेल आहे जे टेक्स्ट वर्णनांवरून प्रतिमा तयार करते. - -> [DALL-E हे दोन मॉडेल्स, CLIP आणि diffused attention यांचे संयोजन आहे](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP**, हे एक मॉडेल आहे जे प्रतिमा आणि टेक्स्टमधून डेटा चे संख्यात्मक प्रतिनिधित्व (embeddings) तयार करते. - -- **Diffused attention**, हे एक मॉडेल आहे जे embeddings वरून प्रतिमा तयार करते. DALL-E प्रतिमा आणि टेक्स्टच्या डेटासेटवर प्रशिक्षित आहे आणि टेक्स्ट वर्णनांवरून प्रतिमा तयार करू शकते. उदाहरणार्थ, DALL-E वापरून टोपी घातलेला मांजर किंवा मोहॉक असलेला कुत्रा यांसारख्या प्रतिमा तयार करता येतात. - -### Midjourney - -Midjourney देखील DALL-E प्रमाणेच काम करते, ती टेक्स्ट प्रॉम्प्ट्स वापरून प्रतिमा तयार करते. Midjourney वापरून “टोपी घातलेला मांजर” किंवा “मोहॉक असलेला कुत्रा” यांसारख्या प्रॉम्प्ट्सवरून प्रतिमा तयार करता येतात. - -![Midjourney ने तयार केलेली प्रतिमा, यांत्रिक कबूतर](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_प्रतिमा क्रेडिट: विकिपीडिया, Midjourney ने तयार केलेली प्रतिमा_ - -## DALL-E आणि Midjourney कसे काम करतात - -सर्वप्रथम, [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). DALL-E हा एक Generative AI मॉडेल आहे जो ट्रान्सफॉर्मर आर्किटेक्चरवर आधारित आहे आणि त्यात _autoregressive transformer_ वापरला जातो. - -_autoregressive transformer_ म्हणजे मॉडेल कसे टेक्स्ट वर्णनांवरून प्रतिमा तयार करते, हे ठरवणारा तंत्र आहे. तो एकावेळी एक पिक्सेल तयार करतो आणि तयार केलेल्या पिक्सेल्सचा वापर पुढील पिक्सेल तयार करण्यासाठी करतो. हा प्रक्रिया न्यूरल नेटवर्कच्या अनेक स्तरांमधून पार पडते, जोपर्यंत प्रतिमा पूर्ण होत नाही. - -या प्रक्रियेमुळे DALL-E प्रतिमेत असलेल्या गुणधर्म, वस्तू, वैशिष्ट्ये आणि बरेच काही नियंत्रित करू शकतो. मात्र, DALL-E 2 आणि 3 मध्ये तयार केलेल्या प्रतिमेवर अधिक नियंत्रण आहे. - -## तुमचे पहिले इमेज जनरेशन अॅप्लिकेशन तयार करणे - -तर, इमेज जनरेशन अॅप्लिकेशन तयार करण्यासाठी काय लागते? तुम्हाला खालील लायब्ररींची गरज आहे: - -- **python-dotenv**, ही लायब्ररी वापरण्याची शिफारस केली जाते ज्यामुळे तुमचे गुपित _.env_ फाईलमध्ये कोडपासून वेगळे ठेवता येते. -- **openai**, ही लायब्ररी OpenAI API शी संवाद साधण्यासाठी वापरली जाते. -- **pillow**, Python मध्ये प्रतिमांसोबत काम करण्यासाठी. -- **requests**, HTTP विनंत्या करण्यासाठी. - -1. _.env_ नावाची फाईल तयार करा आणि खालील माहिती भरा: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Azure पोर्टलमध्ये तुमच्या रिसोर्सच्या "Keys and Endpoint" विभागात ही माहिती मिळेल. - -1. वरील लायब्ररींची यादी _requirements.txt_ नावाच्या फाईलमध्ये तयार करा: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. नंतर, व्हर्च्युअल एन्व्हायर्नमेंट तयार करा आणि लायब्ररी इन्स्टॉल करा: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Windows साठी, व्हर्च्युअल एन्व्हायर्नमेंट तयार करण्यासाठी आणि सक्रिय करण्यासाठी खालील कमांड वापरा: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. _app.py_ नावाच्या फाईलमध्ये खालील कोड जोडा: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -या कोडचे स्पष्टीकरण: - -- प्रथम, आवश्यक लायब्ररी आयात करतो, ज्यात OpenAI लायब्ररी, dotenv लायब्ररी, requests लायब्ररी आणि Pillow लायब्ररी यांचा समावेश आहे. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- नंतर, _.env_ फाईलमधून पर्यावरणीय चल (environment variables) लोड करतो. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- त्यानंतर, OpenAI API साठी endpoint, key, version आणि type सेट करतो. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- पुढे, प्रतिमा तयार करतो: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - वरील कोड JSON ऑब्जेक्टमध्ये तयार केलेल्या प्रतिमेचा URL परत करतो. आपण हा URL वापरून प्रतिमा डाउनलोड करून फाईलमध्ये जतन करू शकतो. - -- शेवटी, प्रतिमा उघडतो आणि स्टँडर्ड इमेज व्ह्युअर वापरून ती दाखवतो: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### प्रतिमा तयार करण्याबाबत अधिक तपशील - -चला प्रतिमा तयार करणाऱ्या कोडवर अधिक सविस्तर नजर टाकूया: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt**, ही टेक्स्ट प्रॉम्प्ट आहे ज्याचा वापर प्रतिमा तयार करण्यासाठी केला जातो. या उदाहरणात, प्रॉम्प्ट आहे "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils". -- **size**, तयार होणाऱ्या प्रतिमेचा आकार आहे. येथे 1024x1024 पिक्सेल आकाराची प्रतिमा तयार केली जात आहे. -- **n**, तयार होणाऱ्या प्रतिमांची संख्या आहे. येथे दोन प्रतिमा तयार केल्या जात आहेत. -- **temperature**, हा एक पॅरामीटर आहे जो Generative AI मॉडेलच्या आउटपुटमधील अनिश्चिततेचे नियंत्रण करतो. तापमान 0 ते 1 दरम्यान असते, जिथे 0 म्हणजे आउटपुट निश्चित (deterministic) आणि 1 म्हणजे आउटपुट पूर्णपणे यादृच्छिक (random). डीफॉल्ट मूल्य 0.7 आहे. - -प्रतिमांसोबत अजून बरेच काही करता येते, जे आपण पुढील विभागात पाहू. - -## इमेज जनरेशनच्या अतिरिक्त क्षमता - -आत्तापर्यंत आपण पाहिले की Python मध्ये काही ओळींचा वापर करून प्रतिमा कशी तयार करता येते. पण प्रतिमांसोबत अजून बरेच काही करता येते. - -तुम्ही खालील गोष्टी देखील करू शकता: - -- **एडिट्स करणे**. विद्यमान प्रतिमेला मास्क आणि प्रॉम्प्ट देऊन तुम्ही प्रतिमेत बदल करू शकता. उदाहरणार्थ, एखाद्या प्रतिमेच्या एका भागात काहीतरी जोडू शकता. आपल्या बनीच्या प्रतिमेचा विचार करा, तुम्ही त्याला टोपी घालू शकता. हे करण्यासाठी तुम्ही मूळ प्रतिमा, मास्क (ज्याने बदलायचा भाग ओळखला जातो) आणि टेक्स्ट प्रॉम्प्ट देऊन सांगाल की काय करायचे आहे. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - मूळ प्रतिमेत फक्त ससा असेल, पण अंतिम प्रतिमेत सशावर टोपी असेल. - -- **व्हेरिएशन्स तयार करणे**. विद्यमान प्रतिमेवरून विविध व्हेरिएशन्स तयार करण्याची कल्पना आहे. व्हेरिएशन तयार करण्यासाठी, तुम्ही प्रतिमा आणि टेक्स्ट प्रॉम्प्ट देऊन खालीलप्रमाणे कोड वापरू शकता: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > लक्षात ठेवा, हे फक्त OpenAI वर समर्थित आहे. - -## तापमान (Temperature) - -तापमान हा एक पॅरामीटर आहे जो Generative AI मॉडेलच्या आउटपुटमधील अनिश्चिततेचे नियंत्रण करतो. तापमान 0 ते 1 दरम्यान असते, जिथे 0 म्हणजे आउटपुट निश्चित (deterministic) आणि 1 म्हणजे आउटपुट पूर्णपणे यादृच्छिक (random). डीफॉल्ट मूल्य 0.7 आहे. - -चला तापमान कसे काम करते याचे उदाहरण पाहू, खालील प्रॉम्प्ट दोन वेळा चालवून: - -> प्रॉम्प्ट : "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils" - -![घोड्यावर बनी, लॉलीपॉप धरलेला, आवरण असलेल्या माळावर](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.mr.png) - -आता तोच प्रॉम्प्ट पुन्हा चालवून पाहू, जेणेकरून आपल्याला दोनदा एकसारखी प्रतिमा मिळणार नाही याची खात्री होईल: - -![घोड्यावर बनीची तयार केलेली प्रतिमा](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.mr.png) - -जसे तुम्ही पाहू शकता, प्रतिमा सारख्या आहेत पण अगदी सारख्या नाहीत. चला तापमानाचे मूल्य 0.1 करून पाहू काय होते: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### तापमान बदलणे - -तर, चला प्रतिसाद अधिक निश्चित (deterministic) करण्याचा प्रयत्न करूया. आपण तयार केलेल्या दोन प्रतिमांवरून असे दिसले की पहिल्या प्रतिमेत बनी आहे आणि दुसऱ्या प्रतिमेत घोडा आहे, त्यामुळे प्रतिमा खूप वेगवेगळ्या आहेत. - -म्हणूनच, आपला कोड बदलून तापमान 0 वर सेट करूया, खालीलप्रमाणे: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -आता जेव्हा तुम्ही हा कोड चालवाल, तेव्हा तुम्हाला खालील दोन प्रतिमा मिळतील: - -- ![तापमान 0, आवृत्ती 1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.mr.png) -- ![तापमान 0, आवृत्ती 2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.mr.png) - -येथे तुम्हाला स्पष्टपणे दिसेल की प्रतिमा एकमेकांशी अधिक जुळतात. - -## मेटाप्रॉम्प्ट्स वापरून तुमच्या अॅप्लिकेशनसाठी मर्यादा कशा ठरवायच्या - -आपल्या डेमोमध्ये, आपण आधीच आपल्या क्लायंटसाठी प्रतिमा तयार करू शकतो. मात्र, आपल्याला आपल्या अॅप्लिकेशनसाठी काही मर्यादा तयार करणे आवश्यक आहे. - -उदाहरणार्थ, आपण अशा प्रतिमा तयार करू इच्छित नाही ज्यामुळे कामाच्या ठिकाणी अयोग्य किंवा मुलांसाठी अस्वीकृत असतील. - -हे आपण _मेटाप्रॉम्प्ट्स_ वापरून करू शकतो. मेटाप्रॉम्प्ट्स हे टेक्स्ट प्रॉम्प्ट्स असतात जे Generative AI मॉडेलच्या आउटपुटवर नियंत्रण ठेवण्यासाठी वापरले जातात. उदाहरणार्थ, आपण मेटाप्रॉम्प्ट्स वापरून आउटपुट नियंत्रित करू शकतो आणि तयार होणाऱ्या प्रतिमा कामासाठी सुरक्षित किंवा मुलांसाठी योग्य आहेत याची खात्री करू शकतो. - -### हे कसे काम करते? - -मेटाप्रॉम्प्ट्स कसे काम करतात? - -मेटाप्रॉम्प्ट्स हे टेक्स्ट प्रॉम्प्ट्स असतात जे Generative AI मॉडेलच्या आउटपुटवर नियंत्रण ठेवण्यासाठी वापरले जातात, ते टेक्स्ट प्रॉम्प्टच्या आधी ठेवले जातात आणि मॉडेलच्या आउटपुटवर नियंत्रण ठेवण्यासाठी वापरले जातात. अॅप्लिकेशन्समध्ये मेटाप्रॉम्प्ट्स एम्बेड केले जातात जेणेकरून प्रॉम्प्ट इनपुट आणि मेटाप्रॉम्प्ट इनपुट एकत्रितपणे एका टेक्स्ट प्रॉम्प्टमध्ये असतात. - -मेटाप्रॉम्प्टचे एक उदाहरण खालीलप्रमाणे आहे: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -आता, चला पाहूया की आपण आपल्या डेमोमध्ये मेटाप्रॉम्प्ट्स कसे वापरू शकतो. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -वरील प्रॉम्प्टमधून तुम्हाला दिसेल की तयार होणाऱ्या सर्व प्रतिमा मेटाप्रॉम्प्टचा विचार करतात. - -## असाइनमेंट - चला विद्यार्थ्यांना सक्षम करूया - -या धड्याच्या सुरुवातीला आपण Edu4All ची ओळख करून दिली होती. आता विद्यार्थ्यांना त्यांच्या मूल्यांकनांसाठी प्रतिमा तयार करण्यास सक्षम करण्याची वेळ आली आहे. - -विद्यार्थी त्यांच्या मूल्यांकनांसाठी स्मारकांची प्रतिमा तयार करतील, कोणती स्मारके तयार करायची आहेत हे विद्यार्थ्यांवर अवलंबून आहे. विद्यार्थ्यांना या कार्यात त्यांच्या सर्जनशीलतेचा वापर करून स्मारकांना वेगवेगळ्या संदर्भात ठेवण्यास सांगितले आहे. - -## उपाय - -येथे एक शक्य तो उपाय आहे: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## छान काम! तुमचे शिक्षण सुरू ठेवा - -हा धडा पूर्ण केल्यानंतर, आमच्या [Generative AI Learning collection](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) ला भेट द्या आणि तुमचे Generative AI ज्ञान अधिक वाढवा! - -पुढील धडा 10 मध्ये चला जिथे आपण पाहणार आहोत की [लो-कोड वापरून AI अॅप्लिकेशन्स कसे तयार करायचे](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**अस्वीकरण**: -हा दस्तऐवज AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) वापरून अनुवादित केला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असलो तरी, कृपया लक्षात घ्या की स्वयंचलित अनुवादांमध्ये चुका किंवा अचूकतेची कमतरता असू शकते. मूळ दस्तऐवज त्याच्या स्थानिक भाषेत अधिकृत स्रोत मानला जावा. महत्त्वाच्या माहितीसाठी व्यावसायिक मानवी अनुवाद करण्याची शिफारस केली जाते. या अनुवादाच्या वापरामुळे उद्भवलेल्या कोणत्याही गैरसमजुती किंवा चुकीच्या अर्थलागी आम्ही जबाबदार नाही. \ No newline at end of file + + + + diff --git a/translations/mr/12-designing-ux-for-ai-applications/README.md b/translations/mr/12-designing-ux-for-ai-applications/README.md index 700965937..6615c1518 100644 --- a/translations/mr/12-designing-ux-for-ai-applications/README.md +++ b/translations/mr/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# AI अनुप्रयोगांसाठी UX डिझाइन करणे - -[![Designing UX for AI Applications](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.mr.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(वरील प्रतिमा क्लिक करून या धड्याचा व्हिडिओ पाहा)_ - -युजर एक्सपीरियन्स (User Experience) हे अॅप्स तयार करताना खूप महत्त्वाचे असते. वापरकर्त्यांनी तुमचा अॅप कार्यक्षमतेने वापरता यावा, ही गरज असते. कार्यक्षम असणे महत्त्वाचे आहे, पण अॅप असे डिझाइन करणे देखील आवश्यक आहे की तो सर्वांनाच वापरता यावा, म्हणजे तो _सुलभ_ असावा. हा अध्याय या भागावर लक्ष केंद्रित करेल, ज्यामुळे तुम्ही असा अॅप डिझाइन करू शकाल जो लोक वापरू इच्छितात आणि वापरू शकतात. - -## परिचय - -युजर एक्सपीरियन्स म्हणजे वापरकर्ता एखाद्या विशिष्ट उत्पादन किंवा सेवेचा कसा वापर करतो आणि त्याच्याशी कसा संवाद साधतो, मग ते सिस्टम, साधन किंवा डिझाइन असो. AI अनुप्रयोग विकसित करताना, विकसक फक्त युजर एक्सपीरियन्स प्रभावी होईल याकडे लक्ष देत नाहीत, तर तो नैतिकही असावा याकडेही लक्ष देतात. या धड्यात आपण अशा Artificial Intelligence (AI) अनुप्रयोगांची निर्मिती कशी करायची ते पाहणार आहोत जे वापरकर्त्यांच्या गरजा पूर्ण करतात. - -हा धडा खालील विषयांवर लक्ष केंद्रित करेल: - -- युजर एक्सपीरियन्सची ओळख आणि वापरकर्त्यांच्या गरजांची समज -- विश्वास आणि पारदर्शकतेसाठी AI अनुप्रयोग डिझाइन करणे -- सहकार्य आणि अभिप्रायासाठी AI अनुप्रयोग डिझाइन करणे - -## शिकण्याचे उद्दिष्ट - -हा धडा पूर्ण केल्यानंतर, तुम्ही सक्षम असाल: - -- वापरकर्त्यांच्या गरजा पूर्ण करणारे AI अनुप्रयोग कसे तयार करायचे ते समजून घेणे. -- विश्वास आणि सहकार्य वाढवणारे AI अनुप्रयोग डिझाइन करणे. - -### पूर्वअट - -काही वेळ काढा आणि [युजर एक्सपीरियन्स आणि डिझाइन थिंकिंग](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) बद्दल अधिक वाचा. - -## युजर एक्सपीरियन्सची ओळख आणि वापरकर्त्यांच्या गरजांची समज - -आमच्या काल्पनिक शिक्षण स्टार्टअपमध्ये दोन मुख्य वापरकर्ते आहेत, शिक्षक आणि विद्यार्थी. प्रत्येक वापरकर्त्याच्या गरजा वेगळ्या आहेत. वापरकर्ता-केंद्रित डिझाइन वापरकर्त्याला प्राधान्य देते, ज्यामुळे उत्पादने त्या वापरकर्त्यांसाठी उपयुक्त आणि फायदेशीर ठरतात. - -अॅप्लिकेशन **उपयुक्त, विश्वासार्ह, सुलभ आणि आनंददायक** असावे जेणेकरून चांगला युजर एक्सपीरियन्स मिळू शकेल. - -### वापरयोग्यता - -उपयुक्त असणे म्हणजे अॅप्लिकेशनमध्ये अशी कार्यक्षमता असावी जी त्याच्या उद्देशाशी जुळते, जसे की ग्रेडिंग प्रक्रिया स्वयंचलित करणे किंवा पुनरावलोकनासाठी फ्लॅशकार्ड तयार करणे. ग्रेडिंग प्रक्रिया स्वयंचलित करणारा अॅप विद्यार्थ्यांच्या कामाला पूर्वनिर्धारित निकषांनुसार अचूक आणि कार्यक्षमतेने गुण देऊ शकला पाहिजे. त्याचप्रमाणे, पुनरावलोकनासाठी फ्लॅशकार्ड तयार करणारा अॅप त्याच्या डेटावर आधारित संबंधित आणि विविध प्रश्न तयार करू शकला पाहिजे. - -### विश्वासार्हता - -विश्वासार्ह असणे म्हणजे अॅप त्याचे कार्य सातत्याने आणि त्रुटीशिवाय पार पाडू शकतो. मात्र, AI देखील माणसांसारखा परिपूर्ण नाही आणि चुका होऊ शकतात. अॅप्लिकेशन्सना अशा चुका किंवा अनपेक्षित परिस्थितींचा सामना करावा लागू शकतो ज्यासाठी मानवी हस्तक्षेप किंवा दुरुस्ती आवश्यक असते. तुम्ही चुका कशा हाताळता? या धड्याच्या शेवटच्या भागात आपण पाहणार आहोत की AI सिस्टम आणि अॅप्लिकेशन्स सहकार्य आणि अभिप्रायासाठी कसे डिझाइन केले जातात. - -### सुलभता - -सुलभ असणे म्हणजे विविध क्षमतांच्या वापरकर्त्यांपर्यंत युजर एक्सपीरियन्स पोहोचवणे, ज्यात अपंगत्व असलेले लोकही समाविष्ट आहेत, जेणेकरून कोणीही वगळले जाणार नाही. सुलभता मार्गदर्शक तत्त्वे आणि नियम पाळल्यास AI सोल्यूशन्स अधिक समावेशक, वापरण्यास सोपे आणि सर्व वापरकर्त्यांसाठी फायदेशीर होतात. - -### आनंददायक - -आनंददायक असणे म्हणजे अॅप वापरणे सुखद असावे. आकर्षक युजर एक्सपीरियन्स वापरकर्त्यांवर सकारात्मक परिणाम करू शकतो, ज्यामुळे ते अॅप वापरण्यास परत येतात आणि व्यवसायाचे उत्पन्न वाढते. - -![image illustrating UX considerations in AI](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.mr.png) - -सर्व समस्या AI ने सोडवता येत नाहीत. AI तुमचा युजर एक्सपीरियन्स वाढवण्यासाठी येतो, मग तो मॅन्युअल कामे स्वयंचलित करणे असो किंवा युजर एक्सपीरियन्स वैयक्तिकृत करणे असो. - -## विश्वास आणि पारदर्शकतेसाठी AI अनुप्रयोग डिझाइन करणे - -AI अनुप्रयोग डिझाइन करताना विश्वास निर्माण करणे अत्यंत महत्त्वाचे आहे. विश्वासामुळे वापरकर्ता खात्री करतो की अॅप काम पूर्ण करेल, सातत्याने निकाल देईल आणि निकाल वापरकर्त्याच्या गरजेनुसार असतील. या क्षेत्रातील धोका म्हणजे अविश्वास आणि जास्त विश्वास. अविश्वास तेव्हा होतो जेव्हा वापरकर्त्याला AI सिस्टमवर फारसा विश्वास नसतो, ज्यामुळे तो तुमचा अॅप वापरणे टाळतो. जास्त विश्वास तेव्हा होतो जेव्हा वापरकर्ता AI सिस्टमच्या क्षमतेचा अतिरेक करतो, ज्यामुळे वापरकर्ते AI सिस्टमवर खूप जास्त विश्वास ठेवतात. उदाहरणार्थ, जर शिक्षकाने काही पेपर्स तपासले नाहीत कारण त्याला AI आधारित स्वयंचलित ग्रेडिंग सिस्टमवर पूर्ण विश्वास आहे, तर विद्यार्थ्यांना अन्यायकारक किंवा अचूक नसलेले ग्रेड मिळू शकतात, किंवा अभिप्राय आणि सुधारणा करण्याच्या संधी गमावल्या जाऊ शकतात. - -डिझाइनमध्ये विश्वास केंद्रस्थानी ठेवण्यासाठी दोन मार्ग आहेत: स्पष्टता (explainability) आणि नियंत्रण (control). - -### स्पष्टता - -जेव्हा AI भविष्यातील पिढ्यांना ज्ञान देण्यास मदत करतो, तेव्हा शिक्षक आणि पालकांसाठी AI निर्णय कसे घेतले जातात हे समजून घेणे अत्यंत महत्त्वाचे असते. याला स्पष्टता म्हणतात - AI अनुप्रयोग निर्णय कसे घेतात हे समजून घेणे. स्पष्टतेसाठी डिझाइन करताना AI अॅप काय करू शकतो याचे उदाहरणे देणे आवश्यक असते. उदाहरणार्थ, "AI शिक्षकासह सुरुवात करा" याऐवजी, सिस्टम वापरू शकते: "AI वापरून तुमच्या नोट्सचा सारांश तयार करा ज्यामुळे पुनरावलोकन सोपे होईल." - -![an app landing page with clear illustration of explainability in AI applications](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.mr.png) - -दुसरे उदाहरण म्हणजे AI वापरकर्ता आणि वैयक्तिक डेटा कसा वापरतो. उदाहरणार्थ, विद्यार्थी या व्यक्तिमत्वावर आधारित वापरकर्त्याला काही मर्यादा असू शकतात. AI प्रश्नांची उत्तरे थेट देऊ शकत नाही, पण वापरकर्त्याला समस्या कशी सोडवायची यासाठी मार्गदर्शन करू शकतो. - -![AI replying to questions based on persona](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.mr.png) - -स्पष्टतेचा आणखी एक महत्त्वाचा भाग म्हणजे स्पष्टीकरणे सोपी करणे. विद्यार्थी आणि शिक्षक AI तज्ञ नसू शकतात, त्यामुळे अॅप काय करू शकते किंवा काय करू शकत नाही याचे स्पष्टीकरण सोपे आणि समजण्यास सुलभ असावे. - -![simplified explanations on AI capabilities](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.mr.png) - -### नियंत्रण - -Generative AI वापरकर्त्याला आणि AI यांच्यात सहकार्य तयार करतो, जिथे वापरकर्ता वेगवेगळ्या निकालांसाठी प्रॉम्प्ट्स बदलू शकतो. शिवाय, एकदा आउटपुट तयार झाल्यावर, वापरकर्त्याला निकाल बदलण्याची मुभा असावी ज्यामुळे त्यांना नियंत्रणाची भावना मिळते. उदाहरणार्थ, Bing वापरताना तुम्ही तुमचा प्रॉम्प्ट फॉरमॅट, टोन आणि लांबीवर आधारित सानुकूलित करू शकता. तसेच, तुम्ही तुमच्या आउटपुटमध्ये बदल करू शकता आणि त्यानुसार आउटपुट सुधारू शकता: - -![Bing search results with options to modify the prompt and output](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.mr.png) - -Bing मध्ये आणखी एक वैशिष्ट्य म्हणजे वापरकर्त्याला AI वापरलेल्या डेटावर नियंत्रण देणे, जसे की डेटा वापरण्यासाठी ऑप्ट-इन किंवा ऑप्ट-आउट होण्याची सुविधा. शाळेच्या अॅपसाठी, विद्यार्थी त्याच्या नोट्स तसेच शिक्षकांच्या संसाधनांचा पुनरावलोकन साहित्य म्हणून वापर करू इच्छू शकतो. - -![Bing search results with options to modify the prompt and output](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.mr.png) - -> AI अनुप्रयोग डिझाइन करताना, वापरकर्त्यांनी AI वर जास्त विश्वास ठेवू नये यासाठी हेतुपुरस्सर उपाय करणे महत्त्वाचे आहे, ज्यामुळे त्यांची अपेक्षा वास्तविक राहील. यासाठी प्रॉम्प्ट्स आणि निकालांमध्ये थोडीशी अडचण निर्माण करणे उपयुक्त ठरते. वापरकर्त्याला आठवण करून देणे की हे AI आहे, माणूस नाही. - -## सहकार्य आणि अभिप्रायासाठी AI अनुप्रयोग डिझाइन करणे - -जसे आधी सांगितले, generative AI वापरकर्ता आणि AI यांच्यात सहकार्य तयार करतो. बहुतेक संवाद वापरकर्ता प्रॉम्प्ट टाकतो आणि AI आउटपुट तयार करतो. जर आउटपुट चुकीचे असेल तर काय? अॅप्लिकेशन चुका कशा हाताळते? AI वापरकर्त्याला दोष देतो का किंवा चुका समजावून सांगण्यासाठी वेळ घेतो का? - -AI अनुप्रयोगांना अभिप्राय देणे आणि घेणे यासाठी तयार केले पाहिजे. यामुळे AI सिस्टम सुधारते आणि वापरकर्त्यांशी विश्वास वाढतो. डिझाइनमध्ये अभिप्राय लूप असावा, उदाहरणार्थ आउटपुटवर साधा थंब्स अप किंवा थंब्स डाउन. - -दुसरा मार्ग म्हणजे सिस्टमच्या क्षमतांबाबत आणि मर्यादांबाबत स्पष्टपणे संवाद साधणे. जेव्हा वापरकर्ता AI क्षमतांपेक्षा जास्त काही मागतो, तेव्हा त्यासाठीही उपाय असावा, खाली दाखविल्याप्रमाणे. - -![Giving feedback and handling errors](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.mr.png) - -सिस्टम त्रुटी सामान्य आहेत, जिथे वापरकर्त्याला AI च्या कक्षेपलीकडे माहिती हवी असू शकते किंवा अॅप्लिकेशनवर वापरकर्ता किती प्रश्न/विषयांसाठी सारांश तयार करू शकतो यावर मर्यादा असू शकते. उदाहरणार्थ, जर AI अॅप्लिकेशनला फक्त इतिहास आणि गणित या विषयांवर प्रशिक्षण दिले असेल, तर भूगोलाशी संबंधित प्रश्न हाताळणे शक्य नसेल. यासाठी AI सिस्टम असे उत्तर देऊ शकते: "क्षमस्व, आमच्या उत्पादनाला खालील विषयांवर डेटा वापरून प्रशिक्षण दिले गेले आहे....., मी तुम्ही विचारलेला प्रश्न उत्तर देऊ शकत नाही." - -AI अनुप्रयोग परिपूर्ण नाहीत, त्यामुळे चुका होणे शक्य आहे. तुमचे अॅप डिझाइन करताना वापरकर्त्यांकडून अभिप्राय घेण्याची आणि त्रुटी हाताळण्याची सोपी आणि समजण्यास सुलभ व्यवस्था असावी. - -## असाइनमेंट - -आत्तापर्यंत तुम्ही तयार केलेल्या कोणत्याही AI अॅप्समध्ये खालील टप्पे अमलात आणण्याचा विचार करा: - -- **आनंददायक:** तुमचा अॅप अधिक आनंददायक कसा करता येईल याचा विचार करा. तुम्ही सर्वत्र स्पष्टीकरणे देत आहात का? तुम्ही वापरकर्त्याला अन्वेषण करण्यास प्रोत्साहित करता का? तुमच्या त्रुटी संदेशांचे शब्द कसे आहेत? - -- **वापरयोग्यता:** वेब अॅप तयार करताना, तुमचा अॅप माऊस आणि कीबोर्ड दोन्हीने सहज वापरता येईल याची खात्री करा. - -- **विश्वास आणि पारदर्शकता:** AI आणि त्याच्या आउटपुटवर पूर्ण विश्वास ठेवू नका, आउटपुट तपासण्यासाठी मानवी हस्तक्षेप कसा करता येईल याचा विचार करा. तसेच, विश्वास आणि पारदर्शकता वाढवण्यासाठी इतर मार्ग अमलात आणा. - -- **नियंत्रण:** वापरकर्त्याला त्यांचा डेटा अॅप्लिकेशनला देण्यावर नियंत्रण द्या. AI अॅप्लिकेशनमध्ये डेटा संकलनासाठी वापरकर्त्याला ऑप्ट-इन आणि ऑप्ट-आउट करण्याची सोय करा. - -## तुमचे शिक्षण सुरू ठेवा! - -हा धडा पूर्ण केल्यानंतर, आमच्या [Generative AI Learning collection](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) मध्ये जाऊन तुमचे Generative AI ज्ञान अधिक वाढवा! - -पुढील धडा 13 येथे जा, जिथे आपण [AI अनुप्रयोगांचे सुरक्षितीकरण](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) कसे करायचे ते पाहणार आहोत! - -**अस्वीकरण**: -हा दस्तऐवज AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) वापरून अनुवादित केला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असलो तरी, कृपया लक्षात घ्या की स्वयंचलित अनुवादांमध्ये चुका किंवा अचूकतेची कमतरता असू शकते. मूळ दस्तऐवज त्याच्या स्थानिक भाषेत अधिकृत स्रोत मानला जावा. महत्त्वाच्या माहितीसाठी व्यावसायिक मानवी अनुवाद करण्याची शिफारस केली जाते. या अनुवादाच्या वापरामुळे उद्भवणाऱ्या कोणत्याही गैरसमजुती किंवा चुकीच्या अर्थलागी आम्ही जबाबदार नाही. \ No newline at end of file + + + diff --git a/translations/mr/README.md b/translations/mr/README.md index 3cfef37fd..13af6cd4b 100644 --- a/translations/mr/README.md +++ b/translations/mr/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.mr.png) - -### Generative AI अॅप्लिकेशन्स तयार करण्यासाठी आवश्यक असलेली सर्व काही शिकवणाऱ्या 21 धड्यांचा संच - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 बहुभाषिक समर्थन - -#### GitHub Action द्वारे समर्थित (स्वयंचलित आणि नेहमी अद्ययावत) - -[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](./README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md) - -# Generative AI for Beginners (आवृत्ती 3) - एक कोर्स - -Microsoft Cloud Advocates कडून तयार केलेल्या 21 धड्यांच्या या सर्वसमावेशक कोर्सद्वारे Generative AI अॅप्लिकेशन्स तयार करण्याच्या मूलभूत गोष्टी शिका. - -## 🌱 सुरुवात कशी करावी - -हा कोर्स 21 धड्यांचा आहे. प्रत्येक धडा वेगळ्या विषयावर आहे, त्यामुळे तुम्हाला जिथून सुरुवात करायची आहे तिथून सुरुवात करा! - -धडे "Learn" (शिका) किंवा "Build" (बनवा) असे वर्गीकृत आहेत. "Learn" धडे Generative AI च्या संकल्पना समजावून सांगतात तर "Build" धडे संकल्पना आणि शक्य असल्यास **Python** आणि **TypeScript** मध्ये कोड उदाहरणे देतात. - -.NET विकसकांसाठी [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) पहा! - -प्रत्येक धड्यात "Keep Learning" विभाग देखील आहे ज्यात अतिरिक्त शिकण्याचे साधने दिलेले आहेत. - -## काय आवश्यक आहे -### या कोर्सचा कोड चालवण्यासाठी तुम्ही खालीलपैकी कोणतेही वापरू शकता: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **धडे:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **धडे:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **धडे:** "oai-assignment" - -- Python किंवा TypeScript ची प्राथमिक माहिती उपयुक्त आहे - \*पूर्ण नवशिक्यांसाठी हे [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) आणि [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) कोर्स पहा -- GitHub खाते जेणेकरून तुम्ही [हा संपूर्ण रेपो फोर्क](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) करू शकता - -आम्ही तुमच्या विकास वातावरणाच्या सेटअपसाठी एक **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** धडा तयार केला आहे. - -नंतर सोप्या शोधासाठी [हा रेपो स्टार (🌟) करायला विसरू नका](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst). - -## 🧠 तैनात करण्यासाठी तयार आहात? - -जर तुम्हाला अधिक प्रगत कोड नमुने पाहिजेत तर आमच्या [Generative AI Code Samples](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) संग्रहात पहा, जे **Python** आणि **TypeScript** मध्ये उपलब्ध आहेत. - -## 🗣️ इतर शिकणाऱ्यांशी भेटा, मदत मिळवा - -हा कोर्स घेणाऱ्या इतर शिकणाऱ्यांशी भेटण्यासाठी आणि मदत मिळवण्यासाठी आमच्या [अधिकृत Azure AI Foundry Discord सर्व्हर](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) मध्ये सहभागी व्हा. - -GitHub वर आमच्या [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum) मध्ये प्रश्न विचारा किंवा उत्पादनाबाबत अभिप्राय द्या. - -## 🚀 स्टार्टअप तयार करत आहात? - -[Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) मध्ये नोंदणी करा आणि **मुफ्त OpenAI क्रेडिट्स** तसेच Azure OpenAI Services द्वारे OpenAI मॉडेल्स वापरण्यासाठी **$150k पर्यंत Azure क्रेडिट्स** मिळवा. - -## 🙏 मदत करायची आहे का? - -तुमच्याकडे सूचना आहेत का किंवा स्पेलिंग किंवा कोडमध्ये चुका आढळल्या आहेत? [इश्यू उघडा](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) किंवा [पुल रिक्वेस्ट तयार करा](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 प्रत्येक धड्यात समाविष्ट आहे: - -- विषयाची थोडक्यात व्हिडिओ ओळख -- README मध्ये लिहिलेला धडा -- Azure OpenAI आणि OpenAI API साठी Python आणि TypeScript कोड नमुने -- तुमच्या शिकण्याला पुढे नेण्यासाठी अतिरिक्त संसाधने - -## 🗃️ धडे - -| # | **धड्याचा दुवा** | **वर्णन** | **व्हिडिओ** | **अतिरिक्त शिकण्याचे साधन** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** तुमचे विकास वातावरण कसे सेट करायचे | व्हिडिओ लवकरच येणार | [अधिक जाणून घ्या](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Generative AI आणि LLMs ची ओळख](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Generative AI म्हणजे काय आणि Large Language Models (LLMs) कसे कार्य करतात याचे समज | [व्हिडिओ](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [अधिक जाणून घ्या](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [वेगवेगळ्या LLMs ची तुलना आणि शोध](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** तुमच्या वापरासाठी योग्य मॉडेल कसे निवडायचे | [व्हिडिओ](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [अधिक जाणून घ्या](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Generative AI जबाबदारीने वापरणे](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Generative AI अॅप्लिकेशन्स जबाबदारीने कशा तयार करायच्या | [व्हिडिओ](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [अधिक जाणून घ्या](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Prompt Engineering च्या मूलभूत तत्त्वांची समज](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Prompt Engineering च्या सर्वोत्तम पद्धती प्रत्यक्षात वापरणे | [व्हिडिओ](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [अधिक जाणून घ्या](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [प्रगत Prompts तयार करणे](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** तुमच्या Prompts चा परिणाम सुधारण्यासाठी prompt engineering तंत्र कसे वापरायचे | [व्हिडिओ](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [अधिक जाणून घ्या](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [टेक्स्ट जनरेशन अॅप्लिकेशन्स तयार करणे](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **बनवा:** Azure OpenAI / OpenAI API वापरून टेक्स्ट जनरेशन अॅप्लिकेशन | [व्हिडिओ](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [अधिक जाणून घ्या](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [चॅट अॅप्लिकेशन्स तयार करणे](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **बनवा:** चॅट अॅप्लिकेशन्स प्रभावीपणे तयार करण्याच्या आणि एकत्रित करण्याच्या तंत्रांचा वापर. | [व्हिडिओ](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [अधिक जाणून घ्या](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [सर्च अॅप्लिकेशन्स आणि व्हेक्टर डेटाबेस तयार करणे](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **बनवा:** एम्बेडिंग्ज वापरून डेटा शोधण्यासाठी सर्च अॅप्लिकेशन | [व्हिडिओ](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [अधिक जाणून घ्या](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [इमेज जनरेशन अॅप्लिकेशन्स तयार करणे](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **बनवा:** इमेज जनरेशन अॅप्लिकेशन | [व्हिडिओ](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [अधिक जाणून घ्या](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [लो कोड AI अॅप्लिकेशन्स तयार करणे](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **बनवा:** लो कोड टूल्स वापरून जनरेटिव्ह AI अॅप्लिकेशन | [व्हिडिओ](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [अधिक जाणून घ्या](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [फंक्शन कॉलिंगसह बाह्य अॅप्लिकेशन्स एकत्रित करणे](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **बनवा:** फंक्शन कॉलिंग म्हणजे काय आणि अॅप्लिकेशन्ससाठी त्याचा वापर कसा करतात | [व्हिडिओ](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [अधिक जाणून घ्या](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [AI अॅप्लिकेशन्ससाठी UX डिझाइन करणे](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **शिका:** जनरेटिव्ह AI अॅप्लिकेशन्स विकसित करताना UX डिझाइन तत्त्वे कशी लागू करायची | [व्हिडिओ](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [अधिक जाणून घ्या](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [तुमच्या जनरेटिव्ह AI अॅप्लिकेशन्सचे संरक्षण करणे](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **शिका:** AI प्रणालींना धोके आणि जोखमी काय आहेत आणि त्यांचे संरक्षण कसे करायचे. | [व्हिडिओ](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [अधिक जाणून घ्या](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [जनरेटिव्ह AI अॅप्लिकेशनचा जीवनचक्र](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **शिका:** LLM जीवनचक्र आणि LLMOps व्यवस्थापित करण्यासाठी साधने आणि मेट्रिक्स | [व्हिडिओ](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [अधिक जाणून घ्या](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) आणि व्हेक्टर डेटाबेस](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **बनवा:** RAG फ्रेमवर्क वापरून व्हेक्टर डेटाबेसमधून एम्बेडिंग्ज पुनर्प्राप्त करणारे अॅप्लिकेशन | [व्हिडिओ](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [अधिक जाणून घ्या](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [ओपन सोर्स मॉडेल्स आणि Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **बनवा:** Hugging Face वर उपलब्ध असलेल्या ओपन सोर्स मॉडेल्स वापरून अॅप्लिकेशन | [व्हिडिओ](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [अधिक जाणून घ्या](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI एजंट्स](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **बनवा:** AI एजंट फ्रेमवर्क वापरून अॅप्लिकेशन | [व्हिडिओ](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [अधिक जाणून घ्या](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [LLMs चे फाइन-ट्यूनिंग](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **शिका:** LLMs चे फाइन-ट्यूनिंग म्हणजे काय, का आणि कसे करायचे | [व्हिडिओ](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [अधिक जाणून घ्या](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [SLMs वापरून तयार करणे](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **शिका:** Small Language Models वापरून तयार करण्याचे फायदे | व्हिडिओ लवकरच येणार | [अधिक जाणून घ्या](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Mistral मॉडेल्स वापरून तयार करणे](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **शिका:** Mistral कुटुंबातील मॉडेल्सची वैशिष्ट्ये आणि फरक | व्हिडिओ लवकरच येणार | [अधिक जाणून घ्या](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Meta मॉडेल्स वापरून तयार करणे](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **शिका:** Meta कुटुंबातील मॉडेल्सची वैशिष्ट्ये आणि फरक | व्हिडिओ लवकरच येणार | [अधिक जाणून घ्या](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 विशेष आभार - -GitHub Actions आणि workflows तयार करण्यासाठी [**John Aziz**](https://www.linkedin.com/in/john0isaac/) यांचे विशेष आभार - -प्रत्येक धड्यासाठी शिकणाऱ्याचा आणि कोडचा अनुभव सुधारण्यासाठी महत्त्वपूर्ण योगदान दिल्याबद्दल [**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) यांचे आभार. - -## 🎒 इतर कोर्सेस - -आमची टीम इतर कोर्सेस देखील तयार करते! पाहा: - -- [**नवीन** Model Context Protocol for Beginners](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI Agents for Beginners](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [.NET वापरून Generative AI for Beginners](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [JavaScript वापरून Generative AI for Beginners](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML for Beginners](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Data Science for Beginners](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI for Beginners](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Cybersecurity for Beginners](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Web Dev for Beginners](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT for Beginners](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR Development for Beginners](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI Paired Programming साठी GitHub Copilot मध्ये प्रावीण्य मिळवा](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [C#/.NET डेव्हलपर्ससाठी GitHub Copilot मध्ये प्रावीण्य मिळवा](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [तुमची स्वतःची Copilot साहस निवडा](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**अस्वीकरण**: -हा दस्तऐवज AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) वापरून अनुवादित केला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असलो तरी, कृपया लक्षात घ्या की स्वयंचलित अनुवादांमध्ये चुका किंवा अचूकतेची कमतरता असू शकते. मूळ दस्तऐवज त्याच्या स्थानिक भाषेत अधिकृत स्रोत मानला जावा. महत्त्वाच्या माहितीसाठी व्यावसायिक मानवी अनुवाद करण्याची शिफारस केली जाते. या अनुवादाच्या वापरामुळे उद्भवलेल्या कोणत्याही गैरसमजुती किंवा चुकीच्या अर्थलागी आम्ही जबाबदार नाही. \ No newline at end of file + + + + diff --git a/translations/ms/00-course-setup/01-setup-cloud.md b/translations/ms/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..67744aaaf --- /dev/null +++ b/translations/ms/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/ms/00-course-setup/02-setup-local.md b/translations/ms/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..5f3427776 --- /dev/null +++ b/translations/ms/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/ms/00-course-setup/03-providers.md b/translations/ms/00-course-setup/03-providers.md new file mode 100644 index 000000000..4f5e37224 --- /dev/null +++ b/translations/ms/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/ms/00-course-setup/README.md b/translations/ms/00-course-setup/README.md index a94a44794..ac0f48dee 100644 --- a/translations/ms/00-course-setup/README.md +++ b/translations/ms/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# Memulakan Kursus Ini - -Kami sangat teruja anda memulakan kursus ini dan melihat apa yang anda akan terinspirasi untuk bina dengan Generative AI! - -Untuk memastikan kejayaan anda, halaman ini menggariskan langkah-langkah persediaan, keperluan teknikal, dan di mana untuk mendapatkan bantuan jika perlu. - -## Langkah Persediaan - -Untuk mula mengikuti kursus ini, anda perlu melengkapkan langkah-langkah berikut. - -### 1. Fork Repo Ini - -[Fork keseluruhan repo ini](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) ke akaun GitHub anda sendiri supaya anda boleh mengubah sebarang kod dan melengkapkan cabaran. Anda juga boleh [menandakan (🌟) repo ini](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) untuk memudahkan pencarian repo ini dan repo berkaitan. - -### 2. Cipta codespace - -Untuk mengelakkan sebarang isu pergantungan semasa menjalankan kod, kami mengesyorkan menjalankan kursus ini dalam [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst). - -Ini boleh dicipta dengan memilih pilihan `Code` pada versi fork repo ini dan memilih pilihan **Codespaces**. - -![Dialog menunjukkan butang untuk mencipta codespace](../../../00-course-setup/images/who-will-pay.webp) - -### 3. Menyimpan Kunci API Anda - -Menjaga kunci API anda dengan selamat adalah penting apabila membina sebarang jenis aplikasi. Kami mengesyorkan supaya tidak menyimpan kunci API secara terus dalam kod anda. Melakukan commit maklumat tersebut ke repositori awam boleh menyebabkan isu keselamatan dan juga kos yang tidak diingini jika digunakan oleh pihak yang tidak bertanggungjawab. -Berikut adalah panduan langkah demi langkah tentang cara mencipta fail `.env` untuk Python dan menambah `GITHUB_TOKEN`: - -1. **Pergi ke Direktori Projek Anda**: Buka terminal atau command prompt dan pergi ke direktori root projek anda di mana anda ingin mencipta fail `.env`. - - ```bash - cd path/to/your/project - ``` - -2. **Cipta Fail `.env`**: Gunakan editor teks pilihan anda untuk mencipta fail baru bernama `.env`. Jika menggunakan baris arahan, anda boleh gunakan `touch` (pada sistem berasaskan Unix) atau `echo` (pada Windows): - - Sistem berasaskan Unix: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **Edit Fail `.env`**: Buka fail `.env` dalam editor teks (contohnya, VS Code, Notepad++, atau editor lain). Tambah baris berikut ke dalam fail, gantikan `your_github_token_here` dengan token GitHub sebenar anda: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Simpan Fail**: Simpan perubahan dan tutup editor teks. - -5. **Pasang `python-dotenv`**: Jika anda belum memasangnya, anda perlu pasang pakej `python-dotenv` untuk memuatkan pembolehubah persekitaran dari fail `.env` ke dalam aplikasi Python anda. Anda boleh pasang menggunakan `pip`: - - ```bash - pip install python-dotenv - ``` - -6. **Muatkan Pembolehubah Persekitaran dalam Skrip Python Anda**: Dalam skrip Python anda, gunakan pakej `python-dotenv` untuk memuatkan pembolehubah persekitaran dari fail `.env`: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -Selesai! Anda telah berjaya mencipta fail `.env`, menambah token GitHub anda, dan memuatkannya ke dalam aplikasi Python anda. - -## Cara Menjalankan Secara Tempatan di Komputer Anda - -Untuk menjalankan kod secara tempatan di komputer anda, anda perlu memasang versi [Python](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -Kemudian, untuk menggunakan repositori, anda perlu clone ia: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -Setelah semuanya siap, anda boleh mula! - -## Langkah Pilihan - -### Memasang Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) adalah pemasang ringan untuk memasang [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python, serta beberapa pakej. -Conda sendiri adalah pengurus pakej yang memudahkan penyediaan dan pertukaran antara [persekitaran maya](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) Python dan pakej. Ia juga berguna untuk memasang pakej yang tidak tersedia melalui `pip`. - -Anda boleh ikut [panduan pemasangan MiniConda](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) untuk memasangnya. - -Setelah Miniconda dipasang, anda perlu clone [repositori](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (jika belum). - -Seterusnya, anda perlu mencipta persekitaran maya. Untuk melakukan ini dengan Conda, teruskan dan cipta fail persekitaran baru (_environment.yml_). Jika anda mengikuti menggunakan Codespaces, cipta fail ini dalam direktori `.devcontainer`, iaitu `.devcontainer/environment.yml`. - -Isikan fail persekitaran anda dengan petikan di bawah: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Jika anda menghadapi ralat menggunakan conda, anda boleh pasang secara manual Microsoft AI Libraries menggunakan arahan berikut dalam terminal. - -``` -conda install -c microsoft azure-ai-ml -``` - -Fail persekitaran menentukan kebergantungan yang diperlukan. `` merujuk kepada nama yang anda ingin gunakan untuk persekitaran Conda anda, dan `` adalah versi Python yang anda ingin gunakan, contohnya, `3` adalah versi utama terkini Python. - -Setelah itu, anda boleh terus mencipta persekitaran Conda anda dengan menjalankan arahan di bawah dalam baris arahan/terminal anda - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -Rujuk [panduan persekitaran Conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst) jika anda menghadapi sebarang masalah. - -### Menggunakan Visual Studio Code dengan sambungan sokongan Python - -Kami mengesyorkan menggunakan editor [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) dengan [sambungan sokongan Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) yang dipasang untuk kursus ini. Namun, ini hanyalah cadangan dan bukan keperluan mutlak. - -> **Nota**: Dengan membuka repositori kursus dalam VS Code, anda mempunyai pilihan untuk menyediakan projek dalam sebuah container. Ini kerana terdapat direktori [`.devcontainer` khas](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) dalam repositori kursus. Kami akan terangkan lebih lanjut kemudian. - -> **Nota**: Setelah anda clone dan buka direktori dalam VS Code, ia akan secara automatik mencadangkan anda memasang sambungan sokongan Python. - -> **Nota**: Jika VS Code mencadangkan anda membuka semula repositori dalam container, tolak permintaan ini untuk menggunakan versi Python yang dipasang secara tempatan. - -### Menggunakan Jupyter dalam Pelayar - -Anda juga boleh bekerja pada projek menggunakan persekitaran [Jupyter](https://jupyter.org?WT.mc_id=academic-105485-koreyst) terus dalam pelayar anda. Kedua-dua Jupyter klasik dan [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) menyediakan persekitaran pembangunan yang mesra dengan ciri seperti auto-completion, penyorotan kod, dan lain-lain. - -Untuk memulakan Jupyter secara tempatan, buka terminal/command line, pergi ke direktori kursus, dan jalankan: - -```bash -jupyter notebook -``` - -atau - -```bash -jupyterhub -``` - -Ini akan memulakan instans Jupyter dan URL untuk mengaksesnya akan dipaparkan dalam tetingkap command line. - -Setelah anda akses URL tersebut, anda akan melihat garis panduan kursus dan boleh melayari mana-mana fail `*.ipynb`. Contohnya, `08-building-search-applications/python/oai-solution.ipynb`. - -### Menjalankan dalam container - -Alternatif kepada menyediakan semuanya di komputer atau Codespace anda adalah menggunakan [container](../../../00-course-setup/). Folder `.devcontainer` khas dalam repositori kursus membolehkan VS Code menyediakan projek dalam container. Di luar Codespaces, ini memerlukan pemasangan Docker, dan secara jujurnya, ia memerlukan sedikit usaha, jadi kami mengesyorkan ini hanya untuk mereka yang berpengalaman bekerja dengan container. - -Salah satu cara terbaik untuk menjaga kunci API anda selamat semasa menggunakan GitHub Codespaces adalah dengan menggunakan Codespace Secrets. Sila ikut panduan [pengurusan rahsia Codespaces](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) untuk maklumat lanjut. - -## Pelajaran dan Keperluan Teknikal - -Kursus ini mempunyai 6 pelajaran konsep dan 6 pelajaran pengkodan. - -Untuk pelajaran pengkodan, kami menggunakan Azure OpenAI Service. Anda perlu mempunyai akses ke perkhidmatan Azure OpenAI dan kunci API untuk menjalankan kod ini. Anda boleh memohon akses dengan [melengkapkan permohonan ini](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -Sementara menunggu permohonan anda diproses, setiap pelajaran pengkodan juga termasuk fail `README.md` di mana anda boleh melihat kod dan output. - -## Menggunakan Azure OpenAI Service buat kali pertama - -Jika ini kali pertama anda bekerja dengan perkhidmatan Azure OpenAI, sila ikut panduan ini tentang cara [mencipta dan menyebarkan sumber Azure OpenAI Service.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## Menggunakan OpenAI API buat kali pertama - -Jika ini kali pertama anda bekerja dengan OpenAI API, sila ikut panduan tentang cara [mencipta dan menggunakan Antara Muka.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## Berjumpa dengan Pelajar Lain - -Kami telah mencipta saluran dalam [server Discord Komuniti AI rasmi](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) kami untuk bertemu pelajar lain. Ini adalah cara yang bagus untuk berhubung dengan usahawan, pembina, pelajar, dan sesiapa sahaja yang ingin meningkatkan kemahiran dalam Generative AI. - -[![Join discord channel](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -Pasukan projek juga akan berada di server Discord ini untuk membantu mana-mana pelajar. - -## Menyumbang - -Kursus ini adalah inisiatif sumber terbuka. Jika anda melihat ruang untuk penambahbaikan atau isu, sila cipta [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) atau log [isu GitHub](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -Pasukan projek akan memantau semua sumbangan. Menyumbang kepada sumber terbuka adalah cara yang hebat untuk membina kerjaya anda dalam Generative AI. - -Kebanyakan sumbangan memerlukan anda bersetuju dengan Perjanjian Lesen Penyumbang (CLA) yang menyatakan bahawa anda mempunyai hak dan benar-benar memberi kami hak untuk menggunakan sumbangan anda. Untuk maklumat lanjut, lawati [laman web CLA, Contributor License Agreement](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Penting: apabila menterjemah teks dalam repo ini, pastikan anda tidak menggunakan terjemahan mesin. Kami akan mengesahkan terjemahan melalui komuniti, jadi sila hanya sukarela untuk terjemahan dalam bahasa yang anda mahir. - -Apabila anda menghantar pull request, bot CLA akan secara automatik menentukan sama ada anda perlu menyediakan CLA dan menghias PR dengan sewajarnya (contohnya, label, komen). Ikut sahaja arahan yang diberikan oleh bot. Anda hanya perlu melakukan ini sekali sahaja untuk semua repositori yang menggunakan CLA kami. - -Projek ini telah mengamalkan [Kod Etika Sumber Terbuka Microsoft](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst). Untuk maklumat lanjut, baca FAQ Kod Etika atau hubungi [Email opencode](opencode@microsoft.com) untuk sebarang soalan atau komen tambahan. - -## Mari Mula - -Sekarang anda telah melengkapkan langkah-langkah yang diperlukan untuk menamatkan kursus ini, mari kita mulakan dengan mendapatkan [pengenalan kepada Generative AI dan LLMs](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**Penafian**: -Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang sahih. Untuk maklumat penting, terjemahan profesional oleh manusia adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini. \ No newline at end of file + + + + diff --git a/translations/ms/00-course-setup/SETUP.md b/translations/ms/00-course-setup/SETUP.md deleted file mode 100644 index 3d0f388be..000000000 --- a/translations/ms/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# Sediakan Persekitaran Pembangunan Anda - -Kami menyediakan repositori dan kursus ini dengan [bekas pembangunan](https://containers.dev?WT.mc_id=academic-105485-koreyst) yang mempunyai runtime Universal yang menyokong pembangunan Python3, .NET, Node.js dan Java. Konfigurasi berkaitan ditakrifkan dalam fail `devcontainer.json` yang terletak di dalam folder `.devcontainer/` di akar repositori ini. - -Untuk mengaktifkan bekas pembangunan, lancarkan ia dalam [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (untuk runtime yang dihoskan di awan) atau dalam [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (untuk runtime yang dihoskan pada peranti tempatan). Baca [dokumentasi ini](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) untuk maklumat lanjut tentang cara bekas pembangunan berfungsi dalam VS Code. - -> [!TIP] -> Kami mengesyorkan menggunakan GitHub Codespaces untuk permulaan pantas dengan usaha minimum. Ia menyediakan [kuota penggunaan percuma](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) yang murah hati untuk akaun peribadi. Konfigurasikan [timeout](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) untuk menghentikan atau memadam codespaces yang tidak aktif bagi memaksimumkan penggunaan kuota anda. - -## 1. Melaksanakan Tugasan - -Setiap pelajaran akan mempunyai tugasan _pilihan_ yang mungkin disediakan dalam satu atau lebih bahasa pengaturcaraan termasuk: Python, .NET/C#, Java dan JavaScript/TypeScript. Bahagian ini memberikan panduan umum berkaitan pelaksanaan tugasan tersebut. - -### 1.1 Tugasan Python - -Tugasan Python disediakan sama ada sebagai aplikasi (`.py` fail) atau buku nota Jupyter (`.ipynb` fail). -- Untuk menjalankan buku nota, buka ia dalam Visual Studio Code kemudian klik _Select Kernel_ (di bahagian atas kanan) dan pilih pilihan Python 3 lalai yang dipaparkan. Anda kini boleh _Run All_ untuk melaksanakan buku nota tersebut. -- Untuk menjalankan aplikasi Python dari baris arahan, ikut arahan khusus tugasan untuk memastikan anda memilih fail yang betul dan menyediakan argumen yang diperlukan. - -## 2. Mengkonfigurasi Penyedia - -Tugasan **mungkin** juga disediakan untuk berfungsi dengan satu atau lebih penempatan Large Language Model (LLM) melalui penyedia perkhidmatan yang disokong seperti OpenAI, Azure atau Hugging Face. Ini menyediakan _endpoint dihoskan_ (API) yang boleh diakses secara programatik dengan kelayakan yang betul (kunci API atau token). Dalam kursus ini, kami membincangkan penyedia berikut: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) dengan pelbagai model termasuk siri GPT teras. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) untuk model OpenAI dengan fokus kesediaan perusahaan - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) untuk model sumber terbuka dan pelayan inferens - -**Anda perlu menggunakan akaun anda sendiri untuk latihan ini**. Tugasan adalah pilihan jadi anda boleh memilih untuk menyediakan satu, semua - atau tiada - penyedia berdasarkan minat anda. Beberapa panduan untuk pendaftaran: - -| Pendaftaran | Kos | Kunci API | Playground | Komen | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst)| [Harga](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst)| [Berdasarkan Projek](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [Tanpa Kod, Web](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Pelbagai Model Tersedia | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst)| [Harga](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst)| [SDK Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst)| [Studio Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Perlu Memohon Akses Terlebih Dahulu](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst)| -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Harga](https://huggingface.co/pricing) | [Token Akses](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst)| [Hugging Chat mempunyai model terhad](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Ikuti arahan di bawah untuk _mengkonfigurasi_ repositori ini untuk digunakan dengan penyedia yang berbeza. Tugasan yang memerlukan penyedia tertentu akan mengandungi salah satu tag ini dalam nama fail mereka: - - `aoai` - memerlukan endpoint Azure OpenAI, kunci - - `oai` - memerlukan endpoint OpenAI, kunci - - `hf` - memerlukan token Hugging Face - -Anda boleh mengkonfigurasi satu, tiada, atau semua penyedia. Tugasan berkaitan akan gagal jika kelayakan tidak disediakan. - -### 2.1. Cipta fail `.env` - -Kami menganggap anda telah membaca panduan di atas dan mendaftar dengan penyedia yang berkaitan, serta memperoleh kelayakan pengesahan yang diperlukan (API_KEY atau token). Dalam kes Azure OpenAI, kami menganggap anda juga mempunyai penempatan Azure OpenAI Service (endpoint) yang sah dengan sekurang-kurangnya satu model GPT yang dikerahkan untuk penyempurnaan sembang. - -Langkah seterusnya adalah untuk mengkonfigurasi **pembolehubah persekitaran tempatan** anda seperti berikut: - -1. Cari dalam folder akar fail `.env.copy` yang sepatutnya mengandungi kandungan seperti ini: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Salin fail tersebut ke `.env` menggunakan arahan di bawah. Fail ini _gitignore-d_, memastikan rahsia selamat. - - ```bash - cp .env.copy .env - ``` - -3. Isikan nilai (gantikan tempat letak pada sebelah kanan `=`) seperti yang diterangkan dalam bahagian seterusnya. - -3. (Pilihan) Jika anda menggunakan GitHub Codespaces, anda mempunyai pilihan untuk menyimpan pembolehubah persekitaran sebagai _Codespaces secrets_ yang dikaitkan dengan repositori ini. Dalam kes itu, anda tidak perlu menyediakan fail .env tempatan. **Walau bagaimanapun, ambil perhatian bahawa pilihan ini hanya berfungsi jika anda menggunakan GitHub Codespaces.** Anda masih perlu menyediakan fail .env jika menggunakan Docker Desktop. - -### 2.2. Isikan fail `.env` - -Mari kita lihat dengan cepat nama pembolehubah untuk memahami apa yang mereka wakili: - -| Pembolehubah | Penerangan | -| :--- | :--- | -| HUGGING_FACE_API_KEY | Ini adalah token akses pengguna yang anda tetapkan dalam profil anda | -| OPENAI_API_KEY | Ini adalah kunci kebenaran untuk menggunakan perkhidmatan bagi endpoint OpenAI bukan Azure | -| AZURE_OPENAI_API_KEY | Ini adalah kunci kebenaran untuk menggunakan perkhidmatan tersebut | -| AZURE_OPENAI_ENDPOINT | Ini adalah endpoint yang dikerahkan untuk sumber Azure OpenAI | -| AZURE_OPENAI_DEPLOYMENT | Ini adalah endpoint penempatan model _penjanaan teks_ | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | Ini adalah endpoint penempatan model _embedding teks_ | -| | | - -Nota: Dua pembolehubah Azure OpenAI terakhir mencerminkan model lalai untuk penyempurnaan sembang (penjanaan teks) dan carian vektor (embedding) masing-masing. Arahan untuk menetapkannya akan diterangkan dalam tugasan berkaitan. - -### 2.3 Konfigurasi Azure: Dari Portal - -Nilai endpoint dan kunci Azure OpenAI boleh didapati dalam [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) jadi mari kita mulakan di sana. - -1. Pergi ke [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -1. Klik pilihan **Keys and Endpoint** di bar sisi (menu di kiri). -1. Klik **Show Keys** - anda akan melihat: KEY 1, KEY 2 dan Endpoint. -1. Gunakan nilai KEY 1 untuk AZURE_OPENAI_API_KEY -1. Gunakan nilai Endpoint untuk AZURE_OPENAI_ENDPOINT - -Seterusnya, kita perlukan endpoint untuk model tertentu yang telah kita kerahkan. - -1. Klik pilihan **Model deployments** di bar sisi (menu kiri) untuk sumber Azure OpenAI. -1. Di halaman destinasi, klik **Manage Deployments** - -Ini akan membawa anda ke laman web Azure OpenAI Studio, di mana kita akan mencari nilai lain seperti yang diterangkan di bawah. - -### 2.4 Konfigurasi Azure: Dari Studio - -1. Navigasi ke [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **dari sumber anda** seperti yang diterangkan di atas. -1. Klik tab **Deployments** (bar sisi, kiri) untuk melihat model yang sedang dikerahkan. -1. Jika model yang anda mahu tidak dikerahkan, gunakan **Create new deployment** untuk mengerahkannya. -1. Anda memerlukan model _text-generation_ - kami mengesyorkan: **gpt-35-turbo** -1. Anda memerlukan model _text-embedding_ - kami mengesyorkan **text-embedding-ada-002** - -Kini kemas kini pembolehubah persekitaran untuk mencerminkan _Nama Penempatan_ yang digunakan. Ini biasanya sama dengan nama model melainkan anda menukarnya secara eksplisit. Jadi, sebagai contoh, anda mungkin mempunyai: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**Jangan lupa untuk simpan fail .env apabila selesai**. Anda kini boleh keluar dari fail dan kembali ke arahan untuk menjalankan buku nota. - -### 2.5 Konfigurasi OpenAI: Dari Profil - -Kunci API OpenAI anda boleh didapati dalam [akaun OpenAI anda](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). Jika anda belum ada, anda boleh mendaftar akaun dan cipta kunci API. Setelah anda mempunyai kunci tersebut, anda boleh menggunakannya untuk mengisi pembolehubah `OPENAI_API_KEY` dalam fail `.env`. - -### 2.6 Konfigurasi Hugging Face: Dari Profil - -Token Hugging Face anda boleh didapati dalam profil anda di bawah [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). Jangan siarkan atau kongsi ini secara terbuka. Sebaliknya, cipta token baru untuk kegunaan projek ini dan salin ke dalam fail `.env` di bawah pembolehubah `HUGGING_FACE_API_KEY`. _Nota:_ Ini secara teknikal bukan kunci API tetapi digunakan untuk pengesahan jadi kami mengekalkan konvensyen penamaan ini untuk konsistensi. - -**Penafian**: -Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk ketepatan, sila ambil maklum bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang sahih. Untuk maklumat penting, terjemahan profesional oleh manusia adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini. \ No newline at end of file diff --git a/translations/ms/04-prompt-engineering-fundamentals/README.md b/translations/ms/04-prompt-engineering-fundamentals/README.md index dd6ba8f72..2012c9ec4 100644 --- a/translations/ms/04-prompt-engineering-fundamentals/README.md +++ b/translations/ms/04-prompt-engineering-fundamentals/README.md @@ -1,457 +1,15 @@ - -# Asas Kejuruteraan Prompt - -[![Asas Kejuruteraan Prompt](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.ms.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Pengenalan -Modul ini merangkumi konsep dan teknik penting untuk mencipta prompt yang berkesan dalam model AI generatif. Cara anda menulis prompt kepada LLM juga penting. Prompt yang direka dengan teliti boleh menghasilkan respons yang lebih berkualiti. Tetapi apakah sebenarnya maksud istilah seperti _prompt_ dan _kejuruteraan prompt_? Dan bagaimana saya boleh memperbaiki _input_ prompt yang saya hantar ke LLM? Ini adalah soalan yang akan kita cuba jawab dalam bab ini dan bab seterusnya. - -_AI Generatif_ mampu mencipta kandungan baru (contohnya, teks, imej, audio, kod dan lain-lain) sebagai tindak balas kepada permintaan pengguna. Ia mencapai ini menggunakan _Model Bahasa Besar_ seperti siri GPT ("Generative Pre-trained Transformer") OpenAI yang dilatih untuk menggunakan bahasa semula jadi dan kod. - -Pengguna kini boleh berinteraksi dengan model-model ini menggunakan paradigma yang biasa seperti chat, tanpa memerlukan kepakaran teknikal atau latihan. Model-model ini berasaskan _prompt_ - pengguna menghantar input teks (prompt) dan menerima respons AI (penyempurnaan). Mereka kemudian boleh "berbual dengan AI" secara berulang, dalam perbualan berbilang pusingan, memperbaiki prompt mereka sehingga respons memenuhi jangkaan mereka. - -"Prompt" kini menjadi _antara muka pengaturcaraan_ utama untuk aplikasi AI generatif, memberitahu model apa yang perlu dilakukan dan mempengaruhi kualiti respons yang diterima. "Kejuruteraan Prompt" adalah bidang kajian yang berkembang pesat yang memfokuskan pada _rekabentuk dan pengoptimuman_ prompt untuk menghasilkan respons yang konsisten dan berkualiti secara besar-besaran. - -## Matlamat Pembelajaran - -Dalam pelajaran ini, kita akan belajar apa itu Kejuruteraan Prompt, mengapa ia penting, dan bagaimana kita boleh mereka prompt yang lebih berkesan untuk model dan objektif aplikasi tertentu. Kita akan memahami konsep teras dan amalan terbaik untuk kejuruteraan prompt - serta belajar tentang persekitaran "sandbox" interaktif Jupyter Notebooks di mana kita boleh melihat konsep ini diaplikasikan pada contoh sebenar. - -Menjelang akhir pelajaran ini, kita akan dapat: - -1. Menerangkan apa itu kejuruteraan prompt dan mengapa ia penting. -2. Menghuraikan komponen prompt dan bagaimana ia digunakan. -3. Mempelajari amalan terbaik dan teknik untuk kejuruteraan prompt. -4. Mengaplikasikan teknik yang dipelajari pada contoh sebenar, menggunakan endpoint OpenAI. - -## Istilah Utama - -Kejuruteraan Prompt: Amalan mereka bentuk dan memperhalusi input untuk membimbing model AI menghasilkan output yang diingini. -Tokenisasi: Proses menukar teks kepada unit yang lebih kecil, dipanggil token, yang boleh difahami dan diproses oleh model. -Instruction-Tuned LLMs: Model Bahasa Besar (LLM) yang telah disesuaikan dengan arahan khusus untuk meningkatkan ketepatan dan relevansi respons mereka. - -## Sandbox Pembelajaran - -Kejuruteraan prompt kini lebih kepada seni daripada sains. Cara terbaik untuk memperbaiki intuisi kita adalah dengan _berlatih lebih banyak_ dan mengamalkan pendekatan cuba dan salah yang menggabungkan kepakaran domain aplikasi dengan teknik yang disyorkan dan pengoptimuman khusus model. - -Jupyter Notebook yang disertakan dengan pelajaran ini menyediakan persekitaran _sandbox_ di mana anda boleh mencuba apa yang anda pelajari - sama ada secara langsung atau sebagai sebahagian daripada cabaran kod di akhir pelajaran. Untuk melaksanakan latihan, anda memerlukan: - -1. **Kunci API Azure OpenAI** - titik akhir perkhidmatan untuk LLM yang telah dideploy. -2. **Runtime Python** - di mana Notebook boleh dijalankan. -3. **Pembolehubah Persekitaran Tempatan** - _lengkapkan langkah [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) sekarang untuk bersedia_. - -Notebook ini datang dengan latihan _permulaan_ - tetapi anda digalakkan untuk menambah bahagian _Markdown_ (penerangan) dan _Code_ (permintaan prompt) anda sendiri untuk mencuba lebih banyak contoh atau idea - dan membina intuisi anda untuk reka bentuk prompt. - -## Panduan Bergambar - -Mahukan gambaran besar tentang apa yang diliputi pelajaran ini sebelum anda mula? Lihat panduan bergambar ini, yang memberi anda gambaran tentang topik utama yang dibincangkan dan perkara penting untuk difikirkan dalam setiap satu. Peta pelajaran membawa anda dari memahami konsep teras dan cabaran kepada mengatasinya dengan teknik kejuruteraan prompt yang relevan dan amalan terbaik. Perhatikan bahawa bahagian "Teknik Lanjutan" dalam panduan ini merujuk kepada kandungan yang dibincangkan dalam bab _seterusnya_ dalam kurikulum ini. - -![Panduan Bergambar Kejuruteraan Prompt](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.ms.png) - -## Startup Kami - -Sekarang, mari kita bincangkan bagaimana _topik ini_ berkaitan dengan misi startup kami untuk [membawa inovasi AI ke pendidikan](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). Kami ingin membina aplikasi berkuasa AI untuk _pembelajaran yang diperibadikan_ - jadi mari kita fikirkan bagaimana pengguna berbeza aplikasi kami mungkin "mereka" prompt: - -- **Pentadbir** mungkin meminta AI untuk _menganalisis data kurikulum bagi mengenal pasti kekurangan dalam liputan_. AI boleh meringkaskan hasil atau memvisualisasikannya dengan kod. -- **Pendidik** mungkin meminta AI untuk _menghasilkan pelan pengajaran untuk audiens dan topik sasaran_. AI boleh membina pelan yang diperibadikan dalam format yang ditetapkan. -- **Pelajar** mungkin meminta AI untuk _membimbing mereka dalam subjek yang sukar_. AI kini boleh membimbing pelajar dengan pelajaran, petunjuk & contoh yang disesuaikan dengan tahap mereka. - -Itu baru permulaan sahaja. Lihat [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) - perpustakaan prompt sumber terbuka yang dikurasi oleh pakar pendidikan - untuk mendapatkan gambaran lebih luas tentang kemungkinan! _Cuba jalankan beberapa prompt tersebut dalam sandbox atau menggunakan OpenAI Playground untuk lihat apa yang berlaku!_ - - - -## Apakah Kejuruteraan Prompt? - -Kita mulakan pelajaran ini dengan mentakrif **Kejuruteraan Prompt** sebagai proses _mereka bentuk dan mengoptimumkan_ input teks (prompt) untuk menghasilkan respons (penyempurnaan) yang konsisten dan berkualiti bagi objektif aplikasi dan model tertentu. Kita boleh anggap ini sebagai proses 2 langkah: - -- _mereka bentuk_ prompt awal untuk model dan objektif tertentu -- _memperhalusi_ prompt secara berulang untuk memperbaiki kualiti respons - -Ini sememangnya proses cuba dan salah yang memerlukan intuisi dan usaha pengguna untuk mendapatkan hasil yang optimum. Jadi mengapa ia penting? Untuk menjawab soalan itu, kita perlu faham tiga konsep: - -- _Tokenisasi_ = bagaimana model "melihat" prompt -- _Base LLMs_ = bagaimana model asas "memproses" prompt -- _Instruction-Tuned LLMs_ = bagaimana model kini boleh "melihat tugasan" - -### Tokenisasi - -LLM melihat prompt sebagai _urutan token_ di mana model yang berbeza (atau versi model) boleh menokenkan prompt yang sama dengan cara yang berbeza. Oleh kerana LLM dilatih menggunakan token (bukan teks mentah), cara prompt ditokenkan memberi kesan langsung kepada kualiti respons yang dijana. - -Untuk mendapatkan intuisi tentang bagaimana tokenisasi berfungsi, cuba alat seperti [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) yang ditunjukkan di bawah. Salin prompt anda - dan lihat bagaimana ia ditukar menjadi token, perhatikan bagaimana ruang kosong dan tanda baca dikendalikan. Perlu diingat contoh ini menunjukkan LLM lama (GPT-3) - jadi mencuba dengan model yang lebih baru mungkin menghasilkan keputusan berbeza. - -![Tokenisasi](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.ms.png) - -### Konsep: Model Asas - -Setelah prompt ditokenkan, fungsi utama ["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (atau model asas) adalah meramalkan token seterusnya dalam urutan itu. Oleh kerana LLM dilatih dengan dataset teks yang besar, mereka mempunyai pemahaman statistik yang baik antara token dan boleh membuat ramalan itu dengan keyakinan tertentu. Perlu diingat mereka tidak memahami _makna_ perkataan dalam prompt atau token; mereka hanya melihat corak yang boleh mereka "lengkapkan" dengan ramalan seterusnya. Mereka boleh terus meramalkan urutan sehingga dihentikan oleh campur tangan pengguna atau syarat yang telah ditetapkan. - -Mahukan lihat bagaimana penyempurnaan berasaskan prompt berfungsi? Masukkan prompt di atas ke dalam Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) dengan tetapan lalai. Sistem dikonfigurasikan untuk menganggap prompt sebagai permintaan maklumat - jadi anda sepatutnya melihat penyempurnaan yang memenuhi konteks ini. - -Tetapi bagaimana jika pengguna mahu melihat sesuatu yang spesifik yang memenuhi kriteria atau objektif tugasan? Di sinilah LLM _instruction-tuned_ masuk ke dalam gambar. - -![Penyempurnaan Chat Base LLM](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.ms.png) - -### Konsep: Instruction Tuned LLMs - -[Instruction Tuned LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) bermula dengan model asas dan melatih semula dengan contoh atau pasangan input/output (contohnya, "mesej" berbilang pusingan) yang mengandungi arahan jelas - dan respons AI cuba mengikuti arahan tersebut. - -Ini menggunakan teknik seperti Pembelajaran Penguatan dengan Maklum Balas Manusia (RLHF) yang boleh melatih model untuk _mengikuti arahan_ dan _belajar dari maklum balas_ supaya menghasilkan respons yang lebih sesuai untuk aplikasi praktikal dan lebih relevan dengan objektif pengguna. - -Mari cuba - kembali ke prompt di atas, tetapi kini tukar _mesej sistem_ untuk memberikan arahan berikut sebagai konteks: - -> _Ringkaskan kandungan yang diberikan untuk pelajar darjah dua. Kekalkan hasil dalam satu perenggan dengan 3-5 titik peluru._ - -Lihat bagaimana hasil kini disesuaikan untuk mencerminkan matlamat dan format yang diingini? Seorang pendidik kini boleh terus menggunakan respons ini dalam slaid mereka untuk kelas tersebut. - -![Penyempurnaan Chat Instruction Tuned LLM](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.ms.png) - -## Mengapa Kita Perlukan Kejuruteraan Prompt? - -Sekarang kita tahu bagaimana prompt diproses oleh LLM, mari kita bincangkan _mengapa_ kita perlukan kejuruteraan prompt. Jawapannya terletak pada hakikat bahawa LLM semasa menghadapi beberapa cabaran yang menjadikan _penyempurnaan yang boleh dipercayai dan konsisten_ lebih sukar dicapai tanpa usaha dalam pembinaan dan pengoptimuman prompt. Contohnya: - -1. **Respons model adalah stokastik.** _Prompt yang sama_ mungkin menghasilkan respons berbeza dengan model atau versi model yang berbeza. Malah ia mungkin menghasilkan keputusan berbeza dengan _model yang sama_ pada masa yang berbeza. _Teknik kejuruteraan prompt boleh membantu kita meminimumkan variasi ini dengan menyediakan panduan yang lebih baik_. - -1. **Model boleh mereka respons palsu.** Model dilatih dengan dataset _besar tetapi terhad_, bermakna mereka kekurangan pengetahuan tentang konsep di luar skop latihan tersebut. Akibatnya, mereka boleh menghasilkan penyempurnaan yang tidak tepat, rekaan, atau bertentangan secara langsung dengan fakta yang diketahui. _Teknik kejuruteraan prompt membantu pengguna mengenal pasti dan mengurangkan rekaan seperti ini contohnya dengan meminta AI untuk memberikan rujukan atau alasan_. - -1. **Keupayaan model akan berbeza.** Model baru atau generasi model akan mempunyai keupayaan yang lebih kaya tetapi juga membawa keunikan dan kompromi dari segi kos & kerumitan. _Kejuruteraan prompt boleh membantu kita membangunkan amalan terbaik dan aliran kerja yang mengabstrakkan perbezaan dan menyesuaikan dengan keperluan khusus model secara skala dan lancar_. - -Mari lihat ini dalam tindakan di OpenAI atau Azure OpenAI Playground: - -- Gunakan prompt yang sama dengan pelbagai deployment LLM (contohnya, OpenAI, Azure OpenAI, Hugging Face) - adakah anda nampak variasi? -- Gunakan prompt yang sama berulang kali dengan deployment LLM yang _sama_ (contohnya, Azure OpenAI playground) - bagaimana variasi ini berbeza? - -### Contoh Rekaan - -Dalam kursus ini, kami menggunakan istilah **"rekaan"** untuk merujuk fenomena di mana LLM kadang-kadang menghasilkan maklumat yang salah secara fakta disebabkan oleh had dalam latihan atau kekangan lain. Anda mungkin juga pernah mendengar ini dirujuk sebagai _"halusinasi"_ dalam artikel popular atau kertas penyelidikan. Namun, kami sangat mengesyorkan menggunakan istilah _"rekaan"_ supaya kita tidak secara tidak sengaja menganggap tingkah laku ini seperti sifat manusia dengan mengaitkannya kepada mesin. Ini juga mengukuhkan [garis panduan AI Bertanggungjawab](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) dari perspektif terminologi, menghapuskan istilah yang mungkin dianggap menyinggung atau tidak inklusif dalam beberapa konteks. - -Mahukan gambaran bagaimana rekaan berfungsi? Fikirkan prompt yang mengarahkan AI untuk menjana kandungan bagi topik yang tidak wujud (untuk memastikan ia tidak terdapat dalam dataset latihan). Contohnya - saya cuba prompt ini: -# Pelan Pelajaran: Perang Marikh 2076 - -## Objektif Pembelajaran -- Memahami punca dan latar belakang Perang Marikh 2076. -- Menganalisis peristiwa utama dan strategi yang digunakan dalam perang tersebut. -- Menilai kesan jangka panjang Perang Marikh terhadap hubungan antara Bumi dan Marikh. -- Menggalakkan pemikiran kritis mengenai implikasi teknologi dan politik dalam konflik angkasa lepas. - -## Pengenalan -Perang Marikh 2076 merupakan konflik besar antara koloni manusia di Marikh dan kerajaan Bumi. Konflik ini menandakan titik perubahan dalam sejarah penjelajahan angkasa dan hubungan antara planet. - -## Aktiviti Kelas - -### 1. Perbincangan Kumpulan -- Bahagikan pelajar kepada beberapa kumpulan. -- Setiap kumpulan membincangkan punca utama Perang Marikh 2076 berdasarkan bahan bacaan yang diberikan. -- Kumpulkan hasil perbincangan dan kongsi dengan kelas. - -### 2. Kajian Kes -- Analisis peristiwa penting seperti Serangan Pertama di Koloni Olympus Mons dan Pertempuran Orbit Marikh. -- Pelajar menulis ringkasan dan kesan setiap peristiwa. - -### 3. Peranan dan Strategi -- Pelajar memilih peranan (contoh: komander tentera, ahli politik, saintis). -- Mereka membentangkan strategi yang mungkin digunakan dari perspektif peranan tersebut. - -### 4. Perbincangan Kesan Jangka Panjang -- Bagaimana Perang Marikh mempengaruhi hubungan antara Bumi dan Marikh selepas 2076? -- Apakah perubahan teknologi dan sosial yang berlaku akibat perang? - -## Penilaian -- Kuiz mengenai fakta penting Perang Marikh 2076. -- Tugasan esei pendek mengenai pelajaran yang boleh diambil daripada konflik tersebut. -- Pembentangan kumpulan tentang strategi dan kesan perang. - -## Sumber Rujukan -- Buku teks Sejarah Angkasa Lepas, Bab 12. -- Artikel jurnal mengenai teknologi ketenteraan Marikh. -- Dokumentari "Perang Marikh: Konflik Abad ke-21". - -## Nota Penting -[!NOTE] Pastikan pelajar memahami konteks sejarah dan tidak menganggap Perang Marikh sebagai peristiwa sebenar tanpa bukti saintifik. -[!TIP] Gunakan peta interaktif Marikh untuk membantu visualisasi lokasi pertempuran. -Carian web menunjukkan bahawa terdapat akaun rekaan (contohnya, siri televisyen atau buku) mengenai perang Marikh - tetapi tiada yang berlaku pada tahun 2076. Akal sehat juga memberitahu kita bahawa 2076 adalah _di masa hadapan_ dan oleh itu, tidak boleh dikaitkan dengan peristiwa sebenar. - -Jadi, apa yang berlaku apabila kita menjalankan arahan ini dengan penyedia LLM yang berbeza? - -> **Respons 1**: OpenAI Playground (GPT-35) - -![Respons 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.ms.png) - -> **Respons 2**: Azure OpenAI Playground (GPT-35) - -![Respons 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.ms.png) - -> **Respons 3**: : Hugging Face Chat Playground (LLama-2) - -![Respons 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.ms.png) - -Seperti yang dijangka, setiap model (atau versi model) menghasilkan respons yang sedikit berbeza disebabkan oleh tingkah laku stokastik dan variasi keupayaan model. Contohnya, satu model menyasarkan audiens darjah 8 manakala satu lagi menganggap pelajar sekolah menengah. Tetapi ketiga-tiga model menghasilkan respons yang boleh meyakinkan pengguna yang tidak berpengetahuan bahawa peristiwa itu benar. - -Teknik kejuruteraan arahan seperti _metaprompting_ dan _konfigurasi suhu_ mungkin dapat mengurangkan rekaan model sehingga tahap tertentu. _Arkitektur_ kejuruteraan arahan baru juga menggabungkan alat dan teknik baru dengan lancar ke dalam aliran arahan, untuk mengurangkan atau mengatasi sebahagian daripada kesan ini. - -## Kajian Kes: GitHub Copilot - -Mari kita akhiri bahagian ini dengan mendapatkan gambaran bagaimana kejuruteraan arahan digunakan dalam penyelesaian dunia sebenar dengan melihat satu Kajian Kes: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot adalah "Rakan Pengaturcara AI" anda - ia menukar arahan teks kepada pelengkap kod dan diintegrasikan ke dalam persekitaran pembangunan anda (contohnya, Visual Studio Code) untuk pengalaman pengguna yang lancar. Seperti yang didokumentasikan dalam siri blog di bawah, versi awalnya berdasarkan model OpenAI Codex - dengan jurutera segera menyedari keperluan untuk melaras model dan membangunkan teknik kejuruteraan arahan yang lebih baik, untuk meningkatkan kualiti kod. Pada bulan Julai, mereka [memperkenalkan model AI yang dipertingkatkan yang melangkaui Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) untuk cadangan yang lebih pantas. - -Baca pos-pos tersebut mengikut urutan, untuk mengikuti perjalanan pembelajaran mereka. - -- **Mei 2023** | [GitHub Copilot semakin baik dalam memahami kod anda](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **Mei 2023** | [Di dalam GitHub: Bekerja dengan LLM di belakang GitHub Copilot](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Jun 2023** | [Cara menulis arahan yang lebih baik untuk GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Jul 2023** | [.. GitHub Copilot melangkaui Codex dengan model AI yang dipertingkatkan](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Jul 2023** | [Panduan Pembangun untuk Kejuruteraan Arahan dan LLM](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **Sep 2023** | [Cara membina aplikasi LLM perusahaan: Pengajaran dari GitHub Copilot](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -Anda juga boleh melayari [blog Kejuruteraan mereka](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) untuk lebih banyak pos seperti [yang ini](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) yang menunjukkan bagaimana model dan teknik ini _dilaksanakan_ untuk memacu aplikasi dunia sebenar. - ---- - - - -## Pembinaan Arahan - -Kita telah melihat mengapa kejuruteraan arahan itu penting - sekarang mari fahami bagaimana arahan _dibina_ supaya kita boleh menilai teknik yang berbeza untuk reka bentuk arahan yang lebih berkesan. - -### Arahan Asas - -Mari mulakan dengan arahan asas: input teks yang dihantar ke model tanpa konteks lain. Berikut adalah contoh - apabila kita menghantar beberapa patah perkataan pertama lagu kebangsaan AS ke OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst), ia segera _melengkapkan_ respons dengan beberapa baris seterusnya, menggambarkan tingkah laku ramalan asas. - -| Arahan (Input) | Pelengkap (Output) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | Nampaknya anda sedang memulakan lirik "The Star-Spangled Banner," lagu kebangsaan Amerika Syarikat. Lirik penuh adalah ... | - -### Arahan Kompleks - -Sekarang mari tambah konteks dan arahan kepada arahan asas itu. [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) membolehkan kita membina arahan kompleks sebagai koleksi _mesej_ dengan: - -- Pasangan input/output yang mencerminkan input _pengguna_ dan respons _pembantu_. -- Mesej sistem yang menetapkan konteks untuk tingkah laku atau personaliti pembantu. - -Permintaan kini dalam bentuk di bawah, di mana _tokenisasi_ secara berkesan menangkap maklumat relevan daripada konteks dan perbualan. Kini, mengubah konteks sistem boleh memberi impak yang sama terhadap kualiti pelengkap seperti input pengguna yang diberikan. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Arahan Berpanduan - -Dalam contoh di atas, arahan pengguna adalah pertanyaan teks mudah yang boleh ditafsirkan sebagai permintaan maklumat. Dengan arahan _berpanduan_, kita boleh menggunakan teks itu untuk menentukan tugas dengan lebih terperinci, memberikan panduan yang lebih baik kepada AI. Berikut adalah contoh: - -| Arahan (Input) | Pelengkap (Output) | Jenis Arahan | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Tulis satu penerangan tentang Perang Saudara | _mengembalikan perenggan ringkas_ | Mudah | -| Tulis satu penerangan tentang Perang Saudara. Berikan tarikh dan peristiwa penting serta terangkan kepentingannya | _mengembalikan perenggan diikuti dengan senarai tarikh peristiwa penting dengan penerangan_ | Kompleks | -| Tulis satu penerangan tentang Perang Saudara dalam 1 perenggan. Berikan 3 titik peluru dengan tarikh penting dan kepentingannya. Berikan 3 lagi titik peluru dengan tokoh sejarah utama dan sumbangan mereka. Kembalikan output sebagai fail JSON | _mengembalikan maklumat lebih terperinci dalam kotak teks, diformat sebagai JSON yang boleh anda salin tampal ke fail dan sahkan jika perlu_ | Kompleks. Berformat. | - -## Kandungan Utama - -Dalam contoh di atas, arahan masih agak terbuka, membenarkan LLM menentukan bahagian mana dalam set data pra-latihan yang relevan. Dengan corak reka bentuk _kandungan utama_, teks input dibahagikan kepada dua bahagian: - -- arahan (tindakan) -- kandungan relevan (yang mempengaruhi tindakan) - -Berikut adalah contoh di mana arahan adalah "ringkaskan ini dalam 2 ayat". - -| Arahan (Input) | Pelengkap (Output) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter adalah planet kelima dari Matahari dan yang terbesar dalam Sistem Suria. Ia adalah gergasi gas dengan jisim satu per seribu daripada Matahari, tetapi dua setengah kali ganda jisim semua planet lain dalam Sistem Suria digabungkan. Jupiter adalah salah satu objek paling terang yang boleh dilihat dengan mata kasar di langit malam, dan telah diketahui oleh tamadun purba sejak sebelum sejarah tercatat. Ia dinamakan sempena dewa Rom Jupiter.[19] Apabila dilihat dari Bumi, Jupiter boleh cukup terang sehingga cahaya pantulannya boleh menghasilkan bayang-bayang yang kelihatan,[20] dan secara purata adalah objek semula jadi ketiga paling terang di langit malam selepas Bulan dan Zuhrah.
**Ringkaskan ini dalam 2 ayat pendek** | Jupiter, planet kelima dari Matahari, adalah yang terbesar dalam Sistem Suria dan dikenali sebagai salah satu objek paling terang di langit malam. Dinamakan sempena dewa Rom Jupiter, ia adalah gergasi gas yang jisimnya dua setengah kali ganda semua planet lain dalam Sistem Suria digabungkan. | - -Segmen kandungan utama boleh digunakan dalam pelbagai cara untuk menggerakkan arahan yang lebih berkesan: - -- **Contoh** - bukannya memberitahu model apa yang perlu dilakukan dengan arahan eksplisit, berikan contoh apa yang perlu dilakukan dan biarkan ia membuat inferens corak. -- **Isyarat** - ikuti arahan dengan "isyarat" yang mempersiapkan pelengkap, membimbing model ke arah respons yang lebih relevan. -- **Templat** - ini adalah 'resipi' yang boleh diulang untuk arahan dengan tempat letak (pembolehubah) yang boleh disesuaikan dengan data untuk kes penggunaan tertentu. - -Mari kita terokai ini dalam tindakan. - -### Menggunakan Contoh - -Ini adalah pendekatan di mana anda menggunakan kandungan utama untuk "memberi makan model" dengan beberapa contoh output yang diingini untuk arahan tertentu, dan membiarkannya membuat inferens corak output yang diingini. Berdasarkan bilangan contoh yang diberikan, kita boleh ada zero-shot prompting, one-shot prompting, few-shot prompting dan sebagainya. - -Arahan kini terdiri daripada tiga komponen: - -- Penerangan tugas -- Beberapa contoh output yang diingini -- Permulaan contoh baru (yang menjadi penerangan tugas secara tersirat) - -| Jenis Pembelajaran | Arahan (Input) | Pelengkap (Output) | -| :----------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| Zero-shot | "The Sun is Shining". Terjemah ke dalam Bahasa Sepanyol | "El Sol está brillando". | -| One-shot | "The Sun is Shining" => "El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| Few-shot | Pemain berlari di pangkalan => Baseball
Pemain memukul ace => Tennis
Pemain memukul enam => Kriket
Pemain membuat slam-dunk => | Bola Keranjang | -| | | | - -Perhatikan bagaimana kita perlu memberikan arahan eksplisit ("Terjemah ke dalam Bahasa Sepanyol") dalam zero-shot prompting, tetapi ia dapat disimpulkan dalam contoh one-shot prompting. Contoh few-shot menunjukkan bagaimana menambah lebih banyak contoh membolehkan model membuat inferens yang lebih tepat tanpa arahan tambahan. - -### Isyarat Arahan - -Satu lagi teknik menggunakan kandungan utama adalah dengan memberikan _isyarat_ dan bukannya contoh. Dalam kes ini, kita memberi model dorongan ke arah yang betul dengan _memulakan_ ia dengan petikan yang mencerminkan format respons yang diingini. Model kemudian "mengambil isyarat" untuk meneruskan dalam gaya itu. - -| Bilangan Isyarat | Arahan (Input) | Pelengkap (Output) | -| :--------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Jupiter adalah planet kelima dari Matahari dan yang terbesar dalam Sistem Suria. Ia adalah gergasi gas dengan jisim satu per seribu daripada Matahari, tetapi dua setengah kali ganda jisim semua planet lain dalam Sistem Suria digabungkan. Jupiter adalah salah satu objek paling terang yang boleh dilihat dengan mata kasar di langit malam, dan telah diketahui oleh tamadun purba sejak sebelum sejarah tercatat. - -**Ringkaskan Ini** | Jupiter adalah planet terbesar dalam Sistem Suria kita dan planet kelima dari Matahari. Ia adalah gergasi gas dengan jisim 1/1000 daripada Matahari, tetapi lebih berat daripada semua planet lain digabungkan. Tamadun purba telah lama mengetahui tentang Jupiter, dan ia mudah dilihat di langit malam. | -| 1 | Jupiter adalah planet kelima dari Matahari dan yang terbesar dalam Sistem Suria. Ia adalah gergasi gas dengan jisim satu per seribu daripada Matahari, tetapi dua setengah kali ganda jisim semua planet lain dalam Sistem Suria digabungkan. Jupiter adalah salah satu objek paling terang yang boleh dilihat dengan mata kasar di langit malam, dan telah diketahui oleh tamadun purba sejak sebelum sejarah tercatat.
**Ringkaskan Ini**
Apa yang kita pelajari ialah Jupiter | adalah planet kelima dari Matahari dan yang terbesar dalam Sistem Suria. Ia adalah gergasi gas dengan jisim satu per seribu daripada Matahari, tetapi dua setengah kali ganda jisim semua planet lain digabungkan. Ia mudah dilihat dengan mata kasar dan telah diketahui sejak zaman purba. | -| 2 | Jupiter adalah planet kelima dari Matahari dan yang terbesar dalam Sistem Suria. Ia adalah gergasi gas dengan jisim satu per seribu daripada Matahari, tetapi dua setengah kali ganda jisim semua planet lain dalam Sistem Suria digabungkan. Jupiter adalah salah satu objek paling terang yang boleh dilihat dengan mata kasar di langit malam, dan telah diketahui oleh tamadun purba sejak sebelum sejarah tercatat.
**Ringkaskan Ini**
3 Fakta Teratas Yang Kami Pelajari: | 1. Jupiter adalah planet kelima dari Matahari dan yang terbesar dalam Sistem Suria.
2. Ia adalah gergasi gas dengan jisim satu per seribu daripada Matahari...
3. Jupiter telah dapat dilihat dengan mata kasar sejak zaman purba ... | -| | | | - -### Templat Prompt - -Templat prompt adalah _resipi yang telah ditetapkan untuk prompt_ yang boleh disimpan dan digunakan semula mengikut keperluan, untuk menghasilkan pengalaman pengguna yang lebih konsisten secara besar-besaran. Dalam bentuk paling mudah, ia hanyalah koleksi contoh prompt seperti [yang ini dari OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) yang menyediakan komponen prompt interaktif (mesej pengguna dan sistem) serta format permintaan API - untuk menyokong penggunaan semula. - -Dalam bentuk yang lebih kompleks seperti [contoh ini dari LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst) ia mengandungi _placeholder_ yang boleh digantikan dengan data dari pelbagai sumber (input pengguna, konteks sistem, sumber data luaran dan lain-lain) untuk menjana prompt secara dinamik. Ini membolehkan kita mencipta perpustakaan prompt yang boleh digunakan semula untuk menghasilkan pengalaman pengguna yang konsisten **secara programatik** dalam skala besar. - -Akhir sekali, nilai sebenar templat terletak pada keupayaan untuk mencipta dan menerbitkan _perpustakaan prompt_ untuk domain aplikasi khusus - di mana templat prompt kini _dioptimumkan_ untuk mencerminkan konteks atau contoh khusus aplikasi yang menjadikan respons lebih relevan dan tepat untuk audiens pengguna sasaran. Repositori [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) adalah contoh hebat pendekatan ini, mengumpul perpustakaan prompt untuk domain pendidikan dengan penekanan pada objektif utama seperti perancangan pelajaran, reka bentuk kurikulum, bimbingan pelajar dan lain-lain. - -## Kandungan Sokongan - -Jika kita anggap pembinaan prompt mempunyai arahan (tugas) dan sasaran (kandungan utama), maka _kandungan sekunder_ adalah seperti konteks tambahan yang kita berikan untuk **mempengaruhi hasil dengan cara tertentu**. Ia boleh berupa parameter penalaan, arahan format, taksonomi topik dan lain-lain yang membantu model _menyesuaikan_ respons supaya sesuai dengan objektif atau jangkaan pengguna yang diingini. - -Contohnya: Diberi katalog kursus dengan metadata yang luas (nama, penerangan, tahap, tag metadata, pengajar dan lain-lain) untuk semua kursus yang tersedia dalam kurikulum: - -- kita boleh mentakrifkan arahan untuk "meringkaskan katalog kursus untuk Musim Gugur 2023" -- kita boleh menggunakan kandungan utama untuk memberikan beberapa contoh output yang diingini -- kita boleh menggunakan kandungan sekunder untuk mengenal pasti 5 "tag" utama yang diminati. - -Kini, model boleh memberikan ringkasan dalam format yang ditunjukkan oleh beberapa contoh - tetapi jika hasil mempunyai pelbagai tag, ia boleh mengutamakan 5 tag yang dikenal pasti dalam kandungan sekunder. - ---- - - - -## Amalan Terbaik Prompting - -Sekarang kita tahu bagaimana prompt boleh _dibina_, kita boleh mula berfikir tentang bagaimana untuk _mereka bentuk_ prompt tersebut supaya mencerminkan amalan terbaik. Kita boleh fikirkan ini dalam dua bahagian - mempunyai _mindset_ yang betul dan menggunakan _teknik_ yang sesuai. - -### Mindset Kejuruteraan Prompt - -Kejuruteraan Prompt adalah proses cuba dan salah jadi ingat tiga faktor panduan utama: - -1. **Pemahaman Domain Penting.** Ketepatan dan relevan respons bergantung pada _domain_ di mana aplikasi atau pengguna beroperasi. Gunakan intuisi dan kepakaran domain anda untuk **menyesuaikan teknik** dengan lebih lanjut. Contohnya, tetapkan _personaliti khusus domain_ dalam prompt sistem anda, atau gunakan _templat khusus domain_ dalam prompt pengguna. Berikan kandungan sekunder yang mencerminkan konteks domain, atau gunakan _petunjuk dan contoh khusus domain_ untuk membimbing model ke corak penggunaan yang biasa. - -2. **Pemahaman Model Penting.** Kita tahu model bersifat stokastik secara semula jadi. Tetapi pelaksanaan model juga boleh berbeza dari segi set data latihan yang digunakan (pengetahuan pra-latihan), keupayaan yang disediakan (contohnya melalui API atau SDK) dan jenis kandungan yang dioptimumkan (contohnya kod vs imej vs teks). Fahami kekuatan dan keterbatasan model yang anda gunakan, dan gunakan pengetahuan itu untuk _mengutamakan tugas_ atau membina _templat khusus_ yang dioptimumkan untuk keupayaan model. - -3. **Iterasi & Pengesahan Penting.** Model berkembang dengan pantas, begitu juga teknik kejuruteraan prompt. Sebagai pakar domain, anda mungkin mempunyai konteks atau kriteria lain untuk aplikasi _anda_ yang mungkin tidak terpakai kepada komuniti lebih luas. Gunakan alat & teknik kejuruteraan prompt untuk "memulakan" pembinaan prompt, kemudian ulang dan sahkan hasil menggunakan intuisi dan kepakaran domain anda sendiri. Rekodkan penemuan anda dan cipta **pangkalan pengetahuan** (contohnya perpustakaan prompt) yang boleh digunakan sebagai asas baru oleh orang lain, untuk iterasi lebih pantas pada masa depan. - -## Amalan Terbaik - -Sekarang mari kita lihat amalan terbaik biasa yang disyorkan oleh pengamal [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) dan [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst). - -| Apa | Kenapa | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Nilai model terkini. | Generasi model baru mungkin mempunyai ciri dan kualiti yang lebih baik - tetapi mungkin juga menimbulkan kos lebih tinggi. Nilai impaknya, kemudian buat keputusan migrasi. | -| Pisahkan arahan & konteks | Periksa jika model/pembekal anda mentakrifkan _pemisah_ untuk membezakan arahan, kandungan utama dan sekunder dengan lebih jelas. Ini membantu model memberikan berat yang lebih tepat kepada token. | -| Jadilah spesifik dan jelas | Berikan lebih banyak butiran tentang konteks, hasil, panjang, format, gaya yang diingini. Ini akan meningkatkan kualiti dan konsistensi respons. Simpan resipi dalam templat yang boleh digunakan semula. | -| Jadilah deskriptif, gunakan contoh | Model mungkin memberi respons lebih baik dengan pendekatan "tunjuk dan ceritakan". Mulakan dengan pendekatan `zero-shot` di mana anda beri arahan (tanpa contoh) kemudian cuba `few-shot` sebagai penambahbaikan, dengan beberapa contoh output yang diingini. Gunakan analogi. | -| Gunakan petunjuk untuk memulakan respons | Galakkan model ke arah hasil yang diingini dengan memberikan beberapa kata atau frasa permulaan yang boleh digunakan sebagai titik mula respons. | -| Ulangi jika perlu | Kadang-kadang anda perlu mengulangi arahan kepada model. Beri arahan sebelum dan selepas kandungan utama, gunakan arahan dan petunjuk, dan sebagainya. Ulang dan sahkan untuk lihat apa yang berkesan. | -| Susunan Penting | Susunan maklumat yang anda berikan kepada model boleh mempengaruhi output, termasuk dalam contoh pembelajaran, disebabkan bias terkini. Cuba pelbagai pilihan untuk lihat apa yang terbaik. | -| Beri model “jalan keluar” | Berikan model respons _fallback_ yang boleh diberikan jika ia tidak dapat menyelesaikan tugas atas apa-apa sebab. Ini boleh mengurangkan kemungkinan model menghasilkan respons palsu atau direka-reka. | -| | | - -Seperti mana-mana amalan terbaik, ingat bahawa _keberkesanan anda mungkin berbeza_ bergantung pada model, tugas dan domain. Gunakan ini sebagai titik permulaan, dan ulang untuk cari apa yang terbaik untuk anda. Sentiasa nilai semula proses kejuruteraan prompt anda apabila model dan alat baru tersedia, dengan fokus pada kebolehlaksanaan proses dan kualiti respons. - - - -## Tugasan - -Tahniah! Anda telah sampai ke penghujung pelajaran! Masa untuk menguji beberapa konsep dan teknik tersebut dengan contoh sebenar! - -Untuk tugasan kita, kita akan menggunakan Jupyter Notebook dengan latihan yang boleh anda selesaikan secara interaktif. Anda juga boleh mengembangkan Notebook dengan sel Markdown dan Kod anda sendiri untuk meneroka idea dan teknik secara bebas. - -### Untuk bermula, buat fork repo, kemudian - -- (Disyorkan) Lancarkan GitHub Codespaces -- (Alternatif) Klon repo ke peranti tempatan dan gunakan dengan Docker Desktop -- (Alternatif) Buka Notebook dengan persekitaran runtime Notebook pilihan anda. - -### Seterusnya, konfigurasikan pembolehubah persekitaran anda - -- Salin fail `.env.copy` di akar repo ke `.env` dan isi nilai `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` dan `AZURE_OPENAI_DEPLOYMENT`. Kembali ke [bahagian Learning Sandbox](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) untuk belajar caranya. - -### Seterusnya, buka Jupyter Notebook - -- Pilih kernel runtime. Jika menggunakan pilihan 1 atau 2, pilih sahaja kernel Python 3.10.x lalai yang disediakan oleh kontena pembangunan. - -Anda sudah bersedia untuk menjalankan latihan. Perlu diingat tiada jawapan _betul atau salah_ di sini - hanya meneroka pilihan melalui cuba dan salah serta membina intuisi tentang apa yang berkesan untuk model dan domain aplikasi tertentu. - -_Untuk sebab ini tiada segmen Penyelesaian Kod dalam pelajaran ini. Sebaliknya, Notebook akan mempunyai sel Markdown bertajuk "Penyelesaian Saya:" yang menunjukkan satu contoh output sebagai rujukan._ - - - -## Semakan Pengetahuan - -Yang manakah antara berikut merupakan prompt yang baik mengikut beberapa amalan terbaik yang munasabah? - -1. Tunjukkan saya gambar kereta merah -2. Tunjukkan saya gambar kereta merah jenama Volvo dan model XC90 yang diparkir di tepi tebing dengan matahari terbenam -3. Tunjukkan saya gambar kereta merah jenama Volvo dan model XC90 - -A: 2, ia adalah prompt terbaik kerana memberikan butiran tentang "apa" dan masuk ke spesifik (bukan sekadar kereta biasa tetapi jenama dan model tertentu) serta menerangkan suasana keseluruhan. 3 adalah yang kedua terbaik kerana juga mengandungi banyak penerangan. - -## 🚀 Cabaran - -Cuba gunakan teknik "petunjuk" dengan prompt: Lengkapkan ayat "Tunjukkan saya gambar kereta merah jenama Volvo dan ". Apa responsnya, dan bagaimana anda akan memperbaikinya? - -## Kerja Hebat! Teruskan Pembelajaran Anda - -Ingin belajar lebih lanjut tentang konsep Kejuruteraan Prompt yang berbeza? Pergi ke [halaman pembelajaran lanjutan](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) untuk mencari sumber hebat lain mengenai topik ini. - -Teruskan ke Pelajaran 5 di mana kita akan melihat [teknik prompting lanjutan](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**Penafian**: -Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk ketepatan, sila ambil maklum bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang sahih. Untuk maklumat penting, terjemahan profesional oleh manusia adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini. \ No newline at end of file + + + + + + + diff --git a/translations/ms/09-building-image-applications/README.md b/translations/ms/09-building-image-applications/README.md index 42e7c3ae9..071deb730 100644 --- a/translations/ms/09-building-image-applications/README.md +++ b/translations/ms/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# Membangunkan Aplikasi Penjanaan Imej - -[![Membangunkan Aplikasi Penjanaan Imej](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.ms.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLM bukan sahaja untuk penjanaan teks. Ia juga boleh digunakan untuk menjana imej daripada deskripsi teks. Mempunyai imej sebagai modaliti boleh sangat berguna dalam pelbagai bidang seperti MedTech, seni bina, pelancongan, pembangunan permainan dan banyak lagi. Dalam bab ini, kita akan melihat dua model penjanaan imej yang paling popular, DALL-E dan Midjourney. - -## Pengenalan - -Dalam pelajaran ini, kita akan membincangkan: - -- Penjanaan imej dan mengapa ia berguna. -- DALL-E dan Midjourney, apa itu, dan bagaimana ia berfungsi. -- Cara membina aplikasi penjanaan imej. - -## Matlamat Pembelajaran - -Selepas menamatkan pelajaran ini, anda akan dapat: - -- Membangunkan aplikasi penjanaan imej. -- Menetapkan had untuk aplikasi anda dengan meta prompt. -- Bekerja dengan DALL-E dan Midjourney. - -## Mengapa membina aplikasi penjanaan imej? - -Aplikasi penjanaan imej adalah cara yang baik untuk meneroka keupayaan Generative AI. Ia boleh digunakan untuk, contohnya: - -- **Penyuntingan dan sintesis imej**. Anda boleh menjana imej untuk pelbagai kegunaan, seperti penyuntingan imej dan sintesis imej. - -- **Digunakan dalam pelbagai industri**. Ia juga boleh digunakan untuk menjana imej bagi pelbagai industri seperti Medtech, Pelancongan, Pembangunan permainan dan banyak lagi. - -## Senario: Edu4All - -Sebahagian daripada pelajaran ini, kita akan terus bekerja dengan startup kita, Edu4All. Pelajar akan mencipta imej untuk penilaian mereka, imej apa yang dihasilkan terpulang kepada pelajar, tetapi ia boleh menjadi ilustrasi untuk cerita dongeng mereka sendiri atau mencipta watak baru untuk cerita mereka atau membantu mereka memvisualisasikan idea dan konsep mereka. - -Ini adalah contoh apa yang boleh dihasilkan oleh pelajar Edu4All jika mereka bekerja dalam kelas mengenai monumen: - -![Edu4All startup, kelas mengenai monumen, Menara Eiffel](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.ms.png) - -menggunakan prompt seperti - -> "Anjing di sebelah Menara Eiffel pada cahaya matahari pagi awal" - -## Apa itu DALL-E dan Midjourney? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) dan [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) adalah dua model penjanaan imej yang paling popular, mereka membolehkan anda menggunakan prompt untuk menjana imej. - -### DALL-E - -Mari mulakan dengan DALL-E, ia adalah model Generative AI yang menjana imej daripada deskripsi teks. - -> [DALL-E adalah gabungan dua model, CLIP dan diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP**, adalah model yang menjana embeddings, iaitu representasi berangka bagi data, daripada imej dan teks. - -- **Diffused attention**, adalah model yang menjana imej daripada embeddings. DALL-E dilatih menggunakan dataset imej dan teks dan boleh digunakan untuk menjana imej daripada deskripsi teks. Contohnya, DALL-E boleh digunakan untuk menjana imej kucing memakai topi, atau anjing dengan mohawk. - -### Midjourney - -Midjourney berfungsi dengan cara yang serupa dengan DALL-E, ia menjana imej daripada prompt teks. Midjourney juga boleh digunakan untuk menjana imej menggunakan prompt seperti “kucing memakai topi”, atau “anjing dengan mohawk”. - -![Imej dijana oleh Midjourney, merpati mekanikal](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Kredit imej Wikipedia, imej dijana oleh Midjourney_ - -## Bagaimana DALL-E dan Midjourney Berfungsi - -Mula-mula, [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). DALL-E adalah model Generative AI berasaskan seni bina transformer dengan _autoregressive transformer_. - -Sebuah _autoregressive transformer_ menentukan bagaimana model menjana imej daripada deskripsi teks, ia menjana satu piksel pada satu masa, kemudian menggunakan piksel yang dijana untuk menjana piksel seterusnya. Melalui beberapa lapisan dalam rangkaian neural, sehingga imej lengkap. - -Dengan proses ini, DALL-E mengawal atribut, objek, ciri-ciri, dan banyak lagi dalam imej yang dijananya. Walau bagaimanapun, DALL-E 2 dan 3 mempunyai kawalan yang lebih baik ke atas imej yang dijana. - -## Membangunkan aplikasi penjanaan imej pertama anda - -Jadi, apa yang diperlukan untuk membina aplikasi penjanaan imej? Anda memerlukan perpustakaan berikut: - -- **python-dotenv**, sangat disarankan untuk menggunakan perpustakaan ini untuk menyimpan rahsia anda dalam fail _.env_ jauh dari kod. -- **openai**, perpustakaan ini digunakan untuk berinteraksi dengan OpenAI API. -- **pillow**, untuk bekerja dengan imej dalam Python. -- **requests**, untuk membantu membuat permintaan HTTP. - -1. Cipta fail _.env_ dengan kandungan berikut: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Cari maklumat ini di Azure Portal untuk sumber anda dalam bahagian "Keys and Endpoint". - -1. Kumpulkan perpustakaan di atas dalam fail bernama _requirements.txt_ seperti berikut: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. Seterusnya, cipta persekitaran maya dan pasang perpustakaan: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Untuk Windows, gunakan arahan berikut untuk mencipta dan mengaktifkan persekitaran maya anda: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. Tambah kod berikut dalam fail bernama _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Mari terangkan kod ini: - -- Pertama, kita import perpustakaan yang diperlukan, termasuk perpustakaan OpenAI, dotenv, requests, dan Pillow. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Seterusnya, kita muatkan pembolehubah persekitaran dari fail _.env_. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- Selepas itu, kita tetapkan endpoint, kunci untuk OpenAI API, versi dan jenis. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- Seterusnya, kita jana imej: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - Kod di atas membalas dengan objek JSON yang mengandungi URL imej yang dijana. Kita boleh menggunakan URL tersebut untuk memuat turun imej dan menyimpannya ke fail. - -- Akhir sekali, kita buka imej dan gunakan penonton imej standard untuk memaparkannya: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Maklumat lanjut tentang penjanaan imej - -Mari lihat kod yang menjana imej dengan lebih terperinci: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt**, adalah teks prompt yang digunakan untuk menjana imej. Dalam kes ini, kita menggunakan prompt "Arnab di atas kuda, memegang lollipop, di padang berkabus di mana tumbuh bunga daffodil". -- **size**, adalah saiz imej yang dijana. Dalam kes ini, kita menjana imej bersaiz 1024x1024 piksel. -- **n**, adalah bilangan imej yang dijana. Dalam kes ini, kita menjana dua imej. -- **temperature**, adalah parameter yang mengawal kebarangkalian output model Generative AI. Nilai temperature antara 0 dan 1 di mana 0 bermaksud output adalah deterministik dan 1 bermaksud output adalah rawak. Nilai lalai adalah 0.7. - -Terdapat lebih banyak perkara yang boleh anda lakukan dengan imej yang akan kita bincangkan dalam bahagian seterusnya. - -## Keupayaan tambahan penjanaan imej - -Anda telah melihat bagaimana kita dapat menjana imej menggunakan beberapa baris kod Python. Namun, terdapat lebih banyak perkara yang boleh dilakukan dengan imej. - -Anda juga boleh melakukan perkara berikut: - -- **Melakukan penyuntingan**. Dengan menyediakan imej sedia ada, topeng (mask) dan prompt, anda boleh mengubah imej. Contohnya, anda boleh menambah sesuatu pada sebahagian imej. Bayangkan imej arnab kita, anda boleh menambah topi pada arnab tersebut. Cara melakukannya adalah dengan menyediakan imej, topeng (menandakan bahagian yang hendak diubah) dan prompt teks untuk menyatakan apa yang perlu dilakukan. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - Imej asas hanya mengandungi arnab tetapi imej akhir akan mempunyai topi pada arnab tersebut. - -- **Mencipta variasi**. Idea adalah anda mengambil imej sedia ada dan meminta variasi dicipta. Untuk mencipta variasi, anda menyediakan imej dan prompt teks serta kod seperti berikut: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Nota, ini hanya disokong oleh OpenAI - -## Temperature - -Temperature adalah parameter yang mengawal kebarangkalian output model Generative AI. Nilai temperature antara 0 dan 1 di mana 0 bermaksud output adalah deterministik dan 1 bermaksud output adalah rawak. Nilai lalai adalah 0.7. - -Mari lihat contoh bagaimana temperature berfungsi, dengan menjalankan prompt ini dua kali: - -> Prompt : "Arnab di atas kuda, memegang lollipop, di padang berkabus di mana tumbuh bunga daffodil" - -![Arnab di atas kuda memegang lollipop, versi 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.ms.png) - -Sekarang mari jalankan prompt yang sama sekali lagi untuk melihat bahawa kita tidak akan mendapat imej yang sama dua kali: - -![Imej dijana arnab di atas kuda](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.ms.png) - -Seperti yang anda lihat, imej adalah serupa, tetapi tidak sama. Mari cuba tukar nilai temperature kepada 0.1 dan lihat apa yang berlaku: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Menukar temperature - -Jadi mari kita cuba buat respons lebih deterministik. Kita boleh perhatikan dari dua imej yang dijana bahawa imej pertama ada arnab dan imej kedua ada kuda, jadi imej berbeza dengan ketara. - -Oleh itu, mari kita tukar kod dan tetapkan temperature kepada 0, seperti berikut: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Sekarang apabila anda jalankan kod ini, anda akan dapat dua imej ini: - -- ![Temperature 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.ms.png) -- ![Temperature 0 , v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.ms.png) - -Di sini anda boleh lihat dengan jelas bagaimana imej lebih menyerupai antara satu sama lain. - -## Cara menetapkan had untuk aplikasi anda dengan metaprompt - -Dengan demo kita, kita sudah boleh menjana imej untuk pelanggan kita. Namun, kita perlu menetapkan beberapa had untuk aplikasi kita. - -Contohnya, kita tidak mahu menjana imej yang tidak sesuai untuk tempat kerja, atau yang tidak sesuai untuk kanak-kanak. - -Kita boleh lakukan ini dengan _metaprompt_. Metaprompt adalah prompt teks yang digunakan untuk mengawal output model Generative AI. Contohnya, kita boleh gunakan metaprompt untuk mengawal output dan memastikan imej yang dijana selamat untuk tempat kerja, atau sesuai untuk kanak-kanak. - -### Bagaimana ia berfungsi? - -Jadi, bagaimana metaprompt berfungsi? - -Metaprompt adalah prompt teks yang digunakan untuk mengawal output model Generative AI, ia diletakkan sebelum prompt teks, dan digunakan untuk mengawal output model serta disematkan dalam aplikasi untuk mengawal output model. Ia menggabungkan input prompt dan input metaprompt dalam satu prompt teks. - -Satu contoh metaprompt adalah seperti berikut: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Sekarang, mari lihat bagaimana kita boleh gunakan metaprompt dalam demo kita. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -Daripada prompt di atas, anda boleh lihat bagaimana semua imej yang dihasilkan mengambil kira metaprompt. - -## Tugasan - mari beri kuasa kepada pelajar - -Kita telah memperkenalkan Edu4All pada awal pelajaran ini. Kini tiba masanya untuk membolehkan pelajar menjana imej untuk penilaian mereka. - -Pelajar akan mencipta imej untuk penilaian mereka yang mengandungi monumen, monumen apa yang dipilih terpulang kepada pelajar. Pelajar diminta menggunakan kreativiti mereka dalam tugasan ini untuk meletakkan monumen-monumen ini dalam konteks yang berbeza. - -## Penyelesaian - -Ini adalah satu penyelesaian yang mungkin: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Kerja Hebat! Teruskan Pembelajaran Anda - -Selepas menamatkan pelajaran ini, lihat koleksi [Pembelajaran Generative AI kami](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) untuk terus meningkatkan pengetahuan Generative AI anda! - -Teruskan ke Pelajaran 10 di mana kita akan melihat cara untuk [membangunkan aplikasi AI dengan low-code](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**Penafian**: -Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang sahih. Untuk maklumat penting, terjemahan profesional oleh manusia adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini. \ No newline at end of file + + + + diff --git a/translations/ms/12-designing-ux-for-ai-applications/README.md b/translations/ms/12-designing-ux-for-ai-applications/README.md index b2874fe40..01247b02d 100644 --- a/translations/ms/12-designing-ux-for-ai-applications/README.md +++ b/translations/ms/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# Mereka Bentuk UX untuk Aplikasi AI - -[![Designing UX for AI Applications](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.ms.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Klik imej di atas untuk menonton video pelajaran ini)_ - -Pengalaman pengguna adalah aspek yang sangat penting dalam membina aplikasi. Pengguna perlu dapat menggunakan aplikasi anda dengan cara yang cekap untuk melaksanakan tugasan. Menjadi cekap adalah satu perkara, tetapi anda juga perlu mereka bentuk aplikasi supaya ia boleh digunakan oleh semua orang, agar ia _boleh diakses_. Bab ini akan memberi tumpuan kepada bidang ini supaya anda dapat mereka bentuk aplikasi yang orang boleh dan mahu gunakan. - -## Pengenalan - -Pengalaman pengguna adalah bagaimana seseorang pengguna berinteraksi dan menggunakan produk atau perkhidmatan tertentu sama ada sistem, alat, atau reka bentuk. Apabila membangunkan aplikasi AI, pembangun bukan sahaja memberi tumpuan untuk memastikan pengalaman pengguna berkesan tetapi juga beretika. Dalam pelajaran ini, kita akan membincangkan cara membina aplikasi Kecerdasan Buatan (AI) yang memenuhi keperluan pengguna. - -Pelajaran ini akan merangkumi bidang berikut: - -- Pengenalan kepada Pengalaman Pengguna dan Memahami Keperluan Pengguna -- Mereka Bentuk Aplikasi AI untuk Kepercayaan dan Ketelusan -- Mereka Bentuk Aplikasi AI untuk Kerjasama dan Maklum Balas - -## Matlamat Pembelajaran - -Selepas mengikuti pelajaran ini, anda akan dapat: - -- Memahami cara membina aplikasi AI yang memenuhi keperluan pengguna. -- Mereka bentuk aplikasi AI yang menggalakkan kepercayaan dan kerjasama. - -### Prasyarat - -Luangkan masa dan baca lebih lanjut tentang [pengalaman pengguna dan pemikiran reka bentuk.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Pengenalan kepada Pengalaman Pengguna dan Memahami Keperluan Pengguna - -Dalam syarikat permulaan pendidikan rekaan kami, terdapat dua pengguna utama, guru dan pelajar. Setiap daripada dua pengguna ini mempunyai keperluan unik. Reka bentuk berpusatkan pengguna mengutamakan pengguna dengan memastikan produk relevan dan memberi manfaat kepada mereka yang menjadi sasaran. - -Aplikasi haruslah **berguna, boleh dipercayai, boleh diakses dan menyenangkan** untuk memberikan pengalaman pengguna yang baik. - -### Kebolehgunaan - -Berguna bermaksud aplikasi mempunyai fungsi yang sesuai dengan tujuan yang dimaksudkan, seperti mengautomasikan proses penilaian atau menjana kad imbasan untuk ulang kaji. Aplikasi yang mengautomasikan proses penilaian harus dapat memberikan skor dengan tepat dan cekap berdasarkan kriteria yang telah ditetapkan. Begitu juga, aplikasi yang menjana kad imbasan ulang kaji harus dapat mencipta soalan yang relevan dan pelbagai berdasarkan data yang ada. - -### Kebolehpercayaan - -Boleh dipercayai bermaksud aplikasi dapat melaksanakan tugasan secara konsisten dan tanpa kesilapan. Namun, AI seperti manusia tidak sempurna dan mungkin terdedah kepada kesilapan. Aplikasi mungkin menghadapi ralat atau situasi tidak dijangka yang memerlukan campur tangan atau pembetulan manusia. Bagaimana anda mengendalikan kesilapan? Dalam bahagian terakhir pelajaran ini, kita akan membincangkan bagaimana sistem dan aplikasi AI direka untuk kerjasama dan maklum balas. - -### Kebolehcapaian - -Boleh diakses bermaksud memperluaskan pengalaman pengguna kepada pengguna dengan pelbagai keupayaan, termasuk mereka yang mempunyai kecacatan, memastikan tiada siapa yang tercicir. Dengan mengikuti garis panduan dan prinsip kebolehcapaian, penyelesaian AI menjadi lebih inklusif, boleh digunakan, dan memberi manfaat kepada semua pengguna. - -### Menyenangkan - -Menyenangkan bermaksud aplikasi itu menyeronokkan untuk digunakan. Pengalaman pengguna yang menarik boleh memberi kesan positif kepada pengguna, menggalakkan mereka untuk kembali menggunakan aplikasi dan meningkatkan pendapatan perniagaan. - -![imej yang menggambarkan pertimbangan UX dalam AI](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.ms.png) - -Tidak semua cabaran boleh diselesaikan dengan AI. AI hadir untuk meningkatkan pengalaman pengguna anda, sama ada mengautomasikan tugasan manual, atau mempersonalisasikan pengalaman pengguna. - -## Mereka Bentuk Aplikasi AI untuk Kepercayaan dan Ketelusan - -Membina kepercayaan adalah penting apabila mereka bentuk aplikasi AI. Kepercayaan memastikan pengguna yakin bahawa aplikasi akan menyelesaikan tugasan, memberikan hasil secara konsisten dan hasil tersebut adalah apa yang pengguna perlukan. Risiko dalam bidang ini adalah ketidakpercayaan dan kepercayaan berlebihan. Ketidakpercayaan berlaku apabila pengguna mempunyai sedikit atau tiada kepercayaan terhadap sistem AI, ini menyebabkan pengguna menolak aplikasi anda. Kepercayaan berlebihan berlaku apabila pengguna terlebih anggap keupayaan sistem AI, menyebabkan pengguna terlalu mempercayai sistem AI. Contohnya, sistem penilaian automatik dalam kes kepercayaan berlebihan mungkin menyebabkan guru tidak menyemak beberapa kertas untuk memastikan sistem penilaian berfungsi dengan baik. Ini boleh mengakibatkan markah yang tidak adil atau tidak tepat untuk pelajar, atau peluang maklum balas dan penambahbaikan terlepas. - -Dua cara untuk memastikan kepercayaan diletakkan tepat di tengah reka bentuk adalah kebolehjelasan dan kawalan. - -### Kebolehjelasan - -Apabila AI membantu membuat keputusan seperti menyampaikan ilmu kepada generasi akan datang, adalah penting bagi guru dan ibu bapa memahami bagaimana keputusan AI dibuat. Ini dipanggil kebolehjelasan - memahami bagaimana aplikasi AI membuat keputusan. Mereka bentuk untuk kebolehjelasan termasuk menambah butiran contoh apa yang aplikasi AI boleh lakukan. Contohnya, daripada "Mulakan dengan guru AI", sistem boleh menggunakan: "Ringkaskan nota anda untuk ulang kaji yang lebih mudah menggunakan AI." - -![laman utama aplikasi dengan ilustrasi jelas kebolehjelasan dalam aplikasi AI](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.ms.png) - -Contoh lain adalah bagaimana AI menggunakan data pengguna dan peribadi. Contohnya, pengguna dengan persona pelajar mungkin mempunyai had berdasarkan persona mereka. AI mungkin tidak dapat mendedahkan jawapan kepada soalan tetapi boleh membantu membimbing pengguna berfikir bagaimana mereka boleh menyelesaikan masalah. - -![AI menjawab soalan berdasarkan persona](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.ms.png) - -Satu lagi bahagian penting kebolehjelasan adalah mempermudahkan penjelasan. Pelajar dan guru mungkin bukan pakar AI, oleh itu penjelasan tentang apa yang aplikasi boleh atau tidak boleh lakukan harus dipermudahkan dan mudah difahami. - -![penjelasan yang dipermudahkan tentang keupayaan AI](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.ms.png) - -### Kawalan - -Generative AI mewujudkan kerjasama antara AI dan pengguna, di mana contohnya pengguna boleh mengubah suai arahan untuk hasil yang berbeza. Selain itu, setelah output dijana, pengguna harus dapat mengubah suai hasil tersebut memberikan mereka rasa kawalan. Contohnya, apabila menggunakan Bing, anda boleh menyesuaikan arahan berdasarkan format, nada dan panjang. Selain itu, anda boleh menambah perubahan pada output dan mengubah output seperti yang ditunjukkan di bawah: - -![Keputusan carian Bing dengan pilihan untuk mengubah arahan dan output](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.ms.png) - -Satu lagi ciri dalam Bing yang membolehkan pengguna mengawal aplikasi adalah keupayaan untuk memilih untuk menyertai atau tidak menyertai pengumpulan data yang digunakan oleh AI. Untuk aplikasi sekolah, pelajar mungkin mahu menggunakan nota mereka serta sumber guru sebagai bahan ulang kaji. - -![Keputusan carian Bing dengan pilihan untuk mengubah arahan dan output](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.ms.png) - -> Apabila mereka bentuk aplikasi AI, niat adalah kunci untuk memastikan pengguna tidak terlalu mempercayai dengan menetapkan jangkaan yang tidak realistik terhadap keupayaannya. Salah satu cara untuk melakukan ini adalah dengan mewujudkan halangan antara arahan dan hasil. Mengingatkan pengguna, bahawa ini adalah AI dan bukan manusia biasa. - -## Mereka Bentuk Aplikasi AI untuk Kerjasama dan Maklum Balas - -Seperti yang disebutkan sebelum ini, generative AI mewujudkan kerjasama antara pengguna dan AI. Kebanyakan interaksi adalah dengan pengguna memasukkan arahan dan AI menjana output. Bagaimana jika output itu salah? Bagaimana aplikasi mengendalikan kesilapan jika ia berlaku? Adakah AI menyalahkan pengguna atau mengambil masa untuk menerangkan kesilapan? - -Aplikasi AI harus dibina untuk menerima dan memberi maklum balas. Ini bukan sahaja membantu sistem AI memperbaiki diri tetapi juga membina kepercayaan dengan pengguna. Gelung maklum balas harus dimasukkan dalam reka bentuk, contohnya boleh berupa isyarat ibu jari naik atau turun pada output. - -Satu lagi cara untuk mengendalikan ini adalah dengan berkomunikasi dengan jelas tentang keupayaan dan had sistem. Apabila pengguna membuat kesilapan dengan meminta sesuatu di luar keupayaan AI, harus ada cara untuk mengendalikannya, seperti yang ditunjukkan di bawah. - -![Memberi maklum balas dan mengendalikan kesilapan](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.ms.png) - -Ralat sistem adalah perkara biasa dalam aplikasi di mana pengguna mungkin memerlukan bantuan dengan maklumat di luar skop AI atau aplikasi mungkin mempunyai had berapa banyak soalan/subjek yang boleh dijana ringkasan. Contohnya, aplikasi AI yang dilatih dengan data pada subjek terhad seperti Sejarah dan Matematik mungkin tidak dapat mengendalikan soalan berkaitan Geografi. Untuk mengurangkan ini, sistem AI boleh memberi respons seperti: "Maaf, produk kami telah dilatih dengan data dalam subjek berikut....., saya tidak dapat menjawab soalan yang anda ajukan." - -Aplikasi AI tidak sempurna, oleh itu, ia pasti akan membuat kesilapan. Apabila mereka bentuk aplikasi anda, pastikan anda menyediakan ruang untuk maklum balas daripada pengguna dan pengendalian kesilapan dengan cara yang mudah dan mudah difahami. - -## Tugasan - -Ambil mana-mana aplikasi AI yang telah anda bina setakat ini, pertimbangkan untuk melaksanakan langkah-langkah berikut dalam aplikasi anda: - -- **Menyenangkan:** Fikirkan bagaimana anda boleh menjadikan aplikasi anda lebih menyenangkan. Adakah anda menambah penjelasan di mana-mana? Adakah anda menggalakkan pengguna untuk meneroka? Bagaimana anda menyusun mesej ralat anda? - -- **Kebolehgunaan:** Membangunkan aplikasi web. Pastikan aplikasi anda boleh dinavigasi menggunakan tetikus dan papan kekunci. - -- **Kepercayaan dan ketelusan:** Jangan percayai AI sepenuhnya dan outputnya, fikirkan bagaimana anda boleh menambah elemen manusia dalam proses untuk mengesahkan output. Juga, pertimbangkan dan laksanakan cara lain untuk mencapai kepercayaan dan ketelusan. - -- **Kawalan:** Berikan pengguna kawalan ke atas data yang mereka berikan kepada aplikasi. Laksanakan cara pengguna boleh memilih untuk menyertai atau tidak menyertai pengumpulan data dalam aplikasi AI. - -## Teruskan Pembelajaran Anda! - -Selepas menamatkan pelajaran ini, lihat koleksi [Pembelajaran Generative AI](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) kami untuk terus meningkatkan pengetahuan Generative AI anda! - -Teruskan ke Pelajaran 13, di mana kita akan melihat cara [mengamankan aplikasi AI](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**Penafian**: -Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk ketepatan, sila ambil maklum bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang sahih. Untuk maklumat penting, terjemahan profesional oleh manusia adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini. \ No newline at end of file + + + diff --git a/translations/ms/README.md b/translations/ms/README.md index e5b4da5b4..a020dd675 100644 --- a/translations/ms/README.md +++ b/translations/ms/README.md @@ -1,137 +1,12 @@ - -![Generative AI Untuk Pemula](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.ms.png) - -### 21 Pelajaran mengajar segala yang anda perlu tahu untuk mula membina aplikasi Generative AI - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Sokongan Pelbagai Bahasa - -#### Disokong melalui GitHub Action (Automatik & Sentiasa Dikemas Kini) - -[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](./README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md) - -# Generative AI untuk Pemula (Versi 3) - Satu Kursus - -Pelajari asas-asas membina aplikasi Generative AI dengan kursus komprehensif 21 pelajaran oleh Microsoft Cloud Advocates. - -## 🌱 Mula - -Kursus ini mempunyai 21 pelajaran. Setiap pelajaran membincangkan topik tersendiri jadi mulakan di mana sahaja yang anda suka! - -Pelajaran dilabelkan sama ada sebagai pelajaran "Learn" yang menerangkan konsep Generative AI atau pelajaran "Build" yang menerangkan konsep dan contoh kod dalam **Python** dan **TypeScript** apabila boleh. - -Untuk Pembangun .NET, lihat [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -Setiap pelajaran juga termasuk bahagian "Keep Learning" dengan alat pembelajaran tambahan. - -## Apa Yang Anda Perlukan -### Untuk menjalankan kod kursus ini, anda boleh gunakan salah satu daripada: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **Pelajaran:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **Pelajaran:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **Pelajaran:** "oai-assignment" - -- Pengetahuan asas Python atau TypeScript adalah berguna - \*Untuk pemula mutlak, lihat kursus [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) dan [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) -- Akaun GitHub untuk [fork keseluruhan repo ini](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) ke akaun GitHub anda sendiri - -Kami telah menyediakan pelajaran **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** untuk membantu anda menyediakan persekitaran pembangunan anda. - -Jangan lupa untuk [berikan bintang (🌟) pada repo ini](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) supaya mudah dicari kemudian. - -## 🧠 Sedia untuk Dideploy? - -Jika anda mencari contoh kod yang lebih maju, lihat koleksi kami [Generative AI Code Samples](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) dalam kedua-dua **Python** dan **TypeScript**. - -## 🗣️ Berjumpa Pelajar Lain, Dapatkan Sokongan - -Sertai [server Discord rasmi Azure AI Foundry](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) untuk berjumpa dan berhubung dengan pelajar lain yang mengikuti kursus ini serta dapatkan sokongan. - -Ajukan soalan atau kongsi maklum balas produk di [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum) di Github. - -## 🚀 Membangun Startup? - -Daftar untuk [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) untuk menerima **kredit OpenAI percuma** dan sehingga **$150k kredit Azure untuk akses model OpenAI melalui Azure OpenAI Services**. - -## 🙏 Mahu membantu? - -Ada cadangan atau jumpa kesalahan ejaan atau kod? [Buat isu](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) atau [Buat pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 Setiap pelajaran termasuk: - -- Pengenalan video ringkas kepada topik -- Pelajaran bertulis yang terletak dalam README -- Contoh kod Python dan TypeScript yang menyokong Azure OpenAI dan OpenAI API -- Pautan ke sumber tambahan untuk meneruskan pembelajaran anda - -## 🗃️ Pelajaran - -| # | **Pautan Pelajaran** | **Penerangan** | **Video** | **Pembelajaran Tambahan** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Cara Menyediakan Persekitaran Pembangunan Anda | Video Akan Datang | [Ketahui Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Pengenalan kepada Generative AI dan LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Memahami apa itu Generative AI dan bagaimana Large Language Models (LLMs) berfungsi. | [Video](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Ketahui Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Meneroka dan membandingkan pelbagai LLM](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Cara memilih model yang sesuai untuk kes penggunaan anda | [Video](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Ketahui Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Menggunakan Generative AI Secara Bertanggungjawab](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Cara membina Aplikasi Generative AI secara bertanggungjawab | [Video](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Ketahui Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Memahami Asas Prompt Engineering](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Amalan Terbaik Prompt Engineering secara praktikal | [Video](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Ketahui Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Mencipta Prompts Lanjutan](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Cara menggunakan teknik prompt engineering yang meningkatkan hasil prompts anda. | [Video](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Ketahui Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Membangun Aplikasi Penjanaan Teks](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Bina:** Aplikasi penjanaan teks menggunakan Azure OpenAI / OpenAI API | [Video](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Ketahui Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Membangun Aplikasi Sembang](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Bina:** Teknik untuk membina dan mengintegrasi aplikasi sembang dengan cekap. | [Video](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Ketahui Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Membangun Aplikasi Carian dan Pangkalan Data Vektor](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Bina:** Aplikasi carian yang menggunakan Embeddings untuk mencari data. | [Video](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Ketahui Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Membangun Aplikasi Penjanaan Imej](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Bina:** Aplikasi penjanaan imej | [Video](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Ketahui Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Membangun Aplikasi AI Kod Rendah](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Bina:** Aplikasi AI Generatif menggunakan alat Kod Rendah | [Video](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Ketahui Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Mengintegrasi Aplikasi Luaran dengan Panggilan Fungsi](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Bina:** Apa itu panggilan fungsi dan kegunaannya untuk aplikasi | [Video](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Ketahui Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [Mereka Bentuk UX untuk Aplikasi AI](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Belajar:** Cara menggunakan prinsip reka bentuk UX semasa membangunkan Aplikasi AI Generatif | [Video](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Ketahui Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Mengamankan Aplikasi AI Generatif Anda](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Belajar:** Ancaman dan risiko kepada sistem AI serta cara untuk mengamankan sistem ini. | [Video](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Ketahui Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [Kitaran Hayat Aplikasi AI Generatif](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Belajar:** Alat dan metrik untuk menguruskan Kitaran Hayat LLM dan LLMOps | [Video](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Ketahui Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) dan Pangkalan Data Vektor](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Bina:** Aplikasi menggunakan Rangka Kerja RAG untuk mendapatkan embeddings dari Pangkalan Data Vektor | [Video](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Ketahui Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Model Sumber Terbuka dan Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Bina:** Aplikasi menggunakan model sumber terbuka yang tersedia di Hugging Face | [Video](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Ketahui Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [Ejen AI](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Bina:** Aplikasi menggunakan Rangka Kerja Ejen AI | [Video](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Ketahui Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [Melatih Semula LLM](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Belajar:** Apa, mengapa dan bagaimana melatih semula LLM | [Video](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Ketahui Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Membangun dengan SLM](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Belajar:** Manfaat membina dengan Model Bahasa Kecil | Video Akan Datang | [Ketahui Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Membangun dengan Model Mistral](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Belajar:** Ciri-ciri dan perbezaan Model Keluarga Mistral | Video Akan Datang | [Ketahui Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Membangun dengan Model Meta](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Belajar:** Ciri-ciri dan perbezaan Model Keluarga Meta | Video Akan Datang | [Ketahui Lebih Lanjut](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Terima kasih istimewa - -Terima kasih khas kepada [**John Aziz**](https://www.linkedin.com/in/john0isaac/) kerana mencipta semua GitHub Actions dan aliran kerja - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) kerana memberikan sumbangan penting kepada setiap pelajaran untuk meningkatkan pengalaman pembelajaran dan kod. - -## 🎒 Kursus Lain - -Pasukan kami juga menghasilkan kursus lain! Lihat: - -- [**BARU** Protokol Konteks Model untuk Pemula](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Ejen AI untuk Pemula](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI Generatif untuk Pemula menggunakan .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [AI Generatif untuk Pemula menggunakan JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML untuk Pemula](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Sains Data untuk Pemula](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI untuk Pemula](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Keselamatan Siber untuk Pemula](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Pembangunan Web untuk Pemula](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT untuk Pemula](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [Pembangunan XR untuk Pemula](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Menguasai GitHub Copilot untuk Pengaturcaraan Berpasangan AI](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Menguasai GitHub Copilot untuk Pembangun C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Pilih Pengembaraan Copilot Anda Sendiri](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Penafian**: -Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk ketepatan, sila ambil maklum bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang sahih. Untuk maklumat penting, terjemahan profesional oleh manusia adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini. \ No newline at end of file + + + + diff --git a/translations/my/00-course-setup/01-setup-cloud.md b/translations/my/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..2d93ada13 --- /dev/null +++ b/translations/my/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/my/00-course-setup/02-setup-local.md b/translations/my/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..c51d66ddb --- /dev/null +++ b/translations/my/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/my/00-course-setup/03-providers.md b/translations/my/00-course-setup/03-providers.md new file mode 100644 index 000000000..e692ea921 --- /dev/null +++ b/translations/my/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/my/00-course-setup/README.md b/translations/my/00-course-setup/README.md index a2c24e768..78f9b836d 100644 --- a/translations/my/00-course-setup/README.md +++ b/translations/my/00-course-setup/README.md @@ -1,223 +1,12 @@ - -# ဒီသင်တန်းနဲ့ စတင်ခြင်း - -ဒီသင်တန်းကို စတင်ဖို့အတွက် ကျွန်တော်တို့ အရမ်းဝမ်းသာပါတယ်၊ Generative AI နဲ့ ဘာတွေ ဖန်တီးချင်သလဲဆိုတာကို ကြည့်ရှုရမှာပါ! - -အောင်မြင်မှုအတွက် ဒီစာမျက်နှာမှာ စတင်ပြင်ဆင်ရမယ့်အဆင့်တွေ၊ နည်းပညာလိုအပ်ချက်တွေ၊ အကူအညီလိုအပ်ရင် ဘယ်မှာရယူရမလဲဆိုတာ ဖော်ပြထားပါတယ်။ - -## စတင်ပြင်ဆင်ရမယ့်အဆင့်များ - -ဒီသင်တန်းကို စတင်ယူရန်အတွက် အောက်ပါအဆင့်များကို ပြီးမြောက်ရပါမယ်။ - -### ၁။ ဒီ Repo ကို Fork လုပ်ပါ - -[Fork လုပ်ပြီး သင့် GitHub အကောင့်ထဲသို့ ယူပါ](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst)၊ ဒါမှသာ ကုဒ်တွေကို ပြင်ဆင်နိုင်ပြီး စိန်ခေါ်မှုတွေကို ပြီးမြောက်နိုင်မှာဖြစ်ပါတယ်။ ဒီ repo ကို [star (🌟) လုပ်ထားလည်း](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) ရှာဖွေဖို့ လွယ်ကူပါလိမ့်မယ်။ - -### ၂။ codespace တစ်ခု ဖန်တီးပါ - -ကုဒ်ကို run လုပ်တဲ့အခါ dependency ပြဿနာတွေ မဖြစ်အောင် ဒီသင်တန်းကို [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst) မှာ run လုပ်ဖို့ အကြံပြုပါတယ်။ - -ဒီ codespace ကို သင့် fork လုပ်ထားတဲ့ repo မှာ `Code` ကိုရွေးပြီး **Codespaces** ကိုရွေးခြင်းဖြင့် ဖန်တီးနိုင်ပါတယ်။ - -![Dialog showing buttons to create a codespace](../../../00-course-setup/images/who-will-pay.webp) - -### ၃။ သင့် API Keys များကို သိမ်းဆည်းခြင်း - -API keys များကို လုံခြုံစိတ်ချစွာ သိမ်းဆည်းထားခြင်းဟာ မည်သည့် application မဆို တည်ဆောက်ရာမှာ အရေးကြီးပါတယ်။ API keys များကို တိုက်ရိုက်ကုဒ်ထဲမှာ သိမ်းမထားသင့်ပါ။ Public repository မှာ commit လုပ်ခြင်းက လုံခြုံရေးပြဿနာတွေ ဖြစ်ပေါ်စေနိုင်ပြီး မကောင်းဆိုးရွားသူတွေက အသုံးပြုလျှင် မလိုလားအပ်တဲ့ ကုန်ကျစရိတ်တွေ ဖြစ်ပေါ်နိုင်ပါတယ်။ - -Python အတွက် `.env` ဖိုင် ဖန်တီးပြီး `GITHUB_TOKEN` ထည့်သွင်းနည်းကို အဆင့်ဆင့် လမ်းညွှန်ချက်အဖြစ် ဖော်ပြထားပါတယ်- - -1. **Project Directory သို့ သွားပါ**: Terminal သို့ command prompt ကိုဖွင့်ပြီး `.env` ဖိုင် ဖန်တီးမယ့် project ရဲ့ root directory သို့ သွားပါ။ - - ```bash - cd path/to/your/project - ``` - -2. **`.env` ဖိုင် ဖန်တီးပါ**: သင့်နှစ်သက်ရာ text editor ဖြင့် `.env` ဆိုတဲ့ ဖိုင်အသစ် ဖန်တီးပါ။ Command line အသုံးပြုမယ်ဆို Unix-based စနစ်တွင် `touch` သို့မဟုတ် Windows တွင် `echo` ကို အသုံးပြုနိုင်ပါတယ်- - - Unix-based စနစ်များ: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **`.env` ဖိုင်ကို ပြင်ဆင်ပါ**: `.env` ဖိုင်ကို VS Code, Notepad++ သို့မဟုတ် အခြား editor တစ်ခုဖြင့် ဖွင့်ပါ။ အောက်ပါလိုင်းကို ထည့်သွင်းပြီး `your_github_token_here` ကို သင့် GitHub token နဲ့ အစားထိုးပါ- - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **ဖိုင်ကို သိမ်းဆည်းပြီး ပိတ်ပါ**။ - -5. **`python-dotenv` ကို install လုပ်ပါ**: `.env` ဖိုင်မှ environment variables များကို Python application ထဲသို့ load လုပ်ဖို့ `python-dotenv` package ကို install လုပ်ရန်လိုအပ်ပါသည်။ `pip` ဖြင့် install လုပ်နိုင်ပါတယ်- - - ```bash - pip install python-dotenv - ``` - -6. **Python script ထဲတွင် Environment Variables များကို load လုပ်ပါ**: Python script ထဲတွင် `python-dotenv` package ကို အသုံးပြု၍ `.env` ဖိုင်မှ environment variables များကို load လုပ်ပါ- - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -ဒါဆိုပြီးပါပြီ! `.env` ဖိုင်ကို အောင်မြင်စွာ ဖန်တီးပြီး GitHub token ကို ထည့်သွင်းပြီး Python application ထဲသို့ load လုပ်နိုင်ပါပြီ။ - -## ကိုယ်ပိုင်ကွန်ပျူတာပေါ်တွင် run လုပ်နည်း - -ကိုယ်ပိုင်ကွန်ပျူတာပေါ်တွင် ကုဒ်ကို run လုပ်ရန် [Python တစ်ခုခု version တပ်ဆင်ထားရပါမယ်](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst)။ - -ပြီးရင် repository ကို clone လုပ်ရပါမယ်- - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -အားလုံးစစ်ဆေးပြီးပါက စတင်လုပ်ဆောင်နိုင်ပါပြီ! - -## ရွေးချယ်စရာ အဆင့်များ - -### Miniconda တပ်ဆင်ခြင်း - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) သည် [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python နှင့် အချို့သော package များကို တပ်ဆင်ရန် အလွယ်တကူ installer တစ်ခုဖြစ်သည်။ -Conda သည် package manager တစ်ခုဖြစ်ပြီး Python [**virtual environments**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) နှင့် package များကို လွယ်ကူစွာ စီမံခန့်ခွဲနိုင်စေသည်။ `pip` ဖြင့် မရနိုင်သော package များကို တပ်ဆင်ရာတွင်လည်း အထောက်အကူဖြစ်သည်။ - -[MiniConda installation guide](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) ကို လိုက်နာပြီး တပ်ဆင်နိုင်ပါသည်။ - -Miniconda တပ်ဆင်ပြီးပါက [repository ကို clone](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) လုပ်ပါ (မလုပ်ရသေးရင်)။ - -နောက်တစ်ခုက virtual environment တစ်ခု ဖန်တီးရပါမယ်။ Conda ဖြင့် ဖန်တီးရန် environment file (_environment.yml_) အသစ်တစ်ခု ဖန်တီးပါ။ Codespaces ကို အသုံးပြုနေပါက `.devcontainer` ဖိုလ်ဒါအတွင်း `.devcontainer/environment.yml` အဖြစ် ဖန်တီးပါ။ - -အောက်ပါ snippet ဖြင့် environment file ကို ဖြည့်စွက်ပါ- - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -conda အသုံးပြုရာတွင် error တွေ ဖြစ်လာရင် terminal မှာ အောက်ပါ command ဖြင့် Microsoft AI Libraries ကို manually install လုပ်နိုင်ပါတယ်- - -``` -conda install -c microsoft azure-ai-ml -``` - -environment file မှာ လိုအပ်သော dependencies များ ဖော်ပြထားသည်။ `` သည် သင့် Conda environment အမည်ဖြစ်ပြီး `` သည် သင့်အသုံးပြုလိုသော Python ဗားရှင်းဖြစ်သည်၊ ဥပမာ `3` သည် Python ၏ နောက်ဆုံး major ဗားရှင်းဖြစ်သည်။ - -ပြီးလျှင် အောက်ပါ command များကို command line/terminal မှာ run လုပ်ပြီး Conda environment ကို ဖန်တီးနိုင်ပါသည်- - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -ပြဿနာများရှိပါက [Conda environments guide](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst) ကို ရှာဖွေကြည့်ပါ။ - -### Visual Studio Code ကို Python support extension နဲ့ အသုံးပြုခြင်း - -ဒီသင်တန်းအတွက် [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) editor ကို [Python support extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) နဲ့ တပ်ဆင်ပြီး အသုံးပြုရန် အကြံပြုပါတယ်။ ဒါပေမယ့် အတိအကျလိုအပ်ချက် မဟုတ်ပါ။ - -> **Note**: သင်တန်း repo ကို VS Code မှာ ဖွင့်လျှင် project ကို container အတွင်း စီစဉ်နိုင်ရန် ရွေးချယ်စရာ ရှိပါတယ်။ ဒါဟာ သင်တန်း repo ထဲရှိ [အထူး `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) ဖိုလ်ဒါကြောင့် ဖြစ်ပါတယ်။ နောက်ပိုင်းမှာ ပိုမိုရှင်းပြပါမယ်။ - -> **Note**: Repo ကို clone လုပ်ပြီး VS Code မှာ ဖွင့်လျှင် Python support extension တပ်ဆင်ရန် အကြံပြုချက်ကို အလိုအလျောက် ပြပါလိမ့်မယ်။ - -> **Note**: VS Code က repo ကို container အတွင်း ပြန်ဖွင့်ဖို့ အကြံပြုလာရင်၊ ကိုယ့်ကွန်ပျူတာမှာ တပ်ဆင်ထားတဲ့ Python ကို အသုံးပြုချင်ရင် ဒီတောင်းဆိုမှုကို ငြင်းပယ်ပါ။ - -### Browser မှာ Jupyter အသုံးပြုခြင်း - -[Browser](https://jupyter.org?WT.mc_id=academic-105485-koreyst) မှာ Jupyter environment ကို အသုံးပြု၍ project ပေါ်မှာ အလုပ်လုပ်နိုင်ပါတယ်။ Classic Jupyter နဲ့ [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) နှစ်မျိုးလုံးမှာ auto-completion, code highlighting စတဲ့ အဆင်ပြေတဲ့ feature တွေ ပါဝင်ပါတယ်။ - -Jupyter ကို ကိုယ်ပိုင်ကွန်ပျူတာမှာ စတင်ဖို့ terminal/command line ကိုဖွင့်ပြီး သင်တန်း directory သို့ သွားပြီး အောက်ပါ command ကို run ပါ- - -```bash -jupyter notebook -``` - -သို့မဟုတ် - -```bash -jupyterhub -``` - -ဒါက Jupyter instance ကို စတင်ပေးပြီး URL ကို command line မှာ ပြပါလိမ့်မယ်။ - -URL ကို ဝင်ရောက်ပြီး သင်တန်းအကြောင်းအရာကို ကြည့်ရှုနိုင်ပြီး `*.ipynb` ဖိုင်များသို့ သွားရောက်နိုင်ပါသည်။ ဥပမာ `08-building-search-applications/python/oai-solution.ipynb`။ - -### Container အတွင်း run လုပ်ခြင်း - -ကိုယ်ပိုင်ကွန်ပျူတာ သို့မဟုတ် Codespace မှာ အားလုံးကို တပ်ဆင်ဖို့ အစား [container](../../../00-course-setup/) ကို အသုံးပြုနိုင်ပါတယ်။ သင်တန်း repo ထဲရှိ အထူး `.devcontainer` ဖိုလ်ဒါကြောင့် VS Code က project ကို container အတွင်း စီစဉ်နိုင်ပါတယ်။ Codespaces အပြင်မှာတော့ Docker တပ်ဆင်ရမည်ဖြစ်ပြီး အလုပ်အတော်များတာကြောင့် container တွေနဲ့ အတွေ့အကြုံရှိသူတွေအတွက်သာ အကြံပြုပါတယ်။ - -GitHub Codespaces အသုံးပြုတဲ့အခါ API keys များကို လုံခြုံစွာ ထိန်းသိမ်းဖို့ Codespace Secrets ကို အသုံးပြုနိုင်ပါတယ်။ [Codespaces secrets management](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) လမ်းညွှန်ကို လိုက်နာပါ။ - -## သင်ခန်းစာများနှင့် နည်းပညာလိုအပ်ချက်များ - -သင်တန်းမှာ အကြောင်းအရာ သင်ခန်းစာ ၆ ခုနဲ့ ကုဒ်ရေးသင်ခန်းစာ ၆ ခု ပါဝင်ပါတယ်။ - -ကုဒ်ရေးသင်ခန်းစာများအတွက် Azure OpenAI Service ကို အသုံးပြုထားပါတယ်။ ဒီကုဒ်ကို run လုပ်ဖို့ Azure OpenAI service နှင့် API key လိုအပ်ပါမယ်။ [ဒီလျှောက်လွှာကို ဖြည့်ပြီး](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst) ဝင်ခွင့်ရယူနိုင်ပါတယ်။ - -လျှောက်လွှာကို စစ်ဆေးနေစဉ်မှာ ကုဒ်ရေးသင်ခန်းစာတိုင်းမှာ `README.md` ဖိုင်ပါဝင်ပြီး ကုဒ်နဲ့ output များကို ကြည့်ရှုနိုင်ပါတယ်။ - -## Azure OpenAI Service ကို ပထမဆုံးအသုံးပြုခြင်း - -Azure OpenAI service ကို ပထမဆုံး အသုံးပြုမယ်ဆိုရင် [Azure OpenAI Service resource ဖန်တီးခြင်းနှင့် deploy လုပ်ခြင်း](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) လမ်းညွှန်ကို လိုက်နာပါ။ - -## OpenAI API ကို ပထမဆုံးအသုံးပြုခြင်း - -OpenAI API ကို ပထမဆုံး အသုံးပြုမယ်ဆိုရင် [Interface ဖန်တီးခြင်းနှင့် အသုံးပြုခြင်း](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) လမ်းညွှန်ကို လိုက်နာပါ။ - -## အခြားသင်ယူသူများနှင့် တွေ့ဆုံခြင်း - -ကျွန်တော်တို့ရဲ့ တရားဝင် [AI Community Discord server](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) မှာ အခြားသင်ယူသူတွေနဲ့ တွေ့ဆုံဖို့ channel များ ဖန်တီးထားပါတယ်။ ဒီနေရာက Generative AI ကို တိုးတက်လိုသူ စီးပွားရေးလုပ်ငန်းရှင်များ၊ ဖန်တီးသူများ၊ ကျောင်းသားများနဲ့ အခြားသူများနဲ့ ဆက်သွယ်ဖလှယ်ဖို့ အကောင်းဆုံးနေရာဖြစ်ပါတယ်။ - -[![Join discord channel](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -Project အဖွဲ့ကလည်း ဒီ Discord server မှာ သင်ယူသူများကို ကူညီပေးမှာ ဖြစ်ပါတယ်။ - -## ပံ့ပိုးပါ - -ဒီသင်တန်းဟာ open-source initiative တစ်ခုဖြစ်ပါတယ်။ တိုးတက်စရာရှိတာတွေ သို့မဟုတ် ပြဿနာတွေ တွေ့ရင် [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) တစ်ခု ဖန်တီးပါ၊ ဒါမှမဟုတ် [GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) တင်ပါ။ - -Project အဖွဲ့က အားလုံးသော ပံ့ပိုးမှုများကို စောင့်ကြည့်ပါမယ်။ Open source ကို ပံ့ပိုးခြင်းဟာ Generative AI လောကမှာ သင့်အလုပ်အကိုင် တည်ဆောက်ရာမှာ အလွန်ကောင်းမွန်တဲ့ နည်းလမ်းတစ်ခုဖြစ်ပါတယ်။ - -အများစုသော ပံ့ပိုးမှုများအတွက် Contributor License Agreement (CLA) ကို သဘောတူရမည်ဖြစ်ပြီး သင့်ပံ့ပိုးမှုကို အသုံးပြုခွင့်ပေးသည်ကို သက်သေပြရပါမယ်။ အသေးစိတ်အချက်အလက်များအတွက် [CLA, Contributor License Agreement website](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst) ကို ကြည့်ရှုပါ။ - -အရေးကြီးချက်- ဒီ repo ထဲမှာ ဘာသာပြန်ရာတွင် machine translation မသုံးရပါ။ ကျွန်တော်တို့က community မှတစ်ဆင့် ဘာသာပြန်ချက်များကို စစ်ဆေးမယ်၊ ထို့ကြောင့် သင်ကျွမ်းကျင်တဲ့ ဘာသာစကားများအတွက်သာ volunteer လုပ်ပါ။ - -Pull request တင်တဲ့အခါ CLA-bot က သင့်အား CLA လိုအပ်မလား ဆုံးဖြတ်ပြီး PR ကို သင့်တော်စွာ အမှတ်အသားပြုပါလိမ့်မယ် (ဥပမာ label, comment)။ Bot ရဲ့ ညွှန်ကြားချက်များကို လိုက်နာပါ။ CLA လိုအပ်မှုကို repository အားလုံးအတွက် တစ်ကြိမ်တည်းသာ ပြုလုပ်ရပါမယ်။ - -ဒီ project က [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst) ကို လက်ခံအသုံးပြုထားပါတယ်။ ပိုမိုသိရှိလိုပါက Code of Conduct FAQ ကို ဖတ်ရှုပါ၊ သို့မဟုတ် - -**အကြောင်းကြားချက်** -ဤစာတမ်းကို AI ဘာသာပြန်ဝန်ဆောင်မှု [Co-op Translator](https://github.com/Azure/co-op-translator) ဖြင့် ဘာသာပြန်ထားပါသည်။ ကျွန်ုပ်တို့သည် တိကျမှန်ကန်မှုအတွက် ကြိုးစားသော်လည်း၊ အလိုအလျောက် ဘာသာပြန်ခြင်းတွင် အမှားများ သို့မဟုတ် မှားယွင်းမှုများ ပါဝင်နိုင်ကြောင်း သတိပြုပါရန် မေတ္တာရပ်ခံအပ်ပါသည်။ မူရင်းစာတမ်းကို မူလဘာသာဖြင့်သာ တရားဝင်အချက်အလက်အဖြစ် ယူဆသင့်ပါသည်။ အရေးကြီးသော အချက်အလက်များအတွက် လူ့ဘာသာပြန်ပညာရှင်မှ ဘာသာပြန်ခြင်းကို အကြံပြုပါသည်။ ဤဘာသာပြန်ချက်ကို အသုံးပြုရာမှ ဖြစ်ပေါ်လာနိုင်သည့် နားလည်မှုမှားယွင်းမှုများအတွက် ကျွန်ုပ်တို့ တာဝန်မယူပါ။ \ No newline at end of file + + + + diff --git a/translations/my/00-course-setup/SETUP.md b/translations/my/00-course-setup/SETUP.md deleted file mode 100644 index c86175a1e..000000000 --- a/translations/my/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# သင့် Dev ပတ်ဝန်းကျင်ကို စတင်ပြင်ဆင်ခြင်း - -ဒီ repository နဲ့ သင်တန်းကို Python3, .NET, Node.js နဲ့ Java ဖွံ့ဖြိုးရေးကို ထောက်ပံ့နိုင်တဲ့ Universal runtime ပါဝင်တဲ့ [development container](https://containers.dev?WT.mc_id=academic-105485-koreyst) နဲ့ ပြင်ဆင်ထားပါတယ်။ ဆက်စပ် configuration ကို ဒီ repository ရဲ့ root မှာရှိတဲ့ `.devcontainer/` ဖိုလ်ဒါအတွင်းရှိ `devcontainer.json` ဖိုင်မှာ သတ်မှတ်ထားပါတယ်။ - -dev container ကို အသုံးပြုဖို့ [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (cloud-hosted runtime အတွက်) သို့မဟုတ် [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (local device-hosted runtime အတွက်) မှာ ဖွင့်ပါ။ VS Code အတွင်း dev containers များ ဘယ်လိုအလုပ်လုပ်ကြောင်း ပိုမိုသိရှိရန် [ဒီစာရွက်စာတမ်း](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) ကို ဖတ်ရှုပါ။ - -> [!TIP] -> အလျင်အမြန် စတင်လိုသူများအတွက် GitHub Codespaces ကို အသုံးပြုရန် အကြံပြုပါတယ်။ ပုဂ္ဂိုလ်ရေးအကောင့်များအတွက် [အခမဲ့ အသုံးပြုခွင့်](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) ကို ပေးထားပါတယ်။ သင့် quota ကို အများဆုံးအသုံးပြုနိုင်ရန် အလုပ်မလုပ်သော codespaces များကို ရပ်တန့်ရန် သို့မဟုတ် ဖျက်ရန် [timeouts](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) ကို ပြင်ဆင်ပါ။ - -## 1. အလုပ်အပ်တာများကို အကောင်အထည်ဖော်ခြင်း - -တစ်ခုချင်းသင်ခန်းစာတိုင်းမှာ Python, .NET/C#, Java နဲ့ JavaScript/TypeScript အပါအဝင် အစီအစဉ်ဘာသာစကားတစ်ခု သို့မဟုတ် အများကြီးဖြင့် _optional_ အလုပ်အပ်တာများ ပါဝင်နိုင်ပါတယ်။ ဒီအပိုင်းမှာ အလုပ်အပ်တာများကို ဘယ်လို အကောင်အထည်ဖော်ရမယ်ဆိုတာ အထွေထွေ လမ်းညွှန်ချက်များ ပေးထားပါတယ်။ - -### 1.1 Python အလုပ်အပ်တာများ - -Python အလုပ်အပ်တာများကို application (`.py` ဖိုင်များ) သို့မဟုတ် Jupyter notebook (`.ipynb` ဖိုင်များ) အဖြစ် ပေးထားပါတယ်။ -- notebook ကို run ဖို့ Visual Studio Code မှာ ဖွင့်ပြီး အပေါ်ညာဘက်ရှိ _Select Kernel_ ကို နှိပ်ပြီး ပုံမှန် Python 3 ကို ရွေးချယ်ပါ။ အခု _Run All_ ကို နှိပ်ပြီး notebook ကို အကောင်အထည်ဖော်နိုင်ပါပြီ။ -- command-line မှာ Python application များ run ဖို့ အလုပ်အပ်တာအလိုက် သတ်မှတ်ထားတဲ့ လမ်းညွှန်ချက်များကို လိုက်နာပြီး မှန်ကန်တဲ့ ဖိုင်များကို ရွေးချယ်ပြီး လိုအပ်တဲ့ argument များကို ထည့်သွင်းပါ။ - -## 2. Provider များကို ပြင်ဆင်ခြင်း - -အလုပ်အပ်တာများကို OpenAI, Azure သို့မဟုတ် Hugging Face ကဲ့သို့သော ဝန်ဆောင်မှုပေးသူတစ်ခု သို့မဟုတ် အများကြီးရှိတဲ့ Large Language Model (LLM) deployment များနှင့် အလုပ်လုပ်အောင် ပြင်ဆင်ထားနိုင်ပါတယ်။ ၎င်းတို့က _hosted endpoint_ (API) ကို မှန်ကန်တဲ့ အတည်ပြုချက်များ (API key သို့မဟုတ် token) ဖြင့် အလိုအလျောက် အသုံးပြုနိုင်စေပါတယ်။ ဒီသင်တန်းမှာ အောက်ပါ provider များကို ဆွေးနွေးထားပါတယ်- - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) - core GPT စီးရီးအပါအဝင် မော်ဒယ်မျိုးစုံပါဝင်သည်။ - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) - OpenAI မော်ဒယ်များအတွက် စီးပွားရေးအသုံးပြုမှုအတွက် အထူးပြင်ဆင်ထားသည်။ - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) - open-source မော်ဒယ်များနှင့် inference server များအတွက်။ - -**ဒီလေ့ကျင့်ခန်းများအတွက် သင့်ကိုယ်ပိုင် အကောင့်များကို အသုံးပြုရပါမည်။** အလုပ်အပ်တာများမှာ ရွေးချယ်စရာဖြစ်သောကြောင့် သင်စိတ်ဝင်စားရာ provider တစ်ခု၊ အားလုံး သို့မဟုတ် မည်သည့် provider ကိုမှ မပြင်ဆင်နိုင်ပါ။ စာရင်းသွင်းခြင်းအတွက် လမ်းညွှန်ချက်အချို့- - -| စာရင်းသွင်းရန် | ကုန်ကျစရိတ် | API Key | Playground | မှတ်ချက်များ | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst)| [စျေးနှုန်း](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst)| [Project-based](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [No-Code, Web](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | မော်ဒယ်များစွာ ရရှိနိုင်သည် | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst)| [စျေးနှုန်း](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst)| [SDK Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst)| [Studio Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [အသုံးပြုခွင့် ရယူရန် ကြိုတင်လျှောက်ထားရမည်](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst)| -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [စျေးနှုန်း](https://huggingface.co/pricing) | [Access Tokens](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst)| [Hugging Chat တွင် မော်ဒယ်ကန့်သတ်ချက်ရှိသည်](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -ဒီ repository ကို provider များအလိုက် _configure_ လုပ်ရန် အောက်ပါ လမ်းညွှန်ချက်များကို လိုက်နာပါ။ အလုပ်အပ်တာတစ်ခုမှာ provider တစ်ခု သတ်မှတ်ထားရင် ဖိုင်နာမည်မှာ အောက်ပါ tag များထဲမှ တစ်ခုပါဝင်ပါမယ်- - - `aoai` - Azure OpenAI endpoint နဲ့ key လိုအပ်သည် - - `oai` - OpenAI endpoint နဲ့ key လိုအပ်သည် - - `hf` - Hugging Face token လိုအပ်သည် - -သင်တစ်ခု၊ မရှိ၊ သို့မဟုတ် အားလုံးကို configure လုပ်နိုင်ပါတယ်။ ဆက်စပ် အလုပ်အပ်တာများမှာ အတည်ပြုချက် မရှိရင် error ဖြစ်ပါလိမ့်မယ်။ - -### 2.1. `.env` ဖိုင် ဖန်တီးခြင်း - -အထက်ပါ လမ်းညွှန်ချက်များကို ဖတ်ပြီး သင့်အတွက် သင့်လျော်သော provider တွင် စာရင်းသွင်းပြီး လိုအပ်သော အတည်ပြုချက်များ (API_KEY သို့မဟုတ် token) ရရှိထားကြောင်း သတ်မှတ်ထားသည်ဟု ယူဆပါသည်။ Azure OpenAI အတွက်ဆိုရင် Azure OpenAI Service (endpoint) တစ်ခုမှာ GPT မော်ဒယ်တစ်ခုခု chat completion အတွက် တပ်ဆင်ပြီး ရှိကြောင်းလည်း ယူဆပါသည်။ - -နောက်တစ်ဆင့်မှာ သင့် **local environment variables** ကို အောက်ပါအတိုင်း ပြင်ဆင်ပါ- - -1. root ဖိုလ်ဒါမှာ `.env.copy` ဖိုင်ရှိမရှိ စစ်ဆေးပါ။ အဲဒီဖိုင်ထဲမှာ အောက်ပါအတိုင်း ပါဝင်နိုင်ပါတယ်- - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. အောက်ပါ command ဖြင့် `.env.copy` ကို `.env` အဖြစ် ကူးယူပါ။ ဒီဖိုင်က _gitignore_ ထားပြီး လျှို့ဝှက်ချက်များကို ကာကွယ်ထားပါတယ်။ - - ```bash - cp .env.copy .env - ``` - -3. နောက်ပိုင်း အပိုင်းမှာ ဖော်ပြထားသလို `=` အနားက placeholder များကို သင့်အချက်အလက်ဖြင့် ဖြည့်စွက်ပါ။ - -3. (ရွေးချယ်စရာ) GitHub Codespaces ကို အသုံးပြုပါက ဒီ repository နဲ့ ဆက်စပ်ထားတဲ့ _Codespaces secrets_ အဖြစ် environment variables များကို သိမ်းဆည်းနိုင်ပါတယ်။ ဒီလိုလုပ်ရင် local .env ဖိုင် မလိုတော့ပါဘူး။ **သို့သော် ဒီရွေးချယ်မှုက GitHub Codespaces ကိုသာ အသုံးပြုတဲ့အခါမှာသာ အလုပ်လုပ်ပါမယ်။** Docker Desktop ကို အသုံးပြုရင်တော့ .env ဖိုင်ကို ပြင်ဆင်ထားရပါမယ်။ - -### 2.2 `.env` ဖိုင်ကို ဖြည့်စွက်ခြင်း - -variable နာမည်တွေက ဘာကို ကိုယ်စားပြုတာလဲဆိုတာ အမြန်ကြည့်ကြရအောင်- - -| Variable | ဖော်ပြချက် | -| :--- | :--- | -| HUGGING_FACE_API_KEY | သင့် profile မှာ သတ်မှတ်ထားတဲ့ user access token ဖြစ်သည် | -| OPENAI_API_KEY | non-Azure OpenAI endpoint များအတွက် ဝန်ဆောင်မှု အသုံးပြုခွင့် key ဖြစ်သည် | -| AZURE_OPENAI_API_KEY | Azure OpenAI ဝန်ဆောင်မှု အသုံးပြုခွင့် key ဖြစ်သည် | -| AZURE_OPENAI_ENDPOINT | Azure OpenAI resource အတွက် တပ်ဆင်ထားသော endpoint ဖြစ်သည် | -| AZURE_OPENAI_DEPLOYMENT | _text generation_ မော်ဒယ် deployment endpoint ဖြစ်သည် | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | _text embeddings_ မော်ဒယ် deployment endpoint ဖြစ်သည် | -| | | - -မှတ်ချက်- နောက်ဆုံး Azure OpenAI variable နှစ်ခုဟာ chat completion (text generation) နဲ့ vector search (embeddings) အတွက် ပုံမှန် မော်ဒယ်များကို ကိုယ်စားပြုပါတယ်။ ၎င်းတို့ကို သတ်မှတ်ရန် လမ်းညွှန်ချက်များကို ဆက်စပ် အလုပ်အပ်တာများမှာ ဖော်ပြပါလိမ့်မယ်။ - -### 2.3 Azure ကို Portal မှတဆင့် ပြင်ဆင်ခြင်း - -Azure OpenAI endpoint နဲ့ key တန်ဖိုးများကို [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) မှာ ရှာတွေ့နိုင်ပါသည်။ အဲဒီနေရာကနေ စတင်ကြရအောင်- - -1. [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) သို့ သွားပါ။ -1. Sidebar (ဘယ်ဘက် menu) မှ **Keys and Endpoint** ကို နှိပ်ပါ။ -1. **Show Keys** ကို နှိပ်ပါ - KEY 1, KEY 2 နဲ့ Endpoint ကို မြင်ရပါမယ်။ -1. AZURE_OPENAI_API_KEY အတွက် KEY 1 ကို အသုံးပြုပါ။ -1. AZURE_OPENAI_ENDPOINT အတွက် Endpoint ကို အသုံးပြုပါ။ - -နောက်တစ်ဆင့်မှာ တပ်ဆင်ထားတဲ့ မော်ဒယ်အတွက် endpoint များလိုအပ်ပါသည်။ - -1. Azure OpenAI resource အတွက် sidebar (ဘယ်ဘက် menu) မှ **Model deployments** ကို နှိပ်ပါ။ -1. ရောက်ရှိသော စာမျက်နှာတွင် **Manage Deployments** ကို နှိပ်ပါ။ - -ဒီနေရာကနေ Azure OpenAI Studio ဝက်ဘ်ဆိုက်သို့ သွားရောက်ပြီး အောက်ပါအတိုင်း တန်ဖိုးများကို ရှာဖွေပါမယ်။ - -### 2.4 Azure ကို Studio မှတဆင့် ပြင်ဆင်ခြင်း - -1. အထက်ဖော်ပြထားသလို သင့် resource မှ [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) သို့ သွားပါ။ -1. sidebar (ဘယ်ဘက်) မှ **Deployments** tab ကို နှိပ်ပြီး လက်ရှိ တပ်ဆင်ထားသော မော်ဒယ်များကို ကြည့်ပါ။ -1. သင်လိုချင်သော မော်ဒယ် မတပ်ဆင်ထားရင် **Create new deployment** ကို အသုံးပြုပြီး တပ်ဆင်ပါ။ -1. _text-generation_ မော်ဒယ်တစ်ခု လိုအပ်ပါမယ် - အကြံပြုချက်မှာ **gpt-35-turbo** ဖြစ်ပါတယ်။ -1. _text-embedding_ မော်ဒယ်တစ်ခု လိုအပ်ပါမယ် - အကြံပြုချက်မှာ **text-embedding-ada-002** ဖြစ်ပါတယ်။ - -အခုတော့ environment variables တွေကို သုံးထားတဲ့ _Deployment name_ နဲ့ ကိုက်ညီအောင် ပြင်ဆင်ပါ။ မူလအားဖြင့် မော်ဒယ်နာမည်နဲ့ တူညီပါလိမ့်မယ်၊ သင်ပြောင်းလဲထားရင်တော့ အဲဒီအတိုင်းဖြစ်ပါမယ်။ ဥပမာ- - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**ပြင်ဆင်ပြီး .env ဖိုင်ကို သိမ်းမမေ့ပါနဲ့။** ဖိုင်ကို ပိတ်ပြီး notebook run လုပ်ရန် လမ်းညွှန်ချက်များဆီ ပြန်သွားနိုင်ပါပြီ။ - -### 2.5 OpenAI ကို Profile မှတဆင့် ပြင်ဆင်ခြင်း - -သင့် OpenAI API key ကို သင့် [OpenAI အကောင့်](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) မှာ ရှာတွေ့နိုင်ပါသည်။ မရှိသေးရင် အကောင့်ဖွင့်ပြီး API key တစ်ခု ဖန်တီးနိုင်ပါတယ်။ key ရရှိပြီးပါက `.env` ဖိုင်ထဲမှာ `OPENAI_API_KEY` variable ကို ဖြည့်ပါ။ - -### 2.6 Hugging Face ကို Profile မှတဆင့် ပြင်ဆင်ခြင်း - -သင့် Hugging Face token ကို သင့် profile အောက်က [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst) မှာ ရှာတွေ့နိုင်ပါသည်။ ဒီ token များကို အများသို့ မဖော်ပြသင့်ပါ။ ဒီ project အတွက် အသစ် token တစ်ခု ဖန်တီးပြီး `.env` ဖိုင်ထဲ `HUGGING_FACE_API_KEY` variable အဖြစ် ကူးထည့်ပါ။ _မှတ်ချက်- ဒီ token ဟာ နည်းပညာပိုင်းဆိုင်ရာ API key မဟုတ်ပေမယ့် authentication အတွက် အသုံးပြုတာဖြစ်လို့ အမည်ကို တူညီစွာ သုံးထားတာ ဖြစ်ပါတယ်။_ - -**အကြောင်းကြားချက်** -ဤစာတမ်းကို AI ဘာသာပြန်ဝန်ဆောင်မှု [Co-op Translator](https://github.com/Azure/co-op-translator) ဖြင့် ဘာသာပြန်ထားပါသည်။ ကျွန်ုပ်တို့သည် တိကျမှန်ကန်မှုအတွက် ကြိုးစားသော်လည်း၊ အလိုအလျောက် ဘာသာပြန်ခြင်းများတွင် အမှားများ သို့မဟုတ် မှားယွင်းချက်များ ပါဝင်နိုင်ကြောင်း သတိပြုပါရန် မေတ္တာရပ်ခံအပ်ပါသည်။ မူရင်းစာတမ်းကို မိမိဘာသာစကားဖြင့်သာ တရားဝင်အချက်အလက်အဖြစ် ယူဆသင့်ပါသည်။ အရေးကြီးသော အချက်အလက်များအတွက် လူ့ဘာသာပြန်ပညာရှင်မှ ဘာသာပြန်ခြင်းကို အကြံပြုပါသည်။ ဤဘာသာပြန်ချက်ကို အသုံးပြုမှုကြောင့် ဖြစ်ပေါ်လာနိုင်သည့် နားလည်မှုမှားယွင်းမှုများအတွက် ကျွန်ုပ်တို့ တာဝန်မယူပါ။ \ No newline at end of file diff --git a/translations/my/04-prompt-engineering-fundamentals/README.md b/translations/my/04-prompt-engineering-fundamentals/README.md index 6e4c6e9e9..97121fdbd 100644 --- a/translations/my/04-prompt-engineering-fundamentals/README.md +++ b/translations/my/04-prompt-engineering-fundamentals/README.md @@ -1,346 +1,15 @@ - -# Prompt Engineering အခြေခံများ - -[![Prompt Engineering Fundamentals](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.my.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## နိဒါန်း -ဒီမော်ဂျူးမှာ generative AI မော်ဒယ်တွေမှာ ထိရောက်တဲ့ prompt တွေ ဖန်တီးဖို့ အရေးကြီးတဲ့ အယူအဆနဲ့ နည်းပညာတွေကို ဖော်ပြထားပါတယ်။ LLM ကို prompt ရေးပုံဟာလည်း အရေးကြီးပါတယ်။ ဂရုစိုက်ပြီး ဖန်တီးထားတဲ့ prompt က တုံ့ပြန်မှုအရည်အသွေးကို ပိုမိုကောင်းမွန်စေပါတယ်။ ဒါပေမယ့် _prompt_ နဲ့ _prompt engineering_ ဆိုတဲ့ စကားလုံးတွေက ဘာကို ဆိုလိုတာလဲ? LLM ကို ပို့တဲ့ prompt _input_ ကို ဘယ်လိုတိုးတက်အောင်လုပ်မလဲ? ဒီမေးခွန်းတွေကို ဒီအခန်းနဲ့ နောက်အခန်းမှာ ဖြေရှင်းကြမယ်။ - -_Generative AI_ က အသုံးပြုသူတောင်းဆိုချက်အပေါ် မူတည်ပြီး အသစ်သော အကြောင်းအရာများ (စာသား၊ ပုံ၊ အသံ၊ ကုဒ် စသည်) ဖန်တီးနိုင်ပါတယ်။ ဒါကို OpenAI ရဲ့ GPT ("Generative Pre-trained Transformer") စီးရီးလို _Large Language Models_ တွေကို သဘာဝဘာသာစကားနဲ့ ကုဒ် အသုံးပြုဖို့ လေ့ကျင့်ထားတာဖြင့် ရရှိပါတယ်။ - -အသုံးပြုသူတွေကတော့ နည်းပညာပိုင်း ကျွမ်းကျင်မှုမလိုဘဲ စကားပြောပုံစံနဲ့ ဒီမော်ဒယ်တွေနဲ့ ဆက်သွယ်နိုင်ပြီ ဖြစ်ပါတယ်။ ဒီမော်ဒယ်တွေက _prompt-based_ ဖြစ်ပြီး အသုံးပြုသူက စာသား input (prompt) ပေးပြီး AI ရဲ့ တုံ့ပြန်ချက် (completion) ကို ရရှိပါတယ်။ ထို့နောက် "AI နဲ့ စကားပြော" လုပ်ပြီး မိမိလိုချင်တဲ့ တုံ့ပြန်ချက်ရအောင် prompt ကို အဆက်မပြတ် ပြင်ဆင်နိုင်ပါတယ်။ - -"Prompts" တွေက ယခု generative AI အက်ပ်တွေမှာ အဓိက _ပရိုဂရမ်မင်း အင်တာဖေ့စ်_ ဖြစ်လာပြီး မော်ဒယ်တွေကို ဘာလုပ်ရမယ်ဆိုတာ ပြောပြပေးပြီး တုံ့ပြန်ချက်အရည်အသွေးကို သက်ရောက်စေပါတယ်။ "Prompt Engineering" ဆိုတာကတော့ prompt တွေကို ဒီဇိုင်းဆွဲခြင်းနဲ့ တိုးတက်အောင်လုပ်ခြင်းကို အဓိကထားတဲ့ လေ့လာမှုနယ်ပယ် တစ်ခုဖြစ်ပြီး တုံ့ပြန်ချက်တွေကို တည်ငြိမ်ပြီး အရည်အသွေးမြင့်စေဖို့ ရည်ရွယ်ပါတယ်။ - -## သင်ယူရမည့် ရည်မှန်းချက်များ - -ဒီသင်ခန်းစာမှာ Prompt Engineering ဆိုတာဘာလဲ၊ ဘာကြောင့် အရေးကြီးတာလဲ၊ မော်ဒယ်နဲ့ အက်ပ်ရည်ရွယ်ချက်အတွက် ထိရောက်တဲ့ prompt တွေကို ဘယ်လိုဖန်တီးမလဲဆိုတာ သင်ယူမှာဖြစ်ပါတယ်။ Prompt engineering ရဲ့ အဓိကအယူအဆနဲ့ အကောင်းဆုံး လေ့လာမှုနည်းလမ်းတွေကို နားလည်ပြီး Jupyter Notebooks "sandbox" ပတ်ဝန်းကျင်တစ်ခုမှာ ဒီအယူအဆတွေကို လက်တွေ့အသုံးပြုနည်းကိုလည်း သင်ယူပါမယ်။ - -ဒီသင်ခန်းစာအဆုံးမှာ ကျွန်တော်တို့က: - -1. Prompt engineering ဆိုတာဘာလဲ၊ ဘာကြောင့် အရေးကြီးတာလဲ ဆိုတာ ရှင်းပြနိုင်ပါမယ်။ -2. Prompt ရဲ့ အစိတ်အပိုင်းတွေကို ဖော်ပြနိုင်ပြီး ဘယ်လိုအသုံးပြုကြောင်း သိရှိနိုင်ပါမယ်။ -3. Prompt engineering အတွက် အကောင်းဆုံး လေ့လာမှုနည်းလမ်းနဲ့ နည်းပညာတွေကို သင်ယူနိုင်ပါမယ်။ -4. သင်ယူထားတဲ့ နည်းလမ်းတွေကို OpenAI endpoint ကို အသုံးပြုပြီး လက်တွေ့ ဥပမာတွေနဲ့ လုပ်ဆောင်နိုင်ပါမယ်။ - -## အဓိက စကားလုံးများ - -Prompt Engineering: AI မော်ဒယ်တွေကို လိုချင်တဲ့ အထွက်များ ထုတ်ပေးဖို့ အတွက် input တွေကို ဒီဇိုင်းဆွဲပြီး တိုးတက်အောင်လုပ်ခြင်း။ - -Tokenization: စာသားကို မော်ဒယ်နားလည်နိုင်တဲ့ အပိုင်းသေးသေးလေးတွေ (tokens) အဖြစ် ပြောင်းလဲခြင်း။ - -Instruction-Tuned LLMs: တိကျတဲ့ ညွှန်ကြားချက်တွေနဲ့ တိုးတက်အောင် လေ့ကျင့်ထားတဲ့ Large Language Models (LLMs)။ - -## သင်ယူမှု Sandbox - -Prompt engineering က ယခုအချိန်မှာ သိပ္ပံနည်းပညာထက် အနုပညာပိုင်းနဲ့ ပိုဆက်နွယ်ပါတယ်။ အတွေ့အကြုံ တိုးတက်ဖို့အတွက် _လေ့ကျင့်မှုများ_ ပြုလုပ်ပြီး လုပ်ဆောင်မှုနဲ့ အမှားပြန်ပြင်မှုနည်းလမ်းကို ပေါင်းစပ်သုံးသင့်ပါတယ်။ ဒါဟာ လုပ်ငန်းနယ်ပယ် ကျွမ်းကျင်မှုနဲ့ အကြံပြုနည်းလမ်းတွေ၊ မော်ဒယ်အလိုက် တိုးတက်မှုတွေကို ပေါင်းစပ်သုံးခြင်းဖြစ်ပါတယ်။ - -ဒီသင်ခန်းစာနဲ့ တွဲဖက်ထားတဲ့ Jupyter Notebook က သင်ယူထားတာတွေကို လက်တွေ့စမ်းသပ်နိုင်တဲ့ _sandbox_ ပတ်ဝန်းကျင် ဖြစ်ပါတယ်။ လေ့ကျင့်ခန်းတွေကို လုပ်ဆောင်ဖို့အတွက် လိုအပ်တာတွေက: - -1. **Azure OpenAI API key** - တပ်ဆင်ထားတဲ့ LLM အတွက် ဝန်ဆောင်မှု endpoint။ -2. **Python Runtime** - Notebook ကို အလုပ်လုပ်စေဖို့။ -3. **Local Env Variables** - _[SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) လုပ်ဆောင်ချက်တွေကို အခုတင် ပြီးစီးထားဖို့_။ - -Notebook မှာ _စတင်ဖို့_ လေ့ကျင့်ခန်းတွေ ပါဝင်ပြီး သင့်ရဲ့ _Markdown_ (ဖော်ပြချက်) နဲ့ _Code_ (prompt တောင်းဆိုချက်) အပိုင်းတွေကို ထပ်ထည့်ပြီး နမူနာများ သို့မဟုတ် အကြံဉာဏ်အသစ်တွေ စမ်းသပ်နိုင်ပါတယ်။ ဒါက prompt ဒီဇိုင်းအတွက် သင့်ရဲ့ အတွေးအမြင် တိုးတက်စေပါလိမ့်မယ်။ - -## ပုံဖော်ထားသော လမ်းညွှန် - -ဒီသင်ခန်းစာမှာ ဘာတွေ ပါဝင်မလဲ ကြိုတင် သိချင်ပါသလား? ဒီပုံဖော်ထားတဲ့ လမ်းညွှန်ကို ကြည့်ပါ။ အဓိက ခေါင်းစဉ်တွေ၊ သင်ယူရမယ့် အချက်အလက်တွေကို ဖော်ပြထားပြီး သင်ယူမှု လမ်းကြောင်းကို ရှင်းပြထားပါတယ်။ ဒီလမ်းညွှန်မှာ "Advanced Techniques" အပိုင်းက ဒီသင်ရိုးစာအုပ်ရဲ့ _နောက်တစ်ခန်း_ မှာ ပါဝင်တဲ့ အကြောင်းအရာတွေကို ရည်ညွှန်းထားတာ ဖြစ်ပါတယ်။ - -![Illustrated Guide to Prompt Engineering](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.my.png) - -## ကျွန်တော်တို့ စတားတပ် - -ယခုအခန်းက ကျွန်တော်တို့ စတားတပ်ရဲ့ [ပညာရေးထဲမှာ AI နည်းပညာတိုးတက်မှုကို ယူဆောင်ရန်](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst) ရည်မှန်းချက်နဲ့ ဘယ်လို ဆက်နွယ်နေသလဲ ပြောကြမယ်။ ကျွန်တော်တို့က _ပုဂ္ဂိုလ်ရေးသင်ယူမှု_ အတွက် AI အခြေပြု အက်ပ်တွေ ဖန်တီးချင်ပါတယ်။ ဒါကြောင့် အသုံးပြုသူအမျိုးမျိုးက မိမိတို့ အက်ပ်အတွက် prompt တွေကို ဘယ်လို "ဒီဇိုင်းဆွဲ" နိုင်မလဲ ဆိုတာ စဉ်းစားကြရအောင်။ - -- **အုပ်ချုပ်သူများ** က AI ကို _သင်ရိုးညွှန်းတမ်း ဒေတာကို ခွဲခြမ်းစိတ်ဖြာပြီး ဖုံးလွှမ်းမှု အားနည်းချက်တွေ ရှာဖွေဖို့_ တောင်းနိုင်ပါတယ်။ AI က ရလဒ်တွေကို အကျဉ်းချုပ်ပေးခြင်း သို့မဟုတ် ကုဒ်နဲ့ မြင်ကွင်းဖော်ပြပေးနိုင်ပါတယ်။ -- **ဆရာ/ဆရာမများ** က AI ကို _ပစ်မှတ်ပရိသတ်နဲ့ ခေါင်းစဉ်အတွက် သင်ခန်းစာအစီအစဉ် တစ်ခု ဖန်တီးဖို့_ တောင်းနိုင်ပါတယ်။ AI က သတ်မှတ်ထားတဲ့ ပုံစံအတိုင်း ပုဂ္ဂိုလ်ရေးအစီအစဉ်ကို တည်ဆောက်ပေးနိုင်ပါတယ်။ -- **ကျောင်းသား/သူများ** က AI ကို _ခက်ခဲတဲ့ဘာသာရပ်တစ်ခုမှာ သင်ကြားပေးဖို့_ တောင်းနိုင်ပါတယ်။ AI က ကျောင်းသား/သူတွေအတွက် အဆင့်သင့်တော်တဲ့ သင်ခန်းစာ၊ အကြံပြုချက်နဲ့ ဥပမာတွေ ပေးနိုင်ပါတယ်။ - -ဒါကတော့ အစိတ်အပိုင်းတစ်စိတ်တစ်ပိုင်းသာ ဖြစ်ပါတယ်။ ပိုမိုကျယ်ပြန့်တဲ့ အကြောင်းအရာတွေကို သိရှိချင်ရင် [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) ကို ကြည့်ပါ။ ဒီဟာက ပညာရေးကျွမ်းကျင်သူတွေက စုစည်းထားတဲ့ open-source prompts စာကြည့်တိုက် ဖြစ်ပါတယ်။ _sandbox မှာ ဒါတွေကို စမ်းသပ်ကြည့်ပါ၊ ဒါမှမဟုတ် OpenAI Playground ကို အသုံးပြုပြီး ဘာဖြစ်မလဲ ကြည့်ပါ!_ - - - -## Prompt Engineering ဆိုတာဘာလဲ? - -ဒီသင်ခန်းစာကို စတင်တဲ့အခါမှာ **Prompt Engineering** ကို _ဒီဇိုင်းဆွဲခြင်းနဲ့ တိုးတက်အောင်လုပ်ခြင်း_ လုပ်ငန်းစဉ်အဖြစ် သတ်မှတ်ပြီး တစ်ခုချင်းစီအတွက် တုံ့ပြန်ချက် (completion) တွေကို တည်ငြိမ်ပြီး အရည်အသွေးမြင့်စေဖို့ ရည်ရွယ်ပါတယ်။ ဒါကို ၂ဆင့်လုပ်ငန်းစဉ်အဖြစ် တွေးနိုင်ပါတယ်။ - -- မော်ဒယ်နဲ့ ရည်ရွယ်ချက်အတွက် အစပိုင်း prompt ကို _ဒီဇိုင်းဆွဲခြင်း_ -- တုံ့ပြန်ချက်အရည်အသွေး တိုးတက်အောင် prompt ကို _အဆက်မပြတ် ပြင်ဆင်ခြင်း_ - -ဒါဟာ လုပ်ဆောင်မှုနဲ့ အမှားပြန်ပြင်မှုနည်းလမ်းဖြစ်ပြီး အသုံးပြုသူရဲ့ အတွေးအမြင်နဲ့ ကြိုးပမ်းမှုလိုအပ်ပါတယ်။ ဒါဆို ဘာကြောင့် အရေးကြီးတာလဲ? ဒီမေးခွန်းကို ဖြေရှင်းဖို့ အောက်ပါ အယူအဆ ၃ ခုကို နားလည်ဖို့ လိုပါတယ်။ - -- _Tokenization_ = မော်ဒယ်က prompt ကို ဘယ်လို "မြင်" တယ်ဆိုတာ -- _Base LLMs_ = အခြေခံမော်ဒယ်က prompt ကို ဘယ်လို "လုပ်ဆောင်" တယ်ဆိုတာ -- _Instruction-Tuned LLMs_ = မော်ဒယ်က "တာဝန်" တွေကို ဘယ်လို မြင်တယ်ဆိုတာ - -### Tokenization - -LLM က prompt တွေကို _token_ တွေ စဉ်ဆက်ဖြစ်စေပြီး မော်ဒယ်အမျိုးအစား (သို့မဟုတ် မော်ဒယ်ဗားရှင်း) အလိုက် တူညီတဲ့ prompt ကို token မျိုးစုံနဲ့ ခွဲခြားနိုင်ပါတယ်။ LLM တွေဟာ စာသားမဟုတ်ပဲ token တွေကို သင်ကြားထားတာကြောင့် prompt တွေ token ဖြစ်ပုံဟာ တုံ့ပြန်ချက်အရည်အသွေးကို တိုက်ရိုက် သက်ရောက်စေပါတယ်။ - -tokenization ဘယ်လို လုပ်ဆောင်တာကို နားလည်ဖို့အတွက် [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) လို ကိရိယာတွေကို စမ်းသပ်ကြည့်ပါ။ သင့် prompt ကို ကူးထည့်ပြီး token တွေ ဘယ်လို ပြောင်းလဲသွားတာကို ကြည့်ပါ။ အထူးသဖြင့် အနားလေးများနဲ့ အနားကွပ်သင်္ကေတတွေကို ဘယ်လို ကိုင်တွယ်ထားတာကို သတိထားပါ။ ဤနမူနာမှာ အဟောင်း LLM (GPT-3) ကို ပြထားတာဖြစ်ပြီး နောက်ဆုံးမော်ဒယ်နဲ့ စမ်းသပ်ရင် ရလဒ်ကွဲပြားနိုင်ပါတယ်။ - -![Tokenization](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.my.png) - -### အယူအဆ: အခြေခံမော်ဒယ်များ - -prompt ကို token ဖြစ်အောင် ပြောင်းပြီးနောက်မှာ ["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (သို့မဟုတ် Foundation model) ရဲ့ အဓိကတာဝန်က token စဉ်ထဲက နောက်ထပ် token ကို ခန့်မှန်းပေးခြင်း ဖြစ်ပါတယ်။ LLM တွေဟာ စာသားဒေတာအစုအဝေးကြီးတွေမှာ သင်ကြားထားတာကြောင့် token တွေကြား ရှိတဲ့ စာရင်းအင်းဆက်နွယ်မှုကို ကောင်းစွာ နားလည်ပြီး ယုံကြည်စိတ်ချစွာ ခန့်မှန်းနိုင်ပါတယ်။ ဒါပေမယ့် prompt ထဲမှာ ပါတဲ့ စကားလုံးတွေ သို့မဟုတ် token တွေရဲ့ _အဓိပ္ပာယ်_ ကို နားမလည်ပါဘူး။ သူတို့မြင်တာက "pattern" တစ်ခုဖြစ်ပြီး နောက်ထပ် ခန့်မှန်းချက်နဲ့ ပြည့်စုံအောင် ဆက်လုပ်တာပါ။ အသုံးပြုသူ ရပ်တန့်တဲ့အထိ သို့မဟုတ် ကြိုတင်သတ်မှတ်ထားတဲ့ အခြေအနေတစ်ခုဖြစ်လာတဲ့အထိ ဆက်လက် ခန့်မှန်းနိုင်ပါတယ်။ - -prompt-based completion ဘယ်လို လုပ်ဆောင်တာ ကြည့်ချင်ပါသလား? အထက်ပါ prompt ကို Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) မှာ ပုံမှန် ဆက်တင်တွေဖြင့် ထည့်သွင်းကြည့်ပါ။ စနစ်က prompt တွေကို သတင်းအချက်အလက် တောင်းဆိုချက်အဖြစ် ကိုင်တွယ်ထားတာကြောင့် ဒီအခြေအနေကို ဖြည့်ဆည်းတဲ့ တုံ့ပြန်ချက်ကို တွေ့ရပါလိမ့်မယ်။ - -ဒါပေမယ့် အသုံးပြုသူက တိကျတဲ့ အချက်အလက် သို့မဟုတ် တာဝန် ရည်ရွယ်ချက်တစ်ခုနဲ့ ကိုက်ညီတဲ့ တုံ့ပြန်ချက်ကို ကြည့်ချင်ရင် ဘာလုပ်မလဲ? ဒီမှာ _instruction-tuned_ LLMs တွေ ပါဝင်လာပါတယ်။ - -![Base LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.my.png) - -### အယူအဆ: Instruction Tuned LLMs - -[Instruction Tuned LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) က အခြေခံမော်ဒယ်ကို အခြေခံပြီး ဥပမာများ သို့မဟုတ် input/output စုံတွေနဲ့ (ဥပမာ၊ multi-turn "messages") တိကျတဲ့ ညွှန်ကြားချက်တွေ ပါဝင်တဲ့ အချက်အလက်တွေနဲ့ တိုးတက်အောင် လေ့ကျင့်ထားတာ ဖြစ်ပါတယ်။ AI ရဲ့ တုံ့ပြန်ချက်က ညွှန်ကြားချက်ကို လိုက်နာဖို့ ကြိုးစားပါတယ်။ - -ဒါဟာ Reinforcement Learning with Human Feedback (RLHF) နည်းလမ်းတွေကို အသုံးပြုပြီး မော်ဒယ်ကို _ညွှန်ကြားချက်တွေ လိုက်န -# 2076 ခုနှစ် မာတီယန် စစ်ပွဲ သင်ခန်းစာအစီအစဉ် - -## သင်ခန်းစာအကျဉ်းချုပ် -ဒီသင်ခန်းစာမှာ 2076 ခုနှစ် မာတီယန် စစ်ပွဲ၏ အကြောင်းအရာ၊ အကြောင်းရင်းများ၊ အကျိုးသက်ရောက်မှုများနှင့် အနာဂတ်အတွက် သင်ခန်းစာများကို လေ့လာပါမည်။ - -## သင်ခန်းစာရည်မှန်းချက်များ -- မာတီယန် စစ်ပွဲ၏ နောက်ခံအကြောင်းအရာကို နားလည်နိုင်ရန် -- စစ်ပွဲဖြစ်ပွားရခြင်း၏ အကြောင်းရင်းများကို ရှာဖွေသိရှိရန် -- စစ်ပွဲ၏ အကျိုးသက်ရောက်မှုများကို ခွဲခြမ်းစိတ်ဖြာနိုင်ရန် -- အနာဂတ်တွင် ဒီလိုအခြေအနေများကို မဖြစ်ပေါ်စေရန် သင်ခန်းစာများကို သဘောပေါက်ရန် - -## သင်ခန်းစာအကြောင်းအရာ -### 1. မာတီယန် စစ်ပွဲ၏ နောက်ခံ -- 2076 ခုနှစ်တွင် မာတီယန်တွင် ဖြစ်ပွားခဲ့သော စစ်ပွဲ၏ အခြေခံအချက်များ -- မာတီယန်အာကာသစခန်းများနှင့် လူသားအုပ်စုများ၏ ဆက်ဆံရေး - -### 2. စစ်ပွဲဖြစ်ပွားရခြင်း၏ အကြောင်းရင်းများ -- အရင်းအမြစ်များအပေါ် အပစ်အခတ် -- နည်းပညာနှင့် အာကာသအရင်းအမြစ်များအတွက် ယှဉ်ပြိုင်မှု -- နိုင်ငံတကာနှင့် အာကာသအဖွဲ့အစည်းများ၏ နိုင်ငံရေးအကျိုးဆက်များ - -### 3. စစ်ပွဲ၏ အကျိုးသက်ရောက်မှုများ -- လူ့ဘောင်အပေါ် သက်ရောက်မှုများ -- နည်းပညာတိုးတက်မှုများနှင့် စီးပွားရေးအကျိုးသက်ရောက်မှုများ -- အာကာသအုပ်ချုပ်မှုနှင့် နိုင်ငံရေးပြောင်းလဲမှုများ - -### 4. သင်ခန်းစာများနှင့် အနာဂတ်အတွက် အကြံပြုချက်များ -- စစ်ပွဲကဲ့သို့သော အခြေအနေများကို ရှောင်ရှားရန် နည်းလမ်းများ -- အာကာသတွင် ငြိမ်းချမ်းရေးနှင့် ပူးပေါင်းဆောင်ရွက်မှု တိုးတက်စေရန် အရေးပါမှု -- နည်းပညာနှင့် လူ့အဖွဲ့အစည်းများ၏ တာဝန်များ - -## သင်ခန်းစာဆောင်ရွက်မှု -- အဖွဲ့လိုက် ဆွေးနွေးပွဲများ -- စစ်ပွဲအကြောင်း ရုပ်ပုံများနှင့် ဗီဒီယိုများ ကြည့်ရှုခြင်း -- သင်ခန်းစာအပြီး စာမေးပွဲနှင့် အကဲဖြတ်မှု - -## အရင်းအမြစ်များ -- စာအုပ်များ၊ ဆောင်းပါးများနှင့် အင်တာနက်အရင်းအမြစ်များ -- သက်ဆိုင်ရာ သုတေသနစာတမ်းများ - -ဒီသင်ခန်းစာအစီအစဉ်သည် မာတီယန် စစ်ပွဲ၏ အကျိုးသက်ရောက်မှုများကို နားလည်ပြီး အနာဂတ်တွင် ငြိမ်းချမ်းရေးကို ထိန်းသိမ်းနိုင်ရန် အထောက်အကူဖြစ်စေမည်ဖြစ်သည်။ -ဝက်ဘ်ရှာဖွေမှုတစ်ခုက မာရှင်စစ်ပွဲများအကြောင်း (ဥပမာ - တီဗွီစီးရီး သို့မဟုတ် စာအုပ်များ) စိတ်ကူးယဉ်ဇာတ်လမ်းများ ရှိကြောင်း ပြသပေမယ့် ၂၀၇၆ ခုနှစ်အတွက်တော့ မရှိပါဘူး။ သာမာန်အတွေးအခေါ်အရ ၂၀၇၆ ခုနှစ်ဟာ _အနာဂတ်_ ဖြစ်တဲ့အတွက် အမှန်တကယ်ဖြစ်ပွားခဲ့တဲ့ ဖြစ်ရပ်တစ်ခုနဲ့ ဆက်စပ်နိုင်ခြင်း မရှိပါ။ - -ဒါဆို ဒီ prompt ကို LLM ပံ့ပိုးသူ မတူညီတဲ့သူတွေနဲ့ ပြေးကြည့်ရင် ဘာဖြစ်မလဲ? - -> **Response 1**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.my.png) - -> **Response 2**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.my.png) - -> **Response 3**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.my.png) - -မျှော်လင့်ထားသလို၊ မော်ဒယ်တစ်ခုချင်း (သို့မဟုတ် မော်ဒယ်ဗားရှင်းတစ်ခုချင်း) မှ stochastic လုပ်ဆောင်ချက်နဲ့ မော်ဒယ်စွမ်းရည်ကွဲပြားမှုကြောင့် တုံ့ပြန်ချက်တွေက နည်းနည်းကွာခြားပါတယ်။ ဥပမာ၊ မော်ဒယ်တစ်ခုက အတန်း ၈ ကျောင်းသားတွေအတွက် ရည်ရွယ်ထားပြီး တစ်ခုကတော့ အထက်တန်းကျောင်းသားတွေအတွက် ထင်မြင်ထားတာပါ။ ဒါပေမယ့် မော်ဒယ်သုံးခုလုံးက အချက်အလက်မရှိတဲ့ အသုံးပြုသူတစ်ယောက်ကို ဒီဖြစ်ရပ်ဟာ အမှန်တကယ်ဖြစ်ခဲ့တယ်လို့ ယုံကြည်စေဖို့ တုံ့ပြန်ချက်တွေ ထုတ်ပေးနိုင်ခဲ့ပါတယ်။ - -_prompt engineering_ နည်းလမ်းတွေဖြစ်တဲ့ _metaprompting_ နဲ့ _temperature configuration_ က မော်ဒယ်မှားယွင်းမှုတွေကို တစ်စိတ်တစ်ပိုင်း လျော့နည်းစေနိုင်ပါတယ်။ အသစ်ထွက်လာတဲ့ prompt engineering _architectures_ တွေကလည်း အသစ်ထည့်သွင်းထားတဲ့ ကိရိယာနဲ့ နည်းလမ်းတွေကို prompt လည်ပတ်မှုထဲမှာ အဆင်ပြေစွာ ပေါင်းစပ်သုံးစွဲနိုင်ဖို့ ရည်ရွယ်ပါတယ်၊ ဒီအကျိုးသက်ရောက်မှုတွေကို လျော့နည်းစေဖို့။ - -## အမှုလေ့လာမှု - GitHub Copilot - -ဒီအပိုင်းကို ပြီးဆုံးစေဖို့ prompt engineering ကို အမှန်တကယ် အသုံးပြုထားတဲ့ နမူနာတစ်ခုကို ကြည့်ကြမယ် - အမှုလေ့လာမှုတစ်ခုအနေနဲ့ [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst) ကို ကြည့်ပါ။ - -GitHub Copilot ဟာ သင့်ရဲ့ "AI အဖက်ဖက် Programmer" ဖြစ်ပြီး စာသား prompt တွေကို ကုဒ်ဖြည့်စွက်ချက်တွေဖြစ်အောင် ပြောင်းပေးပါတယ်။ သင့်ဖွံ့ဖြိုးရေးပတ်ဝန်းကျင် (ဥပမာ - Visual Studio Code) ထဲမှာ ပေါင်းစပ်ထားပြီး အသုံးပြုသူအတွေ့အကြုံကို အဆင်ပြေစေပါတယ်။ အောက်ပါ ဘလော့ဂ်စီးရီးတွေမှာ ဖော်ပြထားသလို၊ အစောပိုင်းဗားရှင်းဟာ OpenAI Codex မော်ဒယ်အပေါ် အခြေခံထားပြီး အင်ဂျင်နီယာတွေက မော်ဒယ်ကို ပိုမိုကောင်းမွန်အောင် fine-tune လုပ်ဖို့နဲ့ prompt engineering နည်းလမ်းတွေ တိုးတက်အောင် ဖန်တီးဖို့ လျင်မြန်စွာ သိရှိခဲ့ကြပါတယ်။ ဇူလိုင်လမှာတော့ [Codex ထက်ပိုမိုကောင်းမွန်တဲ့ AI မော်ဒယ်အသစ်တစ်ခုကို မိတ်ဆက်ခဲ့](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst)ပြီး ပိုမိုမြန်ဆန်တဲ့ အကြံပြုချက်တွေ ပေးနိုင်ပါတယ်။ - -သူတို့ရဲ့ သင်ယူမှု ခရီးစဉ်ကို အောက်ပါ ပို့စ်တွေကို အစဉ်လိုက် ဖတ်ရှုပါ။ - -- **May 2023** | [GitHub Copilot သင့်ကုဒ်ကို နားလည်မှု ပိုမိုကောင်းမွန်လာ](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **May 2023** | [GitHub အတွင်း: GitHub Copilot အောက်က LLM များနှင့် လုပ်ဆောင်ခြင်း](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Jun 2023** | [GitHub Copilot အတွက် ပိုမိုကောင်းမွန်တဲ့ prompt များရေးသားနည်း](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Jul 2023** | [GitHub Copilot က Codex ထက်ပိုမိုကောင်းမွန်တဲ့ AI မော်ဒယ်နဲ့ တိုးတက်လာ](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Jul 2023** | [Developer များအတွက် Prompt Engineering နဲ့ LLM များ လမ်းညွှန်ချက်](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **Sep 2023** | [Enterprise LLM app တည်ဆောက်နည်း: GitHub Copilot မှ သင်ခန်းစာများ](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -ဒီလိုပဲ [Engineering blog](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) မှာလည်း [ဒီလိုပို့စ်တွေ](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) ကို ကြည့်ရှုနိုင်ပြီး ဒီမော်ဒယ်တွေနဲ့ နည်းလမ်းတွေကို အမှန်တကယ် အသုံးချတဲ့ နည်းလမ်းတွေကို တွေ့မြင်နိုင်ပါတယ်။ - ---- - -## Prompt ဖန်တီးခြင်း - -Prompt engineering အရေးကြီးတဲ့အကြောင်းကို ကြည့်ပြီးသားဖြစ်တဲ့အတွက်၊ prompt တွေကို ဘယ်လို _ဖန်တီး_ လုပ်ကြောင်း နားလည်ကြမယ်၊ ထို့နောက် ပိုမိုထိရောက်တဲ့ prompt ဒီဇိုင်းအတွက် နည်းလမ်းမျိုးစုံကို သုံးသပ်နိုင်ဖို့ ဖြစ်ပါတယ်။ - -### အခြေခံ Prompt - -အခြေခံ prompt က မော်ဒယ်ထံ ပို့တဲ့ စာသား input တစ်ခုဖြစ်ပြီး အခြား context မပါဘဲ ဖြစ်ပါတယ်။ ဥပမာ - OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst) ကို အမေရိကန်နိုင်ငံအမျိုးသားသီချင်း စာသားအစပိုင်းကို ပို့လိုက်တဲ့အခါ၊ မော်ဒယ်က ချက်ချင်းနောက်တစ်ချောင်းချောင်းကို _ဖြည့်စွက်_ ပြီး အခြေခံခန့်မှန်းမှု လုပ်ဆောင်ချက်ကို ပြသပါတယ်။ - -| Prompt (Input) | Completion (Output) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | သင် "The Star-Spangled Banner" ဆိုတဲ့ အမေရိကန်နိုင်ငံအမျိုးသားသီချင်း စာသားအစကို စတင်ဆိုနေသလို ကြားရပါတယ်။ အပြည့်အစုံကတော့ ... ဖြစ်ပါတယ်။ | - -### ရှုပ်ထွေး Prompt - -အခုတော့ အခြေခံ prompt ကို context နဲ့ ညွှန်ကြားချက်တွေ ထည့်လိုက်ကြမယ်။ [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) ကတော့ _messages_ စုစည်းမှုအဖြစ် ရှုပ်ထွေး prompt တစ်ခု ဖန်တီးနိုင်ပါတယ်၊ အဲဒီမှာ - - -- _user_ input နဲ့ _assistant_ တုံ့ပြန်ချက်တို့ကို input/output စုံတွေနဲ့ ဖော်ပြထားတယ်။ -- assistant ၏ အပြုအမူ သို့မဟုတ် ကိုယ်ရည်ကိုယ်သွေးကို သတ်မှတ်တဲ့ system message ပါဝင်တယ်။ - -အခု request က အောက်ပါပုံစံဖြစ်ပြီး _tokenization_ က context နဲ့ စကားပြောဆိုမှုမှ သက်ဆိုင်ရာ အချက်အလက်တွေကို ထိရောက်စွာ ဖမ်းယူပါတယ်။ system context ပြောင်းလဲခြင်းကလည်း user input တွေနဲ့တူညီတဲ့ အကျိုးသက်ရောက်မှုရှိနိုင်ပါတယ်။ - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### ညွှန်ကြားချက် Prompt - -အထက်ပါ ဥပမာတွေမှာ user prompt က သတင်းအချက်အလက် တောင်းဆိုမှုတစ်ခုအဖြစ် ရိုးရှင်းတဲ့ စာသားမေးခွန်းဖြစ်ပါတယ်။ _instruction_ prompt တွေမှာတော့ အဲဒီစာသားကို ပိုမိုအသေးစိတ် အလုပ်တာဝန်တစ်ခုအဖြစ် သတ်မှတ်ပေးပြီး AI ကို ပိုမိုကောင်းမွန်တဲ့ လမ်းညွှန်ချက်ပေးနိုင်ပါတယ်။ ဥပမာ - - -| Prompt (Input) | Completion (Output) | Instruction Type | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Write a description of the Civil War | _ရိုးရှင်းတဲ့ ပုဒ်မတစ်ပုဒ် ပြန်ပေးခဲ့သည်_ | ရိုးရှင်း | -| Write a description of the Civil War. Provide key dates and events and describe their significance | _ပုဒ်မတစ်ပုဒ်နဲ့ အရေးကြီးတဲ့ ဖြစ်ရပ်ရက်တွေစာရင်းနဲ့ ဖော်ပြချက်တွေ ပြန်ပေးခဲ့သည်_ | ရှုပ်ထွေး | -| Write a description of the Civil War in 1 paragraph. Provide 3 bullet points with key dates and their significance. Provide 3 more bullet points with key historical figures and their contributions. Return the output as a JSON file | _ပိုမိုအသေးစိတ် ဖော်ပြချက်တွေနဲ့ JSON ဖိုင်အဖြစ် ပြန်ပေးခဲ့သည်_ | ရှုပ်ထွေး၊ ဖော်မတ်ထားသည် | - -## အဓိက အကြောင်းအရာ - -အထက်ပါ ဥပမာတွေမှာ prompt က များစွာဖွင့်လှစ်ထားပြီး LLM ကို သူ့ရဲ့ pre-trained ဒေတာအစုအဝေးထဲက သက်ဆိုင်ရာ အပိုင်းကို ဆုံးဖြတ်ခွင့် ပေးထားပါတယ်။ _primary content_ ဒီဇိုင်းပုံစံမှာတော့ input စာသားကို နှစ်ပိုင်းခွဲထားပါတယ် - - -- ညွှန်ကြားချက် (လုပ်ဆောင်ချက်) -- လုပ်ဆောင်ချက်ကို သက်ရောက်စေမယ့် သက်ဆိုင်ရာ အကြောင်းအရာ - -ဥပမာ - "ဒီကို ၂ စာကြောင်းနဲ့ အကျဉ်းချုပ်ပါ" ဆိုတဲ့ instruction ပါတဲ့ အောက်ပါနမူနာ။ - -| Prompt (Input) | Completion (Output) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter သည် နေမှ ငါးမြောက်ဂြိုဟ်ဖြစ်ပြီး နေကြယ်စနစ်အတွင်း အကြီးဆုံးဂြိုဟ်ဖြစ်သည်။ ဂျူပီတာသည် နေကြယ်၏ တစ်ပုံတစ်ပေါ်တန်ခိုး၏ တစ်ထောင်ပုံတစ်ပုံသာရှိသော်လည်း နေကြယ်စနစ်ရှိ အခြားဂြိုဟ်များအားလုံး၏ တန်ခိုးပေါင်း၏ နှစ်နှစ်ပေါင်းခွဲပုံရှိသည်။ ဂျူပီတာသည် ညဘက်က မျက်စိဖြင့်မြင်နိုင်သည့် အလင်းတောက်ပဆုံး အရာဝတ္ထုများထဲမှ တစ်ခုဖြစ်ပြီး သမိုင်းမှတ်တမ်းမတိုင်မီကာလကတည်းက လူ့ယဉ်ကျေးမှုများသိရှိခဲ့ကြသည်။ ဂျူပီတာကို ရောမဘုရား Jupiter အမည်ပေးထားသည်။[19] မြေကြီးမှ ကြည့်လျှင် ဂျူပီတာ၏ ပြန်လှည့်အလင်းသည် မျက်နှာပြင်ပေါ်တွင် အရိပ်များ ဖန်တီးနိုင်သည့်အထိ တောက်ပနိုင်ပြီး[20] လအောက်ကာ ဗီနပ်စ်နောက်တွင် ညဘက်က သဘာဝအရာဝတ္ထုများထဲတွင် တတိယအလင်းတောက်ပဆုံး ဖြစ်သည်။
**ဒီကို ၂ စာကြောင်းနဲ့ အကျဉ်းချုပ်ပါ** | Jupiter သည် နေမှ ငါးမြောက်ဂြိုဟ်ဖြစ်ပြီး နေကြယ်စနစ်အတွင်း အကြီးဆုံးဖြစ်သည်။ ညဘက်က အလင်းတောက်ပဆုံး အရာဝတ္ထုများထဲမှ တစ်ခုဖြစ်ပြီး ရောမဘုရား Jupiter အမည်ပေးထားသည်။ ဂျူပီတာသည် အခြားဂြိုဟ်များ၏ တန်ခိုးပေါင်း၏ နှစ်နှစ်ပေါင်းခွဲပုံရှိသော ဓာတ်ငွေ့ဂြိုဟ်တစ်ခုဖြစ်သည်။ | - -primary content အပိုင်းကို အမျိုးမျိုးနည်းလမ်းနဲ့ အသုံးပြုနိုင်ပြီး ပိုမိုထိရောက်တဲ့ ညွှန်ကြားချက်တွေ ပေးနိုင်ပါတယ် - - -- **ဥပမာများ** - မော်ဒယ်ကို တိုက်ရိုက် ညွှန်ကြားချက်ပေးခြင်းမပြုဘဲ၊ လုပ်ဆောင်ရမယ့် ပုံစံနမူနာတွေ ပေးပြီး မော်ဒယ်ကို ပုံစံကို ခန့်မှန်းခွင့်ပေးခြင်း။ -- **အချက်ပြများ** - ညွှန်ကြားချက်နောက်မှာ "cue" တစ်ခု ထည့်ပြီး မော်ဒယ်ကို ပိုမိုသက်ဆိုင်ရာ တုံ့ပြန်ချက်ပေးဖို့ ဦးတည်စေခြင်း။ -- **ပုံစံများ** - placeholder (variable) တွေနဲ့ ပြန်လည်အသုံးပြုနိုင်တဲ့ prompt များဖြစ်ပြီး အချက်အလက်အမျိုးမျိုးနဲ့ ကိုက်ညီအောင် ပြင်ဆင်နိုင်သည်။ - -ဒီနည်းလမ်းတွေကို လက်တွေ့ကြည့်ကြမယ်။ - -### ဥပမာများ အသုံးပြုခြင်း - -ဒီနည်းလမ်းမှာ primary content ကို အသုံးပြုပြီး လုပ်ဆောင်ချက်အတွက် လိုချင်တဲ့ output နမူနာတွေကို မော်ဒယ်ထံ "ထည့်သွင်း" ပေးပြီး မော်ဒယ်ကို output ပုံစံကို ခန့်မှန်းခွင့်ပေးပါတယ်။ ဥပမာအရေအတွက်ပေါ်မူတည်ပြီး zero-shot, one-shot, few-shot prompting စသဖြင့် ခွဲခြားနိုင်ပါတယ်။ - -prompt က အောက်ပါ အစိတ်အပိုင်း သုံးခုပါဝင်ပါတယ် - - -- လုပ်ငန်းတာဝန် ဖော်ပြချက် -- လိုချင်တဲ့ output နမူနာအနည်းငယ် -- နမူနာအသစ်တစ်ခု စတင်ခြင်း (implicit task description ဖြစ်လာသည်) - -| Learning Type | Prompt (Input) | Completion (Output) | -| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| Zero-shot | "The Sun is Shining". Translate to Spanish | "El Sol está brillando". | -| One-shot | "The Sun is Shining" => ""El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| Few-shot | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketball | -| | | | - -Zero - -**Summarize This** | ဂျူပီတာသည် ကျွန်ုပ်တို့၏ နေကြယ်စနစ်အတွင်း အကြီးဆုံးဂြိုဟ်ဖြစ်ပြီး နေထံမှ ငါးမြောက်ဂြိုဟ်ဖြစ်သည်။ ဂျူပီတာသည် နေ၏ အလေးချိန် ၁/၁၀၀၀ ပမာဏရှိသော်လည်း အခြားဂြိုဟ်များအားလုံးပေါင်းစပ်ထားသည့်အထက်ပို၍ အလေးချိန်ရှိသော ဓာတ်ငွေ့ကြီးတစ်ခုဖြစ်သည်။ အစဉ်အလာအရ ဂျူပီတာကို ရှေးဟောင်းယဉ်ကျေးမှုများက အချိန်ကြာရှည်ကတည်းက သိရှိခဲ့ပြီး ညဘက်ကောင်းကင်တွင် လွယ်ကူစွာမြင်နိုင်သည်။ | -| 1 | ဂျူပီတာသည် နေထံမှ ငါးမြောက်ဂြိုဟ်ဖြစ်ပြီး နေကြယ်စနစ်အတွင်း အကြီးဆုံးဂြိုဟ်ဖြစ်သည်။ ဂျူပီတာသည် နေ၏ အလေးချိန် ၁/၁၀၀၀ ပမာဏရှိသော်လည်း နေကြယ်စနစ်ရှိ အခြားဂြိုဟ်များအားလုံးပေါင်းစပ်ထားသည့်အလေးချိန်ထက် နှစ်နှစ်ခွဲပိုများသည်။ ဂျူပီတာသည် ညဘက်ကောင်းကင်တွင် မျက်စိဖြင့် ရှင်းလင်းထင်ရှားစွာ မြင်နိုင်သော အလင်းရောင်အရာဝတ္ထုများထဲမှ တစ်ခုဖြစ်ပြီး ရှေးဟောင်းယဉ်ကျေးမှုများက မှတ်တမ်းမတင်မီကာလကတည်းက သိရှိခဲ့သည်။
**Summarize This**
ကျွန်ုပ်တို့ သင်ယူခဲ့သည်မှာ ဂျူပီတာသည် | နေထံမှ ငါးမြောက်ဂြိုဟ်ဖြစ်ပြီး နေကြယ်စနစ်အတွင်း အကြီးဆုံးဂြိုဟ်ဖြစ်သည်။ ဂျူပီတာသည် နေ၏ အလေးချိန် ၁/၁၀၀၀ ပမာဏရှိသော်လည်း အခြားဂြိုဟ်များအားလုံးပေါင်းစပ်ထားသည့်အလေးချိန်ထက် နှစ်နှစ်ခွဲပိုများသည်။ မျက်စိဖြင့် လွယ်ကူစွာမြင်နိုင်ပြီး ရှေးဟောင်းကာလကတည်းက သိရှိခဲ့သည်။ | -| 2 | ဂျူပီတာသည် နေထံမှ ငါးမြောက်ဂြိုဟ်ဖြစ်ပြီး နေကြယ်စနစ်အတွင်း အကြီးဆုံးဂြိုဟ်ဖြစ်သည်။ ဂျူပီတာသည် နေ၏ အလေးချိန် ၁/၁၀၀၀ ပမာဏရှိသော်လည်း နေကြယ်စနစ်ရှိ အခြားဂြိုဟ်များအားလုံးပေါင်းစပ်ထားသည့်အလေးချိန်ထက် နှစ်နှစ်ခွဲပိုများသည်။ ဂျူပီတာသည် ညဘက်ကောင်းကင်တွင် မျက်စိဖြင့် ရှင်းလင်းထင်ရှားစွာ မြင်နိုင်သော အလင်းရောင်အရာဝတ္ထုများထဲမှ တစ်ခုဖြစ်ပြီး ရှေးဟောင်းယဉ်ကျေးမှုများက မှတ်တမ်းမတင်မီကာလကတည်းက သိရှိခဲ့သည်။
**Summarize This**
ကျွန်ုပ်တို့ သင်ယူခဲ့သော ထိပ်တန်း ၃ ချက်မှာ- | ၁။ ဂျူပီတာသည် နေထံမှ ငါးမြောက်ဂြိုဟ်ဖြစ်ပြီး နေကြယ်စနစ်အတွင်း အကြီးဆုံးဂြိုဟ်ဖြစ်သည်။
၂။ ဂျူပီတာသည် နေ၏ အလေးချိန် ၁/၁၀၀၀ ပမာဏရှိသည်...
၃။ ဂျူပီတာကို ရှေးဟောင်းကာလကတည်းက မျက်စိဖြင့် မြင်နိုင်ခဲ့သည်... | -| | | | - -### Prompt Templates - -Prompt template ဆိုသည်မှာ _ကြိုတင်သတ်မှတ်ထားသော prompt အတွက် အချက်အလက်များစုစည်းမှု_ ဖြစ်ပြီး၊ လိုအပ်သလို သိမ်းဆည်းထား၍ ပြန်လည်အသုံးပြုနိုင်သည်။ အလွယ်တကူပြောရမယ်ဆိုရင် [OpenAI မှ ဤဥပမာ](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) ကဲ့သို့ prompt အစိတ်အပိုင်းများ (အသုံးပြုသူနှင့် စနစ်စာတိုက်များ) နှင့် API မှတဆင့် တောင်းဆိုမှုဖော်မတ်များ ပါဝင်သော prompt ဥပမာစုစည်းမှုတစ်ခုဖြစ်သည်။ - -ပိုမိုရှုပ်ထွေးသော ပုံစံတွင် [LangChain မှ ဤဥပမာ](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst) ကဲ့သို့ _placeholder_ များပါဝင်ပြီး၊ အသုံးပြုသူထည့်သွင်းချက်၊ စနစ်အခြေအနေ၊ ပြင်ပဒေတာများကဲ့သို့ အချက်အလက်အမျိုးမျိုးဖြင့် အစားထိုးနိုင်သည်။ ၎င်းက prompt များကို dynamic အဖြစ် ဖန်တီးနိုင်ပြီး၊ အကြောင်းအရာတူညီသော အသုံးပြုသူအတွေ့အကြုံများကို **အစဉ်လိုက်** ထိန်းသိမ်းပေးနိုင်သည်။ - -နောက်ဆုံးတွင် template များ၏ အဓိကတန်ဖိုးမှာ vertical application domain များအတွက် _prompt စုစည်းမှု_ များ ဖန်တီးထုတ်ဝေခြင်းဖြစ်ပြီး၊ ၎င်းသည် အသုံးပြုသူအတွက် ပိုမိုသင့်တော်ပြီး တိကျသော တုံ့ပြန်မှုများ ရရှိစေရန် အထူးပြုထားသည်။ [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) repository သည် ပညာရေးနယ်ပယ်အတွက် သင်ခန်းစာအစီအစဉ်၊ သင်ရိုးညွှန်းတမ်းဒီဇိုင်း၊ ကျောင်းသားလေ့ကျင့်မှု စသည့် အဓိကရည်ရွယ်ချက်များအပေါ် အာရုံစိုက်၍ prompt စုစည်းမှုများကို စုစည်းထားသည့် ကောင်းမွန်သော ဥပမာတစ်ခုဖြစ်သည်။ - -## Supporting Content - -Prompt ဖန်တီးခြင်းကို အမိန့် (တာဝန်) နှင့် ရည်မှန်းချက် (အဓိကအကြောင်းအရာ) အဖြစ် တွေးမယ်ဆိုရင် _ဒုတိယအကြောင်းအရာ_ သည် ထုတ်လွှင့်ချက်ကို **တစ်ဖက်သို့ သက်ရောက်မှုရှိစေရန်** ပံ့ပိုးပေးသော အပိုဆောင်းအကြောင်းအရာကဲ့သို့ဖြစ်သည်။ ၎င်းတွင် tuning parameters, ဖော်မတ်ညွှန်းချက်များ၊ ခေါင်းစဉ်အမျိုးအစားများ စသည်တို့ ပါဝင်နိုင်ပြီး မော်ဒယ်ကို အသုံးပြုသူရဲ့ ရည်ရွယ်ချက်နှင့် မျှော်မှန်းချက်များနှင့် ကိုက်ညီစေရန် _တုံ့ပြန်မှုကို ကိုက်ညီစေ_ သည်။ - -ဥပမာ - သင်တန်းစာရင်းတွင် အမည်၊ ဖော်ပြချက်၊ အဆင့်၊ metadata tag များ၊ သင်ကြားသူ စသည့် အချက်အလက်များ ပါဝင်သော အကြောင်းအရာများရှိပါက - - -- "Fall 2023 သင်တန်းစာရင်းကို အကျဉ်းချုပ်ပြပါ" ဟု အမိန့်သတ်မှတ်နိုင်သည် -- အဓိကအကြောင်းအရာအဖြစ် လိုအပ်သည့် ထုတ်လွှင့်ချက် ဥပမာအနည်းငယ် ပေးနိုင်သည် -- ဒုတိယအကြောင်းအရာအဖြစ် အဓိကစိတ်ဝင်စားမှုရှိသော "tag" ၅ ခုကို သတ်မှတ်နိုင်သည် - -ယခု မော်ဒယ်သည် ဥပမာအနည်းငယ်ဖြင့် ဖော်ပြထားသည့် ဖော်မတ်အတိုင်း အကျဉ်းချုပ်တစ်ခု ပေးနိုင်သည်။ ထို့အပြင် ရလဒ်တွင် tag များစွာပါရှိပါက ဒုတိယအကြောင်းအရာတွင် သတ်မှတ်ထားသော tag ၅ ခုကို ဦးစားပေးနိုင်သည်။ - ---- - - - -## Prompting Best Practices - -Prompt များကို _ဖန်တီးနည်း_ ကို သိရှိပြီးနောက်၊ ၎င်းတို့ကို _ဒီဇိုင်းဆွဲနည်း_ ကို စဉ်းစားနိုင်ပြီဖြစ်သည်။ ၎င်းကို နှစ်ပိုင်းအဖြစ် တွေးနိုင်သည် - မှန်ကန်သော _စိတ်ထား_ ရှိခြင်းနှင့် မှန်ကန်သော _နည်းလမ်းများ_ ကို အသုံးပြုခြင်း။ - -### Prompt Engineering Mindset - -Prompt Engineering သည် စမ်းသပ်မှုပုံစံဖြစ်သောကြောင့် အောက်ပါ အချက်သုံးချက်ကို အမြဲစဉ်းစားထားပါ- - -1. **နယ်ပယ်နားလည်မှု အရေးကြီးသည်။** တုံ့ပြန်မှု တိကျမှုနှင့် သင့်တော်မှုသည် အသုံးပြုသူ သို့မဟုတ် အက်ပလီကေးရှင်း လည်ပတ်နေသော _နယ်ပယ်_ ပေါ်မူတည်သည်။ သင်၏ အတွေးအမြင်နှင့် နယ်ပယ်ကျွမ်းကျင်မှုကို အသုံးပြု၍ _နယ်ပယ်အထူးနည်းလမ်းများ_ ကို ပိုမိုစိတ်ကြိုက်ပြုလုပ်ပါ။ ဥပမာ - စနစ် prompt များတွင် _နယ်ပယ်အထူးပုဂ္ဂိုလ်များ_ သတ်မှတ်ခြင်း၊ အသုံးပြုသူ prompt များတွင် _နယ်ပယ်အထူး template များ_ အသုံးပြုခြင်း၊ ဒုတိယအကြောင်းအရာတွင် နယ်ပယ်အထူးအခြေအနေများ ထည့်သွင်းခြင်း၊ မော်ဒယ်ကို နားလည်စေရန် _နယ်ပယ်အထူး အချက်အလက်များနှင့် ဥပမာများ_ အသုံးပြုခြင်း။ - -2. **မော်ဒယ်နားလည်မှု အရေးကြီးသည်။** မော်ဒယ်များသည် သဘာဝအားဖြင့် စတိုကတ်စတစ်ဖြစ်ကြောင်း သိရှိသည်။ သို့သော် မော်ဒယ်များ၏ လေ့ကျင့်မှု ဒေတာအစုအဝေး (pre-trained knowledge), ၎င်းတို့ပေးနိုင်သော စွမ်းဆောင်ရည်များ (API သို့မဟုတ် SDK မှတဆင့်), နှင့် အထူးပြုထားသော အကြောင်းအရာအမျိုးအစား (code, ပုံများ, စာသား စသည်) မတူညီနိုင်သည်။ သင်အသုံးပြုနေသော မော်ဒယ်၏ အားသာချက်နှင့် ကန့်သတ်ချက်များကို နားလည်ပြီး၊ ၎င်းအရ _တာဝန်များကို ဦးစားပေး_ သို့မဟုတ် မော်ဒယ်၏ စွမ်းဆောင်ရည်အတွက် _စိတ်ကြိုက် template များ_ ဖန်တီးပါ။ - -3. **ပြန်လည်စမ်းသပ်ခြင်းနှင့် အတည်ပြုခြင်း အရေးကြီးသည်။** မော်ဒယ်များသည် အလျင်အမြန် တိုးတက်နေပြီး၊ prompt engineering နည်းလမ်းများလည်း တိုးတက်နေသည်။ နယ်ပယ်ကျွမ်းကျင်သူအနေနှင့် သင်၏ အက်ပလီကေးရှင်းအတွက် အခြား context သို့မဟုတ် စံနှုန်းများရှိနိုင်ပြီး၊ ၎င်းသည် လူထုအတွက် မဖြစ်နိုင်ပါ။ Prompt engineering ကိရိယာများနှင့် နည်းလမ်းများကို အသုံးပြု၍ prompt ဖန်တီးမှုကို "စတင်" ပြီး၊ သင်၏ အတွေးအမြင်နှင့် နယ်ပယ်ကျွမ်းကျင်မှုဖြင့် ပြန်လည်စမ်းသပ် အတည်ပြုပါ။ သင်၏ အတွေ့အကြုံများကို မှတ်တမ်းတင်ပြီး **အသိပညာအခြေခံ** (ဥပမာ - prompt စုစည်းမှုများ) ဖန်တီးပါ၊ ၎င်းကို အခြားသူများအတွက် အခြေခံအဖြစ် အသုံးပြုနိုင်စေရန်၊ အနာဂတ်တွင် အမြန်ပြန်လည်တိုးတက်မှုများအတွက်။ - -## Best Practices - -ယခု [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) နှင့် [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst) ၏ အကြံပြုချက်များအရ အထွေထွေ အကောင်းဆုံးလေ့လာမှုများကို ကြည့်ကြရအောင်။ - -| ဘာလဲ | ဘာကြောင့်လဲ | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| နောက်ဆုံးမော်ဒယ်များကို သုံးသပ်ပါ။ | မော်ဒယ်အသစ်များတွင် အင်္ဂါရပ်များနှင့် အရည်အသွေး တိုးတက်မှုရှိနိုင်သော်လည်း ကုန်ကျစရိတ်များ ပိုမိုမြင့်တက်နိုင်သည်။ ထိရောက်မှုအပေါ် သုံးသပ်ပြီး ပြောင်းရွှေ့မှု ဆုံးဖြတ်ချက်များ ချပါ။ | -| အမိန့်များနှင့် အကြောင်းအရာကို ခွဲခြားပါ | မော်ဒယ် သို့မဟုတ် ပံ့ပိုးသူက _delimiters_ များ သတ်မှတ်ထားသည်ကို စစ်ဆေးပါ၊ ၎င်းက အမိန့်များ၊ အဓိကနှင့် ဒုတိယအကြောင်းအရာများကို ပိုမိုရှင်းလင်းစွာ ခွဲခြားနိုင်စေသည်။ ၎င်းက မော်ဒယ်များအား token များကို ပိုမိုတိကျစွာ အလေးပေးရန် ကူညီပေးသည်။ | -| သေချာရှင်းလင်းစွာ ဖော်ပြပါ | လိုအပ်သည့် အကြောင်းအရာ၊ ရလဒ်၊ အရှည်၊ ဖော်မတ်၊ စတိုင် စသည့် အသေးစိတ်များ ပိုမိုပေးပါ။ ၎င်းက တုံ့ပြန်မှု၏ အရည်အသွေးနှင့် တည်ငြိမ်မှုကို တိုးတက်စေပြီး ပြန်လည်အသုံးပြုနိုင်သော template များ ဖန်တီးရန် ကူညီသည်။ | -| ဖော်ပြချက်များနှင့် ဥပမာများ အသုံးပြုပါ | မော်ဒယ်များသည် "ပြသပြောပြ" နည်းလမ်းကို ပိုမိုကောင်းစွာ တုံ့ပြန်နိုင်သည်။ `zero-shot` နည်းလမ်းဖြင့် အမိန့်ပေးပြီး (ဥပမာမပါ) စတင်၍၊ ထို့နောက် `few-shot` နည်းလမ်းဖြင့် လိုအပ်သည့် ထုတ်လွှင့်ချက် ဥပမာအနည်းငယ် ပေး၍ တိုးတက်အောင်လုပ်ပါ။ ဆင်တူညီမျှမှုများကို အသုံးပြုပါ။ | -| တုံ့ပြန်မှု စတင်ရန် cue များ အသုံးပြုပါ | တုံ့ပြန်မှုကို စတင်ရန် စကားလုံး သို့မဟုတ် စကားစုများ ပေး၍ မော်ဒယ်အား လမ်းညွှန်ပါ။ | -| ထပ်မံပြောဆိုပါ | တခါတရံ မော်ဒယ်အား ထပ်မံပြောဆိုရန် လိုအပ်နိုင်သည်။ အဓိကအကြောင်းအရာမတိုင်မီနှင့်နောက်တွင် အမိန့်ပေးခြင်း၊ အမိန့်နှင့် cue တို့ကို အသုံးပြုခြင်း စသည်ဖြင့် ပြုလုပ်ပါ။ စမ်းသပ်ပြီး အလုပ်ဖြစ်စေသည့် နည်းလမ်းကို ရှာဖွေပါ။ | -| အစဉ်အလာ အရေးကြီးသည် | မော်ဒယ်အား သတင်းအချက်အလက်များကို တင်ပြသည့် အစဉ်အလာသည် ထုတ်လွှင့်မှုကို သက်ရောက်စေနိုင်သည်၊ သင်ယူမှု ဥပမာများတွင်ပါ။ အမျိုးမျိုးသော နည်းလမ်းများကို စမ်းသပ်ကြည့်ပါ - -**အကြောင်းကြားချက်** -ဤစာတမ်းကို AI ဘာသာပြန်ဝန်ဆောင်မှု [Co-op Translator](https://github.com/Azure/co-op-translator) ဖြင့် ဘာသာပြန်ထားပါသည်။ ကျွန်ုပ်တို့သည် တိကျမှန်ကန်မှုအတွက် ကြိုးစားသော်လည်း၊ အလိုအလျောက် ဘာသာပြန်ခြင်းများတွင် အမှားများ သို့မဟုတ် မှားယွင်းချက်များ ပါဝင်နိုင်ကြောင်း သတိပြုပါရန် မေတ္တာရပ်ခံအပ်ပါသည်။ မူရင်းစာတမ်းကို မိမိဘာသာစကားဖြင့်သာ တရားဝင်အရင်းအမြစ်အဖြစ် သတ်မှတ်သင့်ပါသည်။ အရေးကြီးသော အချက်အလက်များအတွက် လူ့ဘာသာပြန်ပညာရှင်မှ ဘာသာပြန်ခြင်းကို အကြံပြုပါသည်။ ဤဘာသာပြန်ချက်ကို အသုံးပြုရာမှ ဖြစ်ပေါ်လာနိုင်သည့် နားလည်မှုမှားယွင်းမှုများအတွက် ကျွန်ုပ်တို့ တာဝန်မယူပါ။ \ No newline at end of file + + + + + + + diff --git a/translations/my/09-building-image-applications/README.md b/translations/my/09-building-image-applications/README.md index 34c201ead..e0e3cd3a5 100644 --- a/translations/my/09-building-image-applications/README.md +++ b/translations/my/09-building-image-applications/README.md @@ -1,328 +1,12 @@ - -# ပုံရိပ်ဖန်တီးခြင်း အက်ပလီကေးရှင်းများ တည်ဆောက်ခြင်း - -[![ပုံရိပ်ဖန်တီးခြင်း အက်ပလီကေးရှင်းများ တည်ဆောက်ခြင်း](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.my.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLM များသည် စာသားဖန်တီးခြင်းထက် ပိုမိုကျယ်ပြန့်သော အရာများကို လုပ်ဆောင်နိုင်သည်။ စာသားဖော်ပြချက်များမှ ပုံရိပ်များကို ဖန်တီးနိုင်ခြင်းလည်း ဖြစ်နိုင်သည်။ ပုံရိပ်များကို မော်ဒယ်တစ်ခုအဖြစ် အသုံးပြုခြင်းသည် MedTech၊ အင်ဂျင်နီယာ၊ ခရီးသွားလုပ်ငန်း၊ ဂိမ်းဖန်တီးခြင်းနှင့် အခြားနယ်ပယ်များတွင် အလွန်အသုံးဝင်နိုင်သည်။ ဤအခန်းတွင် ကျွန်ုပ်တို့သည် လူကြိုက်အများဆုံး ပုံရိပ်ဖန်တီးမှု မော်ဒယ်နှစ်ခုဖြစ်သော DALL-E နှင့် Midjourney ကို လေ့လာကြမည်ဖြစ်သည်။ - -## နိဒါန်း - -ဤသင်ခန်းစာတွင် ကျွန်ုပ်တို့ လေ့လာမည့်အကြောင်းအရာများမှာ - - -- ပုံရိပ်ဖန်တီးခြင်းနှင့် ၎င်း၏ အသုံးဝင်မှု။ -- DALL-E နှင့် Midjourney ဆိုတာဘာလဲ၊ ၎င်းတို့ ဘယ်လိုအလုပ်လုပ်သလဲ။ -- ပုံရိပ်ဖန်တီးမှု အက်ပလီကေးရှင်း တည်ဆောက်နည်း။ - -## သင်ယူရမည့် ရည်မှန်းချက်များ - -ဤသင်ခန်းစာပြီးဆုံးပြီးနောက် - - -- ပုံရိပ်ဖန်တီးမှု အက်ပလီကေးရှင်း တည်ဆောက်နိုင်မည်။ -- မိမိ၏ အက်ပလီကေးရှင်းအတွက် meta prompt များဖြင့် နယ်နိမိတ် သတ်မှတ်နိုင်မည်။ -- DALL-E နှင့် Midjourney နှစ်ခုလုံးကို အသုံးပြုနိုင်မည်။ - -## ပုံရိပ်ဖန်တီးမှု အက်ပလီကေးရှင်း တည်ဆောက်ရခြင်း၏ အကြောင်းရင်း - -ပုံရိပ်ဖန်တီးမှု အက်ပလီကေးရှင်းများသည် Generative AI ၏ စွမ်းဆောင်ရည်များကို စူးစမ်းလေ့လာရန် အလွန်ကောင်းမွန်သော နည်းလမ်းတစ်ခုဖြစ်သည်။ ဥပမာ - - -- **ပုံရိပ်တည်းဖြတ်ခြင်းနှင့် ပေါင်းစပ်ခြင်း**။ ပုံရိပ်တည်းဖြတ်ခြင်း၊ ပုံရိပ်ပေါင်းစပ်ခြင်း စသည့် အသုံးပြုမှုများအတွက် ပုံရိပ်များကို ဖန်တီးနိုင်သည်။ - -- **စက်မှုလုပ်ငန်းအမျိုးမျိုးတွင် အသုံးပြုနိုင်ခြင်း**။ Medtech၊ ခရီးသွားလုပ်ငန်း၊ ဂိမ်းဖန်တီးခြင်းနှင့် အခြားစက်မှုလုပ်ငန်းများအတွက် ပုံရိပ်များ ဖန်တီးရာတွင် အသုံးပြုနိုင်သည်။ - -## အခြေအနေ - Edu4All - -ဤသင်ခန်းစာတွင် ကျွန်ုပ်တို့၏ စတားတပ်ဖြစ်သော Edu4All နှင့် ဆက်လက်လုပ်ဆောင်မည်ဖြစ်သည်။ ကျောင်းသားများသည် မိမိတို့၏ သင်ခန်းစာအတွက် ပုံရိပ်များ ဖန်တီးမည်ဖြစ်ပြီး၊ မည်သည့်ပုံရိပ်များ ဖြစ်မည်ဆိုသည်မှာ ကျောင်းသားများ၏ ဖန်တီးမှုအပေါ် မူတည်သည်။ ဥပမာ - မိမိတို့၏ ဇာတ်လမ်းအတွက် ပုံပြင်ပုံစံများ၊ ဇာတ်ကောင်အသစ်များ ဖန်တီးခြင်း သို့မဟုတ် မိမိစိတ်ကူးများကို မြင်ကွင်းဖော်ဆောင်ခြင်း စသဖြင့် ဖြစ်နိုင်သည်။ - -Edu4All ၏ ကျောင်းသားများသည် အောက်ပါအတိုင်း အတန်းတွင် အမွတ်တရ အဆောက်အအုံများအပေါ် အလုပ်လုပ်နေပါက ဖန်တီးနိုင်သည် - - -![Edu4All startup, class on monuments, Eiffel Tower](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.my.png) - -အောက်ပါ prompt ဖြင့် - - -> "Dog next to Eiffel Tower in early morning sunlight" - -## DALL-E နှင့် Midjourney ဆိုတာဘာလဲ? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) နှင့် [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) သည် လူကြိုက်အများဆုံး ပုံရိပ်ဖန်တီးမှု မော်ဒယ်နှစ်ခုဖြစ်ပြီး၊ prompt များကို အသုံးပြု၍ ပုံရိပ်များ ဖန်တီးပေးသည်။ - -### DALL-E - -DALL-E သည် စာသားဖော်ပြချက်များမှ ပုံရိပ်များ ဖန်တီးပေးသော Generative AI မော်ဒယ်တစ်ခုဖြစ်သည်။ - -> [DALL-E သည် CLIP နှင့် diffused attention မော်ဒယ်နှစ်ခု ပေါင်းစပ်ထားခြင်းဖြစ်သည်](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst)။ - -- **CLIP** သည် ပုံရိပ်နှင့် စာသားမှ ဒေတာကို နံပါတ်အဖြစ် ကိုယ်စားပြုထားသော embedding များ ဖန်တီးပေးသော မော်ဒယ်ဖြစ်သည်။ - -- **Diffused attention** သည် embedding များမှ ပုံရိပ်များ ဖန်တီးပေးသော မော်ဒယ်ဖြစ်သည်။ DALL-E သည် ပုံရိပ်နှင့် စာသားများပါဝင်သည့် ဒေတာစုစည်းမှုတစ်ခုဖြင့် လေ့ကျင့်ထားပြီး စာသားဖော်ပြချက်များမှ ပုံရိပ်များ ဖန်တီးနိုင်သည်။ ဥပမာ - ခေါင်းစည်းတပ်ထားသော ကြောင်ပုံရိပ်၊ မိုဟော့ခ်ဆံပင်ရှိသော ခွေးပုံရိပ် စသဖြင့် ဖန်တီးနိုင်သည်။ - -### Midjourney - -Midjourney သည် DALL-E နှင့် ဆင်တူပုံစံဖြင့် စာသား prompt များမှ ပုံရိပ်များ ဖန်တီးပေးသည်။ “ခေါင်းစည်းတပ်ထားသော ကြောင်” သို့မဟုတ် “မိုဟော့ခ်ဆံပင်ရှိသော ခွေး” ကဲ့သို့သော prompt များဖြင့် ပုံရိပ်များ ဖန်တီးနိုင်သည်။ - -![Midjourney ဖြင့် ဖန်တီးထားသော ပုံရိပ်၊ စက်ကိရိယာကြက်ပျော](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_ပုံရိပ်အရင်းအမြစ် Wikipedia၊ Midjourney ဖြင့် ဖန်တီးထားသည်_ - -## DALL-E နှင့် Midjourney မော်ဒယ်များ ဘယ်လိုအလုပ်လုပ်သလဲ - -ပထမဦးစွာ [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst) ကို ကြည့်မယ်။ DALL-E သည် transformer အခြေခံထားသော Generative AI မော်ဒယ်ဖြစ်ပြီး _autoregressive transformer_ ကို အသုံးပြုသည်။ - -_autoregressive transformer_ သည် စာသားဖော်ပြချက်မှ ပုံရိပ်ကို တစ်ပစ်ဆွဲချင်း ဖန်တီးပေးသည်။ ပထမဦးဆုံး ပစ်ဆွဲတစ်ခု ဖန်တီးပြီးနောက်၊ ထိုပစ်ဆွဲကို အသုံးပြု၍ နောက်တစ်ပစ်ဆွဲကို ဖန်တီးသည်။ ဤလုပ်ငန်းစဉ်ကို နယူးရယ်ကွန်ယက်အလွှာများဖြတ်သန်းပြီး ပုံရိပ် ပြည့်စုံသည်အထိ ဆက်လက်လုပ်ဆောင်သည်။ - -ဤလုပ်ငန်းစဉ်ဖြင့် DALL-E သည် ဖန်တီးသော ပုံရိပ်အတွင်းရှိ အင်္ဂါရပ်များ၊ ပစ္စည်းများ၊ လက္ခဏာများကို ထိန်းချုပ်နိုင်သည်။ သို့သော် DALL-E 2 နှင့် 3 တွင် ပိုမိုထိန်းချုပ်မှုရှိသည်။ - -## ပထမဆုံး ပုံရိပ်ဖန်တီးမှု အက်ပလီကေးရှင်း တည်ဆောက်ခြင်း - -ပုံရိပ်ဖန်တီးမှု အက်ပလီကေးရှင်း တည်ဆောက်ရန် လိုအပ်သော library များမှာ - - -- **python-dotenv** - သင့်ရဲ့ လျှို့ဝှက်ချက်များကို _.env_ ဖိုင်ထဲသိမ်းဆည်းရန် အကြံပြုသည်။ -- **openai** - OpenAI API နှင့် ဆက်သွယ်ရန် အသုံးပြုမည့် library ဖြစ်သည်။ -- **pillow** - Python တွင် ပုံရိပ်များကို ကိုင်တွယ်ရန်။ -- **requests** - HTTP request များ ပြုလုပ်ရန်။ - -1. _.env_ ဖိုင်ကို အောက်ပါအတိုင်း ဖန်တီးပါ - - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Azure Portal တွင် သင့် resource ၏ "Keys and Endpoint" အပိုင်းမှ အချက်အလက်များ ရှာဖွေပါ။ - -1. အထက်ဖော်ပြထားသော library များကို _requirements.txt_ ဖိုင်တွင် စုစည်းပါ - - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. နောက်တစ်ဆင့်မှာ virtual environment ဖန်တီးပြီး library များကို ထည့်သွင်းပါ - - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Windows အတွက် virtual environment ဖန်တီးခြင်းနှင့် ဖွင့်ခြင်းအတွက် အောက်ပါ command များကို အသုံးပြုပါ - - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. _app.py_ ဆိုသော ဖိုင်တွင် အောက်ပါ code များ ထည့်သွင်းပါ - - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -ဒီ code ကို ရှင်းပြပါမယ် - - -- ပထမဦးဆုံး လိုအပ်သော library များကို import လုပ်သည်။ OpenAI library၊ dotenv library၊ requests library နှင့် Pillow library ပါဝင်သည်။ - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- နောက်တစ်ဆင့် _.env_ ဖိုင်မှ environment variable များကို load လုပ်သည်။ - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- ထို့နောက် OpenAI API အတွက် endpoint၊ key၊ version နှင့် type ကို သတ်မှတ်သည်။ - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- နောက်တစ်ဆင့် ပုံရိပ်ကို ဖန်တီးသည် - - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - အထက်ပါ code သည် ဖန်တီးထားသော ပုံရိပ် URL ပါဝင်သည့် JSON object ဖြင့် ပြန်လည်တုံ့ပြန်သည်။ URL ကို အသုံးပြု၍ ပုံရိပ်ကို ဒေါင်းလုပ်လုပ်ပြီး ဖိုင်အဖြစ် သိမ်းဆည်းနိုင်သည်။ - -- နောက်ဆုံးတွင် ပုံရိပ်ကို ဖွင့်ပြီး ပုံရိပ်ကြည့်ရှုသူဖြင့် ပြသသည် - - - ```python - image = Image.open(image_path) - image.show() - ``` - -### ပုံရိပ်ဖန်တီးမှု code ကို အသေးစိတ်ကြည့်ရှုခြင်း - -ပုံရိပ်ဖန်တီးမှု code ကို အသေးစိတ်ကြည့်မယ် - - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** သည် ပုံရိပ်ဖန်တီးရန် အသုံးပြုသော စာသား prompt ဖြစ်သည်။ ဤနေရာတွင် "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils" ကို အသုံးပြုထားသည်။ -- **size** သည် ဖန်တီးမည့် ပုံရိပ်၏ အရွယ်အစားဖြစ်ပြီး ဤနေရာတွင် 1024x1024 ပစ်ဆွဲဖြစ်သည်။ -- **n** သည် ဖန်တီးမည့် ပုံရိပ်အရေအတွက်ဖြစ်ပြီး ဤနေရာတွင် ၂ ပုံ ဖန်တီးမည်။ -- **temperature** သည် Generative AI မော်ဒယ်၏ ထွက်ရှိမှု random ဖြစ်မှုကို ထိန်းချုပ်သည့် ပါရာမီတာဖြစ်သည်။ 0 မှ 1 အတွင်းတန်ဖိုးရှိပြီး 0 ဆိုသည်မှာ ထွက်ရှိမှု သေချာတိကျမှုရှိခြင်း၊ 1 ဆိုသည်မှာ အလွန် random ဖြစ်ခြင်း ဖြစ်သည်။ ပုံမှန်တန်ဖိုးမှာ 0.7 ဖြစ်သည်။ - -နောက်ပိုင်းတွင် ပုံရိပ်များနှင့် ပတ်သက်၍ ပိုမိုလုပ်ဆောင်နိုင်သည့် အကြောင်းအရာများကို ဆက်လက်ဖော်ပြမည်။ - -## ပုံရိပ်ဖန်တီးမှု၏ ထပ်ဆောင်းစွမ်းရည်များ - -Python တွင် အကြောင်းအရာအနည်းငယ်ဖြင့် ပုံရိပ်ဖန်တီးနိုင်ခဲ့ကြောင်း မြင်တွေ့ခဲ့ပါပြီ။ သို့သော် ပုံရိပ်များနှင့် ပိုမိုလုပ်ဆောင်နိုင်သည့် အရာများ ရှိသည်။ - -အောက်ပါအရာများကိုလည်း ပြုလုပ်နိုင်သည် - - -- **တည်းဖြတ်ခြင်းများ ပြုလုပ်ခြင်း**။ ရှိပြီးသား ပုံရိပ်တစ်ပုံကို mask နှင့် prompt ဖြင့် ပုံရိပ်တည်းဖြတ်နိုင်သည်။ ဥပမာ - ကျွန်ုပ်တို့၏ ကြက်ကလေးပုံရိပ်တွင် ခေါင်းစည်းတပ်ပေးနိုင်သည်။ ၎င်းကို ပြုလုပ်ရန် ပုံရိပ်၊ mask (ပြောင်းလဲလိုသည့် အပိုင်းကို သတ်မှတ်ထားသော) နှင့် စာသား prompt တစ်ခု ပေးရမည်။ - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - အခြေခံပုံရိပ်တွင် ကြက်ကလေးသာ ပါဝင်မည်ဖြစ်ပြီး နောက်ဆုံးပုံရိပ်တွင် ခေါင်းစည်းပါဝင်မည်ဖြစ်သည်။ - -- **မျိုးစုံဖန်တီးခြင်း**။ ရှိပြီးသား ပုံရိပ်တစ်ပုံကို ယူပြီး မျိုးစုံပုံများ ဖန်တီးရန် တောင်းဆိုနိုင်သည်။ မျိုးစုံဖန်တီးရန် ပုံရိပ်နှင့် စာသား prompt တစ်ခု ပေးပြီး အောက်ပါ code ကဲ့သို့ အသုံးပြုနိုင်သည် - - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > မှတ်ချက် - ဤလုပ်ဆောင်ချက်ကို OpenAI တွင်သာ ထောက်ပံ့သည်။ - -## Temperature - -Temperature သည် Generative AI မော်ဒယ်၏ ထွက်ရှိမှု random ဖြစ်မှုကို ထိန်းချုပ်သည့် ပါရာမီတာဖြစ်သည်။ 0 မှ 1 အတွင်းတန်ဖိုးရှိပြီး 0 ဆိုသည်မှာ ထွက်ရှိမှု သေချာတိကျမှုရှိခြင်း၊ 1 ဆိုသည်မှာ အလွန် random ဖြစ်ခြင်း ဖြစ်သည်။ ပုံမှန်တန်ဖိုးမှာ 0.7 ဖြစ်သည်။ - -Temperature ၏ လုပ်ဆောင်ပုံကို နမူနာဖြင့် ကြည့်မယ်၊ အောက်ပါ prompt ကို နှစ်ကြိမ် လည်ပတ်ကြည့်မယ် - - -> Prompt : "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils" - -![Bunny on a horse holding a lollipop, version 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.my.png) - -ယခု အတူတူ prompt ကို ထပ်မံ လည်ပတ်ကြည့်မယ်၊ ပုံရိပ်တူညီမှု မရှိကြောင်း သေချာရန် - - -![Generated image of bunny on horse](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.my.png) - -မြင်တွေ့ရသလို ပုံရိပ်များသည် ဆင်တူသော်လည်း တူညီမှု မရှိကြပါ။ Temperature တန်ဖိုးကို 0.1 သို့ ပြောင်းလဲကြည့်မယ် - - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Temperature ပြောင်းလဲခြင်း - -ထို့ကြောင့် တုံ့ပြန်မှုကို ပိုမို သေချာတိကျစေရန် ကြိုးစားကြည့်မယ်။ ဖန်တီးထားသော ပုံရိပ်နှစ်ပုံကို ကြည့်လျှင် ပထမပုံတွင် ကြက်ကလေးရှိပြီး ဒုတိယပုံတွင် မြင်းရှိသည်။ ထို့ကြောင့် ပုံရိပ်များ ကြီးမားစွာ ကွဲပြားနေသည်။ - -ထို့ကြောင့် code ကို ပြောင်းလဲပြီး temperature ကို 0 သတ်မှတ်မည် - - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -ယခု code ကို လည်ပတ်သောအခါ အောက်ပါ ပုံရိပ်နှစ်ပုံ ရရှိမည် - - -- ![Temperature 0, v1](./images/v1-temp-generated - -**အကြောင်းကြားချက်** -ဤစာတမ်းကို AI ဘာသာပြန်ဝန်ဆောင်မှု [Co-op Translator](https://github.com/Azure/co-op-translator) ဖြင့် ဘာသာပြန်ထားပါသည်။ ကျွန်ုပ်တို့သည် တိကျမှန်ကန်မှုအတွက် ကြိုးစားသော်လည်း အလိုအလျောက် ဘာသာပြန်ခြင်းတွင် အမှားများ သို့မဟုတ် မှားယွင်းချက်များ ပါဝင်နိုင်ကြောင်း သတိပြုပါရန် မေတ္တာရပ်ခံအပ်ပါသည်။ မူရင်းစာတမ်းကို မူလဘာသာဖြင့်သာ တရားဝင်အချက်အလက်အဖြစ် ယူဆသင့်ပါသည်။ အရေးကြီးသော အချက်အလက်များအတွက် လူ့ဘာသာပြန်ပညာရှင်မှ ဘာသာပြန်ခြင်းကို အကြံပြုပါသည်။ ဤဘာသာပြန်ချက်ကို အသုံးပြုရာမှ ဖြစ်ပေါ်လာနိုင်သည့် နားလည်မှုမှားယွင်းမှုများအတွက် ကျွန်ုပ်တို့သည် တာဝန်မယူပါ။ \ No newline at end of file + + + + diff --git a/translations/my/12-designing-ux-for-ai-applications/README.md b/translations/my/12-designing-ux-for-ai-applications/README.md index 1faeb8274..18bbb9b0f 100644 --- a/translations/my/12-designing-ux-for-ai-applications/README.md +++ b/translations/my/12-designing-ux-for-ai-applications/README.md @@ -1,98 +1,11 @@ - -# AI အက်ပလီကေးရှင်းများအတွက် UX ဒီဇိုင်းရေးဆွဲခြင်း - -[![Designing UX for AI Applications](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.my.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(ဓာတ်ပုံကိုနှိပ်၍ ဤသင်ခန်းစာ၏ ဗီဒီယိုကိုကြည့်ရှုနိုင်ပါသည်)_ - -အသုံးပြုသူအတွေ့အကြုံသည် အက်ပလီကေးရှင်းများ တည်ဆောက်ရာတွင် အလွန်အရေးကြီးသော အချက်တစ်ခုဖြစ်သည်။ အသုံးပြုသူများသည် သင့်အက်ပလီကေးရှင်းကို ထိရောက်စွာ အသုံးပြုနိုင်ရမည်ဖြစ်ပြီး၊ တာဝန်များကို ပြီးမြောက်စွာ ဆောင်ရွက်နိုင်ရမည်ဖြစ်သည်။ ထိရောက်မှုတစ်ခုသာမက၊ အက်ပလီကေးရှင်းများကို လူတိုင်း အသုံးပြုနိုင်စေရန် ဒီဇိုင်းရေးဆွဲရမည်ဖြစ်ပြီး၊ ၎င်းကို _လွယ်ကူစွာ အသုံးပြုနိုင်စေရန်_ ဖြစ်သည်။ ဤအခန်းတွင် ဤအချက်ကို အထူးအာရုံစိုက်ပြီး လူများ အသုံးပြုလိုသော၊ အသုံးပြုနိုင်သော အက်ပလီကေးရှင်းတစ်ခုကို ဒီဇိုင်းရေးဆွဲနိုင်ရန် ရည်ရွယ်ပါသည်။ - -## နိဒါန်း - -အသုံးပြုသူအတွေ့အကြုံဆိုသည်မှာ အသုံးပြုသူတစ်ဦးက ထိတွေ့သုံးစွဲသော ထုတ်ကုန် သို့မဟုတ် ဝန်ဆောင်မှုတစ်ခုဖြစ်ပြီး၊ ၎င်းသည် စနစ်၊ ကိရိယာ သို့မဟုတ် ဒီဇိုင်းဖြစ်နိုင်သည်။ AI အက်ပလီကေးရှင်းများ ဖန်တီးရာတွင် ဖန်တီးသူများသည် အသုံးပြုသူအတွေ့အကြုံကို ထိရောက်စွာသာမက သမာဓိရှိစေရန်လည်း အာရုံစိုက်ကြသည်။ ဤသင်ခန်းစာတွင် အသုံးပြုသူလိုအပ်ချက်များကို ဖြည့်ဆည်းပေးနိုင်သော Artificial Intelligence (AI) အက်ပလီကေးရှင်းများ ဖန်တီးနည်းကို ဖော်ပြပါမည်။ - -ဤသင်ခန်းစာတွင် အောက်ပါအချက်များကို ဖော်ပြပါမည်- - -- အသုံးပြုသူအတွေ့အကြုံနှင့် အသုံးပြုသူလိုအပ်ချက်များနားလည်ခြင်း -- ယုံကြည်မှုနှင့် ထင်ရှားမြင်သာမှုအတွက် AI အက်ပလီကေးရှင်းများ ဒီဇိုင်းရေးဆွဲခြင်း -- ပူးပေါင်းဆောင်ရွက်မှုနှင့် တုံ့ပြန်ချက်အတွက် AI အက်ပလီကေးရှင်းများ ဒီဇိုင်းရေးဆွဲခြင်း - -## သင်ယူရမည့် ရည်မှန်းချက်များ - -ဤသင်ခန်းစာကို ပြီးမြောက်ပြီးနောက် သင်သည်- - -- အသုံးပြုသူလိုအပ်ချက်များနှင့် ကိုက်ညီသော AI အက်ပလီကေးရှင်းများ ဖန်တီးနည်းကို နားလည်နိုင်မည်။ -- ယုံကြည်မှုနှင့် ပူးပေါင်းဆောင်ရွက်မှုကို မြှင့်တင်ပေးသော AI အက်ပလီကေးရှင်းများ ဒီဇိုင်းရေးဆွဲနိုင်မည်။ - -### မတိုင်မီ လေ့လာထားသင့်သော အကြောင်းအရာ - -အချိန်ယူ၍ [အသုံးပြုသူအတွေ့အကြုံနှင့် ဒီဇိုင်းစဉ်းစားမှု](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) အကြောင်း ပိုမိုလေ့လာပါ။ - -## အသုံးပြုသူအတွေ့အကြုံနဲ့ အသုံးပြုသူလိုအပ်ချက်များနားလည်ခြင်း - -ကျွန်ုပ်တို့၏ စိတ်ကူးယဉ်ပညာရေး စတားတပ်တွင် အဓိကအသုံးပြုသူနှစ်ဦးရှိသည်၊ ဆရာ/ဆရာမများနှင့် ကျောင်းသား/သူများ။ အသုံးပြုသူနှစ်ဦးစလုံးတွင် မတူညီသော လိုအပ်ချက်များ ရှိသည်။ အသုံးပြုသူကို ဦးစားပေးထားသော ဒီဇိုင်းသည် ထုတ်ကုန်များကို အသုံးပြုသူများအတွက် သက်ဆိုင်ပြီး အကျိုးရှိစေရန် အရေးကြီးသည်။ - -အက်ပလီကေးရှင်းသည် **အသုံးဝင်မှု၊ ယုံကြည်စိတ်ချရမှု၊ လွယ်ကူစွာ အသုံးပြုနိုင်မှုနှင့် သက်တောင့်သက်သာရှိမှု** တို့ကို ပေးစွမ်းရမည်ဖြစ်ပြီး ကောင်းမွန်သော အသုံးပြုသူအတွေ့အကြုံကို ပေးစွမ်းနိုင်ရမည်။ - -### အသုံးဝင်မှု - -အသုံးဝင်မှုဆိုသည်မှာ အက်ပလီကေးရှင်းတွင် ရည်ရွယ်ချက်နှင့် ကိုက်ညီသော လုပ်ဆောင်ချက်များ ပါဝင်ခြင်းဖြစ်သည်။ ဥပမာ- အမှတ်ပေးခြင်းလုပ်ငန်းစဉ်ကို အလိုအလျောက် ပြုလုပ်ခြင်း သို့မဟုတ် ပြန်လည်သုံးသပ်ရန် ဖလက်ရှ်ကတ်များ ဖန်တီးပေးခြင်း။ အမှတ်ပေးခြင်းလုပ်ငန်းစဉ်ကို အလိုအလျောက် ပြုလုပ်သော အက်ပလီကေးရှင်းသည် သတ်မှတ်ထားသော စံနှုန်းများအရ ကျောင်းသားများ၏ အလုပ်များကို တိကျစွာနှင့် ထိရောက်စွာ အမှတ်ပေးနိုင်ရမည်။ ထို့အပြင် ပြန်လည်သုံးသပ်ရန် ဖလက်ရှ်ကတ်များ ဖန်တီးသော အက်ပလီကေးရှင်းသည် ၎င်း၏ ဒေတာအရ သက်ဆိုင်ရာနှင့် မတူညီသော မေးခွန်းများကို ဖန်တီးနိုင်ရမည်။ - -### ယုံကြည်စိတ်ချရမှု - -ယုံကြည်စိတ်ချရမှုဆိုသည်မှာ အက်ပလီကေးရှင်းသည် အမှားမရှိဘဲ၊ တိကျစွာ လုပ်ဆောင်နိုင်ရမည်ဖြစ်သည်။ သို့သော် AI သည် လူသားများကဲ့သို့ အပြည့်အဝ ပြည့်စုံမှုမရှိသဖြင့် အမှားများ ဖြစ်ပေါ်နိုင်သည်။ အက်ပလီကေးရှင်းများသည် အမှားများ သို့မဟုတ် မမျှော်လင့်ထားသော အခြေအနေများကို ကြုံတွေ့နိုင်ပြီး လူသား၏ အကူအညီ သို့မဟုတ် ပြင်ဆင်မှု လိုအပ်နိုင်သည်။ အမှားများကို မည်သို့ ကိုင်တွယ်မည်နည်း? ဤသင်ခန်းစာ၏ နောက်ဆုံးပိုင်းတွင် AI စနစ်များနှင့် အက်ပလီကေးရှင်းများကို ပူးပေါင်းဆောင်ရွက်မှုနှင့် တုံ့ပြန်ချက်အတွက် မည်သို့ ဒီဇိုင်းရေးဆွဲထားသည်ကို ဖော်ပြပါမည်။ - -### လွယ်ကူစွာ အသုံးပြုနိုင်မှု - -လွယ်ကူစွာ အသုံးပြုနိုင်မှုဆိုသည်မှာ မတူညီသော စွမ်းရည်ရှိသူများ၊ အထူးသဖြင့် မသန်စွမ်းသူများအပါအဝင် အသုံးပြုသူအားလုံးအတွက် အသုံးပြုနိုင်စေရန် အသုံးပြုသူအတွေ့အကြုံကို တိုးချဲ့ပေးခြင်းဖြစ်သည်။ လွယ်ကူစွာ အသုံးပြုနိုင်ရေး လမ်းညွှန်ချက်များနှင့် 원칙များကို လိုက်နာခြင်းဖြင့် AI ဖြေရှင်းချက်များသည် ပိုမိုပါဝင်နိုင်ပြီး၊ အသုံးပြုရလွယ်ကူပြီး၊ အသုံးပြုသူအားလုံးအတွက် အကျိုးရှိစေသည်။ - -### သက်တောင့်သက်သာရှိမှု - -သက်တောင့်သက်သာရှိမှုဆိုသည်မှာ အက်ပလီကေးရှင်းကို အသုံးပြုရတာ ပျော်ရွှင်စရာ ဖြစ်စေခြင်းဖြစ်သည်။ ဆွဲဆောင်မှုရှိသော အသုံးပြုသူအတွေ့အကြုံသည် အသုံးပြုသူကို အက်ပလီကေးရှင်းသို့ ပြန်လည်လာရောက်စေပြီး စီးပွားရေးဝင်ငွေ တိုးတက်စေသည်။ - -![AI တွင် UX စဉ်းစားချက်များကို ဖော်ပြထားသော ပုံ](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.my.png) - -AI သည် မည်သည့် စိန်ခေါ်မှုကိုမဆို ဖြေရှင်းပေးနိုင်သည်မဟုတ်ပါ။ AI သည် သင့်အသုံးပြုသူအတွေ့အကြုံကို တိုးမြှင့်ပေးရန် ရည်ရွယ်ပြီး၊ လက်ဖြင့်လုပ်ဆောင်ရသော အလုပ်များကို အလိုအလျောက် ပြုလုပ်ခြင်း သို့မဟုတ် အသုံးပြုသူအတွေ့အကြုံကို ကိုယ်ပိုင်စိတ်ကြိုက် ပြုလုပ်ပေးခြင်းတို့ ဖြစ်နိုင်သည်။ - -## ယုံကြည်မှုနှင့် ထင်ရှားမြင်သာမှုအတွက် AI အက်ပလီကေးရှင်းများ ဒီဇိုင်းရေးဆွဲခြင်း - -AI အက်ပလီကေးရှင်းများ ဒီဇိုင်းရေးဆွဲရာတွင် ယုံကြည်မှု တည်ဆောက်ခြင်းမှာ အရေးကြီးသည်။ ယုံကြည်မှုသည် အသုံးပြုသူအား အက်ပလီကေးရှင်းသည် လုပ်ငန်းကို ပြီးမြောက်စွာ ဆောင်ရွက်ပေးမည်၊ ရလဒ်များကို မပြောင်းလဲဘဲ ပေးပို့မည်၊ ရလဒ်များသည် အသုံးပြုသူလိုအပ်ချက်နှင့် ကိုက်ညီသည်ဟု ယုံကြည်စိတ်ချစေသည်။ ဤနယ်ပယ်တွင် ဖြစ်နိုင်သော အန္တရာယ်မှာ မယုံကြည်မှုနှင့် အလွန်ယုံကြည်မှု ဖြစ်နိုင်သည်။ မယုံကြည်မှုဆိုသည်မှာ အသုံးပြုသူသည် AI စနစ်အား ယုံကြည်မှုနည်းပါးခြင်း သို့မဟုတ် မရှိခြင်းဖြစ်ပြီး၊ ၎င်းကြောင့် အသုံးပြုသူသည် သင့်အက်ပလီကေးရှင်းကို ငြင်းပယ်သွားနိုင်သည်။ အလွန်ယုံကြည်မှုဆိုသည်မှာ အသုံးပြုသူသည် AI စနစ်၏ စွမ်းဆောင်ရည်ကို များစွာ ခန့်မှန်းခြေခြင်းဖြစ်ပြီး၊ AI စနစ်ကို အလွန်ယုံကြည်သွားခြင်း ဖြစ်သည်။ ဥပမာ- အလိုအလျောက် အမှတ်ပေးစနစ်တွင် အလွန်ယုံကြည်မှုကြောင့် ဆရာ/ဆရာမသည် အမှတ်ပေးစနစ်မှန်ကန်စွာ လုပ်ဆောင်နေသည်ဟု သေချာစေရန် စာရွက်စာတမ်းများကို စစ်ဆေးခြင်း မပြုလုပ်နိုင်ပါက ကျောင်းသားများအတွက် မတရားသော သို့မဟုတ် မှားယွင်းသော အမှတ်များ ပေးခြင်း၊ တုံ့ပြန်ချက်နှင့် တိုးတက်မှုအတွက် အခွင့်အလမ်းများ ပျောက်ဆုံးနိုင်သည်။ - -ယုံကြည်မှုကို ဒီဇိုင်း၏ အလယ်ဗဟိုတွင်ထားရန် နည်းလမ်းနှစ်ခုမှာ ရှင်းလင်းပြတ်သားမှုနှင့် ထိန်းချုပ်မှု ဖြစ်သည်။ - -### ရှင်းလင်းပြတ်သားမှု - -AI သည် အနာဂတ်မျိုးဆက်များအား အသိပညာပေးခြင်းကဲ့သို့ ဆုံးဖြတ်ချက်များကို အကူအညီပေးသောအခါ ဆရာ/ဆရာမများနှင့် မိဘများသည် AI ဆုံးဖြတ်ချက်များ မည်သို့ ပြုလုပ်သည်ကို နားလည်ရမည်ဖြစ်သည်။ ၎င်းကို ရှင်းလင်းပြတ်သားမှု ဟု ခေါ်သည် - AI အက်ပလီကေးရှင်းများသည် မည်သို့ ဆုံးဖြတ်ချက်များ ပြုလုပ်သည်ကို နားလည်ခြင်း။ ရှင်းလင်းပြတ်သားမှုအတွက် ဒီဇိုင်းရေးဆွဲရာတွင် AI အက်ပလီကေးရှင်းတစ်ခုက ဘာများ ပြုလုပ်နိုင်သည်ဆိုသည့် နမူနာအသေးစိတ်များ ထည့်သွင်းဖော်ပြခြင်း ပါဝင်သည်။ ဥပမာ- "AI ဆရာဖြင့် စတင်ပါ" ဆိုသည့်နေရာတွင် "AI ကို အသုံးပြု၍ သင်၏မှတ်စုများကို လွယ်ကူစွာ ပြန်လည်သုံးသပ်ရန် အကျဉ်းချုပ်ပါ" ဟု အသုံးပြုနိုင်သည်။ - -![AI အက်ပလီကေးရှင်းများတွင် ရှင်းလင်းပြတ်သားမှုကို ဖော်ပြထားသော အက်ပလီကေးရှင်း မျက်နှာပြင်](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.my.png) - -နမူနာတစ်ခုမှာ AI သည် အသုံးပြုသူနှင့် ကိုယ်ရေးအချက်အလက်များကို မည်သို့ အသုံးပြုသည်ဆိုသည်ဖြစ်သည်။ ဥပမာ- ကျောင်းသား persona ရှိသော အသုံးပြုသူသည် ၎င်း၏ persona အရ ကန့်သတ်ချက်များ ရှိနိုင်သည်။ AI သည် မေးခွန်းများ၏ ဖြေကြားချက်များကို မဖော်ပြနိုင်ပေမယ့် အသုံးပြုသူကို ပြဿနာကို မည်သို့ ဖြေရှင်းနိုင်သည်ကို စဉ်းစားရန် လမ်းညွှန်ပေးနိုင်သည်။ - -![persona အရ မေးခွန်းများကို ဖြေကြားနေသော AI](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.my.png) - -ရှင်းလင်းပြတ်သားမှု၏ နောက်ဆုံးအရေးကြီးသော အစိတ်အပိုင်းမှာ ရှင်းလင်းချက်များကို ရိုးရှင်းလွယ်ကူစွာ ဖော်ပြခြင်းဖြစ်သည်။ ကျောင်းသားများနှင့် ဆရာ/ဆရာမများသည် AI ကျွမ်းကျင်သူ မဟုတ်နိုင်သဖြင့် အက်ပလီကေးရှင်းက ဘာများ ပြုလုပ်နိုင်သည်၊ မပြုလုပ်နိုင်သည်ကို ရိုးရှင်းလွယ်ကူစွာ နားလည်နိုင်စေရန် ရှင်းလင်းချက်များ ပေးသင့်သည်။ - -![AI စွမ်းဆောင်ရည်များအပေါ် ရိုးရှင်းလွယ်ကူသော ရှင်းလင်းချက်များ](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.my.png) - -### ထိန်းချုပ်မှု - -Generative AI သည် AI နှင့် အသုံးပြုသူအကြား ပူးပေါင်းဆောင်ရွက်မှု တစ်ခု ဖန်တီးပေးပြီး၊ ဥပမာ- အသုံးပြုသူသည် မတူညီသော ရလဒ်များအတွက် prompt များကို ပြင်ဆင်နိုင်သည်။ ထို့အပြင် ရလဒ်တစ်ခု ထွက်ရှိပြီးနောက် အသုံးပြုသူများသည် ထွက်ရှိလာသော ရလဒ်များကို ပြင်ဆင်နိုင်ပြီး ထိန်းချုပ်မှုခံစားမှု ရရှိစေသည်။ ဥပမာ- Bing ကို အသုံးပြုသောအခါ ဖော်မတ်၊ အသံနှင့် အရှည်အတိုင်းအတာအရ prompt ကို ကိုက်ညီစေရန် ပြင်ဆင်နိုင်သည်။ ထို့အပြင် ထွက်ရှိလာသော ရလဒ်ကို ပြင်ဆင်ခြင်းနှင့် ပြောင်းလဲခြင်းများ ပြုလုပ်နိုင်သည်။ - -![prompt နှင့် output ကို ပြင်ဆင်နိုင်သော Bing ရှာဖွေမှု ရလဒ်များ](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.my.png) - -Bing တွင် အသုံးပြုသူအား အက်ပလီကေးရှင်းတွင် အသုံးပြုသော ဒေတာကို ဝင်ရောက်ခွင့်ပြုခြင်း သို့မဟုတ် မဝင်ရောက်ခွင့်ပြုခြင်း ရွေးချယ်နိုင်စေရန် လုပ်ဆောင်ချက်တစ်ခုလည်း ရှိသည်။ ကျောင်းအက်ပလီကေးရှင်းအတွက် ကျောင်းသားတစ်ဦးသည် သူ၏မှတ်စုများနှင့် ဆရာ/ဆရာမ၏ အရင်းအမြစ်များကို ပြန်လည်သုံးသပ်ရန် အသုံးပြုလိုနိုင်သည်။ - -![prompt နှင့် output ကို ပြင်ဆင်နိုင်သော Bing ရှာဖွေမှု ရလဒ်များ](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.my.png) - -> AI အက်ပလီကေးရှင်းများ ဒီဇိုင်းရေးဆွဲရာတွင် ရည်ရွယ်ချက်ရှိမှုသည် အသုံးပြုသူများ အလွန်ယုံကြည်မှု မရှိစေရန် - -**အကြောင်းကြားချက်** -ဤစာတမ်းကို AI ဘာသာပြန်ဝန်ဆောင်မှု [Co-op Translator](https://github.com/Azure/co-op-translator) ဖြင့် ဘာသာပြန်ထားပါသည်။ ကျွန်ုပ်တို့သည် တိကျမှန်ကန်မှုအတွက် ကြိုးစားသော်လည်း၊ အလိုအလျောက် ဘာသာပြန်ခြင်းများတွင် အမှားများ သို့မဟုတ် မှားယွင်းချက်များ ပါဝင်နိုင်ကြောင်း သတိပြုပါရန် မေတ္တာရပ်ခံအပ်ပါသည်။ မူရင်းစာတမ်းကို မိမိဘာသာစကားဖြင့်သာ တရားဝင်အရင်းအမြစ်အဖြစ် သတ်မှတ်သင့်ပါသည်။ အရေးကြီးသော အချက်အလက်များအတွက် လူ့ဘာသာပြန်ပညာရှင်မှ ဘာသာပြန်ခြင်းကို အကြံပြုပါသည်။ ဤဘာသာပြန်ချက်ကို အသုံးပြုရာမှ ဖြစ်ပေါ်လာနိုင်သည့် နားလည်မှုမှားယွင်းမှုများအတွက် ကျွန်ုပ်တို့သည် တာဝန်မယူပါ။ \ No newline at end of file + + + diff --git a/translations/my/README.md b/translations/my/README.md index c3910b085..9eb293397 100644 --- a/translations/my/README.md +++ b/translations/my/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.my.png) - -### Generative AI အပလီကေးရှင်းတွေ တည်ဆောက်ဖို့ လိုအပ်တဲ့ အရာအားလုံးကို သင်ကြားပေးမယ့် ၂၁ ခန်းစာ - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 ဘာသာစကားစုံကို ထောက်ပံ့မှု - -#### GitHub Action ဖြင့် ထောက်ပံ့ထားပြီး (အလိုအလျောက်နဲ့ အမြဲတမ်းအသစ်) - -[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](./README.md) - -# Generative AI for Beginners (ဗားရှင်း ၃) - သင်တန်း - -Microsoft Cloud Advocates မှ တင်ဆက်ပေးသည့် ၂၁ ခန်းစာပါဝင်သည့် Generative AI အပလီကေးရှင်းများ တည်ဆောက်ခြင်း အခြေခံများကို သင်ယူလိုက်ပါ။ - -## 🌱 စတင်ခြင်း - -ဒီသင်တန်းမှာ ၂၁ ခန်းစာရှိပါတယ်။ ခန်းစာတိုင်းမှာ ကိုယ်ပိုင်ခေါင်းစဉ်ရှိပြီး သင်ကြိုက်သလို စတင်လေ့လာနိုင်ပါတယ်။ - -ခန်းစာတွေကို "Learn" ဆိုတဲ့ Generative AI အကြောင်းအရာကို ရှင်းပြတဲ့ခန်းစာတွေ၊ "Build" ဆိုတဲ့ အကြောင်းအရာနဲ့အတူ **Python** နဲ့ **TypeScript** ကို အသုံးပြုပြီး ကုဒ်နမူနာတွေပါဝင်တဲ့ခန်းစာတွေ အဖြစ် ခွဲခြားထားပါတယ်။ - -.NET Developer တွေအတွက် [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) ကို ကြည့်ရှုနိုင်ပါတယ်။ - -ခန်းစာတိုင်းမှာ "Keep Learning" ဆိုတဲ့ အပိုင်းလည်း ပါဝင်ပြီး ပိုမိုလေ့လာနိုင်ဖို့ ကိရိယာတွေပါဝင်ပါတယ်။ - -## လိုအပ်ချက်များ -### ဒီသင်တန်းရဲ့ ကုဒ်တွေကို run ဖို့ အောက်ပါအရာတွေကို အသုံးပြုနိုင်ပါတယ် - - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **ခန်းစာများ:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **ခန်းစာများ:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **ခန်းစာများ:** "oai-assignment" - -- Python သို့မဟုတ် TypeScript အခြေခံအသိပညာရှိခြင်းက အထောက်အကူဖြစ်ပါတယ် - \*အခြေခံသူတွေအတွက် [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) နဲ့ [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) သင်တန်းတွေကို ကြည့်ရှုနိုင်ပါတယ် -- GitHub အကောင့်တစ်ခုရှိပြီး ဒီ repo အားလုံးကို သင့် GitHub အကောင့်သို့ [fork](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) လုပ်ထားဖို့လိုပါတယ် - -ဖွံ့ဖြိုးရေးပတ်ဝန်းကျင်ကို စတင်တပ်ဆင်ဖို့အတွက် **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** ခန်းစာကို ပြုလုပ်ပေးထားပါတယ်။ - -နောက်ပိုင်းမှာ ရှာဖွေဖို့ လွယ်ကူစေရန် ဒီ repo ကို [ကြယ် (🌟) ပေးဖို့ မမေ့ပါနဲ့](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst)။ - -## 🧠 ပြင်ဆင်ပြီး အသုံးပြုဖို့ အသင့်ဖြစ်ပြီလား? - -ပိုမိုတိုးတက်တဲ့ ကုဒ်နမူနာတွေလိုချင်ရင် ကျွန်တော်တို့ရဲ့ [Generative AI Code Samples စုစည်းမှု](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) ကို **Python** နဲ့ **TypeScript** နှစ်မျိုးလုံးမှာ ကြည့်ရှုနိုင်ပါတယ်။ - -## 🗣️ အခြားသင်ယူသူတွေနဲ့ တွေ့ဆုံ၊ အထောက်အပံ့ရယူပါ - -ဒီသင်တန်းကို လေ့လာနေသူ အခြားသူတွေနဲ့ တွေ့ဆုံဆက်ဆံဖို့နဲ့ အထောက်အပံ့ရဖို့ [Azure AI Foundry Discord server](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) ကို ဝင်ရောက်ပါ။ - -မေးခွန်းမေးရန် သို့မဟုတ် ထုတ်ကုန်အကြံပြုချက်မျှဝေရန် [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum) ကို GitHub ပေါ်မှာ အသုံးပြုနိုင်ပါတယ်။ - -## 🚀 စတားတပ်တည်ဆောက်နေပါသလား? - -[Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) မှာ စာရင်းသွင်းပြီး **အခမဲ့ OpenAI ခရက်ဒစ်များ** နဲ့ **Azure OpenAI Services မှတဆင့် OpenAI မော်ဒယ်များကို အသုံးပြုရန် Azure ခရက်ဒစ် $150,000 အထိ** ရယူနိုင်ပါတယ်။ - -## 🙏 ကူညီချင်ပါသလား? - -အကြံပြုချက်များရှိပါသလား၊ စာလုံးပေါင်းမှားများ သို့မဟုတ် ကုဒ်အမှားတွေတွေ့ရှိပါသလား? [Issue တင်ပါ](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) သို့မဟုတ် [Pull Request တင်ပါ](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 ခန်းစာတိုင်းတွင် ပါဝင်သောအရာများ - -- ခေါင်းစဉ်အပေါ် မျက်နှာဖုံး ဗီဒီယိုတို -- README ဖိုင်ထဲရှိ စာသားသင်ခန်းစာ -- Azure OpenAI နဲ့ OpenAI API ကို ထောက်ပံ့တဲ့ Python နဲ့ TypeScript ကုဒ်နမူနာများ -- ပိုမိုလေ့လာနိုင်ဖို့ အပိုဆောင်းအရင်းအမြစ်များ လင့်ခ်များ - -## 🗃️ ခန်းစာများ - -| # | **ခန်းစာလင့်ခ်** | **ဖော်ပြချက်** | **ဗီဒီယို** | **အပိုဆောင်းလေ့လာမှု** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **သင်ယူရန်:** ဖွံ့ဖြိုးရေးပတ်ဝန်းကျင်ကို ဘယ်လိုတပ်ဆင်ရမလဲဆိုတာ | ဗီဒီယို မကြာမီထွက်ပါမည် | [ပိုမိုသိရှိရန်](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introduction to Generative AI and LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **သင်ယူရန်:** Generative AI ဆိုတာဘာလဲ၊ Large Language Models (LLMs) များ ဘယ်လိုအလုပ်လုပ်ကြတာလဲ။ | [ဗီဒီယို](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [ပိုမိုသိရှိရန်](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Exploring and comparing different LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **သင်ယူရန်:** သင့်အသုံးပြုမှုအတွက် သင့်တော်တဲ့ မော်ဒယ်ကို ဘယ်လိုရွေးချယ်ရမလဲ | [ဗီဒီယို](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [ပိုမိုသိရှိရန်](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Using Generative AI Responsibly](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **သင်ယူရန်:** Generative AI အပလီကေးရှင်းတွေကို တာဝန်ရှိရှိ တည်ဆောက်နည်း | [ဗီဒီယို](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [ပိုမိုသိရှိရန်](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Understanding Prompt Engineering Fundamentals](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **သင်ယူရန်:** Prompt Engineering အခြေခံနည်းလမ်းများကို လက်တွေ့ကျကျ လေ့လာခြင်း | [ဗီဒီယို](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [ပိုမိုသိရှိရန်](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Creating Advanced Prompts](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **သင်ယူရန်:** Prompt များရဲ့ ရလဒ်ကို တိုးတက်စေဖို့ Prompt Engineering နည်းလမ်းတွေကို ဘယ်လိုအသုံးချမလဲ။ | [ဗီဒီယို](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [ပိုမိုသိရှိရန်](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [စာသားဖန်တီးမှု အက်ပလီကေးရှင်းများ တည်ဆောက်ခြင်း](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **တည်ဆောက်ရန်:** Azure OpenAI / OpenAI API ကို အသုံးပြု၍ စာသားဖန်တီးမှု အက်ပလီကေးရှင်း တစ်ခု တည်ဆောက်ခြင်း | [ဗီဒီယို](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [ပိုမိုသိရှိရန်](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [စကားပြော အက်ပလီကေးရှင်းများ တည်ဆောက်ခြင်း](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **တည်ဆောက်ရန်:** စကားပြော အက်ပလီကေးရှင်းများကို ထိရောက်စွာ တည်ဆောက်ခြင်းနှင့် ပေါင်းစပ်ခြင်းနည်းလမ်းများ | [ဗီဒီယို](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [ပိုမိုသိရှိရန်](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [ရှာဖွေရေး အက်ပလီကေးရှင်းများနှင့် Vector ဒေတာဘေ့စ်များ တည်ဆောက်ခြင်း](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **တည်ဆောက်ရန်:** Embeddings ကို အသုံးပြု၍ ဒေတာရှာဖွေရေး အက်ပလီကေးရှင်း တစ်ခု တည်ဆောက်ခြင်း | [ဗီဒီယို](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [ပိုမိုသိရှိရန်](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [ပုံဖန်တီးမှု အက်ပလီကေးရှင်းများ တည်ဆောက်ခြင်း](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **တည်ဆောက်ရန်:** ပုံဖန်တီးမှု အက်ပလီကေးရှင်း တစ်ခု | [ဗီဒီယို](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [ပိုမိုသိရှိရန်](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Low Code AI အက်ပလီကေးရှင်းများ တည်ဆောက်ခြင်း](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **တည်ဆောက်ရန်:** Low Code ကိရိယာများကို အသုံးပြု၍ Generative AI အက်ပလီကေးရှင်း တစ်ခု တည်ဆောက်ခြင်း | [ဗီဒီယို](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [ပိုမိုသိရှိရန်](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Function Calling ဖြင့် ပြင်ပ အက်ပလီကေးရှင်းများ ပေါင်းစပ်ခြင်း](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **တည်ဆောက်ရန်:** function calling ဆိုတာဘာလဲ၊ အက်ပလီကေးရှင်းများတွင် ဘယ်လိုအသုံးပြုကြသည်ဆိုတာ | [ဗီဒီယို](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [ပိုမိုသိရှိရန်](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [AI အက်ပလီကေးရှင်းများအတွက် UX ဒီဇိုင်း ရေးဆွဲခြင်း](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **သင်ယူရန်:** Generative AI အက်ပလီကေးရှင်းများ ဖန်တီးရာတွင် UX ဒီဇိုင်း 원칙များကို ဘယ်လိုအသုံးချရမလဲဆိုတာ | [ဗီဒီယို](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [ပိုမိုသိရှိရန်](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [သင့် Generative AI အက်ပလီကေးရှင်းများကို လုံခြုံစေခြင်း](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **သင်ယူရန်:** AI စနစ်များကို ခြိမ်းခြောက်မှုများနှင့် အန္တရာယ်များ၊ ထိုစနစ်များကို လုံခြုံစေသည့် နည်းလမ်းများ | [ဗီဒီယို](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [ပိုမိုသိရှိရန်](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [Generative AI အက်ပလီကေးရှင်း၏ အသက်တာစက်ဝန်း](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **သင်ယူရန်:** LLM အသက်တာစက်ဝန်းနှင့် LLMOps ကို စီမံခန့်ခွဲရန် ကိရိယာများနှင့် တိုင်းတာချက်များ | [ဗီဒီယို](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [ပိုမိုသိရှိရန်](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) နှင့် Vector ဒေတာဘေ့စ်များ](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **တည်ဆောက်ရန်:** RAG Framework ကို အသုံးပြု၍ Vector ဒေတာဘေ့စ်များမှ embeddings များကို ရယူသုံးစွဲသည့် အက်ပလီကေးရှင်း | [ဗီဒီယို](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [ပိုမိုသိရှိရန်](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Open Source မော်ဒယ်များနှင့် Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **တည်ဆောက်ရန်:** Hugging Face တွင် ရရှိနိုင်သည့် open source မော်ဒယ်များကို အသုံးပြု၍ အက်ပလီကေးရှင်း တစ်ခု တည်ဆောက်ခြင်း | [ဗီဒီယို](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [ပိုမိုသိရှိရန်](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI Agents](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **တည်ဆောက်ရန်:** AI Agent Framework ကို အသုံးပြု၍ အက်ပလီကေးရှင်း တစ်ခု တည်ဆောက်ခြင်း | [ဗီဒီယို](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [ပိုမိုသိရှိရန်](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [LLMs ကို Fine-Tuning ပြုလုပ်ခြင်း](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **သင်ယူရန်:** LLMs ကို fine-tuning ပြုလုပ်ခြင်း၏ အကြောင်းအရာ၊ အကြောင်းရင်းနှင့် နည်းလမ်းများ | [ဗီဒီယို](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [ပိုမိုသိရှိရန်](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [SLMs ဖြင့် တည်ဆောက်ခြင်း](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **သင်ယူရန်:** Small Language Models ဖြင့် တည်ဆောက်ခြင်း၏ အကျိုးကျေးဇူးများ | ဗီဒီယို မကြာမီ ရရှိပါမည် | [ပိုမိုသိရှိရန်](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Mistral မော်ဒယ်များဖြင့် တည်ဆောက်ခြင်း](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **သင်ယူရန်:** Mistral မော်ဒယ် မိသားစု၏ လက္ခဏာများနှင့် ကွာခြားချက်များ | ဗီဒီယို မကြာမီ ရရှိပါမည် | [ပိုမိုသိရှိရန်](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Meta မော်ဒယ်များဖြင့် တည်ဆောက်ခြင်း](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **သင်ယူရန်:** Meta မော်ဒယ် မိသားစု၏ လက္ခဏာများနှင့် ကွာခြားချက်များ | ဗီဒီယို မကြာမီ ရရှိပါမည် | [ပိုမိုသိရှိရန်](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 အထူးကျေးဇူးတင်ရှိပါသည် - -GitHub Actions နှင့် workflows အားလုံးကို ဖန်တီးပေးသော [**John Aziz**](https://www.linkedin.com/in/john0isaac/) ကို အထူးကျေးဇူးတင်ရှိပါသည်။ - -သင်ယူသူနှင့် ကုဒ်အတွေ့အကြုံ တိုးတက်စေရန် သင်ခန်းစာတိုင်းတွင် အဓိက အထောက်အကူပြုခဲ့သော [**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) ကိုလည်း ကျေးဇူးအထူးတင်ရှိပါသည်။ - -## 🎒 အခြားသင်တန်းများ - -ကျွန်ုပ်တို့အဖွဲ့သည် အခြားသင်တန်းများကိုလည်း ထုတ်လုပ်ပါသည်။ စစ်ဆေးကြည့်ပါ- - -- [**အသစ်** စတင်သူများအတွက် Model Context Protocol](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [စတင်သူများအတွက် AI Agents](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [.NET ဖြင့် စတင်သူများအတွက် Generative AI](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [JavaScript ဖြင့် စတင်သူများအတွက် Generative AI](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [စတင်သူများအတွက် ML](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [စတင်သူများအတွက် ဒေတာသိပ္ပံ](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [စတင်သူများအတွက် AI](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [စတင်သူများအတွက် Cybersecurity](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [စတင်သူများအတွက် ဝက်ဘ်ဖွံ့ဖြိုးတိုးတက်မှု](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [စတင်သူများအတွက် IoT](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [စတင်သူများအတွက် XR ဖွံ့ဖြိုးတိုးတက်မှု](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI နှင့် တွဲဖက်ရေးသားခြင်းအတွက် GitHub Copilot ကျွမ်းကျင်မှု](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [C#/.NET Developer များအတွက် GitHub Copilot ကျွမ်းကျင်မှု](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [သင့်ကိုယ်ပိုင် Copilot စွန့်စားခန်း ရွေးချယ်ပါ](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**အကြောင်းကြားချက်** -ဤစာတမ်းကို AI ဘာသာပြန်ဝန်ဆောင်မှု [Co-op Translator](https://github.com/Azure/co-op-translator) ဖြင့် ဘာသာပြန်ထားပါသည်။ ကျွန်ုပ်တို့သည် တိကျမှန်ကန်မှုအတွက် ကြိုးစားသော်လည်း အလိုအလျောက် ဘာသာပြန်ခြင်းတွင် အမှားများ သို့မဟုတ် မှားယွင်းချက်များ ပါဝင်နိုင်ကြောင်း သတိပြုပါရန် မေတ္တာရပ်ခံအပ်ပါသည်။ မူရင်းစာတမ်းကို မိမိဘာသာစကားဖြင့်သာ တရားဝင်အချက်အလက်အဖြစ် ယူဆသင့်ပါသည်။ အရေးကြီးသော အချက်အလက်များအတွက် လူ့ဘာသာပြန်ပညာရှင်မှ ဘာသာပြန်ခြင်းကို အကြံပြုပါသည်။ ဤဘာသာပြန်ချက်ကို အသုံးပြုရာမှ ဖြစ်ပေါ်လာနိုင်သည့် နားလည်မှုမှားယွင်းမှုများအတွက် ကျွန်ုပ်တို့သည် တာဝန်မယူပါ။ \ No newline at end of file + + + + diff --git a/translations/ne/00-course-setup/01-setup-cloud.md b/translations/ne/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..ea651714a --- /dev/null +++ b/translations/ne/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/ne/00-course-setup/02-setup-local.md b/translations/ne/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..82b85d80b --- /dev/null +++ b/translations/ne/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/ne/00-course-setup/03-providers.md b/translations/ne/00-course-setup/03-providers.md new file mode 100644 index 000000000..2d5ea43f4 --- /dev/null +++ b/translations/ne/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/ne/00-course-setup/README.md b/translations/ne/00-course-setup/README.md index eb6a71700..fa35b5620 100644 --- a/translations/ne/00-course-setup/README.md +++ b/translations/ne/00-course-setup/README.md @@ -1,227 +1,12 @@ - -# यस कोर्ससँग सुरु गर्दै - -हामी तपाईंलाई यो कोर्स सुरु गर्न र Generative AI सँग के बनाउन प्रेरित हुनुहुन्छ भनेर हेर्न पाउँदा धेरै उत्साहित छौं! - -तपाईंको सफलताको सुनिश्चितताका लागि, यो पृष्ठले सेटअपका चरणहरू, प्राविधिक आवश्यकताहरू, र आवश्यक परेमा सहयोग कहाँ पाउने बारे जानकारी दिन्छ। - -## सेटअपका चरणहरू - -यो कोर्स लिन सुरु गर्न, तपाईंले तलका चरणहरू पूरा गर्नुपर्नेछ। - -### १. यो रिपो फोर्क गर्नुहोस् - -[Fork this entire repo](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) आफ्नो GitHub खातामा फोर्क गर्नुहोस् ताकि तपाईं कुनै पनि कोड परिवर्तन गर्न र चुनौतीहरू पूरा गर्न सक्नुहुनेछ। तपाईंले यो रिपोलाई [star (🌟)](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) पनि गर्न सक्नुहुन्छ जसले यसलाई र सम्बन्धित रिपोहरूलाई सजिलै फेला पार्न मद्दत गर्छ। - -### २. कोडस्पेस सिर्जना गर्नुहोस् - -कोड चलाउँदा कुनै निर्भरता समस्या नआओस् भनेर, हामी यो कोर्स [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst) मा चलाउन सिफारिस गर्छौं। - -यो तपाईंले फोर्क गरेको रिपोमा `Code` विकल्प छानेर र **Codespaces** विकल्प चयन गरेर सिर्जना गर्न सक्नुहुन्छ। - -![Dialog showing buttons to create a codespace](../../../00-course-setup/images/who-will-pay.webp) - -### ३. तपाईंका API कुञ्जीहरू सुरक्षित राख्ने - -कुनै पनि प्रकारको एप्लिकेशन बनाउँदा तपाईंका API कुञ्जीहरू सुरक्षित राख्नु महत्त्वपूर्ण हुन्छ। हामी सिफारिस गर्छौं कि तपाईंले आफ्नो कोडमा सिधै API कुञ्जीहरू राख्नु हुँदैन। ती विवरणहरू सार्वजनिक रिपोमा कमिट गर्दा सुरक्षा समस्या र खराब उद्देश्यले प्रयोग गर्दा अनावश्यक खर्च हुन सक्छ। - -यहाँ Python का लागि `.env` फाइल कसरी बनाउने र `GITHUB_TOKEN` कसरी थप्ने भन्ने चरण-दर-चरण मार्गदर्शन छ: - -1. **आफ्नो प्रोजेक्ट डाइरेक्टरीमा जानुहोस्**: टर्मिनल वा कमाण्ड प्रम्प्ट खोल्नुहोस् र आफ्नो प्रोजेक्टको मूल डाइरेक्टरीमा जानुहोस् जहाँ तपाईं `.env` फाइल बनाउन चाहनुहुन्छ। - - ```bash - cd path/to/your/project - ``` - -2. **`.env` फाइल बनाउनुहोस्**: आफ्नो मनपर्ने टेक्स्ट एडिटर प्रयोग गरेर `.env` नामको नयाँ फाइल बनाउनुहोस्। कमाण्ड लाइनमा, तपाईं `touch` (Unix आधारित सिस्टममा) वा `echo` (Windows मा) प्रयोग गर्न सक्नुहुन्छ: - - Unix आधारित सिस्टमहरू: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **`.env` फाइल सम्पादन गर्नुहोस्**: `.env` फाइललाई टेक्स्ट एडिटर (जस्तै VS Code, Notepad++, वा अन्य कुनै एडिटर) मा खोल्नुहोस्। तलको लाइन थप्नुहोस्, जहाँ `your_github_token_here` लाई तपाईंको वास्तविक GitHub टोकनले प्रतिस्थापन गर्नुहोस्: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **फाइल सुरक्षित गर्नुहोस्**: परिवर्तनहरू सुरक्षित गरी एडिटर बन्द गर्नुहोस्। - -5. **`python-dotenv` इन्स्टल गर्नुहोस्**: यदि तपाईंले पहिले इन्स्टल गर्नुभएको छैन भने, `.env` फाइलबाट वातावरणीय भेरिएबलहरू Python एप्लिकेशनमा लोड गर्न `python-dotenv` प्याकेज इन्स्टल गर्नुहोस्। तपाईंले यसलाई `pip` प्रयोग गरेर इन्स्टल गर्न सक्नुहुन्छ: - - ```bash - pip install python-dotenv - ``` - -6. **Python स्क्रिप्टमा वातावरणीय भेरिएबलहरू लोड गर्नुहोस्**: आफ्नो Python स्क्रिप्टमा `python-dotenv` प्याकेज प्रयोग गरेर `.env` फाइलबाट वातावरणीय भेरिएबलहरू लोड गर्नुहोस्: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -यति भयो! तपाईंले सफलतापूर्वक `.env` फाइल बनाउनु भयो, GitHub टोकन थप्नुभयो, र यसलाई आफ्नो Python एप्लिकेशनमा लोड गर्नुभयो। - -## आफ्नो कम्प्युटरमा स्थानीय रूपमा कसरी चलाउने - -तपाईंको कम्प्युटरमा कोड स्थानीय रूपमा चलाउन, तपाईंले केही संस्करणको [Python इन्स्टल गर्नुपर्नेछ](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst)। - -त्यसपछि रिपो प्रयोग गर्न, तपाईंले यसलाई क्लोन गर्नुपर्नेछ: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -सबै कुरा तयार भएपछि, तपाईं सुरु गर्न सक्नुहुन्छ! - -## वैकल्पिक चरणहरू - -### Miniconda इन्स्टल गर्दै - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) हल्का तौलको इन्स्टलर हो जसले [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python, र केही प्याकेजहरू इन्स्टल गर्न मद्दत गर्छ। -Conda आफैं एक प्याकेज म्यानेजर हो, जसले विभिन्न Python [**भर्चुअल वातावरणहरू**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) र प्याकेजहरू सेटअप र स्विच गर्न सजिलो बनाउँछ। यसले `pip` बाट उपलब्ध नभएका प्याकेजहरू इन्स्टल गर्न पनि सहयोग गर्छ। - -तपाईं [MiniConda इन्स्टलेशन गाइड](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) अनुसरण गरेर यसलाई सेटअप गर्न सक्नुहुन्छ। - -Miniconda इन्स्टल भएपछि, तपाईंले [repository](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) क्लोन गर्नुपर्नेछ (यदि पहिले गर्नुभएको छैन भने)। - -अर्को, तपाईंले भर्चुअल वातावरण बनाउनुपर्नेछ। Conda प्रयोग गरेर यो गर्न, नयाँ वातावरण फाइल (_environment.yml_) बनाउनुहोस्। यदि तपाईं Codespaces प्रयोग गर्दै हुनुहुन्छ भने, यो `.devcontainer` डाइरेक्टरी भित्र बनाउनुहोस्, अर्थात् `.devcontainer/environment.yml`। - -तलको स्निपेटले आफ्नो वातावरण फाइल भर्नुहोस्: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -यदि तपाईंलाई Conda प्रयोग गर्दा त्रुटि आउँछ भने, तपाईं टर्मिनलमा तलको कमाण्ड प्रयोग गरेर Microsoft AI Libraries म्यानुअली इन्स्टल गर्न सक्नुहुन्छ। - -``` -conda install -c microsoft azure-ai-ml -``` - -वातावरण फाइलले हामीलाई चाहिने निर्भरता निर्दिष्ट गर्छ। `` तपाईंले आफ्नो Conda वातावरणको लागि प्रयोग गर्न चाहेको नाम हो, र `` तपाईंले प्रयोग गर्न चाहेको Python को संस्करण हो, उदाहरणका लागि, `3` Python को पछिल्लो मुख्य संस्करण हो। - -त्यसपछि, तपाईंले तलका कमाण्डहरू चलाएर आफ्नो Conda वातावरण बनाउन सक्नुहुन्छ: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -यदि कुनै समस्या आएमा [Conda वातावरण गाइड](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst) हेर्नुहोस्। - -### Visual Studio Code लाई Python सपोर्ट एक्सटेन्सनसहित प्रयोग गर्दै - -हामी यो कोर्सका लागि [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) एडिटरलाई [Python सपोर्ट एक्सटेन्सन](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) सहित प्रयोग गर्न सिफारिस गर्छौं। यो सिफारिस हो, अनिवार्य होइन। - -> **Note**: VS Code मा कोर्स रिपो खोल्दा, तपाईंले प्रोजेक्टलाई कन्टेनर भित्र सेटअप गर्ने विकल्प पाउनुहुन्छ। यो कोर्स रिपो भित्रको [विशेष `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) डाइरेक्टरीको कारण हो। यसबारे पछि थप जानकारी हुनेछ। - -> **Note**: जब तपाईंले रिपो क्लोन गरी VS Code मा खोल्नुहुन्छ, यसले तपाईंलाई Python सपोर्ट एक्सटेन्सन इन्स्टल गर्न सुझाव दिनेछ। - -> **Note**: यदि VS Code ले रिपो कन्टेनरमा पुनः खोल्न सुझाव दियो भने, स्थानीय रूपमा इन्स्टल गरिएको Python प्रयोग गर्न यो अनुरोध अस्वीकार गर्नुहोस्। - -### ब्राउजरमा Jupyter प्रयोग गर्दै - -तपाईंले [Jupyter वातावरण](https://jupyter.org?WT.mc_id=academic-105485-koreyst) सिधै आफ्नो ब्राउजरमा प्रयोग गरेर पनि प्रोजेक्टमा काम गर्न सक्नुहुन्छ। क्लासिक Jupyter र [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) दुवैले स्वतः पूर्ति, कोड हाइलाइटिङ जस्ता सुविधाहरू सहित राम्रो विकास वातावरण प्रदान गर्छन्। - -स्थानीय रूपमा Jupyter सुरु गर्न, टर्मिनल/कमाण्ड लाइनमा जानुहोस्, कोर्स डाइरेक्टरीमा नेभिगेट गर्नुहोस्, र निम्न कमाण्ड चलाउनुहोस्: - -```bash -jupyter notebook -``` - -वा - -```bash -jupyterhub -``` - -यसले Jupyter इन्स्ट्यान्स सुरु गर्नेछ र पहुँच गर्न URL कमाण्ड लाइन विन्डोमा देखाइनेछ। - -URL पहुँच गरेपछि, तपाईंले कोर्सको रूपरेखा देख्नुहुनेछ र कुनै पनि `*.ipynb` फाइलमा जान सक्नुहुनेछ। उदाहरणका लागि, `08-building-search-applications/python/oai-solution.ipynb`। - -### कन्टेनरमा चलाउने - -आफ्नो कम्प्युटर वा Codespace मा सबै कुरा सेटअप गर्ने विकल्पको सट्टा, तपाईं [कन्टेनर](../../../00-course-setup/) प्रयोग गर्न सक्नुहुन्छ। कोर्स रिपो भित्रको विशेष `.devcontainer` फोल्डरले VS Code लाई प्रोजेक्ट कन्टेनर भित्र सेटअप गर्न सक्षम बनाउँछ। Codespaces बाहेक, यसका लागि Docker इन्स्टल गर्नुपर्नेछ र यो केही काम लाग्ने भएकाले हामी यो अनुभव भएका प्रयोगकर्तालाई मात्र सिफारिस गर्छौं। - -GitHub Codespaces प्रयोग गर्दा तपाईंका API कुञ्जीहरू सुरक्षित राख्नको लागि Codespace Secrets प्रयोग गर्नु उत्तम तरिका हो। कृपया [Codespaces secrets management](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) गाइड अनुसरण गर्नुहोस्। - -## पाठहरू र प्राविधिक आवश्यकताहरू - -कोर्समा ६ वटा अवधारणा पाठहरू र ६ वटा कोडिङ पाठहरू छन्। - -कोडिङ पाठहरूका लागि, हामी Azure OpenAI Service प्रयोग गर्दैछौं। तपाईंलाई Azure OpenAI सेवा र API कुञ्जीको पहुँच आवश्यक पर्छ। तपाईं [यो आवेदन पूरा गरेर](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst) पहुँचका लागि आवेदन दिन सक्नुहुन्छ। - -आवेदन प्रक्रिया पूरा नभएसम्म, प्रत्येक कोडिङ पाठसँग `README.md` फाइल पनि हुन्छ जहाँ तपाईं कोड र आउटपुट हेर्न सक्नुहुन्छ। - -## Azure OpenAI सेवा पहिलो पटक प्रयोग गर्दा - -यदि तपाईं Azure OpenAI सेवा पहिलो पटक प्रयोग गर्दै हुनुहुन्छ भने, कृपया [Azure OpenAI Service स्रोत कसरी सिर्जना र डिप्लोय गर्ने](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) गाइड अनुसरण गर्नुहोस्। - -## OpenAI API पहिलो पटक प्रयोग गर्दा - -यदि तपाईं OpenAI API पहिलो पटक प्रयोग गर्दै हुनुहुन्छ भने, कृपया [Interface कसरी सिर्जना र प्रयोग गर्ने](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) गाइड अनुसरण गर्नुहोस्। - -## अन्य सिक्नेहरूलाई भेट्नुहोस् - -हामीले हाम्रो आधिकारिक [AI Community Discord server](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) मा अन्य सिक्नेहरूलाई भेट्नका लागि च्यानलहरू बनाएका छौं। यो समान सोच भएका उद्यमी, निर्माताहरू, विद्यार्थीहरू, र Generative AI मा स्तर बढाउन चाहनेहरूका लागि नेटवर्किङ गर्ने राम्रो माध्यम हो। - -[![Join discord channel](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -प्रोजेक्ट टोली पनि यस Discord सर्भरमा हुनेछ र सिक्नेहरूलाई सहयोग गर्नेछ। - -## योगदान गर्नुहोस् - -यो कोर्स खुला स्रोत पहल हो। यदि तपाईंले सुधारका क्षेत्रहरू वा समस्याहरू देख्नुभयो भने, कृपया [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) सिर्जना गर्नुहोस् वा [GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) लग गर्नुहोस्। - -प्रोजेक्ट टोली सबै योगदानहरू ट्र्याक गर्नेछ। खुला स्रोतमा योगदान गर्नु Generative AI मा आफ्नो करियर बनाउनको लागि अद्भुत तरिका हो। - -धेरै योगदानहरूका लागि तपाईंले Contributor License Agreement (CLA) मा सहमति जनाउनु पर्ने हुन्छ जसले तपाईंले आफ्नो योगदान प्रयोग गर्ने अधिकार हामीलाई दिनुभएको छ भनी पुष्टि गर्छ। विवरणका लागि [CLA, Contributor License Agreement वेबसाइट](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst) हेर्नुहोस्। - -महत्त्वपूर्ण: यस रिपोमा अनुवाद गर्दा कृपया मेसिन अनुवाद प्रयोग नगर्नुहोस्। हामी अनुवादहरू समुदायमार्फत जाँच गर्नेछौं, त्यसैले कृपया मात्र तपाईंलाई राम्रोसँग आउने भाषाहरूमा अनुवादका लागि स्वयंसेवक बन्नुहोस्। - -जब तपाईंले Pull Request पेश गर्नुहुन्छ, CLA-bot ले स्वचालित रूपमा तपाईंलाई CLA आवश्यक छ कि छैन निर्धारण गर्नेछ र PR लाई उपयुक्त रूपमा चिन्ह लगाउनेछ (जस्तै लेबल, टिप्पणी)। बोटले दिएको निर्देशनहरू पालना गर्नुहोस्। तपाईंले यो प्रक्रिया सबै रिपोहरूमा एक पटक मात्र गर्नु पर्नेछ। - -यस प्रोजेक्टले [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst) अपनाएको छ। थप जानकारीका लागि Code of Conduct FAQ पढ्नुहोस् वा कुनै प्रश्न वा टिप्पणीका लागि [Email opencode](opencode@microsoft.com) मा सम्पर्क गर्नुहोस्। - -## सुरु गरौं - -अब तपाईंले यो कोर्स पूरा गर्न आवश्यक चरणहरू पूरा गर्नुभयो, सुरु गरौं [Generative AI र LLMs को परिचय](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) बाट। - -**अस्वीकरण**: -यो दस्तावेज AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) प्रयोग गरी अनुवाद गरिएको हो। हामी शुद्धताका लागि प्रयासरत छौं भने पनि, कृपया ध्यान दिनुहोस् कि स्वचालित अनुवादमा त्रुटि वा अशुद्धता हुन सक्छ। मूल दस्तावेज यसको मूल भाषामा नै अधिकारिक स्रोत मानिनु पर्छ। महत्वपूर्ण जानकारीका लागि व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न कुनै पनि गलतफहमी वा गलत व्याख्याका लागि हामी जिम्मेवार छैनौं। \ No newline at end of file + + + + diff --git a/translations/ne/00-course-setup/SETUP.md b/translations/ne/00-course-setup/SETUP.md deleted file mode 100644 index 30f4f8585..000000000 --- a/translations/ne/00-course-setup/SETUP.md +++ /dev/null @@ -1,152 +0,0 @@ - -# तपाईँको विकास वातावरण सेटअप गर्नुहोस् - -हामीले यो रिपोजिटरी र कोर्सलाई [development container](https://containers.dev?WT.mc_id=academic-105485-koreyst) सँग सेटअप गरेका छौं जसले Python3, .NET, Node.js र Java विकासलाई समर्थन गर्ने युनिभर्सल रनटाइम प्रदान गर्छ। सम्बन्धित कन्फिगरेसन `devcontainer.json` फाइलमा परिभाषित गरिएको छ जुन यो रिपोजिटरीको रुटमा रहेको `.devcontainer/` फोल्डरमा छ। - -डेभ कन्टेनर सक्रिय गर्न, यसलाई [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (क्लाउड-होस्टेड रनटाइमका लागि) वा [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (लोकल डिभाइस-होस्टेड रनटाइमका लागि) मा सुरु गर्नुहोस्। VS Code भित्र डेभ कन्टेनर कसरी काम गर्छ भन्ने बारे थप जानकारीका लागि [यो डकुमेन्टेशन](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) पढ्नुहोस्। - -> [!TIP] -> हामी GitHub Codespaces प्रयोग गर्न सिफारिस गर्छौं किनभने यसले कम प्रयासमा छिटो सुरु गर्न मद्दत गर्छ। यसले व्यक्तिगत खाताहरूका लागि उदार [निःशुल्क प्रयोग कोटा](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) प्रदान गर्छ। आफ्नो कोटा अधिकतम प्रयोग गर्न निष्क्रिय codespaces लाई रोक्न वा मेटाउन [timeouts](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) कन्फिगर गर्नुहोस्। - - -## १. असाइनमेन्टहरू चलाउने तरिका - -हरेक पाठमा _वैकल्पिक_ असाइनमेन्टहरू हुनेछन् जुन Python, .NET/C#, Java र JavaScript/TypeScript जस्ता एक वा बढी प्रोग्रामिङ भाषाहरूमा प्रदान गरिन सक्छन्। यस खण्डले ती असाइनमेन्टहरू कसरी चलाउने भन्ने सामान्य मार्गदर्शन दिन्छ। - -### १.१ Python असाइनमेन्टहरू - -Python असाइनमेन्टहरू एप्लिकेसनहरू (`.py` फाइलहरू) वा Jupyter नोटबुकहरू (`.ipynb` फाइलहरू) को रूपमा प्रदान गरिन्छ। -- नोटबुक चलाउन, यसलाई Visual Studio Code मा खोल्नुहोस्, त्यसपछि माथि दायाँतिर रहेको _Select Kernel_ मा क्लिक गरी देखाइएको डिफल्ट Python 3 विकल्प छान्नुहोस्। अब तपाईं _Run All_ गरेर नोटबुक चलाउन सक्नुहुन्छ। -- कमाण्ड लाइनबाट Python एप्लिकेसनहरू चलाउन, असाइनमेन्ट-विशेष निर्देशनहरू पालना गर्नुहोस् जसले सही फाइलहरू छान्न र आवश्यक आर्गुमेन्टहरू प्रदान गर्न मद्दत गर्छ। - -## २. प्रदायकहरू कन्फिगर गर्ने तरिका - -असाइनमेन्टहरू **सक्छन्** एक वा बढी Large Language Model (LLM) डिप्लोयमेन्टहरूलाई OpenAI, Azure वा Hugging Face जस्ता समर्थित सेवा प्रदायकमार्फत काम गर्न सेटअप गरिएका हुन। यीले हामीलाई प्रोग्रामिङमार्फत पहुँच गर्न सकिने _होस्टेड एन्डपोइन्ट_ (API) प्रदान गर्छन् जुन सही प्रमाणपत्र (API कुञ्जी वा टोकन) सँग पहुँचयोग्य हुन्छ। यस कोर्समा हामी यी प्रदायकहरूलाई छलफल गर्छौं: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) जसमा विभिन्न मोडेलहरू छन्, जसमध्ये मुख्य GPT सिरिज पनि समावेश छ। - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) जसले OpenAI मोडेलहरूलाई उद्यम स्तरको तयारीका साथ प्रदान गर्छ। - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) खुला स्रोत मोडेलहरू र इन्फरेन्स सर्भरका लागि। - -**यी अभ्यासहरूका लागि तपाईंले आफ्नै खाता प्रयोग गर्नुपर्नेछ**। असाइनमेन्टहरू वैकल्पिक छन्, त्यसैले तपाईं आफ्नो रुचि अनुसार एक, सबै वा कुनै पनि प्रदायक सेटअप गर्न सक्नुहुन्छ। साइनअपका लागि केही मार्गदर्शन: - -| साइनअप | लागत | API कुञ्जी | प्लेग्राउन्ड | टिप्पणीहरू | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst)| [मूल्य निर्धारण](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst)| [प्रोजेक्ट-आधारित](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [नो-कोड, वेब](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | धेरै मोडेलहरू उपलब्ध छन् | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst)| [मूल्य निर्धारण](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst)| [SDK क्विकस्टार्ट](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst)| [स्टुडियो क्विकस्टार्ट](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [पहिले आवेदन गर्नुपर्छ](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst)| -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [मूल्य निर्धारण](https://huggingface.co/pricing) | [एक्सेस टोकनहरू](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst)| [Hugging Chat मा सीमित मोडेलहरू छन्](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -यो रिपोजिटरीलाई विभिन्न प्रदायकहरूसँग प्रयोग गर्न _कन्फिगर_ गर्न तलका निर्देशनहरू पालना गर्नुहोस्। कुनै असाइनमेन्टले विशेष प्रदायक आवश्यक परेमा त्यसको फाइलनाममा यी मध्ये एक ट्याग हुनेछ: - - `aoai` - Azure OpenAI एन्डपोइन्ट र कुञ्जी आवश्यक - - `oai` - OpenAI एन्डपोइन्ट र कुञ्जी आवश्यक - - `hf` - Hugging Face टोकन आवश्यक - -तपाईं एक, कुनै पनि वा सबै प्रदायकहरू कन्फिगर गर्न सक्नुहुन्छ। सम्बन्धित असाइनमेन्टहरू प्रमाणपत्र नभएमा त्रुटि देखाउनेछन्। - -### २.१ `.env` फाइल बनाउने - -हामी मान्छौं तपाईंले माथिको मार्गदर्शन पढिसक्नुभएको छ र सम्बन्धित प्रदायकसँग साइन अप गरी आवश्यक प्रमाणपत्र (API_KEY वा टोकन) प्राप्त गर्नुभएको छ। Azure OpenAI को मामलामा, हामी मान्छौं तपाईंले Azure OpenAI सेवा (एन्डपोइन्ट) को मान्य डिप्लोयमेन्ट पनि गर्नुभएको छ र कम्तीमा एउटा GPT मोडेल च्याट कम्प्लीसनका लागि डिप्लोय गरिएको छ। - -अर्को चरण तपाईंको **लोकल वातावरण भेरिएबलहरू** यसरी कन्फिगर गर्नु हो: - - -1. रुट फोल्डरमा `.env.copy` नामको फाइल खोज्नुहोस् जसको सामग्री यस प्रकारको हुनुपर्छ: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. तलको कमाण्ड प्रयोग गरी त्यो फाइललाई `.env` मा कपी गर्नुहोस्। यो फाइल _gitignore_ गरिएको छ, जसले गोप्य जानकारी सुरक्षित राख्छ। - - ```bash - cp .env.copy .env - ``` - -3. मानहरू भर्नुहोस् (दायाँपट्टि रहेको प्लेसहोल्डरहरूलाई प्रतिस्थापन गर्नुहोस्) जुन अर्को खण्डमा वर्णन गरिएको छ। - -3. (वैकल्पिक) यदि तपाईं GitHub Codespaces प्रयोग गर्नुहुन्छ भने, तपाईंले वातावरण भेरिएबलहरूलाई यस रिपोजिटरीसँग सम्बन्धित _Codespaces secrets_ को रूपमा सुरक्षित गर्न सक्नुहुन्छ। त्यस अवस्थामा, तपाईंलाई लोकल `.env` फाइल सेटअप गर्न आवश्यक पर्दैन। **तर, यो विकल्प केवल GitHub Codespaces प्रयोग गर्दा मात्र काम गर्छ।** Docker Desktop प्रयोग गर्दा तपाईंले `.env` फाइल सेटअप गर्नै पर्नेछ। - - -### २.२ `.env` फाइल भर्नुहोस् - -भेरिएबल नामहरू के जनाउँछन् भनेर छिटो बुझौं: - -| भेरिएबल | विवरण | -| :--- | :--- | -| HUGGING_FACE_API_KEY | तपाईंले आफ्नो प्रोफाइलमा सेटअप गरेको प्रयोगकर्ता पहुँच टोकन | -| OPENAI_API_KEY | गैर-Azure OpenAI एन्डपोइन्टहरूका लागि सेवा प्रयोग गर्ने अधिकृत कुञ्जी | -| AZURE_OPENAI_API_KEY | Azure OpenAI सेवा प्रयोग गर्ने अधिकृत कुञ्जी | -| AZURE_OPENAI_ENDPOINT | Azure OpenAI स्रोतको डिप्लोय गरिएको एन्डपोइन्ट | -| AZURE_OPENAI_DEPLOYMENT | _टेक्स्ट जेनेरेसन_ मोडेल डिप्लोयमेन्ट एन्डपोइन्ट | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | _टेक्स्ट एम्बेडिङ्स_ मोडेल डिप्लोयमेन्ट एन्डपोइन्ट | -| | | - -ध्यान दिनुहोस्: अन्तिम दुई Azure OpenAI भेरिएबलहरूले क्रमशः च्याट कम्प्लीसन (टेक्स्ट जेनेरेसन) र भेक्टर सर्च (एम्बेडिङ्स) का लागि डिफल्ट मोडेल जनाउँछन्। तिनीहरू सेटअप गर्ने निर्देशनहरू सम्बन्धित असाइनमेन्टहरूमा दिइनेछन्। - - -### २.३ Azure कन्फिगर गर्ने: पोर्टलबाट - -Azure OpenAI एन्डपोइन्ट र कुञ्जी मानहरू [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) मा पाइन्छन्, त्यसैले त्यहाँबाट सुरु गरौं। - -1. [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) मा जानुहोस् -1. साइडबार (बायाँ मेनु) मा रहेको **Keys and Endpoint** विकल्पमा क्लिक गर्नुहोस्। -1. **Show Keys** मा क्लिक गर्नुहोस् - तपाईंले KEY 1, KEY 2 र Endpoint देख्नुहुनेछ। -1. AZURE_OPENAI_API_KEY को लागि KEY 1 मान प्रयोग गर्नुहोस्। -1. AZURE_OPENAI_ENDPOINT को लागि Endpoint मान प्रयोग गर्नुहोस्। - -अब हामीले डिप्लोय गरेका विशिष्ट मोडेलहरूको एन्डपोइन्टहरू चाहिन्छ। - -1. Azure OpenAI स्रोतको साइडबार (बायाँ मेनु) मा रहेको **Model deployments** विकल्पमा क्लिक गर्नुहोस्। -1. गन्तव्य पृष्ठमा, **Manage Deployments** मा क्लिक गर्नुहोस्। - -यसले तपाईंलाई Azure OpenAI Studio वेबसाइटमा लैजान्छ, जहाँ हामीले तल वर्णन गरिएका अन्य मानहरू फेला पार्नेछौं। - - -### २.४ Azure कन्फिगर गर्ने: स्टुडियोबाट - -1. माथि वर्णन अनुसार आफ्नो स्रोतबाट [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) मा जानुहोस्। -1. हाल डिप्लोय भएका मोडेलहरू हेर्न **Deployments** ट्याब (साइडबार, बायाँ) मा क्लिक गर्नुहोस्। -1. यदि तपाईंको चाहिएको मोडेल डिप्लोय गरिएको छैन भने, **Create new deployment** प्रयोग गरी डिप्लोय गर्नुहोस्। -1. तपाईंलाई _text-generation_ मोडेल चाहिन्छ - हामी सिफारिस गर्छौं: **gpt-35-turbo** -1. तपाईंलाई _text-embedding_ मोडेल चाहिन्छ - हामी सिफारिस गर्छौं: **text-embedding-ada-002** - -अब वातावरण भेरिएबलहरू अपडेट गर्नुहोस् ताकि _Deployment name_ प्रतिबिम्बित होस्। यो सामान्यतया मोडेल नामकै समान हुन्छ जबसम्म तपाईंले यसलाई स्पष्ट रूपमा परिवर्तन गर्नु भएको छैन। उदाहरणका लागि, तपाईंले यस्तो हुन सक्छ: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**काम सकिएपछि .env फाइल सुरक्षित गर्न नबिर्सनुहोस्**। अब तपाईं फाइलबाट बाहिर निस्कन सक्नुहुन्छ र नोटबुक चलाउने निर्देशनहरूमा फर्कन सक्नुहुन्छ। - - -### २.५ OpenAI कन्फिगर गर्ने: प्रोफाइलबाट - -तपाईंको OpenAI API कुञ्जी तपाईंको [OpenAI खाता](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) मा फेला पार्न सकिन्छ। यदि तपाईंको खाता छैन भने, साइन अप गरी API कुञ्जी बनाउन सक्नुहुन्छ। कुञ्जी पाएपछि, `.env` फाइलमा `OPENAI_API_KEY` भेरिएबल भर्न प्रयोग गर्नुहोस्। - - -### २.६ Hugging Face कन्फिगर गर्ने: प्रोफाइलबाट - -तपाईंको Hugging Face टोकन तपाईंको प्रोफाइलमा [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst) अन्तर्गत फेला पार्न सकिन्छ। यी सार्वजनिक रूपमा पोस्ट वा सेयर नगर्नुहोस्। यसको सट्टा, यस प्रोजेक्टको लागि नयाँ टोकन सिर्जना गरी त्यसलाई `.env` फाइलमा `HUGGING_FACE_API_KEY` भेरिएबलमा राख्नुहोस्। _ध्यान दिनुहोस्:_ यो प्राविधिक रूपमा API कुञ्जी होइन तर प्रमाणीकरणका लागि प्रयोग गरिन्छ, त्यसैले हामीले नामकरण परम्परा कायम राखेका छौं। - -**अस्वीकरण**: -यो दस्तावेज AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) प्रयोग गरी अनुवाद गरिएको हो। हामी शुद्धताका लागि प्रयासरत छौं, तर कृपया ध्यान दिनुहोस् कि स्वचालित अनुवादमा त्रुटि वा अशुद्धता हुन सक्छ। मूल दस्तावेज यसको मूल भाषामा आधिकारिक स्रोत मानिनुपर्छ। महत्वपूर्ण जानकारीका लागि व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न कुनै पनि गलतफहमी वा गलत व्याख्याका लागि हामी जिम्मेवार छैनौं। \ No newline at end of file diff --git a/translations/ne/04-prompt-engineering-fundamentals/README.md b/translations/ne/04-prompt-engineering-fundamentals/README.md index 7a9a26467..e209e37c2 100644 --- a/translations/ne/04-prompt-engineering-fundamentals/README.md +++ b/translations/ne/04-prompt-engineering-fundamentals/README.md @@ -1,455 +1,15 @@ - -# Prompt Engineering Fundamentals - -[![Prompt Engineering Fundamentals](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.ne.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## परिचय -यो मोड्युलले जेनेरेटिभ AI मोडेलहरूमा प्रभावकारी प्रॉम्प्टहरू सिर्जना गर्न आवश्यक आधारभूत अवधारणाहरू र प्रविधिहरू समेट्छ। तपाईंले LLM लाई प्रॉम्प्ट लेख्ने तरिका पनि महत्त्वपूर्ण हुन्छ। सावधानीपूर्वक तयार गरिएको प्रॉम्प्टले राम्रो गुणस्तरको प्रतिक्रिया प्राप्त गर्न सक्छ। तर _प्रॉम्प्ट_ र _प्रॉम्प्ट इन्जिनियरिङ_ जस्ता शब्दहरूले के अर्थ राख्छन्? र म LLM लाई पठाउने प्रॉम्प्ट _इनपुट_ कसरी सुधार्न सक्छु? यी प्रश्नहरूको जवाफ हामी यस अध्याय र अर्कोमा खोज्नेछौं। - -_जेनेरेटिभ AI_ प्रयोगकर्ताका अनुरोधहरूमा नयाँ सामग्री (जस्तै, पाठ, छवि, अडियो, कोड आदि) सिर्जना गर्न सक्षम छ। यसले OpenAI को GPT ("Generative Pre-trained Transformer") श्रृंखलाजस्ता _Large Language Models_ प्रयोग गरेर प्राकृतिक भाषा र कोडमा तालिम प्राप्त गरेर यो हासिल गर्छ। - -प्रयोगकर्ताहरू अब यी मोडेलहरूसँग परिचित तरिकाले जस्तै च्याटमार्फत अन्तरक्रिया गर्न सक्छन्, जसका लागि कुनै प्राविधिक ज्ञान वा तालिम आवश्यक पर्दैन। यी मोडेलहरू _प्रॉम्प्ट-आधारित_ हुन्छन् - प्रयोगकर्ताले टेक्स्ट इनपुट (प्रॉम्प्ट) पठाउँछन् र AI प्रतिक्रिया (completion) प्राप्त गर्छन्। त्यसपछि उनीहरूले "AI सँग च्याट" गर्दै बहु-चरण संवादमा आफ्नो प्रॉम्प्ट सुधार्दै जान सक्छन् जबसम्म प्रतिक्रिया उनीहरूको अपेक्षासँग मेल खान्छ। - -"प्रॉम्प्टहरू" अब जेनेरेटिभ AI एपहरूका लागि मुख्य _प्रोग्रामिङ इन्टरफेस_ बन्न पुगेका छन्, जसले मोडेलहरूलाई के गर्नुपर्छ भनी बताउँछन् र फर्काइने प्रतिक्रियाको गुणस्तरमा प्रभाव पार्छन्। "प्रॉम्प्ट इन्जिनियरिङ" एक तीव्र रूपमा बढ्दो अध्ययन क्षेत्र हो जसले प्रॉम्प्टहरूको _डिजाइन र अनुकूलन_ मा केन्द्रित छ ताकि ठूलो मात्रामा निरन्तर र गुणस्तरीय प्रतिक्रिया प्रदान गर्न सकियोस्। - -## सिकाइका लक्ष्यहरू - -यस पाठमा, हामी प्रॉम्प्ट इन्जिनियरिङ के हो, किन महत्त्वपूर्ण छ, र कसरी हामी कुनै मोडेल र अनुप्रयोग उद्देश्यका लागि प्रभावकारी प्रॉम्प्टहरू तयार पार्न सक्छौं भन्ने सिक्नेछौं। हामी प्रॉम्प्ट इन्जिनियरिङका मुख्य अवधारणाहरू र उत्तम अभ्यासहरू बुझ्नेछौं - र एउटा अन्तरक्रियात्मक Jupyter Notebook "sandbox" वातावरणको बारेमा जान्नेछौं जहाँ यी अवधारणाहरूलाई वास्तविक उदाहरणहरूमा लागू गरिएको देख्न सकिन्छ। - -यस पाठको अन्त्यसम्म हामी सक्षम हुनेछौं: - -1. प्रॉम्प्ट इन्जिनियरिङ के हो र किन महत्त्वपूर्ण छ व्याख्या गर्न। -2. प्रॉम्प्टका घटकहरू के-के हुन् र तिनीहरू कसरी प्रयोग गरिन्छ वर्णन गर्न। -3. प्रॉम्प्ट इन्जिनियरिङका उत्तम अभ्यास र प्रविधिहरू सिक्न। -4. सिकेका प्रविधिहरूलाई वास्तविक उदाहरणहरूमा OpenAI endpoint प्रयोग गरी लागू गर्न। - -## मुख्य शब्दहरू - -प्रॉम्प्ट इन्जिनियरिङ: AI मोडेलहरूलाई इच्छित आउटपुट उत्पादन गर्न मार्गदर्शन गर्न इनपुटहरू डिजाइन र परिमार्जन गर्ने अभ्यास। -टोकनाइजेशन: टेक्स्टलाई साना इकाइहरूमा (टोकनहरू) रूपान्तरण गर्ने प्रक्रिया, जसलाई मोडेलले बुझ्न र प्रक्रिया गर्न सक्छ। -इन्स्ट्रक्सन-ट्यून गरिएको LLMs: ती Large Language Models (LLMs) जसलाई विशेष निर्देशनहरूसँग परिमार्जन गरिएको हुन्छ जसले तिनीहरूको प्रतिक्रिया शुद्धता र सान्दर्भिकता सुधार गर्छ। - -## सिकाइ Sandbox - -प्रॉम्प्ट इन्जिनियरिङ हाल कला भन्दा विज्ञान जस्तो छ। यसमा हाम्रो सहज ज्ञान सुधार गर्ने सबैभन्दा राम्रो तरिका भनेको _अधिक अभ्यास_ गर्नु र त्रुटि-र-प्रयास विधि अपनाउनु हो जसले अनुप्रयोग क्षेत्रको विशेषज्ञता र सिफारिस गरिएका प्रविधिहरू तथा मोडेल-विशिष्ट अनुकूलनहरूलाई संयोजन गर्छ। - -यस पाठसँगै आएको Jupyter Notebook ले एउटा _sandbox_ वातावरण प्रदान गर्छ जहाँ तपाईंले सिकेका कुरा अभ्यास गर्न सक्नुहुन्छ - जति बेला चाहनुहुन्छ वा अन्त्यमा कोड चुनौतीको रूपमा। अभ्यासहरू सञ्चालन गर्न तपाईंलाई चाहिन्छ: - -1. **Azure OpenAI API कुञ्जी** - तैनाथ गरिएको LLM को सेवा अन्त बिन्दु। -2. **Python Runtime** - जसमा Notebook चलाउन सकिन्छ। -3. **स्थानीय वातावरण चरहरू** - _[SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) चरणहरू पूरा गरेर तयार हुनुहोस्_। - -Notebook सँग _शुरुवाती_ अभ्यासहरू आउँछन् - तर तपाईंलाई आफ्नै _Markdown_ (वर्णन) र _Code_ (प्रॉम्प्ट अनुरोधहरू) खण्डहरू थप्न प्रोत्साहित गरिन्छ ताकि थप उदाहरणहरू वा विचारहरू प्रयास गर्न सकियोस् र प्रॉम्प्ट डिजाइनमा सहजता बढोस्। - -## चित्रित मार्गदर्शक - -यस पाठले के समेट्छ भन्ने ठूलो तस्वीर पाउन चाहनुहुन्छ? यो चित्रित मार्गदर्शक हेर्नुहोस्, जसले मुख्य विषयहरू र प्रत्येकमा सोच्नुपर्ने मुख्य बुँदाहरूको अनुभूति दिन्छ। पाठको रोडम्यापले तपाईंलाई आधारभूत अवधारणाहरू र चुनौतीहरू बुझ्नबाट सुरु गरी तिनीहरूलाई सम्बोधन गर्न प्रासंगिक प्रॉम्प्ट इन्जिनियरिङ प्रविधिहरू र उत्तम अभ्यासहरूसम्म लैजान्छ। ध्यान दिनुहोस् कि यस मार्गदर्शकको "उन्नत प्रविधिहरू" खण्डले यस पाठ्यक्रमको _अर्को_ अध्यायमा समेटिएको सामग्रीलाई जनाउँछ। - -![Illustrated Guide to Prompt Engineering](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.ne.png) - -## हाम्रो स्टार्टअप - -अब, _यो विषय_ हाम्रो स्टार्टअप मिशनसँग कसरी सम्बन्धित छ भन्ने कुरा गरौं जुन [शिक्षामा AI नवप्रवर्तन ल्याउने](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst) हो। हामी _व्यक्तिगत सिकाइ_ को AI-संचालित अनुप्रयोगहरू विकास गर्न चाहन्छौं - त्यसैले हाम्रो अनुप्रयोगका विभिन्न प्रयोगकर्ताहरूले कसरी प्रॉम्प्ट "डिजाइन" गर्न सक्छन् भनेर सोचौं: - -- **प्रशासकहरू** AI लाई _पाठ्यक्रम डाटामा विश्लेषण गरी कभर नगरेका भागहरू पहिचान गर्न_ भन्न सक्छन्। AI ले परिणामहरू सारांश गर्न वा कोडको माध्यमबाट दृश्यात्मक बनाउन सक्छ। -- **शिक्षकहरू** AI लाई _लक्षित दर्शक र विषयका लागि पाठ योजना तयार गर्न_ भन्न सक्छन्। AI ले निर्दिष्ट ढाँचामा व्यक्तिगत योजना तयार गर्न सक्छ। -- **विद्यार्थीहरू** AI लाई _कठिन विषयमा ट्युटर गर्न_ भन्न सक्छन्। AI ले विद्यार्थीहरूलाई उनीहरूको स्तरअनुसार पाठ, संकेत र उदाहरणहरू प्रदान गरेर मार्गदर्शन गर्न सक्छ। - -यो त केवल सुरुवात हो। [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) हेर्नुहोस् - शिक्षा विशेषज्ञहरूले तयार पारेको खुला स्रोत प्रॉम्प्ट पुस्तकालय - जसले सम्भावनाहरूको व्यापक अनुभूति दिन्छ! _यी प्रॉम्प्टहरूलाई sandbox मा वा OpenAI Playground मा चलाएर के हुन्छ हेर्नुहोस्!_ - - - -## प्रॉम्प्ट इन्जिनियरिङ के हो? - -हामीले यस पाठको सुरुवातमा **प्रॉम्प्ट इन्जिनियरिङ** लाई कुनै मोडेल र उद्देश्यका लागि निरन्तर र गुणस्तरीय प्रतिक्रिया (completion) दिन टेक्स्ट इनपुट (प्रॉम्प्ट) डिजाइन र अनुकूलन गर्ने प्रक्रिया भनेर परिभाषित गर्यौं। यसलाई दुई चरणको प्रक्रिया भनेर सोच्न सकिन्छ: - -- कुनै मोडेल र उद्देश्यका लागि प्रारम्भिक प्रॉम्प्ट _डिजाइन_ गर्नु -- प्रतिक्रियाको गुणस्तर सुधार गर्न प्रॉम्प्टलाई पुनःपुनः _परिमार्जन_ गर्नु - -यो अनिवार्य रूपमा त्रुटि-र-प्रयास प्रक्रिया हो जसमा प्रयोगकर्ताको सहज ज्ञान र प्रयास आवश्यक पर्छ। त्यसैले यो किन महत्त्वपूर्ण छ? त्यस प्रश्नको उत्तर दिन हामीले तीन अवधारणाहरू बुझ्नुपर्छ: - -- _टोकनाइजेशन_ = मोडेलले प्रॉम्प्टलाई कसरी "हेर्छ" -- _बेस LLMs_ = आधारभूत मोडेलले प्रॉम्प्टलाई कसरी "प्रक्रिया" गर्छ -- _इन्स्ट्रक्सन-ट्यून गरिएको LLMs_ = मोडेलले अब कसरी "कार्यहरू" देख्न सक्छ - -### टोकनाइजेशन - -LLM ले प्रॉम्प्टहरूलाई _टोकनहरूको अनुक्रम_ को रूपमा हेर्छ जहाँ फरक मोडेलहरू (वा मोडेलका भिन्न संस्करणहरू) एउटै प्रॉम्प्टलाई फरक तरिकाले टोकनाइज गर्न सक्छन्। किनभने LLM हरू टोकनहरूमा तालिम पाएका हुन्छन् (कच्चा टेक्स्टमा होइन), प्रॉम्प्टहरू कसरी टोकनाइज हुन्छन् भन्ने कुरा उत्पन्न प्रतिक्रियाको गुणस्तरमा प्रत्यक्ष प्रभाव पार्छ। - -टोकनाइजेशन कसरी काम गर्छ भन्ने सहज ज्ञान पाउन, तल देखाइएको [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) जस्ता उपकरणहरू प्रयोग गरेर हेर्नुहोस्। आफ्नो प्रॉम्प्ट कपी गर्नुहोस् - र कसरी टोकनहरूमा रूपान्तरण हुन्छ हेर्नुहोस्, विशेष गरी खाली ठाउँ र विराम चिह्नहरू कसरी ह्यान्डल हुन्छन् ध्यान दिनुहोस्। यो उदाहरण पुरानो LLM (GPT-3) देखाउँछ - नयाँ मोडेलमा प्रयास गर्दा फरक परिणाम आउन सक्छ। - -![Tokenization](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.ne.png) - -### अवधारणा: आधारभूत मोडेलहरू - -प्रॉम्प्ट टोकनाइज भएपछि, ["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (वा Foundation मोडेल) को मुख्य कार्य त्यो अनुक्रममा अर्को टोकनको भविष्यवाणी गर्नु हो। LLM हरू विशाल पाठ डेटासेटमा तालिम पाएका हुनाले टोकनहरू बीचको सांख्यिक सम्बन्ध राम्रोसँग बुझ्छन् र विश्वासका साथ भविष्यवाणी गर्न सक्छन्। उनीहरूले प्रॉम्प्ट वा टोकनका _अर्थ_ बुझ्दैनन्; केवल एउटा ढाँचा देख्छन् जसलाई उनीहरूले आफ्नो अर्को भविष्यवाणीले "पूरा" गर्न सक्छन्। प्रयोगकर्ताको हस्तक्षेप वा पूर्वनिर्धारित सर्तले रोक्दासम्म उनीहरूले अनुक्रमको भविष्यवाणी जारी राख्न सक्छन्। - -प्रॉम्प्ट-आधारित completion कसरी काम गर्छ हेर्न चाहनुहुन्छ? माथिको प्रॉम्प्ट Azure OpenAI Studio को [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) मा डिफल्ट सेटिङ्ससहित प्रविष्ट गर्नुहोस्। प्रणालीले प्रॉम्प्टलाई सूचना अनुरोधको रूपमा व्यवहार गर्ने गरी कन्फिगर गरिएको छ - त्यसैले तपाईंले सान्दर्भिक प्रतिक्रिया देख्नुहुनेछ। - -तर यदि प्रयोगकर्ताले कुनै विशेष मापदण्ड वा कार्य उद्देश्य पूरा गर्ने कुरा हेर्न चाहन्थ्यो भने? त्यहीँ _इन्स्ट्रक्सन-ट्यून गरिएको_ LLM हरूको भूमिका आउँछ। - -![Base LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.ne.png) - -### अवधारणा: इन्स्ट्रक्सन-ट्यून गरिएको LLMs - -[Instruction Tuned LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) ले आधारभूत मोडेलबाट सुरु गरी उदाहरणहरू वा इनपुट/आउटपुट जोडीहरू (जस्तै, बहु-चरण "सन्देशहरू") सँग परिमार्जन गर्छ जसमा स्पष्ट निर्देशनहरू हुन सक्छन् - र AI को प्रतिक्रिया त्यो निर्देशन पालना गर्ने प्रयास गर्छ। - -यसले Reinforcement Learning with Human Feedback (RLHF) जस्ता प्रविधिहरू प्रयोग गर्छ जसले मोडेललाई _निर्देशनहरू पालना गर्न_ र _प्रतिक्रियाबाट सिक्न_ तालिम दिन्छ ताकि व्यावहारिक अनुप्रयोगहरूका लागि उपयुक्त र प्रयोगकर्ताका उद्देश्यहरूसँग बढी सान्दर्भिक प्रतिक्रिया उत्पादन गर्न सकोस्। - -अब प्रयास गरौं - माथिको प्रॉम्प्टमा फर्केर _system message_ लाई तलको निर्देशन सन्दर्भको रूपमा परिवर्तन गर्नुहोस्: - -> _तपाईंलाई दिइएको सामग्रीलाई दोस्रो कक्षाको विद्यार्थीका लागि सारांश गर्नुहोस्। परिणामलाई ३-५ बुलेट पोइन्टहरू सहित एक अनुच्छेदमा राख्नुहोस्।_ - -हेर्नुहोस्, परिणाम अब चाहिएको लक्ष्य र ढाँचामा अनुकूलित छ। शिक्षकले यो प्रतिक्रिया आफ्नो कक्षाको स्लाइडमा सिधै प्रयोग गर्न सक्छन्। - -![Instruction Tuned LLM Chat Completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.ne.png) - -## हामीलाई किन प्रॉम्प्ट इन्जिनियरिङ चाहिन्छ? - -अब हामीले प्रॉम्प्टहरू LLM हरूले कसरी प्रक्रिया गर्छन् थाहा पाएपछि, प्रॉम्प्ट इन्जिनियरिङ किन आवश्यक छ भन्ने कुरा गरौं। यसको जवाफ वर्तमान LLM हरूले केही चुनौतीहरू प्रस्तुत गर्ने तथ्यमा छ जसले _विश्वसनीय र निरन्तर completion_ प्राप्त गर्न प्रॉम्प्ट निर्माण र अनुकूलनमा प्रयास नगरे सजिलो हुँदैन। उदाहरणका लागि: - -1. **मोडेल प्रतिक्रियाहरू स्टोकास्टिक हुन्छन्।** _उही प्रॉम्प्ट_ फरक मोडेल वा मोडेल संस्करणहरूसँग फरक प्रतिक्रिया दिन सक्छ। र उही मोडेलसँग पनि फरक समयमा फरक परिणाम दिन सक्छ। _प्रॉम्प्ट इन्जिनियरिङ प्रविधिहरूले यी भिन्नताहरूलाई कम गर्न मद्दत गर्छन्_। - -2. **मोडेलहरूले प्रतिक्रिया बनाउँछन्।** मोडेलहरू _ठूलो तर सीमित_ डेटासेटमा तालिम पाएका हुन्छन्, जसको अर्थ तिनीहरूलाई तालिम दायराभन्दा बाहिरका अवधारणाहरूको ज्ञान हुँदैन। त्यसैले तिनीहरूले गलत, काल्पनिक वा ज्ञात तथ्यहरूसँग प्रत्यक्ष विरोधाभासी प्रतिक्रिया उत्पादन गर्न सक्छन्। _प्रॉम्प्ट इन्जिनियरिङले प्रयोगकर्ताहरूलाई यस्तो बनावटहरू पहिचान गर्न र कम गर्न मद्दत गर्छ, जस्तै AI लाई उद्धरण वा तर्क मागेर_। - -3. **मोडेल क्षमताहरू फरक हुन्छन्।** नयाँ मोडेल वा मोडेल पुस्ताहरूमा बढी क्षमताहरू हुन्छन् तर तिनीहरूले लागत र जटिलतामा अनौठा विशेषताहरू र सन्तुलन ल्याउँछन्। _प्रॉम्प्ट इन्जिनियरिङले हामीलाई उत्तम अभ्यास र कार्यप्रवाह विकास गर्न मद्दत गर्छ जसले फरकतालाई लुकाएर मोडेल-विशिष्ट आवश्यकताहरूलाई स्केलेबल र सहज तरिकाले अनुकूलन गर्न सकोस्_। - -यसलाई OpenAI वा Azure OpenAI Playground मा व्यवहारमा हेर्नुहोस्: - -- फरक LLM तैनाथीकरणहरूसँग उही प्रॉम्प्ट प्रयोग गर्नुहोस् (जस्तै, OpenAI, Azure OpenAI, Hugging Face) - के तपाईंले भिन्नता देख्नुभयो? -- उही LLM तैनाथीकरणसँग उही प्रॉम्प्ट बारम्बार प्रयोग गर्नुहोस् (जस्तै, Azure OpenAI playground) - यी भिन्नताहरू कसरी फरक थिए? - -### बनावटहरूको उदाहरण - -यस कोर्समा, हामीले **"fabrication"** शब्द प्रयोग गर्छौं जसले त्यो घटना जनाउँछ जहाँ LLM हरू कहिलेकाहीं आफ्नो तालिम वा अन्य सीमाहरूका कारण तथ्यगत रूपमा गलत जानकारी उत्पादन गर्छन्। तपाईंले यसलाई लोकप्रिय लेखहरू वा अनुसन्धान कागजातहरूमा _"hallucinations"_ भनेर पनि सुन्नुभएको हुन सक्छ। तर हामी दृढतापूर्वक _"fabrication"_ शब्द प्रयोग गर्न सिफारिस गर्छौं ताकि हामीले अनायासै यो व्यवहारलाई मानवजस्तो गुण दिनबाट बच्न सकौं। यसले [Responsible AI guidelines](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) लाई पनि समर्थन गर्छ, जसले केही सन्दर्भहरूमा अपमानजनक वा गैर-समावेशी मानिने शब्दहरू हटाउँछ। - -बनावटहरू कसरी काम गर्छन् भन्ने बुझ्न चाहनुहुन्छ? एउटा प्रॉम्प्ट सोच्नुहोस् जसले AI लाई अवस्थित नभएको विषयको सामग्री सिर्जना गर्न निर्देशन दिन्छ (ताकि त्यो तालिम डेटासेटमा नपाइयोस्)। उदाहरणका लागि - मैले यो प्रॉम्प्ट प्रयास गरें: -# 2076 को मार्टियन युद्धमा पाठ योजना - -## पाठको उद्देश्य -विद्यार्थीहरूले 2076 को मार्टियन युद्धको कारण, घटनाक्रम, र परिणामहरू बुझ्नेछन्। यसले उनीहरूलाई भविष्यको अन्तरिक्ष युद्ध र मानवता र अन्तरिक्षको सम्बन्धमा सोच्न प्रेरित गर्नेछ। - -## पाठको अवधी -४५ मिनेट - -## आवश्यक सामग्री -- 2076 को मार्टियन युद्ध सम्बन्धी चित्रहरू र नक्सा -- भिडियो क्लिपहरू (यदि उपलब्ध छ भने) -- नोटबुक र लेखन सामग्री - -## पाठ योजना - -### परिचय (१० मिनेट) -- मार्टियन युद्ध के हो? संक्षिप्त परिचय दिनुहोस्। -- विद्यार्थीहरूलाई सोध्नुहोस्: "तपाईंलाई किन लाग्छ कि मानिसहरूले मंगल ग्रहमा युद्ध गर्न सक्छन्?" -- युद्धको पृष्ठभूमि र कारणहरू संक्षेपमा व्याख्या गर्नुहोस्। - -### मुख्य भाग (२५ मिनेट) -- युद्धका प्रमुख घटनाहरू क्रमबद्ध रूपमा प्रस्तुत गर्नुहोस्। -- युद्धमा प्रयोग भएका प्रविधिहरू र रणनीतिहरूको चर्चा गर्नुहोस्। -- युद्धले मानवता र मंगल ग्रहमा के प्रभाव पारेको छ भन्ने विषयमा छलफल गर्नुहोस्। -- विद्यार्थीहरूलाई समूहमा विभाजन गरी युद्धका विभिन्न पक्षहरूमा अनुसन्धान गर्न लगाउनुहोस्। - -### निष्कर्ष (१० मिनेट) -- समूहहरूले आफ्नो अनुसन्धान प्रस्तुत गर्ने मौका पाउनुहोस्। -- युद्धबाट सिक्न सकिने पाठहरू र भविष्यका सम्भावित अन्तरिक्ष संघर्षहरूबारे छलफल गर्नुहोस्। -- विद्यार्थीहरूलाई प्रश्न सोध्न र आफ्नो विचार व्यक्त गर्न प्रोत्साहित गर्नुहोस्। - -## गृहकार्य -- विद्यार्थीहरूले 2076 को मार्टियन युद्धमा आधारित एउटा छोटो निबन्ध लेख्नेछन् जसमा उनीहरूले युद्धका कारण र परिणामहरू समेट्नेछन्। - -## अतिरिक्त स्रोतहरू -- मार्टियन युद्ध सम्बन्धी पुस्तकहरू र लेखहरू -- अन्तरिक्ष युद्धको इतिहासमा आधारित डकुमेन्ट्रीहरू - ---- - -**[!IMPORTANT]** यो पाठ योजना विद्यार्थीहरूको रुचि र स्तर अनुसार अनुकूलन गर्न सकिन्छ। -वेब खोजले मलाई देखायो कि मार्टियन युद्धहरूमा काल्पनिक कथाहरू (जस्तै, टेलिभिजन सिरिज वा पुस्तकहरू) थिए – तर २०७६ मा कुनै थिएनन्। सामान्य ज्ञानले पनि भन्छ कि २०७६ _भविष्यमा_ छ र त्यसैले, यसलाई कुनै वास्तविक घटनासँग जोड्न सकिँदैन। - -त्यसैले, जब हामी यो प्रॉम्प्ट विभिन्न LLM प्रदायकहरूसँग चलाउँछौं के हुन्छ? - -> **प्रतिक्रिया १**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.ne.png) - -> **प्रतिक्रिया २**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.ne.png) - -> **प्रतिक्रिया ३**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.ne.png) - -अपेक्षित रूपमा, प्रत्येक मोडेल (वा मोडेल संस्करण) ले थोरै फरक प्रतिक्रिया दिन्छ किनभने यसको स्टोकास्टिक व्यवहार र मोडेल क्षमतामा भिन्नता हुन्छ। उदाहरणका लागि, एउटा मोडेलले ८ कक्षाको दर्शकलाई लक्षित गर्छ भने अर्कोले उच्च विद्यालयको विद्यार्थीलाई मान्छ। तर ती सबै तीन मोडेलहरूले यस्तो प्रतिक्रिया दिएका छन् जसले अनजान प्रयोगकर्तालाई त्यो घटना वास्तविक भएको विश्वास दिलाउन सक्छ। - -प्रॉम्प्ट इन्जिनियरिङ प्रविधिहरू जस्तै _मेटाप्रॉम्प्टिङ_ र _टेम्परेचर कन्फिगरेसन_ ले मोडेलका बनावटहरू केही हदसम्म कम गर्न सक्छन्। नयाँ प्रॉम्प्ट इन्जिनियरिङ _आर्किटेक्चर_ हरूले पनि नयाँ उपकरण र प्रविधिहरूलाई सहज रूपमा प्रॉम्प्ट प्रवाहमा समावेश गर्छन्, जसले यी प्रभावहरूलाई कम गर्न मद्दत गर्छ। - -## केस स्टडी: GitHub Copilot - -यो खण्डलाई समेट्दै हामी वास्तविक संसारका समाधानहरूमा प्रॉम्प्ट इन्जिनियरिङ कसरी प्रयोग हुन्छ भनेर बुझ्न एक केस स्टडी हेरौं: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst)। - -GitHub Copilot तपाईंको "AI जोडी प्रोग्रामर" हो – यो टेक्स्ट प्रॉम्प्टहरूलाई कोड पूरकमा रूपान्तरण गर्छ र तपाईंको विकास वातावरण (जस्तै, Visual Studio Code) मा एकीकृत हुन्छ जसले प्रयोगकर्तालाई सहज अनुभव दिन्छ। तलका ब्लग श्रृंखलामा दस्तावेजित अनुसार, सबैभन्दा प्रारम्भिक संस्करण OpenAI Codex मोडेलमा आधारित थियो – जहाँ इन्जिनियरहरूले छिटो मोडेललाई फाइन-ट्यून गर्न र राम्रो प्रॉम्प्ट इन्जिनियरिङ प्रविधिहरू विकास गर्न आवश्यकतालाई महसुस गरे, जसले कोड गुणस्तर सुधार्न मद्दत गर्यो। जुलाईमा, उनीहरूले [Codex भन्दा अगाडि जाने सुधारिएको AI मोडेल सार्वजनिक गरे](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) जसले अझ छिटो सुझावहरू दिन्छ। - -तिनीहरूको सिकाइ यात्रालाई पछ्याउन तलका पोस्टहरूलाई क्रमबद्ध रूपमा पढ्नुहोस्। - -- **मे २०२३** | [GitHub Copilot तपाईंको कोड बुझ्न अझ राम्रो हुँदैछ](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **मे २०२३** | [GitHub भित्र: GitHub Copilot पछाडि रहेका LLM हरूसँग काम गर्दै](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **जुन २०२३** | [GitHub Copilot का लागि राम्रो प्रॉम्प्टहरू कसरी लेख्ने](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **जुलाई २०२३** | [GitHub Copilot Codex भन्दा अगाडि जान्छ सुधारिएको AI मोडेलसँग](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **जुलाई २०२३** | [प्रोग्रामरहरूको लागि प्रॉम्प्ट इन्जिनियरिङ र LLMs को मार्गदर्शिका](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **सेप्टेम्बर २०२३** | [एउटा उद्यम LLM एप कसरी बनाउने: GitHub Copilot बाट सिकाइहरू](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -तपाईं तिनीहरूको [इन्जिनियरिङ ब्लग](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) पनि हेर्न सक्नुहुन्छ जहाँ यस्ता थप पोस्टहरू छन्, जस्तै [यो](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) जसले देखाउँछ यी मोडेल र प्रविधिहरू कसरी वास्तविक संसारका अनुप्रयोगहरू चलाउन _लागु_ गरिन्छन्। - ---- - - - -## प्रॉम्प्ट निर्माण - -हामीले देख्यौं कि प्रॉम्प्ट इन्जिनियरिङ किन महत्वपूर्ण छ – अब प्रॉम्प्टहरू कसरी _निर्माण_ गरिन्छन् बुझौं ताकि हामी विभिन्न प्रविधिहरूको मूल्याङ्कन गरेर अझ प्रभावकारी प्रॉम्प्ट डिजाइन गर्न सकौं। - -### आधारभूत प्रॉम्प्ट - -आधारभूत प्रॉम्प्टबाट सुरु गरौं: मोडेललाई कुनै अन्य सन्दर्भ बिना पठाइएको टेक्स्ट इनपुट। यहाँ एउटा उदाहरण छ – जब हामी अमेरिकी राष्ट्रिय गानका पहिलो केही शब्दहरू OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst) मा पठाउँछौं, यो तुरुन्तै अर्को केही पंक्तिहरूले प्रतिक्रिया _पूरा_ गर्छ, जसले आधारभूत भविष्यवाणी व्यवहार देखाउँछ। - -| प्रॉम्प्ट (इनपुट) | प्रतिक्रिया (आउटपुट) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | तपाईंले "The Star-Spangled Banner," संयुक्त राज्य अमेरिकाको राष्ट्रिय गानको गीत सुरु गर्दै हुनुहुन्छ जस्तो लाग्छ। पूर्ण गीत यस प्रकार छ ... | - -### जटिल प्रॉम्प्ट - -अब त्यो आधारभूत प्रॉम्प्टमा सन्दर्भ र निर्देशन थपौं। [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) ले हामीलाई _सन्देशहरू_ को संग्रहको रूपमा जटिल प्रॉम्प्ट निर्माण गर्न दिन्छ: - -- इनपुट/आउटपुट जोडीहरू जसले _प्रयोगकर्ता_ को इनपुट र _सहायक_ को प्रतिक्रिया देखाउँछन्। -- प्रणाली सन्देश जसले सहायकको व्यवहार वा व्यक्तित्वको सन्दर्भ सेट गर्छ। - -अब अनुरोध तलको रूपमा हुन्छ, जहाँ _टोकनाइजेशन_ ले सन्दर्भ र संवादबाट सम्बन्धित जानकारी प्रभावकारी रूपमा समेट्छ। प्रणाली सन्दर्भ परिवर्तन गर्दा प्रतिक्रिया गुणस्तरमा प्रयोगकर्ताको इनपुट जत्तिकै प्रभाव पार्न सक्छ। - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### निर्देशन प्रॉम्प्ट - -माथिका उदाहरणहरूमा, प्रयोगकर्ताको प्रॉम्प्ट साधारण टेक्स्ट प्रश्न थियो जुन जानकारीको अनुरोधको रूपमा व्याख्या गर्न सकिन्छ। _निर्देशन_ प्रॉम्प्टहरूसँग, हामी त्यो टेक्स्टलाई कार्यलाई थप विस्तारमा निर्दिष्ट गर्न प्रयोग गर्न सक्छौं, जसले AI लाई राम्रो मार्गदर्शन दिन्छ। यहाँ एउटा उदाहरण छ: - -| प्रॉम्प्ट (इनपुट) | प्रतिक्रिया (आउटपुट) | निर्देशन प्रकार | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Write a description of the Civil War | _साधारण अनुच्छेद फर्कायो_ | सरल | -| Write a description of the Civil War. Provide key dates and events and describe their significance | _अनुच्छेद पछि मुख्य घटनाका मितिहरू र विवरणहरूको सूची फर्कायो_ | जटिल | -| Write a description of the Civil War in 1 paragraph. Provide 3 bullet points with key dates and their significance. Provide 3 more bullet points with key historical figures and their contributions. Return the output as a JSON file | _अझ विस्तृत विवरणहरू JSON ढाँचामा फर्काउँछ जुन तपाईं फाइलमा कपी-पेस्ट गरेर आवश्यक अनुसार मान्य गर्न सक्नुहुन्छ_ | जटिल। ढाँचाबद्ध। | - -## प्राथमिक सामग्री - -माथिका उदाहरणहरूमा, प्रॉम्प्ट अझै खुला थियो, जसले LLM लाई आफ्नो पूर्व-प्रशिक्षित डेटासेटको कुन भाग सान्दर्भिक छ निर्णय गर्न अनुमति दियो। _प्राथमिक सामग्री_ डिजाइन ढाँचामा, इनपुट टेक्स्ट दुई भागमा विभाजित हुन्छ: - -- निर्देशन (कार्य) -- सान्दर्भिक सामग्री (जसले कार्यलाई प्रभाव पार्छ) - -यहाँ एउटा उदाहरण छ जहाँ निर्देशन हो "यसलाई २ वाक्यमा सारांश गर्नुहोस्"। - -| प्रॉम्प्ट (इनपुट) | प्रतिक्रिया (आउटपुट) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. It is named after the Roman god Jupiter.[19] When viewed from Earth, Jupiter can be bright enough for its reflected light to cast visible shadows,[20] and is on average the third-brightest natural object in the night sky after the Moon and Venus.
**Summarize this in 2 short sentences** | Jupiter, सूर्यबाट पाँचौं ग्रह, सौर्यमण्डलको सबैभन्दा ठूलो ग्रह हो र रातको आकाशमा सबैभन्दा चम्किला वस्तुहरू मध्ये एक हो। यो रोमन देवता Jupiter को नाममा राखिएको हो र यसको द्रव्यमान सौर्यमण्डलका अन्य सबै ग्रहहरूको दुई र आधा गुणा छ। | - -प्राथमिक सामग्री खण्डलाई विभिन्न तरिकाले प्रयोग गर्न सकिन्छ प्रभावकारी निर्देशन दिन: - -- **उदाहरणहरू** – मोडेललाई स्पष्ट निर्देशन दिनुको सट्टा, के गर्नुपर्ने उदाहरणहरू दिनुहोस् र मोडेलले ढाँचा अनुमान लगाओस्। -- **संकेतहरू** – निर्देशनपछि एउटा "संकेत" दिनुहोस् जसले प्रतिक्रिया प्रारम्भ गर्छ र मोडेललाई सान्दर्भिक उत्तरतर्फ मार्गदर्शन गर्छ। -- **ढाँचा** – यी दोहोर्याउन मिल्ने 'रेसिपी' हुन् जसमा प्लेसहोल्डरहरू (चरहरू) हुन्छन् जुन विशिष्ट प्रयोगका लागि डाटासँग अनुकूलन गर्न सकिन्छ। - -अब यीलाई व्यवहारमा हेरौं। - -### उदाहरणहरूको प्रयोग - -यो एउटा तरिका हो जहाँ तपाईं प्राथमिक सामग्री प्रयोग गरेर मोडेललाई चाहिएको आउटपुटका केही उदाहरणहरू "खुवाउनुहुन्छ" र मोडेलले चाहिएको ढाँचा अनुमान लगाउँछ। दिइएका उदाहरणहरूको संख्यामा आधारित, हामीसँग शून्य-शट, एक-शट, थोरै-शट प्रॉम्प्टिङ हुन सक्छ। - -प्रॉम्प्ट अब तीन भागहरूमा हुन्छ: - -- कार्यको वर्णन -- चाहिएको आउटपुटका केही उदाहरणहरू -- नयाँ उदाहरणको सुरुवात (जो अप्रत्यक्ष कार्य वर्णन हुन्छ) - -| सिकाइ प्रकार | प्रॉम्प्ट (इनपुट) | प्रतिक्रिया (आउटपुट) | -| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| शून्य-शट | "The Sun is Shining". Translate to Spanish | "El Sol está brillando". | -| एक-शट | "The Sun is Shining" => ""El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| थोरै-शट | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketball | -| | | | - -यहाँ ध्यान दिनुहोस् कि शून्य-शट प्रॉम्प्टिङमा हामीले स्पष्ट निर्देशन ("Translate to Spanish") दिनुपर्छ, तर एक-शट प्रॉम्प्टिङमा यो अनुमान लगाइन्छ। थोरै-शट उदाहरणले देखाउँछ कि थप उदाहरणहरू थप्दा मोडेलहरूले थप सही अनुमान लगाउन सक्छन् बिना थप निर्देशन। - -### प्रॉम्प्ट संकेतहरू - -प्राथमिक सामग्री प्रयोग गर्ने अर्को तरिका हो _संकेतहरू_ दिनु। यस अवस्थामा, हामी मोडेललाई चाहिएको प्रतिक्रिया ढाँचामा प्रारम्भिक अंश दिँदै सही दिशामा धकेल्छौं। मोडेलले त्यसपछि "संकेत लिन्छ" र त्यसै शैलीमा जारी राख्छ। - -| संकेतहरूको संख्या | प्रॉम्प्ट (इनपुट) | प्रतिक्रिया (आउटपुट) | -| :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. - -**Summarize This** | ज्युपिटर हाम्रो सौर्यमण्डलको सबैभन्दा ठूलो ग्रह हो र सूर्यबाट पाँचौं ग्रह हो। यो ग्यास जायन्ट हो जसको द्रव्यमान सूर्यको १/१००० भाग छ, तर यो सबै अन्य ग्रहहरूको कुल द्रव्यमानभन्दा भारी छ। प्राचीन सभ्यताहरूले ज्युपिटरलाई लामो समयदेखि चिनेका छन्, र यो सजिलै रातको आकाशमा देखिन्छ। | -| 1 | ज्युपिटर सूर्यबाट पाँचौं ग्रह हो र सौर्यमण्डलको सबैभन्दा ठूलो ग्रह हो। यो ग्यास जायन्ट हो जसको द्रव्यमान सूर्यको एक हजारौं भाग हो, तर सौर्यमण्डलका सबै अन्य ग्रहहरूको कुल द्रव्यमानको दुई र आधा गुणा छ। ज्युपिटर रातको आकाशमा नाङ्गो आँखाले देखिने सबैभन्दा चम्किला वस्तुहरू मध्ये एक हो, र यो प्राचीन सभ्यताहरूले इतिहास लेखिनु अघि देखि नै चिनेका छन्।
**Summarize This**
हामीले सिकेको कुरा हो कि ज्युपिटर | सूर्यबाट पाँचौं ग्रह हो र सौर्यमण्डलको सबैभन्दा ठूलो ग्रह हो। यो ग्यास जायन्ट हो जसको द्रव्यमान सूर्यको एक हजारौं भाग हो, तर सबै अन्य ग्रहहरूको कुल द्रव्यमानको दुई र आधा गुणा छ। यो सजिलै नाङ्गो आँखाले देख्न सकिन्छ र प्राचीन कालदेखि परिचित छ। | -| 2 | ज्युपिटर सूर्यबाट पाँचौं ग्रह हो र सौर्यमण्डलको सबैभन्दा ठूलो ग्रह हो। यो ग्यास जायन्ट हो जसको द्रव्यमान सूर्यको एक हजारौं भाग हो, तर सौर्यमण्डलका सबै अन्य ग्रहहरूको कुल द्रव्यमानको दुई र आधा गुणा छ। ज्युपिटर रातको आकाशमा नाङ्गो आँखाले देखिने सबैभन्दा चम्किला वस्तुहरू मध्ये एक हो, र यो प्राचीन सभ्यताहरूले इतिहास लेखिनु अघि देखि नै चिनेका छन्।
**Summarize This**
हामीले सिकेका शीर्ष ३ तथ्यहरू: | १. ज्युपिटर सूर्यबाट पाँचौं ग्रह हो र सौर्यमण्डलको सबैभन्दा ठूलो ग्रह हो।
२. यो ग्यास जायन्ट हो जसको द्रव्यमान सूर्यको एक हजारौं भाग हो...
३. ज्युपिटर प्राचीन कालदेखि नै नाङ्गो आँखाले देखिने गरी परिचित छ ... | -| | | | - -### Prompt Templates - -प्रम्प्ट टेम्प्लेट भनेको _पहिले नै परिभाषित गरिएको प्रम्प्टको नुस्खा_ हो जुन आवश्यक अनुसार भण्डारण गरी पुन: प्रयोग गर्न सकिन्छ, जसले ठूलो मात्रामा प्रयोगकर्ताको अनुभवलाई निरन्तरता दिन मद्दत गर्छ। यसको सबैभन्दा सरल रूपमा, यो प्रम्प्टका उदाहरणहरूको संग्रह हो जस्तै [OpenAI बाट यो उदाहरण](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) जसले अन्तरक्रियात्मक प्रम्प्ट कम्पोनेन्टहरू (प्रयोगकर्ता र प्रणाली सन्देशहरू) र API-चालित अनुरोध ढाँचा दुवै प्रदान गर्छ - पुन: प्रयोगलाई समर्थन गर्न। - -थोरै जटिल रूपले, जस्तै [LangChain बाट यो उदाहरण](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst) मा, यसमा _प्लेसहोल्डरहरू_ हुन्छन् जुन विभिन्न स्रोतहरू (प्रयोगकर्ता इनपुट, प्रणाली सन्दर्भ, बाह्य डाटा स्रोतहरू आदि) बाट डाटा राखेर गतिशील रूपमा प्रम्प्ट सिर्जना गर्न सकिन्छ। यसले हामीलाई पुन: प्रयोग गर्न मिल्ने प्रम्प्टहरूको पुस्तकालय बनाउन अनुमति दिन्छ जुन **कार्यक्रमगत रूपमा** ठूलो मात्रामा निरन्तर प्रयोगकर्ता अनुभवहरू प्रदान गर्न सकिन्छ। - -अन्ततः, टेम्प्लेटहरूको वास्तविक मूल्य भनेको _प्रम्प्ट पुस्तकालयहरू_ सिर्जना र प्रकाशन गर्ने क्षमता हो जुन विशेष अनुप्रयोग क्षेत्रहरूका लागि अनुकूलित हुन्छन् - जहाँ प्रम्प्ट टेम्प्लेट अब _अनुप्रयोग-विशिष्ट सन्दर्भ वा उदाहरणहरू_ समावेश गरेर लक्षित प्रयोगकर्ता समूहका लागि जवाफहरू अझ सान्दर्भिक र सही बनाउँछ। [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) रिपोजिटरी यस दृष्टिकोणको उत्कृष्ट उदाहरण हो, जसले शिक्षा क्षेत्रका लागि प्रम्प्टहरूको पुस्तकालय तयार पारेको छ, जसमा पाठ योजना, पाठ्यक्रम डिजाइन, विद्यार्थी ट्युटोरिङ जस्ता मुख्य उद्देश्यहरूमा जोड दिइएको छ। - -## Supporting Content - -यदि हामी प्रम्प्ट निर्माणलाई एउटा निर्देशन (कार्य) र एउटा लक्ष्य (प्राथमिक सामग्री) भएको रूपमा सोच्यौं भने, _माध्यमिक सामग्री_ भनेको थप सन्दर्भ हो जुन हामीले आउटपुटलाई कुनै न कुनै तरिकाले प्रभाव पार्नका लागि प्रदान गर्छौं। यसमा ट्युनिङ प्यारामिटरहरू, ढाँचा निर्देशनहरू, विषय वर्गीकरण आदि हुन सक्छन् जसले मोडेललाई प्रतिक्रिया प्रयोगकर्ताका उद्देश्य वा अपेक्षाहरू अनुरूप _अनुकूलन_ गर्न मद्दत गर्छ। - -उदाहरणका लागि: पाठ्यक्रम सूचीमा व्यापक मेटाडाटा (नाम, विवरण, स्तर, मेटाडाटा ट्यागहरू, प्रशिक्षक आदि) भएको अवस्थामा: - -- हामीले "Fall 2023 को पाठ्यक्रम सूची संक्षेप गर्नुहोस्" भन्ने निर्देशन दिन सक्छौं -- हामीले प्राथमिक सामग्रीमा इच्छित आउटपुटका केही उदाहरणहरू दिन सक्छौं -- हामीले माध्यमिक सामग्रीमा शीर्ष ५ "ट्यागहरू" पहिचान गर्न सक्छौं। - -अब, मोडेलले केही उदाहरणहरूले देखाएको ढाँचामा संक्षेप प्रदान गर्न सक्छ - तर यदि परिणाममा धेरै ट्यागहरू छन् भने, यसले माध्यमिक सामग्रीमा पहिचान गरिएका ५ ट्यागहरूलाई प्राथमिकता दिन सक्छ। - ---- - - - -## Prompting Best Practices - -अब जब हामीले थाहा पायौं कि प्रम्प्टहरू कसरी _निर्माण_ गर्न सकिन्छ, हामीले तिनीहरूलाई कसरी _डिजाइन_ गर्ने भनेर सोच्न सक्छौं ताकि उत्तम अभ्यासहरू प्रतिबिम्बित होस्। हामी यसलाई दुई भागमा सोच्न सक्छौं - सही _मानसिकता_ राख्ने र सही _प्रविधिहरू_ लागू गर्ने। - -### Prompt Engineering Mindset - -प्रम्प्ट इन्जिनियरिङ एउटा प्रयास-त्रुटि प्रक्रिया हो त्यसैले तीन मुख्य मार्गदर्शक तत्वहरू मनमा राख्नुहोस्: - -1. **डोमेन बुझाइ महत्त्वपूर्ण छ।** प्रतिक्रिया शुद्धता र सान्दर्भिकता त्यो _डोमेन_ मा निर्भर गर्छ जहाँ अनुप्रयोग वा प्रयोगकर्ता काम गर्छ। आफ्नो सहज ज्ञान र डोमेन विशेषज्ञता प्रयोग गरेर **प्रविधिहरूलाई अनुकूलित** गर्नुहोस्। उदाहरणका लागि, प्रणाली प्रम्प्टहरूमा _डोमेन-विशिष्ट व्यक्तित्वहरू_ परिभाषित गर्नुहोस्, वा प्रयोगकर्ता प्रम्प्टहरूमा _डोमेन-विशिष्ट टेम्प्लेटहरू_ प्रयोग गर्नुहोस्। माध्यमिक सामग्रीमा डोमेन-विशिष्ट सन्दर्भहरू प्रदान गर्नुहोस्, वा मोडेललाई परिचित प्रयोग ढाँचातर्फ मार्गदर्शन गर्न _डोमेन-विशिष्ट संकेत र उदाहरणहरू_ प्रयोग गर्नुहोस्। - -2. **मोडेल बुझाइ महत्त्वपूर्ण छ।** हामीलाई थाहा छ मोडेलहरू स्वाभाविक रूपमा स्टोकास्टिक हुन्छन्। तर मोडेल कार्यान्वयनहरू प्रशिक्षण डाटासेट (पूर्व-प्रशिक्षित ज्ञान), प्रदान गर्ने क्षमता (जस्तै API वा SDK मार्फत) र अनुकूलित सामग्री प्रकार (जस्तै कोड, छवि, वा पाठ) अनुसार फरक हुन सक्छन्। तपाईंले प्रयोग गरिरहेको मोडेलका बल र सीमाहरू बुझ्नुहोस्, र त्यो ज्ञान प्रयोग गरेर _कार्यहरू प्राथमिकता_ दिनुहोस् वा मोडेलको क्षमताहरूका लागि _अनुकूलित टेम्प्लेटहरू_ बनाउनुहोस्। - -3. **पुनरावृत्ति र प्रमाणीकरण महत्त्वपूर्ण छ।** मोडेलहरू छिटो विकास भइरहेका छन्, र प्रम्प्ट इन्जिनियरिङका प्रविधिहरू पनि। डोमेन विशेषज्ञको रूपमा, तपाईंको विशिष्ट अनुप्रयोगका लागि अन्य सन्दर्भ वा मापदण्डहरू हुन सक्छन् जुन व्यापक समुदायमा लागू नहुन सक्छ। प्रम्प्ट इन्जिनियरिङ उपकरण र प्रविधिहरू प्रयोग गरेर प्रम्प्ट निर्माणलाई "छिटो सुरु" गर्नुहोस्, त्यसपछि आफ्नो सहज ज्ञान र डोमेन विशेषज्ञता प्रयोग गरी पुनरावृत्ति र प्रमाणीकरण गर्नुहोस्। आफ्नो अनुभवहरू रेकर्ड गरी **ज्ञान आधार** (जस्तै प्रम्प्ट पुस्तकालयहरू) सिर्जना गर्नुहोस् जुन अरूले पनि नयाँ आधारको रूपमा प्रयोग गर्न सकून्, भविष्यमा छिटो पुनरावृत्तिका लागि। - -## Best Practices - -अब हामी [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) र [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst) अभ्यासकर्ताहरूले सिफारिस गरेका सामान्य उत्तम अभ्यासहरू हेरौं। - -| के हो | किन | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| नयाँ मोडेलहरू मूल्याङ्कन गर्नुहोस्। | नयाँ मोडेल पुस्ताहरूले सुधारिएका सुविधाहरू र गुणस्तर ल्याउन सक्छन् - तर लागत पनि बढ्न सक्छ। प्रभाव मूल्याङ्कन गरी त्यसपछि माइग्रेशन निर्णय गर्नुहोस्। | -| निर्देशन र सन्दर्भ अलग राख्नुहोस्। | जाँच गर्नुहोस् कि तपाईंको मोडेल/प्रदायकले निर्देशन, प्राथमिक र माध्यमिक सामग्रीलाई स्पष्ट रूपमा छुट्याउन _डेलिमिटरहरू_ परिभाषित गरेको छ कि छैन। यसले मोडेललाई टोकनहरूलाई बढी सही तौल दिन मद्दत गर्छ। | -| स्पष्ट र विशिष्ट हुनुहोस्। | इच्छित सन्दर्भ, परिणाम, लम्बाइ, ढाँचा, शैली आदि बारे थप विवरण दिनुहोस्। यसले प्रतिक्रिया गुणस्तर र निरन्तरता दुवै सुधार्छ। नुस्खाहरूलाई पुन: प्रयोग गर्न मिल्ने टेम्प्लेटहरूमा समेट्नुहोस्। | -| वर्णनात्मक हुनुहोस्, उदाहरणहरू प्रयोग गर्नुहोस्। | मोडेलहरूलाई "देखाउनु र भन्नु" शैलीले राम्रो प्रतिक्रिया दिन सक्छ। सुरुमा `zero-shot` विधि प्रयोग गर्नुहोस् जहाँ निर्देशन मात्र दिनुहुन्छ (तर उदाहरण छैन), त्यसपछि `few-shot` विधि प्रयोग गरी इच्छित आउटपुटका केही उदाहरणहरू दिनुहोस्। उपमा प्रयोग गर्नुहोस्। | -| प्रतिक्रिया सुरु गर्न संकेतहरू प्रयोग गर्नुहोस्। | इच्छित परिणामतर्फ मोडेललाई धकेल्न केही प्रारम्भिक शब्द वा वाक्यांशहरू दिनुहोस् जसलाई यो प्रतिक्रिया सुरु गर्न प्रयोग गर्न सक्छ। | -| दोहोर्याउनुहोस् | कहिलेकाहीं मोडेललाई दोहोर्याएर निर्देशन दिन आवश्यक पर्न सक्छ। प्राथमिक सामग्री अघि र पछि निर्देशन दिनुहोस्, निर्देशन र संकेत दुवै प्रयोग गर्नुहोस्, आदि। पुनरावृत्ति र प्रमाणीकरण गरेर के काम गर्छ हेर्नुहोस्। | -| क्रम महत्त्वपूर्ण छ | तपाईंले मोडेललाई जानकारी प्रस्तुत गर्ने क्रमले आउटपुटमा प्रभाव पार्न सक्छ, उदाहरणहरूमा पनि, हालसालैको प्रभावका कारण। विभिन्न विकल्पहरू प्रयास गरेर के राम्रो हुन्छ पत्ता लगाउनुहोस्। | -| मोडेललाई “बाहिर निस्कने” बाटो दिनुहोस् | मोडेललाई एउटा _फलब्याक_ प्रतिक्रिया दिनुहोस् जुन यसले कुनै कारणले कार्य पूरा गर्न नसकेमा दिन सक्छ। यसले गलत वा बनावट प्रतिक्रिया उत्पन्न हुने सम्भावना कम गर्छ। | -| | | - -कुनै पनि उत्तम अभ्यास जस्तै, याद राख्नुहोस् कि _तपाईंको अनुभव फरक पर्न सक्छ_ मोडेल, कार्य र डोमेन अनुसार। यीलाई सुरुवातको रूपमा प्रयोग गर्नुहोस्, र तपाईंका लागि के काम गर्छ पुनरावृत्ति गर्दै पत्ता लगाउनुहोस्। नयाँ मोडेल र उपकरणहरू उपलब्ध हुँदै जाँदा आफ्नो प्रम्प्ट इन्जिनियरिङ प्रक्रिया निरन्तर पुनर्मूल्यांकन गर्नुहोस्, प्रक्रिया विस्तारयोग्यता र प्रतिक्रिया गुणस्तरमा ध्यान दिँदै। - - - -## Assignment - -बधाई छ! तपाईं पाठको अन्त्यसम्म आइपुग्नुभयो! अब ती अवधारणा र प्रविधिहरूलाई वास्तविक उदाहरणहरूसँग परीक्षण गर्ने समय हो! - -हाम्रो असाइनमेन्टका लागि, हामीले Jupyter Notebook प्रयोग गर्नेछौं जसमा तपाईं अन्तरक्रियात्मक रूपमा अभ्यासहरू पूरा गर्न सक्नुहुन्छ। तपाईंले आफ्नो Markdown र Code सेलहरू थपेर आफ्नै विचार र प्रविधिहरू अन्वेषण गर्न पनि सक्नुहुन्छ। - -### सुरु गर्नका लागि, रिपो फोर्क गर्नुहोस्, त्यसपछि - -- (सिफारिस गरिएको) GitHub Codespaces सुरु गर्नुहोस् -- (वैकल्पिक) रिपो आफ्नो स्थानीय उपकरणमा क्लोन गरी Docker Desktop सँग प्रयोग गर्नुहोस् -- (वैकल्पिक) आफ्नो मनपर्ने Notebook रनटाइम वातावरणमा Notebook खोल्नुहोस्। - -### त्यसपछि, आफ्नो वातावरण चरहरू कन्फिगर गर्नुहोस् - -- रिपोको मूलमा रहेको `.env.copy` फाइललाई `.env` मा कपी गरी `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` र `AZURE_OPENAI_DEPLOYMENT` मानहरू भर्नुहोस्। कसरी गर्ने जान्न [Learning Sandbox खण्ड](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) मा फर्कनुहोस्। - -### त्यसपछि, Jupyter Notebook खोल्नुहोस् - -- रनटाइम कर्नेल चयन गर्नुहोस्। विकल्प १ वा २ प्रयोग गर्दा, विकास कन्टेनरले प्रदान गरेको डिफल्ट Python 3.10.x कर्नेल चयन गर्नुहोस्। - -अब तपाईं अभ्यासहरू चलाउन तयार हुनुहुन्छ। यहाँ कुनै _सही वा गलत_ उत्तरहरू छैनन् - केवल प्रयास-त्रुटि गरेर विकल्पहरू अन्वेषण गर्ने र मोडेल र अनुप्रयोग डोमेनका लागि के काम गर्छ बुझ्ने प्रक्रिया हो। - -_यस कारणले गर्दा यस पाठमा कुनै कोड समाधान खण्डहरू छैनन्। यसको सट्टा, Notebook मा "My Solution:" शीर्षक भएका Markdown सेलहरू हुनेछन् जसले सन्दर्भका लागि एउटा उदाहरण आउटपुट देखाउँछन्।_ - - - -## Knowledge check - -तलका मध्ये कुन प्रम्प्ट केही उचित उत्तम अभ्यासहरू पालना गरेको राम्रो प्रम्प्ट हो? - -1. रातो कारको तस्बिर देखाउनुहोस् -2. रातो कारको तस्बिर देखाउनुहोस् जुन Volvo ब्रान्डको XC90 मोडेल हो र सूर्य अस्ताउँदै गरेको ठाउँमा चट्टानको छेउमा पार्क गरिएको छ -3. रातो कारको तस्बिर देखाउनुहोस् जुन Volvo ब्रान्डको XC90 मोडेल हो - -उत्तर: २, यो सबैभन्दा राम्रो प्रम्प्ट हो किनभने यसले "के" हो भनेर विवरण दिन्छ र विशेषता दिन्छ (साधारण कार होइन, विशेष ब्रान्ड र मोडेल) र समग्र सेटिङ पनि वर्णन गर्छ। ३ दोस्रो राम्रो हो किनभने यसमा पनि धेरै विवरण छ। - -## 🚀 Challenge - -"cue" प्रविधि प्रयोग गरेर प्रम्प्ट पूरा गर्नुहोस्: वाक्य पूरा गर्नुहोस् "Show me an image of red car of make Volvo and "। यसले के जवाफ दिन्छ, र तपाईं यसलाई कसरी सुधार गर्नुहुन्छ? - -## Great Work! Continue Your Learning - -विभिन्न प्रम्प्ट इन्जिनियरिङ अवधारणाहरू बारे थप जान्न चाहनुहुन्छ? [सिकाइ जारी राख्ने पृष्ठ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) मा जानुहोस् जहाँ यस विषयमा अन्य उत्कृष्ट स्रोतहरू छन्। - -पाठ ५ मा जानुहोस् जहाँ हामी [उन्नत प्रम्प्टिङ प्रविधिहरू](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) हेरौं! - -**अस्वीकरण**: -यो दस्तावेज AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) प्रयोग गरी अनुवाद गरिएको हो। हामी शुद्धताका लागि प्रयासरत छौं, तर कृपया ध्यान दिनुहोस् कि स्वचालित अनुवादमा त्रुटि वा अशुद्धता हुनसक्छ। मूल दस्तावेज यसको मूल भाषामा नै अधिकारिक स्रोत मानिनुपर्छ। महत्वपूर्ण जानकारीका लागि व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न कुनै पनि गलतफहमी वा गलत व्याख्याका लागि हामी जिम्मेवार छैनौं। \ No newline at end of file + + + + + + + diff --git a/translations/ne/09-building-image-applications/README.md b/translations/ne/09-building-image-applications/README.md index 357463788..980b073f3 100644 --- a/translations/ne/09-building-image-applications/README.md +++ b/translations/ne/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# छवि उत्पादन अनुप्रयोगहरू निर्माण गर्ने - -[![छवि उत्पादन अनुप्रयोगहरू निर्माण गर्ने](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.ne.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLM हरू केवल पाठ उत्पादनमा सीमित छैनन्। पाठ विवरणहरूबाट छविहरू पनि उत्पादन गर्न सकिन्छ। छविहरूलाई एक माध्यमको रूपमा प्रयोग गर्नु धेरै क्षेत्रहरूमा उपयोगी हुन सक्छ, जस्तै MedTech, वास्तुकला, पर्यटन, खेल विकास र अन्य। यस अध्यायमा, हामी दुई सबैभन्दा लोकप्रिय छवि उत्पादन मोडेलहरू, DALL-E र Midjourney, को बारेमा अध्ययन गर्नेछौं। - -## परिचय - -यस पाठमा हामीले समेट्नेछौं: - -- छवि उत्पादन र यसको उपयोगिता। -- DALL-E र Midjourney के हुन् र कसरी काम गर्छन्। -- कसरी छवि उत्पादन अनुप्रयोग निर्माण गर्ने। - -## सिकाइ लक्ष्यहरू - -यस पाठ पूरा गरेपछि, तपाईं सक्षम हुनुहुनेछ: - -- छवि उत्पादन अनुप्रयोग निर्माण गर्न। -- मेटा प्रॉम्प्टहरू प्रयोग गरी आफ्नो अनुप्रयोगका सीमाहरू निर्धारण गर्न। -- DALL-E र Midjourney सँग काम गर्न। - -## किन छवि उत्पादन अनुप्रयोग बनाउने? - -छवि उत्पादन अनुप्रयोगहरू जनरेटिभ AI को क्षमता अन्वेषण गर्ने उत्कृष्ट तरिका हुन्। तिनीहरू निम्नका लागि प्रयोग गर्न सकिन्छ: - -- **छवि सम्पादन र संश्लेषण**। तपाईं विभिन्न प्रयोगका लागि छविहरू उत्पादन गर्न सक्नुहुन्छ, जस्तै छवि सम्पादन र संश्लेषण। - -- **विभिन्न उद्योगहरूमा लागू**। तिनीहरू Medtech, पर्यटन, खेल विकास लगायत विभिन्न उद्योगहरूका लागि छविहरू उत्पादन गर्न पनि प्रयोग गर्न सकिन्छ। - -## परिदृश्य: Edu4All - -यस पाठको भागको रूपमा, हामी हाम्रो स्टार्टअप Edu4All सँग काम जारी राख्नेछौं। विद्यार्थीहरूले आफ्नो मूल्याङ्कनका लागि छविहरू सिर्जना गर्नेछन्, कुन प्रकारका छविहरू बनाउने भन्ने निर्णय विद्यार्थीहरूमा निर्भर छ, जस्तै आफ्नै परी कथा का चित्रहरू, कथाका नयाँ पात्रहरू सिर्जना गर्ने वा आफ्ना विचार र अवधारणाहरूलाई दृश्यात्मक बनाउने। - -यदि विद्यार्थीहरूले कक्षामा स्मारकहरूमा काम गरिरहेका छन् भने Edu4All का विद्यार्थीहरूले निम्न जस्तो छवि उत्पादन गर्न सक्छन्: - -![Edu4All startup, class on monuments, Eiffel Tower](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.ne.png) - -यसरी प्रॉम्प्ट प्रयोग गरेर - -> "डग ईफल टावरको छेउमा बिहानको पहिलाको घाममा" - -## DALL-E र Midjourney के हुन्? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) र [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) दुई सबैभन्दा लोकप्रिय छवि उत्पादन मोडेलहरू हुन्, जसले प्रॉम्प्टहरू प्रयोग गरी छविहरू उत्पादन गर्न अनुमति दिन्छन्। - -### DALL-E - -DALL-E बाट सुरु गरौं, जुन एक जनरेटिभ AI मोडेल हो जसले पाठ विवरणहरूबाट छविहरू उत्पादन गर्छ। - -> [DALL-E दुई मोडेलहरूको संयोजन हो, CLIP र diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst)। - -- **CLIP**, एउटा मोडेल हो जसले छवि र पाठबाट डेटा को संख्यात्मक प्रतिनिधित्व (embeddings) उत्पादन गर्छ। - -- **Diffused attention**, एउटा मोडेल हो जसले embeddings बाट छविहरू उत्पादन गर्छ। DALL-E लाई छवि र पाठको डेटासेटमा तालिम दिइएको छ र यसले पाठ विवरणबाट छविहरू उत्पादन गर्न सक्छ। उदाहरणका लागि, DALL-E ले टोपी लगाएको बिरालो वा मोहक कुकुरको छवि उत्पादन गर्न सक्छ। - -### Midjourney - -Midjourney पनि DALL-E जस्तै काम गर्छ, यो पाठ प्रॉम्प्टहरूबाट छविहरू उत्पादन गर्छ। Midjourney ले पनि “टोपी लगाएको बिरालो” वा “मोहक कुकुर” जस्ता प्रॉम्प्टहरू प्रयोग गरेर छविहरू बनाउन सक्छ। - -![Midjourney द्वारा उत्पादन गरिएको छवि, मेकानिकल कबूतर](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_छवि स्रोत विकिपीडिया, Midjourney द्वारा उत्पादन गरिएको_ - -## DALL-E र Midjourney कसरी काम गर्छन् - -पहिले, [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst) लाई हेरौं। DALL-E एक जनरेटिभ AI मोडेल हो जुन ट्रान्सफर्मर आर्किटेक्चरमा आधारित छ र _autoregressive transformer_ प्रयोग गर्छ। - -_autoregressive transformer_ ले मोडेलले कसरी पाठ विवरणबाट छवि उत्पादन गर्छ भन्ने परिभाषित गर्छ, यो एक पटकमा एक पिक्सेल उत्पादन गर्छ र त्यसपछि उत्पादन गरिएका पिक्सेलहरूलाई प्रयोग गरेर अर्को पिक्सेल उत्पादन गर्छ। यो प्रक्रिया न्यूरल नेटवर्कका धेरै तहहरू पार गर्दै छवि पूरा हुन्छ। - -यस प्रक्रियाले DALL-E लाई छविमा वस्तुहरू, विशेषताहरू, र अन्य तत्वहरू नियन्त्रण गर्न सक्षम बनाउँछ। यद्यपि, DALL-E 2 र 3 मा उत्पादन गरिएका छविहरूमा अझ बढी नियन्त्रण हुन्छ। - -## तपाईंको पहिलो छवि उत्पादन अनुप्रयोग कसरी बनाउने - -त्यसैले छवि उत्पादन अनुप्रयोग बनाउन के चाहिन्छ? तपाईंलाई निम्न पुस्तकालयहरू चाहिन्छ: - -- **python-dotenv**, यो पुस्तकालय प्रयोग गरेर तपाईं आफ्नो गोप्य जानकारी _.env_ फाइलमा राख्न सक्नुहुन्छ, जसले कोडबाट अलग राख्छ। -- **openai**, यो पुस्तकालय OpenAI API सँग अन्तरक्रिया गर्न प्रयोग हुन्छ। -- **pillow**, Python मा छविहरू सँग काम गर्न। -- **requests**, HTTP अनुरोधहरू बनाउन सहयोग पुर्‍याउन। - -1. _.env_ नामक फाइल बनाउनुहोस् र यसमा निम्न सामग्री राख्नुहोस्: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Azure Portal मा आफ्नो स्रोतको "Keys and Endpoint" सेक्सनमा यो जानकारी पाउन सकिन्छ। - -1. माथिका पुस्तकालयहरूलाई _requirements.txt_ नामक फाइलमा सङ्कलन गर्नुहोस्: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. त्यसपछि, भर्चुअल वातावरण सिर्जना गरी पुस्तकालयहरू स्थापना गर्नुहोस्: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Windows मा भर्चुअल वातावरण सिर्जना र सक्रिय गर्न निम्न आदेशहरू प्रयोग गर्नुहोस्: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. _app.py_ नामक फाइलमा निम्न कोड थप्नुहोस्: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -अब यस कोडलाई व्याख्या गरौं: - -- पहिले, हामीले आवश्यक पुस्तकालयहरू आयात गर्छौं, जसमा OpenAI, dotenv, requests, र Pillow पुस्तकालयहरू समावेश छन्। - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- त्यसपछि, _.env_ फाइलबाट वातावरणीय चरहरू लोड गर्छौं। - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- त्यसपछि, OpenAI API को endpoint, key, संस्करण र प्रकार सेट गर्छौं। - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- त्यसपछि, छवि उत्पादन गर्छौं: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - माथिको कोडले JSON वस्तुमा प्रतिक्रिया दिन्छ जसमा उत्पादन गरिएको छविको URL हुन्छ। हामी यो URL प्रयोग गरेर छवि डाउनलोड गरी फाइलमा सुरक्षित गर्न सक्छौं। - -- अन्तमा, छवि खोल्छौं र मानक छवि दर्शक प्रयोग गरी देखाउँछौं: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### छवि उत्पादन गर्ने कोडको थप विवरण - -छवि उत्पादन गर्ने कोडलाई विस्तारमा हेरौं: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt**, छवि उत्पादन गर्न प्रयोग गरिएको पाठ प्रॉम्प्ट हो। यस अवस्थामा, हामीले "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils" प्रयोग गरेका छौं। -- **size**, उत्पादन गरिने छविको आकार हो। यस अवस्थामा, 1024x1024 पिक्सेलको छवि उत्पादन गर्दैछौं। -- **n**, उत्पादन गरिने छविहरूको संख्या हो। यस अवस्थामा, दुई छविहरू उत्पादन गर्दैछौं। -- **temperature**, जनरेटिभ AI मोडेलको आउटपुटको अनियमितता नियन्त्रण गर्ने प्यारामिटर हो। यसको मान 0 देखि 1 को बीचमा हुन्छ, जहाँ 0 भनेको आउटपुट निश्चित हुन्छ र 1 भनेको आउटपुट पूर्ण रूपमा अनियमित हुन्छ। डिफल्ट मान 0.7 हो। - -अर्को खण्डमा हामी छविहरू सँग गर्न सकिने थप कुराहरू समेट्नेछौं। - -## छवि उत्पादनका अतिरिक्त क्षमता - -अहिलेसम्म तपाईंले देख्नुभयो कि Python को केही लाइनहरू प्रयोग गरेर कसरी छवि उत्पादन गर्न सकिन्छ। तर छविहरू सँग गर्न सकिने थप कुराहरू पनि छन्। - -तपाईं निम्न गर्न सक्नुहुन्छ: - -- **सम्पादन गर्नुहोस्**। पहिलेको छवि, मास्क र प्रॉम्प्ट प्रदान गरेर छविमा परिवर्तन गर्न सकिन्छ। उदाहरणका लागि, तपाईं छविको कुनै भागमा केही थप्न सक्नुहुन्छ। हाम्रो खरायोको छविमा टोपी थप्न सकिन्छ। यसका लागि छवि, मास्क (परिवर्तन गर्नुपर्ने क्षेत्र पहिचान गर्ने) र पाठ प्रॉम्प्ट दिनुपर्छ। - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - आधारभूत छविमा केवल खरायो हुनेछ तर अन्तिम छविमा खरायोमा टोपी हुनेछ। - -- **भिन्नता सिर्जना गर्नुहोस्**। यसले पहिलेको छवि लिएर त्यसका भिन्नता सिर्जना गर्न अनुमति दिन्छ। भिन्नता सिर्जना गर्न, तपाईं छवि र पाठ प्रॉम्प्ट दिनुहुन्छ र यसरी कोड लेख्नुहुन्छ: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > नोट, यो केवल OpenAI मा समर्थित छ। - -## तापक्रम (Temperature) - -तापक्रम जनरेटिभ AI मोडेलको आउटपुटको अनियमितता नियन्त्रण गर्ने प्यारामिटर हो। यसको मान 0 देखि 1 को बीचमा हुन्छ, जहाँ 0 भनेको आउटपुट निश्चित हुन्छ र 1 भनेको आउटपुट अनियमित हुन्छ। डिफल्ट मान 0.7 हो। - -तापक्रम कसरी काम गर्छ भन्ने उदाहरण हेरौं, यो प्रॉम्प्ट दुई पटक चलाएर: - -> प्रॉम्प्ट: "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils" - -![Bunny on a horse holding a lollipop, version 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.ne.png) - -अब सोही प्रॉम्प्ट फेरि चलाउँदा, हामीले दुई पटक एउटै छवि नपाउने देख्न सकिन्छ: - -![Generated image of bunny on horse](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.ne.png) - -जसरी देख्न सकिन्छ, छविहरू समान छन् तर बिल्कुल एउटै छैनन्। अब तापक्रम मान 0.1 मा परिवर्तन गरेर हेरौं: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### तापक्रम परिवर्तन - -अब प्रतिक्रिया अझ निश्चित बनाउन प्रयास गरौं। हामीले दुई छविहरूमा देख्यौं कि पहिलोमा खरायो छ र दोस्रोमा घोडा छ, त्यसैले छविहरू धेरै फरक छन्। - -त्यसैले हाम्रो कोड परिवर्तन गरी तापक्रम 0 मा सेट गरौं: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -अब जब तपाईं यो कोड चलाउनुहुन्छ, तपाईंलाई यी दुई छविहरू प्राप्त हुन्छन्: - -- ![Temperature 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.ne.png) -- ![Temperature 0 , v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.ne.png) - -यहाँ स्पष्ट देख्न सकिन्छ कि छविहरू एकअर्कासँग धेरै समान छन्। - -## मेटाप्रॉम्प्टहरू प्रयोग गरी अनुप्रयोगका सीमाहरू कसरी निर्धारण गर्ने - -हाम्रो डेमोमा, हामीले पहिले नै ग्राहकहरूको लागि छविहरू उत्पादन गर्न सक्छौं। तर हामीले अनुप्रयोगका लागि केही सीमाहरू बनाउनु आवश्यक छ। - -उदाहरणका लागि, हामी अश्लील वा बालबालिकाका लागि अनुपयुक्त छविहरू उत्पादन गर्न चाहँदैनौं। - -यो हामी _मेटाप्रॉम्प्ट_ हरू प्रयोग गरेर गर्न सक्छौं। मेटाप्रॉम्प्टहरू पाठ प्रॉम्प्टहरू हुन् जसले जनरेटिभ AI मोडेलको आउटपुट नियन्त्रण गर्छन्। उदाहरणका लागि, हामी मेटाप्रॉम्प्टहरू प्रयोग गरेर आउटपुटलाई नियन्त्रण गर्न सक्छौं र सुनिश्चित गर्न सक्छौं कि उत्पादन गरिएका छविहरू सुरक्षित र उपयुक्त छन्। - -### यो कसरी काम गर्छ? - -अब, मेटाप्रॉम्प्टहरू कसरी काम गर्छन्? - -मेटाप्रॉम्प्टहरू पाठ प्रॉम्प्टहरू हुन् जुन जनरेटिभ AI मोडेलको आउटपुट नियन्त्रण गर्न प्रयोग गरिन्छ, तिनीहरू पाठ प्रॉम्प्टभन्दा पहिले राखिन्छन् र मोडेलको आउटपुट नियन्त्रण गर्न प्रयोग गरिन्छ। अनुप्रयोगहरूमा तिनीहरू समावेश गरिन्छन् जसले मोडेलको आउटपुट नियन्त्रण गर्छ। प्रॉम्प्ट इनपुट र मेटाप्रॉम्प्ट इनपुटलाई एउटै पाठ प्रॉम्प्टमा समेटिन्छ। - -मेटाप्रॉम्प्टको एउटा उदाहरण यस प्रकार छ: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -अब, हेरौं हामी हाम्रो डेमोमा मेटाप्रॉम्प्टहरू कसरी प्रयोग गर्न सक्छौं। - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -माथिको प्रॉम्प्टबाट, तपाईं देख्न सक्नुहुन्छ कि सबै उत्पादन गरिएका छविहरू मेटाप्रॉम्प्टलाई ध्यानमा राखेर बनाइएका छन्। - -## असाइनमेन्ट - विद्यार्थीहरूलाई सक्षम बनाऔं - -यस पाठको सुरुमै हामीले Edu4All परिचय गरायौं। अब विद्यार्थीहरूलाई आफ्नो मूल्याङ्कनका लागि छविहरू उत्पादन गर्न सक्षम बनाउने समय आएको छ। - -विद्यार्थीहरूले स्मारकहरू समावेश गर्ने मूल्याङ्कनका लागि छविहरू सिर्जना गर्नेछन्, कुन स्मारकहरू बनाउने भन्ने निर्णय विद्यार्थीहरूमा निर्भर छ। विद्यार्थीहरूलाई यस कार्यमा आफ्नो सिर्जनात्मकता प्रयोग गर्न भनिएको छ र ती स्मारकहरूलाई विभिन्न सन्दर्भहरूमा राख्न भनिएको छ। - -## समाधान - -यहाँ एउटा सम्भावित समाधान छ: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## उत्कृष्ट काम! आफ्नो सिकाइ जारी राख्नुहोस् - -यस पाठ पूरा गरेपछि, हाम्रो [जनरेटिभ AI सिकाइ संग्रह](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) हेर्नुहोस् र आफ्नो जनरेटिभ AI ज्ञानलाई अझ उचाइमा पुर्‍याउनुहोस्! - -पाठ १० मा जानुहोस् जहाँ हामी [कम कोड प्रयोग गरी AI अनुप्रयोगहरू कसरी बनाउने](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) बारे अध्ययन गर्नेछौं। - -**अस्वीकरण**: -यो दस्तावेज AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) प्रयोग गरी अनुवाद गरिएको हो। हामी शुद्धताका लागि प्रयासरत छौं, तर कृपया ध्यान दिनुहोस् कि स्वचालित अनुवादमा त्रुटि वा अशुद्धता हुन सक्छ। मूल दस्तावेज यसको मूल भाषामा नै अधिकारिक स्रोत मानिनु पर्छ। महत्वपूर्ण जानकारीका लागि व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न कुनै पनि गलतफहमी वा गलत व्याख्याका लागि हामी जिम्मेवार छैनौं। \ No newline at end of file + + + + diff --git a/translations/ne/12-designing-ux-for-ai-applications/README.md b/translations/ne/12-designing-ux-for-ai-applications/README.md index ca1fe7d16..7ddc12d33 100644 --- a/translations/ne/12-designing-ux-for-ai-applications/README.md +++ b/translations/ne/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# AI अनुप्रयोगहरूको लागि UX डिजाइन - -[![Designing UX for AI Applications](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.ne.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(यो पाठको भिडियो हेर्न माथिको तस्बिरमा क्लिक गर्नुहोस्)_ - -प्रयोगकर्ता अनुभव अनुप्रयोगहरू निर्माण गर्दा अत्यन्त महत्वपूर्ण पक्ष हो। प्रयोगकर्ताहरूले तपाईंको अनुप्रयोगलाई कार्यहरू प्रभावकारी रूपमा गर्न सक्ने गरी प्रयोग गर्न सक्नुपर्छ। प्रभावकारी हुनु एक कुरा हो तर तपाईंले अनुप्रयोगहरू यसरी डिजाइन गर्नुपर्छ कि सबैले सजिलै प्रयोग गर्न सकून्, अर्थात् _सुगम_ बनाउनु पर्छ। यो अध्यायले यस क्षेत्रमा ध्यान केन्द्रित गर्नेछ ताकि तपाईंले यस्तो अनुप्रयोग डिजाइन गर्न सक्नुहोस् जुन मानिसहरूले प्रयोग गर्न चाहन्छन् र प्रयोग गर्न सक्छन्। - -## परिचय - -प्रयोगकर्ता अनुभव भनेको प्रयोगकर्ताले कुनै विशेष उत्पादन वा सेवा, चाहे त्यो प्रणाली, उपकरण वा डिजाइन हो, कसरी अन्तरक्रिया गर्छ र प्रयोग गर्छ भन्ने हो। AI अनुप्रयोगहरू विकास गर्दा, विकासकर्ताहरूले मात्र प्रभावकारी प्रयोगकर्ता अनुभव सुनिश्चित गर्ने होइन, नैतिक पक्षमा पनि ध्यान दिन्छन्। यस पाठमा, हामी प्रयोगकर्ताका आवश्यकताहरू सम्बोधन गर्ने कृत्रिम बुद्धिमत्ता (AI) अनुप्रयोगहरू कसरी निर्माण गर्ने भन्ने कुरा सिक्नेछौं। - -पाठले निम्न क्षेत्रहरू समेट्नेछ: - -- प्रयोगकर्ता अनुभव र प्रयोगकर्ताका आवश्यकताहरू बुझ्ने परिचय -- विश्वास र पारदर्शिताका लागि AI अनुप्रयोगहरू डिजाइन गर्ने -- सहकार्य र प्रतिक्रिया का लागि AI अनुप्रयोगहरू डिजाइन गर्ने - -## सिकाइका लक्ष्यहरू - -यस पाठपछि, तपाईं सक्षम हुनुहुनेछ: - -- प्रयोगकर्ताका आवश्यकताहरू पूरा गर्ने AI अनुप्रयोगहरू कसरी बनाउने बुझ्न। -- विश्वास र सहकार्य प्रवर्द्धन गर्ने AI अनुप्रयोगहरू डिजाइन गर्न। - -### पूर्वआवश्यकता - -केही समय निकालेर [प्रयोगकर्ता अनुभव र डिजाइन सोच](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) बारे थप पढ्नुहोस्। - -## प्रयोगकर्ता अनुभव र प्रयोगकर्ताका आवश्यकताहरू बुझ्ने परिचय - -हाम्रो काल्पनिक शिक्षा स्टार्टअपमा दुई मुख्य प्रयोगकर्ता छन्, शिक्षक र विद्यार्थी। यी दुई प्रयोगकर्ताको फरक फरक आवश्यकताहरू छन्। प्रयोगकर्ता केन्द्रित डिजाइनले प्रयोगकर्तालाई प्राथमिकता दिन्छ र सुनिश्चित गर्छ कि उत्पादनहरू तिनीहरूका लागि सान्दर्भिक र लाभदायक छन्। - -अनुप्रयोगले राम्रो प्रयोगकर्ता अनुभव प्रदान गर्नका लागि **उपयोगी, भरपर्दो, पहुँचयोग्य र रमाइलो** हुनुपर्छ। - -### प्रयोगयोग्यता - -उपयोगी हुनु भनेको अनुप्रयोगले आफ्नो उद्देश्य अनुसार काम गर्न सक्नु हो, जस्तै ग्रेडिङ प्रक्रिया स्वचालित बनाउनु वा पुनरावृत्तिका लागि फ्ल्यासकार्डहरू तयार पार्नु। ग्रेडिङ प्रक्रिया स्वचालित गर्ने अनुप्रयोगले पूर्वनिर्धारित मापदण्ड अनुसार विद्यार्थीहरूको कामलाई सही र प्रभावकारी रूपमा अंक दिन सक्नुपर्छ। त्यस्तै, पुनरावृत्तिका लागि फ्ल्यासकार्डहरू बनाउने अनुप्रयोगले सम्बन्धित र विविध प्रश्नहरू तयार पार्न सक्नुपर्छ। - -### भरपर्दो - -भरपर्दो हुनु भनेको अनुप्रयोगले आफ्नो काम निरन्तर र त्रुटि बिना गर्न सक्नु हो। तर, AI पनि मानिसझैं पूर्ण हुँदैन र त्रुटिहरू हुन सक्छन्। अनुप्रयोगहरूले त्रुटि वा अप्रत्याशित अवस्थाहरू सामना गर्न सक्छन् जसमा मानवीय हस्तक्षेप वा सुधार आवश्यक पर्न सक्छ। तपाईंले त्रुटिहरू कसरी व्यवस्थापन गर्नुहुन्छ? यस पाठको अन्तिम भागमा, हामी AI प्रणाली र अनुप्रयोगहरू कसरी सहकार्य र प्रतिक्रियाका लागि डिजाइन गरिन्छन् भन्ने कुरा छलफल गर्नेछौं। - -### पहुँचयोग्यता - -पहुँचयोग्य हुनु भनेको विभिन्न क्षमताका प्रयोगकर्ताहरू, जसमा अपाङ्गता भएका व्यक्तिहरू पनि समावेश छन्, लाई प्रयोगकर्ता अनुभव विस्तार गर्नु हो, जसले कसैलाई पनि बाहिर नछोडोस्। पहुँचयोग्यता दिशानिर्देश र सिद्धान्तहरू पालना गरेर, AI समाधानहरू सबै प्रयोगकर्ताका लागि थप समावेशी, प्रयोगयोग्य र लाभदायक बन्छन्। - -### रमाइलो - -रमाइलो हुनु भनेको अनुप्रयोग प्रयोग गर्न रमाइलो हुनु हो। आकर्षक प्रयोगकर्ता अनुभवले प्रयोगकर्तामा सकारात्मक प्रभाव पार्न सक्छ जसले उनीहरूलाई पुनः अनुप्रयोगमा फर्कन प्रोत्साहित गर्छ र व्यवसायको आम्दानी बढाउँछ। - -![AI मा UX सम्बन्धी विचारहरू देखाउने तस्बिर](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.ne.png) - -हरेक चुनौती AI ले समाधान गर्न सक्दैन। AI तपाईंको प्रयोगकर्ता अनुभवलाई पूरक बनाउँछ, चाहे त्यो म्यानुअल कार्यहरू स्वचालित बनाउनु होस् वा प्रयोगकर्ता अनुभवलाई व्यक्तिगत बनाउनु होस्। - -## विश्वास र पारदर्शिताका लागि AI अनुप्रयोगहरू डिजाइन गर्ने - -AI अनुप्रयोगहरू डिजाइन गर्दा विश्वास निर्माण अत्यन्त महत्वपूर्ण हुन्छ। विश्वासले प्रयोगकर्तालाई यो सुनिश्चित गराउँछ कि अनुप्रयोगले काम पूरा गर्नेछ, परिणामहरू निरन्तर प्रदान गर्नेछ र ती परिणामहरू प्रयोगकर्ताको आवश्यकतासँग मेल खानेछन्। यस क्षेत्रमा जोखिम भनेको अविश्वास र अत्यधिक विश्वास हो। अविश्वास तब हुन्छ जब प्रयोगकर्ताले AI प्रणालीमा कम वा कुनै विश्वास गर्दैनन्, जसले अनुप्रयोग अस्वीकृत गर्न सक्छ। अत्यधिक विश्वास तब हुन्छ जब प्रयोगकर्ताले AI प्रणालीको क्षमता बढी अनुमान लगाउँछन्, जसले प्रणालीमा अत्यधिक भरोसा गर्न लगाउँछ। उदाहरणका लागि, स्वचालित ग्रेडिङ प्रणालीमा अत्यधिक विश्वास हुँदा शिक्षकले केही कागजातहरू जाँच नगर्न सक्छन् जसले विद्यार्थीहरूलाई अन्यायपूर्ण वा गलत ग्रेड दिन सक्छ, वा प्रतिक्रिया र सुधारका अवसरहरू गुम्न सक्छन्। - -विश्वासलाई डिजाइनको केन्द्रमा राख्न दुई तरिका छन्: व्याख्यात्मकता र नियन्त्रण। - -### व्याख्यात्मकता - -जब AI ले निर्णयहरूमा सहयोग पुर्‍याउँछ, जस्तै भविष्यका पुस्तालाई ज्ञान दिनु, शिक्षक र अभिभावकहरूले AI निर्णयहरू कसरी गरिन्छ बुझ्न आवश्यक हुन्छ। यसलाई व्याख्यात्मकता भनिन्छ - AI अनुप्रयोगहरूले निर्णय कसरी गर्छन् बुझ्नु। व्याख्यात्मकताका लागि डिजाइन गर्दा AI अनुप्रयोगले के गर्न सक्छ भन्ने उदाहरणहरू थपिन्छन्। उदाहरणका लागि, "AI शिक्षकसँग सुरु गर्नुहोस्" भन्दा, प्रणालीले भन्न सक्छ: "AI प्रयोग गरेर सजिलो पुनरावृत्तिका लागि तपाईंका नोटहरू सारांश गर्नुहोस्।" - -![AI अनुप्रयोगहरूमा व्याख्यात्मकताको स्पष्ट उदाहरण सहितको एप ल्यान्डिङ पृष्ठ](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.ne.png) - -अर्को उदाहरण हो AI ले प्रयोगकर्ता र व्यक्तिगत डाटाको प्रयोग गर्ने तरिका। उदाहरणका लागि, विद्यार्थी व्यक्तित्व भएका प्रयोगकर्ताहरूलाई केही सीमितताहरू हुन सक्छन्। AI ले प्रश्नहरूको उत्तर खुलाउन नसक्न सक्छ तर प्रयोगकर्तालाई समस्या समाधान कसरी गर्ने सोच्न मार्गदर्शन गर्न सक्छ। - -![व्यक्तित्व अनुसार प्रश्नहरूको उत्तर दिने AI](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.ne.png) - -व्याख्यात्मकताको अन्तिम मुख्य भाग भनेको व्याख्याहरूलाई सरल बनाउनु हो। विद्यार्थी र शिक्षकहरू AI विशेषज्ञ नहुन सक्छन्, त्यसैले अनुप्रयोगले के गर्न सक्छ वा सक्दैन भन्ने व्याख्या सरल र बुझ्न सजिलो हुनुपर्छ। - -![AI क्षमताहरूमा सरल व्याख्या](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.ne.png) - -### नियन्त्रण - -जनरेटिभ AI ले AI र प्रयोगकर्ताबीच सहकार्य सिर्जना गर्छ, जहाँ प्रयोगकर्ताले विभिन्न परिणामका लागि प्रॉम्प्टहरू परिमार्जन गर्न सक्छ। थप रूपमा, एक पटक परिणाम उत्पन्न भएपछि, प्रयोगकर्ताले परिणामहरू परिमार्जन गर्न सक्नुपर्छ जसले उनीहरूलाई नियन्त्रणको अनुभूति दिन्छ। उदाहरणका लागि, Bing प्रयोग गर्दा तपाईंले आफ्नो प्रॉम्प्टलाई ढाँचा, स्वर र लम्बाइका आधारमा अनुकूलन गर्न सक्नुहुन्छ। साथै, तपाईंले आफ्नो आउटपुटमा परिवर्तन थप्न र परिमार्जन गर्न सक्नुहुन्छ, तल देखाइएको जस्तै: - -![प्रॉम्प्ट र आउटपुट परिमार्जन गर्ने विकल्पसहित Bing खोज परिणाम](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.ne.png) - -Bing मा अर्को सुविधा जसले प्रयोगकर्तालाई अनुप्रयोगमा नियन्त्रण दिन्छ भनेको AI ले प्रयोग गर्ने डाटामा सहभागी हुन र बाहिर निस्कन सक्ने क्षमता हो। विद्यालय अनुप्रयोगका लागि, विद्यार्थीले आफ्नो नोटहरू साथै शिक्षकका स्रोतहरूलाई पुनरावृत्तिका सामग्रीको रूपमा प्रयोग गर्न चाहन सक्छ। - -![प्रॉम्प्ट र आउटपुट परिमार्जन गर्ने विकल्पसहित Bing खोज परिणाम](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.ne.png) - -> AI अनुप्रयोगहरू डिजाइन गर्दा, प्रयोगकर्ताहरूले यसको क्षमतामा अत्यधिक विश्वास नगर्न र अवास्तविक अपेक्षा नबनाउन जानाजानी प्रयास गर्नु आवश्यक छ। यसको एउटा तरिका भनेको प्रॉम्प्ट र परिणामबीच केही अवरोध सिर्जना गर्नु हो। प्रयोगकर्तालाई सम्झाउनु कि यो AI हो, कुनै मानव होइन। - -## सहकार्य र प्रतिक्रियाका लागि AI अनुप्रयोगहरू डिजाइन गर्ने - -पहिले भनिएझैं, जनरेटिभ AI ले प्रयोगकर्ता र AI बीच सहकार्य सिर्जना गर्छ। अधिकांश अन्तरक्रियाहरूमा प्रयोगकर्ताले प्रॉम्प्ट दिन्छ र AI ले परिणाम उत्पन्न गर्छ। यदि परिणाम गलत भयो भने के हुन्छ? त्रुटि आएमा अनुप्रयोगले कसरी व्यवहार गर्छ? के AI प्रयोगकर्तालाई दोष दिन्छ वा त्रुटि व्याख्या गर्न समय लिन्छ? - -AI अनुप्रयोगहरू प्रतिक्रिया लिन र दिन सक्षम हुनुपर्छ। यसले मात्र AI प्रणालीलाई सुधार गर्न मद्दत गर्दैन, प्रयोगकर्तासँग विश्वास पनि बनाउँछ। डिजाइनमा प्रतिक्रिया लूप समावेश गर्नुपर्छ, जस्तै परिणाममा सिधा थम्ब्स अप वा डाउन दिन सकिने सुविधा। - -अर्को तरिका भनेको प्रणालीका क्षमताहरू र सीमाहरू स्पष्ट रूपमा सञ्चार गर्नु हो। जब प्रयोगकर्ताले AI क्षमताभन्दा बाहिर केही अनुरोध गर्छ, त्यसलाई कसरी व्यवस्थापन गर्ने तरिका पनि हुनुपर्छ, तल देखाइएको जस्तै। - -![प्रतिक्रिया दिने र त्रुटि व्यवस्थापन गर्ने](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.ne.png) - -प्रणाली त्रुटिहरू सामान्य हुन्छन् जहाँ प्रयोगकर्ताले AI को दायराभन्दा बाहिर जानकारी चाहन सक्छ वा अनुप्रयोगले प्रयोगकर्ताले कति प्रश्न/विषयहरूमा सारांश बनाउन सक्छ भन्ने सीमितता हुन सक्छ। उदाहरणका लागि, इतिहास र गणितमा मात्र तालिम प्राप्त AI अनुप्रयोग भूगोल सम्बन्धी प्रश्नहरू सम्हाल्न नसक्न सक्छ। यसलाई कम गर्न AI प्रणालीले यस्तो जवाफ दिन सक्छ: "माफ गर्नुहोस्, हाम्रो उत्पादन निम्न विषयहरूमा तालिम प्राप्त छ....., तपाईंले सोध्नुभएको प्रश्नको जवाफ दिन सक्दिन।" - -AI अनुप्रयोगहरू पूर्ण हुँदैनन्, त्यसैले तिनीहरूले गल्ती गर्न सक्छन्। तपाईंको अनुप्रयोग डिजाइन गर्दा, प्रयोगकर्ताबाट प्रतिक्रिया लिन र त्रुटि व्यवस्थापन गर्न सजिलो र स्पष्ट तरिका बनाउनुपर्छ। - -## कार्य - -अहिलेसम्म तपाईंले बनाएका कुनै पनि AI अनुप्रयोगहरू लिएर, तलका कदमहरू तपाईंको अनुप्रयोगमा लागू गर्ने बारे विचार गर्नुहोस्: - -- **रमाइलो:** तपाईंको अनुप्रयोगलाई कसरी अझ रमाइलो बनाउन सकिन्छ? के तपाईं सबै ठाउँमा व्याख्या थप्दै हुनुहुन्छ? के तपाईं प्रयोगकर्तालाई अन्वेषण गर्न प्रोत्साहित गर्दै हुनुहुन्छ? तपाईंका त्रुटि सन्देशहरू कसरी लेख्दै हुनुहुन्छ? - -- **प्रयोगयोग्यता:** वेब अनुप्रयोग बनाउँदै हुनुहुन्छ भने, सुनिश्चित गर्नुहोस् कि तपाईंको अनुप्रयोग माउस र किबोर्ड दुवैबाट सजिलै नेभिगेट गर्न सकिन्छ। - -- **विश्वास र पारदर्शिता:** AI र यसको परिणाममा पूर्ण विश्वास नगर्नुहोस्, परिणाम प्रमाणित गर्न मान्छे कसरी समावेश गर्ने भन्ने बारे विचार र कार्यान्वयन गर्नुहोस्। साथै, विश्वास र पारदर्शिता प्राप्त गर्ने अन्य तरिकाहरू पनि विचार र कार्यान्वयन गर्नुहोस्। - -- **नियन्त्रण:** प्रयोगकर्तालाई अनुप्रयोगमा प्रदान गर्ने डाटामा नियन्त्रण दिनुहोस्। AI अनुप्रयोगमा प्रयोगकर्ताले डाटा सङ्कलनमा सहभागी हुन र बाहिर निस्कन सक्ने तरिका कार्यान्वयन गर्नुहोस्। - -## आफ्नो सिकाइ जारी राख्नुहोस्! - -यस पाठ पूरा गरेपछि, हाम्रो [जनरेटिभ AI सिकाइ संग्रह](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) हेर्नुहोस् र आफ्नो जनरेटिभ AI ज्ञानलाई अझ उचाइमा पुर्‍याउनुहोस्! - -पाठ १३ मा जानुहोस्, जहाँ हामी [AI अनुप्रयोगहरूको सुरक्षा](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) कसरी गर्ने भन्ने कुरा हेर्नेछौं! - -**अस्वीकरण**: -यो दस्तावेज AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) प्रयोग गरी अनुवाद गरिएको हो। हामी शुद्धताका लागि प्रयासरत छौं भने पनि, कृपया ध्यान दिनुहोस् कि स्वचालित अनुवादमा त्रुटि वा अशुद्धता हुन सक्छ। मूल दस्तावेज यसको मूल भाषामा नै अधिकारिक स्रोत मानिनु पर्छ। महत्वपूर्ण जानकारीका लागि व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न कुनै पनि गलतफहमी वा गलत व्याख्याका लागि हामी जिम्मेवार छैनौं। \ No newline at end of file + + + diff --git a/translations/ne/README.md b/translations/ne/README.md index 30cf728ef..2ec9648ef 100644 --- a/translations/ne/README.md +++ b/translations/ne/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.ne.png) - -### Generative AI एप्लिकेसनहरू बनाउन सुरु गर्न आवश्यक सबै कुरा सिकाउने २१ पाठहरू - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 बहुभाषी समर्थन - -#### GitHub Action मार्फत समर्थित (स्वचालित र सधैं अपडेट हुने) - -[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](./README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md) - -# Generative AI for Beginners (संस्करण ३) - एक कोर्स - -Microsoft Cloud Advocates द्वारा तयार गरिएको हाम्रो २१-पाठको व्यापक कोर्समार्फत Generative AI एप्लिकेसनहरू बनाउनका लागि आधारभूत कुरा सिक्नुहोस्। - -## 🌱 सुरु गर्दै - -यस कोर्समा २१ पाठहरू छन्। प्रत्येक पाठले आफ्नो विषय समेट्छ, त्यसैले जहाँ मन लाग्यो त्यहाँबाट सुरु गर्न सक्नुहुन्छ! - -पाठहरूलाई "Learn" (सिक्ने) र "Build" (बनाउने) मा वर्गीकृत गरिएको छ। "Learn" पाठहरूले Generative AI को अवधारणा बुझाउँछन् भने "Build" पाठहरूले अवधारणा र सम्भव भएमा **Python** र **TypeScript** मा कोड उदाहरणहरू पनि दिन्छन्। - -.NET विकासकर्ताहरूका लागि [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) पनि उपलब्ध छ! - -हरेक पाठमा थप सिक्नका लागि "Keep Learning" खण्ड पनि समावेश गरिएको छ। - -## के चाहिन्छ -### यस कोर्सको कोड चलाउन तपाईंले यी मध्ये कुनै एक प्रयोग गर्न सक्नुहुन्छ: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **पाठहरू:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **पाठहरू:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **पाठहरू:** "oai-assignment" - -- Python वा TypeScript को आधारभूत ज्ञान उपयोगी हुन्छ - \*पूर्ण नयाँहरूका लागि यी [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) र [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) कोर्सहरू हेर्नुहोस् -- आफ्नो GitHub खातामा [यो सम्पूर्ण रिपो फोर्क गर्न](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) GitHub खाता आवश्यक छ - -हामीले तपाईंको विकास वातावरण सेटअप गर्न सहयोग पुर्‍याउन **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** नामक पाठ तयार पारेका छौं। - -पछाडि सजिलै फेला पार्न [यो रिपोमा स्टार (🌟) दिन नबिर्सनुहोस्](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst)। - -## 🧠 तयार हुनुहोस् डिप्लोय गर्न? - -यदि तपाईं थप उन्नत कोड नमूनाहरू खोज्दै हुनुहुन्छ भने, हाम्रो [Generative AI कोड नमूनाहरूको संग्रह](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) हेर्नुहोस्, जसमा **Python** र **TypeScript** दुवै छन्। - -## 🗣️ अन्य सिक्नेहरूलाई भेट्नुहोस्, सहयोग पाउनुहोस् - -यस कोर्स लिइरहेका अन्य सिक्नेहरूसँग भेटघाट र नेटवर्किङ गर्न र सहयोग पाउन हाम्रो [अधिकारिक Azure AI Foundry Discord सर्भर](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) मा सामेल हुनुहोस्। - -प्रश्न सोध्न वा उत्पादन प्रतिक्रिया दिन हाम्रो [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum) मा GitHub मा सहभागी हुनुहोस्। - -## 🚀 स्टार्टअप बनाउँदै हुनुहुन्छ? - -[Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) मा साइन अप गरेर **निःशुल्क OpenAI क्रेडिटहरू** र Azure OpenAI Services मार्फत OpenAI मोडेलहरू पहुँच गर्न **Azure क्रेडिटहरूमा $१५०,००० सम्म** प्राप्त गर्नुहोस्। - -## 🙏 सहयोग गर्न चाहनुहुन्छ? - -के तपाईं सल्लाह दिन चाहनुहुन्छ वा स्पेलिङ वा कोडमा त्रुटि भेट्टाउनुभएको छ? [इश्यू उठाउनुहोस्](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) वा [पुल रिक्वेस्ट बनाउनुहोस्](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 प्रत्येक पाठमा समावेश छ: - -- विषयको छोटो भिडियो परिचय -- README मा लेखिएको पाठ -- Azure OpenAI र OpenAI API समर्थन गर्ने Python र TypeScript कोड नमूनाहरू -- थप सिक्नका लागि स्रोतहरूका लिंकहरू - -## 🗃️ पाठहरू - -| # | **पाठ लिंक** | **विवरण** | **भिडियो** | **थप सिकाइ** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **सिक्नुहोस्:** आफ्नो विकास वातावरण कसरी सेटअप गर्ने | भिडियो चाँडै आउनेछ | [थप जान्नुहोस्](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Generative AI र LLMs परिचय](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **सिक्नुहोस्:** Generative AI के हो र Large Language Models (LLMs) कसरी काम गर्छन् बुझ्नुहोस् | [भिडियो](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [थप जान्नुहोस्](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [विभिन्न LLMs अन्वेषण र तुलना](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **सिक्नुहोस्:** आफ्नो प्रयोगका लागि सही मोडेल कसरी छान्ने | [भिडियो](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [थप जान्नुहोस्](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [जिम्मेवारीपूर्वक Generative AI प्रयोग](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **सिक्नुहोस्:** Generative AI एप्लिकेसनहरू जिम्मेवारीपूर्वक कसरी बनाउने | [भिडियो](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [थप जान्नुहोस्](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Prompt Engineering का आधारभूत कुरा बुझ्नुहोस्](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **सिक्नुहोस्:** Prompt Engineering का उत्कृष्ट अभ्यासहरू हातमा लिएर | [भिडियो](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [थप जान्नुहोस्](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [उन्नत Prompts सिर्जना गर्दै](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **सिक्नुहोस्:** आफ्नो prompts को परिणाम सुधार्न Prompt Engineering प्रविधिहरू कसरी लागू गर्ने | [भिडियो](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [थप जान्नुहोस्](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [टेक्स्ट जेनेरेसन एप्लिकेसनहरू बनाउँदै](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **बनाउनुहोस्:** Azure OpenAI / OpenAI API प्रयोग गरेर टेक्स्ट जेनेरेसन एप्लिकेसन | [भिडियो](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [थप जान्नुहोस्](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [च्याट एप्लिकेसनहरू बनाउँदै](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **बनाउनुहोस्:** च्याट एप्लिकेसनहरू कुशलतापूर्वक निर्माण र एकीकृत गर्ने प्रविधिहरू। | [भिडियो](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [थप जान्नुहोस्](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [सर्च एप्लिकेसनहरू र भेक्टर डाटाबेसहरू बनाउँदै](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **बनाउनुहोस्:** डाटाको खोजी गर्न Embeddings प्रयोग गर्ने सर्च एप्लिकेसन। | [भिडियो](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [थप जान्नुहोस्](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [इमेज जेनेरेसन एप्लिकेसनहरू बनाउँदै](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **बनाउनुहोस्:** एउटा इमेज जेनेरेसन एप्लिकेसन | [भिडियो](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [थप जान्नुहोस्](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [लो कोड AI एप्लिकेसनहरू बनाउँदै](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **बनाउनुहोस्:** Low Code उपकरणहरू प्रयोग गरेर Generative AI एप्लिकेसन | [भिडियो](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [थप जान्नुहोस्](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [फंक्शन कलिङसँग बाह्य एप्लिकेसनहरू एकीकृत गर्दै](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **बनाउनुहोस्:** फंक्शन कलिङ के हो र एप्लिकेसनहरूमा यसको प्रयोगका केसहरू | [भिडियो](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [थप जान्नुहोस्](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [AI एप्लिकेसनहरूको लागि UX डिजाइन गर्दै](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **सिक्नुहोस्:** Generative AI एप्लिकेसन विकास गर्दा UX डिजाइन सिद्धान्तहरू कसरी लागू गर्ने | [भिडियो](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [थप जान्नुहोस्](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [तपाईंको Generative AI एप्लिकेसनहरू सुरक्षित गर्दै](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **सिक्नुहोस्:** AI प्रणालीहरूमा हुने खतरा र जोखिमहरू र ती प्रणालीहरूलाई कसरी सुरक्षित गर्ने। | [भिडियो](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [थप जान्नुहोस्](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [Generative AI एप्लिकेसनको जीवनचक्र](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **सिक्नुहोस्:** LLM जीवनचक्र र LLMOps व्यवस्थापन गर्नका लागि उपकरण र मेट्रिक्सहरू | [भिडियो](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [थप जान्नुहोस्](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) र भेक्टर डाटाबेसहरू](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **बनाउनुहोस्:** RAG Framework प्रयोग गरेर भेक्टर डाटाबेसबाट embeddings पुनः प्राप्त गर्ने एप्लिकेसन | [भिडियो](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [थप जान्नुहोस्](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [ओपन सोर्स मोडेलहरू र Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **बनाउनुहोस्:** Hugging Face मा उपलब्ध ओपन सोर्स मोडेलहरू प्रयोग गरेर एप्लिकेसन | [भिडियो](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [थप जान्नुहोस्](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI एजेन्टहरू](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **बनाउनुहोस्:** AI Agent Framework प्रयोग गरेर एप्लिकेसन | [भिडियो](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [थप जान्नुहोस्](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [LLM हरूलाई फाइन-ट्युन गर्दै](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **सिक्नुहोस्:** LLM हरूलाई फाइन-ट्युन गर्ने के हो, किन र कसरी गर्ने बारेमा | [भिडियो](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [थप जान्नुहोस्](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [SLM हरूसँग बनाउँदै](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **सिक्नुहोस्:** साना भाषा मोडेलहरूसँग निर्माण गर्दा हुने फाइदाहरू | भिडियो चाँडै आउनेछ | [थप जान्नुहोस्](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Mistral मोडेलहरूसँग बनाउँदै](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **सिक्नुहोस्:** Mistral परिवारका मोडेलहरूको विशेषताहरू र भिन्नताहरू | भिडियो चाँडै आउनेछ | [थप जान्नुहोस्](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Meta मोडेलहरूसँग बनाउँदै](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **सिक्नुहोस्:** Meta परिवारका मोडेलहरूको विशेषताहरू र भिन्नताहरू | भिडियो चाँडै आउनेछ | [थप जान्नुहोस्](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 विशेष धन्यवाद - -[**John Aziz**](https://www.linkedin.com/in/john0isaac/) लाई सबै GitHub Actions र workflows सिर्जना गरेकोमा विशेष धन्यवाद - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) लाई प्रत्येक पाठमा सिक्ने र कोड अनुभव सुधार गर्न महत्वपूर्ण योगदान दिएकोमा धन्यवाद। - -## 🎒 अन्य कोर्सहरू - -हाम्रो टोलीले अन्य कोर्सहरू पनि उत्पादन गर्छ! हेर्नुहोस्: - -- [**नयाँ** Model Context Protocol for Beginners](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI Agents for Beginners](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Generative AI for Beginners using .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Generative AI for Beginners using JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML for Beginners](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Data Science for Beginners](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI for Beginners](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Cybersecurity for Beginners](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Web Dev for Beginners](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT for Beginners](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR Development for Beginners](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Mastering GitHub Copilot for AI Paired Programming](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Mastering GitHub Copilot for C#/.NET Developers](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Choose Your Own Copilot Adventure](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**अस्वीकरण**: -यो दस्तावेज AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) प्रयोग गरी अनुवाद गरिएको हो। हामी शुद्धताका लागि प्रयासरत छौं, तर कृपया ध्यान दिनुहोस् कि स्वचालित अनुवादमा त्रुटि वा अशुद्धता हुन सक्छ। मूल दस्तावेज यसको मूल भाषामा नै अधिकारिक स्रोत मानिनुपर्छ। महत्वपूर्ण जानकारीका लागि व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न कुनै पनि गलतफहमी वा गलत व्याख्याका लागि हामी जिम्मेवार छैनौं। \ No newline at end of file + + + + diff --git a/translations/nl/00-course-setup/01-setup-cloud.md b/translations/nl/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..bd9af485e --- /dev/null +++ b/translations/nl/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/nl/00-course-setup/02-setup-local.md b/translations/nl/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..0214f8922 --- /dev/null +++ b/translations/nl/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/nl/00-course-setup/03-providers.md b/translations/nl/00-course-setup/03-providers.md new file mode 100644 index 000000000..90c780a9e --- /dev/null +++ b/translations/nl/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/nl/00-course-setup/README.md b/translations/nl/00-course-setup/README.md index cb5ed79fa..c71f77f11 100644 --- a/translations/nl/00-course-setup/README.md +++ b/translations/nl/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# Aan de slag met deze cursus - -We zijn erg enthousiast dat je deze cursus gaat starten en benieuwd wat je geïnspireerd raakt om te bouwen met Generative AI! - -Om je succes te garanderen, geeft deze pagina een overzicht van de installatie stappen, technische vereisten en waar je hulp kunt krijgen indien nodig. - -## Installatiestappen - -Om met deze cursus te beginnen, moet je de volgende stappen doorlopen. - -### 1. Fork deze Repo - -[Fork deze hele repo](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) naar je eigen GitHub-account zodat je de code kunt aanpassen en de uitdagingen kunt voltooien. Je kunt ook [deze repo een ster (🌟) geven](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) om het en gerelateerde repos makkelijker terug te vinden. - -### 2. Maak een codespace aan - -Om afhankelijkheidsproblemen bij het uitvoeren van de code te voorkomen, raden we aan deze cursus te draaien in een [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst). - -Dit kun je aanmaken door de optie `Code` te selecteren in jouw geforkte versie van deze repo en vervolgens de **Codespaces** optie te kiezen. - -![Dialoogvenster met knoppen om een codespace aan te maken](../../../00-course-setup/images/who-will-pay.webp) - -### 3. Je API-sleutels opslaan - -Het is belangrijk om je API-sleutels veilig te bewaren bij het bouwen van welke applicatie dan ook. We raden af om API-sleutels direct in je code op te slaan. Als je deze gegevens in een openbare repository zet, kan dat leiden tot beveiligingsproblemen en zelfs ongewenste kosten als kwaadwillenden ze gebruiken. -Hier is een stapsgewijze handleiding om een `.env` bestand aan te maken voor Python en de `GITHUB_TOKEN` toe te voegen: - -1. **Navigeer naar je projectmap**: Open je terminal of opdrachtprompt en ga naar de hoofdmap van je project waar je het `.env` bestand wilt aanmaken. - - ```bash - cd path/to/your/project - ``` - -2. **Maak het `.env` bestand aan**: Gebruik je favoriete teksteditor om een nieuw bestand met de naam `.env` te maken. Als je de command line gebruikt, kun je `touch` (op Unix-systemen) of `echo` (op Windows) gebruiken: - - Unix-systemen: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **Bewerk het `.env` bestand**: Open het `.env` bestand in een teksteditor (bijv. VS Code, Notepad++ of een andere editor). Voeg de volgende regel toe, waarbij je `your_github_token_here` vervangt door je eigen GitHub-token: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Sla het bestand op**: Sla de wijzigingen op en sluit de teksteditor. - -5. **Installeer `python-dotenv`**: Als je dit nog niet hebt gedaan, moet je het `python-dotenv` pakket installeren om omgevingsvariabelen uit het `.env` bestand in je Python-applicatie te laden. Dit kan met `pip`: - - ```bash - pip install python-dotenv - ``` - -6. **Laad omgevingsvariabelen in je Python-script**: Gebruik in je Python-script het `python-dotenv` pakket om de omgevingsvariabelen uit het `.env` bestand te laden: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -Dat is alles! Je hebt nu succesvol een `.env` bestand aangemaakt, je GitHub-token toegevoegd en deze geladen in je Python-applicatie. - -## Hoe lokaal op je computer te draaien - -Om de code lokaal op je computer uit te voeren, moet je een versie van [Python geïnstalleerd hebben](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -Om vervolgens de repository te gebruiken, moet je deze clonen: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -Als je alles hebt klaargezet, kun je aan de slag! - -## Optionele stappen - -### Miniconda installeren - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) is een lichte installer voor het installeren van [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python en een aantal pakketten. -Conda zelf is een pakketbeheerder die het makkelijk maakt om verschillende Python [**virtuele omgevingen**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) en pakketten op te zetten en te wisselen. Het is ook handig voor het installeren van pakketten die niet via `pip` beschikbaar zijn. - -Je kunt de [MiniConda installatiehandleiding](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) volgen om het op te zetten. - -Met Miniconda geïnstalleerd, moet je de [repository](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) clonen (als je dat nog niet gedaan hebt). - -Vervolgens moet je een virtuele omgeving aanmaken. Om dit met Conda te doen, maak je een nieuw omgevingsbestand aan (_environment.yml_). Als je Codespaces gebruikt, maak dit dan aan in de `.devcontainer` map, dus `.devcontainer/environment.yml`. - -Vul je omgevingsbestand met onderstaande snippet: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Als je fouten krijgt bij het gebruik van conda, kun je handmatig de Microsoft AI Libraries installeren met het volgende commando in een terminal. - -``` -conda install -c microsoft azure-ai-ml -``` - -Het omgevingsbestand specificeert de benodigde dependencies. `` is de naam die je wilt gebruiken voor je Conda-omgeving, en `` is de Python-versie die je wilt gebruiken, bijvoorbeeld `3` voor de nieuwste grote versie van Python. - -Als dat klaar is, kun je je Conda-omgeving aanmaken door onderstaande commando’s in je command line/terminal uit te voeren: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -Raadpleeg de [Conda omgevingen handleiding](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst) als je problemen tegenkomt. - -### Visual Studio Code gebruiken met de Python support extensie - -We raden aan om de editor [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) te gebruiken met de [Python support extensie](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) geïnstalleerd voor deze cursus. Dit is echter een aanbeveling en geen harde vereiste. - -> **Note**: Door de cursusrepository in VS Code te openen, kun je het project opzetten binnen een container. Dit komt door de [speciale `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) map in de cursusrepository. Hierover later meer. - -> **Note**: Zodra je de directory clonet en opent in VS Code, zal het automatisch voorstellen om een Python support extensie te installeren. - -> **Note**: Als VS Code je vraagt om de repository opnieuw te openen in een container, weiger dit verzoek om de lokaal geïnstalleerde versie van Python te gebruiken. - -### Jupyter in de browser gebruiken - -Je kunt ook aan het project werken met de [Jupyter omgeving](https://jupyter.org?WT.mc_id=academic-105485-koreyst) direct in je browser. Zowel klassieke Jupyter als [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) bieden een prettige ontwikkelomgeving met functies zoals auto-aanvullen, code-highlighting, enzovoort. - -Om Jupyter lokaal te starten, ga je naar de terminal/opdrachtprompt, navigeer je naar de cursusmap en voer je uit: - -```bash -jupyter notebook -``` - -of - -```bash -jupyterhub -``` - -Dit start een Jupyter instantie en de URL om deze te bereiken wordt getoond in het commandovenster. - -Als je de URL opent, zie je de cursusindeling en kun je navigeren naar elk `*.ipynb` bestand. Bijvoorbeeld `08-building-search-applications/python/oai-solution.ipynb`. - -### Draaien in een container - -Een alternatief voor het lokaal of in Codespaces opzetten is het gebruik van een [container](../../../00-course-setup/). De speciale `.devcontainer` map in de cursusrepository maakt het mogelijk voor VS Code om het project binnen een container op te zetten. Buiten Codespaces vereist dit de installatie van Docker en eerlijk gezegd is het wat werk, dus we raden dit alleen aan voor mensen met ervaring met containers. - -Een van de beste manieren om je API-sleutels veilig te houden bij het gebruik van GitHub Codespaces is door gebruik te maken van Codespace Secrets. Volg de [Codespaces secrets management](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) handleiding om hier meer over te leren. - -## Lessen en technische vereisten - -De cursus bevat 6 conceptlessen en 6 programmeerlessen. - -Voor de programmeerlessen gebruiken we de Azure OpenAI Service. Je hebt toegang tot de Azure OpenAI service en een API-sleutel nodig om deze code te draaien. Je kunt toegang aanvragen door [deze aanvraag in te vullen](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -Terwijl je wacht op de verwerking van je aanvraag, bevat elke programmeerles ook een `README.md` bestand waarin je de code en resultaten kunt bekijken. - -## De Azure OpenAI Service voor het eerst gebruiken - -Als dit je eerste keer is dat je met de Azure OpenAI service werkt, volg dan deze handleiding over hoe je een [Azure OpenAI Service resource aanmaakt en uitrolt.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## De OpenAI API voor het eerst gebruiken - -Als dit je eerste keer is dat je met de OpenAI API werkt, volg dan de handleiding over hoe je [de interface aanmaakt en gebruikt.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## Ontmoet andere cursisten - -We hebben kanalen aangemaakt in onze officiële [AI Community Discord server](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) om andere cursisten te ontmoeten. Dit is een geweldige manier om te netwerken met gelijkgestemde ondernemers, bouwers, studenten en iedereen die zich wil ontwikkelen in Generative AI. - -[![Join discord channel](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -Het projectteam is ook aanwezig op deze Discord server om cursisten te helpen. - -## Bijdragen - -Deze cursus is een open-source initiatief. Zie je verbeterpunten of problemen, maak dan een [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) aan of meld een [GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -Het projectteam houdt alle bijdragen bij. Bijdragen aan open source is een geweldige manier om je carrière in Generative AI op te bouwen. - -De meeste bijdragen vereisen dat je akkoord gaat met een Contributor License Agreement (CLA) waarin je verklaart dat je het recht hebt en daadwerkelijk toestemming geeft om je bijdrage te gebruiken. Voor details, bezoek de [CLA, Contributor License Agreement website](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Belangrijk: bij het vertalen van tekst in deze repo, zorg ervoor dat je geen machinevertaling gebruikt. We zullen vertalingen via de community controleren, dus meld je alleen aan voor vertalingen in talen waarin je goed bent. - -Wanneer je een pull request indient, bepaalt een CLA-bot automatisch of je een CLA moet aanleveren en voorziet het PR van de juiste labels of opmerkingen. Volg gewoon de instructies van de bot. Dit hoef je maar één keer te doen voor alle repositories die onze CLA gebruiken. - -Dit project heeft de [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst) aangenomen. Voor meer informatie lees de Code of Conduct FAQ of neem contact op via [Email opencode](opencode@microsoft.com) bij vragen of opmerkingen. - -## Laten we beginnen - -Nu je de benodigde stappen hebt voltooid om deze cursus te volgen, beginnen we met een [introductie tot Generative AI en LLMs](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**Disclaimer**: -Dit document is vertaald met behulp van de AI-vertalingsdienst [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, dient u er rekening mee te houden dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het originele document in de oorspronkelijke taal moet als de gezaghebbende bron worden beschouwd. Voor cruciale informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor eventuele misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling. \ No newline at end of file + + + + diff --git a/translations/nl/00-course-setup/SETUP.md b/translations/nl/00-course-setup/SETUP.md deleted file mode 100644 index 6a0819336..000000000 --- a/translations/nl/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# Stel je ontwikkelomgeving in - -We hebben deze repository en cursus opgezet met een [development container](https://containers.dev?WT.mc_id=academic-105485-koreyst) die een universele runtime bevat die Python3, .NET, Node.js en Java-ontwikkeling ondersteunt. De bijbehorende configuratie is gedefinieerd in het `devcontainer.json` bestand in de `.devcontainer/` map in de root van deze repository. - -Om de dev container te activeren, start je deze in [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (voor een cloud-gehoste runtime) of in [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (voor een lokaal gehoste runtime). Lees [deze documentatie](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) voor meer details over hoe dev containers werken binnen VS Code. - -> [!TIP] -> We raden aan GitHub Codespaces te gebruiken voor een snelle start met minimale inspanning. Het biedt een royale [gratis gebruikskorting](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) voor persoonlijke accounts. Stel [timeouts](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) in om inactieve codespaces te stoppen of te verwijderen om je quotum optimaal te benutten. - -## 1. Uitvoeren van opdrachten - -Elke les bevat _optionele_ opdrachten die in één of meerdere programmeertalen kunnen worden aangeboden, waaronder: Python, .NET/C#, Java en JavaScript/TypeScript. Deze sectie geeft algemene richtlijnen voor het uitvoeren van deze opdrachten. - -### 1.1 Python-opdrachten - -Python-opdrachten worden geleverd als applicaties (`.py` bestanden) of Jupyter notebooks (`.ipynb` bestanden). -- Om het notebook uit te voeren, open je het in Visual Studio Code, klik je op _Select Kernel_ (rechtsboven) en kies je de standaard Python 3 optie. Je kunt nu _Run All_ gebruiken om het notebook uit te voeren. -- Om Python-applicaties via de commandoregel uit te voeren, volg je de opdracht-specifieke instructies om ervoor te zorgen dat je de juiste bestanden selecteert en de vereiste argumenten meegeeft. - -## 2. Providers configureren - -Opdrachten **kunnen** ook zo worden ingesteld dat ze werken met één of meerdere Large Language Model (LLM) implementaties via een ondersteunde serviceprovider zoals OpenAI, Azure of Hugging Face. Deze bieden een _gehoste endpoint_ (API) die we programmatisch kunnen benaderen met de juiste inloggegevens (API-sleutel of token). In deze cursus bespreken we de volgende providers: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) met diverse modellen, waaronder de kern GPT-serie. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) voor OpenAI-modellen met focus op enterprise gereedheid - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) voor open-source modellen en inference server - -**Je moet je eigen accounts gebruiken voor deze oefeningen**. Opdrachten zijn optioneel, dus je kunt ervoor kiezen om één, alle of geen van de providers in te stellen, afhankelijk van je interesse. Enkele aanwijzingen voor aanmelding: - -| Aanmelden | Kosten | API-sleutel | Playground | Opmerkingen | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst) | [Prijzen](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst) | [Project-gebaseerd](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [No-Code, Web](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Meerdere modellen beschikbaar | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst) | [Prijzen](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst) | [SDK Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Studio Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Toegang vooraf aanvragen](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) | -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Prijzen](https://huggingface.co/pricing) | [Access Tokens](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst) | [Hugging Chat heeft beperkte modellen](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Volg de onderstaande instructies om deze repository te _configureren_ voor gebruik met verschillende providers. Opdrachten die een specifieke provider vereisen, bevatten een van deze tags in hun bestandsnaam: - - `aoai` - vereist Azure OpenAI endpoint en sleutel - - `oai` - vereist OpenAI endpoint en sleutel - - `hf` - vereist Hugging Face token - -Je kunt één, geen of alle providers configureren. Opdrachten die een provider vereisen zullen een foutmelding geven als de inloggegevens ontbreken. - -### 2.1. Maak een `.env` bestand aan - -We gaan ervan uit dat je de bovenstaande richtlijnen hebt gelezen, je hebt aangemeld bij de relevante provider en de benodigde authenticatiegegevens (API_KEY of token) hebt verkregen. In het geval van Azure OpenAI gaan we ervan uit dat je ook een geldige implementatie hebt van een Azure OpenAI Service (endpoint) met ten minste één GPT-model ingezet voor chat completion. - -De volgende stap is het configureren van je **lokale omgevingsvariabelen** als volgt: - -1. Zoek in de rootmap naar een `.env.copy` bestand dat er ongeveer zo uitziet: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Kopieer dat bestand naar `.env` met het onderstaande commando. Dit bestand is _gitignore-d_, zodat geheimen veilig blijven. - - ```bash - cp .env.copy .env - ``` - -3. Vul de waarden in (vervang de placeholders rechts van `=`) zoals beschreven in de volgende sectie. - -3. (Optioneel) Als je GitHub Codespaces gebruikt, kun je omgevingsvariabelen opslaan als _Codespaces secrets_ die aan deze repository zijn gekoppeld. In dat geval hoef je geen lokaal .env bestand in te stellen. **Let op: deze optie werkt alleen als je GitHub Codespaces gebruikt.** Je moet het .env bestand nog steeds instellen als je Docker Desktop gebruikt. - -### 2.2. Vul het `.env` bestand in - -Laten we snel kijken naar de variabelen om te begrijpen wat ze betekenen: - -| Variabele | Beschrijving | -| :--- | :--- | -| HUGGING_FACE_API_KEY | Dit is het gebruikersaccesstoken dat je in je profiel hebt ingesteld | -| OPENAI_API_KEY | Dit is de autorisatiesleutel voor het gebruik van de service voor niet-Azure OpenAI endpoints | -| AZURE_OPENAI_API_KEY | Dit is de autorisatiesleutel voor het gebruik van die service | -| AZURE_OPENAI_ENDPOINT | Dit is het geïmplementeerde endpoint voor een Azure OpenAI resource | -| AZURE_OPENAI_DEPLOYMENT | Dit is het _text generation_ model deployment endpoint | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | Dit is het _text embeddings_ model deployment endpoint | -| | | - -Opmerking: De laatste twee Azure OpenAI variabelen verwijzen respectievelijk naar een standaardmodel voor chat completion (tekstgeneratie) en vector search (embeddings). Instructies voor het instellen hiervan worden gegeven in de relevante opdrachten. - -### 2.3 Configureer Azure: via Portal - -De Azure OpenAI endpoint- en sleutelwaarden vind je in de [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst), dus laten we daar beginnen. - -1. Ga naar de [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -1. Klik op de optie **Keys and Endpoint** in de zijbalk (menu links). -1. Klik op **Show Keys** - je ziet dan: KEY 1, KEY 2 en Endpoint. -1. Gebruik de waarde van KEY 1 voor AZURE_OPENAI_API_KEY -1. Gebruik de waarde van Endpoint voor AZURE_OPENAI_ENDPOINT - -Vervolgens hebben we de endpoints nodig voor de specifieke modellen die we hebben ingezet. - -1. Klik op de optie **Model deployments** in de zijbalk (linkermenu) voor de Azure OpenAI resource. -1. Klik op de bestemmingspagina op **Manage Deployments** - -Dit brengt je naar de Azure OpenAI Studio website, waar we de andere waarden vinden zoals hieronder beschreven. - -### 2.4 Configureer Azure: via Studio - -1. Navigeer naar [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **vanaf je resource** zoals hierboven beschreven. -1. Klik op het tabblad **Deployments** (zijbalk, links) om de momenteel geïmplementeerde modellen te bekijken. -1. Als je gewenste model niet is geïmplementeerd, gebruik dan **Create new deployment** om het te implementeren. -1. Je hebt een _text-generation_ model nodig - wij raden aan: **gpt-35-turbo** -1. Je hebt een _text-embedding_ model nodig - wij raden aan: **text-embedding-ada-002** - -Werk nu de omgevingsvariabelen bij om de gebruikte _Deployment name_ weer te geven. Dit is meestal dezelfde naam als het model, tenzij je deze expliciet hebt aangepast. Bijvoorbeeld: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**Vergeet niet het .env bestand op te slaan als je klaar bent**. Je kunt het bestand nu sluiten en terugkeren naar de instructies voor het uitvoeren van het notebook. - -### 2.5 Configureer OpenAI: via profiel - -Je OpenAI API-sleutel vind je in je [OpenAI account](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). Als je er nog geen hebt, kun je een account aanmaken en een API-sleutel genereren. Zodra je de sleutel hebt, kun je deze gebruiken om de variabele `OPENAI_API_KEY` in het `.env` bestand in te vullen. - -### 2.6 Configureer Hugging Face: via profiel - -Je Hugging Face token vind je in je profiel onder [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). Deel deze niet openbaar. Maak in plaats daarvan een nieuw token aan voor dit project en kopieer dat in het `.env` bestand onder de variabele `HUGGING_FACE_API_KEY`. _Let op:_ Dit is technisch gezien geen API-sleutel, maar wordt gebruikt voor authenticatie, dus we houden deze naamgeving aan voor consistentie. - -**Disclaimer**: -Dit document is vertaald met behulp van de AI-vertalingsdienst [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, dient u er rekening mee te houden dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het originele document in de oorspronkelijke taal moet als de gezaghebbende bron worden beschouwd. Voor cruciale informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor eventuele misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling. \ No newline at end of file diff --git a/translations/nl/04-prompt-engineering-fundamentals/README.md b/translations/nl/04-prompt-engineering-fundamentals/README.md index 7abf40f07..647f5f715 100644 --- a/translations/nl/04-prompt-engineering-fundamentals/README.md +++ b/translations/nl/04-prompt-engineering-fundamentals/README.md @@ -1,473 +1,15 @@ - -# Prompt Engineering Fundamentals - -[![Prompt Engineering Fundamentals](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.nl.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Introductie -Deze module behandelt essentiële concepten en technieken voor het maken van effectieve prompts in generatieve AI-modellen. De manier waarop je je prompt aan een LLM schrijft, is ook belangrijk. Een zorgvuldig opgestelde prompt kan een betere kwaliteit van de reactie opleveren. Maar wat betekenen termen als _prompt_ en _prompt engineering_ precies? En hoe verbeter ik de prompt _input_ die ik naar de LLM stuur? Dit zijn de vragen die we in dit hoofdstuk en het volgende proberen te beantwoorden. - -_Generatieve AI_ kan nieuwe content creëren (bijvoorbeeld tekst, afbeeldingen, audio, code, enz.) als reactie op gebruikersverzoeken. Dit gebeurt met behulp van _Large Language Models_ zoals de GPT-serie van OpenAI ("Generative Pre-trained Transformer"), die getraind zijn om natuurlijke taal en code te gebruiken. - -Gebruikers kunnen nu met deze modellen communiceren via bekende vormen zoals chat, zonder technische kennis of training. De modellen zijn _prompt-based_ – gebruikers sturen een tekstinvoer (prompt) en krijgen een AI-reactie (completion) terug. Ze kunnen vervolgens iteratief "chatten met de AI" in meertrapsgesprekken, waarbij ze hun prompt verfijnen totdat de reactie aan hun verwachtingen voldoet. - -"Prompts" worden nu de belangrijkste _programmeertaal_ voor generatieve AI-applicaties, waarmee de modellen worden verteld wat ze moeten doen en die de kwaliteit van de teruggegeven reacties beïnvloeden. "Prompt Engineering" is een snelgroeiend vakgebied dat zich richt op het _ontwerpen en optimaliseren_ van prompts om consistente en kwalitatieve reacties op schaal te leveren. - -## Leerdoelen - -In deze les leren we wat Prompt Engineering is, waarom het belangrijk is en hoe we effectievere prompts kunnen maken voor een bepaald model en toepassingsdoel. We begrijpen kernconcepten en best practices voor prompt engineering – en leren over een interactieve Jupyter Notebooks "sandbox"-omgeving waar we deze concepten kunnen toepassen op echte voorbeelden. - -Aan het einde van deze les kunnen we: - -1. Uitleggen wat prompt engineering is en waarom het belangrijk is. -2. De onderdelen van een prompt beschrijven en hoe ze worden gebruikt. -3. Best practices en technieken voor prompt engineering leren. -4. De geleerde technieken toepassen op echte voorbeelden, met behulp van een OpenAI-endpoint. - -## Belangrijke Begrippen - -Prompt Engineering: De praktijk van het ontwerpen en verfijnen van invoer om AI-modellen te sturen naar het produceren van gewenste output. -Tokenization: Het proces waarbij tekst wordt omgezet in kleinere eenheden, tokens genoemd, die een model kan begrijpen en verwerken. -Instruction-Tuned LLMs: Large Language Models (LLM's) die zijn bijgesteld met specifieke instructies om hun reactienauwkeurigheid en relevantie te verbeteren. - -## Leer Sandbox - -Prompt engineering is momenteel meer kunst dan wetenschap. De beste manier om er beter in te worden is door _meer te oefenen_ en een trial-and-error aanpak te hanteren die domeinexpertise combineert met aanbevolen technieken en model-specifieke optimalisaties. - -De Jupyter Notebook die bij deze les hoort, biedt een _sandbox_-omgeving waar je kunt uitproberen wat je leert – terwijl je bezig bent of als onderdeel van de code-uitdaging aan het einde. Om de oefeningen uit te voeren, heb je nodig: - -1. **Een Azure OpenAI API-sleutel** – de service endpoint voor een ingezet LLM. -2. **Een Python-runtime** – waarin de Notebook kan worden uitgevoerd. -3. **Lokale omgevingsvariabelen** – _voltooi nu de [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) stappen om klaar te zijn_. - -De notebook bevat _start_ oefeningen – maar je wordt aangemoedigd om je eigen _Markdown_ (beschrijving) en _Code_ (promptverzoeken) secties toe te voegen om meer voorbeelden of ideeën uit te proberen – en zo je intuïtie voor promptontwerp te ontwikkelen. - -## Geïllustreerde Gids - -Wil je een overzicht van wat deze les behandelt voordat je erin duikt? Bekijk deze geïllustreerde gids, die je een beeld geeft van de belangrijkste onderwerpen en de kernpunten om over na te denken bij elk onderwerp. De lesroute neemt je mee van het begrijpen van de kernconcepten en uitdagingen tot het aanpakken ervan met relevante prompt engineering technieken en best practices. Let op: de sectie "Geavanceerde Technieken" in deze gids verwijst naar inhoud die in het _volgende_ hoofdstuk van dit curriculum wordt behandeld. - -![Geïllustreerde Gids voor Prompt Engineering](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.nl.png) - -## Onze Startup - -Laten we nu bespreken hoe _dit onderwerp_ aansluit bij onze startup-missie om [AI-innovatie naar het onderwijs te brengen](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). We willen AI-gedreven toepassingen voor _gepersonaliseerd leren_ bouwen – dus laten we nadenken over hoe verschillende gebruikers van onze applicatie prompts kunnen "ontwerpen": - -- **Beheerders** kunnen de AI vragen om _curriculumgegevens te analyseren om hiaten in de dekking te identificeren_. De AI kan resultaten samenvatten of visualiseren met code. -- **Docenten** kunnen de AI vragen om _een lesplan te genereren voor een specifieke doelgroep en onderwerp_. De AI kan het gepersonaliseerde plan in een opgegeven formaat opstellen. -- **Studenten** kunnen de AI vragen om _hen te begeleiden bij een moeilijk vak_. De AI kan studenten nu begeleiden met lessen, hints en voorbeelden die zijn afgestemd op hun niveau. - -Dat is nog maar het topje van de ijsberg. Bekijk [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) – een open-source promptsbibliotheek samengesteld door onderwijsdeskundigen – om een breder beeld te krijgen van de mogelijkheden! _Probeer enkele van die prompts uit in de sandbox of gebruik de OpenAI Playground om te zien wat er gebeurt!_ - - - -## Wat is Prompt Engineering? - -We zijn deze les begonnen met het definiëren van **Prompt Engineering** als het proces van het _ontwerpen en optimaliseren_ van tekstinvoer (prompts) om consistente en kwalitatieve reacties (completions) te leveren voor een bepaald toepassingsdoel en model. We kunnen dit zien als een proces in twee stappen: - -- het _ontwerpen_ van de initiële prompt voor een bepaald model en doel -- het _verfijnen_ van de prompt iteratief om de kwaliteit van de reactie te verbeteren - -Dit is per definitie een trial-and-error proces dat gebruikersintuïtie en inspanning vereist om optimale resultaten te behalen. Waarom is het belangrijk? Om die vraag te beantwoorden, moeten we eerst drie concepten begrijpen: - -- _Tokenization_ = hoe het model de prompt "ziet" -- _Base LLMs_ = hoe het basismodel een prompt "verwerkt" -- _Instruction-Tuned LLMs_ = hoe het model nu "taken" kan begrijpen - -### Tokenization - -Een LLM ziet prompts als een _reeks tokens_ waarbij verschillende modellen (of versies van een model) dezelfde prompt op verschillende manieren kunnen tokenizen. Omdat LLMs getraind zijn op tokens (en niet op ruwe tekst), heeft de manier waarop prompts worden getokenized directe invloed op de kwaliteit van de gegenereerde reactie. - -Om een gevoel te krijgen voor hoe tokenization werkt, kun je tools proberen zoals de [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) hieronder. Kopieer je prompt erin en zie hoe deze wordt omgezet in tokens, let daarbij op hoe spaties en leestekens worden behandeld. Let op: dit voorbeeld toont een ouder model (GPT-3) – dus bij gebruik van een nieuwer model kan het resultaat anders zijn. - -![Tokenization](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.nl.png) - -### Concept: Foundation Models - -Zodra een prompt is getokenized, is de primaire functie van het ["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (of Foundation model) het voorspellen van het volgende token in die reeks. Omdat LLMs getraind zijn op enorme tekstdatasets, hebben ze een goed gevoel voor de statistische relaties tussen tokens en kunnen ze die voorspelling met enige zekerheid doen. Let op: ze begrijpen de _betekenis_ van de woorden in de prompt of tokens niet; ze zien alleen een patroon dat ze kunnen "aanvullen" met hun volgende voorspelling. Ze kunnen de reeks blijven voorspellen totdat de gebruiker ingrijpt of een vooraf bepaalde voorwaarde wordt bereikt. - -Wil je zien hoe prompt-gebaseerde completion werkt? Voer de bovenstaande prompt in in de Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) met de standaardinstellingen. Het systeem is zo ingesteld dat het prompts als informatieverzoeken behandelt – je zou dus een completion moeten zien die bij deze context past. - -Maar wat als de gebruiker iets specifieks wil zien dat aan bepaalde criteria of een taakdoel voldoet? Hier komen _instruction-tuned_ LLMs om de hoek kijken. - -![Base LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.nl.png) - -### Concept: Instruction Tuned LLMs - -Een [Instruction Tuned LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) begint met het foundation model en verfijnt dit met voorbeelden of input/output-paren (bijvoorbeeld meertraps "berichten") die duidelijke instructies kunnen bevatten – en de AI probeert die instructie te volgen in zijn reactie. - -Dit maakt gebruik van technieken zoals Reinforcement Learning met Human Feedback (RLHF), waarmee het model kan worden getraind om _instructies te volgen_ en _te leren van feedback_, zodat het reacties produceert die beter geschikt zijn voor praktische toepassingen en relevanter zijn voor gebruikersdoelen. - -Laten we het proberen – ga terug naar de bovenstaande prompt, maar verander nu het _systeembericht_ om de volgende instructie als context te geven: - -> _Vat de inhoud samen die je krijgt voor een leerling van groep 4. Houd het resultaat bij één alinea met 3-5 opsommingstekens._ - -Zie je hoe het resultaat nu is afgestemd op het gewenste doel en formaat? Een docent kan deze reactie nu direct gebruiken in zijn of haar lesmateriaal. - -![Instruction Tuned LLM Chat Completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.nl.png) - -## Waarom hebben we Prompt Engineering nodig? - -Nu we weten hoe prompts door LLMs worden verwerkt, laten we het hebben over _waarom_ we prompt engineering nodig hebben. Het antwoord ligt in het feit dat huidige LLMs een aantal uitdagingen met zich meebrengen die het moeilijker maken om _betrouwbare en consistente completions_ te krijgen zonder inspanning te steken in het bouwen en optimaliseren van prompts. Bijvoorbeeld: - -1. **Modelreacties zijn stochastisch.** De _zelfde prompt_ zal waarschijnlijk verschillende reacties opleveren bij verschillende modellen of modelversies. En het kan zelfs verschillende resultaten geven met hetzelfde model op verschillende momenten. _Prompt engineering technieken kunnen helpen deze variaties te minimaliseren door betere richtlijnen te bieden_. - -1. **Modellen kunnen reacties verzinnen.** Modellen zijn getraind met _grote maar beperkte_ datasets, wat betekent dat ze geen kennis hebben van concepten buiten die trainingsscope. Daardoor kunnen ze reacties produceren die onjuist, verzonnen of zelfs tegenstrijdig zijn met bekende feiten. _Prompt engineering helpt gebruikers om zulke verzinsels te herkennen en te beperken, bijvoorbeeld door AI om bronvermeldingen of redeneringen te vragen_. - -1. **Modelcapaciteiten variëren.** Nieuwere modellen of modelgeneraties hebben uitgebreidere mogelijkheden, maar brengen ook unieke eigenaardigheden en afwegingen mee in kosten en complexiteit. _Prompt engineering kan ons helpen best practices en workflows te ontwikkelen die verschillen abstraheren en zich aanpassen aan model-specifieke eisen op schaalbare en naadloze manieren_. - -Laten we dit in actie zien in de OpenAI of Azure OpenAI Playground: - -- Gebruik dezelfde prompt met verschillende LLM-implementaties (bijv. OpenAI, Azure OpenAI, Hugging Face) – zag je de verschillen? -- Gebruik dezelfde prompt herhaaldelijk met dezelfde LLM-implementatie (bijv. Azure OpenAI playground) – hoe verschilden deze reacties? - -### Voorbeeld van Verzinsels - -In deze cursus gebruiken we de term **"fabrication"** om het fenomeen te beschrijven waarbij LLMs soms feitelijk onjuiste informatie genereren vanwege beperkingen in hun training of andere factoren. Je hebt dit misschien ook wel eens gehoord als _"hallucinaties"_ in populaire artikelen of wetenschappelijke publicaties. Wij raden echter sterk aan om de term _"fabrication"_ te gebruiken, zodat we het gedrag niet per ongeluk antropomorfiseren door een menselijk kenmerk toe te schrijven aan een door een machine gegenereerd resultaat. Dit sluit ook aan bij de [Responsible AI-richtlijnen](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) vanuit terminologieperspectief, waarbij termen worden vermeden die in sommige contexten als ongepast of niet-inclusief kunnen worden gezien. - -Wil je een idee krijgen van hoe fabrications werken? Denk aan een prompt die de AI instrueert om content te genereren over een niet-bestaand onderwerp (zodat het niet in de trainingsdata voorkomt). Bijvoorbeeld – ik probeerde deze prompt: -# Lesplan: De Marsoorlog van 2076 - -## Doelstellingen -- Begrijpen wat de Marsoorlog van 2076 inhield en waarom deze plaatsvond. -- De belangrijkste gebeurtenissen en betrokken partijen kunnen beschrijven. -- De impact van de oorlog op de mensheid en Marskolonies analyseren. -- Kritisch nadenken over de ethische en politieke aspecten van interplanetaire conflicten. - -## Lesduur -90 minuten - -## Benodigdheden -- Projector of smartboard -- Kaarten van Mars en de Aarde -- Video’s/documentaires over de Marsoorlog (optioneel) -- Werkbladen met vragen en opdrachten - -## Lesopbouw - -### 1. Introductie (10 minuten) -- Begin met een korte uitleg over de kolonisatie van Mars vóór 2076. -- Bespreek de spanningen tussen Aardse regeringen en Marskolonies. -- Introduceer het concept van de Marsoorlog van 2076. - -### 2. Achtergrond en oorzaken (15 minuten) -- Leg uit wat de belangrijkste oorzaken waren van de oorlog, zoals grondstoffen, politieke autonomie en technologische conflicten. -- Bespreek de rol van verschillende facties en leiders. -- Gebruik kaarten om de strategische posities te tonen. - -### 3. Belangrijkste gebeurtenissen (20 minuten) -- Overloop de belangrijkste veldslagen en diplomatieke onderhandelingen. -- Bespreek de inzet van nieuwe technologieën en wapens. -- Laat eventueel een korte video zien die de oorlog samenvat. - -### 4. Gevolgen en impact (15 minuten) -- Analyseer de gevolgen voor Mars en de Aarde, zowel politiek als sociaal. -- Bespreek de veranderingen in wetgeving en ruimtevaartbeleid na de oorlog. -- Reflecteer op de menselijke kosten en de ethische dilemma’s. - -### 5. Groepsopdracht (20 minuten) -- Verdeel de klas in groepen en geef elke groep een casus of stelling over de Marsoorlog. -- Laat ze een korte presentatie voorbereiden waarin ze hun standpunt verdedigen. -- Voorbeelden van stellingen: - - "De Marskolonies hadden recht op onafhankelijkheid." - - "De Aarde had het recht om militair op te treden." - - "Technologische vooruitgang rechtvaardigt geen oorlog." - -### 6. Afsluiting en discussie (10 minuten) -- Laat elke groep hun presentatie geven. -- Bespreek als klas de verschillende standpunten. -- Vat de belangrijkste lessen samen en beantwoord eventuele vragen. - -## Huiswerk -- Schrijf een essay van 300 woorden over wat jij zou doen als je een leider was tijdens de Marsoorlog. -- Lees het artikel @@INLINE_CODE_1@@ voor meer achtergrondinformatie. - -## Aanvullende bronnen -- [!NOTE] Bekijk de documentaire "Marsoorlog 2076: Een toekomstverhaal" voor extra inzicht. -- [!TIP] Gebruik de interactieve kaart op @@URL_1@@ om de veldslagen beter te begrijpen. -Een webzoekopdracht liet zien dat er fictieve verhalen waren (bijvoorbeeld televisieseries of boeken) over Martiaanse oorlogen – maar geen enkele in 2076. Gezond verstand zegt ons ook dat 2076 _in de toekomst_ ligt en dus niet gekoppeld kan worden aan een echte gebeurtenis. - -Wat gebeurt er dus als we deze prompt uitvoeren bij verschillende LLM-aanbieders? - -> **Reactie 1**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.nl.png) - -> **Reactie 2**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.nl.png) - -> **Reactie 3**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.nl.png) - -Zoals verwacht levert elk model (of modelversie) iets andere antwoorden dankzij de stochastische aard en verschillen in modelcapaciteit. Zo richt het ene model zich op een doelgroep van groep 8, terwijl het andere uitgaat van een middelbare scholier. Maar alle drie de modellen gaven antwoorden die een niet-ingewijde gebruiker zouden kunnen overtuigen dat het evenement echt was. - -Prompt engineering-technieken zoals _metaprompting_ en _temperature configuration_ kunnen modelficties tot op zekere hoogte verminderen. Nieuwe prompt engineering _architecturen_ integreren ook naadloos nieuwe tools en technieken in de promptstroom, om sommige van deze effecten te beperken of te verminderen. - -## Case Study: GitHub Copilot - -Laten we deze sectie afsluiten met een indruk van hoe prompt engineering wordt toegepast in oplossingen uit de praktijk, door te kijken naar één Case Study: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot is jouw "AI Pair Programmer" – het zet tekstprompts om in code-aanvullingen en is geïntegreerd in je ontwikkelomgeving (bijvoorbeeld Visual Studio Code) voor een naadloze gebruikerservaring. Zoals gedocumenteerd in de onderstaande blogserie, was de eerste versie gebaseerd op het OpenAI Codex-model – waarbij ingenieurs snel inzagen dat het nodig was het model bij te stellen en betere prompt engineering-technieken te ontwikkelen om de codekwaliteit te verbeteren. In juli [introduceerden ze een verbeterd AI-model dat verder gaat dan Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) voor nog snellere suggesties. - -Lees de berichten op volgorde om hun leerproces te volgen. - -- **Mei 2023** | [GitHub Copilot wordt beter in het begrijpen van je code](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **Mei 2023** | [Inside GitHub: Werken met de LLMs achter GitHub Copilot](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Jun 2023** | [Hoe schrijf je betere prompts voor GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Jul 2023** | [.. GitHub Copilot gaat verder dan Codex met verbeterd AI-model](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Jul 2023** | [Een ontwikkelaarsgids voor prompt engineering en LLMs](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **Sep 2023** | [Hoe bouw je een enterprise LLM-app: lessen van GitHub Copilot](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -Je kunt ook hun [Engineering blog](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) doorzoeken voor meer berichten zoals [deze](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) die laten zien hoe deze modellen en technieken worden _toegepast_ om echte toepassingen aan te sturen. - ---- - - - -## Promptconstructie - -We hebben gezien waarom prompt engineering belangrijk is – laten we nu begrijpen hoe prompts worden _opgebouwd_ zodat we verschillende technieken kunnen beoordelen voor effectiever promptontwerp. - -### Basisprompt - -Laten we beginnen met de basisprompt: een tekstinvoer die zonder verdere context naar het model wordt gestuurd. Hier is een voorbeeld – wanneer we de eerste paar woorden van het Amerikaanse volkslied naar de OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst) sturen, vult het direct de reactie aan met de volgende regels, wat het basisvoorspellingsgedrag illustreert. - -| Prompt (Input) | Completion (Output) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | Het klinkt alsof je de tekst van "The Star-Spangled Banner," het Amerikaanse volkslied, begint. De volledige tekst is ... | - -### Complexe prompt - -Laten we nu context en instructies toevoegen aan die basisprompt. De [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) stelt ons in staat een complexe prompt op te bouwen als een verzameling _berichten_ met: - -- Input/output-paren die de _user_-invoer en _assistant_-reactie weerspiegelen. -- Een systeembericht dat de context voor het gedrag of de persoonlijkheid van de assistant instelt. - -De aanvraag ziet er nu als volgt uit, waarbij de _tokenisatie_ effectief relevante informatie uit context en gesprek vastlegt. Het veranderen van de systeemcontext kan net zo veel invloed hebben op de kwaliteit van de antwoorden als de ingevoerde gebruikersinput. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Instructieprompt - -In de bovenstaande voorbeelden was de gebruikersprompt een eenvoudige tekstvraag die geïnterpreteerd kan worden als een informatieverzoek. Met _instructie_-prompts kunnen we die tekst gebruiken om een taak gedetailleerder te specificeren, waardoor de AI beter wordt aangestuurd. Hier is een voorbeeld: - -| Prompt (Input) | Completion (Output) | Type instructie | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Schrijf een beschrijving van de Amerikaanse Burgeroorlog | _gaf een eenvoudige alinea terug_ | Simpel | -| Schrijf een beschrijving van de Amerikaanse Burgeroorlog. Geef belangrijke data en gebeurtenissen en beschrijf hun betekenis | _gaf een alinea gevolgd door een lijst met belangrijke data en beschrijvingen_ | Complex | -| Schrijf een beschrijving van de Amerikaanse Burgeroorlog in 1 alinea. Geef 3 opsommingstekens met belangrijke data en hun betekenis. Geef 3 extra opsommingstekens met belangrijke historische figuren en hun bijdragen. Lever de output als een JSON-bestand | _geeft uitgebreidere details in een tekstvak, geformatteerd als JSON die je kunt kopiëren en plakken in een bestand en indien nodig valideren_ | Complex. Geformatteerd. | - -## Primaire inhoud - -In de bovenstaande voorbeelden was de prompt nog vrij open, waardoor het LLM kon bepalen welk deel van zijn voorgetrainde dataset relevant was. Met het ontwerpprincipe _primaire inhoud_ wordt de invoertekst opgesplitst in twee delen: - -- een instructie (actie) -- relevante inhoud (die de actie beïnvloedt) - -Hier is een voorbeeld waarbij de instructie is om "dit samen te vatten in 2 zinnen". - -| Prompt (Input) | Completion (Output) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter is de vijfde planeet vanaf de zon en de grootste in het zonnestelsel. Het is een gasreus met een massa van een duizendste van die van de zon, maar tweeënhalf keer die van alle andere planeten in het zonnestelsel samen. Jupiter is een van de helderste objecten die met het blote oog zichtbaar zijn aan de nachtelijke hemel en is bekend bij oude beschavingen sinds vóór de geschreven geschiedenis. Het is vernoemd naar de Romeinse god Jupiter.[19] Wanneer vanaf de aarde bekeken, kan Jupiter helder genoeg zijn om zichtbare schaduwen te werpen,[20] en is gemiddeld het derde helderste natuurlijke object aan de nachtelijke hemel na de maan en Venus.
**Vat dit samen in 2 korte zinnen** | Jupiter, de vijfde planeet vanaf de zon, is de grootste in het zonnestelsel en staat bekend als een van de helderste objecten aan de nachtelijke hemel. Vernoemd naar de Romeinse god Jupiter, is het een gasreus met een massa die tweeënhalf keer zo groot is als die van alle andere planeten in het zonnestelsel samen. | - -Het primaire-inhoudsegment kan op verschillende manieren worden gebruikt om effectievere instructies te geven: - -- **Voorbeelden** – in plaats van het model expliciet te vertellen wat het moet doen, geef je voorbeelden van wat het moet doen en laat je het patroon afleiden. -- **Aanwijzingen** – volg de instructie met een "aanwijzing" die de output aanstuurt en het model richting relevantere antwoorden leidt. -- **Templates** – dit zijn herhaalbare 'recepten' voor prompts met placeholders (variabelen) die je kunt aanpassen met data voor specifieke toepassingen. - -Laten we deze in de praktijk bekijken. - -### Voorbeelden gebruiken - -Dit is een aanpak waarbij je de primaire inhoud gebruikt om het model "te voeden" met voorbeelden van de gewenste output voor een bepaalde instructie, en het patroon laat afleiden. Afhankelijk van het aantal voorbeelden spreken we van zero-shot prompting, one-shot prompting, few-shot prompting, enzovoort. - -De prompt bestaat nu uit drie onderdelen: - -- Een taakbeschrijving -- Een paar voorbeelden van de gewenste output -- Het begin van een nieuw voorbeeld (dat een impliciete taakbeschrijving wordt) - -| Leerwijze | Prompt (Input) | Completion (Output) | -| :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| Zero-shot | "The Sun is Shining". Vertaal naar het Spaans | "El Sol está brillando". | -| One-shot | "The Sun is Shining" => "El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| Few-shot | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketbal | -| | | | - -Let op dat we bij zero-shot prompting een expliciete instructie moesten geven ("Vertaal naar het Spaans"), maar dat die bij one-shot prompting wordt afgeleid. Het few-shot voorbeeld laat zien dat het toevoegen van meer voorbeelden het model in staat stelt nauwkeurigere conclusies te trekken zonder extra instructies. - -### Promptaanwijzingen - -Een andere techniek om primaire inhoud te gebruiken is het geven van _aanwijzingen_ in plaats van voorbeelden. In dit geval geven we het model een duwtje in de goede richting door _te beginnen_ met een fragment dat het gewenste antwoordformaat weerspiegelt. Het model "pakt de aanwijzing op" en gaat in die stijl verder. - -| Aantal aanwijzingen | Prompt (Input) | Completion (Output) | -| :------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Jupiter is de vijfde planeet vanaf de zon en de grootste in het zonnestelsel. Het is een gasreus met een massa van een duizendste van die van de zon, maar tweeënhalf keer die van alle andere planeten in het zonnestelsel samen. Jupiter is een van de helderste objecten die met het blote oog zichtbaar zijn aan de nachtelijke hemel, en is bekend bij oude beschavingen sinds vóór de geschreven geschiedenis. - -**Samenvatting** | Jupiter is de grootste planeet in ons zonnestelsel en de vijfde vanaf de zon. Het is een gasreus met een massa van 1/1000e van die van de zon, maar zwaarder dan alle andere planeten samen. Oude beschavingen kennen Jupiter al lang, en hij is gemakkelijk zichtbaar aan de nachtelijke hemel. | -| 1 | Jupiter is de vijfde planeet vanaf de zon en de grootste in het zonnestelsel. Het is een gasreus met een massa van een duizendste van die van de zon, maar tweeënhalf keer zo zwaar als alle andere planeten in het zonnestelsel samen. Jupiter is een van de helderste objecten die met het blote oog zichtbaar zijn aan de nachtelijke hemel en is al bekend bij oude beschavingen, nog voordat er geschreven geschiedenis was.
**Samenvatting**
Wat we geleerd hebben is dat Jupiter | de vijfde planeet vanaf de zon is en de grootste in het zonnestelsel. Het is een gasreus met een massa van een duizendste van die van de zon, maar tweeënhalf keer zo zwaar als alle andere planeten samen. Hij is gemakkelijk met het blote oog te zien en is al sinds de oudheid bekend. | -| 2 | Jupiter is de vijfde planeet vanaf de zon en de grootste in het zonnestelsel. Het is een gasreus met een massa van een duizendste van die van de zon, maar tweeënhalf keer zo zwaar als alle andere planeten in het zonnestelsel samen. Jupiter is een van de helderste objecten die met het blote oog zichtbaar zijn aan de nachtelijke hemel en is al bekend bij oude beschavingen, nog voordat er geschreven geschiedenis was.
**Samenvatting**
Top 3 feiten die we leerden: | 1. Jupiter is de vijfde planeet vanaf de zon en de grootste in het zonnestelsel.
2. Het is een gasreus met een massa van een duizendste van die van de zon...
3. Jupiter is sinds de oudheid met het blote oog zichtbaar ... | -| | | | - -### Prompt Templates - -Een prompt template is een _vooraf gedefinieerd recept voor een prompt_ dat kan worden opgeslagen en hergebruikt wanneer nodig, om zo consistentere gebruikerservaringen op grote schaal te realiseren. In de eenvoudigste vorm is het gewoon een verzameling promptvoorbeelden zoals [dit voorbeeld van OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) die zowel de interactieve promptcomponenten (gebruikers- en systeemberichten) als het API-gestuurde verzoekformaat biedt - ter ondersteuning van hergebruik. - -In een complexere vorm, zoals [dit voorbeeld van LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst), bevat het _plaatsaanduidingen_ die kunnen worden vervangen door data uit verschillende bronnen (gebruikersinvoer, systeemcontext, externe databronnen, enz.) om een prompt dynamisch te genereren. Dit stelt ons in staat een bibliotheek van herbruikbare prompts te creëren die **programmeerbaar** kunnen worden ingezet om consistente gebruikerservaringen op schaal te leveren. - -De echte waarde van templates ligt tenslotte in het kunnen creëren en publiceren van _promptbibliotheken_ voor specifieke toepassingsdomeinen - waarbij de prompttemplate nu _geoptimaliseerd_ is om context of voorbeelden te bevatten die de reacties relevanter en nauwkeuriger maken voor de beoogde gebruikersgroep. De [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) repository is een uitstekend voorbeeld van deze aanpak, met een verzameling prompts voor het onderwijsdomein, gericht op belangrijke doelen zoals lesplanning, curriculumontwerp, studentbegeleiding, enz. - -## Ondersteunende Inhoud - -Als we promptconstructie zien als het hebben van een instructie (taak) en een doel (primaire inhoud), dan is _secundaire inhoud_ als extra context die we toevoegen om de output op een bepaalde manier te **beïnvloeden**. Dit kan bijvoorbeeld afstemmingsparameters, formatteringsinstructies, onderwerpenindelingen, enz. zijn die het model helpen zijn antwoord af te stemmen op de gewenste gebruikersdoelen of verwachtingen. - -Bijvoorbeeld: Gegeven een cursuscatalogus met uitgebreide metadata (naam, beschrijving, niveau, metadata-tags, docent, enz.) van alle beschikbare cursussen in het curriculum: - -- kunnen we een instructie definiëren om "de cursuscatalogus voor herfst 2023 samen te vatten" -- kunnen we de primaire inhoud gebruiken om een paar voorbeelden van de gewenste output te geven -- kunnen we de secundaire inhoud gebruiken om de top 5 "tags" van interesse te identificeren. - -Nu kan het model een samenvatting geven in het formaat van de voorbeelden - maar als een resultaat meerdere tags heeft, kan het prioriteit geven aan de 5 tags die in de secundaire inhoud zijn aangegeven. - ---- - - - -## Beste Praktijken voor Prompting - -Nu we weten hoe prompts kunnen worden _opgebouwd_, kunnen we nadenken over hoe we ze kunnen _ontwerpen_ volgens de beste praktijken. We kunnen dit in twee delen bekijken - de juiste _mindset_ en het toepassen van de juiste _technieken_. - -### Mindset voor Prompt Engineering - -Prompt Engineering is een proces van proberen en bijstellen, houd daarom drie brede richtlijnen in gedachten: - -1. **Domeinkennis is belangrijk.** De nauwkeurigheid en relevantie van antwoorden hangt af van het _domein_ waarin de applicatie of gebruiker opereert. Gebruik je intuïtie en domeinexpertise om de **technieken verder aan te passen**. Definieer bijvoorbeeld _domeinspecifieke persoonlijkheden_ in je systeem prompts, of gebruik _domeinspecifieke templates_ in je gebruikersprompts. Lever secundaire inhoud die domeinspecifieke contexten weerspiegelt, of gebruik _domeinspecifieke aanwijzingen en voorbeelden_ om het model te sturen naar vertrouwde gebruikspatronen. - -2. **Modelkennis is belangrijk.** We weten dat modellen van nature stochastisch zijn. Maar modelimplementaties kunnen ook verschillen in de trainingsdata die ze gebruiken (vooraf getrainde kennis), de mogelijkheden die ze bieden (bijv. via API of SDK) en het type inhoud waarvoor ze geoptimaliseerd zijn (bijv. code vs. afbeeldingen vs. tekst). Begrijp de sterke en zwakke punten van het model dat je gebruikt, en gebruik die kennis om _taken te prioriteren_ of _aangepaste templates_ te bouwen die geoptimaliseerd zijn voor de capaciteiten van het model. - -3. **Iteratie & Validatie zijn belangrijk.** Modellen ontwikkelen zich snel, net als de technieken voor prompt engineering. Als domeinexpert heb je mogelijk andere context of criteria voor _jouw_ specifieke toepassing, die niet voor de bredere gemeenschap gelden. Gebruik prompt engineering tools & technieken om snel te starten met promptconstructie, en iteratief te verbeteren en valideren met je eigen intuïtie en domeinexpertise. Leg je inzichten vast en bouw een **kennisbank** (bijv. promptbibliotheken) die door anderen als nieuwe basis kan worden gebruikt, voor snellere iteraties in de toekomst. - -## Beste Praktijken - -Laten we nu kijken naar gangbare beste praktijken die worden aanbevolen door [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) en [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst) experts. - -| Wat | Waarom | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Evalueer de nieuwste modellen. | Nieuwe modelgeneraties hebben waarschijnlijk verbeterde functies en kwaliteit - maar kunnen ook hogere kosten met zich meebrengen. Evalueer ze op impact en maak dan migratiebeslissingen. | -| Scheid instructies & context | Controleer of je model/provider _afscheidingssymbolen_ gebruikt om instructies, primaire en secundaire inhoud duidelijker te onderscheiden. Dit helpt modellen om tokens nauwkeuriger te wegen. | -| Wees specifiek en duidelijk | Geef meer details over de gewenste context, uitkomst, lengte, formaat, stijl, enz. Dit verbetert zowel de kwaliteit als de consistentie van antwoorden. Leg recepten vast in herbruikbare templates. | -| Wees beschrijvend, gebruik voorbeelden | Modellen reageren vaak beter op een "show and tell" aanpak. Begin met een `zero-shot` aanpak waarbij je alleen een instructie geeft (zonder voorbeelden), probeer daarna `few-shot` als verfijning, met een paar voorbeelden van de gewenste output. Gebruik analogieën. | -| Gebruik aanwijzingen om antwoorden te starten | Stuur het model in de gewenste richting door enkele aanzetwoorden of zinnen te geven die het als startpunt voor het antwoord kan gebruiken. | -| Herhaal indien nodig | Soms moet je het model herhalen of extra instructies geven. Geef instructies voor en na je primaire inhoud, gebruik een instructie en een aanwijzing, enz. Itereer en valideer wat het beste werkt. | -| Volgorde is belangrijk | De volgorde waarin je informatie aan het model presenteert kan de output beïnvloeden, ook in de leervoorbeelden, vanwege recency bias. Probeer verschillende opties om te zien wat het beste werkt. | -| Geef het model een “uitweg” | Geef het model een _fallback_ antwoord dat het kan geven als het de taak om welke reden dan ook niet kan voltooien. Dit verkleint de kans op onjuiste of verzonnen antwoorden. | -| | | - -Zoals bij elke beste praktijk geldt: _jouw ervaring kan verschillen_ afhankelijk van het model, de taak en het domein. Gebruik deze als uitgangspunt en blijf itereren om te ontdekken wat het beste werkt voor jou. Evalueer je prompt engineering proces voortdurend opnieuw naarmate nieuwe modellen en tools beschikbaar komen, met focus op schaalbaarheid en kwaliteit van antwoorden. - - - -## Opdracht - -Gefeliciteerd! Je bent aan het einde van de les gekomen! Tijd om een aantal van deze concepten en technieken in de praktijk te brengen met echte voorbeelden! - -Voor onze opdracht gebruiken we een Jupyter Notebook met oefeningen die je interactief kunt maken. Je kunt de Notebook ook uitbreiden met je eigen Markdown- en Code-cellen om zelf ideeën en technieken te verkennen. - -### Om te beginnen, fork de repo en doe dan het volgende - -- (Aanbevolen) Start GitHub Codespaces -- (Alternatief) Clone de repo naar je lokale apparaat en gebruik het met Docker Desktop -- (Alternatief) Open de Notebook met je favoriete Notebook runtime omgeving. - -### Configureer vervolgens je omgevingsvariabelen - -- Kopieer het bestand `.env.copy` in de root van de repo naar `.env` en vul de waarden in voor `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` en `AZURE_OPENAI_DEPLOYMENT`. Ga terug naar de [Learning Sandbox sectie](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) om te leren hoe. - -### Open daarna de Jupyter Notebook - -- Selecteer de runtime kernel. Als je optie 1 of 2 gebruikt, kies dan simpelweg de standaard Python 3.10.x kernel die door de dev container wordt geleverd. - -Je bent klaar om de oefeningen uit te voeren. Let op: er zijn hier geen _goede of foute_ antwoorden - het gaat om het verkennen van opties door proberen en het opbouwen van intuïtie voor wat werkt bij een bepaald model en toepassingsdomein. - -_Vandaar dat er in deze les geen Code Oplossing segmenten zijn. In plaats daarvan bevat de Notebook Markdown-cellen met de titel "Mijn Oplossing:" die één voorbeeldoutput tonen ter referentie._ - - - -## Kennischeck - -Welke van de volgende prompts is een goede prompt volgens redelijke beste praktijken? - -1. Laat me een afbeelding zien van een rode auto -2. Laat me een afbeelding zien van een rode auto van het merk Volvo en model XC90 geparkeerd bij een klif met de zonsondergang -3. Laat me een afbeelding zien van een rode auto van het merk Volvo en model XC90 - -A: 2, dit is de beste prompt omdat het details geeft over "wat" en in gaat op specifics (niet zomaar een auto, maar een specifiek merk en model) en ook de algehele setting beschrijft. 3 is de op één na beste omdat het ook veel beschrijving bevat. - -## 🚀 Uitdaging - -Probeer de "aanwijzing" techniek te gebruiken met de prompt: Maak de zin af "Laat me een afbeelding zien van een rode auto van het merk Volvo en ". Wat antwoordt het, en hoe zou je het verbeteren? - -## Goed gedaan! Ga door met leren - -Wil je meer leren over verschillende Prompt Engineering concepten? Ga naar de [pagina voor voortgezet leren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) om andere goede bronnen over dit onderwerp te vinden. - -Ga door naar Les 5 waar we kijken naar [geavanceerde prompting technieken](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**Disclaimer**: -Dit document is vertaald met behulp van de AI-vertalingsdienst [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, dient u er rekening mee te houden dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het originele document in de oorspronkelijke taal moet als de gezaghebbende bron worden beschouwd. Voor cruciale informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor eventuele misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling. \ No newline at end of file + + + + + + + diff --git a/translations/nl/09-building-image-applications/README.md b/translations/nl/09-building-image-applications/README.md index ca3a0d5c0..dd91cf7f8 100644 --- a/translations/nl/09-building-image-applications/README.md +++ b/translations/nl/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# Het Bouwen van Beeldgeneratie-applicaties - -[![Het Bouwen van Beeldgeneratie-applicaties](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.nl.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLM’s zijn niet alleen voor tekstgeneratie. Het is ook mogelijk om beelden te genereren op basis van tekstbeschrijvingen. Beelden als modality kunnen in veel verschillende gebieden erg nuttig zijn, zoals MedTech, architectuur, toerisme, game-ontwikkeling en meer. In dit hoofdstuk bekijken we de twee populairste beeldgeneratiemodellen, DALL-E en Midjourney. - -## Introductie - -In deze les behandelen we: - -- Beeldgeneratie en waarom het nuttig is. -- DALL-E en Midjourney: wat ze zijn en hoe ze werken. -- Hoe je een beeldgeneratie-app bouwt. - -## Leerdoelen - -Na het afronden van deze les kun je: - -- Een beeldgeneratie-applicatie bouwen. -- Grenzen voor je applicatie definiëren met meta prompts. -- Werken met DALL-E en Midjourney. - -## Waarom een beeldgeneratie-app bouwen? - -Beeldgeneratie-applicaties zijn een geweldige manier om de mogelijkheden van Generatieve AI te verkennen. Ze kunnen bijvoorbeeld worden gebruikt voor: - -- **Beeldbewerking en synthese**. Je kunt beelden genereren voor diverse toepassingen, zoals beeldbewerking en beeldsynthese. - -- **Toepassing in verschillende sectoren**. Ze kunnen ook worden ingezet om beelden te genereren voor uiteenlopende sectoren zoals Medtech, Toerisme, Game-ontwikkeling en meer. - -## Scenario: Edu4All - -Als onderdeel van deze les blijven we werken met onze startup Edu4All. De studenten maken beelden voor hun opdrachten; welke beelden precies, mogen ze zelf bepalen. Het kunnen illustraties zijn voor hun eigen sprookje, een nieuw personage voor hun verhaal, of om hun ideeën en concepten te visualiseren. - -Hier is een voorbeeld van wat de studenten van Edu4All zouden kunnen genereren als ze in de klas werken aan monumenten: - -![Edu4All startup, les over monumenten, Eiffeltoren](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.nl.png) - -met een prompt zoals - -> "Hond naast de Eiffeltoren in het vroege ochtendlicht" - -## Wat zijn DALL-E en Midjourney? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) en [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) zijn twee van de populairste beeldgeneratiemodellen, waarmee je beelden kunt genereren op basis van prompts. - -### DALL-E - -Laten we beginnen met DALL-E, een Generatieve AI-model dat beelden maakt op basis van tekstbeschrijvingen. - -> [DALL-E is een combinatie van twee modellen, CLIP en diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP** is een model dat embeddings genereert, dit zijn numerieke representaties van data, uit beelden en tekst. - -- **Diffused attention** is een model dat beelden genereert vanuit embeddings. DALL-E is getraind op een dataset van beelden en tekst en kan beelden maken op basis van tekstbeschrijvingen. Bijvoorbeeld, DALL-E kan beelden genereren van een kat met een hoed, of een hond met een hanenkam. - -### Midjourney - -Midjourney werkt op een vergelijkbare manier als DALL-E: het genereert beelden op basis van tekstprompts. Midjourney kan ook beelden maken met prompts zoals “een kat met een hoed” of “een hond met een hanenkam”. - -![Beeld gegenereerd door Midjourney, mechanische duif](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Afbeelding credit Wikipedia, beeld gegenereerd door Midjourney_ - -## Hoe werken DALL-E en Midjourney? - -Eerst [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). DALL-E is een Generatieve AI-model gebaseerd op de transformer-architectuur met een _autoregressieve transformer_. - -Een _autoregressieve transformer_ bepaalt hoe een model beelden genereert vanuit tekstbeschrijvingen: het genereert één pixel tegelijk, en gebruikt de gegenereerde pixels om de volgende pixel te maken. Dit proces gaat door meerdere lagen in een neuraal netwerk, totdat het beeld compleet is. - -Met dit proces kan DALL-E attributen, objecten, kenmerken en meer in het gegenereerde beeld aansturen. DALL-E 2 en 3 bieden nog meer controle over het gegenereerde beeld. - -## Je eerste beeldgeneratie-app bouwen - -Wat heb je nodig om een beeldgeneratie-app te bouwen? De volgende libraries: - -- **python-dotenv**, sterk aanbevolen om je geheimen in een _.env_-bestand te bewaren, gescheiden van de code. -- **openai**, deze library gebruik je om te communiceren met de OpenAI API. -- **pillow**, om met beelden te werken in Python. -- **requests**, om HTTP-verzoeken te maken. - -1. Maak een bestand _.env_ met de volgende inhoud: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Deze informatie vind je in de Azure Portal voor je resource onder "Keys and Endpoint". - -1. Verzamel de bovenstaande libraries in een bestand genaamd _requirements.txt_ zoals hieronder: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. Maak vervolgens een virtuele omgeving aan en installeer de libraries: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Voor Windows gebruik je de volgende commando’s om de virtuele omgeving te maken en te activeren: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. Voeg de volgende code toe in een bestand genaamd _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Laten we deze code uitleggen: - -- Eerst importeren we de benodigde libraries, waaronder OpenAI, dotenv, requests en Pillow. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Daarna laden we de omgevingsvariabelen uit het _.env_-bestand. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- Vervolgens stellen we de endpoint, sleutel, versie en type in voor de OpenAI API. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- Daarna genereren we het beeld: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - De bovenstaande code geeft een JSON-object terug met de URL van het gegenereerde beeld. We kunnen deze URL gebruiken om het beeld te downloaden en op te slaan. - -- Tot slot openen we het beeld en tonen het met de standaard beeldviewer: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Meer details over het genereren van het beeld - -Laten we de code die het beeld genereert wat nader bekijken: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** is de tekstprompt die gebruikt wordt om het beeld te genereren. In dit geval gebruiken we de prompt "Konijntje op een paard, met een lolly, op een mistige weide waar narcissen groeien". -- **size** is de grootte van het gegenereerde beeld. Hier maken we een beeld van 1024x1024 pixels. -- **n** is het aantal beelden dat gegenereerd wordt. Hier maken we twee beelden. -- **temperature** is een parameter die de willekeurigheid van de output van een Generatief AI-model regelt. De temperatuur is een waarde tussen 0 en 1, waarbij 0 betekent dat de output deterministisch is en 1 dat de output willekeurig is. De standaardwaarde is 0.7. - -Er zijn nog meer mogelijkheden met beelden die we in de volgende sectie behandelen. - -## Extra mogelijkheden van beeldgeneratie - -Je hebt tot nu toe gezien hoe je met een paar regels Python een beeld kunt genereren. Maar er is meer mogelijk met beelden. - -Je kunt ook het volgende doen: - -- **Bewerkingen uitvoeren**. Door een bestaand beeld, een masker en een prompt te geven, kun je een beeld aanpassen. Bijvoorbeeld, je kunt iets toevoegen aan een deel van een beeld. Stel je ons konijntje voor, je kunt een hoed toevoegen aan het konijntje. Dit doe je door het beeld, een masker (dat het deel aangeeft waar de wijziging moet komen) en een tekstprompt te geven waarin staat wat er moet gebeuren. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - Het basisbeeld bevat alleen het konijn, maar het eindbeeld heeft een hoed op het konijn. - -- **Variaties maken**. Het idee is dat je een bestaand beeld neemt en vraagt om variaties te maken. Om een variatie te maken, geef je een beeld en een tekstprompt en code zoals deze: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Let op, dit wordt alleen ondersteund door OpenAI - -## Temperatuur - -Temperatuur is een parameter die de willekeurigheid van de output van een Generatief AI-model regelt. De temperatuur is een waarde tussen 0 en 1, waarbij 0 betekent dat de output deterministisch is en 1 dat de output willekeurig is. De standaardwaarde is 0.7. - -Laten we een voorbeeld bekijken van hoe temperatuur werkt, door deze prompt twee keer uit te voeren: - -> Prompt: "Konijntje op een paard, met een lolly, op een mistige weide waar narcissen groeien" - -![Konijntje op een paard met een lolly, versie 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.nl.png) - -Laten we diezelfde prompt nogmaals uitvoeren om te zien dat we niet twee keer hetzelfde beeld krijgen: - -![Gegenereerd beeld van konijntje op paard](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.nl.png) - -Zoals je ziet lijken de beelden op elkaar, maar zijn ze niet hetzelfde. Laten we de temperatuurwaarde veranderen naar 0.1 en kijken wat er gebeurt: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Temperatuur aanpassen - -Laten we proberen de output meer deterministisch te maken. We zagen bij de twee beelden dat in het eerste beeld een konijntje staat en in het tweede een paard, dus de beelden verschillen sterk. - -Laten we daarom onze code aanpassen en de temperatuur op 0 zetten, zo: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Als je deze code nu uitvoert, krijg je deze twee beelden: - -- ![Temperatuur 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.nl.png) -- ![Temperatuur 0, v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.nl.png) - -Hier zie je duidelijk dat de beelden veel meer op elkaar lijken. - -## Hoe definieer je grenzen voor je applicatie met metaprompts? - -Met onze demo kunnen we al beelden genereren voor onze klanten. Toch moeten we grenzen stellen aan onze applicatie. - -We willen bijvoorbeeld geen beelden genereren die niet geschikt zijn voor op het werk, of die niet geschikt zijn voor kinderen. - -Dat kunnen we doen met _metaprompts_. Metaprompts zijn tekstprompts die gebruikt worden om de output van een Generatief AI-model te sturen. Zo kunnen we met metaprompts ervoor zorgen dat de gegenereerde beelden veilig zijn voor op het werk of geschikt voor kinderen. - -### Hoe werkt dat? - -Hoe werken metaprompts precies? - -Metaprompts zijn tekstprompts die vóór de tekstprompt geplaatst worden en gebruikt worden om de output van het model te sturen. Ze worden ingebed in applicaties om de output te controleren. Zo worden de prompt-input en de metaprompt-input samengevoegd in één tekstprompt. - -Een voorbeeld van een metaprompt is de volgende: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Laten we nu kijken hoe we metaprompts kunnen gebruiken in onze demo. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -Uit bovenstaande prompt blijkt dat alle gegenereerde beelden rekening houden met de metaprompt. - -## Opdracht - laten we studenten in staat stellen - -We introduceerden Edu4All aan het begin van deze les. Nu is het tijd om de studenten in staat te stellen beelden te genereren voor hun opdrachten. - -De studenten maken beelden voor hun opdrachten met monumenten; welke monumenten precies, mogen ze zelf bepalen. De studenten worden gevraagd hun creativiteit te gebruiken om deze monumenten in verschillende contexten te plaatsen. - -## Oplossing - -Hier is een mogelijke oplossing: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Goed gedaan! Ga door met leren - -Na het afronden van deze les, bekijk onze [Generative AI Learning collectie](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) om je kennis van Generatieve AI verder uit te breiden! - -Ga door naar Les 10, waar we bekijken hoe je [AI-applicaties bouwt met low-code](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**Disclaimer**: -Dit document is vertaald met behulp van de AI-vertalingsdienst [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, dient u er rekening mee te houden dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het originele document in de oorspronkelijke taal moet als de gezaghebbende bron worden beschouwd. Voor cruciale informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor eventuele misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling. \ No newline at end of file + + + + diff --git a/translations/nl/12-designing-ux-for-ai-applications/README.md b/translations/nl/12-designing-ux-for-ai-applications/README.md index 06fd652c5..da491098f 100644 --- a/translations/nl/12-designing-ux-for-ai-applications/README.md +++ b/translations/nl/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# UX ontwerpen voor AI-toepassingen - -[![Designing UX for AI Applications](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.nl.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Klik op de afbeelding hierboven om de video van deze les te bekijken)_ - -Gebruikerservaring is een zeer belangrijk aspect bij het bouwen van apps. Gebruikers moeten je app op een efficiënte manier kunnen gebruiken om taken uit te voeren. Efficiënt zijn is één ding, maar je moet apps ook zo ontwerpen dat ze door iedereen gebruikt kunnen worden, om ze _toegankelijk_ te maken. Dit hoofdstuk richt zich op dit gebied, zodat je hopelijk een app ontwerpt die mensen kunnen en willen gebruiken. - -## Introductie - -Gebruikerservaring is hoe een gebruiker interactie heeft met en gebruikmaakt van een specifiek product of dienst, of het nu een systeem, tool of ontwerp is. Bij het ontwikkelen van AI-toepassingen richten ontwikkelaars zich niet alleen op het zorgen voor een effectieve gebruikerservaring, maar ook op ethiek. In deze les behandelen we hoe je Artificial Intelligence (AI)-toepassingen bouwt die inspelen op de behoeften van gebruikers. - -De les behandelt de volgende onderwerpen: - -- Introductie tot gebruikerservaring en het begrijpen van gebruikersbehoeften -- AI-toepassingen ontwerpen voor vertrouwen en transparantie -- AI-toepassingen ontwerpen voor samenwerking en feedback - -## Leerdoelen - -Na het volgen van deze les kun je: - -- Begrijpen hoe je AI-toepassingen bouwt die voldoen aan de behoeften van gebruikers. -- AI-toepassingen ontwerpen die vertrouwen en samenwerking bevorderen. - -### Vereisten - -Neem de tijd om meer te lezen over [gebruikerservaring en design thinking.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Introductie tot gebruikerservaring en het begrijpen van gebruikersbehoeften - -In onze fictieve onderwijs-startup hebben we twee primaire gebruikers: leraren en studenten. Elk van deze gebruikers heeft unieke behoeften. Een gebruikersgericht ontwerp plaatst de gebruiker centraal, zodat de producten relevant en nuttig zijn voor degenen voor wie ze bedoeld zijn. - -De applicatie moet **bruikbaar, betrouwbaar, toegankelijk en prettig** zijn om een goede gebruikerservaring te bieden. - -### Bruikbaarheid - -Bruikbaar zijn betekent dat de applicatie functionaliteit heeft die aansluit bij het beoogde doel, zoals het automatiseren van het beoordelingsproces of het genereren van flashcards voor herhaling. Een applicatie die het beoordelingsproces automatiseert, moet in staat zijn om nauwkeurig en efficiënt scores toe te kennen aan het werk van studenten op basis van vooraf bepaalde criteria. Evenzo moet een applicatie die flashcards genereert, relevante en gevarieerde vragen kunnen maken op basis van de beschikbare data. - -### Betrouwbaarheid - -Betrouwbaar zijn betekent dat de applicatie zijn taak consistent en zonder fouten kan uitvoeren. AI is echter, net als mensen, niet perfect en kan fouten maken. De applicaties kunnen fouten of onverwachte situaties tegenkomen die menselijke tussenkomst of correctie vereisen. Hoe ga je om met fouten? In het laatste deel van deze les behandelen we hoe AI-systemen en applicaties ontworpen worden voor samenwerking en feedback. - -### Toegankelijkheid - -Toegankelijk zijn betekent dat de gebruikerservaring wordt uitgebreid naar gebruikers met verschillende mogelijkheden, inclusief mensen met een beperking, zodat niemand wordt buitengesloten. Door richtlijnen en principes voor toegankelijkheid te volgen, worden AI-oplossingen inclusiever, gebruiksvriendelijker en nuttiger voor alle gebruikers. - -### Prettig - -Prettig zijn betekent dat de applicatie plezierig is om te gebruiken. Een aantrekkelijke gebruikerservaring kan een positieve invloed hebben op de gebruiker, waardoor deze terugkeert naar de applicatie en de omzet van het bedrijf stijgt. - -![afbeelding die UX-overwegingen in AI illustreert](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.nl.png) - -Niet elke uitdaging kan met AI worden opgelost. AI komt om je gebruikerservaring te versterken, bijvoorbeeld door handmatige taken te automatiseren of gebruikerservaringen te personaliseren. - -## AI-toepassingen ontwerpen voor vertrouwen en transparantie - -Vertrouwen opbouwen is cruciaal bij het ontwerpen van AI-toepassingen. Vertrouwen zorgt ervoor dat een gebruiker erop vertrouwt dat de applicatie het werk doet, consequent resultaten levert en dat die resultaten zijn wat de gebruiker nodig heeft. Een risico in dit gebied is wantrouwen en overmatig vertrouwen. Wantrouwen ontstaat wanneer een gebruiker weinig of geen vertrouwen heeft in een AI-systeem, wat ertoe leidt dat de gebruiker je applicatie afwijst. Overmatig vertrouwen ontstaat wanneer een gebruiker de capaciteiten van een AI-systeem overschat, waardoor gebruikers het AI-systeem te veel vertrouwen. Bijvoorbeeld, bij een geautomatiseerd beoordelingssysteem kan overmatig vertrouwen ertoe leiden dat een leraar sommige papieren niet meer controleert om te zien of het beoordelingssysteem goed werkt. Dit kan resulteren in oneerlijke of onnauwkeurige cijfers voor studenten, of gemiste kansen voor feedback en verbetering. - -Twee manieren om ervoor te zorgen dat vertrouwen centraal staat in het ontwerp zijn uitlegbaarheid en controle. - -### Uitlegbaarheid - -Wanneer AI helpt bij het nemen van beslissingen, zoals het overdragen van kennis aan toekomstige generaties, is het essentieel dat leraren en ouders begrijpen hoe AI-beslissingen worden genomen. Dit is uitlegbaarheid – begrijpen hoe AI-toepassingen beslissingen maken. Ontwerpen voor uitlegbaarheid betekent onder andere het toevoegen van voorbeelden van wat een AI-applicatie kan doen. Bijvoorbeeld, in plaats van "Begin met AI-leraar", kan het systeem zeggen: "Vat je aantekeningen samen voor makkelijker herhalen met AI." - -![een app-startpagina met duidelijke illustratie van uitlegbaarheid in AI-toepassingen](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.nl.png) - -Een ander voorbeeld is hoe AI gebruikers- en persoonlijke gegevens gebruikt. Bijvoorbeeld, een gebruiker met de persona student kan beperkingen hebben op basis van die persona. De AI kan mogelijk geen antwoorden geven op vragen, maar kan de gebruiker wel helpen nadenken over hoe ze een probleem kunnen oplossen. - -![AI die vragen beantwoordt op basis van persona](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.nl.png) - -Een laatste belangrijk onderdeel van uitlegbaarheid is het vereenvoudigen van uitleg. Studenten en leraren zijn misschien geen AI-experts, daarom moeten de uitleg over wat de applicatie wel of niet kan doen eenvoudig en makkelijk te begrijpen zijn. - -![vereenvoudigde uitleg over AI-mogelijkheden](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.nl.png) - -### Controle - -Generatieve AI creëert een samenwerking tussen AI en de gebruiker, waarbij een gebruiker bijvoorbeeld prompts kan aanpassen voor verschillende resultaten. Daarnaast moeten gebruikers, zodra een output is gegenereerd, de resultaten kunnen aanpassen, zodat ze het gevoel van controle hebben. Bijvoorbeeld, bij het gebruik van Bing kun je je prompt afstemmen op formaat, toon en lengte. Ook kun je wijzigingen aanbrengen in je output en deze aanpassen, zoals hieronder te zien is: - -![Bing-zoekresultaten met opties om prompt en output aan te passen](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.nl.png) - -Een andere functie in Bing die gebruikers controle geeft over de applicatie is de mogelijkheid om in- en uit te schakelen welke data AI gebruikt. Voor een schoolapplicatie wil een student misschien zijn eigen aantekeningen gebruiken, evenals de bronnen van de leraren als studiemateriaal. - -![Bing-zoekresultaten met opties om prompt en output aan te passen](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.nl.png) - -> Bij het ontwerpen van AI-toepassingen is doelgerichtheid essentieel om te voorkomen dat gebruikers te veel vertrouwen krijgen en onrealistische verwachtingen van de mogelijkheden ontwikkelen. Een manier om dit te doen is door wrijving te creëren tussen de prompts en de resultaten. Zo herinner je de gebruiker eraan dat dit AI is en geen medemens. - -## AI-toepassingen ontwerpen voor samenwerking en feedback - -Zoals eerder genoemd, creëert generatieve AI een samenwerking tussen de gebruiker en AI. Meestal voert een gebruiker een prompt in en genereert de AI een output. Wat als de output onjuist is? Hoe gaat de applicatie om met fouten als die optreden? Geeft de AI de gebruiker de schuld of neemt het de tijd om de fout uit te leggen? - -AI-toepassingen moeten zo worden gebouwd dat ze feedback kunnen ontvangen en geven. Dit helpt niet alleen het AI-systeem te verbeteren, maar bouwt ook vertrouwen op bij de gebruikers. Een feedbacklus moet worden opgenomen in het ontwerp, bijvoorbeeld een simpele duim omhoog of omlaag bij de output. - -Een andere manier om hiermee om te gaan is door duidelijk te communiceren wat de mogelijkheden en beperkingen van het systeem zijn. Wanneer een gebruiker een fout maakt door iets te vragen wat buiten de capaciteiten van de AI ligt, moet er ook een manier zijn om dit af te handelen, zoals hieronder wordt getoond. - -![Feedback geven en omgaan met fouten](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.nl.png) - -Systeemfouten komen vaak voor bij applicaties waarbij de gebruiker mogelijk hulp nodig heeft met informatie buiten het bereik van de AI, of wanneer de applicatie een limiet heeft op het aantal vragen/onderwerpen waarvoor een gebruiker samenvattingen kan genereren. Bijvoorbeeld, een AI-applicatie die getraind is met data over beperkte vakken, zoals geschiedenis en wiskunde, kan mogelijk geen vragen over aardrijkskunde beantwoorden. Om dit te voorkomen kan het AI-systeem een reactie geven zoals: "Sorry, ons product is getraind met data over de volgende vakken....., ik kan de vraag die je stelde niet beantwoorden." - -AI-toepassingen zijn niet perfect, daarom zullen ze fouten maken. Bij het ontwerpen van je applicaties moet je ruimte creëren voor feedback van gebruikers en foutafhandeling op een manier die eenvoudig en makkelijk uit te leggen is. - -## Opdracht - -Neem een AI-app die je tot nu toe hebt gebouwd en overweeg de onderstaande stappen in je app te implementeren: - -- **Prettig:** Denk na over hoe je je app prettiger kunt maken. Voeg je overal uitleg toe? Moedig je de gebruiker aan om te verkennen? Hoe formuleer je je foutmeldingen? - -- **Bruikbaarheid:** Bouw je een webapp? Zorg ervoor dat je app navigeerbaar is met zowel muis als toetsenbord. - -- **Vertrouwen en transparantie:** Vertrouw niet volledig op de AI en de output. Overweeg hoe je een mens kunt toevoegen aan het proces om de output te verifiëren. Overweeg en implementeer ook andere manieren om vertrouwen en transparantie te bereiken. - -- **Controle:** Geef de gebruiker controle over de data die ze aan de applicatie leveren. Implementeer een manier waarop een gebruiker kan kiezen om wel of niet mee te doen aan dataverzameling in de AI-applicatie. - -## Ga door met leren! - -Na het voltooien van deze les, bekijk onze [Generative AI Learning collection](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) om je kennis van Generative AI verder te verdiepen! - -Ga door naar Les 13, waar we kijken naar hoe je [AI-toepassingen beveiligt](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**Disclaimer**: -Dit document is vertaald met behulp van de AI-vertalingsdienst [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, dient u er rekening mee te houden dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het originele document in de oorspronkelijke taal moet als de gezaghebbende bron worden beschouwd. Voor cruciale informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor eventuele misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling. \ No newline at end of file + + + diff --git a/translations/nl/README.md b/translations/nl/README.md index eabedf68c..ad79eba2e 100644 --- a/translations/nl/README.md +++ b/translations/nl/README.md @@ -1,137 +1,12 @@ - -![Generative AI Voor Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.nl.png) - -### 21 Lessen die alles behandelen wat je moet weten om Generative AI-toepassingen te bouwen - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Meertalige Ondersteuning - -#### Ondersteund via GitHub Action (Geautomatiseerd & Altijd Up-to-Date) - -[Frans](../fr/README.md) | [Spaans](../es/README.md) | [Duits](../de/README.md) | [Russisch](../ru/README.md) | [Arabisch](../ar/README.md) | [Perzisch (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinees (Vereenvoudigd)](../zh/README.md) | [Chinees (Traditioneel, Macau)](../mo/README.md) | [Chinees (Traditioneel, Hong Kong)](../hk/README.md) | [Chinees (Traditioneel, Taiwan)](../tw/README.md) | [Japans](../ja/README.md) | [Koreaans](../ko/README.md) | [Hindi](../hi/README.md) | [Bengaals](../bn/README.md) | [Marathi](../mr/README.md) | [Nepalees](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portugees (Portugal)](../pt/README.md) | [Portugees (Brazilië)](../br/README.md) | [Italiaans](../it/README.md) | [Pools](../pl/README.md) | [Turks](../tr/README.md) | [Grieks](../el/README.md) | [Thais](../th/README.md) | [Zweeds](../sv/README.md) | [Deens](../da/README.md) | [Noors](../no/README.md) | [Fins](../fi/README.md) | [Nederlands](./README.md) | [Hebreeuws](../he/README.md) | [Vietnamees](../vi/README.md) | [Indonesisch](../id/README.md) | [Maleis](../ms/README.md) | [Tagalog (Filipijns)](../tl/README.md) | [Swahili](../sw/README.md) | [Hongaars](../hu/README.md) | [Tsjechisch](../cs/README.md) | [Slowaaks](../sk/README.md) | [Roemeens](../ro/README.md) | [Bulgaars](../bg/README.md) | [Servisch (Cyrillisch)](../sr/README.md) | [Kroatisch](../hr/README.md) | [Sloveens](../sl/README.md) | [Oekraïens](../uk/README.md) | [Birmaans (Myanmar)](../my/README.md) - -# Generative AI voor Beginners (Versie 3) - Een Cursus - -Leer de basisprincipes van het bouwen van Generative AI-toepassingen met onze uitgebreide cursus van 21 lessen door Microsoft Cloud Advocates. - -## 🌱 Aan de Slag - -Deze cursus bestaat uit 21 lessen. Elke les behandelt een eigen onderwerp, dus begin waar je maar wilt! - -Lessen zijn gelabeld als "Learn" lessen die een Generative AI-concept uitleggen, of "Build" lessen die een concept uitleggen en codevoorbeelden geven in zowel **Python** als **TypeScript** waar mogelijk. - -Voor .NET-ontwikkelaars is er [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -Elke les bevat ook een sectie "Keep Learning" met extra leermiddelen. - -## Wat Je Nodig Hebt -### Om de code van deze cursus uit te voeren, kun je gebruikmaken van: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **Lessen:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **Lessen:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **Lessen:** "oai-assignment" - -- Basiskennis van Python of TypeScript is handig - \*Voor absolute beginners zijn er deze [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) en [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) cursussen -- Een GitHub-account om [deze hele repo te forken](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) naar je eigen GitHub-account - -We hebben een **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** les gemaakt om je te helpen bij het opzetten van je ontwikkelomgeving. - -Vergeet niet om [deze repo te voorzien van een ster (🌟)](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) zodat je hem later makkelijker terugvindt. - -## 🧠 Klaar om te Deployen? - -Als je op zoek bent naar meer geavanceerde codevoorbeelden, bekijk dan onze [collectie van Generative AI Code Samples](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) in zowel **Python** als **TypeScript**. - -## 🗣️ Ontmoet Andere Leerlingen, Krijg Ondersteuning - -Word lid van onze [officiële Azure AI Foundry Discord-server](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) om andere cursisten te ontmoeten, te netwerken en ondersteuning te krijgen. - -Stel vragen of deel productfeedback in ons [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum) op Github. - -## 🚀 Een Startup Bouwen? - -Meld je aan bij [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) om **gratis OpenAI-tegoed** te ontvangen en tot **$150k aan Azure-tegoed om toegang te krijgen tot OpenAI-modellen via Azure OpenAI Services**. - -## 🙏 Wil je helpen? - -Heb je suggesties of fouten in spelling of code gevonden? [Maak een issue aan](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) of [Doe een pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 Elke les bevat: - -- Een korte video-introductie over het onderwerp -- Een geschreven les in de README -- Python- en TypeScript-codevoorbeelden die Azure OpenAI en OpenAI API ondersteunen -- Links naar extra bronnen om je leerproces voort te zetten - -## 🗃️ Lessen - -| # | **Les Link** | **Beschrijving** | **Video** | **Extra Leren** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Hoe je je ontwikkelomgeving opzet | Video Binnenkort Beschikbaar | [Meer Leren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introductie tot Generative AI en LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Begrijpen wat Generative AI is en hoe Large Language Models (LLMs) werken. | [Video](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Meer Leren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Verkennen en vergelijken van verschillende LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Hoe je het juiste model kiest voor jouw toepassing | [Video](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Meer Leren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Verantwoord gebruik van Generative AI](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Hoe je Generative AI-toepassingen op een verantwoorde manier bouwt | [Video](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Meer Leren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Begrijpen van de basisprincipes van Prompt Engineering](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Praktische best practices voor Prompt Engineering | [Video](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Meer Leren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Geavanceerde Prompts maken](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Hoe je prompt engineering technieken toepast die de uitkomst van je prompts verbeteren | [Video](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Meer Leren](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Tekstgeneratie-applicaties bouwen](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Bouwen:** Een tekstgeneratie-app met Azure OpenAI / OpenAI API | [Video](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Meer informatie](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Chatapplicaties bouwen](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Bouwen:** Technieken voor het efficiënt bouwen en integreren van chatapplicaties. | [Video](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Meer informatie](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Zoekapps bouwen met Vector Databases](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Bouwen:** Een zoekapplicatie die Embeddings gebruikt om data te doorzoeken. | [Video](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Meer informatie](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Beeldgeneratie-applicaties bouwen](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Bouwen:** Een applicatie voor beeldgeneratie | [Video](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Meer informatie](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Low Code AI-applicaties bouwen](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Bouwen:** Een Generative AI-applicatie met Low Code tools | [Video](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Meer informatie](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Externe applicaties integreren met Function Calling](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Bouwen:** Wat is function calling en de toepassingen ervan voor apps | [Video](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Meer informatie](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [UX ontwerpen voor AI-applicaties](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Leren:** Hoe UX-ontwerpprincipes toe te passen bij het ontwikkelen van Generative AI-apps | [Video](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Meer informatie](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Je Generative AI-applicaties beveiligen](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Leren:** De bedreigingen en risico’s voor AI-systemen en hoe je deze systemen beveiligt | [Video](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Meer informatie](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [De levenscyclus van Generative AI-applicaties](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Leren:** De tools en metrics om de LLM-leven cyclus en LLMOps te beheren | [Video](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Meer informatie](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) en Vector Databases](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Bouwen:** Een applicatie die een RAG-framework gebruikt om embeddings uit Vector Databases op te halen | [Video](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Meer informatie](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Open Source Modellen en Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Bouwen:** Een applicatie met open source modellen beschikbaar op Hugging Face | [Video](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Meer informatie](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI Agents](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Bouwen:** Een applicatie met een AI Agent Framework | [Video](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Meer informatie](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [Fine-Tuning van LLMs](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Leren:** Wat, waarom en hoe van fine-tuning van LLMs | [Video](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Meer informatie](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Bouwen met SLMs](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Leren:** De voordelen van bouwen met Small Language Models | Video Binnenkort Beschikbaar | [Meer informatie](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Bouwen met Mistral Modellen](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Leren:** De kenmerken en verschillen van de Mistral Family Modellen | Video Binnenkort Beschikbaar | [Meer informatie](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Bouwen met Meta Modellen](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Leren:** De kenmerken en verschillen van de Meta Family Modellen | Video Binnenkort Beschikbaar | [Meer informatie](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Speciale dank - -Speciale dank aan [**John Aziz**](https://www.linkedin.com/in/john0isaac/) voor het maken van alle GitHub Actions en workflows - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) voor zijn belangrijke bijdragen aan elke les om de leer- en code-ervaring te verbeteren. - -## 🎒 Andere cursussen - -Ons team maakt ook andere cursussen! Bekijk: - -- [**NIEUW** Model Context Protocol voor Beginners](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI Agents voor Beginners](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Generative AI voor Beginners met .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Generative AI voor Beginners met JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML voor Beginners](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Data Science voor Beginners](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI voor Beginners](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Cybersecurity voor Beginners](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Webontwikkeling voor Beginners](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT voor Beginners](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR-ontwikkeling voor Beginners](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [GitHub Copilot voor AI Paired Programming beheersen](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [GitHub Copilot voor C#/.NET Developers beheersen](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Kies je eigen Copilot Avontuur](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Disclaimer**: -Dit document is vertaald met behulp van de AI-vertalingsdienst [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, dient u er rekening mee te houden dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het originele document in de oorspronkelijke taal moet als de gezaghebbende bron worden beschouwd. Voor cruciale informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor eventuele misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling. \ No newline at end of file + + + + diff --git a/translations/no/00-course-setup/01-setup-cloud.md b/translations/no/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..1dd4d6b68 --- /dev/null +++ b/translations/no/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/no/00-course-setup/02-setup-local.md b/translations/no/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..64597c3c2 --- /dev/null +++ b/translations/no/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/no/00-course-setup/03-providers.md b/translations/no/00-course-setup/03-providers.md new file mode 100644 index 000000000..2a805fa12 --- /dev/null +++ b/translations/no/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/no/00-course-setup/README.md b/translations/no/00-course-setup/README.md index 18686b051..b1041353d 100644 --- a/translations/no/00-course-setup/README.md +++ b/translations/no/00-course-setup/README.md @@ -1,228 +1,12 @@ - -# Kom i gang med dette kurset - -Vi er veldig glade for at du skal starte dette kurset og se hva du blir inspirert til å bygge med Generativ AI! - -For å sikre at du lykkes, beskriver denne siden oppsettsteg, tekniske krav og hvor du kan få hjelp om nødvendig. - -## Oppsettsteg - -For å begynne på dette kurset må du fullføre følgende steg. - -### 1. Fork dette repoet - -[Fork hele dette repoet](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) til din egen GitHub-konto for å kunne endre kode og fullføre utfordringene. Du kan også [starte (🌟) dette repoet](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) for å finne det og relaterte repoer enklere. - -### 2. Opprett en codespace - -For å unngå avhengighetsproblemer når du kjører koden, anbefaler vi å kjøre dette kurset i en [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst). - -Dette kan opprettes ved å velge `Code`-alternativet på din forkede versjon av dette repoet og deretter velge **Codespaces**-alternativet. - -![Dialog som viser knapper for å opprette en codespace](../../../00-course-setup/images/who-will-pay.webp) - -### 3. Lagring av API-nøkler - -Det er viktig å holde API-nøklene dine trygge og sikre når du bygger applikasjoner. Vi anbefaler at du ikke lagrer API-nøkler direkte i koden din. Å legge disse detaljene i et offentlig repo kan føre til sikkerhetsproblemer og uønskede kostnader hvis de blir misbrukt. - -Her er en steg-for-steg guide for hvordan du lager en `.env`-fil for Python og legger til `GITHUB_TOKEN`: - -1. **Naviger til prosjektmappen din**: Åpne terminalen eller kommandolinjen og gå til rotmappen for prosjektet der du vil opprette `.env`-filen. - - ```bash - cd path/to/your/project - ``` - -2. **Opprett `.env`-filen**: Bruk din foretrukne teksteditor for å lage en ny fil kalt `.env`. Hvis du bruker kommandolinjen, kan du bruke `touch` (på Unix-baserte systemer) eller `echo` (på Windows): - - Unix-baserte systemer: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **Rediger `.env`-filen**: Åpne `.env`-filen i en teksteditor (f.eks. VS Code, Notepad++ eller annen editor). Legg til følgende linje i filen, og erstatt `your_github_token_here` med din faktiske GitHub-token: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Lagre filen**: Lagre endringene og lukk teksteditoren. - -5. **Installer `python-dotenv`**: Hvis du ikke allerede har gjort det, må du installere `python-dotenv`-pakken for å kunne laste miljøvariabler fra `.env`-filen inn i Python-applikasjonen din. Du kan installere den med `pip`: - - ```bash - pip install python-dotenv - ``` - -6. **Last miljøvariabler i Python-skriptet ditt**: I Python-skriptet ditt, bruk `python-dotenv`-pakken for å laste miljøvariablene fra `.env`-filen: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -Det var det! Du har nå opprettet en `.env`-fil, lagt til GitHub-tokenen din, og lastet den inn i Python-applikasjonen. - -## Hvordan kjøre lokalt på din datamaskin - -For å kjøre koden lokalt på din datamaskin, må du ha en versjon av [Python installert](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -For å bruke repoet må du klone det: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -Når du har alt på plass, kan du sette i gang! - -## Valgfrie steg - -### Installere Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) er en lettvektsinstaller for å installere [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python, samt noen pakker. - -Conda er en pakkebehandler som gjør det enkelt å sette opp og bytte mellom ulike Python [**virtuelle miljøer**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) og pakker. Det er også nyttig for å installere pakker som ikke er tilgjengelige via `pip`. - -Du kan følge [Miniconda installasjonsguide](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) for å sette det opp. - -Når Miniconda er installert, må du klone [repoet](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (hvis du ikke allerede har gjort det). - -Deretter må du opprette et virtuelt miljø. For å gjøre dette med Conda, lag en ny miljøfil (_environment.yml_). Hvis du følger med i Codespaces, opprett denne i `.devcontainer`-mappen, altså `.devcontainer/environment.yml`. - -Fyll miljøfilen med kodesnutten under: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Hvis du får feil ved bruk av conda, kan du manuelt installere Microsoft AI Libraries med følgende kommando i terminalen. - -``` -conda install -c microsoft azure-ai-ml -``` - -Miljøfilen spesifiserer avhengighetene vi trenger. `` er navnet du ønsker å bruke for Conda-miljøet ditt, og `` er Python-versjonen du vil bruke, for eksempel `3` som er siste hovedversjon av Python. - -Når dette er gjort, kan du opprette Conda-miljøet ved å kjøre kommandoene under i kommandolinjen/terminalen: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -Se [Conda environments guide](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst) hvis du støter på problemer. - -### Bruke Visual Studio Code med Python-støtteutvidelsen - -Vi anbefaler å bruke [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) med [Python-støtteutvidelsen](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) installert for dette kurset. Dette er imidlertid en anbefaling, ikke et absolutt krav. - -> **Note**: Ved å åpne kursrepoet i VS Code, har du muligheten til å sette opp prosjektet i en container. Dette er mulig på grunn av den [spesielle `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst)-mappen i kursrepoet. Mer om dette senere. - -> **Note**: Når du kloner og åpner mappen i VS Code, vil det automatisk foreslå å installere Python-støtteutvidelsen. - -> **Note**: Hvis VS Code foreslår at du åpner repoet i en container, kan du avslå dette for å bruke den lokalt installerte versjonen av Python. - -### Bruke Jupyter i nettleseren - -Du kan også jobbe med prosjektet ved å bruke [Jupyter-miljøet](https://jupyter.org?WT.mc_id=academic-105485-koreyst) direkte i nettleseren. Både klassisk Jupyter og [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) gir et behagelig utviklingsmiljø med funksjoner som autfullføring, kodesyntaksutheving, osv. - -For å starte Jupyter lokalt, gå til terminalen/kommandolinjen, naviger til kursmappen, og kjør: - -```bash -jupyter notebook -``` - -eller - -```bash -jupyterhub -``` - -Dette starter en Jupyter-instans, og URL-en for å få tilgang til den vises i kommandolinjevinduet. - -Når du åpner URL-en, skal du se kursoversikten og kunne navigere til alle `*.ipynb`-filer. For eksempel `08-building-search-applications/python/oai-solution.ipynb`. - -### Kjøre i en container - -Et alternativ til å sette opp alt på din datamaskin eller i Codespace er å bruke en [container](../../../00-course-setup/). Den spesielle `.devcontainer`-mappen i kursrepoet gjør det mulig for VS Code å sette opp prosjektet i en container. Utenfor Codespaces krever dette installasjon av Docker, og det kan være litt arbeid, så vi anbefaler dette kun for de med erfaring med containere. - -En av de beste måtene å holde API-nøklene dine sikre når du bruker GitHub Codespaces, er ved å bruke Codespace Secrets. Følg [Codespaces secrets management](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) for å lære mer om dette. - -## Leksjoner og tekniske krav - -Kurset har 6 konseptleksjoner og 6 kodelesjoner. - -For kodeleksjonene bruker vi Azure OpenAI Service. Du må ha tilgang til Azure OpenAI-tjenesten og en API-nøkkel for å kjøre koden. Du kan søke om tilgang ved å [fullføre denne søknaden](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -Mens du venter på at søknaden din behandles, inkluderer hver kodeleksjon også en `README.md`-fil hvor du kan se koden og resultatene. - -## Bruke Azure OpenAI Service for første gang - -Hvis dette er første gang du bruker Azure OpenAI-tjenesten, følg denne guiden for hvordan du [oppretter og distribuerer en Azure OpenAI Service-ressurs.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## Bruke OpenAI API for første gang - -Hvis dette er første gang du bruker OpenAI API, følg guiden for hvordan du [oppretter og bruker grensesnittet.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## Møt andre deltakere - -Vi har opprettet kanaler i vår offisielle [AI Community Discord-server](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) for å møte andre deltakere. Dette er en flott måte å knytte nettverk med andre likesinnede gründere, utviklere, studenter og alle som ønsker å bli bedre innen Generativ AI. - -[![Bli med i discord-kanalen](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -Prosjektteamet vil også være på denne Discord-serveren for å hjelpe deltakere. - -## Bidra - -Dette kurset er et åpen kildekode-initiativ. Hvis du ser forbedringsmuligheter eller problemer, vennligst opprett en [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) eller logg en [GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -Prosjektteamet følger med på alle bidrag. Å bidra til åpen kildekode er en fantastisk måte å bygge karrieren din innen Generativ AI. - -De fleste bidrag krever at du godtar en Contributor License Agreement (CLA) som bekrefter at du har rett til, og faktisk gir oss rettighetene til å bruke bidraget ditt. For detaljer, besøk [CLA, Contributor License Agreement-nettsiden](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Viktig: når du oversetter tekst i dette repoet, må du sørge for at du ikke bruker maskinoversettelse. Vi vil verifisere oversettelser via fellesskapet, så vær vennlig å bare melde deg som frivillig for oversettelser på språk du behersker godt. - -Når du sender inn en pull request, vil en CLA-bot automatisk avgjøre om du må levere en CLA og merke PR-en deretter (f.eks. med etikett eller kommentar). Følg bare instruksjonene fra boten. Du trenger bare gjøre dette én gang for alle repoer som bruker vår CLA. - -Dette prosjektet har tatt i bruk [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst). For mer informasjon, les Code of Conduct FAQ eller kontakt [Email opencode](opencode@microsoft.com) ved spørsmål eller kommentarer. - -## La oss komme i gang - -Nå som du har fullført nødvendige steg for å gjennomføre kurset, la oss starte med en [introduksjon til Generativ AI og LLMs](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**Ansvarsfraskrivelse**: -Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selv om vi streber etter nøyaktighet, vennligst vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det opprinnelige dokumentet på originalspråket skal anses som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen. \ No newline at end of file + + + + diff --git a/translations/no/00-course-setup/SETUP.md b/translations/no/00-course-setup/SETUP.md deleted file mode 100644 index 16cb3aa58..000000000 --- a/translations/no/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# Sett opp utviklingsmiljøet ditt - -Vi har satt opp dette depotet og kurset med en [utviklingscontainer](https://containers.dev?WT.mc_id=academic-105485-koreyst) som har en universell runtime som støtter utvikling i Python3, .NET, Node.js og Java. Den tilhørende konfigurasjonen er definert i `devcontainer.json`-filen som ligger i `.devcontainer/`-mappen i roten av dette depotet. - -For å aktivere utviklingscontaineren, start den i [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (for en skybasert runtime) eller i [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (for en lokal runtime på enheten din). Les [denne dokumentasjonen](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) for mer informasjon om hvordan utviklingscontainere fungerer i VS Code. - -> [!TIP] -> Vi anbefaler å bruke GitHub Codespaces for en rask start med minimal innsats. Det gir en generøs [gratis kvote](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) for personlige kontoer. Konfigurer [tidsavbrudd](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) for å stoppe eller slette inaktive codespaces for å maksimere bruken av kvoten din. - -## 1. Kjøre oppgaver - -Hver leksjon vil ha _valgfri_ oppgaver som kan tilbys i ett eller flere programmeringsspråk, inkludert: Python, .NET/C#, Java og JavaScript/TypeScript. Denne seksjonen gir generell veiledning for hvordan du kan kjøre disse oppgavene. - -### 1.1 Python-oppgaver - -Python-oppgaver leveres enten som applikasjoner (`.py`-filer) eller Jupyter-notatbøker (`.ipynb`-filer). -- For å kjøre notatboken, åpne den i Visual Studio Code, klikk deretter på _Select Kernel_ (øverst til høyre) og velg standard Python 3-alternativet som vises. Du kan nå velge _Run All_ for å kjøre hele notatboken. -- For å kjøre Python-applikasjoner fra kommandolinjen, følg oppgavespesifikke instruksjoner for å sikre at du velger riktige filer og oppgir nødvendige argumenter. - -## 2. Konfigurere leverandører - -Oppgaver **kan** også være satt opp til å fungere mot én eller flere distribusjoner av store språkmodeller (LLM) gjennom en støttet tjenesteleverandør som OpenAI, Azure eller Hugging Face. Disse tilbyr et _hostet endepunkt_ (API) som vi kan få tilgang til programmatisk med riktige legitimasjoner (API-nøkkel eller token). I dette kurset diskuterer vi disse leverandørene: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) med ulike modeller, inkludert kjerne-GPT-serien. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) for OpenAI-modeller med fokus på bedriftsklarhet - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) for open source-modeller og inferensserver - -**Du må bruke dine egne kontoer for disse øvelsene**. Oppgavene er valgfrie, så du kan velge å sette opp én, alle eller ingen av leverandørene basert på dine interesser. Litt veiledning for registrering: - -| Registrering | Kostnad | API-nøkkel | Playground | Kommentarer | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst) | [Priser](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst) | [Prosjektbasert](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [No-Code, Web](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Flere modeller tilgjengelig | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst) | [Priser](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst) | [SDK Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Studio Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Må søke om tilgang på forhånd](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) | -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Priser](https://huggingface.co/pricing) | [Access Tokens](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst) | [Hugging Chat har begrensede modeller](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Følg instruksjonene nedenfor for å _konfigurere_ dette depotet for bruk med ulike leverandører. Oppgaver som krever en spesifikk leverandør vil ha en av disse taggene i filnavnet: - - `aoai` - krever Azure OpenAI-endepunkt og nøkkel - - `oai` - krever OpenAI-endepunkt og nøkkel - - `hf` - krever Hugging Face-token - -Du kan konfigurere én, ingen eller alle leverandører. Oppgaver som krever en leverandør uten riktige legitimasjoner vil gi feilmelding. - -### 2.1. Opprett `.env`-fil - -Vi antar at du allerede har lest veiledningen ovenfor, registrert deg hos relevant leverandør, og fått nødvendige autentiseringsopplysninger (API_KEY eller token). I tilfellet Azure OpenAI antar vi også at du har en gyldig distribusjon av en Azure OpenAI-tjeneste (endepunkt) med minst én GPT-modell distribuert for chat fullføring. - -Neste steg er å konfigurere dine **lokale miljøvariabler** som følger: - -1. Se i rotmappen etter en `.env.copy`-fil som skal inneholde noe slikt: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Kopier denne filen til `.env` med kommandoen nedenfor. Denne filen er _gitignore-d_, slik at hemmeligheter holdes trygge. - - ```bash - cp .env.copy .env - ``` - -3. Fyll inn verdiene (erstatt plassholdere på høyre side av `=`) som beskrevet i neste seksjon. - -3. (Valgfritt) Hvis du bruker GitHub Codespaces, kan du lagre miljøvariabler som _Codespaces secrets_ knyttet til dette depotet. I så fall trenger du ikke sette opp en lokal .env-fil. **Merk at dette kun fungerer hvis du bruker GitHub Codespaces.** Du må fortsatt sette opp .env-filen hvis du bruker Docker Desktop. - -### 2.2. Fyll ut `.env`-filen - -La oss ta en rask titt på variabelnavnene for å forstå hva de representerer: - -| Variabel | Beskrivelse | -| :--- | :--- | -| HUGGING_FACE_API_KEY | Dette er brukertokenet du har satt opp i profilen din | -| OPENAI_API_KEY | Dette er autorisasjonsnøkkelen for bruk av tjenesten for ikke-Azure OpenAI-endepunkter | -| AZURE_OPENAI_API_KEY | Dette er autorisasjonsnøkkelen for bruk av den tjenesten | -| AZURE_OPENAI_ENDPOINT | Dette er det distribuerte endepunktet for en Azure OpenAI-ressurs | -| AZURE_OPENAI_DEPLOYMENT | Dette er endepunktet for _tekstgenererings_-modellens distribusjon | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | Dette er endepunktet for _tekst-embedding_-modellens distribusjon | -| | | - -Merk: De to siste Azure OpenAI-variablene representerer en standardmodell for henholdsvis chat fullføring (tekstgenerering) og vektorsøk (embedding). Instruksjoner for å sette disse vil bli gitt i relevante oppgaver. - -### 2.3 Konfigurer Azure: Fra portalen - -Verdiene for Azure OpenAI-endepunkt og nøkkel finner du i [Azure-portalen](https://portal.azure.com?WT.mc_id=academic-105485-koreyst), så la oss starte der. - -1. Gå til [Azure-portalen](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -1. Klikk på **Keys and Endpoint** i sidemenyen (meny til venstre). -1. Klikk på **Show Keys** – du skal se følgende: KEY 1, KEY 2 og Endpoint. -1. Bruk verdien for KEY 1 som AZURE_OPENAI_API_KEY -1. Bruk verdien for Endpoint som AZURE_OPENAI_ENDPOINT - -Neste steg er å finne endepunktene for de spesifikke modellene vi har distribuert. - -1. Klikk på **Model deployments** i sidemenyen (venstre meny) for Azure OpenAI-ressursen. -1. På destinasjonssiden klikker du på **Manage Deployments** - -Dette tar deg til Azure OpenAI Studio-nettstedet, hvor vi finner de andre verdiene som beskrevet nedenfor. - -### 2.4 Konfigurer Azure: Fra Studio - -1. Naviger til [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **fra ressursen din** som beskrevet ovenfor. -1. Klikk på fanen **Deployments** (sidemeny, venstre) for å se modeller som er distribuert. -1. Hvis ønsket modell ikke er distribuert, bruk **Create new deployment** for å distribuere den. -1. Du trenger en _tekstgenererings_-modell – vi anbefaler: **gpt-35-turbo** -1. Du trenger en _tekst-embedding_-modell – vi anbefaler **text-embedding-ada-002** - -Oppdater nå miljøvariablene for å reflektere _Deployment name_ som brukes. Dette vil vanligvis være det samme som modellnavnet med mindre du har endret det eksplisitt. For eksempel kan du ha: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**Ikke glem å lagre .env-filen når du er ferdig**. Du kan nå lukke filen og gå tilbake til instruksjonene for å kjøre notatboken. - -### 2.5 Konfigurer OpenAI: Fra profil - -Din OpenAI API-nøkkel finner du i din [OpenAI-konto](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). Hvis du ikke har en, kan du registrere deg for en konto og opprette en API-nøkkel. Når du har nøkkelen, kan du bruke den til å fylle ut `OPENAI_API_KEY`-variabelen i `.env`-filen. - -### 2.6 Konfigurer Hugging Face: Fra profil - -Din Hugging Face-token finner du i profilen din under [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). Ikke del eller publiser disse offentlig. Lag i stedet en ny token for bruk i dette prosjektet og kopier den inn i `.env`-filen under variabelen `HUGGING_FACE_API_KEY`. _Merk:_ Dette er teknisk sett ikke en API-nøkkel, men brukes til autentisering, så vi beholder denne navngivningen for konsistens. - -**Ansvarsfraskrivelse**: -Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selv om vi streber etter nøyaktighet, vennligst vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det opprinnelige dokumentet på originalspråket skal anses som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen. \ No newline at end of file diff --git a/translations/no/04-prompt-engineering-fundamentals/README.md b/translations/no/04-prompt-engineering-fundamentals/README.md index f6c0217e4..24f1e8e40 100644 --- a/translations/no/04-prompt-engineering-fundamentals/README.md +++ b/translations/no/04-prompt-engineering-fundamentals/README.md @@ -1,453 +1,15 @@ - -# Grunnleggende om Prompt Engineering - -[![Prompt Engineering Fundamentals](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.no.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Introduksjon -Denne modulen dekker viktige konsepter og teknikker for å lage effektive prompts i generative AI-modeller. Måten du skriver prompten din til en LLM på, har også betydning. En nøye utformet prompt kan gi bedre kvalitet på svaret. Men hva betyr egentlig begrepene _prompt_ og _prompt engineering_? Og hvordan kan jeg forbedre prompt-_inputen_ jeg sender til LLM-en? Dette er spørsmålene vi skal prøve å svare på i dette kapittelet og det neste. - -_Generativ AI_ kan lage nytt innhold (f.eks. tekst, bilder, lyd, kode osv.) som svar på brukerforespørsler. Den gjør dette ved hjelp av _Large Language Models_ som OpenAIs GPT ("Generative Pre-trained Transformer")-serie, som er trent til å bruke naturlig språk og kode. - -Brukere kan nå samhandle med disse modellene ved hjelp av kjente paradigmer som chat, uten å trenge teknisk ekspertise eller opplæring. Modellene er _prompt-baserte_ – brukere sender inn tekst (prompt) og får tilbake AI-svaret (completion). De kan deretter "chatte med AI-en" iterativt, i samtaler med flere runder, og forbedre prompten sin til svaret matcher forventningene. - -"Prompter" blir nå det primære _programmeringsgrensesnittet_ for generative AI-apper, som forteller modellene hva de skal gjøre og påvirker kvaliteten på svarene som returneres. "Prompt Engineering" er et raskt voksende fagfelt som fokuserer på _design og optimalisering_ av prompter for å levere konsistente og kvalitetsmessige svar i stor skala. - -## Læringsmål - -I denne leksjonen lærer vi hva Prompt Engineering er, hvorfor det er viktig, og hvordan vi kan lage mer effektive prompter for en gitt modell og applikasjonsmål. Vi skal forstå kjernebegreper og beste praksis for prompt engineering – og lære om et interaktivt Jupyter Notebook-"sandbox"-miljø hvor vi kan se disse konseptene anvendt på ekte eksempler. - -Ved slutten av denne leksjonen skal vi kunne: - -1. Forklare hva prompt engineering er og hvorfor det er viktig. -2. Beskrive komponentene i en prompt og hvordan de brukes. -3. Lære beste praksis og teknikker for prompt engineering. -4. Anvende lærte teknikker på ekte eksempler, ved bruk av en OpenAI-endepunkt. - -## Nøkkelbegreper - -Prompt Engineering: Praksisen med å designe og forbedre input for å styre AI-modeller mot å produsere ønskede resultater. -Tokenisering: Prosessen med å konvertere tekst til mindre enheter, kalt tokens, som en modell kan forstå og behandle. -Instruction-Tuned LLMs: Store språkmodeller (LLMs) som er finjustert med spesifikke instruksjoner for å forbedre nøyaktighet og relevans i svarene. - -## Læringssandbox - -Prompt engineering er foreløpig mer kunst enn vitenskap. Den beste måten å forbedre intuisjonen på er å _øve mer_ og bruke en prøving-og-feiling-tilnærming som kombinerer fagkunnskap med anbefalte teknikker og modellspesifikke optimaliseringer. - -Jupyter Notebook-en som følger med denne leksjonen, gir et _sandbox_-miljø hvor du kan prøve ut det du lærer – enten underveis eller som en del av kodeutfordringen på slutten. For å kjøre øvelsene trenger du: - -1. **En Azure OpenAI API-nøkkel** – tjenesteendepunkt for en distribuert LLM. -2. **Et Python-runtime** – hvor Notebook-en kan kjøres. -3. **Lokale miljøvariabler** – _fullfør [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) nå for å være klar_. - -Notebook-en kommer med _startøvelser_ – men du oppfordres til å legge til egne _Markdown_ (beskrivelse) og _Code_ (prompt-forespørsler) seksjoner for å prøve flere eksempler eller ideer – og bygge opp intuisjonen din for promptdesign. - -## Illustrert guide - -Vil du få en oversikt over hva denne leksjonen dekker før du går i gang? Sjekk ut denne illustrerte guiden, som gir deg en følelse av hovedtemaene og viktige punkter å tenke på i hver del. Leksjonsplanen tar deg fra å forstå kjernebegrepene og utfordringene til å møte dem med relevante prompt engineering-teknikker og beste praksis. Merk at delen "Avanserte teknikker" i denne guiden refererer til innhold som dekkes i _neste_ kapittel i dette kurset. - -![Illustrert guide til Prompt Engineering](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.no.png) - -## Vår startup - -La oss nå snakke om hvordan _dette temaet_ henger sammen med vår startup-misjon om å [bringe AI-innovasjon til utdanning](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). Vi ønsker å bygge AI-drevne applikasjoner for _personlig tilpasset læring_ – så la oss tenke på hvordan ulike brukere av applikasjonen vår kan "designe" prompter: - -- **Administratorer** kan be AI om å _analysere læreplandata for å identifisere hull i dekningen_. AI-en kan oppsummere resultater eller visualisere dem med kode. -- **Lærere** kan be AI om å _generere en leksjonsplan for en målgruppe og et tema_. AI-en kan lage den personlige planen i et spesifisert format. -- **Studenter** kan be AI om å _veilede dem i et vanskelig fag_. AI-en kan nå hjelpe studenter med leksjoner, hint og eksempler tilpasset deres nivå. - -Dette er bare toppen av isfjellet. Sjekk ut [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) – et åpent kildekode-bibliotek med prompter kuratert av utdanningseksperter – for å få en bredere forståelse av mulighetene! _Prøv å kjøre noen av disse promptene i sandboxen eller i OpenAI Playground for å se hva som skjer!_ - - - -## Hva er Prompt Engineering? - -Vi startet denne leksjonen med å definere **Prompt Engineering** som prosessen med å _designe og optimalisere_ tekstinput (prompter) for å levere konsistente og kvalitetsmessige svar (completions) for et gitt applikasjonsmål og modell. Vi kan tenke på dette som en to-trinns prosess: - -- _designe_ den opprinnelige prompten for en gitt modell og mål -- _forbedre_ prompten iterativt for å øke kvaliteten på svaret - -Dette er nødvendigvis en prøving-og-feiling-prosess som krever brukerintuisjon og innsats for å oppnå optimale resultater. Så hvorfor er det viktig? For å svare på det må vi først forstå tre konsepter: - -- _Tokenisering_ = hvordan modellen "ser" prompten -- _Base LLMs_ = hvordan grunnmodellen "behandler" en prompt -- _Instruction-Tuned LLMs_ = hvordan modellen nå kan forstå "oppgaver" - -### Tokenisering - -En LLM ser på prompter som en _sekvens av tokens_, hvor forskjellige modeller (eller versjoner av en modell) kan tokenisere samme prompt på ulike måter. Siden LLM-er er trent på tokens (og ikke rå tekst), har måten prompten tokeniseres på direkte innvirkning på kvaliteten på det genererte svaret. - -For å få en følelse av hvordan tokenisering fungerer, prøv verktøy som [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) vist nedenfor. Lim inn prompten din – og se hvordan den konverteres til tokens, med oppmerksomhet på hvordan mellomrom og tegnsetting håndteres. Merk at dette eksempelet viser en eldre LLM (GPT-3) – så å prøve dette med en nyere modell kan gi et annet resultat. - -![Tokenisering](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.no.png) - -### Konsept: Grunnmodeller - -Når en prompt er tokenisert, er hovedfunksjonen til ["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (eller grunnmodellen) å forutsi token i sekvensen. Siden LLM-er er trent på enorme tekstdatasett, har de god forståelse for statistiske sammenhenger mellom tokens og kan gjøre denne forutsigelsen med en viss sikkerhet. Merk at de ikke forstår _meningen_ med ordene i prompten eller token; de ser bare et mønster de kan "fullføre" med neste forutsigelse. De kan fortsette å forutsi sekvensen til de stoppes av bruker eller en forhåndsdefinert betingelse. - -Vil du se hvordan prompt-basert fullføring fungerer? Skriv inn prompten ovenfor i Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) med standardinnstillinger. Systemet er konfigurert til å behandle prompter som informasjonsforespørsler – så du bør se et svar som tilfredsstiller denne konteksten. - -Men hva om brukeren ønsket å se noe spesifikt som oppfyller visse kriterier eller oppgave? Her kommer _instruction-tuned_ LLM-er inn i bildet. - -![Base LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.no.png) - -### Konsept: Instruction Tuned LLMs - -En [Instruction Tuned LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) starter med grunnmodellen og finjusterer den med eksempler eller input/output-par (f.eks. samtaler med flere runder) som kan inneholde klare instruksjoner – og AI-svaret forsøker å følge disse instruksjonene. - -Dette bruker teknikker som Reinforcement Learning with Human Feedback (RLHF) som kan trene modellen til å _følge instruksjoner_ og _lære av tilbakemeldinger_ slik at den produserer svar som er bedre tilpasset praktiske bruksområder og mer relevante for brukerens mål. - -La oss prøve – gå tilbake til prompten ovenfor, men endre nå _systemmeldingen_ til å gi følgende instruksjon som kontekst: - -> _Oppsummer innholdet du får for en elev på andre trinn. Hold resultatet til ett avsnitt med 3-5 punkter._ - -Ser du hvordan resultatet nå er tilpasset det ønskede målet og formatet? En lærer kan nå bruke dette svaret direkte i sine presentasjoner for den klassen. - -![Instruction Tuned LLM Chat Completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.no.png) - -## Hvorfor trenger vi Prompt Engineering? - -Nå som vi vet hvordan prompter behandles av LLM-er, la oss snakke om _hvorfor_ vi trenger prompt engineering. Svaret ligger i at dagens LLM-er har flere utfordringer som gjør det vanskeligere å oppnå _pålitelige og konsistente svar_ uten å legge innsats i konstruksjon og optimalisering av prompten. For eksempel: - -1. **Modellens svar er stokastiske.** _Samme prompt_ vil sannsynligvis gi ulike svar med forskjellige modeller eller modellversjoner. Og det kan til og med gi ulike resultater med _samme modell_ til forskjellige tider. _Prompt engineering-teknikker kan hjelpe oss å minimere disse variasjonene ved å gi bedre rammer_. - -1. **Modeller kan finne på svar.** Modellene er forhåndstrent på _store, men begrensede_ datasett, noe som betyr at de mangler kunnskap om konsepter utenfor treningsområdet. Som følge kan de produsere svar som er unøyaktige, oppdiktede eller direkte i strid med kjente fakta. _Prompt engineering hjelper brukere å identifisere og redusere slike fabrikasjoner, for eksempel ved å be AI om kilder eller begrunnelser_. - -1. **Modellers evner vil variere.** Nyere modeller eller modellgenerasjoner vil ha rikere evner, men også unike særtrekk og kompromisser i kostnad og kompleksitet. _Prompt engineering kan hjelpe oss å utvikle beste praksis og arbeidsflyter som skjuler forskjeller og tilpasser seg modellspesifikke krav på en skalerbar og sømløs måte_. - -La oss se dette i praksis i OpenAI eller Azure OpenAI Playground: - -- Bruk samme prompt med ulike LLM-distribusjoner (f.eks. OpenAI, Azure OpenAI, Hugging Face) – så du variasjonene? -- Bruk samme prompt flere ganger med _samme_ LLM-distribusjon (f.eks. Azure OpenAI playground) – hvordan var variasjonene da? - -### Eksempel på fabrikasjoner - -I dette kurset bruker vi begrepet **"fabrikasjon"** for å referere til fenomenet der LLM-er noen ganger genererer faktuelt feilaktig informasjon på grunn av begrensninger i treningen eller andre forhold. Du har kanskje også hørt dette omtalt som _"hallusinasjoner"_ i populære artikler eller forskningsartikler. Vi anbefaler imidlertid sterkt å bruke _"fabrikasjon"_ som begrep for å unngå å tillegge maskindrevne resultater menneskelige egenskaper. Dette understøtter også [Retningslinjer for ansvarlig AI](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) fra et terminologisk perspektiv, ved å fjerne begreper som kan oppfattes som støtende eller ikke inkluderende i noen sammenhenger. - -Vil du få en følelse av hvordan fabrikasjoner fungerer? Tenk på en prompt som instruerer AI-en til å generere innhold om et ikke-eksisterende tema (for å sikre at det ikke finnes i treningsdataene). For eksempel – jeg prøvde denne prompten: -# Leksjonsplan: Den marsianske krigen i 2076 - -## Introduksjon -I denne leksjonen skal vi utforske den marsianske krigen som fant sted i 2076. Vi vil se på bakgrunnen for konflikten, hovedhendelsene under krigen, og konsekvensene for både Mars og Jorden. - -## Mål -- Forstå årsakene til den marsianske krigen -- Analysere viktige slag og strategier brukt under krigen -- Diskutere krigens innvirkning på fremtidig romfart og diplomati - -## Tidsplan - -### 1. Bakgrunn og årsaker (15 minutter) -- Kort gjennomgang av Mars-kolonisering fram til 2076 -- Spenninger mellom jordiske myndigheter og marsianske kolonister -- Ressurskamp og politiske uenigheter - -### 2. Hovedhendelser i krigen (30 minutter) -- Starten på konflikten: de første sammenstøtene -- Viktige slag og taktikker brukt av begge sider -- Teknologiske nyvinninger under krigen - -### 3. Konsekvenser og etterspill (15 minutter) -- Avtaler og fredsforhandlinger -- Endringer i romfartslover og kolonipolitikk -- Langsiktige effekter på Mars og Jorden - -## Aktiviteter -- Diskusjon: Hva kunne vært gjort annerledes for å unngå krigen? -- Gruppearbeid: Lag en tidslinje over de viktigste hendelsene i krigen -- Individuell oppgave: Skriv et brev fra perspektivet til en marsiansk kolonist under krigen - -## Ressurser -- Historiske dokumenter og rapporter fra 2076 -- Interaktive kart over slagområdene -- Videoer med intervjuer av overlevende og eksperter - -## Oppsummering -Avslutt leksjonen med en oppsummering av de viktigste punktene og åpne for spørsmål fra deltakerne. Diskuter hvordan forståelsen av denne konflikten kan hjelpe oss med å håndtere fremtidige utfordringer i romfart og internasjonale relasjoner. -Et nettsøk viste meg at det fantes fiktive beretninger (f.eks. TV-serier eller bøker) om marskriger – men ingen i 2076. Sunn fornuft forteller oss også at 2076 er _i fremtiden_ og derfor ikke kan knyttes til en virkelig hendelse. - -Så hva skjer når vi kjører denne prompten med forskjellige LLM-leverandører? - -> **Respons 1**: OpenAI Playground (GPT-35) - -![Respons 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.no.png) - -> **Respons 2**: Azure OpenAI Playground (GPT-35) - -![Respons 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.no.png) - -> **Respons 3**: : Hugging Face Chat Playground (LLama-2) - -![Respons 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.no.png) - -Som forventet gir hver modell (eller modellversjon) litt forskjellige svar takket være stokastisk oppførsel og variasjoner i modellens evner. For eksempel retter én modell seg mot et 8. klasses publikum, mens en annen antar en videregående elev. Men alle tre modellene genererte svar som kunne overbevise en uinformert bruker om at hendelsen var ekte. - -Prompt engineering-teknikker som _metaprompting_ og _temperature configuration_ kan redusere modellens fabrikasjoner til en viss grad. Nye prompt engineering-_arkitekturer_ integrerer også sømløst nye verktøy og teknikker i promptflyten for å dempe eller redusere noen av disse effektene. - -## Case Study: GitHub Copilot - -La oss avslutte denne delen med å få en forståelse av hvordan prompt engineering brukes i virkelige løsninger ved å se på en Case Study: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot er din "AI Pair Programmer" – den omdanner tekstprompter til kodefullføringer og er integrert i utviklingsmiljøet ditt (f.eks. Visual Studio Code) for en sømløs brukeropplevelse. Som dokumentert i bloggserien nedenfor, var den tidligste versjonen basert på OpenAI Codex-modellen – med ingeniører som raskt innså behovet for å finjustere modellen og utvikle bedre prompt engineering-teknikker for å forbedre kodekvaliteten. I juli [lanserte de en forbedret AI-modell som går utover Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) for enda raskere forslag. - -Les innleggene i rekkefølge for å følge deres læringsreise. - -- **Mai 2023** | [GitHub Copilot blir bedre til å forstå koden din](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **Mai 2023** | [Innsiden av GitHub: Arbeid med LLM-ene bak GitHub Copilot](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Juni 2023** | [Hvordan skrive bedre prompter for GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Juli 2023** | [.. GitHub Copilot går utover Codex med forbedret AI-modell](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Juli 2023** | [En utviklers guide til prompt engineering og LLM-er](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **Sep 2023** | [Hvordan bygge en enterprise LLM-app: Lærdom fra GitHub Copilot](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -Du kan også bla gjennom deres [Engineering-blogg](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) for flere innlegg som [dette](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) som viser hvordan disse modellene og teknikkene _brukes_ til å drive virkelige applikasjoner. - ---- - - - -## Promptkonstruksjon - -Vi har sett hvorfor prompt engineering er viktig – nå skal vi forstå hvordan prompter _konstrueres_ slik at vi kan evaluere ulike teknikker for mer effektiv promptdesign. - -### Enkel prompt - -La oss starte med den enkle prompten: en tekstinput sendt til modellen uten annen kontekst. Her er et eksempel – når vi sender de første ordene i USAs nasjonalsang til OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst), fullfører den umiddelbart svaret med de neste linjene, noe som illustrerer grunnleggende prediksjonsatferd. - -| Prompt (Input) | Completion (Output) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | Det høres ut som du begynner på teksten til "The Star-Spangled Banner," USAs nasjonalsang. Hele teksten er ... | - -### Kompleks prompt - -Nå legger vi til kontekst og instruksjoner til den enkle prompten. [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) lar oss bygge en kompleks prompt som en samling av _meldinger_ med: - -- Input/output-par som reflekterer _bruker_-input og _assistent_-respons. -- Systemmelding som setter konteksten for assistentens oppførsel eller personlighet. - -Forespørselen er nå i formen nedenfor, hvor _tokenisering_ effektivt fanger relevant informasjon fra kontekst og samtale. Å endre systemkonteksten kan ha like stor innvirkning på kvaliteten på fullføringene som brukerinputtene som gis. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Instruksjonsprompt - -I eksemplene over var brukerprompten en enkel tekstforespørsel som kan tolkes som en informasjonsforespørsel. Med _instruksjonsprompter_ kan vi bruke teksten til å spesifisere en oppgave mer detaljert, og gi AI bedre veiledning. Her er et eksempel: - -| Prompt (Input) | Completion (Output) | Instruksjonstype | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Write a description of the Civil War | _returnerte et enkelt avsnitt_ | Enkel | -| Write a description of the Civil War. Provide key dates and events and describe their significance | _returnerte et avsnitt etterfulgt av en liste med viktige datoer og beskrivelser_ | Kompleks | -| Write a description of the Civil War in 1 paragraph. Provide 3 bullet points with key dates and their significance. Provide 3 more bullet points with key historical figures and their contributions. Return the output as a JSON file | _returnerer mer omfattende detaljer i en tekstboks, formatert som JSON som du kan kopiere og lime inn i en fil og validere_ | Kompleks. Formatert.| - -## Primært innhold - -I eksemplene over var prompten fortsatt ganske åpen, noe som lot LLM bestemme hvilken del av det forhåndstrente datasettet som var relevant. Med designmønsteret _primært innhold_ deles inputteksten i to deler: - -- en instruksjon (handling) -- relevant innhold (som påvirker handlingen) - -Her er et eksempel der instruksjonen er å "oppsummere dette i 2 setninger". - -| Prompt (Input) | Completion (Output) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter er den femte planeten fra solen og den største i solsystemet. Den er en gasskjempe med en masse som er en tusendel av solens, men to og en halv ganger massen til alle de andre planetene i solsystemet til sammen. Jupiter er et av de lyseste objektene synlige for det blotte øye på nattehimmelen, og har vært kjent for gamle sivilisasjoner siden før historisk tid. Den er oppkalt etter den romerske guden Jupiter.[19] Når man ser på Jupiter fra jorden, kan den være så lyssterk at det reflekterte lyset kaster synlige skygger,[20] og er i gjennomsnitt det tredje lyseste naturlige objektet på nattehimmelen etter månen og Venus.
**Oppsummer dette i 2 korte setninger** | Jupiter, den femte planeten fra solen, er den største i solsystemet og kjent for å være et av de lyseste objektene på nattehimmelen. Oppkalt etter den romerske guden Jupiter, er det en gasskjempe med en masse som er to og en halv ganger massen til alle de andre planetene i solsystemet til sammen. | - -Segmentet med primært innhold kan brukes på ulike måter for å gi mer effektive instruksjoner: - -- **Eksempler** – i stedet for å fortelle modellen hva den skal gjøre med en eksplisitt instruksjon, gi den eksempler på hva den skal gjøre og la den slutte seg til mønsteret. -- **Ledetråder** – følg instruksjonen med en "ledetråd" som forbereder fullføringen og guider modellen mot mer relevante svar. -- **Malverk** – dette er repeterbare 'oppskrifter' for prompter med plassholdere (variabler) som kan tilpasses med data for spesifikke bruksområder. - -La oss utforske disse i praksis. - -### Bruke eksempler - -Dette er en tilnærming der du bruker det primære innholdet til å "mate modellen" med noen eksempler på ønsket output for en gitt instruksjon, og lar den slutte seg til mønsteret for ønsket output. Basert på antall eksempler kan vi ha zero-shot prompting, one-shot prompting, few-shot prompting osv. - -Prompten består nå av tre komponenter: - -- En oppgavebeskrivelse -- Noen eksempler på ønsket output -- Begynnelsen på et nytt eksempel (som blir en implisitt oppgavebeskrivelse) - -| Læringstype | Prompt (Input) | Completion (Output) | -| :----------- | :--------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| Zero-shot | "The Sun is Shining". Oversett til spansk | "El Sol está brillando". | -| One-shot | "The Sun is Shining" => "El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| Few-shot | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketball | -| | | | - -Legg merke til at vi måtte gi eksplisitt instruksjon ("Oversett til spansk") i zero-shot prompting, men det blir underforstått i one-shot eksemplet. Few-shot-eksemplet viser hvordan flere eksempler gjør at modeller kan gjøre mer presise slutninger uten ekstra instruksjoner. - -### Prompt-ledetråder - -En annen teknikk for å bruke primært innhold er å gi _ledetråder_ i stedet for eksempler. I dette tilfellet gir vi modellen et dytt i riktig retning ved å _starte den_ med et utdrag som reflekterer ønsket svarformat. Modellen "tar ledetråden" og fortsetter i samme stil. - -| Antall ledetråder | Prompt (Input) | Completion (Output) | -| :---------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Jupiter er den femte planeten fra solen og den største i solsystemet. Den er en gasskjempe med en masse som er en tusendel av solens, men to og en halv ganger massen til alle de andre planetene i solsystemet til sammen. Jupiter er et av de lyseste objektene synlige for det blotte øye på nattehimmelen, og har vært kjent for gamle sivilisasjoner siden før historisk tid. | - -**Oppsummer Dette** | Jupiter er den største planeten i vårt solsystem og den femte fra solen. Den er en gasskjempe med en masse som er 1/1000 av solens, men den er tyngre enn alle de andre planetene til sammen. Gamle sivilisasjoner har kjent til Jupiter lenge, og den er lett synlig på nattehimmelen. | -| 1 | Jupiter er den femte planeten fra solen og den største i solsystemet. Den er en gasskjempe med en masse som er en tusendel av solens, men to og en halv ganger så stor som alle de andre planetene i solsystemet til sammen. Jupiter er et av de lyseste objektene som er synlige for det blotte øye på nattehimmelen, og har vært kjent for gamle sivilisasjoner siden før historisk tid.
**Oppsummer Dette**
Det vi lærte er at Jupiter | er den femte planeten fra solen og den største i solsystemet. Den er en gasskjempe med en masse som er en tusendel av solens, men to og en halv ganger så stor som alle de andre planetene til sammen. Den er lett synlig for det blotte øye og har vært kjent siden oldtiden. | -| 2 | Jupiter er den femte planeten fra solen og den største i solsystemet. Den er en gasskjempe med en masse som er en tusendel av solens, men to og en halv ganger så stor som alle de andre planetene i solsystemet til sammen. Jupiter er et av de lyseste objektene som er synlige for det blotte øye på nattehimmelen, og har vært kjent for gamle sivilisasjoner siden før historisk tid.
**Oppsummer Dette**
Topp 3 fakta vi lærte: | 1. Jupiter er den femte planeten fra solen og den største i solsystemet.
2. Den er en gasskjempe med en masse som er en tusendel av solens...
3. Jupiter har vært synlig for det blotte øye siden oldtiden ... | -| | | | - -### Maler for Prompt - -En prompt-mal er en _forhåndsdefinert oppskrift for en prompt_ som kan lagres og gjenbrukes etter behov, for å skape mer konsistente brukeropplevelser i stor skala. I sin enkleste form er det rett og slett en samling av prompt-eksempler som [dette fra OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) som gir både de interaktive prompt-komponentene (bruker- og systemmeldinger) og API-drevne forespørselsformatet – for å støtte gjenbruk. - -I en mer kompleks form som [dette eksempelet fra LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst) inneholder den _plassholdere_ som kan erstattes med data fra ulike kilder (brukerinput, systemkontekst, eksterne datakilder osv.) for å generere en prompt dynamisk. Dette gjør at vi kan lage et bibliotek av gjenbrukbare prompts som kan brukes til å skape konsistente brukeropplevelser **programmatisk** i stor skala. - -Til slutt ligger den virkelige verdien i maler i muligheten til å lage og publisere _prompt-biblioteker_ for vertikale applikasjonsdomener – hvor prompt-malen nå er _optimalisert_ for å reflektere applikasjonsspesifikk kontekst eller eksempler som gjør svarene mer relevante og presise for den målrettede brukergruppen. [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) er et godt eksempel på denne tilnærmingen, med et bibliotek av prompts for utdanningssektoren med fokus på viktige mål som leksjonsplanlegging, læreplanutforming, studentveiledning osv. - -## Støttende Innhold - -Hvis vi ser på prompt-konstruksjon som å ha en instruksjon (oppgave) og et mål (primært innhold), så er _sekundært innhold_ som ekstra kontekst vi gir for å **påvirke resultatet på en eller annen måte**. Det kan være justeringsparametere, formateringsinstruksjoner, emnetaksonomier osv. som hjelper modellen med å _skreddersy_ svaret slik at det passer de ønskede brukerbehovene eller forventningene. - -For eksempel: Gitt en kurskatalog med omfattende metadata (navn, beskrivelse, nivå, metadata-tagger, instruktør osv.) for alle tilgjengelige kurs i læreplanen: - -- kan vi definere en instruksjon om å "oppsummere kurskatalogen for høsten 2023" -- vi kan bruke det primære innholdet til å gi noen eksempler på ønsket resultat -- vi kan bruke det sekundære innholdet til å identifisere de 5 viktigste "taggene" av interesse. - -Nå kan modellen gi en oppsummering i formatet vist av de få eksemplene – men hvis et resultat har flere tagger, kan den prioritere de 5 taggene som er identifisert i det sekundære innholdet. - ---- - - - -## Beste praksis for prompting - -Nå som vi vet hvordan prompts kan _konstrueres_, kan vi begynne å tenke på hvordan vi kan _designe_ dem for å følge beste praksis. Vi kan dele det i to deler – å ha riktig _tankesett_ og å bruke riktige _teknikker_. - -### Tankesett for Prompt Engineering - -Prompt Engineering er en prøving-og-feiling-prosess, så husk disse tre brede retningslinjene: - -1. **Domeneinnsikt er viktig.** Svarenes nøyaktighet og relevans avhenger av _domenet_ der applikasjonen eller brukeren opererer. Bruk din intuisjon og domeneekspertise for å **tilpasse teknikker** videre. For eksempel, definer _domene-spesifikke personligheter_ i systemprompter, eller bruk _domene-spesifikke maler_ i brukerprompter. Gi sekundært innhold som reflekterer domene-spesifikke kontekster, eller bruk _domene-spesifikke hint og eksempler_ for å styre modellen mot kjente bruksområder. - -2. **Modellforståelse er viktig.** Vi vet at modeller er stokastiske av natur. Men modellimplementasjoner kan også variere med hensyn til treningsdatasettet de bruker (forhåndstrent kunnskap), hvilke funksjoner de tilbyr (f.eks. via API eller SDK) og typen innhold de er optimalisert for (f.eks. kode vs. bilder vs. tekst). Forstå styrker og begrensninger ved modellen du bruker, og bruk den kunnskapen til å _prioritere oppgaver_ eller bygge _tilpassede maler_ som er optimalisert for modellens evner. - -3. **Iterasjon og validering er viktig.** Modeller utvikler seg raskt, og det gjør også teknikkene for prompt engineering. Som domeneekspert kan du ha annen kontekst eller kriterier for _din_ spesifikke applikasjon, som kanskje ikke gjelder for det bredere fellesskapet. Bruk verktøy og teknikker for prompt engineering for å "komme i gang" med prompt-konstruksjon, deretter iterer og valider resultatene med din egen intuisjon og domeneekspertise. Dokumenter innsiktene dine og lag en **kunnskapsbase** (f.eks. prompt-biblioteker) som kan brukes som ny referanse for andre, for raskere iterasjoner i fremtiden. - -## Beste praksis - -La oss nå se på vanlige beste praksiser som anbefales av [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) og [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst) eksperter. - -| Hva | Hvorfor | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Evaluer de nyeste modellene. | Nye modellgenerasjoner har sannsynligvis forbedrede funksjoner og kvalitet – men kan også medføre høyere kostnader. Evaluer dem for effekt, og ta deretter beslutninger om migrering. | -| Skill instruksjoner og kontekst | Sjekk om modellen/leverandøren din definerer _avgrensere_ for å tydelig skille instruksjoner, primært og sekundært innhold. Dette kan hjelpe modeller med å tildele vekter mer nøyaktig til tokens. | -| Vær spesifikk og tydelig | Gi flere detaljer om ønsket kontekst, resultat, lengde, format, stil osv. Dette forbedrer både kvalitet og konsistens i svarene. Lag oppskrifter i gjenbrukbare maler. | -| Vær beskrivende, bruk eksempler | Modeller kan svare bedre på en "vis og fortell"-tilnærming. Start med en `zero-shot`-tilnærming der du gir en instruksjon (men ingen eksempler), og prøv deretter `few-shot` som en forbedring, med noen eksempler på ønsket resultat. Bruk analogier. | -| Bruk hint for å starte fullføringer | Gi modellen noen ledende ord eller fraser den kan bruke som utgangspunkt for svaret, for å styre mot ønsket resultat. | -| Gjenta om nødvendig | Noen ganger må du gjenta deg for modellen. Gi instruksjoner før og etter det primære innholdet, bruk en instruksjon og et hint, osv. Iterer og valider for å se hva som fungerer. | -| Rekkefølge betyr noe | Rekkefølgen du presenterer informasjon for modellen kan påvirke resultatet, også i læringseksempler, på grunn av nyere bias. Prøv ulike alternativer for å finne det som fungerer best. | -| Gi modellen en “utvei” | Gi modellen et _tilbakefalls_-svar den kan bruke hvis den ikke kan fullføre oppgaven av en eller annen grunn. Dette kan redusere sjansen for at modellen genererer feilaktige eller fabrikerte svar. | -| | | - -Som med all beste praksis, husk at _dine erfaringer kan variere_ basert på modell, oppgave og domene. Bruk disse som et utgangspunkt, og iterer for å finne det som fungerer best for deg. Evaluer kontinuerlig prompt engineering-prosessen din etter hvert som nye modeller og verktøy blir tilgjengelige, med fokus på skalerbarhet og svar-kvalitet. - - - -## Oppgave - -Gratulerer! Du har kommet til slutten av leksjonen! Nå er det på tide å teste noen av de konseptene og teknikkene med ekte eksempler! - -For oppgaven bruker vi en Jupyter Notebook med øvelser du kan gjøre interaktivt. Du kan også utvide Notebooken med dine egne Markdown- og kodeceller for å utforske ideer og teknikker på egen hånd. - -### For å komme i gang, fork repoet, deretter - -- (Anbefalt) Start GitHub Codespaces -- (Alternativt) Klon repoet til din lokale maskin og bruk det med Docker Desktop -- (Alternativt) Åpne Notebooken i ditt foretrukne Notebook-miljø. - -### Deretter, konfigurer miljøvariablene dine - -- Kopier `.env.copy`-filen i repoets rot til `.env` og fyll inn verdiene for `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` og `AZURE_OPENAI_DEPLOYMENT`. Gå tilbake til [Learning Sandbox-seksjonen](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) for å lære hvordan. - -### Så, åpne Jupyter Notebook - -- Velg runtime-kjernen. Hvis du bruker alternativ 1 eller 2, velg bare standard Python 3.10.x-kjerne som tilbys av utviklingscontaineren. - -Du er klar til å kjøre øvelsene. Merk at det ikke finnes _riktige eller gale_ svar her – bare utforske muligheter gjennom prøving og feiling og bygge intuisjon for hva som fungerer for en gitt modell og applikasjonsdomene. - -_For denne grunn finnes det ingen kode-løsningssegmenter i denne leksjonen. I stedet vil Notebooken ha Markdown-celler med tittelen "Min løsning:" som viser ett eksempel på resultat til referanse._ - - - -## Kunnskapssjekk - -Hvilken av følgende er en god prompt som følger noen rimelige beste praksiser? - -1. Vis meg et bilde av en rød bil -2. Vis meg et bilde av en rød bil av merke Volvo og modell XC90 parkert ved en klippe med solnedgang -3. Vis meg et bilde av en rød bil av merke Volvo og modell XC90 - -Svar: 2, det er den beste prompten fordi den gir detaljer om "hva" og går i spesifikasjoner (ikke bare en hvilken som helst bil, men et spesifikt merke og modell) og beskriver også omgivelsene. 3 er nest best fordi den også inneholder mye beskrivelse. - -## 🚀 Utfordring - -Se om du kan bruke "hint"-teknikken med prompten: Fullfør setningen "Vis meg et bilde av en rød bil av merke Volvo og ". Hva svarer den, og hvordan ville du forbedre det? - -## Flott jobba! Fortsett læringen din - -Vil du lære mer om ulike konsepter innen Prompt Engineering? Gå til [siden for videre læring](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) for å finne flere gode ressurser om dette temaet. - -Gå videre til leksjon 5 hvor vi ser på [avanserte prompting-teknikker](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**Ansvarsfraskrivelse**: -Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selv om vi streber etter nøyaktighet, vennligst vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det opprinnelige dokumentet på originalspråket skal anses som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen. \ No newline at end of file + + + + + + + diff --git a/translations/no/09-building-image-applications/README.md b/translations/no/09-building-image-applications/README.md index 8bc5712e1..7de2a1c29 100644 --- a/translations/no/09-building-image-applications/README.md +++ b/translations/no/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# Bygge applikasjoner for bilde-generering - -[![Bygge applikasjoner for bilde-generering](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.no.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLMer handler ikke bare om tekstgenerering. Det er også mulig å generere bilder ut fra tekstbeskrivelser. Å ha bilder som en modalitet kan være svært nyttig innen en rekke områder som MedTech, arkitektur, turisme, spillutvikling og mer. I dette kapitlet skal vi se nærmere på de to mest populære modellene for bilde-generering, DALL-E og Midjourney. - -## Introduksjon - -I denne leksjonen skal vi dekke: - -- Bildegenerering og hvorfor det er nyttig. -- DALL-E og Midjourney, hva de er og hvordan de fungerer. -- Hvordan du kan bygge en applikasjon for bilde-generering. - -## Læringsmål - -Etter å ha fullført denne leksjonen vil du kunne: - -- Bygge en applikasjon for bilde-generering. -- Definere rammer for applikasjonen din med metaprompter. -- Jobbe med DALL-E og Midjourney. - -## Hvorfor bygge en applikasjon for bilde-generering? - -Applikasjoner for bilde-generering er en flott måte å utforske mulighetene med Generativ AI på. De kan brukes til for eksempel: - -- **Bildebehandling og syntese**. Du kan generere bilder for ulike bruksområder, som bildebehandling og bildesyntese. - -- **Anvendt i flere bransjer**. De kan også brukes til å generere bilder for ulike bransjer som Medtech, turisme, spillutvikling og mer. - -## Scenario: Edu4All - -Som en del av denne leksjonen skal vi fortsette å jobbe med vår oppstartsbedrift, Edu4All. Studentene skal lage bilder til sine vurderinger, og hvilke bilder det blir, bestemmer studentene selv. Det kan for eksempel være illustrasjoner til deres egen eventyrfortelling, lage en ny karakter til historien sin, eller hjelpe dem med å visualisere ideer og konsepter. - -Her er et eksempel på hva studentene i Edu4All kan generere hvis de jobber med monumenter i klassen: - -![Edu4All startup, class on monuments, Eiffel Tower](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.no.png) - -med en prompt som - -> "Hund ved siden av Eiffeltårnet i tidlig morgensol" - -## Hva er DALL-E og Midjourney? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) og [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) er to av de mest populære modellene for bilde-generering, og de lar deg bruke prompter for å generere bilder. - -### DALL-E - -La oss starte med DALL-E, som er en Generativ AI-modell som genererer bilder ut fra tekstbeskrivelser. - -> [DALL-E er en kombinasjon av to modeller, CLIP og diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP** er en modell som genererer embeddings, altså numeriske representasjoner av data, fra bilder og tekst. - -- **Diffused attention** er en modell som genererer bilder fra embeddings. DALL-E er trent på et datasett med bilder og tekst, og kan brukes til å generere bilder ut fra tekstbeskrivelser. For eksempel kan DALL-E generere bilder av en katt med hatt, eller en hund med mohawk. - -### Midjourney - -Midjourney fungerer på en lignende måte som DALL-E, den genererer bilder ut fra tekstprompter. Midjourney kan også brukes til å generere bilder med prompter som “en katt med hatt” eller “en hund med mohawk”. - -![Image generated by Midjourney, mechanical pigeon](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Bildekred Wikipedia, bilde generert av Midjourney_ - -## Hvordan fungerer DALL-E og Midjourney - -Først, [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). DALL-E er en Generativ AI-modell basert på transformer-arkitekturen med en _autoregressiv transformer_. - -En _autoregressiv transformer_ definerer hvordan en modell genererer bilder ut fra tekstbeskrivelser, den genererer én piksel om gangen, og bruker de genererte pikslene til å generere neste piksel. Dette skjer gjennom flere lag i et nevralt nettverk, helt til bildet er ferdig. - -Med denne prosessen kontrollerer DALL-E attributter, objekter, egenskaper og mer i bildet den genererer. DALL-E 2 og 3 har imidlertid enda bedre kontroll over det genererte bildet. - -## Bygge din første applikasjon for bilde-generering - -Hva kreves for å bygge en applikasjon for bilde-generering? Du trenger følgende biblioteker: - -- **python-dotenv**, det anbefales sterkt å bruke dette biblioteket for å holde hemmeligheter i en _.env_-fil adskilt fra koden. -- **openai**, dette biblioteket bruker du for å kommunisere med OpenAI API. -- **pillow**, for å jobbe med bilder i Python. -- **requests**, for å gjøre HTTP-forespørsler. - -1. Lag en fil _.env_ med følgende innhold: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Finn denne informasjonen i Azure-portalen for ressursen din under "Keys and Endpoint". - -1. Samle bibliotekene i en fil kalt _requirements.txt_ slik: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. Opprett et virtuelt miljø og installer bibliotekene: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - For Windows, bruk følgende kommandoer for å opprette og aktivere det virtuelle miljøet: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. Legg til følgende kode i en fil kalt _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -La oss forklare denne koden: - -- Først importerer vi bibliotekene vi trenger, inkludert OpenAI-biblioteket, dotenv, requests og Pillow. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Deretter laster vi miljøvariablene fra _.env_-filen. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- Så setter vi endepunkt, nøkkel for OpenAI API, versjon og type. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- Deretter genererer vi bildet: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - Koden over svarer med et JSON-objekt som inneholder URL-en til det genererte bildet. Vi kan bruke URL-en til å laste ned bildet og lagre det i en fil. - -- Til slutt åpner vi bildet og bruker standard bildeviser for å vise det: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Mer om bilde-genereringen - -La oss se nærmere på koden som genererer bildet: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** er tekstprompten som brukes for å generere bildet. Her bruker vi prompten "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils". -- **size** er størrelsen på bildet som genereres. Her lager vi et bilde på 1024x1024 piksler. -- **n** er antall bilder som genereres. Her lager vi to bilder. -- **temperature** er en parameter som styrer hvor tilfeldig utdataene fra en Generativ AI-modell er. Temperaturen er en verdi mellom 0 og 1, der 0 betyr at utdataene er deterministiske, og 1 betyr at utdataene er tilfeldige. Standardverdien er 0,7. - -Det finnes flere ting du kan gjøre med bilder, som vi skal dekke i neste seksjon. - -## Flere muligheter med bilde-generering - -Så langt har du sett hvordan vi kan generere et bilde med noen få linjer Python-kode. Men det finnes flere muligheter med bilder. - -Du kan også gjøre følgende: - -- **Utføre redigeringer**. Ved å gi et eksisterende bilde, en maske og en prompt, kan du endre et bilde. For eksempel kan du legge til noe i en del av et bilde. Tenk deg vårt bilde av kaninen, du kan legge til en hatt på kaninen. Hvordan du gjør det er ved å gi bildet, en maske (som identifiserer området som skal endres) og en tekstprompt som sier hva som skal gjøres. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - Grunnbildet vil bare inneholde kaninen, men det endelige bildet vil ha hatten på kaninen. - -- **Lage variasjoner**. Ideen er at du tar et eksisterende bilde og ber om at det lages variasjoner. For å lage en variasjon gir du et bilde og en tekstprompt, og kode som dette: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Merk at dette kun støttes av OpenAI - -## Temperatur - -Temperatur er en parameter som styrer hvor tilfeldig utdataene fra en Generativ AI-modell er. Temperaturen er en verdi mellom 0 og 1, der 0 betyr at utdataene er deterministiske, og 1 betyr at utdataene er tilfeldige. Standardverdien er 0,7. - -La oss se på et eksempel på hvordan temperatur fungerer, ved å kjøre denne prompten to ganger: - -> Prompt: "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils" - -![Bunny on a horse holding a lollipop, version 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.no.png) - -Nå kjører vi samme prompt igjen for å se at vi ikke får samme bilde to ganger: - -![Generated image of bunny on horse](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.no.png) - -Som du ser, er bildene like, men ikke identiske. La oss prøve å endre temperaturverdien til 0,1 og se hva som skjer: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Endre temperaturen - -La oss prøve å gjøre responsen mer deterministisk. Vi kan se fra de to bildene vi genererte at i det første bildet er det en kanin, og i det andre bildet er det en hest, så bildene varierer mye. - -La oss derfor endre koden vår og sette temperaturen til 0, slik: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Når du kjører denne koden nå, får du disse to bildene: - -- ![Temperatur 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.no.png) -- ![Temperatur 0, v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.no.png) - -Her ser du tydelig at bildene ligner mer på hverandre. - -## Hvordan definere rammer for applikasjonen din med metaprompter - -Med demoen vår kan vi allerede generere bilder for kundene våre. Men vi må lage noen rammer for applikasjonen. - -For eksempel ønsker vi ikke å generere bilder som ikke er egnet for arbeidsplassen, eller som ikke passer for barn. - -Dette kan vi gjøre med _metaprompter_. Metaprompter er tekstprompter som brukes for å kontrollere utdataene fra en Generativ AI-modell. For eksempel kan vi bruke metaprompter for å sikre at de genererte bildene er trygge for arbeidsplassen, eller passende for barn. - -### Hvordan fungerer det? - -Hvordan fungerer metaprompter? - -Metaprompter er tekstprompter som brukes for å kontrollere utdataene fra en Generativ AI-modell. De plasseres foran tekstprompten, og brukes for å styre modellens utdata. De legges inn i applikasjoner for å kontrollere modellens utdata, ved å kapsle inn prompt-input og metaprompt-input i en enkelt tekstprompt. - -Et eksempel på en metaprompt kan være følgende: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -La oss nå se hvordan vi kan bruke metaprompter i demoen vår. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -Fra prompten over kan du se hvordan alle bildene som genereres tar hensyn til metaprompten. - -## Oppgave – la oss gi studentene mulighet - -Vi introduserte Edu4All i starten av denne leksjonen. Nå er det på tide å gi studentene mulighet til å generere bilder til sine vurderinger. - -Studentene skal lage bilder til vurderingene sine med monumenter, og hvilke monumenter det blir, bestemmer studentene selv. Studentene oppfordres til å bruke kreativiteten sin i denne oppgaven for å plassere monumentene i ulike kontekster. - -## Løsning - -Her er en mulig løsning: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Flott jobba! Fortsett læringen din - -Etter å ha fullført denne leksjonen, sjekk ut vår [Generative AI Learning collection](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) for å fortsette å utvikle kunnskapen din om Generativ AI! - -Gå videre til leksjon 10 hvor vi ser på hvordan man kan [bygge AI-applikasjoner med low-code](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**Ansvarsfraskrivelse**: -Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selv om vi streber etter nøyaktighet, vennligst vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det opprinnelige dokumentet på originalspråket skal anses som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen. \ No newline at end of file + + + + diff --git a/translations/no/12-designing-ux-for-ai-applications/README.md b/translations/no/12-designing-ux-for-ai-applications/README.md index 4b6f370d5..a4a613434 100644 --- a/translations/no/12-designing-ux-for-ai-applications/README.md +++ b/translations/no/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# Utforming av UX for AI-applikasjoner - -[![Utforming av UX for AI-applikasjoner](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.no.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Klikk på bildet over for å se video av denne leksjonen)_ - -Brukeropplevelse er en svært viktig del av å bygge apper. Brukere må kunne bruke appen din på en effektiv måte for å utføre oppgaver. Å være effektivt er én ting, men du må også designe apper slik at de kan brukes av alle, for å gjøre dem _tilgjengelige_. Dette kapitlet vil fokusere på dette området, slik at du forhåpentligvis ender opp med å designe en app som folk kan og vil bruke. - -## Introduksjon - -Brukeropplevelse handler om hvordan en bruker samhandler med og bruker et spesifikt produkt eller en tjeneste, enten det er et system, verktøy eller design. Når man utvikler AI-applikasjoner, fokuserer utviklere ikke bare på å sikre at brukeropplevelsen er effektiv, men også etisk. I denne leksjonen dekker vi hvordan man bygger kunstig intelligens (AI)-applikasjoner som møter brukerens behov. - -Leksjonen vil dekke følgende områder: - -- Introduksjon til brukeropplevelse og forståelse av brukerbehov -- Utforming av AI-applikasjoner for tillit og åpenhet -- Utforming av AI-applikasjoner for samarbeid og tilbakemelding - -## Læringsmål - -Etter å ha tatt denne leksjonen vil du kunne: - -- Forstå hvordan du bygger AI-applikasjoner som møter brukerens behov. -- Designe AI-applikasjoner som fremmer tillit og samarbeid. - -### Forutsetninger - -Ta deg tid til å lese mer om [brukeropplevelse og design thinking.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Introduksjon til brukeropplevelse og forståelse av brukerbehov - -I vår fiktive utdanningsstartup har vi to hovedbrukere, lærere og elever. Hver av disse brukerne har unike behov. Et brukerorientert design setter brukeren i sentrum og sikrer at produktene er relevante og nyttige for dem de er ment for. - -Applikasjonen bør være **nyttig, pålitelig, tilgjengelig og behagelig** for å gi en god brukeropplevelse. - -### Brukervennlighet - -Å være nyttig betyr at applikasjonen har funksjonalitet som samsvarer med dens tiltenkte formål, som for eksempel å automatisere vurderingsprosessen eller generere flashcards for repetisjon. En applikasjon som automatiserer vurderingsprosessen bør kunne tildele poeng til elevenes arbeid nøyaktig og effektivt basert på forhåndsdefinerte kriterier. På samme måte bør en applikasjon som genererer flashcards for repetisjon kunne lage relevante og varierte spørsmål basert på sine data. - -### Pålitelighet - -Å være pålitelig betyr at applikasjonen kan utføre oppgaven sin konsekvent og uten feil. Men AI, akkurat som mennesker, er ikke perfekt og kan gjøre feil. Applikasjonene kan støte på feil eller uventede situasjoner som krever menneskelig inngripen eller korrigering. Hvordan håndterer du feil? I siste del av denne leksjonen vil vi dekke hvordan AI-systemer og applikasjoner er designet for samarbeid og tilbakemelding. - -### Tilgjengelighet - -Å være tilgjengelig betyr å utvide brukeropplevelsen til brukere med ulike evner, inkludert de med funksjonsnedsettelser, slik at ingen blir ekskludert. Ved å følge retningslinjer og prinsipper for tilgjengelighet blir AI-løsninger mer inkluderende, brukbare og nyttige for alle brukere. - -### Behagelig - -Å være behagelig betyr at applikasjonen er hyggelig å bruke. En tiltalende brukeropplevelse kan ha en positiv effekt på brukeren, oppmuntre dem til å komme tilbake til applikasjonen og øke forretningsinntektene. - -![bilde som illustrerer UX-hensyn i AI](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.no.png) - -Ikke alle utfordringer kan løses med AI. AI kommer inn for å forbedre brukeropplevelsen, enten det er å automatisere manuelle oppgaver eller personalisere brukeropplevelser. - -## Utforming av AI-applikasjoner for tillit og åpenhet - -Å bygge tillit er avgjørende når man designer AI-applikasjoner. Tillit sikrer at en bruker er trygg på at applikasjonen vil utføre oppgaven, levere resultater konsekvent, og at resultatene er det brukeren trenger. En risiko i dette området er mistillit og overtrøst. Mistillit oppstår når en bruker har liten eller ingen tillit til et AI-system, noe som fører til at brukeren avviser applikasjonen din. Overtrøst oppstår når en bruker overvurderer kapasiteten til et AI-system, noe som fører til at brukeren stoler for mye på AI-systemet. For eksempel kan et automatisert vurderingssystem ved overtrøst føre til at læreren ikke korrekturleser noen av oppgavene for å sikre at vurderingssystemet fungerer godt. Dette kan resultere i urettferdige eller unøyaktige karakterer for elevene, eller tapte muligheter for tilbakemelding og forbedring. - -To måter å sikre at tillit settes i sentrum av designet er forklarbarhet og kontroll. - -### Forklarbarhet - -Når AI hjelper til med å informere beslutninger, som å formidle kunnskap til fremtidige generasjoner, er det avgjørende at lærere og foreldre forstår hvordan AI-beslutninger tas. Dette er forklarbarhet – å forstå hvordan AI-applikasjoner tar beslutninger. Å designe for forklarbarhet inkluderer å legge til detaljer og eksempler på hva en AI-applikasjon kan gjøre. For eksempel, i stedet for "Kom i gang med AI-lærer", kan systemet bruke: "Oppsummer notatene dine for enklere repetisjon med AI." - -![en app-innsiden med tydelig illustrasjon av forklarbarhet i AI-applikasjoner](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.no.png) - -Et annet eksempel er hvordan AI bruker bruker- og persondata. For eksempel kan en bruker med personaen student ha begrensninger basert på sin persona. AI-en kan ikke avsløre svar på spørsmål, men kan hjelpe brukeren med å tenke gjennom hvordan de kan løse et problem. - -![AI som svarer på spørsmål basert på persona](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.no.png) - -En siste viktig del av forklarbarhet er forenkling av forklaringer. Elever og lærere er kanskje ikke AI-eksperter, derfor bør forklaringer på hva applikasjonen kan eller ikke kan gjøre være forenklet og lett å forstå. - -![forenklede forklaringer på AI-kapasiteter](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.no.png) - -### Kontroll - -Generativ AI skaper et samarbeid mellom AI og brukeren, hvor for eksempel en bruker kan endre prompt for ulike resultater. I tillegg, når et resultat er generert, bør brukere kunne endre resultatene, noe som gir dem en følelse av kontroll. For eksempel, når du bruker Bing, kan du tilpasse prompten basert på format, tone og lengde. I tillegg kan du legge til endringer i resultatet og modifisere det som vist nedenfor: - -![Bing søkeresultater med muligheter for å endre prompt og resultat](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.no.png) - -En annen funksjon i Bing som gir brukeren kontroll over applikasjonen, er muligheten til å velge å delta eller ikke delta i data som AI bruker. For en skoleapplikasjon kan en elev ønske å bruke sine egne notater samt lærernes ressurser som repetisjonsmateriale. - -![Bing søkeresultater med muligheter for å endre prompt og resultat](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.no.png) - -> Når du designer AI-applikasjoner, er intensjonalitet nøkkelen for å sikre at brukere ikke overtror systemet og setter urealistiske forventninger til dets evner. En måte å gjøre dette på er å skape friksjon mellom promptene og resultatene. Minn brukeren på at dette er AI og ikke et medmenneske. - -## Utforming av AI-applikasjoner for samarbeid og tilbakemelding - -Som nevnt tidligere, skaper generativ AI et samarbeid mellom bruker og AI. De fleste interaksjoner består av at en bruker skriver inn en prompt og AI genererer et resultat. Hva om resultatet er feil? Hvordan håndterer applikasjonen feil hvis de oppstår? Skylder AI på brukeren eller tar seg tid til å forklare feilen? - -AI-applikasjoner bør bygges for å motta og gi tilbakemelding. Dette hjelper ikke bare AI-systemet å forbedre seg, men bygger også tillit hos brukerne. En tilbakemeldingssløyfe bør inkluderes i designet, et eksempel kan være en enkel tommel opp eller ned på resultatet. - -En annen måte å håndtere dette på er å tydelig kommunisere systemets evner og begrensninger. Når en bruker gjør en feil ved å be om noe som går utover AI-ens kapasitet, bør det også finnes en måte å håndtere dette på, som vist nedenfor. - -![Gi tilbakemelding og håndtere feil](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.no.png) - -Systemfeil er vanlige i applikasjoner hvor brukeren kan trenge hjelp med informasjon utenfor AI-ens omfang, eller applikasjonen kan ha en grense for hvor mange spørsmål/emner en bruker kan generere sammendrag for. For eksempel kan en AI-applikasjon trent på data innen begrensede fag, for eksempel historie og matematikk, ikke kunne håndtere spørsmål om geografi. For å dempe dette kan AI-systemet gi et svar som: "Beklager, produktet vårt er trent med data innen følgende fag..., jeg kan ikke svare på spørsmålet du stilte." - -AI-applikasjoner er ikke perfekte, derfor vil de gjøre feil. Når du designer applikasjonene dine, bør du sørge for å lage rom for tilbakemelding fra brukere og feilhåndtering på en enkel og lettfattelig måte. - -## Oppgave - -Ta en hvilken som helst AI-app du har bygget så langt, og vurder å implementere følgende steg i appen din: - -- **Behagelig:** Tenk på hvordan du kan gjøre appen din mer behagelig. Legger du til forklaringer overalt? Oppmuntrer du brukeren til å utforske? Hvordan formulerer du feilmeldingene dine? - -- **Brukervennlighet:** Bygger du en webapp? Sørg for at appen din kan navigeres både med mus og tastatur. - -- **Tillit og åpenhet:** Ikke stol helt på AI og resultatene den gir, vurder hvordan du kan legge til et menneske i prosessen for å verifisere resultatet. Vurder også og implementer andre måter å oppnå tillit og åpenhet på. - -- **Kontroll:** Gi brukeren kontroll over dataene de gir til applikasjonen. Implementer en måte for brukeren å velge å delta eller ikke delta i datainnsamling i AI-applikasjonen. - -## Fortsett læringen din! - -Etter å ha fullført denne leksjonen, sjekk ut vår [Generative AI Learning collection](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) for å fortsette å utvikle kunnskapen din om generativ AI! - -Gå videre til leksjon 13, hvor vi ser på hvordan man [sikrer AI-applikasjoner](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**Ansvarsfraskrivelse**: -Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selv om vi streber etter nøyaktighet, vennligst vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det opprinnelige dokumentet på originalspråket skal anses som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen. \ No newline at end of file + + + diff --git a/translations/no/README.md b/translations/no/README.md index f3b643407..13eedd13f 100644 --- a/translations/no/README.md +++ b/translations/no/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.no.png) - -### 21 leksjoner som lærer deg alt du trenger for å begynne å bygge Generative AI-applikasjoner - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Støtte for flere språk - -#### Støttes via GitHub Action (Automatisert og alltid oppdatert) - -[Fransk](../fr/README.md) | [Spansk](../es/README.md) | [Tysk](../de/README.md) | [Russisk](../ru/README.md) | [Arabisk](../ar/README.md) | [Persisk (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Kinesisk (forenklet)](../zh/README.md) | [Kinesisk (tradisjonell, Macau)](../mo/README.md) | [Kinesisk (tradisjonell, Hong Kong)](../hk/README.md) | [Kinesisk (tradisjonell, Taiwan)](../tw/README.md) | [Japansk](../ja/README.md) | [Koreansk](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portugisisk (Portugal)](../pt/README.md) | [Portugisisk (Brasil)](../br/README.md) | [Italiensk](../it/README.md) | [Polsk](../pl/README.md) | [Tyrkisk](../tr/README.md) | [Gresk](../el/README.md) | [Thai](../th/README.md) | [Svensk](../sv/README.md) | [Dansk](../da/README.md) | [Norsk](./README.md) | [Finsk](../fi/README.md) | [Nederlandsk](../nl/README.md) | [Hebraisk](../he/README.md) | [Vietnamesisk](../vi/README.md) | [Indonesisk](../id/README.md) | [Malayisk](../ms/README.md) | [Tagalog (Filippinsk)](../tl/README.md) | [Swahili](../sw/README.md) | [Ungarsk](../hu/README.md) | [Tsjekkisk](../cs/README.md) | [Slovakisk](../sk/README.md) | [Rumensk](../ro/README.md) | [Bulgarsk](../bg/README.md) | [Serbisk (kyrillisk)](../sr/README.md) | [Kroatisk](../hr/README.md) | [Slovensk](../sl/README.md) | [Ukrainsk](../uk/README.md) | [Burmese (Myanmar)](../my/README.md) - -# Generative AI for Beginners (Versjon 3) - Et kurs - -Lær det grunnleggende om å bygge Generative AI-applikasjoner med vårt omfattende kurs på 21 leksjoner fra Microsoft Cloud Advocates. - -## 🌱 Komme i gang - -Dette kurset består av 21 leksjoner. Hver leksjon dekker sitt eget tema, så du kan starte hvor du vil! - -Leksjonene er merket enten som "Learn"-leksjoner som forklarer et Generative AI-konsept, eller "Build"-leksjoner som forklarer et konsept og gir kodeeksempler i både **Python** og **TypeScript** når det er mulig. - -For .NET-utviklere, sjekk ut [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -Hver leksjon inkluderer også en "Keep Learning"-seksjon med ekstra læringsverktøy. - -## Hva du trenger -### For å kjøre koden i dette kurset kan du bruke enten: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **Leksjoner:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **Leksjoner:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **Leksjoner:** "oai-assignment" - -- Grunnleggende kunnskap om Python eller TypeScript er nyttig - \*For helt nybegynnere, sjekk ut disse [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) og [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) kursene -- En GitHub-konto for å [forke hele dette repoet](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) til din egen GitHub-konto - -Vi har laget en **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** leksjon for å hjelpe deg med å sette opp utviklingsmiljøet ditt. - -Ikke glem å [starte (🌟) dette repoet](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) for å finne det enklere senere. - -## 🧠 Klar til å distribuere? - -Hvis du er ute etter mer avanserte kodeeksempler, sjekk ut vår [samling av Generative AI-kodeeksempler](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) i både **Python** og **TypeScript**. - -## 🗣️ Møt andre elever, få støtte - -Bli med i vår [offisielle Azure AI Foundry Discord-server](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) for å møte og knytte kontakt med andre som tar dette kurset, og få støtte. - -Still spørsmål eller del produktfeedback i vårt [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum) på Github. - -## 🚀 Bygger du en startup? - -Registrer deg for [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) for å få **gratis OpenAI-kreditter** og opptil **$150k i Azure-kreditter for å få tilgang til OpenAI-modeller gjennom Azure OpenAI Services**. - -## 🙏 Vil du bidra? - -Har du forslag eller har funnet skrivefeil eller kodefeil? [Opprett en issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) eller [lag en pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 Hver leksjon inkluderer: - -- En kort video som introduserer temaet -- En skriftlig leksjon i README-filen -- Python- og TypeScript-kodeeksempler som støtter Azure OpenAI og OpenAI API -- Lenker til ekstra ressurser for å fortsette læringen - -## 🗃️ Leksjoner - -| # | **Lenke til leksjon** | **Beskrivelse** | **Video** | **Ekstra læring** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Hvordan sette opp utviklingsmiljøet ditt | Video kommer snart | [Lær mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introduksjon til Generative AI og LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Forstå hva Generative AI er og hvordan store språkmodeller (LLMs) fungerer | [Video](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Lær mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Utforske og sammenligne ulike LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Hvordan velge riktig modell for ditt brukstilfelle | [Video](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Lær mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Bruke Generative AI ansvarlig](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Hvordan bygge Generative AI-applikasjoner på en ansvarlig måte | [Video](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Lær mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Forstå grunnleggende prinsipper for Prompt Engineering](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Praktiske beste praksiser for Prompt Engineering | [Video](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Lær mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Lage avanserte prompts](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Hvordan bruke prompt engineering-teknikker som forbedrer resultatene av promptene | [Video](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Lær mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Bygge tekstgenereringsapplikasjoner](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Bygg:** En tekstgenereringsapp ved bruk av Azure OpenAI / OpenAI API | [Video](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Lær mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Bygge chatteapplikasjoner](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Bygg:** Metoder for effektiv bygging og integrering av chatteapplikasjoner. | [Video](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Lær mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Bygge søkeapper med vektordatabaser](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Bygg:** En søkeapplikasjon som bruker Embeddings for å søke i data. | [Video](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Lær mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Bygge bildegenereringsapplikasjoner](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Bygg:** En bildegenereringsapplikasjon | [Video](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Lær mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Bygge lavkode AI-applikasjoner](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Bygg:** En generativ AI-applikasjon ved bruk av lavkodeverktøy | [Video](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Lær mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Integrere eksterne applikasjoner med Function Calling](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Bygg:** Hva function calling er og bruksområder for applikasjoner | [Video](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Lær mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [Designe UX for AI-applikasjoner](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Lær:** Hvordan bruke UX-designprinsipper ved utvikling av generative AI-applikasjoner | [Video](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Lær mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Sikre dine generative AI-applikasjoner](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Lær:** Trusler og risikoer for AI-systemer og metoder for å sikre disse systemene. | [Video](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Lær mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [Livssyklusen for generative AI-applikasjoner](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Lær:** Verktøy og måleparametere for å håndtere LLM-livssyklusen og LLMOps | [Video](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Lær mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) og vektordatabaser](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Bygg:** En applikasjon som bruker et RAG-rammeverk for å hente embeddings fra en vektordatabaser | [Video](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Lær mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Open Source-modeller og Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Bygg:** En applikasjon som bruker open source-modeller tilgjengelig på Hugging Face | [Video](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Lær mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI-agenter](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Bygg:** En applikasjon som bruker et AI Agent-rammeverk | [Video](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Lær mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [Finjustering av LLMs](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Lær:** Hva, hvorfor og hvordan finjustering av LLMs gjøres | [Video](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Lær mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Bygge med SLMs](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Lær:** Fordelene ved å bygge med Small Language Models | Video kommer snart | [Lær mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Bygge med Mistral-modeller](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Lær:** Egenskaper og forskjeller ved Mistral-familien av modeller | Video kommer snart | [Lær mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Bygge med Meta-modeller](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Lær:** Egenskaper og forskjeller ved Meta-familien av modeller | Video kommer snart | [Lær mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Spesiell takk - -Spesiell takk til [**John Aziz**](https://www.linkedin.com/in/john0isaac/) for å ha laget alle GitHub Actions og arbeidsflyter - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) for viktige bidrag til hver leksjon for å forbedre lærings- og kodeopplevelsen. - -## 🎒 Andre kurs - -Teamet vårt produserer flere kurs! Sjekk ut: - -- [**NYTT** Model Context Protocol for Beginners](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI Agents for Beginners](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Generative AI for Beginners using .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Generative AI for Beginners using JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML for Beginners](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Data Science for Beginners](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI for Beginners](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Cybersecurity for Beginners](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Web Dev for Beginners](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT for Beginners](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR Development for Beginners](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Mastering GitHub Copilot for AI Paired Programming](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Mastering GitHub Copilot for C#/.NET Developers](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Choose Your Own Copilot Adventure](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Ansvarsfraskrivelse**: -Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selv om vi streber etter nøyaktighet, vennligst vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det opprinnelige dokumentet på originalspråket skal anses som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen. \ No newline at end of file + + + + diff --git a/translations/pa/00-course-setup/01-setup-cloud.md b/translations/pa/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..b03fa70c1 --- /dev/null +++ b/translations/pa/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/pa/00-course-setup/02-setup-local.md b/translations/pa/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..84d172b1a --- /dev/null +++ b/translations/pa/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/pa/00-course-setup/03-providers.md b/translations/pa/00-course-setup/03-providers.md new file mode 100644 index 000000000..66b061553 --- /dev/null +++ b/translations/pa/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/pa/00-course-setup/README.md b/translations/pa/00-course-setup/README.md index 4c4c7811a..d2a1e4128 100644 --- a/translations/pa/00-course-setup/README.md +++ b/translations/pa/00-course-setup/README.md @@ -1,214 +1,12 @@ - -# ਇਸ ਕੋਰਸ ਨਾਲ ਸ਼ੁਰੂਆਤ - -ਅਸੀਂ ਬਹੁਤ ਉਤਸ਼ਾਹਿਤ ਹਾਂ ਕਿ ਤੁਸੀਂ ਇਸ ਕੋਰਸ ਨੂੰ ਸ਼ੁਰੂ ਕਰੋ ਅਤੇ ਦੇਖੋ ਕਿ ਤੁਸੀਂ Generative AI ਨਾਲ ਕੀ ਬਣਾਉਣ ਲਈ ਪ੍ਰੇਰਿਤ ਹੋ! - -ਤੁਹਾਡੇ ਸਫਲਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ, ਇਹ ਪੰਨਾ ਸੈਟਅਪ ਕਦਮ, ਤਕਨੀਕੀ ਲੋੜਾਂ ਅਤੇ ਜੇ ਲੋੜ ਹੋਵੇ ਤਾਂ ਮਦਦ ਕਿੱਥੇ ਮਿਲੇਗੀ, ਇਹ ਸਾਰਾ ਵੇਰਵਾ ਦਿੰਦਾ ਹੈ। - -## ਸੈਟਅਪ ਕਦਮ - -ਇਸ ਕੋਰਸ ਨੂੰ ਲੈਣ ਲਈ, ਤੁਹਾਨੂੰ ਹੇਠਾਂ ਦਿੱਤੇ ਕਦਮ ਪੂਰੇ ਕਰਨੇ ਪੈਣਗੇ। - -### 1. ਇਸ ਰੇਪੋ ਨੂੰ Fork ਕਰੋ - -ਆਪਣੇ GitHub ਖਾਤੇ ਵਿੱਚ [ਇਸ ਪੂਰੇ ਰੇਪੋ ਨੂੰ Fork ਕਰੋ](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) ਤਾਂ ਜੋ ਤੁਸੀਂ ਕੋਈ ਵੀ ਕੋਡ ਬਦਲ ਸਕੋ ਅਤੇ ਚੈਲੈਂਜ ਪੂਰੇ ਕਰ ਸਕੋ। ਤੁਸੀਂ ਇਸ ਰੇਪੋ ਨੂੰ [ਸਟਾਰ (🌟) ਵੀ ਕਰ ਸਕਦੇ ਹੋ](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) ਤਾਂ ਜੋ ਇਸਨੂੰ ਅਤੇ ਸੰਬੰਧਿਤ ਰੇਪੋਜ਼ ਨੂੰ ਆਸਾਨੀ ਨਾਲ ਲੱਭ ਸਕੋ। - -### 2. ਇੱਕ codespace ਬਣਾਓ - -ਕੋਡ ਚਲਾਉਂਦੇ ਸਮੇਂ ਕਿਸੇ ਵੀ ਡਿਪੈਂਡੈਂਸੀ ਸਮੱਸਿਆ ਤੋਂ ਬਚਣ ਲਈ, ਅਸੀਂ ਸਿਫਾਰਸ਼ ਕਰਦੇ ਹਾਂ ਕਿ ਤੁਸੀਂ ਇਸ ਕੋਰਸ ਨੂੰ [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst) ਵਿੱਚ ਚਲਾਓ। - -ਇਹ ਤੁਹਾਡੇ Fork ਕੀਤੇ ਰੇਪੋ ਦੇ `Code` ਵਿਕਲਪ ਨੂੰ ਚੁਣ ਕੇ ਅਤੇ ਫਿਰ **Codespaces** ਵਿਕਲਪ ਨੂੰ ਚੁਣ ਕੇ ਬਣਾਇਆ ਜਾ ਸਕਦਾ ਹੈ। - -![Dialog showing buttons to create a codespace](../../../00-course-setup/images/who-will-pay.webp) - -### 3. ਆਪਣੇ API Keys ਸੁਰੱਖਿਅਤ ਰੱਖੋ - -ਕਿਸੇ ਵੀ ਕਿਸਮ ਦੀ ਐਪਲੀਕੇਸ਼ਨ ਬਣਾਉਂਦੇ ਸਮੇਂ ਆਪਣੇ API keys ਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਣਾ ਬਹੁਤ ਜਰੂਰੀ ਹੈ। ਅਸੀਂ ਸਿਫਾਰਸ਼ ਕਰਦੇ ਹਾਂ ਕਿ ਤੁਸੀਂ ਆਪਣੇ ਕੋਡ ਵਿੱਚ ਸਿੱਧਾ ਕੋਈ ਵੀ API key ਨਾ ਰੱਖੋ। ਜੇ ਤੁਸੀਂ ਇਹ ਜਾਣਕਾਰੀ ਕਿਸੇ ਪਬਲਿਕ ਰੇਪੋ ਵਿੱਚ ਕਮਿਟ ਕਰਦੇ ਹੋ ਤਾਂ ਇਸ ਨਾਲ ਸੁਰੱਖਿਆ ਸਮੱਸਿਆਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ ਅਤੇ ਬੁਰੇ ਇਰਾਦੇ ਵਾਲੇ ਇਸਦਾ ਗਲਤ ਇਸਤੇਮਾਲ ਕਰਕੇ ਅਣਚਾਹੇ ਖਰਚੇ ਵੀ ਹੋ ਸਕਦੇ ਹਨ। -ਇੱਥੇ ਇੱਕ ਕਦਮ-ਦਰ-ਕਦਮ ਗਾਈਡ ਹੈ ਕਿ ਕਿਵੇਂ Python ਲਈ `.env` ਫਾਇਲ ਬਣਾਈਏ ਅਤੇ `GITHUB_TOKEN` ਸ਼ਾਮਲ ਕਰੀਏ: - -1. **ਆਪਣੇ ਪ੍ਰੋਜੈਕਟ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਜਾਓ**: ਆਪਣਾ ਟਰਮੀਨਲ ਜਾਂ ਕਮਾਂਡ ਪ੍ਰਾਂਪਟ ਖੋਲ੍ਹੋ ਅਤੇ ਉਸ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਜਾਓ ਜਿੱਥੇ ਤੁਸੀਂ `.env` ਫਾਇਲ ਬਣਾਉਣੀ ਹੈ। - - ```bash - cd path/to/your/project - ``` - -2. **`.env` ਫਾਇਲ ਬਣਾਓ**: ਆਪਣੀ ਮਨਪਸੰਦ ਟੈਕਸਟ ਐਡੀਟਰ ਨਾਲ `.env` ਨਾਮ ਦੀ ਨਵੀਂ ਫਾਇਲ ਬਣਾਓ। ਜੇ ਤੁਸੀਂ ਕਮਾਂਡ ਲਾਈਨ ਵਰਤ ਰਹੇ ਹੋ ਤਾਂ `touch` (Unix-ਅਧਾਰਿਤ ਸਿਸਟਮਾਂ ਲਈ) ਜਾਂ `echo` (Windows ਲਈ) ਵਰਤ ਸਕਦੇ ਹੋ: - - Unix-ਅਧਾਰਿਤ ਸਿਸਟਮ: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **`.env` ਫਾਇਲ ਨੂੰ ਸੋਧੋ**: `.env` ਫਾਇਲ ਨੂੰ ਕਿਸੇ ਟੈਕਸਟ ਐਡੀਟਰ (ਜਿਵੇਂ VS Code, Notepad++, ਜਾਂ ਹੋਰ) ਵਿੱਚ ਖੋਲ੍ਹੋ। ਹੇਠਾਂ ਦਿੱਤੀ ਲਾਈਨ ਸ਼ਾਮਲ ਕਰੋ, `your_github_token_here` ਨੂੰ ਆਪਣੇ ਅਸਲੀ GitHub ਟੋਕਨ ਨਾਲ ਬਦਲੋ: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **ਫਾਇਲ ਸੇਵ ਕਰੋ**: ਬਦਲਾਅ ਸੇਵ ਕਰੋ ਅਤੇ ਟੈਕਸਟ ਐਡੀਟਰ ਬੰਦ ਕਰੋ। - -5. **`python-dotenv` ਇੰਸਟਾਲ ਕਰੋ**: ਜੇ ਤੁਸੀਂ ਪਹਿਲਾਂ ਨਹੀਂ ਕੀਤਾ, ਤਾਂ `.env` ਫਾਇਲ ਤੋਂ ਵਾਤਾਵਰਣ ਵੈਰੀਏਬਲ ਲੋਡ ਕਰਨ ਲਈ `python-dotenv` ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰੋ। ਤੁਸੀਂ ਇਸਨੂੰ `pip` ਨਾਲ ਇੰਸਟਾਲ ਕਰ ਸਕਦੇ ਹੋ: - - ```bash - pip install python-dotenv - ``` - -6. **ਆਪਣੇ Python ਸਕ੍ਰਿਪਟ ਵਿੱਚ ਵਾਤਾਵਰਣ ਵੈਰੀਏਬਲ ਲੋਡ ਕਰੋ**: ਆਪਣੇ Python ਸਕ੍ਰਿਪਟ ਵਿੱਚ `python-dotenv` ਪੈਕੇਜ ਦੀ ਵਰਤੋਂ ਕਰਕੇ `.env` ਫਾਇਲ ਤੋਂ ਵਾਤਾਵਰਣ ਵੈਰੀਏਬਲ ਲੋਡ ਕਰੋ: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -ਇੰਨਾ ਹੀ! ਤੁਸੀਂ ਸਫਲਤਾਪੂਰਵਕ `.env` ਫਾਇਲ ਬਣਾਈ, ਆਪਣਾ GitHub ਟੋਕਨ ਸ਼ਾਮਲ ਕੀਤਾ ਅਤੇ ਇਸਨੂੰ ਆਪਣੇ Python ਐਪਲੀਕੇਸ਼ਨ ਵਿੱਚ ਲੋਡ ਕੀਤਾ। - -## ਆਪਣੇ ਕੰਪਿਊਟਰ 'ਤੇ ਲੋਕਲ ਤੌਰ 'ਤੇ ਕਿਵੇਂ ਚਲਾਉਣਾ - -ਆਪਣੇ ਕੰਪਿਊਟਰ 'ਤੇ ਕੋਡ ਚਲਾਉਣ ਲਈ, ਤੁਹਾਡੇ ਕੋਲ [Python ਦਾ ਕੋਈ ਵਰਜਨ ਇੰਸਟਾਲ ਹੋਣਾ](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst) ਜਰੂਰੀ ਹੈ। - -ਫਿਰ ਰੇਪੋ ਨੂੰ ਵਰਤਣ ਲਈ, ਤੁਹਾਨੂੰ ਇਸਨੂੰ ਕਲੋਨ ਕਰਨਾ ਪਵੇਗਾ: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -ਜਦੋਂ ਸਾਰਾ ਕੁਝ ਚੈੱਕ ਆਊਟ ਹੋ ਜਾਵੇ, ਤਾਂ ਤੁਸੀਂ ਸ਼ੁਰੂਆਤ ਕਰ ਸਕਦੇ ਹੋ! - -## ਵਿਕਲਪਿਕ ਕਦਮ - -### Miniconda ਇੰਸਟਾਲ ਕਰਨਾ - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) ਇੱਕ ਹਲਕਾ ਫੁਲਕਾ ਇੰਸਟਾਲਰ ਹੈ ਜੋ [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python ਅਤੇ ਕੁਝ ਪੈਕੇਜਾਂ ਨੂੰ ਇੰਸਟਾਲ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। -Conda ਖੁਦ ਇੱਕ ਪੈਕੇਜ ਮੈਨੇਜਰ ਹੈ, ਜੋ ਵੱਖ-ਵੱਖ Python [**ਵਰਚੁਅਲ ਵਾਤਾਵਰਣਾਂ**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) ਅਤੇ ਪੈਕੇਜਾਂ ਨੂੰ ਸੈਟਅਪ ਅਤੇ ਬਦਲਣਾ ਆਸਾਨ ਬਣਾਉਂਦਾ ਹੈ। ਇਹ ਉਹਨਾਂ ਪੈਕੇਜਾਂ ਨੂੰ ਇੰਸਟਾਲ ਕਰਨ ਵਿੱਚ ਵੀ ਮਦਦਗਾਰ ਹੈ ਜੋ `pip` ਰਾਹੀਂ ਉਪਲਬਧ ਨਹੀਂ ਹੁੰਦੇ। - -ਤੁਸੀਂ [MiniConda ਇੰਸਟਾਲੇਸ਼ਨ ਗਾਈਡ](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) ਦੀ ਪਾਲਣਾ ਕਰਕੇ ਇਸਨੂੰ ਸੈਟਅਪ ਕਰ ਸਕਦੇ ਹੋ। - -Miniconda ਇੰਸਟਾਲ ਹੋਣ ਤੋਂ ਬਾਅਦ, ਤੁਹਾਨੂੰ [ਰੇਪੋ](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) ਕਲੋਨ ਕਰਨਾ ਪਵੇਗਾ (ਜੇ ਪਹਿਲਾਂ ਨਹੀਂ ਕੀਤਾ)। - -ਫਿਰ, ਤੁਹਾਨੂੰ ਇੱਕ ਵਰਚੁਅਲ ਵਾਤਾਵਰਣ ਬਣਾਉਣਾ ਪਵੇਗਾ। Conda ਨਾਲ ਇਹ ਕਰਨ ਲਈ, ਇੱਕ ਨਵੀਂ ਵਾਤਾਵਰਣ ਫਾਇਲ (_environment.yml_) ਬਣਾਓ। ਜੇ ਤੁਸੀਂ Codespaces ਵਰਤ ਰਹੇ ਹੋ, ਤਾਂ ਇਹ `.devcontainer` ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਬਣਾਓ, ਮਤਲਬ `.devcontainer/environment.yml`। - -ਹੇਠਾਂ ਦਿੱਤੇ ਸਨਿੱਪੇਟ ਨਾਲ ਆਪਣੀ ਵਾਤਾਵਰਣ ਫਾਇਲ ਭਰੋ: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -ਜੇ ਤੁਹਾਨੂੰ Conda ਵਰਤਣ ਵਿੱਚ ਕੋਈ ਗਲਤੀ ਆ ਰਹੀ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਹੱਥੋਂ Microsoft AI Libraries ਨੂੰ ਟਰਮੀਨਲ ਵਿੱਚ ਹੇਠਾਂ ਦਿੱਤੇ ਕਮਾਂਡ ਨਾਲ ਇੰਸਟਾਲ ਕਰ ਸਕਦੇ ਹੋ। - -``` -conda install -c microsoft azure-ai-ml -``` - -ਵਾਤਾਵਰਣ ਫਾਇਲ ਉਹ ਡਿਪੈਂਡੈਂਸੀਜ਼ ਦਰਸਾਉਂਦੀ ਹੈ ਜੋ ਸਾਨੂੰ ਚਾਹੀਦੀਆਂ ਹਨ। `` ਉਸ ਨਾਮ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ ਜੋ ਤੁਸੀਂ ਆਪਣੇ Conda ਵਾਤਾਵਰਣ ਲਈ ਚਾਹੁੰਦੇ ਹੋ, ਅਤੇ `` ਉਹ Python ਦਾ ਵਰਜਨ ਹੈ ਜੋ ਤੁਸੀਂ ਵਰਤਣਾ ਚਾਹੁੰਦੇ ਹੋ, ਉਦਾਹਰਨ ਵਜੋਂ, `3` Python ਦਾ ਤਾਜ਼ਾ ਮੁੱਖ ਵਰਜਨ ਹੈ। - -ਇਹ ਸਭ ਹੋਣ ਤੋਂ ਬਾਅਦ, ਤੁਸੀਂ ਹੇਠਾਂ ਦਿੱਤੇ ਕਮਾਂਡਾਂ ਨੂੰ ਆਪਣੇ ਕਮਾਂਡ ਲਾਈਨ/ਟਰਮੀਨਲ ਵਿੱਚ ਚਲਾ ਕੇ ਆਪਣਾ Conda ਵਾਤਾਵਰਣ ਬਣਾ ਸਕਦੇ ਹੋ: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -ਜੇ ਕੋਈ ਸਮੱਸਿਆ ਆਵੇ ਤਾਂ [Conda ਵਾਤਾਵਰਣਾਂ ਦੀ ਗਾਈਡ](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst) ਨੂੰ ਵੇਖੋ। - -### Visual Studio Code ਨੂੰ Python ਸਹਾਇਤਾ ਐਕਸਟੈਂਸ਼ਨ ਨਾਲ ਵਰਤਣਾ - -ਅਸੀਂ ਸਿਫਾਰਸ਼ ਕਰਦੇ ਹਾਂ ਕਿ ਤੁਸੀਂ ਇਸ ਕੋਰਸ ਲਈ [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) ਐਡੀਟਰ ਨੂੰ [Python ਸਹਾਇਤਾ ਐਕਸਟੈਂਸ਼ਨ](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) ਨਾਲ ਵਰਤੋਂ। ਇਹ ਸਿਰਫ਼ ਸਿਫਾਰਸ਼ ਹੈ, ਜ਼ਰੂਰੀ ਨਹੀਂ। - -> **Note**: ਜਦੋਂ ਤੁਸੀਂ ਕੋਰਸ ਰੇਪੋ ਨੂੰ VS Code ਵਿੱਚ ਖੋਲ੍ਹਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਡੇ ਕੋਲ ਪ੍ਰੋਜੈਕਟ ਨੂੰ ਇੱਕ ਕੰਟੇਨਰ ਵਿੱਚ ਸੈਟਅਪ ਕਰਨ ਦਾ ਵਿਕਲਪ ਹੁੰਦਾ ਹੈ। ਇਹ ਇਸ ਲਈ ਹੈ ਕਿਉਂਕਿ ਕੋਰਸ ਰੇਪੋ ਵਿੱਚ ਇੱਕ ਖਾਸ `.devcontainer` ਡਾਇਰੈਕਟਰੀ ਹੁੰਦੀ ਹੈ। ਇਸ ਬਾਰੇ ਅੱਗੇ ਹੋਰ ਜਾਣਕਾਰੀ ਮਿਲੇਗੀ। - -> **Note**: ਜਦੋਂ ਤੁਸੀਂ ਰੇਪੋ ਕਲੋਨ ਕਰਕੇ VS Code ਵਿੱਚ ਖੋਲ੍ਹਦੇ ਹੋ, ਤਾਂ ਇਹ ਆਪਣੇ ਆਪ ਤੁਹਾਨੂੰ Python ਸਹਾਇਤਾ ਐਕਸਟੈਂਸ਼ਨ ਇੰਸਟਾਲ ਕਰਨ ਦੀ ਸਿਫਾਰਸ਼ ਕਰੇਗਾ। - -> **Note**: ਜੇ VS Code ਤੁਹਾਨੂੰ ਰੇਪੋ ਨੂੰ ਕੰਟੇਨਰ ਵਿੱਚ ਮੁੜ ਖੋਲ੍ਹਣ ਲਈ ਕਹਿੰਦਾ ਹੈ, ਤਾਂ ਇਸ ਬੇਨਤੀ ਨੂੰ ਮਨਜ਼ੂਰ ਨਾ ਕਰੋ ਤਾਂ ਜੋ ਤੁਸੀਂ ਲੋਕਲ ਤੌਰ 'ਤੇ ਇੰਸਟਾਲ ਕੀਤੇ Python ਵਰਜਨ ਨੂੰ ਵਰਤ ਸਕੋ। - -### ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ Jupyter ਵਰਤਣਾ - -ਤੁਸੀਂ ਪ੍ਰੋਜੈਕਟ 'ਤੇ ਕੰਮ ਕਰਨ ਲਈ ਆਪਣੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਹੀ [Jupyter ਵਾਤਾਵਰਣ](https://jupyter.org?WT.mc_id=academic-105485-koreyst) ਵਰਤ ਸਕਦੇ ਹੋ। ਕਲਾਸਿਕ Jupyter ਅਤੇ [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) ਦੋਹਾਂ ਇੱਕ ਸੁਖਦਾਇਕ ਵਿਕਾਸ ਵਾਤਾਵਰਣ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ, ਜਿਸ ਵਿੱਚ ਆਟੋ-ਕੰਪਲੀਸ਼ਨ, ਕੋਡ ਹਾਈਲਾਈਟਿੰਗ ਆਦਿ ਵਰਗੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਹੁੰਦੀਆਂ ਹਨ। - -Jupyter ਨੂੰ ਲੋਕਲ ਤੌਰ 'ਤੇ ਸ਼ੁਰੂ ਕਰਨ ਲਈ, ਟਰਮੀਨਲ/ਕਮਾਂਡ ਲਾਈਨ 'ਤੇ ਜਾਓ, ਕੋਰਸ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਜਾਓ ਅਤੇ ਇਹ ਕਮਾਂਡ ਚਲਾਓ: - -```bash -jupyter notebook -``` - -ਜਾਂ - -```bash -jupyterhub -``` - -ਇਸ ਨਾਲ ਇੱਕ Jupyter ਇੰਸਟੈਂਸ ਸ਼ੁਰੂ ਹੋਵੇਗਾ ਅਤੇ ਇਸਨੂੰ ਐਕਸੈਸ ਕਰਨ ਲਈ URL ਕਮਾਂਡ ਲਾਈਨ ਵਿੰਡੋ ਵਿੱਚ ਦਿਖਾਇਆ ਜਾਵੇਗਾ। - -ਜਦੋਂ ਤੁਸੀਂ URL ਖੋਲ੍ਹੋਗੇ, ਤਾਂ ਤੁਹਾਨੂੰ ਕੋਰਸ ਦਾ ਢਾਂਚਾ ਵੇਖਾਈ ਦੇਵੇਗਾ ਅਤੇ ਤੁਸੀਂ ਕਿਸੇ ਵੀ `*.ipynb` ਫਾਇਲ ਤੇ ਜਾ ਸਕੋਗੇ। ਉਦਾਹਰਨ ਵਜੋਂ, `08-building-search-applications/python/oai-solution.ipynb`। - -### ਕੰਟੇਨਰ ਵਿੱਚ ਚਲਾਉਣਾ - -ਆਪਣੇ ਕੰਪਿਊਟਰ ਜਾਂ Codespace 'ਤੇ ਸਾਰਾ ਕੁਝ ਸੈਟਅਪ ਕਰਨ ਦੇ ਬਦਲੇ, ਤੁਸੀਂ [ਕੰਟੇਨਰ](../../../00-course-setup/) ਵਰਤ ਸਕਦੇ ਹੋ। ਕੋਰਸ ਰੇਪੋ ਵਿੱਚ ਖਾਸ `.devcontainer` ਫੋਲਡਰ VS Code ਨੂੰ ਪ੍ਰੋਜੈਕਟ ਨੂੰ ਕੰਟੇਨਰ ਵਿੱਚ ਸੈਟਅਪ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। Codespaces ਤੋਂ ਬਾਹਰ, ਇਸ ਲਈ Docker ਇੰਸਟਾਲ ਕਰਨਾ ਪਵੇਗਾ, ਅਤੇ ਇਹ ਕੁਝ ਮਿਹਨਤ ਵਾਲਾ ਕੰਮ ਹੈ, ਇਸ ਲਈ ਅਸੀਂ ਇਹ ਸਿਰਫ਼ ਉਹਨਾਂ ਲਈ ਸਿਫਾਰਸ਼ ਕਰਦੇ ਹਾਂ ਜਿਨ੍ਹਾਂ ਕੋਲ ਕੰਟੇਨਰਾਂ ਨਾਲ ਕੰਮ ਕਰਨ ਦਾ ਤਜਰਬਾ ਹੈ। - -GitHub Codespaces ਵਰਤਦੇ ਸਮੇਂ ਆਪਣੇ API keys ਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਣ ਦਾ ਸਭ ਤੋਂ ਵਧੀਆ ਤਰੀਕਾ Codespace Secrets ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਹੈ। ਇਸ ਬਾਰੇ ਹੋਰ ਜਾਣਨ ਲਈ ਕਿਰਪਾ ਕਰਕੇ [Codespaces secrets management](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) ਗਾਈਡ ਦੀ ਪਾਲਣਾ ਕਰੋ। - -## ਪਾਠ ਅਤੇ ਤਕਨੀਕੀ ਲੋੜਾਂ - -ਕੋਰਸ ਵਿੱਚ 6 ਸੰਕਲਪਕ ਪਾਠ ਅਤੇ 6 ਕੋਡਿੰਗ ਪਾਠ ਹਨ। - -ਕੋਡਿੰਗ ਪਾਠਾਂ ਲਈ, ਅਸੀਂ Azure OpenAI Service ਵਰਤ ਰਹੇ ਹਾਂ। ਤੁਹਾਨੂੰ Azure OpenAI ਸੇਵਾ ਅਤੇ API key ਦੀ ਲੋੜ ਹੋਵੇਗੀ ਤਾਂ ਜੋ ਇਹ ਕੋਡ ਚਲਾ ਸਕੋ। ਤੁਸੀਂ [ਇਸ ਅਰਜ਼ੀ ਨੂੰ ਪੂਰਾ ਕਰਕੇ](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst) ਐਕਸੈਸ ਲਈ ਅਰਜ਼ੀ ਦੇ ਸਕਦੇ ਹੋ। - -ਜਦੋਂ ਤੱਕ ਤੁਹਾਡੀ ਅਰਜ਼ੀ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਹੈ, ਹਰ ਕੋਡਿੰਗ ਪਾਠ ਵਿੱਚ ਇੱਕ `README.md` ਫਾਇਲ ਵੀ ਹੁੰਦੀ ਹੈ ਜਿੱਥੇ ਤੁਸੀਂ ਕੋਡ ਅਤੇ ਨਤੀਜੇ ਵੇਖ ਸਕਦੇ ਹੋ। - -## Azure OpenAI Service ਨੂੰ ਪਹਿਲੀ ਵਾਰੀ ਵਰਤਣਾ - -ਜੇ ਇਹ ਤੁਹਾਡੀ ਪਹਿਲੀ ਵਾਰੀ ਹੈ ਕਿ ਤੁਸੀਂ Azure OpenAI ਸੇਵਾ ਨਾਲ ਕੰਮ ਕਰ ਰਹੇ ਹੋ, ਤਾਂ ਕਿਰਪਾ ਕਰਕੇ ਇਸ ਗਾਈਡ ਦੀ ਪਾਲਣਾ ਕਰੋ ਕਿ ਕਿਵੇਂ [Azure OpenAI Service resource ਬਣਾਈਏ ਅਤੇ ਡਿਪਲੋਇ ਕਰੋ।](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## OpenAI API ਨੂੰ ਪਹਿਲੀ ਵਾਰੀ ਵਰਤਣਾ - -ਜੇ ਇਹ ਤੁਹਾਡੀ ਪਹਿਲੀ ਵਾਰੀ ਹੈ ਕਿ ਤੁਸੀਂ OpenAI API ਨਾਲ ਕੰਮ ਕਰ ਰਹੇ ਹੋ, ਤਾਂ ਕਿਰਪਾ ਕਰਕੇ ਇਸ ਗਾਈਡ ਦੀ ਪਾਲਣਾ ਕਰੋ ਕਿ ਕਿਵੇਂ [Interface ਬਣਾਈਏ ਅਤੇ ਵਰਤੋਂ।](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## ਹੋਰ ਸਿੱਖਣ ਵਾਲਿਆਂ ਨਾਲ ਮਿਲੋ - -ਅਸੀਂ ਆਪਣੇ ਅਧਿਕਾਰਿਕ [AI Community Discord ਸਰਵਰ](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) ਵਿੱਚ ਹੋਰ ਸਿੱਖਣ ਵਾਲਿਆਂ ਨਾਲ ਮਿਲਣ ਲਈ ਚੈਨਲ ਬਣਾਏ ਹਨ। ਇਹ ਉਹਨਾਂ ਲਈ ਵਧੀਆ ਜਗ੍ਹਾ ਹੈ ਜੋ ਹੋਰ ਸਮਾਨ ਸੋਚ ਵਾਲੇ ਉਦਯੋਗਪਤੀਆਂ, ਨਿਰਮਾਤਾ, ਵਿਦਿਆਰਥੀ ਅਤੇ ਕੋਈ ਵੀ ਜੋ Generative AI ਵਿੱਚ ਆਪਣਾ ਦਰਜਾ ਵਧਾਉਣਾ ਚਾਹੁੰਦਾ ਹੈ, ਨਾਲ ਜੁੜਨਾ ਚਾਹੁੰਦੇ ਹਨ। - -[![Join discord channel](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -ਪ੍ਰੋਜੈਕਟ ਟੀਮ ਵੀ ਇਸ Discord ਸਰਵਰ 'ਤੇ ਸਿੱਖਣ ਵਾਲਿਆਂ ਦੀ ਮਦਦ ਲਈ ਮੌਜੂਦ ਰਹੇਗੀ। - -## ਯੋਗਦਾਨ ਪਾਉਣਾ - -ਇਹ ਕੋਰਸ ਇੱਕ ਖੁੱਲਾ ਸਰੋਤ ਪ੍ਰਯਾਸ ਹੈ। ਜੇ ਤੁਸੀਂ ਸੁਧਾਰ ਜਾਂ ਸਮੱਸਿਆਵਾਂ ਵੇਖਦੇ ਹੋ, ਤਾਂ ਕਿਰਪਾ ਕਰਕੇ [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) ਬਣਾਓ ਜਾਂ [GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) ਲਾਗ ਕਰੋ। - -ਪ੍ਰੋਜੈਕਟ ਟੀਮ ਸਾਰੇ ਯੋਗਦ - -**ਅਸਵੀਕਾਰੋਪਣ**: -ਇਹ ਦਸਤਾਵੇਜ਼ AI ਅਨੁਵਾਦ ਸੇਵਾ [Co-op Translator](https://github.com/Azure/co-op-translator) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀਤਾ ਲਈ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਰੱਖੋ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸਮਰਥਤਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼ ਆਪਣੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਪ੍ਰਮਾਣਿਕ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਅਸੀਂ ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਤੋਂ ਉਤਪੰਨ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆ ਲਈ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ। \ No newline at end of file + + + + diff --git a/translations/pa/00-course-setup/SETUP.md b/translations/pa/00-course-setup/SETUP.md deleted file mode 100644 index ed59e1905..000000000 --- a/translations/pa/00-course-setup/SETUP.md +++ /dev/null @@ -1,146 +0,0 @@ - -# ਆਪਣਾ ਡਿਵੈਲਪਮੈਂਟ ਵਾਤਾਵਰਣ ਸੈੱਟਅਪ ਕਰੋ - -ਅਸੀਂ ਇਸ ਰਿਪੋਜ਼ਟਰੀ ਅਤੇ ਕੋਰਸ ਨੂੰ ਇੱਕ [development container](https://containers.dev?WT.mc_id=academic-105485-koreyst) ਨਾਲ ਸੈੱਟਅਪ ਕੀਤਾ ਹੈ ਜਿਸ ਵਿੱਚ ਇੱਕ ਯੂਨੀਵਰਸਲ ਰਨਟਾਈਮ ਹੈ ਜੋ Python3, .NET, Node.js ਅਤੇ Java ਡਿਵੈਲਪਮੈਂਟ ਨੂੰ ਸਹਾਰਾ ਦੇ ਸਕਦਾ ਹੈ। ਸੰਬੰਧਿਤ ਕਨਫਿਗਰੇਸ਼ਨ `devcontainer.json` ਫਾਇਲ ਵਿੱਚ ਪਰਿਭਾਸ਼ਿਤ ਹੈ ਜੋ ਇਸ ਰਿਪੋਜ਼ਟਰੀ ਦੀ ਰੂਟ `.devcontainer/` ਫੋਲਡਰ ਵਿੱਚ ਮੌਜੂਦ ਹੈ। - -ਡਿਵ ਕੰਟੇਨਰ ਨੂੰ ਐਕਟੀਵੇਟ ਕਰਨ ਲਈ, ਇਸਨੂੰ [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (ਕਲਾਉਡ-ਹੋਸਟਡ ਰਨਟਾਈਮ ਲਈ) ਜਾਂ [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (ਲੋਕਲ ਡਿਵਾਈਸ-ਹੋਸਟਡ ਰਨਟਾਈਮ ਲਈ) ਵਿੱਚ ਲਾਂਚ ਕਰੋ। ਡਿਵ ਕੰਟੇਨਰ VS Code ਵਿੱਚ ਕਿਵੇਂ ਕੰਮ ਕਰਦੇ ਹਨ, ਇਸ ਬਾਰੇ ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ [ਇਸ ਦਸਤਾਵੇਜ਼](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) ਨੂੰ ਪੜ੍ਹੋ। - -> [!TIP] -> ਅਸੀਂ GitHub Codespaces ਦੀ ਸਿਫਾਰਸ਼ ਕਰਦੇ ਹਾਂ ਤਾਂ ਜੋ ਤੁਸੀਂ ਘੱਟ ਮਿਹਨਤ ਨਾਲ ਤੇਜ਼ੀ ਨਾਲ ਸ਼ੁਰੂਆਤ ਕਰ ਸਕੋ। ਇਹ ਨਿੱਜੀ ਖਾਤਿਆਂ ਲਈ ਇੱਕ ਵੱਡਾ [ਮੁਫ਼ਤ ਵਰਤੋਂ ਕੋਟਾ](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਆਪਣੀ ਕੋਟਾ ਵਰਤੋਂ ਨੂੰ ਵੱਧ ਤੋਂ ਵੱਧ ਕਰਨ ਲਈ ਗੈਰ-ਸਰਗਰਮ codespaces ਨੂੰ ਬੰਦ ਜਾਂ ਮਿਟਾਉਣ ਲਈ [timeouts](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) ਸੈੱਟ ਕਰੋ। - - -## 1. ਅਸਾਈਨਮੈਂਟ ਚਲਾਉਣਾ - -ਹਰ ਪਾਠ ਵਿੱਚ _ਵਿਕਲਪਿਕ_ ਅਸਾਈਨਮੈਂਟ ਹੋ ਸਕਦੇ ਹਨ ਜੋ ਇੱਕ ਜਾਂ ਵੱਧ ਪ੍ਰੋਗ੍ਰਾਮਿੰਗ ਭਾਸ਼ਾਵਾਂ ਵਿੱਚ ਦਿੱਤੇ ਜਾ ਸਕਦੇ ਹਨ, ਜਿਵੇਂ ਕਿ: Python, .NET/C#, Java ਅਤੇ JavaScript/TypeScript। ਇਹ ਭਾਗ ਉਹਨਾਂ ਅਸਾਈਨਮੈਂਟਾਂ ਨੂੰ ਚਲਾਉਣ ਲਈ ਆਮ ਮਾਰਗਦਰਸ਼ਨ ਦਿੰਦਾ ਹੈ। - -### 1.1 Python ਅਸਾਈਨਮੈਂਟ - -Python ਅਸਾਈਨਮੈਂਟ ਜਾਂ ਤਾਂ ਐਪਲੀਕੇਸ਼ਨ (`.py` ਫਾਇਲਾਂ) ਜਾਂ Jupyter ਨੋਟਬੁੱਕ (`.ipynb` ਫਾਇਲਾਂ) ਦੇ ਰੂਪ ਵਿੱਚ ਦਿੱਤੇ ਜਾਂਦੇ ਹਨ। -- ਨੋਟਬੁੱਕ ਚਲਾਉਣ ਲਈ, ਇਸਨੂੰ Visual Studio Code ਵਿੱਚ ਖੋਲ੍ਹੋ, ਫਿਰ ਉੱਪਰ ਸੱਜੇ ਕੋਨੇ 'ਤੇ _Select Kernel_ 'ਤੇ ਕਲਿੱਕ ਕਰੋ ਅਤੇ ਦਿਖਾਏ ਗਏ ਡਿਫਾਲਟ Python 3 ਵਿਕਲਪ ਨੂੰ ਚੁਣੋ। ਹੁਣ ਤੁਸੀਂ _Run All_ ਕਰਕੇ ਨੋਟਬੁੱਕ ਚਲਾ ਸਕਦੇ ਹੋ। -- ਕਮਾਂਡ-ਲਾਈਨ ਤੋਂ Python ਐਪਲੀਕੇਸ਼ਨ ਚਲਾਉਣ ਲਈ, ਅਸਾਈਨਮੈਂਟ-ਵਿਸ਼ੇਸ਼ ਹਦਾਇਤਾਂ ਦੀ ਪਾਲਣਾ ਕਰੋ ਤਾਂ ਜੋ ਸਹੀ ਫਾਇਲਾਂ ਚੁਣੀਆਂ ਜਾਣ ਅਤੇ ਲੋੜੀਂਦੇ ਆਰਗੁਮੈਂਟ ਦਿੱਤੇ ਜਾਣ। - -## 2. ਪ੍ਰੋਵਾਈਡਰਾਂ ਦੀ ਸੰਰਚਨਾ - -ਅਸਾਈਨਮੈਂਟਾਂ ਨੂੰ ਇੱਕ ਜਾਂ ਵੱਧ Large Language Model (LLM) ਡਿਪਲੋਇਮੈਂਟਾਂ ਨਾਲ ਕੰਮ ਕਰਨ ਲਈ ਸੈੱਟਅਪ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਜੋ OpenAI, Azure ਜਾਂ Hugging Face ਵਰਗੇ ਸਹਾਇਕ ਸਰਵਿਸ ਪ੍ਰੋਵਾਈਡਰਾਂ ਰਾਹੀਂ ਹੁੰਦੇ ਹਨ। ਇਹ ਇੱਕ _hosted endpoint_ (API) ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ ਜਿਸਨੂੰ ਅਸੀਂ ਸਹੀ ਪ੍ਰਮਾਣਿਕਤਾ (API key ਜਾਂ ਟੋਕਨ) ਨਾਲ ਪ੍ਰੋਗਰਾਮਿੰਗ ਰੂਪ ਵਿੱਚ ਐਕਸੈਸ ਕਰ ਸਕਦੇ ਹਾਂ। ਇਸ ਕੋਰਸ ਵਿੱਚ ਅਸੀਂ ਇਹ ਪ੍ਰੋਵਾਈਡਰਾਂ ਬਾਰੇ ਗੱਲ ਕਰਦੇ ਹਾਂ: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) ਵੱਖ-ਵੱਖ ਮਾਡਲਾਂ ਸਮੇਤ ਕੋਰ GPT ਸੀਰੀਜ਼ ਨਾਲ। - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) OpenAI ਮਾਡਲਾਂ ਲਈ ਜਿਹੜੇ ਉਦਯੋਗਿਕ ਤਿਆਰੀ 'ਤੇ ਧਿਆਨ ਕੇਂਦ੍ਰਿਤ ਕਰਦੇ ਹਨ। - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) ਖੁੱਲ੍ਹੇ ਸਰੋਤ ਮਾਡਲਾਂ ਅਤੇ ਇਨਫਰੈਂਸ ਸਰਵਰ ਲਈ। - -**ਤੁਹਾਨੂੰ ਇਹਨਾਂ ਅਭਿਆਸਾਂ ਲਈ ਆਪਣੇ ਖਾਤੇ ਦੀ ਲੋੜ ਪਵੇਗੀ**। ਅਸਾਈਨਮੈਂਟ ਵਿਕਲਪਿਕ ਹਨ, ਇਸ ਲਈ ਤੁਸੀਂ ਆਪਣੀ ਰੁਚੀ ਅਨੁਸਾਰ ਇੱਕ, ਸਾਰੇ ਜਾਂ ਕੋਈ ਵੀ ਪ੍ਰੋਵਾਈਡਰ ਸੈੱਟਅਪ ਕਰ ਸਕਦੇ ਹੋ। ਸਾਈਨਅਪ ਲਈ ਕੁਝ ਮਾਰਗਦਰਸ਼ਨ: - -| Signup | ਲਾਗਤ | API Key | Playground | ਟਿੱਪਣੀਆਂ | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst)| [Pricing](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst)| [Project-based](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [No-Code, Web](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | ਕਈ ਮਾਡਲ ਉਪਲਬਧ | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst)| [Pricing](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst)| [SDK Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst)| [Studio Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [ਪਹੁੰਚ ਲਈ ਪਹਿਲਾਂ ਅਰਜ਼ੀ ਦੇਣੀ ਲਾਜ਼ਮੀ](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst)| -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Pricing](https://huggingface.co/pricing) | [Access Tokens](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst)| [Hugging Chat ਵਿੱਚ ਸੀਮਿਤ ਮਾਡਲ ਹਨ](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -ਇਸ ਰਿਪੋਜ਼ਟਰੀ ਨੂੰ ਵੱਖ-ਵੱਖ ਪ੍ਰੋਵਾਈਡਰਾਂ ਨਾਲ ਵਰਤੋਂ ਲਈ _ਕਨਫਿਗਰ_ ਕਰਨ ਲਈ ਹੇਠਾਂ ਦਿੱਤੇ ਨਿਰਦੇਸ਼ਾਂ ਦੀ ਪਾਲਣਾ ਕਰੋ। ਜਿਹੜੇ ਅਸਾਈਨਮੈਂਟ ਕਿਸੇ ਖਾਸ ਪ੍ਰੋਵਾਈਡਰ ਦੀ ਲੋੜ ਰੱਖਦੇ ਹਨ, ਉਹਨਾਂ ਦੀ ਫਾਇਲ ਨਾਂ ਵਿੱਚ ਇਹਨਾਂ ਵਿੱਚੋਂ ਇੱਕ ਟੈਗ ਹੋਵੇਗਾ: - - `aoai` - Azure OpenAI endpoint, key ਦੀ ਲੋੜ - - `oai` - OpenAI endpoint, key ਦੀ ਲੋੜ - - `hf` - Hugging Face token ਦੀ ਲੋੜ - -ਤੁਸੀਂ ਇੱਕ, ਕੋਈ ਵੀ ਜਾਂ ਸਾਰੇ ਪ੍ਰੋਵਾਈਡਰ ਕਨਫਿਗਰ ਕਰ ਸਕਦੇ ਹੋ। ਸੰਬੰਧਿਤ ਅਸਾਈਨਮੈਂਟਾਂ ਵਿੱਚ ਜੇ ਪ੍ਰਮਾਣਿਕਤਾ ਨਾ ਹੋਵੇ ਤਾਂ ਸਿਰਫ਼ ਐਰਰ ਆਵੇਗਾ। - -### 2.1. `.env` ਫਾਇਲ ਬਣਾਓ - -ਅਸੀਂ ਮੰਨਦੇ ਹਾਂ ਕਿ ਤੁਸੀਂ ਉਪਰ ਦਿੱਤੀ ਮਾਰਗਦਰਸ਼ਨ ਪੜ੍ਹ ਲਈ ਹੈ ਅਤੇ ਸੰਬੰਧਿਤ ਪ੍ਰੋਵਾਈਡਰ ਨਾਲ ਸਾਈਨਅਪ ਕਰਕੇ ਲੋੜੀਂਦੇ ਪ੍ਰਮਾਣਿਕਤਾ (API_KEY ਜਾਂ ਟੋਕਨ) ਪ੍ਰਾਪਤ ਕਰ ਲਈ ਹੈ। Azure OpenAI ਦੇ ਮਾਮਲੇ ਵਿੱਚ, ਅਸੀਂ ਇਹ ਵੀ ਮੰਨਦੇ ਹਾਂ ਕਿ ਤੁਹਾਡੇ ਕੋਲ Azure OpenAI ਸਰਵਿਸ (endpoint) ਦਾ ਇੱਕ ਵੈਧ ਡਿਪਲੋਇਮੈਂਟ ਹੈ ਜਿਸ ਵਿੱਚ ਘੱਟੋ-ਘੱਟ ਇੱਕ GPT ਮਾਡਲ ਚੈਟ ਕੰਪਲੀਸ਼ਨ ਲਈ ਤਿਆਰ ਹੈ। - -ਅਗਲਾ ਕਦਮ ਤੁਹਾਡੇ **ਲੋਕਲ ਵਾਤਾਵਰਣ ਵੈਰੀਏਬਲਜ਼** ਨੂੰ ਹੇਠਾਂ ਦਿੱਤੇ ਅਨੁਸਾਰ ਕਨਫਿਗਰ ਕਰਨਾ ਹੈ: - -1. ਰੂਟ ਫੋਲਡਰ ਵਿੱਚ `.env.copy` ਫਾਇਲ ਲੱਭੋ ਜਿਸ ਵਿੱਚ ਕੁਝ ਇਸ ਤਰ੍ਹਾਂ ਦਾ ਸਮੱਗਰੀ ਹੋਵੇਗਾ: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. ਹੇਠਾਂ ਦਿੱਤੇ ਕਮਾਂਡ ਨਾਲ ਉਸ ਫਾਇਲ ਨੂੰ `.env` ਵਿੱਚ ਕਾਪੀ ਕਰੋ। ਇਹ ਫਾਇਲ _gitignore-d_ ਹੈ, ਜੋ ਸਿਰਲੇਖਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦੀ ਹੈ। - - ```bash - cp .env.copy .env - ``` - -3. ਮੁੱਲ ਭਰੋ (ਸੱਜੇ ਪਾਸੇ `=` ਦੇ ਬਾਅਦ ਵਾਲੇ ਪਲੇਸਹੋਲਡਰਾਂ ਨੂੰ ਬਦਲੋ) ਜਿਵੇਂ ਅਗਲੇ ਭਾਗ ਵਿੱਚ ਦਿੱਤਾ ਗਿਆ ਹੈ। - -3. (ਵਿਕਲਪ) ਜੇ ਤੁਸੀਂ GitHub Codespaces ਵਰਤਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਡੇ ਕੋਲ ਇਹ ਵਿਕਲਪ ਹੈ ਕਿ ਵਾਤਾਵਰਣ ਵੈਰੀਏਬਲਜ਼ ਨੂੰ ਇਸ ਰਿਪੋਜ਼ਟਰੀ ਨਾਲ ਜੁੜੇ _Codespaces secrets_ ਵਜੋਂ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਜਾਵੇ। ਇਸ ਸਥਿਤੀ ਵਿੱਚ, ਤੁਹਾਨੂੰ ਲੋਕਲ `.env` ਫਾਇਲ ਸੈੱਟਅਪ ਕਰਨ ਦੀ ਲੋੜ ਨਹੀਂ ਪਵੇਗੀ। **ਪਰ ਧਿਆਨ ਰੱਖੋ ਕਿ ਇਹ ਵਿਕਲਪ ਸਿਰਫ਼ GitHub Codespaces ਲਈ ਹੀ ਕੰਮ ਕਰਦਾ ਹੈ।** ਜੇ ਤੁਸੀਂ Docker Desktop ਵਰਤਦੇ ਹੋ ਤਾਂ `.env` ਫਾਇਲ ਸੈੱਟਅਪ ਕਰਨੀ ਪਵੇਗੀ। - -### 2.2. `.env` ਫਾਇਲ ਭਰੋ - -ਆਓ ਵੈਰੀਏਬਲ ਨਾਂਵਾਂ ਤੇ ਇੱਕ ਨਜ਼ਰ ਮਾਰੀਏ ਤਾਂ ਜੋ ਸਮਝ ਆ ਸਕੇ ਕਿ ਇਹ ਕੀ ਦਰਸਾਉਂਦੇ ਹਨ: - -| ਵੈਰੀਏਬਲ | ਵੇਰਵਾ | -| :--- | :--- | -| HUGGING_FACE_API_KEY | ਇਹ ਉਹ ਯੂਜ਼ਰ ਐਕਸੈਸ ਟੋਕਨ ਹੈ ਜੋ ਤੁਸੀਂ ਆਪਣੇ ਪ੍ਰੋਫਾਈਲ ਵਿੱਚ ਸੈੱਟ ਕੀਤਾ ਹੈ | -| OPENAI_API_KEY | ਇਹ ਸੇਵਾ ਨੂੰ ਵਰਤਣ ਲਈ ਅਧਿਕਾਰਿਤ ਕੁੰਜੀ ਹੈ ਜੋ ਨਾਨ-Azure OpenAI endpoints ਲਈ ਹੈ | -| AZURE_OPENAI_API_KEY | ਇਹ ਉਸ ਸੇਵਾ ਲਈ ਅਧਿਕਾਰਿਤ ਕੁੰਜੀ ਹੈ | -| AZURE_OPENAI_ENDPOINT | ਇਹ Azure OpenAI ਸਰੋਤ ਲਈ ਡਿਪਲੋਇਡ ਐਂਡਪੌਇੰਟ ਹੈ | -| AZURE_OPENAI_DEPLOYMENT | ਇਹ _ਟੈਕਸਟ ਜਨਰੇਸ਼ਨ_ ਮਾਡਲ ਡਿਪਲੋਇਮੈਂਟ ਐਂਡਪੌਇੰਟ ਹੈ | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | ਇਹ _ਟੈਕਸਟ ਐਮਬੈਡਿੰਗ_ ਮਾਡਲ ਡਿਪਲੋਇਮੈਂਟ ਐਂਡਪੌਇੰਟ ਹੈ | -| | | - -ਨੋਟ: ਆਖਰੀ ਦੋ Azure OpenAI ਵੈਰੀਏਬਲਜ਼ ਡਿਫਾਲਟ ਮਾਡਲ ਨੂੰ ਦਰਸਾਉਂਦੇ ਹਨ ਜੋ ਚੈਟ ਕੰਪਲੀਸ਼ਨ (ਟੈਕਸਟ ਜਨਰੇਸ਼ਨ) ਅਤੇ ਵੈਕਟਰ ਖੋਜ (ਐਮਬੈਡਿੰਗ) ਲਈ ਵਰਤੇ ਜਾਂਦੇ ਹਨ। ਇਹਨਾਂ ਨੂੰ ਸੈੱਟ ਕਰਨ ਲਈ ਹਦਾਇਤਾਂ ਸੰਬੰਧਿਤ ਅਸਾਈਨਮੈਂਟਾਂ ਵਿੱਚ ਦਿੱਤੀਆਂ ਜਾਣਗੀਆਂ। - -### 2.3 Azure ਕਨਫਿਗਰ ਕਰੋ: ਪੋਰਟਲ ਤੋਂ - -Azure OpenAI ਐਂਡਪੌਇੰਟ ਅਤੇ ਕੁੰਜੀ ਦੀਆਂ ਕੀਮਤਾਂ [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) ਵਿੱਚ ਮਿਲਣਗੀਆਂ, ਤਾਂ ਆਓ ਉੱਥੋਂ ਸ਼ੁਰੂ ਕਰੀਏ। - -1. [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) 'ਤੇ ਜਾਓ -1. ਸਾਈਡਬਾਰ (ਖੱਬੇ ਮੀਨੂ) ਵਿੱਚ **Keys and Endpoint** ਵਿਕਲਪ 'ਤੇ ਕਲਿੱਕ ਕਰੋ। -1. **Show Keys** 'ਤੇ ਕਲਿੱਕ ਕਰੋ - ਤੁਹਾਨੂੰ KEY 1, KEY 2 ਅਤੇ Endpoint ਵੇਖਣ ਨੂੰ ਮਿਲੇਗਾ। -1. AZURE_OPENAI_API_KEY ਲਈ KEY 1 ਦੀ ਕੀਮਤ ਵਰਤੋਂ। -1. AZURE_OPENAI_ENDPOINT ਲਈ Endpoint ਦੀ ਕੀਮਤ ਵਰਤੋਂ। - -ਹੁਣ ਸਾਨੂੰ ਉਹ ਐਂਡਪੌਇੰਟ ਚਾਹੀਦੇ ਹਨ ਜੋ ਅਸੀਂ ਖਾਸ ਮਾਡਲਾਂ ਲਈ ਡਿਪਲੋਇ ਕੀਤੇ ਹਨ। - -1. Azure OpenAI ਸਰੋਤ ਲਈ ਸਾਈਡਬਾਰ ਵਿੱਚ **Model deployments** ਵਿਕਲਪ 'ਤੇ ਕਲਿੱਕ ਕਰੋ। -1. ਮੰਜ਼ਿਲ ਪੰਨਾ 'ਤੇ **Manage Deployments** 'ਤੇ ਕਲਿੱਕ ਕਰੋ। - -ਇਹ ਤੁਹਾਨੂੰ Azure OpenAI Studio ਵੈੱਬਸਾਈਟ 'ਤੇ ਲੈ ਜਾਵੇਗਾ, ਜਿੱਥੇ ਅਸੀਂ ਹੋਰ ਕੀਮਤਾਂ ਲੱਭਾਂਗੇ। - -### 2.4 Azure ਕਨਫਿਗਰ ਕਰੋ: ਸਟੂਡੀਓ ਤੋਂ - -1. ਉਪਰ ਦਿੱਤੇ ਤਰੀਕੇ ਨਾਲ ਆਪਣੇ ਸਰੋਤ ਤੋਂ [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) 'ਤੇ ਜਾਓ। -1. ਮੌਜੂਦਾ ਡਿਪਲੋਇ ਕੀਤੇ ਮਾਡਲਾਂ ਨੂੰ ਵੇਖਣ ਲਈ ਸਾਈਡਬਾਰ (ਖੱਬਾ) ਵਿੱਚ **Deployments** ਟੈਬ 'ਤੇ ਕਲਿੱਕ ਕਰੋ। -1. ਜੇ ਤੁਹਾਡਾ ਚਾਹੀਦਾ ਮਾਡਲ ਡਿਪਲੋਇ ਨਹੀਂ ਹੈ, ਤਾਂ **Create new deployment** ਨਾਲ ਨਵਾਂ ਡਿਪਲੋਇ ਕਰੋ। -1. ਤੁਹਾਨੂੰ ਇੱਕ _text-generation_ ਮਾਡਲ ਦੀ ਲੋੜ ਹੋਵੇਗੀ - ਅਸੀਂ ਸਿਫਾਰਸ਼ ਕਰਦੇ ਹਾਂ: **gpt-35-turbo** -1. ਤੁਹਾਨੂੰ ਇੱਕ _text-embedding_ ਮਾਡਲ ਦੀ ਲੋੜ ਹੋਵੇਗੀ - ਅਸੀਂ ਸਿਫਾਰਸ਼ ਕਰਦੇ ਹਾਂ: **text-embedding-ada-002** - -ਹੁਣ ਵਾਤਾਵਰਣ ਵੈਰੀਏਬਲਜ਼ ਨੂੰ ਅਪਡੇਟ ਕਰੋ ਤਾਂ ਜੋ ਉਹ _Deployment name_ ਨੂੰ ਦਰਸਾਉਣ, ਜੋ ਆਮ ਤੌਰ 'ਤੇ ਮਾਡਲ ਦੇ ਨਾਮ ਦੇ ਬਰਾਬਰ ਹੁੰਦਾ ਹੈ ਜੇਕਰ ਤੁਸੀਂ ਇਸਨੂੰ ਖਾਸ ਤੌਰ 'ਤੇ ਬਦਲਿਆ ਨਾ ਹੋਵੇ। ਉਦਾਹਰਨ ਵਜੋਂ, ਤੁਸੀਂ ਇਹ ਹੋ ਸਕਦਾ ਹੈ: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**ਜਦੋਂ ਕੰਮ ਮੁਕੰਮਲ ਹੋ ਜਾਵੇ ਤਾਂ .env ਫਾਇਲ ਸੇਵ ਕਰਨਾ ਨਾ ਭੁੱਲੋ**। ਹੁਣ ਤੁਸੀਂ ਫਾਇਲ ਬੰਦ ਕਰਕੇ ਨੋਟਬੁੱਕ ਚਲਾਉਣ ਲਈ ਹਦਾਇਤਾਂ ਵੱਲ ਵਾਪਸ ਜਾ ਸਕਦੇ ਹੋ। - -### 2.5 OpenAI ਕਨਫਿਗਰ ਕਰੋ: ਪ੍ਰੋਫਾਈਲ ਤੋਂ - -ਤੁਹਾਡੀ OpenAI API ਕੁੰਜੀ ਤੁਹਾਡੇ [OpenAI ਖਾਤੇ](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) ਵਿੱਚ ਮਿਲੇਗੀ। ਜੇ ਤੁਹਾਡੇ ਕੋਲ ਨਹੀਂ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਖਾਤਾ ਬਣਾਕੇ API ਕੁੰਜੀ ਤਿਆਰ ਕਰ ਸਕਦੇ ਹੋ। ਕੁੰਜੀ ਮਿਲਣ ਤੋਂ ਬਾਅਦ, ਤੁਸੀਂ ਇਸਨੂੰ `.env` ਫਾਇਲ ਵਿੱਚ `OPENAI_API_KEY` ਵੈਰੀਏਬਲ ਵਿੱਚ ਭਰ ਸਕਦੇ ਹੋ। - -### 2.6 Hugging Face ਕਨਫਿਗਰ ਕਰੋ: ਪ੍ਰੋਫਾਈਲ ਤੋਂ - -ਤੁਹਾਡਾ Hugging Face ਟੋਕਨ ਤੁਹਾਡੇ ਪ੍ਰੋਫਾਈਲ ਵਿੱਚ [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst) ਹਿੱਸੇ ਵਿੱਚ ਮਿਲੇਗਾ। ਇਹਨਾਂ ਨੂੰ ਜਨਤਕ ਤੌਰ 'ਤੇ ਨਾ ਪੋਸਟ ਕਰੋ ਜਾਂ ਸਾਂਝਾ ਨਾ ਕਰੋ। ਇਸ ਪ੍ਰੋਜੈਕਟ ਲਈ ਇੱਕ ਨਵਾਂ ਟੋਕਨ ਬਣਾਓ ਅਤੇ ਉਸਨੂੰ `.env` ਫਾਇਲ ਵਿੱਚ `HUGGING_FACE_API_KEY` ਵੈਰੀਏਬਲ ਵਿੱਚ ਕਾਪੀ ਕਰੋ। _ਨੋਟ:_ ਇਹ ਤਕਨੀਕੀ ਤੌਰ 'ਤੇ API ਕੁੰਜੀ - -**ਅਸਵੀਕਾਰੋਪਣ**: -ਇਹ ਦਸਤਾਵੇਜ਼ AI ਅਨੁਵਾਦ ਸੇਵਾ [Co-op Translator](https://github.com/Azure/co-op-translator) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀਤਾ ਲਈ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਰੱਖੋ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸਮਰਥਤਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼ ਆਪਣੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਪ੍ਰਮਾਣਿਕ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਅਸੀਂ ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਤੋਂ ਉਤਪੰਨ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆ ਲਈ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ। \ No newline at end of file diff --git a/translations/pa/04-prompt-engineering-fundamentals/README.md b/translations/pa/04-prompt-engineering-fundamentals/README.md index 2876368d1..d07727127 100644 --- a/translations/pa/04-prompt-engineering-fundamentals/README.md +++ b/translations/pa/04-prompt-engineering-fundamentals/README.md @@ -1,332 +1,15 @@ - -# ਪ੍ਰਾਂਪਟ ਇੰਜੀਨੀਅਰਿੰਗ ਦੇ ਮੂਲ ਤੱਤ - -[![Prompt Engineering Fundamentals](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.pa.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## ਪਰਿਚਯ -ਇਹ ਮੋਡੀਊਲ ਜਨਰੇਟਿਵ AI ਮਾਡਲਾਂ ਵਿੱਚ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਪ੍ਰਾਂਪਟ ਬਣਾਉਣ ਲਈ ਜਰੂਰੀ ਧਾਰਣਾਵਾਂ ਅਤੇ ਤਕਨੀਕਾਂ ਨੂੰ ਕਵਰ ਕਰਦਾ ਹੈ। ਤੁਸੀਂ ਜਿਵੇਂ LLM ਨੂੰ ਪ੍ਰਾਂਪਟ ਲਿਖਦੇ ਹੋ, ਉਹ ਵੀ ਮਹੱਤਵਪੂਰਨ ਹੁੰਦਾ ਹੈ। ਧਿਆਨ ਨਾਲ ਬਣਾਇਆ ਗਿਆ ਪ੍ਰਾਂਪਟ ਬਿਹਤਰ ਜਵਾਬ ਪ੍ਰਾਪਤ ਕਰਨ ਵਿੱਚ ਸਹਾਇਕ ਹੁੰਦਾ ਹੈ। ਪਰ _ਪ੍ਰਾਂਪਟ_ ਅਤੇ _ਪ੍ਰਾਂਪਟ ਇੰਜੀਨੀਅਰਿੰਗ_ ਵਰਗੇ ਸ਼ਬਦਾਂ ਦਾ ਕੀ ਅਰਥ ਹੈ? ਅਤੇ ਮੈਂ LLM ਨੂੰ ਭੇਜੇ ਜਾਣ ਵਾਲੇ ਪ੍ਰਾਂਪਟ _ਇਨਪੁੱਟ_ ਨੂੰ ਕਿਵੇਂ ਸੁਧਾਰ ਸਕਦਾ ਹਾਂ? ਇਹ ਉਹ ਸਵਾਲ ਹਨ ਜਿਨ੍ਹਾਂ ਦੇ ਜਵਾਬ ਅਸੀਂ ਇਸ ਅਤੇ ਅਗਲੇ ਅਧਿਆਇ ਵਿੱਚ ਲੱਭਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਾਂਗੇ। - -_ਜਨਰੇਟਿਵ AI_ ਯੂਜ਼ਰ ਦੀਆਂ ਬੇਨਤੀਆਂ ਦੇ ਜਵਾਬ ਵਿੱਚ ਨਵਾਂ ਸਮੱਗਰੀ (ਜਿਵੇਂ ਕਿ ਟੈਕਸਟ, ਚਿੱਤਰ, ਆਡੀਓ, ਕੋਡ ਆਦਿ) ਬਣਾਉਣ ਦੇ ਯੋਗ ਹੈ। ਇਹ _ਲਾਰਜ ਲੈਂਗਵੇਜ ਮਾਡਲ_ ਜਿਵੇਂ OpenAI ਦੇ GPT ("Generative Pre-trained Transformer") ਸੀਰੀਜ਼ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਹੁੰਦਾ ਹੈ, ਜੋ ਕੁਦਰਤੀ ਭਾਸ਼ਾ ਅਤੇ ਕੋਡ ਲਈ ਟ੍ਰੇਨ ਕੀਤੇ ਜਾਂਦੇ ਹਨ। - -ਹੁਣ ਯੂਜ਼ਰ ਇਨ੍ਹਾਂ ਮਾਡਲਾਂ ਨਾਲ ਚੈਟ ਵਰਗੇ ਜਾਣੂ ਢੰਗ ਨਾਲ ਗੱਲਬਾਤ ਕਰ ਸਕਦੇ ਹਨ, ਬਿਨਾਂ ਕਿਸੇ ਤਕਨੀਕੀ ਗਿਆਨ ਜਾਂ ਟ੍ਰੇਨਿੰਗ ਦੀ ਲੋੜ ਦੇ। ਮਾਡਲ _ਪ੍ਰਾਂਪਟ-ਆਧਾਰਿਤ_ ਹੁੰਦੇ ਹਨ - ਯੂਜ਼ਰ ਟੈਕਸਟ ਇਨਪੁੱਟ (ਪ੍ਰਾਂਪਟ) ਭੇਜਦੇ ਹਨ ਅਤੇ AI ਤੋਂ ਜਵਾਬ (ਕੰਪਲੀਸ਼ਨ) ਪ੍ਰਾਪਤ ਕਰਦੇ ਹਨ। ਫਿਰ ਉਹ "AI ਨਾਲ ਚੈਟ" ਕਰਦੇ ਹੋਏ ਕਈ ਵਾਰੀ ਗੱਲਬਾਤ ਕਰ ਸਕਦੇ ਹਨ, ਆਪਣੇ ਪ੍ਰਾਂਪਟ ਨੂੰ ਸੁਧਾਰਦੇ ਰਹਿੰਦੇ ਹਨ ਜਦ ਤੱਕ ਜਵਾਬ ਉਮੀਦਾਂ ਦੇ ਅਨੁਕੂਲ ਨਾ ਹੋ ਜਾਵੇ। - -ਹੁਣ "ਪ੍ਰਾਂਪਟ" ਜਨਰੇਟਿਵ AI ਐਪਸ ਲਈ ਮੁੱਖ _ਪ੍ਰੋਗ੍ਰਾਮਿੰਗ ਇੰਟਰਫੇਸ_ ਬਣ ਗਏ ਹਨ, ਜੋ ਮਾਡਲਾਂ ਨੂੰ ਦੱਸਦੇ ਹਨ ਕਿ ਕੀ ਕਰਨਾ ਹੈ ਅਤੇ ਵਾਪਸ ਆਉਣ ਵਾਲੇ ਜਵਾਬਾਂ ਦੀ ਗੁਣਵੱਤਾ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕਰਦੇ ਹਨ। "ਪ੍ਰਾਂਪਟ ਇੰਜੀਨੀਅਰਿੰਗ" ਇੱਕ ਤੇਜ਼ੀ ਨਾਲ ਵਧਦਾ ਖੇਤਰ ਹੈ ਜੋ ਪ੍ਰਾਂਪਟਾਂ ਦੇ _ਡਿਜ਼ਾਈਨ ਅਤੇ ਅਪਟੀਮਾਈਜ਼ੇਸ਼ਨ_ 'ਤੇ ਧਿਆਨ ਕੇਂਦਰਿਤ ਕਰਦਾ ਹੈ ਤਾਂ ਜੋ ਵੱਡੇ ਪੱਧਰ 'ਤੇ ਲਗਾਤਾਰ ਅਤੇ ਗੁਣਵੱਤਾ ਵਾਲੇ ਜਵਾਬ ਮਿਲ ਸਕਣ। - -## ਸਿੱਖਣ ਦੇ ਲਕੜੇ - -ਇਸ ਪਾਠ ਵਿੱਚ ਅਸੀਂ ਸਿੱਖਾਂਗੇ ਕਿ ਪ੍ਰਾਂਪਟ ਇੰਜੀਨੀਅਰਿੰਗ ਕੀ ਹੈ, ਇਹ ਕਿਉਂ ਜਰੂਰੀ ਹੈ, ਅਤੇ ਕਿਸ ਤਰ੍ਹਾਂ ਅਸੀਂ ਕਿਸੇ ਮਾਡਲ ਅਤੇ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਉਦੇਸ਼ ਲਈ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਪ੍ਰਾਂਪਟ ਤਿਆਰ ਕਰ ਸਕਦੇ ਹਾਂ। ਅਸੀਂ ਪ੍ਰਾਂਪਟ ਇੰਜੀਨੀਅਰਿੰਗ ਦੇ ਮੁੱਖ ਧਾਰਣਾਵਾਂ ਅਤੇ ਸਭ ਤੋਂ ਵਧੀਆ ਅਭਿਆਸਾਂ ਨੂੰ ਸਮਝਾਂਗੇ - ਅਤੇ ਇੱਕ ਇੰਟਰਐਕਟਿਵ Jupyter Notebook "ਸੈਂਡਬਾਕਸ" ਵਾਤਾਵਰਣ ਬਾਰੇ ਜਾਣੂ ਹੋਵਾਂਗੇ ਜਿੱਥੇ ਅਸੀਂ ਇਹ ਧਾਰਣਾਵਾਂ ਅਸਲੀ ਉਦਾਹਰਣਾਂ 'ਤੇ ਲਾਗੂ ਕਰ ਸਕਦੇ ਹਾਂ। - -ਇਸ ਪਾਠ ਦੇ ਅੰਤ ਤੱਕ ਅਸੀਂ ਸਮਰੱਥ ਹੋਵਾਂਗੇ: - -1. ਪ੍ਰਾਂਪਟ ਇੰਜੀਨੀਅਰਿੰਗ ਕੀ ਹੈ ਅਤੇ ਇਹ ਕਿਉਂ ਜਰੂਰੀ ਹੈ, ਸਮਝਾਉਣਾ। -2. ਪ੍ਰਾਂਪਟ ਦੇ ਹਿੱਸਿਆਂ ਦਾ ਵਰਣਨ ਕਰਨਾ ਅਤੇ ਉਹ ਕਿਵੇਂ ਵਰਤੇ ਜਾਂਦੇ ਹਨ। -3. ਪ੍ਰਾਂਪਟ ਇੰਜੀਨੀਅਰਿੰਗ ਲਈ ਸਭ ਤੋਂ ਵਧੀਆ ਅਭਿਆਸ ਅਤੇ ਤਕਨੀਕਾਂ ਸਿੱਖਣਾ। -4. ਸਿੱਖੀਆਂ ਹੋਈਆਂ ਤਕਨੀਕਾਂ ਨੂੰ ਅਸਲੀ ਉਦਾਹਰਣਾਂ 'ਤੇ ਲਾਗੂ ਕਰਨਾ, OpenAI ਐਂਡਪੌਇੰਟ ਦੀ ਵਰਤੋਂ ਕਰਕੇ। - -## ਮੁੱਖ ਸ਼ਬਦ - -ਪ੍ਰਾਂਪਟ ਇੰਜੀਨੀਅਰਿੰਗ: AI ਮਾਡਲਾਂ ਨੂੰ ਚਾਹੀਦੇ ਨਤੀਜੇ ਦੇਣ ਲਈ ਇਨਪੁੱਟ ਡਿਜ਼ਾਈਨ ਅਤੇ ਸੁਧਾਰਨ ਦੀ ਪ੍ਰਕਿਰਿਆ। -ਟੋਕਨਾਈਜ਼ੇਸ਼ਨ: ਟੈਕਸਟ ਨੂੰ ਛੋਟੇ ਹਿੱਸਿਆਂ (ਟੋਕਨ) ਵਿੱਚ ਬਦਲਣ ਦੀ ਪ੍ਰਕਿਰਿਆ, ਜਿਸਨੂੰ ਮਾਡਲ ਸਮਝ ਸਕਦਾ ਹੈ ਅਤੇ ਪ੍ਰਕਿਰਿਆ ਕਰ ਸਕਦਾ ਹੈ। -ਇੰਸਟ੍ਰਕਸ਼ਨ-ਟਿਊਨਡ LLMs: ਵੱਡੇ ਭਾਸ਼ਾ ਮਾਡਲ ਜੋ ਖਾਸ ਹੁਕਮਾਂ ਨਾਲ ਸੁਧਾਰੇ ਗਏ ਹਨ ਤਾਂ ਜੋ ਜਵਾਬਾਂ ਦੀ ਸਹੀਅਤ ਅਤੇ ਸਬੰਧਤਾ ਵਧੇ। - -## ਸਿੱਖਣ ਦਾ ਸੈਂਡਬਾਕਸ - -ਪ੍ਰਾਂਪਟ ਇੰਜੀਨੀਅਰਿੰਗ ਅਜੇ ਵੀ ਵਿਗਿਆਨ ਨਾਲੋਂ ਜ਼ਿਆਦਾ ਕਲਾ ਹੈ। ਇਸ ਵਿੱਚ ਆਪਣੀ ਸਮਝ ਨੂੰ ਸੁਧਾਰਨ ਦਾ ਸਭ ਤੋਂ ਵਧੀਆ ਤਰੀਕਾ ਹੈ _ਵਧੇਰੇ ਅਭਿਆਸ_ ਕਰਨਾ ਅਤੇ ਟ੍ਰਾਇਲ-ਐਂਡ-ਐਰਰ ਅਪ੍ਰੋਚ ਅਪਣਾਉਣਾ ਜੋ ਐਪਲੀਕੇਸ਼ਨ ਖੇਤਰ ਦੀ ਮਹਾਰਤ ਨੂੰ ਸਿਫਾਰਸ਼ੀ ਤਕਨੀਕਾਂ ਅਤੇ ਮਾਡਲ-ਵਿਸ਼ੇਸ਼ ਸੁਧਾਰਾਂ ਨਾਲ ਜੋੜਦਾ ਹੈ। - -ਇਸ ਪਾਠ ਨਾਲ ਜੁੜਿਆ Jupyter Notebook ਇੱਕ _ਸੈਂਡਬਾਕਸ_ ਵਾਤਾਵਰਣ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ ਜਿੱਥੇ ਤੁਸੀਂ ਜੋ ਸਿੱਖਦੇ ਹੋ, ਉਸਨੂੰ ਅਮਲ ਵਿੱਚ ਲਿਆ ਸਕਦੇ ਹੋ - ਜਾਂ ਤਾਂ ਜਦੋਂ ਤੁਸੀਂ ਅੱਗੇ ਵਧਦੇ ਹੋ ਜਾਂ ਅੰਤ ਵਿੱਚ ਕੋਡ ਚੈਲੰਜ ਦੇ ਹਿੱਸੇ ਵਜੋਂ। ਅਭਿਆਸ ਕਰਨ ਲਈ ਤੁਹਾਨੂੰ ਲੋੜ ਹੋਵੇਗੀ: - -1. **ਇੱਕ Azure OpenAI API ਕੁੰਜੀ** - ਇੱਕ ਤੈਨਾਤ LLM ਲਈ ਸਰਵਿਸ ਐਂਡਪੌਇੰਟ। -2. **ਇੱਕ Python ਰਨਟਾਈਮ** - ਜਿਸ ਵਿੱਚ ਨੋਟਬੁੱਕ ਚਲਾਇਆ ਜਾ ਸਕੇ। -3. **ਲੋਕਲ Env ਵੈਰੀਏਬਲਜ਼** - _ਹੁਣੇ [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) ਕਦਮ ਪੂਰੇ ਕਰੋ ਤਾ ਕਿ ਤਿਆਰ ਰਹੋ_। - -ਨੋਟਬੁੱਕ ਵਿੱਚ _ਸ਼ੁਰੂਆਤੀ_ ਅਭਿਆਸ ਹਨ - ਪਰ ਤੁਹਾਨੂੰ ਆਪਣੇ _Markdown_ (ਵਰਣਨ) ਅਤੇ _Code_ (ਪ੍ਰਾਂਪਟ ਬੇਨਤੀਆਂ) ਹਿੱਸੇ ਸ਼ਾਮਲ ਕਰਨ ਦੀ ਸਲਾਹ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ ਤਾਂ ਜੋ ਹੋਰ ਉਦਾਹਰਣ ਜਾਂ ਵਿਚਾਰਾਂ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਸਕੋ ਅਤੇ ਪ੍ਰਾਂਪਟ ਡਿਜ਼ਾਈਨ ਲਈ ਆਪਣੀ ਸਮਝ ਬਣਾਉ। - -## ਚਿੱਤਰਾਂ ਨਾਲ ਸਮਝਾਉਣ ਵਾਲਾ ਮਾਰਗਦਰਸ਼ਕ - -ਕੀ ਤੁਸੀਂ ਇਸ ਪਾਠ ਵਿੱਚ ਕਵਰ ਕੀਤੇ ਮੁੱਖ ਵਿਸ਼ਿਆਂ ਦੀ ਇੱਕ ਵੱਡੀ ਤਸਵੀਰ ਦੇਖਣਾ ਚਾਹੁੰਦੇ ਹੋ? ਇਸ ਚਿੱਤਰਾਂ ਵਾਲੇ ਮਾਰਗਦਰਸ਼ਕ ਨੂੰ ਵੇਖੋ, ਜੋ ਤੁਹਾਨੂੰ ਮੁੱਖ ਵਿਸ਼ਿਆਂ ਅਤੇ ਹਰ ਇੱਕ ਵਿੱਚ ਸੋਚਣ ਲਈ ਮੁੱਖ ਬਿੰਦੂ ਦਿੰਦਾ ਹੈ। ਪਾਠ ਰੋਡਮੈਪ ਤੁਹਾਨੂੰ ਮੁੱਖ ਧਾਰਣਾਵਾਂ ਅਤੇ ਚੁਣੌਤੀਆਂ ਨੂੰ ਸਮਝਣ ਤੋਂ ਲੈ ਕੇ ਉਨ੍ਹਾਂ ਨੂੰ ਸੰਬੋਧਨ ਕਰਨ ਲਈ ਸਬੰਧਤ ਪ੍ਰਾਂਪਟ ਇੰਜੀਨੀਅਰਿੰਗ ਤਕਨੀਕਾਂ ਅਤੇ ਸਭ ਤੋਂ ਵਧੀਆ ਅਭਿਆਸਾਂ ਤੱਕ ਲੈ ਜਾਂਦਾ ਹੈ। ਧਿਆਨ ਦਿਓ ਕਿ ਇਸ ਮਾਰਗਦਰਸ਼ਕ ਵਿੱਚ "ਅਡਵਾਂਸਡ ਤਕਨੀਕਾਂ" ਭਾਗ ਇਸ ਕਰਿਕੁਲਮ ਦੇ _ਅਗਲੇ_ ਅਧਿਆਇ ਵਿੱਚ ਕਵਰ ਕੀਤੇ ਸਮੱਗਰੀ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ। - -![Illustrated Guide to Prompt Engineering](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.pa.png) - -## ਸਾਡਾ ਸਟਾਰਟਅਪ - -ਹੁਣ, ਆਓ ਗੱਲ ਕਰੀਏ ਕਿ _ਇਹ ਵਿਸ਼ਾ_ ਸਾਡੇ ਸਟਾਰਟਅਪ ਦੇ ਮਿਸ਼ਨ ਨਾਲ ਕਿਵੇਂ ਜੁੜਦਾ ਹੈ ਜੋ [ਸਿੱਖਿਆ ਵਿੱਚ AI ਨਵੀਨਤਾ ਲਿਆਉਣ](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst) ਦਾ ਹੈ। ਅਸੀਂ _ਵਿਅਕਤੀਗਤ ਸਿੱਖਿਆ_ ਵਾਲੀਆਂ AI-ਚਲਿਤ ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਬਣਾਉਣਾ ਚਾਹੁੰਦੇ ਹਾਂ - ਤਾਂ ਆਓ ਸੋਚੀਏ ਕਿ ਸਾਡੇ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਵੱਖ-ਵੱਖ ਯੂਜ਼ਰ ਕਿਵੇਂ ਪ੍ਰਾਂਪਟ "ਡਿਜ਼ਾਈਨ" ਕਰ ਸਕਦੇ ਹਨ: - -- **ਐਡਮਿਨਿਸਟ੍ਰੇਟਰ** AI ਨੂੰ ਕਹਿ ਸਕਦੇ ਹਨ ਕਿ _ਕਰੀਕੁਲਮ ਡੇਟਾ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਕੇ ਕਵਰੇਜ ਵਿੱਚ ਖਾਮੀਆਂ ਪਛਾਣੋ_। AI ਨਤੀਜੇ ਸੰਖੇਪ ਕਰ ਸਕਦਾ ਹੈ ਜਾਂ ਕੋਡ ਨਾਲ ਵਿਜ਼ੂਅਲਾਈਜ਼ ਕਰ ਸਕਦਾ ਹੈ। -- **ਅਧਿਆਪਕ** AI ਨੂੰ ਕਹਿ ਸਕਦੇ ਹਨ ਕਿ _ਇੱਕ ਨਿਸ਼ਚਿਤ ਦਰਸ਼ਕ ਅਤੇ ਵਿਸ਼ੇ ਲਈ ਪਾਠ ਯੋਜਨਾ ਤਿਆਰ ਕਰੋ_। AI ਨਿਯਤ ਫਾਰਮੈਟ ਵਿੱਚ ਵਿਅਕਤੀਗਤ ਯੋਜਨਾ ਬਣਾਉਂਦਾ ਹੈ। -- **ਵਿਦਿਆਰਥੀ** AI ਨੂੰ ਕਹਿ ਸਕਦੇ ਹਨ ਕਿ _ਉਹਨਾਂ ਨੂੰ ਮੁਸ਼ਕਲ ਵਿਸ਼ੇ ਵਿੱਚ ਟਿਊਟਰ ਕਰੋ_। AI ਹੁਣ ਵਿਦਿਆਰਥੀਆਂ ਨੂੰ ਪਾਠ, ਸੁਝਾਅ ਅਤੇ ਉਦਾਹਰਣਾਂ ਨਾਲ ਉਹਨਾਂ ਦੇ ਪੱਧਰ ਅਨੁਸਾਰ ਮਦਦ ਕਰਦਾ ਹੈ। - -ਇਹ ਤਾਂ ਸਿਰਫ਼ ਸ਼ੁਰੂਆਤ ਹੈ। [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) ਨੂੰ ਵੇਖੋ - ਇੱਕ ਖੁੱਲ੍ਹਾ ਸਰੋਤ ਪ੍ਰਾਂਪਟ ਲਾਇਬ੍ਰੇਰੀ ਜੋ ਸਿੱਖਿਆ ਵਿਸ਼ੇਸ਼ਜ્ઞਾਂ ਵੱਲੋਂ ਸੰਭਾਲੀ ਗਈ ਹੈ - ਤਾਂ ਜੋ ਸੰਭਾਵਨਾਵਾਂ ਬਾਰੇ ਵੱਡਾ ਅੰਦਾਜ਼ਾ ਲਗਾਇਆ ਜਾ ਸਕੇ! _ਕੁਝ ਪ੍ਰਾਂਪਟਾਂ ਨੂੰ ਸੈਂਡਬਾਕਸ ਵਿੱਚ ਜਾਂ OpenAI Playground ਵਿੱਚ ਚਲਾਕੇ ਦੇਖੋ ਕਿ ਕੀ ਹੁੰਦਾ ਹੈ!_ - - - -## ਪ੍ਰਾਂਪਟ ਇੰਜੀਨੀਅਰਿੰਗ ਕੀ ਹੈ? - -ਅਸੀਂ ਇਸ ਪਾਠ ਦੀ ਸ਼ੁਰੂਆਤ ਕੀਤੀ ਸੀ **ਪ੍ਰਾਂਪਟ ਇੰਜੀਨੀਅਰਿੰਗ** ਨੂੰ ਇਸ ਪ੍ਰਕਿਰਿਆ ਵਜੋਂ ਪਰਿਭਾਸ਼ਿਤ ਕਰਕੇ ਜੋ ਕਿਸੇ ਦਿੱਤੇ ਮਾਡਲ ਅਤੇ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਉਦੇਸ਼ ਲਈ ਲਗਾਤਾਰ ਅਤੇ ਗੁਣਵੱਤਾ ਵਾਲੇ ਜਵਾਬ (ਕੰਪਲੀਸ਼ਨ) ਦੇਣ ਲਈ ਟੈਕਸਟ ਇਨਪੁੱਟ (ਪ੍ਰਾਂਪਟ) ਨੂੰ _ਡਿਜ਼ਾਈਨ ਅਤੇ ਅਪਟੀਮਾਈਜ਼_ ਕਰਦੀ ਹੈ। ਅਸੀਂ ਇਸਨੂੰ ਦੋ ਕਦਮਾਂ ਦੀ ਪ੍ਰਕਿਰਿਆ ਵਜੋਂ ਸੋਚ ਸਕਦੇ ਹਾਂ: - -- ਕਿਸੇ ਮਾਡਲ ਅਤੇ ਉਦੇਸ਼ ਲਈ ਸ਼ੁਰੂਆਤੀ ਪ੍ਰਾਂਪਟ ਨੂੰ _ਡਿਜ਼ਾਈਨ_ ਕਰਨਾ -- ਜਵਾਬ ਦੀ ਗੁਣਵੱਤਾ ਸੁਧਾਰਨ ਲਈ ਪ੍ਰਾਂਪਟ ਨੂੰ ਕਈ ਵਾਰੀ _ਸੁਧਾਰਨਾ_ - -ਇਹ ਜ਼ਰੂਰੀ ਤੌਰ 'ਤੇ ਇੱਕ ਟ੍ਰਾਇਲ-ਐਂਡ-ਐਰਰ ਪ੍ਰਕਿਰਿਆ ਹੈ ਜਿਸ ਵਿੱਚ ਯੂਜ਼ਰ ਦੀ ਸਮਝ ਅਤੇ ਕੋਸ਼ਿਸ਼ ਲੋੜੀਂਦੀ ਹੈ ਤਾਂ ਜੋ ਵਧੀਆ ਨਤੀਜੇ ਮਿਲ ਸਕਣ। ਤਾਂ ਇਹ ਕਿਉਂ ਜਰੂਰੀ ਹੈ? ਇਸ ਸਵਾਲ ਦਾ ਜਵਾਬ ਦੇਣ ਲਈ ਸਾਨੂੰ ਪਹਿਲਾਂ ਤਿੰਨ ਧਾਰਣਾਵਾਂ ਨੂੰ ਸਮਝਣਾ ਪਵੇਗਾ: - -- _ਟੋਕਨਾਈਜ਼ੇਸ਼ਨ_ = ਮਾਡਲ ਪ੍ਰਾਂਪਟ ਨੂੰ ਕਿਵੇਂ "ਦੇਖਦਾ" ਹੈ -- _ਬੇਸ LLMs_ = ਫਾਊਂਡੇਸ਼ਨ ਮਾਡਲ ਪ੍ਰਾਂਪਟ ਨੂੰ ਕਿਵੇਂ "ਪ੍ਰਕਿਰਿਆ" ਕਰਦਾ ਹੈ -- _ਇੰਸਟ੍ਰਕਸ਼ਨ-ਟਿਊਨਡ LLMs_ = ਮਾਡਲ ਹੁਣ "ਟਾਸਕ" ਕਿਵੇਂ ਸਮਝਦਾ ਹੈ - -### ਟੋਕਨਾਈਜ਼ੇਸ਼ਨ - -ਇੱਕ LLM ਪ੍ਰਾਂਪਟਾਂ ਨੂੰ _ਟੋਕਨਾਂ ਦੀ ਲੜੀ_ ਵਜੋਂ ਵੇਖਦਾ ਹੈ ਜਿੱਥੇ ਵੱਖ-ਵੱਖ ਮਾਡਲ (ਜਾਂ ਮਾਡਲ ਦੇ ਵੱਖ-ਵੱਖ ਵਰਜਨ) ਇੱਕੋ ਪ੍ਰਾਂਪਟ ਨੂੰ ਵੱਖ-ਵੱਖ ਤਰੀਕਿਆਂ ਨਾਲ ਟੋਕਨਾਈਜ਼ ਕਰ ਸਕਦੇ ਹਨ। ਕਿਉਂਕਿ LLMs ਟੋਕਨਾਂ 'ਤੇ ਟ੍ਰੇਨ ਹੁੰਦੇ ਹਨ (ਕੱਚੇ ਟੈਕਸਟ 'ਤੇ ਨਹੀਂ), ਇਸ ਲਈ ਪ੍ਰਾਂਪਟਾਂ ਦਾ ਟੋਕਨਾਈਜ਼ ਹੋਣਾ ਜਵਾਬ ਦੀ ਗੁਣਵੱਤਾ 'ਤੇ ਸਿੱਧਾ ਪ੍ਰਭਾਵ ਪਾਉਂਦਾ ਹੈ। - -ਟੋਕਨਾਈਜ਼ੇਸ਼ਨ ਕਿਵੇਂ ਕੰਮ ਕਰਦੀ ਹੈ, ਇਹ ਸਮਝਣ ਲਈ [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) ਵਰਗੇ ਟੂਲਜ਼ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ। ਆਪਣਾ ਪ੍ਰਾਂਪਟ ਕਾਪੀ ਕਰੋ ਅਤੇ ਦੇਖੋ ਕਿ ਇਹ ਕਿਵੇਂ ਟੋਕਨਾਂ ਵਿੱਚ ਬਦਲਦਾ ਹੈ, ਖ਼ਾਸ ਕਰਕੇ ਖਾਲੀ ਥਾਵਾਂ ਅਤੇ ਵਿਸ਼ੇਸ਼ ਚਿੰਨ੍ਹਾਂ ਨੂੰ ਕਿਵੇਂ ਸੰਭਾਲਿਆ ਜਾਂਦਾ ਹੈ। ਧਿਆਨ ਦਿਓ ਕਿ ਇਹ ਉਦਾਹਰਣ ਇੱਕ ਪੁਰਾਣੇ LLM (GPT-3) ਨੂੰ ਦਿਖਾਉਂਦਾ ਹੈ - ਇਸ ਲਈ ਨਵੇਂ ਮਾਡਲ ਨਾਲ ਕੋਸ਼ਿਸ਼ ਕਰਨ 'ਤੇ ਨਤੀਜੇ ਵੱਖਰੇ ਹੋ ਸਕਦੇ ਹਨ। - -![Tokenization](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.pa.png) - -### ਧਾਰਣਾ: ਫਾਊਂਡੇਸ਼ਨ ਮਾਡਲ - -ਜਦੋਂ ਪ੍ਰਾਂਪਟ ਟੋਕਨਾਈਜ਼ ਹੋ ਜਾਂਦਾ ਹੈ, ਤਾਂ ["ਬੇਸ LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (ਜਾਂ ਫਾਊਂਡੇਸ਼ਨ ਮਾਡਲ) ਦਾ ਮੁੱਖ ਕੰਮ ਉਸ ਲੜੀ ਵਿੱਚ ਅਗਲਾ ਟੋਕਨ ਭਵਿੱਖਵਾਣੀ ਕਰਨਾ ਹੁੰਦਾ ਹੈ। ਕਿਉਂਕਿ LLMs ਵੱਡੇ ਟੈਕਸਟ ਡੇਟਾਸੈੱਟ 'ਤੇ ਟ੍ਰੇਨ ਹੁੰਦੇ ਹਨ, ਉਹ ਟੋਕਨਾਂ ਦੇ ਅੰਕੜਿਆਂ ਵਾਲੇ ਸੰਬੰਧਾਂ ਨੂੰ ਚੰਗੀ ਤਰ੍ਹਾਂ ਸਮਝਦੇ ਹਨ ਅਤੇ ਭਵਿੱਖਵਾਣੀ ਵਿਸ਼ਵਾਸਯੋਗ ਤਰੀਕੇ ਨਾਲ ਕਰ ਸਕਦੇ ਹਨ। ਉਹ ਪ੍ਰਾਂਪਟ ਜਾਂ ਟੋਕਨ ਦੇ ਸ਼ਬਦਾਂ ਦਾ _ਅਰਥ_ ਨਹੀਂ ਸਮਝਦੇ; ਉਹ ਸਿਰਫ਼ ਇੱਕ ਪੈਟਰਨ ਵੇਖਦੇ ਹਨ ਜਿਸਨੂੰ ਉਹ ਆਪਣੀ ਅਗਲੀ ਭਵਿੱਖਵਾਣੀ ਨਾਲ "ਪੂਰਾ" ਕਰ ਸਕਦੇ ਹਨ। ਉਹ ਇਸ ਲੜੀ ਦੀ ਭਵਿੱਖਵਾਣੀ ਜਾਰੀ ਰੱਖ ਸਕਦੇ ਹਨ ਜਦ ਤੱਕ ਯੂਜ਼ਰ ਰੁਕਾਵਟ ਨਾ ਕਰੇ ਜਾਂ ਕੋਈ ਪਹਿਲਾਂ ਤੋਂ ਨਿਰਧਾਰਿਤ ਸ਼ਰਤ ਨਾ ਪੂਰੀ ਹੋ ਜਾਵੇ। - -ਤੁਸੀਂ ਦੇਖਣਾ ਚਾਹੁੰਦੇ ਹੋ ਕਿ ਪ੍ਰਾਂਪਟ-ਆਧਾਰਿਤ ਕੰਪਲੀਸ਼ਨ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ? ਉਪਰੋਕਤ ਪ੍ਰਾਂਪਟ ਨੂੰ Azure OpenAI Studio ਦੇ [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) ਵਿੱਚ ਡਿਫਾਲਟ ਸੈਟਿੰਗਾਂ ਨਾਲ ਦਰਜ ਕਰੋ। ਸਿਸਟਮ ਪ੍ਰਾਂਪਟਾਂ ਨੂੰ ਜਾਣਕਾਰੀ ਦੀ ਬੇਨਤੀ ਵਜੋਂ ਸਮਝਦਾ ਹੈ - ਇਸ ਲਈ ਤੁਹਾਨੂੰ ਇਸ ਸੰਦਰਭ ਨੂੰ ਪੂਰਾ ਕਰਨ ਵਾਲਾ ਜਵਾਬ ਮਿਲੇਗਾ। - -ਪਰ ਜੇ ਯੂਜ਼ਰ ਕੁਝ ਖਾਸ ਦੇਖਣਾ ਚਾਹੁੰਦਾ ਹੈ ਜੋ ਕਿਸੇ ਮਾਪਦੰਡ ਜਾਂ ਟਾਸਕ ਦੇ ਉਦੇਸ਼ ਨੂੰ ਪੂਰਾ ਕਰਦਾ ਹੋਵੇ? ਇੱਥੇ _ਇੰਸਟ -IMPORTANT RULES: -1. ਅਨੁਵਾਦ ਦੇ ਆਲੇ-ਦੁਆਲੇ '''markdown ਜਾਂ ਹੋਰ ਕਿਸੇ ਵੀ ਟੈਗ ਨੂੰ ਨਾ ਜੋੜੋ -2. ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਅਨੁਵਾਦ ਬਹੁਤ ਜ਼ਿਆਦਾ ਸ਼ਾਬਦਿਕ ਨਾ ਲੱਗੇ -3. ਟਿੱਪਣੀਆਂ ਨੂੰ ਵੀ ਅਨੁਵਾਦ ਕਰੋ -4. ਇਹ ਫਾਈਲ Markdown ਫਾਰਮੈਟ ਵਿੱਚ ਲਿਖੀ ਗਈ ਹੈ - ਇਸਨੂੰ XML ਜਾਂ HTML ਵਾਂਗ ਨਾ ਸਮਝੋ -5. ਅਨੁਵਾਦ ਨਾ ਕਰੋ: - - [!NOTE], [!WARNING], [!TIP], [!IMPORTANT], [!CAUTION] - - ਵੈਰੀਏਬਲ ਨਾਮ, ਫੰਕਸ਼ਨ ਨਾਮ, ਕਲਾਸ ਨਾਮ - - ਜਿਹੜੇ ਪਲੇਸਹੋਲਡਰ ਜਿਵੇਂ @@INLINE_CODE_x@@ ਜਾਂ @@CODE_BLOCK_x@@ ਹਨ - - URLs ਜਾਂ ਪਾਥ -6. ਸਾਰੇ ਮੂਲ markdown ਫਾਰਮੈਟਿੰਗ ਨੂੰ ਬਰਕਰਾਰ ਰੱਖੋ -7. ਸਿਰਫ ਅਨੁਵਾਦਿਤ ਸਮੱਗਰੀ ਵਾਪਸ ਕਰੋ, ਕਿਸੇ ਹੋਰ ਟੈਗ ਜਾਂ ਮਾਰਕਅੱਪ ਦੇ ਬਿਨਾਂ - -> **ਪ੍ਰੰਪਟ:** 2076 ਦੇ ਮਾਰਸ਼ੀਅਨ ਯੁੱਧ 'ਤੇ ਇੱਕ ਪਾਠ ਯੋਜਨਾ ਤਿਆਰ ਕਰੋ। -ਇੱਕ ਵੈੱਬ ਖੋਜ ਨੇ ਮੈਨੂੰ ਦੱਸਿਆ ਕਿ ਮਾਰਸ਼ੀਅਨ ਜੰਗਾਂ ਬਾਰੇ ਕਲਪਨਾਤਮਕ ਕਹਾਣੀਆਂ (ਜਿਵੇਂ ਕਿ ਟੈਲੀਵਿਜ਼ਨ ਸੀਰੀਜ਼ ਜਾਂ ਕਿਤਾਬਾਂ) ਹਨ - ਪਰ 2076 ਵਿੱਚ ਕੋਈ ਨਹੀਂ। ਸਧਾਰਣ ਸਮਝ ਵੀ ਸਾਨੂੰ ਦੱਸਦੀ ਹੈ ਕਿ 2076 _ਭਵਿੱਖ ਵਿੱਚ_ ਹੈ ਅਤੇ ਇਸ ਲਈ, ਇਸਨੂੰ ਕਿਸੇ ਅਸਲੀ ਘਟਨਾ ਨਾਲ ਜੋੜਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ। - -ਤਾਂ ਫਿਰ ਕੀ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਅਸੀਂ ਇਹ ਪ੍ਰਾਂਪਟ ਵੱਖ-ਵੱਖ LLM ਪ੍ਰਦਾਤਾਵਾਂ ਨਾਲ ਚਲਾਉਂਦੇ ਹਾਂ? - -> **Response 1**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.pa.png) - -> **Response 2**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.pa.png) - -> **Response 3**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.pa.png) - -ਜਿਵੇਂ ਉਮੀਦ ਸੀ, ਹਰ ਮਾਡਲ (ਜਾਂ ਮਾਡਲ ਵਰਜਨ) ਥੋੜ੍ਹੇ ਬਹੁਤ ਵੱਖਰੇ ਜਵਾਬ ਦਿੰਦਾ ਹੈ, ਜੋ ਕਿ ਸਟੋਚਾਸਟਿਕ ਵਿਹਾਰ ਅਤੇ ਮਾਡਲ ਦੀ ਸਮਰੱਥਾ ਵਿੱਚ ਫਰਕਾਂ ਕਰਕੇ ਹੁੰਦਾ ਹੈ। ਉਦਾਹਰਨ ਵਜੋਂ, ਇੱਕ ਮਾਡਲ 8ਵੀਂ ਕਲਾਸ ਦੇ ਦਰਸ਼ਕਾਂ ਨੂੰ ਨਿਸ਼ਾਨਾ ਬਣਾਉਂਦਾ ਹੈ ਜਦਕਿ ਦੂਜਾ ਹਾਈ-ਸਕੂਲ ਦੇ ਵਿਦਿਆਰਥੀ ਨੂੰ ਮੰਨਦਾ ਹੈ। ਪਰ ਤਿੰਨੋ ਮਾਡਲਾਂ ਨੇ ਅਜਿਹੇ ਜਵਾਬ ਦਿੱਤੇ ਜੋ ਇੱਕ ਅਣਜਾਣ ਵਰਤੋਂਕਾਰ ਨੂੰ ਇਹ ਯਕੀਨ ਦਿਵਾ ਸਕਦੇ ਹਨ ਕਿ ਇਹ ਘਟਨਾ ਅਸਲੀ ਸੀ। - -ਪ੍ਰਾਂਪਟ ਇੰਜੀਨੀਅਰਿੰਗ ਤਕਨੀਕਾਂ ਜਿਵੇਂ ਕਿ _ਮੈਟਾਪ੍ਰਾਂਪਟਿੰਗ_ ਅਤੇ _ਟੈਮਪਰੇਚਰ ਕਨਫਿਗਰੇਸ਼ਨ_ ਕੁਝ ਹੱਦ ਤੱਕ ਮਾਡਲ ਦੀਆਂ ਗਲਤੀਆਂ ਨੂੰ ਘਟਾ ਸਕਦੀਆਂ ਹਨ। ਨਵੀਆਂ ਪ੍ਰਾਂਪਟ ਇੰਜੀਨੀਅਰਿੰਗ _ਆਰਕੀਟੈਕਚਰਜ਼_ ਵੀ ਨਵੇਂ ਟੂਲ ਅਤੇ ਤਕਨੀਕਾਂ ਨੂੰ ਪ੍ਰਾਂਪਟ ਫਲੋ ਵਿੱਚ ਬਿਨਾਂ ਰੁਕਾਵਟ ਦੇ ਸ਼ਾਮਲ ਕਰਦੀਆਂ ਹਨ, ਤਾਂ ਜੋ ਇਹ ਪ੍ਰਭਾਵ ਘਟਾਏ ਜਾ ਸਕਣ। - -## ਕੇਸ ਸਟਡੀ: GitHub Copilot - -ਆਓ ਇਸ ਭਾਗ ਨੂੰ ਖਤਮ ਕਰੀਏ ਅਤੇ ਵੇਖੀਏ ਕਿ ਪ੍ਰਾਂਪਟ ਇੰਜੀਨੀਅਰਿੰਗ ਅਸਲੀ ਦੁਨੀਆ ਦੇ ਹੱਲਾਂ ਵਿੱਚ ਕਿਵੇਂ ਵਰਤੀ ਜਾਂਦੀ ਹੈ, ਇੱਕ ਕੇਸ ਸਟਡੀ ਦੇ ਰੂਪ ਵਿੱਚ: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst)। - -GitHub Copilot ਤੁਹਾਡਾ "AI ਜੋੜੀ ਪ੍ਰੋਗ੍ਰਾਮਰ" ਹੈ - ਇਹ ਟੈਕਸਟ ਪ੍ਰਾਂਪਟਾਂ ਨੂੰ ਕੋਡ ਪੂਰਨਤਾ ਵਿੱਚ ਬਦਲਦਾ ਹੈ ਅਤੇ ਤੁਹਾਡੇ ਵਿਕਾਸ ਵਾਤਾਵਰਣ (ਜਿਵੇਂ ਕਿ Visual Studio Code) ਵਿੱਚ ਇੰਟਿਗ੍ਰੇਟ ਕੀਤਾ ਗਿਆ ਹੈ, ਤਾਂ ਜੋ ਵਰਤੋਂਕਾਰ ਨੂੰ ਬਿਨਾਂ ਰੁਕਾਵਟ ਦਾ ਅਨੁਭਵ ਮਿਲੇ। ਹੇਠਾਂ ਦਿੱਤੇ ਬਲੌਗ ਸੀਰੀਜ਼ ਵਿੱਚ ਦਰਜ ਹੈ ਕਿ ਸਭ ਤੋਂ ਪਹਿਲਾ ਵਰਜਨ OpenAI Codex ਮਾਡਲ 'ਤੇ ਆਧਾਰਿਤ ਸੀ - ਇੰਜੀਨੀਅਰਾਂ ਨੇ ਜਲਦੀ ਹੀ ਸਮਝਿਆ ਕਿ ਮਾਡਲ ਨੂੰ ਫਾਈਨ-ਟਿਊਨ ਕਰਨ ਅਤੇ ਬਿਹਤਰ ਪ੍ਰਾਂਪਟ ਇੰਜੀਨੀਅਰਿੰਗ ਤਕਨੀਕਾਂ ਵਿਕਸਿਤ ਕਰਨ ਦੀ ਲੋੜ ਹੈ, ਤਾਂ ਜੋ ਕੋਡ ਦੀ ਗੁਣਵੱਤਾ ਸੁਧਰੇ। ਜੁਲਾਈ ਵਿੱਚ, ਉਹਨਾਂ ਨੇ [ਇੱਕ ਸੁਧਾਰਿਆ ਹੋਇਆ AI ਮਾਡਲ ਜਾਰੀ ਕੀਤਾ ਜੋ Codex ਤੋਂ ਅੱਗੇ ਵਧਦਾ ਹੈ](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) ਤੇਜ਼ ਸਿਫਾਰਸ਼ਾਂ ਲਈ। - -ਉਹਨਾਂ ਦੀ ਸਿੱਖਣ ਯਾਤਰਾ ਨੂੰ ਸਮਝਣ ਲਈ ਪੋਸਟਾਂ ਨੂੰ ਕ੍ਰਮਵਾਰ ਪੜ੍ਹੋ। - -- **ਮਈ 2023** | [GitHub Copilot ਤੁਹਾਡੇ ਕੋਡ ਨੂੰ ਸਮਝਣ ਵਿੱਚ ਹੋਰ ਬਿਹਤਰ ਹੋ ਰਿਹਾ ਹੈ](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **ਮਈ 2023** | [GitHub ਦੇ ਅੰਦਰ: GitHub Copilot ਦੇ ਪਿੱਛੇ LLMs ਨਾਲ ਕੰਮ ਕਰਨਾ](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **ਜੂਨ 2023** | [GitHub Copilot ਲਈ ਬਿਹਤਰ ਪ੍ਰਾਂਪਟ ਕਿਵੇਂ ਲਿਖੇ ਜਾਣ](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **ਜੁਲਾਈ 2023** | [GitHub Copilot Codex ਤੋਂ ਅੱਗੇ ਵਧਦਾ ਹੈ ਸੁਧਾਰਿਆ ਹੋਇਆ AI ਮਾਡਲ ਨਾਲ](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **ਜੁਲਾਈ 2023** | [ਡਿਵੈਲਪਰ ਲਈ ਪ੍ਰਾਂਪਟ ਇੰਜੀਨੀਅਰਿੰਗ ਅਤੇ LLMs ਦੀ ਗਾਈਡ](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **ਸਤੰਬਰ 2023** | [ਇੰਟਰਪ੍ਰਾਈਜ਼ LLM ਐਪ ਕਿਵੇਂ ਬਣਾਈਏ: GitHub Copilot ਤੋਂ ਸਿੱਖਿਆ](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -ਤੁਸੀਂ ਉਹਨਾਂ ਦੇ [ਇੰਜੀਨੀਅਰਿੰਗ ਬਲੌਗ](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) ਨੂੰ ਵੀ ਵੇਖ ਸਕਦੇ ਹੋ, ਜਿਵੇਂ ਕਿ [ਇਹ](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) ਜੋ ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ ਇਹ ਮਾਡਲ ਅਤੇ ਤਕਨੀਕਾਂ ਅਸਲੀ ਦੁਨੀਆ ਦੇ ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਚਲਾਉਣ ਲਈ ਕਿਵੇਂ _ਲਾਗੂ_ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ। - ---- - - - -## ਪ੍ਰਾਂਪਟ ਬਣਾਉਣਾ - -ਅਸੀਂ ਵੇਖਿਆ ਕਿ ਪ੍ਰਾਂਪਟ ਇੰਜੀਨੀਅਰਿੰਗ ਕਿਉਂ ਮਹੱਤਵਪੂਰਨ ਹੈ - ਹੁਣ ਆਓ ਸਮਝੀਏ ਕਿ ਪ੍ਰਾਂਪਟ ਕਿਵੇਂ _ਬਣਾਏ_ ਜਾਂਦੇ ਹਨ ਤਾਂ ਜੋ ਅਸੀਂ ਵੱਖ-ਵੱਖ ਤਕਨੀਕਾਂ ਦਾ ਮੁਲਾਂਕਣ ਕਰ ਸਕੀਏ ਅਤੇ ਬਿਹਤਰ ਪ੍ਰਾਂਪਟ ਡਿਜ਼ਾਈਨ ਕਰ ਸਕੀਏ। - -### ਬੁਨਿਆਦੀ ਪ੍ਰਾਂਪਟ - -ਆਓ ਬੁਨਿਆਦੀ ਪ੍ਰਾਂਪਟ ਨਾਲ ਸ਼ੁਰੂ ਕਰੀਏ: ਮਾਡਲ ਨੂੰ ਭੇਜਿਆ ਗਿਆ ਸਿਰਫ਼ ਟੈਕਸਟ ਇਨਪੁੱਟ ਬਿਨਾਂ ਕਿਸੇ ਹੋਰ ਸੰਦਰਭ ਦੇ। ਇਹ ਇੱਕ ਉਦਾਹਰਨ ਹੈ - ਜਦੋਂ ਅਸੀਂ US ਦੇ ਰਾਸ਼ਟਰੀ ਗੀਤ ਦੇ ਪਹਿਲੇ ਕੁਝ ਸ਼ਬਦ OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst) ਨੂੰ ਭੇਜੇ, ਤਾਂ ਇਹ ਤੁਰੰਤ ਅਗਲੇ ਕੁਝ ਲਾਈਨਾਂ ਨਾਲ ਜਵਾਬ ਪੂਰਾ ਕਰਦਾ ਹੈ, ਜੋ ਬੁਨਿਆਦੀ ਅਨੁਮਾਨ ਲਗਾਉਣ ਵਾਲੇ ਵਿਹਾਰ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ। - -| ਪ੍ਰਾਂਪਟ (ਇਨਪੁੱਟ) | ਪੂਰਨਤਾ (ਆਉਟਪੁੱਟ) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | ਇਹ ਲੱਗਦਾ ਹੈ ਕਿ ਤੁਸੀਂ "The Star-Spangled Banner," ਜੋ ਕਿ ਸੰਯੁਕਤ ਰਾਜ ਦਾ ਰਾਸ਼ਟਰੀ ਗੀਤ ਹੈ, ਦੇ ਬੋਲ ਸ਼ੁਰੂ ਕਰ ਰਹੇ ਹੋ। ਪੂਰੇ ਬੋਲ ਹਨ ... | - -### ਜਟਿਲ ਪ੍ਰਾਂਪਟ - -ਹੁਣ ਆਓ ਉਸ ਬੁਨਿਆਦੀ ਪ੍ਰਾਂਪਟ ਵਿੱਚ ਸੰਦਰਭ ਅਤੇ ਹਦਾਇਤਾਂ ਸ਼ਾਮਲ ਕਰੀਏ। [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) ਸਾਨੂੰ ਇੱਕ ਜਟਿਲ ਪ੍ਰਾਂਪਟ ਬਣਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ ਜੋ ਕਿ _ਸੰਦੇਸ਼ਾਂ_ ਦੇ ਸੰਗ੍ਰਹਿ ਵਜੋਂ ਹੁੰਦਾ ਹੈ: - -- ਇਨਪੁੱਟ/ਆਉਟਪੁੱਟ ਜੋੜੇ ਜੋ _ਉਪਭੋਗਤਾ_ ਦੇ ਇਨਪੁੱਟ ਅਤੇ _ਸਹਾਇਕ_ ਦੇ ਜਵਾਬ ਨੂੰ ਦਰਸਾਉਂਦੇ ਹਨ। -- ਸਿਸਟਮ ਸੰਦੇਸ਼ ਜੋ ਸਹਾਇਕ ਦੇ ਵਿਹਾਰ ਜਾਂ ਵਿਅਕਤੀਗਤ ਲੱਛਣ ਲਈ ਸੰਦਰਭ ਸੈੱਟ ਕਰਦਾ ਹੈ। - -ਹੁਣ ਬੇਨਤੀ ਹੇਠਾਂ ਦਿੱਤੇ ਰੂਪ ਵਿੱਚ ਹੈ, ਜਿੱਥੇ _ਟੋਕਨਾਈਜ਼ੇਸ਼ਨ_ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਤਰੀਕੇ ਨਾਲ ਸੰਦਰਭ ਅਤੇ ਗੱਲਬਾਤ ਤੋਂ ਸੰਬੰਧਿਤ ਜਾਣਕਾਰੀ ਕੈਪਚਰ ਕਰਦਾ ਹੈ। ਹੁਣ, ਸਿਸਟਮ ਸੰਦਰਭ ਬਦਲਣਾ ਪੂਰਨਤਾਵਾਂ ਦੀ ਗੁਣਵੱਤਾ 'ਤੇ ਉਤਨਾ ਹੀ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਹੋ ਸਕਦਾ ਹੈ, ਜਿੰਨਾ ਕਿ ਉਪਭੋਗਤਾ ਦੇ ਇਨਪੁੱਟ। - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### ਹਦਾਇਤੀ ਪ੍ਰਾਂਪਟ - -ਉਪਰ ਦਿੱਤੇ ਉਦਾਹਰਣਾਂ ਵਿੱਚ, ਉਪਭੋਗਤਾ ਦਾ ਪ੍ਰਾਂਪਟ ਇੱਕ ਸਧਾਰਣ ਟੈਕਸਟ ਸਵਾਲ ਸੀ ਜੋ ਜਾਣਕਾਰੀ ਦੀ ਮੰਗ ਵਜੋਂ ਸਮਝਿਆ ਜਾ ਸਕਦਾ ਹੈ। _ਹਦਾਇਤੀ_ ਪ੍ਰਾਂਪਟਾਂ ਨਾਲ, ਅਸੀਂ ਉਸ ਟੈਕਸਟ ਨੂੰ ਇੱਕ ਕੰਮ ਨੂੰ ਵਧੇਰੇ ਵਿਸਥਾਰ ਨਾਲ ਦਰਸਾਉਣ ਲਈ ਵਰਤ ਸਕਦੇ ਹਾਂ, AI ਨੂੰ ਬਿਹਤਰ ਮਾਰਗਦਰਸ਼ਨ ਦੇਣ ਲਈ। ਇਹ ਇੱਕ ਉਦਾਹਰਨ ਹੈ: - -| ਪ੍ਰਾਂਪਟ (ਇਨਪੁੱਟ) | ਪੂਰਨਤਾ (ਆਉਟਪੁੱਟ) | ਹਦਾਇਤ ਕਿਸਮ | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Write a description of the Civil War | _ਇੱਕ ਸਧਾਰਣ ਪੈਰਾ ਵਾਪਸ ਕੀਤਾ_ | ਸਧਾਰਣ | -| Write a description of the Civil War. Provide key dates and events and describe their significance | _ਇੱਕ ਪੈਰਾ ਅਤੇ ਮੁੱਖ ਘਟਨਾਵਾਂ ਦੀ ਸੂਚੀ ਵਾਪਸ ਕੀਤੀ_ | ਜਟਿਲ | -| Write a description of the Civil War in 1 paragraph. Provide 3 bullet points with key dates and their significance. Provide 3 more bullet points with key historical figures and their contributions. Return the output as a JSON file | _ਵਧੇਰੇ ਵਿਸਥਾਰ ਨਾਲ ਟੈਕਸਟ ਬਾਕਸ ਵਿੱਚ JSON ਫਾਰਮੈਟ ਵਿੱਚ ਵਾਪਸ ਕਰਦਾ ਹੈ ਜੋ ਤੁਸੀਂ ਕਾਪੀ-ਪੇਸਟ ਕਰਕੇ ਫਾਇਲ ਵਜੋਂ ਵਰਤ ਸਕਦੇ ਹੋ ਅਤੇ ਜ਼ਰੂਰਤ ਪੈਣ 'ਤੇ ਵੈਰੀਫਾਈ ਕਰ ਸਕਦੇ ਹੋ_ | ਜਟਿਲ। ਫਾਰਮੈਟ ਕੀਤਾ ਹੋਇਆ। | - -## ਮੁੱਖ ਸਮੱਗਰੀ - -ਉਪਰ ਦਿੱਤੇ ਉਦਾਹਰਣਾਂ ਵਿੱਚ, ਪ੍ਰਾਂਪਟ ਅਜੇ ਵੀ ਕਾਫੀ ਖੁੱਲ੍ਹਾ ਸੀ, ਜਿਸ ਨਾਲ LLM ਨੂੰ ਇਹ ਫੈਸਲਾ ਕਰਨ ਦੀ ਆਜ਼ਾਦੀ ਮਿਲਦੀ ਸੀ ਕਿ ਉਸਦੇ ਪ੍ਰੀ-ਟ੍ਰੇਨਡ ਡੇਟਾਸੈੱਟ ਦਾ ਕਿਹੜਾ ਹਿੱਸਾ ਸੰਬੰਧਿਤ ਹੈ। _ਮੁੱਖ ਸਮੱਗਰੀ_ ਡਿਜ਼ਾਈਨ ਪੈਟਰਨ ਵਿੱਚ, ਇਨਪੁੱਟ ਟੈਕਸਟ ਨੂੰ ਦੋ ਹਿੱਸਿਆਂ ਵਿੱਚ ਵੰਡਿਆ ਜਾਂਦਾ ਹੈ: - -- ਇੱਕ ਹਦਾਇਤ (ਕਿਰਿਆ) -- ਸੰਬੰਧਿਤ ਸਮੱਗਰੀ (ਜੋ ਕਿਰਿਆ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕਰਦੀ ਹੈ) - -ਇਹ ਇੱਕ ਉਦਾਹਰਨ ਹੈ ਜਿੱਥੇ ਹਦਾਇਤ ਹੈ "ਇਸ ਨੂੰ 2 ਵਾਕਾਂ ਵਿੱਚ ਸੰਖੇਪ ਕਰੋ"। - -| ਪ੍ਰਾਂਪਟ (ਇਨਪੁੱਟ) | ਪੂਰਨਤਾ (ਆਉਟਪੁੱਟ) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. It is named after the Roman god Jupiter.[19] When viewed from Earth, Jupiter can be bright enough for its reflected light to cast visible shadows,[20] and is on average the third-brightest natural object in the night sky after the Moon and Venus.
**Summarize this in 2 short sentences** | Jupiter, ਸੂਰਜ ਤੋਂ ਪੰਜਵਾਂ ਗ੍ਰਹਿ, ਸੂਰਜੀ ਪ੍ਰਣਾਲੀ ਵਿੱਚ ਸਭ ਤੋਂ ਵੱਡਾ ਹੈ ਅਤੇ ਰਾਤ ਦੇ ਅਸਮਾਨ ਵਿੱਚ ਸਭ ਤੋਂ ਚਮਕਦਾਰ ਪਦਾਰਥਾਂ ਵਿੱਚੋਂ ਇੱਕ ਹੈ। ਇਹ ਰੋਮਨ ਦੇਵਤਾ Jupiter ਦੇ ਨਾਮ 'ਤੇ ਹੈ ਅਤੇ ਇਹ ਗੈਸ ਜਾਇੰਟ ਹੈ ਜਿਸਦਾ ਭਾਰ ਸਾਰੇ ਹੋਰ ਗ੍ਰਹਾਂ ਦੇ ਭਾਰ ਦਾ ਦੋ-ਅੱਧਾ ਗੁਣਾ ਹੈ। | - -ਮੁੱਖ ਸਮੱਗਰੀ ਹਿੱਸਾ ਵੱਖ-ਵੱਖ ਤਰੀਕਿਆਂ ਨਾਲ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ ਤਾਂ ਜੋ ਬਿਹਤਰ ਹਦਾਇਤਾਂ ਦਿੱਤੀਆਂ ਜਾ ਸਕਣ: - -- **ਉਦਾਹਰਨਾਂ** - ਮਾਡਲ ਨੂੰ ਸਪਸ਼ਟ ਹਦਾਇਤ ਦੇਣ ਦੀ ਬਜਾਏ, ਉਸਨੂੰ ਕੁਝ ਉਦਾਹਰਨਾਂ ਦਿਓ ਅਤੇ ਮਾਡਲ ਪੈਟਰਨ ਨੂੰ ਸਮਝ ਕੇ ਕੰਮ ਕਰੇ। -- **ਸੰਕੇਤ** - ਹਦਾਇਤ ਦੇ ਨਾਲ ਇੱਕ "ਸੰਕੇਤ" ਦਿਓ ਜੋ ਪੂਰਨਤਾ ਨੂੰ ਪ੍ਰੇਰਿਤ ਕਰਦਾ ਹੈ, ਮਾਡਲ ਨੂੰ ਵਧੇਰੇ ਸੰਬੰਧਿਤ ਜਵਾਬਾਂ ਵੱਲ ਮਾਰਗਦਰਸ਼ਨ ਕਰਦਾ ਹੈ। -- **ਟੈਮਪਲੇਟ** - ਇਹ ਦੁਹਰਾਏ ਜਾ ਸਕਣ ਵਾਲੇ 'ਰੇਸਿਪੀ' ਹਨ ਜਿਨ੍ਹਾਂ ਵਿੱਚ ਪਲੇਸਹੋਲਡਰ (ਵੈਰੀਏਬਲ) ਹੁੰਦੇ ਹਨ ਜੋ ਖਾਸ ਡੇਟਾ ਨਾਲ ਕਸਟਮਾਈਜ਼ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ। - -ਆਓ ਇਨ੍ਹਾਂ ਨੂੰ ਕਾਰਵਾਈ ਵਿੱਚ ਵੇਖੀਏ। - -### ਉਦਾਹਰਨਾਂ ਦੀ ਵਰਤੋਂ - -ਇਹ ਇੱਕ ਤਰੀਕਾ ਹੈ ਜਿੱਥੇ ਤੁਸੀਂ ਮੁੱਖ ਸਮੱਗਰੀ ਨੂੰ ਵਰਤ ਕੇ ਮਾਡਲ ਨੂੰ ਇੱਕ ਹਦਾਇਤ ਲਈ ਚਾਹੀਦਾ ਨਤੀਜਾ ਦੇ ਕੁਝ ਉਦਾਹਰਨ ਦਿੰਦੇ ਹੋ, ਅਤੇ ਮਾਡਲ ਪੈਟਰਨ ਨੂੰ ਸਮਝ ਕੇ ਨਤੀਜਾ ਤਿਆਰ ਕਰਦਾ ਹੈ। ਦਿੱਤੀਆਂ ਗਈਆਂ ਉਦਾਹਰਨਾਂ ਦੀ ਗਿਣਤੀ ਦੇ ਅਧਾਰ 'ਤੇ, ਸਾਨੂੰ ਜ਼ੀਰੋ-ਸ਼ਾਟ, ਵਨ-ਸ਼ਾਟ, ਫਿਊ-ਸ਼ਾਟ ਪ੍ਰਾਂਪਟਿੰਗ ਮਿਲਦੀ ਹੈ। - -ਹੁਣ ਪ੍ਰਾਂਪਟ ਵਿੱਚ ਤਿੰਨ ਹਿੱਸੇ ਹੁੰਦੇ ਹਨ: - -- ਇੱਕ ਕੰਮ ਦਾ ਵੇਰਵਾ -- ਚਾਹੀਦੇ ਨਤੀਜੇ ਦੀਆਂ ਕੁਝ ਉਦਾਹਰਨਾਂ -- ਇੱਕ ਨਵੀਂ ਉਦਾਹਰਨ ਦੀ ਸ਼ੁਰੂਆਤ (ਜੋ ਗੁਪਤ ਤੌਰ 'ਤੇ ਕੰਮ ਦਾ ਵੇਰਵਾ ਬਣ ਜਾਂਦੀ ਹੈ) - -| ਸਿੱਖਣ ਦੀ ਕਿਸਮ | ਪ੍ਰਾਂਪਟ (ਇਨਪੁੱਟ) | ਪੂਰਨਤਾ (ਆਉਟਪੁੱਟ) | -| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| ਜ਼ੀਰੋ-ਸ਼ਾਟ | "The Sun is Shining". Translate to Spanish | "El Sol está brillando". | -| ਵਨ-ਸ਼ਾਟ | "The Sun is Shining" => ""El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| ਫਿਊ-ਸ਼ਾਟ | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketball | -| | | | - -ਦਿੱਖੋ ਕਿ ਜਿੱਥੇ ਜ਼ੀਰੋ-ਸ਼ਾਟ ਪ੍ਰਾਂ - -IMPORTANT RULES: -1. ਅਨੁਵਾਦ ਦੇ ਆਲੇ-ਦੁਆਲੇ '''markdown ਜਾਂ ਹੋਰ ਕਿਸੇ ਟੈਗ ਨੂੰ ਨਾ ਜੋੜੋ -2. ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਅਨੁਵਾਦ ਬਹੁਤ ਜ਼ਿਆਦਾ ਸ਼ਾਬਦਿਕ ਨਾ ਲੱਗੇ -3. ਟਿੱਪਣੀਆਂ ਦਾ ਵੀ ਅਨੁਵਾਦ ਕਰੋ -4. ਇਹ ਫਾਈਲ Markdown ਫਾਰਮੈਟ ਵਿੱਚ ਹੈ - ਇਸਨੂੰ XML ਜਾਂ HTML ਵਾਂਗ ਨਾ ਸਮਝੋ -5. ਅਨੁਵਾਦ ਨਾ ਕਰੋ: - - [!NOTE], [!WARNING], [!TIP], [!IMPORTANT], [!CAUTION] - - ਵੈਰੀਏਬਲ ਨਾਮ, ਫੰਕਸ਼ਨ ਨਾਮ, ਕਲਾਸ ਨਾਮ - - ਜਿਹੜੇ ਪਲੇਸਹੋਲਡਰ ਹਨ ਜਿਵੇਂ @@INLINE_CODE_x@@ ਜਾਂ @@CODE_BLOCK_x@@ - - URLs ਜਾਂ ਪਾਥ -6. ਸਾਰੇ ਮੂਲ Markdown ਫਾਰਮੈਟਿੰਗ ਨੂੰ ਬਰਕਰਾਰ ਰੱਖੋ -7. ਸਿਰਫ ਅਨੁਵਾਦਿਤ ਸਮੱਗਰੀ ਵਾਪਸ ਦਿਓ, ਕੋਈ ਵਾਧੂ ਟੈਗ ਜਾਂ ਮਾਰਕਅੱਪ ਨਾ ਜੋੜੋ -ਕਿਰਪਾ ਕਰਕੇ ਆਉਟਪੁੱਟ ਖੱਬੇ ਤੋਂ ਸੱਜੇ ਲਿਖੋ। - -**Summarize This** | ਜੂਪੀਟਰ ਸਾਡੇ ਸੂਰਜ ਮੰਡਲ ਦਾ ਸਭ ਤੋਂ ਵੱਡਾ ਗ੍ਰਹਿ ਹੈ ਅਤੇ ਸੂਰਜ ਤੋਂ ਪੰਜਵਾਂ ਗ੍ਰਹਿ ਹੈ। ਇਹ ਇੱਕ ਗੈਸ ਜਾਇੰਟ ਹੈ ਜਿਸਦਾ ਭਾਰ ਸੂਰਜ ਦੇ ਭਾਰ ਦਾ 1/1000ਵਾਂ ਹੈ, ਪਰ ਇਹ ਸਾਰੇ ਹੋਰ ਗ੍ਰਹਿਆਂ ਦੇ ਭਾਰ ਤੋਂ ਵੱਧ ਭਾਰੀ ਹੈ। ਪ੍ਰਾਚੀਨ ਸਭਿਆਚਾਰਾਂ ਨੂੰ ਜੂਪੀਟਰ ਬਾਰੇ ਕਾਫੀ ਸਮੇਂ ਤੋਂ ਪਤਾ ਹੈ, ਅਤੇ ਇਹ ਰਾਤ ਦੇ ਆਸਮਾਨ ਵਿੱਚ ਆਸਾਨੀ ਨਾਲ ਦਿੱਖਾਈ ਦਿੰਦਾ ਹੈ। | -| 1 | ਜੂਪੀਟਰ ਸੂਰਜ ਤੋਂ ਪੰਜਵਾਂ ਗ੍ਰਹਿ ਹੈ ਅਤੇ ਸੂਰਜ ਮੰਡਲ ਵਿੱਚ ਸਭ ਤੋਂ ਵੱਡਾ ਗ੍ਰਹਿ ਹੈ। ਇਹ ਇੱਕ ਗੈਸ ਜਾਇੰਟ ਹੈ ਜਿਸਦਾ ਭਾਰ ਸੂਰਜ ਦੇ ਭਾਰ ਦਾ ਇੱਕ ਹਜ਼ਾਰਵਾਂ ਹਿੱਸਾ ਹੈ, ਪਰ ਸਾਰੇ ਹੋਰ ਗ੍ਰਹਿਆਂ ਦੇ ਭਾਰ ਦੇ ਮੁਕਾਬਲੇ ਦੋ ਤੇ ਅੱਧ ਗੁਣਾ ਵੱਧ ਹੈ। ਜੂਪੀਟਰ ਰਾਤ ਦੇ ਆਸਮਾਨ ਵਿੱਚ ਨੰਗੀ ਅੱਖ ਨਾਲ ਸਭ ਤੋਂ ਚਮਕਦਾਰ ਪਦਾਰਥਾਂ ਵਿੱਚੋਂ ਇੱਕ ਹੈ, ਅਤੇ ਇਹ ਪ੍ਰਾਚੀਨ ਸਭਿਆਚਾਰਾਂ ਨੂੰ ਇਤਿਹਾਸ ਤੋਂ ਪਹਿਲਾਂ ਤੋਂ ਜਾਣਿਆ ਗਿਆ ਹੈ।
**Summarize This**
ਸਾਨੂੰ ਇਹ ਸਿੱਖਣ ਨੂੰ ਮਿਲਿਆ ਕਿ ਜੂਪੀਟਰ | ਸੂਰਜ ਤੋਂ ਪੰਜਵਾਂ ਗ੍ਰਹਿ ਹੈ ਅਤੇ ਸੂਰਜ ਮੰਡਲ ਵਿੱਚ ਸਭ ਤੋਂ ਵੱਡਾ ਗ੍ਰਹਿ ਹੈ। ਇਹ ਇੱਕ ਗੈਸ ਜਾਇੰਟ ਹੈ ਜਿਸਦਾ ਭਾਰ ਸੂਰਜ ਦੇ ਭਾਰ ਦਾ ਇੱਕ ਹਜ਼ਾਰਵਾਂ ਹਿੱਸਾ ਹੈ, ਪਰ ਸਾਰੇ ਹੋਰ ਗ੍ਰਹਿਆਂ ਦੇ ਭਾਰ ਦੇ ਮੁਕਾਬਲੇ ਦੋ ਤੇ ਅੱਧ ਗੁਣਾ ਵੱਧ ਹੈ। ਇਹ ਨੰਗੀ ਅੱਖ ਨਾਲ ਆਸਾਨੀ ਨਾਲ ਦਿੱਖਾਈ ਦਿੰਦਾ ਹੈ ਅਤੇ ਪ੍ਰਾਚੀਨ ਸਮਿਆਂ ਤੋਂ ਜਾਣਿਆ ਜਾਂਦਾ ਹੈ। | -| 2 | ਜੂਪੀਟਰ ਸੂਰਜ ਤੋਂ ਪੰਜਵਾਂ ਗ੍ਰਹਿ ਹੈ ਅਤੇ ਸੂਰਜ ਮੰਡਲ ਵਿੱਚ ਸਭ ਤੋਂ ਵੱਡਾ ਗ੍ਰਹਿ ਹੈ। ਇਹ ਇੱਕ ਗੈਸ ਜਾਇੰਟ ਹੈ ਜਿਸਦਾ ਭਾਰ ਸੂਰਜ ਦੇ ਭਾਰ ਦਾ ਇੱਕ ਹਜ਼ਾਰਵਾਂ ਹਿੱਸਾ ਹੈ, ਪਰ ਸਾਰੇ ਹੋਰ ਗ੍ਰਹਿਆਂ ਦੇ ਭਾਰ ਦੇ ਮੁਕਾਬਲੇ ਦੋ ਤੇ ਅੱਧ ਗੁਣਾ ਵੱਧ ਹੈ। ਜੂਪੀਟਰ ਰਾਤ ਦੇ ਆਸਮਾਨ ਵਿੱਚ ਨੰਗੀ ਅੱਖ ਨਾਲ ਸਭ ਤੋਂ ਚਮਕਦਾਰ ਪਦਾਰਥਾਂ ਵਿੱਚੋਂ ਇੱਕ ਹੈ, ਅਤੇ ਇਹ ਪ੍ਰਾਚੀਨ ਸਭਿਆਚਾਰਾਂ ਨੂੰ ਇਤਿਹਾਸ ਤੋਂ ਪਹਿਲਾਂ ਤੋਂ ਜਾਣਿਆ ਗਿਆ ਹੈ।
**Summarize This**
ਸਿਖੇ ਗਏ ਸਿਖਲਾਈ ਦੇ ਸਿਖਰਲੇ 3 ਤੱਥ: | 1. ਜੂਪੀਟਰ ਸੂਰਜ ਤੋਂ ਪੰਜਵਾਂ ਗ੍ਰਹਿ ਹੈ ਅਤੇ ਸੂਰਜ ਮੰਡਲ ਵਿੱਚ ਸਭ ਤੋਂ ਵੱਡਾ ਗ੍ਰਹਿ ਹੈ।
2. ਇਹ ਇੱਕ ਗੈਸ ਜਾਇੰਟ ਹੈ ਜਿਸਦਾ ਭਾਰ ਸੂਰਜ ਦੇ ਭਾਰ ਦਾ ਇੱਕ ਹਜ਼ਾਰਵਾਂ ਹਿੱਸਾ ਹੈ...
3. ਜੂਪੀਟਰ ਪ੍ਰਾਚੀਨ ਸਮਿਆਂ ਤੋਂ ਨੰਗੀ ਅੱਖ ਨਾਲ ਦਿੱਖਾਈ ਦਿੰਦਾ ਹੈ ... | -| | | | - -### Prompt Templates - -ਇੱਕ ਪ੍ਰਾਂਪਟ ਟੈਮਪਲੇਟ ਇੱਕ _ਪਹਿਲਾਂ ਤੋਂ ਤਿਆਰ ਕੀਤਾ ਹੋਇਆ ਨੁਸਖਾ_ ਹੁੰਦਾ ਹੈ ਜੋ ਜਰੂਰਤ ਪੈਣ ‘ਤੇ ਸਟੋਰ ਅਤੇ ਦੁਬਾਰਾ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਤਾਂ ਜੋ ਵੱਡੇ ਪੱਧਰ ‘ਤੇ ਯੂਜ਼ਰ ਅਨੁਭਵਾਂ ਨੂੰ ਜ਼ਿਆਦਾ ਸਥਿਰ ਬਣਾਇਆ ਜਾ ਸਕੇ। ਇਸਦਾ ਸਭ ਤੋਂ ਸਧਾਰਣ ਰੂਪ ਇੱਕ ਪ੍ਰਾਂਪਟ ਉਦਾਹਰਣਾਂ ਦਾ ਸੰਗ੍ਰਹਿ ਹੁੰਦਾ ਹੈ ਜਿਵੇਂ [OpenAI ਵੱਲੋਂ ਇਹ ਉਦਾਹਰਣ](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) ਜੋ ਇੰਟਰਐਕਟਿਵ ਪ੍ਰਾਂਪਟ ਹਿੱਸਿਆਂ (ਯੂਜ਼ਰ ਅਤੇ ਸਿਸਟਮ ਸੁਨੇਹੇ) ਅਤੇ API-ਚਲਿਤ ਬੇਨਤੀ ਫਾਰਮੈਟ ਦੋਹਾਂ ਨੂੰ ਮੁਹੱਈਆ ਕਰਵਾਉਂਦਾ ਹੈ - ਦੁਬਾਰਾ ਵਰਤੋਂ ਲਈ ਸਹਾਇਕ। - -ਇਸਦੇ ਵਧੇਰੇ ਜਟਿਲ ਰੂਪ ਵਿੱਚ ਜਿਵੇਂ [LangChain ਵੱਲੋਂ ਇਹ ਉਦਾਹਰਣ](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst) ਵਿੱਚ _ਪਲੇਸਹੋਲਡਰ_ ਹੁੰਦੇ ਹਨ ਜੋ ਵੱਖ-ਵੱਖ ਸਰੋਤਾਂ (ਯੂਜ਼ਰ ਇਨਪੁੱਟ, ਸਿਸਟਮ ਸੰਦਰਭ, ਬਾਹਰੀ ਡੇਟਾ ਆਦਿ) ਤੋਂ ਡੇਟਾ ਨਾਲ ਬਦਲੇ ਜਾ ਸਕਦੇ ਹਨ, ਤਾਂ ਜੋ ਪ੍ਰਾਂਪਟ ਨੂੰ ਗਤੀਸ਼ੀਲ ਤਰੀਕੇ ਨਾਲ ਤਿਆਰ ਕੀਤਾ ਜਾ ਸਕੇ। ਇਸ ਨਾਲ ਅਸੀਂ ਦੁਬਾਰਾ ਵਰਤਣ ਯੋਗ ਪ੍ਰਾਂਪਟਾਂ ਦੀ ਲਾਇਬ੍ਰੇਰੀ ਬਣਾਉਂਦੇ ਹਾਂ ਜੋ **ਕਾਰਜਕਾਰੀ ਤੌਰ ‘ਤੇ** ਵੱਡੇ ਪੱਧਰ ‘ਤੇ ਸਥਿਰ ਯੂਜ਼ਰ ਅਨੁਭਵ ਚਲਾਉਣ ਲਈ ਵਰਤੀ ਜਾ ਸਕਦੀ ਹੈ। - -ਅੰਤ ਵਿੱਚ, ਟੈਮਪਲੇਟਾਂ ਦੀ ਅਸਲ ਕੀਮਤ ਇਸ ਗੱਲ ਵਿੱਚ ਹੈ ਕਿ ਅਸੀਂ ਵਰਟੀਕਲ ਐਪਲੀਕੇਸ਼ਨ ਖੇਤਰਾਂ ਲਈ _ਪ੍ਰਾਂਪਟ ਲਾਇਬ੍ਰੇਰੀਆਂ_ ਤਿਆਰ ਅਤੇ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰ ਸਕੀਏ - ਜਿੱਥੇ ਪ੍ਰਾਂਪਟ ਟੈਮਪਲੇਟ ਹੁਣ ਐਪਲੀਕੇਸ਼ਨ-ਵਿਸ਼ੇਸ਼ ਸੰਦਰਭ ਜਾਂ ਉਦਾਹਰਣਾਂ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਰੱਖ ਕੇ _ਸੰਵਾਰਿਆ_ ਜਾਂਦਾ ਹੈ, ਜੋ ਟਾਰਗੇਟ ਕੀਤੇ ਯੂਜ਼ਰ ਦਰਸ਼ਕਾਂ ਲਈ ਜ਼ਿਆਦਾ ਸਬੰਧਤ ਅਤੇ ਸਹੀ ਜਵਾਬ ਦਿੰਦਾ ਹੈ। [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) ਰਿਪੋਜ਼ਿਟਰੀ ਇਸ ਤਰੀਕੇ ਦੀ ਇੱਕ ਵਧੀਆ ਮਿਸਾਲ ਹੈ, ਜੋ ਸਿੱਖਿਆ ਖੇਤਰ ਲਈ ਪ੍ਰਾਂਪਟਾਂ ਦੀ ਲਾਇਬ੍ਰੇਰੀ ਬਣਾਉਂਦੀ ਹੈ ਜਿਸ ਵਿੱਚ ਪਾਠ ਯੋਜਨਾ, ਕਰਿਕੁਲਮ ਡਿਜ਼ਾਈਨ, ਵਿਦਿਆਰਥੀ ਟਿਊਟੋਰਿੰਗ ਵਰਗੇ ਮੁੱਖ ਉਦੇਸ਼ਾਂ ‘ਤੇ ਜ਼ੋਰ ਦਿੱਤਾ ਗਿਆ ਹੈ। - -## Supporting Content - -ਜੇ ਅਸੀਂ ਪ੍ਰਾਂਪਟ ਬਣਾਉਣ ਨੂੰ ਇੱਕ ਨਿਰਦੇਸ਼ (ਟਾਸਕ) ਅਤੇ ਇੱਕ ਟਾਰਗੇਟ (ਮੁੱਖ ਸਮੱਗਰੀ) ਵਜੋਂ ਵੇਖੀਏ, ਤਾਂ _ਦੁਸਰੀ ਸਮੱਗਰੀ_ ਉਹ ਵਾਧੂ ਸੰਦਰਭ ਹੁੰਦੀ ਹੈ ਜੋ ਅਸੀਂ **ਕਿਸੇ ਤਰੀਕੇ ਨਾਲ ਨਤੀਜੇ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕਰਨ ਲਈ** ਦਿੰਦੇ ਹਾਂ। ਇਹ ਟਿਊਨਿੰਗ ਪੈਰਾਮੀਟਰ, ਫਾਰਮੈਟਿੰਗ ਨਿਰਦੇਸ਼, ਵਿਸ਼ਾ ਵਰਗੀਕਰਨ ਆਦਿ ਹੋ ਸਕਦੇ ਹਨ ਜੋ ਮਾਡਲ ਨੂੰ ਆਪਣਾ ਜਵਾਬ ਯੂਜ਼ਰ ਦੀਆਂ ਉਮੀਦਾਂ ਜਾਂ ਲਕੜਾਂ ਦੇ ਅਨੁਕੂਲ ਬਣਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰਦੇ ਹਨ। - -ਉਦਾਹਰਣ ਵਜੋਂ: ਜੇ ਸਾਡੇ ਕੋਲ ਕੋਰਸ ਕੈਟਾਲੌਗ ਹੈ ਜਿਸ ਵਿੱਚ ਵਿਸਤ੍ਰਿਤ ਮੈਟਾਡੇਟਾ (ਨਾਂ, ਵਰਣਨ, ਪੱਧਰ, ਮੈਟਾਡੇਟਾ ਟੈਗ, ਇੰਸਟਰਕਟਰ ਆਦਿ) ਹੈ: - -- ਅਸੀਂ ਨਿਰਦੇਸ਼ ਦੇ ਸਕਦੇ ਹਾਂ "Fall 2023 ਲਈ ਕੋਰਸ ਕੈਟਾਲੌਗ ਦਾ ਸਾਰ ਸੰਖੇਪ ਕਰੋ" -- ਅਸੀਂ ਮੁੱਖ ਸਮੱਗਰੀ ਵਜੋਂ ਕੁਝ ਉਦਾਹਰਣਾਂ ਦੇ ਸਕਦੇ ਹਾਂ ਜੋ ਚਾਹੀਦੇ ਨਤੀਜੇ ਨੂੰ ਦਰਸਾਉਂਦੀਆਂ ਹਨ -- ਅਸੀਂ ਦੁਸਰੀ ਸਮੱਗਰੀ ਵਜੋਂ ਸਭ ਤੋਂ ਵੱਧ ਦਿਲਚਸਪੀ ਵਾਲੇ 5 "ਟੈਗ" ਪਛਾਣ ਸਕਦੇ ਹਾਂ। - -ਹੁਣ, ਮਾਡਲ ਕੁਝ ਉਦਾਹਰਣਾਂ ਵੱਲੋਂ ਦਿੱਤੇ ਫਾਰਮੈਟ ਵਿੱਚ ਸਾਰ ਦੇ ਸਕਦਾ ਹੈ - ਪਰ ਜੇ ਨਤੀਜੇ ਵਿੱਚ ਕਈ ਟੈਗ ਹਨ, ਤਾਂ ਇਹ ਦੁਸਰੀ ਸਮੱਗਰੀ ਵਿੱਚ ਪਛਾਣੇ 5 ਟੈਗਾਂ ਨੂੰ ਤਰਜੀਹ ਦੇ ਸਕਦਾ ਹੈ। - ---- - - - -## Prompting Best Practices - -ਹੁਣ ਜਦੋਂ ਅਸੀਂ ਜਾਣਦੇ ਹਾਂ ਕਿ ਪ੍ਰਾਂਪਟ ਕਿਵੇਂ _ਤਿਆਰ_ ਕੀਤੇ ਜਾਂਦੇ ਹਨ, ਅਸੀਂ ਸੋਚ ਸਕਦੇ ਹਾਂ ਕਿ ਉਨ੍ਹਾਂ ਨੂੰ _ਡਿਜ਼ਾਈਨ_ ਕਿਵੇਂ ਕਰਨਾ ਹੈ ਤਾਂ ਜੋ ਵਧੀਆ ਅਭਿਆਸਾਂ ਨੂੰ ਦਰਸਾਇਆ ਜਾ ਸਕੇ। ਅਸੀਂ ਇਸਨੂੰ ਦੋ ਹਿੱਸਿਆਂ ਵਿੱਚ ਸੋਚ ਸਕਦੇ ਹਾਂ - ਸਹੀ _ਮਨੋਭਾਵ_ ਰੱਖਣਾ ਅਤੇ ਸਹੀ _ਤਕਨੀਕਾਂ_ ਲਾਗੂ ਕਰਨਾ। - -### Prompt Engineering Mindset - -Prompt Engineering ਇੱਕ ਟ੍ਰਾਇਲ-ਐਂਡ-ਐਰਰ ਪ੍ਰਕਿਰਿਆ ਹੈ, ਇਸ ਲਈ ਤਿੰਨ ਵੱਡੇ ਮਾਰਗਦਰਸ਼ਕ ਤੱਤਾਂ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਰੱਖੋ: - -1. **ਡੋਮੇਨ ਦੀ ਸਮਝ ਜਰੂਰੀ ਹੈ।** ਜਵਾਬ ਦੀ ਸਹੀਤਾ ਅਤੇ ਸਬੰਧਤਾ ਉਸ _ਡੋਮੇਨ_ ‘ਤੇ ਨਿਰਭਰ ਕਰਦੀ ਹੈ ਜਿਸ ਵਿੱਚ ਐਪਲੀਕੇਸ਼ਨ ਜਾਂ ਯੂਜ਼ਰ ਕੰਮ ਕਰਦਾ ਹੈ। ਆਪਣੀ ਅੰਦਰੂਨੀ ਸਮਝ ਅਤੇ ਡੋਮੇਨ ਵਿਸ਼ੇਸ਼ ਗਿਆਨ ਨਾਲ **ਤਕਨੀਕਾਂ ਨੂੰ ਹੋਰ ਕਸਟਮਾਈਜ਼ ਕਰੋ**। ਉਦਾਹਰਣ ਵਜੋਂ, ਆਪਣੇ ਸਿਸਟਮ ਪ੍ਰਾਂਪਟਾਂ ਵਿੱਚ _ਡੋਮੇਨ-ਵਿਸ਼ੇਸ਼ ਪर्सਨਾਲਿਟੀਜ਼_ ਬਣਾਓ, ਜਾਂ ਯੂਜ਼ਰ ਪ੍ਰਾਂਪਟਾਂ ਵਿੱਚ _ਡੋਮੇਨ-ਵਿਸ਼ੇਸ਼ ਟੈਮਪਲੇਟ_ ਵਰਤੋ। ਦੁਸਰੀ ਸਮੱਗਰੀ ਵਿੱਚ ਡੋਮੇਨ-ਵਿਸ਼ੇਸ਼ ਸੰਦਰਭ ਦਿਓ, ਜਾਂ ਮਾਡਲ ਨੂੰ ਜਾਣੂ ਵਰਤੋਂ ਦੇ ਨਮੂਨੇ ਵੱਲ ਮਾਰਗਦਰਸ਼ਨ ਕਰਨ ਲਈ _ਡੋਮੇਨ-ਵਿਸ਼ੇਸ਼ ਸੰਕੇਤ ਅਤੇ ਉਦਾਹਰਣ_ ਵਰਤੋ। - -2. **ਮਾਡਲ ਦੀ ਸਮਝ ਜਰੂਰੀ ਹੈ।** ਅਸੀਂ ਜਾਣਦੇ ਹਾਂ ਕਿ ਮਾਡਲ ਕੁਦਰਤੀ ਤੌਰ ‘ਤੇ ਅਣਿਸ਼ਚਿਤ ਹੁੰਦੇ ਹਨ। ਪਰ ਮਾਡਲ ਦੀਆਂ ਇੰਪਲੀਮੈਂਟੇਸ਼ਨਾਂ ਵਿੱਚ ਵੀ ਫਰਕ ਹੋ ਸਕਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਉਹ ਕਿਹੜਾ ਟ੍ਰੇਨਿੰਗ ਡੇਟਾਸੈੱਟ ਵਰਤਦੇ ਹਨ (ਪਹਿਲਾਂ ਤੋਂ ਸਿੱਖਿਆ ਗਿਆ ਗਿਆਨ), ਉਹ ਕਿਹੜੀਆਂ ਸਮਰੱਥਾਵਾਂ ਦਿੰਦੇ ਹਨ (ਜਿਵੇਂ API ਜਾਂ SDK ਰਾਹੀਂ) ਅਤੇ ਉਹ ਕਿਸ ਕਿਸਮ ਦੀ ਸਮੱਗਰੀ ਲਈ ਅਨੁਕੂਲਿਤ ਹਨ (ਕੋਡ, ਚਿੱਤਰ, ਲਿਖਤ ਆਦਿ)। ਤੁਸੀਂ ਜੋ ਮਾਡਲ ਵਰਤ ਰਹੇ ਹੋ ਉਸ ਦੀਆਂ ਤਾਕਤਾਂ ਅਤੇ ਸੀਮਾਵਾਂ ਨੂੰ ਸਮਝੋ, ਅਤੇ ਇਸ ਗਿਆਨ ਨਾਲ _ਟਾਸਕਾਂ ਨੂੰ ਤਰਜੀਹ ਦਿਓ_ ਜਾਂ _ਕਸਟਮ ਟੈਮਪਲੇਟ_ ਬਣਾਓ ਜੋ ਮਾਡਲ ਦੀਆਂ ਸਮਰੱਥਾਵਾਂ ਲਈ ਅਨੁਕੂਲਿਤ ਹੋਣ। - -3. **ਦੋਹਰਾਈ ਅਤੇ ਪ੍ਰਮਾਣਿਕਤਾ ਜਰੂਰੀ ਹੈ।** ਮਾਡਲ ਤੇਜ਼ੀ ਨਾਲ ਵਿਕਸਤ ਹੋ ਰਹੇ ਹਨ, ਅਤੇ ਪ੍ਰਾਂਪਟ ਇੰਜੀਨੀਅਰਿੰਗ ਲਈ ਤਕਨੀਕਾਂ ਵੀ। ਇੱਕ ਡੋਮੇਨ ਵਿਸ਼ੇਸ਼ਜ્ઞ ਹੋਣ ਦੇ ਨਾਤੇ, ਤੁਹਾਡੇ ਕੋਲ ਹੋਰ ਸੰਦਰਭ ਜਾਂ ਮਾਪਦੰਡ ਹੋ ਸਕਦੇ ਹਨ ਜੋ ਵਿਆਪਕ ਸਮੁਦਾਇ ਲਈ ਲਾਗੂ ਨਹੀਂ ਹੁੰਦੇ। ਪ੍ਰਾਂਪਟ ਇੰਜੀਨੀਅਰਿੰਗ ਟੂਲਜ਼ ਅਤੇ ਤਕਨੀਕਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪ੍ਰਾਂਪਟ ਬਣਾਉਣ ਦੀ ਸ਼ੁਰੂਆਤ ਕਰੋ, ਫਿਰ ਆਪਣੇ ਅੰਦਰੂਨੀ ਗਿਆਨ ਅਤੇ ਡੋਮੇਨ ਵਿਸ਼ੇਸ਼ਤਾ ਨਾਲ ਨਤੀਜਿਆਂ ਨੂੰ ਦੋਹਰਾਓ ਅਤੇ ਪ੍ਰਮਾਣਿਤ ਕਰੋ। ਆਪਣੇ ਅਨੁਭਵਾਂ ਨੂੰ ਦਰਜ ਕਰੋ ਅਤੇ ਇੱਕ **ਗਿਆਨ ਅਧਾਰ** (ਜਿਵੇਂ ਪ੍ਰਾਂਪਟ ਲਾਇਬ੍ਰੇਰੀਆਂ) ਬਣਾਓ ਜੋ ਹੋਰਾਂ ਵੱਲੋਂ ਤੇਜ਼ ਦੁਹਰਾਈ ਲਈ ਨਵਾਂ ਮਿਆਰ ਬਣ ਸਕੇ। - -## Best Practices - -ਹੁਣ ਆਓ ਕੁਝ ਆਮ ਵਧੀਆ ਅਭਿਆਸਾਂ ਨੂੰ ਵੇਖੀਏ ਜੋ [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) ਅਤੇ [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst) ਦੇ ਪ੍ਰੈਕਟੀਸ਼ਨਰਾਂ ਵੱਲੋਂ ਸਿਫਾਰਸ਼ ਕੀਤੇ ਜਾਂਦੇ ਹਨ। - -| ਕੀ ਹੈ | ਕਿਉਂ | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| ਨਵੇਂ ਮਾਡਲਾਂ ਦਾ ਮੁਲਾਂਕਣ ਕਰੋ | ਨਵੇਂ ਮਾਡਲ ਜਨਰੇਸ਼ਨ ਵਿੱਚ ਬਿਹਤਰ ਫੀਚਰ ਅਤੇ ਗੁਣਵੱਤਾ ਹੋ ਸਕਦੀ ਹੈ - ਪਰ ਇਹ ਮਹਿੰਗੇ ਵੀ ਹੋ ਸਕਦੇ ਹਨ। ਪ੍ਰਭਾਵ ਦਾ ਮੁਲਾਂਕਣ ਕਰੋ, ਫਿਰ ਮਾਈਗ੍ਰੇਸ਼ਨ ਫੈਸਲੇ ਕਰੋ। | -| ਨਿਰਦੇਸ਼ ਅਤੇ ਸੰਦਰਭ ਨੂੰ ਵੱਖਰਾ ਕਰੋ | ਦੇਖੋ ਕਿ ਤੁਹਾਡਾ ਮਾਡਲ/ਪ੍ਰਦਾਤਾ ਨਿਰਦੇਸ਼, ਮੁੱਖ ਅਤੇ ਦੁਸਰੀ ਸਮੱਗਰੀ ਨੂੰ ਵੱਖ ਕਰਨ ਲਈ _ਡੈਲੀਮੀਟਰ_ ਦਿੰਦਾ ਹੈ ਕਿ ਨਹੀਂ। ਇਹ ਮਾਡਲਾਂ ਨੂੰ ਟੋਕਨਜ਼ ਨੂੰ ਜ਼ਿਆਦਾ ਸਹੀ ਤੌਰ ‘ਤੇ ਵਜ਼ਨ ਦੇਣ ਵਿੱਚ ਮਦਦ ਕਰ ਸਕਦਾ ਹੈ। | -| ਵਿਸ਼ੇਸ਼ ਅਤੇ ਸਪਸ਼ਟ ਰਹੋ | ਚਾਹੀਦੇ ਸੰਦਰਭ, ਨਤੀਜਾ, ਲੰਬਾਈ, ਫਾਰਮੈਟ, ਅੰਦਾਜ਼ ਆਦਿ ਬਾਰੇ ਹੋਰ ਵੇਰਵੇ ਦਿਓ। ਇਸ ਨਾਲ ਜਵਾਬਾਂ ਦੀ ਗੁਣਵੱਤਾ ਅਤੇ ਸਥਿਰਤਾ ਦੋਹਾਂ ਵਿੱਚ ਸੁਧਾਰ ਆਵੇਗਾ। ਰੀਯੂਜ਼ੇਬਲ ਟੈਮਪਲੇਟਾਂ ਵਿੱਚ ਨੁਸਖੇ ਕੈਪਚਰ ਕਰੋ। | -| ਵਰਣਨਾਤਮਕ ਰਹੋ, ਉਦਾਹਰਣ ਵਰਤੋ | ਮਾਡਲਾਂ ਨੂੰ "ਦਿਖਾਓ ਅਤੇ ਦੱਸੋ" ਤਰੀਕੇ ਨਾਲ ਜਵਾਬ ਦੇਣਾ ਵਧੀਆ ਲੱਗਦਾ ਹੈ। ਪਹਿਲਾਂ `zero-shot` ਤਰੀਕੇ ਨਾਲ ਨਿਰਦੇਸ਼ ਦਿਓ (ਬਿਨਾਂ ਉਦਾਹਰਣਾਂ ਦੇ), ਫਿਰ `few-shot` ਨਾਲ ਸੁਧਾਰ ਕਰੋ, ਜਿੱਥੇ ਕੁਝ ਉਦਾਹਰਣ ਦਿੱਤੇ ਜਾਂਦੇ ਹਨ। ਤੁਲਨਾਵਾਂ ਵਰਤੋ। | -| ਜਵਾਬ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਸੰਕੇਤ ਦਿਓ | ਮਾਡਲ ਨੂੰ ਚਾਹੀਦਾ ਨਤੀਜਾ ਵੱਲ ਧੱਕਣ ਲਈ ਕੁਝ ਸ਼ੁਰੂਆਤੀ ਸ਼ਬਦ ਜਾਂ ਵਾਕਾਂਸ਼ ਦਿਓ ਜੋ ਇਹ ਜਵਾਬ ਦੀ ਸ਼ੁਰੂਆਤ ਵਜੋਂ ਵਰਤ ਸਕੇ। | -| ਦੁਹਰਾਈ ਕਰੋ | ਕਈ ਵਾਰੀ ਮਾਡਲ ਨੂੰ ਸਮਝਾਉਣ ਲਈ ਆਪਣੀ ਗੱਲ ਦੁਹਰਾਉਣੀ ਪੈਂਦੀ ਹੈ। ਮੁੱਖ ਸਮੱਗਰੀ ਤੋਂ ਪਹਿਲਾਂ ਅਤੇ ਬਾਅਦ ਨਿਰਦੇਸ਼ ਦਿਓ, ਨਿਰਦੇਸ਼ ਅਤੇ ਸੰਕੇਤ ਦੋਹਾਂ ਵਰ - -**ਅਸਵੀਕਾਰੋਪਣ**: -ਇਹ ਦਸਤਾਵੇਜ਼ AI ਅਨੁਵਾਦ ਸੇਵਾ [Co-op Translator](https://github.com/Azure/co-op-translator) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀਅਤ ਲਈ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਰੱਖੋ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸਮਰਥਤਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼ ਆਪਣੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਪ੍ਰਮਾਣਿਕ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਤੋਂ ਉਤਪੰਨ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆ ਲਈ ਅਸੀਂ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ। \ No newline at end of file + + + + + + + diff --git a/translations/pa/09-building-image-applications/README.md b/translations/pa/09-building-image-applications/README.md index ac2d62e1d..8d5d7dd96 100644 --- a/translations/pa/09-building-image-applications/README.md +++ b/translations/pa/09-building-image-applications/README.md @@ -1,339 +1,12 @@ - -# ਇਮੇਜ ਜਨਰੇਸ਼ਨ ਐਪਲੀਕੇਸ਼ਨ ਬਣਾਉਣਾ - -[![Building Image Generation Applications](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.pa.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLM ਸਿਰਫ਼ ਟੈਕਸਟ ਜਨਰੇਸ਼ਨ ਤੱਕ ਸੀਮਿਤ ਨਹੀਂ ਹਨ। ਟੈਕਸਟ ਵਰਣਨਾਂ ਤੋਂ ਤਸਵੀਰਾਂ ਬਣਾਉਣਾ ਵੀ ਸੰਭਵ ਹੈ। ਤਸਵੀਰਾਂ ਇੱਕ ਮੋਡੈਲਿਟੀ ਵਜੋਂ ਕਈ ਖੇਤਰਾਂ ਵਿੱਚ ਬਹੁਤ ਲਾਭਦਾਇਕ ਹੋ ਸਕਦੀਆਂ ਹਨ, ਜਿਵੇਂ ਕਿ MedTech, ਆਰਕੀਟੈਕਚਰ, ਟੂਰਿਜ਼ਮ, ਗੇਮ ਡਿਵੈਲਪਮੈਂਟ ਅਤੇ ਹੋਰ। ਇਸ ਅਧਿਆਇ ਵਿੱਚ, ਅਸੀਂ ਦੋ ਸਭ ਤੋਂ ਪ੍ਰਸਿੱਧ ਇਮੇਜ ਜਨਰੇਸ਼ਨ ਮਾਡਲਾਂ, DALL-E ਅਤੇ Midjourney, ਬਾਰੇ ਜਾਣੂ ਹੋਵਾਂਗੇ। - -## ਪਰਿਚਯ - -ਇਸ ਪਾਠ ਵਿੱਚ ਅਸੀਂ ਕਵਰ ਕਰਾਂਗੇ: - -- ਇਮੇਜ ਜਨਰੇਸ਼ਨ ਅਤੇ ਇਸ ਦੀ ਲੋੜ ਕਿਉਂ ਹੈ। -- DALL-E ਅਤੇ Midjourney ਕੀ ਹਨ ਅਤੇ ਇਹ ਕਿਵੇਂ ਕੰਮ ਕਰਦੇ ਹਨ। -- ਤੁਸੀਂ ਕਿਵੇਂ ਇੱਕ ਇਮੇਜ ਜਨਰੇਸ਼ਨ ਐਪ ਬਣਾਉਂਦੇ ਹੋ। - -## ਸਿੱਖਣ ਦੇ ਲਕੜੇ - -ਇਸ ਪਾਠ ਨੂੰ ਪੂਰਾ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਤੁਸੀਂ ਸਮਰੱਥ ਹੋਵੋਗੇ: - -- ਇੱਕ ਇਮੇਜ ਜਨਰੇਸ਼ਨ ਐਪਲੀਕੇਸ਼ਨ ਬਣਾਉਣਾ। -- ਆਪਣੇ ਐਪ ਲਈ ਮੈਟਾ ਪ੍ਰਾਂਪਟਸ ਨਾਲ ਸੀਮਾਵਾਂ ਨਿਰਧਾਰਤ ਕਰਨਾ। -- DALL-E ਅਤੇ Midjourney ਨਾਲ ਕੰਮ ਕਰਨਾ। - -## ਇਮੇਜ ਜਨਰੇਸ਼ਨ ਐਪ ਬਣਾਉਣ ਦੀ ਲੋੜ ਕਿਉਂ? - -ਇਮੇਜ ਜਨਰੇਸ਼ਨ ਐਪਲੀਕੇਸ਼ਨ ਜਨਰੇਟਿਵ AI ਦੀਆਂ ਸਮਰੱਥਾਵਾਂ ਨੂੰ ਖੋਜਣ ਦਾ ਵਧੀਆ ਤਰੀਕਾ ਹਨ। ਇਹਨਾਂ ਨੂੰ ਉਦਾਹਰਨ ਵਜੋਂ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ: - -- **ਇਮੇਜ ਐਡਿਟਿੰਗ ਅਤੇ ਸਿੰਥੇਸਿਸ**। ਤੁਸੀਂ ਵੱਖ-ਵੱਖ ਮਕਸਦਾਂ ਲਈ ਤਸਵੀਰਾਂ ਬਣਾ ਸਕਦੇ ਹੋ, ਜਿਵੇਂ ਕਿ ਤਸਵੀਰ ਸੰਪਾਦਨ ਅਤੇ ਤਸਵੀਰ ਸਿੰਥੇਸਿਸ। - -- **ਕਈ ਉਦਯੋਗਾਂ ਵਿੱਚ ਲਾਗੂ**। ਇਹਨਾਂ ਨੂੰ Medtech, ਟੂਰਿਜ਼ਮ, ਗੇਮ ਡਿਵੈਲਪਮੈਂਟ ਅਤੇ ਹੋਰ ਉਦਯੋਗਾਂ ਲਈ ਤਸਵੀਰਾਂ ਬਣਾਉਣ ਲਈ ਵੀ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ। - -## ਸਥਿਤੀ: Edu4All - -ਇਸ ਪਾਠ ਦੇ ਹਿੱਸੇ ਵਜੋਂ, ਅਸੀਂ ਆਪਣੇ ਸਟਾਰਟਅਪ Edu4All ਨਾਲ ਕੰਮ ਜਾਰੀ ਰੱਖਾਂਗੇ। ਵਿਦਿਆਰਥੀ ਆਪਣੇ ਅਸਾਈਨਮੈਂਟ ਲਈ ਤਸਵੀਰਾਂ ਬਣਾਉਣਗੇ, ਜੋ ਕਿ ਉਹਨਾਂ ਦੀ ਰਚਨਾਤਮਕਤਾ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ। ਉਹ ਆਪਣੀ ਕਹਾਣੀ ਲਈ ਇਲਸਟਰੈਸ਼ਨ ਬਣਾ ਸਕਦੇ ਹਨ, ਨਵਾਂ ਕਿਰਦਾਰ ਤਿਆਰ ਕਰ ਸਕਦੇ ਹਨ ਜਾਂ ਆਪਣੇ ਵਿਚਾਰਾਂ ਅਤੇ ਸੰਕਲਪਾਂ ਨੂੰ ਵਿਜ਼ੂਅਲਾਈਜ਼ ਕਰ ਸਕਦੇ ਹਨ। - -ਜੇਕਰ ਵਿਦਿਆਰਥੀ ਕਲਾਸ ਵਿੱਚ ਮੋਨੂਮੈਂਟਸ 'ਤੇ ਕੰਮ ਕਰ ਰਹੇ ਹਨ, ਤਾਂ ਉਹ ਕੁਝ ਇਸ ਤਰ੍ਹਾਂ ਤਸਵੀਰਾਂ ਬਣਾ ਸਕਦੇ ਹਨ: - -![Edu4All startup, class on monuments, Eiffel Tower](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.pa.png) - -ਇਸ ਪ੍ਰਾਂਪਟ ਨਾਲ: - -> "Dog next to Eiffel Tower in early morning sunlight" - -## DALL-E ਅਤੇ Midjourney ਕੀ ਹਨ? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) ਅਤੇ [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) ਦੋ ਸਭ ਤੋਂ ਪ੍ਰਸਿੱਧ ਇਮੇਜ ਜਨਰੇਸ਼ਨ ਮਾਡਲ ਹਨ, ਜੋ ਪ੍ਰਾਂਪਟ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਤਸਵੀਰਾਂ ਬਣਾਉਂਦੇ ਹਨ। - -### DALL-E - -ਆਓ DALL-E ਨਾਲ ਸ਼ੁਰੂ ਕਰੀਏ, ਜੋ ਕਿ ਇੱਕ ਜਨਰੇਟਿਵ AI ਮਾਡਲ ਹੈ ਜੋ ਟੈਕਸਟ ਵਰਣਨਾਂ ਤੋਂ ਤਸਵੀਰਾਂ ਬਣਾਉਂਦਾ ਹੈ। - -> [DALL-E ਦੋ ਮਾਡਲਾਂ, CLIP ਅਤੇ diffused attention, ਦਾ ਮਿਲਾਪ ਹੈ](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst)। - -- **CLIP**, ਇੱਕ ਮਾਡਲ ਹੈ ਜੋ ਤਸਵੀਰਾਂ ਅਤੇ ਟੈਕਸਟ ਤੋਂ ਡਾਟਾ ਦੇ ਨੰਬਰਾਤਮਕ ਪ੍ਰਤੀਨਿਧੀਆਂ (ਐਮਬੈਡਿੰਗਜ਼) ਬਣਾਉਂਦਾ ਹੈ। - -- **Diffused attention**, ਇੱਕ ਮਾਡਲ ਹੈ ਜੋ ਐਮਬੈਡਿੰਗਜ਼ ਤੋਂ ਤਸਵੀਰਾਂ ਬਣਾਉਂਦਾ ਹੈ। DALL-E ਨੂੰ ਤਸਵੀਰਾਂ ਅਤੇ ਟੈਕਸਟ ਦੇ ਡਾਟਾਸੈੱਟ 'ਤੇ ਟ੍ਰੇਨ ਕੀਤਾ ਗਿਆ ਹੈ ਅਤੇ ਇਹ ਟੈਕਸਟ ਵਰਣਨਾਂ ਤੋਂ ਤਸਵੀਰਾਂ ਬਣਾਉਣ ਲਈ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ। ਉਦਾਹਰਨ ਵਜੋਂ, DALL-E ਇੱਕ ਟੋਪੀ ਵਾਲੀ ਬਿੱਲੀ ਜਾਂ ਮੋਹਾਕ ਵਾਲੇ ਕੁੱਤੇ ਦੀ ਤਸਵੀਰ ਬਣਾ ਸਕਦਾ ਹੈ। - -### Midjourney - -Midjourney ਵੀ DALL-E ਵਾਂਗ ਹੀ ਕੰਮ ਕਰਦਾ ਹੈ, ਇਹ ਟੈਕਸਟ ਪ੍ਰਾਂਪਟ ਤੋਂ ਤਸਵੀਰਾਂ ਬਣਾਉਂਦਾ ਹੈ। Midjourney ਨਾਲ ਵੀ ਤੁਸੀਂ “a cat in a hat” ਜਾਂ “dog with a mohawk” ਵਰਗੇ ਪ੍ਰਾਂਪਟ ਨਾਲ ਤਸਵੀਰਾਂ ਬਣਾ ਸਕਦੇ ਹੋ। - -![Image generated by Midjourney, mechanical pigeon](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_ਤਸਵੀਰ ਦਾ ਸਰੋਤ: ਵਿਕੀਪੀਡੀਆ, Midjourney ਦੁਆਰਾ ਬਣਾਈ ਗਈ ਤਸਵੀਰ_ - -## DALL-E ਅਤੇ Midjourney ਕਿਵੇਂ ਕੰਮ ਕਰਦੇ ਹਨ - -ਸਭ ਤੋਂ ਪਹਿਲਾਂ, [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst)। DALL-E ਇੱਕ ਜਨਰੇਟਿਵ AI ਮਾਡਲ ਹੈ ਜੋ ਟ੍ਰਾਂਸਫਾਰਮਰ ਆਰਕੀਟੈਕਚਰ 'ਤੇ ਆਧਾਰਿਤ ਹੈ ਅਤੇ ਇਸ ਵਿੱਚ _autoregressive transformer_ ਹੁੰਦਾ ਹੈ। - -ਇੱਕ _autoregressive transformer_ ਇਹ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ ਕਿ ਮਾਡਲ ਟੈਕਸਟ ਵਰਣਨਾਂ ਤੋਂ ਕਿਵੇਂ ਤਸਵੀਰਾਂ ਬਣਾਉਂਦਾ ਹੈ। ਇਹ ਇੱਕ ਵਾਰੀ ਇੱਕ ਪਿਕਸਲ ਬਣਾਉਂਦਾ ਹੈ, ਫਿਰ ਉਸ ਪਿਕਸਲ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਗਲਾ ਪਿਕਸਲ ਬਣਾਉਂਦਾ ਹੈ। ਇਹ ਪ੍ਰਕਿਰਿਆ ਨਿਊਰਲ ਨੈੱਟਵਰਕ ਦੀਆਂ ਕਈ ਪਰਤਾਂ ਵਿੱਚੋਂ ਲੰਘਦੀ ਹੈ, ਜਦ ਤੱਕ ਤਸਵੀਰ ਪੂਰੀ ਨਹੀਂ ਹੋ ਜਾਂਦੀ। - -ਇਸ ਪ੍ਰਕਿਰਿਆ ਨਾਲ, DALL-E ਤਸਵੀਰ ਵਿੱਚ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ, ਵਸਤੂਆਂ, ਲੱਛਣਾਂ ਅਤੇ ਹੋਰ ਬਹੁਤ ਕੁਝ ਨਿਯੰਤਰਿਤ ਕਰਦਾ ਹੈ। ਹਾਲਾਂਕਿ, DALL-E 2 ਅਤੇ 3 ਵਿੱਚ ਤਸਵੀਰ ਉੱਤੇ ਹੋਰ ਵਧੀਆ ਨਿਯੰਤਰਣ ਹੁੰਦਾ ਹੈ। - -## ਆਪਣਾ ਪਹਿਲਾ ਇਮੇਜ ਜਨਰੇਸ਼ਨ ਐਪ ਬਣਾਉਣਾ - -ਇਮੇਜ ਜਨਰੇਸ਼ਨ ਐਪ ਬਣਾਉਣ ਲਈ ਤੁਹਾਨੂੰ ਹੇਠਾਂ ਦਿੱਤੀਆਂ ਲਾਇਬ੍ਰੇਰੀਆਂ ਦੀ ਲੋੜ ਪਵੇਗੀ: - -- **python-dotenv**, ਇਹ ਲਾਇਬ੍ਰੇਰੀ ਤੁਹਾਡੇ ਸਿਕ੍ਰੇਟ _.env_ ਫਾਇਲ ਵਿੱਚ ਸੁਰੱਖਿਅਤ ਰੱਖਣ ਲਈ ਬਹੁਤ ਸਿਫਾਰਸ਼ੀ ਹੈ। -- **openai**, ਇਹ ਲਾਇਬ੍ਰੇਰੀ OpenAI API ਨਾਲ ਇੰਟਰੈਕਟ ਕਰਨ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਹੈ। -- **pillow**, Python ਵਿੱਚ ਤਸਵੀਰਾਂ ਨਾਲ ਕੰਮ ਕਰਨ ਲਈ। -- **requests**, HTTP ਰਿਕਵੈਸਟ ਕਰਨ ਵਿੱਚ ਮਦਦ ਲਈ। - -1. _.env_ ਨਾਮਕ ਫਾਇਲ ਬਣਾਓ ਅਤੇ ਹੇਠਾਂ ਦਿੱਤਾ ਸਮੱਗਰੀ ਪਾਓ: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - ਇਹ ਜਾਣਕਾਰੀ Azure Portal ਵਿੱਚ "Keys and Endpoint" ਸੈਕਸ਼ਨ ਵਿੱਚ ਮਿਲੇਗੀ। - -1. ਉਪਰੋਕਤ ਲਾਇਬ੍ਰੇਰੀਆਂ ਨੂੰ _requirements.txt_ ਫਾਇਲ ਵਿੱਚ ਇਕੱਠਾ ਕਰੋ: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. ਫਿਰ, ਵਰਚੁਅਲ ਇਨਵਾਇਰਨਮੈਂਟ ਬਣਾਓ ਅਤੇ ਲਾਇਬ੍ਰੇਰੀਆਂ ਇੰਸਟਾਲ ਕਰੋ: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Windows ਲਈ, ਵਰਚੁਅਲ ਇਨਵਾਇਰਨਮੈਂਟ ਬਣਾਉਣ ਅਤੇ ਐਕਟੀਵੇਟ ਕਰਨ ਲਈ ਹੇਠਾਂ ਦਿੱਤੇ ਕਮਾਂਡ ਵਰਤੋ: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. _app.py_ ਨਾਮਕ ਫਾਇਲ ਵਿੱਚ ਹੇਠਾਂ ਦਿੱਤਾ ਕੋਡ ਸ਼ਾਮਲ ਕਰੋ: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -ਆਓ ਇਸ ਕੋਡ ਨੂੰ ਸਮਝੀਏ: - -- ਸਭ ਤੋਂ ਪਹਿਲਾਂ, ਅਸੀਂ ਲਾਇਬ੍ਰੇਰੀਆਂ ਇੰਪੋਰਟ ਕਰਦੇ ਹਾਂ, ਜਿਵੇਂ ਕਿ OpenAI, dotenv, requests ਅਤੇ Pillow। - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- ਫਿਰ, ਅਸੀਂ _.env_ ਫਾਇਲ ਤੋਂ ਵਾਤਾਵਰਣ ਵੈਰੀਏਬਲ ਲੋਡ ਕਰਦੇ ਹਾਂ। - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- ਇਸ ਤੋਂ ਬਾਅਦ, ਅਸੀਂ OpenAI API ਲਈ endpoint, key, ਵਰਜਨ ਅਤੇ ਕਿਸਮ ਸੈੱਟ ਕਰਦੇ ਹਾਂ। - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- ਫਿਰ, ਅਸੀਂ ਤਸਵੀਰ ਜਨਰੇਟ ਕਰਦੇ ਹਾਂ: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - ਉਪਰੋਕਤ ਕੋਡ ਇੱਕ JSON ਆਬਜੈਕਟ ਵਾਪਸ ਕਰਦਾ ਹੈ ਜਿਸ ਵਿੱਚ ਬਣਾਈ ਗਈ ਤਸਵੀਰ ਦਾ URL ਹੁੰਦਾ ਹੈ। ਅਸੀਂ ਇਸ URL ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਤਸਵੀਰ ਡਾਊਨਲੋਡ ਕਰ ਸਕਦੇ ਹਾਂ ਅਤੇ ਫਾਇਲ ਵਿੱਚ ਸੇਵ ਕਰ ਸਕਦੇ ਹਾਂ। - -- ਆਖਿਰ ਵਿੱਚ, ਅਸੀਂ ਤਸਵੀਰ ਖੋਲ੍ਹਦੇ ਹਾਂ ਅਤੇ ਸਧਾਰਣ ਇਮੇਜ ਵਿਊਅਰ ਨਾਲ ਦਿਖਾਉਂਦੇ ਹਾਂ: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### ਤਸਵੀਰ ਜਨਰੇਸ਼ਨ ਕੋਡ ਬਾਰੇ ਹੋਰ ਜਾਣਕਾਰੀ - -ਆਓ ਤਸਵੀਰ ਬਣਾਉਣ ਵਾਲੇ ਕੋਡ ਨੂੰ ਵਧੇਰੇ ਵਿਸਥਾਰ ਨਾਲ ਵੇਖੀਏ: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt**, ਉਹ ਟੈਕਸਟ ਪ੍ਰਾਂਪਟ ਹੈ ਜੋ ਤਸਵੀਰ ਬਣਾਉਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਇਸ ਮਾਮਲੇ ਵਿੱਚ, ਅਸੀਂ ਪ੍ਰਾਂਪਟ "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils" ਵਰਤ ਰਹੇ ਹਾਂ। -- **size**, ਤਸਵੀਰ ਦਾ ਆਕਾਰ ਹੈ ਜੋ ਬਣਾਈ ਜਾ ਰਹੀ ਹੈ। ਇਸ ਮਾਮਲੇ ਵਿੱਚ, ਅਸੀਂ 1024x1024 ਪਿਕਸਲ ਦੀ ਤਸਵੀਰ ਬਣਾ ਰਹੇ ਹਾਂ। -- **n**, ਤਸਵੀਰਾਂ ਦੀ ਗਿਣਤੀ ਹੈ ਜੋ ਬਣਾਈਆਂ ਜਾ ਰਹੀਆਂ ਹਨ। ਇਸ ਮਾਮਲੇ ਵਿੱਚ, ਅਸੀਂ ਦੋ ਤਸਵੀਰਾਂ ਬਣਾ ਰਹੇ ਹਾਂ। -- **temperature**, ਇਹ ਪੈਰਾਮੀਟਰ ਜਨਰੇਟਿਵ AI ਮਾਡਲ ਦੇ ਆਉਟਪੁੱਟ ਦੀ ਬੇਤਰਤੀਬੀ ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਦਾ ਹੈ। ਇਹ 0 ਤੋਂ 1 ਦੇ ਵਿਚਕਾਰ ਹੁੰਦਾ ਹੈ, ਜਿੱਥੇ 0 ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਨਤੀਜਾ ਨਿਰਧਾਰਿਤ ਹੈ ਅਤੇ 1 ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਨਤੀਜਾ ਬੇਤਰਤੀਬੀ ਹੈ। ਡਿਫਾਲਟ ਮੁੱਲ 0.7 ਹੈ। - -ਅਗਲੇ ਭਾਗ ਵਿੱਚ ਅਸੀਂ ਤਸਵੀਰਾਂ ਨਾਲ ਹੋਰ ਕੀ ਕਰ ਸਕਦੇ ਹਾਂ, ਇਸ ਬਾਰੇ ਜਾਣੂ ਹੋਵਾਂਗੇ। - -## ਇਮੇਜ ਜਨਰੇਸ਼ਨ ਦੀਆਂ ਵਾਧੂ ਸਮਰੱਥਾਵਾਂ - -ਹੁਣ ਤੱਕ ਤੁਸੀਂ ਦੇਖਿਆ ਕਿ ਅਸੀਂ ਕੁਝ ਲਾਈਨਾਂ ਕੋਡ ਨਾਲ ਕਿਵੇਂ ਤਸਵੀਰ ਬਣਾਈ। ਪਰ ਤਸਵੀਰਾਂ ਨਾਲ ਹੋਰ ਵੀ ਕਈ ਕੰਮ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ। - -ਤੁਸੀਂ ਹੇਠਾਂ ਦਿੱਤੇ ਕੰਮ ਵੀ ਕਰ ਸਕਦੇ ਹੋ: - -- **ਸੰਪਾਦਨ ਕਰੋ**। ਮੌਜੂਦਾ ਤਸਵੀਰ ਨੂੰ ਮਾਸਕ ਅਤੇ ਪ੍ਰਾਂਪਟ ਦੇ ਕੇ ਬਦਲਿਆ ਜਾ ਸਕਦਾ ਹੈ। ਉਦਾਹਰਨ ਵਜੋਂ, ਤੁਸੀਂ ਤਸਵੀਰ ਦੇ ਕਿਸੇ ਹਿੱਸੇ ਵਿੱਚ ਕੁਝ ਜੋੜ ਸਕਦੇ ਹੋ। ਸੋਚੋ ਕਿ ਸਾਡੀ ਖਰਗੋਸ਼ ਦੀ ਤਸਵੀਰ ਵਿੱਚ ਤੁਸੀਂ ਖਰਗੋਸ਼ ਨੂੰ ਟੋਪੀ ਪਹਿਨਾ ਸਕਦੇ ਹੋ। ਇਹ ਕਰਨ ਲਈ, ਤੁਸੀਂ ਤਸਵੀਰ, ਮਾਸਕ (ਜੋ ਬਦਲਾਅ ਵਾਲੇ ਹਿੱਸੇ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ) ਅਤੇ ਟੈਕਸਟ ਪ੍ਰਾਂਪਟ ਦਿੰਦੇ ਹੋ। - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - ਮੁਢਲੀ ਤਸਵੀਰ ਵਿੱਚ ਸਿਰਫ ਖਰਗੋਸ਼ ਹੋਵੇਗਾ ਪਰ ਅੰਤਿਮ ਤਸਵੀਰ ਵਿੱਚ ਖਰਗੋਸ਼ ਦੇ ਸਿਰ 'ਤੇ ਟੋਪੀ ਹੋਵੇਗੀ। - -- **ਵੈਰੀਏਸ਼ਨ ਬਣਾਓ**। ਮੌਜੂਦਾ ਤਸਵੀਰ ਲੈ ਕੇ ਉਸ ਦੀਆਂ ਵੱਖ-ਵੱਖ ਵੈਰੀਏਸ਼ਨ ਬਣਾਈਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ। ਵੈਰੀਏਸ਼ਨ ਬਣਾਉਣ ਲਈ, ਤੁਸੀਂ ਤਸਵੀਰ ਅਤੇ ਟੈਕਸਟ ਪ੍ਰਾਂਪਟ ਦਿੰਦੇ ਹੋ ਅਤੇ ਕੋਡ ਵਰਤਦੇ ਹੋ: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > ਨੋਟ: ਇਹ ਸਿਰਫ OpenAI 'ਤੇ ਸਮਰਥਿਤ ਹੈ - -## Temperature - -Temperature ਇੱਕ ਪੈਰਾਮੀਟਰ ਹੈ ਜੋ ਜਨਰੇਟਿਵ AI ਮਾਡਲ ਦੇ ਨਤੀਜੇ ਦੀ ਬੇਤਰਤੀਬੀ ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਦਾ ਹੈ। ਇਹ 0 ਤੋਂ 1 ਦੇ ਵਿਚਕਾਰ ਹੁੰਦਾ ਹੈ, ਜਿੱਥੇ 0 ਦਾ ਮਤਲਬ ਹੈ ਨਤੀਜਾ ਨਿਰਧਾਰਿਤ ਅਤੇ 1 ਦਾ ਮਤਲਬ ਹੈ ਨਤੀਜਾ ਬੇਤਰਤੀਬੀ। ਡਿਫਾਲਟ ਮੁੱਲ 0.7 ਹੈ। - -ਆਓ temperature ਦੇ ਕੰਮ ਕਰਨ ਦਾ ਉਦਾਹਰਨ ਦੇਖੀਏ, ਇਸ ਪ੍ਰਾਂਪਟ ਨੂੰ ਦੋ ਵਾਰੀ ਚਲਾਕੇ: - -> ਪ੍ਰਾਂਪਟ: "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils" - -![Bunny on a horse holding a lollipop, version 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.pa.png) - -ਹੁਣ ਇਸੇ ਪ੍ਰਾਂਪਟ ਨੂੰ ਦੁਬਾਰਾ ਚਲਾਈਏ ਤਾਂ ਕਿ ਅਸੀਂ ਵੇਖ ਸਕੀਏ ਕਿ ਦੋ ਵਾਰੀ ਇੱਕੋ ਤਸਵੀਰ ਨਹੀਂ ਮਿਲੇਗੀ: - -![Generated image of bunny on horse](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.pa.png) - -ਜਿਵੇਂ ਤੁਸੀਂ ਵੇਖ ਸਕਦੇ ਹੋ, ਤਸਵੀਰਾਂ ਮਿਲਦੀਆਂ-ਜੁਲਦੀਆਂ ਹਨ ਪਰ ਇਕੋ ਨਹੀਂ। ਹੁਣ temperature ਮੁੱਲ 0.1 ਕਰਕੇ ਦੇਖੀਏ ਕਿ ਕੀ ਹੁੰਦਾ ਹੈ: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Temperature ਬਦਲਣਾ - -ਆਓ ਜਵਾਬ ਨੂੰ ਹੋਰ ਨਿਰਧਾਰਿਤ ਬਣਾਈਏ। ਅਸੀਂ ਦੋ ਤਸਵੀਰਾਂ ਵਿੱਚ ਦੇਖਿਆ ਕਿ ਪਹਿਲੀ ਵਿੱਚ ਖਰਗੋਸ਼ ਹੈ ਅਤੇ ਦੂਜੀ ਵਿੱਚ ਘੋੜਾ, ਇਸ ਲਈ ਤਸਵੀਰਾਂ ਵਿੱਚ ਵੱਡਾ ਫਰਕ ਹੈ। - -ਇਸ ਲਈ ਅਸੀਂ ਕੋਡ ਬਦਲ ਕੇ temperature ਨੂੰ 0 ਕਰਦੇ ਹਾਂ: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -ਹੁਣ ਜਦੋਂ ਤੁਸੀਂ ਇਹ ਕੋਡ ਚਲਾਓਗੇ, ਤਾਂ ਤੁਹਾਨੂੰ ਇਹ ਦੋ ਤਸਵੀਰਾਂ ਮਿਲਣਗੀਆਂ: - -- ![Temperature 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.pa.png) -- ![Temperature 0 , v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.pa.png) - -ਇੱਥੇ ਤੁਸੀਂ ਸਾਫ਼ ਦੇਖ ਸਕਦੇ ਹੋ ਕਿ ਤਸਵੀਰਾਂ ਇੱਕ ਦੂਜੇ ਨਾਲ ਜ਼ਿਆਦਾ ਮਿਲਦੀਆਂ ਹਨ। - -## ਮੈਟਾਪ੍ਰਾਂਪਟਸ ਨਾਲ ਆਪਣੇ ਐਪ ਲਈ ਸੀਮਾਵਾਂ ਨਿਰਧਾਰਤ ਕਰਨਾ - -ਸਾਡੇ ਡੈਮੋ ਨਾਲ, ਅਸੀਂ ਪਹਿਲਾਂ ਹੀ ਆਪਣੇ ਕਲਾਇੰਟਾਂ ਲਈ ਤਸਵੀਰਾਂ ਬਣਾ ਸਕਦੇ ਹਾਂ। ਪਰ ਸਾਨੂੰ ਆਪਣੇ ਐਪ ਲਈ ਕੁਝ ਸੀਮਾਵਾਂ ਬਣਾਉਣੀਆਂ ਪੈਣਗੀਆਂ। - -ਉਦਾਹਰਨ ਵਜੋਂ, ਅਸੀਂ ਐਸੀ ਤਸਵੀਰਾਂ ਨਹੀਂ ਬਣਾਉਣਾ ਚਾਹੁੰਦੇ ਜੋ ਕੰਮ ਲਈ ਸੁਰੱਖਿਅਤ ਨਾ ਹੋਣ ਜਾਂ ਬੱਚਿਆਂ ਲਈ ਢੁਕਵਾਂ ਨਾ ਹੋਣ। - -ਇਹ ਅਸੀਂ _ਮੈਟਾਪ੍ਰਾਂਪਟਸ_ ਨਾਲ ਕਰ ਸਕਦੇ ਹਾਂ। ਮੈਟਾਪ੍ਰਾਂਪਟਸ ਉਹ ਟੈਕਸਟ ਪ੍ਰਾਂਪਟ ਹੁੰਦੇ ਹਨ ਜੋ ਜਨਰੇਟਿਵ AI ਮਾਡਲ ਦੇ ਨਤੀਜੇ ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਨ ਲਈ ਵਰਤੇ ਜਾਂਦੇ ਹਨ। ਉਦਾਹਰਨ ਵਜੋਂ, ਅਸੀਂ ਮੈਟਾਪ੍ਰ - -**ਅਸਵੀਕਾਰੋਪਣ**: -ਇਹ ਦਸਤਾਵੇਜ਼ AI ਅਨੁਵਾਦ ਸੇਵਾ [Co-op Translator](https://github.com/Azure/co-op-translator) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀਤਾ ਲਈ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਰੱਖੋ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸਮਰਥਤਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼ ਆਪਣੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਪ੍ਰਮਾਣਿਕ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਤੋਂ ਉਤਪੰਨ ਕਿਸੇ ਵੀ ਗਲਤਫਹਮੀ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆ ਲਈ ਅਸੀਂ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ। \ No newline at end of file + + + + diff --git a/translations/pa/12-designing-ux-for-ai-applications/README.md b/translations/pa/12-designing-ux-for-ai-applications/README.md index 03d09160f..fd6d0fd54 100644 --- a/translations/pa/12-designing-ux-for-ai-applications/README.md +++ b/translations/pa/12-designing-ux-for-ai-applications/README.md @@ -1,118 +1,11 @@ - -# Designing UX for AI Applications - -[![Designing UX for AI Applications](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.pa.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(ਇਸ ਪਾਠ ਦਾ ਵੀਡੀਓ ਦੇਖਣ ਲਈ ਉਪਰ ਦਿੱਤੀ ਤਸਵੀਰ 'ਤੇ ਕਲਿੱਕ ਕਰੋ)_ - -ਯੂਜ਼ਰ ਅਨੁਭਵ ਐਪ ਬਣਾਉਣ ਦਾ ਇੱਕ ਬਹੁਤ ਹੀ ਮਹੱਤਵਪੂਰਨ ਪਹਲੂ ਹੈ। ਯੂਜ਼ਰਾਂ ਨੂੰ ਤੁਹਾਡਾ ਐਪ ਇਸ ਤਰ੍ਹਾਂ ਵਰਤਣਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਉਹ ਆਪਣੇ ਕੰਮ ਤੇਜ਼ੀ ਨਾਲ ਕਰ ਸਕਣ। ਤੇਜ਼ ਹੋਣਾ ਇੱਕ ਗੱਲ ਹੈ ਪਰ ਤੁਹਾਨੂੰ ਐਪ ਇਸ ਤਰ੍ਹਾਂ ਡਿਜ਼ਾਈਨ ਕਰਨੇ ਚਾਹੀਦੇ ਹਨ ਕਿ ਉਹ ਹਰ ਕਿਸੇ ਲਈ ਵਰਤਣ ਯੋਗ ਹੋਣ, ਤਾਂ ਜੋ ਉਹ _ਸੁਗਮ_ ਬਣ ਸਕਣ। ਇਹ ਅਧਿਆਇ ਇਸ ਖੇਤਰ 'ਤੇ ਧਿਆਨ ਦੇਵੇਗਾ ਤਾਂ ਜੋ ਤੁਸੀਂ ਅਜਿਹਾ ਐਪ ਡਿਜ਼ਾਈਨ ਕਰ ਸਕੋ ਜੋ ਲੋਕ ਵਰਤਣਾ ਚਾਹੁੰਦੇ ਹੋਣ ਅਤੇ ਵਰਤ ਸਕਣ। - -## ਪਰਿਚਯ - -ਯੂਜ਼ਰ ਅਨੁਭਵ ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਕਿਸੇ ਯੂਜ਼ਰ ਦਾ ਕਿਸੇ ਖਾਸ ਉਤਪਾਦ ਜਾਂ ਸੇਵਾ ਨਾਲ ਕਿਵੇਂ ਇੰਟਰੈਕਟ ਕਰਨਾ ਅਤੇ ਵਰਤਣਾ ਹੈ, ਚਾਹੇ ਉਹ ਕੋਈ ਸਿਸਟਮ, ਟੂਲ ਜਾਂ ਡਿਜ਼ਾਈਨ ਹੋਵੇ। AI ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਵਿਕਸਿਤ ਕਰਦੇ ਸਮੇਂ, ਡਿਵੈਲਪਰ ਸਿਰਫ ਯੂਜ਼ਰ ਅਨੁਭਵ ਨੂੰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਬਣਾਉਣ 'ਤੇ ਹੀ ਨਹੀਂ, ਸਗੋਂ ਨੈਤਿਕਤਾ 'ਤੇ ਵੀ ਧਿਆਨ ਦਿੰਦੇ ਹਨ। ਇਸ ਪਾਠ ਵਿੱਚ, ਅਸੀਂ ਕਿਵੇਂ Artificial Intelligence (AI) ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਬਣਾਇਆ ਜਾਵੇ ਜੋ ਯੂਜ਼ਰ ਦੀਆਂ ਜ਼ਰੂਰਤਾਂ ਨੂੰ ਪੂਰਾ ਕਰਦੀਆਂ ਹਨ, ਇਸ ਬਾਰੇ ਗੱਲ ਕਰਾਂਗੇ। - -ਇਸ ਪਾਠ ਵਿੱਚ ਹੇਠ ਲਿਖੇ ਖੇਤਰਾਂ ਨੂੰ ਕਵਰ ਕੀਤਾ ਜਾਵੇਗਾ: - -- ਯੂਜ਼ਰ ਅਨੁਭਵ ਦਾ ਪਰਿਚਯ ਅਤੇ ਯੂਜ਼ਰ ਦੀਆਂ ਜ਼ਰੂਰਤਾਂ ਨੂੰ ਸਮਝਣਾ -- ਭਰੋਸਾ ਅਤੇ ਪਾਰਦਰਸ਼ਤਾ ਲਈ AI ਐਪਲੀਕੇਸ਼ਨਾਂ ਦਾ ਡਿਜ਼ਾਈਨ -- ਸਹਿਯੋਗ ਅਤੇ ਫੀਡਬੈਕ ਲਈ AI ਐਪਲੀਕੇਸ਼ਨਾਂ ਦਾ ਡਿਜ਼ਾਈਨ - -## ਸਿੱਖਣ ਦੇ ਲਕੜ - -ਇਸ ਪਾਠ ਨੂੰ ਲੈਣ ਤੋਂ ਬਾਅਦ, ਤੁਸੀਂ ਸਮਰੱਥ ਹੋਵੋਗੇ: - -- ਸਮਝਣਾ ਕਿ ਕਿਵੇਂ AI ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਬਣਾਇਆ ਜਾਵੇ ਜੋ ਯੂਜ਼ਰ ਦੀਆਂ ਜ਼ਰੂਰਤਾਂ ਨੂੰ ਪੂਰਾ ਕਰਦੀਆਂ ਹਨ। -- ਐਸੇ AI ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਡਿਜ਼ਾਈਨ ਕਰਨਾ ਜੋ ਭਰੋਸਾ ਅਤੇ ਸਹਿਯੋਗ ਨੂੰ ਵਧਾਵਣ। - -### ਪਹਿਲਾਂ ਦੀ ਜਾਣਕਾਰੀ - -ਕੁਝ ਸਮਾਂ ਲਓ ਅਤੇ [ਯੂਜ਼ਰ ਅਨੁਭਵ ਅਤੇ ਡਿਜ਼ਾਈਨ ਸੋਚ ਬਾਰੇ ਹੋਰ ਪੜ੍ਹੋ।](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## ਯੂਜ਼ਰ ਅਨੁਭਵ ਦਾ ਪਰਿਚਯ ਅਤੇ ਯੂਜ਼ਰ ਦੀਆਂ ਜ਼ਰੂਰਤਾਂ ਨੂੰ ਸਮਝਣਾ - -ਸਾਡੇ ਕਲਪਨਾਤਮਕ ਸਿੱਖਿਆ ਸਟਾਰਟਅਪ ਵਿੱਚ, ਸਾਡੇ ਕੋਲ ਦੋ ਮੁੱਖ ਯੂਜ਼ਰ ਹਨ, ਅਧਿਆਪਕ ਅਤੇ ਵਿਦਿਆਰਥੀ। ਹਰ ਇੱਕ ਯੂਜ਼ਰ ਦੀਆਂ ਵੱਖ-ਵੱਖ ਜ਼ਰੂਰਤਾਂ ਹੁੰਦੀਆਂ ਹਨ। ਯੂਜ਼ਰ-ਕੇਂਦਰਤ ਡਿਜ਼ਾਈਨ ਯੂਜ਼ਰ ਨੂੰ ਪਹਿਲ ਦਿੰਦਾ ਹੈ ਤਾਂ ਜੋ ਉਤਪਾਦ ਉਹਨਾਂ ਲਈ ਲਾਭਦਾਇਕ ਅਤੇ ਸਬੰਧਤ ਹੋਣ। - -ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ **ਲਾਭਦਾਇਕ, ਭਰੋਸੇਯੋਗ, ਸੁਗਮ ਅਤੇ ਮਨਪਸੰਦ** ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ ਤਾਂ ਜੋ ਵਧੀਆ ਯੂਜ਼ਰ ਅਨੁਭਵ ਮਿਲੇ। - -### ਵਰਤੋਂਯੋਗਤਾ - -ਲਾਭਦਾਇਕ ਹੋਣਾ ਮਤਲਬ ਹੈ ਕਿ ਐਪਲੀਕੇਸ਼ਨ ਵਿੱਚ ਉਹ ਫੰਕਸ਼ਨਲਿਟੀ ਹੋਵੇ ਜੋ ਉਸਦੇ ਮਕਸਦ ਨਾਲ ਮੇਲ ਖਾਂਦੀ ਹੋਵੇ, ਜਿਵੇਂ ਕਿ ਗਰੇਡਿੰਗ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਆਟੋਮੇਟ ਕਰਨਾ ਜਾਂ ਰਿਵਿਜ਼ਨ ਲਈ ਫਲੈਸ਼ਕਾਰਡ ਬਣਾਉਣਾ। ਗਰੇਡਿੰਗ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਆਟੋਮੇਟ ਕਰਨ ਵਾਲਾ ਐਪਲੀਕੇਸ਼ਨ ਵਿਦਿਆਰਥੀਆਂ ਦੇ ਕੰਮ ਨੂੰ ਪੂਰਵ ਨਿਰਧਾਰਿਤ ਮਾਪਦੰਡਾਂ ਦੇ ਅਧਾਰ 'ਤੇ ਸਹੀ ਅਤੇ ਤੇਜ਼ੀ ਨਾਲ ਅੰਕ ਦੇ ਸਕਣਾ ਚਾਹੀਦਾ ਹੈ। ਇਸੇ ਤਰ੍ਹਾਂ, ਰਿਵਿਜ਼ਨ ਫਲੈਸ਼ਕਾਰਡ ਬਣਾਉਣ ਵਾਲਾ ਐਪਲੀਕੇਸ਼ਨ ਆਪਣੇ ਡੇਟਾ ਦੇ ਅਧਾਰ 'ਤੇ ਸਬੰਧਤ ਅਤੇ ਵੱਖ-ਵੱਖ ਪ੍ਰਸ਼ਨਾਂ ਨੂੰ ਤਿਆਰ ਕਰ ਸਕਣਾ ਚਾਹੀਦਾ ਹੈ। - -### ਭਰੋਸੇਯੋਗਤਾ - -ਭਰੋਸੇਯੋਗ ਹੋਣਾ ਮਤਲਬ ਹੈ ਕਿ ਐਪਲੀਕੇਸ਼ਨ ਆਪਣਾ ਕੰਮ ਲਗਾਤਾਰ ਅਤੇ ਬਿਨਾਂ ਗਲਤੀਆਂ ਦੇ ਕਰ ਸਕੇ। ਪਰ AI ਵੀ ਮਨੁੱਖਾਂ ਵਾਂਗ ਪੂਰਨ ਨਹੀਂ ਹੁੰਦਾ ਅਤੇ ਗਲਤੀਆਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਗਲਤੀਆਂ ਜਾਂ ਅਣਉਮੀਦੀਆਂ ਸਥਿਤੀਆਂ ਦਾ ਸਾਹਮਣਾ ਕਰਨਾ ਪੈ ਸਕਦਾ ਹੈ ਜਿੱਥੇ ਮਨੁੱਖੀ ਦਖਲਅੰਦਾਜ਼ੀ ਜਾਂ ਸਹੀ ਕਰਨ ਦੀ ਲੋੜ ਹੋਵੇ। ਤੁਸੀਂ ਗਲਤੀਆਂ ਨੂੰ ਕਿਵੇਂ ਸੰਭਾਲਦੇ ਹੋ? ਇਸ ਪਾਠ ਦੇ ਆਖਰੀ ਹਿੱਸੇ ਵਿੱਚ ਅਸੀਂ ਕਵਰ ਕਰਾਂਗੇ ਕਿ ਕਿਵੇਂ AI ਸਿਸਟਮ ਅਤੇ ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਸਹਿਯੋਗ ਅਤੇ ਫੀਡਬੈਕ ਲਈ ਡਿਜ਼ਾਈਨ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। - -### ਸੁਗਮਤਾ - -ਸੁਗਮ ਹੋਣਾ ਮਤਲਬ ਹੈ ਕਿ ਯੂਜ਼ਰ ਅਨੁਭਵ ਨੂੰ ਵੱਖ-ਵੱਖ ਸਮਰੱਥਾਵਾਂ ਵਾਲੇ ਯੂਜ਼ਰਾਂ ਤੱਕ ਵਧਾਇਆ ਜਾਵੇ, ਜਿਸ ਵਿੱਚ ਵਿਸ਼ੇਸ਼ ਜ਼ਰੂਰਤਾਂ ਵਾਲੇ ਲੋਕ ਵੀ ਸ਼ਾਮਲ ਹਨ, ਤਾਂ ਜੋ ਕੋਈ ਵੀ ਬਾਹਰ ਨਾ ਰਹਿ ਜਾਵੇ। ਸੁਗਮਤਾ ਦੇ ਨਿਯਮਾਂ ਅਤੇ ਸਿਧਾਂਤਾਂ ਦੀ ਪਾਲਣਾ ਕਰਕੇ, AI ਹੱਲ ਹੋਰ ਸਮਾਵੇਸ਼ੀ, ਵਰਤਣ ਯੋਗ ਅਤੇ ਸਾਰੇ ਯੂਜ਼ਰਾਂ ਲਈ ਲਾਭਦਾਇਕ ਬਣ ਜਾਂਦੇ ਹਨ। - -### ਮਨਪਸੰਦ - -ਮਨਪਸੰਦ ਹੋਣਾ ਮਤਲਬ ਹੈ ਕਿ ਐਪਲੀਕੇਸ਼ਨ ਵਰਤਣ ਵਿੱਚ ਮਜ਼ੇਦਾਰ ਹੋਵੇ। ਇੱਕ ਆਕਰਸ਼ਕ ਯੂਜ਼ਰ ਅਨੁਭਵ ਯੂਜ਼ਰ 'ਤੇ ਸਕਾਰਾਤਮਕ ਪ੍ਰਭਾਵ ਪਾ ਸਕਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਉਹ ਐਪਲੀਕੇਸ਼ਨ 'ਤੇ ਵਾਪਸ ਆਉਣ ਲਈ ਪ੍ਰੇਰਿਤ ਹੁੰਦਾ ਹੈ ਅਤੇ ਕਾਰੋਬਾਰ ਦੀ ਆਮਦਨ ਵਧਦੀ ਹੈ। - -![image illustrating UX considerations in AI](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.pa.png) - -ਹਰ ਸਮੱਸਿਆ ਦਾ ਹੱਲ AI ਨਾਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ। AI ਤੁਹਾਡੇ ਯੂਜ਼ਰ ਅਨੁਭਵ ਨੂੰ ਵਧਾਉਂਦਾ ਹੈ, ਚਾਹੇ ਉਹ ਮੈਨੂਅਲ ਕੰਮਾਂ ਨੂੰ ਆਟੋਮੇਟ ਕਰਨਾ ਹੋਵੇ ਜਾਂ ਯੂਜ਼ਰ ਅਨੁਭਵ ਨੂੰ ਨਿੱਜੀਕਰਨ ਕਰਨਾ ਹੋਵੇ। - -## Designing AI Applications for Trust and Transparency - -AI ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਡਿਜ਼ਾਈਨ ਕਰਦੇ ਸਮੇਂ ਭਰੋਸਾ ਬਣਾਉਣਾ ਬਹੁਤ ਜ਼ਰੂਰੀ ਹੈ। ਭਰੋਸਾ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਯੂਜ਼ਰ ਨੂੰ ਪੂਰਾ ਵਿਸ਼ਵਾਸ ਹੈ ਕਿ ਐਪਲੀਕੇਸ਼ਨ ਕੰਮ ਸਹੀ ਤਰੀਕੇ ਨਾਲ ਕਰੇਗਾ, ਨਤੀਜੇ ਲਗਾਤਾਰ ਮਿਲਣਗੇ ਅਤੇ ਨਤੀਜੇ ਉਹੀ ਹੋਣਗੇ ਜੋ ਯੂਜ਼ਰ ਚਾਹੁੰਦਾ ਹੈ। ਇਸ ਖੇਤਰ ਵਿੱਚ ਖਤਰਾ mistrust ਅਤੇ overtrust ਦਾ ਹੈ। Mistrust ਉਸ ਵੇਲੇ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਯੂਜ਼ਰ ਨੂੰ AI ਸਿਸਟਮ 'ਤੇ ਘੱਟ ਜਾਂ ਕੋਈ ਭਰੋਸਾ ਨਹੀਂ ਹੁੰਦਾ, ਜਿਸ ਨਾਲ ਉਹ ਤੁਹਾਡੇ ਐਪ ਨੂੰ ਰੱਦ ਕਰ ਦਿੰਦਾ ਹੈ। Overtrust ਉਸ ਵੇਲੇ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਯੂਜ਼ਰ AI ਸਿਸਟਮ ਦੀ ਸਮਰੱਥਾ ਨੂੰ ਜ਼ਿਆਦਾ ਅੰਦਾਜ਼ਾ ਲਗਾਉਂਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਉਹ AI ਸਿਸਟਮ 'ਤੇ ਬਹੁਤ ਜ਼ਿਆਦਾ ਭਰੋਸਾ ਕਰ ਲੈਂਦਾ ਹੈ। ਉਦਾਹਰਨ ਵਜੋਂ, ਇੱਕ ਆਟੋਮੇਟਿਕ ਗਰੇਡਿੰਗ ਸਿਸਟਮ ਵਿੱਚ overtrust ਦੇ ਕਾਰਨ ਅਧਿਆਪਕ ਕੁਝ ਕਾਗਜ਼ਾਂ ਨੂੰ ਪ੍ਰੂਫ਼ ਨਹੀਂ ਕਰਦੇ, ਜਿਸ ਨਾਲ ਵਿਦਿਆਰਥੀਆਂ ਨੂੰ ਅਨਿਆਇਕ ਜਾਂ ਗਲਤ ਗਰੇਡ ਮਿਲ ਸਕਦੇ ਹਨ ਜਾਂ ਫੀਡਬੈਕ ਅਤੇ ਸੁਧਾਰ ਦੇ ਮੌਕੇ ਗੁਆ ਸਕਦੇ ਹਨ। - -ਭਰੋਸਾ ਡਿਜ਼ਾਈਨ ਦੇ ਕੇਂਦਰ ਵਿੱਚ ਰੱਖਣ ਦੇ ਦੋ ਤਰੀਕੇ ਹਨ: explainability ਅਤੇ control। - -### Explainability - -ਜਦੋਂ AI ਫੈਸਲੇ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਭਵਿੱਖ ਦੀ ਪੀੜ੍ਹੀ ਨੂੰ ਗਿਆਨ ਦੇਣਾ, ਤਾਂ ਅਧਿਆਪਕਾਂ ਅਤੇ ਮਾਪਿਆਂ ਲਈ ਇਹ ਸਮਝਣਾ ਜ਼ਰੂਰੀ ਹੁੰਦਾ ਹੈ ਕਿ AI ਫੈਸਲੇ ਕਿਵੇਂ ਲੈਂਦਾ ਹੈ। ਇਹ explainability ਹੈ - ਇਹ ਸਮਝਣਾ ਕਿ AI ਐਪਲੀਕੇਸ਼ਨ ਕਿਵੇਂ ਫੈਸਲੇ ਕਰਦੇ ਹਨ। explainability ਲਈ ਡਿਜ਼ਾਈਨ ਵਿੱਚ ਇਹ ਸ਼ਾਮਲ ਹੈ ਕਿ AI ਐਪਲੀਕੇਸ਼ਨ ਕੀ ਕਰ ਸਕਦਾ ਹੈ, ਇਸ ਦੇ ਉਦਾਹਰਨ ਦਿੱਤੇ ਜਾਣ। ਉਦਾਹਰਨ ਵਜੋਂ, "Get started with AI teacher" ਦੀ ਥਾਂ ਸਿਸਟਮ ਕਹਿ ਸਕਦਾ ਹੈ: "ਆਪਣੇ ਨੋਟਸ ਨੂੰ ਆਸਾਨ ਰਿਵਿਜ਼ਨ ਲਈ ਸੰਖੇਪ ਕਰੋ AI ਦੀ ਮਦਦ ਨਾਲ।" - -![an app landing page with clear illustration of explainability in AI applications](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.pa.png) - -ਹੋਰ ਉਦਾਹਰਨ ਹੈ ਕਿ AI ਕਿਵੇਂ ਯੂਜ਼ਰ ਅਤੇ ਨਿੱਜੀ ਡੇਟਾ ਵਰਤਦਾ ਹੈ। ਉਦਾਹਰਨ ਵਜੋਂ, ਇੱਕ ਵਿਦਿਆਰਥੀ ਜੋ ਕਿਸੇ ਵਿਸ਼ੇਸ਼ persona ਨਾਲ ਜੁੜਿਆ ਹੈ, ਉਸਦੇ ਕੁਝ ਸੀਮਿਤੀਆਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। AI ਸਵਾਲਾਂ ਦੇ ਜਵਾਬ ਨਹੀਂ ਦੇ ਸਕਦਾ ਪਰ ਯੂਜ਼ਰ ਨੂੰ ਸੋਚਣ ਲਈ ਮਦਦ ਕਰ ਸਕਦਾ ਹੈ ਕਿ ਉਹ ਸਮੱਸਿਆ ਕਿਵੇਂ ਹੱਲ ਕਰ ਸਕਦਾ ਹੈ। - -![AI replying to questions based on persona](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.pa.png) - -Explainability ਦਾ ਇੱਕ ਹੋਰ ਮੁੱਖ ਹਿੱਸਾ ਵਿਆਖਿਆਵਾਂ ਨੂੰ ਸਧਾਰਨ ਬਣਾਉਣਾ ਹੈ। ਵਿਦਿਆਰਥੀ ਅਤੇ ਅਧਿਆਪਕ AI ਮਾਹਿਰ ਨਹੀਂ ਹੁੰਦੇ, ਇਸ ਲਈ ਐਪਲੀਕੇਸ਼ਨ ਕੀ ਕਰ ਸਕਦਾ ਹੈ ਜਾਂ ਨਹੀਂ ਕਰ ਸਕਦਾ, ਇਸ ਦੀ ਵਿਆਖਿਆ ਸਧਾਰਨ ਅਤੇ ਆਸਾਨ ਸਮਝਣ ਵਾਲੀ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ। - -![simplified explanations on AI capabilities](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.pa.png) - -### Control - -Generative AI ਯੂਜ਼ਰ ਅਤੇ AI ਵਿਚਕਾਰ ਸਹਿਯੋਗ ਬਣਾਉਂਦਾ ਹੈ, ਜਿੱਥੇ ਯੂਜ਼ਰ ਵੱਖ-ਵੱਖ ਨਤੀਜਿਆਂ ਲਈ ਪ੍ਰਾਂਪਟਸ ਨੂੰ ਬਦਲ ਸਕਦਾ ਹੈ। ਇਸਦੇ ਨਾਲ, ਜਦੋਂ ਨਤੀਜਾ ਬਣ ਜਾਂਦਾ ਹੈ, ਯੂਜ਼ਰ ਨੂੰ ਨਤੀਜਿਆਂ ਨੂੰ ਬਦਲਣ ਦੀ ਆਜ਼ਾਦੀ ਮਿਲਣੀ ਚਾਹੀਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਉਹਨਾਂ ਨੂੰ ਕੰਟਰੋਲ ਦਾ ਅਹਿਸਾਸ ਹੁੰਦਾ ਹੈ। ਉਦਾਹਰਨ ਵਜੋਂ, Bing ਵਰਤਦੇ ਸਮੇਂ, ਤੁਸੀਂ ਆਪਣੇ ਪ੍ਰਾਂਪਟ ਨੂੰ ਫਾਰਮੈਟ, ਟੋਨ ਅਤੇ ਲੰਬਾਈ ਦੇ ਅਧਾਰ 'ਤੇ ਅਨੁਕੂਲਿਤ ਕਰ ਸਕਦੇ ਹੋ। ਇਸਦੇ ਨਾਲ, ਤੁਸੀਂ ਆਪਣੇ ਨਤੀਜੇ ਵਿੱਚ ਬਦਲਾਅ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਨਤੀਜੇ ਨੂੰ ਸੋਧ ਸਕਦੇ ਹੋ, ਜਿਵੇਂ ਹੇਠਾਂ ਦਿਖਾਇਆ ਗਿਆ ਹੈ: - -![Bing search results with options to modify the prompt and output](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.pa.png) - -Bing ਵਿੱਚ ਇੱਕ ਹੋਰ ਫੀਚਰ ਜੋ ਯੂਜ਼ਰ ਨੂੰ ਐਪਲੀਕੇਸ਼ਨ 'ਤੇ ਕੰਟਰੋਲ ਦਿੰਦਾ ਹੈ, ਉਹ ਹੈ ਡੇਟਾ ਦੀ ਵਰਤੋਂ 'ਤੇ opt-in ਅਤੇ opt-out ਕਰਨ ਦੀ ਸਮਰੱਥਾ। ਸਕੂਲ ਐਪਲੀਕੇਸ਼ਨ ਲਈ, ਵਿਦਿਆਰਥੀ ਆਪਣੀਆਂ ਨੋਟਸ ਅਤੇ ਅਧਿਆਪਕਾਂ ਦੇ ਸਰੋਤਾਂ ਨੂੰ ਰਿਵਿਜ਼ਨ ਸਮੱਗਰੀ ਵਜੋਂ ਵਰਤਣਾ ਚਾਹੁੰਦਾ ਹੋ ਸਕਦਾ ਹੈ। - -![Bing search results with options to modify the prompt and output](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.pa.png) - -> AI ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਡਿਜ਼ਾਈਨ ਕਰਦੇ ਸਮੇਂ, ਇਰਾਦਾ ਬਹੁਤ ਜ਼ਰੂਰੀ ਹੈ ਤਾਂ ਜੋ ਯੂਜ਼ਰ AI 'ਤੇ ਜ਼ਿਆਦਾ ਭਰੋਸਾ ਨਾ ਕਰ ਬੈਠਣ ਅਤੇ ਇਸ ਦੀਆਂ ਸਮਰੱਥਾਵਾਂ ਬਾਰੇ ਅਸਲੀਅਤ ਤੋਂ ਵੱਖਰੇ ਉਮੀਦਾਂ ਨਾ ਬਣਾਉਣ। ਇਸਦਾ ਇੱਕ ਤਰੀਕਾ ਹੈ ਪ੍ਰਾਂਪਟਸ ਅਤੇ ਨਤੀਜਿਆਂ ਵਿਚਕਾਰ ਰੁਕਾਵਟ ਪੈਦਾ ਕਰਨਾ, ਯੂਜ਼ਰ ਨੂੰ ਯਾਦ ਦਿਵਾਉਣਾ ਕਿ ਇਹ AI ਹੈ, ਕੋਈ ਮਨੁੱਖ ਨਹੀਂ। - -## Designing AI Applications for Collaboration and Feedback - -ਜਿਵੇਂ ਪਹਿਲਾਂ ਦੱਸਿਆ ਗਿਆ, generative AI ਯੂਜ਼ਰ ਅਤੇ AI ਵਿਚਕਾਰ ਸਹਿਯੋਗ ਬਣਾਉਂਦਾ ਹੈ। ਜ਼ਿਆਦਾਤਰ ਇੰਟਰੈਕਸ਼ਨ ਵਿੱਚ ਯੂਜ਼ਰ ਪ੍ਰਾਂਪਟ ਦਿੰਦਾ ਹੈ ਅਤੇ AI ਨਤੀਜਾ ਤਿਆਰ ਕਰਦਾ ਹੈ। ਜੇ ਨਤੀਜਾ ਗਲਤ ਹੋਵੇ ਤਾਂ ਕੀ ਹੁੰਦਾ ਹੈ? ਜੇ ਗਲਤੀ ਆਵੇ ਤਾਂ ਐਪਲੀਕੇਸ਼ਨ ਕਿਵੇਂ ਸੰਭਾਲਦਾ ਹੈ? ਕੀ AI ਯੂਜ਼ਰ ਨੂੰ ਦੋਸ਼ ਦਿੰਦਾ ਹੈ ਜਾਂ ਗਲਤੀ ਦੀ ਵਿਆਖਿਆ ਕਰਦਾ ਹੈ? - -AI ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਫੀਡਬੈਕ ਲੈਣ ਅਤੇ ਦੇਣ ਲਈ ਬਣਾਇਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਇਹ ਨਾ ਸਿਰਫ AI ਸਿਸਟਮ ਨੂੰ ਸੁਧਾਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ, ਸਗੋਂ ਯੂਜ਼ਰਾਂ ਨਾਲ ਭਰੋਸਾ ਵੀ ਬਣਾਉਂਦਾ ਹੈ। ਡਿਜ਼ਾਈਨ ਵਿੱਚ ਫੀਡਬੈਕ ਲੂਪ ਸ਼ਾਮਲ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ, ਉਦਾਹਰਨ ਵਜੋਂ ਨਤੀਜੇ 'ਤੇ ਸਧਾਰਨ ਥੰਬਸ ਅੱਪ ਜਾਂ ਥੰਬਸ ਡਾਊਨ। - -ਇਸ ਨੂੰ ਸੰਭਾਲਣ ਦਾ ਇੱਕ ਹੋਰ ਤਰੀਕਾ ਹੈ ਸਿਸਟਮ ਦੀਆਂ ਸਮਰੱਥਾਵਾਂ ਅਤੇ ਸੀਮਾਵਾਂ ਨੂੰ ਸਪਸ਼ਟ ਤੌਰ 'ਤੇ ਦੱਸਣਾ। ਜਦੋਂ ਯੂਜ਼ਰ AI ਦੀ ਸਮਰੱਥਾ ਤੋਂ ਬਾਹਰ ਕੁਝ ਮੰਗਦਾ ਹੈ, ਤਾਂ ਇਸ ਨੂੰ ਸੰਭਾਲਣ ਦਾ ਵੀ ਕੋਈ ਤਰੀਕਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ, ਜਿਵੇਂ ਹੇਠਾਂ ਦਿਖਾਇਆ ਗਿਆ ਹੈ। - -![Giving feedback and handling errors](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.pa.png) - -ਸਿਸਟਮ ਗਲਤੀਆਂ ਆਮ ਹਨ ਜਿੱਥੇ ਯੂਜ਼ਰ ਨੂੰ AI ਦੇ ਖੇਤਰ ਤੋਂ ਬਾਹਰ ਜਾਣਕਾਰੀ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ ਜਾਂ ਐਪਲੀਕੇਸ਼ਨ ਵਿੱਚ ਇਹ ਸੀਮਾ ਹੋ ਸਕਦੀ ਹੈ ਕਿ ਯੂਜ਼ਰ ਕਿੰਨੇ ਸਵਾਲ/ਵਿਸ਼ਿਆਂ ਲਈ ਸੰਖੇਪ ਤਿਆਰ ਕਰ ਸਕਦਾ ਹੈ। ਉਦਾਹਰਨ ਵਜੋਂ, ਇੱਕ AI ਐਪਲੀਕੇਸ਼ਨ ਜੋ ਸਿਰਫ History ਅਤੇ Math ਦੇ ਡੇਟਾ ਨਾਲ ਟ੍ਰੇਨ ਕੀਤਾ ਗਿਆ ਹੈ, ਉਹ Geography ਦੇ ਸਵਾਲਾਂ ਨੂੰ ਸੰਭਾਲ ਨਹੀਂ ਸਕਦਾ। ਇਸ ਨੂੰ ਘਟਾਉਣ ਲਈ, AI ਸਿਸਟਮ ਇਹ ਜਵਾਬ ਦੇ ਸਕਦਾ ਹੈ: "ਮਾਫ਼ ਕਰਨਾ, ਸਾਡਾ ਉਤਪਾਦ ਹੇਠ ਲਿਖੇ ਵਿਸ਼ਿਆਂ ਵਿੱਚ ਡੇਟਾ ਨਾਲ ਟ੍ਰੇਨ ਕੀਤਾ ਗਿਆ ਹੈ....., ਮੈਂ ਤੁਹਾਡੇ ਸਵਾਲ ਦਾ ਜਵਾਬ ਨਹੀਂ ਦੇ ਸਕਦਾ।" - -AI ਐਪਲੀਕੇਸ਼ਨ ਪੂਰਨ ਨਹੀਂ ਹੁੰਦੇ, ਇਸ ਲਈ ਉਹ ਗਲਤੀਆਂ ਕਰਦੇ ਹਨ। ਆਪਣੇ ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਡਿਜ਼ਾਈਨ ਕਰਦੇ ਸਮੇਂ, ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਸੀਂ ਯੂਜ਼ਰਾਂ ਤੋਂ ਫੀਡਬੈਕ ਲਈ ਜਗ੍ਹਾ ਬਣਾਈ ਹੈ ਅਤੇ ਗਲਤੀ ਸੰਭਾਲਣ ਦਾ ਤਰੀਕਾ ਸਧਾਰਨ ਅਤੇ ਆਸਾਨ ਸਮਝਣ ਵਾਲਾ ਹੈ। - -## ਅਸਾਈਨਮੈਂਟ - -ਹੁਣ ਤੱਕ ਤੁਸੀਂ ਜੋ ਵੀ AI ਐਪ ਬਣਾਏ ਹਨ, ਉਹਨਾਂ ਵਿੱਚ ਹੇਠ ਲਿਖੇ ਕਦਮ ਲਾਗੂ ਕਰਨ ਬਾਰੇ ਸੋਚੋ: - -- **ਮਨਪਸੰਦ:** ਸੋਚੋ ਕਿ ਤੁਸੀਂ ਆਪਣੇ ਐਪ ਨੂੰ ਹੋਰ ਮਨ - -**ਅਸਵੀਕਾਰੋਪੱਤਰ**: -ਇਹ ਦਸਤਾਵੇਜ਼ AI ਅਨੁਵਾਦ ਸੇਵਾ [Co-op Translator](https://github.com/Azure/co-op-translator) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀਤਾ ਲਈ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਰੱਖੋ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸਮਰਥਤਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼ ਆਪਣੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਪ੍ਰਮਾਣਿਕ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਨਾਲ ਹੋਣ ਵਾਲੀਆਂ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀਆਂ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆਵਾਂ ਲਈ ਅਸੀਂ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ। \ No newline at end of file + + + diff --git a/translations/pa/README.md b/translations/pa/README.md index 05b84f460..e4391083d 100644 --- a/translations/pa/README.md +++ b/translations/pa/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.pa.png) - -### 21 ਪਾਠ ਜੋ ਤੁਹਾਨੂੰ Generative AI ਐਪਲੀਕੇਸ਼ਨ ਬਣਾਉਣ ਲਈ ਸਾਰੀ ਜਾਣਕਾਰੀ ਸਿਖਾਉਂਦੇ ਹਨ - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 ਬਹੁ-ਭਾਸ਼ਾਈ ਸਹਾਇਤਾ - -#### GitHub Action ਰਾਹੀਂ ਸਹਾਇਤਾਪ੍ਰਾਪਤ (ਆਟੋਮੈਟਿਕ ਅਤੇ ਹਮੇਸ਼ਾ ਅਪ-ਟੂ-ਡੇਟ) - -[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](./README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md) - -# Generative AI for Beginners (ਵਰਜ਼ਨ 3) - ਇੱਕ ਕੋਰਸ - -Microsoft Cloud Advocates ਵੱਲੋਂ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਇਹ 21 ਪਾਠਾਂ ਵਾਲਾ ਵਿਸਤ੍ਰਿਤ ਕੋਰਸ ਤੁਹਾਨੂੰ Generative AI ਐਪਲੀਕੇਸ਼ਨ ਬਣਾਉਣ ਦੇ ਮੂਲ ਤੱਤ ਸਿਖਾਉਂਦਾ ਹੈ। - -## 🌱 ਸ਼ੁਰੂਆਤ - -ਇਸ ਕੋਰਸ ਵਿੱਚ 21 ਪਾਠ ਹਨ। ਹਰ ਪਾਠ ਆਪਣਾ ਵਿਸ਼ਾ ਕਵਰ ਕਰਦਾ ਹੈ, ਇਸ ਲਈ ਤੁਸੀਂ ਜਿੱਥੇ ਚਾਹੋ ਉੱਥੋਂ ਸ਼ੁਰੂ ਕਰ ਸਕਦੇ ਹੋ! - -ਪਾਠਾਂ ਨੂੰ "Learn" (ਸਿੱਖੋ) ਜਾਂ "Build" (ਬਣਾਓ) ਵਜੋਂ ਲੇਬਲ ਕੀਤਾ ਗਿਆ ਹੈ। "Learn" ਪਾਠ Generative AI ਦੇ ਕਿਸੇ ਸੰਕਲਪ ਨੂੰ ਸਮਝਾਉਂਦੇ ਹਨ, ਜਦਕਿ "Build" ਪਾਠ ਸੰਕਲਪ ਦੇ ਨਾਲ-ਨਾਲ **Python** ਅਤੇ **TypeScript** ਵਿੱਚ ਕੋਡ ਉਦਾਹਰਣ ਵੀ ਦਿੰਦੇ ਹਨ ਜੇ ਸੰਭਵ ਹੋਵੇ। - -.NET ਡਿਵੈਲਪਰਾਂ ਲਈ [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) ਵੀ ਵੇਖੋ! - -ਹਰ ਪਾਠ ਵਿੱਚ "Keep Learning" ਸੈਕਸ਼ਨ ਵੀ ਹੁੰਦਾ ਹੈ ਜਿਸ ਵਿੱਚ ਵਾਧੂ ਸਿੱਖਣ ਦੇ ਸਾਧਨ ਦਿੱਤੇ ਜਾਂਦੇ ਹਨ। - -## ਤੁਹਾਨੂੰ ਕੀ ਚਾਹੀਦਾ ਹੈ -### ਇਸ ਕੋਰਸ ਦਾ ਕੋਡ ਚਲਾਉਣ ਲਈ, ਤੁਸੀਂ ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੋਈ ਵੀ ਵਰਤ ਸਕਦੇ ਹੋ: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **ਪਾਠ:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **ਪਾਠ:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **ਪਾਠ:** "oai-assignment" - -- Python ਜਾਂ TypeScript ਦੀ ਬੁਨਿਆਦੀ ਜਾਣਕਾਰੀ ਲਾਭਦਾਇਕ ਹੈ - \*ਬਿਲਕੁਲ ਨਵੇਂ ਸਿੱਖਣ ਵਾਲਿਆਂ ਲਈ ਇਹ [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) ਅਤੇ [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) ਕੋਰਸ ਵੇਖੋ -- ਆਪਣਾ GitHub ਖਾਤਾ ਬਣਾਓ ਅਤੇ ਇਸ ਪੂਰੇ ਰਿਪੋ ਨੂੰ [fork](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) ਕਰੋ - -ਅਸੀਂ ਤੁਹਾਡੇ ਵਿਕਾਸ ਵਾਤਾਵਰਣ ਨੂੰ ਸੈੱਟਅੱਪ ਕਰਨ ਵਿੱਚ ਮਦਦ ਲਈ ਇੱਕ **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** ਪਾਠ ਬਣਾਇਆ ਹੈ। - -ਇਸ ਰਿਪੋ ਨੂੰ ਬਾਅਦ ਵਿੱਚ ਆਸਾਨੀ ਨਾਲ ਲੱਭਣ ਲਈ [ਇਸ ਨੂੰ ਸਿਤਾਰਾ (🌟) ਦਿਓ](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) ਨਾ ਭੁੱਲੋ। - -## 🧠 ਤਿਆਰ ਹੋ ਕਿਰਿਆਨਵਿਤ ਕਰਨ ਲਈ? - -ਜੇ ਤੁਸੀਂ ਹੋਰ ਅਗੇਤਰ ਕੋਡ ਉਦਾਹਰਣਾਂ ਦੀ ਖੋਜ ਕਰ ਰਹੇ ਹੋ, ਤਾਂ ਸਾਡੇ [Generative AI ਕੋਡ ਸੈਂਪਲਾਂ ਦੇ ਸੰਗ੍ਰਹਿ](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) ਨੂੰ ਦੇਖੋ ਜੋ ਦੋਹਾਂ **Python** ਅਤੇ **TypeScript** ਵਿੱਚ ਹਨ। - -## 🗣️ ਹੋਰ ਸਿੱਖਣ ਵਾਲਿਆਂ ਨਾਲ ਮਿਲੋ, ਸਹਾਇਤਾ ਪ੍ਰਾਪਤ ਕਰੋ - -ਸਾਡੇ [ਆਧਿਕਾਰਿਕ Azure AI Foundry Discord ਸਰਵਰ](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) 'ਤੇ ਜੁੜੋ, ਜਿੱਥੇ ਤੁਸੀਂ ਇਸ ਕੋਰਸ ਨੂੰ ਲੈ ਰਹੇ ਹੋਰ ਸਿੱਖਣ ਵਾਲਿਆਂ ਨਾਲ ਮਿਲ ਸਕਦੇ ਹੋ ਅਤੇ ਸਹਾਇਤਾ ਲੈ ਸਕਦੇ ਹੋ। - -ਸਵਾਲ ਪੁੱਛੋ ਜਾਂ ਸਾਡੇ [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum) 'ਤੇ ਪ੍ਰੋਡਕਟ ਫੀਡਬੈਕ ਸਾਂਝਾ ਕਰੋ। - -## 🚀 ਸਟਾਰਟਅੱਪ ਬਣਾ ਰਹੇ ਹੋ? - -[Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) ਲਈ ਸਾਈਨ ਅਪ ਕਰੋ ਅਤੇ **ਮੁਫ਼ਤ OpenAI ਕਰੈਡਿਟਸ** ਅਤੇ **Azure OpenAI Services ਰਾਹੀਂ OpenAI ਮਾਡਲਾਂ ਤੱਕ ਪਹੁੰਚ ਲਈ Azure ਕਰੈਡਿਟਸ ਵਿੱਚ $150k ਤੱਕ** ਪ੍ਰਾਪਤ ਕਰੋ। - -## 🙏 ਮਦਦ ਕਰਨੀ ਹੈ? - -ਕੀ ਤੁਹਾਡੇ ਕੋਲ ਸੁਝਾਅ ਹਨ ਜਾਂ ਤੁਸੀਂ ਕੋਈ ਟਾਈਪੋ ਜਾਂ ਕੋਡ ਦੀਆਂ ਗਲਤੀਆਂ ਲੱਭੀਆਂ ਹਨ? [ਇਸ਼ੂ ਖੋਲ੍ਹੋ](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) ਜਾਂ [ਪੁਲ ਰਿਕਵੇਸਟ ਬਣਾਓ](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 ਹਰ ਪਾਠ ਵਿੱਚ ਸ਼ਾਮਲ ਹੈ: - -- ਵਿਸ਼ੇ ਦਾ ਇੱਕ ਛੋਟਾ ਵੀਡੀਓ ਪਰਿਚਯ -- README ਵਿੱਚ ਲਿਖਿਆ ਹੋਇਆ ਪਾਠ -- Python ਅਤੇ TypeScript ਕੋਡ ਸੈਂਪਲ ਜੋ Azure OpenAI ਅਤੇ OpenAI API ਨੂੰ ਸਹਾਇਤਾ ਦਿੰਦੇ ਹਨ -- ਵਾਧੂ ਸਿੱਖਣ ਲਈ ਲਿੰਕ - -## 🗃️ ਪਾਠ - -| # | **ਪਾਠ ਲਿੰਕ** | **ਵੇਰਵਾ** | **ਵੀਡੀਓ** | **ਵਾਧੂ ਸਿੱਖਣ** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **ਸਿੱਖੋ:** ਆਪਣਾ ਵਿਕਾਸ ਵਾਤਾਵਰਣ ਕਿਵੇਂ ਸੈੱਟਅੱਪ ਕਰਨਾ ਹੈ | ਵੀਡੀਓ ਜਲਦੀ ਆ ਰਿਹਾ ਹੈ | [ਹੋਰ ਜਾਣੋ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introduction to Generative AI and LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **ਸਿੱਖੋ:** Generative AI ਕੀ ਹੈ ਅਤੇ ਵੱਡੇ ਭਾਸ਼ਾ ਮਾਡਲ (LLMs) ਕਿਵੇਂ ਕੰਮ ਕਰਦੇ ਹਨ ਸਮਝੋ | [ਵੀਡੀਓ](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [ਹੋਰ ਜਾਣੋ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Exploring and comparing different LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **ਸਿੱਖੋ:** ਆਪਣੇ ਉਦੇਸ਼ ਲਈ ਸਹੀ ਮਾਡਲ ਕਿਵੇਂ ਚੁਣਨਾ ਹੈ | [ਵੀਡੀਓ](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [ਹੋਰ ਜਾਣੋ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Using Generative AI Responsibly](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **ਸਿੱਖੋ:** Generative AI ਐਪਲੀਕੇਸ਼ਨ ਜ਼ਿੰਮੇਵਾਰੀ ਨਾਲ ਕਿਵੇਂ ਬਣਾਉਣ | [ਵੀਡੀਓ](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [ਹੋਰ ਜਾਣੋ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Understanding Prompt Engineering Fundamentals](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **ਸਿੱਖੋ:** ਪ੍ਰਾਂਪਟ ਇੰਜੀਨੀਅਰਿੰਗ ਦੇ ਮੂਲ ਤੱਤਾਂ 'ਤੇ ਹੱਥ-ਅਨੁਭਵ | [ਵੀਡੀਓ](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [ਹੋਰ ਜਾਣੋ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Creating Advanced Prompts](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **ਸਿੱਖੋ:** ਪ੍ਰਾਂਪਟ ਇੰਜੀਨੀਅਰਿੰਗ ਤਕਨੀਕਾਂ ਜੋ ਤੁਹਾਡੇ ਪ੍ਰਾਂਪਟਾਂ ਦੇ ਨਤੀਜੇ ਬਿਹਤਰ ਬਣਾਉਂਦੀਆਂ ਹਨ | [ਵੀਡੀਓ](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [ਹੋਰ ਜਾਣੋ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [ਟੈਕਸਟ ਜਨਰੇਸ਼ਨ ਐਪਲੀਕੇਸ਼ਨ ਬਣਾਉਣਾ](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **ਬਣਾਓ:** Azure OpenAI / OpenAI API ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ ਟੈਕਸਟ ਜਨਰੇਸ਼ਨ ਐਪ | [ਵੀਡੀਓ](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [ਹੋਰ ਜਾਣੋ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [ਚੈਟ ਐਪਲੀਕੇਸ਼ਨ ਬਣਾਉਣਾ](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **ਬਣਾਓ:** ਚੈਟ ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਤਰੀਕੇ ਨਾਲ ਬਣਾਉਣ ਅਤੇ ਇੰਟੀਗ੍ਰੇਟ ਕਰਨ ਦੀਆਂ ਤਕਨੀਕਾਂ | [ਵੀਡੀਓ](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [ਹੋਰ ਜਾਣੋ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [ਸਰਚ ਐਪਲੀਕੇਸ਼ਨ ਅਤੇ ਵੈਕਟਰ ਡੇਟਾਬੇਸ ਬਣਾਉਣਾ](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **ਬਣਾਓ:** ਇੱਕ ਸਰਚ ਐਪਲੀਕੇਸ਼ਨ ਜੋ ਡੇਟਾ ਖੋਜਣ ਲਈ Embeddings ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ | [ਵੀਡੀਓ](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [ਹੋਰ ਜਾਣੋ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [ਇਮੇਜ ਜਨਰੇਸ਼ਨ ਐਪਲੀਕੇਸ਼ਨ ਬਣਾਉਣਾ](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **ਬਣਾਓ:** ਇੱਕ ਇਮੇਜ ਜਨਰੇਸ਼ਨ ਐਪਲੀਕੇਸ਼ਨ | [ਵੀਡੀਓ](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [ਹੋਰ ਜਾਣੋ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [ਲੋ ਕੋਡ AI ਐਪਲੀਕੇਸ਼ਨ ਬਣਾਉਣਾ](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **ਬਣਾਓ:** ਲੋ ਕੋਡ ਟੂਲਜ਼ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ ਜਨਰੇਟਿਵ AI ਐਪਲੀਕੇਸ਼ਨ | [ਵੀਡੀਓ](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [ਹੋਰ ਜਾਣੋ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [ਫੰਕਸ਼ਨ ਕਾਲਿੰਗ ਨਾਲ ਬਾਹਰੀ ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਇੰਟੀਗ੍ਰੇਟ ਕਰਨਾ](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **ਬਣਾਓ:** ਫੰਕਸ਼ਨ ਕਾਲਿੰਗ ਕੀ ਹੈ ਅਤੇ ਇਹ ਐਪਲੀਕੇਸ਼ਨਾਂ ਵਿੱਚ ਕਿਵੇਂ ਵਰਤੀ ਜਾਂਦੀ ਹੈ | [ਵੀਡੀਓ](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [ਹੋਰ ਜਾਣੋ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [AI ਐਪਲੀਕੇਸ਼ਨਾਂ ਲਈ UX ਡਿਜ਼ਾਈਨ ਕਰਨਾ](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **ਸਿੱਖੋ:** ਜਨਰੇਟਿਵ AI ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਵਿਕਸਿਤ ਕਰਦੇ ਸਮੇਂ UX ਡਿਜ਼ਾਈਨ ਦੇ ਸਿਧਾਂਤ ਕਿਵੇਂ ਲਾਗੂ ਕਰਨੇ ਹਨ | [ਵੀਡੀਓ](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [ਹੋਰ ਜਾਣੋ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [ਆਪਣੇ ਜਨਰੇਟਿਵ AI ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰਨਾ](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **ਸਿੱਖੋ:** AI ਸਿਸਟਮਾਂ ਨੂੰ ਹੋਣ ਵਾਲੇ ਖਤਰੇ ਅਤੇ ਜੋਖਮ ਅਤੇ ਇਨ੍ਹਾਂ ਸਿਸਟਮਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰਨ ਦੇ ਤਰੀਕੇ | [ਵੀਡੀਓ](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [ਹੋਰ ਜਾਣੋ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [ਜਨਰੇਟਿਵ AI ਐਪਲੀਕੇਸ਼ਨ ਲਾਈਫਸਾਈਕਲ](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **ਸਿੱਖੋ:** LLM ਲਾਈਫਸਾਈਕਲ ਅਤੇ LLMOps ਨੂੰ ਮੈਨੇਜ ਕਰਨ ਲਈ ਟੂਲਜ਼ ਅਤੇ ਮੈਟਰਿਕਸ | [ਵੀਡੀਓ](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [ਹੋਰ ਜਾਣੋ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) ਅਤੇ ਵੈਕਟਰ ਡੇਟਾਬੇਸ](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **ਬਣਾਓ:** RAG ਫਰੇਮਵਰਕ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਵੈਕਟਰ ਡੇਟਾਬੇਸ ਤੋਂ embeddings ਪ੍ਰਾਪਤ ਕਰਨ ਵਾਲੀ ਐਪਲੀਕੇਸ਼ਨ | [ਵੀਡੀਓ](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [ਹੋਰ ਜਾਣੋ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [ਓਪਨ ਸੋਰਸ ਮਾਡਲ ਅਤੇ Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **ਬਣਾਓ:** Hugging Face 'ਤੇ ਉਪਲਬਧ ਓਪਨ ਸੋਰਸ ਮਾਡਲ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ | [ਵੀਡੀਓ](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [ਹੋਰ ਜਾਣੋ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI ਏਜੰਟ](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **ਬਣਾਓ:** AI ਏਜੰਟ ਫਰੇਮਵਰਕ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ | [ਵੀਡੀਓ](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [ਹੋਰ ਜਾਣੋ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [LLM ਨੂੰ ਫਾਈਨ-ਟਿਊਨ ਕਰਨਾ](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **ਸਿੱਖੋ:** LLMs ਨੂੰ ਫਾਈਨ-ਟਿਊਨ ਕਰਨ ਦਾ ਕੀ, ਕਿਉਂ ਅਤੇ ਕਿਵੇਂ | [ਵੀਡੀਓ](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [ਹੋਰ ਜਾਣੋ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [SLM ਨਾਲ ਬਣਾਉਣਾ](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **ਸਿੱਖੋ:** ਛੋਟੇ ਭਾਸ਼ਾ ਮਾਡਲ ਨਾਲ ਬਣਾਉਣ ਦੇ ਫਾਇਦੇ | ਵੀਡੀਓ ਜਲਦੀ ਆ ਰਿਹਾ ਹੈ | [ਹੋਰ ਜਾਣੋ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Mistral ਮਾਡਲ ਨਾਲ ਬਣਾਉਣਾ](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **ਸਿੱਖੋ:** Mistral ਪਰਿਵਾਰ ਦੇ ਮਾਡਲਾਂ ਦੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਅਤੇ ਫਰਕ | ਵੀਡੀਓ ਜਲਦੀ ਆ ਰਿਹਾ ਹੈ | [ਹੋਰ ਜਾਣੋ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Meta ਮਾਡਲ ਨਾਲ ਬਣਾਉਣਾ](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **ਸਿੱਖੋ:** Meta ਪਰਿਵਾਰ ਦੇ ਮਾਡਲਾਂ ਦੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਅਤੇ ਫਰਕ | ਵੀਡੀਓ ਜਲਦੀ ਆ ਰਿਹਾ ਹੈ | [ਹੋਰ ਜਾਣੋ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 ਖਾਸ ਧੰਨਵਾਦ - -ਸਾਰੇ GitHub Actions ਅਤੇ ਵਰਕਫਲੋ ਬਣਾਉਣ ਲਈ [**John Aziz**](https://www.linkedin.com/in/john0isaac/) ਦਾ ਖਾਸ ਧੰਨਵਾਦ - -ਹਰ ਪਾਠ ਵਿੱਚ ਸਿੱਖਣ ਵਾਲੇ ਅਤੇ ਕੋਡ ਅਨੁਭਵ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ ਮੁੱਖ ਯੋਗਦਾਨ ਦੇਣ ਲਈ [**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) ਦਾ ਧੰਨਵਾਦ। - -## 🎒 ਹੋਰ ਕੋਰਸ - -ਸਾਡੀ ਟੀਮ ਹੋਰ ਕੋਰਸ ਵੀ ਤਿਆਰ ਕਰਦੀ ਹੈ! ਵੇਖੋ: - -- [**ਨਵਾਂ** Model Context Protocol for Beginners](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI Agents for Beginners](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Generative AI for Beginners using .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Generative AI for Beginners using JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML for Beginners](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Data Science for Beginners](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI for Beginners](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Cybersecurity for Beginners](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Web Dev for Beginners](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT for Beginners](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR Development for Beginners](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Mastering GitHub Copilot for AI Paired Programming](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Mastering GitHub Copilot for C#/.NET Developers](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Choose Your Own Copilot Adventure](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**ਅਸਵੀਕਾਰੋਪੱਤਰ**: -ਇਹ ਦਸਤਾਵੇਜ਼ AI ਅਨੁਵਾਦ ਸੇਵਾ [Co-op Translator](https://github.com/Azure/co-op-translator) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀਤਾ ਲਈ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਰੱਖੋ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸਮਰਥਤਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼ ਆਪਣੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਪ੍ਰਮਾਣਿਕ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਨਾਲ ਹੋਣ ਵਾਲੀਆਂ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀਆਂ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆਵਾਂ ਲਈ ਅਸੀਂ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ। \ No newline at end of file + + + + diff --git a/translations/pl/00-course-setup/01-setup-cloud.md b/translations/pl/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..54683d8ce --- /dev/null +++ b/translations/pl/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/pl/00-course-setup/02-setup-local.md b/translations/pl/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..563528a18 --- /dev/null +++ b/translations/pl/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/pl/00-course-setup/03-providers.md b/translations/pl/00-course-setup/03-providers.md new file mode 100644 index 000000000..ca2d14bc5 --- /dev/null +++ b/translations/pl/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/pl/00-course-setup/README.md b/translations/pl/00-course-setup/README.md index bb3ea6a6e..fb16f93f3 100644 --- a/translations/pl/00-course-setup/README.md +++ b/translations/pl/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# Rozpoczęcie kursu - -Jesteśmy bardzo podekscytowani, że zaczynasz ten kurs i zobaczysz, co zainspiruje Cię do stworzenia z wykorzystaniem Generative AI! - -Aby zapewnić Ci sukces, ta strona przedstawia kroki konfiguracji, wymagania techniczne oraz informacje, gdzie szukać pomocy w razie potrzeby. - -## Kroki konfiguracji - -Aby rozpocząć kurs, musisz wykonać następujące kroki. - -### 1. Forkuj to repozytorium - -[Zforkuj całe to repozytorium](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) na swoje konto GitHub, aby móc zmieniać kod i realizować wyzwania. Możesz także [dodać repozytorium do ulubionych (🌟)](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst), aby łatwiej je znaleźć wraz z powiązanymi repozytoriami. - -### 2. Utwórz codespace - -Aby uniknąć problemów z zależnościami podczas uruchamiania kodu, zalecamy korzystanie z tego kursu w [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst). - -Możesz to zrobić, wybierając opcję `Code` w swojej zforkowanej wersji repozytorium, a następnie wybierając opcję **Codespaces**. - -![Okno dialogowe pokazujące przyciski do utworzenia codespace](../../../00-course-setup/images/who-will-pay.webp) - -### 3. Przechowywanie kluczy API - -Bezpieczne przechowywanie kluczy API jest ważne przy tworzeniu każdej aplikacji. Zalecamy, aby nie przechowywać kluczy API bezpośrednio w kodzie. Umieszczenie takich danych w publicznym repozytorium może prowadzić do problemów z bezpieczeństwem, a nawet niechcianych kosztów, jeśli ktoś niepowołany je wykorzysta. -Oto krok po kroku, jak utworzyć plik `.env` dla Pythona i dodać `GITHUB_TOKEN`: - -1. **Przejdź do katalogu projektu**: Otwórz terminal lub wiersz poleceń i przejdź do katalogu głównego projektu, w którym chcesz utworzyć plik `.env`. - - ```bash - cd path/to/your/project - ``` - -2. **Utwórz plik `.env`**: Użyj swojego ulubionego edytora tekstu, aby utworzyć nowy plik o nazwie `.env`. Jeśli korzystasz z linii poleceń, możesz użyć `touch` (na systemach Unix) lub `echo` (na Windows): - - Systemy Unix: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **Edytuj plik `.env`**: Otwórz plik `.env` w edytorze tekstu (np. VS Code, Notepad++ lub innym). Dodaj następującą linię, zastępując `your_github_token_here` swoim rzeczywistym tokenem GitHub: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Zapisz plik**: Zapisz zmiany i zamknij edytor tekstu. - -5. **Zainstaluj `python-dotenv`**: Jeśli jeszcze tego nie zrobiłeś, musisz zainstalować pakiet `python-dotenv`, aby załadować zmienne środowiskowe z pliku `.env` do aplikacji Python. Możesz to zrobić za pomocą `pip`: - - ```bash - pip install python-dotenv - ``` - -6. **Załaduj zmienne środowiskowe w skrypcie Python**: W swoim skrypcie Python użyj pakietu `python-dotenv`, aby załadować zmienne środowiskowe z pliku `.env`: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -To wszystko! Pomyślnie utworzyłeś plik `.env`, dodałeś token GitHub i załadowałeś go do swojej aplikacji Python. - -## Jak uruchomić lokalnie na komputerze - -Aby uruchomić kod lokalnie na swoim komputerze, musisz mieć zainstalowaną jakąś wersję [Pythona](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -Następnie, aby korzystać z repozytorium, musisz je sklonować: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -Gdy wszystko będzie gotowe, możesz zacząć! - -## Kroki opcjonalne - -### Instalacja Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) to lekki instalator do instalacji [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Pythona oraz kilku pakietów. -Conda to menedżer pakietów, który ułatwia tworzenie i przełączanie się między różnymi [**wirtualnymi środowiskami**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) Pythona oraz pakietami. Przydaje się także do instalacji pakietów, które nie są dostępne przez `pip`. - -Możesz skorzystać z [przewodnika instalacji MiniConda](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst), aby ją zainstalować. - -Po zainstalowaniu Miniconda, musisz sklonować [repozytorium](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (jeśli jeszcze tego nie zrobiłeś). - -Następnie musisz utworzyć wirtualne środowisko. Aby to zrobić za pomocą Conda, stwórz nowy plik środowiska (_environment.yml_). Jeśli korzystasz z Codespaces, utwórz go w katalogu `.devcontainer`, czyli `.devcontainer/environment.yml`. - -Wypełnij plik środowiska poniższym fragmentem: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Jeśli pojawią się błędy podczas korzystania z conda, możesz ręcznie zainstalować Microsoft AI Libraries, używając poniższego polecenia w terminalu. - -``` -conda install -c microsoft azure-ai-ml -``` - -Plik środowiska określa potrzebne zależności. `` to nazwa, jaką chcesz nadać swojemu środowisku Conda, a `` to wersja Pythona, której chcesz użyć, np. `3` to najnowsza główna wersja Pythona. - -Po tym możesz utworzyć środowisko Conda, uruchamiając poniższe polecenia w wierszu poleceń/terminalu: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -W razie problemów zajrzyj do [przewodnika po środowiskach Conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst). - -### Korzystanie z Visual Studio Code z rozszerzeniem Python - -Zalecamy korzystanie z edytora [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) z zainstalowanym [rozszerzeniem do Pythona](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) podczas tego kursu. To jednak tylko zalecenie, a nie wymóg. - -> **Uwaga**: Otwierając repozytorium kursu w VS Code, masz możliwość skonfigurowania projektu w kontenerze. Dzieje się tak dzięki [specjalnemu katalogowi `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) znajdującemu się w repozytorium kursu. Więcej o tym później. - -> **Uwaga**: Po sklonowaniu i otwarciu katalogu w VS Code, program automatycznie zasugeruje instalację rozszerzenia do Pythona. - -> **Uwaga**: Jeśli VS Code zasugeruje ponowne otwarcie repozytorium w kontenerze, odrzuć tę prośbę, jeśli chcesz korzystać z lokalnie zainstalowanej wersji Pythona. - -### Korzystanie z Jupyter w przeglądarce - -Możesz także pracować nad projektem, korzystając ze środowiska [Jupyter](https://jupyter.org?WT.mc_id=academic-105485-koreyst) bezpośrednio w przeglądarce. Zarówno klasyczny Jupyter, jak i [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) oferują przyjemne środowisko do pracy z funkcjami takimi jak autouzupełnianie, podświetlanie składni itp. - -Aby uruchomić Jupyter lokalnie, przejdź do terminala/wiersza poleceń, przejdź do katalogu kursu i wykonaj: - -```bash -jupyter notebook -``` - -lub - -```bash -jupyterhub -``` - -To uruchomi instancję Jupyter, a adres URL do niej zostanie wyświetlony w oknie terminala. - -Po wejściu na ten adres zobaczysz plan kursu i będziesz mógł otworzyć dowolny plik `*.ipynb`. Na przykład `08-building-search-applications/python/oai-solution.ipynb`. - -### Uruchamianie w kontenerze - -Alternatywą dla konfiguracji wszystkiego na komputerze lub w Codespace jest użycie [kontenera](../../../00-course-setup/). Specjalny folder `.devcontainer` w repozytorium kursu umożliwia VS Code skonfigurowanie projektu w kontenerze. Poza Codespaces wymaga to instalacji Dockera i, szczerze mówiąc, trochę pracy, więc polecamy to tylko osobom z doświadczeniem w pracy z kontenerami. - -Jednym z najlepszych sposobów na zabezpieczenie kluczy API podczas korzystania z GitHub Codespaces jest użycie Codespace Secrets. Prosimy o zapoznanie się z przewodnikiem [Codespaces secrets management](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst), aby dowiedzieć się więcej. - -## Lekcje i wymagania techniczne - -Kurs składa się z 6 lekcji koncepcyjnych i 6 lekcji programistycznych. - -Do lekcji programistycznych używamy Azure OpenAI Service. Aby uruchomić ten kod, potrzebujesz dostępu do usługi Azure OpenAI oraz klucza API. Możesz złożyć wniosek o dostęp, [wypełniając ten formularz](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -Podczas oczekiwania na rozpatrzenie wniosku, każda lekcja programistyczna zawiera plik `README.md`, w którym możesz zobaczyć kod i wyniki. - -## Korzystanie z Azure OpenAI Service po raz pierwszy - -Jeśli korzystasz z Azure OpenAI Service po raz pierwszy, postępuj zgodnie z tym przewodnikiem, jak [utworzyć i wdrożyć zasób Azure OpenAI Service.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## Korzystanie z OpenAI API po raz pierwszy - -Jeśli korzystasz z OpenAI API po raz pierwszy, zapoznaj się z przewodnikiem, jak [utworzyć i korzystać z interfejsu.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## Poznaj innych uczestników - -Stworzyliśmy kanały na naszym oficjalnym serwerze [AI Community Discord](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst), aby umożliwić spotkania z innymi uczestnikami. To świetny sposób na nawiązanie kontaktów z innymi przedsiębiorcami, twórcami, studentami i wszystkimi, którzy chcą rozwijać się w Generative AI. - -[![Dołącz do kanału discord](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -Zespół projektu również będzie obecny na tym serwerze Discord, aby pomagać uczestnikom. - -## Współtwórz - -Ten kurs jest inicjatywą open-source. Jeśli zauważysz obszary do poprawy lub problemy, prosimy o utworzenie [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) lub zgłoszenie [GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -Zespół projektu będzie śledził wszystkie wkłady. Współtworzenie open source to świetny sposób na rozwój kariery w Generative AI. - -Większość wkładów wymaga zgody na Contributor License Agreement (CLA), w którym deklarujesz, że masz prawo i faktycznie udzielasz nam praw do korzystania z Twojego wkładu. Szczegóły znajdziesz na stronie [CLA, Contributor License Agreement](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Ważne: podczas tłumaczenia tekstów w tym repozytorium prosimy, aby nie korzystać z tłumaczeń maszynowych. Weryfikujemy tłumaczenia przez społeczność, więc prosimy o zgłaszanie się do tłumaczeń tylko w językach, w których jesteś biegły. - -Po przesłaniu pull request, bot CLA automatycznie sprawdzi, czy musisz dostarczyć CLA i odpowiednio oznaczy PR (np. etykietą, komentarzem). Wystarczy postępować zgodnie z instrukcjami bota. Musisz to zrobić tylko raz dla wszystkich repozytoriów korzystających z naszego CLA. - -Ten projekt przyjął [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst). Więcej informacji znajdziesz w FAQ dotyczących Kodeksu Postępowania lub możesz skontaktować się pod adresem [Email opencode](opencode@microsoft.com) w razie dodatkowych pytań lub uwag. - -## Zaczynamy - -Teraz, gdy wykonałeś wszystkie niezbędne kroki, zacznijmy od [wprowadzenia do Generative AI i LLM](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**Zastrzeżenie**: -Niniejszy dokument został przetłumaczony za pomocą usługi tłumaczenia AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mimo że dążymy do dokładności, prosimy mieć na uwadze, że tłumaczenia automatyczne mogą zawierać błędy lub nieścisłości. Oryginalny dokument w języku źródłowym powinien być uznawany za źródło autorytatywne. W przypadku informacji o kluczowym znaczeniu zalecane jest skorzystanie z profesjonalnego tłumaczenia wykonanego przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z korzystania z tego tłumaczenia. \ No newline at end of file + + + + diff --git a/translations/pl/00-course-setup/SETUP.md b/translations/pl/00-course-setup/SETUP.md deleted file mode 100644 index 99cc84a64..000000000 --- a/translations/pl/00-course-setup/SETUP.md +++ /dev/null @@ -1,149 +0,0 @@ - -# Skonfiguruj swoje środowisko deweloperskie - -Ten repozytorium i kurs zostały przygotowane z użyciem [kontenera deweloperskiego](https://containers.dev?WT.mc_id=academic-105485-koreyst), który zawiera uniwersalne środowisko uruchomieniowe wspierające Python3, .NET, Node.js oraz Java. Odpowiednia konfiguracja znajduje się w pliku `devcontainer.json` w folderze `.devcontainer/` w katalogu głównym tego repozytorium. - -Aby uruchomić kontener deweloperski, otwórz go w [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (środowisko w chmurze) lub w [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (środowisko lokalne). Szczegóły dotyczące działania kontenerów deweloperskich w VS Code znajdziesz w [tej dokumentacji](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst). - -> [!TIP] -> Zalecamy korzystanie z GitHub Codespaces, aby szybko zacząć pracę przy minimalnym wysiłku. Dla kont osobistych dostępna jest hojną [darmowa pula zasobów](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst). Skonfiguruj [limit czasu](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst), aby zatrzymywać lub usuwać nieaktywne codespaces i maksymalnie wykorzystać dostępne zasoby. - - -## 1. Wykonywanie zadań - -Każda lekcja może zawierać _opcjonalne_ zadania dostępne w jednym lub kilku językach programowania, takich jak: Python, .NET/C#, Java oraz JavaScript/TypeScript. W tej sekcji znajdziesz ogólne wskazówki dotyczące uruchamiania tych zadań. - -### 1.1 Zadania w Pythonie - -Zadania w Pythonie są dostarczane jako aplikacje (`.py`) lub notatniki Jupyter (`.ipynb`). -- Aby uruchomić notatnik, otwórz go w Visual Studio Code, kliknij _Select Kernel_ (w prawym górnym rogu) i wybierz domyślną opcję Python 3. Następnie możesz wybrać _Run All_, aby wykonać cały notatnik. -- Aby uruchomić aplikacje Python z linii poleceń, postępuj zgodnie z instrukcjami zawartymi w konkretnym zadaniu, aby wybrać odpowiednie pliki i podać wymagane argumenty. - -## 2. Konfiguracja dostawców usług - -Zadania **mogą** być również skonfigurowane do pracy z jednym lub kilkoma wdrożeniami dużych modeli językowych (LLM) za pośrednictwem obsługiwanych dostawców usług, takich jak OpenAI, Azure czy Hugging Face. Udostępniają oni _hostowany endpoint_ (API), do którego możemy uzyskać dostęp programowo, używając odpowiednich poświadczeń (klucz API lub token). W tym kursie omawiamy następujących dostawców: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) z różnorodnymi modelami, w tym podstawową serią GPT. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) z modelem OpenAI przygotowanym do zastosowań korporacyjnych. - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) dla modeli open-source i serwera inferencyjnego. - -**Do tych ćwiczeń będziesz potrzebować własnych kont**. Zadania są opcjonalne, więc możesz skonfigurować jednego, wszystkich lub żadnego z dostawców, w zależności od swoich zainteresowań. Kilka wskazówek dotyczących rejestracji: - -| Rejestracja | Koszt | Klucz API | Playground | Komentarze | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst) | [Cennik](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst) | [Klucze projektowe](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [No-Code, Web](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Dostępne różne modele | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst) | [Cennik](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst) | [Szybki start SDK](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Szybki start Studio](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Wymaga wcześniejszej rejestracji](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) | -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Cennik](https://huggingface.co/pricing) | [Tokeny dostępu](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst) | [Hugging Chat ma ograniczoną liczbę modeli](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Postępuj zgodnie z poniższymi wskazówkami, aby _skonfigurować_ to repozytorium do pracy z różnymi dostawcami. Zadania wymagające konkretnego dostawcy będą miały w nazwie pliku jeden z następujących tagów: - - `aoai` - wymaga endpointu i klucza Azure OpenAI - - `oai` - wymaga endpointu i klucza OpenAI - - `hf` - wymaga tokena Hugging Face - -Możesz skonfigurować jednego, żadnego lub wszystkich dostawców. Zadania powiązane z brakującymi poświadczeniami po prostu zwrócą błąd. - -### 2.1. Utwórz plik `.env` - -Zakładamy, że zapoznałeś się z powyższymi wskazówkami, zarejestrowałeś się u odpowiedniego dostawcy i uzyskałeś wymagane dane uwierzytelniające (API_KEY lub token). W przypadku Azure OpenAI zakładamy również, że masz aktywne wdrożenie usługi Azure OpenAI (endpoint) z co najmniej jednym modelem GPT do czatu. - -Następny krok to skonfigurowanie **lokalnych zmiennych środowiskowych** w następujący sposób: - - -1. W katalogu głównym znajdź plik `.env.copy`, który powinien zawierać coś takiego: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Skopiuj ten plik do `.env` za pomocą poniższego polecenia. Ten plik jest _ignorowany przez git_, co chroni Twoje sekrety. - - ```bash - cp .env.copy .env - ``` - -3. Wypełnij wartości (zamień symbole zastępcze po prawej stronie znaku `=`) zgodnie z opisem w następnej sekcji. - -3. (Opcjonalnie) Jeśli korzystasz z GitHub Codespaces, możesz zapisać zmienne środowiskowe jako _sekrety Codespaces_ powiązane z tym repozytorium. W takim przypadku nie musisz tworzyć lokalnego pliku .env. **Pamiętaj jednak, że ta opcja działa tylko w GitHub Codespaces.** Jeśli używasz Docker Desktop, nadal musisz skonfigurować plik .env. - - -### 2.2. Wypełnij plik `.env` - -Przyjrzyjmy się nazwom zmiennych, aby zrozumieć, co oznaczają: - -| Zmienna | Opis | -| :--- | :--- | -| HUGGING_FACE_API_KEY | Token dostępu użytkownika, który ustawiasz w swoim profilu | -| OPENAI_API_KEY | Klucz autoryzacyjny do korzystania z usługi OpenAI (poza Azure OpenAI) | -| AZURE_OPENAI_API_KEY | Klucz autoryzacyjny do korzystania z usługi Azure OpenAI | -| AZURE_OPENAI_ENDPOINT | Endpoint wdrożonej usługi Azure OpenAI | -| AZURE_OPENAI_DEPLOYMENT | Endpoint wdrożenia modelu do _generowania tekstu_ | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | Endpoint wdrożenia modelu do _osadzania tekstu_ | -| | | - -Uwaga: Ostatnie dwie zmienne Azure OpenAI odpowiadają domyślnemu modelowi do czatu (generowanie tekstu) oraz do wyszukiwania wektorowego (osadzanie). Instrukcje dotyczące ich ustawienia znajdziesz w odpowiednich zadaniach. - - -### 2.3 Konfiguracja Azure: z poziomu portalu - -Wartości endpointu i klucza Azure OpenAI znajdziesz w [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst), więc zacznijmy tam. - -1. Przejdź do [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -1. Kliknij opcję **Keys and Endpoint** w pasku bocznym (menu po lewej). -1. Kliknij **Show Keys** – powinieneś zobaczyć: KEY 1, KEY 2 oraz Endpoint. -1. Użyj wartości KEY 1 jako AZURE_OPENAI_API_KEY -1. Użyj wartości Endpoint jako AZURE_OPENAI_ENDPOINT - -Następnie potrzebujemy endpointów dla konkretnych wdrożonych modeli. - -1. Kliknij opcję **Model deployments** w pasku bocznym (menu po lewej) dla zasobu Azure OpenAI. -1. Na stronie docelowej kliknij **Manage Deployments** - -Zostaniesz przeniesiony do witryny Azure OpenAI Studio, gdzie znajdziesz pozostałe wartości, jak opisano poniżej. - -### 2.4 Konfiguracja Azure: z poziomu Studio - -1. Przejdź do [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **z poziomu swojego zasobu**, jak opisano powyżej. -1. Kliknij zakładkę **Deployments** (pasek boczny, po lewej), aby zobaczyć aktualnie wdrożone modele. -1. Jeśli wybrany model nie jest wdrożony, użyj opcji **Create new deployment**, aby go wdrożyć. -1. Będziesz potrzebować modelu do _generowania tekstu_ – zalecamy: **gpt-35-turbo** -1. Będziesz potrzebować modelu do _osadzania tekstu_ – zalecamy **text-embedding-ada-002** - -Teraz zaktualizuj zmienne środowiskowe, aby odzwierciedlały nazwę _Deployment name_ używaną w wdrożeniu. Zazwyczaj jest to ta sama nazwa co model, chyba że zmieniłeś ją ręcznie. Na przykład, możesz mieć: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**Nie zapomnij zapisać pliku .env po zakończeniu**. Możesz teraz zamknąć plik i wrócić do instrukcji uruchamiania notatnika. - -### 2.5 Konfiguracja OpenAI: z poziomu profilu - -Klucz API OpenAI znajdziesz w swoim [koncie OpenAI](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). Jeśli go nie masz, zarejestruj się i utwórz klucz API. Po uzyskaniu klucza wpisz go w zmienną `OPENAI_API_KEY` w pliku `.env`. - -### 2.6 Konfiguracja Hugging Face: z poziomu profilu - -Token Hugging Face znajdziesz w swoim profilu w sekcji [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). Nie udostępniaj go publicznie. Zamiast tego utwórz nowy token do użytku w tym projekcie i skopiuj go do pliku `.env` pod zmienną `HUGGING_FACE_API_KEY`. _Uwaga:_ Technicznie nie jest to klucz API, ale służy do uwierzytelniania, dlatego zachowujemy tę nazwę dla spójności. - -**Zastrzeżenie**: -Niniejszy dokument został przetłumaczony przy użyciu usługi tłumaczenia AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mimo że dążymy do dokładności, prosimy mieć na uwadze, że automatyczne tłumaczenia mogą zawierać błędy lub nieścisłości. Oryginalny dokument w języku źródłowym powinien być uznawany za źródło autorytatywne. W przypadku informacji krytycznych zalecane jest skorzystanie z profesjonalnego tłumaczenia wykonanego przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z korzystania z tego tłumaczenia. \ No newline at end of file diff --git a/translations/pl/04-prompt-engineering-fundamentals/README.md b/translations/pl/04-prompt-engineering-fundamentals/README.md index bd7e72dc5..0e6ddadf8 100644 --- a/translations/pl/04-prompt-engineering-fundamentals/README.md +++ b/translations/pl/04-prompt-engineering-fundamentals/README.md @@ -1,445 +1,15 @@ - -# Podstawy Inżynierii Promptów - -[![Podstawy Inżynierii Promptów](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.pl.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Wprowadzenie -Ten moduł obejmuje kluczowe pojęcia i techniki tworzenia skutecznych promptów w modelach generatywnej sztucznej inteligencji. Sposób, w jaki formułujesz prompt do LLM, ma znaczenie. Starannie przygotowany prompt może zapewnić lepszą jakość odpowiedzi. Ale co dokładnie oznaczają terminy takie jak _prompt_ i _inżynieria promptów_? I jak poprawić _wejście_ promptu, które wysyłam do LLM? Na te pytania postaramy się odpowiedzieć w tym i następnym rozdziale. - -_Generatywna AI_ potrafi tworzyć nowe treści (np. tekst, obrazy, dźwięk, kod itp.) w odpowiedzi na zapytania użytkownika. Osiąga to dzięki _Dużym Modelom Językowym_ (LLM), takim jak seria GPT firmy OpenAI („Generative Pre-trained Transformer”), które są trenowane do pracy z językiem naturalnym i kodem. - -Użytkownicy mogą teraz wchodzić w interakcje z tymi modelami za pomocą znanych paradygmatów, takich jak czat, bez potrzeby posiadania specjalistycznej wiedzy technicznej czy szkolenia. Modele są _oparte na promptach_ – użytkownicy wysyłają tekstowe wejście (prompt) i otrzymują odpowiedź AI (completion). Mogą następnie „rozmawiać z AI” iteracyjnie, w wieloetapowych konwersacjach, dopracowując prompt, aż odpowiedź spełni ich oczekiwania. - -„Prompty” stają się teraz głównym _interfejsem programistycznym_ dla aplikacji generatywnej AI, mówiąc modelom, co mają robić i wpływając na jakość zwracanych odpowiedzi. „Inżynieria promptów” to szybko rozwijająca się dziedzina, która koncentruje się na _projektowaniu i optymalizacji_ promptów, aby dostarczać spójne i wysokiej jakości odpowiedzi na dużą skalę. - -## Cele nauki - -W tej lekcji dowiemy się, czym jest inżynieria promptów, dlaczego jest ważna oraz jak tworzyć skuteczniejsze prompty dla danego modelu i celu aplikacji. Poznamy podstawowe pojęcia i najlepsze praktyki inżynierii promptów – oraz zapoznamy się z interaktywnym środowiskiem Jupyter Notebook „sandbox”, gdzie zobaczymy zastosowanie tych koncepcji na rzeczywistych przykładach. - -Pod koniec tej lekcji będziemy potrafili: - -1. Wyjaśnić, czym jest inżynieria promptów i dlaczego jest ważna. -2. Opisać składniki promptu i sposób ich użycia. -3. Poznać najlepsze praktyki i techniki inżynierii promptów. -4. Zastosować poznane techniki na rzeczywistych przykładach, korzystając z punktu końcowego OpenAI. - -## Kluczowe pojęcia - -Inżynieria promptów: Praktyka projektowania i udoskonalania wejść, które kierują modele AI do generowania pożądanych wyników. -Tokenizacja: Proces zamiany tekstu na mniejsze jednostki, zwane tokenami, które model może zrozumieć i przetworzyć. -Instruction-Tuned LLMs: Duże modele językowe (LLM), które zostały dostrojone za pomocą konkretnych instrukcji, aby poprawić dokładność i trafność odpowiedzi. - -## Środowisko do nauki - -Inżynieria promptów to obecnie bardziej sztuka niż nauka. Najlepszym sposobem na rozwinięcie intuicji jest _praktyka_ i podejście metodą prób i błędów, które łączy wiedzę z dziedziny zastosowania z zalecanymi technikami i optymalizacjami specyficznymi dla modelu. - -Dołączony do tej lekcji Jupyter Notebook oferuje środowisko _sandbox_, w którym możesz wypróbować to, czego się uczysz – na bieżąco lub jako część wyzwania kodowego na końcu. Aby wykonać ćwiczenia, potrzebujesz: - -1. **Klucz API Azure OpenAI** – punkt końcowy usługi dla wdrożonego LLM. -2. **Środowisko uruchomieniowe Pythona** – w którym można uruchomić Notebook. -3. **Lokalne zmienne środowiskowe** – _ukończ teraz kroki z [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst), aby się przygotować_. - -Notebook zawiera _początkowe_ ćwiczenia – ale zachęcamy do dodawania własnych sekcji _Markdown_ (opis) i _Code_ (zapytania promptów), aby wypróbować więcej przykładów lub pomysłów – i rozwijać intuicję projektowania promptów. - -## Ilustrowany przewodnik - -Chcesz zobaczyć ogólny obraz tego, co obejmuje ta lekcja, zanim zaczniesz? Sprawdź ten ilustrowany przewodnik, który przedstawia główne tematy i kluczowe wnioski do przemyślenia w każdym z nich. Mapa lekcji prowadzi od zrozumienia podstawowych pojęć i wyzwań do ich rozwiązania za pomocą odpowiednich technik inżynierii promptów i najlepszych praktyk. Zwróć uwagę, że sekcja „Zaawansowane techniki” w tym przewodniku odnosi się do treści omawianych w _następnym_ rozdziale tego kursu. - -![Ilustrowany przewodnik po inżynierii promptów](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.pl.png) - -## Nasz startup - -Porozmawiajmy teraz o tym, jak _ten temat_ wiąże się z misją naszego startupu, który ma na celu [wprowadzenie innowacji AI do edukacji](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). Chcemy tworzyć aplikacje AI wspierające _spersonalizowaną naukę_ – pomyślmy więc, jak różni użytkownicy naszej aplikacji mogą „projektować” prompty: - -- **Administratorzy** mogą poprosić AI o _analizę danych programów nauczania w celu zidentyfikowania luk w materiałach_. AI może podsumować wyniki lub zwizualizować je za pomocą kodu. -- **Nauczyciele** mogą poprosić AI o _wygenerowanie planu lekcji dla określonej grupy odbiorców i tematu_. AI może stworzyć spersonalizowany plan w określonym formacie. -- **Uczniowie** mogą poprosić AI o _prowadzenie korepetycji z trudnego przedmiotu_. AI może teraz prowadzić uczniów, oferując lekcje, wskazówki i przykłady dostosowane do ich poziomu. - -To tylko wierzchołek góry lodowej. Sprawdź [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) – otwartą bibliotekę promptów opracowaną przez ekspertów edukacyjnych – aby zobaczyć szersze możliwości! _Spróbuj uruchomić niektóre z tych promptów w sandboxie lub w OpenAI Playground, aby zobaczyć, co się stanie!_ - - - -## Czym jest inżynieria promptów? - -Zaczęliśmy tę lekcję od zdefiniowania **inżynierii promptów** jako procesu _projektowania i optymalizacji_ tekstowych wejść (promptów), aby dostarczać spójne i wysokiej jakości odpowiedzi (completion) dla określonego celu aplikacji i modelu. Możemy to traktować jako proces dwuetapowy: - -- _projektowanie_ początkowego promptu dla danego modelu i celu -- _doprecyzowywanie_ promptu iteracyjnie, aby poprawić jakość odpowiedzi - -To z konieczności proces metodą prób i błędów, który wymaga intuicji i wysiłku użytkownika, aby uzyskać optymalne wyniki. Dlaczego jest to ważne? Aby odpowiedzieć na to pytanie, musimy najpierw zrozumieć trzy pojęcia: - -- _Tokenizacja_ = jak model „widzi” prompt -- _Podstawowe LLM_ = jak model bazowy „przetwarza” prompt -- _Instruction-Tuned LLM_ = jak model może teraz rozumieć „zadania” - -### Tokenizacja - -LLM widzi prompt jako _ciąg tokenów_, gdzie różne modele (lub wersje modelu) mogą tokenizować ten sam prompt na różne sposoby. Ponieważ LLM są trenowane na tokenach (a nie na surowym tekście), sposób tokenizacji promptu ma bezpośredni wpływ na jakość generowanej odpowiedzi. - -Aby zrozumieć, jak działa tokenizacja, wypróbuj narzędzia takie jak [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) pokazane poniżej. Wklej swój prompt – i zobacz, jak jest zamieniany na tokeny, zwracając uwagę na to, jak traktowane są znaki białe i interpunkcja. Zwróć uwagę, że ten przykład pokazuje starszy model LLM (GPT-3) – więc próba z nowszym modelem może dać inny wynik. - -![Tokenizacja](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.pl.png) - -### Pojęcie: Modele bazowe - -Po tokenizacji promptu, główną funkcją ["Podstawowego LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (lub modelu bazowego) jest przewidywanie kolejnego tokena w sekwencji. Ponieważ LLM są trenowane na ogromnych zbiorach tekstów, mają dobre wyczucie statystycznych zależności między tokenami i mogą dokonać tego przewidywania z pewnym prawdopodobieństwem. Należy zauważyć, że nie rozumieją _znaczenia_ słów w promptach czy tokenach; widzą jedynie wzór, który mogą „uzupełnić” kolejnym przewidywaniem. Mogą kontynuować przewidywanie sekwencji aż do przerwania przez użytkownika lub spełnienia określonego warunku. - -Chcesz zobaczyć, jak działa uzupełnianie oparte na promptach? Wprowadź powyższy prompt do Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) z domyślnymi ustawieniami. System jest skonfigurowany tak, aby traktować prompt jako zapytanie o informacje – więc powinieneś zobaczyć odpowiedź spełniającą ten kontekst. - -A co jeśli użytkownik chciałby zobaczyć coś konkretnego, spełniającego określone kryteria lub cel zadania? Wtedy na scenę wchodzą _instruction-tuned_ LLM. - -![Podstawowy LLM - uzupełnianie czatu](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.pl.png) - -### Pojęcie: Instruction Tuned LLM - -[Instruction Tuned LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) zaczyna się od modelu bazowego i jest dostrajany za pomocą przykładów lub par wejście/wyjście (np. wieloetapowych „wiadomości”), które zawierają jasne instrukcje – a odpowiedź AI stara się te instrukcje realizować. - -Wykorzystuje to techniki takie jak Reinforcement Learning with Human Feedback (RLHF), które uczą model _podążania za instrukcjami_ i _uczenia się na podstawie informacji zwrotnej_, dzięki czemu generuje odpowiedzi lepiej dopasowane do praktycznych zastosowań i bardziej adekwatne do celów użytkownika. - -Wypróbujmy to – wróć do powyższego promptu, ale teraz zmień _wiadomość systemową_, aby zawierała następującą instrukcję jako kontekst: - -> _Podsumuj dostarczone treści dla ucznia drugiej klasy. Zachowaj wynik w jednym akapicie z 3-5 punktami._ - -Zobacz, jak wynik jest teraz dostosowany do pożądanego celu i formatu? Nauczyciel może teraz bezpośrednio wykorzystać tę odpowiedź na swoich slajdach na lekcji. - -![Instruction Tuned LLM - uzupełnianie czatu](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.pl.png) - -## Dlaczego potrzebujemy inżynierii promptów? - -Teraz, gdy wiemy, jak LLM przetwarzają prompty, porozmawiajmy o _dlaczego_ potrzebujemy inżynierii promptów. Odpowiedź leży w tym, że obecne LLM stawiają szereg wyzwań, które utrudniają _uzyskanie wiarygodnych i spójnych odpowiedzi_ bez wysiłku włożonego w konstrukcję i optymalizację promptów. Na przykład: - -1. **Odpowiedzi modelu są stochastyczne.** _Ten sam prompt_ prawdopodobnie wygeneruje różne odpowiedzi w różnych modelach lub wersjach modelu. Może też dawać różne wyniki w _tym samym modelu_ w różnych momentach. _Techniki inżynierii promptów pomagają zminimalizować te różnice, zapewniając lepsze zabezpieczenia_. - -1. **Modele mogą tworzyć fałszywe odpowiedzi.** Modele są trenowane na _dużych, ale skończonych_ zbiorach danych, co oznacza, że nie znają pojęć spoza zakresu treningu. W efekcie mogą generować odpowiedzi nieścisłe, wymyślone lub sprzeczne z faktami. _Techniki inżynierii promptów pomagają użytkownikom wykrywać i ograniczać takie fałszywki, np. prosząc AI o podanie źródeł lub uzasadnienia_. - -1. **Możliwości modeli będą się różnić.** Nowsze modele lub generacje modeli mają bogatsze możliwości, ale też unikalne cechy i kompromisy w kosztach i złożoności. _Inżynieria promptów pomaga opracować najlepsze praktyki i procesy, które ukrywają różnice i dostosowują się do wymagań specyficznych dla modelu w sposób skalowalny i bezproblemowy_. - -Zobaczmy to w praktyce w OpenAI lub Azure OpenAI Playground: - -- Użyj tego samego promptu z różnymi wdrożeniami LLM (np. OpenAI, Azure OpenAI, Hugging Face) – czy zauważyłeś różnice? -- Użyj tego samego promptu wielokrotnie z _tym samym_ wdrożeniem LLM (np. Azure OpenAI playground) – jak różniły się te odpowiedzi? - -### Przykład fałszywek - -W tym kursie używamy terminu **„fałszywka”** (fabrication) na określenie zjawiska, gdy LLM czasem generują informacje niezgodne z faktami z powodu ograniczeń w treningu lub innych czynników. Możesz też spotkać się z określeniem _„halucynacje”_ w popularnych artykułach lub publikacjach naukowych. Jednak zdecydowanie zalecamy używanie terminu _„fałszywka”_, aby nie antropomorfizować zachowania, przypisując maszynie cechy ludzkie. Wzmacnia to również [wytyczne dotyczące odpowiedzialnej AI](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) z perspektywy terminologii, eliminując terminy, które mogą być uznane za obraźliwe lub nieinkluzywne w niektórych kontekstach. - -Chcesz zobaczyć, jak działają fałszywki? Pomyśl o promptcie, który instruuje AI, aby wygenerowało treść na temat nieistniejący (aby mieć pewność, że nie znajduje się w zbiorze treningowym). Na przykład – wypróbowałem taki prompt: -# Plan lekcji: Wojna Marsjańska 2076 - -## Cel lekcji -Poznanie przyczyn, przebiegu oraz skutków Wojny Marsjańskiej 2076, a także zrozumienie jej wpływu na rozwój technologii i stosunki międzyplanetarne. - -## Wprowadzenie (10 minut) -- Krótkie omówienie tła historycznego: kolonizacja Marsa i napięcia między Ziemią a Marsjańskimi koloniami. -- Przedstawienie głównych stron konfliktu. - -## Główna część (30 minut) -### 1. Przyczyny Wojny Marsjańskiej -- Nierówności ekonomiczne i polityczne między Ziemią a Marsjańskimi koloniami. -- Konflikty o zasoby naturalne. -- Rola korporacji i rządów w eskalacji napięć. - -### 2. Przebieg konfliktu -- Najważniejsze bitwy i wydarzenia. -- Technologie wojskowe używane podczas wojny. -- Strategie i taktyki obu stron. - -### 3. Skutki wojny -- Zmiany polityczne i społeczne na Marsie i Ziemi. -- Postęp technologiczny wynikający z konfliktu. -- Długoterminowe konsekwencje dla stosunków międzyplanetarnych. - -## Podsumowanie (10 minut) -- Dyskusja na temat lekcji wyniesionych z Wojny Marsjańskiej. -- Refleksja nad znaczeniem pokoju i współpracy międzyplanetarnej. - -## Zadanie domowe -- Napisz krótki esej na temat: „Jak Wojna Marsjańska 2076 wpłynęła na przyszłość eksploracji kosmosu?” -Wyszukiwanie w sieci pokazało, że istniały fikcyjne relacje (np. seriale telewizyjne lub książki) o wojnach marsjańskich – ale żadnych z roku 2076. Zdrowy rozsądek podpowiada również, że 2076 to _przyszłość_, więc nie może być powiązany z prawdziwym wydarzeniem. - -Co się więc dzieje, gdy uruchomimy ten prompt u różnych dostawców LLM? - -> **Odpowiedź 1**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.pl.png) - -> **Odpowiedź 2**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.pl.png) - -> **Odpowiedź 3**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.pl.png) - -Jak można się było spodziewać, każdy model (lub jego wersja) generuje nieco inne odpowiedzi dzięki losowemu zachowaniu i różnicom w możliwościach modelu. Na przykład jeden model kieruje odpowiedź do uczniów ósmej klasy, podczas gdy inny zakłada odbiorcę na poziomie szkoły średniej. Jednak wszystkie trzy modele wygenerowały odpowiedzi, które mogłyby przekonać nieświadomego użytkownika, że wydarzenie było prawdziwe. - -Techniki inżynierii promptów, takie jak _metaprompting_ i _konfiguracja temperatury_, mogą w pewnym stopniu ograniczyć fałszywe informacje generowane przez modele. Nowe _architektury_ inżynierii promptów również bezproblemowo integrują nowe narzędzia i techniki w przepływ promptu, aby złagodzić lub zmniejszyć niektóre z tych efektów. - -## Studium przypadku: GitHub Copilot - -Zakończmy tę sekcję, przyglądając się, jak inżynieria promptów jest wykorzystywana w rzeczywistych rozwiązaniach, na przykładzie jednego studium przypadku: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot to Twój „AI Pair Programmer” – zamienia tekstowe prompt’y na uzupełnienia kodu i jest zintegrowany z Twoim środowiskiem programistycznym (np. Visual Studio Code), zapewniając płynne doświadczenie użytkownika. Jak udokumentowano w serii poniższych blogów, najwcześniejsza wersja opierała się na modelu OpenAI Codex – a inżynierowie szybko zdali sobie sprawę z potrzeby dostrojenia modelu i opracowania lepszych technik inżynierii promptów, aby poprawić jakość kodu. W lipcu [zaprezentowali ulepszony model AI, który wykracza poza Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst), oferujący jeszcze szybsze sugestie. - -Przeczytaj wpisy w kolejności, aby śledzić ich drogę rozwoju. - -- **Maj 2023** | [GitHub Copilot coraz lepiej rozumie Twój kod](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **Maj 2023** | [Od kuchni GitHub: Praca z LLM stojącymi za GitHub Copilot](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Cze 2023** | [Jak pisać lepsze prompt’y dla GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Lip 2023** | [.. GitHub Copilot wykracza poza Codex dzięki ulepszonemu modelowi AI](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Lip 2023** | [Przewodnik programisty po inżynierii promptów i LLM](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **Wrz 2023** | [Jak zbudować aplikację LLM dla przedsiębiorstw: Lekcje od GitHub Copilot](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -Możesz też przeglądać ich [blog inżynierski](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) w poszukiwaniu kolejnych wpisów, takich jak [ten](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst), który pokazuje, jak te modele i techniki są _stosowane_ do tworzenia rzeczywistych aplikacji. - ---- - - - -## Budowa promptu - -Widzieliśmy, dlaczego inżynieria promptów jest ważna – teraz zrozummy, jak prompt’y są _budowane_, abyśmy mogli ocenić różne techniki dla skuteczniejszego projektowania promptów. - -### Podstawowy prompt - -Zacznijmy od podstawowego promptu: tekstowego wejścia wysłanego do modelu bez dodatkowego kontekstu. Oto przykład – gdy wysyłamy pierwsze kilka słów hymnu narodowego USA do OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst), model natychmiast _uzupełnia_ odpowiedź kolejnymi wersami, ilustrując podstawowe zachowanie predykcyjne. - -| Prompt (Wejście) | Uzupełnienie (Wyjście) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | Wygląda na to, że zaczynasz słowa „The Star-Spangled Banner”, hymnu narodowego Stanów Zjednoczonych. Pełny tekst to ... | - -### Złożony prompt - -Teraz dodajmy kontekst i instrukcje do tego podstawowego promptu. [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) pozwala nam zbudować złożony prompt jako zbiór _wiadomości_ z: - -- parami wejście/wyjście odzwierciedlającymi dane _użytkownika_ i odpowiedź _asystenta_, -- wiadomością systemową ustawiającą kontekst zachowania lub osobowości asystenta. - -Żądanie ma teraz poniższą formę, gdzie _tokenizacja_ skutecznie wyłapuje istotne informacje z kontekstu i rozmowy. Zmiana kontekstu systemowego może mieć równie duży wpływ na jakość uzupełnień, co podane dane użytkownika. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Prompt z instrukcją - -W powyższych przykładach prompt użytkownika był prostym zapytaniem tekstowym, które można interpretować jako prośbę o informację. W promptach z _instrukcją_ możemy użyć tego tekstu, aby dokładniej określić zadanie, dając AI lepsze wskazówki. Oto przykład: - -| Prompt (Wejście) | Uzupełnienie (Wyjście) | Typ instrukcji | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Napisz opis Wojny Secesyjnej | _zwrócono prosty akapit_ | Prosty | -| Napisz opis Wojny Secesyjnej. Podaj kluczowe daty i wydarzenia oraz opisz ich znaczenie | _zwrócono akapit, a następnie listę kluczowych dat wydarzeń z opisami_ | Złożony | -| Napisz opis Wojny Secesyjnej w 1 akapicie. Podaj 3 punkty z kluczowymi datami i ich znaczeniem. Podaj 3 kolejne punkty z ważnymi postaciami historycznymi i ich wkładem. Zwróć wynik jako plik JSON | _zwraca bardziej rozbudowane szczegóły w polu tekstowym, sformatowane jako JSON, które można skopiować do pliku i zweryfikować_ | Złożony. Sformatowany.| - -## Główna treść - -W powyższych przykładach prompt był nadal dość otwarty, pozwalając LLM zdecydować, która część jego wstępnie wytrenowanego zbioru danych jest istotna. W wzorcu projektowym _główna treść_ tekst wejściowy dzielony jest na dwie części: - -- instrukcję (akcję), -- odpowiednią treść (która wpływa na akcję). - -Oto przykład, gdzie instrukcja brzmi: „podsumuj to w 2 zdaniach”. - -| Prompt (Wejście) | Uzupełnienie (Wyjście) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jowisz jest piątą planetą od Słońca i największą w Układzie Słonecznym. To gazowy olbrzym o masie jednej tysięcznej masy Słońca, ale dwukrotnie i pół większej niż wszystkich pozostałych planet Układu Słonecznego razem wziętych. Jowisz jest jednym z najjaśniejszych obiektów widocznych gołym okiem na nocnym niebie i był znany starożytnym cywilizacjom jeszcze przed zapisem historii. Został nazwany na cześć rzymskiego boga Jowisza.[19] Widoczny z Ziemi, Jowisz może być na tyle jasny, że jego odbite światło rzuca widoczne cienie,[20] i jest średnio trzecim najjaśniejszym naturalnym obiektem na nocnym niebie po Księżycu i Wenus.
**Podsumuj to w 2 krótkich zdaniach** | Jowisz, piąta planeta od Słońca, jest największą w Układzie Słonecznym i jednym z najjaśniejszych obiektów na nocnym niebie. Nazwany na cześć rzymskiego boga Jowisza, to gazowy olbrzym o masie dwukrotnie i pół większej niż wszystkich pozostałych planet Układu Słonecznego razem wziętych. | - -Segment głównej treści można wykorzystać na różne sposoby, aby uzyskać skuteczniejsze instrukcje: - -- **Przykłady** – zamiast mówić modelowi, co ma zrobić za pomocą jawnej instrukcji, podaj mu przykłady, a on sam wywnioskuje wzór. -- **Wskazówki** – po instrukcji dodaj „wskazówkę”, która przygotowuje uzupełnienie, kierując model ku bardziej trafnym odpowiedziom. -- **Szablony** – to powtarzalne „przepisy” na prompt’y z miejscami na zmienne, które można dostosować danymi do konkretnych zastosowań. - -Przyjrzyjmy się temu w praktyce. - -### Używanie przykładów - -To podejście polega na wykorzystaniu głównej treści do „nakarmienia modelu” przykładami pożądanego wyniku dla danej instrukcji i pozwoleniu mu wywnioskować wzór pożądanego wyjścia. W zależności od liczby podanych przykładów możemy mieć zero-shot prompting, one-shot prompting, few-shot prompting itd. - -Prompt składa się teraz z trzech elementów: - -- opisu zadania, -- kilku przykładów pożądanego wyniku, -- rozpoczęcia nowego przykładu (który staje się niejawnie opisem zadania). - -| Typ nauki | Prompt (Wejście) | Uzupełnienie (Wyjście) | -| :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------- | -| Zero-shot | „The Sun is Shining”. Przetłumacz na hiszpański | „El Sol está brillando”. | -| One-shot | „The Sun is Shining” => „El Sol está brillando”.
„It's a Cold and Windy Day” => | „Es un día frío y ventoso”. | -| Few-shot | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketball | -| | | | - -Zauważ, że w zero-shot prompting musieliśmy podać wyraźną instrukcję („Przetłumacz na hiszpański”), ale w przykładzie one-shot jest ona wywnioskowana. Przykład few-shot pokazuje, jak dodanie większej liczby przykładów pozwala modelom na dokładniejsze wnioskowanie bez dodatkowych instrukcji. - -### Wskazówki do promptu - -Inną techniką wykorzystania głównej treści jest podawanie _wskazówek_ zamiast przykładów. W tym przypadku dajemy modelowi delikatny impuls, _zaczynając_ od fragmentu, który odzwierciedla pożądany format odpowiedzi. Model „łapie wskazówkę” i kontynuuje w tym stylu. - -| Liczba wskazówek | Prompt (Wejście) | Uzupełnienie (Wyjście) | -| :---------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Jowisz jest piątą planetą od Słońca i największą w Układzie Słonecznym. To gazowy olbrzym o masie jednej tysięcznej masy Słońca, ale dwukrotnie i pół większej niż wszystkich pozostałych planet Układu Słonecznego razem wziętych. Jowisz jest jednym z najjaśniejszych obiektów widocznych gołym okiem na nocnym niebie, i był znany starożytnym cywilizacjom jeszcze przed zapisem historii. - -**Podsumuj to** | Jowisz jest największą planetą w Układzie Słonecznym i piątą od Słońca. To gazowy olbrzym o masie 1/1000 masy Słońca, ale cięższy niż wszystkie pozostałe planety razem wzięte. Starożytne cywilizacje znały Jowisza od dawna, a planeta jest łatwo widoczna na nocnym niebie. | -| 1 | Jowisz jest piątą planetą od Słońca i największą w Układzie Słonecznym. To gazowy olbrzym o masie jednej tysięcznej masy Słońca, ale dwa i pół razy większej niż wszystkich pozostałych planet razem wziętych. Jowisz jest jednym z najjaśniejszych obiektów widocznych gołym okiem na nocnym niebie i był znany starożytnym cywilizacjom jeszcze przed początkiem zapisanej historii.
**Podsumuj to**
Dowiedzieliśmy się, że Jowisz | jest piątą planetą od Słońca i największą w Układzie Słonecznym. To gazowy olbrzym o masie jednej tysięcznej masy Słońca, ale dwa i pół razy większej niż wszystkich pozostałych planet razem wziętych. Jest łatwo widoczny gołym okiem i znany od czasów starożytnych. | -| 2 | Jowisz jest piątą planetą od Słońca i największą w Układzie Słonecznym. To gazowy olbrzym o masie jednej tysięcznej masy Słońca, ale dwa i pół razy większej niż wszystkich pozostałych planet razem wziętych. Jowisz jest jednym z najjaśniejszych obiektów widocznych gołym okiem na nocnym niebie i był znany starożytnym cywilizacjom jeszcze przed początkiem zapisanej historii.
**Podsumuj to**
Top 3 fakty, które poznaliśmy: | 1. Jowisz jest piątą planetą od Słońca i największą w Układzie Słonecznym.
2. To gazowy olbrzym o masie jednej tysięcznej masy Słońca...
3. Jowisz jest widoczny gołym okiem od czasów starożytnych ... | -| | | | - -### Szablony promptów - -Szablon promptu to _zdefiniowany wcześniej przepis na prompt_, który można przechowywać i wykorzystywać wielokrotnie, aby zapewnić bardziej spójne doświadczenia użytkownika na dużą skalę. W najprostszej formie jest to po prostu zbiór przykładów promptów, takich jak [ten od OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst), który zawiera zarówno interaktywne komponenty promptu (wiadomości użytkownika i systemu), jak i format zapytania API – wspierając ponowne użycie. - -W bardziej złożonej formie, jak [ten przykład od LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst), zawiera _placeholdy_, które można zastąpić danymi z różnych źródeł (wejście użytkownika, kontekst systemu, zewnętrzne źródła danych itp.), aby dynamicznie generować prompt. Pozwala to tworzyć bibliotekę wielokrotnego użytku promptów, które mogą programowo zapewniać spójne doświadczenia użytkownika na dużą skalę. - -Ostatecznie prawdziwa wartość szablonów polega na możliwości tworzenia i publikowania _bibliotek promptów_ dla konkretnych dziedzin zastosowań – gdzie szablon promptu jest _optymalizowany_ pod kątem kontekstu aplikacji lub przykładów, które sprawiają, że odpowiedzi są bardziej trafne i precyzyjne dla docelowej grupy użytkowników. Repozytorium [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) jest świetnym przykładem takiego podejścia, gromadząc bibliotekę promptów dla edukacji z naciskiem na kluczowe cele, takie jak planowanie lekcji, projektowanie programów nauczania, tutoring uczniów itp. - -## Wspierające treści - -Jeśli myślimy o konstrukcji promptu jako o instrukcji (zadaniu) i celu (głównych treściach), to _treści wtórne_ są jak dodatkowy kontekst, który dostarczamy, aby **wpłynąć na wynik w jakiś sposób**. Mogą to być parametry strojenia, instrukcje formatowania, taksonomie tematów itp., które pomagają modelowi _dostosować_ odpowiedź do oczekiwanych celów lub wymagań użytkownika. - -Na przykład: Mając katalog kursów z rozbudowanymi metadanymi (nazwa, opis, poziom, tagi metadanych, prowadzący itp.) dla wszystkich dostępnych kursów w programie nauczania: - -- możemy zdefiniować instrukcję „podsumuj katalog kursów na semestr jesień 2023” -- możemy użyć głównych treści, aby podać kilka przykładów oczekiwanego wyniku -- możemy użyć treści wtórnych, aby wskazać 5 najważniejszych „tagów” zainteresowania. - -Wtedy model może wygenerować podsumowanie w formacie pokazanym przez przykłady – ale jeśli wynik zawiera wiele tagów, może priorytetowo traktować 5 tagów wskazanych w treściach wtórnych. - ---- - - - -## Najlepsze praktyki w promptowaniu - -Teraz, gdy wiemy, jak można _konstruować_ prompty, możemy zacząć myśleć o tym, jak je _projektować_, aby odzwierciedlały najlepsze praktyki. Możemy rozważać to w dwóch aspektach – posiadanie odpowiedniego _nastawienia_ i stosowanie właściwych _technik_. - -### Nastawienie w inżynierii promptów - -Inżynieria promptów to proces metodą prób i błędów, więc miej na uwadze trzy szerokie czynniki przewodnie: - -1. **Znajomość dziedziny ma znaczenie.** Dokładność i trafność odpowiedzi zależy od _dziedziny_, w której działa aplikacja lub użytkownik. Wykorzystaj swoją intuicję i wiedzę dziedzinową, aby **dostosować techniki**. Na przykład, definiuj _osobowości specyficzne dla dziedziny_ w promptach systemowych lub używaj _szablonów specyficznych dla dziedziny_ w promptach użytkownika. Dostarczaj treści wtórne odzwierciedlające kontekst dziedzinowy lub stosuj _wskazówki i przykłady specyficzne dla dziedziny_, aby nakierować model na znane wzorce użycia. - -2. **Znajomość modelu ma znaczenie.** Wiemy, że modele są z natury stochastyczne. Jednak implementacje modeli mogą się różnić pod względem użytego zbioru treningowego (wiedza wstępna), oferowanych możliwości (np. przez API lub SDK) oraz rodzaju treści, do których są optymalizowane (np. kod, obrazy, tekst). Poznaj mocne i słabe strony używanego modelu i wykorzystaj tę wiedzę, aby _priorytetyzować zadania_ lub tworzyć _dostosowane szablony_ zoptymalizowane pod kątem możliwości modelu. - -3. **Iteracja i walidacja mają znaczenie.** Modele szybko się rozwijają, podobnie jak techniki inżynierii promptów. Jako ekspert dziedzinowy możesz mieć dodatkowy kontekst lub kryteria specyficzne dla _Twojej_ aplikacji, które niekoniecznie dotyczą szerszej społeczności. Używaj narzędzi i technik inżynierii promptów, aby „rozpocząć” konstrukcję promptu, a następnie iteruj i weryfikuj wyniki, korzystając z własnej intuicji i wiedzy dziedzinowej. Zapisuj swoje spostrzeżenia i twórz **bazę wiedzy** (np. biblioteki promptów), która może służyć jako nowa podstawa dla innych, przyspieszając kolejne iteracje. - -## Najlepsze praktyki - -Przyjrzyjmy się teraz powszechnym najlepszym praktykom rekomendowanym przez praktyków z [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) i [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst). - -| Co | Dlaczego | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Testuj najnowsze modele. | Nowe generacje modeli prawdopodobnie mają ulepszone funkcje i jakość – ale mogą też generować wyższe koszty. Oceń ich wpływ, a następnie podejmij decyzję o migracji. | -| Oddziel instrukcje i kontekst | Sprawdź, czy Twój model/dostawca definiuje _delimitery_ do wyraźniejszego rozróżnienia instrukcji, treści głównych i wtórnych. To pomaga modelom dokładniej przypisywać wagi do tokenów. | -| Bądź konkretny i jasny | Podaj więcej szczegółów dotyczących oczekiwanego kontekstu, rezultatu, długości, formatu, stylu itp. To poprawi zarówno jakość, jak i spójność odpowiedzi. Zapisuj przepisy w wielokrotnego użytku szablonach. | -| Bądź opisowy, używaj przykładów | Modele mogą lepiej reagować na podejście „pokaż i opowiedz”. Zacznij od podejścia `zero-shot`, gdzie dajesz instrukcję (bez przykładów), a następnie spróbuj `few-shot` jako doprecyzowanie, podając kilka przykładów oczekiwanego wyniku. Używaj analogii. | -| Używaj wskazówek do rozpoczęcia odpowiedzi | Nakieruj model na oczekiwany rezultat, podając kilka początkowych słów lub fraz, które może wykorzystać jako punkt startowy odpowiedzi. | -| Powtarzaj (Double Down) | Czasem trzeba powtórzyć instrukcje modelowi. Podawaj instrukcje przed i po treści głównej, używaj instrukcji i wskazówek itd. Iteruj i weryfikuj, co działa najlepiej. | -| Kolejność ma znaczenie | Kolejność prezentowania informacji modelowi może wpływać na wynik, nawet w przykładach uczących, ze względu na efekt świeżości. Wypróbuj różne opcje, aby zobaczyć, co działa najlepiej. | -| Daj modelowi „wyjście awaryjne” | Zapewnij modelowi _alternatywną_ odpowiedź, którą może zwrócić, jeśli z jakiegoś powodu nie jest w stanie wykonać zadania. To zmniejsza ryzyko generowania fałszywych lub wymyślonych odpowiedzi. | -| | | - -Jak w przypadku każdej najlepszej praktyki, pamiętaj, że _Twoje doświadczenia mogą się różnić_ w zależności od modelu, zadania i dziedziny. Traktuj je jako punkt wyjścia i iteruj, aby znaleźć to, co działa najlepiej dla Ciebie. Nieustannie oceniaj proces inżynierii promptów, gdy pojawiają się nowe modele i narzędzia, koncentrując się na skalowalności procesu i jakości odpowiedzi. - - - -## Zadanie - -Gratulacje! Dotarłeś do końca lekcji! Czas przetestować niektóre z poznanych koncepcji i technik na prawdziwych przykładach! - -Do zadania użyjemy Jupyter Notebook z ćwiczeniami, które możesz wykonywać interaktywnie. Możesz też rozszerzyć Notebook o własne komórki Markdown i kodu, aby samodzielnie eksplorować pomysły i techniki. - -### Aby zacząć, zrób fork repozytorium, a następnie - -- (Zalecane) Uruchom GitHub Codespaces -- (Alternatywnie) Sklonuj repozytorium na lokalne urządzenie i użyj go z Docker Desktop -- (Alternatywnie) Otwórz Notebook w preferowanym środowisku uruchomieniowym Notebooków. - -### Następnie skonfiguruj zmienne środowiskowe - -- Skopiuj plik `.env.copy` z katalogu głównego repozytorium do `.env` i uzupełnij wartości `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` oraz `AZURE_OPENAI_DEPLOYMENT`. Wróć do sekcji [Learning Sandbox](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals), aby dowiedzieć się jak. - -### Następnie otwórz Jupyter Notebook - -- Wybierz kernel środowiska uruchomieniowego. Jeśli korzystasz z opcji 1 lub 2, po prostu wybierz domyślny kernel Python 3.10.x dostarczany przez kontener deweloperski. - -Jesteś gotowy do uruchamiania ćwiczeń. Pamiętaj, że nie ma tu _dobrych i złych_ odpowiedzi – chodzi o eksplorację opcji metodą prób i błędów oraz budowanie intuicji, co działa dla danego modelu i dziedziny zastosowania. - -_Z tego powodu w tej lekcji nie ma segmentów z rozwiązaniami kodu. Zamiast tego w Notebooku znajdziesz komórki Markdown zatytułowane „Moje rozwiązanie:”, które pokazują jeden przykładowy wynik do odniesienia._ - - - -## Sprawdzenie wiedzy - -Który z poniższych promptów jest dobry i spełnia rozsądne najlepsze praktyki? - -1. Pokaż mi obraz czerwonego samochodu -2. Pokaż mi obraz czerwonego samochodu marki Volvo, model XC90, zaparkowanego na klifie podczas zachodu słońca -3. Pokaż mi obraz czerwonego samochodu marki Volvo, model XC90 - -Odp.: 2, to najlepszy prompt, ponieważ podaje szczegóły „co” i wchodzi w konkret (nie tylko dowolny samochód, ale konkretną markę i model) oraz opisuje ogólne otoczenie. 3 jest kolejnym najlepszym, bo też zawiera dużo opisu. - -## 🚀 Wyzwanie - -Sprawdź, czy potrafisz wykorzystać technikę „wskazówki” z promptem: Uzupełnij zdanie „Pokaż mi obraz czerwonego samochodu marki Volvo i …”. Jaką odpowiedź otrzymujesz i jak byś ją ulepszył? - -## Świetna robota! Kontynuuj naukę - -Chcesz dowiedzieć się więcej o różnych koncepcjach inżynierii promptów? Przejdź do [strony z dalszą nauką](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst), gdzie znajdziesz inne świetne materiały na ten temat. - -Przejdź do Lekcji 5, gdzie omówimy [zaawansowane techniki promptowania](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**Zastrzeżenie**: -Niniejszy dokument został przetłumaczony za pomocą usługi tłumaczenia AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mimo że dążymy do jak największej dokładności, prosimy mieć na uwadze, że tłumaczenia automatyczne mogą zawierać błędy lub nieścisłości. Oryginalny dokument w języku źródłowym powinien być uznawany za źródło autorytatywne. W przypadku informacji o kluczowym znaczeniu zalecane jest skorzystanie z profesjonalnego tłumaczenia wykonanego przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z korzystania z tego tłumaczenia. \ No newline at end of file + + + + + + + diff --git a/translations/pl/09-building-image-applications/README.md b/translations/pl/09-building-image-applications/README.md index 0fade72d2..ec8db5798 100644 --- a/translations/pl/09-building-image-applications/README.md +++ b/translations/pl/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# Tworzenie aplikacji do generowania obrazów - -[![Tworzenie aplikacji do generowania obrazów](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.pl.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLM to nie tylko generowanie tekstu. Możliwe jest także tworzenie obrazów na podstawie opisów tekstowych. Obrazy jako modalność mogą być bardzo przydatne w wielu dziedzinach, takich jak MedTech, architektura, turystyka, tworzenie gier i inne. W tym rozdziale przyjrzymy się dwóm najpopularniejszym modelom generowania obrazów: DALL-E i Midjourney. - -## Wprowadzenie - -W tej lekcji omówimy: - -- Generowanie obrazów i dlaczego jest to przydatne. -- DALL-E i Midjourney, czym są i jak działają. -- Jak zbudować aplikację do generowania obrazów. - -## Cele nauki - -Po ukończeniu tej lekcji będziesz potrafił: - -- Zbudować aplikację do generowania obrazów. -- Określić granice działania aplikacji za pomocą meta promptów. -- Pracować z DALL-E i Midjourney. - -## Dlaczego warto tworzyć aplikację do generowania obrazów? - -Aplikacje do generowania obrazów to świetny sposób na poznanie możliwości Generatywnej Sztucznej Inteligencji. Mogą być wykorzystywane na przykład do: - -- **Edycji i syntezy obrazów**. Możesz generować obrazy do różnych zastosowań, takich jak edycja czy synteza obrazów. - -- **Zastosowań w różnych branżach**. Mogą być też używane do tworzenia obrazów dla branż takich jak MedTech, turystyka, tworzenie gier i inne. - -## Scenariusz: Edu4All - -W ramach tej lekcji będziemy kontynuować pracę z naszym startupem Edu4All. Uczniowie będą tworzyć obrazy do swoich zadań – jakie dokładnie obrazy, to już ich wybór, mogą to być ilustracje do własnej bajki, stworzenie nowej postaci do historii lub pomoc w wizualizacji pomysłów i koncepcji. - -Oto co uczniowie Edu4All mogliby wygenerować na przykład podczas pracy w klasie nad zabytkami: - -![Startup Edu4All, lekcja o zabytkach, Wieża Eiffla](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.pl.png) - -używając promptu: - -> "Pies obok Wieży Eiffla w porannym świetle" - -## Czym są DALL-E i Midjourney? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) i [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) to dwa z najpopularniejszych modeli generowania obrazów, które pozwalają na tworzenie obrazów na podstawie promptów tekstowych. - -### DALL-E - -Zacznijmy od DALL-E, który jest modelem Generatywnej AI generującym obrazy na podstawie opisów tekstowych. - -> [DALL-E to połączenie dwóch modeli, CLIP i diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP** to model generujący embeddingi, czyli numeryczne reprezentacje danych, z obrazów i tekstu. - -- **Diffused attention** to model generujący obrazy na podstawie embeddingów. DALL-E jest trenowany na zbiorze obrazów i tekstów i może tworzyć obrazy na podstawie opisów tekstowych. Na przykład, DALL-E może wygenerować obraz kota w kapeluszu lub psa z irokezem. - -### Midjourney - -Midjourney działa podobnie do DALL-E, generując obrazy na podstawie promptów tekstowych. Midjourney również może tworzyć obrazy na podstawie promptów takich jak „kot w kapeluszu” lub „pies z irokezem”. - -![Obraz wygenerowany przez Midjourney, mechaniczny gołąb](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Źródło: Wikipedia, obraz wygenerowany przez Midjourney_ - -## Jak działają DALL-E i Midjourney - -Najpierw [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). DALL-E to model Generatywnej AI oparty na architekturze transformera z _autoregresyjnym transformerem_. - -_Autoregresyjny transformer_ definiuje sposób, w jaki model generuje obrazy z opisów tekstowych – tworzy obraz piksel po pikselu, wykorzystując wygenerowane piksele do stworzenia kolejnych. Przechodzi przez wiele warstw w sieci neuronowej, aż obraz jest kompletny. - -Dzięki temu procesowi DALL-E kontroluje atrybuty, obiekty, cechy i inne elementy obrazu, który generuje. Jednak DALL-E 2 i 3 oferują jeszcze większą kontrolę nad generowanym obrazem. - -## Budowa pierwszej aplikacji do generowania obrazów - -Co jest potrzebne, aby zbudować aplikację do generowania obrazów? Potrzebujesz następujących bibliotek: - -- **python-dotenv** – zalecane jest użycie tej biblioteki, aby przechowywać sekrety w pliku _.env_ z dala od kodu. -- **openai** – ta biblioteka służy do komunikacji z API OpenAI. -- **pillow** – do pracy z obrazami w Pythonie. -- **requests** – do wykonywania zapytań HTTP. - -1. Utwórz plik _.env_ z następującą zawartością: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Znajdź te informacje w Azure Portal dla swojego zasobu w sekcji "Keys and Endpoint". - -1. Zbierz powyższe biblioteki w pliku _requirements.txt_ w ten sposób: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. Następnie utwórz środowisko wirtualne i zainstaluj biblioteki: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Dla Windows użyj następujących poleceń, aby utworzyć i aktywować środowisko wirtualne: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. Dodaj poniższy kod do pliku _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Wyjaśnijmy ten kod: - -- Najpierw importujemy potrzebne biblioteki, w tym OpenAI, dotenv, requests oraz Pillow. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Następnie ładujemy zmienne środowiskowe z pliku _.env_. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- Potem ustawiamy endpoint, klucz do API OpenAI, wersję i typ. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- Następnie generujemy obraz: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - Powyższy kod zwraca obiekt JSON zawierający URL wygenerowanego obrazu. Możemy użyć tego URL, aby pobrać obraz i zapisać go do pliku. - -- Na koniec otwieramy obraz i wyświetlamy go za pomocą standardowej przeglądarki obrazów: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Szczegóły dotyczące generowania obrazu - -Przyjrzyjmy się dokładniej kodowi generującemu obraz: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** to tekstowy prompt używany do generowania obrazu. W tym przypadku jest to "Królik na koniu, trzymający lizaka, na mglistym łące, gdzie rosną żonkile". -- **size** to rozmiar generowanego obrazu. Tutaj generujemy obraz o wymiarach 1024x1024 pikseli. -- **n** to liczba generowanych obrazów. W tym przypadku generujemy dwa obrazy. -- **temperature** to parametr kontrolujący losowość wyjścia modelu Generatywnej AI. Temperatura to wartość od 0 do 1, gdzie 0 oznacza deterministyczne wyjście, a 1 – losowe. Domyślna wartość to 0.7. - -W kolejnej sekcji omówimy więcej możliwości pracy z obrazami. - -## Dodatkowe możliwości generowania obrazów - -Jak widzieliśmy, udało się wygenerować obraz za pomocą kilku linijek kodu w Pythonie. Jednak możliwości jest znacznie więcej. - -Możesz także: - -- **Wykonywać edycje**. Dostarczając istniejący obraz, maskę i prompt, możesz zmienić obraz. Na przykład możesz dodać coś do części obrazu. Wyobraź sobie nasz obraz królika – możesz dodać mu kapelusz. Robisz to, podając obraz, maskę (wskazującą obszar do zmiany) oraz tekstowy prompt opisujący, co ma zostać zrobione. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - Obraz bazowy zawierałby tylko królika, a końcowy obraz miałby kapelusz na króliku. - -- **Tworzyć wariacje**. Polega to na tym, że bierzesz istniejący obraz i prosisz o stworzenie wariacji. Aby to zrobić, podajesz obraz i prompt tekstowy oraz kod w ten sposób: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Uwaga, ta funkcja jest dostępna tylko w OpenAI - -## Temperatura - -Temperatura to parametr kontrolujący losowość wyjścia modelu Generatywnej AI. Wartość temperatury mieści się w przedziale od 0 do 1, gdzie 0 oznacza wyjście deterministyczne, a 1 – losowe. Domyślnie jest ustawiona na 0.7. - -Spójrzmy na przykład działania temperatury, uruchamiając ten sam prompt dwukrotnie: - -> Prompt: "Królik na koniu, trzymający lizaka, na mglistym łące, gdzie rosną żonkile" - -![Królik na koniu trzymający lizaka, wersja 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.pl.png) - -Teraz uruchommy ten sam prompt jeszcze raz, aby zobaczyć, że nie otrzymamy dokładnie tego samego obrazu: - -![Wygenerowany obraz królika na koniu](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.pl.png) - -Jak widać, obrazy są podobne, ale nie identyczne. Spróbujmy zmienić wartość temperatury na 0.1 i zobaczyć, co się stanie: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Zmiana temperatury - -Spróbujmy więc uczynić odpowiedź bardziej deterministyczną. Z dwóch wygenerowanych obrazów widzimy, że na pierwszym jest królik, a na drugim koń, więc obrazy znacznie się różnią. - -Zmieńmy więc nasz kod i ustawmy temperaturę na 0, tak: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Po uruchomieniu tego kodu otrzymasz te dwa obrazy: - -- ![Temperatura 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.pl.png) -- ![Temperatura 0, v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.pl.png) - -Tutaj wyraźnie widać, że obrazy są do siebie bardziej podobne. - -## Jak definiować granice działania aplikacji za pomocą metapromptów - -W naszej demonstracji możemy już generować obrazy dla klientów. Jednak musimy ustalić pewne granice działania aplikacji. - -Na przykład, nie chcemy generować obrazów nieodpowiednich do pracy (NSFW) lub nieodpowiednich dla dzieci. - -Możemy to zrobić za pomocą _metapromptów_. Metaprompt to tekstowy prompt używany do kontrolowania wyjścia modelu Generatywnej AI. Na przykład, możemy użyć metapromptów, aby zapewnić, że generowane obrazy są bezpieczne do pracy lub odpowiednie dla dzieci. - -### Jak to działa? - -Jak działają metaprompt? - -Metaprompt to tekstowy prompt, który kontroluje wyjście modelu Generatywnej AI. Umieszcza się go przed właściwym promptem i służy do kontrolowania wyjścia modelu. Metaprompt jest osadzany w aplikacjach, aby kontrolować wyjście modelu, łącząc prompt i metaprompt w jeden tekstowy prompt. - -Przykładem metaprompt może być następujący: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Zobaczmy teraz, jak możemy użyć metapromptów w naszej demonstracji. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -Z powyższego promptu widać, że wszystkie generowane obrazy uwzględniają metaprompt. - -## Zadanie – umożliwmy uczniom tworzenie obrazów - -Przedstawiliśmy Edu4All na początku tej lekcji. Teraz czas umożliwić uczniom generowanie obrazów do ich zadań. - -Uczniowie stworzą obrazy do swoich zadań zawierające zabytki – jakie dokładnie zabytki, to już ich wybór. Zadaniem uczniów jest wykorzystanie kreatywności, aby umieścić te zabytki w różnych kontekstach. - -## Rozwiązanie - -Oto jedno z możliwych rozwiązań: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Świetna robota! Kontynuuj naukę - -Po ukończeniu tej lekcji sprawdź naszą [kolekcję materiałów do nauki Generatywnej AI](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst), aby dalej rozwijać swoją wiedzę! - -Przejdź do Lekcji 10, gdzie omówimy, jak [tworzyć aplikacje AI z użyciem low-code](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**Zastrzeżenie**: -Niniejszy dokument został przetłumaczony za pomocą usługi tłumaczenia AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mimo że dążymy do jak największej dokładności, prosimy mieć na uwadze, że automatyczne tłumaczenia mogą zawierać błędy lub nieścisłości. Oryginalny dokument w języku źródłowym powinien być uznawany za źródło autorytatywne. W przypadku informacji o kluczowym znaczeniu zalecane jest skorzystanie z profesjonalnego tłumaczenia wykonanego przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z korzystania z tego tłumaczenia. \ No newline at end of file + + + + diff --git a/translations/pl/12-designing-ux-for-ai-applications/README.md b/translations/pl/12-designing-ux-for-ai-applications/README.md index 37f262867..bc0df7fd5 100644 --- a/translations/pl/12-designing-ux-for-ai-applications/README.md +++ b/translations/pl/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# Projektowanie UX dla aplikacji AI - -[![Projektowanie UX dla aplikacji AI](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.pl.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Kliknij powyższy obraz, aby obejrzeć wideo z tej lekcji)_ - -Doświadczenie użytkownika to bardzo ważny aspekt tworzenia aplikacji. Użytkownicy muszą móc korzystać z Twojej aplikacji w efektywny sposób, aby wykonywać zadania. Efektywność to jedno, ale musisz także projektować aplikacje tak, aby mogły być używane przez każdego, aby były _dostępne_. Ten rozdział skupi się na tym obszarze, abyś mógł zaprojektować aplikację, z której ludzie będą chcieli i mogli korzystać. - -## Wprowadzenie - -Doświadczenie użytkownika to sposób, w jaki użytkownik wchodzi w interakcję i korzysta z konkretnego produktu lub usługi, czy to systemu, narzędzia, czy projektu. Podczas tworzenia aplikacji AI, deweloperzy skupiają się nie tylko na zapewnieniu skutecznego doświadczenia użytkownika, ale także na jego etyczności. W tej lekcji omówimy, jak budować aplikacje sztucznej inteligencji (AI), które odpowiadają na potrzeby użytkowników. - -Lekcja obejmie następujące obszary: - -- Wprowadzenie do doświadczenia użytkownika i zrozumienie potrzeb użytkowników -- Projektowanie aplikacji AI z myślą o zaufaniu i przejrzystości -- Projektowanie aplikacji AI z myślą o współpracy i informacji zwrotnej - -## Cele nauki - -Po ukończeniu tej lekcji będziesz potrafił: - -- Zrozumieć, jak tworzyć aplikacje AI spełniające potrzeby użytkowników. -- Projektować aplikacje AI, które promują zaufanie i współpracę. - -### Wymagania wstępne - -Poświęć trochę czasu i przeczytaj więcej o [doświadczeniu użytkownika i design thinking.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Wprowadzenie do doświadczenia użytkownika i zrozumienie potrzeb użytkowników - -W naszej fikcyjnej edukacyjnej firmie startupowej mamy dwóch głównych użytkowników: nauczycieli i uczniów. Każda z tych grup ma unikalne potrzeby. Projektowanie skoncentrowane na użytkowniku stawia użytkownika na pierwszym miejscu, zapewniając, że produkty są istotne i korzystne dla tych, dla których są przeznaczone. - -Aplikacja powinna być **użyteczna, niezawodna, dostępna i przyjemna** aby zapewnić dobre doświadczenie użytkownika. - -### Użyteczność - -Bycie użytecznym oznacza, że aplikacja ma funkcje odpowiadające jej zamierzonemu celowi, na przykład automatyzację procesu oceniania lub generowanie fiszek do powtórek. Aplikacja automatyzująca ocenianie powinna być w stanie dokładnie i efektywnie przydzielać oceny pracom uczniów na podstawie wcześniej ustalonych kryteriów. Podobnie aplikacja generująca fiszki powtórkowe powinna tworzyć odpowiednie i różnorodne pytania na podstawie swoich danych. - -### Niezawodność - -Bycie niezawodnym oznacza, że aplikacja może wykonywać swoje zadanie konsekwentnie i bez błędów. Jednak AI, podobnie jak ludzie, nie jest doskonała i może popełniać błędy. Aplikacje mogą napotkać błędy lub nieoczekiwane sytuacje, które wymagają interwencji lub korekty przez człowieka. Jak radzisz sobie z błędami? W ostatniej części tej lekcji omówimy, jak systemy i aplikacje AI są projektowane z myślą o współpracy i informacji zwrotnej. - -### Dostępność - -Bycie dostępnym oznacza rozszerzenie doświadczenia użytkownika na osoby o różnych zdolnościach, w tym osoby z niepełnosprawnościami, zapewniając, że nikt nie zostanie pominięty. Stosując się do wytycznych i zasad dostępności, rozwiązania AI stają się bardziej inkluzywne, użyteczne i korzystne dla wszystkich użytkowników. - -### Przyjemność - -Bycie przyjemnym oznacza, że korzystanie z aplikacji sprawia radość. Atrakcyjne doświadczenie użytkownika może mieć pozytywny wpływ na użytkownika, zachęcając go do powrotu do aplikacji i zwiększając przychody firmy. - -![obraz ilustrujący kwestie UX w AI](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.pl.png) - -Nie każdy problem da się rozwiązać za pomocą AI. AI ma na celu wspomaganie doświadczenia użytkownika, czy to poprzez automatyzację ręcznych zadań, czy personalizację doświadczeń użytkownika. - -## Projektowanie aplikacji AI z myślą o zaufaniu i przejrzystości - -Budowanie zaufania jest kluczowe podczas projektowania aplikacji AI. Zaufanie zapewnia użytkownikowi pewność, że aplikacja wykona zadanie, dostarczy wyniki konsekwentnie, a wyniki będą tym, czego użytkownik potrzebuje. Ryzykiem w tym obszarze jest brak zaufania oraz nadmierne zaufanie. Brak zaufania pojawia się, gdy użytkownik ma małe lub żadne zaufanie do systemu AI, co prowadzi do odrzucenia aplikacji. Nadmierne zaufanie pojawia się, gdy użytkownik przecenia możliwości systemu AI, co prowadzi do zbyt dużego zaufania do systemu. Na przykład w przypadku automatycznego systemu oceniania nadmierne zaufanie może spowodować, że nauczyciel nie sprawdzi niektórych prac, aby upewnić się, że system działa poprawnie. Może to skutkować niesprawiedliwymi lub niedokładnymi ocenami dla uczniów lub utraconymi okazjami do informacji zwrotnej i poprawy. - -Dwa sposoby, aby zaufanie było centralnym elementem projektu, to wyjaśnialność i kontrola. - -### Wyjaśnialność - -Gdy AI pomaga podejmować decyzje, takie jak przekazywanie wiedzy przyszłym pokoleniom, kluczowe jest, aby nauczyciele i rodzice rozumieli, jak podejmowane są decyzje przez AI. To jest wyjaśnialność – zrozumienie, jak aplikacje AI podejmują decyzje. Projektowanie z myślą o wyjaśnialności obejmuje dodawanie szczegółów i przykładów tego, co aplikacja AI potrafi zrobić. Na przykład zamiast "Rozpocznij pracę z AI nauczycielem", system może użyć: "Podsumuj swoje notatki, aby łatwiej się uczyć z pomocą AI." - -![strona startowa aplikacji z jasnym przedstawieniem wyjaśnialności w aplikacjach AI](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.pl.png) - -Innym przykładem jest sposób, w jaki AI wykorzystuje dane użytkownika i dane osobowe. Na przykład użytkownik o profilu ucznia może mieć ograniczenia wynikające z jego profilu. AI może nie ujawniać odpowiedzi na pytania, ale może pomóc użytkownikowi przemyśleć, jak rozwiązać problem. - -![AI odpowiadające na pytania na podstawie profilu użytkownika](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.pl.png) - -Ostatnim kluczowym elementem wyjaśnialności jest uproszczenie wyjaśnień. Uczniowie i nauczyciele mogą nie być ekspertami AI, dlatego wyjaśnienia dotyczące tego, co aplikacja może lub nie może zrobić, powinny być uproszczone i łatwe do zrozumienia. - -![uproszczone wyjaśnienia dotyczące możliwości AI](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.pl.png) - -### Kontrola - -Generatywne AI tworzy współpracę między AI a użytkownikiem, gdzie na przykład użytkownik może modyfikować zapytania, aby uzyskać różne wyniki. Dodatkowo, po wygenerowaniu wyniku, użytkownicy powinni mieć możliwość modyfikacji rezultatów, co daje im poczucie kontroli. Na przykład podczas korzystania z Bing możesz dostosować zapytanie pod kątem formatu, tonu i długości. Możesz także wprowadzać zmiany w wyniku i modyfikować go, jak pokazano poniżej: - -![Wyniki wyszukiwania Bing z opcjami modyfikacji zapytania i wyniku](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.pl.png) - -Inną funkcją w Bing, która pozwala użytkownikowi mieć kontrolę nad aplikacją, jest możliwość wyrażenia zgody lub rezygnacji z danych wykorzystywanych przez AI. W aplikacji szkolnej uczeń może chcieć korzystać zarówno ze swoich notatek, jak i zasobów nauczyciela jako materiału do powtórek. - -![Wyniki wyszukiwania Bing z opcjami modyfikacji zapytania i wyniku](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.pl.png) - -> Projektując aplikacje AI, kluczowa jest intencjonalność, aby użytkownicy nie mieli nadmiernego zaufania i nie stawiali nierealistycznych oczekiwań co do możliwości systemu. Jednym ze sposobów jest wprowadzenie pewnego oporu między zapytaniami a wynikami. Przypominanie użytkownikowi, że to AI, a nie inny człowiek. - -## Projektowanie aplikacji AI z myślą o współpracy i informacji zwrotnej - -Jak wspomniano wcześniej, generatywne AI tworzy współpracę między użytkownikiem a AI. Większość interakcji polega na wprowadzeniu zapytania przez użytkownika i wygenerowaniu wyniku przez AI. Co jeśli wynik jest niepoprawny? Jak aplikacja radzi sobie z błędami, jeśli się pojawią? Czy AI obwinia użytkownika, czy poświęca czas na wyjaśnienie błędu? - -Aplikacje AI powinny być zaprojektowane tak, aby odbierać i udzielać informacji zwrotnej. To nie tylko pomaga systemowi AI się poprawiać, ale także buduje zaufanie użytkowników. W projekcie powinno znaleźć się miejsce na pętlę informacji zwrotnej, na przykład prosty kciuk w górę lub w dół pod wynikiem. - -Innym sposobem radzenia sobie z tym jest jasne komunikowanie możliwości i ograniczeń systemu. Gdy użytkownik popełni błąd, prosząc o coś poza możliwościami AI, powinien istnieć sposób na obsłużenie takiej sytuacji, jak pokazano poniżej. - -![Udzielanie informacji zwrotnej i obsługa błędów](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.pl.png) - -Błędy systemowe są powszechne w aplikacjach, gdzie użytkownik może potrzebować pomocy z informacjami spoza zakresu AI lub aplikacja może mieć limit, ile pytań/tematów użytkownik może generować podsumowań. Na przykład aplikacja AI wytrenowana na danych z ograniczonych przedmiotów, na przykład historii i matematyki, może nie być w stanie obsłużyć pytań z geografii. Aby temu zapobiec, system AI może odpowiedzieć: "Przepraszamy, nasz produkt został wytrenowany na danych z następujących przedmiotów..., nie jestem w stanie odpowiedzieć na zadane pytanie." - -Aplikacje AI nie są doskonałe, dlatego mogą popełniać błędy. Projektując swoje aplikacje, powinieneś zapewnić miejsce na informacje zwrotne od użytkowników oraz obsługę błędów w sposób prosty i łatwy do wyjaśnienia. - -## Zadanie - -Weź dowolne aplikacje AI, które do tej pory stworzyłeś, i rozważ wdrożenie poniższych kroków w swojej aplikacji: - -- **Przyjemność:** Zastanów się, jak możesz uczynić swoją aplikację bardziej przyjemną. Czy dodajesz wyjaśnienia wszędzie? Czy zachęcasz użytkownika do eksploracji? Jak formułujesz komunikaty o błędach? - -- **Użyteczność:** Tworząc aplikację webową, upewnij się, że jest nawigowalna zarówno za pomocą myszy, jak i klawiatury. - -- **Zaufanie i przejrzystość:** Nie ufaj AI i jego wynikom bezgranicznie, rozważ, jak dodać człowieka do procesu weryfikacji wyników. Rozważ i wdroż inne sposoby budowania zaufania i przejrzystości. - -- **Kontrola:** Daj użytkownikowi kontrolę nad danymi, które dostarcza aplikacji. Wdróż możliwość wyrażenia zgody lub rezygnacji z gromadzenia danych w aplikacji AI. - -## Kontynuuj naukę! - -Po ukończeniu tej lekcji sprawdź naszą [kolekcję nauki Generative AI](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst), aby dalej rozwijać swoją wiedzę o Generative AI! - -Przejdź do Lekcji 13, gdzie omówimy, jak [zabezpieczać aplikacje AI](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**Zastrzeżenie**: -Niniejszy dokument został przetłumaczony za pomocą usługi tłumaczenia AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mimo że dążymy do dokładności, prosimy mieć na uwadze, że automatyczne tłumaczenia mogą zawierać błędy lub nieścisłości. Oryginalny dokument w języku źródłowym powinien być uznawany za źródło autorytatywne. W przypadku informacji o kluczowym znaczeniu zalecane jest skorzystanie z profesjonalnego tłumaczenia wykonanego przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z korzystania z tego tłumaczenia. \ No newline at end of file + + + diff --git a/translations/pl/README.md b/translations/pl/README.md index 5b14e1d1b..c002bf557 100644 --- a/translations/pl/README.md +++ b/translations/pl/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.pl.png) - -### 21 lekcji uczących wszystkiego, co musisz wiedzieć, aby zacząć tworzyć aplikacje Generative AI - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Wsparcie wielojęzyczne - -#### Obsługiwane przez GitHub Action (Automatyczne i zawsze aktualne) - -[Francuski](../fr/README.md) | [Hiszpański](../es/README.md) | [Niemiecki](../de/README.md) | [Rosyjski](../ru/README.md) | [Arabski](../ar/README.md) | [Perski (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chiński (uproszczony)](../zh/README.md) | [Chiński (tradycyjny, Makau)](../mo/README.md) | [Chiński (tradycyjny, Hongkong)](../hk/README.md) | [Chiński (tradycyjny, Tajwan)](../tw/README.md) | [Japoński](../ja/README.md) | [Koreański](../ko/README.md) | [Hindi](../hi/README.md) | [Bengalski](../bn/README.md) | [Marathi](../mr/README.md) | [Nepalski](../ne/README.md) | [Pendżabski (Gurmukhi)](../pa/README.md) | [Portugalski (Portugalia)](../pt/README.md) | [Portugalski (Brazylia)](../br/README.md) | [Włoski](../it/README.md) | [Polski](./README.md) | [Turecki](../tr/README.md) | [Grecki](../el/README.md) | [Tajski](../th/README.md) | [Szwedzki](../sv/README.md) | [Duński](../da/README.md) | [Norweski](../no/README.md) | [Fiński](../fi/README.md) | [Niderlandzki](../nl/README.md) | [Hebrajski](../he/README.md) | [Wietnamski](../vi/README.md) | [Indonezyjski](../id/README.md) | [Malajski](../ms/README.md) | [Tagalog (Filipiński)](../tl/README.md) | [Suahili](../sw/README.md) | [Węgierski](../hu/README.md) | [Czeski](../cs/README.md) | [Słowacki](../sk/README.md) | [Rumuński](../ro/README.md) | [Bułgarski](../bg/README.md) | [Serbski (cyrylica)](../sr/README.md) | [Chorwacki](../hr/README.md) | [Słoweński](../sl/README.md) | [Ukraiński](../uk/README.md) | [Birmański (Myanmar)](../my/README.md) - -# Generative AI dla początkujących (Wersja 3) - Kurs - -Poznaj podstawy tworzenia aplikacji Generative AI dzięki naszemu kompleksowemu kursowi składającemu się z 21 lekcji, przygotowanemu przez Microsoft Cloud Advocates. - -## 🌱 Zacznijmy - -Kurs składa się z 21 lekcji. Każda lekcja omawia inny temat, więc zacznij od dowolnej! - -Lekcje są oznaczone jako "Learn" – wyjaśniające koncepcje Generative AI lub "Build" – wyjaśniające koncepcję wraz z przykładami kodu w **Python** i **TypeScript**, jeśli to możliwe. - -Dla programistów .NET polecamy [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -Każda lekcja zawiera także sekcję "Keep Learning" z dodatkowymi materiałami do nauki. - -## Czego potrzebujesz -### Aby uruchomić kod z tego kursu, możesz skorzystać z: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **Lekcje:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **Lekcje:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **Lekcje:** "oai-assignment" - -- Podstawowa znajomość Pythona lub TypeScript będzie pomocna - \*Dla zupełnie początkujących polecamy te kursy [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) i [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) -- Konto GitHub, aby [sforkować całe to repozytorium](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) na swoje konto GitHub - -Stworzyliśmy lekcję **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)**, która pomoże Ci skonfigurować środowisko programistyczne. - -Nie zapomnij [dodać repozytorium do ulubionych (🌟)](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst), aby łatwiej je znaleźć później. - -## 🧠 Gotowy do wdrożenia? - -Jeśli szukasz bardziej zaawansowanych przykładów kodu, sprawdź naszą [kolekcję przykładów kodu Generative AI](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) w **Python** i **TypeScript**. - -## 🗣️ Poznaj innych uczących się, uzyskaj wsparcie - -Dołącz do naszego [oficjalnego serwera Discord Azure AI Foundry](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst), aby poznać innych uczestników kursu i uzyskać pomoc. - -Zadaj pytania lub podziel się opinią o produkcie na naszym [forum deweloperów Azure AI Foundry](https://aka.ms/azureaifoundry/forum) na GitHub. - -## 🚀 Budujesz startup? - -Zarejestruj się w [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst), aby otrzymać **darmowe kredyty OpenAI** oraz do **150 000 USD na kredyty Azure, umożliwiające dostęp do modeli OpenAI przez Azure OpenAI Services**. - -## 🙏 Chcesz pomóc? - -Masz sugestie lub znalazłeś błędy ortograficzne albo w kodzie? [Zgłoś problem](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) lub [stwórz pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 Każda lekcja zawiera: - -- Krótkie wideo wprowadzające do tematu -- Pisemną lekcję w pliku README -- Przykłady kodu w Python i TypeScript wspierające Azure OpenAI i OpenAI API -- Linki do dodatkowych materiałów do dalszej nauki - -## 🗃️ Lekcje - -| # | **Link do lekcji** | **Opis** | **Wideo** | **Dodatkowa nauka** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Jak skonfigurować środowisko programistyczne | Wideo wkrótce | [Dowiedz się więcej](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Wprowadzenie do Generative AI i LLM](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Zrozumienie czym jest Generative AI i jak działają duże modele językowe (LLM) | [Wideo](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Dowiedz się więcej](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Eksploracja i porównanie różnych LLM](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Jak wybrać odpowiedni model do swojego zastosowania | [Wideo](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Dowiedz się więcej](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Odpowiedzialne korzystanie z Generative AI](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Jak odpowiedzialnie tworzyć aplikacje Generative AI | [Wideo](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Dowiedz się więcej](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Podstawy inżynierii promptów](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Praktyczne najlepsze praktyki inżynierii promptów | [Wideo](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Dowiedz się więcej](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Tworzenie zaawansowanych promptów](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Jak stosować techniki inżynierii promptów, które poprawiają efekty Twoich promptów | [Wideo](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Dowiedz się więcej](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Tworzenie aplikacji do generowania tekstu](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Buduj:** Aplikację do generowania tekstu z wykorzystaniem Azure OpenAI / OpenAI API | [Wideo](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Dowiedz się więcej](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Tworzenie aplikacji czatu](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Buduj:** Techniki efektywnego tworzenia i integracji aplikacji czatu | [Wideo](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Dowiedz się więcej](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Tworzenie aplikacji wyszukiwania z bazami wektorowymi](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Buduj:** Aplikację wyszukującą dane za pomocą Embeddings | [Wideo](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Dowiedz się więcej](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Tworzenie aplikacji do generowania obrazów](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Buduj:** Aplikację do generowania obrazów | [Wideo](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Dowiedz się więcej](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Tworzenie aplikacji AI z niskim kodem](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Buduj:** Aplikację Generative AI wykorzystującą narzędzia Low Code | [Wideo](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Dowiedz się więcej](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Integracja zewnętrznych aplikacji za pomocą Function Calling](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Buduj:** Czym jest function calling i jak można go wykorzystać w aplikacjach | [Wideo](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Dowiedz się więcej](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [Projektowanie UX dla aplikacji AI](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Ucz się:** Jak stosować zasady projektowania UX podczas tworzenia aplikacji Generative AI | [Wideo](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Dowiedz się więcej](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Zabezpieczanie aplikacji Generative AI](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Ucz się:** Zagrożenia i ryzyka dla systemów AI oraz metody ich zabezpieczania | [Wideo](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Dowiedz się więcej](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [Cykl życia aplikacji Generative AI](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Ucz się:** Narzędzia i metryki do zarządzania cyklem życia LLM i LLMOps | [Wideo](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Dowiedz się więcej](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) i bazy wektorowe](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Buduj:** Aplikację wykorzystującą framework RAG do pobierania embeddings z baz wektorowych | [Wideo](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Dowiedz się więcej](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Modele open source i Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Buduj:** Aplikację wykorzystującą modele open source dostępne na Hugging Face | [Wideo](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Dowiedz się więcej](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [Agenci AI](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Buduj:** Aplikację wykorzystującą framework AI Agent | [Wideo](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Dowiedz się więcej](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [Fine-Tuning LLMs](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Ucz się:** Co to jest, dlaczego i jak przeprowadzać fine-tuning LLM | [Wideo](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Dowiedz się więcej](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Tworzenie z SLMs](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Ucz się:** Korzyści z tworzenia z wykorzystaniem Small Language Models | Wideo wkrótce | [Dowiedz się więcej](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Tworzenie z modelami Mistral](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Ucz się:** Cechy i różnice modeli z rodziny Mistral | Wideo wkrótce | [Dowiedz się więcej](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Tworzenie z modelami Meta](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Ucz się:** Cechy i różnice modeli z rodziny Meta | Wideo wkrótce | [Dowiedz się więcej](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Specjalne podziękowania - -Specjalne podziękowania dla [**John Aziz**](https://www.linkedin.com/in/john0isaac/) za stworzenie wszystkich GitHub Actions i workflowów - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) za kluczowe wkłady w każdą lekcję, które poprawiły doświadczenie uczących się i jakość kodu. - -## 🎒 Inne kursy - -Nasz zespół tworzy także inne kursy! Sprawdź: - -- [**NOWY** Model Context Protocol dla początkujących](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI Agents dla początkujących](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Generative AI dla początkujących z użyciem .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Generative AI dla początkujących z użyciem JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML dla początkujących](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Data Science dla początkujących](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI dla początkujących](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Cyberbezpieczeństwo dla początkujących](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Web Dev dla początkujących](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT dla początkujących](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR Development dla początkujących](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Opanowanie GitHub Copilot do programowania w parach z AI](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Opanowanie GitHub Copilot dla programistów C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Wybierz swoją własną przygodę z Copilotem](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Zastrzeżenie**: -Niniejszy dokument został przetłumaczony za pomocą usługi tłumaczenia AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mimo że dążymy do dokładności, prosimy mieć na uwadze, że automatyczne tłumaczenia mogą zawierać błędy lub nieścisłości. Oryginalny dokument w języku źródłowym powinien być uznawany za źródło autorytatywne. W przypadku informacji krytycznych zalecane jest skorzystanie z profesjonalnego tłumaczenia wykonanego przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z korzystania z tego tłumaczenia. \ No newline at end of file + + + + diff --git a/translations/pt/00-course-setup/01-setup-cloud.md b/translations/pt/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..20a28bf17 --- /dev/null +++ b/translations/pt/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/pt/00-course-setup/02-setup-local.md b/translations/pt/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..e34b3f271 --- /dev/null +++ b/translations/pt/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/pt/00-course-setup/03-providers.md b/translations/pt/00-course-setup/03-providers.md new file mode 100644 index 000000000..8955ba74d --- /dev/null +++ b/translations/pt/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/pt/00-course-setup/README.md b/translations/pt/00-course-setup/README.md index e858f0366..52bec0ad9 100644 --- a/translations/pt/00-course-setup/README.md +++ b/translations/pt/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# Começar este curso - -Estamos muito entusiasmados por começar este curso e ver o que vais criar com IA Generativa! - -Para garantir o teu sucesso, esta página descreve os passos de configuração, os requisitos técnicos e onde obter ajuda, se necessário. - -## Passos de Configuração - -Para começar este curso, precisas de completar os seguintes passos. - -### 1. Fazer fork deste repositório - -[Faz fork de todo este repositório](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) para a tua conta GitHub para poderes alterar qualquer código e completar os desafios. Também podes [dar estrela (🌟) a este repositório](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) para o encontrares mais facilmente, assim como repositórios relacionados. - -### 2. Criar um codespace - -Para evitar problemas de dependências ao executar o código, recomendamos que corras este curso num [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst). - -Podes criar um selecionando a opção `Code` na tua versão forkada deste repositório e escolhendo a opção **Codespaces**. - -![Diálogo a mostrar botões para criar um codespace](../../../00-course-setup/images/who-will-pay.webp) - -### 3. Armazenar as tuas chaves API - -Manter as tuas chaves API seguras é importante ao construir qualquer tipo de aplicação. Recomendamos que não guardes as chaves API diretamente no código. Cometer esses dados num repositório público pode causar problemas de segurança e até custos indesejados se forem usados por terceiros mal-intencionados. -Aqui tens um guia passo a passo para criar um ficheiro `.env` para Python e adicionar o `GITHUB_TOKEN`: - -1. **Navega até à pasta do teu projeto**: Abre o terminal ou prompt de comando e vai até à raiz do teu projeto onde queres criar o ficheiro `.env`. - - ```bash - cd path/to/your/project - ``` - -2. **Cria o ficheiro `.env`**: Usa o teu editor de texto preferido para criar um novo ficheiro chamado `.env`. Se estiveres a usar a linha de comandos, podes usar `touch` (em sistemas Unix) ou `echo` (no Windows): - - Sistemas Unix: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **Edita o ficheiro `.env`**: Abre o ficheiro `.env` num editor de texto (ex: VS Code, Notepad++, ou outro). Adiciona a seguinte linha, substituindo `your_github_token_here` pelo teu token GitHub real: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Guarda o ficheiro**: Guarda as alterações e fecha o editor de texto. - -5. **Instala o `python-dotenv`**: Se ainda não o fizeste, precisas de instalar o pacote `python-dotenv` para carregar as variáveis de ambiente do ficheiro `.env` para a tua aplicação Python. Podes instalar com `pip`: - - ```bash - pip install python-dotenv - ``` - -6. **Carrega as variáveis de ambiente no teu script Python**: No teu script Python, usa o pacote `python-dotenv` para carregar as variáveis do ficheiro `.env`: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -E está feito! Criaste com sucesso um ficheiro `.env`, adicionaste o teu token GitHub e carregaste-o na tua aplicação Python. - -## Como executar localmente no teu computador - -Para executar o código localmente no teu computador, precisas de ter alguma versão do [Python instalado](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -Para usar o repositório, precisas de o clonar: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -Depois de teres tudo configurado, podes começar! - -## Passos Opcionais - -### Instalar Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) é um instalador leve para instalar o [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python, e alguns pacotes. -O Conda é um gestor de pacotes que facilita a criação e alternância entre diferentes [**ambientes virtuais**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) Python e pacotes. Também é útil para instalar pacotes que não estão disponíveis via `pip`. - -Podes seguir o [guia de instalação do MiniConda](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) para o configurar. - -Com o Miniconda instalado, precisas de clonar o [repositório](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (se ainda não o fizeste). - -De seguida, precisas de criar um ambiente virtual. Para isso, cria um ficheiro de ambiente (_environment.yml_). Se estiveres a usar Codespaces, cria este ficheiro dentro da pasta `.devcontainer`, ou seja, `.devcontainer/environment.yml`. - -Preenche o ficheiro de ambiente com o seguinte snippet: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Se encontrares erros ao usar o conda, podes instalar manualmente as Bibliotecas Microsoft AI com o seguinte comando no terminal. - -``` -conda install -c microsoft azure-ai-ml -``` - -O ficheiro de ambiente especifica as dependências necessárias. `` é o nome que queres dar ao teu ambiente Conda, e `` é a versão do Python que queres usar, por exemplo, `3` é a versão principal mais recente do Python. - -Com isso feito, podes criar o teu ambiente Conda executando os comandos abaixo na linha de comandos/terminal: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -Consulta o [guia de ambientes Conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst) se encontrares algum problema. - -### Usar o Visual Studio Code com a extensão de suporte a Python - -Recomendamos usar o editor [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) com a [extensão de suporte a Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) instalada para este curso. No entanto, isto é apenas uma recomendação e não um requisito obrigatório. - -> **Nota**: Ao abrir o repositório do curso no VS Code, tens a opção de configurar o projeto dentro de um contentor. Isto é possível graças à [pasta especial `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) presente no repositório do curso. Falaremos mais sobre isto mais à frente. - -> **Nota**: Assim que clonares e abrires a pasta no VS Code, ele irá sugerir automaticamente que instales a extensão de suporte a Python. - -> **Nota**: Se o VS Code sugerir que reabras o repositório num contentor, recusa este pedido para usares a versão local do Python instalada no teu computador. - -### Usar Jupyter no navegador - -Também podes trabalhar no projeto usando o ambiente [Jupyter](https://jupyter.org?WT.mc_id=academic-105485-koreyst) diretamente no teu navegador. Tanto o Jupyter clássico como o [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) oferecem um ambiente de desenvolvimento agradável com funcionalidades como auto-completar, realce de código, etc. - -Para iniciar o Jupyter localmente, abre o terminal/linha de comandos, navega até à pasta do curso e executa: - -```bash -jupyter notebook -``` - -ou - -```bash -jupyterhub -``` - -Isto irá iniciar uma instância do Jupyter e a URL para aceder será mostrada na janela do terminal. - -Quando acederes à URL, deverás ver o índice do curso e poderás navegar para qualquer ficheiro `*.ipynb`. Por exemplo, `08-building-search-applications/python/oai-solution.ipynb`. - -### Executar num contentor - -Uma alternativa a configurar tudo no teu computador ou Codespace é usar um [contentor](../../../00-course-setup/). A pasta especial `.devcontainer` dentro do repositório do curso permite que o VS Code configure o projeto dentro de um contentor. Fora dos Codespaces, isto requer a instalação do Docker e, sinceramente, envolve algum trabalho, por isso recomendamos esta opção apenas a quem tem experiência com contentores. - -Uma das melhores formas de manter as tuas chaves API seguras ao usar GitHub Codespaces é através dos Codespace Secrets. Por favor, segue o guia de [gestão de segredos nos Codespaces](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) para saberes mais. - -## Aulas e Requisitos Técnicos - -O curso tem 6 aulas conceptuais e 6 aulas de programação. - -Para as aulas de programação, usamos o Azure OpenAI Service. Vais precisar de acesso ao serviço Azure OpenAI e de uma chave API para executar este código. Podes candidatar-te para obter acesso [completando esta candidatura](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -Enquanto esperas pela aprovação da tua candidatura, cada aula de programação inclui também um ficheiro `README.md` onde podes ver o código e os resultados. - -## Usar o Azure OpenAI Service pela primeira vez - -Se é a tua primeira vez a trabalhar com o Azure OpenAI service, segue este guia sobre como [criar e implementar um recurso Azure OpenAI Service.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## Usar a API OpenAI pela primeira vez - -Se é a tua primeira vez a trabalhar com a API OpenAI, segue o guia sobre como [criar e usar a Interface.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## Conhecer outros aprendizes - -Criámos canais no nosso servidor oficial [AI Community Discord](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) para conheceres outros aprendizes. Esta é uma ótima forma de fazer networking com outros empreendedores, construtores, estudantes e qualquer pessoa que queira evoluir em IA Generativa. - -[![Junta-te ao canal discord](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -A equipa do projeto também estará neste servidor Discord para ajudar os aprendizes. - -## Contribuir - -Este curso é uma iniciativa open-source. Se encontrares áreas para melhorar ou problemas, por favor cria um [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) ou regista um [issue no GitHub](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -A equipa do projeto irá acompanhar todas as contribuições. Contribuir para open source é uma excelente forma de desenvolver a tua carreira em IA Generativa. - -A maioria das contribuições requer que concordes com um Acordo de Licença de Contribuidor (CLA) declarando que tens o direito e efetivamente concedeste os direitos para usarmos a tua contribuição. Para mais detalhes, visita o [site do CLA, Contributor License Agreement](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Importante: ao traduzir texto neste repositório, certifica-te de que não usas tradução automática. Vamos verificar as traduções através da comunidade, por isso só te voluntaries para traduções em línguas que domines bem. - -Quando submeteres um pull request, um bot CLA irá automaticamente determinar se precisas de fornecer um CLA e marcar o PR adequadamente (ex: etiqueta, comentário). Basta seguir as instruções do bot. Só precisas de fazer isto uma vez em todos os repositórios que usam o nosso CLA. - -Este projeto adotou o [Código de Conduta Open Source da Microsoft](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst). Para mais informações, lê as FAQ do Código de Conduta ou contacta [Email opencode](opencode@microsoft.com) para quaisquer dúvidas ou comentários adicionais. - -## Vamos Começar - -Agora que completaste os passos necessários para este curso, vamos começar com uma [introdução à IA Generativa e LLMs](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**Aviso Legal**: -Este documento foi traduzido utilizando o serviço de tradução automática [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos para garantir a precisão, por favor tenha em conta que traduções automáticas podem conter erros ou imprecisões. O documento original na sua língua nativa deve ser considerado a fonte autorizada. Para informações críticas, recomenda-se a tradução profissional humana. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações erradas decorrentes da utilização desta tradução. \ No newline at end of file + + + + diff --git a/translations/pt/00-course-setup/SETUP.md b/translations/pt/00-course-setup/SETUP.md deleted file mode 100644 index 77ec4ecc7..000000000 --- a/translations/pt/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# Configurar o Seu Ambiente de Desenvolvimento - -Configurámos este repositório e curso com um [contentor de desenvolvimento](https://containers.dev?WT.mc_id=academic-105485-koreyst) que possui um runtime Universal capaz de suportar desenvolvimento em Python3, .NET, Node.js e Java. A configuração relacionada está definida no ficheiro `devcontainer.json` localizado na pasta `.devcontainer/` na raiz deste repositório. - -Para ativar o contentor de desenvolvimento, inicie-o no [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (para um runtime alojado na cloud) ou no [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (para um runtime alojado localmente). Leia [esta documentação](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) para mais detalhes sobre como funcionam os contentores de desenvolvimento no VS Code. - -> [!TIP] -> Recomendamos usar o GitHub Codespaces para um início rápido com esforço mínimo. Ele oferece uma generosa [quota de uso gratuita](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) para contas pessoais. Configure [timeouts](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) para parar ou eliminar codespaces inativos e assim maximizar a utilização da sua quota. - -## 1. Execução de Trabalhos - -Cada aula terá trabalhos _opcionais_ que podem ser fornecidos numa ou mais linguagens de programação, incluindo: Python, .NET/C#, Java e JavaScript/TypeScript. Esta secção fornece orientações gerais relacionadas com a execução desses trabalhos. - -### 1.1 Trabalhos em Python - -Os trabalhos em Python são fornecidos como aplicações (`.py`) ou notebooks Jupyter (`.ipynb`). -- Para executar o notebook, abra-o no Visual Studio Code, clique em _Select Kernel_ (no canto superior direito) e selecione a opção padrão Python 3 apresentada. Pode agora clicar em _Run All_ para executar o notebook. -- Para executar aplicações Python a partir da linha de comandos, siga as instruções específicas do trabalho para garantir que seleciona os ficheiros corretos e fornece os argumentos necessários. - -## 2. Configuração dos Fornecedores - -Os trabalhos **podem** também estar configurados para funcionar com uma ou mais implementações de Large Language Models (LLM) através de um fornecedor de serviços suportado como OpenAI, Azure ou Hugging Face. Estes fornecem um _endpoint alojado_ (API) que podemos aceder programaticamente com as credenciais corretas (chave API ou token). Neste curso, abordamos estes fornecedores: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) com diversos modelos, incluindo a série principal GPT. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) para modelos OpenAI com foco em prontidão empresarial - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) para modelos open-source e servidor de inferência - -**Vai precisar de usar as suas próprias contas para estes exercícios**. Os trabalhos são opcionais, por isso pode escolher configurar um, todos - ou nenhum - dos fornecedores conforme os seus interesses. Algumas orientações para registo: - -| Registo | Custo | Chave API | Playground | Comentários | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst)| [Preços](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst)| [Baseado em projeto](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [Sem código, Web](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Vários Modelos Disponíveis | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst)| [Preços](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst)| [Início rápido SDK](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst)| [Início rápido Studio](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [É necessário solicitar acesso antecipadamente](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst)| -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Preços](https://huggingface.co/pricing) | [Tokens de Acesso](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst)| [Hugging Chat tem modelos limitados](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Siga as instruções abaixo para _configurar_ este repositório para uso com diferentes fornecedores. Os trabalhos que requerem um fornecedor específico terão uma destas etiquetas no nome do ficheiro: - - `aoai` - requer endpoint e chave Azure OpenAI - - `oai` - requer endpoint e chave OpenAI - - `hf` - requer token Hugging Face - -Pode configurar um, nenhum ou todos os fornecedores. Os trabalhos relacionados simplesmente apresentarão erro se faltarem credenciais. - -### 2.1. Criar ficheiro `.env` - -Assumimos que já leu as orientações acima, registou-se no fornecedor relevante e obteve as credenciais de autenticação necessárias (API_KEY ou token). No caso do Azure OpenAI, assumimos também que tem uma implementação válida de um Serviço Azure OpenAI (endpoint) com pelo menos um modelo GPT implementado para chat completion. - -O próximo passo é configurar as suas **variáveis de ambiente locais** da seguinte forma: - -1. Procure na pasta raiz um ficheiro `.env.copy` que deverá ter um conteúdo semelhante a este: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Copie esse ficheiro para `.env` usando o comando abaixo. Este ficheiro está _gitignore-d_, mantendo os segredos seguros. - - ```bash - cp .env.copy .env - ``` - -3. Preencha os valores (substitua os espaços reservados à direita do `=`) conforme descrito na secção seguinte. - -3. (Opcional) Se usar GitHub Codespaces, tem a opção de guardar as variáveis de ambiente como _segredos do Codespaces_ associados a este repositório. Nesse caso, não precisará de configurar um ficheiro .env local. **No entanto, note que esta opção funciona apenas se usar GitHub Codespaces.** Ainda precisará de configurar o ficheiro .env se usar Docker Desktop. - -### 2.2. Preencher o ficheiro `.env` - -Vamos dar uma vista rápida aos nomes das variáveis para entender o que representam: - -| Variável | Descrição | -| :--- | :--- | -| HUGGING_FACE_API_KEY | Este é o token de acesso do utilizador que configurou no seu perfil | -| OPENAI_API_KEY | Esta é a chave de autorização para usar o serviço para endpoints OpenAI não Azure | -| AZURE_OPENAI_API_KEY | Esta é a chave de autorização para usar esse serviço | -| AZURE_OPENAI_ENDPOINT | Este é o endpoint implementado para um recurso Azure OpenAI | -| AZURE_OPENAI_DEPLOYMENT | Este é o endpoint de implementação do modelo de _geração de texto_ | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | Este é o endpoint de implementação do modelo de _embeddings de texto_ | -| | | - -Nota: As duas últimas variáveis do Azure OpenAI refletem um modelo padrão para chat completion (geração de texto) e pesquisa vetorial (embeddings), respetivamente. As instruções para configurá-las serão definidas nos trabalhos relevantes. - -### 2.3 Configurar Azure: Pelo Portal - -Os valores do endpoint e da chave Azure OpenAI serão encontrados no [Portal Azure](https://portal.azure.com?WT.mc_id=academic-105485-koreyst), por isso vamos começar por aí. - -1. Aceda ao [Portal Azure](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -1. Clique na opção **Keys and Endpoint** na barra lateral (menu à esquerda). -1. Clique em **Show Keys** - deverá ver o seguinte: KEY 1, KEY 2 e Endpoint. -1. Use o valor de KEY 1 para AZURE_OPENAI_API_KEY -1. Use o valor do Endpoint para AZURE_OPENAI_ENDPOINT - -De seguida, precisamos dos endpoints para os modelos específicos que implementámos. - -1. Clique na opção **Model deployments** na barra lateral (menu à esquerda) do recurso Azure OpenAI. -1. Na página de destino, clique em **Manage Deployments** - -Isto levará ao website Azure OpenAI Studio, onde encontraremos os outros valores conforme descrito abaixo. - -### 2.4 Configurar Azure: Pelo Studio - -1. Navegue para o [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **a partir do seu recurso** conforme descrito acima. -1. Clique no separador **Deployments** (barra lateral, à esquerda) para ver os modelos atualmente implementados. -1. Se o modelo desejado não estiver implementado, use **Create new deployment** para o implementar. -1. Vai precisar de um modelo de _text-generation_ - recomendamos: **gpt-35-turbo** -1. Vai precisar de um modelo de _text-embedding_ - recomendamos **text-embedding-ada-002** - -Agora atualize as variáveis de ambiente para refletir o _nome da implementação_ usado. Normalmente será o mesmo nome do modelo, a menos que o tenha alterado explicitamente. Por exemplo, poderá ter: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**Não se esqueça de guardar o ficheiro .env quando terminar**. Pode agora sair do ficheiro e voltar às instruções para executar o notebook. - -### 2.5 Configurar OpenAI: Pelo Perfil - -A sua chave API OpenAI pode ser encontrada na sua [conta OpenAI](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). Se não tiver uma, pode criar uma conta e gerar uma chave API. Depois de obter a chave, pode usá-la para preencher a variável `OPENAI_API_KEY` no ficheiro `.env`. - -### 2.6 Configurar Hugging Face: Pelo Perfil - -O seu token Hugging Face pode ser encontrado no seu perfil em [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). Não publique nem partilhe estes publicamente. Em vez disso, crie um novo token para uso neste projeto e copie-o para o ficheiro `.env` na variável `HUGGING_FACE_API_KEY`. _Nota:_ Tecnicamente, isto não é uma chave API, mas é usado para autenticação, por isso mantemos esta convenção de nomes para consistência. - -**Aviso Legal**: -Este documento foi traduzido utilizando o serviço de tradução automática [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos pela precisão, por favor tenha em conta que traduções automáticas podem conter erros ou imprecisões. O documento original na sua língua nativa deve ser considerado a fonte autorizada. Para informações críticas, recomenda-se tradução profissional humana. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas decorrentes da utilização desta tradução. \ No newline at end of file diff --git a/translations/pt/04-prompt-engineering-fundamentals/README.md b/translations/pt/04-prompt-engineering-fundamentals/README.md index d2184b467..94363c3b0 100644 --- a/translations/pt/04-prompt-engineering-fundamentals/README.md +++ b/translations/pt/04-prompt-engineering-fundamentals/README.md @@ -1,453 +1,15 @@ - -# Fundamentos de Engenharia de Prompts - -[![Fundamentos de Engenharia de Prompts](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.pt.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Introdução -Este módulo aborda conceitos e técnicas essenciais para criar prompts eficazes em modelos de IA generativa. A forma como escreve o seu prompt para um LLM também é importante. Um prompt cuidadosamente elaborado pode alcançar uma melhor qualidade de resposta. Mas o que significam exatamente termos como _prompt_ e _engenharia de prompts_? E como posso melhorar o _input_ do prompt que envio para o LLM? Estas são as questões que tentaremos responder neste capítulo e no seguinte. - -_A IA generativa_ é capaz de criar novo conteúdo (por exemplo, texto, imagens, áudio, código, etc.) em resposta a pedidos dos utilizadores. Isto é conseguido através de _Modelos de Linguagem de Grande Escala_ como a série GPT da OpenAI ("Generative Pre-trained Transformer"), que são treinados para usar linguagem natural e código. - -Os utilizadores podem agora interagir com estes modelos usando paradigmas familiares como o chat, sem necessidade de conhecimentos técnicos ou formação. Os modelos são _baseados em prompts_ – os utilizadores enviam um texto (prompt) e recebem a resposta da IA (completação). Podem depois "conversar com a IA" de forma iterativa, em conversas de múltiplas interações, refinando o prompt até que a resposta corresponda às suas expectativas. - -Os "prompts" tornam-se assim a principal _interface de programação_ para aplicações de IA generativa, dizendo aos modelos o que fazer e influenciando a qualidade das respostas devolvidas. A "Engenharia de Prompts" é um campo em rápido crescimento que se foca no _design e otimização_ dos prompts para fornecer respostas consistentes e de qualidade em larga escala. - -## Objetivos de Aprendizagem - -Nesta lição, vamos aprender o que é Engenharia de Prompts, por que é importante e como podemos criar prompts mais eficazes para um dado modelo e objetivo de aplicação. Vamos compreender os conceitos fundamentais e as melhores práticas para engenharia de prompts – e conhecer um ambiente interativo em Jupyter Notebooks onde podemos ver estes conceitos aplicados a exemplos reais. - -No final desta lição seremos capazes de: - -1. Explicar o que é engenharia de prompts e por que é importante. -2. Descrever os componentes de um prompt e como são usados. -3. Aprender as melhores práticas e técnicas para engenharia de prompts. -4. Aplicar as técnicas aprendidas a exemplos reais, usando um endpoint OpenAI. - -## Termos-Chave - -Engenharia de Prompts: A prática de desenhar e refinar inputs para guiar modelos de IA a produzir as saídas desejadas. -Tokenização: O processo de converter texto em unidades menores, chamadas tokens, que um modelo consegue entender e processar. -LLMs Ajustados por Instruções: Modelos de Linguagem de Grande Escala (LLMs) que foram ajustados com instruções específicas para melhorar a precisão e relevância das suas respostas. - -## Ambiente de Aprendizagem - -A engenharia de prompts é atualmente mais uma arte do que uma ciência. A melhor forma de melhorar a nossa intuição é _praticar mais_ e adotar uma abordagem de tentativa e erro que combine conhecimento do domínio da aplicação com técnicas recomendadas e otimizações específicas do modelo. - -O Jupyter Notebook que acompanha esta lição oferece um ambiente _sandbox_ onde pode experimentar o que aprende – à medida que avança ou como parte do desafio de código no final. Para executar os exercícios, vai precisar de: - -1. **Uma chave API Azure OpenAI** – o endpoint do serviço para um LLM implementado. -2. **Um ambiente Python** – onde o Notebook pode ser executado. -3. **Variáveis de Ambiente Locais** – _complete agora os passos do [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) para estar preparado_. - -O notebook inclui exercícios _inicializadores_ – mas é encorajado a adicionar as suas próprias secções de _Markdown_ (descrição) e _Código_ (pedidos de prompt) para experimentar mais exemplos ou ideias – e desenvolver a sua intuição para o design de prompts. - -## Guia Ilustrado - -Quer ter uma visão geral do que esta lição cobre antes de começar? Veja este guia ilustrado, que lhe dá uma ideia dos principais tópicos abordados e dos pontos-chave para refletir em cada um. O roteiro da lição leva-o desde a compreensão dos conceitos e desafios centrais até à sua resolução com técnicas relevantes de engenharia de prompts e melhores práticas. Note que a secção "Técnicas Avançadas" neste guia refere-se a conteúdos abordados no _próximo_ capítulo deste currículo. - -![Guia Ilustrado de Engenharia de Prompts](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.pt.png) - -## A Nossa Startup - -Agora, vamos falar sobre como _este tema_ se relaciona com a missão da nossa startup de [trazer inovação em IA para a educação](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). Queremos construir aplicações de IA para _aprendizagem personalizada_ – por isso, vamos pensar em como diferentes utilizadores da nossa aplicação podem "desenhar" prompts: - -- **Administradores** podem pedir à IA para _analisar dados curriculares e identificar lacunas na cobertura_. A IA pode resumir os resultados ou visualizá-los com código. -- **Educadores** podem pedir à IA para _gerar um plano de aula para um público-alvo e tema específicos_. A IA pode construir o plano personalizado num formato especificado. -- **Estudantes** podem pedir à IA para _os ajudar numa disciplina difícil_. A IA pode agora guiar os estudantes com aulas, dicas e exemplos adaptados ao seu nível. - -Isto é apenas a ponta do iceberg. Veja [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) – uma biblioteca open-source de prompts curada por especialistas em educação – para ter uma noção mais ampla das possibilidades! _Experimente executar alguns desses prompts no sandbox ou no OpenAI Playground para ver o que acontece!_ - - - -## O que é Engenharia de Prompts? - -Começámos esta lição definindo **Engenharia de Prompts** como o processo de _desenhar e otimizar_ inputs de texto (prompts) para fornecer respostas consistentes e de qualidade (completações) para um dado objetivo de aplicação e modelo. Podemos pensar nisso como um processo em 2 etapas: - -- _desenhar_ o prompt inicial para um dado modelo e objetivo -- _refinar_ o prompt iterativamente para melhorar a qualidade da resposta - -Este é necessariamente um processo de tentativa e erro que requer intuição e esforço do utilizador para obter resultados ótimos. Então, por que é importante? Para responder a essa pergunta, primeiro precisamos entender três conceitos: - -- _Tokenização_ = como o modelo "vê" o prompt -- _LLMs Base_ = como o modelo base "processa" um prompt -- _LLMs Ajustados por Instruções_ = como o modelo pode agora interpretar "tarefas" - -### Tokenização - -Um LLM vê os prompts como uma _sequência de tokens_, onde diferentes modelos (ou versões de um modelo) podem tokenizar o mesmo prompt de formas diferentes. Como os LLMs são treinados com tokens (e não com texto bruto), a forma como os prompts são tokenizados tem um impacto direto na qualidade da resposta gerada. - -Para ter uma intuição de como a tokenização funciona, experimente ferramentas como o [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) mostrado abaixo. Copie o seu prompt – e veja como ele é convertido em tokens, prestando atenção a como são tratados os espaços em branco e os sinais de pontuação. Note que este exemplo mostra um LLM mais antigo (GPT-3) – por isso, experimentar com um modelo mais recente pode produzir um resultado diferente. - -![Tokenização](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.pt.png) - -### Conceito: Modelos Base - -Depois de um prompt ser tokenizado, a função principal do ["LLM Base"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (ou modelo base) é prever o token seguinte nessa sequência. Como os LLMs são treinados com enormes conjuntos de dados textuais, eles têm uma boa noção das relações estatísticas entre tokens e podem fazer essa previsão com alguma confiança. Note que eles não entendem o _significado_ das palavras no prompt ou token; apenas veem um padrão que podem "completar" com a sua próxima previsão. Podem continuar a prever a sequência até serem interrompidos por intervenção do utilizador ou alguma condição predefinida. - -Quer ver como funciona a completação baseada em prompt? Insira o prompt acima no Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) com as definições padrão. O sistema está configurado para tratar os prompts como pedidos de informação – por isso deverá ver uma resposta que satisfaz este contexto. - -Mas e se o utilizador quiser ver algo específico que cumpra certos critérios ou objetivos de tarefa? É aqui que os LLMs _ajustados por instruções_ entram em cena. - -![Completação de Chat com LLM Base](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.pt.png) - -### Conceito: LLMs Ajustados por Instruções - -Um [LLM Ajustado por Instruções](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) começa com o modelo base e é afinado com exemplos ou pares input/output (por exemplo, "mensagens" de múltiplas interações) que podem conter instruções claras – e a resposta da IA tenta seguir essa instrução. - -Isto usa técnicas como Aprendizagem por Reforço com Feedback Humano (RLHF) que podem treinar o modelo para _seguir instruções_ e _aprender com o feedback_, de modo a produzir respostas mais adequadas a aplicações práticas e mais relevantes para os objetivos do utilizador. - -Vamos experimentar – volte ao prompt acima, mas agora altere a _mensagem do sistema_ para fornecer a seguinte instrução como contexto: - -> _Resuma o conteúdo fornecido para um aluno do segundo ano. Mantenha o resultado num parágrafo com 3-5 pontos principais._ - -Veja como o resultado está agora ajustado para refletir o objetivo e formato desejados? Um educador pode usar diretamente esta resposta nos seus slides para essa aula. - -![Completação de Chat com LLM Ajustado por Instruções](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.pt.png) - -## Por que precisamos de Engenharia de Prompts? - -Agora que sabemos como os prompts são processados pelos LLMs, vamos falar sobre _por que_ precisamos de engenharia de prompts. A resposta está no facto de que os LLMs atuais apresentam vários desafios que tornam mais difícil obter _completações fiáveis e consistentes_ sem esforço na construção e otimização do prompt. Por exemplo: - -1. **As respostas dos modelos são estocásticas.** O _mesmo prompt_ provavelmente produzirá respostas diferentes com modelos ou versões diferentes. E pode até produzir resultados diferentes com o _mesmo modelo_ em momentos distintos. _As técnicas de engenharia de prompts podem ajudar a minimizar estas variações, fornecendo melhores limites_. - -1. **Os modelos podem inventar respostas.** Os modelos são pré-treinados com conjuntos de dados _grandes mas finitos_, o que significa que não têm conhecimento sobre conceitos fora desse âmbito de treino. Como resultado, podem produzir respostas imprecisas, imaginárias ou diretamente contraditórias a factos conhecidos. _As técnicas de engenharia de prompts ajudam os utilizadores a identificar e mitigar estas invenções, por exemplo, pedindo à IA citações ou raciocínios_. - -1. **As capacidades dos modelos variam.** Modelos mais recentes ou gerações novas terão capacidades mais ricas, mas também trazem peculiaridades e compromissos únicos em custo e complexidade. _A engenharia de prompts pode ajudar a desenvolver melhores práticas e fluxos de trabalho que abstraem as diferenças e se adaptam a requisitos específicos do modelo de forma escalável e fluida_. - -Vamos ver isto em ação no OpenAI ou Azure OpenAI Playground: - -- Use o mesmo prompt com diferentes implementações de LLM (por exemplo, OpenAI, Azure OpenAI, Hugging Face) – notou variações? -- Use o mesmo prompt repetidamente com a _mesma_ implementação de LLM (por exemplo, Azure OpenAI playground) – como diferiram essas variações? - -### Exemplo de Invenções - -Neste curso, usamos o termo **"invenção"** para referir o fenómeno em que os LLMs por vezes geram informação factualmente incorreta devido a limitações no seu treino ou outras restrições. Também pode ter ouvido este fenómeno referido como _"alucinações"_ em artigos populares ou trabalhos de investigação. No entanto, recomendamos fortemente usar _"invenção"_ como termo para não antropomorfizar o comportamento, atribuindo uma característica humana a um resultado gerado por máquina. Isto também reforça as [diretrizes de IA responsável](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) do ponto de vista terminológico, eliminando termos que podem ser considerados ofensivos ou não inclusivos em alguns contextos. - -Quer perceber como funcionam as invenções? Pense num prompt que instrua a IA a gerar conteúdo sobre um tema inexistente (para garantir que não está presente no conjunto de treino). Por exemplo – experimentei este prompt: -# Plano de Aula: A Guerra Marciana de 2076 - -## Objetivos da Aula -- Compreender as causas e consequências da Guerra Marciana de 2076. -- Analisar os principais eventos e estratégias militares utilizadas durante o conflito. -- Refletir sobre o impacto da guerra na sociedade terrestre e marciana. - -## Materiais Necessários -- Slides com cronologia dos eventos -- Vídeos documentais sobre a Guerra Marciana -- Mapas interativos do sistema solar -- Artigos e relatos de testemunhas oculares - -## Estrutura da Aula - -### 1. Introdução (15 minutos) -- Apresentar o contexto histórico e político que levou à Guerra Marciana. -- Explicar a importância do planeta Marte para a humanidade em 2076. -- Mostrar um breve vídeo introdutório. - -### 2. Desenvolvimento (40 minutos) -- Detalhar as principais batalhas e estratégias militares. -- Discutir as tecnologias utilizadas por ambos os lados. -- Analisar as consequências imediatas do conflito para a Terra e Marte. -- Atividade em grupo: debate sobre as decisões tomadas pelos líderes durante a guerra. - -### 3. Conclusão (15 minutos) -- Recapitular os pontos-chave da aula. -- Refletir sobre as lições aprendidas com a Guerra Marciana. -- Propor uma atividade de escrita: imaginar um futuro pós-guerra e descrever como seria a vida em Marte. - -## Avaliação -- Participação no debate em grupo. -- Trabalho escrito sobre o futuro pós-guerra. -- Questionário de compreensão sobre os eventos da Guerra Marciana. - -## Comentários Finais -- Incentivar os alunos a pesquisarem mais sobre a exploração espacial e os desafios da colonização de outros planetas. -- Destacar a importância da diplomacia para evitar conflitos interplanetários no futuro. -Uma pesquisa na web mostrou-me que existiam relatos fictícios (por exemplo, séries de televisão ou livros) sobre guerras em Marte – mas nenhum em 2076. O bom senso também nos diz que 2076 está _no futuro_ e, portanto, não pode estar associado a um evento real. - -Então, o que acontece quando executamos este prompt com diferentes fornecedores de LLM? - -> **Resposta 1**: OpenAI Playground (GPT-35) - -![Resposta 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.pt.png) - -> **Resposta 2**: Azure OpenAI Playground (GPT-35) - -![Resposta 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.pt.png) - -> **Resposta 3**: : Hugging Face Chat Playground (LLama-2) - -![Resposta 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.pt.png) - -Como esperado, cada modelo (ou versão do modelo) produz respostas ligeiramente diferentes graças ao comportamento estocástico e às variações na capacidade do modelo. Por exemplo, um modelo dirige-se a um público do 8º ano enquanto o outro assume um estudante do ensino secundário. Mas os três modelos geraram respostas que poderiam convencer um utilizador desinformado de que o evento era real. - -Técnicas de engenharia de prompts como _metaprompting_ e _configuração de temperatura_ podem reduzir as fabricacões do modelo até certo ponto. Novas _arquiteturas_ de engenharia de prompts também incorporam novas ferramentas e técnicas de forma integrada no fluxo do prompt, para mitigar ou reduzir alguns destes efeitos. - -## Estudo de Caso: GitHub Copilot - -Vamos terminar esta secção tendo uma ideia de como a engenharia de prompts é usada em soluções do mundo real, olhando para um Estudo de Caso: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -O GitHub Copilot é o seu "Programador Parceiro de IA" – converte prompts de texto em completamentos de código e está integrado no seu ambiente de desenvolvimento (por exemplo, Visual Studio Code) para uma experiência de utilizador fluida. Conforme documentado na série de blogs abaixo, a versão inicial baseava-se no modelo OpenAI Codex – com os engenheiros a perceberem rapidamente a necessidade de ajustar o modelo e desenvolver melhores técnicas de engenharia de prompts para melhorar a qualidade do código. Em julho, eles [lançaram um modelo de IA melhorado que vai além do Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) para sugestões ainda mais rápidas. - -Leia os posts por ordem para acompanhar a sua jornada de aprendizagem. - -- **Maio 2023** | [O GitHub Copilot está a melhorar na compreensão do seu código](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **Maio 2023** | [Dentro do GitHub: Trabalhar com os LLMs por trás do GitHub Copilot](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Junho 2023** | [Como escrever melhores prompts para o GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Julho 2023** | [.. GitHub Copilot vai além do Codex com modelo de IA melhorado](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Julho 2023** | [Guia do Programador para Engenharia de Prompts e LLMs](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **Setembro 2023** | [Como construir uma aplicação empresarial com LLM: Lições do GitHub Copilot](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -Pode também explorar o seu [blog de Engenharia](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) para mais posts como [este](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) que mostra como estes modelos e técnicas são _aplicados_ para impulsionar aplicações do mundo real. - ---- - - - -## Construção de Prompt - -Já vimos porque a engenharia de prompts é importante – agora vamos entender como os prompts são _construídos_ para podermos avaliar diferentes técnicas para um design de prompt mais eficaz. - -### Prompt Básico - -Vamos começar com o prompt básico: uma entrada de texto enviada ao modelo sem outro contexto. Aqui está um exemplo – quando enviamos as primeiras palavras do hino nacional dos EUA para a OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst) ele instantaneamente _completa_ a resposta com as linhas seguintes, ilustrando o comportamento básico de previsão. - -| Prompt (Entrada) | Completação (Saída) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | Parece que está a começar a letra de "The Star-Spangled Banner", o hino nacional dos Estados Unidos. A letra completa é ... | - -### Prompt Complexo - -Agora vamos adicionar contexto e instruções a esse prompt básico. A [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) permite-nos construir um prompt complexo como uma coleção de _mensagens_ com: - -- Pares de entrada/saída que refletem a entrada do _utilizador_ e a resposta do _assistente_. -- Mensagem do sistema que define o contexto para o comportamento ou personalidade do assistente. - -O pedido está agora na forma abaixo, onde a _tokenização_ captura efetivamente a informação relevante do contexto e da conversa. Agora, mudar o contexto do sistema pode ser tão impactante na qualidade das completions quanto as entradas do utilizador fornecidas. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Prompt de Instrução - -Nos exemplos acima, o prompt do utilizador foi uma simples pergunta de texto que pode ser interpretada como um pedido de informação. Com prompts de _instrução_, podemos usar esse texto para especificar uma tarefa com mais detalhe, fornecendo uma orientação melhor à IA. Aqui está um exemplo: - -| Prompt (Entrada) | Completação (Saída) | Tipo de Instrução | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Escreve uma descrição da Guerra Civil | _retornou um parágrafo simples_ | Simples | -| Escreve uma descrição da Guerra Civil. Fornece datas e eventos chave e descreve a sua importância | _retornou um parágrafo seguido de uma lista de datas de eventos chave com descrições_ | Complexo | -| Escreve uma descrição da Guerra Civil em 1 parágrafo. Fornece 3 pontos com datas chave e a sua importância. Fornece mais 3 pontos com figuras históricas importantes e as suas contribuições. Retorna a saída num ficheiro JSON | _retorna detalhes mais extensos numa caixa de texto, formatados como JSON que pode copiar e colar para um ficheiro e validar conforme necessário_ | Complexo. Formatado. | - -## Conteúdo Principal - -Nos exemplos acima, o prompt ainda era bastante aberto, permitindo ao LLM decidir que parte do seu conjunto de dados pré-treinado era relevante. Com o padrão de design de _conteúdo principal_, o texto de entrada é dividido em duas partes: - -- uma instrução (ação) -- conteúdo relevante (que influencia a ação) - -Aqui está um exemplo onde a instrução é "resume isto em 2 frases". - -| Prompt (Entrada) | Completação (Saída) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Júpiter é o quinto planeta a partir do Sol e o maior do Sistema Solar. É um gigante gasoso com uma massa mil vezes menor que a do Sol, mas duas vezes e meia a massa de todos os outros planetas do Sistema Solar juntos. Júpiter é um dos objetos mais brilhantes visíveis a olho nu no céu noturno, e tem sido conhecido por civilizações antigas desde antes da história registada. É nomeado em homenagem ao deus romano Júpiter.[19] Quando visto da Terra, Júpiter pode ser suficientemente brilhante para que a sua luz refletida projete sombras visíveis,[20] e é em média o terceiro objeto natural mais brilhante no céu noturno depois da Lua e Vénus.
**Resume isto em 2 frases curtas** | Júpiter, o quinto planeta a partir do Sol, é o maior do Sistema Solar e é conhecido por ser um dos objetos mais brilhantes no céu noturno. Nomeado em homenagem ao deus romano Júpiter, é um gigante gasoso cuja massa é duas vezes e meia a de todos os outros planetas do Sistema Solar juntos. | - -O segmento de conteúdo principal pode ser usado de várias formas para conduzir instruções mais eficazes: - -- **Exemplos** – em vez de dizer ao modelo o que fazer com uma instrução explícita, dê-lhe exemplos do que fazer e deixe-o inferir o padrão. -- **Pistas** – siga a instrução com uma "pista" que prepara a completitude, guiando o modelo para respostas mais relevantes. -- **Modelos** – são 'receitas' repetíveis para prompts com espaços reservados (variáveis) que podem ser personalizados com dados para casos de uso específicos. - -Vamos explorar estes em ação. - -### Usar Exemplos - -Esta é uma abordagem onde usa o conteúdo principal para "alimentar o modelo" com alguns exemplos do resultado desejado para uma dada instrução, e deixa-o inferir o padrão para o resultado pretendido. Com base no número de exemplos fornecidos, podemos ter prompting zero-shot, one-shot, few-shot, etc. - -O prompt agora consiste em três componentes: - -- Uma descrição da tarefa -- Alguns exemplos do resultado desejado -- O início de um novo exemplo (que se torna uma descrição implícita da tarefa) - -| Tipo de Aprendizagem | Prompt (Entrada) | Completação (Saída) | -| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| Zero-shot | "O Sol está a brilhar". Traduz para espanhol | "El Sol está brillando". | -| One-shot | "O Sol está a brilhar" => ""El Sol está brillando".
"É um dia frio e ventoso" => | "Es un día frío y ventoso". | -| Few-shot | O jogador correu as bases => Baseball
O jogador fez um ace => Ténis
O jogador marcou um seis => Críquete
O jogador fez um slam-dunk => | Basquetebol | -| | | | - -Note como tivemos de fornecer uma instrução explícita ("Traduz para espanhol") no prompting zero-shot, mas esta é inferida no exemplo one-shot. O exemplo few-shot mostra como adicionar mais exemplos permite aos modelos fazer inferências mais precisas sem instruções adicionais. - -### Pistas no Prompt - -Outra técnica para usar o conteúdo principal é fornecer _pistas_ em vez de exemplos. Neste caso, estamos a dar ao modelo um empurrão na direção certa ao _começar_ com um excerto que reflete o formato de resposta desejado. O modelo então "aproveita a pista" para continuar nesse sentido. - -| Número de Pistas | Prompt (Entrada) | Completação (Saída) | -| :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Júpiter é o quinto planeta a partir do Sol e o maior do Sistema Solar. É um gigante gasoso com uma massa mil vezes menor que a do Sol, mas duas vezes e meia a massa de todos os outros planetas do Sistema Solar juntos. Júpiter é um dos objetos mais brilhantes visíveis a olho nu no céu noturno, e tem sido conhecido por civilizações antigas desde antes da história registada. - -**Resumir Isto** | Júpiter é o maior planeta do nosso Sistema Solar e o quinto a contar do Sol. É um gigante gasoso com uma massa equivalente a 1/1000 da do Sol, mas é mais pesado do que todos os outros planetas juntos. Civilizações antigas conhecem Júpiter há muito tempo, e ele é facilmente visível no céu noturno. | -| 1 | Júpiter é o quinto planeta a contar do Sol e o maior do Sistema Solar. É um gigante gasoso com uma massa equivalente a um milésimo da do Sol, mas duas vezes e meia a massa de todos os outros planetas do Sistema Solar juntos. Júpiter é um dos objetos mais brilhantes visíveis a olho nu no céu noturno, e é conhecido por civilizações antigas desde antes da história registada.
**Resumir Isto**
O que aprendemos é que Júpiter | é o quinto planeta a contar do Sol e o maior do Sistema Solar. É um gigante gasoso com uma massa equivalente a um milésimo da do Sol, mas duas vezes e meia a massa de todos os outros planetas juntos. É facilmente visível a olho nu e é conhecido desde a antiguidade. | -| 2 | Júpiter é o quinto planeta a contar do Sol e o maior do Sistema Solar. É um gigante gasoso com uma massa equivalente a um milésimo da do Sol, mas duas vezes e meia a massa de todos os outros planetas do Sistema Solar juntos. Júpiter é um dos objetos mais brilhantes visíveis a olho nu no céu noturno, e é conhecido por civilizações antigas desde antes da história registada.
**Resumir Isto**
Top 3 Factos que Aprendemos: | 1. Júpiter é o quinto planeta a contar do Sol e o maior do Sistema Solar.
2. É um gigante gasoso com uma massa equivalente a um milésimo da do Sol...
3. Júpiter tem sido visível a olho nu desde a antiguidade ... | -| | | | - -### Modelos de Prompt - -Um modelo de prompt é uma _receita pré-definida para um prompt_ que pode ser guardada e reutilizada conforme necessário, para proporcionar experiências de utilizador mais consistentes em larga escala. Na sua forma mais simples, é simplesmente uma coleção de exemplos de prompt como [este da OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) que fornece tanto os componentes interativos do prompt (mensagens do utilizador e do sistema) como o formato de pedido orientado pela API – para suportar a reutilização. - -Na sua forma mais complexa, como [este exemplo da LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst), contém _placeholders_ que podem ser substituídos por dados de várias fontes (entrada do utilizador, contexto do sistema, fontes de dados externas, etc.) para gerar um prompt dinamicamente. Isto permite criar uma biblioteca de prompts reutilizáveis que podem ser usados para proporcionar experiências de utilizador consistentes **programaticamente** em larga escala. - -Finalmente, o verdadeiro valor dos modelos está na capacidade de criar e publicar _bibliotecas de prompts_ para domínios de aplicação verticais – onde o modelo de prompt é agora _otimizado_ para refletir contextos ou exemplos específicos da aplicação que tornam as respostas mais relevantes e precisas para o público-alvo. O repositório [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) é um excelente exemplo desta abordagem, reunindo uma biblioteca de prompts para o domínio da educação com ênfase em objetivos chave como planeamento de aulas, design curricular, tutoria a estudantes, etc. - -## Conteúdo de Apoio - -Se pensarmos na construção de um prompt como tendo uma instrução (tarefa) e um alvo (conteúdo principal), então o _conteúdo secundário_ é como um contexto adicional que fornecemos para **influenciar a saída de alguma forma**. Pode ser parâmetros de afinação, instruções de formatação, taxonomias de tópicos, etc., que ajudam o modelo a _adaptar_ a sua resposta para corresponder aos objetivos ou expectativas do utilizador. - -Por exemplo: Dado um catálogo de cursos com metadados extensos (nome, descrição, nível, etiquetas de metadados, instrutor, etc.) sobre todos os cursos disponíveis no currículo: - -- podemos definir uma instrução para "resumir o catálogo de cursos para o Outono de 2023" -- podemos usar o conteúdo principal para fornecer alguns exemplos do resultado desejado -- podemos usar o conteúdo secundário para identificar as 5 principais "etiquetas" de interesse. - -Agora, o modelo pode fornecer um resumo no formato mostrado pelos exemplos – mas se um resultado tiver múltiplas etiquetas, pode priorizar as 5 etiquetas identificadas no conteúdo secundário. - ---- - - - -## Melhores Práticas para Prompting - -Agora que sabemos como os prompts podem ser _construídos_, podemos começar a pensar em como _desenhá-los_ para refletir as melhores práticas. Podemos pensar nisso em duas partes – ter a _mentalidade_ certa e aplicar as _técnicas_ corretas. - -### Mentalidade de Engenharia de Prompt - -A Engenharia de Prompt é um processo de tentativa e erro, por isso tenha em mente três fatores orientadores gerais: - -1. **Compreensão do Domínio é Importante.** A precisão e relevância da resposta dependem do _domínio_ em que a aplicação ou utilizador opera. Use a sua intuição e conhecimento do domínio para **personalizar as técnicas**. Por exemplo, defina _personalidades específicas do domínio_ nos seus prompts de sistema, ou use _modelos específicos do domínio_ nos seus prompts de utilizador. Forneça conteúdo secundário que reflita contextos específicos do domínio, ou use _pistas e exemplos específicos do domínio_ para guiar o modelo para padrões de uso familiares. - -2. **Compreensão do Modelo é Importante.** Sabemos que os modelos são estocásticos por natureza. Mas as implementações do modelo podem também variar em termos do conjunto de dados de treino que usam (conhecimento pré-treinado), das capacidades que oferecem (por exemplo, via API ou SDK) e do tipo de conteúdo para o qual estão otimizados (por exemplo, código vs imagens vs texto). Compreenda os pontos fortes e limitações do modelo que está a usar, e use esse conhecimento para _priorizar tarefas_ ou construir _modelos personalizados_ otimizados para as capacidades do modelo. - -3. **Iteração e Validação são Importantes.** Os modelos estão a evoluir rapidamente, e também as técnicas de engenharia de prompt. Como especialista no domínio, pode ter outro contexto ou critérios para a sua aplicação específica, que podem não se aplicar à comunidade em geral. Use ferramentas e técnicas de engenharia de prompt para "dar o pontapé de saída" na construção do prompt, depois itere e valide os resultados usando a sua própria intuição e conhecimento do domínio. Registe as suas perceções e crie uma **base de conhecimento** (por exemplo, bibliotecas de prompts) que possam ser usadas como nova referência por outros, para iterações mais rápidas no futuro. - -## Melhores Práticas - -Vamos agora ver algumas melhores práticas comuns recomendadas pelos praticantes da [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) e [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst). - -| O Quê | Porquê | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Avalie os modelos mais recentes. | Novas gerações de modelos provavelmente têm funcionalidades e qualidade melhoradas – mas podem também implicar custos mais elevados. Avalie o impacto e depois tome decisões de migração. | -| Separe instruções e contexto | Verifique se o seu modelo/fornecedor define _delimitadores_ para distinguir instruções, conteúdo principal e secundário de forma mais clara. Isto pode ajudar os modelos a atribuir pesos mais precisos aos tokens. | -| Seja específico e claro | Dê mais detalhes sobre o contexto desejado, resultado, extensão, formato, estilo, etc. Isto melhora tanto a qualidade como a consistência das respostas. Registe receitas em modelos reutilizáveis. | -| Seja descritivo, use exemplos | Os modelos podem responder melhor a uma abordagem de "mostrar e contar". Comece com uma abordagem `zero-shot` onde dá uma instrução (mas sem exemplos) e depois experimente `few-shot` como refinamento, fornecendo alguns exemplos do resultado desejado. Use analogias. | -| Use pistas para iniciar respostas | Incentive o modelo para um resultado desejado dando-lhe algumas palavras ou frases iniciais que possa usar como ponto de partida para a resposta. | -| Reforce | Por vezes pode ser necessário repetir-se para o modelo. Dê instruções antes e depois do conteúdo principal, use uma instrução e uma pista, etc. Itere e valide para ver o que funciona. | -| A ordem importa | A ordem em que apresenta a informação ao modelo pode influenciar a saída, mesmo nos exemplos de aprendizagem, devido ao viés de recência. Experimente diferentes opções para ver o que funciona melhor. | -| Dê ao modelo uma “saída” | Dê ao modelo uma resposta de _fallback_ que possa fornecer se não conseguir completar a tarefa por qualquer motivo. Isto pode reduzir a probabilidade de o modelo gerar respostas falsas ou inventadas. | -| | | - -Como em qualquer melhor prática, lembre-se que _os resultados podem variar_ consoante o modelo, a tarefa e o domínio. Use estas recomendações como ponto de partida e itere para encontrar o que funciona melhor para si. Reavalie constantemente o seu processo de engenharia de prompt à medida que novos modelos e ferramentas ficam disponíveis, com foco na escalabilidade do processo e na qualidade da resposta. - - - -## Tarefa - -Parabéns! Chegou ao fim da lição! É hora de pôr alguns desses conceitos e técnicas à prova com exemplos reais! - -Para a nossa tarefa, vamos usar um Jupyter Notebook com exercícios que pode completar interativamente. Pode também expandir o Notebook com as suas próprias células de Markdown e Código para explorar ideias e técnicas por conta própria. - -### Para começar, faça um fork do repositório, depois - -- (Recomendado) Inicie o GitHub Codespaces -- (Alternativamente) Clone o repositório para o seu dispositivo local e use-o com Docker Desktop -- (Alternativamente) Abra o Notebook com o seu ambiente de runtime preferido. - -### A seguir, configure as suas variáveis de ambiente - -- Copie o ficheiro `.env.copy` na raiz do repositório para `.env` e preencha os valores `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` e `AZURE_OPENAI_DEPLOYMENT`. Volte à [secção Learning Sandbox](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) para aprender como. - -### Depois, abra o Jupyter Notebook - -- Selecione o kernel de runtime. Se usar as opções 1 ou 2, basta selecionar o kernel Python 3.10.x padrão fornecido pelo contentor de desenvolvimento. - -Está tudo pronto para executar os exercícios. Note que não existem respostas _certas ou erradas_ aqui – apenas explorar opções por tentativa e erro e construir intuição sobre o que funciona para um dado modelo e domínio de aplicação. - -_Por esta razão, não existem segmentos de Solução de Código nesta lição. Em vez disso, o Notebook terá células Markdown intituladas "A Minha Solução:" que mostram um exemplo de saída para referência._ - - - -## Verificação de Conhecimento - -Qual dos seguintes é um bom prompt seguindo algumas práticas recomendadas razoáveis? - -1. Mostra-me uma imagem de um carro vermelho -2. Mostra-me uma imagem de um carro vermelho da marca Volvo e modelo XC90 estacionado junto a um penhasco com o sol a pôr-se -3. Mostra-me uma imagem de um carro vermelho da marca Volvo e modelo XC90 - -R: 2, é o melhor prompt pois fornece detalhes sobre o "quê" e entra em pormenores (não é qualquer carro, mas uma marca e modelo específicos) e também descreve o cenário geral. O 3 é o segundo melhor pois também contém muita descrição. - -## 🚀 Desafio - -Veja se consegue usar a técnica da "pista" com o prompt: Complete a frase "Mostra-me uma imagem de um carro vermelho da marca Volvo e ". O que responde, e como melhoraria? - -## Excelente Trabalho! Continue a Aprender - -Quer aprender mais sobre diferentes conceitos de Engenharia de Prompt? Vá à [página de aprendizagem contínua](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) para encontrar outros ótimos recursos sobre este tema. - -Siga para a Lição 5 onde vamos explorar [técnicas avançadas de prompting](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**Aviso Legal**: -Este documento foi traduzido utilizando o serviço de tradução automática [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos por garantir a precisão, por favor tenha em conta que traduções automáticas podem conter erros ou imprecisões. O documento original na sua língua nativa deve ser considerado a fonte autorizada. Para informações críticas, recomenda-se a tradução profissional humana. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas decorrentes da utilização desta tradução. \ No newline at end of file + + + + + + + diff --git a/translations/pt/09-building-image-applications/README.md b/translations/pt/09-building-image-applications/README.md index 1bbbd61c5..47afd9460 100644 --- a/translations/pt/09-building-image-applications/README.md +++ b/translations/pt/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# Construir Aplicações de Geração de Imagens - -[![Construir Aplicações de Geração de Imagens](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.pt.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -Os LLMs não se limitam à geração de texto. Também é possível gerar imagens a partir de descrições textuais. Ter imagens como modalidade pode ser extremamente útil em várias áreas, desde MedTech, arquitetura, turismo, desenvolvimento de jogos e muito mais. Neste capítulo, vamos explorar os dois modelos de geração de imagens mais populares, DALL-E e Midjourney. - -## Introdução - -Nesta lição, vamos abordar: - -- Geração de imagens e por que é útil. -- DALL-E e Midjourney, o que são e como funcionam. -- Como construir uma aplicação de geração de imagens. - -## Objetivos de Aprendizagem - -Após completar esta lição, serás capaz de: - -- Construir uma aplicação de geração de imagens. -- Definir limites para a tua aplicação com metaprompts. -- Trabalhar com DALL-E e Midjourney. - -## Por que construir uma aplicação de geração de imagens? - -As aplicações de geração de imagens são uma excelente forma de explorar as capacidades da IA Generativa. Podem ser usadas, por exemplo, para: - -- **Edição e síntese de imagens**. Podes gerar imagens para vários casos de uso, como edição e síntese de imagens. - -- **Aplicação em diversas indústrias**. Também podem ser usadas para gerar imagens para várias indústrias, como Medtech, Turismo, Desenvolvimento de jogos e outras. - -## Cenário: Edu4All - -Como parte desta lição, vamos continuar a trabalhar com a nossa startup, Edu4All. Os alunos vão criar imagens para as suas avaliações; que imagens exatamente, fica ao critério dos alunos, mas podem ser ilustrações para o seu próprio conto de fadas, criar um novo personagem para a sua história ou ajudar a visualizar as suas ideias e conceitos. - -Aqui está um exemplo do que os alunos da Edu4All poderiam gerar se estiverem a trabalhar em aula sobre monumentos: - -![Edu4All startup, aula sobre monumentos, Torre Eiffel](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.pt.png) - -usando um prompt como - -> "Cão ao lado da Torre Eiffel ao nascer do sol" - -## O que são DALL-E e Midjourney? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) e [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) são dois dos modelos de geração de imagens mais populares, que permitem usar prompts para gerar imagens. - -### DALL-E - -Vamos começar pelo DALL-E, que é um modelo de IA Generativa que gera imagens a partir de descrições textuais. - -> [DALL-E é uma combinação de dois modelos, CLIP e diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP** é um modelo que gera embeddings, que são representações numéricas de dados, a partir de imagens e texto. - -- **Diffused attention** é um modelo que gera imagens a partir dos embeddings. O DALL-E é treinado com um conjunto de dados de imagens e texto e pode ser usado para gerar imagens a partir de descrições textuais. Por exemplo, o DALL-E pode ser usado para gerar imagens de um gato com chapéu, ou um cão com moicano. - -### Midjourney - -O Midjourney funciona de forma semelhante ao DALL-E, gerando imagens a partir de prompts textuais. O Midjourney também pode ser usado para gerar imagens com prompts como “um gato com chapéu” ou “um cão com moicano”. - -![Imagem gerada pelo Midjourney, pombo mecânico](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Crédito da imagem Wikipedia, imagem gerada pelo Midjourney_ - -## Como funcionam o DALL-E e o Midjourney - -Comecemos pelo [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). O DALL-E é um modelo de IA Generativa baseado na arquitetura transformer com um _transformer autoregressivo_. - -Um _transformer autoregressivo_ define como um modelo gera imagens a partir de descrições textuais, gerando um pixel de cada vez e depois usando os pixels gerados para criar o próximo pixel. Passa por múltiplas camadas numa rede neural até a imagem estar completa. - -Com este processo, o DALL-E controla atributos, objetos, características e mais na imagem que gera. No entanto, o DALL-E 2 e 3 têm um controlo ainda maior sobre a imagem gerada. - -## Construir a tua primeira aplicação de geração de imagens - -Então, o que é necessário para construir uma aplicação de geração de imagens? Precisarás das seguintes bibliotecas: - -- **python-dotenv**, é altamente recomendado usar esta biblioteca para manter os teus segredos num ficheiro _.env_ separado do código. -- **openai**, esta biblioteca é o que vais usar para interagir com a API da OpenAI. -- **pillow**, para trabalhar com imagens em Python. -- **requests**, para ajudar a fazer pedidos HTTP. - -1. Cria um ficheiro _.env_ com o seguinte conteúdo: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Encontra esta informação no Portal Azure para o teu recurso na secção "Chaves e Endpoint". - -1. Reúne as bibliotecas acima num ficheiro chamado _requirements.txt_ assim: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. De seguida, cria um ambiente virtual e instala as bibliotecas: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Para Windows, usa os seguintes comandos para criar e ativar o ambiente virtual: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. Adiciona o seguinte código num ficheiro chamado _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Vamos explicar este código: - -- Primeiro, importamos as bibliotecas necessárias, incluindo a biblioteca OpenAI, a dotenv, a requests e a Pillow. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Depois, carregamos as variáveis de ambiente do ficheiro _.env_. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- Em seguida, definimos o endpoint, a chave para a API OpenAI, a versão e o tipo. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- Depois, geramos a imagem: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - O código acima responde com um objeto JSON que contém a URL da imagem gerada. Podemos usar essa URL para descarregar a imagem e guardá-la num ficheiro. - -- Por fim, abrimos a imagem e usamos o visualizador de imagens padrão para a mostrar: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Mais detalhes sobre a geração da imagem - -Vamos analisar o código que gera a imagem com mais detalhe: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** é o texto usado para gerar a imagem. Neste caso, estamos a usar o prompt "Coelho em cavalo, segurando um pirulito, num prado enevoado onde crescem narcisos". -- **size** é o tamanho da imagem gerada. Neste caso, estamos a gerar uma imagem de 1024x1024 pixels. -- **n** é o número de imagens geradas. Neste caso, estamos a gerar duas imagens. -- **temperature** é um parâmetro que controla a aleatoriedade da saída de um modelo de IA Generativa. A temperatura varia entre 0 e 1, onde 0 significa que a saída é determinística e 1 significa que a saída é aleatória. O valor padrão é 0.7. - -Existem mais coisas que podes fazer com imagens, que vamos abordar na próxima secção. - -## Capacidades adicionais da geração de imagens - -Até agora viste como conseguimos gerar uma imagem com poucas linhas em Python. No entanto, há mais possibilidades com imagens. - -Podes também fazer o seguinte: - -- **Realizar edições**. Ao fornecer uma imagem existente, uma máscara e um prompt, podes alterar uma imagem. Por exemplo, podes adicionar algo a uma parte da imagem. Imagina a nossa imagem do coelho, podes adicionar um chapéu ao coelho. Para isso, forneces a imagem, uma máscara (identificando a área a alterar) e um prompt textual a indicar o que deve ser feito. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - A imagem base conteria apenas o coelho, mas a imagem final teria o chapéu no coelho. - -- **Criar variações**. A ideia é pegar numa imagem existente e pedir que sejam criadas variações. Para criar uma variação, forneces uma imagem e um prompt textual e código assim: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Nota, isto é suportado apenas na OpenAI - -## Temperatura - -Temperatura é um parâmetro que controla a aleatoriedade da saída de um modelo de IA Generativa. A temperatura varia entre 0 e 1, onde 0 significa que a saída é determinística e 1 significa que a saída é aleatória. O valor padrão é 0.7. - -Vamos ver um exemplo de como a temperatura funciona, executando este prompt duas vezes: - -> Prompt : "Coelho em cavalo, segurando um pirulito, num prado enevoado onde crescem narcisos" - -![Coelho em cavalo segurando um pirulito, versão 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.pt.png) - -Agora vamos executar o mesmo prompt só para ver que não vamos obter a mesma imagem duas vezes: - -![Imagem gerada de coelho em cavalo](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.pt.png) - -Como podes ver, as imagens são semelhantes, mas não iguais. Vamos tentar mudar o valor da temperatura para 0.1 e ver o que acontece: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Alterar a temperatura - -Vamos tentar tornar a resposta mais determinística. Podemos observar pelas duas imagens que gerámos que na primeira imagem há um coelho e na segunda há um cavalo, portanto as imagens variam bastante. - -Vamos então alterar o nosso código e definir a temperatura para 0, assim: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Agora, quando executares este código, vais obter estas duas imagens: - -- ![Temperatura 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.pt.png) -- ![Temperatura 0, v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.pt.png) - -Aqui podes ver claramente como as imagens se parecem mais entre si. - -## Como definir limites para a tua aplicação com metaprompts - -Com a nossa demo, já podemos gerar imagens para os nossos clientes. No entanto, precisamos de criar alguns limites para a nossa aplicação. - -Por exemplo, não queremos gerar imagens que não sejam seguras para o trabalho, ou que não sejam apropriadas para crianças. - -Podemos fazer isso com _metaprompts_. Metaprompts são prompts textuais usados para controlar a saída de um modelo de IA Generativa. Por exemplo, podemos usar metaprompts para controlar a saída e garantir que as imagens geradas são seguras para o trabalho ou apropriadas para crianças. - -### Como funciona? - -Então, como funcionam os metaprompts? - -Metaprompts são prompts textuais usados para controlar a saída de um modelo de IA Generativa, são posicionados antes do prompt textual e usados para controlar a saída do modelo, sendo incorporados em aplicações para controlar a saída do modelo. Envolvendo o input do prompt e o input do metaprompt num único prompt textual. - -Um exemplo de metaprompt seria o seguinte: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Agora, vamos ver como podemos usar metaprompts na nossa demo. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -A partir do prompt acima, podes ver como todas as imagens criadas consideram o metaprompt. - -## Exercício - vamos capacitar os alunos - -Apresentámos a Edu4All no início desta lição. Agora é altura de capacitar os alunos para gerar imagens para as suas avaliações. - -Os alunos vão criar imagens para as suas avaliações contendo monumentos, exatamente quais monumentos fica ao critério dos alunos. Os alunos são convidados a usar a sua criatividade nesta tarefa para colocar esses monumentos em diferentes contextos. - -## Solução - -Aqui está uma possível solução: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Excelente trabalho! Continua a aprender - -Após completares esta lição, consulta a nossa [coleção de Aprendizagem de IA Generativa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) para continuares a aprofundar os teus conhecimentos em IA Generativa! - -Segue para a Lição 10 onde vamos ver como [construir aplicações de IA com low-code](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**Aviso Legal**: -Este documento foi traduzido utilizando o serviço de tradução automática [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos pela precisão, por favor tenha em conta que traduções automáticas podem conter erros ou imprecisões. O documento original na sua língua nativa deve ser considerado a fonte autorizada. Para informações críticas, recomenda-se tradução profissional humana. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações erradas decorrentes da utilização desta tradução. \ No newline at end of file + + + + diff --git a/translations/pt/12-designing-ux-for-ai-applications/README.md b/translations/pt/12-designing-ux-for-ai-applications/README.md index f688a33c2..d9579eaff 100644 --- a/translations/pt/12-designing-ux-for-ai-applications/README.md +++ b/translations/pt/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# Design de UX para Aplicações de IA - -[![Design de UX para Aplicações de IA](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.pt.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Clique na imagem acima para ver o vídeo desta lição)_ - -A experiência do utilizador é um aspeto muito importante na criação de aplicações. Os utilizadores precisam de conseguir usar a sua aplicação de forma eficiente para realizar tarefas. Ser eficiente é uma coisa, mas também é necessário desenhar aplicações para que possam ser usadas por todos, tornando-as _acessíveis_. Este capítulo vai focar-se nesta área para que, idealmente, acabe por desenhar uma aplicação que as pessoas possam e queiram usar. - -## Introdução - -A experiência do utilizador é a forma como um utilizador interage e utiliza um produto ou serviço específico, seja um sistema, ferramenta ou design. Ao desenvolver aplicações de IA, os programadores não se focam apenas em garantir que a experiência do utilizador é eficaz, mas também ética. Nesta lição, abordamos como construir aplicações de Inteligência Artificial (IA) que respondam às necessidades dos utilizadores. - -A lição irá cobrir as seguintes áreas: - -- Introdução à Experiência do Utilizador e Compreensão das Necessidades dos Utilizadores -- Design de Aplicações de IA para Confiança e Transparência -- Design de Aplicações de IA para Colaboração e Feedback - -## Objetivos de aprendizagem - -Após esta lição, será capaz de: - -- Compreender como construir aplicações de IA que satisfaçam as necessidades dos utilizadores. -- Desenhar aplicações de IA que promovam confiança e colaboração. - -### Pré-requisito - -Reserve algum tempo para ler mais sobre [experiência do utilizador e design thinking.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Introdução à Experiência do Utilizador e Compreensão das Necessidades dos Utilizadores - -Na nossa startup fictícia de educação, temos dois utilizadores principais: professores e alunos. Cada um destes utilizadores tem necessidades únicas. Um design centrado no utilizador prioriza o utilizador, garantindo que os produtos são relevantes e benéficos para aqueles a quem se destinam. - -A aplicação deve ser **útil, fiável, acessível e agradável** para proporcionar uma boa experiência ao utilizador. - -### Usabilidade - -Ser útil significa que a aplicação tem funcionalidades que correspondem ao seu propósito, como automatizar o processo de avaliação ou gerar flashcards para revisão. Uma aplicação que automatiza a avaliação deve ser capaz de atribuir notas aos trabalhos dos alunos de forma precisa e eficiente, com base em critérios pré-definidos. De forma semelhante, uma aplicação que gera flashcards para revisão deve conseguir criar perguntas relevantes e diversificadas com base nos seus dados. - -### Fiabilidade - -Ser fiável significa que a aplicação consegue executar a sua tarefa de forma consistente e sem erros. No entanto, a IA, tal como os humanos, não é perfeita e pode cometer erros. As aplicações podem encontrar erros ou situações inesperadas que requerem intervenção ou correção humana. Como lida com erros? Na última secção desta lição, abordaremos como os sistemas e aplicações de IA são desenhados para colaboração e feedback. - -### Acessibilidade - -Ser acessível significa estender a experiência do utilizador a pessoas com diferentes capacidades, incluindo aquelas com deficiências, garantindo que ninguém fica excluído. Ao seguir as diretrizes e princípios de acessibilidade, as soluções de IA tornam-se mais inclusivas, utilizáveis e benéficas para todos os utilizadores. - -### Agrado - -Ser agradável significa que a aplicação é prazerosa de usar. Uma experiência de utilizador apelativa pode ter um impacto positivo, incentivando o utilizador a voltar à aplicação e aumentando a receita do negócio. - -![imagem a ilustrar considerações de UX em IA](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.pt.png) - -Nem todos os desafios podem ser resolvidos com IA. A IA serve para complementar a sua experiência de utilizador, seja automatizando tarefas manuais ou personalizando experiências. - -## Design de Aplicações de IA para Confiança e Transparência - -Construir confiança é fundamental ao desenhar aplicações de IA. A confiança garante que o utilizador está seguro de que a aplicação vai realizar o trabalho, entregar resultados consistentes e que esses resultados são o que o utilizador precisa. Um risco nesta área é a desconfiança e a confiança excessiva. A desconfiança ocorre quando o utilizador tem pouca ou nenhuma confiança num sistema de IA, o que leva à rejeição da aplicação. A confiança excessiva ocorre quando o utilizador sobrestima a capacidade do sistema de IA, confiando demasiado nele. Por exemplo, num sistema automatizado de avaliação, a confiança excessiva pode levar o professor a não rever alguns trabalhos para garantir que o sistema funciona corretamente. Isto pode resultar em notas injustas ou imprecisas para os alunos, ou em oportunidades perdidas de feedback e melhoria. - -Duas formas de garantir que a confiança está no centro do design são a explicabilidade e o controlo. - -### Explicabilidade - -Quando a IA ajuda a informar decisões, como transmitir conhecimento às gerações futuras, é fundamental que professores e pais compreendam como as decisões da IA são tomadas. Isto é a explicabilidade – entender como as aplicações de IA tomam decisões. Desenhar para explicabilidade inclui adicionar exemplos do que uma aplicação de IA pode fazer. Por exemplo, em vez de "Comece com o professor de IA", o sistema pode usar: "Resuma as suas notas para uma revisão mais fácil usando IA." - -![uma página inicial de aplicação com ilustração clara da explicabilidade em aplicações de IA](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.pt.png) - -Outro exemplo é como a IA usa dados pessoais e do utilizador. Por exemplo, um utilizador com a persona de aluno pode ter limitações baseadas na sua persona. A IA pode não revelar respostas às perguntas, mas pode ajudar a guiar o utilizador a pensar em como resolver um problema. - -![IA a responder a perguntas com base na persona](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.pt.png) - -Uma última parte importante da explicabilidade é a simplificação das explicações. Alunos e professores podem não ser especialistas em IA, por isso as explicações sobre o que a aplicação pode ou não fazer devem ser simples e fáceis de entender. - -![explicações simplificadas sobre capacidades de IA](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.pt.png) - -### Controlo - -A IA generativa cria uma colaboração entre a IA e o utilizador, onde, por exemplo, o utilizador pode modificar os prompts para obter resultados diferentes. Além disso, uma vez gerado um resultado, os utilizadores devem poder modificar esses resultados, dando-lhes uma sensação de controlo. Por exemplo, ao usar o Bing, pode ajustar o seu prompt com base no formato, tom e comprimento. Além disso, pode adicionar alterações ao resultado e modificá-lo, como mostrado abaixo: - -![Resultados de pesquisa do Bing com opções para modificar o prompt e o resultado](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.pt.png) - -Outra funcionalidade do Bing que permite ao utilizador ter controlo sobre a aplicação é a possibilidade de optar por participar ou não na recolha de dados que a IA utiliza. Numa aplicação escolar, um aluno pode querer usar as suas notas, bem como os recursos dos professores, como material de revisão. - -![Resultados de pesquisa do Bing com opções para modificar o prompt e o resultado](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.pt.png) - -> Ao desenhar aplicações de IA, a intencionalidade é fundamental para garantir que os utilizadores não confiem excessivamente, criando expectativas irreais sobre as suas capacidades. Uma forma de fazer isto é criar alguma resistência entre os prompts e os resultados, lembrando o utilizador que isto é IA e não um ser humano. - -## Design de Aplicações de IA para Colaboração e Feedback - -Como mencionado anteriormente, a IA generativa cria uma colaboração entre o utilizador e a IA. A maioria das interações consiste num utilizador a inserir um prompt e a IA a gerar um resultado. E se o resultado estiver incorreto? Como é que a aplicação lida com erros se eles ocorrerem? A IA culpa o utilizador ou dedica tempo a explicar o erro? - -As aplicações de IA devem ser construídas para receber e dar feedback. Isto não só ajuda o sistema de IA a melhorar, como também constrói confiança com os utilizadores. Um ciclo de feedback deve ser incluído no design, um exemplo pode ser um simples polegar para cima ou para baixo no resultado. - -Outra forma de lidar com isto é comunicar claramente as capacidades e limitações do sistema. Quando um utilizador comete um erro ao pedir algo além das capacidades da IA, deve haver também uma forma de lidar com isso, como mostrado abaixo. - -![Dar feedback e lidar com erros](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.pt.png) - -Erros no sistema são comuns em aplicações onde o utilizador pode precisar de ajuda com informações fora do âmbito da IA ou a aplicação pode ter um limite no número de perguntas/temas para os quais o utilizador pode gerar resumos. Por exemplo, uma aplicação de IA treinada com dados limitados a certas disciplinas, como História e Matemática, pode não conseguir responder a perguntas sobre Geografia. Para mitigar isto, o sistema de IA pode responder algo como: "Desculpe, o nosso produto foi treinado com dados nas seguintes disciplinas....., não consigo responder à pergunta que fez." - -As aplicações de IA não são perfeitas, por isso, inevitavelmente, vão cometer erros. Ao desenhar as suas aplicações, deve garantir que cria espaço para feedback dos utilizadores e para a gestão de erros de forma simples e facilmente explicável. - -## Tarefa - -Pegue em qualquer aplicação de IA que tenha criado até agora e considere implementar os seguintes passos na sua aplicação: - -- **Agrado:** Pense em como pode tornar a sua aplicação mais agradável. Está a adicionar explicações em todo o lado? Está a incentivar o utilizador a explorar? Como está a formular as suas mensagens de erro? - -- **Usabilidade:** Está a construir uma aplicação web? Certifique-se de que a sua aplicação é navegável tanto com rato como com teclado. - -- **Confiança e transparência:** Não confie completamente na IA e nos seus resultados, pense em como poderia incluir um humano no processo para verificar os resultados. Além disso, considere e implemente outras formas de alcançar confiança e transparência. - -- **Controlo:** Dê ao utilizador controlo sobre os dados que fornece à aplicação. Implemente uma forma para o utilizador optar por participar ou não na recolha de dados na aplicação de IA. - -## Continue a sua aprendizagem! - -Após completar esta lição, consulte a nossa [coleção de Aprendizagem de IA Generativa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) para continuar a aprofundar os seus conhecimentos em IA Generativa! - -Siga para a Lição 13, onde vamos ver como [proteger aplicações de IA](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**Aviso Legal**: -Este documento foi traduzido utilizando o serviço de tradução automática [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos pela precisão, por favor tenha em conta que traduções automáticas podem conter erros ou imprecisões. O documento original na sua língua nativa deve ser considerado a fonte autorizada. Para informações críticas, recomenda-se tradução profissional humana. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações erradas decorrentes da utilização desta tradução. \ No newline at end of file + + + diff --git a/translations/pt/README.md b/translations/pt/README.md index 253be316e..3ec6622d8 100644 --- a/translations/pt/README.md +++ b/translations/pt/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.pt.png) - -### 21 Lições que ensinam tudo o que precisa de saber para começar a criar aplicações de IA Generativa - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Suporte Multilingue - -#### Suportado via GitHub Action (Automatizado e Sempre Atualizado) - -[Francês](../fr/README.md) | [Espanhol](../es/README.md) | [Alemão](../de/README.md) | [Russo](../ru/README.md) | [Árabe](../ar/README.md) | [Persa (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinês (Simplificado)](../zh/README.md) | [Chinês (Tradicional, Macau)](../mo/README.md) | [Chinês (Tradicional, Hong Kong)](../hk/README.md) | [Chinês (Tradicional, Taiwan)](../tw/README.md) | [Japonês](../ja/README.md) | [Coreano](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Português (Portugal)](./README.md) | [Português (Brasil)](../br/README.md) | [Italiano](../it/README.md) | [Polaco](../pl/README.md) | [Turco](../tr/README.md) | [Grego](../el/README.md) | [Tailandês](../th/README.md) | [Sueco](../sv/README.md) | [Dinamarquês](../da/README.md) | [Norueguês](../no/README.md) | [Finlandês](../fi/README.md) | [Holandês](../nl/README.md) | [Hebraico](../he/README.md) | [Vietnamita](../vi/README.md) | [Indonésio](../id/README.md) | [Malaio](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Suaíli](../sw/README.md) | [Húngaro](../hu/README.md) | [Checo](../cs/README.md) | [Eslovaco](../sk/README.md) | [Romeno](../ro/README.md) | [Búlgaro](../bg/README.md) | [Sérvio (Cirílico)](../sr/README.md) | [Croata](../hr/README.md) | [Esloveno](../sl/README.md) | [Ucraniano](../uk/README.md) | [Birmanês (Myanmar)](../my/README.md) - -# IA Generativa para Iniciantes (Versão 3) - Um Curso - -Aprenda os fundamentos para criar aplicações de IA Generativa com o nosso curso completo de 21 lições, apresentado pelos Microsoft Cloud Advocates. - -## 🌱 Começar - -Este curso tem 21 lições. Cada lição aborda um tema específico, por isso comece onde quiser! - -As lições estão divididas em lições "Learn" que explicam um conceito de IA Generativa e lições "Build" que explicam um conceito e apresentam exemplos de código em **Python** e **TypeScript**, sempre que possível. - -Para programadores .NET, veja [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -Cada lição inclui também uma secção "Keep Learning" com ferramentas adicionais para aprofundar o conhecimento. - -## O que precisa -### Para executar o código deste curso, pode usar: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **Lições:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **Lições:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **Lições:** "oai-assignment" - -- Conhecimentos básicos de Python ou TypeScript são úteis - \*Para iniciantes absolutos, consulte estes cursos de [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) e [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) -- Uma conta GitHub para [fazer fork deste repositório completo](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) para a sua própria conta GitHub - -Criámos uma lição **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** para ajudar a configurar o seu ambiente de desenvolvimento. - -Não se esqueça de [dar estrela (🌟) a este repositório](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) para o encontrar mais facilmente depois. - -## 🧠 Pronto para implementar? - -Se procura exemplos de código mais avançados, veja a nossa [coleção de Exemplos de Código de IA Generativa](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) em **Python** e **TypeScript**. - -## 🗣️ Conheça outros aprendizes, obtenha apoio - -Junte-se ao nosso [servidor oficial Azure AI Foundry no Discord](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) para conhecer e interagir com outros alunos deste curso e obter suporte. - -Coloque questões ou partilhe feedback sobre o produto no nosso [Fórum de Desenvolvedores Azure AI Foundry](https://aka.ms/azureaifoundry/forum) no Github. - -## 🚀 A criar uma startup? - -Inscreva-se no [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) para receber **créditos OpenAI gratuitos** e até **$150k em créditos Azure para aceder a modelos OpenAI através do Azure OpenAI Services**. - -## 🙏 Quer ajudar? - -Tem sugestões ou encontrou erros ortográficos ou de código? [Abra uma issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) ou [crie um pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 Cada lição inclui: - -- Uma breve introdução em vídeo ao tema -- Uma lição escrita disponível no README -- Exemplos de código em Python e TypeScript que suportam Azure OpenAI e OpenAI API -- Ligações para recursos extra para continuar a aprender - -## 🗃️ Lições - -| # | **Link da Lição** | **Descrição** | **Vídeo** | **Aprendizagem Extra** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | -| 00 | [Configuração do Curso](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Como Configurar o Seu Ambiente de Desenvolvimento | Vídeo em Breve | [Saber Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introdução à IA Generativa e LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Compreender o que é IA Generativa e como funcionam os Modelos de Linguagem Grande (LLMs) | [Vídeo](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Saber Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Explorar e comparar diferentes LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Como escolher o modelo certo para o seu caso de uso | [Vídeo](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Saber Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Usar IA Generativa de forma responsável](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Como construir aplicações de IA Generativa de forma responsável | [Vídeo](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Saber Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Compreender os Fundamentos do Prompt Engineering](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Práticas recomendadas de Prompt Engineering com exemplos práticos | [Vídeo](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Saber Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Criar Prompts Avançados](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Como aplicar técnicas de prompt engineering que melhoram os resultados dos seus prompts | [Vídeo](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Saber Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Construir Aplicações de Geração de Texto](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Construir:** Uma aplicação de geração de texto usando Azure OpenAI / OpenAI API | [Vídeo](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Saber Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Construir Aplicações de Chat](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Construir:** Técnicas para construir e integrar aplicações de chat de forma eficiente. | [Vídeo](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Saber Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Construir Aplicações de Pesquisa com Bases de Dados Vetoriais](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Construir:** Uma aplicação de pesquisa que usa Embeddings para procurar dados. | [Vídeo](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Saber Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Construir Aplicações de Geração de Imagem](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Construir:** Uma aplicação de geração de imagens | [Vídeo](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Saber Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Construir Aplicações de IA Low Code](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Construir:** Uma aplicação de IA Generativa usando ferramentas Low Code | [Vídeo](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Saber Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Integrar Aplicações Externas com Function Calling](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Construir:** O que é function calling e os seus casos de uso em aplicações | [Vídeo](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Saber Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [Desenhar UX para Aplicações de IA](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Aprender:** Como aplicar princípios de design UX ao desenvolver Aplicações de IA Generativa | [Vídeo](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Saber Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Garantir a Segurança das Suas Aplicações de IA Generativa](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Aprender:** As ameaças e riscos aos sistemas de IA e os métodos para os proteger. | [Vídeo](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Saber Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [O Ciclo de Vida das Aplicações de IA Generativa](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Aprender:** As ferramentas e métricas para gerir o Ciclo de Vida dos LLM e LLMOps | [Vídeo](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Saber Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) e Bases de Dados Vetoriais](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Construir:** Uma aplicação usando um Framework RAG para recuperar embeddings de Bases de Dados Vetoriais | [Vídeo](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Saber Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Modelos Open Source e Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Construir:** Uma aplicação usando modelos open source disponíveis no Hugging Face | [Vídeo](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Saber Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [Agentes de IA](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Construir:** Uma aplicação usando um Framework de Agentes de IA | [Vídeo](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Saber Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [Fine-Tuning de LLMs](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Aprender:** O quê, porquê e como fazer fine-tuning de LLMs | [Vídeo](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Saber Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Construir com SLMs](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Aprender:** As vantagens de construir com Small Language Models | Vídeo em breve | [Saber Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Construir com Modelos Mistral](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Aprender:** As características e diferenças dos Modelos da Família Mistral | Vídeo em breve | [Saber Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Construir com Modelos Meta](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Aprender:** As características e diferenças dos Modelos da Família Meta | Vídeo em breve | [Saber Mais](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Agradecimentos especiais - -Agradecimentos especiais a [**John Aziz**](https://www.linkedin.com/in/john0isaac/) pela criação de todas as GitHub Actions e workflows - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) pelas contribuições essenciais em cada lição para melhorar a experiência do aprendiz e do código. - -## 🎒 Outros Cursos - -A nossa equipa produz outros cursos! Veja: - -- [**NOVO** Protocolo de Contexto de Modelo para Iniciantes](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Agentes de IA para Iniciantes](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [IA Generativa para Iniciantes usando .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [IA Generativa para Iniciantes usando JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML para Iniciantes](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Ciência de Dados para Iniciantes](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [IA para Iniciantes](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Cibersegurança para Iniciantes](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Desenvolvimento Web para Iniciantes](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT para Iniciantes](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [Desenvolvimento XR para Iniciantes](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Dominar o GitHub Copilot para Programação em Par com IA](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Dominar o GitHub Copilot para Desenvolvedores C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Escolha a Sua Própria Aventura com o Copilot](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Aviso Legal**: -Este documento foi traduzido utilizando o serviço de tradução automática [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos pela precisão, por favor tenha em conta que traduções automáticas podem conter erros ou imprecisões. O documento original na sua língua nativa deve ser considerado a fonte autorizada. Para informações críticas, recomenda-se tradução profissional humana. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas decorrentes da utilização desta tradução. \ No newline at end of file + + + + diff --git a/translations/ro/00-course-setup/01-setup-cloud.md b/translations/ro/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..6b0931ddd --- /dev/null +++ b/translations/ro/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/ro/00-course-setup/02-setup-local.md b/translations/ro/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..0d01568cb --- /dev/null +++ b/translations/ro/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/ro/00-course-setup/03-providers.md b/translations/ro/00-course-setup/03-providers.md new file mode 100644 index 000000000..df2a3bddb --- /dev/null +++ b/translations/ro/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/ro/00-course-setup/README.md b/translations/ro/00-course-setup/README.md index 9b1207ab5..d87fb95a2 100644 --- a/translations/ro/00-course-setup/README.md +++ b/translations/ro/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# Începutul acestui curs - -Suntem foarte entuziasmați să începi acest curs și să vezi ce te inspiră să construiești cu Generative AI! - -Pentru a-ți asigura succesul, această pagină prezintă pașii de configurare, cerințele tehnice și unde poți găsi ajutor dacă ai nevoie. - -## Pașii de configurare - -Pentru a începe să urmezi acest curs, va trebui să parcurgi următorii pași. - -### 1. Fă un fork la acest repo - -[Fă un fork la întregul repo](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) în contul tău de GitHub pentru a putea modifica codul și a finaliza provocările. De asemenea, poți [da star (🌟) acestui repo](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) pentru a-l găsi mai ușor pe el și pe cele conexe. - -### 2. Creează un codespace - -Pentru a evita problemele legate de dependențe când rulezi codul, recomandăm să folosești [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst). - -Acesta poate fi creat selectând opțiunea `Code` pe versiunea ta fork-uită a repo-ului și apoi alegând opțiunea **Codespaces**. - -![Dialog care arată butoanele pentru crearea unui codespace](../../../00-course-setup/images/who-will-pay.webp) - -### 3. Stocarea cheilor tale API - -Este important să păstrezi cheile API în siguranță atunci când construiești orice tip de aplicație. Recomandăm să nu stochezi cheile API direct în codul tău. Comitearea acestor detalii într-un repo public poate duce la probleme de securitate și chiar costuri nedorite dacă sunt folosite de persoane rău intenționate. -Iată un ghid pas cu pas despre cum să creezi un fișier `.env` pentru Python și să adaugi `GITHUB_TOKEN`: - -1. **Navighează în directorul proiectului tău**: Deschide terminalul sau linia de comandă și mergi în directorul rădăcină al proiectului unde vrei să creezi fișierul `.env`. - - ```bash - cd path/to/your/project - ``` - -2. **Creează fișierul `.env`**: Folosește editorul tău preferat pentru a crea un fișier nou numit `.env`. Dacă folosești linia de comandă, poți folosi `touch` (pe sisteme Unix) sau `echo` (pe Windows): - - Sisteme Unix: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **Editează fișierul `.env`**: Deschide fișierul `.env` într-un editor de text (de exemplu, VS Code, Notepad++ sau alt editor). Adaugă următoarea linie în fișier, înlocuind `your_github_token_here` cu token-ul tău GitHub real: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Salvează fișierul**: Salvează modificările și închide editorul de text. - -5. **Instalează `python-dotenv`**: Dacă nu ai făcut-o deja, trebuie să instalezi pachetul `python-dotenv` pentru a încărca variabilele de mediu din fișierul `.env` în aplicația ta Python. Poți să-l instalezi folosind `pip`: - - ```bash - pip install python-dotenv - ``` - -6. **Încarcă variabilele de mediu în scriptul tău Python**: În scriptul tău Python, folosește pachetul `python-dotenv` pentru a încărca variabilele de mediu din fișierul `.env`: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -Cam asta e! Ai creat cu succes un fișier `.env`, ai adăugat token-ul GitHub și l-ai încărcat în aplicația ta Python. - -## Cum să rulezi local pe calculatorul tău - -Pentru a rula codul local pe calculator, trebuie să ai instalată o versiune de [Python](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -Pentru a folosi apoi repository-ul, trebuie să-l clonezi: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -După ce ai totul pregătit, poți începe! - -## Pași opționali - -### Instalarea Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) este un instalator ușor pentru instalarea [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python, precum și câteva pachete. -Conda este un manager de pachete care facilitează configurarea și comutarea între diferite [**medii virtuale**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) Python și pachete. Este util și pentru instalarea pachetelor care nu sunt disponibile prin `pip`. - -Poți urma [ghidul de instalare MiniConda](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) pentru a-l configura. - -După ce ai instalat Miniconda, trebuie să clonezi [repository-ul](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (dacă nu ai făcut-o deja). - -Apoi, trebuie să creezi un mediu virtual. Pentru asta, cu Conda, creează un fișier nou de mediu (_environment.yml_). Dacă urmezi pașii folosind Codespaces, creează-l în directorul `.devcontainer`, adică `.devcontainer/environment.yml`. - -Completează fișierul de mediu cu fragmentul de mai jos: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Dacă întâmpini erori folosind conda, poți instala manual Microsoft AI Libraries folosind comanda următoare în terminal. - -``` -conda install -c microsoft azure-ai-ml -``` - -Fișierul de mediu specifică dependențele necesare. `` este numele pe care vrei să-l folosești pentru mediul Conda, iar `` este versiunea de Python dorită, de exemplu, `3` pentru cea mai recentă versiune majoră. - -După ce ai făcut asta, poți crea mediul Conda rulând comenzile de mai jos în linia de comandă/terminal: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -Consultă [ghidul pentru mediile Conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst) dacă întâmpini probleme. - -### Folosirea Visual Studio Code cu extensia de suport Python - -Recomandăm să folosești editorul [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) cu [extensia de suport Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) instalată pentru acest curs. Totuși, aceasta este doar o recomandare, nu o cerință obligatorie. - -> **Note**: Deschizând repository-ul cursului în VS Code, ai opțiunea să configurezi proiectul într-un container. Acest lucru este posibil datorită directorului special [`.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) din repository-ul cursului. Vom vorbi mai multe despre asta mai târziu. - -> **Note**: După ce clonezi și deschizi directorul în VS Code, acesta îți va sugera automat să instalezi extensia de suport Python. - -> **Note**: Dacă VS Code îți sugerează să redeschizi repository-ul într-un container, refuză această cerere pentru a folosi versiunea locală de Python instalată pe calculator. - -### Folosirea Jupyter în browser - -Poți lucra și în proiect folosind mediul [Jupyter](https://jupyter.org?WT.mc_id=academic-105485-koreyst) direct în browser. Atât Jupyter clasic, cât și [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) oferă un mediu de dezvoltare plăcut, cu funcții precum completare automată, evidențierea codului etc. - -Pentru a porni Jupyter local, deschide terminalul/linia de comandă, navighează în directorul cursului și execută: - -```bash -jupyter notebook -``` - -sau - -```bash -jupyterhub -``` - -Aceasta va porni o instanță Jupyter, iar URL-ul pentru acces va fi afișat în fereastra terminalului. - -Odată ce accesezi URL-ul, ar trebui să vezi structura cursului și să poți naviga către orice fișier `*.ipynb`. De exemplu, `08-building-search-applications/python/oai-solution.ipynb`. - -### Rularea într-un container - -O alternativă la configurarea totul pe calculatorul tău sau în Codespace este să folosești un [container](../../../00-course-setup/). Directorul special `.devcontainer` din repository-ul cursului permite VS Code să configureze proiectul într-un container. În afara Codespaces, acest lucru necesită instalarea Docker și, sincer, implică ceva muncă, așa că recomandăm această variantă doar celor cu experiență în lucrul cu containere. - -Una dintre cele mai bune metode de a-ți păstra cheile API în siguranță când folosești GitHub Codespaces este folosirea Codespace Secrets. Te rugăm să urmezi ghidul [Codespaces secrets management](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) pentru a afla mai multe. - -## Lecții și cerințe tehnice - -Cursul are 6 lecții conceptuale și 6 lecții de programare. - -Pentru lecțiile de programare, folosim Azure OpenAI Service. Vei avea nevoie de acces la serviciul Azure OpenAI și de o cheie API pentru a rula codul. Poți aplica pentru acces [completând această cerere](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -În timp ce aștepți procesarea cererii, fiecare lecție de programare include și un fișier `README.md` unde poți vedea codul și rezultatele. - -## Folosirea Azure OpenAI Service pentru prima dată - -Dacă este prima dată când lucrezi cu serviciul Azure OpenAI, te rugăm să urmezi acest ghid despre cum să [creezi și să implementezi o resursă Azure OpenAI Service.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## Folosirea OpenAI API pentru prima dată - -Dacă este prima dată când lucrezi cu OpenAI API, te rugăm să urmezi ghidul despre cum să [creezi și să folosești interfața.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## Cunoaște alți cursanți - -Am creat canale în serverul nostru oficial [AI Community Discord](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) pentru a cunoaște alți cursanți. Este o modalitate excelentă de a face networking cu alți antreprenori, dezvoltatori, studenți și oricine dorește să avanseze în Generative AI. - -[![Join discord channel](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -Echipa proiectului va fi de asemenea prezentă pe acest server Discord pentru a ajuta cursanții. - -## Contribuie - -Acest curs este o inițiativă open-source. Dacă observi zone care pot fi îmbunătățite sau probleme, te rugăm să creezi un [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) sau să raportezi un [issue pe GitHub](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -Echipa proiectului va urmări toate contribuțiile. Contribuția la open source este o modalitate excelentă de a-ți dezvolta cariera în Generative AI. - -Majoritatea contribuțiilor necesită să fii de acord cu un Acord de Licență pentru Contribuitor (CLA) prin care declari că ai dreptul și efectiv ne acorzi drepturile de a folosi contribuția ta. Pentru detalii, vizitează [site-ul CLA, Contributor License Agreement](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Important: când traduci text în acest repo, te rugăm să nu folosești traducere automată. Vom verifica traducerile prin comunitate, așa că te rugăm să te oferi voluntar doar pentru limbile în care ești fluent. - -Când trimiți un pull request, un bot CLA va determina automat dacă trebuie să furnizezi un CLA și va marca PR-ul corespunzător (de exemplu, cu etichetă sau comentariu). Urmează pur și simplu instrucțiunile oferite de bot. Va trebui să faci asta o singură dată pentru toate repo-urile care folosesc CLA-ul nostru. - -Acest proiect a adoptat [Codul de Conduită Open Source Microsoft](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst). Pentru mai multe informații, citește FAQ-ul Codului de Conduită sau contactează [Email opencode](opencode@microsoft.com) pentru întrebări sau comentarii suplimentare. - -## Să începem - -Acum că ai parcurs pașii necesari pentru a urma acest curs, hai să începem cu o [introducere în Generative AI și LLM-uri](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**Declinare de responsabilitate**: -Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim pentru acuratețe, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa nativă trebuie considerat sursa autorizată. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm răspunderea pentru eventualele neînțelegeri sau interpretări greșite rezultate din utilizarea acestei traduceri. \ No newline at end of file + + + + diff --git a/translations/ro/00-course-setup/SETUP.md b/translations/ro/00-course-setup/SETUP.md deleted file mode 100644 index 23716a579..000000000 --- a/translations/ro/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# Configurează-ți Mediul de Dezvoltare - -Am configurat acest depozit și curs cu un [container de dezvoltare](https://containers.dev?WT.mc_id=academic-105485-koreyst) care are un runtime universal ce poate suporta dezvoltare în Python3, .NET, Node.js și Java. Configurația aferentă este definită în fișierul `devcontainer.json` aflat în folderul `.devcontainer/` din rădăcina acestui depozit. - -Pentru a activa containerul de dezvoltare, pornește-l în [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (pentru un runtime găzduit în cloud) sau în [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (pentru un runtime găzduit local). Consultă [această documentație](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) pentru mai multe detalii despre cum funcționează containerele de dezvoltare în VS Code. - -> [!TIP] -> Recomandăm folosirea GitHub Codespaces pentru un început rapid, cu efort minim. Acesta oferă o [cotă generoasă de utilizare gratuită](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) pentru conturile personale. Configurează [timeout-uri](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) pentru a opri sau șterge codespaces inactive, astfel maximizând utilizarea cotei tale. - -## 1. Executarea Temelor - -Fiecare lecție va avea teme _opționale_ care pot fi oferite în una sau mai multe limbaje de programare, inclusiv: Python, .NET/C#, Java și JavaScript/TypeScript. Această secțiune oferă îndrumări generale legate de executarea acestor teme. - -### 1.1 Temele în Python - -Temele în Python sunt oferite fie ca aplicații (`.py`), fie ca notebook-uri Jupyter (`.ipynb`). -- Pentru a rula notebook-ul, deschide-l în Visual Studio Code, apoi apasă pe _Select Kernel_ (în dreapta sus) și alege opțiunea implicită Python 3. Acum poți folosi _Run All_ pentru a executa întregul notebook. -- Pentru a rula aplicații Python din linia de comandă, urmează instrucțiunile specifice temei pentru a te asigura că selectezi fișierele corecte și furnizezi argumentele necesare. - -## 2. Configurarea Providerilor - -Temele **pot** fi configurate să funcționeze cu una sau mai multe implementări de Large Language Model (LLM) printr-un furnizor de servicii suportat, cum ar fi OpenAI, Azure sau Hugging Face. Aceștia oferă un _endpoint găzduit_ (API) la care putem accesa programatic cu acreditările corecte (cheie API sau token). În acest curs discutăm următorii provideri: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) cu modele diverse, inclusiv seria principală GPT. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) pentru modelele OpenAI cu focus pe pregătirea pentru mediul enterprise - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) pentru modele open-source și server de inferență - -**Va trebui să folosești propriile conturi pentru aceste exerciții**. Temele sunt opționale, așa că poți alege să configurezi unul, toți sau niciunul dintre provideri, în funcție de interesele tale. Iată câteva indicații pentru înscriere: - -| Înscriere | Cost | Cheie API | Playground | Comentarii | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst) | [Prețuri](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst) | [Pe proiect](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [Fără cod, Web](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Mai multe modele disponibile | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst) | [Prețuri](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst) | [SDK Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Studio Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Trebuie să aplici înainte pentru acces](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) | -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Prețuri](https://huggingface.co/pricing) | [Token-uri de acces](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst) | [Hugging Chat are modele limitate](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Urmează instrucțiunile de mai jos pentru a _configura_ acest depozit pentru utilizarea cu diferiți provideri. Temele care necesită un anumit provider vor conține unul dintre aceste tag-uri în numele fișierului: - - `aoai` - necesită endpoint și cheie Azure OpenAI - - `oai` - necesită endpoint și cheie OpenAI - - `hf` - necesită token Hugging Face - -Poți configura unul, niciunul sau toți providerii. Temele aferente vor genera eroare dacă lipsesc acreditările. - -### 2.1. Crearea fișierului `.env` - -Presupunem că ai citit deja indicațiile de mai sus, te-ai înscris la providerul relevant și ai obținut acreditările necesare (API_KEY sau token). În cazul Azure OpenAI, presupunem că ai și o implementare validă a unui serviciu Azure OpenAI (endpoint) cu cel puțin un model GPT implementat pentru chat completions. - -Următorul pas este să configurezi **variabilele de mediu locale** astfel: - -1. Caută în folderul rădăcină un fișier `.env.copy` care ar trebui să conțină ceva similar cu: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Copiază acel fișier în `.env` folosind comanda de mai jos. Acest fișier este _gitignore-d_, pentru a păstra secretele în siguranță. - - ```bash - cp .env.copy .env - ``` - -3. Completează valorile (înlocuiește placeholder-ele din partea dreaptă a `=`) conform descrierii din secțiunea următoare. - -3. (Opțional) Dacă folosești GitHub Codespaces, ai opțiunea să salvezi variabilele de mediu ca _secrete Codespaces_ asociate cu acest depozit. În acest caz, nu va trebui să configurezi un fișier local .env. **Totuși, reține că această opțiune funcționează doar dacă folosești GitHub Codespaces.** Va trebui să configurezi fișierul .env dacă folosești Docker Desktop. - -### 2.2. Popularea fișierului `.env` - -Să aruncăm o privire rapidă asupra numelor variabilelor pentru a înțelege ce reprezintă: - -| Variabilă | Descriere | -| :--- | :--- | -| HUGGING_FACE_API_KEY | Token-ul de acces al utilizatorului pe care îl configurezi în profilul tău | -| OPENAI_API_KEY | Cheia de autorizare pentru utilizarea serviciului OpenAI non-Azure | -| AZURE_OPENAI_API_KEY | Cheia de autorizare pentru serviciul Azure OpenAI | -| AZURE_OPENAI_ENDPOINT | Endpoint-ul implementat pentru o resursă Azure OpenAI | -| AZURE_OPENAI_DEPLOYMENT | Endpoint-ul de implementare a modelului pentru _generare text_ | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | Endpoint-ul de implementare a modelului pentru _embedding-uri text_ | -| | | - -Notă: Ultimele două variabile Azure OpenAI reflectă un model implicit pentru chat completions (generare text) și căutare vectorială (embedding-uri). Instrucțiunile pentru configurarea lor vor fi definite în temele relevante. - -### 2.3 Configurarea Azure: Din Portal - -Valorile pentru endpoint și cheie Azure OpenAI le vei găsi în [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst), așa că să începem de acolo. - -1. Accesează [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -2. Apasă pe opțiunea **Keys and Endpoint** din bara laterală (meniul din stânga). -3. Apasă pe **Show Keys** - ar trebui să vezi următoarele: KEY 1, KEY 2 și Endpoint. -4. Folosește valoarea KEY 1 pentru AZURE_OPENAI_API_KEY -5. Folosește valoarea Endpoint pentru AZURE_OPENAI_ENDPOINT - -Următorul pas este să obținem endpoint-urile pentru modelele specifice pe care le-ai implementat. - -1. Apasă pe opțiunea **Model deployments** din bara laterală (meniul din stânga) pentru resursa Azure OpenAI. -2. În pagina destinată, apasă pe **Manage Deployments** - -Aceasta te va duce pe site-ul Azure OpenAI Studio, unde vom găsi celelalte valori, după cum urmează. - -### 2.4 Configurarea Azure: Din Studio - -1. Navighează la [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **din resursa ta**, așa cum s-a descris mai sus. -2. Apasă pe fila **Deployments** (bara laterală, stânga) pentru a vedea modelele implementate în prezent. -3. Dacă modelul dorit nu este implementat, folosește **Create new deployment** pentru a-l implementa. -4. Vei avea nevoie de un model _text-generation_ - recomandăm: **gpt-35-turbo** -5. Vei avea nevoie de un model _text-embedding_ - recomandăm **text-embedding-ada-002** - -Acum actualizează variabilele de mediu pentru a reflecta _numele implementării_ folosit. De obicei, acesta va fi același cu numele modelului, cu excepția cazului în care l-ai schimbat explicit. De exemplu, ai putea avea: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**Nu uita să salvezi fișierul .env când termini**. Poți acum să închizi fișierul și să revii la instrucțiunile pentru rularea notebook-ului. - -### 2.5 Configurarea OpenAI: Din Profil - -Cheia ta API OpenAI poate fi găsită în contul tău [OpenAI](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). Dacă nu ai una, te poți înscrie și crea o cheie API. Odată ce ai cheia, o poți folosi pentru a completa variabila `OPENAI_API_KEY` în fișierul `.env`. - -### 2.6 Configurarea Hugging Face: Din Profil - -Token-ul tău Hugging Face poate fi găsit în profilul tău, la secțiunea [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). Nu posta sau distribui aceste token-uri public. În schimb, creează un token nou pentru utilizarea în acest proiect și copiază-l în fișierul `.env` sub variabila `HUGGING_FACE_API_KEY`. _Notă:_ Tehnic vorbind, acesta nu este o cheie API, dar este folosit pentru autentificare, așa că păstrăm această denumire pentru consistență. - -**Declinare de responsabilitate**: -Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim pentru acuratețe, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa nativă trebuie considerat sursa autorizată. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm răspunderea pentru eventualele neînțelegeri sau interpretări greșite rezultate din utilizarea acestei traduceri. \ No newline at end of file diff --git a/translations/ro/04-prompt-engineering-fundamentals/README.md b/translations/ro/04-prompt-engineering-fundamentals/README.md index 03681b215..e8dc56a70 100644 --- a/translations/ro/04-prompt-engineering-fundamentals/README.md +++ b/translations/ro/04-prompt-engineering-fundamentals/README.md @@ -1,452 +1,15 @@ - -# Fundamentele Ingineriei Prompturilor - -[![Fundamentele Ingineriei Prompturilor](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.ro.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Introducere -Acest modul acoperă conceptele și tehnicile esențiale pentru crearea de prompturi eficiente în modelele generative AI. Modul în care formulezi promptul pentru un LLM contează de asemenea. Un prompt bine conceput poate obține un răspuns de calitate superioară. Dar ce înseamnă exact termeni precum _prompt_ și _ingineria prompturilor_? Și cum pot îmbunătăți promptul _input_ pe care îl trimit către LLM? Acestea sunt întrebările la care vom încerca să răspundem în acest capitol și în următorul. - -_Generative AI_ este capabil să creeze conținut nou (de exemplu, text, imagini, audio, cod etc.) ca răspuns la cererile utilizatorilor. Realizează acest lucru folosind _Modele Mari de Limbaj_ precum seria GPT („Generative Pre-trained Transformer”) de la OpenAI, antrenate pentru a folosi limbaj natural și cod. - -Utilizatorii pot interacționa acum cu aceste modele folosind paradigme familiare, precum chat-ul, fără a avea nevoie de expertiză tehnică sau instruire. Modelele sunt _bazate pe prompturi_ – utilizatorii trimit un text (prompt) și primesc răspunsul AI (completare). Apoi pot „conversa cu AI-ul” iterativ, în conversații cu mai multe runde, rafinând promptul până când răspunsul corespunde așteptărilor lor. - -„Prompturile” devin acum principalul _interfață de programare_ pentru aplicațiile AI generative, indicând modelelor ce să facă și influențând calitatea răspunsurilor returnate. „Ingineria prompturilor” este un domeniu în rapidă dezvoltare care se concentrează pe _proiectarea și optimizarea_ prompturilor pentru a oferi răspunsuri consistente și de calitate la scară largă. - -## Obiective de învățare - -În această lecție, vom învăța ce este Ingineria Prompturilor, de ce este importantă și cum putem crea prompturi mai eficiente pentru un anumit model și obiectiv de aplicație. Vom înțelege conceptele de bază și cele mai bune practici pentru ingineria prompturilor – și vom explora un mediu interactiv de tip Jupyter Notebooks „sandbox” unde putem vedea aceste concepte aplicate pe exemple reale. - -La finalul acestei lecții vom putea: - -1. Explica ce este ingineria prompturilor și de ce contează. -2. Descrie componentele unui prompt și modul în care sunt folosite. -3. Învăța cele mai bune practici și tehnici pentru ingineria prompturilor. -4. Aplica tehnicile învățate pe exemple reale, folosind un endpoint OpenAI. - -## Termeni cheie - -Ingineria Prompturilor: Practica de a proiecta și rafina inputurile pentru a ghida modelele AI să producă rezultate dorite. -Tokenizare: Procesul de transformare a textului în unități mai mici, numite tokeni, pe care un model le poate înțelege și procesa. -LLM-uri ajustate prin instrucțiuni: Modele Mari de Limbaj (LLM) care au fost ajustate fin cu instrucțiuni specifice pentru a îmbunătăți acuratețea și relevanța răspunsurilor. - -## Mediu de învățare sandbox - -Ingineria prompturilor este în prezent mai mult o artă decât o știință. Cel mai bun mod de a ne îmbunătăți intuiția este să _exersăm mai mult_ și să adoptăm o abordare de tip încercare și eroare care combină expertiza în domeniul aplicației cu tehnici recomandate și optimizări specifice modelului. - -Jupyter Notebook-ul care însoțește această lecție oferă un mediu _sandbox_ unde poți încerca ceea ce înveți – pe parcurs sau ca parte a provocării de cod de la final. Pentru a executa exercițiile, vei avea nevoie de: - -1. **O cheie API Azure OpenAI** – endpoint-ul serviciului pentru un LLM implementat. -2. **Un runtime Python** – în care să rulezi Notebook-ul. -3. **Variabile de mediu locale** – _finalizează pașii din [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) acum pentru a fi pregătit_. - -Notebook-ul vine cu exerciții _de început_ – dar ești încurajat să adaugi propriile secțiuni de _Markdown_ (descriere) și _Cod_ (cereri de prompt) pentru a încerca mai multe exemple sau idei – și să-ți construiești intuiția pentru proiectarea prompturilor. - -## Ghid ilustrat - -Vrei să ai o imagine de ansamblu a ceea ce acoperă această lecție înainte să începi? Consultă acest ghid ilustrat, care îți oferă o idee despre principalele subiecte abordate și punctele cheie de reflectat pentru fiecare. Planul lecției te conduce de la înțelegerea conceptelor și provocărilor de bază până la abordarea lor cu tehnici relevante de inginerie a prompturilor și cele mai bune practici. Reține că secțiunea „Tehnici Avansate” din acest ghid se referă la conținutul acoperit în _capitolul următor_ al acestui curriculum. - -![Ghid ilustrat pentru Ingineria Prompturilor](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.ro.png) - -## Startup-ul nostru - -Acum, să vorbim despre cum _acest subiect_ se leagă de misiunea startup-ului nostru de a [aduce inovația AI în educație](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). Dorim să construim aplicații AI pentru _învățare personalizată_ – așa că să ne gândim cum diferiți utilizatori ai aplicației noastre ar putea „proiecta” prompturi: - -- **Administratorii** ar putea cere AI-ului să _analizeze datele curriculare pentru a identifica lacune în acoperire_. AI-ul poate rezuma rezultatele sau le poate vizualiza cu cod. -- **Educatorii** ar putea cere AI-ului să _genereze un plan de lecție pentru un public țintă și un subiect_. AI-ul poate construi planul personalizat într-un format specificat. -- **Elevii** ar putea cere AI-ului să _le ofere meditații la o materie dificilă_. AI-ul poate ghida acum elevii cu lecții, sugestii și exemple adaptate nivelului lor. - -Aceasta este doar o mică parte din potențial. Consultă [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) – o bibliotecă open-source de prompturi curatoriată de experți în educație – pentru a avea o perspectivă mai largă asupra posibilităților! _Încearcă să rulezi unele dintre aceste prompturi în sandbox sau în OpenAI Playground pentru a vedea ce se întâmplă!_ - - - -## Ce este Ingineria Prompturilor? - -Am început această lecție definind **Ingineria Prompturilor** ca procesul de _proiectare și optimizare_ a inputurilor text (prompturi) pentru a oferi răspunsuri consistente și de calitate (completări) pentru un anumit obiectiv de aplicație și model. Putem vedea acest proces în două etape: - -- _proiectarea_ promptului inițial pentru un anumit model și obiectiv -- _rafinarea_ promptului iterativ pentru a îmbunătăți calitatea răspunsului - -Acesta este neapărat un proces de încercare și eroare care necesită intuiție și efort din partea utilizatorului pentru a obține rezultate optime. Deci, de ce este important? Pentru a răspunde la această întrebare, trebuie mai întâi să înțelegem trei concepte: - -- _Tokenizarea_ = cum „vede” modelul promptul -- _LLM-urile de bază_ = cum „procesează” modelul fundație un prompt -- _LLM-urile ajustate prin instrucțiuni_ = cum poate modelul acum să „înțeleagă sarcini” - -### Tokenizarea - -Un LLM vede prompturile ca o _secvență de tokeni_, iar diferite modele (sau versiuni ale unui model) pot tokeniza același prompt în moduri diferite. Deoarece LLM-urile sunt antrenate pe tokeni (și nu pe text brut), modul în care prompturile sunt tokenizate are un impact direct asupra calității răspunsului generat. - -Pentru a-ți face o idee despre cum funcționează tokenizarea, încearcă unelte precum [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) afișată mai jos. Copiază promptul tău și vezi cum este transformat în tokeni, acordând atenție modului în care sunt tratate spațiile și semnele de punctuație. Reține că acest exemplu arată un LLM mai vechi (GPT-3) – deci încercarea cu un model mai nou poate produce un rezultat diferit. - -![Tokenizare](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.ro.png) - -### Concept: Modele Fundație - -Odată ce un prompt este tokenizat, funcția principală a ["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (sau modelului fundație) este să prezică tokenul următor din secvență. Deoarece LLM-urile sunt antrenate pe seturi masive de date text, ele au o bună înțelegere a relațiilor statistice dintre tokeni și pot face această predicție cu un anumit grad de încredere. Reține că ele nu înțeleg _sensul_ cuvintelor din prompt sau token; văd doar un tipar pe care îl pot „completa” cu următoarea predicție. Pot continua să prezică secvența până când sunt oprite de intervenția utilizatorului sau de o condiție predefinită. - -Vrei să vezi cum funcționează completarea bazată pe prompt? Introdu promptul de mai sus în Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) cu setările implicite. Sistemul este configurat să trateze prompturile ca cereri de informații – așa că ar trebui să vezi o completare care satisface acest context. - -Dar ce se întâmplă dacă utilizatorul dorește să vadă ceva specific care să îndeplinească anumite criterii sau obiective de sarcină? Aici intră în scenă LLM-urile _ajustate prin instrucțiuni_. - -![Completare Chat Base LLM](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.ro.png) - -### Concept: LLM-uri Ajustate prin Instrucțiuni - -Un [LLM ajustat prin instrucțiuni](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) pornește de la modelul fundație și îl ajustează fin cu exemple sau perechi input/output (de exemplu, „mesaje” cu mai multe runde) care pot conține instrucțiuni clare – iar răspunsul AI încearcă să urmeze acea instrucțiune. - -Aceasta folosește tehnici precum Învățarea prin Recompensă cu Feedback Uman (RLHF) care pot antrena modelul să _urmeze instrucțiuni_ și să _învețe din feedback_, astfel încât să producă răspunsuri mai potrivite pentru aplicații practice și mai relevante pentru obiectivele utilizatorului. - -Să încercăm – revino la promptul de mai sus, dar acum schimbă _mesajul sistem_ pentru a oferi următoarea instrucțiune ca context: - -> _Rezuma conținutul oferit pentru un elev de clasa a doua. Păstrează rezultatul într-un paragraf cu 3-5 puncte esențiale._ - -Vezi cum rezultatul este acum ajustat pentru a reflecta scopul și formatul dorit? Un educator poate folosi direct acest răspuns în slide-urile pentru acea clasă. - -![Completare Chat LLM Ajustat prin Instrucțiuni](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.ro.png) - -## De ce avem nevoie de Ingineria Prompturilor? - -Acum că știm cum sunt procesate prompturile de către LLM-uri, să discutăm _de ce_ avem nevoie de ingineria prompturilor. Răspunsul constă în faptul că LLM-urile actuale prezintă o serie de provocări care fac ca _obținerea unor completări fiabile și consistente_ să fie mai dificilă fără efort în construcția și optimizarea prompturilor. De exemplu: - -1. **Răspunsurile modelelor sunt stocastice.** _Același prompt_ va produce probabil răspunsuri diferite cu modele sau versiuni diferite ale modelului. Și poate produce chiar rezultate diferite cu _același model_ în momente diferite. _Tehnicile de inginerie a prompturilor ne pot ajuta să minimizăm aceste variații oferind ghidaje mai bune_. - -1. **Modelele pot fabrica răspunsuri.** Modelele sunt pre-antrenate cu seturi de date _mari, dar finite_, ceea ce înseamnă că nu au cunoștințe despre concepte din afara domeniului de antrenament. Ca urmare, pot produce completări inexacte, imaginare sau direct contradictorii cu fapte cunoscute. _Tehnicile de inginerie a prompturilor ajută utilizatorii să identifice și să atenueze astfel de fabricări, de exemplu cerând AI-ului citări sau raționamente_. - -1. **Capabilitățile modelelor vor varia.** Modelele mai noi sau generațiile noi vor avea capabilități mai bogate, dar vor aduce și particularități unice și compromisuri în cost și complexitate. _Ingineria prompturilor ne poate ajuta să dezvoltăm cele mai bune practici și fluxuri de lucru care să abstractizeze diferențele și să se adapteze cerințelor specifice modelului într-un mod scalabil și fără întreruperi_. - -Să vedem asta în acțiune în OpenAI sau Azure OpenAI Playground: - -- Folosește același prompt cu implementări diferite de LLM (de exemplu, OpenAI, Azure OpenAI, Hugging Face) – ai observat variațiile? -- Folosește același prompt repetat cu _aceeași_ implementare LLM (de exemplu, Azure OpenAI playground) – cum au diferit aceste variații? - -### Exemplu de fabricări - -În acest curs, folosim termenul **„fabricare”** pentru a face referire la fenomenul în care LLM-urile generează uneori informații factual incorecte din cauza limitărilor în antrenamentul lor sau alte constrângeri. Poate ai auzit acest fenomen numit _„halucinații”_ în articole populare sau lucrări de cercetare. Totuși, recomandăm insistent folosirea termenului _„fabricare”_ pentru a nu antropomorfiza accidental comportamentul, atribuindu-i o trăsătură umană unui rezultat generat de o mașină. Aceasta întărește și [ghidurile AI responsabile](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) din perspectiva terminologiei, eliminând termeni care pot fi considerați ofensatori sau neincluzivi în anumite contexte. - -Vrei să înțelegi cum funcționează fabricările? Gândește-te la un prompt care îi cere AI-ului să genereze conținut pentru un subiect inexistent (pentru a te asigura că nu se găsește în setul de date de antrenament). De exemplu – am încercat acest prompt: -# Plan de lecție: Războiul Marțian din 2076 - -## Obiectivele lecției -- Să înțeleagă cauzele și contextul Războiului Marțian din 2076 -- Să analizeze principalele evenimente și bătălii ale conflictului -- Să discute impactul războiului asupra omenirii și colonizării spațiale - -## Materiale necesare -- Hărți ale sistemului solar și ale coloniilor marțiene -- Cronologie a evenimentelor din 2076 -- Articole și documentare despre tehnologia folosită în război - -## Structura lecției - -### Introducere (10 minute) -- Prezentarea contextului istoric și politic înainte de 2076 -- Discuție despre colonizarea planetei Marte și tensiunile dintre Pământ și coloniile marțiene - -### Partea principală (30 minute) -- Explicarea cauzelor războiului: resurse, autonomie, conflicte politice -- Descrierea principalelor bătălii și strategii militare folosite -- Rolul tehnologiei avansate și al inteligenței artificiale în conflict - -### Activitate practică (15 minute) -- Împărțirea elevilor în grupuri pentru a crea o strategie de pace între Pământ și Marte -- Prezentarea soluțiilor propuse și discuții - -### Concluzie (5 minute) -- Recapitularea lecției și evidențierea lecțiilor învățate din Războiul Marțian -- Întrebări și răspunsuri - -## Resurse suplimentare -- Documentarul „Războiul Marțian: 2076” disponibil pe platforma @@INLINE_CODE_1@@ -- Articolul „Tehnologia militară în secolul 21” pe @@INLINE_CODE_2@@ - -## Comentarii -- Asigurați-vă că elevii înțeleg diferența dintre fapte istorice și speculații științifico-fantastice -- Încurajați gândirea critică și dezbaterea pe marginea impactului războiului asupra viitorului umanității -O căutare pe web mi-a arătat că există relatări fictive (de exemplu, seriale TV sau cărți) despre războaiele marțiene – dar niciuna în 2076. Bunul-simț ne spune, de asemenea, că 2076 este _în viitor_ și, prin urmare, nu poate fi asociat cu un eveniment real. - -Deci, ce se întâmplă când rulăm acest prompt cu diferiți furnizori de LLM? - -> **Răspuns 1**: OpenAI Playground (GPT-35) - -![Răspuns 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.ro.png) - -> **Răspuns 2**: Azure OpenAI Playground (GPT-35) - -![Răspuns 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.ro.png) - -> **Răspuns 3**: : Hugging Face Chat Playground (LLama-2) - -![Răspuns 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.ro.png) - -Așa cum era de așteptat, fiecare model (sau versiune de model) produce răspunsuri ușor diferite datorită comportamentului stochastic și variațiilor în capacitățile modelului. De exemplu, un model se adresează unui public de clasa a 8-a, în timp ce altul presupune un elev de liceu. Dar toate cele trei modele au generat răspunsuri care ar putea convinge un utilizator neinformat că evenimentul a fost real. - -Tehnicile de inginerie a prompturilor, precum _metaprompting_ și _configurarea temperaturii_, pot reduce într-o anumită măsură fabricările modelului. Noile _arhitecturi_ de inginerie a prompturilor integrează, de asemenea, noi unelte și tehnici în fluxul promptului, pentru a atenua sau reduce unele dintre aceste efecte. - -## Studiu de caz: GitHub Copilot - -Să încheiem această secțiune cu o privire asupra modului în care ingineria prompturilor este folosită în soluții reale, analizând un studiu de caz: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot este „programatorul tău AI partener” – transformă prompturile text în completări de cod și este integrat în mediul tău de dezvoltare (de exemplu, Visual Studio Code) pentru o experiență fluidă. Așa cum este documentat în seria de bloguri de mai jos, prima versiune a fost bazată pe modelul OpenAI Codex – inginerii realizând rapid necesitatea de a ajusta fin modelul și de a dezvolta tehnici mai bune de inginerie a prompturilor pentru a îmbunătăți calitatea codului. În iulie, au [lansat un model AI îmbunătățit care depășește Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) pentru sugestii și mai rapide. - -Citește postările în ordine, pentru a urmări parcursul lor de învățare. - -- **Mai 2023** | [GitHub Copilot devine mai bun la înțelegerea codului tău](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **Mai 2023** | [În interiorul GitHub: lucrul cu LLM-urile din spatele GitHub Copilot](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Iun 2023** | [Cum să scrii prompturi mai bune pentru GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Iul 2023** | [.. GitHub Copilot depășește Codex cu un model AI îmbunătățit](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Iul 2023** | [Ghidul unui dezvoltator pentru ingineria prompturilor și LLM-uri](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **Sep 2023** | [Cum să construiești o aplicație enterprise LLM: lecții de la GitHub Copilot](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -Poți, de asemenea, să răsfoiești [blogul lor de inginerie](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) pentru mai multe postări ca [aceasta](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) care arată cum aceste modele și tehnici sunt _aplicate_ pentru a susține aplicații reale. - ---- - - - -## Construirea promptului - -Am văzut de ce este importantă ingineria prompturilor – acum să înțelegem cum sunt _construite_ prompturile pentru a putea evalua diferite tehnici pentru un design mai eficient al prompturilor. - -### Prompt de bază - -Să începem cu promptul de bază: un text trimis modelului fără alt context. Iată un exemplu – când trimitem primele câteva cuvinte din imnul național al SUA către OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst), acesta completează instantaneu răspunsul cu următoarele versuri, ilustrând comportamentul de bază al predicției. - -| Prompt (Input) | Completare (Output) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | Se pare că începi versurile imnului „The Star-Spangled Banner”, imnul național al Statelor Unite. Versurile complete sunt ... | - -### Prompt complex - -Acum să adăugăm context și instrucțiuni la promptul de bază. [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) ne permite să construim un prompt complex ca o colecție de _mesaje_ cu: - -- Perechi input/output care reflectă inputul _utilizatorului_ și răspunsul _asistentului_. -- Mesaj de sistem care setează contextul pentru comportamentul sau personalitatea asistentului. - -Cererea are acum forma de mai jos, unde _tokenizarea_ capturează eficient informațiile relevante din context și conversație. Schimbarea contextului sistemului poate avea un impact la fel de mare asupra calității completărilor ca și inputurile utilizatorului. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Prompt cu instrucțiuni - -În exemplele de mai sus, promptul utilizatorului a fost o simplă întrebare text care poate fi interpretată ca o cerere de informații. Cu prompturile de _instrucțiuni_, putem folosi acel text pentru a specifica o sarcină în detaliu, oferind o ghidare mai bună AI-ului. Iată un exemplu: - -| Prompt (Input) | Completare (Output) | Tip instrucțiune | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Scrie o descriere a Războiului Civil | _a returnat un paragraf simplu_ | Simplu | -| Scrie o descriere a Războiului Civil. Oferă date și evenimente cheie și descrie semnificația lor | _a returnat un paragraf urmat de o listă cu datele evenimentelor cheie și descrieri_ | Complex | -| Scrie o descriere a Războiului Civil în 1 paragraf. Oferă 3 puncte cu date cheie și semnificația lor. Oferă încă 3 puncte cu figuri istorice importante și contribuțiile lor. Returnează rezultatul ca fișier JSON | _returnează detalii mai ample într-o casetă de text, formatată ca JSON pe care o poți copia și valida după nevoie_ | Complex. Formatat. | - -## Conținut principal - -În exemplele de mai sus, promptul era încă destul de deschis, permițând LLM-ului să decidă ce parte din setul său de date pre-antrenate este relevantă. Cu modelul de design _conținut principal_, textul de intrare este împărțit în două părți: - -- o instrucțiune (acțiune) -- conținut relevant (care influențează acțiunea) - -Iată un exemplu în care instrucțiunea este „rezumă asta în 2 propoziții”. - -| Prompt (Input) | Completare (Output) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter este a cincea planetă de la Soare și cea mai mare din Sistemul Solar. Este un gigant gazos cu o masă de o mie de ori mai mică decât a Soarelui, dar de două ori și jumătate mai mare decât masa tuturor celorlalte planete din Sistemul Solar la un loc. Jupiter este unul dintre cele mai strălucitoare obiecte vizibile cu ochiul liber pe cerul nopții și a fost cunoscut de civilizațiile antice încă dinainte de istoria înregistrată. Este numit după zeul roman Jupiter.[19] Văzut de pe Pământ, Jupiter poate fi suficient de strălucitor încât lumina reflectată să arunce umbre vizibile,[20] și este în medie al treilea cel mai strălucitor obiect natural pe cerul nopții după Lună și Venus.
**Rezumați asta în 2 propoziții scurte** | Jupiter, a cincea planetă de la Soare, este cea mai mare din Sistemul Solar și este cunoscută ca unul dintre cele mai strălucitoare obiecte de pe cerul nopții. Numele său provine de la zeul roman Jupiter, fiind un gigant gazos a cărui masă este de două ori și jumătate mai mare decât a tuturor celorlalte planete din Sistemul Solar la un loc. | - -Segmentul de conținut principal poate fi folosit în diverse moduri pentru a genera instrucțiuni mai eficiente: - -- **Exemple** – în loc să spui modelului ce să facă printr-o instrucțiune explicită, oferă-i exemple de ce să facă și lasă-l să deducă tiparul. -- **Indiciu** – urmează instrucțiunea cu un „indiciu” care pregătește completarea, ghidând modelul către răspunsuri mai relevante. -- **Șabloane** – acestea sunt „rețete” repetabile pentru prompturi cu locuri rezervate (variabile) care pot fi personalizate cu date pentru cazuri specifice. - -Să explorăm aceste metode în practică. - -### Folosirea exemplelor - -Aceasta este o abordare în care folosești conținutul principal pentru a „hrăni modelul” cu câteva exemple ale rezultatului dorit pentru o anumită instrucțiune și îl lași să deducă tiparul rezultatului dorit. În funcție de numărul de exemple oferite, putem avea zero-shot prompting, one-shot prompting, few-shot prompting etc. - -Promptul constă acum din trei componente: - -- O descriere a sarcinii -- Câteva exemple ale rezultatului dorit -- Începutul unui nou exemplu (care devine o descriere implicită a sarcinii) - -| Tip de învățare | Prompt (Input) | Completare (Output) | -| :-------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| Zero-shot | „Soarele strălucește”. Tradu în spaniolă | „El Sol está brillando”. | -| One-shot | „Soarele strălucește” => „El Sol está brillando”.
„Este o zi rece și vântoasă” => | „Es un día frío y ventoso”. | -| Few-shot | Jucătorul a alergat pe baze => Baseball
Jucătorul a dat un as => Tenis
Jucătorul a dat șase => Cricket
Jucătorul a făcut un slam-dunk => | Baschet | -| | | | - -Observă cum în zero-shot prompting a trebuit să oferim o instrucțiune explicită („Tradu în spaniolă”), dar în exemplul one-shot aceasta este dedusă. Exemplul few-shot arată cum adăugarea mai multor exemple permite modelelor să facă inferențe mai precise fără instrucțiuni suplimentare. - -### Indiciile promptului - -O altă tehnică pentru folosirea conținutului principal este să oferi _indici_ în loc de exemple. În acest caz, dăm modelului un impuls în direcția corectă prin _începerea_ cu un fragment care reflectă formatul răspunsului dorit. Modelul „prinde indiciul” și continuă în același stil. - -| Număr de indici | Prompt (Input) | Completare (Output) | -| :-------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Jupiter este a cincea planetă de la Soare și cea mai mare din Sistemul Solar. Este un gigant gazos cu o masă de o mie de ori mai mică decât a Soarelui, dar de două ori și jumătate mai mare decât masa tuturor celorlalte planete din Sistemul Solar la un loc. Jupiter este unul dintre cele mai strălucitoare obiecte vizibile cu ochiul liber pe cerul nopții, și a fost cunoscut de civilizațiile antice încă dinainte de istoria înregistrată. - -**Rezumat** | Jupiter este cea mai mare planetă din Sistemul nostru Solar și a cincea de la Soare. Este un gigant gazos cu o masă de 1/1000 din cea a Soarelui, dar este mai greu decât toate celelalte planete la un loc. Civilizațiile antice au cunoscut Jupiter de mult timp, iar acesta este ușor vizibil pe cerul nopții. | -| 1 | Jupiter este a cincea planetă de la Soare și cea mai mare din Sistemul Solar. Este un gigant gazos cu o masă de o mie de ori mai mică decât cea a Soarelui, dar de două ori și jumătate mai mare decât masa tuturor celorlalte planete din Sistemul Solar la un loc. Jupiter este unul dintre cele mai strălucitoare obiecte vizibile cu ochiul liber pe cerul nopții și a fost cunoscut civilizațiilor antice încă dinainte de istoria înregistrată.
**Rezumat**
Ce am învățat este că Jupiter | este a cincea planetă de la Soare și cea mai mare din Sistemul Solar. Este un gigant gazos cu o masă de o mie de ori mai mică decât cea a Soarelui, dar de două ori și jumătate mai mare decât masa tuturor celorlalte planete la un loc. Este ușor vizibil cu ochiul liber și este cunoscut din cele mai vechi timpuri. | -| 2 | Jupiter este a cincea planetă de la Soare și cea mai mare din Sistemul Solar. Este un gigant gazos cu o masă de o mie de ori mai mică decât cea a Soarelui, dar de două ori și jumătate mai mare decât masa tuturor celorlalte planete din Sistemul Solar la un loc. Jupiter este unul dintre cele mai strălucitoare obiecte vizibile cu ochiul liber pe cerul nopții și a fost cunoscut civilizațiilor antice încă dinainte de istoria înregistrată.
**Rezumat**
Top 3 fapte pe care le-am învățat: | 1. Jupiter este a cincea planetă de la Soare și cea mai mare din Sistemul Solar.
2. Este un gigant gazos cu o masă de o mie de ori mai mică decât cea a Soarelui...
3. Jupiter a fost vizibil cu ochiul liber încă din cele mai vechi timpuri ... | -| | | | - -### Șabloane de prompturi - -Un șablon de prompt este o _rețetă predefinită pentru un prompt_ care poate fi stocată și reutilizată după nevoie, pentru a oferi experiențe de utilizator mai consistente la scară largă. În forma sa cea mai simplă, este pur și simplu o colecție de exemple de prompturi precum [acesta de la OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) care oferă atât componentele interactive ale promptului (mesaje pentru utilizator și sistem), cât și formatul cererii API - pentru a susține reutilizarea. - -În forma sa mai complexă, precum [exemplul de la LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst), conține _locuri rezervate_ care pot fi înlocuite cu date din diverse surse (input de la utilizator, context de sistem, surse externe de date etc.) pentru a genera un prompt dinamic. Acest lucru ne permite să creăm o bibliotecă de prompturi reutilizabile care pot fi folosite pentru a genera experiențe de utilizator consistente **programatic** la scară largă. - -În final, adevărata valoare a șabloanelor constă în capacitatea de a crea și publica _biblioteci de prompturi_ pentru domenii verticale de aplicație - unde șablonul de prompt este acum _optimizat_ pentru a reflecta contextul specific aplicației sau exemple care fac răspunsurile mai relevante și precise pentru publicul țintă. Repozitoriul [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) este un exemplu excelent al acestei abordări, oferind o bibliotecă de prompturi pentru domeniul educației, cu accent pe obiective cheie precum planificarea lecțiilor, proiectarea curriculumului, tutoratul elevilor etc. - -## Conținut de suport - -Dacă ne gândim la construcția unui prompt ca având o instrucțiune (sarcină) și un țintă (conținut principal), atunci _conținutul secundar_ este ca un context suplimentar pe care îl oferim pentru a **influența într-un fel rezultatul**. Acesta poate fi parametri de reglare, instrucțiuni de formatare, taxonomii de subiecte etc. care pot ajuta modelul să-și _ajusteze_ răspunsul pentru a se potrivi obiectivelor sau așteptărilor utilizatorului. - -De exemplu: Având un catalog de cursuri cu metadate extinse (nume, descriere, nivel, etichete metadate, instructor etc.) pentru toate cursurile disponibile în curriculum: - -- putem defini o instrucțiune de „rezumare a catalogului de cursuri pentru toamna 2023” -- putem folosi conținutul principal pentru a oferi câteva exemple de rezultat dorit -- putem folosi conținutul secundar pentru a identifica primele 5 „etichete” de interes. - -Acum, modelul poate oferi un rezumat în formatul arătat de câteva exemple - dar dacă un rezultat are mai multe etichete, poate prioritiza cele 5 etichete identificate în conținutul secundar. - ---- - - - -## Cele mai bune practici pentru prompturi - -Acum că știm cum pot fi _construite_ prompturile, putem începe să ne gândim cum să le _proiectăm_ pentru a reflecta cele mai bune practici. Putem privi acest lucru în două părți - având mentalitatea potrivită și aplicând tehnicile corecte. - -### Mentalitatea în ingineria prompturilor - -Ingineria prompturilor este un proces de încercare și eroare, așa că ține cont de trei factori generali: - -1. **Înțelegerea domeniului contează.** Precizia și relevanța răspunsului depind de _domeniul_ în care aplicația sau utilizatorul operează. Aplică-ți intuiția și expertiza în domeniu pentru a **personaliza tehnicile** mai departe. De exemplu, definește _personalități specifice domeniului_ în prompturile sistemului tău sau folosește _șabloane specifice domeniului_ în prompturile utilizatorului. Oferă conținut secundar care reflectă contexte specifice domeniului sau folosește _indici și exemple specifice domeniului_ pentru a ghida modelul către tipare familiare de utilizare. - -2. **Înțelegerea modelului contează.** Știm că modelele sunt, prin natura lor, stocastice. Dar implementările modelelor pot varia și în funcție de setul de date de antrenament folosit (cunoștințe pre-antrenate), capabilitățile oferite (de ex., prin API sau SDK) și tipul de conținut pentru care sunt optimizate (de ex., cod vs. imagini vs. text). Înțelege punctele forte și limitările modelului pe care îl folosești și folosește aceste cunoștințe pentru a _prioritiza sarcinile_ sau a construi _șabloane personalizate_ optimizate pentru capabilitățile modelului. - -3. **Iterația și validarea contează.** Modelele evoluează rapid, la fel și tehnicile de inginerie a prompturilor. Ca expert în domeniu, poți avea alte contexte sau criterii specifice _aplicației tale_, care poate nu se aplică comunității largi. Folosește uneltele și tehnicile de inginerie a prompturilor pentru a „porni rapid” construcția prompturilor, apoi iterează și validează rezultatele folosindu-ți propria intuiție și expertiză în domeniu. Înregistrează-ți observațiile și creează o **bază de cunoștințe** (de ex., biblioteci de prompturi) care pot fi folosite ca punct de plecare de către alții, pentru iterații mai rapide în viitor. - -## Cele mai bune practici - -Acum să vedem câteva practici recomandate de [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) și [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst). - -| Ce | De ce | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Evaluează cele mai noi modele. | Noile generații de modele au probabil funcții și calitate îmbunătățite - dar pot avea și costuri mai mari. Evaluează-le pentru impact, apoi ia decizii privind migrarea. | -| Separă instrucțiunile și contextul | Verifică dacă modelul/titularul definește _delimitatori_ pentru a distinge mai clar instrucțiunile, conținutul principal și cel secundar. Acest lucru poate ajuta modelele să acorde greutăți mai precise tokenilor. | -| Fii specific și clar | Oferă mai multe detalii despre contextul dorit, rezultat, lungime, format, stil etc. Acest lucru va îmbunătăți atât calitatea, cât și consistența răspunsurilor. Salvează rețetele în șabloane reutilizabile. | -| Fii descriptiv, folosește exemple | Modelele pot răspunde mai bine la o abordare „arată și spune”. Începe cu o abordare `zero-shot` unde dai o instrucțiune (fără exemple), apoi încearcă `few-shot` ca rafinare, oferind câteva exemple de rezultat dorit. Folosește analogii. | -| Folosește indicii pentru a porni completările | Împinge modelul către un rezultat dorit oferindu-i câteva cuvinte sau expresii de început pe care să le folosească ca punct de plecare pentru răspuns. | -| Repetă dacă e nevoie | Uneori trebuie să repeți instrucțiunile către model. Oferă instrucțiuni înainte și după conținutul principal, folosește o instrucțiune și un indiciu, etc. Iterează și validează pentru a vedea ce funcționează. | -| Ordinea contează | Ordinea în care prezinți informația modelului poate influența rezultatul, chiar și în exemplele de învățare, datorită efectului de recență. Încearcă opțiuni diferite pentru a vedea ce funcționează cel mai bine. | -| Oferă modelului o „ieșire” | Oferă modelului un răspuns de rezervă pe care să-l folosească dacă nu poate finaliza sarcina din orice motiv. Acest lucru poate reduce șansele ca modelul să genereze răspunsuri false sau inventate. | -| | | - -Ca în orice practică bună, amintește-ți că _rezultatele pot varia_ în funcție de model, sarcină și domeniu. Folosește aceste recomandări ca punct de plecare și iterează pentru a găsi ce funcționează cel mai bine pentru tine. Reevaluează constant procesul de inginerie a prompturilor pe măsură ce apar modele și unelte noi, cu accent pe scalabilitatea procesului și calitatea răspunsurilor. - - - -## Tema - -Felicitări! Ai ajuns la finalul lecției! Este momentul să pui în practică unele dintre conceptele și tehnicile învățate, cu exemple reale! - -Pentru tema noastră, vom folosi un Jupyter Notebook cu exerciții pe care le poți completa interactiv. Poți, de asemenea, să extinzi Notebook-ul cu propriile celule Markdown și de cod pentru a explora idei și tehnici pe cont propriu. - -### Pentru a începe, fă un fork al repo-ului, apoi - -- (Recomandat) Pornește GitHub Codespaces -- (Alternativ) Clonează repo-ul pe dispozitivul tău local și folosește-l cu Docker Desktop -- (Alternativ) Deschide Notebook-ul în mediul tău preferat de rulare pentru Notebook-uri. - -### Apoi, configurează variabilele de mediu - -- Copiază fișierul `.env.copy` din rădăcina repo-ului în `.env` și completează valorile pentru `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` și `AZURE_OPENAI_DEPLOYMENT`. Revino la [secțiunea Learning Sandbox](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) pentru instrucțiuni. - -### Apoi, deschide Jupyter Notebook-ul - -- Selectează kernel-ul de rulare. Dacă folosești opțiunile 1 sau 2, selectează pur și simplu kernel-ul implicit Python 3.10.x oferit de containerul de dezvoltare. - -Ești gata să rulezi exercițiile. Reține că aici nu există răspunsuri _corecte sau greșite_ - doar explorarea opțiunilor prin încercare și eroare și construirea intuiției despre ce funcționează pentru un anumit model și domeniu de aplicație. - -_Pentru acest motiv, nu există segmente cu soluții de cod în această lecție. În schimb, Notebook-ul va avea celule Markdown intitulate „Soluția mea:” care arată un exemplu de rezultat pentru referință._ - - - -## Verificare cunoștințe - -Care dintre următoarele este un prompt bun, respectând câteva practici rezonabile? - -1. Arată-mi o imagine cu o mașină roșie -2. Arată-mi o imagine cu o mașină roșie marca Volvo, model XC90, parcată lângă o stâncă, cu soarele apunând -3. Arată-mi o imagine cu o mașină roșie marca Volvo, model XC90 - -Răspuns: 2, este cel mai bun prompt deoarece oferă detalii despre „ce” și intră în specific (nu orice mașină, ci una anume, cu marcă și model) și descrie și contextul general. 3 este următorul cel mai bun, deoarece conține și el multe detalii. - -## 🚀 Provocare - -Vezi dacă poți folosi tehnica „indiciului” cu promptul: Completează propoziția „Arată-mi o imagine cu o mașină roșie marca Volvo și ”. Ce răspuns primești și cum ai îmbunătăți promptul? - -## Bravo! Continuă să înveți - -Vrei să afli mai multe despre diferite concepte de inginerie a prompturilor? Accesează [pagina de învățare continuă](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) pentru a găsi alte resurse excelente pe această temă. - -Mergi la Lecția 5 unde vom explora [tehnici avansate de prompting](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**Declinare de responsabilitate**: -Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim pentru acuratețe, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa nativă trebuie considerat sursa autorizată. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm răspunderea pentru eventualele neînțelegeri sau interpretări greșite rezultate din utilizarea acestei traduceri. \ No newline at end of file + + + + + + + diff --git a/translations/ro/09-building-image-applications/README.md b/translations/ro/09-building-image-applications/README.md index 599b9913d..72a3c4399 100644 --- a/translations/ro/09-building-image-applications/README.md +++ b/translations/ro/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# Construirea aplicațiilor de generare a imaginilor - -[![Construirea aplicațiilor de generare a imaginilor](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.ro.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLM-urile nu se limitează doar la generarea de text. Este posibil să generăm și imagini pornind de la descrieri textuale. Utilizarea imaginilor ca modalitate poate fi extrem de utilă în diverse domenii, de la MedTech, arhitectură, turism, dezvoltare de jocuri și multe altele. În acest capitol, vom explora cele două modele de generare a imaginilor cele mai populare, DALL-E și Midjourney. - -## Introducere - -În această lecție vom aborda: - -- Generarea imaginilor și de ce este utilă. -- DALL-E și Midjourney, ce sunt și cum funcționează. -- Cum să construiești o aplicație de generare a imaginilor. - -## Obiective de învățare - -După ce vei parcurge această lecție, vei putea: - -- Să construiești o aplicație de generare a imaginilor. -- Să definești limite pentru aplicația ta folosind meta prompturi. -- Să lucrezi cu DALL-E și Midjourney. - -## De ce să construiești o aplicație de generare a imaginilor? - -Aplicațiile de generare a imaginilor sunt o modalitate excelentă de a explora capabilitățile AI-ului generativ. Ele pot fi folosite, de exemplu, pentru: - -- **Editare și sinteză de imagini**. Poți genera imagini pentru diverse cazuri de utilizare, cum ar fi editarea și sinteza imaginilor. - -- **Aplicabilitate în diverse industrii**. Pot fi folosite pentru a genera imagini în industrii precum MedTech, turism, dezvoltare de jocuri și altele. - -## Scenariu: Edu4All - -Ca parte a acestei lecții, vom continua să lucrăm cu startup-ul nostru, Edu4All. Studenții vor crea imagini pentru evaluările lor; ce imagini vor fi exact depinde de ei, dar ar putea fi ilustrații pentru propriul lor basm, crearea unui personaj nou pentru povestea lor sau ajutor pentru a-și vizualiza ideile și conceptele. - -Iată ce ar putea genera studenții Edu4All, de exemplu, dacă lucrează în clasă pe tema monumentelor: - -![Edu4All startup, clasa pe tema monumentelor, Turnul Eiffel](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.ro.png) - -folosind un prompt precum - -> „Câine lângă Turnul Eiffel în lumina dimineții” - -## Ce sunt DALL-E și Midjourney? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) și [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) sunt două dintre cele mai populare modele de generare a imaginilor, care îți permit să folosești prompturi pentru a genera imagini. - -### DALL-E - -Să începem cu DALL-E, un model AI generativ care creează imagini pornind de la descrieri textuale. - -> [DALL-E este o combinație a două modele, CLIP și diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP** este un model care generează embeddings, adică reprezentări numerice ale datelor, din imagini și text. - -- **Diffused attention** este un model care generează imagini pornind de la embeddings. DALL-E este antrenat pe un set de date cu imagini și texte și poate fi folosit pentru a genera imagini din descrieri textuale. De exemplu, DALL-E poate genera imagini cu o pisică cu pălărie sau un câine cu mohawk. - -### Midjourney - -Midjourney funcționează similar cu DALL-E, generând imagini din prompturi textuale. Midjourney poate fi folosit pentru a genera imagini cu prompturi precum „o pisică cu pălărie” sau „un câine cu mohawk”. - -![Imagine generată de Midjourney, porumbel mecanic](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Imagine preluată de pe Wikipedia, generată de Midjourney_ - -## Cum funcționează DALL-E și Midjourney - -Mai întâi, [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). DALL-E este un model AI generativ bazat pe arhitectura transformer, cu un _transformer autoregresiv_. - -Un _transformer autoregresiv_ definește modul în care un model generează imagini din descrieri textuale, generând câte un pixel pe rând, folosind pixelii generați pentru a genera următorul pixel. Procesul trece prin mai multe straturi într-o rețea neuronală, până când imaginea este completă. - -Prin acest proces, DALL-E controlează atributele, obiectele, caracteristicile și altele din imaginea generată. Totuși, DALL-E 2 și 3 oferă un control mai mare asupra imaginii generate. - -## Construirea primei tale aplicații de generare a imaginilor - -Ce este necesar pentru a construi o aplicație de generare a imaginilor? Ai nevoie de următoarele biblioteci: - -- **python-dotenv**, este recomandat să folosești această bibliotecă pentru a păstra secretele într-un fișier _.env_, separat de cod. -- **openai**, această bibliotecă este folosită pentru a interacționa cu API-ul OpenAI. -- **pillow**, pentru a lucra cu imagini în Python. -- **requests**, pentru a face cereri HTTP. - -1. Creează un fișier _.env_ cu următorul conținut: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Găsește aceste informații în Portalul Azure, în secțiunea „Keys and Endpoint” pentru resursa ta. - -1. Adună bibliotecile de mai sus într-un fișier numit _requirements.txt_, astfel: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. Apoi, creează un mediu virtual și instalează bibliotecile: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Pentru Windows, folosește următoarele comenzi pentru a crea și activa mediul virtual: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. Adaugă următorul cod într-un fișier numit _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Să explicăm acest cod: - -- Mai întâi, importăm bibliotecile necesare, inclusiv biblioteca OpenAI, dotenv, requests și Pillow. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Apoi, încărcăm variabilele de mediu din fișierul _.env_. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- După aceea, setăm endpoint-ul, cheia pentru API-ul OpenAI, versiunea și tipul. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- Urmează generarea imaginii: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - Codul de mai sus răspunde cu un obiect JSON care conține URL-ul imaginii generate. Putem folosi URL-ul pentru a descărca imaginea și a o salva într-un fișier. - -- În final, deschidem imaginea și o afișăm cu vizualizatorul standard de imagini: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Mai multe detalii despre generarea imaginii - -Să analizăm codul care generează imaginea în detaliu: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** este textul folosit pentru a genera imaginea. În acest caz, folosim promptul „Iepuraș pe cal, ținând un acadea, pe o pajiște cețoasă unde cresc narcise”. -- **size** este dimensiunea imaginii generate. În acest caz, generăm o imagine de 1024x1024 pixeli. -- **n** este numărul de imagini generate. În acest caz, generăm două imagini. -- **temperature** este un parametru care controlează gradul de aleatoriu al rezultatului unui model AI generativ. Temperatura este o valoare între 0 și 1, unde 0 înseamnă că rezultatul este determinist, iar 1 înseamnă că rezultatul este aleatoriu. Valoarea implicită este 0.7. - -Există și alte lucruri pe care le poți face cu imaginile, pe care le vom acoperi în secțiunea următoare. - -## Capacități suplimentare ale generării imaginilor - -Până acum ai văzut cum am generat o imagine folosind câteva linii de cod în Python. Totuși, există mai multe lucruri pe care le poți face cu imaginile. - -Poți face și următoarele: - -- **Efectuarea de editări**. Furnizând o imagine existentă, o mască și un prompt, poți modifica o imagine. De exemplu, poți adăuga ceva într-o anumită zonă a imaginii. Imaginează-ți imaginea cu iepurașul, poți adăuga o pălărie iepurașului. Cum faci asta? Furnizând imaginea, o mască (care identifică zona ce trebuie modificată) și un prompt text care spune ce trebuie făcut. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - Imaginea de bază ar conține doar iepurașul, dar imaginea finală va avea pălăria pe iepuraș. - -- **Crearea de variații**. Ideea este să iei o imagine existentă și să ceri crearea unor variații. Pentru a crea o variație, furnizezi o imagine și un prompt text, apoi folosești codul astfel: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Notă, acest lucru este suportat doar de OpenAI - -## Temperatura - -Temperatura este un parametru care controlează gradul de aleatoriu al rezultatului unui model AI generativ. Temperatura este o valoare între 0 și 1, unde 0 înseamnă că rezultatul este determinist, iar 1 înseamnă că rezultatul este aleatoriu. Valoarea implicită este 0.7. - -Să vedem un exemplu despre cum funcționează temperatura, rulând acest prompt de două ori: - -> Prompt: „Iepuraș pe cal, ținând un acadea, pe o pajiște cețoasă unde cresc narcise” - -![Iepuraș pe cal ținând un acadea, versiunea 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.ro.png) - -Acum să rulăm același prompt doar ca să vedem că nu vom obține aceeași imagine de două ori: - -![Imagine generată cu iepuraș pe cal](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.ro.png) - -După cum vezi, imaginile sunt asemănătoare, dar nu identice. Să încercăm să schimbăm valoarea temperaturii la 0.1 și să vedem ce se întâmplă: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Schimbarea temperaturii - -Să încercăm să facem răspunsul mai determinist. Am observat din cele două imagini generate că în prima imagine apare un iepuraș, iar în a doua un cal, deci imaginile diferă mult. - -Așadar, să schimbăm codul și să setăm temperatura la 0, astfel: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Acum, când rulezi acest cod, vei obține aceste două imagini: - -- ![Temperatura 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.ro.png) -- ![Temperatura 0, v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.ro.png) - -Aici poți observa clar cum imaginile seamănă mult mai mult între ele. - -## Cum să definești limite pentru aplicația ta folosind metaprompturi - -Cu demo-ul nostru, putem deja genera imagini pentru clienții noștri. Totuși, trebuie să creăm niște limite pentru aplicația noastră. - -De exemplu, nu vrem să generăm imagini care nu sunt potrivite pentru locul de muncă sau care nu sunt adecvate pentru copii. - -Putem face asta folosind _metaprompturi_. Metaprompturile sunt prompturi text folosite pentru a controla rezultatul unui model AI generativ. De exemplu, putem folosi metaprompturi pentru a controla rezultatul și a ne asigura că imaginile generate sunt sigure pentru locul de muncă sau potrivite pentru copii. - -### Cum funcționează? - -Cum funcționează metaprompturile? - -Metaprompturile sunt prompturi text folosite pentru a controla rezultatul unui model AI generativ, ele sunt plasate înaintea promptului text și sunt folosite pentru a controla rezultatul modelului, fiind integrate în aplicații pentru a controla ieșirea modelului. Astfel, promptul de intrare și metapromptul sunt încapsulate într-un singur prompt text. - -Un exemplu de metaprompt ar fi următorul: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Acum, să vedem cum putem folosi metaprompturile în demo-ul nostru. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -Din promptul de mai sus, poți vedea cum toate imaginile generate iau în considerare metapromptul. - -## Tema - să dăm putere studenților - -Am introdus Edu4All la începutul acestei lecții. Acum este momentul să le permitem studenților să genereze imagini pentru evaluările lor. - -Studenții vor crea imagini pentru evaluările lor care să conțină monumente, iar ce monumente vor fi exact depinde de ei. Studenții sunt încurajați să folosească creativitatea pentru a plasa aceste monumente în contexte diferite. - -## Soluție - -Iată o posibilă soluție: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Bravo! Continuă să înveți - -După ce ai terminat această lecție, consultă colecția noastră [Generative AI Learning collection](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) pentru a-ți continua dezvoltarea cunoștințelor despre AI generativ! - -Mergi la Lecția 10, unde vom vedea cum să [construim aplicații AI cu low-code](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**Declinare de responsabilitate**: -Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim pentru acuratețe, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa nativă trebuie considerat sursa autorizată. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm răspunderea pentru eventualele neînțelegeri sau interpretări greșite rezultate din utilizarea acestei traduceri. \ No newline at end of file + + + + diff --git a/translations/ro/12-designing-ux-for-ai-applications/README.md b/translations/ro/12-designing-ux-for-ai-applications/README.md index ffd97ed81..089722546 100644 --- a/translations/ro/12-designing-ux-for-ai-applications/README.md +++ b/translations/ro/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# Proiectarea UX pentru Aplicații AI - -[![Proiectarea UX pentru Aplicații AI](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.ro.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Click pe imaginea de mai sus pentru a viziona videoclipul acestei lecții)_ - -Experiența utilizatorului este un aspect foarte important în construirea aplicațiilor. Utilizatorii trebuie să poată folosi aplicația ta într-un mod eficient pentru a-și îndeplini sarcinile. Eficiența este un lucru, dar trebuie să proiectezi aplicații astfel încât să poată fi folosite de toată lumea, pentru a le face _accesibile_. Acest capitol se va concentra pe acest aspect, astfel încât să ajungi să proiectezi o aplicație pe care oamenii o pot și vor să o folosească. - -## Introducere - -Experiența utilizatorului reprezintă modul în care un utilizator interacționează cu un produs sau serviciu specific, fie că este un sistem, un instrument sau un design. Atunci când dezvoltă aplicații AI, dezvoltatorii nu se concentrează doar pe asigurarea unei experiențe eficiente pentru utilizator, ci și pe aspecte etice. În această lecție, vom aborda cum să construim aplicații de Inteligență Artificială (AI) care să răspundă nevoilor utilizatorilor. - -Lecția va acoperi următoarele domenii: - -- Introducere în Experiența Utilizatorului și Înțelegerea Nevoilor Utilizatorilor -- Proiectarea Aplicațiilor AI pentru Încredere și Transparență -- Proiectarea Aplicațiilor AI pentru Colaborare și Feedback - -## Obiective de învățare - -După parcurgerea acestei lecții, vei putea: - -- Să înțelegi cum să construiești aplicații AI care să răspundă nevoilor utilizatorilor. -- Să proiectezi aplicații AI care să promoveze încrederea și colaborarea. - -### Prerechizite - -Alocă-ți puțin timp pentru a citi mai multe despre [experiența utilizatorului și design thinking.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Introducere în Experiența Utilizatorului și Înțelegerea Nevoilor Utilizatorilor - -În startup-ul nostru fictiv din domeniul educației, avem doi utilizatori principali: profesori și elevi. Fiecare dintre acești utilizatori are nevoi unice. Un design centrat pe utilizator prioritizează utilizatorul, asigurând că produsele sunt relevante și benefice pentru cei cărora li se adresează. - -Aplicația ar trebui să fie **utilă, fiabilă, accesibilă și plăcută** pentru a oferi o experiență bună utilizatorului. - -### Utilizabilitate - -A fi util înseamnă că aplicația are funcționalități care corespund scopului său, cum ar fi automatizarea procesului de notare sau generarea de fișe de studiu pentru recapitulare. O aplicație care automatizează procesul de notare ar trebui să poată atribui corect și eficient note lucrărilor elevilor, pe baza unor criterii predefinite. În mod similar, o aplicație care generează fișe de studiu ar trebui să poată crea întrebări relevante și variate, bazate pe datele sale. - -### Fiabilitate - -A fi fiabil înseamnă că aplicația poate îndeplini sarcina în mod constant și fără erori. Totuși, AI, la fel ca oamenii, nu este perfect și poate fi predispus la erori. Aplicațiile pot întâmpina erori sau situații neașteptate care necesită intervenție sau corecție umană. Cum gestionezi erorile? În ultima secțiune a acestei lecții vom aborda modul în care sistemele și aplicațiile AI sunt proiectate pentru colaborare și feedback. - -### Accesibilitate - -A fi accesibil înseamnă extinderea experienței utilizatorului către persoane cu diverse abilități, inclusiv cele cu dizabilități, asigurând că nimeni nu este exclus. Urmând ghidurile și principiile de accesibilitate, soluțiile AI devin mai incluzive, ușor de folosit și benefice pentru toți utilizatorii. - -### Plăcut - -A fi plăcut înseamnă că aplicația este agreabilă la utilizare. O experiență atractivă poate avea un impact pozitiv asupra utilizatorului, încurajându-l să revină la aplicație și crescând veniturile afacerii. - -![imagine ilustrând considerente UX în AI](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.ro.png) - -Nu orice provocare poate fi rezolvată cu AI. AI vine să completeze experiența utilizatorului, fie prin automatizarea sarcinilor manuale, fie prin personalizarea experiențelor utilizatorilor. - -## Proiectarea Aplicațiilor AI pentru Încredere și Transparență - -Construirea încrederii este esențială atunci când proiectezi aplicații AI. Încrederea asigură că utilizatorul are încredere că aplicația va îndeplini sarcina, va livra rezultate constante și că rezultatele sunt cele de care utilizatorul are nevoie. Un risc în acest domeniu este neîncrederea și supraîncrederea. Neîncrederea apare atunci când un utilizator are puțină sau deloc încredere într-un sistem AI, ceea ce duce la respingerea aplicației tale. Supraîncrederea apare atunci când un utilizator supraestimează capacitatea unui sistem AI, ceea ce duce la o încredere excesivă în sistem. De exemplu, un sistem automatizat de notare, în cazul supraîncrederii, poate determina profesorul să nu verifice unele lucrări pentru a se asigura că sistemul funcționează corect. Acest lucru poate duce la note nedrepte sau inexacte pentru elevi sau la pierderea oportunităților de feedback și îmbunătățire. - -Două moduri de a asigura că încrederea este pusă în centrul designului sunt explicabilitatea și controlul. - -### Explicabilitate - -Atunci când AI ajută la luarea deciziilor, cum ar fi transmiterea cunoștințelor generațiilor viitoare, este esențial ca profesorii și părinții să înțeleagă cum sunt luate deciziile AI. Aceasta este explicabilitatea – înțelegerea modului în care aplicațiile AI iau decizii. Proiectarea pentru explicabilitate include adăugarea de detalii și exemple despre ce poate face o aplicație AI. De exemplu, în loc de „Începe cu profesorul AI”, sistemul poate folosi: „Rezumați notițele pentru o recapitulare mai ușoară folosind AI.” - -![o pagină de start a unei aplicații cu o ilustrație clară a explicabilității în aplicațiile AI](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.ro.png) - -Un alt exemplu este modul în care AI folosește datele utilizatorului și datele personale. De exemplu, un utilizator cu persona de elev poate avea limitări bazate pe această persona. AI poate să nu poată dezvălui răspunsurile la întrebări, dar poate ajuta utilizatorul să gândească cum să rezolve o problemă. - -![AI răspunzând la întrebări bazate pe persona](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.ro.png) - -Un ultim aspect cheie al explicabilității este simplificarea explicațiilor. Elevii și profesorii nu sunt experți în AI, prin urmare explicațiile despre ce poate sau nu poate face aplicația ar trebui să fie simplificate și ușor de înțeles. - -![explicații simplificate despre capabilitățile AI](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.ro.png) - -### Control - -AI generativ creează o colaborare între AI și utilizator, unde, de exemplu, utilizatorul poate modifica prompturile pentru rezultate diferite. În plus, odată ce un rezultat este generat, utilizatorii ar trebui să poată modifica rezultatele, oferindu-le un sentiment de control. De exemplu, când folosești Bing, poți adapta promptul în funcție de format, ton și lungime. De asemenea, poți adăuga modificări la rezultatul obținut și îl poți ajusta, așa cum se arată mai jos: - -![Rezultate Bing cu opțiuni de modificare a promptului și a rezultatului](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.ro.png) - -O altă funcție în Bing care permite utilizatorului să aibă control asupra aplicației este posibilitatea de a opta pentru sau împotriva utilizării datelor AI. Pentru o aplicație școlară, un elev ar putea dori să folosească notițele proprii, precum și resursele profesorilor ca material de recapitulare. - -![Rezultate Bing cu opțiuni de modificare a promptului și a rezultatului](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.ro.png) - -> Când proiectezi aplicații AI, intenționalitatea este cheia pentru a te asigura că utilizatorii nu au o încredere excesivă, stabilind așteptări realiste privind capacitățile sale. Un mod de a face acest lucru este prin crearea unui mic obstacol între prompturi și rezultate. Amintind utilizatorului că acesta este AI și nu o ființă umană. - -## Proiectarea Aplicațiilor AI pentru Colaborare și Feedback - -Așa cum am menționat anterior, AI generativ creează o colaborare între utilizator și AI. Majoritatea interacțiunilor constau în introducerea unui prompt de către utilizator și generarea unui rezultat de către AI. Ce se întâmplă dacă rezultatul este incorect? Cum gestionează aplicația erorile dacă apar? AI dă vina pe utilizator sau își ia timp să explice eroarea? - -Aplicațiile AI ar trebui să fie construite pentru a primi și oferi feedback. Acest lucru nu doar ajută sistemul AI să se îmbunătățească, ci și construiește încredere cu utilizatorii. Un ciclu de feedback ar trebui inclus în design, un exemplu fiind un simplu buton de like sau dislike pentru rezultat. - -Un alt mod de a gestiona acest lucru este să comunici clar capabilitățile și limitările sistemului. Când un utilizator face o cerere care depășește capacitățile AI, ar trebui să existe o modalitate de a gestiona acest lucru, așa cum se arată mai jos. - -![Oferirea de feedback și gestionarea erorilor](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.ro.png) - -Erorile de sistem sunt frecvente în aplicații unde utilizatorul poate avea nevoie de asistență cu informații din afara domeniului AI sau aplicația poate avea o limită privind numărul de întrebări/subiecte pentru care se pot genera rezumate. De exemplu, o aplicație AI antrenată cu date pe subiecte limitate, cum ar fi Istorie și Matematică, poate să nu poată răspunde la întrebări legate de Geografie. Pentru a atenua acest lucru, sistemul AI poate oferi un răspuns de genul: „Ne pare rău, produsul nostru a fost antrenat cu date în următoarele domenii....., nu pot răspunde la întrebarea pe care ați pus-o.” - -Aplicațiile AI nu sunt perfecte, prin urmare, vor face greșeli. Când proiectezi aplicațiile, trebuie să te asiguri că lași loc pentru feedback din partea utilizatorilor și pentru gestionarea erorilor într-un mod simplu și ușor de explicat. - -## Tema - -Ia orice aplicație AI pe care ai construit-o până acum și ia în considerare implementarea următorilor pași în aplicația ta: - -- **Plăcut:** Gândește-te cum poți face aplicația mai plăcută. Adaugi explicații peste tot? Încurajezi utilizatorul să exploreze? Cum formulezi mesajele de eroare? - -- **Utilizabilitate:** Construiește o aplicație web. Asigură-te că aplicația ta poate fi navigată atât cu mouse-ul, cât și cu tastatura. - -- **Încredere și transparență:** Nu avea încredere totală în AI și în rezultatele sale, gândește-te cum ai putea adăuga o persoană care să verifice rezultatul. De asemenea, ia în considerare și implementează alte metode pentru a obține încredere și transparență. - -- **Control:** Oferă utilizatorului control asupra datelor pe care le furnizează aplicației. Implementează o modalitate prin care utilizatorul să poată opta pentru sau împotriva colectării datelor în aplicația AI. - -## Continuă să înveți! - -După ce ai terminat această lecție, consultă colecția noastră de [Învățare Generativă AI](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) pentru a-ți continua dezvoltarea cunoștințelor despre Generative AI! - -Mergi la Lecția 13, unde vom vedea cum să [securizăm aplicațiile AI](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**Declinare de responsabilitate**: -Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim pentru acuratețe, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa nativă trebuie considerat sursa autorizată. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm răspunderea pentru eventualele neînțelegeri sau interpretări greșite rezultate din utilizarea acestei traduceri. \ No newline at end of file + + + diff --git a/translations/ro/README.md b/translations/ro/README.md index acc712b14..2aad823c7 100644 --- a/translations/ro/README.md +++ b/translations/ro/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.ro.png) - -### 21 Lecții care te învață tot ce trebuie să știi pentru a începe să construiești aplicații Generative AI - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Suport Multilingv - -#### Susținut prin GitHub Action (Automatizat & Întotdeauna Actualizat) - -[Franceză](../fr/README.md) | [Spaniolă](../es/README.md) | [Germană](../de/README.md) | [Rusă](../ru/README.md) | [Arabă](../ar/README.md) | [Persană (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chineză (Simplificată)](../zh/README.md) | [Chineză (Tradițională, Macau)](../mo/README.md) | [Chineză (Tradițională, Hong Kong)](../hk/README.md) | [Chineză (Tradițională, Taiwan)](../tw/README.md) | [Japoneză](../ja/README.md) | [Coreeană](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepaleză](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portugheză (Portugalia)](../pt/README.md) | [Portugheză (Brazilia)](../br/README.md) | [Italiană](../it/README.md) | [Poloneză](../pl/README.md) | [Turcă](../tr/README.md) | [Greacă](../el/README.md) | [Thailandeză](../th/README.md) | [Suedeză](../sv/README.md) | [Daneză](../da/README.md) | [Norvegiană](../no/README.md) | [Finlandeză](../fi/README.md) | [Olandeză](../nl/README.md) | [Ebraică](../he/README.md) | [Vietnameză](../vi/README.md) | [Indoneziană](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipineză)](../tl/README.md) | [Swahili](../sw/README.md) | [Maghiară](../hu/README.md) | [Cehă](../cs/README.md) | [Slovacă](../sk/README.md) | [Română](./README.md) | [Bulgară](../bg/README.md) | [Sârbă (Chirilică)](../sr/README.md) | [Croată](../hr/README.md) | [Slovenă](../sl/README.md) | [Ucraineană](../uk/README.md) | [Burmese (Myanmar)](../my/README.md) - -# Generative AI pentru Începători (Versiunea 3) - Un Curs - -Învață elementele de bază pentru a construi aplicații Generative AI cu ajutorul cursului nostru cuprinzător de 21 de lecții, creat de Microsoft Cloud Advocates. - -## 🌱 Începutul - -Acest curs are 21 de lecții. Fiecare lecție abordează un subiect propriu, așa că poți începe de oriunde dorești! - -Lecțiile sunt etichetate fie ca lecții „Learn” care explică un concept Generative AI, fie ca lecții „Build” care explică un concept și oferă exemple de cod în **Python** și **TypeScript**, atunci când este posibil. - -Pentru dezvoltatorii .NET, consultați [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -Fiecare lecție include și o secțiune „Keep Learning” cu instrumente suplimentare de învățare. - -## Ce ai nevoie -### Pentru a rula codul acestui curs, poți folosi oricare dintre: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **Lecții:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **Lecții:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **Lecții:** "oai-assignment" - -- Cunoștințe de bază de Python sau TypeScript sunt utile - \*Pentru începători absoluți, consultați aceste cursuri [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) și [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) -- Un cont GitHub pentru a [face fork la întregul repo](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) în propriul tău cont GitHub - -Am creat o lecție **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** pentru a te ajuta să-ți configurezi mediul de dezvoltare. - -Nu uita să [acordezi o stea (🌟) acestui repo](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) pentru a-l găsi mai ușor mai târziu. - -## 🧠 Gata să implementezi? - -Dacă vrei exemple de cod mai avansate, consultă colecția noastră de [Exemple de Cod Generative AI](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) în **Python** și **TypeScript**. - -## 🗣️ Întâlnește alți cursanți, primește suport - -Alătură-te serverului nostru oficial [Azure AI Foundry Discord](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) pentru a cunoaște și a face networking cu alți cursanți care urmează acest curs și pentru a primi suport. - -Pune întrebări sau oferă feedback despre produs în [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum) pe Github. - -## 🚀 Construiești un startup? - -Înscrie-te la [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) pentru a primi **credite gratuite OpenAI** și până la **150.000 $ în credite Azure pentru a accesa modelele OpenAI prin Azure OpenAI Services**. - -## 🙏 Vrei să ajuți? - -Ai sugestii sau ai găsit greșeli de ortografie ori în cod? [Deschide un issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) sau [creează un pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 Fiecare lecție include: - -- O scurtă introducere video în subiect -- O lecție scrisă în README -- Exemple de cod Python și TypeScript care suportă Azure OpenAI și OpenAI API -- Linkuri către resurse suplimentare pentru a-ți continua învățarea - -## 🗃️ Lecții - -| # | **Link Lecție** | **Descriere** | **Video** | **Învățare suplimentară** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Configurarea cursului](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Cum să-ți configurezi mediul de dezvoltare | Video în curând | [Află mai multe](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introducere în Generative AI și LLM-uri](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Înțelegerea ce este Generative AI și cum funcționează modelele mari de limbaj (LLM) | [Video](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Află mai multe](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Explorarea și compararea diferitelor LLM-uri](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Cum să alegi modelul potrivit pentru cazul tău de utilizare | [Video](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Află mai multe](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Folosirea responsabilă a Generative AI](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Cum să construiești aplicații Generative AI responsabil | [Video](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Află mai multe](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Înțelegerea fundamentelor Prompt Engineering](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Cele mai bune practici de Prompt Engineering, cu exerciții practice | [Video](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Află mai multe](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Crearea de Prompts Avansate](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Cum să aplici tehnici de prompt engineering care îmbunătățesc rezultatele prompturilor tale | [Video](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Află mai multe](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Construirea aplicațiilor de generare text](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Construiește:** O aplicație de generare text folosind Azure OpenAI / OpenAI API | [Video](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Află mai multe](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Construirea aplicațiilor de chat](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Construiește:** Tehnici pentru construirea și integrarea eficientă a aplicațiilor de chat. | [Video](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Află mai multe](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Construirea aplicațiilor de căutare cu baze de date vectoriale](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Construiește:** O aplicație de căutare care folosește Embeddings pentru a căuta date. | [Video](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Află mai multe](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Construirea aplicațiilor de generare imagini](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Construiește:** O aplicație de generare imagini | [Video](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Află mai multe](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Construirea aplicațiilor AI cu Low Code](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Construiește:** O aplicație Generative AI folosind instrumente Low Code | [Video](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Află mai multe](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Integrarea aplicațiilor externe cu Function Calling](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Construiește:** Ce este function calling și cazurile sale de utilizare în aplicații | [Video](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Află mai multe](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [Proiectarea UX pentru aplicații AI](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Învață:** Cum să aplici principiile de design UX în dezvoltarea aplicațiilor Generative AI | [Video](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Află mai multe](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Asigurarea aplicațiilor tale Generative AI](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Învață:** Amenințările și riscurile pentru sistemele AI și metodele de securizare a acestora. | [Video](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Află mai multe](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [Ciclul de viață al aplicațiilor Generative AI](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Învață:** Instrumentele și metricile pentru gestionarea ciclului de viață LLM și LLMOps | [Video](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Află mai multe](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) și baze de date vectoriale](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Construiește:** O aplicație folosind un cadru RAG pentru a prelua embeddings din baze de date vectoriale | [Video](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Află mai multe](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Modele open source și Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Construiește:** O aplicație folosind modele open source disponibile pe Hugging Face | [Video](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Află mai multe](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [Agenți AI](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Construiește:** O aplicație folosind un cadru AI Agent | [Video](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Află mai multe](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [Fine-Tuning LLMs](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Învață:** Ce, de ce și cum se face fine-tuning-ul LLM-urilor | [Video](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Află mai multe](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Construirea cu SLMs](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Învață:** Beneficiile construirii cu Small Language Models | Video în curând | [Află mai multe](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Construirea cu modelele Mistral](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Învață:** Caracteristicile și diferențele modelelor din familia Mistral | Video în curând | [Află mai multe](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Construirea cu modelele Meta](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Învață:** Caracteristicile și diferențele modelelor din familia Meta | Video în curând | [Află mai multe](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Mulțumiri speciale - -Mulțumiri speciale lui [**John Aziz**](https://www.linkedin.com/in/john0isaac/) pentru crearea tuturor GitHub Actions și workflow-urilor - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) pentru contribuțiile esențiale aduse fiecărei lecții, îmbunătățind experiența cursantului și a codului. - -## 🎒 Alte cursuri - -Echipa noastră produce și alte cursuri! Aruncă o privire: - -- [**NOU** Protocolul Model Context pentru Începători](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Agenți AI pentru Începători](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Generative AI pentru Începători folosind .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Generative AI pentru Începători folosind JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML pentru Începători](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Data Science pentru Începători](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI pentru Începători](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Securitate cibernetică pentru Începători](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Dezvoltare Web pentru Începători](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT pentru Începători](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [Dezvoltare XR pentru Începători](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Stăpânirea GitHub Copilot pentru programare AI în echipă](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Stăpânirea GitHub Copilot pentru dezvoltatori C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Alege-ți propria aventură Copilot](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Declinare de responsabilitate**: -Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim pentru acuratețe, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa nativă trebuie considerat sursa autorizată. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm răspunderea pentru eventualele neînțelegeri sau interpretări greșite rezultate din utilizarea acestei traduceri. \ No newline at end of file + + + + diff --git a/translations/ru/00-course-setup/01-setup-cloud.md b/translations/ru/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..f8a0cc530 --- /dev/null +++ b/translations/ru/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/ru/00-course-setup/02-setup-local.md b/translations/ru/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..e628869ad --- /dev/null +++ b/translations/ru/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/ru/00-course-setup/03-providers.md b/translations/ru/00-course-setup/03-providers.md new file mode 100644 index 000000000..e64c0a4fc --- /dev/null +++ b/translations/ru/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/ru/00-course-setup/README.md b/translations/ru/00-course-setup/README.md index e21185357..f2f1e14ce 100644 --- a/translations/ru/00-course-setup/README.md +++ b/translations/ru/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# Начало работы с этим курсом - -Мы очень рады, что вы начинаете этот курс и готовы увидеть, что вас вдохновит создать с помощью генеративного ИИ! - -Чтобы обеспечить ваш успех, на этой странице описаны шаги по настройке, технические требования и информация о том, где можно получить помощь при необходимости. - -## Шаги настройки - -Чтобы начать обучение на этом курсе, вам нужно выполнить следующие шаги. - -### 1. Форкните этот репозиторий - -[Сделайте форк всего репозитория](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) в свой аккаунт GitHub, чтобы иметь возможность изменять код и выполнять задания. Вы также можете [поставить звезду (🌟) этому репозиторию](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst), чтобы легче находить его и связанные репозитории. - -### 2. Создайте codespace - -Чтобы избежать проблем с зависимостями при запуске кода, мы рекомендуем использовать [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst) для работы с этим курсом. - -Создать его можно, выбрав опцию `Code` в вашем форкнутом репозитории и затем выбрав пункт **Codespaces**. - -![Диалоговое окно с кнопками для создания codespace](../../../00-course-setup/images/who-will-pay.webp) - -### 3. Хранение ваших API ключей - -Очень важно хранить ваши API ключи в безопасности при создании любого приложения. Мы рекомендуем не сохранять ключи напрямую в коде. Если вы закоммитите эти данные в публичный репозиторий, это может привести к проблемам с безопасностью и даже нежелательным расходам, если ключи попадут в руки злоумышленников. -Вот пошаговое руководство, как создать файл `.env` для Python и добавить в него `GITHUB_TOKEN`: - -1. **Перейдите в каталог вашего проекта**: Откройте терминал или командную строку и перейдите в корневую папку проекта, где вы хотите создать файл `.env`. - - ```bash - cd path/to/your/project - ``` - -2. **Создайте файл `.env`**: Используйте предпочитаемый текстовый редактор для создания нового файла с именем `.env`. Если вы работаете через командную строку, можно использовать `touch` (на Unix-системах) или `echo` (на Windows): - - Unix-системы: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **Отредактируйте файл `.env`**: Откройте `.env` в текстовом редакторе (например, VS Code, Notepad++ или любом другом). Добавьте следующую строку, заменив `your_github_token_here` на ваш реальный GitHub токен: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Сохраните файл**: Сохраните изменения и закройте редактор. - -5. **Установите `python-dotenv`**: Если вы еще не установили, вам нужно добавить пакет `python-dotenv`, чтобы загружать переменные окружения из файла `.env` в ваше Python-приложение. Установить его можно с помощью `pip`: - - ```bash - pip install python-dotenv - ``` - -6. **Загрузите переменные окружения в вашем Python-скрипте**: В вашем Python-скрипте используйте пакет `python-dotenv` для загрузки переменных из файла `.env`: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -Вот и всё! Вы успешно создали файл `.env`, добавили в него GitHub токен и загрузили его в ваше Python-приложение. - -## Как запускать локально на вашем компьютере - -Чтобы запускать код локально, у вас должна быть установлена какая-либо версия [Python](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -Далее, чтобы использовать репозиторий, его нужно клонировать: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -После того как вы всё скачали, можно приступать к работе! - -## Дополнительные шаги - -### Установка Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) — это легковесный установщик для установки [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python и некоторых пакетов. -Conda — это менеджер пакетов, который упрощает настройку и переключение между разными [виртуальными окружениями](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) и пакетами Python. Он также полезен для установки пакетов, недоступных через `pip`. - -Вы можете следовать [руководству по установке MiniConda](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst). - -После установки Miniconda, если вы ещё не сделали этого, клонируйте [репозиторий](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst). - -Далее нужно создать виртуальное окружение. Для этого с помощью Conda создайте новый файл окружения (_environment.yml_). Если вы работаете в Codespaces, создайте его в папке `.devcontainer`, то есть `.devcontainer/environment.yml`. - -Заполните файл окружения следующим содержимым: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Если при работе с conda возникают ошибки, вы можете вручную установить Microsoft AI Libraries с помощью следующей команды в терминале. - -``` -conda install -c microsoft azure-ai-ml -``` - -Файл окружения указывает необходимые зависимости. `` — это имя, которое вы хотите дать своему Conda окружению, а `` — версия Python, например, `3` — последняя основная версия Python. - -После этого создайте Conda окружение, выполнив команды ниже в командной строке/терминале: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -Если возникнут проблемы, обратитесь к [руководству по управлению окружениями Conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst). - -### Использование Visual Studio Code с расширением поддержки Python - -Для этого курса мы рекомендуем использовать редактор [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) с установленным [расширением поддержки Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst). Однако это скорее рекомендация, а не обязательное требование. - -> **Примечание**: При открытии репозитория курса в VS Code у вас есть возможность настроить проект внутри контейнера. Это возможно благодаря специальной папке [`.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst), которая есть в репозитории курса. Подробнее об этом позже. - -> **Примечание**: После клонирования и открытия папки в VS Code, редактор автоматически предложит установить расширение поддержки Python. - -> **Примечание**: Если VS Code предложит открыть репозиторий в контейнере, отклоните это предложение, чтобы использовать локально установленную версию Python. - -### Использование Jupyter в браузере - -Вы также можете работать над проектом в [Jupyter](https://jupyter.org?WT.mc_id=academic-105485-koreyst) прямо в браузере. Как классический Jupyter, так и [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) предоставляют удобную среду разработки с такими функциями, как автодополнение, подсветка кода и др. - -Чтобы запустить Jupyter локально, откройте терминал/командную строку, перейдите в папку курса и выполните: - -```bash -jupyter notebook -``` - -или - -```bash -jupyterhub -``` - -Это запустит экземпляр Jupyter, а URL для доступа будет показан в окне командной строки. - -Перейдя по этому URL, вы увидите структуру курса и сможете открыть любой файл с расширением `*.ipynb`. Например, `08-building-search-applications/python/oai-solution.ipynb`. - -### Запуск в контейнере - -Альтернативой настройке всего на вашем компьютере или в Codespace является использование [контейнера](../../../00-course-setup/). Специальная папка `.devcontainer` в репозитории курса позволяет VS Code настроить проект внутри контейнера. За пределами Codespaces для этого потребуется установка Docker, и, честно говоря, это требует определённых навыков, поэтому мы рекомендуем этот способ только тем, кто уже имеет опыт работы с контейнерами. - -Один из лучших способов защитить ваши API ключи при использовании GitHub Codespaces — это использовать Secrets Codespace. Пожалуйста, ознакомьтесь с руководством по [управлению секретами в Codespaces](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst), чтобы узнать больше. - -## Уроки и технические требования - -Курс состоит из 6 теоретических уроков и 6 практических уроков с кодом. - -Для практических уроков мы используем Azure OpenAI Service. Для запуска кода вам потребуется доступ к Azure OpenAI Service и API ключ. Вы можете подать заявку на доступ, [заполнив эту форму](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -Пока ваша заявка обрабатывается, в каждом практическом уроке есть файл `README.md`, где вы можете ознакомиться с кодом и результатами. - -## Использование Azure OpenAI Service впервые - -Если вы впервые работаете с Azure OpenAI Service, пожалуйста, следуйте этому руководству по [созданию и развертыванию ресурса Azure OpenAI Service](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst). - -## Использование OpenAI API впервые - -Если вы впервые работаете с OpenAI API, пожалуйста, ознакомьтесь с руководством по [созданию и использованию интерфейса](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst). - -## Встречайтесь с другими учащимися - -Мы создали каналы в нашем официальном [Discord-сервере AI Community](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) для общения с другими учащимися. Это отличный способ познакомиться с единомышленниками — предпринимателями, разработчиками, студентами и всеми, кто хочет прокачать свои навыки в генеративном ИИ. - -[![Присоединиться к Discord-каналу](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -Команда проекта также будет присутствовать на этом Discord-сервере, чтобы помогать учащимся. - -## Вклад в проект - -Этот курс — проект с открытым исходным кодом. Если вы видите возможности для улучшения или обнаружили ошибки, пожалуйста, создайте [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) или зарегистрируйте [issue на GitHub](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -Команда проекта отслеживает все вклады. Участие в open source — отличный способ развить карьеру в области генеративного ИИ. - -Большинство вкладов требуют согласия с Contributor License Agreement (CLA) — соглашением, подтверждающим, что вы имеете право и действительно предоставляете нам права на использование вашего вклада. Подробнее на сайте [CLA, Contributor License Agreement](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Важно: при переводе текста в этом репозитории убедитесь, что не используете машинный перевод. Мы проверяем переводы через сообщество, поэтому просим брать на себя ответственность за перевод только на тех языках, которыми вы владеете. - -При отправке pull request, CLA-бот автоматически определит, нужно ли вам предоставить CLA, и отметит PR соответствующим образом (например, меткой или комментарием). Просто следуйте инструкциям бота. Это нужно сделать только один раз для всех репозиториев, использующих наш CLA. - -Этот проект принял [Кодекс поведения Microsoft Open Source](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst). Для дополнительной информации прочитайте FAQ по Кодексу поведения или свяжитесь по адресу [Email opencode](opencode@microsoft.com) с любыми вопросами или комментариями. - -## Приступим - -Теперь, когда вы выполнили все необходимые шаги для прохождения курса, давайте начнем с [введения в генеративный ИИ и большие языковые модели (LLM)](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**Отказ от ответственности**: -Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия по обеспечению точности, просим учитывать, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется обращаться к профессиональному человеческому переводу. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода. \ No newline at end of file + + + + diff --git a/translations/ru/00-course-setup/SETUP.md b/translations/ru/00-course-setup/SETUP.md deleted file mode 100644 index 44c137a7a..000000000 --- a/translations/ru/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# Настройка вашей среды разработки - -В этом репозитории и курсе используется [контейнер для разработки](https://containers.dev?WT.mc_id=academic-105485-koreyst) с универсальной средой выполнения, поддерживающей Python3, .NET, Node.js и Java. Соответствующая конфигурация описана в файле `devcontainer.json`, который находится в папке `.devcontainer/` в корне репозитория. - -Чтобы запустить контейнер для разработки, откройте его в [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (облачная среда) или в [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (локальная среда). Подробнее о работе с контейнерами для разработки в VS Code читайте в [этой документации](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst). - -> [!TIP] -> Рекомендуем использовать GitHub Codespaces для быстрого старта с минимальными усилиями. Для личных аккаунтов предоставляется щедрая [бесплатная квота](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst). Настройте [тайм-ауты](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst), чтобы останавливать или удалять неактивные codespaces и максимально эффективно использовать квоту. - -## 1. Выполнение заданий - -В каждом уроке могут быть _необязательные_ задания, которые предоставляются на одном или нескольких языках программирования: Python, .NET/C#, Java и JavaScript/TypeScript. В этом разделе приведены общие рекомендации по выполнению таких заданий. - -### 1.1 Задания на Python - -Задания на Python представлены либо в виде приложений (`.py` файлы), либо Jupyter ноутбуков (`.ipynb` файлы). -- Чтобы запустить ноутбук, откройте его в Visual Studio Code, затем нажмите _Select Kernel_ (в правом верхнем углу) и выберите стандартный вариант Python 3. После этого можно использовать команду _Run All_ для выполнения всего ноутбука. -- Для запуска Python-приложений из командной строки следуйте инструкциям, указанным в конкретном задании, чтобы выбрать правильные файлы и передать необходимые аргументы. - -## 2. Настройка провайдеров - -Задания **могут** быть настроены для работы с одним или несколькими развертываниями больших языковых моделей (LLM) через поддерживаемых провайдеров, таких как OpenAI, Azure или Hugging Face. Они предоставляют _хостинг-эндпоинт_ (API), к которому можно обращаться программно с помощью правильных учетных данных (API ключ или токен). В этом курсе рассматриваются следующие провайдеры: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) с разнообразными моделями, включая основную серию GPT. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) — OpenAI модели с акцентом на корпоративное использование. - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) — открытые модели и серверы инференса. - -**Для выполнения этих упражнений вам понадобятся собственные аккаунты**. Задания необязательны, поэтому вы можете настроить одного, всех или ни одного из провайдеров в зависимости от интересов. Вот краткая информация по регистрации: - -| Регистрация | Стоимость | API ключ | Песочница | Комментарии | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst) | [Цены](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst) | [Проектные ключи](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [Веб-песочница без кода](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Доступно множество моделей | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst) | [Цены](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst) | [Быстрый старт SDK](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Быстрый старт Studio](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Необходимо предварительно подать заявку на доступ](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) | -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Цены](https://huggingface.co/pricing) | [Токены доступа](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst) | [Hugging Chat поддерживает ограниченный набор моделей](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Следуйте инструкциям ниже, чтобы _настроить_ этот репозиторий для работы с разными провайдерами. Задания, требующие конкретного провайдера, будут содержать один из следующих тегов в имени файла: - - `aoai` — требует Azure OpenAI endpoint и ключ - - `oai` — требует OpenAI endpoint и ключ - - `hf` — требует токен Hugging Face - -Вы можете настроить одного, нескольких или ни одного провайдера. Если учетные данные отсутствуют, соответствующие задания просто выдадут ошибку. - -### 2.1. Создание файла `.env` - -Предполагается, что вы уже ознакомились с инструкциями выше, зарегистрировались у нужного провайдера и получили необходимые учетные данные (API_KEY или токен). В случае Azure OpenAI предполагается, что у вас есть действующее развертывание Azure OpenAI Service (endpoint) с хотя бы одной моделью GPT, развернутой для чат-комплешена. - -Следующий шаг — настроить **локальные переменные окружения** следующим образом: - -1. Найдите в корневой папке файл `.env.copy`, который должен содержать примерно следующее: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Скопируйте этот файл в `.env` с помощью команды ниже. Этот файл добавлен в .gitignore, чтобы сохранить секреты в безопасности. - - ```bash - cp .env.copy .env - ``` - -3. Заполните значения (замените плейсхолдеры справа от `=`) согласно описанию в следующем разделе. - -3. (Опционально) Если вы используете GitHub Codespaces, можно сохранить переменные окружения как _секреты Codespaces_, связанные с этим репозиторием. В этом случае локальный файл .env создавать не нужно. **Однако учтите, что этот способ работает только с GitHub Codespaces.** Если вы используете Docker Desktop, файл .env нужно настроить обязательно. - -### 2.2. Заполнение файла `.env` - -Давайте кратко рассмотрим имена переменных и их назначение: - -| Переменная | Описание | -| :--- | :--- | -| HUGGING_FACE_API_KEY | Токен доступа пользователя, который вы создаете в своем профиле | -| OPENAI_API_KEY | Ключ авторизации для использования сервиса OpenAI (не Azure) | -| AZURE_OPENAI_API_KEY | Ключ авторизации для Azure OpenAI | -| AZURE_OPENAI_ENDPOINT | URL развернутого эндпоинта Azure OpenAI | -| AZURE_OPENAI_DEPLOYMENT | Имя развертывания модели для _генерации текста_ | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | Имя развертывания модели для _векторных эмбеддингов_ | -| | | - -Примечание: последние две переменные Azure OpenAI соответствуют моделям по умолчанию для чат-комплешена (генерация текста) и поиска по векторным представлениям (эмбеддинги). Инструкции по их настройке будут указаны в соответствующих заданиях. - -### 2.3 Настройка Azure: через портал - -Значения для Azure OpenAI endpoint и ключа можно найти в [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst), начнем с него. - -1. Перейдите в [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -2. В боковом меню выберите пункт **Keys and Endpoint** -3. Нажмите **Show Keys** — вы увидите KEY 1, KEY 2 и Endpoint -4. Используйте значение KEY 1 для AZURE_OPENAI_API_KEY -5. Используйте значение Endpoint для AZURE_OPENAI_ENDPOINT - -Далее нам нужны эндпоинты для конкретных развернутых моделей. - -1. В боковом меню выберите **Model deployments** для ресурса Azure OpenAI -2. На открывшейся странице нажмите **Manage Deployments** - -Это перенаправит вас на сайт Azure OpenAI Studio, где можно найти остальные значения, как описано ниже. - -### 2.4 Настройка Azure: через Studio - -1. Перейдите в [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **через ваш ресурс**, как описано выше. -2. Выберите вкладку **Deployments** (в боковом меню слева), чтобы увидеть текущие развернутые модели. -3. Если нужная модель не развернута, используйте **Create new deployment** для ее создания. -4. Вам понадобится модель для _генерации текста_ — рекомендуем: **gpt-35-turbo** -5. Вам понадобится модель для _векторных эмбеддингов_ — рекомендуем: **text-embedding-ada-002** - -Теперь обновите переменные окружения, указав имя _Deployment name_, которое вы использовали. Обычно оно совпадает с именем модели, если вы не меняли его явно. Например, у вас может быть: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**Не забудьте сохранить файл .env после изменений**. Теперь можно закрыть файл и вернуться к инструкциям по запуску ноутбука. - -### 2.5 Настройка OpenAI: через профиль - -Ваш OpenAI API ключ можно найти в вашем [аккаунте OpenAI](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). Если у вас его нет, зарегистрируйтесь и создайте ключ API. После этого заполните переменную `OPENAI_API_KEY` в файле `.env`. - -### 2.6 Настройка Hugging Face: через профиль - -Ваш токен Hugging Face можно найти в профиле в разделе [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). Не публикуйте и не делитесь им публично. Лучше создайте новый токен специально для этого проекта и вставьте его в файл `.env` в переменную `HUGGING_FACE_API_KEY`. _Примечание:_ технически это не API ключ, но используется для аутентификации, поэтому для удобства мы сохраняем такое название. - -**Отказ от ответственности**: -Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия по обеспечению точности, просим учитывать, что автоматический перевод может содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется обращаться к профессиональному переводу, выполненному человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/04-prompt-engineering-fundamentals/README.md b/translations/ru/04-prompt-engineering-fundamentals/README.md index 2c9079c9d..e1c562124 100644 --- a/translations/ru/04-prompt-engineering-fundamentals/README.md +++ b/translations/ru/04-prompt-engineering-fundamentals/README.md @@ -1,447 +1,15 @@ - -# Основы проектирования подсказок - -[![Основы проектирования подсказок](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.ru.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Введение -В этом модуле рассматриваются ключевые концепции и методы создания эффективных подсказок для генеративных моделей ИИ. Важно не только, что вы пишете в подсказке для LLM, но и как именно это делаете. Тщательно продуманная подсказка может значительно улучшить качество ответа. Но что же на самом деле означают термины _подсказка_ и _проектирование подсказок_? И как улучшить _входные данные_ подсказки, которые мы отправляем в LLM? На эти вопросы мы постараемся ответить в этой и следующей главе. - -_Генеративный ИИ_ способен создавать новый контент (например, текст, изображения, аудио, код и т.д.) в ответ на запросы пользователя. Это достигается с помощью _Больших языковых моделей_ (LLM), таких как серия GPT от OpenAI ("Generative Pre-trained Transformer"), обученных работать с естественным языком и кодом. - -Пользователи теперь могут взаимодействовать с этими моделями через привычные интерфейсы, например чат, без необходимости в технических знаниях или обучении. Модели работают на основе _подсказок_ — пользователь отправляет текстовый запрос (подсказку), а получает ответ ИИ (завершение). Затем можно вести диалог с ИИ, уточняя подсказку в несколько этапов, пока ответ не будет соответствовать ожиданиям. - -«Подсказки» становятся основным _интерфейсом программирования_ для приложений с генеративным ИИ, задавая модели задачи и влияя на качество получаемых ответов. «Проектирование подсказок» — это быстро развивающаяся область, которая сосредоточена на _разработке и оптимизации_ подсказок для получения стабильных и качественных результатов в масштабах. - -## Цели обучения - -В этом уроке мы узнаем, что такое проектирование подсказок, почему это важно и как создавать более эффективные подсказки для конкретной модели и задачи. Мы разберём основные понятия и лучшие практики проектирования подсказок, а также познакомимся с интерактивной средой Jupyter Notebook, где эти концепции можно применить на практике. - -К концу урока вы сможете: - -1. Объяснить, что такое проектирование подсказок и почему это важно. -2. Описать компоненты подсказки и их использование. -3. Изучить лучшие практики и методы проектирования подсказок. -4. Применить изученные методы на реальных примерах с использованием OpenAI endpoint. - -## Ключевые термины - -Проектирование подсказок: Практика создания и доработки входных данных для управления ИИ-моделями с целью получения нужных результатов. -Токенизация: Процесс преобразования текста в более мелкие единицы — токены, которые модель может понимать и обрабатывать. -Instruction-Tuned LLMs: Большие языковые модели, дообученные с использованием конкретных инструкций для повышения точности и релевантности ответов. - -## Песочница для обучения - -Проектирование подсказок сейчас скорее искусство, чем наука. Лучший способ улучшить интуицию — _практиковаться_ и использовать метод проб и ошибок, сочетая знания предметной области с рекомендованными методами и оптимизациями, специфичными для модели. - -Jupyter Notebook, сопровождающий этот урок, предоставляет _песочницу_, где вы можете опробовать полученные знания — по ходу урока или в рамках итогового задания. Для выполнения упражнений вам понадобятся: - -1. **Ключ API Azure OpenAI** — конечная точка сервиса для развернутой LLM. -2. **Среда выполнения Python** — для запуска ноутбука. -3. **Локальные переменные окружения** — _завершите шаги из [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst), чтобы подготовиться_. - -В ноутбуке есть _стартовые_ упражнения, но вы можете добавлять свои собственные разделы с _Markdown_ (описаниями) и _Code_ (запросами подсказок), чтобы пробовать больше примеров и развивать интуицию в проектировании подсказок. - -## Иллюстрированное руководство - -Хотите получить общее представление о том, что охватывает этот урок, прежде чем углубляться? Ознакомьтесь с этим иллюстрированным руководством, которое даёт обзор основных тем и ключевых выводов для размышления. Дорожная карта урока проведёт вас от понимания базовых концепций и проблем к их решению с помощью соответствующих методов проектирования подсказок и лучших практик. Обратите внимание, что раздел «Продвинутые техники» в этом руководстве относится к материалам _следующей_ главы курса. - -![Иллюстрированное руководство по проектированию подсказок](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.ru.png) - -## Наш стартап - -Теперь поговорим о том, как _эта тема_ связана с миссией нашего стартапа — [внедрять инновации ИИ в образование](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). Мы хотим создавать приложения с ИИ для _персонализированного обучения_, поэтому давайте подумаем, как разные пользователи нашего приложения могут «проектировать» подсказки: - -- **Администраторы** могут попросить ИИ _проанализировать данные учебной программы, чтобы выявить пробелы в охвате_. ИИ может подытожить результаты или визуализировать их с помощью кода. -- **Преподаватели** могут попросить ИИ _создать план урока для целевой аудитории и темы_. ИИ сформирует персонализированный план в заданном формате. -- **Студенты** могут попросить ИИ _помочь им с трудным предметом_. ИИ будет сопровождать студентов уроками, подсказками и примерами, адаптированными под их уровень. - -Это лишь верхушка айсберга. Ознакомьтесь с [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) — открытой библиотекой подсказок, составленной экспертами в области образования, чтобы получить более широкое представление о возможностях! _Попробуйте запустить некоторые из этих подсказок в песочнице или в OpenAI Playground и посмотрите, что получится!_ - - - -## Что такое проектирование подсказок? - -Мы начали урок с определения **проектирования подсказок** как процесса _создания и оптимизации_ текстовых входных данных (подсказок) для получения стабильных и качественных ответов (завершений) в рамках конкретной задачи и модели. Это можно представить как двухэтапный процесс: - -- _создание_ первоначальной подсказки для заданной модели и цели -- _пошаговое улучшение_ подсказки для повышения качества ответа - -Это неизбежно процесс проб и ошибок, требующий интуиции и усилий пользователя для достижения оптимальных результатов. Почему это важно? Чтобы ответить, нужно понять три ключевых понятия: - -- _Токенизация_ — как модель «видит» подсказку -- _Базовые LLM_ — как основная модель «обрабатывает» подсказку -- _Instruction-Tuned LLM_ — как модель теперь может воспринимать «задачи» - -### Токенизация - -LLM воспринимает подсказки как _последовательность токенов_, при этом разные модели (или версии одной модели) могут по-разному разбивать одну и ту же подсказку на токены. Поскольку LLM обучаются на токенах (а не на сыром тексте), способ токенизации напрямую влияет на качество сгенерированного ответа. - -Чтобы понять, как работает токенизация, попробуйте такие инструменты, как [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst), показанный ниже. Вставьте вашу подсказку и посмотрите, как она разбивается на токены, обращая внимание на обработку пробелов и знаков препинания. Обратите внимание, что пример использует более старую модель (GPT-3), поэтому с новыми моделями результат может отличаться. - -![Токенизация](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.ru.png) - -### Концепция: базовые модели - -После токенизации основная задача ["Базовой LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (или фундаментальной модели) — предсказать следующий токен в последовательности. Поскольку LLM обучены на огромных текстовых данных, они хорошо понимают статистические связи между токенами и могут делать предсказания с определённой уверенностью. При этом они не понимают _смысла_ слов в подсказке или токене; они просто видят шаблон, который могут «дополнить» следующим предсказанием. Модель продолжает предсказывать токены, пока пользователь не прервет процесс или не сработает заданное условие. - -Хотите увидеть, как работает завершение на основе подсказки? Введите приведённую выше подсказку в Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) с настройками по умолчанию. Система настроена воспринимать подсказки как запросы информации — вы должны получить ответ, соответствующий этому контексту. - -Но что если пользователь хочет получить что-то конкретное, соответствующее определённым критериям или цели задачи? Здесь на помощь приходят _instruction-tuned_ LLM. - -![Завершение чата базовой LLM](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.ru.png) - -### Концепция: Instruction-Tuned LLM - -[Instruction-Tuned LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) строится на базе фундаментальной модели и дообучается на примерах или парах вход/выход (например, многошаговых «сообщениях»), которые содержат чёткие инструкции — и модель пытается следовать этим инструкциям в ответах. - -Для этого используются методы, такие как обучение с подкреплением с человеческой обратной связью (RLHF), которые позволяют модели _следовать инструкциям_ и _учиться на обратной связи_, чтобы выдавать ответы, лучше подходящие для практических задач и более релевантные целям пользователя. - -Давайте попробуем — вернитесь к приведённой выше подсказке, но теперь измените _системное сообщение_, добавив следующую инструкцию в качестве контекста: - -> _Сделайте краткое содержание предоставленного материала для ученика второго класса. Ограничьтесь одним абзацем с 3-5 пунктами._ - -Посмотрите, как теперь результат адаптирован под заданную цель и формат. Преподаватель может сразу использовать этот ответ в своих слайдах для урока. - -![Завершение чата Instruction-Tuned LLM](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.ru.png) - -## Зачем нужно проектирование подсказок? - -Теперь, когда мы знаем, как LLM обрабатывают подсказки, поговорим о том, _почему_ нужно проектирование подсказок. Ответ кроется в том, что современные LLM имеют ряд особенностей, которые усложняют получение _надёжных и последовательных ответов_ без усилий по созданию и оптимизации подсказок. Например: - -1. **Ответы модели стохастичны.** _Одна и та же подсказка_ может привести к разным ответам на разных моделях или версиях модели. Более того, даже на _одной и той же модели_ ответы могут отличаться при повторных запросах. _Методы проектирования подсказок помогают минимизировать эти вариации, задавая более чёткие рамки_. - -2. **Модели могут выдумывать ответы.** Модели обучены на _больших, но конечных_ наборах данных, поэтому им не хватает знаний о концепциях вне области обучения. В результате они могут выдавать неточные, вымышленные или противоречащие фактам ответы. _Проектирование подсказок помогает выявлять и снижать такие выдумки, например, запрашивая у ИИ ссылки или объяснения_. - -3. **Возможности моделей различаются.** Новые модели или поколения моделей обладают более широкими возможностями, но также имеют свои особенности и компромиссы по стоимости и сложности. _Проектирование подсказок помогает выработать лучшие практики и рабочие процессы, которые абстрагируют различия и адаптируются к требованиям конкретных моделей в масштабируемом и удобном формате_. - -Давайте посмотрим на это на практике в OpenAI или Azure OpenAI Playground: - -- Используйте одну и ту же подсказку с разными развертываниями LLM (например, OpenAI, Azure OpenAI, Hugging Face) — заметили ли вы различия? -- Используйте одну и ту же подсказку несколько раз с _одним и тем же_ развертыванием LLM (например, Azure OpenAI playground) — как отличались ответы? - -### Пример выдумок - -В этом курсе мы используем термин **«выдумка»** для обозначения явления, когда LLM иногда генерируют фактически неверную информацию из-за ограничений обучения или других факторов. Вы, возможно, слышали об этом как о _«галлюцинациях»_ в популярных статьях или научных публикациях. Однако мы настоятельно рекомендуем использовать термин _«выдумка»_, чтобы не приписывать машине человеческие черты и не антропоморфизировать поведение. Это также соответствует [Руководству по ответственному ИИ](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) с точки зрения терминологии, исключая слова, которые могут быть восприняты как оскорбительные или неинклюзивные в некоторых контекстах. - -Хотите понять, как работают выдумки? Представьте подсказку, которая просит ИИ создать контент по несуществующей теме (чтобы гарантировать, что её нет в обучающем наборе). Например, я попробовал такую подсказку: -# План урока: Война на Марсе 2076 года - -## Цели урока -- Познакомить учащихся с основными событиями Войны на Марсе 2076 года. -- Проанализировать причины и последствия конфликта. -- Развить навыки критического мышления через обсуждение стратегий и решений сторон. - -## Введение (10 минут) -- Краткий обзор исторического контекста: освоение Марса и напряжённость между Землёй и марсианскими колониями. -- Объяснение ключевых терминов и участников конфликта. - -## Основная часть (30 минут) -### Ход войны -- Обсуждение основных этапов войны: начало, ключевые сражения, переломные моменты. -- Роль технологий и инноваций в боевых действиях. -- Влияние войны на гражданское население Марса и Земли. - -### Анализ причин -- Политические и экономические факторы, приведшие к конфликту. -- Социальные и культурные различия между колонистами и земными властями. - -## Практическое задание (15 минут) -- Разделить класс на группы и предложить разработать стратегию для одной из сторон конфликта. -- Обсуждение предложенных стратегий и их возможных последствий. - -## Заключение (5 минут) -- Подведение итогов урока. -- Обсуждение уроков, которые можно извлечь из Войны на Марсе 2076 года. -- Ответы на вопросы учащихся. - -## Рекомендуемая литература и ресурсы -- Ссылки на статьи и книги по теме. -- Документальные фильмы и интервью с экспертами. -Веб-поиск показал, что существуют вымышленные рассказы (например, телесериалы или книги) о марсианских войнах — но ни одного, относящегося к 2076 году. Здравый смысл также подсказывает, что 2076 год — это _будущее_, и, следовательно, не может быть связан с реальным событием. - -Итак, что происходит, когда мы запускаем этот запрос у разных провайдеров LLM? - -> **Ответ 1**: OpenAI Playground (GPT-35) - -![Ответ 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.ru.png) - -> **Ответ 2**: Azure OpenAI Playground (GPT-35) - -![Ответ 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.ru.png) - -> **Ответ 3**: : Hugging Face Chat Playground (LLama-2) - -![Ответ 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.ru.png) - -Как и ожидалось, каждая модель (или версия модели) выдает немного разные ответы благодаря стохастическому поведению и различиям в возможностях моделей. Например, одна модель ориентирована на аудиторию восьмого класса, а другая — на старшеклассников. Но все три модели сгенерировали ответы, которые могли бы убедить неподготовленного пользователя в реальности события. - -Техники prompt engineering, такие как _метапромптинг_ и _настройка температуры_, могут в некоторой степени снизить количество выдумок моделей. Новые _архитектуры_ prompt engineering также бесшовно интегрируют новые инструменты и методы в поток промпта, чтобы смягчить или уменьшить некоторые из этих эффектов. - -## Кейс-стади: GitHub Copilot - -Завершим этот раздел, рассмотрев, как prompt engineering используется в реальных решениях, на примере одного кейс-стади: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot — это ваш «ИИ-партнёр по программированию»: он преобразует текстовые подсказки в завершения кода и интегрирован в вашу среду разработки (например, Visual Studio Code) для бесшовного пользовательского опыта. Как описано в серии блогов ниже, самая ранняя версия была основана на модели OpenAI Codex — инженеры быстро поняли необходимость дообучения модели и разработки лучших техник prompt engineering для улучшения качества кода. В июле они [представили улучшенную ИИ-модель, которая превосходит Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) и обеспечивает ещё более быстрые предложения. - -Читайте посты по порядку, чтобы проследить их путь обучения. - -- **Май 2023** | [GitHub Copilot становится лучше в понимании вашего кода](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **Май 2023** | [Внутри GitHub: работа с LLM, стоящими за GitHub Copilot](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Июнь 2023** | [Как писать лучшие подсказки для GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Июль 2023** | [GitHub Copilot превосходит Codex с улучшенной ИИ-моделью](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Июль 2023** | [Руководство разработчика по prompt engineering и LLM](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **Сентябрь 2023** | [Как создать корпоративное LLM-приложение: уроки от GitHub Copilot](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -Вы также можете просмотреть их [инженерный блог](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) для других публикаций, например, [этой](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst), которая показывает, как эти модели и техники _применяются_ для создания реальных приложений. - ---- - - - -## Конструирование промпта - -Мы уже поняли, почему prompt engineering важен — теперь давайте разберёмся, как именно _строятся_ промпты, чтобы оценить разные техники для более эффективного дизайна промптов. - -### Базовый промпт - -Начнём с базового промпта: текстового ввода, отправляемого модели без дополнительного контекста. Вот пример — когда мы отправляем первые несколько слов национального гимна США в OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst), он мгновенно _дополняет_ ответ следующими строками, демонстрируя базовое поведение предсказания. - -| Промпт (ввод) | Завершение (вывод) | -| :------------------ | :---------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | Похоже, вы начинаете текст гимна США "The Star-Spangled Banner". Полный текст звучит так... | - -### Сложный промпт - -Теперь добавим контекст и инструкции к базовому промпту. [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) позволяет строить сложный промпт как набор _сообщений_ с: - -- парами ввод/вывод, отражающими _ввод пользователя_ и _ответ ассистента_ -- системным сообщением, задающим контекст поведения или личности ассистента - -Запрос теперь выглядит так, где _токенизация_ эффективно захватывает релевантную информацию из контекста и диалога. Изменение системного контекста может оказывать такое же сильное влияние на качество ответов, как и ввод пользователя. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Инструктивный промпт - -В приведённых выше примерах пользовательский промпт был простым текстовым запросом, который можно интерпретировать как просьбу о информации. С _инструктивными_ промптами мы можем использовать этот текст для более детального задания задачи, давая ИИ более чёткие указания. Вот пример: - -| Промпт (ввод) | Завершение (вывод) | Тип инструкции | -| :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Напишите описание Гражданской войны | _вернул простой абзац_ | Простой | -| Напишите описание Гражданской войны. Укажите ключевые даты и события, опишите их значение | _вернул абзац с последующим списком ключевых дат и описаний событий_ | Сложный | -| Напишите описание Гражданской войны в 1 абзаце. Укажите 3 пункта с ключевыми датами и их значением. Добавьте 3 пункта с ключевыми историческими личностями и их вкладом. Верните результат в формате JSON-файла | _возвращает более подробную информацию в текстовом блоке, отформатированном как JSON, который можно скопировать и проверить_ | Сложный. Отформатирован. | - -## Основное содержимое - -В приведённых выше примерах промпт всё ещё был достаточно открытым, позволяя LLM самостоятельно выбирать релевантную часть предобученных данных. С паттерном _основного содержимого_ входной текст делится на две части: - -- инструкция (действие) -- релевантный контент (влияющий на действие) - -Вот пример, где инструкция — «сократи это до 2 предложений». - -| Промпт (ввод) | Завершение (вывод) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Юпитер — пятая планета от Солнца и самая крупная в Солнечной системе. Это газовый гигант с массой в одну тысячную от массы Солнца, но в два с половиной раза больше массы всех остальных планет Солнечной системы вместе взятых. Юпитер — один из самых ярких объектов, видимых невооружённым глазом на ночном небе, и известен древним цивилизациям ещё до начала письменной истории. Он назван в честь римского бога Юпитера.[19] При наблюдении с Земли Юпитер может быть достаточно ярким, чтобы отражённый свет отбрасывал видимые тени,[20] и в среднем является третьим по яркости естественным объектом на ночном небе после Луны и Венеры.
**Сократите это до 2 коротких предложений** | Юпитер, пятая планета от Солнца, является крупнейшей в Солнечной системе и одним из самых ярких объектов на ночном небе. Названный в честь римского бога Юпитера, он — газовый гигант с массой в два с половиной раза больше массы всех остальных планет вместе взятых. | - -Сегмент основного содержимого можно использовать по-разному для более эффективных инструкций: - -- **Примеры** — вместо явного указания модели, что делать, дайте ей примеры желаемого результата и позвольте вывести закономерность. -- **Подсказки** — следом за инструкцией добавьте «подсказку», которая задаёт тон завершению, направляя модель к более релевантным ответам. -- **Шаблоны** — это повторяемые «рецепты» промптов с заполнителями (переменными), которые можно настраивать данными для конкретных случаев. - -Давайте рассмотрим эти подходы на практике. - -### Использование примеров - -Это подход, при котором вы используете основное содержимое, чтобы «покормить модель» примерами желаемого результата для данной задачи и позволить ей вывести закономерность. В зависимости от количества примеров различают zero-shot, one-shot, few-shot prompting и т.д. - -Промпт теперь состоит из трёх компонентов: - -- описание задачи -- несколько примеров желаемого результата -- начало нового примера (которое становится неявным описанием задачи) - -| Тип обучения | Промпт (ввод) | Завершение (вывод) | -| :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| Zero-shot | "The Sun is Shining". Переведите на испанский | "El Sol está brillando". | -| One-shot | "The Sun is Shining" => "El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| Few-shot | Игрок пробежал базы => Бейсбол
Игрок сделал эйс => Теннис
Игрок сделал шесть очков => Крикет
Игрок забил слэм-данк => | Баскетбол | -| | | | - -Обратите внимание, что в zero-shot prompting нам пришлось явно указывать инструкцию («Переведите на испанский»), а в one-shot она уже выводится из примера. Few-shot показывает, как добавление большего числа примеров позволяет моделям делать более точные выводы без дополнительных инструкций. - -### Подсказки в промпте - -Другой техникой использования основного содержимого является предоставление _подсказок_ вместо примеров. В этом случае мы даём модели небольшой толчок, _начинаем_ с фрагмента, отражающего желаемый формат ответа. Модель «ловит подсказку» и продолжает в том же духе. - -| Количество подсказок | Промпт (ввод) | Завершение (вывод) | -| :------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Юпитер — пятая планета от Солнца и самая крупная в Солнечной системе. Это газовый гигант с массой в одну тысячную от массы Солнца, но в два с половиной раза больше массы всех остальных планет Солнечной системы вместе взятых. Юпитер — один из самых ярких объектов, видимых невооружённым глазом на ночном небе, и известен древним цивилизациям ещё до начала письменной истории. - -**Summarize This** | Юпитер — самая большая планета в нашей Солнечной системе и пятая по удалённости от Солнца. Это газовый гигант с массой, составляющей одну тысячную часть массы Солнца, но при этом он тяжелее всех остальных планет вместе взятых. Древние цивилизации знали о Юпитере давно, и он легко виден на ночном небе. | -| 1 | Юпитер — пятая планета от Солнца и самая крупная в Солнечной системе. Это газовый гигант с массой, равной одной тысячной части массы Солнца, но в два с половиной раза тяжелее всех остальных планет Солнечной системы вместе взятых. Юпитер — один из самых ярких объектов, видимых невооружённым глазом на ночном небе, и он известен древним цивилизациям ещё до начала письменной истории.
**Summarize This**
Что мы узнали: Юпитер | — пятая планета от Солнца и самая крупная в Солнечной системе. Это газовый гигант с массой, равной одной тысячной части массы Солнца, но в два с половиной раза тяжелее всех остальных планет вместе взятых. Он легко виден невооружённым глазом и известен с древних времён. | -| 2 | Юпитер — пятая планета от Солнца и самая крупная в Солнечной системе. Это газовый гигант с массой, равной одной тысячной части массы Солнца, но в два с половиной раза тяжелее всех остальных планет Солнечной системы вместе взятых. Юпитер — один из самых ярких объектов, видимых невооружённым глазом на ночном небе, и он известен древним цивилизациям ещё до начала письменной истории.
**Summarize This**
Топ-3 факта, которые мы узнали: | 1. Юпитер — пятая планета от Солнца и самая крупная в Солнечной системе.
2. Это газовый гигант с массой, равной одной тысячной части массы Солнца...
3. Юпитер виден невооружённым глазом с древних времён ... | -| | | | - -### Шаблоны подсказок - -Шаблон подсказки — это _предопределённый рецепт для подсказки_, который можно сохранить и использовать повторно по мере необходимости, чтобы обеспечить более последовательный пользовательский опыт в масштабах. В своей простой форме это просто набор примеров подсказок, как [этот от OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst), который включает как интерактивные компоненты подсказки (сообщения пользователя и системы), так и формат запроса через API — для поддержки повторного использования. - -В более сложной форме, как [пример от LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst), он содержит _заполнители_, которые можно заменить данными из разных источников (ввод пользователя, контекст системы, внешние источники данных и т.д.) для динамической генерации подсказки. Это позволяет создавать библиотеку повторно используемых подсказок, которые можно применять для обеспечения последовательного пользовательского опыта **программно** в масштабах. - -Наконец, настоящая ценность шаблонов заключается в возможности создавать и публиковать _библиотеки подсказок_ для конкретных прикладных областей — где шаблон подсказки _оптимизирован_ с учётом специфики приложения или примеров, делающих ответы более релевантными и точными для целевой аудитории. Репозиторий [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) — отличный пример такого подхода, где собрана библиотека подсказок для образовательной сферы с акцентом на ключевые задачи, такие как планирование уроков, разработка учебных программ, помощь студентам и т.д. - -## Вспомогательный контент - -Если рассматривать построение подсказки как наличие инструкции (задачи) и цели (основного контента), то _вторичный контент_ — это дополнительный контекст, который мы предоставляем, чтобы **как-то повлиять на результат**. Это могут быть параметры настройки, инструкции по форматированию, таксономии тем и т.п., которые помогают модели _адаптировать_ ответ под нужные цели или ожидания пользователя. - -Например: Имеется каталог курсов с обширными метаданными (название, описание, уровень, теги, преподаватель и т.д.) по всем доступным курсам в учебной программе: - -- можно задать инструкцию «сделать краткое содержание каталога курсов на осень 2023» -- использовать основной контент, чтобы привести несколько примеров желаемого результата -- использовать вторичный контент, чтобы выделить топ-5 интересующих «тегов». - -Теперь модель может предоставить сводку в формате, показанном в примерах — но если у результата несколько тегов, она сможет приоритизировать 5 тегов, указанных во вторичном контенте. - ---- - - - -## Лучшие практики создания подсказок - -Теперь, когда мы знаем, как подсказки _строятся_, можно задуматься о том, как их _проектировать_, чтобы они соответствовали лучшим практикам. Можно рассмотреть это в двух аспектах — правильный _образ мышления_ и применение правильных _техник_. - -### Образ мышления в Prompt Engineering - -Создание подсказок — это процесс проб и ошибок, поэтому держите в голове три основных принципа: - -1. **Важна экспертиза в предметной области.** Точность и релевантность ответа зависят от _домена_, в котором работает приложение или пользователь. Используйте свою интуицию и знания предметной области, чтобы **адаптировать техники**. Например, задавайте _доменно-специфичные личности_ в системных подсказках или используйте _доменно-специфичные шаблоны_ в пользовательских подсказках. Предоставляйте вторичный контент, отражающий контексты домена, или используйте _доменно-специфичные сигналы и примеры_, чтобы направить модель к знакомым паттернам. - -2. **Важны особенности модели.** Мы знаем, что модели по своей природе стохастичны. Но реализации моделей могут отличаться по используемым тренировочным данным (предварительные знания), возможностям (например, через API или SDK) и типу контента, для которого они оптимизированы (код, изображения, текст и т.д.). Понимайте сильные и слабые стороны используемой модели и применяйте эти знания, чтобы _приоритизировать задачи_ или создавать _кастомизированные шаблоны_, оптимизированные под возможности модели. - -3. **Важны итерации и проверка.** Модели быстро развиваются, как и техники создания подсказок. Как эксперт в домене, у вас могут быть свои критерии и контекст, которые не всегда применимы к широкой аудитории. Используйте инструменты и техники prompt engineering, чтобы «быстро запустить» создание подсказок, затем итеративно улучшайте и проверяйте результаты, опираясь на свою интуицию и знания. Записывайте свои наблюдения и создавайте **базу знаний** (например, библиотеки подсказок), которую смогут использовать другие для более быстрых итераций в будущем. - -## Лучшие практики - -Рассмотрим распространённые рекомендации от специалистов [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) и [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst). - -| Что | Почему | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Оценивайте последние модели | Новые поколения моделей, вероятно, обладают улучшенными функциями и качеством — но могут быть и дороже. Оценивайте их влияние, прежде чем принимать решение о миграции. | -| Разделяйте инструкции и контекст | Проверьте, использует ли ваша модель/провайдер _разделители_ для чёткого разграничения инструкций, основного и вторичного контента. Это помогает модели точнее распределять вес токенов. | -| Будьте конкретны и ясны | Указывайте больше деталей о желаемом контексте, результате, длине, формате, стиле и т.п. Это улучшит качество и последовательность ответов. Фиксируйте рецепты в повторно используемых шаблонах. | -| Будьте описательны, используйте примеры | Модели лучше реагируют на подход «показать и рассказать». Начинайте с `zero-shot` — даёте инструкцию без примеров, затем пробуйте `few-shot` — с несколькими примерами желаемого результата. Используйте аналогии. | -| Используйте сигналы для запуска ответов | Подталкивайте модель к нужному результату, давая ей начальные слова или фразы, которые она может использовать как отправную точку для ответа. | -| Повторяйте при необходимости | Иногда нужно повторить инструкцию модели. Давайте инструкции до и после основного контента, используйте инструкцию и сигнал, и т.д. Итеративно проверяйте, что работает лучше. | -| Порядок важен | Порядок подачи информации модели может влиять на результат, даже в обучающих примерах, из-за эффекта свежести. Пробуйте разные варианты, чтобы понять, что лучше. | -| Дайте модели «выход» | Предоставьте модели _резервный_ ответ, который она может использовать, если не сможет выполнить задачу. Это снижает вероятность ложных или выдуманных ответов. | -| | | - -Как и с любой лучшей практикой, помните, что _ваши результаты могут отличаться_ в зависимости от модели, задачи и домена. Используйте эти рекомендации как отправную точку и итеративно подбирайте то, что работает лучше для вас. Постоянно переоценивайте процесс создания подсказок по мере появления новых моделей и инструментов, уделяя внимание масштабируемости процесса и качеству ответов. - - - -## Задание - -Поздравляем! Вы дошли до конца урока! Пора применить некоторые из изученных концепций и техник на практике с реальными примерами! - -Для нашего задания мы будем использовать Jupyter Notebook с упражнениями, которые можно выполнять интерактивно. Вы также можете расширять ноутбук своими Markdown и кодовыми ячейками, чтобы самостоятельно исследовать идеи и техники. - -### Для начала сделайте форк репозитория, затем - -- (Рекомендуется) Запустите GitHub Codespaces -- (Или) Клонируйте репозиторий на локальное устройство и используйте с Docker Desktop -- (Или) Откройте ноутбук в предпочитаемой среде выполнения Jupyter - -### Далее настройте переменные окружения - -- Скопируйте файл `.env.copy` из корня репозитория в `.env` и заполните значения `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` и `AZURE_OPENAI_DEPLOYMENT`. Затем вернитесь к разделу [Learning Sandbox](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals), чтобы узнать, как это сделать. - -### Затем откройте Jupyter Notebook - -- Выберите ядро выполнения. Если используете варианты 1 или 2, просто выберите стандартное ядро Python 3.10.x, предоставляемое контейнером разработчика. - -Теперь вы готовы выполнять упражнения. Обратите внимание, что здесь нет _правильных или неправильных_ ответов — просто исследование вариантов методом проб и ошибок и развитие интуиции, что работает для конкретной модели и области применения. - -_По этой причине в уроке нет разделов с готовыми решениями кода. Вместо этого в ноутбуке будут Markdown ячейки с заголовком «Моё решение:», где приведён один пример результата для ориентира._ - - - -## Проверка знаний - -Какой из следующих вариантов является хорошей подсказкой, соответствующей разумным лучшим практикам? - -1. Покажи мне изображение красной машины -2. Покажи мне изображение красной машины марки Volvo модели XC90, припаркованной у обрыва на фоне заходящего солнца -3. Покажи мне изображение красной машины марки Volvo модели XC90 - -Ответ: 2 — это лучшая подсказка, так как она даёт подробности о «чём» и конкретизирует (не просто машина, а конкретная марка и модель), а также описывает общий контекст. 3 — следующий по качеству вариант, так как тоже содержит много описания. - -## 🚀 Задание - -Попробуйте применить технику «сигнала» с подсказкой: Дополните предложение «Покажи мне изображение красной машины марки Volvo и ». Что модель ответит, и как бы вы улучшили подсказку? - -## Отличная работа! Продолжайте обучение - -Хотите узнать больше о различных концепциях Prompt Engineering? Перейдите на [страницу продолжения обучения](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst), где собраны другие полезные ресурсы по этой теме. - -Далее перейдите к уроку 5, где мы рассмотрим [продвинутые техники создания подсказок](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**Отказ от ответственности**: -Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия по обеспечению точности, просим учитывать, что автоматический перевод может содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется обращаться к профессиональному переводу, выполненному человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода. \ No newline at end of file + + + + + + + diff --git a/translations/ru/09-building-image-applications/README.md b/translations/ru/09-building-image-applications/README.md index e727eaaef..125a004a0 100644 --- a/translations/ru/09-building-image-applications/README.md +++ b/translations/ru/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# Создание приложений для генерации изображений - -[![Создание приложений для генерации изображений](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.ru.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLM — это не только генерация текста. Также можно создавать изображения на основе текстовых описаний. Использование изображений как модальности может быть очень полезным во многих сферах: от медицины и архитектуры до туризма, разработки игр и других областей. В этой главе мы рассмотрим два самых популярных модели генерации изображений — DALL-E и Midjourney. - -## Введение - -В этом уроке мы рассмотрим: - -- Генерацию изображений и её полезность. -- Что такое DALL-E и Midjourney, и как они работают. -- Как создать приложение для генерации изображений. - -## Цели обучения - -После прохождения этого урока вы сможете: - -- Создавать приложение для генерации изображений. -- Определять границы вашего приложения с помощью мета-промптов. -- Работать с DALL-E и Midjourney. - -## Зачем создавать приложение для генерации изображений? - -Приложения для генерации изображений — отличный способ исследовать возможности генеративного ИИ. Их можно использовать, например, для: - -- **Редактирования и синтеза изображений**. Вы можете создавать изображения для разных задач, таких как редактирование и синтез. - -- **Применения в различных отраслях**. Их также можно использовать для создания изображений в таких сферах, как медицина, туризм, разработка игр и другие. - -## Сценарий: Edu4All - -В рамках этого урока мы продолжим работать с нашим стартапом Edu4All. Студенты будут создавать изображения для своих заданий — какие именно, решают они сами: это могут быть иллюстрации к собственной сказке, создание нового персонажа для истории или визуализация идей и концепций. - -Вот что студенты Edu4All могли бы создать, если работают в классе над темой памятников: - -![Edu4All startup, class on monuments, Eiffel Tower](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.ru.png) - -используя такой промпт - -> "Собака рядом с Эйфелевой башней на рассвете" - -## Что такое DALL-E и Midjourney? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) и [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) — две из самых популярных моделей генерации изображений, которые позволяют создавать картинки по текстовым запросам. - -### DALL-E - -Начнём с DALL-E — это модель генеративного ИИ, которая создаёт изображения на основе текстовых описаний. - -> [DALL-E — это сочетание двух моделей, CLIP и diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP** — модель, которая создаёт эмбеддинги, то есть числовые представления данных, из изображений и текста. - -- **Diffused attention** — модель, которая генерирует изображения из эмбеддингов. DALL-E обучена на наборе данных из изображений и текстов и может создавать картинки по текстовым описаниям. Например, DALL-E может сгенерировать изображение кота в шляпе или собаки с ирокезом. - -### Midjourney - -Midjourney работает похожим образом — она создаёт изображения по текстовым промптам. Midjourney также может генерировать картинки по запросам вроде «кот в шляпе» или «собака с ирокезом». - -![Изображение, созданное Midjourney, механический голубь](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Источник изображения: Wikipedia, создано Midjourney_ - -## Как работают DALL-E и Midjourney - -Сначала о [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). DALL-E — это модель генеративного ИИ на основе архитектуры трансформера с _авторегрессионным трансформером_. - -_Авторегрессионный трансформер_ описывает, как модель создаёт изображения из текстовых описаний: она генерирует по одному пикселю за раз, используя уже сгенерированные пиксели для создания следующего. Проходя через несколько слоёв нейронной сети, пока изображение не будет полностью сформировано. - -Таким образом, DALL-E контролирует атрибуты, объекты, характеристики и другие детали создаваемого изображения. Однако DALL-E 2 и 3 обеспечивают ещё более точный контроль над результатом. - -## Создание вашего первого приложения для генерации изображений - -Что нужно для создания приложения генерации изображений? Вам понадобятся следующие библиотеки: - -- **python-dotenv** — настоятельно рекомендуется использовать эту библиотеку, чтобы хранить секреты в файле _.env_, отдельно от кода. -- **openai** — библиотека для взаимодействия с OpenAI API. -- **pillow** — для работы с изображениями в Python. -- **requests** — для выполнения HTTP-запросов. - -1. Создайте файл _.env_ со следующим содержимым: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Найдите эту информацию в Azure Portal для вашего ресурса в разделе «Keys and Endpoint». - -1. Соберите перечисленные библиотеки в файл _requirements.txt_ следующим образом: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. Затем создайте виртуальное окружение и установите библиотеки: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Для Windows используйте следующие команды для создания и активации виртуального окружения: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. Добавьте следующий код в файл _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Объясним этот код: - -- Сначала импортируем необходимые библиотеки, включая OpenAI, dotenv, requests и Pillow. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Затем загружаем переменные окружения из файла _.env_. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- После этого задаём endpoint, ключ для OpenAI API, версию и тип. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- Далее генерируем изображение: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - Этот код возвращает JSON-объект с URL сгенерированного изображения. Мы можем использовать этот URL, чтобы скачать изображение и сохранить его в файл. - -- Наконец, открываем изображение и показываем его с помощью стандартного просмотрщика: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Подробнее о генерации изображения - -Рассмотрим код генерации изображения более подробно: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** — текстовый запрос для генерации изображения. В данном случае это «Заяц на лошади, держащий леденец, на туманном лугу, где растут нарциссы». -- **size** — размер создаваемого изображения. Здесь это 1024x1024 пикселей. -- **n** — количество создаваемых изображений. Здесь создаются два изображения. -- **temperature** — параметр, контролирующий случайность результата генеративной модели. Значение от 0 до 1, где 0 означает детерминированный результат, а 1 — максимально случайный. Значение по умолчанию — 0.7. - -В следующем разделе мы рассмотрим дополнительные возможности работы с изображениями. - -## Дополнительные возможности генерации изображений - -Вы уже видели, как можно создать изображение всего несколькими строками кода на Python. Но с изображениями можно делать гораздо больше. - -Вы также можете: - -- **Вносить изменения**. Предоставив существующее изображение, маску и промпт, можно изменить картинку. Например, добавить что-то на часть изображения. Представьте наше изображение с зайцем — можно добавить ему шляпу. Для этого нужно предоставить исходное изображение, маску (обозначающую область для изменения) и текстовый запрос, описывающий, что нужно сделать. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - Исходное изображение содержит только зайца, а итоговое — зайца в шляпе. - -- **Создавать вариации**. Идея в том, чтобы взять существующее изображение и попросить создать его вариации. Для этого нужно предоставить изображение и текстовый запрос, а затем использовать такой код: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Обратите внимание, что эта функция поддерживается только в OpenAI. - -## Температура - -Температура — параметр, который регулирует случайность результата генеративной модели. Значение от 0 до 1, где 0 означает детерминированный результат, а 1 — максимально случайный. Значение по умолчанию — 0.7. - -Рассмотрим пример работы температуры, выполнив этот промпт дважды: - -> Промпт: "Заяц на лошади, держащий леденец, на туманном лугу, где растут нарциссы" - -![Заяц на лошади с леденцом, версия 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.ru.png) - -Теперь выполним тот же промпт ещё раз, чтобы убедиться, что изображения не будут одинаковыми: - -![Сгенерированное изображение зайца на лошади](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.ru.png) - -Как видите, изображения похожи, но не идентичны. Попробуем изменить значение температуры на 0.1 и посмотрим, что получится: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Изменение температуры - -Попробуем сделать результат более детерминированным. По двум сгенерированным изображениям видно, что в первом изображён заяц, а во втором — лошадь, то есть картинки сильно отличаются. - -Поэтому изменим код и установим температуру в 0: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Теперь при запуске этого кода вы получите следующие два изображения: - -- ![Температура 0, версия 1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.ru.png) -- ![Температура 0, версия 2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.ru.png) - -Здесь видно, что изображения стали гораздо более похожими друг на друга. - -## Как определить границы для вашего приложения с помощью мета-промптов - -С нашим демо мы уже можем генерировать изображения для клиентов. Однако нам нужно задать некоторые ограничения для приложения. - -Например, мы не хотим создавать изображения, которые не подходят для работы или неуместны для детей. - -Это можно сделать с помощью _мета-промптов_. Мета-промпты — это текстовые запросы, которые используются для контроля вывода генеративной модели. Например, с их помощью можно гарантировать, что создаваемые изображения будут безопасными для работы или подходящими для детей. - -### Как это работает? - -Итак, как работают мета-промпты? - -Мета-промпты — это текстовые запросы, которые размещаются перед основным промптом и служат для контроля вывода модели. Они встроены в приложения для управления результатом, объединяя ввод основного промпта и мета-промпта в один текстовый запрос. - -Пример мета-промпта: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Теперь посмотрим, как использовать мета-промпты в нашем демо. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -Из приведённого промпта видно, что все создаваемые изображения учитывают мета-промпт. - -## Задание — давайте дадим возможность студентам - -В начале урока мы познакомились со стартапом Edu4All. Теперь пришло время дать студентам возможность создавать изображения для своих заданий. - -Студенты будут создавать изображения с памятниками, какие именно — решают они сами. Им предлагается проявить творческий подход и разместить памятники в разных контекстах. - -## Решение - -Вот один из возможных вариантов решения: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Отличная работа! Продолжайте обучение - -После прохождения этого урока ознакомьтесь с нашей [коллекцией по генеративному ИИ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst), чтобы продолжить развивать свои знания в области генеративного ИИ! - -Переходите к уроку 10, где мы рассмотрим, как [создавать AI-приложения с помощью low-code](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**Отказ от ответственности**: -Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия по обеспечению точности, просим учитывать, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется обращаться к профессиональному человеческому переводу. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода. \ No newline at end of file + + + + diff --git a/translations/ru/12-designing-ux-for-ai-applications/README.md b/translations/ru/12-designing-ux-for-ai-applications/README.md index 4b1113cf8..fbf1c99ed 100644 --- a/translations/ru/12-designing-ux-for-ai-applications/README.md +++ b/translations/ru/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# Проектирование UX для AI-приложений - -[![Проектирование UX для AI-приложений](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.ru.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Нажмите на изображение выше, чтобы посмотреть видео этого урока)_ - -Пользовательский опыт — очень важный аспект при создании приложений. Пользователи должны иметь возможность эффективно использовать ваше приложение для выполнения задач. Эффективность — это одно, но также нужно проектировать приложения так, чтобы ими могли пользоваться все, делая их _доступными_. В этой главе мы сосредоточимся именно на этом, чтобы в итоге вы создали приложение, которое люди смогут и захотят использовать. - -## Введение - -Пользовательский опыт — это то, как пользователь взаимодействует и использует конкретный продукт или услугу, будь то система, инструмент или дизайн. При разработке AI-приложений разработчики уделяют внимание не только эффективности пользовательского опыта, но и этичности. В этом уроке мы рассмотрим, как создавать приложения с искусственным интеллектом (AI), которые отвечают потребностям пользователей. - -В уроке будут рассмотрены следующие темы: - -- Введение в пользовательский опыт и понимание потребностей пользователей -- Проектирование AI-приложений с учетом доверия и прозрачности -- Проектирование AI-приложений для сотрудничества и обратной связи - -## Цели обучения - -После прохождения этого урока вы сможете: - -- Понимать, как создавать AI-приложения, которые удовлетворяют потребности пользователей. -- Проектировать AI-приложения, способствующие доверию и сотрудничеству. - -### Предварительные знания - -Выделите время и прочитайте больше о [пользовательском опыте и дизайн-мышлении.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Введение в пользовательский опыт и понимание потребностей пользователей - -В нашем вымышленном образовательном стартапе есть два основных типа пользователей — учителя и студенты. У каждого из них свои уникальные потребности. Ориентированный на пользователя дизайн ставит пользователя в центр внимания, обеспечивая релевантность и пользу продуктов для тех, для кого они предназначены. - -Приложение должно быть **полезным, надежным, доступным и приятным** для обеспечения хорошего пользовательского опыта. - -### Удобство использования - -Полезность означает, что приложение обладает функционалом, соответствующим его назначению, например, автоматизация процесса оценки или создание карточек для повторения. Приложение, автоматизирующее оценивание, должно точно и эффективно выставлять оценки работам студентов на основе заранее заданных критериев. Аналогично, приложение для создания карточек должно генерировать релевантные и разнообразные вопросы на основе имеющихся данных. - -### Надежность - -Надежность означает, что приложение способно выполнять свои задачи стабильно и без ошибок. Однако AI, как и люди, не совершенен и может допускать ошибки. Приложения могут столкнуться с ошибками или непредвиденными ситуациями, требующими вмешательства или корректировки человеком. Как вы справляетесь с ошибками? В последнем разделе урока мы рассмотрим, как проектировать AI-системы и приложения для сотрудничества и обратной связи. - -### Доступность - -Доступность означает расширение пользовательского опыта на пользователей с разными возможностями, включая людей с ограниченными возможностями, чтобы никто не остался в стороне. Следуя принципам и рекомендациям по доступности, AI-решения становятся более инклюзивными, удобными и полезными для всех пользователей. - -### Приятность использования - -Приятность означает, что приложение доставляет удовольствие при использовании. Привлекательный пользовательский опыт положительно влияет на пользователя, побуждая его возвращаться к приложению и увеличивая доходы бизнеса. - -![изображение, иллюстрирующее аспекты UX в AI](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.ru.png) - -Не все задачи можно решить с помощью AI. AI дополняет ваш пользовательский опыт, автоматизируя рутинные задачи или персонализируя взаимодействие. - -## Проектирование AI-приложений с учетом доверия и прозрачности - -Построение доверия — ключевой момент при проектировании AI-приложений. Доверие гарантирует, что пользователь уверен: приложение выполнит работу, будет стабильно выдавать результаты, и эти результаты соответствуют его потребностям. Риски в этой области — недоверие и избыточное доверие. Недоверие возникает, когда пользователь почти не доверяет AI-системе, что ведет к отказу от использования приложения. Избыточное доверие — когда пользователь переоценивает возможности AI, что приводит к чрезмерному доверию. Например, при избыточном доверии к автоматизированной системе оценивания учитель может не проверять некоторые работы, что приведет к несправедливым или неточным оценкам, а также упущенным возможностям для обратной связи и улучшения. - -Два способа обеспечить, чтобы доверие было в центре дизайна — это объяснимость и контроль. - -### Объяснимость - -Когда AI помогает принимать решения, например, передавать знания будущим поколениям, важно, чтобы учителя и родители понимали, как принимаются решения AI. Это и есть объяснимость — понимание того, как AI-приложения принимают решения. Проектирование с учетом объяснимости включает добавление примеров того, что может делать AI-приложение. Например, вместо «Начать работу с AI-учителем» система может использовать: «Сократите свои заметки для удобного повторения с помощью AI.» - -![страница приложения с четкой иллюстрацией объяснимости в AI-приложениях](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.ru.png) - -Другой пример — как AI использует пользовательские и личные данные. Например, у пользователя с ролью студента могут быть ограничения, основанные на его роли. AI может не раскрывать ответы на вопросы, но поможет направить пользователя, чтобы он сам подумал, как решить задачу. - -![AI отвечает на вопросы в зависимости от роли пользователя](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.ru.png) - -Еще один важный аспект объяснимости — упрощение объяснений. Студенты и учителя могут не быть экспертами в AI, поэтому объяснения того, что приложение может или не может делать, должны быть простыми и понятными. - -![упрощенные объяснения возможностей AI](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.ru.png) - -### Контроль - -Генеративный AI создает сотрудничество между AI и пользователем, где, например, пользователь может изменять запросы для получения разных результатов. Кроме того, после генерации результата пользователи должны иметь возможность его редактировать, что дает им ощущение контроля. Например, при использовании Bing вы можете настроить запрос по формату, тону и длине. Также можно вносить изменения в результат, как показано ниже: - -![Результаты поиска Bing с возможностью изменить запрос и результат](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.ru.png) - -Еще одна функция Bing, дающая пользователю контроль над приложением — возможность согласиться или отказаться от использования данных AI. В школьном приложении студент может захотеть использовать свои заметки, а также ресурсы учителей для повторения. - -![Результаты поиска Bing с возможностью изменить запрос и результат](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.ru.png) - -> При проектировании AI-приложений важно намеренно избегать избыточного доверия, чтобы не создавать нереалистичных ожиданий от возможностей системы. Один из способов — создавать «трение» между запросами и результатами, напоминая пользователю, что это AI, а не живой человек. - -## Проектирование AI-приложений для сотрудничества и обратной связи - -Как уже упоминалось, генеративный AI создает сотрудничество между пользователем и AI. Большинство взаимодействий — это ввод пользователем запроса и генерация результата AI. Что если результат неверен? Как приложение справляется с ошибками? Обвиняет ли AI пользователя или объясняет ошибку? - -AI-приложения должны быть построены так, чтобы принимать и давать обратную связь. Это не только помогает системе AI улучшаться, но и укрепляет доверие пользователей. В дизайне должен быть предусмотрен цикл обратной связи, например, простая оценка результата «палец вверх» или «палец вниз». - -Еще один способ — четко сообщать о возможностях и ограничениях системы. Если пользователь ошибается, запрашивая что-то, что выходит за рамки возможностей AI, должна быть предусмотрена обработка таких случаев, как показано ниже. - -![Обратная связь и обработка ошибок](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.ru.png) - -Системные ошибки — обычное дело в приложениях, когда пользователю может понадобиться помощь с информацией вне сферы AI, или когда есть ограничение на количество вопросов/тем для создания резюме. Например, AI-приложение, обученное на ограниченных предметах, например, истории и математике, может не справиться с вопросами по географии. Чтобы смягчить это, AI может ответить так: «Извините, наш продукт обучен на данных по следующим предметам..., я не могу ответить на ваш вопрос.» - -AI-приложения не идеальны, поэтому ошибки неизбежны. При проектировании приложений важно предусмотреть возможность обратной связи от пользователей и обработку ошибок простым и понятным способом. - -## Задание - -Возьмите любое AI-приложение, которое вы уже создали, и подумайте о внедрении следующих шагов: - -- **Приятность:** Подумайте, как сделать ваше приложение более приятным. Добавляете ли вы объяснения повсюду? Поощряете ли пользователя исследовать? Как сформулированы ваши сообщения об ошибках? - -- **Удобство использования:** Создавая веб-приложение, убедитесь, что им можно управлять как мышью, так и клавиатурой. - -- **Доверие и прозрачность:** Не доверяйте AI и его результатам полностью, подумайте, как можно добавить человека в процесс для проверки результатов. Также рассмотрите и реализуйте другие способы достижения доверия и прозрачности. - -- **Контроль:** Дайте пользователю контроль над данными, которые он предоставляет приложению. Реализуйте возможность согласия и отказа от сбора данных в AI-приложении. - -## Продолжайте обучение! - -После завершения этого урока ознакомьтесь с нашей [коллекцией по генеративному AI](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst), чтобы продолжить развивать свои знания в области генеративного AI! - -Перейдите к уроку 13, где мы рассмотрим, как [обеспечить безопасность AI-приложений](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**Отказ от ответственности**: -Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия по обеспечению точности, просим учитывать, что автоматический перевод может содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется обращаться к профессиональному переводу, выполненному человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода. \ No newline at end of file + + + diff --git a/translations/ru/README.md b/translations/ru/README.md index e5051ef76..5a14e7e52 100644 --- a/translations/ru/README.md +++ b/translations/ru/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.ru.png) - -### 21 урок, которые научат всему, что нужно знать для создания приложений на основе генеративного ИИ - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Поддержка нескольких языков - -#### Поддерживается через GitHub Action (автоматически и всегда актуально) - -[Французский](../fr/README.md) | [Испанский](../es/README.md) | [Немецкий](../de/README.md) | [Русский](./README.md) | [Арабский](../ar/README.md) | [Персидский (фарси)](../fa/README.md) | [Урду](../ur/README.md) | [Китайский (упрощённый)](../zh/README.md) | [Китайский (традиционный, Макао)](../mo/README.md) | [Китайский (традиционный, Гонконг)](../hk/README.md) | [Китайский (традиционный, Тайвань)](../tw/README.md) | [Японский](../ja/README.md) | [Корейский](../ko/README.md) | [Хинди](../hi/README.md) | [Бенгальский](../bn/README.md) | [Маратхи](../mr/README.md) | [Непальский](../ne/README.md) | [Пенджаби (гурмукхи)](../pa/README.md) | [Португальский (Португалия)](../pt/README.md) | [Португальский (Бразилия)](../br/README.md) | [Итальянский](../it/README.md) | [Польский](../pl/README.md) | [Турецкий](../tr/README.md) | [Греческий](../el/README.md) | [Тайский](../th/README.md) | [Шведский](../sv/README.md) | [Датский](../da/README.md) | [Норвежский](../no/README.md) | [Финский](../fi/README.md) | [Нидерландский](../nl/README.md) | [Иврит](../he/README.md) | [Вьетнамский](../vi/README.md) | [Индонезийский](../id/README.md) | [Малайский](../ms/README.md) | [Тагальский (филиппинский)](../tl/README.md) | [Суахили](../sw/README.md) | [Венгерский](../hu/README.md) | [Чешский](../cs/README.md) | [Словацкий](../sk/README.md) | [Румынский](../ro/README.md) | [Болгарский](../bg/README.md) | [Сербский (кириллица)](../sr/README.md) | [Хорватский](../hr/README.md) | [Словенский](../sl/README.md) | [Украинский](../uk/README.md) | [Бирманский (Мьянма)](../my/README.md) - -# Generative AI for Beginners (версия 3) — курс - -Изучите основы создания приложений на базе генеративного ИИ с помощью нашего комплексного курса из 21 урока от Microsoft Cloud Advocates. - -## 🌱 Начинаем - -В курсе 21 урок. Каждый урок посвящён отдельной теме, так что начинайте с любого! - -Уроки делятся на «Learn» — объясняющие концепции генеративного ИИ, и «Build» — где помимо объяснений есть примеры кода на **Python** и **TypeScript**, когда это возможно. - -Для разработчиков на .NET рекомендуем [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -В каждом уроке есть раздел «Keep Learning» с дополнительными материалами для углублённого изучения. - -## Что понадобится -### Для запуска кода из курса можно использовать: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) — **уроки:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) — **уроки:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) — **уроки:** "oai-assignment" - -- Базовые знания Python или TypeScript будут полезны — \*Для абсолютных новичков рекомендуем эти курсы по [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) и [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) -- Аккаунт GitHub, чтобы [форкнуть весь этот репозиторий](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) к себе - -Мы подготовили урок **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)**, который поможет настроить вашу среду разработки. - -Не забудьте [поставить звезду (🌟) этому репозиторию](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst), чтобы потом легче было его найти. - -## 🧠 Готовы к развертыванию? - -Если хотите более продвинутые примеры кода, посмотрите нашу [коллекцию примеров кода для генеративного ИИ](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) на **Python** и **TypeScript**. - -## 🗣️ Встречайтесь с другими учащимися, получайте поддержку - -Присоединяйтесь к нашему [официальному Discord-серверу Azure AI Foundry](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst), чтобы познакомиться и пообщаться с другими участниками курса и получить помощь. - -Задавайте вопросы или делитесь отзывами о продукте на нашем [форуме разработчиков Azure AI Foundry](https://aka.ms/azureaifoundry/forum) на GitHub. - -## 🚀 Создаёте стартап? - -Зарегистрируйтесь в [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst), чтобы получить **бесплатные кредиты OpenAI** и до **150 000 долларов на Azure кредиты для доступа к моделям OpenAI через Azure OpenAI Services**. - -## 🙏 Хотите помочь? - -Есть предложения или нашли ошибки в тексте или коде? [Откройте issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) или [создайте pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 В каждом уроке есть: - -- Краткое видео-введение в тему -- Текстовый урок в README -- Примеры кода на Python и TypeScript с поддержкой Azure OpenAI и OpenAI API -- Ссылки на дополнительные ресурсы для продолжения обучения - -## 🗃️ Уроки - -| # | **Ссылка на урок** | **Описание** | **Видео** | **Дополнительное обучение** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Как настроить среду разработки | Видео скоро появится | [Узнать больше](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introduction to Generative AI and LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Что такое генеративный ИИ и как работают большие языковые модели (LLM) | [Видео](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Узнать больше](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Exploring and comparing different LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Как выбрать подходящую модель для вашей задачи | [Видео](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Узнать больше](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Using Generative AI Responsibly](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Как ответственно создавать приложения на базе генеративного ИИ | [Видео](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Узнать больше](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Understanding Prompt Engineering Fundamentals](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Практические основы prompt engineering | [Видео](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Узнать больше](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Creating Advanced Prompts](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Как применять техники prompt engineering для улучшения результатов ваших запросов | [Видео](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Узнать больше](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Создание приложений для генерации текста](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Создать:** Приложение для генерации текста с использованием Azure OpenAI / OpenAI API | [Видео](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Подробнее](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Создание чат-приложений](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Создать:** Методы эффективного создания и интеграции чат-приложений | [Видео](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Подробнее](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Создание поисковых приложений с векторными базами данных](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Создать:** Поисковое приложение, использующее Embeddings для поиска данных | [Видео](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Подробнее](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Создание приложений для генерации изображений](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Создать:** Приложение для генерации изображений | [Видео](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Подробнее](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Создание AI-приложений с низким кодом](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Создать:** Генеративное AI-приложение с использованием Low Code инструментов | [Видео](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Подробнее](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Интеграция внешних приложений с помощью Function Calling](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Создать:** Что такое function calling и как его использовать в приложениях | [Видео](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Подробнее](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [Проектирование UX для AI-приложений](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Изучить:** Как применять принципы UX-дизайна при разработке генеративных AI-приложений | [Видео](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Подробнее](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Обеспечение безопасности генеративных AI-приложений](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Изучить:** Угрозы и риски для AI-систем и методы их защиты | [Видео](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Подробнее](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [Жизненный цикл генеративных AI-приложений](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Изучить:** Инструменты и метрики для управления жизненным циклом LLM и LLMOps | [Видео](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Подробнее](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) и векторные базы данных](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Создать:** Приложение с использованием RAG Framework для извлечения embeddings из векторных баз | [Видео](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Подробнее](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Открытые модели и Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Создать:** Приложение с использованием открытых моделей, доступных на Hugging Face | [Видео](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Подробнее](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI-агенты](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Создать:** Приложение с использованием AI Agent Framework | [Видео](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Подробнее](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [Тонкая настройка LLM](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Изучить:** Что такое тонкая настройка LLM, зачем она нужна и как её выполнять | [Видео](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Подробнее](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Создание с использованием SLM](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Изучить:** Преимущества создания с использованием Small Language Models | Видео скоро будет доступно | [Подробнее](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Создание с использованием моделей Mistral](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Изучить:** Особенности и отличия моделей семейства Mistral | Видео скоро будет доступно | [Подробнее](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Создание с использованием моделей Meta](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Изучить:** Особенности и отличия моделей семейства Meta | Видео скоро будет доступно | [Подробнее](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Особая благодарность - -Особая благодарность [**John Aziz**](https://www.linkedin.com/in/john0isaac/) за создание всех GitHub Actions и рабочих процессов - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) за ключевой вклад в каждое занятие, улучшая опыт обучения и качество кода. - -## 🎒 Другие курсы - -Наша команда выпускает и другие курсы! Ознакомьтесь с ними: - -- [**НОВЫЙ** Протокол контекста модели для начинающих](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI-агенты для начинающих](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Генеративный AI для начинающих на .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Генеративный AI для начинающих на JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML для начинающих](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Data Science для начинающих](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI для начинающих](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Кибербезопасность для начинающих](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Веб-разработка для начинающих](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT для начинающих](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR-разработка для начинающих](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Освоение GitHub Copilot для парного программирования с AI](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Освоение GitHub Copilot для разработчиков C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Выбери своё приключение с Copilot](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Отказ от ответственности**: -Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия по обеспечению точности, просим учитывать, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется обращаться к профессиональному человеческому переводу. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода. \ No newline at end of file + + + + diff --git a/translations/sk/00-course-setup/01-setup-cloud.md b/translations/sk/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..3d6208cde --- /dev/null +++ b/translations/sk/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/sk/00-course-setup/02-setup-local.md b/translations/sk/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..f12fea127 --- /dev/null +++ b/translations/sk/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/sk/00-course-setup/03-providers.md b/translations/sk/00-course-setup/03-providers.md new file mode 100644 index 000000000..9e4e7122e --- /dev/null +++ b/translations/sk/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/sk/00-course-setup/README.md b/translations/sk/00-course-setup/README.md index d9aab6615..c85eb6753 100644 --- a/translations/sk/00-course-setup/README.md +++ b/translations/sk/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# Začíname s týmto kurzom - -Sme veľmi nadšení, že začínate tento kurz a uvidíte, čo vás inšpiruje vytvoriť s Generatívnou AI! - -Aby sme vám pomohli uspieť, táto stránka popisuje kroky nastavenia, technické požiadavky a kde získať pomoc, ak ju budete potrebovať. - -## Kroky nastavenia - -Na začatie tohto kurzu je potrebné dokončiť nasledujúce kroky. - -### 1. Vytvorte fork tohto repozitára - -[Vytvorte fork celého tohto repozitára](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) do svojho GitHub účtu, aby ste mohli meniť kód a plniť úlohy. Môžete si tiež [pridať tento repozitár medzi obľúbené (🌟)](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst), aby ste ho a súvisiace repozitáre ľahšie našli. - -### 2. Vytvorte codespace - -Aby ste predišli problémom s knižnicami pri spúšťaní kódu, odporúčame spúšťať tento kurz v [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst). - -Codespace vytvoríte výberom možnosti `Code` vo vašom forknutom repozitári a následným výberom **Codespaces**. - -![Dialóg zobrazujúci tlačidlá na vytvorenie codespace](../../../00-course-setup/images/who-will-pay.webp) - -### 3. Ukladanie vašich API kľúčov - -Je dôležité bezpečne uchovávať vaše API kľúče pri tvorbe akejkoľvek aplikácie. Odporúčame neukladať API kľúče priamo v kóde. Ak by ste ich uložili do verejného repozitára, mohlo by to viesť k bezpečnostným problémom a neželaným nákladom, ak by ich zneužil niekto s nečestnými úmyslami. -Tu je krok za krokom návod, ako vytvoriť `.env` súbor pre Python a pridať `GITHUB_TOKEN`: - -1. **Prejdite do adresára vášho projektu**: Otvorte terminál alebo príkazový riadok a prejdite do koreňového adresára projektu, kde chcete vytvoriť `.env` súbor. - - ```bash - cd path/to/your/project - ``` - -2. **Vytvorte `.env` súbor**: Použite svoj obľúbený textový editor na vytvorenie nového súboru s názvom `.env`. Ak používate príkazový riadok, môžete použiť `touch` (na Unixových systémoch) alebo `echo` (na Windows): - - Unixové systémy: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **Upravte `.env` súbor**: Otvorte `.env` súbor v textovom editore (napr. VS Code, Notepad++ alebo inom). Pridajte nasledujúci riadok, pričom `your_github_token_here` nahraďte vaším skutočným GitHub tokenom: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Uložte súbor**: Uložte zmeny a zatvorte editor. - -5. **Nainštalujte `python-dotenv`**: Ak ste tak ešte neurobili, nainštalujte balík `python-dotenv`, ktorý umožňuje načítavať premenné prostredia zo súboru `.env` do vašej Python aplikácie. Môžete ho nainštalovať pomocou `pip`: - - ```bash - pip install python-dotenv - ``` - -6. **Načítajte premenné prostredia vo vašom Python skripte**: Vo vašom Python skripte použite balík `python-dotenv` na načítanie premenných prostredia zo súboru `.env`: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -Hotovo! Úspešne ste vytvorili `.env` súbor, pridali GitHub token a načítali ho do vašej Python aplikácie. - -## Ako spustiť lokálne na vašom počítači - -Ak chcete spustiť kód lokálne na vašom počítači, musíte mať nainštalovanú nejakú verziu [Pythonu](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -Na použitie repozitára ho najskôr naklonujte: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -Keď máte všetko pripravené, môžete začať! - -## Voliteľné kroky - -### Inštalácia Minicondy - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) je ľahký inštalátor na inštaláciu [Condy](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Pythonu a niekoľkých balíkov. -Conda je správca balíkov, ktorý uľahčuje nastavenie a prepínanie medzi rôznymi Python [**virtuálnymi prostrediami**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) a balíkmi. Tiež je užitočná na inštaláciu balíkov, ktoré nie sú dostupné cez `pip`. - -Môžete postupovať podľa [návodu na inštaláciu Minicondy](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst). - -Po inštalácii Minicondy je potrebné naklonovať [repozitár](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (ak ste tak ešte neurobili). - -Ďalej je potrebné vytvoriť virtuálne prostredie. Ak používate Condu, vytvorte nový súbor prostredia (_environment.yml_). Ak pracujete v Codespaces, vytvorte ho v adresári `.devcontainer`, teda `.devcontainer/environment.yml`. - -Vyplňte súbor prostredia nasledujúcim úryvkom: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Ak sa pri používaní Condy vyskytnú chyby, môžete manuálne nainštalovať Microsoft AI knižnice pomocou nasledujúceho príkazu v termináli. - -``` -conda install -c microsoft azure-ai-ml -``` - -Súbor prostredia špecifikuje závislosti, ktoré potrebujeme. `` je názov, ktorý chcete použiť pre vaše Conda prostredie, a `` je verzia Pythonu, ktorú chcete použiť, napríklad `3` je najnovšia hlavná verzia Pythonu. - -Keď máte všetko pripravené, vytvorte Conda prostredie spustením nasledujúcich príkazov v príkazovom riadku/termináli: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -Ak narazíte na problémy, pozrite si [návod na správu Conda prostredí](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst). - -### Použitie Visual Studio Code s rozšírením pre Python - -Odporúčame použiť editor [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) s nainštalovaným [rozšírením pre Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) pre tento kurz. Ide však skôr o odporúčanie než povinnosť. - -> **Poznámka**: Otvorením repozitára kurzu vo VS Code máte možnosť nastaviť projekt v kontajneri. Je to vďaka [špeciálnemu adresáru `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) v repozitári kurzu. O tom viac neskôr. - -> **Poznámka**: Po naklonovaní a otvorení adresára vo VS Code vám editor automaticky navrhne nainštalovať rozšírenie pre Python. - -> **Poznámka**: Ak vám VS Code navrhne znovu otvoriť repozitár v kontajneri, odmietnite túto ponuku, ak chcete používať lokálne nainštalovaný Python. - -### Použitie Jupyter v prehliadači - -Projekt môžete tiež vyvíjať pomocou [Jupyter prostredia](https://jupyter.org?WT.mc_id=academic-105485-koreyst) priamo vo vašom prehliadači. Klasický Jupyter aj [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) poskytujú príjemné vývojové prostredie s funkciami ako automatické dopĺňanie, zvýrazňovanie kódu a podobne. - -Na spustenie Jupyter lokálne otvorte terminál/príkazový riadok, prejdite do adresára kurzu a spustite: - -```bash -jupyter notebook -``` - -alebo - -```bash -jupyterhub -``` - -Tým sa spustí inštancia Jupyter a URL adresa na prístup bude zobrazená v okne terminálu. - -Po otvorení URL by ste mali vidieť osnovu kurzu a môžete prechádzať do ľubovoľného `*.ipynb` súboru, napríklad `08-building-search-applications/python/oai-solution.ipynb`. - -### Spustenie v kontajneri - -Alternatívou k nastaveniu všetkého na vašom počítači alebo v Codespace je použitie [kontajnera](../../../00-course-setup/). Špeciálny adresár `.devcontainer` v repozitári kurzu umožňuje VS Code nastaviť projekt v kontajneri. Mimo Codespaces to však vyžaduje inštaláciu Dockeru a celkovo to vyžaduje trochu skúseností, preto to odporúčame len používateľom, ktorí majú skúsenosti s kontajnermi. - -Jedným z najlepších spôsobov, ako bezpečne uchovať API kľúče pri používaní GitHub Codespaces, je využitie Codespace Secrets. Pre viac informácií si prečítajte [návod na správu Codespaces tajomstiev](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst). - -## Lekcie a technické požiadavky - -Kurz obsahuje 6 teoretických lekcií a 6 programovacích lekcií. - -Na programovacie lekcie používame Azure OpenAI Service. Budete potrebovať prístup k Azure OpenAI službe a API kľúč na spustenie kódu. Prístup môžete získať [vyplnením tejto žiadosti](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -Kým čakáte na spracovanie vašej žiadosti, každá programovacia lekcia obsahuje aj súbor `README.md`, kde si môžete pozrieť kód a výstupy. - -## Použitie Azure OpenAI Service po prvýkrát - -Ak pracujete s Azure OpenAI službou prvýkrát, postupujte podľa tohto návodu, ako [vytvoriť a nasadiť Azure OpenAI Service zdroj.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## Použitie OpenAI API po prvýkrát - -Ak pracujete s OpenAI API prvýkrát, postupujte podľa návodu, ako [vytvoriť a používať rozhranie.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## Spoznajte ostatných študentov - -Vytvorili sme kanály v našom oficiálnom [AI Community Discord serveri](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) na spoznávanie ostatných študentov. Je to skvelý spôsob, ako nadviazať kontakty s ďalšími podnikateľmi, tvorcami, študentmi a každým, kto chce posunúť svoje znalosti v Generatívnej AI na vyššiu úroveň. - -[![Pripojiť sa na discord kanál](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -Tím projektu bude tiež na tomto Discord serveri, aby pomohol všetkým študentom. - -## Prispieť - -Tento kurz je open-source iniciatíva. Ak vidíte možnosti na zlepšenie alebo chyby, vytvorte prosím [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) alebo nahláste [GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -Tím projektu bude sledovať všetky príspevky. Prispievanie do open source je skvelý spôsob, ako rozvíjať svoju kariéru v Generatívnej AI. - -Väčšina príspevkov vyžaduje súhlas s Contributor License Agreement (CLA), ktorý potvrdzuje, že máte právo a skutočne udeľujete práva na použitie vášho príspevku. Pre viac informácií navštívte [web CLA, Contributor License Agreement](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Dôležité: pri preklade textov v tomto repozitári sa uistite, že nepoužívate strojový preklad. Preklady budú overované komunitou, preto prosím prekladajte len do jazykov, ktorým dobre rozumiete. - -Keď odošlete pull request, CLA-bot automaticky zistí, či je potrebné poskytnúť CLA, a označí PR príslušným štítkom alebo komentárom. Stačí postupovať podľa pokynov bota. Toto je potrebné urobiť len raz pre všetky repozitáre používajúce náš CLA. - -Tento projekt prijal [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst). Pre viac informácií si prečítajte FAQ k Code of Conduct alebo kontaktujte [Email opencode](opencode@microsoft.com) s ďalšími otázkami či pripomienkami. - -## Poďme začať - -Keď ste dokončili potrebné kroky na absolvovanie tohto kurzu, poďme začať s [úvodom do Generatívnej AI a LLM](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**Vyhlásenie o zodpovednosti**: -Tento dokument bol preložený pomocou AI prekladateľskej služby [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, majte na pamäti, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Originálny dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu. \ No newline at end of file + + + + diff --git a/translations/sk/00-course-setup/SETUP.md b/translations/sk/00-course-setup/SETUP.md deleted file mode 100644 index 0515e1bbe..000000000 --- a/translations/sk/00-course-setup/SETUP.md +++ /dev/null @@ -1,149 +0,0 @@ - -# Nastavenie vývojového prostredia - -Tento repozitár a kurz sme nastavili s [vývojovým kontajnerom](https://containers.dev?WT.mc_id=academic-105485-koreyst), ktorý obsahuje univerzálne runtime prostredie podporujúce Python3, .NET, Node.js a Java vývoj. Súvisiaca konfigurácia je definovaná v súbore `devcontainer.json`, ktorý sa nachádza v priečinku `.devcontainer/` v koreňovom adresári tohto repozitára. - -Na aktiváciu vývojového kontajnera ho spustite v [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (pre cloudové runtime) alebo v [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (pre lokálne runtime na vašom zariadení). Pre viac informácií o fungovaní vývojových kontajnerov vo VS Code si prečítajte [túto dokumentáciu](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst). - -> [!TIP] -> Odporúčame použiť GitHub Codespaces pre rýchly štart s minimálnym úsilím. Poskytuje štedrú [bezplatnú kvótu](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) pre osobné účty. Nastavte [timeouty](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) na zastavenie alebo vymazanie neaktívnych codespaces, aby ste čo najlepšie využili svoju kvótu. - - -## 1. Spúšťanie úloh - -Každá lekcia bude mať _voliteľné_ úlohy, ktoré môžu byť poskytnuté v jednom alebo viacerých programovacích jazykoch vrátane: Python, .NET/C#, Java a JavaScript/TypeScript. Táto sekcia poskytuje všeobecné pokyny týkajúce sa spúšťania týchto úloh. - -### 1.1 Python úlohy - -Python úlohy sú poskytované buď ako aplikácie (`.py` súbory) alebo Jupyter notebooky (`.ipynb` súbory). -- Na spustenie notebooku ho otvorte vo Visual Studio Code, kliknite na _Select Kernel_ (vpravo hore) a vyberte predvolenú možnosť Python 3. Teraz môžete použiť _Run All_ na spustenie celého notebooku. -- Na spustenie Python aplikácií z príkazového riadku postupujte podľa inštrukcií konkrétnej úlohy, aby ste vybrali správne súbory a zadali potrebné argumenty. - -## 2. Konfigurácia poskytovateľov - -Úlohy **môžu** byť tiež nastavené na prácu s jedným alebo viacerými nasadeniami veľkých jazykových modelov (LLM) cez podporovaného poskytovateľa služieb ako OpenAI, Azure alebo Hugging Face. Tieto poskytujú _hostovaný endpoint_ (API), ku ktorému môžeme programovo pristupovať s platnými povereniami (API kľúč alebo token). V tomto kurze sa venujeme týmto poskytovateľom: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) s rôznymi modelmi vrátane základnej série GPT. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) pre OpenAI modely so zameraním na podnikové použitie. - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) pre open-source modely a inference server. - -**Na tieto cvičenia budete potrebovať vlastné účty**. Úlohy sú voliteľné, takže si môžete vybrať nastavenie jedného, všetkých alebo žiadneho z poskytovateľov podľa svojich záujmov. Niekoľko rád pre registráciu: - -| Registrácia | Cena | API kľúč | Playground | Komentáre | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst)| [Cenník](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst)| [Projektové kľúče](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [No-Code, Web](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Viacero dostupných modelov | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst)| [Cenník](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst)| [Rýchly štart SDK](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst)| [Rýchly štart Studio](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Nutné požiadať o prístup vopred](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst)| -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Cenník](https://huggingface.co/pricing) | [Prístupové tokeny](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst)| [Hugging Chat má obmedzený počet modelov](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Postupujte podľa nasledujúcich pokynov na _konfiguráciu_ tohto repozitára pre použitie s rôznymi poskytovateľmi. Úlohy, ktoré vyžadujú konkrétneho poskytovateľa, budú mať v názve súboru jednu z týchto značiek: - - `aoai` - vyžaduje Azure OpenAI endpoint a kľúč - - `oai` - vyžaduje OpenAI endpoint a kľúč - - `hf` - vyžaduje Hugging Face token - -Môžete nakonfigurovať jedného, žiadneho alebo všetkých poskytovateľov. Súvisiace úlohy jednoducho zlyhajú, ak chýbajú poverenia. - -### 2.1. Vytvorenie súboru `.env` - -Predpokladáme, že ste si prečítali vyššie uvedené pokyny, zaregistrovali sa u príslušného poskytovateľa a získali potrebné autentifikačné údaje (API_KEY alebo token). V prípade Azure OpenAI predpokladáme, že máte platné nasadenie služby Azure OpenAI (endpoint) s aspoň jedným GPT modelom nasadeným pre chat completion. - -Ďalším krokom je nastavenie **lokálnych premenných prostredia** nasledovne: - - -1. V koreňovom priečinku nájdite súbor `.env.copy`, ktorý by mal obsahovať niečo takéto: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Skopírujte tento súbor do `.env` pomocou nasledujúceho príkazu. Tento súbor je _gitignore-ovaný_, takže tajné údaje zostanú v bezpečí. - - ```bash - cp .env.copy .env - ``` - -3. Vyplňte hodnoty (nahraďte zástupné symboly napravo od `=`) podľa popisu v nasledujúcej sekcii. - -3. (Voliteľné) Ak používate GitHub Codespaces, môžete si uložiť premenné prostredia ako _Codespaces secrets_ priradené k tomuto repozitáru. V takom prípade nemusíte nastavovať lokálny súbor .env. **Táto možnosť však funguje iba pri použití GitHub Codespaces.** Ak používate Docker Desktop, stále budete musieť nastaviť súbor .env. - - -### 2.2. Vyplnenie súboru `.env` - -Pozrime sa rýchlo na názvy premenných, aby sme pochopili, čo predstavujú: - -| Premenná | Popis | -| :--- | :--- | -| HUGGING_FACE_API_KEY | Toto je používateľský prístupový token, ktorý si nastavíte vo svojom profile | -| OPENAI_API_KEY | Toto je autorizačný kľúč pre použitie služby mimo Azure OpenAI endpointov | -| AZURE_OPENAI_API_KEY | Toto je autorizačný kľúč pre použitie Azure OpenAI služby | -| AZURE_OPENAI_ENDPOINT | Toto je nasadený endpoint pre Azure OpenAI zdroj | -| AZURE_OPENAI_DEPLOYMENT | Toto je endpoint nasadenia modelu pre _generovanie textu_ | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | Toto je endpoint nasadenia modelu pre _textové embeddingy_ | -| | | - -Poznámka: Posledné dve premenné pre Azure OpenAI odrážajú predvolený model pre chat completion (generovanie textu) a vyhľadávanie vektorov (embeddingy). Inštrukcie na ich nastavenie budú uvedené v príslušných úlohách. - - -### 2.3 Konfigurácia Azure: cez Portal - -Hodnoty endpointu a kľúča pre Azure OpenAI nájdete v [Azure Portáli](https://portal.azure.com?WT.mc_id=academic-105485-koreyst), začnime teda tam. - -1. Prejdite na [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -1. Kliknite na možnosť **Keys and Endpoint** v bočnom menu (vľavo). -1. Kliknite na **Show Keys** - mali by ste vidieť: KEY 1, KEY 2 a Endpoint. -1. Použite hodnotu KEY 1 pre AZURE_OPENAI_API_KEY -1. Použite hodnotu Endpoint pre AZURE_OPENAI_ENDPOINT - -Ďalej potrebujeme endpointy pre konkrétne modely, ktoré sme nasadili. - -1. Kliknite na možnosť **Model deployments** v bočnom menu (vľavo) pre Azure OpenAI zdroj. -1. Na cieľovej stránke kliknite na **Manage Deployments** - -Tým sa dostanete na web Azure OpenAI Studio, kde nájdeme ďalšie hodnoty podľa popisu nižšie. - -### 2.4 Konfigurácia Azure: cez Studio - -1. Prejdite do [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **cez svoj zdroj** ako bolo popísané vyššie. -1. Kliknite na záložku **Deployments** (bočné menu vľavo) pre zobrazenie aktuálne nasadených modelov. -1. Ak váš požadovaný model nie je nasadený, použite **Create new deployment** na jeho nasadenie. -1. Budete potrebovať model pre _generovanie textu_ - odporúčame: **gpt-35-turbo** -1. Budete potrebovať model pre _textové embeddingy_ - odporúčame **text-embedding-ada-002** - -Teraz aktualizujte premenné prostredia tak, aby odrážali názov _nasadenia_ (Deployment name), ktorý ste použili. Zvyčajne to bude rovnaké ako názov modelu, pokiaľ ste ho výslovne nezmenili. Napríklad môžete mať: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**Nezabudnite súbor .env uložiť po úprave**. Teraz môžete súbor zatvoriť a pokračovať podľa inštrukcií na spustenie notebooku. - -### 2.5 Konfigurácia OpenAI: cez profil - -Váš OpenAI API kľúč nájdete vo svojom [OpenAI účte](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). Ak ho ešte nemáte, môžete si vytvoriť účet a vygenerovať API kľúč. Po získaní kľúča ho použite na vyplnenie premennej `OPENAI_API_KEY` v súbore `.env`. - -### 2.6 Konfigurácia Hugging Face: cez profil - -Váš Hugging Face token nájdete vo svojom profile pod [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). Nezverejňujte ho ani nezdieľajte verejne. Namiesto toho si vytvorte nový token pre použitie v tomto projekte a skopírujte ho do súboru `.env` pod premennú `HUGGING_FACE_API_KEY`. _Poznámka:_ Technicky nejde o API kľúč, ale používa sa na autentifikáciu, preto sme zachovali tento názov pre konzistenciu. - -**Vyhlásenie o zodpovednosti**: -Tento dokument bol preložený pomocou AI prekladateľskej služby [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, majte na pamäti, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Originálny dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu. \ No newline at end of file diff --git a/translations/sk/04-prompt-engineering-fundamentals/README.md b/translations/sk/04-prompt-engineering-fundamentals/README.md index 2f5c44f78..20e4068b0 100644 --- a/translations/sk/04-prompt-engineering-fundamentals/README.md +++ b/translations/sk/04-prompt-engineering-fundamentals/README.md @@ -1,450 +1,15 @@ - -# Základy návrhu promptov - -[![Základy návrhu promptov](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.sk.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Úvod -Tento modul pokrýva základné koncepty a techniky na tvorbu efektívnych promptov v generatívnych AI modeloch. Spôsob, akým napíšete prompt pre LLM, tiež zohráva dôležitú úlohu. Starostlivo vytvorený prompt môže priniesť lepšiu kvalitu odpovede. Ale čo presne znamenajú pojmy ako _prompt_ a _prompt engineering_? A ako zlepšiť prompt _vstup_, ktorý posielam LLM? Na tieto otázky sa pokúsime odpovedať v tejto kapitole a nasledujúcej. - -_Generatívna AI_ je schopná vytvárať nový obsah (napr. text, obrázky, zvuk, kód a pod.) na základe požiadaviek používateľa. Dosahuje to pomocou _Large Language Models_ ako séria GPT od OpenAI („Generative Pre-trained Transformer“), ktoré sú trénované na prácu s prirodzeným jazykom a kódom. - -Používatelia môžu teraz s týmito modelmi komunikovať pomocou známych formátov, ako je chat, bez potreby technických znalostí alebo školení. Modely sú _prompt-based_ – používatelia posielajú textový vstup (prompt) a dostávajú späť odpoveď AI (completion). Môžu potom s AI „chatovať“ iteratívne, v niekoľkých kolách, a upravovať prompt, kým odpoveď nebude vyhovovať ich očakávaniam. - -„Prompty“ sa tak stávajú hlavným _programovacím rozhraním_ pre generatívne AI aplikácie, ktoré modelom hovoria, čo majú robiť, a ovplyvňujú kvalitu vrátených odpovedí. „Prompt Engineering“ je rýchlo rastúca oblasť, ktorá sa zameriava na _návrh a optimalizáciu_ promptov, aby sa dosahovali konzistentné a kvalitné odpovede vo veľkom meradle. - -## Ciele učenia - -V tejto lekcii sa naučíme, čo je Prompt Engineering, prečo je dôležitý a ako môžeme vytvárať efektívnejšie prompty pre daný model a cieľ aplikácie. Pochopíme základné koncepty a osvedčené postupy v návrhu promptov – a zoznámime sa s interaktívnym prostredím Jupyter Notebooku, kde si tieto koncepty môžeme vyskúšať na reálnych príkladoch. - -Na konci lekcie budeme vedieť: - -1. Vysvetliť, čo je prompt engineering a prečo je dôležitý. -2. Opísať zložky promptu a ich použitie. -3. Naučiť sa osvedčené postupy a techniky prompt engineeringu. -4. Aplikovať naučené techniky na reálne príklady pomocou OpenAI endpointu. - -## Kľúčové pojmy - -Prompt Engineering: Prax navrhovania a dolaďovania vstupov, ktoré vedú AI modely k produkcii požadovaných výstupov. -Tokenizácia: Proces rozdelenia textu na menšie jednotky, nazývané tokeny, ktoré model dokáže spracovať a pochopiť. -Instruction-Tuned LLMs: Veľké jazykové modely (LLM), ktoré boli doladené pomocou špecifických inštrukcií na zlepšenie presnosti a relevantnosti odpovedí. - -## Učebné prostredie (Learning Sandbox) - -Prompt engineering je zatiaľ skôr umením než vedou. Najlepší spôsob, ako si zlepšiť intuíciu, je _viac cvičiť_ a prijať prístup pokus-omyl, ktorý kombinuje odborné znalosti v danej oblasti s odporúčanými technikami a optimalizáciami špecifickými pre model. - -Jupyter Notebook, ktorý je súčasťou tejto lekcie, poskytuje _sandbox_ prostredie, kde si môžete vyskúšať, čo sa naučíte – priebežne alebo ako súčasť záverečnej úlohy. Na spustenie cvičení budete potrebovať: - -1. **Azure OpenAI API kľúč** – endpoint služby pre nasadený LLM. -2. **Python Runtime** – prostredie, v ktorom sa Notebook spustí. -3. **Lokálne premenné prostredia** – _teraz dokončite kroky v [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst), aby ste boli pripravení_. - -Notebook obsahuje _štartovacie_ cvičenia – ale odporúčame pridať si vlastné sekcie _Markdown_ (popis) a _Code_ (požiadavky promptov), aby ste mohli skúšať viac príkladov alebo nápadov a budovať si intuíciu pre návrh promptov. - -## Ilustrovaný sprievodca - -Chcete získať prehľad o tom, čo táto lekcia pokrýva, ešte predtým, než sa do nej pustíte? Pozrite si tento ilustrovaný sprievodca, ktorý vám poskytne predstavu o hlavných témach a kľúčových bodoch, nad ktorými sa môžete zamyslieť. Plán lekcie vás prevedie od pochopenia základných konceptov a výziev až po ich riešenie pomocou relevantných techník prompt engineeringu a osvedčených postupov. Upozorňujeme, že sekcia „Pokročilé techniky“ v tomto sprievodcovi sa týka obsahu, ktorý je pokrytý v _nasledujúcej_ kapitole tohto kurzu. - -![Ilustrovaný sprievodca návrhom promptov](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.sk.png) - -## Naša startupová misia - -Teraz si povedzme, ako sa _táto téma_ vzťahuje na našu misiu startupu, ktorou je [priniesť AI inovácie do vzdelávania](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). Chceme vytvárať AI aplikácie pre _personalizované učenie_ – tak si predstavme, ako by rôzni používatelia našej aplikácie mohli „navrhovať“ prompty: - -- **Administrátori** môžu požiadať AI o _analýzu dát učebných osnov na identifikáciu medzier v pokrytí_. AI môže zhrnúť výsledky alebo ich vizualizovať pomocou kódu. -- **Učitelia** môžu požiadať AI o _vytvorenie plánu hodiny pre cieľovú skupinu a tému_. AI môže zostaviť personalizovaný plán v požadovanom formáte. -- **Študenti** môžu požiadať AI o _doučovanie v náročnom predmete_. AI ich môže viesť lekciami, nápovedami a príkladmi prispôsobenými ich úrovni. - -To je len špička ľadovca. Pozrite si [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) – open-source knižnicu promptov zostavenú odborníkmi na vzdelávanie – aby ste získali širší prehľad o možnostiach! _Vyskúšajte niektoré z týchto promptov v sandboxe alebo v OpenAI Playground a uvidíte, čo sa stane!_ - - - -## Čo je Prompt Engineering? - -Lekciu sme začali definíciou **Prompt Engineering** ako procesu _navrhovania a optimalizácie_ textových vstupov (promptov), ktoré prinášajú konzistentné a kvalitné odpovede (completions) pre daný cieľ aplikácie a model. Môžeme to vnímať ako dvojstupňový proces: - -- _navrhnúť_ počiatočný prompt pre daný model a cieľ -- _iteratívne dolaďovať_ prompt, aby sa zlepšila kvalita odpovede - -Toto je nevyhnutne proces pokus-omyl, ktorý vyžaduje používateľskú intuíciu a úsilie na dosiahnutie optimálnych výsledkov. Prečo je to teda dôležité? Na odpoveď musíme najprv pochopiť tri koncepty: - -- _Tokenizácia_ = ako model „vidí“ prompt -- _Základné LLM_ = ako základný model „spracováva“ prompt -- _Instruction-Tuned LLM_ = ako model teraz dokáže rozpoznať „úlohy“ - -### Tokenizácia - -LLM vníma prompty ako _sekvenciu tokenov_, pričom rôzne modely (alebo verzie modelu) môžu ten istý prompt tokenizovať rôzne. Keďže LLM sú trénované na tokenoch (a nie na surovom texte), spôsob tokenizácie promptu priamo ovplyvňuje kvalitu generovanej odpovede. - -Aby ste získali predstavu, ako tokenizácia funguje, vyskúšajte nástroje ako [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) uvedený nižšie. Skopírujte svoj prompt a pozrite sa, ako sa rozdelí na tokeny, venujte pozornosť tomu, ako sa spracovávajú medzery a interpunkcia. Upozorňujeme, že tento príklad ukazuje starší LLM (GPT-3) – pri novšom modeli môže byť výsledok odlišný. - -![Tokenizácia](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.sk.png) - -### Koncept: Základné modely (Foundation Models) - -Keď je prompt tokenizovaný, hlavnou funkciou ["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (alebo základného modelu) je predpovedať ďalší token v sekvencii. Keďže LLM sú trénované na obrovských textových dátach, majú dobrý prehľad o štatistických vzťahoch medzi tokenmi a dokážu túto predpoveď urobiť s istou istotou. Treba však poznamenať, že nerozumejú _významu_ slov v prompte alebo tokene; vidia len vzor, ktorý môžu „dokončiť“ ďalšou predpoveďou. Môžu pokračovať v predpovedaní sekvencie, kým ich nezastaví používateľ alebo nejaká prednastavená podmienka. - -Chcete vidieť, ako funguje dokončovanie na základe promptu? Zadajte vyššie uvedený prompt do Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) s predvolenými nastaveniami. Systém je nastavený tak, aby považoval prompty za požiadavky na informácie – takže by ste mali vidieť odpoveď, ktorá zodpovedá tomuto kontextu. - -Ale čo ak používateľ chce vidieť niečo konkrétne, čo spĺňa nejaké kritériá alebo cieľ úlohy? Tu prichádzajú do hry _instruction-tuned_ LLM. - -![Base LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.sk.png) - -### Koncept: Instruction Tuned LLM - -[Instruction Tuned LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) vychádza zo základného modelu a doladí ho pomocou príkladov alebo vstupno-výstupných párov (napr. viackolových „správ“), ktoré obsahujú jasné inštrukcie – a odpoveď AI sa snaží tieto inštrukcie dodržať. - -Používa techniky ako Reinforcement Learning with Human Feedback (RLHF), ktoré model naučia _dodržiavať inštrukcie_ a _učiť sa z spätnej väzby_, aby produkoval odpovede lepšie prispôsobené praktickým aplikáciám a relevantnejšie pre používateľské ciele. - -Vyskúšajme to – vráťte sa k vyššie uvedenému promptu, ale teraz zmeňte _systémovú správu_ tak, aby obsahovala nasledujúcu inštrukciu ako kontext: - -> _Zhrň obsah, ktorý dostaneš, pre žiaka druhého ročníka. Výsledok udrž na jeden odsek s 3-5 odrážkami._ - -Vidíte, ako je výsledok teraz prispôsobený požadovanému cieľu a formátu? Učiteľ môže túto odpoveď priamo použiť vo svojich prezentáciách pre danú triedu. - -![Instruction Tuned LLM Chat Completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.sk.png) - -## Prečo potrebujeme Prompt Engineering? - -Keď už vieme, ako LLM spracovávajú prompty, poďme sa pozrieť na to, _prečo_ potrebujeme prompt engineering. Odpoveď spočíva v tom, že súčasné LLM predstavujú niekoľko výziev, ktoré sťažujú dosiahnutie _spoľahlivých a konzistentných odpovedí_ bez vynaloženia úsilia na tvorbu a optimalizáciu promptov. Napríklad: - -1. **Odpovede modelu sú náhodné.** _Ten istý prompt_ pravdepodobne vygeneruje rôzne odpovede pri rôznych modeloch alebo verziách modelu. A môže dokonca priniesť rôzne výsledky pri _tom istom modeli_ v rôznych časoch. _Techniky prompt engineeringu nám pomáhajú minimalizovať tieto odchýlky lepšími pravidlami_. - -2. **Modely môžu vymýšľať odpovede.** Modely sú predtrénované na _veľkých, ale konečných_ dátach, čo znamená, že nemajú vedomosti o konceptoch mimo rozsah tréningu. Výsledkom môžu byť odpovede, ktoré sú nepresné, vymyslené alebo priamo protirečia známym faktom. _Techniky prompt engineeringu pomáhajú používateľom identifikovať a zmierniť takéto vymýšľanie napr. žiadosťou o citácie alebo zdôvodnenie_. - -3. **Schopnosti modelov sa líšia.** Novšie modely alebo generácie modelov majú bohatšie schopnosti, ale prinášajú aj špecifické zvláštnosti a kompromisy v nákladoch a zložitosti. _Prompt engineering nám pomáha vyvíjať osvedčené postupy a pracovné postupy, ktoré abstrahujú tieto rozdiely a prispôsobujú sa špecifickým požiadavkám modelu škálovateľným a plynulým spôsobom_. - -Pozrime sa na to v praxi v OpenAI alebo Azure OpenAI Playground: - -- Použite ten istý prompt s rôznymi nasadeniami LLM (napr. OpenAI, Azure OpenAI, Hugging Face) – videli ste rozdiely? -- Použite ten istý prompt opakovane s _tým istým_ nasadením LLM (napr. Azure OpenAI playground) – ako sa tieto odpovede líšili? - -### Príklad vymýšľania (Fabrications) - -V tomto kurze používame pojem **„fabrication“** na označenie javu, keď LLM niekedy generujú fakticky nesprávne informácie kvôli obmedzeniam v tréningu alebo iným faktorom. Tento jav ste možno počuli aj pod názvom _„halucinácie“_ v populárnych článkoch alebo vedeckých prácach. My však dôrazne odporúčame používať termín _„fabrication“_, aby sme sa vyhli antropomorfizácii správania a nepripisovali stroju ľudské vlastnosti. Tým tiež podporujeme [zásady zodpovednej AI](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) z hľadiska terminológie, vyhýbajúc sa výrazom, ktoré môžu byť v niektorých kontextoch považované za nevhodné alebo neinkluzívne. - -Chcete si urobiť predstavu, ako funguje vymýšľanie? Predstavte si prompt, ktorý inštruuje AI vytvoriť obsah o neexistujúcej téme (aby ste sa uistili, že sa nenachádza v tréningovej množine). Napríklad – vyskúšal som tento prompt: -# Plán lekcie: Marsianská vojna v roku 2076 - -## Ciele lekcie -- Pochopiť príčiny a priebeh Marsianskej vojny v roku 2076 -- Analyzovať hlavné udalosti a ich dopad na ľudstvo a Mars -- Diskutovať o technologických a spoločenských zmenách vyvolaných vojnou - -## Úvod (10 minút) -- Predstavenie témy: Čo bola Marsianská vojna? -- Krátky prehľad historického kontextu pred rokom 2076 -- Otázky na zamyslenie: Prečo by mohlo dôjsť k vojne medzi Zemou a Marsom? - -## Hlavná časť (30 minút) -### Príčiny vojny -- Politické napätie medzi Zemou a Marsom -- Zdroje a kontrola nad Marsom -- Vývoj technológií a zbrojenia - -### Priebeh vojny -- Kľúčové bitky a udalosti -- Použité zbrane a taktiky -- Úloha medziplanetárnych spojenectiev - -### Dôsledky vojny -- Dopad na civilné obyvateľstvo a infraštruktúru -- Zmeny v medziplanetárnej politike -- Technologický pokrok a jeho využitie po vojne - -## Diskusia a záver (15 minút) -- Otvorená diskusia: Mohla sa vojna vyhnúť? Ako? -- Reflexia: Čo sa môžeme naučiť z Marsianskej vojny? -- Zhrnutie hlavných bodov lekcie - -## Domáca úloha -- Napísať krátku esej o tom, ako by sa mohla vyvíjať budúcnosť Marsu po vojne -- Pripraviť prezentáciu o jednej z technológií použitých počas Marsianskej vojny -Webové vyhľadávanie mi ukázalo, že existujú fiktívne príbehy (napr. televízne seriály alebo knihy) o martianskych vojnách – ale žiadne z roku 2076. Zdravý rozum nám tiež hovorí, že rok 2076 je _v budúcnosti_ a preto nemôže byť spojený so skutočnou udalosťou. - -Čo sa teda stane, keď spustíme tento prompt u rôznych poskytovateľov LLM? - -> **Odpoveď 1**: OpenAI Playground (GPT-35) - -![Odpoveď 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.sk.png) - -> **Odpoveď 2**: Azure OpenAI Playground (GPT-35) - -![Odpoveď 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.sk.png) - -> **Odpoveď 3**: : Hugging Face Chat Playground (LLama-2) - -![Odpoveď 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.sk.png) - -Ako sa dalo očakávať, každý model (alebo verzia modelu) generuje mierne odlišné odpovede vďaka stochastickému správaniu a rozdielom v schopnostiach modelu. Napríklad jeden model cieli na publikum ôsmeho ročníka, zatiaľ čo iný predpokladá študenta strednej školy. No všetky tri modely vytvorili odpovede, ktoré by mohli presvedčiť neinformovaného používateľa, že udalosť bola skutočná. - -Techniky prompt engineeringu ako _metaprompting_ a _nastavenie teploty_ môžu do určitej miery znížiť tvorbu nepravdivých informácií modelom. Nové _architektúry_ prompt engineeringu tiež bezproblémovo integrujú nové nástroje a techniky do toku promptu, aby zmiernili alebo znížili niektoré z týchto efektov. - -## Prípadová štúdia: GitHub Copilot - -Záverom tejto sekcie si ukážeme, ako sa prompt engineering používa v reálnych riešeniach na príklade jednej prípadovej štúdie: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot je váš „AI parťák programátor“ – prevádza textové prompty na dokončenia kódu a je integrovaný do vášho vývojového prostredia (napr. Visual Studio Code) pre plynulý používateľský zážitok. Ako je zdokumentované v sérii blogov nižšie, najskoršia verzia bola založená na modeli OpenAI Codex – pričom inžinieri rýchlo pochopili potrebu doladiť model a vyvinúť lepšie techniky prompt engineeringu na zlepšenie kvality kódu. V júli predstavili [vylepšený AI model, ktorý presahuje Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) pre ešte rýchlejšie návrhy. - -Prečítajte si príspevky v poradí, aby ste sledovali ich učebnú cestu. - -- **Máj 2023** | [GitHub Copilot sa zlepšuje v porozumení vášho kódu](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **Máj 2023** | [Inside GitHub: Práca s LLM za GitHub Copilot](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Jún 2023** | [Ako písať lepšie prompty pre GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Júl 2023** | [GitHub Copilot presahuje Codex s vylepšeným AI modelom](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Júl 2023** | [Sprievodca vývojára prompt engineeringom a LLM](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **Sep 2023** | [Ako vytvoriť podnikateľskú LLM aplikáciu: Lekcie z GitHub Copilot](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -Môžete tiež prezerať ich [inžiniersky blog](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) pre ďalšie príspevky ako [tento](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst), ktorý ukazuje, ako sa tieto modely a techniky _aplikujú_ na tvorbu reálnych aplikácií. - ---- - - - -## Konštrukcia promptu - -Videli sme, prečo je prompt engineering dôležitý – teraz si vysvetlíme, ako sa prompty _konštruujú_, aby sme mohli vyhodnotiť rôzne techniky pre efektívnejší návrh promptov. - -### Základný prompt - -Začnime so základným promptom: textovým vstupom zaslaným modelu bez ďalšieho kontextu. Tu je príklad – keď pošleme prvé slová americkej národnej hymny do OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst), model okamžite _dokončí_ odpoveď ďalšími riadkami, čo ilustruje základné predikčné správanie. - -| Prompt (vstup) | Dokončenie (výstup) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | Zdá sa, že začínate text piesne „The Star-Spangled Banner“, národnej hymny Spojených štátov. Celý text je ... | - -### Zložitý prompt - -Teraz pridajme ku základnému promptu kontext a inštrukcie. [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) nám umožňuje vytvoriť zložitý prompt ako kolekciu _správ_ s: - -- pármi vstup/výstup odrážajúcimi vstup používateľa a odpoveď asistenta. -- systémovou správou, ktorá nastavuje kontext správania alebo osobnosti asistenta. - -Žiadosť má teraz nasledujúcu formu, kde _tokenizácia_ efektívne zachytáva relevantné informácie z kontextu a konverzácie. Zmena systémového kontextu môže mať rovnaký vplyv na kvalitu dokončení ako samotné vstupy používateľa. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Inštrukčný prompt - -V predchádzajúcich príkladoch bol prompt jednoduchý textový dopyt, ktorý sa dal interpretovať ako žiadosť o informácie. Pri _inštrukčných_ promptoch môžeme použiť text na podrobnejšie špecifikovanie úlohy a poskytnúť AI lepšie usmernenie. Tu je príklad: - -| Prompt (vstup) | Dokončenie (výstup) | Typ inštrukcie | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :----------------- | -| Napíš popis Občianskej vojny | _vrátil jednoduchý odsek_ | Jednoduchý | -| Napíš popis Občianskej vojny. Uveď kľúčové dátumy a udalosti a popíš ich význam | _vrátil odsek nasledovaný zoznamom kľúčových dátumov udalostí s popismi_ | Zložitý | -| Napíš popis Občianskej vojny v 1 odseku. Uveď 3 odrážky s kľúčovými dátumami a ich významom. Uveď ďalšie 3 odrážky s významnými historickými osobnosťami a ich prínosmi. Výstup vráť vo formáte JSON | _vracia podrobnejšie informácie v textovom poli, formátované ako JSON, ktoré môžete skopírovať do súboru a podľa potreby overiť_ | Zložitý. Formátovaný.| - -## Primárny obsah - -V predchádzajúcich príkladoch bol prompt stále pomerne otvorený, čo umožňovalo LLM rozhodnúť, ktorá časť jeho predtrénovaných dát je relevantná. Pri návrhovom vzore _primárny obsah_ je vstupný text rozdelený na dve časti: - -- inštrukcia (akcia) -- relevantný obsah (ktorý ovplyvňuje akciu) - -Tu je príklad, kde inštrukcia znie „zhrň toto do 2 viet“. - -| Prompt (vstup) | Dokončenie (výstup) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter je piata planéta od Slnka a najväčšia v Slnečnej sústave. Je to plynný obor s hmotnosťou tisícinu hmotnosti Slnka, no dvojnásobne väčšou ako všetky ostatné planéty Slnečnej sústavy dokopy. Jupiter je jedným z najsvetlejších objektov viditeľných voľným okom na nočnej oblohe a je známy starovekým civilizáciám ešte pred zaznamenanou históriou. Je pomenovaný po rímskom bohu Jupiterovi.[19] Keď sa naň pozeráme zo Zeme, môže byť dostatočne jasný na to, aby jeho odrazené svetlo vrhalo viditeľné tiene,[20] a je v priemere tretím najsvetlejším prírodným objektom na nočnej oblohe po Mesiaci a Venuši.
**Zhrň toto do 2 krátkych viet** | Jupiter, piata planéta od Slnka, je najväčšia v Slnečnej sústave a je známa ako jeden z najsvetlejších objektov na nočnej oblohe. Pomenovaná po rímskom bohu Jupiterovi, je to plynný obor s hmotnosťou dvojnásobnou ako všetky ostatné planéty Slnečnej sústavy dokopy. | - -Segment primárneho obsahu možno využiť rôznymi spôsobmi na efektívnejšie inštrukcie: - -- **Príklady** – namiesto explicitného povedania modelu, čo má robiť, mu dajte príklady a nechajte ho odvodiť vzor. -- **Náznaky** – nasledujte inštrukciu „náznakom“, ktorý pripraví dokončenie a nasmeruje model k relevantnejším odpovediam. -- **Šablóny** – opakovateľné „recepty“ na prompty s zástupnými znakmi (premennými), ktoré možno prispôsobiť dátami pre konkrétne prípady použitia. - -Poďme si ich ukázať v praxi. - -### Použitie príkladov - -Toto je prístup, kde použijete primárny obsah na „nakŕmenie modelu“ príkladmi požadovaného výstupu pre danú inštrukciu a necháte ho odvodiť vzor požadovaného výstupu. Podľa počtu poskytnutých príkladov môžeme mať zero-shot prompting, one-shot prompting, few-shot prompting a pod. - -Prompt teraz pozostáva z troch častí: - -- Popis úlohy -- Niekoľko príkladov požadovaného výstupu -- Začiatok nového príkladu (ktorý sa stáva implicitným popisom úlohy) - -| Typ učenia | Prompt (vstup) | Dokončenie (výstup) | -| :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| Zero-shot | „The Sun is Shining“. Prelož do španielčiny | „El Sol está brillando“. | -| One-shot | „The Sun is Shining“ => „El Sol está brillando“.
„It's a Cold and Windy Day“ => | „Es un día frío y ventoso“. | -| Few-shot | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketball | -| | | | - -Všimnite si, že pri zero-shot prompting sme museli explicitne uviesť inštrukciu („Prelož do španielčiny“), ale v one-shot príklade sa už inštrukcia odvádza. Few-shot príklad ukazuje, ako pridanie viacerých príkladov umožňuje modelom robiť presnejšie závery bez ďalších inštrukcií. - -### Náznaky promptu - -Ďalšou technikou využitia primárneho obsahu je poskytnúť _náznaky_ namiesto príkladov. V tomto prípade modelu „naznačujeme“ správnym začiatkom, ktorý odráža požadovaný formát odpovede. Model potom „berie náznak“ a pokračuje v rovnakom štýle. - -| Počet náznakov | Prompt (vstup) | Dokončenie (výstup) | -| :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Jupiter je piata planéta od Slnka a najväčšia v Slnečnej sústave. Je to plynný obor s hmotnosťou tisícinu hmotnosti Slnka, no dvojnásobne väčšou ako všetky ostatné planéty Slnečnej sústavy dokopy. Jupiter je jedným z najsvetlejších objektov viditeľných voľným okom na nočnej oblohe, a je známy starovekým civilizáciám ešte pred zaznamenanou históriou. - -**Zhrňte toto** | Jupiter je najväčšia planéta v našej slnečnej sústave a piata od Slnka. Je to plynný obor s hmotnosťou 1/1000 hmotnosti Slnka, no je ťažší ako všetky ostatné planéty dokopy. Staroveké civilizácie poznali Jupiter už dávno a je ľahko viditeľný na nočnej oblohe. | -| 1 | Jupiter je piata planéta od Slnka a najväčšia v slnečnej sústave. Je to plynný obor s hmotnosťou jednej tisíciny hmotnosti Slnka, no váži dvakrát a pol viac ako všetky ostatné planéty v slnečnej sústave dokopy. Jupiter je jedným z najsvetlejších objektov viditeľných voľným okom na nočnej oblohe a bol známy starovekým civilizáciám už pred zaznamenanou históriou.
**Zhrňte toto**
Čo sme sa naučili je, že Jupiter | je piata planéta od Slnka a najväčšia v slnečnej sústave. Je to plynný obor s hmotnosťou jednej tisíciny hmotnosti Slnka, no váži dvakrát a pol viac ako všetky ostatné planéty dokopy. Je ľahko viditeľný voľným okom a je známy od staroveku. | -| 2 | Jupiter je piata planéta od Slnka a najväčšia v slnečnej sústave. Je to plynný obor s hmotnosťou jednej tisíciny hmotnosti Slnka, no váži dvakrát a pol viac ako všetky ostatné planéty v slnečnej sústave dokopy. Jupiter je jedným z najsvetlejších objektov viditeľných voľným okom na nočnej oblohe a bol známy starovekým civilizáciám už pred zaznamenanou históriou.
**Zhrňte toto**
Top 3 fakty, ktoré sme sa naučili: | 1. Jupiter je piata planéta od Slnka a najväčšia v slnečnej sústave.
2. Je to plynný obor s hmotnosťou jednej tisíciny hmotnosti Slnka...
3. Jupiter je viditeľný voľným okom už od staroveku ... | -| | | | - -### Šablóny promptov - -Šablóna promptu je _preddefinovaný recept na prompt_, ktorý možno uložiť a podľa potreby opakovane použiť, aby sa zabezpečila konzistentnejšia používateľská skúsenosť vo veľkom meradle. V najjednoduchšej podobe je to zbierka príkladov promptov ako [tento od OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst), ktorý poskytuje interaktívne komponenty promptu (správy používateľa a systému) a formát požiadavky riadený API – na podporu opätovného použitia. - -V zložitejšej podobe, ako napríklad [tento príklad od LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst), obsahuje _zástupné symboly_, ktoré možno nahradiť údajmi z rôznych zdrojov (vstup používateľa, kontext systému, externé zdroje dát atď.) na dynamické generovanie promptu. To nám umožňuje vytvoriť knižnicu opakovane použiteľných promptov, ktoré možno **programovo** použiť na zabezpečenie konzistentnej používateľskej skúsenosti vo veľkom meradle. - -Skutočná hodnota šablón spočíva v možnosti vytvárať a publikovať _knižnice promptov_ pre vertikálne aplikačné oblasti – kde je šablóna promptu _optimalizovaná_ tak, aby odrážala kontext alebo príklady špecifické pre danú aplikáciu, čím sa odpovede stávajú relevantnejšími a presnejšími pre cieľové publikum. Repozitár [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) je skvelým príkladom tohto prístupu, ktorý zhromažďuje knižnicu promptov pre vzdelávaciu oblasť so zameraním na kľúčové ciele ako plánovanie lekcií, návrh učebných osnov, doučovanie študentov a pod. - -## Podporný obsah - -Ak uvažujeme o konštrukcii promptu ako o inštrukcii (úlohe) a cieli (primárnom obsahu), potom _sekundárny obsah_ je ako dodatočný kontext, ktorý poskytujeme na **ovplyvnenie výstupu určitým spôsobom**. Môžu to byť ladacie parametre, inštrukcie na formátovanie, taxonómie tém a podobne, ktoré pomáhajú modelu _prispôsobiť_ odpoveď tak, aby vyhovovala požadovaným cieľom alebo očakávaniam používateľa. - -Napríklad: Ak máme katalóg kurzov s rozsiahlymi metadátami (názov, popis, úroveň, značky metadát, lektor atď.) o všetkých dostupných kurzoch v učebnom pláne: - -- môžeme definovať inštrukciu „zhrnúť katalóg kurzov na jeseň 2023“ -- môžeme použiť primárny obsah na poskytnutie niekoľkých príkladov požadovaného výstupu -- môžeme použiť sekundárny obsah na identifikáciu top 5 „značiek“ záujmu. - -Model potom môže poskytnúť zhrnutie vo formáte podľa uvedených príkladov – ale ak má výsledok viacero značiek, môže uprednostniť 5 značiek identifikovaných v sekundárnom obsahu. - ---- - - - -## Najlepšie postupy pri promptovaní - -Keď už vieme, ako možno prompt _konštruovať_, môžeme začať premýšľať o tom, ako ich _navrhnúť_ tak, aby odrážali najlepšie postupy. Môžeme to rozdeliť na dve časti – mať správny _postoj_ a aplikovať správne _techniky_. - -### Postoj k prompt engineeringu - -Prompt engineering je proces pokusov a omylov, preto majte na pamäti tri základné usmerňujúce faktory: - -1. **Dôležité je porozumenie domény.** Presnosť a relevantnosť odpovede závisí od _domény_, v ktorej aplikácia alebo používateľ pôsobí. Použite svoju intuíciu a odborné znalosti v danej oblasti na ďalšie **prispôsobenie techník**. Napríklad definujte _osobnosti špecifické pre doménu_ v systémových promptoch alebo používajte _šablóny špecifické pre doménu_ v používateľských promptoch. Poskytnite sekundárny obsah, ktorý odráža kontext špecifický pre doménu, alebo použite _doménové signály a príklady_ na nasmerovanie modelu k známym vzorom použitia. - -2. **Dôležité je porozumenie modelu.** Vieme, že modely sú z podstaty stochastické. Implementácie modelov sa však môžu líšiť podľa použitého tréningového datasetu (predtrénované znalosti), schopností, ktoré poskytujú (napr. cez API alebo SDK) a typu obsahu, na ktorý sú optimalizované (napr. kód vs. obrázky vs. text). Pochopte silné a slabé stránky modelu, ktorý používate, a využite tieto poznatky na _prioritizáciu úloh_ alebo vytváranie _prispôsobených šablón_ optimalizovaných pre schopnosti modelu. - -3. **Dôležitá je iterácia a validácia.** Modely sa rýchlo vyvíjajú, rovnako ako techniky prompt engineeringu. Ako odborník v danej oblasti môžete mať ďalší kontext alebo kritériá pre _vašu_ konkrétnu aplikáciu, ktoré nemusia platiť pre širšiu komunitu. Používajte nástroje a techniky prompt engineeringu na „rýchly štart“ konštrukcie promptov, potom iterujte a validujte výsledky pomocou vlastnej intuície a odborných znalostí. Zaznamenávajte svoje poznatky a vytvorte **databázu znalostí** (napr. knižnice promptov), ktorú môžu ostatní použiť ako novú východiskovú bázu pre rýchlejšie iterácie v budúcnosti. - -## Najlepšie postupy - -Pozrime sa teraz na bežné najlepšie postupy, ktoré odporúčajú odborníci z [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) a [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst). - -| Čo | Prečo | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Vyhodnocujte najnovšie modely. | Nové generácie modelov pravdepodobne prinášajú vylepšené funkcie a kvalitu – môžu však tiež znamenať vyššie náklady. Vyhodnoťte ich dopad a potom sa rozhodnite o migrácii. | -| Oddelujte inštrukcie a kontext | Skontrolujte, či váš model/poskytovateľ definuje _delimitery_ na jasnejšie rozlíšenie inštrukcií, primárneho a sekundárneho obsahu. To pomáha modelom presnejšie priraďovať váhy tokenom. | -| Buďte konkrétni a jasní | Poskytnite viac detailov o požadovanom kontexte, výsledku, dĺžke, formáte, štýle atď. To zlepší kvalitu aj konzistenciu odpovedí. Zachyťte recepty v opakovane použiteľných šablónach. | -| Buďte popisní, používajte príklady | Modely môžu lepšie reagovať na prístup „ukáž a povedz“. Začnite s `zero-shot` prístupom, kde dáte inštrukciu (bez príkladov), potom skúste `few-shot` ako doladenie, kde poskytnete niekoľko príkladov požadovaného výstupu. Používajte analógie. | -| Používajte signály na naštartovanie dokončení | Podporte model k požadovanému výsledku tým, že mu dáte niekoľko úvodných slov alebo fráz, ktoré môže použiť ako východiskový bod pre odpoveď. | -| Opakujte, ak treba | Niekedy je potrebné modelu niečo zopakovať. Dajte inštrukcie pred a po primárnom obsahu, použite inštrukciu a signál, atď. Iterujte a validujte, čo funguje najlepšie. | -| Poradie má význam | Poradie, v akom modelu prezentujete informácie, môže ovplyvniť výstup, dokonca aj v príkladoch na učenie, kvôli efektu nedávnosti. Vyskúšajte rôzne možnosti, aby ste zistili, čo funguje najlepšie. | -| Dajte modelu „východisko“ | Poskytnite modelu _náhradnú_ odpoveď, ktorú môže použiť, ak z nejakého dôvodu nedokáže úlohu dokončiť. To znižuje pravdepodobnosť generovania nepravdivých alebo vymyslených odpovedí. | -| | | - -Ako pri každom najlepšom postupe, pamätajte, že _výsledky sa môžu líšiť_ v závislosti od modelu, úlohy a domény. Používajte ich ako východiskový bod a iterujte, aby ste našli, čo vám najviac vyhovuje. Neustále prehodnocujte svoj proces prompt engineeringu, keď sa objavujú nové modely a nástroje, so zameraním na škálovateľnosť procesu a kvalitu odpovedí. - - - -## Zadanie - -Gratulujeme! Dostali ste sa na koniec lekcie! Je čas otestovať niektoré z týchto konceptov a techník na reálnych príkladoch! - -Pre naše zadanie budeme používať Jupyter Notebook s cvičeniami, ktoré môžete interaktívne dokončiť. Notebook si môžete tiež rozšíriť o vlastné Markdown a kódové bunky, aby ste si mohli samostatne skúmať nápady a techniky. - -### Na začiatok si forknete repozitár, potom - -- (Odporúčané) Spustite GitHub Codespaces -- (Alternatívne) Klonujte repozitár do svojho lokálneho zariadenia a používajte ho s Docker Desktop -- (Alternatívne) Otvorte Notebook vo vašom preferovanom prostredí pre spúšťanie Notebookov. - -### Ďalej nastavte svoje premenné prostredia - -- Skopírujte súbor `.env.copy` v koreňovom adresári repozitára do `.env` a vyplňte hodnoty `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` a `AZURE_OPENAI_DEPLOYMENT`. Potom sa vráťte do sekcie [Learning Sandbox](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals), kde sa naučíte, ako na to. - -### Potom otvorte Jupyter Notebook - -- Vyberte runtime kernel. Ak používate možnosti 1 alebo 2, jednoducho vyberte predvolený Python 3.10.x kernel poskytovaný vývojárskym kontajnerom. - -Ste pripravení spustiť cvičenia. Upozorňujeme, že tu neexistujú _správne a nesprávne_ odpovede – ide o skúmanie možností metódou pokus-omyl a budovanie intuície, čo funguje pre daný model a aplikačnú doménu. - -_Preto v tejto lekcii nie sú žiadne segmenty s riešením kódu. Namiesto toho budú v Notebooku Markdown bunky s názvom „Moje riešenie:“, ktoré ukážu jeden príklad výstupu na referenciu._ - - - -## Kontrola vedomostí - -Ktorý z nasledujúcich promptov je dobrý a zodpovedá rozumným najlepším praktikám? - -1. Ukáž mi obrázok červeného auta -2. Ukáž mi obrázok červeného auta značky Volvo a modelu XC90 zaparkovaného pri útesu pri západe slnka -3. Ukáž mi obrázok červeného auta značky Volvo a modelu XC90 - -Odpoveď: 2, je to najlepší prompt, pretože poskytuje detaily o „čom“ a ide do špecifík (nie len akékoľvek auto, ale konkrétna značka a model) a zároveň popisuje celkové prostredie. 3 je druhý najlepší, pretože tiež obsahuje veľa popisu. - -## 🚀 Výzva - -Skúste využiť techniku „signálu“ s promptom: Dokonči vetu „Ukáž mi obrázok červeného auta značky Volvo a “. Čo odpovie a ako by ste to vylepšili? - -## Skvelá práca! Pokračujte v učení - -Chcete sa dozvedieť viac o rôznych konceptoch prompt engineeringu? Navštívte [stránku s pokračujúcim vzdelávaním](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst), kde nájdete ďalšie skvelé zdroje na túto tému. - -Prejdite na Lekciu 5, kde sa pozrieme na [pokročilé techniky promptovania](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**Vyhlásenie o zodpovednosti**: -Tento dokument bol preložený pomocou AI prekladateľskej služby [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, majte na pamäti, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Originálny dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu. \ No newline at end of file + + + + + + + diff --git a/translations/sk/09-building-image-applications/README.md b/translations/sk/09-building-image-applications/README.md index 43a924be3..568cd17d8 100644 --- a/translations/sk/09-building-image-applications/README.md +++ b/translations/sk/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# Tvorba aplikácií na generovanie obrázkov - -[![Tvorba aplikácií na generovanie obrázkov](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.sk.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLM nie sú len o generovaní textu. Je tiež možné generovať obrázky na základe textových popisov. Použitie obrázkov ako modality môže byť veľmi užitočné v mnohých oblastiach, od MedTech, architektúry, turizmu, vývoja hier a ďalších. V tejto kapitole sa pozrieme na dva najpopulárnejšie modely na generovanie obrázkov, DALL-E a Midjourney. - -## Úvod - -V tejto lekcii sa budeme venovať: - -- Generovaniu obrázkov a prečo je užitočné. -- DALL-E a Midjourney, čo sú zač a ako fungujú. -- Ako vytvoriť aplikáciu na generovanie obrázkov. - -## Ciele učenia - -Po dokončení tejto lekcie budete schopní: - -- Vytvoriť aplikáciu na generovanie obrázkov. -- Definovať hranice pre vašu aplikáciu pomocou metapromptov. -- Pracovať s DALL-E a Midjourney. - -## Prečo vytvárať aplikáciu na generovanie obrázkov? - -Aplikácie na generovanie obrázkov sú skvelým spôsobom, ako preskúmať možnosti Generatívnej AI. Môžu sa použiť napríklad na: - -- **Úpravu a syntézu obrázkov**. Môžete generovať obrázky pre rôzne použitia, ako je úprava obrázkov alebo ich syntéza. - -- **Použitie v rôznych odvetviach**. Môžu sa tiež využiť na generovanie obrázkov pre rôzne odvetvia ako MedTech, turizmus, vývoj hier a ďalšie. - -## Scenár: Edu4All - -V rámci tejto lekcie budeme pokračovať v práci s naším startupom Edu4All. Študenti budú vytvárať obrázky pre svoje hodnotenia, aké obrázky to budú, záleží na nich – môžu to byť ilustrácie k vlastnej rozprávke, vytvoriť novú postavu pre svoj príbeh alebo im pomôcť vizualizovať ich nápady a koncepty. - -Tu je príklad, čo by študenti Edu4All mohli vytvoriť, ak pracujú v triede na pamiatkach: - -![Edu4All startup, trieda o pamiatkach, Eiffelova veža](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.sk.png) - -pomocou promptu - -> "Pes vedľa Eiffelovej veže v rannom slnečnom svetle" - -## Čo je DALL-E a Midjourney? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) a [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) sú dva z najpopulárnejších modelov na generovanie obrázkov, ktoré umožňujú používať prompt na generovanie obrázkov. - -### DALL-E - -Začnime s DALL-E, čo je model Generatívnej AI, ktorý generuje obrázky z textových popisov. - -> [DALL-E je kombináciou dvoch modelov, CLIP a diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP** je model, ktorý vytvára embeddingy, teda číselné reprezentácie dát, z obrázkov a textu. - -- **Diffused attention** je model, ktorý generuje obrázky z embeddingov. DALL-E je trénovaný na dátovej sade obrázkov a textov a môže sa použiť na generovanie obrázkov z textových popisov. Napríklad DALL-E môže vytvoriť obrázok mačky v klobúku alebo psa s mohavkom. - -### Midjourney - -Midjourney funguje podobne ako DALL-E, generuje obrázky z textových promptov. Midjourney tiež umožňuje generovať obrázky na základe promptov ako „mačka v klobúku“ alebo „pes s mohavkom“. - -![Obrázok vygenerovaný Midjourney, mechanický holub](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Obrázok z Wikipédie, vygenerovaný Midjourney_ - -## Ako fungujú DALL-E a Midjourney - -Najprv [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). DALL-E je model Generatívnej AI založený na architektúre transformeru s _autoregresívnym transformerom_. - -_Autoregresívny transformer_ definuje, ako model generuje obrázky z textových popisov – generuje jeden pixel po druhom a potom používa už vygenerované pixely na generovanie ďalšieho. Prechádza viacerými vrstvami v neurónovej sieti, až kým nie je obrázok kompletný. - -Týmto procesom DALL-E ovláda atribúty, objekty, charakteristiky a ďalšie prvky v generovanom obrázku. DALL-E 2 a 3 však poskytujú ešte väčšiu kontrolu nad generovaným obrázkom. - -## Vytvorenie vašej prvej aplikácie na generovanie obrázkov - -Čo je potrebné na vytvorenie aplikácie na generovanie obrázkov? Budete potrebovať tieto knižnice: - -- **python-dotenv**, odporúča sa použiť túto knižnicu na uchovávanie tajomstiev v súbore _.env_ mimo kódu. -- **openai**, táto knižnica slúži na komunikáciu s OpenAI API. -- **pillow**, na prácu s obrázkami v Pythone. -- **requests**, na vykonávanie HTTP požiadaviek. - -1. Vytvorte súbor _.env_ s nasledujúcim obsahom: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Túto informáciu nájdete v Azure Portáli pre váš zdroj v sekcii „Keys and Endpoint“. - -1. Zozbierajte vyššie uvedené knižnice do súboru _requirements.txt_ takto: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. Ďalej vytvorte virtuálne prostredie a nainštalujte knižnice: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Pre Windows použite tieto príkazy na vytvorenie a aktiváciu virtuálneho prostredia: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. Pridajte nasledujúci kód do súboru _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Vysvetlime si tento kód: - -- Najprv importujeme potrebné knižnice, vrátane OpenAI, dotenv, requests a Pillow. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Potom načítame premenné prostredia zo súboru _.env_. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- Následne nastavíme endpoint, kľúč pre OpenAI API, verziu a typ. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- Ďalej generujeme obrázok: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - Tento kód vráti JSON objekt obsahujúci URL vygenerovaného obrázka. Túto URL môžeme použiť na stiahnutie obrázka a uloženie do súboru. - -- Nakoniec otvoríme obrázok a zobrazíme ho pomocou štandardného prehliadača obrázkov: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Podrobnejšie o generovaní obrázka - -Pozrime sa podrobnejšie na kód, ktorý generuje obrázok: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** je textový prompt použitý na generovanie obrázka. V tomto prípade používame prompt „Zajko na koni, drží lízatko, na hmlistej lúke, kde rastú narcisy“. -- **size** je veľkosť generovaného obrázka. Tu generujeme obrázok s rozmermi 1024x1024 pixelov. -- **n** je počet generovaných obrázkov. V tomto prípade generujeme dva obrázky. -- **temperature** je parameter, ktorý ovláda náhodnosť výstupu modelu Generatívnej AI. Hodnota je medzi 0 a 1, kde 0 znamená deterministický výstup a 1 náhodný výstup. Predvolená hodnota je 0.7. - -Existuje ešte viac možností, čo s obrázkami robiť, o čom si povieme v ďalšej časti. - -## Ďalšie možnosti generovania obrázkov - -Doteraz ste videli, ako sme pomocou pár riadkov v Pythone vygenerovali obrázok. Existuje však viac možností, čo s obrázkami robiť. - -Môžete tiež: - -- **Upravovať obrázky**. Poskytnutím existujúceho obrázka, masky a promptu môžete obrázok zmeniť. Napríklad môžete pridať niečo do určitej časti obrázka. Predstavte si náš obrázok so zajkom, môžete mu pridať klobúk. Ako na to? Poskytnete obrázok, masku (ktorá určuje časť obrázka na zmenu) a textový prompt, ktorý popisuje, čo sa má urobiť. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - Základný obrázok by obsahoval len zajka, ale finálny obrázok by mal klobúk na zajkovi. - -- **Vytvárať variácie**. Ide o to, že vezmete existujúci obrázok a požiadate o vytvorenie jeho variácií. Na vytvorenie variácie poskytnete obrázok a textový prompt a použijete kód takto: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Poznámka: toto je podporované iba v OpenAI - -## Temperature - -Temperature je parameter, ktorý ovláda náhodnosť výstupu modelu Generatívnej AI. Hodnota je medzi 0 a 1, kde 0 znamená deterministický výstup a 1 náhodný výstup. Predvolená hodnota je 0.7. - -Pozrime sa na príklad, ako temperature funguje, keď spustíme tento prompt dvakrát: - -> Prompt: "Zajko na koni, drží lízatko, na hmlistej lúke, kde rastú narcisy" - -![Zajko na koni drží lízatko, verzia 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.sk.png) - -Teraz spustíme ten istý prompt znova, aby sme videli, že nedostaneme rovnaký obrázok dvakrát: - -![Vygenerovaný obrázok zajka na koni](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.sk.png) - -Ako vidíte, obrázky sú podobné, ale nie rovnaké. Skúsme zmeniť hodnotu temperature na 0.1 a pozrime sa, čo sa stane: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Zmena temperature - -Skúsme teda urobiť odpoveď viac deterministickou. Z dvoch vygenerovaných obrázkov vidíme, že na prvom je zajko a na druhom kôň, takže obrázky sa výrazne líšia. - -Zmeňme preto náš kód a nastavme temperature na 0, takto: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Keď teraz spustíte tento kód, dostanete tieto dva obrázky: - -- ![Temperature 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.sk.png) -- ![Temperature 0, v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.sk.png) - -Tu jasne vidíte, že obrázky sú si oveľa podobnejšie. - -## Ako definovať hranice pre vašu aplikáciu pomocou metapromptov - -S našou ukážkou už vieme generovať obrázky pre našich klientov. Potrebujeme však nastaviť hranice pre našu aplikáciu. - -Napríklad nechceme generovať obrázky, ktoré nie sú vhodné do práce alebo pre deti. - -To môžeme dosiahnuť pomocou _metapromptov_. Metaprompt sú textové prompt, ktoré slúžia na kontrolu výstupu modelu Generatívnej AI. Môžeme ich použiť na zabezpečenie, že generované obrázky sú vhodné do práce alebo pre deti. - -### Ako to funguje? - -Ako teda metaprompt fungujú? - -Metaprompt sú textové prompt, ktoré sa používajú na kontrolu výstupu modelu Generatívnej AI, umiestňujú sa pred hlavný textový prompt a slúžia na riadenie výstupu modelu. Sú zabudované v aplikáciách na kontrolu výstupu modelu. Vstupný prompt a metaprompt sú tak zabalené do jedného textového promptu. - -Príklad metapromptu by mohol vyzerať takto: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Teraz si ukážeme, ako môžeme metaprompt použiť v našej ukážke. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -Z vyššie uvedeného promptu vidíte, že všetky generované obrázky zohľadňujú metaprompt. - -## Zadanie – umožnime študentom tvoriť - -Na začiatku lekcie sme predstavili Edu4All. Teraz je čas umožniť študentom generovať obrázky pre ich hodnotenia. - -Študenti budú vytvárať obrázky pre svoje hodnotenia obsahujúce pamiatky, aké pamiatky to budú, záleží na nich. Študenti sú vyzvaní použiť svoju kreativitu a umiestniť tieto pamiatky do rôznych kontextov. - -## Riešenie - -Tu je jedno možné riešenie: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Výborná práca! Pokračujte v učení - -Po dokončení tejto lekcie si pozrite našu [kolekciu Generatívnej AI](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst), aby ste si ďalej rozširovali vedomosti o Generatívnej AI! - -Prejdite na Lekciu 10, kde sa pozrieme na to, ako [vytvárať AI aplikácie s nízkym kódom](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**Vyhlásenie o zodpovednosti**: -Tento dokument bol preložený pomocou AI prekladateľskej služby [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, majte na pamäti, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Originálny dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu. \ No newline at end of file + + + + diff --git a/translations/sk/12-designing-ux-for-ai-applications/README.md b/translations/sk/12-designing-ux-for-ai-applications/README.md index 0c00cd0c3..70a23da00 100644 --- a/translations/sk/12-designing-ux-for-ai-applications/README.md +++ b/translations/sk/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# Návrh UX pre AI aplikácie - -[![Návrh UX pre AI aplikácie](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.sk.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Kliknite na obrázok vyššie pre zobrazenie videa tejto lekcie)_ - -Používateľská skúsenosť je veľmi dôležitý aspekt pri tvorbe aplikácií. Používatelia musia byť schopní efektívne používať vašu aplikáciu na vykonávanie úloh. Efektivita je jedna vec, no zároveň musíte navrhovať aplikácie tak, aby ich mohol používať každý, teda aby boli _prístupné_. Táto kapitola sa zameria práve na túto oblasť, aby ste nakoniec navrhli aplikáciu, ktorú ľudia budú chcieť a môcť používať. - -## Úvod - -Používateľská skúsenosť je spôsob, akým používateľ interaguje a používa konkrétny produkt alebo službu, či už ide o systém, nástroj alebo dizajn. Pri vývoji AI aplikácií sa vývojári zameriavajú nielen na to, aby bola používateľská skúsenosť efektívna, ale aj etická. V tejto lekcii sa venujeme tomu, ako vytvárať aplikácie umelej inteligencie (AI), ktoré zodpovedajú potrebám používateľov. - -Lekcia pokryje nasledujúce oblasti: - -- Úvod do používateľskej skúsenosti a pochopenie potrieb používateľov -- Návrh AI aplikácií pre dôveru a transparentnosť -- Návrh AI aplikácií pre spoluprácu a spätnú väzbu - -## Ciele učenia - -Po absolvovaní tejto lekcie budete schopní: - -- Pochopiť, ako vytvárať AI aplikácie, ktoré spĺňajú potreby používateľov. -- Navrhovať AI aplikácie, ktoré podporujú dôveru a spoluprácu. - -### Predpoklady - -Venujte chvíľu času a prečítajte si viac o [používateľskej skúsenosti a design thinkingu.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Úvod do používateľskej skúsenosti a pochopenie potrieb používateľov - -V našom fiktívnom vzdelávacom startupe máme dvoch hlavných používateľov – učiteľov a študentov. Každý z nich má jedinečné potreby. Dizajn zameraný na používateľa kladie používateľa na prvé miesto a zabezpečuje, že produkty sú relevantné a prospešné pre tých, pre ktorých sú určené. - -Aplikácia by mala byť **užitočná, spoľahlivá, prístupná a príjemná**, aby poskytla dobrú používateľskú skúsenosť. - -### Použiteľnosť - -Byť užitočný znamená, že aplikácia má funkcie, ktoré zodpovedajú jej účelu, napríklad automatizácia hodnotenia alebo generovanie kartičiek na opakovanie učiva. Aplikácia, ktorá automatizuje hodnotenie, by mala byť schopná presne a efektívne priraďovať známky na základe vopred definovaných kritérií. Podobne aplikácia generujúca kartičky na opakovanie by mala vytvárať relevantné a rôznorodé otázky na základe svojich dát. - -### Spoľahlivosť - -Byť spoľahlivý znamená, že aplikácia dokáže svoju úlohu vykonávať konzistentne a bez chýb. Avšak AI, rovnako ako ľudia, nie je dokonalá a môže robiť chyby. Aplikácie môžu naraziť na chyby alebo neočakávané situácie, ktoré vyžadujú ľudský zásah alebo opravu. Ako riešite chyby? V poslednej časti tejto lekcie sa budeme venovať tomu, ako sú AI systémy a aplikácie navrhnuté pre spoluprácu a spätnú väzbu. - -### Prístupnosť - -Byť prístupný znamená rozšíriť používateľskú skúsenosť aj na používateľov s rôznymi schopnosťami, vrátane osôb so zdravotným postihnutím, aby nikto nebol vylúčený. Dodržiavaním zásad a odporúčaní pre prístupnosť sa AI riešenia stávajú inkluzívnejšími, použiteľnejšími a prospešnejšími pre všetkých používateľov. - -### Príjemnosť - -Byť príjemný znamená, že používanie aplikácie je zábavné a pohodlné. Pútavá používateľská skúsenosť môže mať pozitívny vplyv na používateľa, povzbudzujúc ho k opakovanému používaniu aplikácie a zvyšujúc tak príjmy firmy. - -![obrázok ilustrujúci úvahy o UX v AI](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.sk.png) - -Nie každý problém sa dá vyriešiť pomocou AI. AI slúži na doplnenie používateľskej skúsenosti, či už automatizáciou manuálnych úloh alebo personalizáciou používateľských zážitkov. - -## Návrh AI aplikácií pre dôveru a transparentnosť - -Budovanie dôvery je kľúčové pri navrhovaní AI aplikácií. Dôvera zabezpečuje, že používateľ má istotu, že aplikácia splní úlohu, poskytne konzistentné výsledky a výsledky budú zodpovedať jeho potrebám. Rizikom v tejto oblasti je nedôvera a prílišná dôvera. Nedôvera nastáva, keď používateľ nemá alebo má len malú dôveru v AI systém, čo vedie k odmietnutiu aplikácie. Prílišná dôvera nastáva, keď používateľ precení schopnosti AI systému, čo vedie k nadmernému spoliehaniu sa na AI. Napríklad v prípade automatizovaného hodnotenia môže prílišná dôvera viesť k tomu, že učiteľ neprekontroluje niektoré práce, aby sa uistil, že hodnotiaci systém funguje správne. To môže mať za následok nespravodlivé alebo nepresné známky pre študentov alebo stratené príležitosti na spätnú väzbu a zlepšenie. - -Dva spôsoby, ako zabezpečiť, aby dôvera bola v centre dizajnu, sú vysvetliteľnosť a kontrola. - -### Vysvetliteľnosť - -Keď AI pomáha pri rozhodovaní, napríklad pri odovzdávaní vedomostí budúcim generáciám, je pre učiteľov a rodičov kľúčové pochopiť, ako AI rozhodnutia vznikajú. To je vysvetliteľnosť – pochopenie, ako AI aplikácie prijímajú rozhodnutia. Návrh pre vysvetliteľnosť zahŕňa pridávanie príkladov toho, čo AI aplikácia dokáže. Napríklad namiesto „Začnite s AI učiteľom“ môže systém použiť: „Zhrňte si poznámky pre jednoduchšie opakovanie pomocou AI.“ - -![úvodná stránka aplikácie s jasnou ilustráciou vysvetliteľnosti v AI aplikáciách](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.sk.png) - -Ďalším príkladom je, ako AI využíva používateľské a osobné údaje. Napríklad používateľ s personou študenta môže mať obmedzenia založené na svojej persone. AI nemusí byť schopná odhaliť odpovede na otázky, ale môže pomôcť používateľa viesť k tomu, aby sám premýšľal, ako problém vyriešiť. - -![AI odpovedajúca na otázky na základe persony](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.sk.png) - -Poslednou kľúčovou súčasťou vysvetliteľnosti je zjednodušenie vysvetlení. Študenti a učitelia nemusia byť odborníkmi na AI, preto by vysvetlenia o tom, čo aplikácia dokáže alebo nedokáže, mali byť jednoduché a ľahko pochopiteľné. - -![zjednodušené vysvetlenia o schopnostiach AI](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.sk.png) - -### Kontrola - -Generatívna AI vytvára spoluprácu medzi AI a používateľom, kde napríklad používateľ môže upravovať vstupy pre rôzne výsledky. Okrem toho, keď je výstup vygenerovaný, používatelia by mali mať možnosť výsledky upravovať, čo im dáva pocit kontroly. Napríklad pri používaní Bing môžete prispôsobiť svoj vstup podľa formátu, tónu a dĺžky. Okrem toho môžete pridať zmeny do výstupu a upraviť ho, ako je to znázornené nižšie: - -![výsledky vyhľadávania Bing s možnosťami úpravy vstupu a výstupu](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.sk.png) - -Ďalšou funkciou v Bingu, ktorá umožňuje používateľovi mať kontrolu nad aplikáciou, je možnosť zapnúť alebo vypnúť používanie údajov AI. Pre školskú aplikáciu môže študent chcieť použiť svoje poznámky aj učiteľské zdroje ako materiál na opakovanie. - -![výsledky vyhľadávania Bing s možnosťami úpravy vstupu a výstupu](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.sk.png) - -> Pri navrhovaní AI aplikácií je zámernosť kľúčová, aby používatelia neprejavovali prílišnú dôveru a nekladli nereálne očakávania na schopnosti AI. Jedným zo spôsobov, ako to dosiahnuť, je vytvoriť určitý odpor medzi vstupmi a výsledkami. Pripomínať používateľovi, že ide o AI a nie o iného človeka. - -## Návrh AI aplikácií pre spoluprácu a spätnú väzbu - -Ako už bolo spomenuté, generatívna AI vytvára spoluprácu medzi používateľom a AI. Väčšina interakcií spočíva v tom, že používateľ zadá vstup a AI vygeneruje výstup. Čo ak je výstup nesprávny? Ako aplikácia rieši chyby, ak nastanú? Obviňuje AI používateľa alebo si nájde čas na vysvetlenie chyby? - -AI aplikácie by mali byť navrhnuté tak, aby prijímali a poskytovali spätnú väzbu. To nielen pomáha AI systému zlepšovať sa, ale aj buduje dôveru používateľov. V dizajne by mala byť zahrnutá spätná väzba, napríklad jednoduché palce hore alebo dole k výstupu. - -Ďalším spôsobom, ako to riešiť, je jasne komunikovať schopnosti a obmedzenia systému. Keď používateľ urobí chybu a požaduje niečo, čo AI nedokáže, mala by existovať možnosť, ako to riešiť, ako je to znázornené nižšie. - -![Poskytovanie spätnej väzby a riešenie chýb](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.sk.png) - -Chyby systému sú bežné v aplikáciách, kde používateľ môže potrebovať pomoc s informáciami mimo rozsahu AI alebo aplikácia môže mať limit na počet otázok alebo predmetov, pre ktoré môže generovať zhrnutia. Napríklad AI aplikácia trénovaná na obmedzených predmetoch, napríklad dejepis a matematika, nemusí vedieť odpovedať na otázky z geografie. Na zmiernenie tohto problému môže AI systém odpovedať napríklad: „Ospravedlňujeme sa, náš produkt bol trénovaný na nasledujúcich predmetoch..., na vašu otázku nemôžem odpovedať.“ - -AI aplikácie nie sú dokonalé, preto budú robiť chyby. Pri navrhovaní aplikácií by ste mali zabezpečiť priestor pre spätnú väzbu od používateľov a riešenie chýb spôsobom, ktorý je jednoduchý a ľahko vysvetliteľný. - -## Zadanie - -Vyberte si akékoľvek AI aplikácie, ktoré ste doteraz vytvorili, a zvážte implementáciu nasledujúcich krokov vo vašej aplikácii: - -- **Príjemnosť:** Zamyslite sa, ako môžete svoju aplikáciu spraviť príjemnejšou. Pridávate všade vysvetlenia? Povzbudzujete používateľa k objavovaniu? Ako formulujete chybové hlásenia? - -- **Použiteľnosť:** Pri tvorbe webovej aplikácie sa uistite, že je navigovateľná pomocou myši aj klávesnice. - -- **Dôvera a transparentnosť:** Neverte AI a jej výstupom úplne, zvážte, ako by ste do procesu zapojili človeka na overenie výsledkov. Tiež zvážte a implementujte ďalšie spôsoby, ako dosiahnuť dôveru a transparentnosť. - -- **Kontrola:** Dajte používateľovi kontrolu nad údajmi, ktoré poskytuje aplikácii. Implementujte možnosť, aby sa používateľ mohol rozhodnúť, či chce alebo nechce zdieľať svoje údaje v AI aplikácii. - -## Pokračujte vo svojom učení! - -Po dokončení tejto lekcie si pozrite našu [kolekciu Generatívnej AI](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) a pokračujte v rozširovaní svojich znalostí o generatívnej AI! - -Prejdite na Lekciu 13, kde sa pozrieme na to, ako [zabezpečiť AI aplikácie](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**Vyhlásenie o zodpovednosti**: -Tento dokument bol preložený pomocou AI prekladateľskej služby [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, majte na pamäti, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Originálny dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu. \ No newline at end of file + + + diff --git a/translations/sk/README.md b/translations/sk/README.md index a1f25e31b..42912694c 100644 --- a/translations/sk/README.md +++ b/translations/sk/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.sk.png) - -### 21 lekcií, ktoré vás naučia všetko, čo potrebujete vedieť na začatie tvorby aplikácií s generatívnou AI - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Podpora viacerých jazykov - -#### Podporované cez GitHub Action (automatizované a vždy aktuálne) - -[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](./README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md) - -# Generatívna AI pre začiatočníkov (verzia 3) – Kurz - -Naučte sa základy tvorby aplikácií s generatívnou AI v našom komplexnom kurze s 21 lekciami od Microsoft Cloud Advocates. - -## 🌱 Začíname - -Tento kurz obsahuje 21 lekcií. Každá lekcia sa venuje samostatnej téme, takže začnite kdekoľvek chcete! - -Lekcie sú označené ako „Learn“ (Nauč sa) – vysvetľujúce koncept generatívnej AI, alebo „Build“ (Stavaj) – ktoré vysvetľujú koncept a obsahujú príklady kódu v **Pythone** a **TypeScripte**, ak je to možné. - -Pre .NET vývojárov odporúčame [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -Každá lekcia obsahuje aj sekciu „Keep Learning“ s ďalšími vzdelávacími zdrojmi. - -## Čo potrebujete -### Na spustenie kódu z tohto kurzu môžete použiť: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **Lekcie:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **Lekcie:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **Lekcie:** "oai-assignment" - -- Základné znalosti Pythonu alebo TypeScriptu sú užitočné – \*Pre úplných začiatočníkov odporúčame tieto [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) a [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) kurzy -- GitHub účet na [forknutie tohto celého repozitára](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) do vlastného GitHub účtu - -Vytvorili sme lekciu **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)**, ktorá vám pomôže s nastavením vývojového prostredia. - -Nezabudnite [pridať tento repozitár medzi obľúbené (🌟)](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst), aby ste ho neskôr ľahšie našli. - -## 🧠 Pripravení na nasadenie? - -Ak hľadáte pokročilejšie ukážky kódu, pozrite si našu [kolekciu ukážok kódu pre generatívnu AI](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) v **Pythone** a **TypeScripte**. - -## 🗣️ Spojte sa s ostatnými študentmi, získajte podporu - -Pridajte sa na náš [oficiálny Azure AI Foundry Discord server](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst), kde môžete spoznať a nadviazať kontakty s ostatnými študentmi tohto kurzu a získať podporu. - -Pýtajte sa otázky alebo zdieľajte spätnú väzbu v našom [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum) na GitHube. - -## 🚀 Budujete startup? - -Zaregistrujte sa do [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) a získajte **bezplatné kredity na OpenAI** a až do **150 000 $ na Azure kredity na prístup k OpenAI modelom cez Azure OpenAI Services**. - -## 🙏 Chcete pomôcť? - -Máte návrhy alebo ste našli chyby v pravopise či kóde? [Otvorte issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) alebo [vytvorte pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 Každá lekcia obsahuje: - -- Krátke video s úvodom do témy -- Písanú lekciu v README -- Ukážky kódu v Pythone a TypeScripte podporujúce Azure OpenAI a OpenAI API -- Odkazy na ďalšie zdroje pre pokračovanie vo vzdelávaní - -## 🗃️ Lekcie - -| # | **Odkaz na lekciu** | **Popis** | **Video** | **Ďalšie vzdelávanie** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Ako nastaviť vývojové prostredie | Video čoskoro | [Viac informácií](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Úvod do generatívnej AI a LLM](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Pochopenie, čo je generatívna AI a ako fungujú veľké jazykové modely (LLM) | [Video](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Viac informácií](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Preskúmanie a porovnanie rôznych LLM](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Ako vybrať správny model pre váš prípad použitia | [Video](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Viac informácií](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Zodpovedné používanie generatívnej AI](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Ako zodpovedne vytvárať aplikácie s generatívnou AI | [Video](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Viac informácií](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Základy prompt engineeringu](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Praktické najlepšie postupy v prompt engineeringu | [Video](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Viac informácií](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Tvorba pokročilých promptov](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Ako aplikovať techniky prompt engineeringu, ktoré zlepšia výsledky vašich promptov | [Video](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Viac informácií](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Tvorba aplikácií na generovanie textu](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Vytvorte:** aplikáciu na generovanie textu pomocou Azure OpenAI / OpenAI API | [Video](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Viac informácií](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Tvorba chatovacích aplikácií](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Vytvorte:** techniky na efektívnu tvorbu a integráciu chatovacích aplikácií | [Video](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Viac informácií](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Tvorba vyhľadávacích aplikácií s vektorovými databázami](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Vytvorte:** vyhľadávaciu aplikáciu, ktorá používa Embeddings na vyhľadávanie dát | [Video](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Viac informácií](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Tvorba aplikácií na generovanie obrázkov](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Vytvorte:** aplikáciu na generovanie obrázkov | [Video](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Viac informácií](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Tvorba AI aplikácií s nízkym kódom](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Vytvorte:** generatívnu AI aplikáciu pomocou nástrojov Low Code | [Video](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Viac informácií](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Integrácia externých aplikácií pomocou volania funkcií](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Vytvorte:** čo je volanie funkcií a jeho využitie v aplikáciách | [Video](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Viac informácií](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [Návrh UX pre AI aplikácie](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Naučte sa:** ako aplikovať princípy UX dizajnu pri vývoji generatívnych AI aplikácií | [Video](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Viac informácií](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Zabezpečenie vašich generatívnych AI aplikácií](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Naučte sa:** hrozby a riziká pre AI systémy a spôsoby, ako tieto systémy zabezpečiť | [Video](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Viac informácií](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [Životný cyklus generatívnej AI aplikácie](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Naučte sa:** nástroje a metriky na riadenie životného cyklu LLM a LLMOps | [Video](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Viac informácií](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) a vektorové databázy](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Vytvorte:** aplikáciu využívajúcu RAG Framework na získavanie embeddings z vektorových databáz | [Video](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Viac informácií](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Open Source modely a Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Vytvorte:** aplikáciu využívajúcu open source modely dostupné na Hugging Face | [Video](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Viac informácií](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI agenti](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Vytvorte:** aplikáciu využívajúcu AI Agent Framework | [Video](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Viac informácií](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [Ladenie LLM](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Naučte sa:** čo, prečo a ako ladíme LLM | [Video](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Viac informácií](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Tvorba s SLM](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Naučte sa:** výhody tvorby s malými jazykovými modelmi | Video čoskoro | [Viac informácií](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Tvorba s Mistral modelmi](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Naučte sa:** vlastnosti a rozdiely modelov rodiny Mistral | Video čoskoro | [Viac informácií](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Tvorba s Meta modelmi](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Naučte sa:** vlastnosti a rozdiely modelov rodiny Meta | Video čoskoro | [Viac informácií](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Špeciálne poďakovanie - -Špeciálne poďakovanie patrí [**Johnovi Azizovi**](https://www.linkedin.com/in/john0isaac/) za vytvorenie všetkých GitHub Actions a workflowov - -[**Bernhardovi Merkleovi**](https://www.linkedin.com/in/bernhard-merkle-738b73/) za kľúčové príspevky ku každej lekcii, ktoré zlepšili zážitok z učenia a kódovania. - -## 🎒 Ďalšie kurzy - -Náš tím pripravuje aj ďalšie kurzy! Pozrite si: - -- [**NOVÝ** Model Context Protocol pre začiatočníkov](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI agenti pre začiatočníkov](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Generatívna AI pre začiatočníkov s .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Generatívna AI pre začiatočníkov s JavaScriptom](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [Strojové učenie pre začiatočníkov](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Dátová veda pre začiatočníkov](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI pre začiatočníkov](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Kybernetická bezpečnosť pre začiatočníkov](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Webový vývoj pre začiatočníkov](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT pre začiatočníkov](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [Vývoj XR pre začiatočníkov](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Ovládnutie GitHub Copilot pre AI párované programovanie](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Ovládnutie GitHub Copilot pre C#/.NET vývojárov](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Vyberte si vlastné dobrodružstvo s Copilotom](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Vyhlásenie o zodpovednosti**: -Tento dokument bol preložený pomocou AI prekladateľskej služby [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, majte na pamäti, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Originálny dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu. \ No newline at end of file + + + + diff --git a/translations/sl/00-course-setup/01-setup-cloud.md b/translations/sl/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..8e0bfb334 --- /dev/null +++ b/translations/sl/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/sl/00-course-setup/02-setup-local.md b/translations/sl/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..2b6b7b9fa --- /dev/null +++ b/translations/sl/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/sl/00-course-setup/03-providers.md b/translations/sl/00-course-setup/03-providers.md new file mode 100644 index 000000000..3908d777f --- /dev/null +++ b/translations/sl/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/sl/00-course-setup/README.md b/translations/sl/00-course-setup/README.md index 466d9b5fd..a64e5b5fa 100644 --- a/translations/sl/00-course-setup/README.md +++ b/translations/sl/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# Začetek s tem tečajem - -Zelo smo navdušeni, da začnete ta tečaj in vidite, kaj vas bo navdihnilo za ustvarjanje z Generativno AI! - -Da zagotovimo vaš uspeh, ta stran opisuje korake za nastavitev, tehnične zahteve in kje poiskati pomoč, če jo potrebujete. - -## Koraki za nastavitev - -Za začetek tečaja morate opraviti naslednje korake. - -### 1. Razvezi ta repozitorij - -[Razvezi celoten repozitorij](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) na svoj GitHub račun, da boste lahko spreminjali kodo in reševali izzive. Prav tako lahko [označite (🌟) ta repozitorij](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst), da ga boste lažje našli skupaj s sorodnimi repozitoriji. - -### 2. Ustvari codespace - -Da se izognete težavam z odvisnostmi pri izvajanju kode, priporočamo, da tečaj izvajate v [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst). - -To lahko ustvarite tako, da na svoji razvezi repozitorija izberete možnost `Code` in nato izberete **Codespaces**. - -![Dialog, ki prikazuje gumbe za ustvarjanje codespace](../../../00-course-setup/images/who-will-pay.webp) - -### 3. Shranjevanje vaših API ključev - -Pomembno je, da so vaši API ključi varni in zaščiteni pri gradnji katere koli aplikacije. Priporočamo, da API ključev ne shranjujete neposredno v kodo. Če bi te podatke objavili v javnem repozitoriju, bi to lahko povzročilo varnostne težave in celo nezaželene stroške, če jih uporabi zlonamerna oseba. -Tukaj je korak za korakom vodič, kako ustvariti `.env` datoteko za Python in dodati `GITHUB_TOKEN`: - -1. **Pojdite v mapo vašega projekta**: Odprite terminal ali ukazno vrstico in se premaknite v korensko mapo projekta, kjer želite ustvariti `.env` datoteko. - - ```bash - cd path/to/your/project - ``` - -2. **Ustvarite `.env` datoteko**: Uporabite svoj najljubši urejevalnik besedila za ustvarjanje nove datoteke z imenom `.env`. Če uporabljate ukazno vrstico, lahko uporabite `touch` (na Unix sistemih) ali `echo` (na Windows): - - Unix sistemi: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **Uredite `.env` datoteko**: Odprite `.env` datoteko v urejevalniku (npr. VS Code, Notepad++ ali katerem koli drugem). Dodajte naslednjo vrstico, pri čemer `your_github_token_here` zamenjajte z vašim dejanskim GitHub žetonom: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Shrani datoteko**: Shrani spremembe in zapri urejevalnik. - -5. **Namestite `python-dotenv`**: Če še niste, morate namestiti paket `python-dotenv`, da boste lahko naložili okoljske spremenljivke iz `.env` datoteke v vašo Python aplikacijo. Namestite ga lahko z `pip`: - - ```bash - pip install python-dotenv - ``` - -6. **Naložite okoljske spremenljivke v vaš Python skript**: V vašem Python skriptu uporabite paket `python-dotenv`, da naložite okoljske spremenljivke iz `.env` datoteke: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -To je to! Uspešno ste ustvarili `.env` datoteko, dodali vaš GitHub žeton in ga naložili v Python aplikacijo. - -## Kako zagnati lokalno na vašem računalniku - -Za lokalno izvajanje kode na vašem računalniku morate imeti nameščeno neko različico [Pythona](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -Nato morate repozitorij klonirati: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -Ko imate vse pripravljeno, lahko začnete! - -## Izbirni koraki - -### Namestitev Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) je lahek namestitveni program za namestitev [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Pythona in nekaj paketov. -Conda je upravljalnik paketov, ki olajša nastavitev in preklapljanje med različnimi Python [**virtualnimi okolji**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) in paketi. Prav tako je uporaben za namestitev paketov, ki niso na voljo preko `pip`. - -Sledite [MiniConda vodiču za namestitev](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst), da jo nastavite. - -Ko imate Minicondo nameščeno, morate klonirati [repozitorij](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (če tega še niste storili). - -Nato morate ustvariti virtualno okolje. Za to z Condo ustvarite novo datoteko okolja (_environment.yml_). Če sledite navodilom v Codespaces, jo ustvarite v mapi `.devcontainer`, torej `.devcontainer/environment.yml`. - -V datoteko okolja vnesite spodnjo kodo: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Če naletite na napake pri uporabi conde, lahko ročno namestite Microsoft AI knjižnice z naslednjim ukazom v terminalu. - -``` -conda install -c microsoft azure-ai-ml -``` - -Datoteka okolja določa potrebne odvisnosti. `` je ime, ki ga želite uporabiti za vaše Conda okolje, `` pa različica Pythona, ki jo želite uporabiti, na primer `3` za najnovejšo glavno različico. - -Ko je to pripravljeno, lahko ustvarite Conda okolje z izvajanjem spodnjih ukazov v ukazni vrstici/terminalu: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -Če naletite na težave, si oglejte [Conda vodič za upravljanje okolij](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst). - -### Uporaba Visual Studio Code z razširitvijo za Python - -Priporočamo uporabo urejevalnika [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) z nameščeno [razširitvijo za podporo Pythonu](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) za ta tečaj. To je priporočilo, ne pa obvezna zahteva. - -> **Opomba**: Ko odprete repozitorij tečaja v VS Code, imate možnost nastaviti projekt znotraj kontejnerja. To omogoča [posebna mapa `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) v repozitoriju tečaja. Več o tem kasneje. - -> **Opomba**: Ko klonirate in odprete mapo v VS Code, vam bo samodejno predlagal namestitev razširitve za Python. - -> **Opomba**: Če vam VS Code predlaga ponovno odpiranje repozitorija v kontejnerju, to zahtevo zavrnite, če želite uporabljati lokalno nameščeno različico Pythona. - -### Uporaba Jupyterja v brskalniku - -Projekt lahko urejate tudi v [Jupyter okolju](https://jupyter.org?WT.mc_id=academic-105485-koreyst) neposredno v brskalniku. Tako klasični Jupyter kot [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) nudita prijetno razvojno okolje z funkcijami, kot so samodejno dokončanje, poudarjanje kode itd. - -Za zagon Jupyterja lokalno odprite terminal/ukazno vrstico, pojdite v mapo tečaja in izvedite: - -```bash -jupyter notebook -``` - -ali - -```bash -jupyterhub -``` - -S tem se bo zagnal Jupyter in URL za dostop bo prikazan v ukazni vrstici. - -Ko odprete URL, boste videli strukturo tečaja in lahko dostopali do katere koli `*.ipynb` datoteke, na primer `08-building-search-applications/python/oai-solution.ipynb`. - -### Zagon v kontejnerju - -Alternativa nastavitvi vsega na vašem računalniku ali Codespace je uporaba [kontejnerja](../../../00-course-setup/). Posebna mapa `.devcontainer` v repozitoriju tečaja omogoča VS Code, da nastavi projekt znotraj kontejnerja. Izven Codespaces to zahteva namestitev Dockerja in, iskreno, vključuje nekaj dela, zato to priporočamo le tistim z izkušnjami pri delu s kontejnerji. - -Eden najboljših načinov za varno shranjevanje vaših API ključev pri uporabi GitHub Codespaces je uporaba Codespace Secrets. Za več informacij sledite vodiču za [upravljanje skrivnosti v Codespaces](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst). - -## Lekcije in tehnične zahteve - -Tečaj vsebuje 6 konceptualnih lekcij in 6 programerskih lekcij. - -Za programerske lekcije uporabljamo Azure OpenAI Service. Potrebovali boste dostop do Azure OpenAI storitve in API ključ za zagon kode. Dostop lahko zaprosite z [izpolnitvijo te prijave](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -Medtem ko čakate na obdelavo vaše prijave, vsaka programerska lekcija vsebuje tudi datoteko `README.md`, kjer si lahko ogledate kodo in rezultate. - -## Prvič uporabljate Azure OpenAI Service - -Če prvič uporabljate Azure OpenAI storitev, sledite temu vodiču, kako [ustvariti in namestiti Azure OpenAI Service vir.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## Prvič uporabljate OpenAI API - -Če prvič uporabljate OpenAI API, sledite vodiču, kako [ustvariti in uporabljati vmesnik.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## Spoznajte druge udeležence - -Ustvarili smo kanale v našem uradnem [AI Community Discord strežniku](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) za spoznavanje drugih udeležencev. To je odličen način za mreženje z drugimi podjetniki, razvijalci, študenti in vsakim, ki želi napredovati v Generativni AI. - -[![Pridruži se discord kanalu](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -Ekipa projekta bo prav tako na voljo na tem Discord strežniku, da pomaga udeležencem. - -## Prispevajte - -Ta tečaj je odprtokodna pobuda. Če opazite možnosti za izboljšave ali težave, prosimo, ustvarite [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) ali prijavite [GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -Ekipa projekta bo spremljala vse prispevke. Prispevanje v odprto kodo je odličen način za razvoj kariere v Generativni AI. - -Večina prispevkov zahteva, da se strinjate s Contributor License Agreement (CLA), s katerim izjavite, da imate pravico in dejansko podeljujete pravice za uporabo vašega prispevka. Za podrobnosti obiščite [CLA, Contributor License Agreement spletno stran](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Pomembno: pri prevajanju besedila v tem repozitoriju ne uporabljajte strojnega prevajanja. Prevajanja bomo preverjali preko skupnosti, zato prosimo, da se prijavite za prevode samo v jezikih, v katerih ste vešči. - -Ko oddate pull request, bo CLA-bot samodejno ugotovil, ali morate predložiti CLA, in ustrezno označil PR (npr. z oznako, komentarjem). Preprosto sledite navodilom bota. To boste morali storiti samo enkrat za vse repozitorije, ki uporabljajo naš CLA. - -Ta projekt je sprejel [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst). Za več informacij preberite Pogosta vprašanja o kodeksu ravnanja ali kontaktirajte [Email opencode](opencode@microsoft.com) za dodatna vprašanja ali komentarje. - -## Začnimo - -Zdaj, ko ste opravili potrebne korake za ta tečaj, začnimo z [uvodom v Generativno AI in LLM-je](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**Omejitev odgovornosti**: -Ta dokument je bil preveden z uporabo AI prevajalske storitve [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas opozarjamo, da avtomatizirani prevodi lahko vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku velja za avtoritativni vir. Za ključne informacije priporočamo strokovni človeški prevod. Za morebitna nesporazume ali napačne interpretacije, ki izhajajo iz uporabe tega prevoda, ne odgovarjamo. \ No newline at end of file + + + + diff --git a/translations/sl/00-course-setup/SETUP.md b/translations/sl/00-course-setup/SETUP.md deleted file mode 100644 index 9145082f9..000000000 --- a/translations/sl/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# Nastavite svoje razvojno okolje - -Ta repozitorij in tečaj smo nastavili z [razvojnim kontejnerjem](https://containers.dev?WT.mc_id=academic-105485-koreyst), ki ima univerzalno okolje za izvajanje, ki podpira razvoj v Python3, .NET, Node.js in Javi. Sorodna konfiguracija je definirana v datoteki `devcontainer.json`, ki se nahaja v mapi `.devcontainer/` v korenu tega repozitorija. - -Za aktivacijo razvojnega kontejnerja ga zaženite v [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (za oblačno gostovano okolje) ali v [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (za lokalno gostovano okolje). Za več podrobnosti o delovanju razvojnih kontejnerjev v VS Code preberite [to dokumentacijo](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst). - -> [!TIP] -> Priporočamo uporabo GitHub Codespaces za hiter začetek z minimalnim trudom. Ponuja velikodušno [brezplačno kvoto](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) za osebne račune. Nastavite [časovne omejitve](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst), da se neaktivni codespaces ustavijo ali izbrišejo in tako kar najbolje izkoristite svojo kvoto. - -## 1. Izvajanje nalog - -Vsaka lekcija bo imela _neobvezne_ naloge, ki so lahko na voljo v enem ali več programskih jezikih, vključno s: Python, .NET/C#, Java in JavaScript/TypeScript. Ta razdelek ponuja splošna navodila za izvajanje teh nalog. - -### 1.1 Python naloge - -Python naloge so na voljo bodisi kot aplikacije (`.py` datoteke) ali Jupyter zvezki (`.ipynb` datoteke). -- Za zagon zvezka ga odprite v Visual Studio Code, nato kliknite _Select Kernel_ (zgoraj desno) in izberite privzeto možnost Python 3. Sedaj lahko kliknete _Run All_ za izvedbo celotnega zvezka. -- Za zagon Python aplikacij iz ukazne vrstice sledite navodilom, specifičnim za nalogo, da zagotovite izbiro pravih datotek in podate zahtevane argumente. - -## 2. Nastavitev ponudnikov - -Naloge **lahko** zahtevajo delo z enim ali več Large Language Model (LLM) sistemi preko podprtih ponudnikov storitev, kot so OpenAI, Azure ali Hugging Face. Ti ponudniki nudijo _gostujočo končno točko_ (API), do katere lahko dostopamo programatsko z ustreznimi poverilnicami (API ključ ali žeton). V tem tečaju obravnavamo naslednje ponudnike: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) z različnimi modeli, vključno z osnovno serijo GPT. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) za OpenAI modele s poudarkom na pripravljenosti za podjetja - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) za odprtokodne modele in strežnik za inferenco - -**Za te vaje boste morali uporabiti svoje lastne račune**. Naloge so neobvezne, zato lahko izberete nastavitev enega, vseh ali nobenega ponudnika glede na svoje interese. Nekaj napotkov za prijavo: - -| Prijava | Cena | API ključ | Igralnica | Komentarji | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst)| [Cenik](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst)| [Na projekt](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [Brez kode, splet](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Več modelov na voljo | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst)| [Cenik](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst)| [SDK hitri začetek](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst)| [Studio hitri začetek](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Dostop je treba predhodno zaprositi](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst)| -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Cenik](https://huggingface.co/pricing) | [Dostopni žetoni](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst)| [Hugging Chat ima omejene modele](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Sledite spodnjim navodilom za _nastavitev_ tega repozitorija za uporabo z različnimi ponudniki. Naloge, ki zahtevajo določenega ponudnika, bodo v imenu datoteke vsebovale eno od teh oznak: - - `aoai` - zahteva Azure OpenAI končno točko in ključ - - `oai` - zahteva OpenAI končno točko in ključ - - `hf` - zahteva Hugging Face žeton - -Lahko nastavite enega, nobenega ali vse ponudnike. Naloge, ki zahtevajo določenega ponudnika, bodo ob manjkajočih poverilnicah preprosto vrgle napako. - -### 2.1. Ustvarite `.env` datoteko - -Predpostavljamo, da ste prebrali zgornja navodila, se prijavili pri ustreznem ponudniku in pridobili potrebne poverilnice za avtentikacijo (API_KEY ali žeton). V primeru Azure OpenAI predpostavljamo tudi, da imate veljavno namestitev Azure OpenAI storitve (končna točka) z vsaj enim GPT modelom za klepet. - -Naslednji korak je nastavitev vaših **lokalnih okoljskih spremenljivk** na naslednji način: - -1. V korenski mapi poiščite datoteko `.env.copy`, ki vsebuje nekaj takega: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Kopirajte to datoteko v `.env` z naslednjim ukazom. Ta datoteka je _gitignore-ana_, kar pomeni, da skrivnosti ostanejo varne. - - ```bash - cp .env.copy .env - ``` - -3. Izpolnite vrednosti (zamenjajte nadomestne znake na desni strani `=`) kot je opisano v naslednjem razdelku. - -3. (Opcijsko) Če uporabljate GitHub Codespaces, lahko okoljske spremenljivke shranite kot _Codespaces skrivnosti_, povezane s tem repozitorijem. V tem primeru lokalne `.env` datoteke ne boste potrebovali. **Vendar pa ta možnost deluje samo, če uporabljate GitHub Codespaces.** Če uporabljate Docker Desktop, boste še vedno morali nastaviti `.env` datoteko. - -### 2.2. Izpolnite `.env` datoteko - -Poglejmo si hitro imena spremenljivk, da razumemo, kaj predstavljajo: - -| Spremenljivka | Opis | -| :--- | :--- | -| HUGGING_FACE_API_KEY | To je uporabniški dostopni žeton, ki ste ga nastavili v svojem profilu | -| OPENAI_API_KEY | To je avtentikacijski ključ za uporabo storitve za ne-Azure OpenAI končne točke | -| AZURE_OPENAI_API_KEY | To je avtentikacijski ključ za uporabo te storitve | -| AZURE_OPENAI_ENDPOINT | To je nameščena končna točka za Azure OpenAI vir | -| AZURE_OPENAI_DEPLOYMENT | To je končna točka za namestitev modela za _generiranje besedila_ | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | To je končna točka za namestitev modela za _vektorske predstavitve besedila_ | -| | | - -Opomba: Zadnji dve spremenljivki za Azure OpenAI predstavljata privzeti model za klepet (generiranje besedila) in iskanje po vektorjih (embeddingi). Navodila za njihovo nastavitev bodo podana v ustreznih nalogah. - -### 2.3 Nastavitev Azure: iz portala - -Vrednosti za Azure OpenAI končno točko in ključ boste našli v [Azure portalu](https://portal.azure.com?WT.mc_id=academic-105485-koreyst), zato začnimo tam. - -1. Obiščite [Azure portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -1. Kliknite možnost **Keys and Endpoint** v stranski vrstici (meni na levi). -1. Kliknite **Show Keys** - videli boste: KEY 1, KEY 2 in Endpoint. -1. Za `AZURE_OPENAI_API_KEY` uporabite vrednost KEY 1. -1. Za `AZURE_OPENAI_ENDPOINT` uporabite vrednost Endpoint. - -Nato potrebujemo končne točke za specifične modele, ki smo jih namestili. - -1. Kliknite možnost **Model deployments** v stranski vrstici (meni na levi) za Azure OpenAI vir. -1. Na ciljni strani kliknite **Manage Deployments**. - -To vas bo pripeljalo do spletnega mesta Azure OpenAI Studio, kjer bomo našli ostale vrednosti, kot je opisano spodaj. - -### 2.4 Nastavitev Azure: iz studia - -1. Pojdite na [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **iz vašega vira**, kot je opisano zgoraj. -1. Kliknite zavihek **Deployments** (stranska vrstica, levo), da si ogledate trenutno nameščene modele. -1. Če želenega modela ni nameščenega, uporabite **Create new deployment** za namestitev. -1. Potrebovali boste model za _generiranje besedila_ - priporočamo: **gpt-35-turbo** -1. Potrebovali boste model za _vektorske predstavitve besedila_ - priporočamo **text-embedding-ada-002** - -Sedaj posodobite okoljske spremenljivke, da odražajo _ime namestitve_ (Deployment name), ki ste ga uporabili. Običajno je enako imenu modela, razen če ste ga izrecno spremenili. Na primer, lahko imate: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**Ne pozabite shraniti `.env` datoteke, ko končate**. Sedaj lahko zaprete datoteko in se vrnete k navodilom za zagon zvezka. - -### 2.5 Nastavitev OpenAI: iz profila - -Vaš OpenAI API ključ najdete v svojem [OpenAI računu](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). Če ga še nimate, se lahko prijavite in ustvarite API ključ. Ko imate ključ, ga lahko uporabite za izpolnitev spremenljivke `OPENAI_API_KEY` v `.env` datoteki. - -### 2.6 Nastavitev Hugging Face: iz profila - -Vaš Hugging Face žeton najdete v svojem profilu pod [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). Ne objavljajte jih ali delite javno. Namesto tega ustvarite nov žeton za uporabo v tem projektu in ga kopirajte v `.env` datoteko pod spremenljivko `HUGGING_FACE_API_KEY`. _Opomba:_ Tehnično to ni API ključ, vendar se uporablja za avtentikacijo, zato ohranjamo to poimenovanje zaradi doslednosti. - -**Omejitev odgovornosti**: -Ta dokument je bil preveden z uporabo AI prevajalske storitve [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas opozarjamo, da avtomatizirani prevodi lahko vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku velja za avtoritativni vir. Za ključne informacije priporočamo strokovni človeški prevod. Za morebitna nesporazume ali napačne interpretacije, ki izhajajo iz uporabe tega prevoda, ne odgovarjamo. \ No newline at end of file diff --git a/translations/sl/04-prompt-engineering-fundamentals/README.md b/translations/sl/04-prompt-engineering-fundamentals/README.md index 59d1cdb10..ebc8627f1 100644 --- a/translations/sl/04-prompt-engineering-fundamentals/README.md +++ b/translations/sl/04-prompt-engineering-fundamentals/README.md @@ -1,444 +1,15 @@ - -# Osnove oblikovanja pozivov (Prompt Engineering) - -[![Prompt Engineering Fundamentals](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.sl.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Uvod -Ta modul zajema ključne pojme in tehnike za ustvarjanje učinkovitih pozivov v generativnih AI modelih. Pomembno je tudi, kako napišete svoj poziv za LLM. Dobro zasnovan poziv lahko prinese bolj kakovosten odgovor. Kaj pa pravzaprav pomenita izraza _poziv_ in _oblikovanje pozivov_? In kako izboljšati poziv (_input_), ki ga pošljemo LLM? Na ta vprašanja bomo poskušali odgovoriti v tem in naslednjem poglavju. - -_Generativna AI_ je sposobna ustvarjati novo vsebino (npr. besedilo, slike, zvok, kodo itd.) kot odziv na uporabniške zahteve. To dosega z uporabo _velikih jezikovnih modelov_ (LLM), kot je serija GPT podjetja OpenAI ("Generative Pre-trained Transformer"), ki so usposobljeni za uporabo naravnega jezika in kode. - -Uporabniki lahko zdaj z modeli komunicirajo preko znanih načinov, kot je klepet, brez potrebe po tehničnem znanju ali usposabljanju. Modeli so _pozivno usmerjeni_ – uporabniki pošljejo besedilni vhod (poziv) in prejmejo AI odgovor (dopolnilo). Nato lahko z AI "klepetajo" večkrat zapored, izboljšujejo svoj poziv, dokler odgovor ne ustreza njihovim pričakovanjem. - -"Pozivi" so zdaj glavni _programski vmesnik_ za generativne AI aplikacije, saj modelom povedo, kaj naj naredijo, in vplivajo na kakovost vrnjenih odgovorov. "Oblikovanje pozivov" je hitro rastoče področje, ki se osredotoča na _načrtovanje in optimizacijo_ pozivov za zagotavljanje doslednih in kakovostnih odgovorov v velikem obsegu. - -## Cilji učenja - -V tej lekciji se bomo naučili, kaj je oblikovanje pozivov, zakaj je pomembno in kako lahko ustvarimo učinkovitejše pozive za določen model in cilje aplikacije. Spoznali bomo osnovne pojme in najboljše prakse oblikovanja pozivov ter se naučili o interaktivnem okolju Jupyter Notebook, kjer lahko te koncepte preizkusimo na resničnih primerih. - -Na koncu lekcije bomo znali: - -1. Pojasniti, kaj je oblikovanje pozivov in zakaj je pomembno. -2. Opisati sestavne dele poziva in kako se uporabljajo. -3. Spoznati najboljše prakse in tehnike oblikovanja pozivov. -4. Uporabiti naučene tehnike na resničnih primerih z uporabo OpenAI končne točke. - -## Ključni pojmi - -**Oblikovanje pozivov:** Praksa načrtovanja in izboljševanja vhodov, da AI modeli proizvedejo želene izhode. -**Tokenizacija:** Proces pretvarjanja besedila v manjše enote, imenovane tokeni, ki jih model lahko razume in obdela. -**Instruction-Tuned LLMs:** Veliki jezikovni modeli, ki so dodatno prilagojeni z navodili za izboljšanje natančnosti in relevantnosti odgovorov. - -## Učno okolje (Sandbox) - -Oblikovanje pozivov je trenutno bolj umetnost kot znanost. Najboljši način za izboljšanje intuicije je _več vadbe_ in pristop poskusov in napak, ki združuje strokovno znanje s priporočenimi tehnikami in optimizacijami, specifičnimi za model. - -Jupyter Notebook, ki spremlja to lekcijo, ponuja _sandbox_ okolje, kjer lahko preizkusite, kar se naučite – sproti ali kot del izziva na koncu. Za izvajanje vaj potrebujete: - -1. **Azure OpenAI API ključ** – končno točko za nameščen LLM. -2. **Python Runtime** – okolje za izvajanje Notebooka. -3. **Lokalne okoljske spremenljivke** – _izvedite [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) korake, da se pripravite_. - -Notebook vsebuje _začetne_ vaje, a ste vabljeni, da dodate svoje _Markdown_ (opisne) in _Code_ (pozivne zahteve) odseke, da preizkusite več primerov ali idej ter razvijete intuicijo za oblikovanje pozivov. - -## Ilustriran vodič - -Želite dobiti celostno sliko, kaj ta lekcija zajema, preden se poglobite? Oglejte si ta ilustriran vodič, ki vam predstavi glavne teme in ključne ugotovitve za razmislek. Načrt lekcije vas vodi od razumevanja osnovnih pojmov in izzivov do njihove rešitve z ustreznimi tehnikami in najboljšimi praksami oblikovanja pozivov. Upoštevajte, da se oddelek "Napredne tehnike" v tem vodiču nanaša na vsebino, ki jo obravnavamo v _naslednjem_ poglavju tega kurikuluma. - -![Ilustriran vodič za oblikovanje pozivov](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.sl.png) - -## Naš startup - -Pogovorimo se, kako se _ta tema_ povezuje z našo poslanstvom startupa, da [prinesemo AI inovacije v izobraževanje](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). Želimo razvijati AI-podprte aplikacije za _personalizirano učenje_ – zato razmislimo, kako bi različni uporabniki naše aplikacije lahko "oblikovali" pozive: - -- **Administratorji** lahko AI prosijo, naj _analizira podatke učnih načrtov in identificira vrzeli v pokritosti_. AI lahko povzame rezultate ali jih vizualizira s kodo. -- **Učitelji** lahko AI prosijo, naj _ustvari učni načrt za ciljno skupino in temo_. AI lahko sestavi personaliziran načrt v določenem formatu. -- **Študenti** lahko AI prosijo, naj jih _poučuje v zahtevni temi_. AI lahko vodi študente z lekcijami, namigi in primeri, prilagojenimi njihovi ravni. - -To je le vrh ledene gore. Oglejte si [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) – odprtokodno knjižnico pozivov, ki jo urejajo strokovnjaki za izobraževanje – da dobite širši vpogled v možnosti! _Poskusite nekaj teh pozivov v sandboxu ali v OpenAI Playground in poglejte, kaj se zgodi!_ - - - -## Kaj je oblikovanje pozivov? - -Lekcijo smo začeli z definicijo **oblikovanja pozivov** kot procesa _načrtovanja in optimizacije_ besedilnih vhodov (pozivov), da zagotovimo dosledne in kakovostne odgovore (doplnitve) za določen cilj aplikacije in model. To lahko razumemo kot dvostopenjski proces: - -- _načrtovanje_ začetnega poziva za določen model in cilj -- _izboljševanje_ poziva iterativno, da izboljšamo kakovost odgovora - -To je nujno proces poskusov in napak, ki zahteva uporabniško intuicijo in trud za dosego optimalnih rezultatov. Zakaj je torej pomembno? Da odgovorimo na to vprašanje, moramo najprej razumeti tri pojme: - -- _Tokenizacija_ = kako model "vidi" poziv -- _Osnovni LLM_ = kako temeljni model "obdeluje" poziv -- _Instruction-Tuned LLM_ = kako model zdaj lahko "razume naloge" - -### Tokenizacija - -LLM pozive vidi kot _zaporedje tokenov_, pri čemer različni modeli (ali različice modela) lahko isti poziv tokenizirajo različno. Ker so LLM usposobljeni na tokenih (in ne na surovem besedilu), ima način tokenizacije neposreden vpliv na kakovost generiranega odgovora. - -Za boljšo predstavo, kako tokenizacija deluje, preizkusite orodja, kot je [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst), prikazano spodaj. Kopirajte svoj poziv in poglejte, kako se pretvori v tokene, pri čemer bodite pozorni na obravnavo presledkov in ločil. Upoštevajte, da ta primer prikazuje starejši LLM (GPT-3) – zato lahko z novejšim modelom dobite drugačen rezultat. - -![Tokenizacija](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.sl.png) - -### Pojem: Temeljni modeli - -Ko je poziv tokeniziran, je glavna naloga ["Osnovnega LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (ali temeljnega modela) napovedati naslednji token v zaporedju. Ker so LLM usposobljeni na ogromnih besedilnih zbirkah, dobro poznajo statistične povezave med tokeni in lahko to napoved opravijo z določeno gotovostjo. Pomembno je, da ne razumejo _pomena_ besed v pozivu ali tokenu; vidijo le vzorec, ki ga lahko "doplnijo" z naslednjo napovedjo. Napovedovanje lahko nadaljujejo, dokler jih uporabnik ne prekine ali ne nastopi vnaprej določena pogoj. - -Želite videti, kako deluje dopolnjevanje na podlagi poziva? Vnesite zgornji poziv v Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) z privzetimi nastavitvami. Sistem je nastavljen tako, da pozive obravnava kot zahteve po informacijah – zato bi morali videti dopolnilo, ki ustreza temu kontekstu. - -Kaj pa, če uporabnik želi videti nekaj specifičnega, kar ustreza določenim kriterijem ali cilju naloge? Tu pridejo na vrsto _instruction-tuned_ LLM. - -![Osnovni LLM klepet](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.sl.png) - -### Pojem: Instruction-Tuned LLM - -[Instruction-Tuned LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) izhaja iz temeljnega modela, ki ga dodatno prilagodijo z zgledi ali pari vhod/izhodi (npr. večkrožna "sporočila"), ki vsebujejo jasna navodila – AI pa skuša slediti tem navodilom. - -Uporablja tehnike, kot je okrepljeno učenje s povratnimi informacijami ljudi (RLHF), ki model naučijo _slediti navodilom_ in _učiti se iz povratnih informacij_, da proizvede odgovore, ki so bolj primerni za praktične aplikacije in bolj relevantni za uporabniške cilje. - -Poskusimo – ponovno uporabite zgornji poziv, a zdaj spremenite _sistemsko sporočilo_ tako, da vsebuje naslednje navodilo kot kontekst: - -> _Povzemite vsebino, ki vam je dana, za učenca drugega razreda. Rezultat naj bo en odstavek s 3-5 ključnimi točkami._ - -Vidite, kako je rezultat zdaj prilagojen želenemu cilju in formatu? Učitelj lahko ta odgovor neposredno uporabi v svojih predstavitvah za ta razred. - -![Instruction-Tuned LLM klepet](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.sl.png) - -## Zakaj potrebujemo oblikovanje pozivov? - -Zdaj, ko vemo, kako LLM obdelujejo pozive, poglejmo, _zakaj_ potrebujemo oblikovanje pozivov. Odgovor je v tem, da trenutni LLM predstavljajo številne izzive, zaradi katerih je težje doseči _zanesljive in dosledne dopolnitve_ brez vloženega truda v konstrukcijo in optimizacijo pozivov. Na primer: - -1. **Odgovori modela so stohastični.** _Isti poziv_ bo verjetno dal različne odgovore z različnimi modeli ali različicami modela. Tudi z _istim modelom_ se lahko rezultati razlikujejo ob različnih časih. _Tehnike oblikovanja pozivov nam pomagajo zmanjšati te razlike z boljšimi varovali_. - -2. **Modeli lahko izmišljajo odgovore.** Modeli so predhodno usposobljeni na _velikih, a omejenih_ podatkovnih nizih, zato nimajo znanja o konceptih zunaj tega obsega. Posledično lahko ustvarijo odgovore, ki so netočni, izmišljeni ali neposredno v nasprotju z znanimi dejstvi. _Tehnike oblikovanja pozivov pomagajo uporabnikom prepoznati in omiliti takšne izmišljotine, npr. z zahtevo po navedbah ali obrazložitvah_. - -3. **Zmožnosti modelov se razlikujejo.** Novejši modeli ali generacije modelov imajo bogatejše zmožnosti, a prinašajo tudi posebnosti in kompromis med stroški in kompleksnostjo. _Oblikovanje pozivov nam pomaga razviti najboljše prakse in delovne tokove, ki abstraktno obravnavajo razlike in se prilagajajo zahtevam posameznih modelov na skalabilen in nemoten način_. - -Poglejmo to v praksi v OpenAI ali Azure OpenAI Playground: - -- Uporabite isti poziv z različnimi LLM namestitvami (npr. OpenAI, Azure OpenAI, Hugging Face) – ste opazili razlike? -- Uporabite isti poziv večkrat z _istim_ LLM (npr. Azure OpenAI playground) – kako so se razlikovali ti odgovori? - -### Primer izmišljotin - -V tem tečaju uporabljamo izraz **"izmišljotina"** za pojav, ko LLM včasih ustvarijo dejansko netočne informacije zaradi omejitev v usposabljanju ali drugih dejavnikov. V popularnih člankih ali raziskavah ste morda slišali izraz _"halucinacije"_. Vendar močno priporočamo uporabo izraza _"izmišljotina"_, da ne antropomorfiziramo vedenja z dodeljevanjem človeških lastnosti stroju. To tudi podpira [smernice za odgovorno AI](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) z vidika terminologije, saj odstranjuje izraze, ki bi lahko bili v nekaterih kontekstih žaljivi ali neinkluzivni. - -Želite dobiti občutek, kako delujejo izmišljotine? Pomislite na poziv, ki AI naroči, naj ustvari vsebino o neobstoječi temi (da zagotovite, da je ni v učnem naboru). Na primer – poskusil sem ta poziv: -# Načrt učne ure: Marsovska vojna leta 2076 - -## Cilji učne ure -- Razumeti vzroke in potek Marsovske vojne leta 2076 -- Analizirati ključne dogodke in njihove posledice -- Razviti kritično mišljenje o vplivu vojne na medplanetarno politiko - -## Uvod (10 minut) -- Kratek pregled zgodovine Marsa pred letom 2076 -- Predstavitev glavnih akterjev v vojni -- Pojasnilo, zakaj je vojna izbruhnila - -## Glavni del (30 minut) -- Podrobna razlaga poteka vojne - - Prve spopade in strategije - - Tehnološki napredki uporabljeni v vojni - - Ključne bitke in njihovi izidi -- Vpliv vojne na civilno prebivalstvo -- Mednarodni odzivi in posredovanja - -## Aktivnost (15 minut) -- Razdelitev v skupine: vsaka skupina analizira določen vidik vojne (npr. vojaška taktika, diplomacija, tehnologija) -- Predstavitev ugotovitev skupin - -## Zaključek (5 minut) -- Povzetek glavnih točk učne ure -- Diskusija o tem, kako bi se lahko izognili podobnim konfliktom v prihodnosti - -## Domača naloga -- Napisati esej o tem, kako je Marsovska vojna leta 2076 vplivala na razvoj medplanetarnih odnosov v naslednjih desetletjih -Spletno iskanje mi je pokazalo, da obstajajo izmišljeni zapisi (npr. televizijske serije ali knjige) o marsovskih vojnah – vendar nobenih za leto 2076. Zdrava pamet nam tudi pove, da je leto 2076 _v prihodnosti_ in zato ne more biti povezano z resničnim dogodkom. - -Kaj se torej zgodi, ko ta poziv zaženemo pri različnih ponudnikih LLM? - -> **Odgovor 1**: OpenAI Playground (GPT-35) - -![Odgovor 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.sl.png) - -> **Odgovor 2**: Azure OpenAI Playground (GPT-35) - -![Odgovor 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.sl.png) - -> **Odgovor 3**: : Hugging Face Chat Playground (LLama-2) - -![Odgovor 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.sl.png) - -Kot smo pričakovali, vsak model (ali različica modela) zaradi stohastičnega vedenja in razlik v zmogljivostih modela ustvari nekoliko različne odgovore. Na primer, en model cilja na občinstvo 8. razreda, medtem ko drugi predpostavlja dijaka srednje šole. Vsi trije modeli pa so vseeno ustvarili odgovore, ki bi lahko prepričali neinformiranega uporabnika, da je dogodek resničen. - -Tehnike oblikovanja pozivov, kot sta _metaprompting_ in _nastavitev temperature_, lahko do neke mere zmanjšajo izmišljotine modela. Nove _arhitekture_ oblikovanja pozivov prav tako brezhibno vključujejo nova orodja in tehnike v potek poziva, da omilijo ali zmanjšajo nekatere od teh učinkov. - -## Študija primera: GitHub Copilot - -Zaključimo ta del z vpogledom, kako se oblikovanje pozivov uporablja v resničnih rešitvah, in si ogledamo eno študijo primera: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot je vaš "AI par programer" – pretvarja besedilne pozive v dokončanja kode in je integriran v vaše razvojno okolje (npr. Visual Studio Code) za nemoteno uporabniško izkušnjo. Kot je dokumentirano v spodnji seriji blogov, je bila najzgodnejša različica osnovana na modelu OpenAI Codex – inženirji so hitro spoznali potrebo po dodatnem prilagajanju modela in razvoju boljših tehnik oblikovanja pozivov za izboljšanje kakovosti kode. Julija so [predstavili izboljšan AI model, ki presega Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) za še hitrejše predloge. - -Preberite objave v zaporedju, da sledite njihovi učni poti. - -- **Maj 2023** | [GitHub Copilot postaja boljši pri razumevanju vaše kode](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **Maj 2023** | [Znotraj GitHuba: delo z LLM-ji za GitHub Copilot](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Junij 2023** | [Kako napisati boljše pozive za GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Julij 2023** | [GitHub Copilot presega Codex z izboljšanim AI modelom](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Julij 2023** | [Vodnik za razvijalce o oblikovanju pozivov in LLM-jih](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **September 2023** | [Kako zgraditi poslovno aplikacijo LLM: lekcije iz GitHub Copilot](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -Lahko si ogledate tudi njihov [inženirski blog](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) za več objav, kot je [ta](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst), ki prikazuje, kako se ti modeli in tehnike _uporabljajo_ za poganjanje resničnih aplikacij. - ---- - - - -## Gradnja poziva - -Videli smo, zakaj je oblikovanje pozivov pomembno – zdaj pa razumimo, kako so pozivi _zgrajeni_, da lahko ocenimo različne tehnike za učinkovitejše oblikovanje pozivov. - -### Osnovni poziv - -Začnimo z osnovnim pozivom: besedilni vnos, poslan modelu brez dodatnega konteksta. Tukaj je primer – ko pošljemo prvih nekaj besed ameriške himne OpenAI [Completion API-ju](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst), ta takoj _dokonča_ odgovor z naslednjimi vrsticami, kar ilustrira osnovno vedenje napovedovanja. - -| Poziv (vnos) | Dokončanje (izhod) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | Zdi se, da začenjate z besedilom "The Star-Spangled Banner," ameriške narodne himne. Celoten tekst je ... | - -### Kompleksen poziv - -Zdaj dodajmo osnovnemu pozivu kontekst in navodila. [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) nam omogoča sestavo kompleksnega poziva kot zbirke _sporočil_ z: - -- pari vhod/izhod, ki odražajo _uporabnikov_ vnos in _pomočnikove_ odgovore, -- sistemskim sporočilom, ki določa kontekst za vedenje ali osebnost pomočnika. - -Zahteva je zdaj v spodnji obliki, kjer _tokenizacija_ učinkovito zajame relevantne informacije iz konteksta in pogovora. Sprememba sistemskega konteksta lahko tako močno vpliva na kakovost dokončanj kot tudi uporabniški vnosi. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Navodilo poziva - -V zgornjih primerih je bil uporabnikov poziv preprosto besedilno vprašanje, ki ga lahko razumemo kot zahtevo po informacijah. Z _navodili_ v pozivih lahko to besedilo uporabimo za natančnejšo opredelitev naloge in AI-ju damo boljše smernice. Tukaj je primer: - -| Poziv (vnos) | Dokončanje (izhod) | Vrsta navodila | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :----------------- | -| Napiši opis državljanske vojne | _vrnjen preprost odstavek_ | Preprosto | -| Napiši opis državljanske vojne. Navedite ključne datume in dogodke ter opišite njihov pomen | _vrnjen odstavek, sledil je seznam ključnih datumov dogodkov z opisi_ | Kompleksno | -| Napiši opis državljanske vojne v enem odstavku. Navedite 3 ključne datume z njihovim pomenom v alinejah. Navedite še 3 alineje s pomembnimi zgodovinskimi osebnostmi in njihovimi prispevki. Izpis vrni kot JSON datoteko | _vrne obsežnejše podrobnosti v besedilnem polju, oblikovane kot JSON, ki ga lahko kopirate v datoteko in po potrebi preverite_ | Kompleksno. Oblikovan. | - -## Primarna vsebina - -V zgornjih primerih je bil poziv še vedno precej odprt, kar je LLM-ju omogočalo, da sam odloči, kateri del svojega predhodno naučenega nabora podatkov je relevanten. Z oblikovnim vzorcem _primarna vsebina_ je vhodno besedilo razdeljeno na dva dela: - -- navodilo (dejanje) -- relevantna vsebina (ki vpliva na dejanje) - -Tukaj je primer, kjer je navodilo "povzemi to v 2 stavkih". - -| Poziv (vnos) | Dokončanje (izhod) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter je peti planet od Sonca in največji v Osončju. Je plinski velikan z maso, ki je tisočinka mase Sonca, a dve in pol krat večja od mase vseh ostalih planetov v Osončju skupaj. Jupiter je eden najsvetlejših objektov, ki so vidni s prostim očesom na nočnem nebu, in je bil znan starodavnim civilizacijam že pred zapisano zgodovino. Ime je dobil po rimskem bogu Jupiterju.[19] Ko ga opazujemo z Zemlje, je Jupiter lahko dovolj svetel, da njegova odsevna svetloba meče vidne sence,[20] in je povprečno tretji najsvetlejši naravni objekt na nočnem nebu po Luni in Veneri.
**Povzemi to v 2 kratkih stavkih** | Jupiter, peti planet od Sonca, je največji v Osončju in velja za enega najsvetlejših objektov na nočnem nebu. Ime je dobil po rimskem bogu Jupiterju, je plinski velikan z maso, ki je dve in pol krat večja od mase vseh ostalih planetov v Osončju skupaj. | - -Segment primarne vsebine lahko uporabimo na različne načine za učinkovitejša navodila: - -- **Primeri** – namesto da modelu eksplicitno povemo, kaj naj naredi, mu damo primere, kaj naj naredi, in naj sam ugotovi vzorec. -- **Namigi** – navodilu sledimo z "namigom", ki usmerja dokončanje in vodi model k bolj relevantnim odgovorom. -- **Predloge** – to so ponovljive 'recepture' za pozive z rezerviranimi mesti (spremenljivkami), ki jih lahko prilagodimo z podatki za specifične primere uporabe. - -Poglejmo si te prakse v akciji. - -### Uporaba primerov - -To je pristop, kjer uporabimo primarno vsebino, da "nahranimo model" z nekaj primeri želenega izhoda za dano navodilo in mu dovolimo, da sam ugotovi vzorec za želeni izhod. Glede na število podanih primerov lahko govorimo o zero-shot, one-shot, few-shot pozivanju itd. - -Poziv zdaj sestavljajo trije deli: - -- opis naloge -- nekaj primerov želenega izhoda -- začetek novega primera (ki postane implicitni opis naloge) - -| Tip učenja | Poziv (vnos) | Dokončanje (izhod) | -| :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| Zero-shot | "The Sun is Shining". Prevedi v španščino | "El Sol está brillando". | -| One-shot | "The Sun is Shining" => "El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| Few-shot | Igralec je pretekel baze => Baseball
Igralec je zadel as => Tenis
Igralec je zadel šestico => Kriket
Igralec je naredil slam-dunk => | Košarka | -| | | | - -Opazite, da smo pri zero-shot pozivanju morali dati eksplicitno navodilo ("Prevedi v španščino"), medtem ko se to v one-shot primeru implicitno razume. Primer few-shot pa pokaže, kako dodajanje več primerov omogoča modelom natančnejše sklepe brez dodatnih navodil. - -### Namigi za poziv - -Druga tehnika uporabe primarne vsebine je, da namesto primerov zagotovimo _namige_. V tem primeru modelu damo rahlo spodbudo z začetkom, ki odraža želeni format odgovora. Model nato "sprejme namig" in nadaljuje v istem slogu. - -| Število namigov | Poziv (vnos) | Dokončanje (izhod) | -| :-------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Jupiter je peti planet od Sonca in največji v Osončju. Je plinski velikan z maso, ki je tisočinka mase Sonca, a dve in pol krat večja od mase vseh ostalih planetov v Osončju skupaj. Jupiter je eden najsvetlejših objektov, ki so vidni s prostim očesom na nočnem nebu, in je bil znan starodavnim civilizacijam že pred zapisano zgodovino. - -**Povzetek tega** | Jupiter je največji planet v našem Osončju in peti po vrsti od Sonca. Je plinski velikan z maso, ki je 1/1000 mase Sonca, a je težji od vseh ostalih planetov skupaj. Stare civilizacije so Jupitra poznale že dolgo časa, in je lahko viden na nočnem nebu. | -| 1 | Jupiter je peti planet od Sonca in največji v Osončju. Je plinski velikan z maso, ki je ena tisočinka mase Sonca, a je dvakrat in pol težji od vseh ostalih planetov skupaj. Jupiter je eden najsvetlejših objektov, ki so vidni s prostim očesom na nočnem nebu, in je bil poznan starodavnim civilizacijam že pred začetkom pisane zgodovine.
**Povzetek tega**
Naučili smo se, da je Jupiter | peti planet od Sonca in največji v Osončju. Je plinski velikan z maso, ki je ena tisočinka mase Sonca, a dvakrat in pol težji od vseh ostalih planetov skupaj. Je lahko viden s prostim očesom in je poznan že od antičnih časov. | -| 2 | Jupiter je peti planet od Sonca in največji v Osončju. Je plinski velikan z maso, ki je ena tisočinka mase Sonca, a je dvakrat in pol težji od vseh ostalih planetov skupaj. Jupiter je eden najsvetlejših objektov, ki so vidni s prostim očesom na nočnem nebu, in je bil poznan starodavnim civilizacijam že pred začetkom pisane zgodovine.
**Povzetek tega**
Top 3 dejstva, ki smo jih izvedeli: | 1. Jupiter je peti planet od Sonca in največji v Osončju.
2. Je plinski velikan z maso, ki je ena tisočinka mase Sonca...
3. Jupiter je bil viden s prostim očesom že v antičnih časih ... | -| | | | - -### Predloge za pozive - -Predloga za poziv je _vnaprej določena receptura za poziv_, ki jo lahko shranimo in po potrebi ponovno uporabimo, da zagotovimo bolj dosledne uporabniške izkušnje v večjem obsegu. V najpreprostejši obliki je to zbirka primerov pozivov, kot je [ta od OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst), ki vsebuje tako interaktivne komponente poziva (uporabniška in sistemska sporočila) kot tudi format zahteve prek API-ja – za podporo ponovni uporabi. - -V bolj zapleteni obliki, kot je [ta primer od LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst), vsebuje _zamenljive dele_, ki jih lahko nadomestimo z različnimi podatki (uporabniški vnos, sistemski kontekst, zunanji viri itd.) za dinamično generiranje poziva. To nam omogoča ustvarjanje knjižnice ponovno uporabnih pozivov, ki se lahko **programsko** uporabljajo za zagotavljanje doslednih uporabniških izkušenj v večjem obsegu. - -Prava vrednost predlog pa je v možnosti ustvarjanja in objave _knjižnic pozivov_ za vertikalne aplikacijske domene – kjer je predloga poziva zdaj _optimizirana_ tako, da odraža specifičen kontekst aplikacije ali primere, ki naredijo odgovore bolj relevantne in natančne za ciljno uporabniško publiko. Repozitorij [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) je odličen primer tega pristopa, saj zbira knjižnico pozivov za področje izobraževanja s poudarkom na ključnih ciljih, kot so načrtovanje lekcij, oblikovanje kurikuluma, poučevanje študentov itd. - -## Podporna vsebina - -Če razmišljamo o sestavi poziva kot o navodilu (nalogi) in cilju (primarni vsebini), potem je _sekundarna vsebina_ kot dodaten kontekst, ki ga zagotovimo, da **nekako vpliva na izhod**. To so lahko nastavitve, navodila za oblikovanje, taksonomije tem itd., ki pomagajo modelu _prilagoditi_ odgovor, da ustreza želenim uporabniškim ciljem ali pričakovanjem. - -Na primer: Glede na katalog tečajev z obsežnimi metapodatki (ime, opis, raven, oznake metapodatkov, inštruktor itd.) za vse razpoložljive tečaje v kurikulumu: - -- lahko določimo navodilo, da "povzamemo katalog tečajev za jesen 2023" -- uporabimo primarno vsebino za nekaj primerov želenega izhoda -- uporabimo sekundarno vsebino za identifikacijo top 5 "oznak" zanimanja. - -Model lahko nato poda povzetek v formatu, prikazanem v nekaj primerih – a če ima rezultat več oznak, lahko prednostno obravnava 5 oznak, določenih v sekundarni vsebini. - ---- - - - -## Najboljše prakse pri oblikovanju pozivov - -Zdaj, ko vemo, kako lahko pozive _sestavimo_, lahko začnemo razmišljati, kako jih _zasnovati_, da odražajo najboljše prakse. To lahko razdelimo na dva dela – imeti pravi _miselni okvir_ in uporabiti prave _tehnike_. - -### Miselni okvir za oblikovanje pozivov - -Oblikovanje pozivov je proces poskusov in napak, zato imejte v mislih tri široke vodilne dejavnike: - -1. **Razumevanje domene je pomembno.** Natančnost in relevantnost odgovora sta odvisni od _domena_, v kateri aplikacija ali uporabnik deluje. Uporabite svojo intuicijo in strokovno znanje domene za **prilagoditev tehnik**. Na primer, določite _osebnosti specifične za domeno_ v sistemskih pozivih ali uporabite _predloge specifične za domeno_ v uporabniških pozivih. Zagotovite sekundarno vsebino, ki odraža kontekste specifične za domeno, ali uporabite _namige in primere specifične za domeno_, da usmerite model k znanim vzorcem uporabe. - -2. **Razumevanje modela je pomembno.** Vemo, da so modeli po naravi stohastični. A implementacije modelov se lahko razlikujejo glede na uporabljene učne podatke (predhodno naučeno znanje), zmogljivosti, ki jih nudijo (npr. prek API-ja ali SDK-ja) in vrsto vsebine, za katero so optimizirani (npr. koda, slike, besedilo). Razumite prednosti in omejitve modela, ki ga uporabljate, in to znanje uporabite za _prioritizacijo nalog_ ali izdelavo _prilagojenih predlog_, optimiziranih za zmogljivosti modela. - -3. **Ponavljanje in preverjanje sta pomembna.** Modeli se hitro razvijajo, prav tako tehnike oblikovanja pozivov. Kot strokovnjak za domeno lahko imate dodatne kontekste ali kriterije za _vašo_ specifično aplikacijo, ki morda ne veljajo za širšo skupnost. Uporabite orodja in tehnike oblikovanja pozivov za "zagon" sestave poziva, nato ponavljajte in preverjajte rezultate z lastno intuicijo in strokovnim znanjem. Zabeležite svoje ugotovitve in ustvarite **bazo znanja** (npr. knjižnice pozivov), ki jo lahko drugi uporabijo kot novo izhodišče za hitrejše iteracije v prihodnosti. - -## Najboljše prakse - -Poglejmo zdaj pogoste najboljše prakse, ki jih priporočajo [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) in [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst) strokovnjaki. - -| Kaj | Zakaj | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Ocenite najnovejše modele. | Nove generacije modelov imajo verjetno izboljšane funkcije in kakovost – a lahko prinesejo tudi višje stroške. Ocenite njihov vpliv in se nato odločite za migracijo. | -| Ločite navodila in kontekst | Preverite, ali vaš model/ponudnik določa _ločila_ za jasnejšo razliko med navodili, primarno in sekundarno vsebino. To lahko pomaga modelom natančneje dodeliti uteži posameznim tokenom. | -| Bodite specifični in jasni | Podajte več podrobnosti o želenem kontekstu, izidu, dolžini, formatu, slogu itd. To izboljša tako kakovost kot doslednost odgovorov. Recepti naj bodo zajeti v ponovno uporabnih predlogah. | -| Bodite opisni, uporabite primere | Modeli se lahko bolje odzovejo na pristop "pokaži in povej". Začnite z `zero-shot` pristopom, kjer podate navodilo (brez primerov), nato poskusite `few-shot` kot izboljšavo, kjer podate nekaj primerov želenega izhoda. Uporabite analogije. | -| Uporabite namige za zagon | Usmerite model k želenemu izidu tako, da mu podate nekaj začetnih besed ali fraz, ki jih lahko uporabi kot izhodišče za odgovor. | -| Ponovite, če je potrebno | Včasih je treba modelu ponoviti navodila. Podajte navodila pred in po primarni vsebini, uporabite navodilo in namig itd. Ponavljajte in preverjajte, kaj deluje. | -| Pomemben je vrstni red | Vrstni red, v katerem modelu predstavite informacije, lahko vpliva na izhod, tudi v učnih primerih, zaradi pristranskosti do nedavnih informacij. Preizkusite različne možnosti, da vidite, kaj deluje najbolje. | -| Dajte modelu možnost "izhoda" | Dajte modelu _rezervni_ odgovor, ki ga lahko poda, če iz kakršnega koli razloga ne more dokončati naloge. To zmanjša možnost, da model generira napačne ali izmišljene odgovore. | -| | | - -Kot pri vsaki najboljši praksi, ne pozabite, da _se lahko vaša izkušnja razlikuje_ glede na model, nalogo in domeno. Uporabite jih kot izhodišče in ponavljajte, da najdete, kaj vam najbolj ustreza. Proces oblikovanja pozivov nenehno ponovno ocenjujte, ko so na voljo novi modeli in orodja, s poudarkom na razširljivosti procesa in kakovosti odgovorov. - - - -## Naloga - -Čestitke! Prišli ste do konca lekcije! Čas je, da nekaj teh konceptov in tehnik preizkusite na pravih primerih! - -Za nalogo bomo uporabili Jupyter Notebook z vajami, ki jih lahko interaktivno rešujete. Notebook lahko tudi razširite z lastnimi Markdown in Code celicami, da sami raziskujete ideje in tehnike. - -### Za začetek, naredite fork repozitorija, nato - -- (Priporočeno) Zaženite GitHub Codespaces -- (Alternativno) Klonirajte repozitorij na lokalni računalnik in ga uporabite z Docker Desktop -- (Alternativno) Odprite Notebook v svojem priljubljenem okolju za zagon Notebookov. - -### Nato nastavite svoje okoljske spremenljivke - -- Kopirajte datoteko `.env.copy` iz korena repozitorija v `.env` in izpolnite vrednosti `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` in `AZURE_OPENAI_DEPLOYMENT`. Nato se vrnite na [razdelek Learning Sandbox](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals), da se naučite, kako. - -### Nato odprite Jupyter Notebook - -- Izberite jedro za zagon. Če uporabljate možnosti 1 ali 2, preprosto izberite privzeto Python 3.10.x jedro, ki ga zagotavlja razvojno okolje. - -Pripravljeni ste za izvajanje vaj. Upoštevajte, da tukaj ni _pravih ali napačnih_ odgovorov – gre za raziskovanje možnosti z metodo poskusov in napak ter gradnjo intuicije, kaj deluje za določen model in domeno uporabe. - -_Zaradi tega v tej lekciji ni segmentov s kodo rešitve. Namesto tega bo v Notebooku nekaj Markdown celic z naslovom "Moja rešitev:", ki prikazujejo en primer izhoda za referenco._ - - - -## Preverjanje znanja - -Kateri od naslednjih pozivov je dober in sledi nekaterim razumnih najboljših praks? - -1. Pokaži mi sliko rdečega avtomobila -2. Pokaži mi sliko rdečega avtomobila znamke Volvo in modela XC90, parkiranega ob pečini ob zahajajočem soncu -3. Pokaži mi sliko rdečega avtomobila znamke Volvo in modela XC90 - -Odgovor: 2, je najboljši poziv, saj poda podrobnosti o "čemu" in gre v specifičnosti (ne samo kateri koli avto, ampak določen model in znamka) ter opisuje tudi okolje. 3 je naslednji najboljši, saj vsebuje veliko opisov. - -## 🚀 Izziv - -Poskusi uporabiti tehniko "namiga" s pozivom: Dokončaj stavek "Pokaži mi sliko rdečega avtomobila znamke Volvo in ". Kako se odzove in kako bi ga izboljšal? - -## Odlično delo! Nadaljujte z učenjem - -Želite izvedeti več o različnih konceptih oblikovanja pozivov? Obiščite [stran za nadaljnje učenje](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst), kjer boste našli druge odlične vire o tej temi. - -Pojdite na Lekcijo 5, kjer bomo pogledali [napredne tehnike oblikovanja pozivov](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**Omejitev odgovornosti**: -Ta dokument je bil preveden z uporabo storitve za avtomatski prevod AI [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas opozarjamo, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku velja za avtoritativni vir. Za ključne informacije priporočamo strokovni človeški prevod. Za morebitna nesporazume ali napačne interpretacije, ki izhajajo iz uporabe tega prevoda, ne odgovarjamo. \ No newline at end of file + + + + + + + diff --git a/translations/sl/09-building-image-applications/README.md b/translations/sl/09-building-image-applications/README.md index b2fc214ec..5c32a84b8 100644 --- a/translations/sl/09-building-image-applications/README.md +++ b/translations/sl/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# Gradnja aplikacij za generiranje slik - -[![Gradnja aplikacij za generiranje slik](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.sl.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLM-ji niso namenjeni le generiranju besedil. Prav tako je mogoče ustvarjati slike na podlagi besedilnih opisov. Slike kot modaliteta so lahko zelo uporabne na številnih področjih, od MedTech, arhitekture, turizma, razvoja iger in še več. V tem poglavju bomo spoznali dva najbolj priljubljena modela za generiranje slik, DALL-E in Midjourney. - -## Uvod - -V tej lekciji bomo obravnavali: - -- Generiranje slik in zakaj je koristno. -- DALL-E in Midjourney, kaj sta in kako delujeta. -- Kako zgraditi aplikacijo za generiranje slik. - -## Cilji učenja - -Po zaključku te lekcije boste znali: - -- Zgraditi aplikacijo za generiranje slik. -- Določiti meje vaše aplikacije z meta pozivi. -- Delati z DALL-E in Midjourney. - -## Zakaj zgraditi aplikacijo za generiranje slik? - -Aplikacije za generiranje slik so odličen način za raziskovanje zmogljivosti Generativne AI. Uporabljajo se lahko na primer za: - -- **Urejanje in sintezo slik**. Lahko ustvarjate slike za različne primere uporabe, kot so urejanje in sinteza slik. - -- **Uporaba v različnih panogah**. Prav tako jih lahko uporabite za generiranje slik v različnih panogah, kot so Medtech, turizem, razvoj iger in še več. - -## Scenarij: Edu4All - -Kot del te lekcije bomo nadaljevali delo z našim startupom Edu4All. Študenti bodo ustvarjali slike za svoje ocene, kakšne slike bodo točno, pa je prepuščeno njim – lahko so ilustracije za njihovo pravljico, ustvarijo nove like za svojo zgodbo ali pa jim pomagajo vizualizirati njihove ideje in koncepte. - -Tukaj je primer, kaj bi lahko študenti Edu4All ustvarili, če delajo v razredu o spomenikih: - -![Edu4All startup, razred o spomenikih, Eifflov stolp](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.sl.png) - -z uporabo poziva, kot je - -> "Pes ob Eifflovem stolpu v zgodnjih jutranjih sončnih žarkih" - -## Kaj sta DALL-E in Midjourney? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) in [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) sta dva najbolj priljubljena modela za generiranje slik, ki omogočata ustvarjanje slik na podlagi pozivov. - -### DALL-E - -Začnimo z DALL-E, ki je model Generativne AI, ki ustvarja slike iz besedilnih opisov. - -> [DALL-E je kombinacija dveh modelov, CLIP in diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP** je model, ki ustvarja vdelave (embeddings), to so numerične predstavitve podatkov, iz slik in besedil. - -- **Diffused attention** je model, ki ustvarja slike iz teh vdelav. DALL-E je usposobljen na naboru slik in besedil ter se uporablja za generiranje slik iz besedilnih opisov. Na primer, DALL-E lahko ustvari sliko mačke s klobukom ali psa z mohawkom. - -### Midjourney - -Midjourney deluje podobno kot DALL-E, ustvarja slike na podlagi besedilnih pozivov. Midjourney lahko prav tako generira slike z uporabo pozivov, kot so “mačka s klobukom” ali “pes z mohawkom”. - -![Slika, ustvarjena z Midjourney, mehanski golob](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Slika: Wikipedia, slika ustvarjena z Midjourney_ - -## Kako delujeta DALL-E in Midjourney - -Najprej [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). DALL-E je model Generativne AI, ki temelji na arhitekturi transformatorja z _avtoregresivnim transformatorjem_. - -Avtoregresivni transformator določa, kako model ustvarja slike iz besedilnih opisov – generira en piksel naenkrat in nato uporabi ustvarjene piksle za generiranje naslednjega. Prehaja skozi več plasti v nevronski mreži, dokler slika ni dokončana. - -S tem postopkom DALL-E nadzoruje atribute, predmete, značilnosti in še več v ustvarjeni sliki. Vendar pa imata DALL-E 2 in 3 večji nadzor nad generirano sliko. - -## Gradnja vaše prve aplikacije za generiranje slik - -Kaj potrebujete za gradnjo aplikacije za generiranje slik? Potrebujete naslednje knjižnice: - -- **python-dotenv**, priporočamo uporabo te knjižnice za shranjevanje skrivnosti v datoteko _.env_, ločeno od kode. -- **openai**, ta knjižnica omogoča interakcijo z OpenAI API. -- **pillow**, za delo s slikami v Pythonu. -- **requests**, za pošiljanje HTTP zahtevkov. - -1. Ustvarite datoteko _.env_ z naslednjo vsebino: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Te podatke poiščite v Azure Portalu za vaš vir v razdelku "Keys and Endpoint". - -1. Zberite zgornje knjižnice v datoteko _requirements.txt_ tako: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. Nato ustvarite virtualno okolje in namestite knjižnice: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Za Windows uporabite naslednje ukaze za ustvarjanje in aktivacijo virtualnega okolja: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. Dodajte naslednjo kodo v datoteko _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Pojasnimo to kodo: - -- Najprej uvozimo potrebne knjižnice, vključno z OpenAI, dotenv, requests in Pillow. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Nato naložimo okoljske spremenljivke iz datoteke _.env_. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- Po tem nastavimo endpoint, ključ za OpenAI API, verzijo in tip. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- Nato generiramo sliko: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - Zgornja koda vrne JSON objekt, ki vsebuje URL generirane slike. URL lahko uporabimo za prenos slike in shranjevanje v datoteko. - -- Na koncu odpremo sliko in jo prikažemo z običajnim pregledovalnikom slik: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Več podrobnosti o generiranju slike - -Poglejmo kodo, ki generira sliko, podrobneje: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** je besedilni poziv, ki se uporablja za generiranje slike. V tem primeru uporabljamo poziv "Zajček na konju, ki drži liziko, na megleni travi, kjer rastejo narcise". -- **size** je velikost generirane slike. V tem primeru ustvarjamo sliko velikosti 1024x1024 pikslov. -- **n** je število generiranih slik. V tem primeru ustvarjamo dve sliki. -- **temperature** je parameter, ki nadzoruje naključnost izhoda modela Generativne AI. Temperatura je vrednost med 0 in 1, kjer 0 pomeni determinističen izhod, 1 pa naključen. Privzeta vrednost je 0,7. - -Obstaja še več možnosti za delo s slikami, ki jih bomo obravnavali v naslednjem razdelku. - -## Dodatne zmogljivosti generiranja slik - -Do zdaj ste videli, kako lahko z nekaj vrsticami kode v Pythonu ustvarimo sliko. Vendar pa lahko s slikami naredite še več. - -Lahko tudi: - -- **Izvajate urejanja**. Z obstoječo sliko, masko in pozivom lahko spremenite sliko. Na primer, lahko dodate nekaj na določen del slike. Predstavljajte si našo sliko zajčka, lahko mu dodate klobuk. To naredite tako, da zagotovite sliko, masko (ki označuje del slike za spremembo) in besedilni poziv, ki pove, kaj naj se naredi. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - Osnovna slika vsebuje samo zajčka, končna pa ima na zajčku klobuk. - -- **Ustvarite variacije**. Ideja je, da vzamete obstoječo sliko in zahtevate, da se ustvarijo njene variacije. Za ustvarjanje variacije zagotovite sliko, besedilni poziv in kodo, kot je ta: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Opomba: to je podprto samo pri OpenAI - -## Temperatura - -Temperatura je parameter, ki nadzoruje naključnost izhoda modela Generativne AI. Temperatura je vrednost med 0 in 1, kjer 0 pomeni determinističen izhod, 1 pa naključen. Privzeta vrednost je 0,7. - -Poglejmo primer, kako temperatura deluje, tako da ta poziv zaženemo dvakrat: - -> Poziv: "Zajček na konju, ki drži liziko, na megleni travi, kjer rastejo narcise" - -![Zajček na konju, ki drži liziko, različica 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.sl.png) - -Zdaj zaženimo isti poziv še enkrat, da vidimo, da ne bosta nastali isti sliki: - -![Generirana slika zajčka na konju](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.sl.png) - -Kot vidite, sta sliki podobni, a ne enaki. Poskusimo spremeniti vrednost temperature na 0,1 in poglejmo, kaj se zgodi: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Spreminjanje temperature - -Poskusimo narediti odgovor bolj determinističen. Iz dveh generiranih slik lahko opazimo, da je na prvi sliki zajček, na drugi pa konj, torej se sliki precej razlikujeta. - -Spremenimo torej kodo in nastavimo temperaturo na 0, tako: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Ko zaženete to kodo, dobite ti dve sliki: - -- ![Temperatura 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.sl.png) -- ![Temperatura 0, v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.sl.png) - -Tukaj jasno vidite, da si sliki bolj podobni. - -## Kako določiti meje vaše aplikacije z metapozivi - -Z našim demo že lahko generiramo slike za naše uporabnike. Vendar pa moramo določiti nekatere meje za našo aplikacijo. - -Na primer, ne želimo generirati slik, ki niso primerne za delo ali niso primerne za otroke. - -To lahko naredimo z _metapozivi_. Metapozivi so besedilni pozivi, ki se uporabljajo za nadzor izhoda modela Generativne AI. Na primer, z metapozivi lahko nadzorujemo izhod in zagotovimo, da so generirane slike primerne za delo ali otroke. - -### Kako to deluje? - -Kako torej delujejo metapozivi? - -Metapozivi so besedilni pozivi, ki se uporabljajo za nadzor izhoda modela Generativne AI, postavljeni so pred glavni besedilni poziv in se uporabljajo za nadzor izhoda modela ter so vključeni v aplikacije za nadzor izhoda modela. Združujejo vhodni poziv in metapoziv v en sam besedilni poziv. - -Primer metapoziva bi bil naslednji: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Poglejmo zdaj, kako lahko metapozive uporabimo v našem demo. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -Iz zgornjega poziva lahko vidite, da vse ustvarjene slike upoštevajo metapoziv. - -## Naloga – omogočimo študentom - -Na začetku lekcije smo predstavili Edu4All. Zdaj je čas, da študentom omogočimo generiranje slik za njihove ocene. - -Študenti bodo ustvarjali slike z motivi spomenikov, točno kateri spomeniki pa so prepuščeni njim. Študenti naj pri tem uporabijo svojo ustvarjalnost in postavijo spomenike v različne kontekste. - -## Rešitev - -Tukaj je ena možna rešitev: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Odlično delo! Nadaljujte z učenjem - -Po zaključku te lekcije si oglejte našo [Generative AI Learning collection](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) in nadaljujte z nadgrajevanjem znanja o Generativni AI! - -Pojdite na Lekcijo 10, kjer bomo pogledali, kako [graditi AI aplikacije z nizko kodo](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**Omejitev odgovornosti**: -Ta dokument je bil preveden z uporabo AI prevajalske storitve [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas opozarjamo, da avtomatizirani prevodi lahko vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku velja za avtoritativni vir. Za ključne informacije priporočamo strokovni človeški prevod. Za morebitna nesporazume ali napačne interpretacije, ki izhajajo iz uporabe tega prevoda, ne odgovarjamo. \ No newline at end of file + + + + diff --git a/translations/sl/12-designing-ux-for-ai-applications/README.md b/translations/sl/12-designing-ux-for-ai-applications/README.md index fcf506730..04a38c139 100644 --- a/translations/sl/12-designing-ux-for-ai-applications/README.md +++ b/translations/sl/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# Oblikovanje UX za AI aplikacije - -[![Oblikovanje UX za AI aplikacije](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.sl.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Kliknite na zgornjo sliko za ogled videa te lekcije)_ - -Uporabniška izkušnja je zelo pomemben vidik pri razvoju aplikacij. Uporabniki morajo lahko vašo aplikacijo uporabljati učinkovito za opravljanje nalog. Učinkovitost je ena stvar, vendar morate aplikacije oblikovati tudi tako, da jih lahko uporablja vsakdo, torej da so _dostopne_. Ta poglavje se bo osredotočilo na to področje, da boste na koncu oblikovali aplikacijo, ki jo ljudje lahko in želijo uporabljati. - -## Uvod - -Uporabniška izkušnja opisuje, kako uporabnik sodeluje in uporablja določen izdelek ali storitev, naj bo to sistem, orodje ali oblikovanje. Pri razvoju AI aplikacij razvijalci ne skrbijo le za učinkovito uporabniško izkušnjo, ampak tudi za etičnost. V tej lekciji bomo obravnavali, kako zgraditi aplikacije umetne inteligence (AI), ki zadovoljujejo potrebe uporabnikov. - -Lekcija bo zajemala naslednja področja: - -- Uvod v uporabniško izkušnjo in razumevanje potreb uporabnikov -- Oblikovanje AI aplikacij za zaupanje in preglednost -- Oblikovanje AI aplikacij za sodelovanje in povratne informacije - -## Cilji učenja - -Po opravljeni lekciji boste znali: - -- Razumeti, kako zgraditi AI aplikacije, ki zadovoljujejo potrebe uporabnikov. -- Oblikovati AI aplikacije, ki spodbujajo zaupanje in sodelovanje. - -### Predpogoji - -Vzemite si čas in preberite več o [uporabniški izkušnji in oblikovalskem razmišljanju.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Uvod v uporabniško izkušnjo in razumevanje potreb uporabnikov - -V našem izmišljenem izobraževalnem startupu imamo dva glavna uporabnika, učitelje in učence. Vsak od njiju ima svoje edinstvene potrebe. Oblikovanje, osredotočeno na uporabnika, postavlja uporabnika v ospredje in zagotavlja, da so izdelki relevantni in koristni za tiste, za katere so namenjeni. - -Aplikacija mora biti **uporabna, zanesljiva, dostopna in prijetna**, da zagotovi dobro uporabniško izkušnjo. - -### Uporabnost - -Biti uporaben pomeni, da ima aplikacija funkcionalnosti, ki ustrezajo njenemu namenu, na primer avtomatizacijo ocenjevanja ali ustvarjanje kartic za ponavljanje. Aplikacija, ki avtomatizira ocenjevanje, mora natančno in učinkovito dodeljevati ocene na podlagi vnaprej določenih kriterijev. Podobno mora aplikacija, ki ustvarja kartice za ponavljanje, ustvarjati relevantna in raznolika vprašanja na podlagi svojih podatkov. - -### Zanesljivost - -Biti zanesljiv pomeni, da aplikacija dosledno in brez napak opravlja svoje naloge. Vendar pa AI, tako kot ljudje, ni popolna in je lahko dovzetna za napake. Aplikacije se lahko srečajo z napakami ali nepričakovanimi situacijami, ki zahtevajo človeško posredovanje ali popravke. Kako ravnate z napakami? V zadnjem delu te lekcije bomo obravnavali, kako so AI sistemi in aplikacije oblikovani za sodelovanje in povratne informacije. - -### Dostopnost - -Biti dostopen pomeni razširiti uporabniško izkušnjo na uporabnike z različnimi zmožnostmi, vključno z osebami z invalidnostmi, da nihče ni izključen. Sledenje smernicam in načelom dostopnosti naredi AI rešitve bolj vključujoče, uporabne in koristne za vse uporabnike. - -### Prijetnost - -Biti prijeten pomeni, da je uporaba aplikacije prijetna. Privlačna uporabniška izkušnja lahko pozitivno vpliva na uporabnika, ga spodbuja k ponovni uporabi aplikacije in povečuje poslovni prihodek. - -![slika, ki prikazuje UX premisleke v AI](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.sl.png) - -Ne moremo rešiti vseh izzivov z AI. AI pride v poštev kot dopolnilo uporabniški izkušnji, naj bo to avtomatizacija ročnih opravil ali personalizacija uporabniških izkušenj. - -## Oblikovanje AI aplikacij za zaupanje in preglednost - -Gradnja zaupanja je ključna pri oblikovanju AI aplikacij. Zaupanje zagotavlja, da je uporabnik prepričan, da bo aplikacija opravila delo, dosledno dostavila rezultate in da so ti rezultati tisto, kar uporabnik potrebuje. Tveganje na tem področju sta nezaupanje in preveliko zaupanje. Nezaupanje nastane, ko uporabnik nima ali ima zelo malo zaupanja v AI sistem, kar vodi do zavrnitve aplikacije. Preveliko zaupanje pa nastane, ko uporabnik preceni zmogljivosti AI sistema, kar vodi do prevelikega zaupanja. Na primer, avtomatiziran sistem ocenjevanja lahko pri prevelikem zaupanju privede do tega, da učitelj ne pregleda nekaterih nalog, da preveri pravilnost ocenjevanja. To lahko povzroči nepravične ali netočne ocene za učence ali zamujene priložnosti za povratne informacije in izboljšave. - -Dva načina, da zaupanje postavimo v središče oblikovanja, sta razložljivost in nadzor. - -### Razložljivost - -Ko AI pomaga pri odločanju, na primer pri prenašanju znanja na prihodnje generacije, je ključno, da učitelji in starši razumejo, kako AI sprejema odločitve. To je razložljivost – razumevanje, kako AI aplikacije sprejemajo odločitve. Oblikovanje za razložljivost vključuje dodajanje primerov, kaj AI aplikacija zmore. Na primer, namesto "Začni z AI učiteljem" lahko sistem uporabi: "Povzemite svoje zapiske za lažje ponavljanje z AI." - -![pristajalna stran aplikacije z jasno ilustracijo razložljivosti v AI aplikacijah](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.sl.png) - -Drug primer je, kako AI uporablja uporabniške in osebne podatke. Na primer, uporabnik s persono učenca ima lahko omejitve glede na svojo persono. AI morda ne bo mogel razkriti odgovorov na vprašanja, lahko pa pomaga uporabnika usmeriti, kako razmisliti o rešitvi problema. - -![AI odgovarja na vprašanja glede na persono](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.sl.png) - -Zadnji ključni del razložljivosti je poenostavitev razlag. Učenci in učitelji morda niso strokovnjaki za AI, zato morajo biti razlage o tem, kaj aplikacija lahko ali ne more narediti, preproste in lahko razumljive. - -![poenostavljene razlage o zmogljivostih AI](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.sl.png) - -### Nadzor - -Generativna AI ustvarja sodelovanje med AI in uporabnikom, kjer lahko uporabnik na primer spreminja pozive za različne rezultate. Poleg tega naj bi uporabniki lahko po generiranju izhoda tudi spreminjali rezultate, kar jim daje občutek nadzora. Na primer, pri uporabi Binga lahko prilagodite poziv glede na format, ton in dolžino. Prav tako lahko dodate spremembe in prilagodite izhod, kot je prikazano spodaj: - -![rezultati iskanja v Bingu z možnostmi za spreminjanje poziva in izhoda](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.sl.png) - -Druga funkcija v Bingu, ki uporabniku omogoča nadzor nad aplikacijo, je možnost, da se odloči za vključitev ali izključitev podatkov, ki jih AI uporablja. Za šolsko aplikacijo bi učenec morda želel uporabiti svoje zapiske in tudi učiteljeve vire kot gradivo za ponavljanje. - -![rezultati iskanja v Bingu z možnostmi za spreminjanje poziva in izhoda](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.sl.png) - -> Pri oblikovanju AI aplikacij je ključna namernost, da uporabniki ne zaupajo preveč in ne postavijo nerealnih pričakovanj glede zmogljivosti. Eden od načinov za to je ustvarjanje trenja med pozivi in rezultati. Spomniti uporabnika, da gre za AI in ne za drugega človeka. - -## Oblikovanje AI aplikacij za sodelovanje in povratne informacije - -Kot smo že omenili, generativna AI ustvarja sodelovanje med uporabnikom in AI. Večina interakcij poteka tako, da uporabnik vnese poziv, AI pa ustvari izhod. Kaj pa, če je izhod napačen? Kako aplikacija ravna z napakami, če se pojavijo? Ali AI krivi uporabnika ali si vzame čas za razlago napake? - -AI aplikacije bi morale biti zasnovane tako, da sprejemajo in dajejo povratne informacije. To ne le pomaga izboljšati AI sistem, ampak tudi gradi zaupanje med uporabniki. V oblikovanje je treba vključiti povratno zanko, na primer preprost palec gor ali dol za izhod. - -Drug način za ravnanje s tem je jasno sporočanje zmogljivosti in omejitev sistema. Ko uporabnik naredi napako in zahteva nekaj, kar presega zmogljivosti AI, mora obstajati tudi način za obravnavo tega, kot je prikazano spodaj. - -![Dajanje povratnih informacij in ravnanje z napakami](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.sl.png) - -Sistemske napake so pogoste pri aplikacijah, kjer uporabnik morda potrebuje pomoč z informacijami zunaj obsega AI ali pa ima aplikacija omejitev glede števila vprašanj/predmetov, za katere lahko uporabnik ustvari povzetke. Na primer, AI aplikacija, usposobljena z omejenimi podatki o predmetih, kot sta zgodovina in matematika, morda ne bo zmogla obravnavati vprašanj iz geografije. Da bi to omilili, lahko AI sistem odgovori z: "Oprostite, naš izdelek je bil usposobljen z podatki za naslednje predmete..., ne morem odgovoriti na vaše vprašanje." - -AI aplikacije niso popolne, zato bodo zagotovo delale napake. Pri oblikovanju aplikacij morate zagotoviti prostor za povratne informacije uporabnikov in ravnanje z napakami na preprost in lahko razumljiv način. - -## Naloga - -Vzemite katero koli AI aplikacijo, ki ste jo doslej razvili, in razmislite o uvedbi spodnjih korakov v vaši aplikaciji: - -- **Prijetnost:** Razmislite, kako lahko vašo aplikacijo naredite bolj prijetno. Ali dodajate razlage povsod? Ali spodbujate uporabnika k raziskovanju? Kako oblikujete sporočila o napakah? - -- **Uporabnost:** Gradite spletno aplikacijo. Poskrbite, da bo vaša aplikacija dostopna tako z miško kot s tipkovnico. - -- **Zaupanje in preglednost:** Ne zaupajte AI in njenim izhodom povsem. Razmislite, kako bi vključili človeka v proces za preverjanje izhoda. Prav tako razmislite in izvedite druge načine za dosego zaupanja in preglednosti. - -- **Nadzor:** Dajte uporabniku nadzor nad podatki, ki jih posreduje aplikaciji. Uvedite možnost, da se uporabnik lahko odloči za vključitev ali izključitev zbiranja podatkov v AI aplikaciji. - -## Nadaljujte z učenjem! - -Po zaključku te lekcije si oglejte našo [Generative AI Learning collection](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) in nadgradite svoje znanje o generativni AI! - -Pojdite na Lekcijo 13, kjer bomo pogledali, kako [zagotoviti varnost AI aplikacij](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**Omejitev odgovornosti**: -Ta dokument je bil preveden z uporabo storitve za avtomatski prevod AI [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas opozarjamo, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku velja za avtoritativni vir. Za ključne informacije priporočamo strokovni človeški prevod. Za morebitne nesporazume ali napačne interpretacije, ki izhajajo iz uporabe tega prevoda, ne odgovarjamo. \ No newline at end of file + + + diff --git a/translations/sl/README.md b/translations/sl/README.md index 6d705098c..9e6544dfc 100644 --- a/translations/sl/README.md +++ b/translations/sl/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.sl.png) - -### 21 lekcij, ki te naučijo vsega, kar potrebuješ za začetek gradnje aplikacij Generativne umetne inteligence - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Podpora za več jezikov - -#### Podprto preko GitHub Action (avtomatizirano in vedno posodobljeno) - -[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](./README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md) - -# Generativna umetna inteligenca za začetnike (različica 3) - tečaj - -Nauči se osnov gradnje aplikacij Generativne umetne inteligence z našim obsežnim tečajem, ki ga pripravljajo Microsoft Cloud Advocates. - -## 🌱 Začetek - -Ta tečaj vsebuje 21 lekcij. Vsaka lekcija pokriva svojo temo, zato začni kjerkoli želiš! - -Lekcije so označene kot "Learn" lekcije, ki razlagajo koncept Generativne AI, ali "Build" lekcije, ki razložijo koncept in prikažejo primere kode v **Python** in **TypeScript**, kjer je to mogoče. - -Za .NET razvijalce je na voljo [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -Vsaka lekcija vsebuje tudi razdelek "Keep Learning" z dodatnimi učnimi viri. - -## Kaj potrebuješ -### Za zagon kode iz tega tečaja lahko uporabiš: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **Lekcije:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **Lekcije:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **Lekcije:** "oai-assignment" - -- Osnovno znanje Pythona ali TypeScripta je koristno - \*Za popolne začetnike si oglej ta [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) in [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) tečaja -- GitHub račun za [fork celotnega repozitorija](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) na svoj GitHub račun - -Pripravili smo lekcijo **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)**, ki ti pomaga pri nastavitvi razvojnega okolja. - -Ne pozabi [ozvezditi (🌟) tega repozitorija](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst), da ga boš lažje našel kasneje. - -## 🧠 Pripravljen za objavo? - -Če iščeš bolj napredne primere kode, si oglej našo [zbirko primerov kode za Generativno AI](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) v **Pythonu** in **TypeScriptu**. - -## 🗣️ Spoznaj druge udeležence, pridobi podporo - -Pridruži se našemu [uradnemu Azure AI Foundry Discord strežniku](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst), kjer lahko spoznaš in povežeš z drugimi, ki obiskujejo ta tečaj, ter dobiš podporo. - -Postavljaj vprašanja ali deli povratne informacije o izdelku v našem [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum) na GitHubu. - -## 🚀 Gradiš startup? - -Prijavi se na [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) in prejmi **brezplačne OpenAI kredite** ter do **150.000 $ Azure kreditov za dostop do OpenAI modelov preko Azure OpenAI Services**. - -## 🙏 Želiš pomagati? - -Imaš predloge ali si našel napake v črkovanju ali kodi? [Odpri issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) ali [ustvari pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 Vsaka lekcija vsebuje: - -- Kratek video uvod v temo -- Pisno lekcijo v README datoteki -- Primere kode v Pythonu in TypeScriptu, ki podpirajo Azure OpenAI in OpenAI API -- Povezave do dodatnih virov za nadaljnje učenje - -## 🗃️ Lekcije - -| # | **Povezava do lekcije** | **Opis** | **Video** | **Dodatno učenje** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Kako nastaviti razvojno okolje | Video kmalu na voljo | [Več informacij](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introduction to Generative AI and LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Razumevanje, kaj je Generativna AI in kako delujejo veliki jezikovni modeli (LLM) | [Video](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Več informacij](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Exploring and comparing different LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Kako izbrati pravi model za tvojo uporabo | [Video](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Več informacij](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Using Generative AI Responsibly](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Kako odgovorno graditi aplikacije Generativne AI | [Video](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Več informacij](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Understanding Prompt Engineering Fundamentals](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Praktične najboljše prakse za prompt engineering | [Video](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Več informacij](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Creating Advanced Prompts](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Kako uporabiti tehnike prompt engineering za izboljšanje rezultatov tvojih pozivov | [Video](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Več informacij](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Gradnja aplikacij za generiranje besedil](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Izdelava:** Aplikacija za generiranje besedil z uporabo Azure OpenAI / OpenAI API | [Video](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Več informacij](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Gradnja klepetalnih aplikacij](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Izdelava:** Tehnike za učinkovito gradnjo in integracijo klepetalnih aplikacij | [Video](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Več informacij](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Gradnja iskalnih aplikacij z vektorskimi bazami](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Izdelava:** Iskalna aplikacija, ki uporablja Embeddings za iskanje podatkov | [Video](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Več informacij](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Gradnja aplikacij za generiranje slik](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Izdelava:** Aplikacija za generiranje slik | [Video](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Več informacij](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Gradnja AI aplikacij z nizko kodo](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Izdelava:** Generativna AI aplikacija z uporabo orodij za nizko kodo | [Video](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Več informacij](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Integracija zunanjih aplikacij s klicem funkcij](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Izdelava:** Kaj je klic funkcij in kako se uporablja v aplikacijah | [Video](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Več informacij](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [Oblikovanje UX za AI aplikacije](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Učenje:** Kako uporabiti načela UX oblikovanja pri razvoju generativnih AI aplikacij | [Video](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Več informacij](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Zavarovanje vaših generativnih AI aplikacij](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Učenje:** Grožnje in tveganja za AI sisteme ter načini za njihovo zaščito | [Video](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Več informacij](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [Življenjski cikel generativnih AI aplikacij](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Učenje:** Orodja in metrike za upravljanje življenjskega cikla LLM in LLMOps | [Video](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Več informacij](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) in vektorske baze](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Izdelava:** Aplikacija, ki uporablja RAG okvir za pridobivanje embeddingov iz vektorskih baz | [Video](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Več informacij](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Modeli odprte kode in Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Izdelava:** Aplikacija, ki uporablja modele odprte kode, dostopne na Hugging Face | [Video](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Več informacij](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI agenti](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Izdelava:** Aplikacija, ki uporablja AI Agent Framework | [Video](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Več informacij](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [Fino nastavljanje LLM-jev](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Učenje:** Kaj, zakaj in kako fino nastavljati LLM-je | [Video](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Več informacij](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Gradnja z SLM-ji](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Učenje:** Prednosti gradnje z malimi jezikovnimi modeli | Video kmalu na voljo | [Več informacij](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Gradnja z Mistral modeli](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Učenje:** Značilnosti in razlike modelov družine Mistral | Video kmalu na voljo | [Več informacij](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Gradnja z Meta modeli](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Učenje:** Značilnosti in razlike modelov družine Meta | Video kmalu na voljo | [Več informacij](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Posebna zahvala - -Posebna zahvala [**Johnu Azizu**](https://www.linkedin.com/in/john0isaac/) za ustvarjanje vseh GitHub Actions in delovnih tokov - -[**Bernhardu Merkleju**](https://www.linkedin.com/in/bernhard-merkle-738b73/) za ključne prispevke k vsaki lekciji, ki izboljšujejo izkušnjo učenja in kode. - -## 🎒 Drugi tečaji - -Naša ekipa pripravlja tudi druge tečaje! Oglejte si: - -- [**NOVO** Model Context Protocol za začetnike](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI agenti za začetnike](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Generativna AI za začetnike z uporabo .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Generativna AI za začetnike z uporabo JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [Strojno učenje za začetnike](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Podatkovna znanost za začetnike](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI za začetnike](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Kibernetska varnost za začetnike](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Spletni razvoj za začetnike](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT za začetnike](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR razvoj za začetnike](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Obvladovanje GitHub Copilot za AI parno programiranje](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Obvladovanje GitHub Copilot za C#/.NET razvijalce](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Izberi svojo Copilot pustolovščino](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Omejitev odgovornosti**: -Ta dokument je bil preveden z uporabo storitve za avtomatski prevod AI [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas opozarjamo, da lahko avtomatski prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku velja za avtoritativni vir. Za pomembne informacije priporočamo strokovni človeški prevod. Za morebitna nesporazume ali napačne interpretacije, ki izhajajo iz uporabe tega prevoda, ne odgovarjamo. \ No newline at end of file + + + + diff --git a/translations/sr/00-course-setup/01-setup-cloud.md b/translations/sr/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..22fd364e2 --- /dev/null +++ b/translations/sr/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/sr/00-course-setup/02-setup-local.md b/translations/sr/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..1cc0669e9 --- /dev/null +++ b/translations/sr/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/sr/00-course-setup/03-providers.md b/translations/sr/00-course-setup/03-providers.md new file mode 100644 index 000000000..5c5e8f277 --- /dev/null +++ b/translations/sr/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/sr/00-course-setup/README.md b/translations/sr/00-course-setup/README.md index 0bbdd0de0..350e70d56 100644 --- a/translations/sr/00-course-setup/README.md +++ b/translations/sr/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# Почетак рада са овим курсом - -Веома смо узбуђени што ћете започети овај курс и видети шта ћете бити инспирисани да направите уз помоћ генеративне вештачке интелигенције! - -Да бисмо осигурали ваш успех, ова страница описује кораке за подешавање, техничке захтеве и где можете добити помоћ ако вам затреба. - -## Кораци за подешавање - -Да бисте започели са овим курсом, потребно је да завршите следеће кораке. - -### 1. Форкујте овај репозиторијум - -[Форкујте цео овај репозиторијум](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) на свој GitHub налог како бисте могли да мењате код и завршавате изазове. Такође можете [означити (🌟) овај репозиторијум](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) да бисте га лакше пронашли и повезане репозиторијуме. - -### 2. Креирајте codespace - -Да бисте избегли проблеме са зависностима приликом покретања кода, препоручујемо да овај курс покрећете у [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst). - -Ово можете урадити тако што ћете изабрати опцију `Code` на форкованој верзији овог репозиторијума и одабрати опцију **Codespaces**. - -![Дијалог који приказује дугмад за креирање codespace-а](../../../00-course-setup/images/who-will-pay.webp) - -### 3. Чување ваших API кључева - -Чување ваших API кључева безбедним је важно када правите било коју врсту апликације. Препоручујемо да не чувате API кључеве директно у коду. Комитовање тих података у јавни репозиторијум може довести до безбедносних проблема, па чак и непланираних трошкова ако их злоупотреби неко са лошим намерама. -Ево корак-по-корак упутства како да направите `.env` фајл за Python и додате `GITHUB_TOKEN`: - -1. **Идите у директоријум вашег пројекта**: Отворите терминал или командну линију и идите у коренски директоријум вашег пројекта где желите да направите `.env` фајл. - - ```bash - cd path/to/your/project - ``` - -2. **Креирајте `.env` фајл**: Користите свој омиљени уређивач текста да направите нови фајл под именом `.env`. Ако користите командну линију, можете користити `touch` (на Unix системима) или `echo` (на Windows-у): - - Unix системи: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **Уредите `.env` фајл**: Отворите `.env` фајл у уређивачу текста (нпр. VS Code, Notepad++ или неки други уређивач). Додајте следећи ред у фајл, замењујући `your_github_token_here` вашим стварним GitHub токеном: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Сачувајте фајл**: Сачувајте измене и затворите уређивач текста. - -5. **Инсталирајте `python-dotenv`**: Ако већ нисте, потребно је да инсталирате пакет `python-dotenv` који учитава променљиве окружења из `.env` фајла у вашу Python апликацију. Можете га инсталирати помоћу `pip`: - - ```bash - pip install python-dotenv - ``` - -6. **Учитајте променљиве окружења у вашем Python скрипту**: У вашем Python скрипту користите пакет `python-dotenv` да учитате променљиве окружења из `.env` фајла: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -То је то! Успешно сте направили `.env` фајл, додали ваш GitHub токен и учитали га у вашу Python апликацију. - -## Како покренути локално на вашем рачунару - -Да бисте покренули код локално на вашем рачунару, потребно је да имате инсталирану неку верзију [Python-а](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -Затим, да бисте користили репозиторијум, потребно је да га клоните: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -Када све буде спремно, можете почети! - -## Опциони кораци - -### Инсталирање Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) је лагани инсталер за инсталацију [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python-а, као и неколико пакета. -Conda је менаџер пакета који олакшава подешавање и пребацивање између различитих Python [**виртуелних окружења**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) и пакета. Такође је користан за инсталацију пакета који нису доступни преко `pip`. - -Можете пратити [MiniConda упутство за инсталацију](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) да бисте га подесили. - -Када инсталирате Miniconda, потребно је да клоните [репозиторијум](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (ако то већ нисте урадили). - -Затим треба да направите виртуелно окружење. Да бисте то урадили са Conda-ом, направите нови фајл за окружење (_environment.yml_). Ако пратите курс користећи Codespaces, направите овај фајл унутар `.devcontainer` директоријума, дакле `.devcontainer/environment.yml`. - -Попуните ваш environment фајл са следећим примером: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Ако наиђете на грешке приликом коришћења conda, можете ручно инсталирати Microsoft AI библиотеке помоћу следеће команде у терминалу. - -``` -conda install -c microsoft azure-ai-ml -``` - -Фајл окружења одређује зависности које су нам потребне. `` је име које желите да користите за ваше Conda окружење, а `` је верзија Python-а коју желите да користите, на пример, `3` је најновија главна верзија Python-а. - -Када то урадите, можете креирати Conda окружење покретањем следећих команди у командној линији/терминалу - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -Погледајте [Conda упутство за окружења](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst) ако наиђете на проблеме. - -### Коришћење Visual Studio Code-а са Python подршком - -Препоручујемо коришћење [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) уређивача са инсталираним [Python support extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) за овај курс. Међутим, ово је више препорука него обавезан услов. - -> **[!NOTE]** Отварањем репозиторијума курса у VS Code-у, имате опцију да подесите пројекат унутар контејнера. То је могуће захваљујући [специјалном `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) директоријуму унутар репозиторијума курса. Више о томе касније. - -> **[!NOTE]** Када клоните и отворите директоријум у VS Code-у, он ће вам аутоматски предложити да инсталирате Python подршку. - -> **[!NOTE]** Ако вам VS Code предложи да поново отворите репозиторијум у контејнеру, одбијте тај захтев да бисте користили локално инсталирану верзију Python-а. - -### Коришћење Jupyter-а у прегледачу - -Такође можете радити на пројекту користећи [Jupyter окружење](https://jupyter.org?WT.mc_id=academic-105485-koreyst) директно у вашем прегледачу. И класични Jupyter и [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) пружају пријатно развојно окружење са функцијама као што су аутоматско довршавање, истицање кода и сл. - -Да бисте покренули Jupyter локално, идите у терминал/командну линију, навигирајте до директоријума курса и покрените: - -```bash -jupyter notebook -``` - -или - -```bash -jupyterhub -``` - -Ово ће покренути Jupyter инстанцу, а URL за приступ биће приказан у командној линији. - -Када приступите URL-у, требало би да видите структуру курса и да можете да отворите било који `*.ipynb` фајл. На пример, `08-building-search-applications/python/oai-solution.ipynb`. - -### Покретање у контејнеру - -Алтернатива подешавању свега на вашем рачунару или Codespace-у је коришћење [контејнера](../../../00-course-setup/). Специјални `.devcontainer` фолдер унутар репозиторијума курса омогућава VS Code-у да подеси пројекат унутар контејнера. Изван Codespaces-а, ово захтева инсталацију Docker-а и, искрено, укључује нешто више посла, па ову опцију препоручујемо само онима који имају искуства са радом у контејнерима. - -Један од најбољих начина да заштитите своје API кључеве када користите GitHub Codespaces је коришћење Codespace Secrets. Пратите [упутство за управљање Codespaces тајнама](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) да бисте сазнали више о томе. - -## Лекције и технички захтеви - -Курс има 6 концептуалних лекција и 6 програмерских лекција. - -За програмерске лекције користимо Azure OpenAI Service. Потребан вам је приступ Azure OpenAI сервису и API кључ да бисте покренули овај код. Можете се пријавити за приступ [попуњавањем ове пријаве](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -Док чекате да ваша пријава буде обрађена, свака програмерска лекција такође садржи `README.md` фајл у коме можете видети код и резултате. - -## Коришћење Azure OpenAI сервиса први пут - -Ако први пут радите са Azure OpenAI сервисом, пратите ово упутство како да [креирате и деплојујете Azure OpenAI Service ресурс.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## Коришћење OpenAI API-ја први пут - -Ако први пут радите са OpenAI API-јем, пратите упутство како да [креирате и користите интерфејс.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## Упознајте друге учеснике - -Креирали смо канале на нашем званичном [AI Community Discord серверу](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) за упознавање са другим учесницима. Ово је одличан начин да се повежете са другим предузетницима, програмерима, студентима и свима који желе да напредују у генеративној вештачкој интелигенцији. - -[![Придружи се discord каналу](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -Тим пројекта ће такође бити на овом Discord серверу да помогне свим учесницима. - -## Допринос - -Овај курс је иницијатива отвореног кода. Ако приметите могућности за побољшање или проблеме, молимо вас да направите [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) или пријавите [GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -Тим пројекта прати све доприносе. Допринос отвореном коду је одличан начин да изградите каријеру у генеративној вештачкој интелигенцији. - -Већина доприноса захтева да се сложите са Уговором о лиценци за доприносе (CLA) којим изјављујете да имате право и заиста нам дајете права да користимо ваш допринос. За детаље посетите [CLA, Contributor License Agreement сајт](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Важно: приликом превођења текста у овом репозиторијуму, молимо вас да не користите машински превод. Преводе ће проверити заједница, па се пријављујте само за преводе на језике које добро познајете. - -Када пошаљете pull request, CLA-бот ће аутоматски одредити да ли треба да доставите CLA и означити PR на одговарајући начин (нпр. етикета, коментар). Само пратите упутства бота. Ово ћете морати урадити само једном за све репозиторијуме који користе наш CLA. - -Овај пројекат је усвојио [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst). За више информација прочитајте FAQ о Кодексу понашања или контактирајте [Email opencode](opencode@microsoft.com) за додатна питања или коментаре. - -## Хајде да почнемо - -Сада када сте завршили потребне кораке за овај курс, кренимо са [уводом у генеративну вештачку интелигенцију и LLM-ове](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**Одрицање од одговорности**: -Овај документ је преведен коришћењем AI сервиса за превођење [Co-op Translator](https://github.com/Azure/co-op-translator). Иако се трудимо да превод буде тачан, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитетним извором. За критичне информације препоручује се професионални људски превод. Нисмо одговорни за било каква неспоразума или погрешна тумачења која произилазе из коришћења овог превода. \ No newline at end of file + + + + diff --git a/translations/sr/00-course-setup/SETUP.md b/translations/sr/00-course-setup/SETUP.md deleted file mode 100644 index e90e05d89..000000000 --- a/translations/sr/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# Подешавање вашег развојног окружења - -Овај репозиторијум и курс су подешени са [development container](https://containers.dev?WT.mc_id=academic-105485-koreyst) који има универзално окружење за извршавање које подржава Python3, .NET, Node.js и Java развој. Потребна конфигурација је дефинисана у фајлу `devcontainer.json` који се налази у фасцикли `.devcontainer/` у корену овог репозиторијума. - -Да бисте активирали дев контејнер, покрените га у [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (за cloud-hosted runtime) или у [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (за локално окружење). Прочитајте [ову документацију](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) за више детаља о томе како дев контејнери функционишу у VS Code-у. - -> [!TIP] -> Препоручујемо коришћење GitHub Codespaces-а за брз почетак уз минималан напор. Он пружа великодушан [бесплатни квоту](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) за личне налоге. Конфигуришите [таймауте](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) за заустављање или брисање неактивних codespaces-а како бисте максимално искористили квоту. - -## 1. Извршавање задатака - -Свака лекција ће имати _опционалне_ задатке који могу бити доступни у једном или више програмских језика, укључујући: Python, .NET/C#, Java и JavaScript/TypeScript. Овај одељак даје општа упутства у вези са извршавањем тих задатака. - -### 1.1 Python задаци - -Python задаци су доступни као апликације (`.py` фајлови) или Jupyter бележнице (`.ipynb` фајлови). -- Да бисте покренули бележницу, отворите је у Visual Studio Code-у, затим кликните на _Select Kernel_ (горе десно) и изаберите подразумевану Python 3 опцију. Сада можете кликнути на _Run All_ да извршите бележницу. -- За покретање Python апликација из командне линије, пратите упутства специфична за задатак како бисте изабрали праве фајлове и проследили потребне аргументе. - -## 2. Конфигурисање провајдера - -Задаци **могу** бити подешени да раде са једним или више Large Language Model (LLM) сервиса преко подржаних провајдера као што су OpenAI, Azure или Hugging Face. Они пружају _hosted endpoint_ (API) којем можемо приступити програмски уз одговарајуће креденцијале (API кључ или токен). У овом курсу ћемо радити са следећим провајдерима: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) са разноврсним моделима укључујући основну GPT серију. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) за OpenAI моделе са фокусом на спремност за предузећа - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) за open-source моделе и inference сервер - -**За ове вежбе ћете морати да користите своје налоге**. Задаци су опциони, па можете изабрати да подесите једног, све или ниједног од провајдера у складу са својим интересовањима. Нека упутства за регистрацију: - -| Регистрација | Цена | API кључ | Playground | Коментари | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst)| [Цене](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst)| [Пројектно базирано](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [Без кода, веб](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Више доступних модела | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst)| [Цене](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst)| [SDK Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst)| [Studio Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Потребна претходна пријава за приступ](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst)| -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Цене](https://huggingface.co/pricing) | [Access Tokens](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst)| [Hugging Chat има ограничене моделе](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Пратите упутства испод да _конфигуришете_ овај репозиторијум за рад са различитим провајдерима. Задаци који захтевају одређеног провајдера имаће једну од ових ознака у имену фајла: - - `aoai` - захтева Azure OpenAI endpoint и кључ - - `oai` - захтева OpenAI endpoint и кључ - - `hf` - захтева Hugging Face токен - -Можете подесити једног, ниједног или све провајдере. Задаци који захтевају одређеног провајдера ће пријавити грешку ако креденцијали недостају. - -### 2.1. Креирање `.env` фајла - -Претпостављамо да сте већ прочитали горе наведена упутства, регистровали се код релевантног провајдера и добили потребне аутентификационе креденцијале (API_KEY или токен). У случају Azure OpenAI, претпостављамо да имате важећу имплементацију Azure OpenAI сервиса (endpoint) са најмање једним GPT моделом за chat completion. - -Следећи корак је да подесите своје **локалне променљиве окружења** на следећи начин: - -1. Потражите у корену пројекта `.env.copy` фајл који би требало да садржи нешто овако: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Копирајте тај фајл у `.env` користећи команду испод. Овај фајл је _gitignore-ован_, што значи да тајне остају безбедне. - - ```bash - cp .env.copy .env - ``` - -3. Попуните вредности (замените плейсхолдере са десне стране знака `=`) како је описано у следећем одељку. - -3. (Опционо) Ако користите GitHub Codespaces, имате могућност да сачувате променљиве окружења као _Codespaces secrets_ повезане са овим репозиторијумом. У том случају не морате да подешавате локални `.env` фајл. **Међутим, имајте на уму да ова опција ради само ако користите GitHub Codespaces.** Ако користите Docker Desktop, и даље морате да подесите `.env` фајл. - -### 2.2. Попуњавање `.env` фајла - -Хајде да брзо погледамо имена променљивих да бисмо разумели шта представљају: - -| Променљива | Опис | -| :--- | :--- | -| HUGGING_FACE_API_KEY | Ово је кориснички приступни токен који сте подесили у свом профилу | -| OPENAI_API_KEY | Ово је ауторизациони кључ за коришћење сервиса за non-Azure OpenAI endpoint-ове | -| AZURE_OPENAI_API_KEY | Ово је ауторизациони кључ за коришћење тог сервиса | -| AZURE_OPENAI_ENDPOINT | Ово је endpoint за Azure OpenAI ресурс који сте имплементирали | -| AZURE_OPENAI_DEPLOYMENT | Ово је endpoint за deployment _text generation_ модела | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | Ово је endpoint за deployment _text embeddings_ модела | -| | | - -Напомена: Последње две Azure OpenAI променљиве одговарају подразумеваном моделу за chat completion (генерисање текста) и претрагу вектора (ембеддинзи). Упутства за њихово подешавање биће дефинисана у релевантним задацима. - -### 2.3. Конфигурисање Azure: Са портала - -Вредности за Azure OpenAI endpoint и кључ можете пронаћи у [Azure порталу](https://portal.azure.com?WT.mc_id=academic-105485-koreyst), па хајде да почнемо одатле. - -1. Идите на [Azure портал](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -1. Кликните на опцију **Keys and Endpoint** у бочној траци (леви мени). -1. Кликните на **Show Keys** - требало би да видите: KEY 1, KEY 2 и Endpoint. -1. Користите вредност KEY 1 за AZURE_OPENAI_API_KEY -1. Користите вредност Endpoint за AZURE_OPENAI_ENDPOINT - -Затим нам требају endpoint-ови за конкретне моделе које сте имплементирали. - -1. Кликните на опцију **Model deployments** у бочној траци (леви мени) за Azure OpenAI ресурс. -1. На страници која се отвори, кликните на **Manage Deployments** - -Ово ће вас одвести на веб сајт Azure OpenAI Studio, где ћете пронаћи остале вредности како је описано у наставку. - -### 2.4. Конфигурисање Azure: Са студија - -1. Идите на [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **са свог ресурса** као што је описано горе. -1. Кликните на таб **Deployments** (бочна трака, лево) да бисте видели тренутно имплементиране моделе. -1. Ако ваш жељени модел није имплементиран, користите **Create new deployment** да га имплементирате. -1. Потребан вам је _text-generation_ модел - препоручујемо: **gpt-35-turbo** -1. Потребан вам је _text-embedding_ модел - препоручујемо **text-embedding-ada-002** - -Сада ажурирајте променљиве окружења да одговарају имену _Deployment_-а који користите. Обично ће то бити исто као име модела, осим ако га нисте експлицитно променили. На пример, можете имати: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**Не заборавите да сачувате .env фајл када завршите**. Сада можете изаћи из фајла и вратити се упутствима за покретање бележнице. - -### 2.5. Конфигурисање OpenAI: Са профила - -Ваш OpenAI API кључ можете пронаћи у свом [OpenAI налогу](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). Ако га немате, можете се регистровати и креирати API кључ. Када добијете кључ, користите га да попуните променљиву `OPENAI_API_KEY` у `.env` фајлу. - -### 2.6. Конфигурисање Hugging Face: Са профила - -Ваш Hugging Face токен можете пронаћи у свом профилу под [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). Немојте их објављивати или делити јавно. Уместо тога, креирајте нови токен за ову употребу у пројекту и копирајте га у `.env` фајл под променљиву `HUGGING_FACE_API_KEY`. _Напомена:_ Технички ово није API кључ, али се користи за аутентификацију, па смо задржали ову конвенцију именовања ради доследности. - -**Одрицање од одговорности**: -Овај документ је преведен коришћењем AI преводилачке услуге [Co-op Translator](https://github.com/Azure/co-op-translator). Иако се трудимо да превод буде тачан, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитетним извором. За критичне информације препоручује се професионални људски превод. Нисмо одговорни за било каква неспоразума или погрешна тумачења која произилазе из коришћења овог превода. \ No newline at end of file diff --git a/translations/sr/04-prompt-engineering-fundamentals/README.md b/translations/sr/04-prompt-engineering-fundamentals/README.md index 29654bdae..98c80be11 100644 --- a/translations/sr/04-prompt-engineering-fundamentals/README.md +++ b/translations/sr/04-prompt-engineering-fundamentals/README.md @@ -1,436 +1,15 @@ - -# Основе инжењеринга упита - -[![Основе инжењеринга упита](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.sr.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Увод -Овај модул обухвата основне појмове и технике за креирање ефикасних упита у генеративним AI моделима. Начин на који формулишете упит за LLM такође је важан. Добро осмишљен упит може довести до квалитетнијег одговора. Али шта тачно значе појмови као што су _упит_ и _инжењеринг упита_? И како да побољшам улазни _упит_ који шаљем LLM-у? На та питања ћемо покушати да одговоримо у овом и наредном поглављу. - -_Генеративни AI_ је способан да креира нови садржај (нпр. текст, слике, аудио, код итд.) као одговор на корисничке захтеве. То постиже коришћењем _великих језичких модела_ као што је серија GPT компаније OpenAI („Generative Pre-trained Transformer“) који су обучени за рад са природним језиком и кодом. - -Корисници сада могу да комуницирају са овим моделима користећи познате парадигме као што је ћаскање, без потребе за техничким знањем или обуком. Модели су _упитно базирани_ – корисници шаљу текстуални улаз (упит) и добијају AI одговор (комплетирање). Затим могу да „разговарају са AI“ итеративно, у вишекратним разменама, усавршавајући свој упит док одговор не испуни њихова очекивања. - -„Упити“ постају главни _програмски интерфејс_ за генеративне AI апликације, говорећи моделима шта да раде и утичући на квалитет добијених одговора. „Инжењеринг упита“ је брзо растућа област која се бави _дизајном и оптимизацијом_ упита како би се обезбедили доследни и квалитетни одговори у великом обиму. - -## Циљеви учења - -У овој лекцији ћемо научити шта је инжењеринг упита, зашто је важан и како да креирамо ефикасније упите за одређени модел и циљ апликације. Разумеваћемо основне појмове и најбоље праксе у инжењерингу упита – и упознаћемо се са интерактивним окружењем Jupyter Notebooks „песковника“ где можемо видети примену ових појмова на стварним примерима. - -До краја ове лекције моћи ћемо да: - -1. Објаснимо шта је инжењеринг упита и зашто је важан. -2. Опишемо компоненте упита и како се користе. -3. Научимо најбоље праксе и технике инжењеринга упита. -4. Применимо научене технике на стварним примерима, користећи OpenAI крајњу тачку. - -## Кључни појмови - -Инжењеринг упита: Практична примена дизајна и усавршавања улаза како би се AI модели усмерили ка производњи жељених резултата. -Токенизација: Процес претварања текста у мање јединице, зване токени, које модел може да разуме и обради. -LLM модели подешени инструкцијама: Велики језички модели (LLM) који су додатно обучени са специфичним упутствима како би се побољшала тачност и релевантност одговора. - -## Песковник за учење - -Инжењеринг упита је тренутно више уметност него наука. Најбољи начин да побољшамо интуицију за њега је да _више вежбамо_ и усвојимо приступ покушаја и грешака који комбинује стручност у домену примене са препорученим техникама и оптимизацијама специфичним за модел. - -Jupyter Notebook који прати ову лекцију пружа _песковник_ у коме можете испробати оно што научите – током рада или као део изазова са кодом на крају. За извршавање вежби биће вам потребно: - -1. **Azure OpenAI API кључ** – сервисна крајња тачка за распоређени LLM. -2. **Python окружење** – у коме се Notebook може покренути. -3. **Локалне променљиве окружења** – _завршите кораке из [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) сада да бисте се припремили_. - -Notebook садржи _почетне_ вежбе – али се подстиче да додате своје _Markdown_ (описне) и _Code_ (захтеве упита) секције како бисте испробали више примера или идеја – и изградили интуицију за дизајн упита. - -## Илустровани водич - -Желите да добијете општи преглед о чему ова лекција говори пре него што почнете? Погледајте овај илустровани водич који вам даје осећај главних тема и кључних поука о којима треба размишљати у свакој од њих. План лекције води вас од разумевања основних појмова и изазова до њиховог решавања релевантним техникама и најбољим праксама инжењеринга упита. Имајте у виду да се одељак „Напредне технике“ у овом водичу односи на садржај који ће бити обрађен у _следећем_ поглављу овог курса. - -![Илустровани водич за инжењеринг упита](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.sr.png) - -## Наш стартап - -Хајде сада да причамо о томе како се _ова тема_ односи на мисију нашег стартапа да [донисмо AI иновације у образовање](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). Желимо да изградимо AI-погонске апликације за _персонализовано учење_ – па размислимо како би различити корисници наше апликације могли „да дизајнирају“ упите: - -- **Администратори** могу тражити од AI да _анализира податке о наставном плану како би идентификовао празнине у покривености_. AI може да сумира резултате или их визуелизује уз помоћ кода. -- **Наставници** могу тражити од AI да _генерише план часа за одређену публику и тему_. AI може да направи персонализовани план у одређеном формату. -- **Студенти** могу тражити од AI да их _помогне у учењу тешке теме_. AI сада може да води студенте кроз лекције, савете и примере прилагођене њиховом нивоу. - -Ово је само врх леденог брега. Погледајте [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) – библиотеку отворених упита коју су креирали стручњаци за образовање – да бисте добили шири увид у могућности! _Пробајте да покренете неке од тих упита у песковнику или користећи OpenAI Playground да видите шта ће се десити!_ - - - -## Шта је инжењеринг упита? - -Почели смо ову лекцију дефинишући **инжењеринг упита** као процес _дизајнирања и оптимизације_ текстуалних улаза (упита) како би се обезбедили доследни и квалитетни одговори (комплетирања) за одређени циљ апликације и модел. Можемо то посматрати као двостепени процес: - -- _дизајнирање_ почетног упита за одређени модел и циљ -- _усавршавање_ упита итеративно ради побољшања квалитета одговора - -Ово је неизбежно процес покушаја и грешака који захтева корисничку интуицију и труд да би се постигли оптимални резултати. Зашто је то важно? Да бисмо одговорили на то питање, прво морамо разумети три појма: - -- _Токенизација_ = како модел „види“ упит -- _Основни LLM модели_ = како основни модел „обрађује“ упит -- _LLM модели подешени инструкцијама_ = како модел сада може да „разуме задатке“ - -### Токенизација - -LLM види упите као _низ токена_ где различити модели (или верзије модела) могу токенизовати исти упит на различите начине. Пошто су LLM обучени на токенима (а не на сировом тексту), начин на који се упити токенизују директно утиче на квалитет генерисаног одговора. - -Да бисте стекли интуицију о томе како токенизација функционише, испробајте алате као што је [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) приказан испод. Копирајте свој упит и погледајте како се он претвара у токене, обраћајући пажњу на то како се третирају празнине и интерпункцијски знакови. Имајте у виду да овај пример користи старији LLM (GPT-3) – па покушај са новијим моделом може дати другачији резултат. - -![Токенизација](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.sr.png) - -### Пojам: Основни модели - -Када је упит токенизован, примарна функција ["Основног LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (или основног модела) је да предвиди следећи токен у низу. Пошто су LLM обучени на огромним скупова текстова, имају добру представу о статистичким везама између токена и могу да направе ту предикцију са одређеним степеном сигурности. Имајте у виду да они не разумеју _значење_ речи у упиту или токену; они само виде образац који могу „допунити“ својом следећом предикцијом. Могу наставити да предвиђају низ док их корисник не заустави или док не буде испуњен неки унапред дефинисани услов. - -Желите да видите како функционише комплетирање на основу упита? Унесите горе наведени упит у Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) са подразумеваним подешавањима. Систем је конфигурисан да третира упите као захтеве за информацијама – па ћете добити одговор који одговара том контексту. - -Али шта ако корисник жели нешто конкретно што испуњава неки критеријум или циљ задатка? Ту у игру ступају _LLM модели подешени инструкцијама_. - -![Основни LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.sr.png) - -### Пojам: LLM модели подешени инструкцијама - -[LLM модели подешени инструкцијама](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) почињу од основног модела и додатно се обучавају на примерима или паровима улаз/излаз (нпр. вишекратне „поруке“) које могу садржати јасна упутства – а одговор AI покушава да прати та упутства. - -Ово користи технике као што је учење појачањем са људским повратним информацијама (RLHF) које могу да обуче модел да _прати упутства_ и _учи из повратних информација_ тако да производи одговоре који су боље прилагођени практичним применама и релевантнији циљевима корисника. - -Хајде да пробамо – вратите се на горњи упит, али сада промените _системску поруку_ да садржи следеће упутство као контекст: - -> _Сажмите садржај који вам је дат за ученика другог разреда. Резултат држите у једном пасусу са 3-5 тачака у облику списка._ - -Видите како је резултат сада прилагођен жељеном циљу и формату? Наставник може директно да користи овај одговор у својим презентацијама за тај час. - -![LLM подешен инструкцијама Chat Completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.sr.png) - -## Зашто нам треба инжењеринг упита? - -Сада када знамо како LLM модели обрађују упите, хајде да причамо о томе _зашто_ нам треба инжењеринг упита. Одговор лежи у чињеници да тренутни LLM модели имају низ изазова који отежавају постизање _поузданих и доследних одговора_ без уложеног труда у конструкцију и оптимизацију упита. На пример: - -1. **Одговори модела су стохастички.** _Исти упит_ ће вероватно произвести различите одговоре код различитих модела или верзија модела. Чак може дати различите резултате и са _истим моделом_ у различито време. _Технике инжењеринга упита могу нам помоћи да минимизирамо ове варијације пружајући боље смернице_. - -1. **Модели могу измишљати одговоре.** Модели су претходно обучени на _великим али ограниченим_ скупова података, што значи да немају знање о појмовима ван тог опсега обуке. Као резултат, могу произвести одговоре који су нетачни, измишљени или директно супротни познатим чињеницама. _Технике инжењеринга упита помажу корисницима да идентификују и смање такве измишљотине, нпр. тражећи од AI да наведе изворе или образложења_. - -1. **Капацитети модела варирају.** Новији модели или генерације модела имају богатије могућности али и јединствене карактеристике и компромисе у трошковима и сложености. _Инжењеринг упита нам може помоћи да развијемо најбоље праксе и радне токове који апстрахују разлике и прилагођавају се захтевима специфичним за модел на скалабилан и беспрекорни начин_. - -Погледајте ово у пракси у OpenAI или Azure OpenAI Playground: - -- Користите исти упит са различитим LLM распоређивањима (нпр. OpenAI, Azure OpenAI, Hugging Face) – да ли сте приметили варијације? -- Користите исти упит више пута са _истим_ LLM распоређивањем (нпр. Azure OpenAI playground) – како су се те варијације разликовале? - -### Пример измишљотина - -У овом курсу користимо термин **„измишљотина“** да означимо феномен када LLM модели понекад генеришу чињенично нетачне информације због ограничења -# План часа: Марсовски рат 2076. - -## Циљеви часа -- Разумети узроке и последице Марсовског рата 2076. -- Анализирати главне догађаје и кључне личности у рату. -- Развити критичко мишљење о последицама рата на човечанство и Марс. - -## Увод (10 минута) -- Кратак преглед историјског контекста пре 2076. године. -- Објаснити зашто је дошло до конфликта између Земље и Марса. -- Поставити питања ученицима: Шта мислите да је узроковало рат? Како би се ви осећали у таквој ситуацији? - -## Главни део (30 минута) -- Презентација главних догађаја рата: - - Почетак сукоба и прве битке. - - Технолошки напредак и употреба нових оружја. - - Кључне личности и њихове улоге. -- Групна дискусија: Како су различите стране виделе рат? Које су биле њихове мотивације? -- Анализа последица рата на политичком, друштвеном и економском плану. - -## Закључак (10 минута) -- Резиме најважнијих поена. -- Питања за размишљање: Шта смо научили из Марсовског рата? Како можемо спречити сличне конфликте у будућности? -- Додатни материјали и препоруке за читање. - -## Задатак за домаћи -- Написати кратак есеј о томе како је Марсовски рат утицао на односе између Земље и Марса. -- Припремити презентацију о једном од кључних догађаја из рата. -Веб претрага ми је показала да постоје фиктивни прикази (нпр. телевизијске серије или књиге) о Марсовским ратовима – али ниједан из 2076. Здрав разум нам такође говори да је 2076. _у будућности_ и стога не може бити повезан са стварним догађајем. - -Па шта се дешава када покренемо овај упит код различитих провајдера LLM? - -> **Response 1**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.sr.png) - -> **Response 2**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.sr.png) - -> **Response 3**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.sr.png) - -Као што се и очекивало, сваки модел (или верзија модела) даје мало другачије одговоре захваљујући стохастичком понашању и варијацијама у могућностима модела. На пример, један модел је усмерен ка публици осмог разреда, док други претпоставља да је корисник средњошколац. Али сва три модела су генерисала одговоре који би могли убедити неискусног корисника да је догађај стваран. - -Технике инжењеринга упита као што су _метаупити_ и _конфигурација температуре_ могу у некој мери смањити измишљотине модела. Нове _архитектуре_ инжењеринга упита такође беспрекорно укључују нове алате и технике у ток упита, како би ублажиле или смањиле неке од ових ефеката. - -## Студија случаја: GitHub Copilot - -Завршићемо овај одељак добијањем увида у то како се инжењеринг упита користи у стварним решењима, посматрајући једну студију случаја: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot је ваш „AI пар програмер“ – претвара текстуалне упите у комплетирање кода и интегрисан је у ваше развојно окружење (нпр. Visual Studio Code) за беспрекорно корисничко искуство. Као што је документовано у серији блогова испод, најранија верзија била је заснована на OpenAI Codex моделу – а инжењери су брзо схватили потребу за фино подешавање модела и развој бољих техника инжењеринга упита како би побољшали квалитет кода. У јулу су [представили унапређени AI модел који иде даље од Codex-а](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) за још брже предлоге. - -Прочитајте постове по реду да пратите њихово учење. - -- **мај 2023** | [GitHub Copilot све боље разуме ваш код](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **мај 2023** | [Изнутра GitHub: Рад са LLM-овима иза GitHub Copilot-а](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **јун 2023** | [Како написати боље упите за GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **јул 2023** | [GitHub Copilot иде даље од Codex-а са унапређеним AI моделом](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **јул 2023** | [Водич за програмере о инжењерингу упита и LLM-овима](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **сеп 2023** | [Како изградити ентерпрајз LLM апликацију: лекције из GitHub Copilot-а](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -Такође можете прегледати њихов [инжењерски блог](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) за више постова као што је [овај](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) који показује како се ови модели и технике _примењују_ за покретање стварних апликација. - ---- - - - -## Конструкција упита - -Видели смо зашто је инжењеринг упита важан – сада хајде да разумемо како се упити _конструишу_ како бисмо могли да проценимо различите технике за ефикаснији дизајн упита. - -### Основни упит - -Почнимо са основним упитом: текстуални унос послат моделу без другог контекста. Ево примера – када пошаљемо прве речи америчке националне химне OpenAI [Completion API-ју](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst), он одмах _завршава_ одговор са следећим редовима, илуструјући основно понашање предвиђања. - -| Prompt (Input) | Completion (Output) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | Изгледа да почињете са текстом „The Star-Spangled Banner“, националне химне Сједињених Држава. Цео текст гласи ... | - -### Комплексни упит - -Сада додајмо контекст и упутства том основном упиту. [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) нам омогућава да конструишемо комплексни упит као скуп _порука_ са: - -- паровима уноса/излаза који одражавају унос _корисника_ и одговор _асистента_ -- системском поруком која поставља контекст понашања или личности асистента - -Захтев је сада у облику испод, где _токенизација_ ефикасно хвата релевантне информације из контекста и разговора. Промена системског контекста може бити подједнако утицајна на квалитет комплетирања као и уноси корисника. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Упит са упутствима - -У горе наведеним примерима, кориснички упит је био једноставан текстуални захтев који се може тумачити као захтев за информацијом. Са _упитима са упутствима_, можемо користити тај текст да детаљније одредимо задатак, пружајући боље смернице AI-ју. Ево примера: - -| Prompt (Input) | Completion (Output) | Instruction Type | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Напиши опис Грађанског рата | _вратио једноставан пасус_ | Једноставан | -| Напиши опис Грађанског рата. Наведи кључне датуме и догађаје и опиши њихов значај | _вратио пасус праћен списком кључних датума догађаја са описима_ | Комплексан | -| Напиши опис Грађанског рата у 1 пасусу. Наведи 3 тачке са кључним датумима и њиховим значајем. Наведи још 3 тачке са кључним историјским личностима и њиховим доприносима. Врати резултат као JSON фајл | _враћа детаљније информације у текстуалном пољу, форматиране као JSON који можете копирати и сачувати у фајл и по потреби верификовати_ | Комплексан. Форматиран. | - -## Примарни садржај - -У горе наведеним примерима, упит је и даље био прилично отворен, дозвољавајући LLM-у да одлучи који део свог претходно обученог скупа података је релевантан. Са дизајн патерном _примарни садржај_, улазни текст се дели на два дела: - -- упутство (акција) -- релевантан садржај (који утиче на акцију) - -Ево примера где је упутство „сажми ово у 2 реченице“. - -| Prompt (Input) | Completion (Output) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Јупитер је пета планета од Сунца и највећа у Сунчевом систему. То је гасовити гигант чија је маса хиљадити део масе Сунца, али два и по пута већа од масе свих осталих планета у Сунчевом систему заједно. Јупитер је један од најсјајнијих објеката видљивих голим оком на ноћном небу и познат је древним цивилизацијама још пре записане историје. Назван је по римском богу Јупитеру.[19] Када се посматра са Земље, Јупитер може бити довољно сјајан да његова одсјајна светлост баца видљиве сенке,[20] и у просеку је трећи најсјајнији природни објекат на ноћном небу после Месеца и Венере.
**Сажми ово у 2 кратке реченице** | Јупитер, пета планета од Сунца, највећа је у Сунчевом систему и познат је као један од најсјајнијих објеката на ноћном небу. Назван по римском богу Јупитеру, то је гасовити гигант чија је маса два и по пута већа од масе свих осталих планета у Сунчевом систему заједно. | - -Сегмент примарног садржаја може се користити на различите начине за ефикасније вођење упутстава: - -- **Примери** – уместо да моделу директно кажемо шта да ради, дајемо му примере шта да ради и дозволимо му да закључи образац. -- **Наговештаји** – пратимо упутство „наговештајем“ који припрема одговор, усмеравајући модел ка релевантнијим одговорима. -- **Шаблони** – ово су поновљиви „рецепти“ за упите са плейсхолдерима (променљивим) које можемо прилагодити подацима за конкретне случајеве употребе. - -Хајде да их испробамо у пракси. - -### Коришћење примера - -Ово је приступ где користите примарни садржај да „нахраните модел“ неким примерима жељеног излаза за дато упутство и дозволите му да закључи образац жељеног излаза. У зависности од броја примера, можемо имати zero-shot, one-shot, few-shot упите итд. - -Упит сада садржи три компонента: - -- опис задатка -- неколико примера жељеног излаза -- почетак новог примера (који постаје имплицитни опис задатка) - -| Learning Type | Prompt (Input) | Completion (Output) | -| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| Zero-shot | „The Sun is Shining“. Преведи на шпански | „El Sol está brillando“. | -| One-shot | „The Sun is Shining“ => „El Sol está brillando“.
„It's a Cold and Windy Day“ => | „Es un día frío y ventoso“. | -| Few-shot | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketball | -| | | | - -Приметите како смо у zero-shot упиту морали дати експлицитно упутство („Преведи на шпански“), али оно се подразумева у one-shot примеру. Few-shot пример показује како додавање више примера омогућава моделима да прецизније закључују без додатних упутстава. - -### Наговештаји у упиту - -Још једна техника коришћења примарног садржаја је да се пруже _наговештаји_ уместо примера. У овом случају, дајемо моделу подстрек тако што га _покрећемо_ исечком који одражава жељени формат одговора. Модел онда „узима наговештај“ и наставља у том стилу. - -| Number of Cues | Prompt (Input) | Completion (Output) | -| :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Јупитер је пета планета од Сунца и највећа у Сунчевом систему. То је гасовити гигант чија је маса хиљадити део масе Сунца, али два и по пута већа од масе свих осталих планета у Сунчевом систему заједно. Јупитер је један од најсјајнијих објеката видљивих голим оком на ноћном небу, и познат је древним цивилизацијама још пре записане историје. - -**Сажми ово** | Јупитер је највећа планета у нашем Сунчевом систему и пета по реду од Сунца. То је гасовити гигант чија је маса 1/1000 масе Сунца, али је тежи од свих осталих планета заједно. Древне цивилизације су дуго познавале Јупитер, и он је лако видљив на ноћном небу. | -| 1 | Јупитер је пета планета од Сунца и највећа у Сунчевом систему. То је гасовити гигант чија је маса једна хиљадита масе Сунца, али је два и по пута тежи од свих осталих планета у Сунчевом систему заједно. Јупитер је један од најсјајнијих објеката видљивих голим оком на ноћном небу и познат је древним цивилизацијама још пре записане историје.
**Сажми ово**
Оно што смо научили је да је Јупитер | пета планета од Сунца и највећа у Сунчевом систему. То је гасовити гигант чија је маса једна хиљадита масе Сунца, али два и по пута већа од свих осталих планета заједно. Лако је видљив голим оком и познат је још из давнина. | -| 2 | Јупитер је пета планета од Сунца и највећа у Сунчевом систему. То је гасовити гигант чија је маса једна хиљадита масе Сунца, али два и по пута тежи од свих осталих планета у Сунчевом систему заједно. Јупитер је један од најсјајнијих објеката видљивих голим оком на ноћном небу и познат је древним цивилизацијама још пре записане историје.
**Сажми ово**
Топ 3 чињенице које смо научили: | 1. Јупитер је пета планета од Сунца и највећа у Сунчевом систему.
2. То је гасовити гигант чија је маса једна хиљадита масе Сунца...
3. Јупитер је видљив голим оком још из давнина ... | -| | | | - -### Шаблони за упите - -Шаблон упита је _унапред дефинисани рецепт за упит_ који се може сачувати и поново користити по потреби, како би се обезбедило доследније корисничко искуство у великом обиму. У најједноставнијем облику, то је једноставно збирка примера упита као што је [овај од OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) који пружа и интерактивне компоненте упита (поруке корисника и система) и формат захтева покретан преко API-ја - за подршку поновне употребе. - -У сложенијем облику, као [овај пример од LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst), садржи _плејсхолдере_ који се могу заменити подацима из различитих извора (кориснички унос, контекст система, спољни извори података итд.) како би се динамички генерисао упит. Ово нам омогућава да креирамо библиотеку поновно употребљивих упита која се може користити за доследно корисничко искуство **програмски** у великом обиму. - -Коначно, права вредност шаблона лежи у могућности креирања и објављивања _библиотека упита_ за вертикалне апликационе домене - где је шаблон упита сада _оптимизован_ да одражава контекст специфичан за апликацију или примере који чине одговоре релевантнијим и прецизнијим за циљну корисничку публику. Репозиторијум [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) је одличан пример овог приступа, који курира библиотеку упита за образовни домен са нагласком на кључне циљеве као што су планирање часова, дизајн наставног плана, подучавање ученика итд. - -## Помоћни садржај - -Ако разматрамо конструкцију упита као састављену од инструкције (задатка) и циља (примарног садржаја), онда је _секундарни садржај_ као додатни контекст који пружамо да **на неки начин утиче на излаз**. То могу бити параметри подешавања, упутства за форматирање, таксономије тема итд. који помажу моделу да _прилагоди_ свој одговор тако да одговара жељеним корисничким циљевима или очекивањима. - -На пример: Ако имамо каталог курсева са обимним метаподацима (назив, опис, ниво, ознаке метаподатака, предавач итд.) за све доступне курсеве у наставном плану: - -- можемо дефинисати инструкцију да "сажмемо каталог курсева за јесен 2023" -- можемо користити примарни садржај да пружимо неколико примера жељеног излаза -- можемо користити секундарни садржај да идентификујемо топ 5 "ознака" од интереса. - -Сада модел може дати сажетак у формату приказаном у примерима - али ако резултат има више ознака, може приоритет дати 5 ознака идентификованих у секундарном садржају. - ---- - - - -## Најбоље праксе за упите - -Сада када знамо како се упити могу _конструисати_, можемо почети да размишљамо како их _дизајнирати_ да одражавају најбоље праксе. Можемо ово посматрати у два дела - имање правог _начина размишљања_ и примену правих _техника_. - -### Начин размишљања у инжењерингу упита - -Инжењеринг упита је процес покушаја и грешке, па имајте на уму три широка водича: - -1. **Разумевање домена је важно.** Тачност и релевантност одговора зависи од _домена_ у којем апликација или корисник делује. Примените своју интуицију и стручност у домену да **даље прилагодите технике**. На пример, дефинишите _персоналитете специфичне за домен_ у системским упитима, или користите _шаблоне специфичне за домен_ у корисничким упитима. Пружите секундарни садржај који одражава контексте специфичне за домен, или користите _наводе и примере специфичне за домен_ да усмерите модел ка познатим обрасцима коришћења. - -2. **Разумевање модела је важно.** Знамо да су модели по природи стохастички. Али имплементације модела могу варирати у погледу скупова података за обуку (предтренирано знање), могућности које пружају (нпр. преко API-ја или SDK-а) и типа садржаја за који су оптимизовани (нпр. код, слике, текст). Разумите снаге и ограничења модела који користите и искористите то знање да _приоритетизујете задатке_ или креирате _прилагођене шаблоне_ оптимизоване за могућности модела. - -3. **Итерација и валидација су важни.** Модели се брзо развијају, као и технике за инжењеринг упита. Као стручњак у домену, можда имате други контекст или критеријуме за _вашу_ специфичну апликацију, који не морају важити за ширу заједницу. Користите алате и технике инжењеринга упита да "брзо покренете" конструкцију упита, затим итеративно проверавајте и валидајте резултате користећи своју интуицију и стручност. Записујте своја сазнања и креирајте **базу знања** (нпр. библиотеке упита) која може послужити као нова основа за друге, за брже итерације у будућности. - -## Најбоље праксе - -Погледајмо сада уобичајене најбоље праксе које препоручују [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) и [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst) стручњаци. - -| Шта | Зашто | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Процените најновије моделе. | Нове генерације модела вероватно имају побољшане функције и квалитет - али могу имати и веће трошкове. Процените их по утицају, па донесите одлуке о миграцији. | -| Раздвојите инструкције и контекст | Проверите да ли ваш модел/провајдер дефинише _делимитере_ за јасније разликовање инструкција, примарног и секундарног садржаја. Ово може помоћи моделима да прецизније додељују тежине токенима. | -| Будите прецизни и јасни | Дајте више детаља о жељеном контексту, исходу, дужини, формату, стилу итд. Ово ће побољшати и квалитет и доследност одговора. Сачувајте рецепте у поновно употребљивим шаблонима. | -| Будите описни, користите примере | Модели боље реагују на приступ „покажи и реци“. Почните са `zero-shot` приступом где дате само инструкцију (без примера), па онда пробајте `few-shot` као унапређење, пружајући неколико примера жељеног излаза. Користите аналогије. | -| Користите наводе за покретање завршетака | Усмерите модел ка жељеном исходу тако што ћете му дати неке уводне речи или фразе које може користити као полазну тачку за одговор. | -| Понављајте ако треба | Понекад је потребно да се моделу понови оно што сте рекли. Дајте инструкције пре и после примарног садржаја, користите инструкцију и навод, итд. Итеративно проверавајте шта најбоље функционише. | -| Редослед је важан | Редослед у којем представљате информације моделу може утицати на излаз, чак и у примерима за учење, због ефекта свежине. Испробајте различите опције да видите шта најбоље функционише. | -| Дајте моделу „излаз“ | Омогућите моделу _резервни_ одговор који може дати ако из неког разлога не може да заврши задатак. Ово смањује шансе да модел генерише нетачне или измишљене одговоре. | -| | | - -Као и код сваке најбоље праксе, имајте на уму да _ваши резултати могу варирати_ у зависности од модела, задатка и домена. Користите ово као полазну тачку и итеративно тражите шта вам највише одговара. Континуирано преиспитујте свој процес инжењеринга упита како нови модели и алати постају доступни, са фокусом на скалабилност процеса и квалитет одговора. - - - -## Задатак - -Честитамо! Дошли сте до краја часа! Време је да неке од тих концепата и техника испробате у пракси са стварним примерима! - -За наш задатак користићемо Jupyter Notebook са вежбама које можете интерактивно решавати. Такође можете проширити Notebook својим Markdown и Code ћелијама да бисте сами истраживали идеје и технике. - -### Да бисте почели, форкујте репозиторијум, затим - -- (Препоручено) Покрените GitHub Codespaces -- (Алтернативно) Клонирајте репозиторијум на свој локални уређај и користите га са Docker Desktop-ом -- (Алтернативно) Отворите Notebook у свом омиљеном окружењу за покретање Notebook-а. - -### Затим, конфигуришите своје променљиве окружења - -- Копирајте фајл `.env.copy` из корена репозиторијума у `.env` и попуните вредности `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` и `AZURE_OPENAI_DEPLOYMENT`. Вратите се на [Learning Sandbox одељак](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) да научите како. - -### Затим, отворите Jupyter Notebook - -- Изаберите runtime kernel. Ако користите опције 1 или 2, једноставно изаберите подразумевани Python 3.10.x kernel који пружа дев контејнер. - -Спремни сте да покренете вежбе. Имајте на уму да овде нема _правих и погрешних_ одговора – само истраживање опција методом покушаја и грешке и развијање интуиције шта функционише за одређени модел и домен апликације. - -_Због тога у овом часу нема сегмената са решењима кода. Уместо тога, Notebook ће имати Markdown ћелије са насловом "Моје решење:" које показују један пример излаза за референцу._ - - - -## Провера знања - -Који од следећих упита је добар и прати разумне најбоље праксе? - -1. Прикажи ми слику црвеног аутомобила -2. Прикажи ми слику црвеног аутомобила марке Volvo и модела XC90 паркираног поред литице са заласком сунца -3. Прикажи ми слику црвеног аутомобила марке Volvo и модела XC90 - -Одговор: 2, јер је најбољи упит јер пружа детаље о „шта“ и улази у специфичности (не само било који аутомобил, већ одређена марка и модел) и описује целокупни амбијент. 3 је следећи најбољи јер такође садржи доста описа. - -## 🚀 Изазов - -Покушајте да искористите технику „навод“ са упитом: Допуни реченицу „Прикажи ми слику црвеног аутомобила марке Volvo и “. Како модел одговара и како бисте то побољшали? - -## Одличан посао! Настав - -**Одрицање од одговорности**: -Овај документ је преведен коришћењем AI преводилачке услуге [Co-op Translator](https://github.com/Azure/co-op-translator). Иако се трудимо да превод буде тачан, молимо вас да имате у виду да аутоматизовани преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитетним извором. За критичне информације препоручује се професионални људски превод. Нисмо одговорни за било каква неспоразума или погрешна тумачења која произилазе из коришћења овог превода. \ No newline at end of file + + + + + + + diff --git a/translations/sr/09-building-image-applications/README.md b/translations/sr/09-building-image-applications/README.md index f5dce4c36..f106994fb 100644 --- a/translations/sr/09-building-image-applications/README.md +++ b/translations/sr/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# Прављење апликација за генерисање слика - -[![Прављење апликација за генерисање слика](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.sr.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLM модели нису само за генерисање текста. Такође је могуће генерисати слике на основу текстуалних описа. Коришћење слика као модалитета може бити изузетно корисно у бројним областима као што су МедТек, архитектура, туризам, развој игара и друге. У овом поглављу ћемо погледати два најпопуларнија модела за генерисање слика, DALL-E и Midjourney. - -## Увод - -У овој лекцији ћемо обрадити: - -- Генерисање слика и зашто је корисно. -- DALL-E и Midjourney, шта су и како функционишу. -- Како направити апликацију за генерисање слика. - -## Циљеви учења - -Након завршетка ове лекције, моћи ћете да: - -- Направите апликацију за генерисање слика. -- Дефинишете границе за вашу апликацију помоћу мета промптова. -- Радите са DALL-E и Midjourney. - -## Зашто правити апликацију за генерисање слика? - -Апликације за генерисање слика су одличан начин да истражите могућности генеративне вештачке интелигенције. Могу се користити, на пример, за: - -- **Уређивање и синтезу слика**. Можете генерисати слике за разне намене, као што су уређивање и синтеза слика. - -- **Примена у различитим индустријама**. Такође се могу користити за генерисање слика у различитим индустријама као што су Медтек, туризам, развој игара и друге. - -## Сценарио: Edu4All - -Као део ове лекције, наставићемо да радимо са нашим стартапом Edu4All. Студенти ће креирати слике за своје задатке, а које слике ће то бити зависи од њих – могу то бити илустрације за њихову бајку, нови лик за причу или помоћ у визуелизацији идеја и концепата. - -Ево шта би студенти Edu4All могли да генеришу, на пример, ако раде у учионици на теми споменика: - -![Edu4All стартап, час о споменицима, Ајфелова кула](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.sr.png) - -користећи промпт као што је - -> "Пас поред Ајфелове куле у раним јутарњим зрацима сунца" - -## Шта су DALL-E и Midjourney? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) и [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) су два од најпопуларнијих модела за генерисање слика, који вам омогућавају да користите промптове за креирање слика. - -### DALL-E - -Почнимо са DALL-E, који је генеративни AI модел који генерише слике на основу текстуалних описа. - -> [DALL-E је комбинација два модела, CLIP и diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP** је модел који генерише уграђене представе (ембеддинге), односно нумеричке репрезентације података, из слика и текста. - -- **Diffused attention** је модел који генерише слике из уграђених представи. DALL-E је обучен на скупу података слика и текста и може се користити за генерисање слика на основу текстуалних описа. На пример, DALL-E може генерисати слике мачке са шеширом или пса са мустаћима. - -### Midjourney - -Midjourney ради слично као DALL-E, генерише слике на основу текстуалних промптова. Midjourney се такође може користити за генерисање слика користећи промптове као што су „мачка са шеширом“ или „пас са мустаћима“. - -![Слика генерисана помоћу Midjourney, механички голуб](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Извор слике Википедија, слика генерисана помоћу Midjourney_ - -## Како функционишу DALL-E и Midjourney - -Прво, [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). DALL-E је генеративни AI модел заснован на трансформер архитектури са _ауторегресивним трансформером_. - -_Ауторегресивни трансформер_ дефинише како модел генерише слике из текстуалних описа – генерише по један пиксел у једном тренутку, а затим користи већ генерисане пикселе да генерише следећи пиксел. Пролази кроз више слојева у неуронској мрежи док слика није комплетна. - -Овим процесом, DALL-E контролише атрибуте, објекте, карактеристике и друге детаље на слици коју генерише. Међутим, DALL-E 2 и 3 пружају још већу контролу над генерисаном сликом. - -## Прављење ваше прве апликације за генерисање слика - -Шта је потребно да направите апликацију за генерисање слика? Потребне су вам следеће библиотеке: - -- **python-dotenv**, препоручује се да користите ову библиотеку да бисте чували своје тајне у _.env_ фајлу, одвојено од кода. -- **openai**, ова библиотека служи за интеракцију са OpenAI API-јем. -- **pillow**, за рад са сликама у Python-у. -- **requests**, за слање HTTP захтева. - -1. Направите фајл _.env_ са следећим садржајем: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Ове информације пронађите у Azure порталу за ваш ресурс у одељку „Keys and Endpoint“. - -1. Прикупите наведене библиотеке у фајл под називом _requirements.txt_ овако: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. Затим направите виртуелно окружење и инсталирајте библиотеке: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - За Windows, користите следеће команде за креирање и активирање виртуелног окружења: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. Додајте следећи код у фајл под називом _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Објаснимо овај код: - -- Прво увозимо потребне библиотеке, укључујући OpenAI библиотеку, dotenv, requests и Pillow. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Затим учитавамо променљиве окружења из _.env_ фајла. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- Након тога, подешавамо endpoint, кључ за OpenAI API, верзију и тип. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- Следеће, генеришемо слику: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - Код враћа JSON објекат који садржи URL генерисане слике. Можемо користити тај URL да преузмемо слику и сачувамо је у фајл. - -- На крају, отварамо слику и користимо стандардни прегледач слика да је прикажемо: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Више детаља о генерисању слике - -Погледајмо детаљније код који генерише слику: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** је текстуални промпт који се користи за генерисање слике. У овом случају користимо промпт „Зец на коњу, држи лизалицу, на магловитој ливади где расту нарциси“. -- **size** је величина генерисане слике. У овом случају генеришемо слику величине 1024x1024 пиксела. -- **n** је број слика које се генеришу. У овом случају генеришемо две слике. -- **temperature** је параметар који контролише случајност излаза генеративног AI модела. Температура је вредност између 0 и 1, где 0 значи да је излаз детерминистички, а 1 да је излаз случајан. Подразумевана вредност је 0.7. - -Постоје још многе ствари које можете радити са сликама, а које ћемо обрадити у следећем одељку. - -## Додатне могућности генерисања слика - -Видели сте како смо успели да генеришемо слику уз само неколико редова кода у Python-у. Међутим, постоје и друге могућности са сликама. - -Можете такође: - -- **Извршити измене**. Пружањем постојеће слике, маске и промпта, можете изменити слику. На пример, можете додати нешто на део слике. Замислите нашу слику зеца, можете додати шешир зецу. То се ради тако што се пружи слика, маска (која означава део за измену) и текстуални промпт који описује шта треба урадити. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - Основна слика би садржала само зеца, али коначна слика ће имати шешир на зецу. - -- **Креирати варијације**. Идеја је да узмете постојећу слику и затражите да се направе варијације. За креирање варијације, пружите слику и текстуални промпт и код као што је овај: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Напомена, ово је подржано само на OpenAI - -## Температура - -Температура је параметар који контролише случајност излаза генеративног AI модела. Вредност температуре је између 0 и 1, где 0 значи да је излаз детерминистички, а 1 да је излаз случајан. Подразумевана вредност је 0.7. - -Погледајмо пример како температура функционише, тако што ћемо покренути овај промпт два пута: - -> Промпт: "Зец на коњу, држи лизалицу, на магловитој ливади где расту нарциси" - -![Зец на коњу држи лизалицу, верзија 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.sr.png) - -Сада покренимо исти промпт поново да видимо да нећемо добити исту слику два пута: - -![Генерисана слика зеца на коњу](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.sr.png) - -Као што видите, слике су сличне, али нису идентичне. Покушајмо да променимо вредност температуре на 0.1 и видимо шта ће се десити: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Промена температуре - -Покушајмо да учинимо одговор више детерминистичким. Из две генерисане слике видели смо да је на првој слици зец, а на другој коњ, па се слике значајно разликују. - -Зато ћемо променити код и поставити температуру на 0, овако: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Када покренете овај код, добићете ове две слике: - -- ![Температура 0, в1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.sr.png) -- ![Температура 0, в2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.sr.png) - -Овде јасно видите да слике више личе једна на другу. - -## Како дефинисати границе за вашу апликацију помоћу метапромптова - -У нашем демо примеру већ можемо генерисати слике за наше клијенте. Међутим, потребно је да поставимо неке границе за нашу апликацију. - -На пример, не желимо да генеришемо слике које нису безбедне за радно место или које нису прикладне за децу. - -То можемо урадити помоћу _метапромптова_. Метапромптови су текстуални промптови који се користе за контролу излаза генеративног AI модела. На пример, можемо користити метапромптове да контролишемо излаз и осигурамо да генерисане слике буду безбедне за радно место или прикладне за децу. - -### Како то функционише? - -Како метапромптови раде? - -Метапромптови су текстуални промптови који се користе за контролу излаза генеративног AI модела, они се постављају пре главног текстуалног промпта и користе се за контролу излаза модела. Уграђују се у апликације како би контролисали излаз модела. На тај начин се у један текстуални промпт обухватају и улазни промпт и метапромпт. - -Један пример метапромпта био би следећи: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Сада, погледајмо како можемо користити метапромптове у нашем демо примеру. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -Из горе наведеног промпта видите како све генерисане слике узимају у обзир метапромпт. - -## Задатак – омогућимо студентима - -Увели смо Edu4All на почетку ове лекције. Сада је време да омогућимо студентима да генеришу слике за своје задатке. - -Студенти ће креирати слике за своје задатке које садрже споменике, а који споменици ће то бити зависи од студената. Студенти су позвани да користе своју креативност и поставе ове споменике у различите контексте. - -## Решење - -Ево једног могућег решења: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Одличан рад! Наставите са учењем - -Након завршетка ове лекције, погледајте нашу [колекцију за учење генеративне вештачке интелигенције](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) и наставите да унапређујете своје знање о генеративном AI! - -Прелазимо на Лекцију 10 где ћемо погледати како да [правите AI апликације са мало кода](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**Одрицање од одговорности**: -Овај документ је преведен коришћењем AI преводилачке услуге [Co-op Translator](https://github.com/Azure/co-op-translator). Иако се трудимо да превод буде тачан, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитетним извором. За критичне информације препоручује се професионални људски превод. Нисмо одговорни за било каква неспоразума или погрешна тумачења која произилазе из коришћења овог превода. \ No newline at end of file + + + + diff --git a/translations/sr/12-designing-ux-for-ai-applications/README.md b/translations/sr/12-designing-ux-for-ai-applications/README.md index 1b5e25542..08933ba0a 100644 --- a/translations/sr/12-designing-ux-for-ai-applications/README.md +++ b/translations/sr/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# Дизајн корисничког искуства за AI апликације - -[![Дизајн корисничког искуства за AI апликације](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.sr.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Кликните на слику изнад да бисте погледали видео о овој лекцији)_ - -Корисничко искуство је веома важан аспект у изградњи апликација. Корисници морају моћи да користе вашу апликацију на ефикасан начин да би обавили задатке. Ефикасност је једна ствар, али такође треба да дизајнирате апликације тако да их сви могу користити, односно да буду _приступачне_. Ово поглавље ће се фокусирати на то како бисте на крају дизајнирали апликацију коју људи могу и желе да користе. - -## Увод - -Корисничко искуство је начин на који корисник комуницира и користи одређени производ или услугу, било да је то систем, алат или дизајн. При развоју AI апликација, програмери се не фокусирају само на то да корисничко искуство буде ефикасно, већ и етичко. У овој лекцији ћемо обрадити како изградити апликације вештачке интелигенције (AI) које одговарају потребама корисника. - -Лекција ће обухватити следеће области: - -- Увод у корисничко искуство и разумевање потреба корисника -- Дизајн AI апликација за поверење и транспарентност -- Дизајн AI апликација за сарадњу и повратне информације - -## Циљеви учења - -Након ове лекције, моћи ћете да: - -- Разумете како изградити AI апликације које задовољавају потребе корисника. -- Дизајнирате AI апликације које подстичу поверење и сарадњу. - -### Претходно знање - -Одвојите време и прочитајте више о [корисничком искуству и дизајн размишљању.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Увод у корисничко искуство и разумевање потреба корисника - -У нашем измишљеном стартапу за образовање, имамо два главна корисника: наставнике и ученике. Сваки од њих има јединствене потребе. Дизајн усмерен на корисника ставља корисника у центар пажње, осигуравајући да производи буду релевантни и корисни за оне за које су намењени. - -Апликација треба да буде **корисна, поуздана, приступачна и пријатна** како би пружила добро корисничко искуство. - -### Употребљивост - -Корисна апликација има функционалност која одговара њеној намени, као што је аутоматизација процеса оцењивања или генерисање флашкарти за учење. Апликација која аутоматизује оцењивање треба да буде у стању да прецизно и ефикасно додели оцене на основу унапред дефинисаних критеријума. Слично томе, апликација која генерише флашкарте за учење треба да креира релевантна и разнолика питања на основу својих података. - -### Поузданост - -Поуздана апликација може доследно и без грешака обављати свој задатак. Међутим, AI, као и људи, није савршен и може правити грешке. Апликације могу наићи на грешке или неочекиване ситуације које захтевају људску интервенцију или исправку. Како се носити са грешкама? У последњем делу ове лекције обрадимо како су AI системи и апликације дизајнирани за сарадњу и повратне информације. - -### Приступачност - -Приступачност значи проширити корисничко искуство на кориснике са различитим способностима, укључујући и особе са инвалидитетом, како нико не би био искључен. Пратећи смернице и принципе приступачности, AI решења постају инклузивнија, употребљивија и кориснија за све кориснике. - -### Пријатност - -Пријатна апликација је она коју је задовољство користити. Привлачно корисничко искуство може позитивно утицати на корисника, подстичући га да се враћа апликацији и повећавајући приходе. - -![слика која илуструје разматрања корисничког искуства у AI](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.sr.png) - -Неки изазови се не могу решити AI-јем. AI долази као подршка вашем корисничком искуству, било да аутоматизује ручне задатке или персонализује корисничко искуство. - -## Дизајн AI апликација за поверење и транспарентност - -Изградња поверења је кључна приликом дизајнирања AI апликација. Поверење осигурава да корисник има поверења да ће апликација обавити посао, доследно испоручивати резултате и да су ти резултати оно што корисник треба. Ризици у овој области су неповерење и претерано поверење. Неповерење се јавља када корисник има мало или нимало поверења у AI систем, што доводи до одбијања апликације. Претерано поверење се јавља када корисник прецењује могућности AI система, што доводи до претераног ослањања на њега. На пример, у случају претераног поверења, аутоматизовани систем оцењивања може довести до тога да наставник не прегледа неке радове како би проверио исправност система. То може резултирати неправедним или нетачним оценама за ученике или пропуштеним приликама за повратне информације и унапређење. - -Два начина да се поверење стави у центар дизајна су објашњивост и контрола. - -### Објашњивост - -Када AI помаже у доношењу одлука, као што је преношење знања будућим генерацијама, важно је да наставници и родитељи разумеју како се одлуке доносе. То је објашњивост – разумевање начина на који AI апликације доносе одлуке. Дизајн за објашњивост укључује додавање примера шта AI апликација може да уради. На пример, уместо „Почните са AI наставником“, систем може користити: „Сажмите своје белешке за лакше учење помоћу AI.“ - -![почетна страница апликације са јасном илустрацијом објашњивости у AI апликацијама](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.sr.png) - -Још један пример је како AI користи корисничке и личне податке. На пример, корисник са улогом ученика може имати ограничења у складу са својом улогом. AI можда неће моћи да открије одговоре на питања, али може помоћи кориснику да размисли о томе како да реши проблем. - -![AI одговара на питања у складу са улогом корисника](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.sr.png) - -Још један важан део објашњивости је поједностављење објашњења. Ученици и наставници можда нису AI стручњаци, па објашњења о томе шта апликација може или не може да уради треба да буду једноставна и лако разумљива. - -![поједностављена објашњења о могућностима AI](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.sr.png) - -### Контрола - -Генеративни AI ствара сарадњу између AI и корисника, где корисник може мењати упите ради различитих резултата. Поред тога, након што се резултат генерише, корисници треба да могу да га мењају, што им даје осећај контроле. На пример, када користите Bing, можете прилагодити упит по формату, тону и дужини. Такође, можете додавати измене и мењати резултат као што је приказано испод: - -![Резултати претраге на Bing-у са опцијама за измену упита и резултата](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.sr.png) - -Још једна функција у Bing-у која омогућава кориснику контролу над апликацијом је могућност да се укључи или искључи коришћење података које AI користи. За школску апликацију, ученик може желети да користи своје белешке као и наставничке ресурсе као материјал за учење. - -![Резултати претраге на Bing-у са опцијама за измену упита и резултата](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.sr.png) - -> При дизајнирању AI апликација, намерност је кључна како би се спречило претерано поверење и постављање нереалних очекивања о могућностима. Један од начина је увођење отпора између упита и резултата, подсећајући корисника да је ово AI, а не други човек. - -## Дизајн AI апликација за сарадњу и повратне информације - -Као што је раније поменуто, генеративни AI ствара сарадњу између корисника и AI. Већина интеракција подразумева да корисник уноси упит, а AI генерише резултат. Шта ако је резултат нетачан? Како апликација поступа у случају грешака? Да ли AI криви корисника или објашњава грешку? - -AI апликације треба да буду дизајниране тако да примају и дају повратне информације. Ово не само да помаже AI систему да се побољша, већ и гради поверење са корисницима. У дизајн треба укључити повратну спрегу, на пример једноставан палчеве горе или доле за резултат. - -Још један начин да се ово реши је јасна комуникација о могућностима и ограничењима система. Када корисник направи грешку тражећи нешто изван могућности AI, треба постојати начин да се то обради, као што је приказано испод. - -![Дајење повратних информација и руковање грешкама](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.sr.png) - -Грешке у систему су честе у апликацијама где корисник може тражити помоћ изван домена AI или апликација има ограничење колико питања/предмета корисник може да генерише сажетке. На пример, AI апликација обучена на подацима из ограничених предмета, као што су Историја и Математика, можда неће моћи да одговори на питања из Географије. Да би се то избегло, AI систем може дати одговор као: „Жао нам је, наш производ је обучен на подацима из следећих предмета..., не могу да одговорим на питање које сте поставили.“ - -AI апликације нису савршене, па ће правити грешке. При дизајнирању апликација треба обезбедити простор за повратне информације корисника и руковање грешкама на једноставан и лако разумљив начин. - -## Задатак - -Узмите било коју AI апликацију коју сте до сада направили и размислите о имплементацији следећих корака у вашој апликацији: - -- **Пријатност:** Размислите како да вашу апликацију учините пријатнијом. Да ли свуда додајете објашњења? Да ли подстичете корисника да истражује? Како формулишете поруке о грешкама? - -- **Употребљивост:** Ако правите веб апликацију, уверите се да је навигација могућа и мишем и тастатуром. - -- **Поверење и транспарентност:** Немојте потпуно веровати AI-ју и његовим резултатима, размислите како бисте укључили човека у процес да провери резултате. Такође, размислите и примените друге начине за постизање поверења и транспарентности. - -- **Контрола:** Дајте кориснику контролу над подацима које пружа апликацији. Имплементирајте начин да корисник може да се укључи или искључи из прикупљања података у AI апликацији. - -## Наставите са учењем! - -Након завршетка ове лекције, погледајте нашу [колекцију за учење о генеративном AI-ју](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) и наставите да унапређујете своје знање о генеративном AI-ју! - -Прелазите на Лекцију 13, где ћемо погледати како [заштитити AI апликације](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**Одрицање од одговорности**: -Овај документ је преведен коришћењем AI услуге за превођење [Co-op Translator](https://github.com/Azure/co-op-translator). Иако се трудимо да превод буде тачан, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитетним извором. За критичне информације препоручује се професионални људски превод. Нисмо одговорни за било каква неспоразума или погрешна тумачења која произилазе из коришћења овог превода. \ No newline at end of file + + + diff --git a/translations/sr/README.md b/translations/sr/README.md index c1ea8c645..ddcde34f6 100644 --- a/translations/sr/README.md +++ b/translations/sr/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.sr.png) - -### 21 лекција које вас уче свему што треба да знате да бисте почели да правите апликације засноване на генеративној вештачкој интелигенцији - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Подршка за више језика - -#### Подржано преко GitHub Action (аутоматски и увек ажурирано) - -[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](./README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md) - -# Генеративна вештачка интелигенција за почетнике (Верзија 3) - Курс - -Научите основе прављења апликација заснованих на генеративној вештачкој интелигенцији кроз наш свеобухватни курс од 21 лекције који су припремили Microsoft Cloud Advocates. - -## 🌱 Почетак - -Овај курс има 21 лекцију. Свака лекција покрива своју тему, па почните где год желите! - -Лекције су означене као „Learn“ лекције које објашњавају концепт генеративне вештачке интелигенције или „Build“ лекције које објашњавају концепт и дају примере кода у оба језика, **Python** и **TypeScript**, кад год је могуће. - -За .NET програмере погледајте [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -Свака лекција такође садржи одељак „Keep Learning“ са додатним алатима за учење. - -## Шта вам је потребно -### За покретање кода из овог курса можете користити: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **Лекције:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **Лекције:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **Лекције:** "oai-assignment" - -- Основно познавање Python-а или TypeScript-а је корисно - \*За апсолутне почетнике препоручујемо ове [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) и [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) курсеве -- GitHub налог да бисте [форковали цео овај репозиторијум](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) на свој налог - -Направили смо лекцију **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** која ће вам помоћи да подесите развојно окружење. - -Не заборавите да [означите (🌟) овај репозиторијум](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) како бисте га лакше пронашли касније. - -## 🧠 Спремни за деплој? - -Ако тражите напредније примере кода, погледајте нашу [збирку примера кода за генеративну вештачку интелигенцију](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) на оба језика, **Python** и **TypeScript**. - -## 🗣️ Упознајте друге ученике, добијте подршку - -Придружите се нашем [званичном Azure AI Foundry Discord серверу](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) да упознате и умрежите се са другим ученицима овог курса и добијете подршку. - -Постављајте питања или делите повратне информације о производу у нашем [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum) на GitHub-у. - -## 🚀 Правите стартап? - -Пријавите се на [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) и добијте **бесплатне OpenAI кредите** и до **150.000$ у Azure кредитима за приступ OpenAI моделима преко Azure OpenAI Services**. - -## 🙏 Желите да помогнете? - -Имате предлоге или сте пронашли правописне или кодне грешке? [Отворите issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) или [направите pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 Свака лекција садржи: - -- Кратак видео увод у тему -- Писану лекцију у README-у -- Примере кода у Python-у и TypeScript-у који подржавају Azure OpenAI и OpenAI API -- Линкове ка додатним ресурсима за наставак учења - -## 🗃️ Лекције - -| # | **Линк ка лекцији** | **Опис** | **Видео** | **Додатно учење** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Како подесити развојно окружење | Видео ускоро | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introduction to Generative AI and LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Разумевање шта је генеративна вештачка интелигенција и како функционишу велики језички модели (LLMs). | [Видео](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Exploring and comparing different LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Како изабрати прави модел за ваш случај употребе | [Видео](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Using Generative AI Responsibly](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Како одговорно правити апликације засноване на генеративној вештачкој интелигенцији | [Видео](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Understanding Prompt Engineering Fundamentals](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Практичне најбоље праксе у Prompt Engineering-у | [Видео](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Creating Advanced Prompts](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Како применити технике prompt engineering-а које побољшавају резултате ваших упита | [Видео](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Learn More](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Прављење апликација за генерисање текста](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Прави:** апликацију за генерисање текста користећи Azure OpenAI / OpenAI API | [Видео](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Сазнајте више](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Прављење апликација за ћаскање](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Прави:** технике за ефикасно прављење и интеграцију апликација за ћаскање. | [Видео](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Сазнајте више](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Прављење претраживачких апликација и векторских база података](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Прави:** претраживачку апликацију која користи Embeddings за претрагу података. | [Видео](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Сазнајте више](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Прављење апликација за генерисање слика](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Прави:** апликацију за генерисање слика | [Видео](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Сазнајте више](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Прављење AI апликација са мало кода](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Прави:** генеративну AI апликацију користећи Low Code алате | [Видео](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Сазнајте више](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Интеграција спољних апликација са Function Calling](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Прави:** шта је function calling и њене примене у апликацијама | [Видео](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Сазнајте више](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [Дизајн UX за AI апликације](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Учите:** како применити принципе UX дизајна приликом развоја генеративних AI апликација | [Видео](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Сазнајте више](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Заштита ваших генеративних AI апликација](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Учите:** претње и ризике за AI системе и начине заштите тих система. | [Видео](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Сазнајте више](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [Животни циклус генеративних AI апликација](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Учите:** алате и метрике за управљање LLM животним циклусом и LLMOps | [Видео](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Сазнајте више](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) и векторске базе података](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Прави:** апликацију која користи RAG Framework за преузимање embeddings из векторских база података | [Видео](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Сазнајте више](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Open Source модели и Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Прави:** апликацију користећи open source моделе доступне на Hugging Face | [Видео](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Сазнајте више](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI агенти](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Прави:** апликацију користећи AI Agent Framework | [Видео](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Сазнајте више](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [Фино подешавање LLM-ова](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Учите:** шта, зашто и како се врши фино подешавање LLM-ова | [Видео](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Сазнајте више](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Прављење са SLM-овима](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Учите:** предности коришћења Small Language Models | Видео ускоро | [Сазнајте више](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Прављење са Mistral моделима](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Учите:** карактеристике и разлике Mistral породице модела | Видео ускоро | [Сазнајте више](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Прављење са Meta моделима](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Учите:** карактеристике и разлике Meta породице модела | Видео ускоро | [Сазнајте више](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Посебне захвалности - -Посебне захвалности [**John Aziz**](https://www.linkedin.com/in/john0isaac/) за креирање свих GitHub Actions и workflow-ова - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) за кључне доприносе свакој лекцији у циљу побољшања искуства учења и рада са кодом. - -## 🎒 Остали курсеви - -Наш тим прави и друге курсеве! Погледајте: - -- [**НОВИ** Model Context Protocol за почетнике](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI агенти за почетнике](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Генеративни AI за почетнике користећи .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Генеративни AI за почетнике користећи JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML за почетнике](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Data Science за почетнике](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI за почетнике](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Cybersecurity за почетнике](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Web Dev за почетнике](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT за почетнике](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR развој за почетнике](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Мастеринг GitHub Copilot за AI парно програмирање](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Мастеринг GitHub Copilot за C#/.NET програмере](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Изабери своју Copilot авантуру](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Одрицање од одговорности**: -Овај документ је преведен коришћењем AI услуге за превођење [Co-op Translator](https://github.com/Azure/co-op-translator). Иако се трудимо да превод буде тачан, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитетним извором. За критичне информације препоручује се професионални људски превод. Нисмо одговорни за било каква неспоразума или погрешна тумачења која произилазе из коришћења овог превода. \ No newline at end of file + + + + diff --git a/translations/sv/00-course-setup/01-setup-cloud.md b/translations/sv/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..ee6b45322 --- /dev/null +++ b/translations/sv/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/sv/00-course-setup/02-setup-local.md b/translations/sv/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..0b41b1645 --- /dev/null +++ b/translations/sv/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/sv/00-course-setup/03-providers.md b/translations/sv/00-course-setup/03-providers.md new file mode 100644 index 000000000..f8583bbcd --- /dev/null +++ b/translations/sv/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/sv/00-course-setup/README.md b/translations/sv/00-course-setup/README.md index 88ded18a9..b7f9e7ed1 100644 --- a/translations/sv/00-course-setup/README.md +++ b/translations/sv/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# Kom igång med den här kursen - -Vi är väldigt glada över att du ska börja den här kursen och se vad du blir inspirerad att skapa med Generativ AI! - -För att säkerställa din framgång beskriver den här sidan installationssteg, tekniska krav och var du kan få hjälp om det behövs. - -## Installationssteg - -För att börja ta den här kursen behöver du genomföra följande steg. - -### 1. Forka detta repo - -[Forka hela detta repo](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) till ditt eget GitHub-konto för att kunna ändra i koden och klara av utmaningarna. Du kan också [stjärnmärka (🌟) detta repo](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) för att lättare hitta det och relaterade repos. - -### 2. Skapa en codespace - -För att undvika beroendeproblem när du kör koden rekommenderar vi att du kör kursen i en [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst). - -Detta kan skapas genom att välja `Code`-alternativet på din forkade version av detta repo och sedan välja **Codespaces**. - -![Dialog som visar knappar för att skapa en codespace](../../../00-course-setup/images/who-will-pay.webp) - -### 3. Spara dina API-nycklar - -Det är viktigt att hålla dina API-nycklar säkra när du bygger någon typ av applikation. Vi rekommenderar att du inte sparar några API-nycklar direkt i din kod. Att lägga upp dessa uppgifter i ett offentligt repo kan leda till säkerhetsproblem och till och med oönskade kostnader om de används av någon illvillig aktör. -Här är en steg-för-steg-guide för hur du skapar en `.env`-fil för Python och lägger till `GITHUB_TOKEN`: - -1. **Navigera till din projektmapp**: Öppna terminalen eller kommandoprompten och gå till projektets rotmapp där du vill skapa `.env`-filen. - - ```bash - cd path/to/your/project - ``` - -2. **Skapa `.env`-filen**: Använd din favorittextredigerare för att skapa en ny fil med namnet `.env`. Om du använder kommandoraden kan du använda `touch` (på Unix-baserade system) eller `echo` (på Windows): - - Unix-baserade system: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **Redigera `.env`-filen**: Öppna `.env`-filen i en textredigerare (t.ex. VS Code, Notepad++ eller någon annan editor). Lägg till följande rad i filen och ersätt `your_github_token_here` med din faktiska GitHub-token: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Spara filen**: Spara ändringarna och stäng textredigeraren. - -5. **Installera `python-dotenv`**: Om du inte redan har gjort det behöver du installera paketet `python-dotenv` för att kunna läsa in miljövariabler från `.env`-filen i din Python-applikation. Du kan installera det med `pip`: - - ```bash - pip install python-dotenv - ``` - -6. **Läs in miljövariabler i ditt Python-skript**: I ditt Python-skript använder du `python-dotenv` för att läsa in miljövariablerna från `.env`-filen: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -Klart! Du har nu skapat en `.env`-fil, lagt till din GitHub-token och läst in den i din Python-applikation. - -## Hur man kör lokalt på din dator - -För att köra koden lokalt på din dator behöver du ha någon version av [Python installerad](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -För att sedan använda repot behöver du klona det: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -När du har allt på plats kan du börja! - -## Valfria steg - -### Installera Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) är en lättviktsinstallerare för att installera [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python samt några paket. -Conda är en pakethanterare som gör det enkelt att sätta upp och växla mellan olika Python [**virtuella miljöer**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) och paket. Den är också användbar för att installera paket som inte finns via `pip`. - -Du kan följa [Miniconda installationsguide](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) för att komma igång. - -När Miniconda är installerat behöver du klona [repositoriet](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (om du inte redan gjort det). - -Därefter behöver du skapa en virtuell miljö. För att göra detta med Conda, skapa en ny miljöfil (_environment.yml_). Om du följer med i Codespaces, skapa denna i `.devcontainer`-mappen, alltså `.devcontainer/environment.yml`. - -Fyll i din miljöfil med nedanstående kodsnutt: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Om du får fel när du använder conda kan du manuellt installera Microsoft AI Libraries med följande kommando i terminalen. - -``` -conda install -c microsoft azure-ai-ml -``` - -Miljöfilen specificerar de beroenden vi behöver. `` är namnet du vill ge din Conda-miljö och `` är den Python-version du vill använda, till exempel `3` som är den senaste stora versionen. - -När detta är gjort kan du skapa din Conda-miljö genom att köra kommandona nedan i din terminal/kommandorad: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -Se [Conda environments guide](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst) om du stöter på problem. - -### Använda Visual Studio Code med Python-tillägget - -Vi rekommenderar att du använder [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) med [Python-tillägget](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) installerat för den här kursen. Detta är dock mer en rekommendation än ett krav. - -> **Note**: Genom att öppna kursrepositoriet i VS Code har du möjlighet att sätta upp projektet i en container. Detta tack vare den [speciella `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst)-mappen som finns i kursrepositoriet. Mer om detta senare. - -> **Note**: När du klonar och öppnar mappen i VS Code kommer det automatiskt föreslå att du installerar Python-tillägget. - -> **Note**: Om VS Code föreslår att du öppnar repot i en container, tacka nej till detta för att använda den lokalt installerade versionen av Python. - -### Använda Jupyter i webbläsaren - -Du kan också arbeta med projektet i [Jupyter-miljön](https://jupyter.org?WT.mc_id=academic-105485-koreyst) direkt i din webbläsare. Både klassiska Jupyter och [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) erbjuder en trevlig utvecklingsmiljö med funktioner som autokomplettering, kodmarkering med mera. - -För att starta Jupyter lokalt, gå till terminalen/kommandoraden, navigera till kursmappen och kör: - -```bash -jupyter notebook -``` - -eller - -```bash -jupyterhub -``` - -Detta startar en Jupyter-instans och URL:en för att komma åt den visas i terminalfönstret. - -När du öppnar URL:en bör du se kursöversikten och kunna navigera till valfri `*.ipynb`-fil, till exempel `08-building-search-applications/python/oai-solution.ipynb`. - -### Köra i en container - -Ett alternativ till att sätta upp allt på din dator eller i Codespace är att använda en [container](../../../00-course-setup/). Den speciella `.devcontainer`-mappen i kursrepositoriet gör det möjligt för VS Code att sätta upp projektet i en container. Utanför Codespaces kräver detta installation av Docker och är ganska avancerat, så vi rekommenderar detta endast för dig som har erfarenhet av containers. - -Ett av de bästa sätten att hålla dina API-nycklar säkra när du använder GitHub Codespaces är att använda Codespace Secrets. Följ guiden för [Codespaces secrets management](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) för att lära dig mer. - -## Lektioner och tekniska krav - -Kursen innehåller 6 konceptlektioner och 6 kodlektioner. - -För kodlektionerna använder vi Azure OpenAI Service. Du behöver tillgång till Azure OpenAI service och en API-nyckel för att köra koden. Du kan ansöka om tillgång genom att [fylla i denna ansökan](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -Medan du väntar på att din ansökan behandlas innehåller varje kodlektion även en `README.md`-fil där du kan se koden och resultaten. - -## Använda Azure OpenAI Service för första gången - -Om det är första gången du arbetar med Azure OpenAI service, följ denna guide för hur du [skapar och distribuerar en Azure OpenAI Service-resurs.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## Använda OpenAI API för första gången - -Om det är första gången du arbetar med OpenAI API, följ guiden för hur du [skapar och använder gränssnittet.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## Träffa andra deltagare - -Vi har skapat kanaler i vår officiella [AI Community Discord-server](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) för att du ska kunna träffa andra deltagare. Det är ett utmärkt sätt att nätverka med likasinnade entreprenörer, utvecklare, studenter och alla som vill ta nästa steg inom Generativ AI. - -[![Join discord channel](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -Projektteamet finns också på denna Discord-server för att hjälpa deltagare. - -## Bidra - -Den här kursen är ett open source-initiativ. Om du ser förbättringsområden eller problem, skapa gärna en [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) eller rapportera ett [GitHub-issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -Projektteamet följer alla bidrag. Att bidra till open source är ett fantastiskt sätt att bygga din karriär inom Generativ AI. - -De flesta bidrag kräver att du godkänner ett Contributor License Agreement (CLA) som intygar att du har rätt att och faktiskt ger oss rätt att använda ditt bidrag. För mer information, besök [CLA, Contributor License Agreement-webbplatsen](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Viktigt: när du översätter text i detta repo, se till att du inte använder maskinöversättning. Vi kommer att verifiera översättningarna via communityn, så anmäl dig endast för översättningar på språk du behärskar väl. - -När du skickar en pull request kommer en CLA-bot automatiskt avgöra om du behöver lämna in en CLA och märka PR:n på rätt sätt (t.ex. med etikett eller kommentar). Följ bara instruktionerna från boten. Du behöver bara göra detta en gång för alla repos som använder vår CLA. - -Detta projekt har antagit [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst). För mer information, läs Code of Conduct FAQ eller kontakta [Email opencode](opencode@microsoft.com) vid frågor eller kommentarer. - -## Nu kör vi! - -Nu när du har genomfört de nödvändiga stegen för att ta kursen, låt oss börja med en [introduktion till Generativ AI och LLMs](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**Ansvarsfriskrivning**: -Detta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https://github.com/Azure/co-op-translator). Även om vi strävar efter noggrannhet, vänligen observera att automatiska översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess modersmål bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för några missförstånd eller feltolkningar som uppstår till följd av användningen av denna översättning. \ No newline at end of file + + + + diff --git a/translations/sv/00-course-setup/SETUP.md b/translations/sv/00-course-setup/SETUP.md deleted file mode 100644 index f5053988e..000000000 --- a/translations/sv/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# Ställ in din utvecklingsmiljö - -Vi har satt upp detta repository och kurs med en [development container](https://containers.dev?WT.mc_id=academic-105485-koreyst) som har en universell runtime som kan stödja utveckling i Python3, .NET, Node.js och Java. Den relaterade konfigurationen definieras i filen `devcontainer.json` som finns i mappen `.devcontainer/` i roten av detta repository. - -För att aktivera dev-containern, starta den i [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (för en molnbaserad runtime) eller i [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (för en lokal runtime på din enhet). Läs [den här dokumentationen](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) för mer information om hur dev-containrar fungerar i VS Code. - -> [!TIP] -> Vi rekommenderar att använda GitHub Codespaces för en snabb start med minimal ansträngning. Det erbjuder en generös [gratis användningskvot](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) för personliga konton. Konfigurera [timeout](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) för att stoppa eller ta bort inaktiva codespaces för att maximera din kvotanvändning. - -## 1. Köra uppgifter - -Varje lektion kan ha _valfria_ uppgifter som kan erbjudas i en eller flera programmeringsspråk, inklusive: Python, .NET/C#, Java och JavaScript/TypeScript. Denna sektion ger allmän vägledning kring hur du kör dessa uppgifter. - -### 1.1 Python-uppgifter - -Python-uppgifter tillhandahålls antingen som applikationer (`.py`-filer) eller Jupyter-notebooks (`.ipynb`-filer). -- För att köra notebooken, öppna den i Visual Studio Code, klicka sedan på _Select Kernel_ (uppe till höger) och välj standardalternativet Python 3. Du kan nu välja _Run All_ för att köra hela notebooken. -- För att köra Python-applikationer från kommandoraden, följ uppgiftsspecifika instruktioner för att säkerställa att du väljer rätt filer och anger nödvändiga argument. - -## 2. Konfigurera leverantörer - -Uppgifter **kan** också vara inställda för att fungera mot en eller flera Large Language Model (LLM)-distributioner via en stödd tjänsteleverantör som OpenAI, Azure eller Hugging Face. Dessa erbjuder en _hostad endpoint_ (API) som vi kan nå programmässigt med rätt autentiseringsuppgifter (API-nyckel eller token). I denna kurs diskuterar vi dessa leverantörer: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) med olika modeller inklusive kärnserien GPT. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) för OpenAI-modeller med fokus på företagsanpassning. - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) för öppen källkod-modeller och inferensserver. - -**Du behöver använda egna konton för dessa övningar**. Uppgifterna är frivilliga så du kan välja att konfigurera en, alla eller inga av leverantörerna beroende på dina intressen. Här är lite vägledning för registrering: - -| Registrering | Kostnad | API-nyckel | Playground | Kommentarer | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst) | [Prissättning](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst) | [Projektbaserad](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [No-Code, Web](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Flera modeller tillgängliga | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst) | [Prissättning](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst) | [SDK Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Studio Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Måste ansöka i förväg för åtkomst](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) | -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Prissättning](https://huggingface.co/pricing) | [Access Tokens](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst) | [Hugging Chat har begränsade modeller](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Följ instruktionerna nedan för att _konfigurera_ detta repository för användning med olika leverantörer. Uppgifter som kräver en specifik leverantör kommer att innehålla en av dessa taggar i filnamnet: - - `aoai` - kräver Azure OpenAI endpoint och nyckel - - `oai` - kräver OpenAI endpoint och nyckel - - `hf` - kräver Hugging Face token - -Du kan konfigurera en, inga eller alla leverantörer. Relaterade uppgifter kommer helt enkelt att ge fel om autentiseringsuppgifter saknas. - -### 2.1. Skapa `.env`-fil - -Vi förutsätter att du redan har läst vägledningen ovan, registrerat dig hos relevant leverantör och fått de nödvändiga autentiseringsuppgifterna (API_KEY eller token). I fallet med Azure OpenAI förutsätter vi också att du har en giltig distribution av en Azure OpenAI-tjänst (endpoint) med minst en GPT-modell distribuerad för chattkomplettering. - -Nästa steg är att konfigurera dina **lokala miljövariabler** enligt följande: - -1. Leta i rotmappen efter en fil som heter `.env.copy` som bör innehålla något liknande detta: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Kopiera den filen till `.env` med kommandot nedan. Denna fil är _gitignore-ad_, vilket håller hemligheter säkra. - - ```bash - cp .env.copy .env - ``` - -3. Fyll i värdena (ersätt platshållarna till höger om `=`) enligt beskrivningen i nästa avsnitt. - -3. (Valfritt) Om du använder GitHub Codespaces kan du spara miljövariabler som _Codespaces secrets_ kopplade till detta repository. I så fall behöver du inte skapa en lokal .env-fil. **Observera dock att detta alternativ endast fungerar om du använder GitHub Codespaces.** Du måste fortfarande skapa .env-filen om du använder Docker Desktop. - -### 2.2. Fyll i `.env`-filen - -Låt oss snabbt titta på variabelnamnen för att förstå vad de representerar: - -| Variabel | Beskrivning | -| :--- | :--- | -| HUGGING_FACE_API_KEY | Detta är användarens access-token som du ställt in i din profil | -| OPENAI_API_KEY | Detta är auktoriseringsnyckeln för att använda tjänsten för icke-Azure OpenAI endpoints | -| AZURE_OPENAI_API_KEY | Detta är auktoriseringsnyckeln för att använda den tjänsten | -| AZURE_OPENAI_ENDPOINT | Detta är den distribuerade endpointen för en Azure OpenAI-resurs | -| AZURE_OPENAI_DEPLOYMENT | Detta är endpointen för _textgenererings_-modellens distribution | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | Detta är endpointen för _text embeddings_-modellens distribution | -| | | - -Notera: De två sista Azure OpenAI-variablerna speglar en standardmodell för chattkomplettering (textgenerering) respektive vektorsökning (embeddings). Instruktioner för att ställa in dem kommer att definieras i relevanta uppgifter. - -### 2.3 Konfigurera Azure: Från portalen - -Värdena för Azure OpenAI endpoint och nyckel finns i [Azure-portalen](https://portal.azure.com?WT.mc_id=academic-105485-koreyst), så vi börjar där. - -1. Gå till [Azure-portalen](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -1. Klicka på alternativet **Keys and Endpoint** i sidomenyn (menyn till vänster). -1. Klicka på **Show Keys** – du bör se följande: KEY 1, KEY 2 och Endpoint. -1. Använd värdet för KEY 1 som AZURE_OPENAI_API_KEY -1. Använd värdet för Endpoint som AZURE_OPENAI_ENDPOINT - -Nästa steg är att hitta endpoints för de specifika modeller vi har distribuerat. - -1. Klicka på alternativet **Model deployments** i sidomenyn (vänster meny) för Azure OpenAI-resursen. -1. På destinationssidan klickar du på **Manage Deployments** - -Detta tar dig till Azure OpenAI Studio-webbplatsen, där vi hittar de andra värdena enligt beskrivningen nedan. - -### 2.4 Konfigurera Azure: Från Studio - -1. Navigera till [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **från din resurs** som beskrivits ovan. -1. Klicka på fliken **Deployments** (sidomeny, vänster) för att se de modeller som är distribuerade. -1. Om din önskade modell inte är distribuerad, använd **Create new deployment** för att distribuera den. -1. Du behöver en _text-generation_-modell – vi rekommenderar: **gpt-35-turbo** -1. Du behöver en _text-embedding_-modell – vi rekommenderar **text-embedding-ada-002** - -Uppdatera nu miljövariablerna för att spegla det _Deployment name_ som används. Detta är vanligtvis samma som modellnamnet om du inte ändrat det explicit. Så, som exempel, kan du ha: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**Glöm inte att spara .env-filen när du är klar**. Du kan nu stänga filen och återgå till instruktionerna för att köra notebooken. - -### 2.5 Konfigurera OpenAI: Från profil - -Din OpenAI API-nyckel finns i ditt [OpenAI-konto](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). Om du inte har en kan du registrera dig och skapa en API-nyckel. När du har nyckeln kan du använda den för att fylla i variabeln `OPENAI_API_KEY` i `.env`-filen. - -### 2.6 Konfigurera Hugging Face: Från profil - -Din Hugging Face-token finns i din profil under [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). Dela inte dessa offentligt. Skapa istället en ny token för detta projekt och kopiera in den i `.env`-filen under variabeln `HUGGING_FACE_API_KEY`. _Notera:_ Detta är tekniskt sett inte en API-nyckel men används för autentisering, så vi behåller namngivningen för konsekvensens skull. - -**Ansvarsfriskrivning**: -Detta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https://github.com/Azure/co-op-translator). Även om vi strävar efter noggrannhet, vänligen observera att automatiska översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess modersmål bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för några missförstånd eller feltolkningar som uppstår till följd av användningen av denna översättning. \ No newline at end of file diff --git a/translations/sv/04-prompt-engineering-fundamentals/README.md b/translations/sv/04-prompt-engineering-fundamentals/README.md index 28e4ae736..2a39e23d7 100644 --- a/translations/sv/04-prompt-engineering-fundamentals/README.md +++ b/translations/sv/04-prompt-engineering-fundamentals/README.md @@ -1,472 +1,15 @@ - -# Grundläggande om Prompt Engineering - -[![Prompt Engineering Fundamentals](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.sv.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Introduktion -Den här modulen täcker viktiga begrepp och tekniker för att skapa effektiva prompts i generativa AI-modeller. Hur du formulerar din prompt till en LLM spelar också roll. En noggrant utformad prompt kan ge bättre svarskvalitet. Men vad betyder egentligen termer som _prompt_ och _prompt engineering_? Och hur förbättrar jag prompt-_inputen_ som jag skickar till LLM? Det är de frågor vi ska försöka besvara i detta kapitel och nästa. - -_Generativ AI_ kan skapa nytt innehåll (t.ex. text, bilder, ljud, kod osv.) som svar på användarförfrågningar. Det görs med hjälp av _Large Language Models_ som OpenAI:s GPT ("Generative Pre-trained Transformer")-serie, som är tränade för att använda naturligt språk och kod. - -Användare kan nu interagera med dessa modeller via välbekanta gränssnitt som chatt, utan att behöva teknisk expertis eller utbildning. Modellerna är _prompt-baserade_ – användare skickar in en textinput (prompt) och får tillbaka AI:s svar (completion). De kan sedan "chatta med AI:n" iterativt, i flerstegs-konversationer, och förfina sin prompt tills svaret motsvarar deras förväntningar. - -"Prompts" blir nu det primära _programmeringsgränssnittet_ för generativa AI-appar, som talar om för modellerna vad de ska göra och påverkar kvaliteten på de svar som returneras. "Prompt Engineering" är ett snabbt växande forskningsområde som fokuserar på _design och optimering_ av prompts för att leverera konsekventa och kvalitativa svar i stor skala. - -## Lärandemål - -I denna lektion lär vi oss vad Prompt Engineering är, varför det är viktigt och hur vi kan skapa mer effektiva prompts för en given modell och applikationsmål. Vi kommer att förstå kärnbegrepp och bästa praxis för prompt engineering – och lära oss om en interaktiv Jupyter Notebook-"sandbox" där vi kan se dessa koncept tillämpas på verkliga exempel. - -I slutet av lektionen ska vi kunna: - -1. Förklara vad prompt engineering är och varför det är viktigt. -2. Beskriva komponenterna i en prompt och hur de används. -3. Lära oss bästa praxis och tekniker för prompt engineering. -4. Tillämpa inlärda tekniker på verkliga exempel, med hjälp av en OpenAI-endpoint. - -## Nyckelbegrepp - -Prompt Engineering: Praktiken att designa och förfina input för att styra AI-modeller mot att producera önskade resultat. -Tokenisering: Processen att omvandla text till mindre enheter, kallade tokens, som en modell kan förstå och bearbeta. -Instruction-Tuned LLMs: Stora språkmodeller (LLMs) som finjusterats med specifika instruktioner för att förbättra svarens noggrannhet och relevans. - -## Lärande Sandbox - -Prompt engineering är för närvarande mer en konst än en exakt vetenskap. Det bästa sättet att förbättra vår intuition är att _övning ger färdighet_ och att använda en trial-and-error-metod som kombinerar domänkunskap med rekommenderade tekniker och modell-specifika optimeringar. - -Jupyter Notebook som följer med denna lektion erbjuder en _sandbox_-miljö där du kan prova det du lär dig – löpande eller som en del av kodutmaningen i slutet. För att köra övningarna behöver du: - -1. **En Azure OpenAI API-nyckel** – tjänstens endpoint för en distribuerad LLM. -2. **En Python-runtime** – där Notebook kan köras. -3. **Lokala miljövariabler** – _slutför [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) stegen nu för att vara redo_. - -Notebooken innehåller _startövningar_ – men du uppmuntras att lägga till egna _Markdown_- (beskrivning) och _Code_- (promptförfrågningar) sektioner för att testa fler exempel eller idéer – och bygga din intuition för promptdesign. - -## Illustrerad guide - -Vill du få en överblick över vad denna lektion handlar om innan du dyker in? Kolla in denna illustrerade guide som ger dig en känsla för huvudämnena och viktiga insikter att fundera på i varje del. Lektionens färdplan tar dig från att förstå kärnbegrepp och utmaningar till att hantera dem med relevanta prompt engineering-tekniker och bästa praxis. Observera att avsnittet "Avancerade tekniker" i denna guide hänvisar till innehåll som täcks i _nästa_ kapitel i denna kurs. - -![Illustrerad guide till Prompt Engineering](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.sv.png) - -## Vårt startup - -Nu ska vi prata om hur _detta ämne_ relaterar till vår startup-mission att [föra AI-innovation till utbildning](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). Vi vill bygga AI-drivna applikationer för _personanpassat lärande_ – så låt oss fundera på hur olika användare av vår applikation kan "designa" prompts: - -- **Administratörer** kan be AI:n att _analysera läroplansdata för att identifiera luckor i täckningen_. AI:n kan sammanfatta resultaten eller visualisera dem med kod. -- **Lärare** kan be AI:n att _generera en lektionsplan för en målgrupp och ett ämne_. AI:n kan skapa den personliga planen i ett angivet format. -- **Studenter** kan be AI:n att _handleda dem i ett svårt ämne_. AI:n kan nu guida studenter med lektioner, tips och exempel anpassade efter deras nivå. - -Det är bara toppen av isberget. Kolla in [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) – ett open source-bibliotek med prompts sammanställt av utbildningsexperter – för att få en bredare bild av möjligheterna! _Testa att köra några av dessa prompts i sandboxen eller i OpenAI Playground för att se vad som händer!_ - - - -## Vad är Prompt Engineering? - -Vi började denna lektion med att definiera **Prompt Engineering** som processen att _designa och optimera_ textinput (prompts) för att leverera konsekventa och kvalitativa svar (completions) för ett givet applikationsmål och modell. Vi kan se detta som en tvåstegsprocess: - -- _designa_ den initiala prompten för en given modell och mål -- _förfina_ prompten iterativt för att förbättra svarskvaliteten - -Detta är nödvändigtvis en trial-and-error-process som kräver användarens intuition och ansträngning för att nå optimala resultat. Så varför är det viktigt? För att svara på det behöver vi först förstå tre begrepp: - -- _Tokenisering_ = hur modellen "ser" prompten -- _Bas-LLMs_ = hur grundmodellen "bearbetar" en prompt -- _Instruction-Tuned LLMs_ = hur modellen nu kan tolka "uppgifter" - -### Tokenisering - -En LLM ser prompts som en _sekvens av tokens_ där olika modeller (eller versioner av en modell) kan tokenisera samma prompt på olika sätt. Eftersom LLMs tränas på tokens (och inte råtext) påverkar hur prompten tokeniseras direkt kvaliteten på det genererade svaret. - -För att få en känsla för hur tokenisering fungerar, prova verktyg som [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) som visas nedan. Klistra in din prompt – och se hur den omvandlas till tokens, med fokus på hur mellanslag och skiljetecken hanteras. Observera att detta exempel visar en äldre LLM (GPT-3) – så att testa med en nyare modell kan ge ett annat resultat. - -![Tokenisering](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.sv.png) - -### Begrepp: Grundmodeller - -När en prompt är tokeniserad är huvudfunktionen för ["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (eller grundmodellen) att förutsäga nästa token i sekvensen. Eftersom LLMs tränas på enorma textdatamängder har de god förståelse för statistiska samband mellan tokens och kan göra denna förutsägelse med viss säkerhet. Observera att de inte förstår _innebörden_ av orden i prompten eller token; de ser bara ett mönster som de kan "komplettera" med sin nästa förutsägelse. De kan fortsätta förutsäga sekvensen tills användaren avbryter eller någon förutbestämd villkor uppfylls. - -Vill du se hur prompt-baserad completion fungerar? Skriv in prompten ovan i Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) med standardinställningarna. Systemet är konfigurerat att behandla prompts som informationsförfrågningar – så du bör se ett svar som passar detta sammanhang. - -Men vad händer om användaren vill ha något specifikt som uppfyller vissa kriterier eller mål? Här kommer _instruction-tuned_ LLMs in i bilden. - -![Base LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.sv.png) - -### Begrepp: Instruction Tuned LLMs - -En [Instruction Tuned LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) bygger på grundmodellen och finjusteras med exempel eller input/output-par (t.ex. flerstegs-"meddelanden") som kan innehålla tydliga instruktioner – och AI:s svar försöker följa dessa instruktioner. - -Detta använder tekniker som Reinforcement Learning with Human Feedback (RLHF) som kan träna modellen att _följa instruktioner_ och _lära sig av feedback_ så att den producerar svar som är bättre anpassade för praktiska tillämpningar och mer relevanta för användarens mål. - -Låt oss prova – gå tillbaka till prompten ovan, men ändra nu _systemmeddelandet_ för att ge följande instruktion som kontext: - -> _Sammanfatta innehållet du får för en elev i årskurs 2. Håll resultatet till ett stycke med 3-5 punkter._ - -Ser du hur resultatet nu är anpassat för att spegla det önskade målet och formatet? En lärare kan nu direkt använda detta svar i sina presentationer för den klassen. - -![Instruction Tuned LLM Chat Completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.sv.png) - -## Varför behöver vi Prompt Engineering? - -Nu när vi vet hur prompts bearbetas av LLMs, låt oss prata om _varför_ vi behöver prompt engineering. Svaret ligger i att dagens LLMs har flera utmaningar som gör det svårare att uppnå _pålitliga och konsekventa svar_ utan att lägga ner arbete på promptkonstruktion och optimering. Till exempel: - -1. **Modellens svar är stokastiska.** _Samma prompt_ kan ge olika svar med olika modeller eller modellversioner. Och det kan till och med ge olika resultat med _samma modell_ vid olika tillfällen. _Prompt engineering-tekniker kan hjälpa oss att minimera dessa variationer genom att ge bättre styrning_. - -1. **Modeller kan hitta på svar.** Modeller är förtränade på _stora men begränsade_ dataset, vilket innebär att de saknar kunskap om koncept utanför träningsmaterialet. Som en följd kan de generera svar som är felaktiga, påhittade eller direkt motsäger kända fakta. _Prompt engineering hjälper användare att identifiera och minska sådana påhitt, t.ex. genom att be AI:n om källhänvisningar eller resonemang_. - -1. **Modellernas kapacitet varierar.** Nyare modeller eller modellgenerationer har rikare kapaciteter men medför också unika egenheter och kompromisser i kostnad och komplexitet. _Prompt engineering kan hjälpa oss att utveckla bästa praxis och arbetsflöden som döljer skillnader och anpassar sig till modell-specifika krav på ett skalbart och smidigt sätt_. - -Låt oss se detta i praktiken i OpenAI eller Azure OpenAI Playground: - -- Använd samma prompt med olika LLM-distributioner (t.ex. OpenAI, Azure OpenAI, Hugging Face) – såg du variationerna? -- Använd samma prompt upprepade gånger med _samma_ LLM-distribution (t.ex. Azure OpenAI playground) – hur skiljde sig dessa variationer? - -### Exempel på påhittade svar - -I denna kurs använder vi termen **"fabrication"** för att beskriva fenomenet där LLMs ibland genererar faktamässigt felaktig information på grund av begränsningar i deras träning eller andra faktorer. Du har kanske också hört detta kallat _"hallucinationer"_ i populära artiklar eller forskningsrapporter. Vi rekommenderar dock starkt att använda _"fabrication"_ som term för att undvika att antropomorfisera beteendet genom att tillskriva en mänsklig egenskap till ett maskindrivet resultat. Detta stärker också [Responsible AI-riktlinjer](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) ur ett terminologiskt perspektiv, genom att ta bort termer som kan uppfattas som stötande eller icke-inkluderande i vissa sammanhang. - -Vill du få en känsla för hur fabrications fungerar? Tänk på en prompt som instruerar AI:n att generera innehåll för ett icke-existerande ämne (för att säkerställa att det inte finns i träningsdata). Till exempel – jag testade denna prompt: -# Lektionplan: Marskriget 2076 - -## Översikt -I denna lektion kommer vi att utforska Marskriget som ägde rum år 2076. Vi kommer att undersöka orsakerna till konflikten, de viktigaste händelserna under kriget, samt dess konsekvenser för mänskligheten och rymdforskningen. - -## Mål -- Förstå bakgrunden till Marskriget 2076 -- Identifiera de viktigaste aktörerna och händelserna -- Analysera krigets påverkan på samhället och teknologin -- Diskutera lärdomar från konflikten - -## Material -- Textdokument om Marskriget 2076 -- Kartor över Mars och jordens kolonier -- Videoklipp med intervjuer från överlevande och experter -- Diskussionfrågor - -## Lektionens gång - -### 1. Introduktion (10 minuter) -- Kort presentation av Marskriget 2076 -- Visa en tidslinje över viktiga händelser -- Diskutera varför konflikten uppstod - -### 2. Bakgrund och orsaker (15 minuter) -- Gå igenom de politiska och ekonomiska faktorerna -- Beskriv de olika grupperna och deras mål -- Analysera resursbrist och territoriella tvister - -### 3. Viktiga händelser under kriget (20 minuter) -- Beskriv de största slagen och strategierna -- Diskutera teknologiska innovationer som användes -- Visa kartor för att illustrera rörelser och kontrollområden - -### 4. Konsekvenser och efterspel (15 minuter) -- Analysera krigets påverkan på Mars och jorden -- Diskutera förändringar i internationell politik och rymdlagstiftning -- Reflektera över hur kriget påverkade framtida rymdexpeditioner - -### 5. Diskussion och reflektion (10 minuter) -- Ställ frågor till eleverna om vad de lärt sig -- Diskutera möjliga alternativa utfall -- Uppmuntra eleverna att tänka på hur konflikter kan undvikas i framtiden - -## Uppgifter -- Skriv en kort uppsats om en viktig händelse under Marskriget 2076 -- Skapa en presentation om en av de teknologier som utvecklades under kriget -- Delta i en debatt om krigets rättfärdigande och konsekvenser - -## Bedömning -- Aktivt deltagande i diskussioner -- Kvalitet på skriftliga uppgifter och presentationer -- Förmåga att analysera och reflektera över historiska händelser - -## Kommentarer -- Anpassa materialet efter elevernas förkunskaper -- Använd visuella hjälpmedel för att öka förståelsen -- Uppmuntra kritiskt tänkande och källkritik under hela lektionen -En webbsökning visade att det fanns fiktiva berättelser (t.ex. TV-serier eller böcker) om marskrig – men inga från 2076. Sunt förnuft säger också att 2076 är _i framtiden_ och därför inte kan kopplas till en verklig händelse. - -Så vad händer när vi kör denna prompt med olika LLM-leverantörer? - -> **Svar 1**: OpenAI Playground (GPT-35) - -![Svar 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.sv.png) - -> **Svar 2**: Azure OpenAI Playground (GPT-35) - -![Svar 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.sv.png) - -> **Svar 3**: : Hugging Face Chat Playground (LLama-2) - -![Svar 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.sv.png) - -Som väntat ger varje modell (eller modellversion) något olika svar tack vare stokastiskt beteende och variationer i modellens kapacitet. Till exempel riktar sig en modell till en åttondeklassare medan en annan antar att användaren är gymnasieelev. Men alla tre modeller genererade svar som skulle kunna övertyga en oinformerad användare om att händelsen var verklig. - -Prompttekniker som _metaprompting_ och _temperaturinställning_ kan till viss del minska modellens fabriceringar. Nya prompttekniska _arkitekturer_ integrerar också nya verktyg och metoder sömlöst i promptflödet för att mildra eller minska några av dessa effekter. - -## Fallstudie: GitHub Copilot - -Låt oss avsluta detta avsnitt med att få en känsla för hur promptteknik används i verkliga lösningar genom att titta på en fallstudie: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot är din "AI-parprogrammerare" – den omvandlar textpromptar till kodkompletteringar och är integrerad i din utvecklingsmiljö (t.ex. Visual Studio Code) för en sömlös användarupplevelse. Som dokumenterat i bloggsserien nedan baserades den tidigaste versionen på OpenAI Codex-modellen – där ingenjörer snabbt insåg behovet av att finjustera modellen och utveckla bättre prompttekniker för att förbättra kodkvaliteten. I juli [lanserade de en förbättrad AI-modell som går bortom Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) för ännu snabbare förslag. - -Läs inläggen i ordning för att följa deras läranderesa. - -- **Maj 2023** | [GitHub Copilot blir bättre på att förstå din kod](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **Maj 2023** | [Inside GitHub: Att arbeta med LLM:erna bakom GitHub Copilot](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Jun 2023** | [Hur man skriver bättre prompts för GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Jul 2023** | [.. GitHub Copilot går bortom Codex med förbättrad AI-modell](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Jul 2023** | [En utvecklares guide till promptteknik och LLM:er](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **Sep 2023** | [Hur man bygger en företags-LLM-app: Lärdomar från GitHub Copilot](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -Du kan också bläddra i deras [Engineering blog](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) för fler inlägg som [det här](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) som visar hur dessa modeller och tekniker _tillämpas_ för att driva verkliga applikationer. - ---- - - - -## Promptkonstruktion - -Vi har sett varför promptteknik är viktigt – nu ska vi förstå hur prompts _konstrueras_ så att vi kan utvärdera olika tekniker för mer effektiv promptdesign. - -### Grundläggande prompt - -Låt oss börja med den grundläggande prompten: en textinmatning som skickas till modellen utan annan kontext. Här är ett exempel – när vi skickar de första orden i USA:s nationalsång till OpenAI:s [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst) fullbordar den omedelbart svaret med de följande raderna, vilket illustrerar det grundläggande prediktionsbeteendet. - -| Prompt (Inmatning) | Komplettering (Utmatning) | -| :--------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | Det låter som att du börjar med texten till "The Star-Spangled Banner", USA:s nationalsång. Den fullständiga texten är ... | - -### Komplex prompt - -Nu lägger vi till kontext och instruktioner till den grundläggande prompten. [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) låter oss bygga en komplex prompt som en samling _meddelanden_ med: - -- Inmatning/utmatningspar som speglar _användarens_ input och _assistentens_ svar. -- Systemmeddelande som sätter kontext för assistentens beteende eller personlighet. - -Förfrågan ser nu ut som nedan, där _tokeniseringen_ effektivt fångar relevant information från kontext och konversation. Att ändra systemkontexten kan nu påverka kvaliteten på kompletteringarna lika mycket som användarens inmatningar. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Instruktionsprompt - -I exemplen ovan var användarprompten en enkel textfråga som kan tolkas som en informationsförfrågan. Med _instruktionsprompter_ kan vi använda texten för att specificera en uppgift mer detaljerat och ge AI:n bättre vägledning. Här är ett exempel: - -| Prompt (Inmatning) | Komplettering (Utmatning) | Instruktionstyp | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Write a description of the Civil War | _returnerade ett enkelt stycke_ | Enkel | -| Write a description of the Civil War. Provide key dates and events and describe their significance | _returnerade ett stycke följt av en lista med viktiga datum och beskrivningar_ | Komplex | -| Write a description of the Civil War in 1 paragraph. Provide 3 bullet points with key dates and their significance. Provide 3 more bullet points with key historical figures and their contributions. Return the output as a JSON file | _returnerar mer omfattande detaljer i en textruta, formaterad som JSON som du kan kopiera och klistra in i en fil och validera vid behov_ | Komplex. Formaterad.| - -## Primärt innehåll - -I exemplen ovan var prompten fortfarande ganska öppen, vilket tillät LLM att avgöra vilken del av dess förtränade dataset som var relevant. Med designmönstret _primärt innehåll_ delas inmatningstexten upp i två delar: - -- en instruktion (åtgärd) -- relevant innehåll (som påverkar åtgärden) - -Här är ett exempel där instruktionen är att "sammanfatta detta i 2 meningar". - -| Prompt (Inmatning) | Komplettering (Utmatning) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter är den femte planeten från solen och den största i solsystemet. Det är en gasjätte med en massa som är en tusendel av solens, men två och en halv gånger massan av alla andra planeter i solsystemet tillsammans. Jupiter är ett av de ljusaste objekten som är synliga för blotta ögat på natthimlen och har varit känt för forntida civilisationer sedan innan historien skrevs. Den är uppkallad efter den romerska guden Jupiter.[19] När man ser Jupiter från jorden kan den vara tillräckligt ljus för att dess reflekterade ljus ska kasta synliga skuggor,[20] och är i genomsnitt det tredje ljusaste naturliga objektet på natthimlen efter månen och Venus.
**Sammanfatta detta i 2 korta meningar** | Jupiter, den femte planeten från solen, är den största i solsystemet och är känd för att vara ett av de ljusaste objekten på natthimlen. Uppkallad efter den romerska guden Jupiter, är det en gasjätte vars massa är två och en halv gånger massan av alla andra planeter i solsystemet tillsammans. | - -Segmentet med primärt innehåll kan användas på olika sätt för att driva mer effektiva instruktioner: - -- **Exempel** – istället för att tala om för modellen vad den ska göra med en explicit instruktion, ge den exempel på vad som ska göras och låt den dra slutsatser om mönstret. -- **Ledtrådar** – följ instruktionen med en "ledtråd" som förbereder kompletteringen och styr modellen mot mer relevanta svar. -- **Mall** – detta är upprepbara 'recept' för prompts med platshållare (variabler) som kan anpassas med data för specifika användningsfall. - -Låt oss utforska dessa i praktiken. - -### Använda exempel - -Detta är en metod där du använder det primära innehållet för att "mata modellen" med exempel på önskat resultat för en given instruktion och låter den dra slutsatser om mönstret för önskat resultat. Beroende på antalet exempel kan vi ha zero-shot prompting, one-shot prompting, few-shot prompting osv. - -Prompten består nu av tre komponenter: - -- En uppgiftsbeskrivning -- Några exempel på önskat resultat -- Början på ett nytt exempel (som blir en implicit uppgiftsbeskrivning) - -| Inlärningstyp | Prompt (Inmatning) | Komplettering (Utmatning) | -| :------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------- | -| Zero-shot | "The Sun is Shining". Translate to Spanish | "El Sol está brillando". | -| One-shot | "The Sun is Shining" => ""El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| Few-shot | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketball | -| | | | - -Notera hur vi behövde ge en explicit instruktion ("Translate to Spanish") i zero-shot prompting, men den härleds i one-shot-exemplet. Few-shot-exemplet visar hur fler exempel gör att modeller kan göra mer exakta slutsatser utan extra instruktioner. - -### Promptledtrådar - -En annan teknik för att använda primärt innehåll är att ge _ledtrådar_ istället för exempel. I detta fall ger vi modellen en knuff i rätt riktning genom att _starta den_ med ett utdrag som speglar önskat svarformat. Modellen "tar ledtråden" och fortsätter i samma stil. - -| Antal ledtrådar | Prompt (Inmatning) | Komplettering (Utmatning) | -| :-------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Jupiter är den femte planeten från solen och den största i solsystemet. Det är en gasjätte med en massa som är en tusendel av solens, men två och en halv gånger massan av alla andra planeter i solsystemet tillsammans. Jupiter är ett av de ljusaste objekten som är synliga för blotta ögat på natthimlen, och har varit känt för forntida civilisationer sedan innan historien skrevs. - -**Sammanfatta detta** | Jupiter är den största planeten i vårt solsystem och den femte från solen. Det är en gasjätte med en massa som är 1/1000 av solens, men den är tyngre än alla andra planeter tillsammans. Forntida civilisationer har känt till Jupiter länge, och den är lätt synlig på natthimlen. | -| 1 | Jupiter är den femte planeten från solen och den största i solsystemet. Det är en gasjätte med en massa som är en tusendel av solens, men två och en halv gånger tyngre än alla andra planeter i solsystemet tillsammans. Jupiter är ett av de ljusstarkaste objekten som är synliga för blotta ögat på natthimlen och har varit känt för forntida civilisationer långt innan historien skrevs ned.
**Sammanfatta detta**
Det vi lärde oss är att Jupiter | är den femte planeten från solen och den största i solsystemet. Det är en gasjätte med en massa som är en tusendel av solens, men två och en halv gånger tyngre än alla andra planeter tillsammans. Den är lätt synlig för blotta ögat och har varit känd sedan urminnes tider. | -| 2 | Jupiter är den femte planeten från solen och den största i solsystemet. Det är en gasjätte med en massa som är en tusendel av solens, men två och en halv gånger tyngre än alla andra planeter i solsystemet tillsammans. Jupiter är ett av de ljusstarkaste objekten som är synliga för blotta ögat på natthimlen och har varit känt för forntida civilisationer långt innan historien skrevs ned.
**Sammanfatta detta**
Topp 3 fakta vi lärde oss: | 1. Jupiter är den femte planeten från solen och den största i solsystemet.
2. Det är en gasjätte med en massa som är en tusendel av solens...
3. Jupiter har varit synlig för blotta ögat sedan urminnes tider ... | -| | | | - -### Promptmallar - -En promptmall är ett _fördefinierat recept för en prompt_ som kan sparas och återanvändas vid behov för att skapa mer konsekventa användarupplevelser i stor skala. I sin enklaste form är det helt enkelt en samling promptexempel som [det här från OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) som innehåller både de interaktiva promptkomponenterna (användar- och systemmeddelanden) och API-drivna förfrågningsformatet – för att stödja återanvändning. - -I en mer komplex form som [det här exemplet från LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst) innehåller den _platshållare_ som kan ersättas med data från olika källor (användarinmatning, systemkontext, externa datakällor etc.) för att generera en prompt dynamiskt. Detta gör att vi kan skapa ett bibliotek av återanvändbara prompts som kan användas för att programmässigt driva konsekventa användarupplevelser i stor skala. - -Slutligen ligger det verkliga värdet i mallar i möjligheten att skapa och publicera _promptbibliotek_ för vertikala applikationsdomäner – där promptmallen nu är _optimerad_ för att spegla applikationsspecifik kontext eller exempel som gör svaren mer relevanta och korrekta för den riktade användargruppen. [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst)-arkivet är ett utmärkt exempel på detta tillvägagångssätt, där man samlar ett bibliotek av prompts för utbildningsområdet med fokus på viktiga mål som lektionsplanering, läroplansdesign, handledning av studenter med mera. - -## Stödjande innehåll - -Om vi ser på promptkonstruktion som att ha en instruktion (uppgift) och ett mål (primärt innehåll), så är _sekundärt innehåll_ som ytterligare kontext vi tillhandahåller för att **påverka resultatet på något sätt**. Det kan vara justeringsparametrar, formateringsinstruktioner, ämnestaxonomier etc. som hjälper modellen att _anpassa_ sitt svar för att passa önskade användarmål eller förväntningar. - -Till exempel: Givet en kurskatalog med omfattande metadata (namn, beskrivning, nivå, metadatataggar, instruktör etc.) för alla tillgängliga kurser i läroplanen: - -- kan vi definiera en instruktion för att "sammanfatta kurskatalogen för hösten 2023" -- vi kan använda det primära innehållet för att ge några exempel på önskat resultat -- vi kan använda det sekundära innehållet för att identifiera de 5 viktigaste "taggarna" av intresse. - -Nu kan modellen ge en sammanfattning i det format som visas av de få exemplen – men om ett resultat har flera taggar kan den prioritera de 5 taggar som identifierats i det sekundära innehållet. - ---- - - - -## Bästa praxis för prompting - -Nu när vi vet hur prompts kan _konstrueras_ kan vi börja fundera på hur vi _designar_ dem för att följa bästa praxis. Vi kan se detta i två delar – att ha rätt _inställning_ och att använda rätt _tekniker_. - -### Inställning för prompt engineering - -Prompt Engineering är en process med försök och misstag, så håll tre breda vägledande faktorer i åtanke: - -1. **Domänförståelse är viktigt.** Svarens noggrannhet och relevans beror på den _domän_ där applikationen eller användaren verkar. Använd din intuition och domänkunskap för att **anpassa teknikerna** ytterligare. Definiera till exempel _domänspecifika personligheter_ i dina systemprompter, eller använd _domänspecifika mallar_ i dina användarprompter. Ge sekundärt innehåll som speglar domänspecifika kontexter, eller använd _domänspecifika ledtrådar och exempel_ för att styra modellen mot bekanta användningsmönster. - -2. **Modellförståelse är viktigt.** Vi vet att modeller är stokastiska till sin natur. Men modellimplementationer kan också skilja sig åt vad gäller träningsdata (förtränad kunskap), vilka funktioner de erbjuder (t.ex. via API eller SDK) och vilken typ av innehåll de är optimerade för (t.ex. kod vs. bilder vs. text). Förstå styrkor och begränsningar hos den modell du använder och använd den kunskapen för att _prioritera uppgifter_ eller bygga _anpassade mallar_ som är optimerade för modellens kapacitet. - -3. **Iteration och validering är viktigt.** Modeller utvecklas snabbt, och det gör även teknikerna för prompt engineering. Som domänexpert kan du ha annan kontext eller kriterier för _din_ specifika applikation som kanske inte gäller för den bredare gemenskapen. Använd verktyg och tekniker för prompt engineering för att "komma igång" med promptkonstruktion, iterera sedan och validera resultaten med din egen intuition och domänkunskap. Dokumentera dina insikter och skapa en **kunskapsbas** (t.ex. promptbibliotek) som kan användas som ny baslinje av andra för snabbare iterationer i framtiden. - -## Bästa praxis - -Låt oss nu titta på vanliga bästa praxis som rekommenderas av [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) och [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst) experter. - -| Vad | Varför | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Utvärdera de senaste modellerna. | Nya modellgenerationer har sannolikt förbättrade funktioner och kvalitet – men kan också innebära högre kostnader. Utvärdera deras påverkan och fatta sedan beslut om migrering. | -| Separera instruktioner och kontext | Kontrollera om din modell/leverantör definierar _avgränsare_ för att tydligare skilja instruktioner, primärt och sekundärt innehåll. Detta kan hjälpa modeller att tilldela vikt mer exakt till tokens. | -| Var specifik och tydlig | Ge mer detaljer om önskad kontext, resultat, längd, format, stil etc. Detta förbättrar både kvalitet och konsekvens i svaren. Spara recept i återanvändbara mallar. | -| Var beskrivande, använd exempel | Modeller kan svara bättre på en "visa och berätta"-metod. Börja med en `zero-shot`-metod där du ger en instruktion (men inga exempel) och prova sedan `few-shot` som förfining, där du ger några exempel på önskat resultat. Använd analogier. | -| Använd ledtrådar för att starta svar | Styr modellen mot önskat resultat genom att ge några inledande ord eller fraser som den kan använda som startpunkt för svaret. | -| Upprepa vid behov | Ibland kan du behöva upprepa dig för modellen. Ge instruktioner före och efter ditt primära innehåll, använd en instruktion och en ledtråd etc. Iterera och validera för att se vad som fungerar. | -| Ordningen spelar roll | I vilken ordning du presenterar information för modellen kan påverka resultatet, även i inlärningsexemplen, på grund av nyhetsbias. Prova olika alternativ för att se vad som fungerar bäst. | -| Ge modellen en “utväg” | Ge modellen ett _fallback_-svar som den kan använda om den av någon anledning inte kan slutföra uppgiften. Detta kan minska risken för att modellen genererar falska eller påhittade svar. | -| | | - -Som med all bästa praxis, kom ihåg att _dina erfarenheter kan variera_ beroende på modell, uppgift och domän. Använd dessa som en utgångspunkt och iterera för att hitta vad som fungerar bäst för dig. Utvärdera kontinuerligt din prompt engineering-process när nya modeller och verktyg blir tillgängliga, med fokus på skalbarhet och svarskvalitet. - - - -## Uppgift - -Grattis! Du har nått slutet av lektionen! Det är dags att testa några av de koncept och tekniker vi gått igenom med riktiga exempel! - -För vår uppgift kommer vi att använda en Jupyter Notebook med övningar som du kan göra interaktivt. Du kan också utöka Notebooken med egna Markdown- och kodceller för att utforska idéer och tekniker på egen hand. - -### För att komma igång, fork:a repot och sedan - -- (Rekommenderat) Starta GitHub Codespaces -- (Alternativt) Klona repot till din lokala enhet och använd det med Docker Desktop -- (Alternativt) Öppna Notebooken i din föredragna Notebook-miljö. - -### Nästa steg, konfigurera dina miljövariabler - -- Kopiera filen `.env.copy` i repots rotmapp till `.env` och fyll i värdena för `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` och `AZURE_OPENAI_DEPLOYMENT`. Gå tillbaka till [Learning Sandbox-sektionen](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) för att lära dig hur. - -### Nästa, öppna Jupyter Notebook - -- Välj runtime-kärnan. Om du använder alternativ 1 eller 2, välj helt enkelt standard Python 3.10.x-kärnan som tillhandahålls av utvecklingscontainern. - -Du är redo att köra övningarna. Observera att det inte finns några _rätt eller fel_ svar här – det handlar om att utforska alternativ genom försök och misstag och bygga intuition för vad som fungerar för en viss modell och applikationsdomän. - -_För denna anledning finns inga kodlösningsavsnitt i denna lektion. Istället kommer Notebooken att ha Markdown-celler med titeln "Min lösning:" som visar ett exempel på output för referens._ - - - -## Kunskapskontroll - -Vilken av följande är en bra prompt som följer rimliga bästa praxis? - -1. Visa mig en bild på en röd bil -2. Visa mig en bild på en röd bil av märket Volvo och modellen XC90 parkerad vid en klippa med solen som går ner -3. Visa mig en bild på en röd bil av märket Volvo och modellen XC90 - -Svar: 2, det är den bästa prompten eftersom den ger detaljer om "vad" och går in på specifika detaljer (inte bara vilken bil som helst utan ett specifikt märke och modell) och den beskriver även den övergripande miljön. 3 är näst bäst eftersom den också innehåller mycket beskrivning. - -## 🚀 Utmaning - -Se om du kan använda "ledtråds"-tekniken med prompten: Fyll i meningen "Visa mig en bild på en röd bil av märket Volvo och ". Vad svarar den med, och hur skulle du förbättra det? - -## Bra jobbat! Fortsätt din lärande - -Vill du lära dig mer om olika koncept inom Prompt Engineering? Gå till [sidan för fortsatt lärande](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) för att hitta fler bra resurser om detta ämne. - -Gå vidare till Lektion 5 där vi tittar på [avancerade prompting-tekniker](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**Ansvarsfriskrivning**: -Detta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https://github.com/Azure/co-op-translator). Även om vi strävar efter noggrannhet, vänligen observera att automatiska översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess modersmål bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för några missförstånd eller feltolkningar som uppstår vid användning av denna översättning. \ No newline at end of file + + + + + + + diff --git a/translations/sv/09-building-image-applications/README.md b/translations/sv/09-building-image-applications/README.md index 76bc48734..388a9e816 100644 --- a/translations/sv/09-building-image-applications/README.md +++ b/translations/sv/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# Bygga applikationer för bildgenerering - -[![Bygga applikationer för bildgenerering](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.sv.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLM:er handlar inte bara om textgenerering. Det är också möjligt att generera bilder från textbeskrivningar. Att ha bilder som en modalitet kan vara mycket användbart inom flera områden, från MedTech, arkitektur, turism, spelutveckling och mer. I detta kapitel kommer vi att titta på de två mest populära modellerna för bildgenerering, DALL-E och Midjourney. - -## Introduktion - -I denna lektion kommer vi att täcka: - -- Bildgenerering och varför det är användbart. -- DALL-E och Midjourney, vad de är och hur de fungerar. -- Hur du bygger en applikation för bildgenerering. - -## Lärandemål - -Efter att ha genomfört denna lektion kommer du att kunna: - -- Bygga en applikation för bildgenerering. -- Definiera gränser för din applikation med metaprompter. -- Arbeta med DALL-E och Midjourney. - -## Varför bygga en applikation för bildgenerering? - -Applikationer för bildgenerering är ett utmärkt sätt att utforska möjligheterna med Generativ AI. De kan användas för exempelvis: - -- **Bildredigering och syntes**. Du kan generera bilder för en mängd olika användningsområden, som bildredigering och bildsyntes. - -- **Tillämpningar inom olika branscher**. De kan också användas för att generera bilder för olika branscher som Medtech, turism, spelutveckling och mer. - -## Scenario: Edu4All - -Som en del av denna lektion kommer vi att fortsätta arbeta med vår startup, Edu4All. Studenterna kommer att skapa bilder för sina uppgifter, exakt vilka bilder är upp till studenterna, men det kan vara illustrationer till deras egna sagor, skapa en ny karaktär till deras berättelse eller hjälpa dem att visualisera sina idéer och koncept. - -Här är ett exempel på vad Edu4Alls studenter skulle kunna generera om de arbetar med monument i klassen: - -![Edu4All startup, klass om monument, Eiffeltornet](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.sv.png) - -med en prompt som - -> "Hund bredvid Eiffeltornet i morgonsolens tidiga sken" - -## Vad är DALL-E och Midjourney? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) och [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) är två av de mest populära modellerna för bildgenerering, de låter dig använda prompts för att generera bilder. - -### DALL-E - -Vi börjar med DALL-E, som är en Generativ AI-modell som genererar bilder från textbeskrivningar. - -> [DALL-E är en kombination av två modeller, CLIP och diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP** är en modell som genererar embeddings, vilket är numeriska representationer av data, från bilder och text. - -- **Diffused attention** är en modell som genererar bilder från embeddings. DALL-E är tränad på en dataset med bilder och text och kan användas för att generera bilder från textbeskrivningar. Till exempel kan DALL-E användas för att generera bilder av en katt med hatt, eller en hund med mohawk. - -### Midjourney - -Midjourney fungerar på liknande sätt som DALL-E, den genererar bilder från textprompter. Midjourney kan också användas för att generera bilder med prompts som “en katt med hatt” eller “en hund med mohawk”. - -![Bild genererad av Midjourney, mekanisk duva](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Bildkälla Wikipedia, bild genererad av Midjourney_ - -## Hur fungerar DALL-E och Midjourney - -Först, [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). DALL-E är en Generativ AI-modell baserad på transformer-arkitekturen med en _autoregressiv transformer_. - -En _autoregressiv transformer_ definierar hur en modell genererar bilder från textbeskrivningar, den genererar en pixel i taget och använder sedan de genererade pixlarna för att generera nästa pixel. Den passerar genom flera lager i ett neuralt nätverk tills bilden är komplett. - -Med denna process kontrollerar DALL-E attribut, objekt, egenskaper och mer i den bild den genererar. Dock har DALL-E 2 och 3 mer kontroll över den genererade bilden. - -## Bygga din första applikation för bildgenerering - -Så vad krävs för att bygga en applikation för bildgenerering? Du behöver följande bibliotek: - -- **python-dotenv**, det rekommenderas starkt att använda detta bibliotek för att hålla dina hemligheter i en _.env_-fil bort från koden. -- **openai**, detta bibliotek använder du för att interagera med OpenAI API. -- **pillow**, för att arbeta med bilder i Python. -- **requests**, för att hjälpa dig göra HTTP-förfrågningar. - -1. Skapa en fil _.env_ med följande innehåll: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Hitta denna information i Azure Portal för din resurs under sektionen "Keys and Endpoint". - -1. Samla ovanstående bibliotek i en fil som heter _requirements.txt_ så här: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. Skapa sedan en virtuell miljö och installera biblioteken: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - För Windows, använd följande kommandon för att skapa och aktivera din virtuella miljö: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. Lägg till följande kod i en fil som heter _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Låt oss förklara denna kod: - -- Först importerar vi de bibliotek vi behöver, inklusive OpenAI-biblioteket, dotenv-biblioteket, requests-biblioteket och Pillow-biblioteket. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Sedan laddar vi miljövariablerna från _.env_-filen. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- Därefter sätter vi endpoint, nyckel för OpenAI API, version och typ. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- Nästa steg är att generera bilden: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - Koden ovan svarar med ett JSON-objekt som innehåller URL:en till den genererade bilden. Vi kan använda URL:en för att ladda ner bilden och spara den till en fil. - -- Slutligen öppnar vi bilden och använder standardbildvisaren för att visa den: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Mer detaljer om bildgenereringen - -Låt oss titta närmare på koden som genererar bilden: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** är textprompten som används för att generera bilden. I detta fall använder vi prompten "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils". -- **size** är storleken på den genererade bilden. Här genererar vi en bild som är 1024x1024 pixlar. -- **n** är antalet bilder som genereras. Här genererar vi två bilder. -- **temperature** är en parameter som styr slumpmässigheten i output från en Generativ AI-modell. Temperaturen är ett värde mellan 0 och 1 där 0 betyder att output är deterministisk och 1 betyder att output är slumpmässig. Standardvärdet är 0.7. - -Det finns fler saker du kan göra med bilder som vi kommer att täcka i nästa avsnitt. - -## Ytterligare funktioner för bildgenerering - -Du har hittills sett hur vi kunde generera en bild med några få rader i Python. Men det finns fler saker du kan göra med bilder. - -Du kan också göra följande: - -- **Utföra redigeringar**. Genom att tillhandahålla en befintlig bild, en mask och en prompt kan du ändra en bild. Till exempel kan du lägga till något på en del av en bild. Tänk på vår kaninbild, du kan lägga en hatt på kaninen. Hur du gör det är genom att tillhandahålla bilden, en mask (som identifierar området för ändringen) och en textprompt som säger vad som ska göras. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - Basbilden skulle bara innehålla kaninen men den slutgiltiga bilden skulle ha hatten på kaninen. - -- **Skapa variationer**. Idén är att du tar en befintlig bild och ber om att variationer skapas. För att skapa en variation tillhandahåller du en bild och en textprompt och kod som så här: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Observera, detta stöds endast på OpenAI - -## Temperatur - -Temperatur är en parameter som styr slumpmässigheten i output från en Generativ AI-modell. Temperaturen är ett värde mellan 0 och 1 där 0 betyder att output är deterministisk och 1 betyder att output är slumpmässig. Standardvärdet är 0.7. - -Låt oss titta på ett exempel på hur temperatur fungerar, genom att köra denna prompt två gånger: - -> Prompt: "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils" - -![Kanin på häst som håller en klubba, version 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.sv.png) - -Nu kör vi samma prompt igen för att se att vi inte får samma bild två gånger: - -![Genererad bild av kanin på häst](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.sv.png) - -Som du kan se är bilderna lika, men inte identiska. Låt oss prova att ändra temperaturvärdet till 0.1 och se vad som händer: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Ändra temperaturen - -Låt oss försöka göra svaret mer deterministiskt. Vi kunde se från de två bilderna vi genererade att i den första bilden finns en kanin och i den andra en häst, så bilderna skiljer sig mycket åt. - -Låt oss därför ändra vår kod och sätta temperaturen till 0, så här: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -När du nu kör denna kod får du dessa två bilder: - -- ![Temperatur 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.sv.png) -- ![Temperatur 0, v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.sv.png) - -Här kan du tydligt se hur bilderna liknar varandra mer. - -## Hur man definierar gränser för din applikation med metaprompter - -Med vår demo kan vi redan generera bilder för våra kunder. Men vi behöver skapa vissa gränser för vår applikation. - -Till exempel vill vi inte generera bilder som inte är lämpliga för arbetsplatsen eller som inte är passande för barn. - -Detta kan vi göra med _metaprompter_. Metaprompter är textprompter som används för att kontrollera output från en Generativ AI-modell. Till exempel kan vi använda metaprompter för att styra output och säkerställa att de genererade bilderna är säkra för arbetsplatsen eller lämpliga för barn. - -### Hur fungerar det? - -Hur fungerar metaprompter? - -Metaprompter är textprompter som används för att kontrollera output från en Generativ AI-modell, de placeras före textprompten och används för att styra modellens output och bäddas in i applikationer för att kontrollera modellens output. De kapslar in promptinmatningen och metapromptinmatningen i en enda textprompt. - -Ett exempel på en metaprompt skulle vara följande: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Nu ska vi se hur vi kan använda metaprompter i vår demo. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -Från prompten ovan kan du se hur alla bilder som skapas tar hänsyn till metaprompten. - -## Uppgift – låt oss ge studenterna möjlighet - -Vi introducerade Edu4All i början av denna lektion. Nu är det dags att låta studenterna generera bilder för sina uppgifter. - -Studenterna kommer att skapa bilder för sina uppgifter som innehåller monument, exakt vilka monument är upp till studenterna. Studenterna uppmanas att använda sin kreativitet i denna uppgift för att placera dessa monument i olika sammanhang. - -## Lösning - -Här är en möjlig lösning: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Bra jobbat! Fortsätt din läranderesa - -Efter att ha genomfört denna lektion, kolla in vår [Generative AI Learning collection](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) för att fortsätta utveckla dina kunskaper inom Generativ AI! - -Gå vidare till Lektion 10 där vi kommer att titta på hur man [bygger AI-applikationer med low-code](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**Ansvarsfriskrivning**: -Detta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https://github.com/Azure/co-op-translator). Även om vi strävar efter noggrannhet, vänligen observera att automatiska översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess modersmål bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för några missförstånd eller feltolkningar som uppstår vid användning av denna översättning. \ No newline at end of file + + + + diff --git a/translations/sv/12-designing-ux-for-ai-applications/README.md b/translations/sv/12-designing-ux-for-ai-applications/README.md index 90f31e773..fb82bae59 100644 --- a/translations/sv/12-designing-ux-for-ai-applications/README.md +++ b/translations/sv/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# Designa UX för AI-applikationer - -[![Designa UX för AI-applikationer](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.sv.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Klicka på bilden ovan för att se videon till denna lektion)_ - -Användarupplevelse är en mycket viktig aspekt när man bygger appar. Användare behöver kunna använda din app på ett effektivt sätt för att utföra uppgifter. Att vara effektiv är en sak, men du behöver också designa appar så att de kan användas av alla, för att göra dem _tillgängliga_. Detta kapitel fokuserar på detta område så att du förhoppningsvis slutar med att designa en app som människor kan och vill använda. - -## Introduktion - -Användarupplevelse är hur en användare interagerar med och använder en specifik produkt eller tjänst, vare sig det är ett system, verktyg eller design. När man utvecklar AI-applikationer fokuserar utvecklare inte bara på att säkerställa att användarupplevelsen är effektiv utan också etisk. I denna lektion går vi igenom hur man bygger artificiell intelligens (AI)-applikationer som möter användarnas behov. - -Lektionens innehåll omfattar följande områden: - -- Introduktion till användarupplevelse och förståelse för användarbehov -- Designa AI-applikationer för förtroende och transparens -- Designa AI-applikationer för samarbete och återkoppling - -## Lärandemål - -Efter att ha genomgått denna lektion kommer du att kunna: - -- Förstå hur man bygger AI-applikationer som uppfyller användarnas behov. -- Designa AI-applikationer som främjar förtroende och samarbete. - -### Förkunskaper - -Ta dig tid att läsa mer om [användarupplevelse och design thinking.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Introduktion till användarupplevelse och förståelse för användarbehov - -I vårt fiktiva utbildningsstartup har vi två huvudsakliga användare, lärare och elever. Var och en av dessa användare har unika behov. En användarcentrerad design prioriterar användaren och säkerställer att produkterna är relevanta och fördelaktiga för dem de är avsedda för. - -Applikationen bör vara **användbar, pålitlig, tillgänglig och trevlig** för att ge en bra användarupplevelse. - -### Användbarhet - -Att vara användbar innebär att applikationen har funktioner som matchar dess avsedda syfte, som att automatisera betygsättningsprocessen eller generera flashcards för repetition. En applikation som automatiserar betygsättningen bör kunna tilldela poäng till elevernas arbete på ett korrekt och effektivt sätt baserat på fördefinierade kriterier. På samma sätt bör en applikation som genererar repetitionsflashcards kunna skapa relevanta och varierade frågor baserat på dess data. - -### Pålitlighet - -Att vara pålitlig innebär att applikationen kan utföra sin uppgift konsekvent och utan fel. Men AI, precis som människor, är inte perfekt och kan göra misstag. Applikationerna kan stöta på fel eller oväntade situationer som kräver mänsklig inblandning eller korrigering. Hur hanterar du fel? I den sista delen av denna lektion går vi igenom hur AI-system och applikationer är designade för samarbete och återkoppling. - -### Tillgänglighet - -Att vara tillgänglig innebär att utöka användarupplevelsen till användare med olika förmågor, inklusive personer med funktionsnedsättningar, så att ingen lämnas utanför. Genom att följa riktlinjer och principer för tillgänglighet blir AI-lösningar mer inkluderande, användbara och fördelaktiga för alla användare. - -### Trevlig - -Att vara trevlig innebär att applikationen är rolig och behaglig att använda. En tilltalande användarupplevelse kan ha en positiv effekt på användaren, uppmuntra dem att återvända till applikationen och öka företagets intäkter. - -![bild som illustrerar UX-överväganden i AI](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.sv.png) - -Inte alla utmaningar kan lösas med AI. AI kommer in för att förstärka din användarupplevelse, vare sig det handlar om att automatisera manuella uppgifter eller anpassa användarupplevelser. - -## Designa AI-applikationer för förtroende och transparens - -Att bygga förtroende är avgörande när man designar AI-applikationer. Förtroende säkerställer att en användare är säker på att applikationen kommer att utföra arbetet, leverera resultat konsekvent och att resultaten är vad användaren behöver. En risk i detta område är misstro och överförtroende. Misstro uppstår när en användare har lite eller inget förtroende för ett AI-system, vilket leder till att användaren avvisar din applikation. Överförtroende uppstår när en användare överskattar kapaciteten hos ett AI-system, vilket leder till att användare litar för mycket på AI-systemet. Till exempel kan ett automatiserat betygssystem vid överförtroende leda till att läraren inte granskar vissa uppgifter för att säkerställa att betygssystemet fungerar korrekt. Detta kan resultera i orättvisa eller felaktiga betyg för eleverna, eller missade möjligheter till återkoppling och förbättring. - -Två sätt att säkerställa att förtroende står i centrum för designen är förklarbarhet och kontroll. - -### Förklarbarhet - -När AI hjälper till att informera beslut, som att förmedla kunskap till framtida generationer, är det avgörande för lärare och föräldrar att förstå hur AI-beslut fattas. Detta är förklarbarhet – att förstå hur AI-applikationer fattar beslut. Design för förklarbarhet inkluderar att lägga till exempel på vad en AI-applikation kan göra. Till exempel, istället för "Kom igång med AI-lärare", kan systemet använda: "Sammanfatta dina anteckningar för enklare repetition med AI." - -![en appstartsida med tydlig illustration av förklarbarhet i AI-applikationer](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.sv.png) - -Ett annat exempel är hur AI använder användar- och personuppgifter. Till exempel kan en användare med personan studenten ha begränsningar baserat på sin persona. AI:n kanske inte kan avslöja svar på frågor men kan hjälpa användaren att tänka igenom hur de kan lösa ett problem. - -![AI som svarar på frågor baserat på persona](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.sv.png) - -En sista viktig del av förklarbarhet är att förenkla förklaringarna. Elever och lärare är kanske inte AI-experter, därför bör förklaringar av vad applikationen kan eller inte kan göra vara förenklade och lätta att förstå. - -![förenklade förklaringar om AI:s kapabiliteter](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.sv.png) - -### Kontroll - -Generativ AI skapar ett samarbete mellan AI och användaren, där till exempel en användare kan ändra prompts för olika resultat. Dessutom, när ett resultat har genererats, bör användare kunna modifiera resultatet för att få en känsla av kontroll. Till exempel, när du använder Bing kan du anpassa din prompt baserat på format, ton och längd. Dessutom kan du göra ändringar i ditt resultat och modifiera det som visas nedan: - -![Bing-sökresultat med alternativ för att ändra prompt och resultat](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.sv.png) - -En annan funktion i Bing som ger användaren kontroll över applikationen är möjligheten att välja att delta eller avstå från den data som AI använder. För en skolapplikation kan en elev vilja använda sina anteckningar samt lärarens resurser som repetitionsmaterial. - -![Bing-sökresultat med alternativ för att ändra prompt och resultat](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.sv.png) - -> När du designar AI-applikationer är avsiktlighet nyckeln för att säkerställa att användare inte överskattar AI och sätter orealistiska förväntningar på dess kapabiliteter. Ett sätt att göra detta är att skapa friktion mellan prompts och resultat. Påminn användaren om att detta är AI och inte en medmänniska. - -## Designa AI-applikationer för samarbete och återkoppling - -Som nämnts tidigare skapar generativ AI ett samarbete mellan användaren och AI. De flesta interaktioner består av att användaren matar in en prompt och AI:n genererar ett resultat. Vad händer om resultatet är felaktigt? Hur hanterar applikationen fel om de uppstår? Skyller AI på användaren eller tar den tid att förklara felet? - -AI-applikationer bör byggas för att ta emot och ge återkoppling. Detta hjälper inte bara AI-systemet att förbättras utan bygger också förtroende hos användarna. En återkopplingsloop bör ingå i designen, ett exempel kan vara en enkel tumme upp eller ner på resultatet. - -Ett annat sätt att hantera detta är att tydligt kommunicera systemets kapabiliteter och begränsningar. När en användare gör ett fel genom att begära något utanför AI:s kapabiliteter bör det också finnas ett sätt att hantera detta, som visas nedan. - -![Ge återkoppling och hantera fel](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.sv.png) - -Systemfel är vanliga i applikationer där användaren kan behöva hjälp med information utanför AI:s räckvidd eller där applikationen kan ha en gräns för hur många frågor/ämnen en användare kan generera sammanfattningar för. Till exempel kan en AI-applikation som är tränad med data inom begränsade ämnen, till exempel historia och matematik, kanske inte kunna hantera frågor om geografi. För att mildra detta kan AI-systemet ge ett svar som: "Tyvärr, vår produkt är tränad med data inom följande ämnen....., jag kan inte svara på frågan du ställde." - -AI-applikationer är inte perfekta, därför kommer de att göra misstag. När du designar dina applikationer bör du se till att skapa utrymme för återkoppling från användare och felhantering på ett sätt som är enkelt och lätt att förklara. - -## Uppgift - -Ta vilka AI-appar du än har byggt hittills och överväg att implementera följande steg i din app: - -- **Trevlig:** Fundera på hur du kan göra din app mer trevlig. Lägger du till förklaringar överallt? Uppmuntrar du användaren att utforska? Hur formulerar du dina felmeddelanden? - -- **Användbarhet:** Bygger du en webbapp? Se till att din app är navigerbar både med mus och tangentbord. - -- **Förtroende och transparens:** Lita inte helt på AI och dess resultat, fundera på hur du kan lägga till en människa i processen för att verifiera resultatet. Överväg och implementera också andra sätt att uppnå förtroende och transparens. - -- **Kontroll:** Ge användaren kontroll över den data de tillhandahåller applikationen. Implementera ett sätt för användare att välja att delta eller avstå från datainsamling i AI-applikationen. - -## Fortsätt din lärande! - -Efter att ha slutfört denna lektion, kolla in vår [Generative AI Learning collection](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) för att fortsätta utveckla din kunskap om Generativ AI! - -Gå vidare till Lektion 13, där vi tittar på hur man [säkrar AI-applikationer](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**Ansvarsfriskrivning**: -Detta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https://github.com/Azure/co-op-translator). Även om vi strävar efter noggrannhet, vänligen observera att automatiska översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess modersmål bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för några missförstånd eller feltolkningar som uppstår vid användning av denna översättning. \ No newline at end of file + + + diff --git a/translations/sv/README.md b/translations/sv/README.md index dcf7c2b40..7cd961a0e 100644 --- a/translations/sv/README.md +++ b/translations/sv/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.sv.png) - -### 21 lektioner som lär dig allt du behöver veta för att börja bygga Generative AI-applikationer - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Stöd för flera språk - -#### Stöds via GitHub Action (Automatiserat & Alltid Uppdaterat) - -[Franska](../fr/README.md) | [Spanska](../es/README.md) | [Tyska](../de/README.md) | [Ryska](../ru/README.md) | [Arabiska](../ar/README.md) | [Persiska (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Kinesiska (Förenklad)](../zh/README.md) | [Kinesiska (Traditionell, Macau)](../mo/README.md) | [Kinesiska (Traditionell, Hong Kong)](../hk/README.md) | [Kinesiska (Traditionell, Taiwan)](../tw/README.md) | [Japanska](../ja/README.md) | [Koreanska](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portugisiska (Portugal)](../pt/README.md) | [Portugisiska (Brasilien)](../br/README.md) | [Italienska](../it/README.md) | [Polska](../pl/README.md) | [Turkiska](../tr/README.md) | [Grekiska](../el/README.md) | [Thailändska](../th/README.md) | [Svenska](./README.md) | [Danska](../da/README.md) | [Norska](../no/README.md) | [Finska](../fi/README.md) | [Holländska](../nl/README.md) | [Hebreiska](../he/README.md) | [Vietnamesiska](../vi/README.md) | [Indonesiska](../id/README.md) | [Malajiska](../ms/README.md) | [Tagalog (Filippinska)](../tl/README.md) | [Swahili](../sw/README.md) | [Ungerska](../hu/README.md) | [Tjeckiska](../cs/README.md) | [Slovakiska](../sk/README.md) | [Rumänska](../ro/README.md) | [Bulgariska](../bg/README.md) | [Serbiska (Kyrilliska)](../sr/README.md) | [Kroatiska](../hr/README.md) | [Slovenska](../sl/README.md) | [Ukrainska](../uk/README.md) | [Burmese (Myanmar)](../my/README.md) - -# Generative AI för nybörjare (Version 3) - En kurs - -Lär dig grunderna i att bygga Generative AI-applikationer med vår omfattande kurs på 21 lektioner från Microsoft Cloud Advocates. - -## 🌱 Kom igång - -Den här kursen innehåller 21 lektioner. Varje lektion tar upp ett eget ämne, så börja där du vill! - -Lektionerna är märkta antingen som "Learn" där ett Generative AI-koncept förklaras, eller "Build" där ett koncept förklaras tillsammans med kodexempel i både **Python** och **TypeScript** när det är möjligt. - -För .NET-utvecklare, kolla in [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -Varje lektion innehåller också en sektion "Keep Learning" med fler lärresurser. - -## Vad du behöver -### För att köra kursens kod kan du använda något av följande: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **Lektioner:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **Lektioner:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **Lektioner:** "oai-assignment" - -- Grundläggande kunskaper i Python eller TypeScript är till hjälp - \*För absoluta nybörjare, kolla in dessa [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) och [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) kurser -- Ett GitHub-konto för att [forka hela detta repo](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) till ditt eget konto - -Vi har skapat en **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** lektion för att hjälpa dig att sätta upp din utvecklingsmiljö. - -Glöm inte att [stjärnmärka (🌟) detta repo](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) för att lättare hitta det senare. - -## 🧠 Redo att distribuera? - -Om du letar efter mer avancerade kodexempel, kolla in vår [samling av Generative AI-kodexempel](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) i både **Python** och **TypeScript**. - -## 🗣️ Träffa andra elever, få stöd - -Gå med i vår [officiella Azure AI Foundry Discord-server](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) för att träffa och nätverka med andra som tar kursen och få support. - -Ställ frågor eller dela produktfeedback i vårt [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum) på Github. - -## 🚀 Bygger du en startup? - -Registrera dig för [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) för att få **gratis OpenAI-krediter** och upp till **$150k i Azure-krediter för att använda OpenAI-modeller via Azure OpenAI Services**. - -## 🙏 Vill du hjälpa till? - -Har du förslag eller hittat stavfel eller kodfel? [Skapa ett ärende](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) eller [skicka en pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 Varje lektion innehåller: - -- En kort video som introducerar ämnet -- En skriftlig lektion i README-filen -- Kodexempel i Python och TypeScript som stöder Azure OpenAI och OpenAI API -- Länkar till extra resurser för att fortsätta ditt lärande - -## 🗃️ Lektioner - -| # | **Lektionslänk** | **Beskrivning** | **Video** | **Extra lärande** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Hur du sätter upp din utvecklingsmiljö | Video kommer snart | [Läs mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introduction to Generative AI and LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Förstå vad Generative AI är och hur stora språkmodeller (LLMs) fungerar | [Video](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Läs mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Exploring and comparing different LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Hur du väljer rätt modell för ditt användningsområde | [Video](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Läs mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Using Generative AI Responsibly](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Hur man bygger Generative AI-applikationer på ett ansvarsfullt sätt | [Video](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Läs mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Understanding Prompt Engineering Fundamentals](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Praktiska bästa metoder för prompt engineering | [Video](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Läs mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Creating Advanced Prompts](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Hur du använder prompt engineering-tekniker som förbättrar resultatet av dina prompts. | [Video](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Läs mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Bygga textgenereringsapplikationer](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Bygg:** En textgenereringsapp med Azure OpenAI / OpenAI API | [Video](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Läs mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Bygga chattapplikationer](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Bygg:** Tekniker för att effektivt bygga och integrera chattapplikationer. | [Video](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Läs mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Bygga sökappar med vektordatabaser](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Bygg:** En sökapplikation som använder Embeddings för att söka i data. | [Video](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Läs mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Bygga bildgenereringsapplikationer](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Bygg:** En applikation för bildgenerering | [Video](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Läs mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Bygga AI-applikationer med låg kod](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Bygg:** En generativ AI-applikation med hjälp av Low Code-verktyg | [Video](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Läs mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Integrera externa applikationer med Function Calling](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Bygg:** Vad är function calling och dess användningsområden för applikationer | [Video](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Läs mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [Designa UX för AI-applikationer](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Lär dig:** Hur man tillämpar UX-designprinciper vid utveckling av generativa AI-applikationer | [Video](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Läs mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Säkra dina generativa AI-applikationer](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Lär dig:** Hot och risker mot AI-system samt metoder för att säkra dessa system | [Video](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Läs mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [Livscykeln för generativa AI-applikationer](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Lär dig:** Verktyg och mätvärden för att hantera LLM-livscykeln och LLMOps | [Video](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Läs mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) och vektordatabaser](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Bygg:** En applikation som använder ett RAG-ramverk för att hämta embeddings från vektordatabaser | [Video](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Läs mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Open Source-modeller och Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Bygg:** En applikation som använder open source-modeller tillgängliga på Hugging Face | [Video](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Läs mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI-agenter](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Bygg:** En applikation som använder ett AI Agent-ramverk | [Video](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Läs mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [Finjustering av LLMs](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Lär dig:** Vad, varför och hur man finjusterar LLMs | [Video](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Läs mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Bygga med SLMs](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Lär dig:** Fördelarna med att bygga med Small Language Models | Video kommer snart | [Läs mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Bygga med Mistral-modeller](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Lär dig:** Funktioner och skillnader hos Mistral-familjens modeller | Video kommer snart | [Läs mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Bygga med Meta-modeller](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Lär dig:** Funktioner och skillnader hos Meta-familjens modeller | Video kommer snart | [Läs mer](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Stort tack - -Stort tack till [**John Aziz**](https://www.linkedin.com/in/john0isaac/) för att ha skapat alla GitHub Actions och arbetsflöden - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) för viktiga bidrag till varje lektion för att förbättra lärande- och kodupplevelsen. - -## 🎒 Andra kurser - -Vårt team producerar även andra kurser! Kolla in: - -- [**NY** Model Context Protocol för nybörjare](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI-agenter för nybörjare](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Generativ AI för nybörjare med .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Generativ AI för nybörjare med JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML för nybörjare](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Data Science för nybörjare](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI för nybörjare](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Cybersäkerhet för nybörjare](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Webbutveckling för nybörjare](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT för nybörjare](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR-utveckling för nybörjare](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Bemästra GitHub Copilot för AI-parprogrammering](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Bemästra GitHub Copilot för C#/.NET-utvecklare](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Välj ditt eget Copilot-äventyr](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Ansvarsfriskrivning**: -Detta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https://github.com/Azure/co-op-translator). Även om vi strävar efter noggrannhet, vänligen observera att automatiska översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess modersmål bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för några missförstånd eller feltolkningar som uppstår vid användning av denna översättning. \ No newline at end of file + + + + diff --git a/translations/sw/00-course-setup/01-setup-cloud.md b/translations/sw/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..be7b165f6 --- /dev/null +++ b/translations/sw/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/sw/00-course-setup/02-setup-local.md b/translations/sw/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..f76b0b295 --- /dev/null +++ b/translations/sw/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/sw/00-course-setup/03-providers.md b/translations/sw/00-course-setup/03-providers.md new file mode 100644 index 000000000..e3c6f6487 --- /dev/null +++ b/translations/sw/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/sw/00-course-setup/README.md b/translations/sw/00-course-setup/README.md index ef62695c7..dea862458 100644 --- a/translations/sw/00-course-setup/README.md +++ b/translations/sw/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# Kuanzia na kozi hii - -Tunafurahia sana kwamba umeanza kozi hii na kuona unachovutiwa kujifunza kujenga kwa kutumia Generative AI! - -Ili kuhakikisha unafanikiwa, ukurasa huu unaelezea hatua za kuanzisha, mahitaji ya kiufundi, na mahali pa kupata msaada ikiwa utahitaji. - -## Hatua za Kuanzisha - -Ili kuanza kozi hii, utahitaji kukamilisha hatua zifuatazo. - -### 1. Fanya Fork ya Repo hii - -[Fanya fork ya repo hii yote](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) kwenye akaunti yako ya GitHub ili uweze kubadilisha msimbo wowote na kukamilisha changamoto. Pia unaweza [kutoa nyota (🌟) kwa repo hii](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) ili kuipata na repos zinazohusiana kwa urahisi zaidi. - -### 2. Tengeneza codespace - -Ili kuepuka matatizo yoyote ya utegemezi wakati wa kuendesha msimbo, tunapendekeza kuendesha kozi hii katika [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst). - -Hii inaweza kuundwa kwa kuchagua chaguo la `Code` kwenye toleo lako la fork la repo hii na kisha kuchagua chaguo la **Codespaces**. - -![Dialog showing buttons to create a codespace](../../../00-course-setup/images/who-will-pay.webp) - -### 3. Kuhifadhi API Keys Zako - -Kuhifadhi API keys zako salama ni muhimu wakati wa kujenga aina yoyote ya programu. Tunapendekeza usihifadhi API keys moja kwa moja ndani ya msimbo wako. Kuweka maelezo hayo kwenye repo ya umma kunaweza kusababisha matatizo ya usalama na hata gharama zisizotarajiwa ikiwa zitatumika na mtu mwenye nia mbaya. -Hapa kuna mwongozo wa hatua kwa hatua jinsi ya kuunda faili la `.env` kwa Python na kuongeza `GITHUB_TOKEN`: - -1. **Nenda kwenye Kabrasha la Mradi Wako**: Fungua terminal au command prompt na nenda kwenye kabrasha kuu la mradi wako ambapo unataka kuunda faili la `.env`. - - ```bash - cd path/to/your/project - ``` - -2. **Unda Faili la `.env`**: Tumia mhariri wa maandishi unayopendelea kuunda faili mpya liitwalo `.env`. Ikiwa unatumia command line, unaweza kutumia `touch` (kwa mifumo ya Unix) au `echo` (kwa Windows): - - Mifumo ya Unix: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **Hariri Faili la `.env`**: Fungua faili la `.env` katika mhariri wa maandishi (mfano, VS Code, Notepad++, au mhariri mwingine wowote). Ongeza mstari ufuatao kwenye faili, ukibadilisha `your_github_token_here` na tokeni yako halisi ya GitHub: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Hifadhi Faili**: Hifadhi mabadiliko na funga mhariri wa maandishi. - -5. **Sakinisha `python-dotenv`**: Ikiwa bado hujasakinisha, utahitaji kusakinisha kifurushi cha `python-dotenv` ili kupakia mabadiliko ya mazingira kutoka kwenye faili la `.env` kwenye programu yako ya Python. Unaweza kusakinisha kwa kutumia `pip`: - - ```bash - pip install python-dotenv - ``` - -6. **Pakia Mabadiliko ya Mazingira katika Script yako ya Python**: Katika script yako ya Python, tumia kifurushi cha `python-dotenv` kupakia mabadiliko ya mazingira kutoka kwenye faili la `.env`: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -Hiyo ni yote! Umefanikiwa kuunda faili la `.env`, kuongeza tokeni yako ya GitHub, na kuipakia kwenye programu yako ya Python. - -## Jinsi ya Kuendesha kwa Kompyuta Yako - -Ili kuendesha msimbo kwa kompyuta yako, utahitaji kuwa na toleo fulani la [Python limewekwa](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -Kisha, ili kutumia repository, unahitaji kuikopa (clone): - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -Mara baada ya kuwa na kila kitu tayari, unaweza kuanza! - -## Hatua za Hiari - -### Kusakinisha Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) ni msakinishaji mwepesi wa kusakinisha [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python, pamoja na vifurushi vingine kadhaa. -Conda ni meneja wa vifurushi, ambayo hufanya iwe rahisi kuanzisha na kubadilisha kati ya [mazingira ya virtual ya Python](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) na vifurushi. Pia ni muhimu kwa kusakinisha vifurushi ambavyo havipatikani kupitia `pip`. - -Unaweza kufuata [mwongozo wa usakinishaji wa MiniConda](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) kuisanikisha. - -Baada ya kusakinisha Miniconda, unahitaji kuikopa [repository](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (ikiwa bado hujafanya hivyo). - -Kisha, unahitaji kuunda mazingira ya virtual. Ili kufanya hivyo kwa Conda, endelea na tengeneza faili jipya la mazingira (_environment.yml_). Ikiwa unafuata kwa kutumia Codespaces, tengeneza hili ndani ya kabrasha la `.devcontainer`, yaani `.devcontainer/environment.yml`. - -Endelea na jaza faili lako la mazingira na kipande kilicho hapa chini: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Ikiwa unakutana na makosa unapotumia conda, unaweza kusakinisha maktaba za Microsoft AI kwa mkono kwa kutumia amri ifuatayo kwenye terminal. - -``` -conda install -c microsoft azure-ai-ml -``` - -Faili la mazingira linaelezea utegemezi tunazohitaji. `` linarejelea jina unalotaka kutumia kwa mazingira yako ya Conda, na `` ni toleo la Python unalotaka kutumia, kwa mfano, `3` ni toleo kuu la hivi karibuni la Python. - -Baada ya hapo, unaweza kuunda mazingira yako ya Conda kwa kuendesha amri zifuatazo kwenye command line/terminal yako - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -Rejea [mwongozo wa mazingira ya Conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst) ikiwa utakutana na matatizo yoyote. - -### Kutumia Visual Studio Code na ugani wa msaada wa Python - -Tunapendekeza kutumia mhariri wa [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) pamoja na [ugani wa msaada wa Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) uliosakinishwa kwa kozi hii. Hii ni pendekezo tu na si sharti la lazima. - -> **Note**: Kwa kufungua repo ya kozi katika VS Code, una chaguo la kuanzisha mradi ndani ya container. Hii ni kwa sababu ya kabrasha maalum la [`.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) lililopo ndani ya repo ya kozi. Tutaelezea zaidi baadaye. - -> **Note**: Mara tu unapokopa na kufungua kabrasha hilo katika VS Code, itapendekeza moja kwa moja usakinishe ugani wa msaada wa Python. - -> **Note**: Ikiwa VS Code itapendekeza ufungue repo tena ndani ya container, kataa ombi hili ili utumie toleo la Python lililosakinishwa kwa ndani. - -### Kutumia Jupyter katika Kivinjari - -Unaweza pia kufanya kazi kwenye mradi kwa kutumia [mazingira ya Jupyter](https://jupyter.org?WT.mc_id=academic-105485-koreyst) moja kwa moja katika kivinjari chako. Jupyter wa kawaida na [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) hutoa mazingira mazuri ya maendeleo yenye vipengele kama kukamilisha kiotomatiki, kuangazia msimbo, n.k. - -Ili kuanzisha Jupyter kwa ndani, nenda kwenye terminal/command line, nenda kwenye kabrasha la kozi, na endesha: - -```bash -jupyter notebook -``` - -au - -```bash -jupyterhub -``` - -Hii itaanzisha toleo la Jupyter na URL ya kuifikia itaonyeshwa ndani ya dirisha la command line. - -Mara utakapoingia kwenye URL, utapata muhtasari wa kozi na utaweza kuvinjari faili yoyote ya `*.ipynb`. Kwa mfano, `08-building-search-applications/python/oai-solution.ipynb`. - -### Kuendesha ndani ya container - -Mbali na kuanzisha kila kitu kwenye kompyuta yako au Codespace, unaweza kutumia [container](../../../00-course-setup/). Kabrasha maalum la `.devcontainer` ndani ya repo ya kozi linawezesha VS Code kuanzisha mradi ndani ya container. Mbali na Codespaces, hii itahitaji usakinishaji wa Docker, na kwa kweli, inahusisha kazi kidogo, hivyo tunapendekeza hii kwa wale tu wenye uzoefu wa kutumia containers. - -Njia mojawapo bora za kuhakikisha API keys zako zinabaki salama unapotumia GitHub Codespaces ni kwa kutumia Codespace Secrets. Tafadhali fuata mwongozo wa [usimamizi wa siri za Codespaces](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) ili kujifunza zaidi kuhusu hili. - -## Masomo na Mahitaji ya Kiufundi - -Kozi ina masomo 6 ya dhana na masomo 6 ya uandishi wa msimbo. - -Kwa masomo ya uandishi wa msimbo, tunatumia Azure OpenAI Service. Utahitaji kupata huduma ya Azure OpenAI na API key ili kuendesha msimbo huu. Unaweza kuomba kupata huduma kwa [kukamilisha maombi haya](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -Wakati unasubiri maombi yako kushughulikiwa, kila somo la uandishi wa msimbo pia lina faili la `README.md` ambapo unaweza kuona msimbo na matokeo. - -## Kutumia Azure OpenAI Service kwa mara ya kwanza - -Ikiwa ni mara yako ya kwanza kutumia huduma ya Azure OpenAI, tafadhali fuata mwongozo huu wa jinsi ya [kuunda na kupeleka rasilimali ya Azure OpenAI Service.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## Kutumia OpenAI API kwa mara ya kwanza - -Ikiwa ni mara yako ya kwanza kutumia OpenAI API, tafadhali fuata mwongozo wa jinsi ya [kuunda na kutumia Interface.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## Kutana na Wanafunzi Wengine - -Tumeunda vituo kwenye seva rasmi ya [AI Community Discord](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) kwa ajili ya kukutana na wanafunzi wengine. Hii ni njia nzuri ya kuungana na wajasiriamali, wajenzi, wanafunzi, na yeyote anayetaka kujiendeleza katika Generative AI. - -[![Join discord channel](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -Timu ya mradi pia itakuwa kwenye seva hii ya Discord kusaidia wanafunzi wote. - -## Changia - -Kozi hii ni mpango wa chanzo huria. Ikiwa unaona maeneo ya kuboresha au matatizo, tafadhali tengeneza [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) au andika [GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -Timu ya mradi itafuatilia michango yote. Kuchangia chanzo huria ni njia nzuri ya kujenga taaluma yako katika Generative AI. - -Michango mingi inahitaji kukubaliana na Mkataba wa Leseni ya Mchango (CLA) unaothibitisha kuwa una haki na kwa kweli unaturuhusu kutumia mchango wako. Kwa maelezo zaidi, tembelea [CLA, Tovuti ya Mkataba wa Leseni ya Mchango](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Muhimu: wakati wa kutafsiri maandishi katika repo hii, tafadhali hakikisha hutumii tafsiri za mashine. Tutathibitisha tafsiri kupitia jamii, hivyo tafadhali jitolee tu kutafsiri lugha unazozifahamu vizuri. - -Unapowasilisha pull request, CLA-bot atagundua moja kwa moja kama unahitaji kutoa CLA na kuipamba PR ipasavyo (mfano, lebo, maoni). Fuata tu maelekezo yanayotolewa na bot. Hii utahitaji kufanya mara moja tu kwa repos zote zinazotumia CLA yetu. - -Mradi huu umechukua [Kanuni za Maadili za Chanzo Huria za Microsoft](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst). Kwa maelezo zaidi soma Maswali Yanayoulizwa Mara kwa Mara kuhusu Kanuni za Maadili au wasiliana na [Email opencode](opencode@microsoft.com) kwa maswali au maoni zaidi. - -## Hebu Tuanze - -Sasa baada ya kukamilisha hatua zinazohitajika kwa kozi hii, tuanze kwa kupata [utangulizi wa Generative AI na LLMs](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**Kiarifu cha Kutotegemea**: -Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kwa usahihi, tafadhali fahamu kwamba tafsiri za kiotomatiki zinaweza kuwa na makosa au upungufu wa usahihi. Hati ya asili katika lugha yake ya asili inapaswa kuchukuliwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya kitaalamu inayofanywa na binadamu inapendekezwa. Hatubebei dhamana kwa kutoelewana au tafsiri potofu zinazotokana na matumizi ya tafsiri hii. \ No newline at end of file + + + + diff --git a/translations/sw/00-course-setup/SETUP.md b/translations/sw/00-course-setup/SETUP.md deleted file mode 100644 index 3c961eb81..000000000 --- a/translations/sw/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# Sanidi Mazingira Yako ya Maendeleo - -Tumesanidi hazina hii na kozi hii kwa kutumia [kontena la maendeleo](https://containers.dev?WT.mc_id=academic-105485-koreyst) ambalo lina runtime ya Universal inayoweza kuunga mkono maendeleo ya Python3, .NET, Node.js na Java. Mipangilio inayohusiana imefafanuliwa katika faili la `devcontainer.json` lililoko katika folda ya `.devcontainer/` kwenye mzizi wa hazina hii. - -Ili kuanzisha kontena la maendeleo, liendeshe katika [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (kwa runtime inayohudumiwa kwenye wingu) au katika [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (kwa runtime inayohudumiwa kwenye kifaa chako). Soma [nyaraka hii](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) kwa maelezo zaidi kuhusu jinsi kontena za maendeleo zinavyofanya kazi ndani ya VS Code. - -> [!TIP] -> Tunapendekeza kutumia GitHub Codespaces kwa kuanza haraka na juhudi kidogo. Inatoa [kiasi cha matumizi bure](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) kwa akaunti za binafsi. Sanidi [muda wa kusitisha](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) ili kuacha au kufuta codespaces zisizotumika ili kutumia vizuri kiasi chako. - -## 1. Kutekeleza Majukumu - -Kila somo litakuwa na majukumu _hiari_ ambayo yanaweza kutolewa kwa lugha moja au zaidi za programu ikiwa ni pamoja na: Python, .NET/C#, Java na JavaScript/TypeScript. Sehemu hii inatoa mwongozo wa jumla kuhusu jinsi ya kutekeleza majukumu hayo. - -### 1.1 Majukumu ya Python - -Majukumu ya Python hutolewa kama programu (`.py` files) au daftari za Jupyter (`.ipynb` files). -- Ili kuendesha daftari, lifungue katika Visual Studio Code kisha bonyeza _Select Kernel_ (juu kulia) na chagua chaguo la Python 3 la msingi lililoonyeshwa. Sasa unaweza _Run All_ kuendesha daftari lote. -- Ili kuendesha programu za Python kutoka kwenye mstari wa amri, fuata maelekezo maalum ya kazi ili kuhakikisha unachagua faili sahihi na kutoa hoja zinazohitajika. - -## 2. Kusanidi Watoa Huduma - -Majukumu **yanaweza** pia kusanidiwa kufanya kazi dhidi ya moja au zaidi ya usambazaji wa Large Language Model (LLM) kupitia mtoa huduma anayeunga mkono kama OpenAI, Azure au Hugging Face. Hawa hutoa _endpoint iliyohudumiwa_ (API) ambayo tunaweza kufikia kwa njia ya programu kwa kutumia vyeti sahihi (funguo za API au tokeni). Katika kozi hii, tunajadili watoa huduma hawa: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) na mifano mbalimbali ikiwemo mfululizo wa msingi wa GPT. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) kwa mifano ya OpenAI yenye mwelekeo wa utayari wa biashara - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) kwa mifano ya chanzo huria na seva ya inference - -**Utahitaji kutumia akaunti zako mwenyewe kwa mazoezi haya**. Majukumu ni hiari hivyo unaweza kuchagua kusanidi mmoja, yote - au hakuna - wa watoa huduma kulingana na maslahi yako. Mwongozo wa usajili: - -| Usajili | Gharama | Funguo ya API | Uwanja wa Mchezo | Maoni | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst)| [Bei](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst)| [Kipindi cha mradi](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [Bila Msimbo, Mtandao](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Mifano Mingi Inayopatikana | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst)| [Bei](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst)| [Mwanzilishi wa SDK](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst)| [Mwanzilishi wa Studio](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Lazima Uombe Kabla ya Kupata Ufikiaji](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst)| -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Bei](https://huggingface.co/pricing) | [Tokeni za Ufikiaji](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst)| [Hugging Chat ina mifano michache](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Fuata maelekezo hapa chini ili _kusanidi_ hazina hii kwa matumizi na watoa huduma tofauti. Majukumu yanayohitaji mtoa huduma maalum yataonyesha moja ya lebo hizi kwenye jina la faili: - - `aoai` - inahitaji endpoint na funguo za Azure OpenAI - - `oai` - inahitaji endpoint na funguo za OpenAI - - `hf` - inahitaji tokeni ya Hugging Face - -Unaweza kusanidi mmoja, hakuna, au wote watoa huduma. Majukumu yanayohusiana yataonyesha kosa la vyeti vinapokosekana. - -### 2.1. Tengeneza faili `.env` - -Tunadhani tayari umesoma mwongozo hapo juu na umejisajili kwa mtoa huduma husika, na umepata vyeti vinavyohitajika vya uthibitishaji (API_KEY au tokeni). Kwa Azure OpenAI, tunadhani pia una usambazaji halali wa Azure OpenAI Service (endpoint) na angalau mfano mmoja wa GPT umewekwa kwa ajili ya kukamilisha mazungumzo. - -Hatua inayofuata ni kusanidi **mabadiliko ya mazingira ya eneo lako** kama ifuatavyo: - -1. Tafuta katika folda ya mzizi faili la `.env.copy` ambalo linapaswa kuwa na maudhui kama haya: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Nakili faili hiyo kwa jina `.env` kwa kutumia amri ifuatayo. Faili hili limewekwa kwenye _gitignore_, linahifadhi siri salama. - - ```bash - cp .env.copy .env - ``` - -3. Jaza thamani (badilisha sehemu za nafasi upande wa kulia wa `=`) kama ilivyoelezwa katika sehemu inayofuata. - -3. (Hiari) Ikiwa unatumia GitHub Codespaces, una chaguo la kuhifadhi mabadiliko ya mazingira kama _siri za Codespaces_ zinazohusiana na hazina hii. Katika hali hiyo, hautahitaji kusanidi faili la .env la eneo lako. **Hata hivyo, kumbuka kuwa chaguo hili linafanya kazi tu ikiwa unatumia GitHub Codespaces.** Bado utahitaji kusanidi faili la .env ikiwa unatumia Docker Desktop badala yake. - -### 2.2. Jaza faili `.env` - -Tuchukue muhtasari wa majina ya mabadiliko ili kuelewa yanayowakilisha: - -| Kigezo | Maelezo | -| :--- | :--- | -| HUGGING_FACE_API_KEY | Hii ni tokeni ya ufikiaji ya mtumiaji uliyoanzisha kwenye wasifu wako | -| OPENAI_API_KEY | Hii ni funguo ya idhini ya kutumia huduma kwa endpoints zisizo za Azure OpenAI | -| AZURE_OPENAI_API_KEY | Hii ni funguo ya idhini ya kutumia huduma hiyo | -| AZURE_OPENAI_ENDPOINT | Hii ni endpoint iliyosambazwa kwa rasilimali ya Azure OpenAI | -| AZURE_OPENAI_DEPLOYMENT | Hii ni endpoint ya usambazaji wa mfano wa _utengenezaji wa maandishi_ | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | Hii ni endpoint ya usambazaji wa mfano wa _embedding za maandishi_ | -| | | - -Kumbuka: Mabadiliko mawili ya mwisho ya Azure OpenAI yanaonyesha mfano wa msingi kwa ajili ya kukamilisha mazungumzo (utengenezaji wa maandishi) na utafutaji wa vector (embedding) mtawalia. Maelekezo ya kuyapanga yatafafanuliwa katika majukumu husika. - -### 2.3 Sanidi Azure: Kutoka Portal - -Thamani za endpoint na funguo za Azure OpenAI zitapatikana katika [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) hivyo tuanze hapo. - -1. Nenda kwenye [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -1. Bonyeza chaguo la **Keys and Endpoint** kwenye menyu ya pembeni (kushoto). -1. Bonyeza **Show Keys** - utapata yafuatayo: KEY 1, KEY 2 na Endpoint. -1. Tumia thamani ya KEY 1 kwa AZURE_OPENAI_API_KEY -1. Tumia thamani ya Endpoint kwa AZURE_OPENAI_ENDPOINT - -Ifuatayo, tunahitaji endpoints za mifano maalum tuliyoisambaza. - -1. Bonyeza chaguo la **Model deployments** kwenye menyu ya pembeni (kushoto) kwa rasilimali ya Azure OpenAI. -1. Ukifika kwenye ukurasa wa lengo, bonyeza **Manage Deployments** - -Hii itakupeleka kwenye tovuti ya Azure OpenAI Studio, ambapo tutapata thamani nyingine kama ilivyoelezwa hapa chini. - -### 2.4 Sanidi Azure: Kutoka Studio - -1. Nenda kwenye [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **kutoka kwenye rasilimali yako** kama ilivyoelezwa hapo juu. -1. Bonyeza kichupo cha **Deployments** (pembeni kushoto) kuona mifano iliyosambazwa kwa sasa. -1. Ikiwa mfano unaotaka haujasambazwa, tumia **Create new deployment** kuusambaza. -1. Utahitaji mfano wa _text-generation_ - tunapendekeza: **gpt-35-turbo** -1. Utahitaji mfano wa _text-embedding_ - tunapendekeza **text-embedding-ada-002** - -Sasa sasisha mabadiliko ya mazingira kuonyesha _Jina la Usambazaji_ lililotumika. Hii kawaida itakuwa sawa na jina la mfano isipokuwa umebadilisha kwa makusudi. Kwa mfano, unaweza kuwa na: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**Usisahau kuhifadhi faili la .env baada ya kumaliza**. Sasa unaweza kutoka kwenye faili na kurudi kwenye maelekezo ya kuendesha daftari. - -### 2.5 Sanidi OpenAI: Kutoka Wasifu - -Funguo yako ya API ya OpenAI inaweza kupatikana katika [akaunti yako ya OpenAI](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). Ikiwa huna, unaweza kujisajili na kuunda funguo ya API. Ukipata funguo, tumia kuijaza kwenye kigezo cha `OPENAI_API_KEY` katika faili la `.env`. - -### 2.6 Sanidi Hugging Face: Kutoka Wasifu - -Tokeni yako ya Hugging Face inaweza kupatikana kwenye wasifu wako chini ya [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). Usizitangaze au kuzishirikisha hadharani. Badala yake, tengeneza tokeni mpya kwa matumizi ya mradi huu na nakili hiyo kwenye faili la `.env` chini ya kigezo cha `HUGGING_FACE_API_KEY`. _Kumbuka:_ Hii si funguo ya API kiufundi lakini hutumika kwa uthibitishaji hivyo tunahifadhi jina hili kwa usawa. - -**Kiarifu cha Kutotegemea**: -Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kwa usahihi, tafadhali fahamu kwamba tafsiri za kiotomatiki zinaweza kuwa na makosa au upungufu wa usahihi. Hati ya asili katika lugha yake ya asili inapaswa kuchukuliwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya kitaalamu inayofanywa na binadamu inapendekezwa. Hatubebei dhamana kwa kutoelewana au tafsiri potofu zinazotokana na matumizi ya tafsiri hii. \ No newline at end of file diff --git a/translations/sw/04-prompt-engineering-fundamentals/README.md b/translations/sw/04-prompt-engineering-fundamentals/README.md index 8f1d73b0f..105798e56 100644 --- a/translations/sw/04-prompt-engineering-fundamentals/README.md +++ b/translations/sw/04-prompt-engineering-fundamentals/README.md @@ -1,466 +1,15 @@ - -# Misingi ya Uhandisi wa Prompt - -[![Misingi ya Uhandisi wa Prompt](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.sw.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Utangulizi -Moduli hii inashughulikia dhana na mbinu muhimu za kuunda prompt bora katika mifano ya AI ya kizazi. Jinsi unavyoandika prompt kwa LLM pia ni muhimu. Prompt iliyotengenezwa kwa uangalifu inaweza kupata majibu bora zaidi. Lakini hasa maneno kama _prompt_ na _uhandisi wa prompt_ yanamaanisha nini? Na ninawezaje kuboresha _input_ ya prompt ninayotuma kwa LLM? Haya ni maswali tutayajibu katika sura hii na inayofuata. - -_AI ya Kizazi_ ina uwezo wa kuunda maudhui mapya (mfano, maandishi, picha, sauti, msimbo n.k.) kama jibu kwa maombi ya mtumiaji. Hii inafanikishwa kwa kutumia _Mifano Mikubwa ya Lugha_ kama mfululizo wa GPT wa OpenAI ("Generative Pre-trained Transformer") ambao wamefundishwa kutumia lugha ya asili na msimbo. - -Watumiaji sasa wanaweza kuwasiliana na mifano hii kwa njia zinazojulikana kama mazungumzo, bila ujuzi wa kiufundi au mafunzo maalum. Mifano hii ni _inayotegemea prompt_ - watumiaji hutuma maandishi (prompt) na kurudishiwa jibu la AI (completion). Kisha wanaweza "kuzungumza na AI" kwa mizunguko mingi, wakiboresha prompt yao hadi jibu lifanikishe matarajio yao. - -"Prompts" sasa zinakuwa _kiolesura cha programu_ kuu kwa programu za AI za kizazi, zikielekeza mifano nini cha kufanya na kuathiri ubora wa majibu yanayorejeshwa. "Uhandisi wa Prompt" ni taaluma inayokua kwa kasi inayojikita katika _kubuni na kuboresha_ prompts ili kutoa majibu thabiti na bora kwa wingi. - -## Malengo ya Kujifunza - -Katika somo hili, tutajifunza ni nini Uhandisi wa Prompt, kwa nini ni muhimu, na jinsi ya kuunda prompts bora kwa mfano na lengo la programu. Tutafahamu dhana kuu na mbinu bora za uhandisi wa prompt - na kujifunza kuhusu mazingira ya mazoezi ya Jupyter Notebooks ambapo tunaweza kuona dhana hizi zikitumika kwa mifano halisi. - -Mwisho wa somo hili tutakuwa na uwezo wa: - -1. Eleza ni nini uhandisi wa prompt na kwa nini ni muhimu. -2. Eleza vipengele vya prompt na jinsi vinavyotumika. -3. Jifunze mbinu bora na mbinu za uhandisi wa prompt. -4. Tumia mbinu ulizojifunza kwa mifano halisi, ukitumia endpoint ya OpenAI. - -## Maneno Muhimu - -Uhandisi wa Prompt: Mazoezi ya kubuni na kuboresha maingizo ili kuelekeza mifano ya AI kutoa matokeo yanayotarajiwa. -Tokenization: Mchakato wa kubadilisha maandishi kuwa vitengo vidogo, vinavyoitwa tokens, ambavyo mfano unaweza kuelewa na kushughulikia. -Instruction-Tuned LLMs: Mifano Mikubwa ya Lugha (LLMs) iliyoboreshwa kwa maagizo maalum ili kuboresha usahihi na umuhimu wa majibu. - -## Mazoezi ya Kujifunza - -Uhandisi wa prompt kwa sasa ni zaidi sanaa kuliko sayansi. Njia bora ya kuboresha hisia zetu juu yake ni _kufanya mazoezi zaidi_ na kutumia mbinu ya jaribio na makosa inayochanganya utaalamu wa eneo la matumizi na mbinu zilizopendekezwa pamoja na uboreshaji maalum wa mfano. - -Jupyter Notebook inayokuja na somo hili inatoa mazingira ya _sandbox_ ambapo unaweza kujaribu kile unachojifunza - wakati wowote au kama sehemu ya changamoto ya msimbo mwishoni. Ili kutekeleza mazoezi, utahitaji: - -1. **Ufunguo wa API wa Azure OpenAI** - endpoint ya huduma kwa LLM iliyowekwa. -2. **Mazingira ya Python Runtime** - ambapo Notebook inaweza kutekelezwa. -3. **Mazingira ya Kiasili ya Mitaa** - _kamilisha hatua za [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) sasa ili kujiandaa_. - -Notebook inakuja na mazoezi ya _kuanzia_ - lakini unahimizwa kuongeza sehemu zako za _Markdown_ (maelezo) na _Code_ (maombi ya prompt) kujaribu mifano au mawazo zaidi - na kujenga hisia zako za kubuni prompt. - -## Mwongozo wa Picha - -Unataka kupata picha kubwa ya kile somo hili linashughulikia kabla ya kuingia? Angalia mwongozo huu wa picha, unaokupa hisia ya mada kuu zinazoshughulikiwa na mambo muhimu ya kuzingatia kila moja. Ramani ya somo inakupeleka kutoka kuelewa dhana kuu na changamoto hadi kuzitatua kwa mbinu za uhandisi wa prompt na mbinu bora. Kumbuka sehemu ya "Mbinu za Juu" katika mwongozo huu inahusu maudhui yaliyoshughulikiwa katika sura _inayofuata_ ya mtaala huu. - -![Mwongozo wa Picha wa Uhandisi wa Prompt](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.sw.png) - -## Kampuni Yetu - -Sasa, tuzungumzie jinsi _mada hii_ inavyohusiana na dhamira ya kampuni yetu ya kuleta [ubunifu wa AI katika elimu](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). Tunataka kujenga programu za AI zinazotegemea _kujifunza binafsi_ - kwa hivyo fikiria jinsi watumiaji tofauti wa programu yetu wanaweza "kubuni" prompts: - -- **Wasimamizi** wanaweza kumuomba AI _kuchambua data ya mtaala ili kubaini mapungufu ya mafunzo_. AI inaweza kufupisha matokeo au kuyaonyesha kwa msimbo. -- **Walimu** wanaweza kumuomba AI _kuunda mpango wa somo kwa hadhira na mada fulani_. AI inaweza kutengeneza mpango binafsi kwa muundo uliobainishwa. -- **Wanafunzi** wanaweza kumuomba AI _kuwa mwalimu wao katika somo gumu_. AI sasa inaweza kuwaongoza wanafunzi kwa masomo, vidokezo na mifano inayolingana na kiwango chao. - -Hiyo ni kidogo tu. Angalia [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) - maktaba ya prompts ya chanzo huria iliyokusanywa na wataalamu wa elimu - kupata picha pana ya uwezekano! _Jaribu kuendesha baadhi ya prompts hizo katika sandbox au kutumia OpenAI Playground kuona kinachotokea!_ - - - -## Uhandisi wa Prompt ni Nini? - -Tulianza somo hili kwa kufafanua **Uhandisi wa Prompt** kama mchakato wa _kubuni na kuboresha_ maingizo ya maandishi (prompts) ili kutoa majibu thabiti na bora (completions) kwa lengo la programu na mfano fulani. Tunaweza kuiona kama mchakato wa hatua 2: - -- _kubuni_ prompt ya awali kwa mfano na lengo fulani -- _kuboresha_ prompt kwa mizunguko ili kuboresha ubora wa jibu - -Huu ni mchakato wa jaribio na makosa unaohitaji hisia na juhudi za mtumiaji kupata matokeo bora. Kwa nini ni muhimu? Ili kujibu hilo, kwanza tunahitaji kuelewa dhana tatu: - -- _Tokenization_ = jinsi mfano "unaona" prompt -- _Base LLMs_ = jinsi mfano wa msingi "ushughulikia" prompt -- _Instruction-Tuned LLMs_ = jinsi mfano sasa unaweza kuona "kazi" - -### Tokenization - -LLM inaona prompts kama _mfuatano wa tokens_ ambapo mifano tofauti (au matoleo ya mfano) inaweza kugawanya prompt hiyo kwa njia tofauti. Kwa kuwa LLM zimefundishwa kwa tokens (na si maandishi ghafi), jinsi prompts zinavyogawanywa kwa tokens inaathiri moja kwa moja ubora wa jibu lililotengenezwa. - -Ili kupata hisia ya jinsi tokenization inavyofanya kazi, jaribu zana kama [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) iliyoonyeshwa hapa chini. Nakili prompt yako - na uone jinsi inavyobadilishwa kuwa tokens, ukizingatia jinsi nafasi na alama za uandishi zinavyoshughulikiwa. Kumbuka mfano huu unaonyesha LLM ya zamani (GPT-3) - hivyo kujaribu na mfano mpya kunaweza kutoa matokeo tofauti. - -![Tokenization](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.sw.png) - -### Dhana: Mifano ya Msingi - -Mara prompt inapogawanywa kwa tokens, kazi kuu ya ["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (au mfano wa msingi) ni kutabiri token inayofuata katika mfuatano huo. Kwa kuwa LLM zimefundishwa kwa seti kubwa za maandishi, zina uelewa mzuri wa uhusiano wa takwimu kati ya tokens na zinaweza kufanya utabiri huo kwa uhakika fulani. Kumbuka hazielewi _maana_ ya maneno katika prompt au token; zinaona tu muundo wanaoweza "kukamilisha" kwa utabiri wao unaofuata. Zinaweza kuendelea kutabiri mfuatano hadi zitakapotimuliwa na mtumiaji au kwa hali iliyowekwa awali. - -Unataka kuona jinsi kukamilisha kwa prompt kunavyofanya kazi? Ingiza prompt hapo juu katika Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) kwa mipangilio ya msingi. Mfumo umewekwa kutambua prompts kama maombi ya taarifa - hivyo unapaswa kuona jibu linalokidhi muktadha huu. - -Lakini mtumiaji angependa kuona kitu maalum kinachokidhi vigezo au lengo la kazi? Hapa ndipo _Instruction-Tuned_ LLMs huingia. - -![Base LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.sw.png) - -### Dhana: Instruction Tuned LLMs - -[Instruction Tuned LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) huanza na mfano wa msingi na kuuboresha kwa mifano au jozi za ingizo/mazao (mfano, "jumbe" za mizunguko mingi) zinazoweza kuwa na maagizo wazi - na jibu kutoka kwa AI linajaribu kufuata agizo hilo. - -Hii hutumia mbinu kama Reinforcement Learning with Human Feedback (RLHF) inayoweza kufundisha mfano _kufuata maagizo_ na _kujifunza kutokana na maoni_ ili kutoa majibu yanayofaa zaidi kwa matumizi halisi na yanayohusiana zaidi na malengo ya mtumiaji. - -Tujaribu - rudi kwenye prompt hapo juu, lakini sasa badilisha _ujumbe wa mfumo_ kutoa agizo lifuatalo kama muktadha: - -> _Fupisha maudhui uliyopewa kwa mwanafunzi wa darasa la pili. Weka matokeo katika aya moja yenye pointi 3-5._ - -Tazama jinsi matokeo sasa yanavyolingana na lengo na muundo uliotakiwa? Mwalimu sasa anaweza kutumia jibu hili moja kwa moja katika slaidi za darasa hilo. - -![Instruction Tuned LLM Chat Completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.sw.png) - -## Kwa Nini Tunahitaji Uhandisi wa Prompt? - -Sasa tunapojua jinsi prompts zinavyoshughulikiwa na LLMs, tuzungumze _kwa nini_ tunahitaji uhandisi wa prompt. Jibu liko katika ukweli kwamba LLMs za sasa zina changamoto kadhaa zinazofanya _kukamilisha majibu kwa uhakika na uthabiti_ kuwa vigumu kufanikisha bila juhudi za kujenga na kuboresha prompt. Kwa mfano: - -1. **Majibu ya mfano ni ya nasibu.** _Prompt ile ile_ inaweza kutoa majibu tofauti kwa mifano tofauti au matoleo tofauti ya mfano. Na inaweza hata kutoa matokeo tofauti kwa _mfano ule ule_ wakati tofauti. _Mbinu za uhandisi wa prompt zinaweza kutusaidia kupunguza tofauti hizi kwa kutoa miongozo bora_. - -1. **Mifano inaweza kuunda majibu ya uongo.** Mifano imefundishwa kwa seti kubwa lakini _zilizo na kikomo_ za data, maana yake hawana maarifa ya dhana nje ya mafunzo hayo. Hii inaweza kusababisha kutoa majibu yasiyo sahihi, ya kubuni, au yanayopingana na ukweli unaojulikana. _Mbinu za uhandisi wa prompt husaidia watumiaji kugundua na kupunguza uongo kama huo kwa kuomba AI kutoa marejeleo au hoja_. - -1. **Uwezo wa mifano utatofautiana.** Mifano mipya au vizazi vipya vitakuwa na uwezo zaidi lakini pia huleta changamoto na mabadiliko ya gharama na ugumu. _Uhandisi wa prompt unaweza kutusaidia kuunda mbinu bora na mtiririko wa kazi unaozificha tofauti na kuendana na mahitaji maalum ya mfano kwa njia inayoweza kupanuka na rahisi_. - -Tazama hili likifanyika katika OpenAI au Azure OpenAI Playground: - -- Tumia prompt ile ile kwa utoaji tofauti wa LLM (mfano, OpenAI, Azure OpenAI, Hugging Face) - je, umegundua tofauti? -- Tumia prompt ile ile mara kwa mara kwa utoaji _ule ule_ wa LLM (mfano, Azure OpenAI playground) - tofauti hizi zilikuwa vipi? - -### Mfano wa Uongo - -Katika kozi hii, tunatumia neno **"fabrication"** kurejelea hali ambapo LLMs wakati mwingine hutengeneza taarifa zisizo sahihi kutokana na vikwazo vya mafunzo au vikwazo vingine. Pia unaweza kuwa umesikia hili likitajwa kama _"hallucinations"_ katika makala maarufu au karatasi za utafiti. Hata hivyo, tunapendekeza kutumia _"fabrication"_ kama neno ili kuepuka kumfananisha AI na tabia za binadamu kwa makosa. Hii pia inahimiza [miongozo ya AI yenye uwajibikaji](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) kwa mtazamo wa istilahi, kuondoa maneno ambayo yanaweza kuchukuliwa kuwa ya kuudhi au yasiyo jumuishi katika muktadha fulani. - -Unataka kupata hisia ya jinsi fabrications zinavyofanya kazi? Fikiria prompt inayomwambia AI kuunda maudhui kwa mada isiyopo (ili kuhakikisha haipatikani katika seti ya mafunzo). Kwa mfano - nilijaribu prompt hii: -# Mpango wa Somo: Vita vya Wamars mwaka 2076 - -## Malengo ya Somo -- Kuelewa sababu kuu za Vita vya Wamars mwaka 2076 -- Kuchambua matukio muhimu katika vita hiyo -- Kujifunza athari za vita kwa sayari ya Dunia na Mars -- Kujadili mbinu za kijeshi zilizotumika na matokeo yake - -## Muhtasari wa Somo -Katika somo hili, tutachunguza Vita vya Wamars vilivyotokea mwaka 2076, vita ambavyo vilibadilisha kabisa uhusiano kati ya Dunia na Mars. Tutajadili chanzo cha mzozo, mikakati ya kijeshi, na jinsi vita hiyo ilivyoshawishi maendeleo ya kisayansi na kisiasa. - -## Mada za Somo -1. **Utangulizi wa Vita vya Wamars** - - Historia ya uhusiano kati ya Dunia na Mars kabla ya 2076 - - Sababu za mzozo - -2. **Matukio Muhimu ya Vita** - - Mapigano makubwa na maeneo yao - - Teknolojia za kijeshi zilizotumika - - Watu maarufu na viongozi wa vita - -3. **Athari za Vita** - - Hasara za kibinadamu na mali - - Mabadiliko ya kisiasa na kijamii - - Matarajio ya baadaye ya uhusiano kati ya sayari hizo - -4. **Mjadala na Hitimisho** - - Je, vita vilizuilika vipi? - - Mafanikio na changamoto zilizojitokeza baada ya vita - - Maswali ya kujadili na maoni ya wanafunzi - -## Mbinu za Kufundishia -- Matangazo ya video na picha za kihistoria -- Mazungumzo ya darasani na mijadala ya vikundi vidogo -- Kazi za utafiti na ripoti fupi -- Matumizi ya ramani na michoro kuelezea mikakati ya vita - -## Vifaa Vinavyohitajika -- Kompyuta na projector -- Vitabu na makala za kihistoria -- Ramani za Mars na Dunia -- Vifaa vya kuandika na karatasi - -## Tathmini -- Maswali ya kujibu baada ya somo -- Kazi ya kuandika ripoti kuhusu matukio ya vita -- Mjadala wa darasani kuhusu athari za vita na mafunzo yake - -## Marejeleo -- Vitabu vya historia ya anga za juu -- Makala za wataalamu wa uhusiano wa sayari -- Video za kihistoria na nyaraka za vita vya Wamars -Utafutaji wa wavuti ulinionyesha kuwa kulikuwa na hadithi za kubuni (mfano, mfululizo wa televisheni au vitabu) kuhusu vita vya Wamarsiani - lakini hakuna hata moja mwaka 2076. Hekima ya kawaida pia inatueleza kuwa 2076 ni _baadaye_ na kwa hivyo, haiwezi kuhusishwa na tukio halisi. - -Basi nini hutokea tunapotekeleza ombi hili kwa watoa huduma tofauti wa LLM? - -> **Jibu 1**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.sw.png) - -> **Jibu 2**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.sw.png) - -> **Jibu 3**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.sw.png) - -Kama ilivyotarajiwa, kila mfano (au toleo la mfano) hutoa majibu tofauti kidogo kutokana na tabia ya nasibu na tofauti za uwezo wa mfano. Kwa mfano, mfano mmoja unalenga hadhira ya darasa la nane wakati mwingine unadhani ni mwanafunzi wa shule ya upili. Lakini modeli zote tatu zilizalisha majibu ambayo yanaweza kumshawishi mtumiaji asiye na taarifa kuwa tukio hilo ni halisi. - -Mbinu za uhandisi wa maombi kama _metaprompting_ na _usanidi wa joto_ zinaweza kupunguza uundaji wa habari za uongo na modeli kwa kiasi fulani. Miundo mipya ya uhandisi wa maombi pia hujumuisha zana na mbinu mpya kwa urahisi katika mtiririko wa maombi, ili kupunguza au kuondoa baadhi ya athari hizi. - -## Uchunguzi wa Kesi: GitHub Copilot - -Tumalize sehemu hii kwa kupata hisia ya jinsi uhandisi wa maombi unavyotumika katika suluhisho halisi kwa kuangalia Uchunguzi wa Kesi moja: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot ni "Mshirika wako wa Programu wa AI" - hubadilisha maombi ya maandishi kuwa ukamilishaji wa msimbo na umeunganishwa katika mazingira yako ya maendeleo (mfano, Visual Studio Code) kwa uzoefu mzuri wa mtumiaji. Kama ilivyoandikwa katika mfululizo wa blogu hapa chini, toleo la awali lilikuwa linategemea mfano wa OpenAI Codex - na wahandisi waligundua haraka hitaji la kuboresha mfano na kuendeleza mbinu bora za uhandisi wa maombi, ili kuboresha ubora wa msimbo. Mwezi Julai, walizindua [mfano bora wa AI unaozidi Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) kwa mapendekezo ya haraka zaidi. - -Soma machapisho kwa mpangilio, kufuatilia safari yao ya kujifunza. - -- **Mei 2023** | [GitHub Copilot inazidi kuelewa msimbo wako vizuri](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **Mei 2023** | [Ndani ya GitHub: Kufanya kazi na LLMs nyuma ya GitHub Copilot](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Juni 2023** | [Jinsi ya kuandika maombi bora kwa GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Julai 2023** | [.. GitHub Copilot inazidi Codex kwa mfano bora wa AI](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Julai 2023** | [Mwongozo wa Mhandisi kwa Uhandisi wa Maombi na LLMs](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **Septemba 2023** | [Jinsi ya kujenga programu ya LLM ya biashara: Mafunzo kutoka GitHub Copilot](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -Unaweza pia kuvinjari [blogu yao ya Uhandisi](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) kwa machapisho zaidi kama [haya](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) yanayoonyesha jinsi modeli hizi na mbinu zinavyotumika _kutekeleza_ programu halisi. - ---- - - - -## Ujenzi wa Maombi - -Tumeona kwa nini uhandisi wa maombi ni muhimu - sasa tuelewe jinsi maombi yanavyotengenezwa ili tuweze kutathmini mbinu tofauti kwa ajili ya kubuni maombi yenye ufanisi zaidi. - -### Ombi la Msingi - -Tuanze na ombi la msingi: ingizo la maandishi lililotumwa kwa mfano bila muktadha mwingine. Hapa kuna mfano - tunapotuma maneno machache ya wimbo wa taifa wa Marekani kwa OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst) mara moja _hukamilisha_ jibu kwa mistari inayofuata, ikionyesha tabia ya msingi ya utabiri. - -| Ombi (Ingizo) | Ukamilishaji (Matokeo) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | Inaonekana kama unaanza mistari ya "The Star-Spangled Banner," wimbo wa taifa wa Marekani. Mistari kamili ni ... | - -### Ombi Changamano - -Sasa tuongeze muktadha na maelekezo kwa ombi hilo la msingi. [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) inatuwezesha kuunda ombi changamano kama mkusanyiko wa _jumbe_ zenye: - -- Pairs za ingizo/mazao zinazoakisi ingizo la _mtumiaji_ na jibu la _msaidizi_. -- Ujumbe wa mfumo unaoweka muktadha wa tabia au utu wa msaidizi. - -Ombi sasa uko katika muundo ulio hapa chini, ambapo _ugawaji wa tokeni_ unachukua taarifa muhimu kutoka muktadha na mazungumzo. Sasa, kubadilisha muktadha wa mfumo kunaweza kuwa na athari kubwa kwenye ubora wa ukamilishaji, kama vile ingizo la mtumiaji lililotolewa. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Ombi la Maelekezo - -Katika mifano hapo juu, ombi la mtumiaji lilikuwa swali rahisi la maandishi ambalo linaweza kufasiriwa kama ombi la taarifa. Kwa maombi ya _maelekezo_, tunaweza kutumia maandishi hayo kubainisha kazi kwa undani zaidi, tukitoa mwongozo bora kwa AI. Hapa kuna mfano: - -| Ombi (Ingizo) | Ukamilishaji (Matokeo) | Aina ya Maelekezo | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Andika maelezo ya Vita vya wenyewe kwa wenyewe | _ilirudisha aya rahisi_ | Rahisi | -| Andika maelezo ya Vita vya wenyewe kwa wenyewe. Toa tarehe muhimu na matukio na eleza umuhimu wake | _ilirudisha aya ikifuatiwa na orodha ya tarehe muhimu za matukio na maelezo_ | Changamano | -| Andika maelezo ya Vita vya wenyewe kwa wenyewe katika aya 1. Toa pointi 3 za vidokezo na tarehe muhimu na umuhimu wake. Toa pointi 3 zaidi za vidokezo kuhusu watu muhimu wa kihistoria na michango yao. Rudisha matokeo kama faili la JSON | _inarejesha maelezo zaidi kwa kisanduku cha maandishi, kimepangwa kama JSON ambacho unaweza kunakili-kubandika kwenye faili na kuthibitisha kama inahitajika_ | Changamano. Imeandaliwa. | - -## Yaliyomo Muhimu - -Katika mifano hapo juu, ombi bado ulikuwa wazi, ukiruhusu LLM kuamua ni sehemu gani ya seti yake ya mafunzo iliyoandaliwa kabla ni muhimu. Kwa muundo wa _yaliyomo muhimu_, maandishi ya ingizo hugawanywa katika sehemu mbili: - -- maelekezo (kitendo) -- yaliyomo muhimu (yanayoathiri kitendo) - -Hapa kuna mfano ambapo maelekezo ni "fupisha hii kwa sentensi 2". - -| Ombi (Ingizo) | Ukamilishaji (Matokeo) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter ni sayari ya tano kutoka Jua na kubwa zaidi katika Mfumo wa Jua. Ni gasi kubwa yenye uzito wa elfu moja wa Jua, lakini mara mbili na nusu ya uzito wa sayari zote nyingine katika Mfumo wa Jua kwa pamoja. Jupiter ni mojawapo ya vitu vinavyoangaza sana vinavyoonekana kwa jicho la kawaida usiku, na imejulikana kwa ustaarabu wa kale tangu kabla ya historia kuandikwa. Imepewa jina la mungu wa Kirumi Jupiter.[19] Inapoangaliwa kutoka Dunia, Jupiter inaweza kung'aa vya kutosha kwa mwanga wake unaoakisi kuonyesha vivuli vinavyoonekana,[20] na kwa wastani ni kitu cha tatu kinachoangaza zaidi asili usiku baada ya Mwezi na Venus.
**Fupisha hii kwa sentensi 2 fupi** | Jupiter, sayari ya tano kutoka Jua, ni kubwa zaidi katika Mfumo wa Jua na inajulikana kwa kuwa mojawapo ya vitu vinavyoangaza usiku. Imepewa jina la mungu wa Kirumi Jupiter, ni gasi kubwa yenye uzito mara mbili na nusu ya uzito wa sayari zote nyingine katika Mfumo wa Jua kwa pamoja. | - -Sehemu ya yaliyomo muhimu inaweza kutumika kwa njia mbalimbali kuendesha maelekezo yenye ufanisi zaidi: - -- **Mifano** - badala ya kusema kwa mfano ni nini cha kufanya kwa maelekezo wazi, mpe mifano ya kile cha kufanya na uiruhusu itafsiri muundo. -- **Vidokezo** - fuata maelekezo na "kidokezo" kinachochochea ukamilishaji, kuongoza mfano kuelekea majibu yanayofaa zaidi. -- **Violezo** - hizi ni 'mapishi' yanayoweza kurudiwa kwa maombi yenye sehemu za kubadilishwa (vigezo) ambavyo vinaweza kubinafsishwa kwa data kwa matumizi maalum. - -Tuchunguze haya kwa vitendo. - -### Kutumia Mifano - -Hii ni mbinu ambapo unatumia yaliyomo muhimu "kulisha mfano" baadhi ya mifano ya matokeo yanayotarajiwa kwa maelekezo fulani, na kuiruhusu itafsiri muundo wa matokeo yanayotarajiwa. Kulingana na idadi ya mifano iliyotolewa, tunaweza kuwa na maombi ya zero-shot, one-shot, few-shot n.k. - -Ombi sasa unajumuisha vipengele vitatu: - -- Maelezo ya kazi -- Mifano michache ya matokeo yanayotarajiwa -- Mwanzo wa mfano mpya (ambao hutumika kama maelezo ya kazi kwa njia isiyo wazi) - -| Aina ya Kujifunza | Ombi (Ingizo) | Ukamilishaji (Matokeo) | -| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| Zero-shot | "The Sun is Shining". Tafsiri kwa Kihispania | "El Sol está brillando". | -| One-shot | "The Sun is Shining" => ""El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| Few-shot | Mchezaji alikimbia misingi => Baseball
Mchezaji alipiga ace => Tennis
Mchezaji alipiga sita => Cricket
Mchezaji alifanya slam-dunk => | Basketball | -| | | | - -Angalia jinsi tulivyotakiwa kutoa maelekezo wazi ("Tafsiri kwa Kihispania") katika ombi la zero-shot, lakini linatambuliwa katika mfano wa one-shot. Mfano wa few-shot unaonyesha jinsi kuongeza mifano zaidi kunaruhusu modeli kufanya makadirio sahihi zaidi bila maelekezo ya ziada. - -### Vidokezo vya Ombi - -Mbinu nyingine ya kutumia yaliyomo muhimu ni kutoa _vidokezo_ badala ya mifano. Katika kesi hii, tunamchochea mfano kwa _kuanza_ na kipande kinachoonyesha muundo wa jibu linalotakiwa. Kisha mfano "huchukua kidokezo" kuendelea kwa mtindo huo. - -| Idadi ya Vidokezo | Ombi (Ingizo) | Ukamilishaji (Matokeo) | -| :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Jupiter ni sayari ya tano kutoka Jua na kubwa zaidi katika Mfumo wa Jua. Ni gasi kubwa yenye uzito wa elfu moja wa Jua, lakini mara mbili na nusu ya uzito wa sayari zote nyingine katika Mfumo wa Jua kwa pamoja. Jupiter ni mojawapo ya vitu vinavyoangaza sana vinavyoonekana kwa jicho la kawaida usiku, na imejulikana kwa ustaarabu wa kale tangu kabla ya historia kuandikwa. - -**Muhtasari Huu** | Jupiter ni sayari kubwa zaidi katika Mfumo wetu wa Jua na ya tano kuanzia Jua. Ni sayari kubwa ya gesi yenye wingi wa 1/1000 wa Jua, lakini ni nzito zaidi kuliko sayari zote nyingine kwa pamoja. Dola za kale zimejua kuhusu Jupiter kwa muda mrefu, na inaonekana kwa urahisi angani usiku.. | -| 1 | Jupiter ni sayari ya tano kuanzia Jua na kubwa zaidi katika Mfumo wa Jua. Ni sayari kubwa ya gesi yenye wingi wa elfu moja wa Jua, lakini mara mbili na nusu ya wingi wa sayari zote nyingine kwa pamoja. Jupiter ni moja ya vitu angavu vinavyoonekana kwa jicho la kawaida usiku angani, na imejulikana kwa ustaarabu wa kale tangu kabla ya historia kuandikwa.
**Muhtasari Huu**
Tuliyojifunza ni kwamba Jupiter | ni sayari ya tano kuanzia Jua na kubwa zaidi katika Mfumo wa Jua. Ni sayari kubwa ya gesi yenye wingi wa elfu moja wa Jua, lakini mara mbili na nusu ya wingi wa sayari zote nyingine kwa pamoja. Inaonekana kwa urahisi kwa jicho la kawaida na imejulikana tangu nyakati za kale. | -| 2 | Jupiter ni sayari ya tano kuanzia Jua na kubwa zaidi katika Mfumo wa Jua. Ni sayari kubwa ya gesi yenye wingi wa elfu moja wa Jua, lakini mara mbili na nusu ya wingi wa sayari zote nyingine katika Mfumo wa Jua kwa pamoja. Jupiter ni moja ya vitu angavu vinavyoonekana kwa jicho la kawaida usiku angani, na imejulikana kwa ustaarabu wa kale tangu kabla ya historia kuandikwa.
**Muhtasari Huu**
Ukweli 3 Bora Tuliojifunza: | 1. Jupiter ni sayari ya tano kuanzia Jua na kubwa zaidi katika Mfumo wa Jua.
2. Ni sayari kubwa ya gesi yenye wingi wa elfu moja wa Jua...
3. Jupiter imeonekana kwa jicho la kawaida tangu nyakati za kale ... | -| | | | - -### Violezo vya Maagizo - -Kiolezo cha maagizo ni _mapishi yaliyotanguliwa kwa ajili ya agizo_ ambayo yanaweza kuhifadhiwa na kutumika tena inapohitajika, ili kuleta uzoefu wa mtumiaji unaoendelea kwa kiwango kikubwa. Kwa muundo wake rahisi, ni mkusanyiko wa mifano ya maagizo kama [hii kutoka OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) inayotoa sehemu za maingiliano za agizo (jumbe za mtumiaji na mfumo) pamoja na muundo wa ombi linaloendeshwa na API - kusaidia matumizi tena. - -Katika muundo wake mgumu zaidi kama [mfano huu kutoka LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst) huwa na _vibandiko_ vinavyoweza kubadilishwa na data kutoka vyanzo mbalimbali (ingizo la mtumiaji, muktadha wa mfumo, vyanzo vya data vya nje n.k.) ili kuzalisha agizo kwa njia ya mabadiliko. Hii inatuwezesha kuunda maktaba ya maagizo yanayoweza kutumika tena ambayo yanaweza kutumika kuendesha uzoefu wa mtumiaji unaoendelea **kwa mpangilio wa programu** kwa kiwango kikubwa. - -Mwishowe, thamani halisi ya violezo iko katika uwezo wa kuunda na kuchapisha _maktaba za maagizo_ kwa maeneo maalum ya matumizi - ambapo kiolezo cha agizo sasa kimeboreshwa kuakisi muktadha maalum wa matumizi au mifano inayofanya majibu kuwa muhimu zaidi na sahihi kwa hadhira lengwa. Hifadhidata ya [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) ni mfano mzuri wa njia hii, ikikusanya maktaba ya maagizo kwa sekta ya elimu kwa msisitizo kwenye malengo muhimu kama upangaji wa masomo, muundo wa mtaala, ufundishaji wa wanafunzi n.k. - -## Maudhui ya Msaada - -Ikiwa tutafikiria uundaji wa agizo kama kuwa na maelekezo (kazi) na lengo (maudhui makuu), basi _maudhui ya sekondari_ ni kama muktadha wa ziada tunaotoa ili **kuathiri matokeo kwa namna fulani**. Hii inaweza kuwa vigezo vya usanidi, maelekezo ya muundo, aina za mada n.k. ambavyo vinaweza kusaidia mfano _kubadilisha_ jibu lake ili lifae malengo au matarajio ya mtumiaji. - -Kwa mfano: Tukichukulia orodha ya kozi yenye metadata nyingi (jina, maelezo, kiwango, lebo za metadata, mwalimu n.k.) kwa kozi zote zilizopo katika mtaala: - -- tunaweza kuweka maelekezo ya "fupisha orodha ya kozi za Msimu wa Fall 2023" -- tunaweza kutumia maudhui makuu kutoa mifano michache ya matokeo yanayotarajiwa -- tunaweza kutumia maudhui ya sekondari kubainisha lebo 5 kuu zinazovutia. - -Sasa, mfano unaweza kutoa muhtasari kwa muundo unaoonyeshwa na mifano michache - lakini ikiwa matokeo yana lebo nyingi, unaweza kuipa kipaumbele lebo 5 zilizobainishwa katika maudhui ya sekondari. - ---- - - - -## Mbinu Bora za Kuandika Maagizo - -Sasa tunapojua jinsi maagizo yanavyoweza _kuundwa_, tunaweza kuanza kufikiria jinsi ya _kuyabuni_ ili yaakisi mbinu bora. Tunaweza kufikiria hili kwa sehemu mbili - kuwa na _mtazamo_ sahihi na kutumia _mbinu_ sahihi. - -### Mtazamo wa Uhandisi wa Maagizo - -Uhandisi wa Maagizo ni mchakato wa jaribio na makosa, hivyo kumbuka mambo matatu makuu: - -1. **Uelewa wa Sekta ni Muhimu.** Usahihi na umuhimu wa majibu ni matokeo ya _sekta_ ambayo programu au mtumiaji anafanya kazi ndani yake. Tumia hisia zako na utaalamu wa sekta ili **kuboresha mbinu** zaidi. Kwa mfano, weka _tabia za sekta_ katika maagizo ya mfumo wako, au tumia _violezo vya sekta_ katika maagizo ya mtumiaji. Toa maudhui ya sekondari yanayoakisi muktadha wa sekta, au tumia _ishara na mifano ya sekta_ kuongoza mfano kuelekea matumizi yanayojulikana. - -2. **Uelewa wa Mfano ni Muhimu.** Tunajua mifano ni ya nasibu kwa asili. Lakini utekelezaji wa mfano unaweza kutofautiana kulingana na seti ya mafunzo wanayotumia (maarifa yaliyopangwa awali), uwezo wanaupa (mfano API au SDK) na aina ya maudhui wanayolenga (mfano, msimbo dhidi ya picha dhidi ya maandishi). Fahamu nguvu na mapungufu ya mfano unaotumia, na tumia maarifa hayo kupewa kipaumbele kazi au kujenga _violezo maalum_ vilivyoandaliwa kwa uwezo wa mfano. - -3. **Mizunguko na Uhakiki ni Muhimu.** Mifano inabadilika kwa kasi, na hivyo pia mbinu za uhandisi wa maagizo. Kama mtaalamu wa sekta, unaweza kuwa na muktadha au vigezo vingine vya programu yako maalum, ambavyo haviwezi kutumika kwa jumuiya kubwa. Tumia zana na mbinu za uhandisi wa maagizo kuanza uundaji wa agizo, kisha fanya mizunguko na uhakiki kwa kutumia hisia zako na utaalamu wa sekta. Rekodi maarifa yako na unda **hifadhidata ya maarifa** (mfano, maktaba za maagizo) ambayo inaweza kutumika kama msingi mpya na wengine, kwa mizunguko ya haraka baadaye. - -## Mbinu Bora - -Sasa tuchunguze mbinu za kawaida bora zinazopendekezwa na wataalamu wa [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) na [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst). - -| Nini | Kwa Nini | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Tathmini mifano ya hivi karibuni. | Vizazi vipya vya mifano vinaweza kuwa na sifa na ubora ulioimarishwa - lakini pia vinaweza kuleta gharama kubwa zaidi. Vithamini kwa athari, kisha fanya maamuzi ya uhamiaji. | -| Tenganisha maelekezo na muktadha | Angalia kama mfano/watoa huduma wako wanaelekeza _vitu vya kutenganisha_ ili kutofautisha maelekezo, maudhui makuu na maudhui ya sekondari kwa uwazi zaidi. Hii inaweza kusaidia mifano kutoa uzito sahihi kwa tokeni. | -| Kuwa maalum na wazi | Toa maelezo zaidi kuhusu muktadha unaotakiwa, matokeo, urefu, muundo, mtindo n.k. Hii itaboresha ubora na uthabiti wa majibu. Hifadhi mapishi katika violezo vinavyoweza kutumika tena. | -| Kuwa wa kuelezea, tumia mifano | Mifano inaweza kusaidia mifano kutoa majibu bora. Anza na njia ya `zero-shot` ambapo unampa maelekezo (bila mifano) kisha jaribu `few-shot` kama maboresho, ukitoa mifano michache ya matokeo yanayotarajiwa. Tumia mifano ya kulinganisha. | -| Tumia ishara kuanzisha majibu | Mwelekeze kuelekea matokeo yanayotarajiwa kwa kumpa maneno au misemo ya kuanzia ambayo anaweza kutumia kama msingi wa jibu. | -| Rudia mara mbili | Wakati mwingine unaweza kuhitaji kujirudia kwa mfano. Toa maelekezo kabla na baada ya maudhui makuu, tumia maelekezo na ishara, n.k. Fanya mizunguko na uhakiki kuona kinachofanya kazi. | -| Mpangilio ni Muhimu | Mpangilio wa jinsi unavyoleta taarifa kwa mfano unaweza kuathiri matokeo, hata katika mifano ya kujifunza, kutokana na upendeleo wa mambo ya hivi karibuni. Jaribu chaguzi tofauti kuona kinachofanya kazi vizuri. | -| Mpe mfano “njia ya kutoroka” | Mpe mfano jibu la _kuhitimisha mbadala_ ambalo anaweza kutoa ikiwa hawezi kukamilisha kazi kwa sababu yoyote. Hii inaweza kupunguza nafasi za mifano kutoa majibu ya uongo au yaliyotengenezwa. | -| | | - -Kama ilivyo kwa mbinu yoyote bora, kumbuka kuwa _matokeo yako yanaweza kutofautiana_ kulingana na mfano, kazi na sekta. Tumia haya kama msingi, na fanya mizunguko kupata kinachofaa kwako. Endelea kutathmini mchakato wako wa uhandisi wa maagizo kadri mifano na zana mpya zinavyopatikana, ukiangazia upanuzi wa mchakato na ubora wa majibu. - - - -## Kazi ya Nyumbani - -Hongera! Umefika mwisho wa somo! Sasa ni wakati wa kujaribu baadhi ya dhana na mbinu hizo kwa mifano halisi! - -Kwa kazi yetu ya nyumbani, tutatumia Jupyter Notebook yenye mazoezi ambayo unaweza kumaliza kwa njia ya maingiliano. Pia unaweza kuongeza Markdown na seli za Msimbo zako mwenyewe kuchunguza mawazo na mbinu kwa njia yako. - -### Kuanzia, tengeneza nakala ya repo, kisha - -- (Inapendekezwa) Anzisha GitHub Codespaces -- (Mbali na hilo) Nakili repo kwenye kifaa chako na uitumie na Docker Desktop -- (Mbali na hilo) Fungua Notebook kwa mazingira ya kuendesha unayopendelea. - -### Kisha, sanidi vigezo vya mazingira - -- Nakili faili `.env.copy` kutoka kwenye mizizi ya repo hadi `.env` na ujaze thamani za `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` na `AZURE_OPENAI_DEPLOYMENT`. Rudi kwenye [sehemu ya Learning Sandbox](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) kujifunza jinsi. - -### Kisha, fungua Jupyter Notebook - -- Chagua kernel ya runtime. Ikiwa unatumia chaguo 1 au 2, chagua kernel ya Python 3.10.x inayotolewa na kontena la maendeleo. - -Uko tayari kuendesha mazoezi. Kumbuka hakuna majibu _sahihi au makosa_ hapa - ni kuchunguza chaguzi kwa jaribio na makosa na kujenga hisia ya kile kinachofaa kwa mfano na sekta fulani. - -_Kwa sababu hii hakuna sehemu za Suluhisho la Msimbo katika somo hili. Badala yake, Notebook itakuwa na seli za Markdown zilizo na kichwa "My Solution:" zinazoonyesha mfano mmoja wa matokeo kwa rejea._ - - - -## Kagua Maarifa - -Ni ipi kati ya zifuatazo ni agizo zuri linalofuata mbinu bora za kawaida? - -1. Nionyeshe picha ya gari jekundu -2. Nionyeshe picha ya gari jekundu la chapa Volvo na mfano XC90 likiwekewa kando ya mto na jua likizama -3. Nionyeshe picha ya gari jekundu la chapa Volvo na mfano XC90 - -J: 2, ni agizo bora zaidi kwa sababu linaeleza "nini" na linaelezea kwa undani (si gari lolote bali chapa na mfano maalum) na pia linaelezea mazingira kwa ujumla. 3 ni bora inayofuata kwa kuwa pia lina maelezo mengi. - -## 🚀 Changamoto - -Jaribu kutumia mbinu ya "ishara" kwa agizo: Kamilisha sentensi "Nionyeshe picha ya gari jekundu la chapa Volvo na ". Jibu ni nini, na ungeiboresha vipi? - -## Kazi Nzuri! Endelea Kujifunza - -Unataka kujifunza zaidi kuhusu dhana tofauti za Uhandisi wa Maagizo? Tembelea [ukurasa wa kujifunza zaidi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) kupata rasilimali nyingine nzuri kuhusu mada hii. - -Nenda kwenye Somo la 5 ambapo tutaangalia [mbinu za hali ya juu za maagizo](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**Kiarifu cha Kutotegemea**: -Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kwa usahihi, tafadhali fahamu kwamba tafsiri za kiotomatiki zinaweza kuwa na makosa au upungufu wa usahihi. Hati ya asili katika lugha yake ya asili inapaswa kuchukuliwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya kitaalamu inayofanywa na binadamu inapendekezwa. Hatubebei dhamana kwa kutoelewana au tafsiri potofu zinazotokana na matumizi ya tafsiri hii. \ No newline at end of file + + + + + + + diff --git a/translations/sw/09-building-image-applications/README.md b/translations/sw/09-building-image-applications/README.md index b0ff81eb1..89d0c51ea 100644 --- a/translations/sw/09-building-image-applications/README.md +++ b/translations/sw/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# Kujenga Programu za Uundaji Picha - -[![Kujenga Programu za Uundaji Picha](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.sw.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLM siyo tu kwa ajili ya kuunda maandishi. Pia inawezekana kuunda picha kutoka kwa maelezo ya maandishi. Kuwa na picha kama njia ya mawasiliano kunaweza kuwa na manufaa makubwa katika maeneo mbalimbali kama MedTech, usanifu, utalii, maendeleo ya michezo na mengineyo. Katika sura hii, tutaangalia mifano miwili maarufu ya uundaji picha, DALL-E na Midjourney. - -## Utangulizi - -Katika somo hili, tutashughulikia: - -- Uundaji picha na kwa nini ni muhimu. -- DALL-E na Midjourney, ni nini, na jinsi zinavyofanya kazi. -- Jinsi unavyoweza kujenga programu ya uundaji picha. - -## Malengo ya Kujifunza - -Baada ya kumaliza somo hili, utaweza: - -- Kujenga programu ya uundaji picha. -- Kuweka mipaka kwa programu yako kwa kutumia meta prompts. -- Kufanya kazi na DALL-E na Midjourney. - -## Kwa nini kujenga programu ya uundaji picha? - -Programu za uundaji picha ni njia nzuri ya kuchunguza uwezo wa AI ya Kizazi. Zinaweza kutumika kwa, kwa mfano: - -- **Uhariri na muundo wa picha**. Unaweza kuunda picha kwa matumizi mbalimbali, kama uhariri wa picha na muundo wa picha. - -- **Kutumika katika sekta mbalimbali**. Pia zinaweza kutumika kuunda picha kwa sekta mbalimbali kama Medtech, Utalii, Maendeleo ya michezo na mengineyo. - -## Hali ya Mfano: Edu4All - -Kama sehemu ya somo hili, tutaendelea kufanya kazi na startup yetu, Edu4All. Wanafunzi wataunda picha kwa ajili ya tathmini zao, ni picha gani hasa ni kwa wanafunzi kuamua, lakini zinaweza kuwa michoro ya hadithi zao au kuunda mhusika mpya kwa hadithi yao au kuwasaidia kuona mawazo na dhana zao. - -Hapa ni mfano wa picha wanafunzi wa Edu4All wanaweza kuunda ikiwa wanajifunza darasani kuhusu miji ya kihistoria: - -![Edu4All startup, class on monuments, Eiffel Tower](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.sw.png) - -wakitumia maelekezo kama - -> "Mbwa kando ya Mnara wa Eiffel asubuhi mapema akielea jua" - -## DALL-E na Midjourney ni nini? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) na [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) ni mifano miwili maarufu ya uundaji picha, inakuwezesha kutumia maelekezo kuunda picha. - -### DALL-E - -Tuanze na DALL-E, ambayo ni mfano wa AI ya Kizazi inayounda picha kutoka kwa maelezo ya maandishi. - -> [DALL-E ni mchanganyiko wa mifano miwili, CLIP na diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP**, ni mfano unaounda embeddings, ambazo ni uwakilishi wa nambari wa data, kutoka kwa picha na maandishi. - -- **Diffused attention**, ni mfano unaounda picha kutoka kwa embeddings. DALL-E imefundishwa kwa seti ya picha na maandishi na inaweza kutumika kuunda picha kutoka kwa maelezo ya maandishi. Kwa mfano, DALL-E inaweza kutumika kuunda picha ya paka akiwa na kofia, au mbwa akiwa na mohawk. - -### Midjourney - -Midjourney hufanya kazi kwa njia inayofanana na DALL-E, inaunda picha kutoka kwa maelekezo ya maandishi. Midjourney pia inaweza kutumika kuunda picha kwa kutumia maelekezo kama “paka akiwa na kofia”, au “mbwa akiwa na mohawk”. - -![Image generated by Midjourney, mechanical pigeon](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Picha imetolewa na Wikipedia, picha iliyoundwa na Midjourney_ - -## DALL-E na Midjourney hufanya kazi vipi - -Kwanza, [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). DALL-E ni mfano wa AI ya Kizazi unaotegemea usanifu wa transformer na _autoregressive transformer_. - -_Autoregressive transformer_ inaeleza jinsi mfano unavyounda picha kutoka kwa maelezo ya maandishi, huunda pixel moja kwa moja, kisha hutumia pixel zilizoundwa kuunda pixel inayofuata. Hupitia tabaka mbalimbali katika mtandao wa neva, hadi picha itakapokamilika. - -Kwa mchakato huu, DALL-E hudhibiti sifa, vitu, tabia, na zaidi katika picha inayoundwa. Hata hivyo, DALL-E 2 na 3 zina udhibiti zaidi juu ya picha inayoundwa. - -## Kujenga programu yako ya kwanza ya uundaji picha - -Basi, inachukua nini kujenga programu ya uundaji picha? Unahitaji maktaba zifuatazo: - -- **python-dotenv**, inashauriwa sana kutumia maktaba hii kuweka siri zako katika faili la _.env_ mbali na msimbo. -- **openai**, maktaba hii ndiyo utakayotumia kuwasiliana na API ya OpenAI. -- **pillow**, kwa ajili ya kufanya kazi na picha katika Python. -- **requests**, kusaidia kutuma maombi ya HTTP. - -1. Tengeneza faili _.env_ yenye maudhui yafuatayo: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Tafuta taarifa hii katika Azure Portal kwa rasilimali yako katika sehemu ya "Keys and Endpoint". - -1. Kusanya maktaba zilizotajwa katika faili liitwalo _requirements.txt_ kama ifuatavyo: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. Kisha, tengeneza mazingira ya virtual na usakinishe maktaba: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Kwa Windows, tumia amri zifuatazo kuunda na kuanzisha mazingira ya virtual: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. Ongeza msimbo ufuatao katika faili liitwalo _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Hebu tuelezee msimbo huu: - -- Kwanza, tunaingiza maktaba tunazohitaji, ikiwa ni pamoja na maktaba ya OpenAI, dotenv, requests, na Pillow. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Kisha, tunapakia mabadiliko ya mazingira kutoka kwa faili _.env_. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- Baadaye, tunaweka endpoint, ufunguo wa API ya OpenAI, toleo na aina. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- Kisha, tunaunda picha: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - Msimbo huu unajibu na kitu cha JSON chenye URL ya picha iliyoundwa. Tunaweza kutumia URL hii kupakua picha na kuihifadhi kwenye faili. - -- Mwishowe, tunafungua picha na kutumia mtazamaji wa picha wa kawaida kuionyesha: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Maelezo zaidi kuhusu uundaji picha - -Tazama msimbo unaounda picha kwa undani zaidi: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt**, ni maelekezo ya maandishi yanayotumika kuunda picha. Katika kesi hii, tunatumia maelekezo "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils". -- **size**, ni ukubwa wa picha inayoundwa. Hapa, tunaunda picha yenye ukubwa wa 1024x1024 pixels. -- **n**, ni idadi ya picha zinazoundwa. Hapa, tunaunda picha mbili. -- **temperature**, ni kipimo kinachodhibiti nasibu ya matokeo ya mfano wa AI ya Kizazi. Joto ni thamani kati ya 0 na 1 ambapo 0 ina maana matokeo ni thabiti na 1 ina maana matokeo ni ya nasibu. Thamani ya kawaida ni 0.7. - -Kuna mambo zaidi unayoweza kufanya na picha ambayo tutayajadili katika sehemu inayofuata. - -## Uwezo Zaidi wa Uundaji Picha - -Umeona hadi sasa jinsi tulivyoweza kuunda picha kwa mistari michache ya Python. Hata hivyo, kuna mambo zaidi unayoweza kufanya na picha. - -Unaweza pia kufanya yafuatayo: - -- **Fanya marekebisho**. Kwa kutoa picha iliyopo, mask na maelekezo, unaweza kubadilisha picha. Kwa mfano, unaweza kuongeza kitu sehemu ya picha. Fikiria picha yetu ya sungura, unaweza kuongeza kofia kwa sungura. Unavyofanya hivyo ni kwa kutoa picha, mask (kuonyesha sehemu ya eneo la mabadiliko) na maelekezo ya maandishi kueleza kinachotakiwa kufanywa. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - Picha ya msingi itakuwa na sungura tu lakini picha ya mwisho itakuwa na kofia juu ya sungura. - -- **Tengeneza mabadiliko**. Wazo ni kuchukua picha iliyopo na kuomba mabadiliko ya picha hiyo. Kutengeneza mabadiliko, unatoa picha na maelekezo ya maandishi na msimbo kama ifuatavyo: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Kumbuka, hii inaungwa mkono tu na OpenAI - -## Joto (Temperature) - -Joto ni kipimo kinachodhibiti nasibu ya matokeo ya mfano wa AI ya Kizazi. Joto ni thamani kati ya 0 na 1 ambapo 0 ina maana matokeo ni thabiti na 1 ina maana matokeo ni ya nasibu. Thamani ya kawaida ni 0.7. - -Tazama mfano wa jinsi joto linavyofanya kazi, kwa kuendesha maelekezo haya mara mbili: - -> Maelekezo: "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils" - -![Bunny on a horse holding a lollipop, version 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.sw.png) - -Sasa tuchukue maelekezo hayo tena kuona kwamba hatutapata picha ile ile mara mbili: - -![Generated image of bunny on horse](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.sw.png) - -Kama unavyoona, picha zinafanana, lakini si sawa kabisa. Hebu jaribu kubadilisha thamani ya joto kuwa 0.1 na tazama kinachotokea: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Kubadilisha joto - -Basi jaribu kufanya majibu kuwa thabiti zaidi. Tunaweza kuona kutoka kwa picha mbili tulizounda kwamba katika picha ya kwanza, kuna sungura na katika picha ya pili, kuna farasi, hivyo picha zinatofautiana sana. - -Kwa hiyo, badilisha msimbo wetu na kuweka joto kuwa 0, kama ifuatavyo: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Sasa unapotekeleza msimbo huu, unapata picha hizi mbili: - -- ![Temperature 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.sw.png) -- ![Temperature 0 , v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.sw.png) - -Hapa unaweza kuona wazi jinsi picha zinavyofanana zaidi. - -## Jinsi ya kuweka mipaka kwa programu yako kwa kutumia metaprompts - -Kwa demo yetu, tayari tunaweza kuunda picha kwa wateja wetu. Hata hivyo, tunahitaji kuweka mipaka kwa programu yetu. - -Kwa mfano, hatutaki kuunda picha zisizofaa kazini, au zisizofaa kwa watoto. - -Tunaweza kufanya hivi kwa kutumia _metaprompts_. Metaprompts ni maelekezo ya maandishi yanayotumika kudhibiti matokeo ya mfano wa AI ya Kizazi. Kwa mfano, tunaweza kutumia metaprompts kudhibiti matokeo, na kuhakikisha picha zinazoundwa ni salama kazini, au zinazofaa kwa watoto. - -### Hufanya kazi vipi? - -Sasa, metaprompts hufanya kazi vipi? - -Metaprompts ni maelekezo ya maandishi yanayotumika kudhibiti matokeo ya mfano wa AI ya Kizazi, huwekwa kabla ya maelekezo ya maandishi, na hutumika kudhibiti matokeo ya mfano na huingizwa katika programu kudhibiti matokeo ya mfano. Hufunga maelekezo ya prompt na meta prompt katika maelekezo moja ya maandishi. - -Mfano mmoja wa meta prompt ungekuwa kama ifuatavyo: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Sasa, tazama jinsi tunavyoweza kutumia metaprompts katika demo yetu. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -Kutoka kwa maelekezo hapo juu, unaweza kuona jinsi picha zote zinazoundwa zinazingatia metaprompt. - -## Kazi ya Nyumbani - tuwezeshe wanafunzi - -Tulianzisha Edu4All mwanzoni mwa somo hili. Sasa ni wakati wa kuwawezesha wanafunzi kuunda picha kwa ajili ya tathmini zao. - -Wanafunzi wataunda picha za tathmini zao zenye miji ya kihistoria, ni kwa wanafunzi kuamua ni miji gani hasa. Wanafunzi wanahimizwa kutumia ubunifu wao katika kazi hii kuweka miji hiyo katika muktadha tofauti. - -## Suluhisho - -Hapa kuna suluhisho moja linalowezekana: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Kazi Nzuri! Endelea Kujifunza - -Baada ya kumaliza somo hili, tembelea [Mkusanyiko wetu wa Kujifunza AI ya Kizazi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) ili kuendelea kuongeza ujuzi wako wa AI ya Kizazi! - -Nenda kwenye Somo la 10 ambapo tutaangalia jinsi ya [kujenga programu za AI kwa kutumia low-code](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**Kiarifu cha Kutotegemea**: -Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kwa usahihi, tafadhali fahamu kuwa tafsiri za kiotomatiki zinaweza kuwa na makosa au upungufu wa usahihi. Hati ya asili katika lugha yake ya asili inapaswa kuchukuliwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya kitaalamu inayofanywa na binadamu inapendekezwa. Hatubebei dhamana kwa kutoelewana au tafsiri potofu zinazotokana na matumizi ya tafsiri hii. \ No newline at end of file + + + + diff --git a/translations/sw/12-designing-ux-for-ai-applications/README.md b/translations/sw/12-designing-ux-for-ai-applications/README.md index f0c1a95dd..fdf844335 100644 --- a/translations/sw/12-designing-ux-for-ai-applications/README.md +++ b/translations/sw/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# Kubuni UX kwa Programu za AI - -[![Kubuni UX kwa Programu za AI](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.sw.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Bonyeza picha hapo juu kutazama video ya somo hili)_ - -Uzoefu wa mtumiaji ni sehemu muhimu sana katika kujenga programu. Watumiaji wanahitaji kuwa na uwezo wa kutumia programu yako kwa njia bora ili kutekeleza kazi. Kuwa na ufanisi ni jambo moja lakini pia unahitaji kubuni programu ambazo zinaweza kutumiwa na kila mtu, ili kuzifanya _kupatikana kwa wote_. Sura hii itazingatia eneo hili ili uweze kubuni programu ambayo watu wanaweza na wanataka kuitumia. - -## Utangulizi - -Uzoefu wa mtumiaji ni jinsi mtumiaji anavyoshirikiana na kutumia bidhaa au huduma fulani iwe ni mfumo, chombo, au muundo. Wakati wa kuendeleza programu za AI, waendelezaji hawazingatii tu kuhakikisha uzoefu wa mtumiaji ni mzuri bali pia wa maadili. Katika somo hili, tunazungumzia jinsi ya kujenga Programu za Akili Bandia (AI) zinazokidhi mahitaji ya watumiaji. - -Somo litashughulikia maeneo yafuatayo: - -- Utangulizi wa Uzoefu wa Mtumiaji na Kuelewa Mahitaji ya Mtumiaji -- Kubuni Programu za AI kwa Ajili ya Uaminifu na Uwajibikaji -- Kubuni Programu za AI kwa Ajili ya Ushirikiano na Maoni - -## Malengo ya Kujifunza - -Baada ya kuchukua somo hili, utaweza: - -- Kuelewa jinsi ya kujenga programu za AI zinazokidhi mahitaji ya mtumiaji. -- Kubuni programu za AI zinazokuza uaminifu na ushirikiano. - -### Sharti la Awali - -Chukua muda na soma zaidi kuhusu [uzoefu wa mtumiaji na fikra za kubuni.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Utangulizi wa Uzoefu wa Mtumiaji na Kuelewa Mahitaji ya Mtumiaji - -Katika kampuni yetu ya elimu ya kubuniwa, tuna watumiaji wakuu wawili, walimu na wanafunzi. Kila mtumiaji ana mahitaji yake ya kipekee. Ubunifu unaomzingatia mtumiaji huweka mtumiaji mbele kuhakikisha bidhaa ni muhimu na zina manufaa kwa wale walizokusudiwa. - -Programu inapaswa kuwa **inayofaa, ya kuaminika, inayopatikana kwa wote na yenye kufurahisha** ili kutoa uzoefu mzuri wa mtumiaji. - -### Urahisi wa Matumizi - -Kuwa na manufaa inamaanisha programu ina kazi zinazolingana na madhumuni yake, kama vile kuendesha mchakato wa alama kiotomatiki au kutengeneza kadi za maswali kwa ajili ya marejeleo. Programu inayofanya alama kiotomatiki inapaswa kuwa na uwezo wa kutoa alama kwa usahihi na kwa ufanisi kwa kazi za wanafunzi kulingana na vigezo vilivyowekwa. Vivyo hivyo, programu inayotengeneza kadi za maswali inapaswa kuweza kuunda maswali yanayofaa na tofauti kulingana na data yake. - -### Uaminifu - -Kuwa wa kuaminika inamaanisha programu inaweza kutekeleza kazi yake kwa uthabiti na bila makosa. Hata hivyo, AI kama binadamu si kamilifu na inaweza kufanya makosa. Programu zinaweza kukumbana na makosa au hali zisizotarajiwa zinazohitaji usaidizi wa binadamu au marekebisho. Je, unashughulikiaje makosa? Katika sehemu ya mwisho ya somo hili, tutazungumzia jinsi mifumo na programu za AI zinavyobuniwa kwa ajili ya ushirikiano na maoni. - -### Upatikanaji - -Kuwa na upatikanaji inamaanisha kupanua uzoefu wa mtumiaji kwa watumiaji wenye uwezo tofauti, ikiwa ni pamoja na wale wenye ulemavu, kuhakikisha hakuna mtu anayebaki nje. Kwa kufuata miongozo na kanuni za upatikanaji, suluhisho za AI zinakuwa jumuishi zaidi, rahisi kutumia, na zenye manufaa kwa watumiaji wote. - -### Kufurahisha - -Kuwa na kufurahisha inamaanisha programu ni ya kufurahisha kutumia. Uzoefu mzuri wa mtumiaji unaweza kuwa na athari chanya kwa mtumiaji na kumhamasisha kurudi kwenye programu na kuongeza mapato ya biashara. - -![picha inayoonyesha mambo ya kuzingatia UX katika AI](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.sw.png) - -Sio kila changamoto inaweza kutatuliwa kwa AI. AI huja kusaidia uzoefu wako wa mtumiaji, iwe ni kwa kuendesha kazi za mikono kiotomatiki, au kubinafsisha uzoefu wa mtumiaji. - -## Kubuni Programu za AI kwa Ajili ya Uaminifu na Uwajibikaji - -Kujenga uaminifu ni muhimu wakati wa kubuni programu za AI. Uaminifu huhakikisha mtumiaji ana imani kuwa programu itakamilisha kazi, kutoa matokeo kwa uthabiti na matokeo ni yale mtumiaji anayotaka. Hatari katika eneo hili ni kutoaminiana na kuamini kupita kiasi. Kutoaminiana hutokea mtumiaji akiwa na imani kidogo au hana imani kabisa na mfumo wa AI, jambo linalosababisha mtumiaji kukataa programu yako. Kuamini kupita kiasi hutokea mtumiaji anapovizia uwezo wa mfumo wa AI, na kusababisha watumiaji kuamini sana mfumo wa AI. Kwa mfano, mfumo wa alama kiotomatiki katika hali ya kuamini kupita kiasi unaweza kusababisha mwalimu kutokukagua baadhi ya karatasi kuhakikisha mfumo wa alama unafanya kazi vizuri. Hii inaweza kusababisha alama zisizo za haki au zisizo sahihi kwa wanafunzi, au kupoteza fursa za maoni na maboresho. - -Njia mbili za kuhakikisha uaminifu unawekwa katikati ya muundo ni ufafanuzi na udhibiti. - -### Ufafanuzi - -Wakati AI inasaidia kutoa maamuzi kama vile kufundisha maarifa kwa vizazi vijavyo, ni muhimu kwa walimu na wazazi kuelewa jinsi maamuzi ya AI yanavyofanywa. Hii ni ufafanuzi - kuelewa jinsi programu za AI zinavyofanya maamuzi. Kubuni kwa ajili ya ufafanuzi kunajumuisha kuongeza maelezo ya mifano ya kile programu ya AI inaweza kufanya. Kwa mfano, badala ya "Anza na mwalimu wa AI", mfumo unaweza kutumia: "Fupisha maelezo yako kwa ajili ya marejeleo rahisi kwa kutumia AI." - -![ukurasa wa mwanzo wa programu unaoonyesha ufafanuzi katika programu za AI](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.sw.png) - -Mfano mwingine ni jinsi AI inavyotumia data za mtumiaji na binafsi. Kwa mfano, mtumiaji mwenye persona ya mwanafunzi anaweza kuwa na vikwazo kulingana na persona yake. AI inaweza isiweze kufichua majibu ya maswali lakini inaweza kusaidia kumwelekeza mtumiaji kufikiria jinsi ya kutatua tatizo. - -![AI ikijibu maswali kulingana na persona](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.sw.png) - -Sehemu nyingine muhimu ya ufafanuzi ni kurahisisha maelezo. Wanafunzi na walimu huenda si wataalamu wa AI, kwa hivyo maelezo ya kile programu inaweza au haiwezi kufanya yanapaswa kuwa rahisi na kueleweka kwa urahisi. - -![maelezo yaliyorahisishwa kuhusu uwezo wa AI](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.sw.png) - -### Udhibiti - -AI ya kizazi huunda ushirikiano kati ya AI na mtumiaji, ambapo kwa mfano mtumiaji anaweza kubadilisha maelekezo kwa matokeo tofauti. Zaidi ya hayo, mara baada ya matokeo kutolewa, watumiaji wanapaswa kuwa na uwezo wa kubadilisha matokeo na hivyo kupata hisia ya udhibiti. Kwa mfano, unapotumia Bing, unaweza kubinafsisha maelekezo yako kulingana na muundo, sauti na urefu. Zaidi ya hayo, unaweza kuongeza mabadiliko kwenye matokeo na kuyarekebisha kama inavyoonyeshwa hapa chini: - -![Matokeo ya utafutaji ya Bing na chaguzi za kubadilisha maelekezo na matokeo](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.sw.png) - -Sifa nyingine katika Bing inayomruhusu mtumiaji kudhibiti programu ni uwezo wa kuchagua kuingia au kutoka kwenye ukusanyaji wa data zinazotumiwa na AI. Kwa programu ya shule, mwanafunzi anaweza kutaka kutumia maelezo yake pamoja na rasilimali za walimu kama vifaa vya marejeleo. - -![Matokeo ya utafutaji ya Bing na chaguzi za kubadilisha maelekezo na matokeo](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.sw.png) - -> Wakati wa kubuni programu za AI, nia ni muhimu kuhakikisha watumiaji hawamwamini AI kupita kiasi na kuweka matarajio yasiyo halisi ya uwezo wake. Njia moja ya kufanya hivyo ni kwa kuleta ugumu kati ya maelekezo na matokeo. Kumbusha mtumiaji, kwamba hii ni AI na si binadamu mwenzako. - -## Kubuni Programu za AI kwa Ushirikiano na Maoni - -Kama ilivyotajwa awali, AI ya kizazi huunda ushirikiano kati ya mtumiaji na AI. Mwingi wa mwingiliano ni mtumiaji kuingiza maelekezo na AI kutoa matokeo. Je, matokeo ni makosa? Programu inashughulikiaje makosa yanapotokea? AI inamkashifu mtumiaji au inachukua muda kuelezea kosa? - -Programu za AI zinapaswa kujengwa kupokea na kutoa maoni. Hii si tu husaidia mfumo wa AI kuboresha bali pia hujenga uaminifu na watumiaji. Mzunguko wa maoni unapaswa kujumuishwa katika muundo, mfano unaweza kuwa kidole gumba juu au chini kwa matokeo. - -Njia nyingine ya kushughulikia hili ni kuwasilisha wazi uwezo na vikwazo vya mfumo. Wakati mtumiaji anafanya kosa kuomba kitu zaidi ya uwezo wa AI, pia inapaswa kuwepo njia ya kushughulikia hili, kama inavyoonyeshwa hapa chini. - -![Kutoa maoni na kushughulikia makosa](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.sw.png) - -Makosa ya mfumo ni ya kawaida katika programu ambapo mtumiaji anaweza kuhitaji msaada wa taarifa nje ya uwezo wa AI au programu inaweza kuwa na kikomo cha maswali/masomo ambayo mtumiaji anaweza kutengeneza muhtasari. Kwa mfano, programu ya AI iliyofunzwa kwa data ya masomo machache kama Historia na Hisabati inaweza isishughulikie maswali kuhusu Jiografia. Ili kupunguza hili, mfumo wa AI unaweza kutoa jibu kama: "Samahani, bidhaa yetu imetengenezwa kwa data ya masomo yafuatayo....., siwezi kujibu swali uliloomba." - -Programu za AI si kamilifu, kwa hivyo zitafanya makosa. Wakati wa kubuni programu zako, hakikisha unaweka nafasi ya maoni kutoka kwa watumiaji na usimamizi wa makosa kwa njia rahisi na inayoweza kueleweka kwa urahisi. - -## Kazi ya Nyumbani - -Chukua programu yoyote za AI ulizojenga hadi sasa, fikiria kutekeleza hatua zifuatazo katika programu yako: - -- **Kufurahisha:** Fikiria jinsi unavyoweza kufanya programu yako iwe ya kufurahisha zaidi. Je, unaongeza maelezo kila mahali? Je, unahamasisha mtumiaji kuchunguza? Unavyosema vipi ujumbe wa makosa? - -- **Urahisi wa Matumizi:** Kujenga programu ya wavuti. Hakikisha programu yako inaweza kuvinjariwa kwa panya na kibodi. - -- **Uaminifu na Uwajibikaji:** Usiamini AI kabisa na matokeo yake, fikiria jinsi unavyoweza kuongeza mtu katika mchakato wa kuthibitisha matokeo. Pia, fikiria na utekeleze njia nyingine za kufanikisha uaminifu na uwajibikaji. - -- **Udhibiti:** Mpe mtumiaji udhibiti wa data wanazotoa kwa programu. Tekeleza njia ambayo mtumiaji anaweza kuchagua kuingia au kutoka kwenye ukusanyaji wa data katika programu ya AI. - -## Endelea Kujifunza! - -Baada ya kumaliza somo hili, tembelea [Mkusanyiko wa Kujifunza AI ya Kizazi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) ili kuendelea kuongeza ujuzi wako wa AI ya Kizazi! - -Nenda kwenye Somo la 13, ambapo tutaangalia jinsi ya [kusalama programu za AI](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**Kiarifu cha Kutotegemea**: -Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kwa usahihi, tafadhali fahamu kuwa tafsiri za kiotomatiki zinaweza kuwa na makosa au upungufu wa usahihi. Hati ya asili katika lugha yake ya asili inapaswa kuchukuliwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya kitaalamu inayofanywa na binadamu inapendekezwa. Hatubebei dhamana kwa kutoelewana au tafsiri potofu zinazotokana na matumizi ya tafsiri hii. \ No newline at end of file + + + diff --git a/translations/sw/README.md b/translations/sw/README.md index a80982dfa..964567539 100644 --- a/translations/sw/README.md +++ b/translations/sw/README.md @@ -1,137 +1,12 @@ - -![Generative AI Kwa Waanzilishi](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.sw.png) - -### Masomo 21 yanayofundisha kila kitu unachohitaji kujua kuanza kujenga programu za Generative AI - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Msaada wa Lugha Nyingi - -#### Unaungwa mkono kupitia GitHub Action (Moja kwa moja & Daima Imeboreshwa) - -[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](./README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md) - -# Generative AI kwa Waanzilishi (Toleo la 3) - Kozi - -Jifunze misingi ya kujenga programu za Generative AI kupitia kozi yetu kamili yenye masomo 21 inayotolewa na Microsoft Cloud Advocates. - -## 🌱 Kuanzia - -Kozi hii ina masomo 21. Kila somo lina mada yake, hivyo anza popote unapotaka! - -Masomo yamegawanywa kuwa "Jifunze" yanayofafanua dhana za Generative AI au "Jenga" yanayofafanua dhana na mifano ya msimbo kwa **Python** na **TypeScript** inapowezekana. - -Kwa watengenezaji wa .NET angalia [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -Kila somo pia lina sehemu ya "Endelea Kujifunza" yenye zana za ziada za kujifunzia. - -## Unachohitaji -### Kuendesha msimbo wa kozi hii, unaweza kutumia: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **Masomo:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **Masomo:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **Masomo:** "oai-assignment" - -- Ujuzi wa msingi wa Python au TypeScript ni msaada - \*Kwa waanzilishi kabisa angalia kozi hizi za [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) na [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) -- Akaunti ya GitHub ili [kuforki repo hii yote](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) kwenye akaunti yako ya GitHub - -Tumetengeneza somo la **[Kuweka Kozi](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** kusaidia kuanzisha mazingira yako ya maendeleo. - -Usisahau [kuipa nyota (🌟) repo hii](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) ili kuipata kwa urahisi baadaye. - -## 🧠 Tayari Kuanzisha? - -Ikiwa unatafuta mifano ya msimbo ya hali ya juu zaidi, angalia [mkusanyiko wetu wa Mifano ya Msimbo wa Generative AI](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) kwa **Python** na **TypeScript**. - -## 🗣️ Kutana na Wanafunzi Wengine, Pata Msaada - -Jiunge na [server rasmi ya Azure AI Foundry Discord](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) kukutana na kuungana na wanafunzi wengine wanaochukua kozi hii na kupata msaada. - -Uliza maswali au shiriki maoni kuhusu bidhaa kwenye [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum) kwenye Github. - -## 🚀 Kujenga Startup? - -Jisajili kwa [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) kupata **mikopo ya bure ya OpenAI** na hadi **$150k kwa mikopo ya Azure kufikia mifano ya OpenAI kupitia Azure OpenAI Services**. - -## 🙏 Unataka kusaidia? - -Je, una mapendekezo au umeona makosa ya tahajia au msimbo? [Toa tatizo](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) au [Tengeneza pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 Kila somo linajumuisha: - -- Utangulizi mfupi wa video kuhusu mada -- Somo lililoandikwa kwenye README -- Mifano ya msimbo wa Python na TypeScript inayounga mkono Azure OpenAI na OpenAI API -- Viungo vya rasilimali za ziada kuendelea kujifunza - -## 🗃️ Masomo - -| # | **Kiungo cha Somo** | **Maelezo** | **Video** | **Mafunzo Zaidi** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Kuweka Kozi](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Jifunze:** Jinsi ya Kuweka Mazingira Yako ya Maendeleo | Video Itakuja Karibu | [Jifunze Zaidi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Utangulizi wa Generative AI na LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Jifunze:** Kuelewa ni nini Generative AI na jinsi Mifano Mikubwa ya Lugha (LLMs) inavyofanya kazi. | [Video](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Jifunze Zaidi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Kuchunguza na kulinganisha LLMs tofauti](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Jifunze:** Jinsi ya kuchagua mfano unaofaa kwa matumizi yako | [Video](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Jifunze Zaidi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Kutumia Generative AI kwa Uwajibikaji](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Jifunze:** Jinsi ya kujenga Programu za Generative AI kwa uwajibikaji | [Video](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Jifunze Zaidi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Kuelewa Misingi ya Uhandisi wa Prompt](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Jifunze:** Mbinu Bora za Uhandisi wa Prompt kwa vitendo | [Video](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Jifunze Zaidi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Kuunda Prompts Zinazoendelea](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Jifunze:** Jinsi ya kutumia mbinu za uhandisi wa prompt zinazoboresha matokeo ya prompts zako. | [Video](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Jifunze Zaidi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Kuunda Programu za Uundaji wa Maandishi](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Jenga:** Programu ya uundaji wa maandishi kwa kutumia Azure OpenAI / OpenAI API | [Video](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Jifunze Zaidi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Kuunda Programu za Mazungumzo](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Jenga:** Mbinu za kujenga na kuunganisha programu za mazungumzo kwa ufanisi. | [Video](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Jifunze Zaidi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Kuunda Programu za Utafutaji na Hifadhidata za Vector](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Jenga:** Programu ya utafutaji inayotumia Embeddings kutafuta data. | [Video](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Jifunze Zaidi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Kuunda Programu za Uundaji Picha](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Jenga:** Programu ya uundaji picha | [Video](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Jifunze Zaidi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Kuunda Programu za AI za Low Code](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Jenga:** Programu ya AI ya Uundaji kwa kutumia zana za Low Code | [Video](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Jifunze Zaidi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Kuunganisha Programu za Nje kwa Kupiga Simu za Function](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Jenga:** Nini maana ya kupiga simu za function na matumizi yake katika programu | [Video](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Jifunze Zaidi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [Kubuni UX kwa Programu za AI](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Jifunze:** Jinsi ya kutumia kanuni za muundo wa UX wakati wa kuendeleza Programu za AI za Uundaji | [Video](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Jifunze Zaidi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Kuhakikisha Usalama wa Programu Zako za AI za Uundaji](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Jifunze:** Vitisho na hatari kwa mifumo ya AI na njia za kuwalinda mifumo hii. | [Video](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Jifunze Zaidi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [Mzunguko wa Maisha wa Programu za AI za Uundaji](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Jifunze:** Zana na vipimo vya kusimamia Mzunguko wa Maisha wa LLM na LLMOps | [Video](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Jifunze Zaidi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Uundaji Ulioboreshwa kwa Kupata Taarifa (RAG) na Hifadhidata za Vector](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Jenga:** Programu inayotumia Mfumo wa RAG kupata embeddings kutoka Hifadhidata za Vector | [Video](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Jifunze Zaidi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Modeli za Chanzo Huria na Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Jenga:** Programu inayotumia modeli za chanzo huria zinazopatikana kwenye Hugging Face | [Video](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Jifunze Zaidi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [Wakala wa AI](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Jenga:** Programu inayotumia Mfumo wa Wakala wa AI | [Video](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Jifunze Zaidi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [Kurekebisha LLMs](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Jifunze:** Nini, kwa nini na jinsi ya kurekebisha LLMs | [Video](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Jifunze Zaidi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Kuunda na SLMs](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Jifunze:** Faida za kuunda na Small Language Models | Video Itakuja Hivi Karibuni | [Jifunze Zaidi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Kuunda na Modeli za Mistral](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Jifunze:** Sifa na tofauti za Modeli za Familia ya Mistral | Video Itakuja Hivi Karibuni | [Jifunze Zaidi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Kuunda na Modeli za Meta](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Jifunze:** Sifa na tofauti za Modeli za Familia ya Meta | Video Itakuja Hivi Karibuni | [Jifunze Zaidi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Shukrani Maalum - -Shukrani maalum kwa [**John Aziz**](https://www.linkedin.com/in/john0isaac/) kwa kuunda GitHub Actions zote na workflows - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) kwa michango muhimu katika kila somo ili kuboresha uzoefu wa mwanafunzi na wa msimbo. - -## 🎒 Kozi Nyingine - -Timu yetu hutengeneza kozi nyingine! Angalia: - -- [**MPYA** Itifaki ya Muktadha wa Modeli kwa Waanzilishi](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Wakala wa AI kwa Waanzilishi](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI ya Uundaji kwa Waanzilishi kwa kutumia .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [AI ya Uundaji kwa Waanzilishi kwa kutumia JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML kwa Waanzilishi](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Sayansi ya Data kwa Waanzilishi](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI kwa Waanzilishi](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Usalama wa Mtandao kwa Waanzilishi](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Uendelezaji wa Wavuti kwa Waanzilishi](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT kwa Waanzilishi](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [Uendelezaji wa XR kwa Waanzilishi](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Kuwa Mtaalamu wa GitHub Copilot kwa Uandishi wa Programu wa AI kwa Pamoja](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Kuwa Mtaalamu wa GitHub Copilot kwa Waendelezaji wa C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Chagua Safari Yako ya Copilot](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Kiarifu cha Kutotegemea**: -Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kwa usahihi, tafadhali fahamu kwamba tafsiri za kiotomatiki zinaweza kuwa na makosa au upungufu wa usahihi. Hati ya asili katika lugha yake ya asili inapaswa kuchukuliwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya kitaalamu inayofanywa na binadamu inapendekezwa. Hatubebei dhamana kwa kutoelewana au tafsiri potofu zinazotokana na matumizi ya tafsiri hii. \ No newline at end of file + + + + diff --git a/translations/th/00-course-setup/01-setup-cloud.md b/translations/th/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..75ff0e839 --- /dev/null +++ b/translations/th/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/th/00-course-setup/02-setup-local.md b/translations/th/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..c4b95676e --- /dev/null +++ b/translations/th/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/th/00-course-setup/03-providers.md b/translations/th/00-course-setup/03-providers.md new file mode 100644 index 000000000..1af17002b --- /dev/null +++ b/translations/th/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/th/00-course-setup/README.md b/translations/th/00-course-setup/README.md index fe9f7ebf3..1d9902b48 100644 --- a/translations/th/00-course-setup/README.md +++ b/translations/th/00-course-setup/README.md @@ -1,232 +1,12 @@ - -# เริ่มต้นกับคอร์สนี้ - -เรารู้สึกตื่นเต้นมากที่คุณจะเริ่มเรียนคอร์สนี้และได้เห็นสิ่งที่คุณจะได้รับแรงบันดาลใจในการสร้างด้วย Generative AI! - -เพื่อให้คุณประสบความสำเร็จ หน้านี้จะสรุปขั้นตอนการตั้งค่า ข้อกำหนดทางเทคนิค และแหล่งช่วยเหลือหากต้องการ - -## ขั้นตอนการตั้งค่า - -เพื่อเริ่มเรียนคอร์สนี้ คุณจะต้องทำตามขั้นตอนดังต่อไปนี้ - -### 1. Fork Repo นี้ - -[Fork repo นี้ทั้งหมด](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) ไปยังบัญชี GitHub ของคุณเอง เพื่อให้คุณสามารถแก้ไขโค้ดและทำโจทย์ท้าทายได้ นอกจากนี้คุณยังสามารถ [กดดาว (🌟) ให้ repo นี้](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) เพื่อให้ค้นหา repo นี้และ repo ที่เกี่ยวข้องได้ง่ายขึ้น - -### 2. สร้าง codespace - -เพื่อหลีกเลี่ยงปัญหาด้าน dependency เมื่อรันโค้ด เราแนะนำให้รันคอร์สนี้ใน [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst) - -คุณสามารถสร้างได้โดยเลือกตัวเลือก `Code` บนเวอร์ชันที่คุณ fork มา แล้วเลือกตัวเลือก **Codespaces** - -![Dialog showing buttons to create a codespace](../../../00-course-setup/images/who-will-pay.webp) - -### 3. การเก็บ API Keys ของคุณ - -การเก็บ API keys ให้ปลอดภัยเป็นสิ่งสำคัญเมื่อสร้างแอปพลิเคชันใดๆ เราแนะนำให้ไม่เก็บ API keys ไว้ในโค้ดโดยตรง การ commit รายละเอียดเหล่านี้ลงใน public repository อาจทำให้เกิดปัญหาด้านความปลอดภัยและค่าใช้จ่ายที่ไม่คาดคิดหากถูกนำไปใช้โดยผู้ไม่หวังดี -นี่คือคำแนะนำทีละขั้นตอนในการสร้างไฟล์ `.env` สำหรับ Python และเพิ่ม `GITHUB_TOKEN`: - -1. **ไปยังไดเรกทอรีโปรเจกต์ของคุณ**: เปิด terminal หรือ command prompt แล้วไปยังไดเรกทอรีหลักของโปรเจกต์ที่คุณต้องการสร้างไฟล์ `.env` - - ```bash - cd path/to/your/project - ``` - -2. **สร้างไฟล์ `.env`**: ใช้โปรแกรมแก้ไขข้อความที่คุณชอบเพื่อสร้างไฟล์ใหม่ชื่อ `.env` หากใช้ command line คุณสามารถใช้คำสั่ง `touch` (บนระบบ Unix) หรือ `echo` (บน Windows): - - ระบบ Unix: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **แก้ไขไฟล์ `.env`**: เปิดไฟล์ `.env` ด้วยโปรแกรมแก้ไขข้อความ (เช่น VS Code, Notepad++ หรือโปรแกรมอื่นๆ) แล้วเพิ่มบรรทัดนี้ลงไป โดยแทนที่ `your_github_token_here` ด้วย token GitHub ของคุณจริงๆ: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **บันทึกไฟล์**: บันทึกการเปลี่ยนแปลงและปิดโปรแกรมแก้ไขข้อความ - -5. **ติดตั้ง `python-dotenv`**: หากยังไม่ได้ติดตั้ง คุณต้องติดตั้งแพ็กเกจ `python-dotenv` เพื่อโหลด environment variables จากไฟล์ `.env` เข้าสู่แอป Python ของคุณ คุณสามารถติดตั้งด้วย `pip`: - - ```bash - pip install python-dotenv - ``` - -6. **โหลด environment variables ในสคริปต์ Python ของคุณ**: ในสคริปต์ Python ให้ใช้แพ็กเกจ `python-dotenv` เพื่อโหลด environment variables จากไฟล์ `.env`: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -แค่นี้ก็เรียบร้อย! คุณได้สร้างไฟล์ `.env` เพิ่ม GitHub token และโหลดเข้าแอป Python ของคุณเรียบร้อยแล้ว - -## วิธีรันโค้ดบนเครื่องของคุณ - -หากต้องการรันโค้ดบนเครื่องของคุณเอง คุณจะต้องติดตั้ง [Python เวอร์ชันใดเวอร์ชันหนึ่ง](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst) - -จากนั้นเพื่อใช้งาน repository นี้ คุณต้อง clone มายังเครื่องของคุณ: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -เมื่อคุณเตรียมทุกอย่างเรียบร้อยแล้ว ก็เริ่มต้นได้เลย! - -## ขั้นตอนเสริม (Optional Steps) - -### การติดตั้ง Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) เป็นตัวติดตั้งขนาดเล็กสำหรับติดตั้ง [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python และแพ็กเกจบางตัว -Conda เป็นตัวจัดการแพ็กเกจที่ช่วยให้ตั้งค่าและสลับไปมาระหว่าง [**virtual environments**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) และแพ็กเกจต่างๆ ได้ง่าย นอกจากนี้ยังช่วยติดตั้งแพ็กเกจที่ไม่มีใน `pip` ได้ด้วย - -คุณสามารถทำตาม [คู่มือการติดตั้ง MiniConda](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) เพื่อเริ่มใช้งาน - -เมื่อคุณติดตั้ง Miniconda แล้ว คุณต้อง clone [repository](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (ถ้ายังไม่ได้ทำ) - -ถัดไป คุณต้องสร้าง virtual environment โดยใช้ Conda สร้างไฟล์ environment ใหม่ (_environment.yml_) หากคุณใช้ Codespaces ให้สร้างไฟล์นี้ในไดเรกทอรี `.devcontainer` คือ `.devcontainer/environment.yml` - -จากนั้นเติมเนื้อหาในไฟล์ environment ด้วยโค้ดตัวอย่างด้านล่างนี้: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -ถ้าคุณเจอปัญหาในการใช้ conda คุณสามารถติดตั้ง Microsoft AI Libraries ด้วยคำสั่งนี้ใน terminal ได้เลย - -``` -conda install -c microsoft azure-ai-ml -``` - -ไฟล์ environment จะระบุ dependencies ที่เราต้องการ `` คือชื่อ environment ที่คุณต้องการใช้ และ `` คือเวอร์ชัน Python ที่คุณต้องการ เช่น `3` คือเวอร์ชันหลักล่าสุดของ Python - -เมื่อเตรียมไฟล์เสร็จแล้ว คุณสามารถสร้าง Conda environment ได้โดยรันคำสั่งด้านล่างใน command line/terminal - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -หากเจอปัญหาใดๆ ให้ดูที่ [คู่มือ Conda environments](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst) - -### การใช้ Visual Studio Code กับส่วนขยาย Python support - -เราแนะนำให้ใช้ [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) พร้อมติดตั้ง [ส่วนขยาย Python support](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) สำหรับคอร์สนี้ อย่างไรก็ตาม นี่เป็นเพียงคำแนะนำ ไม่ใช่ข้อบังคับ - -> **หมายเหตุ**: เมื่อเปิด repository ของคอร์สใน VS Code คุณสามารถตั้งค่าโปรเจกต์ภายใน container ได้ เพราะใน repository มีไดเรกทอรีพิเศษ [`.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) อยู่ รายละเอียดเพิ่มเติมจะกล่าวถึงในภายหลัง - -> **หมายเหตุ**: เมื่อคุณ clone และเปิดไดเรกทอรีใน VS Code โปรแกรมจะแนะนำให้ติดตั้งส่วนขยาย Python support อัตโนมัติ - -> **หมายเหตุ**: หาก VS Code แนะนำให้เปิด repository ใหม่ใน container ให้ปฏิเสธคำขอนี้เพื่อใช้ Python ที่ติดตั้งในเครื่องแทน - -### การใช้ Jupyter ในเบราว์เซอร์ - -คุณยังสามารถทำงานกับโปรเจกต์นี้โดยใช้ [Jupyter environment](https://jupyter.org?WT.mc_id=academic-105485-koreyst) ผ่านเบราว์เซอร์ได้ ทั้ง Jupyter แบบคลาสสิกและ [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) มีสภาพแวดล้อมการพัฒนาที่ดีพร้อมฟีเจอร์อย่าง auto-completion, การเน้นโค้ด ฯลฯ - -เพื่อเริ่ม Jupyter บนเครื่อง ให้เปิด terminal/command line ไปยังไดเรกทอรีของคอร์ส แล้วรันคำสั่งนี้: - -```bash -jupyter notebook -``` - -หรือ - -```bash -jupyterhub -``` - -คำสั่งนี้จะเริ่ม Jupyter instance และแสดง URL สำหรับเข้าถึงในหน้าต่าง command line - -เมื่อคุณเข้าถึง URL แล้ว คุณจะเห็นโครงร่างคอร์สและสามารถเปิดไฟล์ `*.ipynb` ใดก็ได้ เช่น `08-building-search-applications/python/oai-solution.ipynb` - -### การรันใน container - -อีกทางเลือกหนึ่งแทนการตั้งค่าทุกอย่างบนเครื่องหรือ Codespace คือการใช้ [container](../../../00-course-setup/) -ไดเรกทอรีพิเศษ `.devcontainer` ใน repository ของคอร์สช่วยให้ VS Code ตั้งค่าโปรเจกต์ภายใน container ได้ -นอกเหนือจาก Codespaces คุณจะต้องติดตั้ง Docker และค่อนข้างซับซ้อน จึงแนะนำสำหรับผู้ที่มีประสบการณ์กับ container เท่านั้น - -วิธีที่ดีที่สุดในการเก็บ API keys ให้ปลอดภัยเมื่อใช้ GitHub Codespaces คือการใช้ Codespace Secrets -โปรดดูคำแนะนำ [การจัดการความลับใน Codespaces](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) เพื่อเรียนรู้เพิ่มเติม - -## บทเรียนและข้อกำหนดทางเทคนิค - -คอร์สนี้มีบทเรียนเชิงแนวคิด 6 บท และบทเรียนเขียนโค้ด 6 บท - -สำหรับบทเรียนเขียนโค้ด เราใช้ Azure OpenAI Service คุณจะต้องมีสิทธิ์เข้าถึง Azure OpenAI service และ API key เพื่อรันโค้ดนี้ คุณสามารถสมัครขอสิทธิ์ได้โดย [กรอกใบสมัครนี้](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst) - -ในระหว่างรอการอนุมัติใบสมัคร บทเรียนเขียนโค้ดแต่ละบทจะมีไฟล์ `README.md` ที่คุณสามารถดูโค้ดและผลลัพธ์ได้ - -## การใช้ Azure OpenAI Service ครั้งแรก - -หากนี่เป็นครั้งแรกที่คุณใช้ Azure OpenAI service โปรดทำตามคำแนะนำนี้เกี่ยวกับวิธี [สร้างและปรับใช้ Azure OpenAI Service resource](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## การใช้ OpenAI API ครั้งแรก - -หากนี่เป็นครั้งแรกที่คุณใช้ OpenAI API โปรดทำตามคำแนะนำเกี่ยวกับวิธี [สร้างและใช้งาน Interface](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## พบปะผู้เรียนคนอื่นๆ - -เราได้สร้างช่องทางในเซิร์ฟเวอร์ [AI Community Discord อย่างเป็นทางการ](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) เพื่อให้ผู้เรียนได้พบปะกัน นี่เป็นวิธีที่ดีในการสร้างเครือข่ายกับผู้ประกอบการ นักพัฒนา นักศึกษา และใครก็ตามที่ต้องการพัฒนาทักษะใน Generative AI - -[![Join discord channel](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -ทีมโปรเจกต์จะอยู่ใน Discord นี้เพื่อช่วยเหลือผู้เรียนทุกคน - -## การมีส่วนร่วม - -คอร์สนี้เป็นโครงการโอเพนซอร์ส หากคุณพบจุดที่ควรปรับปรุงหรือปัญหาใดๆ โปรดสร้าง [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) หรือลงบันทึก [GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) - -ทีมโปรเจกต์จะติดตามการมีส่วนร่วมทั้งหมด การมีส่วนร่วมในโอเพนซอร์สเป็นวิธีที่ยอดเยี่ยมในการสร้างอาชีพใน Generative AI - -ส่วนใหญ่การมีส่วนร่วมจะต้องยอมรับ Contributor License Agreement (CLA) ซึ่งเป็นข้อตกลงว่าคุณมีสิทธิ์และอนุญาตให้เราใช้ผลงานของคุณ -ดูรายละเอียดได้ที่ [เว็บไซต์ CLA, Contributor License Agreement](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst) - -สำคัญ: เมื่อแปลข้อความใน repo นี้ โปรดอย่าใช้การแปลด้วยเครื่อง เราจะตรวจสอบการแปลผ่านชุมชน ดังนั้นโปรดอาสาแปลเฉพาะภาษาที่คุณมีความชำนาญเท่านั้น - -เมื่อคุณส่ง pull request CLA-bot จะตรวจสอบโดยอัตโนมัติว่าคุณต้องส่ง CLA หรือไม่ และจะติดป้ายกำกับหรือคอมเมนต์ใน PR ตามนั้น -เพียงทำตามคำแนะนำของบอท คุณจะต้องทำเพียงครั้งเดียวสำหรับทุก repo ที่ใช้ CLA ของเรา - -โครงการนี้ได้นำ [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst) มาใช้ -สำหรับข้อมูลเพิ่มเติม อ่าน FAQ ของ Code of Conduct หรือติดต่อ [Email opencode](opencode@microsoft.com) หากมีคำถามหรือข้อเสนอแนะเพิ่มเติม - -## เริ่มกันเลย - -ตอนนี้คุณได้ทำตามขั้นตอนที่จำเป็นสำหรับคอร์สนี้แล้ว มาเริ่มต้นด้วยการ [แนะนำเกี่ยวกับ Generative AI และ LLMs](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) กันเลย! - -**ข้อจำกัดความรับผิดชอบ**: -เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษาอัตโนมัติ [Co-op Translator](https://github.com/Azure/co-op-translator) แม้เราจะพยายามให้ความถูกต้องสูงสุด แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาต้นทางถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลโดยผู้เชี่ยวชาญมนุษย์ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดใด ๆ ที่เกิดจากการใช้การแปลนี้ \ No newline at end of file + + + + diff --git a/translations/th/00-course-setup/SETUP.md b/translations/th/00-course-setup/SETUP.md deleted file mode 100644 index 5a5a7d22b..000000000 --- a/translations/th/00-course-setup/SETUP.md +++ /dev/null @@ -1,149 +0,0 @@ - -# ตั้งค่าสภาพแวดล้อมสำหรับนักพัฒนา - -เราตั้งค่าที่เก็บนี้และคอร์สด้วย [development container](https://containers.dev?WT.mc_id=academic-105485-koreyst) ที่มี Universal runtime รองรับการพัฒนา Python3, .NET, Node.js และ Java การตั้งค่าที่เกี่ยวข้องถูกกำหนดไว้ในไฟล์ `devcontainer.json` ซึ่งอยู่ในโฟลเดอร์ `.devcontainer/` ที่รูทของที่เก็บนี้ - -เพื่อเปิดใช้งาน dev container ให้เปิดใน [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (สำหรับ runtime ที่โฮสต์บนคลาวด์) หรือใน [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (สำหรับ runtime ที่โฮสต์บนเครื่องท้องถิ่น) อ่าน [เอกสารนี้](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) เพื่อดูรายละเอียดเพิ่มเติมเกี่ยวกับการทำงานของ dev containers ใน VS Code - -> [!TIP] -> เราแนะนำให้ใช้ GitHub Codespaces เพื่อเริ่มต้นอย่างรวดเร็วและง่ายดาย โดยมี [โควต้าการใช้งานฟรี](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) ที่มากพอสำหรับบัญชีส่วนตัว ตั้งค่า [timeouts](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) เพื่อหยุดหรือยกเลิก codespaces ที่ไม่ใช้งาน เพื่อใช้โควต้าให้คุ้มค่าที่สุด - - -## 1. การรันงานที่ได้รับมอบหมาย - -แต่ละบทเรียนจะมีงานที่ _ไม่บังคับ_ ซึ่งอาจมีให้ในหนึ่งหรือหลายภาษาโปรแกรม เช่น Python, .NET/C#, Java และ JavaScript/TypeScript ส่วนนี้ให้คำแนะนำทั่วไปเกี่ยวกับการรันงานเหล่านั้น - -### 1.1 งาน Python - -งาน Python จะมีให้ในรูปแบบแอปพลิเคชัน (`.py` ไฟล์) หรือ Jupyter notebooks (`.ipynb` ไฟล์) -- ในการรัน notebook ให้เปิดใน Visual Studio Code แล้วคลิก _Select Kernel_ (มุมบนขวา) และเลือกตัวเลือก Python 3 เริ่มต้น จากนั้นคุณสามารถ _Run All_ เพื่อรัน notebook ได้เลย -- ในการรันแอป Python จาก command-line ให้ทำตามคำแนะนำเฉพาะของงานเพื่อเลือกไฟล์ที่ถูกต้องและใส่อาร์กิวเมนต์ที่จำเป็น - -## 2. การตั้งค่าผู้ให้บริการ - -งานที่ได้รับมอบหมาย **อาจ** ถูกตั้งค่าให้ทำงานกับการใช้งาน Large Language Model (LLM) ผ่านผู้ให้บริการที่รองรับ เช่น OpenAI, Azure หรือ Hugging Face ซึ่งให้ _hosted endpoint_ (API) ที่เราสามารถเข้าถึงได้โดยโปรแกรมด้วยข้อมูลรับรองที่ถูกต้อง (API key หรือ token) ในคอร์สนี้ เราจะพูดถึงผู้ให้บริการเหล่านี้: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) ที่มีโมเดลหลากหลายรวมถึงซีรีส์ GPT หลัก - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) สำหรับโมเดล OpenAI ที่เน้นความพร้อมใช้งานในองค์กร - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) สำหรับโมเดลโอเพ่นซอร์สและ inference server - -**คุณจะต้องใช้บัญชีของตัวเองสำหรับแบบฝึกหัดเหล่านี้** งานที่ได้รับมอบหมายเป็นแบบไม่บังคับ คุณสามารถเลือกตั้งค่าเพียงหนึ่ง รายการทั้งหมด หรือไม่ตั้งค่าเลยก็ได้ตามความสนใจ คำแนะนำสำหรับการสมัคร: - -| สมัคร | ค่าใช้จ่าย | API Key | Playground | หมายเหตุ | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst)| [ราคา](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst)| [ตามโปรเจกต์](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [ไม่ต้องเขียนโค้ด, เว็บ](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | มีโมเดลหลายตัวให้เลือก | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst)| [ราคา](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst)| [เริ่มต้นด้วย SDK](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst)| [เริ่มต้นด้วย Studio](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [ต้องสมัครล่วงหน้าเพื่อขอสิทธิ์](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst)| -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [ราคา](https://huggingface.co/pricing) | [Access Tokens](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst)| [Hugging Chat มีโมเดลจำกัด](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -ทำตามคำแนะนำด้านล่างเพื่อ _ตั้งค่า_ ที่เก็บนี้ให้ใช้งานกับผู้ให้บริการต่างๆ งานที่ต้องการผู้ให้บริการเฉพาะจะมีแท็กเหล่านี้ในชื่อไฟล์: - - `aoai` - ต้องใช้ Azure OpenAI endpoint และ key - - `oai` - ต้องใช้ OpenAI endpoint และ key - - `hf` - ต้องใช้ Hugging Face token - -คุณสามารถตั้งค่าได้หนึ่ง รายการทั้งหมด หรือไม่ตั้งค่าเลย งานที่เกี่ยวข้องจะเกิดข้อผิดพลาดหากขาดข้อมูลรับรอง - -### 2.1. สร้างไฟล์ `.env` - -เราสมมติว่าคุณได้อ่านคำแนะนำข้างต้นและสมัครผู้ให้บริการที่เกี่ยวข้องแล้ว พร้อมได้รับข้อมูลรับรองการยืนยันตัวตนที่จำเป็น (API_KEY หรือ token) สำหรับ Azure OpenAI เราสมมติว่าคุณมีการใช้งาน Azure OpenAI Service (endpoint) ที่ถูกตั้งค่าและมีโมเดล GPT อย่างน้อยหนึ่งตัวสำหรับ chat completion - -ขั้นตอนถัดไปคือการตั้งค่า **ตัวแปรสภาพแวดล้อมในเครื่อง** ดังนี้: - - -1. มองหาไฟล์ `.env.copy` ในโฟลเดอร์รูท ซึ่งควรมีเนื้อหาประมาณนี้: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. คัดลอกไฟล์นั้นเป็น `.env` โดยใช้คำสั่งด้านล่าง ไฟล์นี้จะถูก _gitignore_ เพื่อเก็บความลับให้ปลอดภัย - - ```bash - cp .env.copy .env - ``` - -3. กรอกค่าต่างๆ (แทนที่ตัวแทนที่อยู่ข้างขวาของ `=`) ตามที่อธิบายในส่วนถัดไป - -3. (ตัวเลือก) หากคุณใช้ GitHub Codespaces คุณสามารถบันทึกตัวแปรสภาพแวดล้อมเป็น _Codespaces secrets_ ที่เชื่อมโยงกับที่เก็บนี้ได้ ในกรณีนั้นคุณไม่จำเป็นต้องตั้งค่าไฟล์ .env ในเครื่อง **แต่โปรดทราบว่าตัวเลือกนี้ใช้ได้เฉพาะกับ GitHub Codespaces เท่านั้น** หากใช้ Docker Desktop คุณยังต้องตั้งค่าไฟล์ .env ในเครื่องอยู่ - - -### 2.2. กรอกข้อมูลในไฟล์ `.env` - -มาดูชื่อของตัวแปรเพื่อเข้าใจว่ามีความหมายอย่างไร: - -| ตัวแปร | คำอธิบาย | -| :--- | :--- | -| HUGGING_FACE_API_KEY | คือ token การเข้าถึงของผู้ใช้ที่คุณตั้งค่าในโปรไฟล์ | -| OPENAI_API_KEY | คือคีย์อนุญาตสำหรับใช้บริการ OpenAI ที่ไม่ใช่ Azure | -| AZURE_OPENAI_API_KEY | คือคีย์อนุญาตสำหรับใช้บริการ Azure OpenAI | -| AZURE_OPENAI_ENDPOINT | คือ endpoint ที่ถูก deploy สำหรับ Azure OpenAI resource | -| AZURE_OPENAI_DEPLOYMENT | คือ endpoint สำหรับโมเดล _text generation_ ที่ deploy | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | คือ endpoint สำหรับโมเดล _text embeddings_ ที่ deploy | -| | | - -หมายเหตุ: ตัวแปร Azure OpenAI สองตัวสุดท้ายนี้ใช้สำหรับโมเดลเริ่มต้นที่ใช้ในการ chat completion (text generation) และการค้นหาเวกเตอร์ (embeddings) ตามลำดับ คำแนะนำการตั้งค่าจะระบุไว้ในงานที่เกี่ยวข้อง - - -### 2.3 ตั้งค่า Azure: จาก Portal - -ค่าของ Azure OpenAI endpoint และ key จะพบได้ใน [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) ดังนั้นเริ่มต้นที่นั่น - -1. ไปที่ [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -1. คลิกที่ตัวเลือก **Keys and Endpoint** ในแถบเมนูด้านข้าง (เมนูซ้าย) -1. คลิก **Show Keys** - คุณจะเห็น KEY 1, KEY 2 และ Endpoint -1. ใช้ค่า KEY 1 สำหรับ AZURE_OPENAI_API_KEY -1. ใช้ค่า Endpoint สำหรับ AZURE_OPENAI_ENDPOINT - -ถัดไป เราต้องการ endpoint สำหรับโมเดลที่เราติดตั้งไว้ - -1. คลิกตัวเลือก **Model deployments** ในแถบเมนูด้านข้าง (เมนูซ้าย) ของ Azure OpenAI resource -1. ในหน้าปลายทาง คลิก **Manage Deployments** - -จะพาคุณไปยังเว็บไซต์ Azure OpenAI Studio ซึ่งเราจะหาค่าที่เหลือตามที่อธิบายด้านล่าง - -### 2.4 ตั้งค่า Azure: จาก Studio - -1. ไปที่ [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **จาก resource ของคุณ** ตามที่อธิบายไว้ข้างต้น -1. คลิกแท็บ **Deployments** (แถบด้านข้างซ้าย) เพื่อดูโมเดลที่ติดตั้งอยู่ในปัจจุบัน -1. หากโมเดลที่ต้องการยังไม่ได้ติดตั้ง ให้ใช้ **Create new deployment** เพื่อติดตั้งโมเดลนั้น -1. คุณจะต้องมีโมเดล _text-generation_ — เราแนะนำ: **gpt-35-turbo** -1. คุณจะต้องมีโมเดล _text-embedding_ — เราแนะนำ **text-embedding-ada-002** - -ตอนนี้อัปเดตตัวแปรสภาพแวดล้อมให้ตรงกับชื่อ _Deployment name_ ที่ใช้ โดยปกติจะเหมือนกับชื่อโมเดล เว้นแต่คุณจะเปลี่ยนชื่อเอง เช่น: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**อย่าลืมบันทึกไฟล์ .env เมื่อเสร็จแล้ว** คุณสามารถปิดไฟล์และกลับไปทำตามคำแนะนำสำหรับการรัน notebook ต่อได้ - -### 2.5 ตั้งค่า OpenAI: จากโปรไฟล์ - -คีย์ API ของ OpenAI ของคุณจะพบได้ใน [บัญชี OpenAI ของคุณ](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) หากยังไม่มี คุณสามารถสมัครบัญชีและสร้าง API key ได้ เมื่อได้คีย์แล้ว ให้นำไปกรอกในตัวแปร `OPENAI_API_KEY` ในไฟล์ `.env` - -### 2.6 ตั้งค่า Hugging Face: จากโปรไฟล์ - -token ของ Hugging Face จะพบได้ในโปรไฟล์ของคุณที่ [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst) อย่าโพสต์หรือแชร์ token เหล่านี้สู่สาธารณะ ให้สร้าง token ใหม่สำหรับใช้งานในโปรเจกต์นี้และคัดลอกไปใส่ในไฟล์ `.env` ในตัวแปร `HUGGING_FACE_API_KEY` _หมายเหตุ:_ นี่ไม่ใช่ API key จริงๆ แต่ใช้สำหรับการยืนยันตัวตน ดังนั้นจึงใช้ชื่อนี้เพื่อความสอดคล้องกัน - -**ข้อจำกัดความรับผิดชอบ**: -เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษาอัตโนมัติ [Co-op Translator](https://github.com/Azure/co-op-translator) แม้เราจะพยายามให้ความถูกต้องสูงสุด แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาต้นทางถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลโดยผู้เชี่ยวชาญมนุษย์ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดใด ๆ ที่เกิดจากการใช้การแปลนี้ \ No newline at end of file diff --git a/translations/th/04-prompt-engineering-fundamentals/README.md b/translations/th/04-prompt-engineering-fundamentals/README.md index c23ad81f7..5a62c6ed0 100644 --- a/translations/th/04-prompt-engineering-fundamentals/README.md +++ b/translations/th/04-prompt-engineering-fundamentals/README.md @@ -1,446 +1,15 @@ - -# พื้นฐานการออกแบบ Prompt - -[![Prompt Engineering Fundamentals](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.th.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## บทนำ -โมดูลนี้ครอบคลุมแนวคิดและเทคนิคสำคัญสำหรับการสร้าง prompt ที่มีประสิทธิภาพในโมเดล AI สร้างสรรค์ วิธีการเขียน prompt ให้กับ LLM ก็มีความสำคัญเช่นกัน Prompt ที่ถูกออกแบบอย่างรอบคอบจะช่วยให้ได้คำตอบที่มีคุณภาพดียิ่งขึ้น แต่คำว่า _prompt_ และ _prompt engineering_ นั้นหมายถึงอะไร? แล้วเราจะปรับปรุง _input_ ของ prompt ที่ส่งไปยัง LLM ได้อย่างไร? คำถามเหล่านี้คือสิ่งที่เราจะพยายามตอบในบทนี้และบทถัดไป - -_Generative AI_ สามารถสร้างเนื้อหาใหม่ (เช่น ข้อความ รูปภาพ เสียง โค้ด ฯลฯ) ตามคำขอของผู้ใช้ โดยใช้ _Large Language Models_ เช่นชุด GPT ของ OpenAI ("Generative Pre-trained Transformer") ที่ถูกฝึกให้เข้าใจภาษาธรรมชาติและโค้ด - -ผู้ใช้สามารถโต้ตอบกับโมเดลเหล่านี้ผ่านรูปแบบที่คุ้นเคย เช่น การแชท โดยไม่จำเป็นต้องมีความรู้ทางเทคนิคหรือการฝึกอบรม โมเดลเหล่านี้เป็นแบบ _prompt-based_ — ผู้ใช้ส่งข้อความ (prompt) และได้รับคำตอบจาก AI (completion) จากนั้นสามารถ "แชทกับ AI" แบบหลายรอบ ปรับแต่ง prompt ไปเรื่อยๆ จนกว่าคำตอบจะตรงกับความคาดหวัง - -"Prompt" จึงกลายเป็น _อินเทอร์เฟซการเขียนโปรแกรม_ หลักสำหรับแอป AI สร้างสรรค์ บอกโมเดลว่าต้องทำอะไรและมีผลต่อคุณภาพของคำตอบที่ได้ "Prompt Engineering" คือสาขาที่เติบโตอย่างรวดเร็วซึ่งเน้นการ _ออกแบบและปรับแต่ง_ prompt เพื่อให้ได้คำตอบที่สม่ำเสมอและมีคุณภาพในระดับใหญ่ - -## เป้าหมายการเรียนรู้ - -ในบทเรียนนี้ เราจะเรียนรู้ว่า Prompt Engineering คืออะไร ทำไมจึงสำคัญ และเราจะสร้าง prompt ที่มีประสิทธิภาพมากขึ้นสำหรับโมเดลและวัตถุประสงค์ของแอปพลิเคชันได้อย่างไร เราจะเข้าใจแนวคิดหลักและแนวทางปฏิบัติที่ดีที่สุดสำหรับ prompt engineering รวมถึงเรียนรู้เกี่ยวกับสภาพแวดล้อม "sandbox" แบบโต้ตอบใน Jupyter Notebooks ที่เราสามารถเห็นแนวคิดเหล่านี้ถูกนำไปใช้กับตัวอย่างจริง - -เมื่อจบบทเรียนนี้ เราจะสามารถ: - -1. อธิบายว่า prompt engineering คืออะไรและทำไมจึงสำคัญ -2. บรรยายส่วนประกอบของ prompt และวิธีการใช้งาน -3. เรียนรู้แนวทางปฏิบัติที่ดีที่สุดและเทคนิคสำหรับ prompt engineering -4. นำเทคนิคที่เรียนรู้ไปใช้กับตัวอย่างจริง โดยใช้ OpenAI endpoint - -## คำศัพท์สำคัญ - -Prompt Engineering: การออกแบบและปรับแต่ง input เพื่อชี้นำโมเดล AI ให้สร้างผลลัพธ์ที่ต้องการ -Tokenization: กระบวนการแปลงข้อความเป็นหน่วยย่อยที่เรียกว่า tokens ซึ่งโมเดลสามารถเข้าใจและประมวลผลได้ -Instruction-Tuned LLMs: โมเดลภาษาใหญ่ (LLMs) ที่ถูกปรับแต่งเพิ่มเติมด้วยคำสั่งเฉพาะเพื่อเพิ่มความแม่นยำและความเกี่ยวข้องของคำตอบ - -## Learning Sandbox - -Prompt engineering ในปัจจุบันยังถือเป็นศิลปะมากกว่าวิทยาศาสตร์ วิธีที่ดีที่สุดในการพัฒนาสัญชาตญาณคือ _ฝึกฝนบ่อยๆ_ และใช้วิธีลองผิดลองถูกที่ผสมผสานความเชี่ยวชาญในโดเมนกับเทคนิคที่แนะนำและการปรับแต่งเฉพาะโมเดล - -Jupyter Notebook ที่มาพร้อมบทเรียนนี้เป็นสภาพแวดล้อม _sandbox_ ที่คุณสามารถทดลองสิ่งที่เรียนรู้ได้ทันที หรือใช้เป็นส่วนหนึ่งของโจทย์โค้ดท้ายบท ในการทำแบบฝึกหัด คุณจะต้องมี: - -1. **คีย์ Azure OpenAI API** — จุดเชื่อมต่อบริการสำหรับ LLM ที่ติดตั้งใช้งาน -2. **Python Runtime** — สำหรับรัน Notebook -3. **ตัวแปรสภาพแวดล้อมในเครื่อง** — _ทำตามขั้นตอน [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) เพื่อเตรียมความพร้อม_ - -Notebook มาพร้อมแบบฝึกหัด _เริ่มต้น_ แต่คุณสามารถเพิ่มส่วน _Markdown_ (คำอธิบาย) และ _Code_ (คำขอ prompt) ของตัวเองเพื่อทดลองตัวอย่างหรือไอเดียเพิ่มเติม และสร้างสัญชาตญาณในการออกแบบ prompt - -## คู่มือภาพรวม - -อยากเห็นภาพรวมของบทเรียนนี้ก่อนเริ่มใช่ไหม? ลองดูคู่มือภาพรวมนี้ ซึ่งจะช่วยให้คุณเข้าใจหัวข้อหลักและข้อคิดสำคัญที่ควรพิจารณาในแต่ละหัวข้อ แผนที่บทเรียนจะพาคุณจากการเข้าใจแนวคิดหลักและความท้าทาย ไปสู่การแก้ไขด้วยเทคนิค prompt engineering ที่เกี่ยวข้องและแนวทางปฏิบัติที่ดีที่สุด หมายเหตุว่า ส่วน "เทคนิคขั้นสูง" ในคู่มือนี้จะครอบคลุมเนื้อหาในบทถัดไปของหลักสูตรนี้ - -![Illustrated Guide to Prompt Engineering](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.th.png) - -## สตาร์ทอัพของเรา - -ตอนนี้ มาคุยกันว่า _หัวข้อนี้_ เกี่ยวข้องกับพันธกิจของสตาร์ทอัพเราอย่างไรในการ [นำ AI มาสู่นวัตกรรมการศึกษา](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst) เราต้องการสร้างแอป AI ที่ขับเคลื่อนการ _เรียนรู้แบบเฉพาะบุคคล_ ดังนั้นลองคิดดูว่าผู้ใช้แต่ละกลุ่มในแอปของเราอาจ "ออกแบบ" prompt อย่างไร: - -- **ผู้ดูแลระบบ** อาจขอให้ AI _วิเคราะห์ข้อมูลหลักสูตรเพื่อหาช่องว่างในการสอน_ AI สามารถสรุปผลหรือแสดงภาพด้วยโค้ดได้ -- **ครูผู้สอน** อาจขอให้ AI _สร้างแผนการสอนสำหรับกลุ่มเป้าหมายและหัวข้อ_ AI สามารถสร้างแผนเฉพาะบุคคลในรูปแบบที่กำหนดได้ -- **นักเรียน** อาจขอให้ AI _สอนพิเศษในวิชาที่ยาก_ AI สามารถแนะนำบทเรียน คำแนะนำ และตัวอย่างที่เหมาะสมกับระดับของนักเรียนได้ - -นี่เป็นเพียงส่วนเล็กๆ ของศักยภาพ ลองดู [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) — ห้องสมุด prompt แบบโอเพนซอร์สที่คัดสรรโดยผู้เชี่ยวชาญด้านการศึกษา — เพื่อเห็นภาพรวมของความเป็นไปได้! _ลองรัน prompt เหล่านั้นใน sandbox หรือใช้ OpenAI Playground ดูผลลัพธ์กัน!_ - - - -## Prompt Engineering คืออะไร? - -เราเริ่มบทเรียนนี้ด้วยการนิยาม **Prompt Engineering** ว่าเป็นกระบวนการ _ออกแบบและปรับแต่ง_ ข้อความ input (prompt) เพื่อให้ได้คำตอบ (completion) ที่สม่ำเสมอและมีคุณภาพสำหรับวัตถุประสงค์ของแอปและโมเดลที่กำหนด เราสามารถมองว่าเป็นกระบวนการ 2 ขั้นตอน: - -- _ออกแบบ_ prompt เริ่มต้นสำหรับโมเดลและวัตถุประสงค์ที่กำหนด -- _ปรับแต่ง_ prompt อย่างต่อเนื่องเพื่อพัฒนาคุณภาพคำตอบ - -นี่เป็นกระบวนการลองผิดลองถูกที่ต้องใช้สัญชาตญาณและความพยายามของผู้ใช้เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด แล้วทำไมถึงสำคัญ? เพื่อหาคำตอบ เราต้องเข้าใจสามแนวคิดนี้ก่อน: - -- _Tokenization_ = โมเดล "มองเห็น" prompt อย่างไร -- _Base LLMs_ = โมเดลพื้นฐาน "ประมวลผล" prompt อย่างไร -- _Instruction-Tuned LLMs_ = โมเดลสามารถ "เข้าใจงาน" ได้อย่างไร - -### Tokenization - -LLM มอง prompt เป็น _ลำดับของ tokens_ ซึ่งโมเดลแต่ละตัว (หรือเวอร์ชันของโมเดล) อาจแบ่ง token ของ prompt เดียวกันแตกต่างกัน เนื่องจาก LLM ถูกฝึกด้วย tokens (ไม่ใช่ข้อความดิบ) วิธีการแบ่ง token ของ prompt จึงส่งผลโดยตรงต่อคุณภาพของคำตอบที่สร้างขึ้น - -เพื่อเข้าใจการทำงานของ tokenization ลองใช้เครื่องมืออย่าง [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) ที่แสดงด้านล่าง คัดลอก prompt ของคุณเข้าไป แล้วดูว่ามันถูกแปลงเป็น tokens อย่างไร ให้สังเกตการจัดการกับช่องว่างและเครื่องหมายวรรคตอน ตัวอย่างนี้ใช้ LLM รุ่นเก่า (GPT-3) ดังนั้นถ้าลองกับโมเดลใหม่อาจได้ผลลัพธ์ต่างกัน - -![Tokenization](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.th.png) - -### แนวคิด: โมเดลพื้นฐาน (Foundation Models) - -เมื่อ prompt ถูกแบ่งเป็น tokens แล้ว ฟังก์ชันหลักของ ["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (หรือโมเดลพื้นฐาน) คือการทำนาย token ถัดไปในลำดับนั้น เนื่องจาก LLM ถูกฝึกด้วยชุดข้อมูลข้อความขนาดใหญ่ จึงมีความเข้าใจในความสัมพันธ์เชิงสถิติระหว่าง tokens และสามารถทำนายได้อย่างมั่นใจ อย่างไรก็ตาม โมเดลไม่ได้เข้าใจ _ความหมาย_ ของคำใน prompt หรือ token เพียงแต่เห็นรูปแบบที่สามารถ "เติมเต็ม" ด้วยการทำนายถัดไปได้ พวกมันสามารถทำนายลำดับต่อไปได้เรื่อยๆ จนกว่าจะถูกหยุดโดยผู้ใช้หรือเงื่อนไขที่ตั้งไว้ - -อยากลองดูการทำงานของ prompt-based completion ไหม? ใส่ prompt ข้างต้นใน Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) ด้วยการตั้งค่าเริ่มต้น ระบบถูกตั้งค่าให้มอง prompt เป็นคำขอข้อมูล — ดังนั้นคุณจะเห็นคำตอบที่สอดคล้องกับบริบทนี้ - -แต่ถ้าผู้ใช้ต้องการคำตอบเฉพาะที่ตรงตามเกณฑ์หรืองานล่ะ? นี่คือจุดที่ _instruction-tuned_ LLMs เข้ามามีบทบาท - -![Base LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.th.png) - -### แนวคิด: Instruction Tuned LLMs - -[Instruction Tuned LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) เริ่มจากโมเดลพื้นฐานและปรับแต่งเพิ่มเติมด้วยตัวอย่างหรือคู่ input/output (เช่น "ข้อความ" หลายรอบ) ที่มีคำสั่งชัดเจน — และคำตอบจาก AI จะพยายามปฏิบัติตามคำสั่งนั้น - -เทคนิคนี้ใช้ Reinforcement Learning with Human Feedback (RLHF) ที่ช่วยฝึกโมเดลให้ _ปฏิบัติตามคำสั่ง_ และ _เรียนรู้จากข้อเสนอแนะ_ เพื่อให้ได้คำตอบที่เหมาะสมกับการใช้งานจริงและตรงกับวัตถุประสงค์ของผู้ใช้มากขึ้น - -ลองดูสิ — กลับไปที่ prompt ข้างต้น แต่เปลี่ยน _system message_ เพื่อให้คำสั่งนี้เป็นบริบท: - -> _สรุปเนื้อหาที่ได้รับสำหรับนักเรียนชั้นประถมศึกษาปีที่ 2 ให้ผลลัพธ์เป็นย่อหน้าเดียวพร้อม 3-5 ข้อสั้นๆ_ - -ดูว่าผลลัพธ์ถูกปรับแต่งให้ตรงกับเป้าหมายและรูปแบบที่ต้องการอย่างไร? ครูผู้สอนสามารถใช้คำตอบนี้โดยตรงในสไลด์สำหรับชั้นเรียนได้เลย - -![Instruction Tuned LLM Chat Completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.th.png) - -## ทำไมเราต้องมี Prompt Engineering? - -เมื่อเรารู้แล้วว่า LLM ประมวลผล prompt อย่างไร มาคุยกันว่า _ทำไม_ เราต้องมี prompt engineering คำตอบอยู่ที่ว่า LLM ปัจจุบันมีความท้าทายหลายอย่างที่ทำให้การได้คำตอบที่ _น่าเชื่อถือและสม่ำเสมอ_ เป็นเรื่องยากหากไม่ใส่ใจในการสร้างและปรับแต่ง prompt เช่น: - -1. **คำตอบของโมเดลมีความสุ่ม** _Prompt เดียวกัน_ อาจให้คำตอบต่างกันกับโมเดลหรือเวอร์ชันต่างๆ และอาจให้ผลลัพธ์ต่างกันแม้ใช้โมเดลเดียวกันในเวลาต่างกัน _เทคนิค prompt engineering ช่วยลดความแปรปรวนเหล่านี้ด้วยการกำหนดกรอบที่ชัดเจนขึ้น_ - -2. **โมเดลอาจสร้างคำตอบที่ไม่ถูกต้อง** โมเดลถูกฝึกด้วยชุดข้อมูล _ขนาดใหญ่แต่จำกัด_ หมายความว่าโมเดลไม่มีความรู้เกี่ยวกับข้อมูลนอกขอบเขตการฝึก จึงอาจสร้างคำตอบที่ผิดพลาด จินตนาการ หรือขัดแย้งกับข้อเท็จจริง _เทคนิค prompt engineering ช่วยให้ผู้ใช้ตรวจจับและลดปัญหานี้ เช่น การขอให้ AI อ้างอิงแหล่งที่มา หรือให้เหตุผล_ - -3. **ความสามารถของโมเดลแตกต่างกัน** โมเดลรุ่นใหม่หรือรุ่นถัดไปจะมีความสามารถมากขึ้น แต่ก็มีลักษณะเฉพาะและข้อแลกเปลี่ยนในเรื่องต้นทุนและความซับซ้อน _prompt engineering ช่วยพัฒนาแนวทางปฏิบัติและเวิร์กโฟลว์ที่ปรับตัวเข้ากับความแตกต่างของโมเดลได้อย่างราบรื่นและขยายผลได้_ - -ลองดูตัวอย่างใน OpenAI หรือ Azure OpenAI Playground: - -- ใช้ prompt เดียวกันกับการติดตั้ง LLM ต่างๆ (เช่น OpenAI, Azure OpenAI, Hugging Face) — คุณเห็นความแตกต่างไหม? -- ใช้ prompt เดียวกันซ้ำๆ กับการติดตั้ง LLM เดียวกัน (เช่น Azure OpenAI playground) — ความแตกต่างเหล่านี้เป็นอย่างไร? - -### ตัวอย่าง Fabrications - -ในหลักสูตรนี้ เราใช้คำว่า **"fabrication"** เพื่ออ้างถึงปรากฏการณ์ที่ LLM บางครั้งสร้างข้อมูลที่ไม่ถูกต้องทางข้อเท็จจริง เนื่องจากข้อจำกัดในการฝึกหรือข้อจำกัดอื่นๆ คุณอาจเคยได้ยินคำว่า _"hallucinations"_ ในบทความหรืองานวิจัยทั่วไป แต่เราแนะนำให้ใช้คำว่า _"fabrication"_ เพื่อหลีกเลี่ยงการให้ความหมายเหมือนมนุษย์กับพฤติกรรมของเครื่องจักร และยังสอดคล้องกับ [แนวทาง Responsible AI](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) ในแง่ของคำศัพท์ โดยตัดคำที่อาจถูกมองว่าไม่เหมาะสมหรือไม่ครอบคลุมในบางบริบทออก - -อยากเข้าใจว่า fabrication ทำงานอย่างไร? ลองคิดถึง prompt ที่สั่งให้ AI สร้างเนื้อหาสำหรับหัวข้อที่ไม่มีอยู่จริง (เพื่อให้แน่ใจว่าไม่มีในชุดข้อมูลฝึก) เช่น — ฉันได้ลองใช้ prompt นี้: -# แผนการสอน: สงครามดาวอังคารปี 2076 - -## วัตถุประสงค์ของบทเรียน -- เข้าใจสาเหตุและผลกระทบของสงครามดาวอังคารปี 2076 -- วิเคราะห์บทบาทของฝ่ายต่าง ๆ ในสงคราม -- ประเมินผลกระทบทางสังคมและเทคโนโลยีที่เกิดขึ้นหลังสงคราม - -## เนื้อหาบทเรียน -1. ภูมิหลังและสาเหตุของสงคราม -2. เหตุการณ์สำคัญในช่วงสงคราม -3. ฝ่ายที่เกี่ยวข้องและกลยุทธ์ที่ใช้ -4. ผลลัพธ์และผลกระทบหลังสงคราม - -## กิจกรรมการเรียนรู้ -- การอภิปรายกลุ่มเกี่ยวกับสาเหตุของสงคราม -- การวิเคราะห์เอกสารและภาพถ่ายจากสงคราม -- การจำลองสถานการณ์การเจรจาสันติภาพ -- การเขียนรายงานสรุปผลกระทบของสงคราม - -## สื่อและอุปกรณ์ -- เอกสารประกอบการสอน -- วิดีโอสารคดีเกี่ยวกับสงครามดาวอังคาร -- แผนที่และไทม์ไลน์ของเหตุการณ์ - -## การประเมินผล -- แบบทดสอบความเข้าใจเนื้อหา -- การนำเสนอผลงานกลุ่ม -- การเขียนเรียงความวิเคราะห์สงคราม - -## หมายเหตุ -- เน้นการคิดวิเคราะห์และการทำงานร่วมกันเป็นทีม -- สนับสนุนให้นักเรียนตั้งคำถามและแสดงความคิดเห็นอย่างสร้างสรรค์ -การค้นหาเว็บแสดงให้เห็นว่ามีเรื่องเล่าจินตนาการ (เช่น ซีรีส์โทรทัศน์หรือหนังสือ) เกี่ยวกับสงครามบนดาวอังคาร – แต่ไม่มีเรื่องใดที่เกิดขึ้นในปี 2076 ข้อเท็จจริงทั่วไปยังบอกเราว่า 2076 คือ _อนาคต_ ดังนั้นจึงไม่สามารถเชื่อมโยงกับเหตุการณ์จริงได้ - -แล้วจะเกิดอะไรขึ้นเมื่อเรารันพรอมต์นี้กับผู้ให้บริการ LLM ต่างๆ? - -> **Response 1**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.th.png) - -> **Response 2**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.th.png) - -> **Response 3**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.th.png) - -ตามที่คาดไว้ แต่ละโมเดล (หรือเวอร์ชันของโมเดล) ให้คำตอบที่แตกต่างกันเล็กน้อย เนื่องจากพฤติกรรมแบบสุ่มและความสามารถของโมเดลที่แตกต่างกัน ตัวอย่างเช่น โมเดลหนึ่งมุ่งเป้าไปที่ผู้ฟังระดับชั้นประถมศึกษาปีที่ 8 ขณะที่อีกโมเดลหนึ่งสมมติว่าผู้ฟังเป็นนักเรียนมัธยมปลาย แต่ทั้งสามโมเดลต่างก็สร้างคำตอบที่สามารถโน้มน้าวผู้ใช้ที่ไม่มีข้อมูลมาก่อนว่าเหตุการณ์นั้นเป็นเรื่องจริงได้ - -เทคนิคการออกแบบพรอมต์ เช่น _metaprompting_ และ _การตั้งค่า temperature_ อาจช่วยลดการสร้างข้อมูลเท็จของโมเดลได้ในระดับหนึ่ง สถาปัตยกรรมการออกแบบพรอมต์ใหม่ๆ ยังผสานรวมเครื่องมือและเทคนิคใหม่ๆ เข้าไปในกระบวนการพรอมต์อย่างราบรื่น เพื่อบรรเทาหรือช่วยลดผลกระทบบางอย่างเหล่านี้ - -## กรณีศึกษา: GitHub Copilot - -มาปิดท้ายส่วนนี้ด้วยการทำความเข้าใจว่าการออกแบบพรอมต์ถูกนำไปใช้ในโซลูชันจริงอย่างไร โดยดูจากกรณีศึกษา: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst) - -GitHub Copilot คือ "โปรแกรมเมอร์คู่ใจ AI" ของคุณ – มันแปลงพรอมต์ข้อความเป็นโค้ดที่สมบูรณ์และถูกรวมเข้ากับสภาพแวดล้อมการพัฒนาของคุณ (เช่น Visual Studio Code) เพื่อประสบการณ์ใช้งานที่ราบรื่น ตามที่บันทึกไว้ในชุดบล็อกด้านล่าง เวอร์ชันแรกสุดสร้างขึ้นบนโมเดล OpenAI Codex โดยวิศวกรได้ตระหนักอย่างรวดเร็วถึงความจำเป็นในการปรับแต่งโมเดลและพัฒนาเทคนิคการออกแบบพรอมต์ที่ดีกว่า เพื่อปรับปรุงคุณภาพโค้ด ในเดือนกรกฎาคม พวกเขา [เปิดตัวโมเดล AI ที่พัฒนาขึ้นซึ่งก้าวข้าม Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) เพื่อให้คำแนะนำที่รวดเร็วขึ้น - -อ่านโพสต์ตามลำดับเพื่อเข้าใจเส้นทางการเรียนรู้ของพวกเขา - -- **พฤษภาคม 2023** | [GitHub Copilot กำลังเข้าใจโค้ดของคุณได้ดีขึ้น](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **พฤษภาคม 2023** | [เบื้องหลัง GitHub: การทำงานกับ LLMs ที่อยู่เบื้องหลัง GitHub Copilot](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **มิถุนายน 2023** | [วิธีเขียนพรอมต์ที่ดีกว่าสำหรับ GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **กรกฎาคม 2023** | [.. GitHub Copilot ก้าวข้าม Codex ด้วยโมเดล AI ที่พัฒนาขึ้น](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **กรกฎาคม 2023** | [คู่มือสำหรับนักพัฒนาเกี่ยวกับการออกแบบพรอมต์และ LLMs](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **กันยายน 2023** | [วิธีสร้างแอป LLM สำหรับองค์กร: บทเรียนจาก GitHub Copilot](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -คุณยังสามารถเยี่ยมชม [บล็อกวิศวกรรม](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) ของพวกเขาเพื่ออ่านโพสต์เพิ่มเติม เช่น [โพสต์นี้](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) ที่แสดงให้เห็นว่าโมเดลและเทคนิคเหล่านี้ถูก _นำไปใช้_ อย่างไรในการขับเคลื่อนแอปพลิเคชันในโลกจริง - ---- - - - -## การสร้างพรอมต์ - -เราได้เห็นแล้วว่าทำไมการออกแบบพรอมต์จึงสำคัญ – ตอนนี้มาทำความเข้าใจว่าพรอมต์ถูก _สร้าง_ ขึ้นอย่างไร เพื่อที่เราจะได้ประเมินเทคนิคต่างๆ สำหรับการออกแบบพรอมต์ที่มีประสิทธิภาพมากขึ้น - -### พรอมต์พื้นฐาน - -เริ่มต้นด้วยพรอมต์พื้นฐาน: ข้อความอินพุตที่ส่งไปยังโมเดลโดยไม่มีบริบทอื่น นี่คือตัวอย่าง – เมื่อเราส่งคำแรกๆ ของเพลงชาติสหรัฐอเมริกาไปยัง OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst) มันจะ _เติมเต็ม_ คำตอบด้วยบรรทัดถัดไปทันที แสดงพฤติกรรมการทำนายพื้นฐาน - -| Prompt (Input) | Completion (Output) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | ฟังดูเหมือนคุณกำลังเริ่มร้องเพลง "The Star-Spangled Banner" เพลงชาติของสหรัฐอเมริกา เนื้อเพลงเต็มคือ ... | - -### พรอมต์ซับซ้อน - -ตอนนี้เพิ่มบริบทและคำสั่งลงในพรอมต์พื้นฐานนั้น [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) ช่วยให้เราสร้างพรอมต์ซับซ้อนได้ในรูปแบบของ _ข้อความ_ หลายข้อความที่ประกอบด้วย: - -- คู่ของอินพุต/เอาต์พุตที่สะท้อนการป้อนข้อมูลของ _ผู้ใช้_ และการตอบกลับของ _ผู้ช่วย_ -- ข้อความระบบที่ตั้งค่าบริบทสำหรับพฤติกรรมหรือบุคลิกภาพของผู้ช่วย - -คำขอจะอยู่ในรูปแบบด้านล่างนี้ ซึ่ง _tokenization_ จะจับข้อมูลที่เกี่ยวข้องจากบริบทและการสนทนาได้อย่างมีประสิทธิภาพ การเปลี่ยนบริบทของระบบจึงมีผลต่อคุณภาพของคำตอบได้มากเท่ากับอินพุตของผู้ใช้ที่ให้มา - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### พรอมต์คำสั่ง - -ในตัวอย่างข้างต้น พรอมต์ของผู้ใช้เป็นเพียงข้อความคำถามง่ายๆ ที่สามารถตีความได้ว่าเป็นการขอข้อมูล ด้วยพรอมต์ _คำสั่ง_ เราสามารถใช้ข้อความนั้นเพื่อระบุงานอย่างละเอียดขึ้น ให้คำแนะนำที่ดีกว่าแก่ AI นี่คือตัวอย่าง: - -| Prompt (Input) | Completion (Output) | Instruction Type | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Write a description of the Civil War | _ส่งคืนย่อหน้าง่ายๆ_ | ง่าย | -| Write a description of the Civil War. Provide key dates and events and describe their significance | _ส่งคืนย่อหน้าตามด้วยรายการวันที่เหตุการณ์สำคัญพร้อมคำอธิบาย_ | ซับซ้อน | -| Write a description of the Civil War in 1 paragraph. Provide 3 bullet points with key dates and their significance. Provide 3 more bullet points with key historical figures and their contributions. Return the output as a JSON file | _ส่งคืนรายละเอียดที่มากขึ้นในกล่องข้อความในรูปแบบ JSON ที่คุณสามารถคัดลอกไปวางในไฟล์และตรวจสอบได้ตามต้องการ_ | ซับซ้อน. มีรูปแบบ | - -## เนื้อหาหลัก - -ในตัวอย่างข้างต้น พรอมต์ยังค่อนข้างเปิดกว้าง ให้ LLM ตัดสินใจเองว่าส่วนใดของชุดข้อมูลที่ผ่านการฝึกฝนมาก่อนนั้นเกี่ยวข้อง ด้วยรูปแบบการออกแบบ _เนื้อหาหลัก_ ข้อความอินพุตจะแบ่งออกเป็นสองส่วน: - -- คำสั่ง (การกระทำ) -- เนื้อหาที่เกี่ยวข้อง (ซึ่งมีผลต่อการกระทำ) - -นี่คือตัวอย่างที่คำสั่งคือ "สรุปสิ่งนี้ใน 2 ประโยคสั้นๆ" - -| Prompt (Input) | Completion (Output) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. It is named after the Roman god Jupiter.[19] When viewed from Earth, Jupiter can be bright enough for its reflected light to cast visible shadows,[20] and is on average the third-brightest natural object in the night sky after the Moon and Venus.
**Summarize this in 2 short sentences** | ดาวพฤหัสบดี ดาวเคราะห์ดวงที่ห้าจากดวงอาทิตย์ เป็นดาวเคราะห์ที่ใหญ่ที่สุดในระบบสุริยะและเป็นหนึ่งในวัตถุที่สว่างที่สุดในท้องฟ้ายามค่ำคืน ตั้งชื่อตามเทพเจ้าชาวโรมันชื่อจูปิเตอร์ เป็นดาวแก๊สยักษ์ที่มีมวลมากกว่าดาวเคราะห์อื่นๆ ในระบบสุริยะรวมกันถึงสองเท่าครึ่ง | - -ส่วนเนื้อหาหลักสามารถใช้ในรูปแบบต่างๆ เพื่อขับเคลื่อนคำสั่งที่มีประสิทธิภาพมากขึ้น: - -- **ตัวอย่าง** – แทนที่จะบอกโมเดลว่าต้องทำอะไรด้วยคำสั่งชัดเจน ให้ตัวอย่างสิ่งที่ต้องทำและปล่อยให้โมเดลสรุปรูปแบบเอง -- **สัญญาณนำ** – ตามคำสั่งด้วย "สัญญาณนำ" ที่ช่วยกระตุ้นการตอบกลับ นำทางโมเดลไปสู่คำตอบที่เกี่ยวข้องมากขึ้น -- **แม่แบบ** – เป็น 'สูตร' ที่ใช้ซ้ำได้สำหรับพรอมต์ที่มีตัวแปร (placeholders) ซึ่งสามารถปรับแต่งด้วยข้อมูลสำหรับกรณีใช้งานเฉพาะ - -มาดูตัวอย่างการใช้งานกัน - -### การใช้ตัวอย่าง - -นี่คือวิธีที่ใช้เนื้อหาหลักเพื่อ "ป้อนตัวอย่าง" ให้โมเดลเห็นรูปแบบผลลัพธ์ที่ต้องการสำหรับคำสั่งที่กำหนด และปล่อยให้โมเดลสรุปรูปแบบผลลัพธ์ที่ต้องการ จากจำนวนตัวอย่างที่ให้ เราสามารถมี zero-shot prompting, one-shot prompting, few-shot prompting เป็นต้น - -พรอมต์ตอนนี้ประกอบด้วยสามส่วน: - -- คำอธิบายงาน -- ตัวอย่างผลลัพธ์ที่ต้องการบางส่วน -- จุดเริ่มต้นของตัวอย่างใหม่ (ซึ่งกลายเป็นคำอธิบายงานโดยนัย) - -| Learning Type | Prompt (Input) | Completion (Output) | -| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| Zero-shot | "The Sun is Shining". Translate to Spanish | "El Sol está brillando". | -| One-shot | "The Sun is Shining" => ""El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| Few-shot | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketball | -| | | | - -สังเกตว่าใน zero-shot prompting เราต้องให้คำสั่งชัดเจน ("Translate to Spanish") แต่ใน one-shot prompting คำสั่งนั้นถูกสรุปได้เองจากตัวอย่าง ตัวอย่าง few-shot แสดงให้เห็นว่าการเพิ่มตัวอย่างมากขึ้นช่วยให้โมเดลสรุปได้แม่นยำขึ้นโดยไม่ต้องเพิ่มคำสั่ง - -### สัญญาณนำของพรอมต์ - -อีกเทคนิคหนึ่งในการใช้เนื้อหาหลักคือการให้ _สัญญาณนำ_ แทนตัวอย่าง ในกรณีนี้ เราให้โมเดลได้รับการกระตุ้นในทิศทางที่ถูกต้องโดย _เริ่มต้น_ ด้วยข้อความตัวอย่างที่สะท้อนรูปแบบคำตอบที่ต้องการ โมเดลจึง "รับสัญญาณ" และดำเนินการต่อในแนวนั้น - -| Number of Cues | Prompt (Input) | Completion (Output) | -| :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. - -**สรุปสิ่งนี้** | ดาวพฤหัสบดีเป็นดาวเคราะห์ที่ใหญ่ที่สุดในระบบสุริยะของเราและเป็นดาวเคราะห์ดวงที่ห้าจากดวงอาทิตย์ เป็นดาวแก๊สยักษ์ที่มีมวลประมาณ 1/1000 ของดวงอาทิตย์ แต่มีน้ำหนักมากกว่าดาวเคราะห์ดวงอื่น ๆ รวมกัน อารยธรรมโบราณรู้จักดาวพฤหัสบดีมานานแล้ว และสามารถมองเห็นได้ง่ายในท้องฟ้ายามค่ำคืน.. | -| 1 | ดาวพฤหัสบดีเป็นดาวเคราะห์ดวงที่ห้าจากดวงอาทิตย์และเป็นดาวเคราะห์ที่ใหญ่ที่สุดในระบบสุริยะ เป็นดาวแก๊สยักษ์ที่มีมวลประมาณหนึ่งในพันของดวงอาทิตย์ แต่มีมวลมากกว่าดาวเคราะห์ดวงอื่น ๆ รวมกันถึงสองเท่าครึ่ง ดาวพฤหัสบดีเป็นหนึ่งในวัตถุที่สว่างที่สุดที่มองเห็นได้ด้วยตาเปล่าในท้องฟ้ายามค่ำคืน และเป็นที่รู้จักของอารยธรรมโบราณตั้งแต่ก่อนมีบันทึกทางประวัติศาสตร์
**สรุปสิ่งนี้**
สิ่งที่เราได้เรียนรู้คือ ดาวพฤหัสบดี | เป็นดาวเคราะห์ดวงที่ห้าจากดวงอาทิตย์และใหญ่ที่สุดในระบบสุริยะ เป็นดาวแก๊สยักษ์ที่มีมวลประมาณหนึ่งในพันของดวงอาทิตย์ แต่มีมวลมากกว่าดาวเคราะห์ดวงอื่น ๆ รวมกันถึงสองเท่าครึ่ง มองเห็นได้ง่ายด้วยตาเปล่าและเป็นที่รู้จักตั้งแต่สมัยโบราณ | -| 2 | ดาวพฤหัสบดีเป็นดาวเคราะห์ดวงที่ห้าจากดวงอาทิตย์และเป็นดาวเคราะห์ที่ใหญ่ที่สุดในระบบสุริยะ เป็นดาวแก๊สยักษ์ที่มีมวลประมาณหนึ่งในพันของดวงอาทิตย์ แต่มีมวลมากกว่าดาวเคราะห์ดวงอื่น ๆ รวมกันถึงสองเท่าครึ่ง ดาวพฤหัสบดีเป็นหนึ่งในวัตถุที่สว่างที่สุดที่มองเห็นได้ด้วยตาเปล่าในท้องฟ้ายามค่ำคืน และเป็นที่รู้จักของอารยธรรมโบราณตั้งแต่ก่อนมีบันทึกทางประวัติศาสตร์
**สรุปสิ่งนี้**
3 ข้อเท็จจริงสำคัญที่เราได้เรียนรู้: | 1. ดาวพฤหัสบดีเป็นดาวเคราะห์ดวงที่ห้าจากดวงอาทิตย์และใหญ่ที่สุดในระบบสุริยะ
2. เป็นดาวแก๊สยักษ์ที่มีมวลประมาณหนึ่งในพันของดวงอาทิตย์...
3. ดาวพฤหัสบดีมองเห็นได้ด้วยตาเปล่าตั้งแต่สมัยโบราณ ... | -| | | | - -### Prompt Templates - -เทมเพลตพรอมต์คือ _สูตรสำเร็จที่กำหนดไว้ล่วงหน้าสำหรับพรอมต์_ ที่สามารถเก็บไว้และนำกลับมาใช้ใหม่ได้ตามต้องการ เพื่อสร้างประสบการณ์ผู้ใช้ที่สม่ำเสมอในวงกว้าง ในรูปแบบที่ง่ายที่สุด มันคือชุดตัวอย่างพรอมต์เช่น [ตัวอย่างนี้จาก OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) ที่ให้ทั้งส่วนประกอบพรอมต์แบบโต้ตอบ (ข้อความผู้ใช้และระบบ) และรูปแบบคำขอที่ขับเคลื่อนด้วย API - เพื่อสนับสนุนการนำกลับมาใช้ใหม่ - -ในรูปแบบที่ซับซ้อนขึ้น เช่น [ตัวอย่างนี้จาก LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst) จะมี _ตัวแทนที่ว่าง_ ที่สามารถแทนที่ด้วยข้อมูลจากแหล่งต่าง ๆ (ข้อมูลผู้ใช้, บริบทของระบบ, แหล่งข้อมูลภายนอก ฯลฯ) เพื่อสร้างพรอมต์แบบไดนามิก ซึ่งช่วยให้เราสร้างคลังพรอมต์ที่นำกลับมาใช้ใหม่ได้ เพื่อขับเคลื่อนประสบการณ์ผู้ใช้ที่สม่ำเสมอ **ในเชิงโปรแกรม** ในวงกว้าง - -สุดท้าย คุณค่าที่แท้จริงของเทมเพลตอยู่ที่ความสามารถในการสร้างและเผยแพร่ _คลังพรอมต์_ สำหรับโดเมนแอปพลิเคชันเฉพาะทาง - โดยที่เทมเพลตพรอมต์จะถูก _ปรับให้เหมาะสม_ เพื่อสะท้อนบริบทหรือ ตัวอย่างเฉพาะของแอปพลิเคชันที่ทำให้คำตอบมีความเกี่ยวข้องและแม่นยำมากขึ้นสำหรับกลุ่มผู้ใช้เป้าหมาย ตัวอย่างที่ดีของแนวทางนี้คือคลัง [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) ที่รวบรวมคลังพรอมต์สำหรับโดเมนการศึกษาโดยเน้นวัตถุประสงค์หลัก เช่น การวางแผนบทเรียน การออกแบบหลักสูตร การติวเตอร์นักเรียน ฯลฯ - -## Supporting Content - -ถ้าเราคิดว่าการสร้างพรอมต์ประกอบด้วยคำสั่ง (งาน) และเป้าหมาย (เนื้อหาหลัก) แล้ว _เนื้อหารอง_ ก็เหมือนบริบทเพิ่มเติมที่เราให้เพื่อ **มีอิทธิพลต่อผลลัพธ์ในบางทาง** อาจเป็นพารามิเตอร์การปรับแต่ง คำแนะนำการจัดรูปแบบ หมวดหมู่หัวข้อ ฯลฯ ที่ช่วยให้โมเดล _ปรับแต่ง_ การตอบสนองให้เหมาะสมกับวัตถุประสงค์หรือความคาดหวังของผู้ใช้ - -ตัวอย่างเช่น: เมื่อมีแคตตาล็อกหลักสูตรที่มีเมตาดาต้าครบถ้วน (ชื่อ, คำอธิบาย, ระดับ, แท็กเมตาดาต้า, ผู้สอน ฯลฯ) ของหลักสูตรทั้งหมดในหลักสูตรการเรียน: - -- เราสามารถกำหนดคำสั่งว่า "สรุปแคตตาล็อกหลักสูตรสำหรับฤดูใบไม้ร่วง 2023" -- เราสามารถใช้เนื้อหาหลักเพื่อให้ตัวอย่างผลลัพธ์ที่ต้องการ -- เราสามารถใช้เนื้อหารองเพื่อระบุ 5 แท็กที่น่าสนใจสูงสุด - -ตอนนี้ โมเดลสามารถให้สรุปในรูปแบบที่แสดงโดยตัวอย่างไม่กี่ตัว - แต่ถ้าผลลัพธ์มีหลายแท็ก มันสามารถจัดลำดับความสำคัญ 5 แท็กที่ระบุในเนื้อหารองได้ - ---- - - - -## แนวทางปฏิบัติที่ดีที่สุดสำหรับการสร้างพรอมต์ - -ตอนนี้ที่เรารู้ว่าพรอมต์สามารถ _สร้างขึ้น_ ได้อย่างไร เราสามารถเริ่มคิดถึงการ _ออกแบบ_ เพื่อสะท้อนแนวทางปฏิบัติที่ดีที่สุดได้ เราสามารถแบ่งเป็นสองส่วน คือ มี _ทัศนคติ_ ที่ถูกต้อง และใช้ _เทคนิค_ ที่เหมาะสม - -### ทัศนคติในการสร้างพรอมต์ - -การสร้างพรอมต์เป็นกระบวนการลองผิดลองถูก ดังนั้นจงจำปัจจัยกว้าง ๆ สามประการนี้ไว้: - -1. **ความเข้าใจโดเมนสำคัญ** ความแม่นยำและความเกี่ยวข้องของคำตอบขึ้นอยู่กับ _โดเมน_ ที่แอปพลิเคชันหรือผู้ใช้ทำงานอยู่ ใช้สัญชาตญาณและความเชี่ยวชาญในโดเมนเพื่อ **ปรับแต่งเทคนิค** ให้เหมาะสมยิ่งขึ้น เช่น กำหนด _บุคลิกเฉพาะโดเมน_ ในพรอมต์ระบบของคุณ หรือใช้ _เทมเพลตเฉพาะโดเมน_ ในพรอมต์ผู้ใช้ ให้เนื้อหารองที่สะท้อนบริบทเฉพาะโดเมน หรือใช้ _สัญญาณและตัวอย่างเฉพาะโดเมน_ เพื่อชี้นำโมเดลไปสู่รูปแบบการใช้งานที่คุ้นเคย - -2. **ความเข้าใจโมเดลสำคัญ** เรารู้ว่าโมเดลมีลักษณะสุ่มโดยธรรมชาติ แต่การใช้งานโมเดลอาจแตกต่างกันในแง่ของชุดข้อมูลฝึกอบรมที่ใช้ (ความรู้ที่ฝึกมาแล้ว), ความสามารถที่ให้มา (เช่น ผ่าน API หรือ SDK) และประเภทเนื้อหาที่โมเดลถูกปรับแต่ง (เช่น โค้ด, รูปภาพ, ข้อความ) เข้าใจจุดแข็งและข้อจำกัดของโมเดลที่คุณใช้ และใช้ความรู้นั้นเพื่อ _จัดลำดับความสำคัญงาน_ หรือสร้าง _เทมเพลตที่ปรับแต่ง_ ให้เหมาะสมกับความสามารถของโมเดล - -3. **การทำซ้ำและการตรวจสอบสำคัญ** โมเดลพัฒนาอย่างรวดเร็ว เช่นเดียวกับเทคนิคการสร้างพรอมต์ ในฐานะผู้เชี่ยวชาญโดเมน คุณอาจมีบริบทหรือเกณฑ์เฉพาะสำหรับ _แอปพลิเคชัน_ ของคุณที่อาจไม่เหมือนกับชุมชนกว้าง ใช้เครื่องมือและเทคนิคการสร้างพรอมต์เพื่อ "เริ่มต้น" การสร้างพรอมต์ จากนั้นทำซ้ำและตรวจสอบผลลัพธ์โดยใช้สัญชาตญาณและความเชี่ยวชาญของคุณ บันทึกข้อสังเกตและสร้าง **ฐานความรู้** (เช่น คลังพรอมต์) ที่สามารถใช้เป็นฐานใหม่สำหรับผู้อื่น เพื่อเร่งการทำซ้ำในอนาคต - -## แนวทางปฏิบัติที่ดีที่สุด - -มาดูแนวทางปฏิบัติที่แนะนำโดยผู้เชี่ยวชาญจาก [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) และ [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst) - -| สิ่งที่ควรทำ | เหตุผล | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| ประเมินโมเดลรุ่นล่าสุด | รุ่นโมเดลใหม่มักมีฟีเจอร์และคุณภาพที่ดีขึ้น - แต่ก็อาจมีค่าใช้จ่ายสูงขึ้นด้วย ประเมินผลกระทบก่อนตัดสินใจย้ายระบบ | -| แยกคำสั่งและบริบท | ตรวจสอบว่าโมเดล/ผู้ให้บริการของคุณกำหนด _ตัวคั่น_ เพื่อแยกคำสั่ง เนื้อหาหลัก และเนื้อหารองอย่างชัดเจนหรือไม่ ซึ่งช่วยให้โมเดลกำหนดน้ำหนักของโทเค็นได้แม่นยำขึ้น | -| ระบุชัดเจนและเจาะจง | ให้รายละเอียดเกี่ยวกับบริบท ผลลัพธ์ ความยาว รูปแบบ สไตล์ ฯลฯ มากขึ้น ซึ่งจะช่วยปรับปรุงคุณภาพและความสม่ำเสมอของคำตอบ จดบันทึกสูตรในเทมเพลตที่นำกลับมาใช้ใหม่ได้ | -| อธิบายและใช้ตัวอย่าง | โมเดลอาจตอบสนองได้ดีขึ้นกับวิธี "แสดงและบอก" เริ่มด้วยวิธี `zero-shot` ที่ให้คำสั่งโดยไม่มีตัวอย่าง จากนั้นลอง `few-shot` เพื่อปรับปรุงโดยให้ตัวอย่างผลลัพธ์ที่ต้องการ ใช้การเปรียบเทียบประกอบ | -| ใช้สัญญาณเพื่อเริ่มต้นคำตอบ | กระตุ้นให้โมเดลไปสู่ผลลัพธ์ที่ต้องการโดยให้คำหรือวลีเริ่มต้นที่โมเดลสามารถใช้เป็นจุดเริ่มต้นของคำตอบ | -| ทำซ้ำ | บางครั้งคุณอาจต้องพูดซ้ำกับโมเดล ให้คำสั่งก่อนและหลังเนื้อหาหลัก ใช้คำสั่งและสัญญาณร่วมกัน ทำซ้ำและตรวจสอบเพื่อดูว่าวิธีใดได้ผล | -| ลำดับมีความสำคัญ | ลำดับการนำเสนอข้อมูลให้โมเดลอาจส่งผลต่อผลลัพธ์ แม้แต่ในตัวอย่างการเรียนรู้ เนื่องจากอคติเรื่องความสดใหม่ ลองตัวเลือกต่าง ๆ เพื่อหาวิธีที่ดีที่สุด | -| ให้ทางเลือกกับโมเดล | ให้โมเดลมี _คำตอบสำรอง_ ที่สามารถใช้ได้หากไม่สามารถทำงานให้เสร็จสมบูรณ์ด้วยเหตุผลใด ๆ วิธีนี้ช่วยลดโอกาสที่โมเดลจะสร้างคำตอบผิดหรือแต่งขึ้นมา | -| | | - -เหมือนกับแนวทางปฏิบัติใด ๆ โปรดจำไว้ว่า _ผลลัพธ์อาจแตกต่างกัน_ ขึ้นอยู่กับโมเดล งาน และโดเมน ใช้สิ่งเหล่านี้เป็นจุดเริ่มต้น และทำซ้ำเพื่อหาวิธีที่เหมาะสมกับคุณ ปรับปรุงกระบวนการสร้างพรอมต์อย่างต่อเนื่องเมื่อมีโมเดลและเครื่องมือใหม่ ๆ พร้อมใช้งาน โดยเน้นที่ความสามารถในการขยายกระบวนการและคุณภาพของคำตอบ - - - -## การบ้าน - -ยินดีด้วย! คุณมาถึงตอนท้ายของบทเรียนแล้ว ถึงเวลาทดสอบแนวคิดและเทคนิคเหล่านั้นด้วยตัวอย่างจริง! - -สำหรับการบ้าน เราจะใช้ Jupyter Notebook ที่มีแบบฝึกหัดให้คุณทำแบบโต้ตอบได้ คุณยังสามารถเพิ่มเซลล์ Markdown และโค้ดของคุณเองเพื่อสำรวจไอเดียและเทคนิคต่าง ๆ ได้ด้วยตัวเอง - -### เริ่มต้นโดยการ fork รีโป จากนั้น - -- (แนะนำ) เปิดใช้งาน GitHub Codespaces -- (ทางเลือก) โคลนรีโปไปยังอุปกรณ์ของคุณและใช้กับ Docker Desktop -- (ทางเลือก) เปิด Notebook ด้วยสภาพแวดล้อมรันไทม์ Notebook ที่คุณชอบ - -### ต่อไป ตั้งค่าตัวแปรสภาพแวดล้อม - -- คัดลอกไฟล์ `.env.copy` ในโฟลเดอร์หลักของรีโปเป็น `.env` และกรอกค่า `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` และ `AZURE_OPENAI_DEPLOYMENT` กลับไปที่ [ส่วน Learning Sandbox](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) เพื่อเรียนรู้วิธีทำ - -### ต่อไป เปิด Jupyter Notebook - -- เลือกเคอร์เนลรันไทม์ หากใช้ตัวเลือก 1 หรือ 2 ให้เลือกเคอร์เนล Python 3.10.x ที่มาพร้อมกับ dev container - -คุณพร้อมที่จะทำแบบฝึกหัดแล้ว โปรดทราบว่าไม่มีคำตอบที่ _ถูกหรือผิด_ ในที่นี้ — เป็นการสำรวจตัวเลือกด้วยการลองผิดลองถูกและสร้างสัญชาตญาณว่าวิธีใดเหมาะกับโมเดลและโดเมนแอปพลิเคชันนั้น ๆ - -_ด้วยเหตุนี้ บทเรียนนี้จึงไม่มีส่วนโค้ดตัวอย่างคำตอบ แต่ใน Notebook จะมีเซลล์ Markdown ชื่อ "My Solution:" ที่แสดงตัวอย่างคำตอบหนึ่งตัวอย่างเพื่อเป็นแนวทาง_ - - - -## การตรวจสอบความรู้ - -ข้อใดต่อไปนี้เป็นพรอมต์ที่ดีตามแนวทางปฏิบัติที่เหมาะสม? - -1. แสดงภาพรถสีแดงให้ฉันดู -2. แสดงภาพรถสีแดงยี่ห้อ Volvo รุ่น XC90 จอดอยู่ริมหน้าผาพร้อมพระอาทิตย์ตก -3. แสดงภาพรถสีแดงยี่ห้อ Volvo รุ่น XC90 - -ตอบ: ข้อ 2 เป็นพรอมต์ที่ดีที่สุดเพราะให้รายละเอียดว่า "อะไร" และเจาะจงมาก (ไม่ใช่แค่รถใด ๆ แต่เป็นยี่ห้อและรุ่นเฉพาะ) และยังบรรยายสภาพแวดล้อมโดยรวม ข้อ 3 เป็นอันดับถัดไปเพราะมีคำอธิบายมากเช่นกัน - -## 🚀 ความท้าทาย - -ลองใช้เทคนิค "สัญญาณ" กับพรอมต์นี้: เติมประโยค "แสดงภาพรถสีแดงยี่ห้อ Volvo และ " โมเดลตอบอะไร และคุณจะปรับปรุงอย่างไร? - -## ทำได้ดีมาก! เรียนรู้ต่อไป - -อยากเรียนรู้เพิ่มเติมเกี่ยวกับแนวคิดการสร้างพรอมต์ต่าง ๆ หรือไม่? ไปที่ [หน้าการเรียนรู้ต่อเนื่อง](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) เพื่อค้นหาแหล่งข้อมูลดี ๆ เพิ่มเติมในหัวข้อนี้ - -ไปที่บทเรียนที่ 5 ซึ่งเราจะดูที่ [เทคนิคการสร้างพรอมต์ขั้นสูง](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**ข้อจำกัดความรับผิดชอบ**: -เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษาอัตโนมัติ [Co-op Translator](https://github.com/Azure/co-op-translator) แม้เราจะพยายามให้ความถูกต้องสูงสุด แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาต้นทางถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลโดยผู้เชี่ยวชาญมนุษย์ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดใด ๆ ที่เกิดจากการใช้การแปลนี้ \ No newline at end of file + + + + + + + diff --git a/translations/th/09-building-image-applications/README.md b/translations/th/09-building-image-applications/README.md index 785ab3f62..405e06360 100644 --- a/translations/th/09-building-image-applications/README.md +++ b/translations/th/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# การสร้างแอปพลิเคชันสร้างภาพ - -[![การสร้างแอปพลิเคชันสร้างภาพ](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.th.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -ความสามารถของ LLMs ไม่ได้จำกัดแค่การสร้างข้อความเท่านั้น แต่ยังสามารถสร้างภาพจากคำบรรยายข้อความได้อีกด้วย การมีภาพเป็นรูปแบบข้อมูลหนึ่งสามารถมีประโยชน์อย่างมากในหลายๆ ด้าน เช่น MedTech, สถาปัตยกรรม, การท่องเที่ยว, การพัฒนาเกม และอื่นๆ ในบทนี้ เราจะมาดูสองโมเดลสร้างภาพที่ได้รับความนิยมมากที่สุด คือ DALL-E และ Midjourney - -## บทนำ - -ในบทเรียนนี้ เราจะพูดถึง: - -- การสร้างภาพและเหตุผลที่มันมีประโยชน์ -- DALL-E และ Midjourney คืออะไร และทำงานอย่างไร -- วิธีการสร้างแอปพลิเคชันสร้างภาพ - -## เป้าหมายการเรียนรู้ - -หลังจากเรียนบทนี้จบ คุณจะสามารถ: - -- สร้างแอปพลิเคชันสร้างภาพได้ -- กำหนดขอบเขตของแอปพลิเคชันด้วย meta prompts -- ใช้งาน DALL-E และ Midjourney ได้ - -## ทำไมต้องสร้างแอปพลิเคชันสร้างภาพ? - -แอปพลิเคชันสร้างภาพเป็นวิธีที่ดีในการสำรวจความสามารถของ Generative AI ตัวอย่างการใช้งาน เช่น - -- **แก้ไขและสังเคราะห์ภาพ** คุณสามารถสร้างภาพสำหรับกรณีการใช้งานต่างๆ เช่น การแก้ไขภาพและการสังเคราะห์ภาพ - -- **ประยุกต์ใช้ในหลายอุตสาหกรรม** สามารถใช้สร้างภาพสำหรับอุตสาหกรรมต่างๆ เช่น Medtech, การท่องเที่ยว, การพัฒนาเกม และอื่นๆ - -## กรณีศึกษา: Edu4All - -ในบทเรียนนี้ เราจะทำงานร่วมกับสตาร์ทอัพ Edu4All ต่อไป นักเรียนจะสร้างภาพสำหรับการประเมินผลของพวกเขา ภาพที่สร้างขึ้นจะขึ้นอยู่กับนักเรียนเอง อาจเป็นภาพประกอบนิทานของตัวเอง สร้างตัวละครใหม่สำหรับเรื่องราว หรือช่วยให้พวกเขาเห็นภาพความคิดและแนวคิดของตน - -นี่คือตัวอย่างภาพที่นักเรียน Edu4All อาจสร้างขึ้นหากพวกเขาทำงานในชั้นเรียนเกี่ยวกับอนุสาวรีย์: - -![Edu4All startup, class on monuments, Eiffel Tower](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.th.png) - -โดยใช้ prompt เช่น - -> "Dog next to Eiffel Tower in early morning sunlight" - -## DALL-E และ Midjourney คืออะไร? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) และ [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) เป็นโมเดลสร้างภาพที่ได้รับความนิยมสูงสุดสองตัว ซึ่งช่วยให้คุณใช้ prompt เพื่อสร้างภาพได้ - -### DALL-E - -เริ่มจาก DALL-E ซึ่งเป็นโมเดล Generative AI ที่สร้างภาพจากคำบรรยายข้อความ - -> [DALL-E เป็นการผสมผสานของสองโมเดล คือ CLIP และ diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst) - -- **CLIP** คือโมเดลที่สร้าง embeddings ซึ่งเป็นตัวแทนเชิงตัวเลขของข้อมูลจากภาพและข้อความ - -- **Diffused attention** คือโมเดลที่สร้างภาพจาก embeddings DALL-E ถูกฝึกด้วยชุดข้อมูลภาพและข้อความ และสามารถใช้สร้างภาพจากคำบรรยายข้อความได้ เช่น สร้างภาพแมวใส่หมวก หรือสุนัขที่มีทรงผม mohawk - -### Midjourney - -Midjourney ทำงานคล้ายกับ DALL-E โดยสร้างภาพจาก prompt ข้อความ Midjourney สามารถใช้สร้างภาพจาก prompt เช่น “a cat in a hat” หรือ “dog with a mohawk” ได้เช่นกัน - -![Image generated by Midjourney, mechanical pigeon](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_ภาพจาก Wikipedia, สร้างโดย Midjourney_ - -## DALL-E และ Midjourney ทำงานอย่างไร - -เริ่มจาก [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst) DALL-E เป็นโมเดล Generative AI ที่ใช้สถาปัตยกรรม transformer แบบ _autoregressive transformer_ - -_autoregressive transformer_ คือวิธีที่โมเดลสร้างภาพจากคำบรรยายข้อความ โดยจะสร้างทีละพิกเซล จากนั้นใช้พิกเซลที่สร้างขึ้นเพื่อสร้างพิกเซลถัดไป ผ่านหลายชั้นในโครงข่ายประสาทเทียมจนภาพสมบูรณ์ - -ด้วยกระบวนการนี้ DALL-E สามารถควบคุมลักษณะต่างๆ วัตถุ คุณสมบัติ และอื่นๆ ในภาพที่สร้างขึ้นได้ อย่างไรก็ตาม DALL-E 2 และ 3 มีการควบคุมภาพที่สร้างได้มากขึ้น - -## การสร้างแอปพลิเคชันสร้างภาพแรกของคุณ - -แล้วต้องใช้อะไรบ้างในการสร้างแอปพลิเคชันสร้างภาพ? คุณต้องใช้ไลบรารีดังนี้: - -- **python-dotenv** แนะนำให้ใช้ไลบรารีนี้เพื่อเก็บข้อมูลลับในไฟล์ _.env_ แยกจากโค้ด -- **openai** ไลบรารีนี้ใช้สำหรับติดต่อกับ OpenAI API -- **pillow** สำหรับจัดการภาพใน Python -- **requests** ช่วยในการส่งคำขอ HTTP - -1. สร้างไฟล์ _.env_ โดยมีเนื้อหาดังนี้: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - หาข้อมูลนี้ได้ใน Azure Portal สำหรับ resource ของคุณในส่วน "Keys and Endpoint" - -1. รวบรวมไลบรารีข้างต้นในไฟล์ชื่อ _requirements.txt_ ดังนี้: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. สร้าง virtual environment และติดตั้งไลบรารี: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - สำหรับ Windows ใช้คำสั่งต่อไปนี้เพื่อสร้างและเปิดใช้งาน virtual environment: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. เพิ่มโค้ดต่อไปนี้ในไฟล์ชื่อ _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -มาอธิบายโค้ดนี้กัน: - -- เริ่มจากการนำเข้าไลบรารีที่ต้องใช้ รวมถึงไลบรารี OpenAI, dotenv, requests และ Pillow - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- จากนั้นโหลดตัวแปรสภาพแวดล้อมจากไฟล์ _.env_ - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- ตั้งค่า endpoint, key สำหรับ OpenAI API, เวอร์ชัน และประเภท - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- ต่อไป สร้างภาพ: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - โค้ดข้างต้นจะตอบกลับด้วย JSON ที่มี URL ของภาพที่สร้างขึ้น เราสามารถใช้ URL นี้ดาวน์โหลดภาพและบันทึกลงไฟล์ได้ - -- สุดท้าย เปิดภาพและใช้โปรแกรมดูภาพมาตรฐานแสดงผล: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### รายละเอียดเพิ่มเติมเกี่ยวกับการสร้างภาพ - -มาดูโค้ดที่สร้างภาพอย่างละเอียด: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** คือข้อความที่ใช้สร้างภาพ ในกรณีนี้ใช้ prompt ว่า "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils" -- **size** คือขนาดของภาพที่สร้าง ในกรณีนี้คือ 1024x1024 พิกเซล -- **n** คือจำนวนภาพที่สร้าง ในกรณีนี้สร้างสองภาพ -- **temperature** คือพารามิเตอร์ที่ควบคุมความสุ่มของผลลัพธ์ของโมเดล Generative AI ค่า temperature อยู่ระหว่าง 0 ถึง 1 โดย 0 หมายถึงผลลัพธ์ที่แน่นอน และ 1 หมายถึงผลลัพธ์ที่สุ่ม ค่าเริ่มต้นคือ 0.7 - -ยังมีสิ่งอื่นๆ ที่คุณสามารถทำกับภาพได้ ซึ่งเราจะพูดถึงในส่วนถัดไป - -## ความสามารถเพิ่มเติมของการสร้างภาพ - -จนถึงตอนนี้คุณเห็นแล้วว่าเราสามารถสร้างภาพได้ด้วยโค้ด Python เพียงไม่กี่บรรทัด แต่ยังมีสิ่งอื่นๆ ที่ทำได้กับภาพอีก - -คุณยังสามารถทำสิ่งต่อไปนี้ได้: - -- **แก้ไขภาพ** โดยให้ภาพที่มีอยู่ หน้ากาก (mask) และ prompt คุณสามารถเปลี่ยนแปลงภาพได้ เช่น เพิ่มสิ่งของบางอย่างในส่วนหนึ่งของภาพ ลองนึกถึงภาพกระต่ายของเรา คุณสามารถเพิ่มหมวกให้กระต่ายได้ วิธีทำคือให้ภาพ หน้ากาก (ระบุส่วนที่ต้องการเปลี่ยนแปลง) และ prompt ข้อความบอกว่าต้องทำอะไร - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - ภาพต้นฉบับจะมีแค่กระต่าย แต่ภาพสุดท้ายจะมีหมวกบนกระต่าย - -- **สร้างภาพแบบแปรผัน** แนวคิดคือคุณนำภาพที่มีอยู่แล้วและขอให้สร้างภาพแบบแปรผัน โดยให้ภาพและ prompt ข้อความพร้อมโค้ดดังนี้: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > หมายเหตุ: ฟีเจอร์นี้รองรับเฉพาะ OpenAI เท่านั้น - -## Temperature - -Temperature คือพารามิเตอร์ที่ควบคุมความสุ่มของผลลัพธ์ของโมเดล Generative AI ค่า temperature อยู่ระหว่าง 0 ถึง 1 โดย 0 หมายถึงผลลัพธ์ที่แน่นอน และ 1 หมายถึงผลลัพธ์ที่สุ่ม ค่าเริ่มต้นคือ 0.7 - -มาดูตัวอย่างการทำงานของ temperature โดยรัน prompt นี้สองครั้ง: - -> Prompt : "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils" - -![Bunny on a horse holding a lollipop, version 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.th.png) - -ตอนนี้ลองรัน prompt เดิมอีกครั้งเพื่อดูว่าเราจะได้ภาพเหมือนเดิมหรือไม่: - -![Generated image of bunny on horse](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.th.png) - -อย่างที่เห็น ภาพทั้งสองคล้ายกันแต่ไม่เหมือนกัน ลองเปลี่ยนค่า temperature เป็น 0.1 แล้วดูผลลัพธ์: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### การเปลี่ยนค่า temperature - -ลองทำให้ผลลัพธ์มีความแน่นอนมากขึ้น จากภาพสองภาพที่สร้าง เราจะเห็นว่าในภาพแรกมีเจ้ากระต่าย และภาพที่สองมีม้า ดังนั้นภาพจึงแตกต่างกันมาก - -ดังนั้นเราจะเปลี่ยนโค้ดโดยตั้งค่า temperature เป็น 0 ดังนี้: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -เมื่อรันโค้ดนี้ คุณจะได้ภาพสองภาพนี้: - -- ![Temperature 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.th.png) -- ![Temperature 0 , v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.th.png) - -ที่นี่คุณจะเห็นได้ชัดว่าภาพทั้งสองมีความคล้ายคลึงกันมากขึ้น - -## วิธีการกำหนดขอบเขตของแอปพลิเคชันด้วย metaprompts - -ด้วยเดโมของเรา เราสามารถสร้างภาพให้ลูกค้าได้แล้ว แต่เราต้องกำหนดขอบเขตของแอปพลิเคชัน - -เช่น เราไม่ต้องการสร้างภาพที่ไม่เหมาะสมสำหรับที่ทำงาน หรือไม่เหมาะสำหรับเด็ก - -เราสามารถทำได้ด้วย _metaprompts_ ซึ่งเป็น prompt ข้อความที่ใช้ควบคุมผลลัพธ์ของโมเดล Generative AI เช่น ใช้ metaprompts เพื่อควบคุมผลลัพธ์ให้ภาพที่สร้างปลอดภัยสำหรับที่ทำงาน หรือเหมาะสำหรับเด็ก - -### มันทำงานอย่างไร? - -แล้ว metaprompts ทำงานอย่างไร? - -metaprompts คือ prompt ข้อความที่ใช้ควบคุมผลลัพธ์ของโมเดล Generative AI โดยจะวางไว้ก่อน prompt ข้อความหลัก และใช้ควบคุมผลลัพธ์ของโมเดล รวมถึงฝังในแอปพลิเคชันเพื่อควบคุมผลลัพธ์ของโมเดล โดยรวม prompt หลักและ metaprompt ไว้ใน prompt เดียวกัน - -ตัวอย่าง metaprompt เช่นนี้: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -ตอนนี้มาดูวิธีใช้ metaprompts ในเดโมของเรา - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -จาก prompt ข้างต้น คุณจะเห็นว่าภาพทั้งหมดที่สร้างขึ้นจะคำนึงถึง metaprompt ด้วย - -## แบบฝึกหัด - ให้โอกาสนักเรียนสร้างภาพ - -เราได้แนะนำ Edu4All ตั้งแต่ต้นบทเรียน ตอนนี้ถึงเวลาที่จะให้โอกาสนักเรียนสร้างภาพสำหรับการประเมินผลของพวกเขา - -นักเรียนจะสร้างภาพสำหรับการประเมินที่มีอนุสาวรีย์ โดยอนุสาวรีย์ที่เลือกขึ้นอยู่กับนักเรียนเอง นักเรียนถูกขอให้ใช้ความคิดสร้างสรรค์ในการวางอนุสาวรีย์เหล่านี้ในบริบทต่างๆ - -## ตัวอย่างคำตอบ - -นี่คือตัวอย่างคำตอบหนึ่ง: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## ทำได้ดีมาก! เรียนรู้ต่อไป - -หลังจากเรียนบทนี้จบแล้ว ลองดู [คอลเลกชันการเรียนรู้ Generative AI](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) ของเราเพื่อพัฒนาความรู้ด้าน Generative AI ต่อไป! - -ไปที่บทเรียนที่ 10 ซึ่งเราจะพูดถึงวิธี [สร้างแอปพลิเคชัน AI ด้วย low-code](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**ข้อจำกัดความรับผิดชอบ**: -เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษาอัตโนมัติ [Co-op Translator](https://github.com/Azure/co-op-translator) แม้เราจะพยายามให้ความถูกต้องสูงสุด แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาต้นทางถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลโดยผู้เชี่ยวชาญมนุษย์ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดใด ๆ ที่เกิดจากการใช้การแปลนี้ \ No newline at end of file + + + + diff --git a/translations/th/12-designing-ux-for-ai-applications/README.md b/translations/th/12-designing-ux-for-ai-applications/README.md index 66cfbd974..0540da175 100644 --- a/translations/th/12-designing-ux-for-ai-applications/README.md +++ b/translations/th/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# การออกแบบ UX สำหรับแอปพลิเคชัน AI - -[![Designing UX for AI Applications](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.th.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(คลิกที่ภาพด้านบนเพื่อดูวิดีโอบทเรียนนี้)_ - -ประสบการณ์ผู้ใช้เป็นสิ่งสำคัญมากในการสร้างแอป ผู้ใช้ต้องสามารถใช้งานแอปของคุณได้อย่างมีประสิทธิภาพเพื่อทำงานให้สำเร็จ การมีประสิทธิภาพเป็นสิ่งหนึ่ง แต่คุณยังต้องออกแบบแอปให้ทุกคนสามารถใช้งานได้ เพื่อให้แอปนั้น _เข้าถึงได้_ บทนี้จะเน้นในส่วนนี้ เพื่อให้คุณออกแบบแอปที่ผู้คนสามารถและอยากใช้งานได้ - -## บทนำ - -ประสบการณ์ผู้ใช้คือวิธีที่ผู้ใช้โต้ตอบและใช้งานผลิตภัณฑ์หรือบริการเฉพาะ ไม่ว่าจะเป็นระบบ เครื่องมือ หรือการออกแบบ เมื่อพัฒนาแอป AI นักพัฒนาไม่เพียงแต่เน้นให้ประสบการณ์ผู้ใช้มีประสิทธิผลเท่านั้น แต่ยังต้องคำนึงถึงจริยธรรมด้วย ในบทเรียนนี้ เราจะพูดถึงวิธีการสร้างแอปปัญญาประดิษฐ์ (AI) ที่ตอบสนองความต้องการของผู้ใช้ - -บทเรียนจะครอบคลุมหัวข้อต่อไปนี้: - -- บทนำสู่ประสบการณ์ผู้ใช้และการเข้าใจความต้องการของผู้ใช้ -- การออกแบบแอป AI เพื่อความน่าเชื่อถือและความโปร่งใส -- การออกแบบแอป AI เพื่อความร่วมมือและการรับข้อเสนอแนะ - -## เป้าหมายการเรียนรู้ - -หลังจากเรียนบทนี้ คุณจะสามารถ: - -- เข้าใจวิธีสร้างแอป AI ที่ตอบสนองความต้องการของผู้ใช้ -- ออกแบบแอป AI ที่ส่งเสริมความน่าเชื่อถือและความร่วมมือ - -### ข้อกำหนดเบื้องต้น - -ใช้เวลาศึกษาเพิ่มเติมเกี่ยวกับ [ประสบการณ์ผู้ใช้และการคิดเชิงออกแบบ](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## บทนำสู่ประสบการณ์ผู้ใช้และการเข้าใจความต้องการของผู้ใช้ - -ในสตาร์ทอัพการศึกษาที่สมมติขึ้น เรามีผู้ใช้หลักสองกลุ่ม คือ ครูและนักเรียน ผู้ใช้แต่ละกลุ่มมีความต้องการเฉพาะตัว การออกแบบที่เน้นผู้ใช้เป็นศูนย์กลางจะให้ความสำคัญกับผู้ใช้ เพื่อให้ผลิตภัณฑ์มีความเกี่ยวข้องและเป็นประโยชน์กับกลุ่มเป้าหมาย - -แอปควรมีความ **มีประโยชน์ เชื่อถือได้ เข้าถึงได้ และน่าใช้งาน** เพื่อมอบประสบการณ์ผู้ใช้ที่ดี - -### การใช้งานง่าย - -การมีประโยชน์หมายถึงแอปมีฟังก์ชันที่ตรงกับวัตถุประสงค์ เช่น การทำให้กระบวนการให้คะแนนอัตโนมัติ หรือการสร้างแฟลชการ์ดสำหรับทบทวน แอปที่ทำการให้คะแนนอัตโนมัติควรสามารถให้คะแนนงานของนักเรียนได้อย่างแม่นยำและรวดเร็วตามเกณฑ์ที่กำหนด เช่นเดียวกับแอปที่สร้างแฟลชการ์ดทบทวน ควรสร้างคำถามที่เกี่ยวข้องและหลากหลายตามข้อมูลที่มี - -### ความน่าเชื่อถือ - -ความน่าเชื่อถือหมายถึงแอปสามารถทำงานได้อย่างสม่ำเสมอและไม่มีข้อผิดพลาด อย่างไรก็ตาม AI ก็เหมือนมนุษย์ที่ไม่สมบูรณ์แบบและอาจเกิดข้อผิดพลาดได้ แอปอาจเจอข้อผิดพลาดหรือสถานการณ์ที่ไม่คาดคิดซึ่งต้องการการแทรกแซงหรือแก้ไขจากมนุษย์ คุณจะจัดการกับข้อผิดพลาดอย่างไร? ในส่วนท้ายของบทเรียนนี้ เราจะพูดถึงการออกแบบระบบ AI และแอปเพื่อความร่วมมือและการรับข้อเสนอแนะ - -### การเข้าถึง - -การเข้าถึงหมายถึงการขยายประสบการณ์ผู้ใช้ให้ครอบคลุมผู้ใช้ที่มีความสามารถหลากหลาย รวมถึงผู้ที่มีความบกพร่อง เพื่อให้ไม่มีใครถูกทิ้งไว้ข้างหลัง โดยการปฏิบัติตามแนวทางและหลักการการเข้าถึง โซลูชัน AI จะมีความครอบคลุม ใช้งานง่าย และเป็นประโยชน์กับผู้ใช้ทุกคนมากขึ้น - -### ความน่าใช้งาน - -ความน่าใช้งานหมายถึงแอปใช้งานได้อย่างสนุกสนาน ประสบการณ์ผู้ใช้ที่น่าดึงดูดสามารถส่งผลดีต่อผู้ใช้ กระตุ้นให้พวกเขากลับมาใช้แอปอีก และเพิ่มรายได้ทางธุรกิจ - -![ภาพแสดงการพิจารณา UX ใน AI](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.th.png) - -ไม่ใช่ทุกปัญหาที่จะแก้ได้ด้วย AI AI เข้ามาช่วยเสริมประสบการณ์ผู้ใช้ ไม่ว่าจะเป็นการทำงานอัตโนมัติ หรือการปรับแต่งประสบการณ์ผู้ใช้ให้เหมาะสม - -## การออกแบบแอป AI เพื่อความน่าเชื่อถือและความโปร่งใส - -การสร้างความน่าเชื่อถือเป็นสิ่งสำคัญเมื่อออกแบบแอป AI ความน่าเชื่อถือทำให้ผู้ใช้มั่นใจว่าแอปจะทำงานได้ตามที่ต้องการ ส่งมอบผลลัพธ์อย่างสม่ำเสมอ และผลลัพธ์นั้นตรงกับความต้องการของผู้ใช้ ความเสี่ยงในส่วนนี้คือความไม่ไว้วางใจและความไว้วางใจเกินไป ความไม่ไว้วางใจเกิดขึ้นเมื่อผู้ใช้มีความเชื่อมั่นในระบบ AI น้อยหรือไม่มีเลย ซึ่งนำไปสู่การปฏิเสธแอปของคุณ ความไว้วางใจเกินไปเกิดขึ้นเมื่อผู้ใช้ประเมินความสามารถของระบบ AI สูงเกินจริง ทำให้ไว้วางใจระบบ AI มากเกินไป เช่น ระบบให้คะแนนอัตโนมัติในกรณีความไว้วางใจเกินไป อาจทำให้ครูไม่ตรวจสอบงานบางส่วนเพื่อให้แน่ใจว่าระบบให้คะแนนทำงานได้ดี ซึ่งอาจส่งผลให้คะแนนไม่ยุติธรรมหรือไม่ถูกต้องสำหรับนักเรียน หรือพลาดโอกาสในการให้ข้อเสนอแนะและปรับปรุง - -สองวิธีในการทำให้ความน่าเชื่อถือเป็นหัวใจของการออกแบบคือ ความสามารถในการอธิบาย และการควบคุม - -### ความสามารถในการอธิบาย - -เมื่อ AI ช่วยในการตัดสินใจ เช่น การถ่ายทอดความรู้สู่คนรุ่นหลัง ครูและผู้ปกครองจึงต้องเข้าใจว่าการตัดสินใจของ AI เป็นอย่างไร นี่คือความสามารถในการอธิบาย - การเข้าใจวิธีที่แอป AI ตัดสินใจ การออกแบบเพื่อความสามารถในการอธิบายรวมถึงการเพิ่มรายละเอียดตัวอย่างของสิ่งที่แอป AI สามารถทำได้ เช่น แทนที่จะใช้คำว่า "เริ่มต้นกับ AI teacher" ระบบอาจใช้ว่า "สรุปบันทึกของคุณเพื่อทบทวง่ายขึ้นด้วย AI" - -![หน้าแอปที่แสดงความสามารถในการอธิบายของแอป AI อย่างชัดเจน](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.th.png) - -ตัวอย่างอีกอย่างคือวิธีที่ AI ใช้ข้อมูลผู้ใช้และข้อมูลส่วนบุคคล เช่น ผู้ใช้ที่มีบุคลิกภาพเป็นนักเรียนอาจมีข้อจำกัดตามบุคลิกภาพนั้น AI อาจไม่สามารถเปิดเผยคำตอบของคำถามได้ แต่ช่วยชี้แนะแนวทางให้ผู้ใช้คิดแก้ปัญหาเอง - -![AI ตอบคำถามตามบุคลิกภาพ](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.th.png) - -ส่วนสำคัญอีกอย่างของความสามารถในการอธิบายคือการทำให้อธิบายง่ายขึ้น นักเรียนและครูอาจไม่ใช่ผู้เชี่ยวชาญด้าน AI ดังนั้นคำอธิบายเกี่ยวกับสิ่งที่แอปทำได้หรือทำไม่ได้ควรเรียบง่ายและเข้าใจง่าย - -![คำอธิบายที่เรียบง่ายเกี่ยวกับความสามารถของ AI](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.th.png) - -### การควบคุม - -Generative AI สร้างความร่วมมือระหว่าง AI กับผู้ใช้ เช่น ผู้ใช้สามารถปรับแต่ง prompt เพื่อให้ได้ผลลัพธ์ที่แตกต่างกัน นอกจากนี้ เมื่อได้ผลลัพธ์แล้ว ผู้ใช้ควรสามารถแก้ไขผลลัพธ์นั้นได้ เพื่อให้รู้สึกว่ามีการควบคุม เช่น เมื่อใช้ Bing คุณสามารถปรับแต่ง prompt ตามรูปแบบ น้ำเสียง และความยาว นอกจากนี้ยังสามารถแก้ไขผลลัพธ์ได้ตามภาพด้านล่างนี้: - -![ผลการค้นหา Bing พร้อมตัวเลือกแก้ไข prompt และผลลัพธ์](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.th.png) - -ฟีเจอร์อีกอย่างใน Bing ที่ช่วยให้ผู้ใช้ควบคุมแอปได้คือความสามารถในการเลือกเข้าร่วมหรือไม่เข้าร่วมการใช้ข้อมูล AI สำหรับแอปโรงเรียน นักเรียนอาจต้องการใช้บันทึกของตนเองรวมถึงทรัพยากรของครูเป็นวัสดุทบทวน - -![ผลการค้นหา Bing พร้อมตัวเลือกแก้ไข prompt และผลลัพธ์](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.th.png) - -> เมื่อออกแบบแอป AI ความตั้งใจเป็นกุญแจสำคัญในการป้องกันไม่ให้ผู้ใช้ไว้วางใจเกินไปจนตั้งความคาดหวังที่ไม่สมจริง วิธีหนึ่งคือสร้างความล่าช้าระหว่าง prompt กับผลลัพธ์ เพื่อเตือนผู้ใช้ว่านี่คือ AI ไม่ใช่มนุษย์คนหนึ่ง - -## การออกแบบแอป AI เพื่อความร่วมมือและการรับข้อเสนอแนะ - -อย่างที่กล่าวไว้ Generative AI สร้างความร่วมมือระหว่างผู้ใช้กับ AI ส่วนใหญ่เป็นการที่ผู้ใช้ป้อน prompt และ AI สร้างผลลัพธ์ ถ้าผลลัพธ์ผิดพลาด แอปจะจัดการกับข้อผิดพลาดอย่างไร? AI จะโทษผู้ใช้หรือใช้เวลาอธิบายข้อผิดพลาดหรือไม่? - -แอป AI ควรถูกออกแบบให้รับและให้ข้อเสนอแนะ ซึ่งไม่เพียงช่วยให้ระบบ AI พัฒนา แต่ยังสร้างความน่าเชื่อถือกับผู้ใช้ด้วย วงจรข้อเสนอแนะควรถูกใส่ไว้ในการออกแบบ เช่น การกดไลค์หรือไม่ชอบผลลัพธ์อย่างง่าย - -อีกวิธีจัดการคือสื่อสารอย่างชัดเจนถึงความสามารถและข้อจำกัดของระบบ เมื่อผู้ใช้ทำผิดพลาดโดยขอสิ่งที่เกินความสามารถของ AI ควรมีวิธีจัดการดังภาพด้านล่าง - -![การให้ข้อเสนอแนะและการจัดการข้อผิดพลาด](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.th.png) - -ข้อผิดพลาดของระบบเป็นเรื่องปกติในแอปที่ผู้ใช้อาจต้องการความช่วยเหลือในข้อมูลที่อยู่นอกขอบเขตของ AI หรือแอปอาจจำกัดจำนวนคำถาม/หัวข้อที่ผู้ใช้สามารถสร้างสรุปได้ เช่น แอป AI ที่ฝึกด้วยข้อมูลในหัวข้อจำกัด เช่น ประวัติศาสตร์และคณิตศาสตร์ อาจไม่สามารถตอบคำถามเกี่ยวกับภูมิศาสตร์ได้ เพื่อแก้ไขปัญหานี้ ระบบ AI อาจตอบว่า: "ขออภัย ผลิตภัณฑ์ของเราฝึกด้วยข้อมูลในหัวข้อต่อไปนี้..... ฉันไม่สามารถตอบคำถามที่คุณถามได้" - -แอป AI ไม่สมบูรณ์แบบ จึงต้องมีข้อผิดพลาด เมื่อออกแบบแอปของคุณ ควรสร้างช่องทางให้ผู้ใช้ส่งข้อเสนอแนะและจัดการข้อผิดพลาดในรูปแบบที่เรียบง่ายและอธิบายได้ง่าย - -## การบ้าน - -นำแอป AI ที่คุณสร้างจนถึงตอนนี้มาพิจารณานำขั้นตอนต่อไปนี้ไปใช้ในแอปของคุณ: - -- **ความน่าใช้งาน:** คิดว่าคุณจะทำให้แอปของคุณน่าใช้งานมากขึ้นได้อย่างไร คุณใส่คำอธิบายทุกที่หรือไม่? คุณส่งเสริมให้ผู้ใช้สำรวจหรือเปล่า? คุณใช้ถ้อยคำอย่างไรในข้อความแสดงข้อผิดพลาด? - -- **การใช้งานง่าย:** สร้างเว็บแอป ตรวจสอบให้แน่ใจว่าแอปของคุณสามารถใช้งานได้ทั้งด้วยเมาส์และคีย์บอร์ด - -- **ความน่าเชื่อถือและความโปร่งใส:** อย่าไว้วางใจ AI และผลลัพธ์ของมันทั้งหมด คิดว่าคุณจะเพิ่มมนุษย์เข้ามาตรวจสอบผลลัพธ์อย่างไร และพิจารณาใช้วิธีอื่นๆ เพื่อสร้างความน่าเชื่อถือและความโปร่งใส - -- **การควบคุม:** ให้ผู้ใช้ควบคุมข้อมูลที่พวกเขาให้กับแอป ใช้วิธีให้ผู้ใช้เลือกเข้าร่วมหรือไม่เข้าร่วมการเก็บข้อมูลในแอป AI - -## เรียนรู้ต่อเนื่อง! - -หลังจากเรียนบทนี้เสร็จแล้ว ลองดู [คอลเลกชันการเรียนรู้ Generative AI](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) เพื่อพัฒนาความรู้ด้าน Generative AI ของคุณต่อไป! - -ไปที่บทเรียนที่ 13 ซึ่งเราจะพูดถึงวิธี [การรักษาความปลอดภัยแอป AI](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**ข้อจำกัดความรับผิดชอบ**: -เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษาอัตโนมัติ [Co-op Translator](https://github.com/Azure/co-op-translator) แม้เราจะพยายามให้ความถูกต้องสูงสุด แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาต้นทางถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลโดยผู้เชี่ยวชาญมนุษย์ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดใด ๆ ที่เกิดจากการใช้การแปลนี้ \ No newline at end of file + + + diff --git a/translations/th/README.md b/translations/th/README.md index a50a4d929..4b7a5bb73 100644 --- a/translations/th/README.md +++ b/translations/th/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.th.png) - -### 21 บทเรียนที่สอนทุกสิ่งที่คุณต้องรู้เพื่อเริ่มสร้างแอปพลิเคชัน Generative AI - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 รองรับหลายภาษา - -#### สนับสนุนผ่าน GitHub Action (อัตโนมัติ & อัปเดตเสมอ) - -[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](./README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md) - -# Generative AI for Beginners (เวอร์ชัน 3) - คอร์สเรียน - -เรียนรู้พื้นฐานการสร้างแอปพลิเคชัน Generative AI กับคอร์สเรียนครบถ้วน 21 บทเรียนโดย Microsoft Cloud Advocates - -## 🌱 เริ่มต้นใช้งาน - -คอร์สนี้มีทั้งหมด 21 บทเรียน แต่ละบทเรียนจะครอบคลุมหัวข้อของตัวเอง คุณสามารถเริ่มเรียนจากบทไหนก็ได้ตามใจชอบ! - -บทเรียนจะแบ่งเป็นบทเรียน "Learn" ที่อธิบายแนวคิดของ Generative AI และบทเรียน "Build" ที่อธิบายแนวคิดพร้อมตัวอย่างโค้ดใน **Python** และ **TypeScript** เมื่อเป็นไปได้ - -สำหรับนักพัฒนา .NET สามารถดูได้ที่ [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -แต่ละบทเรียนยังมีส่วน "Keep Learning" ที่แนะนำเครื่องมือเรียนรู้เพิ่มเติม - -## สิ่งที่คุณต้องมี -### ในการรันโค้ดของคอร์สนี้ คุณสามารถใช้ได้จาก: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **บทเรียน:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **บทเรียน:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **บทเรียน:** "oai-assignment" - -- ความรู้พื้นฐานเกี่ยวกับ Python หรือ TypeScript จะช่วยได้ - \*สำหรับผู้เริ่มต้นจริงๆ สามารถดูคอร์ส [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) และ [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) -- บัญชี GitHub เพื่อ [fork โค้ดทั้งหมดนี้](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) ไปยังบัญชี GitHub ของคุณเอง - -เราได้สร้างบทเรียน **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** เพื่อช่วยคุณตั้งค่าสภาพแวดล้อมการพัฒนา - -อย่าลืม [กดดาว (🌟) ที่ repo นี้](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) เพื่อให้ค้นหาได้ง่ายขึ้นในภายหลัง - -## 🧠 พร้อมจะนำไปใช้งานจริงหรือยัง? - -ถ้าคุณกำลังมองหาตัวอย่างโค้ดที่ซับซ้อนขึ้น ลองดู [ชุดตัวอย่างโค้ด Generative AI](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) ของเราในทั้ง **Python** และ **TypeScript** - -## 🗣️ พบปะผู้เรียนคนอื่นๆ และรับการช่วยเหลือ - -เข้าร่วม [เซิร์ฟเวอร์ Discord อย่างเป็นทางการของ Azure AI Foundry](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) เพื่อพบปะและสร้างเครือข่ายกับผู้เรียนคนอื่นๆ ที่เรียนคอร์สนี้ และรับการช่วยเหลือ - -ถามคำถามหรือแชร์ความคิดเห็นเกี่ยวกับผลิตภัณฑ์ได้ที่ [ฟอรัม Azure AI Foundry Developer](https://aka.ms/azureaifoundry/forum) บน Github - -## 🚀 กำลังสร้างสตาร์ทอัพ? - -สมัครใช้งาน [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) เพื่อรับ **เครดิต OpenAI ฟรี** และเครดิต Azure สูงสุดถึง **$150k สำหรับเข้าถึงโมเดล OpenAI ผ่าน Azure OpenAI Services** - -## 🙏 ต้องการช่วยเหลือ? - -มีข้อเสนอแนะหรือพบข้อผิดพลาดในการสะกดคำหรือโค้ดไหม? [แจ้งปัญหา](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) หรือ [สร้าง pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 แต่ละบทเรียนประกอบด้วย: - -- วิดีโอแนะนำหัวข้อสั้นๆ -- บทเรียนที่เขียนไว้ใน README -- ตัวอย่างโค้ด Python และ TypeScript ที่รองรับ Azure OpenAI และ OpenAI API -- ลิงก์ไปยังแหล่งข้อมูลเพิ่มเติมเพื่อเรียนรู้ต่อ - -## 🗃️ บทเรียน - -| # | **ลิงก์บทเรียน** | **คำอธิบาย** | **วิดีโอ** | **แหล่งเรียนรู้เพิ่มเติม** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** วิธีตั้งค่าสภาพแวดล้อมการพัฒนาของคุณ | วิดีโอกำลังจะมา | [เรียนรู้เพิ่มเติม](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introduction to Generative AI and LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** ทำความเข้าใจว่า Generative AI คืออะไร และโมเดลภาษาใหญ่ (LLMs) ทำงานอย่างไร | [วิดีโอ](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [เรียนรู้เพิ่มเติม](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Exploring and comparing different LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** วิธีเลือกโมเดลที่เหมาะสมกับกรณีการใช้งานของคุณ | [วิดีโอ](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [เรียนรู้เพิ่มเติม](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Using Generative AI Responsibly](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** วิธีสร้างแอปพลิเคชัน Generative AI อย่างรับผิดชอบ | [วิดีโอ](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [เรียนรู้เพิ่มเติม](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Understanding Prompt Engineering Fundamentals](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** ฝึกปฏิบัติแนวทางปฏิบัติที่ดีที่สุดในการออกแบบ Prompt | [วิดีโอ](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [เรียนรู้เพิ่มเติม](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Creating Advanced Prompts](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** วิธีใช้เทคนิคการออกแบบ prompt ขั้นสูงที่ช่วยให้ผลลัพธ์ของ prompt ดีขึ้น | [วิดีโอ](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [เรียนรู้เพิ่มเติม](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [การสร้างแอปพลิเคชันสร้างข้อความ](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **สร้าง:** แอปพลิเคชันสร้างข้อความโดยใช้ Azure OpenAI / OpenAI API | [วิดีโอ](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [เรียนรู้เพิ่มเติม](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [การสร้างแอปพลิเคชันแชท](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **สร้าง:** เทคนิคการสร้างและผสานแอปพลิเคชันแชทอย่างมีประสิทธิภาพ | [วิดีโอ](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [เรียนรู้เพิ่มเติม](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [การสร้างแอปพลิเคชันค้นหาด้วยฐานข้อมูลเวกเตอร์](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **สร้าง:** แอปพลิเคชันค้นหาที่ใช้ Embeddings เพื่อค้นหาข้อมูล | [วิดีโอ](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [เรียนรู้เพิ่มเติม](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [การสร้างแอปพลิเคชันสร้างภาพ](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **สร้าง:** แอปพลิเคชันสร้างภาพ | [วิดีโอ](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [เรียนรู้เพิ่มเติม](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [การสร้างแอปพลิเคชัน AI แบบ Low Code](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **สร้าง:** แอปพลิเคชัน Generative AI โดยใช้เครื่องมือ Low Code | [วิดีโอ](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [เรียนรู้เพิ่มเติม](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [การผสานแอปพลิเคชันภายนอกด้วย Function Calling](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **สร้าง:** Function calling คืออะไรและการใช้งานในแอปพลิเคชัน | [วิดีโอ](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [เรียนรู้เพิ่มเติม](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [การออกแบบ UX สำหรับแอปพลิเคชัน AI](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **เรียนรู้:** วิธีการประยุกต์ใช้หลักการออกแบบ UX เมื่อพัฒนาแอปพลิเคชัน Generative AI | [วิดีโอ](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [เรียนรู้เพิ่มเติม](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [การรักษาความปลอดภัยแอปพลิเคชัน Generative AI ของคุณ](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **เรียนรู้:** ภัยคุกคามและความเสี่ยงต่อระบบ AI รวมถึงวิธีการปกป้องระบบเหล่านี้ | [วิดีโอ](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [เรียนรู้เพิ่มเติม](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [วงจรชีวิตของแอปพลิเคชัน Generative AI](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **เรียนรู้:** เครื่องมือและตัวชี้วัดในการจัดการวงจรชีวิต LLM และ LLMOps | [วิดีโอ](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [เรียนรู้เพิ่มเติม](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) และฐานข้อมูลเวกเตอร์](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **สร้าง:** แอปพลิเคชันที่ใช้กรอบงาน RAG ในการดึง embeddings จากฐานข้อมูลเวกเตอร์ | [วิดีโอ](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [เรียนรู้เพิ่มเติม](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [โมเดลโอเพนซอร์สและ Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **สร้าง:** แอปพลิเคชันที่ใช้โมเดลโอเพนซอร์สที่มีอยู่บน Hugging Face | [วิดีโอ](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [เรียนรู้เพิ่มเติม](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI Agents](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **สร้าง:** แอปพลิเคชันที่ใช้กรอบงาน AI Agent | [วิดีโอ](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [เรียนรู้เพิ่มเติม](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [การปรับแต่ง LLMs](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **เรียนรู้:** ความหมาย เหตุผล และวิธีการปรับแต่ง LLMs | [วิดีโอ](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [เรียนรู้เพิ่มเติม](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [การสร้างด้วย SLMs](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **เรียนรู้:** ประโยชน์ของการสร้างด้วย Small Language Models | วิดีโอกำลังจะมา | [เรียนรู้เพิ่มเติม](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [การสร้างด้วย Mistral Models](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **เรียนรู้:** คุณสมบัติและความแตกต่างของโมเดลในตระกูล Mistral | วิดีโอกำลังจะมา | [เรียนรู้เพิ่มเติม](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [การสร้างด้วย Meta Models](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **เรียนรู้:** คุณสมบัติและความแตกต่างของโมเดลในตระกูล Meta | วิดีโอกำลังจะมา | [เรียนรู้เพิ่มเติม](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 ขอบคุณเป็นพิเศษ - -ขอขอบคุณ [**John Aziz**](https://www.linkedin.com/in/john0isaac/) สำหรับการสร้าง GitHub Actions และ workflows ทั้งหมด - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) สำหรับการมีส่วนร่วมสำคัญในแต่ละบทเรียนเพื่อพัฒนาประสบการณ์ของผู้เรียนและโค้ด - -## 🎒 หลักสูตรอื่นๆ - -ทีมงานของเรายังมีหลักสูตรอื่นๆ อีก! ลองดูได้ที่: - -- [**ใหม่** โปรโตคอลบริบทโมเดลสำหรับผู้เริ่มต้น](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI Agents สำหรับผู้เริ่มต้น](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Generative AI สำหรับผู้เริ่มต้นโดยใช้ .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Generative AI สำหรับผู้เริ่มต้นโดยใช้ JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML สำหรับผู้เริ่มต้น](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Data Science สำหรับผู้เริ่มต้น](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI สำหรับผู้เริ่มต้น](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Cybersecurity สำหรับผู้เริ่มต้น](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Web Dev สำหรับผู้เริ่มต้น](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT สำหรับผู้เริ่มต้น](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR Development สำหรับผู้เริ่มต้น](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [การใช้งาน GitHub Copilot สำหรับการเขียนโปรแกรมคู่กับ AI](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [การใช้งาน GitHub Copilot สำหรับนักพัฒนา C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [เลือกการผจญภัย Copilot ของคุณเอง](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**ข้อจำกัดความรับผิดชอบ**: -เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษาอัตโนมัติ [Co-op Translator](https://github.com/Azure/co-op-translator) แม้เราจะพยายามให้ความถูกต้องสูงสุด แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาต้นทางถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลโดยผู้เชี่ยวชาญมนุษย์ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดใด ๆ ที่เกิดจากการใช้การแปลนี้ \ No newline at end of file + + + + diff --git a/translations/tl/00-course-setup/01-setup-cloud.md b/translations/tl/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..c64381e1c --- /dev/null +++ b/translations/tl/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/tl/00-course-setup/02-setup-local.md b/translations/tl/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..ab80e5f4c --- /dev/null +++ b/translations/tl/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/tl/00-course-setup/03-providers.md b/translations/tl/00-course-setup/03-providers.md new file mode 100644 index 000000000..8b0e18649 --- /dev/null +++ b/translations/tl/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/tl/00-course-setup/README.md b/translations/tl/00-course-setup/README.md index 812c47775..02ca2a01c 100644 --- a/translations/tl/00-course-setup/README.md +++ b/translations/tl/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# Pagsisimula sa kursong ito - -Lubos kaming nasasabik na simulan mo ang kursong ito at makita kung ano ang mahihikayat kang gawin gamit ang Generative AI! - -Upang matiyak ang iyong tagumpay, inilalahad sa pahinang ito ang mga hakbang sa pagsasaayos, mga teknikal na kinakailangan, at kung saan ka maaaring humingi ng tulong kung kinakailangan. - -## Mga Hakbang sa Pagsasaayos - -Para makapagsimula sa kursong ito, kailangan mong tapusin ang mga sumusunod na hakbang. - -### 1. I-fork ang Repo na ito - -[I-fork ang buong repo](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) sa iyong sariling GitHub account upang magkaroon ka ng kakayahang baguhin ang anumang code at tapusin ang mga hamon. Maaari mo ring [i-star (🌟) ang repo na ito](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) para mas madali mo itong mahanap pati na rin ang mga kaugnay na repo. - -### 2. Gumawa ng codespace - -Para maiwasan ang anumang problema sa dependency kapag pinapatakbo ang code, inirerekomenda naming patakbuhin ang kursong ito sa isang [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst). - -Magagawa ito sa pamamagitan ng pagpili sa opsyong `Code` sa iyong na-fork na bersyon ng repo na ito at pagpili sa opsyong **Codespaces**. - -![Dialog na nagpapakita ng mga button para gumawa ng codespace](../../../00-course-setup/images/who-will-pay.webp) - -### 3. Pag-iimbak ng Iyong API Keys - -Mahalaga ang panatilihing ligtas at protektado ang iyong mga API key kapag gumagawa ng anumang uri ng aplikasyon. Inirerekomenda naming huwag direktang itago ang mga API key sa iyong code. Ang pag-commit ng mga detalye na ito sa isang pampublikong repositoryo ay maaaring magdulot ng mga isyu sa seguridad at posibleng hindi inaasahang gastos kung magagamit ito ng mga masasamang loob. -Narito ang isang hakbang-hakbang na gabay kung paano gumawa ng `.env` file para sa Python at idagdag ang `GITHUB_TOKEN`: - -1. **Pumunta sa Direktoryo ng Iyong Proyekto**: Buksan ang iyong terminal o command prompt at pumunta sa root directory ng iyong proyekto kung saan mo gustong gumawa ng `.env` file. - - ```bash - cd path/to/your/project - ``` - -2. **Gumawa ng `.env` File**: Gamitin ang iyong paboritong text editor para gumawa ng bagong file na pinangalanang `.env`. Kung gumagamit ka ng command line, maaari mong gamitin ang `touch` (sa mga Unix-based na sistema) o `echo` (sa Windows): - - Unix-based na sistema: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **I-edit ang `.env` File**: Buksan ang `.env` file sa isang text editor (hal., VS Code, Notepad++, o iba pang editor). Idagdag ang sumusunod na linya sa file, palitan ang `your_github_token_here` ng iyong aktwal na GitHub token: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **I-save ang File**: I-save ang mga pagbabago at isara ang text editor. - -5. **I-install ang `python-dotenv`**: Kung hindi mo pa ito na-install, kailangan mong i-install ang package na `python-dotenv` para ma-load ang mga environment variable mula sa `.env` file papunta sa iyong Python application. Maaari mo itong i-install gamit ang `pip`: - - ```bash - pip install python-dotenv - ``` - -6. **I-load ang Environment Variables sa Iyong Python Script**: Sa iyong Python script, gamitin ang package na `python-dotenv` para i-load ang mga environment variable mula sa `.env` file: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -Ayan! Matagumpay mong nagawa ang `.env` file, naidagdag ang iyong GitHub token, at na-load ito sa iyong Python application. - -## Paano Patakbuhin nang Lokal sa Iyong Kompyuter - -Para patakbuhin ang code nang lokal sa iyong kompyuter, kailangan mong magkaroon ng naka-install na bersyon ng [Python](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -Para magamit ang repositoryo, kailangan mo itong i-clone: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -Kapag naayos mo na ang lahat, maaari ka nang magsimula! - -## Opsyonal na Mga Hakbang - -### Pag-install ng Miniconda - -Ang [Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) ay isang magaan na installer para sa pag-install ng [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python, pati na rin ng ilang mga package. -Ang Conda mismo ay isang package manager na nagpapadali sa pag-setup at paglipat-lipat sa iba't ibang Python [**virtual environments**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) at mga package. Kapaki-pakinabang din ito sa pag-install ng mga package na hindi available sa pamamagitan ng `pip`. - -Maaari mong sundan ang [MiniConda installation guide](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) para sa pag-setup. - -Kapag naka-install na ang Miniconda, kailangan mong i-clone ang [repositoryo](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (kung hindi mo pa nagagawa). - -Susunod, kailangan mong gumawa ng virtual environment. Para gawin ito gamit ang Conda, gumawa ng bagong environment file (_environment.yml_). Kung sumusunod ka gamit ang Codespaces, gawin ito sa loob ng `.devcontainer` directory, kaya `.devcontainer/environment.yml`. - -Punan ang iyong environment file gamit ang snippet sa ibaba: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Kung makaranas ka ng mga error gamit ang conda, maaari mong mano-manong i-install ang Microsoft AI Libraries gamit ang sumusunod na command sa terminal. - -``` -conda install -c microsoft azure-ai-ml -``` - -Itinatakda ng environment file ang mga dependencies na kailangan natin. Ang `` ay tumutukoy sa pangalan na gusto mong gamitin para sa iyong Conda environment, at ang `` ay ang bersyon ng Python na nais mong gamitin, halimbawa, ang `3` ay ang pinakabagong major na bersyon ng Python. - -Kapag tapos na, maaari mo nang likhain ang iyong Conda environment sa pamamagitan ng pagpapatakbo ng mga sumusunod na command sa iyong command line/terminal - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -Tingnan ang [Conda environments guide](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst) kung sakaling magkaroon ka ng mga problema. - -### Paggamit ng Visual Studio Code na may Python support extension - -Inirerekomenda naming gamitin ang [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) editor na may naka-install na [Python support extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) para sa kursong ito. Ito ay isang rekomendasyon lamang at hindi isang mahigpit na kinakailangan. - -> **Note**: Sa pagbubukas ng course repository sa VS Code, may opsyon kang i-setup ang proyekto sa loob ng isang container. Ito ay dahil sa [espesyal na `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) na direktoryo na matatagpuan sa loob ng course repository. Tatalakayin pa ito mamaya. - -> **Note**: Kapag na-clone mo at binuksan ang direktoryo sa VS Code, awtomatiko nitong irerekomenda na i-install mo ang Python support extension. - -> **Note**: Kung hihilingin ng VS Code na muling buksan ang repository sa isang container, tanggihan ang kahilingang ito upang magamit ang lokal na naka-install na bersyon ng Python. - -### Paggamit ng Jupyter sa Browser - -Maaari ka ring magtrabaho sa proyekto gamit ang [Jupyter environment](https://jupyter.org?WT.mc_id=academic-105485-koreyst) direkta sa iyong browser. Parehong ang classic Jupyter at [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) ay nagbibigay ng maginhawang development environment na may mga tampok tulad ng auto-completion, code highlighting, atbp. - -Para simulan ang Jupyter nang lokal, pumunta sa terminal/command line, mag-navigate sa course directory, at patakbuhin ang: - -```bash -jupyter notebook -``` - -o - -```bash -jupyterhub -``` - -Ito ay magsisimula ng isang Jupyter instance at ipapakita ang URL para ma-access ito sa loob ng command line window. - -Kapag na-access mo ang URL, makikita mo ang outline ng kurso at maaari kang mag-navigate sa anumang `*.ipynb` file. Halimbawa, `08-building-search-applications/python/oai-solution.ipynb`. - -### Pagpapatakbo sa loob ng container - -Isang alternatibo sa pag-setup ng lahat sa iyong kompyuter o Codespace ay ang paggamit ng [container](../../../00-course-setup/). Ang espesyal na `.devcontainer` folder sa loob ng course repository ay nagpapahintulot sa VS Code na i-setup ang proyekto sa loob ng isang container. Sa labas ng Codespaces, kakailanganin nito ang pag-install ng Docker, at medyo mas kumplikado ito, kaya inirerekomenda namin ito lamang sa mga may karanasan sa paggamit ng containers. - -Isa sa mga pinakamabisang paraan para mapanatiling ligtas ang iyong API keys kapag gumagamit ng GitHub Codespaces ay sa pamamagitan ng paggamit ng Codespace Secrets. Sundin ang [Codespaces secrets management](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) na gabay para matuto pa tungkol dito. - -## Mga Aralin at Teknikal na Kinakailangan - -Ang kurso ay may 6 na konseptwal na aralin at 6 na coding na aralin. - -Para sa mga coding na aralin, ginagamit namin ang Azure OpenAI Service. Kailangan mong magkaroon ng access sa Azure OpenAI service at isang API key para mapatakbo ang code na ito. Maaari kang mag-apply para makakuha ng access sa pamamagitan ng [pagsagot sa aplikasyon na ito](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -Habang hinihintay ang pagproseso ng iyong aplikasyon, bawat coding na aralin ay may kasamang `README.md` file kung saan maaari mong tingnan ang code at mga output. - -## Paggamit ng Azure OpenAI Service sa unang pagkakataon - -Kung ito ang unang pagkakataon mong gumamit ng Azure OpenAI service, sundin ang gabay na ito kung paano [gumawa at mag-deploy ng Azure OpenAI Service resource.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## Paggamit ng OpenAI API sa unang pagkakataon - -Kung ito ang unang pagkakataon mong gumamit ng OpenAI API, sundin ang gabay kung paano [gumawa at gumamit ng Interface.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## Makipagkilala sa Iba pang mga Nag-aaral - -Nilikha namin ang mga channel sa aming opisyal na [AI Community Discord server](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) para makipagkilala sa iba pang mga nag-aaral. Magandang paraan ito para makipag-network sa iba pang mga negosyante, tagabuo, estudyante, at sinumang nais umangat sa Generative AI. - -[![Sumali sa discord channel](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -Nandoon din ang project team sa Discord server na ito upang tumulong sa mga nag-aaral. - -## Mag-ambag - -Ang kursong ito ay isang open-source na inisyatiba. Kung may makita kang mga pwedeng pagbutihin o mga isyu, mangyaring gumawa ng [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) o mag-log ng [GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -Susubaybayan ng project team ang lahat ng kontribusyon. Ang pag-ambag sa open source ay isang mahusay na paraan para paunlarin ang iyong karera sa Generative AI. - -Karamihan sa mga kontribusyon ay nangangailangan na sumang-ayon ka sa Contributor License Agreement (CLA) na nagsasaad na may karapatan ka at talagang binibigyan mo kami ng karapatan na gamitin ang iyong kontribusyon. Para sa mga detalye, bisitahin ang [CLA, Contributor License Agreement website](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Mahalaga: kapag nagsasalin ng teksto sa repo na ito, siguraduhing huwag gumamit ng machine translation. Susuriin namin ang mga salin sa pamamagitan ng komunidad, kaya mangyaring mag-volunteer lamang para sa mga pagsasalin sa mga wikang bihasa ka. - -Kapag nagsumite ka ng pull request, awtomatikong malalaman ng CLA-bot kung kailangan mong magbigay ng CLA at lalagyan ng angkop na label o komento ang PR. Sundin lamang ang mga tagubiling ibibigay ng bot. Isang beses mo lang ito kailangang gawin sa lahat ng repositoryo na gumagamit ng aming CLA. - -Ang proyektong ito ay sumusunod sa [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst). Para sa karagdagang impormasyon, basahin ang Code of Conduct FAQ o kontakin ang [Email opencode](opencode@microsoft.com) para sa anumang karagdagang tanong o komento. - -## Magsimula Na Tayo - -Ngayon na natapos mo na ang mga kinakailangang hakbang para matapos ang kursong ito, simulan natin sa pamamagitan ng pagkuha ng [panimula sa Generative AI at LLMs](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**Paalala**: -Ang dokumentong ito ay isinalin gamit ang AI translation service na [Co-op Translator](https://github.com/Azure/co-op-translator). Bagamat nagsusumikap kami para sa katumpakan, pakatandaan na ang mga awtomatikong pagsasalin ay maaaring maglaman ng mga pagkakamali o di-tumpak na impormasyon. Ang orihinal na dokumento sa orihinal nitong wika ang dapat ituring na pangunahing sanggunian. Para sa mahahalagang impormasyon, inirerekomenda ang propesyonal na pagsasalin ng tao. Hindi kami mananagot sa anumang hindi pagkakaunawaan o maling interpretasyon na maaaring magmula sa paggamit ng pagsasaling ito. \ No newline at end of file + + + + diff --git a/translations/tl/00-course-setup/SETUP.md b/translations/tl/00-course-setup/SETUP.md deleted file mode 100644 index b3e1d178d..000000000 --- a/translations/tl/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# I-setup ang Iyong Dev Environment - -Inilagay namin ang repository at kurso na ito gamit ang [development container](https://containers.dev?WT.mc_id=academic-105485-koreyst) na may Universal runtime na sumusuporta sa Python3, .NET, Node.js, at Java development. Ang kaugnay na configuration ay nakasaad sa `devcontainer.json` file na matatagpuan sa `.devcontainer/` folder sa root ng repository na ito. - -Para i-activate ang dev container, buksan ito sa [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (para sa cloud-hosted runtime) o sa [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (para sa local device-hosted runtime). Basahin ang [dokumentasyong ito](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) para sa karagdagang detalye kung paano gumagana ang dev containers sa loob ng VS Code. - -> [!TIP] -> Inirerekomenda naming gamitin ang GitHub Codespaces para sa mabilisang pagsisimula na may kaunting pagsisikap. Nagbibigay ito ng maluwag na [libreng quota ng paggamit](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) para sa mga personal na account. I-configure ang [timeouts](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) para itigil o tanggalin ang mga inactive na codespaces upang masulit ang iyong quota. - -## 1. Pagsasagawa ng mga Takdang-Aralin - -Bawat aralin ay magkakaroon ng _opsyonal_ na mga takdang-aralin na maaaring ibigay sa isa o higit pang mga programming language kabilang ang: Python, .NET/C#, Java, at JavaScript/TypeScript. Ang seksyong ito ay nagbibigay ng pangkalahatang gabay tungkol sa pagsasagawa ng mga takdang-aralin na iyon. - -### 1.1 Mga Takdang-Aralin sa Python - -Ang mga takdang-aralin sa Python ay ibinibigay bilang mga aplikasyon (`.py` files) o Jupyter notebooks (`.ipynb` files). -- Para patakbuhin ang notebook, buksan ito sa Visual Studio Code, pagkatapos ay i-click ang _Select Kernel_ (sa itaas na kanan) at piliin ang default na Python 3 na opsyon na ipinapakita. Maaari mo nang i-_Run All_ para isagawa ang notebook. -- Para patakbuhin ang mga Python application mula sa command-line, sundin ang mga partikular na tagubilin ng takdang-aralin upang matiyak na napili mo ang tamang mga file at naibigay ang kinakailangang mga argumento. - -## 2. Pag-configure ng mga Provider - -Ang mga takdang-aralin **ay maaaring** i-setup upang gumana laban sa isa o higit pang Large Language Model (LLM) deployments sa pamamagitan ng suportadong service provider tulad ng OpenAI, Azure, o Hugging Face. Nagbibigay ang mga ito ng _hosted endpoint_ (API) na maaari nating ma-access programmatically gamit ang tamang kredensyal (API key o token). Sa kursong ito, tatalakayin natin ang mga provider na ito: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) na may iba't ibang modelo kabilang ang core GPT series. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) para sa OpenAI models na may pokus sa enterprise readiness - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) para sa open-source models at inference server - -**Kailangan mong gamitin ang sarili mong mga account para sa mga pagsasanay na ito**. Opsyonal ang mga takdang-aralin kaya maaari kang pumili na i-setup ang isa, lahat, o wala sa mga provider depende sa iyong interes. Narito ang ilang gabay para sa pag-signup: - -| Signup | Gastos | API Key | Playground | Mga Komento | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst)| [Presyo](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst)| [Project-based](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [No-Code, Web](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Maraming Modelo ang Available | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst)| [Presyo](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst)| [SDK Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst)| [Studio Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Kailangang Mag-apply Nang Maaga Para sa Access](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst)| -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Presyo](https://huggingface.co/pricing) | [Access Tokens](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst)| [Limitado ang mga Modelo sa Hugging Chat](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Sundin ang mga tagubilin sa ibaba para _i-configure_ ang repository na ito para magamit sa iba't ibang provider. Ang mga takdang-aralin na nangangailangan ng partikular na provider ay magkakaroon ng isa sa mga tag na ito sa kanilang filename: - - `aoai` - nangangailangan ng Azure OpenAI endpoint, key - - `oai` - nangangailangan ng OpenAI endpoint, key - - `hf` - nangangailangan ng Hugging Face token - -Maaari kang mag-configure ng isa, wala, o lahat ng mga provider. Ang mga kaugnay na takdang-aralin ay magbibigay lang ng error kapag kulang ang kredensyal. - -### 2.1. Gumawa ng `.env` file - -Ipinagpapalagay namin na nabasa mo na ang gabay sa itaas at nakapag-signup ka na sa kaukulang provider, at nakuha mo na ang kinakailangang authentication credentials (API_KEY o token). Sa kaso ng Azure OpenAI, ipinagpapalagay din namin na mayroon kang valid na deployment ng Azure OpenAI Service (endpoint) na may hindi bababa sa isang GPT model na naka-deploy para sa chat completion. - -Ang susunod na hakbang ay i-configure ang iyong **local environment variables** tulad ng sumusunod: - -1. Hanapin sa root folder ang `.env.copy` file na dapat ay may nilalaman na ganito: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Kopyahin ang file na iyon bilang `.env` gamit ang command sa ibaba. Ang file na ito ay _gitignore-d_, kaya ligtas ang mga sikreto. - - ```bash - cp .env.copy .env - ``` - -3. Punan ang mga halaga (palitan ang mga placeholder sa kanan ng `=`) ayon sa paglalarawan sa susunod na seksyon. - -3. (Opsyonal) Kung gumagamit ka ng GitHub Codespaces, may opsyon kang i-save ang environment variables bilang _Codespaces secrets_ na naka-link sa repository na ito. Sa ganitong kaso, hindi mo na kailangang gumawa ng lokal na .env file. **Ngunit tandaan na gumagana lang ang opsyong ito kung gumagamit ka ng GitHub Codespaces.** Kailangan mo pa ring i-setup ang .env file kung gagamit ka ng Docker Desktop. - -### 2.2. Punan ang `.env` file - -Tingnan natin nang mabilis ang mga pangalan ng variable para maintindihan kung ano ang kinakatawan nila: - -| Variable | Paglalarawan | -| :--- | :--- | -| HUGGING_FACE_API_KEY | Ito ang user access token na na-setup mo sa iyong profile | -| OPENAI_API_KEY | Ito ang authorization key para gamitin ang serbisyo para sa non-Azure OpenAI endpoints | -| AZURE_OPENAI_API_KEY | Ito ang authorization key para gamitin ang serbisyong iyon | -| AZURE_OPENAI_ENDPOINT | Ito ang deployed endpoint para sa isang Azure OpenAI resource | -| AZURE_OPENAI_DEPLOYMENT | Ito ang _text generation_ model deployment endpoint | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | Ito ang _text embeddings_ model deployment endpoint | -| | | - -Tandaan: Ang huling dalawang Azure OpenAI variables ay tumutukoy sa default na modelo para sa chat completion (text generation) at vector search (embeddings) ayon sa pagkakasunod. Ang mga tagubilin para sa pag-set ng mga ito ay ibibigay sa mga kaugnay na takdang-aralin. - -### 2.3 I-configure ang Azure: Mula sa Portal - -Makikita ang Azure OpenAI endpoint at key values sa [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) kaya magsimula tayo doon. - -1. Pumunta sa [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -1. I-click ang **Keys and Endpoint** na opsyon sa sidebar (menu sa kaliwa). -1. I-click ang **Show Keys** - makikita mo ang mga sumusunod: KEY 1, KEY 2 at Endpoint. -1. Gamitin ang KEY 1 value para sa AZURE_OPENAI_API_KEY -1. Gamitin ang Endpoint value para sa AZURE_OPENAI_ENDPOINT - -Susunod, kailangan natin ang mga endpoint para sa mga partikular na modelong na-deploy natin. - -1. I-click ang **Model deployments** na opsyon sa sidebar (menu sa kaliwa) para sa Azure OpenAI resource. -1. Sa destination page, i-click ang **Manage Deployments** - -Dadala ka nito sa Azure OpenAI Studio website, kung saan makikita natin ang iba pang mga halaga tulad ng inilalarawan sa ibaba. - -### 2.4 I-configure ang Azure: Mula sa Studio - -1. Pumunta sa [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **mula sa iyong resource** tulad ng nabanggit sa itaas. -1. I-click ang **Deployments** tab (sidebar, kaliwa) para makita ang mga kasalukuyang na-deploy na modelo. -1. Kung ang nais mong modelo ay hindi pa na-deploy, gamitin ang **Create new deployment** para i-deploy ito. -1. Kailangan mo ng _text-generation_ model - inirerekomenda namin ang: **gpt-35-turbo** -1. Kailangan mo ng _text-embedding_ model - inirerekomenda namin ang **text-embedding-ada-002** - -Ngayon i-update ang environment variables upang ipakita ang _Deployment name_ na ginamit. Karaniwan itong kapareho ng pangalan ng modelo maliban kung pinalitan mo ito nang tahasan. Halimbawa, maaari kang magkaroon ng: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**Huwag kalimutang i-save ang .env file kapag tapos na**. Maaari mo nang isara ang file at bumalik sa mga tagubilin para patakbuhin ang notebook. - -### 2.5 I-configure ang OpenAI: Mula sa Profile - -Makikita ang iyong OpenAI API key sa iyong [OpenAI account](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). Kung wala ka pang account, maaari kang mag-signup at gumawa ng API key. Kapag nakuha mo na ang key, maaari mo itong gamitin para punan ang `OPENAI_API_KEY` variable sa `.env` file. - -### 2.6 I-configure ang Hugging Face: Mula sa Profile - -Makikita ang iyong Hugging Face token sa iyong profile sa ilalim ng [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). Huwag itong i-post o ibahagi nang publiko. Sa halip, gumawa ng bagong token para sa paggamit ng proyektong ito at kopyahin ito sa `.env` file sa ilalim ng `HUGGING_FACE_API_KEY` variable. _Tandaan:_ Hindi ito teknikal na API key ngunit ginagamit para sa authentication kaya pinananatili namin ang ganitong pangalan para sa pagkakapare-pareho. - -**Paalala**: -Ang dokumentong ito ay isinalin gamit ang AI translation service na [Co-op Translator](https://github.com/Azure/co-op-translator). Bagamat nagsusumikap kami para sa katumpakan, pakatandaan na ang mga awtomatikong pagsasalin ay maaaring maglaman ng mga pagkakamali o di-tumpak na impormasyon. Ang orihinal na dokumento sa orihinal nitong wika ang dapat ituring na pangunahing sanggunian. Para sa mahahalagang impormasyon, inirerekomenda ang propesyonal na pagsasalin ng tao. Hindi kami mananagot sa anumang hindi pagkakaunawaan o maling interpretasyon na maaaring magmula sa paggamit ng pagsasaling ito. \ No newline at end of file diff --git a/translations/tl/04-prompt-engineering-fundamentals/README.md b/translations/tl/04-prompt-engineering-fundamentals/README.md index 8beef4929..64a66ff6b 100644 --- a/translations/tl/04-prompt-engineering-fundamentals/README.md +++ b/translations/tl/04-prompt-engineering-fundamentals/README.md @@ -1,450 +1,15 @@ - -# Prompt Engineering Fundamentals - -[![Prompt Engineering Fundamentals](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.tl.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Panimula -Saklaw ng modyul na ito ang mahahalagang konsepto at teknik para sa paggawa ng epektibong mga prompt sa mga generative AI na modelo. Mahalaga rin kung paano mo isinusulat ang iyong prompt sa isang LLM. Ang maingat na pagbuo ng prompt ay maaaring maghatid ng mas mataas na kalidad ng tugon. Pero ano nga ba ang ibig sabihin ng mga terminong tulad ng _prompt_ at _prompt engineering_? At paano ko mapapabuti ang prompt _input_ na ipinapadala ko sa LLM? Ito ang mga tanong na susubukan nating sagutin sa kabanatang ito at sa susunod. - -Ang _Generative AI_ ay may kakayahang lumikha ng bagong nilalaman (hal., teksto, larawan, audio, code, atbp.) bilang tugon sa mga kahilingan ng gumagamit. Nagagawa ito gamit ang _Large Language Models_ tulad ng serye ng GPT ("Generative Pre-trained Transformer") ng OpenAI na sinanay para gamitin ang natural na wika at code. - -Ngayon, maaaring makipag-ugnayan ang mga gumagamit sa mga modelong ito gamit ang mga pamilyar na paraan tulad ng chat, nang hindi kailangan ng teknikal na kaalaman o pagsasanay. Ang mga modelo ay _prompt-based_ — nagpapadala ang mga gumagamit ng text input (prompt) at nakakakuha ng tugon mula sa AI (completion). Maaari silang mag-"chat with the AI" nang paulit-ulit, sa mga multi-turn na pag-uusap, pinapabuti ang kanilang prompt hanggang sa tumugma ang sagot sa kanilang inaasahan. - -Ang mga "prompt" ngayon ang pangunahing _programming interface_ para sa mga generative AI na aplikasyon, na nagsasabi sa mga modelo kung ano ang gagawin at nakakaapekto sa kalidad ng mga tugon. Ang "Prompt Engineering" ay isang mabilis na lumalawak na larangan ng pag-aaral na nakatuon sa _disenyo at pag-optimize_ ng mga prompt upang makapaghatid ng pare-pareho at de-kalidad na mga tugon sa malawakang paggamit. - -## Mga Layunin sa Pagkatuto - -Sa araling ito, matututuhan natin kung ano ang Prompt Engineering, bakit ito mahalaga, at paano tayo makakagawa ng mas epektibong mga prompt para sa isang partikular na modelo at layunin ng aplikasyon. Mauunawaan natin ang mga pangunahing konsepto at pinakamahusay na mga gawi sa prompt engineering — at matututuhan ang tungkol sa isang interactive na Jupyter Notebooks "sandbox" na kapaligiran kung saan makikita natin ang mga konseptong ito na inilalapat sa mga totoong halimbawa. - -Sa pagtatapos ng araling ito, magagawa nating: - -1. Ipaliwanag kung ano ang prompt engineering at bakit ito mahalaga. -2. Ilahad ang mga bahagi ng isang prompt at kung paano ito ginagamit. -3. Matutunan ang mga pinakamahusay na gawi at teknik para sa prompt engineering. -4. Ipatupad ang mga natutunang teknik sa mga totoong halimbawa, gamit ang OpenAI endpoint. - -## Mga Pangunahing Termino - -Prompt Engineering: Ang pagsasanay ng pagdisenyo at pag-refine ng mga input upang gabayan ang mga AI model sa paggawa ng nais na output. -Tokenization: Ang proseso ng paghahati ng teksto sa mas maliliit na yunit, na tinatawag na mga token, na kayang intindihin at iproseso ng modelo. -Instruction-Tuned LLMs: Mga Large Language Models (LLMs) na na-fine-tune gamit ang mga partikular na instruksyon upang mapabuti ang katumpakan at kaugnayan ng kanilang mga tugon. - -## Learning Sandbox - -Ang prompt engineering ay kasalukuyang mas sining kaysa agham. Ang pinakamabisang paraan para mapabuti ang ating intuwisyon dito ay ang _mas maraming pagsasanay_ at paggamit ng trial-and-error na pamamaraan na pinagsasama ang kaalaman sa larangan ng aplikasyon at mga inirerekomendang teknik pati na rin ang mga model-specific na pag-optimize. - -Ang Jupyter Notebook na kasama ng araling ito ay nagbibigay ng _sandbox_ na kapaligiran kung saan maaari mong subukan ang iyong mga natutunan — habang nagpapatuloy o bilang bahagi ng code challenge sa dulo. Para maisagawa ang mga ehersisyo, kakailanganin mo: - -1. **Isang Azure OpenAI API key** — ang service endpoint para sa isang deployed na LLM. -2. **Isang Python Runtime** — kung saan maaaring patakbuhin ang Notebook. -3. **Local Env Variables** — _kumpletuhin ang mga hakbang sa [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) ngayon para maging handa_. - -Ang notebook ay may mga _starter_ na ehersisyo — ngunit hinihikayat kang magdagdag ng sarili mong _Markdown_ (deskripsyon) at _Code_ (mga kahilingan sa prompt) na mga seksyon upang subukan ang mas maraming halimbawa o ideya — at palalimin ang iyong intuwisyon sa disenyo ng prompt. - -## Illustrated Guide - -Gusto mo bang makita ang kabuuang larawan ng mga tatalakayin sa araling ito bago ka magsimula? Tingnan ang illustrated guide na ito, na nagbibigay sa iyo ng ideya tungkol sa mga pangunahing paksa at mga mahahalagang punto na dapat pag-isipan sa bawat isa. Ang roadmap ng aralin ay magdadala sa iyo mula sa pag-unawa sa mga pangunahing konsepto at hamon hanggang sa pagtugon sa mga ito gamit ang mga kaugnay na teknik at pinakamahusay na gawi sa prompt engineering. Tandaan na ang seksyong "Advanced Techniques" sa gabay na ito ay tumutukoy sa nilalaman na tatalakayin sa _susunod_ na kabanata ng kurikulum na ito. - -![Illustrated Guide to Prompt Engineering](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.tl.png) - -## Ang Aming Startup - -Ngayon, pag-usapan natin kung paano nauugnay ang _paksang ito_ sa misyon ng aming startup na [magdala ng AI innovation sa edukasyon](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). Nais naming bumuo ng mga AI-powered na aplikasyon para sa _personalized learning_ — kaya isipin natin kung paano maaaring "magdisenyo" ng mga prompt ang iba't ibang mga gumagamit ng aming aplikasyon: - -- Maaaring hilingin ng mga **Administrator** sa AI na _suriin ang data ng kurikulum upang matukoy ang mga kakulangan sa saklaw_. Maaaring ibuod ng AI ang mga resulta o ipakita ito gamit ang code. -- Maaaring hilingin ng mga **Guro** sa AI na _gumawa ng lesson plan para sa isang target na audience at paksa_. Maaaring buuin ng AI ang personalized na plano sa isang tinukoy na format. -- Maaaring hilingin ng mga **Mag-aaral** sa AI na _turuan sila sa isang mahirap na asignatura_. Maaari na ngayong gabayan ng AI ang mga mag-aaral gamit ang mga leksyon, mga pahiwatig, at mga halimbawa na angkop sa kanilang antas. - -Iyan ay ilan lamang sa mga posibilidad. Tingnan ang [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) — isang open-source na library ng mga prompt na inihanda ng mga eksperto sa edukasyon — para makita ang mas malawak na mga posibilidad! _Subukan mong patakbuhin ang ilan sa mga prompt na iyon sa sandbox o gamitin ang OpenAI Playground para makita kung ano ang mangyayari!_ - - - -## Ano ang Prompt Engineering? - -Sinimulan natin ang araling ito sa pamamagitan ng pagdeklara ng **Prompt Engineering** bilang proseso ng _pagdidisenyo at pag-optimize_ ng mga text input (prompt) upang makapaghatid ng pare-pareho at de-kalidad na mga tugon (completions) para sa isang partikular na layunin ng aplikasyon at modelo. Maaari natin itong isipin bilang isang 2-hakbang na proseso: - -- _pagdidisenyo_ ng paunang prompt para sa isang partikular na modelo at layunin -- _paulit-ulit na pag-refine_ ng prompt upang mapabuti ang kalidad ng tugon - -Ito ay isang trial-and-error na proseso na nangangailangan ng intuwisyon at pagsisikap ng gumagamit upang makamit ang pinakamainam na resulta. Bakit ito mahalaga? Upang masagot iyon, kailangan muna nating maunawaan ang tatlong konsepto: - -- _Tokenization_ = kung paano "nakikita" ng modelo ang prompt -- _Base LLMs_ = kung paano "pinoproseso" ng pundasyong modelo ang prompt -- _Instruction-Tuned LLMs_ = kung paano na ngayong nakikita ng modelo ang mga "gawain" - -### Tokenization - -Tinitingnan ng isang LLM ang mga prompt bilang isang _sunod-sunod na mga token_ kung saan maaaring magkaiba ang paraan ng pag-tokenize ng parehong prompt depende sa modelo (o bersyon ng modelo). Dahil ang mga LLM ay sinanay gamit ang mga token (hindi raw na teksto), ang paraan ng pag-tokenize ng mga prompt ay direktang nakakaapekto sa kalidad ng nalikhang tugon. - -Para magkaroon ng intuwisyon kung paano gumagana ang tokenization, subukan ang mga tool tulad ng [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) na ipinapakita sa ibaba. Kopyahin ang iyong prompt — at tingnan kung paano ito na-convert sa mga token, pansinin kung paano hinahandle ang mga whitespace at mga bantas. Tandaan na ang halimbawang ito ay nagpapakita ng mas lumang LLM (GPT-3) — kaya maaaring magkaiba ang resulta kapag sinubukan ito sa mas bagong modelo. - -![Tokenization](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.tl.png) - -### Konsepto: Foundation Models - -Kapag na-tokenize na ang prompt, ang pangunahing tungkulin ng ["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (o Foundation model) ay hulaan ang susunod na token sa sunod-sunod na iyon. Dahil ang mga LLM ay sinanay gamit ang malalaking dataset ng teksto, may mahusay silang pakiramdam sa estadistikal na ugnayan ng mga token at kaya nilang gawin ang hulang iyon nang may kumpiyansa. Tandaan na hindi nila nauunawaan ang _kahulugan_ ng mga salita sa prompt o token; nakikita lang nila ang pattern na maaari nilang "kumpletuhin" gamit ang kanilang susunod na hula. Maaari nilang ipagpatuloy ang paghula ng sunod-sunod hanggang ito ay itigil ng gumagamit o ng isang itinakdang kondisyon. - -Gusto mo bang makita kung paano gumagana ang prompt-based completion? Ipasok ang prompt sa itaas sa Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) gamit ang default na mga setting. Nakakonpigurang ituring ang mga prompt bilang mga kahilingan para sa impormasyon — kaya makakakita ka ng tugon na tumutugon sa kontekstong ito. - -Pero paano kung gusto ng gumagamit na makita ang isang partikular na bagay na tumutugon sa ilang pamantayan o layunin ng gawain? Dito pumapasok ang mga _instruction-tuned_ LLM. - -![Base LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.tl.png) - -### Konsepto: Instruction Tuned LLMs - -Ang isang [Instruction Tuned LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) ay nagsisimula sa foundation model at ini-fine-tune ito gamit ang mga halimbawa o input/output na pares (hal., multi-turn na "mga mensahe") na maaaring maglaman ng malinaw na mga instruksyon — at sinusubukan ng tugon mula sa AI na sundin ang instruksyong iyon. - -Gumagamit ito ng mga teknik tulad ng Reinforcement Learning with Human Feedback (RLHF) na nagtuturo sa modelo na _sundin ang mga instruksyon_ at _matuto mula sa feedback_ upang makagawa ng mga tugon na mas angkop sa praktikal na aplikasyon at mas kaugnay sa mga layunin ng gumagamit. - -Subukan natin ito — balikan ang prompt sa itaas, ngunit palitan ang _system message_ upang magbigay ng sumusunod na instruksyon bilang konteksto: - -> _Ibuod ang nilalaman na ibinigay para sa isang mag-aaral sa ikalawang baitang. Panatilihin ang resulta sa isang talata na may 3-5 na bullet points._ - -Makikita mo kung paano naitugma ang resulta upang ipakita ang nais na layunin at format? Maaari nang direktang gamitin ng isang guro ang tugon na ito sa kanilang mga slide para sa klase. - -![Instruction Tuned LLM Chat Completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.tl.png) - -## Bakit Kailangan ang Prompt Engineering? - -Ngayon na alam na natin kung paano pinoproseso ng mga LLM ang mga prompt, pag-usapan natin kung _bakit_ kailangan ang prompt engineering. Nasa katotohanan na ang kasalukuyang mga LLM ay may ilang mga hamon na nagpapahirap upang makamit ang _maaasahan at pare-parehong mga tugon_ nang hindi naglalagay ng pagsisikap sa pagbuo at pag-optimize ng prompt. Halimbawa: - -1. **Stochastic ang mga tugon ng modelo.** Ang _parehong prompt_ ay malamang na magbigay ng iba't ibang mga tugon sa iba't ibang mga modelo o bersyon ng modelo. At maaari rin itong magbigay ng iba't ibang resulta sa _parehong modelo_ sa iba't ibang oras. _Makakatulong ang mga teknik sa prompt engineering upang mabawasan ang mga pagkakaibang ito sa pamamagitan ng pagbibigay ng mas mahusay na mga guardrails_. - -2. **Maaaring gumawa ng mga imbentong tugon ang mga modelo.** Ang mga modelo ay pre-trained gamit ang _malalaki ngunit limitadong_ dataset, ibig sabihin kulang sila sa kaalaman tungkol sa mga konsepto na wala sa saklaw ng pagsasanay. Bilang resulta, maaari silang gumawa ng mga tugon na hindi tama, haka-haka, o direktang salungat sa mga kilalang katotohanan. _Tinutulungan ng mga teknik sa prompt engineering ang mga gumagamit na tuklasin at mabawasan ang ganitong mga imbento, hal., sa pamamagitan ng paghingi ng mga citation o paliwanag mula sa AI_. - -3. **Nagkakaiba-iba ang kakayahan ng mga modelo.** Ang mga mas bagong modelo o henerasyon ng modelo ay may mas malawak na kakayahan ngunit may mga natatanging kakaibang katangian at mga tradeoff sa gastos at komplikasyon. _Makakatulong ang prompt engineering na makabuo ng mga pinakamahusay na gawi at workflow na nag-aalis ng mga pagkakaiba at umaangkop sa mga partikular na pangangailangan ng modelo sa scalable at seamless na paraan_. - -Subukan natin ito sa OpenAI o Azure OpenAI Playground: - -- Gamitin ang parehong prompt sa iba't ibang deployment ng LLM (hal., OpenAI, Azure OpenAI, Hugging Face) — nakita mo ba ang mga pagkakaiba? -- Gamitin ang parehong prompt nang paulit-ulit sa _parehong_ deployment ng LLM (hal., Azure OpenAI playground) — paano nagkaiba ang mga resulta? - -### Halimbawa ng Fabrications - -Sa kursong ito, ginagamit natin ang terminong **"fabrication"** upang tukuyin ang pangyayari kung saan minsan ay gumagawa ang mga LLM ng impormasyong mali ang katotohanan dahil sa mga limitasyon sa kanilang pagsasanay o iba pang mga hadlang. Maaari mo ring narinig ito bilang _"hallucinations"_ sa mga popular na artikulo o mga papel sa pananaliksik. Gayunpaman, mariin naming inirerekomenda ang paggamit ng _"fabrication"_ bilang termino upang hindi natin aksidenteng bigyan ng katangiang pantao ang kilos na ito sa pamamagitan ng pag-aangkin ng katangian ng tao sa isang resulta na gawa ng makina. Pinapalakas din nito ang mga [Responsible AI guidelines](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) mula sa perspektibo ng terminolohiya, na inaalis ang mga salitang maaaring ituring na nakakasakit o hindi inklusibo sa ilang konteksto. - -Gusto mo bang makita kung paano gumagana ang fabrications? Isipin ang isang prompt na nag-uutos sa AI na gumawa ng nilalaman para sa isang paksa na hindi umiiral (upang matiyak na wala ito sa dataset ng pagsasanay). Halimbawa — sinubukan ko ang prompt na ito: -# Plano ng Aralin: Ang Digmaang Martian ng 2076 - -## Layunin ng Aralin -- Maunawaan ang mga pangunahing sanhi at kaganapan ng Digmaang Martian ng 2076. -- Masuri ang epekto ng digmaan sa lipunan at teknolohiya. -- Makabuo ng sariling opinyon tungkol sa mga aral na maaaring matutunan mula sa digmaan. - -## Panimula (10 minuto) -- Magpakita ng maikling video o larawan tungkol sa Martian War. -- Magtanong sa mga mag-aaral: Ano ang alam ninyo tungkol sa Digmaang Martian ng 2076? -- Ibigay ang maikling background ng digmaan. - -## Paglalahad (20 minuto) -- Talakayin ang mga pangunahing sanhi ng digmaan: - - Kompetisyon sa mga likas na yaman sa Mars. - - Pag-aagawan sa teritoryo at kontrol. -- Ilarawan ang mga mahahalagang pangyayari: - - Simula ng labanan. - - Mga pangunahing labanan at estratehiya. - - Pagtatapos ng digmaan. -- Ipakita ang mga teknolohiyang ginamit sa digmaan. - -## Pagsasanay (15 minuto) -- Hatiin ang klase sa maliliit na grupo. -- Bawat grupo ay gagawa ng maikling presentasyon tungkol sa isang aspeto ng digmaan (halimbawa: sanhi, kaganapan, epekto). -- Magbigay ng mga tanong upang gabayan ang kanilang presentasyon. - -## Paglalapat (10 minuto) -- Talakayin kung paano nakaapekto ang digmaan sa kasalukuyang teknolohiya at lipunan. -- Magbigay ng halimbawa ng mga aral na maaaring matutunan mula sa digmaan. - -## Pagsusuri (5 minuto) -- Magbigay ng maikling pagsusulit o reflection paper tungkol sa natutunan sa aralin. - -## Takdang-Aralin -- Sumulat ng sanaysay tungkol sa kung paano maiiwasan ang mga ganitong uri ng digmaan sa hinaharap. -Ipinakita ng isang web search na may mga kathang-isip na kwento (hal., serye sa telebisyon o mga libro) tungkol sa mga digmaan sa Mars – ngunit wala sa 2076. Sinasabi rin ng katwiran na ang 2076 ay _sa hinaharap_ kaya hindi ito maaaring iugnay sa isang totoong pangyayari. - -Ano kaya ang mangyayari kapag pinatakbo natin ang prompt na ito gamit ang iba't ibang LLM providers? - -> **Response 1**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.tl.png) - -> **Response 2**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.tl.png) - -> **Response 3**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.tl.png) - -Gaya ng inaasahan, bawat modelo (o bersyon ng modelo) ay nagbibigay ng bahagyang magkakaibang mga sagot dahil sa stochastic na pag-uugali at pagkakaiba-iba sa kakayahan ng modelo. Halimbawa, ang isang modelo ay nakatuon sa mga mag-aaral sa ika-8 baitang habang ang isa naman ay inaasahan ang isang estudyante sa high school. Ngunit lahat ng tatlong modelo ay nakabuo ng mga sagot na maaaring makumbinsi ang isang hindi pamilyar na gumagamit na ang pangyayari ay totoo. - -Ang mga teknik sa prompt engineering tulad ng _metaprompting_ at _temperature configuration_ ay maaaring makatulong na mabawasan ang mga peke ng modelo sa ilang antas. Ang mga bagong _arkitektura_ ng prompt engineering ay nagsasama rin ng mga bagong kasangkapan at teknik nang maayos sa daloy ng prompt, upang mapagaan o mabawasan ang ilan sa mga epekto nito. - -## Case Study: GitHub Copilot - -Tapusin natin ang seksyong ito sa pamamagitan ng pagkuha ng ideya kung paano ginagamit ang prompt engineering sa mga totoong solusyon sa pamamagitan ng pagtingin sa isang Case Study: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -Ang GitHub Copilot ay ang iyong "AI Pair Programmer" – ito ay nagko-convert ng mga text prompt sa mga kumpletong code at naka-integrate sa iyong development environment (hal., Visual Studio Code) para sa isang tuloy-tuloy na karanasan ng gumagamit. Ayon sa mga dokumento sa serye ng mga blog sa ibaba, ang pinakaunang bersyon ay nakabase sa OpenAI Codex model – kung saan mabilis na napagtanto ng mga engineer ang pangangailangang i-fine-tune ang modelo at bumuo ng mas mahusay na mga teknik sa prompt engineering upang mapabuti ang kalidad ng code. Noong Hulyo, kanilang [ipinakilala ang isang pinahusay na AI model na lampas sa Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) para sa mas mabilis na mga suhestiyon. - -Basahin ang mga post nang sunod-sunod upang masundan ang kanilang paglalakbay sa pagkatuto. - -- **Mayo 2023** | [Mas Pinagaganda ng GitHub Copilot ang Pag-unawa sa Iyong Code](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **Mayo 2023** | [Sa Loob ng GitHub: Paggawa kasama ang mga LLM sa likod ng GitHub Copilot](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Hunyo 2023** | [Paano Sumulat ng Mas Magandang Prompts para sa GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Hulyo 2023** | [.. GitHub Copilot lampas sa Codex gamit ang pinahusay na AI model](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Hulyo 2023** | [Gabay ng Developer sa Prompt Engineering at LLMs](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **Setyembre 2023** | [Paano Gumawa ng Enterprise LLM App: Mga Aral mula sa GitHub Copilot](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -Maaari mo ring bisitahin ang kanilang [Engineering blog](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) para sa iba pang mga post tulad ng [ito](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) na nagpapakita kung paano _inaaplay_ ang mga modelong ito at teknik para sa pagpapatakbo ng mga totoong aplikasyon. - ---- - - - -## Prompt Construction - -Nakita na natin kung bakit mahalaga ang prompt engineering – ngayon alamin natin kung paano _binubuo_ ang mga prompt upang masuri natin ang iba't ibang teknik para sa mas epektibong disenyo ng prompt. - -### Basic Prompt - -Magsimula tayo sa basic prompt: isang text input na ipinapadala sa modelo nang walang ibang konteksto. Narito ang isang halimbawa – kapag ipinadala natin ang unang ilang salita ng pambansang awit ng US sa OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst), agad nitong _kinukumpleto_ ang sagot gamit ang mga susunod na linya, na nagpapakita ng pangunahing pag-uugali ng prediksyon. - -| Prompt (Input) | Completion (Output) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | Mukhang sinisimulan mo ang mga liriko ng "The Star-Spangled Banner," ang pambansang awit ng Estados Unidos. Ang buong liriko ay ... | - -### Complex Prompt - -Ngayon, magdagdag tayo ng konteksto at mga tagubilin sa basic prompt na iyon. Pinapayagan tayo ng [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) na bumuo ng isang complex prompt bilang koleksyon ng mga _mensaheng_ may: - -- Mga pares ng input/output na nagpapakita ng input ng _user_ at tugon ng _assistant_. -- Mensahe ng system na nagtatakda ng konteksto para sa pag-uugali o personalidad ng assistant. - -Ang kahilingan ay nasa anyo sa ibaba, kung saan ang _tokenization_ ay epektibong kumukuha ng mga mahalagang impormasyon mula sa konteksto at pag-uusap. Ngayon, ang pagbabago ng konteksto ng system ay maaaring kasing epekto sa kalidad ng mga kumpletong sagot gaya ng mga input na ibinigay ng user. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Instruction Prompt - -Sa mga halimbawa sa itaas, ang prompt ng user ay isang simpleng text query na maaaring ipakahulugan bilang kahilingan para sa impormasyon. Sa mga _instruction_ prompt, maaari nating gamitin ang text na iyon upang tukuyin ang isang gawain nang mas detalyado, na nagbibigay ng mas mahusay na gabay sa AI. Narito ang isang halimbawa: - -| Prompt (Input) | Completion (Output) | Instruction Type | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Write a description of the Civil War | _nagbalik ng isang simpleng talata_ | Simple | -| Write a description of the Civil War. Provide key dates and events and describe their significance | _nagbalik ng isang talata na sinundan ng listahan ng mga mahahalagang petsa ng pangyayari na may mga paglalarawan_ | Complex | -| Write a description of the Civil War in 1 paragraph. Provide 3 bullet points with key dates and their significance. Provide 3 more bullet points with key historical figures and their contributions. Return the output as a JSON file | _nagbabalik ng mas detalyadong impormasyon sa isang text box, naka-format bilang JSON na maaari mong kopyahin at i-paste sa file at i-validate kung kinakailangan_ | Complex. Formatted. | - -## Primary Content - -Sa mga halimbawa sa itaas, ang prompt ay medyo bukas pa rin, na nagpapahintulot sa LLM na piliin kung aling bahagi ng pre-trained dataset nito ang may kaugnayan. Sa disenyo ng _primary content_, hinahati ang input text sa dalawang bahagi: - -- isang tagubilin (gawain) -- kaugnay na nilalaman (na nakakaapekto sa gawain) - -Narito ang isang halimbawa kung saan ang tagubilin ay "buodin ito sa 2 pangungusap". - -| Prompt (Input) | Completion (Output) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter ay ang ikalimang planeta mula sa Araw at ang pinakamalaki sa Solar System. Isa itong gas giant na may masa na isang libong bahagi ng masa ng Araw, ngunit dalawang-kalahati beses ng lahat ng iba pang mga planeta sa Solar System na pinagsama-sama. Ang Jupiter ay isa sa mga pinakamaliwanag na bagay na nakikita ng hubad na mata sa gabi, at kilala na mula pa sa mga sinaunang sibilisasyon bago pa man naitala ang kasaysayan. Pinangalanan ito sa diyos na Romano na si Jupiter.[19] Kapag tinitingnan mula sa Earth, ang Jupiter ay maaaring maging sapat na maliwanag upang ang kanyang naipinid na liwanag ay makabuo ng mga anino na nakikita,[20] at karaniwan itong pangatlong pinakamaliwanag na natural na bagay sa gabi pagkatapos ng Buwan at Venus.
**Buodin ito sa 2 maiikling pangungusap** | Ang Jupiter, ang ikalimang planeta mula sa Araw, ay ang pinakamalaki sa Solar System at kilala bilang isa sa mga pinakamaliwanag na bagay sa gabi. Pinangalanan ito sa diyos na Romano na si Jupiter, isang gas giant na may masa na dalawang-kalahati beses ng lahat ng ibang mga planeta sa Solar System na pinagsama-sama. | - -Maaaring gamitin ang bahagi ng primary content sa iba't ibang paraan upang maghatid ng mas epektibong mga tagubilin: - -- **Mga Halimbawa** – sa halip na sabihin sa modelo kung ano ang gagawin gamit ang isang tahasang tagubilin, bigyan ito ng mga halimbawa ng gagawin at hayaang mahinuha nito ang pattern. -- **Mga Cue** – sundan ang tagubilin ng isang "cue" na naghahanda sa completion, na ginagabayan ang modelo patungo sa mas kaugnay na mga sagot. -- **Mga Template** – ito ay mga paulit-ulit na 'recipe' para sa mga prompt na may mga placeholder (mga variable) na maaaring i-customize gamit ang data para sa mga partikular na gamit. - -Tuklasin natin ang mga ito sa aksyon. - -### Paggamit ng Mga Halimbawa - -Ito ay isang paraan kung saan ginagamit mo ang primary content upang "pakainin ang modelo" ng ilang mga halimbawa ng nais na output para sa isang partikular na tagubilin, at hayaang mahinuha nito ang pattern para sa nais na output. Batay sa dami ng mga halimbawa, maaari tayong magkaroon ng zero-shot prompting, one-shot prompting, few-shot prompting, atbp. - -Ang prompt ay binubuo ngayon ng tatlong bahagi: - -- Isang paglalarawan ng gawain -- Ilang mga halimbawa ng nais na output -- Simula ng isang bagong halimbawa (na nagiging implicit na paglalarawan ng gawain) - -| Learning Type | Prompt (Input) | Completion (Output) | -| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| Zero-shot | "The Sun is Shining". Isalin sa Spanish | "El Sol está brillando". | -| One-shot | "The Sun is Shining" => "El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| Few-shot | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketball | -| | | | - -Pansinin kung paano kailangan nating magbigay ng tahasang tagubilin ("Isalin sa Spanish") sa zero-shot prompting, ngunit nahinuha na ito sa one-shot prompting na halimbawa. Ipinapakita ng few-shot na halimbawa kung paano ang pagdagdag ng mas maraming halimbawa ay nagpapahintulot sa mga modelo na gumawa ng mas tumpak na mga hinuha nang walang dagdag na mga tagubilin. - -### Prompt Cues - -Isa pang teknik sa paggamit ng primary content ay ang pagbibigay ng _cues_ sa halip na mga halimbawa. Sa kasong ito, binibigyan natin ang modelo ng isang paunang pahiwatig sa tamang direksyon sa pamamagitan ng _pagsisimula_ nito gamit ang isang snippet na nagpapakita ng nais na format ng sagot. Ang modelo ay "kinukuha ang cue" upang ipagpatuloy sa ganoong paraan. - -| Number of Cues | Prompt (Input) | Completion (Output) | -| :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Jupiter ay ang ikalimang planeta mula sa Araw at ang pinakamalaki sa Solar System. Isa itong gas giant na may masa na isang libong bahagi ng masa ng Araw, ngunit dalawang-kalahati beses ng lahat ng iba pang mga planeta sa Solar System na pinagsama-sama. Ang Jupiter ay isa sa mga pinakamaliwanag na bagay na nakikita ng hubad na mata sa gabi, at kilala na mula pa sa mga sinaunang sibilisasyon bago pa man naitala ang kasaysayan. - -**Summarize This** | Ang Jupiter ang pinakamalaking planeta sa ating Solar System at ang ikalimang planeta mula sa Araw. Isa itong gas giant na may massang 1/1000 ng mass ng Araw, ngunit mas mabigat ito kaysa sa lahat ng ibang planeta na pinagsama-sama. Matagal nang kilala ang Jupiter ng mga sinaunang sibilisasyon, at madali itong makita sa kalangitan tuwing gabi. | -| 1 | Ang Jupiter ang ikalimang planeta mula sa Araw at ang pinakamalaki sa Solar System. Isa itong gas giant na may massang isang libong bahagi ng mass ng Araw, ngunit dalawang at kalahating beses na mas mabigat kaysa sa lahat ng ibang planeta sa Solar System na pinagsama-sama. Ang Jupiter ay isa sa mga pinakamaliwanag na bagay na nakikita ng hubad na mata sa kalangitan tuwing gabi, at kilala na ito ng mga sinaunang sibilisasyon bago pa man naitala ang kasaysayan.
**Summarize This**
Ang natutunan natin ay na ang Jupiter | ang ikalimang planeta mula sa Araw at ang pinakamalaki sa Solar System. Isa itong gas giant na may massang isang libong bahagi ng mass ng Araw, ngunit dalawang at kalahating beses na mas mabigat kaysa sa lahat ng ibang planeta na pinagsama-sama. Madali itong makita ng hubad na mata at kilala na mula pa noong sinaunang panahon. | -| 2 | Ang Jupiter ang ikalimang planeta mula sa Araw at ang pinakamalaki sa Solar System. Isa itong gas giant na may massang isang libong bahagi ng mass ng Araw, ngunit dalawang at kalahating beses na mas mabigat kaysa sa lahat ng ibang planeta sa Solar System na pinagsama-sama. Ang Jupiter ay isa sa mga pinakamaliwanag na bagay na nakikita ng hubad na mata sa kalangitan tuwing gabi, at kilala na ito ng mga sinaunang sibilisasyon bago pa man naitala ang kasaysayan.
**Summarize This**
Nangungunang 3 Katotohanan na Natutunan Natin: | 1. Ang Jupiter ang ikalimang planeta mula sa Araw at ang pinakamalaki sa Solar System.
2. Isa itong gas giant na may massang isang libong bahagi ng mass ng Araw...
3. Ang Jupiter ay nakikita ng hubad na mata mula pa noong sinaunang panahon ... | -| | | | - -### Prompt Templates - -Ang prompt template ay isang _paunang nakahandang recipe para sa isang prompt_ na maaaring itago at gamitin muli kung kinakailangan, upang makapaghatid ng mas pare-parehong karanasan sa mga gumagamit sa malawakang saklaw. Sa pinakasimpleng anyo, ito ay koleksyon lamang ng mga halimbawa ng prompt tulad ng [ito mula sa OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) na nagbibigay ng parehong mga bahagi ng interactive prompt (mga mensahe ng user at system) at ang format ng API-driven na kahilingan - upang suportahan ang muling paggamit. - -Sa mas kumplikadong anyo nito tulad ng [halimbawa mula sa LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst) naglalaman ito ng _mga placeholder_ na maaaring palitan ng data mula sa iba't ibang pinagmulan (input ng user, konteksto ng system, panlabas na mga pinagkukunan ng data, atbp.) upang makabuo ng prompt nang dinamiko. Pinapayagan tayo nitong gumawa ng isang librarya ng mga reusable na prompt na maaaring gamitin upang maghatid ng pare-parehong karanasan ng user **programmatically** sa malawakang saklaw. - -Sa huli, ang tunay na halaga ng mga template ay nasa kakayahang lumikha at maglathala ng _prompt libraries_ para sa mga vertical application domain - kung saan ang prompt template ay _na-optimize_ upang ipakita ang konteksto o mga halimbawa na partikular sa aplikasyon na nagpapaganda ng kaugnayan at katumpakan ng mga sagot para sa target na user audience. Ang [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) repository ay isang mahusay na halimbawa ng ganitong pamamaraan, na nagtitipon ng librarya ng mga prompt para sa larangan ng edukasyon na may diin sa mga pangunahing layunin tulad ng pagpaplano ng aralin, disenyo ng kurikulum, pagtuturo sa mga estudyante, atbp. - -## Supporting Content - -Kung iisipin natin ang paggawa ng prompt bilang pagkakaroon ng isang instruction (gawain) at isang target (pangunahing nilalaman), ang _sekondaryang nilalaman_ ay parang karagdagang konteksto na ibinibigay natin upang **maimpluwensyahan ang output sa isang paraan**. Maaari itong mga tuning parameter, mga tagubilin sa pag-format, mga taxonomy ng paksa, atbp. na makakatulong sa modelo na _iangkop_ ang tugon nito upang umayon sa nais na layunin o inaasahan ng user. - -Halimbawa: Kung mayroong katalogo ng kurso na may malawak na metadata (pangalan, paglalarawan, antas, mga tag ng metadata, instruktor, atbp.) sa lahat ng magagamit na kurso sa kurikulum: - -- maaari tayong magtakda ng instruction na "buodin ang katalogo ng kurso para sa Fall 2023" -- maaari nating gamitin ang pangunahing nilalaman upang magbigay ng ilang halimbawa ng nais na output -- maaari nating gamitin ang sekondaryang nilalaman upang tukuyin ang nangungunang 5 "tag" na interesado. - -Ngayon, maaaring magbigay ang modelo ng buod sa format na ipinakita ng ilang halimbawa - ngunit kung ang resulta ay may maraming tag, maaari nitong unahin ang 5 tag na tinukoy sa sekondaryang nilalaman. - ---- - - - -## Prompting Best Practices - -Ngayon na alam na natin kung paano maaaring _buoin_ ang mga prompt, maaari na nating simulan ang pag-iisip kung paano ito _idisenyo_ upang ipakita ang mga pinakamahusay na kasanayan. Maaari nating pag-isipan ito sa dalawang bahagi - pagkakaroon ng tamang _mindset_ at paggamit ng tamang _mga teknik_. - -### Prompt Engineering Mindset - -Ang Prompt Engineering ay isang proseso ng trial-and-error kaya tandaan ang tatlong malawak na gabay na salik: - -1. **Mahalaga ang Pag-unawa sa Domain.** Ang katumpakan at kaugnayan ng tugon ay nakadepende sa _domain_ kung saan gumagana ang aplikasyon o user. Gamitin ang iyong intuwisyon at kaalaman sa domain upang **i-customize pa ang mga teknik**. Halimbawa, magtakda ng _domain-specific personalities_ sa iyong mga system prompt, o gumamit ng _domain-specific templates_ sa iyong mga user prompt. Magbigay ng sekondaryang nilalaman na nagpapakita ng konteksto na partikular sa domain, o gumamit ng _domain-specific cues at mga halimbawa_ upang gabayan ang modelo patungo sa pamilyar na mga pattern ng paggamit. - -2. **Mahalaga ang Pag-unawa sa Modelo.** Alam natin na ang mga modelo ay stochastic sa kanilang kalikasan. Ngunit ang mga implementasyon ng modelo ay maaaring magkaiba rin depende sa dataset na ginamit sa pagsasanay (pre-trained knowledge), mga kakayahan na ibinibigay nila (hal., sa pamamagitan ng API o SDK) at ang uri ng nilalaman na kanilang na-optimize (hal., code vs. mga larawan vs. teksto). Unawain ang mga kalakasan at limitasyon ng modelong ginagamit mo, at gamitin ang kaalamang iyon upang _unahin ang mga gawain_ o bumuo ng _customized templates_ na na-optimize para sa kakayahan ng modelo. - -3. **Mahalaga ang Iteration at Validation.** Ang mga modelo ay mabilis na umuunlad, gayundin ang mga teknik para sa prompt engineering. Bilang isang eksperto sa domain, maaaring mayroon kang ibang konteksto o pamantayan para sa _iyong_ partikular na aplikasyon, na maaaring hindi naaangkop sa mas malawak na komunidad. Gamitin ang mga tool at teknik sa prompt engineering upang "simulan" ang paggawa ng prompt, pagkatapos ay ulitin at suriin ang mga resulta gamit ang iyong sariling intuwisyon at kaalaman sa domain. Itala ang iyong mga natuklasan at lumikha ng isang **knowledge base** (hal., mga prompt library) na maaaring gamitin bilang bagong baseline ng iba, para sa mas mabilis na mga iteration sa hinaharap. - -## Best Practices - -Ngayon tingnan natin ang mga karaniwang pinakamahusay na kasanayan na inirerekomenda ng [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) at [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst) na mga practitioner. - -| Ano | Bakit | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Suriin ang pinakabagong mga modelo. | Malamang na may mga pinahusay na tampok at kalidad ang mga bagong henerasyon ng modelo - ngunit maaaring mas mataas ang gastos. Suriin ang mga ito para sa epekto, pagkatapos ay magpasya kung lilipat. | -| Paghiwalayin ang mga tagubilin at konteksto | Tingnan kung ang iyong modelo/provider ay nagtatakda ng _delimiters_ upang malinaw na maiba ang mga tagubilin, pangunahing at sekondaryang nilalaman. Makakatulong ito sa mga modelo na mas tumpak na bigyan ng timbang ang mga token. | -| Maging tiyak at malinaw | Magbigay ng mas maraming detalye tungkol sa nais na konteksto, resulta, haba, format, estilo, atbp. Mapapabuti nito ang kalidad at pagkakapare-pareho ng mga tugon. Itala ang mga recipe sa mga reusable na template. | -| Maging mapaglarawan, gumamit ng mga halimbawa | Mas maganda ang tugon ng mga modelo sa "show and tell" na paraan. Magsimula sa `zero-shot` na paraan kung saan bibigyan mo ito ng tagubilin (ngunit walang mga halimbawa) pagkatapos subukan ang `few-shot` bilang pag-aayos, na nagbibigay ng ilang mga halimbawa ng nais na output. Gumamit ng mga analohiya. | -| Gumamit ng mga cue upang simulan ang mga sagot | Himukin ito patungo sa nais na resulta sa pamamagitan ng pagbibigay ng ilang mga panimulang salita o parirala na maaari nitong gamitin bilang panimulang punto para sa tugon. | -| Ulitin kung kinakailangan | Minsan kailangan mong ulitin ang iyong sarili sa modelo. Magbigay ng mga tagubilin bago at pagkatapos ng iyong pangunahing nilalaman, gumamit ng tagubilin at cue, atbp. Ulitin at suriin upang makita kung ano ang gumagana. | -| Mahalaga ang pagkakasunod-sunod | Ang pagkakasunod-sunod ng pagpapakita ng impormasyon sa modelo ay maaaring makaapekto sa output, kahit sa mga halimbawa ng pagkatuto, dahil sa recency bias. Subukan ang iba't ibang opsyon upang makita kung ano ang pinakamainam. | -| Bigyan ang modelo ng “out” | Bigyan ang modelo ng _fallback_ na tugon na maaari nitong ibigay kung hindi nito makumpleto ang gawain sa anumang dahilan. Makakatulong ito upang mabawasan ang posibilidad na makabuo ang mga modelo ng maling o peke na mga sagot. | -| | | - -Tulad ng anumang pinakamahusay na kasanayan, tandaan na _maaaring mag-iba ang iyong karanasan_ depende sa modelo, gawain, at domain. Gamitin ang mga ito bilang panimulang punto, at ulitin upang mahanap kung ano ang pinakamainam para sa iyo. Patuloy na suriin muli ang iyong proseso sa prompt engineering habang may mga bagong modelo at tool na lumalabas, na may pokus sa scalability ng proseso at kalidad ng tugon. - - - -## Assignment - -Binabati kita! Nakapunta ka na sa dulo ng aralin! Panahon na upang subukan ang ilan sa mga konsepto at teknik gamit ang mga totoong halimbawa! - -Para sa ating assignment, gagamit tayo ng Jupyter Notebook na may mga pagsasanay na maaari mong tapusin nang interaktibo. Maaari mo ring palawakin ang Notebook gamit ang sarili mong mga Markdown at Code cells upang tuklasin ang mga ideya at teknik nang mag-isa. - -### Para makapagsimula, i-fork ang repo, pagkatapos - -- (Inirerekomenda) Ilunsad ang GitHub Codespaces -- (Bilang alternatibo) I-clone ang repo sa iyong lokal na device at gamitin ito sa Docker Desktop -- (Bilang alternatibo) Buksan ang Notebook gamit ang iyong paboritong Notebook runtime environment. - -### Susunod, i-configure ang iyong mga environment variable - -- Kopyahin ang `.env.copy` na file sa root ng repo papuntang `.env` at punan ang mga halaga ng `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` at `AZURE_OPENAI_DEPLOYMENT`. Bumalik sa [Learning Sandbox section](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) upang matutunan kung paano. - -### Susunod, buksan ang Jupyter Notebook - -- Piliin ang runtime kernel. Kung ginagamit ang opsyon 1 o 2, piliin lamang ang default na Python 3.10.x kernel na ibinigay ng dev container. - -Handa ka nang patakbuhin ang mga pagsasanay. Tandaan na walang _tama o maling_ sagot dito - ito ay tungkol sa pagsubok ng mga opsyon sa pamamagitan ng trial-and-error at pagbuo ng intuwisyon kung ano ang gumagana para sa isang partikular na modelo at domain ng aplikasyon. - -_Dahil dito, walang mga Code Solution segment sa araling ito. Sa halip, ang Notebook ay magkakaroon ng mga Markdown cell na may pamagat na "My Solution:" na nagpapakita ng isang halimbawa ng output bilang sanggunian._ - - - -## Knowledge check - -Alin sa mga sumusunod ang isang magandang prompt na sumusunod sa ilang makatwirang pinakamahusay na kasanayan? - -1. Ipakita sa akin ang larawan ng pulang kotse -2. Ipakita sa akin ang larawan ng pulang kotse na gawa ng Volvo at modelong XC90 na nakaparada sa tabi ng bangin habang lumulubog ang araw -3. Ipakita sa akin ang larawan ng pulang kotse na gawa ng Volvo at modelong XC90 - -Sagot: 2, ito ang pinakamahusay na prompt dahil nagbibigay ito ng detalye kung "ano" at pumapasok sa mga espesipiko (hindi basta-basta kotse kundi isang partikular na make at model) at inilalarawan din ang kabuuang tanawin. Ang 3 naman ang pangalawa dahil naglalaman din ito ng maraming paglalarawan. - -## 🚀 Hamon - -Subukan mong gamitin ang teknik na "cue" sa prompt na ito: Kumpletuhin ang pangungusap na "Ipakita sa akin ang larawan ng pulang kotse na gawa ng Volvo at ". Ano ang magiging tugon nito, at paano mo ito mapapabuti? - -## Magaling! Ipagpatuloy ang Iyong Pag-aaral - -Gusto mo bang matuto pa tungkol sa iba't ibang konsepto ng Prompt Engineering? Pumunta sa [patuloy na pahina ng pag-aaral](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) upang makahanap ng iba pang magagandang mapagkukunan tungkol sa paksang ito. - -Pumunta sa Aralin 5 kung saan tatalakayin natin ang [mga advanced na teknik sa prompting](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**Paalala**: -Ang dokumentong ito ay isinalin gamit ang AI translation service na [Co-op Translator](https://github.com/Azure/co-op-translator). Bagamat nagsusumikap kami para sa katumpakan, pakatandaan na ang mga awtomatikong pagsasalin ay maaaring maglaman ng mga pagkakamali o di-tumpak na impormasyon. Ang orihinal na dokumento sa kanyang sariling wika ang dapat ituring na pangunahing sanggunian. Para sa mahahalagang impormasyon, inirerekomenda ang propesyonal na pagsasalin ng tao. Hindi kami mananagot sa anumang hindi pagkakaunawaan o maling interpretasyon na maaaring magmula sa paggamit ng pagsasaling ito. \ No newline at end of file + + + + + + + diff --git a/translations/tl/09-building-image-applications/README.md b/translations/tl/09-building-image-applications/README.md index fd39c321e..0c630e3d8 100644 --- a/translations/tl/09-building-image-applications/README.md +++ b/translations/tl/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# Paggawa ng Mga Aplikasyon para sa Pagbuo ng Imahe - -[![Paggawa ng Mga Aplikasyon para sa Pagbuo ng Imahe](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.tl.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -Hindi lang teksto ang kaya ng LLMs. Maaari rin silang gumawa ng mga imahe mula sa mga paglalarawan sa teksto. Ang pagkakaroon ng mga imahe bilang modality ay napaka-kapaki-pakinabang sa iba't ibang larangan tulad ng MedTech, arkitektura, turismo, pagbuo ng laro, at iba pa. Sa kabanatang ito, titingnan natin ang dalawang pinakasikat na modelo para sa pagbuo ng imahe, ang DALL-E at Midjourney. - -## Panimula - -Sa araling ito, tatalakayin natin ang: - -- Pagbuo ng imahe at kung bakit ito kapaki-pakinabang. -- Ano ang DALL-E at Midjourney, at paano sila gumagana. -- Paano ka makakagawa ng isang app para sa pagbuo ng imahe. - -## Mga Layunin sa Pagkatuto - -Pagkatapos matapos ang araling ito, magagawa mong: - -- Gumawa ng isang aplikasyon para sa pagbuo ng imahe. -- Magtakda ng mga hangganan para sa iyong aplikasyon gamit ang meta prompts. -- Gumamit ng DALL-E at Midjourney. - -## Bakit gumawa ng aplikasyon para sa pagbuo ng imahe? - -Ang mga aplikasyon para sa pagbuo ng imahe ay mahusay na paraan para tuklasin ang kakayahan ng Generative AI. Maaari itong gamitin, halimbawa, para sa: - -- **Pag-edit at synthesis ng imahe**. Maaari kang gumawa ng mga imahe para sa iba't ibang gamit, tulad ng pag-edit at synthesis ng imahe. - -- **Paglalapat sa iba't ibang industriya**. Maaari rin itong gamitin upang gumawa ng mga imahe para sa iba't ibang industriya tulad ng Medtech, Turismo, Pagbuo ng laro, at iba pa. - -## Senaryo: Edu4All - -Bilang bahagi ng araling ito, magpapatuloy tayo sa pagtatrabaho kasama ang aming startup na Edu4All. Ang mga estudyante ay gagawa ng mga imahe para sa kanilang mga pagsusulit; kung anong mga imahe ang gagawin ay nasa kanila, maaaring mga ilustrasyon para sa kanilang sariling kwento, gumawa ng bagong karakter para sa kanilang kwento, o tulungan silang mailarawan ang kanilang mga ideya at konsepto. - -Narito ang maaaring gawin ng mga estudyante ng Edu4All kung sila ay gumagawa sa klase tungkol sa mga monumento: - -![Edu4All startup, klase tungkol sa mga monumento, Eiffel Tower](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.tl.png) - -gamit ang prompt na - -> "Aso sa tabi ng Eiffel Tower sa maagang sikat ng araw" - -## Ano ang DALL-E at Midjourney? - -Ang [DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) at [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) ay dalawa sa mga pinakasikat na modelo para sa pagbuo ng imahe, pinapayagan kang gumamit ng mga prompt para gumawa ng mga imahe. - -### DALL-E - -Magsimula tayo sa DALL-E, isang Generative AI model na gumagawa ng mga imahe mula sa mga paglalarawan sa teksto. - -> [Ang DALL-E ay kombinasyon ng dalawang modelo, CLIP at diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP**, ay isang modelo na gumagawa ng embeddings, mga numerikal na representasyon ng data, mula sa mga imahe at teksto. - -- **Diffused attention**, ay isang modelo na gumagawa ng mga imahe mula sa embeddings. Ang DALL-E ay sinanay gamit ang dataset ng mga imahe at teksto at maaaring gamitin upang gumawa ng mga imahe mula sa mga paglalarawan sa teksto. Halimbawa, maaaring gamitin ang DALL-E upang gumawa ng mga imahe ng pusa na may sumbrero, o aso na may mohawk. - -### Midjourney - -Ang Midjourney ay gumagana nang katulad ng DALL-E, gumagawa ito ng mga imahe mula sa mga text prompt. Maaari rin itong gamitin upang gumawa ng mga imahe gamit ang mga prompt tulad ng “pusa na may sumbrero”, o “aso na may mohawk”. - -![Larawan na ginawa ng Midjourney, mechanical pigeon](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Larawan mula sa Wikipedia, gawa ng Midjourney_ - -## Paano gumagana ang DALL-E at Midjourney - -Una, ang [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). Ang DALL-E ay isang Generative AI model na nakabase sa transformer architecture na may _autoregressive transformer_. - -Ang _autoregressive transformer_ ay naglalarawan kung paano gumagawa ang modelo ng mga imahe mula sa mga paglalarawan sa teksto, isa-isang pixel ang ginagawa, at ginagamit ang mga nagawang pixel para gumawa ng susunod na pixel. Dumadaan ito sa maraming layers sa neural network hanggang sa makumpleto ang imahe. - -Sa prosesong ito, kinokontrol ng DALL-E ang mga katangian, bagay, at iba pa sa imahe na ginagawa nito. Gayunpaman, ang DALL-E 2 at 3 ay may mas malawak na kontrol sa nagawang imahe. - -## Paggawa ng iyong unang aplikasyon para sa pagbuo ng imahe - -Ano ang kailangan para makagawa ng aplikasyon para sa pagbuo ng imahe? Kailangan mo ang mga sumusunod na library: - -- **python-dotenv**, lubos na inirerekomenda na gamitin ito para itago ang iyong mga sikreto sa isang _.env_ file na hiwalay sa code. -- **openai**, ito ang library na gagamitin mo para makipag-ugnayan sa OpenAI API. -- **pillow**, para sa pagproseso ng mga imahe sa Python. -- **requests**, para makatulong sa paggawa ng HTTP requests. - -1. Gumawa ng file na _.env_ na may sumusunod na nilalaman: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Hanapin ang impormasyong ito sa Azure Portal para sa iyong resource sa seksyong "Keys and Endpoint". - -1. Ilagay ang mga library na ito sa isang file na tinatawag na _requirements.txt_ tulad nito: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. Sunod, gumawa ng virtual environment at i-install ang mga library: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Para sa Windows, gamitin ang mga sumusunod na utos para gumawa at i-activate ang virtual environment: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. Idagdag ang sumusunod na code sa file na tinatawag na _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Ipapaliwanag natin ang code na ito: - -- Una, ini-import natin ang mga library na kailangan, kabilang ang OpenAI library, dotenv library, requests library, at Pillow library. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Sunod, niloload natin ang mga environment variable mula sa _.env_ file. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- Pagkatapos, itinatakda natin ang endpoint, key para sa OpenAI API, bersyon, at uri. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- Sunod, ginagawa natin ang imahe: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - Ang code sa itaas ay nagbabalik ng JSON object na naglalaman ng URL ng nagawang imahe. Maaari nating gamitin ang URL para i-download ang imahe at i-save ito sa isang file. - -- Sa huli, binubuksan natin ang imahe at ginagamit ang karaniwang image viewer para ipakita ito: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Mas detalyadong paliwanag sa paggawa ng imahe - -Tingnan natin nang mas malalim ang code na gumagawa ng imahe: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt**, ang text prompt na ginagamit para gumawa ng imahe. Sa kasong ito, ginagamit natin ang prompt na "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils". -- **size**, ang sukat ng imahe na gagawin. Sa kasong ito, gumagawa tayo ng imahe na 1024x1024 pixels. -- **n**, ang bilang ng mga imahe na gagawin. Sa kasong ito, gumagawa tayo ng dalawang imahe. -- **temperature**, isang parameter na kumokontrol sa randomness ng output ng Generative AI model. Ang temperature ay may halagang mula 0 hanggang 1 kung saan ang 0 ay nangangahulugang deterministic ang output at ang 1 ay nangangahulugang random ang output. Ang default na halaga ay 0.7. - -Marami pang ibang bagay na maaari mong gawin sa mga imahe na tatalakayin natin sa susunod na bahagi. - -## Karagdagang kakayahan sa pagbuo ng imahe - -Nakita mo na kung paano tayo makakagawa ng imahe gamit ang ilang linya ng Python. Ngunit marami pang ibang bagay na maaari mong gawin sa mga imahe. - -Maaari mo ring gawin ang mga sumusunod: - -- **Gumawa ng mga edit**. Sa pamamagitan ng pagbibigay ng umiiral na imahe, mask, at prompt, maaari mong baguhin ang imahe. Halimbawa, maaari kang magdagdag ng isang bagay sa isang bahagi ng imahe. Isipin ang ating imahe ng kuneho, maaari kang magdagdag ng sumbrero sa kuneho. Gagawin mo ito sa pamamagitan ng pagbibigay ng imahe, mask (na tumutukoy sa bahagi na babaguhin), at text prompt na nagsasabi kung ano ang gagawin. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - Ang base na imahe ay naglalaman lamang ng kuneho ngunit ang huling imahe ay may sumbrero na sa kuneho. - -- **Gumawa ng mga variation**. Ang ideya ay kumuha ng umiiral na imahe at hilingin na gumawa ng mga variation nito. Para gumawa ng variation, magbibigay ka ng imahe at text prompt at code tulad nito: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Tandaan, suportado lamang ito sa OpenAI - -## Temperature - -Ang temperature ay isang parameter na kumokontrol sa randomness ng output ng Generative AI model. Ang temperature ay may halagang mula 0 hanggang 1 kung saan ang 0 ay nangangahulugang deterministic ang output at ang 1 ay nangangahulugang random ang output. Ang default na halaga ay 0.7. - -Tingnan natin ang halimbawa kung paano gumagana ang temperature, sa pamamagitan ng pagpapatakbo ng prompt na ito ng dalawang beses: - -> Prompt : "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils" - -![Bunny on a horse holding a lollipop, version 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.tl.png) - -Ngayon patakbuhin natin ang parehong prompt para makita na hindi pareho ang lalabas na imahe: - -![Generated image of bunny on horse](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.tl.png) - -Makikita mo, magkatulad ang mga imahe pero hindi pareho. Subukan nating baguhin ang halaga ng temperature sa 0.1 at tingnan ang resulta: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Pagbabago ng temperature - -Subukan nating gawing mas deterministic ang sagot. Napansin natin sa dalawang nagawang imahe na sa unang imahe ay kuneho ang lumabas at sa pangalawa ay kabayo, kaya malaki ang pagkakaiba ng mga imahe. - -Kaya babaguhin natin ang code at itatakda ang temperature sa 0, ganito: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Ngayon kapag pinatakbo mo ang code, makakakuha ka ng dalawang imahe na ito: - -- ![Temperature 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.tl.png) -- ![Temperature 0 , v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.tl.png) - -Dito makikita mo nang malinaw kung paano mas nagkakatulad ang mga imahe. - -## Paano magtakda ng mga hangganan para sa iyong aplikasyon gamit ang metaprompts - -Sa demo natin, kaya na nating gumawa ng mga imahe para sa ating mga kliyente. Ngunit kailangan nating magtakda ng ilang hangganan para sa ating aplikasyon. - -Halimbawa, ayaw nating gumawa ng mga imahe na hindi angkop sa trabaho, o hindi angkop para sa mga bata. - -Magagawa natin ito gamit ang _metaprompts_. Ang metaprompts ay mga text prompt na ginagamit para kontrolin ang output ng isang Generative AI model. Halimbawa, maaari nating gamitin ang metaprompts para siguraduhing ang mga nagawang imahe ay ligtas sa trabaho, o angkop para sa mga bata. - -### Paano ito gumagana? - -Paano nga ba gumagana ang metaprompts? - -Ang metaprompts ay mga text prompt na ginagamit para kontrolin ang output ng isang Generative AI model, inilalagay ito bago ang pangunahing text prompt, at ginagamit para kontrolin ang output ng modelo at isinasama sa mga aplikasyon para kontrolin ang output ng modelo. Pinagsasama ang prompt input at meta prompt input sa isang text prompt. - -Isang halimbawa ng meta prompt ay ang sumusunod: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Ngayon, tingnan natin kung paano natin magagamit ang meta prompts sa ating demo. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -Mula sa prompt sa itaas, makikita mo kung paano isinasaalang-alang ng lahat ng mga nagawang imahe ang metaprompt. - -## Takdang-Aralin - bigyang kakayahan ang mga estudyante - -Ipinakilala natin ang Edu4All sa simula ng araling ito. Ngayon ay panahon na para bigyang kakayahan ang mga estudyante na gumawa ng mga imahe para sa kanilang mga pagsusulit. - -Gagawa ang mga estudyante ng mga imahe para sa kanilang mga pagsusulit na naglalaman ng mga monumento, kung anong mga monumento ay nasa kanila. Hinihikayat ang mga estudyante na gamitin ang kanilang pagkamalikhain sa gawaing ito upang ilagay ang mga monumento sa iba't ibang konteksto. - -## Solusyon - -Narito ang isang posibleng solusyon: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Magaling! Ipagpatuloy ang Iyong Pag-aaral - -Pagkatapos matapos ang araling ito, tingnan ang aming [Generative AI Learning collection](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) para ipagpatuloy ang paghasa ng iyong kaalaman sa Generative AI! - -Pumunta sa Lesson 10 kung saan titingnan natin kung paano [gumawa ng AI applications gamit ang low-code](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**Paalala**: -Ang dokumentong ito ay isinalin gamit ang AI translation service na [Co-op Translator](https://github.com/Azure/co-op-translator). Bagamat nagsusumikap kami para sa katumpakan, pakatandaan na ang mga awtomatikong pagsasalin ay maaaring maglaman ng mga pagkakamali o di-tumpak na impormasyon. Ang orihinal na dokumento sa orihinal nitong wika ang dapat ituring na pangunahing sanggunian. Para sa mahahalagang impormasyon, inirerekomenda ang propesyonal na pagsasalin ng tao. Hindi kami mananagot sa anumang hindi pagkakaunawaan o maling interpretasyon na maaaring magmula sa paggamit ng pagsasaling ito. \ No newline at end of file + + + + diff --git a/translations/tl/12-designing-ux-for-ai-applications/README.md b/translations/tl/12-designing-ux-for-ai-applications/README.md index bf58150e8..cf6c13311 100644 --- a/translations/tl/12-designing-ux-for-ai-applications/README.md +++ b/translations/tl/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# Pagdidisenyo ng UX para sa mga AI Application - -[![Pagdidisenyo ng UX para sa mga AI Application](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.tl.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(I-click ang larawan sa itaas para mapanood ang video ng araling ito)_ - -Napakahalaga ng karanasan ng gumagamit sa paggawa ng mga app. Kailangan magamit ng mga user ang iyong app nang epektibo upang maisagawa ang mga gawain. Mahalaga ang pagiging epektibo, ngunit kailangan mo ring idisenyo ang mga app upang magamit ito ng lahat, upang maging _accessible_. Tututukan ng kabanatang ito ang aspetong ito upang sana ay makagawa ka ng app na gusto at kayang gamitin ng mga tao. - -## Panimula - -Ang karanasan ng gumagamit ay kung paano nakikipag-ugnayan at gumagamit ang isang user sa isang partikular na produkto o serbisyo, maging ito man ay sistema, kasangkapan, o disenyo. Sa pagbuo ng mga AI application, hindi lang tinitiyak ng mga developer na epektibo ang karanasan ng gumagamit kundi pati na rin na ito ay etikal. Sa araling ito, tatalakayin natin kung paano bumuo ng mga Artificial Intelligence (AI) application na tumutugon sa pangangailangan ng mga user. - -Saklaw ng aralin ang mga sumusunod na paksa: - -- Panimula sa Karanasan ng Gumagamit at Pag-unawa sa Pangangailangan ng User -- Pagdidisenyo ng AI Application para sa Tiwala at Transparency -- Pagdidisenyo ng AI Application para sa Pakikipagtulungan at Feedback - -## Mga Layunin sa Pagkatuto - -Pagkatapos ng araling ito, magagawa mong: - -- Maunawaan kung paano bumuo ng AI application na tumutugon sa pangangailangan ng user. -- Magdisenyo ng AI application na nagpapalaganap ng tiwala at pakikipagtulungan. - -### Kinakailangan - -Maglaan ng oras upang basahin pa ang tungkol sa [karanasan ng gumagamit at design thinking.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Panimula sa Karanasan ng Gumagamit at Pag-unawa sa Pangangailangan ng User - -Sa aming kathang-isip na startup sa edukasyon, may dalawang pangunahing user: mga guro at mga estudyante. Bawat isa ay may kanya-kanyang pangangailangan. Ang user-centered design ay inuuna ang user upang matiyak na ang mga produkto ay may kaugnayan at kapaki-pakinabang para sa mga taong nilalayon nito. - -Dapat ang aplikasyon ay **kapaki-pakinabang, maaasahan, accessible, at kaaya-aya** upang makapagbigay ng magandang karanasan sa gumagamit. - -### Usability - -Ang pagiging kapaki-pakinabang ay nangangahulugan na ang aplikasyon ay may mga tampok na tumutugma sa layunin nito, tulad ng pag-automate ng proseso ng pag-grade o paggawa ng mga flashcard para sa pag-uulit. Ang isang app na nag-a-automate ng grading ay dapat makapagbigay ng tumpak at mabilis na pagmamarka sa mga gawa ng estudyante base sa mga itinakdang pamantayan. Gayundin, ang app na gumagawa ng flashcard ay dapat makalikha ng mga kaugnay at iba't ibang tanong base sa datos nito. - -### Reliability - -Ang pagiging maaasahan ay nangangahulugan na ang aplikasyon ay kayang gawin ang gawain nang tuloy-tuloy at walang mali. Ngunit tulad ng tao, hindi perpekto ang AI at maaaring magkamali. Maaaring magkaroon ng mga error o hindi inaasahang sitwasyon na nangangailangan ng interbensyon o pagwawasto ng tao. Paano mo haharapin ang mga error? Sa huling bahagi ng araling ito, tatalakayin natin kung paano idinisenyo ang mga AI system at aplikasyon para sa pakikipagtulungan at feedback. - -### Accessibility - -Ang pagiging accessible ay nangangahulugan ng pagpapalawak ng karanasan ng gumagamit sa mga user na may iba't ibang kakayahan, kabilang ang mga may kapansanan, upang walang maiiwan. Sa pagsunod sa mga patnubay at prinsipyo ng accessibility, nagiging mas inklusibo, magagamit, at kapaki-pakinabang ang mga solusyon ng AI para sa lahat ng user. - -### Pleasant - -Ang pagiging kaaya-aya ay nangangahulugan na ang aplikasyon ay masaya gamitin. Ang kaakit-akit na karanasan ng gumagamit ay maaaring magdulot ng positibong epekto sa user, hinihikayat silang bumalik sa app at tumataas ang kita ng negosyo. - -![larawan na nagpapakita ng mga konsiderasyon sa UX sa AI](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.tl.png) - -Hindi lahat ng hamon ay malulutas ng AI. Ang AI ay ginagamit upang dagdagan ang iyong karanasan sa gumagamit, maging ito man ay pag-automate ng mga manwal na gawain o pag-personalize ng karanasan ng user. - -## Pagdidisenyo ng AI Application para sa Tiwala at Transparency - -Mahalaga ang pagtitiwala sa pagdidisenyo ng AI application. Ang tiwala ay nagsisiguro na kumpiyansa ang user na matatapos ng app ang gawain, magbibigay ng resulta nang tuloy-tuloy, at ang resulta ay tugma sa pangangailangan ng user. Isang panganib dito ang kawalan ng tiwala at sobra-sobrang tiwala. Nangyayari ang kawalan ng tiwala kapag ang user ay halos walang tiwala sa AI system, kaya tinatanggihan nila ang iyong app. Nangyayari naman ang sobra-sobrang tiwala kapag sobra ang pag-asa ng user sa kakayahan ng AI system, kaya labis nilang pinagkakatiwalaan ito. Halimbawa, sa isang automated grading system, maaaring hindi na suriin ng guro ang ilang papel dahil sobra ang tiwala sa grading system. Maaari itong magdulot ng hindi patas o maling grado para sa mga estudyante, o mawalan ng pagkakataon para sa feedback at pagbuti. - -Dalawang paraan upang matiyak na ang tiwala ay nasa sentro ng disenyo ay ang explainability at control. - -### Explainability - -Kapag tumutulong ang AI sa paggawa ng mga desisyon tulad ng pagbibigay-kaalaman sa mga susunod na henerasyon, mahalaga para sa mga guro at magulang na maintindihan kung paano ginagawa ang mga desisyon ng AI. Ito ang explainability - ang pag-unawa kung paano gumagawa ng desisyon ang AI application. Kasama sa pagdidisenyo para sa explainability ang pagdagdag ng mga detalye at halimbawa ng kaya ng AI application. Halimbawa, sa halip na "Get started with AI teacher," maaaring gamitin ng sistema ang: "Ibuod ang iyong mga tala para sa mas madaling pag-uulit gamit ang AI." - -![isang landing page ng app na malinaw ang pagpapaliwanag ng explainability sa AI application](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.tl.png) - -Isa pang halimbawa ay kung paano ginagamit ng AI ang data ng user at personal na impormasyon. Halimbawa, ang isang user na may persona na estudyante ay maaaring may mga limitasyon base sa kanilang persona. Maaaring hindi maipakita ng AI ang mga sagot sa mga tanong ngunit matutulungan ang user na mag-isip kung paano nila malulutas ang problema. - -![AI na sumasagot sa mga tanong base sa persona](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.tl.png) - -Ang huling mahalagang bahagi ng explainability ay ang pagpapasimple ng mga paliwanag. Maaaring hindi eksperto sa AI ang mga estudyante at guro, kaya dapat ang mga paliwanag tungkol sa kaya at hindi kaya ng app ay maging simple at madaling maintindihan. - -![pinasimpleng paliwanag tungkol sa kakayahan ng AI](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.tl.png) - -### Control - -Lumilikha ang Generative AI ng pakikipagtulungan sa pagitan ng AI at user, kung saan maaaring baguhin ng user ang mga prompt para sa iba't ibang resulta. Bukod dito, kapag may na-generate na output, dapat may kakayahan ang user na baguhin ito upang magkaroon sila ng kontrol. Halimbawa, kapag gumagamit ng Bing, maaari mong i-customize ang prompt base sa format, tono, at haba. Maaari ka ring magdagdag ng pagbabago sa output at i-edit ito tulad ng ipinapakita sa ibaba: - -![Mga resulta ng Bing search na may opsyon na baguhin ang prompt at output](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.tl.png) - -Isa pang tampok sa Bing na nagbibigay kontrol sa user ay ang kakayahang pumili kung sasali o hindi sa paggamit ng data ng AI. Sa isang school application, maaaring gusto ng estudyante na gamitin ang kanilang mga tala pati na rin ang mga resources ng guro bilang materyal sa pag-uulit. - -![Mga resulta ng Bing search na may opsyon na baguhin ang prompt at output](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.tl.png) - -> Sa pagdidisenyo ng AI application, mahalaga ang intensyon upang hindi magdulot ng sobra-sobrang tiwala ang mga user na may hindi makatotohanang inaasahan sa kakayahan nito. Isang paraan ay ang paglikha ng hadlang sa pagitan ng mga prompt at resulta. Paalalahanan ang user na ito ay AI at hindi isang kapwa tao. - -## Pagdidisenyo ng AI Application para sa Pakikipagtulungan at Feedback - -Tulad ng nabanggit, lumilikha ang generative AI ng pakikipagtulungan sa pagitan ng user at AI. Kadalasan, ang user ay naglalagay ng prompt at ang AI ang naglalabas ng output. Paano kung mali ang output? Paano hinaharap ng app ang mga error kung mangyari ito? Sinisisi ba ng AI ang user o nagbibigay ito ng paliwanag tungkol sa error? - -Dapat idisenyo ang AI application upang tumanggap at magbigay ng feedback. Nakakatulong ito hindi lang sa pagpapabuti ng AI system kundi pati na rin sa pagtitiwala ng mga user. Dapat may feedback loop sa disenyo, tulad ng simpleng thumbs up o thumbs down sa output. - -Isa pang paraan ay malinaw na ipaalam ang mga kakayahan at limitasyon ng sistema. Kapag nagkamali ang user sa paghingi ng bagay na lampas sa kakayahan ng AI, dapat may paraan upang harapin ito, tulad ng ipinapakita sa ibaba. - -![Pagbibigay ng feedback at paghawak ng mga error](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.tl.png) - -Karaniwan ang mga system error sa mga aplikasyon kung saan maaaring kailanganin ng user ng tulong sa impormasyon na wala sa saklaw ng AI o may limitasyon ang app kung ilang tanong/paksa ang maaaring gawing buod. Halimbawa, ang AI application na sinanay gamit ang datos sa limitadong mga paksa tulad ng Kasaysayan at Matematika ay maaaring hindi makasagot sa mga tanong tungkol sa Heograpiya. Upang maiwasan ito, maaaring magbigay ang AI system ng sagot na: "Paumanhin, ang aming produkto ay sinanay gamit ang datos sa mga sumusunod na paksa....., hindi ko kayang sagutin ang tanong na iyong itinatanong." - -Hindi perpekto ang mga AI application, kaya inaasahan ang mga pagkakamali. Sa pagdidisenyo ng iyong mga app, siguraduhing may puwang para sa feedback mula sa mga user at para sa paghawak ng error sa paraang simple at madaling ipaliwanag. - -## Takdang Aralin - -Pumili ng kahit anong AI app na nagawa mo na, isaalang-alang ang pagpapatupad ng mga sumusunod na hakbang sa iyong app: - -- **Kaaya-aya:** Isipin kung paano mo mapapaganda ang karanasan sa paggamit ng iyong app. Nagdadagdag ka ba ng paliwanag sa lahat ng lugar? Hinihikayat mo ba ang user na mag-explore? Paano mo binubuo ang mga mensahe ng error? - -- **Usability:** Gumawa ng web app. Siguraduhing maaaring i-navigate ang app gamit ang mouse at keyboard. - -- **Tiwala at transparency:** Huwag lubusang pagkatiwalaan ang AI at ang output nito, isaalang-alang kung paano mo maidaragdag ang tao sa proseso upang beripikahin ang output. Isaalang-alang at ipatupad din ang iba pang paraan upang makamit ang tiwala at transparency. - -- **Kontrol:** Bigyan ang user ng kontrol sa data na ibinibigay nila sa aplikasyon. Magpatupad ng paraan para makapili ang user kung sasali o hindi sa pagkolekta ng data sa AI application. - -## Ipagpatuloy ang Iyong Pag-aaral! - -Pagkatapos makumpleto ang araling ito, tingnan ang aming [Generative AI Learning collection](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) upang lalo pang paunlarin ang iyong kaalaman sa Generative AI! - -Pumunta sa Lesson 13, kung saan tatalakayin natin kung paano [seguraduhin ang AI application](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**Paalala**: -Ang dokumentong ito ay isinalin gamit ang AI translation service na [Co-op Translator](https://github.com/Azure/co-op-translator). Bagamat nagsusumikap kami para sa katumpakan, pakatandaan na ang mga awtomatikong pagsasalin ay maaaring maglaman ng mga pagkakamali o di-tumpak na impormasyon. Ang orihinal na dokumento sa kanyang sariling wika ang dapat ituring na pangunahing sanggunian. Para sa mahahalagang impormasyon, inirerekomenda ang propesyonal na pagsasalin ng tao. Hindi kami mananagot sa anumang hindi pagkakaunawaan o maling interpretasyon na maaaring magmula sa paggamit ng pagsasaling ito. \ No newline at end of file + + + diff --git a/translations/tl/README.md b/translations/tl/README.md index 6cfcde738..247e190ce 100644 --- a/translations/tl/README.md +++ b/translations/tl/README.md @@ -1,137 +1,12 @@ - -![Generative AI Para sa mga Nagsisimula](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.tl.png) - -### 21 Aralin na nagtuturo ng lahat ng kailangan mong malaman para makapagsimula sa paggawa ng mga Generative AI na aplikasyon - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Suporta sa Maraming Wika - -#### Sinusuportahan sa pamamagitan ng GitHub Action (Awtomatiko at Palaging Napapanahon) - -[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](./README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md) - -# Generative AI para sa mga Nagsisimula (Bersyon 3) - Isang Kurso - -Matutunan ang mga pundasyon sa paggawa ng mga Generative AI na aplikasyon sa aming 21-araling komprehensibong kurso mula sa Microsoft Cloud Advocates. - -## 🌱 Pagsisimula - -Ang kursong ito ay may 21 aralin. Bawat aralin ay may kanya-kanyang paksa kaya maaari kang magsimula kahit saan mo gusto! - -Ang mga aralin ay may label na "Learn" para sa mga paliwanag ng konsepto ng Generative AI o "Build" para sa mga aralin na nagpapaliwanag ng konsepto at may mga halimbawa ng code sa parehong **Python** at **TypeScript** kung maaari. - -Para sa mga .NET Developers, tingnan ang [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -Kasama rin sa bawat aralin ang seksyong "Keep Learning" na may dagdag na mga kagamitan para sa pag-aaral. - -## Ano ang Kailangan Mo -### Para patakbuhin ang code ng kursong ito, maaari mong gamitin ang alinman sa mga sumusunod: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **Mga Aralin:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **Mga Aralin:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **Mga Aralin:** "oai-assignment" - -- Kapaki-pakinabang ang pangunahing kaalaman sa Python o TypeScript - \*Para sa mga ganap na nagsisimula, tingnan ang mga kursong ito sa [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) at [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) -- Isang GitHub account para [i-fork ang buong repo na ito](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) papunta sa iyong sariling GitHub account - -Nilikha namin ang isang **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** na aralin para tulungan kang i-setup ang iyong development environment. - -Huwag kalimutang [i-star (🌟) ang repo na ito](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) para mas madali mo itong mahanap sa susunod. - -## 🧠 Handa Ka Na Bang I-deploy? - -Kung naghahanap ka ng mas advanced na mga halimbawa ng code, tingnan ang aming [koleksyon ng Generative AI Code Samples](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) sa parehong **Python** at **TypeScript**. - -## 🗣️ Makipagkilala sa Ibang mga Nag-aaral, Humingi ng Tulong - -Sumali sa aming [opisyal na Azure AI Foundry Discord server](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) para makipag-ugnayan at makipag-network sa ibang mga nag-aaral ng kursong ito at humingi ng suporta. - -Magtanong o magbahagi ng feedback tungkol sa produkto sa aming [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum) sa Github. - -## 🚀 Nagtatayo ng Startup? - -Mag-sign up sa [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) para makatanggap ng **libreng OpenAI credits** at hanggang **$150k para sa Azure credits upang ma-access ang OpenAI models sa pamamagitan ng Azure OpenAI Services**. - -## 🙏 Gusto Mo Bang Tumulong? - -May mga suhestiyon ka ba o nakakita ng mga mali sa spelling o code? [Mag-raise ng isyu](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) o [Gumawa ng pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 Kasama sa bawat aralin: - -- Maikling video na pagpapakilala sa paksa -- Nakasaad na aralin sa README -- Mga halimbawa ng code sa Python at TypeScript na sumusuporta sa Azure OpenAI at OpenAI API -- Mga link sa karagdagang mga mapagkukunan para ipagpatuloy ang iyong pag-aaral - -## 🗃️ Mga Aralin - -| # | **Link ng Aralin** | **Paglalarawan** | **Video** | **Karagdagang Pag-aaral** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Paano I-setup ang Iyong Development Environment | Video Paparating Pa | [Matuto Pa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introduction to Generative AI and LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Pag-unawa kung ano ang Generative AI at paano gumagana ang Large Language Models (LLMs). | [Video](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Matuto Pa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Exploring and comparing different LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Paano pumili ng tamang modelo para sa iyong gamit | [Video](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Matuto Pa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Using Generative AI Responsibly](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Paano gumawa ng mga Generative AI na aplikasyon nang responsable | [Video](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Matuto Pa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Understanding Prompt Engineering Fundamentals](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Praktikal na mga pinakamahusay na gawain sa Prompt Engineering | [Video](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Matuto Pa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Creating Advanced Prompts](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Paano gamitin ang mga teknik sa prompt engineering na nagpapabuti sa resulta ng iyong mga prompt. | [Video](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Matuto Pa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Paggawa ng Mga Aplikasyon para sa Text Generation](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Gumawa:** Isang app para sa text generation gamit ang Azure OpenAI / OpenAI API | [Video](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Matuto Pa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Paggawa ng Mga Chat Application](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Gumawa:** Mga teknik para sa mabilis at epektibong paggawa at pagsasama ng mga chat application. | [Video](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Matuto Pa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Paggawa ng Mga Search App gamit ang Vector Databases](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Gumawa:** Isang search application na gumagamit ng Embeddings para maghanap ng data. | [Video](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Matuto Pa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Paggawa ng Mga Image Generation Application](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Gumawa:** Isang application para sa pagbuo ng mga larawan | [Video](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Matuto Pa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Paggawa ng Mga Low Code AI Application](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Gumawa:** Isang Generative AI application gamit ang Low Code tools | [Video](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Matuto Pa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Pagsasama ng Mga External Application gamit ang Function Calling](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Gumawa:** Ano ang function calling at mga gamit nito sa mga application | [Video](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Matuto Pa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [Pagdidisenyo ng UX para sa AI Application](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Matuto:** Paano gamitin ang mga prinsipyo ng UX design sa pagbuo ng Generative AI Application | [Video](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Matuto Pa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Pagpapatibay ng Iyong Generative AI Application](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Matuto:** Mga banta at panganib sa mga AI system at mga paraan para maprotektahan ang mga ito. | [Video](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Matuto Pa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [Ang Lifecycle ng Generative AI Application](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Matuto:** Mga tools at sukatan para pamahalaan ang LLM Lifecycle at LLMOps | [Video](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Matuto Pa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) at Vector Databases](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Gumawa:** Isang application gamit ang RAG Framework para kumuha ng embeddings mula sa Vector Databases | [Video](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Matuto Pa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Open Source Models at Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Gumawa:** Isang application gamit ang open source models na makikita sa Hugging Face | [Video](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Matuto Pa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI Agents](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Gumawa:** Isang application gamit ang AI Agent Framework | [Video](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Matuto Pa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [Fine-Tuning ng LLMs](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Matuto:** Ano, bakit, at paano ang fine-tuning ng LLMs | [Video](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Matuto Pa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Paggawa gamit ang SLMs](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Matuto:** Mga benepisyo ng paggawa gamit ang Small Language Models | Video Darating Pa | [Matuto Pa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Paggawa gamit ang Mistral Models](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Matuto:** Mga katangian at pagkakaiba ng Mistral Family Models | Video Darating Pa | [Matuto Pa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Paggawa gamit ang Meta Models](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Matuto:** Mga katangian at pagkakaiba ng Meta Family Models | Video Darating Pa | [Matuto Pa](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Espesyal na pasasalamat - -Espesyal na pasasalamat kay [**John Aziz**](https://www.linkedin.com/in/john0isaac/) sa paglikha ng lahat ng GitHub Actions at workflows - -Kay [**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) para sa mahahalagang kontribusyon sa bawat aralin upang mapabuti ang karanasan ng mga nag-aaral at ng code. - -## 🎒 Iba Pang Kurso - -Ang aming koponan ay gumagawa rin ng iba pang mga kurso! Tingnan ang: - -- [**BAGO** Model Context Protocol para sa mga Baguhan](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI Agents para sa mga Baguhan](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Generative AI para sa mga Baguhan gamit ang .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Generative AI para sa mga Baguhan gamit ang JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML para sa mga Baguhan](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Data Science para sa mga Baguhan](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI para sa mga Baguhan](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Cybersecurity para sa mga Baguhan](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Web Dev para sa mga Baguhan](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT para sa mga Baguhan](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR Development para sa mga Baguhan](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Mastering GitHub Copilot para sa AI Paired Programming](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Mastering GitHub Copilot para sa C#/.NET Developers](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Piliin ang Sariling Copilot Adventure](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Paalala**: -Ang dokumentong ito ay isinalin gamit ang AI translation service na [Co-op Translator](https://github.com/Azure/co-op-translator). Bagamat nagsusumikap kami para sa katumpakan, pakatandaan na ang mga awtomatikong pagsasalin ay maaaring maglaman ng mga pagkakamali o di-tumpak na impormasyon. Ang orihinal na dokumento sa orihinal nitong wika ang dapat ituring na pangunahing sanggunian. Para sa mahahalagang impormasyon, inirerekomenda ang propesyonal na pagsasalin ng tao. Hindi kami mananagot sa anumang hindi pagkakaunawaan o maling interpretasyon na maaaring magmula sa paggamit ng pagsasaling ito. \ No newline at end of file + + + + diff --git a/translations/tr/00-course-setup/01-setup-cloud.md b/translations/tr/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..cb3c23dfe --- /dev/null +++ b/translations/tr/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/tr/00-course-setup/02-setup-local.md b/translations/tr/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..f051d65ce --- /dev/null +++ b/translations/tr/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/tr/00-course-setup/03-providers.md b/translations/tr/00-course-setup/03-providers.md new file mode 100644 index 000000000..b2cbd9972 --- /dev/null +++ b/translations/tr/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/tr/00-course-setup/README.md b/translations/tr/00-course-setup/README.md index bb33c2a3c..6821fc76a 100644 --- a/translations/tr/00-course-setup/README.md +++ b/translations/tr/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# Bu kursa Başlarken - -Bu kursa başlamanız ve Üretken Yapay Zeka ile neler yaratabileceğiniz konusunda ilham almanız için çok heyecanlıyız! - -Başarınızı sağlamak için, bu sayfada kurulum adımları, teknik gereksinimler ve gerekirse nereden yardım alabileceğiniz açıklanmıştır. - -## Kurulum Adımları - -Bu kursa başlamanız için aşağıdaki adımları tamamlamanız gerekmektedir. - -### 1. Bu Depoyu Forklayın - -[Tüm bu depoyu forklayın](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) ve kendi GitHub hesabınıza kopyalayın. Böylece kodda değişiklik yapabilir ve görevleri tamamlayabilirsiniz. Ayrıca, bu depoyu ve ilgili depoları daha kolay bulmak için [yıldız (🌟) ekleyebilirsiniz](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst). - -### 2. Bir codespace Oluşturun - -Kodu çalıştırırken bağımlılık sorunları yaşamamak için bu kursu [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst) üzerinde çalıştırmanızı öneririz. - -Bunu, forkladığınız deponun `Code` seçeneğini seçip ardından **Codespaces** seçeneğini seçerek oluşturabilirsiniz. - -![Codespace oluşturma butonlarını gösteren iletişim kutusu](../../../00-course-setup/images/who-will-pay.webp) - -### 3. API Anahtarlarınızı Saklama - -Herhangi bir uygulama geliştirirken API anahtarlarınızı güvende tutmak önemlidir. API anahtarlarını doğrudan kodunuzda saklamamanızı öneririz. Bu bilgileri herkese açık bir depoya göndermek güvenlik sorunlarına ve kötü niyetli kişiler tarafından kullanılması durumunda istenmeyen maliyetlere yol açabilir. -Python için `.env` dosyası oluşturma ve `GITHUB_TOKEN` ekleme adımlarını aşağıda bulabilirsiniz: - -1. **Proje Dizininize Gidin**: Terminal veya komut istemcisini açın ve `.env` dosyasını oluşturmak istediğiniz projenizin kök dizinine gidin. - - ```bash - cd path/to/your/project - ``` - -2. **`.env` Dosyasını Oluşturun**: Tercih ettiğiniz metin düzenleyici ile `.env` adlı yeni bir dosya oluşturun. Komut satırından yapıyorsanız, Unix tabanlı sistemlerde `touch`, Windows’ta ise `echo` komutlarını kullanabilirsiniz: - - Unix tabanlı sistemler: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **`.env` Dosyasını Düzenleyin**: `.env` dosyasını bir metin düzenleyicide (örneğin VS Code, Notepad++ veya başka bir editör) açın. Aşağıdaki satırı ekleyin, `your_github_token_here` kısmını gerçek GitHub tokenınızla değiştirin: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Dosyayı Kaydedin**: Değişiklikleri kaydedip metin düzenleyiciyi kapatın. - -5. **`python-dotenv` Paketini Yükleyin**: Henüz yüklemediyseniz, `.env` dosyasındaki ortam değişkenlerini Python uygulamanıza yüklemek için `python-dotenv` paketini yüklemeniz gerekir. Bunu `pip` ile yapabilirsiniz: - - ```bash - pip install python-dotenv - ``` - -6. **Python Scriptinizde Ortam Değişkenlerini Yükleyin**: Python scriptinizde, `.env` dosyasındaki ortam değişkenlerini yüklemek için `python-dotenv` paketini kullanın: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -Hepsi bu kadar! Başarıyla bir `.env` dosyası oluşturdunuz, GitHub tokenınızı eklediniz ve Python uygulamanıza yüklediniz. - -## Kodu Bilgisayarınızda Yerel Olarak Çalıştırma - -Kodu bilgisayarınızda yerel olarak çalıştırmak için bir Python sürümünün [kurulu olması gerekir](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -Depoyu kullanmak için önce klonlamanız gerekir: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -Her şey hazır olduğunda, başlayabilirsiniz! - -## İsteğe Bağlı Adımlar - -### Miniconda Kurulumu - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst), [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python ve bazı paketleri kurmak için hafif bir yükleyicidir. -Conda, farklı Python [**sanal ortamları**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) ve paketleri kolayca kurup yönetmenizi sağlayan bir paket yöneticisidir. Ayrıca `pip` ile bulunmayan paketleri kurmak için de kullanışlıdır. - -Kurulum için [MiniConda kurulum rehberini](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) takip edebilirsiniz. - -Miniconda kurulduktan sonra, [depo](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (henüz klonlamadıysanız) klonlanmalıdır. - -Sonra bir sanal ortam oluşturmanız gerekir. Conda ile bunu yapmak için yeni bir ortam dosyası (_environment.yml_) oluşturun. Codespaces kullanıyorsanız, bunu `.devcontainer` dizini içinde, yani `.devcontainer/environment.yml` olarak oluşturun. - -Ortam dosyanızı aşağıdaki kod parçacığı ile doldurun: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Conda kullanırken hata alırsanız, Microsoft AI Kütüphanelerini terminalde aşağıdaki komutla manuel olarak yükleyebilirsiniz. - -``` -conda install -c microsoft azure-ai-ml -``` - -Ortam dosyası ihtiyaç duyduğumuz bağımlılıkları belirtir. ``, Conda ortamınız için kullanmak istediğiniz isimdir ve ``, kullanmak istediğiniz Python sürümüdür; örneğin, `3` Python’un en son ana sürümüdür. - -Bunu yaptıktan sonra, aşağıdaki komutları komut satırınızda/terminalinizde çalıştırarak Conda ortamınızı oluşturabilirsiniz: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -Herhangi bir sorun yaşarsanız, [Conda ortamları rehberine](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst) bakabilirsiniz. - -### Visual Studio Code ve Python Destek Eklentisi Kullanımı - -Bu kurs için [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) editörünü ve [Python destek eklentisini](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) kullanmanızı öneririz. Ancak bu bir zorunluluk değil, sadece tavsiyedir. - -> **Not**: Kurs deposunu VS Code’da açtığınızda, projeyi bir konteyner içinde kurma seçeneğiniz olur. Bunun sebebi, kurs deposunda bulunan [özel `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) dizinidir. Bu konuya daha sonra değineceğiz. - -> **Not**: Depoyu klonlayıp VS Code’da açtığınızda, Python destek eklentisini yüklemeniz otomatik olarak önerilir. - -> **Not**: VS Code, depoyu bir konteyner içinde yeniden açmanızı önerirse, yerel Python sürümünü kullanmak için bu isteği reddedin. - -### Tarayıcıda Jupyter Kullanımı - -Projede çalışmak için tarayıcınızda [Jupyter ortamını](https://jupyter.org?WT.mc_id=academic-105485-koreyst) da kullanabilirsiniz. Hem klasik Jupyter hem de [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) otomatik tamamlama, kod vurgulama gibi özelliklerle oldukça keyifli bir geliştirme ortamı sunar. - -Jupyter’ı yerel olarak başlatmak için terminal/komut satırına gidin, kurs dizinine geçin ve şu komutu çalıştırın: - -```bash -jupyter notebook -``` - -veya - -```bash -jupyterhub -``` - -Bu, bir Jupyter örneği başlatacak ve erişim için URL komut satırı penceresinde gösterilecektir. - -URL’ye eriştiğinizde, kurs içeriğini görebilir ve herhangi bir `*.ipynb` dosyasına gidebilirsiniz. Örneğin, `08-building-search-applications/python/oai-solution.ipynb`. - -### Konteyner İçinde Çalıştırma - -Bilgisayarınızda veya Codespace’de her şeyi kurmak yerine bir [konteyner](../../../00-course-setup/) kullanmak da bir seçenektir. Kurs deposundaki özel `.devcontainer` klasörü, VS Code’un projeyi bir konteyner içinde kurmasını sağlar. Codespaces dışında bunu kullanmak için Docker kurulumu gerekir ve biraz uğraştırıcıdır, bu yüzden konteynerlerle deneyimi olanlara öneriyoruz. - -GitHub Codespaces kullanırken API anahtarlarınızı güvende tutmanın en iyi yollarından biri Codespace Secrets kullanmaktır. Daha fazla bilgi için [Codespaces secrets yönetimi](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) rehberini takip edin. - -## Dersler ve Teknik Gereksinimler - -Kurs 6 kavramsal ders ve 6 kodlama dersi içerir. - -Kodlama derslerinde Azure OpenAI Service kullanıyoruz. Bu kodu çalıştırmak için Azure OpenAI servisine erişiminiz ve bir API anahtarınız olması gerekir. Erişim için [bu başvuruyu tamamlayarak](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst) talepte bulunabilirsiniz. - -Başvurunuz işlenirken, her kodlama dersi ayrıca kodu ve çıktıları görebileceğiniz bir `README.md` dosyası içerir. - -## Azure OpenAI Servisini İlk Kez Kullanma - -Azure OpenAI servisi ile ilk kez çalışıyorsanız, lütfen [Azure OpenAI Service kaynağı oluşturma ve dağıtma rehberini](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) takip edin. - -## OpenAI API’sini İlk Kez Kullanma - -OpenAI API ile ilk kez çalışıyorsanız, lütfen [Arayüz oluşturma ve kullanma rehberini](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) takip edin. - -## Diğer Öğrenenlerle Tanışın - -Resmi [AI Community Discord sunucumuzda](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) diğer öğrenenlerle tanışmak için kanallar oluşturduk. Bu, benzer düşünen girişimciler, geliştiriciler, öğrenciler ve Üretken Yapay Zeka alanında kendini geliştirmek isteyen herkesle ağ kurmak için harika bir yoldur. - -[![Discord kanalına katıl](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -Proje ekibi de bu Discord sunucusunda öğrenenlere destek olacaktır. - -## Katkıda Bulunma - -Bu kurs açık kaynaklı bir girişimdir. İyileştirme alanları veya sorunlar görürseniz, lütfen bir [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) oluşturun veya bir [GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) kaydedin. - -Proje ekibi tüm katkıları takip edecektir. Açık kaynağa katkıda bulunmak, Üretken Yapay Zeka alanında kariyerinizi geliştirmek için harika bir yoldur. - -Çoğu katkı, katkınızın kullanım haklarını bize verdiğinizi beyan eden bir Katkı Lisans Anlaşması’na (CLA) imza atmanızı gerektirir. Detaylar için [CLA, Katkı Lisans Anlaşması web sitesini](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst) ziyaret edin. - -Önemli: Bu depoda metin çevirisi yaparken, lütfen makine çevirisi kullanmayın. Çeviriler topluluk tarafından doğrulanacaktır, bu yüzden yalnızca iyi bildiğiniz dillerde gönüllü olun. - -Pull request gönderdiğinizde, CLA-bot otomatik olarak CLA sağlamanız gerekip gerekmediğini belirleyecek ve PR’ı uygun şekilde işaretleyecektir (örneğin, etiket, yorum). Botun verdiği talimatları takip edin. Bu işlemi tüm depolarda yalnızca bir kez yapmanız yeterlidir. - -Bu proje, [Microsoft Açık Kaynak Davranış Kuralları](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst) kurallarını benimsemiştir. Daha fazla bilgi için Davranış Kuralları SSS bölümünü okuyabilir veya ek sorularınız için [Email opencode](opencode@microsoft.com) ile iletişime geçebilirsiniz. - -## Haydi Başlayalım - -Bu kursu tamamlamak için gereken adımları tamamladığınıza göre, şimdi [Üretken Yapay Zeka ve LLM’lere giriş](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) ile başlayalım. - -**Feragatname**: -Bu belge, AI çeviri servisi [Co-op Translator](https://github.com/Azure/co-op-translator) kullanılarak çevrilmiştir. Doğruluk için çaba gösterilse de, otomatik çevirilerin hatalar veya yanlışlıklar içerebileceğini lütfen unutmayınız. Orijinal belge, kendi dilinde yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımı sonucu oluşabilecek yanlış anlamalar veya yorum hatalarından sorumlu değiliz. \ No newline at end of file + + + + diff --git a/translations/tr/00-course-setup/SETUP.md b/translations/tr/00-course-setup/SETUP.md deleted file mode 100644 index a64ec7407..000000000 --- a/translations/tr/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# Geliştirme Ortamınızı Kurun - -Bu depo ve kurs, Python3, .NET, Node.js ve Java geliştirmeyi destekleyen Evrensel bir çalışma zamanı içeren bir [geliştirme konteyneri](https://containers.dev?WT.mc_id=academic-105485-koreyst) ile hazırlandı. İlgili yapılandırma, bu deponun kök dizinindeki `.devcontainer/` klasöründe bulunan `devcontainer.json` dosyasında tanımlanmıştır. - -Geliştirme konteynerini etkinleştirmek için, [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (bulut tabanlı çalışma zamanı için) veya [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (yerel cihazda çalışma zamanı için) üzerinde başlatın. VS Code içinde geliştirme konteynerlerinin nasıl çalıştığı hakkında daha fazla bilgi için [bu dokümana](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) göz atabilirsiniz. - -> [!TIP] -> Hızlı bir başlangıç için GitHub Codespaces kullanmanızı öneririz. Kişisel hesaplar için cömert bir [ücretsiz kullanım kotası](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) sunar. Kotanızı en iyi şekilde kullanmak için, kullanılmayan codespaces’leri durdurmak veya silmek üzere [zaman aşımı ayarlarını](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) yapılandırabilirsiniz. - -## 1. Ödevleri Çalıştırma - -Her ders, Python, .NET/C#, Java ve JavaScript/TypeScript dahil olmak üzere bir veya daha fazla programlama dilinde sunulabilecek _isteğe bağlı_ ödevler içerebilir. Bu bölüm, bu ödevlerin nasıl çalıştırılacağına dair genel rehberlik sağlar. - -### 1.1 Python Ödevleri - -Python ödevleri ya uygulama olarak (`.py` dosyaları) ya da Jupyter defterleri (`.ipynb` dosyaları) şeklinde sunulur. -- Defteri çalıştırmak için, Visual Studio Code’da açın, ardından sağ üstteki _Select Kernel_ seçeneğine tıklayın ve varsayılan Python 3 seçeneğini seçin. Artık defteri çalıştırmak için _Run All_ yapabilirsiniz. -- Komut satırından Python uygulamalarını çalıştırmak için, doğru dosyaları seçtiğinizden ve gerekli argümanları sağladığınızdan emin olmak için ödevlere özel talimatları izleyin. - -## 2. Sağlayıcıları Yapılandırma - -Ödevler, OpenAI, Azure veya Hugging Face gibi desteklenen servis sağlayıcılar aracılığıyla bir veya daha fazla Büyük Dil Modeli (LLM) dağıtımıyla çalışacak şekilde **ayarlanabilir**. Bu sağlayıcılar, doğru kimlik bilgileri (API anahtarı veya token) ile programatik olarak erişebileceğimiz _barındırılan bir uç nokta_ (API) sunar. Bu kursta aşağıdaki sağlayıcıları ele alıyoruz: - - - Çeşitli modeller içeren [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst), temel GPT serisi dahil. - - Kurumsal hazırda odaklanan OpenAI modelleri için [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) - - Açık kaynak modeller ve çıkarım sunucusu için [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) - -**Bu egzersizler için kendi hesaplarınızı kullanmanız gerekecek**. Ödevler isteğe bağlıdır, bu yüzden ilginize göre birini, hepsini veya hiç birini kurmayı seçebilirsiniz. Kayıt için bazı rehberlik: - -| Kayıt | Ücret | API Anahtarı | Playground | Yorumlar | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst) | [Fiyatlandırma](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst) | [Proje bazlı](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [Kod Gerektirmez, Web](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Birden Çok Model Mevcut | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst) | [Fiyatlandırma](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst) | [SDK Hızlı Başlangıç](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Studio Hızlı Başlangıç](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Erişim İçin Ön Başvuru Gerekir](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) | -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Fiyatlandırma](https://huggingface.co/pricing) | [Erişim Tokenları](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst) | [Hugging Chat sınırlı modellere sahip](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Bu depoyu farklı sağlayıcılarla kullanmak üzere _yapılandırmak_ için aşağıdaki talimatları izleyin. Belirli bir sağlayıcı gerektiren ödevlerin dosya adlarında aşağıdaki etiketlerden biri bulunur: - - `aoai` - Azure OpenAI uç noktası ve anahtarı gerektirir - - `oai` - OpenAI uç noktası ve anahtarı gerektirir - - `hf` - Hugging Face token gerektirir - -Birini, hiçbirini veya hepsini yapılandırabilirsiniz. İlgili ödevler, eksik kimlik bilgileri durumunda hata verecektir. - -### 2.1. `.env` dosyası oluşturma - -Yukarıdaki rehberi okuduğunuzu, ilgili sağlayıcıya kaydolduğunuzu ve gerekli kimlik doğrulama bilgilerini (API_KEY veya token) aldığınızı varsayıyoruz. Azure OpenAI için, en az bir GPT modelinin sohbet tamamlaması için dağıtıldığı geçerli bir Azure OpenAI Hizmeti (uç noktası) dağıtımınızın da olduğunu varsayıyoruz. - -Sonraki adım, **yerel ortam değişkenlerinizi** aşağıdaki şekilde yapılandırmaktır: - -1. Kök klasörde `.env.copy` adlı bir dosya bulun; içeriği şu şekilde olmalıdır: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Aşağıdaki komutla bu dosyayı `.env` olarak kopyalayın. Bu dosya _gitignore_ içinde yer alır, böylece gizli bilgiler güvende kalır. - - ```bash - cp .env.copy .env - ``` - -3. Değerleri doldurun (sağdaki yer tutucuları `=` işaretinden sonra değiştirin) ve sonraki bölümde açıklanan şekilde tamamlayın. - -3. (Opsiyonel) GitHub Codespaces kullanıyorsanız, ortam değişkenlerini bu depoya bağlı _Codespaces secrets_ olarak kaydetme seçeneğiniz vardır. Bu durumda yerel `.env` dosyası oluşturmanız gerekmez. **Ancak, bu seçenek yalnızca GitHub Codespaces kullanıyorsanız geçerlidir.** Docker Desktop kullanıyorsanız yine `.env` dosyasını yapılandırmanız gerekir. - -### 2.2. `.env` dosyasını doldurma - -Değişken adlarının ne anlama geldiğini hızlıca inceleyelim: - -| Değişken | Açıklama | -| :--- | :--- | -| HUGGING_FACE_API_KEY | Profilinizde ayarladığınız kullanıcı erişim tokenı | -| OPENAI_API_KEY | Azure dışı OpenAI uç noktaları için yetkilendirme anahtarı | -| AZURE_OPENAI_API_KEY | Azure OpenAI servisi için yetkilendirme anahtarı | -| AZURE_OPENAI_ENDPOINT | Azure OpenAI kaynağı için dağıtılmış uç nokta | -| AZURE_OPENAI_DEPLOYMENT | _Metin oluşturma_ model dağıtım uç noktası | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | _Metin gömme_ model dağıtım uç noktası | -| | | - -Not: Son iki Azure OpenAI değişkeni, sırasıyla sohbet tamamlaması (metin oluşturma) ve vektör araması (gömme) için varsayılan modelleri yansıtır. Bunların ayarlanmasıyla ilgili talimatlar ilgili ödevlerde verilecektir. - -### 2.3 Azure’u Portal’dan Yapılandırma - -Azure OpenAI uç noktası ve anahtar değerleri [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst)’da bulunur, o yüzden oradan başlayalım. - -1. [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst)’a gidin -1. Kenar çubuğunda (sol menü) **Keys and Endpoint** seçeneğine tıklayın -1. **Show Keys** butonuna tıklayın - aşağıdakileri görmelisiniz: KEY 1, KEY 2 ve Endpoint -1. AZURE_OPENAI_API_KEY için KEY 1 değerini kullanın -1. AZURE_OPENAI_ENDPOINT için Endpoint değerini kullanın - -Sonra, dağıttığımız belirli modellerin uç noktalarına ihtiyacımız var. - -1. Azure OpenAI kaynağı için kenar çubuğunda (sol menü) **Model deployments** seçeneğine tıklayın -1. Açılan sayfada **Manage Deployments** butonuna tıklayın - -Bu sizi Azure OpenAI Studio web sitesine götürecek, burada aşağıda açıklanan diğer değerleri bulacağız. - -### 2.4 Azure’u Studio’dan Yapılandırma - -1. Yukarıda açıklandığı gibi, kaynağınızdan [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst)’ya gidin -1. Mevcut dağıtılmış modelleri görmek için sol kenar çubuğundaki **Deployments** sekmesine tıklayın -1. İstediğiniz model dağıtılmamışsa, dağıtmak için **Create new deployment** seçeneğini kullanın -1. Bir _metin oluşturma_ modeline ihtiyacınız olacak - önerimiz: **gpt-35-turbo** -1. Bir _metin gömme_ modeline ihtiyacınız olacak - önerimiz: **text-embedding-ada-002** - -Şimdi ortam değişkenlerini, kullanılan _Deployment name_ (Dağıtım adı) ile güncelleyin. Bu genellikle model adıyla aynı olur, eğer açıkça değiştirmediyseniz. Örneğin, şöyle olabilir: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**İşiniz bittiğinde .env dosyasını kaydetmeyi unutmayın**. Dosyadan çıkabilir ve defteri çalıştırma talimatlarına dönebilirsiniz. - -### 2.5 OpenAI’yi Profilden Yapılandırma - -OpenAI API anahtarınızı [OpenAI hesabınızda](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) bulabilirsiniz. Henüz bir anahtarınız yoksa, hesap açıp bir API anahtarı oluşturabilirsiniz. Anahtarı aldıktan sonra `.env` dosyasındaki `OPENAI_API_KEY` değişkenini doldurmak için kullanabilirsiniz. - -### 2.6 Hugging Face’i Profilden Yapılandırma - -Hugging Face tokenınızı profilinizdeki [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst) bölümünde bulabilirsiniz. Bunları kamuya açık şekilde paylaşmayın. Bunun yerine, bu proje için yeni bir token oluşturun ve `.env` dosyasındaki `HUGGING_FACE_API_KEY` değişkenine yapıştırın. _Not:_ Teknik olarak bu bir API anahtarı değildir ancak kimlik doğrulama için kullanıldığı için tutarlılık adına bu isimlendirmeyi koruyoruz. - -**Feragatname**: -Bu belge, AI çeviri servisi [Co-op Translator](https://github.com/Azure/co-op-translator) kullanılarak çevrilmiştir. Doğruluk için çaba gösterilse de, otomatik çevirilerin hatalar veya yanlışlıklar içerebileceğini lütfen unutmayınız. Orijinal belge, kendi dilinde yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımı sonucu oluşabilecek yanlış anlamalar veya yorum hatalarından sorumlu değiliz. \ No newline at end of file diff --git a/translations/tr/04-prompt-engineering-fundamentals/README.md b/translations/tr/04-prompt-engineering-fundamentals/README.md index 7e2c58661..aa5f0cc54 100644 --- a/translations/tr/04-prompt-engineering-fundamentals/README.md +++ b/translations/tr/04-prompt-engineering-fundamentals/README.md @@ -1,460 +1,15 @@ - -# Prompt Mühendisliğinin Temelleri - -[![Prompt Mühendisliğinin Temelleri](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.tr.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Giriş -Bu modül, üretken yapay zeka modellerinde etkili promptlar oluşturmak için temel kavramlar ve teknikleri kapsar. Bir LLM’ye yazdığınız promptun şekli de önemlidir. Özenle hazırlanmış bir prompt, daha kaliteli yanıtlar elde etmenizi sağlar. Peki, _prompt_ ve _prompt mühendisliği_ gibi terimler tam olarak ne anlama geliyor? Ve LLM’ye gönderdiğim prompt _girdisini_ nasıl geliştirebilirim? Bu bölümde ve bir sonraki bölümde bu sorulara yanıt arayacağız. - -_Uretken yapay zeka_, kullanıcı taleplerine yanıt olarak yeni içerikler (örneğin metin, görsel, ses, kod vb.) oluşturabilir. Bunu, doğal dil ve kod kullanımı için eğitilmiş OpenAI’nin GPT (“Generative Pre-trained Transformer”) serisi gibi _Büyük Dil Modelleri_ (LLM) kullanarak başarır. - -Kullanıcılar artık bu modellerle teknik bilgi veya eğitim gerektirmeden, sohbet gibi tanıdık yöntemlerle etkileşim kurabilirler. Modeller _prompt tabanlıdır_ — kullanıcılar bir metin girdisi (prompt) gönderir ve yapay zekadan yanıt (tamamlama) alır. Ardından, yanıt beklentilerine uyana kadar çok turlu sohbetlerle promptlarını yineleyerek “yapay zeka ile sohbet” edebilirler. - -“Promptlar” artık üretken yapay zeka uygulamaları için birincil _programlama arayüzü_ haline gelmiştir; modellere ne yapacaklarını söyler ve dönen yanıtların kalitesini etkiler. “Prompt Mühendisliği” ise, tutarlı ve kaliteli yanıtlar sunmak için promptların _tasarımı ve optimizasyonu_ üzerine hızla büyüyen bir çalışma alanıdır. - -## Öğrenme Hedefleri - -Bu derste, Prompt Mühendisliği’nin ne olduğunu, neden önemli olduğunu ve belirli bir model ile uygulama hedefi için daha etkili promptlar nasıl oluşturabileceğimizi öğreneceğiz. Prompt mühendisliği için temel kavramları ve en iyi uygulamaları anlayacak; bu kavramların gerçek örneklerde uygulandığı etkileşimli bir Jupyter Notebook “sandbox” ortamını keşfedeceğiz. - -Bu dersin sonunda şunları yapabileceğiz: - -1. Prompt mühendisliğinin ne olduğunu ve neden önemli olduğunu açıklamak. -2. Bir promptun bileşenlerini tanımlamak ve nasıl kullanıldığını anlatmak. -3. Prompt mühendisliği için en iyi uygulamalar ve teknikleri öğrenmek. -4. Öğrenilen teknikleri gerçek örneklere uygulamak, OpenAI uç noktası kullanarak. - -## Temel Terimler - -Prompt Mühendisliği: Yapay zeka modellerini istenen çıktıları üretmeye yönlendirmek için girdilerin tasarlanması ve iyileştirilmesi uygulaması. -Tokenizasyon: Metni, modelin anlayıp işleyebileceği daha küçük birimler olan tokenlara dönüştürme süreci. -Talimatla İncelenmiş LLM’ler: Yanıt doğruluğu ve alaka düzeyini artırmak için belirli talimatlarla ince ayar yapılmış Büyük Dil Modelleri. - -## Öğrenme Sandbox’u - -Prompt mühendisliği şu anda daha çok bir sanat dalı. Bu konuda sezgimizi geliştirmek için en iyi yol, _daha fazla pratik yapmak_ ve uygulama alanı uzmanlığını önerilen teknikler ve model özelinde optimizasyonlarla birleştiren deneme-yanılma yaklaşımını benimsemektir. - -Bu derse eşlik eden Jupyter Notebook, öğrendiklerinizi deneyebileceğiniz bir _sandbox_ ortamı sunar — ister ilerlerken ister dersin sonunda kod meydan okuması olarak. Alıştırmaları çalıştırmak için şunlara ihtiyacınız olacak: - -1. **Bir Azure OpenAI API anahtarı** — dağıtılmış bir LLM için servis uç noktası. -2. **Bir Python Çalışma Zamanı** — Notebook’un çalıştırılabileceği ortam. -3. **Yerel Ortam Değişkenleri** — _hazırlık için [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) adımlarını tamamlayın_. - -Notebook başlangıç alıştırmalarıyla gelir — ancak kendi _Markdown_ (açıklama) ve _Kod_ (prompt istekleri) bölümlerinizi ekleyerek daha fazla örnek veya fikir deneyebilir, prompt tasarımı konusunda sezginizi geliştirebilirsiniz. - -## Görselleştirilmiş Rehber - -Derse başlamadan önce genel resmi görmek ister misiniz? Bu görselleştirilmiş rehber, ana konuları ve her birinde düşünmeniz gereken temel çıkarımları size sunar. Ders yol haritası, temel kavramları ve zorlukları anlamaktan başlayıp, bunları ilgili prompt mühendisliği teknikleri ve en iyi uygulamalarla ele almaya kadar sizi yönlendirir. Bu rehberdeki “İleri Teknikler” bölümü, müfredatın _bir sonraki_ bölümünde ele alınan içeriğe işaret eder. - -![Prompt Mühendisliğine Görsel Rehber](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.tr.png) - -## Startup’ımız - -Şimdi, _bu konunun_ eğitimde yapay zeka inovasyonunu [getirme](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst) misyonumuzla nasıl ilişkili olduğundan bahsedelim. Biz, _kişiselleştirilmiş öğrenme_ için yapay zeka destekli uygulamalar geliştirmek istiyoruz — o halde uygulamamızın farklı kullanıcılarının nasıl “promptlar tasarlayabileceğini” düşünelim: - -- **Yöneticiler**, yapay zekadan _müfredat verilerini analiz ederek kapsama boşluklarını belirlemesini_ isteyebilir. Yapay zeka sonuçları özetleyebilir veya kodla görselleştirebilir. -- **Eğitmenler**, yapay zekadan _hedef kitle ve konu için bir ders planı oluşturmasını_ talep edebilir. Yapay zeka, kişiselleştirilmiş planı belirli bir formatta hazırlayabilir. -- **Öğrenciler**, yapay zekadan _zor bir konuda kendilerine özel ders vermesini_ isteyebilir. Yapay zeka, öğrencilerin seviyesine uygun dersler, ipuçları ve örneklerle rehberlik edebilir. - -Bu sadece buzdağının görünen kısmı. Daha geniş bir perspektif için eğitim uzmanları tarafından derlenen açık kaynaklı prompt kütüphanesi [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst)’a göz atın! _Sandbox’ta veya OpenAI Playground’da bu promptları deneyerek ne olduğunu görün!_ - - - -## Prompt Mühendisliği Nedir? - -Bu derse, belirli bir uygulama hedefi ve model için tutarlı ve kaliteli yanıtlar (tamalamalar) sunmak üzere metin girdilerini (promptları) _tasarlama ve optimize etme_ süreci olarak **Prompt Mühendisliği** tanımıyla başladık. Bunu iki aşamalı bir süreç olarak düşünebiliriz: - -- Belirli bir model ve hedef için başlangıç promptunu _tasarlamak_ -- Yanıt kalitesini artırmak için promptu yineleyerek _iyileştirmek_ - -Bu, optimal sonuçlar için kullanıcı sezgisi ve çaba gerektiren zorunlu bir deneme-yanılma sürecidir. Peki neden önemli? Bu soruyu yanıtlamak için önce üç kavramı anlamamız gerekiyor: - -- _Tokenizasyon_ = modelin promptu nasıl “gördüğü” -- _Temel LLM’ler_ = temel modelin promptu nasıl “işlediği” -- _Talimatla İncelenmiş LLM’ler_ = modelin artık “görevleri” nasıl algıladığı - -### Tokenizasyon - -Bir LLM, promptları _token dizisi_ olarak görür; farklı modeller (veya model sürümleri) aynı promptu farklı şekillerde tokenlara ayırabilir. LLM’ler tokenlar üzerinde (ham metin değil) eğitildiği için, promptların tokenlara dönüşme şekli oluşturulan yanıtın kalitesini doğrudan etkiler. - -Tokenizasyonun nasıl çalıştığına dair sezgi kazanmak için aşağıdaki gibi araçları deneyin: [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst). Promptunuzu kopyalayın ve tokenlara nasıl dönüştüğüne, boşluk karakterleri ve noktalama işaretlerinin nasıl işlendiğine dikkat edin. Bu örnek eski bir LLM (GPT-3) gösteriyor — daha yeni modellerle denediğinizde farklı sonuçlar alabilirsiniz. - -![Tokenizasyon](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.tr.png) - -### Kavram: Temel Modeller - -Bir prompt tokenlara ayrıldıktan sonra, ["Temel LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (veya Temel model) dizideki bir sonraki tokenı tahmin etmekle görevlidir. LLM’ler devasa metin veri kümeleri üzerinde eğitildiği için tokenlar arasındaki istatistiksel ilişkileri iyi bilir ve bu tahmini belli bir güvenle yapabilir. Ancak prompttaki kelimelerin _anlamını_ anlamazlar; sadece bir sonraki tahminle “tamamlayabilecekleri” bir desen görürler. Kullanıcı müdahalesi veya önceden belirlenmiş bir koşul tarafından durdurulana kadar diziyi tahmin etmeye devam edebilirler. - -Prompt tabanlı tamamlama nasıl çalışıyor görmek ister misiniz? Yukarıdaki promptu Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst)’a varsayılan ayarlarla girin. Sistem promptları bilgi talebi olarak ele alacak şekilde yapılandırılmıştır — bu yüzden bu bağlama uygun bir tamamlama görmelisiniz. - -Peki ya kullanıcı belirli kriterleri veya görev hedefini karşılayan bir şey görmek isterse? İşte burada _talimatla incelenmiş_ LLM’ler devreye girer. - -![Temel LLM Sohbet Tamamlama](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.tr.png) - -### Kavram: Talimatla İncelenmiş LLM’ler - -Bir [Talimatla İncelenmiş LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst), temel modelden başlayıp, açık talimatlar içeren örnekler veya giriş/çıkış çiftleri (örneğin çok turlu “mesajlar”) ile ince ayar yapılır — ve yapay zekanın yanıtı bu talimatı takip etmeye çalışır. - -Bu, İnsan Geri Bildirimi ile Pekiştirmeli Öğrenme (RLHF) gibi teknikler kullanır; modelin _talimatları takip etmesini_ ve _geri bildirimden öğrenmesini_ sağlar, böylece pratik uygulamalara daha uygun ve kullanıcı hedeflerine daha alakalı yanıtlar üretir. - -Hadi deneyelim — yukarıdaki promptu tekrar açın, ancak _sistem mesajını_ aşağıdaki talimatı içerecek şekilde değiştirin: - -> _Size verilen içeriği ikinci sınıf öğrencisi için özetleyin. Sonucu 3-5 madde ile bir paragraf halinde tutun._ - -Sonucun istenen hedef ve formata göre ayarlandığını görüyor musunuz? Bir eğitimci bu yanıtı doğrudan o sınıf için slaytlarında kullanabilir. - -![Talimatla İncelenmiş LLM Sohbet Tamamlama](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.tr.png) - -## Neden Prompt Mühendisliğine İhtiyacımız Var? - -Artık promptların LLM’ler tarafından nasıl işlendiğini bildiğimize göre, prompt mühendisliğine _neden_ ihtiyaç duyduğumuzu konuşalım. Cevap, mevcut LLM’lerin _güvenilir ve tutarlı tamalamalar_ elde etmeyi zorlaştıran bir dizi zorluk barındırmasında yatıyor. Örneğin: - -1. **Model yanıtları rastgeledir.** _Aynı prompt_, farklı modeller veya model sürümleriyle muhtemelen farklı yanıtlar üretir. Hatta _aynı model_ ile farklı zamanlarda farklı sonuçlar verebilir. _Prompt mühendisliği teknikleri, bu varyasyonları azaltmak için daha iyi sınırlar koymamıza yardımcı olur_. - -1. **Modeller yanıt uydurabilir.** Modeller, _büyük ama sınırlı_ veri kümeleriyle önceden eğitildiği için eğitim kapsamı dışındaki kavramlar hakkında bilgi eksikliği vardır. Sonuç olarak, yanlış, hayali veya bilinen gerçeklerle çelişen yanıtlar üretebilirler. _Prompt mühendisliği teknikleri, kullanıcıların bu uydurmaları tespit edip azaltmasına yardımcı olur; örneğin yapay zekadan kaynak göstermesini veya mantık yürütmesini istemek gibi_. - -1. **Model yetenekleri değişkenlik gösterir.** Yeni modeller veya model nesilleri daha zengin yeteneklere sahip olur ancak maliyet ve karmaşıklıkta benzersiz özellikler ve ödünler getirir. _Prompt mühendisliği, farklılıkları soyutlayan ve model özel gereksinimlere ölçeklenebilir, sorunsuz şekilde uyum sağlayan en iyi uygulamalar ve iş akışları geliştirmemize yardımcı olur_. - -Bunu OpenAI veya Azure OpenAI Playground’da deneyelim: - -- Aynı promptu farklı LLM dağıtımlarıyla (örneğin OpenAI, Azure OpenAI, Hugging Face) kullanın — varyasyonları gördünüz mü? -- Aynı promptu _aynı_ LLM dağıtımıyla (örneğin Azure OpenAI playground) tekrar tekrar kullanın — bu varyasyonlar nasıl farklılaştı? - -### Uydurma Örneği - -Bu kursta, LLM’lerin bazen eğitimlerindeki sınırlamalar veya diğer kısıtlamalar nedeniyle gerçeğe aykırı bilgi üretmesi olgusuna **“uydurma”** terimini kullanıyoruz. Popüler makalelerde veya araştırma yazılarında buna _“halüsinasyonlar”_ da denebilir. Ancak, bu davranışı insan benzeri bir özellikmiş gibi göstermemek için _“uydurma”_ terimini kullanmanızı şiddetle tavsiye ediyoruz. Bu aynı zamanda [Sorumlu Yapay Zeka yönergeleri](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) açısından da uygun, bazı bağlamlarda saldırgan veya dışlayıcı sayılabilecek terimlerin kullanımını engelleyen bir yaklaşımdır. - -Uydurmaların nasıl çalıştığını anlamak ister misiniz? Yapay zekaya eğitim veri setinde bulunmayan hayali bir konu için içerik üretmesini söyleyen bir prompt düşünün. Örneğin — ben şu promptu denedim: -# 2076 Mars Savaşı Ders Planı - -## Dersin Amacı -Öğrencilerin 2076 Mars Savaşı'nın nedenlerini, gelişimini ve sonuçlarını anlamalarını sağlamak. - -## Ders Süresi -2 saat - -## Gerekli Materyaller -- Haritalar ve zaman çizelgeleri -- Video ve görsel materyaller -- Tartışma soruları - -## Ders Akışı - -### 1. Giriş (15 dakika) -- 2076 Mars Savaşı'nın genel tanıtımı -- Savaşın tarihsel bağlamı ve önemi - -### 2. Savaşın Nedenleri (20 dakika) -- Mars'taki kaynak rekabeti -- Politik ve ekonomik gerilimler -- Teknolojik gelişmelerin etkisi - -### 3. Savaşın Gelişimi (30 dakika) -- Önemli çatışmalar ve stratejiler -- Tarafların kullandığı teknolojiler -- Kritik dönüm noktaları - -### 4. Sonuçlar ve Etkiler (25 dakika) -- Savaşın Mars ve Dünya üzerindeki etkileri -- Uzay politikalarındaki değişiklikler -- Uzun vadeli sonuçlar - -### 5. Tartışma ve Değerlendirme (20 dakika) -- Öğrencilerle grup tartışması -- Savaşın günümüzle bağlantıları -- Soru-cevap bölümü - -## Değerlendirme -- Katılım ve tartışma performansı -- Kısa yazılı sınav veya ödev - -## Ek Notlar -- Ders sırasında görsel materyallerin kullanımı teşvik edilir. -- Öğrencilerin aktif katılımı önemlidir. -Bir web araması, Mars savaşlarıyla ilgili kurgusal hikayeler (örneğin, televizyon dizileri veya kitaplar) olduğunu gösterdi - ancak 2076 yılında geçen hiçbir şey yok. Sağduyu da bize 2076'nın _gelecekte_ olduğunu ve dolayısıyla gerçek bir olayla ilişkilendirilemeyeceğini söylüyor. - -Peki, bu istemi farklı LLM sağlayıcılarıyla çalıştırdığımızda ne oluyor? - -> **Yanıt 1**: OpenAI Playground (GPT-35) - -![Yanıt 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.tr.png) - -> **Yanıt 2**: Azure OpenAI Playground (GPT-35) - -![Yanıt 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.tr.png) - -> **Yanıt 3**: : Hugging Face Chat Playground (LLama-2) - -![Yanıt 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.tr.png) - -Beklendiği gibi, her model (veya model versiyonu) stokastik davranış ve model yeteneklerindeki farklılıklar nedeniyle biraz farklı yanıtlar üretiyor. Örneğin, bir model 8. sınıf öğrencisini hedeflerken diğeri lise öğrencisi varsayıyor. Ancak üç model de, bilgisiz bir kullanıcıyı bu olayın gerçek olduğuna ikna edebilecek yanıtlar üretti. - -_metaprompting_ ve _temperature configuration_ gibi istem mühendisliği teknikleri, model uydurmalarını bir ölçüde azaltabilir. Yeni istem mühendisliği _mimari_leri, bu etkileri hafifletmek veya azaltmak için yeni araçları ve teknikleri istem akışına sorunsuzca entegre eder. - -## Vaka Çalışması: GitHub Copilot - -Bu bölümü, gerçek dünya çözümlerinde istem mühendisliğinin nasıl kullanıldığını anlamak için bir Vaka Çalışması ile tamamlayalım: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot, sizin "Yapay Zeka Eş Programcınız"dır - metin istemlerini kod tamamlama önerilerine dönüştürür ve geliştirme ortamınıza (örneğin, Visual Studio Code) entegre edilmiştir, böylece kesintisiz bir kullanıcı deneyimi sunar. Aşağıdaki blog serisinde belgelenen üzere, en erken versiyon OpenAI Codex modeline dayanıyordu - mühendisler modelin ince ayar yapılması ve daha iyi istem mühendisliği tekniklerinin geliştirilmesi gerektiğini hızla fark ettiler, böylece kod kalitesi artırıldı. Temmuz ayında, [Codex’in ötesine geçen geliştirilmiş bir yapay zeka modeli](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) tanıttılar ve öneriler daha da hızlandı. - -Öğrenme yolculuklarını takip etmek için yazıları sırasıyla okuyun. - -- **Mayıs 2023** | [GitHub Copilot Kodunuzu Anlamada Daha İyi Oluyor](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **Mayıs 2023** | [GitHub İçinde: GitHub Copilot’un Arkasındaki LLM’lerle Çalışmak](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Haziran 2023** | [GitHub Copilot için Daha İyi İstemler Nasıl Yazılır](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Temmuz 2023** | [GitHub Copilot, Geliştirilmiş Yapay Zeka Modeliyle Codex’in Ötesine Geçiyor](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Temmuz 2023** | [Bir Geliştirici için İstem Mühendisliği ve LLM Rehberi](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **Eylül 2023** | [Kurumsal Bir LLM Uygulaması Nasıl Kurulur: GitHub Copilot’tan Dersler](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -Ayrıca, bu modellerin ve tekniklerin gerçek dünya uygulamalarını nasıl _uyguladığını_ gösteren [Mühendislik bloglarını](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) ve [bu yazı gibi](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) diğer gönderileri de inceleyebilirsiniz. - ---- - - - -## İstem Oluşturma - -İstem mühendisliğinin neden önemli olduğunu gördük - şimdi istemlerin nasıl _oluşturulduğunu_ anlayalım ki, daha etkili istem tasarımı için farklı teknikleri değerlendirebilelim. - -### Temel İstem - -Temel istemle başlayalım: modele başka bir bağlam vermeden gönderilen metin girişi. İşte bir örnek - ABD milli marşının ilk birkaç kelimesini OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst)’ye gönderdiğimizde, model hemen sonraki birkaç satırı _tamamlayarak_ temel tahmin davranışını gösteriyor. - -| İstem (Girdi) | Tamamlama (Çıktı) | -| :---------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | ABD’nin milli marşı "The Star-Spangled Banner"ın sözlerine başladığınız anlaşılıyor. Tam sözleri şunlardır ... | - -### Karmaşık İstem - -Şimdi temel isteme bağlam ve talimatlar ekleyelim. [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst), bir dizi _mesaj_ olarak karmaşık bir istem oluşturmamıza olanak tanır: - -- _kullanıcı_ girdisi ve _asistan_ yanıtını yansıtan giriş/çıkış çiftleri. -- Asistan davranışı veya kişiliği için bağlamı belirleyen sistem mesajı. - -İstek artık aşağıdaki biçimdedir; burada _tokenizasyon_, bağlam ve konuşmadan ilgili bilgileri etkili şekilde yakalar. Sistem bağlamını değiştirmek, sağlanan kullanıcı girdileri kadar tamamlama kalitesini etkileyebilir. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Talimat İstemi - -Yukarıdaki örneklerde, kullanıcı istemi bilgi talebi olarak yorumlanabilecek basit bir metin sorgusuydu. _Talimat_ istemlerinde, bu metni yapay zekaya daha iyi rehberlik etmek için bir görevi daha ayrıntılı belirtmek için kullanabiliriz. İşte bir örnek: - -| İstem (Girdi) | Tamamlama (Çıktı) | Talimat Türü | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Write a description of the Civil War | _basit bir paragraf döndürüldü_ | Basit | -| Write a description of the Civil War. Provide key dates and events and describe their significance | _bir paragraf ve ardından önemli olay tarihleri ile açıklamalar içeren bir liste döndürüldü_ | Karmaşık | -| Write a description of the Civil War in 1 paragraph. Provide 3 bullet points with key dates and their significance. Provide 3 more bullet points with key historical figures and their contributions. Return the output as a JSON file | _daha kapsamlı detaylar içeren, JSON formatında ve dosyaya yapıştırılıp doğrulanabilecek bir metin kutusu döndürür_ | Karmaşık. Formatlı. | - -## Birincil İçerik - -Yukarıdaki örneklerde, istem hâlâ oldukça açık uçluydu ve LLM, önceden eğitildiği veri kümesinin hangi kısmının ilgili olduğuna karar verebiliyordu. _Birincil içerik_ tasarım deseninde, giriş metni iki bölüme ayrılır: - -- bir talimat (eylem) -- eylemi etkileyen ilgili içerik - -İşte talimatın "bunu 2 cümlede özetle" olduğu bir örnek. - -| İstem (Girdi) | Tamamlama (Çıktı) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jüpiter, Güneş'ten beşinci gezegen ve Güneş Sistemi'nin en büyüğüdür. Güneş'in kütlesinin binde biri kadar bir kütleye sahip bir gaz devidir, ancak Güneş Sistemi'ndeki diğer tüm gezegenlerin toplam kütlesinin iki buçuk katıdır. Jüpiter, çıplak gözle görülebilen en parlak nesnelerden biridir ve kayıtlı tarihten önceki eski uygarlıklar tarafından bilinmektedir. Roma tanrısı Jüpiter'in adını taşır.[19] Dünya'dan bakıldığında, yansıyan ışığı görünür gölgeler oluşturacak kadar parlak olabilir,[20] ve ortalama olarak Ay ve Venüs'ten sonra gece gökyüzündeki üçüncü en parlak doğal nesnedir.
**Bunu 2 kısa cümlede özetle** | Jüpiter, Güneş'ten beşinci gezegen olup Güneş Sistemi'nin en büyüğüdür ve gece gökyüzündeki en parlak nesnelerden biridir. Roma tanrısı Jüpiter'in adını taşıyan bu gaz devi, Güneş Sistemi'ndeki diğer tüm gezegenlerin toplam kütlesinin iki buçuk katına sahiptir. | - -Birincil içerik bölümü, daha etkili talimatlar vermek için çeşitli şekillerde kullanılabilir: - -- **Örnekler** - modele açık bir talimat vermek yerine, ne yapılacağını gösteren örnekler verip kalıbı çıkarmasını sağlamak. -- **İpuçları** - talimatı, tamamlamayı yönlendiren ve modeli daha ilgili yanıtlar vermeye teşvik eden bir "ipuçları" ile takip etmek. -- **Şablonlar** - belirli kullanım durumları için verilerle özelleştirilebilen yer tutucular (değişkenler) içeren tekrarlanabilir istem "tarifleri". - -Bunları uygulamada inceleyelim. - -### Örnek Kullanımı - -Bu yaklaşımda, bir talimat için istenen çıktının bazı örneklerini modele "besleyip", modelin istenen çıktı kalıbını çıkarmasını sağlıyoruz. Verilen örnek sayısına göre sıfır-atış (zero-shot), tek-atış (one-shot), birkaç-atış (few-shot) istemleri olabilir. - -İstem artık üç bileşenden oluşur: - -- Bir görev tanımı -- İstenen çıktının birkaç örneği -- Yeni bir örneğin başlangıcı (bu, örtük bir görev tanımı olur) - -| Öğrenme Türü | İstem (Girdi) | Tamamlama (Çıktı) | -| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| Sıfır-atış | "The Sun is Shining". İspanyolcaya çevir | "El Sol está brillando". | -| Tek-atış | "The Sun is Shining" => "El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| Birkaç-atış | Oyuncu üsleri koştu => Beyzbol
Oyuncu ace vurdu => Tenis
Oyuncu altı vurdu => Kriket
Oyuncu smaç yaptı => | Basketbol | -| | | | - -Sıfır-atış istemde açık talimat ("İspanyolcaya çevir") vermemiz gerektiğini, ancak tek-atış örnekte bunun çıkarıldığını fark edin. Birkaç-atış örneği, daha fazla örnek eklemenin modele ek talimat olmadan daha doğru çıkarımlar yapma imkanı sağladığını gösterir. - -### İstem İpuçları - -Birincil içeriği kullanmanın bir diğer yöntemi, örnekler yerine _ipuçları_ sağlamaktır. Bu durumda, modele istenen yanıt formatını yansıtan bir parçayla _başlayarak_ onu doğru yöne yönlendiriyoruz. Model, bu "ipuçunu alır" ve aynı tarzda devam eder. - -| İpucu Sayısı | İstem (Girdi) | Tamamlama (Çıktı) | -| :------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Jüpiter, Güneş'ten beşinci gezegen ve Güneş Sistemi'nin en büyüğüdür. Güneş'in kütlesinin binde biri kadar bir kütleye sahip bir gaz devidir, ancak Güneş Sistemi'ndeki diğer tüm gezegenlerin toplam kütlesinin iki buçuk katıdır. Jüpiter, çıplak gözle görülebilen en parlak nesnelerden biridir ve kayıtlı tarihten önceki eski uygarlıklar tarafından bilinmektedir. - -**Bunu Özetle** | Jüpiter, Güneş Sistemi'ndeki en büyük gezegen ve Güneş'ten beşinci sıradadır. Güneş'in kütlesinin 1/1000'i kadar olan bir gaz devidir, ancak diğer tüm gezegenlerin toplamından daha ağırdır. Antik uygarlıklar Jüpiter'i uzun zamandır bilmektedir ve gece gökyüzünde kolayca görülebilir. | -| 1 | Jüpiter, Güneş'ten beşinci gezegen ve Güneş Sistemi'nin en büyüğüdür. Güneş'in kütlesinin binde biri kadar olan bir gaz devidir, ancak Güneş Sistemi'ndeki diğer tüm gezegenlerin toplam kütlesinin iki buçuk katıdır. Jüpiter, çıplak gözle gece gökyüzünde görülebilen en parlak cisimlerden biridir ve kayıtlı tarihten önceki antik uygarlıklar tarafından bilinmektedir.
**Bunu Özetle**
Öğrendiğimiz şey, Jüpiter'in | Güneş'ten beşinci gezegen ve Güneş Sistemi'nin en büyüğü olduğudur. Güneş'in kütlesinin binde biri kadar olan bir gaz devidir, ancak diğer tüm gezegenlerin toplam kütlesinin iki buçuk katıdır. Çıplak gözle kolayca görülebilir ve antik çağlardan beri bilinmektedir. | -| 2 | Jüpiter, Güneş'ten beşinci gezegen ve Güneş Sistemi'nin en büyüğüdür. Güneş'in kütlesinin binde biri kadar olan bir gaz devidir, ancak Güneş Sistemi'ndeki diğer tüm gezegenlerin toplam kütlesinin iki buçuk katıdır. Jüpiter, çıplak gözle gece gökyüzünde görülebilen en parlak cisimlerden biridir ve kayıtlı tarihten önceki antik uygarlıklar tarafından bilinmektedir.
**Bunu Özetle**
Öğrendiğimiz En Önemli 3 Gerçek: | 1. Jüpiter, Güneş'ten beşinci gezegen ve Güneş Sistemi'nin en büyüğüdür.
2. Güneş'in kütlesinin binde biri kadar bir gaz devidir...
3. Jüpiter, antik çağlardan beri çıplak gözle görülebilmektedir... | -| | | | - -### İstek Şablonları - -İstek şablonu, _önceden tanımlanmış bir istek reçetesi_ olup, ihtiyaç duyulduğunda saklanabilir ve yeniden kullanılabilir; böylece daha tutarlı kullanıcı deneyimleri ölçeklendirilerek sağlanabilir. En basit haliyle, [OpenAI’den bu örnek](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) gibi, hem etkileşimli istek bileşenlerini (kullanıcı ve sistem mesajları) hem de API tabanlı istek formatını içeren bir istek örnekleri koleksiyonudur - yeniden kullanım için destek sağlar. - -Daha karmaşık bir biçimde, [LangChain’den bu örnek](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst) gibi, _yer tutucular_ içerir ve bunlar çeşitli kaynaklardan (kullanıcı girişi, sistem bağlamı, dış veri kaynakları vb.) gelen verilerle değiştirilebilir; böylece dinamik olarak bir istek oluşturulabilir. Bu, programatik olarak tutarlı kullanıcı deneyimleri sağlamak için yeniden kullanılabilir istek kütüphaneleri oluşturmamıza olanak tanır. - -Son olarak, şablonların gerçek değeri, dikey uygulama alanları için _istek kütüphaneleri_ oluşturup yayımlama yeteneğinde yatar - burada istek şablonu, uygulamaya özgü bağlam veya örnekleri yansıtacak şekilde _optimize edilir_, böylece yanıtlar hedeflenen kullanıcı kitlesi için daha alakalı ve doğru olur. [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) deposu, eğitim alanı için ders planlama, müfredat tasarımı, öğrenci rehberliği gibi temel hedeflere vurgu yaparak istek kütüphaneleri derleyen bu yaklaşımın harika bir örneğidir. - -## Destekleyici İçerik - -İstek yapısını bir talimat (görev) ve hedef (birincil içerik) olarak düşünürsek, _ikincil içerik_ ise **çıktıyı bir şekilde etkilemek için** sağladığımız ek bağlam gibidir. Bu, modelin yanıtını istenen kullanıcı hedeflerine veya beklentilerine uygun hale getirmesine yardımcı olabilecek ayar parametreleri, biçimlendirme talimatları, konu taksonomileri vb. olabilir. - -Örneğin: Müfredattaki tüm mevcut kurslar hakkında kapsamlı meta veriler (isim, açıklama, seviye, meta etiketler, eğitmen vb.) içeren bir kurs kataloğu verildiğinde: - -- "2023 Güz dönemi kurs kataloğunu özetle" talimatını tanımlayabiliriz -- Birincil içerik olarak istenen çıktının birkaç örneğini sağlayabiliriz -- İkincil içerik olarak en çok ilgi gören 5 "etiketi" belirtebiliriz. - -Model, birkaç örnekle gösterilen formatta bir özet sunabilir - ancak bir sonuçta birden fazla etiket varsa, ikincil içerikte belirlenen 5 etikete öncelik verebilir. - ---- - - - -## İstek Hazırlamada En İyi Uygulamalar - -Artık isteklerin nasıl _oluşturulabileceğini_ bildiğimize göre, onları en iyi uygulamaları yansıtacak şekilde nasıl _tasarlayacağımızı_ düşünmeye başlayabiliriz. Bunu iki bölümde düşünebiliriz - doğru _zihniyete_ sahip olmak ve doğru _teknikleri_ uygulamak. - -### İstek Mühendisliği Zihniyeti - -İstek mühendisliği deneme-yanılma sürecidir, bu yüzden üç geniş rehber faktörü aklınızda tutun: - -1. **Alan Bilgisi Önemlidir.** Yanıt doğruluğu ve alaka, uygulamanın veya kullanıcının faaliyet gösterdiği _alan_ ile ilgilidir. Teknikleri daha da **özelleştirmek** için sezginizi ve alan uzmanlığınızı kullanın. Örneğin, sistem isteklerinizde _alan-spesifik kişilikler_ tanımlayın veya kullanıcı isteklerinde _alan-spesifik şablonlar_ kullanın. Alan-spesifik bağlamları yansıtan ikincil içerik sağlayın veya modeli tanıdık kullanım kalıplarına yönlendirmek için _alan-spesifik ipuçları ve örnekler_ kullanın. - -2. **Modeli Anlamak Önemlidir.** Modellerin doğası gereği stokastik olduğunu biliyoruz. Ancak model uygulamaları, kullandıkları eğitim veri seti (önceden eğitilmiş bilgi), sağladıkları yetenekler (örneğin API veya SDK aracılığıyla) ve optimize edildikleri içerik türü (kod, görsel, metin vb.) açısından farklılık gösterebilir. Kullandığınız modelin güçlü ve zayıf yönlerini anlayın ve bu bilgiyi _görev önceliklendirmesi_ yapmak veya modelin yeteneklerine göre optimize edilmiş _özelleştirilmiş şablonlar_ oluşturmak için kullanın. - -3. **Yineleme ve Doğrulama Önemlidir.** Modeller hızla gelişiyor, istek mühendisliği teknikleri de öyle. Bir alan uzmanı olarak, _kendi_ uygulamanız için topluluğun geneline uymayabilecek başka bağlamlar veya kriterleriniz olabilir. İstek mühendisliği araçları ve tekniklerini kullanarak istek oluşturmayı "hızlandırın", ardından sonuçları kendi sezginiz ve alan uzmanlığınızla yineleyin ve doğrulayın. Edindiğiniz bilgileri kaydedin ve başkalarının daha hızlı yinelemeler yapabilmesi için bir **bilgi tabanı** (örneğin istek kütüphaneleri) oluşturun. - -## En İyi Uygulamalar - -Şimdi [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) ve [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst) uzmanlarının önerdiği yaygın en iyi uygulamalara bakalım. - -| Ne Yapmalı | Neden | -| :------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| En yeni modelleri değerlendirin | Yeni model nesilleri muhtemelen geliştirilmiş özellikler ve kalite sunar - ancak maliyetleri de daha yüksek olabilir. Etkisini değerlendirin ve ardından geçiş kararları alın. | -| Talimatları ve bağlamı ayırın | Modelinizin/sağlayıcınızın talimatları, birincil ve ikincil içeriği daha net ayırmak için _sınırlandırıcılar_ tanımlayıp tanımlamadığını kontrol edin. Bu, modellerin tokenlere daha doğru ağırlık vermesine yardımcı olabilir. | -| Spesifik ve net olun | İstenen bağlam, sonuç, uzunluk, format, stil vb. hakkında daha fazla detay verin. Bu, yanıtların kalitesini ve tutarlılığını artırır. Tarifleri yeniden kullanılabilir şablonlarda yakalayın. | -| Betimleyici olun, örnekler kullanın | Modeller "göster ve anlat" yaklaşımına daha iyi yanıt verebilir. Önce örneksiz `sıfır atış` talimat verin, sonra istenen çıktının birkaç örneğini sağlayarak `birkaç atış` ile iyileştirin. Benzetmeler kullanın. | -| Tamamlama için ipuçları kullanın | Yanıtı istenen sonuca yönlendirmek için başlangıç noktası olarak kullanabileceği bazı kelime veya ifadeler verin. | -| Tekrar edin | Bazen modeli tekrar etmek gerekebilir. Birincil içeriğinizden önce ve sonra talimat verin, talimat ve ipucu kullanın vb. Ne işe yaradığını görmek için yineleyin ve doğrulayın. | -| Sıra Önemlidir | Bilgileri modele sunma sırası çıktı üzerinde etkili olabilir, öğrenme örneklerinde bile yakınlık yanlılığı nedeniyle. En iyi sonucu görmek için farklı seçenekleri deneyin. | -| Modele bir “çıkış” verin | Modelin herhangi bir nedenle görevi tamamlayamadığında sunabileceği bir _geri dönüş_ yanıtı verin. Bu, modelin yanlış veya uydurma yanıtlar üretme olasılığını azaltabilir. | -| | | - -Herhangi bir en iyi uygulamada olduğu gibi, _deneyiminiz modele, göreve ve alana bağlı olarak değişebilir_. Bunları bir başlangıç noktası olarak kullanın ve sizin için en iyi olanı bulmak için yineleyin. Yeni modeller ve araçlar çıktıkça istek mühendisliği sürecinizi sürekli yeniden değerlendirin; süreç ölçeklenebilirliği ve yanıt kalitesine odaklanın. - - - -## Ödev - -Tebrikler! Dersin sonuna geldiniz! Şimdi bu kavram ve tekniklerden bazılarını gerçek örneklerle test etme zamanı! - -Ödevimiz için, etkileşimli olarak tamamlayabileceğiniz alıştırmalar içeren bir Jupyter Notebook kullanacağız. Kendi Markdown ve Kod hücrelerinizle Notebook’u genişleterek fikir ve teknikleri kendi başınıza keşfedebilirsiniz. - -### Başlamak için, repoyu çatallayın, sonra - -- (Önerilen) GitHub Codespaces’i başlatın -- (Alternatif) Repoyu yerel cihazınıza klonlayın ve Docker Desktop ile kullanın -- (Alternatif) Tercih ettiğiniz Notebook çalışma ortamıyla Notebook’u açın. - -### Sonra, ortam değişkenlerinizi yapılandırın - -- Repo kökünde bulunan `.env.copy` dosyasını `.env` olarak kopyalayın ve `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` ve `AZURE_OPENAI_DEPLOYMENT` değerlerini doldurun. Nasıl yapılacağını öğrenmek için [Learning Sandbox bölümüne](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) geri dönün. - -### Sonra, Jupyter Notebook’u açın - -- Çalışma zamanı çekirdeğini seçin. 1. veya 2. seçeneği kullanıyorsanız, geliştirici konteynerinin sağladığı varsayılan Python 3.10.x çekirdeğini seçmeniz yeterlidir. - -Alıştırmaları çalıştırmaya hazırsınız. Burada _doğru ya da yanlış_ cevaplar yoktur - sadece deneme-yanılma yoluyla seçenekleri keşfetmek ve belirli bir model ve uygulama alanı için neyin işe yaradığını sezgisel olarak anlamak amaçlanır. - -_Bu nedenle, bu derste Kod Çözümü bölümleri yoktur. Bunun yerine, Notebook’ta "Çözümüm:" başlıklı Markdown hücreleri olacak ve referans için bir örnek çıktı gösterecektir._ - - - -## Bilgi Kontrolü - -Aşağıdakilerden hangisi makul en iyi uygulamalara uygun iyi bir istektir? - -1. Bana kırmızı bir arabanın resmini göster -2. Bana kırmızı, Volvo marka ve XC90 model, bir uçurum kenarında güneş batarken park etmiş bir arabanın resmini göster -3. Bana kırmızı, Volvo marka ve XC90 model bir arabanın resmini göster - -Cevap: 2, çünkü "ne" olduğu hakkında detay verir ve spesifiklere iner (sadece herhangi bir araba değil, belirli marka ve model) ayrıca genel ortamı da tanımlar. 3 ikinci en iyisidir çünkü o da çok sayıda açıklama içerir. - -## 🚀 Meydan Okuma - -"İpucu" tekniğini şu istekle kullanabilir misiniz: Cümleyi tamamla "Bana kırmızı, Volvo marka ve " ile başlayan bir arabanın resmini göster. Ne yanıt veriyor ve nasıl geliştirirsiniz? - -## Harika İş! Öğrenmeye Devam Et - -Farklı İstek Mühendisliği kavramları hakkında daha fazla bilgi edinmek ister misiniz? Bu konudaki diğer harika kaynakları bulmak için [devam eden öğrenme sayfasına](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) gidin. - -Bir sonraki derse, [ileri düzey istek tekniklerine](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) bakacağımız Ders 5’e geçin! - -**Feragatname**: -Bu belge, AI çeviri servisi [Co-op Translator](https://github.com/Azure/co-op-translator) kullanılarak çevrilmiştir. Doğruluk için çaba göstersek de, otomatik çevirilerin hatalar veya yanlışlıklar içerebileceğini lütfen unutmayınız. Orijinal belge, kendi dilinde yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımı sonucu oluşabilecek yanlış anlamalar veya yorum hatalarından sorumlu değiliz. \ No newline at end of file + + + + + + + diff --git a/translations/tr/09-building-image-applications/README.md b/translations/tr/09-building-image-applications/README.md index dc23a1185..ee89e1746 100644 --- a/translations/tr/09-building-image-applications/README.md +++ b/translations/tr/09-building-image-applications/README.md @@ -1,475 +1,12 @@ - -# Görüntü Üretim Uygulamaları Geliştirme - -[![Görüntü Üretim Uygulamaları Geliştirme](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.tr.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLM’ler sadece metin üretmekle kalmaz. Metin açıklamalarından görüntü üretmek de mümkündür. Görüntülerin bir modalite olarak kullanılması, MedTech, mimarlık, turizm, oyun geliştirme ve daha birçok alanda oldukça faydalı olabilir. Bu bölümde, en popüler iki görüntü üretim modeli olan DALL-E ve Midjourney’e göz atacağız. - -## Giriş - -Bu derste şunları ele alacağız: - -- Görüntü üretimi ve neden faydalı olduğu. -- DALL-E ve Midjourney nedir, nasıl çalışırlar. -- Bir görüntü üretim uygulaması nasıl geliştirilir. - -## Öğrenme Hedefleri - -Bu dersi tamamladıktan sonra şunları yapabileceksiniz: - -- Bir görüntü üretim uygulaması geliştirmek. -- Meta promptlarla uygulamanız için sınırlar belirlemek. -- DALL-E ve Midjourney ile çalışmak. - -## Neden görüntü üretim uygulaması geliştirmeli? - -Görüntü üretim uygulamaları, Üretken Yapay Zeka’nın yeteneklerini keşfetmek için harika bir yoldur. Örneğin, şu amaçlarla kullanılabilirler: - -- **Görüntü düzenleme ve sentezi**. Görüntü düzenleme ve sentez gibi çeşitli kullanım senaryoları için görüntüler oluşturabilirsiniz. - -- **Çeşitli sektörlerde uygulanabilir**. Medtech, turizm, oyun geliştirme gibi birçok sektörde görüntü üretmek için kullanılabilirler. - -## Senaryo: Edu4All - -Bu dersin bir parçası olarak, girişimimiz Edu4All ile çalışmaya devam edeceğiz. Öğrenciler değerlendirmeleri için görüntüler oluşturacaklar, hangi görüntülerin olacağı tamamen öğrencilere kalmış; kendi masalları için illüstrasyonlar yapabilir, hikayeleri için yeni karakterler yaratabilir veya fikirlerini ve kavramlarını görselleştirmelerine yardımcı olabilirler. - -Örneğin, Edu4All öğrencileri sınıfta anıtlar üzerinde çalışıyorlarsa şu görüntüyü oluşturabilirler: - -![Edu4All girişimi, anıtlar sınıfı, Eyfel Kulesi](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.tr.png) - -şöyle bir prompt kullanarak - -> "Sabah erken güneş ışığında Eyfel Kulesi yanında köpek" - -## DALL-E ve Midjourney nedir? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) ve [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst), en popüler iki görüntü üretim modelidir; promptlar kullanarak görüntü oluşturmanıza olanak tanırlar. - -### DALL-E - -DALL-E ile başlayalım, bu, metin açıklamalarından görüntü üreten bir Üretken Yapay Zeka modelidir. - -> [DALL-E, CLIP ve diffused attention adlı iki modelin birleşimidir](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP**, görüntülerden ve metinlerden sayısal temsiller (embedding) oluşturan bir modeldir. - -- **Diffused attention**, embeddinglerden görüntü üreten bir modeldir. DALL-E, görüntü ve metinlerden oluşan bir veri seti üzerinde eğitilmiştir ve metin açıklamalarından görüntü oluşturmak için kullanılabilir. Örneğin, DALL-E şapkalı bir kedi veya mohawk saçlı bir köpek görüntüsü oluşturabilir. - -### Midjourney - -Midjourney, DALL-E’ye benzer şekilde çalışır; metin promptlarından görüntü üretir. Midjourney, “şapkalı kedi” veya “mohawk saçlı köpek” gibi promptlarla görüntü oluşturmak için de kullanılabilir. - -![Midjourney tarafından oluşturulan görüntü, mekanik güvercin](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Wikipedia kaynaklı, Midjourney tarafından oluşturulan görüntü_ - -## DALL-E ve Midjourney nasıl çalışır? - -Öncelikle, [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). DALL-E, _autoregressive transformer_ mimarisi üzerine kurulmuş bir Üretken Yapay Zeka modelidir. - -Bir _autoregressive transformer_, modelin metin açıklamalarından görüntü üretme şeklini tanımlar; görüntüyü birer piksel olarak sırayla üretir ve üretilen pikselleri kullanarak bir sonraki pikseli oluşturur. Bu süreç, görüntü tamamlanana kadar sinir ağı katmanlarından geçer. - -Bu yöntemle DALL-E, ürettiği görüntüdeki özellikleri, nesneleri, karakteristikleri ve daha fazlasını kontrol eder. Ancak DALL-E 2 ve 3, üretilen görüntü üzerinde daha fazla kontrol sağlar. - -## İlk görüntü üretim uygulamanızı geliştirme - -Peki, bir görüntü üretim uygulaması geliştirmek için ne gerekir? Aşağıdaki kütüphanelere ihtiyacınız var: - -- **python-dotenv**, gizli bilgilerinizi koddan ayrı tutmak için _.env_ dosyasında saklamak üzere bu kütüphaneyi kullanmanız şiddetle tavsiye edilir. -- **openai**, OpenAI API ile etkileşim kurmak için kullanacağınız kütüphane. -- **pillow**, Python’da görüntülerle çalışmak için. -- **requests**, HTTP istekleri yapmak için. - -1. Aşağıdaki içeriğe sahip bir _.env_ dosyası oluşturun: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Bu bilgileri Azure Portal’da kaynaklarınızın "Keys and Endpoint" bölümünde bulabilirsiniz. - -1. Yukarıdaki kütüphaneleri _requirements.txt_ adlı bir dosyada toplayın: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. Sonra, sanal ortam oluşturup kütüphaneleri yükleyin: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Windows için sanal ortam oluşturma ve etkinleştirme komutları: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. _app.py_ adlı dosyaya aşağıdaki kodu ekleyin: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Bu kodu açıklayalım: - -- Öncelikle, OpenAI, dotenv, requests ve Pillow kütüphaneleri dahil olmak üzere ihtiyacımız olan kütüphaneleri içe aktarıyoruz. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Ardından, ortam değişkenlerini _.env_ dosyasından yüklüyoruz. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- Sonra, OpenAI API için endpoint, anahtar, sürüm ve tür ayarlarını yapıyoruz. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- Sonrasında, görüntüyü oluşturuyoruz: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - Yukarıdaki kod, oluşturulan görüntünün URL’sini içeren bir JSON nesnesi ile yanıt verir. Bu URL’yi kullanarak görüntüyü indirip dosyaya kaydedebiliriz. - -- Son olarak, görüntüyü açıp standart görüntüleyici ile gösteriyoruz: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Görüntü oluşturma kodunu daha detaylı inceleyelim - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt**, görüntüyü oluşturmak için kullanılan metin promptudur. Bu örnekte, "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils" kullanıyoruz. -- **size**, oluşturulan görüntünün boyutudur. Bu örnekte 1024x1024 piksel. -- **n**, oluşturulan görüntü sayısıdır. Bu örnekte iki görüntü oluşturuyoruz. -- **temperature**, Üretken Yapay Zeka modelinin çıktısının rastgeleliğini kontrol eden bir parametredir. 0 ile 1 arasında bir değerdir; 0 çıktının deterministik (kesin) olduğunu, 1 ise tamamen rastgele olduğunu gösterir. Varsayılan değer 0.7’dir. - -Görüntülerle yapabileceğiniz daha birçok şey var, bunları sonraki bölümde ele alacağız. - -## Görüntü üretiminin ek yetenekleri - -Şimdiye kadar Python’da birkaç satır kodla nasıl görüntü oluşturduğumuzu gördünüz. Ancak görüntülerle yapabileceğiniz daha fazla şey var. - -Ayrıca şunları yapabilirsiniz: - -- **Düzenlemeler yapmak**. Var olan bir görüntüye maske ve prompt sağlayarak görüntüyü değiştirebilirsiniz. Örneğin, görüntünün bir bölümüne bir şey ekleyebilirsiniz. Tavşan görüntümüzü düşünün, tavşana şapka ekleyebilirsiniz. Bunu yapmak için görüntüyü, değişiklik yapılacak alanı belirten bir maskeyi ve ne yapılacağını belirten bir metin promptunu sağlamanız gerekir. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - Temel görüntü sadece tavşanı içerirken, son görüntü tavşanın üzerinde şapka olacaktır. - -- **Varyasyonlar oluşturmak**. Var olan bir görüntüyü alıp varyasyonlarının oluşturulmasını isteyebilirsiniz. Varyasyon oluşturmak için bir görüntü ve metin promptu sağlarsınız, kod şöyle olur: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Not: Bu özellik sadece OpenAI’da desteklenmektedir. - -## Temperature (Sıcaklık) - -Temperature, Üretken Yapay Zeka modelinin çıktısının rastgeleliğini kontrol eden bir parametredir. 0 ile 1 arasında bir değerdir; 0 çıktının deterministik (kesin) olduğunu, 1 ise tamamen rastgele olduğunu gösterir. Varsayılan değer 0.7’dir. - -Temperature’ın nasıl çalıştığını görmek için aynı promptu iki kez çalıştıralım: - -> Prompt: "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils" - -![At üzerinde lolipop tutan tavşan, versiyon 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.tr.png) - -Şimdi aynı promptu tekrar çalıştıralım, böylece aynı görüntüyü iki kez almayacağımızı göreceğiz: - -![At üzerindeki tavşanın oluşturulan görüntüsü](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.tr.png) - -Gördüğünüz gibi, görüntüler benzer ama aynı değil. Şimdi temperature değerini 0.1 yapalım ve ne olacağını görelim: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Temperature değerini değiştirmek - -Yanıtı daha deterministik yapmak için deneyelim. Oluşturduğumuz iki görüntüden birinde tavşan, diğerinde at olduğunu gördük, yani görüntüler oldukça farklı. - -Bu yüzden kodumuzu değiştirip temperature değerini 0 yapalım: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Bu kodu çalıştırdığınızda şu iki görüntüyü alırsınız: - -- ![Temperature 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.tr.png) -- ![Temperature 0 , v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.tr.png) - -Burada görüntülerin birbirine daha çok benzediğini açıkça görebilirsiniz. - -## Uygulamanız için sınırları metapromptlarla nasıl belirlersiniz? - -Demo ile müşterilerimiz için görüntüler oluşturabiliyoruz. Ancak uygulamamız için bazı sınırlar koymamız gerekiyor. - -Örneğin, iş için uygun olmayan veya çocuklar için uygun olmayan görüntüler üretmek istemeyiz. - -Bunu _metapromptlar_ ile yapabiliriz. Metapromptlar, Üretken Yapay Zeka modelinin çıktısını kontrol etmek için kullanılan metin promptlarıdır. Örneğin, metapromptlar kullanarak çıktıyı kontrol edebilir ve oluşturulan görüntülerin iş için uygun veya çocuklar için güvenli olmasını sağlayabiliriz. - -### Nasıl çalışır? - -Peki, metapromptlar nasıl çalışır? - -Metapromptlar, Üretken Yapay Zeka modelinin çıktısını kontrol etmek için kullanılan metin promptlarıdır; metin promptundan önce konumlandırılırlar ve modelin çıktısını kontrol etmek için kullanılırlar. Uygulamalara gömülürler ve prompt girdisi ile metaprompt girdisini tek bir metin promptu içinde kapsarlar. - -Bir metaprompt örneği şöyle olabilir: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Şimdi, demo uygulamamızda metapromptları nasıl kullanabileceğimize bakalım. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -Yukarıdaki prompttan, oluşturulan tüm görüntülerin metapromptu dikkate aldığını görebilirsiniz. - -## Ödev - öğrencileri yetkilendirelim - -Bu dersin başında Edu4All’ı tanıttık. Şimdi öğrencilerin değerlendirmeleri için görüntü oluşturmalarını sağlayalım. - -Öğrenciler, değerlendirmeleri için anıtlar içeren görüntüler oluşturacaklar; hangi anıtların olacağı tamamen öğrencilere kalmış. Bu görevde yaratıcılıklarını kullanmaları isteniyor, anıtları farklı bağlamlarda konumlandırabilirler. - -## Çözüm - -İşte olası bir çözüm: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Harika İş! Öğrenmeye Devam Edin - -Bu dersi tamamladıktan sonra, Üretken Yapay Zeka bilginizi geliştirmeye devam etmek için [Generative AI Learning koleksiyonumuza](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) göz atın! - -Bir sonraki derse, [düşük kodla AI uygulamaları geliştirmeye](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) bakacağımız Ders 10’a geçin. - -**Feragatname**: -Bu belge, AI çeviri servisi [Co-op Translator](https://github.com/Azure/co-op-translator) kullanılarak çevrilmiştir. Doğruluk için çaba göstersek de, otomatik çevirilerin hatalar veya yanlışlıklar içerebileceğini lütfen unutmayın. Orijinal belge, kendi dilinde yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımı sonucu ortaya çıkabilecek yanlış anlamalar veya yorum hatalarından sorumlu değiliz. \ No newline at end of file + + + + diff --git a/translations/tr/12-designing-ux-for-ai-applications/README.md b/translations/tr/12-designing-ux-for-ai-applications/README.md index 519875c74..0a0a42f24 100644 --- a/translations/tr/12-designing-ux-for-ai-applications/README.md +++ b/translations/tr/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# AI Uygulamaları için UX Tasarımı - -[![AI Uygulamaları için UX Tasarımı](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.tr.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Bu dersin videosunu izlemek için yukarıdaki görsele tıklayın)_ - -Kullanıcı deneyimi, uygulama geliştirmenin çok önemli bir yönüdür. Kullanıcıların, görevleri verimli bir şekilde gerçekleştirebilmek için uygulamanızı kolayca kullanabilmesi gerekir. Verimli olmak önemli bir şeydir ancak uygulamaları herkesin kullanabileceği şekilde, yani _erişilebilir_ olarak tasarlamanız da gerekir. Bu bölümde bu konuya odaklanacağız, böylece insanların kullanmak isteyeceği ve kullanabileceği bir uygulama tasarlamanız mümkün olacak. - -## Giriş - -Kullanıcı deneyimi, bir kullanıcının belirli bir ürün veya hizmetle, ister bir sistem, araç ya da tasarım olsun, nasıl etkileşimde bulunduğu ve kullandığıdır. AI uygulamaları geliştirirken, geliştiriciler sadece kullanıcı deneyiminin etkili olmasına değil, aynı zamanda etik olmasına da odaklanır. Bu derste, kullanıcı ihtiyaçlarını karşılayan Yapay Zeka (AI) uygulamalarının nasıl geliştirileceğini ele alacağız. - -Ders aşağıdaki konuları kapsayacak: - -- Kullanıcı Deneyimine Giriş ve Kullanıcı İhtiyaçlarını Anlama -- Güven ve Şeffaflık için AI Uygulamaları Tasarlama -- İşbirliği ve Geri Bildirim için AI Uygulamaları Tasarlama - -## Öğrenme hedefleri - -Bu dersi tamamladıktan sonra şunları yapabileceksiniz: - -- Kullanıcı ihtiyaçlarını karşılayan AI uygulamalarını nasıl geliştireceğinizi anlayacaksınız. -- Güven ve işbirliğini teşvik eden AI uygulamaları tasarlayabileceksiniz. - -### Önkoşul - -Biraz zaman ayırıp [kullanıcı deneyimi ve tasarım odaklı düşünce](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) hakkında daha fazla bilgi edinin. - -## Kullanıcı Deneyimine Giriş ve Kullanıcı İhtiyaçlarını Anlama - -Hayali eğitim girişimimizde iki ana kullanıcı grubumuz var: öğretmenler ve öğrenciler. Her iki kullanıcının da kendine özgü ihtiyaçları bulunuyor. Kullanıcı odaklı tasarım, ürünlerin hedef kitlesi için ilgili ve faydalı olmasını sağlamak adına kullanıcıyı önceliklendirir. - -Uygulama, iyi bir kullanıcı deneyimi sunmak için **yararlı, güvenilir, erişilebilir ve keyifli** olmalıdır. - -### Kullanılabilirlik - -Yararlı olmak, uygulamanın amacına uygun işlevselliğe sahip olması demektir; örneğin notlandırma sürecini otomatikleştirmek veya tekrar için flash kartlar oluşturmak gibi. Notlandırma sürecini otomatikleştiren bir uygulama, önceden belirlenmiş kriterlere göre öğrencilerin çalışmalarına doğru ve verimli şekilde puan verebilmelidir. Benzer şekilde, tekrar için flash kartlar oluşturan bir uygulama, verilerine dayanarak ilgili ve çeşitli sorular hazırlayabilmelidir. - -### Güvenilirlik - -Güvenilir olmak, uygulamanın görevini tutarlı ve hatasız şekilde yerine getirebilmesi anlamına gelir. Ancak AI, insanlar gibi mükemmel değildir ve hata yapabilir. Uygulamalar, insan müdahalesi veya düzeltme gerektiren hatalar veya beklenmedik durumlarla karşılaşabilir. Hataları nasıl yönetiyorsunuz? Bu dersin son bölümünde, AI sistemlerinin ve uygulamalarının işbirliği ve geri bildirim için nasıl tasarlandığını ele alacağız. - -### Erişilebilirlik - -Erişilebilir olmak, kullanıcı deneyimini engelli bireyler de dahil olmak üzere farklı yeteneklere sahip kullanıcılara genişletmek, kimsenin dışlanmamasını sağlamaktır. Erişilebilirlik yönergeleri ve prensiplerine uyulduğunda, AI çözümleri daha kapsayıcı, kullanılabilir ve tüm kullanıcılar için faydalı hale gelir. - -### Keyifli Olmak - -Keyifli olmak, uygulamanın kullanımı zevkli hale getirmektir. Çekici bir kullanıcı deneyimi, kullanıcı üzerinde olumlu bir etki yaratır, onları uygulamaya geri dönmeye teşvik eder ve iş gelirini artırır. - -![AI'da UX dikkate alınan unsurları gösteren görsel](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.tr.png) - -Her zorluk AI ile çözülemez. AI, manuel görevleri otomatikleştirmek veya kullanıcı deneyimlerini kişiselleştirmek gibi kullanıcı deneyiminizi desteklemek için devreye girer. - -## Güven ve Şeffaflık için AI Uygulamaları Tasarlamak - -AI uygulamaları tasarlarken güven oluşturmak kritik öneme sahiptir. Güven, kullanıcının uygulamanın işi yapacağına, sonuçları tutarlı şekilde sunacağına ve sonuçların kullanıcının ihtiyaçlarına uygun olduğuna inanmasını sağlar. Bu alandaki riskler güvensizlik ve aşırı güvendir. Güvensizlik, kullanıcının AI sistemine az veya hiç güvenmemesi durumudur ve bu da uygulamanın reddedilmesine yol açar. Aşırı güven ise kullanıcının AI sisteminin yeteneklerini abartmasıdır; bu da kullanıcıların AI sistemine gereğinden fazla güvenmesine neden olur. Örneğin, aşırı güven durumunda otomatik notlandırma sistemi öğretmenin bazı sınav kağıtlarını kontrol etmemesine yol açabilir. Bu da öğrenciler için adaletsiz veya yanlış notlar verilmesine ya da geri bildirim ve gelişim fırsatlarının kaçırılmasına neden olabilir. - -Güvenin tasarımın tam merkezine yerleştirilmesini sağlamak için iki yol vardır: açıklanabilirlik ve kontrol. - -### Açıklanabilirlik - -AI, geleceğe bilgi aktarmak gibi kararları desteklediğinde, öğretmenlerin ve velilerin AI kararlarının nasıl alındığını anlaması çok önemlidir. Bu, açıklanabilirliktir - AI uygulamalarının karar alma süreçlerinin anlaşılmasıdır. Açıklanabilirlik için tasarım, AI uygulamasının neler yapabileceğine dair örnekler eklemeyi içerir. Örneğin, "AI öğretmenle başlayın" yerine sistem şöyle diyebilir: "Notlarınızı AI ile daha kolay tekrar için özetleyin." - -![AI uygulamalarında açıklanabilirliği net gösteren bir uygulama açılış sayfası](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.tr.png) - -Başka bir örnek, AI'nın kullanıcı ve kişisel verileri nasıl kullandığıdır. Örneğin, öğrenci kişiliğine sahip bir kullanıcı, kişiliğine bağlı sınırlamalara sahip olabilir. AI, soruların cevaplarını doğrudan veremeyebilir ancak kullanıcının problemi nasıl çözebileceği konusunda düşünmesine rehberlik edebilir. - -![Kişiliğe göre sorulara yanıt veren AI](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.tr.png) - -Açıklanabilirliğin son önemli parçası, açıklamaların sadeleştirilmesidir. Öğrenciler ve öğretmenler AI uzmanı olmayabilir, bu yüzden uygulamanın neler yapabileceği veya yapamayacağına dair açıklamalar basit ve anlaşılır olmalıdır. - -![AI yeteneklerine dair sadeleştirilmiş açıklamalar](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.tr.png) - -### Kontrol - -Generative AI, AI ile kullanıcı arasında bir işbirliği yaratır; örneğin kullanıcı farklı sonuçlar için istemleri değiştirebilir. Ayrıca, çıktı oluşturulduktan sonra kullanıcıların sonuçları değiştirebilmesi, onlara kontrol hissi verir. Örneğin Bing kullanırken, isteminizi format, ton ve uzunluğa göre özelleştirebilirsiniz. Ayrıca çıktınıza değişiklikler ekleyip çıktıyı aşağıdaki gibi düzenleyebilirsiniz: - -![İstemi ve çıktıyı değiştirme seçenekleriyle Bing arama sonuçları](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.tr.png) - -Bing’de kullanıcıya uygulama üzerinde kontrol sağlayan bir diğer özellik, AI’nın kullandığı verilere katılma veya katılmama seçeneğidir. Bir okul uygulamasında, öğrenci hem kendi notlarını hem de öğretmenlerin kaynaklarını tekrar materyali olarak kullanmak isteyebilir. - -![İstemi ve çıktıyı değiştirme seçenekleriyle Bing arama sonuçları](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.tr.png) - -> AI uygulamaları tasarlarken, kullanıcıların AI’ya aşırı güvenmesini ve gerçekçi olmayan beklentiler oluşturmasını önlemek için niyetlilik çok önemlidir. Bunu yapmanın bir yolu, istemler ile sonuçlar arasında sürtünme yaratmaktır. Kullanıcıya bunun bir AI olduğunu, gerçek bir insan olmadığını hatırlatmaktır. - -## İşbirliği ve Geri Bildirim için AI Uygulamaları Tasarlamak - -Daha önce belirtildiği gibi, generative AI kullanıcı ile AI arasında bir işbirliği yaratır. Çoğu etkileşim, kullanıcının bir istem girmesi ve AI’nın çıktı üretmesi şeklindedir. Peki ya çıktı yanlışsa? Uygulama hatalarla karşılaştığında nasıl davranır? AI kullanıcıyı suçlar mı yoksa hatayı açıklamak için zaman ayırır mı? - -AI uygulamaları geri bildirim alacak ve verecek şekilde tasarlanmalıdır. Bu, sadece AI sisteminin gelişmesine yardımcı olmakla kalmaz, aynı zamanda kullanıcılarla güven oluşturur. Tasarıma bir geri bildirim döngüsü eklenmelidir; örneğin, çıktı üzerinde basit bir beğenme veya beğenmeme butonu olabilir. - -Bunun bir diğer yolu da sistemin yeteneklerini ve sınırlamalarını açıkça iletmektir. Kullanıcı AI’nın yeteneklerinin ötesinde bir şey istediğinde, bunun nasıl yönetileceği de olmalıdır, aşağıda gösterildiği gibi. - -![Geri bildirim verme ve hata yönetimi](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.tr.png) - -Sistem hataları, kullanıcının AI kapsamı dışındaki bilgilerle yardıma ihtiyaç duyduğu uygulamalarda yaygındır veya uygulamanın kullanıcıların kaç soru/konu için özet oluşturabileceği konusunda sınırı olabilir. Örneğin, sadece Tarih ve Matematik verileriyle eğitilmiş bir AI uygulaması Coğrafya ile ilgili soruları yanıtlayamayabilir. Bunu önlemek için AI sistemi şöyle bir yanıt verebilir: "Üzgünüz, ürünümüz aşağıdaki konularda eğitildi..., sorduğunuz soruya yanıt veremiyorum." - -AI uygulamaları mükemmel değildir, bu yüzden hata yapmaları kaçınılmazdır. Uygulamalarınızı tasarlarken, kullanıcı geri bildirimi ve hata yönetimi için basit ve kolay anlaşılır bir alan yaratmalısınız. - -## Ödev - -Şimdiye kadar geliştirdiğiniz herhangi bir AI uygulamasında aşağıdaki adımları uygulamayı düşünün: - -- **Keyifli:** Uygulamanızı nasıl daha keyifli hale getirebilirsiniz? Her yerde açıklamalar ekliyor musunuz? Kullanıcıyı keşfetmeye teşvik ediyor musunuz? Hata mesajlarınızı nasıl ifade ediyorsunuz? - -- **Kullanılabilirlik:** Bir web uygulaması geliştiriyorsanız, uygulamanızın hem fare hem de klavye ile gezilebilir olduğundan emin olun. - -- **Güven ve şeffaflık:** AI’ya ve çıktısına tamamen güvenmeyin, çıktıyı doğrulamak için sürece bir insan eklemeyi düşünün. Ayrıca güven ve şeffaflığı sağlamak için başka yolları da düşünün ve uygulayın. - -- **Kontrol:** Kullanıcının uygulamaya sağladığı veriler üzerinde kontrol sahibi olmasını sağlayın. Kullanıcının AI uygulamasında veri toplama işlemine katılma ve katılmama seçeneği sunan bir yöntem uygulayın. - -## Öğrenmeye Devam Edin! - -Bu dersi tamamladıktan sonra, Generative AI bilginizi geliştirmeye devam etmek için [Generative AI Öğrenme koleksiyonumuza](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) göz atın! - -Bir sonraki ders olan 13. derse geçin; burada [AI uygulamalarının güvenliğini](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) ele alacağız! - -**Feragatname**: -Bu belge, AI çeviri servisi [Co-op Translator](https://github.com/Azure/co-op-translator) kullanılarak çevrilmiştir. Doğruluk için çaba gösterilse de, otomatik çevirilerin hatalar veya yanlışlıklar içerebileceğini lütfen unutmayınız. Orijinal belge, kendi dilinde yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımı sonucu oluşabilecek yanlış anlamalar veya yorum hatalarından sorumlu değiliz. \ No newline at end of file + + + diff --git a/translations/tr/README.md b/translations/tr/README.md index 14127f9a0..df646b522 100644 --- a/translations/tr/README.md +++ b/translations/tr/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.tr.png) - -### Generatif AI uygulamaları geliştirmeye başlamak için bilmeniz gereken her şeyi öğreten 21 Ders - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Çok Dilli Destek - -#### GitHub Action ile desteklenir (Otomatik ve Her Zaman Güncel) - -[Fransızca](../fr/README.md) | [İspanyolca](../es/README.md) | [Almanca](../de/README.md) | [Rusça](../ru/README.md) | [Arapça](../ar/README.md) | [Farsça (Persian)](../fa/README.md) | [Urduca](../ur/README.md) | [Çince (Basitleştirilmiş)](../zh/README.md) | [Çince (Geleneksel, Makao)](../mo/README.md) | [Çince (Geleneksel, Hong Kong)](../hk/README.md) | [Çince (Geleneksel, Tayvan)](../tw/README.md) | [Japonca](../ja/README.md) | [Korece](../ko/README.md) | [Hintçe](../hi/README.md) | [Bengalce](../bn/README.md) | [Marathi](../mr/README.md) | [Nepalce](../ne/README.md) | [Pencapça (Gurmukhi)](../pa/README.md) | [Portekizce (Portekiz)](../pt/README.md) | [Portekizce (Brezilya)](../br/README.md) | [İtalyanca](../it/README.md) | [Lehçe](../pl/README.md) | [Türkçe](./README.md) | [Yunanca](../el/README.md) | [Tayca](../th/README.md) | [İsveççe](../sv/README.md) | [Danca](../da/README.md) | [Norveççe](../no/README.md) | [Fince](../fi/README.md) | [Flemenkçe](../nl/README.md) | [İbranice](../he/README.md) | [Vietnamca](../vi/README.md) | [Endonezce](../id/README.md) | [Malayca](../ms/README.md) | [Tagalogca (Filipince)](../tl/README.md) | [Svahili](../sw/README.md) | [Macarca](../hu/README.md) | [Çekçe](../cs/README.md) | [Slovakça](../sk/README.md) | [Rumence](../ro/README.md) | [Bulgarca](../bg/README.md) | [Sırpça (Kiril)](../sr/README.md) | [Hırvatça](../hr/README.md) | [Slovence](../sl/README.md) | [Ukraynaca](../uk/README.md) | [Birmanca (Myanmar)](../my/README.md) - -# Başlangıç Seviyesi için Generatif AI (Sürüm 3) - Bir Kurs - -Microsoft Cloud Advocates tarafından hazırlanan 21 derslik kapsamlı kursumuzla Generatif AI uygulamaları geliştirme temellerini öğrenin. - -## 🌱 Başlarken - -Bu kursta 21 ders bulunmaktadır. Her ders kendi konusunu kapsar, istediğiniz yerden başlayabilirsiniz! - -Dersler ya Generatif AI kavramını açıklayan "Öğren" dersleri ya da mümkün olduğunda hem **Python** hem de **TypeScript** ile kavram ve kod örnekleri sunan "Yap" dersleri olarak etiketlenmiştir. - -.NET geliştiriciler için [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) sayfasına göz atabilirsiniz! - -Her ders ayrıca ek öğrenme araçları içeren "Öğrenmeye Devam Et" bölümü içerir. - -## İhtiyacınız Olanlar -### Bu kursun kodlarını çalıştırmak için şunlardan birini kullanabilirsiniz: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **Dersler:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **Dersler:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **Dersler:** "oai-assignment" - -- Python veya TypeScript hakkında temel bilgi faydalıdır - \*Tamamen yeni başlayanlar için bu [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) ve [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) kurslarına göz atabilirsiniz -- Bu depoyu kendi GitHub hesabınıza [forklamak](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) için bir GitHub hesabı - -Geliştirme ortamınızı kurmanıza yardımcı olmak için bir **[Kurs Kurulumu](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** dersi hazırladık. - -Daha sonra kolayca bulabilmek için bu depoya [yıldız (🌟) vermeyi](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) unutmayın. - -## 🧠 Yayına Hazır mısınız? - -Daha gelişmiş kod örnekleri arıyorsanız, hem **Python** hem de **TypeScript** için hazırladığımız [Generatif AI Kod Örnekleri koleksiyonumuza](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) göz atabilirsiniz. - -## 🗣️ Diğer Öğrenenlerle Tanışın, Destek Alın - -Bu kursu alan diğer öğrenenlerle tanışmak ve destek almak için [resmi Azure AI Foundry Discord sunucumuza](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) katılın. - -Sorularınızı sorun veya ürün geri bildirimi paylaşmak için [Azure AI Foundry Geliştirici Forumu](https://aka.ms/azureaifoundry/forum) GitHub sayfasını kullanabilirsiniz. - -## 🚀 Bir Startup mı Kuruyorsunuz? - -[Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) programına kaydolun ve **ücretsiz OpenAI kredileri** ile Azure OpenAI Hizmetleri üzerinden OpenAI modellerine erişmek için **Azure kredilerinde 150.000 $’a kadar destek** kazanın. - -## 🙏 Yardımcı Olmak İster misiniz? - -Önerileriniz mi var ya da yazım ya da kod hataları mı buldunuz? [Bir issue açın](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) veya [Pull request oluşturun](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 Her ders şunları içerir: - -- Konuya kısa bir video tanıtımı -- README dosyasında yazılı ders -- Azure OpenAI ve OpenAI API destekli Python ve TypeScript kod örnekleri -- Öğrenmeye devam etmek için ek kaynak bağlantıları - -## 🗃️ Dersler - -| # | **Ders Bağlantısı** | **Açıklama** | **Video** | **Ek Öğrenme** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Kurs Kurulumu](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Öğren:** Geliştirme Ortamınızı Nasıl Kurarsınız | Video Yakında | [Daha Fazla Bilgi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Generatif AI ve LLM’lere Giriş](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Öğren:** Generatif AI’nin ne olduğu ve Büyük Dil Modellerinin (LLM) nasıl çalıştığını anlamak | [Video](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Daha Fazla Bilgi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Farklı LLM’leri Keşfetmek ve Karşılaştırmak](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Öğren:** Kullanım durumunuza uygun modeli nasıl seçersiniz | [Video](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Daha Fazla Bilgi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Generatif AI’yi Sorumlu Kullanmak](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Öğren:** Generatif AI Uygulamalarını sorumlu şekilde nasıl geliştirirsiniz | [Video](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Daha Fazla Bilgi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Prompt Mühendisliği Temellerini Anlamak](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Öğren:** Uygulamalı Prompt Mühendisliği En İyi Uygulamaları | [Video](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Daha Fazla Bilgi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Gelişmiş Promtlar Oluşturmak](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Öğren:** Promtlarınızın sonuçlarını iyileştiren prompt mühendisliği tekniklerini nasıl uygularsınız | [Video](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Daha Fazla Bilgi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Metin Üretim Uygulamaları Geliştirme](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Oluştur:** Azure OpenAI / OpenAI API kullanarak bir metin üretim uygulaması | [Video](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Daha Fazla Bilgi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Sohbet Uygulamaları Geliştirme](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Oluştur:** Sohbet uygulamalarını verimli şekilde geliştirme ve entegre etme teknikleri | [Video](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Daha Fazla Bilgi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Arama Uygulamaları ve Vektör Veritabanları Geliştirme](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Oluştur:** Verileri aramak için Embeddings kullanan bir arama uygulaması | [Video](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Daha Fazla Bilgi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Görüntü Üretim Uygulamaları Geliştirme](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Oluştur:** Bir görüntü üretim uygulaması | [Video](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Daha Fazla Bilgi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Düşük Kodlu AI Uygulamaları Geliştirme](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Oluştur:** Düşük Kod araçları kullanarak bir Üretken AI uygulaması | [Video](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Daha Fazla Bilgi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Fonksiyon Çağrısı ile Harici Uygulamaların Entegrasyonu](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Oluştur:** Fonksiyon çağrısı nedir ve uygulamalarda kullanım alanları | [Video](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Daha Fazla Bilgi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [AI Uygulamaları için UX Tasarımı](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Öğren:** Üretken AI uygulamaları geliştirirken UX tasarım prensiplerini nasıl uygulayacağınız | [Video](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Daha Fazla Bilgi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Üretken AI Uygulamalarınızı Güvence Altına Alma](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Öğren:** AI sistemlerine yönelik tehditler ve riskler ile bu sistemleri güvence altına alma yöntemleri | [Video](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Daha Fazla Bilgi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [Üretken AI Uygulama Yaşam Döngüsü](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Öğren:** LLM Yaşam Döngüsünü ve LLMOps’u yönetmek için araçlar ve metrikler | [Video](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Daha Fazla Bilgi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) ve Vektör Veritabanları](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Oluştur:** Vektör Veritabanlarından embedding’leri almak için RAG Çerçevesi kullanan bir uygulama | [Video](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Daha Fazla Bilgi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Açık Kaynak Modeller ve Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Oluştur:** Hugging Face’de bulunan açık kaynak modelleri kullanan bir uygulama | [Video](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Daha Fazla Bilgi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI Ajanları](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Oluştur:** Bir AI Ajan Çerçevesi kullanan bir uygulama | [Video](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Daha Fazla Bilgi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [LLM’lerin İnce Ayarı](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Öğren:** LLM’lerin ince ayarının ne olduğu, neden yapıldığı ve nasıl yapıldığı | [Video](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Daha Fazla Bilgi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [SLM’lerle Geliştirme](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Öğren:** Küçük Dil Modelleri ile geliştirmenin faydaları | Video Yakında | [Daha Fazla Bilgi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Mistral Modelleri ile Geliştirme](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Öğren:** Mistral Ailesi Modellerinin özellikleri ve farkları | Video Yakında | [Daha Fazla Bilgi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Meta Modelleri ile Geliştirme](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Öğren:** Meta Ailesi Modellerinin özellikleri ve farkları | Video Yakında | [Daha Fazla Bilgi](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Özel Teşekkürler - -Tüm GitHub Actions ve iş akışlarını oluşturan [**John Aziz**](https://www.linkedin.com/in/john0isaac/)’a özel teşekkürler - -Her dersin öğrenme ve kod deneyimini geliştirmek için önemli katkılar sağlayan [**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/)’ye teşekkür ederiz. - -## 🎒 Diğer Kurslar - -Ekibimiz başka kurslar da üretiyor! Göz atın: - -- [**YENİ** Başlangıç için Model Context Protocol](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Başlangıç için AI Ajanları](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [.NET ile Başlangıç için Üretken AI](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [JavaScript ile Başlangıç için Üretken AI](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [Başlangıç için Makine Öğrenimi](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Başlangıç için Veri Bilimi](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [Başlangıç için AI](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Başlangıç için Siber Güvenlik](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Başlangıç için Web Geliştirme](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [Başlangıç için IoT](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [Başlangıç için XR Geliştirme](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI Eşliğinde Programlama için GitHub Copilot’u Ustalaştırma](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [C#/.NET Geliştiricileri için GitHub Copilot’u Ustalaştırma](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Kendi Copilot Maceranı Seç](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Feragatname**: -Bu belge, AI çeviri servisi [Co-op Translator](https://github.com/Azure/co-op-translator) kullanılarak çevrilmiştir. Doğruluk için çaba göstersek de, otomatik çevirilerin hatalar veya yanlışlıklar içerebileceğini lütfen unutmayın. Orijinal belge, kendi dilinde yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımı sonucu ortaya çıkabilecek yanlış anlamalar veya yorum hatalarından sorumlu değiliz. \ No newline at end of file + + + + diff --git a/translations/tw/00-course-setup/01-setup-cloud.md b/translations/tw/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..0b96f6a1e --- /dev/null +++ b/translations/tw/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/tw/00-course-setup/02-setup-local.md b/translations/tw/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..b0868e318 --- /dev/null +++ b/translations/tw/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/tw/00-course-setup/03-providers.md b/translations/tw/00-course-setup/03-providers.md new file mode 100644 index 000000000..ad36ef478 --- /dev/null +++ b/translations/tw/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/tw/00-course-setup/README.md b/translations/tw/00-course-setup/README.md index 664b59f67..1ef5d0779 100644 --- a/translations/tw/00-course-setup/README.md +++ b/translations/tw/00-course-setup/README.md @@ -1,230 +1,12 @@ - -# 開始這門課程 - -我們非常期待你開始這門課程,看看你會被生成式 AI 啟發創造出什麼! - -為了確保你的學習順利,這頁面將說明設定步驟、技術需求,以及需要幫助時該去哪裡尋求協助。 - -## 設定步驟 - -要開始這門課程,你需要完成以下步驟。 - -### 1. Fork 這個 Repo - -將[整個 repo fork](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst)到你自己的 GitHub 帳號,這樣你才能修改程式碼並完成挑戰。你也可以[為這個 repo 加星號 (🌟)](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst),方便日後找到它和相關的 repo。 - -### 2. 建立 codespace - -為避免執行程式碼時出現相依性問題,我們建議你在[GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst)中執行這門課程。 - -你可以在 fork 後的 repo 中選擇 `Code` 選項,然後選擇 **Codespaces** 來建立。 - -![顯示建立 codespace 按鈕的對話框](../../../00-course-setup/images/who-will-pay.webp) - -### 3. 儲存你的 API 金鑰 - -在開發任何應用程式時,保護你的 API 金鑰安全非常重要。我們建議不要直接將 API 金鑰寫在程式碼中。若將這些資訊提交到公開的 repo,可能會造成安全風險,甚至被不法人士濫用導致額外費用。 - -以下是如何為 Python 建立 `.env` 檔案並加入 `GITHUB_TOKEN` 的逐步教學: - -1. **前往你的專案目錄**:打開終端機或命令提示字元,切換到你想建立 `.env` 檔案的專案根目錄。 - - ```bash - cd path/to/your/project - ``` - -2. **建立 `.env` 檔案**:使用你喜歡的文字編輯器建立一個名為 `.env` 的新檔案。如果使用命令列,可以用 `touch`(Unix 系統)或 `echo`(Windows): - - Unix 系統: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **編輯 `.env` 檔案**:用文字編輯器(例如 VS Code、Notepad++ 或其他)打開 `.env` 檔案,加入以下內容,將 `your_github_token_here` 替換成你的 GitHub token: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **儲存檔案**:儲存並關閉文字編輯器。 - -5. **安裝 `python-dotenv`**:如果還沒安裝,你需要安裝 `python-dotenv` 套件,讓 Python 程式能從 `.env` 檔案讀取環境變數。可用 `pip` 安裝: - - ```bash - pip install python-dotenv - ``` - -6. **在 Python 程式中載入環境變數**:在你的 Python 程式碼中,使用 `python-dotenv` 套件載入 `.env` 檔案的環境變數: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -完成以上步驟後,你就成功建立 `.env` 檔案,加入 GitHub token,並在 Python 應用程式中載入它。 - -## 如何在本機電腦執行 - -要在本機執行程式碼,你需要先安裝某個版本的[Python](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst)。 - -接著,你需要將這個 repo 複製(clone)到本機: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -完成檢出後,就可以開始學習了! - -## 選擇性步驟 - -### 安裝 Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) 是一個輕量級的安裝器,用來安裝 [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst)、Python 以及部分套件。 - -Conda 是一個套件管理工具,可以輕鬆建立和切換不同的 Python [**虛擬環境**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) 和套件。它也方便安裝無法用 `pip` 取得的套件。 - -你可以參考[Miniconda 安裝指南](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst)來完成安裝。 - -安裝好 Miniconda 後,如果還沒複製[此 repo](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst),請先複製。 - -接著,你需要建立虛擬環境。使用 Conda 的話,請建立一個環境設定檔(_environment.yml_)。如果你使用 Codespaces,請在 `.devcontainer` 目錄下建立,也就是 `.devcontainer/environment.yml`。 - -請將以下內容填入你的環境設定檔: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -如果使用 conda 遇到錯誤,可以在終端機手動安裝 Microsoft AI 函式庫: - -``` -conda install -c microsoft azure-ai-ml -``` - -環境設定檔中列出我們需要的相依套件。`` 是你想命名的 Conda 環境名稱,`` 是你想使用的 Python 版本,例如 `3` 是最新的主要版本。 - -完成後,請在命令列/終端機執行以下指令建立 Conda 環境: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -如果遇到問題,請參考[Conda 環境管理指南](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst)。 - -### 使用 Visual Studio Code 搭配 Python 支援擴充功能 - -我們建議使用[Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst)編輯器,並安裝[Python 支援擴充功能](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst)來學習這門課程。不過這只是建議,並非硬性要求。 - -> **注意**:在 VS Code 中開啟課程 repo 時,你可以選擇在容器中設定專案。這是因為課程 repo 中有[特殊的 `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst)目錄。後面會再說明。 - -> **注意**:當你複製並在 VS Code 開啟目錄時,系統會自動建議你安裝 Python 支援擴充功能。 - -> **注意**:如果 VS Code 建議你重新在容器中開啟 repo,請拒絕此請求,以便使用本機安裝的 Python 版本。 - -### 在瀏覽器中使用 Jupyter - -你也可以直接在瀏覽器中使用 [Jupyter 環境](https://jupyter.org?WT.mc_id=academic-105485-koreyst)來開發。無論是經典 Jupyter 或 [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst),都提供了自動補全、程式碼高亮等良好開發體驗。 - -要在本機啟動 Jupyter,請打開終端機/命令列,切換到課程目錄,執行: - -```bash -jupyter notebook -``` - -或 - -```bash -jupyterhub -``` - -這會啟動 Jupyter,並在命令列視窗中顯示存取的 URL。 - -打開該 URL 後,你會看到課程大綱,並能瀏覽任何 `*.ipynb` 檔案,例如 `08-building-search-applications/python/oai-solution.ipynb`。 - -### 在容器中執行 - -另一種選擇是使用[容器](../../../00-course-setup/),而非在本機或 Codespace 設定環境。課程 repo 中的特殊 `.devcontainer` 資料夾讓 VS Code 可以在容器中設定專案。 - -如果不使用 Codespaces,則需要安裝 Docker。坦白說,這需要一些操作經驗,我們建議只有有容器使用經驗的人採用此方式。 - -使用 GitHub Codespaces 時,保護 API 金鑰安全的最佳方法之一是使用 Codespace Secrets。請參考[Codespaces 秘密管理](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst)指南了解更多。 - -## 課程內容與技術需求 - -本課程包含 6 節概念課程與 6 節程式實作課程。 - -程式實作課程使用 Azure OpenAI Service。你需要有 Azure OpenAI 服務的存取權和 API 金鑰才能執行程式碼。你可以透過[填寫申請表](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst)來申請存取權。 - -在等待申請審核期間,每堂程式課也包含一個 `README.md` 檔案,你可以在裡面查看程式碼和輸出結果。 - -## 第一次使用 Azure OpenAI Service - -如果你是第一次使用 Azure OpenAI 服務,請參考這份教學,了解如何[建立並部署 Azure OpenAI Service 資源](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst)。 - -## 第一次使用 OpenAI API - -如果你是第一次使用 OpenAI API,請參考這份教學,了解如何[建立並使用介面](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst)。 - -## 認識其他學員 - -我們在官方的 [AI Community Discord 伺服器](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst)中建立了頻道,方便你認識其他學員。這是與志同道合的創業家、開發者、學生,以及所有想在生成式 AI 領域提升自我的人交流的好地方。 - -[![加入 discord 頻道](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -專案團隊也會在這個 Discord 伺服器上協助學員。 - -## 貢獻 - -這門課程是開源計畫。如果你發現改進空間或問題,請提出[Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst)或回報[GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst)。 - -專案團隊會追蹤所有貢獻。參與開源是建立生成式 AI 職涯的絕佳方式。 - -大多數貢獻需要你同意一份貢獻者授權協議 (CLA),聲明你有權利且確實授權我們使用你的貢獻。詳情請參考[CLA,貢獻者授權協議網站](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst)。 - -重要提醒:翻譯此 repo 內容時,請勿使用機器翻譯。我們會透過社群驗證翻譯品質,請只在你熟悉的語言中自願參與翻譯。 - -當你提交 pull request 時,CLA-bot 會自動判斷你是否需要提供 CLA,並在 PR 上標示(例如標籤、留言)。請依照機器人的指示操作。你只需在所有使用我們 CLA 的 repo 中執行一次。 - -本專案已採用[Microsoft 開源行為準則](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst)。更多資訊請參閱行為準則常見問題,或透過 [Email opencode](opencode@microsoft.com) 聯絡我們。 - -## 開始吧 - -既然你已完成所有必要步驟,現在就從[生成式 AI 與大型語言模型的介紹](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst)開始吧! - -**免責聲明**: -本文件係使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於確保翻譯的準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或誤釋負責。 \ No newline at end of file + + + + diff --git a/translations/tw/00-course-setup/SETUP.md b/translations/tw/00-course-setup/SETUP.md deleted file mode 100644 index 4ab4b9dcd..000000000 --- a/translations/tw/00-course-setup/SETUP.md +++ /dev/null @@ -1,146 +0,0 @@ - -# 設定您的開發環境 - -我們使用了帶有通用執行環境的[開發容器](https://containers.dev?WT.mc_id=academic-105485-koreyst)來建立此儲存庫和課程,支援 Python3、.NET、Node.js 及 Java 開發。相關設定定義在此儲存庫根目錄下 `.devcontainer/` 資料夾中的 `devcontainer.json` 檔案。 - -要啟動開發容器,請在[GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst)(雲端執行環境)或[Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst)(本地端執行環境)中啟動。詳細說明請參考[這份文件](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst),了解 VS Code 中開發容器的運作方式。 - -> [!TIP] -> 我們建議使用 GitHub Codespaces 以快速且輕鬆地開始。它為個人帳號提供相當慷慨的[免費使用額度](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst)。您也可以設定[逾時](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst),自動停止或刪除閒置的 codespaces,以最大化使用額度。 - -## 1. 執行作業 - -每堂課都會有 _選擇性_ 的作業,可能會以一種或多種程式語言提供,包括 Python、.NET/C#、Java 及 JavaScript/TypeScript。本節提供執行這些作業的一般指引。 - -### 1.1 Python 作業 - -Python 作業會以應用程式(`.py` 檔案)或 Jupyter 筆記本(`.ipynb` 檔案)形式提供。 -- 若要執行筆記本,請在 Visual Studio Code 中開啟,然後點選右上角的 _Select Kernel_,選擇預設的 Python 3 選項。接著即可使用 _Run All_ 執行整個筆記本。 -- 若要從命令列執行 Python 應用程式,請依照作業的具體指示,確保選擇正確的檔案並提供所需的參數。 - -## 2. 設定服務提供者 - -作業**可能**會設定為透過支援的服務提供者(如 OpenAI、Azure 或 Hugging Face)連接一個或多個大型語言模型(LLM)部署。這些服務提供一個可程式化存取的 _託管端點_(API),需要使用正確的憑證(API 金鑰或令牌)。本課程中,我們會討論以下提供者: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst),包含多種模型,核心為 GPT 系列。 - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst),專注於企業級的 OpenAI 模型。 - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst),提供開源模型及推理伺服器。 - -**您需要使用自己的帳號來完成這些練習**。作業為選擇性,您可以根據興趣設定其中一個、全部或不設定任何提供者。以下是註冊的相關說明: - -| 註冊 | 費用 | API 金鑰 | Playground | 備註 | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst) | [價格](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst) | [專案金鑰](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [無程式碼、網頁介面](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | 多種模型可用 | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst) | [價格](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst) | [SDK 快速入門](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Studio 快速入門](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [需事先申請存取權](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) | -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [價格](https://huggingface.co/pricing) | [存取令牌](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst) | [Hugging Chat 模型有限](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -請依照以下指示,為此儲存庫設定不同的提供者。需要特定提供者的作業檔名會包含以下標籤之一: - - `aoai` - 需要 Azure OpenAI 端點與金鑰 - - `oai` - 需要 OpenAI 端點與金鑰 - - `hf` - 需要 Hugging Face 令牌 - -您可以設定其中一個、全部或不設定。缺少憑證的相關作業會直接報錯。 - -### 2.1 建立 `.env` 檔案 - -假設您已閱讀上述指引,並已在相關提供者註冊,取得所需的認證憑證(API_KEY 或令牌)。若是 Azure OpenAI,則假設您已部署有效的 Azure OpenAI 服務(端點),並至少部署一個 GPT 模型用於聊天完成。 - -接下來請設定您的**本地環境變數**,步驟如下: - -1. 在根目錄找到 `.env.copy` 檔案,內容應類似: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. 使用以下指令複製該檔案為 `.env`。此檔案已被加入 `.gitignore`,可確保秘密資訊安全。 - - ```bash - cp .env.copy .env - ``` - -3. 按下一節說明,填入對應的值(替換 `=` 右側的佔位符)。 - -3. (選擇性)若您使用 GitHub Codespaces,可將環境變數儲存為與此儲存庫關聯的 _Codespaces secrets_,這樣就不必在本地建立 `.env` 檔案。**但請注意,此選項僅適用於 GitHub Codespaces。** 若使用 Docker Desktop,仍需建立 `.env` 檔案。 - -### 2.2 填寫 `.env` 檔案 - -快速了解變數名稱及其代表意義: - -| 變數名稱 | 說明 | -| :--- | :--- | -| HUGGING_FACE_API_KEY | 您在 Hugging Face 個人資料中設定的使用者存取令牌 | -| OPENAI_API_KEY | 用於非 Azure OpenAI 端點的授權金鑰 | -| AZURE_OPENAI_API_KEY | 用於 Azure OpenAI 服務的授權金鑰 | -| AZURE_OPENAI_ENDPOINT | Azure OpenAI 資源的部署端點 | -| AZURE_OPENAI_DEPLOYMENT | _文字生成_ 模型的部署名稱 | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | _文字嵌入_ 模型的部署名稱 | -| | | - -注意:最後兩個 Azure OpenAI 變數分別代表聊天完成(文字生成)和向量搜尋(嵌入)模型的預設部署。設定說明會在相關作業中提供。 - -### 2.3 從 Azure 入口網站設定 - -Azure OpenAI 的端點與金鑰可在[Azure 入口網站](https://portal.azure.com?WT.mc_id=academic-105485-koreyst)找到,請從這裡開始: - -1. 前往[Azure 入口網站](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -2. 點選側邊欄(左側選單)的 **Keys and Endpoint** 選項 -3. 點選 **Show Keys**,您會看到 KEY 1、KEY 2 及 Endpoint -4. 將 KEY 1 的值填入 `AZURE_OPENAI_API_KEY` -5. 將 Endpoint 的值填入 `AZURE_OPENAI_ENDPOINT` - -接著,我們需要取得已部署模型的端點名稱: - -1. 點選 Azure OpenAI 資源側邊欄的 **Model deployments** 選項 -2. 在頁面中點選 **Manage Deployments** - -這會帶您到 Azure OpenAI Studio 網站,接下來會找到其他所需的值。 - -### 2.4 從 Azure OpenAI Studio 設定 - -1. 依照上述步驟,從您的資源進入 [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) -2. 點選左側的 **Deployments** 標籤,查看目前已部署的模型 -3. 若尚未部署所需模型,請使用 **Create new deployment** 來部署 -4. 您需要一個 _文字生成_ 模型,我們推薦:**gpt-35-turbo** -5. 您需要一個 _文字嵌入_ 模型,我們推薦:**text-embedding-ada-002** - -接著更新環境變數,填入您所使用的 _Deployment name_。通常這名稱與模型名稱相同,除非您有特別更改。例如: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**完成後別忘了儲存 .env 檔案**。接著即可關閉檔案,回到執行筆記本的指示。 - -### 2.5 從 OpenAI 個人頁面設定 - -您的 OpenAI API 金鑰可在您的 [OpenAI 帳號](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst)中找到。若尚未擁有帳號,可註冊並建立 API 金鑰。取得金鑰後,填入 `.env` 檔案中的 `OPENAI_API_KEY` 變數。 - -### 2.6 從 Hugging Face 個人頁面設定 - -您的 Hugging Face 令牌可在個人頁面中的[存取令牌](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst)找到。請勿公開或分享這些令牌。建議為此專案建立新的令牌,並將其填入 `.env` 檔案中的 `HUGGING_FACE_API_KEY` 變數。 -_注意:_ 這技術上不是 API 金鑰,但用於認證,因此為保持一致性,我們仍使用此命名方式。 - -**免責聲明**: -本文件係使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於確保翻譯的準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或誤釋負責。 \ No newline at end of file diff --git a/translations/tw/04-prompt-engineering-fundamentals/README.md b/translations/tw/04-prompt-engineering-fundamentals/README.md index 69116193c..0137054f5 100644 --- a/translations/tw/04-prompt-engineering-fundamentals/README.md +++ b/translations/tw/04-prompt-engineering-fundamentals/README.md @@ -1,459 +1,15 @@ - -# Prompt Engineering Fundamentals - -[![Prompt Engineering Fundamentals](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.tw.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## 介紹 -本單元涵蓋在生成式 AI 模型中創建有效提示的基本概念與技巧。你如何撰寫給大型語言模型(LLM)的提示同樣重要。精心設計的提示能帶來更高品質的回應。但到底什麼是「提示」和「提示工程」?我該如何改進送給 LLM 的提示輸入?這些問題將在本章及下一章中嘗試解答。 - -生成式 AI 能根據使用者需求創造新內容(例如文字、圖片、音訊、程式碼等)。它透過像 OpenAI 的 GPT(「生成式預訓練轉換器」)系列這類大型語言模型來實現,這些模型經過自然語言與程式碼的訓練。 - -使用者現在可以用熟悉的對話方式與這些模型互動,無需任何技術背景或訓練。這些模型是基於「提示」的——使用者輸入文字(提示),模型回傳 AI 回應(完成)。使用者可以透過多輪對話不斷調整提示,直到回應符合預期。 - -「提示」成為生成式 AI 應用的主要程式介面,指示模型該做什麼,並影響回應品質。「提示工程」是一個快速成長的領域,專注於設計與優化提示,以大規模提供穩定且高品質的回應。 - -## 學習目標 - -本課程將介紹什麼是提示工程、為何重要,以及如何為特定模型和應用目標打造更有效的提示。我們將理解提示工程的核心概念與最佳實務,並學習如何在互動式 Jupyter 筆記本「沙盒」環境中,將這些概念應用於實例。 - -完成本課程後,你將能夠: - -1. 解釋什麼是提示工程及其重要性。 -2. 描述提示的組成部分及其用途。 -3. 學習提示工程的最佳實務與技巧。 -4. 使用 OpenAI 端點,將所學技巧應用於實例。 - -## 關鍵詞彙 - -提示工程:設計與優化輸入,以引導 AI 模型產生期望輸出的實務。 -分詞(Tokenization):將文字轉換成模型能理解與處理的較小單位(稱為「詞元」)的過程。 -指令微調大型語言模型(Instruction-Tuned LLMs):經過特定指令微調,以提升回應準確性與相關性的 LLM。 - -## 學習沙盒 - -提示工程目前更像是一門藝術而非科學。提升直覺的最佳方式是多加練習,採用結合應用領域專業知識、推薦技巧與模型特定優化的試錯方法。 - -本課程附帶的 Jupyter 筆記本提供一個沙盒環境,讓你能隨時嘗試所學內容,或作為課程結尾的程式挑戰。執行練習需要: - -1. **Azure OpenAI API 金鑰**——已部署 LLM 的服務端點。 -2. **Python 執行環境**——用於執行筆記本。 -3. **本地環境變數**——請先完成[設定](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst)步驟。 - -筆記本內建入門練習,但鼓勵你自行新增 _Markdown_(說明)與 _Code_(提示請求)區塊,嘗試更多範例或想法,培養提示設計的直覺。 - -## 圖解指南 - -想先了解本課程涵蓋的整體架構嗎?請參考這份圖解指南,讓你掌握主要主題與每個主題的關鍵重點。課程路線圖將帶你從理解核心概念與挑戰,進而學習相關提示工程技巧與最佳實務。請注意,指南中的「進階技巧」部分是指本課程下一章的內容。 - -![Illustrated Guide to Prompt Engineering](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.tw.png) - -## 我們的新創公司 - -現在,讓我們談談這個主題如何與我們的新創使命相關——[將 AI 創新帶入教育](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst)。我們希望打造 AI 驅動的個人化學習應用,思考不同使用者如何「設計」提示: - -- **管理者**可能會請 AI _分析課程資料,找出內容缺口_。AI 可總結結果或用程式碼視覺化。 -- **教育者**可能會請 AI _為特定對象與主題生成教案_。AI 可依指定格式建立個人化計畫。 -- **學生**可能會請 AI _輔導他們學習困難科目_。AI 現在能依學生程度提供課程、提示與範例。 - -這只是冰山一角。請參考由教育專家策劃的開源提示庫 [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst),了解更多可能性!_試著在沙盒或 OpenAI Playground 執行這些提示,看看結果如何!_ - - - -## 什麼是提示工程? - -我們從定義 **提示工程** 開始,指的是為特定應用目標與模型,設計與優化文字輸入(提示),以提供穩定且高品質回應(完成)的過程。我們可以將其視為兩步驟: - -- 為特定模型與目標 _設計_ 初始提示 -- 反覆 _優化_ 提示以提升回應品質 - -這必然是一個試錯過程,需要使用者的直覺與努力才能達到最佳結果。那為什麼它重要?要回答這問題,我們先了解三個概念: - -- _分詞_ = 模型如何「看見」提示 -- _基礎 LLM_ = 基礎模型如何「處理」提示 -- _指令微調 LLM_ = 模型如何「理解任務」 - -### 分詞(Tokenization) - -LLM 將提示視為一連串的 _詞元_,不同模型(或同一模型的不同版本)可能會以不同方式分詞同一提示。由於 LLM 是以詞元(而非原始文字)訓練,提示的分詞方式直接影響生成回應的品質。 - -想了解分詞如何運作,可以試試像下方的 [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) 工具。將你的提示貼上,觀察它如何被轉換成詞元,特別注意空白字元與標點符號的處理。此範例使用較舊的 LLM(GPT-3),用較新模型測試可能會有不同結果。 - -![Tokenization](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.tw.png) - -### 概念:基礎模型 - -提示分詞後,["基礎 LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst)(或稱基礎模型)的主要功能是預測詞元序列中的下一個詞元。由於 LLM 以龐大文字資料集訓練,能掌握詞元間的統計關係,並以一定信心做出預測。請注意,它們不理解提示或詞元的「意義」,只看到可「完成」的模式,並持續預測直到使用者中止或達成預設條件。 - -想看看基於提示的完成如何運作?將上述提示輸入 Azure OpenAI Studio 的 [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst),使用預設設定。系統會將提示視為資訊請求,你應該會看到符合此情境的完成回應。 - -但如果使用者想要符合特定條件或任務目標的回應呢?這時就需要用到 _指令微調_ 的 LLM。 - -![Base LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.tw.png) - -### 概念:指令微調 LLM - -[指令微調 LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) 是在基礎模型上,透過範例或輸入/輸出對(例如多輪「訊息」)進行微調,這些範例包含明確指令,AI 回應會嘗試遵循這些指令。 - -此方法使用人類反饋強化學習(RLHF)等技術,訓練模型 _遵循指令_ 並 _從反饋中學習_,使回應更適合實際應用,且更符合使用者目標。 - -我們來試試——回到上方提示,將 _系統訊息_ 改為以下指令作為上下文: - -> _為二年級學生摘要你所提供的內容。結果保持一段文字,並附上 3-5 個重點條列。_ - -你會看到結果已調整為符合目標與格式。教育者現在可以直接將此回應用於課堂簡報。 - -![Instruction Tuned LLM Chat Completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.tw.png) - -## 為什麼我們需要提示工程? - -了解提示如何被 LLM 處理後,接著談談 _為什麼_ 需要提示工程。原因在於目前的 LLM 存在多項挑戰,使得 _可靠且一致的完成回應_ 不易達成,除非投入提示建構與優化的努力。例如: - -1. **模型回應具有隨機性。** _相同提示_ 在不同模型或版本間可能產生不同回應,甚至同一模型在不同時間也可能有差異。_提示工程技巧能幫助我們降低這些變異,提供更好的護欄_。 - -1. **模型可能捏造回應。** 模型是以 _龐大但有限_ 的資料集預訓練,對訓練範圍外的概念缺乏知識,可能產生不準確、虛構或與已知事實相矛盾的回應。_提示工程技巧幫助使用者識別並減輕這類捏造,例如要求 AI 提供引用或推理_。 - -1. **模型能力會有所不同。** 新一代模型功能更豐富,但也帶來成本與複雜度的獨特挑戰。_提示工程能協助我們發展最佳實務與工作流程,抽象化差異並適應模型特定需求,實現可擴展且無縫的應用_。 - -讓我們在 OpenAI 或 Azure OpenAI Playground 中實際體驗: - -- 用相同提示測試不同 LLM 部署(例如 OpenAI、Azure OpenAI、Hugging Face)——你有看到差異嗎? -- 用相同提示多次測試 _同一_ LLM 部署(例如 Azure OpenAI playground)——這些差異如何? - -### 捏造範例 - -在本課程中,我們用「**捏造**」一詞來描述 LLM 有時因訓練限制或其他因素,產生事實錯誤資訊的現象。你可能在文章或研究報告中聽過「幻覺(hallucinations)」這個詞,但我們強烈建議使用「捏造」,避免將機器行為擬人化,賦予人類特質。這也符合[負責任 AI 指南](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst)的用詞規範,避免使用在某些情境下可能具冒犯性或不包容的詞彙。 - -想了解捏造如何發生?想像一個提示指示 AI 生成不存在主題的內容(確保該主題不在訓練資料中)。例如——我嘗試了這個提示: -# 火星戰爭2076年課程計劃 - -## 課程目標 -- 了解2076年火星戰爭的背景與起因 -- 分析戰爭過程中的主要事件與策略 -- 探討戰爭對地球與火星社會的影響 -- 培養學生批判性思考與歷史分析能力 - -## 課程大綱 - -### 第一節:火星戰爭的背景 -- 火星殖民的歷史簡介 -- 地球與火星之間的政治與經濟緊張關係 -- 主要勢力與利益衝突 - -### 第二節:戰爭爆發與初期衝突 -- 戰爭爆發的導火線 -- 重要戰役與戰術分析 -- 雙方軍事技術與資源比較 - -### 第三節:戰爭中期與轉折點 -- 重大事件與關鍵人物介紹 -- 戰爭策略的變化與影響 -- 國際社會的反應與介入 - -### 第四節:戰爭結束與後果 -- 停戰協議與和平談判 -- 戰爭對火星殖民地的影響 -- 對地球政治與經濟的長遠影響 - -### 第五節:課堂討論與反思 -- 學生分組討論戰爭的道德與倫理問題 -- 分析戰爭教訓與未來可能的衝突預防 -- 發表個人見解與總結 - -## 教學資源 -- 相關歷史文獻與報告 -- 戰爭地圖與時間軸 -- 多媒體影片與紀錄片片段 -- 模擬戰爭策略遊戲 - -## 評量方式 -- 課堂參與與討論表現 -- 小組報告與簡報 -- 期末寫作報告:分析火星戰爭的歷史意義與啟示 -網路搜尋顯示有關火星戰爭的虛構故事(例如電視劇或書籍)存在,但沒有發生在2076年的相關內容。常識也告訴我們,2076年是未來的時間,因此不可能與真實事件有關。 - -那麼,當我們用不同的LLM供應商執行這個提示時會發生什麼? - -> **回應 1**:OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.tw.png) - -> **回應 2**:Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.tw.png) - -> **回應 3**:Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.tw.png) - -如預期,每個模型(或模型版本)因隨機行為和模型能力差異,產生略有不同的回應。例如,一個模型的目標對象是八年級學生,而另一個則假設是高中生。但這三個模型都生成了可能讓不知情使用者相信該事件是真實的回應。 - -像是 _metaprompting_ 和 _temperature configuration_ 這類提示工程技術,能在某種程度上減少模型的虛構內容。新的提示工程 _架構_ 也將新工具和技術無縫整合到提示流程中,以緩解或降低這些影響。 - -## 案例研究:GitHub Copilot - -讓我們以一個案例研究來結束本節,了解提示工程如何應用於真實世界的解決方案:[GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst)。 - -GitHub Copilot 是你的「AI 配對程式設計師」——它將文字提示轉換成程式碼補全,並整合在你的開發環境中(例如 Visual Studio Code),提供無縫的使用體驗。根據以下一系列部落格的記錄,最早版本是基於 OpenAI Codex 模型,工程師很快意識到需要微調模型並開發更好的提示工程技術,以提升程式碼品質。今年七月,他們[推出了超越 Codex 的改良 AI 模型](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst),提供更快速的建議。 - -請依序閱讀這些文章,追蹤他們的學習歷程。 - -- **2023年5月** | [GitHub Copilot 在理解你的程式碼方面變得更好](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **2023年5月** | [GitHub 內部:與 GitHub Copilot 背後的 LLMs 合作](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **2023年6月** | [如何為 GitHub Copilot 撰寫更好的提示](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **2023年7月** | [GitHub Copilot 以改良 AI 模型超越 Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **2023年7月** | [開發者的提示工程與 LLM 指南](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **2023年9月** | [如何打造企業級 LLM 應用:GitHub Copilot 的經驗分享](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -你也可以瀏覽他們的[工程部落格](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst),閱讀更多像是[這篇](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst)的文章,展示這些模型和技術如何被 _應用_ 於推動真實世界的應用。 - ---- - - - -## 提示構建 - -我們已經了解為什麼提示工程很重要,現在讓我們理解提示是如何 _構建_ 的,這樣才能評估不同技術以設計更有效的提示。 - -### 基本提示 - -先從基本提示開始:一個純文字輸入送給模型,沒有其他上下文。以下是一個例子——當我們將美國國歌的前幾個字送到 OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst) 時,它會立即 _補全_ 後續幾行,展示基本的預測行為。 - -| 提示(輸入) | 補全(輸出) | -| :----------------- | :--------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | 聽起來你正在開始唱「星條旗永不落」的歌詞,美國的國歌。完整歌詞是... | - -### 複雜提示 - -現在讓我們在基本提示中加入上下文和指令。[Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) 允許我們將複雜提示構建為一組 _訊息_,包含: - -- 反映 _使用者_ 輸入和 _助理_ 回應的輸入/輸出對。 -- 設定助理行為或個性的系統訊息。 - -請求現在呈現如下形式,其中 _分詞_ 有效捕捉上下文和對話中的相關資訊。改變系統上下文對補全品質的影響,與使用者輸入同樣重要。 - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### 指令提示 - -在上述範例中,使用者提示是簡單的文字查詢,可解讀為資訊請求。使用 _指令_ 提示時,我們可以用文字更詳細地指定任務,給 AI 更明確的指引。以下是一個例子: - -| 提示(輸入) | 補全(輸出) | 指令類型 | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------- | :------------------ | -| Write a description of the Civil War | _回傳一段簡短描述_ | 簡單 | -| Write a description of the Civil War. Provide key dates and events and describe their significance | _回傳一段描述,接著列出重要事件日期及說明_ | 複雜 | -| Write a description of the Civil War in 1 paragraph. Provide 3 bullet points with key dates and their significance. Provide 3 more bullet points with key historical figures and their contributions. Return the output as a JSON file | _回傳更詳盡內容,格式為可複製貼上並驗證的 JSON 檔案_ | 複雜。格式化。 | - -## 主要內容 - -在上述範例中,提示仍相當開放,讓 LLM 決定其預訓練資料中哪些部分相關。使用 _主要內容_ 設計模式時,輸入文字分為兩部分: - -- 指令(動作) -- 相關內容(影響動作) - -以下是一個例子,指令是「用兩句話摘要這段內容」。 - -| 提示(輸入) | 補全(輸出) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. It is named after the Roman god Jupiter.[19] When viewed from Earth, Jupiter can be bright enough for its reflected light to cast visible shadows,[20] and is on average the third-brightest natural object in the night sky after the Moon and Venus.
**Summarize this in 2 short sentences** | 木星是太陽系中第五顆行星,也是最大的一顆。它是氣態巨星,質量是太陽的千分之一,但比其他所有行星質量總和還多兩倍半,並且是夜空中肉眼可見最明亮的天體之一。 | - -主要內容段落可用多種方式來驅動更有效的指令: - -- **範例** — 不直接告訴模型要做什麼,而是給它範例,讓它推斷模式。 -- **提示** — 在指令後加上「提示」,引導模型產生更相關的回應。 -- **範本** — 可重複使用的提示「配方」,帶有可用資料自訂的佔位符(變數),適用於特定用例。 - -接下來讓我們實際看看這些用法。 - -### 使用範例 - -這種方法是用主要內容「餵給模型」一些期望輸出的範例,讓它推斷出想要的輸出模式。根據範例數量,我們有零次提示、一次提示、少次提示等。 - -提示現在包含三個部分: - -- 任務描述 -- 幾個期望輸出的範例 -- 新範例的開始(隱含任務描述) - -| 學習類型 | 提示(輸入) | 補全(輸出) | -| :--------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------- | -| 零次提示 | "The Sun is Shining". Translate to Spanish | "El Sol está brillando". | -| 一次提示 | "The Sun is Shining" => "El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| 少次提示 | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketball | -| | | | - -注意零次提示中必須明確指示「翻譯成西班牙語」,但一次提示中則由範例推斷。少次提示則展示了多個範例如何幫助模型更準確推斷,且不需額外指令。 - -### 提示線索 - -另一種使用主要內容的技巧是提供 _線索_ 而非範例。在這種情況下,我們用一段反映期望回應格式的片段「啟動」模型,模型便會「接收線索」並沿著該方向繼續。 - -| 線索數量 | 提示(輸入) | 補全(輸出) | -| :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 0 | Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. - -**Summarize This** | 木星是太陽系中最大的行星,位於太陽的第五顆行星。它是一顆氣體巨星,質量約為太陽的千分之一,但重量超過其他所有行星的總和。古代文明早已認識木星,且它在夜空中非常容易被看見。 | -| 1 | 木星是太陽系中第五顆行星,也是最大的行星。它是一顆氣體巨星,質量約為太陽的千分之一,但比太陽系中其他所有行星的總和還要重兩倍半。木星是夜空中肉眼可見的最亮天體之一,早在有文字記錄之前的古代文明就已知曉它。
**Summarize This**
我們學到的是木星 | 是太陽系中第五顆行星,也是最大的行星。它是一顆氣體巨星,質量約為太陽的千分之一,但比其他所有行星的總和還要重兩倍半。它肉眼可見,且自古代以來就為人所知。 | -| 2 | 木星是太陽系中第五顆行星,也是最大的行星。它是一顆氣體巨星,質量約為太陽的千分之一,但比太陽系中其他所有行星的總和還要重兩倍半。木星是夜空中肉眼可見的最亮天體之一,早在有文字記錄之前的古代文明就已知曉它。
**Summarize This**
我們學到的三大重點: | 1. 木星是太陽系中第五顆行星,也是最大的行星。
2. 它是一顆氣體巨星,質量約為太陽的千分之一...
3. 木星自古代以來就能用肉眼看見... | -| | | | - -### Prompt Templates - -提示範本是一種 _預先定義好的提示配方_,可以儲存並在需要時重複使用,以推動更一致且大規模的使用者體驗。最簡單的形式,它就是一組提示範例,例如[OpenAI 的這個範例](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst),提供互動式提示元件(使用者與系統訊息)以及 API 請求格式,方便重複使用。 - -在更複雜的形式中,如[LangChain 的範例](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst),它包含了 _佔位符_,可以用來替換來自各種來源的資料(使用者輸入、系統上下文、外部資料來源等),以動態生成提示。這讓我們能建立一個可重複使用的提示庫,**以程式化方式**推動一致的使用者體驗。 - -最後,範本的真正價值在於能創建並發佈 _垂直應用領域的提示庫_,這些提示範本會根據特定應用的上下文或範例進行 _優化_,使回應對目標使用者更具相關性與準確性。[Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) 倉庫就是這種做法的絕佳範例,專注於教育領域,強調課程規劃、課程設計、學生輔導等核心目標。 - -## Supporting Content - -如果我們把提示建構視為包含指令(任務)和目標(主要內容),那麼 _次要內容_ 就像是額外的上下文,用來**影響輸出結果**。它可能是調整參數、格式指示、主題分類等,有助於模型 _調整_ 回應以符合預期的使用者目標或期望。 - -舉例來說:給定一份包含豐富元資料(名稱、描述、等級、標籤、講師等)的課程目錄: - -- 我們可以定義一個指令:「總結 2023 年秋季的課程目錄」 -- 使用主要內容提供幾個期望輸出的範例 -- 使用次要內容標示出最重要的五個「標籤」 - -這樣模型就能以範例中展示的格式提供摘要;若結果包含多個標籤,則會優先考慮次要內容中標示的五個標籤。 - ---- - - - -## Prompting Best Practices - -既然我們知道如何 _建構_ 提示,就可以開始思考如何 _設計_ 它們以符合最佳實務。我們可以從兩個面向來看:擁有正確的 _心態_ 和運用合適的 _技巧_。 - -### Prompt Engineering Mindset - -提示工程是一個反覆試驗的過程,請記住三個大方向: - -1. **領域理解很重要。** 回應的準確性與相關性取決於應用或使用者所處的 _領域_。運用你的直覺和領域專業來 **進一步客製化技巧**。例如,在系統提示中定義 _領域專屬的角色設定_,或在使用者提示中使用 _領域專屬範本_。提供反映領域上下文的次要內容,或用 _領域專屬的提示與範例_ 引導模型朝熟悉的使用模式。 - -2. **模型理解很重要。** 我們知道模型本質上是隨機的,但不同模型的訓練資料(預訓練知識)、功能(API 或 SDK 提供的能力)及優化內容類型(程式碼、圖片、文字等)都可能不同。了解你所使用模型的優勢與限制,並利用這些知識來 _優先安排任務_ 或建立 _針對模型能力優化的客製範本_。 - -3. **反覆與驗證很重要。** 模型和提示工程技術都在快速演進。作為領域專家,你可能有其他特定應用的背景或標準,這些不一定適用於更廣泛的社群。利用提示工程工具與技巧「快速啟動」提示建構,然後用你的直覺和領域專業反覆驗證結果。記錄你的見解並建立一個 **知識庫**(例如提示庫),讓其他人能以此為新基準,加速未來的迭代。 - -## Best Practices - -接下來看看 [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) 和 [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst) 實務者推薦的常見最佳做法。 - -| 事項 | 原因 | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 評估最新模型 | 新一代模型通常功能更強、品質更好,但成本可能較高。評估其影響後,再決定是否遷移。 | -| 分開指令與上下文 | 確認你的模型或服務提供者是否定義了用來區分指令、主要與次要內容的 _分隔符_,這有助於模型更精確地分配權重給各個詞元。 | -| 具體且清楚 | 提供更多關於期望上下文、結果、長度、格式、風格等細節,能提升回應的品質與一致性。將這些做法記錄在可重用的範本中。 | -| 詳細描述並使用範例 | 模型通常對「示範教學」的方式反應更好。先用「零次學習」(zero-shot)給出指令(無範例),再用「少次學習」(few-shot)提供幾個期望輸出的範例作為精煉。也可使用類比說明。 | -| 使用提示詞引導完成 | 透過給模型一些開頭詞或片語,幫助它從這些線索開始產生回應,朝向期望結果。 | -| 重複強調 | 有時需要對模型重複指令。可在主要內容前後都給指令,或同時使用指令與提示詞等。反覆嘗試並驗證什麼方法有效。 | -| 順序很重要 | 呈現資訊給模型的順序可能影響輸出結果,尤其在學習範例中,因為模型有近期偏好。嘗試不同順序找出最佳方式。 | -| 給模型「退路」 | 提供模型一個 _備用_ 回應,當它無法完成任務時可使用,能降低模型產生錯誤或捏造回應的機率。 | -| | | - -如同任何最佳實務,請記得根據模型、任務與領域不同,_你的情況可能有所差異_。將這些作為起點,持續迭代找出最適合你的做法。隨著新模型與工具問世,持續重新評估你的提示工程流程,重點放在流程可擴展性與回應品質。 - - - -## Assignment - -恭喜你完成本課程!現在是時候用實際範例來測試這些概念與技巧了! - -這次作業會使用一個 Jupyter Notebook,裡面有你可以互動完成的練習。你也可以自行在 Notebook 裡新增 Markdown 與程式碼區塊,探索更多想法與技巧。 - -### 開始前,先 fork 這個 repo,然後 - -- (推薦)啟動 GitHub Codespaces -- (或)將 repo 複製到本地端,並用 Docker Desktop 運行 -- (或)用你偏好的 Notebook 執行環境開啟 Notebook - -### 接著,設定環境變數 - -- 將 repo 根目錄的 `.env.copy` 複製為 `.env`,並填入 `AZURE_OPENAI_API_KEY`、`AZURE_OPENAI_ENDPOINT` 和 `AZURE_OPENAI_DEPLOYMENT`。完成後回到[學習沙盒章節](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals)了解如何操作。 - -### 然後,打開 Jupyter Notebook - -- 選擇執行核心。如果使用前兩種方式,直接選擇開發容器提供的預設 Python 3.10.x 核心即可。 - -你已準備好執行練習。請注意,這裡沒有「對錯」答案,重點是透過反覆嘗試探索不同選項,並建立對特定模型與應用領域有效方法的直覺。 - -_因此本課程沒有程式碼解答區塊。Notebook 中會有標題為「My Solution:」的 Markdown 區塊,展示一個範例輸出供參考。_ - - - -## Knowledge check - -以下哪一個提示符合合理的最佳實務? - -1. 顯示一張紅色汽車的圖片 -2. 顯示一張紅色 Volvo XC90 汽車停在懸崖邊夕陽下的圖片 -3. 顯示一張紅色 Volvo XC90 汽車的圖片 - -答:2 是最佳提示,因為它提供了「什麼」的細節,並具體描述(不只是任何車,而是特定品牌與車型),還描述了整體場景。3 次之,因為也包含不少描述。 - -## 🚀 Challenge - -試試看用提示詞技巧完成句子:「顯示一張紅色 Volvo 汽車的圖片,並且……」。模型會怎麼回應?你會如何改進它? - -## Great Work! Continue Your Learning - -想了解更多提示工程的概念?請前往[進階學習頁面](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst),尋找更多優質資源。 - -接著前往第 5 課,我們將探討[進階提示技巧](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**免責聲明**: -本文件係使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們力求準確,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或誤譯負責。 \ No newline at end of file + + + + + + + diff --git a/translations/tw/09-building-image-applications/README.md b/translations/tw/09-building-image-applications/README.md index ef7b847c2..4854bdb4d 100644 --- a/translations/tw/09-building-image-applications/README.md +++ b/translations/tw/09-building-image-applications/README.md @@ -1,475 +1,12 @@ - -# 建立影像生成應用程式 - -[![建立影像生成應用程式](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.tw.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -大型語言模型不僅能生成文字,也能從文字描述生成影像。影像作為一種媒介,在醫療科技、建築、旅遊、遊戲開發等多個領域都非常有用。本章節將介紹兩個最受歡迎的影像生成模型:DALL-E 和 Midjourney。 - -## 介紹 - -本課程將涵蓋: - -- 影像生成及其應用價值。 -- DALL-E 和 Midjourney 是什麼,以及它們的運作原理。 -- 如何建立一個影像生成應用程式。 - -## 學習目標 - -完成本課程後,你將能夠: - -- 建立影像生成應用程式。 -- 使用元提示(meta prompts)為應用程式設定界限。 -- 使用 DALL-E 和 Midjourney。 - -## 為什麼要建立影像生成應用程式? - -影像生成應用程式是探索生成式 AI 能力的絕佳方式。它們可以用於: - -- **影像編輯與合成**。你可以生成各種用途的影像,例如影像編輯和合成。 - -- **應用於多個產業**。也能用於醫療科技、旅遊、遊戲開發等多個產業的影像生成。 - -## 情境:Edu4All - -在本課程中,我們將繼續與新創公司 Edu4All 合作。學生們將為他們的評量創作影像,影像內容由學生決定,可能是他們自己的童話故事插圖、新角色設計,或幫助他們視覺化想法與概念。 - -例如,若 Edu4All 的學生在課堂上研究紀念碑,他們可能會生成如下影像: - -![Edu4All startup, class on monuments, Eiffel Tower](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.tw.png) - -使用的提示語為: - -> 「清晨陽光下,埃菲爾鐵塔旁的一隻狗」 - -## 什麼是 DALL-E 和 Midjourney? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) 和 [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) 是兩個最受歡迎的影像生成模型,能透過提示語生成影像。 - -### DALL-E - -先從 DALL-E 開始,它是一個從文字描述生成影像的生成式 AI 模型。 - -> [DALL-E 是由兩個模型組合而成,CLIP 與 diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst)。 - -- **CLIP** 是一個能從影像和文字中產生嵌入向量(數值化資料表示)的模型。 - -- **Diffused attention** 是一個從嵌入向量生成影像的模型。DALL-E 在大量影像與文字資料集上訓練,能根據文字描述生成影像。例如,DALL-E 可以生成戴帽子的貓或莫霍克髮型的狗的影像。 - -### Midjourney - -Midjourney 的運作方式與 DALL-E 類似,能根據文字提示生成影像。Midjourney 也能用提示語如「戴帽子的貓」或「莫霍克髮型的狗」來生成影像。 - -![Image generated by Midjourney, mechanical pigeon](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_圖片來源 Wikipedia,影像由 Midjourney 生成_ - -## DALL-E 和 Midjourney 的運作原理 - -首先介紹 [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst)。DALL-E 是基於 transformer 架構的生成式 AI 模型,採用 _自回歸 transformer_。 - -自回歸 transformer 定義了模型如何從文字描述生成影像,它一次生成一個像素,並利用已生成的像素來生成下一個像素。透過神經網路的多層處理,直到影像完成。 - -透過此過程,DALL-E 能控制影像中的屬性、物件、特徵等。不過,DALL-E 2 和 3 對生成影像的控制力更強。 - -## 建立你的第一個影像生成應用程式 - -那麼,建立影像生成應用程式需要什麼?你需要以下函式庫: - -- **python-dotenv**,強烈建議使用此函式庫將機密資訊存放在 _.env_ 檔案中,避免直接寫在程式碼裡。 -- **openai**,用來與 OpenAI API 互動的函式庫。 -- **pillow**,用於在 Python 中處理影像。 -- **requests**,協助發送 HTTP 請求。 - -1. 建立一個 _.env_ 檔案,內容如下: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - 你可以在 Azure 入口網站的「金鑰與端點」區段找到這些資訊。 - -1. 將上述函式庫列在 _requirements.txt_ 檔案中,如下: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. 接著,建立虛擬環境並安裝函式庫: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Windows 使用者可用以下指令建立並啟動虛擬環境: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. 在 _app.py_ 檔案中加入以下程式碼: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -讓我們來解釋這段程式碼: - -- 首先,我們匯入所需的函式庫,包括 OpenAI、dotenv、requests 和 Pillow。 - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- 接著,我們從 _.env_ 檔案載入環境變數。 - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- 然後,設定 OpenAI API 的端點、金鑰、版本與類型。 - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- 接著,我們生成影像: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - 上述程式碼會回傳一個 JSON 物件,內含生成影像的 URL。我們可以利用該 URL 下載影像並儲存成檔案。 - -- 最後,我們開啟影像並使用標準影像檢視器顯示它: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### 生成影像的詳細說明 - -讓我們更詳細地看生成影像的程式碼: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** 是用來生成影像的文字提示。這裡使用的提示是「兔子騎馬,手持棒棒糖,站在長滿水仙花的霧氣草地上」。 -- **size** 是生成影像的尺寸,這裡是 1024x1024 像素。 -- **n** 是生成影像的數量,這裡是兩張。 -- **temperature** 是控制生成式 AI 輸出隨機性的參數,介於 0 到 1 之間,0 表示輸出完全確定,1 表示完全隨機,預設值為 0.7。 - -接下來我們會介紹更多影像相關的功能。 - -## 影像生成的額外功能 - -到目前為止,你已經看到如何用幾行 Python 程式碼生成影像。但影像還能做更多事。 - -你還可以: - -- **進行編輯**。透過提供現有影像、遮罩和提示語,你可以修改影像。例如,你可以在影像的某個區域加上東西。想像我們的兔子影像,你可以幫兔子戴上帽子。做法是提供影像、遮罩(標示要修改的區域)和文字提示說明要做什麼。 - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - 原始影像只有兔子,最終影像則是兔子戴上帽子。 - -- **創造變體**。你可以拿現有影像,要求生成變體。要創造變體,你提供影像和文字提示,並用如下程式碼: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > 注意,這功能僅在 OpenAI 支援。 - -## 溫度參數 - -溫度是控制生成式 AI 輸出隨機性的參數,介於 0 到 1 之間,0 表示輸出確定,1 表示輸出隨機,預設為 0.7。 - -讓我們透過執行同一個提示兩次來看看溫度的影響: - -> 提示語:「兔子騎馬,手持棒棒糖,站在長滿水仙花的霧氣草地上」 - -![Bunny on a horse holding a lollipop, version 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.tw.png) - -現在再執行一次相同提示,看看是否會得到相同影像: - -![Generated image of bunny on horse](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.tw.png) - -如你所見,兩張影像相似但不完全相同。接著,我們將溫度調整為 0.1,看看會發生什麼: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### 調整溫度 - -我們試著讓輸出更確定。從前面兩張影像可見,第一張有兔子,第二張有馬,差異很大。 - -因此,我們將程式碼中的溫度設為 0,如下: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -執行後會得到以下兩張影像: - -- ![Temperature 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.tw.png) -- ![Temperature 0 , v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.tw.png) - -你可以明顯看到兩張影像更為相似。 - -## 如何用元提示為應用程式設定界限 - -透過我們的示範,已能為客戶生成影像,但我們需要為應用程式設定一些界限。 - -例如,我們不希望生成不適合工作場合或兒童觀看的影像。 - -這時可以使用 _元提示_(metaprompts)。元提示是用來控制生成式 AI 輸出的文字提示。例如,我們可以用元提示確保生成的影像適合工作場合或兒童觀看。 - -### 元提示如何運作? - -元提示是放在主要提示語之前的文字提示,用來控制模型輸出,並嵌入應用程式中以管理生成結果。它將提示輸入和元提示合併成一個完整的文字提示。 - -一個元提示範例如下: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -接著,我們來看看如何在示範中使用元提示。 - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -從上述提示可見,所有生成的影像都會考慮元提示的限制。 - -## 作業 - 讓學生開始動手 - -我們在課程一開始介紹了 Edu4All,現在是時候讓學生為他們的評量生成影像。 - -學生將為評量創作包含紀念碑的影像,紀念碑的選擇由學生決定。學生被鼓勵發揮創意,將這些紀念碑置於不同情境中。 - -## 解答 - -以下是一個可能的解答: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## 做得好!繼續學習 - -完成本課程後,歡迎參考我們的[生成式 AI 學習資源集](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst),持續提升你的生成式 AI 知識! - -接著前往第 10 課,我們將探討如何[使用低程式碼建立 AI 應用程式](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)。 - -**免責聲明**: -本文件係使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於確保翻譯的準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或誤釋負責。 \ No newline at end of file + + + + diff --git a/translations/tw/12-designing-ux-for-ai-applications/README.md b/translations/tw/12-designing-ux-for-ai-applications/README.md index 28fe2cf29..5e2a9baae 100644 --- a/translations/tw/12-designing-ux-for-ai-applications/README.md +++ b/translations/tw/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# 為 AI 應用設計使用者體驗 - -[![為 AI 應用設計使用者體驗](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.tw.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(點擊上方圖片觀看本課程影片)_ - -使用者體驗是開發應用程式時非常重要的一環。使用者需要能夠有效率地使用你的應用程式來完成任務。效率固然重要,但你也需要設計出人人都能使用的應用程式,讓它們具備「無障礙」特性。本章將聚焦於這個領域,幫助你設計出人們願意且能夠使用的應用程式。 - -## 介紹 - -使用者體驗是指使用者如何與特定產品或服務互動並使用它,無論是系統、工具或設計。在開發 AI 應用時,開發者不僅要確保使用者體驗有效,也要兼顧倫理。本課程將介紹如何打造符合使用者需求的人工智慧(AI)應用。 - -本課程將涵蓋以下主題: - -- 使用者體驗介紹與理解使用者需求 -- 為信任與透明度設計 AI 應用 -- 為協作與回饋設計 AI 應用 - -## 學習目標 - -完成本課程後,你將能夠: - -- 了解如何打造符合使用者需求的 AI 應用。 -- 設計促進信任與協作的 AI 應用。 - -### 先備知識 - -請花些時間閱讀更多關於[使用者體驗與設計思維](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst)的內容。 - -## 使用者體驗介紹與理解使用者需求 - -在我們虛構的教育新創公司中,有兩類主要使用者:教師與學生。這兩類使用者各有獨特需求。以使用者為中心的設計會優先考量使用者,確保產品對目標使用者來說是相關且有益的。 - -應用程式應該是**有用、可靠、無障礙且令人愉悅**,以提供良好的使用者體驗。 - -### 易用性 - -有用代表應用程式的功能符合其預期目的,例如自動化評分流程或產生複習用的抽認卡。自動化評分的應用程式應能根據預設標準,準確且有效率地為學生作業打分。類似地,產生複習抽認卡的應用程式應能根據資料創造相關且多樣的問題。 - -### 可靠性 - -可靠代表應用程式能持續且無誤地執行任務。然而,AI 和人類一樣並非完美,可能會出錯。應用程式可能會遇到錯誤或意外狀況,需要人為介入或修正。你會如何處理錯誤?本課程最後一節將介紹如何設計 AI 系統與應用以促進協作與回饋。 - -### 無障礙 - -無障礙代表將使用者體驗延伸至各種能力的使用者,包括身心障礙者,確保沒有人被排除在外。遵循無障礙指引與原則,讓 AI 解決方案更具包容性、易用且對所有使用者有益。 - -### 愉悅感 - -愉悅代表應用程式使用起來令人愉快。吸引人的使用者體驗能正面影響使用者,鼓勵他們持續使用應用程式,並提升商業收益。 - -![說明 AI 中使用者體驗考量的圖片](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.tw.png) - -並非所有挑戰都能靠 AI 解決。AI 是用來強化你的使用者體驗,無論是自動化手動任務,或是個人化使用者體驗。 - -## 為信任與透明度設計 AI 應用 - -建立信任在設計 AI 應用時至關重要。信任讓使用者有信心應用程式能完成工作、持續提供結果,且結果符合使用者需求。這方面的風險包括不信任與過度信任。不信任是指使用者對 AI 系統幾乎沒有信任,導致拒絕使用你的應用程式。過度信任則是使用者高估 AI 系統能力,過度依賴 AI。例如,過度信任自動評分系統可能導致教師不再仔細審核部分試卷,造成學生評分不公或錯失回饋與改進的機會。 - -確保信任成為設計核心的兩種方法是可解釋性與控制權。 - -### 可解釋性 - -當 AI 幫助做出決策,例如傳授知識給未來世代時,教師與家長必須了解 AI 如何做出決策。這就是可解釋性——理解 AI 應用如何做決策。設計可解釋性包括加入 AI 應用能做什麼的範例說明。例如,系統不只是顯示「開始使用 AI 教師」,而是改成:「使用 AI 幫你整理筆記,輕鬆複習。」 - -![展示 AI 應用中可解釋性的應用程式首頁](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.tw.png) - -另一個例子是 AI 如何使用使用者與個人資料。例如,擁有學生角色的使用者可能會有角色限制。AI 可能無法直接揭示答案,但能引導使用者思考如何解決問題。 - -![根據角色回覆問題的 AI](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.tw.png) - -可解釋性的另一個重要部分是簡化說明。學生與教師可能不是 AI 專家,因此應用程式能做什麼或不能做什麼的說明應該簡單易懂。 - -![簡化 AI 能力說明](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.tw.png) - -### 控制權 - -生成式 AI 促成 AI 與使用者的協作,例如使用者可以修改提示詞以獲得不同結果。此外,產生結果後,使用者應能修改結果,讓他們感受到掌控感。例如,使用 Bing 時,你可以根據格式、語氣和長度調整提示詞,並且可以對結果進行修改,如下圖所示: - -![Bing 搜尋結果,提供修改提示詞與結果的選項](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.tw.png) - -Bing 另一項讓使用者掌控應用程式的功能是可選擇是否讓 AI 使用其資料。以學校應用為例,學生可能想使用自己的筆記以及教師的資源作為複習材料。 - -![Bing 搜尋結果,提供修改提示詞與結果的選項](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.tw.png) - -> 設計 AI 應用時,刻意性是關鍵,確保使用者不會過度信任並對 AI 能力抱持不切實際的期待。一種做法是在提示詞與結果間製造摩擦,提醒使用者這是 AI,而非真人。 - -## 為協作與回饋設計 AI 應用 - -如前所述,生成式 AI 促成使用者與 AI 的協作。大多數互動是使用者輸入提示詞,AI 產生結果。如果結果錯誤,應用程式如何處理?AI 會責怪使用者,還是花時間解釋錯誤? - -AI 應用應設計成能接收並給予回饋。這不僅有助於 AI 系統改進,也能建立使用者信任。設計中應包含回饋迴路,例如對結果按讚或倒讚。 - -另一種處理方式是清楚溝通系統的能力與限制。當使用者提出超出 AI 能力的請求時,也應有相應處理方式,如下圖所示。 - -![提供回饋與錯誤處理](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.tw.png) - -系統錯誤在應用程式中很常見,例如使用者可能需要 AI 範圍外的資訊,或應用程式限制使用者可產生摘要的問題數量或科目。例如,一個只訓練於歷史與數學資料的 AI 應用,可能無法處理地理相關問題。為了減輕這種情況,AI 系統可以回應:「抱歉,我們的產品只訓練於以下科目……,無法回答您提出的問題。」 - -AI 應用並非完美,必然會犯錯。設計應用時,應確保有空間讓使用者回饋,並以簡單且易於理解的方式處理錯誤。 - -## 作業 - -請針對你目前開發的 AI 應用,考慮在應用中實作以下步驟: - -- **愉悅感:** 思考如何讓你的應用更令人愉快。你是否在各處加入說明?是否鼓勵使用者探索?你的錯誤訊息用詞如何? - -- **易用性:** 建置網頁應用時,確保應用能用滑鼠與鍵盤操作。 - -- **信任與透明度:** 不要完全信任 AI 及其結果,思考如何加入人工審核以驗證結果。並考慮實作其他促進信任與透明度的方法。 - -- **控制權:** 讓使用者掌控他們提供給應用的資料。實作讓使用者能選擇是否同意 AI 應用收集資料的機制。 - -## 持續學習! - -完成本課程後,請參考我們的[生成式 AI 學習資源集](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst),持續提升你的生成式 AI 知識! - -接著前往第 13 課,我們將探討如何[保護 AI 應用](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**免責聲明**: -本文件係使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於確保翻譯的準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或誤譯負責。 \ No newline at end of file + + + diff --git a/translations/tw/README.md b/translations/tw/README.md index 976a4a8f8..e698a608b 100644 --- a/translations/tw/README.md +++ b/translations/tw/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.tw.png) - -### 21堂課教你從零開始打造生成式 AI 應用所需的所有知識 - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 多語言支援 - -#### 透過 GitHub Action 支援(自動且隨時更新) - -[法文](../fr/README.md) | [西班牙文](../es/README.md) | [德文](../de/README.md) | [俄文](../ru/README.md) | [阿拉伯文](../ar/README.md) | [波斯文 (Farsi)](../fa/README.md) | [烏爾都文](../ur/README.md) | [中文 (簡體)](../zh/README.md) | [中文 (繁體,澳門)](../mo/README.md) | [中文 (繁體,香港)](../hk/README.md) | [中文 (繁體,台灣)](./README.md) | [日文](../ja/README.md) | [韓文](../ko/README.md) | [印地文](../hi/README.md) | [孟加拉文](../bn/README.md) | [馬拉地文](../mr/README.md) | [尼泊爾文](../ne/README.md) | [旁遮普文 (Gurmukhi)](../pa/README.md) | [葡萄牙文 (葡萄牙)](../pt/README.md) | [葡萄牙文 (巴西)](../br/README.md) | [義大利文](../it/README.md) | [波蘭文](../pl/README.md) | [土耳其文](../tr/README.md) | [希臘文](../el/README.md) | [泰文](../th/README.md) | [瑞典文](../sv/README.md) | [丹麥文](../da/README.md) | [挪威文](../no/README.md) | [芬蘭文](../fi/README.md) | [荷蘭文](../nl/README.md) | [希伯來文](../he/README.md) | [越南文](../vi/README.md) | [印尼文](../id/README.md) | [馬來文](../ms/README.md) | [他加祿文 (菲律賓語)](../tl/README.md) | [斯瓦希里文](../sw/README.md) | [匈牙利文](../hu/README.md) | [捷克文](../cs/README.md) | [斯洛伐克文](../sk/README.md) | [羅馬尼亞文](../ro/README.md) | [保加利亞文](../bg/README.md) | [塞爾維亞文 (西里爾字母)](../sr/README.md) | [克羅埃西亞文](../hr/README.md) | [斯洛維尼亞文](../sl/README.md) | [烏克蘭文](../uk/README.md) | [緬甸文](../my/README.md) - -# 生成式 AI 初學者課程(版本 3) - -透過 Microsoft Cloud Advocates 精心設計的 21 堂課,學習打造生成式 AI 應用的基礎知識。 - -## 🌱 入門指南 - -本課程共 21 堂課,每堂課涵蓋不同主題,您可以從任何一堂開始學習! - -課程分為「Learn」課程,解釋生成式 AI 的概念;以及「Build」課程,除了說明概念外,還會提供 **Python** 和 **TypeScript** 的程式碼範例(視情況而定)。 - -.NET 開發者請參考 [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -每堂課還包含「持續學習」單元,提供更多學習資源。 - -## 您需要準備的東西 -### 執行本課程程式碼,您可以使用以下任一服務: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **適用課程:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **適用課程:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **適用課程:** "oai-assignment" - -- 具備基本的 Python 或 TypeScript 知識會更有幫助 - \*完全初學者可參考這些 [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) 和 [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) 課程 -- 一個 GitHub 帳號,方便您[將整個 repo 分叉到自己的帳號](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) - -我們也準備了 **[課程環境設定](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** 課程,協助您完成開發環境的設定。 - -別忘了[為此 repo 加星標 (🌟)](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst),方便日後快速找到。 - -## 🧠 準備好部署了嗎? - -如果您想要更進階的程式碼範例,歡迎參考我們的 [生成式 AI 程式碼範例集](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst),提供 **Python** 和 **TypeScript** 版本。 - -## 🗣️ 與其他學習者交流、獲得支援 - -加入我們的[官方 Azure AI Foundry Discord 伺服器](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst),與其他學習者互動交流並獲得支援。 - -在我們的 [Azure AI Foundry 開發者論壇](https://aka.ms/azureaifoundry/forum)(GitHub)提出問題或分享產品回饋。 - -## 🚀 想創業嗎? - -註冊 [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst),即可獲得 **免費 OpenAI 點數**,以及最高 **15 萬美元的 Azure 點數補助**,用於透過 Azure OpenAI Services 存取 OpenAI 模型。 - -## 🙏 想幫忙嗎? - -有建議或發現拼字或程式碼錯誤嗎?歡迎[提出 issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst)或[送出 pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst)。 - -## 📂 每堂課包含: - -- 主題的簡短影片介紹 -- README 中的文字課程內容 -- 支援 Azure OpenAI 與 OpenAI API 的 Python 和 TypeScript 程式碼範例 -- 延伸學習資源連結 - -## 🗃️ 課程列表 - -| # | **課程連結** | **說明** | **影片** | **延伸學習** | -| --- | ----------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -| 00 | [課程環境設定](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 如何設定您的開發環境 | 影片即將推出 | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [生成式 AI 與大型語言模型介紹](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 了解什麼是生成式 AI 以及大型語言模型(LLMs)的運作原理 | [影片](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [探索與比較不同的 LLM](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 如何為您的使用案例選擇合適的模型 | [影片](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [負責任地使用生成式 AI](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 如何負責任地打造生成式 AI 應用 | [影片](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [理解提示工程基礎](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 實作提示工程的最佳實務 | [影片](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [創建進階提示](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 如何運用提示工程技巧提升提示效果 | [影片](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [建立文字生成應用程式](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **實作:** 使用 Azure OpenAI / OpenAI API 建立文字生成應用程式 | [影片](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [深入了解](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [建立聊天應用程式](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **實作:** 高效建立與整合聊天應用程式的技巧 | [影片](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [深入了解](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [建立搜尋應用程式與向量資料庫](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **實作:** 使用 Embeddings 進行資料搜尋的搜尋應用程式 | [影片](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [深入了解](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [建立影像生成應用程式](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **實作:** 影像生成應用程式 | [影片](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [深入了解](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [建立低程式碼 AI 應用程式](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **實作:** 使用低程式碼工具建立生成式 AI 應用程式 | [影片](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [深入了解](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [使用 Function Calling 整合外部應用程式](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **實作:** 什麼是 function calling 及其在應用程式中的使用情境 | [影片](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [深入了解](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [為 AI 應用程式設計使用者體驗](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 在開發生成式 AI 應用程式時如何應用 UX 設計原則 | [影片](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [深入了解](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [保護您的生成式 AI 應用程式](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** AI 系統面臨的威脅與風險,以及保護這些系統的方法 | [影片](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [深入了解](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [生成式 AI 應用程式的生命週期](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 管理 LLM 生命週期與 LLMOps 的工具與指標 | [影片](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [深入了解](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [檢索增強生成 (RAG) 與向量資料庫](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **實作:** 使用 RAG 框架從向量資料庫檢索 embeddings 的應用程式 | [影片](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [深入了解](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [開源模型與 Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **實作:** 使用 Hugging Face 上的開源模型建立應用程式 | [影片](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [深入了解](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI 代理人](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **實作:** 使用 AI Agent 框架建立應用程式 | [影片](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [深入了解](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [微調 LLMs](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 什麼是微調 LLMs、為什麼要微調以及如何微調 | [影片](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [深入了解](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [使用 SLMs 建構](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** 使用小型語言模型建構的優勢 | 影片即將推出 | [深入了解](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [使用 Mistral 模型建構](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** Mistral 系列模型的特色與差異 | 影片即將推出 | [深入了解](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [使用 Meta 模型建構](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **學習:** Meta 系列模型的特色與差異 | 影片即將推出 | [深入了解](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 特別感謝 - -特別感謝 [**John Aziz**](https://www.linkedin.com/in/john0isaac/) 創建所有 GitHub Actions 和工作流程 - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) 對每堂課程做出關鍵貢獻,提升學習者與程式碼體驗。 - -## 🎒 其他課程 - -我們團隊還製作了其他課程!歡迎參考: - -- [**全新** 初學者模型上下文協定](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [初學者 AI 代理人](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [使用 .NET 的生成式 AI 初學者課程](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [使用 JavaScript 的生成式 AI 初學者課程](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [機器學習初學者](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [資料科學初學者](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI 初學者](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [資安初學者](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [網頁開發初學者](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [物聯網初學者](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR 開發初學者](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [精通 GitHub Copilot 進行 AI 配對程式設計](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [精通 GitHub Copilot 針對 C#/.NET 開發者](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [選擇你自己的 Copilot 冒險](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**免責聲明**: -本文件係使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於確保翻譯的準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或誤釋負責。 \ No newline at end of file + + + + diff --git a/translations/uk/00-course-setup/01-setup-cloud.md b/translations/uk/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..05ea82b75 --- /dev/null +++ b/translations/uk/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/uk/00-course-setup/02-setup-local.md b/translations/uk/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..e5df902e7 --- /dev/null +++ b/translations/uk/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/uk/00-course-setup/03-providers.md b/translations/uk/00-course-setup/03-providers.md new file mode 100644 index 000000000..a06ee8498 --- /dev/null +++ b/translations/uk/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/uk/00-course-setup/README.md b/translations/uk/00-course-setup/README.md index 3fce46233..e4f7ef21c 100644 --- a/translations/uk/00-course-setup/README.md +++ b/translations/uk/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# Початок роботи з цим курсом - -Ми дуже раді, що ви розпочинаєте цей курс і побачите, що вас надихне створити за допомогою генеративного ШІ! - -Щоб забезпечити ваш успіх, на цій сторінці наведено кроки налаштування, технічні вимоги та інформацію про те, де можна отримати допомогу, якщо це буде потрібно. - -## Кроки налаштування - -Щоб почати проходити цей курс, вам потрібно виконати наступні кроки. - -### 1. Форкніть цей репозиторій - -[Зробіть форк усього цього репозиторію](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) у свій обліковий запис GitHub, щоб мати змогу змінювати код і виконувати завдання. Ви також можете [поставити зірочку (🌟) цьому репозиторію](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst), щоб легше знаходити його та пов’язані репозиторії. - -### 2. Створіть codespace - -Щоб уникнути проблем із залежностями під час запуску коду, ми рекомендуємо запускати цей курс у [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst). - -Це можна зробити, вибравши опцію `Code` у вашій форкнутій версії цього репозиторію та обравши опцію **Codespaces**. - -![Діалогове вікно з кнопками для створення codespace](../../../00-course-setup/images/who-will-pay.webp) - -### 3. Збереження ваших API ключів - -Забезпечення безпеки ваших API ключів дуже важливе при створенні будь-яких додатків. Ми рекомендуємо не зберігати API ключі безпосередньо у коді. Комітування таких даних у публічний репозиторій може призвести до проблем із безпекою та навіть небажаних витрат, якщо ними скористається зловмисник. -Ось покрокова інструкція, як створити файл `.env` для Python і додати `GITHUB_TOKEN`: - -1. **Перейдіть до каталогу вашого проєкту**: Відкрийте термінал або командний рядок і перейдіть до кореневої папки вашого проєкту, де ви хочете створити файл `.env`. - - ```bash - cd path/to/your/project - ``` - -2. **Створіть файл `.env`**: Використайте улюблений текстовий редактор, щоб створити новий файл з назвою `.env`. Якщо ви працюєте з командним рядком, можна використати `touch` (на системах Unix) або `echo` (на Windows): - - Unix-подібні системи: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **Відредагуйте файл `.env`**: Відкрийте `.env` у текстовому редакторі (наприклад, VS Code, Notepad++ або будь-якому іншому). Додайте наступний рядок, замінивши `your_github_token_here` на ваш реальний GitHub токен: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Збережіть файл**: Збережіть зміни та закрийте редактор. - -5. **Встановіть `python-dotenv`**: Якщо ви ще не встановили, потрібно додати пакет `python-dotenv`, щоб завантажувати змінні середовища з файлу `.env` у ваш Python-додаток. Це можна зробити за допомогою `pip`: - - ```bash - pip install python-dotenv - ``` - -6. **Завантажте змінні середовища у вашому Python-скрипті**: У вашому Python-скрипті використайте пакет `python-dotenv` для завантаження змінних середовища з файлу `.env`: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -Ось і все! Ви успішно створили файл `.env`, додали свій GitHub токен і завантажили його у ваш Python-додаток. - -## Як запускати локально на вашому комп’ютері - -Щоб запускати код локально на вашому комп’ютері, вам потрібно мати встановлену якусь версію [Python](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -Щоб скористатися репозиторієм, його потрібно клонувати: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -Після того, як усе буде готово, можете починати! - -## Додаткові кроки - -### Встановлення Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) — це легкий інсталятор для встановлення [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python, а також кількох пакетів. -Conda — це менеджер пакетів, який полегшує налаштування та перемикання між різними [віртуальними середовищами](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) Python і пакетами. Він також корисний для встановлення пакетів, яких немає у `pip`. - -Ви можете скористатися [інструкцією з встановлення Miniconda](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst). - -Після встановлення Miniconda потрібно клонувати [репозиторій](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (якщо ви ще цього не зробили). - -Далі потрібно створити віртуальне середовище. Для цього з Conda створіть новий файл середовища (_environment.yml_). Якщо ви працюєте у Codespaces, створіть його у каталозі `.devcontainer`, тобто `.devcontainer/environment.yml`. - -Заповніть файл середовища наступним фрагментом: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Якщо у вас виникають помилки при використанні conda, ви можете вручну встановити Microsoft AI Libraries за допомогою такої команди у терміналі. - -``` -conda install -c microsoft azure-ai-ml -``` - -Файл середовища визначає залежності, які нам потрібні. `` — це ім’я, яке ви хочете використати для свого Conda-середовища, а `` — версія Python, яку ви хочете використовувати, наприклад, `3` — це остання основна версія Python. - -Після цього ви можете створити своє Conda-середовище, виконавши наведені нижче команди у командному рядку/терміналі: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -Якщо виникнуть проблеми, зверніться до [інструкції з Conda середовищ](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst). - -### Використання Visual Studio Code з розширенням підтримки Python - -Для цього курсу ми рекомендуємо використовувати редактор [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) з встановленим [розширенням підтримки Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst). Проте це радше рекомендація, а не обов’язкова вимога. - -> **Примітка**: Відкривши репозиторій курсу у VS Code, у вас є можливість налаштувати проєкт у контейнері. Це можливо завдяки [спеціальному каталогу `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst), який є у репозиторії курсу. Про це буде більше пізніше. - -> **Примітка**: Після клонування та відкриття каталогу у VS Code, редактор автоматично запропонує встановити розширення підтримки Python. - -> **Примітка**: Якщо VS Code запропонує повторно відкрити репозиторій у контейнері, відхиліть це, щоб використовувати локально встановлену версію Python. - -### Використання Jupyter у браузері - -Ви також можете працювати над проєктом, використовуючи [Jupyter середовище](https://jupyter.org?WT.mc_id=academic-105485-koreyst) прямо у браузері. Як класичний Jupyter, так і [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) пропонують зручне середовище розробки з такими функціями, як автозаповнення, підсвічування коду тощо. - -Щоб запустити Jupyter локально, відкрийте термінал/командний рядок, перейдіть до каталогу курсу і виконайте: - -```bash -jupyter notebook -``` - -або - -```bash -jupyterhub -``` - -Це запустить інстанс Jupyter, а URL для доступу буде показано у вікні командного рядка. - -Після переходу за URL ви побачите структуру курсу і зможете відкривати будь-які файли `*.ipynb`. Наприклад, `08-building-search-applications/python/oai-solution.ipynb`. - -### Запуск у контейнері - -Альтернативою налаштуванню всього на вашому комп’ютері або у Codespace є використання [контейнера](../../../00-course-setup/). Спеціальна папка `.devcontainer` у репозиторії курсу дозволяє VS Code налаштувати проєкт у контейнері. Позаяк поза Codespaces це потребує встановлення Docker і, чесно кажучи, трохи складніше, ми рекомендуємо це лише тим, хто має досвід роботи з контейнерами. - -Один із найкращих способів захистити ваші API ключі при використанні GitHub Codespaces — це використання Codespace Secrets. Будь ласка, ознайомтеся з [інструкцією з керування секретами в Codespaces](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst), щоб дізнатися більше. - -## Уроки та технічні вимоги - -Курс містить 6 концептуальних уроків і 6 уроків з кодування. - -Для уроків з кодування ми використовуємо Azure OpenAI Service. Вам знадобиться доступ до Azure OpenAI service та API ключ для запуску цього коду. Ви можете подати заявку на доступ, [заповнивши цю форму](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -Поки ваша заявка обробляється, у кожному уроці з кодування також є файл `README.md`, де ви можете переглянути код і результати. - -## Використання Azure OpenAI Service вперше - -Якщо ви вперше працюєте з Azure OpenAI service, будь ласка, дотримуйтесь цієї інструкції, як [створити та розгорнути ресурс Azure OpenAI Service](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst). - -## Використання OpenAI API вперше - -Якщо ви вперше працюєте з OpenAI API, будь ласка, дотримуйтесь інструкції, як [створити та використовувати інтерфейс](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst). - -## Познайомтесь з іншими учнями - -Ми створили канали в нашому офіційному [AI Community Discord сервері](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) для знайомства з іншими учнями. Це чудовий спосіб налагодити зв’язки з іншими однодумцями — підприємцями, розробниками, студентами та всіма, хто хоче підвищити свій рівень у генеративному ШІ. - -[![Приєднатися до Discord каналу](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -Команда проєкту також буде на цьому Discord сервері, щоб допомагати учням. - -## Внесок у проєкт - -Цей курс є ініціативою з відкритим кодом. Якщо ви бачите можливості для покращення або помилки, будь ласка, створіть [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) або зареєструйте [GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -Команда проєкту відстежуватиме всі внески. Внесок у відкритий код — це чудовий спосіб розвивати кар’єру у генеративному ШІ. - -Більшість внесків вимагають вашої згоди з Contributor License Agreement (CLA), що підтверджує, що ви маєте право і дійсно надаєте нам права на використання вашого внеску. Детальніше дивіться на сайті [CLA, Contributor License Agreement](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Важливо: при перекладі тексту в цьому репозиторії, будь ласка, не використовуйте машинний переклад. Ми перевірятимемо переклади через спільноту, тому просимо братися за переклади лише тих мов, якими ви володієте. - -Коли ви надсилаєте pull request, CLA-бот автоматично визначить, чи потрібно вам надати CLA, і відповідно позначить PR (наприклад, міткою або коментарем). Просто дотримуйтесь інструкцій бота. Це потрібно зробити лише один раз для всіх репозиторіїв, які використовують наш CLA. - -Цей проєкт прийняв [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst). Для додаткової інформації прочитайте FAQ щодо Кодексу поведінки або звертайтеся на [Email opencode](opencode@microsoft.com) з будь-якими питаннями чи коментарями. - -## Почнемо - -Тепер, коли ви виконали всі необхідні кроки для проходження курсу, почнемо з [вступу до генеративного ШІ та великих мовних моделей (LLMs)](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**Відмова від відповідальності**: -Цей документ було перекладено за допомогою сервісу автоматичного перекладу [Co-op Translator](https://github.com/Azure/co-op-translator). Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ рідною мовою слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується звертатися до професійного людського перекладу. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу. \ No newline at end of file + + + + diff --git a/translations/uk/00-course-setup/SETUP.md b/translations/uk/00-course-setup/SETUP.md deleted file mode 100644 index a1c5cac59..000000000 --- a/translations/uk/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# Налаштування вашого середовища розробки - -Ми налаштували цей репозиторій і курс з використанням [контейнера для розробки](https://containers.dev?WT.mc_id=academic-105485-koreyst), який має універсальне середовище виконання, що підтримує розробку на Python3, .NET, Node.js та Java. Відповідна конфігурація визначена у файлі `devcontainer.json`, який знаходиться у папці `.devcontainer/` в корені цього репозиторію. - -Щоб активувати контейнер для розробки, запустіть його у [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (для хмарного середовища виконання) або у [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (для локального середовища). Детальніше про роботу контейнерів для розробки у VS Code читайте у [цьому посібнику](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst). - -> [!TIP] -> Рекомендуємо використовувати GitHub Codespaces для швидкого старту з мінімальними зусиллями. Він надає щедру [безкоштовну квоту використання](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) для персональних акаунтів. Налаштуйте [таймаути](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst), щоб зупиняти або видаляти неактивні codespaces і максимально ефективно використовувати квоту. - -## 1. Виконання завдань - -Кожен урок міститиме _необов’язкові_ завдання, які можуть бути надані однією або кількома мовами програмування, зокрема: Python, .NET/C#, Java та JavaScript/TypeScript. У цьому розділі наведено загальні рекомендації щодо виконання таких завдань. - -### 1.1 Завдання на Python - -Завдання на Python надаються у вигляді додатків (`.py` файли) або Jupyter ноутбуків (`.ipynb` файли). -- Щоб запустити ноутбук, відкрийте його у Visual Studio Code, потім натисніть _Select Kernel_ (у верхньому правому куті) і виберіть стандартний варіант Python 3. Тепер можна виконати _Run All_ для запуску всього ноутбука. -- Щоб запускати Python-додатки з командного рядка, дотримуйтесь інструкцій, специфічних для завдання, щоб вибрати правильні файли та передати необхідні аргументи. - -## 2. Налаштування провайдерів - -Завдання **можуть** бути налаштовані для роботи з одним або кількома розгортаннями великих мовних моделей (LLM) через підтримуваних провайдерів сервісів, таких як OpenAI, Azure або Hugging Face. Вони надають _хостингову кінцеву точку_ (API), до якої ми можемо програмно звертатися з правильними обліковими даними (API ключ або токен). У цьому курсі ми розглядаємо такі провайдери: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) з різноманітними моделями, включно з основною серією GPT. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) для моделей OpenAI з орієнтацією на корпоративне використання. - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) для відкритих моделей та сервера інференсу. - -**Для цих вправ вам знадобляться власні акаунти**. Завдання є необов’язковими, тож ви можете налаштувати одного, усіх або жодного з провайдерів залежно від ваших інтересів. Ось деякі рекомендації щодо реєстрації: - -| Реєстрація | Вартість | API ключ | Пісочниця | Коментарі | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst)| [Ціни](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst)| [Проєктні ключі](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [Без коду, веб](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Доступно кілька моделей | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst)| [Ціни](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst)| [Швидкий старт SDK](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst)| [Швидкий старт Studio](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Потрібна попередня заявка на доступ](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst)| -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Ціни](https://huggingface.co/pricing) | [Токени доступу](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst)| [Hugging Chat має обмежену кількість моделей](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Дотримуйтесь інструкцій нижче, щоб _налаштувати_ цей репозиторій для роботи з різними провайдерами. Завдання, які потребують конкретного провайдера, матимуть один із цих тегів у назві файлу: - - `aoai` - потребує кінцеву точку Azure OpenAI та ключ - - `oai` - потребує кінцеву точку OpenAI та ключ - - `hf` - потребує токен Hugging Face - -Ви можете налаштувати одного, кількох або всіх провайдерів. Якщо облікові дані відсутні, відповідні завдання просто видадуть помилку. - -### 2.1. Створення файлу `.env` - -Припускаємо, що ви вже ознайомилися з вказівками вище, зареєструвалися у відповідного провайдера та отримали необхідні облікові дані для автентифікації (API_KEY або токен). У випадку Azure OpenAI, припускаємо, що у вас також є дійсне розгортання служби Azure OpenAI (endpoint) з принаймні однією GPT-моделлю для чат-комплішену. - -Наступний крок — налаштувати ваші **локальні змінні середовища** таким чином: - -1. Знайдіть у кореневій папці файл `.env.copy`, який має приблизно такий вміст: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Скопіюйте цей файл у `.env` за допомогою наведеної нижче команди. Цей файл додано до _gitignore_, щоб зберегти секрети в безпеці. - - ```bash - cp .env.copy .env - ``` - -3. Заповніть значення (замініть плейсхолдери праворуч від `=`) відповідно до опису у наступному розділі. - -3. (Опціонально) Якщо ви використовуєте GitHub Codespaces, у вас є можливість зберегти змінні середовища як _секрети Codespaces_, пов’язані з цим репозиторієм. У такому разі локальний файл .env налаштовувати не потрібно. **Однак зверніть увагу, що ця опція працює лише з GitHub Codespaces.** Якщо ви використовуєте Docker Desktop, файл .env все одно потрібно налаштувати. - -### 2.2. Заповнення файлу `.env` - -Давайте швидко розглянемо назви змінних, щоб зрозуміти, що вони означають: - -| Змінна | Опис | -| :--- | :--- | -| HUGGING_FACE_API_KEY | Це токен доступу користувача, який ви налаштували у своєму профілі | -| OPENAI_API_KEY | Ключ авторизації для використання сервісу OpenAI, не пов’язаного з Azure | -| AZURE_OPENAI_API_KEY | Ключ авторизації для використання сервісу Azure OpenAI | -| AZURE_OPENAI_ENDPOINT | Кінцева точка розгортання ресурсу Azure OpenAI | -| AZURE_OPENAI_DEPLOYMENT | Кінцева точка розгортання моделі для _генерації тексту_ | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | Кінцева точка розгортання моделі для _векторних уявлень тексту_ | -| | | - -Примітка: Останні дві змінні Azure OpenAI відповідають за модель за замовчуванням для чат-комплішену (генерації тексту) та пошуку за векторами (ембеддінги) відповідно. Інструкції щодо їх налаштування будуть наведені у відповідних завданнях. - -### 2.3 Налаштування Azure: через портал - -Значення кінцевої точки та ключа Azure OpenAI можна знайти у [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst), тож почнемо звідти. - -1. Перейдіть до [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -2. У бічному меню (зліва) натисніть опцію **Keys and Endpoint** -3. Натисніть **Show Keys** — ви побачите: KEY 1, KEY 2 та Endpoint -4. Використайте значення KEY 1 для AZURE_OPENAI_API_KEY -5. Використайте значення Endpoint для AZURE_OPENAI_ENDPOINT - -Далі нам потрібні кінцеві точки для конкретних моделей, які ми розгорнули. - -1. У бічному меню (зліва) для ресурсу Azure OpenAI натисніть **Model deployments** -2. На сторінці, що відкриється, натисніть **Manage Deployments** - -Це перенаправить вас на сайт Azure OpenAI Studio, де ми знайдемо інші необхідні значення, як описано нижче. - -### 2.4 Налаштування Azure: через Studio - -1. Перейдіть до [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **через ваш ресурс**, як описано вище. -2. Натисніть вкладку **Deployments** (бічне меню зліва), щоб переглянути поточні розгортання моделей. -3. Якщо потрібна модель не розгорнута, скористайтеся **Create new deployment** для її розгортання. -4. Вам потрібна модель для _генерації тексту_ — рекомендуємо: **gpt-35-turbo** -5. Вам потрібна модель для _векторних уявлень тексту_ — рекомендуємо **text-embedding-ada-002** - -Тепер оновіть змінні середовища, щоб відобразити ім’я _Deployment_, яке ви використовуєте. Зазвичай це таке саме, як ім’я моделі, якщо ви явно його не змінювали. Наприклад, у вас може бути: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**Не забудьте зберегти файл .env після внесення змін**. Тепер ви можете закрити файл і повернутися до інструкцій щодо запуску ноутбука. - -### 2.5 Налаштування OpenAI: через профіль - -Ваш OpenAI API ключ можна знайти у вашому [акаунті OpenAI](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). Якщо у вас його немає, зареєструйтеся та створіть API ключ. Після отримання ключа внесіть його у змінну `OPENAI_API_KEY` у файлі `.env`. - -### 2.6 Налаштування Hugging Face: через профіль - -Ваш токен Hugging Face можна знайти у вашому профілі в розділі [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). Не публікуйте і не діліться ним публічно. Замість цього створіть новий токен для використання у цьому проєкті і скопіюйте його у файл `.env` у змінну `HUGGING_FACE_API_KEY`. _Примітка:_ технічно це не API ключ, але використовується для автентифікації, тому ми зберігаємо цю назву для узгодженості. - -**Відмова від відповідальності**: -Цей документ було перекладено за допомогою сервісу автоматичного перекладу [Co-op Translator](https://github.com/Azure/co-op-translator). Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ рідною мовою слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується звертатися до професійного людського перекладу. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу. \ No newline at end of file diff --git a/translations/uk/04-prompt-engineering-fundamentals/README.md b/translations/uk/04-prompt-engineering-fundamentals/README.md index b4407e695..b8f6a5013 100644 --- a/translations/uk/04-prompt-engineering-fundamentals/README.md +++ b/translations/uk/04-prompt-engineering-fundamentals/README.md @@ -1,448 +1,15 @@ - -# Основи проєктування підказок - -[![Основи проєктування підказок](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.uk.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Вступ -Цей модуль охоплює основні поняття та техніки створення ефективних підказок для генеративних моделей ШІ. Важливо, як саме ви формулюєте підказку для LLM. Ретельно продумана підказка може забезпечити кращу якість відповіді. Але що саме означають терміни _підказка_ та _проєктування підказок_? І як покращити вхідні дані підказки, які я надсилаю LLM? Саме на ці питання ми спробуємо відповісти в цій та наступній главі. - -_Генеративний ШІ_ здатен створювати новий контент (наприклад, текст, зображення, аудіо, код тощо) у відповідь на запити користувачів. Це досягається за допомогою _Великих мовних моделей_ (LLM), таких як серія GPT від OpenAI ("Generative Pre-trained Transformer"), які навчені працювати з природною мовою та кодом. - -Користувачі тепер можуть взаємодіяти з цими моделями через знайомі інтерфейси, наприклад чат, без необхідності технічної підготовки. Моделі працюють на основі _підказок_ — користувачі надсилають текстовий запит (підказку) і отримують відповідь ШІ (завершення). Вони можуть вести "розмову з ШІ" ітеративно, у кілька кроків, уточнюючи підказку, доки відповідь не відповідатиме їхнім очікуванням. - -"Підказки" тепер стали основним _інтерфейсом програмування_ для генеративних додатків ШІ, вони вказують моделям, що робити, і впливають на якість отриманих відповідей. "Проєктування підказок" — це швидкозростаюча галузь, що зосереджена на _розробці та оптимізації_ підказок для забезпечення стабільних і якісних відповідей у масштабі. - -## Цілі навчання - -У цьому уроці ми дізнаємося, що таке проєктування підказок, чому це важливо і як створювати більш ефективні підказки для конкретної моделі та цілей застосування. Ми розглянемо основні поняття та найкращі практики проєктування підказок, а також познайомимося з інтерактивним середовищем Jupyter Notebook, де можна побачити застосування цих концепцій на реальних прикладах. - -До кінця уроку ви зможете: - -1. Пояснити, що таке проєктування підказок і чому це важливо. -2. Описати компоненти підказки та як їх використовувати. -3. Вивчити найкращі практики та техніки проєктування підказок. -4. Застосувати набуті навички на реальних прикладах, використовуючи OpenAI endpoint. - -## Ключові терміни - -Проєктування підказок: Практика розробки та вдосконалення вхідних даних для керування моделями ШІ з метою отримання бажаних результатів. -Токенізація: Процес перетворення тексту на менші одиниці — токени, які модель може розпізнавати та обробляти. -LLM з налаштуванням за інструкціями: Великі мовні моделі, які були додатково навчені на основі конкретних інструкцій для підвищення точності та релевантності відповідей. - -## Навчальне середовище - -Проєктування підказок наразі більше мистецтво, ніж наука. Найкращий спосіб покращити інтуїцію — це _практикуватися більше_ та застосовувати підхід проб і помилок, поєднуючи експертизу в предметній області з рекомендованими техніками та оптимізаціями, специфічними для моделі. - -Jupyter Notebook, що супроводжує цей урок, надає _пісочницю_, де ви можете випробувати набуті знання — під час навчання або в рамках кодового завдання наприкінці. Для виконання вправ вам знадобиться: - -1. **Ключ API Azure OpenAI** — кінцева точка сервісу для розгорнутої LLM. -2. **Середовище виконання Python** — для запуску ноутбука. -3. **Локальні змінні середовища** — _завершіть кроки [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst), щоб підготуватися_. - -Ноутбук містить _стартові_ вправи, але вам рекомендується додавати власні розділи _Markdown_ (опис) та _Code_ (запити підказок), щоб спробувати більше прикладів або ідей і розвивати інтуїцію у проєктуванні підказок. - -## Ілюстрований посібник - -Хочете отримати загальне уявлення про теми уроку перед тим, як зануритися в деталі? Перегляньте цей ілюстрований посібник, який дає уявлення про основні теми та ключові висновки для роздумів. Дорожня карта уроку проведе вас від розуміння базових концепцій і викликів до їх вирішення за допомогою відповідних технік проєктування підказок і найкращих практик. Зверніть увагу, що розділ "Розширені техніки" в цьому посібнику стосується матеріалу, який розглядається у _наступній_ главі курсу. - -![Ілюстрований посібник з проєктування підказок](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.uk.png) - -## Наш стартап - -Тепер поговоримо, як _ця тема_ пов’язана з місією нашого стартапу — [привнести інновації ШІ в освіту](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). Ми хочемо створювати додатки на основі ШІ для _персоналізованого навчання_ — тож давайте подумаємо, як різні користувачі нашого додатку можуть "проєктувати" підказки: - -- **Адміністратори** можуть попросити ШІ _проаналізувати дані навчальної програми, щоб виявити прогалини у покритті_. ШІ може підсумувати результати або візуалізувати їх за допомогою коду. -- **Викладачі** можуть попросити ШІ _створити план уроку для цільової аудиторії та теми_. ШІ може побудувати персоналізований план у заданому форматі. -- **Студенти** можуть попросити ШІ _пояснити складний предмет_. ШІ тепер може допомагати студентам уроками, підказками та прикладами, адаптованими до їхнього рівня. - -Це лише верхівка айсберга. Ознайомтеся з [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) — відкритою бібліотекою підказок, створеною експертами в освіті, щоб отримати ширше уявлення про можливості! _Спробуйте запустити деякі з цих підказок у пісочниці або в OpenAI Playground, щоб побачити, що вийде!_ - - - -## Що таке проєктування підказок? - -Ми почали цей урок з визначення **проєктування підказок** як процесу _розробки та оптимізації_ текстових вхідних даних (підказок) для отримання стабільних і якісних відповідей (завершень) відповідно до цілей застосування та моделі. Це можна уявити як двоетапний процес: - -- _розробка_ початкової підказки для конкретної моделі та мети -- _покращення_ підказки ітеративно для підвищення якості відповіді - -Це обов’язково процес проб і помилок, що вимагає інтуїції користувача та зусиль для досягнення оптимальних результатів. Чому це важливо? Щоб відповісти на це, спочатку потрібно зрозуміти три поняття: - -- _Токенізація_ = як модель "бачить" підказку -- _Базові LLM_ = як основна модель "обробляє" підказку -- _LLM з налаштуванням за інструкціями_ = як модель тепер може розуміти "завдання" - -### Токенізація - -LLM сприймає підказки як _послідовність токенів_, причому різні моделі (або версії однієї моделі) можуть токенізувати одну й ту саму підказку по-різному. Оскільки LLM навчаються на токенах (а не на сирому тексті), спосіб токенізації підказки безпосередньо впливає на якість згенерованої відповіді. - -Щоб зрозуміти, як працює токенізація, спробуйте інструменти на кшталт [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst), показаний нижче. Скопіюйте вашу підказку і подивіться, як вона перетворюється на токени, звертаючи увагу на обробку пробілів і розділових знаків. Зверніть увагу, що цей приклад показує старішу модель LLM (GPT-3), тому спроба з новішою моделлю може дати інший результат. - -![Токенізація](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.uk.png) - -### Концепція: Основні моделі - -Після токенізації підказки основна функція ["Базової LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (або основної моделі) — передбачити наступний токен у послідовності. Оскільки LLM навчаються на величезних текстових наборах даних, вони добре розуміють статистичні зв’язки між токенами і можуть робити це передбачення з певною впевненістю. Важливо, що вони не розуміють _значення_ слів у підказці чи токені; вони просто бачать шаблон, який можуть "завершити" наступним передбаченням. Вони можуть продовжувати передбачати послідовність, доки користувач не припинить процес або не спрацює заздалегідь встановлена умова. - -Хочете побачити, як працює завершення на основі підказки? Введіть наведену вище підказку в Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) з налаштуваннями за замовчуванням. Система налаштована сприймати підказки як запити інформації — тож ви побачите завершення, яке відповідає цьому контексту. - -Але що, якщо користувач хоче отримати щось конкретне, що відповідає певним критеріям або завданню? Тут на допомогу приходять _LLM з налаштуванням за інструкціями_. - -![Завершення чату базової LLM](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.uk.png) - -### Концепція: LLM з налаштуванням за інструкціями - -[LLM з налаштуванням за інструкціями](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) починається з основної моделі, яку додатково навчають на прикладах або парах вхід/вихід (наприклад, багатокрокові "повідомлення"), що містять чіткі інструкції — і відповідь ШІ намагається слідувати цим інструкціям. - -Це використовує техніки, такі як навчання з підкріпленням на основі людського зворотного зв’язку (RLHF), що дозволяє моделі _дотримуватися інструкцій_ та _вчитися на відгуках_, щоб генерувати відповіді, які краще підходять для практичних застосувань і більш релевантні цілям користувача. - -Спробуємо — поверніться до наведеного вище запиту, але тепер змініть _системне повідомлення_, додавши таку інструкцію як контекст: - -> _Підсумуйте наданий контент для учня другого класу. Залиште результат у вигляді одного абзацу з 3-5 пунктами._ - -Бачите, як результат тепер налаштований відповідно до бажаної мети та формату? Викладач може безпосередньо використати цю відповідь у своїх слайдах для уроку. - -![Завершення чату LLM з інструкціями](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.uk.png) - -## Чому нам потрібне проєктування підказок? - -Тепер, коли ми знаємо, як LLM обробляють підказки, поговоримо про те, _чому_ потрібне проєктування підказок. Відповідь полягає в тому, що сучасні LLM мають низку викликів, які ускладнюють отримання _надійних і послідовних завершень_ без зусиль щодо побудови та оптимізації підказок. Наприклад: - -1. **Відповіді моделей є стохастичними.** _Одна й та сама підказка_ може давати різні відповіді на різних моделях або їх версіях. І навіть на _одній і тій самій моделі_ у різний час результати можуть відрізнятися. _Техніки проєктування підказок допомагають мінімізувати ці варіації, забезпечуючи кращі обмеження_. - -2. **Моделі можуть вигадувати відповіді.** Моделі навчені на _великих, але обмежених_ наборах даних, тому їм бракує знань про поняття поза межами цих даних. Внаслідок цього вони можуть генерувати неточні, вигадані або прямо суперечливі відомим фактам відповіді. _Техніки проєктування підказок допомагають користувачам виявляти та зменшувати такі вигадки, наприклад, запитуючи у ШІ посилання або логіку_. - -3. **Можливості моделей відрізняються.** Новіші моделі або покоління моделей мають ширші можливості, але також мають унікальні особливості та компроміси щодо вартості та складності. _Проєктування підказок допомагає розробляти найкращі практики та робочі процеси, які абстрагують відмінності та адаптуються до вимог конкретної моделі у масштабованому та безшовному режимі_. - -Перевірте це на практиці в OpenAI або Azure OpenAI Playground: - -- Використайте одну й ту саму підказку з різними розгортаннями LLM (наприклад, OpenAI, Azure OpenAI, Hugging Face) — чи помітили ви відмінності? -- Використайте одну й ту саму підказку багаторазово з _одним_ розгортанням LLM (наприклад, Azure OpenAI playground) — як відрізнялися результати? - -### Приклад вигадок - -У цьому курсі ми використовуємо термін **"вигадка"** для позначення явища, коли LLM іноді генерують фактично неправильну інформацію через обмеження у навчанні або інші фактори. Ви могли чути цей феномен під назвою _"галюцинації"_ у популярних статтях чи наукових роботах. Проте ми наполегливо рекомендуємо використовувати термін _"вигадка"_, щоб уникнути випадкового -# План уроку: Війна на Марсі 2076 року - -## Мета уроку -- Ознайомити учнів з подіями Війни на Марсі 2076 року -- Розглянути причини, хід та наслідки конфлікту -- Розвивати навички критичного мислення через аналіз історичних подій - -## План заняття - -### Вступ (10 хв) -- Короткий огляд історії освоєння Марса до 2076 року -- Обговорення причин, які призвели до конфлікту - -### Основна частина (30 хв) -- Хронологія подій Війни на Марсі 2076 року -- Основні учасники конфлікту -- Технології та зброя, що використовувалися під час війни -- Вплив війни на людство та колонії на Марсі - -### Обговорення (15 хв) -- Аналіз причин війни: політичні, економічні, соціальні фактори -- Обговорення можливих альтернативних сценаріїв розвитку подій -- Роль міжнародної спільноти у врегулюванні конфлікту - -### Підсумок (5 хв) -- Висновки щодо значення Війни на Марсі 2076 року для майбутнього освоєння космосу -- Відповіді на запитання учнів - -## Домашнє завдання -- Написати коротке есе на тему: «Як Війна на Марсі 2076 року вплинула на розвиток людства» -- Підготувати презентацію про одну з ключових подій війни або технологій, що використовувалися - -## Ресурси -- Документальні матеріали та статті про Війну на Марсі 2076 року -- Відео з реконструкціями подій -- Інтерактивні карти та хронології конфлікту -Веб-пошук показав, що існують вигадані оповідання (наприклад, телевізійні серіали чи книги) про марсіанські війни — але жодних у 2076 році. Здоровий глузд також підказує, що 2076 — це _майбутнє_, і тому це не може бути пов’язано з реальною подією. - -Отже, що станеться, якщо запустити цей запит у різних провайдерів LLM? - -> **Відповідь 1**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.uk.png) - -> **Відповідь 2**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.uk.png) - -> **Відповідь 3**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.uk.png) - -Як і очікувалося, кожна модель (або її версія) дає трохи різні відповіді завдяки стохастичній поведінці та відмінностям у можливостях моделей. Наприклад, одна модель орієнтована на аудиторію 8-го класу, тоді як інша припускає, що користувач — старшокласник. Але всі три моделі згенерували відповіді, які могли б переконати необізнаного користувача, що подія була реальною. - -Техніки prompt engineering, такі як _метапромптинг_ і _налаштування температури_, можуть у певній мірі зменшити вигадки моделей. Нові _архітектури_ prompt engineering також безшовно інтегрують нові інструменти та методи у потік запиту, щоб пом’якшити або зменшити деякі з цих ефектів. - -## Кейс-стаді: GitHub Copilot - -Завершимо цей розділ, розглянувши, як prompt engineering використовується у реальних рішеннях, на прикладі одного кейс-стаді: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot — це ваш «AI-партнер по програмуванню» — він перетворює текстові запити на доповнення коду і інтегрований у ваше середовище розробки (наприклад, Visual Studio Code) для безшовного користувацького досвіду. Як описано у серії блогів нижче, найперша версія базувалася на моделі OpenAI Codex — інженери швидко усвідомили необхідність донавчання моделі та розробки кращих технік prompt engineering для покращення якості коду. У липні вони [представили покращену AI-модель, що виходить за межі Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) для ще швидших пропозицій. - -Читайте пости послідовно, щоб простежити їхній шлях навчання. - -- **Травень 2023** | [GitHub Copilot стає кращим у розумінні вашого коду](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **Травень 2023** | [Всередині GitHub: робота з LLM за GitHub Copilot](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Червень 2023** | [Як писати кращі запити для GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Липень 2023** | [GitHub Copilot виходить за межі Codex з покращеною AI-моделлю](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Липень 2023** | [Посібник розробника з prompt engineering та LLM](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **Вересень 2023** | [Як створити корпоративний додаток на базі LLM: уроки від GitHub Copilot](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -Ви також можете переглянути їхній [інженерний блог](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) для інших публікацій, як-от [цей](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst), який показує, як ці моделі та техніки _застосовуються_ для створення реальних додатків. - ---- - - - -## Побудова запиту - -Ми вже зрозуміли, чому prompt engineering важливий — тепер давайте розберемося, як саме _будуються_ запити, щоб ми могли оцінити різні техніки для ефективнішого проєктування запитів. - -### Базовий запит - -Почнемо з базового запиту: текстового вводу, надісланого моделі без додаткового контексту. Ось приклад — коли ми надсилаємо перші кілька слів національного гімну США до OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst), він миттєво _завершує_ відповідь наступними рядками, ілюструючи базову поведінку передбачення. - -| Запит (Вхід) | Відповідь (Вихід) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | Схоже, ви починаєте співати слова "The Star-Spangled Banner" — національного гімну США. Повний текст такий... | - -### Складний запит - -Тепер додамо контекст і інструкції до базового запиту. [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) дозволяє створювати складний запит як колекцію _повідомлень_ з: - -- парами вводу/виводу, що відображають _користувацький_ ввід і _відповідь асистента_ -- системним повідомленням, яке задає контекст поведінки або особистості асистента - -Запит тепер має форму, де _токенізація_ ефективно захоплює релевантну інформацію з контексту та розмови. Зміна системного контексту може бути такою ж впливовою на якість відповідей, як і самі користувацькі запити. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Інструктивний запит - -У наведених вище прикладах користувацький запит був простим текстовим запитом, який можна інтерпретувати як прохання надати інформацію. З _інструктивними_ запитами ми можемо використовувати цей текст, щоб детальніше вказати завдання, даючи кращі вказівки ШІ. Ось приклад: - -| Запит (Вхід) | Відповідь (Вихід) | Тип інструкції | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :----------------- | -| Напишіть опис Громадянської війни | _повернув простий абзац_ | Простий | -| Напишіть опис Громадянської війни. Наведіть ключові дати та події і опишіть їхнє значення | _повернув абзац, за яким іде список ключових дат подій із описами_ | Складний | -| Напишіть опис Громадянської війни в 1 абзаці. Наведіть 3 марковані пункти з ключовими датами та їхнім значенням. Наведіть ще 3 марковані пункти з ключовими історичними особами та їхнім внеском. Поверніть результат у форматі JSON | _повертає більш детальну інформацію у текстовому полі, відформатовану як JSON, яку можна скопіювати у файл і за потреби перевірити_ | Складний. Форматований. | - -## Основний контент - -У наведених прикладах запит був досить відкритим, дозволяючи LLM самостійно визначати, яка частина його попередньо навчених даних є релевантною. З патерном _основного контенту_ вхідний текст ділиться на дві частини: - -- інструкція (дія) -- релевантний контент (що впливає на дію) - -Ось приклад, де інструкція — «підсумуй це у 2 речення». - -| Запит (Вхід) | Відповідь (Вихід) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Юпітер — п’ята планета від Сонця і найбільша в Сонячній системі. Це газовий гігант із масою, що становить одну тисячну від маси Сонця, але вдвічі з половиною більша за сумарну масу всіх інших планет Сонячної системи разом узятих. Юпітер — один із найяскравіших об’єктів, видимих неозброєним оком у нічному небі, і відомий давнім цивілізаціям ще до початку історичних записів. Він названий на честь римського бога Юпітера.[19] Коли дивитися з Землі, Юпітер може бути настільки яскравим, що його відбите світло кидає видимі тіні,[20] і в середньому це третій за яскравістю природний об’єкт у нічному небі після Місяця та Венери.
**Підсумуйте це у 2 коротких речення** | Юпітер, п’ята планета від Сонця, є найбільшою в Сонячній системі і відомий як один із найяскравіших об’єктів нічного неба. Названий на честь римського бога Юпітера, це газовий гігант із масою вдвічі з половиною більшою за сумарну масу всіх інших планет Сонячної системи. | - -Сегмент основного контенту можна використовувати різними способами для ефективнішого керування інструкціями: - -- **Приклади** — замість того, щоб прямо казати моделі, що робити, дайте їй приклади того, що потрібно зробити, і дозвольте вивести закономірність. -- **Підказки** — після інструкції додайте «підказку», яка налаштовує завершення, спрямовуючи модель до більш релевантних відповідей. -- **Шаблони** — це повторювані «рецепти» запитів із заповнювачами (змінними), які можна налаштовувати даними для конкретних випадків. - -Давайте розглянемо це на практиці. - -### Використання прикладів - -Це підхід, коли ви використовуєте основний контент, щоб «підгодувати модель» прикладами бажаного результату для певної інструкції і дозволити їй вивести закономірність для потрібного виводу. Залежно від кількості прикладів, можна мати zero-shot prompting, one-shot prompting, few-shot prompting тощо. - -Запит тепер складається з трьох компонентів: - -- опис завдання -- кілька прикладів бажаного результату -- початок нового прикладу (який стає неявним описом завдання) - -| Тип навчання | Запит (Вхід) | Відповідь (Вихід) | -| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| Zero-shot | "The Sun is Shining". Перекласти іспанською | "El Sol está brillando". | -| One-shot | "The Sun is Shining" => "El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| Few-shot | Гравець пробіг бази => Бейсбол
Гравець зробив ейс => Теніс
Гравець зробив шістку => Крикет
Гравець зробив слем-данк => | Баскетбол | -| | | | - -Зверніть увагу, що в zero-shot prompting ми мусили явно вказати інструкцію («Перекласти іспанською»), але в one-shot prompting це вже виводиться з прикладу. Few-shot приклад показує, як додавання більшої кількості прикладів дозволяє моделям робити точніші висновки без додаткових інструкцій. - -### Підказки для запиту - -Інша техніка використання основного контенту — надавати _підказки_ замість прикладів. У цьому випадку ми даємо моделі легкий поштовх у правильному напрямку, _починаючи_ з фрагмента, який відображає бажаний формат відповіді. Модель «ловить підказку» і продовжує у тому ж стилі. - -| Кількість підказок | Запит (Вхід) | Відповідь (Вихід) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Юпітер — п’ята планета від Сонця і найбільша в Сонячній системі. Це газовий гігант із масою, що становить одну тисячну від маси Сонця, але вдвічі з половиною більша за сумарну масу всіх інших планет Сонячної системи разом узятих. Юпітер — один із найяскравіших об’єктів, видимих неозброєним оком у нічному небі, і відомий давнім цивілізаціям ще до початку історичних записів. - -**Підсумуйте це** | Юпітер — найбільша планета в нашій Сонячній системі і п’ята за віддаленістю від Сонця. Це газовий гігант з масою, що становить 1/1000 маси Сонця, але він важчий за всі інші планети разом узяті. Стародавні цивілізації знали про Юпітер давно, і він легко помітний на нічному небі. | -| 1 | Юпітер — п’ята планета від Сонця і найбільша в Сонячній системі. Це газовий гігант з масою, що становить одну тисячну частину маси Сонця, але вдвічі з половиною більший за сумарну масу всіх інших планет Сонячної системи. Юпітер — один із найяскравіших об’єктів, видимих неозброєним оком на нічному небі, і він відомий стародавнім цивілізаціям ще з доісторичних часів.
**Підсумуйте це**
Що ми дізналися, так це те, що Юпітер | є п’ятою планетою від Сонця і найбільшою в Сонячній системі. Це газовий гігант з масою, що становить одну тисячну частину маси Сонця, але вдвічі з половиною більший за сумарну масу всіх інших планет. Він легко помітний неозброєним оком і відомий з давніх часів. | -| 2 | Юпітер — п’ята планета від Сонця і найбільша в Сонячній системі. Це газовий гігант з масою, що становить одну тисячну частину маси Сонця, але вдвічі з половиною більший за сумарну масу всіх інших планет Сонячної системи. Юпітер — один із найяскравіших об’єктів, видимих неозброєним оком на нічному небі, і він відомий стародавнім цивілізаціям ще з доісторичних часів.
**Підсумуйте це**
Топ-3 факти, які ми дізналися: | 1. Юпітер — п’ята планета від Сонця і найбільша в Сонячній системі.
2. Це газовий гігант з масою, що становить одну тисячну частину маси Сонця...
3. Юпітер видно неозброєним оком з давніх часів ... | -| | | | - -### Шаблони підказок - -Шаблон підказки — це _заздалегідь визначений рецепт для підказки_, який можна зберігати та повторно використовувати за потреби, щоб забезпечити більш послідовний користувацький досвід у великому масштабі. У найпростішій формі це просто збірка прикладів підказок, як-от [цей від OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst), що містить як інтерактивні компоненти підказки (повідомлення користувача та системи), так і формат запиту через API — для підтримки повторного використання. - -У більш складній формі, як [цей приклад від LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst), він містить _заповнювачі_, які можна замінити даними з різних джерел (вхід користувача, контекст системи, зовнішні джерела даних тощо) для динамічного створення підказки. Це дозволяє створити бібліотеку багаторазових підказок, які можна використовувати для програмного забезпечення послідовного користувацького досвіду **на великому масштабі**. - -Насправді ж цінність шаблонів полягає у можливості створювати та публікувати _бібліотеки підказок_ для вертикальних сфер застосування — де шаблон підказки _оптимізований_ для відображення контексту або прикладів, специфічних для застосування, що робить відповіді більш релевантними та точними для цільової аудиторії користувачів. Репозиторій [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) є чудовим прикладом такого підходу, збираючи бібліотеку підказок для освітньої сфери з акцентом на ключові цілі, такі як планування уроків, розробка навчальних програм, репетиторство тощо. - -## Додатковий контент - -Якщо розглядати побудову підказки як наявність інструкції (завдання) та цільового (основного) контенту, то _додатковий контент_ — це як додатковий контекст, який ми надаємо, щоб **вплинути на результат певним чином**. Це можуть бути параметри налаштування, інструкції з форматування, таксономії тем тощо, які допомагають моделі _підлаштувати_ відповідь під бажані цілі або очікування користувача. - -Наприклад: маючи каталог курсів з розгорнутими метаданими (назва, опис, рівень, теги, викладач тощо) для всіх доступних курсів у навчальній програмі: - -- ми можемо задати інструкцію "підсумувати каталог курсів на осінь 2023" -- ми можемо використати основний контент, щоб надати кілька прикладів бажаного результату -- ми можемо використати додатковий контент, щоб визначити топ-5 "тегів" інтересу. - -Тепер модель може надати підсумок у форматі, показаному в прикладах — але якщо результат має кілька тегів, вона може віддати пріоритет 5 тегам, визначеним у додатковому контенті. - ---- - - - -## Кращі практики створення підказок - -Тепер, коли ми знаємо, як підказки можна _створювати_, можемо почати думати, як їх _проектувати_ з урахуванням кращих практик. Це можна розглядати у двох аспектах — правильний _настрій_ і застосування правильних _технік_. - -### Мислення інженера підказок - -Створення підказок — це процес проб і помилок, тому тримайте на увазі три основні керівні принципи: - -1. **Важливість розуміння домену.** Точність і релевантність відповіді залежать від _доменної_ сфери, в якій працює застосунок або користувач. Використовуйте інтуїцію та експертизу домену, щоб **додатково налаштовувати техніки**. Наприклад, визначайте _доменно-специфічні особистості_ у системних підказках або використовуйте _доменно-специфічні шаблони_ у підказках користувача. Надавайте додатковий контент, що відображає контексти домену, або використовуйте _доменно-специфічні сигнали та приклади_, щоб спрямувати модель на знайомі шаблони використання. - -2. **Важливість розуміння моделі.** Ми знаємо, що моделі за своєю природою стохастичні. Але реалізації моделей можуть відрізнятися за тренувальним набором даних (попередньо навчені знання), можливостями (наприклад, через API або SDK) та типом контенту, для якого вони оптимізовані (код, зображення, текст). Розумійте сильні та слабкі сторони моделі, яку ви використовуєте, і застосовуйте ці знання, щоб _пріоритезувати завдання_ або створювати _налаштовані шаблони_, оптимізовані під можливості моделі. - -3. **Важливість ітерацій та валідації.** Моделі швидко розвиваються, так само як і техніки створення підказок. Як експерт у домені, у вас може бути власний контекст або критерії для _вашого_ конкретного застосунку, які не завжди підходять для ширшої спільноти. Використовуйте інструменти та техніки створення підказок, щоб "швидко стартувати" побудову підказок, потім ітеруйте та перевіряйте результати, спираючись на власну інтуїцію та експертизу. Записуйте свої спостереження і створюйте **базу знань** (наприклад, бібліотеки підказок), яку інші зможуть використовувати як нову відправну точку для швидших ітерацій у майбутньому. - -## Кращі практики - -Розглянемо поширені кращі практики, рекомендовані фахівцями [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) та [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst). - -| Що | Чому | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Оцінюйте найновіші моделі. | Нові покоління моделей, ймовірно, мають покращені функції та якість — але можуть також бути дорожчими. Оцініть їхній вплив, а потім приймайте рішення про міграцію. | -| Розділяйте інструкції та контекст | Перевірте, чи ваша модель/провайдер визначає _розмежувачі_ для чіткого розділення інструкцій, основного та додаткового контенту. Це допомагає моделям точніше розподіляти ваги токенів. | -| Будьте конкретними та чіткими | Надавайте більше деталей про бажаний контекст, результат, довжину, формат, стиль тощо. Це покращить якість і послідовність відповідей. Фіксуйте рецепти у багаторазових шаблонах. | -| Будьте описовими, використовуйте приклади | Моделі можуть краще реагувати на підхід "показати і розповісти". Починайте з `zero-shot` (інструкція без прикладів), потім пробуйте `few-shot` — з кількома прикладами бажаного результату. Використовуйте аналогії. | -| Використовуйте сигнали для запуску завершень | Підштовхуйте модель до бажаного результату, даючи їй початкові слова або фрази, які вона може використати як стартову точку для відповіді. | -| Подвоюйте зусилля | Іноді потрібно повторити інструкції моделі. Давайте інструкції до і після основного контенту, використовуйте інструкцію і сигнал, тощо. Ітеруйте та перевіряйте, що працює найкраще. | -| Порядок має значення | Порядок подачі інформації моделі може впливати на результат, навіть у прикладах для навчання, через ефект свіжості. Спробуйте різні варіанти, щоб побачити, що працює найкраще. | -| Дайте моделі "вихід" | Надайте моделі _резервний_ варіант відповіді, який вона може використати, якщо не зможе виконати завдання з будь-якої причини. Це зменшує ймовірність хибних або вигаданих відповідей. | -| | | - -Як і з будь-якою кращою практикою, пам’ятайте, що _ваші результати можуть відрізнятися_ залежно від моделі, завдання та домену. Використовуйте це як відправну точку і ітеруйте, щоб знайти найкраще для себе. Постійно переоцінюйте процес створення підказок у міру появи нових моделей і інструментів, зосереджуючись на масштабованості процесу та якості відповідей. - - - -## Завдання - -Вітаємо! Ви дійшли до кінця уроку! Час застосувати деякі з цих концепцій і технік на практиці з реальними прикладами! - -Для нашого завдання ми будемо використовувати Jupyter Notebook з вправами, які ви можете виконувати інтерактивно. Ви також можете розширювати Notebook власними Markdown та кодовими блоками, щоб досліджувати ідеї та техніки самостійно. - -### Щоб почати, зробіть форк репозиторію, а потім - -- (Рекомендовано) Запустіть GitHub Codespaces -- (Альтернативно) Клонуйте репозиторій на свій локальний пристрій і використовуйте його з Docker Desktop -- (Альтернативно) Відкрийте Notebook у вашому улюбленому середовищі виконання Notebook. - -### Далі налаштуйте змінні середовища - -- Скопіюйте файл `.env.copy` з кореня репозиторію у `.env` і заповніть значення `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` та `AZURE_OPENAI_DEPLOYMENT`. Поверніться до розділу [Learning Sandbox](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals), щоб дізнатися як. - -### Потім відкрийте Jupyter Notebook - -- Виберіть ядро виконання. Якщо ви використовуєте варіанти 1 або 2, просто виберіть стандартне ядро Python 3.10.x, яке надається контейнером розробника. - -Ви готові запускати вправи. Зверніть увагу, що тут немає _правильних чи неправильних_ відповідей — це дослідження варіантів методом проб і помилок і формування інтуїції щодо того, що працює для конкретної моделі та домену застосування. - -_З цієї причини в цьому уроці немає сегментів з рішеннями коду. Натомість у Notebook будуть Markdown-клітинки з назвою "Моє рішення:", які показують один приклад відповіді для довідки._ - - - -## Перевірка знань - -Яка з наведених підказок є доброю, з урахуванням розумних кращих практик? - -1. Покажи мені зображення червоного автомобіля -2. Покажи мені зображення червоного автомобіля марки Volvo, моделі XC90, припаркованого біля скелі на заході сонця -3. Покажи мені зображення червоного автомобіля марки Volvo, моделі XC90 - -Відповідь: 2 — це найкраща підказка, оскільки вона надає деталі про "що" і конкретизує (не просто будь-який автомобіль, а конкретна марка і модель), а також описує загальне оточення. 3 — наступна за якістю, бо також містить багато опису. - -## 🚀 Виклик - -Спробуйте застосувати техніку "сигналу" з підказкою: Завершіть речення "Покажи мені зображення червоного автомобіля марки Volvo і ". Що модель відповість і як би ви це покращили? - -## Чудова робота! Продовжуйте навчання - -Хочете дізнатися більше про різні концепції інженерії підказок? Перейдіть на [сторінку продовження навчання](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst), щоб знайти інші чудові ресурси з цієї теми. - -Перейдіть до Уроку 5, де ми розглянемо [просунуті техніки створення підказок](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**Відмова від відповідальності**: -Цей документ було перекладено за допомогою сервісу автоматичного перекладу [Co-op Translator](https://github.com/Azure/co-op-translator). Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ рідною мовою слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується звертатися до професійного людського перекладу. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу. \ No newline at end of file + + + + + + + diff --git a/translations/uk/09-building-image-applications/README.md b/translations/uk/09-building-image-applications/README.md index e2c5fb4df..93da7069a 100644 --- a/translations/uk/09-building-image-applications/README.md +++ b/translations/uk/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# Створення додатків для генерації зображень - -[![Створення додатків для генерації зображень](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.uk.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLM — це не лише генерація тексту. Також можливо створювати зображення на основі текстових описів. Використання зображень як модальності може бути дуже корисним у багатьох сферах: від медичних технологій, архітектури, туризму, розробки ігор і не тільки. У цьому розділі ми розглянемо дві найпопулярніші моделі генерації зображень — DALL-E та Midjourney. - -## Вступ - -У цьому уроці ми розглянемо: - -- Генерацію зображень і чому це корисно. -- DALL-E та Midjourney: що це таке і як вони працюють. -- Як створити додаток для генерації зображень. - -## Цілі навчання - -Після проходження цього уроку ви зможете: - -- Створити додаток для генерації зображень. -- Визначати межі вашого додатку за допомогою мета-промптів. -- Працювати з DALL-E та Midjourney. - -## Чому варто створювати додаток для генерації зображень? - -Додатки для генерації зображень — це чудовий спосіб дослідити можливості генеративного ШІ. Вони можуть бути використані, наприклад, для: - -- **Редагування та синтезу зображень**. Ви можете створювати зображення для різних випадків використання, таких як редагування чи синтез зображень. - -- **Застосування у різних галузях**. Їх також можна використовувати для створення зображень у різних сферах, таких як медичні технології, туризм, розробка ігор тощо. - -## Сценарій: Edu4All - -У рамках цього уроку ми продовжимо працювати з нашим стартапом Edu4All. Студенти створюватимуть зображення для своїх завдань. Які саме — вирішують вони самі: це можуть бути ілюстрації до власної казки, створення нового персонажа для історії або допомога у візуалізації ідей та концепцій. - -Ось що, наприклад, могли б створити студенти Edu4All, якщо вони працюють у класі над пам’ятками: - -![Стартап Edu4All, урок про пам’ятки, Ейфелева вежа](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.uk.png) - -використовуючи промпт - -> "Собака біля Ейфелевої вежі на ранковому сонці" - -## Що таке DALL-E та Midjourney? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) та [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) — дві з найпопулярніших моделей генерації зображень, які дозволяють створювати зображення за допомогою текстових промптів. - -### DALL-E - -Почнемо з DALL-E — це модель генеративного ШІ, яка створює зображення на основі текстових описів. - -> [DALL-E — це поєднання двох моделей, CLIP та diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP** — модель, яка створює вбудовування (embedding), тобто числові представлення даних, зображень і тексту. - -- **Diffused attention** — модель, яка генерує зображення на основі цих вбудовувань. DALL-E навчається на наборі даних із зображень і тексту і може створювати зображення за текстовими описами. Наприклад, DALL-E може створити зображення кота в капелюсі або собаки з ірокезом. - -### Midjourney - -Midjourney працює схожим чином на DALL-E — генерує зображення за текстовими промптами. Midjourney також можна використовувати для створення зображень за промптами на кшталт «кіт у капелюсі» або «собака з ірокезом». - -![Зображення, створене Midjourney, механічний голуб](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Джерело зображення: Wikipedia, створено Midjourney_ - -## Як працюють DALL-E та Midjourney - -Спершу про [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). DALL-E — це модель генеративного ШІ на основі архітектури трансформера з _авторегресивним трансформером_. - -_Авторегресивний трансформер_ визначає, як модель створює зображення з текстових описів: вона генерує по одному пікселю за раз, використовуючи вже створені пікселі для генерації наступного. Проходить через кілька шарів нейронної мережі, доки зображення не буде завершене. - -Завдяки цьому процесу DALL-E контролює атрибути, об’єкти, характеристики та інші деталі зображення, яке створює. Однак DALL-E 2 і 3 мають ще більший контроль над створеним зображенням. - -## Створення вашого першого додатку для генерації зображень - -Що потрібно, щоб створити додаток для генерації зображень? Вам знадобляться такі бібліотеки: - -- **python-dotenv** — рекомендується використовувати цю бібліотеку, щоб зберігати секрети у файлі _.env_ окремо від коду. -- **openai** — ця бібліотека потрібна для взаємодії з OpenAI API. -- **pillow** — для роботи з зображеннями у Python. -- **requests** — для виконання HTTP-запитів. - -1. Створіть файл _.env_ з таким вмістом: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Цю інформацію можна знайти в Azure Portal у розділі "Keys and Endpoint" для вашого ресурсу. - -1. Зберіть перелічені бібліотеки у файл _requirements.txt_ так: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. Далі створіть віртуальне середовище та встановіть бібліотеки: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Для Windows використайте такі команди для створення та активації віртуального середовища: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. Додайте наступний код у файл _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Пояснимо цей код: - -- Спершу імпортуємо потрібні бібліотеки: OpenAI, dotenv, requests та Pillow. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Потім завантажуємо змінні середовища з файлу _.env_. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- Далі встановлюємо endpoint, ключ для OpenAI API, версію та тип. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- Потім генеруємо зображення: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - Цей код повертає JSON-об’єкт із URL створеного зображення. Ми можемо використати цей URL, щоб завантажити зображення та зберегти його у файл. - -- Нарешті, відкриваємо зображення та показуємо його у стандартному переглядачі зображень: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Детальніше про генерацію зображення - -Розглянемо код, який генерує зображення, детальніше: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** — текстовий промпт, який використовується для генерації зображення. У цьому випадку це "Кролик на коні, тримає льодяник, на туманному лузі, де ростуть нарциси". -- **size** — розмір створеного зображення. Тут генерується зображення розміром 1024x1024 пікселів. -- **n** — кількість створених зображень. Тут створюються два зображення. -- **temperature** — параметр, що контролює випадковість результату генеративної моделі. Температура — це значення від 0 до 1, де 0 означає детермінований (передбачуваний) результат, а 1 — максимально випадковий. За замовчуванням — 0.7. - -Існує ще багато можливостей роботи із зображеннями, які ми розглянемо у наступному розділі. - -## Додаткові можливості генерації зображень - -Ви вже бачили, як можна створити зображення за кілька рядків коду на Python. Але з зображеннями можна робити ще більше. - -Ви також можете: - -- **Редагувати зображення**. Надсилаючи існуюче зображення, маску та промпт, можна змінювати зображення. Наприклад, додати щось до певної частини зображення. Уявімо наше зображення з кроликом — можна додати йому капелюх. Для цього потрібно надати зображення, маску (яка визначає область для зміни) та текстовий промпт, що описує, що потрібно зробити. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - Початкове зображення містить лише кролика, а фінальне — кролика з капелюхом. - -- **Створювати варіації**. Ідея полягає в тому, щоб взяти існуюче зображення і попросити створити його варіації. Для цього надають зображення, текстовий промпт і код, наприклад: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Примітка: ця функція підтримується лише в OpenAI. - -## Температура - -Температура — це параметр, що контролює випадковість результату генеративної моделі. Значення від 0 до 1, де 0 означає детермінований результат, а 1 — випадковий. За замовчуванням — 0.7. - -Розглянемо приклад роботи температури, запустивши цей промпт двічі: - -> Промпт: "Кролик на коні, тримає льодяник, на туманному лузі, де ростуть нарциси" - -![Кролик на коні з льодяником, версія 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.uk.png) - -Тепер запустимо той самий промпт ще раз, щоб побачити, що зображення не будуть однаковими: - -![Згенероване зображення кролика на коні](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.uk.png) - -Як бачите, зображення схожі, але не однакові. Спробуємо змінити значення temperature на 0.1 і подивимось, що станеться: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Зміна температури - -Спробуємо зробити відповідь більш детермінованою. З двох згенерованих зображень видно, що на першому — кролик, а на другому — кінь, тобто зображення суттєво відрізняються. - -Тож змінимо код і встановимо temperature в 0, ось так: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Тепер, коли ви запустите цей код, отримаєте такі два зображення: - -- ![Температура 0, версія 1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.uk.png) -- ![Температура 0, версія 2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.uk.png) - -Тут чітко видно, що зображення стали більш схожими. - -## Як визначити межі для вашого додатку за допомогою мета-промптів - -У нашому демо ми вже можемо генерувати зображення для клієнтів. Проте нам потрібно встановити певні межі для додатку. - -Наприклад, ми не хочемо створювати зображення, які не підходять для роботи (NSFW) або неприйнятні для дітей. - -Цього можна досягти за допомогою _мета-промптів_. Мета-промпти — це текстові промпти, які використовуються для контролю результату генеративної моделі. Наприклад, ми можемо використовувати мета-промпти, щоб гарантувати, що створені зображення будуть безпечними для роботи або підходящими для дітей. - -### Як це працює? - -Як працюють мета-промпти? - -Мета-промпти — це текстові промпти, які розміщуються перед основним текстовим промптом і використовуються для контролю результату моделі. Вони вбудовуються в додатки для контролю виходу моделі, об’єднуючи вхідний промпт і мета-промпт в один текстовий запит. - -Ось приклад мета-промпта: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Тепер подивимось, як ми можемо використовувати мета-промпти у нашому демо. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -З наведеного промпта видно, що всі створені зображення враховують мета-промпт. - -## Завдання — давайте допоможемо студентам - -Ми познайомилися зі стартапом Edu4All на початку уроку. Тепер настав час дати студентам можливість створювати зображення для своїх завдань. - -Студенти створюватимуть зображення з пам’ятками, які вони оберуть самі. Їх просять проявити креативність і розмістити ці пам’ятки в різних контекстах. - -## Розв’язок - -Ось один із можливих варіантів розв’язку: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Чудова робота! Продовжуйте навчання - -Після проходження цього уроку ознайомтеся з нашою [колекцією навчальних матеріалів з генеративного ШІ](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst), щоб продовжити підвищувати свої знання! - -Перейдіть до уроку 10, де ми розглянемо, як [створювати AI-додатки з мінімальним кодуванням](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**Відмова від відповідальності**: -Цей документ було перекладено за допомогою сервісу автоматичного перекладу [Co-op Translator](https://github.com/Azure/co-op-translator). Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ рідною мовою слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується звертатися до професійного людського перекладу. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу. \ No newline at end of file + + + + diff --git a/translations/uk/12-designing-ux-for-ai-applications/README.md b/translations/uk/12-designing-ux-for-ai-applications/README.md index b4ca1f357..b3cb7fa09 100644 --- a/translations/uk/12-designing-ux-for-ai-applications/README.md +++ b/translations/uk/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# Проєктування UX для AI-додатків - -[![Проєктування UX для AI-додатків](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.uk.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Натисніть на зображення вище, щоб переглянути відео цього уроку)_ - -Користувацький досвід — це дуже важливий аспект створення додатків. Користувачі повинні мати змогу ефективно використовувати ваш додаток для виконання завдань. Бути ефективним — це одне, але також потрібно проєктувати додатки так, щоб ними могли користуватися всі, роблячи їх _доступними_. Цей розділ зосередиться на цій темі, щоб ви в результаті створили додаток, який люди зможуть і захочуть використовувати. - -## Вступ - -Користувацький досвід — це те, як користувач взаємодіє з певним продуктом або послугою, будь то система, інструмент чи дизайн. Під час розробки AI-додатків розробники зосереджуються не лише на тому, щоб користувацький досвід був ефективним, а й етичним. У цьому уроці ми розглянемо, як створювати додатки штучного інтелекту (AI), які відповідають потребам користувачів. - -Урок охопить такі теми: - -- Вступ до користувацького досвіду та розуміння потреб користувачів -- Проєктування AI-додатків для довіри та прозорості -- Проєктування AI-додатків для співпраці та зворотного зв’язку - -## Цілі навчання - -Після проходження цього уроку ви зможете: - -- Розуміти, як створювати AI-додатки, що відповідають потребам користувачів. -- Проєктувати AI-додатки, які сприяють довірі та співпраці. - -### Передумови - -Приділіть час і прочитайте більше про [користувацький досвід та дизайн-мислення.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Вступ до користувацького досвіду та розуміння потреб користувачів - -У нашому вигаданому освітньому стартапі є дві основні групи користувачів — вчителі та учні. Кожна з цих груп має унікальні потреби. Орієнтований на користувача дизайн ставить користувача на перше місце, забезпечуючи, що продукти є релевантними та корисними для тих, для кого вони призначені. - -Додаток має бути **корисним, надійним, доступним і приємним** для забезпечення хорошого користувацького досвіду. - -### Зручність використання - -Бути корисним означає, що додаток має функціонал, який відповідає його призначенню, наприклад, автоматизація процесу оцінювання або створення флешкарток для повторення матеріалу. Додаток, який автоматизує оцінювання, повинен точно і ефективно виставляти бали за роботи учнів на основі заздалегідь визначених критеріїв. Аналогічно, додаток, що генерує флешкартки для повторення, має створювати релевантні та різноманітні запитання на основі своїх даних. - -### Надійність - -Бути надійним означає, що додаток може послідовно виконувати свої завдання без помилок. Однак AI, як і люди, не є досконалим і може допускати помилки. Додатки можуть стикатися з помилками або непередбаченими ситуаціями, які потребують втручання або корекції людиною. Як ви обробляєте помилки? У останньому розділі цього уроку ми розглянемо, як AI-системи та додатки проєктуються для співпраці та зворотного зв’язку. - -### Доступність - -Бути доступним означає розширювати користувацький досвід для користувачів з різними можливостями, включно з людьми з інвалідністю, щоб ніхто не залишався поза увагою. Дотримуючись принципів і рекомендацій з доступності, AI-рішення стають більш інклюзивними, зручними та корисними для всіх користувачів. - -### Приємність - -Бути приємним означає, що додаток приємно використовувати. Привабливий користувацький досвід може позитивно впливати на користувача, заохочуючи його повертатися до додатка та збільшуючи прибуток бізнесу. - -![зображення, що ілюструє UX у AI](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.uk.png) - -Не кожну проблему можна вирішити за допомогою AI. AI допомагає покращити ваш користувацький досвід, автоматизуючи ручні завдання або персоналізуючи взаємодію. - -## Проєктування AI-додатків для довіри та прозорості - -Побудова довіри є критично важливою при проєктуванні AI-додатків. Довіра гарантує, що користувач впевнений, що додаток виконає роботу, стабільно надаватиме результати, і ці результати відповідають його потребам. Ризики в цій сфері — це недовіра та надмірна довіра. Недовіра виникає, коли користувач майже не довіряє AI-системі, що призводить до відмови від вашого додатка. Надмірна довіра виникає, коли користувач переоцінює можливості AI-системи, що призводить до надмірної довіри. Наприклад, у випадку надмірної довіри до автоматизованої системи оцінювання вчитель може не перевіряти деякі роботи, щоб переконатися, що система працює правильно. Це може призвести до несправедливих або неточних оцінок для учнів або втрати можливостей для зворотного зв’язку та покращення. - -Два способи забезпечити, щоб довіра була в центрі дизайну — це пояснюваність і контроль. - -### Пояснюваність - -Коли AI допомагає приймати рішення, наприклад, передавати знання майбутнім поколінням, важливо, щоб вчителі та батьки розуміли, як приймаються рішення AI. Це і є пояснюваність — розуміння того, як AI-додатки приймають рішення. Проєктування з урахуванням пояснюваності включає додавання прикладів того, що може робити AI-додаток. Наприклад, замість "Почніть з AI-вчителя" система може використовувати: "Підсумуйте свої нотатки для легшого повторення за допомогою AI." - -![сторінка додатка з чіткою ілюстрацією пояснюваності в AI-додатках](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.uk.png) - -Інший приклад — як AI використовує дані користувача та персональні дані. Наприклад, користувач із роллю студента може мати обмеження, пов’язані з його роллю. AI може не розкривати відповіді на запитання, але може допомогти користувачу подумати, як розв’язати проблему. - -![AI відповідає на запитання на основі ролі користувача](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.uk.png) - -Останній ключовий аспект пояснюваності — спрощення пояснень. Учні та вчителі можуть не бути експертами в AI, тому пояснення того, що додаток може або не може робити, мають бути простими та зрозумілими. - -![спрощені пояснення можливостей AI](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.uk.png) - -### Контроль - -Генеративний AI створює співпрацю між AI та користувачем, де, наприклад, користувач може змінювати запити для отримання різних результатів. Крім того, після генерації результату користувачі повинні мати змогу змінювати його, отримуючи відчуття контролю. Наприклад, у Bing ви можете налаштовувати запит за форматом, тоном і довжиною. Також можна вносити зміни у результат і редагувати його, як показано нижче: - -![Результати пошуку Bing з опціями для зміни запиту та результату](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.uk.png) - -Ще одна функція Bing, що дає користувачу контроль над додатком, — це можливість погоджуватися або відмовлятися від використання даних AI. Для шкільного додатка учень може захотіти використовувати свої нотатки, а також ресурси вчителів як матеріал для повторення. - -![Результати пошуку Bing з опціями для зміни запиту та результату](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.uk.png) - -> При проєктуванні AI-додатків важливо свідомо уникати надмірної довіри, щоб не створювати нереалістичних очікувань щодо їх можливостей. Один зі способів — створити певне тертя між запитами і результатами, нагадуючи користувачу, що це AI, а не інша людина. - -## Проєктування AI-додатків для співпраці та зворотного зв’язку - -Як уже згадувалося, генеративний AI створює співпрацю між користувачем і AI. Зазвичай користувач вводить запит, а AI генерує результат. Що, якщо результат неправильний? Як додаток обробляє помилки, якщо вони трапляються? Чи звинувачує AI користувача, чи пояснює помилку? - -AI-додатки мають бути створені для отримання та надання зворотного зв’язку. Це не лише допомагає системі AI покращуватися, а й будує довіру з користувачами. У дизайні має бути передбачений цикл зворотного зв’язку, наприклад, просте схвалення або несхвалення результату. - -Ще один спосіб — чітко комунікувати можливості та обмеження системи. Якщо користувач робить помилку, запитуючи щось поза межами можливостей AI, має бути спосіб це обробити, як показано нижче. - -![Надання зворотного зв’язку та обробка помилок](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.uk.png) - -Системні помилки поширені у додатках, де користувачу може знадобитися допомога з інформацією поза межами AI, або додаток може мати обмеження на кількість запитань/предметів, для яких можна створювати підсумки. Наприклад, AI-додаток, навчений на обмеженій кількості предметів, наприклад, історії та математики, може не впоратися з питаннями з географії. Щоб пом’якшити це, AI-система може відповісти так: "Вибачте, наш продукт навчений на даних з таких предметів..., я не можу відповісти на ваше запитання." - -AI-додатки не ідеальні, тому вони можуть помилятися. При проєктуванні додатків слід передбачити можливість отримання зворотного зв’язку від користувачів і обробки помилок у простий і зрозумілий спосіб. - -## Завдання - -Візьміть будь-які AI-додатки, які ви створили досі, і розгляньте можливість впровадження наступних кроків у вашому додатку: - -- **Приємність:** Подумайте, як зробити ваш додаток приємнішим. Чи додаєте ви пояснення скрізь? Чи заохочуєте користувача досліджувати? Як ви формулюєте повідомлення про помилки? - -- **Зручність використання:** Створюючи веб-додаток, переконайтеся, що ним можна керувати як мишею, так і клавіатурою. - -- **Довіра та прозорість:** Не довіряйте AI і його результатам повністю, подумайте, як додати людину до процесу для перевірки результатів. Також розгляньте й впровадьте інші способи забезпечення довіри та прозорості. - -- **Контроль:** Дайте користувачу контроль над даними, які він надає додатку. Реалізуйте можливість користувачу погоджуватися або відмовлятися від збору даних у AI-додатку. - -## Продовжуйте навчання! - -Після завершення цього уроку ознайомтеся з нашою [колекцією навчальних матеріалів з генеративного AI](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst), щоб продовжити підвищувати свої знання з генеративного AI! - -Перейдіть до Уроку 13, де ми розглянемо, як [забезпечити безпеку AI-додатків](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**Відмова від відповідальності**: -Цей документ було перекладено за допомогою сервісу автоматичного перекладу [Co-op Translator](https://github.com/Azure/co-op-translator). Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ рідною мовою слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується звертатися до професійного людського перекладу. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу. \ No newline at end of file + + + diff --git a/translations/uk/README.md b/translations/uk/README.md index 5dccde817..78430ac29 100644 --- a/translations/uk/README.md +++ b/translations/uk/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.uk.png) - -### 21 уроків, які навчать всьому необхідному для початку створення додатків на основі генеративного ШІ - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Підтримка кількох мов - -#### Підтримується через GitHub Action (автоматично та завжди актуально) - -[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](./README.md) | [Burmese (Myanmar)](../my/README.md) - -# Generative AI для початківців (версія 3) – Курс - -Вивчайте основи створення додатків на основі генеративного ШІ за допомогою нашого комплексного курсу з 21 уроку від Microsoft Cloud Advocates. - -## 🌱 Початок роботи - -Цей курс складається з 21 уроку. Кожен урок охоплює окрему тему, тож починайте з будь-якого, який вам до вподоби! - -Уроки поділяються на "Learn" — уроки, що пояснюють концепції генеративного ШІ, та "Build" — уроки, які пояснюють концепцію та містять приклади коду на **Python** і **TypeScript**, коли це можливо. - -Для розробників .NET перегляньте [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -Кожен урок також містить розділ "Keep Learning" з додатковими навчальними матеріалами. - -## Що вам потрібно -### Для запуску коду цього курсу ви можете використовувати: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **Уроки:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **Уроки:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **Уроки:** "oai-assignment" - -- Базові знання Python або TypeScript будуть корисними – \*Для абсолютних початківців рекомендуємо ці курси з [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) та [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) -- Обліковий запис GitHub, щоб [форкнути цей репозиторій](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) до свого акаунту - -Ми створили урок **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)**, щоб допомогти вам налаштувати середовище розробки. - -Не забудьте [поставити зірочку (🌟) цьому репозиторію](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst), щоб легше було його знайти пізніше. - -## 🧠 Готові до розгортання? - -Якщо ви шукаєте більш складні приклади коду, перегляньте нашу [колекцію прикладів коду для генеративного ШІ](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) на **Python** та **TypeScript**. - -## 🗣️ Познайомтесь з іншими учнями, отримайте підтримку - -Приєднуйтесь до нашого [офіційного Discord-сервера Azure AI Foundry](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst), щоб познайомитися та поспілкуватися з іншими учнями цього курсу та отримати підтримку. - -Задавайте питання або діліться відгуками про продукт у нашому [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum) на GitHub. - -## 🚀 Створюєте стартап? - -Зареєструйтесь у [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst), щоб отримати **безкоштовні кредити OpenAI** та до **150 000 доларів на кредити Azure для доступу до моделей OpenAI через Azure OpenAI Services**. - -## 🙏 Хочете допомогти? - -Маєте пропозиції або знайшли помилки у тексті чи коді? [Створіть issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) або [зробіть pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 Кожен урок містить: - -- Коротке відео-вступ до теми -- Письмовий урок у README -- Приклади коду на Python та TypeScript з підтримкою Azure OpenAI та OpenAI API -- Посилання на додаткові ресурси для подальшого навчання - -## 🗃️ Уроки - -| # | **Посилання на урок** | **Опис** | **Відео** | **Додаткове навчання** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Як налаштувати середовище розробки | Відео скоро з’явиться | [Дізнатись більше](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introduction to Generative AI and LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Розуміння, що таке генеративний ШІ та як працюють великі мовні моделі (LLMs) | [Відео](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Дізнатись більше](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Exploring and comparing different LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Як обрати правильну модель для вашого випадку використання | [Відео](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Дізнатись більше](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Using Generative AI Responsibly](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Як відповідально створювати додатки на основі генеративного ШІ | [Відео](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Дізнатись більше](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Understanding Prompt Engineering Fundamentals](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Практичні найкращі практики prompt engineering | [Відео](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Дізнатись більше](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Creating Advanced Prompts](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Як застосовувати техніки prompt engineering для покращення результатів ваших запитів | [Відео](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Дізнатись більше](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Створення додатків для генерації тексту](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Створіть:** додаток для генерації тексту з використанням Azure OpenAI / OpenAI API | [Відео](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Дізнатись більше](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Створення чат-додатків](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Створіть:** методи ефективного створення та інтеграції чат-додатків | [Відео](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Дізнатись більше](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Створення пошукових додатків з векторними базами даних](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Створіть:** пошуковий додаток, який використовує Embeddings для пошуку даних | [Відео](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Дізнатись більше](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Створення додатків для генерації зображень](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Створіть:** додаток для генерації зображень | [Відео](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Дізнатись більше](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Створення AI-додатків з низьким кодом](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Створіть:** генеративний AI-додаток з використанням Low Code інструментів | [Відео](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Дізнатись більше](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Інтеграція зовнішніх додатків з викликом функцій](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Створіть:** що таке function calling і як його використовувати в додатках | [Відео](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Дізнатись більше](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [Проєктування UX для AI-додатків](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Вивчіть:** як застосовувати принципи UX-дизайну при розробці генеративних AI-додатків | [Відео](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Дізнатись більше](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Захист ваших генеративних AI-додатків](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Вивчіть:** загрози та ризики для AI-систем і способи їх захисту | [Відео](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Дізнатись більше](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [Життєвий цикл генеративних AI-додатків](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Вивчіть:** інструменти та метрики для управління життєвим циклом LLM та LLMOps | [Відео](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Дізнатись більше](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) та векторні бази даних](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Створіть:** додаток з використанням RAG Framework для отримання embeddings з векторних баз | [Відео](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Дізнатись більше](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Відкриті моделі та Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Створіть:** додаток з використанням відкритих моделей, доступних на Hugging Face | [Відео](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Дізнатись більше](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI-агенти](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Створіть:** додаток з використанням AI Agent Framework | [Відео](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Дізнатись більше](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [Тонке налаштування LLM](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Вивчіть:** що таке, навіщо і як виконувати тонке налаштування LLM | [Відео](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Дізнатись більше](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Робота з SLM](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Вивчіть:** переваги роботи з Small Language Models | Відео скоро буде | [Дізнатись більше](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Робота з моделями Mistral](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Вивчіть:** особливості та відмінності моделей сімейства Mistral | Відео скоро буде | [Дізнатись більше](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Робота з моделями Meta](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Вивчіть:** особливості та відмінності моделей сімейства Meta | Відео скоро буде | [Дізнатись більше](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Особлива подяка - -Особлива подяка [**John Aziz**](https://www.linkedin.com/in/john0isaac/) за створення всіх GitHub Actions та робочих процесів - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) за ключовий внесок у кожен урок для покращення досвіду навчання та роботи з кодом. - -## 🎒 Інші курси - -Наша команда створює й інші курси! Ознайомтесь з ними: - -- [**НОВИЙ** Model Context Protocol для початківців](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI Agents для початківців](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Генеративний AI для початківців з .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Генеративний AI для початківців з JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML для початківців](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Data Science для початківців](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI для початківців](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Кібербезпека для початківців](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Веб-розробка для початківців](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT для початківців](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR-розробка для початківців](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Опановування GitHub Copilot для AI-парного програмування](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Опановування GitHub Copilot для розробників C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Обери свою пригоду з Copilot](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Відмова від відповідальності**: -Цей документ було перекладено за допомогою сервісу автоматичного перекладу [Co-op Translator](https://github.com/Azure/co-op-translator). Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ рідною мовою слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується звертатися до професійного людського перекладу. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу. \ No newline at end of file + + + + diff --git a/translations/ur/00-course-setup/01-setup-cloud.md b/translations/ur/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..5d6128ebf --- /dev/null +++ b/translations/ur/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/ur/00-course-setup/02-setup-local.md b/translations/ur/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..04ba79a81 --- /dev/null +++ b/translations/ur/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/ur/00-course-setup/03-providers.md b/translations/ur/00-course-setup/03-providers.md new file mode 100644 index 000000000..6a34294b1 --- /dev/null +++ b/translations/ur/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/ur/00-course-setup/README.md b/translations/ur/00-course-setup/README.md index 5c8f92578..2d3cae504 100644 --- a/translations/ur/00-course-setup/README.md +++ b/translations/ur/00-course-setup/README.md @@ -1,227 +1,12 @@ - -# اس کورس کے ساتھ شروعات - -ہم آپ کے اس کورس کو شروع کرنے اور دیکھنے کے لیے بہت پرجوش ہیں کہ آپ Generative AI کے ساتھ کیا کچھ تخلیق کرتے ہیں! - -آپ کی کامیابی کو یقینی بنانے کے لیے، یہ صفحہ سیٹ اپ کے مراحل، تکنیکی ضروریات، اور مدد حاصل کرنے کے ذرائع بیان کرتا ہے۔ - -## سیٹ اپ کے مراحل - -اس کورس کو شروع کرنے کے لیے، آپ کو درج ذیل مراحل مکمل کرنے ہوں گے۔ - -### 1. اس ریپو کو فورک کریں - -اپنے GitHub اکاؤنٹ پر [اس پورے ریپو کو فورک کریں](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) تاکہ آپ کسی بھی کوڈ میں تبدیلی کر سکیں اور چیلنجز مکمل کر سکیں۔ آپ اسے اور متعلقہ ریپوز کو آسانی سے تلاش کرنے کے لیے [اس ریپو کو اسٹار (🌟) بھی کر سکتے ہیں](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst)۔ - -### 2. کوڈ اسپیس بنائیں - -کوڈ چلانے کے دوران کسی بھی انحصاری کے مسائل سے بچنے کے لیے، ہم تجویز کرتے ہیں کہ آپ یہ کورس [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst) میں چلائیں۔ - -یہ آپ کے فورک کیے ہوئے ریپو میں `Code` آپشن منتخب کر کے اور پھر **Codespaces** آپشن چن کر بنایا جا سکتا ہے۔ - -![کوڈ اسپیس بنانے کے بٹن دکھانے والا ڈائیلاگ](../../../00-course-setup/images/who-will-pay.webp) - -### 3. اپنے API کیز محفوظ کریں - -کسی بھی قسم کی ایپلیکیشن بناتے وقت اپنے API کیز کو محفوظ رکھنا بہت ضروری ہے۔ ہم تجویز کرتے ہیں کہ API کیز کو براہ راست اپنے کوڈ میں نہ رکھیں۔ اگر آپ یہ تفصیلات کسی پبلک ریپوزٹری میں کمیٹ کر دیں تو یہ سیکیورٹی کے مسائل اور غیر متوقع اخراجات کا باعث بن سکتا ہے، خاص طور پر اگر کوئی بدنیت شخص ان کا غلط استعمال کرے۔ - -یہاں Python کے لیے `.env` فائل بنانے اور `GITHUB_TOKEN` شامل کرنے کا مرحلہ وار طریقہ ہے: - -1. **اپنے پروجیکٹ ڈائریکٹری میں جائیں**: اپنا ٹرمینل یا کمانڈ پرامپٹ کھولیں اور اس پروجیکٹ کی روٹ ڈائریکٹری میں جائیں جہاں آپ `.env` فائل بنانا چاہتے ہیں۔ - - ```bash - cd path/to/your/project - ``` - -2. **`.env` فائل بنائیں**: اپنی پسندیدہ ٹیکسٹ ایڈیٹر سے `.env` نامی نئی فائل بنائیں۔ اگر آپ کمانڈ لائن استعمال کر رہے ہیں تو Unix-based سسٹمز پر `touch` یا Windows پر `echo` استعمال کر سکتے ہیں: - - Unix-based سسٹمز: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **`.env` فائل میں ترمیم کریں**: `.env` فائل کو کسی ٹیکسٹ ایڈیٹر (جیسے VS Code، Notepad++، یا کوئی اور) میں کھولیں۔ اس فائل میں درج ذیل لائن شامل کریں، اور `your_github_token_here` کو اپنے اصل GitHub ٹوکن سے بدل دیں: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **فائل محفوظ کریں**: تبدیلیاں محفوظ کریں اور ٹیکسٹ ایڈیٹر بند کر دیں۔ - -5. **`python-dotenv` انسٹال کریں**: اگر آپ نے پہلے سے نہیں کیا تو، آپ کو `python-dotenv` پیکیج انسٹال کرنا ہوگا تاکہ آپ کی Python ایپلیکیشن `.env` فائل سے ماحول کی متغیرات لوڈ کر سکے۔ آپ اسے `pip` کے ذریعے انسٹال کر سکتے ہیں: - - ```bash - pip install python-dotenv - ``` - -6. **اپنے Python اسکرپٹ میں ماحول کی متغیرات لوڈ کریں**: اپنے Python اسکرپٹ میں `python-dotenv` پیکیج استعمال کریں تاکہ `.env` فائل سے ماحول کی متغیرات لوڈ کی جا سکیں: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -بس! آپ نے کامیابی سے `.env` فائل بنائی، اپنا GitHub ٹوکن شامل کیا، اور اسے اپنی Python ایپلیکیشن میں لوڈ کر لیا۔ - -## اپنے کمپیوٹر پر لوکل طور پر کوڈ چلانا - -اپنے کمپیوٹر پر کوڈ چلانے کے لیے، آپ کے پاس [Python کا کوئی ورژن انسٹال ہونا چاہیے](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst)۔ - -اس کے بعد ریپوزٹری استعمال کرنے کے لیے، آپ کو اسے کلون کرنا ہوگا: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -جب آپ کے پاس سب کچھ تیار ہو جائے، تو آپ شروع کر سکتے ہیں! - -## اختیاری مراحل - -### Miniconda انسٹال کرنا - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) ایک ہلکا پھلکا انسٹالر ہے جو [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst)، Python، اور چند پیکیجز انسٹال کرنے کے لیے استعمال ہوتا ہے۔ -Conda خود ایک پیکیج مینیجر ہے جو مختلف Python [**ورچوئل ماحول**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) اور پیکیجز کو آسانی سے سیٹ اپ اور سوئچ کرنے میں مدد دیتا ہے۔ یہ ان پیکیجز کو انسٹال کرنے میں بھی مددگار ہے جو `pip` کے ذریعے دستیاب نہیں ہوتے۔ - -آپ [MiniConda انسٹالیشن گائیڈ](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) پر عمل کر کے اسے سیٹ اپ کر سکتے ہیں۔ - -Miniconda انسٹال کرنے کے بعد، اگر آپ نے پہلے نہیں کیا تو [ریپوزٹری](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) کلون کریں۔ - -اس کے بعد، آپ کو ایک ورچوئل ماحول بنانا ہوگا۔ Conda کے ساتھ یہ کرنے کے لیے، ایک نیا ماحول فائل (_environment.yml_) بنائیں۔ اگر آپ Codespaces استعمال کر رہے ہیں تو اسے `.devcontainer` ڈائریکٹری میں بنائیں، یعنی `.devcontainer/environment.yml`۔ - -اپنے ماحول کی فائل میں نیچے دیا گیا کوڈ شامل کریں: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -اگر آپ کو conda استعمال کرتے ہوئے ایرر آ رہے ہیں تو آپ ٹرمینل میں درج ذیل کمانڈ کے ذریعے Microsoft AI Libraries دستی طور پر انسٹال کر سکتے ہیں۔ - -``` -conda install -c microsoft azure-ai-ml -``` - -ماحول کی فائل میں وہ انحصار شامل ہوتے ہیں جن کی ہمیں ضرورت ہے۔ `` سے مراد وہ نام ہے جو آپ اپنے Conda ماحول کے لیے استعمال کرنا چاہتے ہیں، اور `` Python کا وہ ورژن ہے جو آپ استعمال کرنا چاہتے ہیں، مثلاً `3` Python کا تازہ ترین بڑا ورژن ہے۔ - -یہ سب کرنے کے بعد، آپ نیچے دی گئی کمانڈز چلا کر اپنا Conda ماحول بنا سکتے ہیں: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -اگر آپ کو کوئی مسئلہ ہو تو [Conda environments guide](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst) دیکھیں۔ - -### Visual Studio Code کو Python سپورٹ ایکسٹینشن کے ساتھ استعمال کرنا - -ہم اس کورس کے لیے [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) ایڈیٹر کو [Python سپورٹ ایکسٹینشن](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) کے ساتھ استعمال کرنے کی سفارش کرتے ہیں۔ یہ صرف ایک سفارش ہے، لازمی شرط نہیں۔ - -> **نوٹ**: جب آپ کورس ریپوزٹری کو VS Code میں کھولیں گے، تو آپ کے پاس پروجیکٹ کو کنٹینر کے اندر سیٹ اپ کرنے کا آپشن ہوگا۔ یہ اس لیے ممکن ہے کیونکہ کورس ریپوزٹری میں [خاص `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) ڈائریکٹری موجود ہے۔ اس پر بعد میں مزید بات ہوگی۔ - -> **نوٹ**: جب آپ ریپوزٹری کو کلون کر کے VS Code میں کھولیں گے، تو یہ خود بخود آپ کو Python سپورٹ ایکسٹینشن انسٹال کرنے کی تجویز دے گا۔ - -> **نوٹ**: اگر VS Code آپ کو ریپوزٹری کو کنٹینر میں دوبارہ کھولنے کا کہے، تو اس درخواست کو مسترد کر دیں تاکہ آپ لوکل انسٹال شدہ Python ورژن استعمال کر سکیں۔ - -### براؤزر میں Jupyter استعمال کرنا - -آپ اس پروجیکٹ پر [Jupyter ماحول](https://jupyter.org?WT.mc_id=academic-105485-koreyst) کو اپنے براؤزر میں بھی استعمال کر سکتے ہیں۔ کلاسک Jupyter اور [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) دونوں ایک خوشگوار ڈیولپمنٹ ماحول فراہم کرتے ہیں جس میں آٹو کمپلیشن، کوڈ ہائی لائٹنگ وغیرہ جیسی خصوصیات شامل ہیں۔ - -Jupyter لوکل طور پر شروع کرنے کے لیے، ٹرمینل/کمانڈ لائن میں کورس ڈائریکٹری پر جائیں اور درج ذیل کمانڈ چلائیں: - -```bash -jupyter notebook -``` - -یا - -```bash -jupyterhub -``` - -یہ Jupyter کا ایک انسٹانس شروع کرے گا اور اس کا URL کمانڈ لائن ونڈو میں دکھایا جائے گا۔ - -جب آپ اس URL تک پہنچیں گے، تو آپ کورس کا خاکہ دیکھ سکیں گے اور کسی بھی `*.ipynb` فائل پر جا سکیں گے۔ مثلاً، `08-building-search-applications/python/oai-solution.ipynb`۔ - -### کنٹینر میں چلانا - -اپنے کمپیوٹر یا Codespace پر سب کچھ سیٹ اپ کرنے کا ایک متبادل طریقہ [کنٹینر](../../../00-course-setup/) استعمال کرنا ہے۔ کورس ریپوزٹری میں موجود خاص `.devcontainer` فولڈر VS Code کو پروجیکٹ کو کنٹینر کے اندر سیٹ اپ کرنے کی سہولت دیتا ہے۔ Codespaces کے علاوہ، اس کے لیے Docker انسٹال کرنا پڑے گا، اور یہ تھوڑا پیچیدہ کام ہے، اس لیے ہم اسے صرف ان لوگوں کو تجویز کرتے ہیں جنہیں کنٹینرز کے ساتھ کام کرنے کا تجربہ ہو۔ - -GitHub Codespaces استعمال کرتے ہوئے اپنے API کیز کو محفوظ رکھنے کا ایک بہترین طریقہ Codespace Secrets کا استعمال ہے۔ اس بارے میں مزید جاننے کے لیے [Codespaces secrets management](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) گائیڈ پر عمل کریں۔ - -## اسباق اور تکنیکی ضروریات - -کورس میں 6 تصوراتی اسباق اور 6 کوڈنگ اسباق شامل ہیں۔ - -کوڈنگ اسباق کے لیے، ہم Azure OpenAI Service استعمال کر رہے ہیں۔ آپ کو Azure OpenAI سروس تک رسائی اور API کی ضرورت ہوگی تاکہ یہ کوڈ چلایا جا سکے۔ آپ [یہ درخواست مکمل کر کے](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst) رسائی حاصل کر سکتے ہیں۔ - -جب تک آپ کی درخواست پر کارروائی ہو رہی ہو، ہر کوڈنگ سبق میں ایک `README.md` فائل بھی شامل ہوتی ہے جہاں آپ کوڈ اور آؤٹ پٹ دیکھ سکتے ہیں۔ - -## پہلی بار Azure OpenAI Service استعمال کرنا - -اگر آپ پہلی بار Azure OpenAI سروس استعمال کر رہے ہیں، تو براہ کرم اس گائیڈ پر عمل کریں کہ کیسے [Azure OpenAI Service resource بنائیں اور تعینات کریں۔](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## پہلی بار OpenAI API استعمال کرنا - -اگر آپ پہلی بار OpenAI API استعمال کر رہے ہیں، تو براہ کرم اس گائیڈ پر عمل کریں کہ کیسے [انٹرفیس بنائیں اور استعمال کریں۔](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## دوسرے سیکھنے والوں سے ملیں - -ہم نے اپنے سرکاری [AI Community Discord سرور](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) میں دوسرے سیکھنے والوں سے ملنے کے لیے چینلز بنائے ہیں۔ یہ دوسرے ہم خیال کاروباری افراد، تخلیق کاروں، طلباء، اور Generative AI میں مہارت حاصل کرنے کے خواہشمند افراد کے ساتھ نیٹ ورک بنانے کا بہترین ذریعہ ہے۔ - -[![ڈسکارڈ چینل میں شامل ہوں](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -پروجیکٹ ٹیم بھی اس Discord سرور پر موجود ہوگی تاکہ کسی بھی سیکھنے والے کی مدد کر سکے۔ - -## تعاون کریں - -یہ کورس ایک اوپن سورس اقدام ہے۔ اگر آپ بہتری کے مواقع یا مسائل دیکھیں، تو براہ کرم [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) بنائیں یا [GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) رپورٹ کریں۔ - -پروجیکٹ ٹیم تمام تعاون کو ٹریک کرے گی۔ اوپن سورس میں تعاون کرنا Generative AI میں اپنے کیریئر کو بنانے کا ایک شاندار طریقہ ہے۔ - -زیادہ تر تعاون کے لیے آپ کو Contributor License Agreement (CLA) سے اتفاق کرنا ہوگا، جس میں آپ یہ اعلان کرتے ہیں کہ آپ کے پاس اپنے تعاون کے حقوق دینے کا حق ہے اور آپ واقعی یہ حقوق دیتے ہیں۔ تفصیلات کے لیے [CLA, Contributor License Agreement ویب سائٹ](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst) دیکھیں۔ - -اہم: اس ریپو میں متن کا ترجمہ کرتے وقت، براہ کرم مشین ترجمہ استعمال نہ کریں۔ ہم ترجموں کی کمیونٹی کے ذریعے تصدیق کریں گے، اس لیے صرف ان زبانوں میں ترجمہ کے لیے رضاکار بنیں جن میں آپ ماہر ہوں۔ - -جب آپ pull request جمع کرائیں گے، تو CLA-bot خود بخود فیصلہ کرے گا کہ آیا آپ کو CLA فراہم کرنا ہے اور PR کو مناسب طریقے سے لیبل یا کمنٹ کرے گا۔ بس بوٹ کی ہدایات پر عمل کریں۔ آپ کو یہ صرف ایک بار تمام ریپوزٹریز میں کرنا ہوگا جو ہمارے CLA استعمال کرتی ہیں۔ - -اس پروجیکٹ نے [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst) اپنایا ہے۔ مزید معلومات کے لیے Code of Conduct FAQ پڑھیں یا کسی اضافی سوال یا تبصرے کے لیے [Email opencode](opencode@microsoft.com) سے رابطہ کریں۔ - -## چلیں شروع کرتے ہیں - -اب جب کہ آپ نے اس کورس کو مکمل کرنے کے لیے ضروری مراحل پورے کر لیے ہیں، تو چلیں شروع کرتے ہیں اور [Generative AI اور LLMs کا تعارف](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) حاصل کرتے ہیں۔ - -**دستخطی نوٹ**: -یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کے ذریعے ترجمہ کی گئی ہے۔ اگرچہ ہم درستگی کے لیے کوشاں ہیں، براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستیاں ہو سکتی ہیں۔ اصل دستاویز اپنی مادری زبان میں معتبر ماخذ سمجھی جانی چاہیے۔ اہم معلومات کے لیے پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کی ذمہ داری ہم پر عائد نہیں ہوتی۔ \ No newline at end of file + + + + diff --git a/translations/ur/00-course-setup/SETUP.md b/translations/ur/00-course-setup/SETUP.md deleted file mode 100644 index fbd27edcd..000000000 --- a/translations/ur/00-course-setup/SETUP.md +++ /dev/null @@ -1,149 +0,0 @@ - -# اپنا ڈیولپمنٹ ماحول سیٹ اپ کریں - -ہم نے اس ریپوزیٹری اور کورس کو ایک [development container](https://containers.dev?WT.mc_id=academic-105485-koreyst) کے ساتھ سیٹ اپ کیا ہے جس میں ایک یونیورسل رن ٹائم شامل ہے جو Python3، .NET، Node.js اور Java کی ڈیولپمنٹ کو سپورٹ کرتا ہے۔ متعلقہ کنفیگریشن `devcontainer.json` فائل میں دی گئی ہے جو اس ریپوزیٹری کی جڑ میں موجود `.devcontainer/` فولڈر میں ہے۔ - -dev container کو فعال کرنے کے لیے، اسے [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (کلاؤڈ ہوسٹڈ رن ٹائم کے لیے) یا [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (لوکل ڈیوائس پر رن ٹائم کے لیے) میں لانچ کریں۔ VS Code میں dev containers کے کام کرنے کے طریقہ کار کے بارے میں مزید جاننے کے لیے [یہ دستاویزات](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) پڑھیں۔ - -> [!TIP] -> ہم GitHub Codespaces استعمال کرنے کی سفارش کرتے ہیں کیونکہ یہ کم محنت میں جلد آغاز کے لیے بہترین ہے۔ یہ ذاتی اکاؤنٹس کے لیے ایک فراخدلانہ [مفت استعمال کوٹہ](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) فراہم کرتا ہے۔ اپنے کوٹہ کے استعمال کو زیادہ سے زیادہ کرنے کے لیے غیر فعال codespaces کو روکنے یا حذف کرنے کے لیے [timeouts](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) کو ترتیب دیں۔ - - -## 1. اسائنمنٹس کو چلانا - -ہر سبق میں _اختیاری_ اسائنمنٹس ہو سکتے ہیں جو ایک یا زیادہ پروگرامنگ زبانوں میں دیے جا سکتے ہیں، جن میں شامل ہیں: Python، .NET/C#، Java اور JavaScript/TypeScript۔ یہ سیکشن ان اسائنمنٹس کو چلانے کے حوالے سے عمومی رہنمائی فراہم کرتا ہے۔ - -### 1.1 Python اسائنمنٹس - -Python اسائنمنٹس یا تو ایپلیکیشنز (`.py` فائلیں) کی صورت میں دیے جاتے ہیں یا Jupyter notebooks (`.ipynb` فائلیں) کی شکل میں۔ -- نوٹ بک چلانے کے لیے، اسے Visual Studio Code میں کھولیں، پھر اوپر دائیں جانب _Select Kernel_ پر کلک کریں اور دکھائے گئے ڈیفالٹ Python 3 آپشن کو منتخب کریں۔ اب آپ _Run All_ کر کے نوٹ بک کو چلا سکتے ہیں۔ -- کمانڈ لائن سے Python ایپلیکیشنز چلانے کے لیے، اسائنمنٹ کی مخصوص ہدایات پر عمل کریں تاکہ درست فائلیں منتخب کریں اور مطلوبہ دلائل فراہم کریں۔ - -## 2. پرووائیڈرز کی کنفیگریشن - -اسائنمنٹس **ممکن ہے** کہ ایک یا زیادہ Large Language Model (LLM) ڈپلائمنٹس کے خلاف کام کرنے کے لیے سیٹ اپ کیے گئے ہوں، جو OpenAI، Azure یا Hugging Face جیسے سپورٹڈ سروس پرووائیڈرز کے ذریعے فراہم کیے جاتے ہیں۔ یہ ایک _hosted endpoint_ (API) فراہم کرتے ہیں جس تک ہم مناسب اسناد (API key یا token) کے ساتھ پروگرام کے ذریعے رسائی حاصل کر سکتے ہیں۔ اس کورس میں ہم ان پرووائیڈرز پر بات کرتے ہیں: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) مختلف ماڈلز کے ساتھ، جن میں کور GPT سیریز شامل ہے۔ - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) OpenAI ماڈلز کے لیے، جس میں انٹرپرائز تیاری پر توجہ دی گئی ہے۔ - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) اوپن سورس ماڈلز اور inference سرور کے لیے۔ - -**ان مشقوں کے لیے آپ کو اپنے ذاتی اکاؤنٹس استعمال کرنے ہوں گے**۔ اسائنمنٹس اختیاری ہیں، لہٰذا آپ اپنی دلچسپی کے مطابق ایک، تمام یا کوئی بھی پرووائیڈر سیٹ اپ کر سکتے ہیں۔ سائن اپ کے لیے کچھ رہنمائی: - -| سائن اپ | قیمت | API کی | پلے گراؤنڈ | تبصرے | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst)| [قیمتیں](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst)| [پروجیکٹ کی بنیاد پر](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [نو-کوڈ، ویب](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | متعدد ماڈلز دستیاب ہیں | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst)| [قیمتیں](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst)| [SDK Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst)| [Studio Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [رسائی کے لیے پہلے درخواست دینا ضروری ہے](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst)| -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [قیمتیں](https://huggingface.co/pricing) | [Access Tokens](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst)| [Hugging Chat میں محدود ماڈلز ہیں](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -اس ریپوزیٹری کو مختلف پرووائیڈرز کے ساتھ استعمال کے لیے _configure_ کرنے کے لیے نیچے دی گئی ہدایات پر عمل کریں۔ جو اسائنمنٹس کسی مخصوص پرووائیڈر کی ضرورت رکھتے ہیں ان کی فائل نیم میں درج ذیل ٹیگز میں سے کوئی ایک شامل ہوگا: - - `aoai` - Azure OpenAI endpoint، key کی ضرورت ہے - - `oai` - OpenAI endpoint، key کی ضرورت ہے - - `hf` - Hugging Face token کی ضرورت ہے - -آپ ایک، کوئی یا تمام پرووائیڈرز کو کنفیگر کر سکتے ہیں۔ متعلقہ اسائنمنٹس اسناد کی کمی پر ایرر دے دیں گے۔ - -### 2.1. `.env` فائل بنائیں - -ہم فرض کرتے ہیں کہ آپ نے اوپر دی گئی رہنمائی پڑھ لی ہے، متعلقہ پرووائیڈر کے ساتھ سائن اپ کر لیا ہے، اور مطلوبہ تصدیقی اسناد (API_KEY یا token) حاصل کر لی ہیں۔ Azure OpenAI کے معاملے میں، ہم فرض کرتے ہیں کہ آپ کے پاس Azure OpenAI سروس (endpoint) کی ایک درست ڈپلائمنٹ ہے جس میں کم از کم ایک GPT ماڈل چیٹ کمپلیشن کے لیے تعینات ہے۔ - -اگلا قدم آپ کے **لوکل ماحول کے متغیرات** کو درج ذیل طریقے سے ترتیب دینا ہے: - - -1. جڑ فولڈر میں `.env.copy` فائل تلاش کریں جس میں مندرجہ ذیل مواد ہونا چاہیے: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. اس فائل کو نیچے دیے گئے کمانڈ سے `.env` میں کاپی کریں۔ یہ فائل _gitignore-d_ ہے، جو رازوں کو محفوظ رکھتی ہے۔ - - ```bash - cp .env.copy .env - ``` - -3. اقدار کو پر کریں (دائیں جانب `=` کے بعد موجود پلیس ہولڈرز کو تبدیل کریں) جیسا کہ اگلے سیکشن میں بیان کیا گیا ہے۔ - -3. (اختیاری) اگر آپ GitHub Codespaces استعمال کرتے ہیں، تو آپ کے پاس ماحول کے متغیرات کو اس ریپوزیٹری سے منسلک _Codespaces secrets_ کے طور پر محفوظ کرنے کا اختیار ہے۔ اس صورت میں، آپ کو لوکل .env فائل سیٹ اپ کرنے کی ضرورت نہیں ہوگی۔ **تاہم، نوٹ کریں کہ یہ آپشن صرف GitHub Codespaces استعمال کرنے پر کام کرتا ہے۔** اگر آپ Docker Desktop استعمال کرتے ہیں تو پھر بھی .env فائل سیٹ اپ کرنا ضروری ہے۔ - - -### 2.2. `.env` فائل کو بھرنا - -آئیے متغیرات کے ناموں پر ایک نظر ڈالیں تاکہ سمجھ سکیں کہ وہ کیا ظاہر کرتے ہیں: - -| متغیر | وضاحت | -| :--- | :--- | -| HUGGING_FACE_API_KEY | یہ وہ یوزر ایکسیس ٹوکن ہے جو آپ نے اپنے پروفائل میں سیٹ کیا ہے | -| OPENAI_API_KEY | یہ غیر Azure OpenAI endpoints کے لیے سروس استعمال کرنے کی اجازت دینے والی کلید ہے | -| AZURE_OPENAI_API_KEY | یہ اس سروس کے لیے اجازت دینے والی کلید ہے | -| AZURE_OPENAI_ENDPOINT | یہ Azure OpenAI ریسورس کے لیے تعینات کردہ endpoint ہے | -| AZURE_OPENAI_DEPLOYMENT | یہ _text generation_ ماڈل کی ڈپلائمنٹ endpoint ہے | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | یہ _text embeddings_ ماڈل کی ڈپلائمنٹ endpoint ہے | -| | | - -نوٹ: آخری دو Azure OpenAI متغیرات چیٹ کمپلیشن (ٹیکسٹ جنریشن) اور ویکٹر سرچ (ایمبیڈنگز) کے لیے ڈیفالٹ ماڈل کی نمائندگی کرتے ہیں۔ انہیں سیٹ کرنے کی ہدایات متعلقہ اسائنمنٹس میں دی جائیں گی۔ - - -### 2.3 Azure کی کنفیگریشن: پورٹل سے - -Azure OpenAI endpoint اور key کی قدریں [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) میں ملیں گی، تو آئیے وہاں سے شروع کرتے ہیں۔ - -1. [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) پر جائیں -1. سائڈبار (بائیں مینو) میں **Keys and Endpoint** آپشن پر کلک کریں۔ -1. **Show Keys** پر کلک کریں - آپ کو درج ذیل نظر آئے گا: KEY 1، KEY 2 اور Endpoint۔ -1. AZURE_OPENAI_API_KEY کے لیے KEY 1 کی ویلیو استعمال کریں۔ -1. AZURE_OPENAI_ENDPOINT کے لیے Endpoint کی ویلیو استعمال کریں۔ - -اب ہمیں ان مخصوص ماڈلز کے endpoints کی ضرورت ہے جو ہم نے تعینات کیے ہیں۔ - -1. Azure OpenAI ریسورس کے لیے سائڈبار (بائیں مینو) میں **Model deployments** آپشن پر کلک کریں۔ -1. منزل کے صفحے پر، **Manage Deployments** پر کلک کریں۔ - -یہ آپ کو Azure OpenAI Studio ویب سائٹ پر لے جائے گا، جہاں ہم نیچے بیان کردہ دیگر اقدار تلاش کریں گے۔ - -### 2.4 Azure کی کنفیگریشن: اسٹوڈیو سے - -1. اوپر بیان کردہ طریقے سے اپنے ریسورس سے [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) پر جائیں۔ -1. موجودہ تعینات ماڈلز دیکھنے کے لیے سائڈبار (بائیں) میں **Deployments** ٹیب پر کلک کریں۔ -1. اگر آپ کا مطلوبہ ماڈل تعینات نہیں ہے، تو اسے تعینات کرنے کے لیے **Create new deployment** استعمال کریں۔ -1. آپ کو ایک _text-generation_ ماڈل کی ضرورت ہوگی - ہم سفارش کرتے ہیں: **gpt-35-turbo** -1. آپ کو ایک _text-embedding_ ماڈل کی ضرورت ہوگی - ہم سفارش کرتے ہیں: **text-embedding-ada-002** - -اب ماحول کے متغیرات کو اپ ڈیٹ کریں تاکہ وہ استعمال شدہ _Deployment name_ کی عکاسی کریں۔ یہ عام طور پر ماڈل کے نام کے برابر ہوتا ہے جب تک کہ آپ نے اسے واضح طور پر تبدیل نہ کیا ہو۔ مثال کے طور پر، آپ کے پاس ہو سکتا ہے: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**کام مکمل ہونے پر .env فائل کو محفوظ کرنا نہ بھولیں**۔ اب آپ فائل سے باہر نکل سکتے ہیں اور نوٹ بک چلانے کی ہدایات پر واپس جا سکتے ہیں۔ - -### 2.5 OpenAI کی کنفیگریشن: پروفائل سے - -آپ کی OpenAI API key آپ کے [OpenAI اکاؤنٹ](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) میں مل سکتی ہے۔ اگر آپ کے پاس نہیں ہے، تو آپ اکاؤنٹ بنا کر API key تخلیق کر سکتے ہیں۔ کلید حاصل کرنے کے بعد، آپ اسے `.env` فائل میں `OPENAI_API_KEY` متغیر میں بھر سکتے ہیں۔ - -### 2.6 Hugging Face کی کنفیگریشن: پروفائل سے - -آپ کا Hugging Face ٹوکن آپ کے پروفائل میں [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst) کے تحت ملے گا۔ انہیں عوامی طور پر پوسٹ یا شیئر نہ کریں۔ اس کے بجائے، اس پروجیکٹ کے استعمال کے لیے نیا ٹوکن بنائیں اور اسے `.env` فائل میں `HUGGING_FACE_API_KEY` متغیر کے تحت کاپی کریں۔ _نوٹ:_ یہ تکنیکی طور پر API key نہیں ہے لیکن تصدیق کے لیے استعمال ہوتا ہے، اس لیے ہم تسلسل کے لیے اسی نام کا استعمال کر رہے ہیں۔ - -**دستخطی دستبرداری**: -یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کے ذریعے ترجمہ کی گئی ہے۔ اگرچہ ہم درستگی کے لیے کوشاں ہیں، براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستیاں ہو سکتی ہیں۔ اصل دستاویز اپنی مادری زبان میں ہی معتبر ماخذ سمجھی جانی چاہیے۔ اہم معلومات کے لیے پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کی ذمہ داری ہم پر عائد نہیں ہوتی۔ \ No newline at end of file diff --git a/translations/ur/04-prompt-engineering-fundamentals/README.md b/translations/ur/04-prompt-engineering-fundamentals/README.md index bf1a63fa0..738fc1aff 100644 --- a/translations/ur/04-prompt-engineering-fundamentals/README.md +++ b/translations/ur/04-prompt-engineering-fundamentals/README.md @@ -1,458 +1,15 @@ - -# پرامپٹ انجینئرنگ کے بنیادی اصول - -[![Prompt Engineering Fundamentals](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.ur.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## تعارف -یہ ماڈیول جنریٹو AI ماڈلز میں مؤثر پرامپٹس بنانے کے لیے بنیادی تصورات اور تکنیکوں کا احاطہ کرتا ہے۔ آپ کا LLM کو پرامپٹ لکھنے کا طریقہ بھی اہمیت رکھتا ہے۔ ایک سوچ سمجھ کر تیار کیا گیا پرامپٹ بہتر معیار کا جواب حاصل کر سکتا ہے۔ لیکن _پرامپٹ_ اور _پرامپٹ انجینئرنگ_ جیسے اصطلاحات کا مطلب کیا ہے؟ اور میں LLM کو بھیجے جانے والے پرامپٹ _ان پٹ_ کو کیسے بہتر بنا سکتا ہوں؟ یہ وہ سوالات ہیں جن کے جواب ہم اس باب اور اگلے میں تلاش کریں گے۔ - -_جنریٹو AI_ صارف کی درخواستوں کے جواب میں نئی مواد (مثلاً متن، تصاویر، آڈیو، کوڈ وغیرہ) تخلیق کرنے کی صلاحیت رکھتا ہے۔ یہ کام _بڑے زبان کے ماڈلز_ جیسے OpenAI کے GPT ("Generative Pre-trained Transformer") سیریز کے ذریعے انجام دیتا ہے جو قدرتی زبان اور کوڈ کے استعمال کے لیے تربیت یافتہ ہوتے ہیں۔ - -اب صارفین ان ماڈلز کے ساتھ چیٹ جیسے معروف طریقوں سے بات چیت کر سکتے ہیں، بغیر کسی تکنیکی مہارت یا تربیت کے۔ یہ ماڈلز _پرامپٹ پر مبنی_ ہوتے ہیں — صارف ایک متن (پرامپٹ) بھیجتا ہے اور AI کا جواب (تکمیل) حاصل کرتا ہے۔ پھر وہ "AI سے بات چیت" کر کے، کئی بار پرامپٹ کو بہتر بناتے ہوئے، اس وقت تک جواب کو بہتر بنا سکتے ہیں جب تک وہ اپنی توقعات پر پورا نہ اترے۔ - -"پرامپٹس" اب جنریٹو AI ایپس کے لیے بنیادی _پروگرامنگ انٹرفیس_ بن چکے ہیں، جو ماڈلز کو بتاتے ہیں کہ کیا کرنا ہے اور واپس آنے والے جوابات کے معیار کو متاثر کرتے ہیں۔ "پرامپٹ انجینئرنگ" ایک تیزی سے بڑھتا ہوا شعبہ ہے جو پرامپٹس کے _ڈیزائن اور اصلاح_ پر توجہ دیتا ہے تاکہ بڑے پیمانے پر مستقل اور معیاری جوابات فراہم کیے جا سکیں۔ - -## سیکھنے کے مقاصد - -اس سبق میں، ہم جانیں گے کہ پرامپٹ انجینئرنگ کیا ہے، یہ کیوں اہم ہے، اور ہم کس طرح دیے گئے ماڈل اور ایپلیکیشن کے مقصد کے لیے زیادہ مؤثر پرامپٹس تیار کر سکتے ہیں۔ ہم پرامپٹ انجینئرنگ کے بنیادی تصورات اور بہترین طریقے سمجھیں گے — اور ایک انٹرایکٹو Jupyter Notebooks "sandbox" ماحول کے بارے میں جانیں گے جہاں ہم ان تصورات کو حقیقی مثالوں پر لاگو ہوتے دیکھ سکتے ہیں۔ - -اس سبق کے آخر تک ہم قابل ہوں گے: - -1. پرامپٹ انجینئرنگ کیا ہے اور یہ کیوں اہم ہے، بیان کریں۔ -2. پرامپٹ کے اجزاء کی وضاحت کریں اور یہ کیسے استعمال ہوتے ہیں۔ -3. پرامپٹ انجینئرنگ کے بہترین طریقے اور تکنیکیں سیکھیں۔ -4. سیکھی ہوئی تکنیکوں کو حقیقی مثالوں پر OpenAI endpoint کے ذریعے لاگو کریں۔ - -## اہم اصطلاحات - -پرامپٹ انجینئرنگ: AI ماڈلز کو مطلوبہ نتائج پیدا کرنے کی رہنمائی کے لیے ان پٹ کو ڈیزائن اور بہتر بنانے کا عمل۔ -ٹوکینائزیشن: متن کو چھوٹے حصوں (ٹوکینز) میں تبدیل کرنے کا عمل، جنہیں ماڈل سمجھ سکتا ہے اور پراسیس کر سکتا ہے۔ -انسٹرکشن-ٹیونڈ LLMs: بڑے زبان کے ماڈلز جو مخصوص ہدایات کے ساتھ بہتر ردعمل کے لیے فائن ٹیون کیے گئے ہیں۔ - -## سیکھنے کا سینڈباکس - -پرامپٹ انجینئرنگ فی الحال زیادہ فن ہے بجائے سائنس کے۔ اس میں مہارت حاصل کرنے کا بہترین طریقہ _زیادہ مشق_ کرنا اور آزمائش و خطا کا طریقہ اپنانا ہے جو ایپلیکیشن کے شعبے کی مہارت کو تجویز کردہ تکنیکوں اور ماڈل کی مخصوص اصلاحات کے ساتھ ملاتا ہے۔ - -اس سبق کے ساتھ دیا گیا Jupyter Notebook ایک _سینڈباکس_ ماحول فراہم کرتا ہے جہاں آپ جو کچھ سیکھتے ہیں اسے آزما سکتے ہیں — چاہے راستے میں یا آخر میں کوڈ چیلنج کے طور پر۔ مشقیں کرنے کے لیے آپ کو چاہیے: - -1. **Azure OpenAI API کی کلید** — تعینات شدہ LLM کے لیے سروس اینڈپوائنٹ۔ -2. **Python رن ٹائم** — جس میں نوٹ بک چلائی جا سکے۔ -3. **مقامی ماحول کے متغیرات** — _ابھی [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) کے مراحل مکمل کریں تاکہ تیار ہو جائیں_۔ - -نوٹ بک کے ساتھ _ابتدائی_ مشقیں آتی ہیں — لیکن آپ کو ترغیب دی جاتی ہے کہ اپنی _Markdown_ (تفصیل) اور _Code_ (پرامپٹ درخواستیں) شامل کریں تاکہ مزید مثالیں یا خیالات آزما سکیں — اور پرامپٹ ڈیزائن کے لیے اپنی سمجھ بوجھ بڑھا سکیں۔ - -## تصویری رہنمائی - -کیا آپ اس سبق کا مجموعی خاکہ جاننا چاہتے ہیں اس میں غوطہ لگانے سے پہلے؟ اس تصویری رہنمائی کو دیکھیں، جو آپ کو اہم موضوعات اور ہر ایک کے لیے کلیدی نکات کا اندازہ دیتی ہے جن پر آپ غور کر سکتے ہیں۔ سبق کا روڈ میپ آپ کو بنیادی تصورات اور چیلنجز کو سمجھنے سے لے کر متعلقہ پرامپٹ انجینئرنگ تکنیکوں اور بہترین طریقوں کے ذریعے ان کا حل کرنے تک لے جاتا ہے۔ نوٹ کریں کہ اس رہنمائی میں "ایڈوانسڈ تکنیکس" کا حصہ اس نصاب کے _اگلے_ باب میں شامل مواد کی طرف اشارہ کرتا ہے۔ - -![Illustrated Guide to Prompt Engineering](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.ur.png) - -## ہمارا اسٹارٹ اپ - -اب، آئیے بات کرتے ہیں کہ _یہ موضوع_ ہمارے اسٹارٹ اپ کے مشن سے کیسے جُڑا ہے جو [تعلیم میں AI کی جدت لانے](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst) کے لیے ہے۔ ہم _ذاتی نوعیت کی تعلیم_ کی AI سے چلنے والی ایپلیکیشنز بنانا چاہتے ہیں — تو آئیے سوچیں کہ ہمارے ایپلیکیشن کے مختلف صارفین پرامپٹس کو کیسے "ڈیزائن" کر سکتے ہیں: - -- **ایڈمنسٹریٹرز** AI سے کہہ سکتے ہیں کہ _نصاب کے ڈیٹا کا تجزیہ کرے تاکہ کورنگ میں خالی جگہوں کی نشاندہی ہو سکے۔_ AI نتائج کا خلاصہ کر سکتا ہے یا کوڈ کے ذریعے انہیں بصری شکل دے سکتا ہے۔ -- **اساتذہ** AI سے کہہ سکتے ہیں کہ _مخصوص سامعین اور موضوع کے لیے ایک سبق کا منصوبہ تیار کرے۔_ AI ذاتی نوعیت کا منصوبہ مخصوص فارمیٹ میں بنا سکتا ہے۔ -- **طلباء** AI سے کہہ سکتے ہیں کہ _مشکل مضمون میں ان کی رہنمائی کرے۔_ AI اب طلباء کو ان کی سطح کے مطابق اسباق، اشارے اور مثالیں دے سکتا ہے۔ - -یہ تو محض ابتدا ہے۔ [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) دیکھیں — ایک اوپن سورس پرامپٹس لائبریری جو تعلیمی ماہرین نے تیار کی ہے — تاکہ امکانات کا وسیع تر اندازہ ہو سکے! _کوشش کریں کہ ان پرامپٹس کو سینڈباکس میں یا OpenAI Playground میں چلائیں اور دیکھیں کیا ہوتا ہے!_ - - - -## پرامپٹ انجینئرنگ کیا ہے؟ - -ہم نے اس سبق کا آغاز **پرامپٹ انجینئرنگ** کی تعریف سے کیا کہ یہ ایک ایسا عمل ہے جس میں متن کے ان پٹ (پرامپٹس) کو _ڈیزائن اور بہتر_ کیا جاتا ہے تاکہ دیے گئے ایپلیکیشن کے مقصد اور ماڈل کے لیے مستقل اور معیاری جوابات (تکمیل) فراہم کیے جا سکیں۔ ہم اسے دو مرحلوں کے عمل کے طور پر سوچ سکتے ہیں: - -- دیے گئے ماڈل اور مقصد کے لیے ابتدائی پرامپٹ _ڈیزائن_ کرنا -- جواب کے معیار کو بہتر بنانے کے لیے پرامپٹ کو بار بار _بہتر_ کرنا - -یہ لازمی طور پر ایک آزمائش و خطا کا عمل ہے جس کے لیے صارف کی سمجھ بوجھ اور محنت درکار ہوتی ہے تاکہ بہترین نتائج حاصل ہوں۔ تو یہ کیوں اہم ہے؟ اس سوال کا جواب دینے کے لیے ہمیں پہلے تین تصورات سمجھنے ہوں گے: - -- _ٹوکینائزیشن_ = ماڈل پرامپٹ کو کیسے "دیکھتا" ہے -- _بیس LLMs_ = بنیادی ماڈل پرامپٹ کو کیسے "پروسیس" کرتا ہے -- _انسٹرکشن-ٹیونڈ LLMs_ = ماڈل اب "کاموں" کو کیسے سمجھ سکتا ہے - -### ٹوکینائزیشن - -ایک LLM پرامپٹس کو _ٹوکینز کے سلسلے_ کے طور پر دیکھتا ہے جہاں مختلف ماڈلز (یا ماڈل کے ورژنز) ایک ہی پرامپٹ کو مختلف طریقوں سے ٹوکینائز کر سکتے ہیں۔ چونکہ LLMs کو ٹوکینز پر تربیت دی جاتی ہے (خام متن پر نہیں)، اس لیے پرامپٹ کے ٹوکینائز ہونے کا طریقہ پیدا ہونے والے جواب کے معیار پر براہ راست اثر ڈالتا ہے۔ - -ٹوکینائزیشن کا اندازہ لگانے کے لیے، [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) جیسے ٹولز آزمائیں۔ اپنا پرامپٹ کاپی کریں — اور دیکھیں کہ یہ ٹوکینز میں کیسے تبدیل ہوتا ہے، خاص طور پر خالی جگہوں اور رموزِ اوقاف کے ہینڈلنگ پر دھیان دیں۔ نوٹ کریں کہ یہ مثال ایک پرانے LLM (GPT-3) کی ہے — اس لیے نئے ماڈل کے ساتھ آزمانے پر مختلف نتیجہ آ سکتا ہے۔ - -![Tokenization](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.ur.png) - -### تصور: بنیادی ماڈلز - -ایک بار پرامپٹ ٹوکینائز ہو جائے، تو ["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (یا بنیادی ماڈل) کا بنیادی کام اس سلسلے میں اگلے ٹوکین کی پیش گوئی کرنا ہوتا ہے۔ چونکہ LLMs کو وسیع متن کے ڈیٹا سیٹس پر تربیت دی گئی ہے، انہیں ٹوکینز کے درمیان شماریاتی تعلقات کا اچھا اندازہ ہوتا ہے اور وہ اعتماد کے ساتھ پیش گوئی کر سکتے ہیں۔ یاد رکھیں کہ وہ پرامپٹ یا ٹوکین کے الفاظ کا _معنی_ نہیں سمجھتے؛ وہ صرف ایک پیٹرن دیکھتے ہیں جسے وہ اپنی اگلی پیش گوئی سے "مکمل" کر سکتے ہیں۔ وہ اس سلسلے کی پیش گوئی جاری رکھ سکتے ہیں جب تک صارف مداخلت نہ کرے یا کوئی پہلے سے طے شدہ شرط پوری نہ ہو۔ - -کیا آپ دیکھنا چاہتے ہیں کہ پرامپٹ پر مبنی تکمیل کیسے کام کرتی ہے؟ اوپر دیا گیا پرامپٹ Azure OpenAI Studio کے [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) میں ڈیفالٹ سیٹنگز کے ساتھ داخل کریں۔ نظام پرامپٹس کو معلومات کی درخواست کے طور پر سمجھتا ہے — لہٰذا آپ کو ایسا جواب ملنا چاہیے جو اس سیاق و سباق کو پورا کرے۔ - -لیکن اگر صارف کچھ خاص دیکھنا چاہتا ہو جو کسی معیار یا کام کے مقصد پر پورا اترتا ہو؟ تب _انسٹرکشن-ٹیونڈ_ LLMs کا کردار آتا ہے۔ - -![Base LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.ur.png) - -### تصور: انسٹرکشن-ٹیونڈ LLMs - -ایک [انسٹرکشن-ٹیونڈ LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) بنیادی ماڈل سے شروع ہوتا ہے اور اسے مثالوں یا ان پٹ/آؤٹ پٹ جوڑوں (مثلاً، کثیر مرحلہ "پیغامات") کے ساتھ فائن ٹیون کرتا ہے جن میں واضح ہدایات ہو سکتی ہیں — اور AI کا جواب ان ہدایات کی پیروی کرنے کی کوشش کرتا ہے۔ - -یہ Reinforcement Learning with Human Feedback (RLHF) جیسی تکنیکوں کا استعمال کرتا ہے جو ماڈل کو _ہدایات پر عمل کرنے_ اور _فیڈبیک سے سیکھنے_ کی تربیت دیتی ہیں تاکہ وہ ایسے جوابات دے جو عملی استعمال کے لیے زیادہ موزوں اور صارف کے مقاصد کے مطابق ہوں۔ - -آئیے اسے آزمائیں — اوپر والے پرامپٹ پر واپس جائیں، لیکن اب _سسٹم میسج_ کو تبدیل کر کے درج ذیل ہدایت بطور سیاق و سباق فراہم کریں: - -> _آپ کو دی گئی معلومات کو دوسرے درجے کے طالب علم کے لیے خلاصہ کریں۔ نتیجہ ایک پیراگراف میں 3-5 بلٹ پوائنٹس تک محدود رکھیں۔_ - -دیکھیں کہ نتیجہ اب مطلوبہ مقصد اور فارمیٹ کے مطابق ڈھل گیا ہے؟ ایک استاد اب اس جواب کو اپنی کلاس کے سلائیڈز میں براہ راست استعمال کر سکتا ہے۔ - -![Instruction Tuned LLM Chat Completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.ur.png) - -## ہمیں پرامپٹ انجینئرنگ کی ضرورت کیوں ہے؟ - -اب جب کہ ہم جانتے ہیں کہ LLMs پرامپٹس کو کیسے پراسیس کرتے ہیں، آئیے بات کرتے ہیں کہ _ہمیں پرامپٹ انجینئرنگ کی ضرورت کیوں ہے۔_ اس کا جواب اس حقیقت میں مضمر ہے کہ موجودہ LLMs کئی چیلنجز پیش کرتے ہیں جو _قابل اعتماد اور مستقل تکمیل_ حاصل کرنا مشکل بنا دیتے ہیں اگر پرامپٹ کی تعمیر اور اصلاح پر محنت نہ کی جائے۔ مثلاً: - -1. **ماڈل کے جوابات تصادفی ہوتے ہیں۔** _ایک ہی پرامپٹ_ مختلف ماڈلز یا ماڈل کے ورژنز کے ساتھ مختلف جوابات دے سکتا ہے۔ اور یہ ایک ہی ماڈل کے ساتھ مختلف اوقات میں بھی مختلف نتائج دے سکتا ہے۔ _پرامپٹ انجینئرنگ تکنیکیں ان تغیرات کو کم کرنے میں مدد دیتی ہیں بہتر گارڈ ریلز فراہم کر کے۔_ - -2. **ماڈلز جوابات گھڑ سکتے ہیں۔** ماڈلز کو _بڑے مگر محدود_ ڈیٹا سیٹس پر تربیت دی جاتی ہے، جس کا مطلب ہے کہ انہیں تربیت کے دائرہ کار سے باہر کے تصورات کا علم نہیں ہوتا۔ نتیجتاً، وہ ایسے جوابات دے سکتے ہیں جو غلط، خیالی، یا معروف حقائق کے خلاف ہوں۔ _پرامپٹ انجینئرنگ تکنیکیں صارفین کو ایسی گھڑتوں کی نشاندہی اور ان پر قابو پانے میں مدد دیتی ہیں، مثلاً AI سے حوالہ جات یا منطق طلب کر کے۔_ - -3. **ماڈلز کی صلاحیتیں مختلف ہوں گی۔** نئے ماڈلز یا ماڈل کی نسلیں زیادہ صلاحیتیں رکھتی ہیں لیکن ان کے ساتھ منفرد خامیاں اور لاگت و پیچیدگی کے مسائل بھی آتے ہیں۔ _پرامپٹ انجینئرنگ ہمیں بہترین طریقے اور ورک فلو تیار کرنے میں مدد دیتی ہے جو فرق کو چھپاتے ہیں اور ماڈل کی مخصوص ضروریات کے مطابق بڑے پیمانے پر اور آسانی سے ڈھل جاتے ہیں۔_ - -آئیے اسے OpenAI یا Azure OpenAI Playground میں عملی طور پر دیکھیں: - -- مختلف LLM تعیناتیوں (مثلاً OpenAI، Azure OpenAI، Hugging Face) کے ساتھ ایک ہی پرامپٹ استعمال کریں — کیا آپ نے فرق محسوس کیا؟ -- ایک ہی LLM تعیناتی (مثلاً Azure OpenAI playground) کے ساتھ بار بار ایک ہی پرامپٹ استعمال کریں — یہ فرق کیسے مختلف تھے؟ - -### گھڑتوں کی مثال - -اس کورس میں، ہم اصطلاح **"fabrication"** استعمال کرتے ہیں تاکہ اس واقعے کی نشاندہی کی جا سکے جہاں LLMs اپنی تربیت یا دیگر حدود کی وجہ سے بعض اوقات حقائق کے خلاف معلومات پیدا کرتے ہیں۔ آپ نے اسے مقبول مضامین یا تحقیقی مقالوں میں _"hallucinations"_ کے طور پر بھی سنا ہوگا۔ تاہم، ہم سختی سے سفارش کرتے ہیں کہ _"fabrication"_ کا استعمال کریں تاکہ ہم غلطی سے اس رویے کو انسانی خصوصیت نہ دے دیں، جو ایک مشین کی پیداوار ہے۔ یہ [Responsible AI guidelines](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) کی اصطلاحات کے حوالے سے بھی حمایت کرتا ہے، اور ایسے الفاظ کو ہٹاتا ہے جو بعض سیاق و سباق میں توہین آمیز یا غیر شمولیتی سمجھے جا سکتے ہیں۔ - -کیا آپ جاننا چاہتے ہیں کہ گھڑتیں کیسے کام کرتی ہیں؟ ایک ایسا پرامپٹ سوچیں جو AI کو غیر موجود موضوع کے لیے مواد تیار کرنے کی ہدایت دیتا ہے (تاکہ یہ تربیتی ڈیٹا سیٹ میں نہ ملے)۔ مثال کے -# 2076 کی مریخی جنگ پر سبق کا منصوبہ - -## تعارف -2076 کی مریخی جنگ ایک اہم تاریخی واقعہ ہے جس نے انسانیت اور مریخ کے باشندوں کے تعلقات کو بدل کر رکھ دیا۔ اس سبق میں ہم اس جنگ کے اسباب، اہم واقعات، اور اس کے نتائج کا جائزہ لیں گے۔ - -## سبق کے مقاصد -- طلباء کو 2076 کی مریخی جنگ کی وجوہات اور پس منظر سے آگاہ کرنا -- جنگ کے دوران پیش آنے والے اہم واقعات کی تفہیم -- جنگ کے اثرات اور اس کے بعد کے حالات پر غور و فکر کرنا - -## سبق کا خاکہ - -### 1. پس منظر -- مریخ کی آبادکاری اور انسانی مداخلت -- وسائل کی کمی اور کشیدگی کی ابتدا - -### 2. جنگ کے اسباب -- سیاسی اور معاشی تنازعات -- ثقافتی اختلافات اور غلط فہمیاں - -### 3. اہم واقعات -- جنگ کا آغاز اور پہلی جھڑپیں -- کلیدی معرکے اور ان کے نتائج -- جنگ میں استعمال ہونے والی ٹیکنالوجی - -### 4. جنگ کے نتائج -- انسانی اور مریخی معاشروں پر اثرات -- امن معاہدے اور مستقبل کے امکانات - -## سرگرمیاں -- گروپ ڈسکشن: جنگ کے اسباب پر تبادلہ خیال -- نقشہ سازی: جنگ کے اہم مقامات کی نشاندہی -- تخلیقی تحریر: جنگ کے بعد کے منظرنامے پر مضمون - -## جائزہ -سبق کے آخر میں ایک مختصر کوئز لیا جائے گا تاکہ طلباء کی سمجھ بوجھ کا اندازہ لگایا جا سکے۔ - -## اضافی وسائل -- متعلقہ دستاویزی فلمیں اور مضامین -- آن لائن آرکائیوز اور تحقیقی مواد - ---- - -**نوٹ:** اس سبق کا مقصد طلباء کو تاریخی واقعات کی گہرائی میں لے جانا اور ان کے تجزیاتی سوچ کو فروغ دینا ہے۔ -ایک ویب سرچ نے مجھے دکھایا کہ مریخی جنگوں پر خیالی کہانیاں (مثلاً ٹیلی ویژن سیریز یا کتابیں) موجود ہیں — لیکن 2076 میں کوئی نہیں۔ عام فہم بھی ہمیں بتاتی ہے کہ 2076 _مستقبل_ میں ہے اور اس لیے اسے کسی حقیقی واقعے سے منسوب نہیں کیا جا سکتا۔ - -تو جب ہم یہ پرامپٹ مختلف LLM فراہم کنندگان کے ساتھ چلائیں تو کیا ہوتا ہے؟ - -> **Response 1**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.ur.png) - -> **Response 2**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.ur.png) - -> **Response 3**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.ur.png) - -جیسا کہ توقع تھی، ہر ماڈل (یا ماڈل کے ورژن) تھوڑا مختلف جواب دیتا ہے، جس کی وجہ اس کے تصادفی رویے اور ماڈل کی صلاحیتوں میں فرق ہے۔ مثال کے طور پر، ایک ماڈل آٹھویں جماعت کے طلبہ کو مخاطب کرتا ہے جبکہ دوسرا ہائی اسکول کے طالب علم کو فرض کرتا ہے۔ لیکن تینوں ماڈلز نے ایسے جوابات دیے جو ایک غیر مطلع صارف کو قائل کر سکتے ہیں کہ یہ واقعہ حقیقی تھا۔ - -پرامپٹ انجینئرنگ کی تکنیکیں جیسے _metaprompting_ اور _temperature configuration_ ماڈل کی تخلیقات کو کچھ حد تک کم کر سکتی ہیں۔ نئی پرامپٹ انجینئرنگ _architectures_ بھی نئے اوزار اور تکنیکیں بغیر رکاوٹ کے پرامپٹ کے بہاؤ میں شامل کرتی ہیں، تاکہ ان اثرات کو کم یا روک سکیں۔ - -## کیس اسٹڈی: GitHub Copilot - -آئیے اس سیکشن کو ختم کرتے ہیں اور دیکھتے ہیں کہ پرامپٹ انجینئرنگ حقیقی دنیا کے حل میں کیسے استعمال ہوتی ہے، ایک کیس اسٹڈی کے ذریعے: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst)۔ - -GitHub Copilot آپ کا "AI جوڑی پروگرامر" ہے — یہ ٹیکسٹ پرامپٹس کو کوڈ مکمل کرنے میں تبدیل کرتا ہے اور آپ کے ترقیاتی ماحول (مثلاً Visual Studio Code) میں مربوط ہوتا ہے تاکہ صارف کو آسان تجربہ فراہم کرے۔ نیچے دی گئی بلاگز کی سیریز میں دستاویزی طور پر بتایا گیا ہے کہ ابتدائی ورژن OpenAI Codex ماڈل پر مبنی تھا — انجینئرز نے جلد ہی ماڈل کو بہتر بنانے اور پرامپٹ انجینئرنگ کی تکنیکوں کو ترقی دینے کی ضرورت محسوس کی تاکہ کوڈ کی کوالٹی بہتر ہو۔ جولائی میں، انہوں نے [ایک بہتر AI ماڈل متعارف کرایا جو Codex سے آگے جاتا ہے](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) تاکہ تجاویز اور بھی تیز ہوں۔ - -ان کے سیکھنے کے سفر کو سمجھنے کے لیے بلاگز کو ترتیب سے پڑھیں۔ - -- **مئی 2023** | [GitHub Copilot آپ کے کوڈ کو سمجھنے میں بہتر ہو رہا ہے](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **مئی 2023** | [GitHub کے اندر: GitHub Copilot کے پیچھے LLMs کے ساتھ کام کرنا](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **جون 2023** | [GitHub Copilot کے لیے بہتر پرامپٹس کیسے لکھیں](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **جولائی 2023** | [.. GitHub Copilot بہتر AI ماڈل کے ساتھ Codex سے آگے جاتا ہے](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **جولائی 2023** | [پرامپٹ انجینئرنگ اور LLMs کے لیے ڈویلپر کا رہنما](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **ستمبر 2023** | [انٹرپرائز LLM ایپ کیسے بنائیں: GitHub Copilot سے سبق](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -آپ ان کے [انجینئرنگ بلاگ](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) میں بھی مزید پوسٹس دیکھ سکتے ہیں، جیسے [یہاں](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) جو دکھاتی ہیں کہ یہ ماڈلز اور تکنیکیں حقیقی دنیا کی ایپلیکیشنز چلانے کے لیے کیسے _لاگو_ کی جاتی ہیں۔ - ---- - - - -## پرامپٹ کی تشکیل - -ہم نے دیکھا کہ پرامپٹ انجینئرنگ کیوں اہم ہے — اب سمجھتے ہیں کہ پرامپٹس کیسے _تشکیل_ دیے جاتے ہیں تاکہ ہم مختلف تکنیکوں کا جائزہ لے سکیں اور مؤثر پرامپٹ ڈیزائن کر سکیں۔ - -### بنیادی پرامپٹ - -آئیے بنیادی پرامپٹ سے شروع کرتے ہیں: ایک ٹیکسٹ ان پٹ جو ماڈل کو بغیر کسی اضافی سیاق و سباق کے بھیجی جاتی ہے۔ مثال کے طور پر، جب ہم امریکی قومی ترانہ کے پہلے چند الفاظ OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst) کو بھیجتے ہیں تو یہ فوراً اگلی چند لائنیں مکمل کر دیتا ہے، جو بنیادی پیش گوئی کے رویے کی وضاحت کرتا ہے۔ - -| پرامپٹ (ان پٹ) | مکمل جواب (آؤٹ پٹ) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | ایسا لگتا ہے کہ آپ "The Star-Spangled Banner" کے بول شروع کر رہے ہیں، جو امریکہ کا قومی ترانہ ہے۔ مکمل بول یہ ہیں ... | - -### پیچیدہ پرامپٹ - -اب اس بنیادی پرامپٹ میں سیاق و سباق اور ہدایات شامل کرتے ہیں۔ [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) ہمیں ایک پیچیدہ پرامپٹ بنانے دیتا ہے جو _پیغامات_ کے مجموعے پر مشتمل ہوتا ہے: - -- ان پٹ/آؤٹ پٹ جوڑے جو _صارف_ کی ان پٹ اور _اسسٹنٹ_ کے جواب کی عکاسی کرتے ہیں۔ -- سسٹم پیغام جو اسسٹنٹ کے رویے یا شخصیت کے لیے سیاق و سباق طے کرتا ہے۔ - -اب درخواست نیچے دیے گئے فارم میں ہوتی ہے، جہاں _ٹوکینائزیشن_ مؤثر طریقے سے سیاق و سباق اور گفتگو سے متعلق معلومات کو پکڑتی ہے۔ سسٹم کے سیاق و سباق کو بدلنا اتنا ہی مؤثر ہو سکتا ہے جتنا کہ صارف کی ان پٹ کی فراہمی، جو مکمل جوابات کے معیار پر اثر انداز ہوتی ہے۔ - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### ہدایت پرامپٹ - -اوپر دیے گئے مثالوں میں، صارف کا پرامپٹ ایک سادہ ٹیکسٹ سوال تھا جسے معلومات کی درخواست کے طور پر سمجھا جا سکتا ہے۔ _ہدایت_ والے پرامپٹس میں، ہم اس ٹیکسٹ کو استعمال کر کے AI کو بہتر رہنمائی فراہم کرتے ہوئے کام کی تفصیل دے سکتے ہیں۔ مثال کے طور پر: - -| پرامپٹ (ان پٹ) | مکمل جواب (آؤٹ پٹ) | ہدایت کی قسم | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Write a description of the Civil War | _ایک سادہ پیراگراف واپس کیا_ | سادہ | -| Write a description of the Civil War. Provide key dates and events and describe their significance | _ایک پیراگراف کے بعد اہم واقعات کی تاریخوں کی فہرست اور وضاحتیں واپس کیں_ | پیچیدہ | -| Write a description of the Civil War in 1 paragraph. Provide 3 bullet points with key dates and their significance. Provide 3 more bullet points with key historical figures and their contributions. Return the output as a JSON file | _مزید تفصیلی معلومات ایک ٹیکسٹ باکس میں واپس کرتا ہے، جو JSON فارمیٹ میں ہوتی ہے اور آپ اسے کاپی پیسٹ کر کے فائل میں محفوظ اور تصدیق کر سکتے ہیں_ | پیچیدہ۔ فارمیٹ شدہ۔ | - -## بنیادی مواد - -اوپر دیے گئے مثالوں میں، پرامپٹ ابھی بھی کافی کھلا تھا، جس سے LLM کو یہ فیصلہ کرنے کی آزادی تھی کہ اس کے پری ٹرینڈ ڈیٹا سیٹ کا کون سا حصہ متعلقہ ہے۔ _بنیادی مواد_ ڈیزائن پیٹرن میں، ان پٹ ٹیکسٹ کو دو حصوں میں تقسیم کیا جاتا ہے: - -- ایک ہدایت (عمل) -- متعلقہ مواد (جو عمل کو متاثر کرتا ہے) - -یہاں ایک مثال ہے جہاں ہدایت ہے "اسے 2 جملوں میں خلاصہ کریں"۔ - -| پرامپٹ (ان پٹ) | مکمل جواب (آؤٹ پٹ) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. It is named after the Roman god Jupiter.[19] When viewed from Earth, Jupiter can be bright enough for its reflected light to cast visible shadows,[20] and is on average the third-brightest natural object in the night sky after the Moon and Venus.
**Summarize this in 2 short sentences** | مشتری، جو سورج سے پانچواں سیارہ ہے، نظام شمسی کا سب سے بڑا سیارہ ہے اور رات کے آسمان میں سب سے روشن اجسام میں سے ایک ہے۔ اسے رومی دیوتا مشتری کے نام سے جانا جاتا ہے، اور یہ ایک گیس دیو ہے جس کا وزن نظام شمسی کے تمام دیگر سیاروں کے مجموعے کے دو اور آدھے گنا ہے۔ | - -بنیادی مواد کے حصے کو مختلف طریقوں سے استعمال کیا جا سکتا ہے تاکہ ہدایات کو زیادہ مؤثر بنایا جا سکے: - -- **مثالیں** — ماڈل کو واضح ہدایت دینے کے بجائے، اسے مطلوبہ آؤٹ پٹ کی مثالیں دیں اور ماڈل خود پیٹرن سمجھ لے۔ -- **اشارے** — ہدایت کے بعد ایک "اشارہ" دیں جو مکمل جواب کو متحرک کرے، ماڈل کو زیادہ متعلقہ جوابات کی طرف رہنمائی کرے۔ -- **ٹیمپلیٹس** — یہ دہرائے جانے والے 'نسخے' ہوتے ہیں جن میں جگہ دار (variables) ہوتے ہیں جنہیں مخصوص ڈیٹا کے ساتھ حسب ضرورت بنایا جا سکتا ہے۔ - -آئیے ان کو عملی طور پر دیکھتے ہیں۔ - -### مثالوں کا استعمال - -یہ ایک طریقہ ہے جس میں آپ بنیادی مواد کو ماڈل کو مطلوبہ آؤٹ پٹ کی چند مثالیں "کھلاتے" ہیں تاکہ وہ پیٹرن سمجھ سکے۔ فراہم کردہ مثالوں کی تعداد کی بنیاد پر، ہم zero-shot prompting، one-shot prompting، few-shot prompting وغیرہ کر سکتے ہیں۔ - -اب پرامپٹ تین اجزاء پر مشتمل ہوتا ہے: - -- کام کی وضاحت -- مطلوبہ آؤٹ پٹ کی چند مثالیں -- ایک نئی مثال کی شروعات (جو ضمنی طور پر کام کی وضاحت بن جاتی ہے) - -| سیکھنے کی قسم | پرامپٹ (ان پٹ) | مکمل جواب (آؤٹ پٹ) | -| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| زیرو شاٹ | "The Sun is Shining". Translate to Spanish | "El Sol está brillando". | -| ون شاٹ | "The Sun is Shining" => ""El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| فیو شاٹ | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketball | -| | | | - -نوٹ کریں کہ زیرو شاٹ پرامپٹنگ میں ہمیں واضح ہدایت ("Translate to Spanish") دینی پڑی، لیکن ون شاٹ میں یہ ضمنی طور پر سمجھ آ جاتی ہے۔ فیو شاٹ مثال میں مزید مثالیں شامل کرنے سے ماڈلز بغیر اضافی ہدایات کے زیادہ درست اندازے لگا سکتے ہیں۔ - -### پرامپٹ اشارے - -بنیادی مواد کے استعمال کی ایک اور تکنیک _اشارے_ فراہم کرنا ہے بجائے مثالوں کے۔ اس صورت میں، ہم ماڈل کو ایک چھوٹا سا آغاز دیتے ہیں جو مطلوبہ جواب کے انداز کی نمائندگی کرتا ہے۔ ماڈل پھر اس اشارے کو لے کر اسی انداز میں جواب جاری رکھتا ہے۔ - -| اشاروں کی تعداد | پرامپٹ (ان پٹ) | مکمل جواب (آؤٹ پٹ) | -| :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. - -**Summarize This** | مشتری ہمارا نظام شمسی کا سب سے بڑا سیارہ ہے اور سورج سے پانچواں نمبر پر ہے۔ یہ ایک گیس دیو ہے جس کا وزن سورج کے وزن کا 1/1000 حصہ ہے، لیکن یہ تمام دوسرے سیاروں کے مجموعی وزن سے زیادہ بھاری ہے۔ قدیم تہذیبوں کو مشتری کے بارے میں طویل عرصے سے معلوم ہے، اور یہ آسانی سے رات کے آسمان میں نظر آتا ہے۔ | -| 1 | مشتری سورج سے پانچواں سیارہ ہے اور نظام شمسی کا سب سے بڑا سیارہ ہے۔ یہ ایک گیس دیو ہے جس کا وزن سورج کے وزن کا ایک ہزارواں حصہ ہے، لیکن نظام شمسی کے تمام دوسرے سیاروں کے مجموعی وزن سے ڈیڑھ گنا زیادہ ہے۔ مشتری رات کے آسمان میں آنکھ سے دیکھنے والے سب سے روشن اجسام میں سے ایک ہے، اور قدیم تہذیبوں کو تاریخ سے پہلے سے معلوم ہے۔
**Summarize This**
ہم نے جو سیکھا وہ یہ ہے کہ مشتری | سورج سے پانچواں سیارہ ہے اور نظام شمسی کا سب سے بڑا سیارہ ہے۔ یہ ایک گیس دیو ہے جس کا وزن سورج کے وزن کا ایک ہزارواں حصہ ہے، لیکن تمام دوسرے سیاروں کے مجموعی وزن سے ڈیڑھ گنا زیادہ ہے۔ یہ آسانی سے آنکھ سے دیکھا جا سکتا ہے اور قدیم زمانے سے جانا جاتا ہے۔ | -| 2 | مشتری سورج سے پانچواں سیارہ ہے اور نظام شمسی کا سب سے بڑا سیارہ ہے۔ یہ ایک گیس دیو ہے جس کا وزن سورج کے وزن کا ایک ہزارواں حصہ ہے، لیکن نظام شمسی کے تمام دوسرے سیاروں کے مجموعی وزن سے ڈیڑھ گنا زیادہ ہے۔ مشتری رات کے آسمان میں آنکھ سے دیکھنے والے سب سے روشن اجسام میں سے ایک ہے، اور قدیم تہذیبوں کو تاریخ سے پہلے سے معلوم ہے۔
**Summarize This**
ہم نے جو تین اہم حقائق سیکھے: | 1. مشتری سورج سے پانچواں سیارہ ہے اور نظام شمسی کا سب سے بڑا سیارہ ہے۔
2. یہ ایک گیس دیو ہے جس کا وزن سورج کے وزن کا ایک ہزارواں حصہ ہے...
3. مشتری قدیم زمانے سے آنکھ سے دیکھا جا سکتا ہے ... | -| | | | - -### Prompt Templates - -ایک پرامپٹ ٹیمپلیٹ ایک _پیشگی طے شدہ نسخہ_ ہوتا ہے جسے ضرورت کے مطابق محفوظ کر کے دوبارہ استعمال کیا جا سکتا ہے، تاکہ بڑے پیمانے پر صارف کے تجربات کو زیادہ مستقل بنایا جا سکے۔ اس کی سادہ شکل میں، یہ پرامپٹ کی مثالوں کا مجموعہ ہوتا ہے جیسے [OpenAI کی یہ مثال](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) جو انٹرایکٹو پرامپٹ اجزاء (صارف اور نظام کے پیغامات) اور API سے چلنے والی درخواست کے فارمیٹ دونوں فراہم کرتا ہے - تاکہ دوبارہ استعمال کی سہولت ہو۔ - -اس کی زیادہ پیچیدہ شکل میں، جیسے [LangChain کی یہ مثال](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst)، اس میں _پلیس ہولڈرز_ ہوتے ہیں جنہیں مختلف ذرائع (صارف کی ان پٹ، نظام کا سیاق و سباق، بیرونی ڈیٹا ذرائع وغیرہ) سے ڈیٹا کے ساتھ تبدیل کیا جا سکتا ہے تاکہ پرامپٹ کو متحرک طور پر تیار کیا جا سکے۔ اس سے ہمیں ایک لائبریری بنانے کی سہولت ملتی ہے جو پروگراماتی طور پر مستقل صارف تجربات فراہم کرنے کے لیے استعمال کی جا سکتی ہے۔ - -آخر میں، ٹیمپلیٹس کی اصل قدر _پرامپٹ لائبریریاں_ بنانے اور شائع کرنے کی صلاحیت میں ہے جو مخصوص عمودی ایپلیکیشن ڈومینز کے لیے ہوتی ہیں - جہاں پرامپٹ ٹیمپلیٹ اب _مخصوص سیاق و سباق یا مثالوں_ کے مطابق بہتر بنایا جاتا ہے تاکہ جوابات ہدف شدہ صارفین کے لیے زیادہ متعلقہ اور درست ہوں۔ [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) ریپوزیٹری اس طریقہ کار کی ایک عمدہ مثال ہے، جو تعلیمی شعبے کے لیے پرامپٹس کی لائبریری تیار کرتی ہے، جس میں اہم مقاصد جیسے سبق کی منصوبہ بندی، نصاب کی تیاری، طالب علم کی رہنمائی وغیرہ پر زور دیا گیا ہے۔ - -## Supporting Content - -اگر ہم پرامپٹ کی تشکیل کو ایک ہدایت (ٹاسک) اور ایک ہدف (بنیادی مواد) کے طور پر دیکھیں، تو _ثانوی مواد_ اضافی سیاق و سباق کی طرح ہوتا ہے جو ہم آؤٹ پٹ کو کسی نہ کسی طرح متاثر کرنے کے لیے فراہم کرتے ہیں۔ یہ ٹیوننگ پیرامیٹرز، فارمیٹنگ ہدایات، موضوع کی درجہ بندی وغیرہ ہو سکتے ہیں جو ماڈل کو اس کے جواب کو مطلوبہ صارف کے مقاصد یا توقعات کے مطابق ڈھالنے میں مدد دیتے ہیں۔ - -مثال کے طور پر: اگر ہمارے پاس نصاب کے تمام دستیاب کورسز کے بارے میں وسیع میٹا ڈیٹا (نام، وضاحت، سطح، میٹا ڈیٹا ٹیگز، انسٹرکٹر وغیرہ) کے ساتھ ایک کورس کیٹلاگ ہو: - -- ہم ہدایت دے سکتے ہیں کہ "فال 2023 کے لیے کورس کیٹلاگ کا خلاصہ بنائیں" -- ہم بنیادی مواد کے طور پر چند مطلوبہ آؤٹ پٹ کی مثالیں دے سکتے ہیں -- ہم ثانوی مواد کے طور پر دلچسپی کے 5 سب سے اہم "ٹیگز" کی نشاندہی کر سکتے ہیں۔ - -اب، ماڈل چند مثالوں کے ذریعے دکھائے گئے فارمیٹ میں خلاصہ فراہم کر سکتا ہے - لیکن اگر نتیجے میں متعدد ٹیگز ہوں، تو یہ ثانوی مواد میں دیے گئے 5 ٹیگز کو ترجیح دے سکتا ہے۔ - ---- - - - -## Prompting Best Practices - -اب جب کہ ہم جانتے ہیں کہ پرامپٹس کو کیسے _تشکیل_ دیا جا سکتا ہے، ہم سوچ سکتے ہیں کہ انہیں کیسے _ڈیزائن_ کیا جائے تاکہ بہترین طریقے اپنائے جا سکیں۔ ہم اسے دو حصوں میں سوچ سکتے ہیں - صحیح _ذہنیت_ رکھنا اور درست _تکنیکیں_ اپنانا۔ - -### Prompt Engineering Mindset - -پرامپٹ انجینئرنگ ایک آزمائش اور غلطی کا عمل ہے، اس لیے تین وسیع رہنما اصول ذہن میں رکھیں: - -1. **ڈومین کی سمجھ ضروری ہے۔** جواب کی درستگی اور مطابقت اس _ڈومین_ پر منحصر ہے جس میں وہ ایپلیکیشن یا صارف کام کر رہا ہو۔ اپنی سمجھ اور ڈومین کی مہارت استعمال کریں تاکہ **تکنیکوں کو مزید حسب ضرورت بنایا جا سکے**۔ مثلاً، اپنے نظام کے پرامپٹس میں _ڈومین مخصوص شخصیات_ متعین کریں، یا صارف کے پرامپٹس میں _ڈومین مخصوص ٹیمپلیٹس_ استعمال کریں۔ ثانوی مواد فراہم کریں جو ڈومین کے مخصوص سیاق و سباق کی عکاسی کرے، یا ماڈل کو واقف استعمال کے نمونوں کی طرف رہنمائی کے لیے _ڈومین مخصوص اشارے اور مثالیں_ استعمال کریں۔ - -2. **ماڈل کی سمجھ ضروری ہے۔** ہم جانتے ہیں کہ ماڈلز فطری طور پر تصادفی ہوتے ہیں۔ لیکن ماڈل کی تعمیل مختلف ہو سکتی ہے، جیسے کہ وہ کس تربیتی ڈیٹا سیٹ (پری ٹرینڈ نالج) کا استعمال کرتے ہیں، کون سی صلاحیتیں فراہم کرتے ہیں (مثلاً API یا SDK کے ذریعے)، اور کس قسم کے مواد کے لیے بہتر ہیں (مثلاً کوڈ، تصاویر، یا متن)۔ جس ماڈل کا آپ استعمال کر رہے ہیں اس کی طاقتوں اور حدود کو سمجھیں، اور اس علم کو استعمال کرتے ہوئے _کاموں کو ترجیح دیں_ یا _حسب ضرورت ٹیمپلیٹس_ بنائیں جو ماڈل کی صلاحیتوں کے لیے بہتر ہوں۔ - -3. **دہرانا اور تصدیق ضروری ہے۔** ماڈلز تیزی سے ترقی کر رہے ہیں، اور پرامپٹ انجینئرنگ کی تکنیکیں بھی۔ ایک ڈومین ماہر کے طور پر، آپ کے پاس اپنے مخصوص ایپلیکیشن کے لیے دیگر سیاق و سباق یا معیار ہو سکتے ہیں جو وسیع کمیونٹی پر لاگو نہ ہوں۔ پرامپٹ انجینئرنگ کے اوزار اور تکنیکیں استعمال کریں تاکہ پرامپٹ کی تشکیل کا آغاز کریں، پھر اپنے تجربے اور مہارت سے نتائج کو دہرائیں اور تصدیق کریں۔ اپنے مشاہدات کو ریکارڈ کریں اور ایک **علمی ذخیرہ** (مثلاً پرامپٹ لائبریریاں) بنائیں جو دوسروں کے لیے ایک نئی بنیاد کے طور پر کام کرے، تاکہ مستقبل میں تیزی سے بہتری کی جا سکے۔ - -## Best Practices - -اب ہم عام بہترین طریقے دیکھتے ہیں جو [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) اور [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst) کے ماہرین تجویز کرتے ہیں۔ - -| کیا | کیوں | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| تازہ ترین ماڈلز کا جائزہ لیں۔ | نئے ماڈلز میں بہتر خصوصیات اور معیار ہو سکتے ہیں - لیکن ان کی لاگت بھی زیادہ ہو سکتی ہے۔ ان کے اثرات کا جائزہ لیں، پھر منتقلی کے فیصلے کریں۔ | -| ہدایات اور سیاق و سباق کو الگ کریں۔ | چیک کریں کہ آیا آپ کا ماڈل/پرووائیڈر _حد بندی کنندگان_ متعین کرتا ہے تاکہ ہدایات، بنیادی اور ثانوی مواد کو واضح طور پر الگ کیا جا سکے۔ یہ ماڈلز کو ٹوکنز کو زیادہ درست وزن دینے میں مدد دے سکتا ہے۔ | -| واضح اور مخصوص رہیں۔ | مطلوبہ سیاق و سباق، نتیجہ، لمبائی، فارمیٹ، انداز وغیرہ کے بارے میں زیادہ تفصیل دیں۔ اس سے جوابات کا معیار اور مستقل مزاجی بہتر ہوگی۔ نسخے قابلِ استعمال ٹیمپلیٹس میں محفوظ کریں۔ | -| وضاحتی ہوں، مثالیں دیں۔ | ماڈلز "دکھائیں اور بتائیں" کے طریقہ کار پر بہتر ردعمل دے سکتے ہیں۔ `زیرو شاٹ` طریقہ سے شروع کریں جہاں آپ صرف ہدایت دیتے ہیں (مثالیں نہیں) پھر `فیو شاٹ` کے ذریعے چند مثالیں دے کر بہتر کریں۔ تشبیہات استعمال کریں۔ | -| جوابات کی شروعات کے لیے اشارے دیں | ماڈل کو مطلوبہ نتیجے کی طرف راغب کرنے کے لیے کچھ ابتدائی الفاظ یا جملے دیں جنہیں وہ جواب کی شروعات کے لیے استعمال کر سکے۔ | -| دہرائیں | کبھی کبھار ماڈل کو بار بار ہدایت دینی پڑ سکتی ہے۔ ہدایات کو بنیادی مواد سے پہلے اور بعد میں دیں، ہدایت اور اشارہ دونوں استعمال کریں، وغیرہ۔ دہرائیں اور تصدیق کریں کہ کیا بہتر کام کرتا ہے۔ | -| ترتیب اہم ہے | جس ترتیب میں آپ معلومات ماڈل کو دیتے ہیں، اس کا اثر آؤٹ پٹ پر پڑ سکتا ہے، خاص طور پر سیکھنے کی مثالوں میں، کیونکہ تازہ کاری کا رجحان ہوتا ہے۔ مختلف اختیارات آزمائیں تاکہ بہترین معلوم ہو۔ | -| ماڈل کو “باہر نکلنے” کا راستہ دیں | ماڈل کو ایک _فیل بیک_ جواب دیں جو وہ فراہم کر سکے اگر کسی وجہ سے ٹاسک مکمل نہ کر سکے۔ اس سے غلط یا فرضی جوابات کے امکانات کم ہو جاتے ہیں۔ | -| | | - -کسی بھی بہترین طریقے کی طرح، یاد رکھیں کہ _آپ کا تجربہ مختلف ہو سکتا ہے_ ماڈل، ٹاسک اور ڈومین کے لحاظ سے۔ انہیں ایک نقطہ آغاز کے طور پر استعمال کریں، اور دہرائیں تاکہ آپ کے لیے بہترین معلوم ہو۔ نئے ماڈلز اور اوزار دستیاب ہوتے رہیں، اپنے پرامپٹ انجینئرنگ کے عمل کا مسلسل جائزہ لیتے رہیں، خاص طور پر عمل کی توسیع پذیری اور جواب کے معیار پر توجہ دیتے ہوئے۔ - - - -## Assignment - -مبارک ہو! آپ سبق کے آخر تک پہنچ گئے ہیں! اب وقت ہے کہ ان تصورات اور تکنیکوں کو حقیقی مثالوں کے ساتھ آزمایا جائے! - -ہمارے اسائنمنٹ کے لیے، ہم ایک Jupyter Notebook استعمال کریں گے جس میں آپ مشقیں انٹرایکٹو طور پر مکمل کر سکتے ہیں۔ آپ اپنی مرضی سے Markdown اور Code سیلز بھی شامل کر کے خیالات اور تکنیکوں کو خود دریافت کر سکتے ہیں۔ - -### شروع کرنے کے لیے، ریپو کو فورک کریں، پھر - -- (تجویز کردہ) GitHub Codespaces لانچ کریں -- (متبادل) ریپو کو اپنے مقامی آلے پر کلون کریں اور Docker Desktop کے ساتھ استعمال کریں -- (متبادل) Notebook کو اپنی پسندیدہ رن ٹائم ماحول میں کھولیں۔ - -### اگلا، اپنے ماحول کے متغیرات ترتیب دیں - -- ریپو کی جڑ میں `.env.copy` فائل کو `.env` میں کاپی کریں اور `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` اور `AZURE_OPENAI_DEPLOYMENT` کی قدریں بھریں۔ پھر واپس [Learning Sandbox سیکشن](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) پر آئیں تاکہ سیکھ سکیں کہ کیسے۔ - -### پھر، Jupyter Notebook کھولیں - -- رن ٹائم کرنل منتخب کریں۔ اگر آپ آپشن 1 یا 2 استعمال کر رہے ہیں، تو بس ڈیولپمنٹ کنٹینر کی طرف سے فراہم کردہ Python 3.10.x کرنل منتخب کریں۔ - -آپ مشقیں چلانے کے لیے تیار ہیں۔ نوٹ کریں کہ یہاں کوئی _صحیح یا غلط_ جواب نہیں ہیں - صرف آزمائش اور غلطی کے ذریعے اختیارات کو دریافت کرنا اور ماڈل اور ایپلیکیشن ڈومین کے لیے کام کرنے والی چیزوں کی سمجھ بوجھ حاصل کرنا ہے۔ - -_اسی وجہ سے اس سبق میں کوئی کوڈ حل کے حصے نہیں ہیں۔ اس کے بجائے، Notebook میں "My Solution:" کے عنوان سے Markdown سیلز ہوں گے جو ایک مثال کے آؤٹ پٹ کو بطور حوالہ دکھائیں گے۔_ - - - -## Knowledge check - -مندرجہ ذیل میں سے کون سا پرامپٹ معقول بہترین طریقوں کے مطابق اچھا ہے؟ - -1. مجھے سرخ کار کی تصویر دکھائیں -2. مجھے سرخ کار کی تصویر دکھائیں جو Volvo کی ہے اور ماڈل XC90 ہے، جو ایک چٹان کے کنارے سورج غروب ہوتے ہوئے کھڑی ہے -3. مجھے سرخ کار کی تصویر دکھائیں جو Volvo کی ہے اور ماڈل XC90 ہے - -جواب: 2، یہ بہترین پرامپٹ ہے کیونکہ یہ "کیا" کی تفصیل دیتا ہے اور خاص باتیں بتاتا ہے (صرف کوئی بھی کار نہیں بلکہ مخصوص برانڈ اور ماڈل) اور مجموعی منظر بھی بیان کرتا ہے۔ 3 دوسرا بہترین ہے کیونکہ اس میں بھی کافی تفصیل ہے۔ - -## 🚀 Challenge - -دیکھیں کہ آپ "cue" تکنیک کو اس پرامپٹ کے ساتھ کیسے استعمال کر سکتے ہیں: جملہ مکمل کریں "مجھے سرخ کار کی تصویر دکھائیں جو Volvo کی ہے اور "۔ یہ کیا جواب دیتا ہے، اور آپ اسے کیسے بہتر بنائیں گے؟ - -## Great Work! Continue Your Learning - -کیا آپ مختلف پرامپٹ انجینئرنگ تصورات کے بارے میں مزید جاننا چاہتے ہیں؟ [continued learning page](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) پر جائیں جہاں اس موضوع پر دیگر بہترین وسائل دستیاب ہیں۔ - -سبق 5 پر جائیں جہاں ہم [advanced prompting techniques](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) کا جائزہ لیں گے! - -**دستخطی نوٹ**: -یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کے ذریعے ترجمہ کی گئی ہے۔ اگرچہ ہم درستگی کے لیے کوشاں ہیں، براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستیاں ہو سکتی ہیں۔ اصل دستاویز اپنی مادری زبان میں ہی معتبر ماخذ سمجھی جانی چاہیے۔ اہم معلومات کے لیے پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کی ذمہ داری ہم پر عائد نہیں ہوتی۔ \ No newline at end of file + + + + + + + diff --git a/translations/ur/09-building-image-applications/README.md b/translations/ur/09-building-image-applications/README.md index 45278eb54..420f5ca5f 100644 --- a/translations/ur/09-building-image-applications/README.md +++ b/translations/ur/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# امیج جنریشن ایپلیکیشنز بنانا - -[![Building Image Generation Applications](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.ur.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLMs صرف متن بنانے تک محدود نہیں ہیں۔ آپ متن کی وضاحتوں سے تصاویر بھی بنا سکتے ہیں۔ تصاویر کو ایک طریقہ کار کے طور پر استعمال کرنا کئی شعبوں میں بہت مفید ثابت ہو سکتا ہے، جیسے MedTech، فنِ تعمیر، سیاحت، گیم ڈیولپمنٹ اور دیگر۔ اس باب میں، ہم دو سب سے مقبول امیج جنریشن ماڈلز، DALL-E اور Midjourney، کا جائزہ لیں گے۔ - -## تعارف - -اس سبق میں ہم درج ذیل موضوعات پر بات کریں گے: - -- امیج جنریشن اور اس کی افادیت۔ -- DALL-E اور Midjourney کیا ہیں اور یہ کیسے کام کرتے ہیں۔ -- آپ ایک امیج جنریشن ایپ کیسے بنا سکتے ہیں۔ - -## سیکھنے کے مقاصد - -اس سبق کو مکمل کرنے کے بعد، آپ قابل ہوں گے: - -- ایک امیج جنریشن ایپلیکیشن بنانا۔ -- اپنی ایپلیکیشن کے لیے میٹا پرامپٹس کے ذریعے حدود متعین کرنا۔ -- DALL-E اور Midjourney کے ساتھ کام کرنا۔ - -## امیج جنریشن ایپلیکیشن کیوں بنائیں؟ - -امیج جنریشن ایپلیکیشنز جنریٹو AI کی صلاحیتوں کو دریافت کرنے کا بہترین طریقہ ہیں۔ انہیں مختلف مقاصد کے لیے استعمال کیا جا سکتا ہے، مثلاً: - -- **امیج ایڈیٹنگ اور سنتھیسس**۔ آپ مختلف استعمالات کے لیے تصاویر بنا سکتے ہیں، جیسے امیج ایڈیٹنگ اور امیج سنتھیسس۔ - -- **متعدد صنعتوں میں اطلاق**۔ انہیں Medtech، سیاحت، گیم ڈیولپمنٹ اور دیگر صنعتوں کے لیے تصاویر بنانے میں بھی استعمال کیا جا سکتا ہے۔ - -## منظرنامہ: Edu4All - -اس سبق کے حصے کے طور پر، ہم اپنے اسٹارٹ اپ Edu4All کے ساتھ کام جاری رکھیں گے۔ طلباء اپنی اسائنمنٹس کے لیے تصاویر بنائیں گے، اور یہ تصاویر بالکل طلباء کی مرضی پر منحصر ہوں گی، مثلاً اپنی کہانی کے لیے تصویری خاکے بنانا، کوئی نیا کردار تخلیق کرنا، یا اپنے خیالات اور تصورات کو بصری شکل دینا۔ - -اگر طلباء کلاس میں یادگاروں پر کام کر رہے ہوں تو Edu4All کے طلباء کچھ اس طرح کی تصاویر بنا سکتے ہیں: - -![Edu4All startup, class on monuments, Eiffel Tower](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.ur.png) - -ایسا پرامپٹ استعمال کرتے ہوئے: - -> "Dog next to Eiffel Tower in early morning sunlight" - -## DALL-E اور Midjourney کیا ہیں؟ - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) اور [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) دو سب سے مقبول امیج جنریشن ماڈلز ہیں، جو آپ کو پرامپٹس کے ذریعے تصاویر بنانے کی سہولت دیتے ہیں۔ - -### DALL-E - -آئیے DALL-E سے شروع کرتے ہیں، جو ایک جنریٹو AI ماڈل ہے جو متن کی وضاحتوں سے تصاویر بناتا ہے۔ - -> [DALL-E دو ماڈلز، CLIP اور diffused attention، کا مجموعہ ہے](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst)۔ - -- **CLIP**، ایک ماڈل ہے جو تصاویر اور متن سے ڈیٹا کی عددی نمائندگی (embeddings) بناتا ہے۔ - -- **Diffused attention**، ایک ماڈل ہے جو embeddings سے تصاویر بناتا ہے۔ DALL-E کو تصاویر اور متن کے ڈیٹا سیٹ پر تربیت دی گئی ہے اور یہ متن کی وضاحتوں سے تصاویر بنا سکتا ہے۔ مثال کے طور پر، DALL-E سے "ٹوپی پہنے بلی" یا "موہاک والے کتے" کی تصاویر بنائی جا سکتی ہیں۔ - -### Midjourney - -Midjourney بھی DALL-E کی طرح کام کرتا ہے، یہ متن کے پرامپٹس سے تصاویر بناتا ہے۔ Midjourney کو بھی ایسے پرامپٹس کے ذریعے تصاویر بنانے کے لیے استعمال کیا جا سکتا ہے جیسے "ٹوپی پہنے بلی" یا "موہاک والے کتے"۔ - -![Image generated by Midjourney, mechanical pigeon](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_تصویر کا ماخذ ویکیپیڈیا، تصویر Midjourney نے بنائی ہے_ - -## DALL-E اور Midjourney کیسے کام کرتے ہیں - -سب سے پہلے، [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst)۔ DALL-E ایک جنریٹو AI ماڈل ہے جو transformer آرکیٹیکچر پر مبنی ہے اور اس میں _autoregressive transformer_ استعمال ہوتا ہے۔ - -ایک _autoregressive transformer_ یہ طے کرتا ہے کہ ماڈل متن کی وضاحتوں سے تصاویر کیسے بنائے گا، یہ ایک وقت میں ایک پکسل بناتا ہے، پھر بنائی گئی پکسلز کو استعمال کرتے ہوئے اگلا پکسل بناتا ہے۔ یہ عمل نیورل نیٹ ورک کی کئی تہوں سے گزرتا ہے جب تک تصویر مکمل نہ ہو جائے۔ - -اس عمل کے ذریعے، DALL-E تصویر میں موجود خصوصیات، اشیاء، اور دیگر عناصر کو کنٹرول کرتا ہے۔ تاہم، DALL-E 2 اور 3 میں تصویر پر زیادہ کنٹرول ممکن ہے۔ - -## اپنی پہلی امیج جنریشن ایپلیکیشن بنانا - -تو امیج جنریشن ایپ بنانے کے لیے کیا چاہیے؟ آپ کو درج ذیل لائبریریاں درکار ہوں گی: - -- **python-dotenv**، یہ لائبریری آپ کے رازوں کو کوڈ سے الگ ایک _.env_ فائل میں محفوظ رکھنے کے لیے استعمال کی جاتی ہے۔ -- **openai**، یہ لائبریری OpenAI API کے ساتھ بات چیت کے لیے ہے۔ -- **pillow**، Python میں تصاویر کے ساتھ کام کرنے کے لیے۔ -- **requests**، HTTP درخواستیں بھیجنے کے لیے۔ - -1. ایک _.env_ فائل بنائیں اور اس میں درج ذیل معلومات شامل کریں: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - یہ معلومات Azure پورٹل میں "Keys and Endpoint" سیکشن سے حاصل کریں۔ - -1. مذکورہ لائبریریاں _requirements.txt_ فائل میں درج کریں: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. پھر، ورچوئل انوائرمنٹ بنائیں اور لائبریریاں انسٹال کریں: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - ونڈوز پر ورچوئل انوائرمنٹ بنانے اور فعال کرنے کے لیے یہ کمانڈز استعمال کریں: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. _app.py_ نامی فائل میں درج ذیل کوڈ شامل کریں: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -آئیے اس کوڈ کی وضاحت کرتے ہیں: - -- سب سے پہلے، ہم وہ لائبریریاں امپورٹ کرتے ہیں جن کی ضرورت ہے، جن میں OpenAI، dotenv، requests، اور Pillow شامل ہیں۔ - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- پھر، ہم _.env_ فائل سے ماحول کے متغیرات لوڈ کرتے ہیں۔ - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- اس کے بعد، ہم OpenAI API کے لیے endpoint، key، version اور type سیٹ کرتے ہیں۔ - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- پھر، ہم تصویر بناتے ہیں: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - اوپر دیا گیا کوڈ ایک JSON آبجیکٹ واپس کرتا ہے جس میں بنائی گئی تصویر کا URL ہوتا ہے۔ ہم اس URL کو استعمال کر کے تصویر ڈاؤن لوڈ کر کے فائل میں محفوظ کر سکتے ہیں۔ - -- آخر میں، ہم تصویر کھول کر اسے معیاری امیج ویور میں دکھاتے ہیں: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### تصویر بنانے والے کوڈ کی مزید تفصیل - -آئیے تصویر بنانے والے کوڈ کو تفصیل سے دیکھتے ہیں: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt**، وہ متن ہے جسے تصویر بنانے کے لیے استعمال کیا جاتا ہے۔ اس مثال میں، ہم پرامپٹ "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils" استعمال کر رہے ہیں۔ -- **size**، تصویر کا سائز ہے جو بنائی جائے گی۔ اس مثال میں، تصویر 1024x1024 پکسلز کی ہے۔ -- **n**، بنائی جانے والی تصاویر کی تعداد ہے۔ یہاں ہم دو تصاویر بنا رہے ہیں۔ -- **temperature**، ایک پیرامیٹر ہے جو جنریٹو AI ماڈل کے آؤٹ پٹ کی بے ترتیبی کو کنٹرول کرتا ہے۔ temperature کی قیمت 0 سے 1 کے درمیان ہوتی ہے، جہاں 0 کا مطلب ہے کہ آؤٹ پٹ مکمل طور پر متعین (deterministic) ہے اور 1 کا مطلب ہے کہ آؤٹ پٹ بے ترتیب (random) ہے۔ ڈیفالٹ ویلیو 0.7 ہے۔ - -آئندہ سیکشن میں ہم تصاویر کے ساتھ مزید کام کرنے کے امکانات پر بات کریں گے۔ - -## امیج جنریشن کی اضافی صلاحیتیں - -اب تک آپ نے دیکھا کہ ہم نے چند لائنوں کے Python کوڈ سے تصویر بنائی۔ لیکن تصاویر کے ساتھ اور بھی بہت کچھ کیا جا سکتا ہے۔ - -آپ درج ذیل کام بھی کر سکتے ہیں: - -- **ترمیمات کرنا**۔ موجودہ تصویر، ماسک اور پرامپٹ فراہم کر کے آپ تصویر میں تبدیلی کر سکتے ہیں۔ مثال کے طور پر، آپ تصویر کے کسی حصے میں کچھ شامل کر سکتے ہیں۔ فرض کریں ہماری خرگوش کی تصویر ہے، آپ خرگوش کے سر پر ٹوپی ڈال سکتے ہیں۔ یہ کرنے کے لیے آپ تصویر، ماسک (جس سے تبدیلی والے حصے کی نشاندہی ہو) اور متن کا پرامپٹ دیں گے کہ کیا کرنا ہے۔ - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - بنیادی تصویر میں صرف خرگوش ہوگا لیکن آخری تصویر میں خرگوش کے سر پر ٹوپی ہوگی۔ - -- **تبدیلیاں بنانا**۔ آپ موجودہ تصویر لے کر اس کی مختلف ورژنز بنا سکتے ہیں۔ تبدیلی بنانے کے لیے، آپ تصویر اور متن کا پرامپٹ فراہم کرتے ہیں، اور کوڈ کچھ یوں ہوگا: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > نوٹ کریں، یہ فیچر صرف OpenAI پر دستیاب ہے۔ - -## Temperature - -Temperature ایک ایسا پیرامیٹر ہے جو جنریٹو AI ماڈل کے آؤٹ پٹ کی بے ترتیبی کو کنٹرول کرتا ہے۔ اس کی قیمت 0 سے 1 کے درمیان ہوتی ہے، جہاں 0 کا مطلب ہے کہ آؤٹ پٹ مکمل طور پر متعین ہے اور 1 کا مطلب ہے کہ آؤٹ پٹ بے ترتیب ہے۔ ڈیفالٹ ویلیو 0.7 ہے۔ - -آئیے temperature کے کام کرنے کی مثال دیکھتے ہیں، اس پرامپٹ کو دو بار چلائیں: - -> پرامپٹ: "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils" - -![Bunny on a horse holding a lollipop, version 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.ur.png) - -اب وہی پرامپٹ دوبارہ چلائیں تاکہ دیکھیں کہ ہمیں ایک جیسی تصویر نہیں ملے گی: - -![Generated image of bunny on horse](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.ur.png) - -جیسا کہ آپ دیکھ سکتے ہیں، تصاویر ملتی جلتی ہیں لیکن بالکل ایک جیسی نہیں۔ اب temperature کی ویلیو 0.1 کر کے دیکھتے ہیں کہ کیا ہوتا ہے: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### temperature کی تبدیلی - -آئیے جواب کو زیادہ متعین بنانے کی کوشش کریں۔ ہم نے جو دو تصاویر بنائیں، ان میں پہلی میں خرگوش ہے اور دوسری میں گھوڑا، یعنی تصاویر میں کافی فرق ہے۔ - -لہٰذا، ہم اپنا کوڈ تبدیل کر کے temperature کو 0 کر دیتے ہیں، یوں: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -اب جب آپ یہ کوڈ چلائیں گے، تو آپ کو یہ دو تصاویر ملیں گی: - -- ![Temperature 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.ur.png) -- ![Temperature 0 , v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.ur.png) - -یہاں آپ واضح طور پر دیکھ سکتے ہیں کہ تصاویر ایک دوسرے سے زیادہ مشابہت رکھتی ہیں۔ - -## میٹا پرامپٹس کے ذریعے اپنی ایپلیکیشن کی حدود کیسے متعین کریں - -ہمارے ڈیمو کے ذریعے ہم اپنے کلائنٹس کے لیے تصاویر بنا سکتے ہیں۔ تاہم، ہمیں اپنی ایپلیکیشن کے لیے کچھ حدود مقرر کرنے کی ضرورت ہے۔ - -مثلاً، ہم ایسی تصاویر نہیں بنانا چاہتے جو کام کی جگہ کے لیے غیر محفوظ ہوں، یا بچوں کے لیے مناسب نہ ہوں۔ - -ہم یہ کام _میٹا پرامپٹس_ کے ذریعے کر سکتے ہیں۔ میٹا پرامپٹس وہ متن کے پرامپٹس ہوتے ہیں جو جنریٹو AI ماڈل کے آؤٹ پٹ کو کنٹرول کرتے ہیں۔ مثال کے طور پر، ہم میٹا پرامپٹس استعمال کر کے یہ یقینی بنا سکتے ہیں کہ بنائی گئی تصاویر کام کی جگہ کے لیے محفوظ ہوں یا بچوں کے لیے مناسب ہوں۔ - -### یہ کیسے کام کرتے ہیں؟ - -اب، میٹا پرامپٹس کیسے کام کرتے ہیں؟ - -میٹا پرامپٹس وہ متن کے پرامپٹس ہوتے ہیں جو جنریٹو AI ماڈل کے آؤٹ پٹ کو کنٹرول کرتے ہیں، یہ متن کے پرامپٹ سے پہلے رکھے جاتے ہیں، اور ماڈل کے آؤٹ پٹ کو کنٹرول کرنے کے لیے استعمال ہوتے ہیں۔ انہیں ایپلیکیشنز میں اس طرح شامل کیا جاتا ہے کہ پرامپٹ ان پٹ اور میٹا پرامپٹ ان پٹ ایک ہی متن کے پرامپٹ میں لپٹے ہوتے ہیں۔ - -میٹا پرامپٹ کی ایک مثال درج ذیل ہے: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -اب دیکھتے ہیں کہ ہم اپنے ڈیمو میں میٹا پرامپٹس کیسے استعمال کر سکتے ہیں۔ - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -اوپر دیے گئے پرامپٹ سے آپ دیکھ سکتے ہیں کہ تمام بنائی جانے والی تصاویر میٹا پرامپٹ کو مدنظر رکھتی ہیں۔ - -## اسائنمنٹ - طلباء کو فعال کریں - -ہم نے سبق کے شروع میں Edu4All کا تعارف کرایا تھا۔ اب وقت ہے کہ طلباء کو اپنی اسائنمنٹس کے لیے تصاویر بنانے کے قابل بنائیں۔ - -طلباء اپنی اسائنمنٹس کے لیے یادگاروں کی تصاویر بنائیں گے، اور یہ بالکل طلباء کی تخلیقی صلاحیت پر منحصر ہوگا کہ وہ ان یادگاروں کو مختلف سیاق و سباق میں کیسے پیش کرتے ہیں۔ - -## حل - -یہاں ایک ممکنہ حل دیا گیا ہے: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## شاندار کام! اپنی تعلیم جاری رکھیں - -اس سبق کو مکمل کرنے کے بعد، ہماری [Generative AI Learning collection](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) دیکھیں تاکہ آپ اپنی جنریٹو AI کی معلومات کو مزید بڑھا سکیں! - -اب اگلے سبق پر جائیں جہاں ہم دیکھیں گے کہ [لو کوڈ کے ساتھ AI ایپلیکیشنز کیسے بنائیں](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)۔ - -**دستخطی نوٹ**: -یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کے ذریعے ترجمہ کی گئی ہے۔ اگرچہ ہم درستگی کے لیے کوشاں ہیں، براہ کرم اس بات سے آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستیاں ہو سکتی ہیں۔ اصل دستاویز اپنی مادری زبان میں ہی معتبر ماخذ سمجھی جانی چاہیے۔ اہم معلومات کے لیے پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کی ذمہ داری ہم پر عائد نہیں ہوتی۔ \ No newline at end of file + + + + diff --git a/translations/ur/12-designing-ux-for-ai-applications/README.md b/translations/ur/12-designing-ux-for-ai-applications/README.md index 26fb6259a..7ee7f80c2 100644 --- a/translations/ur/12-designing-ux-for-ai-applications/README.md +++ b/translations/ur/12-designing-ux-for-ai-applications/README.md @@ -1,127 +1,11 @@ - -# AI ایپلیکیشنز کے لیے UX ڈیزائن کرنا - -[![Designing UX for AI Applications](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.ur.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(اس سبق کی ویڈیو دیکھنے کے لیے اوپر تصویر پر کلک کریں)_ - -یوزر ایکسپیرینس ایپ بنانے کا ایک بہت اہم پہلو ہے۔ صارفین کو آپ کی ایپ کو مؤثر طریقے سے استعمال کرنا چاہیے تاکہ وہ اپنے کام انجام دے سکیں۔ مؤثر ہونا ایک بات ہے، لیکن آپ کو ایسی ایپس بھی ڈیزائن کرنی ہوتی ہیں جو ہر کسی کے لیے قابلِ رسائی ہوں۔ یہ باب اسی موضوع پر توجہ دے گا تاکہ آپ ایسی ایپ ڈیزائن کریں جو لوگ استعمال کرنا چاہیں اور کر سکیں۔ - -## تعارف - -یوزر ایکسپیرینس اس بات کو کہتے ہیں کہ صارف کسی مخصوص پروڈکٹ یا سروس کے ساتھ کیسے تعامل کرتا ہے، چاہے وہ کوئی سسٹم، ٹول یا ڈیزائن ہو۔ AI ایپلیکیشنز تیار کرتے وقت، ڈویلپرز نہ صرف اس بات پر توجہ دیتے ہیں کہ یوزر ایکسپیرینس مؤثر ہو بلکہ یہ بھی یقینی بناتے ہیں کہ یہ اخلاقی ہو۔ اس سبق میں ہم یہ سیکھیں گے کہ کیسے ایسی AI ایپلیکیشنز بنائی جائیں جو صارفین کی ضروریات کو پورا کریں۔ - -سبق میں درج ذیل موضوعات شامل ہوں گے: - -- یوزر ایکسپیرینس کا تعارف اور صارف کی ضروریات کو سمجھنا -- AI ایپلیکیشنز کو اعتماد اور شفافیت کے لیے ڈیزائن کرنا -- AI ایپلیکیشنز کو تعاون اور فیڈبیک کے لیے ڈیزائن کرنا - -## سیکھنے کے مقاصد - -اس سبق کے بعد آپ قابل ہوں گے کہ: - -- AI ایپلیکیشنز بنائیں جو صارف کی ضروریات کو پورا کریں۔ -- AI ایپلیکیشنز ڈیزائن کریں جو اعتماد اور تعاون کو فروغ دیں۔ - -### پیشگی معلومات - -کچھ وقت نکال کر [یوزر ایکسپیرینس اور ڈیزائن تھنکنگ](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) کے بارے میں مزید پڑھیں۔ - -## یوزر ایکسپیرینس کا تعارف اور صارف کی ضروریات کو سمجھنا - -ہماری فرضی تعلیمی اسٹارٹ اپ میں دو بنیادی صارفین ہیں: اساتذہ اور طلباء۔ ہر صارف کی منفرد ضروریات ہوتی ہیں۔ یوزر سینٹرڈ ڈیزائن صارف کو ترجیح دیتا ہے تاکہ پروڈکٹس ان کے لیے متعلقہ اور فائدہ مند ہوں جن کے لیے وہ بنائی گئی ہیں۔ - -ایپلیکیشن کو **مفید، قابلِ اعتماد، قابلِ رسائی اور خوشگوار** ہونا چاہیے تاکہ اچھا یوزر ایکسپیرینس فراہم کیا جا سکے۔ - -### استعمال کی آسانی - -مفید ہونے کا مطلب ہے کہ ایپلیکیشن میں وہ فیچرز ہوں جو اس کے مقصد کے مطابق ہوں، جیسے گریڈنگ کے عمل کو خودکار بنانا یا ریویژن کے لیے فلیش کارڈز تیار کرنا۔ ایک ایسی ایپ جو گریڈنگ خودکار کرتی ہے، اسے طلباء کے کام کو درست اور مؤثر طریقے سے اسکور کرنا چاہیے۔ اسی طرح، ریویژن فلیش کارڈز بنانے والی ایپ کو متعلقہ اور متنوع سوالات تیار کرنے چاہئیں۔ - -### قابلِ اعتماد ہونا - -قابلِ اعتماد ہونے کا مطلب ہے کہ ایپلیکیشن اپنا کام مستقل اور بغیر غلطی کے انجام دے۔ تاہم، AI بھی انسانوں کی طرح کامل نہیں ہوتا اور غلطیوں کا امکان ہوتا ہے۔ ایپلیکیشنز کو ایسی صورتحال کا سامنا ہو سکتا ہے جہاں انسانی مداخلت یا اصلاح کی ضرورت ہو۔ آپ غلطیوں کو کیسے سنبھالتے ہیں؟ اس سبق کے آخری حصے میں ہم دیکھیں گے کہ AI سسٹمز اور ایپلیکیشنز کو تعاون اور فیڈبیک کے لیے کیسے ڈیزائن کیا جاتا ہے۔ - -### قابلِ رسائی ہونا - -قابلِ رسائی ہونے کا مطلب ہے کہ یوزر ایکسپیرینس کو مختلف صلاحیتوں کے حامل صارفین تک پہنچایا جائے، بشمول معذور افراد، تاکہ کوئی بھی باہر نہ رہے۔ قابلِ رسائی رہنما اصولوں اور اصولوں کی پیروی سے AI حل زیادہ جامع، قابلِ استعمال اور تمام صارفین کے لیے فائدہ مند بن جاتے ہیں۔ - -### خوشگوار ہونا - -خوشگوار ہونے کا مطلب ہے کہ ایپلیکیشن استعمال کرنے میں خوشگوار ہو۔ ایک پرکشش یوزر ایکسپیرینس صارف پر مثبت اثر ڈال سکتی ہے، انہیں ایپ پر واپس آنے کی ترغیب دیتی ہے اور کاروباری آمدنی میں اضافہ کرتی ہے۔ - -![AI میں UX کے پہلوؤں کی وضاحت کرتی ہوئی تصویر](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.ur.png) - -ہر مسئلہ AI سے حل نہیں کیا جا سکتا۔ AI آپ کے یوزر ایکسپیرینس کو بہتر بنانے کے لیے آتا ہے، چاہے وہ دستی کاموں کو خودکار بنانا ہو یا یوزر ایکسپیرینس کو ذاتی نوعیت دینا ہو۔ - -## AI ایپلیکیشنز کو اعتماد اور شفافیت کے لیے ڈیزائن کرنا - -اعتماد قائم کرنا AI ایپلیکیشنز کے ڈیزائن میں بہت اہم ہے۔ اعتماد اس بات کو یقینی بناتا ہے کہ صارف کو یقین ہو کہ ایپ کام مکمل کرے گی، نتائج مستقل طور پر فراہم کرے گی اور نتائج وہی ہوں گے جو صارف چاہتا ہے۔ اس شعبے میں خطرہ mistrust اور overtrust کا ہوتا ہے۔ mistrust اس وقت ہوتا ہے جب صارف AI سسٹم پر کم یا کوئی اعتماد نہیں کرتا، جس کی وجہ سے وہ آپ کی ایپ کو مسترد کر دیتا ہے۔ overtrust اس وقت ہوتا ہے جب صارف AI سسٹم کی صلاحیت کو زیادہ سمجھتا ہے، جس سے صارف AI پر حد سے زیادہ اعتماد کر لیتا ہے۔ مثال کے طور پر، ایک خودکار گریڈنگ سسٹم میں overtrust کی صورت میں استاد کچھ پیپرز کو چیک نہیں کرتا کہ گریڈنگ سسٹم صحیح کام کر رہا ہے یا نہیں۔ اس سے طلباء کو غیر منصفانہ یا غلط گریڈز مل سکتے ہیں، یا فیڈبیک اور بہتری کے مواقع ضائع ہو سکتے ہیں۔ - -اعتماد کو ڈیزائن کے مرکز میں رکھنے کے دو طریقے explainability اور control ہیں۔ - -### Explainability - -جب AI فیصلے کرنے میں مدد دیتا ہے، جیسے کہ آنے والی نسلوں کو علم منتقل کرنا، تو اساتذہ اور والدین کے لیے یہ سمجھنا ضروری ہوتا ہے کہ AI فیصلے کیسے کیے جاتے ہیں۔ یہی explainability ہے — یہ سمجھنا کہ AI ایپلیکیشنز فیصلے کیسے کرتی ہیں۔ explainability کے لیے ڈیزائن میں AI ایپلیکیشن کی صلاحیتوں کی مثالیں شامل کرنا ضروری ہے۔ مثال کے طور پر، "Get started with AI teacher" کی بجائے نظام کہہ سکتا ہے: "اپنے نوٹس کو آسان ریویژن کے لیے AI کی مدد سے خلاصہ کریں۔" - -![AI ایپلیکیشنز میں explainability کی واضح مثال کے ساتھ ایپ کا لینڈنگ پیج](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.ur.png) - -ایک اور مثال یہ ہے کہ AI صارف اور ذاتی ڈیٹا کو کیسے استعمال کرتا ہے۔ مثال کے طور پر، ایک صارف جس کا persona student ہے، اس کی کچھ حدود ہو سکتی ہیں۔ AI ممکنہ طور پر سوالات کے جوابات ظاہر نہیں کر سکتا لیکن صارف کو مسئلہ حل کرنے کے طریقے سوچنے میں مدد دے سکتا ہے۔ - -![persona کی بنیاد پر سوالات کے جواب دیتا ہوا AI](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.ur.png) - -explainability کا آخری اہم حصہ وضاحتوں کو آسان بنانا ہے۔ طلباء اور اساتذہ AI ماہر نہیں ہوتے، اس لیے ایپ کی صلاحیتوں کی وضاحت آسان اور سمجھنے میں آسان ہونی چاہیے۔ - -![AI کی صلاحیتوں پر آسان وضاحتیں](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.ur.png) - -### Control - -Generative AI صارف اور AI کے درمیان تعاون پیدا کرتا ہے، جہاں صارف مختلف نتائج کے لیے prompts کو تبدیل کر سکتا ہے۔ مزید برآں، جب کوئی آؤٹ پٹ تیار ہو جائے، تو صارفین کو نتائج میں ترمیم کرنے کی سہولت ہونی چاہیے تاکہ انہیں کنٹرول کا احساس ہو۔ مثال کے طور پر، Bing استعمال کرتے وقت آپ اپنے prompt کو فارمیٹ، انداز اور لمبائی کے لحاظ سے ترتیب دے سکتے ہیں۔ اس کے علاوہ، آپ اپنے آؤٹ پٹ میں تبدیلیاں بھی کر سکتے ہیں جیسا کہ نیچے دکھایا گیا ہے: - -![Bing سرچ کے نتائج جن میں prompt اور آؤٹ پٹ کو تبدیل کرنے کے آپشنز ہیں](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.ur.png) - -Bing کی ایک اور خصوصیت جو صارف کو ایپلیکیشن پر کنٹرول دیتی ہے وہ یہ ہے کہ صارف ڈیٹا کے استعمال میں opt-in اور opt-out کر سکتا ہے۔ اسکول کی ایپلیکیشن میں، ایک طالب علم چاہے گا کہ وہ اپنے نوٹس کے ساتھ ساتھ اساتذہ کے وسائل کو بھی ریویژن کے مواد کے طور پر استعمال کرے۔ - -![Bing سرچ کے نتائج جن میں prompt اور آؤٹ پٹ کو تبدیل کرنے کے آپشنز ہیں](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.ur.png) - -> AI ایپلیکیشنز ڈیزائن کرتے وقت، ارادے کا ہونا بہت ضروری ہے تاکہ صارفین AI کی صلاحیتوں کے بارے میں غیر حقیقی توقعات نہ رکھیں۔ اس کا ایک طریقہ یہ ہے کہ prompts اور نتائج کے درمیان کچھ رکاوٹ رکھی جائے، صارف کو یاد دلایا جائے کہ یہ AI ہے، کوئی انسان نہیں۔ - -## AI ایپلیکیشنز کو تعاون اور فیڈبیک کے لیے ڈیزائن کرنا - -جیسا کہ پہلے ذکر کیا گیا، generative AI صارف اور AI کے درمیان تعاون پیدا کرتا ہے۔ زیادہ تر تعاملات میں صارف prompt دیتا ہے اور AI آؤٹ پٹ تیار کرتا ہے۔ اگر آؤٹ پٹ غلط ہو تو کیا ہوتا ہے؟ اگر غلطی ہو جائے تو ایپلیکیشن اسے کیسے سنبھالتی ہے؟ کیا AI صارف کو مورد الزام ٹھہراتا ہے یا غلطی کی وضاحت کرتا ہے؟ - -AI ایپلیکیشنز کو فیڈبیک لینے اور دینے کے قابل بنایا جانا چاہیے۔ یہ نہ صرف AI سسٹم کو بہتر بناتا ہے بلکہ صارفین کے ساتھ اعتماد بھی قائم کرتا ہے۔ ڈیزائن میں فیڈبیک لوپ شامل ہونا چاہیے، مثال کے طور پر آؤٹ پٹ پر سادہ thumbs up یا down۔ - -ایک اور طریقہ یہ ہے کہ سسٹم کی صلاحیتوں اور حدود کو واضح طور پر بیان کیا جائے۔ جب صارف AI کی صلاحیتوں سے باہر کچھ مانگتا ہے، تو اس کا بھی کوئی طریقہ ہونا چاہیے جیسا کہ نیچے دکھایا گیا ہے۔ - -![فیڈبیک دینا اور غلطیوں کو سنبھالنا](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.ur.png) - -سسٹم کی غلطیاں عام ہیں، خاص طور پر ایسی ایپلیکیشنز میں جہاں صارف کو AI کے دائرہ کار سے باہر معلومات کی ضرورت ہو یا ایپلیکیشن پر سوالات/موضوعات کی تعداد محدود ہو۔ مثال کے طور پر، اگر AI ایپلیکیشن صرف تاریخ اور ریاضی کے موضوعات پر تربیت یافتہ ہے، تو وہ جغرافیہ کے سوالات کا جواب نہیں دے سکے گی۔ اس کا حل یہ ہو سکتا ہے کہ AI سسٹم جواب دے: "معذرت، ہمارا پروڈکٹ صرف درج ذیل موضوعات پر تربیت یافتہ ہے.....، میں آپ کے سوال کا جواب نہیں دے سکتا۔" - -AI ایپلیکیشنز کامل نہیں ہوتیں، اس لیے وہ غلطیاں کریں گی۔ اپنی ایپلیکیشنز ڈیزائن کرتے وقت، آپ کو صارفین سے فیڈبیک لینے اور غلطیوں کو سنبھالنے کے لیے آسان اور قابلِ فہم طریقے بنانے چاہئیں۔ - -## اسائنمنٹ - -اب تک جو بھی AI ایپس آپ نے بنائی ہیں، ان میں درج ذیل اقدامات پر غور کریں اور انہیں نافذ کرنے کی کوشش کریں: - -- **خوشگوار:** سوچیں کہ آپ اپنی ایپ کو کیسے مزید خوشگوار بنا سکتے ہیں۔ کیا آپ ہر جگہ وضاحتیں شامل کر رہے ہیں؟ کیا آپ صارف کو دریافت کرنے کی ترغیب دے رہے ہیں؟ آپ اپنی غلطی کے پیغامات کیسے لکھ رہے ہیں؟ -- **استعمال کی آسانی:** ویب ایپ بنا رہے ہیں۔ یقینی بنائیں کہ آپ کی ایپ ماؤس اور کی بورڈ دونوں سے نیویگیٹ کی جا سکے۔ -- **اعتماد اور شفافیت:** AI اور اس کے نتائج پر مکمل اعتماد نہ کریں، سوچیں کہ آپ کس طرح انسانی تصدیق کو شامل کر سکتے ہیں۔ مزید برآں، اعتماد اور شفافیت حاصل کرنے کے دیگر طریقے بھی نافذ کریں۔ -- **کنٹرول:** صارف کو اس ڈیٹا پر کنٹرول دیں جو وہ ایپلیکیشن کو فراہم کرتا ہے۔ AI ایپلیکیشن میں ڈیٹا کلیکشن کے لیے opt-in اور opt-out کا طریقہ شامل کریں۔ - -## اپنی تعلیم جاری رکھیں! - -اس سبق کو مکمل کرنے کے بعد، ہمارے [Generative AI Learning collection](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) کو دیکھیں تاکہ اپنی Generative AI کی معلومات کو مزید بڑھا سکیں! - -سبق 13 پر جائیں، جہاں ہم دیکھیں گے کہ [AI ایپلیکیشنز کو کیسے محفوظ بنایا جائے](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**دستخطی دستبرداری**: -یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کے ذریعے ترجمہ کی گئی ہے۔ اگرچہ ہم درستگی کے لیے کوشاں ہیں، براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستیاں ہو سکتی ہیں۔ اصل دستاویز اپنی مادری زبان میں ہی معتبر ماخذ سمجھی جانی چاہیے۔ اہم معلومات کے لیے پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کی ذمہ داری ہم پر عائد نہیں ہوتی۔ \ No newline at end of file + + + diff --git a/translations/ur/README.md b/translations/ur/README.md index 6fb5bcaf1..c58872d0f 100644 --- a/translations/ur/README.md +++ b/translations/ur/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.ur.png) - -### 21 اسباق جو آپ کو Generative AI ایپلیکیشنز بنانے کے لیے درکار تمام معلومات سکھاتے ہیں - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 کثیراللسانی معاونت - -#### GitHub Action کے ذریعے سپورٹ شدہ (خودکار اور ہمیشہ تازہ ترین) - -[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](./README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md) - -# Generative AI for Beginners (ورژن 3) - ایک کورس - -Microsoft Cloud Advocates کی جانب سے 21 اسباق پر مشتمل جامع کورس کے ذریعے Generative AI ایپلیکیشنز بنانے کے بنیادی اصول سیکھیں۔ - -## 🌱 شروعات - -یہ کورس 21 اسباق پر مشتمل ہے۔ ہر سبق اپنا موضوع رکھتا ہے، لہٰذا جہاں چاہیں وہاں سے شروع کریں! - -اسباق کو "Learn" یا "Build" کے طور پر لیبل کیا گیا ہے۔ "Learn" اسباق میں Generative AI کے تصورات کی وضاحت کی جاتی ہے جبکہ "Build" اسباق میں تصور کے ساتھ ساتھ **Python** اور **TypeScript** میں کوڈ کی مثالیں بھی دی جاتی ہیں جہاں ممکن ہو۔ - -.NET ڈویلپرز کے لیے [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) دیکھیں! - -ہر سبق میں "Keep Learning" سیکشن بھی شامل ہے جس میں اضافی تعلیمی مواد موجود ہے۔ - -## آپ کو کیا چاہیے -### اس کورس کا کوڈ چلانے کے لیے آپ درج ذیل میں سے کوئی بھی استعمال کر سکتے ہیں: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **اسباق:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **اسباق:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **اسباق:** "oai-assignment" - -- Python یا TypeScript کی بنیادی معلومات مددگار ثابت ہوگی - \*بالکل نئے سیکھنے والوں کے لیے یہ [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) اور [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) کورسز دیکھیں -- اپنا GitHub اکاؤنٹ تاکہ آپ اس پورے ریپوزٹری کو [fork](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) کر سکیں - -ہم نے آپ کی ڈیولپمنٹ ماحول کی سیٹ اپ میں مدد کے لیے ایک **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** سبق تیار کیا ہے۔ - -بعد میں آسانی سے تلاش کرنے کے لیے اس ریپو کو [star (🌟)](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) کرنا نہ بھولیں۔ - -## 🧠 تعیناتی کے لیے تیار؟ - -اگر آپ مزید جدید کوڈ نمونے تلاش کر رہے ہیں تو ہمارے [Generative AI Code Samples](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) کا مجموعہ دیکھیں جو **Python** اور **TypeScript** دونوں میں دستیاب ہے۔ - -## 🗣️ دوسرے سیکھنے والوں سے ملیں، مدد حاصل کریں - -ہمارے [official Azure AI Foundry Discord server](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) میں شامل ہوں تاکہ اس کورس کو کرنے والے دوسرے سیکھنے والوں سے مل سکیں اور مدد حاصل کر سکیں۔ - -سوالات پوچھیں یا مصنوعات کے بارے میں رائے ہمارے [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum) پر GitHub پر شیئر کریں۔ - -## 🚀 اسٹارٹ اپ بنا رہے ہیں؟ - -[Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) کے لیے سائن اپ کریں تاکہ **مفت OpenAI کریڈٹس** اور Azure OpenAI Services کے ذریعے OpenAI ماڈلز تک رسائی کے لیے **Azure کریڈٹس میں $150,000 تک** حاصل کر سکیں۔ - -## 🙏 مدد کرنا چاہتے ہیں؟ - -کیا آپ کے پاس تجاویز ہیں یا آپ نے املا یا کوڈ کی غلطیاں دیکھی ہیں؟ [مسئلہ اٹھائیں](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) یا [پُل ریکویسٹ بنائیں](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 ہر سبق میں شامل ہے: - -- موضوع کا مختصر ویڈیو تعارف -- README میں تحریری سبق -- Python اور TypeScript کوڈ کی مثالیں جو Azure OpenAI اور OpenAI API کی حمایت کرتی ہیں -- اضافی وسائل کے لنکس تاکہ آپ اپنی تعلیم جاری رکھ سکیں - -## 🗃️ اسباق - -| # | **سبق کا لنک** | **تفصیل** | **ویڈیو** | **اضافی تعلیم** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** اپنا ڈیولپمنٹ ماحول کیسے سیٹ اپ کریں | ویڈیو جلد آ رہا ہے | [مزید جانیں](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introduction to Generative AI and LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Generative AI کیا ہے اور Large Language Models (LLMs) کیسے کام کرتے ہیں۔ | [ویڈیو](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [مزید جانیں](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Exploring and comparing different LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** اپنے استعمال کے لیے صحیح ماڈل کا انتخاب کیسے کریں | [ویڈیو](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [مزید جانیں](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Using Generative AI Responsibly](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Generative AI ایپلیکیشنز ذمہ داری سے کیسے بنائیں | [ویڈیو](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [مزید جانیں](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Understanding Prompt Engineering Fundamentals](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** عملی طور پر Prompt Engineering کی بہترین مشقیں | [ویڈیو](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [مزید جانیں](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Creating Advanced Prompts](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** ایسے prompt engineering طریقے کیسے اپنائیں جو آپ کے prompts کے نتائج کو بہتر بنائیں۔ | [ویڈیو](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [مزید جانیں](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [ٹیکسٹ جنریشن ایپلیکیشنز بنانا](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **بنائیں:** Azure OpenAI / OpenAI API استعمال کرتے ہوئے ایک ٹیکسٹ جنریشن ایپلیکیشن | [ویڈیو](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [مزید جانیں](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [چیٹ ایپلیکیشنز بنانا](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **بنائیں:** چیٹ ایپلیکیشنز کو مؤثر طریقے سے بنانے اور انضمام کرنے کی تکنیکیں | [ویڈیو](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [مزید جانیں](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [سرچ ایپس اور ویکٹر ڈیٹا بیسز بنانا](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **بنائیں:** ایک سرچ ایپلیکیشن جو ڈیٹا تلاش کرنے کے لیے Embeddings استعمال کرتی ہے | [ویڈیو](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [مزید جانیں](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [امیج جنریشن ایپلیکیشنز بنانا](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **بنائیں:** ایک امیج جنریشن ایپلیکیشن | [ویڈیو](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [مزید جانیں](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [لو کوڈ AI ایپلیکیشنز بنانا](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **بنائیں:** لو کوڈ ٹولز استعمال کرتے ہوئے ایک Generative AI ایپلیکیشن | [ویڈیو](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [مزید جانیں](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [فنکشن کالنگ کے ساتھ بیرونی ایپلیکیشنز کو مربوط کرنا](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **بنائیں:** فنکشن کالنگ کیا ہے اور ایپلیکیشنز میں اس کے استعمال کے کیسز | [ویڈیو](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [مزید جانیں](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [AI ایپلیکیشنز کے لیے UX ڈیزائن کرنا](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **سیکھیں:** Generative AI ایپلیکیشنز تیار کرتے وقت UX ڈیزائن کے اصول کیسے لاگو کیے جائیں | [ویڈیو](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [مزید جانیں](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [اپنی Generative AI ایپلیکیشنز کو محفوظ بنانا](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **سیکھیں:** AI سسٹمز کو لاحق خطرات اور ان سسٹمز کو محفوظ بنانے کے طریقے | [ویڈیو](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [مزید جانیں](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [Generative AI ایپلیکیشن کے لائف سائیکل کا جائزہ](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **سیکھیں:** LLM لائف سائیکل اور LLMOps کو منظم کرنے کے لیے ٹولز اور میٹرکس | [ویڈیو](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [مزید جانیں](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) اور ویکٹر ڈیٹا بیسز](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **بنائیں:** RAG فریم ورک استعمال کرتے ہوئے ویکٹر ڈیٹا بیسز سے embeddings بازیافت کرنے والی ایپلیکیشن | [ویڈیو](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [مزید جانیں](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [اوپن سورس ماڈلز اور Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **بنائیں:** Hugging Face پر دستیاب اوپن سورس ماڈلز استعمال کرتے ہوئے ایک ایپلیکیشن | [ویڈیو](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [مزید جانیں](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI ایجنٹس](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **بنائیں:** AI ایجنٹ فریم ورک استعمال کرتے ہوئے ایک ایپلیکیشن | [ویڈیو](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [مزید جانیں](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [LLMs کی Fine-Tuning](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **سیکھیں:** LLMs کی fine-tuning کیا ہے، کیوں ضروری ہے اور کیسے کی جاتی ہے | [ویڈیو](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [مزید جانیں](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [SLMs کے ساتھ بنانا](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **سیکھیں:** Small Language Models کے ساتھ بنانے کے فوائد | ویڈیو جلد آ رہا ہے | [مزید جانیں](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Mistral ماڈلز کے ساتھ بنانا](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **سیکھیں:** Mistral فیملی ماڈلز کی خصوصیات اور فرق | ویڈیو جلد آ رہا ہے | [مزید جانیں](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Meta ماڈلز کے ساتھ بنانا](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **سیکھیں:** Meta فیملی ماڈلز کی خصوصیات اور فرق | ویڈیو جلد آ رہا ہے | [مزید جانیں](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 خصوصی شکریہ - -تمام GitHub Actions اور ورک فلو بنانے کے لیے [**John Aziz**](https://www.linkedin.com/in/john0isaac/) کا خصوصی شکریہ - -ہر سبق میں سیکھنے والے اور کوڈ کے تجربے کو بہتر بنانے کے لیے اہم تعاون کرنے پر [**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) کا شکریہ۔ - -## 🎒 دیگر کورسز - -ہماری ٹیم دیگر کورسز بھی تیار کرتی ہے! دیکھیں: - -- [**نیا** Model Context Protocol برائے مبتدی](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI Agents برائے مبتدی](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [.NET استعمال کرتے ہوئے Generative AI برائے مبتدی](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [JavaScript استعمال کرتے ہوئے Generative AI برائے مبتدی](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML برائے مبتدی](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Data Science برائے مبتدی](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI برائے مبتدی](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [Cybersecurity برائے مبتدی](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Web Dev برائے مبتدی](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT برائے مبتدی](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR Development برائے مبتدی](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI Paired Programming کے لیے GitHub Copilot میں مہارت حاصل کریں](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [C#/.NET ڈویلپرز کے لیے GitHub Copilot میں مہارت حاصل کریں](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [اپنی خود کی Copilot ایڈونچر منتخب کریں](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**دستخطی نوٹ**: -یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کے ذریعے ترجمہ کی گئی ہے۔ اگرچہ ہم درستگی کے لیے کوشاں ہیں، براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستیاں ہو سکتی ہیں۔ اصل دستاویز اپنی مادری زبان میں ہی معتبر ماخذ سمجھی جانی چاہیے۔ اہم معلومات کے لیے پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کی ذمہ داری ہم پر عائد نہیں ہوتی۔ \ No newline at end of file + + + + diff --git a/translations/vi/00-course-setup/01-setup-cloud.md b/translations/vi/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..bc62f7327 --- /dev/null +++ b/translations/vi/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/vi/00-course-setup/02-setup-local.md b/translations/vi/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..8da086d57 --- /dev/null +++ b/translations/vi/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/vi/00-course-setup/03-providers.md b/translations/vi/00-course-setup/03-providers.md new file mode 100644 index 000000000..fd66d8401 --- /dev/null +++ b/translations/vi/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/vi/00-course-setup/README.md b/translations/vi/00-course-setup/README.md index b5f8dbd12..853222784 100644 --- a/translations/vi/00-course-setup/README.md +++ b/translations/vi/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# Bắt đầu với khóa học này - -Chúng tôi rất hào hứng khi bạn bắt đầu khóa học này và khám phá những gì bạn có thể tạo ra với Generative AI! - -Để đảm bảo bạn thành công, trang này sẽ hướng dẫn các bước thiết lập, yêu cầu kỹ thuật và nơi bạn có thể nhận được trợ giúp khi cần. - -## Các bước thiết lập - -Để bắt đầu khóa học này, bạn cần hoàn thành các bước sau. - -### 1. Fork repo này - -[Hãy fork toàn bộ repo này](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) vào tài khoản GitHub của bạn để có thể chỉnh sửa mã và hoàn thành các thử thách. Bạn cũng có thể [star (🌟) repo này](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) để dễ dàng tìm lại repo và các repo liên quan. - -### 2. Tạo codespace - -Để tránh các vấn đề về phụ thuộc khi chạy mã, chúng tôi khuyên bạn nên chạy khóa học này trong [GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst). - -Bạn có thể tạo codespace bằng cách chọn tùy chọn `Code` trên phiên bản repo đã fork của bạn và chọn **Codespaces**. - -![Hộp thoại hiển thị các nút để tạo codespace](../../../00-course-setup/images/who-will-pay.webp) - -### 3. Lưu trữ API Keys của bạn - -Việc giữ an toàn và bảo mật các API keys rất quan trọng khi xây dựng bất kỳ ứng dụng nào. Chúng tôi khuyên bạn không nên lưu trực tiếp API keys trong mã nguồn. Việc commit những thông tin này lên repo công khai có thể dẫn đến các vấn đề bảo mật và thậm chí phát sinh chi phí không mong muốn nếu bị kẻ xấu lợi dụng. -Dưới đây là hướng dẫn từng bước để tạo file `.env` cho Python và thêm `GITHUB_TOKEN`: - -1. **Đi đến thư mục dự án của bạn**: Mở terminal hoặc command prompt và điều hướng đến thư mục gốc của dự án nơi bạn muốn tạo file `.env`. - - ```bash - cd path/to/your/project - ``` - -2. **Tạo file `.env`**: Sử dụng trình soạn thảo văn bản bạn thích để tạo file mới tên là `.env`. Nếu dùng dòng lệnh, bạn có thể dùng `touch` (trên hệ thống Unix) hoặc `echo` (trên Windows): - - Hệ thống Unix: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **Chỉnh sửa file `.env`**: Mở file `.env` trong trình soạn thảo (ví dụ VS Code, Notepad++, hoặc bất kỳ trình soạn thảo nào). Thêm dòng sau vào file, thay `your_github_token_here` bằng token GitHub thực tế của bạn: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **Lưu file**: Lưu các thay đổi và đóng trình soạn thảo. - -5. **Cài đặt `python-dotenv`**: Nếu bạn chưa cài, bạn cần cài gói `python-dotenv` để tải biến môi trường từ file `.env` vào ứng dụng Python của bạn. Bạn có thể cài bằng `pip`: - - ```bash - pip install python-dotenv - ``` - -6. **Tải biến môi trường trong script Python**: Trong script Python, sử dụng gói `python-dotenv` để tải biến môi trường từ file `.env`: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -Xong rồi! Bạn đã tạo thành công file `.env`, thêm token GitHub và tải nó vào ứng dụng Python của bạn. - -## Cách chạy trên máy tính cá nhân - -Để chạy mã trên máy tính cá nhân, bạn cần cài đặt một phiên bản [Python](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst). - -Sau đó, để sử dụng repo, bạn cần clone nó: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -Khi đã có đầy đủ, bạn có thể bắt đầu! - -## Các bước tùy chọn - -### Cài đặt Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) là trình cài đặt nhẹ để cài đặt [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst), Python và một số gói khác. -Conda là trình quản lý gói giúp bạn dễ dàng thiết lập và chuyển đổi giữa các [môi trường ảo](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst) Python và các gói. Nó cũng hữu ích khi cài các gói không có trên `pip`. - -Bạn có thể theo dõi [hướng dẫn cài đặt MiniConda](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst) để thiết lập. - -Sau khi cài Miniconda, bạn cần clone [repo](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst) (nếu chưa làm). - -Tiếp theo, bạn cần tạo môi trường ảo. Để làm điều này với Conda, hãy tạo file môi trường mới (_environment.yml_). Nếu bạn dùng Codespaces, tạo file này trong thư mục `.devcontainer`, tức là `.devcontainer/environment.yml`. - -Hãy điền nội dung cho file môi trường theo đoạn dưới đây: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -Nếu gặp lỗi khi dùng conda, bạn có thể cài thủ công Microsoft AI Libraries bằng lệnh sau trong terminal. - -``` -conda install -c microsoft azure-ai-ml -``` - -File môi trường xác định các phụ thuộc cần thiết. `` là tên bạn muốn đặt cho môi trường Conda, và `` là phiên bản Python bạn muốn dùng, ví dụ `3` là phiên bản chính mới nhất của Python. - -Sau khi xong, bạn có thể tạo môi trường Conda bằng cách chạy các lệnh dưới đây trong command line/terminal - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -Tham khảo [hướng dẫn môi trường Conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst) nếu gặp vấn đề. - -### Sử dụng Visual Studio Code với extension hỗ trợ Python - -Chúng tôi khuyên bạn dùng trình soạn thảo [Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst) cùng với [extension hỗ trợ Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) cho khóa học này. Tuy nhiên, đây chỉ là khuyến nghị, không bắt buộc. - -> **Lưu ý**: Khi mở repo khóa học trong VS Code, bạn có thể thiết lập dự án trong container. Điều này nhờ thư mục đặc biệt [`.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst) có trong repo. Sẽ nói thêm về điều này sau. - -> **Lưu ý**: Khi bạn clone và mở thư mục trong VS Code, nó sẽ tự động gợi ý cài extension hỗ trợ Python. - -> **Lưu ý**: Nếu VS Code gợi ý mở lại repo trong container, bạn có thể từ chối để sử dụng phiên bản Python cài đặt trên máy. - -### Sử dụng Jupyter trên trình duyệt - -Bạn cũng có thể làm việc trên dự án bằng môi trường [Jupyter](https://jupyter.org?WT.mc_id=academic-105485-koreyst) ngay trên trình duyệt. Cả Jupyter cổ điển và [Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst) đều cung cấp môi trường phát triển thân thiện với các tính năng như tự động hoàn thành, tô sáng mã, v.v. - -Để khởi động Jupyter trên máy, mở terminal/command line, điều hướng đến thư mục khóa học và chạy: - -```bash -jupyter notebook -``` - -hoặc - -```bash -jupyterhub -``` - -Lệnh này sẽ khởi động một phiên Jupyter và URL truy cập sẽ hiển thị trong cửa sổ dòng lệnh. - -Khi truy cập URL, bạn sẽ thấy đề cương khóa học và có thể mở bất kỳ file `*.ipynb` nào. Ví dụ, `08-building-search-applications/python/oai-solution.ipynb`. - -### Chạy trong container - -Một lựa chọn khác thay vì thiết lập trên máy hoặc Codespace là dùng [container](../../../00-course-setup/). Thư mục đặc biệt `.devcontainer` trong repo khóa học cho phép VS Code thiết lập dự án trong container. Ngoài Codespaces, bạn sẽ cần cài Docker, và thực sự việc này khá phức tạp, nên chúng tôi chỉ khuyên dùng cho những ai có kinh nghiệm với container. - -Một trong những cách tốt nhất để giữ an toàn cho API keys khi dùng GitHub Codespaces là sử dụng Codespace Secrets. Vui lòng theo dõi hướng dẫn [Quản lý secrets trong Codespaces](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst) để tìm hiểu thêm. - -## Các bài học và yêu cầu kỹ thuật - -Khóa học gồm 6 bài học về khái niệm và 6 bài học lập trình. - -Đối với các bài học lập trình, chúng tôi sử dụng Azure OpenAI Service. Bạn cần có quyền truy cập dịch vụ Azure OpenAI và API key để chạy mã. Bạn có thể đăng ký quyền truy cập bằng cách [hoàn thành đơn đăng ký này](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst). - -Trong khi chờ xử lý đơn, mỗi bài học lập trình cũng có file `README.md` để bạn xem mã và kết quả. - -## Sử dụng Azure OpenAI Service lần đầu - -Nếu đây là lần đầu bạn làm việc với Azure OpenAI service, vui lòng theo dõi hướng dẫn về cách [tạo và triển khai tài nguyên Azure OpenAI Service.](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst) - -## Sử dụng OpenAI API lần đầu - -Nếu đây là lần đầu bạn làm việc với OpenAI API, vui lòng theo dõi hướng dẫn về cách [tạo và sử dụng giao diện.](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst) - -## Gặp gỡ các học viên khác - -Chúng tôi đã tạo các kênh trong [server Discord cộng đồng AI chính thức](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) để bạn gặp gỡ các học viên khác. Đây là cách tuyệt vời để kết nối với các doanh nhân, nhà phát triển, sinh viên và bất kỳ ai muốn nâng cao kỹ năng về Generative AI. - -[![Tham gia kênh discord](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -Nhóm dự án cũng sẽ có mặt trên server Discord này để hỗ trợ các học viên. - -## Đóng góp - -Khóa học này là một sáng kiến mã nguồn mở. Nếu bạn thấy điểm cần cải thiện hoặc lỗi, vui lòng tạo [Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) hoặc ghi nhận [GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst). - -Nhóm dự án sẽ theo dõi tất cả các đóng góp. Đóng góp cho mã nguồn mở là cách tuyệt vời để phát triển sự nghiệp trong Generative AI. - -Hầu hết các đóng góp yêu cầu bạn đồng ý với Thỏa thuận Cấp phép Đóng góp (Contributor License Agreement - CLA) xác nhận bạn có quyền và thực sự cấp cho chúng tôi quyền sử dụng đóng góp của bạn. Chi tiết xem tại [CLA, trang web Thỏa thuận Cấp phép Đóng góp](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst). - -Quan trọng: khi dịch văn bản trong repo này, vui lòng đảm bảo không sử dụng dịch máy. Chúng tôi sẽ xác minh bản dịch qua cộng đồng, nên chỉ nhận dịch những ngôn ngữ mà bạn thành thạo. - -Khi bạn gửi pull request, bot CLA sẽ tự động xác định xem bạn có cần cung cấp CLA hay không và đánh dấu PR phù hợp (ví dụ, nhãn, bình luận). Chỉ cần làm theo hướng dẫn của bot. Bạn chỉ cần làm việc này một lần cho tất cả các repo sử dụng CLA của chúng tôi. - -Dự án này đã áp dụng [Bộ Quy tắc Ứng xử Mã nguồn mở của Microsoft](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst). Để biết thêm thông tin, đọc FAQ về Quy tắc Ứng xử hoặc liên hệ [Email opencode](opencode@microsoft.com) nếu có câu hỏi hoặc góp ý. - -## Bắt đầu thôi - -Bây giờ bạn đã hoàn thành các bước cần thiết để học khóa này, hãy bắt đầu với [giới thiệu về Generative AI và LLMs](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst). - -**Tuyên bố từ chối trách nhiệm**: -Tài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng bản dịch tự động có thể chứa lỗi hoặc không chính xác. Tài liệu gốc bằng ngôn ngữ gốc của nó nên được coi là nguồn chính xác và đáng tin cậy. Đối với các thông tin quan trọng, nên sử dụng dịch vụ dịch thuật chuyên nghiệp do con người thực hiện. Chúng tôi không chịu trách nhiệm về bất kỳ sự hiểu lầm hoặc giải thích sai nào phát sinh từ việc sử dụng bản dịch này. \ No newline at end of file + + + + diff --git a/translations/vi/00-course-setup/SETUP.md b/translations/vi/00-course-setup/SETUP.md deleted file mode 100644 index 88587f73b..000000000 --- a/translations/vi/00-course-setup/SETUP.md +++ /dev/null @@ -1,145 +0,0 @@ - -# Thiết Lập Môi Trường Phát Triển - -Chúng tôi thiết lập kho mã và khóa học này với một [development container](https://containers.dev?WT.mc_id=academic-105485-koreyst) có runtime đa năng hỗ trợ phát triển Python3, .NET, Node.js và Java. Cấu hình liên quan được định nghĩa trong file `devcontainer.json` nằm trong thư mục `.devcontainer/` ở thư mục gốc của kho mã này. - -Để kích hoạt dev container, bạn có thể khởi chạy nó trong [GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst) (cho runtime trên đám mây) hoặc trong [Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst) (cho runtime trên thiết bị cục bộ). Đọc [tài liệu này](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst) để biết thêm chi tiết về cách dev container hoạt động trong VS Code. - -> [!TIP] -> Chúng tôi khuyên bạn nên sử dụng GitHub Codespaces để bắt đầu nhanh chóng với ít công sức. Nó cung cấp [quota sử dụng miễn phí](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst) khá rộng rãi cho tài khoản cá nhân. Bạn có thể cấu hình [thời gian chờ](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst) để tự động dừng hoặc xóa các codespace không hoạt động nhằm tối đa hóa việc sử dụng quota. - -## 1. Thực Thi Bài Tập - -Mỗi bài học sẽ có các bài tập _tùy chọn_ có thể được cung cấp bằng một hoặc nhiều ngôn ngữ lập trình như Python, .NET/C#, Java và JavaScript/TypeScript. Phần này cung cấp hướng dẫn chung liên quan đến việc thực thi các bài tập đó. - -### 1.1 Bài Tập Python - -Bài tập Python được cung cấp dưới dạng ứng dụng (`.py` files) hoặc sổ tay Jupyter (`.ipynb` files). -- Để chạy sổ tay, mở nó trong Visual Studio Code rồi nhấn _Select Kernel_ (ở góc trên bên phải) và chọn tùy chọn Python 3 mặc định. Sau đó bạn có thể chọn _Run All_ để thực thi toàn bộ sổ tay. -- Để chạy ứng dụng Python từ dòng lệnh, làm theo hướng dẫn cụ thể của từng bài tập để đảm bảo bạn chọn đúng file và cung cấp các tham số cần thiết. - -## 2. Cấu Hình Nhà Cung Cấp - -Bài tập **có thể** được thiết lập để làm việc với một hoặc nhiều triển khai Large Language Model (LLM) thông qua các nhà cung cấp dịch vụ được hỗ trợ như OpenAI, Azure hoặc Hugging Face. Các nhà cung cấp này cung cấp một _hosted endpoint_ (API) mà ta có thể truy cập lập trình với các thông tin xác thực phù hợp (API key hoặc token). Trong khóa học này, chúng ta sẽ tìm hiểu các nhà cung cấp sau: - - - [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst) với nhiều mô hình đa dạng bao gồm cả dòng GPT chính. - - [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) dành cho các mô hình OpenAI với khả năng sẵn sàng doanh nghiệp. - - [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst) cho các mô hình mã nguồn mở và máy chủ suy luận. - -**Bạn sẽ cần sử dụng tài khoản riêng của mình cho các bài tập này**. Các bài tập là tùy chọn nên bạn có thể chọn thiết lập một, tất cả hoặc không thiết lập nhà cung cấp nào tùy theo sở thích. Một số hướng dẫn đăng ký: - -| Đăng ký | Chi phí | API Key | Playground | Ghi chú | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst)| [Bảng giá](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst)| [Dựa trên dự án](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [Không cần code, Web](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | Có nhiều mô hình khác nhau | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst)| [Bảng giá](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst)| [SDK Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst)| [Studio Quickstart](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Phải đăng ký trước để được truy cập](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst)| -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [Bảng giá](https://huggingface.co/pricing) | [Access Tokens](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst)| [Hugging Chat có mô hình giới hạn](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -Làm theo hướng dẫn dưới đây để _cấu hình_ kho mã này sử dụng với các nhà cung cấp khác nhau. Các bài tập yêu cầu nhà cung cấp cụ thể sẽ có một trong các tag sau trong tên file: - - `aoai` - yêu cầu endpoint và key Azure OpenAI - - `oai` - yêu cầu endpoint và key OpenAI - - `hf` - yêu cầu token Hugging Face - -Bạn có thể cấu hình một, không hoặc tất cả các nhà cung cấp. Các bài tập liên quan sẽ báo lỗi nếu thiếu thông tin xác thực. - -### 2.1. Tạo file `.env` - -Chúng tôi giả định bạn đã đọc hướng dẫn trên và đăng ký với nhà cung cấp phù hợp, đồng thời đã có thông tin xác thực cần thiết (API_KEY hoặc token). Với Azure OpenAI, giả định bạn cũng đã có một triển khai hợp lệ của dịch vụ Azure OpenAI (endpoint) với ít nhất một mô hình GPT được triển khai cho chat completion. - -Bước tiếp theo là cấu hình **biến môi trường cục bộ** như sau: - -1. Tìm file `.env.copy` trong thư mục gốc, file này có nội dung tương tự như sau: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. Sao chép file đó thành `.env` bằng lệnh dưới đây. File này được _gitignore_, giúp giữ bí mật an toàn. - - ```bash - cp .env.copy .env - ``` - -3. Điền các giá trị (thay thế các placeholder bên phải dấu `=`) như mô tả trong phần tiếp theo. - -3. (Tùy chọn) Nếu bạn dùng GitHub Codespaces, bạn có thể lưu biến môi trường dưới dạng _Codespaces secrets_ liên kết với kho mã này. Trong trường hợp đó, bạn không cần tạo file .env cục bộ. **Tuy nhiên, lưu ý rằng tùy chọn này chỉ hoạt động khi bạn dùng GitHub Codespaces.** Nếu dùng Docker Desktop, bạn vẫn cần tạo file .env. - -### 2.2. Điền thông tin vào file `.env` - -Hãy xem qua tên các biến để hiểu ý nghĩa của chúng: - -| Biến | Mô tả | -| :--- | :--- | -| HUGGING_FACE_API_KEY | Đây là token truy cập người dùng bạn thiết lập trong hồ sơ cá nhân | -| OPENAI_API_KEY | Đây là khóa ủy quyền dùng dịch vụ cho các endpoint OpenAI không phải Azure | -| AZURE_OPENAI_API_KEY | Đây là khóa ủy quyền dùng dịch vụ Azure OpenAI | -| AZURE_OPENAI_ENDPOINT | Đây là endpoint đã triển khai cho tài nguyên Azure OpenAI | -| AZURE_OPENAI_DEPLOYMENT | Đây là endpoint triển khai mô hình _text generation_ | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | Đây là endpoint triển khai mô hình _text embeddings_ | -| | | - -Lưu ý: Hai biến Azure OpenAI cuối cùng phản ánh mô hình mặc định cho chat completion (tạo văn bản) và tìm kiếm vector (embeddings) tương ứng. Hướng dẫn thiết lập sẽ được mô tả trong các bài tập liên quan. - -### 2.3 Cấu hình Azure: Từ Portal - -Giá trị endpoint và key Azure OpenAI có thể tìm thấy trong [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst), vậy hãy bắt đầu từ đó. - -1. Truy cập [Azure Portal](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -2. Nhấn vào tùy chọn **Keys and Endpoint** trong thanh bên (menu bên trái). -3. Nhấn **Show Keys** - bạn sẽ thấy các mục: KEY 1, KEY 2 và Endpoint. -4. Dùng giá trị KEY 1 cho biến AZURE_OPENAI_API_KEY -5. Dùng giá trị Endpoint cho biến AZURE_OPENAI_ENDPOINT - -Tiếp theo, ta cần lấy endpoint cho các mô hình cụ thể đã triển khai. - -1. Nhấn vào tùy chọn **Model deployments** trong thanh bên (menu trái) của tài nguyên Azure OpenAI. -2. Ở trang đích, nhấn **Manage Deployments** - -Điều này sẽ đưa bạn đến trang web Azure OpenAI Studio, nơi bạn sẽ tìm thấy các giá trị khác như mô tả dưới đây. - -### 2.4 Cấu hình Azure: Từ Studio - -1. Truy cập [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) **từ tài nguyên của bạn** như đã mô tả ở trên. -2. Nhấn tab **Deployments** (thanh bên trái) để xem các mô hình đã triển khai hiện tại. -3. Nếu mô hình bạn muốn chưa được triển khai, hãy dùng **Create new deployment** để triển khai nó. -4. Bạn sẽ cần một mô hình _text-generation_ - chúng tôi khuyên dùng: **gpt-35-turbo** -5. Bạn sẽ cần một mô hình _text-embedding_ - chúng tôi khuyên dùng **text-embedding-ada-002** - -Bây giờ cập nhật các biến môi trường để phản ánh _Tên triển khai_ được sử dụng. Thông thường tên này sẽ giống tên mô hình trừ khi bạn đổi tên rõ ràng. Ví dụ, bạn có thể có: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**Đừng quên lưu file .env khi hoàn tất**. Bạn có thể đóng file và quay lại hướng dẫn chạy sổ tay. - -### 2.5 Cấu hình OpenAI: Từ Hồ Sơ - -Khóa API OpenAI của bạn có thể tìm thấy trong [tài khoản OpenAI](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst). Nếu chưa có, bạn có thể đăng ký tài khoản và tạo khóa API. Khi có khóa, bạn dùng nó để điền vào biến `OPENAI_API_KEY` trong file `.env`. - -### 2.6 Cấu hình Hugging Face: Từ Hồ Sơ - -Token Hugging Face của bạn có thể tìm thấy trong hồ sơ cá nhân tại mục [Access Tokens](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst). Không đăng tải hoặc chia sẻ token này công khai. Thay vào đó, tạo một token mới cho dự án này và sao chép vào file `.env` dưới biến `HUGGING_FACE_API_KEY`. _Lưu ý:_ Về kỹ thuật đây không phải là API key nhưng được dùng để xác thực nên chúng tôi giữ tên biến cho đồng nhất. - -**Tuyên bố từ chối trách nhiệm**: -Tài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng các bản dịch tự động có thể chứa lỗi hoặc không chính xác. Tài liệu gốc bằng ngôn ngữ gốc của nó nên được coi là nguồn chính xác và đáng tin cậy. Đối với các thông tin quan trọng, nên sử dụng dịch vụ dịch thuật chuyên nghiệp do con người thực hiện. Chúng tôi không chịu trách nhiệm về bất kỳ sự hiểu lầm hoặc giải thích sai nào phát sinh từ việc sử dụng bản dịch này. \ No newline at end of file diff --git a/translations/vi/04-prompt-engineering-fundamentals/README.md b/translations/vi/04-prompt-engineering-fundamentals/README.md index 575c54365..e9b4359e9 100644 --- a/translations/vi/04-prompt-engineering-fundamentals/README.md +++ b/translations/vi/04-prompt-engineering-fundamentals/README.md @@ -1,447 +1,15 @@ - -# Các Nguyên Tắc Cơ Bản về Prompt Engineering - -[![Prompt Engineering Fundamentals](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.vi.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## Giới Thiệu -Module này bao gồm các khái niệm và kỹ thuật thiết yếu để tạo ra các prompt hiệu quả trong các mô hình AI sinh tạo. Cách bạn viết prompt cho một LLM cũng rất quan trọng. Một prompt được thiết kế cẩn thận có thể mang lại chất lượng phản hồi tốt hơn. Nhưng chính xác thì các thuật ngữ như _prompt_ và _prompt engineering_ có nghĩa là gì? Và làm thế nào để tôi cải thiện _đầu vào_ prompt mà tôi gửi đến LLM? Đây là những câu hỏi chúng ta sẽ cố gắng trả lời trong chương này và chương tiếp theo. - -_Generative AI_ có khả năng tạo ra nội dung mới (ví dụ: văn bản, hình ảnh, âm thanh, mã code, v.v.) dựa trên yêu cầu của người dùng. Nó đạt được điều này nhờ sử dụng _Large Language Models_ như chuỗi GPT ("Generative Pre-trained Transformer") của OpenAI, được huấn luyện để sử dụng ngôn ngữ tự nhiên và mã code. - -Người dùng giờ đây có thể tương tác với các mô hình này qua các phương thức quen thuộc như chat, mà không cần kiến thức kỹ thuật hay đào tạo chuyên sâu. Các mô hình này dựa trên _prompt_ — người dùng gửi một đầu vào văn bản (prompt) và nhận lại phản hồi từ AI (completion). Họ có thể "trò chuyện với AI" theo nhiều lượt, liên tục chỉnh sửa prompt cho đến khi phản hồi đáp ứng được kỳ vọng. - -"Prompt" giờ đây trở thành _giao diện lập trình chính_ cho các ứng dụng AI sinh tạo, chỉ dẫn cho mô hình phải làm gì và ảnh hưởng đến chất lượng phản hồi trả về. "Prompt Engineering" là một lĩnh vực nghiên cứu phát triển nhanh, tập trung vào _thiết kế và tối ưu hóa_ prompt để mang lại các phản hồi nhất quán và chất lượng ở quy mô lớn. - -## Mục Tiêu Học Tập - -Trong bài học này, chúng ta sẽ tìm hiểu Prompt Engineering là gì, tại sao nó quan trọng, và làm thế nào để tạo ra các prompt hiệu quả hơn cho một mô hình và mục tiêu ứng dụng cụ thể. Chúng ta sẽ hiểu các khái niệm cốt lõi và các thực hành tốt nhất trong prompt engineering — đồng thời làm quen với môi trường "sandbox" tương tác trong Jupyter Notebooks, nơi ta có thể thấy các khái niệm này được áp dụng vào các ví dụ thực tế. - -Kết thúc bài học, bạn sẽ có thể: - -1. Giải thích Prompt Engineering là gì và tại sao nó quan trọng. -2. Mô tả các thành phần của một prompt và cách sử dụng chúng. -3. Học các thực hành và kỹ thuật tốt nhất cho prompt engineering. -4. Áp dụng các kỹ thuật đã học vào các ví dụ thực tế, sử dụng endpoint OpenAI. - -## Thuật Ngữ Chính - -Prompt Engineering: Thực hành thiết kế và tinh chỉnh đầu vào để hướng các mô hình AI tạo ra kết quả mong muốn. -Tokenization: Quá trình chuyển đổi văn bản thành các đơn vị nhỏ hơn gọi là token, mà mô hình có thể hiểu và xử lý. -Instruction-Tuned LLMs: Các Large Language Models (LLMs) được tinh chỉnh với các hướng dẫn cụ thể nhằm cải thiện độ chính xác và sự phù hợp của phản hồi. - -## Môi Trường Thực Hành - -Prompt engineering hiện nay vẫn là một nghệ thuật nhiều hơn là khoa học. Cách tốt nhất để nâng cao trực giác về nó là _luyện tập nhiều hơn_ và áp dụng phương pháp thử-và-sai kết hợp kiến thức chuyên môn về lĩnh vực ứng dụng với các kỹ thuật được khuyến nghị và tối ưu hóa theo mô hình cụ thể. - -Jupyter Notebook đi kèm bài học này cung cấp một môi trường _sandbox_ để bạn thử nghiệm những gì học được — trong quá trình học hoặc như một phần của thử thách mã ở cuối bài. Để thực hiện các bài tập, bạn cần: - -1. **Khóa API Azure OpenAI** — điểm cuối dịch vụ cho một LLM đã triển khai. -2. **Môi trường Python Runtime** — để chạy Notebook. -3. **Biến môi trường cục bộ** — _hoàn thành các bước [SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst) ngay bây giờ để chuẩn bị_. - -Notebook có sẵn các bài tập _khởi đầu_ — nhưng bạn được khuyến khích thêm các phần _Markdown_ (mô tả) và _Code_ (yêu cầu prompt) để thử thêm nhiều ví dụ hoặc ý tưởng — và xây dựng trực giác thiết kế prompt. - -## Hướng Dẫn Minh Họa - -Muốn có cái nhìn tổng quan về những gì bài học này đề cập trước khi bắt đầu? Hãy xem hướng dẫn minh họa này, giúp bạn nắm được các chủ đề chính và những điểm quan trọng để suy ngẫm trong từng phần. Lộ trình bài học dẫn bạn từ việc hiểu các khái niệm cốt lõi và thách thức đến cách giải quyết chúng bằng các kỹ thuật và thực hành tốt nhất trong prompt engineering. Lưu ý rằng phần "Kỹ Thuật Nâng Cao" trong hướng dẫn này đề cập đến nội dung sẽ được trình bày trong _chương tiếp theo_ của khóa học. - -![Illustrated Guide to Prompt Engineering](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.vi.png) - -## Startup của Chúng Ta - -Bây giờ, hãy nói về cách _chủ đề này_ liên quan đến sứ mệnh startup của chúng ta trong việc [đưa đổi mới AI vào giáo dục](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst). Chúng ta muốn xây dựng các ứng dụng AI hỗ trợ _học tập cá nhân hóa_ — vậy hãy cùng suy nghĩ về cách các nhóm người dùng khác nhau trong ứng dụng của chúng ta có thể "thiết kế" prompt: - -- **Quản trị viên** có thể yêu cầu AI _phân tích dữ liệu chương trình học để xác định các khoảng trống trong nội dung_. AI có thể tóm tắt kết quả hoặc trực quan hóa chúng bằng mã code. -- **Giáo viên** có thể yêu cầu AI _tạo kế hoạch bài học cho đối tượng và chủ đề cụ thể_. AI có thể xây dựng kế hoạch cá nhân hóa theo định dạng được chỉ định. -- **Học sinh** có thể yêu cầu AI _hướng dẫn họ trong một môn học khó_. AI có thể hỗ trợ học sinh với bài học, gợi ý và ví dụ phù hợp với trình độ của họ. - -Đó chỉ là phần nổi của tảng băng chìm. Hãy xem [Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst) — thư viện prompt mã nguồn mở được các chuyên gia giáo dục tuyển chọn — để có cái nhìn rộng hơn về các khả năng! _Hãy thử chạy một số prompt đó trong sandbox hoặc dùng OpenAI Playground để xem kết quả!_ - - - -## Prompt Engineering là gì? - -Chúng ta bắt đầu bài học này bằng cách định nghĩa **Prompt Engineering** là quá trình _thiết kế và tối ưu hóa_ các đầu vào văn bản (prompt) để mang lại các phản hồi (completion) nhất quán và chất lượng cho một mục tiêu ứng dụng và mô hình cụ thể. Ta có thể coi đây là một quy trình gồm 2 bước: - -- _thiết kế_ prompt ban đầu cho một mô hình và mục tiêu nhất định -- _tinh chỉnh_ prompt theo từng bước để cải thiện chất lượng phản hồi - -Đây chắc chắn là một quá trình thử-và-sai đòi hỏi trực giác và nỗ lực của người dùng để đạt kết quả tối ưu. Vậy tại sao nó lại quan trọng? Để trả lời câu hỏi đó, trước tiên ta cần hiểu ba khái niệm: - -- _Tokenization_ = cách mô hình "nhìn thấy" prompt -- _Base LLMs_ = cách mô hình nền tảng "xử lý" prompt -- _Instruction-Tuned LLMs_ = cách mô hình có thể "hiểu nhiệm vụ" - -### Tokenization - -Một LLM xem prompt như một _chuỗi các token_, trong đó các mô hình khác nhau (hoặc các phiên bản của cùng một mô hình) có thể phân tách prompt thành token theo cách khác nhau. Vì LLM được huấn luyện trên token (chứ không phải văn bản thô), cách prompt được token hóa ảnh hưởng trực tiếp đến chất lượng phản hồi được tạo ra. - -Để có trực giác về cách tokenization hoạt động, hãy thử các công cụ như [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst) được minh họa bên dưới. Sao chép prompt của bạn vào — và xem nó được chuyển thành token như thế nào, chú ý cách các ký tự khoảng trắng và dấu câu được xử lý. Lưu ý ví dụ này dùng một LLM cũ hơn (GPT-3) — nên thử với mô hình mới hơn có thể cho kết quả khác. - -![Tokenization](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.vi.png) - -### Khái Niệm: Mô Hình Nền Tảng - -Khi prompt đã được token hóa, chức năng chính của ["Base LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) (hay mô hình nền tảng) là dự đoán token tiếp theo trong chuỗi đó. Vì LLM được huấn luyện trên bộ dữ liệu văn bản khổng lồ, chúng có khả năng nắm bắt mối quan hệ thống kê giữa các token và có thể dự đoán với độ tin cậy nhất định. Lưu ý rằng chúng không hiểu _ý nghĩa_ của từ trong prompt hay token; chúng chỉ nhận ra một mẫu có thể "hoàn thành" bằng dự đoán tiếp theo. Chúng có thể tiếp tục dự đoán chuỗi cho đến khi bị người dùng dừng hoặc đạt điều kiện đã định. - -Muốn xem cách hoàn thành dựa trên prompt hoạt động? Hãy nhập prompt trên vào Azure OpenAI Studio [_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst) với các thiết lập mặc định. Hệ thống được cấu hình để xem prompt như yêu cầu thông tin — nên bạn sẽ thấy một phản hồi phù hợp với ngữ cảnh này. - -Nhưng nếu người dùng muốn thấy điều gì đó cụ thể, đáp ứng một tiêu chí hoặc mục tiêu nhiệm vụ? Đây là lúc các LLM _được tinh chỉnh theo hướng dẫn_ xuất hiện. - -![Base LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.vi.png) - -### Khái Niệm: Instruction Tuned LLMs - -Một [Instruction Tuned LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst) bắt đầu từ mô hình nền tảng và được tinh chỉnh thêm với các ví dụ hoặc cặp đầu vào/đầu ra (ví dụ: các "tin nhắn" đa lượt) có thể chứa hướng dẫn rõ ràng — và phản hồi từ AI cố gắng tuân theo hướng dẫn đó. - -Điều này sử dụng các kỹ thuật như Reinforcement Learning with Human Feedback (RLHF) để huấn luyện mô hình _tuân theo hướng dẫn_ và _học từ phản hồi_, giúp tạo ra các phản hồi phù hợp hơn với ứng dụng thực tế và sát với mục tiêu người dùng. - -Hãy thử ngay — quay lại prompt trên, nhưng lần này thay đổi _system message_ để cung cấp hướng dẫn sau làm ngữ cảnh: - -> _Tóm tắt nội dung bạn được cung cấp cho học sinh lớp hai. Giữ kết quả trong một đoạn văn với 3-5 gạch đầu dòng._ - -Xem kết quả giờ đây được điều chỉnh để phản ánh mục tiêu và định dạng mong muốn? Một giáo viên có thể dùng trực tiếp phản hồi này trong bài giảng của họ. - -![Instruction Tuned LLM Chat Completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.vi.png) - -## Tại sao chúng ta cần Prompt Engineering? - -Giờ khi đã hiểu cách LLM xử lý prompt, hãy nói về _tại sao_ chúng ta cần prompt engineering. Câu trả lời nằm ở việc các LLM hiện tại gặp nhiều thách thức khiến việc đạt được _phản hồi đáng tin cậy và nhất quán_ trở nên khó khăn nếu không đầu tư công sức vào xây dựng và tối ưu prompt. Ví dụ: - -1. **Phản hồi của mô hình mang tính ngẫu nhiên.** _Cùng một prompt_ có thể tạo ra các phản hồi khác nhau với các mô hình hoặc phiên bản mô hình khác nhau. Thậm chí có thể cho kết quả khác nhau khi dùng _cùng một mô hình_ vào các thời điểm khác nhau. _Kỹ thuật prompt engineering giúp giảm thiểu sự biến động này bằng cách cung cấp các ràng buộc tốt hơn_. - -2. **Mô hình có thể tạo ra thông tin sai lệch.** Mô hình được huấn luyện trên bộ dữ liệu _lớn nhưng có giới hạn_, nghĩa là chúng thiếu kiến thức về các khái niệm ngoài phạm vi huấn luyện. Do đó, chúng có thể tạo ra các phản hồi không chính xác, tưởng tượng hoặc mâu thuẫn trực tiếp với sự thật đã biết. _Kỹ thuật prompt engineering giúp người dùng phát hiện và giảm thiểu các sai lệch này, ví dụ bằng cách yêu cầu AI trích dẫn nguồn hoặc lý giải_. - -3. **Khả năng của mô hình sẽ khác nhau.** Các mô hình mới hơn hoặc thế hệ mô hình mới sẽ có khả năng phong phú hơn nhưng cũng mang theo những đặc điểm riêng biệt và các đánh đổi về chi phí & độ phức tạp. _Prompt engineering giúp phát triển các thực hành và quy trình làm việc tốt nhất, trừu tượng hóa sự khác biệt và thích ứng với yêu cầu riêng của từng mô hình một cách linh hoạt và mở rộng_. - -Hãy thử điều này trong OpenAI hoặc Azure OpenAI Playground: - -- Dùng cùng một prompt với các triển khai LLM khác nhau (ví dụ: OpenAI, Azure OpenAI, Hugging Face) — bạn có thấy sự khác biệt không? -- Dùng cùng một prompt lặp lại nhiều lần với _cùng một_ triển khai LLM (ví dụ: Azure OpenAI playground) — các phản hồi khác nhau như thế nào? - -### Ví dụ về Fabrications - -Trong khóa học này, chúng ta dùng thuật ngữ **"fabrication"** để chỉ hiện tượng LLM đôi khi tạo ra thông tin sai sự thật do hạn chế trong dữ liệu huấn luyện hoặc các giới hạn khác. Bạn có thể đã nghe thuật ngữ này dưới tên _"hallucinations"_ trong các bài báo hoặc nghiên cứu phổ biến. Tuy nhiên, chúng tôi khuyến nghị dùng _"fabrication"_ để tránh vô tình nhân cách hóa hành vi này bằng cách gán cho máy móc những đặc điểm giống con người. Điều này cũng củng cố các [nguyên tắc AI có trách nhiệm](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst) từ góc độ thuật ngữ, loại bỏ các từ ngữ có thể bị coi là xúc phạm hoặc không bao gồm trong một số ngữ cảnh. - -Muốn hiểu cách fabrication hoạt động? Hãy nghĩ đến một prompt yêu cầu AI tạo nội dung cho một chủ đề không tồn tại (để đảm bảo nó không có trong bộ dữ liệu huấn luyện). Ví dụ — tôi đã thử prompt sau: -# Kế hoạch bài học: Cuộc chiến trên sao Hỏa năm 2076 - -## Mục tiêu bài học -- Hiểu được nguyên nhân và diễn biến chính của Cuộc chiến trên sao Hỏa năm 2076. -- Phân tích tác động của cuộc chiến đối với nhân loại và công nghệ. -- Phát triển kỹ năng tư duy phản biện thông qua việc thảo luận các kịch bản giả định. - -## Nội dung bài học - -### 1. Giới thiệu về Cuộc chiến trên sao Hỏa năm 2076 -- Bối cảnh lịch sử và xã hội trước khi cuộc chiến bùng nổ. -- Các bên tham chiến chính và mục tiêu của họ. - -### 2. Diễn biến chính của cuộc chiến -- Các trận đánh quan trọng và chiến thuật được sử dụng. -- Vai trò của công nghệ tiên tiến trong cuộc chiến. - -### 3. Hậu quả và tác động -- Tác động đối với dân cư trên sao Hỏa và Trái Đất. -- Những thay đổi về chính trị, kinh tế và khoa học sau cuộc chiến. - -### 4. Thảo luận nhóm -- Giả định nếu cuộc chiến không xảy ra, thế giới sẽ ra sao? -- Những bài học rút ra từ cuộc chiến cho tương lai. - -## Phương pháp giảng dạy -- Thuyết trình kết hợp trình chiếu. -- Thảo luận nhóm và phân tích tình huống. -- Bài tập viết ngắn về quan điểm cá nhân. - -## Tài liệu tham khảo -- Các bài báo khoa học và báo cáo về Cuộc chiến trên sao Hỏa năm 2076. -- Tài liệu hình ảnh và video minh họa. -Một tìm kiếm trên web cho thấy có những câu chuyện hư cấu (ví dụ, các loạt phim truyền hình hoặc sách) về các cuộc chiến trên sao Hỏa - nhưng không có cái nào vào năm 2076. Lẽ thường cũng cho chúng ta biết rằng năm 2076 là _trong tương lai_ và do đó, không thể liên quan đến một sự kiện thực tế. - -Vậy điều gì xảy ra khi chúng ta chạy prompt này với các nhà cung cấp LLM khác nhau? - -> **Phản hồi 1**: OpenAI Playground (GPT-35) - -![Phản hồi 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.vi.png) - -> **Phản hồi 2**: Azure OpenAI Playground (GPT-35) - -![Phản hồi 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.vi.png) - -> **Phản hồi 3**: : Hugging Face Chat Playground (LLama-2) - -![Phản hồi 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.vi.png) - -Như dự đoán, mỗi mô hình (hoặc phiên bản mô hình) tạo ra các phản hồi hơi khác nhau nhờ vào tính ngẫu nhiên và sự khác biệt về khả năng của mô hình. Ví dụ, một mô hình hướng đến đối tượng học sinh lớp 8 trong khi mô hình khác giả định người dùng là học sinh trung học phổ thông. Nhưng cả ba mô hình đều tạo ra các phản hồi có thể thuyết phục người dùng không có thông tin rằng sự kiện đó là thật. - -Các kỹ thuật thiết kế prompt như _metaprompting_ và _cấu hình nhiệt độ_ có thể giảm bớt các thông tin sai lệch do mô hình tạo ra ở một mức độ nào đó. Các _kiến trúc_ thiết kế prompt mới cũng tích hợp liền mạch các công cụ và kỹ thuật mới vào luồng prompt, nhằm giảm thiểu hoặc hạn chế một số tác động này. - -## Nghiên cứu trường hợp: GitHub Copilot - -Hãy kết thúc phần này bằng cách tìm hiểu cách thiết kế prompt được sử dụng trong các giải pháp thực tế qua một Nghiên cứu trường hợp: [GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst). - -GitHub Copilot là "Bạn lập trình viên AI" của bạn - nó chuyển đổi các prompt văn bản thành các đoạn mã hoàn chỉnh và được tích hợp vào môi trường phát triển của bạn (ví dụ, Visual Studio Code) để mang lại trải nghiệm người dùng liền mạch. Như được ghi lại trong chuỗi bài blog dưới đây, phiên bản đầu tiên dựa trên mô hình OpenAI Codex - với các kỹ sư nhanh chóng nhận ra cần phải tinh chỉnh mô hình và phát triển các kỹ thuật thiết kế prompt tốt hơn để cải thiện chất lượng mã. Vào tháng 7, họ đã [ra mắt một mô hình AI cải tiến vượt xa Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) để đề xuất nhanh hơn nữa. - -Hãy đọc các bài viết theo thứ tự để theo dõi hành trình học hỏi của họ. - -- **Tháng 5/2023** | [GitHub Copilot ngày càng hiểu mã của bạn tốt hơn](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **Tháng 5/2023** | [Bên trong GitHub: Làm việc với các LLM đằng sau GitHub Copilot](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Tháng 6/2023** | [Cách viết prompt tốt hơn cho GitHub Copilot](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **Tháng 7/2023** | [.. GitHub Copilot vượt xa Codex với mô hình AI cải tiến](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **Tháng 7/2023** | [Hướng dẫn dành cho nhà phát triển về thiết kế prompt và LLM](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **Tháng 9/2023** | [Cách xây dựng ứng dụng LLM doanh nghiệp: Bài học từ GitHub Copilot](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -Bạn cũng có thể tham khảo [blog Kỹ thuật](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst) của họ để xem thêm các bài viết như [bài này](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst) cho thấy cách các mô hình và kỹ thuật này được _ứng dụng_ để phát triển các ứng dụng thực tế. - ---- - - - -## Cấu trúc Prompt - -Chúng ta đã thấy tại sao thiết kế prompt lại quan trọng - giờ hãy hiểu cách các prompt được _xây dựng_ để có thể đánh giá các kỹ thuật khác nhau nhằm thiết kế prompt hiệu quả hơn. - -### Prompt cơ bản - -Hãy bắt đầu với prompt cơ bản: một đầu vào văn bản gửi đến mô hình mà không có ngữ cảnh nào khác. Đây là một ví dụ - khi chúng ta gửi vài từ đầu tiên của quốc ca Mỹ đến OpenAI [Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst), nó ngay lập tức _hoàn thành_ phản hồi với vài câu tiếp theo, minh họa hành vi dự đoán cơ bản. - -| Prompt (Đầu vào) | Hoàn thành (Đầu ra) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | Nghe có vẻ bạn đang bắt đầu lời bài hát "The Star-Spangled Banner," quốc ca của Hoa Kỳ. Toàn bộ lời bài hát là ... | - -### Prompt phức tạp - -Bây giờ hãy thêm ngữ cảnh và hướng dẫn vào prompt cơ bản đó. [Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst) cho phép chúng ta xây dựng một prompt phức tạp dưới dạng tập hợp các _tin nhắn_ với: - -- Các cặp đầu vào/đầu ra phản ánh đầu vào của _người dùng_ và phản hồi của _trợ lý_. -- Tin nhắn hệ thống thiết lập ngữ cảnh cho hành vi hoặc tính cách của trợ lý. - -Yêu cầu giờ đây có dạng như dưới đây, trong đó _tokenization_ hiệu quả nắm bắt thông tin liên quan từ ngữ cảnh và cuộc trò chuyện. Việc thay đổi ngữ cảnh hệ thống có thể ảnh hưởng lớn đến chất lượng các hoàn thành, tương tự như các đầu vào người dùng được cung cấp. - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### Prompt hướng dẫn - -Trong các ví dụ trên, prompt của người dùng là một truy vấn văn bản đơn giản có thể được hiểu như một yêu cầu thông tin. Với các prompt _hướng dẫn_, chúng ta có thể dùng văn bản đó để chỉ định nhiệm vụ chi tiết hơn, cung cấp hướng dẫn rõ ràng hơn cho AI. Đây là một ví dụ: - -| Prompt (Đầu vào) | Hoàn thành (Đầu ra) | Loại hướng dẫn | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Viết một mô tả về Nội chiến | _trả về một đoạn văn đơn giản_ | Đơn giản | -| Viết một mô tả về Nội chiến. Cung cấp các ngày và sự kiện chính và mô tả ý nghĩa của chúng | _trả về một đoạn văn kèm theo danh sách các ngày sự kiện chính với mô tả_ | Phức tạp | -| Viết một mô tả về Nội chiến trong 1 đoạn văn. Cung cấp 3 gạch đầu dòng với các ngày quan trọng và ý nghĩa của chúng. Cung cấp thêm 3 gạch đầu dòng với các nhân vật lịch sử chính và đóng góp của họ. Trả kết quả dưới dạng file JSON | _trả về chi tiết mở rộng trong một hộp văn bản, định dạng JSON để bạn có thể sao chép-dán vào file và kiểm tra khi cần_ | Phức tạp. Định dạng. | - -## Nội dung chính - -Trong các ví dụ trên, prompt vẫn còn khá mở, cho phép LLM quyết định phần nào trong tập dữ liệu đã được huấn luyện là liên quan. Với mẫu thiết kế _nội dung chính_, văn bản đầu vào được chia thành hai phần: - -- một hướng dẫn (hành động) -- nội dung liên quan (ảnh hưởng đến hành động) - -Dưới đây là ví dụ trong đó hướng dẫn là "tóm tắt nội dung này trong 2 câu ngắn". - -| Prompt (Đầu vào) | Hoàn thành (Đầu ra) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Sao Mộc là hành tinh thứ năm tính từ Mặt Trời và là hành tinh lớn nhất trong Hệ Mặt Trời. Nó là một hành tinh khí khổng lồ với khối lượng bằng một phần nghìn khối lượng Mặt Trời, nhưng gấp hai lần rưỡi tổng khối lượng của tất cả các hành tinh khác trong Hệ Mặt Trời cộng lại. Sao Mộc là một trong những vật thể sáng nhất có thể nhìn thấy bằng mắt thường trên bầu trời đêm, và đã được các nền văn minh cổ đại biết đến từ trước khi có ghi chép lịch sử. Nó được đặt theo tên vị thần La Mã Jupiter.[19] Khi nhìn từ Trái Đất, Sao Mộc có thể sáng đến mức ánh sáng phản chiếu của nó tạo ra bóng đổ có thể nhìn thấy,[20] và trung bình là vật thể tự nhiên sáng thứ ba trên bầu trời đêm sau Mặt Trăng và Sao Kim.
**Tóm tắt nội dung này trong 2 câu ngắn** | Sao Mộc, hành tinh thứ năm tính từ Mặt Trời, là hành tinh lớn nhất trong Hệ Mặt Trời và được biết đến là một trong những vật thể sáng nhất trên bầu trời đêm. Được đặt theo tên vị thần La Mã Jupiter, nó là một hành tinh khí khổng lồ có khối lượng gấp hai lần rưỡi tổng khối lượng của tất cả các hành tinh khác trong Hệ Mặt Trời cộng lại. | - -Phần nội dung chính có thể được sử dụng theo nhiều cách để tạo ra các hướng dẫn hiệu quả hơn: - -- **Ví dụ** - thay vì nói rõ cho mô hình biết phải làm gì bằng một hướng dẫn cụ thể, hãy cho nó các ví dụ về việc cần làm và để nó suy luận ra mẫu. -- **Dấu hiệu** - theo sau hướng dẫn bằng một "dấu hiệu" để kích hoạt phần hoàn thành, hướng mô hình đến các phản hồi phù hợp hơn. -- **Mẫu** - đây là các 'công thức' có thể lặp lại cho các prompt với các chỗ giữ chỗ (biến) có thể tùy chỉnh với dữ liệu cho các trường hợp sử dụng cụ thể. - -Hãy cùng khám phá các cách này trong thực tế. - -### Sử dụng ví dụ - -Đây là cách tiếp cận trong đó bạn dùng phần nội dung chính để "cung cấp cho mô hình" một số ví dụ về đầu ra mong muốn cho một hướng dẫn nhất định, và để nó suy ra mẫu cho đầu ra mong muốn. Dựa trên số lượng ví dụ được cung cấp, chúng ta có thể có zero-shot prompting, one-shot prompting, few-shot prompting, v.v. - -Prompt giờ đây gồm ba thành phần: - -- Mô tả nhiệm vụ -- Một vài ví dụ về đầu ra mong muốn -- Phần bắt đầu của một ví dụ mới (trở thành mô tả nhiệm vụ ngầm định) - -| Loại học | Prompt (Đầu vào) | Hoàn thành (Đầu ra) | -| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| Zero-shot | "The Sun is Shining". Dịch sang tiếng Tây Ban Nha | "El Sol está brillando". | -| One-shot | "The Sun is Shining" => ""El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| Few-shot | Người chơi chạy quanh các căn cứ => Bóng chày
Người chơi ghi điểm ace => Quần vợt
Người chơi ghi sáu điểm => Cricket
Người chơi thực hiện cú slam-dunk => | Bóng rổ | -| | | | - -Lưu ý cách chúng ta phải cung cấp hướng dẫn rõ ràng ("Dịch sang tiếng Tây Ban Nha") trong zero-shot prompting, nhưng nó được suy ra trong ví dụ one-shot. Ví dụ few-shot cho thấy việc thêm nhiều ví dụ hơn giúp mô hình suy luận chính xác hơn mà không cần thêm hướng dẫn. - -### Dấu hiệu trong prompt - -Một kỹ thuật khác để sử dụng nội dung chính là cung cấp _dấu hiệu_ thay vì ví dụ. Trong trường hợp này, chúng ta khởi đầu cho mô hình bằng một đoạn văn bản phản ánh định dạng phản hồi mong muốn. Mô hình sau đó "nhận dấu hiệu" để tiếp tục theo hướng đó. - -| Số lượng dấu hiệu | Prompt (Đầu vào) | Hoàn thành (Đầu ra) | -| :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | Sao Mộc là hành tinh thứ năm tính từ Mặt Trời và là hành tinh lớn nhất trong Hệ Mặt Trời. Nó là một hành tinh khí khổng lồ với khối lượng bằng một phần nghìn khối lượng Mặt Trời, nhưng gấp hai lần rưỡi tổng khối lượng của tất cả các hành tinh khác trong Hệ Mặt Trời cộng lại. Sao Mộc là một trong những vật thể sáng nhất có thể nhìn thấy bằng mắt thường trên bầu trời đêm, và đã được biết đến từ các nền văn minh cổ đại trước khi có ghi chép lịch sử. - -**Tóm tắt nội dung này** | Sao Mộc là hành tinh lớn nhất trong Hệ Mặt Trời của chúng ta và là hành tinh thứ năm tính từ Mặt Trời. Đây là một hành tinh khí khổng lồ với khối lượng bằng 1/1000 khối lượng Mặt Trời, nhưng nặng hơn tất cả các hành tinh khác cộng lại. Các nền văn minh cổ đại đã biết đến Sao Mộc từ rất lâu, và nó dễ dàng nhìn thấy trên bầu trời đêm. | -| 1 | Sao Mộc là hành tinh thứ năm tính từ Mặt Trời và là hành tinh lớn nhất trong Hệ Mặt Trời. Đây là một hành tinh khí khổng lồ với khối lượng bằng một phần nghìn khối lượng Mặt Trời, nhưng gấp hai lần rưỡi tổng khối lượng của tất cả các hành tinh khác trong Hệ Mặt Trời. Sao Mộc là một trong những vật thể sáng nhất có thể nhìn thấy bằng mắt thường trên bầu trời đêm, và đã được các nền văn minh cổ đại biết đến từ trước khi có ghi chép lịch sử.
**Tóm tắt nội dung này**
Điều chúng ta học được là Sao Mộc | là hành tinh thứ năm tính từ Mặt Trời và là hành tinh lớn nhất trong Hệ Mặt Trời. Đây là một hành tinh khí khổng lồ với khối lượng bằng một phần nghìn khối lượng Mặt Trời, nhưng gấp hai lần rưỡi tổng khối lượng của tất cả các hành tinh khác cộng lại. Nó dễ dàng nhìn thấy bằng mắt thường và đã được biết đến từ thời cổ đại. | -| 2 | Sao Mộc là hành tinh thứ năm tính từ Mặt Trời và là hành tinh lớn nhất trong Hệ Mặt Trời. Đây là một hành tinh khí khổng lồ với khối lượng bằng một phần nghìn khối lượng Mặt Trời, nhưng gấp hai lần rưỡi tổng khối lượng của tất cả các hành tinh khác trong Hệ Mặt Trời. Sao Mộc là một trong những vật thể sáng nhất có thể nhìn thấy bằng mắt thường trên bầu trời đêm, và đã được các nền văn minh cổ đại biết đến từ trước khi có ghi chép lịch sử.
**Tóm tắt nội dung này**
3 Sự thật hàng đầu chúng ta đã học được: | 1. Sao Mộc là hành tinh thứ năm tính từ Mặt Trời và là hành tinh lớn nhất trong Hệ Mặt Trời.
2. Đây là một hành tinh khí khổng lồ với khối lượng bằng một phần nghìn khối lượng Mặt Trời...
3. Sao Mộc đã có thể nhìn thấy bằng mắt thường từ thời cổ đại ... | -| | | | - -### Mẫu Prompt - -Mẫu prompt là một _công thức được định nghĩa sẵn cho một prompt_ có thể được lưu trữ và tái sử dụng khi cần, nhằm tạo ra trải nghiệm người dùng nhất quán ở quy mô lớn. Ở dạng đơn giản nhất, nó chỉ là một tập hợp các ví dụ prompt như [ví dụ này từ OpenAI](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst) cung cấp cả các thành phần tương tác của prompt (tin nhắn người dùng và hệ thống) và định dạng yêu cầu qua API - để hỗ trợ tái sử dụng. - -Ở dạng phức tạp hơn như [ví dụ này từ LangChain](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst), nó chứa các _chỗ giữ chỗ_ có thể được thay thế bằng dữ liệu từ nhiều nguồn khác nhau (đầu vào người dùng, ngữ cảnh hệ thống, nguồn dữ liệu bên ngoài, v.v.) để tạo prompt một cách động. Điều này cho phép chúng ta tạo thư viện các prompt có thể tái sử dụng để tạo ra trải nghiệm người dùng nhất quán **một cách lập trình** ở quy mô lớn. - -Cuối cùng, giá trị thực sự của các mẫu nằm ở khả năng tạo và xuất bản _thư viện prompt_ cho các lĩnh vực ứng dụng chuyên biệt - nơi mẫu prompt được _tối ưu hóa_ để phản ánh ngữ cảnh hoặc ví dụ cụ thể của ứng dụng, giúp câu trả lời trở nên phù hợp và chính xác hơn với đối tượng người dùng mục tiêu. Kho [Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst) là một ví dụ tuyệt vời về cách tiếp cận này, tập hợp thư viện các prompt cho lĩnh vực giáo dục với trọng tâm vào các mục tiêu chính như lập kế hoạch bài học, thiết kế chương trình giảng dạy, gia sư học sinh, v.v. - -## Nội dung hỗ trợ - -Nếu chúng ta xem việc xây dựng prompt như có một hướng dẫn (nhiệm vụ) và một mục tiêu (nội dung chính), thì _nội dung phụ_ giống như ngữ cảnh bổ sung mà ta cung cấp để **ảnh hưởng đến kết quả đầu ra theo một cách nào đó**. Nó có thể là các tham số điều chỉnh, hướng dẫn định dạng, phân loại chủ đề, v.v. giúp mô hình _điều chỉnh_ câu trả lời phù hợp với mục tiêu hoặc kỳ vọng của người dùng. - -Ví dụ: Với một danh mục khóa học có siêu dữ liệu chi tiết (tên, mô tả, cấp độ, thẻ metadata, giảng viên, v.v.) về tất cả các khóa học có trong chương trình: - -- ta có thể định nghĩa một hướng dẫn là "tóm tắt danh mục khóa học cho học kỳ Thu 2023" -- ta có thể dùng nội dung chính để cung cấp một vài ví dụ về kết quả mong muốn -- ta có thể dùng nội dung phụ để xác định 5 "thẻ" quan trọng nhất. - -Bây giờ, mô hình có thể cung cấp bản tóm tắt theo định dạng được thể hiện trong các ví dụ - nhưng nếu một kết quả có nhiều thẻ, nó có thể ưu tiên 5 thẻ được xác định trong nội dung phụ. - ---- - - - -## Thực hành tốt nhất khi tạo Prompt - -Bây giờ khi đã biết cách _xây dựng_ prompt, ta có thể bắt đầu suy nghĩ về cách _thiết kế_ chúng để phản ánh các thực hành tốt nhất. Ta có thể chia thành hai phần - có _tư duy_ đúng và áp dụng _kỹ thuật_ phù hợp. - -### Tư duy Prompt Engineering - -Prompt Engineering là một quá trình thử và sai, vì vậy hãy nhớ ba yếu tố hướng dẫn rộng sau: - -1. **Hiểu biết về lĩnh vực rất quan trọng.** Độ chính xác và phù hợp của câu trả lời phụ thuộc vào _lĩnh vực_ mà ứng dụng hoặc người dùng hoạt động. Hãy áp dụng trực giác và chuyên môn lĩnh vực của bạn để **tùy chỉnh kỹ thuật** thêm. Ví dụ, định nghĩa _tính cách đặc thù lĩnh vực_ trong prompt hệ thống, hoặc dùng _mẫu prompt đặc thù lĩnh vực_ trong prompt người dùng. Cung cấp nội dung phụ phản ánh ngữ cảnh đặc thù lĩnh vực, hoặc dùng _dấu hiệu và ví dụ đặc thù lĩnh vực_ để hướng mô hình theo các mẫu sử dụng quen thuộc. - -2. **Hiểu biết về mô hình rất quan trọng.** Chúng ta biết mô hình có tính ngẫu nhiên. Nhưng việc triển khai mô hình cũng có thể khác nhau về tập dữ liệu huấn luyện (kiến thức được huấn luyện trước), khả năng cung cấp (ví dụ qua API hoặc SDK) và loại nội dung được tối ưu (ví dụ, mã nguồn so với hình ảnh hay văn bản). Hiểu điểm mạnh và hạn chế của mô hình bạn đang dùng, và dùng kiến thức đó để _ưu tiên nhiệm vụ_ hoặc xây dựng _mẫu prompt tùy chỉnh_ tối ưu cho khả năng của mô hình. - -3. **Lặp lại & xác thực rất quan trọng.** Mô hình phát triển nhanh, kỹ thuật prompt engineering cũng vậy. Là chuyên gia lĩnh vực, bạn có thể có ngữ cảnh hoặc tiêu chí riêng cho ứng dụng _của bạn_, không áp dụng cho cộng đồng rộng hơn. Dùng công cụ và kỹ thuật prompt engineering để "khởi động" việc xây dựng prompt, rồi lặp lại và xác thực kết quả bằng trực giác và chuyên môn của bạn. Ghi lại những hiểu biết và tạo **cơ sở tri thức** (ví dụ, thư viện prompt) có thể dùng làm chuẩn mới cho người khác, giúp tăng tốc các vòng lặp trong tương lai. - -## Thực hành tốt nhất - -Bây giờ hãy xem các thực hành tốt nhất phổ biến được khuyến nghị bởi [OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst) và [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst). - -| Việc cần làm | Lý do | -| :------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Đánh giá các mô hình mới nhất. | Các thế hệ mô hình mới thường có tính năng và chất lượng cải tiến - nhưng cũng có thể tốn kém hơn. Đánh giá tác động rồi quyết định có nên chuyển đổi hay không. | -| Tách biệt hướng dẫn & ngữ cảnh | Kiểm tra xem mô hình/nhà cung cấp có định nghĩa _dấu phân cách_ để phân biệt rõ ràng hướng dẫn, nội dung chính và nội dung phụ không. Điều này giúp mô hình gán trọng số chính xác hơn cho các token. | -| Cụ thể và rõ ràng | Cung cấp nhiều chi tiết về ngữ cảnh mong muốn, kết quả, độ dài, định dạng, phong cách, v.v. Điều này cải thiện cả chất lượng và tính nhất quán của câu trả lời. Ghi lại công thức trong các mẫu có thể tái sử dụng. | -| Mô tả chi tiết, dùng ví dụ | Mô hình có thể phản hồi tốt hơn với cách tiếp cận "trình bày và giải thích". Bắt đầu với cách `zero-shot` (chỉ hướng dẫn, không có ví dụ), sau đó thử `few-shot` để tinh chỉnh, cung cấp vài ví dụ về kết quả mong muốn. Dùng phép ẩn dụ. | -| Dùng dấu hiệu để khởi động câu trả lời | Hướng mô hình tới kết quả mong muốn bằng cách cung cấp một vài từ hoặc cụm từ dẫn dắt làm điểm bắt đầu cho câu trả lời. | -| Lặp lại | Đôi khi bạn cần nhắc lại với mô hình. Đưa hướng dẫn trước và sau nội dung chính, dùng hướng dẫn và dấu hiệu, v.v. Lặp lại và xác thực để xem cách nào hiệu quả. | -| Thứ tự quan trọng | Thứ tự bạn trình bày thông tin cho mô hình có thể ảnh hưởng đến kết quả, kể cả trong các ví dụ học, do thiên vị gần đây. Thử các lựa chọn khác nhau để tìm cách hiệu quả nhất. | -| Cho mô hình “lối thoát” | Cung cấp cho mô hình một câu trả lời dự phòng nếu nó không thể hoàn thành nhiệm vụ vì lý do nào đó. Điều này giảm khả năng mô hình tạo ra câu trả lời sai hoặc bịa đặt. | -| | | - -Như với bất kỳ thực hành tốt nhất nào, hãy nhớ rằng _kết quả có thể khác nhau_ tùy thuộc vào mô hình, nhiệm vụ và lĩnh vực. Dùng đây làm điểm khởi đầu, rồi lặp lại để tìm cách phù hợp nhất với bạn. Liên tục đánh giá lại quy trình prompt engineering khi có mô hình và công cụ mới, tập trung vào khả năng mở rộng quy trình và chất lượng câu trả lời. - - - -## Bài tập - -Chúc mừng bạn! Bạn đã hoàn thành bài học! Đã đến lúc áp dụng một số khái niệm và kỹ thuật đó vào thực tế với các ví dụ cụ thể! - -Trong bài tập này, chúng ta sẽ sử dụng một Jupyter Notebook với các bài tập bạn có thể hoàn thành tương tác. Bạn cũng có thể mở rộng Notebook bằng các ô Markdown và Code của riêng bạn để khám phá ý tưởng và kỹ thuật theo cách riêng. - -### Để bắt đầu, fork repo, sau đó - -- (Khuyến nghị) Khởi chạy GitHub Codespaces -- (Thay thế) Clone repo về thiết bị của bạn và sử dụng với Docker Desktop -- (Thay thế) Mở Notebook bằng môi trường runtime Notebook bạn ưa thích. - -### Tiếp theo, cấu hình biến môi trường - -- Sao chép file `.env.copy` trong thư mục gốc repo thành `.env` và điền các giá trị `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` và `AZURE_OPENAI_DEPLOYMENT`. Quay lại phần [Learning Sandbox](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals) để học cách làm. - -### Tiếp theo, mở Jupyter Notebook - -- Chọn kernel runtime. Nếu dùng lựa chọn 1 hoặc 2, chỉ cần chọn kernel Python 3.10.x mặc định do dev container cung cấp. - -Bạn đã sẵn sàng chạy các bài tập. Lưu ý rằng không có câu trả lời _đúng hay sai_ ở đây - chỉ là khám phá các lựa chọn qua thử và sai, xây dựng trực giác về cách hoạt động với mô hình và lĩnh vực ứng dụng cụ thể. - -_Vì lý do này, bài học không có phần Giải pháp Mã. Thay vào đó, Notebook sẽ có các ô Markdown với tiêu đề "My Solution:" thể hiện một ví dụ kết quả để tham khảo._ - - - -## Kiểm tra kiến thức - -Prompt nào sau đây là một prompt tốt theo các thực hành hợp lý? - -1. Hiển thị cho tôi hình ảnh một chiếc xe màu đỏ -2. Hiển thị cho tôi hình ảnh một chiếc xe màu đỏ hiệu Volvo, mẫu XC90 đậu bên vách đá với hoàng hôn -3. Hiển thị cho tôi hình ảnh một chiếc xe màu đỏ hiệu Volvo, mẫu XC90 - -Đáp án: 2, đây là prompt tốt nhất vì cung cấp chi tiết về "cái gì" và đi vào cụ thể (không chỉ là xe bất kỳ mà là hiệu và mẫu cụ thể) và còn mô tả bối cảnh tổng thể. 3 là lựa chọn tốt thứ hai vì cũng có nhiều mô tả. - -## 🚀 Thử thách - -Hãy thử áp dụng kỹ thuật "dấu hiệu" với prompt: Hoàn thành câu "Hiển thị cho tôi hình ảnh một chiếc xe màu đỏ hiệu Volvo và ". Mô hình trả lời thế nào, và bạn sẽ cải thiện prompt ra sao? - -## Làm tốt lắm! Tiếp tục học hỏi - -Muốn tìm hiểu thêm về các khái niệm Prompt Engineering khác? Hãy đến [trang học tiếp](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) để tìm các tài nguyên tuyệt vời khác về chủ đề này. - -Hãy đến Bài học 5, nơi chúng ta sẽ xem xét [kỹ thuật prompt nâng cao](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**Tuyên bố từ chối trách nhiệm**: -Tài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng bản dịch tự động có thể chứa lỗi hoặc không chính xác. Tài liệu gốc bằng ngôn ngữ gốc của nó nên được coi là nguồn chính xác và đáng tin cậy. Đối với các thông tin quan trọng, nên sử dụng dịch vụ dịch thuật chuyên nghiệp do con người thực hiện. Chúng tôi không chịu trách nhiệm về bất kỳ sự hiểu lầm hoặc giải thích sai nào phát sinh từ việc sử dụng bản dịch này. \ No newline at end of file + + + + + + + diff --git a/translations/vi/09-building-image-applications/README.md b/translations/vi/09-building-image-applications/README.md index 171bf4493..82e651bec 100644 --- a/translations/vi/09-building-image-applications/README.md +++ b/translations/vi/09-building-image-applications/README.md @@ -1,477 +1,12 @@ - -# Xây dựng Ứng dụng Tạo Hình ảnh - -[![Xây dựng Ứng dụng Tạo Hình ảnh](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.vi.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -LLM không chỉ dùng để tạo văn bản. Bạn cũng có thể tạo hình ảnh từ mô tả bằng văn bản. Việc có hình ảnh như một phương thức truyền tải có thể rất hữu ích trong nhiều lĩnh vực như MedTech, kiến trúc, du lịch, phát triển game và nhiều hơn nữa. Trong chương này, chúng ta sẽ tìm hiểu về hai mô hình tạo hình ảnh phổ biến nhất, DALL-E và Midjourney. - -## Giới thiệu - -Trong bài học này, chúng ta sẽ đề cập đến: - -- Tạo hình ảnh và lý do tại sao nó hữu ích. -- DALL-E và Midjourney là gì, và cách chúng hoạt động. -- Cách xây dựng một ứng dụng tạo hình ảnh. - -## Mục tiêu học tập - -Sau khi hoàn thành bài học này, bạn sẽ có thể: - -- Xây dựng một ứng dụng tạo hình ảnh. -- Định nghĩa giới hạn cho ứng dụng của bạn bằng meta prompts. -- Làm việc với DALL-E và Midjourney. - -## Tại sao nên xây dựng ứng dụng tạo hình ảnh? - -Ứng dụng tạo hình ảnh là cách tuyệt vời để khám phá khả năng của Generative AI. Chúng có thể được sử dụng cho, ví dụ: - -- **Chỉnh sửa và tổng hợp hình ảnh**. Bạn có thể tạo hình ảnh cho nhiều mục đích khác nhau, như chỉnh sửa hình ảnh và tổng hợp hình ảnh. - -- **Áp dụng cho nhiều ngành công nghiệp**. Chúng cũng có thể được dùng để tạo hình ảnh cho nhiều ngành như Medtech, Du lịch, Phát triển game và nhiều hơn nữa. - -## Tình huống: Edu4All - -Trong bài học này, chúng ta sẽ tiếp tục làm việc với startup Edu4All. Học sinh sẽ tạo hình ảnh cho bài tập của mình, hình ảnh cụ thể do học sinh quyết định, có thể là minh họa cho câu chuyện cổ tích của riêng họ, tạo nhân vật mới cho câu chuyện hoặc giúp họ hình dung ý tưởng và khái niệm. - -Dưới đây là ví dụ những gì học sinh Edu4All có thể tạo ra khi làm việc trên chủ đề các công trình kiến trúc: - -![Edu4All startup, lớp học về các công trình kiến trúc, Tháp Eiffel](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.vi.png) - -với prompt như - -> "Chó bên cạnh Tháp Eiffel dưới ánh nắng ban mai" - -## DALL-E và Midjourney là gì? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) và [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) là hai trong số các mô hình tạo hình ảnh phổ biến nhất, cho phép bạn sử dụng prompt để tạo hình ảnh. - -### DALL-E - -Bắt đầu với DALL-E, một mô hình Generative AI tạo hình ảnh từ mô tả bằng văn bản. - -> [DALL-E là sự kết hợp của hai mô hình, CLIP và diffused attention](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst). - -- **CLIP** là mô hình tạo embeddings, tức là các biểu diễn số của dữ liệu, từ hình ảnh và văn bản. - -- **Diffused attention** là mô hình tạo hình ảnh từ embeddings. DALL-E được huấn luyện trên bộ dữ liệu gồm hình ảnh và văn bản, và có thể tạo hình ảnh từ mô tả bằng văn bản. Ví dụ, DALL-E có thể tạo hình ảnh một con mèo đội mũ, hoặc một con chó với kiểu tóc mohawk. - -### Midjourney - -Midjourney hoạt động tương tự DALL-E, tạo hình ảnh từ các prompt văn bản. Midjourney cũng có thể tạo hình ảnh với các prompt như “một con mèo đội mũ” hoặc “một con chó với kiểu tóc mohawk”. - -![Hình ảnh do Midjourney tạo, chim bồ câu cơ khí](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_Hình ảnh từ Wikipedia, do Midjourney tạo_ - -## DALL-E và Midjourney hoạt động như thế nào - -Trước tiên, [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst). DALL-E là mô hình Generative AI dựa trên kiến trúc transformer với _autoregressive transformer_. - -Một _autoregressive transformer_ xác định cách mô hình tạo hình ảnh từ mô tả văn bản, nó tạo từng điểm ảnh một, rồi dùng các điểm ảnh đã tạo để tạo điểm ảnh tiếp theo. Quá trình này đi qua nhiều lớp trong mạng nơ-ron cho đến khi hình ảnh hoàn chỉnh. - -Với quy trình này, DALL-E kiểm soát các thuộc tính, đối tượng, đặc điểm và nhiều yếu tố khác trong hình ảnh nó tạo ra. Tuy nhiên, DALL-E 2 và 3 có khả năng kiểm soát hình ảnh tạo ra tốt hơn. - -## Xây dựng ứng dụng tạo hình ảnh đầu tiên của bạn - -Vậy để xây dựng một ứng dụng tạo hình ảnh cần những gì? Bạn cần các thư viện sau: - -- **python-dotenv**, được khuyến nghị dùng để giữ các thông tin bí mật trong file _.env_ tách biệt với mã nguồn. -- **openai**, thư viện dùng để tương tác với API OpenAI. -- **pillow**, để làm việc với hình ảnh trong Python. -- **requests**, giúp bạn thực hiện các yêu cầu HTTP. - -1. Tạo file _.env_ với nội dung sau: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - Thông tin này bạn có thể tìm trong Azure Portal ở phần "Keys and Endpoint" của tài nguyên. - -1. Tập hợp các thư viện trên vào file _requirements.txt_ như sau: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. Tiếp theo, tạo môi trường ảo và cài đặt các thư viện: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Với Windows, dùng các lệnh sau để tạo và kích hoạt môi trường ảo: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. Thêm đoạn mã sau vào file _app.py_: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -Giải thích đoạn mã này: - -- Đầu tiên, chúng ta import các thư viện cần thiết, bao gồm thư viện OpenAI, dotenv, requests và Pillow. - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- Tiếp theo, chúng ta tải các biến môi trường từ file _.env_. - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- Sau đó, thiết lập endpoint, key cho API OpenAI, phiên bản và loại. - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- Tiếp theo, tạo hình ảnh: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - Đoạn mã trên trả về một đối tượng JSON chứa URL của hình ảnh được tạo. Chúng ta có thể dùng URL này để tải hình ảnh và lưu vào file. - -- Cuối cùng, mở hình ảnh và dùng trình xem ảnh mặc định để hiển thị: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### Chi tiết hơn về việc tạo hình ảnh - -Hãy xem kỹ đoạn mã tạo hình ảnh: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** là đoạn văn bản dùng để tạo hình ảnh. Ở đây, chúng ta dùng prompt "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils". -- **size** là kích thước hình ảnh được tạo. Ở đây, hình ảnh có kích thước 1024x1024 pixel. -- **n** là số lượng hình ảnh được tạo. Ở đây, chúng ta tạo hai hình ảnh. -- **temperature** là tham số điều khiển độ ngẫu nhiên của kết quả từ mô hình Generative AI. Giá trị nằm trong khoảng từ 0 đến 1, trong đó 0 nghĩa là kết quả xác định, 1 nghĩa là kết quả ngẫu nhiên. Giá trị mặc định là 0.7. - -Còn nhiều điều bạn có thể làm với hình ảnh mà chúng ta sẽ đề cập trong phần tiếp theo. - -## Các khả năng bổ sung của tạo hình ảnh - -Bạn đã thấy cách tạo hình ảnh chỉ với vài dòng Python. Tuy nhiên, còn nhiều điều khác bạn có thể làm với hình ảnh. - -Bạn cũng có thể: - -- **Thực hiện chỉnh sửa**. Bằng cách cung cấp một hình ảnh hiện có, một mặt nạ và một prompt, bạn có thể thay đổi hình ảnh. Ví dụ, bạn có thể thêm một vật thể vào một phần của hình ảnh. Hãy tưởng tượng hình ảnh con thỏ của chúng ta, bạn có thể thêm một chiếc mũ cho con thỏ. Cách làm là cung cấp hình ảnh, mặt nạ (xác định phần cần thay đổi) và prompt văn bản để mô tả thay đổi. - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - Hình ảnh gốc chỉ có con thỏ, nhưng hình ảnh cuối cùng sẽ có thêm chiếc mũ trên con thỏ. - -- **Tạo các biến thể**. Ý tưởng là bạn lấy một hình ảnh hiện có và yêu cầu tạo các biến thể. Để tạo biến thể, bạn cung cấp hình ảnh và prompt văn bản, cùng đoạn mã như sau: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > Lưu ý, tính năng này chỉ được hỗ trợ trên OpenAI - -## Temperature - -Temperature là tham số điều khiển độ ngẫu nhiên của kết quả từ mô hình Generative AI. Giá trị nằm trong khoảng từ 0 đến 1, trong đó 0 nghĩa là kết quả xác định, 1 nghĩa là kết quả ngẫu nhiên. Giá trị mặc định là 0.7. - -Hãy xem ví dụ về cách temperature hoạt động, bằng cách chạy prompt này hai lần: - -> Prompt : "Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils" - -![Bunny trên ngựa cầm kẹo mút, phiên bản 1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.vi.png) - -Bây giờ chạy lại prompt đó để thấy rằng chúng ta sẽ không có hai hình ảnh giống hệt nhau: - -![Hình ảnh con thỏ trên ngựa được tạo](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.vi.png) - -Như bạn thấy, các hình ảnh tương tự nhau nhưng không giống hệt. Hãy thử thay đổi giá trị temperature thành 0.1 và xem điều gì xảy ra: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### Thay đổi temperature - -Hãy thử làm cho kết quả có tính xác định hơn. Từ hai hình ảnh tạo ra, ta thấy hình ảnh đầu có con thỏ, hình ảnh thứ hai có con ngựa, nên hình ảnh khác biệt khá nhiều. - -Vì vậy, hãy thay đổi mã và đặt temperature thành 0, như sau: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -Khi chạy đoạn mã này, bạn sẽ có hai hình ảnh sau: - -- ![Temperature 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.vi.png) -- ![Temperature 0 , v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.vi.png) - -Ở đây bạn có thể thấy rõ hình ảnh giống nhau hơn nhiều. - -## Cách định nghĩa giới hạn cho ứng dụng của bạn với metaprompts - -Với bản demo, chúng ta đã có thể tạo hình ảnh cho khách hàng. Tuy nhiên, chúng ta cần tạo ra một số giới hạn cho ứng dụng. - -Ví dụ, chúng ta không muốn tạo hình ảnh không phù hợp với môi trường làm việc, hoặc không phù hợp với trẻ em. - -Chúng ta có thể làm điều này với _metaprompts_. Metaprompts là các prompt văn bản dùng để kiểm soát kết quả của mô hình Generative AI. Ví dụ, chúng ta có thể dùng metaprompts để kiểm soát kết quả, đảm bảo hình ảnh tạo ra an toàn cho môi trường làm việc hoặc phù hợp với trẻ em. - -### Cách hoạt động? - -Vậy metaprompts hoạt động như thế nào? - -Metaprompts là các prompt văn bản được đặt trước prompt chính, dùng để kiểm soát kết quả của mô hình và được nhúng trong ứng dụng để kiểm soát đầu ra. Chúng bao bọc cả prompt đầu vào và metaprompt trong một prompt duy nhất. - -Một ví dụ về metaprompt như sau: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -Bây giờ, hãy xem cách chúng ta có thể dùng metaprompts trong bản demo. - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -Từ prompt trên, bạn có thể thấy tất cả hình ảnh được tạo ra đều tuân theo metaprompt. - -## Bài tập - kích hoạt cho học sinh - -Chúng ta đã giới thiệu Edu4All từ đầu bài học. Giờ là lúc để học sinh có thể tạo hình ảnh cho bài tập của mình. - -Học sinh sẽ tạo hình ảnh cho bài tập về các công trình kiến trúc, cụ thể công trình nào do học sinh quyết định. Học sinh được khuyến khích sử dụng sự sáng tạo để đặt các công trình này vào những bối cảnh khác nhau. - -## Giải pháp - -Dưới đây là một giải pháp có thể: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## Làm tốt lắm! Tiếp tục học tập - -Sau khi hoàn thành bài học này, hãy xem bộ sưu tập [Generative AI Learning collection](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) để tiếp tục nâng cao kiến thức về Generative AI! - -Hãy đến với Bài học 10, nơi chúng ta sẽ tìm hiểu cách [xây dựng ứng dụng AI với low-code](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**Tuyên bố từ chối trách nhiệm**: -Tài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng bản dịch tự động có thể chứa lỗi hoặc không chính xác. Tài liệu gốc bằng ngôn ngữ gốc của nó nên được coi là nguồn chính xác và đáng tin cậy. Đối với các thông tin quan trọng, nên sử dụng dịch vụ dịch thuật chuyên nghiệp do con người thực hiện. Chúng tôi không chịu trách nhiệm về bất kỳ sự hiểu lầm hoặc giải thích sai nào phát sinh từ việc sử dụng bản dịch này. \ No newline at end of file + + + + diff --git a/translations/vi/12-designing-ux-for-ai-applications/README.md b/translations/vi/12-designing-ux-for-ai-applications/README.md index e8ea5a542..f85fd1de1 100644 --- a/translations/vi/12-designing-ux-for-ai-applications/README.md +++ b/translations/vi/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# Thiết kế UX cho Ứng dụng AI - -[![Thiết kế UX cho Ứng dụng AI](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.vi.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(Nhấp vào hình ảnh trên để xem video bài học này)_ - -Trải nghiệm người dùng là một khía cạnh rất quan trọng trong việc xây dựng ứng dụng. Người dùng cần có khả năng sử dụng ứng dụng của bạn một cách hiệu quả để thực hiện các nhiệm vụ. Hiệu quả là một điều, nhưng bạn cũng cần thiết kế ứng dụng sao cho mọi người đều có thể sử dụng được, để làm cho chúng _dễ tiếp cận_. Chương này sẽ tập trung vào lĩnh vực này để bạn có thể thiết kế một ứng dụng mà mọi người có thể và muốn sử dụng. - -## Giới thiệu - -Trải nghiệm người dùng là cách một người dùng tương tác và sử dụng một sản phẩm hoặc dịch vụ cụ thể, có thể là hệ thống, công cụ hoặc thiết kế. Khi phát triển các ứng dụng AI, các nhà phát triển không chỉ tập trung vào việc đảm bảo trải nghiệm người dùng hiệu quả mà còn phải đảm bảo tính đạo đức. Trong bài học này, chúng ta sẽ tìm hiểu cách xây dựng các ứng dụng Trí tuệ Nhân tạo (AI) đáp ứng nhu cầu của người dùng. - -Bài học sẽ bao gồm các nội dung sau: - -- Giới thiệu về Trải nghiệm Người dùng và Hiểu nhu cầu Người dùng -- Thiết kế Ứng dụng AI để xây dựng Niềm tin và Tính minh bạch -- Thiết kế Ứng dụng AI cho Hợp tác và Phản hồi - -## Mục tiêu học tập - -Sau khi hoàn thành bài học này, bạn sẽ có thể: - -- Hiểu cách xây dựng các ứng dụng AI đáp ứng nhu cầu người dùng. -- Thiết kế các ứng dụng AI thúc đẩy niềm tin và sự hợp tác. - -### Yêu cầu trước - -Dành chút thời gian đọc thêm về [trải nghiệm người dùng và tư duy thiết kế.](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst) - -## Giới thiệu về Trải nghiệm Người dùng và Hiểu nhu cầu Người dùng - -Trong startup giáo dục giả định của chúng ta, có hai nhóm người dùng chính là giáo viên và học sinh. Mỗi nhóm người dùng đều có những nhu cầu riêng biệt. Thiết kế lấy người dùng làm trung tâm ưu tiên người dùng, đảm bảo sản phẩm phù hợp và có lợi cho những người mà nó hướng đến. - -Ứng dụng nên **hữu ích, đáng tin cậy, dễ tiếp cận và dễ chịu** để mang lại trải nghiệm người dùng tốt. - -### Tính khả dụng - -Hữu ích có nghĩa là ứng dụng có các chức năng phù hợp với mục đích sử dụng, chẳng hạn như tự động chấm điểm hoặc tạo flashcard để ôn tập. Một ứng dụng tự động chấm điểm cần có khả năng chấm điểm chính xác và hiệu quả dựa trên các tiêu chí đã định trước. Tương tự, một ứng dụng tạo flashcard ôn tập cần có khả năng tạo ra các câu hỏi phù hợp và đa dạng dựa trên dữ liệu của nó. - -### Độ tin cậy - -Đáng tin cậy có nghĩa là ứng dụng có thể thực hiện nhiệm vụ một cách nhất quán và không gặp lỗi. Tuy nhiên, AI cũng giống như con người, không hoàn hảo và có thể mắc lỗi. Ứng dụng có thể gặp phải lỗi hoặc tình huống bất ngờ cần sự can thiệp hoặc chỉnh sửa của con người. Bạn sẽ xử lý lỗi như thế nào? Ở phần cuối của bài học này, chúng ta sẽ tìm hiểu cách thiết kế hệ thống và ứng dụng AI để hợp tác và nhận phản hồi. - -### Khả năng tiếp cận - -Dễ tiếp cận có nghĩa là mở rộng trải nghiệm người dùng đến những người dùng có khả năng khác nhau, bao gồm cả người khuyết tật, đảm bảo không ai bị bỏ lại phía sau. Bằng cách tuân theo các hướng dẫn và nguyên tắc về khả năng tiếp cận, các giải pháp AI trở nên bao trùm hơn, dễ sử dụng và có lợi cho tất cả người dùng. - -### Dễ chịu - -Dễ chịu có nghĩa là ứng dụng mang lại cảm giác thoải mái khi sử dụng. Một trải nghiệm người dùng hấp dẫn có thể tạo ảnh hưởng tích cực, khuyến khích người dùng quay lại ứng dụng và tăng doanh thu cho doanh nghiệp. - -![hình ảnh minh họa các yếu tố UX trong AI](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.vi.png) - -Không phải mọi thách thức đều có thể giải quyết bằng AI. AI được sử dụng để tăng cường trải nghiệm người dùng, có thể là tự động hóa các công việc thủ công hoặc cá nhân hóa trải nghiệm người dùng. - -## Thiết kế Ứng dụng AI để xây dựng Niềm tin và Tính minh bạch - -Xây dựng niềm tin là điều then chốt khi thiết kế các ứng dụng AI. Niềm tin giúp người dùng tin tưởng rằng ứng dụng sẽ hoàn thành công việc, cung cấp kết quả nhất quán và kết quả đó đúng với những gì người dùng cần. Một rủi ro trong lĩnh vực này là mất niềm tin hoặc tin tưởng quá mức. Mất niềm tin xảy ra khi người dùng không hoặc rất ít tin tưởng vào hệ thống AI, dẫn đến việc từ chối sử dụng ứng dụng. Tin tưởng quá mức xảy ra khi người dùng đánh giá quá cao khả năng của hệ thống AI, dẫn đến việc tin tưởng AI quá mức. Ví dụ, trong hệ thống chấm điểm tự động, tin tưởng quá mức có thể khiến giáo viên không kiểm tra lại một số bài làm, dẫn đến điểm số không công bằng hoặc không chính xác cho học sinh, hoặc bỏ lỡ cơ hội phản hồi và cải thiện. - -Hai cách để đảm bảo niềm tin được đặt đúng vị trí trung tâm trong thiết kế là khả năng giải thích và kiểm soát. - -### Khả năng giải thích - -Khi AI giúp đưa ra quyết định như truyền đạt kiến thức cho các thế hệ tương lai, việc giáo viên và phụ huynh hiểu cách AI đưa ra quyết định là rất quan trọng. Đây chính là khả năng giải thích - hiểu cách các ứng dụng AI đưa ra quyết định. Thiết kế để có khả năng giải thích bao gồm việc thêm các ví dụ chi tiết về những gì ứng dụng AI có thể làm. Ví dụ, thay vì "Bắt đầu với AI giáo viên", hệ thống có thể sử dụng: "Tóm tắt ghi chú của bạn để ôn tập dễ dàng hơn bằng AI." - -![trang đích ứng dụng với minh họa rõ ràng về khả năng giải thích trong ứng dụng AI](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.vi.png) - -Một ví dụ khác là cách AI sử dụng dữ liệu người dùng và dữ liệu cá nhân. Ví dụ, một người dùng với vai trò học sinh có thể có những giới hạn dựa trên vai trò đó. AI có thể không tiết lộ trực tiếp câu trả lời nhưng có thể hướng dẫn người dùng suy nghĩ cách giải quyết vấn đề. - -![AI trả lời câu hỏi dựa trên vai trò người dùng](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.vi.png) - -Một phần quan trọng cuối cùng của khả năng giải thích là đơn giản hóa các giải thích. Học sinh và giáo viên có thể không phải là chuyên gia AI, do đó các giải thích về những gì ứng dụng có thể hoặc không thể làm nên được đơn giản hóa và dễ hiểu. - -![giải thích đơn giản về khả năng của AI](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.vi.png) - -### Kiểm soát - -Generative AI tạo ra sự hợp tác giữa AI và người dùng, ví dụ như người dùng có thể chỉnh sửa các câu lệnh để có kết quả khác nhau. Thêm vào đó, khi một kết quả được tạo ra, người dùng nên có khả năng chỉnh sửa kết quả đó để cảm thấy mình có quyền kiểm soát. Ví dụ, khi sử dụng Bing, bạn có thể điều chỉnh câu lệnh dựa trên định dạng, giọng điệu và độ dài. Ngoài ra, bạn có thể thêm các thay đổi vào kết quả và chỉnh sửa kết quả như hình dưới đây: - -![Kết quả tìm kiếm Bing với các tùy chọn chỉnh sửa câu lệnh và kết quả](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.vi.png) - -Một tính năng khác trong Bing cho phép người dùng kiểm soát ứng dụng là khả năng chọn tham gia hoặc không tham gia vào việc sử dụng dữ liệu AI. Ví dụ, trong ứng dụng dành cho trường học, học sinh có thể muốn sử dụng ghi chú của mình cũng như tài nguyên của giáo viên làm tài liệu ôn tập. - -![Kết quả tìm kiếm Bing với các tùy chọn chỉnh sửa câu lệnh và kết quả](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.vi.png) - -> Khi thiết kế ứng dụng AI, sự chủ ý là yếu tố then chốt để đảm bảo người dùng không tin tưởng quá mức, đặt ra kỳ vọng không thực tế về khả năng của ứng dụng. Một cách để làm điều này là tạo ra sự cản trở giữa câu lệnh và kết quả, nhắc nhở người dùng rằng đây là AI chứ không phải con người. - -## Thiết kế Ứng dụng AI cho Hợp tác và Phản hồi - -Như đã đề cập trước đó, generative AI tạo ra sự hợp tác giữa người dùng và AI. Phần lớn tương tác là người dùng nhập câu lệnh và AI tạo ra kết quả. Nếu kết quả sai thì sao? Ứng dụng xử lý lỗi như thế nào khi xảy ra? AI có đổ lỗi cho người dùng hay dành thời gian giải thích lỗi? - -Ứng dụng AI nên được xây dựng để nhận và đưa phản hồi. Điều này không chỉ giúp hệ thống AI cải thiện mà còn xây dựng niềm tin với người dùng. Một vòng phản hồi nên được tích hợp trong thiết kế, ví dụ như nút thích hoặc không thích đơn giản cho kết quả. - -Một cách khác để xử lý là truyền đạt rõ ràng khả năng và giới hạn của hệ thống. Khi người dùng yêu cầu điều gì đó vượt quá khả năng của AI, cũng nên có cách xử lý, như minh họa dưới đây. - -![Phản hồi và xử lý lỗi](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.vi.png) - -Lỗi hệ thống là điều phổ biến với các ứng dụng, khi người dùng có thể cần trợ giúp với thông tin ngoài phạm vi của AI hoặc ứng dụng có giới hạn về số lượng câu hỏi/môn học mà người dùng có thể tạo tóm tắt. Ví dụ, một ứng dụng AI được đào tạo với dữ liệu về các môn học hạn chế như Lịch sử và Toán có thể không xử lý được các câu hỏi về Địa lý. Để giảm thiểu điều này, hệ thống AI có thể trả lời như sau: "Xin lỗi, sản phẩm của chúng tôi được đào tạo với dữ liệu về các môn học sau..., tôi không thể trả lời câu hỏi bạn đã hỏi." - -Ứng dụng AI không hoàn hảo, do đó chắc chắn sẽ có sai sót. Khi thiết kế ứng dụng, bạn nên tạo điều kiện để người dùng phản hồi và xử lý lỗi một cách đơn giản và dễ hiểu. - -## Bài tập - -Hãy lấy bất kỳ ứng dụng AI nào bạn đã xây dựng cho đến nay, cân nhắc thực hiện các bước dưới đây trong ứng dụng của bạn: - -- **Dễ chịu:** Xem xét cách làm cho ứng dụng của bạn dễ chịu hơn. Bạn có đang thêm giải thích ở khắp nơi không? Bạn có khuyến khích người dùng khám phá không? Bạn đang diễn đạt thông báo lỗi như thế nào? - -- **Tính khả dụng:** Xây dựng một ứng dụng web. Đảm bảo ứng dụng của bạn có thể điều hướng được bằng cả chuột và bàn phím. - -- **Niềm tin và tính minh bạch:** Đừng hoàn toàn tin tưởng AI và kết quả của nó, hãy cân nhắc cách bạn thêm con người vào quy trình để xác minh kết quả. Ngoài ra, hãy cân nhắc và thực hiện các cách khác để đạt được niềm tin và tính minh bạch. - -- **Kiểm soát:** Cho phép người dùng kiểm soát dữ liệu họ cung cấp cho ứng dụng. Thực hiện cách để người dùng có thể chọn tham gia hoặc không tham gia thu thập dữ liệu trong ứng dụng AI. - -## Tiếp tục học tập! - -Sau khi hoàn thành bài học này, hãy khám phá bộ sưu tập [Generative AI Learning](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) để tiếp tục nâng cao kiến thức về Generative AI! - -Hãy đến với Bài học 13, nơi chúng ta sẽ tìm hiểu cách [bảo mật ứng dụng AI](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**Tuyên bố từ chối trách nhiệm**: -Tài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng các bản dịch tự động có thể chứa lỗi hoặc không chính xác. Tài liệu gốc bằng ngôn ngữ gốc của nó nên được coi là nguồn chính xác và đáng tin cậy. Đối với các thông tin quan trọng, nên sử dụng dịch vụ dịch thuật chuyên nghiệp do con người thực hiện. Chúng tôi không chịu trách nhiệm về bất kỳ sự hiểu lầm hoặc giải thích sai nào phát sinh từ việc sử dụng bản dịch này. \ No newline at end of file + + + diff --git a/translations/vi/README.md b/translations/vi/README.md index 15df41df9..47efe4bf8 100644 --- a/translations/vi/README.md +++ b/translations/vi/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.vi.png) - -### 21 bài học dạy tất cả những gì bạn cần biết để bắt đầu xây dựng các ứng dụng Generative AI - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 Hỗ trợ đa ngôn ngữ - -#### Hỗ trợ qua GitHub Action (Tự động & Luôn cập nhật) - -[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](./README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md) - -# Generative AI cho Người Mới Bắt Đầu (Phiên bản 3) - Một Khóa Học - -Học những kiến thức cơ bản để xây dựng các ứng dụng Generative AI với khóa học toàn diện gồm 21 bài học do Microsoft Cloud Advocates phát triển. - -## 🌱 Bắt đầu - -Khóa học này có 21 bài học. Mỗi bài học tập trung vào một chủ đề riêng, bạn có thể bắt đầu từ bất cứ bài nào bạn muốn! - -Các bài học được phân loại thành bài "Learn" giải thích khái niệm Generative AI hoặc bài "Build" giải thích khái niệm và kèm theo ví dụ mã nguồn bằng cả **Python** và **TypeScript** khi có thể. - -Dành cho các nhà phát triển .NET, hãy xem thêm [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -Mỗi bài học cũng bao gồm phần "Keep Learning" với các công cụ học tập bổ sung. - -## Những gì bạn cần -### Để chạy mã của khóa học này, bạn có thể sử dụng một trong các dịch vụ sau: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **Bài học:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **Bài học:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **Bài học:** "oai-assignment" - -- Kiến thức cơ bản về Python hoặc TypeScript sẽ rất hữu ích - \*Dành cho người mới hoàn toàn, hãy tham khảo các khóa học [Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst) và [TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst) -- Một tài khoản GitHub để [fork toàn bộ repo này](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) về tài khoản GitHub của bạn - -Chúng tôi đã tạo một bài học **[Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)** để giúp bạn thiết lập môi trường phát triển. - -Đừng quên [star (🌟) repo này](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst) để dễ dàng tìm lại sau này. - -## 🧠 Sẵn sàng triển khai? - -Nếu bạn đang tìm kiếm các mẫu mã nâng cao hơn, hãy xem bộ sưu tập [Generative AI Code Samples](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst) của chúng tôi với cả **Python** và **TypeScript**. - -## 🗣️ Gặp gỡ các học viên khác, nhận hỗ trợ - -Tham gia [server Discord chính thức Azure AI Foundry](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) để gặp gỡ, kết nối với các học viên khác đang học khóa này và nhận hỗ trợ. - -Đặt câu hỏi hoặc chia sẻ phản hồi sản phẩm tại [Azure AI Foundry Developer Forum](https://aka.ms/azureaifoundry/forum) trên Github. - -## 🚀 Xây dựng Startup? - -Đăng ký [Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst) để nhận **tín dụng OpenAI miễn phí** và lên đến **150.000 đô la tín dụng Azure để truy cập các mô hình OpenAI qua Azure OpenAI Services**. - -## 🙏 Muốn giúp đỡ? - -Bạn có đề xuất hoặc phát hiện lỗi chính tả hay lỗi mã? [Tạo issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst) hoặc [Gửi pull request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst) - -## 📂 Mỗi bài học bao gồm: - -- Video giới thiệu ngắn về chủ đề -- Bài học viết nằm trong README -- Mẫu mã Python và TypeScript hỗ trợ Azure OpenAI và OpenAI API -- Liên kết đến các tài nguyên bổ sung để tiếp tục học tập - -## 🗃️ Các bài học - -| # | **Liên kết bài học** | **Mô tả** | **Video** | **Học thêm** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [Course Setup](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Cách thiết lập môi trường phát triển của bạn | Video sẽ sớm có | [Tìm hiểu thêm](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [Introduction to Generative AI and LLMs](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Hiểu về Generative AI là gì và cách các Large Language Models (LLMs) hoạt động | [Video](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [Tìm hiểu thêm](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [Exploring and comparing different LLMs](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Cách chọn mô hình phù hợp cho trường hợp sử dụng của bạn | [Video](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [Tìm hiểu thêm](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [Using Generative AI Responsibly](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Cách xây dựng các ứng dụng Generative AI có trách nhiệm | [Video](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [Tìm hiểu thêm](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [Understanding Prompt Engineering Fundamentals](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Thực hành các phương pháp tốt nhất trong Prompt Engineering | [Video](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [Tìm hiểu thêm](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [Creating Advanced Prompts](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **Learn:** Cách áp dụng các kỹ thuật prompt engineering nâng cao để cải thiện kết quả prompt | [Video](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [Tìm hiểu thêm](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [Xây dựng Ứng dụng Tạo Văn bản](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **Xây dựng:** Ứng dụng tạo văn bản sử dụng Azure OpenAI / OpenAI API | [Video](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [Tìm hiểu thêm](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [Xây dựng Ứng dụng Chat](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Xây dựng:** Các kỹ thuật để xây dựng và tích hợp ứng dụng chat hiệu quả. | [Video](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [Tìm hiểu thêm](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [Xây dựng Ứng dụng Tìm kiếm với Cơ sở dữ liệu Vector](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Xây dựng:** Ứng dụng tìm kiếm sử dụng Embeddings để tìm dữ liệu. | [Video](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [Tìm hiểu thêm](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [Xây dựng Ứng dụng Tạo Hình ảnh](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Xây dựng:** Ứng dụng tạo hình ảnh | [Video](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [Tìm hiểu thêm](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [Xây dựng Ứng dụng AI Low Code](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Xây dựng:** Ứng dụng Generative AI sử dụng công cụ Low Code | [Video](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [Tìm hiểu thêm](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [Tích hợp Ứng dụng Bên ngoài với Function Calling](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **Xây dựng:** Function calling là gì và các trường hợp sử dụng trong ứng dụng | [Video](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [Tìm hiểu thêm](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [Thiết kế UX cho Ứng dụng AI](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Tìm hiểu:** Cách áp dụng các nguyên tắc thiết kế UX khi phát triển Ứng dụng Generative AI | [Video](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [Tìm hiểu thêm](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [Bảo mật Ứng dụng Generative AI của bạn](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **Tìm hiểu:** Các mối đe dọa và rủi ro đối với hệ thống AI và cách bảo vệ các hệ thống này. | [Video](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [Tìm hiểu thêm](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [Vòng đời Ứng dụng Generative AI](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **Tìm hiểu:** Các công cụ và chỉ số để quản lý vòng đời LLM và LLMOps | [Video](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [Tìm hiểu thêm](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [Retrieval Augmented Generation (RAG) và Cơ sở dữ liệu Vector](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **Xây dựng:** Ứng dụng sử dụng Framework RAG để truy xuất embeddings từ Cơ sở dữ liệu Vector | [Video](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [Tìm hiểu thêm](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [Mô hình Mã nguồn mở và Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **Xây dựng:** Ứng dụng sử dụng các mô hình mã nguồn mở có trên Hugging Face | [Video](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [Tìm hiểu thêm](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI Agents](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **Xây dựng:** Ứng dụng sử dụng Framework AI Agent | [Video](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [Tìm hiểu thêm](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [Fine-Tuning LLMs](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **Tìm hiểu:** Fine-tuning LLM là gì, tại sao và cách thực hiện | [Video](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [Tìm hiểu thêm](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [Xây dựng với SLMs](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **Tìm hiểu:** Lợi ích của việc xây dựng với Small Language Models | Video Sẽ sớm ra mắt | [Tìm hiểu thêm](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [Xây dựng với Mistral Models](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **Tìm hiểu:** Các tính năng và sự khác biệt của các Mistral Family Models | Video Sẽ sớm ra mắt | [Tìm hiểu thêm](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [Xây dựng với Meta Models](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **Tìm hiểu:** Các tính năng và sự khác biệt của các Meta Family Models | Video Sẽ sớm ra mắt | [Tìm hiểu thêm](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 Lời cảm ơn đặc biệt - -Xin gửi lời cảm ơn đặc biệt đến [**John Aziz**](https://www.linkedin.com/in/john0isaac/) vì đã tạo ra tất cả các GitHub Actions và workflows - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) vì những đóng góp quan trọng cho từng bài học nhằm cải thiện trải nghiệm học tập và mã nguồn. - -## 🎒 Các Khóa học khác - -Nhóm của chúng tôi còn sản xuất các khóa học khác! Hãy xem: - -- [**MỚI** Model Context Protocol cho Người mới bắt đầu](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [AI Agents cho Người mới bắt đầu](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Generative AI cho Người mới bắt đầu sử dụng .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [Generative AI cho Người mới bắt đầu sử dụng JavaScript](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [ML cho Người mới bắt đầu](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [Khoa học Dữ liệu cho Người mới bắt đầu](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI cho Người mới bắt đầu](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [An ninh mạng cho Người mới bắt đầu](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [Phát triển Web cho Người mới bắt đầu](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [IoT cho Người mới bắt đầu](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [Phát triển XR cho Người mới bắt đầu](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [Thành thạo GitHub Copilot cho Lập trình AI song hành](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [Thành thạo GitHub Copilot cho Nhà phát triển C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [Chọn Cuộc phiêu lưu Copilot của riêng bạn](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**Tuyên bố từ chối trách nhiệm**: -Tài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng các bản dịch tự động có thể chứa lỗi hoặc không chính xác. Tài liệu gốc bằng ngôn ngữ gốc của nó nên được coi là nguồn chính xác và đáng tin cậy. Đối với các thông tin quan trọng, nên sử dụng dịch vụ dịch thuật chuyên nghiệp do con người thực hiện. Chúng tôi không chịu trách nhiệm về bất kỳ sự hiểu lầm hoặc giải thích sai nào phát sinh từ việc sử dụng bản dịch này. \ No newline at end of file + + + + diff --git a/translations/zh/00-course-setup/01-setup-cloud.md b/translations/zh/00-course-setup/01-setup-cloud.md new file mode 100644 index 000000000..796e146f9 --- /dev/null +++ b/translations/zh/00-course-setup/01-setup-cloud.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/zh/00-course-setup/02-setup-local.md b/translations/zh/00-course-setup/02-setup-local.md new file mode 100644 index 000000000..c57760f81 --- /dev/null +++ b/translations/zh/00-course-setup/02-setup-local.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/zh/00-course-setup/03-providers.md b/translations/zh/00-course-setup/03-providers.md new file mode 100644 index 000000000..ac70bd3a6 --- /dev/null +++ b/translations/zh/00-course-setup/03-providers.md @@ -0,0 +1,11 @@ + + + diff --git a/translations/zh/00-course-setup/README.md b/translations/zh/00-course-setup/README.md index 04e9230c6..59cf064f7 100644 --- a/translations/zh/00-course-setup/README.md +++ b/translations/zh/00-course-setup/README.md @@ -1,226 +1,12 @@ - -# 课程入门指南 - -我们非常期待你开始这门课程,看看你会被生成式 AI 激发出什么创意! - -为了确保你的学习顺利,本页将介绍设置步骤、技术要求以及遇到问题时的求助途径。 - -## 设置步骤 - -开始学习本课程前,你需要完成以下步骤。 - -### 1. Fork 这个仓库 - -将[整个仓库 Fork](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst)到你自己的 GitHub 账号,这样你才能修改代码并完成挑战。你也可以[给这个仓库加星标 (🌟)](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst),方便以后找到它和相关仓库。 - -### 2. 创建 Codespace - -为了避免运行代码时出现依赖问题,我们建议在[GitHub Codespaces](https://github.com/features/codespaces?WT.mc_id=academic-105485-koreyst)中运行本课程。 - -你可以在 Fork 后的仓库中选择 `Code` 选项,然后选择 **Codespaces** 来创建。 - -![显示创建 codespace 按钮的对话框](../../../00-course-setup/images/who-will-pay.webp) - -### 3. 存储你的 API 密钥 - -在构建任何应用时,保护好你的 API 密钥非常重要。我们建议不要将 API 密钥直接写入代码。将密钥提交到公共仓库可能导致安全风险,甚至被恶意使用产生不必要的费用。 - -以下是为 Python 创建 `.env` 文件并添加 `GITHUB_TOKEN` 的分步指南: - -1. **进入项目目录**:打开终端或命令行,切换到你想创建 `.env` 文件的项目根目录。 - - ```bash - cd path/to/your/project - ``` - -2. **创建 `.env` 文件**:用你喜欢的文本编辑器新建一个名为 `.env` 的文件。如果用命令行,可以使用 `touch`(Unix 系统)或 `echo`(Windows): - - Unix 系统: - - ```bash - touch .env - ``` - - Windows: - - ```cmd - echo . > .env - ``` - -3. **编辑 `.env` 文件**:用文本编辑器打开 `.env` 文件(如 VS Code、Notepad++ 等),添加以下内容,将 `your_github_token_here` 替换为你的真实 GitHub 令牌: - - ```env - GITHUB_TOKEN=your_github_token_here - ``` - -4. **保存文件**:保存并关闭编辑器。 - -5. **安装 `python-dotenv`**:如果还没安装,需要用 `pip` 安装 `python-dotenv`,以便从 `.env` 文件加载环境变量: - - ```bash - pip install python-dotenv - ``` - -6. **在 Python 脚本中加载环境变量**:在你的 Python 脚本中,使用 `python-dotenv` 加载 `.env` 文件中的环境变量: - - ```python - from dotenv import load_dotenv - import os - - # Load environment variables from .env file - load_dotenv() - - # Access the GITHUB_TOKEN variable - github_token = os.getenv("GITHUB_TOKEN") - - print(github_token) - ``` - -完成以上步骤后,你就成功创建了 `.env` 文件,添加了 GitHub 令牌,并在 Python 应用中加载了它。 - -## 如何在本地电脑运行 - -要在本地运行代码,你需要先安装某个版本的[Python](https://www.python.org/downloads/?WT.mc_id=academic-105485-koreyst)。 - -然后,克隆仓库: - -```shell -git clone https://github.com/microsoft/generative-ai-for-beginners -cd generative-ai-for-beginners -``` - -确认所有内容都准备好后,就可以开始学习了! - -## 可选步骤 - -### 安装 Miniconda - -[Miniconda](https://conda.io/en/latest/miniconda.html?WT.mc_id=academic-105485-koreyst) 是一个轻量级安装器,用于安装 [Conda](https://docs.conda.io/en/latest?WT.mc_id=academic-105485-koreyst)、Python 以及一些包。Conda 是一个包管理器,方便你设置和切换不同的 Python [**虚拟环境**](https://docs.python.org/3/tutorial/venv.html?WT.mc_id=academic-105485-koreyst)和包。它也适合安装那些无法通过 `pip` 获取的包。 - -你可以参考[Miniconda 安装指南](https://docs.anaconda.com/free/miniconda/#quick-command-line-install?WT.mc_id=academic-105485-koreyst)进行安装。 - -安装好 Miniconda 后,如果还没克隆仓库,请先克隆[仓库](https://github.com/microsoft/generative-ai-for-beginners/fork?WT.mc_id=academic-105485-koreyst)。 - -接下来需要创建虚拟环境。使用 Conda,可以创建一个环境配置文件(_environment.yml_)。如果你使用 Codespaces,请在 `.devcontainer` 目录下创建,即 `.devcontainer/environment.yml`。 - -将下面的内容填入你的环境文件: - -```yml -name: -channels: - - defaults - - microsoft -dependencies: - - python= - - openai - - python-dotenv - - pip - - pip: - - azure-ai-ml -``` - -如果使用 Conda 时遇到错误,可以在终端手动安装 Microsoft AI 库,命令如下: - -``` -conda install -c microsoft azure-ai-ml -``` - -环境文件中指定了所需依赖。`` 是你想给 Conda 环境起的名字,`` 是你想用的 Python 版本,比如 `3` 表示最新的主版本。 - -完成后,在命令行/终端运行以下命令创建 Conda 环境: - -```bash -conda env create --name ai4beg --file .devcontainer/environment.yml # .devcontainer sub path applies to only Codespace setups -conda activate ai4beg -``` - -如果遇到问题,请参考[Conda 环境指南](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?WT.mc_id=academic-105485-koreyst)。 - -### 使用带 Python 支持扩展的 Visual Studio Code - -我们推荐使用[Visual Studio Code (VS Code)](https://code.visualstudio.com/?WT.mc_id=academic-105485-koreyst)编辑器,并安装[Python 支持扩展](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst)来学习本课程。不过这只是建议,并非强制要求。 - -> **注意**:在 VS Code 中打开课程仓库时,你可以选择在容器中设置项目。这是因为课程仓库中包含了[特殊的 `.devcontainer`](https://code.visualstudio.com/docs/devcontainers/containers?itemName=ms-python.python&WT.mc_id=academic-105485-koreyst)目录。后面会详细介绍。 - -> **注意**:克隆并打开目录后,VS Code 会自动建议你安装 Python 支持扩展。 - -> **注意**:如果 VS Code 提示你重新在容器中打开仓库,请拒绝此请求,以便使用本地安装的 Python 版本。 - -### 在浏览器中使用 Jupyter - -你也可以直接在浏览器中使用[Jupyter 环境](https://jupyter.org?WT.mc_id=academic-105485-koreyst)进行项目开发。经典 Jupyter 和[Jupyter Hub](https://jupyter.org/hub?WT.mc_id=academic-105485-koreyst)都提供了自动补全、代码高亮等良好开发体验。 - -要在本地启动 Jupyter,打开终端/命令行,切换到课程目录,执行: - -```bash -jupyter notebook -``` - -或者 - -```bash -jupyterhub -``` - -这会启动一个 Jupyter 实例,访问地址会显示在命令行窗口中。 - -访问该地址后,你会看到课程大纲,并能打开任何 `*.ipynb` 文件,例如 `08-building-search-applications/python/oai-solution.ipynb`。 - -### 在容器中运行 - -除了在本地电脑或 Codespace 设置环境外,你还可以使用[容器](../../../00-course-setup/)。课程仓库中的特殊 `.devcontainer` 文件夹使 VS Code 能够在容器中搭建项目。若不使用 Codespaces,则需要安装 Docker。说实话,这需要一定的操作经验,我们建议只有有容器使用经验的同学尝试。 - -使用 GitHub Codespaces 时,保护 API 密钥的最佳方式之一是使用 Codespace Secrets。请参考[Codespaces 秘密管理](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-secrets-for-your-codespaces?WT.mc_id=academic-105485-koreyst)指南了解详情。 - -## 课程内容与技术要求 - -本课程包含 6 个概念课和 6 个编程课。 - -编程课使用 Azure OpenAI 服务。你需要拥有 Azure OpenAI 服务的访问权限和 API 密钥才能运行代码。你可以通过[填写申请](https://azure.microsoft.com/products/ai-services/openai-service?WT.mc_id=academic-105485-koreyst)来获取访问权限。 - -在等待申请审批期间,每个编程课也包含一个 `README.md` 文件,你可以查看代码和输出结果。 - -## 第一次使用 Azure OpenAI 服务 - -如果你是第一次使用 Azure OpenAI 服务,请参考本指南,了解如何[创建和部署 Azure OpenAI 服务资源](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal&WT.mc_id=academic-105485-koreyst)。 - -## 第一次使用 OpenAI API - -如果你是第一次使用 OpenAI API,请参考本指南,了解如何[创建和使用接口](https://platform.openai.com/docs/quickstart?context=pythont&WT.mc_id=academic-105485-koreyst)。 - -## 认识其他学习者 - -我们在官方的[AI Community Discord 服务器](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst)中创建了频道,方便你结识其他学习者。这是与志同道合的创业者、开发者、学生以及所有想提升生成式 AI 技能的人交流的好地方。 - -[![加入 discord 频道](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -项目团队也会在该 Discord 服务器上帮助学习者。 - -## 贡献 - -本课程是一个开源项目。如果你发现改进点或问题,请创建[Pull Request](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst)或提交[GitHub issue](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst)。 - -项目团队会跟踪所有贡献。参与开源是构建生成式 AI 职业生涯的绝佳方式。 - -大多数贡献需要你同意贡献者许可协议(CLA),声明你有权且确实授予我们使用你贡献的权利。详情请访问[CLA,贡献者许可协议网站](https://cla.microsoft.com?WT.mc_id=academic-105485-koreyst)。 - -重要提示:翻译本仓库内容时,请确保不要使用机器翻译。我们会通过社区核实翻译质量,请仅在你熟练掌握该语言时自愿参与翻译。 - -提交 Pull Request 时,CLA 机器人会自动判断你是否需要提供 CLA,并相应标注(如标签、评论)。只需按照机器人提示操作即可。你只需在所有使用我们 CLA 的仓库中完成一次。 - -本项目采用了[微软开源行为准则](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-105485-koreyst)。更多信息请阅读行为准则常见问题,或通过邮箱 [opencode@microsoft.com](mailto:opencode@microsoft.com) 联系我们,提出任何问题或建议。 - -## 让我们开始吧 - -既然你已经完成了学习本课程所需的准备步骤,接下来就从[生成式 AI 和大语言模型简介](../01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst)开始吧。 - -**免责声明**: -本文件使用 AI 翻译服务 [Co-op Translator](https://github.com/Azure/co-op-translator) 进行翻译。虽然我们力求准确,但请注意,自动翻译可能包含错误或不准确之处。原始语言的原文应被视为权威来源。对于重要信息,建议使用专业人工翻译。对于因使用本翻译而产生的任何误解或误释,我们不承担任何责任。 \ No newline at end of file + + + + diff --git a/translations/zh/00-course-setup/SETUP.md b/translations/zh/00-course-setup/SETUP.md deleted file mode 100644 index 5d80dd38a..000000000 --- a/translations/zh/00-course-setup/SETUP.md +++ /dev/null @@ -1,146 +0,0 @@ - -# 设置开发环境 - -我们为此仓库和课程配置了一个[开发容器](https://containers.dev?WT.mc_id=academic-105485-koreyst),它包含一个通用运行时,支持 Python3、.NET、Node.js 和 Java 开发。相关配置定义在仓库根目录下 `.devcontainer/` 文件夹中的 `devcontainer.json` 文件里。 - -要激活开发容器,可以在[GitHub Codespaces](https://docs.github.com/en/codespaces/overview?WT.mc_id=academic-105485-koreyst)(云端运行时)或[Docker Desktop](https://docs.docker.com/desktop/?WT.mc_id=academic-105485-koreyst)(本地设备运行时)中启动。有关开发容器在 VS Code 中工作原理的更多细节,请参阅[此文档](https://code.visualstudio.com/docs/devcontainers/containers?WT.mc_id=academic-105485-koreyst)。 - -> [!TIP] -> 我们推荐使用 GitHub Codespaces 以快速开始且操作简便。它为个人账户提供了慷慨的[免费使用额度](https://docs.github.com/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts?WT.mc_id=academic-105485-koreyst)。你可以配置[超时设置](https://docs.github.com/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces?WT.mc_id=academic-105485-koreyst),自动停止或删除不活跃的 codespaces,以最大化额度利用。 - -## 1. 执行作业 - -每节课都会提供 _可选_ 的作业,可能包含一种或多种编程语言版本,包括 Python、.NET/C#、Java 和 JavaScript/TypeScript。本节提供执行这些作业的一般指导。 - -### 1.1 Python 作业 - -Python 作业以应用程序(`.py` 文件)或 Jupyter 笔记本(`.ipynb` 文件)形式提供。 -- 运行笔记本时,在 Visual Studio Code 中打开它,点击右上角的 _选择内核_,选择默认的 Python 3 选项。然后你可以点击 _全部运行_ 来执行笔记本。 -- 从命令行运行 Python 应用程序时,请按照作业的具体说明,确保选择正确的文件并提供所需参数。 - -## 2. 配置服务提供商 - -作业**可能**需要通过支持的服务提供商(如 OpenAI、Azure 或 Hugging Face)连接一个或多个大型语言模型(LLM)部署。这些服务提供一个 _托管端点_(API),我们可以通过正确的凭据(API 密钥或令牌)以编程方式访问。在本课程中,我们讨论以下提供商: - -- [OpenAI](https://platform.openai.com/docs/models?WT.mc_id=academic-105485-koreyst),提供多种模型,包括核心的 GPT 系列。 -- [Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst),专注于企业级的 OpenAI 模型。 -- [Hugging Face](https://huggingface.co/docs/hub/index?WT.mc_id=academic-105485-koreyst),提供开源模型和推理服务器。 - -**你需要使用自己的账户完成这些练习**。作业是可选的,你可以根据兴趣选择配置其中一个、全部或不配置任何提供商。以下是注册的一些指导: - -| 注册 | 费用 | API 密钥 | Playground | 备注 | -|:---|:---|:---|:---|:---| -| [OpenAI](https://platform.openai.com/signup?WT.mc_id=academic-105485-koreyst) | [价格](https://openai.com/pricing#language-models?WT.mc_id=academic-105485-koreyst) | [基于项目](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst) | [无代码,网页](https://platform.openai.com/playground?WT.mc_id=academic-105485-koreyst) | 多种模型可用 | -| [Azure](https://aka.ms/azure/free?WT.mc_id=academic-105485-koreyst) | [价格](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/?WT.mc_id=academic-105485-koreyst) | [SDK 快速入门](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [Studio 快速入门](https://learn.microsoft.com/azure/ai-services/openai/quickstart?WT.mc_id=academic-105485-koreyst) | [需提前申请访问](https://learn.microsoft.com/azure/ai-services/openai/?WT.mc_id=academic-105485-koreyst) | -| [Hugging Face](https://huggingface.co/join?WT.mc_id=academic-105485-koreyst) | [价格](https://huggingface.co/pricing) | [访问令牌](https://huggingface.co/docs/hub/security-tokens?WT.mc_id=academic-105485-koreyst) | [Hugging Chat](https://huggingface.co/chat/?WT.mc_id=academic-105485-koreyst) | [Hugging Chat 模型有限](https://huggingface.co/chat/models?WT.mc_id=academic-105485-koreyst) | -| | | | | | - -请按照以下说明为不同提供商 _配置_ 本仓库。需要特定提供商的作业文件名中会包含以下标签之一: -- `aoai` - 需要 Azure OpenAI 端点和密钥 -- `oai` - 需要 OpenAI 端点和密钥 -- `hf` - 需要 Hugging Face 令牌 - -你可以配置一个、多个或不配置任何提供商。缺少凭据时,相关作业会报错。 - -### 2.1 创建 `.env` 文件 - -假设你已经阅读了上述指导,注册了相关提供商,并获得了所需的认证凭据(API_KEY 或令牌)。对于 Azure OpenAI,我们假设你还拥有一个有效的 Azure OpenAI 服务部署(端点),并至少部署了一个用于聊天完成的 GPT 模型。 - -下一步是配置你的**本地环境变量**,步骤如下: - -1. 在根目录查找 `.env.copy` 文件,内容类似于: - - ```bash - # OpenAI Provider - OPENAI_API_KEY='' - - ## Azure OpenAI - AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! - AZURE_OPENAI_API_KEY='' - AZURE_OPENAI_ENDPOINT='' - AZURE_OPENAI_DEPLOYMENT='' - AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='' - - ## Hugging Face - HUGGING_FACE_API_KEY='' - ``` - -2. 使用以下命令将该文件复制为 `.env`。此文件已被 _gitignore_,可确保密钥安全。 - - ```bash - cp .env.copy .env - ``` - -3. 按下一节说明填写变量值(替换 `=` 右侧的占位符)。 - -3.(可选)如果你使用 GitHub Codespaces,可以选择将环境变量保存为与本仓库关联的 _Codespaces secrets_。这样就不需要本地设置 `.env` 文件。**但请注意,此选项仅适用于 GitHub Codespaces。**如果使用 Docker Desktop,仍需设置 `.env` 文件。 - -### 2.2 填写 `.env` 文件 - -快速了解变量名及其含义: - -| 变量名 | 说明 | -| :--- | :--- | -| HUGGING_FACE_API_KEY | 你在个人资料中设置的用户访问令牌 | -| OPENAI_API_KEY | 用于非 Azure OpenAI 端点的服务授权密钥 | -| AZURE_OPENAI_API_KEY | Azure OpenAI 服务的授权密钥 | -| AZURE_OPENAI_ENDPOINT | Azure OpenAI 资源的部署端点 | -| AZURE_OPENAI_DEPLOYMENT | _文本生成_ 模型的部署端点 | -| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | _文本嵌入_ 模型的部署端点 | -| | | - -注意:最后两个 Azure OpenAI 变量分别对应聊天完成(文本生成)和向量搜索(嵌入)的默认模型。相关作业中会说明如何设置。 - -### 2.3 通过门户配置 Azure - -Azure OpenAI 的端点和密钥可在[Azure 门户](https://portal.azure.com?WT.mc_id=academic-105485-koreyst)中找到,步骤如下: - -1. 访问[Azure 门户](https://portal.azure.com?WT.mc_id=academic-105485-koreyst) -2. 点击侧边栏(左侧菜单)中的 **Keys and Endpoint** 选项 -3. 点击 **显示密钥**,你会看到 KEY 1、KEY 2 和 Endpoint -4. 使用 KEY 1 的值填入 AZURE_OPENAI_API_KEY -5. 使用 Endpoint 的值填入 AZURE_OPENAI_ENDPOINT - -接下来需要获取已部署模型的端点: - -1. 在 Azure OpenAI 资源的侧边栏点击 **Model deployments** -2. 在目标页面点击 **管理部署** - -这会跳转到 Azure OpenAI Studio 网站,接下来我们将在那里找到其他所需值。 - -### 2.4 通过 Studio 配置 Azure - -1. 按上述方法从你的资源访问 [Azure OpenAI Studio](https://oai.azure.com?WT.mc_id=academic-105485-koreyst) -2. 点击左侧栏的 **Deployments** 标签,查看当前已部署的模型 -3. 如果没有你需要的模型,点击 **创建新部署** 进行部署 -4. 你需要一个 _文本生成_ 模型,推荐使用:**gpt-35-turbo** -5. 你需要一个 _文本嵌入_ 模型,推荐使用:**text-embedding-ada-002** - -然后更新环境变量,填写所用的 _部署名称_。通常部署名称与模型名称相同,除非你显式更改过。例如,你可能会有: - -```bash -AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' -AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002' -``` - -**完成后别忘了保存 .env 文件**。保存后即可关闭文件,继续执行笔记本的相关说明。 - -### 2.5 通过个人资料配置 OpenAI - -你的 OpenAI API 密钥可在你的[OpenAI 账户](https://platform.openai.com/api-keys?WT.mc_id=academic-105485-koreyst)中找到。如果没有账户,可以注册并创建 API 密钥。获得密钥后,将其填入 `.env` 文件中的 `OPENAI_API_KEY` 变量。 - -### 2.6 通过个人资料配置 Hugging Face - -你的 Hugging Face 令牌可在个人资料的[访问令牌](https://huggingface.co/settings/tokens?WT.mc_id=academic-105485-koreyst)页面找到。请勿公开或分享这些令牌。建议为本项目创建新的令牌,并将其复制到 `.env` 文件中的 `HUGGING_FACE_API_KEY` 变量。 -_注意:_ 这技术上不是 API 密钥,但用于身份验证,因此我们保持此命名以保持一致性。 - -**免责声明**: -本文件使用 AI 翻译服务 [Co-op Translator](https://github.com/Azure/co-op-translator) 进行翻译。虽然我们力求准确,但请注意,自动翻译可能包含错误或不准确之处。原始语言的文档应被视为权威来源。对于重要信息,建议采用专业人工翻译。对于因使用本翻译而产生的任何误解或误释,我们不承担任何责任。 \ No newline at end of file diff --git a/translations/zh/04-prompt-engineering-fundamentals/README.md b/translations/zh/04-prompt-engineering-fundamentals/README.md index 66076cb8e..b6e5d9f90 100644 --- a/translations/zh/04-prompt-engineering-fundamentals/README.md +++ b/translations/zh/04-prompt-engineering-fundamentals/README.md @@ -1,453 +1,15 @@ - -# Prompt Engineering Fundamentals - -[![Prompt Engineering Fundamentals](../../../translated_images/04-lesson-banner.a2c90deba7fedacda69f35b41636a8951ec91c2e33f5420b1254534ac85bc18e.zh.png)](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) - -## 介绍 -本模块涵盖了在生成式 AI 模型中创建有效提示词的基本概念和技巧。你向大型语言模型(LLM)编写提示词的方式同样重要。精心设计的提示词能够获得更高质量的回复。但“提示词”和“提示工程”这些术语到底是什么意思?我该如何改进发送给 LLM 的提示词输入?这些问题将在本章及下一章中为你解答。 - -_生成式 AI_ 能够根据用户请求创造新的内容(例如文本、图像、音频、代码等)。它通过使用像 OpenAI 的 GPT(“生成式预训练变换器”)系列这样的大型语言模型实现,这些模型经过自然语言和代码的训练。 - -用户现在可以通过类似聊天的熟悉方式与这些模型交互,无需任何技术专长或培训。这些模型是基于_提示词_的——用户发送文本输入(提示词),模型返回 AI 回复(完成内容)。用户可以通过多轮对话不断“与 AI 聊天”,不断优化提示词,直到回复符合预期。 - -“提示词”现已成为生成式 AI 应用的主要_编程接口_,告诉模型该做什么,并影响返回回复的质量。“提示工程”是一个快速发展的研究领域,专注于_设计和优化_提示词,以实现规模化的稳定且高质量的回复。 - -## 学习目标 - -本课将介绍什么是提示工程、它为何重要,以及如何为特定模型和应用目标设计更有效的提示词。我们将理解提示工程的核心概念和最佳实践,并了解一个交互式 Jupyter Notebook “沙盒”环境,在那里可以看到这些概念如何应用于实际示例。 - -完成本课后,你将能够: - -1. 解释什么是提示工程及其重要性。 -2. 描述提示词的组成部分及其用途。 -3. 学习提示工程的最佳实践和技巧。 -4. 使用 OpenAI 端点将所学技巧应用于实际示例。 - -## 关键词 - -提示工程:设计和优化输入以引导 AI 模型生成期望输出的实践。 -分词(Tokenization):将文本转换为模型可以理解和处理的更小单元(称为“token”)的过程。 -指令调优大型语言模型(Instruction-Tuned LLMs):经过特定指令微调以提升回复准确性和相关性的大型语言模型。 - -## 学习沙盒 - -提示工程目前更多是一门艺术而非科学。提升直觉的最佳方式是_多加练习_,采用结合应用领域专业知识、推荐技巧和模型特定优化的反复试验方法。 - -本课配套的 Jupyter Notebook 提供了一个_沙盒_环境,你可以在学习过程中或课后代码挑战中尝试所学内容。执行练习需要: - -1. **Azure OpenAI API 密钥**——已部署 LLM 的服务端点。 -2. **Python 运行环境**——用于执行 Notebook。 -3. **本地环境变量**——请先完成[SETUP](./../00-course-setup/SETUP.md?WT.mc_id=academic-105485-koreyst)步骤以准备环境。 - -Notebook 附带了_入门_练习,但鼓励你添加自己的_Markdown_(描述)和_代码_(提示请求)部分,尝试更多示例或想法,培养提示设计的直觉。 - -## 图解指南 - -想在深入学习前先了解本课的整体内容吗?看看这份图解指南,它帮助你把握主要主题和每个主题的关键要点。课程路线图将带你从理解核心概念和挑战,到用相关提示工程技巧和最佳实践应对这些挑战。请注意,本指南中的“高级技巧”部分涉及本课程_下一章_的内容。 - -![Illustrated Guide to Prompt Engineering](../../../translated_images/04-prompt-engineering-sketchnote.d5f33336957a1e4f623b826195c2146ef4cc49974b72fa373de6929b474e8b70.zh.png) - -## 我们的创业项目 - -现在,让我们谈谈_本主题_如何与我们创业项目的使命相关——[将 AI 创新带入教育](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-koreyst)。我们希望构建基于 AI 的_个性化学习_应用——所以让我们思考不同用户如何“设计”提示词: - -- **管理员**可能会让 AI_分析课程数据以识别覆盖的空白点_。AI 可以总结结果或用代码进行可视化。 -- **教育者**可能会让 AI_为特定受众和主题生成课程计划_。AI 可以以指定格式构建个性化计划。 -- **学生**可能会让 AI_辅导他们攻克难题_。AI 现在可以根据学生水平提供课程、提示和示例。 - -这只是冰山一角。查看[教育提示词库](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-koreyst)——由教育专家策划的开源提示词库,了解更多可能性!_试着在沙盒或 OpenAI Playground 中运行这些提示词,看看效果!_ - - - -## 什么是提示工程? - -我们从定义**提示工程**开始,它是为特定应用目标和模型_设计和优化_文本输入(提示词),以提供稳定且高质量回复(完成内容)的过程。可以把它看作一个两步走的过程: - -- 为特定模型和目标_设计_初始提示词 -- 反复_优化_提示词以提升回复质量 - -这必然是一个反复试验的过程,需要用户的直觉和努力才能获得最佳结果。那么它为何重要?为回答这个问题,我们先了解三个概念: - -- _分词_ = 模型如何“看待”提示词 -- _基础 LLM_ = 基础模型如何“处理”提示词 -- _指令调优 LLM_ = 模型如何“理解任务” - -### 分词 - -LLM 将提示词视为_一串 token_,不同模型(或同一模型的不同版本)对同一提示词的分词方式可能不同。由于 LLM 是基于 token(而非原始文本)训练的,提示词的分词方式直接影响生成回复的质量。 - -想了解分词如何工作,可以试试下面的[OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-koreyst)工具。复制你的提示词,观察它如何被转换成 token,注意空格和标点的处理方式。请注意,此示例使用的是较旧的 LLM(GPT-3),用新模型测试可能结果不同。 - -![Tokenization](../../../translated_images/04-tokenizer-example.e71f0a0f70356c5c7d80b21e8753a28c18a7f6d4aaa1c4b08e65d17625e85642.zh.png) - -### 概念:基础模型 - -提示词分词后,["基础 LLM"](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst)(或基础模型)的主要功能是预测序列中的下一个 token。由于 LLM 训练于海量文本数据,它们对 token 之间的统计关系有较好把握,能较自信地做出预测。请注意,它们并不理解提示词或 token 的_含义_,只是看到一个可以“补全”的模式。它们会持续预测序列,直到用户干预或达到预设条件。 - -想看看基于提示词的完成是如何工作的吗?将上述提示词输入 Azure OpenAI Studio 的[_Chat Playground_](https://oai.azure.com/playground?WT.mc_id=academic-105485-koreyst),使用默认设置。系统将提示词视为信息请求,你应该会看到符合该上下文的回复。 - -但如果用户想看到符合某些条件或任务目标的特定内容呢?这时就需要用到_指令调优_的 LLM。 - -![Base LLM Chat Completion](../../../translated_images/04-playground-chat-base.65b76fcfde0caa6738e41d20f1a6123f9078219e6f91a88ee5ea8014f0469bdf.zh.png) - -### 概念:指令调优 LLM - -[指令调优 LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-koreyst)是在基础模型基础上,通过示例或输入/输出对(例如多轮“消息”)进行微调,这些示例包含明确指令,AI 的回复尝试遵循这些指令。 - -这采用了如人类反馈强化学习(RLHF)等技术,训练模型_遵循指令_并_从反馈中学习_,使其生成更适合实际应用且更符合用户目标的回复。 - -我们来试试——回到上面的提示词,将_系统消息_改为以下指令作为上下文: - -> _为二年级学生总结你收到的内容。结果保持为一段话,包含3-5个要点。_ - -看看结果如何调整以反映期望的目标和格式?教育者现在可以直接将此回复用于课堂幻灯片。 - -![Instruction Tuned LLM Chat Completion](../../../translated_images/04-playground-chat-instructions.b30bbfbdf92f2d051639c9bc23f74a0e2482f8dc7f0dafc6cc6fda81b2b00534.zh.png) - -## 为什么需要提示工程? - -既然我们知道提示词是如何被 LLM 处理的,接下来谈谈_为什么_需要提示工程。原因在于当前 LLM 存在一些挑战,使得_可靠且一致的完成内容_难以在不投入提示构建和优化工作的情况下实现。例如: - -1. **模型回复具有随机性。**_相同的提示词_在不同模型或模型版本中可能产生不同回复,甚至同一模型在不同时间也可能产生不同结果。_提示工程技巧能帮助我们通过更好的约束减少这些差异_。 - -1. **模型可能编造回复。**模型预训练于_庞大但有限_的数据集,缺乏训练范围外的知识。因此,它们可能生成不准确、虚构或与已知事实直接矛盾的内容。_提示工程技巧帮助用户识别并减轻此类编造,例如要求 AI 提供引用或推理_。 - -1. **模型能力各异。**新模型或新一代模型功能更强,但也带来成本和复杂性的独特权衡。_提示工程能帮助我们制定最佳实践和工作流程,抽象差异并适应模型特定需求,实现可扩展且无缝的应用_。 - -让我们在 OpenAI 或 Azure OpenAI Playground 中实际体验: - -- 用相同提示词测试不同 LLM 部署(如 OpenAI、Azure OpenAI、Hugging Face)——你发现了哪些差异? -- 用相同提示词多次测试_同一_ LLM 部署(如 Azure OpenAI Playground)——这些差异如何变化? - -### 编造示例 - -在本课程中,我们用**“编造”**一词指代 LLM 有时因训练限制或其他约束而生成事实错误信息的现象。你可能在流行文章或研究论文中听过“幻觉”(hallucinations)一词,但我们强烈建议使用“编造”,以避免将机器行为拟人化,赋予其人类特质。这也符合[负责任 AI 指南](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-koreyst)的术语规范,避免使用在某些语境下可能被视为冒犯或不包容的词汇。 - -想了解编造是如何发生的吗?想象一个提示词,指示 AI 生成一个不存在主题的内容(确保该主题不在训练数据中)。例如——我尝试了这个提示词: -# 火星战争2076年课程计划 - -## 课程目标 -- 了解2076年火星战争的背景和起因 -- 分析战争的主要事件和关键战役 -- 探讨战争对地球和火星社会的影响 -- 培养学生的批判性思维和历史分析能力 - -## 课程大纲 - -### 第一课:火星战争的背景 -- 火星殖民的发展历程 -- 地球与火星之间的政治经济关系 -- 导致战争爆发的主要因素 - -### 第二课:战争的爆发与初期战况 -- 2076年战争爆发的导火索 -- 主要参战方介绍 -- 初期战役的战略与战术分析 - -### 第三课:关键战役与转折点 -- 重要战役回顾 -- 技术与武器的应用 -- 战争进程中的重大转折 - -### 第四课:战争的结束与后果 -- 和平协议的签订过程 -- 战争对火星和地球的影响 -- 战争遗留的问题与未来展望 - -## 教学活动建议 -- 小组讨论:战争爆发的原因及其合理性 -- 角色扮演:模拟和平谈判 -- 资料分析:研究战争期间的新闻报道和官方文件 - -## 评估方式 -- 课堂参与和讨论表现 -- 书面报告:分析某一关键战役 -- 期末考试:涵盖战争背景、过程及影响的综合题目 -网络搜索显示,有关于火星战争的虚构故事(例如电视剧或书籍)存在,但没有发生在2076年。常识也告诉我们,2076年是_未来_,因此不可能与真实事件相关联。 - -那么,当我们用不同的LLM提供商运行这个提示时,会发生什么? - -> **Response 1**: OpenAI Playground (GPT-35) - -![Response 1](../../../translated_images/04-fabrication-oai.5818c4e0b2a2678c40e0793bf873ef4a425350dd0063a183fb8ae02cae63aa0c.zh.png) - -> **Response 2**: Azure OpenAI Playground (GPT-35) - -![Response 2](../../../translated_images/04-fabrication-aoai.b14268e9ecf25caf613b7d424c16e2a0dc5b578f8f960c0c04d4fb3a68e6cf61.zh.png) - -> **Response 3**: : Hugging Face Chat Playground (LLama-2) - -![Response 3](../../../translated_images/04-fabrication-huggingchat.faf82a0a512789565e410568bce1ac911075b943dec59b1ef4080b61723b5bf4.zh.png) - -正如预期,每个模型(或模型版本)由于随机性行为和模型能力的差异,产生了略有不同的回答。例如,一个模型面向8年级学生,而另一个则假设是高中生。但这三个模型都生成了可能让不了解情况的用户相信该事件真实存在的回答。 - -像_元提示_和_温度配置_这样的提示工程技术,可能在一定程度上减少模型的虚构内容。新的提示工程_架构_也将新工具和技术无缝集成到提示流程中,以缓解或减少这些影响。 - -## 案例研究:GitHub Copilot - -让我们通过一个案例研究来了解提示工程在现实解决方案中的应用:[GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-koreyst)。 - -GitHub Copilot 是你的“AI 编程搭档”——它将文本提示转换为代码补全,并集成在你的开发环境中(例如 Visual Studio Code),提供无缝的用户体验。正如下面一系列博客所述,最早的版本基于 OpenAI Codex 模型——工程师们很快意识到需要微调模型并开发更好的提示工程技术,以提升代码质量。今年7月,他们[推出了超越 Codex 的改进型 AI 模型](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst),以实现更快的建议。 - -请按顺序阅读这些文章,跟随他们的学习历程。 - -- **2023年5月** | [GitHub Copilot 在理解你的代码方面变得更好](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-koreyst) -- **2023年5月** | [GitHub 内部揭秘:与 GitHub Copilot 背后的 LLMs 合作](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **2023年6月** | [如何为 GitHub Copilot 编写更好的提示](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?WT.mc_id=academic-105485-koreyst) -- **2023年7月** | [GitHub Copilot 通过改进的 AI 模型超越 Codex](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-koreyst) -- **2023年7月** | [开发者的提示工程与 LLM 指南](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/?WT.mc_id=academic-105485-koreyst) -- **2023年9月** | [如何构建企业级 LLM 应用:GitHub Copilot 的经验教训](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-koreyst) - -你还可以浏览他们的[工程博客](https://github.blog/category/engineering/?WT.mc_id=academic-105485-koreyst),阅读更多类似[这篇](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-koreyst)的文章,了解这些模型和技术如何_应用_于推动现实世界的项目。 - ---- - - - -## 提示构建 - -我们已经了解了提示工程为何重要——现在让我们理解提示是如何_构建_的,以便评估不同技术,实现更有效的提示设计。 - -### 基础提示 - -先从基础提示开始:向模型发送一段没有其他上下文的文本输入。举个例子——当我们将美国国歌的开头几句发送给 OpenAI 的[Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-koreyst),它会立即_补全_接下来的几句,展示了基本的预测行为。 - -| Prompt (输入) | Completion (输出) | -| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| Oh say can you see | 听起来你正在开始唱《星条旗永不落》(The Star-Spangled Banner),这是美国的国歌。完整歌词是... | - -### 复杂提示 - -现在让我们在基础提示上添加上下文和指令。[Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-koreyst)允许我们将复杂提示构建为一组_消息_,包括: - -- 反映_用户_输入和_助手_回复的输入/输出对。 -- 设置助手行为或个性的系统消息。 - -请求现在采用如下形式,其中_分词_有效捕捉了上下文和对话中的相关信息。改变系统上下文对补全质量的影响,可能和用户输入一样显著。 - -```python -response = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": "Who won the world series in 2020?"}, - {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, - {"role": "user", "content": "Where was it played?"} - ] -) -``` - -### 指令提示 - -在上述示例中,用户提示是一个简单的文本查询,可以被理解为信息请求。使用_指令_提示,我们可以用文本更详细地指定任务,为AI提供更好的指导。举个例子: - -| Prompt (输入) | Completion (输出) | 指令类型 | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Write a description of the Civil War | _返回了一个简单段落_ | 简单 | -| Write a description of the Civil War. Provide key dates and events and describe their significance | _返回了一个段落,后面跟着关键事件日期及描述的列表_ | 复杂 | -| Write a description of the Civil War in 1 paragraph. Provide 3 bullet points with key dates and their significance. Provide 3 more bullet points with key historical figures and their contributions. Return the output as a JSON file | _返回了更详细的内容,格式为JSON文本框,你可以复制粘贴到文件中并根据需要验证_ | 复杂,格式化 | - -## 主要内容 - -在上述示例中,提示仍然相当开放,允许LLM决定其预训练数据集中哪些部分相关。使用_主要内容_设计模式,输入文本被分为两部分: - -- 指令(动作) -- 相关内容(影响动作) - -下面是一个示例,指令是“用两句话总结这段内容”。 - -| Prompt (输入) | Completion (输出) | -| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. It is named after the Roman god Jupiter.[19] When viewed from Earth, Jupiter can be bright enough for its reflected light to cast visible shadows,[20] and is on average the third-brightest natural object in the night sky after the Moon and Venus.
**Summarize this in 2 short sentences** | 木星是太阳系中第五颗行星,也是最大的行星。它是一颗气态巨行星,质量是太阳的千分之一,但却是太阳系其他所有行星质量总和的两倍半。木星是夜空中肉眼可见的最亮天体之一,自古代文明以来就为人所知。它以罗马神朱庇特命名。[19] 从地球观察,木星反射的光线足够明亮,甚至能投下可见的影子,[20] 平均而言,它是夜空中继月亮和金星之后第三亮的自然天体。
**用两句话简短总结这段内容** | 木星是太阳系中第五颗行星,也是最大的行星,夜空中最亮的天体之一。它以罗马神朱庇特命名,是一颗质量相当于其他所有行星总和两倍半的气态巨行星。 | - -主要内容部分可以用多种方式来驱动更有效的指令: - -- **示例**——不是直接告诉模型该做什么,而是给出示例,让模型推断模式。 -- **提示**——在指令后跟一个“提示”,引导模型生成更相关的回答。 -- **模板**——可重复使用的“配方”,带有占位符(变量),可用具体数据定制以满足特定需求。 - -让我们来看看这些方法的实际应用。 - -### 使用示例 - -这是一种用主要内容“喂给模型”一些期望输出示例的方法,让模型推断出期望输出的模式。根据示例数量不同,可以有零样本提示、一样本提示、少样本提示等。 - -提示现在包含三个部分: - -- 任务描述 -- 一些期望输出的示例 -- 新示例的开头(隐含的任务描述) - -| 学习类型 | Prompt (输入) | Completion (输出) | -| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| 零样本 | "The Sun is Shining". Translate to Spanish | "El Sol está brillando". | -| 一样本 | "The Sun is Shining" => ""El Sol está brillando".
"It's a Cold and Windy Day" => | "Es un día frío y ventoso". | -| 少样本 | The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk => | Basketball | -| | | | - -注意,在零样本提示中我们必须明确指令(“Translate to Spanish”),但在一样本提示中,模型能推断出指令。少样本示例显示,增加更多示例可以让模型在没有额外指令的情况下做出更准确的推断。 - -### 提示线索 - -另一种使用主要内容的技巧是提供_线索_而非示例。在这种情况下,我们通过_先给出_一个反映期望回答格式的片段,给模型一个正确方向的提示。模型随后“接住线索”,继续以相同风格生成内容。 - -| 线索数量 | Prompt (输入) | Completion (输出) | -| :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 | 木星是太阳系中第五颗行星,也是最大的行星。它是一颗气态巨行星,质量是太阳的千分之一,但却是太阳系其他所有行星质量总和的两倍半。木星是夜空中肉眼可见的最亮天体之一,自古代文明以来就为人所知。 - -**Summarize This** | 木星是太阳系中最大的行星,也是距离太阳第五远的行星。它是一颗气态巨行星,质量约为太阳的千分之一,但比其他所有行星的总和还要重。古代文明早已知晓木星,它在夜空中非常容易被看到。 | -| 1 | 木星是距离太阳第五的行星,也是太阳系中最大的行星。它是一颗气态巨行星,质量约为太阳的千分之一,但比太阳系中所有其他行星的总和还要重两倍半。木星是夜空中肉眼可见的最亮天体之一,自有文字记载之前就已为古代文明所知。
**Summarize This**
我们了解到,木星 | 是距离太阳第五的行星,也是太阳系中最大的行星。它是一颗气态巨行星,质量约为太阳的千分之一,但比所有其他行星的总和还要重两倍半。它肉眼可见,自古以来就为人所知。 | -| 2 | 木星是距离太阳第五的行星,也是太阳系中最大的行星。它是一颗气态巨行星,质量约为太阳的千分之一,但比太阳系中所有其他行星的总和还要重两倍半。木星是夜空中肉眼可见的最亮天体之一,自有文字记载之前就已为古代文明所知。
**Summarize This**
我们学到的三大事实: | 1. 木星是距离太阳第五的行星,也是太阳系中最大的行星。
2. 它是一颗气态巨行星,质量约为太阳的千分之一……
3. 木星自古以来就能用肉眼看到…… | -| | | | - -### Prompt Templates - -提示模板是一种_预定义的提示配方_,可以存储并根据需要重复使用,以实现更一致的大规模用户体验。最简单的形式,就是像[OpenAI的这个示例](https://platform.openai.com/examples?WT.mc_id=academic-105485-koreyst)那样,提供交互式提示组件(用户和系统消息)以及基于API的请求格式——支持重复使用。 - -更复杂的形式,如[LangChain的示例](https://python.langchain.com/docs/concepts/prompt_templates/?WT.mc_id=academic-105485-koreyst),包含_占位符_,可以用来自各种来源的数据(用户输入、系统上下文、外部数据源等)动态替换,从而生成提示。这使我们能够创建可编程的可重用提示库,用于驱动一致的用户体验。 - -最终,模板的真正价值在于能够为垂直应用领域创建和发布_提示库_——提示模板经过_优化_,反映特定应用的上下文或示例,使响应对目标用户更相关、更准确。[Prompts For Edu](https://github.com/microsoft/prompts-for-edu?WT.mc_id=academic-105485-koreyst)仓库就是一个很好的例子,专注于教育领域,强调课程规划、课程设计、学生辅导等关键目标,策划了一系列提示。 - -## Supporting Content - -如果我们把提示构建看作包含指令(任务)和目标(主要内容),那么_次要内容_就像是我们提供的额外上下文,用来**以某种方式影响输出**。它可以是调优参数、格式说明、主题分类等,帮助模型_调整_响应以满足期望的用户目标或需求。 - -例如:给定一个包含丰富元数据(名称、描述、级别、元数据标签、讲师等)的课程目录: - -- 我们可以定义一个指令“总结2023年秋季课程目录” -- 用主要内容提供几个期望输出的示例 -- 用次要内容确定最关注的5个“标签” - -这样,模型可以按照示例格式给出总结——如果结果包含多个标签,则优先考虑次要内容中确定的5个标签。 - ---- - - - -## Prompting Best Practices - -既然我们知道了提示如何_构建_,接下来可以开始思考如何_设计_提示以体现最佳实践。可以从两个方面考虑——拥有正确的_心态_和应用合适的_技巧_。 - -### Prompt Engineering Mindset - -提示工程是一个反复试验的过程,请牢记以下三大指导原则: - -1. **领域理解很重要。** 响应的准确性和相关性取决于应用或用户所处的_领域_。运用你的直觉和领域专业知识,进一步**定制技巧**。例如,在系统提示中定义_领域特定的角色_,或在用户提示中使用_领域特定的模板_。提供反映领域上下文的次要内容,或用_领域特定的线索和示例_引导模型采用熟悉的用法。 - -2. **模型理解很重要。** 我们知道模型本质上是随机的。但不同模型在训练数据(预训练知识)、提供的能力(如API或SDK)以及优化内容类型(代码、图像、文本等)方面可能不同。了解你所用模型的优势和局限,利用这些知识_优先安排任务_或构建_针对模型能力优化的定制模板_。 - -3. **迭代与验证很重要。** 模型和提示工程技术都在快速发展。作为领域专家,你可能有特定应用的其他背景或标准,这些可能不适用于更广泛的社区。利用提示工程工具和技术“快速启动”提示构建,然后用你的直觉和领域专业知识迭代验证结果。记录你的见解,创建一个**知识库**(如提示库),供他人作为新基线,加快未来迭代。 - -## Best Practices - -下面是[OpenAI](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api?WT.mc_id=academic-105485-koreyst)和[Azure OpenAI](https://learn.microsoft.com/azure/ai-services/openai/concepts/prompt-engineering#best-practices?WT.mc_id=academic-105485-koreyst)实践者推荐的常见最佳实践。 - -| 内容 | 原因 | -| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 评估最新模型 | 新一代模型通常功能更强、质量更高,但可能成本更高。评估其影响后再决定是否迁移。 | -| 分离指令与上下文 | 检查你的模型/服务是否定义了_分隔符_,以更清晰地区分指令、主要内容和次要内容。这有助于模型更准确地为各部分分配权重。 | -| 具体且清晰 | 提供更多关于期望上下文、结果、长度、格式、风格等细节,有助于提升响应质量和一致性。将配方记录在可复用模板中。 | -| 详细描述,使用示例 | 模型对“示范加说明”的方式反应更好。先用“零样本”方式给出指令(无示例),再用“少样本”方式提供几个期望输出示例进行优化。可用类比辅助说明。 | -| 用线索启动完成 | 通过给出一些引导词或短语,帮助模型从期望的方向开始生成响应。 | -| 反复强调 | 有时需要对模型重复说明。可在主要内容前后都给出指令,或同时使用指令和线索。不断迭代验证,找出有效方法。 | -| 顺序很重要 | 向模型呈现信息的顺序可能影响输出,尤其是示例中,因近期偏好效应。尝试不同顺序,找出最佳方案。 | -| 给模型“退路” | 给模型一个_备用_的完成响应,以防无法完成任务。这能减少模型生成错误或虚假信息的概率。 | -| | | - -和任何最佳实践一样,记住_实际效果因模型、任务和领域而异_。将这些作为起点,反复调整,找到最适合你的方法。随着新模型和工具的出现,持续重新评估你的提示工程流程,重点关注流程的可扩展性和响应质量。 - - - -## Assignment - -恭喜你完成本课!现在是时候用真实示例检验所学的概念和技巧了! - -本次作业将使用一个Jupyter Notebook,里面有可交互完成的练习。你也可以在Notebook中添加自己的Markdown和代码单元,探索更多想法和技巧。 - -### 开始前,先fork仓库,然后 - -- (推荐)启动GitHub Codespaces -- (或者)将仓库克隆到本地设备,配合Docker Desktop使用 -- (或者)用你喜欢的Notebook运行环境打开Notebook - -### 接下来,配置环境变量 - -- 将仓库根目录下的`.env.copy`文件复制为`.env`,填写`AZURE_OPENAI_API_KEY`、`AZURE_OPENAI_ENDPOINT`和`AZURE_OPENAI_DEPLOYMENT`的值。然后回到[学习沙盒部分](../../../04-prompt-engineering-fundamentals/04-prompt-engineering-fundamentals)了解具体操作。 - -### 然后,打开Jupyter Notebook - -- 选择运行内核。如果使用方案1或2,直接选择开发容器提供的默认Python 3.10.x内核即可。 - -你已经准备好运行练习了。请注意,这里没有“对错”答案——只是通过反复试验探索选项,培养对特定模型和应用领域有效方法的直觉。 - -_因此本课没有代码解决方案部分。Notebook中会有标题为“我的解决方案:”的Markdown单元,展示一个示例输出供参考。_ - - - -## Knowledge check - -以下哪个提示符合合理的最佳实践? - -1. 给我一张红色汽车的图片 -2. 给我一张红色沃尔沃XC90汽车停在悬崖边,夕阳西下的图片 -3. 给我一张红色沃尔沃XC90汽车的图片 - -答:2是最佳提示,因为它详细说明了“什么”,并具体到车型,还描述了整体场景。3次之,也包含了较多描述。 - -## 🚀 Challenge - -试试用“线索”技巧完成提示:“Complete the sentence 'Show me an image of red car of make Volvo and '”。它会如何回应?你会如何改进? - -## Great Work! Continue Your Learning - -想了解更多提示工程的概念?请访问[继续学习页面](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst),这里有更多优质资源。 - -接下来进入第5课,我们将学习[高级提示技巧](../05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst)! - -**免责声明**: -本文件使用 AI 翻译服务 [Co-op Translator](https://github.com/Azure/co-op-translator) 进行翻译。虽然我们力求准确,但请注意,自动翻译可能包含错误或不准确之处。原始语言的文档应被视为权威来源。对于重要信息,建议使用专业人工翻译。对于因使用本翻译而产生的任何误解或误释,我们不承担任何责任。 \ No newline at end of file + + + + + + + diff --git a/translations/zh/09-building-image-applications/README.md b/translations/zh/09-building-image-applications/README.md index 3daca12ed..ec766e462 100644 --- a/translations/zh/09-building-image-applications/README.md +++ b/translations/zh/09-building-image-applications/README.md @@ -1,475 +1,12 @@ - -# 构建图像生成应用 - -[![构建图像生成应用](../../../translated_images/09-lesson-banner.906e408c741f44112ff5da17492a30d3872abb52b8530d6506c2631e86e704d0.zh.png)](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) - -大型语言模型不仅能生成文本,还能根据文本描述生成图像。图像作为一种模态,在医疗技术、建筑、旅游、游戏开发等多个领域都有广泛应用。本章将介绍两种最流行的图像生成模型:DALL-E 和 Midjourney。 - -## 介绍 - -本课内容包括: - -- 图像生成及其应用价值。 -- DALL-E 和 Midjourney 的介绍及工作原理。 -- 如何构建图像生成应用。 - -## 学习目标 - -完成本课后,您将能够: - -- 构建图像生成应用。 -- 使用元提示定义应用边界。 -- 使用 DALL-E 和 Midjourney。 - -## 为什么要构建图像生成应用? - -图像生成应用是探索生成式 AI 能力的绝佳方式。它们可以用于: - -- **图像编辑与合成**。可生成多种用途的图像,如图像编辑和合成。 - -- **应用于多个行业**。可为医疗技术、旅游、游戏开发等多个行业生成图像。 - -## 场景:Edu4All - -本课将继续以我们的初创公司 Edu4All 为例。学生们将为他们的作业生成图像,具体内容由学生决定,可能是自己童话故事的插图,或为故事创造新角色,帮助他们可视化想法和概念。 - -例如,如果学生们在课堂上研究纪念碑,Edu4All 的学生可能会生成如下图像: - -![Edu4All startup, class on monuments, Eiffel Tower](../../../translated_images/startup.94d6b79cc4bb3f5afbf6e2ddfcf309aa5d1e256b5f30cc41d252024eaa9cc5dc.zh.png) - -使用的提示语可能是: - -> “清晨阳光下埃菲尔铁塔旁的狗” - -## 什么是 DALL-E 和 Midjourney? - -[DALL-E](https://openai.com/dall-e-2?WT.mc_id=academic-105485-koreyst) 和 [Midjourney](https://www.midjourney.com/?WT.mc_id=academic-105485-koreyst) 是两种非常流行的图像生成模型,它们允许你通过提示语生成图像。 - -### DALL-E - -先介绍 DALL-E,它是一种根据文本描述生成图像的生成式 AI 模型。 - -> [DALL-E 是由两个模型 CLIP 和扩散注意力结合而成](https://towardsdatascience.com/openais-dall-e-and-clip-101-a-brief-introduction-3a4367280d4e?WT.mc_id=academic-105485-koreyst)。 - -- **CLIP** 是一个模型,可以从图像和文本中生成嵌入向量,即数据的数值表示。 - -- **扩散注意力** 是一个根据嵌入向量生成图像的模型。DALL-E 在图像和文本数据集上训练,可以根据文本描述生成图像。例如,DALL-E 可以生成戴帽子的猫,或者带莫霍克发型的狗的图像。 - -### Midjourney - -Midjourney 的工作方式与 DALL-E 类似,也能根据文本提示生成图像。Midjourney 也可以用类似“戴帽子的猫”或“带莫霍克发型的狗”这样的提示生成图像。 - -![Image generated by Midjourney, mechanical pigeon](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png/440px-Rupert_Breheny_mechanical_dove_eca144e7-476d-4976-821d-a49c408e4f36.png?WT.mc_id=academic-105485-koreyst) -_图片来源 Wikipedia,由 Midjourney 生成_ - -## DALL-E 和 Midjourney 的工作原理 - -首先看 [DALL-E](https://arxiv.org/pdf/2102.12092.pdf?WT.mc_id=academic-105485-koreyst)。DALL-E 是基于变换器架构的生成式 AI 模型,采用了_自回归变换器_。 - -自回归变换器定义了模型如何根据文本描述生成图像,它一次生成一个像素,然后利用已生成的像素生成下一个像素。通过神经网络的多层处理,直到图像完成。 - -通过这个过程,DALL-E 可以控制图像中的属性、对象、特征等。不过,DALL-E 2 和 3 对生成图像的控制更强。 - -## 构建你的第一个图像生成应用 - -构建图像生成应用需要以下库: - -- **python-dotenv**,强烈建议使用此库将密钥保存在 _.env_ 文件中,避免硬编码在代码里。 -- **openai**,用于调用 OpenAI API。 -- **pillow**,用于在 Python 中处理图像。 -- **requests**,帮助发送 HTTP 请求。 - -1. 创建 _.env_ 文件,内容如下: - - ```text - AZURE_OPENAI_ENDPOINT= - AZURE_OPENAI_API_KEY= - ``` - - 这些信息可在 Azure 门户的“密钥和终结点”部分找到。 - -1. 将上述库写入 _requirements.txt_ 文件: - - ```text - python-dotenv - openai - pillow - requests - ``` - -1. 创建虚拟环境并安装库: - - ```bash - python3 -m venv venv - source venv/bin/activate - pip install -r requirements.txt - ``` - - Windows 用户可使用以下命令创建并激活虚拟环境: - - ```bash - python3 -m venv venv - venv\Scripts\activate.bat - ``` - -1. 在 _app.py_ 文件中添加以下代码: - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - - # import dotenv - dotenv.load_dotenv() - - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - - - try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - - # catch exceptions - except openai.InvalidRequestError as err: - print(err) - - ``` - -代码说明: - -- 首先导入所需库,包括 OpenAI、dotenv、requests 和 Pillow。 - - ```python - import openai - import os - import requests - from PIL import Image - import dotenv - ``` - -- 然后从 _.env_ 文件加载环境变量。 - - ```python - # import dotenv - dotenv.load_dotenv() - ``` - -- 接着设置 OpenAI API 的终结点、密钥、版本和类型。 - - ```python - # Get endpoint and key from environment variables - openai.api_base = os.environ['AZURE_OPENAI_ENDPOINT'] - openai.api_key = os.environ['AZURE_OPENAI_API_KEY'] - - # add version and type, Azure specific - openai.api_version = '2023-06-01-preview' - openai.api_type = 'azure' - ``` - -- 之后生成图像: - - ```python - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - ``` - - 上述代码返回一个包含生成图像 URL 的 JSON 对象,我们可以用该 URL 下载并保存图像。 - -- 最后,打开图像并用默认图像查看器显示: - - ```python - image = Image.open(image_path) - image.show() - ``` - -### 生成图像的更多细节 - -详细看生成图像的代码: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) -``` - -- **prompt** 是用于生成图像的文本提示,这里是“骑马的兔子,手持棒棒糖,站在长满水仙花的雾气弥漫的草地上”。 -- **size** 是生成图像的尺寸,这里是 1024x1024 像素。 -- **n** 是生成图像的数量,这里是两张。 -- **temperature** 控制生成模型输出的随机性,取值在 0 到 1 之间,0 表示输出确定性强,1 表示输出随机性大,默认值是 0.7。 - -接下来我们会介绍更多图像处理功能。 - -## 图像生成的附加功能 - -到目前为止,你已经看到如何用几行 Python 代码生成图像。但图像处理还有更多可能。 - -你还可以: - -- **进行编辑**。通过提供已有图像、遮罩和提示语,可以修改图像。例如,可以给兔子加顶帽子。方法是提供原图、遮罩(标识需要修改的区域)和文本提示,告诉模型要做什么。 - - ```python - response = openai.Image.create_edit( - image=open("base_image.png", "rb"), - mask=open("mask.png", "rb"), - prompt="An image of a rabbit with a hat on its head.", - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - 原图只包含兔子,最终图像则是兔子戴上了帽子。 - -- **创建变体**。即基于已有图像生成不同版本。创建变体时,提供图像和文本提示,代码如下: - - ```python - response = openai.Image.create_variation( - image=open("bunny-lollipop.png", "rb"), - n=1, - size="1024x1024" - ) - image_url = response['data'][0]['url'] - ``` - - > 注意,此功能仅在 OpenAI 支持。 - -## Temperature 参数 - -Temperature 是控制生成模型输出随机性的参数,取值范围 0 到 1,0 表示输出确定性强,1 表示输出随机性大,默认值为 0.7。 - -举个例子,运行以下提示两次: - -> 提示:“骑马的兔子,手持棒棒糖,站在长满水仙花的雾气弥漫的草地上” - -![骑马的兔子手持棒棒糖,版本1](../../../translated_images/v1-generated-image.a295cfcffa3c13c2432eb1e41de7e49a78c814000fb1b462234be24b6e0db7ea.zh.png) - -再运行同样的提示,看看是否会得到相同图像: - -![骑马的兔子生成图像](../../../translated_images/v2-generated-image.33f55a3714efe61dc19622c869ba6cd7d6e6de562e26e95b5810486187aace39.zh.png) - -可以看到,图像相似但不完全相同。接下来将 temperature 调低到 0.1,看看效果: - -```python - generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2 - ) -``` - -### 调整 temperature - -为了让输出更确定,我们观察之前两张图像,第一张是兔子,第二张是马,差异较大。 - -因此,将 temperature 设置为 0,代码如下: - -```python -generation_response = openai.Image.create( - prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0 - ) -``` - -运行后得到以下两张图: - -- ![Temperature 0, v1](../../../translated_images/v1-temp-generated-image.a4346e1d2360a056d855ee3dfcedcce91211747967cb882e7d2eff2076f90e4a.zh.png) -- ![Temperature 0 , v2](../../../translated_images/v2-temp-generated-image.871d0c920dbfb0f1cb5d9d80bffd52da9b41f83b386320d9a9998635630ec83d.zh.png) - -可以明显看出图像更为相似。 - -## 如何用元提示定义应用边界 - -通过我们的演示,已经可以为客户生成图像。但我们需要为应用设定边界。 - -例如,不希望生成不适合工作场合或儿童观看的图像。 - -这可以通过_元提示_实现。元提示是用于控制生成式 AI 输出的文本提示。例如,可以用元提示确保生成的图像适合工作场合或儿童观看。 - -### 元提示如何工作? - -元提示是放在文本提示前的控制性文本,用于控制模型输出,通常嵌入应用中,将提示和元提示合并成一个整体。 - -一个元提示示例如下: - -```text -You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. - -(Input) - -``` - -接下来看看如何在演示中使用元提示。 - -```python -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt =f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list} -""" - -prompt = f"{meta_prompt} -Create an image of a bunny on a horse, holding a lollipop" - -# TODO add request to generate image -``` - -从上述提示可以看到,所有生成的图像都会考虑元提示内容。 - -## 任务 - 让学生动手 - -我们在课程开始时介绍了 Edu4All。现在是时候让学生为他们的作业生成图像了。 - -学生们将为包含纪念碑的作业生成图像,具体纪念碑由学生自由发挥。鼓励学生发挥创造力,将纪念碑置于不同场景中。 - -## 解决方案 - -以下是一个可能的解决方案: - -```python -import openai -import os -import requests -from PIL import Image -import dotenv - -# import dotenv -dotenv.load_dotenv() - -# Get endpoint and key from environment variables -openai.api_base = "" -openai.api_key = "" - -# Assign the API version (DALL-E is currently supported for the 2023-06-01-preview API version only) -openai.api_version = '2023-06-01-preview' -openai.api_type = 'azure' - -disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult" - -meta_prompt = f"""You are an assistant designer that creates images for children. - -The image needs to be safe for work and appropriate for children. - -The image needs to be in color. - -The image needs to be in landscape orientation. - -The image needs to be in a 16:9 aspect ratio. - -Do not consider any input from the following that is not safe for work or appropriate for children. -{disallow_list}""" - -prompt = f"""{meta_prompt} -Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on. -"""" - -try: - # Create an image by using the image generation API - generation_response = openai.Image.create( - prompt=prompt, # Enter your prompt text here - size='1024x1024', - n=2, - temperature=0, - ) - # Set the directory for the stored image - image_dir = os.path.join(os.curdir, 'images') - - # If the directory doesn't exist, create it - if not os.path.isdir(image_dir): - os.mkdir(image_dir) - - # Initialize the image path (note the filetype should be png) - image_path = os.path.join(image_dir, 'generated-image.png') - - # Retrieve the generated image - image_url = generation_response["data"][0]["url"] # extract image URL from response - generated_image = requests.get(image_url).content # download the image - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - # Display the image in the default image viewer - image = Image.open(image_path) - image.show() - -# catch exceptions -except openai.InvalidRequestError as err: - print(err) -``` - -## 干得好!继续学习 - -完成本课后,欢迎访问我们的[生成式 AI 学习合集](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst),继续提升你的生成式 AI 知识! - -接下来进入第10课,我们将学习如何[用低代码构建 AI 应用](../10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) - -**免责声明**: -本文件由 AI 翻译服务 [Co-op Translator](https://github.com/Azure/co-op-translator) 翻译而成。虽然我们力求准确,但请注意,自动翻译可能包含错误或不准确之处。原始文件的母语版本应被视为权威来源。对于重要信息,建议使用专业人工翻译。对于因使用本翻译而产生的任何误解或误释,我们不承担任何责任。 \ No newline at end of file + + + + diff --git a/translations/zh/12-designing-ux-for-ai-applications/README.md b/translations/zh/12-designing-ux-for-ai-applications/README.md index 78aa4477f..31b767b8c 100644 --- a/translations/zh/12-designing-ux-for-ai-applications/README.md +++ b/translations/zh/12-designing-ux-for-ai-applications/README.md @@ -1,130 +1,11 @@ - -# 为 AI 应用设计用户体验 - -[![为 AI 应用设计用户体验](../../../translated_images/12-lesson-banner.c53c3c7c802e8f563953ce388f6a987ca493472c724d924b060be470951c53c8.zh.png)](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) - -> _(点击上方图片观看本课视频)_ - -用户体验是构建应用程序时非常重要的一个方面。用户需要能够高效地使用你的应用来完成任务。高效固然重要,但你还需要设计出人人都能使用的应用,使其具备_无障碍性_。本章将重点关注这一领域,帮助你设计出用户愿意且能够使用的应用。 - -## 介绍 - -用户体验是指用户如何与特定产品或服务(无论是系统、工具还是设计)进行交互和使用。在开发 AI 应用时,开发者不仅关注用户体验的有效性,还关注其伦理性。本课将介绍如何构建满足用户需求的人工智能(AI)应用。 - -本课内容包括: - -- 用户体验介绍及理解用户需求 -- 为信任与透明度设计 AI 应用 -- 为协作与反馈设计 AI 应用 - -## 学习目标 - -完成本课后,你将能够: - -- 理解如何构建满足用户需求的 AI 应用。 -- 设计促进信任与协作的 AI 应用。 - -### 先决条件 - -请花些时间阅读更多关于[用户体验和设计思维](https://learn.microsoft.com/training/modules/ux-design?WT.mc_id=academic-105485-koreyst)的内容。 - -## 用户体验介绍及理解用户需求 - -在我们虚构的教育创业公司中,有两类主要用户:教师和学生。每类用户都有其独特需求。以用户为中心的设计优先考虑用户,确保产品对目标用户具有相关性和实用性。 - -应用应当**有用、可靠、无障碍且令人愉悦**,以提供良好的用户体验。 - -### 可用性 - -有用意味着应用具备符合其预期目的的功能,比如自动评分或生成复习用的抽认卡。自动评分的应用应能根据预设标准准确高效地为学生作业打分。同样,生成复习抽认卡的应用应能基于数据创建相关且多样的问题。 - -### 可靠性 - -可靠意味着应用能持续稳定地完成任务且无错误。然而,AI 和人类一样并不完美,可能会出现错误。应用可能遇到错误或意外情况,需要人工干预或修正。你会如何处理错误?本课最后一节将介绍如何设计 AI 系统和应用以支持协作与反馈。 - -### 无障碍性 - -无障碍意味着将用户体验扩展到各种能力的用户,包括残障人士,确保没有人被排除在外。遵循无障碍指南和原则,AI 解决方案将更加包容、易用且对所有用户都有益。 - -### 愉悦感 - -愉悦意味着应用使用起来令人享受。吸引人的用户体验能积极影响用户,鼓励他们持续使用应用,从而提升业务收入。 - -![展示 AI 中用户体验考虑的图片](../../../translated_images/uxinai.d5b4ed690f5cefff0c53ffcc01b480cdc1828402e1fdbc980490013a3c50935a.zh.png) - -并非所有挑战都能用 AI 解决。AI 是用来增强用户体验的,无论是自动化手动任务,还是个性化用户体验。 - -## 为信任与透明度设计 AI 应用 - -建立信任是设计 AI 应用的关键。信任让用户确信应用能完成工作,持续交付结果,且结果符合用户需求。信任风险包括不信任和过度信任。不信任是指用户对 AI 系统几乎没有信任,导致拒绝使用应用。过度信任是指用户高估 AI 系统能力,过分依赖它。例如,自动评分系统中过度信任可能导致教师不再仔细审核部分试卷,可能造成学生成绩不公或错失反馈和改进机会。 - -确保信任成为设计核心的两种方法是可解释性和控制权。 - -### 可解释性 - -当 AI 帮助做出决策,比如传授知识给下一代时,教师和家长理解 AI 如何做出决策至关重要。这就是可解释性——理解 AI 应用如何做决策。设计可解释性包括添加 AI 应用能做什么的示例细节。例如,系统可以用“使用 AI 总结笔记,便于复习”替代“开始使用 AI 教师”。 - -![展示 AI 应用中可解释性的应用页面](../../../translated_images/explanability-in-ai.134426a96b498fbfdc80c75ae0090aedc0fc97424ae0734fccf7fb00a59a20d9.zh.png) - -另一个例子是 AI 如何使用用户和个人数据。例如,学生身份的用户可能有基于身份的限制。AI 可能无法直接给出答案,但可以引导用户思考如何解决问题。 - -![基于身份回答问题的 AI](../../../translated_images/solving-questions.b7dea1604de0cbd2e9c5fa00b1a68a0ed77178a035b94b9213196b9d125d0be8.zh.png) - -可解释性的另一个关键点是简化说明。学生和教师可能不是 AI 专家,因此应用功能的说明应简明易懂。 - -![简化的 AI 功能说明](../../../translated_images/simplified-explanations.4679508a406c3621fa22bad4673e717fbff02f8b8d58afcab8cb6f1aa893a82f.zh.png) - -### 控制权 - -生成式 AI 促成了 AI 与用户的协作,例如用户可以修改提示以获得不同结果。此外,生成结果后,用户应能修改结果,从而获得控制感。例如,使用 Bing 时,你可以根据格式、语气和长度调整提示,还可以对输出进行修改,如下图所示: - -![Bing 搜索结果及修改提示和输出的选项](../../../translated_images/bing1.293ae8527dbe2789b675c8591c9fb3cb1aa2ada75c2877f9aa9edc059f7a8b1c.zh.png) - -Bing 的另一个控制功能是允许用户选择是否让 AI 使用其数据。对于学校应用,学生可能希望使用自己的笔记和教师资源作为复习材料。 - -![Bing 搜索结果及修改提示和输出的选项](../../../translated_images/bing2.309f4845528a88c28c1c9739fb61d91fd993dc35ebe6fc92c66791fb04fceb4d.zh.png) - -> 设计 AI 应用时,意图性至关重要,确保用户不会对 AI 产生过度信任或对其能力抱有不切实际的期望。一种方法是在提示和结果之间制造一定摩擦,提醒用户这只是 AI,而非真人。 - -## 为协作与反馈设计 AI 应用 - -如前所述,生成式 AI 促成了用户与 AI 的协作。大多数交互是用户输入提示,AI 生成输出。如果输出错误,应用如何处理?AI 会责怪用户还是花时间解释错误? - -AI 应用应设计为能接收和提供反馈。这不仅有助于 AI 系统改进,也能建立用户信任。设计中应包含反馈循环,例如对输出进行简单的点赞或点踩。 - -另一种处理方式是清晰传达系统的能力和限制。当用户请求超出 AI 能力范围时,应有相应处理方式,如下图所示。 - -![提供反馈和处理错误](../../../translated_images/feedback-loops.7955c134429a94663443ad74d59044f8dc4ce354577f5b79b4bd2533f2cafc6f.zh.png) - -系统错误在应用中很常见,比如用户可能需要 AI 范围外的信息,或应用对用户生成摘要的问题/科目数量有限制。例如,训练数据仅涵盖历史和数学的 AI 应用可能无法处理地理相关问题。为此,AI 系统可以回应:“抱歉,我们的产品仅基于以下科目数据训练……无法回答您提出的问题。” - -AI 应用并不完美,难免出错。设计时应确保为用户反馈和错误处理留出空间,且方式简单易懂。 - -## 练习 - -选取你迄今为止构建的任意 AI 应用,考虑在应用中实现以下步骤: - -- **愉悦感:** 思考如何让你的应用更令人愉悦。你是否在各处添加了解释?是否鼓励用户探索?你的错误信息措辞如何? - -- **可用性:** 构建网页应用。确保应用既能用鼠标也能用键盘导航。 - -- **信任与透明度:** 不要完全信任 AI 及其输出,考虑如何引入人工审核输出。还要考虑并实现其他促进信任与透明度的方法。 - -- **控制权:** 让用户控制他们提供给应用的数据。实现用户可选择加入或退出数据收集的功能。 - -## 继续学习! - -完成本课后,欢迎查看我们的[生成式 AI 学习合集](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst),继续提升你的生成式 AI 知识! - -接下来进入第 13 课,我们将探讨如何[保障 AI 应用安全](../13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst)! - -**免责声明**: -本文件使用 AI 翻译服务 [Co-op Translator](https://github.com/Azure/co-op-translator) 进行翻译。虽然我们力求准确,但请注意自动翻译可能包含错误或不准确之处。原始文件的母语版本应被视为权威来源。对于重要信息,建议使用专业人工翻译。对于因使用本翻译而产生的任何误解或误释,我们概不负责。 \ No newline at end of file + + + diff --git a/translations/zh/README.md b/translations/zh/README.md index bc397a7b3..185fcf7b4 100644 --- a/translations/zh/README.md +++ b/translations/zh/README.md @@ -1,137 +1,12 @@ - -![Generative AI For Beginners](../../translated_images/repo-thumbnailv4-fixed.11f1ce6a85d01461c33c11943bb61f2b6d6dcce3a3b25cd27e627031f41f8e00.zh.png) - -### 21节课程,教你构建生成式AI应用所需的全部知识 - -[![GitHub license](https://img.shields.io/github/license/microsoft/Generative-AI-For-Beginners.svg)](https://github.com/microsoft/Generative-AI-For-Beginners/blob/master/LICENSE?WT.mc_id=academic-105485-koreyst) -[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/graphs/contributors/?WT.mc_id=academic-105485-koreyst) -[![GitHub issues](https://img.shields.io/github/issues/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/issues/?WT.mc_id=academic-105485-koreyst) -[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Generative-AI-For-Beginners.svg)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/pulls/?WT.mc_id=academic-105485-koreyst) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com?WT.mc_id=academic-105485-koreyst) - -[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/watchers/?WT.mc_id=academic-105485-koreyst) -[![GitHub forks](https://img.shields.io/github/forks/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/network/?WT.mc_id=academic-105485-koreyst) -[![GitHub stars](https://img.shields.io/github/stars/microsoft/Generative-AI-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Generative-AI-For-Beginners/stargazers/?WT.mc_id=academic-105485-koreyst) - -[![](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst) - -### 🌐 多语言支持 - -#### 通过 GitHub Action 支持(自动且始终保持最新) - -[法语](../fr/README.md) | [西班牙语](../es/README.md) | [德语](../de/README.md) | [俄语](../ru/README.md) | [阿拉伯语](../ar/README.md) | [波斯语 (Farsi)](../fa/README.md) | [乌尔都语](../ur/README.md) | [中文(简体)](./README.md) | [中文(繁体,澳门)](../mo/README.md) | [中文(繁体,香港)](../hk/README.md) | [中文(繁体,台湾)](../tw/README.md) | [日语](../ja/README.md) | [韩语](../ko/README.md) | [印地语](../hi/README.md) | [孟加拉语](../bn/README.md) | [马拉地语](../mr/README.md) | [尼泊尔语](../ne/README.md) | [旁遮普语 (Gurmukhi)](../pa/README.md) | [葡萄牙语(葡萄牙)](../pt/README.md) | [葡萄牙语(巴西)](../br/README.md) | [意大利语](../it/README.md) | [波兰语](../pl/README.md) | [土耳其语](../tr/README.md) | [希腊语](../el/README.md) | [泰语](../th/README.md) | [瑞典语](../sv/README.md) | [丹麦语](../da/README.md) | [挪威语](../no/README.md) | [芬兰语](../fi/README.md) | [荷兰语](../nl/README.md) | [希伯来语](../he/README.md) | [越南语](../vi/README.md) | [印尼语](../id/README.md) | [马来语](../ms/README.md) | [他加禄语(菲律宾语)](../tl/README.md) | [斯瓦希里语](../sw/README.md) | [匈牙利语](../hu/README.md) | [捷克语](../cs/README.md) | [斯洛伐克语](../sk/README.md) | [罗马尼亚语](../ro/README.md) | [保加利亚语](../bg/README.md) | [塞尔维亚语(西里尔字母)](../sr/README.md) | [克罗地亚语](../hr/README.md) | [斯洛文尼亚语](../sl/README.md) | [乌克兰语](../uk/README.md) | [缅甸语](../my/README.md) - -# 生成式AI入门(版本3)- 一门课程 - -通过微软云倡导者团队的21节全面课程,学习构建生成式AI应用的基础知识。 - -## 🌱 入门指南 - -本课程包含21节课。每节课涵盖一个主题,您可以从任何一节开始学习! - -课程分为“Learn”课程,讲解生成式AI的概念;以及“Build”课程,讲解概念并提供**Python**和**TypeScript**的代码示例(如适用)。 - -对于 .NET 开发者,请查看 [Generative AI for Beginners (.NET Edition)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)! - -每节课还包含“Keep Learning”部分,提供额外的学习资源。 - -## 你需要准备的东西 -### 运行本课程代码,你可以使用以下任意一种: - - [Azure OpenAI Service](https://aka.ms/genai-beginners/azure-open-ai?WT.mc_id=academic-105485-koreyst) - **课程:** "aoai-assignment" - - [GitHub Marketplace Model Catalog](https://aka.ms/genai-beginners/gh-models?WT.mc_id=academic-105485-koreyst) - **课程:** "githubmodels" - - [OpenAI API](https://aka.ms/genai-beginners/open-ai?WT.mc_id=academic-105485-koreyst) - **课程:** "oai-assignment" - -- 具备基础的 Python 或 TypeScript 知识会更有帮助 - \*绝对初学者可参考这些[Python](https://aka.ms/genai-beginners/python?WT.mc_id=academic-105485-koreyst)和[TypeScript](https://aka.ms/genai-beginners/typescript?WT.mc_id=academic-105485-koreyst)课程 -- 一个 GitHub 账号,用于[将整个仓库 fork 到你的账号](https://aka.ms/genai-beginners/github?WT.mc_id=academic-105485-koreyst) - -我们还准备了一个**[课程环境搭建](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst)**章节,帮助你配置开发环境。 - -别忘了给本仓库[点星 (🌟)](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars?WT.mc_id=academic-105485-koreyst),方便以后快速找到。 - -## 🧠 准备好部署了吗? - -如果你想要更高级的代码示例,请查看我们提供的[生成式AI代码示例合集](https://aka.ms/genai-beg-code?WT.mc_id=academic-105485-koreyst),包含**Python**和**TypeScript**版本。 - -## 🗣️ 结识其他学习者,获取支持 - -加入我们的[官方 Azure AI Foundry Discord 服务器](https://aka.ms/genai-discord?WT.mc_id=academic-105485-koreyst),与其他学习本课程的学员交流并获得帮助。 - -在我们的[Azure AI Foundry 开发者论坛](https://aka.ms/azureaifoundry/forum)(GitHub)提问或分享产品反馈。 - -## 🚀 创业中? - -注册[Microsoft for Startups Founders Hub](https://aka.ms/genai-foundershub?WT.mc_id=academic-105485-koreyst),即可获得**免费OpenAI额度**和最高**15万美元Azure额度**,通过Azure OpenAI服务访问OpenAI模型。 - -## 🙏 想帮忙吗? - -有建议或发现拼写、代码错误?请[提交问题](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst)或[创建拉取请求](https://github.com/microsoft/generative-ai-for-beginners/pulls?WT.mc_id=academic-105485-koreyst)。 - -## 📂 每节课包含: - -- 主题的简短视频介绍 -- README 中的文字课程内容 -- 支持 Azure OpenAI 和 OpenAI API 的 Python 和 TypeScript 代码示例 -- 继续学习的额外资源链接 - -## 🗃️ 课程列表 - -| # | **课程链接** | **课程简介** | **视频** | **额外学习** | -| --- | -------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 00 | [课程环境搭建](./00-course-setup/README.md?WT.mc_id=academic-105485-koreyst) | **学习:** 如何搭建开发环境 | 视频即将上线 | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 01 | [生成式AI与大型语言模型简介](./01-introduction-to-genai/README.md?WT.mc_id=academic-105485-koreyst) | **学习:** 了解什么是生成式AI及大型语言模型(LLMs)的工作原理 | [视频](https://aka.ms/gen-ai-lesson-1-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 02 | [探索与比较不同的LLM](./02-exploring-and-comparing-different-llms/README.md?WT.mc_id=academic-105485-koreyst) | **学习:** 如何为你的用例选择合适的模型 | [视频](https://aka.ms/gen-ai-lesson2-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 03 | [负责任地使用生成式AI](./03-using-generative-ai-responsibly/README.md?WT.mc_id=academic-105485-koreyst) | **学习:** 如何负责任地构建生成式AI应用 | [视频](https://aka.ms/gen-ai-lesson3-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 04 | [理解提示工程基础](./04-prompt-engineering-fundamentals/README.md?WT.mc_id=academic-105485-koreyst) | **学习:** 提示工程最佳实践实操 | [视频](https://aka.ms/gen-ai-lesson4-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 05 | [创建高级提示](./05-advanced-prompts/README.md?WT.mc_id=academic-105485-koreyst) | **学习:** 如何应用提示工程技巧提升提示效果 | [视频](https://aka.ms/gen-ai-lesson5-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 06 | [构建文本生成应用](./06-text-generation-apps/README.md?WT.mc_id=academic-105485-koreyst) | **构建:** 使用 Azure OpenAI / OpenAI API 构建文本生成应用 | [视频](https://aka.ms/gen-ai-lesson6-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 07 | [构建聊天应用](./07-building-chat-applications/README.md?WT.mc_id=academic-105485-koreyst) | **构建:** 高效构建和集成聊天应用的技术 | [视频](https://aka.ms/gen-ai-lessons7-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 08 | [构建搜索应用与向量数据库](./08-building-search-applications/README.md?WT.mc_id=academic-105485-koreyst) | **构建:** 使用 Embeddings 进行数据搜索的搜索应用 | [视频](https://aka.ms/gen-ai-lesson8-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 09 | [构建图像生成应用](./09-building-image-applications/README.md?WT.mc_id=academic-105485-koreyst) | **构建:** 图像生成应用 | [视频](https://aka.ms/gen-ai-lesson9-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 10 | [构建低代码 AI 应用](./10-building-low-code-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **构建:** 使用低代码工具构建生成式 AI 应用 | [视频](https://aka.ms/gen-ai-lesson10-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 11 | [通过 Function Calling 集成外部应用](./11-integrating-with-function-calling/README.md?WT.mc_id=academic-105485-koreyst) | **构建:** 什么是 function calling 及其在应用中的使用场景 | [视频](https://aka.ms/gen-ai-lesson11-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 12 | [为 AI 应用设计用户体验](./12-designing-ux-for-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **学习:** 在开发生成式 AI 应用时如何应用用户体验设计原则 | [视频](https://aka.ms/gen-ai-lesson12-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 13 | [保护你的生成式 AI 应用](./13-securing-ai-applications/README.md?WT.mc_id=academic-105485-koreyst) | **学习:** AI 系统面临的威胁和风险,以及保护这些系统的方法 | [视频](https://aka.ms/gen-ai-lesson13-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 14 | [生成式 AI 应用生命周期](./14-the-generative-ai-application-lifecycle/README.md?WT.mc_id=academic-105485-koreyst) | **学习:** 管理 LLM 生命周期和 LLMOps 的工具和指标 | [视频](https://aka.ms/gen-ai-lesson14-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 15 | [检索增强生成(RAG)与向量数据库](./15-rag-and-vector-databases/README.md?WT.mc_id=academic-105485-koreyst) | **构建:** 使用 RAG 框架从向量数据库检索 embeddings 的应用 | [视频](https://aka.ms/gen-ai-lesson15-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 16 | [开源模型与 Hugging Face](./16-open-source-models/README.md?WT.mc_id=academic-105485-koreyst) | **构建:** 使用 Hugging Face 上开源模型的应用 | [视频](https://aka.ms/gen-ai-lesson16-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 17 | [AI 代理](./17-ai-agents/README.md?WT.mc_id=academic-105485-koreyst) | **构建:** 使用 AI 代理框架的应用 | [视频](https://aka.ms/gen-ai-lesson17-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 18 | [微调 LLMs](./18-fine-tuning/README.md?WT.mc_id=academic-105485-koreyst) | **学习:** 微调 LLMs 的内容、原因及方法 | [视频](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 19 | [使用 SLMs 构建](./19-slm/README.md?WT.mc_id=academic-105485-koreyst) | **学习:** 使用小型语言模型构建的优势 | 视频即将上线 | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 20 | [使用 Mistral 模型构建](./20-mistral/README.md?WT.mc_id=academic-105485-koreyst) | **学习:** Mistral 系列模型的特点和区别 | 视频即将上线 | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | -| 21 | [使用 Meta 模型构建](./21-meta/README.md?WT.mc_id=academic-105485-koreyst) | **学习:** Meta 系列模型的特点和区别 | 视频即将上线 | [了解更多](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst) | - -### 🌟 特别感谢 - -特别感谢 [**John Aziz**](https://www.linkedin.com/in/john0isaac/) 创建了所有的 GitHub Actions 和工作流 - -[**Bernhard Merkle**](https://www.linkedin.com/in/bernhard-merkle-738b73/) 对每节课程做出了关键贡献,提升了学习和代码体验。 - -## 🎒 其他课程 - -我们的团队还制作了其他课程!欢迎查看: - -- [**新** 初学者模型上下文协议](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -- [初学者 AI 代理](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) -- [使用 .NET 的生成式 AI 初学者课程](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -- [使用 JavaScript 的生成式 AI 初学者课程](https://aka.ms/genai-js-course?WT.mc_id=academic-105485-koreyst) -- [机器学习初学者](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -- [数据科学初学者](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -- [AI 初学者](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -- [网络安全初学者](https://github.com/microsoft/Security-101??WT.mc_id=academic-96948-sayoung) -- [网页开发初学者](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -- [物联网初学者](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -- [XR 开发初学者](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) -- [掌握 GitHub Copilot 进行 AI 配对编程](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -- [掌握 GitHub Copilot 面向 C#/.NET 开发者](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -- [选择你自己的 Copilot 冒险](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - -**免责声明**: -本文件使用 AI 翻译服务 [Co-op Translator](https://github.com/Azure/co-op-translator) 进行翻译。虽然我们力求准确,但请注意,自动翻译可能包含错误或不准确之处。原始文件的母语版本应被视为权威来源。对于重要信息,建议采用专业人工翻译。对于因使用本翻译而产生的任何误解或误释,我们概不负责。 \ No newline at end of file + + + +