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

 

ONNX ile Makine Öğreniminin gücünden yararlanın - Ron Dagdag



ONNX ile Makine Öğreniminin gücünden yararlanın - Ron Dagdag

Bu videoda Ron Dagdag, makine öğrenimi çerçevelerinin, özellikle de derin öğrenme çerçeveleri ile konuşlandırma arasında birlikte çalışabilirliği kolaylaştıran ONNX'in önemini araştırıyor. Mevcut modelleri dönüştürmek, Azure'un otomatik makine öğrenimi ile modelleri eğitmek ve Azure'ın özel görüş hizmetini kullanmak dahil olmak üzere ONNX modellerini edinmenin yollarını özetliyor. Dağdağ, makine öğrenimi modellerinin bulutta mı yoksa uçta mı dağıtılacağı kararını vurguluyor ve süreci daha sorunsuz hale getirmek için ONNX'ten yararlanmayı öneriyor. Ayrıca, bir makine öğrenimi modeli oluşturmak için Microsoft'un ML.NET'ini kullanma sürecini anlatıyor ve çıkarım için ONNX çalışma zamanını kullanarak ONNX modelinin bir uygulamaya nasıl dahil edileceğini gösteriyor. Dağdağ ayrıca, makine öğrenimi için açık bir standart olarak ONNX'i, çeşitli platformlarını ve dillerini ve modelleri daha küçük hale getiren araçları araştırıyor.

  • 00:00:00 Bu bölümde, makine öğrenimi bilgisayarları algoritmaları öğrenmeleri için eğitmeye odaklanırken geleneksel programlama girdi ve hesaplamalara odaklandığından, konuşmacı geleneksel programlamanın makine öğreniminden nasıl farklı olduğunu tartışıyor. Eğitim verileri, makine öğreniminde önemlidir ve bu veriler, sürecin bir parçası olarak algoritmaları öğrenmek üzere makineleri eğitmek için kullanılır. Konuşmacı, makine öğrenimi çerçeveleri ile dağıtım arasında bir köprü görevi gören ONNX (Açık Sinir Ağı Değişimi) gibi makine öğrenimi çerçevelerinin önemini vurgular. ONNX, modellerin derin öğrenme çerçeveleri arasında taşınmasına yardımcı olarak çerçeveler arasında birlikte çalışabilirliği sağlar.

  • 00:05:00 Bu bölümde, Ron Dagdag bir ONNX modeli elde etmenin farklı yollarını tartışıyor. Şeflere benzer şekilde veri bilimcileri, bir şirketin modelini geliştirmek için tarifi oluşturmaktan ve iyileştirmekten sorumluyken, ONNX modelleri bir işlem grafiğinin sinirsel temsili için PDF'ler gibidir. Azure özel görüntü hizmeti GitHub aracılığıyla, mevcut modelleri dönüştürme ve Azure'un otomatik makine öğrenimini kullanarak onları eğitme dahil olmak üzere ONNX modellerine ulaşmanın dört yolu vardır. Modelleri TensorFlow, Keras veya PyTorch'tan ONNX'e değiştirmek için dönüştürücüler mevcut olduğundan, modelleri ONNX'e dönüştürme işlemi basittir ve mevcut modeli yüklemek, dönüştürmeyi yapmak ve kaydetmek gibi önemli adımlar içerir. Genel olarak ONNX, şirketlerin makine öğrenimini uygulamalarına daha sorunsuz bir şekilde entegre etmelerine yardımcı olabilir.

  • 00:10:00 Bu bölümde, konuşmacı ONNX'in makine öğrenimi modelleri için kullanımını tartışıyor. ONNX, geliştiricilerin modellerini görselleştirirken girdi ve çıktı verilerinin ne olduğunu belirlemelerine olanak tanır. Komut satırı dönüştürme yoluyla kullanılabilir ve buluttaki GPU kümeleriyle hızla ölçeklenebilir. ONNX ayrıca modellerin sürümlendirilmesine ve dağıtıma yardımcı olabilecek bir model kaydı sunar. Konuşmacı, veri bilimcileri ve yazılım mühendisleri arasındaki farkı vurgular; birincisi gizli bir tarif üretirken, ikincisi onu çeşitli kaynaklarla entegre ederek, verileri tedarik ederek ve işlem hatları oluşturarak onu nasıl çalıştıracağını bulur. ONNX, Windows cihazları ve IoT uç noktaları dahil olmak üzere çeşitli cihazlara kurulabilir.

  • 00:15:00 Bu bölümde, konuşmacı makine öğrenimi modellerinin bulutta mı yoksa uçta mı konuşlandırılacağına ilişkin kararı tartışıyor; bu, kullanıcıya daha yakın işlemeyi ifade ediyor. Uca dağıtmanın daha uygun maliyetli, esnek olabileceğini ve video veya görüntüleri işlerken ideal olan daha düşük gecikme süresine sahip olabileceğini açıklıyor. Ek olarak, kurallar ve düzenlemeler verilerin belirli bir ağdan veya ülkeden ayrılmamasını gerektirdiğinde uca dağıtım gerekli olabilir. Konuşmacı, dağıtım sürecini daha sorunsuz hale getirmek için farklı makine öğrenimi çerçevelerinden modelleri dönüştürebilen bir aracı format olan ONNX'in kullanılmasını önerir.

  • 00:20:00 Bu bölümde, konuşmacı ONNX çerçevesini ve potansiyel uygulamalarını tartışıyor. ONNX, modellerin TensorFlow, Core ML ve transfer öğrenimi dahil olmak üzere farklı biçimlere dönüştürülmesine izin verir ve modelleri yürütmek için ONNX Runtime adı verilen yüksek performanslı bir çalışma süresine sahiptir. ONNX Runtime, platformlar arasıdır ve geleneksel makine öğrenimi işlemlerini destekler. Ayrıca bir GPU sürümüne ve bir C# API'sine sahiptir. Genel olarak, ONNX, geliştiriciler için güçlü bir araçtır ve kullanıcılar, docker kapsayıcısı örneğini kullanarak ONNX ekosistemi aracılığıyla kullanmaya başlayabilir. Konuşmacı demosunda, veri çerçevelerini kullanarak verileri işlemek için C# dilinde farklı ONNX paketlerinin nasıl indirileceğini ve kullanılacağını gösteriyor.

  • 00:25:00 Bu bölümde konuşmacı, yılların deneyimine dayalı olarak maaşı tahmin eden basit bir makine öğrenimi modeli oluşturmak için Microsoft'un ML.NET'ini kullanma sürecini gösteriyor. Önce verileri eğitim ve test kümelerine ayırır, makine öğrenimi bağlamını kullanarak bir boru hattı oluşturur ve eğitim kümesini kullanarak modeli eğitir. Daha sonra modelin metriklerini değerlendirir ve onu bir ONNX modeline kaydeder. Ardından, ONNX modelinin çıkarım için ONNX çalışma zamanını kullanan bir uygulamaya nasıl dahil edileceğini gösteriyor. Son olarak, uygulama için bir girdi kabı oluşturur ve puanı almak için modeli çalıştırır.

  • 00:30:00 Bu bölümde, konuşmacı ONNX çalıştırma zamanını kullanmanın yararlarını, geçmişte bunu kullanmış olan farklı Microsoft ekiplerini ve süreçlerini nasıl iyileştirdiğini tartışıyor. Win32 ve WinRT uygulamalarında Windows ailesi aygıtlarında bulunan Windows aygıtlarına dağıtım yapıyorsanız ve API'leri kullanarak ONNX çalışma zamanına bağlanıyorsanız Windows ML'yi kullanma hakkında da konuşuyor. Ardından konuşmacı, gerçek zamanlı yüksek kontrollü makine öğrenimi API'si oluşturmak için ideal olan ve oyun oynamak için en iyisi olan Direct ML'yi keşfediyor. Ayrıca, ONNX modellerini tarayıcıda veya nodej'lerde çalıştırmak için ONNX JS'yi ve tam bir işletim sistemine veya Linux Mac'e sahip olmayan cihazları kullanmaya başlamanıza izin veren Gömülü Öğrenim Kitaplığını da vurgulamaktadır.

  • 00:35:00 Bu bölümde Ron Dagdag, ONNX'in makine öğrenimi için açık bir standart olarak kullanımını ve farklı platformlara verimli bir şekilde nasıl dönüştürülebileceğini tartışıyor. ONNX modelleri dotnet, JavaScript ve Python gibi çeşitli dillerde oluşturulabilir. Performans, buluta veya uca konuşlandırma yoluyla elde edilebilir. Seyirciler, ONNX modelinizi C#'a aktarabilir misiniz, ONNX çalışma zamanının bellek ayak izi nedir ve büyük bir görüntü modelini daha küçük cihazlar için uygun daha küçük bir ONNX modeline nasıl dönüştürebilirsiniz gibi sorular sordu. Dağdağ, modelleri sıkıştırmak ve boyutunu küçültmek için budama veya niceleme kullanmayı önerdi. Ayrıca slaytların ve demo kodlarının GitHub deposunda, kodu denemek için ciltleyici ile birlikte bulunduğunun altını çizdi.

  • 00:40:00 Bu bölümde konuşmacı, ONNX modellerini boyut olarak küçültme sürecini tartışıyor. ONNX modeli, hangi işlemleri gerçekleştirebileceğini tanımlayan işlem grafiklerinden oluşur. Bir ONNX modelini küçültmenin belirli bir yolu olmasa da onu sıkıştırabilen bir yardımcı program vardır. Açık kaynaklı bir yazılım olduğu için ileride yeni bir özelliğin çıkması muhtemel. İzleyicilerin, sohbet veya Soru-Cevap web sitesi aracılığıyla Ron'a başka sorular göndermeleri önerilir.
 

ONNX ile Makine Öğreniminin gücünden yararlanın - Ron Dagdag



ONNX ile Makine Öğreniminin gücünden yararlanın - Ron Dagdag

Bu videoda Ron Dagdag, makine öğrenimi çerçevelerinin, özellikle de derin öğrenme çerçeveleri ile konuşlandırma arasında birlikte çalışabilirliği kolaylaştıran ONNX'in önemini araştırıyor. Mevcut modelleri dönüştürmek, Azure'un otomatik makine öğrenimi ile modelleri eğitmek ve Azure'ın özel görüş hizmetini kullanmak dahil olmak üzere ONNX modellerini edinmenin yollarını özetliyor. Dağdağ, makine öğrenimi modellerinin bulutta mı yoksa uçta mı dağıtılacağı kararını vurguluyor ve süreci daha sorunsuz hale getirmek için ONNX'ten yararlanmayı öneriyor. Ayrıca, bir makine öğrenimi modeli oluşturmak için Microsoft'un ML.NET'ini kullanma sürecini anlatıyor ve çıkarım için ONNX çalışma zamanını kullanarak ONNX modelinin bir uygulamaya nasıl dahil edileceğini gösteriyor. Dağdağ ayrıca, makine öğrenimi için açık bir standart olarak ONNX'i, çeşitli platformlarını ve dillerini ve modelleri daha küçük hale getiren araçları araştırıyor.

  • 00:00:00 Bu bölümde, makine öğrenimi bilgisayarları algoritmaları öğrenmeleri için eğitmeye odaklanırken geleneksel programlama girdi ve hesaplamalara odaklandığından, konuşmacı geleneksel programlamanın makine öğreniminden nasıl farklı olduğunu tartışıyor. Eğitim verileri, makine öğreniminde önemlidir ve bu veriler, sürecin bir parçası olarak algoritmaları öğrenmek üzere makineleri eğitmek için kullanılır. Konuşmacı, makine öğrenimi çerçeveleri ile dağıtım arasında bir köprü görevi gören ONNX (Açık Sinir Ağı Değişimi) gibi makine öğrenimi çerçevelerinin önemini vurgular. ONNX, modellerin derin öğrenme çerçeveleri arasında taşınmasına yardımcı olarak çerçeveler arasında birlikte çalışabilirliği sağlar.

  • 00:05:00 Bu bölümde, Ron Dagdag bir ONNX modeli elde etmenin farklı yollarını tartışıyor. Şeflere benzer şekilde veri bilimcileri, bir şirketin modelini geliştirmek için tarifi oluşturmaktan ve iyileştirmekten sorumluyken, ONNX modelleri bir işlem grafiğinin sinirsel temsili için PDF'ler gibidir. Azure özel görüntü hizmeti GitHub aracılığıyla, mevcut modelleri dönüştürme ve Azure'un otomatik makine öğrenimini kullanarak onları eğitme dahil olmak üzere ONNX modellerine ulaşmanın dört yolu vardır. Modelleri TensorFlow, Keras veya PyTorch'tan ONNX'e değiştirmek için dönüştürücüler mevcut olduğundan, modelleri ONNX'e dönüştürme işlemi basittir ve mevcut modeli yüklemek, dönüştürmeyi yapmak ve kaydetmek gibi önemli adımlar içerir. Genel olarak ONNX, şirketlerin makine öğrenimini uygulamalarına daha sorunsuz bir şekilde entegre etmelerine yardımcı olabilir.

  • 00:10:00 Bu bölümde, konuşmacı ONNX'in makine öğrenimi modelleri için kullanımını tartışıyor. ONNX, geliştiricilerin modellerini görselleştirirken girdi ve çıktı verilerinin ne olduğunu belirlemelerine olanak tanır. Komut satırı dönüştürme yoluyla kullanılabilir ve buluttaki GPU kümeleriyle hızla ölçeklenebilir. ONNX ayrıca modellerin sürümlendirilmesine ve dağıtıma yardımcı olabilecek bir model kaydı sunar. Konuşmacı, veri bilimcileri ve yazılım mühendisleri arasındaki farkı vurgular; birincisi gizli bir tarif üretirken, ikincisi onu çeşitli kaynaklarla entegre ederek, verileri tedarik ederek ve işlem hatları oluşturarak onu nasıl çalıştıracağını bulur. ONNX, Windows cihazları ve IoT uç noktaları dahil olmak üzere çeşitli cihazlara kurulabilir.

  • 00:15:00 Bu bölümde, konuşmacı makine öğrenimi modellerinin bulutta mı yoksa uçta mı konuşlandırılacağına ilişkin kararı tartışıyor; bu, kullanıcıya daha yakın işlemeyi ifade ediyor. Uca dağıtmanın daha uygun maliyetli, esnek olabileceğini ve video veya görüntüleri işlerken ideal olan daha düşük gecikme süresine sahip olabileceğini açıklıyor. Ek olarak, kurallar ve düzenlemeler verilerin belirli bir ağdan veya ülkeden ayrılmamasını gerektirdiğinde uca dağıtım gerekli olabilir. Konuşmacı, dağıtım sürecini daha sorunsuz hale getirmek için farklı makine öğrenimi çerçevelerinden modelleri dönüştürebilen bir aracı format olan ONNX'in kullanılmasını önerir.

  • 00:20:00 Bu bölümde, konuşmacı ONNX çerçevesini ve potansiyel uygulamalarını tartışıyor. ONNX, modellerin TensorFlow, Core ML ve transfer öğrenimi dahil olmak üzere farklı biçimlere dönüştürülmesine izin verir ve modelleri yürütmek için ONNX Runtime adı verilen yüksek performanslı bir çalışma süresine sahiptir. ONNX Runtime, platformlar arasıdır ve geleneksel makine öğrenimi işlemlerini destekler. Ayrıca bir GPU sürümüne ve bir C# API'sine sahiptir. Genel olarak, ONNX, geliştiriciler için güçlü bir araçtır ve kullanıcılar, docker kapsayıcısı örneğini kullanarak ONNX ekosistemi aracılığıyla kullanmaya başlayabilir. Konuşmacı demosunda, veri çerçevelerini kullanarak verileri işlemek için C# dilinde farklı ONNX paketlerinin nasıl indirileceğini ve kullanılacağını gösteriyor.

  • 00:25:00 Bu bölümde konuşmacı, yılların deneyimine dayalı olarak maaşı tahmin eden basit bir makine öğrenimi modeli oluşturmak için Microsoft'un ML.NET'ini kullanma sürecini gösteriyor. Önce verileri eğitim ve test kümelerine ayırır, makine öğrenimi bağlamını kullanarak bir boru hattı oluşturur ve eğitim kümesini kullanarak modeli eğitir. Daha sonra modelin metriklerini değerlendirir ve onu bir ONNX modeline kaydeder. Ardından, ONNX modelinin çıkarım için ONNX çalışma zamanını kullanan bir uygulamaya nasıl dahil edileceğini gösteriyor. Son olarak, uygulama için bir girdi kabı oluşturur ve puanı almak için modeli çalıştırır.

  • 00:30:00 Bu bölümde, konuşmacı ONNX çalıştırma zamanını kullanmanın yararlarını, geçmişte bunu kullanmış olan farklı Microsoft ekiplerini ve süreçlerini nasıl iyileştirdiğini tartışıyor. Win32 ve WinRT uygulamalarında Windows ailesi aygıtlarında bulunan Windows aygıtlarına dağıtım yapıyorsanız ve API'leri kullanarak ONNX çalışma zamanına bağlanıyorsanız Windows ML'yi kullanma hakkında da konuşuyor. Ardından konuşmacı, gerçek zamanlı yüksek kontrollü makine öğrenimi API'si oluşturmak için ideal olan ve oyun oynamak için en iyisi olan Direct ML'yi keşfediyor. Ayrıca, ONNX modellerini tarayıcıda veya nodej'lerde çalıştırmak için ONNX JS'yi ve tam bir işletim sistemine veya Linux Mac'e sahip olmayan cihazları kullanmaya başlamanıza izin veren Gömülü Öğrenim Kitaplığını da vurgulamaktadır.

  • 00:35:00 Bu bölümde Ron Dagdag, ONNX'in makine öğrenimi için açık bir standart olarak kullanımını ve farklı platformlara verimli bir şekilde nasıl dönüştürülebileceğini tartışıyor. ONNX modelleri dotnet, JavaScript ve Python gibi çeşitli dillerde oluşturulabilir. Performans, buluta veya uca konuşlandırma yoluyla elde edilebilir. Seyirciler, ONNX modelinizi C#'a aktarabilir misiniz, ONNX çalışma zamanının bellek ayak izi nedir ve büyük bir görüntü modelini daha küçük cihazlar için uygun daha küçük bir ONNX modeline nasıl dönüştürebilirsiniz gibi sorular sordu. Dağdağ, modelleri sıkıştırmak ve boyutunu küçültmek için budama veya niceleme kullanmayı önerdi. Ayrıca slaytların ve demo kodlarının GitHub deposunda, kodu denemek için ciltleyici ile birlikte bulunduğunun altını çizdi.

  • 00:40:00 Bu bölümde konuşmacı, ONNX modellerini boyut olarak küçültme sürecini tartışıyor. ONNX modeli, hangi işlemleri gerçekleştirebileceğini tanımlayan işlem grafiklerinden oluşur. Bir ONNX modelini küçültmenin belirli bir yolu olmasa da onu sıkıştırabilen bir yardımcı program vardır. Açık kaynaklı bir yazılım olduğu için ileride yeni bir özelliğin çıkması muhtemel. İzleyicilerin, sohbet veya Soru-Cevap web sitesi aracılığıyla Ron'a başka sorular göndermeleri önerilir.
 

ONNX ile Makine Öğreniminin Gücünden Yararlanın | Ron Lyle Dağdağ | Conf42 Makine Öğrenimi 2021


ONNX ile Makine Öğreniminin Gücünden Yararlanın | Ron Lyle Dağdağ | Conf42 Makine Öğrenimi 2021

Bu videoda Ron Dagdağ, özellikle modelleri telefonlar veya bulut altyapısı gibi farklı uç noktalara dağıtırken, makine öğrenimi modelleri için açık bir format olarak ONNX'i (Açık Sinir Ağı Değişimi) kullanmanın faydalarını tartışıyor. Düşük performans veya farklı çerçevelerde eğitilmiş modelleri birleştirme gibi bir modeli ONNX'e dönüştürmenin yararlı olabileceği senaryoları ele alıyor ve RestNet gibi popüler modellerin ONNX formatında nasıl indirilebileceğini açıklıyor. Ek olarak, makine öğrenimi modellerini uçta çalıştırmanın faydalarının yanı sıra modelleri buluta kaydederek ve sürümlerini oluşturarak yönetmenin önemini tartışıyor. Bir modelin ONNX'e nasıl dönüştürüleceğini ve çıkarım yapmak için Python'da ONNX çalışma zamanının nasıl kullanılacağını gösteriyor ve ONNX'in veri bilimcileri ve yazılım mühendislerinin birlikte etkili bir şekilde çalışmasını sağlamadaki rolünü vurgulayarak bitiriyor.

  • 00:00:00 Bu bölümde, Spacy'den Ron Dagdag, sinir ağlarına ek olarak geleneksel makine öğrenimi modellerini işleyebilen makine öğrenimi modelleri için açık bir format olarak ONNX'i (Açık Sinir Ağı Değişimi) tanıtıyor. Bu formatın, makine öğreniminin eğitim aşaması ile telefonlardan bulut altyapısına kadar çeşitli uç noktalar olabilen öğrenilen modelin nereye dağıtılacağı arasındaki boşluğu kapattığını vurguluyor. ONNX, başta Microsoft ve Facebook olmak üzere artan sayıda kuruluşla ortaklıklar kazanmıştır.

  • 00:05:00 Bu bölümde konuşmacı, bir programlama dilinde eğitilen makine öğrenimi modellerinin başka bir dilde veya farklı donanımlarda konuşlandırılmasına izin veren bir çerçeve olan ONNX'in artan popülaritesini ve hangi durumlarda ortaya çıktığını anlatıyor. bir modeli ONNX'e dönüştürmek için yararlı olabilir. Bunlar, IoT veya uç cihazlara dağıtırken veya farklı çerçevelerde eğitilmiş modelleri birleştirirken yüksek gecikme veya düşük performansın olduğu senaryoları içerir. Konuşmacı, ONNX'i, modellerin farklı türde cihazlarda görüntülenmesine izin verdiği için bir PDF'ye benzetiyor ve ONNX model hayvanat bahçesinden dışa aktarma veya Azure Özel Vizyon kullanma dahil olmak üzere ONNX modellerinin nasıl oluşturulabileceğini tartışmaya devam ediyor.

  • 00:10:00 Bu bölümde konuşmacı, RestNet gibi popüler makine öğrenimi modellerinin kullanım için kolayca indirilebilen ONNX biçimlerine nasıl dönüştürüldüğünü tartışıyor. Ayrıca sinir ağı modellerinin Torch ve SKL gibi araçlar kullanılarak veya komut satırı aracılığıyla ONNX'e nasıl dönüştürülebileceğinden de bahsediyor. Ayrıca veri bilimcinin orijinal koduna ihtiyaç duymadan işlem grafiğinin girdi ve çıktılarını göstererek ONNX modellerini görselleştiren bir araç olan Netron'dan bahsediyor. Son olarak konuşmacı, makine öğrenimi modellerini buluta kaydederek ve sürümlerini oluşturarak yönetmenin önemini vurguluyor.

  • 00:15:00 Bu bölümde Ron Lyle Dagdag, makine öğrenimi modellerinin nereye dağıtılacağının önemini ve dağıtım için dikkate alınması gereken farklı faktörleri tartışıyor. Dağıtımın, buluta dağıtım veya uçta, kullanıcıya daha yakın bir yerde çıkarım yapma gibi çeşitli şekillerde yapılabileceğini açıklıyor. Ek olarak, bir hizmet veya bir Docker kapsayıcısı aracılığıyla yapılabilen dağıtım için bir görüntü oluşturmanın ve bir ardışık düzen oluşturmanın öneminden bahsediyor ve ONNX'i bir uygulamaya dahil etmek için kullanılabilecek ONNX Docker görüntülerinin kullanılabilirliğinden bahsediyor.

  • 00:20:00 Bu bölümde konuşmacı, makine öğrenimi modellerini bulut yerine uçta çalıştırmanın faydalarını tartışıyor. Modeli cihazda yerel olarak çalıştırmak daha hızlı çıkarım süreleri sağlayabildiğinden, önemli avantajlardan biri düşük gecikme süresidir. Başka bir avantaj da ölçeklenebilirliktir çünkü modeli buluta göndermek yerine milyonlarca veya milyarlarca cihaza dağıtmak daha verimli olabilir. ONNX ekosistemi, mevcut modelleri farklı donanım hızlandırıcıları kullanarak uçta çalışabilen bir formata dönüştürmek için bir çözüm olarak tanıtıldı. ONNX modelleri için yüksek performanslı bir çıkarım motoru olan ONNX çalışma zamanı, modelleri uçta çalıştırmak için açık kaynaklı bir çözüm olarak da tartışılmaktadır.

  • 00:25:00 Bu bölümde, konuşmacı ONNX çalışma zamanını ve pratik ve basit model tabanlı API çıkarımı için WinML API gibi Windows AI platformuyla nasıl kullanılabileceğini tartışıyor. Ek olarak, oyun oluşturmak için DirectML API'si, modelleri bir tarayıcıda çalıştırmak için ONNX.js adlı bir JavaScript kitaplığı ve sistemin yeteneklerine bağlı olarak birkaç sağlam sürücü modeli vardır. Konuşmacı daha sonra ml.net'te eğitilmiş bir modelin nuget paketleri ve C# uygulaması kullanılarak ONNX'e nasıl dönüştürüleceğini tanıtmaya devam eder.

  • 00:30:00 Bu bölümde, Ron Lyle Dagdağ, bir gözden geçirenin ml.net'i kullanarak uzun yıllara dayanan deneyimine dayalı olarak maaşı tahmin eden bir makine öğrenimi modelinin nasıl oluşturulacağına dair basit bir örnek gösteriyor. Model eğitildikten sonra, "context.model.convert_to_onnx" işlevi kullanılarak bir ONNX modeline dönüştürülebilir. ONNX modeli daha sonra doğrulanabilir ve ONNX çalışma zamanı kitaplığı kullanılarak bir Python not defterinde çıkarım yapmak için kullanılabilir. Modelin girdisi ve çıktısı, "netron.app" kullanılarak görüntülenir.

  • 00:35:00 Bu bölümde konuşmacı, ML.NET'te oluşturulan ve bir ONNX dosyasına aktarılan bir modelden çıkarım yapmak için Python'da ONNX çalışma zamanının nasıl kullanılacağını gösterir. Konuşmacı, ONNX modelinin giriş ve çıkışlarının adının, şeklinin ve türünün nasıl alınacağını ve giriş değerlerinin çıkarım için modele nasıl iletileceğini gösterir. Konuşmacı ayrıca, makine öğrenimi modellerini uygulamalara entegre etmek için açık bir standart olarak ONNX kullanmanın önemini ve ONNX'in veri bilimcileri ile yazılım mühendislerinin etkili bir şekilde birlikte çalışmasını nasıl sağladığını vurguluyor. Son olarak, konuşmacı, bir ONNX modelinin nasıl oluşturulacağı ve dağıtılacağı ve ONNX dağıtımını destekleyen çeşitli platformlar da dahil olmak üzere, tartışmadan önemli çıkarımların bir özetini sunar.

  • 00:40:00 Bu bölümde, Spacy'de baş yazılım mühendisi ve Microsoft'un MVP'si olan Ron Dagdag, izleyicilere teşekkür ederek ve ONNX çalışma zamanı, Jupyter dizüstü bilgisayarları, fırınlar hakkında bilgi almak isterlerse kendisiyle iletişim kurmanın yollarını paylaşarak videoyu sonlandırıyor. , fırıncılar ve ekmekler.
 

ONNX Runtime Web ile JavaScript'te Çıkarım!



ONNX Runtime Web ile JavaScript'te Çıkarım!

Video, önceden seçilmiş görüntüler üzerinde çıkarım yapmak için bir kullanıcı arabirimi sunan bir Next.js şablonu aracılığıyla tarayıcıda ONNX Runtime Web kullanımını kapsar. Görüntü verilerinin RGB değerleri ve boyut oluşturma kullanılarak bir tensöre dönüştürülmesi işlemi gösterilmektedir. Modele, yürütme sağlayıcısına ve oturum seçeneklerine giden yolu kullanarak önceden işlenmiş verileri ONNX çıkarım oturumuna ileten model yardımcı işlevi araştırılır. Model için beslemeler, giriş adı ve tensör nesnesi kullanılarak oluşturulur ve ilk beş sonucu elde etmek için session.run işlevine geçirilir. İlk sonuç, web paketi yapılandırması ve ONNX Çalışma Zamanı Düğümü kullanılarak sunucu tarafı çıkarımı için talimatlar sağlanırken görüntü ekranını doldurur.

  • 00:00:00 Bu bölümde, çıkarım yapmak için gerekli tüm ön işlemeyi sağlayan bir şablon kullanarak tarayıcıda JavaScript ile ONNX Çalışma Zamanı Web'i kullanmayı öğreniyoruz. Şablon, üretime hazır uygulamalar oluşturmak için bir React çerçevesi olan Next.js üzerine kuruludur ve önceden seçilmiş örnek görüntüler üzerinde çıkarım yapmak için basit bir kullanıcı arayüzü sunar. Yazar, görüntüleri görüntülemek için bir HTML tuval öğesi oluşturan ve çıkarımla ilgili çeşitli istatistikleri rapor eden kodun içinden geçiyor. Görüntü daha sonra görüntü yardımcı programı kullanılarak bir tensöre dönüştürülür ve ardından çıkarımı gerçekleştirmek için ONNX Çalışma Zamanı Web API'sini çağıran model yardımcısındaki tahmin işlevinden geçirilir.

  • 00:05:00 Bu bölümde video, RGB değerlerini kullanarak çıkarım yapmak için görüntü verilerini bir tensöre dönüştürme, yeniden şekillendirme ve ONNX Runtime Web'deki tensör nesnesini kullanarak veri ve boyutlarla bir tensör oluşturma sürecini açıklar. Video ayrıca, modele, yürütme sağlayıcısına (WebGL veya WebAssembly) ve oturum seçeneklerine giden yolu vererek önceden işlenmiş verileri ONNX çıkarım oturumuna ileten model yardımcı işlevini de araştırıyor. Giriş adı ve ORT tensör nesnesi, sonucu elde etmek için session.run işlevine iletilen model beslemeleri oluşturmak için gereklidir. İlk beş sonuç döndürülür ve ilk sonuç görüntü ekranını doldurmak için kullanılır. Ek olarak, bir API çerçevesiyle sunucu tarafında çıkarım yapmak için ONNX Çalışma Zamanı Düğümünü kullanma talimatlarıyla birlikte bir web paketi yapılandırması sağlanır.
 

Ron Dagdag - ONNX ile Tarayıcıda Yapay Sinir Ağları Oluşturma



Ron Dagdag - ONNX ile Tarayıcıda Yapay Sinir Ağları Oluşturma

Bu videoda Ron Dagdag, ONNX makine öğrenimi çerçevesinin sinir ağlarını bir tarayıcıda çalıştırmak için nasıl kullanılabileceğini açıklıyor. Makine öğreniminin temellerini, ONNX modellerinin oluşturulmasını ve devreye alınmasını ve ONNX çalıştırma ortamını tartışıyor. Dağdağ, ONNX'in kullanımını, iş tecrübesine dayalı maaş tahmini ve görüntülerdeki duyguların tespiti gibi çeşitli örneklerle gösteriyor. Ayrıca ONNX modellerinin Android ve iOS gibi farklı platformlara konuşlandırılmasını ele alıyor ve ONNX ile deney yapmak için mevcut kaynakları ve demoları vurguluyor. Dagdag, ONNX ile deney yapmayı teşvik ediyor ve ONNX çalışma zamanını kullanarak hedef platformlarda verimli çıkarım yapmanın önemini vurguluyor.

  • 00:00:00 Bu bölümde, Yazılım Mühendisliği Direktörü ve Microsoft MVP'si Ron Dagdağ, makine öğreniminin temellerini ve geleneksel programlama ile makine öğrenimi arasındaki farkı tartışıyor. Makine öğreniminde, girdiyi bir dizi örnek veya yanıt sağlayarak takip ettiğini ve amacın bilgisayarı sizin için bir algoritma oluşturması için eğitmek olduğunu açıklıyor. Ayrıca, sinir ağlarını tarayıcıda çalıştırmalarına izin verdiği için JavaScript geliştiricileri arasında popülerlik kazanan bir makine öğrenimi çerçevesi olan ONNX'i de tartışıyor.

  • 00:05:00 Bu bölümde Ron Dagdag, eğitim ile modelleri uygulamalara dahil etme arasında bir köprü görevi gören makine öğrenimi modelleri için açık bir format olan ONNX'i tartışıyor. ONNX, sinir ağlarıyla sınırlı değildir, aynı zamanda geleneksel makine öğrenimini de içerir ve GitHub'da mevcuttur ve çok sayıda katkıda bulunanı vardır. Üretime hazırdır ve üretim kullanımı için optimize edilmiştir, bu da onu kaynakları kısıtlı uç cihazlar veya IoT cihazları için uygun hale getirir. Ek olarak ONNX, farklı çerçevelerde oluşturulan modellerin birleştirilmesine izin vererek, onu farklı makine öğrenimi çerçeveleri kullanan birden çok ekiple işbirliği yapmak için mükemmel bir araç haline getirir.

  • 00:10:00 Bu bölümde Ron Dagdag, bir ONNX modeli oluşturma ve onu dağıtma sürecini tartışıyor. Süreci ekmek pişirmeye benzeterek, tıpkı ekmek yapmanın gizli bir tarif gerektirdiği gibi, veri bilimcilerinin belirli veri kümesine uyan doğru modeli oluşturmak için farklı kombinasyonlar denediğini belirtiyor. Dağdağ, ONNX modelinin Netron uygulaması kullanılarak görselleştirilebilen bir işlem grafiği olduğunu açıklıyor. ONNX model hayvanat bahçesini kullanmak, görüntü sınıflandırması için Azure özel görüş hizmeti ve mevcut bir modeli dönüştürmek dahil olmak üzere modeli oluşturmanın üç yolundan bahsediyor. Dagdag, bir modelle deneme yapmanın en kolay yolunun, bir veri setinin yüklenmesine, etiketlenmesine ve özelleştirilmiş bir ONNX modeli oluşturmak için kullanılmasına izin veren özel görüş hizmetini kullanmak olduğunu öne sürüyor.

  • 00:15:00 Bu bölümde Ron Dagdag, mevcut makine öğrenimi modellerinin ONNX'e nasıl dönüştürüleceğini ve ONNX dosyalarına nasıl kaydedileceğini açıklıyor. TensorFlow ve Scikit-learn için komut satırı araçlarının yanı sıra PyTorch ve Keras kullanarak basit örnekler sağlıyor. Ayrıca dağıtım sürecinde doğru sürümün kullanıldığından emin olmak için modelleri yönetmenin ve kaydetmenin öneminden de bahsediyor. Dağdağ, yazılım mühendislerinin, makine öğrenimi modellerini mevcut uygulamalarla entegre etmek için gerekli becerileri sağlayarak veri bilimcileri güçlendirebileceğini ve böylece onları kuruluşlar için yararlı hale getirebileceğini vurguluyor.

  • 00:20:00 Bu bölümde konuşmacı, bir VM'ye veya iOS ya da Android gibi bir cihaza dağıtım da dahil olmak üzere sinir ağları için dağıtım seçeneklerini tartışıyor. McDonald's'ın ekmeğini bir fabrikada pişirmesi ile Subway'in restoranda pişirmesi benzetmesi kullanılarak bulut ve uç dağıtım arasındaki fark da vurgulanıyor. ONNX çalışma zamanı, JavaScript, Node ve React Native'deki ONNX modellerinde çıkarım yapmak için kullanılabilecek bir açık kaynak aracı olarak tanıtıldı. Konuşmacı daha sonra bir ONNX modelinin bir düğüm uygulamasında nasıl görselleştirileceğine dair bir demo sunar ve .NET interaktif ve bir Python not defteri kullanarak modeli nasıl eğitip ONNX'e dönüştürdüklerine kısaca değinir.

  • 00:25:00 Bu bölümde Ron Dagdag, Microsoft ML kullanarak bir modeli eğitmek için NuGet paketlerinden nasıl bir ONNX modeli oluşturduğunu açıklıyor. Microsoft tarafından sağlanan ve tek bir girdi faktörüne dayalı bir çıktı tahmin eden verileri kullanır - bu durumda, kullanıcı deneyimi ve yılların deneyimine dayalı maaş. Modeli eğittikten sonra, bir ONNX dosyası oluşturur ve ardından bir oturum oluşturarak ve beslemeleri ileterek bir JavaScript uygulamasına entegre eder. Oturumda beslemeler ayarlandıktan sonra, onu çalıştırır ve skoru kullanır. tahmin sonuçlarını görüntülemek için çıktı. Dagdag, JavaScript uygulamasını çalıştırmak için çalışma zamanı ortamı için ONNX Runtime Node'u kullanır.

  • 00:30:00 Bu bölümde Ron Dagdag, web birleştirme ve webGL teknolojilerini kullanan JavaScript çalıştıran bir kitaplık olan ONNX runtime web'i kullanarak tarayıcıda makine öğrenimi modellerinin nasıl çalıştırılacağını açıklıyor. Modelleri tarayıcıda çalıştırmak, yerel olarak çalıştığı ve internet bağlantısı gerektirmediği için daha hızlı, daha güvenli ve daha ucuzdur. Ron ayrıca tarayıcıda büyük modeller çalıştırmamanız gerektiğini açıklıyor ve girdiyi modele iletmek için kullandığı ve bir tahmin çıktısı aldığı basit bir örnek kullanarak mevcut bir ONNX modelinin bir sinir ağında nasıl çalıştırılacağını gösteriyor.

  • 00:35:00 Bu bölümde Dagdag, bir ONNX modeli oluşturma ve bir tarayıcıya entegre etme sürecini gösteriyor. Örnek olarak 64x64 gri tonlamalı bir görüntüden duyguları ayırt edebilen bir ONNX modelini kullanıyor. Modeli bir görüntü üzerinde kullanmak için, Dagdag önce görüntüyü yeniden boyutlandırır ve önceden işler, ardından onu bir tensöre dönüştürür. ONNX modelini üç adımda yükler, bir oturum oluşturur, girdiyi modele besler ve görüntüde algılanan duyguları göstermek için çıktıyı işler. Dağdağ, bir ONNX'i bir tarayıcı uygulamasıyla entegre etme sürecinin bir oturum oluşturmayı, onu session.run'a geçirmeyi ve çıktıyı işlemeyi içerdiğini belirtiyor.

  • 00:40:00 Bu bölümde, Ron Dagdag, kullanıcıların modelin doğru bir şekilde sınıflandırıp sınıflandıramayacağını görmek için bir sayı çizmesine olanak tanıyan MNIST demosu gibi, ONNX ile deney yapmak için mevcut olan farklı kaynakları ve demoları tartışıyor. ONNX'in Android ve iOS platformlarında React Native ile kullanılabileceğini ancak mobil cihazlar için optimize edilmiş bir formata dönüştürülmesi gerektiğini de belirtiyor. ONNX, Windows 10, Mac, Ubuntu, iOS, Android gibi çeşitli platformlarla uyumludur ve webassembly veya webgl ile kullanılabilir. Ron, modeli hedef platformda verimli bir şekilde çalıştırmak ve neyin eğitim ve çıkarım için kullanıldığını ayırmak için ONNX çalışma zamanını kullanmanın önemini vurguluyor. Ayrıca ONNX'in Windows ML, Azure ML kullanılarak konuşlandırılabileceğini ve JavaScript ve Python ile kullanılabileceğini belirtiyor. Ron, ONNX'in Snapchat AR gözlükleri gibi farklı cihazlarda çalışabileceğini söyleyerek sözlerini bitiriyor ve izleyicileri mevcut kaynakları ve demoları kullanarak ONNX ile denemeler yapmaya teşvik ediyor.
 

ONNX ile sinir ağlarını tarayıcıda çalıştırma - Ron Dagdag - NDC Melbourne 2022



ONNX ile sinir ağlarını tarayıcıda çalıştırma - Ron Dagdag - NDC Melbourne 2022

Ron Dagdağ, sinir ağlarının tarayıcılarda çalıştırılması konusundaki uzmanlığını ONNX ile paylaşıyor. Programlamanın temellerini ve makine öğreniminden nasıl farklı olduğunu, JavaScript ve makine öğrenimi çerçevelerinin kullanılabilirliğini ve makine öğrenimi modellerinin telefonlar, Nesnelerin İnterneti ve bulut dahil farklı cihazlarda nasıl çalışabileceğini tartışıyor. Farklı çerçevelerde oluşturulan modelleri farklı programlama dillerindeki mevcut uygulamalarla entegre edebilen makine öğrenimi modelleri için açık bir format olan ONNX'i tanıtıyor. Dagdag, performans, güvenlik ve maliyeti optimize ederken ONNX modellerini tarayıcılarda çalıştırmak için ONNX çalışma zamanı, web montajı ve web GL teknolojilerini birleştirerek ONNX modellerinin nasıl oluşturulacağını, yönetileceğini ve dağıtılacağını gösterir. Videoda ayrıca mobil cihazlarda önceden eğitilmiş modellerin puanlanması, maliyet hususları ve büyük miktarda verinin yerel olarak işlenmesi için uca daha yakın nesne algılamayı çalıştırmanın faydaları ele alınır.

  • 00:00:00 Bu bölümde, Ron Dagdag programlamanın temellerini ve bunun makine öğreniminden nasıl farklı olduğunu açıklıyor. Çıkarımda kullanılan bir model oluşturmak için gerekli eğitim verilerini ve çerçeveyi tartışıyor. Ayrıca çeşitli JavaScript ve makine öğrenimi çerçevelerinin kullanılabilirliğine de dikkat çekiyor. Son olarak, makine öğrenimi modellerinin telefonlar, Nesnelerin İnterneti ve bulut dahil olmak üzere farklı cihazlarda çalışabileceğini ve ayrıca modeli iyileştirmek için bir geri bildirim döngüsü haline gelebileceğini vurguluyor.

  • 00:05:00 Bu bölümde konuşmacı, GitHub'da açık kaynak olan makine öğrenimi modelleri için açık bir format olan ONNX'i (Open Neural Network Exchange) tanıtıyor. ONNX, PyTorch ve Keras gibi farklı çerçevelerde oluşturulan makine öğrenimi modellerinin C#, Java ve JavaScript gibi farklı programlama dillerindeki mevcut uygulamalarla entegrasyonunu sağlar. ONNX'i kullanmak, özellikle IoT veya uç cihazlarda çalışırken yüksek çıkarım gecikmesine ve hızlı sonuçlara ihtiyaç duyduğunuzda kullanışlıdır. Ayrıca ONNX, farklı modellerin birleştirilmesine ve uzaktan göndermek yerine yerel olarak eğitilmesine olanak tanır. Oturumun gündemi, ONNX modellerinin oluşturulmasını ve bunların dağıtılmasını içerir.

  • 00:10:00 Bu bölümde, konuşmacı dağıtım için bir ONNX modeli oluşturmanın farklı yollarını tartışıyor. Bunun bir yolu, diğerlerinin yanı sıra görüntü sınıflandırması üzerine kurulu mevcut modellerin zaten ücretsiz olarak indirilebildiği GitHub'daki ONNX model Hayvanat Bahçesi'dir. Başka bir yol da, Microsoft'un bir görüntünün veya veri kümesinin yüklenebildiği, etiketlenebildiği ve bir ONNX modeline aktarılabilen özel bir model oluşturmak için eğitilebildiği Özel Görüş hizmetidir. Mevcut modelleri dönüştürmek, kitaplıklar veya PyTorch kitaplığı veya ONNX ML araçları gibi araçlar kullanılarak yapılabilecek başka bir seçenektir. Konuşmacı, bir şirketin verileri için en etkili modeli oluşturmak için en iyi yaklaşımı deneme ve bulma konusunda bir veri bilimcinin önemini vurguluyor.

  • 00:15:00 Bu bölümde Ron Dagdag, modellerin kod değişiklikleri için bir Github deposu gibi kaydedilebildiği ve yönetilebildiği Azure Machine Learning kullanarak makine öğrenimi modelleri oluşturma ve yönetme sürecini açıklıyor. Ayrıca Visual Studio Code'da ml.net kullanarak bir makine öğrenimi modelinin nasıl oluşturulacağını ve ONNX netron uygulamasında açılabilen bir model.onnx dosyası oluşturan bir komut satırı arabirimi kullanılarak ONNX'e nasıl aktarılacağını da gösteriyor.

  • 00:20:00 Bu bölümde Ron Dagdag, ONNX modellerinin oluşturulduktan sonra nasıl devreye alınacağını tartışıyor. Modelleri uygulamalarla entegre etmede konuşlandırmanın çok önemli olduğunu ve geliştiricilerin modeli bulutta mı yoksa uçta mı çalıştıracağını düşünmeleri gerektiğini açıklıyor. Bulutta çalışırken, geliştiricilerin onu hangi veri merkezine dağıtacaklarına karar vermesi gerekirken uçta dağıtmak, modelin telefon veya tarayıcı gibi kullanıcıya daha yakın çalışması anlamına gelir. Dağdağ, modeli uçta çalıştırmanın esneklik gibi avantajlarını ve para toplamak için sistemler oluşturmanın veya verileri işleyip iş kuralları oluşturmak için iletmenin önemine dikkat çekiyor.

  • 00:25:00 Bu bölümde konuşmacı, ONNX modelleri için yüksek performanslı bir çıkarım motoru olan, açık kaynaklı ve ONNX ML spesifikasyonu ile tamamen uyumlu olan ONNX runtime hakkında konuşuyor. ONNX çalışma zamanı, geliştiricilerin modellerini çalıştırmak için web tarayıcısı, iOS, Android, Mac ve farklı API'ler dahil olmak üzere çeşitli platformları ve mimarileri seçmelerine olanak tanır. Konuşmacı, bir ONNX modelini belleğe yüklemek, girdi verilerini iletmek ve çıktıyı almak için ONNX çalışma zamanının node.js ve webassembly ile nasıl kullanılacağını gösterir. Ayrıca, ONNX çalışma zamanının hesaplama için yalnızca gerekli verileri geçerken geri kalanını göz ardı ederek verimli işlemeye nasıl izin verdiğini de açıklarlar.

  • 00:30:00 Bu bölümde Ron Dagdag, ml.net kullanılarak oluşturulan ve ONNX'e aktarılan bir düğümün sunucu tarafında çalışan bir JavaScript uygulamasına nasıl dahil edileceğini açıklıyor. Webassembly ve webgl teknolojilerini kullanan ONNX modeli hem CPU hem de GPU üzerinde çalışarak daha hızlı performans, daha fazla güvenlik, çevrimdışı kullanım ve daha düşük maliyetler sağlar. Modeli tarayıcıya dahil etmenin birçok faydası olsa da, büyük model boyutları ve donanım gereksinimleri kullanıcı deneyimini etkileyebilir, bu nedenle cihazın basitleştirilmesi ve dikkate alınması gerekir. Tepki geliştiricilerin kullanması için bir tepki şablonu da mevcuttur.

  • 00:35:00 Bu bölümde Ron Dagdag, ONNX kullanarak tarayıcıda bir sinir ağının nasıl çalıştırılacağını gösteriyor. Bir görüntüdeki duyguları algılayan ONNX model hayvanat bahçesinden indirdiği bir ONNX modelinin demosunu gösteriyor. ONNX çalışma zamanı ağı, görüntüyü karşıya yüklemek ve işlemek için kullanılır. Model, 64x64 boyutunda bir girdi görüntüsü gerektirir, bu nedenle Ron, ort.tensor kullanarak bir tensöre dönüştürmeden önce görüntüyü yeniden boyutlandırır ve gri tonlamaya dönüştürür. Çıktı, görüntüde algılanan duyguları içeren 1x8'lik bir tensördür.

  • 00:40:00 Bu bölümde, konuşmacı sinir ağlarının ONNX ile bir tarayıcıda nasıl çalıştırılacağını tartışıyor. Bir ONNX modelini belleğe yüklemenin üç adımının onu yüklemek, modele dayalı girdi parametreleri oluşturmak ve sonuçları almak için oturumu çalıştırmak olduğunu açıklıyor. Ayrıca, ONNX modelini mobile.ort adlı optimize edilmiş bir mobil modele dönüştürmeyi içeren React Native kullanarak mobil cihazlarda önceden eğitilmiş bir modeli puanlama sürecini de tartışıyor. ONNX çalışma zamanı, Windows 10, Mac OS, Ubuntu, iOS, Android, Chrome, Edge, Safari ve Electron gibi çeşitli platformlarla uyumludur. Konuşmacı, farklı çıkarım hatları ve model eğitimi için kullanım durumlarını anlamanın çok önemli olduğunu vurguluyor ve daha fazla bilgi edinmek isteyenler için GitHub'ına bir bağlantı sağlıyor.

  • 00:45:00 Bu bölümde konuşmacı, Snapchat'in nesne algılama ve segmentasyon yeteneklerine sahip gözlüklerinde makine öğrenimini çalıştırmak için ONNX'i kullanma hakkında konuşuyor. Ayrıca, farklı çerçeveler arasında dönüşüm için bir orta yol görevi gördüğü için PyTorch ve TensorFlow modellerinin ONNX kullanan uygulamalara nasıl dahil edileceğini tartışıyor. IoT uygulamaları için bir cihaz mı yoksa akıllı cihaz mı kullanılacağına karar verirken veri işleme maliyetinin dikkate alınmasını öneriyor ve büyük miktarda veri göndermenin pahalı olabileceğini belirtiyor. Konuşmacı, ONNX'e dönüşebilen modellerin kullanımı yoluyla optimizasyonu tavsiye ediyor ve özel işleçler henüz eşlenmediğinde ekstra çalışma gereğinden bahsediyor.

  • 00:50:00 Videonun bu bölümünde Ron Dagdag, nesne algılamayı bulut yerine uca daha yakın çalıştırmanın faydalarını açıklıyor. İşleme, büyük miktarda veriyle çalışırken ideal olan yerel olarak gerçekleşir. Çıkarım sonuçlarının ham veriler yerine olay merkezinize veya akışınıza gönderilmesi de sürecin optimize edilmesine yardımcı olabilir.
 

Linux Vakfı Yapay Zeka ve Veri Günü - ONNX Topluluk Toplantısı - 21 Ekim 2021

Emma Ning (Microsoft) Tarayıcı İçi Çıkarım için ONNX Runtime Web


001 ONNX 20211021 Tarayıcı İçi Çıkarım için Ning ONNX Çalışma Zamanı Web

Microsoft AI Framework ekibinin ürün yöneticisi Emma, ONNX Runtime'da, JavaScript geliştiricilerinin CPU için web birleştirme ve GPU için WebGL dahil olmak üzere iki arka uçla makine öğrenimi modellerini bir tarayıcıda çalıştırmasına ve dağıtmasına olanak tanıyan yeni bir özellik olan ONNX Runtime Web'i sunar. Web Assembly arka ucu, herhangi bir ONNX modelini çalıştırabilir, çoklu iş parçacığı ve SIMD'den yararlanabilir ve yerel ONNX Çalışma Zamanı'nın desteklediği çoğu işlevi desteklerken WebGL arka ucu, WebGL API'leri ile saf JavaScript tabanlı bir uygulamadır. Konuşmacı ayrıca ONNX operatörlerinin her iki arka uçla uyumluluğunu tartışıyor, bir çıkarım oturumu oluşturmak ve bir model çalıştırmak için kod parçacıkları sağlıyor ve MobileNet modeli tarafından desteklenen çeşitli tarayıcı içi görüntü modelleri senaryolarını içeren bir demo web sitesini sergiliyor. Ancak konuşmacı, ONNX çalışma zamanı web'in performansının ve bellek tüketiminin artırılması ve desteklenen ONNX operatörlerinin genişletilmesi konusunda hâlâ geliştirilecek alanlar olduğunu da kabul ediyor.

  • 00:00:00 Bu bölümde, Microsoft AI Framework ekibinden bir ürün yöneticisi olan Emma, tarayıcı içi çıkarım için yeni bir çözüm olan ONNX Runtime Web'i tanıtıyor. Tarayıcı üzerinden sistem uygulamasıyla platformlar arası taşınabilirliği sağladığı, kullanıcı gizliliğini koruduğu ve sunucuya veri göndermeden performansı hızlandırdığı için tarayıcı içi makine öğrenimi fikri ilgi görüyor. ONNX Runtime Web, JavaScript geliştiricilerinin gelişmiş çıkarım performansı, model kapsamı ve geliştirme deneyimi ile bir tarayıcıda makine öğrenimi modellerini çalıştırmasına ve devreye almasına olanak tanıyan, ONNX Runtime'daki yeni bir özelliktir. ONNX Runtime Web mimarisi, ONNX Runtime Web'in hem CPU'lar hem de GPU'lar üzerindeki çıkarımı hızlandırmasına izin veren, CPU için web birleştirme ve GPU için WebGL dahil olmak üzere iki arka uç içerir. Web derlemesi arka ucu, herhangi bir ONNX modelini çalıştırabilir, çoklu iş parçacığı ve SIMD'den yararlanabilir ve yerel ONNX Runtime'ın desteklediği çoğu işlevi destekleyebilir. Öte yandan WebGL arka ucu, bilgisayarın GPU'suna doğrudan erişim sağlayan WebGL API'leri ile saf JavaScript tabanlı bir uygulamadır ve performansı maksimuma çıkarmak için birçok optimizasyon tekniğine olanak tanır.

  • 00:05:00 Bu bölümde konuşmacı, web dünyasının en popüler platformlarını destekleyen WebAssembly ve WebGL arka uçları ile ONNX operatörlerinin uyumluluğunu tartışıyor. Uyumlu platformları ve hangi ONNX operatörlerinin desteklendiğini gösteren bir tabloya bağlantı sağlarlar. Ayrıca, sunucu tarafı ve istemci tarafı etkileme için tutarlı bir geliştirme deneyimi sağlayan ONNX çalışma zamanı web'i ile bir çıkarım oturumunun nasıl oluşturulacağını ve bir modelin nasıl çalıştırılacağını gösteren kod parçacıkları sağlarlar. Konuşmacı daha sonra, MobileNet modelini farklı arka uçlar seçme seçeneğiyle bir tarayıcıda çalıştırmak gibi, görüntü modelleriyle desteklenen birkaç ilginç tarayıcı içi vizyon senaryosu içeren bir demo web sitesini paylaşıyor. Konuşmacı, daha fazla ONNX operatörü eklemek ve ONNX çalışma zamanı web performansını ve bellek tüketimini optimize etmek ve ayrıca yeteneklerini sergilemek için daha fazla demo üzerinde çalışmak açısından hala iyileştirme için yer olduğunu kabul ediyor.
 

Web ve Makine Öğrenimi W3C Çalıştayı Yaz 2020

ONNX.js - ONNX modellerini tarayıcılarda ve Node.js'de çalıştırmak için bir Javascript kitaplığı



ONNX.js - ONNX modellerini tarayıcılarda ve Node.js'de çalıştırmak için bir Javascript kitaplığı

ONNX.js, kullanıcıların ONNX modellerini tarayıcılarda ve Node.js'de çalıştırmasına izin veren bir JavaScript kitaplığıdır. Modeli çeşitli tekniklerle hem CPU hem de GPU üzerinde optimize eder ve kolay analiz için profil oluşturma, günlük kaydı ve hata ayıklamayı destekler. Kitaplık, tüm büyük tarayıcıları ve platformları destekler ve çok çekirdekli makinelerde daha iyi performans için web çalışanlarını kullanarak paralelleştirme sağlar. GPU özelliklerine erişmek için WebGL'yi kullanmak, önemli performans iyileştirmeleri sağlar ve CPU ile GPU arasındaki veri aktarımını azaltır. Daha fazla optimizasyon ve operatör desteği gerekmesine rağmen, konuşmacı ONNX.js'yi iyileştirmek için topluluk katkılarını teşvik eder.

  • 00:00:00 Bu bölümde, Microsoft'tan Emma, ONNX modellerini tarayıcılarda ve Node.js'de çalıştırmak için kullanılan bir JavaScript kitaplığı olan ONNX.js'den bahsediyor. JavaScript, web sitelerinin %95'i tarafından kullanılan çok önemli bir dildir ve GitHub Desktop ve VS Code gibi elektron uygulamaları için kullanılan en popüler istemci tarafı dilidir. JavaScript'in yüksek performanslı bilgi işlem için tasarlanmadığı algısına rağmen, JavaScript ve makine öğreniminin birlikte iyi çalışmasını sağlayacak teknikler mevcuttur. İstemci tarafı makine öğrenimini kullanmanın avantajları arasında, gerçek zamanlı analize izin verirken gizlilik koruması, platformlar arası tutarlı yapay zeka deneyimine olanak sağlama ve kitaplık veya sürücü yüklemesi gerektirmeden GPU'ları kullanarak performansı hızlandırma yer alır. ONNX.js, TensorFlow.js'ye benzer ve standart bir çerçeve olan ONNX biçiminde makine öğrenimi modelleri sağlar.

  • 00:05:00 Bu bölümde, 2017 yılında Microsoft ve Facebook tarafından pencereden bağımsız, açık biçimli bir standart sağlamak için kurulan ONNX topluluğu hakkında bilgi alıyoruz. ONNX.js, kullanıcıların ONNX modellerini bir tarayıcıda çalıştırmasına ve JS yüklemesine izin veren, ONNX'in saf bir JavaScript uygulamasıdır. Birkaç ileri teknoloji tekniğiyle hem CPU hem de GPU üzerindeki modeli optimize eder ve ikisi JavaScript ve WebAssembly kullanan CPU için ve biri WebGL kullanan GPU için olmak üzere üç arka uca sahiptir. ONNX.js ayrıca kolay hata ayıklama ve analiz için bir profil oluşturucu, günlükçü ve diğer yardımcı programları sağlar ve platformlar arasında kolayca yapay zeka uygulamaları oluşturmak için büyük platformlardaki tüm tarayıcıları destekler. Son olarak, web çalışanlarının kullanımı, çok çekirdekli makinelerde performansı önemli ölçüde artıran ağır operatörler içinde paralelleştirmeye olanak tanır.

  • 00:10:00 Bu bölümde konuşmacı, JavaScript'te grafik oluşturmayı hızlandırmak için GPU özelliklerine erişim için popüler bir standart API olan WebGL'yi kullanmanın faydalarını tartışıyor. WebGL'nin kullanımı, CPU ve GPU arasındaki veri aktarımını azaltmak ve ayrıca GPU işlem döngülerini azaltmak için birçok optimizasyon sağlar ve önemli performans iyileştirmeleri sağlar. Konuşmacı ayrıca bir modeli çalıştırmak için ONNX.js'yi kullanmanın uçtan uca bir akış örneğini sağlar ve ONNX.js'nin bir HTML örneği ve npm ve sınır araçlarıyla nasıl kullanılacağını gösterir. Ek olarak, konuşmacı daha fazla ONNX operatörü için daha fazla optimizasyon ve destek ihtiyacını tartışıyor ve ONNX.js'yi iyileştirmek için topluluk katkılarını teşvik ediyor.
 

ONNX.js ile Tarayıcıda PyTorch Modelleri Nasıl Çalıştırılır



ONNX.js ile Tarayıcıda PyTorch Modelleri Nasıl Çalıştırılır

Video, JavaScript ve ONNX.js kullanan bir tarayıcıda PyTorch modeli çalıştırmanın daha iyi yanıt süresi, ölçeklenebilirlik, çevrimdışı kullanılabilirlik ve gelişmiş kullanıcı gizliliği gibi avantajlarını açıklıyor. Video ayrıca bir PyTorch modelini ONNX modeline dönüştürme, onu bir ONNX.js oturumuna yükleme ve tarayıcıda çıkarım çalıştırma sürecini de anlatıyor. Veri hazırlama, hata ayıklama ve artırmalar da tartışılır ve konuşmacı, veri artırma teknikleri kullanılarak modelin nasıl daha sağlam hale getirileceğini gösterir. Video, kullanıcıların modeli kendileri denemeleri için örnek kod ve bir demo web sitesi sağlar.

  • 00:00:00 Bu bölümde Eliot Wait, JavaScript kullanan bir tarayıcıda PyTorch modeli çalıştırmanın faydalarını tartışıyor. İlk olarak, modeli tarayıcıda çalıştırmak daha iyi yanıt süresi sağlar ve bir sunucuya ve sunucudan veri gönderme gecikmesini önler. İkincisi, yalnızca statik dosyalarla bir web sitesi kurmak, daha fazla kullanıcıyı ölçeklendirmeyi ve yönetmeyi kolaylaştırır. Üçüncüsü, model çevrimdışı çalışacaktır, yani JavaScript dosyaları zaten kurulu olduğu sürece internet erişimi olmadan da kullanılabilirler. Dördüncüsü, modeli tarayıcıda barındırmak, veriler hiçbir sunucuyla paylaşılmadığından kullanıcı gizliliğini artırır. Ancak, model çok büyükse veya kullanıcı cihazlarında hesaplanması çok uzun sürüyorsa, onu bir sunucuda barındırmanız önerilir. Son olarak Eliot, el yazısı rakam tanıma için bir Mnest modeli kullanarak PyTorch modellerinin JavaScript'e nasıl kolayca dönüştürülebileceğini gösteriyor.

  • 00:05:00 Bu bölümde video, TensorFlow.js ve ONNX.js kullanımı arasındaki farkı açıklıyor ve eğitim için TensorFlow.js ve çıkarım için ONNX.js kullanılmasını öneriyor. ONNX, "açık sinir ağı değişimi" anlamına gelir ve makine öğrenimi modelleri için ortak bir dosya biçimi tanımlar. Ardından video, bir PyTorch modelini bir ONNX modeline, torch.onnx.export yöntemini kullanarak dönüştürme sürecini adım adım anlatıyor ve tarayıcıda model üzerinde çıkarım yapmak için modelin bir ONNX.js çıkarım oturumuna nasıl yükleneceğini gösteriyor. Video, oturumu oluşturmak, modeli yüklemek ve salt okunur bir çıktı haritası döndüren yapay bir girdi üzerinde çıkarım yapmak için örnek kod sağlar.

  • 00:10:00 Bu bölümde, videoda ONNX.js kullanılarak tarayıcıda PyTorch modeli çalıştırılmaya çalışıldığında oluşan bir hatanın nasıl ele alınacağı anlatılmaktadır. Özellikle hata mesajı, log-softmax operatörünün şu anda ONNX.js tarafından desteklenmediğini belirtir, ancak video sunucusu bunun yerine softmax operatörünün desteklendiğini gösterir. Video ayrıca, kullanıcıların sayılar çizebilecekleri ve PyTorch modelinin çıktı tahminlerini görebilecekleri bir demo web sitesini tanıtıyor. Ancak sunum yapan kişi, modelin yüklenmesiyle ilgili bir sorun olduğunu not eder ve bu sorun, modelin verileri çalıştırmadan önce yüklenmesi sağlanarak düzeltilir. Son olarak video, bir görüntü veri listesini 280x280x4'lük bir tensöre yeniden şekillendiren model kodunun güncellenmiş bir sürümünü sunar ve modelin piksel girişine dayalı basamak değerlerini tahmin etmesine olanak tanır.

  • 00:15:00 Videonun bu bölümünde konuşmacı ONNX.js kullanarak tarayıcıda çalışacak bir PyTorch modeli için verilerin nasıl hazırlanacağını anlatıyor. PyTorch görüntüleri için beklenen şekle yeniden şekillendirmek için çizilmiş bir görüntünün dördüncü kanalını çıkarırlar. Ayrıca ortalama havuz operatörünü uygularlar ve görüntü değerlerini beklenen aralık içinde ayarlamak için tensörü 255'e bölerler. Ek olarak, veri setinin ortalamasını çıkararak ve bunu standart sapmaya bölerek verilerin nasıl normalleştirileceğini açıklarlar. Konuşmacı, sahte girişin eski şeklinden kaynaklanan bir hatayı tanımlar ve nasıl düzeltileceğini anlatır. Ayrıca, modelden geçmeden önce görüntü verilerini döndürerek ve çevirerek modeli daha doğru hale getirmek için veri artırmanın nasıl hata ayıklanacağını ve uygulanacağını da açıklarlar.

  • 00:20:00 Bu bölümde, konuşmacı, eğitim senaryosuna veri artırma ekleyerek modelin nasıl daha sağlam hale getirileceğini gösterir. Bu büyütmeler, modelin öğrenmesi için daha zor örnekler üreten rakamların ötelenmesini, ölçeklenmesini ve kesilmesini içerir. Konuşmacı daha sonra modeli sıfırdan yeniden eğitiyor ve test ediyor ve hala geliştirilebilse de eklenen veri artırmanın onu genel olarak daha sağlam hale getirdiğine dikkat çekiyor. Konuşmacı, video açıklamasındaki bağlantıyı kullanarak izleyicileri modeli kendileri denemeye davet ediyor.
 

ONNX Runtime demosu ile CPU'da rakam sınıflandırması



ONNX Runtime demosu ile CPU'da rakam sınıflandırması

Open Neural Network Exchange (ONNX), hem derin öğrenme hem de makine öğrenimi modelleri için açık kaynaklı bir format sağlar. Modellerimizi istediğimiz çerçevede eğitebilir ve ardından modeli ONNX formatına dönüştürebiliriz. Microsoft'un ONNX Çalışma Zamanı ile, bize biraz daha hızlı uygulama sağlayan herhangi bir ortamda onnx modelleriyle bir çıkarım oturumu çalıştırabiliriz. İşte bunun basit bir gösterimi. Model, PyTorch ile MNIST veri setini kullanarak rakamları tanımak üzere eğitilmiştir. Linux CPU'da bir çıkarım oturumu çalıştırıyorum.

https://github.com/NagarajSMurthy/Digit-recognizer

GitHub - NagarajSMurthy/Digit-recognizer: Digit recognition using CNN and testing on CPU with ONNX runtime.
GitHub - NagarajSMurthy/Digit-recognizer: Digit recognition using CNN and testing on CPU with ONNX runtime.
  • NagarajSMurthy
  • github.com
Digit recognition is a simple task of recognising digits from 0 to 9. A CNN is trained on the MNIST dataset which gave a good accuracy of around 98% on the test set. Choosing the proper model and employing suitable regularisation technique, the model also performed well during inference with an accuracy of close to 98%. The whole model is then...
Neden: