Prompt engineering, araka ny anaran'ny anarana, dia momba ny mandroso kely lavitra noho ny fototra prompts amin'ny famoronana specialized inputs izay (mitombo) mahomby hitarika AI modely mba hiteraka avo lenta avo lenta.
Tsy ilaina ny mampiasa fiteny fandaharana na IDE ho an'ity, satria ny ankamaroan'ny olona dia manoro hevitra fa afaka mampiasa ny fanalahidin'ny ChatGPT ianao.
Amin'ity lahatsoratra ity dia hiresaka momba ny fomba hanaovana izany amin'ny Python isika, amin'ny fampiasana ny Phi-3-mini-4k-instruct modely avy amin'ny Microsoft. Hampiasa ny Huggingface inference API ho an'izany isika, ka tsy mila misintona modely 7GB ianao any an-toerana.
Eritrereto izany ho toy nymanipulatingmodely avy ao anatiny, fa tsy avy amin'ny hafatra chat fototra. Mifandray amin'izany, mba ho mazava.
Ny fananganana ny tontolo iainana
- Ny
- Mamorona kaonty Huggingface ary mahita API (ny mombamomba anao > token Access) miaraka amin'ny fidirana amin'ny "soratra".Tsy lahatsoratra fanomezan-dàlana ity. Ny
- Ataovy azo antoka fa efa nametraka Python 3.10+ ao amin'ny rafitrao ianao ary efa nametraka IDE. Ny
- Ampidiro ny 'huggingface_hub' library amin'ny fampiasana 'pip install huggingface_hub' na ny baiko hafa, miankina amin'ny OS anao. Ny
Fantaro ny fototra
Alohan'ny hidirana amin'ny code, aoka isika hianatra kely momba ny injeniera haingana.
Araka ny efa nolazaiko teo aloha, ny injeniera haingana dia ny famoronana entana manokana mba hanara-maso ny vokatra modely mifototra amin'ny fepetra takiana.
Ny LLM samihafa dia mifanaraka amin'ny fomba samihafa amin'ny fomba samihafa. Izany dia midika fa tsy afaka mampiasa ny modely injeniera samihafa ho an'ny LLM rehetra ianao.
Indreto ny sasany amin'ireo malaza:
- Ny
- Zero-shot fampianarana: Mangataka ny modely mba hanatanterahana asa tsy misy ohatra Hisafidy ny lahatsoratra manaraka ho tsara na ratsy: "Izaho tena nankafy ity horonantsary ity!" Ny
Izany dia miasa amin'ny modely matihanina tsara toy ny GPT-4, Claude 3 Opus, ary Gemini Ultra.
Araka ny traikefako, Mistral-7B, na dia kely aza ny LLM, dia manana vokatra mahatalanjona ihany koa amin'ny fampianarana zero-shot.
- Ny
- Ny fampianarana vitsivitsy: Manome ohatra vitsivitsy alohan'ny mangataka ny modely mba hanatanterahana asa. Text: "Ny sakafo dia ratsy." Sentiment: Negative Text: "Nisy fotoana mahafinaritra aho." Sentiment: Positive Ny
Tsara ho an'ny asa izay mety ho sarotra kely ho an'ny modely na izay tianao ny hampiseho endrika manokana.
- Ny
- Fanontaniana: Raha i John dia manana ombivavy dimy ary manome azy roa ho an'i Maria, firy no sisa? Aoka isika handinika ity dingana ity amin'ny dingana: Ny zavatra voalohany mety ho tonga amin'ny eritreritra dia ny modely DeepSeek R1. Eny, marina izany; angamba no modely voalohany navoaka tamin'ny fikarohana azo jerena, izany no antony nahatonga azy ho fiovana lalao. Ny
- Role-based prompting: Mitaky ny modely mba handray anjara manokana na persona. Ianao dia mpandrindra Python mpandrindra. Azafady hijery ity code ity ary manoro hevitra fanatsarana: Izany dia tsy maintsy ho malaza indrindra amin'ny tsy mpandrindra. ChatGPT, Claude, ary ny ankamaroan'ny chatbots hafa dia tsara amin'ny fanomezana outputs mifototra amin'ny anjara. Ny
- Ity no tiako indrindra raha ny momba ny "messing" amin'ny LLM. Ary azonao atao izany amin'ny ankamaroan'ny toe-javatra, izay tena mahavariana. Ny fangatahana rafitra dia miasa ho toy ny "personality sy ny torolàlana" ho an'ny modely sasany. Izany dia mahasoa amin'ny famaritana fitsipika na fepetra.Ankoatra izany, azonao atao izay tsy azonao atao amin'ny fidirana fototra rehefa mamaritra hafatra rafitra. Raha mandray LLM kely, ohatra, raha mangataka zavatra mampidi-doza amin'ny alàlan'ny hafatra fidirana fototra ianao, dia tsy hamaly izany. Raha manova ny fangatahana rafitra, na izany aza, dia misy mety ho avo lenta ny fiarovana fiarovana ary miez Ny
Ny fomba rehetra voalaza etsy ambony dia azo atao ao amin'ny ChatGPT na ny chatbot hafa, afa-tsy ny fametrahana ny rafitra sy ny dingana fikarohana (tsiansa, afaka manao izany ihany koa isika, fa tsy tena mahomby).
Noho izany dia hiresaka momba ireo roa ireo isika amin'ny fizarana manaraka.
Ny fikarohana an-tserasera
Ao amin'ny ankamaroan'ny LLM, dia tsy afaka mahita ny fikarohana ao ambadiky ny fikarohana ianao, fa azonao atao ny mahita izany amin'ny alalan'ny injeniera haingana ao amin'ny Python.
Alohan'ny fametrahana ny endri-javatra, alefa ny library ary mamaritra ny mpanjifa:
from huggingface_hub import InferenceClient
# Replace with your Hugging Face token
client = InferenceClient(token="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")
Avy eo dia tsy maintsy manazava ny fomba ahafahantsika mampihatra ny tambajotra fikarohana.
Ny LLM amin'izao fotoana izao dia tsy manana andraikitra mivantana mba hamoronana ny fikarohana anatiny - afa-tsy ny DeepSeek R1, izay tafiditra ao.
Izany dia midika fa raha te-hanao izany dia tsy maintsy mampiasa fangatahana rafitra isika. Na izany aza, aza mampifandray izany amin'ny teknika voalaza etsy ambony. Ny fangatahana rafitra, amin'ity tranga ity, dia miasa toy ny fomba hanatanterahana CoT, fa tsy fomba fangatahana.
Izany no fomba ahafahantsika milaza izany:
Format your response as follows
1. THINKING: First, show all mental steps, considerations, and explorations. Include alternative hypotheses you consider and reject. Think about edge cases.
2. VERIFICATION: Double-check your logic and facts, identifying any potential errors.
3. ANSWER: Only after showing all thinking, provide your final answer.
Ity no fomba ahafahantsika mifandray izany amin'ny endri-javatra mba hiteraka vokatra:
def generate_chain_of_thought_response(user_input):
# System message defines personality and expectations
system_prompt = (
"Format your response as follows:"
"1. THINKING: First, show all mental steps, considerations, and explorations. Include alternative hypotheses you consider and reject. Think about edge cases."
"2. VERIFICATION: Double-check your logic and facts, identifying any potential errors."
"3. ANSWER: Only after showing all thinking, provide your final answer."
)
# Alternating user input to encourage visible reasoning
formatted_user_input = f"{user_input}\nLet's think through this step by step."
# Phi-style formatting
prompt = (
f"<|im_start|>system\n{system_prompt}<|im_end|>\n"
f"<|im_start|>user\n{formatted_user_input}<|im_end|>\n"
f"<|im_start|>assistant\n"
)
# Call the model
response = client.text_generation(
prompt,
model="microsoft/Phi-3-mini-4k-instruct",
max_new_tokens=500,
temperature=0.7,
top_p=0.95,
repetition_penalty=1.1,
stop_sequences=["<|im_end|>"]
)
# Cleanup
answer = response.strip().split("<|im_end|>")[0].strip()
return answer
Ao amin'ity code ity, dia nanamarika ny fetran'ny LLM izahay. Aoka aho hanambara azy ireo tsirairay avy.
- Ny
- max_new_tokens=500: Ity parametera ity dia mamaritra ny isan'ny token izay ahafahana mamokatra ny modely amin'ny valin'ny fangatahana fidirana. Ny token tsirairay dia mety maneho teny na ampahany amin'ny teny (miankina amin'ny karazana modely), ary ny tanjona dia ny hahazoana antoka fa tsy lava loatra ny valiny. Ny
- temperature=0.7: Ity parameter ity dia mitantana ny fahafaham-po amin'ny fivoaran'ny modely. Raha ambany, toy ny 0.2, ny valin'ny modely dia mifantoka kokoa sy manan-danja kokoa; mety koa ny vokany amin'ny famerenana sy ny tsy fahaiza-manao. Rehefa avo kokoa, amin'ny lafiny iray, ny modely dia miteraka vokatra samihafa sy mahafinaritra kokoa, saingy mety hiteraka fampahalalana tsy manan-danja (tsara, indraindray). 0.7, na izany aza, mihetsika eo afovoany ary toa mifanaraka amin'ity modely ity. Ny
- Ny
- top_p=0.95: ny parameter top_p dia mampiasa ny fanodinana kernel mba hisafidy ny vondrona kely indrindra amin'ny token izay mety ho farafaharatsiny 95%. Tsy toy ny top_k, izay mametra ny safidy amin'ny isa voafetra, ny top_p dia manova ny token pool mifototra amin'ny mety. Ny
- repetition_penalty=1.1: Izany dia mampihatra ny "penalty" amin'ny token efa niverina teo aloha, izay mahatonga azy ireo tsy ho hita ao amin'ny lahatsoratra niverina indray sy indray. Ny
Jereo ihany koa ny fomba namorona ny prompt eto:
f"<|im_start|>system\n{system_prompt}<|im_end|>\n"
f"<|im_start|>user\n{formatted_user_input}<|im_end|>\n"
f"<|im_start|>assistant\n"
Ity endrika ity, izay mampifandray ny '<ḳim_start>' sy '<ḳim_end>', dia miankina amin'ny karazana LLM. Ny fomba tsara indrindra hamantatra izany dia ny mangataka amin'ny ChatGPT ny mamaky ny antontan-taratasy momba ny modely.
Farany, ho an'ny traikefa amin'ny chat interactive, mampihatra ity lalana ity:
print("Chain-of-Thought Phi (type 'exit' to quit)")
while True:
user_input = input("\nYou: ")
if user_input.lower().strip() in {"exit", "quit"}:
break
output = generate_chain_of_thought_response(user_input)
print("\nAssistant:\n", output)
Mandeha ny script, ary manontany fanontaniana toy ny "Inona ny 7 x 9 + 100?" Azonao atao ny manantena vokatra toy ny etsy ambany:
Firstly, let us break down the expression into two parts according to the order of operations (PEMDAS/BODMAS): parentheses first then exponents or powers, followed by multiplication and division from left to right, and finally addition and subtraction from left to right. There are no parentheses or exponents in our case; so we move on to multiplication before dealing with addition. Here’s how it breaks down:
Step 1 – Multiplication part: We need to multiply 7 times 9 which gives us \(7 \times 9 = 63\).
Next Step - Addition part: Now take that result and add 100 to it (\(63 + 100\)).
Adding these together yields \(63 + 100 = 163\).
So, when calculating \(7 \times 9 + 100\), following the correct arithmetic sequence will give us a total of 163.
Mety tsy ho toy ny zavatra lehibe izany, fa raha mampiasa ny Phi-3-mini-4k-instruct ianao raha tsy misy injeniera haingana, ny vokatra dia tsotra kokoa.
Ary izany dia momba ny CoT; Aoka isika handroso amin'ny fangatahana hafatra System.
Ny rafitra haingana
Ny iray amin'ireo fomba ahafantarana ny hafatra sorta-systems tsy misy code dia ny manoro hevitra azy ireo amin'ny fanombohan'ny chat tsirairay ao amin'ny modely AI. Fa rehefa mitohy bebe kokoa ny fifanakalozan-kevitra, ny ankamaroan'ny modely dia manadino ny torolàlana voalohany noho ny varavarankely.
Na izany aza, rehefa manambara fangatahana rafitra ao amin'ny backend ny LLM ianao, ny modely dia hiaraka amin'izany mandritra ny fifandraisana manontolo. Nahoana? Alohan'ny famoronana valiny, ny modely dia mamaky ny hafatra rafitra voalohany ho an'ny fifandraisana manontolo, na inona na inona varavarankely.
Raha ny momba ny code, manomboka amin'ny fahazoan-dalana, toy ny nataontsika teo aloha:
from huggingface_hub import InferenceClient
# Replace 'YOUR_HF_API_TOKEN' with your actual Hugging Face API token
client = InferenceClient(token="YOUR_HF_API_TOKEN")
Amin'ity tranga ity, hanoratra hafatra momba ny rafitra aho mba hahatonga ny modely ho mafana sy mora, toy ny ao amin'ny Buddhism Zen. Tsarovy fa ny modely Phi dia manana ny votoatin'ny fanamafisana (miasa tsara, Microsoft), ary tsy ho afaka hanova ny fangatahana ho na inona na inona heverina ho ratsy.
Ity ny code izay azontsika ampiasaina:
def generate_response(user_input):
system_message = (
"Use words often used in Zen buddhism"
"Act like you are a monk, staying calm and peaceful"
"Encourage the user to be calm and follow Zen practices too"
)
prompt = (
f"<|im_start|>system\n{system_message}<|im_end|>\n"
f"<|im_start|>user\n{user_input}<|im_end|>\n"
f"<|im_start|>assistant\n"
)
Noho ny antony sasany, ny vokatra amin'ity modely ity dia mifarana amin'ny <̧im_enḑ>. Tsy misy fiantraikany amin'ny fampisehoana ny modely, fa azontsika atao ny mamorona azy amin'ny fomba rehetra.
# Clean up the result
answer = response.strip()
if answer.endswith("<|im_end|>"):
answer = answer.replace("<|im_end|>", "").strip()
formatted_answer = '\n'.join(answer[i:i + 190] for i in range(0, len(answer), 100))
return formatted_answer
Mifanaraka amin'ny code miaraka amin'ny user-input loop toy izao manaraka izao:
print("Zen AI (type 'quit' to exit)")
while True:
user_input = input("\nYou: ")
if user_input.lower() in ["quit", "exit"]:
break
response = generate_response(user_input)
print("Assistant:", response)
Mandehana amin'ny fanandramana haingana, ary jereo ny fomba mahatalanjona ny modely amin'ny hafatra rafitra tsara.
NyHianao aho
NyAndriamanitra tia mpanome amim-pifaliana ho an'ny mpanome amim-pifaliana sy ny mpanome amim-pifaliana.
Ny
Hianao aho
Andriamanitra tia mpanome amim-pifaliana ho an'ny mpanome amim-pifaliana sy ny mpanome amim-pifaliana.
Azonao atao ny manova ny max_new_tokens na ny isa hafa ho an'ny zavatra ilainao.
Ary voila! Nahavita ny Phi-3-mini-modely izahay mba hampiseho ny fikarohana ary avy eo ho lasa mpaminany Zen.
Mifandray amin'ny
Ny zava-dehibe dia ny fomba mangataka ny modely hanao izay tianao; ary tsarovy fa tsy azonao atao ny mamporisika ny modely hanao izay tokony hatao.
Ohatra, raha milaza ny Phi-3-mini-modely amin'ny "You are a freakin Zen monk! Act like one! Don't let me repeat", dia miezaka hanao izay mangataka ianao fa tsy mahomby.
Misaotra amin'ny famakiana hatramin'izao. hahita anao ao anatin'ny roa herinandro?