Back home

Dopo che il modello open source è stato reso pubblico, la prima cosa che diventa fragile è il blocco della versione.

È ancora possibile ottenere i pesi del modello, ma la versione fissa potrebbe non essere riproducibile.

Dopo che un modello open source viene reso pubblico, la versione fissa è solitamente la prima ad essere allentata, mentre il file di peso è spesso la più stabile.

Il nome del magazzino è ancora presente e il nome del modello è ancora presente, ma l’input effettivo utilizzato per eseguire valutazioni, eseguire regressioni e connettere il traffico spesso non è la stessa cosa. Quello che abbiamo estratto oggi è main e sarà sempre lo stesso percorso la prossima settimana, ma il tokenizzatore, il modello, il pacchetto di quantizzazione, il dtype predefinito e persino i parametri consigliati nel README sono stati modificati. Ciò che vedi online non è “il modello scompare”, ma “lo stesso nome del modello diventa un altro risultato finale”.

Dopo aver assunto più volte il controllo dell’accesso al modello, scoprirai che il valore ignorato più facilmente è il valore predefinito. Il file del peso viene solitamente controllato da qualcuno, ma il tag predefinito, l’immagine predefinita, il modello predefinito e la directory della cache predefinita vengono spesso lasciati incustoditi. Quando una finestra di sincronizzazione è bloccata, o la stazione mirror sincronizza solo i pesi ma non la configurazione, la squadra scoprirà improvvisamente che ciò che hanno in mano non è una versione riproducibile, ma una serie di nomi alla deriva.

L’ingresso predefinito è più facile da spostare rispetto al peso.

Il file del peso è statico, la voce no.

model-name:latest Questo modo di scrivere sembra facile, ma il problema è che lascia all’esterno la questione di “quando aggiornare”. Se l’upstream modifica il tokenizzatore, aggiunge un modello di chat o digita nuovamente il pacchetto di quantificazione, il comportamento della parte di accesso cambierà di conseguenza. I punteggi di valutazione possono variare solo leggermente, ma l’output online cambierà silenziosamente il suo tono. La parte più tortuosa durante la risoluzione dei problemi è qui: tutto sembra normale nel registro, ma in realtà viene chiamato un altro input.

Ciò che è veramente scomodo non è il cambiamento in sé, ma il fatto che il cambiamento non lasci confini. Finché il nome rimane invariato, la regressione, la scala di grigi e la revisione degli incidenti possono solo concentrarsi sui risultati e indovinare le ragioni. Il nome del modello continua ad essere appeso lì, ma il team non ha modo di confermare se quello ricevuto oggi sia lo stesso prodotto di quello utilizzato la settimana scorsa.

Immagini, modelli e pacchetti di quantizzazione dovrebbero essere congelati insieme

Bloccare semplicemente il peso non è sufficiente.

Dopo che un modello open source entra effettivamente nel flusso di lavoro, in genere contiene più di un solo .bin o .safetensors. Porterà anche tokenizzatore, modello di chat, parametri del quadro di inferenza, file di quantificazione, immagini di download, script di avvio e percorsi di cache. Se qualcuno di essi va alla deriva, alla fine potrebbe dimostrare che “il modello è peggiorato”. Spesso, infatti, non è il modello a cambiare, ma il pacchetto di consegna.

model:
  repo: example/model
  revision: 8f3c1a2
  tokenizer_revision: 8f3c1a2
  cache_dir: /opt/model-cache

Questo tipo di configurazione sembra prolisso, ma comporta tre cose: l’immagine è responsabile della disponibilità, il numero di versione e l’hash sono responsabili della riproducibilità e lo script di avvio è responsabile di parametri di inferenza coerenti. Senza nessuno di questi strati, il cosiddetto modello “già pubblico” può essere considerato solo un prodotto semilavorato. Per chi accede, la cosa più importante non è se può essere scaricato, ma se il contenuto scaricato può ancora produrre lo stesso risultato tre settimane dopo.

Ciò che davvero deve essere preservato è la capacità di riprodursi

Dopo che il modello open source è stato reso pubblico, ciò che il team deve proteggere non è un ingresso misterioso, ma la riproducibilità.

Una volta interrotta la riproducibilità, la linea di base della valutazione si discosterà, i risultati A/B saranno distorti e la riproduzione dell’incidente perderà riferimento. Nel momento in cui tutti discutono del problema usando il detto “era normale la settimana scorsa”, la gestione delle versioni ha sostanzialmente fallito. Non ha molto senso parlare di capacità del modello a questo punto; solo rafforzando la versione fissa, la sincronizzazione delle immagini, la verifica dell’hash e il percorso di rollback possiamo essere qualificati per continuare a parlare dell’effetto.

Questo tipo di modello è più simile a un artefatto software che a un servizio web. Se la pagina web è danneggiata, puoi ancora vedere 500 e la versione del modello sta andando alla deriva e in molti casi cambierà lentamente nell’output. In apparenza ha ancora lo stesso nome, ma in realtà metà del sistema è stato cambiato.

FAQ

What to read next

Related

Continue reading