Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


appunti di informatica LUISS, Appunti di Fondamenti di informatica

appunti di informatica economia e management luiss 2024/2025 sintesi dei power point validi per la teoria

Tipologia: Appunti

2024/2025

In vendita dal 02/02/2026

beatrice-terrinoni
beatrice-terrinoni 🇮🇹

8 documenti

1 / 27

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Informatica
Autore: Beatrice Terrinoni
È vietata la riproduzione, anche parziale, la fotocopiatura o la distribuzione ai sensi della Legge
633 /1941 sul diritto d'autore e successive modifiche.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b

Anteprima parziale del testo

Scarica appunti di informatica LUISS e più Appunti in PDF di Fondamenti di informatica solo su Docsity!

Informatica

Autore: Beatrice Terrinoni

È vietata la riproduzione, anche parziale, la fotocopiatura o la distribuzione ai sensi della Legge

633 /1941 sul diritto d'autore e successive modifiche.

  1. Il pensiero computazionale Esistono quattro tecniche chiave per sviluppare il pensiero computazionale
  • Decomposizione (decomposition) - Scomporre un problema o sistema complesso in parti più piccole e gestibili.
  • Riconoscimento del modell o (pattern recognition) – Ricerca di somiglianze tra e all’interno dei problem
  • Astrazione (abstraction) – Concentrarsi solo sulle informazioni importanti, ignorando i dettagli irrilevanti
  • Progettazione algoritmica (algorithmic design) – Sviluppare una soluzione dettagliata al problema o le regole da seguire per risolverlo Problem solving
  1. Analisi del problema – L’identificazione dell’obiettivo da raggiungere e dello stato iniziale, ossia dell’insieme dei dati iniziali oggettivi e significative dei quali si dispone
  2. Progettazione della strategia risolutiva (algoritmo) – La specificazione delle azioni da intraprendere per risolvere il problema, ossia per trasformare I dati iniziali in dati finali
  3. Verifica della soluzione – Il raggiungimento dello stato finale della strategia risolutiva, consistente nel verificare che i risultati ottenuti siano rispondenti agli obiettivi iniziali Algoritmo è un insieme finito ed ordinato di passi (istruzioni) non ambigui, che determinano la risoluzione di un problema. Un algoritmo viene caratterizzato da alcuni parametri quali:
  • Correttezza - Un algoritmo è corretto se risolve il problema per cui è stato creato, ossia se per ogni input calcola correttamente l’output.
  • Completezza - Un algoritmo è completo se considera tutti i possibili casi appartenenti al problema, ossia se funziona per tutti i possibili input.
  • Efficienza - L’efficienza di un algoritmo viene espressa in termini di “spazio” e “tempo” Le proprietà principal i di un algoritmo sono:
  • Finitezza – L’algoritmo deve essere compost da un numero finito di passi
  • Non ambiguità– I passi costituenti l’algoritmo devono essere interpretabili in modo univoco da un esecutore, sia esso umano o una macchina
  • Terminazione – L’esecuzione di un algoritmo deve terminare dopo un tempo finite
  • Eseguibilità – Gli informatici utilizzano il termine efficace per indicare il concetto di essere eseguibile I Diagrammi di flusso sono un linguaggio grafico per la rappresentazione di un algoritmo: Un programma è la codifica di un algoritmo in un linguaggio comprensibile all’esecutore Un programma è dunque la rappresentazione di un algoritmo in un particolare linguaggio di programmazione. I programmi sono parametrici Ogni linguaggio di programmazione dispone di un insieme di istruzioni ed è caratterizzato da: una sintassi, cioè l’insieme delle regole che specificano come comporre istruzioni ben formate una semantica che specifica il significato di ogni istruzione ben formata

Indirizzi di memoria I bit nelle memorie sono raggruppati in celle: Ogni cella ha un indirizzo: I byte vengono raggruppati in parole (che oggi sono di 4/8 byte) che la CPU accede in lettura scrittura Memorie disponibili

  • Memorie veloci , integrate nello stesso chip della CPU, ma costose: MPV (per Memorie Piccole e Veloci).
  • Memorie di grande capacità, relativamente lente, economiche ed accessibili tramite il bus: o Capacità circa 100 volte superiori; o Tempi di accesso circa 10 volte superiori. o Chiamiamole MGL (per Memorie Grandi e Lente). Hard Disk vs SSD
  • La frammentazione di un disco SSD non influisce sulle sue prestazioni, poiché il tempo d'accesso a qualunque cella è identico;
  • Attualmente un SSD ha un limite sul numero massimo di operazioni di scrittura (ma è un numero MOLTO elevato)
  • Il tasso di rottura di un SSD oscilla tra lo 0.5% e il 3%,mentre negli hard disk può raggiungere il 10%.
  • Un SSD ha minori consumi e minore produzione di calore
  • Un SSD ha tempi di accesso e archiviazione ridotti: si lavora nell'ordine dei decimi di millisecondo; il tempo di accesso dei dischi magnetici è oltre 50 volte maggiore, attestandosi invece tra i 5 e i 10 millisecondi.
  • Il costo per byte del SSD è sensibilmente più elevato (per ora).
  1. Algoritmi Il calcolatore come strumento per gestire informazione Soggetto 1 > descrizione della soluzione > soggetto 2 Definire il problema
  • Eliminare le ambiguità nella formulazione del problema
  • Individuare il risultato che si vuole ottenere, gli obiettivi da raggiungere
  • Evidenziare
    • le regole da rispettare
    • i vincoli interni ed esterni
    • i dati espliciti ed impliciti
  • Eliminare i dettagli inutili ed ambigui La descrizione della soluzione di un problema dipende dall’esecutore Ogni istruzione elementare è associata a un’ azione elementare (oppure a una successione di azioni elementari) che può essere direttamente compiuta dall’esecutore Algoritmo (definizione informale)
  • Sequenza finita di istruzioni,
  • Comprensibili da un esecutore (si può trattare di uno strumento automatico),
  • Che descrive come realizzare un compito (come risolvere un “problema”). Un esecutore è definito in base a tre elementi:
  • l’insieme delle operazioni che è capace di compiere;
  • l’insieme delle istruzioni che capisce (sintassi);
  • quali operazioni associa ad ogni istruzione che riconosce (semantica) Proprietà di un’azione elementare
  • Finitezza: l’azione deve concludersi in un tempo finito
  • Osservabilità: l’azione deve avere un effetto osservabile, cioè deve produrre qualcosa - Riproducibilità Proprietà degli algoritmi
  • Correttezza: L’algoritmo perviene alla soluzione del compito cui è preposto, senza difettare di alcun passo fondamentale
  • Efficienza: L’algoritmo perviene alla soluzione del problema usando la minima quantità di risorse fisiche Gli algoritmi sono parametrici Criteri di classificazione dei dati
  • Visibilità da parte dell’utente
    • visibile (di ingresso o uscita)
    • trasparente (dati temporanei di supporto)
  • Variabilità nel tempo
    • costanti
    • variabili (acquisizione dall’esterno o assegnazione)
  • Struttura
    • elementari (interi, alfanumerici, booleani, …)
    • strutturati (array, matrici, …) Strutture dati
  • Fondamentali –Problema duale rispetto a quello della definizione di algoritmi –NicklausWirth (1976): “algoritmi + strutture dati = programmi” –L’uso di strutture dati adeguate semplifica la soluzione di un problema
  • Classificazione
  1. Sistema operativo, Software Applicativi e documenti, Open Source Il software (o programmi) Sequenza di istruzioni che permette al computer di svolgere dei compiti. Due categorie: - software di sistema: linguaggi di programmazione - sistemi operativi: programmi applicativi **Tipi di programmi applicativi
  • Mercato orizzontale**
  • di uso generico
  • generalmente riuniti in suite di programmi (Es. Microsoft Office) - Mercato verticale
  • applicazioni pensate per un pubblico specifico
  • Gestione prenotazioni alberghiere, stima costi per la costruzione di edifici, etc.
  • Applicazioni personalizzate
  • Professionisti che vogliono software adatto al proprio modo di lavorare **Tipi di distribuzione dei programmi applicativi
  • Shareware e freeware shareware** : Software distribuiti gratuitamente per un periodo di prova per poi bloccarsi se non si perfeziona l'acquisto freeware: Software distribuiti gratuitamente per sempre ma col solo o bbligo di registrars i come utenti - Open source Gli autori del software distribuiscono anche i “sorgenti” del programma, r inunciando a qualsiasi diritto Chi voglia manipolare, migliorare o adattare il software deve poi mettere a disposizione di tutti il software secondo lo stesso principio Shareware Vengono distribuiti sotto tale licenza in genere piccoli programmi facilmente scaricabili via Internet
  • Il software sotto tale licenza può essere liberamente ridistribuito e utilizzato per un periodo di tempo di prova variabile (generalmente 30 giorni) Freeware
  • Il termine freeware indica un software che viene distribuito in modo gratuito
  • Il freeware è distribuito indifferentemente con o senza codice sorgente, a totale discrezione dell'autore e senza alcun obbligo al riguardo Le interfacce utente
  • Le interfacce sono il mezzo dell'interazione tra uomo e macchina.
  • Le interfacce grafiche (GUI) hanno elementi comuni, in modo da aiutare l'utente a muoversi in ogni ambiente con familiarità. Tipi di interfacce
  • Interfacce grafiche (GUI)
  • Interfacce a stilo
  • un piccolo puntale per dare comandi su uno schermo sensibile
  • Interfacce touchscreen
  • Interazione tramite contatto con le dita
  • Interfacce conversazionali
  • Interazione vocale

Livelli del software

  • Il BIOS si rapporta direttamente con l'hardware del computer , fornendo informazioni al sistema operativo;
  • I programmi applicativi gestiscono l'hardware solo attraverso il sistema operativo stesso. Compiti del sistema operativo (1/2)
  • Gestire le risorse del computer
  • Gestire l'interazione tra utente e programmi
  • Regolare il multitasking e il multithreading Compiti del sistema operativo (2/2)
  • Gestire la contemporaneità di più utenti e il loro accesso alle risorse.
  • Distribuire le operazioni tra più processori.
  • Avvertire l'utente di eventuali errori, e impedire che facciano perdere dati e informazioni.
  • Gestire l'alimentazione elettrica (ad es. nei portatili). Categorie di sistemi operativi (1/2)
  • S.O. per i desktop
    • Windows, Mac OS X, DOS, Linux
    • Meno potenti e affidabili di tutti, sono però i più diffusi
  • S.O. per i server
  • Windows Server, OS/2, UNIX, Linux
  • Sicuri e portabili
  • sono pensati per la gestione multitasking e multithreading di applicazioni mission- critical - S.O. per i mainframe
  • Open MVS, VMS
  • software proprietario in genere
  • Ogni azienda ha prodotto un suo s.o., rendendo la comunicazione tra elaboratori molto complessa Driver fisico
  • Controlla i meccanismi fisici dell’ unità di lettura dei dispositivi esterni di I/O (device controller).
  • Interagisce con la CPU attraverso i registri.
  • Utilizza una memoria dedicata alle operazioni I/O (Memoria ad accesso diretto). Driver logico
  • Software che:
  • gestisce gli errori in lettura/scrittura;
  • gestisce i nomi/indirizzi del device driver;
  • gestisce le code di attesa La Licenza Software
  • La licenza in ambito informatico è il contratto che può accompagnare un prodotto software GNU General Public License La licenza GNU è intesa a garantire lo scambio e la condivisione di software libero
  • La licenza GNU assicura che il software resti libero per tutti gli utenti Open Source Il termine open source (letteralmente "codice aperto") si riferisce a un modello di sviluppo del software in cui il codice sorgente è reso pubblicamente accessibile , liberamente utilizzabile , modificabile e ridistribuibile da chiunque. Con l’acronimo ricorsivo GNU (GNU’s not Unix) si creò un set di software che venivano distribuiti con il codice sorgente e regolati da licenza GPL (General Public License)Linux: Sistema operativo modulare con un kernel centrale
  • se un pacchetto si perde nella rete il mittente o il destinatario devono gestirne esplicitamente la ritrasmissione.
  • Analogia: il sistema postale “tradizionale”
  • Circuito virtuale
  • prima della spedizione dei pacchetti si stabilisce un percorso tra sorgente e destinazione (circuito virtuale)
  • ogni pacchetto contiene, oltre ai dati, un identificatore del circuito virtuale associato
  • i nodi intermedi non devono prendere alcuna decisione di instradamento sui singoli pacchetti, poiché tale decisione viene presa una volta per tutte definendo il circuito virtuale.
  • Analogia: il sistema telefonico “tradizionale"
  • Ethernet è il tipo di rete locale più diffuso Praticamente qualunque dispositivo (non solo computer,ma anche stampanti,etc.) prevede la possibilità di usare una scheda Ethernet per connettersi ad una rete locale Architetture dei servizi in rete
  • Client-server
  • Uno o più server gestiscono la condivisione delle risorse e controllano gli accessi
  • le altre stazioni della rete sono dette client
  • le risorse condivise e rese accessibili ai client sono collegate direttamente o comunque controllate dal server. - Peer-to-peer
  • Le stazioni sono connesse in modo paritetico e non esiste una gerarchia per la gestione e il controllo della rete: ogni stazione rende disponibili o richiede dati e condivide le risorse sia hardware sia software di cui dispone
  • ogni stazione deve gestire il controllo degli accessi alle proprie risorse, definendo cosa condividere e con chi, in modo da proteggersi da eventuali intrusioni. Internet e Protocolli di Rete
  • Internet è un'infrastruttura globale che connette reti di calcolatori, permettendo loro di comunicare e scambiare dati attraverso protocolli di rete.
  • Un protocollo di rete è un insieme di regole che definiscono come due o più dispositivi comunicano tra loro all'interno di una rete, specificando formato, tempistiche e modalità di trasmissione dei dati Protocollo di rete
  • Due sistemi (peer) comunicano scambiandosi blocchi strutturati di dati, seguendo le regole definite dai protocolli di rete.
  • Gli elementi chiave di un protocollo sono:
    • Sintassi → Definisce il formato e la struttura dei blocchi di dati trasmessi.
    • Semantica → Specifica il significato di ciascun campo all'interno di un blocco di dati (detto anche pacchetto) e come i dispositivi riceventi devono interpretarli per garantire una comunicazione corretta.
    • Temporizzazione → Determina l'adattamento della comunicazione alla velocità di trasmissione, regolando l'ordinamento temporale delle attività, la sincronizzazione tra i dispositivi e la gestione del flusso di dati per garantire una trasmissione efficiente e senza errori.
  • Per gestire la complessità della comunicazione in rete, i protocolli si basano su modelli di comunicazione a livelli, che suddividono il processo di scambio dati in fasi (o livelli) ben definite. Modello di comunicazione a livelli
  • Il modello di comunicazione a livelli è un'architettura concettuale che suddivide il processo di comunicazione tra dispositivi di rete in più livelli, ciascuno con una funzione specifica.

Questo approccio favorisce la modularità, l’interoperabilità tra sistemi diversi e una gestione più efficiente della rete Principali modelli di riferimento

  • Modello ISO-OS I (Open Systems Interconnection) - Modello TCP/IP Modello ISO-OSI
  • Il modello ISO/OSI (Open Systems Interconnection) è un modello di comunicazione a 7 livelli che descrive il funzionamento della comunicazione tra dispositivi di rete. Modello TCP/IP
  • Il modello TCP/IP è un'architettura di rete a 4 livelli che descrive il funzionamento della comunicazione su Internet IP (Internet Protocol)
  • Si occupa dell’instradamento dei pacchetti sulla rete, determinando il percorso migliore per raggiungere la destinazione.
  • Viene rappresentato in notazione decimale puntata (dotted decimal), ovvero come una sequenza diquattro numeri decimali separati da un punto (es. 102.54.94.97).
  • Ogni numero rappresenta un byte (8 bit) e assume un valore compreso tra 0 e 255.
  • Un indirizzo IP è suddiviso in due parti :
    1. Identificativo di rete (net ) → Indica la rete a cui appartiene il dispositivo.
    2. Identificativo del dispositivo (host) → Specifica il singolo dispositivo all’interno della rete. IP è un protocollo connectionless , ovvero non stabilisce una connessione diretta tra mittente e destinatario prima di inviare i dati. **Affidabilità del TCP/IP
  • TCP è un protocollo connection-oriented** → Prima di trasmettere i dati, stabilisce una connessione virtuale tra mittente e destinatario.
  • Garantisce la consegna affidabile dei dati, assicurando che il flusso sia:
    • Completo → Nessuna parte dei dati viene persa.
    • Ordinato → I pacchetti vengono ricevuti nella sequenza corretta.
    • Senza duplicazioni → Evita la trasmissione ripetuta di pacchetti già ricevuti.
  • Questi nome vengono tradotti in indirizzi IP numerici mediante il Domain Name System World Wide Web: terminologia essenziale Pagina Web :
  • È costituita da “oggetti” (di solito: pagina HTML iniziale+oggetti indirizzati)
  • È indirizzata da un URL Uniform Resource Locator
  • Identifica un oggetto nella rete e specifica il modo per accedere ad esso
  • Ha due componenti: nome dell’host e percorso nell’host: Il browser è un client per il Web : Il Web : protocollo http
  • http: HyperT ext T ransfer Protocol
  • Protocollo di livello applicativo per il Web
  • Usa il modello client/server –client: browser che richiede, riceve e “mostra” oggetti Web –server: Web server che invia oggetti in risposta alle richieste
  1. Intelligenza Artificiale Definizione dell’ Organizzazione per la Cooperazione e lo Sviluppo Economici (OCSE)
  • viene identificato come “sistema di intelligenza artificiale” qualsiasi modello di implementazione basato su “una macchina” in grado di “dedurre dall’input che riceve”, grazie all’implementazione di sofisticate capacità adattive dotate di diversi livelli di autonomia, una serie di dati processabili finalizzati a generare svariati “output” I sistemi di IA possono essere basati sul solo software e agire nel dominio virtuale (assistenti vocali, software per l’analisi delle immagini, motori di ricerca, sistemi per il riconoscimento della voce e dei volti), oppure possono far parte di dispositivi hardware (robot avanzati, automobili autonome, droni e internet delle cose).” Il Machine Learning (o apprendimento automatico)
  • Una branca dell'Intelligenza Artificiale che si occupa dello sviluppo di algoritmi finalizzati all'apprendimento automatico, ovvero capaci di estrarre conoscenza dai dati e di migliorare automaticamente le proprie prestazioni nell’esecuzione di un compito, attraverso l’esperienza, senza essere esplicitamente programmati per ogni situazione. Intelligenza Artificiale VS Machine Learning
  • Il ML utilizza una varietà di tecniche statistiche per consentire ai computer di "apprendere" dai dati, identificando pattern e prendendo decisioni basate su esempi passati (dati). Questa capacità di apprendimento automatico è al cuore del ML e lo distingue dalle tecniche tradizionali di programmazione AI.
  • L’IA è l’obiettivo generale (creare sistemi intelligenti), mentre il ML è uno degli approcci più efficaci e utilizzati per raggiungerlo, basato sull’apprendimento dai dati. i l modello è l'entità che viene addestrata : apprende una funzione f(x) ≈ y, dove x è l’input e y l’output desiderato Supervised Learning ( o apprendimento supervisionato)
  • In questo tipo di apprendimento, un modello viene addestrato utilizzando un insieme di dati di addestramento etichettati , ovvero dati in cui le risposte corrette o le e tichette sono già fornite da esperti Una volta che il modello è stato addestrato, può essere utilizzato per fare predizioni su nuovi dati in base a ciò che ha appreso durante il processo di addestramento.
  • Ad esempio, se il modello è stato addestrato utilizzando dati di immagini di gatti e cani con le rispettive etichette, può essere utilizzato per classificare nuove immagini come gatto o cane.
  • L'apprendimento supervisionato è ampiamente utilizzato in molti problemi di classificazione e regressione, dove l'obiettivo è rispettivamente assegnare le etichette di classe corrette o prevedere un valore continuo Supervised learning
  • Abbiamo dati etichettati da esperti.
  • Se l' etichetta è categorica , è un problema di CLASSIFICAZIONE (CLASSIFICATION ).
  • (^) Se l' etichetta è numerica , allora è un problema di REGRESSIONE (REGRESSION). Supervised learning vs. Unsupervised learning
  • A differenza dell'apprendimento supervisionato (supervised learning), in cui sono fornite etichette o risposte corrette durante il processo di addestramento, nell’apprendimento non supervisionato (unsupervised learning) non sono disponibili etichette o risposte giuste predefinite.
  • L'obiettivo dell'apprendimento non supervisionato è quello di estrarre modelli, strutture o relazioni nascoste all'interno dei dati senza la guida di etichette o risposte esterne.
  • Gli algoritmi di apprendimento non supervisionato cercano di scoprire pattern, raggruppamenti o strutture intrinseche all'interno dei dati di input, consentendo di ottenere una migliore comprensione dei dati stessi.
  1. Generative AI Dietro a qualsiasi sistema di IA ci sono due attori principali:
  • Dati : fatti o statistiche, spesso rappresentati in un formato strutturato come una tabella, un foglio di calcolo o un database.
  • Algoritmi (e modelli): "cervello" di qualsiasi software Modelli Un modello è una sequenza di eventi o relazioni che si ripetono in modo riconoscibile e che si possono trovare in un'ampia gamma di dati, compresi quelli numerici, testuali, di immagine e audio. Definizione di AI Una branca dell'informatica e dell'ingegneria che si occupa della progettazione e dell'implementazione di sistemi in grado di imitare il comportamento intelligente degli esseri viventi. Intelligenza artificiale Generativa I modelli di intelligenza artificiale generativa sono algoritmi progettati per generare nuovi campioni di dati. Architetture di Intelligenza artificiale Generativa Dall'applicazione alla tecnologia: come funziona tutto questo?
  • (^) Reti avversarie generative (GAN) : Due reti neurali si sfidano tra loro per generare nuovi campioni di dati.
  • (^) Trasformer : Modello avanzato per gestire le sequenze sfruttando i meccanismi di attenzione, utilizzato in modelli come GPT e BERT per il testo. - Apprendimento avversivo L'apprendimento avverso è un paradigma di apprendimento in cui due agenti si impegnano in un gioco a somma zero Reti avversarie generative Nelle GAN, i due attori sono due reti neurali: generatore e discriminatore Dati sequenziali I dati sequenziali sono fondamentalmente diversi dagli altri tipi di dati perché l'ordine in cui appaiono è fondamentale per comprenderne la struttura e il significato. Caratteristiche:
  • Dipendenza dall'ordine: Il significato cambia se cambia l’ordine
  • Lunghezza variabile: A differenza dei dati tradizionali, che si adattano a vettori di caratteristiche di dimensioni fisse, i dati sequenziali possono variare in lunghezza.
  • Informazioni contestuali: Ogni punto di dati di una sequenza è potenzialmente collegato ai suoi predecessori e successori, non solo ai suoi immediati vicini.
  • Dinamica temporale: Per i dati delle serie temporali, gli intervalli di tempo tra i punti di dati possono contenere informazioni essenziali. Embedding di parole Tecnica per trasformare oggetti complessi, come parole o immagini, in vettori di numeri che catturano i loro significati o caratteristiche Spazio latente In NLP, lo spazio latente è una mappa numerica astratta dove i modelli NLP collocano parole e frasi in base alle loro relazioni di significato, rendendo possibile ai modelli di apprendere e manipolare il linguaggio in modo più efficiente Attenzione (Attention)

Attenzione è un meccanismo che permette a un modello di concentrarsi su parti specifiche di un input quando produce un output. È usata per esempio nei modelli sequence-to-sequence (seq2seq), come nella traduzione automatica.

  • Esempio: nel tradurre “I am eating” in francese, il modello può "guardare" soprattutto a “eating” quando decide come tradurre quella parte.
  • In questo contesto, l’input e l’output sono sequenze diverse : il modello “presta attenzione” a una sequenza sorgente mentre genera la sequenza bersaglio. Autoattenzione (Self-Attention) Autoattenzione è un caso particolare di attenzione in cui la sequenza presta attenzione a sé stessa. Ogni parola guarda (o “si relaziona”) con le altre parole della stessa sequenza per costruire una rappresentazione contestualizzata.
  • Usata per capire il contesto interno a una frase.
  • Ogni token della sequenza valuta quanto è rilevante ogni altro token , incluso sé stesso. È il meccanismo chiave nei modelli Transformer (come GPT), sia nel training che nella generazione di testo.
  • Esempio: nella frase “Il gatto salta sul tavolo”, la parola “salta” può attribuire più peso a “gatto” rispetto a “tavolo” per capire chi compie l’azione. - Trasformer I Transformer sono modelli di intelligenza artificiale usati per capire e generare testi. Funzionano guardando tutte le parole di una frase allo stesso tempo, invece di leggerle una alla volta. Grazie al meccanismo dell’autoattenzione, il modello capisce quali parole sono più importanti tra loro LLM (Large Language Model) è un tipo di intelligenza artificiale addestrato per capire e generare linguaggio naturale, come quello che usiamo ogni giorno per parlare o scrivere. NLP sta per Natural Language Processing, cioè elaborazione del linguaggio naturale. È un ramo dell’intelligenza artificiale che si occupa di far comprendere, interpretare, generare e manipolare il linguaggio umano da parte dei computer. GPT GPT (Generative Pre-trained Transformer) è una famiglia di modelli, sviluppati da OpenAI, basati sull'architettura dei Transformer, ma usano solo la parte del Transformer chiamata "decoder". Sono progettati per prevedere la parola successiva in una frase, data una sequenza di parole precedenti. Sfide con gli LLM
  • Costi di calcolo
  • Esigenze di formazione: I LLM richiedono grandi risorse computazionali, il che li rende costosi da addestrare.
  • Tempo di inferenza: anche se esistono versioni ottimizzate, i modelli grezzi possono essere lenti, soprattutto per le applicazioni in tempo reale.
  • Preoccupazioni etiche
  • Pregiudizi: I LLM possono ereditare e amplificare i pregiudizi presenti nei dati di addestramento, portando a risultati che possono essere sessisti, razzisti o comunque problematici.
  • Misinformazione: Possono generare informazioni convincenti ma false, diffondendo potenzialmente disinformazione.
  • Dipendenza: L'eccessiva dipendenza dai LLM potrebbe soffocare la creatività umana e il pensiero critico. I 5 principi dei modelli di IA generativa affidabili Privacy, robustness, transparency, flames, explanability

Tecniche di Prompting

  • Lo zero-shot prompting prevede l'uso di un modello linguistico per eseguire un task senza alcun esempio specifico o dati di addestramento relativi a quel compito.
  • L' apprendimento few-shot p resenta una serie di dimostrazioni di alta qualità, ciascuna composta da input e output desiderato, sul compito target.
  • Il prompt Chain-of-Thought (CoT) genera una sequenza di brevi frasi per descrivere le logiche di ragionamento passo dopo passo, note come reasoning chains o rationales, per portare alla fine alla risposta finale.
  • Il meta prompting è una tecnica avanzata di prompt engineering che enfatizza la struttura e la sintassi dei compiti piuttosto che concentrarsi sul loro contenuto specifico. L'obiettivo è quello di creare un approccio più astratto e generalizzato per interagire con i modelli linguistici di grandi dimensioni (LLM), in cui la forma e i modelli delle informazioni hanno la priorità rispetto al contenuto dettagliato. - Prompting con conoscenza generata: un metodo in cui prima chiediamo al modello di AI di raccogliere e generare informazioni utili su un argomento, e solo dopo gli facciamo rispondere alla domanda specifica. Così il modello ha già un contesto ricco e dettagliato che lo aiuta a dare risposte più precise e complete. - Prompt Chaining: Il concatenamento dei prompt è una tecnica di ingegneria dei prompt progettata per migliorare l'affidabilità e le prestazioni dei modelli linguistici di grandi dimensioni (LLM), suddividendo compiti complessi in sottocompiti più piccoli e gestibili Come funziona il Prompt Chaining: Decomposizione del compito: Suddividere un compito complesso in sottocompiti più piccoli e più semplici. Prompting sequenziale: Ogni compito secondario viene inviato all'LLM e la sua risposta viene utilizzata per informare il prompt successivo. Trasformazione ed elaborazione: Ogni fase della catena perfeziona, trasforma o elabora la risposta fino a ottenere l’output Pattern I pattern sono essenziali perché garantiscono coerenza, chiarezza ed efficienza nelle interazioni con l’IA. Contribuiscono a semplificare attività complesse, a mantenere risultati prevedibili e a rendere i prompt riutilizzabili in diverse applicazioni. Pattern Audience Persona Si fornisce all’ LLM un profilo del pubblico target, che comprende i dati demografici, gli interessi, i punti deboli e gli obiettivi. Tassonomia di Bloom L'intelligenza artificiale generativa eccelle nei compiti che rientrano nei livelli inferiori della tassonomia di Bloom, come la conoscenza e la comprensione. Tuttavia, le competenze di ordine superiore, come l'analisi, la sintesi e la valutazione, rimangono fondamentali per il successo in molti campi.
  1. Cloud Computing In informatica con il termine inglese cloud computing si indica un insieme di tecnologie che permettono, tipicamente sotto forma di un servizio, di memorizzare/archiviare e/o elaborare dati (tramite CPU o software) grazie all'utilizzo di risorse hardware/software distribuite e virtualizzate in Rete. Le cinque caratteristiche essenziali del cloud (NIST)
  2. Self-service on-demand
  3. Ampio accesso alla rete
  4. Pooling delle risorse
  5. Rapid elasticity
  6. Monitoring I fornitori di Cloud Computing possono gestire le loro infrastrutture ad un tasso di utilizzo molto elevato. ∙ ROI (return on investment) più rapido ∙ CTO (Capital Turn Over) inferiore Prima del Cloud Computing, con i mainframe, gli operatori dovevano operare con un utilizzo molto elevato, i mainframe sono costosi e non c'era un uso efficiente delle risorse l cloud computing non è una singola tecnologia, è il prodotto di un insieme di tecnologie integrate, le più rilevanti delle quali sono:
  • Virtualizzazione
  • Web 2.
  • Orientamento al servizio **Modelli di distribuzione del cloud
  • Cloud pubblico** Nel modello Public Cloud l’infrastruttura dei server appartiene a fornitori di servizi che li gestiscono e amministrano le risorse del pool. Le aziende fornitrici offrono risorse come servizio su base gratuita o a pagamento tramite connessione Internet. Di solito è facile scalare le risorse (verso l'alto o verso il basso) quando è necessario - Cloud privato Dal punto di vista tecnico non c’è differenza tra cloud pubblico e privato, i loro progetti sono molto simili. L'intera infrastruttura appartiene all'azienda che implementa il proprio cloud privato on-premise. La facilità di scalare l’infrastruttura dipende dalla sua implementazione. - Cloud ibrido L’ Hybrid Cloud racchiude le migliori caratteristiche dei modelli di cloud pubblico e privato. Parte dell'infrastruttura è on-premise (Private Cloud), di solito per i carichi di lavoro mission- critical, mentre i dati meno sensibili sono su Public Cloud - Community Cloud Assomiglia in larga misura a un cloud privato, l'unica differenza è l'insieme degli utenti. In un Community Cloud gli utenti appartengono a diverse organizzazioni con background simili che condividono l'infrastruttura e le relative risorse. Poiché le organizzazioni hanno requisiti uniformi in termini di sicurezza, privacy e prestazioni, questo data center multi-tenant aiuta le aziende a raggiungere i loro obiettivi specifici. Questo modello è particolarmente adatto alle organizzazioni che lavorano su progetti comuni.