Illustration for the post5 techniques pour développer efficacement des applications LLM avec Google Colab

5 techniques pour développer efficacement des applications LLM avec Google Colab

Un notebook est un environnement de développement interactif, souvent écrit en Python. Google Colab vous permet de créer des notebooks Python sur le cloud. Il s’agit en quelque sorte d’un Google Docs de la science de données.

Un notebook permet de découper son code en petites étapes intermédiaires, sous formes de cellules exécutables. Comme son nom l’indique, on peut aussi ajouter des notes détaillées à un notebook, au format Markdown.

La conception d’un pipeline LLM se prête bien à ce format, car il nécessite généralement d’écrire peu de lignes de code, mais de très bien comprendre chaque ligne.

Un notebook Google Colab Exemple de cellules de texte et de code issues du tutoriel “retrievers” de LangChain.

Colab est simplement une version cloud du projet open source Jupyter, qui vous permet de faire la même chose sur votre ordinateur local ou un serveur en auto-hébergement.

Voici quelques astuces qui vous aideront à mieux tirer parti de Google Colab pour concevoir des algorithmes fondés sur les LLM.

1) Gérez les fichiers en montant un dossier Google Drive

Une pipeline LLM peut être amené à manipuler de nombreux fichiers. Par exemple, nous générons des brouillons d’articles à partir de nos slides de formation. Il faut donc mettre les slides à disposition de notre pipeline, puis stocker les articles générés, peut-être même plusieurs variantes, puis les récupérer pour écrire l’article définitif et le publier.

Google Drive est la solution idéale pour ranger tous nos fichiers. Bonne nouvelle, Drive s’intègre parfaitement à Colab. On peut “monter” un Google Drive, pour le rendre accessible comme s’il s’agissait d’un dossier sur le disque dur.

from google.colab import drive
drive.mount('/content/drive') # Now we can access files in /content/drive
MY_DRIVE="MyDrive"
ROOT_DIR=path.join("/content/drive/", MY_DRIVE, "LBKE")

Une fenêtre popup vous permettra de confirmer l’accès à votre Google Drive.

Attention, les fichiers “.gdoc” ne s’ouvrent pas dans Google Colab, vous devrez peut-être les convertir dans d’autres formats : docx, txt… Colab permet aussi d’interagir avec des feuilles de calculs Sheets pour partager facilement ses résultats.

2) Stockez vos clés d’API directement dans Colab

Pour communiquer avec un LLM, on passe généralement par une API sécurisée via une clé. Il faut donc stocker ces clés de manière sécurisée, et aussi pouvoir les charger au bon endroit.

Colab propose un menu nommé “Secrets”, qui permet de stocker des valeurs secrètes au niveau utilisateur. On peut ensuite les activer et les désactiver pour chaque notebook.

Quelques clés d’API stockées dans les secrets. Il reste recommandé d’attribuer un budget maximal par clé, d’en changer régulièrement et d’utiliser plusieurs clés selon les projets.

from google.colab import userdata
langchain_api_key=userdata.get('langchain_api_key')
os.environ["LANGCHAIN_API_KEY"]=langchain_api_key

La librairie Python “getpass” est aussi souvent utilisée, mais il faut alors fournir la clé à chaque fois que l’on lance le notebook.

3) Lancez des commandes Linux et installez des packages Python

Un notebook est exécuté dans une machine virtuelle Linux, hébergée sur le cloud par Google. On peut y installer des packages Python additionnels en utilisant la commande pip. Ajouter un point d’exclamation au début de la ligne permet d’exécuter des commandes Linux.

# Installe la dernière version de LangChain
!pip install -qU langchain 

Cependant le noyau IPython fournit une syntaxe plus spécifique, sous la forme d’une commande magique “%pip”:

# Installe une version compatible avec le noyau Python de notre notebook
%pip install langchain 

La seconde syntaxe est à privilégier, mais les différences sont souvent minimes en pratique.

4) Ajoutez des headers pour découper le notebook en sections

Une fois les aspects techniques mis en place, vient la question de la structuration de votre notebook. Après tout, il s’agit d’un programme comme un autre, qu’il faut découper en différentes parties. Par exemple, on peut vouloir séparer la définition d’un prompt de LLM, et son exécution.

On peut déjà utiliser le système de cellules des notebooks, mais cela ne suffit pas à plus grande échelle. Dans un second temps, il est possible de créer des sections, tout simplement en ajoutant une cellule contenant un titre au-dessus de plusieurs cellules de code !

Notebook Google Colab utilisant un plan Utiliser des titres génère un plan interactif, et permet d’exécuter des ensembles de cellules en une seule fois.

Les titres utilisent la syntaxe markdown, avec des symboles dièse pour définir le niveau : ”# Titre 1”, ”## Titre 2”…

Définir des titres nous donne plusieurs avantages :

5) Structurez votre notebook en plusieurs étapes

La possibilité de définir des sections dans un notebook nous invite naturellement à songer au meilleur découpage possible.

Chaque cas d’usage est différent. Par exemple pour créer un pipeline LLM avec LangChain, on peut proposer le découpage suivant :

  1. L’installation des packages et le chargement des classes les plus génériques. Si le notebook manipule des fichiers, on peut déjà importer “os”, “path”, “glob”… Pour les LLM, on peut configurer les modèles utilisés par le programme.
  2. Les fonctions utilitaires réutilisables. C’est un bloc que l’on aura tendance à copier-coller d’un notebook à l’autre ! Si vous débutez en Python, ne sous-estimez cependant pas la richesse de la bibliothèque standard. L’assistance de Google Gemini pourra vous aider à découvrir les fonctions adéquates ou à implémenter de petits utilitaires.
  3. La définition des prompts et des pipelines de calculs. On rentre dans la logique “métier”, c’est-à-dire la conception d’une application IA typiquement avec LangChain.
  4. L’exécution des calculs. Appeler un LLM coûte souvent de l’argent : il peut être pertinent d’isoler complètement la logique qui appelle des API payantes !

En résumé

Google Colab est un environnement de développement idéal pour apprendre à créer des applications IA. Il s’agit de l’environnement privilégié pour nos formations à l’IA avec LangChain.

L’utilisation d’un outil cloud évite de devoir passer par une étape d’installation qui peut être rebutante, surtout lorsque l’on utilise peu Python ou Jupyter au quotidien. Le cloud permet une connexion directe avec d’autres outils cloud comme Google Drive, et facilite le partage des résultats.

Les astuces listées dans cet articles devraient vous permettre d’être plus productifs lors de la créations de pipelines LLM avec LangChain !

Références

https://colab.research.google.com/

https://research.google.com/colaboratory/faq.html

https://colab.research.google.com/notebooks/io.ipynb

https://docs.jupyter.org/en/latest/

https://stackoverflow.com/questions/65547021/difference-between-pip-and-pip-in-python-jupyter-notebook-and-colab

https://ipython.readthedocs.io/en/stable/interactive/magics.html

Vous avez apprécié cette ressource ?

Découvrez toutes nos formations Next.js, Astro.js et LangChain en présentiel ou en distanciel

Voire toutes les ressources

Partager sur Bluesky Partager sur X
Flux RSS