Sfruttare grandi modelli di linguaggio nella individuazione delle fake news

Utilizzare potenti modelli di linguaggio per identificare le fake news

Le fake news, definite come notizie che veicolano o incorporano informazioni false, fabbricate o deliberate fuorvianti, esistono fin dai primi giorni dell’emergere della stampa. La rapida diffusione di fake news e disinformazione online non solo inganna il pubblico, ma può anche avere un profondo impatto sulla società, la politica, l’economia e la cultura. Esempi includono:

  • Creare diffidenza nei confronti dei media
  • Sminuire il processo democratico
  • Diffondere falsa o discreditata scienza (ad esempio, il movimento anti-vax)

Progressi nell’intelligenza artificiale (AI) e nell’apprendimento automatico (ML) hanno reso ancora più facile lo sviluppo di strumenti per creare e condividere fake news. Esempi precoci includono social bot avanzati e account automatizzati che potenziano la fase iniziale di diffusione delle fake news. In generale, non è banale per il pubblico determinare se tali account siano persone o bot. Inoltre, i social bot non sono strumenti illegali e molte aziende li acquistano legalmente come parte della loro strategia di marketing. Pertanto, non è facile limitare l’uso di social bot in modo sistematico.

Recenti scoperte nel campo dell’intelligenza artificiale generativa rendono possibile produrre contenuti testuali a un ritmo senza precedenti con l’aiuto di modelli linguistici di grande dimensione (LLM). Gli LLM sono modelli di testo di intelligenza artificiale generativa con oltre 1 miliardo di parametri e facilitano la sintesi di testi di alta qualità.

In questo post, esploreremo come è possibile utilizzare gli LLM per affrontare il diffuso problema del rilevamento delle fake news. Suggeriamo che gli LLM siano sufficientemente avanzati per questa task, soprattutto se vengono utilizzate tecniche di prompt migliorate come Chain-of-Thought e ReAct in combinazione con strumenti per il recupero delle informazioni.

Illustreremo ciò creando un’applicazione LangChain che, dato un pezzo di notizie, informa l’utente se l’articolo sia vero o falso utilizzando il linguaggio naturale. La soluzione utilizza anche Amazon Bedrock, un servizio completamente gestito che rende accessibili i modelli di base (FMs) di Amazon e di fornitori di terze parti attraverso la Console di gestione AWS e le API.

LLMs e fake news

Il fenomeno delle fake news ha iniziato a evolversi rapidamente con l’avvento di Internet e più specificamente dei social media (Nielsen et al., 2017). Sui social media, le fake news possono essere condivise rapidamente nella rete di un utente, portando il pubblico a formare un’opinione collettiva sbagliata. Inoltre, le persone spesso propagano le fake news in modo impulsivo, ignorando la veridicità dei contenuti se le notizie risuonano con le loro norme personali (Tsipursky et al. 2018). La ricerca nel campo delle scienze sociali ha suggerito che i bias cognitivi (bias di conferma, effetto bandwagon e bias di supporto alla scelta) sono uno dei fattori più importanti nel prendere decisioni irrazionali sia in termini di creazione che di consumo di fake news (Kim, et al., 2021). Ciò implica anche che i consumatori di notizie condividono e consumano informazioni solo nella direzione di rafforzare le loro convinzioni.

Il potere dell’IA generativa di produrre contenuti testuali di alta qualità a un ritmo senza precedenti aggrava il problema delle fake news. Un esempio degno di nota è la tecnologia dei deepfake – che combina varie immagini su un video originale e genera un video diverso. Oltre all’intenzione di disinformazione che gli attori umani portano al mix, gli LLM aggiungono un nuovo set di sfide:

  • Errori di fatto – Gli LLM hanno un rischio più elevato di contenere errori di fatto a causa della natura del loro addestramento e della capacità di essere creativi durante la generazione delle parole successive in una frase. L’addestramento degli LLM si basa sulla presentazione ripetuta di un modello con input incompleti, quindi utilizzando tecniche di addestramento ML fino a quando non riempie correttamente le lacune, imparando così la struttura del linguaggio e un modello del mondo basato sul linguaggio. Di conseguenza, sebbene gli LLM siano grandi abbinatori di pattern e ri-combinatori (“pappagalli stocastici”), falliscono in una serie di semplici compiti che richiedono ragionamento logico o deduzione matematica, e possono generare risposte erronee. Inoltre, la temperatura è uno dei parametri di input degli LLM che controlla il comportamento del modello durante la generazione della parola successiva in una frase. Se si seleziona una temperatura più alta, il modello utilizzerà una parola con una probabilità più bassa, fornendo una risposta più casuale.
  • Testi lunghi – I testi generati tendono ad essere lunghi e mancano di una granularità chiaramente definita per i singoli fatti.
  • Mancanza di verifica dei fatti – Non esistono strumenti standardizzati disponibili per la verifica dei fatti durante il processo di generazione del testo.

Complessivamente, la combinazione di psicologia umana e limitazioni dei sistemi di intelligenza artificiale ha creato una tempesta perfetta per la proliferazione di notizie false e disinformazione online.

Panoramica della soluzione

Le LLM dimostrano capacità straordinarie nella generazione del linguaggio, comprensione e apprendimento a pochi esempi. Sono addestrate su un vasto corpus di testi proveniente da Internet, dove la qualità e l’accuratezza del linguaggio naturale estratto potrebbe non essere garantita.

In questo articolo, forniamo una soluzione per rilevare le notizie false basata sia sulla tecnica di Chain-of-Thought che su Re-Act (Reasoning and Acting). Innanzitutto, discutiamo queste due tecniche di ingegnerizzazione dei suggerimenti, poi mostriamo la loro implementazione utilizzando LangChain e Amazon Bedrock.

Il seguente diagramma dell’architettura illustra la soluzione del nostro rilevatore di notizie false.

Diagramma dell’architettura per il rilevamento di notizie false.

Utilizziamo un sottoinsieme del dataset FEVER contenente una dichiarazione e la verità sulla dichiarazione che indica affermazioni false, vere o non verificabili (Thorne J. et al., 2018).

Il flusso di lavoro può essere suddiviso nei seguenti passaggi:

  1. L’utente seleziona una delle dichiarazioni per verificarne la veridicità.
  2. La dichiarazione e il compito di rilevamento delle notizie false vengono incorporati nel suggerimento.
  3. Il suggerimento viene passato a LangChain, che invoca il FM in Amazon Bedrock.
  4. Amazon Bedrock restituisce una risposta alla richiesta dell’utente con la dichiarazione True o False.

In questo articolo, utilizziamo il modello Claude v2 di Anthrophic (anthropic.claude-v2). Claude è un LLM generativo basato sulla ricerca di Anthropic per creare sistemi di intelligenza artificiale affidabili, interpretabili e controllabili. Creato utilizzando tecniche come l’IA costituzionale e l’addestramento all’innocuità, Claude eccelle nel dialogo ponderato, nella creazione di contenuti, nel ragionamento complesso, nella creatività e nella programmazione. Tuttavia, utilizzando Amazon Bedrock e l’architettura della nostra soluzione, abbiamo anche la flessibilità di scegliere tra altri FM forniti da Amazon, AI21labs, Cohere e Stability.ai.

Puoi trovare i dettagli di implementazione nelle sezioni seguenti. Il codice sorgente è disponibile nel repository GitHub.

Prerequisiti

Per questo tutorial, è necessario un terminale bash con Python 3.9 o versione successiva installato su Linux, Mac o Windows Subsystem for Linux e un account AWS.

Raccomandiamo inoltre di utilizzare uno dei seguenti strumenti: un notebook di Amazon SageMaker Studio, un’istanza di AWS Cloud9 o un’istanza di Amazon Elastic Compute Cloud (Amazon EC2).

Deployment del rilevamento delle notizie false utilizzando l’API di Amazon Bedrock

La soluzione utilizza l’API di Amazon Bedrock, che può essere accessibile utilizzando l’Interfaccia a riga di comando di AWS (AWS CLI), l’SDK di AWS per Python (Boto3) o un notebook di Amazon SageMaker. Consulta la Guida dell’utente di Amazon Bedrock per ulteriori informazioni. In questo articolo, utilizziamo l’API di Amazon Bedrock tramite l’SDK di AWS per Python.

Configurazione dell’ambiente API di Amazon Bedrock

Per configurare il tuo ambiente API di Amazon Bedrock, segui i seguenti passaggi:

  1. Scarica l’ultima versione di Boto3 o aggiornala:

    pip install --upgrade boto3
  2. Assicurati di configurare le credenziali AWS utilizzando il comando aws configure o passale al client Boto3.

  3. Installa l’ultima versione di LangChain:

    pip install “langchain>=0.0.317” --quiet

Ora puoi testare la tua configurazione utilizzando lo script shell Python seguente. Lo script istanzia il client Amazon Bedrock utilizzando Boto3. Successivamente, chiamiamo l’API list_foundation_models per ottenere l’elenco dei modelli fondamentali disponibili per l’uso.

import boto3 import json bedrock = boto3.client( 'bedrock', region_name=YOUR_REGION) print(json.dumps(bedrock.list_foundation_models(), indent=4))

Dopo aver eseguito correttamente il comando precedente, dovresti ottenere l’elenco dei FMs da Amazon Bedrock.

LangChain come soluzione di concatenazione prompt

Per rilevare notizie false per una determinata frase, seguiamo il processo di ragionamento CoT (Chain-of-Thought) senza zero (Wei J. et al., 2022), composto dai seguenti passaggi:

  1. Inizialmente, il modello cerca di creare una dichiarazione sulla notizia richiesta.
  2. Il modello crea un elenco puntato delle asserzioni.
  3. Per ogni asserzione, il modello determina se l’asserzione è vera o falsa. Nota che utilizzando questa metodologia, il modello si basa esclusivamente sulla sua conoscenza interna (pesi calcolati nella fase di pre-formazione) per raggiungere un verdetto. Le informazioni non vengono verificate rispetto a nessun dato esterno in questo punto.
  4. Dati i fatti, il modello risponde VERO o FALSO per l’affermazione data nel prompt.

Per raggiungere questi passaggi, utilizziamo LangChain, un framework per lo sviluppo di applicazioni basate su modelli di linguaggio. Questo framework ci consente di potenziare i FMs concatenando insieme vari componenti per creare casi d’uso avanzati. In questa soluzione, utilizziamo il built-in SimpleSequentialChain in LangChain per creare una catena sequenziale semplice. Ciò è molto utile, perché possiamo prendere l’output da una catena e usarlo come input per un’altra.

Amazon Bedrock è integrato con LangChain, quindi è sufficiente istanziarlo passando l’ID del modello durante l’istanziazione dell’oggetto Amazon Bedrock. Se necessario, i parametri di inferenza del modello possono essere forniti tramite l’argomento model_kwargs, ad esempio:

  • maxTokenCount – Il numero massimo di token nella risposta generata
  • stopSequences – La sequenza di interruzione utilizzata dal modello
  • temperature – Un valore compreso tra 0 e 1, con 0 che rappresenta il più deterministico e 1 il più creativo
  • top – Un valore compreso tra 0 e 1, utilizzato per controllare le scelte dei token in base alla probabilità delle scelte potenziali

Se è la prima volta che utilizzi un modello fondamentale di Amazon Bedrock, assicurati di richiedere l’accesso al modello selezionando dalla lista dei modelli sulla pagina Accesso al modello sulla console di Amazon Bedrock, che nel nostro caso è claude-v2 di Anthropic.

from langchain.llms.bedrock import Bedrockbedrock_runtime = boto3.client(    service_name='bedrock-runtime',    region_name= YOUR_REGION,)model_kwargs={        'max_tokens_to_sample': 8192    }llm = Bedrock(model_id=" anthropic.claude-v2", client=bedrock_runtime, model_kwargs=model_kwargs)

La seguente funzione definisce la catena prompt CoT che abbiamo menzionato in precedenza per il rilevamento delle notizie false. La funzione prende l’oggetto Amazon Bedrock (llm) e il prompt dell’utente (q) come argomenti. Qui viene utilizzata la funzionalità PromptTemplate di LangChain per predefinire una ricetta per generare prompt.

from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain
from langchain.chains import SimpleSequentialChain

def generate_and_print(llm, q):
    total_prompt = """"""
    # il modello viene chiesto di creare un elenco puntato di affermazioni
    template = """Ecco una dichiarazione:
    {statement}
    Crea un elenco puntato delle supposizioni che hai fatto quando ti è stata data la dichiarazione sopra.\n\n"""
    prompt_template = PromptTemplate(input_variables=["statement"], template=template)
    assumptions_chain = LLMChain(llm=llm, prompt=prompt_template)
    total_prompt = total_prompt + template
    # il modello viene chiesto di creare un elenco puntato di affermazioni
    template = """Ecco un elenco puntato di affermazioni:
    {assertions}
    Per ogni affermazione, determina se è vera o falsa. Se è falsa, spiega perché.\n\n"""
    prompt_template = PromptTemplate(input_variables=["assertions"], template=template)
    fact_checker_chain = LLMChain(llm=llm, prompt=prompt_template)
    total_prompt = total_prompt + template
    # per ogni affermazione, al modello viene chiesto di determinare se l'affermazione è vera o falsa,
    # solo in base alla conoscenza interna
    template = """Basandosi sulle affermazioni sopra, la risposta finale è FALSA se una delle affermazioni è FALSA.
    Altrimenti, la risposta finale è VERA. Dovresti rispondere solo con VERA o FALSA.'{}'""".format(q)
    template = """{facts}\n""" + template
    prompt_template = PromptTemplate(input_variables=["facts"], template=template)
    answer_chain = LLMChain(llm=llm, prompt=prompt_template)
    total_prompt = total_prompt + template
    # SimpleSequentialChain ci permette di prendere l'output da una chain e usarlo come input per un'altra
    overall_chain = SimpleSequentialChain(chains=[assumptions_chain, fact_checker_chain, answer_chain], verbose=True)
    answer = overall_chain.run(q)
    return answer

Il codice seguente chiama la funzione che abbiamo definito in precedenza e fornisce la risposta.
La dichiarazione può essere VERA o FALSA.
VERA significa che la dichiarazione fornita contiene fatti corretti,
mentre FALSA significa che la dichiarazione contiene almeno un fatto errato.

from IPython.display import display, Markdownq="La prima donna a ottenere un dottorato in informatica è stata la dott.ssa Barbara Liskov, che ha conseguito il suo diploma presso l'Università di Stanford nel 1968."print(f"La dichiarazione è: {q}")display(Markdown(generate_and_print(llm, q)))

Un esempio di dichiarazione e risposta del modello è fornito nell’output seguente:

La dichiarazione è: La prima donna a ottenere un dottorato in informatica è stata la dott.ssa Barbara Liskov, che ha conseguito il suo diploma presso l'Università di Stanford nel 1968.FT Entering new SimpleSequentialChain chain... Ecco un elenco puntato delle supposizioni che ho fatto sulla dichiarazione:
- La dott.ssa Barbara Liskov è stata la prima donna a ottenere un dottorato in informatica.
- La dott.ssa Liskov ha ottenuto il suo dottorato presso l'Università di Stanford.
- Ha ottenuto il suo dottorato nel 1968.
- Nessun'altra donna ha ottenuto un dottorato in informatica prima del 1968.
- L'Università di Stanford aveva un programma di dottorato in informatica nel 1968.
- La dichiarazione si riferisce a dottorati ottenuti negli Stati Uniti.
Ecco le mie valutazioni di ogni affermazione:
- La dott.ssa Barbara Liskov è stata la prima donna a ottenere un dottorato in informatica. - Vera. La dott.ssa Liskov è stata la prima donna americana a ottenere un dottorato in informatica, che ha ricevuto dall'Università di Stanford nel 1968.
- La dott.ssa Liskov ha ottenuto il suo dottorato presso l'Università di Stanford. - Vera. Diverse fonti confermano che ha ottenuto il suo dottorato presso Stanford nel 1968.
- Ha ottenuto il suo dottorato nel 1968. - Vera. Questo è coerente tra le fonti.
- Nessun'altra donna ha ottenuto un dottorato in informatica prima del 1968. - Falsa. Anche se è stata la prima donna americana, Mary Kenneth Keller ha ottenuto un dottorato in informatica presso l'Università del Wisconsin nel 1965. Tuttavia, Keller ha ottenuto il suo diploma negli Stati Uniti.
- L'Università di Stanford aveva un programma di dottorato in informatica nel 1968. - Vera. Stanford ha istituito il suo dipartimento di informatica e il programma di dottorato nel 1965.
- La dichiarazione si riferisce a dottorati ottenuti negli Stati Uniti. - Falsa. La dichiarazione originale non specifica il paese. Le mie supposizioni che si riferisca agli Stati Uniti sono errate. Keller ha ottenuto il dottorato negli Stati Uniti prima di Liskov. Falsa.

ReAct e strumenti

Nell’esempio precedente, il modello ha correttamente identificato che l’affermazione è falsa. Tuttavia, inviando nuovamente la query dimostra l’incapacità del modello di distinguere la correttezza dei fatti. Il modello non dispone degli strumenti per verificare la veridicità delle affermazioni al di là della propria memoria di formazione, quindi esecuzioni successive dello stesso prompt possono portarlo a etichettare erroneamente affermazioni false come vere. Nel codice seguente, è presente una diversa esecuzione dello stesso esempio:

L'affermazione è: la prima donna a ricevere un dottorato di ricerca in informatica era la dottoressa Barbara Liskov, che ha conseguito il suo titolo presso la Stanford University nel 1968.> Inserimento di una nuova catena sequenziale semplice... Ecco un elenco puntato delle ipotesi che ho fatto sull'affermazione:- La dottoressa Barbara Liskov è stata la prima donna a conseguire un dottorato di ricerca in informatica- La dottoressa Liskov ha conseguito il suo dottorato di ricerca nel 1968- La dottoressa Liskov ha conseguito il suo dottorato di ricerca presso la Stanford University- La Stanford University ha conferito dottorati di ricerca in informatica nel 1968- La dottoressa Liskov era una donna- I dottorati di ricerca esistevano nel 1968- L'informatica esisteva come campo di studio nel 1968 Ecco le mie valutazioni di ciascuna affermazione:- La dottoressa Barbara Liskov è stata la prima donna a conseguire un dottorato di ricerca in informatica    - Vero. La dottoressa Liskov è stata la prima donna a conseguire un dottorato di ricerca in informatica nel 1968 presso la Stanford University.- La dottoressa Liskov ha conseguito il suo dottorato di ricerca nel 1968    - Vero. Diverse fonti confermano che ha ottenuto il suo dottorato di ricerca in informatica presso la Stanford nel 1968.- La dottoressa Liskov ha conseguito il suo dottorato di ricerca presso la Stanford University     - Vero. La dottoressa Liskov ha conseguito il suo dottorato di ricerca in informatica presso la Stanford University nel 1968.- La Stanford University ha conferito dottorati di ricerca in informatica nel 1968    - Vero. La Stanford ha conferito a Liskov un dottorato di ricerca in informatica nel 1968, quindi offrivano quel titolo in quel periodo.- La dottoressa Liskov era una donna    - Vero. Tutte le informazioni biografiche indicano che la dottoressa Liskov è di sesso femminile.- I dottorati di ricerca esistevano nel 1968    - Vero. I dottorati di ricerca esistono dal tardo XIX secolo.- L'informatica esisteva come campo di studio nel 1968    - Vero. Anche se l'informatica era un campo relativamente nuovo negli anni '60, la Stanford e altre università lo offrivano come campo di studio e ricerca dal 1968. Vero

Una tecnica per garantire la veridicità è ReAct. ReAct (Yao S. et al., 2023) è una tecnica di prompt che amplia il modello di base con lo spazio delle azioni di un agente. In questo post, così come nel paper ReAct, lo spazio delle azioni implementa il recupero di informazioni utilizzando ricerche, ricerche e azioni di terminazione da una semplice API web di Wikipedia.

La ragione di utilizzare ReAct rispetto a Chain-of-Thought è utilizzare il recupero delle conoscenze esterne per potenziare il modello di base al fine di individuare se una determinata notizia è falsa o vera.

In questo post, utilizziamo l’implementazione di ReAct di LangChain tramite l’agente ZERO_SHOT_REACT_DESCRIPTION. Modifichiamo la funzione precedente per implementare ReAct e utilizziamo Wikipedia utilizzando la funzione load_tools del langchain.agents.

Dobbiamo anche installare il pacchetto Wikipedia:

!pip install Wikipedia

Ecco il nuovo codice:

from langchain.agents import load_tools, initialize_agent, AgentTypedef generate_and_print(llm, q):    print(f'Nella funzione generate_and_print: q = {q}')    tools = load_tools(["wikipedia"], llm=llm)    agent = initialize_agent(tools, llm,                              agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,                              verbose=True,                             handle_parsing_errors=True,                             agent_kwargs={})    input = """Ecco un'affermazione:    {statement}    Questa affermazione è corretta? Puoi utilizzare gli strumenti per trovare informazioni se necessario.    La risposta finale è FALSA se l'affermazione è FALSA. Altrimenti, VERA."""    answer = agent.run(input.format(statement=q))        return answer

Di seguito è riportato l’output della funzione precedente dato la stessa affermazione utilizzata in precedenza:

Traduzione

> Inizio nuova catena di AgentExecutor... Ecco i miei pensieri e azioni per determinare se l'affermazione è vera o falsa:Pensiero: Per verificare se questa affermazione sulla prima donna a ricevere un dottorato in informatica è vera, dovrei consultare una fonte di informazioni affidabile come Wikipedia.Azione: WikipediaInput azione: prima donna a ricevere un dottorato in informaticaOsservazione: Pagina: Fu Foundation School of Engineering and Applied ScienceSommario: La Fu Foundation School of Engineering and Applied Science (conosciuta anche come SEAS o Columbia Engineering, in passato nota come Columbia School of Mines) è la scuola di ingegneria e scienze applicate dell'Università di Columbia. È stata fondata come School of Mines nel 1863, poi School of Mines, Engineering and Chemistry prima di diventare School of Engineering and Applied Science. Il 1 ottobre 1997, la scuola è stata ribattezzata in onore dell'imprenditore cinese Z.Y. Fu, che aveva donato 26 milioni di dollari alla scuola. La Fu Foundation School of Engineering and Applied Science mantiene stretti legami di ricerca con altre istituzioni, tra cui NASA, IBM, MIT e The Earth Institute. I brevetti posseduti dalla scuola generano oltre 100 milioni di dollari all'anno per l'università. I docenti e gli ex allievi di SEAS sono responsabili di importanti risultati tecnologici, compresi lo sviluppo della radio FM e del maser. I programmi di matematica applicata, ingegneria biomedica, informatica e ingegneria finanziaria della Scuola sono molto famosi e altamente classificati. Il corpo docente attuale di SEAS include 27 membri della National Academy of Engineering e un premio Nobel. Nel complesso, il corpo docente e gli alunni di Columbia Engineering hanno vinto 10 premi Nobel in fisica, chimica, medicina ed economia. La scuola è composta da circa 300 studenti laureati in ogni classe che mantiene stretti legami con la scuola di arti liberali per laureati Columbia College, che condivide l'alloggio con gli studenti di SEAS. L'attuale preside della scuola è Shih-Fu Chang, che è stato nominato nel 2022.Pagina: Dottorato di scienzaSommario: Il Dottorato di Scienza (in Latino: Scientiae Doctor; abbreviato più comunemente come DSc o ScD) è un dottorato di ricerca accademico assegnato in numerosi paesi del mondo. In alcuni paesi, il Dottorato di Scienza è il titolo usato per il dottorato standard nelle scienze; altrove, il Dottorato di Scienza è un "dottorato superiore" assegnato in riconoscimento di un contributo sostanziale e sostenuto alla conoscenza scientifica al di là di quello richiesto per ottenere un Dottorato di Filosofia (PhD).Pagina: Cronologia delle donne nella scienzaSommario: Questa è una cronologia delle donne nella scienza, che spazia dall'antichità al XXI secolo. Mentre la cronologia si concentra principalmente sulle donne coinvolte nelle scienze naturali come astronomia, biologia, chimica e fisica, include anche donne provenienti dalle scienze sociali (ad esempio sociologia, psicologia) e dalle scienze formali (ad esempio matematica, informatica), oltre a noti educatori scientifici e scienziati medici. Gli eventi cronologici elencati nella timeline riguardano sia i traguardi scientifici che l'uguaglianza di genere nelle scienze.Pensiero: Sulla base delle pagine di Wikipedia, sembra che l'affermazione sia falsa. La pagina Wikipedia "Cronologia delle donne nella scienza" indica che Adele Goldstine è stata la prima donna a ottenere un dottorato in informatica nel 1964 presso l'Università del Michigan, non Barbara Liskov di Stanford nel 1968. Pertanto, la mia risposta finale è:Risposta finale: FALSO

Pulizia

Per risparmiare costi, elimina tutte le risorse che hai implementato come parte del tutorial. Se hai avviato AWS Cloud9 o un’istanza EC2, puoi eliminarla tramite la console o utilizzando AWS CLI. Allo stesso modo, puoi eliminare il notebook SageMaker che potresti aver creato tramite la console di SageMaker.

Il campo del rilevamento delle notizie false è oggetto di attiva ricerca nella comunità scientifica. In questo post, abbiamo utilizzato le tecniche Chain-of-Thought e ReAct e nella valutazione delle tecniche ci siamo concentrati solo sull’accuratezza della classificazione tecnica prompt (se una data affermazione è vera o falsa). Pertanto, non abbiamo considerato altri aspetti importanti come la velocità di risposta, né abbiamo esteso la soluzione ad altre fonti di knowledge base oltre a Wikipedia.

Anche se questo post si è concentrato su due tecniche, Chain-of-Thought e ReAct, un ampio corpo di lavoro ha esplorato come i LLM possano individuare, eliminare o mitigare le notizie false. Lee et al. ha proposto l’uso di un modello di codificatore-decodificatore utilizzando NER (riconoscimento delle entità nominate) per nascondere le entità nominate al fine di garantire che il token nascosto utilizzi effettivamente le conoscenze codificate nel modello di linguaggio. Chern et.al. ha sviluppato FacTool, che utilizza i principi di Chain-of-Thought per estrarre le affermazioni dal prompt e quindi raccogliere prove rilevanti delle affermazioni. Il LLM giudica quindi la factualità dell’affermazione data l’elenco recuperato di prove. Du E. et al. presenta un approccio complementare in cui più LLM propongono e dibattono le loro risposte e i loro processi di ragionamento in più fasi per giungere a una risposta finale comune.

In base alla letteratura, vediamo che l’efficacia delle LLM nel rilevare le notizie false aumenta quando le LLM sono integrate con conoscenze esterne e capacità di conversazione multi-agente. Tuttavia, questi approcci sono più complessi dal punto di vista computazionale in quanto richiedono chiamate e interazioni multiple del modello, prompt più lunghi e chiamate di rete prolungate. In ultima analisi, questa complessità si traduce in un aumento del costo complessivo. Prima di implementare soluzioni simili in produzione, raccomandiamo di valutarne il rapporto costi-benefici.

Conclusioni

In questo articolo, abbiamo esaminato come utilizzare le LLM per affrontare il prevalente problema delle notizie false, che rappresenta una delle principali sfide della nostra società oggigiorno. Abbiamo iniziato delineando le sfide presentate dalle notizie false, con un’attenzione particolare al loro potenziale nell’influenzare l’opinione pubblica e causare disturbi nella società.

Abbiamo poi introdotto il concetto di LLM come modelli avanzati di intelligenza artificiale addestrati su una grande quantità di dati. Grazie a questo addestramento esteso, questi modelli vantano una notevole comprensione del linguaggio, che consente loro di produrre testo simile a quello umano. Con questa capacità, abbiamo dimostrato come le LLM possano essere sfruttate nella lotta contro le notizie false utilizzando due diverse tecniche di input, Chain-of-Thought e ReAct.

Abbiamo evidenziato come le LLM possano facilitare i servizi di fact-checking su una scala senza precedenti grazie alla loro capacità di elaborare e analizzare rapidamente grandi quantità di testo. Questa potenziale analisi in tempo reale può portare alla rilevazione e contenimento tempestivo delle notizie false. Per illustrare ciò, abbiamo creato uno script Python che, dato un’affermazione, indica all’utente se l’articolo è vero o falso utilizzando il linguaggio naturale.

A conclusione, abbiamo sottolineato i limiti dell’approccio attuale e terminato su una nota di speranza, sottolineando che, con le giuste protezioni e miglioramenti continui, le LLM potrebbero diventare strumenti indispensabili nella lotta contro le notizie false.

Desideriamo sentire la tua opinione. Facci sapere cosa ne pensi nella sezione commenti o utilizza il forum delle problematiche nel repository di GitHub.

Avviso legale: Il codice fornito in questo articolo è destinato solo a scopi educativi e sperimentali. Non dovrebbe essere utilizzato per rilevare notizie false o disinformazione in sistemi di produzione reali. Non si forniscono garanzie sull’accuratezza o completezza del rilevamento delle notizie false utilizzando questo codice. Gli utenti devono agire con cautela e svolgere le dovute verifiche prima di utilizzare queste tecniche in applicazioni sensibili.

Per iniziare con Amazon Bedrock, visita la console di Amazon Bedrock.