TL;DR : Cet article analyse les performances de diverses API de grands modèles de langage (LLM), notamment OpenAI, Anthropic, Cloudflare AI, Google Gemini, Groq, Hugging Face, etc. J'ai testé un petit modèle et un grand modèle de chaque fournisseur avec une invite simple et un résultat limité, partageant les principales conclusions et une analyse détaillée des temps de réponse. Vous pouvez reproduire l'expérience à l'aide du référentiel GitHub comparant-llm-api-performance.
En tant que développeur travaillant avec des API LLM (Large Language Model), les performances sont l'une de mes principales considérations lors de la sélection d'un fournisseur d'API LLM. Une faible latence et des temps de réponse rapides sont cruciaux pour les applications nécessitant des interactions en temps réel.
Dans cet article, je compare les performances API de différents fournisseurs LLM : AI21 Studio, Anthropic, Cloudflare AI, Cohere, Fireworks AI, Google Gemini, Goose AI, Groq, Hugging Face, Mistral AI, OpenAI, Perplexity et Reka AI. Pour calculer les temps de réponse moyens, j'ai testé chaque API plusieurs fois, en soumettant la simple invite « Expliquez l'importance des LLM à faible latence ». Les modèles petits et grands ont été testés à moins qu'ils n'étaient pas disponibles.
Pour garantir une comparaison équitable, j'ai écrit un script de test Node.js en utilisant lecli-progrès,interface llm, etnœud-pingForfaits NPM.cli-progrèsfournit des commentaires aux utilisateurs via des tests,interface llmfournit une interface unifiée pour plusieurs fournisseurs LLM, simplifiant considérablement les interactions avec mon fournisseur LLM, etnœud-pinga facilité la collecte des moyennes de latence.
Le script de test évalue les performances de diverses API LLM de plusieurs fournisseurs en envoyant dix fois une simple invite à l'API de chaque fournisseur. Le script mesure les indicateurs de performances clés de chaque fournisseur, notamment la latence, le temps de réponse moyen, l'écart type et le taux de réussite. Pour éviter les erreurs de dépassement de limite de débit, le script inclut un intervalle de veille configurable entre les requêtes. (La veille par défaut est de 1 seconde mais est configurable car j'ai rencontré des problèmes avec Google Gemini et Mistral AI à cet intervalle.) Utilisation des alias de modèle intégrés inclus avecinterface llm, le script enregistre les résultats et les données de performances pour les deuxpetitetgranddes modèles. Les résultats sont compilés dans un fichier CSV, tandis que des exemples de réponses des modèles sont enregistrés dans des fichiers de démarques pour un examen ultérieur. Pour cet article, j'ai demandé à Claude d'Anthropic d'évaluer la qualité des résultats. Cette approche garantit une évaluation précise des performances des LLM chez différents fournisseurs.
(Si vous êtes intéressé par les réponses API, je les ai incluses plus tard dans cet article, après les clés API.)
J'ai classé les fournisseurs en fonction d'une combinaison de leur latence, de leur temps de réponse moyen et de l'écart type de leurs temps de réponse plutôt que de considérer uniquement le temps de réponse moyen (ms). Pourquoi? La latence mesure le retard initial de la communication réseau, ce qui est crucial pour garantir des interactions rapides. Le temps de réponse moyen indique la rapidité avec laquelle un fournisseur peut traiter et renvoyer une réponse, tandis que l'écart type mesure la cohérence de ses performances. En prenant en compte ces trois indicateurs, vous pouvez identifier les fournisseurs qui offrent non seulement de la vitesse, mais également de la fiabilité et de la cohérence, ce qui est essentiel pour les applications qui nécessitent des interactions en temps réel ou des réponses rapides.
Commençons par visualiser les résultats avec un graphique utile.
La latence peut être définie comme « le temps nécessaire à un paquet de données pour voyager d'un point à un autre ». Le tableau suivant affiche la latence moyenne pour chaque fournisseur.
| Fournisseur | Latence moyenne (ms) |
|---|---|
| OpenAI | 16.463 |
| Adhérer | 16.572 |
| Anthropique | 16.893 |
| Google Gémeaux | 17.044 |
| Visage câlin | 17.564 |
| Mistral IA | 17.733 |
| IA de feux d'artifice | 18.135 |
| AI21 Studio | 18.499 |
| IA d'oie | 18.573 |
| Perplexité | 18.632 |
| Reka IA | 19.411 |
| IA Cloudflare | 19.812 |
| Groq | 20.364 |
Si l’on considère uniquement la latence, OpenAI, Cohere et Anthropic démarrent tous fort. Cependant, le tableau suivant fournit les résultats de mes tests en utilisant leinterface llmpetitdes modèles. Les résultats sont triés par temps de réponse moyen. Quand on évalue les temps de réponse moyens, Anthropic et Cohere glissent légèrement, et OpenAI se retrouve en 8ème position.
| Fournisseur | Petit modèle | Temps de réponse moyen (ms) | Écart type (ms) |
|---|---|---|---|
| Visage câlin | Phi-3-mini-4k-instruct | 117.052 | 92.733 |
| Groq | gemma-7b-it | 269.841 | 100.261 |
| IA de feux d'artifice | phi-3-mini-128k-instruct | 802.078 | 186.151 |
| Anthropique | claude-3-haïku-20240307 | 1534.910 | 167.900 |
| Adhérer | voyant de commande | 1668.845 | 61.123 |
| Google Gémeaux | gemini-1.5-flash | 1660.029 | 154.032 |
| AI21 Studio | jamba-instruire | 2403.589 | 253.886 |
| OpenAI | davinci-002 | 2713.774 | 305.483 |
| Perplexité | lama-3-sonar-petit-32k-en ligne | 3182.196 | 182.791 |
| Mistral IA | mistral-petit-dernier | 3509.565 | 164.051 |
| Reka IA | bord reka | 8008.077 | 200.714 |
| IA Cloudflare | tinyllama-1.1b-chat-v1.0 | 10188.783 | 375.586 |
| IA d'oie | gpt-neo-125m | 13673.527 | 216.091 |
Le tableau suivant fournit les résultats de mon test en utilisant les modèles fournis parinterface llmquand j'ai préciségrandpour mon modèle. Les résultats sont triés par temps de réponse moyen. Hugging Face et Groq ont réussi à maintenir leurs positions, tandis que Google Gemini a bondi de manière assez agressive. Nos premiers leaders, Anthropic et Cohere reculent encore, tandis qu'OpenAI parvient à remonter jusqu'à la 7ème position.
| Fournisseur | Grand modèle | Temps de réponse moyen (ms) | Écart type (ms) |
|---|---|---|---|
| Visage câlin | Meta-Llama-3-8B-Instruct | 87.007 | 2.051 |
| Groq | lama3-70b-8192 | 240.477 | 57.709 |
| Google Gémeaux | gemini-1.5-pro | 1667.225 | 134.025 |
| IA de feux d'artifice | lama-v3-70b-instruct | 2139.554 | 1183.900 |
| AI21 Studio | jamba-instruire | 2343.352 | 357.796 |
| Anthropique | claude-3-opus-20240229 | 2783.032 | 398.567 |
| OpenAI | gpt-4o | 2718.319 | 478.816 |
| Adhérer | commande-r-plus | 3063.929 | 554.372 |
| Perplexité | lama-3-sonar-large-32k-en ligne | 3238.213 | 251.588 |
| Mistral IA | mistral-large-dernier | 3765.701 | 789.968 |
| Reka IA | reka-core | 7886.811 | 70.113 |
| IA Cloudflare | lama-2-13b-chat-awq | 10521.854 | 603.000 |
| IA d'oie | gpt-neo-20b | 13592.486 | 43.428 |
Le tableau suivant combinepetitetgrandmodéliser les temps de réponse moyens.
Pour évaluer la qualité des réponses, j'ai décidé de me faire aider par Claude d'Anthropic. Pour ce faire, j'ai simplement téléchargé les deux fichiers de démarques générés et fourni l'invite suivante : "J'ai demandé à 13 LLM une réponse à l'invite 'Expliquez l'importance des LLM à faible latence'. Pouvez-vous classer les 3 premiers et expliquer pourquoi ? Répondez sous forme de paragraphe. »
Dans le plus petit échantillon, les réponses les plus fréquentes communiquaient efficacement l’importance de la faible latence dans les LLM, bien qu’avec des niveaux de détail variables. La réponse de Google Gemini excellait grâce à son approche structurée, couvrant un large éventail d'applications allant de l'IA conversationnelle à la traduction en direct. Fireworks AI a fourni une explication concise mais informative, mettant l'accent sur l'IA conversationnelle en temps réel et les systèmes interactifs tout en abordant l'expérience utilisateur. La réponse de Groq a offert un aperçu solide, mettant en évidence les interactions et les applications en temps réel dans les chatbots et les assistants vocaux. Ces réponses les mieux classées dans le plus petit échantillon ont collectivement souligné l'importance d'un traitement rapide pour améliorer les interactions des utilisateurs, permettre des applications en temps réel e...
[Courte citation de 8% de l'article original]