Hata kodu: 0102

Kategori: Çalışma zamanı: Program giriş arabelleği uyuşmazlığı

Bu hata, XLA çalışma zamanı derlenmiş bir programın beklediği bellek arabelleğinin boyutu ile yürütme sırasında sağlanan arabelleğin boyutu arasında bir uyuşmazlık algıladığında oluşur.

Örnek Hata Mesajı:

XlaRuntimeError: INVALID_ARGUMENT: Executable(jit_embedding_pipeline_step_fn) expected parameter 2482 of size 5242880 (bf16[16,1280,40]{2,1,0:T(8,128)(2,1)}) but got buffer with incompatible size 1638400 (bf16[16,1280,40]{1,2,0:T(8,128)(2,1)}): while running replica 0 and partition 0 of a replicated computation (other replicas may have failed as well).

XLA arka uçları: TPU

Genel Bakış

Hata mesajında hem beklenen hem de gerçek boyutların yanı sıra tensör şekilleri ve düzenleri belirtilir. Bu hataların, iki tensörün şekli aynı olsa bile fiziksel düzenleri (verilerin donanımda nasıl döşendiği ve düzenlendiği) farklı olduğunda bellek boyutları farklı olabileceğinden kaynaklanabileceğini unutmayın.

Bu hataların başlıca nedenleri şunlardır:

  • Kontrol noktası ve XLA yapılandırması uyuşmazlığı: Bir model eğitilir ve kontrol noktası kaydedilir. Bu kontrol noktasındaki ağırlıkların fiziksel düzeni, o sırada kullanılan XLA'nın tam sürümü ve yapılandırması (ör. XLA işaretleri) tarafından belirlenir. Daha sonra bu kontrol noktası, yapılandırmanın değiştiği farklı bir ortamda yüklenir. Yeni bir işaret, farklı bir varsayılan değer veya model/XLA kodundaki bir değişiklik, çalışma zamanının ağırlıklar için farklı bir fiziksel düzen beklemesine neden olabilir. Kontrol noktasındaki eski arabellek yeni derlenmiş XLA programına aktarıldığında çalışma zamanı bir hata verir.
  • Donanıma/Topolojiye Özgü Düzenler: XLA derleyicisi, farklı donanımlarda performansı optimize etmek için tensörler için farklı fiziksel düzenler seçebilir. v4 TPU için optimum olan düzen, v5 TPU veya aynı çipin farklı pod dilimleri için (ör. 4x4x4 ile 4x8). Bu hata, bir model bir topolojinin düzeniyle ilgili bir varsayımla derlendiğinde ancak çalışma zamanında farklı bir topolojide planlandığında veya derleyicinin belirli bir donanım parçası için düzen mantığında bir hata olduğunda oluşur.

Hata ayıklama

  • Model dışa aktarma ve kontrol noktalarından yeniden çalıştırma arasında yapılandırma tutarlılığını sağlama:
    • Düzeni etkileyen değişiklikler yapılmadığından emin olmadığınız sürece yeni kodla eski kontrol noktalarını kullanmaktan kaçının.
    • Kaydedilen modeli yeniden dışa aktarın: Kontrol noktası/yapılandırma uyuşmazlığından şüpheleniyorsanız en güvenilir çözüm, çıkarım veya ince ayar için kullandığınız kod tabanının ve yapılandırmanın aynısını (ve güncel olanını) kullanarak kaydedilen modeli yeniden dışa aktarmaktır.
    • İki çalıştırma arasındaki yapılandırma değişikliklerini (ör. XLA işaretleri) kontrol edin.
  • Donanıma/topolojiye özgü düzenler:
    • Donanım veya topoloji değiştiriyorsanız donanım sürümü ve topoloji uyuşmazlıklarını kontrol edin.