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

 

Azure İşlevleri ve ONNX Çalışma Zamanı ile Makine Öğrenimi Modellerini Dağıtın



Azure İşlevleri ve ONNX Çalışma Zamanı ile Makine Öğrenimi Modellerini Dağıtın

Video, VS Code'da ONNX Çalışma Zamanı ve Azure İşlevlerini kullanarak bir makine öğrenimi modelinin nasıl dağıtılacağını gösterir. Süreç, bir Azure İşlev projesi oluşturmayı, skor betiğiyle kodu güncellemeyi, modeli model yolundan yüklemeyi, ONNX Çalışma Zamanı ile bir çıkarım oturumu oluşturmayı ve çıktıyı döndürmeyi içerir. Video, işlevin Azure'a nasıl dağıtılacağını ve orada nasıl test edileceğini de gösterir. Bu yöntem, Azure İşlevleri ve ONNX çalışma zamanı aracılığıyla modellerin verimli bir şekilde dağıtılmasını sağlayarak sonuçlara kolay erişim sağlar.

  • 00:00:00 Bu bölümde video, VS Code'da ONNX Runtime ve Azure Functions kullanılarak bir makine öğrenimi modelinin nasıl dağıtılacağını gösterir. Süreç, Python ve HTTP tetikleyici ile bir Azure İşlevi projesi oluşturmayı, skor betiğiyle kodu güncellemeyi, görüntüyü yeniden boyutlandırmayı ve yeniden şekillendirmeyi ve ön işlemeyi, modeli model yolundan yüklemeyi, ONNX Çalışma Zamanı ile bir çıkarım oturumu oluşturmayı ve çıktıyı döndürmek. Video, kodun işlevselliğini doğruladıktan sonra, işlevin Azure'a nasıl dağıtılacağını ve orada test edileceğini gösterir.

  • 00:05:00 Bu bölümde konuşmacı, işlev URL'sini alıp teste yapıştırarak dağıtılan işlevin nasıl test edileceğini gösterir. Konuşmacı, dağıtılan işlevin Azure İşlevleri ve ONNX çalışma zamanı aracılığıyla kolayca sonuç almak için nasıl kullanılabileceğini göstererek modellerin verimli bir şekilde dağıtılmasını sağlar.
 

ONNX ile Masaüstünde Dağıtım



ONNX ile Masaüstünde Dağıtım

"ONNX ile Masaüstüne Dağıtım" adlı videoda Alexander Zhang, masaüstüne dağıtımın zorluklarını ve ONNX tarafından sunulan çözümleri tartışıyor. GPU veya işletim sistemi üzerindeki sistem kısıtlamaları üzerinde daha az kontrol ve ayrıca masaüstü GPU'larında önemli çeşitlilik olduğundan, masaüstü bilgisayarları desteklemenin zorlukları vardır. Bu zorlukların üstesinden gelmek için Alexander, Topaz labs'ın desteklediği donanım satıcılarının her biri için farklı çıkarım kitaplıklarına güvenir. ONNX, tüm bu kitaplıklara aynı modeli belirtmek için kullanılır ve her modelde manuel çalışmadan tasarruf ederken farklı donanımlarda nispeten tutarlı sonuçlar sağlar. Ancak ONNX dönüştürmeleri, geliştiricilerin test dönüştürmeleri gerçekleştirmesini ve açıkça en son ONNX ofsetlerini kullanmasını gerektiren belirsizlik, tutarsızlık ve kalite tutarsızlıkları gibi çeşitli sorunlar yaratabilir. Gruplama yoluyla iş hacmini en üst düzeye çıkarmak ve potansiyel olarak birden fazla cihaz ve kitaplıkta paralel olarak çalıştırmak için görüntüleri bloklara bölerler ve VRAM'e göre uygun bir boyut seçerler ve ardından blokları çıkarım yoluyla çalıştırırlar.

  • 00:00:00 Bu bölümde, Alexander Zhang masaüstüne kurulumun zorluklarını ve ONNX tarafından sunulan çözümleri tartışıyor. Performans beklentilerini karşılarken ve gelişmelere ayak uydururken mevcut iş akışlarına uyum sağlamak, mevcut en yeni ve en kaliteli görüntü modellerini sunmayı gerektirir. GPU veya işletim sistemi üzerindeki sistem kısıtlamaları üzerinde daha az kontrol ve ayrıca masaüstü GPU'larında önemli çeşitlilik olduğundan, masaüstü bilgisayarları desteklemenin zorlukları vardır. Bu zorlukların üstesinden gelmek için Alexander, Topaz labs'ın desteklediği donanım satıcılarının her biri için farklı çıkarım kitaplıklarına güvenir. ONNX, tüm bu kitaplıklara aynı modeli belirtmek için kullanılır ve her modelde manuel çalışmadan tasarruf ederken farklı donanımlarda nispeten tutarlı sonuçlar sağlar. Ancak ONNX dönüştürmeleri, geliştiricilerin test dönüştürmeleri gerçekleştirmesini ve açıkça en son ONNX ofsetlerini kullanmasını gerektiren belirsizlik, tutarsızlık ve kalite tutarsızlıkları gibi çeşitli sorunlar yaratabilir.

  • 00:05:00 Bu bölümde konuşmacı, birçok dönüştürmeyi mevcut kitaplıkları veya paketleyicileri kullanmak yerine kendilerinin gerçekleştirmesinin bir nedeninin performans olduğunu açıklıyor. Ayrıca, istenirse her model için modele özel kod yazmak zorunda kalmadan kendi modellerini ve performans ihtiyaçlarını optimize etme esnekliğinin önemini vurguluyorlar. Gruplama yoluyla iş hacmini en üst düzeye çıkarmak ve potansiyel olarak birden fazla cihaz ve kitaplıkta paralel olarak çalıştırmak için görüntüleri bloklara bölerler ve VRAM'e göre uygun bir boyut seçerler ve ardından blokları çıkarım yoluyla çalıştırırlar. Ancak, yeni model mimarilerin tüm kitaplıklarda iyi çalışmasını sağlamada devam eden zorluklar olduğu sonucuna varıyorlar, ancak stratejilerinin bu zorlukların üstesinden geleceği ve tutarlı görüntü kalitesi iyileştirmeleri sağlayacağı konusunda umutlu olmaya devam ediyorlar.
 

Flink'te ONNX modellerini dağıtma - Isaac Mckillen-Godfried



Flink'te ONNX modellerini dağıtma - Isaac Mckillen-Godfried

Isaac McKillen-Godfried, etkili kullanım için araştırma ortamlarındaki son teknoloji makine öğrenimi modellerini üretime dahil etmenin zorluklarını tartışıyor. Söyleşinin amacı, modellerin araştırma ortamlarından üretime taşınmasını kolaylaştırmak ve son teknoloji modellerin farklı platformlarda yer almasını sağlamak. ONNX formatının avantajlarını ve derin öğrenme modellerini Java'ya entegre etmek için farklı seçenekleri açıklıyor. Ayrıca, Java'da yazılmış bir Python yorumlayıcısı olan Jep kullanılarak Flink'te ONNX modellerinin konuşlandırılmasından bahsediyor ve verilerin Flink Twitter bağlayıcısından tüketilmesine ve ardından İngilizce olmayan tweet'lerin filtrelenmesine izin veren açık kaynaklı bir projeyi açıklıyor. Konuşma ayrıca, Flink üzerinde ONNX modellerini dağıtmanın mevcut yalnızca CPU uygulamasını ve gelecekteki GPU veya hibrit uygulama potansiyelini vurgulamaktadır.

  • 00:00:00 Videonun bu bölümünde konuşmacı, etkili kullanım için araştırma ortamlarındaki son teknoloji makine öğrenimi modellerini üretime dahil etmenin zorluklarını tartışıyor. Popüler çerçevelerin çoğunun Java ve Scala'da yazıldığından, kodun ve makalelerin çoğunun Python'da yazıldığından bahseder. Söyleşinin amacı, modellerin araştırma ortamlarından üretime taşınmasını kolaylaştırmak ve son teknoloji modellerin farklı platformlarda yer almasını sağlamak. Konuşmacı ayrıca Flink'teki zayıf Python desteği ve ONNX'i Java'ya dahil etmenin zorluğu da dahil olmak üzere zorluklardan bahsediyor. Ayrıca PyTorch'un araştırma topluluğundaki popülaritesinden ve makine öğrenimi çerçevelerinde artan uygulamasından da bahsediyor.

  • 00:05:00 Bu bölümde konuşmacı ONNX formatını ve avantajlarını tartışıyor. ONNX, çeşitli çerçevelerden modellerin kolayca dışa ve içe aktarılmasına izin veren açık bir sinir ağı değişim formatıdır. ONNX'in amacı, modelleri farklı dillerde ve çerçevelerde çalıştırarak onu geliştiriciler için değerli bir araç haline getirmektir. Ek olarak, konuşmacı çeşitli ONNX çerçevelerinden ve modelleri dışa ve içe aktarmak için kullanılabilen araçlardan bahsediyor. Ayrıca, TensorFlow ve Caffe2'nin hatırı sayılır bir desteğe sahip olduğu ONNX'teki operasyon desteğini ölçen bir puan kartı sunuyorlar. Konuşmacı daha sonra derin öğrenme modellerini Java'ya entegre etmek için bir mikro hizmet, Java'ya gömülü Python ve ONNX arka uç JVM tabanlı çerçeveler çalıştırma dahil olmak üzere farklı seçenekleri tartışır.

  • 00:10:00 Bu bölümde, Meno ve Vespa gibi çerçevelerdeki sinir ağı işlemlerinin sınırlı desteği de dahil olmak üzere Java'yı ONNX modelleriyle kullanmanın sınırlamaları ele alınmaktadır. Dışa aktarma işlemi de zor ve zaman alıcı olabilir ve modellerin tamamen yeniden eğitilmesi gerekebilir. Çözümlerden biri zaman uyumsuz ve mikro hizmetler kullanmaktır, ancak bu yaklaşım ayrı bir hizmetin ölçeklendirilmesini ve sürdürülmesini gerektirir. Tartışılan başka bir yaklaşım, herhangi bir Python kitaplığının kullanımına izin veren ve Keras gibi çerçevelerle hızlı çalıştığı tespit edilen Java gömülü Python'u (JEP) kullanmaktır. Ancak, paylaşılan kitaplıklarla ilgili çözülmesi gereken sorunlar olabilir.

  • 00:15:00 Videonun bu bölümünde, konuşmacı Flink'te ONNX modellerini konuşlandırmayı ve ortaya çıkabilecek olası kurulum sorunlarını tartışıyor. Java ilkellerini Python'a ve tersine aktarmak mümkün olsa da, bağımlılıkların ayarlanmasında sorunlar olabilir. Konuşmacı, kurulumu kolaylaştırmak için hem Flink hem de Python paketlerini içeren özel bir Docker görüntüsü oluşturmanızı önerir. Konuşmacı ayrıca NLP görevleri için bir PyTorch çerçevesi olan Flair'i vurgular ve JEP kullanarak Flink'e nasıl entegre edileceğini açıklar. Örnek kod, sonuçları Flair'den bir dize olarak döndürmek için zengin bir harita işlevi kullanır.

  • 00:20:00 Bu bölümde konuşmacı, Java ile yazılmış bir Python yorumlayıcısı olan Jep kullanılarak Flink'te ONNX modellerinin dağıtılmasından bahsediyor. Konuşmacı, Flink Twitter bağlayıcısı ile Twitter verilerinde duyarlılık analizi gerçekleştirmenin bir örneğini gösteriyor ve her yinelemede yeniden yüklenmesini önlemek için modeli işlevin açık kısmına yüklemenin önemini açıklıyor. Ayrıca, Jep kullanılarak Python'da değişkenlerin nasıl ayarlanacağını ve sonucun Java'ya bir dize olarak nasıl döndürüleceğini de gösterirler. Konuşmacı, Python modüllerini kullanırken hatalardan kaçınmak için Jep'te paylaşılan bir yorumlayıcının kullanımını vurgular ve Java'da daha kolay işlem yapmak için sonucu JSON'a dönüştürmeyi önerir.

  • 00:25:00 Bu bölümde, Isaac McKillen-Godfried, verilerin Flink Twitter bağlayıcısından tüketilmesine ve ardından İngilizce olmayan tweet'lerin filtrelenmesine izin veren açık kaynaklı bir projeden bahsediyor. Veriler daha sonra, çeşitli dilleri ve belirli dil modellerini işleyebilen çoklu görev adlı varlık tanıma modelleri aracılığıyla işlenir. Adlandırılmış varlık tanıma ve duyarlılık analizi, tablolara dönüştürülmeden ve varlık ve duyarlılıklarına göre gruplandırmak için sorgular kullanılmadan önce gerçekleşir. Derin öğrenme ve diğer modelleri Flink'e dahil ederek, adlandırılmış varlıkların gerçek zamanlı bir görünümü ve Twitter metnindeki duyguları görülebilir. Onnx arka uçları olgunluktan yoksun olsa da, kodu dönüştürmek ve yeniden yazmak zorunda kalmadan zaman kazandırır ve modeli bir küme üzerinde çalıştırmak hızlıdır. McKillen-Godfried yakın gelecekte gecikme artışını ölçmek için kıyaslamalar yapmayı planlıyor.

  • 00:30:00 Bu bölümde, Isaac Mckillen-Godfried, Flink'te ONNX modellerini konuşlandırmanın mevcut yalnızca CPU uygulamasını ve süreci daha da hızlandırabilecek gelecekteki GPU veya hibrit uygulama potansiyelini tartışıyor. Modeli yalnızca CPU'larda test ettiğini ve GPU kullanımı yoluyla verimliliği artırma olanaklarını henüz keşfetmediğini belirtiyor.
 

Tiny YOLOv2 ONNX modelini DeepStream kullanarak Jetson Nano üzerinde konuşlandırma



Tiny YOLOv2 ONNX modelini DeepStream kullanarak Jetson Nano üzerinde konuşlandırma

Bu video, dört video akışını aynı anda işlemek için ONNX formatında önceden eğitilmiş bir Tiny YOLOv2 modeli kullanmanın verimliliğini gösteriyor.
Akışlar dört farklı dosyadan gelir ve DeepStream SDK kullanılarak Jetson Nano'da işlenir. Sistem, dört videoyu da paralel olarak işlerken yaklaşık 6,7'lik bir FPS elde etti.

https://github.com/thatbrguy/Deep-Stream-ONNX

GitHub - thatbrguy/Deep-Stream-ONNX: How to deploy ONNX models using DeepStream on Jetson Nano
GitHub - thatbrguy/Deep-Stream-ONNX: How to deploy ONNX models using DeepStream on Jetson Nano
  • thatbrguy
  • github.com
How to deploy ONNX models using DeepStream on Jetson Nano. [Blog] [Performance] This repository provides complementary material to this blog post about deploying an ONNX object detection model using the DeepStream SDK on Jetson Nano. Various experiments were designed to test the features and performance of DeepStream. NOTE (May 2021) : There...
 

ONNX Çalışma zamanı çıkarım motoru, Makine Öğrenimi Modellerini farklı ortamlarda yürütme yeteneğine sahiptir.



ONNX Çalışma Zamanı

ONNX Çalışma Zamanı, performans, ölçeklenebilirlik ve genişletilebilirlik için optimize edilmiş, yeni operatörleri standardize edilmeden önce çalıştırabilen açık kaynaklı bir çıkarım motorudur. ONNX formatı, tercih edilen araçlar üzerinde geliştirilen modellerin ortak bir şekilde kolayca temsil edilmesini ve devreye alınmasını sağlar. Microsoft, Xilinx donanım platformlarında yapay zeka çıkarımına ve hızlandırmaya izin veren Vitis AI yazılım kitaplığı için yürütme sağlayıcısını oluşturmak üzere Xilinx ile ortaklık kurmuştur. Vitis AI araç seti, jeo-uzamsal görüntüleme çözümleri için en yüksek ivmeyi gösteren kıyaslama numaralarıyla birlikte FPGA geliştiricileri için IP araçları, kitaplıklar, modeller ve örnek tasarımlardan oluşur. Vitis AI yürütme sağlayıcısı, kaynaktan oluşturulabilir veya yakında Azure Market'te piyasaya sürülecek olan önceden oluşturulmuş bir yazılım kitaplığı aracılığıyla dağıtılabilir.

  • 00:00:00 Bu bölümde, Microsoft'ta Yapay Zeka Çerçeveleri Baş Program Yöneticisi olan Manash Goswami, ONNX modellerini yürütmek için kullanılan açık kaynaklı bir çıkarım motoru olan ONNX Runtime'ı tanıtıyor. ONNX formatı, veri bilimi ekiplerinin model geliştirme için tercih ettikleri araçları kullanmalarına izin verirken, modelin ortak ve kolayca yürütülebilir bir şekilde temsil edilmesini ve devreye alınmasını sağlar. ONNX Çalıştırma Zamanı performans, genişletilebilirlik ve ölçeklenebilirlik için optimize edilmiştir ve özel operatörleri destekleyerek yeni operatörleri standartlaştırılmadan önce çalıştırabilir hale getirir. Çalışma zamanı geriye ve ileriye uyumludur ve yürütme sağlayıcı arabirimi, farklı donanım platformlarında makine öğrenimi modelinin yürütülmesine izin verir. Microsoft, Xilinx U250 FPGA platformunda ONNX modellerini yürüten Vitis AI yazılım kitaplığı için yürütme sağlayıcısını oluşturmak üzere Xilinx ile ortaklık kurmuştur.

  • 00:05:00 Bu bölümde, Xilinx donanım platformlarında yapay zeka çıkarımı için uzmanlaşmış Xilinx geliştirme platformu olan Vitis AI yazılım kitaplığı hakkında bilgi ediniyoruz. U250 FPGA, kullanıcılar için NP VM kuyruğu olarak Azure'da özel önizlemede Vitis AI yazılım yığınıyla birlikte kullanılabilir. Vitis AI araç seti, geliştiricilerin FPGA'larla kullanmaları için optimize edilmiş IP araçları, kitaplıklar, modeller ve örnek tasarımlardan oluşur ve yapay zeka çıkarımını ve hızlandırmayı birleştirmelerine olanak tanır. Jeo-uzamsal analitik çözümler sunan bir girişim olan Peakspeed, dünyanın en hızlı jeo-uzamsal görüntüleme çözümlerini oluşturmak için ONNX Runtime ve Vitis AI yığınını Esri'nin ArcGIS Pro uygulamasıyla entegre ediyor. Peakspeed, Xilinx U250 FPGA barındıran bir Azure NP üzerinde çalışan TrueView ile bir Xeon platin CPU üzerinde çalışan aynı algoritmayı karşılaştıran kıyaslama sayılarını kaydederek CPU'larda jeo-uzamsal düzeltme veya ortorektifikasyon sürecini başarıyla hızlandırdı.

  • 00:10:00 Bu bölümde Manash, geliştiricilerin ve müşterilerin Azure'daki FPGA uç noktalarında ve şirket içinde Xilinx U250 donanımıyla hızlandırmak için ONNX Runtime ve Vitis AI yığınını kullanarak uygulamalarına derin öğrenmeyi nasıl aşılayabileceklerini açıklıyor. Ayrıca, geliştiricilerin kaynaktan ONNX Çalışma Zamanı ile Vitis AI yürütme sağlayıcısını oluşturabileceklerini ve Xilinx'in Azure NP VM'ye kolay dağıtım için önceden oluşturulmuş tüm yazılım kitaplıklarının tek bir yerde entegre edildiği bir VM görüntüsünü yakında Azure Market'te yayınlayacağını vurguluyor.
 

#ONNXRuntime ile Tarayıcıda Transformer Modellerini Dağıtın



#ONNXRuntime ile Tarayıcıda Transformer Modellerini Dağıtın

Video, ONNXRuntime kullanarak bir tarayıcıda optimize edilmiş bir BERT modelinin nasıl ince ayar yapılacağını ve dağıtılacağını gösterir. Sunum yapan kişi, Transformers API kullanılarak PyTorch modelinin ONNX formatına nasıl dönüştürüleceğini, ONNXRuntime'ın boyut küçültme için modeli ölçmek ve bir çıkarım oturumu oluşturmak için nasıl kullanılacağını gösterir. Video ayrıca WebAssembly kullanarak paketleri JavaScript'e aktarmak için gerekli adımları ve duygu sınıflandırması için dönüştürülmüş model aracılığıyla metin girişlerinin nasıl çalıştırılacağını da kapsar. Tahmin doğruluğundaki düşüşe rağmen, daha küçük model boyutu bir tarayıcıda dağıtım için idealdir. Modele, veri kümelerine, kaynak koduna ve bir blog gönderisine bağlantılar sağlanır.

  • 00:00:00 Bu bölümde, video sunucusu trafo modellerinin nasıl çalıştırılacağını gösterir ve optimize edilmiş ve bir tarayıcıya yerleştirilmiş bir trafo modelini içeren son projeyi gösterir. Projede kullanılan model, boyutunu küçültmek için Microsoft tarafından damıtılmış ve testi agnostik hale getiren optimize edilmiş bir bert modelidir. Modelde ince ayar yapmak için kullanılan duygular veri seti, sarılan yüz merkezinde mevcuttur. Sunum yapan kişi, Transformers API'sini kullanarak ince ayar sürecini adım adım anlatıyor ve Transformers'ın dahili dönüştürme aracını kullanarak PyTorch modelinin ONNX formatına nasıl dönüştürüleceğini gösteriyor. Son olarak, gerekli operatörlere bağlı olarak farklı işlem setlerinin seçilebildiği JavaScript'te çıkarım yapmak için ONNX Runtime Web paketi kullanılır.

  • 00:05:00 Bu bölümde video, ONNXRuntime ile tarayıcıda trafo modellerinin nasıl konuşlandırılacağını tartışıyor. İlk olarak video, boyutunu küçültmek için modeli nicelleştirmek üzere ONNXRuntime'ın nasıl kullanılacağını açıklıyor, ardından hem nicelenmemiş hem de nicelenmiş modeller için bir çıkarım oturumu oluşturuluyor. Ardından video, gerekli paketlerin WebAssembly kullanılarak JavaScript'e nasıl içe aktarılacağını ve metin girişlerinin ONNXRuntime modeli aracılığıyla çalıştırılmadan önce nasıl kodlanacağını gösterir. Demo, dönüştürülmüş modelin bir giriş metni verildiğinde farklı duyguları tahmin etmek için nasıl kullanılabileceğini gösterir. Tahmin doğruluğundaki düşüşe rağmen video, küçültülmüş model boyutunun onu web'de dağıtım için ideal hale getirdiği sonucuna varıyor.

  • 00:10:00 Bu bölümde sunum yapan kişi, büyük bir transformatör modelini nasıl alıp ayrıştırıp nicelendirebileceklerini ve uçta çıkarım yapmak için ONNX Runtime'ı nasıl kullanabileceklerini açıklıyor. Ayrıca, kullanılan model ve veri setlerinin yanı sıra kaynak koduna ve demoda bir blog gönderisine bağlantılar sağlarlar.
 

Kuruluşta Açık Sinir Ağı Değişimi (ONNX): Microsoft, Makine Öğrenimini nasıl ölçeklendirir?



Kuruluşta Açık Sinir Ağı Değişimi (ONNX): Microsoft makine öğrenimini nasıl ölçeklendiriyor - BRK3012

Açık Sinir Ağı Değişimi (ONNX), Microsoft'un halihazırda Bing, Bing reklamları ve Office 365 gibi ürünler için ONNX'i geniş çapta benimsemesiyle birlikte, çoklu eğitim çerçevelerinin ve dağıtım hedeflerinin yönetilmesi de dahil olmak üzere makine öğrenimi modellerinin üretime dağıtılmasındaki zorluklara bir çözüm olarak sunuldu. ONNX, makine öğrenimi modellerinin ölçeklenebilirliği ve bakımının yanı sıra, GPU'lar gibi donanım hızlandırıcıların kullanımına atfedilen önemli performans iyileştirmeleri ve maliyet tasarrufları sağlar. Ek olarak, ONNX ekosistemi, FP32 modellerini daha düşük hassasiyetli veri türlerine dönüştürmek için kullanıma hazır geliştirme kitleri ve niceleme teknikleri ile çalışma zamanı optimizasyonu için Intel gibi iş ortakları içerir ve bu da verimliliği artırır. Çalışma zamanı esnek olduğundan ve modelleri farklı donanım platformlarına dağıtabildiğinden, konuşmacılar aynı zamanda uç bilgi işlem için ONNX kullanmanın faydalarını vurguluyor.

  • 00:00:00 Bu bölümde sunum yapan kişiler, Office 365'te aylık 180 milyondan fazla aktif kullanıcı ve yüz milyonlarca Windows cihazına dağıtılan makine öğrenimi teknolojisi dahil olmak üzere Microsoft'un makine öğrenimi girişimlerinin ölçeğini tartışıyor. Ayrıca Microsoft'un altıdan fazla makine öğrenimi çerçevesi kullandığından ve makine öğrenimi modellerini üretime dağıtmada zorluklar olduğundan bahsediyorlar. Intel ve NVIDIA gibi donanım hızlandırıcılarla ve Azure makine öğreniminde kullanılabilen ONNX ve ONNX Runtime'ı bu zorluklara çözüm olarak sunuyorlar.

  • 00:05:00 Videonun bu bölümünde, konuşmacı makine öğrenimi modellerini eğitirken ve bunları üretime dağıtırken ortaya çıkan zorlukları tartışıyor. Pek çok farklı eğitim çerçevesi ve devreye alma hedefiyle, verimli uygulama performansını yönetmek ve sürdürmek zorlaşıyor. Bu sorunu çözmek için Microsoft, eğitim için kullanılan çerçeveden bağımsız olarak makine öğrenimi modellerinin ONNX biçimine dönüştürülmesine izin veren bir endüstri standardı olan ONNX'i (Açık Sinir Ağı Değişimi) sunar. Bu, ONNX modellerinin desteklenen herhangi bir çerçeveye konuşlandırılmasını sağlayarak daha esnek ve ölçeklenebilir bir çözüm sağlar. Ek olarak Microsoft, ONNX'i desteklemek ve bir endüstri standardı olarak başarısını sağlamak için güçlü bir iş ortakları ekosistemi oluşturuyor.

  • 00:10:00 Bu bölümde konuşmacı, Microsoft'un ürünlerine ve müşterilerine nasıl iş değeri getirdiklerini göstermek için Açık Sinir Ağı Değişimi (ONNX) ve ONNX çalışma zamanının gerçek üretim kullanım örneklerini tartışıyor. Bing, Bing ads ve Office 365 gibi Microsoft'un bazı ürünleri, ONNX ve ONNX çalışma zamanını zaten geniş ölçüde benimsemiştir ve model performansında ve azaltılmış gecikme süresinde önemli iyileştirmeler görmüştür. Örneğin, ONNX ve ONNX çalışma zamanı ile Office 365'in dilbilgisi denetimi özelliği, performansta 14,6 kat iyileşme gördü ve bu da maliyet ve gecikme süresinin azalmasına neden oldu. Başka bir kullanım durumu olan OCR, ONNX ve ONNX çalışma zamanından da önemli ölçüde yararlanmıştır.

  • 00:15:00 Bu bölümde konuşmacı, Microsoft'un Azure Bilişsel Hizmetler OCR topluluk hizmetinin kalitesini ve performansını iyileştirmenin yanı sıra iyileştirme dahil olmak üzere çeşitli senaryolarda makine öğrenimini ölçeklendirmek için Açık Sinir Ağı Değişimini (ONNX) nasıl kullandığını tartışır. arama kalitesi ve kişisel asistanlarla soru sorma ve yanıtlama gibi yeni senaryoların etkinleştirilmesi. Konuşmacı ayrıca, ONNX ve ONNX Runtime'ın makine öğrenimi modellerinin hızını sırasıyla 3,5 kat ve 2,8 kat artırarak ürün ekiplerine nasıl büyük değer kattığından bahsediyor. Ayrıca, gelişmiş multimedya araması için görüntülerin anlamsal anlamını gerçekten anlamak amacıyla makine öğrenimi modellerini eğitmenin önemini de vurguluyorlar.

  • 00:20:00 Bu bölümde konuşmacılar, Microsoft ürünlerinde Açık Sinir Ağı Değişimi (ONNX) modellerinin kullanımını, özellikle Bing görsel arama özelliğini tartışıyorlar. ONNX, GPU'lar gibi donanım hızlandırıcıların kullanımıyla elde edilen önemli performans iyileştirmeleri ve maliyet tasarruflarının yanı sıra makine öğrenimi modellerinin ölçeklendirilmesine ve bakımına olanak tanır. Konuşmacılar ayrıca, x64 ve ARM tabanlı mimariler dahil olmak üzere çeşitli platformlarda çalışabilen ve Windows, Mac ve Linux'ta kullanılabilen ONNX modelleri için açık kaynaklı bir çıkarım motoru olan ONNX'in çok yönlülüğünü vurgulamaktadır. ONNX'in kullanımı, modelin arayüzünü değiştirmeden belirli hedef donanım üzerinde yürütmenin optimizasyonuna izin vererek, onu üretim dağıtımlarını ölçeklendirmek ve sürdürmek için değerli bir araç haline getirir.

  • 00:25:00 Bu bölümde konuşmacı, ONNX modellerini CPU'lar, GPU'lar ve FPGA'lar dahil olmak üzere farklı donanım platformlarında çalıştırmak için kullanılan yürütme sağlayıcı arabirimini tartışıyor. İş ortakları ekosistemi, Microsoft'un açık VINO tabanlı yürütme sağlayıcıları kullanarak çalışma zamanı optimizasyonu konusunda işbirliği yaptığı Intel'i içerir. Ayrıca, üretim, perakende ve nakliye gibi çeşitli sektörler için yapay zeka iş yüklerini hızlandırmak için nöral bilgi işlem çubuğu da dahil olmak üzere kullanıma hazır geliştirme kitleri sunarlar. Microsoft ve Intel ayrıca FP32 modellerini daha düşük kesinlikli bir veri türüne dönüştürmek için niceleme konusunda işbirliği yaptı, bu da daha düşük bellek bant genişliği, modelin daha az bellek ayak izi ve minimum doğruluk kaybıyla watt başına artan dört tepe sayısıyla sonuçlandı.

  • 00:30:00 Bu bölümde konuşmacı, evrişimli sinir ağları için tamsayı mücevher çekirdeklerinin performansını ve bellek gereksinimlerini iyileştirmek için vektör işleme talimatlarını ve grafik füzyonunu nasıl kullanabildiklerini tartışıyor. 4 kat daha fazla işlem ve 4 kat daha az bellek gereksinimi elde edebildiler. Çeşitli parti boyutları için performansta ölçeklendirmeyi göstererek donanım işleme kapasitesinin yanı sıra bir yürütme sağlayıcısı olarak n-graph kullanmanın faydalarını sergilediler. Doğruluk kaybı çok küçüktü ve nicelemenin motive edici faydalarını karşıladı. Ayrıca, ONNX Model Hayvanat Bahçesi, Azure Machine Learning Deneyi ve Microsoft'tan özel görüntü hizmetleri kullanmak gibi ONNX modelleri oluşturmanın farklı yollarını tartıştılar.

  • 00:35:00 Bu bölümde, konuşmacı bir uygulama içinde ONNX çalışma zamanı kullanılarak çıkarım oturumlarının nasıl yürütüleceğini açıklar. Modeli dönüştürdükten sonra, kullanıcı onu ONNX çalışma zamanına yükler ve grafiği ayrıştırmaya başlar. Çalışma zamanı, donanım kitaplıkları tarafından ne tür operasyonların desteklendiğini belirlemek için mevcut iyileştirmeleri ve donanımın altında yatan sorguları tanımlar. ONNX çalışma zamanı tutarlı olacak şekilde tasarlanmıştır, bu nedenle Python ve C-sharp için kod parçacıkları çok benzerdir. Konuşmacı ayrıca, Python ve C-sharp'ta kodu otomatik olarak dönüştüren bir uygulama teklifi almak için kullanıcının veri girmesine izin veren AutoML'den bahseder. Ek olarak, konuşmacı, farklı çerçeveler için dönüştürücüler içeren ve kullanıcının ONNX çalışma zamanına hızlı bir şekilde başlamasını sağlayan bir docker görüntüsünü açıklar. İş akışı, Azure Notebooks kullanılarak gösterilmiştir.

  • 00:40:00 Bu bölümde konuşmacı, kuruluştaki modelleri ölçeklendirmek için Açık Sinir Ağı Değişimi'nin (ONNX) ve Microsoft'un makine öğrenimi araçlarının nasıl kullanılacağını tartışıyor. İşlem, hem ön işleme hem de çıkarım adımlarını içeren bir puanlama dosyası oluşturmak için bir makine öğrenimi çalışma alanı kullanmayı içerir. Ardından konuşmacı, ONNX çalışma zamanı temel görüntüsü gibi temel görüntüler de dahil olmak üzere hedef bilgisayar ve ortam için kapsayıcı görüntülerin nasıl oluşturulacağını gösterir. Son olarak, görüntüler, CPU ve GPU uç noktalarında çıkarım yapmak için test görüntüleri gönderme özelliğine sahip bir bulut IKS hizmetine dağıtılır.

  • 00:45:00 Bu bölümde konuşmacı, bir uygulamayı CPU'lara karşı GPU'lar ve x86 gibi farklı donanım platformlarına yönlendirmek için aynı kodun kullanıldığı bir demo göstererek Açık Sinir Ağı Değişimi (ONNX) çalışma zamanının esnekliğini gösterir. ARM'a karşı. Konuşmacı ayrıca, önceden kaydedilmiş video beslemesi ve sınırlayıcı kutuların sonradan işlenmesini kullanan bir fabrika işçisi senaryosundaki güvenlik senaryolarını algılamak için uç cihazlarda, özellikle Intel up squared'de ONNX çalışma zamanı ve modellerinin dağıtılmasına ilişkin bir demo sergiliyor. Demoda kullanılan kod aynıdır, ancak uygulamayı optimize etmek için farklı donanım hızlandırıcıları kullanılır. Konuşmacı, ONNX'in nöral ağ modellerini temsil etmek için ortak format haline geldiğini ve ONNX çalışma zamanının hem bulutta hem de uç cihazlarda konuşlandırmayı mümkün kıldığını özetliyor.

  • 00:50:00 Bu bölümde sunum yapan kişiler, Azure ile makine öğrenimi uygulamaları oluşturmak ve dağıtmak için Açık Sinir Ağı Değişimi (ONNX) kullanmanın faydalarını tartışıyor. Ayrıca, farklı işlemcilerde makine öğrenimi, mevcut işlem hatlarıyla ONNX kullanımı ve ONNX'ten önceki çerçevelere geri dönme olasılığı hakkında izleyicilerin sorularını yanıtlıyorlar. Ek olarak, ONNX Model Hayvanat Bahçesi'ni hedeflenen senaryolar ve verilerle genişletme planlarından bahsediyorlar.

  • 00:55:00 Bu bölümde, ONNX modelleri hizmet vermek için çeşitli çerçevelerle kullanılabileceğinden, konuşmacılar çerçeve esnekliği açısından ONNX'in faydalarını tartışıyor. Ayrıca ONNX'in, kullanıcıların yeniden eğitim veya deneme için çıkarım telemetrisini yüklemesine olanak tanıyan Azure makine öğrenimi ile entegrasyonundan da bahsediyorlar. Oturum ayrıca ONNX'in Excel ile yerel olarak tümleştirme olasılığını da tartışıyor, ancak bu hâlâ geliştirme aşamasında. Ayrıca, ONNX dosya biçimini değiştirmek için Python kullanma seçeneğiyle birlikte, özel algoritmalar oluşturma ve bunları ONNX'e dönüştürme sorununu da ele alıyorlar. Son olarak, oturum, gelecekteki iyileştirmeler için geri bildirim olarak alınacak olan ONNX modellerini dağıtım için imzalamaya yönelik bir yaklaşım ihtiyacından bahseder.
 

#ONNX Çalışma Zamanı İçin #OpenVINO Yürütme Sağlayıcısı - #OpenCV Haftalık #Webinar Ep. 68



#ONNX Çalışma Zamanı İçin #OpenVINO Yürütme Sağlayıcısı - #OpenCV Haftalık #Webinar Ep. 68

ONNX Çalışma Zamanı için OpenVINO Yürütme Sağlayıcısı, bu OpenCV Haftalık Web Seminerindeki ana tartışma konusuydu. Ürün, Intel donanımı üzerindeki ONNX modellerinin performansını hızlandırırken, kullanıcı tarafında minimum çaba gerektirmeyi amaçlar. Web semineri, gerçek dünyada derin öğrenme modellerini devreye almanın zorluklarını tartıştı ve OpenVINO bu zorluklara çözüm olarak sunuldu. OpenVINO, çeşitli cihaz ve donanımlarda verimli performans için AI modellerini optimize edebilir. Makine öğrenimi çıkarımını hızlandırmak için tasarlanmış açık kaynaklı bir proje olan ONNX çalışma zamanı uzun uzadıya tartışıldı. Webinar ayrıca ONNX Çalışma Zamanı için OpenVINO Yürütme Sağlayıcısı ile elde edilen performans iyileştirmesinin yanı sıra çoklu iş parçacıklı çıkarım, çeşitli eklentiler için tam destek ve model önbelleğe alma gibi özelliklerin bir gösterimini de sundu. OpenVINO ve PyTorch arasındaki OpenVINO Yürütme Sağlayıcısı aracılığıyla entegrasyon da tartışıldı. Sunum yapan kişiler, ARM cihazlarıyla uyumluluk ve ONNX değiş tokuş formatlarını kullanırken olası performans veya doğruluk kaybı gibi konularda dinleyicilerin sorularını yanıtladı.

  • 00:00:00 Bu bölümde, sunucular OpenVINO'da sırasıyla teknik ürün müdürü ve yapay zeka çerçeve mühendisi olan misafirleri Devon Agarwal ve Prita Veeramalai'yi tanıtıyor. Gösteriye kısa bir giriş sağlarlar ve izleyiciler için yaklaşan bazı eşantiyonları tartışırlar. Ana tartışma konusu, Intel donanımı üzerindeki ONNX modellerinin performansını kullanıcı açısından minimum çabayla hızlandırmayı amaçlayan ONNX çalışma zamanı için OpenVINO yürütme sağlayıcısı etrafında dönüyor. Toplantı sahipleri ayrıca, derin öğrenmeye ve zorluklarına genel bir bakış ve ardından OpenVINO'ya ve yeteneklerine bir giriş içeren oturumun gündemini de özetliyor.

  • 00:05:00 Videonun bu bölümünde, konuşmacı ONNX Runtime için OpenVINO Yürütme Sağlayıcısını tanıtıyor ve amacını açıklıyor. Ayrıca OpenVINO, ONNX ve ONNX Runtime'a genel bir bakış ve ardından ONNX Runtime için OpenVINO Execution Provider ile nasıl başlayacağınız ve onu ONNX uygulamalarına nasıl entegre edeceğiniz hakkında bir kılavuz sunarlar. Konuşmacı ayrıca, geliştiriciler için bir beta ön izleme ürününe kısa bir göz atma da dahil olmak üzere, ürünün özellik setini ve gelecek planlarını tartışıyor. Konuşma daha sonra günümüz dünyasında derin öğrenmenin önemine, uç cihazlarda yapay zekaya duyulan ihtiyaç ve yapay zeka için bilgi işlem taleplerine geçer. Video ayrıca, benzersiz çıkarım ihtiyaçları, entegrasyon zorlukları ve herkese uyan tek bir çözümün olmaması dahil olmak üzere derin öğrenme modellerinin geliştirilmesi ve devreye alınmasıyla ilgili zorlukları da kapsar.

  • 00:10:00 Bu bölümde, derin öğrenme modellerini gerçek dünyada devreye almanın zorlukları tartışılıyor. Derin öğrenme ağ eğitimi ile gömülü platformlarda meydana gelen çıkarım arasındaki kopukluktan kaynaklanan teknik zorluklar vardır. Yazılım ve donanım iletişimi için özel bir API gerektiren programlama dili ve donanım varyasyonları da vardır. Intel'in OpenVINO araç seti, bu zorluklara bir çözüm olarak tanıtıldı. Araç seti, geliştirme iş akışını kolaylaştırır ve geliştiricilerin bir uygulamayı bir kez yazıp Intel mimarisinde dağıtmasına izin vererek, bir kez yaz her yerde konuşlandır yaklaşımı sağlar. Araç seti, CPU, iGPU, Movidius VPU ve GNA'yı hedefleyen uygulamaları devreye alma yeteneğine sahiptir. Endüstriyel, sağlık ve yaşam bilimleri, perakende, emniyet ve güvenlik dahil olmak üzere çeşitli sektörlerde değerli olabilir ve gerçek dünyaya dağıtım için daha hızlı, daha doğru ve verimli sonuçlar sunar.

  • 00:15:00 Bu bölümde, konuşmacı OpenVino kavramını ve AI modellerini uç cihazlar için nasıl optimize ettiğini açıklıyor. PyTorch veya TensorFlow gibi çerçevelerde oluşturulduktan sonra AI modellerinin CPU'lar, GPU'lar veya VPU'lar gibi belirli cihazlarda verimli performans için nasıl optimize edilmesi gerektiğini açıklıyorlar. OpenVino, çeşitli cihazlar ve donanımlar için bu dönüştürme sürecini otomatikleştirerek, modellerin dağıtıldığı cihazda verimli performans için optimize edilmesini sağlar. Konuşmacı daha sonra, makine öğrenimi modellerini temsil etmek için açık bir format olan ve makine öğreniminin ve derin öğrenme modellerinin yapı taşları olarak ortak bir operatör kümesini tanımlayan ONNX'in ne olduğunu açıklamaya devam eder. Genel olarak, ONNX, AI geliştiricilerinin aşağı akış çıkarım sonuçları hakkında endişelenmeden çeşitli çerçeveler, araçlar, çalışma zamanları ve derleyiciler kullanmasına olanak tanır.

  • 00:20:00 Bu bölümde, konuşmacılar, farklı araçlar tarafından üretilen modellerin standartlaştırılmış bir format kullanılarak okunmasına izin veren açık bir ara model olan ONNX formatını tartışıyorlar. ONNX çalışma zamanı, çeşitli işletim sistemleri ve donanım platformlarında makine öğrenimi çıkarımını hızlandırmak için tasarlanmış açık kaynaklı bir projedir. Optimizasyon fırsatlarını otomatik olarak belirler ve mevcut en iyi donanım hızlandırmasına erişim sağlar. ONNX için OpenVINO Yürütme Sağlayıcısı, Intel CPU'lar, GPU'lar ve VPU'lar üzerindeki ONNX modellerinin çıkarımını hızlandırmak için OpenVINO araç setinin gücünü etkinleştirir. OpenVINO araç setini arka uç olarak kolayca entegre ederken, kullanıcıların ONNX çalışma zamanı API'lerini kullanarak çıkarım yapmasına olanak tanır.

  • 00:25:00 Bu bölümde, ONNX runtime ve OpenVINO yürütme sağlayıcısı arasındaki entegrasyon ele alınmaktadır. Bu entegrasyon, derin öğrenme modellerinin Intel cihazlarında verimli bir şekilde yürütülmesine olanak tanır. OpenVINO araç seti, modelleri Intel aygıtlarında çalıştırmak için optimize edilmiş kitaplıklar sağlar. OpenVINO yürütme sağlayıcısı etkinleştirildiğinde, maksimum verimlilik için modeldeki hangi operatörlerin OpenVINO arka ucunda çalıştırılması gerektiğini akıllıca seçer. Kalan işleçler, yerel ONNX çalışma zamanı çerçevesi kullanılarak yürütülür. Kullanıcı, OpenVINO yürütme sağlayıcısını kaynaktan oluşturma, Docker görüntüsünü çekme veya pip kurulumunu kullanarak yükleyebilir. ONNX çalışma zamanı OpenVINO paketi PyPI'de bulunabilir.

  • 00:30:00 Web seminerinin bu bölümünde sunum yapan kişiler, ONNX Çalışma Zamanı için OpenVINO Yürütme Sağlayıcısının nasıl kullanılacağını tartışır ve yeteneklerini gösterir. Ürünün pip kullanılarak nasıl kurulacağını açıklıyorlar ve ONNX çalışma zamanı kitaplığının nasıl içe aktarılacağını ve bir çıkarım oturumunun nasıl başlatılacağını gösteren kod parçacıkları sağlıyorlar. Ayrıca, OpenVINO Yürütme Sağlayıcısını mevcut bir kod satırında basit bir değişiklikle kullanmanın ne kadar kolay olduğunu da gösterirler. Sunucular daha sonra izleyicileri QR kodlarını taramaya davet ederek demolara ve örneklere erişmelerini ve kendilerinin denemelerini sağlar.

  • 00:35:00 Bu bölümde video, ONNX Çalışma Zamanı için OpenVINO Yürütme Sağlayıcısı (EP) ile elde edilen performans iyileştirmesinin bir gösterimini sunar. Video, CPU yürütme sağlayıcısı ile elde edilen 5 fps ile OpenVINO EP ile elde edilen 8 fps arasındaki bir karşılaştırmayı gösterir. Ek olarak, video, ONNX Çalışma Zamanı için OpenVINO EP kullanılarak bir niceleme demosu sunar; bu, doğrulukta ihmal edilebilir bir kayıpla 2 kat performans artışıyla sonuçlanır. Demo dizüstü bilgisayar, kıyaslama ve analiz için gerçek Intel donanımına uzaktan erişim sağlayan Intel DevCloud'da mevcuttur.

  • 00:40:00 gösteri bitti mi? Bu bölümde sunum yapan kişi, ONNX Çalışma Zamanı için OpenVINO Yürütme Sağlayıcısının nasıl başlatılacağını ve i3, i5,xenon veya Core i9 gibi donanım ve grafik bölümünün nasıl seçileceğini gösterir. Ayrıca Jupyter not defterini ve cihazda parazit çalıştırmak için giriş videosunu ve bir ONNX modelini alan nesne algılama örneğini de sergiliyorlar. Sunucu, CPU, GPU ve FP16 VADM ortamı için destek olduğunu açıklıyor ve ayrıca yerel ONNX çalışma zamanı arka ucu olan CPU yürütme sağlayıcısından da bahsediyor. Son olarak sunum yapan kişi, her bir cihazı satın almadan veya kiralamadan farklı donanımları test etmek için OpenVINO Yürütme Sağlayıcısının yararlılığını tartışır.

  • 00:45:00 Bu bölümde OpenVINO Yürütme Sağlayıcısının özellikleri ele alınmaktadır. Çok iş parçacıklı çıkarım, çeşitli eklentiler için tam destek ve model önbelleğe alma sunar. Model niceleme ve grafik bölümlemenin yanı sıra birden çok dil için API'ler de mevcuttur. Gelişmiş performans için IO tampon optimizasyonları mevcuttur ve ONNX modelleri için harici dosya kaydetme mevcuttur. Seyirciye ödül kazanması için bir soru soruluyor ve PyTorch modelleri için OpenVINO entegrasyonuna bir göz atılıyor.

  • 00:50:00 Bu bölümde, OpenVINO yürütme sağlayıcısı aracılığıyla PyTorch ile OpenVINO entegrasyonunu tartışıyorlar. Bu ürün, yalnızca iki ek kod satırı kullanarak Intel donanımı üzerindeki PyTorch modellerinin performansını hızlandırabilir. Kullanıcı, nn.modülünü, OpenVINO yürütme sağlayıcısını kullanarak modülü çıkarım için hazırlayan ve modülü onnx.export yoluyla bir bellek içi grafiğe aktaran torç orp/ort çıkarım modülüne sarabilir. ONNX çalışma zamanı oturumu daha sonra grafiği alt grafik bölümleme için desteklenen ve desteklenmeyen işleçlerle alt grafiklere ayırır ve OpenVINO uyumlu düğümler sağlayıcı tarafından yürütülür ve Intel CPU'lar, GPU'lar veya VPU'lar üzerinde yürütülebilirken diğer tüm düğümler varsayılan CPU ML yürütme sağlayıcısı. Kaynaktan oluşturma, basit bir pip kurulumu yapma ve tüm Python API'lerine erişme seçeneğiyle yükleme işlemi basittir.

  • 00:55:00 Bu bölümde, OpenCV Haftalık Web Seminerinin sunucuları, izleyicilerden OpenVINO'nun ARM cihazlarıyla uyumluluğu ve ONNX değiş tokuş formatlarını kullanırken potansiyel performans veya doğruluk kaybı gibi konulardaki soruları okudu. Toplantı sahipleri ve sunum yapan kişiler, OpenVINO'nun ARM CPU cihazlarında gerçekten çalışıp destek verebileceğini ve ONNX'in çoğu model için performansı bile artırabileceğini açıklıyor. Ancak, bir biçimden diğerine dönüştürürken doğruluğun bir test setinde test edilmesi her zaman tavsiye edilir. Sunucular, izleyicilerden gelen bir sorunun aksine, ONNX'in dinamik şekil modellerini desteklediğini de açıklıyor. Son olarak, sunucular ve sunucular, harika bir sunum ve bilgilendirici oturum için izleyicilere ve organizatör Phil'e teşekkür eder.
 

ONNX ile Yapay Sinir Ağlarını İçe Aktarma



ONNX ile Yapay Sinir Ağlarını İçe Aktarma

Bu video, Açık Sinir Ağı Değişimi (ONNX) projesinin makine öğrenimindeki önemini ve çeşitli araçlarda model dönüştürmedeki faydalarını araştırıyor. Konuşmacı, modelleri manuel olarak yüklemenin veya otomatik araçlar kullanmanın zorluklarını ve ONNX'in grafik tabanlı hesaplama modeli aracılığıyla bu sorunu nasıl ortadan kaldırdığını tartışıyor. Konuşmacı ayrıca ONNX'in karmaşık modellerin elle dönüştürülmesindeki avantajlarını ve farklı çerçevelerle uyumluluğunu vurgulamaktadır. Video, parametreli ağ modellerine, ONNX'in yapısına ve projeyi kullanırken ortaya çıkabilecek potansiyel zorluklara değiniyor. Bu zorluklara rağmen konuşmacı, ONNX'in çeşitli şirketlerden aldığı önemli destek sayesinde gelişeceğine inanıyor.

  • 00:00:00 Bu bölümde, konuşmacı makine öğreniminde ONNX'in önemini ve modelleri manuel veya otomatik araçlarla yüklerken karşılaşılan zorlukları tartışıyor. Konuşmacı, PyTorch ve TensorFlow'un kullanıma sunulmasıyla birlikte çoğu modelin bu çerçevelerde geliştirildiğini ve bunun da harici modellerin diğer çerçevelere alınmasını zorlaştırdığını açıklıyor. Modellerin manuel olarak dönüştürülmesi zaman alıcı ve sıkıcıdır, çünkü süreç ağırlıkları mimariye bağlamayı içerir ki bu eğlenceli bir şey değildir. Konuşmacı daha sonra nöral ağ deposunun büyümesini ve sürüm 12'den bu yana depoya nasıl birkaç model eklediklerini tartışıyor. Ayrıca, 2018'de tanıtılan ve görüntü sınıflandırma ağlarının boyutunu azaltan ve çalışan bir görüntü sınıflandırma ağı olan MobileNet'i tanıtıyorlar. Daha hızlı.

  • 00:05:00 bölümü, parametreleştirilmiş ağ modellerinin önemine ve sinir ağı deposunda neden gerekli olduklarına odaklanır. Parametreleştirme olmadan, havuz çok uzun ve gezinmesi zor hale gelirdi. Ayrıca, varsayılan olmayan bir modelin nasıl seçileceğini açıklar ve dilimleri dile bağlı olarak sözcüklere veya alt sözcüklere ayıran BPE modelinin bir örneğini verir. Bu bölüm ayrıca, 14 Şubat 2019'da piyasaya sürülen ünlü model gibi karmaşık modellerin manuel olarak dönüştürülmesi zor olabileceğinden, ONNX'in elle dönüştürme ihtiyacını vurgulamaktadır.

  • 00:10:00 Bu bölümde, konuşmacı GPD2 modelinde kullanılan ağ kodlayıcı işlevinin ayrıntılarını açıklar. Bu işlev, modelin ihtiyaç duyduğu tüm ön işlemeye sahiptir ve bir diziyi belirteç listesine dönüştürür. Ek olarak, konum indeksini verir ve kullanılan modelin boyutuna bağlı olarak 768 boyutunda bir vektöre sahiptir. Konuşmacı, 800-1000 katmanlı ağ mimarisini elle oluşturmanın mümkün olmadığını ve bu yüzden ONNX'e ihtiyaç duyduklarını açıklıyor. ONNX kullanmanın avantajı, her tür için tek bir dönüştürücü bulundurma ihtiyacını ortadan kaldırması ve kullanıcıların farklı modelleri etkili bir şekilde içe aktarmak için yararlanabilecekleri bir model hayvanat bahçesine sahip olmasıdır.

  • 00:15:00 Bu bölümde YouTuber, Open Neural Network Exchange (ONNX) projesinin faydalarını ve özelliklerini tartışıyor. Proje, son teknoloji araçlardan model dönüştürmeyi mümkün kılarak, model oluşturma için en iyi aracı seçmeyi kolaylaştırıyor. ONNX, modelleri çeşitli araçlar arasında taşımayı kolaylaştıran, büyük şirketler de dahil olmak üzere geniş bir topluluk ortakları listesine sahiptir. Proje, diğer birçok çerçevede eksik olan donanım optimizasyon araçları ve görselleştirme araçları sağlar. YouTuber, projenin çeşitli şirketlerden hatırı sayılır destek aldığı için gelişmeye devam edeceğine inanıyor.

  • 00:20:00 Bu bölümde konuşmacı, grafiğe harici olarak uygulanan operatörlere sahip grafik tabanlı bir hesaplama modeli olan ONNX'in yapısını tartışıyor. Grafikteki her düğüme bir operatör olarak başvurulur ve çerçeveler arasında taşınabilir olması gereken bir veya daha fazla giriş ve çıkışa sahiptir. Konuşmacı, ONNX'in nasıl çalıştığına dair bir örnek vererek, modeli protokol biçiminde alan ve onu matematiksel bir İlişkilendirmeye dönüştüren dahili bir işlevle gösterir. Grafik, modelle ilgili meta verileri içerir. Konuşmacı daha sonra grafiğin nasıl farklı düğümlere sahip olduğunu açıklar ve grafiğin düğümlerinden biri olan evrişim katmanının özelliklerini tartışmak için zaman harcar. Son olarak, katmanın boyutları hakkında nasıl bilgi alınacağını gösterir.

  • 00:25:00 Bu bölümde, konuşmacı ONNX ile çalışırken ortaya çıkabilecek bazı sorunları tartışıyor. Rozet boyutları olmadığında yeniden şekillendirme operatöründe meydana gelebilecek belirli hatalar vardır, bu nedenle bu tür durumları desteklemek için operatör kapsamının iyileştirilmesi gerekir. Konuşmacı, gelecekte RNN'ler ve statik hiper ağlar için destek eklemenin yanı sıra sürüm ve şekil çıkarımı ve model denetleyicileri gibi diğer araçları bağlama açısından yapılacak işler olduğundan bahseder. Ek olarak, operatör kapsamının iyileştirilmesi de devam eden bir çalışmadır. Ancak konuşmacı, ONNX'in aktif olarak geliştirilmekte olduğuna ve büyük şirketlerden destek aldığına dikkat çekiyor.
 

ONNX ile Yapay Sinir Ağlarını İçe ve Dışa Aktarma



ONNX ile Yapay Sinir Ağlarını İçe ve Dışa Aktarma

Video, ONNX'in farklı sinir ağı çerçeveleri arasında model alışverişi yapmak için makine öğrenimi modellerine yönelik bir çapraz platform özelliği ve dosya formatı olarak kullanımını göstermektedir. Konuşmacılar, Mathematica ve Keras aracılığıyla ONNX kullanarak sinir ağlarının nasıl içe ve dışa aktarılacağını ve meta verilerin nasıl incelenip içe aktarılacağını ve ayrıca dışa aktarırken meta verilerin nasıl ayarlanacağını gösterir. Ayrıca Core ML, PyTorch ve Wolfram Language arasındaki modellerin dışa ve içe aktarılmasını ve dönüştürme sırasında doğru ofseti kullanmanın önemini tartışıyorlar. Konuşmacılar, ithalat ve ihracat için desteğin genişletilmesi, ithalatçı için zorlu durumların iyileştirilmesi ve birden fazla operatör seti sürümüne ihracat yapılmasına izin verilmesi de dahil olmak üzere ONNX'in geleceğini tartışıyor. Ek olarak, konuşmacı ONNX ve MXNet arasındaki farkı açıklar ve dahili yardımcı programlar kullanılarak ONNX'e hangi işlevlerin aktarılabileceğinin nasıl kontrol edileceği hakkında bilgi verir.

  • 00:00:00 Bu bölümde, Matteo Salvarezza ve Maria Sarksyan, farklı sinir ağı çerçevelerinin birbirleriyle model alışverişi yapmasına izin veren, makine öğrenimi modellerine yönelik bir çapraz platform belirtimi ve dosya formatı olan ONNX'i tanıtıyor. Mathematica ve Keras aracılığıyla ONNX kullanarak sinir ağlarının nasıl içe ve dışa aktarılacağını, meta verilerin nasıl incelenip içe aktarılacağını ve dışa aktarırken meta verilerin nasıl ayarlanacağını gösteriyorlar. Ardından, bir Fortnite modelinin Mathematica'dan Keras'a ve ardından tekrar Mathematica'ya içe aktarılmadan önce ONNX'e dönüştürülmesini sergiliyorlar.

  • 00:05:00 Bu bölümde konuşmacı, insan beyninin farklı anatomik dokularını belirtmek için bir görüntüyü beyaz maddeye ve gri maddeye bölen segmentasyon modelini tartışıyor. Bu modelin mimarisi, paylaşılan bir birim tipi kodlayıcı ve farklı kod çözücülerden oluşur. Konuşmacı, bir beyin görüntüsünü bir JPEG dosyasına aktarma, onu Python'a içe aktarma, görüntüyü değerlendirmek için modeli çalıştırma ve bölümlere ayrılmış görüntüyü Mathematica'ya geri almak için bir NS dosyasına dışa aktarma sürecini özetliyor. Süreç, OneNext kitaplığının kullanılmasını ve ek bir denetleyici gerçekleştirmeyi, ardından ONNX dışa aktarımını içe aktarmayı, Keras modeli için bir girdi ayarlamayı, tahmin yapmayı ve bölümlere ayrılmış görüntüyü bir NS dosyasına dışa aktarmayı içerir. Son olarak konuşmacı, görüntünün içe aktarılan aralığının sıfırdan bire ve 255'e bölünmesinin sağlanmasının önemini belirtiyor.

  • 00:10:00 Videonun bu bölümünde, konuşmacı ONNX kullanarak sinir ağlarını içe ve dışa aktarmayı tartışıyor. Modelleri Keras'tan ONNX'e aktarma ve ardından Mathematica'ya geri alma olasılığından bahsediyorlar. Konuşmacı, dönüştürme işleminde doğru ofseti kullanmanın önemini vurguluyor ve bazı ameliyatların ağ cerrahisi operatörleri kullanılarak değiştirilmesi gerekebileceğini belirtiyor. Ardından, ONNX ML araç paketi kullanılarak bir modelin Core ML'den ONNX'e nasıl taşınacağını ve önceden eğitilmiş bir modelin ve sınıflarının Core ML'ye nasıl aktarılacağını gösterirler. Video, sürece dahil olan birçok adım olduğunu vurguluyor ve kullanıcıların kendi başlarına değerlendirebilecekleri örnekler sunuyor.

  • 00:15:00 Bu bölümde konuşmacı, uygun işlevleri kullanarak ortalama ve varyans düzeltmesi dahil olmak üzere ONNX'ten Core ML'ye nasıl aktarılacağını açıklar. Ayrıca bir ağı PyTorch'tan ONNX'e ve ardından tam Wolfram diline dönüştürmeyi de kapsar. Süreç, nihai formatı kullanılabilir hale getirmek için gerekli işlemleri içerir ve konuşmacı, kullanılabilir bir formatı nasıl elde edip değerlendirebileceklerini gösterir. Son olarak, konuşmacı önceden eğitilmiş ağ ve sınıfları alıp dışa aktararak Wolfram dilinden ONNX aracılığıyla PyTorch'a geçişin son adımını gösterir.

  • 00:20:00 Videonun bu bölümünde, konuşmacılar sinir ağlarını ONNX ile içe ve dışa aktarmayı tartışıyor. ONNX modeli yüklendikten sonra PyTorch'ta dönüştürülüp değerlendirilebileceğini ve yeniden boyutlandırma, merkez kırpma ve normalleştirme gibi dönüşümlerin kullanıldığını açıklıyorlar. Model, en yüksek olasılıklara sahip üç sınıfı elde etmek için değerlendirilir. Konuşmacılar daha sonra, ithalat ve ihracat için desteğin genişletilmesi, ithalatçı için zorlu durumların iyileştirilmesi ve birden fazla operatör seti sürümüne ihracat yapılmasına izin verilmesi dahil olmak üzere ONNX ithalat ve ihracatının geleceğini tartışmaya devam eder.

  • 00:25:00 Bu bölümde konuşmacı ONNX ve MXNet arasındaki farkı açıklıyor. MXNet eksiksiz bir sinir ağı çerçevesidir, ONNX ise sadece sinir ağlarını dışa ve içe aktarmak için kullanılan bir dosya formatıdır. Konuşmacı ayrıca, gerçek bir çerçeve görevi gören ONNX runtime adlı ayrı bir yazılım olduğundan bahseder. Konuşmacı ayrıca dahili yardımcı programlar kullanılarak ONNX'e hangi işlevlerin aktarılabileceğinin nasıl kontrol edileceği hakkında bilgi sağlar.
Importing and Exporting Neural Networks with ONNX
Importing and Exporting Neural Networks with ONNX
  • 2022.01.22
  • www.youtube.com
ONNX is an open format to represent deep learning models. It allows easy conversion of models from one framework to another. In this talk, we will provide an...