OpenAI

Control Room

Caricamento in corso...

Man mano che i nostri modelli diventano più potenti e aumentano i rischi associati alla sicurezza e alla protezione dei sistemi, diventa sempre più importante poter individuare potenziali problemi e arrestare rapidamente i modelli quando necessario. Per rispondere a questa esigenza, abbiamo creato Control Room.

Control Room è un sistema centrale che monitora i carichi di lavoro dei modelli in tutta la nostra infrastruttura di ricerca e li arresta rapidamente quando emergono problemi di sicurezza o di protezione dei sistemi. Collega tutti i carichi di lavoro di inferenza della ricerca, compresi il campionamento tramite agenti per l’addestramento e la valutazione dei modelli, l’elaborazione dei dati e altro ancora. Opera insieme ai nostri sistemi di monitoraggio del disallineamento e interrompe la generazione di output dei modelli entro 35 secondi dalla decisione di intervenire per arrestare o sospendere un job. È stato progettato per continuare a funzionare anche in caso di guasto di altri sistemi e per interrompere la generazione di output dei modelli se Control Room stesso diventa indisponibile.

Control Room è già attivo in tutta la nostra infrastruttura di ricerca, dove è più necessario. Lo stack con cui rendiamo disponibili i modelli all’esterno è già, per sua natura, molto più centralizzato e dispone di capacità operative consolidate per disattivare rapidamente i modelli distribuiti, se necessario.

Come funziona

Control Room funziona integrando alcuni sistemi: il carico di lavoro, il motore di inferenza e il servizio Control Room centralizzato.

  • Il carico di lavoro è il job in esecuzione, ad esempio un esperimento di apprendimento per rinforzo, una valutazione, un job di campionamento su larga scala o di elaborazione dei dati. Richiediamo che ogni carico di lavoro di ricerca che esegue inferenze tramite agenti sia associato a un dossier di sicurezza approvato.

  • Il motore di inferenza, o semplicemente motore, è il modello stesso. Si può pensare al motore come al cervello del modello, in esecuzione direttamente sulle GPU. Un carico di lavoro utilizza normalmente uno o più modelli, che possono essere in esecuzione su uno o più motori di inferenza diversi. Lo stesso motore di inferenza può essere utilizzato da più carichi di lavoro diversi.

  • Il servizio Control Room monitora i job e stabilisce se possono continuare a generare output dei modelli. Prima di soddisfare una richiesta, i motori chiedono conferma al servizio Control Room. Se un job è stato arrestato, il servizio nega la richiesta, impedendo la generazione di ulteriore output.

Control Room è integrato nel modo seguente:

  • All’avvio di un nuovo job, il codice del carico di lavoro richiede a Control Room un nuovo job_id.

  • Ogni volta che il carico di lavoro deve campionare token da un modello, invia una richiesta a un motore di inferenza che esegue quel modello, passando il job_id. Il motore chiede a Control Room l’autorizzazione a soddisfare la richiesta, trasmettendogli il job_id.

  • Control Room verifica se il job è stato terminato e, in tal caso, nega la richiesta di inferenza. Il motore risponde alla richiesta di inferenza del carico di lavoro con un rifiuto, impedendo che venga generato ulteriore output del modello per quel job.

Come funziona Control Room

Ricercatore

Job di ricerca

<No job ID yet>

Motore di inferenza

Esegue il modello sulle GPU

Control Room

  • job_039, attivo
  • job_040, attivo
  • job_041, attivo
PASSAGGIO 1

Un ricercatore decide di avviare un job

Il processo inizia quando un ricercatore avvia un job, ad esempio un esperimento o una valutazione.

Esempio: risposta a un avviso di monitoraggio

Tutti i nostri job di apprendimento per rinforzo per i modelli di frontiera vengono eseguiti con un sistema di monitoraggio. Un sistema di monitoraggio è un altro modello che esamina tutto ciò che fa il modello in fase di addestramento e genera un avviso se rileva un problema. Ad esempio, il nostro recente incidente legato al DNS⁠(si apre in una nuova finestra) è stato rilevato da un sistema di monitoraggio.

Control Room e il nostro sistema di monitoraggio sono integrati nel modo seguente:

  • Se il sistema di monitoraggio rileva un potenziale problema, può decidere di arrestare il job in base alle caratteristiche e alla gravità del problema.

  • In questo caso, il sistema di monitoraggio invia a Control Room un messaggio per arrestare il job, passando il job_id. Control Room registra il job come terminato.

  • La volta successiva che il job con quel job_id invia una richiesta di inferenza per campionare altri token da qualsiasi modello in esecuzione su qualsiasi motore, la richiesta viene negata, impedendo la generazione di ulteriore output del modello.

Velocità e affidabilità

Il tempo massimo che intercorre tra il momento in cui Control Room riceve l’istruzione di arrestare un job e il momento in cui non è più possibile proseguire è di 35 secondi. Il ritardo di 35 secondi deriva da un livello di cache per l’autorizzazione delle inferenze, necessario per gestire il volume di traffico richiesto. Stiamo lavorando per azzerare questo intervallo, così da poter terminare i job all’istante.

I carichi di lavoro, che comprendono esperimenti, job di valutazione e altro, sono normalmente sotto la responsabilità di ricercatori o gruppi di ricerca, che ne gestiscono l’esecuzione. Di conseguenza, il codice dei carichi di lavoro cambia spesso e non è il punto ideale in cui implementare le protezioni fondamentali per la sicurezza. Per questo abbiamo progettato un’implementazione che resista a errori o malfunzionamenti nel codice dei carichi di lavoro.

A tale scopo, abbiamo implementato il meccanismo di terminazione nel livello di inferenza. Il codice dei carichi di lavoro è molto eterogeneo e decentralizzato. Al contrario, in tutte le attività di ricerca di OpenAI viene utilizzato un numero molto limitato di percorsi di esecuzione del codice di inferenza, con distribuzioni molto più centralizzate e uniformi. Il livello di inferenza può quindi fungere da punto di passaggio obbligato, offrendo solide garanzie che tutte le inferenze dei modelli eseguite nell’ambito della ricerca siano soggette ai controlli di autorizzazione di Control Room a ogni richiesta. Eseguiamo inoltre controlli continui, tramite agenti e procedure programmatiche, per verificare che gli utenti non avviino, accidentalmente o intenzionalmente, implementazioni non autorizzate dei motori in cui Control Room non sia implementato o sia disattivato.

Infine, il nostro sistema “blocca l’accesso in caso di errore”: l’integrazione di Control Room nei motori è configurata in modo che, se il servizio Control Room diventa indisponibile per un errore di sistema o perché viene disattivato per qualsiasi altro motivo, inclusa la manomissione da parte di un soggetto malintenzionato, tutte le richieste di inferenza vengano negate finché Control Room non riprende a funzionare normalmente. Il blocco in caso di errore è ora attivo per tutti i carichi di lavoro di ricerca sui modelli di frontiera e nei prossimi giorni verrà esteso a tutti i restanti carichi di lavoro di ricerca.


Control Room è solo una componente del nostro approccio integrato all’addestramento e alla distribuzione sicuri dei modelli di frontiera. Nei prossimi mesi continueremo a rafforzare e ampliare il sistema, parallelamente ai nostri investimenti nel monitoraggio dei comportamenti disallineati e delle violazioni della sicurezza. Se vuoi contribuire a creare sistemi per sviluppare e distribuire l’AGI in modo sicuro e protetto, stiamo⁠ assumendo⁠!