Ticaret için ONNX'i öğrenme - sayfa 5

 

ONNX: Geçmiş, Bugün ve Gelecek - Jim Spohrer, IBM & Prasanth Pulavarthi, Microsoft



ONNX: Geçmiş, Bugün ve Gelecek - Jim Spohrer, IBM & Prasanth Pulavarthi, Microsoft

"ONNX: Geçmiş, Bugün ve Gelecek" videosunda, IBM'den Jim Spohrer ve Microsoft'tan Prasanth Pulavarthi, açık kaynaklı yapay zeka çerçevesi ONNX'in büyümesini ve geleceğini tartışıyor. ONNX tarafından sağlanan değiş tokuş formatı aracılığıyla yapay zeka modellerinin dağıtımını standartlaştırmanın önemini vurgulayarak, farklı derin öğrenme çerçevelerinde sorunsuz optimizasyon sağlar. Ek olarak, ONNX çalışma zamanının çeşitli donanım hızlandırıcılarla çalışma yeteneğindeki son gelişmeleri tartışıyorlar ve ONNX'i kullanmaya başlamak için ipuçları ve kaynaklar sunuyorlar. Konuşmacılar, izleyicileri ONNX topluluğuna katılmaya teşvik ederken, ONNX'in yetenekleri, ticari dağıtım ve yaklaşan sertifika planları hakkında izleyicilerin sorularını yanıtlıyor.

  • 00:00:00 Bu bölümde, IBM'den Jim Spohrer ve Microsoft'tan Prasanth Pulavarthi kendilerini tanıtıyor ve açık kaynaklı bir yapay zeka çerçevesi olan ONNX'in geçmişi, bugünü ve geleceği hakkında genel bir bakış sunuyor. ONNX, farklı araçların çeşitli derin öğrenme çerçevelerinde birlikte çalışmasına ve çıkarımı optimize etmesine olanak tanıyan standart bir değişim formatı olarak hizmet eder. Konuşmacılar, izleyicileri ONNX web sitesindeki haberlere ve başlangıç bilgilerine göz atarak ve ayrıca GitHub ve Gitter'da topluluğa katılarak ONNX topluluğuna katılmaya teşvik ediyor. Ayrıca, ONNX ortaklarının projelerini ve ONNX'i yenilikçi şekillerde nasıl kullandıklarını tartıştıkları son sanal topluluk toplantılarını da vurguluyorlar.

  • 00:05:00 Bu bölümde konuşmacılar, ONNX topluluğunun büyümesini ve yapay zeka ve makine öğrenimi alanındaki çok sayıda açık kaynak projesi arasında bir değişim formatı olarak önemini tartışıyor. Çekme istekleri, katkıda bulunanlar, yıldızlar, çatallar, yayınlanan makaleler ve model hayvanat bahçesi açısından ONNX topluluğunun ilerlemesini vurgular ve daha fazla kuruluşu ve kişiyi katılmaya teşvik ederler. Konuşmacılar ayrıca Microsoft'ta ONNX'i ve çeşitli ürünlerde kullanımını tanıtarak, çeşitli yapay zeka ve makine öğrenimi çözümlerinde ONNX gibi standartlaştırılmış bir formata olan ihtiyacı vurguluyor. ONNX'in nasıl kullanılacağına dair ipuçları sunarlar ve izleyicilerden gelen soruları memnuniyetle karşılarlar.

  • 00:10:00 Bu bölümde konuşmacılar, geliştiricilerin makine öğrenimi modellerini üretime dağıtmaya çalışırken karşılaştıkları yüksek çıkarım gecikmesi, modelleri uçta ve IoT cihazlarında çalıştırma ve aynı modeli farklı cihazlarda çalıştırma ihtiyacı gibi yaygın sorunları tartışıyor. donanım ve işletim sistemleri. Bu sorunları çözmek için konuşmacılar, geliştiricilerin çeşitli çerçevelerden modelleri ortak bir biçimde temsil etmelerine ve bunları farklı platformlarda ve hızlandırıcılarda verimli bir şekilde çalıştırmalarına olanak tanıyan ONNX biçimini ve ONNX çalışma zamanını tanıtıyor. Microsoft'un Konuşma Hizmeti, ONNX'in üretimde çevikliği ve performansı nasıl geliştirdiğine bir örnek olarak verilmiştir.

  • 00:15:00 Bu bölümde, konuşmacılar ONNX çalışma zamanını kullanmanın çeviklik, performans ve doğruluk açısından nasıl fayda sağlayabileceğini tartışıyor. Microsoft'un konuşmadan metne dönüştürme ve bilgisayar görüşü gibi bilişsel hizmetlerinden ve vücut izleme özelliklerine sahip bir cihaz olan Azure Connect'ten bahsediyorlar. Aynı model ve uygulama kodunun farklı platformlarda ve donanım hızlandırıcılarda kullanılmasına izin vererek zamandan ve özelleştirme çabalarından tasarruf sağladığından, ONNX'in taşınabilirlik yönü de vurgulanmıştır. Ek olarak, konuşmacılar, modeller için ortak bir format olarak ONNX çalışma zamanını kullanan ve Windows işletim sisteminde makine öğrenimi çıkarımı yapmayı kolaylaştıran Windows ML'ye değiniyor.

  • 00:20:00 Bu bölümde Jim Spohrer ve Prasanth Pulavarthi, ONNX çalışma zamanının bazı son gelişmelerini ve başarılarını tartışıyor. En önemli özelliklerinden biri, GPU'lar veya VPU'lar gibi farklı türde donanım hızlandırıcılarla çalışabilmesidir. Ayrıca diller arası destek sunarak kullanıcıların Pythonic ortamlarda eğitilmiş modelleri C#'a dönüştürmesine olanak tanır. ONNX çalışma zamanını kullanan bir şirket örneği, finansal modellerini scikit-learn kullanarak python'da eğiten ancak C#'ta üretim için ONNX çalışma zamanını kullanan bir ISV'dir. Ek olarak, ONNX runtime yakın zamanda BERT ve GPT2 gibi trafo modellerinin çıkarımını ve eğitimini optimize ederek kullanıcılar için önemli ölçüde hızlanma ve maliyet tasarrufu sağladı.

  • 00:25:00 Bu bölümde, konuşmacılar ONNX ve ONNX runtime ile nasıl başlanacağı hakkında bilgi verir. Bir URL aracılığıyla erişilebilen Model Hayvanat Bahçesi, görme, dil ve yaklaşan konuşma modelleri için ONNX çalışma zamanı ile indirip kullanmaya başlamanız için önceden eğitilmiş çeşitli modeller sunar. Ayrıca konuşmacılar, maketlerin Model Hayvanat Bahçesi'ne katkısını teşvik eder. Diğer çerçevelerdeki mevcut modeller de ONNX formatına dönüştürülebilir veya dışa aktarılabilir. PyTorch, Keras, TensorFlow ve Scikit-Learn gibi çerçeveler, ONNX dışa aktarma işlevlerine sahiptir ve ONNX çalışma zamanı, birden çok programlama dili desteğiyle Windows, Linux ve Mac'e kurulabilir.

  • 00:30:00 Bu bölümde, konuşmacılar donanım hızlandırmayı ve yürütme sağlayıcıları adı verilen API aracılığıyla farklı donanım hızlandırıcılarının nasıl entegre edilebileceğini tartışıyor. ONNX çalışma zamanı, bir CUDA uygulamasının yanı sıra yüksek düzeyde optimize edilmiş bir CPU uygulamasına sahiptir ve Nvidia ve Intel gibi donanım satıcıları, optimizasyonlarını ONNX çalışma zamanı ile entegre etmek için ONNX ile ortaklık kurmuştur. Bu, belirli bir işlem belirli bir hızlandırıcı tarafından desteklenmese bile herhangi bir ONNX modelinin tüm ONNX spesifikasyonu için tam destekle çalışabilmesini sağlar. Konuşmacılar, izleyicileri ONNX'i denemeye ve açık yönetişim, SIG'ler ve çalışma grupları dahil olmak üzere ONNX topluluğunda bulunan kaynakları paylaşmaya teşvik ediyor.

  • 00:35:00 Bu bölümde konuşmacılar, farklı özel ilgi gruplarından (SIG'ler) ve çalışma gruplarından oluşan ONNX projesinin açık yönetişim yapısını tartışıyor. SIG'lerin ve çalışma gruplarının periyodik olarak toplandığını ve her şeyin açık olduğunu ve toplantıların hepsinin AI takviminde takvimde yayınlandığını açıklarlar. Ayrıca, açık yönetişim yapısı, sırasıyla farklı kararlarda oy hakkına sahip olan veya birleştirme izinlerine sahip olan katkıda bulunanların ve onaylayanların nasıl seçildiğini açıklar. Nihayetinde konuşmacılar, farklı kanallara ve gruplara katılarak, posta listesine kaydolarak ve tartışmalara katılarak insanları ONNX projesine katılmaya teşvik eder.

  • 00:40:00 Bu bölümde konuşmacılar, ONNX konusunda potansiyel kitap yayınları, ONNX runtime'ın günlük tutma yetenekleri ve makine öğrenimi eğitim süresini kısaltmak için kullanılan yöntemler gibi konularda çeşitli izleyici sorularını yanıtlıyor. Ayrıca Azure Bilişsel Hizmetler, ofis modelleri ve Bing arama motoru gibi çeşitli senaryolarda ONNX tabanlı modellerin bazı ticari dağıtımlarından da bahsediyorlar.

  • 00:45:00 Bu bölümde konuşmacılar, ONNX modellerinin Microsoft dışında ticari dağıtımını tartıştı ve Azure'da finans şirketleri ve diğer kuruluşlar tarafından kullanılan bir dizi üretim sınıfı model olduğundan bahsetti. Ayrıca CNTK'yi destekleyip desteklemediği (evet, bir ONNX dışa aktarımı var) ve donanım hızlandırma araçları hakkında bilgiye ihtiyacınız olup olmadığı (hayır, ONNX çalışma zamanı bir soyutlama katmanı sağladığı için hayır) dahil olmak üzere ONNX hakkında izleyicilerin sorularını yanıtladılar. Ayrıca, eğitimde ONNX kullanmanın eğitimden sonra ONNX'e geçiş yapmanın faydalarına değindiler ve ONNX çalışma zamanının eğitim sürecini hızlandırabileceğini ve bunun sonucunda daha hızlı transformatör modelleri elde edilebileceğini açıkladılar. Son olarak, potansiyel sertifika planları ve insanların ONNX'i kullandığı farklı yollar hakkında bilgi almaya istekli olduklarını ifade ettiler.

  • 00:50:00 Bu bölümde konuşmacılar, ONNX'in tüm ardışık düzen türlerini destekleme yeteneği hakkındaki bir soruyu yanıtlıyor. Mevcut bazı boşluklar nedeniyle %100 olmasa da, yaygın model türleri genellikle desteklenir ve kullanıcılar, desteklenen ardışık düzenlerin bir listesi için ONNX Converter GitHub'a başvurabilir veya ardışık düzenlerinin tamamen dönüştürülüp dönüştürülemeyeceğini görmek için kendileri deneyebilir. Konuşmacılar daha sonra katılımcılara teşekkür ederek ve onları ONNX topluluğuna katılmaya teşvik ederek oturumu sonlandırır.
ONNX: Past, Present, and Future - Jim Spohrer, IBM & Prasanth Pulavarthi, Microsoft
ONNX: Past, Present, and Future - Jim Spohrer, IBM & Prasanth Pulavarthi, Microsoft
  • 2020.09.11
  • www.youtube.com
ONNX: Past, Present, and Future - Jim Spohrer, IBM & Prasanth Pulavarthi, Microsoft
 

Onnx-mlir: ONNX Modelleri için MLIR tabanlı bir Derleyici - Son Durum



Onnx-mlir: ONNX Modelleri için MLIR tabanlı bir Derleyici - Son Durum

Onnx-mlir, optimizasyon ve kod üretimi için MLIR ve LLVM kullanan, CPU'ları ve özel hızlandırıcıları destekleyen ONNX modelleri için bir derleyicidir. IBM Research'ten Dong Lin, kapsamlı testlerin önemini vurguluyor ve çerçevenin çevrimiçi puanlama hizmetlerinde ve model hizmet çerçevelerinde kullanıldığını vurguluyor. Onnx-mlir, CPU ve hızlandırıcı için çeşitli düzeylerde optimizasyonlarla birden fazla lehçeye sahiptir ve bir IBM hızlandırıcı kullanarak bir kredi kartı dolandırıcılık tespit modelini 11 kat hızlandırdığı gösterilmiştir. Proje, önemli operatörleri optimize etmek ve niş makine öğrenimi operatörlerini ve GPU'lar gibi diğer hızlandırıcıları desteklemek için topluluk katkılarını memnuniyetle karşılamaktadır.

  • 00:00:00 Bu bölümde, IBM Research'ten Dong Lin, üst düzey optimizasyon ve düşük düzey kod üretimi için MLIR ve LLVM kullanan ONNX modelleri için bir derleyici olan ONNX-MLIR'i tartışıyor. Derleyici, MLIR'de ONNX lehçesi için bir referans sağlamayı ve optimizasyonu yalnızca CPU'lar için değil, aynı zamanda özel hızlandırıcılar için de uygun hale getirmeyi amaçlar. Diğer MLIR tabanlı derleyicilerle entegrasyonu kolaydır ve Python, C++ ve Java gibi farklı programlama dillerini destekler. Dong Lin ayrıca derleyiciyi dikkatli bir şekilde test etmenin önemini vurguluyor ve özel hızlandırıcılar için yeni tanıtılan destekle birlikte çevrimiçi puanlama hizmetleri ve model sunma çerçeveleri için kullanıldığından bahsediyor.

  • 00:05:00 Bu bölümde konuşmacı, yeni hızlandırıcıları optimize edebilen ve destekleyebilen ONNX-MLIR derleyicisini tartışıyor. Derleyici, çeşitli düzeylerde optimizasyonlarla CPU ve hızlandırıcı için birden fazla lehçeye sahiptir. Konuşmacı, çerçevenin bir IBM hızlandırıcı kullanarak bir kredi kartı sahtekarlığı tespit modelini 11 kat hızlandırma yeteneğini gösterdi, ancak daha fazla ayrıntı ifşa edemedi. Önemli operatörleri optimize etmeyi, niş makine öğrenimi operatörlerini ve GPU'lar gibi diğer hızlandırıcıları desteklemeyi amaçladıklarından, topluluğun açık kaynak projesini geliştirmeye yönelik katkılarına ilgi duyduklarını vurguladılar.
Onnx-mlir: an MLIR-based Compiler for ONNX Models - The Latest Status
Onnx-mlir: an MLIR-based Compiler for ONNX Models - The Latest Status
  • 2022.07.13
  • www.youtube.com
Onnx-mlir is an open source compiler implemented using the Multi-Level Intermediate Representation (MLIR) infrastructure recently integrated in the LLVM proj...
 

PFVM - Ara temsili olarak ONNX kullanan bir Sinir Ağı Derleyicisi



PFVM - Ara temsili olarak ONNX kullanan bir Sinir Ağı Derleyicisi

Bu videoda Preferred Networks'ten Zijian Xu, modül optimizasyonu için ara temsili olarak ONNX'i kullanan bir sinir ağı derleyicisi olan PFVM'yi tanıtıyor. PFVM'nin dışa aktarılan ONNX'i girdi olarak nasıl aldığını, optimize ettiğini ve üçüncü taraf API'leri kullanarak modeli belirtilen arka uçlarla nasıl yürüttüğünü tartışıyor. Genji, ONNX'i müşteri operatörleriyle genişletme, şekil çıkarımı ve grafik basitleştirme dahil olmak üzere optimizasyonun önemini açıklıyor. Ayrıca, dinamik durumda daha fazla destek ihtiyacı da dahil olmak üzere mevcut ONNX derleyicilerinin sınırlamalarına değiniyor ve daha fazla çıkarım işlevinin uygulanmasını öneriyor. Zijian Xu, daha hızlı hesaplama için çekirdek aralığı ek yükünü ve bellek kullanımını azaltmanın önemini vurguluyor ve çıkarımı programlamak ve şekillendirmek için makinelerde bulunan statik bilgilerin kullanılmasını öneriyor.

  • 00:00:00 Bu bölümde, Tercih Edilen Ağlardan Zijian Xu, ara temsili olarak ONNX kullanan bir sinir ağı derleyicisi olan PFVM'yi tartışıyor. Şirketi tanıtıyor ve gerçek dünyadaki sorunları çözmek için derin öğrenmeyi nasıl kullandıklarını açıklıyor. Daha sonra modül dağıtımı yerine modül optimizasyonu için ONNX'e odaklanır. PFVM'nin bir derleyici ve çalışma zamanı olarak çalıştığını, dışa aktarılan ONNX'i girdi olarak aldığını, optimize ettiğini ve üçüncü taraf API'leri kullanarak modeli belirtilen arka uçlarla çalıştırdığını açıklıyor. Genji, cihaz ve bellek optimizasyonu için ONNX'i müşteri operatörleriyle nasıl genişlettiklerini tartışarak optimizasyon sürecini açıklıyor. Ayrıca modül optimizasyonunda şekil çıkarımının önemini tartışıyor ve üç vaka optimizasyonu sunuyor. İlk durum, element bazında füzyondur.

  • 00:05:00 Videonun bu bölümünde, konuşmacı CUDA'da hesaplama grafiklerini yürütürken daha hızlı hesaplama için çekirdek aralığı ek yükünü azaltmanın önemini tartışıyor. Çekirdek aralığını azaltmak için eleman bazında operatörleri tek bir füzyon grubu operatöründe birleştirmeyi öneriyorlar, ancak tüm operatörlerin başarılı bir şekilde bir araya getirilemeyeceğine dikkat çekiyorlar. Bir gradyan füzyon grubundan önce operatörlerin yayın yapıp yapamayacaklarını kontrol etmek gerekir. Konuşmacı ayrıca sinir ağı modellerini optimize etmek için şekil çıkarımının ve grafik sadeleştirmenin önemini vurguluyor. Son olarak, modellerin gereksiz operatörler içerip içermediği sorusuna değinirler ve daha hızlı hesaplama için bazı optimizasyonların gerekli olduğu yanıtını verirler.

  • 00:10:00 Bu bölümde konuşmacı, birinci nesil veya sinir ağı ve sinir mimarisi araması gibi programlar tarafından oluşturulan modellerin nasıl gereksiz operatörler içerebileceğini tartışır. Sol hesaplama grafiğinin beşinci düğümü hesaplamak için çok fazla bellek kullandığı bir örnek kullanarak optimizasyonların önemini gösteriyorlar. Hesaplama grafiği değiştirilerek, azaltılmış bellek kullanımıyla aynı çıktı elde edilebilir. PFVM, bellek kullanımını azaltmak için otomatik kontrol noktası gerçekleştirebilir, ancak bellek kullanımını doğru bir şekilde tahmin etmek için tensör boyutları hakkında bilgi gerektirir. Konuşmacı, şekil referansının önemini ve bilinmeyen boyutların çoğu biçimlendirme çerçevesinde optimizasyon fırsatlarını nasıl sınırladığını vurgular.

  • 00:15:00 Bu bölümde konuşmacı, element transfüzyonu ve otomatik kontrol noktası gibi belirli görevleri yerine getirememe ve ayrıca daha fazla desteğe duyulan ihtiyaç dahil olmak üzere mevcut son teknoloji ONNX derleyicisinin sınırlamalarını tartışıyor. dinamik durum. Konuşmacı, dinamik durum için daha fazla çıkarım işlevi uygulamayı önerir ve iki tensörün birleşimi gibi durumların desteklenip desteklenmeyeceğini belirlemek için kullanıcılardan geri bildirim ister. Konuşmacı ayrıca, programlama ve çıkarımı şekillendirmek için elements core ve mn4 gibi makinelerde bulunan statik bilgileri kullanmanın faydalarını tartışır.
 

YVR18-332 TVM derleyici yığını ve ONNX desteği



YVR18-332 TVM derleyici yığını ve ONNX desteği

YVR18-332 videosu, ONNX de dahil olmak üzere bir dizi donanımı ve ön ucu destekleyen, topluluk liderliğindeki bir derin öğrenme yığını olan TVM derleyici yığınını tartışıyor. Konuşmacı, TVM'nin modelleri stereo düzeyinde nasıl optimize edebileceğini tartışarak, geliştiricilerin arama alanını keşfetmesine ve en iyi yapılandırmayı bulmasına olanak tanır. Ayrıca döngü dönüşümleri ve GPU hızlandırma dahil olmak üzere TVM'nin sunduğu otomatik optimizasyonları tartışıyorlar. Konuşmacı, 8 bit desteğin etkinleştirilmesini ve grafik düzeyinde otomatik ayarlamayı içeren TVM yol haritasından bahsediyor. Ek olarak, ONNX TV arayüzünü ve tüm ekosistemler için standart arayüzü birleştirme ihtiyacını tartışıyorlar. Son olarak, video öğle yemeği için duraklar.

  • 00:00:00 Bu bölümde, konuşmacı TVM derleyici yığınını ve GBM üzerinden ONNX'i nasıl desteklediğini tanıtıyor. TVM, sınıf düzeyinden kanser düzeyine kadar derin bir öğrenme yığınıdır ve çeşitli şirket ve kuruluşların katkılarıyla Washington Üniversitesi'nden araştırmacılar tarafından yönetilen bir topluluk projesidir. TVM derleyici yığını, CPU, GPU, FPGA dahil olmak üzere çeşitli donanımları destekler ve donanım tasarım doğrulaması için bir simülatör ile ASIC desteğini etkinleştirme planları vardır. Yığın ayrıca MXNet, ONNX ve TensorFlow dahil olmak üzere çeşitli ön uçları destekler ve bir dizi optimizasyon seçeneğiyle NVM adı verilen hesaplama sınıfı IR uygulamasına sahiptir.

  • 00:05:00 Bu bölümde, konuşmacı TVM derleyici yığınını ve ONNX desteğini tartışıyor. TVM derleyici yığınının, döngü dönüşümleri ve GPU hızlandırma gibi stereo düzeyde birçok optimizasyon yapabildiğini ve ONNX'in otomatik TVM'de adım adım eklenen yeni bir özellik olduğunu açıklıyorlar. Konuşmacı ayrıca, kullanıcıların ana cihazlarında bir model derlemesine ve bunu uzaktan hedef cihaza dağıtmasına olanak tanıyan TVM uzaktan dağıtım mekanizması tarafından alkışlanan Kanadalı Bayan diplomasını da açıklıyor. Ek olarak, TVM tarafından sunulan ve geliştiriciler için sıkıcı işi azaltabilecek otomatik optimizasyonları tartışıyorlar ve
    arama alanını keşfetmek ve en iyi yapılandırmayı bulmak için tasarlanmıştır.

  • 00:10:00 Bu bölümde, konuşmacı TVM derleyici yığınını ve ONNX desteğini tartışıyor. TVM derleyici yığınının, daha iyi performans sağlamak için izole aşırı gradyan artırma algoritmaları dahil olmak üzere en gelişmiş ayarlama algoritmalarını içerdiğinden bahsediyorlar. Ayrıca, otomatikleştirilmiş optimizasyona izin veren ve arama alanını optimize etmek için önceki çalışmalardan yararlanabilen açık kaynaklı projeyi vurguluyorlar. Konuşmacı daha sonra TVM'nin Vita açık hızlandırıcı ve onun üç ana parçası için nasıl kullanılabileceğinden bahsediyor. Program optimizasyonu için TVM'nin nasıl kullanılabileceğini ve VPS RPC kullanılarak uzaktan devreye alınabileceğini açıklarlar. Son olarak, Xilinx'in Ultra 9 çubuklarında ve Amazon'un F1 bulut sunucusunda kullanımı etkinleştirmeyi planlarken, grafik düzeyinde 8-bit desteği ve otomatik ayarlamayı etkinleştirmeyi içeren TVM için bir yol haritası sağlarlar.

  • 00:15:00 Bu bölümde, konuşmacı TVM derleyici yığınını ve Relay olarak adlandırılan NVM v2'ye yükseltmeyi nasıl planladığını tartışıyor. Relay'in uygulaması, tip sistemini iyileştirmek ve derleme sunucusu sisteminin nasıl daha iyi hale getirileceğini kontrol etmek için bir pod kontrol akışının seçilmesini gerektirir. Konuşmacı, ONNX'i desteklerken Relay'in TVM derleyici yığınına nasıl sığdığını açıklıyor. ONNX, hesaplama grafiği modeli ve bina operatörleri ve standart bir veritabanı olmak üzere üç ana parça tanımlar. ONNX ml uzantılarını desteklemek için TVM ön ucu, DVM'de bir ön uç uyguladı. Ancak, ONNX'in NM VM sembolik grafiğine dönüştürülmesi bazı uyumsuzluk sorunlarına neden olabilir. Ayrıca topluluk, TVM topluluğunda bir grafik IR olarak ONNX'in mi yoksa Relay'in mi kullanılacağını tartışıyor ve ilerlemenin tek yolu, gelecekteki model dönüşümü için kullanmak üzere Relay'i birleştirmek için birlikte çalışmaktır.

  • 00:20:00 Bu bölümde, konuşmacı, farklı hızlandırıcılarda sinir ağı çıkarımı için standart bir arabirim olan çerçeve entegrasyonu için ONNX TV arabirimini tartışıyor. Arayüz, pod çalışma zamanı keşfini, yürütme arka uçlarının seçimini ve ONNX operatörlerinin uzun vadeli keşfini içerir. Konuşmacı, topluluğun tüm ekosistemler için standart arayüzü nasıl birleştireceğini tartışmasını öneriyor. Ek olarak, konuşmacı TVM derleyici yığınından ve bunun elle kodlanmış bir uygulamayı arama alanının bir parçası olarak nasıl dahil edebileceğinden bahsediyor. Bununla birlikte, bu mekanizma hakkında hala iyi bir fikir yoktur, bu nedenle konuşmacı fikir ve tartışmaları memnuniyetle karşılar.

  • 00:25:00 Bu bölümde tartışma konusu TVM derleyici yığını ve ONNX desteğidir. ONNX'in hem bir açıklama formatına hem de bir çalışma zamanı API'sine sahip olduğu ve ONNX eşit sisteminin sadece açık değişim formatının ötesine genişlediği açıklığa kavuşturuldu. Amaç, üst düzey uygulamaların çalışma zamanı çıkarımı için tek bir standart API'yi çağırabilmesi için API'yi birleştirerek bu alandaki geliştiricilerin işini kolaylaştırmaktır. Başka soru yok ve video öğle yemeği için duraklıyor.
 

.NET MAUI Community Standup - Mike Parker ile ONNX Çalışma Zamanı



.NET MAUI Community Standup - Mike Parker ile ONNX Çalışma Zamanı

Bu videoda konuk konuşmacı Mike Parker, birden fazla donanım platformunda makine öğrenimi optimizasyonu ve hızlandırma sağlayan açık kaynaklı ve platformlar arası bir araç olan ONNX çalışma zamanını tanıtıyor. Parker, ONNX çalışma zamanını kullanmanın önemini açıklıyor ve bunun, MobileNet nesne sınıflandırma modelini kullanarak görüntüleri sınıflandırmak için .NET MAUI projelerinde nasıl kullanılabileceğini gösteriyor. Toplantı sahipleri ve Parker, makine öğrenimi modellerini bir cihazda çalıştırmanın faydalarını ve arka uç altyapı maliyetlerinden kaçınma becerisini tartışıyor. Ek olarak ekip, Parker'ın bu konudaki blogu ve .NET MAUI ve Xamarin desteği için Al Blount ile ortaklıkları da dahil olmak üzere yararlı kaynakları paylaşıyor.

  • 00:00:00 .NET MAUI için topluluk desteğinin bu bölümünde ekip, modern istemci uygulaması müşteri danışma ekibinin bir üyesi olan ve optimizasyon için bir makine öğrenimi aracı olan ONNX Runtime hakkındaki bilgilerini paylaşan Mike Parker'ı tanıtıyor. ve birden çok donanım platformunda hızlandırılmış modeller. ONNX Runtime'ın nasıl açık kaynak ve çapraz platform olduğunu, geliştiricilerin makine öğrenimi uygulamaları için çeşitli çerçeveler ve donanımlar kullanmasına izin verdiğini açıklıyor. Ayrıca .NET topluluğunun projelerinde ONNX Runtime'dan nasıl yararlanabileceğini de gösteriyor.

  • 00:05:00 Bu bölümde, toplantı sahipleri kendilerini ve kendileriyle Onnx Runtime hakkında konuşmak için katılan konukları Mike'ı tanıtıyor. Toplantı sahipleri, heyecan duydukları .NET MAUI ve bitişik depolardan bazı PR'leri tartışmaya geçmeden önce, önce Microsoft ve topluluktan bazı bloglara bakacaklarını belirtiyorlar. Son olarak, Onnx Çalışma Zamanı kitaplıkları, bunları Xamarin'de nasıl kullandığı ve konuyla ilgili yazıları ve podcast'leri hakkında konuşmak için tartışmayı Mike Park'a devredecekler. Toplantı sahipleri ayrıca .NET'in 20. yıl dönümü olduğundan ve .NET MAUI Preview 12'nin piyasaya çıktığından bahsediyor. Ayrıca kullanıcıları önemli bir değişiklik konusunda uyarıyorlar ve Dave'in bu değişiklik üzerinde topluluk kitaplığı koruyucularıyla birlikte çalıştığını belirtiyorlar.

  • 00:10:00 Bu bölümde, konuşmacılar .NET'in birleştirme çabasını ve Xamarin MAUI'ye geçerken iOS kitaplıkları ve bağımlılıkları için yeniden derleme ve güncelleme ihtiyacını tartışıyor. Ekip şu anda bu değişiklikleri yerel kitaplıklara ve NuGet paketlerine bağlama projeleri için benimsemenin bir yolu üzerinde çalışıyor ve kullanıcılara rehberlik sağlanacağını garanti ediyorlar. Ek olarak ekip, VS Mac 2022 önizleme beşte MAUI desteğinin eksikliğini tartışıyor ve bunun üzerinde çalıştıklarını, ancak önce yeni bir UI SAC ile .NET 6 çalışma zamanında tüm Xamarin çalışmalarını yeniden oluşturmaya öncelik vermeleri gerektiğini açıklıyor. Son olarak ekip, Facebook SDK bağlamasının güncellendiğini duyurur ve Google kitaplıkları gibi diğer üçüncü taraf kitaplıklarını güncelleme ve sürdürme çabalarından bahseder.

  • 00:15:00 Bu bölümde, Xamarin ekibi, eskiden ana odak noktası olan, ancak şimdi destek için en kritik olana kadar daraltılan, bakımını yaptığı bileşenlerden bahsediyor. Ekip, kullanıcıları .NET 6'ya geçiş sırasında bu bileşenlere bağımlılıkları varsa onlara ulaşmaya teşvik ediyor. Ayrıca bir Maui Hello World öğreticisi ve blog dizisini inceleyen bir .NET Maui kaynak kodunu tartışıyorlar. Ek olarak, Andreas'ın Z Dizini ve UI özelleştirmesiyle ilgili blogu vurgulanarak, Z Dizini kullanılarak öğelerin üst üste yığılması sergileniyor.

  • 00:20:00 Bu bölümde sunum yapan kişi, insanların .NET MAUI kullanarak yeniden oluşturdukları birkaç blog gönderisini ve tasarımı sergiliyor. Bloglar, Xamarin Forms'ta biniş kartı tasarımını yeniden oluşturmayı, Xamarin Forms ile durum makinesi geliştirmeyi tartışmayı, .NET MAUI başlangıç dosyanızı düzenlemeyi, işleyicilerin mimarisine derinlemesine bir dalış yapmayı ve Xamarin Forms'tan JavaScript'e iki yönlü iletişim kullanarak bir blogu içerir. bunun için bir Web Görünümü. Sunumlar, bugünlerde tasarıma ne kadar odaklanıldığını, Xamarin Formlarını/MAUI'yi daha genişletilebilir ve kullanışlı hale getirdiğini ve hem JavaScript'in hem de bağlamaların nasıl daha etkili bir şekilde kullanılacağını gösteriyor.

  • 00:25:00 Dökümün bu bölümünde toplantı sahipleri, 5.0 Xamarin forum hizmetinin bir sürümü ve yeni belgeler dahil olmak üzere .NET MAUI'ye yapılan en son topluluk katkılarını tartışıyor. Katkıda bulunanları, repo katılımı hakkında geri bildirimde bulunmaya ve doğrudan kutuda olmasa da topluluk araç setinde bir çip kontrolünün varlığından bahsetmeye teşvik ederler. Sunucular ayrıca MAUI'nin yeni bir özelliği olan gölgelerin yakın zamanda eklenmesinden bahsediyor ve botlarını modifiye ederek canlandırmayı öneriyor.

  • 00:30:00 Bu bölümde Mike Parker, .NET MAUI önizleme sürümlerinin durumu hakkında bir güncelleme sunarak önizleme 13'te kaydedilen ilerlemeyi vurguluyor. Etiket biçimlendirilmiş metin, açıklıklar, ve tümü platformdaki boşlukları dolduran yayılma hareketleri. Topluluk ayrıca, Xamarin Forms Shell'deki sekmelere ve menü öğelerine rozetlerin kolayca eklenmesini sağlayan "Galadriel" adlı yeni bir ek özelliği paylaştı. Ek olarak, .NET MAUI ekibi platformun başlangıç performansını iyileştirmek için çalışıyor ve profilli AOT'ye sahip bir Pixel 5'te uygulamanın 576 milisaniyede başlatılmasıyla elde edilen sonuçlar umut verici.

  • 00:35:00 Bu bölümde, .NET MAUI Community Standup, UI geliştirme için daha akıcı bir sözdizimi sağlayan hem Xamarin Formlarında hem de .NET MAUI'de UI oluşturmaya yönelik C# biçimlendirme uzantılarının kullanılabilirliğini tartışır. Ayrıca, yüz tanıma ve fotoğraf etiketleme gibi örneklerle, tek bir API seti kullanarak farklı platformlarda çıkarımlar yürütebilen taşınabilir bir model olan onnx runtime hakkında da konuşuyorlar. Onnx çalışma zamanı, GitHub'da mevcuttur ve Xamarin ile mobil uygulamalarda kullanılabilir. Onnx çalışma zamanını kullanma süreci, modeli yüklemeyi, girdi hazırlamayı, çıkarımı çalıştırmayı ve çıktıyı kullanılabilir bir biçimde işlemeyi içerir.

  • 00:40:00 Videonun bu bölümünde Mike Parker, görüntüleri MobileNet nesne sınıflandırma modelini kullanarak sınıflandırmak için bir Xamarin Forms uygulamasındaki ONNX çalışma zamanını nasıl kullandıklarını açıklıyor. Model belgelerini takip etmenin ve RGB değerlerini normalleştirmenin önemini vurguluyor. Parker ayrıca, giriş ve çıkışların boyutlarını, şekillerini ve adlarını görselleştirmeye izin veren Netron adlı kullanışlı bir uygulamadan da bahseder. Uygulama, modeli yükleyip çalıştıran ve üst etiketi bir uyarıda görüntüleyen yalnızca tek bir düğmedir. Parker, tüm bunların cihazda bulut dahil olmadan gerçekleşmesinin harika olduğunu belirtiyor.

  • 00:45:00 Bu bölümde konuşmacılar, makine öğrenimi modellerini cihazda çalıştırmanın, bağlantı olmadan çalışabilme ve arka uç altyapı maliyetlerinden kaçınma dahil olmak üzere faydalarını tartışıyor. Ayrıca bulut tabanlı Microsoft Azure Vision API'lerini kullanma deneyimlerine ve ONNX çalışma zamanını kullanarak daha hızlı işleme sürelerine nasıl ulaşabildiklerine de değiniyorlar. Ayrıca, platforma özgü ve modele özgü kodu tek bir ONNX modeliyle değiştirerek bir ekip ilk katılım uygulaması deneyimini nasıl basitleştirdiklerini açıklıyorlar. Son olarak, bir model hazırlama, Azure Özel Görüntü Hizmeti kullanma ve ONNX'in Xamarin ile çalışmasına izin veren bir Nougat paketi oluşturma sürecini tartışıyorlar.

  • 00:50:00 Videonun bu bölümünde Mike Parker, ONNX çalışma zamanı ile çalışmalarını ve iOS gibi AOT ile platformları desteklemek için yerel birlikte çalışabilirlik kodlarını uyarlamayı tartışıyor. Ayrıca, iş akışlarını düzene sokmak ve uygulamalardaki erişilebilirliği iyileştirmek de dahil olmak üzere bu teknolojinin kullanılabileceği gerçek dünya senaryolarını açıklamaya devam ediyor. Ancak, önceden oluşturulmuş modellerle çalışmanın, geleneksel veri bilimi geçmişi olmayanlar için bunaltıcı olabileceğini belirtiyor ve dahil edilecek modeller konusunda seçici olmayı öneriyor. Son olarak, Mike'ın bu konudaki blogu da dahil olmak üzere bazı yardımcı kaynaklar paylaşılmaktadır.

  • 00:55:00 Bu bölümde, toplantı sahipleri Mike Parker'ın işe alınabilirliğinden bahsediyor ve Xamarin Forms ve .NET Maui konusunda yardıma ihtiyacı olan şirketlere destek sağlayabilecek Al Blount'u tanıtıyor. Ayrıca Mike'ın ekibinin Maui'ye yükseltme konusundaki mevcut çalışmalarını da kısaca tartışıyorlar, ancak henüz herhangi bir ayrıntı paylaşamıyorlar. Toplantı sahipleri, izleyicilere katıldıkları için teşekkür ederek ve yaklaşan .NET 20. yıl dönümü doğum günü partisini duyurarak videoyu bitiriyor.
 

[Sanal buluşma] Birlikte Çalışabilir AI: C++'da ONNX ve ONNXRuntime (M. Arena, M. Verasani)



[Sanal buluşma] Birlikte Çalışabilir AI: C++'da ONNX ve ONNXRuntime (M. Arena, M. Verasani)

Video, makine öğrenimi algoritmalarını eğitmek için farklı çerçeveler kullanmanın birlikte çalışabilirlik eksikliğine yol açan zorluklarını tartışıyor ve derin öğrenme modelleri için evrensel bir format oluşturmayı amaçlayan ONNX ve ONNXRuntime'ı tanıtıyor. ONNX, sinir ağlarını statik hesaplamalı grafiklere dönüştürerek çıkarım sırasında optimize edilmiş performans sağlar. ONNXRuntime, herhangi bir çerçevenin ONNX biçimine dönüştürülmesine izin verir ve herhangi bir donanım platformunu hedeflemek için kullanılabilecek hızlandırma kitaplıkları sağlar. Video, ONNX ve ONNXRuntime kullanımına ilişkin örneklerin yanı sıra bunların C++'da kullanımlarını tartışıyor ve projeyi ve belgelerini daha iyi anlamak için öneriler sunuyor.

Marco Arena ve Matteo Verasani ayrıca makine öğrenimi modelleri için C++'da ONNX ve ONNXRuntime kullanmanın faydalarını tartışarak çerçevenin esnekliğini ve performanstan ödün vermeden farklı çerçevelerdeki modelleri kolayca dönüştürme becerisini vurguluyor. Modelleri ONNX biçimine dönüştürme örnekleri sağlarlar ve ONNXRuntime'ın çıkarım modu için kullanımını gösterirler ve klasik bir Python modeliyle performanstaki iyileştirmeleri sergilerler. Ek olarak, gömülü sistemlerle çalışmalarını ve ONNXRuntime'ı GPU'larda kıyaslamanın potansiyel faydalarını tartışıyorlar. Konuşmacılar ayrıca gelecekteki sanal buluşmalardan bahsediyor ve katılımcılar için daha fazla ağ oluşturma fırsatı dahil etme umutlarını dile getiriyor.

  • 00:00:00 Videonun bu bölümünde konuşmacılar, çeşitli kullanım durumları için makine öğrenimi algoritmalarını eğitmek üzere farklı çerçeveler kullanıldığında ortaya çıkan ve birlikte çalışabilirlik eksikliğine yol açan sorunları tartışıyor. Bu, üyelerin farklı çerçevelerle farklı düzeylerde uzmanlığa sahip olabileceği bir ekipte çalışırken zor olabilir. Bu sorunu çözmek için konuşmacılar, ağları ortak bir formata dönüştürerek çerçeveler arasında birlikte çalışabilirliğe izin veren ONNX ve ONNXRuntime'ı tanıtıyor. ONNXRuntime, dönüştürülen modellerin CPU'lar, GPU'lar ve FPU'lar dahil olmak üzere herhangi bir hedef donanıma dağıtılmasına izin verir.

  • 00:05:00 Bu bölümde konuşmacılar, derin öğrenme modelleri için evrensel bir format olmayı hedefleyen ve farklı çerçeveler arasında birlikte çalışabilirliğe izin veren ONNX (Açık Sinir Ağı Değişimi) projesini tartışıyorlar. Proje topluluk odaklıdır ve farklı model türlerini ve çerçevelerini üretim için tek bir formata dönüştürmeye odaklanan çok sayıda şirket tarafından desteklenmektedir. ONNX, sinir ağlarını, eğitimden önce önceden başlatılmaları bakımından dinamik grafiklerden farklı olan statik hesaplamalı grafiklere dönüştürür. Statik grafikler hesaplama açısından daha verimliyken, dinamik grafikler değişen girdi boyutları için daha fazla esneklik sunar.

  • 00:10:00 Bu bölümde konuşmacılar, ONNX'in çıkarım sürecinde çok yararlı olan statik bir hesaplama grafiğini nasıl sağladığını tartışıyorlar. Python gibi diğer çerçeveler dinamik hesaplamalı grafiklere sahipken, ONNX eğitim ve geliştirme aşamalarında zaten kontrol edilmiş olan statik bir grafik sağlayarak daha iyi performans sağlar. Ayrıca, Microsoft'un ONNX çalışma zamanı aracı, herhangi bir çerçevenin ONNX biçimine dönüştürülmesine izin verir ve herhangi bir donanım platformunu hedeflemek için kullanılabilecek hızlandırma kitaplıkları sağlayarak, onu çıkarım ve üretim için yararlı ve çok yönlü bir araç haline getirir.

  • 00:15:00 Videonun bu bölümünde konuşmacılar, AI birlikte çalışabilirliği için ONNX ve ONNX Runtime'ı kullanma deneyimlerinden bahsediyor. Python'da bir PyTorch modelini nasıl oluşturduklarını, onu ONNX formatına nasıl dönüştürdüklerini ve dağıtım için ONNX Runtime'ı nasıl kullandıklarını açıklayarak işlem hatlarını yazmalarına ve GPU'lar veya Android cihazlar gibi farklı platformları hedeflemelerine olanak tanırlar. Ayrıca, diğer çıkarım motorlarına kıyasla ONNX Runtime kullanmanın performans iyileştirmelerini göstererek 4 kata kadar daha hızlı sonuçlar elde ediyorlar. ONNX'in esnekliğini vurgulayarak, Matlab gibi diğer çerçevelerde oluşturulan modelleri, dağıtım boru hattını yeniden yazmak zorunda kalmadan ONNX Çalışma Zamanı ile kullanmak üzere dönüştürmelerine olanak tanırlar.

  • 00:20:00 Bu bölümde, konuşmacılar C++'da ONNX ve ONNXRuntime kullanma sürecini tartışıyorlar. Modellerin ONNXRuntime üzerinde çalıştırılabilmesi için önce ONNX formatına dönüştürülmesi gerektiğini açıklıyorlar. TensorFlow serileştirme, ONNXRuntime'a özgü olmasa da, dönüştürme için kullanılabilen açık kaynaklı kitaplıklar vardır. Ayrıca, dönüştürme sürecini komut dosyası yazma olasılığı ve C++ ile karşılaştırıldığında ONNX'te görülen gelişme düzeyi ile ilgili sorulara da yanıt verirler. Daha fazla kıyaslama ve analizin gerekli olduğunu belirtiyorlar. ONNXRuntime deposu açık kaynaklıdır ve Microsoft tarafından desteklenir ve kullanıcılar için çeşitli bilgiler, kılavuzlar ve örnekler sunar.

  • 00:25:00 Bu bölümde, video ONNXRuntime'ın özelliklerini basitten daha gelişmişe doğru bir karmaşıklık ölçeğinde tartışıyor. Yeşil sütun, daha basit makine öğrenimi görevleri için yeterli olan temel özellikleri içerirken, eflatun sütun, yürütme sağlayıcıları ve profil oluşturma desteği gibi biraz daha karmaşık özellikler içerir. Kırmızı sütun, ONNX özel operatörleri ekleme veya ticarette ayarlama yapma yeteneği gibi daha karmaşık görevler için gelişmiş özellikleri temsil eder. Sunum yapan kişi ayrıca C++ ve Python'da ONNXRuntime için iki demo deposuna bağlantılar sağlar.

  • 00:30:00 Bu bölümde, konuşmacı C++'da ONNX ve ONNXRuntime'ı tanıtıyor. İşlem havuzunu ve ele alınan modeli kuran oturumu yönetmek için program içinde bir ortam oluşturulması gerektiğini açıklarlar. Oturumun özellikleri de özelleştirilebilir ve oturum kullanılarak varsayılan ayarlar çalıştırılabilir. Ayrıca ONNXRuntime, oturumu yürütmeden önce verileri yönetmek için gerekli ön işlemeyi uygulayarak modeli optimize edecektir. Araç ayrıca girdi ve çıktı sayısı, veri türleri ve adları hakkında sorgulama yapmak gibi inceleme görevlerini de gerçekleştirebilir. Sonuç olarak, kullanıcılar girdilerini ve tensörlerini gereken formatta oluşturabilirler.

  • 00:35:00 Videonun bu bölümünde, konuşmacı CPU üzerinde tensörleri tahsis eden bir nesnenin nasıl oluşturulacağını ve bunları yürütme sağlayıcısına nasıl aktaracağını tartışıyor. Konuşmacı giriş ve çıkış tensörleri oluşturur, girdi değerleri ve tensörün şekli ile arabelleğe bağımsız değişken olarak geçer. Çıkış için tensör, çıkış değerlerinin OnnxRuntime kitaplığına iletilmesiyle oluşturulur. Konuşmacı, girdilerin sırasını değiştirmede esneklik sağladığından, çıkarımı başlatmak için ad kullanmanın önemini açıklar. Demo, çıktı değerlerinin ekrana nasıl yazdırıldığına dair basit bir örnek gösterir.

  • 00:40:00 Bu bölümde konuşmacı, ONNX projesini ve belgelerini daha iyi anlamak isteyenler için tavsiyelerde bulunur. ONNX'in daha iyi belgelenmiş bölümlerine erişmek için "Bölüm C" altına bakmanızı ve ONNX'teki verileri inceleme konusundaki deneyimlerini detaylandırmanızı önerirler. Konuşmacı ayrıca, ONNX çalışma zamanı kitaplıklarının diğer paket yöneticileri tarafından kullanılabilir olmasına rağmen, mimariler ve sağlayıcılar değiştiği için kitaplıkların yeniden derlenmesini tavsiye ettiklerini açıklıyor ve bir CPU veya GPU'yu hedefleyen iki ONNX çalışma zamanı paketi oluşturmak için aynı kodu nasıl derlediklerini gösteriyor.

  • 00:45:00 Bu bölümde konuşmacı ONNX Runtime'ı C++'da DLL kullanımına ilişkin örneklerle tartışıyor. Koda eklenen oturum seçenekleri müşterinin tercihlerine göre değişir ve eklenen sağlayıcıları belirtilen sıra ile kullanmaya çalışır. Konuşmacı, sistemin RAM ve GPU kullanımını nasıl işgal ettiğine dair örnek bir uygulama sağlar. Örnek olarak, 1.000 görüntü veri kümesi üzerinde önceden eğitilmiş birincil oyun AI yeniden ağı kullanıldı. Sistemin son işleme ve ön işleme gereksinimleri vardır.

  • 00:50:00 Videonun bu bölümünde konuşmacı, Python kullanarak görüntülerin ön işlenmesini ve işlemi basitleştirmek için uzantı kaynaklarının kullanımını tartışıyor. Görüntüler en uygun boyuta yeniden boyutlandırılır ve normalleştirilmeden önce kayan görüntüye dönüştürülür. Normalleştirme işlemi, değerleri ortalamaya bölmeyi ve standart sapmayı gerçekleştirmeyi içerir. Sinir ağının sonradan işlenmesi, basit bir softmax normalizasyonunu içerir. Konuşmacı ayrıca minimum kodla ONNX Çalışma Zamanı kullanılarak görüntülerin nasıl açılacağını, işleneceğini ve çıktısının alınacağını gösterir. Bir metin dosyasından sınıfları okumak için kullanılan sınıf basittir ve gereksiz ortak kodlardan kaçınmak için birkaç yardımcı program kullanılır.

  • 00:55:00 Bu bölümde konuşmacı, C++'da ONNXRuntime kullanarak bir sinir ağı için çıkarım süresini ölçme sürecini tartışıyor. Daha önce tartışılan ağa çıkarım kısmını eklediğini ve sistem saatini kullanarak çıkarım süresini ölçtüğünü açıklıyor. Ardından, profil oluşturma amacıyla ONNXRuntime'da özel bir kaydedicinin nasıl kullanılacağını göstermeye devam ediyor. Konuşmacı ayrıca, Modena Üniversitesi ile işbirliği içinde geliştirilen ayrı bir mobil ağı ve ön işleme ve son işlemedeki karmaşıklığı kısaca tartışıyor.

  • 01:00:00 Bu bölümde, konuşmacı bir dedektörün çıktısını tartışıyor ve onun ayılar ve sinyaller gibi nesneler üzerinde nasıl sınırlayıcı kutular çizdiğini gösteriyor. Ayrıca, ONNXRuntime'ın kullanımından ve performans optimizasyonu için profil oluşturmanın etkinleştirilmesi de dahil olmak üzere oturum seçeneklerine ve ayarlamaya nasıl izin verdiğinden bahsederler. Ortaya çıkan izleme dosyası, hangi operatörlerin kullanıldığı ve hangi sağlayıcının seçildiği de dahil olmak üzere modeli başlatmanın ve görüntüler üzerinde çalıştırmanın ne kadar sürdüğünü görmek için ayrıntılı olarak incelenebilir. Ayrıca, ONNX'in bir grafiği çalıştırmadan önce optimize etme yeteneğinden de bahsediyorlar, bu da performansı artırabilir ve modeli yüklemek için gereken süreyi kısaltabilir.

  • 01:05:00 Bu bölümde sunum yapan kişi, modelin farklı hedefler arasında taşınabilirliğini etkileyebilecek optimizasyonları etkinleştirerek veya devre dışı bırakarak bir modeli optimize etmekten bahsediyor. Farklı optimizasyon düzeylerini ve her birinin modelin performansını nasıl etkilediğini keşfederler. Sunum yapan kişi, paralel yürütme modunun etkinleştirilmesinin modelin birden fazla iş parçacığı kullanmasına izin verebileceğini, ancak bunun belirli durumlarda performans üzerinde önemli bir etkisi olmayabileceğini gösterir. Ayrıca, bir yardımcı program kullanarak birden fazla görüntünün işlenmesini paralel hale getirme olasılığından da bahsediyorlar. Son olarak sunum yapan kişi, optimize edilmiş modellerin azaltılmış yükleme süresinin de gösterdiği gibi, optimizasyonların modelin performansı üzerinde gözle görülür bir etkiye sahip olabileceğini belirtiyor.

  • 01:10:00 Bu bölümde, Marco Arena ve Marco Verasani, C++'da ONNX ve ONNX Runtime kullanmanın faydalarını tartışıyor. En büyük avantajlardan biri, ONNX'i format olarak kabul eden tek bir çıkarım katmanına sahip olabilme yeteneğidir ve modeller oluşturmak için farklı çerçevelerin kullanılmasında taşınabilirlik ve esneklik sağlar. Bu özellik, özellikle farklı ekiplerin çeşitli çerçeveler kullandığı ve üretim için standart bir çıkarım ardışık düzenine ihtiyaç duyulduğu durumlarda kullanışlıdır. Ek olarak, ONNX Runtime'ın C++'da kullanılması, derin öğrenme modelleri için daha hızlı ve daha optimize edilmiş runtime performansına yol açabilir. Genel olarak, ONNX ekosistemi, derin öğrenme modellerinin performansını optimize etmek ve ince ayar yapmak için birçok seçenek ve fırsat sunar.

  • 01:15:00 Bu bölümde, konuşmacılar, çerçevelerde esneklik ve performanstan ödün vermeden bunlar arasında kolay dönüşüm sağladığından, C++'da ONNX ve ONNXRuntime kullanmanın faydalarını tartışıyor. Ayrıca ONNXRuntime'ın Linux'ta desteklendiğinden bahsediyorlar ve prototip oluşturmak ve modelleri ONNX formatına aktarmak için Python ve Jupyter not defterlerinin nasıl kullanılacağını gösteriyorlar. Modellerin diğer çerçevelerden ONNX'e nasıl dönüştürüleceğini göstermek için örnek olarak küçük bir öğretici kullanıyorlar ve modellerin hesaplama grafiğini görselleştirmek için Netron aracının kullanışlılığını vurguluyorlar. Konuşmacılar, izleyicileri soru sormaya ve araç hakkında bilgi paylaşmaya teşvik eder.

  • 01:20:00 Bu bölümde, konuşmacılar bir modeli ONNX formatına dönüştürme ve C++'da ONNXRuntime kullanarak çıkarım modunda çalıştırma sürecini tartışıyorlar. Hesaplamalı bir grafiğin nasıl oluşturulacağını ve girdi ve çıktı boyutlarının nasıl tanımlanacağını ve ayrıca modelin CPU ve GPU üzerindeki performansını kıyaslamak için zamanın nasıl kullanılacağını gösterirler. Ayrıca, trafo operatörünü kullanan ve Hugging Face kitaplığında uygulanan popüler doğal dil işleme modeli BERT'nin kullanımını da sergiliyorlar. Konuşmacılar, ONNXRuntime'ı CPU veya GPU ile kullanmak için doğru paketi kurmanın önemini vurguluyor.

  • 01:25:00 Videonun bu bölümünde sunum yapan kişi Python'da bir BERT modelinin ONNX formatına nasıl dönüştürüleceğini gösterir. Süreç, modelin girdilerini tanımlamayı ve "torch.onnx.export" işlevini kullanarak modeli dönüştürmeyi içerir. Sunucu, ONNX'in her sürüme operatörler eklediğini açıklıyor, bu da ONNX'in doğru versiyonu üzerinde belirli model için gerekli operatörlerle çalışma ihtiyacını vurguluyor. Dinamik Eksen, doğal dil işlemede değişken dizi uzunlukları gibi dinamik giriş/çıkış şekillerine izin veren önemli bir özellik olarak da vurgulanır. Son olarak sunum yapan kişi, model üzerinde çıkarım yaparken performans açısından Python ve ONNX arasında bir karşılaştırma gösterir.

  • 01:30:00 Sanal buluşmanın bu bölümünde, konuşmacılar C++ dilinde ONNX ve ONNXRuntime ile yaptıkları çalışmaların bir tanıtımını paylaşıyorlar. ONNXRuntime aracılığıyla çalıştırılan klasik bir Python modelinin çıkarımında görülen performansta bir gelişme sergiliyorlar. Ayrıca, kullanıcıların bir modelin statik hesaplamalı grafiğini görüntülemesine ve beklenen girdi ve çıktı türleri de dahil olmak üzere gerçekleştirilen işlemleri görmesine olanak tanıyan "Ağ Görüntüleyici" adlı bir aracı da gösterirler. Araç ayrıca dönüştürme için kullanılan ONNX sürümünü ve dönüştürme işlemi sırasında kullanılan ofseti gösterir. Konuşmacılar izleyicilerden geri bildirim ister ve katılımcıların yorum yapması için bir bağlantı sağlar.

  • 01:35:00 Bu bölümde Marco Arena ve Matteo Verasani, GPU'lar, FGA'lar ve CPU'lar dahil olmak üzere gömülü sistemler için platformları inceleyen çalışmaları hakkında konuşuyor. Bu gömülü sistemlerde nesne tespiti için dört sinir ağı çalıştırdılar ve sonuçları güç tüketimi ve çıkarım hızı açısından analiz ettiler. Ayrıca gömülü sistemler için tek aşamalı dedektör kullanmanın önemini tartışıyorlar ve ONNX ve ONNXRuntime için depolara bağlantılar sağlıyorlar. ONNXRuntime'ı GPU'lar üzerinde kıyaslamanın potansiyel faydalarından bahsediyorlar ve Microsoft'un ONNXRuntime ekibini gelecekteki etkinliklere katılmaya davet etmekle ilgilendiklerini ifade ediyorlar. Son olarak, izleyicileri yaklaşan çevrimiçi etkinliklerine ve gelecekteki buluşmalarına katılmaya davet ediyorlar.

  • 01:40:00 Videonun bu bölümü, yüz yüze toplantılara geri dönmemek için nedenler bulma ve çevrimiçi toplantıları için katılımcılardan imtiyaz aldıkları için ne kadar şanslı olduklarından bahsediyor. Ayrıca Malattia, Verasani ve ONNX ve ONNX Runtime depoları tarafından gösterilen materyallere dayalı olarak Python bölümünü çıkarma ve gösterilerinin ilk bölümlerine odaklanmayı içeren sanal buluşma serileri için gelecek planları tartışıyorlar. Konuyla ilgili daha fazla bilgi arayanlar için sağlanan bağlantılar ve resmi kaynaklar da vardır. Nihayetinde, daha fazla ağ oluşturma zamanı dahil etmeyi ve akşam yemeğinden sonra kalmak isteyenler için sohbeti açık tutmayı umduklarını ifade ediyorlar, ancak çevrimiçi buluşmaların sınırlamalarını kabul ediyorlar.
 

[CppDay20] Birlikte Çalışabilir Yapay Zeka: C++'da ONNX ve ONNXRuntime (M. Arena, M.Verasani)



[CppDay20] Birlikte Çalışabilir Yapay Zeka: C++'da ONNX ve ONNXRuntime (M. Arena, M.Verasani)

Makine öğrenimi ve derin öğrenme algoritmalarının kullanımı artıyor ve bu algoritmaları farklı platformlarda dağıtabilen araçlara ihtiyaç var. ONNX aracı, farklı çerçeveler ve platformlar arasında birlikte çalışabilirlik sağlayarak, geliştiricilerin algoritmalarını bir çerçeveden diğerine dönüştürmelerine ve belirli çerçeveye veya platforma aşina olmasalar bile farklı cihazlara dağıtmalarına olanak tanır. ONNX Runtime, çıkarım aşamasında modelleri hızlandırmak için özel hızlandırıcılardan yararlanabilen ve çeşitli donanım platformlarını hedefleyebilen bir çıkarım motorudur. Konuşmacılar, ONNX ve ONNX Runtime'ın C++ programlamada kullanımını, doğrusal regresyon ve sinir ağı modelleri örnekleriyle gösterir. Ayrıca, bir ağın yürütülmesinde ince ayar yapmak, yükleme süresini optimize etmek ve sıralı görüntüleri yürütmek için ONNX ve ONNX Runtime kullanmanın faydalarını tartışıyorlar.

  • 00:00:00 Videonun bu bölümünde konuşmacılar, çeşitli uygulamalar için makine öğrenimi ve derin öğrenme algoritmalarının artan kullanımını ve bu algoritmaları farklı platformlarda dağıtabilecek araçlara olan ihtiyacı tartışıyor. Farklı çerçeveler ve platformlar arasında birlikte çalışabilirlik sağlayan ONNX adlı bir araç sunarlar. Geliştiricilerin, belirli bir çerçeveye veya platforma aşina olmasalar bile, algoritmalarını bir çerçeveden diğerine dönüştürmek ve bunları farklı cihazlara dağıtmak için ONNX'i nasıl kullanabileceklerini açıklarlar. Konuşmacılar, bir Python algoritmasını ONNX formatına ve ardından bir Apple aygıtına dağıtmak üzere Core ML çerçevesine dönüştürme örneğini kullanıyor. Derin öğrenme ve makine öğrenimi algoritmalarını çok çeşitli platformlarda daha erişilebilir ve konuşlandırılabilir hale getirmede ONNX'in yararlılığını vurguluyorlar.

  • 00:05:00 Bu bölümde konuşmacı, birlikte çalışabilir yapay zekaya izin veren araçlar olan ONNX ve ONNX Runtime'ı tartışıyor. ONNX, PyTorch ve Tensorflow gibi farklı derin öğrenme çerçeveleri arasında, her bir çerçeve hakkında bilgi gerektirmeden modellerin transferini sağlar. Microsoft tarafından sağlanan ONNX Runtime, çıkarım aşamasında modelleri hızlandırmak için özel hızlandırıcılardan yararlanabilen bir çıkarım motorudur. Çeşitli donanım platformlarını hedefleyebilir ve kullanıcının C++'da kendi çıkarım motorunu oluşturmasını gerektirmez.

  • 00:10:00 Bu bölümde konuşmacılar, makine öğrenimi modelleri için ONNX formatını kullanmanın faydalarını ve bunun farklı eğitim çerçeveleri için sağladığı birlikte çalışabilirliği tartışıyor. Derin öğrenme algoritmaları geliştirmek, bunları ONNX biçimine dönüştürmek ve modeli farklı platformlarda ve programlama dillerinde çalıştırmak için ONNX çalışma zamanı çıkarım motorunu kullanmak için boru hattını açıklarlar. Konuşmacılar ayrıca, PyTorch ve scikit-learn gibi diğer çerçevelere kıyasla ONNX çalışma zamanı kullanılırken algoritmaların performanslarında önemli bir gelişme gösteren performans grafikleri sunar. Son olarak Marco görevi devralır ve C++ programlamasında ONNX çalışma zamanı motorunu kullanmaktan bahseder.

  • 00:15:00 Bu bölümde, konuşmacı, makine öğrenimi çerçeveleri arasındaki birlikte çalışabilirlik konusundaki deneyimlerinden bahsediyor ve bu amaca ulaşmak için önemli bir çaba olarak ONNX projesini tanıtıyor. Modelleri çerçeveler arasında dönüştürürken çok fazla dönüştürme sorunu yaşamadıklarını belirtiyorlar, ancak asıl sorun, ONNX biçiminde veya ONNX Runtime biçiminde bir operatör desteklenmediğinde ortaya çıkıyor. Konuşmacı ayrıca dönüştürme sorunlarıyla ilgili bir soruyu yanıtlar ve ONNX tarafından desteklenmeyen operatörlerin dönüştürmede sorunlara neden olabileceğini açıklar.

  • 00:20:00 Bu bölümde konuşmacılar, TensorFlow'u ONNX'e dönüştürme deneyimlerini tartışıyor ve çok fazla dönüştürme sorunu görmediklerini belirtiyor. Ayrıca, C++'da tensörlerin manipüle edilmesi söz konusu olduğunda hata ayıklama ve sorun gidermeyi tartışıyorlar ve bunu yapmak için genişletici veya Python gibi diğer kitaplıkların kullanımından bahsediyorlar. Kullanıcıların istedikleri mimariyi ve programlama dilini seçmelerine izin veren ONNX giriş noktası olan onx.ai'yi tanıtıyorlar ve C++'da ONNXRuntime kullanımını gösteriyorlar. Kodun GPU için aynı olduğunu, tek farkın bağlantılı kitaplık olduğunu belirtiyorlar.

  • 00:25:00 Bu bölümde sunum yapan kişi, bir model üzerinde çıkarım yüklemek, incelemek ve çalıştırmak için ONNXRuntime kullanımının bir demosunu gösterir. Günlük özelleştirme veya iş parçacığı oluşturma gibi isteğe bağlı özelliklerle temel API için bir ortam oluşturarak başlar. Ardından, bir yoldan veya bir bayt akışından yüklenebilen belirli bir model üzerinde çalışacak çıkarımı temsil eden bir oturum oluşturur. Giriş ve çıkışların sayısı ve adları gibi model bilgilerini incelemek için bir ayırıcının nasıl kullanılacağını gösterir. Bu demonun ham kitaplığı gösterdiğini ve gerçek hayattaki durumlarda, dizeleri ve diğer karmaşıklıkları yönetmekten kaçınmak için bir sarmalayıcının kullanılacağını belirtiyor.

  • 00:30:00 Bu bölümde, konuşmacı basit bir lineer regresyon modelini ve CreateTensor adlı harici bir api kullanarak verileri kopyalamadan ağa bir girdinin nasıl iletileceğini tartışıyor. Konuşmacı, belgeler net olmadığında c++ api'nin altındaki c api'ye gitmenin önemini vurgular. Ek olarak, kısmi çıktı alma ve çıktı adlarını özelleştirme dahil olmak üzere çıkarım oturumunu çalıştırırken kullanılabilen çeşitli seçenekleri tartışırlar. Son olarak, çıktı değerlerinin bir vektörde saklandığını ve daha önce tahsis edilen aynı tensörler olduğunu not ederler.

  • 00:35:00 Bu bölümde, konuşmacı get tensor mutable data işlevini kullanarak C++'ta verilere erişmeyi ve tip silme nedeniyle kullanılan tipi belirtme ihtiyacını tartışıyor. Sağlanan örnek, bu yöntemi kullanarak değerlerin standart çıktıya nasıl yazdırılacağını gösterir. Konuşmacı ayrıca tensörlerin ve çıkış tamponlarının tahsisi konusunda dikkatli olunması gerektiğinden ve önceden tahsis edilmiş çıktı tamponlarının nasıl kullanılacağından bahseder. Ardından tartışma, ONNXRuntime'ı CPU'ya karşı çalıştırmak için varsayılan seçenek olarak Microsoft ML ONNXRuntime GPU paketini kullanan bir GPU yürütme sağlayıcısıyla doğrusal bir model çalıştırmaya geçer. Son olarak, konuşmacı kısaca görüntü ağları için iki demo projesini tanıtıyor: ResNet adlı bir sınıflandırıcı ve MobileNet adlı bir detektör. Demo kodu önceki örneğe benzer ve konuşmacı bu ağlarda yer alan ön işleme ve son işlemeyi vurgular.

  • 00:40:00 Bu bölümde sunum yapan kişi, harici bir zamanlayıcı kullanarak bir sinir ağının yürütülmesinin profilini çıkarmak için ONNXRuntime'ın nasıl kullanılacağını gösterir. ONNXRuntime, oturum oluşturma sırasında bir profil oluşturma seçeneği ekleyerek, her aşamada harcanan yürütme süresini ve grafikte yürütülen tüm işleçlerin patlamasını içeren bir JSON dosyası üretebilir. Bu araç, modelin CPU'da mı yoksa GPU'da mı çalıştığı veya sırayla mı yoksa paralel olarak mı yürütüldüğü gibi ek ayrıntılar sağlayabilir. Profil oluşturma, bir ağın yürütülmesinde ince ayar yapılmasına ve başka bir hızlandırıcıda çalışıp çalışmadığının kontrol edilmesine yardımcı olabilir.

  • 00:45:00 Bu bölümde konuşmacı, optimizasyonun C++'da ONNX ve ONNXRuntime kullanan bir modelin yükleme süresi ve yürütme süresi üzerindeki etkisini gösteriyor. Optimizasyonu devre dışı bırakmak, önemli ölçüde daha uzun bir yürütme süresi sağlarken, etkinleştirmek daha uzun yükleme süresine yol açar. Ancak, optimizasyon ve yükleme süresini dengeleyen modelin optimize edilmiş bir sürümünü kaydetmek mümkündür. Konuşmacı, izleyicilere mevcut farklı seçenekleri kullanarak modeli nasıl optimize edeceklerini ve kaydedeceklerini gösterir. Ek olarak, konuşmacı paralel yürütmeye kısaca değiniyor ve bunun bir grup görüntü için işleme süresini nasıl önemli ölçüde azaltabileceğini gösteriyor.

  • 00:50:00 Bu bölümde, konuşmacı sıralı görüntülerin yürütülmesini ve her görüntü için daha uzun yürütme süresine neden olan küresel ileti dizisi havuzundaki çekişmeyi tartışır. Ayrıca, tek girdiler için zaman ölçümlerini hassaslaştırmak için bir profil oluşturma aracının kullanılmasından ve görüntü başına yürütülen tüm operatörlerin patlamasından da bahsediyorlar. Konuşmacı, daha basit bir ResNet sınıflandırıcısında görüntü ön işleme için kullanılan, Python için numpy'ye benzer şekilde, tensör manipülasyonu için Extensor kitaplığının kullanımını açıklar. Özel operatörler, bellek arenaları ve ayırıcılar gibi gelişmiş özelliklerle temel, orta ve ileri seviyeler için ONNX Runtime ayrımından da bahsedilmektedir. Alım satım desteği ve Python örnekleri de demo bağlantıları ve sağlanan slaytlarla tartışılmaktadır.

  • 00:55:00 Bu bölümde sunum yapan kişiler, gömülü cihazlar için yararlı olan tek aşamalı dedektörlere odaklanarak, nesne algılama algoritmaları üzerine yürüttükleri bir kıyaslamayı tartışıyorlar. FPGA, GPU'lar ve CPU'larla kıyaslama yaptılar ve NVIDIA cihazlarının, Intel Core E7 CPU'ların ve FPGA'ların belirli türdeki işlemler için en iyi platformlar olduğunu gördüler. Ayrıca, sadece Python'da olmasına rağmen, ONNX'te eğitim modelleri için bir miktar destek olduğundan bahsetmişlerdir. ONNXRuntime'ı üretimde kullanmayı düşünüp düşünmeyecekleri sorulduğunda, zaten testlerde ve üretime geçişte kullandıklarını belirttiler. Microsoft'un Windows ML dahil birçok projede de kullandığını ve üç yıldır geliştirme aşamasında olduğunu kaydettiler.
 

ONNX Runtime ve Hugging Face ile Makine Öğrenimini Hızlandırma



ONNX Runtime ve Hugging Face ile Makine Öğrenimini Hızlandırma

"ONNX Çalışma Zamanı ve Hugging Face ile Makine Öğrenimini Hızlandırma" videosu, ONNX çalışma zamanını kolayca uygulayarak trafo modellerini eğitimden çıkarıma hızlandırmaya odaklanan Hugging Face'in Optimum kitaplığının oluşturulmasını tartışıyor. Kitaplık, dönüştürücü kitaplığı ile donanım hızlandırması arasındaki köprüyü basitleştirerek üretim performansı için kullanımı kolay bir araç seti oluşturur. ONNX Çalışma Zamanı tarafından sağlanan optimizasyonları uygulayarak, kullanıcılar daha hızlı çıkarım boru hatlarıyla sonuçlanan tüm donanım hızlandırmalarından yararlanabilir. Hugging Face topluluğu içindeki bir iş birliği, bu hızlandırılmış çıkarım ardışık düzen sınıflarını kullanarak diziden diziye model optimizasyonunu mümkün kılıyor ve uçtan uca bir örnek, Optimum Kitaplığı kullanmanın %44 verim artışı veya gecikme süresi düşüşüyle sonuçlanabileceğini gösterdi. Orijinal model doğruluğunun %99,6'sı.

  • 00:00:00 Bu bölümde, Hugging Face'ten Jeff, şirketin transformatör modellerinin gücünü kolayca erişilebilen önceden eğitilmiş modeller ve araçlar aracılığıyla dünyadaki her şirket için erişilebilir hale getirme hedefini tartışıyor. Kağıda ihtiyacınız olan tek şeyin transfer öğrenimi ve dikkat olduğunu, makine öğrenimi alanını değiştirdiğini, doğal dil işleme görevlerinde çığır açan performans elde edildiğini ve makine öğreniminin her bir yönteminde son teknoloji sonuçlar üretildiğini açıklıyor. Jeff, ONNX çalışma zamanını kolayca uygulayarak trafo modellerini hızlandırmak için tasarlanan ve mühendislerin ve yazılım geliştiricilerin bu modelleri üretimde kullanmasını kolaylaştıran Optimum kitaplığını sunar.

  • 00:05:00 Bu bölümde, konuşmacı trafo modellerini eğitimden çıkarıma hızlandırmaya odaklanan Hugging Face Optimum kitaplığının oluşturulmasını tartışıyor. Kitaplık, üretim performansına ayrılmış üst düzey API'lerle donanım hızlandırma için bir referans araç seti sunar. Optimum içindeki Onnx Runtime paketi, eğitimi hızlandırmanın bir yolu olan DeepSpeed'in yerel entegrasyonunu sağlar. Optimum ayrıca grafik modellerini basitleştirmek için Ort Optimizer'ı, ağırlıkları optimize etmek için Rt Quantizer'ı sunar ve donanıma özgü optimizasyonlardan yararlanmak için belirli yürütme sağlayıcılarını hedefler. Genel olarak Optimum, trafo kitaplığı ile donanım hızlandırma arasındaki köprüyü basitleştirerek üretim performansı için kullanımı kolay bir araç seti oluşturur.

  • 00:10:00 Bu bölümde, konuşmacı ONNX Runtime ve Hugging Face'in Optimize Kitaplığını kullanarak makine öğrenimi modellerini optimize etmekten bahsediyor. Kullanıcılar, Görev için Otomatik Model'den Görev için RT Model'e geçerek, ONNX Çalışma Zamanı tarafından sağlanan optimizasyonları kolayca uygulayabilir ve daha hızlı çıkarım boru hatlarıyla sonuçlanan tüm donanım hızlandırmalarından yararlanabilir. Hugging Face topluluğu, bu hızlandırılmış çıkarım işlem hattı sınıflarını kullanarak diziden diziye model optimizasyonunu etkinleştirmek için de işbirliği yapıyor. Blog gönderisinde özetlenen uçtan uca örnek, Optimum Kitaplığı kullanmanın, orijinal model doğruluğunun %99,6'sını korurken %44'lük bir verim artışına veya gecikme süresi düşüşüne neden olabileceğini gösteriyor.
 

ONNX, Triton ve Seldon ile Makine Öğrenimi Çıkarımını Geniş Ölçekte Hızlandırma | PyData Global 2021



ONNX, Triton ve Seldon ile Makine Öğrenimi Çıkarımını Geniş Ölçekte Hızlandırma | PyData Global 2021

Seldon Technologies'den Alejandro Saucedo, "ONNX, Triton ve Seldon ile Geniş Ölçekte Makine Öğrenimi Çıkarımını Hızlandırma | PyData Global 2021" adlı videoda, makine öğrenimi çıkarımını ölçeklendirmenin zorluklarını ve modelleri optimize etmek ve üretmek için ONNX ve Triton'un nasıl kullanılacağını tartışıyor. GPT-2 TensorFlow modelini bir kullanım örneği olarak kullanan oturum, ön işlemeyi, en uygun belirteçleri seçmeyi ve Tempo ve Triton çıkarım sunucusunu kullanarak modeli dağıtmayı kapsar. Saucedo, tekrarlanabilirlik ve uyumluluğu sağlarken altyapı karmaşıklıklarını soyutlama ve kolay dağıtımı kolaylaştırma ihtiyacını vurgular. Konuşma, uçtan uca eğitim ve devreye alma bileşenleri için açık kaynaklı projelerle yapılan işbirlikleriyle sona eriyor.

  • 00:00:00 Bu bölümde Alejandro Saucedo kendisini ve makine öğrenimi dağıtımı ve izlemeye odaklanan şirketi Seldon Technologies'i tanıtıyor. Oturumun, GPT-2 TensorFlow modelini bir kullanım durumu olarak kullanarak pratik bir yaklaşım benimseyerek makine öğrenimi çıkarımını büyük ölçekte hızlandırma zorluğunu ele alacağını açıklıyor. Amaç, modeli ONNX kullanarak optimize etmek ve Kubernetes üzerinde üretmeden önce Tempo adlı bir araç kullanarak yerel olarak test etmektir. Ana odak noktası, veri bilimi uygulayıcılarının veri bilimi tarafına odaklanabilmesi için altta yatan altyapı karmaşıklıklarını soyutlamaktır. Saucedo ayrıca GPT-2'nin ne olduğunu ve uygulamalarını açıklıyor ve bunun eğitim ve çıkarım için önemli miktarda bilgi işlem gerektiren nispeten karmaşık bir model olduğuna dikkat çekiyor.

  • 00:05:00 Videonun bu bölümünde, konuşmacı önceden eğitilmiş modellerin, özellikle GPT-2'nin kullanımını ve bunların oyunlar ve kod üretimi gibi çeşitli uygulamalar için nasıl kullanılabileceğini tartışıyor. Konuşmacı, önceden eğitilmiş GPT-2 modelini getirmek için Hugging Face kitaplığının nasıl kullanılacağını açıklıyor ve ön işleme ve çıkarım için kullanılan belirteç oluşturucu ve kafa modeli dahil olmak üzere modelin bileşenlerini tartışıyor. Konuşmacı daha sonra, belirteç oluşturucuyu kullanarak ve 20 belirteci tahmin etmek için oluşturma işlevini kullanarak insan tarafından okunabilir bir cümleyi önceden işlemenin bir örneğini inceler. Son olarak, konuşmacı, model için çıkarımı birçok kez çalıştıran oluşturma işlevinin temel iş akışını ve belirteçleyicinin kod çözücüsünü kullanarak makine tarafından okunabilir çıktının tekrar insan tarafından okunabilir biçime nasıl dönüştürüleceğini açıklar.

  • 00:10:00 Bu bölümde, konuşmacı bir model için en uygun belirteci seçme sürecini ve uygulayıcıların modeli ölçeklendirirken karşılaştıkları zorlukları açıklıyor. Zorluklar arasında özel donanım gerekliliği, bileşenler arasındaki karmaşık bağımlılıklar ve tekrar üretilebilirlik ve uyumluluk ihtiyacı yer alır. Konuşmacı daha sonra endüstride geniş çapta benimsenen ve Python veya PyTorch modellerinin optimum performans için okuması ve değiştirmesi için optimize edilmiş sunucular için standartlaştırılmış bir formata dönüştürülmesine izin veren ONNX formatını tanıtıyor. Ancak, ONNX'e dönüştürme gerekli değildir ve uygulayıcılar yine de modellerini doğrudan devreye alabilirler. Konuşmacı ayrıca modelleri dağıtma ve ölçeklendirme sürecini basitleştiren Tempo çerçevesini de tanıtıyor.

  • 00:15:00 Bu bölümde konuşmacı, Tempo ve Triton çıkarım sunucusunu kullanarak modelin nasıl üretileceğini tartışıyor. İlk adım, GPT-2 modeli için bir Tempo sarmalayıcı tanımlamak ve ardından optimize edilmiş modeli Nvidia'nın optimize edilmiş sunucusunda çalıştırmaktır. Daha sonra, makine tarafından okunabilen belirteçleri insan tarafından okunabilen dizelere dönüştürmek için özel bir dönüştürücü mantığı tanımlanmalı ve kullanıcıların modelle kolay ve basit bir şekilde etkileşime girmesine izin verilmelidir. Modeli yerel olarak Docker'da test ettikten sonra, basit bir komutla Kubernetes yığınına dağıtılabilir. Sarmalayıcıyı tanımlama kodu gösterilir ve konuşmacı, bu yöntemin farklı türde model çerçevelerinin kullanılmasına izin vererek onu makine öğrenimi çıkarımı üretmek için çok yönlü bir araç haline getirdiğini açıklar.

  • 00:20:00 Bu bölümde konuşmacı, ONNX ve Triton ile PyTorch modellerini kullanarak özel bir trafo mantığının nasıl oluşturulacağını tartışıyor. İlk olarak, transkript, dize dönüştürme ve tahmin işlevini kullanarak bu özel mantık yoluyla belirteçlerin nasıl gönderileceğini açıklar. Konuşmacı daha sonra belirteçleri yinelemeden ve yanıtı oluşturmadan önce GPT2 modelinden yapıtların nasıl yükleneceğini ve tahmin işlevinin REST uç noktası olarak nasıl tanımlanacağını açıklar. Anahtar çıkarım, belirteçleri modelden geçirerek ve birkaç çalıştırmayı yineleyerek, bu karmaşık altyapıdan bir dize döndürebiliriz. Ayrıca konuşmacı, bu yaklaşımın uzaktan konuşlandırma işlevi aracılığıyla Kubernetes'te kolayca dağıtılabileceğinden bahseder.

  • 00:25:00 Bu bölümde, konuşmacı, özellikle bir GPT-2 TensorFlow modelini ONNX ile optimize etmeye ve Docker kullanarak Triton ile çalıştırmaya ve ardından en iyi uygulamaları takip ederken onu Kubernetes'te devreye almaya odaklanarak, makine öğrenimi hızlandırmasını geniş ölçekte tartışıyor. Amaç, temel altyapı sızıntısını en aza indirmek ve en az çabayla güvenilir dağıtım sağlamaktır. Konuşmacı ayrıca açık kaynaklı projelerde uçtan uca eğitim ve dağıtım bileşenleri sağlamak için Tempo ve Metaflow ekipleriyle yaptıkları işbirliklerinden de bahsediyor. Söyleşi soru-cevap bölümüyle sona eriyor.
 

AI Show Live - Bölüm 62 - ONNX Runtime ile Çoklu Platform Çıkarımı



AI Show Live - Bölüm 62 - ONNX Runtime ile Çoklu Platform Çıkarımı

AI Show Live'ın "ONNX Runtime ile Çoklu Platform Çıkarımı" bölümünde toplantı sahipleri, ONNX Runtime çerçevesini kullanarak birden fazla platformda bir süper çözünürlüklü modelin ve bir nesne algılama modelinin nasıl dağıtılacağını gösteriyor. Hem mobil hem de web platformları için ön işleme ve son işleme adımlarını tartışıyorlar, tek bir çözüm kullanmanın faydalarını gösteriyorlar, bir PyTorch modelini ONNX modeline dönüştürme sürecini açıklıyorlar ve ONNX ile çıkarım için verilerin nasıl ön işleneceğini gösteriyorlar. Çalışma süresi. Ek olarak, C# dilinde Onnx Runtime kullanılarak BERT doğal dil işleme modelinin uygulanmasını gösterirler. Kod ve açık kaynak modelleri, kullanıcıların çözümleri için özelleştirme için kullanılabilir.

AI Show Live'ın ikinci bölümünde sunum yapan kişiler, ONNX Çalışma Zamanı ile çıkarım çalıştırmayla ilgili çeşitli konuları ele alıyor. ONNX çıkarım örneklerinden bir örnek kullanarak metin sınıflandırma sürecini gösterirler ve C# dilinde BERT sınıflandırma modelleri oluşturmak için gereken paketlerin ve araçların kurulumunu keşfederler. Ayrıca IntelliCode'un VS 2022 ile kullanımını tartışıyorlar ve tensör oluşturma, ONNX Çalışma Zamanı çıkarım oturumunu yapılandırma ve çıktıyı sonradan işleme dahil olmak üzere model çıkarımına hazırlanma adımlarını adım adım anlatıyorlar. Ek olarak, model belgelerine başvurmanın ve doğru sonuçlar için doğru simge oluşturucuyu seçmenin önemine değiniyorlar.

  • 00:00:00 AI Show Live'ın bu bölümünde sunucu Cassie Breviu, süper çözünürlüklü bir modelin nasıl dağıtılacağına dair bir projeyi sergileyecek olan ONNX Çalışma Zamanı ekibinde stajyer olan özel konuklar Victor, Kalia ve David'i tanıtıyor. ONNX Çalışma Zamanı çerçevesini kullanarak mobil ve web üzerinde nesne algılama modeli. Proje, ONNX Runtime'ın çok platformlu devreye alma yeteneğini göstererek, süper çözünürlüklü çıktı yoluyla görüntülerde nesne algılamayı iyileştirmeyi amaçlıyor.

  • 00:05:00 Bu bölümde, toplantı sahipleri, mobil ve web için farklı platformlarda konuşlandırılabilecek bir uygulama oluşturmak için React Native ve Expo'yu kullanan bir projeyi tanıtıyor. React Native'in yerel modüller özelliğini kullanmanın, JavaScript kodunda kullanılabilen C++ ve Java gibi diğer dillerde işlev ve modellerin uygulanmasına izin verdiğini açıklıyorlar. Bu özellik, verileri daha iyi işlemek için Java'da yazılan piksel alma işlevi gibi farklı bir dilde ön işleme işlevleri yazmalarına olanak tanır ve makine öğrenimi modelleri için bir görüntünün piksel verilerini almayı kolaylaştırır.

  • 00:10:00 YouTube videosunun bu bölümünde konuşmacı, süper çözünürlüklü bir model kullanan bir mobil uygulamanın ön işleme ve işleme sonrası adımlarını tartışıyor. RGB değerleriyle çalışan diğer modellerin aksine bu model, bir görüntünün yalnızca parlaklık (Y) bileşeniyle çalışır. Bu nedenle konuşmacı, Y bileşenini çıkarmak için bir RGB görüntüsünün bir YCbCr görüntüsüne nasıl dönüştürüleceğini gösterir. Konuşmacı ayrıca mobil ve web uygulamaları için optimize edilmiş ve küçültülmüş boyut yapısı sağlayan ONNX Runtime formatını kullanarak modelin mobil ortama nasıl yükleneceğini de gösterir. Son olarak, modelin çıktısını işlemek için son işleme adımı yapılır.

  • 00:15:00 Videonun bu bölümünde toplantı sahibi ve konuk, modellerinden bir dizi alan ve YCbCr'yi tekrar RGB'ye değiştiren son işleme işlevini gösteriyor. Daha sonra görüntü kaynağını görüntülemek üzere almak için yerel bir modelin işlevini kullanırlar. Python dışı dillerde ön işleme ve son işleme, diğer dillerde modelleri çalıştırırken ve çıkarım yaparken zor kısım olma eğilimindedir. Modelin yerel olarak bir mobil cihaza dağıtıldığı ve daha sonra aynı modeli bir web tarayıcısında dağıtmak için kodu yeniden kullandığı bir demo gösterirler. Bir izleyici, konuğun bunun mümkün olduğuna inandığı C# ile aynı şeyin yapılıp yapılamayacağını sorar.

  • 00:20:00 bu bölümde Kalia, modeli web ve mobil platformlarda çalıştırmak için işleme öncesi ve sonrası farklılıkları gösteriyor. Web'de, görüntü verilerini almak için ekran dışı tuval ve Canvas API kullanılırken, mobilde API'ler arasında gidip gelmeye gerek yoktur. Ekran dışı tuval görüntüyü çizdikten sonra ön işleme işlevi, görüntü verilerini süper çözünürlüklü modelin kullandığı y kanalına ayarlar. Sonradan işleme işlevi, verileri bir ekranda görüntülenebilmesi için y cbcr'den rgb formatına dönüştürür. Kalia'nın ön ve son işleme işlevleri için kodu Java, C# veya React'te kullanılabilir.

  • 00:25:00 Videonun bu bölümünde sunum yapan kişiler, ONNX Runtime gibi birden fazla cihaz için tek bir çözüm kullanmanın faydalarını tartışıyor. Bir mobil modelin bir web platformunda nasıl çalıştırılacağını ve maliyet etkinliği ve gizlilik dahil olmak üzere cihaz üzerinde çıkarımın avantajlarını gösterirler. Sunum yapan kişiler ayrıca bir PyTorch modelini ONNX modeline ve ardından ONNX Çalışma Zamanı formatına dönüştürme sürecini de açıklar. Son olarak, projenin nesne algılama yönünü tanıtıyorlar ve görüntülerdeki nesneleri algılamak için ONNX Runtime'ı nasıl kullandıklarını açıklıyorlar.

  • 00:30:00 Videonun bu bölümünde sunum yapan kişi, genel algılamanın doğruluğunu artırmak için süper çözünürlük kullanan bir nesne algılama yapay zeka modeli olan projelerinde kullanılan modelin ayrıntılarını tartışıyor. Kendi modelleri ile daha önce tartışılan model arasındaki ön işleme ve son işlemedeki farklılıkları açıklarlar ve konum, sınıflar, puan ve tespit sayısı dahil olmak üzere modellerinin dört çıktısını detaylandırırlar. Ek olarak, modellerini analiz etmek ve parçalara ayırmak için Netron aracını nasıl kullandıklarını ve modelin nesneleri doğru bir şekilde algılaması için RGB değerlerini tutarlı tutmak üzere ön işlemeyi nasıl ayarladıklarını gösterirler.

  • 00:35:00 Bu bölümde sunum yapan kişi, süper çözünürlük öncesi bir fotoğraf üzerinde bir model çalıştırmayı ve fotoğraftaki köpeği doğru bir şekilde tanımlayan nesne algılamanın sonuçlarını gösterir. Süper çözünürlüklü modeli kullanmak görüntüyü geliştirir ve daha doğru ve daha küçük bir algılama kutusuna yol açar. Bu, ONNX Çalışma Zamanının taşınabilirliğini ve pratik kullanımını gösterir ve modeli cihaz üzerinde optimize edilmiş bir modelde çalıştırma yeteneklerini gösterir. Kullanıcıların erişmesi ve kendi çözümleri için özelleştirmesi için kod ve açık kaynak modelleri de mevcuttur.

  • 00:40:00 Bu bölümde görülen, C#'ta Onnx Runtime kullanan BERT doğal dil işleme modelinin bir gösterimidir. Toplantı sahibi, Python'da BERT kullanımına ilişkin pek çok örnek olmasına rağmen C# kullanmayı tercih ettiklerini açıklıyor. Soru yanıtlama için Onnx Runtime belgelerinden bir örneğe geçmeden önce BERT tabanlı kasasız modelle başladılar. Hugging Face Transformers API ile önceden eğitilmiş modeli kolayca yakalayıp Onnx formatına aktarabildiler. Daha sonra model girdilerinin nasıl verileceğini ve C# dilinde Onnx Runtime kullanılarak nasıl çalıştırılacağını gösterirler.

  • 00:45:00 Bu bölümde, konuşmacı model için metnin simgeleştirildiği ön işleme adımını tartışır. Farklı giriş uzunluklarına izin vermek için dinamik eksenlerin nasıl kullanıldığını ve girdiyi C keskinliğinde önceden işlemek için belirteçleştiriciyi nasıl kullandıklarını gösterirler. Ayrıca, BERT modelini Python tabanlı transformatörler paketiyle mümkün olmayan C keskinliğinde tokenize etmelerine olanak tanıyan açık kaynaklı bir proje olan Boat Tokenizer'ı da tanıtıyorlar. Kodlanmış giriş daha sonra, modeldeki farklı kelimelere eklenen farklı belirteçler olan giriş kimlikleri olarak döndürülür.

  • 00:50:00 Bu bölümde sunum yapan kişi, bir konsol uygulaması oluşturarak BERT modellerinin C# dilinde uygulanmasını tartışıyor. Modellerin farklı C# uygulamalarını denerken bir konsol uygulaması kullanmanın yararlı olduğunu ve gerekirse bir üretim uygulamasına entegre edilebileceğini açıklıyorlar. Sunum yapan kişi, bir cümlenin gerçek belirteçlerini elde etmek için belirteçleştirmenin nasıl kullanılacağını ve belirteçlerle ilişkili kimliklerle girişin nasıl kodlanacağını gösterir. Ayrıca, kullanılan geniş kelime dağarcığını ve bunların simgeleştirmede kullanılmak üzere nesnelere nasıl dönüştürüldüğünü de gösterirler.

  • 00:55:00 Bu bölümde sunum yapan kişi, ONNX Çalışma Zamanı ile verileri ön işleme ve çıkarım için hazırlamayı tartışıyor. Verilerin çıkarım süreci için gerekli olan tensörlere nasıl dönüştürüleceğini ve çıkarım oturumuna iletilmek üzere adlandırılmış ONNX değer nesnelerinin bir listesinin nasıl oluşturulacağını gösterirler. Ayrıca, giriş verileri için doğru etiketlerin ayarlanmasının öneminden de bahsederler. Genel olarak, ONNX Çalışma Zamanı ile çalışmak ve makine öğrenimi çıkarımı için veri hazırlamak için yararlı ipuçları sağlarlar.

  • 01:00:00 Bu bölümde konuşmacı çıkarım değerlerini çalıştırır ve başlangıç ve bitiş logitlerini alır. Sonuçlar, etiketlerin dizini sırasına göre döndürülür. Tahmin edilen cevaba ulaşmak için öncelikle başlangıç ve bitiş logitlerinden maksimum değerin ve maksimum değerin indeksinin elde edilmesi gerekir. Çıktı adları gösterilir ve belirteçlerin doğru olup olmadığını karşılaştırmak için kullanılan kodlanmış belirteç değerleri görülebilir. Konuşmacı ayrıca modelleri işlevsel hale getirmek için Python çıkarım kodunu C#'a dönüştürme sürecini de gösterir. Son olarak, daha fazla modelle deneme yapmayı, Python çıkarım kodunu C#'a dönüştürmeyi ve modellerde ince ayar yapmayı öneriyorlar.

  • 01:05:00 Videonun bu bölümünde sunucu, ONNX çalışma zamanını kullanarak metin sınıflandırmasını ve ONNX'in nasıl kullanılacağına ilişkin örnekler bulmak için iyi bir kaynak olan ONNX çıkarım örneklerinden bir örneği araştırıyor. Örnek, Hugging Face'ten bir belirteç oluşturucu ve temel kaplı belirteç oluşturucunun daha küçük, damıtılmış bir versiyonunu kullanır. Ana bilgisayar, yolu model adına göre ayarlar, ardından değişken cümle uzunluğu nedeniyle dinamik eksenleri olan model için girdileri ayarlar. Metin sınıflandırma modelinin girdileri, giriş kimlikleri ve dikkat maskesidir. Ana bilgisayar, ONNX için geliştirilmekte olan uzantılar olduğundan ve çalışma zamanının yeni sürümünün .NET altı ve Maui'yi desteklediğinden bahseder. Model için ön işleme örneği hazır olmasa da sunucu, bunu çözmek için Netron'u kullanmayı planlıyor.

  • 01:10:00 bu bölümü özetler. Videonun bu bölümünde, konuşmacı önceki modeli daha az bilgilendirici bir şekilde yeniden adlandırıyor ve buna metin sınıflandırması ekliyor. C# ve .NET 6 kullanarak yeni bir proje oluşturmaya devam ediyorlar ve basit komut dosyasıyla yazılmış bir konsol şablonuna sahip olmanın yeni özelliğini açıklıyorlar. Konuşmacı, önceki projeden bazı kodları kopyalayıp yeni projeye yapıştırır ve artık yalnızca iki çıkışı olan BERT girişini ekler. Konuşmacı, bu girdi için ayrı bir dosya oluşturması gerektiğini kabul eder, ancak bunun yerine komut dosyası oluşturmayı tercih eder.

  • 01:15:00 Bu bölümde konuşmacı, C#'ta Burp sınıflandırma modelleri oluşturmak için çeşitli paketlerin ve araçların kurulumunu tartışıyor. Yönetilen paketle birlikte gerekli tokenizer paketini ve ONNX çalışma zamanı paketlerini kurarlar. Gereksiz öznitelik paketleri yorumlanır ve konuşmacı, kodlama için belirteçleri elde etmek üzere bir giriş cümlesi ve belirteçleyici ekler. Konuşmacı ayrıca kod tabanında eğitim yapmak için GPT-2 modelini kullanan ve yerel olarak çalışan VS 2022 IntelliCode'dan da bahsediyor.

  • 01:20:00 Videonun bu bölümünde sunum yapan kişi, mevcut bir kod tabanından öğrenebilen yapay zeka destekli bir araç olan VS 2022 ile Intellicode'u (önceden Intellisense olarak biliniyordu) kullanmaktan bahsediyor. Ardından belirteç oluşturucu ve bir cümle için kodlanmış değer ile çalışmaya geçerler. Ayrıca, bir üretim uygulaması için bunu halletmenin daha iyi yolları olmasına rağmen, model yolunu ve deneysel amaçlar için modelin bir konsol uygulamasına nasıl yapıştırılacağını tartışırlar. Son olarak sunum yapan kişi, BERT modeli için bir çıkarım oturumu oluşturur.

  • 01:25:00 Videonun bu bölümünde sunum yapan kişiler, ONNX Runtime'ı kullanarak çıkarım yapmaya hazırlanmak için gereken adımları anlatıyor. Tensörler oluşturarak ve bunları bir tensöre dönüştürerek başlarlar. Daha sonra, giriş kimliklerini ve bir dikkat maskesini ve liste listelerini kullanarak bir girdi oluştururlar. Adlandırılmış bir ONNX değeri oluşturduktan sonra, modeli çalıştırırlar ve farklı grafik optimizasyonları ve yürütme sağlayıcıları dahil olmak üzere ONNX Çalışma Zamanı çıkarım oturumunu yapılandırma seçeneklerini tartışırlar. Son olarak, bu durumda yalnızca bir değeri olan çıktıyı alırlar.

  • 01:30:00 Konuşma metninin bu bölümünde, konuşmacı ONNX Runtime ile bir model kullanmak için kodu gözden geçiriyor. ONNX modelini kullanmak için etiketleri nasıl aynı olacak şekilde adlandırdıklarını ve her şeyin işe yarayıp yaramadığını görmek için nasıl akıl sağlığı testi yapabileceklerini açıklıyorlar. Kodda ilerlemek ve girişin, dikkat maskesinin ve kimliklerin doğru olup olmadığını kontrol etmek için bir kesme noktası belirlerler. Girdi doğru olduğunda, modeli yüklerler, tensörlerini, oturumlarını ve çıkarımlarını oluştururlar. Daha sonra bunu nasıl bir sonuca dönüştüreceklerini bulmak için son işleme ihtiyaçları olduğunu açıklarlar ve bazı ön işleme kodları bulmaya giderler.

  • 01:35:00 Videonun bu bölümünde konuşmacı, belirli bir cümlenin olumlu ve olumsuz duygusunu belirlemek için bir sınıflandırma modelinden elde edilen iki değeri işleme sürecini tartışıyor. C#'ta işlemin nasıl gerçekleştirileceğini anladıklarını doğrulamak için kullandıkları belirteçleri elde etmek ve cümleyi belirtmek için bir belirteç oluşturucunun kullanımını gösterirler. Ayrıca, doğru belirteçleştirmeyi sağlamak için model belgelerine başvurmanın ve doğru belirteç oluşturucuyu seçmenin öneminden de bahsediyorlar.

  • 01:40:00 Bu bölümde, AI Show Live'ın sunucuları, eğitim için hızlandırıcılar ve arka uçta ONNX çalışma zamanını kullanan farklı donanım entegrasyonları dahil olmak üzere makine öğrenimi için optimizasyonlar uygulayan Hugging Face'in Optimum projesini tartışıyor. Toplantı sahipleri ayrıca belirteç oluşturucu için ön işleme adımlarını ve metin sınıflandırma modeli için oturum oluşturmayı gözden geçirir. Bir cümlenin kodlanmış halini keşfederler ve modelleri için oturumu oluşturmak üzere önceden yazılmış bazı kodları yeniden kullanırlar.

  • 01:45:00 Bu bölümde sunum yapan kişi, modeli dışa aktararak ve girdi verilerini işleyerek model çıkarımı için hazırlanır. Kodlanmış belirteçlerin akıl sağlığı kontrolünü gerçekleştirerek girdi verilerini belirtmek için doğru belirteç oluşturucunun kullanıldığını onaylarlar. Ancak, giriş maskesinin eksik olduğunu fark ederler ve sorunu tam olarak belirlemek için modeli ve kodu incelemek üzere geri dönerler. Kullanılan belirteç oluşturucu etrafındaki belirsizliğe rağmen, kodlanmış belirteçlerin doğru olduğunu onaylarlar ve giriş maskesini oluşturmaya devam ederler.

  • 01:55:00 Videonun bu bölümünde sunum yapan kişi modeli çalıştırmak için giriş ve çıkışları kurmaya çalışıyor. Giriş maskesi ve dikkat maskesiyle ilgili bazı sorunlarla karşılaşırlar ve sonunda herhangi bir ekstra işlem yapmak zorunda kalmadan belirteçleri alıp gönderebileceklerini fark ederler. Daha sonra odaklarını, iki girdi gerektirdiğinden ve yığın için şekli belirtmesi gerektiğinden biraz daha karmaşık olan model girdisine çevirirler. Sunucu, girişleri ve çıkışları ayarlamak için ONNX Runtime'ı kullanır ve C# modeliyle aynı sonuçları üretip üretmediğini test eder.
Neden: