class: center, middle, bg_title, hide-count <img src="img/unipd_logo.png" width="150px"/> <img src="img/DSCTV.png" width="50px"/> <img src="img/UBEP.png" width="50px"/> <img src="img/LAIMS.png" width="50px"/> <style type="text/css"> .left-code { color: #777; width: 38%; height: 92%; float: left; } .right-code { color: #777; width: 55%; height: 92%; float: right; padding-top: 0.5em; } .left-plot { width: 43%; float: left; } .right-plot { width: 60%; float: right; } .hide-count .remark-slide-number { display: none; } .bg_title { position: relative; z-index: 1; } .bg_title::before { content: ""; background-image: url('img/bg1.png'); background-size: contain; position: absolute; top: 0px; right: 0px; bottom: 0px; left: 0px; opacity: 0.1; z-index: -1; } </style> <br> # **(.orange[Chat]).orange[GPT]** 🤖:<br>.orange[understand] the engine, mastering its .orange[usage] **AIE .orange[Giovani] 🤩**<br>[**.orange[AI]**-Epidemiologia: il contributo dell’intelligenza artificiale a metodi e studi epidemiologici](https://www.old.epidemiologia.it/convegno-aie-autunno-2023/) - Roma, 2023/11/13 - Workshop precongressuale <br> Corrado Lanera | [**.orange[Laboratorio di Intelligenza Artificiale per le Scienze Mediche]**](https://www.unipd-ubep.it/topics-laboratories/artificial-intelligence-for-medical-sciences-laims/)<br>[**Unità di Biostatistica, epidemiologia e Sanità Pubblica**](https://www.unipd-ubep.it/) | [**.red[University of Padova]**](https://unipd.it)<br>[.black[Dipartimento di Scienze Cardio- Toraco- Vascolari e Sanità Pubblica]](https://www.dctv.unipd.it/) --- class: inverse, bottom, right, hide-count <img src="img/profilo_CL.jpg" width="50%" /> # Per contattarmi... [
](https://www.unipd-ubep.it/) [**www.unipd-ubep.it**](https://www.unipd-ubep.it/) [
](mailto:Corrado.Lanera@ubep.unipd.it) [**Corrado.Lanera**__.orange[@ubep.unipd.it]__](mailto:Corrado.Lanera@ubep.unipd.it) [
](https://github.com/corradolanera) [
](https://twitter.com/corradolanera) [
](https://telegram.me/CorradoLanera) **@CorradoLanera** [
](https://github.com/UBESP-DCTV) **@UBESP-DCTV** --- ### Ma ... avete mai sentito parlare di [.orange[Chat GPT]](https://chat.openai.com)?! <iframe src="https://chat.openai.com/share/3e09364c-8ade-40aa-9574-785155696586" width="100%" height="500px" data-external="1"></iframe> --- <img src="img/100M-users.png" width="100%" /> --- class: middle <img src="img/1M-users.png" width="100%" /> --- ## 2022-11-30 (Lancio) -> 2023-11-07 <br> <img src="img/OpenAI-2023.png" width="100%" /> <https://www.youtube.com/watch?v=U9mJuUkhUzk> --- class: hide-count # **.orange[Chat GPT]** - (Intro MLT) - **.orange[Understand]**: _the engine_ - T ... - P ... - G ... - Chat! - **Mastering**: _its .orange[usage]_ - Base - Medio - Avanzato - **Bonus**: _Riflessioni_ - Cosa offre? - Chi lo offre/usa? - Come lo offre/usa? - Cosa insegna? --- class: inverse, middle, center, hide-count # Intro .orange[MLT] --- # .orange[Modello] Nell'ambito del Machine Learning, un modello è una .orange[funzione matematica] (implementata in un .orange[software]) che calcola (come una calcolatrice) un risultato (output) a partire da alcuni input (predittori). L'interesse e l'aspettativa è che in qualche modo il modello risponda una predizione utile su un fenomeno della realtà che desideriamo "modellizare". L'_.orange[apprendimento]_ non è dunque altro che una sequenza di funzioni ( `\(f\)` ) sempre più accurate che **meglio prevedano** un output ( `\(Y\)` ) il più possibile corretto, partendo dalle misurazioni ( `\(X\)` ) della realtà che gli forniamo. <img src="img/ml-process.png" width="60%" style="display: block; margin: auto;" /> --- # .orange[Cos'è il **Machine Learning**] .bg-washed-green.b--dark-green.ba.bw2.br3.shadow-5.ph4.mt1[ .left[ Il Machine Learning si occupa dello studio, della progettazione e dello sviluppo di algoritmi che danno ai computer la capacità di apprendere senza essere **esplicitamente** programmati. ] .tr[ — Arthur Samuel, 1959 ] ] <img src="img/samuel.png" width="70%" style="display: block; margin: auto;" /> --- # .orange[Cos'è il **Machine Learning**] .bg-washed-green.b--dark-green.ba.bw2.br3.shadow-5.ph4.mt1[ .left[ Si dice che un modello (un programma per computer) **impara** dall'**esperienza** (E) rispetto a una classe di **compiti** (T) e a una misura di **prestazione** (P), se la misura delle sue prestazioni nel compito in questione migliorano con l'**esperienza**. ] .tr[ — _Machine Learning_ - Mitchell, 1997 ] ] .pull-left[ <img src="img/Tom-Mitchell-2.webp" width="100%" style="display: block; margin: auto;" /> ] .pull-right[ <br> **.orange[Apprendimento]**: le prestazioni su **T** misurate da **P** migliorano con **E**. ] --- # .orange[Task] - .orange[Performance] - .orange[Esperienza] <small> **Problema di apprendimento** | Compito **T** | Prestazione **P** | Esperienza **E** ---------------------|------------|-------------------|----------------- Apprendimento della dama | Giocare a dama | % di partite vinte | **giocare (contro se stesso)** Riconoscimento della scrittura a mano | Riconoscimento/Classificazione di parole/numeri scritti a mano all'interno di immagini | % di parole classificate correttamente | **elaborazione di set di dati di parole scritte a mano con classificazione data** Auto a guida autonoma | Guida da A a B | Distanza media percorsa prima di un errore (giudicato dagli esseri umani) | **Sequenza di video, immagini fisse e comandi di guida registrati durante l'osservazione di un guidatore umano** Estrazione di malattie dall'EHR | classificare l'EHR in base alla malattia riportata (in linguaggio naturale a testo libero) | % di EHR classificati correttamente | **elaborare gli EHR con la classificazione data** Descrivere il movimento del paziente a letto | In ogni momento fornire posizione e dinamica dei pazienti | % di errore medio nella posizione o nella dinamica | **serie temporali di misure cinetiche del paziente prese da dispositivi indossabili e sensori di peso del letto, e posizione e dinamica raccolte da video registrati osservando pazienti a letto** </small> --- # .orange[Come **impara** una macchina?] .left-code[ Programmazione tradizionale: - **Fornisci** un .orange[algoritmo] (un insieme finito di istruzioni) - **Fornisci** .orange[input] dati (nessuna distinzione formazione/nuova) - **Ottieni** il .orange[risultato] desiderato. Apprendimento automatico: - **Fornisci** l'.orange[input] (dati) di training - **Fornisci** il .orange[risultato] .orange[training] noto/desiderato - **Ottieni** .orange[modelli] sempre migliori (su _nuovi_ dati restituiscono _nuovi_ risultati). Problema di .orange[*ottimizzazione*]! ] .right-plot[ <img src="img/MLvsTrad.png" width="100%" style="display: block; margin: auto;" /> ] --- class: inverse, middle, center, hide-count # Ready to go _deeper_? <img src="img/perplesso.jpg" width="100%" style="display: block; margin: auto;" /> --- # .orange[Neurone] Niente più che un nuovo rebranding (con marketing piuttosto spinto...) delle ormai vechiotte, snobbate e obsolete regressioni logistiche (generalizzate*). <br> <img src="img/neuron.png" width="60%" style="display: block; margin: auto;" /> <br> <br> <br> \*generalizzata := attivazione/link è una qualsiasi funzione **non lineare**, **differenziabile**, `\(\mathbb{R}^n\to \mathbb{R}\)`. --- ### .orange[Deep learning]?!<small><small> ...Scriviamone una .orange[completamente connessa]!</small></small> 3 input; 2 hidden layer w/ 2 neurons each; 1 (sigmoid) output --- ### Multi-dimensionale singola-informazione #### Reti .orange[convoluzionali] <br><br> <img src="img/cnn-struct.png" alt="https://towardsdatascience.com/covolutional-neural-network-cb0883dd6529" width="100%" style="display: block; margin: auto;" /> --- ### Una dimensione privilegiata a singola informazione #### Reti .orange[ricorrenti] <br> <img src="img/sequences.png" width="100%" style="display: block; margin: auto;" /> --- # Reti .orange[ricorrenti] <img src="img/rnn-full_CL.png" width="100%" style="display: block; margin: auto;" /> <small> .pull-left[ `\(x^{<t>}\)`: input position t `\(T_x\)`: length of input `\(W^{[l]}_{yx}\)` :weight matrix used with input x for output y on layer l `\(b^{[l]}_y\)`: (bias) vector for output y on layer l ] .pull-right[ `\(y^{<t>}\)` : output position t `\(T_y\)`: length of output `\(a^{[l]}_{<t>}\)` : activation vector at position t on layer l ] </small> --- # .orange[Quiz]: <small><small><small>https://app.wooclap.com/events/INTROMLT</small></small></small> .center[ <img src="img/MLvsTrad.png" width="60%" style="display: block; margin: auto;" /> ] --- class: inverse, middle, center, hide-count # .orange[Cos'è **Chat GPT**?]<br>(... al contrario 🙃 ...) .left[ - **Trasformatore** - **Preaddestrato** - **Generativo** - in **Chat** ] --- class: inverse, middle, center, hide-count # Chat GP.orange[T]: .orange[Trasformatore] .pull-left[ #### Giugno 2017 (cambiò tutto!) <img src="img/attention-is-all-you-need.png" alt="https://arxiv.org/abs/1706.03762" width="100%" /> ] .pull-right[ <img src="img/full_transformer.png" width="100%" /> ] --- # .orange[Encoder]/.orange[decoder] <img src="img/encdec.png" alt="https://jalammar.github.io/illustrated-transformer/" width="100%" style="display: block; margin: auto;" /> --- # <small>.orange[Embeddings] & .orange[codifica posizionale]</small> #### Squatch mangia pizza .left-column[ - .orange[Embeddings]: ogni parola ha la sua indipendente dalla posizione! - .orange[Codifica posizionale]: ogni posizione ha la sua indipendente dalla parola! - .orange[Codifica embedding posizionale]: semplice somma ] .right-column[ <img src="img/squatch-eat-pizza.png" alt="https://youtu.be/zxQyTK8quyY" width="100%" style="display: block; margin: auto;" /> .right[<small>https://www.youtube.com/watch?v=zxQyTK8quyY</small>] ] --- # <small>.orange[Embeddings] & .orange[codifica posizionale]</small> #### pizza mangia Squatch .left-column[ - .orange[Embeddings]: **cambiano** in ciascuna posizione (seguono la parola!) - .orange[Codifica posizionale]: **no**! - .orange[Codifica embedding posizionale]: somma **diversa**! ] .right-column[ <img src="img/pizza-eat-squatch.png" alt="https://youtu.be/zxQyTK8quyY" width="100%" style="display: block; margin: auto;" /> ] --- # _Vediamolo_ ... con .orange[Attenzione]! .pull-left[ #### One-head <img src="img/self-attention.png" alt="https://jalammar.github.io/illustrated-transformer/" width="100%" style="display: block; margin: auto;" /> ] .pull-right[ #### Multi-heads <img src="img/multi-head-self-attention-visual.png" alt="https://jalammar.github.io/illustrated-transformer/" width="100%" style="display: block; margin: auto;" /> ] --- # (.orange[Multi-head]) (.orange[self-]).orange[attention] <img src="img/qky-transformer.png" alt="https://youtu.be/zxQyTK8quyY" width="100%" style="display: block; margin: auto;" /> --- # (.orange[Multi-head]) (.orange[self-]).orange[attention] .pull-left[ <img src="img/multi-head-self-attention.png" alt="https://youtu.be/zxQyTK8quyY?si=a_y3mJaX10sREe03" width="100%" style="display: block; margin: auto;" /> ] --- # (.orange[Multi-head]) (.orange[self-]).orange[attention] .left-column[ <img src="img/multi-head-self-attention.png" alt="https://youtu.be/zxQyTK8quyY" width="100%" style="display: block; margin: auto;" /> ] .right-column[ <img src="img/encdec-attention.png" alt="https://youtu.be/zxQyTK8quyY" width="100%" style="display: block; margin: auto;" /> ] --- # .orange[Trasformatori] <img src="img/transformer-1.png" width="60%" style="display: block; margin: auto;" /> --- # .orange[Trasformatori] <img src="img/transformer-2.png" width="60%" style="display: block; margin: auto;" /> --- # .orange[Trasformatori] <img src="img/transformer-3.png" width="60%" style="display: block; margin: auto;" /> --- # .orange[Trasformatori] <img src="img/transformer-4.png" width="60%" style="display: block; margin: auto;" /> --- # .orange[Quiz]: <small><small><small>https://app.wooclap.com/events/TRASFORMER</small></small></small> <img src="img/transformer_decoding_2.gif" alt="https://jalammar.github.io/illustrated-transformer/" width="100%" style="display: block; margin: auto;" /> --- class: inverse, middle, center, hide-count # Chat G.orange[P]T: .orange[Preaddestrato] <img src="img/2023-Alan-D-Thompson-AI-Bubbles-Rev-7b.png" alt="https://s10251.pcdn.co/pdf/2023-Alan-D-Thompson-AI-Bubbles-Rev-7b.pdf" width="90%" /> --- # .orange[Trasferimento] dell'apprendimento <img src="img/transferlearningworkflow.png" alt="https://it.mathworks.com/help/deeplearning/import-deep-neural-networks.html?s_tid=CRUX_lftnav" width="100%" /> --- # .orange[Trasferimento] dell'apprendimento <img src="img/transfer-learning.png" alt="https://www.mdpi.com/1424-8220/23/2/570" width="80%" /> --- class: inverse, middle, center, hide-count # Chat .orange[G]PT: .orange[Generativo] --- # .orange[Classificatori] e .orange[regressori] <img src="img/class-reg.png" alt="https://www.sharpsightlabs.com/blog/regression-vs-classification/" width="100%" /> --- # .orange[Generatori] <img src="img/translation-with-transformers.png" alt="https://chatbotslife.com/language-translation-with-transformers-in-pytorch-ff8b32cf848" width="100%" /> --- # Generatori: .orange[usi] <img src="img/LLM-use-cases.png" alt="https://txt.cohere.com/llm-use-cases/" width="100%" /> --- class: inverse, middle, center, hide-count # In .orange[chat] --- # Prompt: .orange[ciclo] <img src="img/llm-prompt.png" alt="https://medium.com/@tariqsaad1997/chatgpt-prompt-engineering-part-4-building-a-customized-chatbot-165db7515c29" width="100%" /> --- # Prompt: .orange[composizione] <img src="img/chatgpt-prompt.png" alt="https://medium.com/@tariqsaad1997/chatgpt-prompt-engineering-part-4-building-a-customized-chatbot-165db7515c29" width="100%" /> --- # .orange[Quiz] <small><small><small>https://app.wooclap.com/events/LLMGENERATIVI</small></small></small> <img src="img/LLM-use-cases.png" alt="https://txt.cohere.com/llm-use-cases/" width="100%" /> --- class: middle, hide-count, inverse # .center[.orange[Break]] **Consigli sparsi**: - alzarsi - stiracchiarsi - guardare _lontano all'orizzonte_ (gli occhi ringraziano) - bere (acqua) - andare in bagno
−
+
07
:
00
--- class: inverse, middle, center, hide-count # .orange[Come uso **Chat GPT**?] .left[ - Base: **Web** - Medio: **Prompt design** - Avanzato: **API** ] <br> <br> <br> <br> <br> .right[ ... e meno male che evitiamo il gergo tecnico 😠] --- class: inverse, middle, center, hide-count # Accesso .orange[Web] https://chat.openai.com .pull-left[ <img src="img/chatgpt_start_policy.png" width="65%" /> <img src="img/chatgpt_free_plus.png" width="65%" /> ] .pull-right[ <img src="img/chat_gpt_verifica_eta.png" width="90%" /> ] --- class: inverse, middle, center, hide-count # .orange[Sessione] inter.orange[attiva]: **Chat GPT** https://chat.openai.com .left[ Richiesta informazioni: - qual è la capitale della Grecia? - Come si dice bagno in inglese? - Scrivi una mail amichevole per rimandare il mio appuntamento di questo pomeriggio con il mio collega Andrea. - calcola 836 x 1923 **.orange[\# ci fidiamo...?!]** (GPT3.5-Turbo vs GPT4-Turbo vs GPT4) ]
−
+
07
:
00
--- # Mettiamo il (3.5/4-).orange[turbo]! Richiesta info è divertente, infatti: - .orange[sembra] intelligente... - sbaglia .orange[di continuo]... - ci aiuta a divulgare facilmente .orange[fake news]... ma... - **.orange[Traduci]** questo testo in spagnolo... - **.orange[Riassumi]** questo articolo... - **.orange[Proponi]** la traccia per un corso... - **.orange[Rispondi]** a una mail... - **.orange[Estrai]** i livelli di colesterolo dai risultati delle analisi... - **.orange[Classifica]** le SDO in trauma/non-trauma... - **.orange[Correggi]** un esame... - **.orange[Abbozza]** un progetto... - **.orange[Scrivi]** il codice R per fare questa analisi... se _giochiamo_ seriamente fa comodo un po' più di **.orange[strategia]** 😉...<br> .right[... e Molta **.orange[competenza]**!] > Far svolgere compiti di cui non abbiamo competenze abbastanza elevate da capire se (**.orange[quando!!]**) **.orange[sbaglia]**... è **.orange[estremamente rischioso]**!! --- # Ruolo (System) Definire il ruolo di ChatGPT nel prompt assicura che le risposte siano allineate con le aspettative e le necessità specifiche. <small> - **.orange[Assistenza]**: Sei un assistente di ricerca. Aiuti a rispondere alle domande degli utenti su argomenti che variano dalla statistica biomedica, all'epidemiologia e alla ricerca clinica. - **.orange[Tutoraggio]**: Sei un tutor accademico. Guidi uno studente attraverso il complesso mondo dell'analisi dei dati clinici e gli insegni a interpretare i risultati statistici. - **.orange[Invenzione]**: Sei un ricercatore. Stai sviluppando una nuova ipotesi per spiegare il legame tra un fattore genetico e la suscettibilità a una malattia specifica. - **.orange[Guida]**: Sei un epidemiologo. Descrivi ai colleghi i pattern storici di una pandemia, evidenziando l'importanza della vaccinazione e delle misure preventive. - **.orange[Revisione]**: Sei un revisore per una rivista scientifica. Fornisci una recensione approfondita di uno studio recente sull'efficacia di un nuovo farmaco. - **.orange[Consulenza]**: Sei un consulente statistico in una trial clinico. Offri consigli piani di analisi dati a un team che sta cercando di valutare l'efficacia di un trattamento. - **.orange[Spiegazione]**: Sei un biostatistico. Stai spiegando ai tuoi studenti i metodi per l'analisi di sopravvivenza e il loro uso in studi clinici. - **.orange[Narrativa]**: Sei un storico della medicina. Stai raccontando gli eventi che hanno portato alla scoperta di un importante principio attivo. - ... --- # Contesto (System) Includere il contesto aiuta ChatGPT a comprendere meglio l'ambito e la rilevanza della domanda. <small> - **.orange[Ambiente]**: Stai analizzando i dati di salute globale raccolti dalla prima base umana su Marte. - **.orange[Evento]**: Partecipi a una conferenza internazionale, dove devi presentare i risultati di un'analisi statistica relativa a un'epidemia recente. - **.orange[Scientifico]**: Lavori in un laboratorio di ricerca clinica dove si sta verificando una svolta nella comprensione e nel trattamento di una malattia complessa attraverso nuove tecnologie di sequenziamento genetico. - **.orange[Leggale]**: Difendi le evidenze scientifiche in un processo che valuta l'impatto di un'azienda farmaceutica sulla diffusione di un farmaco controverso. - **.orange[Didattico]**: Stai insegnando i principi di epidemiologia e le tecniche di biostatistica agli studenti di medicina. - **.orange[Lavorativo]**: Sei a un colloquio per una posizione di bioinformatico in una compagnia biotecnologica innovativa, dove il tuo ruolo sarà analizzare e interpretare enormi set di dati radiologici. - ... --- # Task (User) Specificare il compito aiuta a focalizzare la risposta sul risultato desiderato. <small> - **.orange[Rispondere]**: Rispondi alla seguente serie di domande sulla biostatistica e l'epidemiologia clinica... - **.orange[Redigere]**: Scrivi un articolo sulla correlazione tra stili di vita e incidenza di malattie cardiovascolari. - **.orange[Tradurre]**: Traduci il termine "randomized controlled trial" in italiano. - **.orange[Risolvere]**: Calcola l'intervallo di confidenza per la differenza tra due proporzioni in... - **.orange[Proporre]**: Raccomanda il disegno di studio più adeguato per... - **.orange[Recensire]**: Scrivi una recensione critica del seguente articolo di ricerca su... - **.orange[Spiegare]**: Spiega la differenza tra "incidenza" e "prevalenza" in uno studio epidemiologico. - **.orange[Generare]**: Elabora un piano di studio per testare l'ipotesi che l'esposizione in utero a determinati farmaci influenzi lo sviluppo neurologico nei bambini. - **.orange[Estrarre]**: Estrai le informazioni chiave da un insieme di dati clinici riguardanti i pazienti COVID-19, identificando ad esempio i fattori di rischio più significativi per le complicanze gravi. - **.orange[Classificare]**: Classifica una serie di casi clinici in base alla probabilità che siano associati a una specifica malattia infettiva, usando i sintomi e i dati dei test di laboratorio forniti. - **.orange[Analizzare]**: Esegui un'analisi dei dati per determinare se esiste una correlazione significativa tra il consumo di una particolare sostanza e l'insorgenza di un certo tipo di cancro. - ... --- ## Indicazioni sull'esecuzione e l'output (User) Delineare istruzioni chiare passo-passo guida ChatGPT nel fornire una risposta strutturata. <small> - **.orange[Elenco puntato]**: Fornisci la tua risposta in punti elenco (liste numerate, paragrafi, intestazioni/sottointestazioni, tabelle, grafici/diagrammi, grassetto/corsivo/sottolineato, rientri e spaziature, citazioni e citazioni, collegamenti ipertestuali, note a piè di pagina/note di chiusura). - **.orange[Spiegazioni passo dopo passo]**: Fornisci una spiegazione passo dopo passo di come risolvere il problema. - **.orange[Incoraggiare risposte ponderate]**: Pensa criticamente e considera sia i pro che i contro prima di rispondere. - **.orange[Guidare la lunghezza della risposta]**: Fornisci un breve riassunto (circa 200 parole) dei punti principali. - **.orange[Richiesta di esempi/referenze]**: Includi almeno tre esempi per supportare il tuo argomento. - **.orange[Definire un sentimento]**: Nello scrivere la risposta, il sentimento che deve trasparire deve essere estremamente gioioso. - ... --- # Extra (User) <small> #### Fornire esempi Gli esempi concretizzano le aspettative e chiariscono il tipo di risposta attesa. > Esempio: "Come nell'analisi pubblicata su 'Journal of Biostatistics' riguardo..." #### Tono Definire il tono assicura che la comunicazione sia adeguata al contesto e al pubblico. > Esempio: "Usa un linguaggio tecnico ma accessibile a non esperti..." #### Delimitatori I delimitatori aiutano a distinguere le parti del prompt da quelle fornite come esempi o specificazioni. > Esempio: `"""`, `>>>`, `---`, `` ``` ``, .... #### Parole "seme" (seed-words) Le seed-words guidano ChatGPT verso aree tematiche specifiche, aumentando la precisione delle risposte. > Esempio: "regressione logistica", "coorte", "rischio relativo". </small> --- class: inverse, middle, center, hide-count # .orange[Sessione] inter.orange[attiva]: **Prompt Design** .pull-left[ https://chat.openai.com .left[ #### Semplice, chiara, specifica 1. Ruolo 2. Contesto 3. Task 4. Istruzioni per l'Esecuzioni e l'Output 5. Extra - Esempi - Tono/Modalità - Parole ***.orange[seed]*** - Testo extra """delimitato""" 6. Raffinare iterativamente! ] ] .pull-right[ https://bit.ly/ws-chatgpt-rstudio .left[ #### Alcuni esempi applicativi 1. Richiesta chiarimenti 2. Riassunto 3. Risposta a una mail 4. Proposta di opzioni da esplorare 5. Completamento sezioni 4. Estrazione di dati 5. Spiegazioni sul codice 5. Generazione di codice 6. Risoluzione di bug 7. EDA 9. Proposta di analisi 6. Classificazione di dati ] ]
−
+
10
:
00
--- class: inverse, middle, center, hide-count # Accesso .orange[API] --- # <small>Application Programming Interface</small> ### .orange[Request] <img src="img/api-request.png" alt="https://platform.openai.com/docs/guides/gpt/chat-completions-api" width="100%" /> https://platform.openai.com/docs/guides/gpt/chat-completions-api --- # <small>Application Programming Interface</small> ### .orange[Response] .center[ <img src="img/api-response.png" alt="https://platform.openai.com/docs/guides/gpt/chat-completions-api" width="80%" /> ] https://platform.openai.com/docs/guides/gpt/chat-completions-api --- # .orange[Costi] (2023/11/13) <img src="img/gpt-api-price.png" alt="https://openai.com/pricing" width="80%" /> https://openai.com/pricing --- # .orange[Limiti] sui token (free/base tier) .pull-left[ #### Gratis <img src="img/free-token-quota.png" alt="https://openai.com/pricing" width="100%" /> ] .pull-right[ #### Tier 1 (pagamento, base) <img src="img/tier1-token-quota.png" width="100%" /> ] > RPM/RPD: Richieste per minuto/giorno (day) > TPM/TPD: Token per minuto/giorno <small>https://platform.openai.com/docs/guides/rate-limits/what-are-the-rate-limits-for-our-api</small> --- # .orange[Conteggio] tokens <small>https://help.openai.com/en/articles/4936856-what-are-tokens-and-how-to-count-them</small> .pull-left[ <img src="img/token-count.png" alt="https://help.openai.com/en/articles/4936856-what-are-tokens-and-how-to-count-them" width="100%" /> ] .pull-right[ <br> <br> <br> > Interattiva: https://platform.openai.com/tokenizer > > Programmatica: https://github.com/openai/tiktoken ] --- # .orange[Playground] (GUI4API test 😅) <img src="img/playground.png" alt="https://platform.openai.com/playground" width="100%" /> <img src="img/playground-cost.png" alt="https://platform.openai.com/playground" width="100%" /> https://platform.openai.com/playground --- # .orange[Quiz] https://app.wooclap.com/events/TOBGPT --- class: inverse, middle, center, hide-count # .orange[Sessione] inter.orange[attiva] **API Prompt Design** .pull-left[ https://chat.openai.com .left[ #### Semplice, chiara, specifica 1. Ruolo 2. Contesto 3. Task 4. Istruzioni per l'Esecuzioni e l'Output 5. Extra - Esempi - Tono/Modalità - Parole ***.orange[seed]*** - Testo extra """delimitato""" 6. Raffinare iterativamente! ] ] .pull-right[ https://bit.ly/ws-chatgpt-rstudio .left[ #### Funzioni e compositori "base" - 99-api/ ] ]
−
+
05
:
00
--- class: inverse, middle, center, hide-count # .orange[Riflessioni su **Chat GPT**] .left[ - Chi lo offre/usa? **Vincoli** - Cosa offre? **Problematiche** - Come lo offre/usa? **Trasparenza** - Cosa insegna? **Educazione/Formazione** ] --- class: inverse, middle, center, hide-count # .orange[Vincoli] .left[ - Dati di addestramento prodotti da poche fascie sociali / geografiche nel mondo - Possibilità di utilizzo da poche fascie sociali / geografiche nel mondo ] --- # .orange[Costi] addestramento .orange[a casa] <img src="img/gpt3-v100.png" alt="https://sunyan.substack.com/p/the-economics-of-large-language-models" width="100%" /> <img src="img/gpt3-h100.png" alt="https://sunyan.substack.com/p/the-economics-of-large-language-models" width="100%" /> --- # .orange[Costi] addestramento .orange[in cloud] <img src="img/cost-gpt3.png" alt="https://www.nextplatform.com/2022/12/01/counting-the-cost-of-training-large-language-models/" width="100%" /> --- # Costi di utilizzo? Open AI, da una stima indipendente: https://www.semianalysis.com/p/the-inference-cost-of-search-disruption -- ~ **.orange[700.000 $/giorno]** L'implementazione dell'attuale ChatGPT in ogni ricerca effettuata da Google richiederebbe **512.820,51 server A100 HGX** con un totale di **4.102.568 GPU A100**. Il costo totale di questi server e del networking **supera i 100 miliardi di dollari di capitale speso, di cui Nvidia riceverebbe buona parte. - disponibilità dei dati (chi li produce? chi li raccoglie?) - un passo avanti alla legge (Quanto veloci le normative? Quanto "buone" con tale velocità ?) --- class: inverse, middle, center, hide-count # .orange[Problematiche] .left[ - allucinazioni - sbagli "invisibili", apparente sicurezza e correttezza - mancanza di (reale) comprensione del mondo reale - Normative di fatto inesistenti (oligarchia dei provider) ] --- class: inverse, middle, center, hide-count # .orange[Trasparenza] .left[ - Protezione del copyright sui dati utilizzati <img src="img/openai_shield.png" width="100%" /> - Dichiarazione esplicita / obbligatoria di utilizzo sui contenuti prodotti ] --- class: inverse, middle, center, hide-count # .orange[Educazione] / .orange[Formazione] .left[ - modelli i cui risultati non possono essere spiegati (seppur non generati da una intelligenza!) - peggioramento delle competenze digitali - peggioramento dei dati di addestramento dei modelli stessi - amplificazione delle polarizzazioni - deeper deepfakes ] --- class: inverse, middle, center, hide-count # .orange[Conclusioni 🎯] --- # Chat GPT... - Come **.orange[tutti]** i modelli addestrati con tecniche MLT impara dai dati... quindi **.orange[incorpora conoscenza]** e **.orange[amplifica distorsioni!]** - **.orange[non]** è intelligente... ma uno strumento statico (come una calcolatrice) molto potente - è un codice, possiamo ingegnerizzare le domande! (già un lavoro per molti!) - Estremamente costoso sia da costruire che da (far) utilizzare... che concorrenza ha chi può permettersi di offrirlo? - Tecnologia dirompente e sbalorditiva basata su linguaggio... preprogativa diretta solo dell'uomo fin'ora - che velocità avranno le norme nazionali e internazionali? - che giustezza avranno (troppo restrittive, troppo poco, in modo/ambito non efficace o dannoso)? --- # Chat GPT... - **.orange[Possiamo permetterci di ignorarlo?]** - **.orange[Possiamo permetterci di non impararlo?]** - **.orange[Possiamo permetterci di non insegnarlo?]** ma di più... - **.orange[Possiamo permetterci l'ingenuità non tanto aver paura qualcuno "bari", quanto piuttosto di non **richiedere** venga studiato, appreso **e utilizzato** a tutti i livelli sanitario, politico, scolastico, ...?! (come una calcolatrice...)]** --- # .orange[Guidance] for .orange[Generative AI] in .orange[education] and .orange[research] <iframe src="https://unesdoc.unesco.org/ark:/48223/pf0000386693?showcase=0" width="100%" height="400px" data-external="1"></iframe> > Per scaricare il PDF, [clicca qui](https://inee.org/sites/default/files/resources/386693eng.pdf) --- ## .orange[EdGPT]... <iframe src="https://ednovation.com/?showcase=0" width="100%" height="500px" data-external="1"></iframe> --- # .orange[Link Utili] <small><small><small><small><small>(.black[AIE]-.orange[Giovani]: https://www.old.epidemiologia.it/aie-giovani/)</small></small></small></small></small> <small> <small> <small> Corsi MLT/DL/NLP (gratis, certificati a pagamento): 1. https://www.coursera.org/specializations/machine-learning-introduction 2. https://www.coursera.org/specializations/deep-learning 3. https://www.coursera.org/specializations/natural-language-processing Machine Learning: - (libro): https://www.cambridge.org/core/books/machine-learning/621D3E616DF879E494B094CC93ED36A4 Deep Learning: - Convoluzione: https://towardsdatascience.com/covolutional-neural-network-cb0883dd6529 - Reti ricorrenti: https://karpathy.github.io/2015/05/21/rnn-effectiveness/ - Trasformer: - (Attention is All You Need) https://arxiv.org/abs/1706.03762 - (video) https://youtu.be/zxQyTK8quyY - (testo) https://jalammar.github.io/illustrated-transformer/ - Generative AI: http://ig.ft.com/generative-ai/ GPT: - Chat GPT: https://chat.openai.com - API: https://openai.com/product - Tokenizer (GUI): https://platform.openai.com/tokenizer - Tiktoken (BPE): https://github.com/openai/tiktoken - Playground: https://platform.openai.com/playground - EdGPT: https://ednovation.com/edgpt/ Corso Prompt Engeneering: - (gratis) https://www.deeplearning.ai/short-courses/chatgpt-prompt-engineering-for-developers/ Report UNESCO: - (sito) https://unesdoc.unesco.org/ark:/48223/pf0000386693 - (PDF) https://inee.org/sites/default/files/resources/386693eng.pdf Costs reports: - https://sunyan.substack.com/p/the-economics-of-large-language-models - https://www.nextplatform.com/2022/12/01/counting-the-cost-of-training-large-language-models/ - https://www.semianalysis.com/p/the-inference-cost-of-search-disruption --- class: inverse, center, middle, hide-count name: mylastslide .bg-washed-green.b--dark-green.ba.bw2.br3.shadow-5.ph4.mt5[ .left[ _**.orange[Quando ormai si vola] / .orange[Non si può cadere più]**_ ] .tr[ — Vasco Rossi<br>1995/07/12 **Gli angeli**<br>https://youtu.be/Qi2wDkUIFGk ] ] ## Grazie per la .orange[vostra] attenzione 😘 Slides: https://bit.ly/ws-chatgpt-aie-giovani <img src="img/bit.ly_ws-chatgpt-aie-giovani.png" width="15%" /> [
](https://www.unipd-ubep.it/) [**www.unipd-ubep.it**](https://www.unipd-ubep.it/) | [
](mailto:Corrado.Lanera@ubep.unipd.it) [**Corrado.Lanera@ubep.unipd.it**](mailto:Corrado.Lanera@ubep.unipd.it) [
](https://github.com/corradolanera) [
](https://twitter.com/corradolanera) [
](https://telegram.me/CorradoLanera) **@CorradoLanera** | [
](https://github.com/UBESP-DCTV) **@UBESP-DCTV** <br> <br>