Јединица 12 / 12

Границе: безбедност, приватност, лиценца и етика

Добици:

  • Способност препознавања и верификације да АИ може произвести лажне АПИ-је, несигуран код и садржај заштићен ауторским правима
  • Способност управљања употребом вештачке интелигенције у границама поверљивости изворног кода, личних података и корпоративне политике
  • Разумевање да крајња одговорност за усклађеност лиценце, безбедност и етику остаје на инжењеру.

Модул Екам

1. Као рачунарски инжењер, када радите са алатом за генерисање АИ кода, крајња одговорност за шта од следећег увек треба да остане на човеку?

  • А) Коначно одобрење исправности, сигурности и преглед и тестирање кода пуштеног у производњу ✔
  • Б) Креирање првог скелета кода за функцију
  • Ц) Израда листе предлога за имена променљивих
  • Д) Припрема нацрта текста за коментаре кода

Опис: АИ; Може да убрза задатке као што су скелет кода, нацрт теста и документација. Међутим, одговорност је инжењера да прегледа, тестира и одобри генерисани код како би се уверио да је исправан, безбедан и у складу са захтевима, и да га пусти у производњу; ово не може бити делегирано АИ без независне провере.

2. АИ је произвела функцију за вас и чини се да ради на срећном путу. Који је најбољи корак пре него што га ставите у производњу?

  • А) Пошто се чини да функција функционише, ставите је директно у производњу
  • Б) Проверите понашање писањем и покретањем малих јединичних тестова који укључују рубне случајеве ✔
  • Ц) Само гледајући број линија функције
  • Д) Учинити назив функције описнијим

Објашњење: Појавити се на послу не значи бити у праву. Писање и покретање малих јединичних тестова који покривају рубне случајеве као што су празан унос, нула, негативна, веома велика вредност и неподударање верификује стварно понашање функције без премештања у живо окружење.

3. АИ је предложио метод под називом 'арраи.сортСтабле()' који не постоји на вашем језику и објаснио га на јасан начин. Која је прва исправна радња коју треба предузети?

  • А) Коришћење методе директно јер АИ делује самоуверено
  • Б) Сами дефинишите методу и тачно употребите њен назив
  • Ц) Провера постојања методе из службене документације језика/библиотеке ✔
  • Д) Затворите упозорење компајлера и наставите

Објашњење: Језички модели могу уверљиво да сачињавају имена библиотека, пакета или метода која заправо не постоје (халуцинирају). Сваки предложени АПИ треба дословно да се верификује у односу на званичну и актуелну документацију језика или библиотеке; Ако није укључен у документ, не треба га користити.

4. Желите да налепите поверљиви изворни код ваше компаније и уграђени АПИ кључ у јавни алат за вештачку интелигенцију и затражите помоћ. Који је најисправнији приступ?

  • А) Лепљење кода какав јесте са АПИ кључем ради брзине
  • Б) Довољно је само избрисати назив компаније и поделити све остало
  • Ц) Дељење кода и затим тражење од АИ да га избрише
  • Д) Уклањање тајни и скривене логике и свођење проблема на репрезентативан пример или коришћење институционалног алата ✔

Опис: Тајни изворни код и акредитиви (АПИ кључ, лозинка, низ везе); Ризично је у погледу компанијске тајне и безбедности. Неопходно је оголити тајне и скривену пословну логику и проблем свести на анонимни/репрезентативни пример или користити алат за дељење предузећа/не-података.

5. АИ је рекао да је сложеност функције претраживања коју је написао била О(н); али постоје две угнежђене петље у коду. Које је исправно инжењерско понашање?

  • А) Ручно анализирајте код и сами издвојите сложеност и измерите је ако је потребно ✔
  • Б) Прихватите О(н) и наставите јер је АИ рекао
  • Ц) Под претпоставком да број циклуса нема никакве везе са перформансама
  • Д) Само промените назив функције

Објашњење: Временска сложеност (Биг-О) показује како се број операција повећава како улаз расте. Две угнежђене петље обично значе О(н^2). Тврдња о сложености АИ треба да се верификује ручном анализом кода и мерењем уз повећање уноса ако је потребно; Ослањање на тврдњу производи погрешну претпоставку учинка.

6. АИ генерисан код који директно убацује кориснички унос у СКЛ упит спајањем текста. Шта је овде главни проблем и право решење?

  • А) Нема проблема; спајање текста је најбржи метод
  • Б) Постоји ризик од СКЛ ињекције; Треба користити параметризовани упит (припремљени исказ) који одваја улаз ✔
  • Ц) Довољно је само претварање упита у велика слова
  • Д) Краће писање упита решиће проблем

Опис: Додавање корисничког уноса директно у текст упита ствара рањивост СКЛ ињекције; Нападач може да измени упит помоћу уноса. Исправно решење је коришћење параметаризованог упита (припремљеног израза) који одваја унос од текста упита. Ово је једна од најчешће пропуштених безбедносних грешака у АИ коду.

7. Имате ограничено време када прегледате део кода који је произвела АИ. Којим питањима је најбоље дати приоритет?

  • А) Само форматирајте детаље као што су увлачење и размак
  • Б) Само дужина имена променљивих
  • Ц) Логичка исправност, рањивости и понашање рубних случајева ✔
  • Д) Само укупан број редова датотеке

Опис: Највећи ризик у прегледу кода; То су проблеми који узрокују озбиљну штету, као што су логичке грешке, безбедносне рањивости и цурење поверљивих информација. Проблеми са форматом и стилом се решавају аутоматским алатима; Главна људска пажња треба да буде посвећена прецизности, безбедности и понашању ивица.

8. Желите да АИ реши грешку. Који унос би најбоље помогао АИ да пронађе основни узрок?

  • А) Само кажем 'код не ради, поправи га'
  • Б) Само дајте име датотеке
  • Ц) Само кажем очекивани резултат, без текста грешке
  • Д) Наведите пуну поруку о грешци, праћење стека, релевантан код и пример минималне репродукције ✔

Објашњење: За ефикасно отклањање грешака, потребно је АИ дати пуну поруку о грешци, праћење стека, релевантни исјечак кода и најмањи поновљиви узорак који производи грешку. Нејасна изјава „не ради“ приморава АИ да нагађа и даје опште препоруке.

9. Сви тестови јединица произведени од стране АИ пролазе при првом покретању. Који ризик не треба занемарити у овој ситуацији?

  • А) Тестови могу потврдити тренутно стање кода, али не и стварно/очекивано понашање ✔
  • Б) Код је апсолутно без грешака јер су сви тестови прошли
  • Ц) Квалитет је загарантован ако је број тестова велики
  • Д) Полагање теста доказује да је покривеност потпуна

Објашњење: Тестови можда потврђују тренутно (можда грешку) понашање кода, а не његово планирано понашање; или можда не садржи никакву значајну тврдњу и увек се преноси. Да бисте видели да тестови проверавају реално очекивање, потребно је свесно разбити код и потврдити да је тест постао црвен.

10. АИ вам је произвела готов блок кода за проблем. Сумњате да је код можда дословно копиран из пројекта отвореног кода. Који је прави приступ?

  • А) Коришћење лиценце без размишљања јер код ради
  • Б) Провера извора/лиценце кода, преписивање ако је потребно и усклађеност са корпоративном политиком ✔
  • Ц) Само промените имена променљивих и сматрајте да је проблем решен
  • Д) Под претпоставком да се лиценцирање тиче само великих компанија

Опис: АИ може дословно да репродукује заштићени/лиценцирани код у подацима о обуци. Кршење лиценце у комерцијалном производу ствара озбиљне правне ризике. Неопходно је проверити извор и лиценцу кода, преписати га својим речима ако је потребно и придржавати се политике лиценцирања институције.

11. АИ је предложио да одмах пређете на архитектуру микросервиса за ваш пројекат. Који је најприкладнији инжењерски приступ када се оцењује овај предлог?

  • А) Одмах поделите цео систем на микросервисе јер АИ предлаже
  • Б) Под претпоставком да је микросервис увек најбољи избор
  • Ц) Оцените предлог према стварним потребама, оптерећењу, структури тима и плус-минус балансу ✔
  • Д) Доношење одлуке искључиво на основу популарности архитектуре

Објашњење: Архитектонске одлуке зависе од контекста; Микроуслуге додају вредност потребама као што су обим и раздвајање тима, али долазе са трошковима као што су оперативна сложеност, дистрибуирано отклањање грешака и цена. Процените предлог према стварним потребама, оптерећењу, структури тима и равнотежи између предности и недостатака; Опште савете не треба слепо следити.

12. АИ је произвела поједностављену РЕАДМЕ и АПИ документацију за ваш код; али се неке крајње тачке и параметри не поклапају у коду. Шта је исправно понашање?

  • А) Објављивање документа какав јесте јер је текст течан
  • Б) Само поправи наслов и оставите остало како јесте
  • Ц) Додавање документа у складиште без читања
  • Д) Упоредите сваку крајњу тачку и параметар са стварним кодом и поправите све који се не подударају ✔

Опис: Документација треба да буде тачан одраз стварног кода; Погрешан документ гура програмере који су га прочитали да га погрешно користе. Свака крајња тачка, параметар и повратна вредност треба да се верификују у односу на стварни код, а све неподударности треба да буду исправљене.

13. Који приступ уносу је прави за најквалитетнији излаз када се захтева код од АИ?

  • А) Јасно навођење језика/верзије, улазно-излазног уговора, ограничења и грешака ✔
  • Б) Само кажем 'напиши ми неки радни код'
  • Ц) Напишите најкраћи захтев без давања контекста
  • Д) Само наведите колико ће линија кода бити

Опис: Снажан промпт; То укључује језик и верзију која се користи, улазно-излазни уговор, ограничења перформанси и стила, услове грешке и инструкцију „останите само у траженом опсегу“. Захтев без контекста „напиши ми функцију“ је генерички и често производи неприкладан код.

14. АИ је генерисао конфигурацију за ваш ЦИ/ЦД (континуирана интеграција/примену) цевовод и уградио лозинку базе података у њу у облику обичног текста. Које је исправно решење?

  • А) Оставите лозинку као обичан текст јер функционише
  • Б) Премештање тајни преко променљиве окружења или алата за управљање тајнама, а не стављања отвореног текста у спремиште ✔
  • Ц) Померите лозинку само у ред за коментаре
  • Д) Промена назива датотеке решава проблем

Објашњење: Писање тајни као што су лозинке и кључеви у обичном тексту у конфигурациону датотеку представља ризик од цурења контроле верзија и неовлашћеног приступа. Сецретс; Требало би да га чувају променљиве окружења или посебан менаџер тајни и никада не би требало да улази у спремиште у облику обичног текста.