Aller au contenu principal

Snowflake, IBM watsonx et Outscale

Trois plateformes complémentaires

Au-delà des hyperscalers (Azure, GCP, AWS), Mistral est disponible sur trois plateformes supplémentaires qui répondent à des besoins spécifiques : Snowflake Cortex pour les équipes data, IBM watsonx pour l’entreprise régulée, et Outscale pour la souveraineté européenne. Cette leçon vous donne un tour d’horizon de chacune.

Snowflake Cortex

Concept

Snowflake Cortex intègre directement les modèles d’IA dans la plateforme Snowflake. L’avantage principal : vous pouvez appeler Mistral depuis vos requêtes SQL, sans sortir vos données de Snowflake.

Modèles disponibles

  • Mistral Large — raisonnement avancé
  • Mistral 7B — léger, serverless

Prérequis

  • Un compte Snowflake dans une région compatible Cortex
  • Le rôle CORTEX_USER activé sur votre compte

Utilisation en SQL

L’intégration la plus élégante de Cortex est l’utilisation directe en SQL :

-- Appel direct dans une requête SQL
SELECT SNOWFLAKE.CORTEX.COMPLETE(
    'mistral-large2',
    'Résume les tendances principales de ce dataset.'
) AS resume;

Vous pouvez combiner l’IA avec vos données existantes :

-- Analyser chaque ligne d'une table
SELECT
    id,
    description,
    SNOWFLAKE.CORTEX.COMPLETE(
        'mistral-large2',
        CONCAT('Classifie ce texte (positif/négatif/neutre) : ', description)
    ) AS sentiment
FROM reviews
LIMIT 100;

Utilisation en Python (Snowpark)

from snowflake.cortex import Complete

# Appel simple
completion = Complete(
    model="mistral-large2",
    prompt="Quels sont les avantages de Snowflake pour l'IA ?"
)
print(completion)

Cas d’usage privilégiés

  • Classification de texte à grande échelle sur des tables Snowflake
  • Enrichissement de données directement dans le pipeline SQL
  • Génération de résumés sur des datasets volumineux
  • Analyse de sentiment sans exporter les données

IBM watsonx.ai

Concept

IBM watsonx.ai est la plateforme IA enterprise d’IBM, conçue pour les entreprises régulées (banque, assurance, santé). Mistral Large y est disponible en SaaS et on-premise.

Prérequis

  • Un projet IBM watsonx (IBM_CLOUD_PROJECT_ID)
  • Un Service ID avec accès Watson Machine Learning et rôle EDITOR
  • Une clé API IBM Cloud (IBM_CLOUD_API_KEY)

Régions disponibles

RégionCode
Dallasus-south
Londreseu-gb
Francforteu-de
Tokyojp-tok

Installation

pip install httpx ibm-watsonx-ai mistral-common

Le package mistral-common est essentiel pour le formatage correct des prompts. Sans lui, le tokenizer peut produire des erreurs silencieuses.

Utilisation

from ibm_watsonx_ai.foundation_models import ModelInference
import os

model = ModelInference(
    model_id="mistralai/mistral-large",
    credentials={
        "url": "https://eu-de.ml.cloud.ibm.com",
        "apikey": os.environ["IBM_CLOUD_API_KEY"]
    },
    project_id=os.environ["IBM_CLOUD_PROJECT_ID"]
)

response = model.generate_text(
    prompt="Quelles sont les exigences RGPD pour le traitement de données par IA ?"
)
print(response)

Point d’attention : formatage des prompts

IBM watsonx nécessite l’utilisation de mistral-common pour formater correctement les prompts. Évitez d’envoyer des chaînes brutes — utilisez le tokenizer Mistral pour prévenir les erreurs de tokenisation silencieuses :

from mistral_common.tokens.tokenizers.mistral import MistralTokenizer
from mistral_common.protocol.instruct.messages import UserMessage
from mistral_common.protocol.instruct.request import ChatCompletionRequest

tokenizer = MistralTokenizer.from_model("mistral-large-latest")

request = ChatCompletionRequest(
    messages=[UserMessage(content="Votre prompt ici")]
)
tokens = tokenizer.encode_chat_completion(request)

Outscale

Concept

Outscale est un fournisseur cloud européen (filiale de Dassault Systèmes). C’est l’option de choix pour les organisations qui exigent une souveraineté totale des données au sein de l’Union Européenne.

Modèles disponibles

  • Mistral Small (24.09) — modèle léger
  • Codestral (24.05) — spécialisé code
  • Ministral 8B (24.10) — modèle compact

Déploiement

Le déploiement se fait via le marketplace Outscale : une VM avec GPU et le modèle pré-déployé. Pas besoin de configurer l’inférence vous-même.

Code Python

import os
from mistralai import Mistral

client = Mistral(server_url=os.environ["OUTSCALE_SERVER_URL"])

response = client.chat.complete(
    model=os.environ["OUTSCALE_MODEL_NAME"],
    messages=[
        {"role": "user", "content": "Quels sont les avantages d'un cloud souverain européen ?"}
    ],
    temperature=0
)
print(response.choices[0].message.content)

FIM avec Codestral sur Outscale

response = client.fim.complete(
    model=os.environ["OUTSCALE_MODEL_NAME"],
    prompt="def fibonacci(n: int) -> int:",
    suffix="return result"
)
print(response.choices[0].message.content)

Comparaison des trois plateformes

CritèreSnowflake CortexIBM watsonxOutscale
Public cibleÉquipes data/SQLEntreprise réguléeSouveraineté EU
AccèsSQL natif + PythonSDK IBMClient Mistral
DonnéesRestent dans SnowflakeIBM CloudCloud européen
ModèlesLarge, 7BLargeSmall, Codestral, 8B
ConformitéSOC 2, HIPAASOC 2, HIPAA, PCISecNumCloud (en cours)

Points clés à retenir

  • Snowflake Cortex — idéal si vos données sont déjà dans Snowflake, appel IA directement en SQL
  • IBM watsonx — plateforme enterprise régulée, nécessite mistral-common pour le formatage
  • Outscale — souveraineté européenne, déploiement via marketplace avec GPU pré-configuré
  • Chaque plateforme a son SDK propre — seul Outscale utilise le client Mistral standard