top of page

PyWhy: ulteriore passo verso un AI causale?

  • Immagine del redattore: Paolo Benanti
    Paolo Benanti
  • 1 giu 2022
  • Tempo di lettura: 8 min

Amazon Web Services (AWS), un'azienda di proprietà del gruppo Amazon che fornisce servizi di cloud computing su un'omonima piattaforma on demand, ha appena annunciato di aver contribuito alla creazione di nuovi algoritmi di apprendimento automatico causale aggiungendoli alla libreria DoWhy di Python. Le nuove caratteristiche vanno oltre la stima convenzionale degli effetti, attribuendo gli eventi ai singoli componenti di sistemi complessi. Cerchiamo di approfondire la portata dell'annuncio.

Partiamo da cosa è stato annunciato sul blog Amazon Science:


Siamo lieti di annunciare il rilascio open-source di algoritmi di apprendimento automatico causale (ML) che sono il risultato di anni di ricerca di Amazon sui modelli causali grafici. Gli algoritmi consentono una serie di complesse interrogazioni causali oltre alla consueta stima degli effetti, tra cui, ma non solo, l'analisi delle cause di outlier e cambiamenti nella distribuzione, l'apprendimento di strutture causali e la diagnosi di strutture causali. Internamente, sono stati utilizzati da team di Amazon che spaziano dalla Supply Chain ad Amazon Web Services (AWS).



Siamo inoltre entusiasti del fatto che, in uno sforzo congiunto con Microsoft, abbiamo creato una nuova organizzazione GitHub chiamata PyWhy. PyWhy è la nuova sede di DoWhy, una libreria di ML causale di Microsoft, in cui stiamo facendo confluire i nostri algoritmi. DoWhy è una delle librerie di causalità più popolari su GitHub. Amazon e Microsoft sono lieti di collaborare con la comunità di utenti e collaboratori di DoWhy. Come ha detto il nostro collega Dominik Janzing, principal scientist di Amazon, "È emozionante vedere il lavoro del nostro team degli ultimi tre anni condiviso con l'intera comunità scientifica".


La maggior parte dei sistemi del mondo reale, siano essi sistemi di calcolo distribuito, sistemi di supply chain o processi produttivi, possono essere descritti utilizzando variabili che possono o meno esercitare un'influenza causale l'una sull'altra. Si pensi, ad esempio, a un'architettura di microservizi composta da molti servizi web diversi. Qual è la causa dell'aumento dei tempi di caricamento del sito web? È un database lento nel back-end? Un bilanciatore di carico non funzionante? Una rete lenta?


Le librerie esistenti per la causalità, tra cui DoWhy, si concentrano su vari tipi di stima degli effetti, in cui l'obiettivo generale è identificare l'effetto degli interventi su qualche variabile target. Nel caso di un'architettura a microservizi, aiuterebbero a rispondere a domande come: "Se apporto questa modifica alla configurazione del mio servizio di caching, migliorerà i tempi di caricamento del sito web o li peggiorerà?".


Il nostro contributo integra le funzionalità esistenti di DoWhy sfruttando la potenza dei modelli causali grafici (GCM). I GCM sono un framework formale sviluppato da Judea Pearl, vincitore del Turing Award, per modellare le relazioni di causa-effetto tra le variabili di un sistema. Un ingrediente chiave dei GCM sono i diagrammi causali, che rappresentano visivamente le relazioni di causa-effetto tra le variabili osservate, con una freccia da una causa al suo effetto.



Nella stima degli effetti (a sinistra), gli analisti intervengono in un punto del processo causale (martello) e osservano le conseguenze (arancione). In questo modo si esclude l'influenza delle cause a monte del punto di intervento (forbici) e gli effetti dell'intervento possono variare (gradazioni di colore) man mano che si propagano attraverso la catena causale. Nell'analisi delle cause profonde (a destra), invece, gli analisti osservano un effetto - in questo caso, un rallentamento del sito web - e, controllando sistematicamente le altre spiegazioni, identificano l'evento - in questo caso, un problema con il servizio di caching - più direttamente responsabile.


Ogni variabile in un diagramma causale ha il suo meccanismo causale, che descrive come i suoi valori sono generati dai valori dei suoi genitori. Possiamo addestrare modelli probabilistici per imparare questi meccanismi causali e usarli per attribuire eventi anomali o cambiamenti nei meccanismi a nodi specifici. Questa scomposizione in contributi di meccanismi è l'idea centrale dei nostri nuovi algoritmi per l'analisi delle cause.


Ad esempio, nell'architettura a microservizi menzionata in precedenza, potremmo accidentalmente distribuire un servizio difettoso, che utilizza una query SQL non ottimale per ottenere i dati dal database, aumentando le latenze del sito web. Utilizzando una funzione che chiamiamo "attribuzione delle modifiche alla distribuzione", possiamo identificare il servizio difettoso.



Un algoritmo Amazon per l'analisi delle cause profonde adatta il concetto teorico di gioco dei valori di Shapley per determinare i contributi dei diversi meccanismi causali al risultato della sequenza causale. Da "Explaining changes in real-world data".


Ma i GCM possono fare di più: possono essere usati per calcolare gli effetti degli interventi, stimare controfattuali, calcolare le influenze dirette e intrinseche dei nodi sui loro discendenti o attribuire le anomalie a potenziali cause profonde a monte. Rilasciando i nostri algoritmi, speriamo di mettere questi strumenti a disposizione di un pubblico più ampio di ricercatori e professionisti e di contribuire a far progredire i metodi scientifici dei GCM.


PyWhy

Per la stima degli effetti, DoWhy utilizza già due dei framework scientifici più diffusi per l'inferenza causale - i modelli causali grafici e gli esiti potenziali - e li combina in un'unica libreria. Con il nostro contributo, ci auguriamo di riuscire a stimolare ulteriormente la sinergia tra i due framework e le rispettive comunità di ricerca.


Ma la nostra visione a lungo termine va oltre DoWhy, i risultati potenziali e i GCM. Questo si riflette nel nostro sforzo di creare PyWhy e nel nostro impegno a contribuire a guidare la direzione di questa nuova organizzazione su GitHub. Siamo lieti che altri si uniscano ai nostri sforzi e diventino parte della comunità.


La nostra speranza e ambizione per PyWhy - come recita la sua missione - è di "costruire un ecosistema open-source per l'apprendimento automatico causale che faccia progredire lo stato dell'arte e lo renda disponibile a professionisti e ricercatori. Costruiamo e ospitiamo librerie, strumenti e altre risorse interoperabili che coprono una varietà di attività e applicazioni causali, collegate attraverso un'API comune sulle operazioni causali fondamentali e un focus sul processo di analisi end-to-end".


La causalità come chiave del futuro

L’apprendimento automatico o machine learning è un sottocampo dell’AI che funziona secondo modelli di apprendimento automatico classici – detti non-deep – che richiedono un maggiore intervento umano per segmentare i dati in categorie. Il deep learning è a sua volta un sottocampo del machine learning che tenta di imitare l’interconnessione del cervello umano utilizzando le reti neurali. Le sue reti neurali artificiali sono costituite da strati di modelli, che identificano i modelli all’interno di un determinato set di dati. Questi sfruttano un volume elevato di dati di addestramento per apprendere in modo accurato, che di conseguenza richiede hardware più potente. Per quanto gli algoritmi di deep learning siano oggi fortemente associati con la realizzazione di AI di livello umano presentano enormi problemi per quanto riguarda la spiegabilità dei processi decisionali che mettono in pratica.


Per superare questa impasse si teorizza la realizzazione di una intelligenza artificiale forte o Strong AI, nota anche come Intelligenza Artificiale Generale (GAI). L’idea dei ricercatori è di sviluppare una GAI mediante la quale la macchina potrebbe avere un’intelligenza pari a quella umana, sviluppare l’equivalente di una coscienza ed avere la capacità di risolvere problemi, imparare e a pianificare azioni future. Di fatto la Strong AI mira a creare macchine intelligenti indistinguibili dalla mente umana che proprio come un bambino imparerebbero attraverso input ed esperienze progredendo nel tempo. I ricercatori, parte del mondo accademico e il settore privato stanno investendo molto nella creazione della GAI. Tuttavia, allo stato attuale dello sviluppo questa è solo un concetto teorico e nulla di tangibile che si possa avvicinare a questa è ancora stato realizzato. Il dibattito è molto acceso e alcuni citano Minsky ricordando le sue previsioni troppo ottimistiche sullo sviluppo delle AI, altri sono più radicali e arrivano a dire che i sistemi di AI forte non possono nemmeno essere sviluppati. Altri ancora, come Judea Pearl, pensano che sia possibile invece realizzare una macchina capace di inferenza causale e quindi possiamo realizzare il primo passo verso la realizzazione di una GAI.



Proprio il riferimento a Pearl rende questa notizia così interessante. Le linee di sviluppo verso cui vogliamo spingere le intelligenze artificiali includono la causazione. L’intera opera di Judea Pearl va in questa direzione. La sua ricerca sull’apprendimento automatico mostra come realizzare una macchina di inferenza causale richieda almeno tre livelli distinti di abilità cognitiva: vedere, fare e immaginare.


La prima abilità, che l’autore definisce come vedere o osservare, implica che la macchina sia in grado di individuare gli elementi di regolarità nei dati. Questa abilità è una capacità che, come uomini, condividiamo con molti animali e che al momento siamo in grado di realizzare con gli algoritmi di machine learning. Questo è ciò che fa un predatore quando osserva come si muove la preda e capisce dove questa si troverà probabilmente un momento dopo, ed è ciò che fa un programma informatico come AlphaGo di Deep Mind che ha analizzato un database di milioni di partite di Go in modo da capire quali mosse sono associate a una più alta percentuale di vittorie. Seguendo la definizione di Hume possiamo intuire che un evento è associato ad un altro se l’osservazione della variazione dell’uno cambia la probabilità di osservare una variazione nell’altro. Come abbiamo visto nell’esempio del diamante ci sono molti metodi elaborati per ridurre un gran numero di dati e identificare le associazioni tra variabili. La “correlazione” o “regressione” è una tipica misura di associazione e come abbiamo visto comporta l’adattamento di una linea a un insieme di punti di dati e la presa della pendenza di quella linea. Alcune associazioni potrebbero avere ovvie interpretazioni causali; altre no. Ma la statistica da sola non può dire quale sia la causa e quale l’effetto.



La seconda competenza prevede la capacità di prevedere gli effetti che alterazioni deliberate dell’ambiente e la scelta di quali tra le possibili diverse alterazioni può produrre un risultato desiderato. Nel mondo dei viventi, solo una piccola quantità di specie ha mostrato parte di questa abilità. L’uomo fa questo con l’uso di strumenti e artefatti tecnologici. Pearl fa notare che anche le specie che mostrano alcune capacità di utilizzare strumenti non possiedono necessariamente una “teoria” sul funzionamento dello strumento.


Per raggiungere questa consapevolezza serve un terzo livello: l’immaginazione. Judea Pearl mostra da un punto di vista matematico come questi tre livelli differiscano fondamentalmente tra loro mediante l’emergenza di proprietà non presenti al livello inferiore. Acquisire queste capacità è l’obiettivo di chi sviluppa la cosiddetta strong o general AI. Lo scopo di questa intelligenza artificiale detta forte è avere macchine con un’intelligenza simile a quella umana: in grado di essere motori di inferenze causali e quindi in grado di conversare con gli umani e guidarli. Fino ad oggi i risultati delle intelligenze artificiali, anche del più sofisticato deep learning, ha prodotto sistemi con capacità impressionanti ma in settori molto specifici, la cosiddetta narrow AI. Di fatto i prodigiosi risultati di previsione che ottengono queste macchine avvengono in una totale assenza di un modello causale di realtà ma quasi interamente in modalità associativa. Gli strumenti che abbiamo realizzato lavorano su un flusso di dati – le osservazioni della realtà – a cui tentano di adattare una funzione matematica, in un modo analogo a quanto fa uno statistico che cerca di adattare una linea a un insieme di punti.



Le innovazioni introdotti dai neural networks consistono nell’aggiungere molti più strati alla complessità della funzione adattata, ma l’intero processo è guidato da dati grezzi. I grandi successi che compaiono nei media testimoniano solamente un continuato miglioramento in accuratezza grazie a quantità di dati sempre maggiori come nel caso del GPT-3 ma non si tratta del salto qualitativo che stiamo cercando di realizzare. I modelli di narrow AI sono caratterizzati da una mancanza di flessibilità e adattabilità: un sistema addestrato a fare una cosa farà quella e basta, mentre l’intelligenza umana adatta il contenuto di un processo acquisito a compiti diversi. Judea Pearl mostra senza ombra di dubbio che questa rigidità è inevitabile in qualsiasi sistema che lavori a questo primo livello di quella che definisce Scala di causalità.


L’orizzonte più avanzato nello sviluppo delle AI vuole realizzare un modello causale sufficientemente forte e accurato può permetterci di usare i dati (osservazionali) per rispondere a nuovi tipi di domande.


Il tipo di intelligenza artificiale che sviluppiamo ora non consente qualsiasi tipo di applicazione: che tipo di decisioni vogliamo o possiamo delegare a una macchina che funziona come un predatore che insegue una preda che fugge?


L’intelligenza artificiale oggi è molto più simile a quella di un cane o di un cavallo che non a quella di uomo.


Come il soccorso alpino sa bene, un cane da valanga può salvare delle vite indicando dove scavare anche senza un modello causale dietro la sua capacità olfattiva, ma non può di certo pilotare un elicottero o fare una diagnosi medica.



60 commenti


uyenghomsoet.h.uy.e.n+abc123
2 giorni fa

7c777 home showed up in my feed and I ended up poking around for a minute just to get a feel for the interface. I wasn’t even trying to read everything, more like seeing if the site makes sense at a glance. What I liked right away is the navigation is easy to notice, so you’re not guessing where to click next. And the pages don’t dump a giant paragraph on you—stuff is broken into neat little sections so your eyes can scan without effort. It’s the kind of layout where you can bounce between areas without losing your place. Even doing a quick skim, the menu and those grouped content blocks make it pretty simple to follow.

Mi piace

lydiaharve.y50.4.4.4
4 giorni fa

KING88 hôm trước mình thấy mấy đứa bạn nhắc nên tiện tay vào nghía thử cho biết thôi. Mình không có ngồi đọc kỹ hay làm gì nhiều, chủ yếu xem giao diện họ làm ra sao. Vừa vào cái là thấy bố cục khá gọn, nhìn không bị ngợp kiểu nhét quá nhiều thứ một lúc. Mấy phần nội dung được chia thành từng khối rõ ràng nên kéo xuống cũng dễ theo dõi, mắt đỡ phải “quét” liên tục. Mình cũng để ý cái menu điều hướng đặt khá dễ thấy, bấm qua lại mấy mục phản hồi nhanh, không phải tìm vòng vòng. Nói chung lướt vài phút thôi mà cảm giác trang làm khá “thoáng”, chữ…

Mi piace

laurasanms311989
5 giorni fa

888b com dạo này thấy nhắc hoài nên mình cũng bấm vào coi thử cho biết thôi. Mình không có tìm hiểu sâu hay tham gia gì, chủ yếu xem giao diện họ làm ra sao. Ấn tượng đầu là trang nhìn khá thoáng, chữ với khoảng cách vừa mắt nên lướt không bị mỏi. Mấy phần nội dung được chia thành từng khối rõ ràng, kéo xuống là biết mình đang ở đoạn nào chứ không bị dính một cục dài lê thê. Mình cũng thích kiểu họ trình bày thông tin theo dạng cột bảng gọn gàng, nhìn lướt cái là hiểu ý chính. Thanh menu đặt chỗ dễ thấy nên chuyển qua lại mấy mục cũng nhanh,…

Mi piace

giecphangqua.n.h.g.h.u.n.g
03 lug

vb88 mình cũng chỉ kiểu tò mò nên ghé vào lướt nhanh xem giao diện ra sao thôi chứ không ngồi mày mò gì nhiều. Vừa vào thấy trang nhìn khá sáng sủa, khoảng trắng vừa đủ nên không bị rối mắt, kéo xuống cũng nhẹ nhàng. Mình để ý họ chia nội dung thành từng khối rõ ràng, nhìn phát là biết phần nào với phần nào, không bị dính chữ tùm lum. Có mấy bảng thông tin trình bày theo cột nên liếc cái là nắm được ý chính, đỡ phải đọc dài dòng. Menu đặt ngay chỗ dễ thấy nên mình bấm qua lại vài mục thấy ổn, không phải tìm kiếm vòng vo. Nói chung cảm…

Mi piace

uyenghomsoet.h.uy.e.n+abc123
02 lug

link rr88 mình thấy mọi người nhắc hoài nên cũng bấm vào coi thử cho biết thôi. Mình không rảnh ngồi đọc kỹ hay tìm hiểu sâu, chủ yếu lướt qua xem trang nhìn có dễ chịu không. Vừa vào cái là thấy giao diện khá thoáng, chữ với khoảng trắng vừa đủ nên không bị rối mắt. Mình thích nhất là cách họ chia nội dung theo từng khối rõ ràng, kéo xuống vẫn biết mình đang ở phần nào chứ không bị dính một cục dài. Với lại mấy thông tin họ để dạng bảng cột nhìn gọn, liếc phát là hiểu ý chính, đỡ phải đọc nguyên đoạn chữ. Menu cũng đặt dễ thấy nên đổi qua…

Mi piace
bottom of page