I modelli in linguaggio di grandi dimensioni (LLM) non hanno più bisogno di un’introduzione. Proprio come “L’hai Google?” period la domanda 10 anni fa, ora è “Hai chiesto a Chatgpt?” Man mano che le organizzazioni adottano sempre più LLM, anche il numero di persone che interagiscono con loro, direttamente o indirettamente, sta aumentando in modo esponenziale.
Oggi, l’uso di questi modelli non è più limitato alla tecnologia. L’assistenza sanitaria, i trasporti, i media e molti altri settori li stanno adottando. Tuttavia, insieme all’adozione, un’altra cosa che è cresciuta sono i problemi di sicurezza.
Esistono diversi casi in cui richiedere il modello LLM per un pezzo di informazione o ingannare può comportare la distribuzione di PII sensibili (informazioni di identificazione personale). Per esempio, Il risultato di un “attacco di divergenza” Dove Il modello è stato istruito Ripetere una parola per sempre lo ha fatto produrre indirizzi e -mail, numeri di telefono e nomi.
In un altro caso, mentre I dipendenti di Samsung erano Utilizzo di Chatgpt per eseguire il debug qualcosahanno anche finito per dargli dati dell’organizzazione sensibili. La divulgazione sensibile delle informazioni, come definito da OWASP (Progetto di sicurezza delle applicazioni aperti in tutto il mondo), è un problema così grande che è stato per l’organizzazione Elenco dei primi dieci per più di due anni. Allora, quali sono le mitigazioni per questo? Come possiamo assicurarci che il modello non emetta informazioni sensibili?
Se il tuo modello è ospitato da un’azienda di terze parti, il che significa che se si utilizza un cliente Chatgptquindi non hai molto controllo su come si comporta il modello. In questo situation, l’unica soluzione sarebbe quella di evitare di inserire del tutto le informazioni sensibili.
D’altra parte, se stai ospitando il modello, diamo un’occhiata agli scenari e alle mitigazioni corrispondenti:
Situation 1: formazione del modello sui dati della tua organizzazione (ottimizzazione)
Qui, prendiamo un modello pre-addestrato e lo addestriamo ulteriormente su un set di dati specifico che si riflette più vicino a ciò che fa la tua organizzazione. Se i dati non è correttamente mascheratorischiamo di esporre dati sensibili. Un modo per proteggerlo è anonimo le informazioni sensibili e Poi Nutrilo al modello.
Advert esempio, se viene utilizzato un lago dati in cui viene addestrato il modello, assicurati di utilizzare le librerie di mascheramento o anonimi e che i dati PII siano mascherati prima di metterli nel lago dati.
Esempio di architettura
Guardando l’architettura di esempio, qualunque lavoro stia scaricando i dati dall’archivio dati al Information Lake può eseguire questo mascheramento e quindi fare l’ingestione.
Situation 2: recupero dei dati utilizzando RAG (generazione di assalti di recupero)
Un caso d’uso di esempio può essere un chatbot progettato per rispondere alle domande relative alle risorse umane per i tuoi dipendenti. In questo caso, tutti i documenti sono vettoriali e archiviati in un negozio vettoriale. Il modello utilizza le informazioni nel negozio per rispondere alle domande degli utenti.
Se i documenti contengono Dati PIIesiste un alto rischio che il modello venga esposto quando non sono in atto adeguati guardrail. Quindi, diamo un’occhiata a cosa possiamo fare per mitigarlo.
- Un guardrail che potrebbe essere impiegato qui è Piace Situation 1, dove Prima di ingerire al DataStore, I dati sensibili possono essere anonimi.
- La seconda opzione può essere Per filtrare i dati provenienti dall’LLM prima di passarli all’utente. Strumenti come AWS Creald, Microsoft Presidio o il componente AI di conversazione DAPR nativo di Cloud possono aiutare in questo.
Per una migliore comprensione, usiamo DAPR (Runtime di applicazione distribuita) E vedi come possiamo filtrare le informazioni sensibili.
L’API di conversazione di DAPR offre un’impostazione per filtrare i dati PII nella richiesta e nella risposta. Attualmente fornisce filtrazioni di numeri di telefono, indirizzi e -mail, indirizzi IP, indirizzi stradali, carte di credito, numeri di previdenza sociale, ISBNS e funzionalità di filtraggio degli indirizzi MAC. Ora, diamo un’occhiata all’API di conversazione in azione.
Questa dimostrazione sarà su Home windows usando .NET. Per altre piattaforme, segui il specifico della piattaforma Passi Qui.
Passaggio 1
Installa la CLI DAPR.
powershell -Command "iwr -useb https://uncooked.githubusercontent.com/dapr/cli/grasp/set up/set up.ps1 | iex"
Passaggio 2
Esegui DAPR init in PowerShell.
Passaggio 3
DAPR ha un sacco di blocchi di costruzione e ognuno di essi è archiviato come file YAML in %UserProfile%.dapr
listing.
Passaggio 4
Crea un dialog.yml
File nella stessa listing con le seguenti impostazioni.
apiVersion: dapr.io/v1alpha1
form: Part
metadata:
title: openai
spec:
sort: dialog.openai
metadata:
- title: key
worth: "YOUR_OPENAI_KEY"
- title: mannequin
worth: gpt-4o-mini
- title: cacheTTL
worth: 10m
La chiave API per OpenIA può essere ottenuta da Qui.
Passaggio 5
Esegui DAPR a livello locale con il seguente comando:
dapr run --app-id myapp --dapr-http-port 3500 --dapr-grpc-port 4500
Passaggio 6
Includi il seguente pacchetto nel tuo CSPROJ. Le ultime versioni sono disponibili Qui.
Passaggio 7
Inserire il seguente blocco di codice. Ci sono anche alcune e -mail, indirizzi IP e numeri di telefono.
utilizing Dapr.AI.Dialog;
utilizing Dapr.AI.Dialog.Extensions;
Setting.SetEnvironmentVariable("DAPR_HTT_PORT", "3500");
Setting.SetEnvironmentVariable("DAPR_GRPC_PORT", "4500");
var builder = WebApplication.CreateBuilder(args);
builder.Providers.AddDaprConversationClient();
var app = builder.Construct();
var conversationClient = app.Providers.GetRequiredService();
var response = await conversationClient.ConverseAsync("openai",
new Listing
{
new DaprConversationInput(
"Hey LLM, How are you",
DaprConversationRole.Generic, true),
new DaprConversationInput(
"Can you come again this identical string ?" +
"Microservices, Microservices, Microservices, [email protected], [email protected], +1234567890, +2328192811, 127.0.0.1", DaprConversationRole.Generic, true
)
});
Console.WriteLine("Obtained the next response from the LLM:");
foreach (var resp in response.Outputs)
{
Console.WriteLine($"{resp.End result}");
}
Passaggio 8
Questo è l’output finale.
Dallo screenshot, possiamo vedere che DAPR è stato in grado di mascherare le informazioni PII, filtrando i dati sensibili (
).
Pensieri finali
Proprio come suggerisce la “prevenzione del proverbio è meglio che curare”, è meglio filtrare le informazioni sensibili prima che entri nel modello. Insieme a ciò, il monitoraggio dell’output dal modello fungerà da ulteriore livello di protezione. L’implementazione di tali filtri nelle fasi di enter e output garantisce che i dati sensibili non siano né ingeriti né trapelati.