כדי להגן על אפליקציות ה-AI הגנרטיבי שלכם מפני סיכונים שמוטמעים בתמונות, "הגנה מוגברת על המודל" בודקת תמונות עצמאיות ותמונות שמוטמעות במסמכי טקסט עשיר נתמכים בהנחיות ובתשובות.
הגנה מוגברת על המודל בודקת תמונות בשיטות הבאות:
- סריקה חזותית: סריקת תוכן חזותי בתמונות כדי לאתר אובייקטים ונושאים רגישים באמצעות המסנן המתקדם של Sensitive Data Protection. מידע נוסף זמין במאמרים סוגי מידע של אובייקטים וסוגי מידע של הקשר תמונה.
- זיהוי תווים אופטי (OCR): חילוץ טקסט מתמונות ומסכים ובדיקת הטקסט הזה מול מסננים שהוגדרו, כולל קטגוריות בטיחות של AI אחראי, זיהוי של החדרת פרומפטים ופריצת Jailbreak, כתובות URL זדוניות וסוגי מידע של Sensitive Data Protection.
מפרטים ומגבלות
כשמשתמשים ב"הגנה מוגברת על המודל" כדי לסנן תמונות, חשוב להביא בחשבון את המפרטים והמגבלות הבאים:
- פורמטים נתמכים של תמונות: Model Armor בודק תמונות עצמאיות בפורמטים JPEG, PNG ו-BMP. הוא גם מחלץ תמונות מוטמעות מקבצי טקסט עשיר נתמכים וסורק אותן.
- מגבלות גודל: כל תמונה נפרדת צריכה להיות בגודל של עד 4MB. קובצי טקסט עשיר צריכים להיות בגודל של עד 4MB, ויכולים להכיל עד 5 תמונות מוטמעות. אם חורגים מאחת מהמגבלות האלה, המערכת לא סורקת את הקובץ כולו. מידע נוסף זמין במאמרים מגבלת המערכת על גודל הקובץ וסריקת תמונות שמוטמעות במסמכים.
- הנחיות עצמאיות: כשקוראים ל-methods
SanitizeUserPromptו-SanitizeModelResponseעם תמונות עצמאיות, Model Armor בודק תמונה אחת לכל בקשה. אי אפשר לסרוק כמה תמונות נפרדות בבקשה אחת. בנוסף, אי אפשר להשתמש ב-Model Armor כדי לבדוק הנחיות עצמאיות שמשלבות טקסט ותמונות בבקשה אחת. עם זאת, אפשר לסנן מסמכי טקסט עשיר שמכילים גם טקסט וגם תמונות על ידי הפעלת המודלים של הטקסט והתמונות. - הסרת פרטי הזיהוי: כשמגדירים תבנית להסרת פרטי הזיהוי ב-Sensitive Data Protection, המערכת מצנזרת טקסט או תמונות נפרדות, אבל לא את שניהם. אי אפשר להסיר פרטים מזהים ממסמכי טקסט עשיר כשבוחרים במודל התמונה (
MODALITY_IMAGE). מידע נוסף זמין במאמרים צנזור מידע רגיש בתמונות עצמאיות וסינון תמונות שמוטמעות במסמכים. - סטרימינג: שיטות הסטרימינג של Model Armor תומכות רק בקלט טקסטואלי ולא תומכות בתמונות או בקבצים.
- שילובים נתמכים: אתם יכולים לסנן תמונות על ידי קריאה ישירה ל-Model Armor API בארכיטקטורת REST או באמצעות השילוב של Gemini Enterprise. בכל שאר השילובים של Model Armor, המערכת סורקת ומסירה תוכן זדוני או רגיש רק מטקסט. מידע נוסף זמין במאמר אופנויות נתמכות.
- זמינות אזורית: סינון תמונות נתמך רק במספר אזורים ספציפיים. אם שולחים הנחיה שמכילה תמונה לנקודת קצה (endpoint) שבה "הגנה מוגברת על המודל" לא תומכת בסריקת תמונות, השדה
invocationResultבתשובה מצייןFAILURE. כאן מפורטת רשימת המיקומים שבהם יש תמיכה בסינון תמונות.
חישוב טוקנים ותמחור לתמונות
ב-Model Armor נעשה שימוש במודל תמחור מאוחד שמבוסס על טוקנים, שבו טוקנים של תמונות מחויבים באותו תעריף כמו טוקנים של טקסט.
לא תחויבו אם המערכת של "הגנה מוגברת על המודל" תדחה או תדלג על קלט לפני עיבוד המסנן, למשל קלט ריק או קבצים ותמונות שחורגים מהמגבלות על גודל הקובץ או על התמונות המוטמעות. עם זאת, אם הקלט עובר את האימות הראשוני, תחויבו על הטוקנים המחושבים גם במקרים הבאים:
- כל הגלאים מדלגים: המערכת מדלגת על חלק מהמסננים (הגלאים) שהוגדרו או על כולם, והם מחזירים את הערך
EXECUTION_SKIPPED(לדוגמה, כשמטען ייעודי (payload) של תמונה במגבלה של 4MB לא ניתן לניתוח על ידי הגלאים, או כשמדלגים על מסנן של אופן פעולה). - קבצים שהם לא קובצי תמונה, עטופים בסוג הנתונים של בייטים
IMAGE: קובץ שהוא לא קובץ תמונה (כמו קובץ ZIP, קובץ CSV או מסמך Microsoft Word) נשלח עםbyteDataTypeשמוגדר ל-IMAGE(עד 4MB). החיוב על הבקשה ב-Model Armor מתבצע לפי חישוב אסימוני התמונה הנפרדים, למרות שהמסננים מחזירים את הערךEXECUTION_SKIPPED.
השירות "הגנה מוגברת על המודל" מחשב טוקנים לתמונות ולמסמכים על סמך סוג הקלט והמודליות שהוגדרו:
תמונות עצמאיות: Model Armor ממיר כל תמונה מעובדת (עד 4MB) לטוקנים באמצעות ספירה בסיסית של 5,000 טוקנים לכל תמונה, בתוספת 1,000 טוקנים לכל מגה-בייט (MB) של גודל התמונה. כשמחשבים טוקנים לפי גודל, Model Armor מעגל את גודל התמונה כלפי מעלה ל-MB השלם הבא:
מספר הטוקנים לכל תמונה = 5,000 + (1,000 × גודל התמונה ב-MB, מעוגל כלפי מעלה ל-MB השלם הבא)
טקסט שחולץ מתמונה באמצעות OCR נכלל בחישוב הטוקנים של התמונה, ולא מחויב בנפרד כטוקנים של טקסט.
מסמכי טקסט עשיר: חישוב האסימונים תלוי באופנים שהוגדרו בתבנית:
- מודל טקסט (
MODALITY_TEXT): המערכת מחשבת את הטוקנים מהטקסט שחולץ מהמסמך (בערך 4 תווים לכל טוקן). תמונות מוטמעות לא מחולצות ולא מחויבות. - אופן הצגת התמונה (
MODALITY_IMAGE): ההגנה המוגברת על המודל מחשבת טוקנים בנפרד לכל תמונה מוטמעת שעברה עיבוד, באמצעות נוסחת הטוקנים של התמונה. אין חיוב על טקסט במסמך. - מודלים של טקסט ותמונות (
MODALITY_TEXTו-MODALITY_IMAGE): הגנה מוגברת על המודל מחשבת את מספר הטוקנים הכולל כסכום של הטוקנים מהטקסט שחולץ מהמסמך והטוקנים של כל תמונה מוטמעת שעובדה.
- מודל טקסט (
בטבלה הבאה מוצגות דוגמאות לאופן שבו Model Armor מחשב טוקנים לתמונות מעובדות:
| גודל התמונה | גודל מעוגל לחישוב | חישוב טוקנים | סך הטוקנים |
|---|---|---|---|
| 500 KB | 1MB | 5,000 + (1 × 1,000) | 6,000 טוקנים |
| 1.9MB | 2 MB | 5,000 + (2 × 1,000) | 7,000 טוקנים |
| 4 MB | 4 MB | 5,000 + (4 × 1,000) | 9,000 טוקנים |
לפני שמתחילים
לפני שאתם מסננים תמונות, אתם צריכים לבצע את הפעולות הבאות:
יוצרים או מעדכנים תבנית עם מודל התמונות מופעל
כשיוצרים או מעדכנים תבנית, בוחרים את המודל שרוצים לכלול ב-MODALITY_IMAGE (Image או All במסוף Google Cloud , או "modalities": ["MODALITY_IMAGE", "MODALITY_TEXT"] ב-templateMetadata כשמשתמשים ב-API בארכיטקטורת REST). אם לא מציינים אופן, משאירים את השדה modalities ריק או מציינים רק MODALITY_TEXT, המערכת סורקת רק טקסט ומחזירה את הערך EXECUTION_SKIPPED למסננים שסורקים את האופן שדילגתם עליו.
קבלת ההרשאות הנדרשות
מוודאים שיש לכם את התפקידים הנדרשים בניהול זהויות והרשאות גישה (IAM) כדי להסיר תוכן זדוני או רגיש מהנחיות ומתשובות (למשל roles/modelarmor.user). אם אתם משתמשים במצב המתקדם של Sensitive Data Protection בפרויקטים, אתם צריכים להקצות את תפקידי ה-DLP הנדרשים לסוכן השירות של Model Armor. איך מקבלים את ההרשאות הנדרשות
הסרת תוכן זדוני או רגיש מתמונות עצמאיות
כדי לסנן תמונה עצמאית בהנחיה של משתמש או בתשובה של מודל, מגדירים את השדה byteDataType לערך IMAGE ומספקים את התמונה בקידוד base64 בפורמט נתמך (JPEG, PNG או BMP) בשדה byteData.
כדי להסיר תוכן זדוני או רגיש מהנחיה שמכילה תמונה, משתמשים בפקודה הבאה:
curl -X POST \ -d "$(jq -n \ --arg data "$(base64 -w 0 -i IMAGE)" \ '{userPromptData: {byteItem: {byteDataType: "IMAGE", byteData: $data}}}')" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID:sanitizeUserPrompt"
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שמכיל את התבנית. -
LOCATION: המיקום של התבנית. -
TEMPLATE_ID: המזהה של תבנית שמוגדרת לסריקת תמונות (MODALITY_IMAGE). -
IMAGE: הנתיב לקובץ התמונה בפורמט נתמך.
התגובה אמורה להיראות כך:
{ "sanitizationResult": { "filterMatchState": "MATCH_FOUND", "invocationResult": "SUCCESS", "filterResults": { "csam": { "csamFilterFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, "pi_and_jailbreak": { "piAndJailbreakFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "MATCH_FOUND", "confidenceLevel": "HIGH" } }, "sdp": { "sdpFilterResult": { "inspectResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "MATCH_FOUND" } } } } } }
צנזור מידע אישי רגיש בתמונות נפרדות
כשמשתמשים במצב המתקדם של Sensitive Data Protection, המערכת מצנזרת ממצאים רגישים בתמונות עצמאיות אם מגדירים בתבנית של Model Armor גם תבנית בדיקה וגם תבנית להסרת פרטי הזיהוי של Sensitive Data Protection. חשוב לוודא שהגדרתם צנזור תמונות בתבנית להסרת פרטים מזהים. מידע נוסף על הגדרת Sensitive Data Protection ב-Model Armor זמין במאמר קביעת הגדרות של Sensitive Data Protection. מידע על המגבלות של הסרת פרטי הזיהוי מופיע במאמרים מפרטים ומגבלות וסינון תמונות שמוטמעות במסמכים.
בדוגמה הבאה מוצגת הגדרת המסנן כשהאפשרות לצנזור באמצעות Sensitive Data Protection מופעלת:
{ "filterConfig": { "sdpSettings": { "advancedConfig": { "inspectTemplate": "projects/PROJECT_ID/locations/LOCATION/inspectTemplates/INSPECT_TEMPLATE_ID", "deidentifyTemplate": "projects/PROJECT_ID/locations/LOCATION/deidentifyTemplates/DEIDENTIFY_TEMPLATE_ID" } } } }
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שמכיל את התבניות של Sensitive Data Protection. -
LOCATION: המיקום של התבניות. -
INSPECT_TEMPLATE_ID: המזהה של תבנית הבדיקה. -
DEIDENTIFY_TEMPLATE_ID: המזהה של התבנית להסרת פרטים מזהים.
כשמסירים תוכן זדוני או רגיש מתמונה עצמאית באמצעות תבנית שמופעלת בה צנזורת תמונות, התשובה כוללת את התמונה המצונזרת ואת הקואורדינטות של התיבה התוחמת לכל ממצא:
{ "sanitizationResult": { "filterMatchState": "MATCH_FOUND", "invocationResult": "SUCCESS", "filterResults": { "csam": { "csamFilterFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, "sdp": { "sdpFilterResult": { "redactResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "MATCH_FOUND", "redactedImage": "[REDACTED_IMAGE]", "findings": [ { "infoType": "EMAIL_ADDRESS", "likelihood": "LIKELY", "location": { "contentLocations": [ { "imageFindingLocation": { "boundingBoxes": { "top": 16, "left": 121, "width": 620, "height": 90 } } } ] } } ] } } } } } }
סינון תמונות שמוטמעות במסמכים
כשמפעילים את מודל התמונות (MODALITY_IMAGE) בתבנית ומסירים תוכן זדוני או רגיש ממסמך טקסט עשיר (PDF, WORD_DOCUMENT, EXCEL_DOCUMENT או POWERPOINT_DOCUMENT), Model Armor מחלץ וסורק באופן אוטומטי עד 5 תמונות שמוטמעות במסמך. אם מפעילים גם את MODALITY_TEXT וגם את MODALITY_IMAGE, המערכת בודקת גם את הטקסט וגם את התמונות שמוטמעות במסמך.
גם אם מפעילים רק את MODALITY_IMAGE וגם אם מפעילים את MODALITY_IMAGE וגם את MODALITY_TEXT, המערכת של Model Armor מדלגת על הסריקה של כל המסמך, כולל הטקסט והתמונות המוטמעות, בלי סריקה חלקית. הוא מחזיר את הערך EXECUTION_SKIPPED לכל המסננים שהוגדרו, כולל בדיקה, ואת הערך הכולל filterMatchState של NO_MATCH_FOUND במקרים הבאים:
- המסמך חורג ממגבלת הגודל של 4MB או ממגבלת 5 התמונות.
- מוגדרת תבנית להסרת פרטי הזיהוי של Sensitive Data Protection. כדי לבדוק מסמכי טקסט עשיר כשהמודל של התמונות מופעל, צריך להגדיר רק תבנית בדיקה בלי תבנית להסרת פרטי הזיהוי.
במאמר הנחיות מבוססות-קובץ מופיעות דוגמאות קוד שמראות איך לשלוח הנחיות מבוססות-קובץ באמצעות REST וספריות לקוח.
בדיקת קובץ חלקי
Model Armor מחזיר תוצאה חלקית (invocationResult:
PARTIAL) רק ברמת המסנן (הגלאי) בכל הקובץ, ולא לכל תמונה:
- כשל בתמונה ספציפית (דילוג על הקובץ כולו): אם חלק מהתמונות שמוטמעות בקובץ נסרקות בהצלחה, אבל אי אפשר לחלץ או לסרוק תמונה אחת או יותר בקובץ, המערכת מדלגת על הקובץ כולו. היא מחזירה את הערך
executionState: EXECUTION_SKIPPEDלכל המסננים שהוגדרו, וערךfilterMatchStateכולל שלNO_MATCH_FOUND. - כשל ברמת הגלאי (תוצאה חלקית): אם חלק מהמסננים שהוגדרו פועלים בהצלחה בקובץ, אבל המערכת מדלגת על מסנן אחד או יותר בכל הקובץ (לדוגמה, בגלל זמן קצוב לתפוגה של הגלאי), Model Armor מחזיר תוצאה חלקית עם השדות הבאים:
- תוצאת ההפעלה: השדה
invocationResultמוגדר לערךPARTIAL(במקוםSUCCESS), מה שמציין שהמערכת דילגה על מסנן אחד או יותר שהוגדרו לקובץ, בזמן שמסננים אחרים השלימו את הבדיקה. - מצב הפעלת המסנן: מסננים שדילגו עליהם בדוח הקובץ
executionState: EXECUTION_SKIPPED. מסננים שסיימו את הבדיקה בדוח הקובץexecutionState: EXECUTION_SUCCESS. - מצב התאמה: השדה
filterMatchStateמשקף את הממצאים מהמסננים שהבדיקה שלהם הושלמה. אם אחד מהמסננים שהושלמו מזהה הפרה, הערך שלfilterMatchStateמוגדר כ-MATCH_FOUND. אם המסננים שהושלמו לא מזהים הפרות, הערך שלfilterMatchStateמוגדר כ-NO_MATCH_FOUND.
- תוצאת ההפעלה: השדה
שיקולי אבטחה בבדיקה חלקית
מבחינת אבטחה, ערך invocationResult של PARTIAL מציין שמסנן אחד או יותר שהוגדרו לא הצליחו להעריך את הקובץ. יכול להיות שבקובץ עדיין יש איומי אבטחה פוטנציאליים או הפרות מדיניות שהמסננים שדילגתם עליהם היו אמורים לזהות.
כברירת מחדל, אם המסננים שסיימו את הבדיקה לא מזהים הפרות מדיניות, הערך של filterMatchState הוא NO_MATCH_FOUND. אם האפליקציה שלכם דורשת שכל המסננים שהוגדרו ישלימו את הבדיקה לפני שההנחיות יגיעו למודל ה-AI, בדקו את השדה invocationResult בתגובה. אם הערך הוא PARTIAL, צריך להגדיר את הלוגיקה של האפליקציה כך שתטפל בבקשה בהתאם למידת הסיכון שהארגון מוכן לקחת, למשל לדחות את ההנחיה או להעביר אותה לבדיקה משנית.
דוגמה לתגובה חלקית לבדיקה
בדוגמה הבאה מוצגת תגובה שבה המערכת דילגה על המסנן של תוכן ויזואלי של התעללות מינית בילדים (CSAM) בקובץ, בזמן שמסננים אחרים שהוגדרו השלימו את הבדיקה. Model Armor מחזיר invocationResult של PARTIAL, סטטוס EXECUTION_SKIPPED למסנן ה-CSAM ו-EXECUTION_SUCCESS לשאר המסננים:
{ "sanitizationResult": { "filterMatchState": "NO_MATCH_FOUND", "invocationResult": "PARTIAL", "filterResults": { "csam": { "csamFilterFilterResult": { "executionState": "EXECUTION_SKIPPED", "matchState": "NO_MATCH_FOUND" } }, "pi_and_jailbreak": { "piAndJailbreakFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, "sdp": { "sdpFilterResult": { "inspectResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } } } } } }
המאמרים הבאים
- יצירה וניהול של תבניות Model Armor
- הסרת תוכן זדוני או רגיש מהנחיות ומתשובות.
- זמינות התכונות לפי אזור
- מכסות ומגבלות מערכת