Plan de formation : utilisation d'une IA privée

8 janvier 2024 14:50 dans publications
Slider Image

Prérequis:

  • Linux
  • Connaissance  basique du shell

 

Partie 1: présentation générale

Introduction

Présentation des technologies :

  • Avantages et inconvénient des language models privés contre les services propriétaires
  • Panorama des différentes familles de runtimes: transformers, Llama.cpp, etc...
  • Le matériel: prérequis, contraintes: CPU et GPU

Les formats de modèles de language :

  • Notion de quantitization
  • Le format gguf

Les différents types de modèles de language :

  • Foundation models
  • Fine tunes
  • Choisir un modèle: famille, taille, quantitization, spécialisation
Concepts fondamentaux
  • La tokenization
  • Notion de fenêtre de contexte
  • Le format de prompt
  • Introdution au templating
Les paramètres d'inférence

Présentation des paramètres d'inférence les plus courrants passés au modèle :

  • Réglage de la fenêtre de contexte
  • Apercu des paramètres principaux: température, top_p, top_k, min_p
  • Réglage des probabilités et pénalités
  • Stop tokens
  • Notion de logit biais

Paramètres plus spécialisés :

  • Grammaires gbnf: pour orienter l'output du modèle
  • Multimodal: lecture et interprétation des images

Partie 2: les outils

Mise en place d'un serveur d'inférence local: les options

Présentation des backends d'inférence locaux les plus utilisés. Pour chaque backend: présentation de l'installation, et exemple simple d'utilisation.

  • Le serveur Llama.cpp
  • Koboldcpp
  • Ollama
  • Autres: LocalAI, ExLlama

Autres backends demandant plus de ressources et orientés déploiement: ExLlama et Vllm

Utiliser une interface graphique

Aperçu des interfaces graphiques existantes :

  • Text web UI
  • Silly Tavern
  • Koboldcpp
  • InferGui

Workflows de développement:

  • Intégration de l'IA en IDE (integrated development environment)
  • Utilisation d'une IA spécialisée pour la programmation: génération, refactor, optimisation de code, documentation, session de développement interactive
Se connecter à une api privée

Présentation des différentes familles d'api et libraries :

  • Bindings Python pour Llama.cpp
  • Langchain
  • Api: Llama.cpp, Koboldcpp et Ollama, format OpenAI
  • Librairie LocalLm: démos en Python et Typescript

Partie 3: templating et prompt engineering

Templating

Présentation de la notion de template et du travail de formattage des prompts :

  • Composition d'un template: blocs system, user, assistant
  • Formats de template et familles de modèles: comment choisir son type de template
  • Pourquoi le templating est important, bonnes pratiques et erreurs à ne pas commettre
  • Templating avancé: technique du few shots prompting
Prompt engineering

Présentation de techniques classiques de prompting :

  • System blocs
  • Suivi d'instructions
  • Chain of tought: raisonnement
  • ReAct prompts: combinaison raisonnement et action
  • Prompting avancé: introduction à MedPrompt
  • Agents et actions
Embeddings

Présentation de la notion d'embeddings et utilisation :

  • Principes du *retrieval augmented generation*: inclusion de documents dans le prompt
  • Bases de données vectorielles et mémoire à long terme
  • Librairies Python de gestion des embeddings: Llama Index et Langchain

Conclusion: perspectives

Aperçu des modèles les plus performants et populaires du moment :

  • Petits modèles: 3B et 7B en suivi d'instructions
  • Modèles intermédiares: 13B et 34B: chat et suivi d'instructions
  • Grands modèles: 70B et plus: chat et suivi d'instructions

Fonctionalités particulières :

  • Modèles multimodaux: computer vision et traitement des images
  • Modèles à large fenêtre de contexte: possibilités et limites

Durée : 4 jours
Prix : 4 500 euros HT/ personne
Nous contacter : 01 47 20 23 01

Articles associés

Utiliser une IA locale pour documenter du code

La puissance des modèles de language open source augmente, ouvrant des possibilités nouvelles. Dans cet exemple nous allons utiliser Mistral 7B instruct, un des meilleurs modèle de taille modeste à ce jour, pour générer des docstrings pour du code Python. Un avantage essentiel de cette technique est qu'elle permet de garder le code privé, rien n'est envoyé sur des plateformes externes, assurant une confidentialité compatible avec une utilisation en entreprise.

LocalLm : une IA locale en Python

Face à ChatGPT et autres large language models (LLM) fermés, des alternatives open source se développent. De plus en plus de models open source font leur apparition : les Llama, Mistral et autres Falcon et consorts. Cet écosystème émergent permet d'envisager une utilisation interne en entreprise, hors plateformes géantes. Même si les coûts et la technologie restent incertains et en constante évolution, une telle approche permet de préserver la confidentialité des données, en ne les envoyant pas sur des plateformes externes.

Utiliser une IA locale dans Django

Ceci est une introduction l'IA prend de plus en plus de place, de plus en plus vite. Depuis quelques temps a émergé un mouvement open source autour notamment de Llama.cpp.

Django et IA locale : connecter Langchain