Mokabyte

Dal 1996, architetture, metodologie, sviluppo software

  • Argomenti
    • Programmazione & Linguaggi
      • Java
      • DataBase & elaborazione dei dati
      • Frameworks & Tools
      • Processi di sviluppo
    • Architetture dei sistemi
      • Sicurezza informatica
      • DevOps
    • Project Management
      • Organizzazione aziendale
      • HR
      • Soft skills
    • Lean/Agile
      • Scrum
      • Teoria della complessità
      • Apprendimento & Serious Gaming
    • Internet & Digital
      • Cultura & Società
      • Conferenze & Reportage
      • Marketing & eCommerce
    • Hardware & Tecnologia
      • Intelligenza artificiale
      • UX design & Grafica
  • Ultimo numero
  • Archivio
    • Archivio dal 2006 ad oggi
    • Il primo sito web – 1996-2005
  • Chi siamo
  • Ventennale
  • Libri
  • Contatti
  • Argomenti
    • Programmazione & Linguaggi
      • Java
      • DataBase & elaborazione dei dati
      • Frameworks & Tools
      • Processi di sviluppo
    • Architetture dei sistemi
      • Sicurezza informatica
      • DevOps
    • Project Management
      • Organizzazione aziendale
      • HR
      • Soft skills
    • Lean/Agile
      • Scrum
      • Teoria della complessità
      • Apprendimento & Serious Gaming
    • Internet & Digital
      • Cultura & Società
      • Conferenze & Reportage
      • Marketing & eCommerce
    • Hardware & Tecnologia
      • Intelligenza artificiale
      • UX design & Grafica
  • Ultimo numero
  • Archivio
    • Archivio dal 2006 ad oggi
    • Il primo sito web – 1996-2005
  • Chi siamo
  • Ventennale
  • Libri
  • Contatti

Nel numero:

319 settembre
, anno 2025

Modelli LLM: Come funzionano?

II parte: BNN e ANN, una visione OO

Luca Vetti Tagliati
Luca Vetti Tagliati

Luca è un professionista esperto che ha ricoperto ruoli di alto profilo a Londra, New York e in Svizzera per banche di primo livello, tra cui UBS, Credit Suisse, Goldman Sachs, Lehman Brothers, Deutsche Bank e HSBC.

È pienamente qualificato per lavorare come Enterprise Architect, CTO e Technical Program Manager riuscendo a gestire i progetti con un'ottica multiruolo. La profonda comprensione della tecnologia, combinata con mirate strategie di gestione, ha permesso a Luca di gestire brillantemente programmi complessi con tempistiche aggressive.

La sua strategia di pensiero è un mix di visione e pragmatismo. Il suo background accademico, che include un dottorato di ricerca, è solidamente integrato da una vasta esperienza pratica, avendo completato tutti i suoi percorsi universitari mentre lavorava a tempo pieno nell'industria.

Negli ultimi anni, Luca ha riscoperto la sua passione per l'intelligenza artificiale, grazie alla sua posizione di Global Head for AI for Data Analytics and Innovations.

È anche autore di numerose pubblicazioni, tra cui

  • UML e l’ingegneria del software: dalla teoria alla pratica (2004)
  • Java Best Practices (2008)
  • Verso Java SE 8: Note per lo sviluppatore in Java 7 (2013)

Luca ha anche pubblicato numerosi articoli sull'IA e altri argomenti disponibili in riviste IT e sul web.

 

Artificial Intellgence, Large Language Models

Modelli LLM: Come funzionano?

II parte: BNN e ANN, una visione OO

Immagine di Luca Vetti Tagliati

Luca Vetti Tagliati

  • Questo articolo parla di: Intelligenza artificiale, Internet & Digital

Introduzione

Continuiamo con questo articolo la nostra serie sul funzionamento dei modelli LLM: ci concentreremo, in particolare, sull’uso della modellazione orientata agli oggetti per presentare e successivamente confrontare le reti neurali biologiche (BNN) e le reti neurali artificiali (ANN). L’obiettivo è fornire ai lettori modelli formali per rappresentare questi domini utilizzando il linguaggio di modellazione unificato (UML), in particolare la notazione dei diagrammi delle classi.

I modelli saranno presentati senza applicare i tradizionali passaggi di ottimizzazione del software, per riflettere più fedelmente queste strutture come sono realmente. Nel contesto dello sviluppo software classico, possono essere considerati modelli di business.

Reti neurali biologiche e artificiali: tante differenze

Dall’analisi di questi due domini, si può subito osservare come differiscano, nonostante i concetti alla base siano molto simili. Per comprendere appieno questo documento, è essenziale avere qualche conoscenza del paradigma orientato agli oggetti e della notazione dei diagrammi di classe, anche se i diagrammi sono spiegati anche in un linguaggio semplice. Il linguaggio UML standard, in particolare la notazione dei diagrammi di classe, è un linguaggio ben consolidato che può essere appreso attraverso un’ampia letteratura. Ad ogni modo, non è necessario comprendere ogni aspetto di questo articolo per capire il modello e i successivi articoli.

 

Reti neurali biologiche (BNN)

Le reti neurali biologiche sono costituite da diverse sinapsi (figura 1, angolo superiore sinistro), con ogni sinapsi (rappresentata dalla classe Synapse) che ha funzione di collegamento tra due o più neuroni. I neuroni sono tipi di cellule specializzate; infatti, la classe Neuron eredita dalla classe Cell. Per quanto riguarda la programmazione OO, i neuroni non sono semplicemente un ruolo svolto da cellule normali, ma rappresentano una vera e propria specializzazione della classe Cell. Questa progettazione nasce dal fatto che, oltre a condividere la struttura fondamentale e il comportamento di una cellula, i neuroni possiedono strutture specifiche come i dendriti (vedi composizione con la classe Dendrite) e gli assoni (vedi composizione con la classe Axon), e svolgono compiti specializzati come ricevere e trasmettere segnali.

Figura 1 – Un diagramma UML delle classi che rappresenta una rete neurale biologica (BNN).
Figura 1 – Un diagramma UML delle classi che rappresenta una rete neurale biologica (BNN).

 

Il neurone è una classe astratta (gli elementi astratti sono evidenziati in UML con il nome riportato in corsivo) e comprende tre sottoclassi specializzate: SensoryNeuron (neurone sensoriale), Interneuron (interneurone) e MotorNeuron (neurone motore).

I neuroni sensoriali

i neuroni sensoriali sono in grado di rilevare vari stimoli, vale a dire cambiamenti di tipo fisico o chimico nell’ambiente, tra cui:

  • stimoli ambientali: come luce, suono, calore, pressione e sostanze chimiche, rilevati dai recettori sensoriali;
  • stimoli interni: informazioni sullo stato interno del corpo, inclusi cambiamenti di temperatura, pH e la presenza di alcuni metaboliti, rilevati dai recettori interni.

Pertanto, la classe Stimuli è astratta e dovrebbe essere ulteriormente specializzata. Questa parte tuttavia non è stata inclusa nel modello per evitare eccessiva complessità.

Gli stimoli vengono convertiti in segnali nervosi dai recettori sensoriali, permettendo ai neuroni sensoriali di trasmettere le informazioni al sistema nervoso centrale (CNS, Central Nervous System) per la corrispondente interpretazione.

Gli interneuroni

Gli interneuroni collegano tra loro i neuroni e si trovano solo nel CNS; il loro ruolo principale è di ritrasmettere le informazioni.

Il modello non rappresenta in modo preciso la realtà. Infatti, la classe Interneuron è associata alla classe genitore Neuron attraverso due relazioni: sources (sorgenti) e destinations (destinazioni). Questo potrebbe portare a configurazioni errate del modello. Per esempio, un MotorNeuron potrebbe essere una sorgente di un Interneuron, oppure, viceversa, un SensoryNeuron potrebbe essere una destinazione di un Interneuron. L’attuale modello comprende un ambito semantico più ampio e incorretto rispetto al dominio reale. Per correggere questa situazione, si può sia ricorrere a modelli artificialmente più complessi, sia aggiungere i seguenti due vincoli:

  • sources può essere solo di tipo #SensoryNeuron o #Interneuron
  • destinations può essere solo di tipo #SensoryNeuron o #MotorNeuron

Motoneuroni

Dal punto di vista del sistema nervoso, muscoli, organi e ghiandole possono essere collettivamente definiti come effettori (classe Effector). Gli effettori sono componenti del corpo che eseguono i comandi inviati dai neuroni motori, provocando risposte come movimento, secrezioni o cambiamenti nella funzione degli organi.

Anche in questo caso, la classe Effector è astratta e dovrebbe essere ulteriormente specializzata. Questa non è stata ancora implementata nel modello per evitare di appesantirlo.

Per quanto riguarda il comportamento, le funzioni eseguite dai vari metodi dovrebbero essere abbastanza chiare sia dal diagramma e sia dalle spiegazioni fornite finora. Potrebbe essere utile tuttavia approfondire il metodo evaluateThreshold() della classe astratta Neurone, che verifica se tutti i segnali in arrivo raggiungono o superano una soglia predefinita, determinando se il neurone debba generare o meno una potenziale azione.

Il senso di un modello

Infine, è importante considerare come vengono assegnati i metodi alle diverse classi di neuroni. Ad esempio, solo un neurone sensoriale può ricevere stimoli (getStimuli), mentre solo un neurone motorio può innescare azioni (triggerAction), e così via.

I paragrafi appena visti rappresentano in modo formale un sistema reale e complesso, utilizzando la notazione UML, mostrando l’eleganza e la potenza dei modelli orientati agli oggetti. Inoltre, essendo basato su una semantica rigorosa, può essere facilmente compreso da un vasto pubblico senza necessità di ulteriori spiegazioni, dimostrando ancora una volta che un diagramma di questo tipo ha il valore di migliaia di parole in linguaggio naturale, soprattutto considerando che il linguaggio naturale è intrinsecamente ambiguo.

 

Reti neurali artificiali (ANN)

Passiamo ora a un modello per illustrare le reti neurali artificiali (ANN) e i loro componenti chiave in un’ottica di chiarezza e di intuitività del modello a scapito dei dettagli di una possibile implementazione diretta, che richiederebbe un affinamento basato sull’ottimizzazione di strutture ecorrispondenti performance. Come menzionato nell’Introduzione, questo modello deve essere inteso come un Business Model.

Il modello è organizzato in due Package (figura 2), che riflettono due prospettive chiave:

  1. la vista del Modello
  2. la vista delle Reti Neurali Artificiali

La prima dipende dalla seconda.

Figura 2 – Un modello concettuale in ottica Object-Oriented di una rete neurale artificiale.
Figura 2 – Un modello concettuale in ottica Object-Oriented di una rete neurale artificiale.

Model

Il Modello (parte superiore del diagramma) comprende tre istanze di Layer:

  1. uno strato di Input (Input)
  2. uno strato di Output (Output)
  3. uno strato Nascosto (Hidden)

Il modello ammette una sola istanza per lo strato di Input e una sola per quello di Output. Tuttavia, lo strato nascosto è diverso, poiché generalmente ogni modello ne include più di uno. Tutti gli strati ereditano dalla stessa classe padre, Layer, che gestisce la composizione con la classe NeuronNode.

Questo aspetto del modello avrebbe potuto essere rappresentato elegantemente utilizzando un Pattern di Composizione [Gamma et al., 1995]; tuttavia, questo approccio avrebbe oscurato il significato semantico del modello e avrebbe aumentato la sua complessità. Per questa ragione, non è stato adottato.

Ogni strato ha un nome e un ID (vedi layer). Ad esempio: nome = “Output”, ID = “O1”; nome = “Interno 1”, ID = “I1”; nome = “Interno 2”, ID = “I2”, e così via.

Reti neurali artificiali

Nel secondo Package, quello indipendente, rappresentato nella parte inferiore del diagramma, la radice è ArtificialNeuralNetwork. La sua istanza possiede tutti i nodi e include collegamenti diretti ai nodi di input. Sebbene quest’ultima associazione sia in parte ridondante (poiché può essere derivata analizzando tutti i nodi posseduti), essa chiarisce e semplifica la navigazione.

Ogni NeuronNode ha un bias, che appartiene al neurone, vedi getBiasValue(), ed è associato a una funzione di attivazione. I pesi sono attributi che appartengono alle connessioni tra i neuroni. Questa “sinapsi” è modellata dalla classe Connection, che collega un nodo sorgente a un nodo destinazione.

Anche in questo caso, il modello non è sufficientemente rigoroso. Infatti, la classe Connection consentirebbe tutte le tipologie di comunicazioni tra i nodi neurali di layer diversi, cosa assolutamente non corretta.

Pertanto, anche in questo caso il modello può essere corretto includendo opportuni vincoli per limitare le tipologie di connessioni consentite. Ad esempio, si potrebbe includere che ogni nodo appartenente al layer di Input deve:

  • non fungere mai da “destinazione” in una Connection;
  • ricoprire esclusivamente il ruolo di “origine” in una Connection con un nodo appartenente al layer Nascosto.

E così via.

Ulteriori dettagli

Ogni neurone ha una funzione di attivazione, e possono essere configurate diverse funzioni. Questa parte del diagramma è stata modellata seguendo il pattern Command [Gamma et al., 1995].

Infine, ogni istanza di NeuronNode può valutare l’insieme di input (che consiste nel moltiplicare ogni valore di input per il peso corrispondente e poi sommare il bias). Può invocare l’esecuzione della ActivationFunction configurata, il cui risultato determinerà se il nodo deve inviare il suo output o meno.

Inoltre, questo diagramma ha lo scopo di rappresentare e descrivere in modo formale, ma anche semplice, il mondo complesso delle ANN. Leggendo questo diagramma, le persone dovrebbero poter acquisire tutte le informazioni sulla struttura senza dover leggere pagine lunghe di un libro di testo. Questa è ancora una prova che la modellazione OO è uno strumento davvero potente.

 

Conclusioni

In questo articolo, abbiamo analizzato il dominio delle Reti Neurali Biologiche (BNN) e delle Reti Neurali Artificiali (ANN) da una prospettiva orientata agli oggetti (OO), sfruttando la notazione dei diagrammi delle classi del linguaggio di modellazione UML.

Il concetto centrale di entrambi i modelli è lo stesso: il neurone. Tuttavia, la struttura circostante è notevolmente diversa. Ciò evidenzia, ancora una volta, che sebbene le ANN siano state concepite prendendo spunto dalle BNN, il loro design differisce sostanzialmente… almeno per il momento.

Tuttavia, ciò che i Large Language Models (LLM) possono realizzare è impressionante e ogni giorno sembra segnare un ulteriore passo avanti nell’evoluzione dell’intelligenza artificiale. Le capacità degli LLM continuano a espandersi, dimostrando avanzamenti notevoli nella comprensione e generazione di contenuti simili o addirittura superiori a quelli umani, il che sottolinea il rapido progresso in questo campo.

 

 

Riferimenti

[McCulloch, Pitts, 1943]   McCulloch, W.S., Pitts, W. “A logical calculus of the ideas immanent in nervous activity”. Bulletin of Mathematical Biophysics 5, 115–133 (1943).
https://doi.org/10.1007/BF02478259

 

[Rosenblatt, 1958]   Frank Rosenblatt, “The perceptron: A probabilistic model for information storage and organization in the brain”
https://psycnet.apa.org/record/1959-09865-001

 

[Gamma et al., 1995]   E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns : Elements of Reusable Object-Oriented Software. Reading, Mass. :Addison-Wesley, 1995.

 

[Rumelhart, et al. 1986]   David E. Rumelhart, Geoffrey E. Hinton & Ronald J. Williams, “Learning representations by back-propagating errors”. Nature 323, 533–536 (1986).
https://doi.org/10.1038/323533a0

 

[Hochreiter et al., 1997]   Sepp Hochreiter, Jürgen Schmidhuber; Long Short-Term Memory. Neural Comput 1997; 9 (8): 1735–1780.
doi: https://doi.org/10.1162/neco.1997.9.8.1735

 

[LeCun et al., 1998]   LeCun, Y., Bottou, L., Bengio, Y., & Haffner, P. (1998). “Gradient-Based Learning Applied to Document Recognition.” Proceedings of the IEEE
https://ieeexplore.ieee.org/document/726791

 

[Nicholls et al., 2001]   Principles of signaling and organization. In From neuron to brain. Sunderland, MA: Sinauer Associates.

 

[Reece et al., 2011]   Neuron structure and organization reflect function in information transfer. Campbell biology. San Francisco, CA: Pearson.

 

[Hanani, M., 2005]   “Satellite glial cells in sensory ganglia: From form to function”. Brain Research Reviews, 48, 457-476.
https://www.sciencedirect.com/science/article/abs/pii/S0165017304001274

 

[Khan Academy, 2012]   The neuron and nervous system. Overview of neuron structure and function. Introduction to neurons and glia. How the structure of a neuron allows it to receive and transmit information.
https://www.khanacademy.org/science/biology/human-biology/neuron-nervous-system/a/overview-of-neuron-structure-and-function

 

[Goodfellow et al. 2014]   Ian J. Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville and Yoshua Bengio (2014). “Generative Adversarial Networks.”
https://arxiv.org/abs/1406.2661

 

[LeCun et al., 2015]   Yann LeCun, Yoshua Bengio & Geoffrey Hinton. (2015). “Deep Learning.” Nature.
https://www.nature.com/articles/nature14539

 

[Solomon, 2016]   Sensory receptors. In Introduction to human anatomy and physiology. Maryland Heights, MO: Saunders.

 

[Rye et al, 2016]   Connie Rye, Robert Wise, Vladimir Jurukovski, Jean DeSaix, Jung Choi, Yael Avissar, Biology, OpenStax, 2016
https://openstax.org/books/biology/pages/1-introduction
https://openstax.org/books/biology/pages/35-1-neurons-and-glial-cells#fig-ch35_01_04

 

[Byrne, 2016]   “Introduction to Neurons and Neuronal Networks”.  Neuroscience.
https://nba.uth.tmc.edu/neuroscience/s1/introduction.html.

 

[Vaswani et al., 2017]   Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser and Illia Polosukhin, 2017, “Attention is All You Need.” Advances in Neural Information Processing Systems (NeurIPS)”
https://arxiv.org/abs/1706.03762

 

[Drug Target R., 2019]   Scientists discover unique imaging technique to view synapse proteins, Drug Target Review, 27 September 2019
https://www.drugtargetreview.com/news/50185/scientists-discover-unique-imaging-technique-to-view-synapse-proteins/

 

 

Facebook
Twitter
LinkedIn
Luca Vetti Tagliati
Luca Vetti Tagliati

Luca è un professionista esperto che ha ricoperto ruoli di alto profilo a Londra, New York e in Svizzera per banche di primo livello, tra cui UBS, Credit Suisse, Goldman Sachs, Lehman Brothers, Deutsche Bank e HSBC.

È pienamente qualificato per lavorare come Enterprise Architect, CTO e Technical Program Manager riuscendo a gestire i progetti con un'ottica multiruolo. La profonda comprensione della tecnologia, combinata con mirate strategie di gestione, ha permesso a Luca di gestire brillantemente programmi complessi con tempistiche aggressive.

La sua strategia di pensiero è un mix di visione e pragmatismo. Il suo background accademico, che include un dottorato di ricerca, è solidamente integrato da una vasta esperienza pratica, avendo completato tutti i suoi percorsi universitari mentre lavorava a tempo pieno nell'industria.

Negli ultimi anni, Luca ha riscoperto la sua passione per l'intelligenza artificiale, grazie alla sua posizione di Global Head for AI for Data Analytics and Innovations.

È anche autore di numerose pubblicazioni, tra cui

  • UML e l’ingegneria del software: dalla teoria alla pratica (2004)
  • Java Best Practices (2008)
  • Verso Java SE 8: Note per lo sviluppatore in Java 7 (2013)

Luca ha anche pubblicato numerosi articoli sull'IA e altri argomenti disponibili in riviste IT e sul web.

 

Immagine di Luca Vetti Tagliati

Luca Vetti Tagliati

Luca è un professionista esperto che ha ricoperto ruoli di alto profilo a Londra, New York e in Svizzera per banche di primo livello, tra cui UBS, Credit Suisse, Goldman Sachs, Lehman Brothers, Deutsche Bank e HSBC. È pienamente qualificato per lavorare come Enterprise Architect, CTO e Technical Program Manager riuscendo a gestire i progetti con un'ottica multiruolo. La profonda comprensione della tecnologia, combinata con mirate strategie di gestione, ha permesso a Luca di gestire brillantemente programmi complessi con tempistiche aggressive. La sua strategia di pensiero è un mix di visione e pragmatismo. Il suo background accademico, che include un dottorato di ricerca, è solidamente integrato da una vasta esperienza pratica, avendo completato tutti i suoi percorsi universitari mentre lavorava a tempo pieno nell'industria. Negli ultimi anni, Luca ha riscoperto la sua passione per l'intelligenza artificiale, grazie alla sua posizione di Global Head for AI for Data Analytics and Innovations. È anche autore di numerose pubblicazioni, tra cui
  • UML e l’ingegneria del software: dalla teoria alla pratica (2004)
  • Java Best Practices (2008)
  • Verso Java SE 8: Note per lo sviluppatore in Java 7 (2013)
Luca ha anche pubblicato numerosi articoli sull'IA e altri argomenti disponibili in riviste IT e sul web.  
Tutti gli articoli
Nello stesso numero
Loading...

Agile Portfolio Management

II parte: La matrice Impact/Effort

Dall’età del ferro all’età del cloud

Perché solo DevOps non basta più

Talento, performance, carriera: uno sguardo d’insieme

III parte: Considerazioni sul Performance Management

Nella stessa serie
Loading...

Modelli LLM: Come funzionano?

I parte: ANN (Artificial Neural Network), reti neurali artificiali

LLMs models: how do they work?

Part 1: Artificial Neural Networks

Mokabyte

MokaByte è una rivista online nata nel 1996, dedicata alla comunità degli sviluppatori java.
La rivista tratta di vari argomenti, tra cui architetture enterprise e integrazione, metodologie di sviluppo lean/agile e aspetti sociali e culturali del web.

Imola Informatica

MokaByte è un marchio registrato da:
Imola Informatica S.P.A.
Via Selice 66/a 40026 Imola (BO)
C.F. e Iscriz. Registro imprese BO 03351570373
P.I. 00614381200
Cap. Soc. euro 100.000,00 i.v.

Privacy | Cookie Policy

Contatti

Contattaci tramite la nostra pagina contatti, oppure scrivendo a redazione@mokabyte.it

Seguici sui social

Facebook Linkedin Rss
Imola Informatica
Mokabyte

In evidenza: 

I meetup di MokaByte: L’AI riscrive le regole dello sviluppo prodotto

MokaConference