Conda troppo lento? Prova Mamba!

Conda troppo lento? Prova Mamba, il nuovo e veloce sistema!

Consegna di pacchi retrò. Foto di Charlie M su Unsplash

Prima o poi, ogni data scientist e machine learning engineer si troveranno a dover affrontare i gestori di pacchetti e gli ambienti. Gli ambienti contengono le librerie necessarie per eseguire il codice del progetto. Gli sviluppatori possono creare più ambienti sulla stessa macchina, rendendo possibile mantenere ambienti diversi per progetti diversi. Il software non viene installato a livello di sistema, ma viene contenuto all’interno di un ambiente.

I gestori di pacchetti vengono utilizzati per distribuire librerie software. I gestori di pacchetti popolari includono conda, pip e mamba.

Vale sicuramente la pena dare un’occhiata a mamba, poiché sono riuscito ad installare un ambiente di grandi dimensioni 10 volte più velocemente tramite mamba, rispetto a conda!

In questo articolo, ti mostrerò come ottenere questa accelerazione. Discuterò:

  • Come configurare un ambiente
  • I gestori di pacchetti e ambienti conda e mamba
  • Come si confrontano in termini di velocità
  • libmamba: l’accelerazione di mamba all’interno di conda?

Ambiente software

Mantenere un file di ambiente software assicura che il codice rimanga riproducibile e possa essere eseguito su piattaforme diverse. Un progetto di machine learning dovrebbe sempre includere un elenco dei pacchetti richiesti, insieme ai loro numeri di versione. Se dai il tuo modello ad un altro sviluppatore o lo invii a un cliente, potranno replicare l’ambiente localmente.

Un file di ambiente di esempio ha questa forma, preso da uno dei miei repository git su https://github.com/crlna16/ai4foodsecurity:

name: ai4foodsecurity
channels:
  - conda-forge
  - defaults
  - pytorch
  - nvidia
dependencies:
  - pandas==1.0.1
  - geopandas==0.8.2
  - rasterio==1.1.8
  - matplotlib==3.3.2
  - tensorboard==2.4.0
  - sentinelhub==3.3.2
  - pytorch==1.9.0
  - torchvision==0.10.0
  - numpy==1.19.5
  - sh==1.14.2
  - radiant-mlhub==0.3.0
  - ipykernel=5.3.4
  - 'cudatoolkit=11.1'

I sistemi di gestione dei pacchetti possono essere utilizzati per creare ambienti da file come questo.

Sistemi di gestione dei pacchetti

Esistono diversi modi per creare ambienti e installare pacchetti in essi. Ci concentreremo…