Skip to main content

Modelli di IA

Un modello di intelligenza artificiale (o semplicemente modello) rappresenta un programma addestrato su un insieme di dati per riconoscere determinati schemi o prendere determinate decisioni senza ulteriore intervento umano.

È possibile gestire i modelli in Amministrazione > Intelligenza Artificiale > Modelli.

Models
 

È possibile contare su diversi tipi di modelli per implementare specifici algoritmi di intelligenza artificiale, con impostazioni diverse.

Impostazioni

Puoi creare i tuoi modelli cliccando su Aggiungi modello oppure modificarne uno esistente.

Settings
 

Il pannello delle impostazioni è diverso a seconda del tipo di modello e consente di configurarne correttamente tutti gli aspetti.

Addestramento

Poiché ogni modello deve essere prima addestrato, la scheda Addestramento è il luogo in cui si impartiscono istruzioni al sistema su come eseguire tale attività.

L'impostazione più importante è il Campionatore, che consente di scegliere tra l'elenco dei campionatori creati in precedenza.

Quasi tutti i modelli richiedono più cicli di addestramento; per farlo è necessario specificare in Epoche il numero di iterazioni desiderate durante l'addestramento del modello.

Maggiore è il numero di epoche modali inserite, più accurato sarà il modello ottenuto, ma l'operazione di addestramento richiederà più tempo.

Training
 

Se il set di dati utilizzato per addestrare i modelli cambia regolarmente, sarebbe opportuno contrassegnare l'opzione Abilita la pianificazione e fornire una pianificazione, in questo modo il modello verrà addestrato costantemente.

In qualsiasi momento è possibile forzare manualmente l'allenamento tramite la voce Avvia addestramento del menu contestuale.

Risultati del Training

Il completamento della formazione si riflette nella griglia dei modelli, ma anche nell'area del registro della scheda di formazione, dove è possibile vedere come sono state eseguite le operazioni.

Il modello addestrato viene quindi salvato in LogicalDOC stesso come un normale documento nella cartella predefinita /Default/ai-models e in altri file a seconda della natura del modello.

È possibile modificare il percorso in cui LogicalDOC salva i risultati della formazione utilizzando il pulsante Impostazioni della barra degli strumenti.

Interrogazione del Modello

Dopo aver addestrato il modello, è possibile interrogarlo. Per farlo, è sufficiente selezionare la voce Interroga il modello dal menu contestuale per aprire la finestra di dialogo e inserire il campione da valutare.

Query
 

Di seguito vengono visualizzati i possibili risultati, ordinati in base al punteggio decrescente.

Cronologia e Statistiche

Nella scheda Cronologia trovi l'elenco degli eventi relativi al modello corrente.

History
 

All'interno della scheda Statistiche è presente una rappresentazione grafica del totale delle query al mese.

Statistics

Esportazione e Importazione

I modelli possono essere esportati e importati, questa funzionalità è stata pensata per consentirti di preparare e addestrare i tuoi modelli in un'installazione LogicalDOC e poi importarli già addestrati nel sistema di produzione.

Per esportare un modello, basta selezionare l'opzione Esporta dal menu contestuale. Verrà scaricato un archivio compresso contenente sia la definizione del modello che il suo training.

In un sistema di destinazione in cui si desidera importare un modello precedentemente esportato, fare clic sul pulsante Importa della barra degli strumenti: verrà chiesto di caricare l'archivio e di fornire il nome per il nuovo modello.

Nel caso in cui si voglia aggiornare un modello esistente, basta selezionarlo e scegliere la voce Importa dal menù contestuale, verrà quindi caricato l'archivio e sovrascritto il modello corrente.

Rete Neurale

Una rete neurale è un modello di intelligenza artificiale che insegna ai computer a elaborare i dati modellandoli sul funzionamento del cervello umano. Si tratta di un tipo di processo di apprendimento automatico (ML), chiamato apprendimento profondo, che utilizza nodi o neuroni interconnessi in una struttura a strati che ricorda il cervello umano. Crea un sistema adattivo che i computer utilizzano per imparare dai propri errori e migliorare continuamente. Le reti neurali artificiali tentano quindi di risolvere problemi complessi.

Come lavora una Rete Neurale

L'architettura di una rete neurale trae ispirazione dal cervello umano. Le cellule cerebrali umane, chiamate neuroni, formano una rete complessa e altamente interconnessa e si inviano segnali elettrici tra loro per aiutare gli esseri umani a elaborare le informazioni. Allo stesso modo, una rete neurale artificiale è composta da neuroni artificiali che collaborano per risolvere un problema. I neuroni artificiali sono moduli software, chiamati nodi, e le reti neurali artificiali sono programmi software o algoritmi che essenzialmente utilizzano l'informatica per risolvere calcoli matematici.

Una rete neurale di base è composta da neuroni artificiali interconnessi a tre strati:

Strato Input

Le informazioni provenienti dal mondo esterno entrano nella rete neurale a strato di input. I nodi di input elaborano i dati, li analizzano o li categorizzano e li trasmettono al strato successivo.

Strato Nascosto

I strati nascosti ricevono l'input dal strato di input o da altri strati nascosti. Le reti neurali artificiali possono avere un gran numero di strati nascosti. Ogni strato nascosto analizza l'output del strato precedente, lo elabora ulteriormente e lo passa al strato successivo.

Strato Output

Il strato di output restituisce il risultato finale di tutte le elaborazioni dei dati tramite la rete neurale artificiale. Può avere uno o più nodi. Ad esempio, se abbiamo un problema di classificazione binaria (sì/no), il strato di output avrà un singolo nodo di output, che restituirà 1 o 0. Se, invece, abbiamo un problema di classificazione multi-classe, il strato di output potrebbe essere costituito da più nodi di output.

Architettura di una Rete Neurale Profonda

Le reti neurali profonde, o reti di apprendimento profondo, presentano molteplici strati nascosti con milioni di neuroni artificiali connessi tra loro. Un numero, chiamato peso, rappresenta le connessioni tra ciascun nodo. Il peso è positivo se un nodo stimola un altro nodo, negativo se lo sopprime. I nodi con valori di peso più elevati esercitano una maggiore influenza sugli altri.
Teoricamente, le reti neurali profonde possono mappare qualsiasi tipo di input su qualsiasi tipo di output. Tuttavia, richiedono un addestramento maggiore rispetto ad altri metodi di apprendimento automatico. Richiedono milioni di esempi di dati di addestramento, rispetto alle centinaia o migliaia di cui una rete più semplice ha bisogno.

Architettura di una Rete Neurale Profonda
 

Funzione di Attivazione

Ogni strato definisce una funzione matematica chiamata Funzione di Attivazione. Questa funzione riceve l'input dal strato precedente moltiplicato per il peso e produce l'output per il strato successivo.

Activation FunctionGraphic
CUBE

CUBE
 

ELU

ELU
 

HARDSIGMOID

HARDSIGMOID
 

HARDTANH

HARDTANH
 

IDENTITY

IDENTITY
 

LEAKYRELU

LEAKYRELU
 

RATIONALTANH

RATIONALTANH
 

RELU

RELU
 

RELU6

RELU6
 

RRELU

RRELU
 

SIGMOID

SIGMOID
 

SOFTMAX

SIGMOID
 

SOFTPLUS

SOFTPLUS
 

SOFTSIGN

SOFTSIGN
 

TANH

TANH
 

RECTIFIEDTANH

RECTIFIEDTANH
 

SELU

SELU
 

SWISH

SWISH
 

THRESHOLDEDRELU

THRESHOLDEDRELU
 

GELU

GELU
 

MISH

THRESHOLDEDRELU
 


Addestramento

L'addestramento di una rete neurale consiste nell'assegnare i valori migliori a tutti i pesi per ridurre al minimo la differenza tra la previsione del modello e il valore target effettivo.

Funzione di Perdita

Una funzione di perdita (chiamata anche funzione di costo o funzione di errore) misura la differenza tra le previsioni di un modello e i valori target effettivi. Quantifica l'efficacia della rete e guida il processo di apprendimento fornendo una misura numerica dell'"errore". L'obiettivo durante l'addestramento è minimizzare la funzione di perdita, il che significa che le previsioni del modello dovrebbero avvicinarsi ai valori effettivi.

Configurare una Rete Neurale

L'input di una rete neurale è una tupla di numeri chiamata caratteristica, quindi specifica il nome di ciascuna caratteristica nel campo Caratteristiche come stringa di nomi separati da virgole.

L'output è una delle possibili categorie specificate come stringa di opzioni separate da virgole nel campo Categorie.

Neural Network Settings
 

Il campo Batch rappresenta il numero di campioni restituiti dall'iteratore dei campioni durante l'addestramento.

Seme è un numero utilizzato come seme per il generatore interno di numeri casuali.

Schema di Inizializzazione dei Pesi è l'algoritmo da utilizzare per assegnare il valore iniziale a tutti i pesi.

Nel selettore Funzione di Perdita, si indica quale funzione utilizzare per misurare l'errore dei valori previsti.

Il selettore Funzione di Attivazione indica semplicemente la funzione predefinita da utilizzare per i strati.

Sul lato destro del pannello, si definiscono tutti gli strati, assegnando una funzione di attivazione specifica per ciascuno di essi.

Valutazione

La valutazione consente di testare la rete su un sottoinsieme casuale dello stesso set di dati di addestramento, per avviare il processo scegliere la voce Inizia la valutazione dal menu contestuale e al termine guardare i risultati nella scheda Valutazione.

Neural Network Evaluation
 

Matrice di confusione

La matrice di confusione è una rappresentazione sintetica delle prestazioni della rete neurale.

Ecco una scomposizione di ciò che mostra una matrice di confusione:

  • Righe: rappresentano le etichette di classe effettive (reali) dei dati
  • Colonne: rappresentano le etichette di classe previste dal modello
  • Celle: ogni cella della matrice rappresenta una combinazione specifica di etichette effettive e previste, con il numero nella cella che indica quante istanze rientrano in quella categoria

Elaborazione del Linguaggio Naturale

L'elaborazione del linguaggio naturale, o semplicemente NLP, è una classe di Modelli di IA progettati per elaborare testi scritti in modo naturale.

L'NLP consente ai computer di comprendere, interpretare e generare il linguaggio umano. Colma il divario tra la comunicazione umana e la comprensione delle macchine, consentendo loro di leggere testi, ascoltare discorsi, interpretarli e persino rispondere in modo naturale. L'NLP combina la linguistica computazionale con modelli statistici, di apprendimento automatico e di apprendimento profondo per elaborare e analizzare grandi quantità di dati in linguaggio naturale.

Utilizzando l'elaborazione del linguaggio naturale, i sistemi possono svolgere attività quali la traduzione linguistica, l'analisi dei sentimenti, il riconoscimento vocale, le conversazioni tramite chatbot e la sintesi dei documenti.

Come funziona l'elaborazione del linguaggio naturale

L'elaborazione del linguaggio naturale (NLP) comprende una serie di tecniche e passaggi che convertono il linguaggio umano non strutturato in dati strutturati che le macchine possono comprendere e su cui possono agire.

Elaborazione del testo

  • Tokenizzazione: suddividere il testo in parole o frasi.
  • Rimozione delle stop-word: filtrare le parole comuni (come "e", "il") che hanno poco significato.
  • Stemming/Lemmatizzazione: ridurre le parole alla loro forma base o radice.

Analisi sintattica e semantica

  • Analisi sintattica (Parsing): consiste nell'analizzare la struttura grammaticale di una frase, identificando le parti del discorso e le relazioni tra le parole.
  • Analisi semantica: si concentra sulla comprensione del significato delle parole, delle frasi e del contesto.

Estrazione delle caratteristiche

Vengono estratte dal testo le caratteristiche rilevanti, come parole chiave, entità nominate (ad esempio persone, luoghi) e indicatori di sentiment. Queste caratteristiche servono come input per i modelli di apprendimento automatico.

Modellazione e interpretazione

Utilizzando tecniche come la classificazione, il clustering o le reti neurali, il sistema interpreta il testo ed esegue un compito, come identificare il sentiment, generare risposte o categorizzare i contenuti.

Al momento della stesura di questo articolo, esistono diversi tipi di modelli NLP, ognuno progettato per risolvere specifici compiti linguistici. I modelli utilizzati in LogicalDOC sono:

Vector Stores

Un vector store indicizza e memorizza gli embedding vettoriali (la rappresentazione vettoriale dei documenti) per un rapido recupero e una ricerca semantica. Gli embedding sono generati da modelli di intelligenza artificiale; nel contesto dell'apprendimento automatico, queste funzionalità rappresentano diverse dimensioni dei dati, essenziali per comprendere pattern, relazioni e strutture sottostanti.

È possibile gestire gli archivi vettoriali in Amministrazione > Intelligenza Artificiale > Embeddings > Vector Stores

Al momento della stesura di questo articolo, LogicalDOC supporta solo MariaDB come vector store; in futuro saranno disponibili altri provider di vector store.

È quindi necessario inserire i dettagli di connessione a un database MariaDB (versione 11.8 o successiva); è possibile utilizzare l'icona della procedura guidata per ottenere assistenza nella composizione dell'Url di connessione.

MariaDB

A partire da LogicalDOC 9.2.2, il programma di installazione di Windows include anche un MariaDB moderno con funzionalità vettoriali e lo utilizza automaticamente senza richiedere alcuna azione da parte dell'utente. Allo stesso modo, se LogicalDOC è già installato utilizzando una versione precedente ma è già connesso a un MariaDB >= 11.8, l'aggiornamento 9.2.2 lo utilizzerà automaticamente come archivio vettoriale.

In tutti gli altri casi, è necessario fornire un'installazione di MariaDB 11.8 o successiva e configurare manualmente la connessione.

Per installare MariaDB, fare riferimento al sito web del prodotto: https://mariadb.org/download

 

 

Robot

Un robot è un agente intelligente progettato per comprendere le domande degli utenti e fornire risposte significative.

I robot fungono da interfaccia tra l'utente e il motore di elaborazione del linguaggio naturale (NLP), utilizzando modelli addestrati per classificare le query ed estrarre informazioni chiave. La piattaforma fornisce un robot predefinito denominato Mentor, ma è possibile crearne di personalizzati per aree specifiche.

Come Funzionano i Robot

Ogni robot è configurato con due modelli NLP principali:

  • Classificatore: categorizza la domanda dell'utente in base a un'azione o a un intento specifico (ad esempio, GETDOC, SEARCHFILE, SCONOSCIUTO).
  • Rilevatore di token: estrae valori specifici dal testo, come ID del documento o nomi file.

Quando un utente pone una domanda, il robot:

  • Classifica la frase utilizzando il classificatore.
  • Estrae i token utilizzando il rilevatore di token.
  • Esegue uno script di automazione corrispondente (chiamato "risposta") associato alla categoria identificata.
  • Se la classificazione o l'estrazione dei token fallisce, viene utilizzata una risposta di fallback predefinita.

Configurazione del Robot

La configurazione dei robot avviene tramite l'interfaccia di gestione dei robot.

classifier_properties_specs
 

L'aspetto più rilevante della configurazione di un robot è la sezione Risposta, in cui ogni categoria (ad esempio, GETDOC, SEARCHDOC, SEARCHFILE) è associata a uno script di automazione. Questi script definiscono come il robot risponde a una query dell'utente una volta che il classificatore e il rilevatore di token hanno completato il loro lavoro.

Utilizzando questi script è possibile:

  • Recupera e apri documenti per ID
  • Esegui ricerche full-text basate su parole chiave
  • Cerca file per nome
  • Gestisci query sconosciute in modo efficiente

Queste risposte vengono memorizzate come script di automazione, consentendo logica condizionale avanzata, accesso ai dati e rendering dinamico dei risultati.

Dizionario disponibile per l'Automazione in questo contesto

AUTOMATION CONTEXT: ROBOT
VariableJava ClassDescription
robot

Robot

L'istanza corrente del robot (ad esempio, A.I.D.A.).
transaction

RobotHistory

Contiene metadati sulla query corrente, ID utente, tenant e sessione.
categoryStringLa categoria assegnata dal classificatore (ad esempio, GETDOC, SEARCHDOC ecc.)
tokensMap>>Token estratti dall'input
answer

Value<String>

Contenitore di valore utilizzato per contenere la risposta, inserisci qui la tua risposta

Leggi il manuale dell'Automazione per maggiori informazioni.