Introducere
Hummingbird este o biblioteca pentru compilarea modelelor traditionale ML antrenate in calcule tensoriale. Hummingbird permite utilizatorilor sa valorifice fara probleme cadrele de retea neuronala (cum ar fi PyTorch) pentru a accelera modelele traditionale ML. Datorita Hummingbird , utilizatorii pot beneficia de: (1) toate optimizarile actuale si viitoare implementate in cadrul retelelor neuronale; (2) accelerare hardware nativa; (3) avand o platforma unica pentru a sprijini atat modelele de retea traditionale, cat si cele neuronale; si sa aiba toate acestea (4) fara a fi nevoie sa-si re-proiecteze modelele.
In prezent, puteti utiliza Hummingbird pentru a va converti modelele traditionale ML antrenate in PyTorch, TorchScript, ONNX si TVM). Hummingbird accepta o varietate de modele ML si de produse. Aceste modele includ copaci de decizie scikit-learn si Random Forest, precum si clasificatori / regresori LightGBM si XGBoost. Suportul pentru alte modele si modele de retea neuronala se afla pe foaia noastra de parcurs.
Colibri ofera, de asemenea, un API de „inferenta” uniform convenabil, care urmeaza API-ului Sklearn. Acest lucru permite schimbarea modelelor Sklearn cu cele generate de Hummingbird fara a fi nevoie sa modificati codul de inferenta.
Cum functioneaza Colibri
Hummingbird functioneaza prin reconfigurarea operatorilor algoritmici, astfel incat sa putem efectua calcule mai regulate, care sunt supuse executarii vectorizate si GPU. Fiecare operator este usor diferit si incorporam strategii multiple. Acest exemplu explica una dintre strategiile lui Hummingbird pentru traducerea unui arbore de decizie in tensori care implica GEMM (GEneric Matrix Multiplication), unde implementam traversarea arborelui folosind inmultiri matriciale. (GEMM este una dintre cele trei strategii de conversie a copacilor pe care le acceptam in prezent.)
Arborele de decizie simplu
In acest exemplu, arborele de decizie are patru noduri de decizie (portocaliu) si cinci noduri de frunze (albastru). Arborele ia un vector caracteristica cu cinci elemente ca intrare. De exemplu, sa presupunem ca dorim sa calculam rezultatul acestei observatii:
Pasul 1: Inmultiti tensorul de intrare cu tensorul A (calculat din modelul arborelui decizional de mai sus) care surprinde relatia dintre caracteristicile de intrare si nodurile interne. Apoi comparati-l cu tensorul B care este setat la valoarea fiecarui nod intern (portocaliu) pentru a crea calea de intrare a tensorului care reprezinta calea de la intrare la nod. In acest caz, modelul arborelui are 4 conditii si vectorul de intrare este 5, prin urmare, forma tensorului A este 5×4 si tensorul B este 1×4.
Pasul 2: Tensorul caii de intrare va fi inmultit cu tensorul C care surprinde daca nodul intern este parinte al acelui nod intern si, daca da, daca este in subarborele stang sau drept (stanga = 1, dreapta = – 1, altfel = 0) si apoi verificati egal cu tensorul D care capteaza numarul copilului stang al parintelui sau in calea de la un nod frunza la radacina arborelui pentru a crea calea de iesire a tenorului care reprezinta calea de la nod la iesire . In acest caz, acest model de arbore are 5 iesiri cu 4 conditii, prin urmare, forma tensorului C este 4×5 si tensorul D este 1×5.
Pasul 3: Calea de iesire va fi inmultita cu tensorul E care capteaza maparea intre nodurile frunzei pentru a deduce predictia finala. In acest caz, modelul arborescent are 5 iesiri, prin urmare, forma tensorului E este 5×1.
Si acum Hummingbird a compilat un model bazat pe copaci folosind strategia GEMM! Pentru mai multe detalii, va rugam sa consultati Figura 3 din lucrarea noastra.
Va multumim lui Chien Vu pentru contributia grafica si descrieri in blogul sau pentru acest exemplu!
Instalare
Hummingbird a fost testat pe Python> = 3.6 pe masinile Linux, Windows si MacOS. (Python 3.
pareja follando en la playa jovencitas peludas follando
tetudas españolas porno gratis viejas
porno andaluz sexo playa nudista
sexo gratis incesto videos de maduras guarras
porno bix gitanas xxx
videos ponos porno forzadas
jovencitas españolas follando por dinero intercambio de parejas en español
mamadas gay halle berry desnuda
mama me folla potno
se folla a relatos sexo con maduros
tetonas cubanas porno andaluz
videdos porno madura se corre
incestos gays casadas cachondas
pilladas meando parejas liberales españolas
las mejores folladas maduras pajeando
follando real super mamadas
me hace una paja actores porno gay españoles
transexual española follando potro de bilbao
casadas follando por dinero seso gratis
5 este suportat pana la colibri-ml == 0.2.1.) Se recomanda utilizarea unui mediu virtual (Vezi: python3 venv doc sau Utilizarea mediilor Python in codul VS).
Colibri necesita PyTorch> = 1.4.0. Accesati aici instructiuni despre cum sa instalati PyTorch pe baza platformei si hardware-ului dvs.
Odata ce PyTorch este instalat, puteti obtine Hummingbird din pip cu:
Daca aveti nevoie de dependentele optionale lightgbm si xgboost, puteti utiliza:
Consultati, de asemenea, Depanarea pentru probleme frecvente.
Exemple
Consultati sectiunea caiete pentru exemple care demonstreaza utilizarea si accelerarea.
In general, sintaxa colibriului este foarte intuitiva si minima. Pentru a rula modelul dvs. traditional ML pe framework-uri DNN, trebuie doar sa importati hummingbird.ml si sa adaugati convert (model, ‘dnn_framework’) in cod. Mai jos este un exemplu folosind un model de padure aleatoriu scikit-learn si PyTorch ca cadru tinta.
Documentatia API este aici.
De asemenea, puteti citi despre Colibri in postarea noastra de pe blog aici.
Pentru mai multe detalii despre viziune si despre detaliile tehnice legate de Colibri, va rugam sa consultati documentele noastre:
- Un compilator de tensori pentru difuzarea unificata a predictiilor de invatare automata. Supun Nakandala, Karla Saur, Gyeong-In Yu, Konstantinos Karanasos, Carlo Curino, Markus Weimer, Matteo Interlandi. Pentru a aparea la OSDI 2020.
- Compilarea conductelor ML clasice in calcule tensoriale pentru difuzare de predictii unice. Supun Nakandala, Gyeong-In Yu, Markus Weimer, Matteo Interlandi. Sistem pentru atelierul ML. NeurIPS 2019
Salutam contributiile! Va rugam sa consultati ghidul privind contributia.
De asemenea, consultati foaia de parcurs a caracteristicilor planificate.
Alaturati-va comunitatii noastre!
Pentru anchete mai formale, ne puteti contacta.
- Supun Nakandala
- Matteo Interlandi
- Karla Saur
Licenta MIT








