Moduli hii inashughulikia dhana muhimu na mbinu za kutengeneza maagizo madhubuti katika mifano ya AI inayotengeneza maudhui. Njia unavyoandika agizo lako kwa LLM ni muhimu pia. Agizo lililoundwa kwa uangalifu linaweza kupata majibu bora zaidi. Lakini maana halisi ya maneno kama agizo na ufundi wa kuunda maagizo ni nini? Na ni vipi ninaweza kuboresha kiingilio cha agizo ninachotuma kwa LLM? Haya ni maswali tutayajibu katika sura hii na ijayo.
AI inayotengeneza maudhui ina uwezo wa kutengeneza maudhui mapya (kama maandishi, picha, sauti, nambari n.k.) kama majibu kwa maombi ya mtumiaji. Hii inafanikishwa kwa kutumia Modeli Kubwa za Lugha kama mfululizo wa GPT ("Generative Pre-trained Transformer") wa OpenAI ambao wamefundishwa kutumia lugha ya asili na nambari.
Watumiaji sasa wanaweza kuwasiliana na modeli hizi kwa mbinu za kawaida kama mazungumzo, bila hitaji la utaalamu wa kiufundi au mafunzo. Modeli hizi hutegemea maagizo - watumiaji hutuma maandishi (agizo) na kurudishiwa jibu la AI (ukamilisho). Baada yake wanaweza "kuzungumza na AI" kwa mizunguko mingi, wakiboresha agizo lao hadi jibu lifanane na matarajio yao.
"Maagizo" sasa yanakuwa kiolesura cha programu muhimu cha matumizi ya AI inayotengeneza maudhui, ikiwaambia modeli nini cha kufanya na kuathiri ubora wa majibu yanayorejeshwa. "Ufundi wa Kuunda Maagizo" ni taaluma inayokua kwa kasi inayojikita katika kubuni na kuboresha maagizo ili kutoa majibu yanayolingana na yenye ubora kwa wingi.
Katika somo hili, tunajifunza ni nini Ufundi wa Kuunda Maagizo, kwa nini ni muhimu, na jinsi tunavyoweza kubuni maagizo bora zaidi kwa modeli na lengo la matumizi fulani. Tutafahamu dhana kuu na mbinu bora za ufundi wa kuunda maagizo - na kujifunza kuhusu mazingira ya mazoezi ya Jupyter Notebooks ambapo tunaweza kuona dhana hizi zikifanywa kwa mifano halisi.
Mwisho wa somo hili tutakuwa na uwezo wa:
- Kueleza ni nini ufundi wa kuunda maagizo na kwa nini ni muhimu.
- Kueleza vipengele vya agizo na jinsi vinavyotumika.
- Kujifunza mbinu bora na mikakati ya ufundi wa kuunda maagizo.
- Kutumia mbinu zilizojifunza kwenye mifano halisi, tukitumia kiunganishi cha OpenAI.
Ufundi wa Kuunda Maagizo: Mazoezi ya kubuni na kuboresha viingilio ili kuongoza modeli za AI kuzalisha matokeo yanayotakikana.
Tokenization: Mchakato wa kubadilisha maandishi kuwa vitengo vidogo vidogo, vinavyoitwa tokeni, ambavyo modeli inaweza kuelewa na kuchakata.
Instruction-Tuned LLMs: Modeli Kubwa za Lugha (LLMs) zilizobinafsishwa kwa maagizo maalum ili kuboresha usahihi na umuhimu wa majibu yao.
Ufundi wa kuunda maagizo kwa sasa ni sanaa zaidi kuliko sayansi. Njia bora ya kuboresha hisia zetu juu yake ni kufanya mazoezi zaidi na kuzingatia njia ya jaribio-na-kosa ambayo huunganisha ujuzi wa eneo la matumizi na mbinu zinazopendekezwa na uboreshaji wa modeli maalum.
Daftari la Jupyter linaloambatana na somo hili linatoa mazingira ya sandbox ambapo unaweza kujaribu unachojifunza - unapopita au kama sehemu ya changamoto ya msimbo mwishoni. Ili kutekeleza mazoezi, utahitaji:
- Ufunguo wa API wa Azure OpenAI - kiunganishi cha huduma kwa LLM iliyosambazwa.
- Mazingira ya Python Runtime - ili Daftari liweze kuendeshwa.
- Mabadiliko ya Mazingira Mahali Mlokoni - kamilisha hatua za MAANDALIZI sasa ili ujipange.
Daftari lina mazoezi ya mwanzilishi - lakini unahimizwa kuongeza sehemu zako za Markdown (maelezo) na Code (maombi ya agizo) ili kujaribu mifano au mawazo zaidi - na kujenga hisia zako za kubuni maagizo.
Unataka picha kubwa ya nini somo hili linashughulikia kabla ya kuingia? Angalia mwongozo huu uliopigwa picha, unaokupa hisia za mada kuu zilizofunikwa na mambo muhimu ya kuzijadili kila moja. Ramani ya somo inakupeleka kutoka kwa kuelewa dhana kuu na changamoto hadi kuzitatua kwa mbinu za ufundi wa kuunda maagizo na mbinu bora. Kumbuka sehemu ya "Mbinu Zinazoendelea" katika mwongozo huu inahusu maudhui yaliyofunikwa katika sura ijayo ya mtaala huu.
Sasa, tusonge kwenye jinsi mada hii inavyohusiana na dhamira ya kuanzisha kampuni yetu ya kuleta uvumbuzi wa AI katika elimu. Tunataka kujenga programu za AI zinazosaidia ujifunzaji uliobinafsishwa - kwa hiyo fikiria jinsi watumiaji mbalimbali wa programu yetu wanavyoweza "kubuni" maagizo:
- Wasimamizi wanaweza kumwomba AI kuchambua data ya mtaala ili kubaini mapungufu ya mafunzo. AI inaweza kufupisha matokeo au kuyaonyesha kwa kutumia nambari.
- Walimu wanaweza kumwomba AI kutengeneza mpango wa somo kwa hadhira na mada lengwa. AI inaweza kuunda mpango uliobinafsishwa kwa muundo maalum.
- Wanafunzi wanaweza kumwomba AI kuwa mwalimu wao katika somo gumu. AI sasa inaweza kuwaongoza wanafunzi kwa masomo, vidokezo & mifano iliyoboreshwa kwa kiwango chao.
Hiyo ni mwanzo tu. Angalia Maagizo kwa Elimu - maktaba ya maagizo ya chanzo wazi iliyohusishwa na wataalam wa elimu - kupata hisia pana za uwezekano! Jaribu kuendesha baadhi ya maagizo hayo katika sandbox au kutumia OpenAI Playground kuona kinachotokea!
Tulianza somo hili kwa kufafanua Ufundi wa Kuunda Maagizo kama mchakato wa kubuni na kuboresha viingilio vya maandishi (maagizo) ili kutoa majibu (ukamilisho) ya ubora na yanayolingana kwa lengo fulani la matumizi na modeli. Tunaweza kufikiria hii kama mchakato wa hatua 2:
- kubuni agizo la awali kwa modeli na lengo fulani
- kuboresha agizo kwa mizunguko ili kuboresha ubora wa jibu
Hii ni mchakato wa jaribio-na-kosa unaohitaji hisia na juhudi za mtumiaji kupata matokeo bora. Kwa hiyo ni kwa nini ni muhimu? Ili kujibu swali hilo, kwanza tunahitaji kuelewa dhana tatu:
- Tokenization = jinsi modeli "inaona" agizo
- Base LLMs = jinsi modeli msingi "inachakata" agizo
- Instruction-Tuned LLMs = jinsi modeli sasa inaweza kuona "kazi"
LLM huona maagizo kama mfuatano wa tokeni ambapo modeli tofauti (au matoleo ya modeli) zinaweza ku-tokenize agizo hilo kwa njia tofauti. Kwa kuwa LLM zimeshindwa kufundishwa kwa tokeni (bado si maandishi kama yalivyo), njia maagizo yanavyogawanywa tokeni huathiri moja kwa moja ubora wa jibu linalozalishwa.
Ili kupata hisia ya jinsi tokenization inavyofanya kazi, jaribu zana kama OpenAI Tokenizer iliyoonyeshwa hapa chini. Nakili agizo lako - na ona jinsi linavyobadilishwa kuwa tokeni, ukizingatia jinsi tabia za anga na alama za uwingu zinavyoshughulikiwa. Fahamu kuwa mfano huu unaonyesha LLM ya zamani (GPT-3) - kwa hiyo jaribu hii na modeli mpya inaweza kutoa matokeo tofauti.
Baada ya agizo ku-tokenize, kazi kuu ya "Base LLM" (au modeli msingi) ni kutabiri tokeni inayofuata katika mfuatano huo. Kwa kuwa LLM zimeshindwa kufundishwa kwa seti kubwa za maandishi, zina uelewa mzuri wa uhusiano wa takwimu kati ya tokeni na zinaweza kufanya utabiri huo kwa kujiamini fulani. Kumbuka hawafahamu maana ya maneno katika agizo au tokeni; wao huona tu muundo ambao wanaweza "ukamilisha" kwa utabiri wao unaofuata. Wanaweza kuendelea kutabiri mfuatano mpaka wazuiaji wa mtumiaji au hali iliyowekwa kabla isijitokee.
Unataka kuona jinsi ukamilishaji unaotegemea agizo unavyofanya kazi? Weka agizo ulilotaja hapo juu katika Azure OpenAI Studio Chat Playground kwa mipangilio ya msingi. Mfumo umezungushwa ili kuchukulia maagizo kama maombi ya taarifa - kwa hiyo utapata jibu linaloridhisha muktadha huu.
Lakini je, mtumiaji angependa kuona kitu maalum kinachokidhi vigezo au lengo la kazi? Hapa ndipo instruction-tuned LLM zinapoingia.
Instruction Tuned LLM huanza na modeli msingi na kuibinafsisha zaidi kwa kutumia mifano au jozi za ingizo/mazao (kama "jumbe" za mizunguko mingi) zenye maagizo wazi - na jibu kutoka AI linajaribu kufuata agizo hilo.
Hii inatumia mbinu kama Kujifunza kwa Uimarishaji na Maoni ya Binadamu (RLHF) ambayo inaweza kufundisha modeli kufuata maagizo na kujifunza kutoka maoni ili kutoa majibu yanayofaa zaidi kwa matumizi halisi na yenye umuhimu zaidi kwa malengo ya mtumiaji.
Hebu tujaribu - rudi kwenye agizo hapo juu, lakini sasa badilisha ujumbe wa mfumo kutoa maelekezo yafuatayo kama muktadha:
Fupisha maudhui unayopewa kwa mwanafunzi wa darasa la pili. Weka matokeo katika aya moja yenye pointi 3-5.
Tazama jinsi matokeo sasa yamezingatia lengo na muundo unaotakikana? Mwalimu anaweza sasa kutumia jibu hili moja kwa moja katika mabango yao kwa darasa hilo.
Sasa tunajua jinsi LLM zinavyoshughulikia maagizo, hebu tuzungumzie kwa nini tunahitaji ufundi wa kuunda maagizo. Jibu liko katika ukweli kwamba LLM za sasa zina changamoto kadhaa zinazofanya ukamilisho wa kuaminika na kuendeleza kuwa vigumu kupata bila juhudi za kujenga na kuboresha agizo. Kwa mfano:
-
Majibu ya modeli ni ya kubahatisha. Agizo moja linaweza kutoa majibu tofauti kwa modeli tofauti au matoleo tofauti ya modeli. Na pia linaweza kutoa matokeo tofauti na modi moja kwa nyakati tofauti. Mbinu za ufundi wa kuunda maagizo zinaweza kusaidia kupunguza tofauti hizi kwa kutoa mipaka bora.
-
Modeli zinaweza kuzidisha majibu. Modeli zimeshindwa kufundishwa kwa seti kubwa lakini kificho (zipo kikomo), kwa maana haziwezi kujua dhana nje ya mafunzo yao. Kama matokeo, zinaweza kutoa majibu yasiyo sahihi, ya kubuni, au yanayopingana moja kwa moja na ukweli unaojulikana. Mbinu za ufundi wa kuunda maagizo husaidia watumiaji kutambua na kupunguza uongo huo kwa mfano kwa kuomba AI chanzo au hoja.
-
Uwezo wa modeli utatofautiana. Modeli mpya au kizazi kipya zitakuwa na uwezo mkubwa zaidi lakini pia zitaleta tabia na changamoto za kipekee kuhusu gharama na ugumu. Ufundi wa kuunda maagizo unaweza kutusaidia kuendeleza mbinu na taratibu bora ambazo zinatenganisha tofauti hizi na kubadilika kwa mahitaji maalum ya modeli kwa njia za kirefu na zisizo na mshono.
Tazama hii ikifanyika katika OpenAI au Azure OpenAI Playground:
- Tumia agizo lile lile na toleo tofauti za LLM (kama OpenAI, Azure OpenAI, Hugging Face) - umegundua tofauti?
- Tumia agizo lile lile mara kwa mara na toleo lilo sawa la LLM (mfano, Azure OpenAI playground) - tofauti hizi zilikuwa tofauti vipi?
Katika kozi hii, tunatumia neno "kuzidisha" kurejelea hali ambapo LLM mara nyingine huunda taarifa zisizo sahihi kwa sababu ya vizuizi vya mafunzo yao au vikwazo vingine. Pia unaweza kuwa umesikia hili likitolewa kama "matokeo ya kuota fikra" katika makala maarufu au karatasi za utafiti. Hata hivyo, tunashauri sana kutumia neno "kuzidisha" ili tusitimue tabia hiyo kwa kughani sifa za kibinadamu katika matokeo yanayotokana na mashine. Hii pia inaimarisha miongozo ya AI ya Kuwajibika kutoka mtazamo wa istilahi, kuyatenga maneno ambayo yanaweza kuchukuliwa kuwa yanadhuru au hayajumuishi katika muktadha fulani.
Unataka kuona jinsi kuzidisha kunavyotokea? Fikiria agizo linaloelekeza AI kuzalisha maudhui kuhusu mada isiyo na ukweli (ili kuhakikisha haipo katika seti ya mafunzo). Kwa mfano - nilijaribu agizo hili:
Agizo: tengeneza mpango wa somo juu ya Vita vya Martian vya mwaka 2076. Utafutaji wa wavuti ulinionyesha kuwa kulikuwepo na hadithi za kubuni (mfano, mfululizo wa televisheni au vitabu) kuhusu vita vya Marsi - lakini hakuna yoyote mnamo 2076. Hali halisi pia inatueleza kuwa 2076 ni katika siku za usoni na hivyo, haiwezi kuhusishwa na tukio halisi.
Basi ni nini hutokea tunapochukua prompt hii kwenye watoa huduma tofauti wa LLM?
Jibu 1: OpenAI Playground (GPT-35)
Jibu 2: Azure OpenAI Playground (GPT-35)
Jibu 3: : Hugging Face Chat Playground (LLama-2)
Kama ilivyotarajiwa, kila mfano (au toleo la mfano) hutoa majibu yenye tofauti kidogo kutokana na tabia ya nasibu na utofauti wa uwezo wa mfano. Kwa mfano, mfano mmoja unalenga hadhira ya darasa la nane wakati mwingine unadhani mwanafunzi wa shule ya upili. Lakini modeli zote tatu zilizalisha majibu ambayo yangeweza kumshawishi mtumiaji asiye na taarifa kuwa tukio hilo ni halisi.
Mbinu za uhandisi wa prompt kama vile metaprompting na usanidi wa joto (temperature) zinaweza kupunguza uvumbuzi wa mfano kwa kiasi fulani. Miundo mipya ya uhandisi wa prompt pia hujumuisha zana na mbinu mpya kwa urahisi katika mtiririko wa prompt, ili kupunguza au kuondoa baadhi ya athari hizi.
Tumalize sehemu hii kwa kupata hisia ya jinsi uhandisi wa prompt unavyotumika katika suluhisho halisi kwa kutazama Uchunguzi wa Kesi moja: GitHub Copilot.
GitHub Copilot ni "Mshirika wako wa AI wa Uandishi wa Programu" - hubadilisha prompt za maandishi kuwa ukamilishaji wa msimbo na umejumuishwa katika mazingira yako ya maendeleo (mfano, Visual Studio Code) kwa uzoefu wa mtumiaji usio na mshono. Kama ilivyoandikwa katika mfululizo wa blogu hapa chini, toleo la awali lilitegemea mfano wa OpenAI Codex - na wahandisi waliotambua haraka hitaji la kufanyia mfano mazoezi tena na kuendeleza mbinu bora za uhandisi wa prompt, ili kuboresha ubora wa msimbo. Mwezi Julai, walizindua mfano wa AI ulioboreshwa ambao unazidi Codex kwa mapendekezo ya haraka zaidi.
Soma machapisho kwa mpangilio, ili kufuata safari yao ya kujifunza.
- Mei 2023 | GitHub Copilot inazidi Kuboresha Kuelewa Msimbo Wako
- Mei 2023 | Ndani ya GitHub: Kufanya kazi na LLMs nyuma ya GitHub Copilot.
- Jun 2023 | Jinsi ya kuandika prompt bora kwa GitHub Copilot.
- Jul 2023 | .. GitHub Copilot unazidi Codex na mfano wa AI ulioboreshwa
- Jul 2023 | Mwongozo wa Mradi kwa Uhandisi wa Prompt na LLMs
- Sep 2023 | Jinsi ya kujenga programu ya LLM ya biashara: Mafunzo kutoka GitHub Copilot
Unaweza pia kupitia blogu yao ya Uhandisi kwa machapisho zaidi kama haya yanayoonyesha jinsi mifano hii na mbinu zinavyotumika kwa kuendesha matumizi halisi ya dunia.
Tumeona kwa nini uhandisi wa prompt ni muhimu - sasa tuelewe jinsi prompt zinavyoundwa ili tuweze kutathmini mbinu tofauti kwa ajili ya kubuni ya prompt yenye ufanisi zaidi.
Tuanzie na prompt ya msingi: ingizo la maandishi lililotumwa kwa mfano bila muktadha mwingine wowote. Hapa kuna mfano - tunapomtumia API ya Completion ya OpenAI maneno machache ya wimbo wa taifa wa Marekani, mara moja hutoa ukamilisho wa majibu kwa mistari inayofuata, ikionyesha tabia ya msingi ya utabiri.
| Prompt (Ingizo) | Ukamilisho (Matokeo) |
|---|---|
| Oh say can you see | Inaonekana kama unaanza maneno ya wimbo wa "The Star-Spangled Banner," wimbo wa taifa wa Marekani. Maneno yote ni ... |
Sasa tukaongeza muktadha na maagizo kwa prompt hiyo ya msingi. API ya Chat Completion inaturuhusu kuunda prompt changamano kama mkusanyiko wa jumbe zenye:
- Mapairs ya ingizo/outputs yanayoakisi ingizo la mtumiaji na jibu la msaidizi.
- Ujumbe wa mfumo unaoweka muktadha wa tabia au utu wa msaidizi.
Ombi sasa uko kwa muundo huu hapa chini, ambapo tokenization inakamata taarifa husika kutoka kwa muktadha na mazungumzo. Sasa, kubadilisha muktadha wa mfumo kunaweza kuwa na ushawishi mkubwa kwenye ubora wa ukamilishaji, kama vile ingizo la mtumiaji ulivyo.
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?"}
]
)Katika mifano ya juu, prompt ya mtumiaji ilikuwa swali rahisi la maandishi ambalo linaweza kufasiriwa kama ombi la habari. Kwa prompt za maagizo, tunaweza kutumia maandishi hayo kutaja kazi kwa undani zaidi, tukitoa mwongozo bora kwa AI. Hapa kuna mfano:
| Prompt (Ingizo) | Ukamilisho (Matokeo) | Aina ya Maagizo |
|---|---|---|
| Andika maelezo ya Vita vya Ndani | ilirudisha aya rahisi | Rahisi |
| Andika maelezo ya Vita vya Ndani. 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 Ndani kwa aya 1. Toa pointi 3 za vidole kwa tarehe muhimu na umuhimu wake. Toa pointi 3 zaidi za vidole za watu muhimu wa kihistoria na mchango wao. Rudisha matokeo kama faili ya JSON | hurudisha maelezo ya kina zaidi kwenye kisanduku cha maandishi, kimepangwa kama JSON ambacho unaweza kukuakili na kuhakiki | Changamano. Imeandikwa. |
Katika mifano ya juu, prompt bado ilikuwa wazi kiasi, ikimruhusu LLM kuamua ni sehemu gani ya data yake ya mafunzo ni husika. Kwa muundo wa maudhui muhimu, maandishi ya ingizo hugawanywa vipande viwili:
- maagizo (kitendo)
- maudhui husika (yanayoathiri kitendo)
Hapa kuna mfano ambapo maagizo ni "fupisha hii kwa sentensi 2".
| Prompt (Ingizo) | Ukamilisho (Matokeo) |
|---|---|
| Jupiter ni sayari ya tano kutoka Jua na kubwa zaidi katika Mfumo wa Jua. Ni gasi kubwa yenye uzito wa elfu moja ya Jua, lakini mara mbili na nusu ya uzito wa sayari zote nyingine katika Mfumo wa Jua kwa pamoja. Jupiter ni mojawapo ya vitu vinavyong’aa vinavyoonekana kwa jicho tupu usiku, na imejulikana kwa ustaarabu wa kale tangu kabla ya historia kurekodiwa. Imepewa jina la mungu wa Kirumi Jupiter.[19] Ikitazama kutoka Dunia, Jupiter inaweza kuwa ang’avu vya kutosha kwa mwanga wake kutoa mienendo inayoonekana,[20] na kwa wastani ni kitu cha tatu chenye mwanga wa asili ang’avu zaidi usiku baada ya Mwezi na Venus. Fupisha hii katika sentensi 2 fupi |
Jupiter, sayari ya tano kutoka Jua, ni kubwa zaidi katika Mfumo wa Jua na inajulikana kwa kuwa moja ya vitu vinavyoangaza zaidi usiku. Imepewa jina la mungu wa Kirumi Jupiter, ni gasi kubwa yenye uzito mara mbili na nusu wa uzito wa sayari zote nyingine za mfumo kwa pamoja. |
Sehemu ya maudhui muhimu inaweza kutumika kwa njia mbalimbali kuendesha maagizo bora zaidi:
- Mifano - badala ya kusema moja kwa moja kwa mfano ni nini cha kufanya, toa mifano ya kile kinachotakiwa nassa itafsiri muktadha.
- Chapa - fuata maagizo na "chapa" ambayo huandaa ukamilishaji, ikielekeza mfano kwa majibu husika zaidi.
- TEMPLATE - hizi ni "mapishi" ya kurudia ya prompt zenye sehemu za kujaza (badilika) ambazo zinaweza kubadilishwa kwa data kwa matumizi maalum.
Hebu tuchunguze haya kwa vitendo.
Hii ni mbinu ambapo unatumia maudhui muhimu "kumlisha mfano" mifano ya matokeo yanayohitajika kwa agizo fulani, na kumruhusu afafanue mtindo wa matokeo yanayohitajika. Kulingana na idadi ya mifano iliyotolewa, tunaweza kuwa na prompt isiyo na mfano (zero-shot), prompt yenye mfano mmoja (one-shot), prompt yenye mifano michache (few-shot) n.k.
Prompt sasa ina vitu vitatu:
- Maelezo ya kazi
- Mifano michache ya matokeo yanayohitajika
- Mwanzo wa mfano mpya (ambao hupokelewa kama maelezo ya kazi bila kusema wazi)
| Aina ya Kujifunza | Prompt (Ingizo) | Ukamilisho (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 viwanja => Baseball Mchezaji alipiga ace => Tennis Mchezaji alipiga six => Cricket Mchezaji alifanya slam-dunk => |
Basketball |
Tazama jinsi tulivyotakiwa kutoa maagizo wazi ("Tafsiri kwa Kihispania") katika prompt isiyo na mfano, lakini hueleweka katika mfano mmoja. Mfano wa few-shot unaonyesha jinsi kuongeza mifano zaidi kunavyoruhusu mifano kutoa makadirio sahihi bila maagizo zaidi.
Mbinu nyingine ya kutumia maudhui muhimu ni kutoa chapa badala ya mifano. Katika kesi hii, tunampa mfano mdundo kuelekea upande ulio sahihi kwa kuanza na kipande kinachoonyesha muundo wa jibu linalotakiwa. Mfano huchukua chapa hiyo kuendelea kwa mtindo huo.
| Idadi ya Chapa | Prompt (Ingizo) | Ukamilisho (Matokeo) |
|---|---|---|
| 0 | Jupiter ni sayari ya tano kutoka Jua na kubwa zaidi katika Mfumo wa Jua. Ni gasi kubwa yenye uzito wa elfu moja ya Jua, lakini mara mbili na nusu ya uzito wa sayari zote nyingine katika Mfumo wa Jua kwa pamoja. Jupiter ni mojawapo ya vitu vinavyong’aa vinavyoonekana kwa jicho tupu usiku, na imejulikana kwa ustaarabu wa kale tangu kabla ya historia kurekodiwa. Fupisha Hii |
Jupiter ni sayari kubwa zaidi katika Mfumo wetu wa Jua na sayari ya tano kutoka Jua. Ni gasi kubwa yenye uzito wa 1/1000 wa Jua, lakini ni nzito zaidi kuliko sayari zingine zote kwa pamoja. Ustaarabu wa kale umekuwa ukijua kuhusu Jupiter kwa muda mrefu, na ni rahisi kuiona usiku ang’avu.. |
| 1 | Jupiter ni sayari ya tano kutoka Jua na kubwa zaidi katika Mfumo wa Jua. Ni gasi kubwa yenye wingi wa mara elfu moja wa ule wa Jua, lakini mara mbili na nusu ya zile za sayari nyingine zote katika Mfumo wa Jua pamoja. Jupiter ni moja ya vitu angavu vinavyoonekana kwa jicho tupu usiku, na imekuwa ikijulikana kwa ustaarabu wa kale tangu kabla ya historia kusajiliwa. Fupisha Hii Tulivyojifunza ni kuwa Jupiter |
ni sayari ya tano kutoka Jua na kubwa zaidi katika Mfumo wa Jua. Ni gasi kubwa yenye wingi wa mara elfu moja wa ule wa Jua, lakini mara mbili na nusu ya zile za sayari nyingine zote pamoja. Inaonekana kwa urahisi kwa jicho tupu na imekuwa ikijulikana tangu nyakati za kale. |
| 2 | Jupiter ni sayari ya tano kutoka Jua na kubwa zaidi katika Mfumo wa Jua. Ni gasi kubwa yenye wingi wa mara elfu moja wa ule wa Jua, lakini mara mbili na nusu ya zile za sayari nyingine zote katika Mfumo wa Jua pamoja. Jupiter ni moja ya vitu angavu vinavyoonekana kwa jicho tupu usiku, na imekuwa ikijulikana kwa ustaarabu wa kale tangu kabla ya historia kusajiliwa. Fupisha Hii Ukweli 3 Kuu Tuliojifunza: |
1. Jupiter ni sayari ya tano kutoka Jua na kubwa zaidi katika Mfumo wa Jua. 2. Ni gasi kubwa yenye wingi wa mara elfu moja wa ule wa Jua... 3. Jupiter imekuwa ikionekana kwa jicho tupu tangu nyakati za kale ... |
Kiolezo cha prompt ni mapishi yaliyowekwa kabla kwa prompt ambayo yanaweza kuhifadhiwa na kutumika tena kadri inavyohitajika, ili kuendesha uzoefu wa mtumiaji unaoendana kwa kiwango kikubwa. Katika muundo wake rahisi kabisa, ni mkusanyiko wa mifano ya prompt kama hii kutoka OpenAI inayotoa sehemu za prompt za maingiliano (jumbe za mtumiaji na mfumo) pamoja na muundo wa ombi la API - kusaidia kutumia tena.
Katika muundo wake mgumu zaidi kama mfano huu kutoka LangChain una viashiria vinavyoweza kubadilishwa na data kutoka kwa vyanzo mbalimbali (ingizo la mtumiaji, muktadha wa mfumo, vyanzo vya data vya nje n.k.) ili kuunda prompt kwa njia ya mabadiliko ya wakati halisi. Hii inatupa uwezo wa kuunda maktaba za prompt zinazoweza kutumika tena ambazo zinaweza kutumika kuendesha uzoefu wa mtumiaji unaoendana kwa mpangilio wa programu kwa kiwango kikubwa.
Mwishowe, thamani halisi ya vialamisho iko katika uwezo wa kuunda na kuchapisha maktaba za prompt kwa maeneo maalum ya matumizi - ambapo kiolezo cha prompt sasa kimebinafsishwa ili kuonyesha muktadha maalum wa matumizi au mifano inayofanya majibu kuwa ya maana zaidi na sahihi kwa hadhira lengwa ya watumiaji. Hifadhidata ya Prompts For Edu ni mfano mzuri wa njia hii, ikikusanya maktaba ya prompt kwa sekta ya elimu ikiwa na msisitizo kwenye malengo muhimu kama kupanga somo, kubuni mitaala, msaada wa wanafunzi n.k.
Ikiwa tutaangalia ujenzi wa prompt 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 kurekebisha, maagizo ya muundo, aina za mada n.k. ambavyo vinaweza kusaidia modeli kubinafsisha majibu yake ili yatimize malengo au matarajio ya mtumiaji.
Kwa mfano: Ikiwa tunayo katalogi ya kozi yenye metadata nyingi (jina, maelezo, kiwango, lebo za metadata, mwalimu n.k.) kwa kozi zote zilizopo kwenye mitaala:
- tunaweza kufafanua maelekezo ya "fupisha katalogi ya kozi kwa Msimu wa Kuvua 2023"
- tunaweza tumia maudhui makuu kutoa mifano michache ya matokeo yanayotarajiwa
- tunaweza tumia maudhui ya sekondari kubainisha "lebo" 5 kuu zinazovutia.
Sasa, modeli inaweza kutoa muhtasari kwa muundo unaoonyeshwa na mifano michache - lakini ikiwa matokeo yana lebo nyingi, inaweza kuipa kipaumbele lebo 5 zilizotolewa katika maudhui ya sekondari.
Sasa tunajua jinsi prompts zinaweza kujengwa, tunaweza kuanza kufikiri jinsi ya kubuni ili kuonyesha mazoea bora. Tunaweza kuangalia hili kwa sehemu mbili - kuwa na mtazamo sahihi na kutumia mbinu sahihi.
Uhandisi wa Prompt ni mchakato wa jaribio na makosa, kwa hivyo kumbuka mambo matatu ya kawaida:
-
Uelewa wa Sekta ni Muhimu. Usahihi na umuhimu wa majibu ni kazi ya sekta ambayo programu au mtumiaji inafanya kazi ndani yake. Tumia hisia zako na utaalamu wa sekta ili kubinafsisha mbinu zaidi. Mfano, fafanua mimi wa sekta maalum katika prompts za mfumo wako, au tumia vialamisho vya sekta maalum katika prompts za mtumiaji. Toa maudhui ya sekondari yanayoonyesha muktadha wa sekta maalum, au tumia viashiria na mifano ya sekta kuongoza modeli kuelekea mitindo ya matumizi inayojulikana.
-
Uelewa wa Modeli ni Muhimu. Tunajua modeli ni za kistokasti kwa asili. Lakini utekelezaji wa modeli unaweza kutofautiana kwa kutumia seti ya mafunzo wanayotumia (maarifa yaliyopangwa awali), uwezo wanazotoa (kwa API au SDK) na aina ya maudhui waliyobinafsisha (kama, msimbo dhidi ya picha au maandishi). Fahamu nguvu na mapungufu ya modeli unayotumia, na tumia maarifa hayo ku panga kazi au kuunda vialamisho vilivyobinafsishwa vinavyoendana na uwezo wa modeli.
-
Marudio na Uhakiki ni Muhimu. Modeli zinabadilika kwa kasi, na mbinu za uhandisi wa prompt pia. Kama mtaalamu wa sekta, huenda uka kuwa na muktadha au vigezo vingine vya programu yako maalum, ambavyo haviendani na jamii kubwa. Tumia zana na mbinu za uhandisi wa prompt kuanza mchakato wa ujenzi, kisha rudia na hakiki matokeo kwa kutumia hisia na utaalamu wako. Rekodi maarifa yako na unda hifadhidata ya maarifa (mfano, maktaba za prompt) ambazo zinaweza kutumika kama msingi mpya na wengine, kwa mabadiliko ya haraka siku zijazo.
Sasa tuangalie mazoea ya kawaida bora yanayopendekezwa na wataalamu wa OpenAI na Azure OpenAI.
| Kitu | Kwa Nini |
|---|---|
| Tathmini modeli mpya. | Vizazi vipya vya modeli vina manufaa bora na ubora zaidi - lakini pia vinaweza kuwa na gharama kubwa. Zithamini kwa athari, kisha fanya maamuzi ya uhamishaji. |
| Toa tofauti kati ya maelekezo & muktadha | Angalia kama modeli yako/mtoa huduma hutumia vizuizi kutofautisha maelekezo, maudhui makuu na maudhui ya sekondari kwa uwazi zaidi. Hii inaweza kusaidia modeli kupa 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 vialamisho vinavyotumika tena. |
| Toa maelezo, tumia mifano | Modeli zinaweza kutoa majibu bora kwa njia ya "onyesha na eleza". 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 kufananisha. |
| Tumia viashiria kuanzisha majibu | Mchochee kuelekea matokeo unayotaka kwa kumpa maneno au misemo ya kuanzia ambayo anaweza kutumia kama msingi wa jibu. |
| Rudia mara mbili | Wakati mwingine huenda ukahitaji kujirudia kwa modeli. Toa maelekezo kabla na baada ya maudhui makuu, tumia maelekezo na kiashiria, n.k. Rudia na hakiki kuona kinachofanya kazi. |
| Mpangilio ni Muhimu | Mpangilio wa kutoa taarifa kwa modeli unaweza kuathiri matokeo, hata katika mifano ya kujifunza, kutokana na upendeleo wa mpya (recency bias). Jaribu chaguzi tofauti kuona kinachoendana zaidi. |
| Mpe modeli njia ya kujiondoa | Mpe modeli jibu la badala la kukamilisha ikiwa haiwezi kutimiza kazi kwa sababu yoyote. Hii inaweza kupunguza nafasi ya modeli kutoa majibu ya uongo au yaliyotengenezwa. |
Kama ilivyo kwa mazoea yoyote bora, kumbuka kuwa matokeo yako yanaweza kutofautiana kulingana na modeli, kazi na sekta. Tumia haya kama mwanzo, na rudia kupata kinachofanya kazi vizuri kwako. Endelea kutathmini mchakato wako wa uhandisi wa prompt kadri modeli na zana mpya zinavyopatikana, kwa mtazamo wa upanuzi wa mchakato na ubora wa majibu.
Hongera! Umefika mwisho wa somo! Sasa ni wakati wa kujaribu baadhi ya dhana na mbinu kwa mifano halisi!
Kwa kazi yetu ya nyumbani, tutatumia Jupyter Notebook yenye mazoezi unaweza kuyakamilisha kwa maingiliano. Pia unaweza kuongeza seli za Markdown na Msimbo mwenyewe kuchunguza mawazo na mbinu kwa njia binafsi.
- (Inapendekezwa) Anzisha GitHub Codespaces
- (Mbali na hapo) Nakili repo kwenye kifaa chako cha ndani na uitumie na Docker Desktop
- (Mbali na hapo) Fungua Notebook na mazingira ya muda unaopendelea ya utendaji wa Notebook.
- Nakili faili
.env.copykwenye mizizi ya repo na uiite.envkisha jaza thamani zaAZURE_OPENAI_API_KEY,AZURE_OPENAI_ENDPOINTnaAZURE_OPENAI_DEPLOYMENT. Rudi kwenye sehemu ya Learning Sandbox kujifunza jinsi.
- Chagua kiini cha runtime. Ikiwa unatumia chaguo 1 au 2, chagua tu kiini cha Python 3.10.x chenye mkokoteni wa dev.
Uko tayari kuendesha mazoezi. Kumbuka kuwa hakuna majibu sahihi au makosa hapa - ni kuchunguza tu kwa njia ya jaribio na makosa na kujifunza hisia ya kile kinachofanya kazi kwa modeli na programu fulani.
Kwa sababu hii hapana sehemu za Suluhisho la Msimbo katika somo hili. Badala yake, Notebook itakuwa na seli za Markdown zilizo na kichwa "Suluhisho Langu:" kinachoonyesha mfano mmoja wa matokeo kwa rejea.
Ni ipi kati ya zifuatazo ni prompt nzuri inayofuata baadhi ya mazoea bora yanayokubalika?
- Nionyeshe picha ya gari jekundu
- Nionyeshe picha ya gari jekundu la chapa Volvo na mfano XC90 limeegeshwa kando ya mwamba wakati jua linapotua
- Nionyeshe picha ya gari jekundu la chapa Volvo na mfano XC90
J: 2, ni prompt bora zaidi kwa kuwa inatoa maelezo ya "nini" na kwenda undani zaidi (si gari yoyote tu bali chapa na mfano maalum) na pia inaeleza mazingira kwa ujumla. 3 ni bora ya pili kwa kuwa nayo ina maelezo mengi pia.
Tazama kama unaweza kutumia mbinu ya "kiashiria" na prompt: Malizia sentensi "Nionyeshe picha ya gari jekundu la chapa Volvo na ". Inajibu nini, na unaweza kuiboresha vipi?
Unataka kujifunza zaidi kuhusu dhana tofauti za Uhandisi wa Prompt? Nenda kwenye ukurasa wa kujifunza zaidi kupata rasilimali nyingine nzuri za mada hii.
Nenda kwenye Somo la 5 ambapo tutatazama mbinu za juu za prompting!
Kumbusho: Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI Co-op Translator. Wakati tunajitahidi kufanikisha usahihi, tafadhali fahamu kwamba tafsiri zinazotengenezwa kwa mashine zinaweza kuwa na makosa au upotovu wa maana. Hati ya asili katika lugha yake ya msingi inapaswa kuchukuliwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya kitaalamu kwa binadamu inashauriwa. Hatutorajii kuwajibika kwa kutokuelewana au makosa ya tafsiri yanayotokea kutokana na matumizi ya tafsiri hii.







