קומפילציה של מודלים באמצעות Google Tensor SDK

‫Google Tensor SDK מאפשר לכם לבצע אופטימיזציה של מודלים של למידת מכונה (ML) ולהריץ אותם ישירות ב-TPU הייעודי של Google Tensor. בנוסף למודלים רגילים של ML, אתם יכולים לקמפל מודלים של שפה ולהאיץ אותם בתהליך העבודה של LiteRT.

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

דגלים של הידור ל-Google Tensor

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

דגל דרישה תיאור ערך ברירת מחדל
google_tensor_truncation_type אופציונלי הגדרת סוג נתוני היעד לפעולות של נקודה צפה.
ערכים נתמכים: auto (ברירת מחדל), bfloat16, ‏ half, ‏ no_truncation
אוטומטי
google_tensor_sharding_intensity אופציונלי ההגדרה הזו קובעת את מידת האגרסיביות של פיצול המודל לעיבוד מקביל.
אפשרויות: מינימלי, בינוני, נרחב, מקסימלי.
מינימלי
google_tensor_int64_to_int32 אופציונלי הגדרה ל-true מאפשרת למהדר להמיר מספרים שלמים של 64 ביט למספרים שלמים של 32 ביט, וזה עשוי להיות נחוץ עבור חלק מהמודלים. לא נכון
google_tensor_enable_large_model_support אופציונלי צריך להגדיר את הערך כ-true אם המודל גדול מ-2GB. לא נכון
google_tensor_enable_4bit_compilation אופציונלי מאפשרת קומפילציה של מודלים עם פעולות קונבולוציה שמכילות פרמטרים של 4 ביט. לא נכון
google_tensor_extra_options_path אופציונלי מעביר אפשרויות נוספות של קומפיילר כקובץ בינארי. "" (ריק)

אפשר להשתמש בדגלים האלה בתהליך העבודה של LiteRT Python, כמו בדוגמאות הבאות של קטעי קוד:

  • כשמבצעים קומפילציה של מודל pytorch באמצעות ai_edge_torch

    compiled_models = (
      ai_edge_torch.experimental_add_compilation_backend(tensor_g5_target,
      flag_name1=value1,
      flag_name2=value2, ...).convert(
        channel_last_selfie_segmentation,
        sample_input))
    
  • כשמבצעים קומפילציה של מודל tflite

    compiled_models = aot_lib.aot_compile(
        tflite_model_path,
        target=[tensor_g5_target],
        flag_name1=value1,
        flag_name2=value2, ...)
    

דוגמה לשימוש

בדוגמה הבאה נעשה שימוש בדגל google_tensor_truncation_type="half":

  compiled_models = aot_lib.aot_compile(
      tflite_model_path,
      target=[tensor_g5_target],
      keep_going=False,
      google_tensor_truncation_type="half"
  )

מידע נוסף זמין במאמר LiteRT AOT Colab.

קומפילציה של מודלים של שפה ל-Google Tensor

כדי לקמפל מודלים של שפה עבור Google Tensor, פועלים לפי ההוראות במאמר בנושא קומפילציה של NPU AOT.

כדי לייצא מודלים מסוג LLM ל-TPU של Google Tensor, פועלים לפי הדוגמה של הדגלים הנוספים שנדרשים לקומפילציה של NPU.

דוגמה:

litert-torch export-hf \
  --model=google/gemma-3-270m-it \
  --output_dir=/tmp/gemma3-270m-google-tensor-g5 \
  --split_cache \
  --externalize_embedder \
  --prefill_lengths=128, \
  --cache_length=1280 \
  --quantization_recipe="weight_only_wi8_afp32" \
  --aot_backend=GOOGLE \
  --aot_soc_model=Tensor_G5 \
  --aot_compilation_config_dict='{"google_tensor_enable_large_model_support": True}'