Abonnez-vous pour recevoir des notifications sur les nouveaux articles :

Workers AI : inférence serverless soutenue par GPU sur le réseau mondial de Cloudflare

2023-09-27

Lecture: 8 min.
Cet article est également disponible en English, en Deutsch, en 日本語, en 한국어, en Español et en 简体中文.

Si vous avez un quelconque degré de proximité avec la communauté des développeurs, vous constatez qu'il est presque impossible d'éviter l'impact des récentes avancées en matière d'IA sur l'écosystème. Que vous utilisiez l'IA pour améliorer votre productivité ou que vous proposiez des fonctionnalités basées sur l'IA à vos utilisateurs, celle-ci se révèle omniprésente. Les améliorations apportées par l'IA sont extraordinaires et nous sommes très enthousiastes quant aux possibilités qui s'offrent à nous, mais ces dernières ne suffisent pas.

Il n'y a pas si longtemps, si vous souhaitiez tirer parti de la puissance de l'IA, vous deviez connaître les tenants et les aboutissants de l'apprentissage automatique (Machine Learning) et être en mesure de gérer l'infrastructure nécessaire.

En tant que plateforme de développement comptant plus d'un million de développeurs actifs, nous pensons qu'il reste encore beaucoup de potentiel à exploiter, c'est pourquoi nous souhaitons changer la manière dont l'IA est proposée aux développeurs. Malgré leur puissance, de nombreuses solutions actuelles sont basées sur des modèles fermés et propriétaires, qui ne répondent pas aux besoins en matière de protection de la vie privée exigés par les développeurs et les utilisateurs. Par ailleurs, le secteur de l'open source regorge de modèles puissants, mais qui ne s'avèrent tout simplement pas suffisamment accessibles pour tous les développeurs. Imaginez que vous puissiez exécuter un modèle, à partir de votre code, quel que soit l'endroit où il est hébergé, sans avoir à trouver de GPU ni à vous soucier de la mise en place de l'infrastructure nécessaire à son fonctionnement.

C'est la raison pour laquelle, nous sommes heureux d'inaugurer Workers AI, une plateforme d'inférence IA en tant que service reposant sur notre réseau mondial de GPU et permettant aux développeurs d'exécuter des modèles d'IA en seulement quelques lignes de code. Publique, accessible et serverless, cette solution axée sur la confidentialité fonctionne à proximité de vos utilisateurs, bénéficie d'une facturation à l'utilisation et a été conçue dès le départ pour proposer la meilleure expérience qui soit aux développeurs.

Workers AI : faire tout simplement fonctionner l'inférence

Nous lançons Workers AI afin de mettre l'inférence de l'IA à la portée de tous les développeurs. Or, pour atteindre cet objectif, il faut que la solution fonctionne immédiatement. Comment y parvenir ?

  • Tout repose sur l'infrastructure appropriée : notre réseau de GPU de premier ordre.

  • Nous fournissons donc des modèles prêts à l'emploi qui s'exécutent de manière fluide sur notre infrastructure.

  • Enfin, nous devons proposer au développeur final un produit qui lui plaise. Un développeur doit pouvoir concevoir sa première application Workers AI en quelques minutes et se dire « Ouah, c'est magique ! ».

Alors, qu'est-ce que la plateforme Workers AI exactement ? Il s'agit d'un nouveau composant que nous ajoutons à notre plateforme pour développeurs. Conçu pour aider ces derniers à exécuter des modèles d'IA connus sur des GPU serverless, l'ensemble repose sur le réseau mondial sécurisé de Cloudflare. Cette fonctionnalité constitue l'un des derniers ajouts à notre plateforme de développement. Elle fonctionne en toute fluidité avec la solution Workers + Pages et nous l'avons rendue agnostique vis-à-vis de la plateforme afin de la rendre véritablement accessible. Disponible via une API REST, elle fonctionne donc sur n'importe quelle plateforme.

Des modèles que vous connaissez et appréciez

Nous lançons un ensemble de modèles populaires et open source, qui couvrent un large éventail de tâches d'inférence :

  • Génération de texte (Large Language Model) : meta/llama-2-7b-chat-int8

  • Reconnaissance vocale automatique (ASR) : openai/whisper

  • Traduction : meta/m2m100-1.2

  • Classification de texte : huggingface/distilbert-sst-2-int8

  • Classification d'images : microsoft/resnet-50

  • Embeddings : baai/bge-base-en-v1.5

Vous pouvez parcourir tous les modèles disponibles dans votre tableau de bord Cloudflare et pourrez bientôt vous plonger dans les journaux et les analyses pour chaque modèle !

Ce n'est qu'un début et nous avons de grands projets pour l'avenir. Après le lancement, nous continuerons à étoffer la solution en fonction des retours de la communauté. Plus passionnant encore, dans un effort visant à développer notre catalogue au maximum, nous annonçons un partenariat avec Hugging Face, une communauté de premier plan, doublée d'un hub, dans le domaine de l'IA. Il s'agira d'un partenariat multiforme, sur lequel vous trouverez plus d'informations ici. Vous pourrez bientôt accéder à un sous-ensemble du catalogue de Hugging Face, à exécuter directement dans Workers AI.

Une plateforme accessible à tous

Un des objectifs de notre plateforme pour développeurs consiste à proposer à ces derniers tous les éléments dont ils ont besoin pour concevoir les applications de leurs rêves. L'accès aux bons composants ne constitue qu'un aspect du problème. En tant que développeur, votre tâche revient à les assembler sous la forme d'une application. Notre objectif consiste à vous rendre la tâche aussi facile que possible.

Afin de nous assurer que vous puissiez utiliser Workers AI facilement quel que soit le point d'entrée, nous souhaitions vous proposer un accès via : Workers ou Pages, afin de faciliter son utilisation au sein de l'écosystème Cloudflare, et via une API REST si vous souhaitez utiliser Workers AI avec votre pile actuelle.

Voici un exemple rapide de CURL permettant de traduire un texte de l'anglais vers le français :

Et voici à quoi ressemble la réponse :

curl https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/ai/run/@cf/meta/m2m100-1.2b \
-H "Authorization: Bearer {API_TOKEN}" \
	-d '{ "text": "I'll have an order of the moule frites", "target_lang": "french" }'

Vous pouvez utiliser cet exemple de code avec n'importe quelle pile et à n'importe quel emplacement : votre framework Jamstack préféré, Python + Django/Flask, Node.js, Ruby on Rails, les possibilités sont infinies. Il ne vous reste plus ensuite qu'à procéder au déploiement.

{
  "result": {
    "answer": "Je vais commander des moules frites"
  },
  "success": true,
  "errors":[],
  "messages":[]
}

Une solution conçue pour les développeurs

L'expérience des développeurs est très importante pour nous. C'est d'ailleurs le sujet de la majeure partie de cet article. S'assurer que la solution fonctionne immédiatement. Proposer des modèles populaires qui fonctionnent, tout simplement. Être accessible à tous les développeurs, que vous développiez et déployiez sur Cloudflare ou sur une autre plateforme. Mais nous souhaitons aller plus loin : l'expérience doit être fluide, le processus de développement de zéro à la production doit être rapide et vous devez vous avoir le sentiment d'avoir fait le bon choix tout au long de ce dernier.

Prenons un autre exemple pour montrer à quel point notre plateforme est facile à utiliser : nous allons utiliser Llama 2, un modèle de langage très répandu et mis à disposition gratuitement par Meta, au sein d'un worker.

Nous partirons du principe que vous disposez déjà de certaines bases (compte Cloudflare, Node, NPM, etc.), mais si ce n'est pas le cas ce guide vous permettra de vous préparer convenablement !

1. Créez un projet Workers

Créez un nouveau projet nommé workers-ai en exécutant le code ci-dessous :

Lors de la configuration de votre worker workers-ai, répondez aux questions de configuration comme suit :

$ npm create cloudflare@latest
  • Saisissez workers-ai pour le nom de l'application.

  • Sélectionnez le script Hello World pour le type d'application.

  • Sélectionnez Oui concernant l'utilisation de TypeScript.

  • Sélectionnez Oui concernant l'utilisation de Git.

  • Sélectionnez Non concernant le déploiement.

Enfin, rendez-vous dans le répertoire de votre nouvelle application :

2. Connectez Workers AI à votre worker

cd workers-ai

Créez une liaison Workers AI, qui permet à votre worker d'accéder au service Workers AI sans avoir à gérer vous-même une clé d'API.

Pour lier Workers AI à votre worker, ajoutez ce qui suit à la fin de votre fichier wrangler.toml :

Vous pouvez également lier Workers AI à une fonction Pages. Pour plus d'informations, consultez la page Functions Bindings.

[ai]
binding = "AI" #available in your worker via env.AI

3. Installez la bibliothèque client Workers AI

4. Exécutez une tâche d'inférence dans votre worker

npm install @cloudflare/ai

Mettez à jour le fichier source/index.ts avec le code suivant :

5. Développez localement avec Wrangler

import { Ai } from '@cloudflare/ai'
export default {
  async fetch(request, env) {
    const ai = new Ai(env.AI);
    const input = { prompt: "What's the origin of the phrase 'Hello, World'" };
    const output = await ai.run('@cf/meta/llama-2-7b-chat-int8', input );
    return new Response(JSON.stringify(output));
  },
};

Lorsque vous êtes dans le répertoire de votre projet, testez Workers AI localement en exécutant le code ci-dessous :

Remarque : ces modèles ne fonctionnent actuellement que sur le réseau de GPU de Cloudflare (et non localement). Il est donc indispensable de définir le paramètre --remote ci-dessus. Vous serez invité à vous connecter à ce stade.

$ npx wrangler dev --remote

Wrangler vous donnera une URL (probablement localhost:8787). Cliquez sur cette URL et vous obtiendrez une réponse ressemblant à celle-ci :

6. Déployez votre worker

{
  "response": "Hello, World is a common phrase used to test the output of a computer program, particularly in the early stages of programming. The phrase "Hello, World!" is often the first program that a beginner learns to write, and it is included in many programming language tutorials and textbooks as a way to introduce basic programming concepts. The origin of the phrase "Hello, World!" as a programming test is unclear, but it is believed to have originated in the 1970s. One of the earliest known references to the phrase is in a 1976 book called "The C Programming Language" by Brian Kernighan and Dennis Ritchie, which is considered one of the most influential books on the development of the C programming language.
}

Enfin, déployez votre worker pour rendre votre projet accessible sur Internet :

Et voilà ! Vous pouvez littéralement déployer votre IA à partir de zéro en quelques minutes. Il s'agit évidemment d'un exemple simple, mais qui montre à quel point il est facile d'exécuter Workers AI à partir de n'importe quel projet.

$ npx wrangler deploy
# Outputs: https://workers-ai.<YOUR_SUBDOMAIN>.workers.dev

La confidentialité, par défaut

Lors de la fondation de Cloudflare, notre proposition de valeur reposait sur trois piliers : un Internet plus sûr, plus fiable et plus performant. Au fil du temps, nous avons réalisé qu'un meilleur Internet reposait également sur un Internet plus privé et nous souhaitions jouer un rôle dans son développement.

C'est pourquoi la plateforme Workers AI est privée par défaut. Nous n'entraînons pas nos modèles, nos LLM ou tout autre composant en les nourrissant de vos données ou de vos conversations. De même, nos modèles ne s'appuient pas sur la manière dont vous utilisez nos services pour apprendre. Vous pouvez utiliser Workers AI en toute confiance, que ce soit dans un cadre personnel ou professionnel, sans craindre que vos données ne soient divulguées. D'autres fournisseurs ne proposent cette fonctionnalité fondamentale que dans leur version destinée aux entreprises. Chez nous, tout le monde y a accès.

Nous sommes également impatients de prendre en charge la régionalisation des données à l'avenir. Pour y parvenir, nous comptons sur un plan ambitieux de déploiement de GPU. Nous allons lancer sept sites aujourd'hui, une centaine d'ici la fin 2023 et pratiquement tous les sites d'ici la fin 2024. Au final, ce déploiement permettra aux développeurs de continuer à proposer des fonctions IA innovantes à leurs utilisateurs, tout en restant conformes aux exigences de régionalisation des données de leurs utilisateurs finaux.

La puissance de la plateforme

Base de données vectorielle : Vectorize

Workers AI a pour mission d'exécuter des procédures d'inférence et de faciliter cette tâche, mais l'inférence ne constitue parfois qu'une partie de l'équation. Les modèles de langage de grande taille (Large Language Models) sont nourris à l'aide d'un ensemble fixe de données, sur la base d'un instantané à un moment précis du passé et ne disposent d'aucun contexte quant à votre activité ou votre scénario d'utilisation. Lorsque vous envoyez une invite, les informations spécifiques à votre situation peuvent améliorer la qualité des résultats, afin de les rendre plus utiles et plus pertinents. C'est pourquoi nous lançons également Vectorize, notre base de données vectorielle conçue pour fonctionner en toute fluidité avec Workers AI. Voici un aperçu rapide de la manière dont vous pouvez utiliser ensemble nos solutions Workers AI et Vectorize.

Exemple : utiliser vos données (base de connaissances) pour apporter davantage de contexte à un LLM lorsqu'un utilisateur chatte avec lui.

  1. Générez les embeddings initiaux : traitez vos données dans Workers AI à l'aide d'un modèle d'embedding. Vous obtiendrez en retour des embeddings, c'est-à-dire des représentations numériques de ces mots.

  2. Intégrez ces embeddings dans Vectorize : cette opération permet d'ensemencer la base de données vectorielle avec vos données, de sorte que nous puissions l'utiliser ultérieurement pour récupérer des embeddings similaires aux questions de vos utilisateurs.

  3. Générez un embedding à partir d'une question d'un l'utilisateur : lorsqu'un utilisateur adresse une question à votre application IA, traitez la question dans Workers AI à l'aide d'un modèle d'embedding.

  4. Obtenez du contexte à partir de Vectorize : utilisez cet embedding pour interroger Vectorize. Cette opération devrait produire des embeddings similaires à la question de l'utilisateur.

  5. Créez une invite tenant compte du contexte : créez maintenant une nouvelle invite combinant le texte de la recherche vectorielle et la question initiale à l'aide du texte original associé à ces embeddings.

  6. Exécutez l'invite : exécutez l'invite dans Workers AI à l'aide d'un modèle LLM afin d'obtenir le résultat final.

AI Gateway

Cette section couvre un scénario d'utilisation plus avancé. Si vous exécutez des modèles ailleurs, mais que vous souhaitez tirer davantage de l'expérience, vous pouvez exécuter ces API via notre service AI Gateway afin de bénéficier de fonctionnalités telles que la mise en cache, le contrôle du volume de requêtes, l'analyse et la journalisation. Ces fonctionnalités peuvent être utilisées pour protéger votre point de terminaison, surveiller et optimiser vos coûts, mais aussi pour contribuer à la prévention des pertes de données. Vous trouverez plus d'informations sur la solution AI Gateway ici.

Commencez le développement dès aujourd'hui

Essayez notre plateforme par vous-même et dites-nous ce que vous en pensez. Nous lançons aujourd'hui la plateforme Workers AI en version bêta ouverte pour tous les utilisateurs de Workers, gratuits ou payants. Nous n'en sommes encore qu'aux débuts, alors…

Avertissement : il s'agit d'une première version bêta

L'utilisation n'est actuellement pas recommandée pour les applications de production. Les limites et l'accès sont susceptibles d'être modifiés.

Limites

Dans un premier temps, nous avons fixé des limites en fonction du modèle.

  • @cf/meta/llama-2-7b-chat-int8 : 50 requêtes/min à l'échelle mondiale

Consultez notre documentation pour un aperçu complet de nos limites.

Tarification

Le texte que nous avons publié aujourd'hui ne constitue qu'un petit aperçu, prévu pour vous donner un avant-goût de ce qui vous attend (nous ne pouvions tout simplement pas nous retenir), mais nous sommes impatients de mettre à votre disposition la version complète de Workers AI.

Nous savons pertinemment que lorsque vous vous apprêtez à développer quelque chose, vous vous posez la même question sempiternelle : combien cela va-t-il me coûter ? D'autant que les coûts liés à l'IA peuvent facilement devenir incontrôlables. C'est pourquoi nous avons voulu partager avec vous la tarification à venir de la plateforme Workers AI.

Bien que nous ne facturerons pas dès le premier jour, nous pouvons d'ores et déjà annoncer les tarifs que nous prévoyons d'appliquer.

Les utilisateurs pourront choisir entre deux modes d'exécution de la plateforme Workers AI :

  • Regular Twitch Neurons (RTN) : le mode fonctionnant partout où de la capacité est présente, facturé à 0,01 USD/1 000 neurones.

  • Fast Twitch Neurons (FTN) : le mode fonctionnant à l'emplacement le plus proche de l'utilisateur, facturé à 0,125  USD/ 1 000 neurones.

Vous vous demandez peut-être ce qu'est un neurone ?

Les neurones sont un moyen de mesurer la production de l'IA, toujours ramené à zéro (si votre utilisation est nulle, vous serez facturé 0 neurone). Pour vous donner une idée de ce que vous pouvez accomplir avec un millier de neurones, vous pouvez : générer 130 réponses de LLM, 830 classifications d'images ou 1 250 embeddings.

Notre objectif consiste à aider nos clients à ne payer que ce qu'ils utilisent et à choisir la tarification qui correspond le mieux à leur situation, que la préoccupation principale soit le prix ou la latence.

Quelle est notre feuille de route ?

La plateforme Workers AI n'en est qu'à ses prémices et nous avons besoin de vos retours pour l'améliorer. Notre feuille de route comporte toutefois des éléments intéressants.

Davantage de modèles, s'il vous plaît

Nous proposons un solide ensemble de modèles parfaitement fonctionnels au lancement, mais nous continuerons à proposer de nouveaux modèles en fonction de vos retours. Si vous souhaitez que Workers AI prenne en charge un modèle particulier, rendez-vous sur notre Discord et n'hésitez pas à nous en informer !

Nous annonçons en outre un partenariat avec Hugging Face. Vous pourrez bientôt accéder à un sous-ensemble du catalogue de Hugging Face, à exécuter directement dans Workers AI.

Analyses et observabilité

Jusqu'à présent, nous nous sommes concentrés sur un seul aspect : permettre à n'importe quel développeur d'exécuter facilement de puissants modèles d'IA en seulement quelques lignes de code. Or, cet aspect ne représente qu'une partie de l'équation. Nous travaillerons prochainement sur des capacités d'analyse et d'observabilité conçues pour vous offrir des statistiques sur votre utilisation, vos performances et vos dépenses en fonction de chaque modèle, ainsi que la possibilité d'accéder à vos journaux si vous souhaitez les explorer.

Vers une couverture GPU mondiale

Notre objectif est d'être le meilleur endroit pour exécuter des tâches d'inférence dans le monde. C'est pourquoi nous nous efforçons d'intégrer des GPU à nos datacenters, et ce aussi rapidement que possible.

Nous prévoyons d'être opérationnels dans 100 datacenters d'ici la fin de l'année.

Et quasiment partout d'ici la fin 2024.

Nous sommes impatients de vous voir développer. Rendez-vous dans nos documents pour vous lancer.Si vous avez besoin d'inspiration, si vous souhaitez partager quelque chose que vous développez ou si vous avez une question, rendez-vous sur notre canal Discord pour développeurs.

Nous protégeons des réseaux d'entreprise entiers, aidons nos clients à développer efficacement des applications à l'échelle d'Internet, accélérons tous les sites web ou applications Internet, repoussons les attaques DDoS, tenons les pirates informatiques à distance et pouvons vous accompagner dans votre parcours d'adoption de l'architecture Zero Trust.

Accédez à 1.1.1.1 depuis n'importe quel appareil pour commencer à utiliser notre application gratuite, qui rend votre navigation Internet plus rapide et plus sûre.

Pour en apprendre davantage sur notre mission, à savoir contribuer à bâtir un Internet meilleur, cliquez ici. Si vous cherchez de nouvelles perspectives professionnelles, consultez nos postes vacants.
Birthday Week (FR)Cloudflare WorkersAIDeveloper PlatformDatabase (FR)Vectorize (FR)Développeurs

Suivre sur X

Phil Wittig|@pdwittig
Rita Kozlov|@ritakozlov_
Rebecca Weekly|@rebeccalipon
Celso Martinho|@celso
Cloudflare|@cloudflare

Publications associées

27 septembre 2024 à 13:00

Our container platform is in production. It has GPUs. Here’s an early look

We’ve been working on something new — a platform for running containers across Cloudflare’s network. We already use it in production, for AI inference and more. Today we want to share an early look at how it’s built, why we built it, and how we use it ourselves. ...