הגדרות בטיחות

במדריך הזה מתוארות הגדרות הבטיחות שניתן לשנות שזמינות ל-Gemini API. במהלך שלב יצירת האב טיפוס אפשר להתאים את הגדרות הבטיחות ב-4 מימדים כדי לבדוק במהירות אם האפליקציה דורשת הגדרות מגבילות יותר או פחות. כברירת מחדל, הגדרות הבטיחות חוסמות תוכן (כולל הנחיות) עם סבירות בינונית או גבוהה יותר להיות לא בטוח בכל המאפיינים. רמת הבטיחות הבסיסית הזו תוכננה לפעול ברוב התרחישים לדוגמה, לכן כדאי לשנות את הגדרות הבטיחות רק אם היא נחוצה באופן עקבי לאפליקציה שלכם.

מסנני בטיחות

בנוסף למסנני הבטיחות שניתנים להתאמה, ב-Gemini API יש הגנות מובנות מפני פגיעות ליבה, כמו תוכן שמסכן את בטיחות הילדים. סוגי נזק כאלה חסומים תמיד ולא ניתן לשנות אותם.

מסנני הבטיחות שניתנים להתאמה מכילים את הקטגוריות הבאות:

  • הטרדה
  • דברי שטנה
  • תוכן מיני בוטה
  • תוכן מסוכן

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

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

הסתברות לעומת חומרה

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

  1. הרובוט נתן לי אגרוף.
  2. הרובוט חתך אותי.

משפט 1 עלול לגרום להסתברות גבוהה יותר להיות לא בטוח, אבל יכול להיות שמשפט 2 יהיה חמור יותר בהקשר של אלימות.

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

הגדרות בטיחות

הגדרות הבטיחות הן חלק מהבקשה שאתם שולחים לשירות הגנרטיבי. אפשר לשנות את ההגדרות לפי כל בקשה שנשלחת ל-API. בטבלה הבאה מפורטות הקטגוריות שאפשר להגדיר וסוג הנזק שהן כוללות.

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

ההגדרות האלה מופיעות גם בהפניה ל-API. דגמי Gemini תומכים רק ב-HARM_CATEGORY_HARASSMENT, ב-HARM_CATEGORY_HATE_SPEECH, ב-HARM_CATEGORY_SEXUALLY_EXPLICIT וב-HARM_CATEGORY_DANGEROUS_CONTENT. הקטגוריות האחרות משמשות את המודלים של PaLM 2 (מדור קודם).

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

אם היא לא מוגדרת, הגדרת ברירת המחדל לחסימה היא חסימה של חלק לכל הקטגוריות.

סף (Google AI Studio) סף (API) תיאור
לא לחסום BLOCK_NONE הצגה תמיד, ללא קשר להסתברות לתוכן לא בטוח
חסימת מספר BLOCK_ONLY_HIGH חסימה כשיש סבירות גבוהה לתוכן לא בטוח
חסימת חלק BLOCK_MEDIUM_AND_ABOVE חסימה כשקיימת סבירות בינונית או גבוהה לתוכן לא בטוח
חסימת רוב התוכן BLOCK_LOW_AND_ABOVE חסימה כשיש סבירות נמוכה, בינונית או גבוהה לתוכן לא בטוח
HARM_BLOCK_THRESHOLD_UNSPECIFIED לא צוין סף, חסימה באמצעות סף ברירת המחדל

ניתן לקבוע את ההגדרות האלה עבור כל בקשה שנשלחת לשירות הגנרטיבי. לפרטים נוספים, ראו HarmBlockThreshold הפניית API.

משוב בנושא בטיחות

generateContent מחזיר GenerateContentResponse שכולל משוב על בטיחות.

משוב על הנחיות כלול ב-promptFeedback. אם מגדירים את הערך promptFeedback.blockReason, תוכן ההנחיה נחסם.

המשוב על התשובות האפשריות כלול בfinishReason וב-safetyRatings. אם תוכן התגובה נחסם והשדה finishReason היה SAFETY, תוכלו לבדוק ב-safetyRatings פרטים נוספים. דירוג הבטיחות כולל את הקטגוריה ואת ההסתברות של סיווג הנזק. התוכן שנחסם לא יוחזר.

ההסתברות שמוחזרת תואמת לרמות הסמך של בלוקים, כפי שמוצג בטבלה הבאה:

Probability תיאור
זניח יש סבירות זניחה שהתוכן לא בטוח
נמוך יש סבירות נמוכה שהתוכן לא בטוח
בינוני יש סבירות בינונית שהתוכן לא בטוח
גבוהה יש סבירות גבוהה שהתוכן לא בטוח

לדוגמה, אם התוכן נחסם כי לקטגוריית ההטרדה יש סבירות גבוהה, דירוג הבטיחות שיוצג יהיה בקטגוריה שווה ל-HARASSMENT וההסתברות לנזק תהיה HIGH.

הגדרות בטיחות ב-Google AI Studio

אפשר גם לשנות את הגדרות הבטיחות ב-Google AI Studio, אבל אי אפשר להשבית אותן. לשם כך, בהגדרות ההפעלה לוחצים על עריכת הגדרות הבטיחות:

לחצן של הגדרות הבטיחות

ואפשר להשתמש בלחצנים כדי לשנות כל אחת מההגדרות:

לחצן של הגדרות הבטיחות

אם התוכן חסום, מופיעה ההודעה ללא תוכן. כדי לראות פרטים נוספים, מחזיקים את הסמן מעל No Content ולוחצים על Safety.

דוגמאות לקוד

בקטע הזה נסביר איך להשתמש בהגדרות הבטיחות בקוד באמצעות ספריית הלקוח של python.

דוגמה לבקשה

בהמשך הוא קטע קוד python שמראה כיצד לקבוע הגדרות בטיחות בקריאה ל-GenerateContent. כך קטגוריות הפגיעה Harassment ו-Hate speech מוגדרות ל-BLOCK_LOW_AND_ABOVE, וכך חוסמים כל תוכן שיש לו סבירות נמוכה או גבוהה יותר להטרדה או לדברי שטנה.

from google.generativeai.types import HarmCategory, HarmBlockThreshold

model = genai.GenerativeModel(model_name='gemini-pro-vision')
response = model.generate_content(
    ['Do these look store-bought or homemade?', img],
    safety_settings={
        HarmCategory.HARM_CATEGORY_HATE_SPEECH: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
        HarmCategory.HARM_CATEGORY_HARASSMENT: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
    }
)

דוגמה לתגובה

בהמשך מוצג קטע קוד לניתוח משוב הבטיחות מהתגובה.

try:
  print(response.text)
except ValueError:
  # If the response doesn't contain text, check if the prompt was blocked.
  print(response.prompt_feedback)
  # Also check the finish reason to see if the response was blocked.
  print(response.candidates[0].finish_reason)
  # If the finish reason was SAFETY, the safety ratings have more details.
  print(response.candidates[0].safety_ratings)

השלבים הבאים

  • מידע נוסף על ה-API המלא זמין בחומר העזר בנושא API.
  • קראו את ההנחיות בנושא בטיחות, כדי לקבל סקירה כללית של שיקולי הבטיחות במהלך הפיתוח עם מודלים מסוג LLM.
  • מידע נוסף על הערכת ההסתברות לעומת הערכת החומרה מצוות Jigsaw
  • מידע נוסף על המוצרים שתורמים לפתרונות בטיחות, כמו Perspective API.
  • אפשר להשתמש בהגדרות הבטיחות האלה כדי ליצור מסווג רעילות. כדי להתחיל, קראו את הדוגמה לסיווג.