המודלים של AI גנרטיבי של Google מתוכננים כך שהבטיחות היא בראש סדר העדיפויות. עם זאת, הם עדיין יכולים ליצור תשובות מזיקות, במיוחד כשמזינים להם הנחיות מפורשות. כדי לשפר עוד יותר את הבטיחות ולצמצם את הסיכון לשימוש לרעה, אתם יכולים להגדיר מסנני תוכן שיחסמו תשובות שעלולות להיות מזיקות.
הדף הזה מתייחס למסנני הבטיחות של מודלים ליצירת טקסט ב-Gemini. מידע על מסנני בטיחות ועל אתיקה של בינה מלאכותית במודלים אחרים של Google זמין במאמרי העזרה הבאים:
בדף הזה מתוארים כל סוגי המסננים של בטיחות ושל תוכן, מוסברים מושגי בטיחות חשובים ומוסבר איך מגדירים ספי חסימה למסנני תוכן שאפשר להגדיר. יש גם דוגמאות שמדגימות איך לתכנת מסנן תוכן שאפשר להגדיר.
מסנני הבטיחות והתוכן פועלים כמחסום שמונע פלט מזיק, אבל הם לא משפיעים ישירות על ההתנהגות של המודל. מידע נוסף על יכולת ההכוונה של המודל זמין במאמר הוראות מערכת לבטיחות.
הנחיות לא בטוחות
Gemini API מספק אחד מהקודים הבאים של enum כדי להסביר למה נדחתה הנחיה:
| ספירה | סוג מסנן | תיאור |
|---|---|---|
PROHIBITED_CONTENT |
מסנן בטיחות שלא ניתן להגדרה | ההנחיה נחסמה כי היא סומנה כהנחיה שמכילה תוכן אסור, בדרך כלל CSAM. |
BLOCKED_REASON_UNSPECIFIED |
לא רלוונטי | לא צוינה סיבה לחסימת ההנחיה. |
OTHER |
לא רלוונטי | ה-enum הזה מתייחס לכל הסיבות האחרות לחסימת הנחיה. שימו לב ש-Gemini API לא תומך בכל השפות. כאן אפשר לעיין ברשימת השפות הנתמכות ב-Gemini. |
מידע נוסף זמין במאמר בנושא BlockedReasonמאמרי העזרה של ה-API.
הדוגמאות הבאות מציגות פלט של Gemini API למשוב על הנחיות.
אם הנחיה נחסמת, promptFeedback מכיל blockReason. אם לא חוסמים הנחיה, promptFeedback ריק, כמו בדוגמה הבאה:
{
"promptFeedback": {
},
"usageMetadata": {
"promptTokenCount": 7,
"totalTokenCount": 7
}
}
בדוגמה הבאה מוצגת הנחיה שנחסמה כי היא מכילה PROHIBITED_CONTENT:
{
"promptFeedback": {
"blockReason": "PROHIBITED_CONTENT"
},
"usageMetadata": {
"promptTokenCount": 7,
"totalTokenCount": 7
}
}
בדוגמה הבאה מוצגת הנחיה שנחסמה מסיבה לא מוגדרת:
{
"promptFeedback": {
"blockReason": "BLOCKED_REASON_UNSPECIFIED"
},
"usageMetadata": {
"promptTokenCount": 7,
"totalTokenCount": 7
}
}
תשובות לא בטוחות
המסננים הבאים יכולים לזהות ולחסום תשובות שעלולות להיות לא בטוחות:
- מסנני בטיחות שלא ניתן להגדיר, שחוסמים תוכן ויזואלי של התעללות מינית בילדים (CSAM) ופרטים אישיים מזהים (PII).
- מסנני תוכן שאפשר להגדיר, שחוסמים תוכן לא בטוח על סמך רשימה של קטגוריות נזק וערכי הסף לחסימה שהמשתמשים מגדירים. אתם יכולים להגדיר סף חסימה לכל אחת מהפגיעות האלה בהתאם למה שמתאים לתרחיש השימוש ולעסק שלכם. מידע נוסף על מסנני תוכן שאפשר להגדיר
- מסנני ציטוטים, שמספקים ציטוטים של חומר המקור. מידע נוסף על סינון לפי ציטוט
מודל שפה גדול (LLM) יוצר תשובות ביחידות של טקסט שנקראות טוקנים. מודל מפסיק ליצור טוקנים כי הוא מגיע לנקודת עצירה טבעית או כי אחד מהמסננים חוסם את התשובה. Gemini API מספק אחד מקודי enum הבאים כדי להסביר למה יצירת הטוקנים נעצרה:
| ספירה | סוג מסנן | תיאור |
|---|---|---|
STOP |
לא רלוונטי | ה-enum הזה מציין שהמודל הגיע לנקודת עצירה טבעית או לרצף העצירה שסופק. |
MAX_TOKENS |
לא רלוונטי | יצירת האסימון הופסקה כי המודל הגיע למספר המקסימלי של האסימונים שצוין בבקשה. |
SAFETY |
מסנן תוכן שניתן להגדרה | יצירת הטוקנים הופסקה כי התשובה סומנה כתוכן פוגעני. |
RECITATION |
מסנן ציטוטים | יצירת הטוקן הופסקה בגלל אפשרות להקראה. |
SPII |
מסנן בטיחות שלא ניתן להגדרה | יצירת האסימון הופסקה כי התגובה סומנה כתוכן שכולל מידע אישי רגיש (SPII). |
PROHIBITED_CONTENT |
מסנן בטיחות שלא ניתן להגדרה | יצירת האסימון הופסקה כי התשובה סומנה ככזו שמכילה תוכן אסור, בדרך כלל CSAM. |
FINISH_REASON_UNSPECIFIED |
לא רלוונטי | לא צוינה סיבת הסיום. |
OTHER |
לא רלוונטי | ה-enum הזה מתייחס לכל הסיבות האחרות להפסקת יצירת הטוקן. חשוב לזכור שלא כל השפות נתמכות ביצירת טוקנים. כאן אפשר לעיין ברשימת השפות הנתמכות ב-Gemini. |
מידע נוסף זמין במאמר בנושא FinishReasonמאמרי העזרה של ה-API.
אם מסנן חוסם את התשובה, הוא מוחק את השדה Candidate.contentשל התשובה. המשוב לא מועבר למודל.
מסנני תוכן שאפשר להגדיר
מסנני התוכן בודקים את התוכן לפי רשימה של נזקים. לכל קטגוריית נזק, מסנני התוכן מקצים ציון אחד על סמך הסבירות שהתוכן פוגעני, וציון נוסף על סמך חומרת התוכן הפוגעני.
למסנני התוכן שאפשר להגדיר אין ניהול גרסאות שלא תלוי בגרסאות של המודל. Google לא מעדכנת את מסנן התוכן שניתן להגדרה עבור גרסה של מודל שפורסמה בעבר. עם זאת, יכול להיות שהיא תעדכן את מסנן התוכן שניתן להגדרה עבור גרסה עתידית של מודל.
קטגוריות של נזק
מסנני התוכן מעריכים את התוכן על סמך קטגוריות הנזק הבאות:
| קטגוריית הנזק | הגדרה |
|---|---|
| דברי שטנה | תגובות שליליות או פוגעניות שמכוונות לזהות ו/או למאפיינים מוגנים. |
| הטרדה | תגובות מאיימות, מפחידות, בריוניות או פוגעות שמכוונות לאדם אחר. |
| תוכן מיני בוטה | מכיל התייחסויות למעשים מיניים או לתוכן מגונה אחר. |
| תוכן מסוכן | קידום או מתן גישה למוצרים, שירותים ופעילויות מזיקים. |
השוואה בין ציוני הסתברות וציוני חומרה
ציון הבטיחות probability משקף את הסבירות שתשובת המודל קשורה לנזק הרלוונטי. לכל תגית יש ציון אמינות משויך בין 0.0 ל-1.0, מעוגל לספרה עשרונית אחת.
ציון המהימנות מחולק לארבע רמות מהימנות:
NEGLIGIBLE, LOW, MEDIUM ו-HIGH.
הציון של חומרת התשובה משקף את מידת הנזק הפוטנציאלי של תשובת המודל. לכל בעיה משויך ציון חומרה שנע בין 0.0 ל-1.0, מעוגל לספרה עשרונית אחת. ניקוד החומרה מחולק לארבע רמות: NEGLIGIBLE, LOW, MEDIUM ו-HIGH.
יכול להיות שלתוכן יהיה ציון הסתברות נמוך וציון חומרה גבוה, או ציון הסתברות גבוה וציון חומרה נמוך.
אפשרויות ההגדרה של מסנן התוכן
אפשר להשתמש ב-Gemini API או במסוף Google Cloud כדי להגדיר מסנני תוכן.
Gemini API
Gemini API מספק שתי שיטות לחסימת תוכן פוגעני:
- SEVERITY: השיטה הזו משתמשת גם בהסתברות וגם בציוני חומרה.
- PROBABILITY: בשיטה הזו נעשה שימוש רק בציון ההסתברות.
שיטת ברירת המחדל היא SEVERITY.
Gemini API מספק את ספי החסימה הבאים של תוכן מזיק:
-
BLOCK_LOW_AND_ABOVE: חסימה כשהציון של הסבירות או של חומרת האיום הואLOW,MEDIUMאוHIGH. -
BLOCK_MEDIUM_AND_ABOVE: חסימה כשציון ההסתברות או ציון החומרה הואMEDIUMאוHIGH. -
BLOCK_ONLY_HIGH: חסימה כשהציון הסתברותי או ציון החומרה הואHIGH. -
HARM_BLOCK_THRESHOLD_UNSPECIFIED: חסימה באמצעות ערך הסף שמוגדר כברירת מחדל. -
OFF: אין חסימה אוטומטית של תגובות ולא מוחזרים מטא-נתונים. במודלgemini-3.5-flashובמודלים הבאים, ערך ברירת המחדל הואOFF. -
BLOCK_NONE: ההגדרהBLOCK_NONEמסירה את החסימה של תגובות אוטומטיות. במקום זאת, אתם יכולים להגדיר הנחיות משלכם לגבי התוכן בעזרת הניקוד שמתקבל.
לדוגמה, קוד Python הבא מראה איך אפשר להגדיר את סף החסימה של תוכן מזיק ל-BLOCK_ONLY_HIGH עבור קטגוריית התוכן המסוכן:
generative_models.SafetySetting(
category=generative_models.HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT,
threshold=generative_models.HarmBlockThreshold.BLOCK_ONLY_HIGH,
),
כך ייחסם רוב התוכן שמסווג כתוכן מסוכן.
מידע נוסף זמין במאמר HarmBlockThreshold מאמרי העזרה של ה-API.
דוגמאות מקצה לקצה ב-Python, Node.js, Java, Go, C# ו-REST מופיעות במאמר דוגמאות להגדרת מסנן תוכן.
מסוף Google Cloud
Google Cloud במסוף אפשר להגדיר סף לכל מאפיין תוכן. מסנן התוכן משתמש רק בציוני ההסתברות. אין אפשרות להשתמש בציוני החומרה.
במסוף Google Cloud מוצגים ערכי הסף הבאים:
- מושבתת (ברירת מחדל): לא מתבצעת חסימה אוטומטית של תשובות.
- חסימה של חלק מההודעות: חסימה כשהציון של הסבירות הוא
HIGH. - חסימה של חלק מההודעות: חסימה כשהציון של הסבירות הוא
MEDIUMאוHIGH. - חסימה של רוב ההודעות: חסימה כשהציון של הסבירות הוא
LOW,MEDIUMאוHIGH.
לדוגמה, אם מגדירים את הגדרת החסימה לחסימה של מעט עבור הקטגוריה תוכן מסוכן, כל מה שיש לו סיכוי גבוה להיות תוכן מסוכן ייחסם. כל דבר עם הסתברות נמוכה יותר מותר.
כדי להגדיר את ערכי הסף, פועלים לפי השלבים הבאים:
בקטע Agent Platform במסוף Google Cloud , עוברים לדף Agent Studio.
בקטע יצירת הנחיה חדשה, לוחצים על אחד מהלחצנים כדי לפתוח את דף עיצוב ההנחיה.
לוחצים על הגדרות הבטיחות.
תיבת הדו-שיח הגדרות בטיחות תיפתח.
לכל קטגוריה של נזק, מגדירים את ערך הסף שנבחר.
לוחצים על Save.
פלט לדוגמה של תגובה חסומה
הדוגמה הבאה מציגה פלט של Gemini API כשמסנן התוכן שניתן להגדרה חוסם תשובה כי היא מכילה תוכן מסוכן:
{
"candidates": [{
"finishReason": "SAFETY",
"safetyRatings": [{
"category": "HARM_CATEGORY_HATE_SPEECH",
"probability": "NEGLIGIBLE",
"probabilityScore": 0.11027937,
"severity": "HARM_SEVERITY_LOW",
"severityScore": 0.28487435
}, {
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"probability": "HIGH",
"blocked": true,
"probabilityScore": 0.95422274,
"severity": "HARM_SEVERITY_MEDIUM",
"severityScore": 0.43398145
}, {
"category": "HARM_CATEGORY_HARASSMENT",
"probability": "NEGLIGIBLE",
"probabilityScore": 0.11085559,
"severity": "HARM_SEVERITY_NEGLIGIBLE",
"severityScore": 0.19027223
}, {
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"probability": "NEGLIGIBLE",
"probabilityScore": 0.22901751,
"severity": "HARM_SEVERITY_NEGLIGIBLE",
"severityScore": 0.09089675
}]
}],
"usageMetadata": {
"promptTokenCount": 38,
"totalTokenCount": 38
}
}
הטמעה של הגדרות מסנן תוכן
בדוגמאות הבאות מוסבר איך להגדיר את מסנן התוכן באמצעות Gemini API:
Python
התקנה
pip install --upgrade google-genai
מידע נוסף מופיע ב מאמרי העזרה בנושא SDK.
מגדירים משתני סביבה כדי להשתמש ב-Google Gen AI SDK עם Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
Go
מידע נוסף מופיע ב מאמרי העזרה בנושא SDK.
מגדירים משתני סביבה כדי להשתמש ב-Google Gen AI SDK עם Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- LOCATION: האזור שבו הבקשה תעובד.
- PROJECT_ID: מזהה הפרויקט. .
- MODEL_ID: מזהה המודל של המודל הרב-אופני שרוצים להשתמש בו, כמו
gemini-3.5-flash. - ROLE: התפקיד בשיחה שמשויך לתוכן. חובה לציין תפקיד גם בתרחישי שימוש בפרומפט אחד.
הערכים הקבילים כוללים את האפשרויות הבאות:
-
USER: מציין תוכן שנשלח על ידכם. -
MODEL: מציין את התשובה של המודל.
-
- TEXT: הוראות הטקסט שרוצים לכלול בהנחיה.
- SAFETY_CATEGORY: קטגוריית הבטיחות שרוצים להגדיר לה ערך סף. הערכים הקבילים כוללים את האפשרויות הבאות:
הרחבת קטגוריות הבטיחות
HARM_CATEGORY_SEXUALLY_EXPLICITHARM_CATEGORY_HATE_SPEECHHARM_CATEGORY_HARASSMENTHARM_CATEGORY_DANGEROUS_CONTENT
- THRESHOLD: ערך הסף לחסימת תשובות שיכולות להשתייך לקטגוריית הבטיחות שצוינה, על סמך הסתברות. הערכים הקבילים כוללים את האפשרויות הבאות:
האפליקציהלוחצים כדי להרחיב את ספי החסימה
BLOCK_NONEBLOCK_ONLY_HIGHBLOCK_MEDIUM_AND_ABOVE(ברירת מחדל)BLOCK_LOW_AND_ABOVE
BLOCK_LOW_AND_ABOVEחוסמת הכי הרבה, והאפליקציהBLOCK_ONLY_HIGHחוסמת הכי מעט.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent
גוף בקשת JSON:
{
"contents": {
"role": "ROLE",
"parts": { "text": "TEXT" }
},
"safetySettings": {
"category": "SAFETY_CATEGORY",
"threshold": "THRESHOLD"
},
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
curl
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent"
PowerShell
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent" | Select-Object -Expand Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
דוגמה לפקודת curl
LOCATION="us-central1"
MODEL_ID="gemini-3.5-flash"
PROJECT_ID="test-project"
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:streamGenerateContent -d \
$'{
"contents": {
"role": "user",
"parts": { "text": "Hello!" }
},
"safety_settings": [
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "OFF"
},
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"threshold": "BLOCK_LOW_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_HARASSMENT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"threshold": "BLOCK_ONLY_HIGH"
}
]
}'
Node.js
התקנה
npm install @google/genai
מידע נוסף מופיע ב מאמרי העזרה בנושא SDK.
מגדירים משתני סביבה כדי להשתמש ב-Google Gen AI SDK עם Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
Java
כך מתקינים או מעדכנים את Java.
מידע נוסף מופיע ב מאמרי העזרה בנושא SDK.
מגדירים משתני סביבה כדי להשתמש ב-Google Gen AI SDK עם Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
מסווג Jailbreak
חלק מההנחיות מנסות לעקוף את הנחיות הבטיחות, את המגבלות האתיות או את הוראות ההפעלה המיועדות, מה שמוביל לפלט שעלול להיות מזיק, מוטה או לא הולם. המסווג לזיהוי פריצות מזהה הנחיות שמנסות לעקוף את מנגנוני ההגנה של המודל, וחוסם אותן בהתאם להגדרה.
המסנן הזה מושבת כברירת מחדל. כדי להפעיל את התכונה, מגדירים את סף החסימה של JAILBREAK לאחד מהערכים הבאים:
BLOCK_NONEBLOCK_LOW_AND_ABOVEBLOCK_MEDIUM_AND_ABOVEBLOCK_ONLY_HIGH
הקוד הבא מראה איך להפעיל את המסנן הזה של פריצת מחסומים:
generative_models.SafetySetting(
category=generative_models.HarmCategory.HARM_CATEGORY_JAILBREAK,
threshold=generative_models.HarmBlockThreshold.BLOCK_ONLY_HIGH,
)
אם התוכן נחסם על ידי מסווג הפריצה, צפויה תוצאה דומה לזו:
{
prompt_feedback: {
block_reason: JAILBREAK
safety_ratings: [
{
category: HARM_CATEGORY_JAILBREAK
blocked: true
severity: HARM_SEVERITY_MEDIUM
severity_score: 0.76953125
}
]
}
}
אם מגדירים את HarmBlockMethod ל-PROBABILITY, אז safety_ratings מכיל את probability ואת probability_score במקום severity ו-severity_score. אם ההנחיה לא נחסמת או מסומנת, המודל עדיין יחזיר דירוגי בטיחות בהתאם לHarmBlockMethod.
חיוב
בדומה למסנני הבטיחות האחרים של Gemini, השימוש בסיווג הפריצה הוא בחינם.
מסנן ציטוטים
התכונות הגנרטיביות לעזרה בתכנות ב-Agent Platform מיועדות ליצירת תוכן מקורי. כדי למנוע שכפול של תוכן קיים בכמות גדולה, Gemini מתוכנן להגביל את הסיכויים לכך. אם תכונה של Gemini מצטטת קטע ארוך מדף אינטרנט, Gemini מציין את הדף הזה כמקור.
לפעמים אותו תוכן נמצא בכמה דפי אינטרנט. Gemini מנסה להפנות אתכם למקור פופולרי. במקרה של ציטוטים עם הפניות למאגרי קוד, הציטוט עשוי להפנות גם לרישיון קוד פתוח רלוונטי. באחריותכם לעמוד בדרישות הרישיון.
למידע על המטא-נתונים של מסנן הציטוטים, אפשר לעיין במאמרי העזרה של ה-API של Citation.
שיטות מומלצות
מסנני התוכן עוזרים למנוע תוכן לא בטוח, אבל לפעמים הם עשויים לחסום תוכן לא מזיק או לפספס תוכן פוגעני. מודלים מתקדמים כמו Gemini 3.5 Flash נועדו ליצור תשובות בטוחות גם בלי מסננים. כדאי לבדוק הגדרות שונות של מסננים כדי למצוא את האיזון הנכון בין בטיחות לבין מתן גישה לתכנים מתאימים.
המאמרים הבאים
- מידע על הוראות מערכת בנושא בטיחות
- מידע נוסף על מעקב אחר ניצול לרעה
- מידע נוסף על אתיקה של בינה מלאכותית
- איך מעבדים תשובות חסומות