Faida:
- Uwezo wa kuelezea jinsi msaidizi wa utunzi hufanya kazi kama kielelezo cha lugha na dhana ya ishara, dirisha la muktadha, ndoto.
- Uwezo wa kutofautisha kazi za programu ambapo AI ni nguvu na dhaifu na ramani ya akili
- Uwezo wa kutumia mzunguko wa msingi wa kazi wa propose-produce-verify kwa kazi zao wenyewe
Siku ya msanidi programu haitumiwi "kuandika nambari kutoka mwanzo." Wakati halisi; Kusoma msimbo ulioandikwa na mtu mwingine, kujaribu kuzalisha mdudu, skanning logi (mistari ya logi inayozalishwa na programu wakati wa kukimbia), kuandika vipimo, kuandika PR (ombi la kuvuta - ombi la kuunganisha ambapo mabadiliko ya kanuni yanawasilishwa kwa ukaguzi wa timu) maelezo na uppdatering nyaraka. Akili Bandia (AI) ni kiongeza kasi ambacho kinaweza kugusa takriban kazi hizi zote zisizoonekana. Lakini hali ya kwanza ya kuitumia kwa usalama ni kuelewa kwa usahihi ni nini na sio nini.
Katika kitengo hiki, kwanza tunaelezea teknolojia ya msingi ya msaidizi wa usimbaji katika lugha nyepesi; basi tunaunda ramani ya akili ya nguvu na udhaifu wa mfano; Hatimaye, tunaanzisha nidhamu ya msingi ya kufanya kazi ambayo tutatumia katika moduli nzima: kupendekeza, kuzalisha, kuthibitisha. Hatua hizi tatu ni uti wa mgongo wa vitengo kumi na moja vinavyofuata.
Kumbuka: Moduli hii ni mafunzo ya jumla. Katika programu muhimu zaidi za usalama (uchakataji wa malipo, huduma ya afya, uthibitishaji, miundombinu muhimu) matokeo ya AI si mbadala wa kukaguliwa na kuidhinishwa na mhandisi aliyehitimu. AI ni msaidizi; Aliyetia saini ni mhandisi.
Je! Msaidizi wa Usimbaji Hufanya Nini Kweli?
Wasaidizi wengi wa usimbaji hujengwa juu ya modeli kubwa ya lugha (LLM—AI iliyofunzwa kwa idadi kubwa ya maandishi na msimbo ambayo inatabiri "chunk" inayofuata zaidi). Mfano "haelewi" kanuni kama mwanadamu; Hutoa mwendelezo unaowezekana zaidi wa muktadha unaoupa, kulingana na mifumo inayojifunza kutoka kwa mifano mingi. Utaratibu huu unaoonekana kuwa rahisi hutoa matokeo ya ustadi wa kushangaza - kwa sababu programu nyingi huwa na muundo unaojirudia: ombi la HTTP, kitanzi, ukaguzi usiofaa, muundo wa majaribio.
Maneno matatu ni muhimu hapa. Ishara ni kitengo kidogo zaidi ambacho kielelezo huchakata kwa kugawanya maandishi; Ni takriban herufi chache au sehemu ya neno. Dirisha la muktadha ni kiasi cha ishara ambazo mtindo unaweza "kuona" mara moja; Msimbo wako, ujumbe wa hitilafu na maagizo lazima yatoshee kwenye dirisha hili. Kidokezo ni maagizo na muktadha wote unaopeana modeli. Ubora wa pato unayopata inategemea moja kwa moja juu ya haya mawili: muktadha bora na maagizo ya wazi zaidi unayotoa mfano, matokeo bora utapata. Ingizo mbovu hutoa matokeo mabaya, hata kama ni muundo mahiri - kanuni ya kawaida ya programu ya "kutupa takataka, taka" inatumika pia kwa AI.
Ramani ya Nguvu na Udhaifu
Ili kuelekeza AI kwa kazi zinazofaa, ni muhimu kujua ni wapi inaangaza na wapi inajikwaa. Kukariri ramani hii kutakufanya ujiulize kwa kila misheni inayofuata, "Je, nitoe kazi hii kwa AI au niifanye mwenyewe?" Inakuruhusu kujibu swali kwa sekunde.
Nguvu zake ni: Kuzalisha msimbo wa boilerplate, kutafsiri kutoka lugha moja hadi nyingine, kuandika usemi wa kawaida (regex), kuelezea kazi, kuunda mifupa ya mtihani, kutafsiri ujumbe wa makosa, kuandika nyaraka, kupendekeza majina ya kutofautiana / kazi, na refactorings ndogo (kuboresha muundo wa kanuni bila kubadilisha tabia yake).
Udhaifu: Kujua sheria za biashara mahususi za kampuni yako, kukumbuka msingi wako wote wa msimbo, kuendesha na kuthibitisha msimbo, kujua matoleo mapya zaidi ya maktaba kwa uhakika, kugundua udhaifu wa kiusalama kwa dhamana ya asilimia mia moja. Jambo la hatari zaidi ni ndoto: mfano huvumbua kazi isiyokuwepo, maktaba au API (interface inayowezesha kubadilishana data kati ya programu) katika lugha ya kushawishi sana. Hatari hii inaweza kugeuzwa kuwa faida yako, kwa kuwa msimbo, tofauti na maandishi wazi, unaweza kujaribiwa ili kuona kama "inafanya kazi" - usiruke tu hatua ya uthibitishaji.
Aina ya misheni
Jukumu la AI
jukumu la mwanaume
Tengeneza boilerplate/mifupa
inazalisha rasimu
Hurekebisha, hakiki
Maelezo ya kanuni
Inatoa muhtasari wa haraka
Inathibitisha sehemu muhimu katika msimbo
kuandika mitihani
Kesi inapendekeza
Inathibitisha chanjo na usahihi
Mantiki muhimu ya usalama
wazo la kusaidia
Uamuzi na uwajibikaji hutegemea kabisa wanadamu.
API/matumizi ya maktaba
Huzalisha sampuli
Inathibitisha kuwepo na toleo
uamuzi wa usanifu
Aina ya chaguzi
Huchagua na kutetea kujua muktadha
Hatua kwa Hatua: Mzunguko wa Msingi wa Kufanya Kazi
- Fafanua kazi. Ikiwa huwezi kuandika unachotaka katika sentensi moja, na mfano hauwezi. Kutokuwa na uhakika mapema huingia kwenye pembejeo, ndivyo inavyokua katika pato.
- Toa muktadha. Ongeza msimbo husika, ujumbe kamili wa hitilafu, toleo la lugha/mfumo na vikwazo kwenye kidokezo. Usiseme "rekebisha hii", sema "Python 3.11, FastAPI 0.110; kazi hii inatoa hitilafu 500, hulipuka wakati mwili wa ombi hauna tupu".
- Jukumu la kulazimisha na muundo. Mfumo kama vile "Wewe ni msanidi mkuu wa Go; toa tu msimbo na mantiki ya sentensi mbili" hulenga matokeo.
- Uliza ndogo. Igawanye katika hatua badala ya ombi moja kubwa; Thibitisha kila hatua kivyake. Mabadiliko makubwa ni hatari kwa sababu ni vigumu kuthibitisha na kukabiliwa na kuficha makosa.
- Thibitisha. Ikimbie, ijaribu, isome kwa macho. Msimbo wa AI ambao haujathibitishwa ni "mchoro", sio "suluhisho". Hii ndiyo hatua isiyoweza kujadiliwa zaidi ya mzunguko.
Kesi Tatu Ndogo
Kesi ya 1 - Uokoaji wa wakati ni halisi lakini wa kawaida. Wakati timu iliunganisha ncha mpya za CRUD (Tengeneza-Kusoma-Sasisha-Futa) kwa kutumia AI, muda wa rasimu ya kwanza ulishuka kutoka takriban dakika 40 hadi dakika 8. Hata hivyo, kwa mapitio na majaribio, muda wote ulikuwa dakika 25; kwa hivyo faida halisi ni kutoka 40 hadi 25, karibu 38%. Kiwango hiki, kilichopimwa badala ya matarajio ya "tumeongeza kasi mara 10", ni faida endelevu.
Kesi ya 2 - Udanganyifu ni wa gharama kubwa. Msanidi programu alitumia simu ya AI-suggested requests.get_json() bila uthibitisho; Hakukuwa na mbinu kama hiyo (just response.json()). Dakika 20 zilipotea wakati msimbo haukuundwa. Rahisi "je, njia hii ipo kweli?" uthibitishaji ungeweka upya upotevu.
Kesi ya 3 - Muktadha mzuri huongeza pato maradufu. Kwa hitilafu hiyo hiyo, msanidi programu mmoja aliandika tu "Ninapata hitilafu" na mwingine aliongeza ufuatiliaji kamili wa rafu, toleo, na sampuli ya ingizo. Wa mwisho walipata suluhisho sahihi kwenye jaribio la kwanza; Wa kwanza alitumia zamu tatu. Tofauti haikuwa katika mfano, lakini katika pembejeo.
Violezo Vinne Vinakiliwa
Madhumuni ya jumla, arifa ya kuanza yenye nguvu:
Jukumu: Wewe ni msanidi programu mwenye uzoefu wa {{lugha}}.Kazi: {{what_want}}Muktadha:- Mfumo/toleo: {{framework_and_version}}- Vikwazo: {{utendaji, mtindo, kanuni za utegemezi}}Kanuni:- Usitumie maktaba/kazi ambayo haipo; Ikiwa huna uhakika, itie alama kama "thibitisha". - Kwanza, toa mpango mfupi, kisha msimbo, kisha sentensi 2 za kuhesabiwa haki. - Tengeneza nambari inayoweza kujaribiwa, ya kufanya kazi.
Ili kuchuja kutokuwa na uhakika kurudi kwenye mfano:
Kabla ya kutatua kazi iliyo hapa chini, orodhesha ANGALAU pointi 3 ambazo unaona hazipo au hazieleweki kama maswali. USIANDIKE msimbo kabla sijajibu.Task: {{task}}
Ili kujiangalia pato:
Umetoa msimbo ufuatao. Sasa badilisha jukumu lako na ukosoa misimbo hii:- Orodhesha kesi 3 (kesi za makali) ambazo huenda zisifanye kazi.- Je, kuna API/huduma zozote ambazo ungeweza kutengeneza? Weka alama.- Toa toleo lililosahihishwa.Msimbo:{{code}}
Ili kugawanya uamuzi katika chaguzi:
Pendekeza mbinu 2-3 za utatuzi wa {{tatizo}}. Kwa kila: maelezo mafupi, plus/minus, wakati wa kuchagua. Toa kwa namna ya jedwali. USINICHAGUE; fafanua tu chaguo.
Agizo dhaifu / Ukumbusho thabiti
Dhaifu: "Rekebisha hitilafu katika msimbo huu." (Kosa lipi? Lugha gani? Tabia inayotarajiwa ni ipi?)
Nguvu: "Python 3.11 / FastAPI 0.110. Mwisho ufuatao unarudisha 500 na KeyError wakati mwili wa ombi unakuja tupu; nataka irudishe 400 na ujumbe wa maana kwenye mwili tupu. Kwanza eleza sababu, kisha utoe kazi iliyosahihishwa, kisha uandike jaribio la hali hii. [code] "
Toleo la nguvu; Inatoa lugha, toleo, makosa halisi, tabia inayotarajiwa na umbizo la towe. Mfano hauhitaji tena kutabiri.
Makosa ya kawaida
- Kuamini bila uthibitishaji. Makosa ya kawaida na ya gharama kubwa zaidi. Usiseme "imetatuliwa" hadi nambari itungwe na kujaribiwa.
- Kuuliza maswali bila muktadha. Jibu bila toleo, maandishi ya makosa na vizuizi ni vya kawaida na mara nyingi sio sawa.
- Ombi moja kubwa. Kutoweza kuomba na kukagua uzalishaji wa laini 300 mara moja hufanya makosa kutoonekana.
- Kukosea kujiamini kwa mwanamitindo kama thibitisho. AI inaweza kusema kitu kibaya kwa ujasiri; Toni sio kiashiria cha usahihi.
- Kubandika siri ya kampuni bila mpangilio. Funguo za kibinafsi, data ya mteja au msimbo wa chanzo binafsi haipaswi kuingizwa kwenye zana ambazo hazijaidhinishwa (tutachunguza mada hii katika kitengo cha 10).
Kidokezo: Tumia kila pato la AI kama "hii ni rasimu." Tabia hii moja ya kiakili huzima hatari nyingi utakazoona katika moduli nzima.
Kwa muhtasari
Msaidizi wa usimbaji ni modeli ya lugha inayotabiri kipande kinachofuata kinachowezekana; Haielewi msimbo, hutoa mifumo. Ndiyo maana ana nguvu katika kazi zinazorudiwa-rudiwa, za fomula; Inapaswa kutumiwa kwa tahadhari kwa kazi inayohitaji uthibitishaji ambao ni mahususi kwa muktadha wako. Hatari kubwa ni ndoto, na dawa pekee ni uthibitishaji. Nidhamu tutakayofuata katika moduli nzima iko wazi: fafanua kazi, toa muktadha, uliza ndogo, thibitisha kila kinachoweza kutolewa.
Jukumu la maombi
Andika kazi tatu za programu ulizofanya katika wiki iliyopita (k.m. kurekebisha hitilafu, jaribio, sasisho la README). Angalia "ramani ya nguvu na udhaifu" kwa kila moja na ueleze kwa sentensi moja jukumu lako na la AI lingekuwa nini ikiwa ungekuwa na AI kufanya hivi. Kisha toa moja ya kazi hizi kwa AI na kiolezo cha "anza haraka" hapo juu na uendeshe na uthibitishe matokeo; Kumbuka ni dakika ngapi umehifadhi na ni makosa mangapi ulipaswa kurekebisha.
orodha ya ukaguzi
- [ ] Niligundua kuwa LLM hutoa ruwaza, sio "kuelewa" msimbo.
- [ ] Ninaweza kueleza dhana za ishara, dirisha la muktadha na msukumo katika sentensi moja.
- [ ] Ninaweza kutofautisha kati ya aina za kazi ambapo AI ni imara na dhaifu.
- [ ] Ninajua maono ni nini na dawa pekee ni uthibitishaji.
- [ ] Nilirekebisha mzunguko wa "pendekeza, toa, thibitisha" kwa kazi yangu mwenyewe.
- [ ] Ninaweza kuonyesha tofauti kati ya kidokezo chenye nguvu na kidokezo dhaifu katika mfano halisi.