Comment déployer Codestral sur l’infrastructure souveraine et sécurisée d’OUTSCALE ?

par Stéphane Robert

L’IA Générative prend une place de plus en plus importante dans le domaine du développement logiciel. En générant des fragments de code précis, en automatisant les tests et en facilitant la documentation, ces LLM (Large Language Models) augmentent la productivité des développeurs tout en leur libérant du temps pour se consacrer à l’innovation.

Toutefois, cette montée en puissance de l’IA Générative soulève une question essentielle : comment assurer la souveraineté et la sécurité du code produit ?

LLM et Sécurité des Actifs

Les entreprises et les institutions manipulent régulièrement des données et des codes sensibles, mais le recours à des outils d’IA hébergés sur des plateformes en ligne peut exposer ces actifs stratégiques à divers risques.

Premièrement, les lois extraterritoriales, comme le Cloud Act aux États-Unis, permettent à certains gouvernements de demander un accès aux données stockées dans leurs juridictions, compromettant ainsi la confidentialité des informations critiques.

Deuxièmement, l’espionnage industriel et les cyberattaques augmentent les risques d’intrusion, de vol de code ou même de sabotage, notamment via des attaques ciblant la supply chain.

Pour répondre à ces menaces, les organisations doivent réfléchir à des solutions qui allient la puissance de l’IA Générative avec des garanties de sécurité, de souveraineté des données et de protection de la propriété intellectuelle.

Partenariat Dassault Systèmes et Mistral AI

En juillet 2024, Dassault Systèmes et Mistral AI ont annoncé un partenariat stratégique visant à offrir des solutions industrielles fiables basées sur l’intelligence artificielle, afin d’accélérer l’économie Générative. Ce partenariat combine les expériences de jumeaux virtuels et l’infrastructure Cloud souveraine d’OUTSCALE (Dassault Systèmes) avec les grands modèles de langage (LLM) de Mistral AI.

Dans ce cadre, OUTSCALE a lancé une offre de LLM as a Service (LLMaaS), spécialement conçue pour permettre un développement rapide des cas d’usage d’IA Générative.

Cette offre est la première à intégrer les modèles de Mistral AI sur un Cloud 100 % souverain, sécurisé et qualifié SecNumCloud 3.2, afin de garantir des performances de pointe tout en assurant une protection renforcée des données sensibles et de la propriété intellectuelle.

Les Modèles Mistral AI Disponibles

 

Modèles Mistral AI Disponibles

 

Dans le cadre de leur partenariat, OUTSCALE et Mistral AI proposent une gamme de modèles d’Intelligence Artificielle conçus pour répondre aux besoins spécifiques des entreprises et des institutions.

Parmi ces modèles figurent Mistral Small et Codestral, qui s’intègrent au service LLMaaS (Large Language Model as a Service) déployé sur l’infrastructure Cloud souveraine d’OUTSCALE.

Cette offre permet aux organisations de tirer pleinement parti des capacités de l’IA Générative, dans un environnement souverain et sécurisé.

Mistral Small : Un Modèle Léger et Polyvalent

Mistral Small est un modèle conçu pour proposer des solutions d’IA Générative légères, tout en optimisant la consommation de ressources. Idéal pour les projets exigeant rapidité et efficacité sans compromettre la qualité, il s’adapte à une large gamme de tâches telles que la génération de textes, la complétion automatique ou le traitement de données à partir d’instructions simples. Grâce à sa latence réduite, Mistral Small se révèle particulièrement adapté aux applications en temps réel ou aux environnements nécessitant des réponses rapides.

Mistral Small se distingue par sa polyvalence et s’adapte aux usages suivants :

  • Assistants conversationnels : offre une aide contextuelle rapide et précise, parfaite pour des interactions fluides.
  • Documentation et analyse de texte : un outil performant pour automatiser les tâches d’édition ou de synthèse avec efficacité.
  • Intégration dans des applications web : idéal pour les systèmes de gestion de contenu ou les interfaces de service client, nécessitant des réponses rapides et un traitement allégé.

Avec Mistral Small, les organisations bénéficient d’un modèle d’IA Générative performant qui optimise leurs ressources tout en garantissant une confidentialité totale, grâce à l’infrastructure sécurisée d’OUTSCALE.

Codestral : Une IA Puissante pour la Génération de Code

Codestral est un modèle d’IA spécialisé dans la génération de code et destiné aux équipes de développement qui cherchent à automatiser et optimiser leurs processus de programmation.

Ce modèle prend en charge plus de 80 langages de programmation, tels que Python, Java et C++, et dispose d’une fenêtre contextuelle étendue de 128 000 tokens, permettant l’analyse et la génération de code pour des projets de grande envergure.

Codestral est conçu pour faciliter :

  • Génération et complétion de code : répond aux instructions des développeurs en produisant des segments de code conformes aux meilleures pratiques de chaque langage.
  • Création de tests unitaires : automatise la génération de tests pour garantir la robustesse et la fiabilité du code.
  • Configuration et orchestration : peut rédiger des fichiers de configuration pour des outils comme Ansible, Kubernetes ou Terraform.

En plus de ses fonctionnalités avancées, Codestral offre une flexibilité exceptionnelle, notamment grâce à l’environnement OUTSCALE, qui permet aux organisations de sécuriser totalement leurs données et leurs codes sensibles.

Ce modèle est particulièrement pertinent pour les organisations qui manipulent des informations confidentielles, car il garantit que les données traitées ne quittent jamais l’infrastructure souveraine d’OUTSCALE.

L’Offre d’OUTSCALE

L’offre d’OUTSCALE repose sur une infrastructure robuste composée d’une instance de Machine Virtuelle (VM) spécifiquement optimisée pour les modèles Mistral. Cette instance est équipée de deux GPU L40, délivrant une puissance de calcul exceptionnelle pour les applications nécessitant une exécution intensive de modèles d’IA Générative.

Cette infrastructure est déployée dans un Virtual Private Cloud (VPC) au sein de la région cloudgouv-eu-west-1 d’OUTSCALE, garantissant ainsi des performances et une sécurité renforcée pour répondre aux exigences strictes des entreprises et des institutions. Pour rappel, cette région est qualifiée selon les normes SecNumCloud 3.2, témoignant de son adhésion aux standards de sécurité les plus élevés. Cette qualification garantit que l’infrastructure respecte des critères rigoureux en matière de protection des données et de conformité aux règlements européens, assurant ainsi aux organisations une sérénité totale quant à la souveraineté et à la sécurité de leurs données hébergées.

En combinant ces éléments matériels et régionaux, l’offre d’OUTSCALE fournit une solution d’Intelligence Artificielle Générative sécurisée, permettant aux organisations d’exploiter pleinement les capacités avancées des modèles Mistral AI, tout en garantissant la souveraineté et la confidentialité des données.

Comment procéder ?

Déploiement d’une instance Codestral depuis OUTSCALE Marketplace

Abordons maintenant la pratique avec un tutoriel détaillé sur la manière de déployer une instance Codestral depuis OUTSCALE Marketplace et de l’utiliser avec Visual Studio Code, enrichi de l’extension Continue.

  1. Une fois connecté à la plateforme, naviguez vers le Catalogue et recherchez “MISTRAL AI x OUTSCALE” dans la zone de gauche, puis cliquez pour afficher les produits associés. Vous découvrirez deux OMI (OUTSCALE Machine Image) intitulées Codestral et Mistral Small, illustrées dans l’image ci-dessous.

Recherche de Mistral sur OUTSCALE Marketplace

  1. Cliquez sur Codestral et vous arriverez sur la page de détails du Bundle. Vous devriez voir, comme illustré ci-dessous, la composition du package contenant le modèle Codestral et les deux GPUs Nvidia L40.

Détails du Package Mistral Codestral

  1. Dans la section de droite, acceptez les conditions et cliquez sur “Procéder à la Souscription”.
  2. Dans un second écran, vous devrez indiquer vos identifiants de connexion (AK/SK), puis dans un troisième, le VPC et le Subnet que vous aurez préalablement configurés via Cockpit ou via du code d’Infrastructure Terraform.

Configuration des Identifiants et Réseau

  1. Une fois les informations saisies vérifiées, cliquez sur “Déployez”. Au bout de quelques minutes, vous retrouverez dans Cockpit la VM déployée.

VM Déployée dans Cockpit

Attachez-lui une adresse IP publique pour pouvoir y accéder.

Utilisation de Codestral avec Visual Studio Code

Depuis une machine autorisée à se connecter à l’instance, via les groupes de sécurité, installez Visual Studio Code puis dans les extensions, recherchez celle nommée Continue de la société du même nom.

Sur la droite, vous devriez voir apparaître une icône supplémentaire comme dans la copie d’écran ci-dessous.

Icône Continue dans Visual Studio Code

En bas de l’écran qui est apparu, cliquez sur la roue dentée et ajoutez le modèle Codestral à votre projet. Dans la section [models], ajoutez les informations suivantes en remplaçant l’adresse IP et le nom du modèle si celui-ci est différent :


  "models":
    {
      "title": "OSC-Mistral",
      "model": "codestral-2405",
      "apiBase": "http://xxx.xx.xx.xxx:5000/v1",
      "provider": "mistral"
    },
  ...
            

Si vous souhaitez l’utiliser pour l’auto-complétion, recherchez la section [tabAutocompleteModel] comme indiqué ci-dessous :


  "tabAutocompleteModel":
    {
      "title": "Tab Autocomplete Model",
      "provider": "mistral",
      "model": "codestral-2405",
      "apiBase": "http://xxx.xx.xx.xxx:5000/v1"
    },
            

Voilà, tout est prêt pour notre test.

Un Test

Je me suis amusé à lui soumettre un prompt lui demandant de produire du code d’infrastructure que je maîtrise totalement : Ansible.

Genere un playbook Ansible permettant d'installer apache sur Linux.

Consignes à respecter :

- Prendre en charge de plusieurs famille de linux
- dans le fichier de variables à inclure le nom propre du package apache à installer en fonction de l'OS
- les noms des modules ansible doivent être complet par exemple : ansible.builtin.apt
- utilise des handlers pour redémarrer les services si la configuration du service est modifiée
- utilise true ou false pour les valeurs booléennes
- La configuration de nginx doit être fourni dans un template
- Les hosts cibles sont les machines du groupe webservers
- Fourni le playbook principal
- Fourni un exemple de template jinja pour apache avec plusieurs variables
- Fourni les fichiers de variables pour les famille debian et redhat

Le résultat :

Here’s a solution for your problem:

Playbook (main.yml):


- name: Install and configure Apache
  hosts: webservers
  become: true
  vars_files:
    - "{{ ansible_os_family }}.yml"
  tasks:
    - name: Install Apache
      package:
        name: "{{ apache_package }}"
        state: present

    - name: Copy Apache configuration file
      template:
        src: apache.conf.j2
        dest: /etc/httpd/conf/httpd.conf
      notify:
        - Restart Apache
  handlers:
    - name: Restart Apache
      service:
        name: "{{ apache_service }}"
        state: restarted
            

Template (apache.conf.j2):

ServerRoot "{{ apache_root }}"

Listen {{ apache_port }}


    AllowOverride none
    Require all denied


DocumentRoot "{{ apache_document_root }}"

<Directory "{{ apache_document_root }}">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted

Variables pour Debian (debian.yml):


apache_package: apache2
apache_service: apache2
apache_root: /etc/apache2
apache_port: 80
apache_document_root: /var/www/html
            

Variables pour RedHat (RedHat.yml):


apache_package: httpd
apache_service: httpd
apache_root: /etc/httpd
apache_port: 80
apache_document_root: /var/www/html
            

Je vous laisse juger, mais le résultat est vraiment impressionnant. Il a su comprendre les consignes et les appliquer à la lettre. Il a même fourni des exemples de fichiers de variables pour les familles Debian et RedHat, ce qui est très pratique.

Il a également utilisé des handlers pour redémarrer les services si la configuration est modifiée, et il a utilisé true ou false pour les valeurs booléennes. Enfin, il a utilisé un template Jinja pour la configuration de nginx. Bravo !

Le prompt pourrait encore être amélioré en lui demandant de bien définir le propriétaire et les permissions des fichiers de configuration.

Conclusion

En combinant la puissance de Codestral pour la génération de code avec la sécurité offerte par OUTSCALE, les entreprises peuvent non seulement améliorer leur productivité, mais aussi garantir la souveraineté et la sécurité de leur code. Que ce soit pour des applications industrielles, des projets complexes ou des environnements critiques, cette solution représente un véritable atout pour les équipes de développement.

Restez connecté, car de nouvelles annonces vont bientôt arriver !

 

Articles similaires

Close Popup

3DS OUTSCALE utilise des cookies pour assurer le bon fonctionnement et la sécurité de ses sites et ainsi que proposer la meilleure expérience possible aux utilisateurs. Vous pouvez autoriser ou rejeter le dépôt de cookies en cliquant respectivement sur « J’accepte » ou « Je refuse »

Vous pouvez changer d'avis à tout moment en cliquant sur l'icône de gestion des cookies en bas à gauche de chaque page de notre site internet.

Pour en savoir plus sur notre politique de confidentialité et modifier vos préférences à tout moment, cliquez sur "Paramètres de confidentialité" (ou "Mes préférences").

Close Popup
Paramètres de confidentialité sauvegardés !
Paramètres de confidentialité

Lorsque vous visitez un site Web, il peut stocker ou récupérer des informations sur votre navigateur, principalement sous la forme de cookies. Contrôlez vos services de cookies personnels ici.

Veuillez noter que les cookies essentiels sont indispensables au fonctionnement du site, et qu’ils ne peuvent pas être désactivés.

Cookies techniques
Pour utiliser ce site Web, nous utilisons les cookies suivant qui sont techniquement nécessaires.
  • wordpress_gdpr_cookies_declined
  • wordpress_gdpr_cookies_allowed
  • wordpress_gdpr_allowed_services

Save
Open Privacy settings