SafeCoder vs. Assistenti di codice closed-source

SafeCoder vs. Assistenti closed-source

Da decenni, gli sviluppatori di software hanno progettato metodologie, processi e strumenti che li aiutano a migliorare la qualità del codice e aumentare la produttività. Ad esempio, agile, sviluppo guidato dai test, revisioni del codice e CI/CD sono ormai fondamentali nell’industria del software.

In “How Google Tests Software” (Addison-Wesley, 2012), Google riporta che sistemare un bug durante i test di sistema – l’ultima fase di test – è 1000 volte più costoso rispetto a sistemarlo nella fase di test dell’unità. Ciò mette molta pressione sugli sviluppatori – il primo anello della catena – a scrivere codice di qualità fin dall’inizio.

Nonostante tutto l’hype attorno all’IA generativa, la generazione di codice sembra essere un modo promettente per aiutare gli sviluppatori a fornire codice migliore in modo rapido. Infatti, studi preliminari mostrano che i servizi gestiti come GitHub Copilot o Amazon CodeWhisperer aiutano gli sviluppatori ad essere più produttivi.

Tuttavia, questi servizi si basano su modelli closed-source che non possono essere personalizzati alla vostra cultura tecnica e ai vostri processi. Hugging Face ha rilasciato SafeCoder qualche settimana fa per risolvere questo problema. SafeCoder è una soluzione di assistenza al codice costruita per le imprese che vi offre modelli all’avanguardia, trasparenza, personalizzabilità, flessibilità IT e privacy.

In questo post, confrontiamo SafeCoder con i servizi closed-source e mettiamo in evidenza i vantaggi che potete aspettarvi dalla nostra soluzione.

Modelli all’avanguardia

SafeCoder è attualmente basato sui modelli StarCoder, una famiglia di modelli open-source progettati e addestrati nell’ambito del progetto collaborativo BigCode.

StarCoder è un modello con 15,5 miliardi di parametri addestrato per la generazione di codice in oltre 80 linguaggi di programmazione. Utilizza concetti architettonici innovativi, come l’Attenzione Multi-Query (MQA), per migliorare la velocità di elaborazione e ridurre la latenza, una tecnica presente anche in Falcon e adattata per i modelli LLaMa 2.

StarCoder ha una finestra di contesto di 8192 token, che gli permette di tenere in considerazione una maggiore quantità del vostro codice per generare nuovo codice. Può anche inserire codice all’interno del vostro codice, invece di semplicemente aggiungere nuovo codice alla fine.

Infine, come HuggingChat, SafeCoder introdurrà nel tempo nuovi modelli all’avanguardia, offrendovi un percorso di aggiornamento senza soluzione di continuità.

Purtroppo, i servizi di assistenza al codice closed-source non condividono informazioni sui modelli sottostanti, sulle loro capacità e sui dati di addestramento utilizzati.

Trasparenza

In linea con la Legge di Scalabilità del Cincillà, SafeCoder è un modello di calcolo ottimale addestrato su 1 trilione (1.000 miliardi) di token di codice. Questi token vengono estratti da The Stack, un dataset di 2,7 terabyte creato da repository open-source con licenza permissiva. Vengono compiuti tutti gli sforzi per rispettare le richieste di opt-out, e abbiamo creato un’utility che consente ai proprietari dei repository di verificare se il loro codice fa parte del dataset.

Nello spirito della trasparenza, il nostro articolo di ricerca divulga l’architettura del modello, il processo di addestramento e le metriche dettagliate.

Purtroppo, i servizi closed-source si limitano a fornire informazioni vaghe, come “[il modello è stato addestrato su] miliardi di righe di codice.” Per quanto ne sappiamo, non sono disponibili metriche.

Personalizzazione

I modelli StarCoder sono stati appositamente progettati per essere personalizzabili, e abbiamo già creato diverse versioni:

  • StarCoderBase: il modello originale addestrato su oltre 80 linguaggi da The Stack.
  • StarCoder: StarCoderBase ulteriormente addestrato su Python.
  • StarCoder+: StarCoderBase ulteriormente addestrato su dati web in inglese per le conversazioni di codifica.

Abbiamo anche condiviso il codice di raffinamento sul GitHub.

Ogni azienda ha i suoi linguaggi preferiti e le linee guida di codifica, ad esempio come scrivere documentazione inline o test di unità, o cosa fare e cosa non fare in termini di sicurezza e prestazioni. Con SafeCoder possiamo aiutarvi ad addestrare modelli che imparano le peculiarità del vostro processo di ingegneria del software. Il nostro team vi aiuterà a preparare dataset di alta qualità e a raffinare StarCoder sulla vostra infrastruttura. I vostri dati non saranno mai esposti a nessuno.

Purtroppo, i servizi closed-source non possono essere personalizzati.

Flessibilità IT

SafeCoder si basa su container Docker per il raffinamento e la distribuzione. È facile da eseguire in locale o nel cloud su qualsiasi servizio di gestione dei container.

Inoltre, SafeCoder include le nostre librerie di accelerazione hardware Optimum. Che lavoriate con CPU, GPU o acceleratori AI, Optimum si attiverà automaticamente per aiutarvi a risparmiare tempo e denaro sull’addestramento e l’inferenza. Dal momento che controllate l’hardware sottostante, potete anche ottimizzare il rapporto costo-prestazioni della vostra infrastruttura in base alle vostre esigenze.

Sfortunatamente, i servizi closed-source sono disponibili solo come servizi gestiti.

Sicurezza e privacy

La sicurezza è sempre una preoccupazione prioritaria, ancor di più quando è coinvolto il codice sorgente. La proprietà intellettuale e la privacy devono essere protette ad ogni costo.

Indipendentemente dal fatto che tu operi in loco o nel cloud, SafeCoder è sotto il tuo completo controllo amministrativo. Puoi applicare e monitorare i tuoi controlli di sicurezza e mantenere una conformità solida e coerente sulla tua piattaforma IT.

SafeCoder non spia alcuno dei tuoi dati. I tuoi suggerimenti e le tue richieste sono solo tuoi. SafeCoder non effettua chiamate a casa e non invia dati di telemetria a Hugging Face o ad altri. Nessuno tranne te ha bisogno di sapere come e quando stai usando SafeCoder. SafeCoder non richiede nemmeno una connessione Internet. Puoi (e dovresti) eseguirlo completamente isolato dalla rete.

I servizi closed-source si basano sulla sicurezza del cloud sottostante. Se ciò funziona o meno per la tua conformità è una tua decisione. Per gli utenti aziendali, i suggerimenti e le richieste non vengono memorizzati (vengono invece memorizzati per gli utenti individuali). Tuttavia, ci dispiace evidenziare che GitHub raccoglie “dati di interazione dell’utente” senza possibilità di opt-out. AWS fa lo stesso per impostazione predefinita, ma ti consente di optare per l’esclusione.

Conclusione

Siamo molto entusiasti del futuro di SafeCoder, così come lo sono i nostri clienti. Nessuno dovrebbe dover fare compromessi sulla generazione di codice all’avanguardia, trasparenza, personalizzazione, flessibilità IT, sicurezza e privacy. Crediamo che SafeCoder offra tutto questo e continueremo a lavorare duramente per migliorarlo ulteriormente.

Se sei interessato a SafeCoder per la tua azienda, contattaci. Il nostro team ti contatterà a breve per approfondire il tuo caso d’uso e discutere dei requisiti.

Grazie per la lettura!