Prompt Engineering

استفاده از قدرت زمینه: نگاهی عمیق به پرامپت‌دهی چندمثالی

در چشم‌انداز به‌سرعت در حال تحول توسعه مدل‌های زبانی بزرگ (LLM)، کیفیت خروجی شما مستقیماً با کیفیت ورودی شما تناسب دارد. اگرچه پرامپت‌دهی صفرمثالی—درخواست از مدل برای انجام یک وظیفه بدون ارائه مثال—به یک خط مبنا استاندارد تبدیل شده است، اما اغلب دقت مورد نیاز برای کاربردهای پیچیده و تخصصی حوزه را ندارد. در اینجا پرامپت‌دهی چندمثالی وارد می‌شود؛ تکنیکی که شکاف بین دستورالعمل‌های پایه و اجرای در سطح متخصص را با ارائه تعدادی مثال illustrative در خود پرامپت پر می‌کند.

درک مکانیک‌های پرامپت‌دهی چندمثالی

یادگیری چندمثالی به توسعه‌دهندگان اجازه می‌دهد تا رفتار LLM را با نشان دادن الگوی مطلوب هدایت کنند، نه اینکه صرفاً آن را توصیف کنند. برخلاف رویکردهای صفرمثالی که تنها به وزن‌های پیش‌آموزش‌دیده مدل تکیه دارند، پرامپت‌دهی چندمثالی از یادگیری درون‌زمینه‌ای (in-context learning) بهره می‌برد. این بدان معناست که مدل مثال‌های ارائه‌شده (جفت‌های ورودی-خروجی) را تحلیل می‌کند تا منطق، لحن، قالب یا فرآیند استدلال مورد نیاز برای انجام وظیفه را استنباط کند.

این تکنیک به‌ویژه برای وظایفی که شامل موارد زیر هستند، مؤثر است:

  • پایبندی به قالب: اطمینان از خروجی‌های دقیق JSON، XML یا جداکننده‌های سفارشی.
  • تقلید سبک: اتخاذ صدای برند خاص یا سبک نگارشی مشخص.
  • استدلال پیچیده: تجزیه استنتاج‌های منطقی چندمرحله‌ای (زنجیره‌ای تفکر یا Chain-of-Thought).

پیاده‌سازی پرامپت‌های چندمثالی: یک نمونه کد عملی

بیایید به یک سناریوی عملی نگاه کنیم: استخراج داده‌های ساختاریافته از متن نامنظم. یک پرامپت صفرمثالی ممکن است منجر به نام‌های فیلد ناسازگار یا مقادیر از دست‌رفته شود. با ارائه سه مثال، می‌توانیم سازگاری را به طور قابل توجهی بهبود بخشیم.

در زیر یک پیاده‌سازی پایتون با استفاده از یک ساختار API عمومی برای نمایش این تکنیک آورده شده است:

import openai

def extract_entity_with_few_shot(user_text):
    prompt = f"""
    نام شرکت و محل دفتر مرکزی را از متن زیر استخراج کنید.

    متن: "تسلا در سال 2003 توسط مارتین ابرهارد و مارک تارپنینگ تأسیس شد و دفتر مرکزی آن در آستین، تگزاس قرار دارد."
    خروجی: {{'company': 'Tesla', 'headquarters': 'Austin, Texas'}}

    متن: "آمازون، که توسط جف بیزوس راه‌اندازی شد، دفتر مرکزی خود را از سیاتل به آرلینگتون، ویرجینیا منتقل کرد."
    خروجی: {{'company': 'Amazon', 'headquarters': 'Arlington, Virginia'}}

    متن: "شرکت اپل، که توسط استیو جابز تأسیس شد، در کاپرتینو، کالیفرنیا مستقر است."
    خروجی: {{'company': 'Apple', 'headquarters': 'Cupertino, California'}}

    متن: "{user_text}"
    خروجی:
    """
    
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[{"role": "user", "content": prompt}],
        temperature=0
    )
    return response.choices[0].message.content

# نحوه استفاده
result = extract_entity_with_few_shot("مایکروسافت، که توسط بیل گیتس هم‌تأسیس شد، دفتر مرکزی آن در ردموند، واشنگتن قرار دارد.")
print(result)

در این مثال، ما به صراحت ساختار JSON و منطق استخراج را از طریق مثال‌ها تعریف می‌کنیم. توجه داشته باشید که ما temperature را روی 0 تنظیم کرده‌ایم، زیرا خروجی‌های قطعی برای وظایف استخراج داده‌های ساختاریافته حیاتی هستند.

بهترین روش‌ها برای پرامپت‌دهی چندمثالی مؤثر

برای به حداکثر رساندن کارایی پرامپت‌دهی چندمثالی، استراتژی‌های زیر را در نظر بگیرید:

1. مرتبط بودن کلید اصلی است

اطمینان حاصل کنید که مثال‌های شما از نظر معنایی مشابه ورودی واقعی هستند که بعداً در پرامپت ارائه خواهید داد. اگر مثال‌های شما درباره دستور پخت غذا باشند اما وظیفه واقعی شما عیب‌یابی کد باشد، مدل ممکن است نتواند به درستی تعمیم دهد.

2. کیفیت بر کمیت اولویت دارد

شما معمولاً تنها به 3 تا 5 مثال با کیفیت بالا نیاز دارید. افزودن تعداد زیاد می‌تواند هزینه‌های پنجره زمینه را افزایش داده و نویز ایجاد کند. اگر مدل هنوز با مشکل مواجه است، به جای افزودن مثال‌های بیشتر، بر شفاف‌سازی مثال‌ها تمرکز کنید.

3. مدیریت موارد حاشیه‌ای

یک مثال را شامل کنید که در آن ورودی حاوی اطلاعات مورد انتظار نیست. این کار به مدل می‌آموزد که چگونه با مقادیر تهی یا داده‌های از دست‌رفته به صورت مناسب برخورد کند و توهم (hallucination) را کاهش می‌دهد.

نتیجه‌گیری

پرامپت‌دهی چندمثالی ابزاری قدرتمند در جعبه‌ابزار مهندس پرامپت است. این تکنیک LLMها را از چت‌بات‌های همه‌منظوره به ابزارهای تخصصی تبدیل می‌کند که قادر به اجرای وظایف دقیق و سازگار هستند. با سرمایه‌گذاری زمان برای گردآوری مثال‌های با کیفیت، توسعه‌دهندگان می‌توانند بهبودهای قابل توجهی در دقت و قابلیت اطمینان بدون نیاز به تنظیم دقیق گران‌قیمت مدل به دست آورند. با ادامه بلوغ قابلیت‌های LLM، تسلط بر هنر یادگیری درون‌زمینه‌ای همچنان یک مهارت حیاتی برای ساخت برنامه‌های کاربردی هوش مصنوعی مستحکم باقی خواهد ماند.

Share: