שימוש בכלי לניתוח מודלים גדולים של שפה

בדף הזה מוסבר איך להשתמש בכלי לניתוח LLM של Vertex AI RAG Engine.

מבוא

‫Vertex AI RAG Engine משתמש במודלים גדולים של שפה (LLM) לניתוח מסמכים. למודלים גדולים של שפה (LLM) יש יכולת לעבד מסמכים ביעילות בדרכים הבאות:

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

היכולות של מנוע ה-RAG של Vertex AI משפרות באופן משמעותי את איכות התשובות שנוצרות.

מודלים נתמכים

המודלים הבאים תומכים בכלי לניתוח LLM של Vertex AI RAG Engine:

סוגי קבצים נתמכים

מנתח ה-LLM תומך בסוגי הקבצים הבאים:

  • application/pdf
  • image/png
  • image/jpeg
  • image/webp
  • image/heic
  • image/heif

תמחור ומכסות

פרטים על התמחור מופיעים במאמר תמחור Vertex AI.

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

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

cost = number_of_document_files * average_pages_per_document *
(average_input_tokens * input_token_pricing_of_selected_model +
average_output_tokens * output_token_pricing_of_selected_model)

לדוגמה, יש לכם 1,000 קובצי PDF, ולכל קובץ PDF יש 50 דפים. בממוצע, כל עמוד PDF מכיל 500 טוקנים, ואנחנו צריכים עוד 100 טוקנים כדי ליצור הנחיה. הפלט הממוצע הוא 100 טוקנים.

‫Gemini 2.0 Flash-Lite משמש בהגדרה שלכם לניתוח, והעלות שלו היא 0.075 $למיליון טוקנים של קלט ו-0.3 $לטוקנים של טקסט פלט.

cost = 1,000 * 50 * (600 * 0.075 / 1M + 100 * 0.3 / 1M) = 3.75

העלות היא 3.75$.

ייבוא קבצים עם LlmParser מופעל

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

  • PROJECT_ID: המזהה של פרויקט Google Cloud .
  • LOCATION: האזור שבו הבקשה שלכם מעובדת.
  • RAG_CORPUS_RESOURCE: מזהה הקורפוס.
  • GCS_URI: ה-URI של Cloud Storage של הקבצים שרוצים לייבא.
  • GOOGLE_DRIVE_URI: ה-URI של Google Drive של הקבצים שרוצים לייבא.
  • MODEL_NAME: שם המשאב של המודל שמשמש לניתוח.

    פורמט: projects/{project_id}/locations/{location}/publishers/google/models/{model_id}

  • CUSTOM_PARSING_PROMPT: אופציונלי: הנחיה מותאמת אישית שהלקוח מגדיר כדי שמנתח ה-LLM ישתמש בה לניתוח מסמכים.
  • MAX_PARSING_REQUESTS_PER_MIN: אופציונלי: המספר המקסימלי של בקשות שהעבודה יכולה לשלוח למודל Vertex AI בכל דקה. למידע נוסף, אפשר לעיין במאמר בנושא מגבלות קצב של AI גנרטיבי ב-Vertex AI ובדף Quotas & System Limits של הפרויקט כדי להגדיר ערך מתאים.

REST

  curl -X POST \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_RESOURCE/ragFiles:import" -d '{
    "import_rag_files_config": {
      "gcs_source": {
        "uris":  ["GCS_URI", "GOOGLE_DRIVE_URI"]
      },
      "rag_file_chunking_config": {
        "chunk_size": 512,
        "chunk_overlap": 102
      },
      "rag_file_parsing_config": {
        "llm_parser": {
          "model_name": "MODEL_NAME",
          "custom_parsing_prompt": "CUSTOM_PARSING_PROMPT"
          "max_parsing_requests_per_min": "MAX_PARSING_REQUESTS_PER_MIN"
        }
      }
    }
  }'

Python

במאמר התקנה של Vertex AI SDK ל-Python מוסבר איך להתקין או לעדכן את Vertex AI SDK ל-Python. מידע נוסף מופיע במאמרי העזרה של API בשפת Python.

  from vertexai import rag
  import vertexai

  PROJECT_ID = "PROJECT_ID"
  CORPUS_NAME = "RAG_CORPUS_RESOURCE"
  LOCATION = "LOCATION"
  MODEL_ID = "MODEL_ID"
  MODEL_NAME = "projects/{PROJECT_ID}/locations/{LOCATION}/publishers/google/models/{MODEL_ID}"
  MAX_PARSING_REQUESTS_PER_MIN = MAX_PARSING_REQUESTS_PER_MIN # Optional
  CUSTOM_PARSING_PROMPT = "Your custom prompt" # Optional

  PATHS = ["https://drive.google.com/file/123", "gs://my_bucket/my_files_dir"]

  # Initialize Vertex AI API once per session
  vertexai.init(project={PROJECT_ID}, location={LOCATION})

  transformation_config = rag.TransformationConfig(
      chunking_config=rag.ChunkingConfig(
          chunk_size=1024, # Optional
          chunk_overlap=200, # Optional
      ),
  )

  llm_parser_config = rag.LlmParserConfig(
      model_name = MODEL_NAME,
      max_parsing_requests_per_min=MAX_PARSING_REQUESTS_PER_MIN, # Optional
      custom_parsing_prompt=CUSTOM_PARSING_PROMPT, # Optional
  )

  rag.import_files(
      CORPUS_NAME,
      PATHS,
      llm_parser=llm_parser_config,
      transformation_config=transformation_config,
  )

הנחיות

מנתח ה-LLM של Vertex AI RAG Engine משתמש בהנחיה מוגדרת מראש ומכווננת כדי לנתח מסמכים. עם זאת, אם יש לכם מסמכים מיוחדים שאולי לא מתאימים להנחיה כללית, אתם יכולים לציין הנחיית ניתוח מותאמת אישית כשאתם משתמשים ב-API. כשמבקשים מ-Gemini לנתח את המסמכים, אפליקציית Vertex AI RAG Engine מוסיפה הנחיה להנחיית המערכת שמוגדרת כברירת מחדל.

טבלה של תבניות הנחיות

כדי לעזור בניתוח מסמכים, בטבלה הבאה מופיע תבנית של הנחיה לדוגמה שתעזור לכם ליצור הנחיות שמנוע Vertex AI RAG יכול להשתמש בהן כדי לנתח את המסמכים שלכם:

הוראות הצהרת תבנית דוגמה
מציינים תפקיד. אתה [Specify the role, such as a factual data extractor or an information retriever]. אתה מאחזר מידע.
מציינים את המשימה. תחלץ [ציין את סוג המידע, כמו הצהרות עובדתיות, נתונים מרכזיים או פרטים ספציפיים] מתוך [ציין את מקור המסמך, כמו מסמך, טקסט, מאמר, תמונה, טבלה]. לחלץ נתונים חשובים מקובץ sample.txt.
צריך להסביר איך רוצים שמודל ה-LLM ייצור את הפלט בהתאם למסמכים. תציג כל עובדה ב[מציינים את פורמט הפלט, למשל רשימה מובנית או פורמט טקסט], ותקשר אותה ל[מציינים את מיקום המקור, למשל דף, פסקה, טבלה או שורה]. מציגים כל עובדה ברשימה מובנית ומקשרים לדף הדוגמה שלה.
הדגישו במה מודל ה-LLM צריך להתמקד. תחלץ [Specify the key data types, such as the names, dates, numbers, attributes, or relationships] בדיוק כמו שצוין. חילוץ שמות ותאריכים.
מדגישים את מה שלא רוצים שה-LLM יעשה. [List the actions to avoid, such as analysis, interpretation, summarizing, inferring, or giving opinions]. תחלץ רק את מה שכתוב במפורש במסמך. לא לתת דעות. תחלץ רק את מה שכתוב במפורש במסמך.

הנחיות כלליות

כדי לכתוב את ההנחיה לשליחה למנתח ה-LLM, צריך לפעול לפי ההנחיות הבאות.

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

ניתוח איכות של ניתוח נתונים

בטבלה הזו מפורטות תוצאות של תרחישים שהלקוחות הריצו באמצעות Vertex AI RAG Engine. המשוב מראה שהכלי לניתוח מסמכים של מודל שפה גדול משפר את האיכות של ניתוח מסמכים.

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

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

שאילתת אחזור

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

המאמרים הבאים