OpenAI
הדף הזה תורגם באופן אוטומטי. לצפייה במאמר המקורי באנגלית.

המלצות להנדסת פרומפטים עם ה־API של OpenAI

איך לתת הוראות ברורות ויעילות למודלים של OpenAI

עודכן: 13 days ago

איך הנדסת פרומפטים עובדת

בשל אופן האימון של המודלים של OpenAI, יש תבניות מסוימות של פרומפטים שעובדות טוב במיוחד ומובילות לפלטים שימושיים יותר מהמודל. המדריך הרשמי של OpenAI להנדסת פרומפטים הוא בדרך כלל נקודת הפתיחה הטובה ביותר לקבלת טיפים לכתיבת פרומפטים.

בהמשך נציג כמה תבניות של פרומפטים שמצאנו שהן עובדות היטב, אבל כדאי לנסות גם תבניות אחרות שעשויות להתאים יותר למשימה שלכם.

כללי אצבע ודוגמאות

הערה: ״{text input here}״ הוא מציין מיקום שיש להחליף בטקסט או בהקשר בפועל

1. השתמשו במודל העדכני ביותר

לקבלת התוצאות הטובות ביותר, אנו ממליצים בדרך כלל להשתמש במודלים העדכניים ביותר ובעלי היכולות הגבוהות ביותר. בדרך כלל קל יותר לתכנן פרומפטים יעילים למודלים חדשים יותר.


הערה: יש כמה הבדלים שחשוב להביא בחשבון בין כתיבת פרומפטים למודל reasoning לבין כתיבת פרומפטים למודל GPT. פרטים נוספים כאן.

2. הציבו את ההוראות בתחילת הפרומפט והשתמשו ב־### או ב־""" כדי להפריד בין ההוראות להקשר

פחות יעיל ❌:

Summarize the text below as a bullet point list of the most important points.

{text input here}

יעיל יותר ✅:

Summarize the text below as a bullet point list of the most important points.

Text: """
{text input here}
"""

3. תארו בצורה ברורה ומפורטת ככל האפשר את ההקשר, התוצאה הרצויה, האורך, הפורמט, הסגנון וכדומה

הגדירו במדויק את ההקשר, התוצאה הרצויה, האורך, הפורמט, הסגנון וכדומה

פחות יעיל ❌:

Write a poem about OpenAI. 

יעיל יותר ✅:

Write a short inspiring poem about OpenAI, focusing on the recent DALL-E product launch (DALL-E is a text to image ML model) in the style of a {famous poet}

4. הבהירו את פורמט הפלט הרצוי באמצעות דוגמאות

פחות יעיל ❌:

Extract the entities mentioned in the text below. Extract the following 4 entity types: company names, people names, specific topics and themes.

Text: {text}

גם הסבירו וגם הדגימו – המודלים מגיבים טוב יותר כשמדגימים להם את דרישות הפורמט המדויקות. כך גם קל יותר לנתח כמה פלטים באופן אמין באמצעות קוד.

יעיל יותר ✅:

Extract the important entities mentioned in the text below. First extract all company names, then extract all people names, then extract specific topics which fit the content and finally extract general overarching themes

Desired format:
Company names: <comma_separated_list_of_company_names>
People names: -||-
Specific topics: -||-
General themes: -||-

Text: {text}

5. התחילו ב־zero-shot, עברו ל־few-shot, ואם שניהם לא עבדו – נסו כוונון עדין

✅ zero-shot

Extract keywords from the below text.

Text: {text}

Keywords:

✅ few-shot – ספקו כמה דוגמאות

Extract keywords from the corresponding texts below.

Text 1: Stripe provides APIs that web developers can use to integrate payment processing into their websites and mobile applications.
Keywords 1: Stripe, payment processing, APIs, web developers, websites, mobile applications
##
Text 2: OpenAI has trained cutting-edge language models that are very good at understanding and generating text. Our API provides access to these models and can be used to solve virtually any task that involves processing language.
Keywords 2: OpenAI, language models, text processing, API.
##
Text 3: {text}
Keywords 3:

✅ כוונון עדין: עיינו בהמלצות לכוונון עדין כאן.

6. צמצמו תיאורים ״מנופחים״ ולא מדויקים

פחות יעיל ❌:

The description for this product should be fairly short, a few sentences only, and not too much more.

יעיל יותר ✅:

Use a 3 to 5 sentence paragraph to describe this product.

7. במקום לומר רק מה לא לעשות, אמרו מה לעשות במקום זאת

פחות יעיל ❌:

The following is a conversation between an Agent and a Customer. DO NOT ASK USERNAME OR PASSWORD. DO NOT REPEAT.

Customer: I can’t log in to my account.
Agent:

יעיל יותר ✅:

The following is a conversation between an Agent and a Customer. The agent will attempt to diagnose the problem and suggest a solution, whilst refraining from asking any questions related to PII. Instead of asking for PII, such as username or password, refer the user to the help article www.samplewebsite.com/help/faq

Customer: I can’t log in to my account.
Agent:

8. ביצירת קוד – השתמשו ב״מילות פתיחה״ כדי לכוון את המודל לתבנית מסוימת

פחות יעיל ❌:

# Write a simple python function that
# 1. Ask me for a number in mile
# 2. It converts miles to kilometers

בדוגמת הקוד שבהמשך, הוספת ״import״ רומזת למודל שעליו להתחיל לכתוב ב־Python. (בדומה לכך, ״SELECT״ הוא רמז טוב לתחילתה של פקודת SQL.)

יעיל יותר ✅:

# Write a simple python function that
# 1. Ask me for a number in mile
# 2. It converts miles to kilometers

import

9. השתמשו בתכונה ״יצירת כל דבר״

מפתחים יכולים להשתמש בתכונה ״יצירת כל דבר״ כדי לתאר משימה או פלט רצוי בשפה טבעית ולקבל פרומפט מותאם.


למידע נוסף על השימוש בתכונה ״יצירת כל דבר״.

פרמטרים

בדרך כלל, אנו מוצאים ש־model ו־temperature הם הפרמטרים הנפוצים ביותר לשינוי פלט המודל.

  1. model – מודלים בעלי ביצועים טובים יותר הם לרוב יקרים יותר, וזמן התגובה שלהם עשוי להיות ארוך יותר.

  2. temperature – מדד לתדירות שבה המודל מפיק טוקן שההסתברות שלו נמוכה יותר. ככל שהערך של temperature גבוה יותר, כך הפלט אקראי יותר (ובדרך כלל גם יצירתי יותר). עם זאת, אין פירוש הדבר שהפלט ״נאמן יותר לאמת״. ברוב השימושים המבוססים על עובדות, כמו חילוץ נתונים ומתן תשובות נכונות לשאלות, עדיף להגדיר את temperature ל־0.

  3. max_completion_tokens (אורך מרבי) – אינו שולט באורך הפלט, אלא מגדיר גבול קשיח שבו יצירת הטוקנים נעצרת. רצוי שלא תגיעו למגבלה הזו לעיתים קרובות, שכן המודל יעצור כשהוא יחליט שסיים או כשיגיע לרצף עצירה שהגדרתם.

  4. stop (רצפי עצירה) – קבוצת תווים (טוקנים) שיצירתם תגרום לעצירת יצירת הטקסט.

לתיאור פרמטרים נוספים, עיינו בתיעוד ה־API.

האם המאמר הזה היה מועיל?