Heim > Backend-Entwicklung > Python-Tutorial > Mit GemBatch die Kosten für Prompt Chaining senken

Mit GemBatch die Kosten für Prompt Chaining senken

Patricia Arquette
Freigeben: 2024-11-25 16:14:10
Original
642 Leute haben es durchsucht

Taming the Cost of Prompt Chaining with GemBatch

Prompt Chaining revolutioniert die Art und Weise, wie wir mit großen Sprachmodellen (LLMs) interagieren. Durch die Verknüpfung mehrerer Eingabeaufforderungen können wir komplexe, dynamische Gespräche erstellen und komplizierte Aufgaben bewältigen. Aber diese Leistung hat ihren Preis – im wahrsten Sinne des Wortes. Jeder API-Aufruf an einen LLM-Dienst wie Gemini von Google erhöht Ihre Rechnung.

Viele LLM-Anbieter bieten eine Lösung: Stapelverarbeitung. Senden Sie mehrere Aufforderungen in einer einzigen Anfrage und profitieren Sie von erheblichen Rabatten (oft um die 50 %!). Allerdings kann die Implementierung der Stapelverarbeitung innerhalb eines Prompt-Chain-Workflows schnell zu einem Programmier-Albtraum werden.

Die Herausforderungen der Batch-Prompt-Verkettung

Stellen Sie sich vor, Sie erstellen einen Chatbot mit einem mehrstufigen Dialog. Bei der herkömmlichen Eingabeaufforderungsverkettung würden Sie jedem Benutzer eine Nachricht senden und auf die Antwort des Modells warten, bevor Sie die nächste Eingabeaufforderung formulieren. Um jedoch Mengenrabatte nutzen zu können, müssen Sie Folgendes tun:

  • Sammeln Sie Eingabeaufforderungen:Anstatt sie sofort zu senden, sammeln Sie Eingabeaufforderungen in Stapeln.
  • Asynchronität nutzen: Senden Sie den Stapel und warten Sie (möglicherweise länger), bis der Job abgeschlossen ist.
  • Antworten zuordnen: Sobald das Batch-Ergebnis eintrifft, ordnen Sie jede Antwort korrekt der entsprechenden Eingabeaufforderung in der Kette zu.

Darüber hinaus müssen Sie mit Ratenlimits, Fehlern und Wiederholungsversuchen umgehen. Dies kann zu kompliziertem Code führen, der schwer zu lesen, zu debuggen und zu warten ist.

Betreten Sie GemBatch: Ihr Prompt-Chaining-Held

GemBatch ist ein Python-Framework, das die Batch-Prompt-Verkettung mit Googles Gemini vereinfacht. Es lässt sich nahtlos in Firebase integrieren und bietet eine vertraute und skalierbare Umgebung für Ihre LLM-Anwendungen.

So macht GemBatch Ihr Leben einfacher:

  • Müheloses Stapeln: GemBatch bewältigt die Komplexität von Stapelverarbeitungsaufforderungen im Hintergrund. Sie definieren Ihre Eingabeaufforderungsketten nacheinander, genau wie bei herkömmlichen Methoden.
  • Asynchrone Handhabung: GemBatch verwaltet asynchrone Batch-Jobs und stellt sicher, dass Ihre Eingabeaufforderungsketten reibungslos ausgeführt werden, ohne Ihre Anwendung zu blockieren.
  • Vereinfachte Antwortzuordnung: GemBatch leitet Antworten automatisch an die richtigen Punkte in Ihren Eingabeaufforderungsketten zurück.
  • Kosteneinsparungen: Durch die Nutzung der Chargenrabatte von Gemini kann GemBatch Ihre LLM-API-Kosten erheblich senken.

Ein kurzes Beispiel

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() 
Nach dem Login kopieren

Dieses einfache Beispiel zeigt, wie Sie mit Gembatch eine Eingabeaufforderungskette mit gembatch.submit() definieren können. Gembatch kümmert sich um die Stapelung der Anfragen an Gemini und die Verwaltung der asynchronen Antworten.

Beginnen Sie mit Gembatch

Sind Sie bereit, das Potenzial einer kostengünstigen Prompt-Chaining-Funktion auszuschöpfen? Schauen Sie sich das Gembatch-Repository auf GitHub an:

https://github.com/blueworrybear/gembatch

Wir freuen uns über Feedback und Vorschläge!

Das obige ist der detaillierte Inhalt vonMit GemBatch die Kosten für Prompt Chaining senken. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage