İnternette İstediğiniz Gibi Çevrimiçi Para Kazanma!

Meta Açık Kaynak Bütünsel İzleme Analizi (HTA): Yeni nesil makine öğrenimi makine öğrenimi iş yüklerini desteklemek için tamamen ölçeklenebilir bir performans analizi aracı

Şu yazıyı okuyorsunuz: Meta Açık Kaynak Bütünsel İzleme Analizi (HTA): Yeni nesil makine öğrenimi makine öğrenimi iş yüklerini desteklemek için tamamen ölçeklenebilir bir performans analizi aracı

Makine öğrenimi ve derin öğrenme modelleri, son teknolojik gelişmeler sayesinde birçok görevde olağanüstü performans göstermektedir. Ancak bu olağanüstü performansın bir bedeli var. Makine öğrenimi modelleri, en son teknolojiye sahip doğruluğu elde etmek için genellikle büyük miktarda kaynak ve hesaplama gücü gerektirir, bu da bu modellerin ölçeklendirilmesini zorlaştırır. Ayrıca, iş yüklerindeki performans sınırlamalarının farkında olmadıkları için makine öğrenimi araştırmacıları ve sistem mühendisleri genellikle modellerini hesaplamalı olarak ölçeklendiremezler. Çoğu zaman, bir iş için talep edilen kaynak miktarı yalnızca bazen gerçekten ihtiyaç duyulan miktardadır. Dağıtılmış eğitim iş yükleri için kaynak kullanımını ve darboğazları anlamak, bir modelin donanım yığınından en iyi şekilde yararlanmak açısından çok önemlidir.

PyTorch ekibi bu sorun bildirimi üzerinde çalıştı ve yakın zamanda bir Python performans analizi ve görselleştirme kitaplığı olan Bütünsel İzleme Analizi’ni (HTA) yayınladı. Kitaplık, performansı anlamak ve dağıtılmış eğitim iş yüklerindeki darboğazları belirlemek için kullanılabilir. Bu, Kineto olarak da bilinen PyTorch Profiler kullanılarak toplanan izlerin incelenmesiyle gerçekleştirilir. Kineto izlerini anlamak genellikle karmaşıktır; HTA’nın bu izlerde bulunan performans verilerini yükseltmeye yardımcı olduğu yer burasıdır. Kütüphane ilk olarak GPU’lardaki büyük dağıtılmış eğitim görevlerine ilişkin performans sorunlarını daha iyi anlamak için dahili olarak Meta’da kullanıldı. Ekip daha sonra HTA’nın birçok yeteneğini geliştirmeye ve bunları en son makine öğrenimi iş yüklerini destekleyecek şekilde ölçeklendirmeye başladı.

Model operatörlerinin GPU cihazlarıyla nasıl etkileşime girdiği ve bu etkileşimlerin nasıl ölçülebileceği gibi çeşitli unsurların, dağıtılmış eğitim işlerinde GPU performansını anlamak için dikkate alındığı düşünülmektedir. Üç ana çekirdek kategorisi: Bilgi İşlem (COMP), İletişim (COMM) ve Bellek (MEM), bir modelin yürütülmesi boyunca GPU işlemlerini sınıflandırmak için kullanılabilir. Modelin yürütülmesi sırasında gerçekleştirilen tüm matematiksel işlemler, bilgi işlem çekirdekleri tarafından gerçekleştirilir. Buna karşılık iletişim çekirdekleri, dağıtılmış bir eğitim işinde birden fazla GPU cihazı arasında veri senkronizasyonu ve aktarımından sorumludur. Bellek çekirdekleri, ana bilgisayar belleği ile GPU’lar arasındaki veri aktarımının yanı sıra GPU aygıtlarındaki bellek tahsislerini de kontrol eder.

Çeşitli GPU eğitim işlerinin performansının değerlendirilmesi büyük ölçüde model yürütmenin GPU çekirdeklerini nasıl oluşturduğuna ve koordine ettiğine bağlıdır. Model yürütmenin GPU donanımıyla nasıl etkileşime girdiğine dair değerli bilgiler sağlayan ve hızı artıracak alanlara işaret eden HTA kitaplığının devreye girdiği yer burasıdır. Kütüphane, kullanıcılara dağıtılmış GPU eğitiminin iç işleyişine ilişkin daha derin bir anlayış sunmayı amaçlıyor.

Sıradan insanların GPU eğitim işlerinin nasıl çalıştığını anlaması zor olabilir. Bu, PyTorch ekibine iz analizi sürecini kolaylaştıran ve model yürütme izlerine bakarak kullanıcıya ayrıntılı bilgi sağlayan HTA’yı oluşturma konusunda ilham verdi. HTA yukarıdaki görevleri desteklemek için aşağıdaki işlevleri kullanır:

Zamansal arıza: Bu özellik, hesaplama, iletişim, bellek olayları ve hatta boşta kalma süresi açısından GPU’ların tüm aralıklarda harcadığı sürenin bir dökümünü sağlar.

Çekirdek Dağılımı: Bu işlev, üç çekirdek türünün (COMM, COMP ve MEM) her birinde harcanan zamanı ayırır ve harcanan zamanı artan süre sırasına göre düzenler.

Çekirdek ömrü dağılımı: Belirli bir çekirdeğin harcadığı ortalama sürenin tüm aralıklara dağılımı, HTA tarafından üretilen çubuk grafikler kullanılarak görselleştirilebilir. Grafikler ayrıca belirli bir çekirdeğin belirli bir aralıkta harcadığı minimum ve maksimum süreyi de gösterir.

İletişim Bilgi İşlem Katmanı: Dağıtılmış eğitim gerçekleştirirken birçok GPU cihazının birbiriyle iletişim kurması ve senkronize olması gerekir, bu da oldukça fazla zaman gerektirir. Yüksek GPU verimliliği elde etmek için, diğer GPU’lardan veri beklerken GPU’nun takılı kalmasının önlenmesi önemlidir. Hesaplama ve iletişim arasındaki örtüşmeyi hesaplamak, veri bağımlılıkları tarafından engellenen hesaplama miktarını değerlendirmeye yönelik bir yöntemdir. Kütüphanenin sunduğu bu işlev, iletişim ve hesaplamanın örtüştüğü zamanın yüzdesinin hesaplanmasına yardımcı olur.

Artan sayaçlar (kuyruk uzunluğu, bellek bant genişliği): Hata ayıklama amacıyla HTA, kullanılan bellek bant genişliğinin yanı sıra her CUDA akışındaki tamamlanmamış işlemlerin sayısını (sıra uzunluğu olarak da bilinir) gösteren istatistikleri içeren artırılmış izleme dosyaları oluşturur.

Bu temel özellikler, kullanıcılara sistemin nasıl çalıştığına dair bir fikir verir ve dahili olarak neler olup bittiğini anlamalarına yardımcı olur. PyTorch ekibi ayrıca yakın gelecekte bazı şeylerin neden olduğunu ve darboğazların üstesinden gelmek için olası stratejileri açıklayacak daha fazla özellik eklemeyi planlıyor. HTA, daha geniş bir kitleye hizmet vermek için açık kaynaklı bir kütüphane olarak kullanıma sunuldu. Derin öğrenmeye dayalı öneri sistemleri, NLP modelleri ve bilgisayarlı görme ile ilgili görevler dahil olmak üzere çeşitli amaçlar için kullanılabilir. Kütüphane için ayrıntılı belgeler bulunabilir Burada.