کامپایل مدل‌ها با Google Tensor SDK

کیت توسعه نرم‌افزار گوگل تنسور (Google Tensor SDK) به شما امکان می‌دهد مدل‌های یادگیری ماشین (ML) را مستقیماً روی TPU اختصاصی گوگل تنسور بهینه‌سازی و اجرا کنید. علاوه بر مدل‌های استاندارد یادگیری ماشین، می‌توانید مدل‌های زبانی را در گردش کار LiteRT خود کامپایل و سرعت بخشید.

برای برخی از مدل‌های از پیش بهینه‌شده، ما یک فایل باینری اضافی برای گزینه‌های کامپایلر ارائه می‌دهیم که می‌توانید در گردش کار خود بگنجانید. برای دستیابی به عملکرد بهینه در 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 تنظیم کنید، که ممکن است برای برخی مدل‌ها ضروری باشد. نادرست
google_tensor_enable_large_model_support اختیاری اگر مدل شما بزرگتر از ۲ گیگابایت است، روی true تنظیم کنید. نادرست
google_tensor_enable_4bit_compilation اختیاری امکان کامپایل مدل‌ها با عملیات کانولوشن حاوی پارامترهای ۴ بیتی را فراهم می‌کند. نادرست
google_tensor_extra_options_path اختیاری گزینه‌های کامپایلر اضافی را به عنوان یک فایل باینری ارسال می‌کند. "" (خالی)

می‌توانید از این پرچم‌ها با جریان پایتون LiteRT همانطور که در قطعه کد زیر نشان داده شده است، استفاده کنید:

  • هنگام کامپایل یک مدل پای‌تورچ با استفاده از 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 مراجعه کنید.

کامپایل مدل‌های زبانی برای گوگل تنسور

برای کامپایل مدل‌های زبانی برای گوگل تنسور، دستورالعمل‌های موجود در کامپایل NPU AOT را دنبال کنید.

برای خروجی گرفتن از LLMها برای TPUهای گوگل تنسور، از مثال مربوط به پرچم‌های اضافی مورد نیاز برای کامپایل 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}'