Bild av redaktör
Jag har läst, skrivit och talat sedan slutet av förra året i skärningspunkten mellan programvara med öppen källkod och maskininlärning, och försökt förstå vad framtiden kan ge.
När jag började förväntade jag mig att jag mest skulle prata om hur programvara med öppen källkod används av maskininlärningsgemenskapen. Men ju mer jag har utforskat, desto mer har jag insett att det finns många likheter mellan de två praktikområdena. I den här artikeln kommer jag att diskutera några av dessa paralleller - och vad maskininlärning kan och inte kan lära av programvara med öppen källkod.
Den enkla och uppenbara parallellen är att både modern maskininlärning och modern mjukvara byggs nästan helt med öppen källkod. För programvara, det vill säga kompilatorer och kodredigerare; för maskininlärning är det utbildnings- och inferensramverk som PyTorch och TensorFlow. Dessa utrymmen domineras av programvara med öppen källkod, och ingenting verkar vara redo att ändra på det.
Det finns ett anmärkningsvärt, uppenbart undantag från detta: alla dessa ramverk beror på den mycket egenutvecklade Nvidias hårdvara och mjukvarustacken. Detta är faktiskt mer parallellt än det kan se ut till en början. Under en lång tid körde programvara med öppen källkod mestadels på egna Unix-operativsystem, som säljs av egenutvecklade hårdvaruleverantörer. Det var först efter att Linux kom som vi började ta för givet att en öppen "botten" av stacken ens var möjlig, och mycket öppen utveckling görs nu för tiden på MacOS och Windows. Det är oklart hur detta kommer att utspela sig inom maskininlärning. Amazon (för AWS), Google (för både moln och Android) och Apple investerar alla i konkurrerande marker och stackar, och det är möjligt att en eller flera av dem kan följa den väg som lagts av Linus (och Intel) för att frigöra hel stapel.
En mer kritisk parallell mellan hur programvara med öppen källkod är byggd och hur maskininlärning är uppbyggd, är komplexiteten och den offentliga tillgängligheten för de data som var och en bygger på.
Som beskrivs i detta preprint papper “The Data Provenance Project,” som jag var medförfattare till bygger modern maskininlärning på bokstavligen tusentals datakällor, precis som modern programvara med öppen källkod är byggd på hundratusentals bibliotek. Och precis som varje öppet bibliotek för med sig juridiska, säkerhets- och underhållsutmaningar, för varje offentlig datauppsättning med sig exakt samma uppsättning svårigheter.
I min organisation har vi pratat om öppen källkodsversion av denna utmaning som en "oavsiktlig leveranskedja.” Programvaruindustrin började bygga saker eftersom de otroliga byggstenarna i bibliotek med öppen källkod innebar att vi kunde. Detta innebar att branschen började behandla programvara med öppen källkod som en försörjningskedja - vilket kom som en överraskning för många av dessa "leverantörer".
För att mildra dessa utmaningar har programvara med öppen källkod utvecklat massor av sofistikerade (men ofullkomliga) tekniker, som skannrar för att identifiera vad som används och metadata för att spåra saker efter implementering. Vi börjar också investera i människor för att försöka ta itu med bristen på överensstämmelse mellan industriella behov och frivilliga motiv.
Tyvärr verkar maskininlärningsgemenskapen redo att kasta sig in i exakt samma "oavsiktliga" misstag i försörjningskedjan – att göra många saker för att det kan, utan att behöva tänka så mycket på de långsiktiga konsekvenserna när hela ekonomin är baserad på dessa datamängder .
En sista viktig parallell är att jag starkt misstänker att maskininlärning kommer att expandera för att fylla många, många nischer, precis som programvara med öppen källkod har. För tillfället handlar (förtjänt) hajpen om stora, generativa modeller, men det finns också många små modeller där ute, såväl som tweaks på större modeller. Faktum är att värdsajten HuggingFace, maskininlärnings primära värdplattform, rapporterar att antalet modeller på deras webbplats växer exponentiellt.
Dessa modeller kommer sannolikt att finnas gott om och tillgängliga för förbättring, ungefär som små bitar av programvara med öppen källkod. Det kommer att göra dem otroligt flexibla och kraftfulla. Jag använder ett litet maskininlärningsbaserat verktyg för att göra billiga, integritetskänsliga trafikmätningar på min gata, till exempel, ett användningsfall som inte skulle ha varit möjligt förutom på dyra enheter för några år sedan.
Men den här spridningen innebär att de måste spåras – modeller kan bli mindre som stordatorer och mer som programvara med öppen källkod eller SaaS, som dyker upp överallt på grund av låg kostnad och enkel installation.
Så om det finns dessa viktiga paralleller (särskilt av komplexa leveranskedjor och växande distribution) vad kan maskininlärning lära sig av programvara med öppen källkod?
Den första parallella lärdomen vi kan dra är helt enkelt att för att förstå dess många utmaningar kommer maskininlärning att behöva metadata och verktyg. Programvara med öppen källkod snubblade in i metadataarbete genom efterlevnad av upphovsrätt och licensiering, men när den oavsiktliga leveranskedjan för programvara har mognat har metadata visat sig oerhört användbar på en mängd olika fronter.
Inom maskininlärning är metadataspårning ett pågående arbete. Några exempel:
- A nyckel 2019 papper, allmänt citerad i branschen, uppmanade utvecklare av modeller att dokumentera sitt arbete med "modellkort". Tyvärr tyder nyare forskning på deras implementering i det vilda är fortfarande svag.
- Både SPDX- och CycloneDX-programvaruförteckningsspecifikationerna (SBOM) arbetar med AI-stycklistor (AI-stycklistor) för att hjälpa till att spåra maskininlärningsdata och modeller, på ett mer strukturerat sätt än modellkort (passar den komplexitet man kan förvänta sig om detta gör verkligen parallell programvara med öppen källkod).
- HuggingFace har skapat en mängd olika specifikationer och verktyg för att tillåta modell- och datasetförfattare att dokumentera sina källor.
- MIT Data Provenance-dokumentet som citeras ovan försöker förstå "grundsanningen" i datalicensiering, för att hjälpa till att utveckla specifikationerna med verkliga data.
- Anekdotiskt sett verkar många företag som utför maskininlärningsträningsarbete ha något tillfälliga relationer med dataspårning, och använder "mer är bättre" som en ursäkt för att skotta in data i magasinet utan att nödvändigtvis spåra det väl.
Om vi har lärt oss något från öppen är det att få metadata rätt (först, specifikationerna, sedan de faktiska uppgifterna) kommer att vara ett projekt på flera år och kan kräva regeringens ingripande. maskininlärning borde ta detta metadatasteg förr snarare än senare.
Säkerhet har varit en annan viktig drivkraft för öppen källkods metadatabehov – om du inte vet vad du kör kan du inte veta om du är mottaglig för den till synes oändliga strömmen av attacker.
Maskininlärning är inte föremål för de flesta typer av traditionella programattacker, men det betyder inte att de är osårbara. (Mitt favoritexempel är att det var möjligt att giftbild träningsset eftersom de ofta hämtade från döda domäner.) Forskning på detta område är tillräckligt het för att vi redan har gått förbi "proof of concept" och in i "det finns tillräckligt med attacker för att lista och taxonomisera. "
Tyvärr kan programvara med öppen källkod inte erbjuda maskininlärning några magiska kulor för säkerheten – om vi hade dem skulle vi använda dem. Men historien om hur mjukvara med öppen källkod spred sig till så många nischer tyder på att maskininlärning måste ta denna utmaning på allvar, börja med att spåra användning och distributionsmetadata, precis för att det sannolikt kommer att tillämpas på så många sätt utöver de som det är för närvarande i. utplacerade.
Motivationerna som drev metadata med öppen källkod (licensiering, sedan säkerhet) pekar på nästa viktiga parallell: när betydelsen av en sektor växer, kommer omfattningen av saker som måste mätas och spåras att utökas, eftersom reglering och ansvar kommer att utökas.
I programvara med öppen källkod var den primära statliga "förordningen" under många år upphovsrättslagstiftningen, och därför utvecklades metadata för att stödja det. Men programvara med öppen källkod står nu inför en mängd olika säkerhets- och produktansvarsregler – och vi måste mogna våra leveranskedjor för att möta dessa nya krav.
AI kommer på liknande sätt att regleras på en ständigt växande mängd olika sätt när den blir allt viktigare. Källorna till reglering kommer att vara extremt olika, inklusive vad gäller innehåll (både input och output), diskriminering och produktansvar. Detta kommer att kräva vad som ibland kallas "spårbarhet”—förstå hur modellerna är uppbyggda och hur dessa val (inklusive datakällor) påverkar resultaten av modellerna.
Detta kärnkrav – vad har vi? hur kom det hit? – är nu välbekant för företagsutvecklare med öppen källkod. Det kan dock vara en radikal förändring för utvecklare av maskininlärning och måste omfamnas.
En annan parallell lärdom som maskininlärning kan dra från mjukvara med öppen källkod (och faktiskt från många vågor av mjukvara före den, som går tillbaka åtminstone till stordatorn) är att dess livslängd kommer att vara väldigt, väldigt lång. När en teknik är "tillräckligt bra" kommer den att distribueras och måste därför underhållas under väldigt, väldigt lång tid. Detta innebär att vi måste tänka på underhåll av denna programvara så tidigt som möjligt, och fundera på vad det kommer att innebära att denna programvara kan överleva i årtionden. "Decennier" är inte en överdrift; många kunder jag möter använder programvara som är gammal nog att rösta. Många företag med öppen källkod, och vissa projekt, har nu så kallade "Long Term Support"-versioner som är avsedda för den här typen av användningsfall.
Däremot höll OpenAI sitt Codex-verktyg tillgängligt i mindre än två år—leder till mycket ilska, särskilt i det akademiska samhället. Med tanke på den snabba förändringstakten inom maskininlärning, och att de flesta användare förmodligen är intresserade av att använda den allra senaste tekniken, var detta förmodligen inte orimligt – men dagen kommer, snabbare än branschen tror, då den behöver planera för detta slags "långsiktig" - inklusive hur det interagerar med ansvar och säkerhet.
Slutligen är det uppenbart att det – precis som programvara med öppen källkod – kommer att flöda mycket pengar till maskininlärning, men de flesta av dessa pengar kommer att samlas kring vad en författare har kallat de "processorrika" företagen. Om parallellerna till mjukvara med öppen källkod upptäcks, kommer dessa företag att ha mycket andra bekymmer och utgiftsprioriteringar än den genomsnittliga skaparen (eller användaren) av modeller.
Vårt företag, Tidelift, har funderat på detta problem med incitament i programvara med öppen källkod under en tid, och enheter som världens största köpare av programvara – den amerikanska regeringen – är undersöker problemet också.
Maskininlärningsföretag, särskilt de som vill skapa gemenskaper av kreatörer, bör tänka hårt på denna utmaning. Om de är beroende av tusentals datamängder, hur kommer de att säkerställa att de finansieras för underhåll, laglig efterlevnad och säkerhet, i årtionden? Om stora företag slutar med dussintals eller hundratals modeller utplacerade runt företaget, hur ska de säkerställa att de med den bästa specialistkunskapen – de som skapade modellerna – fortfarande finns kvar för att arbeta med nya problem när de upptäcks?
Precis som säkerhet finns det inga enkla svar på denna utmaning. Men ju tidigare maskininlärning tar problemet på allvar – inte som en välgörenhetshandling, utan som en nyckelkomponent i långsiktig tillväxt – desto bättre kommer hela branschen och hela världen att få det.
Maskininlärningens djupa rötter i akademins experimentalismkultur och Silicon Valleys kultur av snabb iteration har tjänat det väl, vilket har lett till en fantastisk explosion av innovation som skulle ha verkade magisk för mindre än ett decennium sedan. Kursen med öppen källkod under det senaste decenniet har kanske varit mindre glamorös, men under den tiden har den blivit grunden för all företagsprogramvara – och lärt sig många lektioner på vägen. Förhoppningsvis kommer maskininlärning inte att återuppfinna dessa hjul.
louis villa är medgrundare och chefsjurist på Tidelift. Tidigare var han en av de främsta advokaterna med öppen källkod som rådgav klienter, från Fortune 50-företag till ledande nystartade företag, om produktutveckling och licensiering med öppen källkod.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- PlatoData.Network Vertical Generative Ai. Styrka dig själv. Tillgång här.
- PlatoAiStream. Web3 Intelligence. Kunskap förstärkt. Tillgång här.
- Platoesg. Kol, CleanTech, Energi, Miljö, Sol, Avfallshantering. Tillgång här.
- PlatoHealth. Biotech och kliniska prövningar Intelligence. Tillgång här.
- Källa: https://www.kdnuggets.com/ai-and-open-source-software-separated-at-birth?utm_source=rss&utm_medium=rss&utm_campaign=ai-and-open-source-software-separated-at-birth
- : har
- :är
- :inte
- :var
- $UPP
- 2019
- 50
- a
- Om oss
- ovan
- akademiska
- oavsiktligt
- Agera
- faktiska
- faktiskt
- adress
- adopterare
- rådgivning
- Efter
- sedan
- AI
- Alla
- tillåter
- nästan
- längs
- redan
- också
- fantastiska
- amason
- an
- och
- android
- ilska
- Annan
- svar
- vilken som helst
- något
- skenbar
- visas
- visas
- Apple
- tillämpas
- ÄR
- OMRÅDE
- områden
- runt
- Artikeln
- AS
- At
- Attacker
- Författaren
- Författarna
- tillgänglighet
- tillgänglig
- AWS
- tillbaka
- baserat
- BE
- därför att
- blir
- blir
- varit
- innan
- började
- Där vi får lov att vara utan att konstant prestera,
- BÄST
- Bättre
- mellan
- Bortom
- Sedlar
- födelse
- Block
- båda
- föra
- Bringar
- Byggnad
- byggt
- men
- by
- kallas
- kom
- KAN
- Kort
- Vid
- fall
- avslappnad
- kedja
- kedjor
- utmanar
- utmaningar
- byta
- Välgörenhet
- billig
- Pommes frites
- val
- citerade
- klar
- klienter
- cloud
- Medgrundare
- koda
- komma
- samhällen
- samfundet
- Företag
- företag
- tävlande
- komplex
- Komplexiteten
- Efterlevnad
- komponent
- oro
- innehåll
- Däremot
- upphovsrätt
- Kärna
- Pris
- kunde
- råd
- Naturligtvis
- skapa
- skapas
- skaparen
- skaparna
- kritisk
- kultur
- För närvarande
- Kunder
- skärning
- datum
- datauppsättning
- datauppsättningar
- datering
- dag
- Dagar
- döda
- årtionde
- årtionden
- djup
- beroende
- utplacerade
- utplacering
- detaljerad
- utvecklade
- utvecklare
- Utveckling
- enheter
- DID
- olika
- svårigheter
- upptäckt
- diskriminering
- diskutera
- fördelning
- flera
- do
- dokumentera
- gör
- inte
- gör
- domäner
- gjort
- inte
- dussintals
- dra
- chaufför
- under
- varje
- Tidig
- lätta
- lätt
- ekonomi
- kant
- redaktörer
- omfamnade
- råka ut för
- änden
- Endless
- tillräckligt
- säkerställa
- Företag
- Hela
- helt
- enheter
- speciellt
- Eter (ETH)
- Även
- ständigt växande
- exakt
- exempel
- exempel
- Utom
- undantag
- Bygga ut
- förvänta
- förväntat
- dyra
- utforskas
- Explosionen
- exponentiellt
- extremt
- ytorna
- bekant
- SNABB
- Favoriten
- få
- fylla
- Förnamn
- flexibel
- Strömmande
- följer
- För
- Förmögenhet
- ramar
- från
- förbetalt
- framtida
- Allmänt
- generativ
- skaffa sig
- få
- GitHub
- ges
- kommer
- borta
- Regeringen
- beviljats
- Odling
- Växer
- hade
- Hård
- hårdvara
- Har
- he
- hjälpa
- här.
- historia
- Förhoppningsvis
- värd
- HET
- Hur ser din drömresa ut
- Men
- HTTPS
- Kramar ansikte
- Människa
- Hundratals
- Hype
- i
- SJUK
- identifiera
- IEEE
- if
- bild
- oerhört
- Inverkan
- implikationer
- vikt
- med Esport
- förbättring
- in
- incitament
- Inklusive
- otroligt
- oerhört
- industriell
- industrin
- Innovation
- ingångar
- Intel
- avsedd
- interagerar
- intresserad
- skärning
- in
- Invest
- investera
- IT
- iteration
- DESS
- bara
- KDnuggets
- hålls
- Nyckel
- Vet
- Large
- större
- största
- Efternamn
- Förra året
- Sent
- senare
- Lag
- advokat
- ledande
- LÄRA SIG
- lärt
- inlärning
- t minst
- Adress
- mindre
- lektion
- Lärdomar
- ansvar
- bibliotek
- Bibliotek
- Licens
- livet
- tycka om
- sannolikt
- linux
- Lång
- länge sedan
- lång sikt
- se
- Lot
- Föremål
- Låg
- Maskinen
- maskininlärning
- Mac OS
- magi
- underhåll
- större
- göra
- sätt
- många
- material
- mogen
- Maj..
- betyda
- betyder
- menas
- mätt
- mätning
- Möt
- metadata
- kanske
- MIT
- Mildra
- modell
- modeller
- Modern Konst
- ögonblick
- pengar
- mer
- mest
- för det mesta
- motiv
- mycket
- mängd
- måste
- my
- nödvändigtvis
- Behöver
- behov
- Nya
- Nästa
- Nej
- anmärkningsvärd
- inget
- nu
- antal
- Nvidia
- Uppenbara
- of
- sänkt
- erbjudanden
- Ofta
- Gamla
- on
- gång
- ONE
- endast
- öppet
- öppen källkod
- OpenAI
- drift
- operativsystem
- or
- organisation
- vår
- ut
- utfall
- utgångar
- över
- Fred
- Papper
- Parallell
- Parallels
- särskilt
- Tidigare
- bana
- kanske
- bitar
- Plats
- Planen
- plattform
- plato
- Platon Data Intelligence
- PlatonData
- Spela
- doppa
- Punkt
- poolen
- pop
- möjlig
- den mäktigaste
- praktiken
- tidigare
- primär
- förmodligen
- Problem
- problem
- Produkt
- produktutveckling
- Framsteg
- projektet
- projekt
- proprietary
- beprövade
- härkomst
- allmän
- köpare
- pytorch
- radikal
- snabb
- snarare
- Läsning
- redo
- verkliga världen
- insåg
- senaste
- reglerad
- reglering
- uppfinna
- Förhållanden
- Rapport
- kräver
- Krav
- forskning
- Forskning tyder
- höger
- rötter
- rinnande
- s
- SaaS
- Samma
- SBOM
- omfattning
- sektor
- säkerhet
- söker
- verkar
- allvarligt
- in
- uppsättningar
- skall
- Kisel
- Likheterna
- Liknande
- helt enkelt
- eftersom
- webbplats
- Small
- So
- Mjukvara
- Programutvecklare
- säljs
- några
- ibland
- något
- sofistikerade
- Källa
- Källor
- utrymmen
- tala
- specialist
- specifikationer
- specifikationer
- Spendera
- spridning
- stapel
- Stacks
- igång
- Starta
- Startups
- Fortfarande
- stoppa
- ström
- gata
- starkt
- strukturerade
- ämne
- Föreslår
- leverera
- leveranskedjan
- Försörjningskedjor
- stödja
- överraskning
- överleva
- apt
- System
- Ta
- tar
- tala
- tekniker
- Teknologi
- tensorflow
- termin
- än
- den där
- Smakämnen
- Framtiden
- deras
- Dem
- sedan
- Där.
- därför
- Dessa
- de
- saker
- tror
- Tänkande
- tänker
- detta
- de
- fastän?
- tusentals
- Genom
- tid
- till
- verktyg
- topp
- spår
- Spårning
- traditionell
- trafik
- Utbildning
- behandling
- verkligen
- prova
- försöker
- tweaks
- två
- typer
- oklar
- understödja
- förstå
- tyvärr
- unix
- us
- Användning
- användning
- användningsfall
- Begagnade
- Användare
- med hjälp av
- mängd
- försäljare
- version
- mycket
- volontär
- Rösta
- var
- vågor
- Sätt..
- sätt
- we
- VÄL
- Vad
- Vad är
- som
- VEM
- brett
- Vild
- kommer
- fönster
- med
- utan
- Arbete
- arbetssätt
- världen
- Världens
- skulle
- skrivning
- år
- år
- dig
- zephyrnet