Migliorare al massimo i tuoi progetti di Data Science con gli strumenti di GitHub

Migliora al massimo i tuoi progetti di Data Science con gli strumenti di GitHub

La tecnologia sta avanzando a ritmo veloce, portando nuove innovazioni che stanno trasformando i nostri luoghi di lavoro. Uno dei ruoli che sta subendo una grande interruzione a causa di questi progressi è quello dello scienziato dei dati. La scienza dei dati è già un campo emozionante, ma nuovi strumenti lo stanno portando ad un livello successivo in termini di produttività e possibilità. Grazie all’aiuto di queste nuove tecnologie, gli scienziati dei dati possono lavorare più velocemente ed efficientemente che mai. In questo post, ti mostreremo questi progressi in azione.

Un progetto di scienza dei dati con Python, VS Code e strumenti GitHub

Andiamo a scoprire alcune innovative funzionalità e strumenti di GitHub che possono migliorare la produttività del tuo flusso di lavoro di scienza dei dati. Per esplorarli, immaginiamo di essere stati incaricati di creare un modello predittivo per prevedere il numero di noleggi per un’attività di noleggio biciclette in base alla stagionalità e alle condizioni meteorologiche.

Per costruire un tale modello, partendo da un dataset storico di noleggi, svolgeremo alcune analisi dei dati e degli esperimenti in un notebook Jupyter Python su VS Code. L’ingrediente segreto per aumentare la produttività del nostro progetto è costituito da due elementi principali:

  • GitHub Copilot, un assistente intelligente con intelligenza artificiale integrato nell’interfaccia di VS Code che offre suggerimenti inline, comandi slash e un’esperienza di chat.
  • GitHub Codespaces, un ambiente di sviluppo predefinito ospitato nel Cloud.

Creazione del nostro spazio di lavoro

Prima di poter iniziare a scrivere la nostra prima riga di codice Python, o persino a creare un nuovo notebook Jupyter, è necessario avere l’ultima versione di Python installata sul nostro computer locale e l’estensione di Python installata in VS Code. Successivamente, dovremo installare le librerie Python necessarie per esplorare, pulire e visualizzare i dati, e quelle necessarie per addestrare e valutare il nostro modello di machine learning. Questo set di prerequisiti può variare da un progetto all’altro e alcune potrebbero avere conflitti e dipendenze, richiedendo ulteriori sforzi nel nostro flusso di lavoro. Inoltre, se collaboriamo con un team di colleghi sullo stesso progetto, dovrebbero replicare gli stessi processi di installazione per poter contribuire al nostro codice.

È qui che GitHub Codespaces è di grande aiuto, consentendoci di creare uno spazio di lavoro riproducibile e preconfigurato per il nostro progetto, che possiamo ospitare e condividere nel Cloud. Ma come fare per iniziare?

Una volta abilitato GitHub Copilot Chat nel nostro IDE (VS Code), possiamo interagire con questo assistente virtuale integrato attraverso un’interfaccia di chat, facendo domande in linguaggio naturale o usando comandi predefiniti per definire l’ambito della risposta che ci aspettiamo.

Supercharging Your Data Science Projects with GitHub Tools

Ad esempio, il comando “/createWorkspace per un notebook Python Jupyter con una configurazione GitHub Codespaces che installa pPandas, numpy e scikit-learn” genererà una struttura di directory suggerita per il nostro progetto:

  • `.devcontainer/devcontainer.json` – file di configurazione per il container di sviluppo di GitHub Codespaces, che specifica l’immagine Docker da utilizzare e le estensioni da installare nel container.
  • `.devcontainer/requirements.txt` – file di configurazione che elenca i pacchetti Python da installare nel container di sviluppo.
  • `data/my_data.csv`- segnaposto per il file contenente i dati da utilizzare nel notebook Jupyter.
  • `notebooks/my_notebook.ipynb`- file di modello per il notebook Jupyter, che importa pPandas, numpy e scikit-learn.
  • `README.md`- file segnaposto contenente la documentazione per il progetto.

Inoltre, cliccando su “Crea Spazio di Lavoro” in basso, la struttura delle directory verrà creata localmente e i file saranno inizializzati con alcuni contenuti di base che possiamo personalizzare per il tuo scenario.

Ora, per creare un GitHub Codespaces a partire da qui, dovremmo prima pubblicare il nostro codice su GitHub, tramite il pannello “Codice Sorgente” del menu a scomparsa in Visual Studio Code.

Poi, possiamo personalizzare i file di configurazione che verranno utilizzati per creare il container. Ad esempio, possiamo aggiungere le estensioni GitHub Copilot e GitHub Copilot chat nel file devcontainer.json con le seguenti righe di codice:

"customizations": {        "vscode": {            "extensions": [                "github.copilot",                "github.copilot-chat"            ]        }

Nota che il campo ‘customizations’ dovrebbe essere allo stesso livello nella struttura json del container ‘name’. Se il file json creato da GitHub Copilot ha già un array di estensioni, dobbiamo solo aggiungere le due estensioni in coda.

In questo modo, saremo in grado di utilizzare le funzionalità di GitHub Copilot anche nel nostro ambiente remoto.

Dopo di ciò, possiamo chiedere nuovamente supporto a GitHub Copilot chat per creare un GitHub Codespaces remoto sulla base del nostro repository, chiedendo: ‘Come posso creare ora un GitHub Codespaces a partire dai file di configurazione devcontainer che ho in questa struttura di cartelle?’

Seguendo le istruzioni fornite nella risposta, saremo in grado di creare e aprire un GitHub Codespaces, configurato con i requisiti predefiniti.

Scrivere, eseguire il debug e documentare il nostro codice Python

Una volta aperto il nostro GitHub Codespaces in Visual Studio Code, possiamo iniziare con i nostri esperimenti. Il primo passo del nostro progetto è importare i dati che useremo per addestrare il nostro modello in un dataframe di Pandas. Mentre scriviamo il nostro codice Python, possiamo notare che GitHub Copilot ci fornisce suggerimenti in linea (la linea grigia nella schermata) che possiamo accettare completamente, accettare solo una parte o ignorare.

Inoltre, poiché la libreria Pandas era elencata nel file dei requisiti utilizzato per creare il GitHub Codespaces, non è necessario alcun passaggio extra prima di eseguire la nostra prima cella di codice.

Ora andiamo avanti e facciamo qualche visualizzazione dei dati. Immaginiamo di voler creare un istogramma con matplotlib che rappresenti la distribuzione dei noleggi di biciclette nel nostro dataset.

Nell’esempio precedente, abbiamo dimenticato di definire l’oggetto asse e quindi otteniamo un’eccezione NameError. In un caso come questo, GitHub Copilot può aiutarci a risolvere il problema. Dobbiamo solo fare clic sul pulsante Fix usando Copilot e otterremo un’analisi dell’errore insieme alle modifiche del codice suggerite per correggerlo.

Dopo un po’ di esplorazione e pulizia dei dati – che escono dallo scopo di questo articolo – supponiamo di essere pronti per addestrare il nostro modello di regressione. Poiché questa è la parte centrale della nostra soluzione, vorremmo avere una documentazione chiara da accompagnare al codice. Possiamo velocizzare l’attività tediosa ma essenziale di documentare il nostro codice con il comando GitHub copilot /doc.

Selezionando il pezzo di codice di interesse e digitando il comando nella finestra di chat, possiamo facilmente ottenere l’output desiderato, che possiamo utilizzare ad esempio come contenuto di una cella di markdown nel nostro notebook.

Riepilogo

In questo articolo forniamo alcuni suggerimenti e trucchi per i data scientist per migliorare la loro produttività e migliorare la collaborazione sfruttando gli strumenti di GitHub, Python e VS Code. Abbiamo coperto come creare uno spazio di lavoro riproducibile utilizzando GitHub Codespaces e interagire con GitHub Copilot attraverso un’interfaccia di chat per semplificare l’impostazione del progetto. Abbiamo anche dimostrato come GitHub Copilot fornisce suggerimenti inline, assiste nella risoluzione dei problemi e aiuta ad automatizzare le attività di documentazione, migliorando in definitiva l’efficienza ed efficacia dei progetti di data science.

Se stai per provare le indicazioni che abbiamo utilizzato nella nostra demo nel tuo ambiente, sii consapevole che potresti ottenere risultati diversi. Questo perché GitHub Copilot è alimentato dal modello OpenAI GPT-4, che è non deterministico come ogni grande modello di linguaggio, il che significa che per lo stesso input possiamo ottenere output diversi.

Se sei interessato a scoprire di più su come utilizzare GitHub e VS Code per migliorare la tua produttività, guarda la serie VS Code Explains e partecipa al webinar Supercharging your Data Science projects with GitHub tools.

Riguardo agli autori:

Carlotta Castelluccio Cloud Developer AdvocateCarlotta Castelluccio – AI Cloud Advocate

Gabriela de QueirozGabriela De Queiroz – Direttore dell’AI – Microsoft per Startups