ফিউ-শট প্রম্পট টেমপ্লেট
প্রম্প্টে ইন্টার্যাক্টিভ নমুনা অন্তর্ভুক্ত করা, মডেল কে ব্যবহারকারীর ইনটেন্ট ভালো করে বোঝার সাথে সাথে অনুপ্রাণিত উত্তর দেয়ার জন্য তাকে নির্দেশ দেওয়া। ফিউ-শট প্রম্পট টেমপ্লেট বা উদাহরণ সেট হল নতুন ইনপুটসমূহের প্রবেশে মডেলকে নির্দেশিত করার জন্য কিছু উদাহরণ ব্যবহার করা। এই উদাহরণ গুলি মডেলে প্রশিক্ষণ দেওয়া যেতে পারে যাতে সমান প্রশ্নগুলি বোঝার এবং উত্তর দেয়ার জন্য অধিক ভালো হয়।
Example:
Q: What is Batman?
A: Batman is a fictional comic character.
Q: What is torsalplexity?
A: Unknown.
Q: What is a language model?
A:
মডেলকে বলুন যে Q প্রশ্ন এবং A উত্তর, এবং এই করতে এই ফর্ম্যাটে ইন্টারেক্ট করুন।
নিম্নলিখিত Lanchain দ্বারা সরবরাহকৃত সরবরাহকৃত টুল ক্লাসের বর্ণনা নিউনিত সম্প্রতি ইনসার্টিং করার জন্য নামুনা উদাহরণের একটি অনুবাদ হল।
উদাহরণ সেট ব্যবহার
নমুনা সেট তৈরি করা
নীচে উদাহরন
অ্যারে নির্ধারণ করুন, যা একটি সেট কুশল প্রশ্ন ও উত্তর সমূহ রাখে।
from langchain.prompts.few_shot import FewShotPromptTemplate
from langchain.prompts.prompt import PromptTemplate
examples = [
{
"question": "Whose lifespan is longer, Muhammad Ali or Alan Turing?",
"answer":
"""
আমাদের এই প্রশ্নের অনুসরণ করতে হবে কি: হ্যাঁ।
অনুসরণ: মুহাম্মাদ আলীর মৃত্যু হতে কত বছর পরজন্ম হয়েছিল?
মধ্যবর্তী উত্তর: মুহাম্মাদ আলী মৃত্যুবর্ষে ৭৪ বছর বয়সী ছিলেন।
অনুসরণ: আলান টিউরিং মৃত্যুবর্ষে ৪১ বছর বয়সী ছিলেন।
তাহলে চূড়ান্ত উত্তরটি: মুহাম্মাদ আলী
"""
},
{
"question": "When was the founder of craigslist born?",
"answer":
"""
আমাদের এই প্রশ্নের অনুসরণ করতে হবে কি: হ্যাঁ।
অনুসরণ: ক্রেগ্স প্রতিষ্ঠাতা কে?
মধ্যবর্তী উত্তর: ক্রেগ্সটি ক্রেগ নিউমার্ক দ্বারা প্রতিষ্ঠিত হয়েছিল।
অনুসরণ: ক্রেগ নিউমার্ক কবে জন্মগ্রহণ করেছিলেন?
মধ্যবর্তী উত্তর: ক্রেগ নিউমার্ক ৬ ডিসেম্বর, ১৯৫২ সালে জন্মগ্রহণ করেছিলেন।
তাহলে চূড়ান্ত উত্তরটি: ৬ ডিসেম্বর, ১৯৫২
"""
},
{
"question": "Who was the mother of George Washington's grandparents?",
"answer":
"""
আমাদের এই প্রশ্নের অনুসরণ করতে হবে কি: হ্যাঁ।
অনুসরণ: জর্জ ওয়াশিংটনের মা কে ছিলেন?
মধ্যবর্তী উত্তর: জর্জ ওয়াশিংটনের মা ছিলেন মেরি বলে ওয়াশিংটন।
অনুসরণ: মেরি বল ওয়াশিংটনের বাবা কে ছিলেন?
মধ্যবর্তী উত্তর: মেরি বল ওয়াশিংটনের বাবা ছিলেন জোসেফ বল।
তাহলে চূড়ান্ত উত্তরটি: জোসেফ বল
"""
},
{
"question": "Do the directors of 'Jaws' and 'Casino Royale' come from the same country?",
"answer":
"""
আমাদের এই প্রশ্নের অনুসরণ করতে হবে কি: হ্যাঁ।
অনুসরণ: 'জঃ' এর নির্দেশক কে?
মধ্যবর্তী উত্তর: 'জঃ' এর নির্দেশক ছিলেন স্টিভেন স্পিলবার্গ।
অনুসরণ: স্টিভেন স্পিলবার্গ কোথা থেকে ছিলেন?
মধ্যবর্তী উত্তর: মার্কিন যুক্তরাষ্ট্র।
অনুসরণ: 'ক্যাসিনো রয়াল' এর নির্দেশক কে?
মধ্যবর্তী উত্তর: 'ক্যাসিনো রয়াল' এর নির্দেশক ছিলেন মার্টিন ক্যাম্পবেল।
অনুসরণ: মার্টিন ক্যাম্পবেল কোথা থেকে ছিলেন?
মধ্যবর্তী উত্তর: নিউজিল্যান্ড।
তাহলে চূড়ান্ত উত্তরটি: না
"""
}
]
ছোট নমুনা উদাহরণ ফর্ম্যাটের জন্য ফর্ম্যাটার তৈরি
ফাঁক পাতা টেমপ্লেট অবজেক্টটি ব্যবহার করে সরলভাবে উদাহরণ গুলি প্রম্পট টেমপ্লেটে ঢুকিয়ে নিতে।
example_prompt = PromptTemplate(input_variables=["question", "answer"], template="Question: {question}\\n{answer}")
print(example_prompt.format(**examples[0]))
আউটপুট:
প্রশ্ন: মুহাম্মাদ আলী বা আলান টিউরিং, কার জীবনকাল বেশি?
আমাদের এই প্রশ্নের অনুসরণ করতে হবে কি: হ্যাঁ।
অনুসরণ: মুহাম্মাদ আলীর মৃত্যু হতে কত বছর পরজন্ম হয়েছিল?
মধ্যবর্তী উত্তর: মুহাম্মাদ আলী মৃত্যুবর্ষে ৭৪ বছর বয়সী ছিলেন।
অনুসরণ: আলান টিউরিং মৃত্যুবর্ষে ৪১ বছর বয়সী ছিলেন।
তাহলে চূড়ান্ত উত্তরটি: মুহাম্মাদ আলী
### FewShotPromptTemplate প্রদান করা এবং ফরম্যাটিং সাধারণ ছবিতে
`FewShotPromptTemplate` অবজেক্ট দিয়ে, আপনি স্যাম্পল কন্টেন্ট বালিকা ইনসার্ট করতে পারেন।
```python
prompt = FewShotPromptTemplate(
examples=examples,
example_prompt=example_prompt,
suffix="প্রশ্ন: {input}",
input_variables=["input"]
)
print(prompt.format(input="জর্জ ওয়াশিংটনের পিতা কে?"))
ফিরোন:
প্রশ্ন: কার জীবনকাল লম্বা, মুহাম্মদ আলি না আলান টিউরিং?
আমাদের এই প্রশ্নের অনুসরণ করতে হবে: হ্যাঁ।
অনুসরণ করুন: মুহাম্মদ আলি যখন মারা গেছিলেন, তখন কত বছরের ছিলেন?
মধ্যবর্তী উত্তর: মুহাম্মদ আলি মারা গেলে ৭৪ বছরের ছিলেন।
অনুসরণ করুন: আলান টিউরিং যখন মারা গেছিলেন, তখন কত বছরের ছিলেন?
মধ্যবর্তী উত্তর: আলান টিউরিং মারা গেলে ৪১ বছরের ছিলেন।
তাই চূড়ান্ত উত্তরটি হল: মুহাম্মদ আলি
প্রশ্ন: কতটা ধরনের বয়স ছিল ক্রেগসতুর্রের প্রতিষ্ঠাতার?
আমাদের এই প্রশ্নের অনুসরণ করতে হবে: হ্যাঁ।
অনুসরণ করুন: ক্রেগসতুর্রের প্রতিষ্ঠাতার হ্যাঁ কে?
মধ্যবর্তী উত্তর: ক্রেগসতুর্রের প্রতিষ্ঠাতার ক্রেগ নিউমার্ক এবারডাক, [sic](sic) দ্বিতীয় ছিলেন।
অনুসরণ করুন: ক্রেগ নিউমার্ক যখন জন্মে হয়েছিল?
মধ্যবর্তী উত্তর: ক্রেগ নিউমার্ক জন্ম হয়েছিল ৬ ডিসেম্বর, ১৯৫২।
তাই চূড়ান্ত উত্তরটি হল: ৬ ডিসেম্বর, ১৯৫২
প্রশ্ন: জর্জ ওয়াশিংটনের নানার মা কে?
আমাদের এই প্রশ্নের অনুসরণ করতে হবে: হ্যাঁ।
অনুসরণ করুন: জর্জ ওয়াশিংটনের মা কে?
মধ্যবর্তী উত্তর: জর্জ ওয়াশিংটনের মা হচ্ছে মেরি বল ওয়াশিংটন।
অনুসরণ করুন: মেরি বল ওয়াশিংটনের বাবা কে?
মধ্যবর্তী উত্তর: মেরি বল ওয়াশিংটনের বাবা জোসেফ বল।
তাই চূড়ান্ত উত্তরটি হল: জোসেফ বল
প্রশ্ন: "Jaws" এবং "Casino Royale" এর পরিচালকরা একই দেশে থেকে কি?
আমাদের এই প্রশ্নের অনুসরণ করতে হবে: হ্যাঁ।
অনুসরণ করুন: "Jaws" এর পরিচালক কে?
মধ্যবর্তী উত্তর: "Jaws" এর পরিচালক স্টিভেন স্পীলবার্গ।
অনুসরণ করুন: স্টিভেন স্পীলবার্গ কোথা থেকে?
মধ্যবর্তী উত্তর: মার্কিন যুক্তরাষ্ট্রে।
অনুসরণ করুন: "Casino Royale" এর পরিচালক কে?
মধ্যবর্তী উত্তর: "Casino Royale" এর পরিচালক মার্টিন ক্যাম্পবেল।
অনুসরণ করুন: মার্টিন ক্যাম্পবেল কোথা থেকে?
মধ্যবর্তী উত্তর: নিউ জিল্যান্ড।
তাই চূড়ান্ত উত্তরটি হল: না
প্রশ্ন: জর্জ ওয়াশিংটনের পিতা কে?
স্যাম্পল সিলেক্টর ব্যবহার করা
ExampleSelector
এ উদাহরণ প্রদান করুন
এখানে আমরা আগের অংশ থেকে স্যাম্পল সেট এবং প্রম্পট টেম্পলেট পুনর্ব্যবহার করব। তাছাড়াই, FewShotPromptTemplate
অবজেক্টে সরাসরি উদাহরণগুলি প্রদান করে ডাকা প্রন্তে সকল উদাহরণ ইনসার্ট না করে, আমরা এগুলি একটি ExampleSelector
অবজেক্টে প্রদান করবো যেখানে অনুসরণকে উপরে SemanticSimilarityExampleSelector
ক্লাস ব্যবহার করবো। এই ক্লাস এখানে ইনপুটের সাথে এর মধ্যে সমান্যতা ভিত্তিক ছোট স্যাম্পল উদাহরণ নির্বাঁধ করে। এটি সদ্য ভেক্টর গণনা এবং ভেক্টর ডাটাবেজগুলি ব্যবহার করে ইনপুট এবং ছোট স্যাম্পল উদাহরণগুলির মধ্যে সমান্তরাল খোঁজ করে এবং এরপর উদাহরণ নির্বাঁধ করে।
- দ্রষ্টব্য: এটি ভেক্টর গণনা এবং ভেক্টর ডাটাবেজ উপরিভাগের মুখ্যত শিক্ষা অঞ্চলে ব্যবহৃত, যেমন ডাটা সমান্যতা অনুসন্ধানে নিতান্তই ব্যবহৃত হয়। এখানে আপনি এখনকার জন্য একটি সাধারন ধারণা পাবেন।
from langchain.prompts.example_selector import SemanticSimilarityExampleSelector
from langchain_community.vectorstores import Chroma
from langchain_openai import OpenAIEmbeddings
example_selector = SemanticSimilarityExampleSelector.from_examples(
examples,
OpenAIEmbeddings(),
Chroma,
k=1
)
question = "জর্জ ওয়াশিংটনের পিতা কে?"
selected_examples = example_selector.select_examples({"question": question})
print(f"সবচেয়ে সমান উদাহরণ: {question}")
for example in selected_examples:
print("\\n")
for k, v in example.items():
print(f"{k}: {v}")
এখানে, প্রশ্নের সাথে মিলির উদাহরণগুলি নির্বাচন করা হয় এবং নিম্নলিখিত ফিরোন:
Chroma সরাসরি লোকাল API ব্যবহার করে চালু করা হচ্ছে।
DuckDB মেমোরিতে ডাটাবেস ব্যবহৃত হচ্ছে। ডাটা অস্থায়ী হবে।
সবচেয়ে মিলানসার উদাহরণ: জর্জ ওয়াশিংটনের নানার মা কে?
প্রশ্ন: জর্জ ওয়াশিংটনের মা কে?
উত্তর:
আমরা আমি এই প্রশ্নের অনুসরণ করব: হ্যাঁ।
Follow up: জর্জ ওয়াশিংটনের মা কোন হচ্ছে?
মধ্যবর্তী উত্তর: জর্জ ওয়াশিংটনের মা হচ্ছে মেরি বল ওয়াশিংটন।
অনুসরণ করুন: মেরি বল ওয়াশিংটনের বাবা কে?
মধ্যবর্তী উত্তর: মেরি বল ওয়াশিংটনের বাবা জোসেফ বল।
তাই চূড়ান্ত উত্তরটি হল: জোসেফ বল
শেষবারের প্রয়োগিক_নির্বাচক = example_selector
চলক = FewShotPromptTemplate(
example_selector=প্রয়োগিক_নির্বাচক,
example_prompt=example_prompt,
suffix="প্রশ্ন: {input}",
input_variables=["input"]
)
print(prompt.format(input="জর্জ ওয়াশিংটনের পিতা কে?"))