Maison > développement back-end > Tutoriel Python > Maîtriser le coût du chaînage d'invites avec GemBatch

Maîtriser le coût du chaînage d'invites avec GemBatch

Patricia Arquette
Libérer: 2024-11-25 16:14:10
original
609 Les gens l'ont consulté

Taming the Cost of Prompt Chaining with GemBatch

Le chaînage d'invites révolutionne la façon dont nous interagissons avec les grands modèles de langage (LLM). En reliant plusieurs invites entre elles, nous pouvons créer des conversations complexes et dynamiques et aborder des tâches complexes. Mais ce pouvoir a un prix – littéralement. Chaque appel d'API à un service LLM comme Gemini de Google s'ajoute à votre facture.

De nombreux prestataires LLM proposent une solution : le traitement par lots. Envoyez plusieurs invites en une seule demande et bénéficiez de réductions importantes (souvent autour de 50 % !). Cependant, la mise en œuvre du traitement par lots dans un flux de travail en chaîne d'invites peut rapidement se transformer en un cauchemar de codage.

Les défis du chaînage d’invites par lots

Imaginez que vous créez un chatbot avec un dialogue en plusieurs étapes. Avec le chaînage d’invites traditionnel, vous enverriez un message à chaque utilisateur et attendriez la réponse du modèle avant de formuler l’invite suivante. Mais pour profiter des remises par lots, vous devez :

  • Accumulez les invites : Au lieu d'envoyer immédiatement, rassemblez les invites par lots.
  • Adoptez l'asynchronisme : Envoyez le lot et attendez (potentiellement plus longtemps) que le travail soit terminé.
  • Mappez les réponses : Une fois le résultat du lot arrivé, faites correspondre correctement chaque réponse à son invite correspondante dans la chaîne.

En plus de cela, vous devez gérer les limites de débit, les erreurs et les tentatives. Cela peut conduire à un code alambiqué, difficile à lire, à déboguer et à maintenir.

Entrez GemBatch : votre héros de chaînage rapide

GemBatch est un framework Python conçu pour simplifier le chaînage des invites par lots avec Gemini de Google. Il s'intègre parfaitement à Firebase, offrant un environnement familier et évolutif pour vos applications LLM.

Voici comment GemBatch vous facilite la vie :

  • Traitement par lots sans effort : GemBatch gère les complexités des invites de traitement par lots en coulisse. Vous définissez vos chaînes d'invites de manière séquentielle, comme vous le feriez avec les méthodes traditionnelles.
  • Gestion asynchrone : GemBatch gère les tâches par lots asynchrones, garantissant ainsi l'exécution fluide de vos chaînes d'invites sans bloquer votre application.
  • Mappage des réponses simplifié : GemBatch achemine automatiquement les réponses vers les points corrects de vos chaînes d'invites.
  • Économies de coûts : En tirant parti des remises par lots de Gemini, GemBatch peut réduire considérablement le coût de votre API LLM.

Un exemple rapide

import gembatch

# Define a simple prompt chain
def task_a_prompt1():
    gembatch.submit(
        {
            "contents": [
                {
                    "role": "user",
                    "parts": [{"text": "What is the capital of France?"}],
                }
            ],
        },  # prompt 1
        "publishers/google/models/gemini-1.5-pro-002",
        task_a_prompt2
    )

def task_a_prompt2(response: generative_models.GenerationResponse):
    gembatch.submit(
        {
            "contents": [
                {
                    "role": "model",
                    "parts": [{"text": response.text}],
                },
                {
                    "role": "user",
                    "parts": [{"text": f"And what is the population of {response.text}?"}],
                }
            ],
        },  # prompt 2
        "publishers/google/models/gemini-1.5-pro-002",
        task_a_output
    )

def task_a_output(response: generative_models.GenerationResponse):
    print(response.text)

# Start the prompt chain
task_a_prompt1() 
Copier après la connexion

Cet exemple simple montre comment Gembatch vous permet de définir une chaîne d'invites avec gembatch.submit(). Gembatch s'occupe de regrouper les requêtes vers Gemini et de gérer les réponses asynchrones.

Commencez avec Gembatch

Prêt à exploiter toute la puissance d'un chaînage d'invites rentable ? Consultez le référentiel Gembatch sur GitHub :

https://github.com/blueworrybear/gembatch

Nous apprécions les commentaires et les suggestions !

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!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal