_Si vous n'êtes pas membre mais que vous souhaitez lire cet article, veuillez consulter ce lien d'ami. _
Si vous essayez des modèles open source de différentes tailles, vous vous demandez peut-être: quel est le moyen le plus efficace de les déployer?
Quelle est la différence de prix entre les fournisseurs de paiement et de serveurs, et lorsqu'une plate-forme de service LLM existe, cela vaut-il vraiment la peine de gérer les participants comme AWS?
J'ai décidé de creuser dans ce sujet et de comparer les fournisseurs de cloud comme AWS avec des alternatives mises à jour comme Modal, Bentoml, Replicate, Embring Face Term Points et Beam.
Nous examinerons les mesures telles que le temps de traitement, la latence de démarrage à froid et le CPU, la mémoire et le coût du GPU pour voir lesquels sont les plus efficaces et économiques. Nous couvrirons également des mesures plus douces telles que la facilité de déploiement, l'expérience des développeurs et la communauté.
Nous explorerons certains cas d'utilisation, tels que le déploiement de modèles plus petits sur des processeurs et l'exécution de 7 à 8 milliards de modèles de paramètres sur les GPU.
Je vais également plonger dans le processus de déploiement de modèles plus petits en utilisant EFS dans AWS Lambda et les comparer à des plates-formes plus modernes comme Modal.
Je n'entrerai pas ici dans la profondeur des stratégies d'optimisation, comme l'utilisation de différents cadres ou quantifications pour accélérer le raisonnement - c'est un sujet complètement distinct.
Au lieu de cela, cet article se concentrera sur la façon de choisir la bonne option de déploiement, vous donnant la possibilité de comparer les performances dans différents scénarios et de vous aider à comprendre les coûts économiques du déploiement de LLMS petits et grands.
Lorsque vous utilisez un modèle open source standard, il existe de nombreuses options d'API faciles à utiliser. Je recommande de vérifier cette liste pour certaines options. Vous pouvez également choisir d'auto-héberger - afficher la section d'inférence locale dans la même liste.
Cependant, vous devrez peut-être utiliser un modèle privé, affiné ou moins courant.
Vous pouvez certainement héberger ces modèles localement également, mais votre ordinateur a besoin de suffisamment de ressources, et vous voudrez peut-être intégrer ces modèles dans une application exécutée sur un autre serveur.
Cela nous amène à héberger des modèles open source à la demande ou via des plates-formes sans serveur. L'idée est que vous ne payez que pour les ressources que vous utilisez, que ce soit à la demande ou à l'exécution, tout comme un serveur sans serveur.
sans serveur et fonctionnel à la demande un peu similaire, mais avec un serveur sans serveur, il est plus rapide de réduire afin que vous n'ayez pas à payer pour les ressources inactives.
Vous pouvez consulter mon doodle ci-dessous pour plus de comparaisons.
Dans cet article, nous comparerons EC2 et Lambda d'AWS avec plusieurs plateformes émergentes qui sont de plus en plus populaires récemment.
De cette façon, vous pouvez mieux comprendre ce qui fonctionne le mieux.
En tant que note secondaire, je n'ai reçu aucune compensation de ces fournisseurs, donc les informations que je partage ici sont mon opinion personnelle.
Si vous êtes une partie prenante, c'est un excellent moyen de comprendre l'économie des différentes options et le coût de l'inférence en fonction de la taille du modèle et du choix des fournisseurs.
La première partie de l'article couvre la recherche, à laquelle n'importe qui peut participer, tandis que la deuxième partie couvre les aspects de la technologie de déploiement que vous pouvez ou non vouloir lire.
Maintenant, avant de commencer, je voudrais commenter le cadre d'inférence LLM qui simplifie la configuration des points de terminaison de l'API pour les modèles de service. Il existe plusieurs frameworks de service LLM open source disponibles, notamment VllM, Tensorrt et TGI, que nous pouvons utiliser ici.
Vous pouvez consulter certains des frameworks les plus populaires de la section Frameworks de service LLM de la liste que j'ai partagée plus tôt (voir ci-dessous).
Certaines personnes ont mesuré les différences de performance entre ces cadres et vous devriez certainement faire vos propres recherches.
Cependant, dans cet article, nous utiliserons VLLM, qui est largement utilisé - à moins que le modèle ne soit déployé via le point de terminaison de la face étreinte, qui utilisera automatiquement TGI pour nous.
Pour déployer un modèle de convertisseur plus petit fonctionnant sur le CPU, je viens d'utiliser directement la bibliothèque de pipeline Pipeline> ou Transformers.
RechercheTemps de traitement
Nous définissons le temps de traitement comme le temps total nécessaire pour terminer la réponse.
Veuillez noter que certaines personnes peuvent mesurer le premier temps de réponse, en particulier lors de la sortie en streaming.
Pour la cohérence, j'ai utilisé la même invite pour chaque test. Pour le modèle 400m, j'ai lancé le texte en 30 pièces.
Vous pouvez voir l'indicateur ci-dessous.
Je n'ai effectué ces tests que quelques fois sur chaque plate-forme le même jour. Idéalement, je devrais les tester dans quelques jours. Je peux être malchanceux pour certains de ces tests.
Je trouve que même avec des modèles plus petits (moins de 130 m) fonctionne avec AWS Lambda, surtout lors de l'utilisation de modèles de cache EFS.
Bien que j'aime vraiment étreindre les points de terminaison face, j'ai trouvé leurs instances de CPU un peu imprévisibles. Cependant, leurs instances GPU AWS sont très fiables et rapides.
Même si j'héberge le modèle 7B sur une instance L4, je peux obtenir des réponses très rapides sur le GPU, qui peut revenir en 10 secondes - c'est quelque chose que nous ne pouvons pas implémenter avec un fournisseur sans serveur, dont les fournisseurs sans serveur ont besoin de plus GPU puissant.
Si nous choisissons le GPU A100, nous verrons que tous les fournisseurs fonctionnent très bien pour le modèle de paramètre 7B-8B et peuvent retourner une réponse complète en secondes.
Bien sûr, la vitesse est très rapide, mais nous devons considérer d'autres indicateurs.
Ensuite, plongeons dans le démarrage à froid, c'est-à-dire combien de temps il faut pour répondre si le modèle n'est pas utilisé pendant un certain temps. Même si vous cachez le modèle, il peut toujours avoir besoin de télécharger l'éclat, ce qui peut ajouter quelques secondes.
Le service à la demande peut vous permettre de mettre en cache des modèles pour accélérer le temps de démarrage, je ne fais pas cela ici, mais la plupart des fournisseurs sans serveur vous montrent comment mettre en cache des modèles au moment de la construction, ce qui peut réduire la latence de démarrage à froid.
Jetons un coup d'œil aux indicateurs des plates-formes suivantes.
Veuillez noter que j'ai calculé le temps de traitement entier pendant le démarrage à froid, assurez-vous de vérifier directement le calcul du début du froid uniquement.
Comme prévu, mes services à la demande qui n'ont pas de modèle de cache fonctionnent mal, tels que Bentoml, les points de terminaison des étreintes et Baseten.
Bien que le point de terminaison des étreintes puisse fonctionner bien après la course, vous pouvez toujours faire l'expérience du froid qui commence les 30 dernières secondes à 5 minutes, ce qui peut devenir un problème si vous avez besoin de mettre à l'échelle et d'échelle fréquemment. Ils lancent également 500 erreurs avant que les conteneurs ne soient entièrement exécutés.
Les fournisseurs sans serveur sont plus rapides car ils sont conçus pour évoluer rapidement en nous obligeant à cacher les poids du modèle lors du premier déploiement.
Le faisceau fonctionne mieux sur le CPU, suivi de Baseten, Modal et Lambda avec EFS. Les modèles plus petits commencent généralement plus rapidement. Lambda montre d'excellents résultats avec un temps de traitement rapide et un minimum de latence de démarrage à froid pour les petits modèles avec seulement 125 m de paramètres.
bien que je pense qu'il est bon d'utiliser modal ou poutre pour les modèles plus petits.
Tournons-nous vers les prix. Nous devons examiner le coût des ressources CPU, mémoire et GPU.
Il existe des différences évidentes entre les plateformes.
Les fournisseurs sans serveur sont souvent plus chers car ils facturent des frais de processeur et de mémoire en plus de l'utilisation du GPU. Cependant, ils ne vous factureront pas pour le temps d'inactivité, ce qui peut aider à compenser les coûts plus élevés.
Vous pouvez trouver le prix du GPU Nvidia dans l'image ci-dessous.
Cependant, vous devriez regarder Sagemaker, qui a le coût GPU le plus élevé de tous. Si vous avez besoin d'utiliser AWS, il est préférable d'utiliser directement EC2.
Jetons également un coup d'œil aux prix du processeur.
Les points de terminaison de la face étreintes mènent à 0,07 $, avec 2 VCPU et 4 Go de mémoire, malheureusement leurs instances CPU sont sous-performantes.
Le faisceau et le modal vous permettent d'ajuster les ressources dont vous avez besoin, ce qui aide à minimiser les coûts. Pour le modèle 400m, j'ai calculé que seulement 3 Go de mémoire et 1 noyau (2 VCPU) étaient nécessaires sur les deux plates-formes.
reproduire, en revanche, nous oblige à utiliser 4 VCPU, quelle que soit la taille du modèle, ce qui en fait l'option CPU la plus chère ici.
Nous couvrirons certains cas d'utilisation pour comparer le prix et l'efficacité de toutes ces plateformes.
Le premier cas serait une opération sporadique d'un modèle de 400m tout au long de la journée. Cela signifie que chaque appel au conteneur nécessite une échelle et une baisse.
Il n'est pas toujours nécessaire de réduire et d'échelle, mais nous devrons le compter.
J'exécute cette étude de cas en battant 30 texte pour chaque appel (en utilisant un modèle de réglage fin plus petit) avec 250 appels tout au long de la journée. Pour plus de simplicité, nous supposons que le conteneur est déclenché à froid à chaque fois qu'il fonctionne (sauf le point de terminaison de la face étreinte).
Les fournisseurs sans serveur sont un meilleur choix ici car nous ne paierons pas pour le temps inactif comme nous le faisons à la demande. Pour Bentoml, nous devons rester inactifs pendant au moins 5 minutes avant de réduire automatiquement la taille, et pour les points de terminaison HF, nous devons attendre 15 minutes.
Remarque latérale, si vous n'êtes pas familier avec la réduction automatique de l'échelle, ce concept signifie que si elle est autorisée, nous dirons à la plate-forme de faire évoluer automatiquement nos instances.
Ils ont tous des exigences différentes, les points de terminaison Baseten et HF ont 15 minutes de fenêtres libres, tandis que Bentoml a 5 minutes.
Étant donné que le point de terminaison HF prend au moins 15 minutes pour s'allonger, si nous appelons la fonction toutes les 5 à 6 minutes, elle n'aura pas le temps de s'allonger, donc nous avons peu de froids, mais la plupart du temps est inactif .
Nous pouvons voir qu'avoir 17 heures de temps libre comme le cas HF et 18 heures dans le cas Bentoml est intrinsèquement inefficace. Nous paierons la plupart des fonds pour les ressources inactives tout au long de la journée.
un centime ou un dollar ici et il ne semble pas y avoir beaucoup pour vos premiers jours, mais cela s'accumulera après un certain temps.
Pensez aux gens qui économisent un peu d'argent dans leurs comptes d'épargne tous les jours - trop payant ici serait le contraire.
Mais que se passe-t-il si nous exécutons les 250 appels pendant que le conteneur est à l'état préchauffé? Quelle différence y aura-t-il?
Les poutres semblent être une valeur aberrante ici, mais je pense qu'ils exécutent plus que le CPU maximum que les autres plates-formes ne vous permettent pas d'utiliser.
Dans ce cas, le début du froid et le temps libre disparaissent. Cela montre que si vous travaillez sur tout à la fois, l'utilisation d'un conteneur persistant est une meilleure option - c'est beaucoup moins cher.
Il convient de noter que pour étreindre les points de terminaison du visage et Bentoml, le modèle 400m est le mieux adapté au GPU T4. Ce réglage réduit les coûts tout en réduisant considérablement le temps de traitement.
Une chose à noter est que si vous utilisez AWS Lambda avec EFS, vous encourez des frais supplémentaires pour la passerelle NAT, ce qui peut augmenter de 1 à 3 $ par jour, ce qui fera un coût total plus élevé que ce qui est montré ici.
Maintenant, passons au deuxième cas - un modèle plus grand avec des paramètres 7b à 8b fonctionnant sur le GPU.
Pour ce cas, j'ai testé des modèles de tailles comme Mistral, Gemma ou Llama, comme Mistral, Gemma ou Llama.
Cette scène implique des appels sporadiques au modèle 250 fois tout au long de la journée. Nous supposons que le conteneur évoluera et évoluera à chaque fois qu'il est appelé, bien que ce ne soit pas toujours le cas.
Tout comme les tests CPU, nous supposons que le service à la demande fonctionne pendant 24 heures car il n'a pas le temps de s'allonger.
Je me suis assuré d'écrire l'instance GPU que nous utilisons pour chaque fournisseur. Veuillez vérifier le graphique à barres ci-dessous.
Pour les fournisseurs de serveurs, j'ai légèrement exagéré le temps de traitement par multiplication, mais les départs à froid exclus du calcul du prix total.
Bien que le coût réel puisse être inférieur, cet ajustement est pour la prudence. Vous pouvez être facturé davantage car vous paierez des startups.
Comme nous l'avons vu dans notre cas de CPU, passer 250 appels à la fois est plus rentable.
Si vous configurez des calculs pour les modèles les moins chers d'Anthropic et d'Openai et de les comparer au coût de l'auto-hébergement, vous constaterez que le modèle qui les appelle avec la même invite coûte beaucoup moins cher que vous ne le faites.
Les gens appellent ces fournisseurs McDonald's de LLM.
Nous pensons que l'open source serait moins cher, mais nous ne calculons pas l'économie unitaire réelle de l'hébergement. Ces plateformes sont également subventionnées par des fonds de capital-risque. Mais, comme je l'ai mentionné plus tôt, il est moins cher d'utiliser le vendeur que vous pouvez trouver ici pour accéder au modèle open source.
Si vous souhaitez creuser dans les calculs détaillés, vous pouvez afficher ce fichier. Avertissement juste - il a l'air un peu désordonné.
Vous avez peut-être pris vos propres conclusions jusqu'à présent, mais la dernière chose que je veux présenter est l'expérience utilisateur.
Les points de terminaison HF sont très faciles à utiliser si vous n'êtes pas un codeur, car vous pouvez déployer des modèles à partir du centre HuggingFace en un clic simple. Si vous connaissez une technologie, vous préférez peut-être d'autres options que vous pouvez contrôler davantage.
Pour la réplique, ils ont une énorme base de fans et de nombreux modèles publics partagés par différentes personnes. Il y a une communauté autour. Ils ont des processus de formation et de déploiement en un clic pour faciliter les opérations.
Cependant, j'ai trouvé que le modal, le faisceau et le bentoml aient une bonne expérience de développeur dans l'ensemble. Vous pouvez déployer directement à partir du terminal et faire fonctionner le code sur son serveur.
Pour répliquer, si vous déployez votre propre modèle, vous aurez besoin d'une machine GPU, et pour Baseten, vous devrez télécharger une bibliothèque appelée Truss, qui prendra un certain temps.
J'ai collecté certaines de mes notes dans ce tableau (voir ci-dessous).
Si vous souhaitez utiliser l'un d'eux, le tableau contiendra également des liens pour démarrer le script.
Maintenant que nous avons couvert la plupart des aspects non techniques, je vous guiderai à travers deux options de déploiement pour des modèles qui fonctionnent bien sur le CPU, AWS Lambda et Modal.
Dans cette section, nous présenterons comment déployer mon modèle 400m ajusté pour l'extraction de mots clés en utilisant AWS Lambda et EFS et le comparer avec les déploiements sur des plates-formes mises à jour telles que Modal.
Les deux outils sont sans serveur, ce qui signifie que nous devons cacher correctement le modèle lors de la construction afin que nous puissions y accéder rapidement en exécution continue. AWS fournit un script prêt à l'emploi que nous pouvons facilement ajuster, et j'ai également préparé un script pour modal ici.
Nous nous concentrerons sur deux choses: comment déployer des modèles sur chaque plate-forme et refléter les principales différences dans le processus de déploiement.
Pour cette partie, vous pouvez le lire ou le suivre pour déployer.
Pour le suivre, vous devez installer Git, AWS CDK, Docker, Nodejs 18, Python 3.9 sur votre ordinateur. Une fois tout cela installé, vous pouvez ouvrir un nouveau terminal.
Si vous souhaitez créer un nouveau répertoire, alors clonez le référentiel ci-dessous.
<code>git clone https://github.com/aws-samples/zero-administration-inference-with-aws-lambda-for-hugging-face.git</code>
Entrez le répertoire créé.
<code>cd zero-administration-inference-with-aws-lambda-for-hugging-face</code>
Vous pouvez désormais ouvrir ces fichiers dans votre éditeur de code.
J'utilise VScode, donc je le fais.
<code>.code</code>
Maintenant, nous pouvons accéder au fichier créé et faire quelques ajustements. En regardant le dossier d'inférence, vous verrez deux fichiers, Sentiment.py et Summary.py.
Nous pouvons facilement modifier les modèles de ces fichiers en celui que nous voulons.
Si vous allez au centre de câlins et trouvez le modèle qui vous intéresse.
J'utiliserai l'un de mes propres modèles.
Si vous souhaitez apprendre à créer un tel modèle, vous pouvez consulter le tutoriel d'extraction de mots clés et le didacticiel de classification de texte pour ici.
Comme vous pouvez le voir, nous avons deux options ici, mais comme ce script utilise un pipeline, nous pouvons faire de même.
<code>git clone https://github.com/aws-samples/zero-administration-inference-with-aws-lambda-for-hugging-face.git</code>
J'ai changé les deux scripts en utilisant différents modèles que j'utilise habituellement. Une fois que vous avez terminé, assurez-vous de sauvegarder le script.
Vous pouvez ensuite configurer un environnement virtuel dans le terminal.
<code>cd zero-administration-inference-with-aws-lambda-for-hugging-face</code>
<code>.code</code>
Après
<code># inference/summarization.py import json from transformers import pipeline extractor = pipeline("text2text-generation", model="ilsilfverskiold/tech-keywords-extractor") def handler(event, context): # texts should be an array texts = event['texts'] response = { "statusCode": 200, "body": extractor(texts)[0] } return response</code>
<code>python3 -m venv venv source venv/bin/activate</code>
Si vous exécutez Docker sur votre ordinateur, vous pouvez désormais le déployer via le terminal.
<code>pip install -r requirements.txt</code>
8 Go de mémoire et 600 secondes délai .
Il créera une passerelle Internet, EFS pour les modèles de mise en cache, plusieurs fonctions LAMBDA basées sur Docker (pour deux modèles dans l'hébergement de scripts) et plusieurs rôlesiam pour Lambda Exécution VPC.
Cela prendra un certain temps.
Je faisais cela dans un petit village en Italie, donc ma connexion Internet a échoué et j'ai dû louer une machine GPU pour le déploiement.
Une fois le déploiement terminé, vous pouvez aller à Lambda dans la console AWS et rechercher vos nouvelles fonctions. Vous pouvez les tester directement là-bas. La première course sera plus lente, mais une fois qu'elle sera préchauffée, la vitesse sera plus rapide.
Voici quelques instructions que puisque la fonction Lambda est située dans un sous-réseau privé (dans un VPC), il ne peut pas accéder à Internet, c'est pourquoi AWS crée une passerelle NAT pour vous. Cependant, l'utilisation d'une passerelle NAT coûte cher, et peu importe combien vous l'utilisez, elle entraînera environ 1 à 3 $ par jour.
Nous pouvons essayer de mettre la fonction lambda dans un sous-réseau public, mais malheureusement je ne l'ai pas essayé. Il peut y avoir un moyen de contourner ce problème pour créer un point de terminaison VPC.
Nous avons besoin d'un VPC pour EFS afin que nous puissions mettre en cache les modèles afin que nous n'ayons pas besoin de les télécharger à chaque fois que nous appelons les fonctions. Oui, AWS Lambda a un niveau libre très généreux, mais nous devons être conscients des autres coûts lors de l'ajout d'autres ressources.
Lorsque vous avez terminé, je vous recommande de détruire ces ressources afin que vous n'ayez pas à payer la passerelle NAT 24/7.
<code>git clone https://github.com/aws-samples/zero-administration-inference-with-aws-lambda-for-hugging-face.git</code>
Instructions supplémentaires pour l'utilisation de cette méthode, vous ne pouvez pas spécifier la mémoire et le CPU séparément. Si vous avez besoin de plus de CPU, vous devez augmenter la mémoire, ce qui peut devenir cher.
Cependant, lorsque vous utilisez des modèles plus petits avec des paramètres de 125 m ou moins, je n'ignore pas complètement AWS Lambda. Vous pouvez configurer les fonctions lambda avec moins de mémoire.
Modal est créé pour déployer des modèles ML, ce qui simplifiera ce processus encore plus simple. Nous utilisons le script que nous utilisons ici pour déployer le même modèle qu'auparavant, et vous pouvez le trouver ici.
Lors du déploiement, nous pouvons spécifier directement la mémoire, le CPU et le GPU dans la fonction. Nous pouvons également demander qu'un point final soit créé pour nous dans le script, ce qui facilitera le test de notre modèle en utilisant le point de terminaison.
Mais juste parce que nous utilisons une autre plate-forme, cela ne signifie pas que cela ne nous coûtera pas également de l'argent.
Souvenez-vous des calculs que nous avons faits auparavant.
Pour commencer, vous avez besoin d'un compte modal et installé Python3. Après avoir créé un compte, nous pouvons ouvrir un terminal et créer un nouveau dossier.
<code>cd zero-administration-inference-with-aws-lambda-for-hugging-face</code>
Ensuite, nous pouvons configurer un environnement virtuel.
<code>.code</code>
Utilisez PIP pour installer le package modal.
<code># inference/summarization.py import json from transformers import pipeline extractor = pipeline("text2text-generation", model="ilsilfverskiold/tech-keywords-extractor") def handler(event, context): # texts should be an array texts = event['texts'] response = { "statusCode": 200, "body": extractor(texts)[0] } return response</code>
en utilisant modal , toutes les ressources, les paramètres d'environnement et l'exécution sont effectués sur leur plate-forme, pas sur site, nous n'avons donc pas les mêmes problèmes que lors du déploiement dans AWS.
Pour authentifier, exécutez cette commande.
<code>python3 -m venv venv source venv/bin/activate</code>
Maintenant, si vous n'avez pas de fichiers dans le dossier, créez-en un.
<code>pip install -r requirements.txt</code>
Vous pouvez simplement coller le code suivant, mais nous le présenterons également.
<code>{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:*", "ssm:*", "iam:*", "lambda:*", "s3:*", "ec2:*", "logs:*", "cloudformation:*", "elasticfilesystem:*" ], "Resource": "*" } ] }</code>
N'oubliez pas que j'utilise le même modèle, vous pouvez utiliser un autre modèle.
Pour déployer, exécutez simplement la commande suivante.
<code>cdk bootstrap</code>
Ce script met en place une application appelée "Génération de texte" dans modal et construit une image Docker avec les dépendances requises (HuggingFace-Hub, Transformers et Torch).
Il installe ces dépendances directement dans l'environnement modal, vous n'avez donc pas à les traiter localement. L'application demande 1 CPU Core et 3 Go de mémoire , qui est le paramètre que j'ai utilisé pendant mes tests.
Le cache du modèle est traité par @ modal.build () , qui utilise snapshot_download () pour extraire le modèle de la face étreinte et l'enregistrer dans / cache. Nous devons le faire pour qu'il puisse être appelé plus rapidement sur Cold Boot.
@ modal.enter () Le décorateur s'exécute sur le premier appel à la classe textextraction, chargeant le tokenzer et le modèle à partir du fichier mis en cache en mémoire.
Après avoir chargé le modèle, vous pouvez appeler la méthode extract_text () pour exécuter l'inférence. @ modal.web_endpoint Mettez en place un point de terminaison de l'API sans serveur qui vous permet de cliquer sur Extract_Text () via la demande post-demande et d'obtenir des résultats d'extraction de texte.
L'ensemble du processus s'exécute dans l'environnement modal, nous n'avons donc pas à nous soucier de savoir si votre ordinateur dispose de suffisamment de ressources. Bien sûr, cela est plus important pour les modèles plus grands.
Une fois le déploiement terminé, vous verrez quelque chose de similaire dans le terminal, qui contient vos points de terminaison.
Vous pouvez afficher cette application dans le tableau de bord modal.
Pour exécuter cette fonction, vous pouvez appeler l'URL que vous obtenez dans le terminal.
<code>git clone https://github.com/aws-samples/zero-administration-inference-with-aws-lambda-for-hugging-face.git</code>
Cela n'ajoute pas l'authentification, voir la documentation de Modal pour ajouter cette fonctionnalité.
Comme vous l'avez appris maintenant, avec tout choix de déploiement, vous devez d'abord mettre en cache le modèle au moment de la construction pour vous assurer des démarrages froids plus rapides après l'échelle. Si vous souhaitez essayer de déployer sur n'importe quelle autre plate-forme, vous pouvez consulter tous les scripts de démarrage ici.
L'utilisation d'une nouvelle plate-forme n'est pas nécessairement mauvaise, et ce sera beaucoup plus rapide. Cependant, parfois, votre organisation a des restrictions strictes sur les plateformes qui vous permettent d'utiliser.
Des options plus faciles à utiliser, et peuvent également être légèrement plus élevées, mais celles que je montre que vous n'êtes pas très différent du coût de l'utilisation directement de l'EC2.
Si vous avez vu cela, j'espère que vous comprenez les recherches que j'ai faites ici et cela vous aidera à choisir un fournisseur.
❤
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!