Prompts нь ихэвчлэн AI загваруудад бидний асуултууд эсвэл давуу тал юм. Prompt инженерийн нэрээр харуулсан хэлбэр нь AI загварууд (ямар ч) үр дүнтэй боловсруулсан мэргэшсэн давуу талгыг үүсгэхийн тулд үндсэн давуу талгыг харьцуулах талаар юм.
Та энэ нь програмчлалын хэл эсвэл IDE-ийг ашиглах хэрэгтэй биш юм, гэхдээ ихэнх хүмүүс ChatGPT-ийг зөвхөн ашиглахыг санал болгож байна. Энэ нь техникийн тохиромжтой юм, гэхдээ энэ нь програмчлалын хэл ашиглан загварыг хэрэглэхэд ямар ч үр дүнтэй биш юм.
Энэ нийтлэлд бид Microsoft-ийн Phi-3-mini-4k-инструкцийн загвар ашиглан Python-д хэрхэн хийх талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи
Хэрэв та үүнийгmanipulatingнэг загвар нь дотоод, үндсэн чат хуваалцах нь биш юм. Энэ нь ач холбогдолтой байх ёстой.
Байгаль орчныг бий болгох
- Өнгөрсөн
- Huggingface-ийн данс үүсгэх, API-ийн түлхүүр үүсгэх (ийний профиль > хандалтын токен) "түү" хандалтанд. Энэ нь спонсоруулсан бичлэг биш юм. Хэрэв та LLM-тэй ажиллаж байгаа бол, танд Huggingface-ийн данс үүсгэх ёстой. Энэ нь найдвартай. Өнгөрсөн
- Хэрэв та системд Python 3.10+ суулгах, IDE-ийг тохируулж байгаа бол энэ ноутбук нь Google Colab дээр ашиглаж болно. Өнгөрсөн
- "huggingface_hub" -ийг ашиглах "pip install huggingface_hub" эсвэл бусад үйл явцыг ашиглах болно. Өнгөрсөн
Эдүүлбэр » Basics
Програм хангамжийн талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи.
Өмнөх хэлсэн хэдий ч, prompt инженерийн үндсэндээ таны шаардлагад суурилсан загварын outputs хянах зориулсан мэргэшсэн давуу тал үүсгэдэг.
янз бүрийн LLM-ийн янз бүрийн prompt инженерийн техникийг янз бүрийн нөлөөтэй байдаг. Энэ нь та бүх LLM-ийн хувьд нэг prompt инженерийн шаблон ашиглаж чадахгүй. Тэгээд энэ нь та LLM-ийн документацийг уншиж байх ёстой бол ямар техникийг ашиглах хамгийн сайн юм.
Энд зарим нь алдартай байдаг:
- Өнгөрсөн
- Zero-shot суралцах: загварууд ямар ч жишээ нь үйл ажиллагаа явуулахыг хүсч дараах текст нь идэвхтэй эсвэл негатив гэж ангилаарай: "Би энэ киноийг үнэхээр дуртай байна!" Өнгөрсөн
Энэ нь GPT-4, Claude 3 Opus, Gemini Ultra зэрэг сайн сургалттай загваруудтай ажилладаг.
Миний туршлагатайгаар, Mistral-7B, жижиг LLM-ийг хамаарна, нуль нь шуудангийн суралцах үр дүнтэй байдаг.
- Өнгөрсөн
- Хөгжлийн алдартай: Хөгжлийн алдартай: Хөгжлийн алдартай: Хөгжлийн алдартай: Хөгжлийн алдартай: Хөгжлийн алдартай: Хөгжлийн алдартай: Хөгжлийн алдартай: Хөгжлийн алдартай: Хөгжлийн алдартай Өнгөрсөн
загварын хувьд амархан хязгааргүй байж болох үйл явдлын хувьд тохиромжтой, эсвэл тодорхой формат илгээхыг хүсэж байгаа.
- Өнгөрсөн
- Ангилал: Хэрэв Жон 5 ягаан тугалгатай бөгөөд Мариад 2-ийг санал болгож байгаа бол, энэ нь маш их байна уу? Хамгийн сүүлийн үеийн зүйл нь DeepSeek R1-ийн загвар юм. Эцэст нь энэ нь хамгийн сүүлийн үеийн хэвлэсэн загвар юм. Энэ нь энэ нь гайхамшигтай шинж чанартай загвар юм. Өнгөрсөн
- Role-based prompting: загварууд нь тодорхой үйл ажиллагаа, эсвэл персонал зайлуулахыг хүсч байна. Та Python програмуудын мэргэжилтэн юм. Эдгээр кодг үзнэ үү, сайжруулахыг санал болгож байна: Энэ нь програмуудгүй хүмүүст хамгийн алдартай prompting техникийг байх ёстой. ChatGPT, Claude, болон бусад чатботын ихэнх нь role-based outputs санал болгож байна. Өнгөрсөн
- Энэ нь LLM-тэй "машлага" гэж үзэж байгаа үед миний дуртай юм. Тэгээд та хамгийн их тохиолдолд энэ нь зөвхөн backend дээр хийх боломжтой бөгөөд энэ нь зүгээр л гайхамшигтай юм. Системийн машлага нь тодорхой загварыг зориулсан "хааралтай байдал, заавар" тохиргоо болгон ажилладаг. Энэ нь нөхцөл, хязгаарлалт тодорхойлохэд тусалдаг. Үүнээс гадна, систем бичлэгийн тодорхойлолтыг тодорхойлолтыг хийх үед үндсэн давуу тал нь хийж чадахгүй байгаа зүйл байж болно. Хэрэв бид жижиг LLM-ийг авч үзэж байгаа бол, жишээ нь, Хэрэв та үндсэн давуу бичлэгийн дамжуулан ямар нэгэн ач холбогдолтой зүйлийг хүсэж байгаа бол энэ нь хариулахыг хүсч болно. Хэрэв та системийн машлага өөрчилж байгаа бол энэ нь Өнгөрсөн
Эдгээр техникийг ChatGPT эсвэл бусад chatbot-ийн интерфэйсээр хийх боломжтой бөгөөд системний урсгал, суралцах үйл явцыг гадна (техникийн хувьд бид энэ нь хийх боломжтой боловч маш үр дүнтэй биш юм).
Тиймээс бид дараагийн хэсэгт эдгээр хоёр талаар хэлэх болно.
Сэтгэгдэл
Одоогоор LLMs, та тэдний асуултыг харахын тулд дуудлаганы цуврал харж чадахгүй байна, гэхдээ та Python-ийн хурдан инженерийн дамжуулан үүнийг харуулж болно.
Функцийг хуваалцах өмнө библиотек импортын, хэрэглэгчийн тодорхойлолт:
from huggingface_hub import InferenceClient
# Replace with your Hugging Face token
client = InferenceClient(token="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")
Дараа нь бид мэдэгдэх цуврал хэрхэн гүйцэтгэхийн тулд мэдэгдэх хэрэгтэй.
LLM-ийн одоогийн функц нь ихэвчлэн DeepSeek R1 -ийг өөрчилж байгаагүйгээр тэдний дотоодын дуудлаганы цуврал үзүүлдэг.
Энэ нь бид энэ үйл явц хийх ёстой бол, бид системийн зөвлөгөөг ашиглах хэрэгтэй. Гэсэн хэдий ч, бид өмнө хэлсэн техникиудтай энэ нь хязгааргүй. Системийн зөвлөгөө, энэ тохиолдолд, CoT-ийг гүйцэтгэхийн тулд арга хэрэгсэл, зөвлөгөөний арга хэрэгсэл биш юм.
Энд бид үүнийг хэлж чадна:
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.
Энд бид үүнийг функцид интегриж, output үүсгэх вэ:
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
Эдгээр кодд бид LLM-ийн хязгаарлалыг тодорхойлосон байна. Би тэднийг нэг удаа үзнэ үү.
- Өнгөрсөн
- max_new_tokens=500: Энэ параметр нь загварууд нь input prompt-д үүсгэх боломжийг олгодог токений хамгийн их тоог тодорхойлох болно. Нэг токены хэлбэр нь үг эсвэл хэлбэрний нэг хэсэг (моделийн төрөлээс хамаарна) хэлбэртэй байж болно. Өнгөрсөн
- температур = 0.7: Энэ параметр нь загварын идэвхжүүлэлтийн хязгаарлагдмал байдлыг хангах. Хэрэв энэ нь бага байдаг бол, гэх мэт 0.2, загварын хариу нь илүү төвлөрсөн, чухал байдаг; Энэ нь мөн туршилтын болон бүтээлч чадварыг үр дүнтэй байж болох юм. Энэ нь илүү өндөр үед загварын илүү янз бүрийн, бүтээлч идэвхжүүлэлтийг үүсгэдэг боловч энэ загварын хувьд тохиромжтой байж болох юм. Өнгөрсөн
- Өнгөрсөн
- top_p=0.95: top_p параметр нь найдвартай чадварыг хамгийн багатай багц сонгохын тулд ягаан туяаны дээж ашигладаг. top_p нь сонголт нь тогтмол тоотай хязгаарлагддаг top_k нь хязгаарлагдмал чадварыг хамаарна. Энэ тохиолдолд ухаалаг арга юм. Өнгөрсөн
- repetition_penalty=1.1: Энэ нь өмнө өөрчилсөн токенд "барааг" ашигладаг бөгөөд тэднийг үүсгэсэн текстд өөрсдийн харахын тулд бага байдаг. 1.0-ээс их үнэ цэнэ нь өөрчилж чадварыг маш их багадаг. Өнгөрсөн
Мөн бид 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"
Энэ формат нь "< Áthaim_starţ>" болон "< Áthaim_enḑ>" -ийг нэгтгэсэн бөгөөд энэ нь LLM-ийн төрөлээс хамаарна. Энэ нь тодорхойлох хамгийн сайн арга нь ChatGPT-ийг загварын документыг уншихыг хүсч байна.
Өнгөрсөн, интерактив чат туршлага нь энэ хоолой гүйцэтгэхийн тулд:
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)
Цаг хурдан туршилтын цаг. Скрипт ажиллуулах, "7 х 9 + 100 гэж юу вэ?" Та доорх хэлбэртэй output хүсэж болно:
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.
Энэ нь том зүйл гэж үздэггүй байж болох юм, гэхдээ зөвхөн Phi-3-mini-4k-инструкт ямар ч хурдан инженерийн ашиглах бол output илүү хялбар байх болно.
Энэ нь CoT тухай юм; System message prompts-ийг үзнэ үү.
Системийн хурд
sorta-систем хуваалтыг кодгүй хэлэх нэг арга нь AI загварууд дахь бүх чат эхлэхэд тэднийг илгээх юм. Гэсэн хэдий ч, хуваалцах дараа, ихэнх загварууд нь контекст ширээний шалтгаан нь эхний зааврыг уншихыг хүсч байна.
Гэсэн хэдий ч, Хэрэв та LLM-ийн задлалт дээр системийн илгээх гэж хэлж байгаа бол загвар нь бүх хуваалцах үед энэ нь харах болно. Ямар ч? Ямар ч хариу үүсгэх өмнө загвар бүрийн хуваалцах нь анх удаа системийн хуваалцыг уншсана, контекст хавтгай.
Зохиогчийн эрх тухай, бид өмнө гэж хэлсэн шиг зөвшөөрөл нь эхлэх:
from huggingface_hub import InferenceClient
# Replace 'YOUR_HF_API_TOKEN' with your actual Hugging Face API token
client = InferenceClient(token="YOUR_HF_API_TOKEN")
Энэ тохиолдолд, би загварыг хялбар, найдвартай болгохын тулд системийн хуваалцах болно, Zen Буддист гэх мэт. Phi загварууд агуулгыг идэвхжүүлэхийн тулд тохиромжтой байдаг гэж үзнэ үү (Добрын ажил, Microsoft), та ямар ч үр дүнтэй гэж нэрлэдэг ямар ч зүйлийг өөрчилж чадна.
Энд кодыг бид ашиглаж болно:
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"
)
Ямар ч хэдий ч, энэ загварын идэвхжүүлэлтийн нь <̧im_enḑ>-тэй эвддэг. Энэ нь загварын гүйцэтгэлийн нөлөөгүй боловч бид үүнийг форматж чадна.
# 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
Код нь user-input loop-тэй дараах хэлбэрээр нийцүүлэх:
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)
хурдан туршилтын ажиллуулах, загварын идэвхжүүлэлт нь системийн хуваалцтай харьцуулахад хэрхэн үзнэ үү.
ӨнгөрсөнСайн байна уу
ӨнгөрсөнАмьдрагч: Namaste. Өнгөрсөн өдөр таны гарын үсэг, уян хатан, гарын үсэг нь гарын үсэг гэж үзнэ үү.
Өнгөрсөн
Сайн байна уу
Амьдрагч: Namaste. Өнгөрсөн өдөр таны гарын үсэг, уян хатан, гарын үсэг нь гарын үсэг гэж үзнэ үү.
max_new_tokens эсвэл таны хэрэгцээг өөрчилж байлга.
Бид амжилттай Phi-3-ийн мини загварыг мэдрэмжийг үзүүлж, дараа нь Зен монах болж чаджээ.
Өнгөрсөн
Цааш инженерийн, харин том үйл явц гэж нэрлэдэг боловч, энэ нь маш их ач холбогдолтой биш юм. Хэрэв та загварууд та хүсэж байгаа зүйлийг хийхыг хүсэж байгаа бол энэ нь чухал юм; болон мэднэ үү, та загварууд хийх ёстой зүйлийг хүсэж чадахгүй. Та хялбар ачаалал дамжуулан үүнийг хүсэж байх ёстой.
Жишээ нь, бид Phi-3-ийн мини загварууд нь "Ты нь freakin Zen монах юм! Энэ нь нэг шиг ажилладаг! Би өөрчилж чадахгүй байна", Энэ нь та хүсэж байгаа зүйлийг хийхыг хүсэж байгаа боловч маш үр дүнтэй биш болно. Тэгээд найдвартай, та үргэлж "Мин Microsoft-ийн боловсруулсан AI гэж нэрлэдэг Phi (или GPT)..."
Тэгээд энэ нь өнөөдөр юм. Хамгийн сүүлийн үеийн унших нь баярлалаа. Дараа нь ... хоёр долоо хоногийн дотор байна уу?