<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
	<id>https://wiki.mindmaker.it/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Michela</id>
	<title>Wiki AI - Contributi dell&#039;utente [it]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.mindmaker.it/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Michela"/>
	<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php/Speciale:Contributi/Michela"/>
	<updated>2026-04-05T07:17:57Z</updated>
	<subtitle>Contributi dell&amp;#039;utente</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Distillazione_Della_Conoscenza&amp;diff=2183</id>
		<title>Distillazione Della Conoscenza</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Distillazione_Della_Conoscenza&amp;diff=2183"/>
		<updated>2024-04-11T13:58:29Z</updated>

		<summary type="html">&lt;p&gt;Michela: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nome inglese: [[NomeInglese::Knowledge Distillation]]&lt;br /&gt;
&lt;br /&gt;
Sigla: [[Sigla::KD]]&lt;br /&gt;
&lt;br /&gt;
La &#039;&#039;&#039;distillazione della conoscenza&#039;&#039;&#039; è il processo di trasferimento della conoscenza da un modello di grandi dimensioni ad uno più piccolo.&lt;br /&gt;
&lt;br /&gt;
Originariamente introdotto nel 2006 nel contesto dei modelli di ensemble, è stato successivamente reso popolare in un famoso [https://arxiv.org/abs/1503.02531 paper] del 2015 che ha generalizzato il metodo di reti neurali profonde.&lt;br /&gt;
&lt;br /&gt;
== Knowledge Distillation per il Fine-Tuning ==&lt;br /&gt;
Nel contesto dell&#039;apprendimento automatico, specialmente nell&#039;addestramento supervisionato come il fine-tuning, la distillazione della conoscenza è un metodo per trasferire l&#039;informazione da un modello &amp;quot;insegnante&amp;quot; grande e complesso a un modello &amp;quot;studente&amp;quot; più piccolo e meno complesso. L&#039;idea principale è quella di arricchire le etichette di verità fondamentale con una distribuzione di &amp;quot;soft probabilities&amp;quot; fornite dall&#039;insegnante, che offrono informazioni complementari da cui lo studente può imparare. Ad esempio, se un classificatore basato su BERT assegna alte probabilità a più intenti, questo potrebbe indicare che questi intenti sono vicini l&#039;uno all&#039;altro nello spazio delle caratteristiche. Addestrando lo studente a imitare queste probabilità, l&#039;obiettivo è di distillare parte di questa &amp;quot;dark knowledge&amp;quot; che l&#039;insegnante ha appreso, ossia conoscenze non disponibili solo dalle etichette.&lt;br /&gt;
&lt;br /&gt;
Matematicamente, questo processo funziona come segue: si fornisce una sequenza di input x all&#039;insegnante per generare un vettore di logits x = [z1x, ..., zNx]. Questi logits possono essere convertiti in probabilità applicando una funzione [[softmax]]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\exp(z_i(x))}{\textstyle \sum_{j} \displaystyle \exp(z_i(x))}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tuttavia, spesso l&#039;insegnante assegna una probabilità alta ad una classe, rendendo le probabilità delle altre classi vicine a zero, e quindi non fornendo molte informazioni aggiuntive rispetto alle etichette di verità fondamentale. Per questo, si &amp;quot;addolciscono&amp;quot; le probabilità scalando i logits con un iperparametro di [[Temperatura (Apprendimento Automatico)|temperatura T]] prima di applicare la softmax. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p_i(x)\frac{\exp(z_i(x)/T)}{\textstyle \sum_{j} \displaystyle \exp(z_i(x)/T)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Valori più alti di T producono una distribuzione di probabilità più morbida sulle classi e rivelano più informazioni sul confine decisionale che l&#039;insegnante ha appreso per ogni esempio di addestramento.&lt;br /&gt;
[[File:Screenshot 2024-04-10 alle 11.54.03.png|centro|miniatura|500x500px|Figura1. Confronto tra un&#039;etichetta rigida codificata in one-hot (sinistra), probabilità softmax (centro) e probabilità di classe addolcite (destra)]]&lt;br /&gt;
&lt;br /&gt;
== Come funziona la Knowledge Distillation ==&lt;br /&gt;
Avviene tipicamente in &#039;&#039;&#039;due fasi&#039;&#039;&#039; principali:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Addestramento dell&#039;Insegnante&#039;&#039;&#039;: Il primo passo è addestrare un modello di grandi dimensioni (l&#039;insegnante) su un complesso set di dati. L&#039;obiettivo è sviluppare un modello che raggiunga elevate prestazioni, imparando relazioni complesse e sottili presenti nei dati. Questo modello di solito richiede significative risorse computazionali sia in termini di memoria che di potenza di calcolo.&lt;br /&gt;
# &#039;&#039;&#039;Addestramento dello Studente&#039;&#039;&#039;: Una volta che il modello insegnante è stato addestrato, il prossimo passo è utilizzarlo per addestrare un modello più piccolo (lo studente). Invece di addestrare lo studente direttamente sul set di dati originale, lo studente viene addestrato per emulare l&#039;output o il comportamento dell&#039;insegnante. Ciò può avvenire in diversi modi, ma due approcci comuni includono:&lt;br /&gt;
#* &#039;&#039;&#039;Addestramento sulle Soft Labels&#039;&#039;&#039;: Lo studente viene addestrato sui punteggi di probabilità (soft labels) generati dall&#039;insegnante piuttosto che sulle etichette originali (hard labels) del set di dati. Questi punteggi di probabilità contengono informazioni più ricche sulle relazioni tra le diverse classi.&lt;br /&gt;
#* &#039;&#039;&#039;Addestramento sulla Funzione di Perdita Aggiuntiva&#039;&#039;&#039;: Si può anche aggiungere una funzione di perdita che penalizza lo studente per deviazioni significative nell&#039;output rispetto a quello dell&#039;insegnante, aiutando così lo studente a imitare più fedelmente l&#039;insegnante.&lt;br /&gt;
&lt;br /&gt;
== Etichette per l&#039;addestramento dello Studente ==&lt;br /&gt;
&lt;br /&gt;
=== Soft Labels ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Cosa Sono&#039;&#039;&#039;: Le soft labels sono le probabilità di ciascuna classe di output fornite dal modello insegnante. A differenza delle hard labels, che indicano soltanto la classe target con un valore di 1 (o 100%) e 0 per tutte le altre classi, le soft labels forniscono una distribuzione di probabilità che riflette quanto l&#039;insegnante sia &amp;quot;sicuro&amp;quot; della sua previsione. Queste probabilità catturano le relazioni sottili tra le classi che l&#039;insegnante ha appreso durante il suo addestramento.&lt;br /&gt;
* &#039;&#039;&#039;Utilizzo&#039;&#039;&#039;: Addestrare lo studente sulle soft labels permette di trasferire questa &amp;quot;conoscenza sottile&amp;quot; all&#039;alunno. Ad esempio, in un task di classificazione delle immagini, se l&#039;insegnante assegna una probabilità del 90% a &amp;quot;gatto&amp;quot;, 5% a &amp;quot;tigre&amp;quot;, e 5% alle altre classi per un&#039;immagine di un gatto, lo studente impara non solo a riconoscere i gatti ma anche a capire la somiglianza tra gatti e tigri, qualcosa che le hard labels non potrebbero insegnare.&lt;br /&gt;
&lt;br /&gt;
=== Hard Labels ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Cosa Sono&#039;&#039;&#039;: Le hard labels sono le etichette tradizionali utilizzate nell&#039;addestramento supervisionato. Per ogni esempio nel set di addestramento, l&#039;hard label indica la classe corretta con un valore di 1, mentre tutte le altre classi hanno un valore di 0. Queste etichette sono molto precise ma non forniscono informazioni aggiuntive sulla struttura del problema o sulle relazioni tra classi.&lt;br /&gt;
* &#039;&#039;&#039;Utilizzo&#039;&#039;&#039;: Sebbene l&#039;uso esclusivo delle soft labels possa trasferire conoscenze complesse allo studente, l&#039;incorporazione delle hard labels nell&#039;addestramento può aiutare a mantenere o migliorare la precisione dello studente sulle decisioni chiare e dirette, assicurando che impari anche a fare distinzioni nette tra classi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nella pratica, spesso si utilizza una combinazione delle due. Questa può essere realizzata attraverso un approccio ibrido in cui la funzione di perdita è composta da due termini: uno basato sulle soft labels fornite dall&#039;insegnante e l&#039;altro sulle hard labels del dataset di addestramento. La ponderazione di questi due termini nella funzione di perdita può essere regolata per bilanciare il trasferimento di conoscenza sottile con l&#039;apprendimento diretto dalle etichette originali.&lt;br /&gt;
&lt;br /&gt;
Questo approccio ibrido consente allo studente di beneficiare della conoscenza approfondita dell&#039;insegnante, migliorando la sua capacità di generalizzazione, pur rimanendo ancorato alla realtà concreta e precisa delle hard labels.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://arxiv.org/abs/1503.02531 Distilling the Knowledge in a Neural Network (2015)]&lt;br /&gt;
&lt;br /&gt;
[https://colab.research.google.com/drive/1GHlk_Ic0CZkErw_6_UUwmFVCH7CKBJDA?usp=sharing GoogleColab Knowledge Distillation]&lt;br /&gt;
&lt;br /&gt;
[[Category:concetto]]&lt;br /&gt;
&lt;br /&gt;
__SHOWFACTBOX__&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Distillazione_Della_Conoscenza&amp;diff=2182</id>
		<title>Distillazione Della Conoscenza</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Distillazione_Della_Conoscenza&amp;diff=2182"/>
		<updated>2024-04-11T13:58:17Z</updated>

		<summary type="html">&lt;p&gt;Michela: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nome inglese: [[NomeInglese::Knowledge Distillation]]&lt;br /&gt;
&lt;br /&gt;
Sigla: [[Sigla::KD]]&lt;br /&gt;
&lt;br /&gt;
La &#039;&#039;&#039;distillazione della conoscenza&#039;&#039;&#039; è il processo di trasferimento della conoscenza da un modello di grandi dimensioni ad uno più piccolo.&lt;br /&gt;
&lt;br /&gt;
Originariamente introdotto nel 2006 nel contesto dei modelli di ensemble, è stato successivamente reso popolare in un famoso [https://arxiv.org/abs/1503.02531 paper] del 2015 che ha generalizzato il metodo di reti neurali profonde.&lt;br /&gt;
&lt;br /&gt;
== Knowledge Distillation per il Fine-Tuning ==&lt;br /&gt;
Nel contesto dell&#039;apprendimento automatico, specialmente nell&#039;addestramento supervisionato come il fine-tuning, la distillazione della conoscenza è un metodo per trasferire l&#039;informazione da un modello &amp;quot;insegnante&amp;quot; grande e complesso a un modello &amp;quot;studente&amp;quot; più piccolo e meno complesso. L&#039;idea principale è quella di arricchire le etichette di verità fondamentale con una distribuzione di &amp;quot;soft probabilities&amp;quot; fornite dall&#039;insegnante, che offrono informazioni complementari da cui lo studente può imparare. Ad esempio, se un classificatore basato su BERT assegna alte probabilità a più intenti, questo potrebbe indicare che questi intenti sono vicini l&#039;uno all&#039;altro nello spazio delle caratteristiche. Addestrando lo studente a imitare queste probabilità, l&#039;obiettivo è di distillare parte di questa &amp;quot;dark knowledge&amp;quot; che l&#039;insegnante ha appreso, ossia conoscenze non disponibili solo dalle etichette.&lt;br /&gt;
&lt;br /&gt;
Matematicamente, questo processo funziona come segue: si fornisce una sequenza di input x all&#039;insegnante per generare un vettore di logits x = [z1x, ..., zNx]. Questi logits possono essere convertiti in probabilità applicando una funzione [[softmax]]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\exp(z_i(x))}{\textstyle \sum_{j} \displaystyle \exp(z_i(x))}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tuttavia, spesso l&#039;insegnante assegna una probabilità alta ad una classe, rendendo le probabilità delle altre classi vicine a zero, e quindi non fornendo molte informazioni aggiuntive rispetto alle etichette di verità fondamentale. Per questo, si &amp;quot;addolciscono&amp;quot; le probabilità scalando i logits con un iperparametro di [[Temperatura (Apprendimento Automatico)|temperatura T]] prima di applicare la softmax. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p_i(x)\frac{\exp(z_i(x)/T)}{\textstyle \sum_{j} \displaystyle \exp(z_i(x)/T)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Valori più alti di T producono una distribuzione di probabilità più morbida sulle classi e rivelano più informazioni sul confine decisionale che l&#039;insegnante ha appreso per ogni esempio di addestramento.&lt;br /&gt;
[[File:Screenshot 2024-04-10 alle 11.54.03.png|centro|miniatura|500x500px|Figura1. Confronto tra un&#039;etichetta rigida codificata in one-hot (sinistra), probabilità softmax (centro) e probabilità di classe addolcite (destra)]]&lt;br /&gt;
&lt;br /&gt;
== Come funziona la Knowledge Distillation ==&lt;br /&gt;
Avviene tipicamente in &#039;&#039;&#039;due fasi&#039;&#039;&#039; principali:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Addestramento dell&#039;Insegnante&#039;&#039;&#039;: Il primo passo è addestrare un modello di grandi dimensioni (l&#039;insegnante) su un complesso set di dati. L&#039;obiettivo è sviluppare un modello che raggiunga elevate prestazioni, imparando relazioni complesse e sottili presenti nei dati. Questo modello di solito richiede significative risorse computazionali sia in termini di memoria che di potenza di calcolo.&lt;br /&gt;
# &#039;&#039;&#039;Addestramento dello Studente&#039;&#039;&#039;: Una volta che il modello insegnante è stato addestrato, il prossimo passo è utilizzarlo per addestrare un modello più piccolo (lo studente). Invece di addestrare lo studente direttamente sul set di dati originale, lo studente viene addestrato per emulare l&#039;output o il comportamento dell&#039;insegnante. Ciò può avvenire in diversi modi, ma due approcci comuni includono:&lt;br /&gt;
#* &#039;&#039;&#039;Addestramento sulle Soft Labels&#039;&#039;&#039;: Lo studente viene addestrato sui punteggi di probabilità (soft labels) generati dall&#039;insegnante piuttosto che sulle etichette originali (hard labels) del set di dati. Questi punteggi di probabilità contengono informazioni più ricche sulle relazioni tra le diverse classi.&lt;br /&gt;
#* &#039;&#039;&#039;Addestramento sulla Funzione di Perdita Aggiuntiva&#039;&#039;&#039;: Si può anche aggiungere una funzione di perdita che penalizza lo studente per deviazioni significative nell&#039;output rispetto a quello dell&#039;insegnante, aiutando così lo studente a imitare più fedelmente l&#039;insegnante.&lt;br /&gt;
&lt;br /&gt;
== Etichette per l&#039;addestramento dello Studente ==&lt;br /&gt;
&lt;br /&gt;
=== Soft Labels ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Cosa Sono&#039;&#039;&#039;: Le soft labels sono le probabilità di ciascuna classe di output fornite dal modello insegnante. A differenza delle hard labels, che indicano soltanto la classe target con un valore di 1 (o 100%) e 0 per tutte le altre classi, le soft labels forniscono una distribuzione di probabilità che riflette quanto l&#039;insegnante sia &amp;quot;sicuro&amp;quot; della sua previsione. Queste probabilità catturano le relazioni sottili tra le classi che l&#039;insegnante ha appreso durante il suo addestramento.&lt;br /&gt;
* &#039;&#039;&#039;Utilizzo&#039;&#039;&#039;: Addestrare lo studente sulle soft labels permette di trasferire questa &amp;quot;conoscenza sottile&amp;quot; all&#039;alunno. Ad esempio, in un task di classificazione delle immagini, se l&#039;insegnante assegna una probabilità del 90% a &amp;quot;gatto&amp;quot;, 5% a &amp;quot;tigre&amp;quot;, e 5% alle altre classi per un&#039;immagine di un gatto, lo studente impara non solo a riconoscere i gatti ma anche a capire la somiglianza tra gatti e tigri, qualcosa che le hard labels non potrebbero insegnare.&lt;br /&gt;
&lt;br /&gt;
=== Hard Labels ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Cosa Sono&#039;&#039;&#039;: Le hard labels sono le etichette tradizionali utilizzate nell&#039;addestramento supervisionato. Per ogni esempio nel set di addestramento, l&#039;hard label indica la classe corretta con un valore di 1, mentre tutte le altre classi hanno un valore di 0. Queste etichette sono molto precise ma non forniscono informazioni aggiuntive sulla struttura del problema o sulle relazioni tra classi.&lt;br /&gt;
* &#039;&#039;&#039;Utilizzo&#039;&#039;&#039;: Sebbene l&#039;uso esclusivo delle soft labels possa trasferire conoscenze complesse allo studente, l&#039;incorporazione delle hard labels nell&#039;addestramento può aiutare a mantenere o migliorare la precisione dello studente sulle decisioni chiare e dirette, assicurando che impari anche a fare distinzioni nette tra classi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nella pratica, spesso si utilizza una combinazione delle due. Questa può essere realizzata attraverso un approccio ibrido in cui la funzione di perdita è composta da due termini: uno basato sulle soft labels fornite dall&#039;insegnante e l&#039;altro sulle hard labels del dataset di addestramento. La ponderazione di questi due termini nella funzione di perdita può essere regolata per bilanciare il trasferimento di conoscenza sottile con l&#039;apprendimento diretto dalle etichette originali.&lt;br /&gt;
&lt;br /&gt;
Questo approccio ibrido consente allo studente di beneficiare della conoscenza approfondita dell&#039;insegnante, migliorando la sua capacità di generalizzazione, pur rimanendo ancorato alla realtà concreta e precisa delle hard labels.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://arxiv.org/abs/1503.02531 Distilling the Knowledge in a Neural Network (2015)]&lt;br /&gt;
[https://colab.research.google.com/drive/1GHlk_Ic0CZkErw_6_UUwmFVCH7CKBJDA?usp=sharing GoogleColab Knowledge Distillation]&lt;br /&gt;
&lt;br /&gt;
[[Category:concetto]]&lt;br /&gt;
&lt;br /&gt;
__SHOWFACTBOX__&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Distillazione_Della_Conoscenza&amp;diff=2180</id>
		<title>Distillazione Della Conoscenza</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Distillazione_Della_Conoscenza&amp;diff=2180"/>
		<updated>2024-04-11T13:54:59Z</updated>

		<summary type="html">&lt;p&gt;Michela: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nome inglese: [[NomeInglese::Knowledge Distillation]]&lt;br /&gt;
&lt;br /&gt;
Sigla: [[Sigla::KD]]&lt;br /&gt;
&lt;br /&gt;
La &#039;&#039;&#039;distillazione della conoscenza&#039;&#039;&#039; è il processo di trasferimento della conoscenza da un modello di grandi dimensioni ad uno più piccolo.&lt;br /&gt;
&lt;br /&gt;
Originariamente introdotto nel 2006 nel contesto dei modelli di ensemble, è stato successivamente reso popolare in un famoso [https://arxiv.org/abs/1503.02531 paper] del 2015 che ha generalizzato il metodo di reti neurali profonde.&lt;br /&gt;
&lt;br /&gt;
== Knowledge Distillation per il Fine-Tuning ==&lt;br /&gt;
Nel contesto dell&#039;apprendimento automatico, specialmente nell&#039;addestramento supervisionato come il fine-tuning, la distillazione della conoscenza è un metodo per trasferire l&#039;informazione da un modello &amp;quot;insegnante&amp;quot; grande e complesso a un modello &amp;quot;studente&amp;quot; più piccolo e meno complesso. L&#039;idea principale è quella di arricchire le etichette di verità fondamentale con una distribuzione di &amp;quot;soft probabilities&amp;quot; fornite dall&#039;insegnante, che offrono informazioni complementari da cui lo studente può imparare. Ad esempio, se un classificatore basato su BERT assegna alte probabilità a più intenti, questo potrebbe indicare che questi intenti sono vicini l&#039;uno all&#039;altro nello spazio delle caratteristiche. Addestrando lo studente a imitare queste probabilità, l&#039;obiettivo è di distillare parte di questa &amp;quot;dark knowledge&amp;quot; che l&#039;insegnante ha appreso, ossia conoscenze non disponibili solo dalle etichette.&lt;br /&gt;
&lt;br /&gt;
Matematicamente, questo processo funziona come segue: si fornisce una sequenza di input x all&#039;insegnante per generare un vettore di logits x = [z1x, ..., zNx]. Questi logits possono essere convertiti in probabilità applicando una funzione [[softmax]]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\exp(z_i(x))}{\textstyle \sum_{j} \displaystyle \exp(z_i(x))}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tuttavia, spesso l&#039;insegnante assegna una probabilità alta ad una classe, rendendo le probabilità delle altre classi vicine a zero, e quindi non fornendo molte informazioni aggiuntive rispetto alle etichette di verità fondamentale. Per questo, si &amp;quot;addolciscono&amp;quot; le probabilità scalando i logits con un iperparametro di [[Temperatura (Apprendimento Automatico)|temperatura T]] prima di applicare la softmax. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p_i(x)\frac{\exp(z_i(x)/T)}{\textstyle \sum_{j} \displaystyle \exp(z_i(x)/T)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Valori più alti di T producono una distribuzione di probabilità più morbida sulle classi e rivelano più informazioni sul confine decisionale che l&#039;insegnante ha appreso per ogni esempio di addestramento.&lt;br /&gt;
[[File:Screenshot 2024-04-10 alle 11.54.03.png|centro|miniatura|500x500px|Figura1. Confronto tra un&#039;etichetta rigida codificata in one-hot (sinistra), probabilità softmax (centro) e probabilità di classe addolcite (destra)]]&lt;br /&gt;
&lt;br /&gt;
== Come funziona la Knowledge Distillation ==&lt;br /&gt;
Avviene tipicamente in &#039;&#039;&#039;due fasi&#039;&#039;&#039; principali:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Addestramento dell&#039;Insegnante&#039;&#039;&#039;: Il primo passo è addestrare un modello di grandi dimensioni (l&#039;insegnante) su un complesso set di dati. L&#039;obiettivo è sviluppare un modello che raggiunga elevate prestazioni, imparando relazioni complesse e sottili presenti nei dati. Questo modello di solito richiede significative risorse computazionali sia in termini di memoria che di potenza di calcolo.&lt;br /&gt;
# &#039;&#039;&#039;Addestramento dello Studente&#039;&#039;&#039;: Una volta che il modello insegnante è stato addestrato, il prossimo passo è utilizzarlo per addestrare un modello più piccolo (lo studente). Invece di addestrare lo studente direttamente sul set di dati originale, lo studente viene addestrato per emulare l&#039;output o il comportamento dell&#039;insegnante. Ciò può avvenire in diversi modi, ma due approcci comuni includono:&lt;br /&gt;
#* &#039;&#039;&#039;Addestramento sulle Soft Labels&#039;&#039;&#039;: Lo studente viene addestrato sui punteggi di probabilità (soft labels) generati dall&#039;insegnante piuttosto che sulle etichette originali (hard labels) del set di dati. Questi punteggi di probabilità contengono informazioni più ricche sulle relazioni tra le diverse classi.&lt;br /&gt;
#* &#039;&#039;&#039;Addestramento sulla Funzione di Perdita Aggiuntiva&#039;&#039;&#039;: Si può anche aggiungere una funzione di perdita che penalizza lo studente per deviazioni significative nell&#039;output rispetto a quello dell&#039;insegnante, aiutando così lo studente a imitare più fedelmente l&#039;insegnante.&lt;br /&gt;
&lt;br /&gt;
== Etichette per l&#039;addestramento dello Studente ==&lt;br /&gt;
&lt;br /&gt;
=== Soft Labels ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Cosa Sono&#039;&#039;&#039;: Le soft labels sono le probabilità di ciascuna classe di output fornite dal modello insegnante. A differenza delle hard labels, che indicano soltanto la classe target con un valore di 1 (o 100%) e 0 per tutte le altre classi, le soft labels forniscono una distribuzione di probabilità che riflette quanto l&#039;insegnante sia &amp;quot;sicuro&amp;quot; della sua previsione. Queste probabilità catturano le relazioni sottili tra le classi che l&#039;insegnante ha appreso durante il suo addestramento.&lt;br /&gt;
* &#039;&#039;&#039;Utilizzo&#039;&#039;&#039;: Addestrare lo studente sulle soft labels permette di trasferire questa &amp;quot;conoscenza sottile&amp;quot; all&#039;alunno. Ad esempio, in un task di classificazione delle immagini, se l&#039;insegnante assegna una probabilità del 90% a &amp;quot;gatto&amp;quot;, 5% a &amp;quot;tigre&amp;quot;, e 5% alle altre classi per un&#039;immagine di un gatto, lo studente impara non solo a riconoscere i gatti ma anche a capire la somiglianza tra gatti e tigri, qualcosa che le hard labels non potrebbero insegnare.&lt;br /&gt;
&lt;br /&gt;
=== Hard Labels ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Cosa Sono&#039;&#039;&#039;: Le hard labels sono le etichette tradizionali utilizzate nell&#039;addestramento supervisionato. Per ogni esempio nel set di addestramento, l&#039;hard label indica la classe corretta con un valore di 1, mentre tutte le altre classi hanno un valore di 0. Queste etichette sono molto precise ma non forniscono informazioni aggiuntive sulla struttura del problema o sulle relazioni tra classi.&lt;br /&gt;
* &#039;&#039;&#039;Utilizzo&#039;&#039;&#039;: Sebbene l&#039;uso esclusivo delle soft labels possa trasferire conoscenze complesse allo studente, l&#039;incorporazione delle hard labels nell&#039;addestramento può aiutare a mantenere o migliorare la precisione dello studente sulle decisioni chiare e dirette, assicurando che impari anche a fare distinzioni nette tra classi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nella pratica, spesso si utilizza una combinazione delle due. Questa può essere realizzata attraverso un approccio ibrido in cui la funzione di perdita è composta da due termini: uno basato sulle soft labels fornite dall&#039;insegnante e l&#039;altro sulle hard labels del dataset di addestramento. La ponderazione di questi due termini nella funzione di perdita può essere regolata per bilanciare il trasferimento di conoscenza sottile con l&#039;apprendimento diretto dalle etichette originali.&lt;br /&gt;
&lt;br /&gt;
Questo approccio ibrido consente allo studente di beneficiare della conoscenza approfondita dell&#039;insegnante, migliorando la sua capacità di generalizzazione, pur rimanendo ancorato alla realtà concreta e precisa delle hard labels.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://arxiv.org/abs/1503.02531 Distilling the Knowledge in a Neural Network (2015)]&lt;br /&gt;
&lt;br /&gt;
[[Category:concetto]]&lt;br /&gt;
&lt;br /&gt;
__SHOWFACTBOX__&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Distillazione_Della_Conoscenza&amp;diff=2155</id>
		<title>Distillazione Della Conoscenza</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Distillazione_Della_Conoscenza&amp;diff=2155"/>
		<updated>2024-04-11T13:34:19Z</updated>

		<summary type="html">&lt;p&gt;Michela: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nome inglese: [[NomeInglese::Knowledge Distillation]]&lt;br /&gt;
&lt;br /&gt;
Sigla: [[Sigla::KD]]&lt;br /&gt;
&lt;br /&gt;
La &#039;&#039;&#039;distillazione della conoscenza&#039;&#039;&#039; è il processo di trasferimento della conoscenza da un modello di grandi dimensioni ad uno più piccolo.&lt;br /&gt;
&lt;br /&gt;
Originariamente introdotto nel 2006 nel contesto dei modelli di ensemble, è stato successivamente reso popolare in un famoso [https://arxiv.org/abs/1503.02531 paper] del 2015 che ha generalizzato il metodo di reti neurali profonde.&lt;br /&gt;
&lt;br /&gt;
== Knowledge Distillation per il Fine-Tuning ==&lt;br /&gt;
Nel contesto dell&#039;apprendimento automatico, specialmente nell&#039;addestramento supervisionato come il fine-tuning, la distillazione della conoscenza è un metodo per trasferire l&#039;informazione da un modello &amp;quot;insegnante&amp;quot; grande e complesso a un modello &amp;quot;studente&amp;quot; più piccolo e meno complesso. L&#039;idea principale è quella di arricchire le etichette di verità fondamentale con una distribuzione di &amp;quot;soft probabilities&amp;quot; fornite dall&#039;insegnante, che offrono informazioni complementari da cui lo studente può imparare. Ad esempio, se un classificatore basato su BERT assegna alte probabilità a più intenti, questo potrebbe indicare che questi intenti sono vicini l&#039;uno all&#039;altro nello spazio delle caratteristiche. Addestrando lo studente a imitare queste probabilità, l&#039;obiettivo è di distillare parte di questa &amp;quot;dark knowledge&amp;quot; che l&#039;insegnante ha appreso, ossia conoscenze non disponibili solo dalle etichette.&lt;br /&gt;
&lt;br /&gt;
Matematicamente, questo processo funziona come segue: si fornisce una sequenza di input x all&#039;insegnante per generare un vettore di logits x = [z1x, ..., zNx]. Questi logits possono essere convertiti in probabilità applicando una funzione [[softmax]]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\exp(z_i(x))}{\textstyle \sum_{j} \displaystyle \exp(z_i(x))}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tuttavia, spesso l&#039;insegnante assegna una probabilità alta ad una classe, rendendo le probabilità delle altre classi vicine a zero, e quindi non fornendo molte informazioni aggiuntive rispetto alle etichette di verità fondamentale. Per questo, si &amp;quot;addolciscono&amp;quot; le probabilità scalando i logits con un iperparametro di [[Temperatura (Apprendimento Automatico)|temperatura T]] prima di applicare la softmax. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p_i(x)\frac{\exp(z_i(x)/T)}{\textstyle \sum_{j} \displaystyle \exp(z_i(x)/T)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Valori più alti di T producono una distribuzione di probabilità più morbida sulle classi e rivelano più informazioni sul confine decisionale che l&#039;insegnante ha appreso per ogni esempio di addestramento.&lt;br /&gt;
[[File:Screenshot 2024-04-10 alle 11.54.03.png|centro|miniatura|500x500px|Figura1. Confronto tra un&#039;etichetta rigida codificata in one-hot (sinistra), probabilità softmax (centro) e probabilità di classe addolcite (destra)]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://arxiv.org/abs/1503.02531 Distilling the Knowledge in a Neural Network (2015)]&lt;br /&gt;
&lt;br /&gt;
[[Category:concetto]]&lt;br /&gt;
&lt;br /&gt;
__SHOWFACTBOX__&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Distillazione_Della_Conoscenza&amp;diff=2021</id>
		<title>Distillazione Della Conoscenza</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Distillazione_Della_Conoscenza&amp;diff=2021"/>
		<updated>2024-04-10T13:42:34Z</updated>

		<summary type="html">&lt;p&gt;Michela: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nome: [[Nome::Knowledge Distillation]]&lt;br /&gt;
&lt;br /&gt;
La &#039;&#039;&#039;distillazione della conoscenza&#039;&#039;&#039; è il processo di trasferimento della conoscenza da un modello di grandi dimensioni ad uno più piccolo.&lt;br /&gt;
&lt;br /&gt;
Originariamente introdotto nel 2006 nel contesto dei modelli di ensemble, è stato successivamente reso popolare in un famoso [https://arxiv.org/abs/1503.02531 paper] del 2015 che ha generalizzato il metodo di reti neurali profonde.&lt;br /&gt;
&lt;br /&gt;
== Knowledge Distillation per il Fine-Tuning ==&lt;br /&gt;
Nel contesto dell&#039;apprendimento automatico, specialmente nell&#039;addestramento supervisionato come il fine-tuning, la distillazione della conoscenza è un metodo per trasferire l&#039;informazione da un modello &amp;quot;insegnante&amp;quot; grande e complesso a un modello &amp;quot;studente&amp;quot; più piccolo e meno complesso. L&#039;idea principale è quella di arricchire le etichette di verità fondamentale con una distribuzione di &amp;quot;soft probabilities&amp;quot; fornite dall&#039;insegnante, che offrono informazioni complementari da cui lo studente può imparare. Ad esempio, se un classificatore basato su BERT assegna alte probabilità a più intenti, questo potrebbe indicare che questi intenti sono vicini l&#039;uno all&#039;altro nello spazio delle caratteristiche. Addestrando lo studente a imitare queste probabilità, l&#039;obiettivo è di distillare parte di questa &amp;quot;dark knowledge&amp;quot; che l&#039;insegnante ha appreso, ossia conoscenze non disponibili solo dalle etichette.&lt;br /&gt;
&lt;br /&gt;
Matematicamente, questo processo funziona come segue: si fornisce una sequenza di input x all&#039;insegnante per generare un vettore di logits x = [z1x, ..., zNx]. Questi logits possono essere convertiti in probabilità applicando una funzione [[softmax]]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\exp(z_i(x))}{\textstyle \sum_{j} \displaystyle \exp(z_i(x))}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tuttavia, spesso l&#039;insegnante assegna una probabilità alta ad una classe, rendendo le probabilità delle altre classi vicine a zero, e quindi non fornendo molte informazioni aggiuntive rispetto alle etichette di verità fondamentale. Per questo, si &amp;quot;addolciscono&amp;quot; le probabilità scalando i logits con un iperparametro di [[Temperatura (Apprendimento Automatico)|temperatura T]] prima di applicare la softmax. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p_i(x)\frac{\exp(z_i(x)/T)}{\textstyle \sum_{j} \displaystyle \exp(z_i(x)/T)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Valori più alti di T producono una distribuzione di probabilità più morbida sulle classi e rivelano più informazioni sul confine decisionale che l&#039;insegnante ha appreso per ogni esempio di addestramento.&lt;br /&gt;
[[File:Screenshot 2024-04-10 alle 11.54.03.png|centro|miniatura|500x500px|Figura1. Confronto tra un&#039;etichetta rigida codificata in one-hot (sinistra), probabilità softmax (centro) e probabilità di classe addolcite (destra)]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://arxiv.org/abs/1503.02531 Distilling the Knowledge in a Neural Network (2015)]&lt;br /&gt;
&lt;br /&gt;
[[Category:concetto]]&lt;br /&gt;
&lt;br /&gt;
__SHOWFACTBOX__&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Distillazione_Della_Conoscenza&amp;diff=2020</id>
		<title>Distillazione Della Conoscenza</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Distillazione_Della_Conoscenza&amp;diff=2020"/>
		<updated>2024-04-10T13:41:03Z</updated>

		<summary type="html">&lt;p&gt;Michela: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* &#039;&#039;&#039;Nome&#039;&#039;&#039;: Knowledge Distillation&lt;br /&gt;
&lt;br /&gt;
La &#039;&#039;&#039;distillazione della conoscenza&#039;&#039;&#039; è il processo di trasferimento della conoscenza da un modello di grandi dimensioni ad uno più piccolo.&lt;br /&gt;
&lt;br /&gt;
Originariamente introdotto nel 2006 nel contesto dei modelli di ensemble, è stato successivamente reso popolare in un famoso [https://arxiv.org/abs/1503.02531 paper] del 2015 che ha generalizzato il metodo di reti neurali profonde.&lt;br /&gt;
&lt;br /&gt;
== Knowledge Distillation per il Fine-Tuning ==&lt;br /&gt;
Nel contesto dell&#039;apprendimento automatico, specialmente nell&#039;addestramento supervisionato come il fine-tuning, la distillazione della conoscenza è un metodo per trasferire l&#039;informazione da un modello &amp;quot;insegnante&amp;quot; grande e complesso a un modello &amp;quot;studente&amp;quot; più piccolo e meno complesso. L&#039;idea principale è quella di arricchire le etichette di verità fondamentale con una distribuzione di &amp;quot;soft probabilities&amp;quot; fornite dall&#039;insegnante, che offrono informazioni complementari da cui lo studente può imparare. Ad esempio, se un classificatore basato su BERT assegna alte probabilità a più intenti, questo potrebbe indicare che questi intenti sono vicini l&#039;uno all&#039;altro nello spazio delle caratteristiche. Addestrando lo studente a imitare queste probabilità, l&#039;obiettivo è di distillare parte di questa &amp;quot;dark knowledge&amp;quot; che l&#039;insegnante ha appreso, ossia conoscenze non disponibili solo dalle etichette.&lt;br /&gt;
&lt;br /&gt;
Matematicamente, questo processo funziona come segue: si fornisce una sequenza di input x all&#039;insegnante per generare un vettore di logits x = [z1x, ..., zNx]. Questi logits possono essere convertiti in probabilità applicando una funzione [[softmax]]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\exp(z_i(x))}{\textstyle \sum_{j} \displaystyle \exp(z_i(x))}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tuttavia, spesso l&#039;insegnante assegna una probabilità alta ad una classe, rendendo le probabilità delle altre classi vicine a zero, e quindi non fornendo molte informazioni aggiuntive rispetto alle etichette di verità fondamentale. Per questo, si &amp;quot;addolciscono&amp;quot; le probabilità scalando i logits con un iperparametro di [[Temperatura (Apprendimento Automatico)|temperatura T]] prima di applicare la softmax. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p_i(x)\frac{\exp(z_i(x)/T)}{\textstyle \sum_{j} \displaystyle \exp(z_i(x)/T)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Valori più alti di T producono una distribuzione di probabilità più morbida sulle classi e rivelano più informazioni sul confine decisionale che l&#039;insegnante ha appreso per ogni esempio di addestramento.&lt;br /&gt;
[[File:Screenshot 2024-04-10 alle 11.54.03.png|centro|miniatura|500x500px|Figura1. Confronto tra un&#039;etichetta rigida codificata in one-hot (sinistra), probabilità softmax (centro) e probabilità di classe addolcite (destra)]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://arxiv.org/abs/1503.02531 Distilling the Knowledge in a Neural Network (2015)]&lt;br /&gt;
&lt;br /&gt;
[[Category:concetto]]&lt;br /&gt;
&lt;br /&gt;
__SHOWFACTBOX__&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Distillazione_Della_Conoscenza&amp;diff=2019</id>
		<title>Distillazione Della Conoscenza</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Distillazione_Della_Conoscenza&amp;diff=2019"/>
		<updated>2024-04-10T13:40:56Z</updated>

		<summary type="html">&lt;p&gt;Michela: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* &#039;&#039;&#039;Nome&#039;&#039;&#039;: Knowledge Distillation&lt;br /&gt;
&lt;br /&gt;
La &#039;&#039;&#039;distillazione della conoscenza&#039;&#039;&#039; è il processo di trasferimento della conoscenza da un modello di grandi dimensioni ad uno più piccolo.&lt;br /&gt;
&lt;br /&gt;
Originariamente introdotto nel 2006 nel contesto dei modelli di ensemble, è stato successivamente reso popolare in un famoso [https://arxiv.org/abs/1503.02531 paper] del 2015 che ha generalizzato il metodo di reti neurali profonde.&lt;br /&gt;
&lt;br /&gt;
== Knowledge Distillation per il Fine-Tuning ==&lt;br /&gt;
Nel contesto dell&#039;apprendimento automatico, specialmente nell&#039;addestramento supervisionato come il fine-tuning, la distillazione della conoscenza è un metodo per trasferire l&#039;informazione da un modello &amp;quot;insegnante&amp;quot; grande e complesso a un modello &amp;quot;studente&amp;quot; più piccolo e meno complesso. L&#039;idea principale è quella di arricchire le etichette di verità fondamentale con una distribuzione di &amp;quot;soft probabilities&amp;quot; fornite dall&#039;insegnante, che offrono informazioni complementari da cui lo studente può imparare. Ad esempio, se un classificatore basato su BERT assegna alte probabilità a più intenti, questo potrebbe indicare che questi intenti sono vicini l&#039;uno all&#039;altro nello spazio delle caratteristiche. Addestrando lo studente a imitare queste probabilità, l&#039;obiettivo è di distillare parte di questa &amp;quot;dark knowledge&amp;quot; che l&#039;insegnante ha appreso, ossia conoscenze non disponibili solo dalle etichette.&lt;br /&gt;
&lt;br /&gt;
Matematicamente, questo processo funziona come segue: si fornisce una sequenza di input x all&#039;insegnante per generare un vettore di logits x = [z1x, ..., zNx]. Questi logits possono essere convertiti in probabilità applicando una funzione [[softmax]]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\exp(z_i(x))}{\textstyle \sum_{j} \displaystyle \exp(z_i(x))}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tuttavia, spesso l&#039;insegnante assegna una probabilità alta ad una classe, rendendo le probabilità delle altre classi vicine a zero, e quindi non fornendo molte informazioni aggiuntive rispetto alle etichette di verità fondamentale. Per questo, si &amp;quot;addolciscono&amp;quot; le probabilità scalando i logits con un iperparametro di [[Temperatura (Apprendimento Automatico)|temperatura T]] prima di applicare la softmax. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p_i(x)\frac{\exp(z_i(x)/T)}{\textstyle \sum_{j} \displaystyle \exp(z_i(x)/T)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Valori più alti di T producono una distribuzione di probabilità più morbida sulle classi e rivelano più informazioni sul confine decisionale che l&#039;insegnante ha appreso per ogni esempio di addestramento.&lt;br /&gt;
[[File:Screenshot 2024-04-10 alle 11.54.03.png|centro|miniatura|500x500px|Figura1. Confronto tra un&#039;etichetta rigida codificata in one-hot (sinistra), probabilità softmax (centro) e probabilità di classe addolcite (destra)]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://arxiv.org/abs/1503.02531 Distilling the Knowledge in a Neural Network (2015)]&lt;br /&gt;
&lt;br /&gt;
[[Category:concetto]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Distillazione_Della_Conoscenza&amp;diff=2018</id>
		<title>Distillazione Della Conoscenza</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Distillazione_Della_Conoscenza&amp;diff=2018"/>
		<updated>2024-04-10T13:39:52Z</updated>

		<summary type="html">&lt;p&gt;Michela: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* &#039;&#039;&#039;Nome&#039;&#039;&#039;: Knowledge Distillation &lt;br /&gt;
&lt;br /&gt;
La &#039;&#039;&#039;distillazione della conoscenza&#039;&#039;&#039; è il processo di trasferimento della conoscenza da un modello di grandi dimensioni ad uno più piccolo.&lt;br /&gt;
&lt;br /&gt;
Originariamente introdotto nel 2006 nel contesto dei modelli di ensemble, è stato successivamente reso popolare in un famoso [https://arxiv.org/abs/1503.02531 paper] del 2015 che ha generalizzato il metodo di reti neurali profonde.&lt;br /&gt;
&lt;br /&gt;
== Knowledge Distillation per il Fine-Tuning ==&lt;br /&gt;
Nel contesto dell&#039;apprendimento automatico, specialmente nell&#039;addestramento supervisionato come il fine-tuning, la distillazione della conoscenza è un metodo per trasferire l&#039;informazione da un modello &amp;quot;insegnante&amp;quot; grande e complesso a un modello &amp;quot;studente&amp;quot; più piccolo e meno complesso. L&#039;idea principale è quella di arricchire le etichette di verità fondamentale con una distribuzione di &amp;quot;soft probabilities&amp;quot; fornite dall&#039;insegnante, che offrono informazioni complementari da cui lo studente può imparare. Ad esempio, se un classificatore basato su BERT assegna alte probabilità a più intenti, questo potrebbe indicare che questi intenti sono vicini l&#039;uno all&#039;altro nello spazio delle caratteristiche. Addestrando lo studente a imitare queste probabilità, l&#039;obiettivo è di distillare parte di questa &amp;quot;dark knowledge&amp;quot; che l&#039;insegnante ha appreso, ossia conoscenze non disponibili solo dalle etichette.&lt;br /&gt;
&lt;br /&gt;
Matematicamente, questo processo funziona come segue: si fornisce una sequenza di input x all&#039;insegnante per generare un vettore di logits x = [z1x, ..., zNx]. Questi logits possono essere convertiti in probabilità applicando una funzione [[softmax]]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\exp(z_i(x))}{\textstyle \sum_{j} \displaystyle \exp(z_i(x))}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tuttavia, spesso l&#039;insegnante assegna una probabilità alta ad una classe, rendendo le probabilità delle altre classi vicine a zero, e quindi non fornendo molte informazioni aggiuntive rispetto alle etichette di verità fondamentale. Per questo, si &amp;quot;addolciscono&amp;quot; le probabilità scalando i logits con un iperparametro di [[Temperatura (Apprendimento Automatico)|temperatura T]] prima di applicare la softmax. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p_i(x)\frac{\exp(z_i(x)/T)}{\textstyle \sum_{j} \displaystyle \exp(z_i(x)/T)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Valori più alti di T producono una distribuzione di probabilità più morbida sulle classi e rivelano più informazioni sul confine decisionale che l&#039;insegnante ha appreso per ogni esempio di addestramento.&lt;br /&gt;
[[File:Screenshot 2024-04-10 alle 11.54.03.png|centro|miniatura|500x500px|Figura1. Confronto tra un&#039;etichetta rigida codificata in one-hot (sinistra), probabilità softmax (centro) e probabilità di classe addolcite (destra)]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://arxiv.org/abs/1503.02531 Distilling the Knowledge in a Neural Network (2015)]&lt;br /&gt;
&lt;br /&gt;
[[Category:concetto]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Distillazione_Della_Conoscenza&amp;diff=2017</id>
		<title>Distillazione Della Conoscenza</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Distillazione_Della_Conoscenza&amp;diff=2017"/>
		<updated>2024-04-10T13:27:04Z</updated>

		<summary type="html">&lt;p&gt;Michela: /* Knowledge Distillation per il Pretraining */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;La &#039;&#039;&#039;distillazione della conoscenza&#039;&#039;&#039; è il processo di trasferimento della conoscenza da un modello di grandi dimensioni ad uno più piccolo.&lt;br /&gt;
&lt;br /&gt;
Originariamente introdotto nel 2006 nel contesto dei modelli di ensemble, è stato successivamente reso popolare in un famoso [https://arxiv.org/abs/1503.02531 paper] del 2015 che ha generalizzato il metodo di reti neurali profonde.&lt;br /&gt;
&lt;br /&gt;
== Knowledge Distillation per il Fine-Tuning ==&lt;br /&gt;
Nel contesto dell&#039;apprendimento automatico, specialmente nell&#039;addestramento supervisionato come il fine-tuning, la distillazione della conoscenza è un metodo per trasferire l&#039;informazione da un modello &amp;quot;insegnante&amp;quot; grande e complesso a un modello &amp;quot;studente&amp;quot; più piccolo e meno complesso. L&#039;idea principale è quella di arricchire le etichette di verità fondamentale con una distribuzione di &amp;quot;soft probabilities&amp;quot; fornite dall&#039;insegnante, che offrono informazioni complementari da cui lo studente può imparare. Ad esempio, se un classificatore basato su BERT assegna alte probabilità a più intenti, questo potrebbe indicare che questi intenti sono vicini l&#039;uno all&#039;altro nello spazio delle caratteristiche. Addestrando lo studente a imitare queste probabilità, l&#039;obiettivo è di distillare parte di questa &amp;quot;dark knowledge&amp;quot; che l&#039;insegnante ha appreso, ossia conoscenze non disponibili solo dalle etichette.&lt;br /&gt;
&lt;br /&gt;
Matematicamente, questo processo funziona come segue: si fornisce una sequenza di input x all&#039;insegnante per generare un vettore di logits x = [z1x, ..., zNx]. Questi logits possono essere convertiti in probabilità applicando una funzione [[softmax]]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\exp(z_i(x))}{\textstyle \sum_{j} \displaystyle \exp(z_i(x))}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tuttavia, spesso l&#039;insegnante assegna una probabilità alta ad una classe, rendendo le probabilità delle altre classi vicine a zero, e quindi non fornendo molte informazioni aggiuntive rispetto alle etichette di verità fondamentale. Per questo, si &amp;quot;addolciscono&amp;quot; le probabilità scalando i logits con un iperparametro di [[Temperatura (Apprendimento Automatico)|temperatura T]] prima di applicare la softmax. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p_i(x)\frac{\exp(z_i(x)/T)}{\textstyle \sum_{j} \displaystyle \exp(z_i(x)/T)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Valori più alti di T producono una distribuzione di probabilità più morbida sulle classi e rivelano più informazioni sul confine decisionale che l&#039;insegnante ha appreso per ogni esempio di addestramento.&lt;br /&gt;
[[File:Screenshot 2024-04-10 alle 11.54.03.png|centro|miniatura|500x500px|Figura1. Confronto tra un&#039;etichetta rigida codificata in one-hot (sinistra), probabilità softmax (centro) e probabilità di classe addolcite (destra)]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://arxiv.org/abs/1503.02531 Distilling the Knowledge in a Neural Network (2015)]&lt;br /&gt;
&lt;br /&gt;
[[Category:concetto]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Distillazione_Della_Conoscenza&amp;diff=2005</id>
		<title>Distillazione Della Conoscenza</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Distillazione_Della_Conoscenza&amp;diff=2005"/>
		<updated>2024-04-10T12:19:58Z</updated>

		<summary type="html">&lt;p&gt;Michela: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;La &#039;&#039;&#039;distillazione della conoscenza&#039;&#039;&#039; è il processo di trasferimento della conoscenza da un modello di grandi dimensioni ad uno più piccolo.&lt;br /&gt;
&lt;br /&gt;
Originariamente introdotto nel 2006 nel contesto dei modelli di ensemble, è stato successivamente reso popolare in un famoso [https://arxiv.org/abs/1503.02531 paper] del 2015 che ha generalizzato il metodo di reti neurali profonde.&lt;br /&gt;
&lt;br /&gt;
== Knowledge Distillation per il Fine-Tuning ==&lt;br /&gt;
Nel contesto dell&#039;apprendimento automatico, specialmente nell&#039;addestramento supervisionato come il fine-tuning, la distillazione della conoscenza è un metodo per trasferire l&#039;informazione da un modello &amp;quot;insegnante&amp;quot; grande e complesso a un modello &amp;quot;studente&amp;quot; più piccolo e meno complesso. L&#039;idea principale è quella di arricchire le etichette di verità fondamentale con una distribuzione di &amp;quot;soft probabilities&amp;quot; fornite dall&#039;insegnante, che offrono informazioni complementari da cui lo studente può imparare. Ad esempio, se un classificatore basato su BERT assegna alte probabilità a più intenti, questo potrebbe indicare che questi intenti sono vicini l&#039;uno all&#039;altro nello spazio delle caratteristiche. Addestrando lo studente a imitare queste probabilità, l&#039;obiettivo è di distillare parte di questa &amp;quot;dark knowledge&amp;quot; che l&#039;insegnante ha appreso, ossia conoscenze non disponibili solo dalle etichette.&lt;br /&gt;
&lt;br /&gt;
Matematicamente, questo processo funziona come segue: si fornisce una sequenza di input x all&#039;insegnante per generare un vettore di logits x = [z1x, ..., zNx]. Questi logits possono essere convertiti in probabilità applicando una funzione [[softmax]]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\exp(z_i(x))}{\textstyle \sum_{j} \displaystyle \exp(z_i(x))}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tuttavia, spesso l&#039;insegnante assegna una probabilità alta ad una classe, rendendo le probabilità delle altre classi vicine a zero, e quindi non fornendo molte informazioni aggiuntive rispetto alle etichette di verità fondamentale. Per questo, si &amp;quot;addolciscono&amp;quot; le probabilità scalando i logits con un iperparametro di [[Temperatura (Apprendimento Automatico)|temperatura T]] prima di applicare la softmax. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p_i(x)\frac{\exp(z_i(x)/T)}{\textstyle \sum_{j} \displaystyle \exp(z_i(x)/T)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Valori più alti di T producono una distribuzione di probabilità più morbida sulle classi e rivelano più informazioni sul confine decisionale che l&#039;insegnante ha appreso per ogni esempio di addestramento.&lt;br /&gt;
[[File:Screenshot 2024-04-10 alle 11.54.03.png|centro|miniatura|500x500px|Figura1. Confronto tra un&#039;etichetta rigida codificata in one-hot (sinistra), probabilità softmax (centro) e probabilità di classe addolcite (destra)]]&lt;br /&gt;
&lt;br /&gt;
== Knowledge Distillation per il Pretraining ==&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://arxiv.org/abs/1503.02531 Distilling the Knowledge in a Neural Network (2015)]&lt;br /&gt;
&lt;br /&gt;
[[Category:concetto]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Distillazione_Della_Conoscenza&amp;diff=2000</id>
		<title>Distillazione Della Conoscenza</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Distillazione_Della_Conoscenza&amp;diff=2000"/>
		<updated>2024-04-10T10:13:22Z</updated>

		<summary type="html">&lt;p&gt;Michela: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;La &#039;&#039;&#039;distillazione della conoscenza&#039;&#039;&#039; è il processo di trasferimento della conoscenza da un modello di grandi dimensioni ad uno più piccolo.&lt;br /&gt;
&lt;br /&gt;
Originariamente introdotto nel 2006 nel contesto dei modelli di ensemble, è stato successivamente reso popolare in un famoso [https://arxiv.org/abs/1503.02531 paper] del 2015 che ha generalizzato il metodo di reti neurali profonde.&lt;br /&gt;
&lt;br /&gt;
== Knowledge Distillation per il Fine-Tuning ==&lt;br /&gt;
Nel contesto dell&#039;apprendimento automatico, specialmente nell&#039;addestramento supervisionato come il fine-tuning, la distillazione della conoscenza è un metodo per trasferire l&#039;informazione da un modello &amp;quot;insegnante&amp;quot; grande e complesso a un modello &amp;quot;studente&amp;quot; più piccolo e meno complesso. L&#039;idea principale è quella di arricchire le etichette di verità fondamentale con una distribuzione di &amp;quot;soft probabilities&amp;quot; fornite dall&#039;insegnante, che offrono informazioni complementari da cui lo studente può imparare. Ad esempio, se un classificatore basato su BERT assegna alte probabilità a più intenti, questo potrebbe indicare che questi intenti sono vicini l&#039;uno all&#039;altro nello spazio delle caratteristiche. Addestrando lo studente a imitare queste probabilità, l&#039;obiettivo è di distillare parte di questa &amp;quot;dark knowledge&amp;quot; che l&#039;insegnante ha appreso, ossia conoscenze non disponibili solo dalle etichette.&lt;br /&gt;
&lt;br /&gt;
Matematicamente, questo processo funziona come segue: si fornisce una sequenza di input x all&#039;insegnante per generare un vettore di logits x = [z1x, ..., zNx]. Questi logits possono essere convertiti in probabilità applicando una funzione [[softmax]]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\exp(z_i(x))}{\textstyle \sum_{j} \displaystyle \exp(z_i(x))}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tuttavia, spesso l&#039;insegnante assegna una probabilità alta ad una classe, rendendo le probabilità delle altre classi vicine a zero, e quindi non fornendo molte informazioni aggiuntive rispetto alle etichette di verità fondamentale. Per questo, si &amp;quot;addolciscono&amp;quot; le probabilità scalando i logits con un iperparametro di [[Temperatura (Apprendimento Automatico)|temperatura T]] prima di applicare la softmax. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p_i(x)\frac{\exp(z_i(x)/T)}{\textstyle \sum_{j} \displaystyle \exp(z_i(x)/T)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Valori più alti di T producono una distribuzione di probabilità più morbida sulle classi e rivelano più informazioni sul confine decisionale che l&#039;insegnante ha appreso per ogni esempio di addestramento.&lt;br /&gt;
[[File:Screenshot 2024-04-10 alle 11.54.03.png|centro|miniatura|500x500px|Figura1. Confronto tra un&#039;etichetta rigida codificata in one-hot (sinistra), probabilità softmax (centro) e probabilità di classe addolcite (destra)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://arxiv.org/abs/1503.02531 Distilling the Knowledge in a Neural Network (2015)]&lt;br /&gt;
&lt;br /&gt;
[[Category:concetto]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=File:Screenshot_2024-04-10_alle_11.54.03.png&amp;diff=1996</id>
		<title>File:Screenshot 2024-04-10 alle 11.54.03.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=File:Screenshot_2024-04-10_alle_11.54.03.png&amp;diff=1996"/>
		<updated>2024-04-10T10:11:56Z</updated>

		<summary type="html">&lt;p&gt;Michela: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Distillazione_Della_Conoscenza&amp;diff=1989</id>
		<title>Distillazione Della Conoscenza</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Distillazione_Della_Conoscenza&amp;diff=1989"/>
		<updated>2024-04-10T10:05:56Z</updated>

		<summary type="html">&lt;p&gt;Michela: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;La &#039;&#039;&#039;distillazione della conoscenza&#039;&#039;&#039; è il processo di trasferimento della conoscenza da un modello di grandi dimensioni ad uno più piccolo.&lt;br /&gt;
&lt;br /&gt;
Originariamente introdotto nel 2006 nel contesto dei modelli di ensemble, è stato successivamente reso popolare in un famoso [https://arxiv.org/abs/1503.02531 paper] del 2015 che ha generalizzato il metodo di reti neurali profonde.&lt;br /&gt;
&lt;br /&gt;
== Knowledge Distillation per il Fine-Tuning ==&lt;br /&gt;
Nel contesto dell&#039;apprendimento automatico, specialmente nell&#039;addestramento supervisionato come il fine-tuning, la distillazione della conoscenza è un metodo per trasferire l&#039;informazione da un modello &amp;quot;insegnante&amp;quot; grande e complesso a un modello &amp;quot;studente&amp;quot; più piccolo e meno complesso. L&#039;idea principale è quella di arricchire le etichette di verità fondamentale con una distribuzione di &amp;quot;soft probabilities&amp;quot; fornite dall&#039;insegnante, che offrono informazioni complementari da cui lo studente può imparare. Ad esempio, se un classificatore basato su BERT assegna alte probabilità a più intenti, questo potrebbe indicare che questi intenti sono vicini l&#039;uno all&#039;altro nello spazio delle caratteristiche. Addestrando lo studente a imitare queste probabilità, l&#039;obiettivo è di distillare parte di questa &amp;quot;dark knowledge&amp;quot; che l&#039;insegnante ha appreso, ossia conoscenze non disponibili solo dalle etichette.&lt;br /&gt;
&lt;br /&gt;
Matematicamente, questo processo funziona come segue: si fornisce una sequenza di input x all&#039;insegnante per generare un vettore di logits x = [z1x, ..., zNx]. Questi logits possono essere convertiti in probabilità applicando una funzione [[softmax]]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\exp(z_i(x))}{\textstyle \sum_{j} \displaystyle \exp(z_i(x))}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tuttavia, spesso l&#039;insegnante assegna una probabilità alta ad una classe, rendendo le probabilità delle altre classi vicine a zero, e quindi non fornendo molte informazioni aggiuntive rispetto alle etichette di verità fondamentale. Per questo, si &amp;quot;addolciscono&amp;quot; le probabilità scalando i logits con un iperparametro di [[Temperatura (Apprendimento Automatico)|temperatura T]] prima di applicare la softmax. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p_i(x)\frac{\exp(z_i(x)/T)}{\textstyle \sum_{j} \displaystyle \exp(z_i(x)/T)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Valori più alti di T producono una distribuzione di probabilità più morbida sulle classi e rivelano più informazioni sul confine decisionale che l&#039;insegnante ha appreso per ogni esempio di addestramento.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://arxiv.org/abs/1503.02531 Distilling the Knowledge in a Neural Network (2015)]&lt;br /&gt;
&lt;br /&gt;
[[Category:concetto]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=RecurrentGPT&amp;diff=1471</id>
		<title>RecurrentGPT</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=RecurrentGPT&amp;diff=1471"/>
		<updated>2024-03-20T14:44:08Z</updated>

		<summary type="html">&lt;p&gt;Michela: /* Descrizione */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039; Rilasciato da &#039;&#039;&#039;: Wangchunshu Zhou, Yuchen Eleanor Jiang, Peng Cui, Tiannan Wang, Zhenxin Xiao, Yifan Hou, Ryan Cotterell, Mrinmaya Sachan, ETH Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Data di pubblicazione &#039;&#039;&#039;: 23 maggio 2023&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Accesso &#039;&#039;&#039;: Open source&lt;br /&gt;
&lt;br /&gt;
== Descrizione ==&lt;br /&gt;
&#039;&#039;&#039;RecurrentGPT &#039;&#039;&#039;è un framework costruito su un [[Large Language Model (LLM)|&#039;&#039;&#039;modello di linguaggio&#039;&#039;&#039; LLM]] (come &#039;&#039;&#039;[[GPT-4|ChatGPT]]&#039;&#039;&#039;), sfrutta il meccanismo di ricorrenza delle &#039;&#039;&#039;[[Recurrent Neural Network (RNN)|RNN (Reti Neurali Ricorrenti)]]&#039;&#039;&#039; e utilizza il linguaggio naturale per simulare il meccanismo di memoria a lungo e breve termine di un &#039;&#039;&#039;[[LSTM]] &#039;&#039;&#039; [[LSTM|&#039;&#039;&#039;(Long Short-Term Memory)&#039;&#039;&#039;]]. Attraverso l&#039;uso di linguaggio naturale come blocchi costruttivi, RecurrentGPT simula la memoria a lungo e breve termine, consentendo la generazione di testi di lunghezza arbitraria e superando le limitazioni di contesto fisse dei modelli &#039;&#039;&#039; [[Transformer]] &#039;&#039;&#039; tradizionali. Questo approccio rende RecurrentGPT altamente &#039;&#039;&#039;interpretabile&#039;&#039;&#039; e &#039;&#039;&#039;interattivo&#039;&#039;&#039;, permettendo agli utenti di osservare, modificare e influenzare direttamente il processo di generazione del testo.&lt;br /&gt;
&lt;br /&gt;
== Architettura ==&lt;br /&gt;
* &#039;&#039;&#039;Input / Output&#039;&#039;&#039;  &lt;br /&gt;
L&#039;&#039;&#039;&#039;input&#039;&#039;&#039; e l&#039;&#039;&#039;&#039;output&#039;&#039;&#039; di &#039;&#039;&#039;RecurrentGPT&#039;&#039;&#039; ad ogni &#039;&#039;&#039;timestep&#039;&#039;&#039; includono:&lt;br /&gt;
* un &#039;&#039;&#039;paragrafo di testo&#039;&#039;&#039; che viene aggiunto al testo finale prodotto,&lt;br /&gt;
* un &#039;&#039;&#039;abbozzo&#039;&#039;&#039; per il paragrafo successivo da generare.  Vengono definiti rispettivamente come: &#039;&#039;&#039;contenuto&#039;&#039;&#039; e &#039;&#039;&#039;piano&#039;&#039;&#039;. &lt;br /&gt;
Come illustrato nella figura, i contenuti consistono tipicamente di 200-400 parole e dovrebbero essere per lo più pronti per la lettura, mentre, i piani sono abbozzi per il prossimo contenuto e consistono tipicamente di 3-5 frasi. Ad ogni timestep, il contenuto e il piano generati nel timestep precedente vengono usati come input per RecurrentGPT, permettendo il calcolo ricorrente.  RecurrentGPT è progettato per produrre piani oltre ai contenuti in quanto permettere agli utenti di leggere e modificare i piani aumentando l&#039;&#039;&#039;&#039;interpretabilità&#039;&#039;&#039; e facilitando l&#039;&#039;&#039;&#039;interazione uomo-macchina&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Long-Short term memory&#039;&#039;&#039; &lt;br /&gt;
Similmente a un LSTM, &#039;&#039;&#039;RecurrentGPT&#039;&#039;&#039; mantiene una memoria a lungo-breve termine attraverso i timesteps.  La memoria a &#039;&#039;&#039;lungo termine&#039;&#039;&#039; riassume tutti i contenuti generati precedentemente per minimizzare la perdita di informazioni quando si generano testi lunghi. Poiché il contenuto generato può essere arbitrariamente lungo e non può adattarsi alla dimensione di contesto degli LLM, la memoria a lungo termine è stata implementata con un approccio &#039;&#039;&#039;VectorDB&#039;&#039;&#039;, incorporando il contenuto generato in ogni timestep con &#039;&#039;&#039;sentence-transformers&#039;&#039;&#039;. Questo approccio permette a RecurrentGPT di conservare una memoria ancora più lunga rispetto ai precedenti Transformer poiché può conservare la memoria nello spazio su disco invece che nella memoria GPU. Questo può essere importante in diversi casi d&#039;uso dove gli utenti potrebbero non avere GPU di fascia alta nei loro dispositivi.  La memoria a &#039;&#039;&#039;breve termine&#039;&#039;&#039; è un breve paragrafo di testi che riassume le informazioni chiave attraverso i timesteps recenti. La lunghezza della memoria a breve termine è controllata per essere di &#039;&#039;&#039;10-20 frasi&#039;&#039;&#039; in modo che possa adattarsi al prompt e possa essere aggiornata dall&#039;LLM principale. Combinando la memoria a lungo e breve termine, RecurrentGPT può mantenere la coerenza con il contenuto generato di recente e anche richiamare informazioni chiave generate molto tempo prima.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_2024-03-07_alle_14.49.44.png|center|500px|thumb|Figura 1: Illustrazione del framework RecurrentGPT. Consente il prompting ricorrente con LLM simulando una RNN tramite blocchi costruttivi in linguaggio naturale e definisce il grafo di calcolo ricorrente con prompt.]]&lt;br /&gt;
&lt;br /&gt;
=== Baseline ===&lt;br /&gt;
* &#039;&#039;&#039;Rolling-ChatGPT&#039;&#039;&#039; &lt;br /&gt;
questa baseline si basa sull&#039;idea di &#039;&#039;&#039;stimolare iterativamente ChatGPT&#039;&#039;&#039; a proseguire la scrittura di un testo una volta raggiunto il suo limite di contesto. In pratica, si comincia fornendo a ChatGPT un genere letterario e alcuni dettagli o impostazioni di sfondo come punto di partenza per scrivere un romanzo. Una volta che ChatGPT ha generato una quantità di testo che si avvicina o raggiunge il limite massimo del contesto che può gestire, l&#039;utente o un meccanismo automatizzato fornisce nuovamente al modello una porzione del testo più recente, sollecitandolo a continuare da dove si era interrotto. Solo una parte del testo generato precedentemente (la parte più recente o rilevante) viene utilizzata nuovamente come input per generare la porzione successiva del testo. Ciò permette teoricamente di produrre &#039;&#039;&#039;testi di lunghezza arbitraria&#039;&#039;&#039; , sfruttando la capacità di ChatGPT di generare &#039;&#039;&#039;testi coerenti e contestualmente pertinenti&#039;&#039;&#039; basandosi sull&#039;input ricevuto, ma richiede una &#039;&#039;&#039;gestione attenta del contesto&#039;&#039;&#039; per mantenere la coerenza e la continuità dell&#039;intero testo. Sebbene questa tecnica possa essere efficace, potrebbe comunque presentare sfide relative alla coerenza del testo su lunghe distanze, poiché il modello ha sempre una vista limitata dell&#039;intero contenuto generato fino a quel momento.&lt;br /&gt;
* &#039;&#039;&#039;RE3&#039;&#039;&#039; &lt;br /&gt;
questa baseline si riferisce a un approccio strutturato per la &#039;&#039;&#039;generazione di storie lunghe&#039;&#039;&#039; attraverso l&#039;uso di modelli di linguaggio di grandi dimensioni (LLM), come ChatGPT. Questo metodo si basa su una &#039;&#039;&#039;strategia gerarchica&#039;&#039;&#039; che procede in più fasi per costruire &#039;&#039;&#039;narrazioni complesse&#039;&#039;&#039; e dettagliate:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Generazione del Contorno&#039;&#039;&#039;: Nella prima fase, RE3 sollecita un LLM a &#039;&#039;&#039;creare un abbozzo&#039;&#039;&#039; o contorno generale della storia. Questo contorno funge da mappa per l&#039;intera narrazione, delineando i principali eventi, personaggi e punti di svolta. L&#039;idea è quella di &#039;&#039;&#039;stabilire una struttura di base&#039;&#039;&#039; che guiderà la generazione successiva del testo, assicurando che la storia abbia una &#039;&#039;&#039;trama coerente e logicamente organizzata&#039;&#039;&#039;.&lt;br /&gt;
# &#039;&#039;&#039;Generazione della Storia&#039;&#039;&#039;: Una volta definito il contorno, il modello procede con la &#039;&#039;&#039;generazione del testo&#039;&#039;&#039; della storia seguendo la struttura predefinita. In questa fase, il LLM espande ciascuna sezione del contorno in &#039;&#039;&#039;narrazioni dettagliate&#039;&#039;&#039;, popolando la storia con dialoghi, descrizioni e azioni che arricchiscono il racconto.&lt;br /&gt;
# &#039;&#039;&#039;Pipeline di Ri-classificazione e Ri-scrittura&#039;&#039;&#039;: Dopo la generazione iniziale della storia, RE3 impiega ulteriori passaggi di elaborazione, come la ri-classificazione e la ri-scrittura, per &#039;&#039;&#039;rifinire il testo&#039;&#039;&#039;. Questi processi possono includere l&#039;aggiustamento di tono e stile, la correzione di incoerenze narrative, il miglioramento della coesione tra le parti della storia e l&#039;assicurazione che il testo finale sia di alta qualità. Queste fasi di post-elaborazione sono cruciali per assicurare che la &#039;&#039;&#039;storia&#039;&#039;&#039; sia non solo &#039;&#039;&#039;coerente&#039;&#039;&#039; con il contorno iniziale, ma anche &#039;&#039;&#039;avvincente e ben scritta&#039;&#039;&#039; .&lt;br /&gt;
* &#039;&#039;&#039;DOC&#039;&#039;&#039; &lt;br /&gt;
questa baseline riguarda un approccio avanzato nella &#039;&#039;&#039;generazione automatica di storie lunghe&#039;&#039;&#039;, che rappresenta &#039;&#039;&#039;un&#039;evoluzione del metodo RE3&#039;&#039;&#039;. DOC si distingue per la sua capacità di offrire un &#039;&#039;&#039;maggiore controllo sull&#039;outline (contorno) della storia&#039;&#039;&#039;, permettendo di guidare più dettagliatamente la narrazione e assicurando che la &#039;&#039;&#039;trama&#039;&#039;&#039; segua fedelmente la &#039;&#039;&#039;struttura predefinita&#039;&#039;&#039;. Questa maggiore precisione nell&#039;outline mira a migliorare la coerenza e la qualità complessiva delle storie generate. La &#039;&#039;&#039;&amp;quot;ri-implementazione&amp;quot; di DOC con ChatGPT&#039;&#039;&#039; consiste nell&#039;adattare il metodo originale, precedentemente basato su un modello diverso (come l&#039;OPT-175B), per &#039;&#039;&#039;utilizzare le capacità avanzate di ChatGPT&#039;&#039;&#039;. Questo cambiamento è significativo poiché ChatGPT è noto per la sua eccellente comprensione del linguaggio naturale e le abilità di generazione di testo. Tuttavia, una sfida in questa transizione è rappresentata dall&#039; &#039;&#039;&#039;impossibilità di accedere direttamente ai &amp;quot;pesi&amp;quot;&#039;&#039;&#039; (i parametri interni) di ChatGPT, il che rende inutilizzabile il &#039;&#039;&#039;&amp;quot;controller dettagliato&amp;quot;&#039;&#039;&#039; presente in DOC. Il controller dettagliato era un componente di DOC che permetteva di &#039;&#039;&#039;influenzare finemente il processo di generazione del testo&#039;&#039;&#039;, basandosi sui parametri interni del modello.  Per superare questa limitazione, la &#039;&#039;&#039;ri-implementazione&#039;&#039;&#039; si concentra sull&#039; &#039;&#039;&#039;uso delle capacità intrinseche di ChatGPT&#039;&#039;&#039;, adattando il processo per funzionare senza la necessità di modificare direttamente i pesi del modello. Anche se questo potrebbe sembrare una restrizione, in realtà si scopre che l&#039;uso di &#039;&#039;&#039;ChatGPT&#039;&#039;&#039; porta a una &#039;&#039;&#039;qualità del testo&#039;&#039;&#039; generato leggermente &#039;&#039;&#039;migliore&#039;&#039;&#039; sfruttando le avanzate capacità linguistiche di ChatGPT per produrre &#039;&#039;&#039;storie più fluide, interessanti e coerenti&#039;&#039;&#039;. Questo miglioramento è attribuibile alla &#039;&#039;&#039;superiorità di ChatGPT&#039;&#039;&#039; in termini di &#039;&#039;&#039;comprensione del contesto&#039;&#039;&#039;, &#039;&#039;&#039;coerenza narrativa&#039;&#039;&#039; e &#039;&#039;&#039;capacità di generazione del linguaggio&#039;&#039;&#039;, che compensano l&#039;assenza del controller dettagliato.&lt;br /&gt;
&lt;br /&gt;
== Caratteristiche Principali ==&lt;br /&gt;
* &#039;&#039;&#039;Generazione Ricorsiva di testi&#039;&#039;&#039;&lt;br /&gt;
RecurrentGPT, a differenza dei modelli tradizionali che sono vincolati da una dimensione di contesto fissa, sfrutta un &#039;&#039;&#039;meccanismo di ricorrenza&#039;&#039;&#039; basato sul linguaggio naturale  che gli consente di produrre  &#039;&#039;&#039;contenuti di lunghezza arbitraria&#039;&#039;&#039;  aggiornando dinamicamente una  &#039;&#039;&#039;memoria a lungo-corto termine&#039;&#039;&#039; . La  &#039;&#039;&#039;memoria a lungo termine&#039;&#039;&#039;  archivia i contenuti generati precedentemente, assicurando che il modello mantenga la coerenza narrativa nei testi estesi. Parallelamente, la  &#039;&#039;&#039;memoria a breve termine&#039;&#039;&#039;  cattura dettagli e informazioni cruciali dei segmenti più recenti, garantendo che ogni nuova generazione di testo sia ben collegata con il contesto immediato. Questo processo imita la capacità umana di collegare nuove informazioni con la conoscenza preesistente, superando i limiti di memoria imposti dalla dimensione fissa del contesto nei modelli Transformer.&lt;br /&gt;
* &#039;&#039;&#039;Interpretabilità e Interattività&#039;&#039;&#039;&lt;br /&gt;
Una delle forze di RecurrentGPT  è la sua  &#039;&#039;&#039;elevata interpretabilità&#039;&#039;&#039;  derivante dalla trasparenza dei suoi meccanismi basati sul linguaggio naturale. Gli  &#039;&#039;&#039;utenti&#039;&#039;&#039;  possono osservare direttamente come il modello elabora e aggiorna le informazioni, intervenendo attivamente per  &#039;&#039;&#039;modificare i contenuti&#039;&#039;&#039;  della memoria a lungo o breve termine, i  &#039;&#039;&#039;piani futuri&#039;&#039;&#039;  e gli  &#039;&#039;&#039;output generati&#039;&#039;&#039; . Questo livello di interazione apre nuove possibilità di personalizzazione nel processo di generazione del testo, rendendo RecurrentGPT uno strumento particolarmente adatto alla  &#039;&#039;&#039;collaborazione creativa&#039;&#039;&#039;  tra uomo e macchina e nei contesti dove la precisione e la personalizzazione del contenuto sono cruciali.&lt;br /&gt;
* &#039;&#039;&#039;Personalizzazione&#039;&#039;&#039;&lt;br /&gt;
RecurrentPT  si distingue per la sua elevata  &#039;&#039;&#039;flessibilità e capacità di adattamento&#039;&#039;&#039; che lo rendono un strumento ideale per una vasta gamma di applicazioni nel campo della generazione di testo. Questa versatilità deriva principalmente dalla possibilità di  &#039;&#039;&#039;personalizzare il modello&#039;&#039;&#039;  in base a stili narrativi specifici, generi letterari diversi e dettagliati requisiti di contenuto. Attraverso l&#039;implementazione di semplici  &#039;&#039;&#039;modifiche ai prompt iniziali&#039;&#039;&#039;  e l&#039;accurata selezione delle informazioni da includere nella memoria a lungo e breve termine, gli  &#039;&#039;&#039;utenti&#039;&#039;&#039;  possono efficacemente  &#039;&#039;&#039;influenzare il percorso creativo&#039;&#039;&#039;  di RecurrentGPT, dirigendolo verso la produzione di testi che non solo aderiscono agli obiettivi e agli stili prefissati ma che sono anche caratterizzati da un  &#039;&#039;&#039;alto livello di coerenza e pertinenza&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Applicazioni ==&lt;br /&gt;
* &#039;&#039;&#039;Interactive Writing Assistant&#039;&#039;&#039;&lt;br /&gt;
È stata testata l&#039;utilità di RecurrentGPT come &#039;&#039;&#039;assistente alla scrittura interattiva&#039;&#039;&#039; da una prospettiva di &#039;&#039;&#039;interazione uomo-IA&#039;&#039;&#039;. Come illustrato in figura, uno scrittore inizia scegliendo l&#039;argomento su cui vuole scrivere e scrive un breve paragrafo che descrive lo sfondo e il contorno del libro. A questo punto RecurrentGPT genera automaticamente i primi paragrafi e fornisce alcune possibili opzioni per continuare la storia. Lo scrittore può selezionarne una ed eventualmente modificarla se necessario. Può anche scrivere un breve piano per i prossimi paragrafi da solo, se i piani generati sono tutti inappropriati, rendendo il processo di co-scrittura uomo-IA più flessibile.&lt;br /&gt;
[[File:Screenshot 2024-03-07 alle 17.19.09.png|centro|miniatura|505x505px|Figura 2: Analisi qualitativa dell&#039;utilizzo di RecurrentGPT come assistente alla scrittura interattiva e come fiction interattiva. I piani o le scelte evidenziati sono quelli selezionati dagli utenti umani.]]&lt;br /&gt;
&lt;br /&gt;
Agli scrittori viene mostrata un&#039;interfaccia che permette di scrivere romanzi di generi diversi interagendo con RecurrentGPT (come in Figura 2).&lt;br /&gt;
[[File:Screenshot 2024-03-07 alle 16.59.29.png|centro|miniatura|504x504px|Figura 3: Web demo di RecurrentGPT]]&lt;br /&gt;
&lt;br /&gt;
Secondo uno studio su piccola scala con utenti umani, &#039;&#039;&#039;RecurrentGPT&#039;&#039;&#039; migliora significativamente la produttività degli scrittori, e i miglioramenti derivano principalmente da:&lt;br /&gt;
&lt;br /&gt;
* Riduzione del tempo per digitare testi lunghi scrivendo o scegliendo piani brevi e lasciando che RecurrentGPT generi i testi effettivi;&lt;br /&gt;
* Riduzione del tempo per progettare trame meno importanti selezionando piani generati da RecurrentGPT, secondo il feedback degli utenti. Inoltre, gli utenti ritengono che RecurrentGPT sia più interpretabile e controllabile rispetto agli assistenti alla scrittura AI convenzionali che agiscono come scatole nere, poiché i componenti basati sul linguaggio in RecurrentGPT sono trasparenti e modificabili per gli utenti.&lt;br /&gt;
&lt;br /&gt;
Rispetto ai metodi precedenti che generano testi lunghi in modo gerarchico come DOC e RE3, gli utenti umani preferiscono questo sistema poiché scrivere testi lunghi in modo iterativo e interattivo è più &#039;&#039;&#039;flessibile&#039;&#039;&#039; e &#039;&#039;&#039;controllabile&#039;&#039;&#039;. Inoltre RecurrentGPT può generare alcuni paragrafi alla volta (Figura 3).&lt;br /&gt;
* &#039;&#039;&#039;Interactive Fiction&#039;&#039;&#039;&lt;br /&gt;
È stata testata la possibilità di utilizzare RecurrentGPT come &#039;&#039;&#039;fiction interattiva personalizzata&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Le principali differenze con il caso d&#039;uso precedente sono due, come illustrato in figura:&lt;br /&gt;
&lt;br /&gt;
* Il passaggio dalla prospettiva in terza persona alla prima persona, che mira a favorire un senso di immersione per gli utenti,&lt;br /&gt;
* Far generare a RecurrentGPT piani che coinvolgono scelte importanti per il personaggio principale anziché piani generali per i prossimi paragrafi. L&#039;adattamento può essere facilmente implementato modificando leggermente il prompt.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2024-03-07 alle 17.19.25.png|centro|miniatura|504x504px|Figura 4: Analisi qualitativa dell&#039;utilizzo di RecurrentGPT come assistente alla scrittura interattiva e come fiction interattiva. I piani o le scelte evidenziati sono quelli selezionati dagli utenti umani.]]&lt;br /&gt;
Lo studio fatto con gli utenti mostra che RecurrentGPT può interagire fornendo direttamente contenuti di buona qualità. Gli utenti trovano anche che la possibilità di scrivere testi liberi, come le loro azioni nella fiction interattiva, migliora notevolmente l&#039;interesse. Questo conferma il potenziale di utilizzare l&#039;AI generativa come contenuto stesso (AIAC), invece di usarla come strumento per produrre contenuto.&lt;br /&gt;
&lt;br /&gt;
== Risultati ==&lt;br /&gt;
Le &#039;&#039;&#039;applicazioni&#039;&#039;&#039; condotte dimostrano che RecurrentGPT eccelle nella generazione di testi lunghi, mantenendo le metriche di valutazione (coerenza e coinvolgimento) anche oltre le capacità di ChatGPT. È stato testato con successo in vari generi narrativi, dimostrando la sua versatilità e robustezza.&lt;br /&gt;
&lt;br /&gt;
=== Metriche di valutazione ===&lt;br /&gt;
Il &#039;&#039;&#039;processo di valutazione&#039;&#039;&#039; utilizzato per confrontare &#039;&#039;&#039;RecurrentGPT&#039;&#039;&#039; con altre baseline nella generazione di testi narrativi, in particolare romanzi, è focalizzato su &#039;&#039;&#039;due criteri&#039;&#039;&#039; principali:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Interessante&#039;&#039;&#039;: Si valuta il &#039;&#039;&#039;grado di interesse&#039;&#039;&#039; che i romanzi generati riescono a suscitare nei lettori. Questo criterio mira a misurare &#039;&#039;&#039;l&#039;attrattiva della narrazione&#039;&#039;&#039;, la sua &#039;&#039;&#039;originalità&#039;&#039;&#039; e la capacità di &#039;&#039;&#039;mantenere l&#039;attenzione&#039;&#039;&#039; del lettore. Un romanzo considerato &amp;quot;interessante&amp;quot; dovrebbe stimolare la &#039;&#039;&#039;curiosità&#039;&#039;&#039;, provocare &#039;&#039;&#039;emozioni o pensieri&#039;&#039;&#039;, e &#039;&#039;&#039;incoraggiare il lettore a proseguire la lettura&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Coerente&#039;&#039;&#039;: Si esamina la &#039;&#039;&#039;coesione strutturale dei testi&#039;&#039;&#039;, valutando quanto bene i paragrafi sono organizzati e interconnessi tra loro. Questo criterio si concentra sulla &#039;&#039;&#039;logica narrativa&#039;&#039;&#039;, sull&#039; &#039;&#039;&#039;uniformità dello stile&#039;&#039;&#039; e sulla &#039;&#039;&#039;fluidità della trama&#039;&#039;&#039;, assicurando che gli eventi, i personaggi e le ambientazioni siano presentati in maniera logica e che contribuiscano alla progressione della storia in modo armonioso.&lt;br /&gt;
&lt;br /&gt;
Per effettuare questa valutazione, si utilizza un &#039;&#039;&#039;approccio di confronto a coppie&#039;&#039;&#039;. A un gruppo di valutatori umani, selezionati per la loro buona padronanza dell&#039;inglese, vengono forniti due romanzi (indicati come romanzo A e romanzo B) generati da metodi differenti, in ordine casuale. I valutatori sono incaricati di determinare quale dei due romanzi sia migliore in termini di &#039;&#039;&#039;interesse e coerenza&#039;&#039;&#039;, oppure di indicare se non vi sia una distinzione chiara tra i due (in tal caso, i romanzi vengono considerati indistinguibili su quelle dimensioni).&lt;br /&gt;
&lt;br /&gt;
Per garantire &#039;&#039;&#039;un&#039;analisi equilibrata e rappresentativa&#039;&#039;&#039;, vengono selezionati &#039;&#039;&#039;20 romanzi&#039;&#039;&#039; per ogni genere letterario considerato nello studio, e a ciascun romanzo vengono assegnati 3 valutatori. Questo permette di ottenere una &#039;&#039;&#039;valutazione diversificata&#039;&#039;&#039; e di &#039;&#039;&#039;ridurre&#039;&#039;&#039; le eventuali &#039;&#039;&#039;discrepanze di giudizio individuali&#039;&#039;&#039;.&lt;br /&gt;
[[File:RecurrentGPT.png|centro|miniatura|500x500px|Confronto a coppie tra RecurrentGPT e le baseline per 20 romanzi di generi diversi. I risultati nei diversi confronti non sono confrontabili tra loro. Il grassetto indica una significatività con p &amp;lt; 0,05.]]&lt;br /&gt;
[[File:Recurrentgpt2.png|centro|miniatura|501x501px|Confronto a coppie tra RecurrentGPT, le sue varianti e la variante che utilizza GPT-4 come modello di base. Si campionano 20 romanzi di generi diversi per il confronto. I risultati in confronti differenti non sono confrontabili tra loro. Il grassetto indica una significatività con p &amp;lt; 0,05.]]&lt;br /&gt;
&lt;br /&gt;
== Limitazioni ==&lt;br /&gt;
Sebbene RecurrentGPT possa generare testi arbitrariamente lunghi, è stato valutato solo in contesti in cui i testi generati sono al &#039;&#039;&#039; massimo di circa 5000 parole &#039;&#039;&#039;. Un&#039;altra limitazione è la sua dipendenza da LLM avanzati (ChatGPT e GPT-4) e nella gestione di testi estremamente lunghi. Si pensa che questo problema possa essere alleviato quando verranno sviluppati LLM più piccoli e potenti.&lt;br /&gt;
&lt;br /&gt;
== Prospettiva futura ==&lt;br /&gt;
RecurrentGPT segna un passo importante verso la realizzazione di sistemi di scrittura assistita da computer di prossima generazione, offrendo una soluzione promettente per superare le limitazioni esistenti nella generazione di testi lunghi e aprire nuove frontiere nell&#039;uso creativo dell&#039;IA.&lt;br /&gt;
&lt;br /&gt;
== Link ==&lt;br /&gt;
=== Paper ===&lt;br /&gt;
[https://arxiv.org/pdf/2305.13304.pdf RecurrentGPT: Interactive Generation of (Arbitrarily) Long Text (Maggio 2023)]: paper originale&lt;br /&gt;
&lt;br /&gt;
=== Github ===&lt;br /&gt;
[https://github.com/aiwaves-cn/RecurrentGPT RecurrentGPT]&lt;br /&gt;
&lt;br /&gt;
=== Demo ===&lt;br /&gt;
[https://www.aiwaves.org/recurrentgpt Demo: Writing Assistant]&lt;br /&gt;
&lt;br /&gt;
[https://www.aiwaves.org/interactivefiction Demo: Interactive Fiction]&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
[https://www.youtube.com/watch?v=rMnw3ljCibc RecurrentGPT: Generate Larger Text EASILY Compared to ChatGPT]&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Framework]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Img2img&amp;diff=1456</id>
		<title>Img2img</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Img2img&amp;diff=1456"/>
		<updated>2024-03-20T13:49:10Z</updated>

		<summary type="html">&lt;p&gt;Michela: /* Inpaint sketch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Img2img è uno strumento in [[Stable Diffusion]] che genera nuove immagini a partire da &#039;&#039;&#039;un’immagine di input e un prompt di testo corrispondente&#039;&#039;&#039;. L’immagine di output conserva il &#039;&#039;&#039;colore originale&#039;&#039;&#039; e la &#039;&#039;&#039;composizione&#039;&#039;&#039; dell’immagine di input. Questo strumento può trasformare i disegni più semplici in capolavori visivamente sorprendenti.&lt;br /&gt;
&lt;br /&gt;
=Overview dell&#039;interfaccia=&lt;br /&gt;
[[File:img2img.png|700px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Sketch&#039;&#039;&#039;: è un’opzione che permette di disegnare direttamente sul canvas dell’interfaccia utente. Questo può essere particolarmente utile quando si utilizza la funzione img2img, poiché consente di creare un’immagine di input personalizzata per la generazione dell’immagine. Si può caricare un’immagine di sfondo sul canvas e poi utilizzare lo strumento &amp;quot;Sketch&amp;quot; per disegnare o aggiungere dettagli.&lt;br /&gt;
* &#039;&#039;&#039;Inpaint&#039;&#039;&#039;: è una funzione che consente di correggere piccoli difetti in un’immagine. Questo processo, implica l’uso di un modello di diffusione per rigenerare parti specifiche dell’immagine. Utilizzando lo strumento “pennello” si crea una maschera sull’area che si desidera rigenerare. Questa funzione può essere particolarmente utile per correggere specifiche aree senza dover rigenerare l’intera immagine.&lt;br /&gt;
* &#039;&#039;&#039;Inpaintsketch&#039;&#039;&#039;: è una funzione che combina le funzionalità di “Sketch” e “Inpaint”. Permette di disegnare o schizzare direttamente sull’immagine di input e poi utilizzare la funzione “Inpaint” per rigenerare le parti dell’immagine che sono state modificate dallo schizzo. Per esempio, può servire quando si desidera fare piccole modifiche a un’immagine esistente senza dover rigenerarla.&lt;br /&gt;
* &#039;&#039;&#039;Inpaint&#039;&#039;&#039; &#039;&#039;&#039;upload&#039;&#039;&#039;: è una funzione che permette di caricare una maschera di &amp;quot;inpainting&amp;quot; personalizzata, piuttosto che disegnarla direttamente nell’interfaccia utente. Questa può essere utile per creare una maschera più complessa o dettagliata per l’inpainting. Dopo aver caricato la maschera, Stable Diffusion la utilizzerà per determinare quali parti dell’immagine rigenerare.&lt;br /&gt;
* &#039;&#039;&#039;Batch&#039;&#039;&#039;: è una funzione che permette di processare più immagini contemporaneamente. Può essere d&#039;aiuto quando si desidera applicare la stessa operazione, come img2img, a un intero set di immagini.&lt;br /&gt;
* &#039;&#039;&#039;Copy image to&#039;&#039;&#039;: Questa opzione permette di scegliere dove si desidera copiare l&#039;immagine processata tra le diverse funzioni disponibili.&lt;br /&gt;
* &#039;&#039;&#039;Soft inpainting&#039;&#039;&#039;: è una funzione che consente di rigenerare parti di un’immagine in modo più fluido e naturale. A differenza dell’inpainting standard, che utilizza una maschera binaria per determinare quali parti dell’immagine rigenerare, Soft Inpainting utilizza una maschera in scala di grigi per creare una transizione più morbida tra le aree rigenerate e il resto dell’immagine. Questo può portare a risultati più naturali, soprattutto quando si rigenerano aree complesse o dettagliate.&lt;br /&gt;
* &#039;&#039;&#039;Resize mode&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;Just resize&#039;&#039;&#039;: Cambia solo le dimensioni dell&#039;immagine senza modificarne le proporzioni.&lt;br /&gt;
** &#039;&#039;&#039;Crop and resize&#039;&#039;&#039;: Ritaglia e cambia le dimensioni dell&#039;immagine per adattarla a specifiche proporzioni.&lt;br /&gt;
** &#039;&#039;&#039;Resize and fill&#039;&#039;&#039;: Cambia le dimensioni dell&#039;immagine e riempie lo spazio aggiuntivo per mantenere le proporzioni originali.&lt;br /&gt;
** &#039;&#039;&#039;Just resize (latent upscale)&#039;&#039;&#039;: Modifica le dimensioni dell&#039;immagine utilizzando una tecnica di upscaling che mantiene la qualità dell&#039;immagine originale.&lt;br /&gt;
&lt;br /&gt;
=Funzionalità aggiuntive=&lt;br /&gt;
&#039;&#039;&#039;Inpaint masked&#039;&#039;&#039;: Questa opzione significa che la funzione lavorerà per riempire o “dipingere” le aree mascherate dell’immagine. In altre parole, le aree mascherate dell’immagine saranno sostituite con nuovi pixel generati dall’algoritmo di inpainting.&lt;br /&gt;
&#039;&#039;&#039;Inpaint not masked&#039;&#039;&#039;: Questa opzione indica che la funzione lavorerà sulle aree non mascherate, lasciando intatte le parti mascherate. Quindi, solo i pixel non mascherati dell’immagine saranno modificati dall’algoritmo di inpainting.&lt;br /&gt;
&lt;br /&gt;
=Sperimentazioni=&lt;br /&gt;
==Img2img==&lt;br /&gt;
In questo caso, bisognerà inserire un&#039;immagine all&#039;interno dell&#039;interfaccia. In seguito, si inserirà un prompt per determinare in che modo si vuole modificare l&#039;immagine originale. In più, si possono cambiare i parametri che ritroviamo anche nella dashboard di [[Txt2img (Stable Diffusion)]]. Sotto l&#039;immagine che verrà generata apparirà un riassunto dei valori dei parametri inseriti.&lt;br /&gt;
&lt;br /&gt;
[[File:Robotic_cat1.png|600x600px]]&lt;br /&gt;
Prompt: Robotic cat made of Glass&lt;br /&gt;
&lt;br /&gt;
==Sketch==&lt;br /&gt;
In questo esperimento gli occhi del gatto sono stati colorati di azzurro per far comprendere al modello che l&#039;immagine richiesta dovrà presentare non solo un gatto robotico di vetro, ma anche degli occhi luminosi con quel determinato colore.&lt;br /&gt;
&lt;br /&gt;
[[File:Robotic_cat2.png|600x600px]]&lt;br /&gt;
Prompt: Robotic cat made of Glass&lt;br /&gt;
&lt;br /&gt;
==Inpaint==&lt;br /&gt;
In questo caso, l&#039;immagine originale viene rigenerata soltanto con le aree che si vogliono modificare/correggere. Inoltre, sarà necessario comporre un prompt con il risultato desiderato.&lt;br /&gt;
&lt;br /&gt;
[[File:Cat_ears.png|600x600px]]&lt;br /&gt;
Prompt: Cat ears made of metal&lt;br /&gt;
&lt;br /&gt;
==Inpaint sketch==&lt;br /&gt;
Questa funzione è servita per modificare il risultato generato dalla funzione &amp;quot;Inpaint&amp;quot;. In questo caso, è stata disegnata sopra l&#039;immagine una sciarpa rossa che dovrà fondersi al risultato precedente.&lt;br /&gt;
&lt;br /&gt;
[[File:Cat_scarf.png|600x600px]]&lt;br /&gt;
prompt: Red scarf&lt;br /&gt;
&lt;br /&gt;
[[Category:strumento]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=BABILong&amp;diff=1455</id>
		<title>BABILong</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=BABILong&amp;diff=1455"/>
		<updated>2024-03-20T13:47:26Z</updated>

		<summary type="html">&lt;p&gt;Michela: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;BABILong&#039;&#039;&#039; è un benchmark progettato per valutare le capacità del modello nell&#039;estrazione ed elaborazione di fatti distribuiti all&#039;interno di testi estesi.&lt;br /&gt;
&lt;br /&gt;
Risolvere compiti con una dimensione di contesto lunga richiede al modello di distinguere informazioni importanti da grandi quantità di dettagli irrilevanti. Per simulare questo comportamento, &amp;quot;nascondiamo&amp;quot; le frasi del compito originale tra le frasi di testo irrilevante che proviene da un&#039;altra distribuzione strettamente correlata (vedi Figura 1). &lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2024-03-20 alle 14.17.32.png|centro|miniatura|&#039;&#039;&#039;Figura1:&#039;&#039;&#039; Esempio di generazione per il dataset BABILong. Le affermazioni rilevanti per la domanda da un campione di bAbILong sono nascoste all&#039;interno di testi più ampi e irrilevanti provenienti da PG19.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Questo approccio è basato sui primi test &amp;quot;&#039;&#039;&#039;ago nel pagliaio&#039;&#039;&#039;&amp;quot;. Si tratta di un test che mira a testare la capacità di un sistema AI di &#039;&#039;&#039;identificare&#039;&#039;&#039;, &#039;&#039;&#039;estrarre&#039;&#039;&#039;, o &#039;&#039;&#039;riconoscere&#039;&#039;&#039; un&#039;informazione molto specifica o un elemento (l&#039;&amp;quot;ago&amp;quot;) da un vasto insieme di dati o informazioni non pertinenti (il &amp;quot;pagliaio&amp;quot;). Questo concetto può essere applicato in vari ambiti, come il riconoscimento di pattern, la ricerca di informazioni, il processamento del linguaggio naturale, e altri campi dell&#039;AI dove il sistema deve dimostrare di poter effettivamente &amp;quot;trovare l&#039;ago nel pagliaio&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Link ==&lt;br /&gt;
=== Paper ===&lt;br /&gt;
[https://arxiv.org/pdf/2402.10790.pdf In Search of Needles in a 11M Haystack:Recurrent Memory Finds What LLMs Miss]: paper originale&lt;br /&gt;
&lt;br /&gt;
=== Github ===&lt;br /&gt;
[https://github.com/booydar/babilong?tab=readme-ov-file BABILong: a long-context needle-in-a-haystack benchmark for LLMs]&lt;br /&gt;
&lt;br /&gt;
[[Category:benchmark]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=File:Screenshot_2024-03-20_alle_14.17.32.png&amp;diff=1454</id>
		<title>File:Screenshot 2024-03-20 alle 14.17.32.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=File:Screenshot_2024-03-20_alle_14.17.32.png&amp;diff=1454"/>
		<updated>2024-03-20T13:18:52Z</updated>

		<summary type="html">&lt;p&gt;Michela: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esempio di generazione per il dataset BABILong. Le affermazioni rilevanti per la domanda da un campione di bAbILong sono nascoste all&#039;interno di testi più ampi e irrilevanti provenienti da PG19.&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=BABILong&amp;diff=1452</id>
		<title>BABILong</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=BABILong&amp;diff=1452"/>
		<updated>2024-03-20T11:39:25Z</updated>

		<summary type="html">&lt;p&gt;Michela: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BABILong è un benchmark progettato per valutare le capacità del modello nell&#039;estrazione ed elaborazione di fatti distribuiti all&#039;interno di testi estesi.&lt;br /&gt;
&lt;br /&gt;
== Link ==&lt;br /&gt;
=== Paper ===&lt;br /&gt;
[https://arxiv.org/pdf/2402.10790.pdf In Search of Needles in a 11M Haystack:Recurrent Memory Finds What LLMs Miss]: paper originale&lt;br /&gt;
&lt;br /&gt;
=== Github ===&lt;br /&gt;
[https://github.com/booydar/babilong?tab=readme-ov-file BABILong: a long-context needle-in-a-haystack benchmark for LLMs]&lt;br /&gt;
&lt;br /&gt;
[[Category:benchmark]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=BABILong&amp;diff=1451</id>
		<title>BABILong</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=BABILong&amp;diff=1451"/>
		<updated>2024-03-20T11:04:59Z</updated>

		<summary type="html">&lt;p&gt;Michela: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Link ==&lt;br /&gt;
=== Paper ===&lt;br /&gt;
[https://arxiv.org/pdf/2402.10790.pdf In Search of Needles in a 11M Haystack:Recurrent Memory Finds What LLMs Miss]: paper originale&lt;br /&gt;
&lt;br /&gt;
=== Github ===&lt;br /&gt;
[https://github.com/booydar/babilong?tab=readme-ov-file BABILong: a long-context needle-in-a-haystack benchmark for LLMs]&lt;br /&gt;
&lt;br /&gt;
[[Category:benchmark]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=BABILong&amp;diff=1447</id>
		<title>BABILong</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=BABILong&amp;diff=1447"/>
		<updated>2024-03-20T10:55:02Z</updated>

		<summary type="html">&lt;p&gt;Michela: /* Paper */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Link ==&lt;br /&gt;
=== Paper ===&lt;br /&gt;
[https://arxiv.org/pdf/2402.10790.pdfIn Search of Needles in a 11M Haystack:Recurrent Memory Finds What LLMs Miss]: paper originale&lt;br /&gt;
&lt;br /&gt;
=== Github ===&lt;br /&gt;
[https://github.com/booydar/babilong?tab=readme-ov-file BABILong: a long-context needle-in-a-haystack benchmark for LLMs]&lt;br /&gt;
&lt;br /&gt;
[[Category:benchmark]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=BABILong&amp;diff=1446</id>
		<title>BABILong</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=BABILong&amp;diff=1446"/>
		<updated>2024-03-20T10:54:41Z</updated>

		<summary type="html">&lt;p&gt;Michela: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Link ==&lt;br /&gt;
=== Paper ===&lt;br /&gt;
[https://arxiv.org/pdf/2402.10790.pdf In Search of Needles in a 11M Haystack:&lt;br /&gt;
Recurrent Memory Finds What LLMs Miss]: paper originale&lt;br /&gt;
&lt;br /&gt;
=== Github ===&lt;br /&gt;
[https://github.com/booydar/babilong?tab=readme-ov-file BABILong: a long-context needle-in-a-haystack benchmark for LLMs]&lt;br /&gt;
&lt;br /&gt;
[[Category:benchmark]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=BABILong&amp;diff=1444</id>
		<title>BABILong</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=BABILong&amp;diff=1444"/>
		<updated>2024-03-20T10:51:14Z</updated>

		<summary type="html">&lt;p&gt;Michela: Creata pagina con &amp;quot;Category:benchmark&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:benchmark]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Txt2img_(Stable_Diffusion)&amp;diff=1414</id>
		<title>Txt2img (Stable Diffusion)</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Txt2img_(Stable_Diffusion)&amp;diff=1414"/>
		<updated>2024-03-19T13:17:29Z</updated>

		<summary type="html">&lt;p&gt;Michela: /* Altri componenti */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Txt2img è un tool di [[Stable Diffusion]] che, come intuibile, genera un&#039;immagine .png basata su un prompt testuale. Il suo ultimo aggiornamento risale al 28 Ottobre 2022.&lt;br /&gt;
&lt;br /&gt;
I parametri di Txt2img non verranno descritti con massimo dettaglio dal momento che la finalità di questa Wiki entry è di fornire delle linee guida comprovate da sperimentazione diretta.&lt;br /&gt;
&lt;br /&gt;
* Il primo obiettivo è ricondurre con praticità il livello di performance riscontrato nel modello alle relative combinazioni di parametri.&lt;br /&gt;
&lt;br /&gt;
* Il secondo obiettivo è creare collegamenti tra ciascun parametro e la corrispondente sezione dell&#039;architettura.&lt;br /&gt;
&lt;br /&gt;
= Link di approfondimento =&lt;br /&gt;
Nel caso si voglia approfondire i setting si può visitare il github relativo alla UI: [https://github.com/AUTOMATIC1111/stable-diffusion-webui]&lt;br /&gt;
&lt;br /&gt;
Nel caso si voglia approfondire l&#039;architettura generale si può visitare il repository: [https://github.com/Stability-AI/stablediffusion]&lt;br /&gt;
&lt;br /&gt;
= Overview dell&#039;interfaccia =&lt;br /&gt;
[[File:Overview_diffusion.png|700x700px]]&lt;br /&gt;
&lt;br /&gt;
* [[Sampling method (Stable Diffusion)|Sampling method]]&lt;br /&gt;
&lt;br /&gt;
* Sampling steps:&lt;br /&gt;
&lt;br /&gt;
-Tra l&#039;1 e i 15 step: l&#039;immagine è relativamente sfocata.&lt;br /&gt;
&lt;br /&gt;
-Tra i 15 e i 25 step: L&#039;immagine è abbastanza chiara e di buona qualità.&lt;br /&gt;
&lt;br /&gt;
-Tra i 25 e i 45: La qualità dell&#039;immagine è molto alta e comprende la texture.&lt;br /&gt;
&lt;br /&gt;
-Dai 45 in poi: La loss function si stabilizza e si osserva una variazione minima nella risoluzione.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:Sampling step 5.png|miniatura|5 step]]&lt;br /&gt;
![[File:10 step.png|miniatura|10 step]]&lt;br /&gt;
![[File:15 step.png|miniatura|15 step]]&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:25 step.png|miniatura|25 step]]&lt;br /&gt;
![[File:40 step.png|miniatura|40 step]]&lt;br /&gt;
![[File:60 step.png|miniatura|60 step]]&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:1 step.png|miniatura|1 step]]&lt;br /&gt;
![[File:150 step.png|miniatura|150 step]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== Upscaler: ======&lt;br /&gt;
L&#039;upscaling è il processo di aumentare la risoluzione di un&#039;immagine, cioè di ingrandirla, mantenendo al contempo la qualità visiva il più alta possibile e può essere ottenuto mediante algoritmi di interpolazione e tecniche avanzate di elaborazione delle immagini, che aggiungono dettagli artificiali per migliorare l&#039;aspetto dell&#039;immagine.&lt;br /&gt;
&lt;br /&gt;
- Hires Steps: migliorano la qualità dell&#039;immagine attraverso iterazioni aggiuntive durante il processo di generazione&lt;br /&gt;
&lt;br /&gt;
- Denoising strenght&lt;br /&gt;
&lt;br /&gt;
- Upscale by: L&#039;upscale di solito avviene dopo che l&#039;immagine è stata completamente generata. L&#039;immagine viene resa più grande senza perdere significativamente in qualità o dettaglio. Si esprime come un multiplier delle dimensioni dell&#039;immagine generata, da 1 a 4.&lt;br /&gt;
&lt;br /&gt;
* Width/Height: Dimensioni&lt;br /&gt;
&lt;br /&gt;
* Batch count: il numero di gruppi in cui i dati vengono divisi durante l&#039;elaborazione. Più batch count può significare una maggiore divisione dei dati durante il processo.&lt;br /&gt;
&lt;br /&gt;
* Batch size: quanti dati vengono elaborati contemporaneamente in ciascun gruppo. Un batch size più grande può accelerare il processo ma richiedere più memoria, mentre un batch size più piccolo può richiedere più tempo ma portare a risultati più precisi.&lt;br /&gt;
&lt;br /&gt;
* CFG Scale (Classifier Free Guidance Scale)&lt;br /&gt;
&lt;br /&gt;
* Seed: Un numero che inizializza il generatore di numeri casuali. Utilizzare lo stesso seed con gli stessi parametri di input produrrà sempre la stessa immagine. È utile per la riproducibilità o per fare piccoli aggiustamenti su un&#039;immagine esistente.&lt;br /&gt;
==Tecniche==&lt;br /&gt;
*[[TextualInversion]]&lt;br /&gt;
*[[Hypernetworks]]&lt;br /&gt;
*[[LoRA]]&lt;br /&gt;
&lt;br /&gt;
= Sperimentazioni =&lt;br /&gt;
Per effettuare un&#039;analisi bilanciata utilizzeremo gli stessi due metri di giudizio per valutare gli output:&lt;br /&gt;
&lt;br /&gt;
* Inception Score&lt;br /&gt;
* Visual Inspection by GPT4&lt;br /&gt;
&lt;br /&gt;
= Sperimentazione: Denoising Strength =&lt;br /&gt;
Questo parametro si riferisce all&#039;intensità della &#039;&#039;&#039;riduzione del rumore&#039;&#039;&#039; applicata a un&#039;immagine. Il &amp;quot;rumore&amp;quot; è il termine usato per descrivere &#039;&#039;&#039;variazioni casuali e non desiderate&#039;&#039;&#039; nei livelli di luminosità o colore di un&#039;immagine, che possono renderla &#039;&#039;&#039;granulosa&#039;&#039;&#039; o &#039;&#039;&#039;offuscata&#039;&#039;&#039; e possono distorcere i dettagli.&lt;br /&gt;
&lt;br /&gt;
* Parametri Statici:&lt;br /&gt;
** Prompt = &amp;quot;A man cooking a steak, he is in the kitchen, the stoves are on&amp;quot;&lt;br /&gt;
** Clip skip = 1&lt;br /&gt;
** Sampling Method: DPM++2M SDE SGMUniform&lt;br /&gt;
** Sampling Steps: 30&lt;br /&gt;
** Upscaler : Latent (nearest-exact)&lt;br /&gt;
** Hires Step: 0&lt;br /&gt;
** Batch count : 1&lt;br /&gt;
** Batch size: 1&lt;br /&gt;
** CFG : 15&lt;br /&gt;
(Le sperimentazioni iniziano dopo il valore 0, poiché non si sta fornendo al modello l&#039;opportunità di &amp;quot;pulire&amp;quot; o trasformare il rumore in un&#039;immagine coerente basata sul prompt fornito)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|[[File:Cooking_1.png|miniatura|200x200px|Denoising Strength = 0,1]]&lt;br /&gt;
|[[File:Cooking_2.png|miniatura|200x200px|Denoising Strength = 0,3]]&lt;br /&gt;
|[[File:Cooking_3.png|miniatura|200x200px|Denoising Strength = 0,7]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Osservazioni==&lt;br /&gt;
Impostando il Denoising Strenght a &amp;quot;0,1&amp;quot;, si nota un&#039;elevata quantità di rumore che rende indefiniti sia i dettagli che le sagome degli elementi a schermo. Aumentando de facto il valore del parametro si può osservare nettamente la differenza e l&#039;efficacia fra il valore intermedio (0,3) e quello iniziale, fino ad arrivare ad una qualità più che sufficiente impostando il parametro a &amp;quot;0,7&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Visual inspection by ChatGPT4==&lt;br /&gt;
Qui di seguito ci sarà una descrizione di ChatGPT4 sulla qualità delle immagini, in modo da comprendere se il modello riesca a individuare rumore e artefatti.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;Le tre immagini mostrano una sequenza di azioni in una cucina, con un uomo che sembra impegnato nella preparazione di un piatto di carne. Nella prima immagine, il cuoco sta flambando la carne, creando un effetto visivo spettacolare con le fiamme che si alzano dalla padella. Nella seconda, appare concentrato nel girare o condire la carne, mentre nella terza è intento a cucinare, forse verificando la cottura o aggiungendo altri ingredienti.&lt;br /&gt;
Ogni immagine ha una qualità elevata, con dettagli nitidi e colori vivaci che catturano bene la scena della cucina. L&#039;illuminazione è ben gestita, evidenziando le azioni del cuoco e dando vita agli alimenti in preparazione. La composizione è dinamica e sembra che ci sia stata attenzione nel posizionare ogni elemento per creare una scena armoniosa che guida l&#039;occhio verso il soggetto principale senza distrazioni superflue.&lt;br /&gt;
Non si notano artefatti che suggeriscono una manipolazione digitale e le immagini trasmettono un senso di autenticità e professionalità. Ciò suggerisce che probabilmente sono state scattate durante una vera sessione di cucina e che fanno parte di una serie tematica ben pianificata. In sintesi, si tratta di una rappresentazione coerente e accattivante del processo culinario in azione.&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dalla descrizione fornita, si nota come ChatGPT4 non riesca ad individuare le differenze sostanziali presenti fra le tre immagini, dimostrando comunque la capacità di saper descrivere il contesto in modo eccellente.&lt;br /&gt;
&lt;br /&gt;
= Sperimentazione: CFG Scale =&lt;br /&gt;
Questo parametro controlla quanto fedelmente il processo di generazione delle immagini &#039;&#039;&#039;segue&#039;&#039;&#039; il prompt di testo fornito. Un valore più alto del CFG Scale significa che l&#039;immagine generata sarà più &#039;&#039;&#039;aderente&#039;&#039;&#039; al testo di input, ossia seguirà più strettamente le indicazioni date. In contrasto, un valore più basso dà al modello più libertà di &#039;&#039;&#039;inventare&#039;&#039;&#039; o di essere &#039;&#039;&#039;creativo&#039;&#039;&#039;, portando a risultati che possono &#039;&#039;&#039;deviare&#039;&#039;&#039; di più dal prompt originale.&lt;br /&gt;
&lt;br /&gt;
* Parametri Statici:&lt;br /&gt;
** Prompt = &amp;quot;A man cooking a steak, he is in the kitchen, the stoves are on&amp;quot;&lt;br /&gt;
** Clip skip = 1&lt;br /&gt;
** Sampling Method: DPM++2M SDE SGMUniform&lt;br /&gt;
** Sampling Steps: 30&lt;br /&gt;
** Upscaler : Latent (nearest-exact)&lt;br /&gt;
** Hires Step: 0&lt;br /&gt;
** Batch count : 1&lt;br /&gt;
** Batch size: 1&lt;br /&gt;
** Denoising Strength = 0,7&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|[[File:CookingCFG2.png|miniatura|200x200px|CFG = 1]]&lt;br /&gt;
|[[File:CookingCFG1.png|miniatura|200x200px|CFG = 3]]&lt;br /&gt;
|[[File:Cooking_3.png|miniatura|200x200px|CFG = 15]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Osservazioni==&lt;br /&gt;
Impostando il parametro al suo valore minimo si nota come il modello segua ben poco il prompt fornito. Viene presentato un ragazzo e non un uomo, situato in un posto che ricorda appena una cucina, mentre sta cucinando del cibo che ricorda vagamente la carne. Con un valore pari a &amp;quot;3&amp;quot;, il setting è già interamente riconoscibile. In questo caso sono solo le azioni che vengono rappresentate a schermo ad essere poco chiare, poiché si nota un uomo che ha messo una fetta di carne in un forno a legna. L&#039;ultima immagine mostra un contesto totalmente credibile: sia l&#039;ambiente che le azioni sono coerenti con il prompt fornito, benché gli unici difetti facilmente visibili sono gli oggetti che l&#039;uomo tiene in mano per cucinare, essendo poco definiti.&lt;br /&gt;
&lt;br /&gt;
= Sperimentazione: Share Attention in Batch =&lt;br /&gt;
Il parametro &amp;quot;&#039;&#039;&#039;Share attention in batch&#039;&#039;&#039;&amp;quot; è una funzionalità dove l&#039;attenzione del modello, ovvero la parte che il modello &amp;quot;considera&amp;quot; più importante durante la generazione dell&#039;immagine, viene &#039;&#039;&#039;condivisa&#039;&#039;&#039; o &#039;&#039;&#039;sincronizzata&#039;&#039;&#039; tra le immagini in un batch. Quando si generano &#039;&#039;&#039;più immagini contemporaneamente (un batch)&#039;&#039;&#039;, questo parametro fa in modo che tutte le immagini nel batch diano priorità a parti simili dell&#039;input, o che le caratteristiche stilistiche siano &#039;&#039;&#039;coerenti&#039;&#039;&#039; tra di loro. Per esempio, se si stanno generando immagini di volti e si vuole che l&#039;attenzione sia focalizzata sugli occhi per tutti i volti nel batch, attivare questa opzione potrebbe aiutare a garantire che tutti i volti generati abbiano occhi ben definiti e uno stile simile. Questo può essere particolarmente utile quando l&#039;obiettivo è creare una serie di immagini che devono essere visivamente coerenti l&#039;una con l&#039;altra.&lt;br /&gt;
&lt;br /&gt;
* Parametri Statici:&lt;br /&gt;
** Prompt = &amp;quot;A man cooking a steak, he is in the kitchen, the stoves are on&amp;quot;&lt;br /&gt;
** Clip skip = 1&lt;br /&gt;
** Sampling Method: DPM++2M SDE SGMUniform&lt;br /&gt;
** Sampling Steps: 30&lt;br /&gt;
** Upscaler : Latent (nearest-exact)&lt;br /&gt;
** Hires Step: 0&lt;br /&gt;
** Batch count : 1&lt;br /&gt;
** Batch size: 1&lt;br /&gt;
** CFG : 15&lt;br /&gt;
** Denoising Strength = 0,7&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|[[File:Cookingstyle1.png|miniatura|200x200px|SAIB = off]]&lt;br /&gt;
|[[File:Cookingstyle2.png|miniatura|200x200px|SAIB = on]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Sperimentazione: Hires steps =&lt;br /&gt;
Questo parametro si riferisce ai &#039;&#039;&#039;passaggi aggiuntivi&#039;&#039;&#039; di elaborazione che vengono eseguiti per &#039;&#039;&#039;rifinire&#039;&#039;&#039; l&#039;immagine dopo la sua creazione iniziale. Aumentare l&#039;Hire ssteps può migliorare la qualità dell&#039;immagine, ma &#039;&#039;&#039;rallenterà&#039;&#039;&#039; anche il processo di generazione.&lt;br /&gt;
&lt;br /&gt;
* Parametri Statici:&lt;br /&gt;
** Prompt = &amp;quot;A man cooking a steak, he is in the kitchen, the stoves are on, &#039;&#039;&#039;the steak is being cooked on a pan&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
** Clip skip = 1&lt;br /&gt;
** Sampling Method: DPM++2M SDE SGMUniform&lt;br /&gt;
** Sampling Steps: 30&lt;br /&gt;
** Upscaler : Latent (nearest-exact)&lt;br /&gt;
** Batch count : 1&lt;br /&gt;
** Batch size: 1&lt;br /&gt;
** CFG : 15&lt;br /&gt;
** Denoising Strength = 0,7&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|[[File:CookingHS1.png|miniatura|200x200px|Hire steps = 0]]&lt;br /&gt;
|[[File:CookingHS3.png|miniatura|200x200px|Hire steps = 100]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Osservazioni==&lt;br /&gt;
In questa sperimentazione si notano poche differenze fra un&#039;immagine e l&#039;altra; fra l&#039;assenza del parametro e il suo valore massimo. L&#039;unico difetto individuabile si trova nella prima immagine dove l&#039;uomo sta cercando di cuocere la carne senza una padella.&lt;br /&gt;
&lt;br /&gt;
= Sperimentazione: SelfAttentionGuidance Integrated =&lt;br /&gt;
Questa tecnica è progettata per rendere il processo di generazione delle immagini &#039;&#039;&#039;più semplice e veloce&#039;&#039;&#039; per l&#039;utente, migliorando allo stesso tempo la &#039;&#039;&#039;qualità&#039;&#039;&#039; delle immagini prodotte. La funzionalità integrata della &amp;quot;self attention guidance&amp;quot; può aiutare a creare immagini che appaiono &#039;&#039;&#039;più realistiche&#039;&#039;&#039; e con oggetti &#039;&#039;&#039;meglio definiti&#039;&#039;&#039; senza che l&#039;utente debba effettuare configurazioni complesse o &#039;&#039;&#039;passaggi supplementari&#039;&#039;&#039;.&lt;br /&gt;
Il termine &amp;quot;&#039;&#039;&#039;Scale&#039;&#039;&#039;&amp;quot; si riferisce all&#039;intensità con cui la guida basata sull&#039;auto-attenzione viene applicata durante il processo di generazione. Una &amp;quot;Scale&amp;quot; maggiore implica &#039;&#039;&#039;un&#039;adesione più forte al prompt testuale&#039;&#039;&#039; e può portare a immagini più &#039;&#039;&#039;dettagliate e coerenti con l&#039;input&#039;&#039;&#039;, anche se potrebbe ridurre la diversità delle immagini generate.&lt;br /&gt;
Il parametro &amp;quot;&#039;&#039;&#039;Blur Sigma&#039;&#039;&#039;&amp;quot;, invece, è associato al &#039;&#039;&#039;grado di sfocatura&#039;&#039;&#039; che viene applicato alle regioni selezionate di un&#039;immagine. Questo processo agisce dove le aree con maggiore auto-attenzione — ovvero quelle parti dell&#039;immagine che il modello riconosce come più importanti o informative — vengono &#039;&#039;&#039;sfocate&#039;&#039;&#039; leggermente. L&#039;idea è che &#039;&#039;&#039;enfatizzando&#039;&#039;&#039; il lavoro del modello su queste aree sfocate, il modello può generare risultati migliori, perfezionando le parti &#039;&#039;&#039;più significative&#039;&#039;&#039; dell&#039;immagine e &#039;&#039;&#039;riducendo&#039;&#039;&#039; potenzialmente il &#039;&#039;&#039;rumore&#039;&#039;&#039; o i &#039;&#039;&#039;dettagli superflui&#039;&#039;&#039; nelle regioni meno importanti.&lt;br /&gt;
I valori di default sono i seguenti: &amp;lt;&amp;lt;&#039;&#039;&#039;Scale = 0,5&#039;&#039;&#039;&amp;gt;&amp;gt; - &amp;lt;&amp;lt;&#039;&#039;&#039;Blur sigma = 2&#039;&#039;&#039;&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Parametri Statici:&lt;br /&gt;
** Prompt = &amp;quot;A man cooking a steak, he is in the kitchen, the stoves are on, &#039;&#039;&#039;the steak is being cooked on a pan&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
** Clip skip = 1&lt;br /&gt;
** Sampling Method: DPM++2M SDE SGMUniform&lt;br /&gt;
** Sampling Steps: 30&lt;br /&gt;
** Upscaler : Latent (nearest-exact)&lt;br /&gt;
** Hires Step: 0&lt;br /&gt;
** Batch count : 1&lt;br /&gt;
** Batch size: 1&lt;br /&gt;
** CFG : 15&lt;br /&gt;
** Denoising Strength = 0,7&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|[[File:SAG_none_-_default.jpg|miniatura|200x200px|Tecnica omessa e valori default]]&lt;br /&gt;
|[[File:SAG_Scale.jpg|miniatura|200x200px|SAG Scale (da sinistra): -2; 1; 5]]&lt;br /&gt;
|[[File:SAG_BS.jpg|miniatura|200x200px|SAG BS (da sinistra): 0,1; 5; 10]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Osservazioni==&lt;br /&gt;
Nella prima immagine si osserva il confronto tra l&#039;immagine generata senza la tecnica del SAG e quella generata con quest&#039;ultima. Si evidenzia come l&#039;immagine generata con la tecnica con valori impostati di default sia di qualità inferiore alla prima, suggerendo che bisogna regolare i parametri di &amp;quot;scale&amp;quot; e di &amp;quot;blur sigma&amp;quot;. Per quanto riguarda le immagini generate variando solo il parametro di scale, si nota come si ottengano dei pessimi risultati impostando dei valori sia troppo bassi che troppo alti, e che quindi sia necessario lavorare nei valori intermedi (i risultati cambiano in base alla complessità del prompt). Relativamente al parametro di Blur sigma, si notano poche differenze fra le tre immagini, benché ci siano errori evidenti sul modo in cui l&#039;uomo tenga in mano degli oggetti difficilmente identificabili, soprattutto nei valori &amp;quot;0,1&amp;quot; e &amp;quot;10&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=Altri componenti=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|[[File:altrefunzioni.png|miniatura|500x500px|Tecniche]]&lt;br /&gt;
|}&lt;br /&gt;
*[[ControlNet]]&lt;br /&gt;
&lt;br /&gt;
*[[DynamicThresholding (CFG-Fix)]]&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;FreeU&#039;&#039;&#039;: un componente aggiuntivo di Stable Diffusion che migliora la qualità dell&#039;immagine modificando il &#039;&#039;&#039;denoiser&#039;&#039;&#039; del modello. Il miglioramento avviene senza costi: nessun addestramento, nessun parametro aggiuntivo introdotto e nessun aumento della memoria o del tempo di campionamento.&lt;br /&gt;
&lt;br /&gt;
*[[HyperTile]]&lt;br /&gt;
&lt;br /&gt;
*[[Kohya HRFix]]&lt;br /&gt;
&lt;br /&gt;
*[[LatentModifier]]&lt;br /&gt;
&lt;br /&gt;
*[[MultiDiffusion]]&lt;br /&gt;
&lt;br /&gt;
*[[Never OOM]]&lt;br /&gt;
&lt;br /&gt;
*[[Category:strumento]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Pagina_principale&amp;diff=1394</id>
		<title>Pagina principale</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Pagina_principale&amp;diff=1394"/>
		<updated>2024-03-19T09:09:05Z</updated>

		<summary type="html">&lt;p&gt;Michela: /* Comprensione del Testo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aiuto ==&lt;br /&gt;
* [[Linee Guida della Wiki AI Lab]]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Guida utente]: Una risorsa completa per i nuovi utenti di MediaWiki.&lt;br /&gt;
* [[Aiuto:Categorie_di_Wiki_AI_Lab]]: Guida alle categorie specifiche del Wiki AI Lab.&lt;br /&gt;
* [[Aiuto:Utilizzo_API]]: Utilizzo dell&#039;API.&lt;br /&gt;
* [[Speciale:TutteLePagine|S]]&amp;lt;nowiki/&amp;gt;[[Speciale:TutteLePagine|peciale:TutteLePagine]]&lt;br /&gt;
* [[Ontologia della Wiki AI]]&lt;br /&gt;
&lt;br /&gt;
== Architetture ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Nome&lt;br /&gt;
! Descrizione&lt;br /&gt;
|-&lt;br /&gt;
| [[Recurrent Neural Network (RNN)]]&lt;br /&gt;
| Rete neurale ricorrente&lt;br /&gt;
|-&lt;br /&gt;
| [[LSTM]]&lt;br /&gt;
| Long Short-Term Memory, una forma di rete neurale ricorrente&lt;br /&gt;
|-&lt;br /&gt;
| [[Generative Adversarial Networks (GAN)]]&lt;br /&gt;
| Reti che imparano a generare nuovi dati simili a quelli su cui sono addestrate&lt;br /&gt;
|-&lt;br /&gt;
| [[AutoEncoder (AE)]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Variational AutoEncoder (RAE)]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Reinforcement Learning From Human Feedback (RLHF)]]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;categorytree mode=&amp;quot;pages&amp;quot;&amp;gt;architettura&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Modelli ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;categorytree mode=&amp;quot;all&amp;quot;&amp;gt;modelli&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Linguaggio Naturale ===&lt;br /&gt;
* [[GPT-4]]: La quarta generazione del modello di linguaggio GPT.&lt;br /&gt;
* [[GPT-3.5 Turbo]]: Predecessore di GPT-4, ancora ampiamente utilizzato.&lt;br /&gt;
* [[GPT-3.5 Turbo vs. GPT-4]]: Modelli a confronto.&lt;br /&gt;
* [[Mistral]]: Modello per la generazione di testo.&lt;br /&gt;
* [[Llama]]: LLM di Meta &lt;br /&gt;
* [[PaLM]]: LLM di Google&lt;br /&gt;
* [https://www.cnbc.com/2024/02/08/google-gemini-ai-launches-in-new-app-subscription.html Bard AI]: Nome precedente dell&#039;AI di Google, rinominata in [[Gemini]] nel Febbraio 2024&lt;br /&gt;
* [[Alpaca]]&lt;br /&gt;
&lt;br /&gt;
==== Function Calling ====&lt;br /&gt;
&lt;br /&gt;
* [[Gorilla OpenFunctions]]&lt;br /&gt;
&lt;br /&gt;
=== Generazione Immagini ===&lt;br /&gt;
* [[Dall-e]]: Modello di OpenAI per la creazione di immagini.&lt;br /&gt;
* [[Midjourney]]: Principale competitor di Dall-e nella generazione di immagini&lt;br /&gt;
* [[Stable Diffusion]]: Generatore di immagini sviluppato da Stability AI&lt;br /&gt;
* [[Zero 1-to-3]]: Generazione immagini 3D da 1D&lt;br /&gt;
&lt;br /&gt;
=== Generazione Video ===&lt;br /&gt;
* [[Sora]]: Modello OpenAI per la creazione di contenuti video.&lt;br /&gt;
&lt;br /&gt;
=== Generazione Audio ===&lt;br /&gt;
* [[Magenta]]: Progetto di Google che mira a utilizzare l&#039;apprendimento automatico per creare arte e musica.&lt;br /&gt;
&lt;br /&gt;
== Framework ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;categorytree mode=&amp;quot;pages&amp;quot;&amp;gt;Framework  &amp;lt;/categorytree&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Nome&lt;br /&gt;
! Descrizione&lt;br /&gt;
|-&lt;br /&gt;
| [[Magenta (Google)]]&lt;br /&gt;
| Progetto di ricerca di Google su arte e musica tramite IA&lt;br /&gt;
|-&lt;br /&gt;
| [[IKEVA-HAI (IULM AI Lab)]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|[[RecurrentGPT]]&lt;br /&gt;
|Modello avanzato di LLM che integra le capacità di RNN e LSTM&lt;br /&gt;
|-&lt;br /&gt;
|[[Chain of Density Prompting]]&lt;br /&gt;
|Tecnica che crea riepiloghi altamente condensati ma ricchi di informazioni da testi di lunga durata&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Paper ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;categorytree mode=&amp;quot;pages&amp;quot;&amp;gt;paper &amp;lt;/categorytree&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NLP (Natural Language Processing) ===&lt;br /&gt;
* [[Language Models are Few-Shot Learners (2020)]]&lt;br /&gt;
* [[A Theory for Emergence of Complex Skills in Language Models (2023)]]: Teorie sull&#039;emergere di competenze complesse nei modelli di linguaggio.&lt;br /&gt;
* [[Why think step by step? Reasoning emerges from the locality of experience (2023)]]&lt;br /&gt;
* [[Functional Benchmarks for Robust Evaluation of Reasoning Performance, and the Reasoning Gap (29/02/2024)]]&lt;br /&gt;
&lt;br /&gt;
=== Musica ===&lt;br /&gt;
==== MIDI ====&lt;br /&gt;
* [[DeepJ: Style-Specific Music Generation (2018)]]&lt;br /&gt;
* [[Automatic Stylistic Composition of Bach Chorales With Deep LSTM (2017)]]&lt;br /&gt;
* [[Harmonizing Music the Boltzmann Way (1994)]]&lt;br /&gt;
&lt;br /&gt;
== Concetti ==&lt;br /&gt;
=== Matematica ===&lt;br /&gt;
* [[Funzione Obiettivo (loss)]]&lt;br /&gt;
&lt;br /&gt;
=== Apprendimento ===&lt;br /&gt;
* [[Few-shot learning]]&lt;br /&gt;
* [[Function Calling]]&lt;br /&gt;
* [[Fine-tuning]]&lt;br /&gt;
* [[Contamination Testing]]&lt;br /&gt;
&lt;br /&gt;
=== Esecuzione e Inferenza ===&lt;br /&gt;
* [[Quantizzazione]]: Riduzione della precisione dei numeri per accelerare l&#039;esecuzione dei modelli.&lt;br /&gt;
* [[Metodi di Decoding]]: Tecniche per generare output dai modelli di linguaggio.&lt;br /&gt;
&lt;br /&gt;
=== Benchmarking ===&lt;br /&gt;
* [[Creazione e Valutazione di Benchmark IA: Processo e Principi]]&lt;br /&gt;
* [[Adversarial Endings]]&lt;br /&gt;
&lt;br /&gt;
=== Ragionamento negli LLM (Large Language Models) ===&lt;br /&gt;
* [[Step by Step]]&lt;br /&gt;
* [[Chain of Thought]]&lt;br /&gt;
* [[Reasoning Gap]]&lt;br /&gt;
* [[Scaling Laws]]&lt;br /&gt;
&lt;br /&gt;
== Dataset ==&lt;br /&gt;
* [https://paperswithcode.com/paper/datasets-for-large-language-models-a Datasets for Large Language Models: A Comprehensive Survey]&lt;br /&gt;
* [https://colinraffel.com/projects/lmd/#get Lakh MIDI Dataset]: Dataset di file MIDI per la ricerca musicale.&lt;br /&gt;
* [[DocRED: A Large-Scale Document-Level Relation Extraction Dataset]]&lt;br /&gt;
&lt;br /&gt;
== Benchmarks ==&lt;br /&gt;
=== Modelli di Linguaggio ===&lt;br /&gt;
&lt;br /&gt;
==== Benchmark Aggregati ====&lt;br /&gt;
* [[MMLU]]&lt;br /&gt;
&lt;br /&gt;
==== Capacità di Ragionamento ====&lt;br /&gt;
&lt;br /&gt;
* [[HellaSwag]]&lt;br /&gt;
* [[DROP]]&lt;br /&gt;
* [[WinoGrande]] - Sakaguchi et al., 2021&lt;br /&gt;
* [[Arc C]]&lt;br /&gt;
* PIQA - Bisk et al., 2020&lt;br /&gt;
* SIQA - Sap et al., 2019&lt;br /&gt;
* CommonsenseQA - Talmor et al., 2018&lt;br /&gt;
&lt;br /&gt;
==== Conoscenza ====&lt;br /&gt;
* [[NaturalQuestions]] - Kwiatkowski et al.,2019&lt;br /&gt;
* [https://nlp.cs.washington.edu/triviaqa/ TriviaQA] - Joshi et al., 2017&lt;br /&gt;
&lt;br /&gt;
==== Codice ====&lt;br /&gt;
* [[HumanEval]] - Chen et al., 2021&lt;br /&gt;
* [[MBPP]] - Austin et al., 2021&lt;br /&gt;
&lt;br /&gt;
==== Comprensione del Testo ====&lt;br /&gt;
* [[SQuAD]] - Rajpurkar et al., 2018&lt;br /&gt;
* [[QuAC]] - Choi et al., 2018&lt;br /&gt;
* [[BoolQ]] - Clark et al., 2019)&lt;br /&gt;
* [[BABILong]] - Yuri Kuratov et al., 2024&lt;br /&gt;
&lt;br /&gt;
==== Matematica ====&lt;br /&gt;
* [[GSM8K]] - Cobbe et al., 2021&lt;br /&gt;
* [[MATH]] - Hendrycks et al., 2021&lt;br /&gt;
&lt;br /&gt;
=== Embeddings ===&lt;br /&gt;
* MIRACL&lt;br /&gt;
* MTEB&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
* [[HMDB: a large human motion database]]&lt;br /&gt;
* [[UCF101 - Action Recognition Data Set]]&lt;br /&gt;
&lt;br /&gt;
== Servizi Cloud ==&lt;br /&gt;
&lt;br /&gt;
=== Google ===&lt;br /&gt;
* [[Vertex AI]]&lt;br /&gt;
* [[Model Garden]]&lt;br /&gt;
&lt;br /&gt;
== Tutorial AI Lab ==&lt;br /&gt;
&lt;br /&gt;
=== PyTorch ===&lt;br /&gt;
&lt;br /&gt;
* [[Come creare un tensore su Pytorch]]&lt;br /&gt;
&lt;br /&gt;
* [[Come creare una RNN da zero con PyTorch]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Chain_of_Density_Prompting&amp;diff=1292</id>
		<title>Chain of Density Prompting</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Chain_of_Density_Prompting&amp;diff=1292"/>
		<updated>2024-03-15T11:22:08Z</updated>

		<summary type="html">&lt;p&gt;Michela: /* Paper */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:framework]]&lt;br /&gt;
Il &#039;&#039;&#039;Chain of Density&#039;&#039;&#039; è una nuova tecnica che crea riepiloghi altamente condensati, ma ricchi di informazioni da testi di lunga durata. Funziona estraendo in modo iterativo le &#039;&#039;&#039;[[entità]]&#039;&#039;&#039; essenziali dal testo di partenza e riscrivendo il riassunto per incorporare ogni volta più entità (senza perdere le entità precedenti), risultando in una &amp;quot;&#039;&#039;&#039;catena&#039;&#039;&#039;&amp;quot; &#039;&#039;&#039;di riassunti&#039;&#039;&#039; sempre più fitti.&lt;br /&gt;
&lt;br /&gt;
Questa implementazione richiede un lungo input di testo (ad esempio articoli, blog, white paper, documenti) e lo esegue attraverso cicli multipli di estrazione delle entità e riscrittura del riepilogo per produrre un riassunto finale denso contenente solo le informazioni critiche dalla fonte.&lt;br /&gt;
&lt;br /&gt;
I principali &#039;&#039;&#039;vantaggi&#039;&#039;&#039; dell’approccio includono:&lt;br /&gt;
&lt;br /&gt;
* Produrre riassunti altamente compressi, ma fedeli&lt;br /&gt;
* Catturare dettagli e concetti chiave da testi complessi e di lunga durata&lt;br /&gt;
* Distillazione iterativa della densità delle informazioni&lt;br /&gt;
* Sfruttare le funzionalità di modelli linguistici di grandi dimensioni per il riepilogo&lt;br /&gt;
&lt;br /&gt;
== Link ==&lt;br /&gt;
=== Paper ===&lt;br /&gt;
[https://arxiv.org/pdf/2309.04269.pdf From Sparse to Dense: GPT-4 Summarization with Chain of Density Prompting (Settembre 2023)]: paper originale&lt;br /&gt;
&lt;br /&gt;
=== Github ===&lt;br /&gt;
[https://github.com/richawo/chain-of-density Chain of Density]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Chain_of_Density_Prompting&amp;diff=1291</id>
		<title>Chain of Density Prompting</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Chain_of_Density_Prompting&amp;diff=1291"/>
		<updated>2024-03-15T11:21:40Z</updated>

		<summary type="html">&lt;p&gt;Michela: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:framework]]&lt;br /&gt;
Il &#039;&#039;&#039;Chain of Density&#039;&#039;&#039; è una nuova tecnica che crea riepiloghi altamente condensati, ma ricchi di informazioni da testi di lunga durata. Funziona estraendo in modo iterativo le &#039;&#039;&#039;[[entità]]&#039;&#039;&#039; essenziali dal testo di partenza e riscrivendo il riassunto per incorporare ogni volta più entità (senza perdere le entità precedenti), risultando in una &amp;quot;&#039;&#039;&#039;catena&#039;&#039;&#039;&amp;quot; &#039;&#039;&#039;di riassunti&#039;&#039;&#039; sempre più fitti.&lt;br /&gt;
&lt;br /&gt;
Questa implementazione richiede un lungo input di testo (ad esempio articoli, blog, white paper, documenti) e lo esegue attraverso cicli multipli di estrazione delle entità e riscrittura del riepilogo per produrre un riassunto finale denso contenente solo le informazioni critiche dalla fonte.&lt;br /&gt;
&lt;br /&gt;
I principali &#039;&#039;&#039;vantaggi&#039;&#039;&#039; dell’approccio includono:&lt;br /&gt;
&lt;br /&gt;
* Produrre riassunti altamente compressi, ma fedeli&lt;br /&gt;
* Catturare dettagli e concetti chiave da testi complessi e di lunga durata&lt;br /&gt;
* Distillazione iterativa della densità delle informazioni&lt;br /&gt;
* Sfruttare le funzionalità di modelli linguistici di grandi dimensioni per il riepilogo&lt;br /&gt;
&lt;br /&gt;
== Link ==&lt;br /&gt;
=== Paper ===&lt;br /&gt;
[https://arxiv.org/pdf/2309.04269.pdf Chain of Density: From Sparse to Dense: GPT-4 Summarization with Chain of Density Prompting (Settembre 2023)]: paper originale&lt;br /&gt;
&lt;br /&gt;
=== Github ===&lt;br /&gt;
[https://github.com/richawo/chain-of-density Chain of Density]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Chain_of_Density_Prompting&amp;diff=1290</id>
		<title>Chain of Density Prompting</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Chain_of_Density_Prompting&amp;diff=1290"/>
		<updated>2024-03-15T11:16:22Z</updated>

		<summary type="html">&lt;p&gt;Michela: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:framework]]&lt;br /&gt;
Il &#039;&#039;&#039;Chain of Density&#039;&#039;&#039; è una nuova tecnica che crea riepiloghi altamente condensati, ma ricchi di informazioni da testi di lunga durata. Funziona estraendo in modo iterativo le &#039;&#039;&#039;[[entità]]&#039;&#039;&#039; essenziali dal testo di partenza e riscrivendo il riassunto per incorporare ogni volta più entità (senza perdere le entità precedenti), risultando in una &amp;quot;&#039;&#039;&#039;catena&#039;&#039;&#039;&amp;quot; &#039;&#039;&#039;di riassunti&#039;&#039;&#039; sempre più fitti.&lt;br /&gt;
&lt;br /&gt;
Questa implementazione richiede un lungo input di testo (ad esempio articoli, blog, white paper, documenti) e lo esegue attraverso cicli multipli di estrazione delle entità e riscrittura del riepilogo per produrre un riassunto finale denso contenente solo le informazioni critiche dalla fonte.&lt;br /&gt;
&lt;br /&gt;
I principali &#039;&#039;&#039;vantaggi&#039;&#039;&#039; dell’approccio includono:&lt;br /&gt;
&lt;br /&gt;
* Produrre riassunti altamente compressi, ma fedeli&lt;br /&gt;
* Catturare dettagli e concetti chiave da testi complessi e di lunga durata&lt;br /&gt;
* Distillazione iterativa della densità delle informazioni&lt;br /&gt;
* Sfruttare le funzionalità di modelli linguistici di grandi dimensioni per il riepilogo&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Chain_of_Density_Prompting&amp;diff=1289</id>
		<title>Chain of Density Prompting</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Chain_of_Density_Prompting&amp;diff=1289"/>
		<updated>2024-03-15T11:14:17Z</updated>

		<summary type="html">&lt;p&gt;Michela: Creata pagina con &amp;quot;Category:framework&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:framework]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Pagina_principale&amp;diff=1288</id>
		<title>Pagina principale</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Pagina_principale&amp;diff=1288"/>
		<updated>2024-03-15T11:13:53Z</updated>

		<summary type="html">&lt;p&gt;Michela: /* Framework */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aiuto ==&lt;br /&gt;
* [[Linee Guida della Wiki AI Lab]]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Guida utente]: Una risorsa completa per i nuovi utenti di MediaWiki.&lt;br /&gt;
* [[Aiuto:Categorie_di_Wiki_AI_Lab]]: Guida alle categorie specifiche del Wiki AI Lab.&lt;br /&gt;
* [[Aiuto:Utilizzo_API]]: Utilizzo dell&#039;API.&lt;br /&gt;
* [[Speciale:TutteLePagine|S]]&amp;lt;nowiki/&amp;gt;[[Speciale:TutteLePagine|peciale:TutteLePagine]]&lt;br /&gt;
* [[Ontologia della Wiki AI]]&lt;br /&gt;
&lt;br /&gt;
== Architetture ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Nome&lt;br /&gt;
! Descrizione&lt;br /&gt;
|-&lt;br /&gt;
| [[Recurrent Neural Network (RNN)]]&lt;br /&gt;
| Rete neurale ricorrente&lt;br /&gt;
|-&lt;br /&gt;
| [[LSTM]]&lt;br /&gt;
| Long Short-Term Memory, una forma di rete neurale ricorrente&lt;br /&gt;
|-&lt;br /&gt;
| [[Generative Adversarial Networks (GAN)]]&lt;br /&gt;
| Reti che imparano a generare nuovi dati simili a quelli su cui sono addestrate&lt;br /&gt;
|-&lt;br /&gt;
| [[AutoEncoder (AE)]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Variational AutoEncoder (RAE)]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Reinforcement Learning From Human Feedback (RLHF)]]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;categorytree mode=&amp;quot;pages&amp;quot;&amp;gt;architettura&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Modelli ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;categorytree mode=&amp;quot;all&amp;quot;&amp;gt;modelli&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Linguaggio Naturale ===&lt;br /&gt;
* [[GPT-4]]: La quarta generazione del modello di linguaggio GPT.&lt;br /&gt;
* [[GPT-3.5 Turbo]]: Predecessore di GPT-4, ancora ampiamente utilizzato.&lt;br /&gt;
* [[GPT-3.5 Turbo vs. GPT-4]]: Modelli a confronto.&lt;br /&gt;
* [[Mistral]]: Modello per la generazione di testo.&lt;br /&gt;
* [[Llama]]: LLM di Meta &lt;br /&gt;
* [[PaLM]]: LLM di Google&lt;br /&gt;
* [https://www.cnbc.com/2024/02/08/google-gemini-ai-launches-in-new-app-subscription.html Bard AI]: Nome precedente dell&#039;AI di Google, rinominata in [[Gemini]] nel Febbraio 2024&lt;br /&gt;
* [[Alpaca]]&lt;br /&gt;
&lt;br /&gt;
==== Function Calling ====&lt;br /&gt;
&lt;br /&gt;
* [[Gorilla OpenFunctions]]&lt;br /&gt;
&lt;br /&gt;
=== Generazione Immagini ===&lt;br /&gt;
* [[Dall-e]]: Modello di OpenAI per la creazione di immagini.&lt;br /&gt;
* [[Midjourney]]: Principale competitor di Dall-e nella generazione di immagini&lt;br /&gt;
* [[Stable Diffusion]]: Generatore di immagini sviluppato da Stability AI&lt;br /&gt;
* [[Zero 1-to-3]]: Generazione immagini 3D da 1D&lt;br /&gt;
&lt;br /&gt;
=== Generazione Video ===&lt;br /&gt;
* [[Sora]]: Modello OpenAI per la creazione di contenuti video.&lt;br /&gt;
&lt;br /&gt;
=== Generazione Audio ===&lt;br /&gt;
* [[Magenta]]: Progetto di Google che mira a utilizzare l&#039;apprendimento automatico per creare arte e musica.&lt;br /&gt;
&lt;br /&gt;
== Framework ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;categorytree mode=&amp;quot;pages&amp;quot;&amp;gt;Framework  &amp;lt;/categorytree&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Nome&lt;br /&gt;
! Descrizione&lt;br /&gt;
|-&lt;br /&gt;
| [[Magenta (Google)]]&lt;br /&gt;
| Progetto di ricerca di Google su arte e musica tramite IA&lt;br /&gt;
|-&lt;br /&gt;
| [[IKEVA-HAI (IULM AI Lab)]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|[[RecurrentGPT]]&lt;br /&gt;
|Modello avanzato di LLM che integra le capacità di RNN e LSTM&lt;br /&gt;
|-&lt;br /&gt;
|[[Chain of Density Prompting]]&lt;br /&gt;
|Tecnica che crea riepiloghi altamente condensati ma ricchi di informazioni da testi di lunga durata&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Paper ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;categorytree mode=&amp;quot;pages&amp;quot;&amp;gt;paper &amp;lt;/categorytree&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NLP (Natural Language Processing) ===&lt;br /&gt;
* [[Language Models are Few-Shot Learners (2020)]]&lt;br /&gt;
* [[A Theory for Emergence of Complex Skills in Language Models (2023)]]: Teorie sull&#039;emergere di competenze complesse nei modelli di linguaggio.&lt;br /&gt;
* [[Why think step by step? Reasoning emerges from the locality of experience (2023)]]&lt;br /&gt;
* [[Functional Benchmarks for Robust Evaluation of Reasoning Performance, and the Reasoning Gap (29/02/2024)]]&lt;br /&gt;
&lt;br /&gt;
=== Musica ===&lt;br /&gt;
==== MIDI ====&lt;br /&gt;
* [[DeepJ: Style-Specific Music Generation (2018)]]&lt;br /&gt;
* [[Automatic Stylistic Composition of Bach Chorales With Deep LSTM (2017)]]&lt;br /&gt;
* [[Harmonizing Music the Boltzmann Way (1994)]]&lt;br /&gt;
&lt;br /&gt;
== Concetti ==&lt;br /&gt;
=== Matematica ===&lt;br /&gt;
* [[Funzione Obiettivo (loss)]]&lt;br /&gt;
&lt;br /&gt;
=== Apprendimento ===&lt;br /&gt;
* [[Few-shot learning]]&lt;br /&gt;
* [[Function Calling]]&lt;br /&gt;
* [[Fine-tuning]]&lt;br /&gt;
* [[Contamination Testing]]&lt;br /&gt;
&lt;br /&gt;
=== Esecuzione e Inferenza ===&lt;br /&gt;
* [[Quantizzazione]]: Riduzione della precisione dei numeri per accelerare l&#039;esecuzione dei modelli.&lt;br /&gt;
* [[Metodi di Decoding]]: Tecniche per generare output dai modelli di linguaggio.&lt;br /&gt;
&lt;br /&gt;
=== Benchmarking ===&lt;br /&gt;
* [[Creazione e Valutazione di Benchmark IA: Processo e Principi]]&lt;br /&gt;
* [[Adversarial Endings]]&lt;br /&gt;
&lt;br /&gt;
=== Ragionamento negli LLM (Large Language Models) ===&lt;br /&gt;
* [[Step by Step]]&lt;br /&gt;
* [[Chain of Thought]]&lt;br /&gt;
* [[Reasoning Gap]]&lt;br /&gt;
* [[Scaling Laws]]&lt;br /&gt;
&lt;br /&gt;
== Dataset ==&lt;br /&gt;
* [https://paperswithcode.com/paper/datasets-for-large-language-models-a Datasets for Large Language Models: A Comprehensive Survey]&lt;br /&gt;
* [https://colinraffel.com/projects/lmd/#get Lakh MIDI Dataset]: Dataset di file MIDI per la ricerca musicale.&lt;br /&gt;
* [[DocRED: A Large-Scale Document-Level Relation Extraction Dataset]]&lt;br /&gt;
&lt;br /&gt;
== Benchmarks ==&lt;br /&gt;
=== Modelli di Linguaggio ===&lt;br /&gt;
&lt;br /&gt;
==== Benchmark Aggregati ====&lt;br /&gt;
* [[MMLU]]&lt;br /&gt;
&lt;br /&gt;
==== Capacità di Ragionamento ====&lt;br /&gt;
&lt;br /&gt;
* [[HellaSwag]]&lt;br /&gt;
* [[DROP]]&lt;br /&gt;
* [[WinoGrande]] - Sakaguchi et al., 2021&lt;br /&gt;
* [[Arc C]]&lt;br /&gt;
* PIQA - Bisk et al., 2020&lt;br /&gt;
* SIQA - Sap et al., 2019&lt;br /&gt;
* CommonsenseQA - Talmor et al., 2018&lt;br /&gt;
&lt;br /&gt;
==== Conoscenza ====&lt;br /&gt;
* [[NaturalQuestions]] - Kwiatkowski et al.,2019&lt;br /&gt;
* [https://nlp.cs.washington.edu/triviaqa/ TriviaQA] - Joshi et al., 2017&lt;br /&gt;
&lt;br /&gt;
==== Codice ====&lt;br /&gt;
* [[HumanEval]] - Chen et al., 2021&lt;br /&gt;
* [[MBPP]] - Austin et al., 2021&lt;br /&gt;
&lt;br /&gt;
==== Comprensione del Testo ====&lt;br /&gt;
* [[SQuAD]] - Rajpurkar et al., 2018&lt;br /&gt;
* [[QuAC]] - Choi et al., 2018&lt;br /&gt;
* [[BoolQ]] - Clark et al., 2019)&lt;br /&gt;
&lt;br /&gt;
==== Matematica ====&lt;br /&gt;
* [[GSM8K]] - Cobbe et al., 2021&lt;br /&gt;
* [[MATH]] - Hendrycks et al., 2021&lt;br /&gt;
&lt;br /&gt;
=== Embeddings ===&lt;br /&gt;
* MIRACL&lt;br /&gt;
* MTEB&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
* [[HMDB: a large human motion database]]&lt;br /&gt;
* [[UCF101 - Action Recognition Data Set]]&lt;br /&gt;
&lt;br /&gt;
== Servizi Cloud ==&lt;br /&gt;
&lt;br /&gt;
=== Google ===&lt;br /&gt;
* [[Vertex AI]]&lt;br /&gt;
* [[Model Garden]]&lt;br /&gt;
&lt;br /&gt;
== Tutorial AI Lab ==&lt;br /&gt;
&lt;br /&gt;
=== PyTorch ===&lt;br /&gt;
&lt;br /&gt;
* [[Come creare un tensore su Pytorch]]&lt;br /&gt;
&lt;br /&gt;
* [[Come creare una RNN da zero con PyTorch]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Magenta&amp;diff=1287</id>
		<title>Magenta</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Magenta&amp;diff=1287"/>
		<updated>2024-03-15T10:37:47Z</updated>

		<summary type="html">&lt;p&gt;Michela: /* Obbiettivo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Magenta&#039;&#039;&#039; è un progetto di ricerca di &#039;&#039;&#039;Google&#039;&#039;&#039; che si concentra sull&#039;applicazione di &#039;&#039;&#039;intelligenza artificiale&#039;&#039;&#039; (&#039;&#039;&#039;AI&#039;&#039;&#039;) alla creazione di musica e arte. Il progetto Magenta mira a esplorare come l&#039;AI può essere utilizzata per ampliare e arricchire il processo creativo umano.&lt;br /&gt;
&lt;br /&gt;
Magenta offre una serie di strumenti, modelli e risorse per la generazione di musica, il riconoscimento di pattern musicali, la composizione, l&#039;armonizzazione e altro ancora. Il progetto si basa su tecnologie avanzate di &#039;&#039;&#039;machine learning&#039;&#039;&#039;, come le reti neurali, per creare modelli che possano apprendere dai dati musicali esistenti e generare nuova musica in modo autonomo.&lt;br /&gt;
&lt;br /&gt;
==Strumenti e risorse==&lt;br /&gt;
Tra gli strumenti e le risorse fornite da Magenta, vi sono:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Magenta Studio&#039;&#039;&#039;: Un&#039;applicazione basata su Ableton Live che offre strumenti interattivi per la generazione, l&#039;esplorazione e la modifica della musica generata da modelli di Magenta.&lt;br /&gt;
* &#039;&#039;&#039;[[MusicVAE]]&#039;&#039;&#039;: Un modello di machine learning che utilizza i VAE (Variational Autoencoder) per la generazione di sequenze musicali coerenti e creative. MusicVAE può essere utilizzato per generare nuove melodie, arrangiamenti e armonie.&lt;br /&gt;
* &#039;&#039;&#039;NSynth&#039;&#039;&#039;: Un modello che utilizza la sintesi additiva neurale per creare nuovi suoni musicali che combinano caratteristiche di suoni esistenti.&lt;br /&gt;
* &#039;&#039;&#039;Piano Genie&#039;&#039;&#039;: Un modello che permette di generare musica utilizzando una tastiera semplificata, consentendo anche a coloro che non sono musicisti esperti di creare musica in modo intuitivo.&lt;br /&gt;
&lt;br /&gt;
==Obbiettivo==&lt;br /&gt;
Magenta è progettato per essere uno strumento creativo e collaborativo, offrendo sia strumenti per artisti e musicisti esperti che risorse accessibili per coloro che vogliono esplorare l&#039;AI nella creazione musicale. Il progetto è stato sviluppato con l&#039;obiettivo di combinare l&#039;intelligenza artificiale con l&#039;ispirazione umana, consentendo un&#039;interazione creativa e stimolante tra l&#039;AI e gli artisti.&lt;br /&gt;
&lt;br /&gt;
[[Category:framework]]&lt;br /&gt;
[[Category:Musica]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Llama&amp;diff=1286</id>
		<title>Llama</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Llama&amp;diff=1286"/>
		<updated>2024-03-15T10:37:08Z</updated>

		<summary type="html">&lt;p&gt;Michela: /* Tutorial */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Rilasciato da [[Meta]]&lt;br /&gt;
* Data: Febbraio 2023&lt;br /&gt;
* Accesso: open source&lt;br /&gt;
&lt;br /&gt;
Modello Open Source rilasciato da [[Meta]] nel Febbraio 2023.&lt;br /&gt;
La prima versione contava  7, 13, 33 e 65 B di parametri.&lt;br /&gt;
&lt;br /&gt;
La seconda versione, rilasciata a giugno 2023, viene allenata su di un nuovo mix di dati pubblici, maggiore del 40% rispetto alla prima versione, la lunghezza del contesto viene raddoppiata, e viene adottato un nuovo modello di [[attention]], chiamato [[Attention|grouped-query attention]]. Vengono rilasciati modelli da 7,13 e 70B di parametri. Viene anche rilasciata Llama 2-Chat, una versione con [[fine-tuning]] ottimizzata per use case conversazionali.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ragione per lo sviluppo ===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;The capabilities of LLMs are remarkable considering the seemingly straightforward nature of the training methodology. Auto-regressive transformers are pretrained on an extensive corpus of self-supervised data, followed by alignment with human preferences via techniques such as Reinforcement Learning with Human Feedback (RLHF). Although the training methodology is simple, high computational requirements have limited the development of LLMs to a few players. There have been public releases of pretrained LLMs (such as BLOOM (Scao et al., 2022), LLaMa-1 (Touvron et al., 2023), and Falcon (Penedo et al., 2023)) that match the performance of closed pretrained competitors like GPT-3 (Brown et al., 2020) and Chinchilla (Hoffmann et al., 2022), but none of these models are suitable substitutes for closed “product” LLMs, such as ChatGPT, BARD, and Claude. These closed product LLMs are heavily fine-tuned to align with human preferences, which greatly enhances their usability and safety. This step can require significant costs in compute and human annotation, and is often not transparent or easily reproducible, limiting progress within the community to advance AI alignment research.&amp;quot; da &amp;quot;Llama 2: Open Foundation and Fine-Tuned Chat Models&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* [https://llama.meta.com Pagina ufficiale]&lt;br /&gt;
* [https://arxiv.org/abs/2302.13971 Paper LLama 1 (27 Feb 2023)]&lt;br /&gt;
* [https://arxiv.org/abs/2302.13971 Paper LLama 2]&lt;br /&gt;
&lt;br /&gt;
=== Tutorial ===&lt;br /&gt;
* [https://www.deeplearning.ai/short-courses/prompt-engineering-with-llama-2/ Prompt Engineering With Llama 2]&lt;br /&gt;
&lt;br /&gt;
[[Category:modello]]&lt;br /&gt;
[[Category:Modelli di Linguaggio]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Categoria:Modello&amp;diff=1285</id>
		<title>Categoria:Modello</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Categoria:Modello&amp;diff=1285"/>
		<updated>2024-03-15T10:36:43Z</updated>

		<summary type="html">&lt;p&gt;Michela: Creata pagina con &amp;quot;Per modelli intendiamo le specifiche implementazioni software, proprietarie o open source. I modelli normalmente utilizzano una determinata architettura&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Per modelli intendiamo le specifiche implementazioni software, proprietarie o open source. I modelli normalmente utilizzano una determinata architettura&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=HMDB:_a_large_human_motion_database&amp;diff=1284</id>
		<title>HMDB: a large human motion database</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=HMDB:_a_large_human_motion_database&amp;diff=1284"/>
		<updated>2024-03-15T10:33:57Z</updated>

		<summary type="html">&lt;p&gt;Michela: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduzione ==&lt;br /&gt;
L&#039;HMDB, raccolto da diverse fonti principalmente cinematografiche e, in minore misura, da archivi pubblici come l&#039;archivio Prelinger, YouTube e video di Google, comprende 6849 clip suddivise in 51 categorie di azioni, ognuna con almeno 101 clip. Le categorie di azioni si dividono in cinque tipi:&lt;br /&gt;
&lt;br /&gt;
- Azioni facciali generali: sorridere, ridere, masticare, parlare.&lt;br /&gt;
- Azioni facciali con manipolazione di oggetti: fumare, mangiare, bere.&lt;br /&gt;
- Movimenti corporei generali: fare la ruota, applaudire, arrampicarsi, salire le scale, tuffarsi, cadere a terra, fare la capriola all&#039;indietro, stare in verticale sulle mani, saltare, fare trazioni, flessioni, correre, sedersi, alzarsi, fare la capriola, girarsi, camminare, salutare.&lt;br /&gt;
- Movimenti corporei con interazione di oggetti: spazzolarsi i capelli, acchiappare, estrarre una spada, palleggiare, giocare a golf, colpire qualcosa, calciare una palla, raccogliere, versare, spingere qualcosa, andare in bicicletta, cavalcare, tirare a canestro, tirare con l&#039;arco, sparare con una pistola, oscillare con una mazza da baseball, esercitarsi con la spada, lanciare.&lt;br /&gt;
- Movimenti corporei per interazione umana: scherma, abbracciare, calciare qualcuno, baciare, pugilare, stringere mani, combattere con la spada.&lt;br /&gt;
&lt;br /&gt;
== Dataset, meta etichette, statistiche e stabilizzazione ==&lt;br /&gt;
Oltre all&#039;etichetta della categoria di azione, ogni clip è annotata con un&#039;etichetta di azione e una meta-etichetta che descrive la proprietà della clip. Poiché le sequenze video HMDB51 sono estratte da film commerciali e da YouTube, rappresentano una vasta varietà di condizioni di luce, situazioni e contesti in cui l&#039;azione può apparire, catturati con diversi tipi di telecamere e tecniche di registrazione. Il punto di vista è un altro criterio di suddivisione supportato dall&#039;HMDB. Per una copertura completa, sono distinguibili le prospettive frontale, laterale (destra e sinistra) e posteriore dei movimenti. Inoltre, esistono due categorie distinte, ovvero &amp;quot;nessun movimento&amp;quot; e &amp;quot;movimento della telecamera&amp;quot;. La qualità dei video è valutata su tre livelli, e solo i campioni video classificati come &amp;quot;buoni&amp;quot; soddisfano il requisito di identificare le singole dita durante il movimento. I campioni che non soddisfano questo requisito sono valutati come &amp;quot;medi&amp;quot; o &amp;quot;cattivi&amp;quot; se parti del corpo o arti scompaiono durante l&#039;esecuzione dell&#039;azione. Il dataset include anche una sfida maggiore associata all&#039;uso di clip video estratte da video reali: la presenza potenziale di significativi movimenti di telecamera/sfondo, che si presume interferiscano con il calcolo del movimento locale e debbano essere corretti. Per rimuovere il movimento della telecamera, sono state utilizzate tecniche standard di stitching delle immagini per allineare i fotogrammi di una clip.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nei seguenti file vengono illustrate le 51 azioni&lt;br /&gt;
&lt;br /&gt;
[[File:HMDB_snapshot1.png|200px]]&lt;br /&gt;
[[File:HMDB_snapshot2.png|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
[https://serre-lab.clps.brown.edu/resource/hmdb-a-large-human-motion-database/#overview https://serre-lab.clps.brown.edu/resource/hmdb-a-large-human-motion-database/#overview]&lt;br /&gt;
&lt;br /&gt;
[[Category:benchmark]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=HumanEval&amp;diff=1283</id>
		<title>HumanEval</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=HumanEval&amp;diff=1283"/>
		<updated>2024-03-15T10:33:41Z</updated>

		<summary type="html">&lt;p&gt;Michela: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:benchmark]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=HellaSwag&amp;diff=1282</id>
		<title>HellaSwag</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=HellaSwag&amp;diff=1282"/>
		<updated>2024-03-15T10:33:28Z</updated>

		<summary type="html">&lt;p&gt;Michela: /* Link */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Intro ==&lt;br /&gt;
Acronimo per &#039;&#039;&#039;&amp;quot;Harder Endings, Longer contexts, and Low-shot Activities for Situations With Adversarial Generations&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
È stato progettato per testare la capacità di un modello di prevedere la conclusione logica di una narrazione, spesso in contesti che richiedono un&#039;elevata capacità di ragionamento e comprensione del contesto.&lt;br /&gt;
Il benchmark HellaSwag include due tipi principali di contesti: descrizioni di video e situazioni di tipo Wikipedia. Per ogni contesto, vengono fornite diverse scelte di continuazione, e il compito del modello è selezionare quella più logica e coerente con il contesto fornito. Utilizza il concetto di [[Adversarial Endings]].&lt;br /&gt;
&lt;br /&gt;
== Esempi ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;activity_label&#039;&#039;&#039; (Questo campo contiene l&#039;etichetta dell&#039;attività che viene svolta):&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;Fare i biscotti&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;ctx_a&#039;&#039;&#039; (Il contesto A fornisce il primo pezzo di informazioni o setup per lo scenario): &lt;br /&gt;
&lt;br /&gt;
     &amp;quot;Una chef donna in divisa bianca mostra una pila di teglie da forno in una grande cucina presentandole.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;ctx_b&#039;&#039;&#039; (Questa frase serve come punto di partenza per la generazione di testo o per la selezione di un finale appropriato): &lt;br /&gt;
&lt;br /&gt;
     &amp;quot;Le teglie&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;endings&#039;&#039;&#039; (Questo campo contiene una lista di possibili finali per la storia presentata nei contesti A e B. Il modello deve scegliere quale tra questi finali sia il più logico e appropriato):&lt;br /&gt;
&lt;br /&gt;
     0. contengono tuorli d&#039;uovo e bicarbonato di sodio.&lt;br /&gt;
     1. poi vengono cosparse di zucchero di canna.&lt;br /&gt;
     2. vengono poste in un colino sul bancone.&lt;br /&gt;
     3. vengono riempite con dolci e caricate nel forno.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;label&#039;&#039;&#039; (Indica la risposta corretta o l&#039;etichetta che il modello dovrebbe prevedere): &lt;br /&gt;
&lt;br /&gt;
     In questo caso, il numero &#039;&#039;&#039;&amp;quot;3&amp;quot;&#039;&#039;&#039; si riferisce all&#039;indice del finale corretto nell&#039;array &amp;quot;endings&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Strategie per risposte mirate nei modelli di linguaggio==&lt;br /&gt;
===Procedure di valutazione su HellaSwag===&lt;br /&gt;
La valutazione su HellaSwag solitamente segue questi passaggi:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prompting&#039;&#039;&#039;: Il modello riceve un prompt che include il contesto e le opzioni di completamento. Il prompt è formulato in modo da indicare chiaramente al modello che il suo compito è selezionare il completamento più plausibile tra le opzioni fornite.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Generazione della Risposta&#039;&#039;&#039;: Diversamente da altri compiti in cui il modello genera liberamente del testo, in HellaSwag il modello deve selezionare tra le opzioni predefinite. Questo può essere realizzato in diversi modi, come ad esempio chiedendo al modello di generare un&#039;etichetta o un indice che corrisponde alla sua scelta.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parsing dell&#039;Output&#039;&#039;&#039;: Dato che l&#039;output del modello potrebbe essere verboso o presentare informazioni non direttamente legate alla selezione della risposta, gli sviluppatori devono implementare un metodo per estrarre la risposta pertinente dall&#039;output generale. Questo spesso comporta la mappatura dell&#039;output del modello alle opzioni di scelta fornite nel prompt.&lt;br /&gt;
&lt;br /&gt;
===Generazione di una Specifica Label senza Contesto Esplicito===&lt;br /&gt;
Per far generare al modello solo una label specifica senza introdurre il contesto in ogni risposta, si possono adottare diverse tecniche, come l&#039;addestramento o il [[fine-tuning]] del modello con un formato di risposta specifico. Questo può includere l&#039;addestramento del modello per riconoscere che, in contesti come HellaSwag, è richiesto di limitare la sua risposta a una delle etichette predefinite, piuttosto che generare una risposta estesa o un testo libero.&lt;br /&gt;
&lt;br /&gt;
== Link ==&lt;br /&gt;
*[https://arxiv.org/abs/1905.07830 HellaSwag: Can a Machine Really Finish Your Sentence?]&lt;br /&gt;
*[https://huggingface.co/datasets/Rowan/hellaswag/viewer/default/train?row=1 Dataset HellaSwag]&lt;br /&gt;
&lt;br /&gt;
[[Category:benchmark]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=GSM8K&amp;diff=1281</id>
		<title>GSM8K</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=GSM8K&amp;diff=1281"/>
		<updated>2024-03-15T10:33:13Z</updated>

		<summary type="html">&lt;p&gt;Michela: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:benchmark]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Discrete_Reasoning_Over_Paragraphs_(DROP)&amp;diff=1280</id>
		<title>Discrete Reasoning Over Paragraphs (DROP)</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Discrete_Reasoning_Over_Paragraphs_(DROP)&amp;diff=1280"/>
		<updated>2024-03-15T10:32:58Z</updated>

		<summary type="html">&lt;p&gt;Michela: /* Link */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &lt;br /&gt;
== Intro ==&lt;br /&gt;
&#039;&#039;&#039;Il benchmark &amp;quot;DROP&amp;quot; (Discrete Reasoning Over Paragraphs)&#039;&#039;&#039; è stato introdotto per affrontare la sfida della comprensione di testi che richiede un ragionamento discreto. Questo benchmark è stato creato con l&#039;obiettivo di spingere i sistemi di intelligenza artificiale a non solo comprendere il contenuto dei paragrafi ma anche a eseguire operazioni discrete su di essi, come l&#039;addizione, il conteggio o l&#039;ordinamento. &lt;br /&gt;
&lt;br /&gt;
== Esempi ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Esempio 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Passage&#039;&#039;&#039; ( è un brano di testo fornito al modello come contesto per le domande che seguiranno.)&lt;br /&gt;
    Per iniziare la stagione, i Lions sono viaggiati verso sud fino a Tampa, Florida per affrontare i Tampa Bay Buccaneers. I Lions hanno segnato per primi nel primo quarto con un field goal da 23 yard di Jason Hanson. I Buccaneers hanno pareggiato con un field goal da 38 yard di Connor Barth, poi hanno preso il comando quando Aqib Talib ha intercettato un passaggio di Matthew Stafford e l&#039;ha portato in touchdown per 28 yard. I Lions hanno risposto con un field goal da 28 yard. Nel secondo quarto, Detroit ha preso il comando con una ricezione da touchdown di 36 yard da Calvin Johnson, e più tardi hanno aggiunto altri punti quando Tony Scheffler ha ricevuto un passaggio da TD di 11 yard. Tampa Bay ha risposto con un field goal da 31 yard poco prima dell&#039;intervallo. La seconda metà è stata relativamente tranquilla, con ogni squadra che ha segnato solo un touchdown. Prima, Calvin Johnson di Detroit ha ricevuto un passaggio da 1 yard nel terzo quarto. I punti finali del gioco sono arrivati quando Mike Williams di Tampa Bay ha ricevuto un passaggio da 5 yard. I Lions hanno vinto la loro partita inaugurale della stagione regolare per la prima volta dal 2007.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;question&#039;&#039;&#039; (è una domanda posta in relazione al &amp;quot;passage&amp;quot; di cui sopra.)&lt;br /&gt;
    Quanti punti avevano bisogno i Buccaneers per pareggiare nel primo quarto?&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;answer_spans&#039;&#039;&#039; (indica la porzione del &amp;quot;passage&amp;quot; che contiene la risposta alla &amp;quot;question&amp;quot;.)&lt;br /&gt;
    3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Esempio 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Passage&#039;&#039;&#039; ( è un brano di testo fornito al modello come contesto per le domande che seguiranno.)&lt;br /&gt;
    Cercando di interrompere una serie negativa di due partite, i Bills volarono allo Gillette Stadium per uno scontro divisionale della settimana 3 con i New England Patriots. Nel primo quarto, il QB J. P. Losman fu subito infortunato nella prima azione offensiva della partita. Riuscì a terminare la serie, ma finì in panchina per il resto della partita. Dopo che New England prese il comando con il field goal da 24 yard del kicker Stephen Gostkowski, il QB rookie Trent Edwards giocò per il resto della partita per Buffalo. I Bills ottennero il loro unico punteggio della partita quando il RB Marshawn Lynch fece una corsa da TD di 8 yard, e un punto extra di Rian Lindell mise sorprendentemente avanti i Bills per 7-3. Tuttavia, nel secondo quarto, i Patriots furono in grado di aprire il loro gioco di corsa quando il rookie di spicco dei Bills Paul Posluszny fu perso a causa di un braccio rotto. Ciò lasciò aperte le corsie di passaggio e, per il resto della partita, i Patriots dominarono. Un passaggio da TD di 8 yard del QB Tom Brady al TE Benjamin Watson e un passaggio da TD di 3 yard al WR Randy Moss portarono il punteggio sul 17-7 all&#039;intervallo. Nel terzo quarto, New England continuò la sua conquista con il passaggio da TD di 4 yard di Brady al WR Jabar Gaffney e la corsa da TD di 4 yard del RB Sammy Morris. Nel quarto quarto, i Patriots terminarono la giornata con Brady e Moss che si collegarono di nuovo con un passaggio da TD di 45 yard.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;question&#039;&#039;&#039; (è una domanda posta in relazione al &amp;quot;passage&amp;quot; di cui sopra.)&lt;br /&gt;
    Quante partite avevano vinto i Bills prima di questa partita?&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;answer_spans&#039;&#039;&#039; (indica la porzione del &amp;quot;passage&amp;quot; che contiene la risposta alla &amp;quot;question&amp;quot;.)&lt;br /&gt;
    0&lt;br /&gt;
&lt;br /&gt;
== Strategie per risposte mirate nei Modelli di Linguaggio ==&lt;br /&gt;
&lt;br /&gt;
Per testare i modelli di linguaggio di grandi dimensioni (LLM) su benchmark come &#039;&#039;&#039;DROP&#039;&#039;&#039; (Dataset for Reasoning over Paragraphs), i ricercatori impiegano strategie di prompting e parsing specifiche per assicurarsi che i modelli siano in grado di comprendere e rispondere a domande complesse basate su paragrafi, spesso richiedendo abilità di ragionamento numerico, comprensione del testo, e inferenza.&lt;br /&gt;
&lt;br /&gt;
===Preparazione del Prompt===&lt;br /&gt;
&lt;br /&gt;
Nel caso di DROP, il prompt è particolarmente importante perché le domande possono richiedere al modello di eseguire operazioni complesse, come l&#039;addizione o la sottrazione di numeri trovati nel testo, o di identificare eventi in sequenze temporali. Il prompt fornito al modello include:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Il paragrafo di riferimento&#039;&#039;&#039;: un testo che contiene le informazioni necessarie per rispondere alla domanda.&lt;br /&gt;
* &#039;&#039;&#039;La domanda&#039;&#039;&#039;: formulata in modo chiaro per indicare che tipo di risposta o operazione è richiesta.&lt;br /&gt;
* &#039;&#039;&#039;Formato di risposta richiesto&#039;&#039;&#039;: può essere specificato se la risposta deve essere un numero, una data, un evento, ecc.&lt;br /&gt;
&lt;br /&gt;
===Generazione della Risposta===&lt;br /&gt;
&lt;br /&gt;
Per garantire che il modello generi solo la risposta specifica richiesta, senza introdurre contesto non necessario, i ricercatori possono:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Limitare la lunghezza della risposta&#039;&#039;&#039;: impostare un limite alla lunghezza dell&#039;output del modello per incoraggiarlo a generare risposte concise.&lt;br /&gt;
* &#039;&#039;&#039;Usare un prompt chiaro e diretto&#039;&#039;&#039;: formulare il prompt in modo che indichi esplicitamente al modello di fornire solo la risposta richiesta, senza ulteriori elaborazioni o contesto.&lt;br /&gt;
* &#039;&#039;&#039;Post-elaborazione dell&#039;output&#039;&#039;&#039;: in alcuni casi, l&#039;output del modello viene post-elaborato per estrarre solo la parte pertinente, specialmente quando si richiede una risposta numerica o una data specifica.&lt;br /&gt;
&lt;br /&gt;
===Parsing dell&#039;Output===&lt;br /&gt;
&lt;br /&gt;
Il parsing dell&#039;output generato dai modelli in contesti come DROP richiede un&#039;attenzione particolare, soprattutto perché le risposte possono essere numeriche o richiedere una forma specifica. Questo processo può includere:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Estrazione di informazioni specifiche&#039;&#039;&#039;: utilizzare metodi di estrazione dell&#039;informazione per identificare e isolare numeri, date, o altri dettagli specifici richiesti dalla domanda.&lt;br /&gt;
* &#039;&#039;&#039;Validazione della risposta&#039;&#039;&#039;: applicare regole di validazione per assicurarsi che l&#039;output sia nel formato corretto e rispetti i vincoli della domanda (ad esempio, che sia effettivamente un numero se la risposta richiede calcoli numerici).&lt;br /&gt;
* &#039;&#039;&#039;Uso di tecniche di NLP per il parsing&#039;&#039;&#039;: tecniche di elaborazione del linguaggio naturale possono essere impiegate per analizzare l&#039;output del modello e determinare la correttezza della risposta in base al contesto fornito dalla domanda e dal paragrafo di riferimento.&lt;br /&gt;
&lt;br /&gt;
== Link ==&lt;br /&gt;
* [https://paperswithcode.com/dataset/drop DROP (Discrete Reasoning Over Paragraphs)]&lt;br /&gt;
* [https://huggingface.co/datasets/drop Dataset DROP]&lt;br /&gt;
&lt;br /&gt;
[[Category:benchmark]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=BoolQ&amp;diff=1279</id>
		<title>BoolQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=BoolQ&amp;diff=1279"/>
		<updated>2024-03-15T10:32:41Z</updated>

		<summary type="html">&lt;p&gt;Michela: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:benchmark]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=AI2_Reasoning_Challenge_(Arc_C)&amp;diff=1278</id>
		<title>AI2 Reasoning Challenge (Arc C)</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=AI2_Reasoning_Challenge_(Arc_C)&amp;diff=1278"/>
		<updated>2024-03-15T10:32:19Z</updated>

		<summary type="html">&lt;p&gt;Michela: /* Link */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Intro ==&lt;br /&gt;
&#039;&#039;&#039;Il benchmark ARC Challenge (&amp;quot;AI2 Reasoning Challenge&amp;quot;)&#039;&#039;&#039; è un insieme di test progettato per valutare la capacità dei sistemi di intelligenza artificiale (IA) di eseguire ragionamento complesso e di senso comune. Il benchmark ARC si concentra in particolare sulla capacità dei modelli di AI di rispondere a domande di scienza di livello scolastico, coprendo una vasta gamma di argomenti e richiedendo una comprensione approfondita e il ragionamento oltre la mera capacità di cercare informazioni o utilizzare conoscenze superficiali.&lt;br /&gt;
&lt;br /&gt;
== Esempi ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Esempio 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Domanda:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    &amp;quot;George vuole riscaldare le sue mani rapidamente strofinandole. Quale superficie della pelle produrrà più calore?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Opzioni di risposta:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    A) palmi asciutti&lt;br /&gt;
    B) palmi bagnati&lt;br /&gt;
    C) palmi coperti di olio&lt;br /&gt;
    D) palmi coperti di lozione&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Risposta:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    &amp;quot;A)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Esempio 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Domanda:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    &amp;quot;Quale delle seguenti è una caratteristica che un cane NON eredita dai suoi genitori?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Opzioni di risposta:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    A) la lunghezza del suo pelo&lt;br /&gt;
    B) la forma del suo naso&lt;br /&gt;
    C) la grandezza del suo appetito&lt;br /&gt;
    D) il colore del suo pelo&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Risposta:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    &amp;quot;C)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Strategie per risposte mirate nei Modelli di Linguaggio ==&lt;br /&gt;
&lt;br /&gt;
Per testare i modelli di linguaggio di grandi dimensioni (LLM) su benchmark come &#039;&#039;&#039;ARC Challenge&#039;&#039;&#039; (ARC-C), i ricercatori seguono un processo dettagliato che assicura la capacità del modello di generare risposte precise a domande di ragionamento complesso, focalizzandosi sulla generazione di una singola label (risposta) senza introdurre informazioni aggiuntive non necessarie.&lt;br /&gt;
&lt;br /&gt;
=== Preparazione del Prompt ===&lt;br /&gt;
&lt;br /&gt;
La preparazione del prompt è cruciale per indirizzare il modello verso la generazione della risposta desiderata. Il prompt per ARC-C include tipicamente:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;La domanda di ragionamento complesso&#039;&#039;&#039;: Una domanda progettata per testare la capacità di ragionamento astratto del modello.&lt;br /&gt;
* &#039;&#039;&#039;Opzioni di risposta multiple&#039;&#039;&#039;: Un elenco di possibili risposte tra cui il modello deve scegliere.&lt;br /&gt;
* &#039;&#039;&#039;Istruzioni chiare&#039;&#039;&#039;: Direttive che indicano al modello di selezionare la risposta più appropriata senza fornire ulteriori spiegazioni o contesto.&lt;br /&gt;
&lt;br /&gt;
=== Generazione della Risposta ===&lt;br /&gt;
&lt;br /&gt;
Per assicurarsi che il modello generi solo una label specifica, i ricercatori utilizzano diverse tecniche:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Limitazione della Lunghezza dell&#039;Output&#039;&#039;&#039;: Impostano limiti sulla lunghezza dell&#039;output per prevenire risposte prolisse e fuori tema.&lt;br /&gt;
* &#039;&#039;&#039;Formato di Risposta Chiuso&#039;&#039;&#039;: Specificano un formato di risposta chiuso nel prompt, chiedendo esplicitamente al modello di scegliere tra le opzioni date (ad esempio, &amp;quot;Seleziona la lettera della risposta corretta: A, B, C, o D&amp;quot;).&lt;br /&gt;
* &#039;&#039;&#039;Post-elaborazione&#039;&#039;&#039;: In alcuni casi, l&#039;output del modello viene post-elaborato per rimuovere qualsiasi contenuto non pertinente e isolare la label di risposta.&lt;br /&gt;
&lt;br /&gt;
=== Parsing dell&#039;Output ===&lt;br /&gt;
&lt;br /&gt;
Il parsing dell&#039;output, specialmente quando potrebbe essere verboso o indiretto, richiede l&#039;uso di metodi specifici per estrarre la risposta corretta:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Estrazione Basata su Regole&#039;&#039;&#039;: Utilizzo di regole specifiche o espressioni regolari per identificare la label di risposta nell&#039;output.&lt;br /&gt;
* &#039;&#039;&#039;Analisi del Testo&#039;&#039;&#039;: Applicazione di tecniche di elaborazione del linguaggio naturale (NLP) per analizzare l&#039;output e determinare la risposta più plausibile basata sul contesto della domanda.&lt;br /&gt;
&lt;br /&gt;
== Link ==&lt;br /&gt;
* [https://paperswithcode.com/dataset/arc ARC (AI2 Reasoning Challenge)]&lt;br /&gt;
* [https://huggingface.co/datasets/allenai/ai2_arc/viewer/ARC-Challenge/train?row=8 Dataset Arc C]&lt;br /&gt;
&lt;br /&gt;
[[Category:benchmark]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Adversarial_Filtering_(AF)&amp;diff=1277</id>
		<title>Adversarial Filtering (AF)</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Adversarial_Filtering_(AF)&amp;diff=1277"/>
		<updated>2024-03-15T10:30:56Z</updated>

		<summary type="html">&lt;p&gt;Michela: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;L&#039;Adversarial Filtering (AF)&#039;&#039;&#039; è una tecnica utilizzata per selezionare o generare dati per set di addestramento e test in modo che sfidino specificamente le capacità dei modelli di intelligenza artificiale (IA). Questo metodo è particolarmente utile per creare compiti di benchmark che testano capacità complesse come il ragionamento di senso comune, la comprensione del linguaggio naturale, e altre forme di intelligenza cognitiva che i modelli di IA trovano difficili.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Come Funziona l&#039;Adversarial Filtering&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Generazione di Esempi:&#039;&#039;&#039; Inizialmente, viene generato un grande insieme di esempi potenziali che potrebbero essere utilizzati come domande o problemi per il modello di IA.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Valutazione Iniziale:&#039;&#039;&#039; Questi esempi sono poi valutati da modelli di IA esistenti o da approcci automatici per identificare quelli che i modelli attuali possono già risolvere facilmente.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Selezione Adversariale:&#039;&#039;&#039; Gli esempi che sono stati risolti correttamente dai modelli sono filtrati via, lasciando un insieme di problemi che i modelli attuali trovano difficili. Questo processo può essere iterato più volte, con diverse generazioni di modelli, per raffinare ulteriormente la qualità e la difficoltà degli esempi selezionati.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Raffinamento e Finalizzazione:&#039;&#039;&#039; Infine, l&#039;insieme di esempi risultante viene curato ulteriormente, a volte con l&#039;intervento umano, per assicurarsi che siano di alta qualità, significativi, e rappresentativi delle capacità che si desidera testare.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Obiettivi dell&#039;Adversarial Filtering&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Ridurre i Bias nei Dataset:&#039;&#039;&#039; Riducendo la dipendenza da pattern superficiali o scorciatoie che i modelli potrebbero aver imparato dai dati di addestramento, l&#039;AF mira a creare set di dati che richiedono un vero ragionamento o comprensione per essere risolti.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Aumentare la Difficoltà del Benchmark:&#039;&#039;&#039; Creando esempi che sfidano i limiti attuali dei modelli di IA, l&#039;AF aiuta a spingere la ricerca e lo sviluppo verso capacità di intelligenza artificiale più avanzate e versatili.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Valutare il Ragionamento di Senso Comune:&#039;&#039;&#039; In particolare, per i compiti che richiedono una comprensione profonda del contesto, delle relazioni causali, e della logica del mondo reale, l&#039;AF è un metodo efficace per generare esempi che mettono alla prova queste capacità.&lt;br /&gt;
&lt;br /&gt;
In sintesi, l&#039;Adversarial Filtering è una strategia cruciale per migliorare la qualità dei benchmark di intelligenza artificiale, garantendo che essi presentino sfide autentiche e significative che riflettano le abilità cognitive complesse che i modelli di IA sono chiamati a dimostrare.&lt;br /&gt;
&lt;br /&gt;
[[Category:benchmark]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Alpaca&amp;diff=1276</id>
		<title>Alpaca</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Alpaca&amp;diff=1276"/>
		<updated>2024-03-15T10:30:07Z</updated>

		<summary type="html">&lt;p&gt;Michela: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Questo modello di Stanford si distingue per essere stato perfezionato a partire dal modello [[LLaMA]] 7B di Meta, attraverso l&#039;addestramento su 52.000 [[Instruction-following Demonstrations]]. In una valutazione preliminare, Alpaca ha mostrato comportamenti qualitativamente simili a quelli di text-davinci-003 di OpenAI, nonostante le sue dimensioni sorprendentemente ridotte e la facilità nonché l&#039;economicità di riproduzione (meno di 600 dollari). Alpaca, è arricchito con dati di istruzioni generate in stile self-instruct usando text-davinci-003, si presenta come un modello leggero, facilmente riproducibile e a costi contenuti, ideale per la ricerca accademica.&lt;br /&gt;
&lt;br /&gt;
Il processo di fine-tuning ha impiegato 3 ore su 8 A100 da 80GB, con un costo inferiore a 100 dollari sui principali provider di cloud.&lt;br /&gt;
&lt;br /&gt;
Il team ha adottato misure di mitigazione dei rischi, come filtri di contenuto e watermarking dei risultati del modello, per promuovere l&#039;uso responsabile di Alpaca. Essi enfatizzano che Alpaca è destinato esclusivamente alla ricerca accademica e che ogni uso commerciale è proibito, riflettendo le restrizioni delle licenze di LLaMA e le condizioni d&#039;uso di text-davinci-003.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
[[https://crfm.stanford.edu/2023/03/13/alpaca.html https://crfm.stanford.edu/2023/03/13/alpaca.html]]&lt;br /&gt;
[[https://huggingface.co/wxjiao/alpaca-7b Modello su Huggingface]]&lt;br /&gt;
&lt;br /&gt;
[[Category:modello]]&lt;br /&gt;
[[Category:Modelli di Linguaggio]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Gorilla_OpenFunctions&amp;diff=1275</id>
		<title>Gorilla OpenFunctions</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Gorilla_OpenFunctions&amp;diff=1275"/>
		<updated>2024-03-15T10:29:54Z</updated>

		<summary type="html">&lt;p&gt;Michela: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Modello ottimizzato per il [[Function Calling]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://gorilla.cs.berkeley.edu/blogs/4_open_functions.html https://gorilla.cs.berkeley.edu/blogs/4_open_functions.html]&lt;br /&gt;
&lt;br /&gt;
[https://huggingface.co/gorilla-llm/gorilla-openfunctions-v2 https://huggingface.co/gorilla-llm/gorilla-openfunctions-v2]&lt;br /&gt;
&lt;br /&gt;
[[Category:modello]]&lt;br /&gt;
[[Category:Modelli di Linguaggio]]&lt;br /&gt;
[[Category:Function Calling]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Autoencoder&amp;diff=1274</id>
		<title>Autoencoder</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Autoencoder&amp;diff=1274"/>
		<updated>2024-03-15T10:27:30Z</updated>

		<summary type="html">&lt;p&gt;Michela: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:architettura]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Biaxial_LSTM_(DeepJ_-_musica)&amp;diff=1273</id>
		<title>Biaxial LSTM (DeepJ - musica)</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Biaxial_LSTM_(DeepJ_-_musica)&amp;diff=1273"/>
		<updated>2024-03-15T10:26:50Z</updated>

		<summary type="html">&lt;p&gt;Michela: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Architettura Biaxial LSTM =&lt;br /&gt;
&lt;br /&gt;
L&#039;architettura Biaxial LSTM modella la composizione polifonica modellando ogni nota in ciascuno step temporale come una probabilità condizionata a tutti i passaggi temporali precedenti e a tutte le note all&#039;interno del passaggio temporale corrente che sono già state generate. L&#039;ordine di generazione va dal primo passaggio temporale t = 1 all&#039;ultimo passaggio temporale t = T e dalla nota più bassa n = 1 alla nota più alta n = N, dove: &lt;br /&gt;
&lt;br /&gt;
* T è la lunghezza della generazione desiderata&lt;br /&gt;
* N è il numero di possibili note. &lt;br /&gt;
&lt;br /&gt;
Denotiamo la variabile casuale binaria Y = 1 quando la nota viene suonata e Y = 0 quando non viene suonata. Al passaggio temporale &#039;&#039;&#039;t&#039;&#039;&#039;, il modello apprende la seguente probabilità condizionata per la nota n-esima:&lt;br /&gt;
: &#039;&#039;P(Y&amp;lt;sub&amp;gt;t;n&amp;lt;/sub&amp;gt;|Y&amp;lt;sub&amp;gt;t;n-1&amp;lt;/sub&amp;gt;; Y&amp;lt;sub&amp;gt;t;n-2&amp;lt;/sub&amp;gt;; …; Y&amp;lt;sub&amp;gt;t-1;N&amp;lt;/sub&amp;gt; ; Y&amp;lt;sub&amp;gt;t-1;N-1&amp;lt;/sub&amp;gt;; …; Y&amp;lt;sub&amp;gt;1;2&amp;lt;/sub&amp;gt;; Y&amp;lt;sub&amp;gt;1;1&amp;lt;/sub&amp;gt;)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dall&#039;espressione sopra, possiamo vedere che il modello deve condizionare la probabilità di suonare una nota specifica nel passaggio successivo lungo due assi: &lt;br /&gt;
# Tempo &lt;br /&gt;
# Nota.&lt;br /&gt;
&lt;br /&gt;
Il modello computa questa probabilità condizionata biassiale utilizzando LSTM che prendono input lungo i due assi. Di conseguenza, il Biaxial LSTM consiste in due moduli principali: il modulo sull&#039;asse del tempo e il modulo sull&#039;asse delle note.&lt;br /&gt;
&lt;br /&gt;
== Input del Modello ==&lt;br /&gt;
L&#039;input per il modello sono le note nel passaggio temporale precedente. Queste note sono rappresentate in una forma che include informazioni sulla nota stessa e sulle note circostanti (ad esempio, le ottave adiacenti).&lt;br /&gt;
&lt;br /&gt;
=== Note Octaves Layer ===&lt;br /&gt;
Questo strato trasforma ogni singola nota e le note circostanti in un tensore. Questo tensore contiene le informazioni sulla nota principale e il suo contesto spaziale (ad esempio, le note nelle ottave superiori e inferiori). Questo processo aggiunge contesto spaziale alle informazioni delle singole note.&lt;br /&gt;
&lt;br /&gt;
=== LSTM con pesi condivisi ===&lt;br /&gt;
Ogni feature di nota elaborata nel passaggio precedente viene alimentata in un&#039;unità LSTM (Long Short-Term Memory) che ha pesi condivisi tra tutte le note nel passaggio temporale. Questo significa che le stesse operazioni vengono applicate a ogni nota, consentendo al modello di apprendere e memorizzare le relazioni temporali tra le note.&lt;br /&gt;
&lt;br /&gt;
== Modulo Time-Axis ==&lt;br /&gt;
Questo modulo riceve in input i tensori delle note e gli stati ricorrenti dalla LSTM del passaggio temporale precedente. Utilizzando queste informazioni, produce feature di livello superiore per ogni nota, che catturano le relazioni temporali e spaziali tra le note nel passaggio temporale corrente.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2024-03-05 alle 10.43.38.png|300px|thumb|left|Biaxial LSTM Architecture]]&lt;br /&gt;
&lt;br /&gt;
=== Sezione sull’asse del tempo ===&lt;br /&gt;
La sezione dell&#039;asse temporale è ispirata a una [[rete neurale convoluzionale (CNN)]]. È composta da due unità LSTM impilate a strati ricorrenti nel tempo, connesse a ogni ottava di nota (12 toni sopra e sotto ogni nota) in ingresso in modo simile a un [[kernel di convoluzione]]. I pesi di ciascuna unità LSTM sono condivisi tra ogni nota, costringendo la sezione dell&#039;asse temporale a imparare caratteristiche invarianti alle note.&lt;br /&gt;
&lt;br /&gt;
=== Sezione sull’asse delle Note ===&lt;br /&gt;
La sezione delle note prende in input le caratteristiche della nota estratte dalla sezione dell&#039;asse temporale, il LSTM dell&#039;asse delle note scansiona dalle caratteristiche della nota più bassa alle caratteristiche della nota più alta per fare previsioni su ciascuna nota condizionata sulle note inferiori previste.&lt;br /&gt;
L&#039;asse delle note è composto da un&#039;altra unità LSTM impilata a due strati ricorrenti nella nota. Le caratteristiche di ogni nota vengono prima concatenate con la nota inferiore scelta. Se la nota attualmente considerata è la nota più bassa, vengono concatenate degli zeri. In altre parole, per determinare la nota scelta yi, le caratteristiche della nota i-esima xi vengono concatenate con la nota inferiore scelta yi-1 prima di essere alimentate nel modulo dell&#039;asse delle note f.&lt;br /&gt;
&lt;br /&gt;
[[Category:concetto]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=CAMEL_(Agent_Framework)&amp;diff=1272</id>
		<title>CAMEL (Agent Framework)</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=CAMEL_(Agent_Framework)&amp;diff=1272"/>
		<updated>2024-03-15T10:26:22Z</updated>

		<summary type="html">&lt;p&gt;Michela: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Data del Paper: &#039;&#039;31 Mar 2023&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CAMEL è un framework, basato sul [[Role-playing|Role-playing,]] in cui tre Agenti AI, basati su [[Modelli di Linguaggio]], comunicano tra di loro per il raggiungimento di un obiettivo o di un task specifico. In questo tipo di frameworks, gli agenti comunicano tra loro autonomamente, in un tipo di &#039;&#039;&#039;brainstorming&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Il framework prevede tre agenti:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;AI User Agent&#039;&#039;&#039;: è il conduttore della conversazione, dè istruzioni all&#039;agente &#039;&#039;&#039;AI Assistant&#039;&#039;&#039; con l&#039;obiettivo finale di completare un task specifico&lt;br /&gt;
# &#039;&#039;&#039;AI Assistant Agent&#039;&#039;&#039;: questo agente è l&#039;esecutore, che segue diligentemente le istruzioni dell&#039;AI User Agent e riporta le soluzioni per il task specifico&lt;br /&gt;
# &#039;&#039;&#039;Task-Specifier Agent&#039;&#039;&#039;: questo agente è importantissimo per la concertazione, definendo con precisione i task che l&#039;AI User e l&#039;AI Assistant dovranno svolgere. Si assicura che i task siano concreti e ben definiti, risparmiando all&#039;AI User Agent lo sforzo di una specifica dettagliata dei task.&lt;br /&gt;
&lt;br /&gt;
=== Esempio ===&lt;br /&gt;
Uno scenario in cui un trader &#039;&#039;&#039;umano&#039;&#039;&#039; ha l&#039;idea di creare un &#039;&#039;&#039;trading bot&#039;&#039;&#039;, cioè un programma che faccia trading automaticamente per suo conto. In questo scenario, l&#039;&amp;lt;nowiki/&amp;gt;&#039;&#039;&#039;AI User Agent&#039;&#039;&#039; rispecchia l&#039;&amp;lt;nowiki/&amp;gt;&#039;&#039;expertise&#039;&#039; dell&#039;umano, mentre l&#039;&#039;&#039;&#039;AI Assistant&#039;&#039;&#039; un programmatore Python. E&#039; il &#039;&#039;&#039;Task-Specifier&#039;&#039;&#039; &#039;&#039;&#039;Agent&#039;&#039;&#039;, che, in questo contesto, prende l&#039;iniziativa formulando un primo task specifico con delle istruzioni dettagliate:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Monitora il sentiment sui social media e effettua i &#039;&#039;trades&#039;&#039; basandoti sui risultati della sentiment analysis&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A questo punto:&lt;br /&gt;
&lt;br /&gt;
* L&#039;&#039;&#039;&#039;AI User Agent&#039;&#039;&#039; si trasforma in un task planner, orchestrando il piano generale&lt;br /&gt;
* L&#039;&#039;&#039;&#039;AI Assistant&#039;&#039;&#039; diventa l&#039;esecutore dei piani, portandoli a compimento&lt;br /&gt;
&lt;br /&gt;
A questo punto i tre iniziano un &#039;&#039;&#039;loop di interazioni&#039;&#039;&#039;, fino a che delle condizioni predefinite di terminazione non sono raggiunte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2024-03-09 at 9.55.54 AM.png|alt=Role-Playing Framework dal Paper|senza_cornice|600x600px]]&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
[https://arxiv.org/abs/2303.17760 CAMEL: Communicative Agents for &amp;quot;Mind&amp;quot; Exploration of Large Language Model Society]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/camel-ai/camel Pagina Github Officiale]&lt;br /&gt;
&lt;br /&gt;
[[Category:Pubblicazione]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Clip_Skip&amp;diff=1271</id>
		<title>Clip Skip</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Clip_Skip&amp;diff=1271"/>
		<updated>2024-03-15T10:25:28Z</updated>

		<summary type="html">&lt;p&gt;Michela: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Qui di seguito saranno mostrate, a scopo esemplificativo, come le immagini generate cambiano relativamente al cambiare del parametro di Clip Skip.&lt;br /&gt;
Prompt: &amp;quot;&#039;&#039;&#039;A cat playing a piano, it has a pirate hat&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|[[File:cat.png|miniatura|100x100px|Clip Skip 1]]&lt;br /&gt;
|[[File:cat2.png|miniatura|100x100px|Clip Skip 2]]&lt;br /&gt;
|[[File:cat3.png|miniatura|100x100px|Clip Skip 3]]&lt;br /&gt;
|[[File:cat4.png|miniatura|100x100px|Clip Skip 4]]&lt;br /&gt;
|[[File:cat5.png|miniatura|100x100px|Clip Skip 5]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Da queste immagini possiamo capire che, aumentando il parametro di Clip Skip, il modello di generazione di immagini cercherà di prendere in considerazione gli strati più basici del prompt. Difatti, per esempio, su &amp;quot;Clip Skip 5&amp;quot; il modello sembra prendere solo &amp;quot;playing a piano&amp;quot;, scartando il resto del prompt.&lt;br /&gt;
&lt;br /&gt;
==Altri esempi==&lt;br /&gt;
&lt;br /&gt;
Prompt: &amp;quot;&#039;&#039;&#039;a chimpanzee eating its banana, it&#039;s in a zoo cage&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|[[File:Monkey.png|miniatura|100x100px|Clip Skip 1]]&lt;br /&gt;
|[[File:Monkey2.png|miniatura|100x100px|Clip Skip 2]]&lt;br /&gt;
|[[File:Monkey3.png|miniatura|100x100px|Clip Skip 3]]&lt;br /&gt;
|[[File:Monkey4.png|miniatura|100x100px|Clip Skip 4]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:strumento]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Dataset_di_Preferenze&amp;diff=1270</id>
		<title>Dataset di Preferenze</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Dataset_di_Preferenze&amp;diff=1270"/>
		<updated>2024-03-15T10:14:19Z</updated>

		<summary type="html">&lt;p&gt;Michela: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dataset utilizzato per il tuning del [[Modello di Reward]] nel contesto del [[Reinforcement Learning From Human Feedback (RLHF)]]. Per i migliori risultati servono almeno 500 campioni.&lt;br /&gt;
&lt;br /&gt;
[[Category:Benchmark]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=DocRED:_A_Large-Scale_Document-Level_Relation_Extraction_Dataset&amp;diff=1268</id>
		<title>DocRED: A Large-Scale Document-Level Relation Extraction Dataset</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=DocRED:_A_Large-Scale_Document-Level_Relation_Extraction_Dataset&amp;diff=1268"/>
		<updated>2024-03-15T10:12:50Z</updated>

		<summary type="html">&lt;p&gt;Michela: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Rilasciato nel 2019, dataset per benchmanrking dei modelli di [[Relation Extraction (RE)]].&lt;br /&gt;
Annota [[Entità]] e [[Relazioni]] a livello di documento - per estrarle è necessario che l&#039;algoritmo consideri più di una frase alla volta.&lt;br /&gt;
&lt;br /&gt;
Le entità nelle relazioni A-&amp;gt;B vengono normalmente rappresentate come:&lt;br /&gt;
* head (entità A)&lt;br /&gt;
* tail (entità B)&lt;br /&gt;
&lt;br /&gt;
=== Esempio ===&lt;br /&gt;
&lt;br /&gt;
[[File:DocRED.png]]&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* [https://aclanthology.org/P19-1074/ DocRED: A Large-Scale Document-Level Relation Extraction Dataset]&lt;br /&gt;
* [https://paperswithcode.com/sota/relation-extraction-on-docred Leaderboard su Paperswithcode]&lt;br /&gt;
* [https://github.com/thunlp/DocRED Repo Github]&lt;br /&gt;
&lt;br /&gt;
[[Category:Benchmark]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Dropout_(Reti_Neurali)&amp;diff=1267</id>
		<title>Dropout (Reti Neurali)</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Dropout_(Reti_Neurali)&amp;diff=1267"/>
		<updated>2024-03-15T10:06:52Z</updated>

		<summary type="html">&lt;p&gt;Michela: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Il dropout è una tecnica di [[regolarizzazione]] utilizzata per prevenire l&#039;[[overfitting]] nelle reti neurali. L&#039;overfitting si verifica quando una rete neurale impara troppo bene i dati di addestramento, a scapito delle sue prestazioni su nuovi dati non visti. &lt;br /&gt;
&lt;br /&gt;
Durante l&#039;addestramento di una rete neurale con dropout, ad ogni iterazione (cioè, ad ogni passo dell&#039;algoritmo di addestramento), un sottoinsieme casuale di neuroni (insieme ai loro collegamenti) viene &amp;quot;ignorato&amp;quot; o escluso dal processo di addestramento. &lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Durante il [[forward pass]]&#039;&#039;&#039;: Per ogni esempio di addestramento, alcuni neuroni non contribuiscono alla propagazione dell&#039;input attraverso la rete. La loro attivazione è impostata a zero, come se temporaneamente &amp;quot;spenti&amp;quot;. La frazione dei neuroni da disattivare è determinata dal &#039;&#039;&#039;tasso di dropout&#039;&#039;&#039;, un [[iperparametro]]. Tipicamente, questo tasso si aggira tra il 20% e il 50%.&lt;br /&gt;
# &#039;&#039;&#039;Durante il [[backward pass]]&#039;&#039;&#039;: Poiché i neuroni sono stati &amp;quot;spenti&amp;quot; durante il forward pass, anche la loro partecipazione nell&#039;aggiornamento dei pesi (attraverso la [[retropropagazione dell&#039;errore]]) è esclusa. In altre parole, i pesi dei neuroni disattivati rimangono inalterati in quell&#039;iterazione dell&#039;addestramento.&lt;br /&gt;
&lt;br /&gt;
Il risultato di questo processo è che la rete impara a diventare meno dipendente da specifici neuroni o percorsi di neuroni, poiché questi possono essere disattivati in qualsiasi momento durante l&#039;addestramento. Ciò aiuta a distribuire più uniformemente l&#039;&amp;quot;importanza&amp;quot; tra i neuroni della rete, forzando la rete a trovare più percorsi per trasmettere l&#039;informazione dall&#039;input all&#039;output. Di conseguenza, la rete diventa più robusta e migliora la sua &#039;&#039;&#039;capacità di generalizzare&#039;&#039;&#039; su dati non visti, riducendo il rischio di overfitting.&lt;br /&gt;
&lt;br /&gt;
Al termine dell&#039;addestramento, durante l&#039;utilizzo della rete neurale per fare previsioni (cioè, in fase di test), tutti i neuroni sono attivi, e nessuno viene escluso.&lt;br /&gt;
&lt;br /&gt;
[[Category:Concetto]]&lt;br /&gt;
[[Category:Reti Neurali]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
	<entry>
		<id>https://wiki.mindmaker.it/index.php?title=Generative_Pretrained_Transformer_(GPT)&amp;diff=1263</id>
		<title>Generative Pretrained Transformer (GPT)</title>
		<link rel="alternate" type="text/html" href="https://wiki.mindmaker.it/index.php?title=Generative_Pretrained_Transformer_(GPT)&amp;diff=1263"/>
		<updated>2024-03-15T10:04:25Z</updated>

		<summary type="html">&lt;p&gt;Michela: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Rilasciato da: OpenAI&lt;br /&gt;
* Data: 14 marzo 2023&lt;br /&gt;
* Accesso: solo attraverso OpenAI&lt;br /&gt;
* Dati di allenamento: 1,76 trilioni di parametri&lt;br /&gt;
* Velocità: 100 miliardi di token al secondo&lt;br /&gt;
&lt;br /&gt;
ChatGPT-4 è la quarta iterazione del modello di linguaggio generativo sviluppato da OpenAI, costruito sulla base della serie di modelli [[GPT (Generative Pre-trained Transformer)]]. Introdotto dopo il successo di [[GPT-3.5 Turbo]], ChatGPT-4 presenta una serie di miglioramenti significativi sia in termini di capacità di comprensione e generazione del testo che di applicazioni pratiche. &lt;br /&gt;
ChatGPT-4 possiede una conoscenza aggiornata, ovvero, è addestrato su un corpus di dati che include &#039;&#039;&#039;informazioni fino all&#039;inizio del 2023&#039;&#039;&#039;. Inoltre, Il modello mostra avanzamenti significativi nella comprensione del contesto, permettendo conversazioni &#039;&#039;&#039;più fluide e risposte più accurate&#039;&#039;&#039; a domande complesse con miglioramenti nella coerenza, logica e fluidità, grazie anche alla sua capacità di interpretare e rispondere a &#039;&#039;&#039;sfumature del linguaggio&#039;&#039;&#039;. Inoltre, si tratta di un modello di linguaggio &#039;&#039;&#039;multimodale&#039;&#039;&#039;, ossia che riesce ad elaborare sia informazioni testuali che informazioni provenienti da immagini. In ultima istanza, sono stati aggiornati anche i meccanismi deputati ad affrontare &#039;&#039;&#039;questioni etiche&#039;&#039;&#039;, riducendo la probabilità di generare &#039;&#039;&#039;risposte inappropriate o dannose&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://arxiv.org/pdf/2303.08774v4.pdf GPT-4 Technical Report]]&lt;br /&gt;
&lt;br /&gt;
[[Category:modello]]&lt;br /&gt;
[[Category:Modelli di Linguaggio]]&lt;/div&gt;</summary>
		<author><name>Michela</name></author>
	</entry>
</feed>