Единица 12 / 12

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

Добивки:

  • Способност да се препознае и да се потврди дека вештачката интелигенција може да произведе лажни API, небезбеден код и содржина заштитена со авторски права
  • Способност за управување со употребата на вештачка интелигенција во границите на доверливоста на изворниот код, личните податоци и корпоративната политика
  • Разбирање дека крајната одговорност за усогласеноста со лиценцата, безбедноста и етиката останува на инженерот.

Модул испит

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

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

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

2. Вештачката интелигенција создаде функција за вас и се чини дека работи на среќниот пат. Кој е најдобриот чекор пред да го ставите во производство?

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

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

3. AI предложи метод наречен „array.sortStable()“ кој не постои во вашиот јазик и го објасни на јасен начин. Која е првата правилна акција што треба да се преземе?

  • А) Директно користење на методот бидејќи вештачката интелигенција изгледа самоуверена
  • Б) Дефинирајте го методот сами и употребете го точно неговото име
  • В) Потврдување на постоењето на методот од официјалната документација на јазикот/библиотеката ✔
  • Г) Затворете го предупредувањето за компајлерот и продолжете

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

4. Сакате да го залепите доверливиот изворен код на вашата компанија и вграден клуч API во јавна алатка за вештачка интелигенција и да побарате помош. Кој е најправилниот пристап?

  • А) Вметнување на кодот како што е со копчето API за брзина
  • Б) Доволно е само да го избришете името на компанијата и да споделите сè друго
  • В) Споделување на кодот и потоа барање на вештачката интелигенција да го избрише
  • Г) Отстранување тајни и скриена логика и сведување на проблемот на репрезентативен пример или користење институционална алатка ✔

Опис: Таен изворен код и ингеренциите (клуч API, лозинка, низа за поврзување); Тоа е ризично во однос на тајната и безбедноста на компанијата. Неопходно е да се отстранат тајните и скриената деловна логика и да се намали проблемот на анонимен/репрезентативен пример или да се користи алатка за споделување на претпријатие/неподатоци.

5. АИ рече дека сложеноста на функцијата за пребарување што ја напишал е O(n); но има две вгнездени јамки во кодот. Кое е правилното инженерско однесување?

  • А) Анализирајте го кодот рачно и сами извлечете ја сложеноста и измерете ја доколку е потребно ✔
  • Б) Прифатете O(n) и продолжете бидејќи вештачката интелигенција рече
  • В) Претпоставката дека бројот на циклуси нема никаква врска со перформансите
  • Г) Само сменете го името на функцијата

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

6. Код генериран со вештачка интелигенција кој директно го вметнува корисничкиот влез во SQL барањето со поврзување на текст. Кој е тука главниот проблем и вистинското решение?

  • А) Нема проблем; Спојувањето на текст е најбрзиот метод
  • Б) Постои ризик од инјектирање на SQL; Треба да се користи параметризирано барање (подготвена изјава) што го одвојува влезот ✔
  • В) Доволно е само конвертирање на барањето во големи букви
  • Г) Со пократко пишување на барањето ќе се реши проблемот

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

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

  • А) Форматирајте само детали како што се вовлекување и растојание
  • Б) Само должината на имињата на променливите
  • В) Логичка исправност, ранливости и однесување на рабовите ✔
  • Г) Само вкупниот број на редови од датотеката

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

8. Сакате вештачката интелигенција да реши грешка. Кој влез најдобро би ѝ помогнал на вештачката интелигенција да ја најде основната причина?

  • А) Само велејќи „кодот не работи, поправете го“
  • Б) Само наведете го името на датотеката
  • В) Само кажување на очекуваниот резултат, без текстот на грешката
  • Г) Обезбедете целосна порака за грешка, трага на стек, релевантен код и минимален пример за репродукција ✔

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

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

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

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

10. Вештачката интелигенција ви создаде готов блок код за проблем. Се сомневате дека кодот можеби е копиран дословно од проект со отворен код. Кој е вистинскиот пристап?

  • А) Користење на лиценцата без размислување бидејќи кодот работи
  • Б) Проверка на изворот/лиценцата на кодот, препишување доколку е потребно и усогласеност со корпоративната политика ✔
  • В) Само сменете ги имињата на променливите и сметајте го проблемот решен
  • Г) Под претпоставка дека лиценцирањето се однесува само на големите компании

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

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

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

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

12. Вештачката интелигенција произведе рационализација на README и API документација за вашиот код; но некои крајни точки и параметри не се совпаѓаат во кодот. Кое е правилното однесување?

  • А) Објавување на документот како што е затоа што текстот е течен
  • Б) Само поправете го насловот и оставете го остатокот како што е
  • В) Додавање на документот во магацинот без да се прочита
  • Г) Споредете ја секоја крајна точка и параметар со вистинскиот код и поправете ги оние што не се совпаѓаат ✔

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

13. Кој влезен пристап е правилен за излез со највисок квалитет кога се бара код од вештачка интелигенција?

  • А) Јасно обезбедување јазик/верзија, влезно-излезен договор, ограничувања и ситуации на грешки ✔
  • Б) Само велејќи „напиши ми некој работен код“
  • В) Напишете го најкраткото барање без да дадете никаков контекст
  • Г) Само специфицирање колку линии код ќе има

Опис: Моќен потсетник; Ги вклучува употребените јазик и верзија, договор за влез-излез, ограничувања за изведба и стил, услови за грешка и инструкција „остани само во бараниот опсег“. Барањето без контекст „напиши ми функција“ е генеричко и често произведува несоодветен код.

14. Вештачката интелигенција генерира конфигурација за вашиот гасовод CI/CD (континуирана интеграција/распоредување) и ја вгради лозинката на базата на податоци во неа во обичен текст. Која е вистинската поправка?

  • А) Оставање на лозинката како обичен текст затоа што работи
  • Б) Преместување на тајните преку променлива на околината или алатка за управување со тајни, не ставање обичен текст во складиштето ✔
  • В) Преместете ја лозинката само во линијата за коментари
  • Г) Промената на името на датотеката го решава проблемот

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