Per molte persone nel mondo, l'anno scorso è stato l'anno della ripresa dei contatti umani e della vita comunitaria. Questa ripresa si è manifestata anche attraverso l'impegno di Meta per l'open source, in quanto collaboratori, utenti e organizzazioni hanno unito le forze per intensificare l'impatto dei sistemi open source.
I progetti pubblicati da Meta puntano ad affrontare le esigenze e i problemi degli sviluppatori, dalla creazione di un'intelligenza artificiale (IA) di ultima generazione alla realizzazione di esperienze e app web innovative e intuitive, mentre la community open source rappresenta uno strumento per condividere le tecnologie e sfruttarle in modo collaborativo.
Questo post ripercorre i punti salienti di Meta Open Source e mette in luce il contributo di Meta per creare una community open source nel 2022. Tratta anche gli aggiornamenti degli strumenti e del codice condivisi da Meta e dai suoi ingegneri, inclusi i principali sviluppi di PyTorch, il rilascio di React 18, l'introduzione del client di controllo del codice sorgente Sapling e altro ancora.
Scopri i vari argomenti:
Prospettive e contributi diversi rinvigoriscono i sistemi open source, per questo Meta cerca attivamente opportunità di collaborazione con le fondazioni esistenti allo scopo di raggiungere obiettivi condivisi. L'anno scorso, vari progetti di Meta sono stati trasferiti a una fondazione con l'idea di rendere ancora più democratiche le risorse open source disponibili e ampliarne la governance.
A settembre, il framework di PyTorch per l'IA ha aderito alla Linux Foundation mediante la creazione della nuova PyTorch Foundation. L'ente, che include i leader di settore, mira ad espandersi nel corso del tempo promuovendo iniziative di coinvolgimento e di marketing commerciale e dei prodotti per la tecnologia.
Lo scorso anno, è iniziata la transizione di Jest verso l'OpenJS Foundation. Il progetto open source è uno dei framework di testing di JavaScript più ampiamente utilizzati. Rendere il progetto più accessibile per i nuovi utenti e sviluppare nuove funzionalità sono alcuni degli obiettivi della fondazione.
Meta si impegna a stimolare ulteriormente l'innovazione nei progetti open source che dona alle fondazioni. Nel 2022, Meta ha intensificato la collaborazione con la Presto Foundation, salendo al livello più elevato di adesione alla fondazione. Meta ha sponsorizzato inoltre PrestoCon Day e PrestoCon, la prima conferenza in presenza della fondazione.
Didascalia: i Developer Advocate di Meta e altri membri del team Meta Open Source all'All Things Open lo scorso ottobre.
I Developer Advocate e gli ingegneri di Meta hanno cercato opportunità efficaci per coinvolgere la community durante l'anno, apprendendo dagli esperti e dalle organizzazioni di tutta la community e condividendo a loro volta le conoscenze sui progetti open source avviati in Meta.
Scopri i contenuti creati dai Developer Advocate di Meta:
Informati sul ruolo di Developer Advocate in Meta da Cami Williams, Developer Advocate Manager.
Ascolta le interviste agli sviluppatori open source di Meta nella playlist di podcast The Diff.
I Developer Advocate e i membri del team Open Source di Meta hanno partecipato alla decima edizione di All Things Open in rappresentanza di Meta Open Source. Prima dell'evento, l'Engineering Director Killian Murphy ha condiviso le sue riflessioni su come Meta si stia impegnando ad abbattere le barriere per i collaboratori open source, puntando a rendere disponibile a tutti questo servizio. Meta si impegna a definire standard di accoglienza elevati per tutti coloro che desiderano usare e contribuire alle tecnologie disponibili in open source.
Il team Meta Open Source ha anche allestito uno stand all'All Things Open per far conoscere i progetti di Meta e incontrare gli sviluppatori che utilizzano queste tecnologie nel settore e nella ricerca. All'evento sono intervenuti anche i Developer Advocate e gli ingegneri.
Scopri le discussioni del team Developer Advocate all'All Things Open del 2022:
I post sul blog del team Meta Linux Kernel hanno messo in luce la ricerca e lo sviluppo continui. I post includevano come unirsi alla community di Linux. 11 membri del team allargato Meta Kernel hanno presentato la discussione alla Linux Plumbers Conference 2022. L'intero elenco degli interventi è disponibile sul sito web dell'evento. Il team ha avviato anche la serie "Meet the Developers", per presentare ingegneri Meta che hanno partecipato alla conferenza e trattare argomenti come una panoramica degli hook di rete BPF e dell'esperienza utente in Meta, l'applicazione live delle patch al kernel su larga scala e molto altro.
Il team Meta Linux Kernel supporta la direzione dello sviluppo del kernel per migliorarne l'utilizzo in Meta e per promuovere lo stato della community in generale. Il team collabora fianco a fianco con la community del kernel Linux upstream per fare in modo che i progetti siano pensati per l'inclusione e per dare priorità al caricamento del kernel upstream.
Sul blog di Meta Open Source, la storia dell'utente Hasher-Matcher-Actioner ha messo in luce il lavoro dei partecipanti al programma MLH Franklin Phan e Samyak Mehta, e Meta ha continuato a sostenere il programma in collaborazione con GitHub e Major League Hacking.
La serie di storie dei collaboratori Meta ha narrato i successi e le sfide del contribuire all'open source, nonché le best practice per essere coinvolti nella community. Dai un'occhiata ai post sul blog del 2022:
Il metaverso aspira ad essere un luogo in cui le persone si possano riunire e possano interagire in nuove modalità innovative. Per risultare efficace per tutti, il metaverso si deve basare su una community solida e deve incorporare idee diverse.
Le community open source, con la loro mentalità basata sulla collaborazione, sono il punto di partenza naturale per conversazioni importanti in grado di dare forma al metaverso, e i Developer Advocate di Meta hanno preso parte alla discussione. Navyata Bawa ha proseguito la serie "Fostering Inclusivity in VR" (Promuovere l'inclusività nella VR) alla Global Women in Tech Network Conference a giugno, parlando di come si possano creare applicazioni di realtà virtuale con accessibilità e inclusività, mentre le attività inerenti alla VR/AR continuano a crescere.
Nell'episodio del podcast Stack Overflow, "Here’s what it’s like to develop VR at Meta" (Ecco come funziona lo sviluppo della VR in Meta), Cami Williams, Developer Advocate Manager, ha raccontato come i Reality Labs possano imparare da (e creare un legame con) la community React, illustrando anche alcuni strumenti e risorse per iniziare a sviluppare per la VR.
Nell'ambito dell'impegno di Meta per ampliare la presenza della community e fornire strumenti di creazione nell'ecosistema VR, sono stati pubblicati gli esempi di presentazione di Quest su GitHub. Per favorire la diffusione di questi strumenti, Bawa ha realizzato la serie "Building Your Multiplayer VR Experience" (Creazione dell'esperienza VR multigiocatore) per l'SDK della piattaforma Oculus e l'esempio di SharedSpaces in Unity, e il tutorial "Building Intuitive Interactions for VR" (Creazione di interazioni intuitive per la VR) per l'SDK di interazione e gli esempi diFirst Hand.
Il post sul blog "Summer of Open Source: Moving Virtual Reality Forward" (Summer of open source: futuro della realtà virtuale) presentava alcune delle ultime innovazioni nell'ambito di Meta e citava un'intervista con l'ingegnere informatico Eric Le Saux nell'episodio 14 di The Diff. Scopri la playlist relativa ad AR e VR con conversazioni più recenti con gli sviluppatori Meta, tutorial e risorse in quest'ambito.
Il 2022 è stato un anno importante per PyTorch e per i nuovi modelli dell'IA di Meta progettati per consentire a tutti, dai ricercatori ai creatori, di esprimersi. Ecco alcuni dei modi in cui Meta ha promosso la formazione, l'ottimizzazione e la distribuzione dei modelli di intelligenza artificiale.
Dopo il passaggio alla PyTorch Foundation (gestita dalla Linux Foundation), PyTorch 2.0 è stato presentato alla PyTorch Conference, tenutasi a dicembre a New Orleans. I numeri presentati alla conferenza indicano quanto sono cresciute PyTorch e la sua community nel 2022: il 63% delle implementazioni delle ricerche sull'IA hanno scelto di usare PyTorch, mentre, secondo i dati di GitHub, il numero di repository di GitHub basati su PyTorch è aumentato del 45% rispetto all'anno precedente.
Frutto di anni di ricerca, PyTorch 2.0 offre migliori performance di compilazione, pur continuando ad offrire la stessa esperienza che gli utenti di PyTorch già conoscono e apprezzano. Gli aggiornamenti includono le accelerazioni a riga unica con torch.compile, compatibilità al 100% con le versioni precedenti e un compilatore interamente di Python.
Leggi altri contenuti del 2022 su PyTorch dei Developer Advocate di Meta e degli utenti attivi:
Video tutorial: Distributed Data Parallel in PyTorch (Dati distribuiti paralleli in PyTorch)
Post sul blog: Building more efficient AI with PyTorch (Realizzare IA più efficienti con PyTorch)
I framework di ottimizzazione e la formazione in base ai modelli contribuiscono alla creazione di modelli di IA in grado di svolgere attività realistiche in maniera complementare alle capacità delle persone. Questa reciprocità è evidente anche nella traduzione linguistica, in cui i modelli di intelligenza artificiale sono in grado di imparare centinaia di lingue, anche quelle parlate da poche persone soltanto. Nel 2022, Meta AI ha introdotto il modello di IA No Language Left Behind (Nessuna lingua resti indietro), che traduce 200 lingue diverse con risultati eccellenti insieme a un dataset di valutazione e il rispettivo codice open source. Queste iniziative open source contribuiscono a migliorare i modelli per tradurre documenti critici e preservare le lingue con poche risorse.
Meta ha reso disponibile in open source CICERO, il primo agente di IA a raggiungere prestazioni a livello umano in Diplomacy, un complesso gioco di strategia in un linguaggio naturale.* L'integrazione di un modello linguistico con gli algoritmi di apprendimento per la pianificazione e il rinforzo offre a CICERO la capacità di ragionare e decidere le strategie tenendo conto delle motivazioni dei giocatori, per poi usare il linguaggio per stringere accordi volti a raggiungere obiettivi condivisi, formare alleanze e coordinare i piani. Ci sono stati molti altri momenti dedicati all'IA e all'open source non trattati qui; è possibile consultare altre storie relative all'IA nel blog Meta AI.
Scopri gli altri progressi ottenuti da Meta AI nel 2022:
Democratizing access to large-scale language models with OPT-175B (Un accesso democratico a modelli linguistici su larga scala con OPT-175B)
Data2vec 2.0: Highly efficient self-supervised learning for vision, speech and text (Data2vec 2.0: apprendimento ad alta efficienza con supervisione autonoma per la vista, i comandi vocali e il testo)
Significantly faster Vision Transformer training (Corso di formazione per un Vision Transformer nettamente più rapido)
* Tutti i diritti relativi a Diplomacy sono di proprietà di Hasbro, Inc.
Oltre alla notizia dell'inizio della transizione di Jest verso OpenJS Foundation, in agosto è stato rilasciato Jest 29. Il progetto ha superato 40 000 stelle su GitHub nella seconda metà dell'anno. Un altro momento saliente per i sistemi web e mobili è stato il lancio di React 18, con il supporto del gruppo di lavoro pubblico React 18. La nuova versione includeva gli aggiornamenti per il rendering di concorrenza, con ulteriori funzionalità e API di supporto. Scopri le iniziative per aggiornare la versione beta di React Docs insieme alla release, inclusa la documentazione di Effects e l'avvio rapido.
A settembre, i team React Technologies di Meta hanno radunato i collaboratori principali e i gestori della libreria al React Native Core Contributor Summit. I dibattiti nel summit si sono focalizzati sugli ecosistemi correnti e futuri di React Native e Metro e i partecipanti hanno definito iniziative attive per migliorare l'ecosistema di React Native.
Tra gli altri progetti Meta resi disponibili open source per il web e i dispositivi mobili, Js-flipper è un pacchetto NPM che espone un client Flipper alle app JavaScript e consente agli sviluppatori di creare con facilità nuovi plug-in Flipper o di riutilizzare quelli esistenti. Un altro progetto, MemLab, consente di testare la memoria JavaScript per automatizzare l'individuazione delle falle di memoria.
Infine, gli sviluppatori Meta hanno condiviso insight sulle modalità di creazione con e per le tecnologie open source per il web e i dispositivi mobili. Un post sul blog indaga su un report sui bug di Hermes e su come il report ha indotto il team coinvolto a programmare un exploit basato sulla versione del 1993 di Doom in Hermes. Un altro post illustrava una nuova visualizzazione web basata su Chromium, che offre un'esperienza migliore per gli utenti del browser in-app di Facebook per Android.
Scopri la serie Meet the Developers: Mobile Edition:
Intervista con Pritesh Nandgaonkar
Intervista con Vadims Savjolovs
Intervista con Aleksandr Sergeev
Intervista con Derick Zhang
Gli sviluppatori di Meta usano strumenti open source realizzati internamente per supportare l'infrastruttura. Questi strumenti spesso vengono testati e messi a punto durante le attività quotidiane in Meta, dando vita a progetti open source che soddisfano le esigenze specifiche di scalabilità e velocità.
Nel 2022, il team di Sapling ha lanciato un nuovo client per il controllo del codice sorgente compatibile con Git. Progettato per garantire usabilità e scalabilità, Sapling è un sistema di controllo del codice sorgente che punta a condividere quello che gli sviluppatori di Meta mettono a punto da più di dieci anni, per ispirare altre attività in quest'area e per mostrare agli sviluppatori il potenziale futuro dei sistemi di controllo del codice sorgente. In agosto è stato rilasciato Docusaurus 2.0, un generatore di siti statico performante, ampliando l'uso di React e il supporto dei siti web oltre alla documentazione.
Altri aggiornamenti ai progetti includono un nuovo rilevatore di stallo per Android, l'aggiunta dei "Lazy imports" in Cinder e un'anteprima dell'editor di ultima generazione OpenStreetMap RapiD 2.0. Un altro progetto, Hermit, ha introdotto un pratico sistema operativo deterministico che permette agli sviluppatori di risolvere problemi come i test a prova di errore e il controllo degli input impliciti, come la programmazione dei thread, la generazione di numeri casuali e altro ancora.
Uno dei post più diffusi spiegava come gli strumenti per sviluppatori di Meta interagiscono tra loro nell'ambito del flusso di lavoro dello sviluppatore, e molti di questi sono open source. Il post includeva progetti come il sistema di creazione Buck, SuperConsole, EdenFS (un file system strettamente integrato con Sapling), il framework di testing Jest e altri strumenti.
Leggi altri articoli e pubblicazioni relativi agli strumenti per sviluppatori del 2022.
La libreria open source C++, Velox, è stata annunciata ad agosto 2022. Velox è un'evoluzione nella riduzione dell'energia e nell'aumento delle prestazioni per i motori di dati. La libreria usa l'esecuzione nativa e verrà integrata con molti strumenti in Meta come livello di motore di esecuzione unificato.
Velox è stato progettato per ridurre nettamente la manutenzione del codice e ha portato a un miglioramento delle prestazioni da 2 a 10 volte in diversi casi d'uso. Scopri di più sulla crescente community di Velox e sul suo innovativo refactoring del modo in cui i motori e i database di big data eseguono interrogazioni sui dati nel documento "Velox: Meta’s Unified Execution Engine" (Velox: il motore di esecuzione unificato di Meta), pubblicato in VLDB nel 2022.
Lo scorso anno soltanto, il progetto open source Presto su GitHub ha avuto 21 release, ottenendo poco meno di 2000 nuove stelle, 600 nuovi fork e 152 nuovi utenti attivi. La Presto Foundation ha tenuto il suo primo evento in presenza, PrestoCon, al Computer History Museum di Mountain View, CA, mentre Tim Meehan ha tenuto una conferenza come presidente di TSC e Philip Bell ha annunciato la direzione di Presto per il prossimo anno.
A dicembre, il team RocksDB ha ripreso gli incontri annuali in presenza alla sede centrale di Meta a Menlo Park, riunendo gli ingegneri Meta e i collaboratori esterni per discutere dei casi d'uso, delle nuove innovazioni e delle aspirazioni per il progetto.
Sicurezza e hardware sono molto importanti per sostenere il lavoro degli sviluppatori. Dagli strumenti per il debug all'hardware di rete, i sistemi open source di Meta aiutano a far sì che i sistemi e il codice siano solidi, sicuri e affidabili.
A inizio anno, la storia di un utente ha descritto il lavoro con Pysa, uno strumento di analisi statica di Python che fa parte del progetto Pyre-check. La storia illustrava come la creazione di solide community open source possa incidere direttamente sul successo di progetti come Pysa, in questo caso aumentando la sicurezza del codice.
Per quanto riguarda l'hardware, è stato sviluppato il protocollo Precision Time tra le reti e i data center di Meta. Questa tecnologia offre nuovi livelli di precisione e accuratezza per la sincronizzazione dell'orologio nei sistemi distribuiti. Insieme all'Open Compute Project, l'hardware e il software progettati a supporto del protocollo sono stati pubblicati open source per favorire l'adozione nel settore.
Nel 2022, Meta ha portato avanti attività open source in prodotti come WhatsApp e Messenger. Code Verify, pubblicato come open source a marzo, è un'estensione del browser che permette agli sviluppatori di proteggere l'integrità del codice in WhatsApp Web e Messenger indicando se il codice di una pagina web possa essere stato manomesso o alterato.
Questo post ha trattato poco più di 1000 progetti Meta open source e i relativi aggiornamenti nel 2022. Per conoscere altri di questi progetti open source, visita il sito web di Meta Open Source e seguici su Facebook, Instagram, Twitter e LinkedIn. Un ringraziamento speciale va alla community di collaboratori, organizzazioni, utenti e partner che lavorano insieme a Meta ai progetti open source.
Noi di Meta crediamo che l'open source acceleri il ritmo dell'innovazione nel mondo. Condividendo il codice, lo stack e anche il design hardware, puntiamo a far crescere il settore, offrendo ad altre aziende e persone l'opportunità di usare le nostre soluzioni per progredire più rapidamente e creare prodotti straordinari.
Questo post è stato scritto in collaborazione con i Developer Advocate di Meta Dmitry Vinnik, Suraj Subramanian e Cami Williams.