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

 

NVIDIA TAO Toolkit ile ONNX Modellerini İçe Aktarın, Eğitin ve Optimize Edin



NVIDIA TAO Toolkit ile ONNX Modellerini İçe Aktarın, Eğitin ve Optimize Edin

Video, ONNX modellerini içe aktarmak, eğitmek ve optimize etmek için NVIDIA TAO Toolkit'in nasıl kullanılacağını gösterir. Önceden eğitilmiş bir ResNet18 modelini indirerek, Pascal VOC veri setinde TAO ile ince ayar yaparak başlar ve modeli içe aktarmak ve ONNX grafiğini görselleştirmek için adımlar sağlar. Eğitim ilerlemesi, TensorBoard görselleştirme kullanılarak izlenebilir ve ONNX dönüştürme hatalarında özel katmanlar kullanılabilir. Video ayrıca azalan kaybı gözlemleyerek, kaybı doğrulayarak ve ağırlıkları ve sapmaları analiz ederek modelin performansının nasıl değerlendirileceğini de açıklar. Kullanıcılar, test veri kümesi ve örnek görüntüler üzerinde modelin doğruluğunu değerlendirebilir ve modeli daha da geliştirmek için budama ve optimizasyon işlemlerine devam edebilir.

  • 00:00:00 Bu bölümde video, NVIDIA TAO Toolkit kullanılarak ONNX modellerinin nasıl içe aktarılacağını, eğitileceğini ve optimize edileceğini açıklar. Video, önceden eğitilmiş bir ResNet18 modelinin indirilmesiyle başlar ve ardından TAO kullanılarak Pascal VOC veri setinde ince ayarı yapılır. ONNX modelini içe aktarma ve ONNX grafiğini görselleştirme adımları da ele alınmaktadır. Ayrıca video, TensorBoard görselleştirme kullanılarak eğitim işinin ilerlemesinin nasıl izleneceğini tartışır. Son olarak video, TAO'nun özel katmanları işleyebileceğinden bahseder ve dönüştürülemeyen modelleri içe aktarmak için bunların nasıl kullanılacağına ilişkin rehberlik sağlar.

  • 00:05:00 Bu bölümde, konuşmacı eğitilen modelin performansının nasıl değerlendirileceğini tartışır. Kullanıcılar, modelin geliştiğinden emin olmak için azalan kayba bakabilir. Ek olarak, doğrulama kaybı, fazla uydurmanın belirlenmesine yardımcı olabilir. Daha ileri düzey kullanıcılar, modelin ağırlıklarını ve sapmalarını anlamak için grafikleri ve histogramları görüntüleyebilir. Konuşmacı, test veri kümesinde modelin genel doğruluğunun nasıl kontrol edileceğini ve modelin örnek görüntüler üzerindeki performansının nasıl değerlendirileceğini gösterir. Modelin iyileştirmeye açık alanı vardır ve kullanıcılar, doğruluğu daha da artırmak için model budama ve optimizasyon işlemlerine devam edebilir.
 

NVAITC Web Semineri: Modelleri TensorRT ile Dağıtma



NVAITC Web Semineri: Modelleri TensorRT ile Dağıtma

NVAITC web seminerinin bu bölümünde, çözüm mimarı Nikki Loppie, NVIDIA'nın yüksek performanslı derin öğrenme çıkarımı için yazılım geliştirme kiti olan TensorRT'yi tanıtıyor. TensorRT, gömülü cihazlardan veri merkezlerine kadar çeşitli platformlarda düşük gecikme süresi ve yüksek verimli çıkarım için bir çıkarım iyileştirici ve çalışma zamanı sağlar. Loppie, TensorRT'nin çıkarım performansını optimize etmek için kullandığı, çekirdek birleştirme ve hassas kalibrasyon dahil olmak üzere beş teknolojiyi açıklıyor. Geliştiriciler, bu optimizasyonları kendi uygulamalarına dahil etmek için TensorRT'nin Python ve C++ API'lerini kullanabilir ve trtorch gibi dönüştürücü kitaplıkları, çıkarım için PyTorch modellerini optimize etmek için kullanılabilir. Loppie, trtorch kitaplığını kullanarak TensorRT için optimize edilmiş modellerin nasıl kaydedileceğini gösteriyor ve optimize edilmiş modelleri, görüntü sınıflandırması için optimize edilmemiş modellerle kıyaslayarak, yarı hassasiyette önemli hız artışları gösteriyor.

  • 00:00:00 Web seminerinin bu bölümünde, çözüm mimarı Nikki Loppie çıkarımda verimliliğin önemini ve platform taşınabilirliğine olan ihtiyacı tartışıyor. Bu iki zorluğu ele alan, yüksek performanslı derin öğrenme çıkarımı için NVIDIA'nın bir yazılım geliştirme kiti olan TensorRT'yi tanıtıyor. TensorRT, gömülü cihazlardan veri merkezlerine kadar çok çeşitli platformlarda düşük gecikme süresi ve yüksek verimli çıkarım için bir çıkarım iyileştirici ve çalışma zamanı içerir. Ayrıca tüm büyük derin öğrenme çerçeveleriyle uyumludur. Loppie daha sonra TensorRT'nin çıkarım performansını optimize etmek için uyguladığı çekirdek birleştirme, hassas kalibrasyon ve çekirdek otomatik ayarlama dahil olmak üzere beş teknolojiyi açıklıyor.

  • 00:05:00 Bu bölümde, web semineri, TensorRT'nin çekirdek yürütme süresini optimize etme, bellek ayak izini azaltma ve çoklu akış yürütmeyi kullanarak paralel çıkarımı destekleme yeteneklerini tanıtıyor. Geliştiriciler, bu optimizasyonları kendi uygulamalarına dahil etmek için TensorRT'nin Python ve C++ API'lerini kullanabilir. Web semineri ayrıca bir PyTorch modelini çıkarım için optimize etmek üzere tr torch gibi dönüştürücü kitaplıklarının nasıl kullanılacağını açıklar. Adımlar, modeli kaydetmeyi, yüklemeyi, bir ResNet modelini başlatmayı, TorchScript kullanarak derlemeyi ve son olarak onu TensorRT formatına dönüştürmeyi içerir. Optimize edilmiş model daha sonra hedef platforma dağıtılabilir.

  • 00:10:00 Web seminerinin bu bölümünde, konuşmacı TensorRT için optimize edilmiş modellerin daha sonra kullanmak üzere veya trtorch kitaplığını kullanarak diğer platformlarda konuşlandırmak üzere nasıl kaydedileceğini gösterir. Konuşmacı, ImageNet veri setinde çalışan ResNet-18 ve ResNet-50 modelleriyle bir görüntü sınıflandırma örneği kullanır. trtorch için optimize edilmiş modeller, optimize edilmemiş modellere kıyasla, ResNet-18 için 5,5x ve ResNet-50 için 6,4x'lik bir hızlanma faktörü ile yarı hassasiyetle önemli hız artışları gösteriyor. Konuşmacı ayrıca tarafsız kıyaslamanın önemini vurgular ve trtorch'a nasıl başlanacağına dair talimatlar sağlar.
 

ESP eğitimi - Nasıl yapılır: Keras/Pytorch/ONNX'te bir hızlandırıcı tasarlama



ESP eğitimi - Nasıl yapılır: Keras/Pytorch/ONNX'te bir hızlandırıcı tasarlama

Eğitim, bir Keras/Pytorch/ONNX modelinden otomatik olarak bir hızlandırıcı oluşturabilen Chalice for ML adlı aracı tanıtır. Öğretici daha sonra hızlandırıcının ESP'ye (Early Stage Prototyper) nasıl entegre edileceğini göstermeye devam eder. Konuşmacı ayrıca Keras/Pytorch/ONNX'te bir hızlandırıcının nasıl tasarlanacağını gösterir ve bir hızlandırıcıyı içe aktarma, bir test tezgahı ekleme, RTL oluşturma ve hızlandırıcının iki sürümünü oluşturma adımlarından geçer. Video ayrıca Linux'u derlemeyi ve hızlandırıcı için bir Linux kullanıcı alanı uygulaması oluşturmayı da kapsar. Son olarak, öğretici daha fazla öğrenme için kaynaklarla sona erer.

  • 00:00:00 Eğitimin bu bölümünde sunum yapan kişi, bir Keras/Pytorch/ONNX modelinden otomatik olarak bir hızlandırıcı oluşturabilen Chalice for ML adlı aracı tanıtıyor. Akış, ESP for NXP'nin GitHub deposu içinde sağlanan önceden oluşturulmuş bir Keras modelinden bir hızlandırıcı oluşturmak için HLS 4 ML kullanılarak gösterilmiştir. Oluşturulan hızlandırıcı daha sonra etkileşimli bir komut dosyası kullanılarak ESP'ye entegre edilir ve test edilir. Sunucu, kullanıcıların öğreticiyi izlemeye çalışmadan önce önkoşul kılavuzlarını gözden geçirmeleri ve ortamlarını kurmaları gerektiğini vurgular. Eğitim ayrıca, kullanıcıların tüm adımlardan geçmek zorunda kalmadan deney yapmak için kullanabilecekleri önceden oluşturulmuş malzemeler sunar.

  • 00:05:00 Eğitimin bu bölümünde eğitmen, önceki adımlarda tasarlanan hızlandırıcının ESP'ye (Early Stage Prototyper) nasıl entegre edileceğini açıklar. Hızlandırıcı için üç basamaklı onaltılık kimlik atanır, sayının ondalık olarak 1024'ten büyük olmaması gerektiği akılda tutulur. Hızlandırıcının mevcut kullanım durumunda 32 bit olan veri bit genişliği daha sonra tanımlanır ve girdi ve çıktı dosyası boyutları belirlenir. Son olarak, eğitmen, MLP üç katmanlı hızlandırıcı için üst düzey sentezi çalıştırmayı ve ESP ile HLS'nin nasıl çalıştırılacağını gösterir. Tüm adımlar, Sistem C veya C++ hızlandırıcıları için diğer kılavuzlarla aynıdır ve MLP için HLS proje klasörü, hızlandırıcıyı ESP sisteminin geri kalanıyla sarmalamak ve arayüz oluşturmak için gerekli tüm dosyalarla birlikte ESP'ye eklenir.

  • 00:10:00 Videonun bu bölümünde, konuşmacı Keras/Pytorch/ONNX'te hızlandırıcı tasarlama adımlarını gösteriyor. Önce bir hızlandırıcının nasıl içe aktarılacağını ve simülasyonu otomatik olarak test eden bir test tezgahının nasıl ekleneceğini gösterirler. Daha sonra seçici arama ve FPGA teknolojisi üzerinde çalışan bir proje oluşturan HLS adımından geçerler. Oluşturulan RTL daha sonra FPGA teknolojisine yerleştirilir ve hızlandırıcının biri 32 bitlik diğeri 64 bitlik iki versiyonu oluşturulur. Konuşmacı, ESP X yapılandırma komutuyla bir SOC yapılandırır ve otomatik olarak oluşturulmuş bir çıplak donanım uygulamasının nasıl derleneceğini gösterir. Bir hızlandırıcının çıplak metal testini simüle etmek için test programının belirtilmesi gerekir. Doğrulama geçtikten sonra, bir FPGA bit akışı oluşturulabilir.

  • 00:15:00 Bu bölümde, eğitim videosu, yalnızca kötümserleri derlemekle kalmayıp aynı zamanda hızlandırıcılar için kullanıcı alanı test uygulamalarını da derleyen Linux'u derliyor. Linux tamamlandığında, hızlandırıcı için FPGA üzerinde çalışacak Linux kullanıcı alanı uygulaması olan bir yürütülebilir dosya oluşturulur. Öğretici daha sonra FPGA'yı programlamaya ve make FPGA run komutunu kullanarak tam testi çalıştırmaya devam eder. Yavaşlatıcı tam birim testini çalıştırmak için daha önce oluşturulmuş bir test programı belirtilir. Ardından Linux çalıştırılarak birim test uygulaması çalıştırıldı, bu uygulama satıcı Reiter'i başarıyla buldu ve test doğrulama ile geçti. Öğretici, daha fazla öğrenme için bazı kaynaklarla sona erer.
 

ONNX Runtime ile Esnek Donanımda Optimum Çıkarım



ONNX Runtime ile Esnek Donanımda Optimum Çıkarım

Bu eğitim, ONNX Çalışma Zamanı kullanılarak CPU, GPU ve OpenVINO üzerindeki modellerin dağıtımını kapsar. Konuşmacı, esnek donanım üzerinde çıkarım yapmak için OpenVINO da dahil olmak üzere farklı yürütme sağlayıcılarının kullanımını gösterir. Çıkarım yapma kodu, temel olarak yürütme sağlayıcısı olmak üzere tüm ortamlarda aynıdır. ONNX Çalışma Zamanı, CPU ve GPU'da PyTorch'tan daha hızlı çıkarım gerçekleştirir ve OpenVINO için ayrı bir ONNX Çalışma Zamanı kitaplığı mevcuttur. Genel olarak, öğretici, ONNX Çalışma Zamanı kullanılarak çeşitli donanım seçeneklerinde modellerin nasıl dağıtılacağına dair bir genel bakış sağlar.

  • 00:00:00 Bu bölümde konuşmacı, sanal ortamları kurma ve CPU, GPU ve OpenVINO üzerinde bir ResNet50 modelinde çıkarım yapmak için ONNX Runtime'ı kullanma sürecinden geçer. Konuşmacı, uyumlu bir hızlandırıcı algılarsa ONNX Runtime'ın GPU kullanacağını, aksi takdirde varsayılan olarak CPU'yu kullanacağını not eder. Çıkarım yapma kodu, temel olarak her üç ortamda da aynıdır, temel fark, yürütme sağlayıcısını değiştirmektir. Konuşmacı, ONNX Runtime'ın CPU ve GPU üzerinde PyTorch'tan daha hızlı çıkarım yapabildiğini gösteriyor ve OpenVINO için ayrı bir ONNX Runtime kitaplığı olduğunu belirtiyor.

  • 00:05:00 Bu bölümde konuşmacı, ONNX Runtime ile esnek donanım üzerinde çıkarım yapmak için CPU üzerinde OpenVINO ve OpenVino gibi farklı yürütme sağlayıcılarının kullanımını gösteriyor. Yürütme sağlayıcısını OpenVINO olarak ayarlayarak, aynı kod 30 ms ve yaklaşık 0,78 CPU kullanımı sağlar. Öğretici, ONNX Çalışma Zamanı kullanılarak CPU, GPU ve OpenVINO'da modellerin nasıl dağıtılacağına dair bir genel bakış sunar.
 

ONNX ile Flink'te Makine Öğrenimi Çıkarımı



ONNX ile Flink'te Makine Öğrenimi Çıkarımı

Video, makine öğrenimi çıkarımında ONNX kullanmanın ve onu dağıtılmış bilgi işlem çerçevesi Flink'te devreye almanın faydalarını ve uygulamasını tartışıyor. Model eğitimi ve üretim çıkarımı arasındaki kaygıların ayrılması, girdiler ve çıktılar için spesifikasyonları tanımlama yeteneği ve dil bağımsızlığı, ONNX'i veri bilimcileri için değerli bir araç haline getirir. Video, bir ONNX modelinin Flink'e nasıl yükleneceğini gösterir, zengin harita işlevinin temel bileşenlerini sağlar ve modellerin bir jar dosyası kullanarak kodla birlikte nasıl paketleneceğini açıklar. Konuşmacı ayrıca ONNX ile bellek yönetimi, toplu optimizasyon ve donanım hızlandırma gibi konuları ele alıyor ve Flink'te gerçek zamanlı makine öğrenimi çıkarımı için faydalarını vurguluyor.

  • 00:00:00 Videonun bu bölümünde Colin Germain, siber saldırı algılama alanından oyuncak bir örnek kullanarak gerçek zamanlı makine öğrenimi çıkarımının önemini açıklıyor. Bir olayı tespit etmek için beklemenin nasıl önemli veri hırsızlığına yol açabileceğini gösteriyor. Ek olarak, makine öğreniminin, harici düşmanlar tarafından kullanılan farklı teknik türlerinin ve istismarların varyasyonlarını yakalamak için neden hayati önem taşıdığını açıklıyor. Son olarak, Flink'te dağıtılmış bilgi işlem kullanarak çözümü ölçeklendirmenin önemini vurguluyor. Colin, çözümde kritik bir rol oynayan ONNX modelini tanıtıyor ve PyTorch'ta bir makine öğrenimi modelini nasıl kullanabileceklerini ve onu Flink'te dağıtmak için ONNX ile nasıl seri hale getirebileceklerini açıklıyor.

  • 00:05:00 Bu bölümde konuşmacı, Açık Sinir Ağı Değişimi anlamına gelen ONNX'i bir makine öğrenimi boru hattında kullanmanın faydalarını açıklıyor. ONNX, model eğitimi aşaması ile üretim çıkarım aşaması arasındaki endişelerin ayrılmasını sağlayarak veri bilimcilerin Python'da modeller geliştirmesini ve ardından ONNX modelini çıkarım için farklı araçlarla kullanmasını kolaylaştırır. ONNX, makine öğrenimi için kullanılacak yönlendirilmiş bir asiklik grafiğin hesaplanmasını tanımlayan bir sözleşme sağlar. Grafikteki her operatörün, gelecekte geriye dönük uyumluluğa ve sürekli sunuma izin veren bir sürümü vardır. Konuşmacı ayrıca ONNX modellerini daha kolay dağıtım için akış çerçevesi Apache Flink ile paketlemenin avantajlarına da dikkat çekiyor.

  • 00:10:00 Videonun bu bölümünde, konuşmacı, girdiler ve çıktılar için belirtimleri tanımlama yeteneği ve ONNX çalışma zamanı kitaplığındaki modellerin tüm sürümleri için destek dahil olmak üzere makine öğrenimi çıkarımı için ONNX kullanmanın faydalarını tartışıyor. ONNX'in dilden bağımsız olması ve çoğu makine öğrenimi çerçevesi için dönüştürücülerin bulunması, modellerin ONNX'e alınmasını kolaylaştırır ve konuşmacı teşhis amacıyla netron kullanılmasını önerir. Son olarak, konuşmacı eğitim gerektirmeden uçtan uca işleme için ONNX ile bir pi meşale modeli kullanmanın basit bir örneğini sunar.

  • 00:15:00 Bu bölümde, konuşmacı, hesaplamayı tanımlamak için kullanılan ileri yöntemi ve eğitim için eğimlerin geri yayılmasını yönetmek için yüksek tork tarafından nasıl kullanıldığını tartışır. Tensörleri tanımlı bir değere göre dengeleyen add offset sınıfını kullanmanın temel bir örneği gösterilmektedir. Konuşmacı daha sonra ONNX'e aktarmayı ve dinamik modeller için doğru girdileri sağlamanın önemini tartışmaya geçer. ONNX modeli, model üzerinde çıkarım yapılmasına izin veren Scala'nın ONNX çalıştırma ortamı ve oturumu kullanılarak belleğe yüklenir. Çıkarımda kullanılmak üzere yüklenen modeli tutmak için bir sınıf oluşturulur.

  • 00:20:00 Bu bölümde konuşmacı, ONNX modelinin bir bayt dizisi ve bir yükleme yöntemi kullanılarak Flink'e nasıl yüklenebileceğini açıklamaktadır. Ayrıca zengin harita işlevinin yüklü modeli tutmak ve temiz ve düzenli bir şekilde çıkarım yapmak için nasıl kullanılabileceğini gösterirler. Konuşmacı, ONNX tensörünün ayarlanması, girişlerin ve çıkışların tanımlanması ve sonuçların alınması için model oturumunun çalıştırılması dahil olmak üzere zengin harita işlevinin temel bileşenlerinden geçer. Kodun, birden çok çıktıyı desteklemek üzere değiştirilebileceğini ve bu da onu farklı model türleri için esnek bir çözüm haline getirdiğini belirtiyorlar. Son olarak, konuşmacı ONNX modellerinin paketleme yönüne değinerek, harici uç noktalara bağlanma veya farklı kaynaklardan dosya indirme ihtiyacını ortadan kaldırarak kodu içeren jar dosyasıyla birlikte nasıl paketlenebileceğini açıklamaktadır.

  • 00:25:00 Bu bölümde, konuşmacı, MNIST olarak bilinen, el yazısı rakamları sınıflandırmaya yönelik klasik problemi kullanarak Flink'te makine öğrenimi çıkarımının bir örneğini tartışıyor. 28x28 piksel dizilerini sınıflandırmak için kullanılan PyTorch modelini ve öncekiyle aynı toplu boyutlandırma yaklaşımını kullanarak Flink'te kullanım için bir ONNX grafiğine nasıl dönüştürülebileceğini gösterirler. Konuşmacı daha sonra, NLP'de dönüştürücüler kullanan başka bir makine öğrenimi örneğini, özellikle de bir sözcük dağarcığı üzerinde önceden eğitilmiş BERT'nin daha küçük bir sürümünü tartışır. Dönüştürücü modeli, duyarlılığı, çeviriyi ve diğer kelime görevlerini tahmin etmek için kullanılır ve Flink'teki yeni tahmin görevleri için daha fazla eğitilebilir.

  • 00:30:00 Bu bölümde sunum yapan kişi, Python'da önceden eğitilmiş modellerin kolayca içe aktarılmasına ve öğrenmenin aktarılmasına olanak tanıyan Hugging Face Transformers kitaplığını sergiliyor. Bu modeller büyük olma eğiliminde olsa da kitaplık, performansı artırmak için optimizasyon ve niceleme özellikleri içerir. Ancak, belirteçleştirme gibi ön işleme aşamalarının henüz grafiğin bir parçası olmadığını ve scala'da erişilebilir olmayabileceğini not etmek önemlidir. Sunum yapan kişi ayrıca eğitim bağımlılıklarını üretim çıkarımından ayırırken ve iki parçayı etkili bir şekilde ayrıştırırken Flink'teki Scala dilinin tüm özelliklerinden yararlanmanın faydalarını da vurguluyor. Genel olarak, model boyutu ve ön işleme zorlukları gibi bazı dezavantajlar olsa da, yöntem, Flink'in yeteneklerinden yararlanma ve bir JAR dosyasında konuşlandırma açısından avantajlar sunar.

  • 00:35:00 Bu bölümde konuşmacı, Flink'te makine öğrenimi çıkarımını ONNX ile kullanırken akılda tutulması gereken bazı önemli hususlar olduğunu belirtiyor. Yüzlerce megabayt alabilen trafo modelleri gibi büyük modellerle uğraşırken dikkatli bellek yönetimi. Ek olarak, GPU'ların kullanımı gibi toplu optimizasyon ve donanım hızlandırma performansı etkileyebilir. Ön işleme, özel ONNX grafikleriyle yapılabilir, ancak bu, ekstra çalışma gerektirir ve daha önce gösterilen kadar kolay değildir. Konuşmacı, ONNX'in Flink'te gerçek zamanlı makine öğrenimini etkinleştirdiğini ve Python eğitim kodunu Scala üretim kodundan güzel bir şekilde ayırdığını ve bunun veri bilimcileri için bir kazanç olabileceğini vurguluyor. Konuşmacı ayrıca ONNX'in TensorFlow tabanlı modellerle kullanılması ve neden Java API, PyTorch veya TensorFlow yerine ONNX'in seçildiği hakkında soruları ele alıyor.

  • 00:40:00 Bu bölümde konuşmacı, dilden bağımsız olan grafik için çerçeveden bağımsız bir şema olarak ONNX'ten bahsediyor. Konuşmacı, ONNX kullanmanın ilginç özelliklerinden birinin, PyTorch kullanıyorsa ve TensorFlow'a geçmek istiyorsa, ONNX'i iki çerçeve arasında geçiş yapmak için bir "araç" olarak kullanabilmesidir, bu da çerçevenin esnekliğini gösterir. Seyirci, konuşmacının TensorFlow'un Scala projesiyle TensorFlow modellerini deneyip denemediğini sordu ve olumsuz yanıt verdi. Son olarak, konuşmacı dinleyicileri ONNX deposunu ziyaret etmeye, GitHub'da bir sorun oluşturmaya veya özellikle işe alımla ilgili sorular için LinkedIn'de kendisine ulaşmaya davet ediyor.
 

DSS çevrimiçi #4: ONNX ile Uçtan Uca Derin Öğrenme Dağıtımı


DSS çevrimiçi #4: ONNX ile Uçtan Uca Derin Öğrenme Dağıtımı

Bu video, farklı dilleri, çerçeveleri, bağımlılıkları ve performans değişkenliğini yönetme ve ayrıca ekipler arasındaki sürtüşmeler ve özel biçim kilitlenmeleri dahil olmak üzere uçtan uca derin öğrenme dağıtımının zorluklarını tartışır. Açık Sinir Ağı Değişimi (ONNX), derin öğrenme serileştirme için protokol arabelleği tabanlı bir format olarak tanıtıldı. Başlıca derin öğrenme çerçevelerini destekler ve modeli çalıştırmak için bağımsız bir yapı sağlar. ONNX ML, geleneksel makine öğrenimi ön işlemesi için destek sağlayan ONNX spesifikasyonunun bir parçası olarak da tartışılmaktadır. ONNX'in sınırlamaları kabul ediliyor, ancak farklı dil, çerçeve, çalışma zamanı ve sürüm boyutlarında gerçek taşınabilirlik sunan büyük kuruluşların güçlü desteğiyle hızla büyüyen bir proje olarak görülüyor.

  • 00:00:00 Bu bölümde, IBM'de baş mühendis olan Nick Pentreath, Open Neural Network Exchange ile uçtan uca derin öğrenme devreye alımını tanıtıyor. Makine öğrenimi iş akışında, verileri analiz etme, modeller için ön işleme, modeli eğitme, gerçek dünya uygulamalarında dağıtma ve sürdürme ve izleme dahil olmak üzere birçok adım vardır. Pentreath, iş akışının farklı ekipleri ve araçları nasıl kapsadığını ve modele hizmet eden bir altyapıya sahip olmayı nasıl gerekli kıldığını tartışıyor.

  • 00:05:00 Bu bölümde, konuşmacı makine öğrenimi dağıtımı için çok önemli olan üç soruyu tartışıyor: neyi dağıtıyoruz, nereye dağıtıyoruz ve nasıl dağıtıyoruz. Bir makine öğrenimi modelinin konuşlandırılması, dönüşümler, özellik çıkarma ve ön işleme dahil olmak üzere eğitilen modelden önce gelen tüm adımların dahil edilmesini içerir. Herhangi bir farklılık, feci sonuçlara yol açabilecek veri çarpıklığına yol açabileceğinden, canlı ortamda eğitim sırasında kullanılanla aynı ön işleme adımlarının uygulanması zorunludur. Konuşmacı, derin öğrenmenin bile dikkatli bir ön işlemeye ve özellik mühendisliğine ihtiyaç duyduğunu belirtiyor ve ön işlemenin standartlaştırılmasıyla birlikte gelen zorlukların altını çiziyor. Bu zorluklar, tahminler üzerinde ince ancak önemli etkileri olabilecek farklı çerçeveler arasındaki farklı veri düzenlerini ve renk modlarını içerir.

  • 00:10:00 Bu bölümde video, farklı dilleri, çerçeveleri, bağımlılıkları ve performans değişkenliğini yönetme ve aralarında köprü kurma dahil olmak üzere uçtan uca bir derin öğrenme ardışık düzeni devreye almanın yanı sıra ekipler arasındaki sürtüşmeleri ele alıyor , açık kaynak çerçeveleri arasında standardizasyon eksikliği ve tescilli biçim kilitleri. Konteyner tabanlı dağıtım önemli faydalar sağlasa da, yine de bir tür hizmet çerçevesi gerektirir ve standardizasyon sorununu çözmez. Bu nedenle video, modelleri farklı çerçevelerden standartlaştırılmış bir formata dışa aktarmak için açık standartların kullanılmasını önerir; bu, model üreticisi ile model tüketicisi arasındaki endişelerin ayrılmasını sağlar ve dağıtım sorunları veya nerede olacağı konusunda endişelenmeden kendi görevlerine odaklanmalarına olanak tanır. modelinden geldi.

  • 00:15:00 Bu bölümde konuşmacı, derin öğrenme dağıtımında açık kaynak ve açık standartların önemini tartışıyor. Analiz ve görselleştirme için tek bir yığına ve standartlaştırılmış araçlara sahip olmanın faydalarını açıklıyorlar ve açık yönetişimin görünürlük sağlama ve kontrolün yoğunlaşmasını önlemedeki kritik rolünü vurguluyorlar. Konuşmacı daha sonra, derin öğrenmeye odaklanarak makine öğrenimi modellerinin serileştirilmesini tanımlamak için protokol arabelleğine dayalı bir format olan açık sinir ağı değişimini (ONNX) tanıtır. ONNX, PyTorch, Caffe, TensorFlow, Keras, Apple Core ML ve MXNet gibi başlıca derin öğrenme çerçevelerini destekler ve modeli çalıştırmak için bağımsız bir yapı sağlar.

  • 00:20:00 Bu bölümde konuşmacı, ONNX ML'nin (Makine Öğrenimi), diziler ve haritalar gibi ek türlerle birlikte geleneksel makine öğrenimi ön işleme için destek sağlayan ONNX spesifikasyonunun bir parçası olduğunu tartışıyor. ONNX, çeşitli geleneksel makine öğrenimi çerçevelerinin yanı sıra doğrusal modeller, ağaç toplulukları ve gradyan artırma gibi modeller için yazılmış ihracatçılardan oluşan geniş bir topluluk ve ekosistemi kapsar. Tüm bunları temsil etmek için ONNX, model üreticileri ve tüketiciler arasında yer alan bir standart görevi görür. ONNX model hayvanat bahçesi, tamamı ONNX formatlarında temsil edilen görüntü analizi, sınıflandırma, segmentasyon ve doğal dil işleme dahil olmak üzere farklı alanlarda yaygın olarak kullanılan ve standart modeller kümesi içerir. Microsoft'un açık kaynaklı bir projesi olan ONNX çalışma zamanı, hem temel derin öğrenmeyi hem de ONNX ML operatörlerini destekleyen tamamen uyumlu bir çalışma zamanıdır.

  • 00:25:00 Bu bölümde konuşmacı, özellikle görüntü işleme, gelişmiş dizi işleme ve karma kümeleme modelleri gibi bazı eksik özellikler açısından ONNX'in sınırlamalarını tartışıyor. Ek olarak, Spark ML gibi çerçevelerden hibrit ardışık düzenleri dışa aktarma söz konusu olduğunda zorluklar vardır ve bu, biraz özel kod gerektirir. Ancak ONNX, hızla büyüyen ve büyük kuruluşlardan güçlü destek alan aktif bir projedir. Dillerin, çerçevelerin, çalışma zamanlarının ve sürümlerin farklı boyutlarında gerçek taşınabilirlik sunarak derin öğrenme ardışık düzenlerinin açık ve taşınabilir bir şekilde konuşlandırılması için önemli bir sorunu çözer. ONNX açık kaynak ve açık yönetişimdir, dolayısıyla herkes katılabilir.
DSS online #4 : End-to-End Deep Learning Deployment with ONNX
DSS online #4 : End-to-End Deep Learning Deployment with ONNX
  • 2020.10.29
  • www.youtube.com
End-to-End Deep Learning Deployment with ONNXA deep learning model is often viewed as fully self-contained, freeing practitioners from the burden of data pro...
 

ONNX ile çevrimiçi alışveriş deneyimini iyileştirme



ONNX ile çevrimiçi alışveriş deneyimini iyileştirme

Bu video, e-ticaret şirketlerinin çevrimiçi perakende alanında kazanma ve kaybetmeyi birbirinden ayıran etkili içgörüler oluşturmak için yapay zekayı nasıl kullandığını tartışıyor. Konuşmacı, toplam 8 milyardan fazla inceleme sağlayan en büyük marka ve perakendeci ağı olan Bazaar Voice'a ve incelemeleri paylaşmak için ürün eşleştirmeyi nasıl kullandıklarına bir örnek sunuyor. Konuşmacı daha sonra Python'da bir makine öğrenimi modelini nasıl geliştirdiklerini, onu ONNX formatına nasıl aktardıklarını ve bir ONNX çalışma zamanında çıkarım yapmak için bir düğüm ortamı kullanarak sunucusuz bir işleve dağıttıklarını açıklar. Bu çözüm, düşük maliyetleri korurken, binlerce müşteri kataloğunda yüz milyonlarca ürünün yüksek hızda eşleştirilmesine olanak tanıyarak önemli ölçüde maliyet tasarrufu ve markalar ve perakendeciler için milyonlarca ekstra inceleme sağlar. Konuşmacı, izleyicileri ONNX'in yeteneklerini kullanmanın daha fazla yolunu keşfetmeye ve gelecekteki teknolojik gelişmeler için kullanım durumlarını paylaşmaya davet ederek bitiriyor.

  • 00:00:00 Bu bölümde, ticaretin dijitalleşmesinin, e-ticaret şirketlerinin topladıkları veri ölçeğine sahip olmalarına ve çevrimiçi perakende alanında kazanma ile kaybetme arasındaki farkı belirleyen etkili içgörüler oluşturmak için yapay zekayı kullanmalarına yol açtığını öğreniyoruz. Bir örnek, toplam 8 milyardan fazla inceleme sağlayan dünyanın en büyük marka ve perakendeci ağı olan Bazaar Voice için ayda bir milyar müşteri ve ürün eşleştirmenin yorum paylaşmayı nasıl desteklediğidir. Oluşturulan makine öğrenimi modelinin temel işlevi olan ürün eşleştirme, benzersiz tanımlayıcılar karşılaştırılarak gerçekleştirilir, ancak her ay bir milyondan fazla ürün eşleştirmesi manuel olarak gerçekleştirilir. Çözüm, Python ile oluşturulmuş bir scikit-learn modelidir ve performansı korurken en hafif, uygun maliyetli çözümü uygulayarak ONNX formatına aktarılmıştır.

  • 00:05:00 Bu bölümde konuşmacı, çevrimiçi bir alışveriş deneyimi için makine öğrenimi modellerini uygulamaya yönelik çeşitli seçenekleri tartışıyor ve düşük maliyetli ve kolay uygulanabilmeleri nedeniyle sunucusuz işlevlerin en iyi seçenek olduğu sonucuna varıyor. Daha sonra Python'da bir modeli nasıl geliştirdiklerini, onu ONNX formatına nasıl aktardıklarını ve bir ONNX çalışma zamanında çıkarım yapmak için bir düğüm ortamı kullanarak sunucusuz bir işleve dağıttıklarını açıklarlar. Bu çözümün modülerliği, herhangi bir hizmete kolayca takılmasına olanak tanıyor ve kullanılan bellek ve yürütme süresi gibi ölçümleri kullanarak, maliyetleri düşük tutarken en iyi performansı sağlamak için en uygun bellek boyutunu bulabildiler. Dağıtım boyutu sınırları ve zaman aşımı sınırları dahilinde çalışmak dikkate alınırken, sunucusuz işlevlerle birlikte ONNX ve ONNX çalışma zamanının gücü, binlerce müşteri kataloğunda yüz milyonlarca ürünün yüksek hızda eşleştirilmesine izin vererek önemli ölçüde maliyet tasarrufu ve 15 milyon markalar ve perakendeciler için ekstra incelemeler.

  • 00:10:00 Bu bölümde konuşmacı, izleyicileri ONNX'in yeteneklerini kullanmanın daha fazla yolunu keşfetmeye ve kullanım durumlarını paylaşmaya davet ederek videoyu sonlandırır. Bu alanda aktif olarak çalışan biri olarak, bu teknolojilerin bizi gelecekte nereye götürebileceği konuşmacının ilgisini çekiyor ve buna mecbur kalıyor.
 

Jan-Benedikt Jagusch Christian Bourjau: ONNX ile Makine Öğrenimi Uygulamalarını Hızlı ve Basit Hale Getiriyor



Jan-Benedikt Jagusch Christian Bourjau: ONNX ile Makine Öğrenimi Uygulamalarını Hızlı ve Basit Hale Getiriyor

Makine öğrenimi ve konuşlandırma hakkındaki bu videoda konuşmacılar, modelleri üretime sokmanın zorluklarını, özellikle de modelleri temizleme ve devreye almanın zorluklarını tartışıyor. Makine öğrenimi modellerini dışa aktarmak için evrensel bir dosya formatı olan ONNX'i tanıtıyorlar ve bunun, eğitim ile çıkarımı birbirinden ayırarak konuşlandırmayı daha hızlı ve daha verimli hale getirmeye nasıl yardımcı olabileceğini açıklıyorlar. Bir makine öğrenimi işlem hattının ONNX formatına nasıl dönüştürüleceğini açıklayan, scikit-learn kullanarak canlı bir demo sağlıyorlar. Ayrıca, makine öğrenimi modellerini dağıtmak için Docker kapsayıcılarının sınırlamalarını tartışıyorlar ve bunun yerine ONNX kullanmanın faydalarını vurguluyorlar. Ek güvenlik için şifreleme modelleri konusuna değiniyorlar ve bazı şifreli hata mesajlarıyla hala genç bir ekosistem olan ONNX'in kullanılabilirlik sorununu ele alıyorlar.

  • 00:00:00 Videonun bu bölümünde sunum yapan kişiler, ONNX kullanarak model eğitimini çıkarımdan ayırmanın önemini tartışıyor. Sunucular, makine öğrenimiyle başlayan şirketlerin %55'inin modellerini üretime sokmada başarısız olduğunu belirtiyor ve modelleri üretime geçirerek iş süreçlerini otomatikleştirmenin değerin büyük çoğunluğunun yattığını savunuyor. Bununla birlikte, modelleri dağıtmanın başlangıçta göründüğünden daha karmaşık olduğunu da belirtiyorlar, bu nedenle ONNX'in bu zorluğun üstesinden gelmeye nasıl yardımcı olabileceğini tartışacaklar. Ayrıca, bir makine öğrenimi projesinin tipik olarak nasıl başladığı, geliştiği ve ardından devreye alma gereksinimleriyle nasıl çatıştığı sürecini de gözden geçirirler.

  • 00:05:00 Bu bölümde, konuşmacılar makine öğrenimi modellerini üretime geçirmenin zorluklarını tartışıyor ve özellikle modeli temizleme ve devreye almanın zorluklarına odaklanıyor. Modeli aktarmak için turşu gibi bitmemiş bir paketi kullanırken ortaya çıkan sorunları ve modeli üretimde başarılı bir şekilde yüklemek için doğru ortamların ve bağımlılıkların nasıl kurulması gerektiğini keşfederler. Ayrıca, modellerin üretimde kullanım için çok yavaş olması sorununu da ele alıyorlar, bu da modelde değişikliklere ve optimizasyonlara yol açıyor. Son olarak, dağıtım için herhangi bir çalışma zamanını kullanmayı kolaylaştıran modeli dışa aktarmak için evrensel bir dosya formatına olan ihtiyacı tartışıyorlar.

  • 00:10:00 Bu bölümde konuşmacılar, dağıtım için kullanılan araçları serbest bırakmak amacıyla bir makine öğrenimi modelini ONNX gibi evrensel bir dosya biçimine dışa aktarmak için eğitim araçlarını kullanarak eğitimi tahmin süresinden ayırma kavramını tartışıyor . ONNX'in "özellik mühendisliğiniz dahil tüm modelinizi tanımlamanın ve onu ikili bir biçimde depolamanın standartlaştırılmış yolu" olduğunu açıklıyorlar. Ayrıca, ONNX'in yalnızca sinir ağları için değil, farklı makine öğrenimi modellerine sahip olanlar için iyi bir seçenek olduğunu belirtiyorlar. Bununla birlikte, ONNX'i kullanmak için, bir makine öğrenimi modelinin, operatörler olan düğümler ve grafik boyunca akan veriler olan kenarlar içeren bir hesaplama grafiği olarak tanımlanması gerektiğini ve ONNX'in tip bilgisi ve şekil ile güçlü bir şekilde yazıldığını vurgularlar.

  • 00:15:00 Bu bölümde konuşmacılar, formatla uyumluluğu sağlamak için kullanılması gereken bir dizi işleci tanımlayan ONNX'in özelliklerini tartışıyorlar. Bu konuşma sırasında, lineer regresörler ve gerçek topluluk regresörleri gibi daha karmaşık olanlar da dahil olmak üzere 175 operatör vardı. ONNX ayrıca her bir işleci depolamak için gereken verileri belirterek tüm dosyayı başka hiçbir bağımlılığa ihtiyaç duymadan bağımsız hale getirir. Konuşmacılar, yönlendirilmiş bir asiklik grafikte temsil edilebilen her şeyin, yalnızca makine öğrenimi modellerine değil, ONNX'e dönüştürülebileceğini vurguluyor. Ek olarak, her adım kendi yönlendirilmiş döngüsel olmayan grafiği olarak temsil edilebildiği sürece, boru hattının tamamı ONNX'e dönüştürülebilir.

  • 00:20:00 Bu bölümde konuşmacılar, oniks işleçlerinin bir grafiği olarak kolayca tanımlanabilecek numpy işlemlerini kullanarak basit bir imputer ve regresör oluşturmayı gösteriyor. scikit-learn grafiğindeki her düğümü bir grafiğin kendisi ile değiştirerek, scikit-learn bir onix formatına dönüştürülebilir. PyTorch, TensorFlow, Light GBM ve XGBoost gibi yerleşik makine öğrenimi çerçevelerinde halihazırda dönüştürücüler bulunurken, özel tahmin ediciler ve dönüştürücüler için özel dönüştürücüler yazılmalıdır. Bununla birlikte, öğrenme eğrisi diktir ancak uygulanabilirdir ve özel kodun bir desteye sığması çok önemlidir. Konuşmacılar ayrıca eğitim verilerini ve daha sonra bir onix formatına dönüştürülen scikit-learn'den bir işlem hattını kullanarak canlı bir demo sağlar.

  • 00:25:00 Bu bölümde, Jan-Benedikt Jagusch ve Christian Bourjau, ONNX'in güçlü bir şekilde yazıldığını ve sağlanan verilerden ilk bilgileri gerektirdiğini açıklıyor. Bu süreci basitleştirmek için, panda veri tiplerini ONNX veri tiplerine eşleyerek türleri bir pandas veri çerçevesinden kolayca dönüştürürler. ONNX modeli, ardışık düzenin tahmin mantığından çıkarılarak tamamen bağımsız hale gelir. Veri mühendisliği ekibinin bunu yalnızca bir dosyaya dökmesi ve verileri analiz etmek için ONNX çalışma zamanını kullanması gerekir; bu, veri modelinin TensorFlow, Python veya başka bir yerden serileştirilmesinden bağımsız olarak tek bağımlılıktır. ONNX çalışma zamanı, tahmin hızını on katına kadar artıran Python bağlamaları sağlar. Scikit-learn'e benzer şekilde yalnızca 170 milisaniye alarak çevrimiçi ortamlarda gerekli olduğundan tek satırlı tahmin hızı da bir önceliktir.

  • 00:30:00 Bu bölümde, konuşmacılar eğitim ortamını dağıtım ortamından ayırmak için onyx kullanmanın faydalarını tartışıyor. Modelleri ONNX'in evrensel dosya biçimine aktararak kullanıcıların, gerçek dünya dağıtımı için gerekli performans özelliklerini sağlayan bir çalışma zamanı kullanarak modellerini yorumlayabileceklerini açıklıyorlar. Konuşmacılar ayrıca, ölçeklenebilirlik ve esneklik açısından sınırlamaları vurgulayarak Docker kapsayıcılarının kullanılmasıyla ilgili bir soruyu da ele alıyor. Dağıtımı iyileştirmenin yanı sıra modelleri arşivleme potansiyeliyle hem performans hem de esneklik sağlama yeteneği açısından onyx'e bakmanızı tavsiye ediyorlar.

  • 00:35:00 Bu bölümde, konuşmacılar makine öğrenimi modellerini dağıtmak için Docker kullanmanın sınırlamalarını tartışıyor ve modelleri ONNX'e seri hale getirmenin faydalarını vurguluyor. Docker, bir REST API sağlamak için çalışabilir ve belirli durumlarda, üretilen eser birçok katman içerir ve bu da modelin matematiksel formülasyonunun yüklenmesini zorlaştırır. Öte yandan, modeli ONNX'e seri hale getirmek, modelin insan tarafından okunabilen ve yüklenmesi kolay saf bir özünü sağlar. Konuşmacılar, ONNX'in birçok faydası olsa da, tüm kullanım durumları için mükemmel bir çözüm olmadığı ve özel tahmin edicileri ve dönüştürücüleri dönüştürmek için biraz ek yük gerektirdiği konusunda uyarıyorlar. Ek olarak, ekosistem nispeten yenidir ve kullanıcıların sorunları çözmek veya GitHub sorunlarını okumak için zaman harcaması gerekebilir. Son olarak, konuşmacılar, varsayılan ONNX çalışma zamanı ile teknik olarak mümkün olan ONNX modellerini GPU'lara dağıtma olasılığından kısaca bahseder.

  • 00:40:00 Bu bölümde konuşmacılar, ONNX modellerini istenmeyen kullanıma veya tersine mühendisliğe karşı korumak için şifreleme olasılığını tartışıyor. Modelden katsayıları okumak mümkünken, karmaşıksa ONNX'in operatör ve boru hattı bilgilerini korumaması nedeniyle zorlaştığından bahsediyorlar. ONNX, bir dereceye kadar gizleme yoluyla güvenlik sağlar, ancak şifrelenmez. Ancak, gizleme ve daha fazla güvenlik için dosyayı makine koduna kadar derlemenin mümkün olduğunu belirtiyorlar. Konuşmacılar ayrıca veri tabanına G/Ç içeren ön işleme adımlarını koyma konusunu da ele alıyorlar; Son olarak, hata mesajları şifreli olabileceğinden Onyx'in kullanılabilirlik sorununu tartışıyorlar, ancak genç yaşı ve kurumsal desteği göz önüne alındığında ekosistemin gelişeceği konusunda iyimserler.
Jan-Benedikt Jagusch Christian Bourjau: Making Machine Learning Applications Fast and Simple with...
Jan-Benedikt Jagusch Christian Bourjau: Making Machine Learning Applications Fast and Simple with...
  • 2022.05.12
  • www.youtube.com
Speaker:: Jan-Benedikt Jagusch Christian BourjauTrack: General: ProductionTaking trained machine learning models from inside a Jupyter notebook and deploying...
 

Microsoft'un Vinitra Swamy ve Pranav Sharma ile ONNX ve ONNX Çalışma Zamanı



Microsoft'un Vinitra Swamy ve Pranav Sharma ile ONNX ve ONNX Çalışma Zamanı

Video, serileştirme ve sürüm oluşturmada modelleri birlikte çalışabilir ve verimli hale getirmek için oluşturulan Açık Sinir Ağı Değişimi (ONNX) formatını tartışıyor. ONNX, bir ara temsil katmanından, operatör özelliklerinden oluşur ve farklı veri türlerini destekler. C++ ve birleştiricide uygulanan ONNX Çalışma Zamanı, geriye dönük uyumluluk sunar ve yürütme sağlayıcıları, özel işleçler ve grafik iyileştiriciler aracılığıyla genişletilebilir. API, platformlar, programlama dilleri ve yürütme sağlayıcıları için destek sunar. Kullanıcılar, oturumlar oluşturabilir, modelleri optimize edebilir ve bunları gelecekte kullanmak üzere seri hale getirebilir. Hoparlörler, ONNX Runtime'ın Android cihazlarda çalışabilme özelliği ile çok yönlülüğünün ve verimliliğinin bir gösterimini sağlar.

  • 00:00:00 Bu bölümde, ONNX mühendislik ekibinden Venetra, yapay zeka modelleri için birlikte çalışabilir bir standart olan Açık Sinir Ağı Değişimi ONNX'i tanıtıyor. Microsoft'un makine öğrenimini HoloLens'ten Xbox'a ve Skype'a kadar ürün paketinin hemen hemen her yönüne entegre ettiğini ve bunun da geniş ölçekte çeşitli dağıtım zorluklarına yol açtığını açıklıyor. ONNX, farklı çerçeveler ve dağıtım hedefleri için model dağıtım sürecini standartlaştırarak verimli çıkarımı optimize etmek için oluşturuldu. Amaç, tek bir standart uygulayarak birçok çerçeveden modelleri desteklemek ve ister veri bilimcileri, ister donanım sağlayıcıları, hizmet yazarları veya makine öğrenimi mühendisleri olsun tüm kullanıcılar için tutarlı bir deneyim sağlamaktır.

  • 00:05:00 Bu bölümde Vinitra Swamy ve Pranav Sharma, diğerlerinin yanı sıra Microsoft, Facebook, Amazon, NVIDIA ve Intel'i içeren kurucu ortaklardan oluşan bir konsorsiyum olan ONNX'i tartışıyor. ONNX, her çerçevenin sahip olduğu farklı operatör kümelerine rağmen operatörleri standart bir şekilde tanımlayan bir ara temsil katmanı ve tam bir operatör özelliğinden oluşur. Modelleri ONNX'e dönüştürme kodu uzun değildir ve dönüştürme, çıkarım ve birlikte çalışabilirlik açısından kullanıcılara çok şey kazandırabilir. Ayrıca ONNX, hem derin öğrenme hem de makine öğrenimi modelleri için birlikte çalışabilirliği sağlayan tasarım ilkelerine sahiptir. Kullanıcılar, ONNX model hayvanat bahçesine, model oluşturma hizmetlerine veya dönüştürücülere giderek ONNX'i kullanmaya başlayabilir.

  • 00:10:00 Bu bölümde, verimli serileştirme ve sürüm oluşturmayı desteklerken onu birlikte çalışabilir ve geriye dönük uyumlu hale getirmek için oluşturulmuş bir model formatı olan ONNX'in bileşenleri ve tasarımı ele alınmaktadır. Biçim, bir modelden, düğümleri olan bir hesaplama grafiğinden ve bir operatör özelliğinden oluşur. Desteklenen veri türleri arasında standart tensör türleri ve tensör olmayan iki tür, diziler ve haritalar bulunur. Operatör spesifikasyonları girişleri, çıkışları, kısıtlamaları ve örnekleri içerir. Relu operatörü için bir operatör spesifikasyonu örneği verilmiştir.

  • 00:15:00 Videonun bu bölümünde Vinitra Swamy ve Pranav Sharma, Açık Sinir Ağı Değişimi (ONNX) formatında desteklenen farklı sürümleri ve operatörleri tartışıyor. ONNX'in, farklı operatörler arasında birlikte çalışabilen 156'dan fazla derin öğrenme spesifikasyonuna ve 18 geleneksel makine öğrenimi operasyonuna sahip olduğunu açıklıyorlar. Ek olarak, kullanıcılar ONNX çerçevesini kullanarak modelleri için özel operasyonlar oluşturabilirler. Ayrıca, ara gösterim katmanı, ofsetler ve tek tek operatörler olmak üzere üç farklı seviyede yapılan sürüm oluşturmanın önemini vurguluyorlar. Son olarak, ONNX için açık kaynaklı ve yüksek performanslı bir çıkarım motoru olan ONNX Runtime'ı tartışıyorlar. Platformlar arasıdır ve geriye dönük uyumlu olacak şekilde tasarlanmıştır, bu da onu üretim ortamlarında konuşlandırmaya uygun hale getirir.

  • 00:20:00 Bu bölümde, ONNX Runtime mimarisine ve içinde bir modelin nasıl çalıştırıldığına odaklanılmaktadır. Geriye dönük uyumluluk ve performans, C++'da ve bazı kısımlarında birleştiricide uygulanan ONNX Çalışma Zamanı için temel kaygılardı. ONNX Çalışma Zamanı, "yürütme sağlayıcıları" adı verilen bir şey kullanarak donanım hızlandırıcılarını destekler. Bölümleme algoritması, modelin hibrit bir yürütme aşamasında çalışmasını sağlar ve bağımsız yürütme sağlayıcıları, daha iyi performans için alt grafikleri daha da optimize edebilir. Son olarak, ONNX Çalışma Zamanı, modeli yürütmek için grafikteki tüm düğümlerden geçen bir yorumlayıcı görevi görür.

  • 00:25:00 Bu bölümde, konuşmacılar sıralı ve paralel olan ONNX ve ONNX Runtime'daki yürütme modlarını tartışırlar. Kullanıcılar, her yürütme modu için yapılandırmak istedikleri iş parçacığı sayısını kontrol edebilir ve sonuçlar API aracılığıyla gönderilir. Konuşmacılar, farklı cihazların aynı hafızayı paylaşmayabileceğini not eder, bu nedenle yapılan optimizasyonlara dayalı olarak hafıza kopyalama düğümleri eklenir. Ayrıca, kullanıcıların grafiğin çalıştırılması gereken yürütme sağlayıcılarının öncelikli bir listesini belirtmesi gereken grafik bölümleme sürecinden de bahsederler. Bununla birlikte, bir sonraki sürümde, ONNX'in grafiği yerleştirmenin en iyi yolunu ve verimli bir şekilde nasıl çalıştırılacağını anlayacağı akıllı bölümleme adı verilen yeni bir aşama olacak. Konuşmacılar ayrıca, donanım hızlandırıcıların üzerinde yazılım soyutlamaları olan yürütme sağlayıcılarına da değiniyor. İki tür yürütme sağlayıcısı, çekirdek tabanlı ve çalışma zamanı tabanlıdır ve ikincisi, yürütme sağlayıcının bizim için grafiğin bazı kısımlarını çalıştırdığı bir kara kutudur.

  • 00:30:00 Bu bölümde konuşmacılar, yürütme sağlayıcıları, özel işleçler ve grafik iyileştiriciler gibi seçenekler aracılığıyla genişletilebilirliğini vurgulayarak ONNX Runtime'ın tasarım ilkelerini tartışıyor. Ayrıca Tensor RT, Direct ML ve OpenVINO dahil olmak üzere desteklenen platformlar, programlama dilleri ve yürütme sağlayıcılarından oluşan bir matris sağlarlar. Konuşmacılar, bir oturumun üst düzey yapılarını ve çalıştırma işlevini çağırmadan önce oturum nesnesini oluşturmanın iş parçacığı açısından güvenli yolunu açıklar. Ayrıca, bir modeli optimize etmek için gereken sürenin, modelin boyutuna ve optimizasyon fırsatlarına nasıl bağlı olduğunu tartışırlar.

  • 00:35:00 Bu bölümde, konuşmacılar oturumların oluşturulmasını ve çalıştırma seçeneklerinin ve oturum seçeneklerinin kullanımını, optimize edilmiş modeli ileride kullanmak üzere seri hale getirme yeteneği ile tartışırlar. Ayrıca, C# kullanmayı tercih etmeyenler için Python kullanma seçeneğiyle birlikte özel işleçleri kaydetme sürecini de açıklarlar. ONNX Çalışma Zamanı 1.0 sürümü piyasaya sürüldü ve API'lerin bundan sonra bozulmaması garanti edildi.
    Uyumluluk CentOS 7.6'ya geri dönüyor. Optimum performans için modelleri dönüştürmek ve ayarlamak için açık kaynaklı bir araç olan ONNX Go Live Tool da tartışılmaktadır. Bölüm, Office'in eksik belirleyici modelinde 14 kat performans kazancı ve bilişsel hizmetlerde kullanılan optik karakter tanıma modelinde 3 kat performans kazancı dahil olmak üzere ONNX kullanan Microsoft hizmetlerinin örnekleriyle sona eriyor.

  • 00:40:00 Bu bölümde konuşmacılar, önizleme modunda olan ve ONNX runtime'ın Android cihazlarda çalıştırılmasına izin veren ONNX runtime API'sini tartışıyor. Ayrıca, şu anda keşif amaçlı olan ve ONNX çalışma zamanının önceden oluşturulmuş modelleri ayarlamak için kullanılıp kullanılamayacağını görmeyi amaçlayan eğitim desteğinden de bahsediyorlar. Konuşmacılar daha sonra, ONNX çalışma zamanının bir YOLOv3 nesne algılama modelinde kullanılmasının bir tanıtımını yaparak, ONNX çalışma zamanının çok yönlü, verimli ve iyi performans gerektiren veya farklı çerçevelerde bir modeli desteklemesi gereken durumlar için kullanışlı olduğunu gösterir.

  • 00:45:00 Videonun bu bölümünde sunum yapan kişiler, görüntüleri ve ilgili sınıflarını büyük ve karmaşık bir modelle tanımlayarak ONNX Runtime'ı gösteriyor. Ayrıca, kullanıcıların Jupyter Notebook'ta farklı çerçevelerden modeller yüklemesine ve dönüştürmesine olanak tanıyan Onnx Ekosistem Dönüştürücü hakkında hızlı bir demo sergiliyorlar. Apple'ın makine öğrenimi çerçevesi olan CoreML'den bir belge sınıflandırma modelini ONNX'e dönüştürürler ve doğruluğunu onaylarlar. Bir modeli ONNX'e dönüştürmenin tek seferlik bir maliyet olduğunu ve verimli bir süreç olduğunu belirtiyorlar.

  • 00:50:00 Bu bölümde konuşmacılar, ONNX ve ONNX Çalışma Zamanı kullanmanın faydaları, farklı çerçevelerden ONNX'e dönüştürmenin çeşitli yolları ve 26 platformlarında ONNX'in artan şekilde benimsenmesi dahil olmak üzere videoda ele aldıklarını özetler. şirketler. İzleyicilerine dinledikleri için teşekkür ederler ve Soru-Cevap bölümüyle devam etmekten duydukları heyecanı ifade ederler.
 

ONNX-TensorRT kullanan Niceleme Farkında eğitimli modellerin INT8 Çıkarımı




ONNX-TensorRT kullanan Niceleme Farkında eğitimli modellerin INT8 Çıkarımı

NVIDIA'da derin öğrenme yazılımı mühendisi olan Dheeraj Peri, nicelemenin temellerini ve TensorRT'nin çeşitli füzyonlar yoluyla nicelenmiş ağları nasıl desteklediğini açıklıyor. TensorFlow 2.0 çerçevesi kullanılarak eğitilen modellere ve eğitim sonrası niceleme (PTQ) ve nicelemeye duyarlı eğitimin (QAT) nasıl gerçekleştirileceğine odaklanırlar. ONNX-TensorRT ile Nvidia TF2 niceleme araç takımı kullanılarak eğitilmiş bir modelin devreye alınma süreci açıklanmakta ve çeşitli ResNet modelleri için doğruluk ve gecikme sonuçları sunulmaktadır. Genel olarak, ONNX-TensorRT aracılığıyla TensorFlow'dan TensorRT dağıtımına uçtan uca QAT iş akışı gösterilmiştir.

  • 00:00:00 Bu bölümde, NVIDIA'da derin öğrenme yazılım mühendisi olan Dheeraj, nicelemenin temellerini ve TensorRT'nin çeşitli füzyonlar yoluyla nicelenmiş ağları nasıl desteklediğini tartışıyor. Nicelemenin, sürekli değerleri doğrusal veya doğrusal olmayan ölçeklendirme teknikleri kullanarak ayrı bir değerler kümesine dönüştürme işlemi olduğunu açıklıyor. TensorFlow 2.0 çerçevesi kullanılarak eğitilen modellere ve eğitim sonrası niceleme (PTQ) ile nicelemeye duyarlı eğitimin (QAT) nasıl gerçekleştirileceğine odaklanırlar. Dhiraj, NVIDIA'nın niceleme araç takımı ile düğümlerin evrişim katmanlarına farklı şekilde yerleştirildiği TF mod araç takımı arasındaki farkları da vurgular.

  • 00:05:00 Bu bölümde, ONNX-TensorRT ile Nvidia TF2 nicemleme araç takımı kullanılarak eğitilmiş bir modelin devreye alınma süreci açıklanmaktadır. İşlem, önceden eğitilmiş TensorFlow 2.0 modelinin Nvidia araç kitiyle nicelleştirilmesini, niceleme sürecini simüle etmek için az sayıda dönem için ince ayar yapılmasını ve ardından modelin bir ONNX formatına dönüştürülmesini içerir. ONNX grafiği daha sonra TensorRT API kullanılarak TensorRT motoru oluşturmak için kullanılır. Çeşitli ResNet modelleri için doğruluk ve gecikme sonuçları sunulmuş ve niceleme farkında eğitimli modellerin (QAT), çıkarım sırasında eğitim sonrası niceleme (PTQ) modellerinden daha iyi doğruluk gösterdiği gözlemlenmiştir. QAT modelleri, PTQ modellerine kıyasla benzer bir gecikme gösterir ancak bu, QDQ düğümlerinin yerleşimine ve bunların füzyonlarına bağlıdır. Genel olarak, ONNX-TensorRT aracılığıyla TensorFlow'dan TensorRT dağıtımına uçtan uca QAT iş akışı gösterilmiştir.
INT8 Inference of Quantization-Aware trained models using ONNX-TensorRT
INT8 Inference of Quantization-Aware trained models using ONNX-TensorRT
  • 2022.07.14
  • www.youtube.com
Accelerating Deep Neural Networks (DNN) inference is an important step in realizing latencycritical deployment of real-world applications such as image class...