Introduzione
Perplexity si distingue per la sua missione: rendere i migliori modelli di intelligenza artificiale accessibili a chi cerca risposte affidabili e azioni agentiche. Con il recente rilascio dei modelli open-weight di OpenAI, GPT-OSS-20B e GPT-OSS-120B, Perplexity è stata tra le prime realtà a testarli e ottimizzarli per l’inferenza su larga scala.
Scelte infrastrutturali e hardware
La valutazione iniziale dei modelli GPT-OSS è stata effettuata su cluster NVIDIA H200 Hopper, sfruttando la quantizzazione MXFP4 per adattare i modelli alla memoria disponibile. Nonostante Hopper non disponga di tensor core FP4, Perplexity ha scelto di utilizzare la precisione FP8 per massimizzare le prestazioni senza modifiche radicali ai kernel.
Architettura dei modelli Transformer
- Embedding di input
- Sequenza di layer Transformer con blocchi di attenzione e MLP/MoE
- Proiezione finale dei logit
Grazie alla collaborazione con OpenAI, Perplexity ha potuto adattare rapidamente la propria infrastruttura, implementando modifiche mirate come:
- Attenzione GQA con parametri sink
- Encoding posizionale YaRN
- Proiezioni QKV con bias
- MLP con attivazione SwiGLU e MoE sparso
Motore di inferenza ROSE
Il cuore dell’inferenza di Perplexity è ROSE, un motore flessibile che consente di integrare rapidamente nuovi modelli e ottimizzare le performance. ROSE, scritto principalmente in Python con componenti critici migrati in Rust, gestisce la generazione di token tramite vari decoder e supporta configurazioni avanzate di quantizzazione e parallelismo.
Processo di integrazione di nuovi modelli
- Definizione della gerarchia del modello
- Conversione dei pesi
- Implementazione del forward pass
- Test e ottimizzazione del parallelismo
Kernel personalizzati per GPT-OSS
Perplexity ha adattato i kernel di FlashInfer e DeepGEMM per supportare le specifiche di GPT-OSS, come l’attenzione sink e la gestione dei bias nei layer MoE. Queste modifiche hanno permesso di mantenere efficienza e stabilità numerica, garantendo accuratezza e velocità.
Tokenizzazione e formati di chat
Il formato Harmony di OpenAI introduce canali e ruoli nei messaggi, migliorando la trasparenza e la segmentazione delle risposte. Perplexity ha integrato Harmony tramite un formatter dedicato nel frontend, mantenendo il backend invariato e favorendo modularità e rapidità di adozione di nuovi formati.
Analisi di costi e performance
La dimensione contenuta dei modelli GPT-OSS consente di limitarne la replica a un singolo nodo, riducendo i costi di comunicazione. Perplexity ha testato diverse strategie di parallelismo (EP, DP, TP) per trovare il miglior compromesso tra latenza e costo, con risultati dettagliati per batch size e lunghezza delle sequenze.
- Batch size 1 e DP=1 ottimizzano la fase di prefill
- Configurazione EP4 DP1 TP4 è ideale per la fase di decode
Conclusioni
Grazie a scelte infrastrutturali mirate e ottimizzazioni kernel, Perplexity ha reso possibile l’inferenza dei modelli GPT-OSS fin dal primo giorno, garantendo performance elevate e costi contenuti. L’approccio modulare e flessibile di ROSE permette di adattarsi rapidamente alle evoluzioni dell’AI generativa.