
Guardrail programmabili per app di chat LLM: applica vincoli di input/output, blocca jailbreak e prompt injection, rileva le allucinazioni e maschera i dati sensibili.
ULTIMA RELEASE / VERSIONE DI SVILUPPO: Il branch develop tiene traccia dell'ultima versione in sviluppo. L'ultima versione rilasciata è la 0.24.1.
✨✨✨
📌 La documentazione ufficiale della libreria NeMo Guardrails è disponibile su docs.nvidia.com/nemo/guardrails.
✨✨✨
La libreria NVIDIA NeMo Guardrails è un toolkit open-source per aggiungere facilmente guardrail programmabili alle applicazioni conversazionali basate su LLM. I guardrail (o "rails" in breve) sono modi specifici di controllare l'output di un modello linguistico di grandi dimensioni, come non parlare di politica, rispondere in modo particolare a richieste specifiche dell'utente, seguire un percorso di dialogo predefinito, utilizzare uno stile linguistico particolare, estrarre dati strutturati e altro ancora.
Questo articolo introduce la libreria NeMo Guardrails e contiene una panoramica tecnica del sistema e la valutazione attuale.
Python 3.10, 3.11, 3.12 o 3.13.
Per installare usando pip:
> pip install nemoguardrails
Per istruzioni più dettagliate, consulta la Guida all'installazione.
La libreria NeMo Guardrails consente agli sviluppatori che creano applicazioni basate su LLM di aggiungere guardrail programmabili tra il codice dell'applicazione e l'LLM.
I vantaggi principali dell'aggiunta di guardrail programmabili includono:
Creare applicazioni basate su LLM affidabili, sicure e protette: puoi definire rail per guidare e salvaguardare le conversazioni; puoi scegliere di definire il comportamento della tua applicazione basata su LLM su argomenti specifici e impedirle di intraprendere discussioni su argomenti indesiderati.
Connettere modelli, chain e altri servizi in modo sicuro: puoi connettere un LLM ad altri servizi (detti anche tool) in modo semplice e sicuro.
Dialogo controllabile: puoi guidare l'LLM a seguire percorsi conversazionali predefiniti, permettendoti di progettare l'interazione seguendo le best practice di conversation design e di applicare procedure operative standard (ad esempio, autenticazione, supporto).
La libreria NeMo Guardrails fornisce diversi meccanismi per proteggere un'applicazione di chat basata su LLM da vulnerabilità comuni degli LLM, come jailbreak e prompt injection. Di seguito è riportata una panoramica di esempio della protezione offerta da diverse configurazioni di guardrail per l'esempio ABC Bot incluso in questo repository. Per maggiori dettagli, consulta la pagina LLM Vulnerability Scanning.
Puoi utilizzare i guardrail programmabili in diversi tipi di casi d'uso:
NEMOGUARDRAILS_LLM_FRAMEWORK=langchain oppure chiama set_default_framework("langchain").Per aggiungere guardrail programmabili alla tua applicazione puoi utilizzare l'API Python o un server di guardrail (consulta la Guida al server per maggiori dettagli). L'utilizzo dell'API Python è simile all'utilizzo diretto dell'LLM. Chiamare lo strato di guardrail invece dell'LLM richiede solo modifiche minime al codice, e comporta due semplici passaggi:
LLMRails.generate/generate_async.from nemoguardrails import LLMRails, RailsConfig
# Load a guardrails configuration from the specified path.
config = RailsConfig.from_path("PATH/TO/CONFIG")
rails = LLMRails(config)
completion = rails.generate(
messages=[{"role": "user", "content": "Hello world!"}]
)
Output di esempio:
{"role": "assistant", "content": "Hi! How can I help you?"}
Il formato di input e output per il metodo generate è simile alla Chat Completions API di OpenAI.
La libreria NeMo Guardrails è un toolkit async-first poiché i meccanismi principali sono implementati utilizzando il modello asincrono di Python. I metodi pubblici hanno sia una versione sync che una async. Ad esempio: LLMRails.generate e LLMRails.generate_async.
Puoi utilizzare NeMo Guardrails con più LLM come OpenAI GPT-3.5, GPT-4, LLaMa-2, Falcon, Vicuna o Mosaic. Per maggiori dettagli, consulta la sezione Supported LLM Models nella Guida alla configurazione.
La libreria NeMo Guardrails supporta cinque tipi principali di guardrails: