Påstridig och öppna maskininlärning: nyanserna av att använda Facebook är PyTorch

0
156

Noll

Utsläpp av PyTorch 1.0 beta var en del av den stora nyheten i förra veckan ‘ s machine learning (ML) oktober fest, tillsammans med snabbt.ai, Neuton, och MLFlow. Med AI är vad det är idag, och maskininlärning driver en hel del av vad som pågår där, sådana nyheter orsaka vågor utanför ML gemenskapen.

Också: Facebook open-source AI ramen PyTorch 1.0 släppt

I förra veckan Gnista AI Summity Europa, vi hade chansen att diskutera med några av rockstjärnor av denna gemenskap. MLFlow nya versionen presenterades Databricks VD Matei Zaharia s keynote, och PyTorch 1.0 presenterades i Facebook AI-Forskning Ingenjör Soumith Chintala s keynote.

Chintala är skaparen och projektledare för PyTorch, en av de bästa maskininlärning ramar. Efter hans keynote, ZDNet fångas upp med Chintala på en rad områden, allt från Facebook motivation och strategi för PyTorch, till detaljerna för att använda det.

Hur många maskininlärning ramar behöver världen?

Det kan låta som en trivial fråga att ställa, men vi kände att vi var tvungen att få det ur vägen: Vad var tanken bakom Facebook att engagera sig och investera resurser i sin egen ML ram med PyTorch? Speciellt med tanke på att det är en annan ML ram som stöds av Facebook, Caffe2.

För moln-leverantörer som AWS, Google eller Microsoft, det är en mycket tydliga incitament: ju fler människor som använder sin ML ramar, mer beräkna och lagring av resurser kommer så småningom att dras till sina respektive moln. Men vilka insatser gör Facebook har i det här spelet? Varför ägna resurser — mänskliga och annat — som behövs för att utveckla och underhålla inte bara en, utan två ML ramar, och vart är vi på väg?

Även: Snabbt.ai: s programvara kan radikalt demokratisera AI

Tanken bakom detta var inte lika framåt som man kan tro, sade Chintala. Han och PyTorch team bestämde sig för att bygga detta helt enkelt eftersom de är påstridig och ville ha något att skära ut deras behov:

“Googles TensorFlow släpptes 2015. Vi försökte använda det, men var inte super nöjd med det. Innan detta har vi försökt Caffe1, Theano och Ficklampa. På den tiden, vi var med hjälp av Ficklampa och Caffe1 för forskning och produktion. Området har förändrats en hel del, och vi kände ett nytt verktyg som behövdes. Såg ut som om ingen annan var att bygga det, inte så som vi trodde kommer att behövas i framtiden.

Så, vi kände att vi ska bygga det. Vi visade det för vissa människor, och de gillade det. Det är en stark öppen källkod kultur i Facebook, så öppnar vi erhållit det, och det tog fart. Men målet var främst att göra oss lyckliga. Det var inte för att vi inte vill förlita sig på Google eller Microsoft.”

chintala.jpg

Soumith Chintala är forskningsingenjör på Facebook AI-Forskning och skaparen av PyTorch. Hans motivation för att skapa det? Att ha något som fungerar och en efter hans behov.

Chintala arbetar nu heltid på PyTorch, och hans team har något mellan 10 och 15 personer. Även om intellektuell nyfikenhet och åsikter konto för att ta steget för att skapa PyTorch, det förklarar inte varför Facebook skulle ge dessa människor att arbeta på PyTorch i det långa loppet. Eller gör det det?

Också: Start använder AI och maskininlärning för real-time bakgrundskontroller

Chintala oss ta är att vissa människor skulle ha tilldelats med om något som liknar detta i alla fall. Om PyTorch inte hade skapats, är det andra alternativet skulle vara att göra vissa justeringar av gällande regelverk, vilket skulle leda till att man kräver samma resurser. Men sedan, vad gäller Caffe2? Varför behålla 2 ML ramar?

Lärande i Facebook AI-Forskning och-produktion

Först ut, PyTorch är nu officiellt en Facebook ML ramverk för att styra dem alla. PyTorch 1.0 märken enandet av PyTorch och Caffe2. Att gå framåt, Chintala förklarade, gjorde valet var att använda PyTorch för den främre änden, och Caffe2 för back-end. Detta innebär att ingenting förändras för användare av tidigare versioner av PyTorch, men Caffe2 front kommer att vara utfasade och människor kommer att byta till en PyTorch.

Också: Facebook förskott datorseende med hashtagged bilder

Detta har att göra med den filosofi och mål för varje ram. PyTorch var riktat till forskare som behöver flexibilitet. Caffe2 var inriktad på att köra i produktionen vid extremt stor skala, något som 300 biljoner slutsatser per dag, som Chintala noteras. Som ni kan föreställa er, att slå samman de två var ingen lätt bedrift:

“Det är inte bara en sammanslagning av två codebases, men två projekt och filosofier. Den svåraste delen var fortfarande tekniskt, men kulturen var en nära andra. Det var mest om hur de ramar utvecklas, och vilka behov de löser.

Vid produktion skala, kod har olika behov och egenskaper när du sedan bygga på forskning, där man vill att alla ska kunna uttrycka sina idéer och vara så kreativ som möjligt,” Chintala sagt.

fair.jpg

Facebook AI-Forskning har mer än 100 forskare som arbetar på olika projekt. Öppen källkod och publicering är nyckeln till dess filosofi, enligt Chintala.

Denna skillnad var också uttalas när vi diskuterar infrastruktur människor på Facebook AI-Forskning (FAIR) användning. VERKLIGT sysselsätter mer än 100 personer. Chintala noterat att du kan se människor som gör forskning på sina bärbara datorer, och att han personligen använder lokal hårddisk för lagring av en hel del, eftersom det gör det lättare för honom att arbeta med filer. Men det beror egentligen på projektet.

“Vi använder även Kupan, Presto, och Gnista. Vissa projekt verkligen tänja på gränserna för skala, och för dem som vi använder organisatoriska infrastruktur,” Chintala sagt.

Också: 10 sätt AI kommer att påverka företaget i 2018 TechRepublic

En annan sak som MÄSSAN gör en hel del, enligt Chintala, är att publicera. Inte bara kod, men också forskning rapporter och data:

“I grundläggande forskning, har du att arbeta med elever i gemenskapen, annars kan du få skarpt avgränsade. Du kanske tror att du arbetar på något häftigt, och sedan publicera det fem år senare och inser att det är hemskt. Vi fokuserar på öppen data, och publicera direkt. Och kan vi också påverka diagram strukturer, till viss del.

Till exempel, vi använder Wikipedia för att fråga att besvara. Dess struktur är grafen-som, och det är också strukturerad version, DBpedia. Vi gör en hel del forskning på dialog och fråga att besvara. För dessa använder vi text datamängder, och vi tillverkar våra egna. I vision, som vi använder i stor skala vision datamängder.

Ett annat exempel är hur vi använder hashtags för att förbättra översättning. Vi kan ha bilder med många hashtags som beskriver samma sak på olika språk, och vi bädda in bilder och hashtags i en graf struktur, och sedan arbeta på översättningen. Även om vi gör sådana saker en hel del, som jag inte kommer ihåg att jag har arbetat med Facebook social graph.”

Låg nivå, hög nivå, och påstridig öppenhet

På Spark AI Toppmötet skede, Chintala visade många av detaljerna av att arbeta med PyTorch. Det som imponerade på oss var att, för det otränade ögat, många av kod fragment som Chintala används verkade ganska rå och låg-nivå. Men detta är avsiktligt, och det är högre nivå genvägar som Chintala förklaras.

Låt oss ta att bygga ett neuralt nätverk, till exempel. I PyTorch, detta görs via en funktion som ser lite rörigt. Men enligt Chintala, detta är vad folk vill ha:

“Detta är en av de största anledningarna till varför folk använder PyTorch. Denna funktion beskriver ett neuralt nätverk. Det kan inte vara väl strukturerat, men det är där människor får sina utspel från. Vår målgrupp är väl bekant med detta, och de vill använda det här sättet.

Låt oss säga att du vill bygga upp en återkommande neurala nätverk, och du har lite tid serier som du behöver använda. I andra ramar du behöver för att använda ett API, konstruera en tidsserie, etc. I PyTorch, du bara använda en for-loop. Användare tycker att detta är mer intuitivt, eftersom det inte finns någon extra steg som behövs, du behöver bara skriva kod.”

Allt är inte som att vara på låg nivå, dock. Chintala påpekade att för state of the art-modeller, som ResNet50, det är one-liners att kapsla in dem och kan användas i kod. PyTorch också kommer med en rad före utbildade modeller (“modell zoo”), out-of-the-box distribuerade funktioner och integration med probabilistisk programmering, maskinöversättning, behandling av naturligt språk, och mycket mer.

Också: AI innebär en livstid av träning CNET

Ibland kan dessa ser bedrägligt enkla. Kan detta vara ett problem? Till exempel, när du visar upp PyTorch s abstraktion för distribuerade djupt lärande, det var svårt att tro att alla praktiska detaljer detaljer kan tas om hand av en rad kod: varifrån datan kommer från, som nod får varje del, och så vidare.

I detta fall, Chintala förklarade användare kan ingripa på en lägre nivå och finjustera data-hjullastare, till exempel. Men tanken här var att i 90 procent av fallen är det en strukturerad, väl bildat mönster för hur de flesta människor gör distribuerad djupt lärande och one-liner är byggd för att utnyttja denna. Och det verkar fungera bra, med tanke på den nära-perfekt linjär skalning i diagrammet Chintala gemensamt.

pytorchnn.jpg

Detta är hur du skapar ett neuralt nätverk i PyTorch. Det kan tyckas låg-nivå till dig, men det är exakt hur dess skapare ville att det skulle vara.

Så, trots att PyTorch är påstridig, det ser ut som dess skapare försökt att hitta en balans med förmågan att anpassa sig till olika användningsmönster, åtminstone i viss utsträckning. Som Chintala noteras, ett av målen var att göra PyTorch ett paket någon i Python ekosystem kan använda, oavsett vad de använder för närvarande.

Dessutom: Hur Facebook skalor AI

Hela Python ekosystem kan användas är PyTorch löfte. I själva verket, det är en mekanism som kallas noll-minne kopia på plats för att underlätta detta:

“Vi har inte de “inte uppfunnet här’ – syndrom. Du kan ta en PyTorch tensor och anslut den till NumPy. Det fungerar genom att skapa en NumPy struct i C, och sedan direkt med hjälp av en pekare på det. Allt du behöver göra är ett mycket billigt, nästan gratis, drift – fråga C struct. I NumPy många många saker görs i C, och vi använder det också.”

Detta kan verka som en trivialitet, men det går att visa att tanken bakom PyTorch. Hög och låg nivå, åsikter och öppenhet, sammanflätade, eller en balansakt. I alla rättvisa, mycket av open source-utveckling, forskning och Facebook själv för den delen, promenad liknande fina linjer. Detta kan bidra till att världen gynnas av banbrytande forskning inom SKÄLIG och RÄTTVIS forskare hålla dig uppdaterad med det bredare samhället.

Tidigare och relaterade täckning:

Vad är AI? Allt du behöver veta

En verkställande guide till artificiell intelligens, från maskininlärning och allmänna AI att neurala nätverk.

Vad är djupt lärande? Allt du behöver veta

Lowdown på djupt lärande: från hur det förhåller sig till de bredare fält av maskinen lärande genom hur man kommer igång med det.

Vad är lärande? Allt du behöver veta

Denna guide förklarar vad lärande är, hur den är relaterad till artificiell intelligens, hur det fungerar och varför det är viktigt.

Vad är cloud computing? Allt du behöver veta om

En introduktion till cloud computing rätt från grunderna upp till IaaS och PaaS, hybrid, offentliga och privata moln.

Relaterade artiklar:

Det finns ingen roll för AI eller data vetenskap: det här är ett lagarbete Start Släkt ger strimma av hopp för AI i robotik AI: vy från Chief Data Vetenskap Kontor Salesforce intron Einstein Röst, en AI röst assistent för företag att det inte är Det jobb AI är förstört som stör mig, det är de som växer

Relaterade Ämnen:

Öppen Källkod

Digital Omvandling

CXO

Sakernas Internet

Innovation

Affärssystem

0