(Bonyeza picha hapo juu kutazama video ya somo hili)
Kuelewa ugumu wa programu unayoijengea wakala wa AI ni muhimu ili kutengeneza moja inayotegemewa. Tunahitaji kujenga Wakala wa AI wanaosimamia habari kwa ufanisi ili kushughulikia mahitaji tata zaidi ya uhandisi wa maagizo.
Katika somo hili, tutaangalia ni nini uhandisi wa muktadha unamaanisha na nafasi yake katika ujenzi wa wakala za AI.
Somo hili litashughulikia:
• Uhandisi wa Muktadha ni nini na kwa nini ni tofauti na uhandisi wa maagizo.
• Mikakati ya Uhandisi wa Muktadha yenye ufanisi, ikijumuisha jinsi ya kuandika, kuchagua, kubana, na kutenganisha taarifa.
• Makosa ya Kawaida ya Muktadha ambayo yanaweza kuharibu wakala wako wa AI na jinsi ya kuyarekebisha.
Baada ya kumaliza somo hili, utajua jinsi ya:
• Fafanua uhandisi wa muktadha na kuutofautisha na uhandisi wa maagizo.
• Tambua vipengele muhimu vya muktadha katika programu za Modeli Kubwa za Lugha (LLM).
• Tumia mikakati ya kuandika, kuchagua, kubana, na kutenganisha muktadha ili kuboresha utendaji wa wakala.
• Tambua makosa ya kawaida ya muktadha kama uchafuzi, kuvurugika kwa mawazo, kuchanganyikiwa, na mizozo, na utekeleze mbinu za kupunguza.
Kwa Wakala wa AI, muktadha ndio unaoendesha upangaji wa Wakala wa AI kuchukua hatua fulani. Uhandisi wa muktadha ni zoezi la kuhakikisha Wakala wa AI ana taarifa sahihi za kukamilisha hatua inayofuata ya kazi. Dirisha la muktadha lina ukubwa mdogo, hivyo sisi waendelezaji wa wakala tunahitaji kujenga mifumo na michakato ya kusimamia kuongeza, kuondoa, na kukandamiza taarifa ndani ya dirisha la muktadha.
Uhandisi wa maagizo unazingatia seti moja ya maagizo yasiyobadilika ili kuwaelekeza Wakala wa AI kwa ufanisi kwa seti ya kanuni. Uhandisi wa muktadha ni jinsi ya kusimamia seti inayobadilika ya habari, ikijumuisha agizo la awali, ili kuhakikisha Wakala wa AI ana kile anachohitaji kwa muda. Wazo kuu la uhandisi wa muktadha ni kufanya mchakato huu urudiwe na uwe wa kuaminika.
Ni muhimu kukumbuka kwamba muktadha sio kitu kimoja tu. Taarifa ambazo Wakala wa AI anahitaji zinaweza kutoka vyanzo mbalimbali na ni jukumu letu kuhakikisha wakala ana ufikiaji wa vyanzo hivi:
Aina za muktadha ambazo wakala wa AI anaweza kuhitaji kusimamia ni pamoja na:
• Maagizo: Hivi ni kama “kanuni” za wakala – prompts, ujumbe wa mfumo, mifano ya few-shot (kuwaonyesha AI jinsi ya kufanya jambo), na maelezo ya zana anazoweza kutumia. Hapa ndipo mkazo wa uhandisi wa maagizo unachanganyika na uhandisi wa muktadha.
• Maarifa: Hii inajumuisha ukweli, taarifa zilizopatikana kutoka kwa hifadhidata, au kumbukumbu za muda mrefu ambazo wakala amekusanya. Hii ni pamoja na kuingiza Mfumo wa Retrieval Augmented Generation (RAG) ikiwa wakala anahitaji ufikiaji wa hifadhi tofauti za maarifa na hifadhidata.
• Zana: Hizi ni ufafanuzi wa kazi za nje, APIs na MCP Servers ambazo wakala anaweza kuitisha, pamoja na maoni (matokeo) anayopata kutokana na kuzitumia.
• Historia ya Mazungumzo: Mazungumzo yanayoendelea na mtumiaji. Kadiri muda unavyopita, mazungumzo haya yanakua kuwa marefu na tata zaidi hivyo kuchukua nafasi kwenye dirisha la muktadha.
• Mapendeleo ya Mtumiaji: Taarifa zinazojifunzwa kuhusu mambo mtumiaji anayopenda au hayapendi kwa muda. Hizi zinaweza kuhifadhiwa na kutumika wakati wa kufanya maamuzi muhimu kumsaidia mtumiaji.
Uhandisi mzuri wa muktadha unaanza na upangaji mzuri. Hapa kuna njia itakayokusaidia kuanza kufikiria jinsi ya kutumia dhana ya uhandisi wa muktadha:
Fafanua Matokeo Yaliyo Wazi - Matokeo ya kazi ambazo Wakala wa AI atapewa zinapaswa kuelezwa kwa uwazi. Jibu swali - “Je, dunia itaonekana vipi wakati Wakala wa AI atakapomaliza kazi yake?” Kwa maneno mengine, ni mabadiliko gani, taarifa, au jibu mtumiaji anapaswa kuwa nalo baada ya kuingiliana na Wakala wa AI.
Ramani ya Muktadha - Mara tu unapofafanua matokeo ya Wakala wa AI, unahitaji kujibu swali la “Ni taarifa gani Wakala wa AI anahitaji ili kukamilisha kazi hii?”. Kwa njia hii unaweza kuanza kupanga muktadha wa mahali ambapo taarifa hiyo inaweza kupatikana.
Unda Mifereji ya Muktadha - Sasa unajua wapi taarifa zipo, unahitaji kujibu swali “Je, Wakala atapata taarifa hizi vipi?”. Hii inaweza kufanywa kwa njia mbalimbali ikijumuisha RAG, matumizi ya seva za MCP na zana nyingine.
Upangaji ni muhimu lakini mara tu taarifa zinaanza kuingia kwenye dirisha la muktadha la wakala wetu, tunahitaji kuwa na mikakati ya kivitendo ya kuziendesha:
Wakati baadhi ya taarifa zitaongezwa kwenye dirisha la muktadha kiotomatiki, uhandisi wa muktadha unahusu kuchukua nafasi ya kipekee katika kusimamia taarifa hizi ambazo zinaweza kufanywa kwa mikakati kadhaa:
Agent Scratchpad Hii inamruhusu Wakala wa AI kuchukua alama za taarifa muhimu kuhusu kazi za sasa na mwingiliano wa mtumiaji wakati wa kikao kimoja. Hii inapaswa kuwepo nje ya dirisha la muktadha katika faili au kitu cha runtime ambacho wakala anaweza kukirudisha baadaye wakati wa kikao hiki ikiwa itahitajika.
Memories Scratchpads ni nzuri kwa kusimamia taarifa nje ya dirisha la muktadha la kikao kimoja. Kumbukumbu zinawawezesha wakala kuhifadhi na kurudisha taarifa muhimu kati ya vikao vingi. Hii inaweza kujumuisha muhtasari, mapendeleo ya mtumiaji na maoni kwa maboresho ya baadaye.
Compressing Context Mara dirisha la muktadha linapokua na kukaribia kikomo chake, mbinu kama muhtasari na kukata zinaweza kutumika. Hii ni pamoja na kuhifadhi tu taarifa zilizohusiana zaidi au kuondoa ujumbe wa zamani.
Multi-Agent Systems Kuendeleza mfumo wa wakala-wengi ni aina ya uhandisi wa muktadha kwa sababu kila wakala ana dirisha lake la muktadha. Jinsi muktadha huo unavyoshirikiwa na kupitishwa kwa wakala tofauti ni jambo jingine la kupanga wakati wa kujenga mifumo hii.
Sandbox Environments Ikiwa wakala anahitaji kuendesha baadhi ya msimbo au kuchakata idadi kubwa ya taarifa katika hati, hii inaweza kuchukua idadi kubwa ya tokeni ili kuchakata matokeo. Badala ya kuwa yote yamehifadhiwa ndani ya dirisha la muktadha, wakala anaweza kutumia mazingira ya sandbox ambayo yanaweza kuendesha msimbo huu na kusoma tu matokeo na taarifa nyingine muhimu.
Runtime State Objects Hii inafanywa kwa kuunda kontena za taarifa za kusimamia hali ambapo Wakala anahitaji kupata ufikiaji wa taarifa fulani. Kwa kazi tata, hii itawawezesha Wakala kuhifadhi matokeo ya kila hatua ya chini ya kazi hatua kwa hatua, kuruhusu muktadha kubaki umeunganishwa tu na hatua maalum ndogo ya kazi.
Tuseme tunataka wakala wa AI “Nipangie safari ya kwenda Paris.”
• Wakala rahisi akitumia tu uhandisi wa maagizo anaweza kujibu tu: “Sawa, ungependa kwenda Paris lini?”. Ulisindika tu swali lako moja kwa moja wakati mtumiaji aliuliza.
• Wakala ukitumia mikakati ya uhandisi wa muktadha iliyofunikwa angefanya mengi zaidi. Kabla hata ya kujibu, mfumo wake unaweza:
◦ Angalia kalenda yako kwa tarehe zinazopatikana (kupata data ya wakati halisi).
◦ Kumbuka mapendeleo ya usafiri ya zamani (kutoka kumbukumbu za muda mrefu) kama shirika la ndege unalopendelea, bajeti, au kama unapendelea ndege za moja kwa moja.
◦ Tambua zana zinazopatikana za uhifadhi wa ndege na hoteli.
Ni nini: Wakati hallusinosheni (taarifa za uongo zinazotolewa na LLM) au kosa linaingia kwenye muktadha na linarejelewa mara kwa mara, likasababisha wakala kufuata malengo yasiyowezekana au kuunda mikakati isiyo na maana.
Nini cha kufanya: Tekeleza uthibitishaji wa muktadha na kufungwa/karantini. Thibitisha taarifa kabla ya kuongezwa kwenye kumbukumbu ya muda mrefu. Ikiwa uchafuzi unaowezekana utakutwa, anzisha nyuzi mpya za muktadha ili kuzuia taarifa mbaya isiengezeke.
Mfano wa Uhifadhi wa Safari: Wakala wako anahallusineta ndege ya moja kwa moja kutoka uwanja mdogo wa ndani hadi mji wa kimataifa mbali ambao kwa hakika hauwape ndege za kimataifa. Maelezo ya ndege yasiyokuwepo haya yanahifadhiwa katika muktadha. Baadaye, unapoomba wakala kupangia, unaendelea kujaribu kupata tiketi kwa njia hii isiyowezekana, na kusababisha makosa ya kurudiwa.
Suluhisho: Tekeleza hatua inayofanya uthibitishaji wa kuwepo kwa ndege na njia za safari kwa API ya wakati halisi kabla ya kuongeza maelezo ya ndege kwenye muktadha wa kazi wa wakala. Ikiwa uthibitishaji unashindwa, taarifa yenye kosa inafungwa/“karantini” na haifanyi kazi zaidi.
Ni nini: Wakati muktadha unakuwa mkubwa sana kiasi kwamba modeli inazingatia sana historia iliyokusanywa badala ya kutumia kile ilichojifunza wakati wa mafunzo, na kusababisha vitendo rudufu au visivyo na msaada. Moduli zinaweza kuanza kufanya makosa hata kabla ya dirisha la muktadha kujaza.
Nini cha kufanya: Tumia muhtasari wa muktadha. Mara kwa mara banisha taarifa zilizokusanywa kuwa muhtasari mfupi, ukihakikisha maelezo muhimu huku ukiondoa historia rudufu. Hii husaidia “kurudisha umakini.”
Mfano wa Uhifadhi wa Safari: Umekuwa ukijadili maeneo mbalimbali ya ndoto za kusafiri kwa muda mrefu, ikiwa ni pamoja na kuelezea kwa kina safari yako ya kupakia mabegi miaka miwili iliyopita. Unapomuomba hatimaye “nitafutie ndege ya bei nafuu kwa mwezi ujao,” wakala anakwama kwenye maelezo ya zamani yasohusiana na anaendelea kuuliza kuhusu vifaa vyako vya kupakia au ratiba za zamani, akipuuzia ombi lako la sasa.
Suluhisho: Baada ya idadi fulani ya mizunguko au wakati muktadha unapoanza kukua sana, wakala anapaswa kuifupisha sehemu za hivi karibuni na zinazohusiana zaidi za mazungumzo – akilenga tarehe zako za kusafiri za sasa na eneo unalotaka – na kutumia muhtasari huo uliobanwa kwa wito ufuatao wa LLM, akitupa mazungumzo ya kihistoria yasiyofaa.
Ni nini: Wakati muktadha usiohitajika, mara nyingi kwa sura ya zana nyingi zinazopatikana, unasababisha modeli kutoa majibu mabaya au kuitisha zana zisizohusiana. Moduli ndogo hasa zinapokuwa katika hatari ya hili.
Nini cha kufanya: Tekeleza usimamizi wa zana zinazopatikana kwa kutumia mbinu za RAG. Hifadhi maelezo ya zana kwenye hifadhidata ya vector na chagua tu zana zinazohusiana zaidi kwa kila kazi maalum. Utafiti unaonyesha kupunguza uteuzi wa zana kuwa chini ya 30.
Mfano wa Uhifadhi wa Safari: Wakala wako ana ufikiaji wa zana nyingi: book_flight, book_hotel, rent_car, find_tours, currency_converter, weather_forecast, restaurant_reservations, n.k. Unamuuliza, “Je, njia bora ya kuzunguka Paris ni ipi?” Kutokana na idadi kubwa ya zana, wakala anachanganyikiwa na kujaribu kuita book_flight ndani ya Paris, au rent_car ingawa unapendelea usafiri wa umma, kwa sababu maelezo ya zana yanaweza kuingiliana au haiwezi kutofautisha zana bora.
Suluhisho: Tumia RAG juu ya maelezo ya zana. Unapouliza kuhusu jinsi ya kuzunguka Paris, mfumo unachukua kwa nguvu tu zana zinazohusiana zaidi kama rent_car au public_transport_info kulingana na swali lako, ukitoa “loadout” iliyo makusudi kwa LLM.
Ni nini: Wakati taarifa zinazoonekana kutofautiana zipo ndani ya muktadha, zikisababisha uamuzi usio mfululizo au majibu mabaya ya mwisho. Hii mara nyingi hutokea wakati taarifa zinapofika kwa awamu, na dhana za awali zisizo sahihi zinabaki ndani ya muktadha.
Nini cha kufanya: Tumia kusaga muktadha na kuhamisha nje. Kusaga kunamaanisha kuondoa taarifa zilizopita au zinazopingana wakati maelezo mapya yanapoingia. Kuhamisha nje kunampa modeli eneo la kazi “scratchpad” kutengeneza taarifa bila kuchafua muktadha mkuu.
Mfano wa Uhifadhi wa Safari: Awali unamwambia wakala wako, “Nataka kusafiri daraja la uchumi.” Baadaye katika mazungumzo, unabadilisha mawazo na kusema, “Kwa kweli, kwa safari hii, tufanye daraja la biashara.” Ikiwa maagizo yote mawili yanabaki kwenye muktadha, wakala anaweza kupata matokeo ya utafutaji yanayopingana au kuchanganyikiwa kuhusu upendeleo unayotakiwa kuutumikia.
Suluhisho: Tekeleza kusaga muktadha. Wakati agizo jipya linapingana na la zamani, agizo la zamani linaondolewa au linaelezwa wazi kuwa limekataliwa katika muktadha. Vinginevyo, wakala anaweza kutumia scratchpad kuweka sawa mapendeleo yanayopingana kabla ya kuamua, kuhakikisha agizo la mwisho, linaloambatana, ndilo linaongoza vitendo vyake.
Jiunge na Discord ya Microsoft Foundry kukutana na wanafunzi wengine, kuhudhuria saa za ofisi na kupata majibu ya maswali yako kuhusu Wakala wa AI.
Taarifa ya kutokuwa na dhamana: Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI Co-op Translator. Ingawa tunajitahidi kuhakikisha 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 chenye mamlaka. Kwa taarifa muhimu, inapendekezwa kutumia tafsiri ya mtaalamu wa kibinadamu. Hatujawajibiki kwa kutoelewana au tafsiri isiyo sahihi zitokanazo na matumizi ya tafsiri hii.