برنامه نویسی

رام کردن هزینه زنجیره‌سازی سریع با GemBatch

Summarize this content to 400 words in Persian Lang
زنجیره‌سازی سریع نحوه تعامل ما با مدل‌های زبان بزرگ (LLM) را متحول می‌کند. با پیوند دادن چند فرمان به یکدیگر، می‌توانیم مکالمات پیچیده و پویا ایجاد کنیم و با وظایف پیچیده مقابله کنیم. اما این قدرت قیمتی دارد – به معنای واقعی کلمه. هر تماس API با یک سرویس LLM مانند Google's Gemini به صورت حساب شما اضافه می کند.

بسیاری از ارائه دهندگان LLM یک راه حل ارائه می دهند: پردازش دسته ای. چندین درخواست را در یک درخواست ارسال کنید و از تخفیف های قابل توجه (اغلب حدود 50٪!) برخوردار شوید. با این حال، پیاده سازی دسته بندی در یک جریان کاری زنجیره ای سریع می تواند به سرعت به یک کابوس کدگذاری تبدیل شود.

چالش های زنجیره ای سریع دسته ای

تصور کنید در حال ساخت یک چت بات با یک گفتگوی چند مرحله ای هستید. با زنجیره اعلانات سنتی، شما برای هر کاربر پیام ارسال می‌کنید و قبل از فرمول‌بندی اعلان بعدی منتظر پاسخ مدل می‌مانید. اما برای استفاده از تخفیف های دسته ای، باید:

جمع آوری دستورات: به جای ارسال فوری، درخواست ها را به صورت دسته جمعی کنید.

پذیرش ناهمزمانی: دسته را ارسال کنید و منتظر بمانید (احتمالاً برای مدت طولانی تری) تا کار تکمیل شود.

پاسخ های نقشه: هنگامی که نتیجه دسته ای رسید، هر پاسخ را به درستی با درخواست مربوطه در زنجیره مطابقت دهید.

علاوه بر این، باید محدودیت‌های نرخ، خطاها و تلاش‌های مجدد را مدیریت کنید. این می تواند منجر به کدهای پیچیده شود که خواندن، اشکال زدایی و نگهداری آن دشوار است.

GemBatch: Your Prompt Chaining Hero را وارد کنید

GemBatch یک فریمورک پایتون است که برای ساده سازی زنجیره اعلانات دسته ای با Gemini گوگل طراحی شده است. این یکپارچه با Firebase یکپارچه می شود و یک محیط آشنا و مقیاس پذیر برای برنامه های LLM شما فراهم می کند.

در اینجا آمده است که چگونه GemBatch زندگی شما را آسان تر می کند:

بچینگ بدون زحمت: GemBatch پیچیدگی‌های دسته‌بندی درخواست‌ها را در پشت صحنه مدیریت می‌کند. شما زنجیره های سریع خود را به صورت متوالی تعریف می کنید، درست همانطور که با روش های سنتی انجام می دهید.

مدیریت ناهمزمان: GemBatch کارهای دسته‌ای ناهمزمان را مدیریت می‌کند، و اطمینان می‌دهد که زنجیره‌های سریع شما بدون مسدود کردن برنامه شما به آرامی اجرا می‌شوند.

نگاشت پاسخ ساده: GemBatch به طور خودکار پاسخ ها را به نقاط صحیح در زنجیره های درخواستی شما هدایت می کند.

صرفه جویی در هزینه: با استفاده از تخفیف های دسته ای Gemini، GemBatch می تواند هزینه LLM API شما را به میزان قابل توجهی کاهش دهد.

یک مثال سریع

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()

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این مثال ساده نشان می دهد که چگونه Gembatch به شما اجازه می دهد تا یک زنجیره سریع را با آن تعریف کنید gembatch.submit(). Gembatch از دسته بندی درخواست ها به Gemini و مدیریت پاسخ های ناهمزمان مراقبت می کند.

با Gembatch شروع کنید

برای باز کردن قدرت زنجیره‌سازی سریع مقرون‌به‌صرفه آماده‌اید؟ مخزن Gembatch را در GitHub بررسی کنید:

https://github.com/blueworrybear/gembatch

ما از بازخورد، و پیشنهادات استقبال می کنیم!

زنجیره‌سازی سریع نحوه تعامل ما با مدل‌های زبان بزرگ (LLM) را متحول می‌کند. با پیوند دادن چند فرمان به یکدیگر، می‌توانیم مکالمات پیچیده و پویا ایجاد کنیم و با وظایف پیچیده مقابله کنیم. اما این قدرت قیمتی دارد – به معنای واقعی کلمه. هر تماس API با یک سرویس LLM مانند Google's Gemini به صورت حساب شما اضافه می کند.

بسیاری از ارائه دهندگان LLM یک راه حل ارائه می دهند: پردازش دسته ای. چندین درخواست را در یک درخواست ارسال کنید و از تخفیف های قابل توجه (اغلب حدود 50٪!) برخوردار شوید. با این حال، پیاده سازی دسته بندی در یک جریان کاری زنجیره ای سریع می تواند به سرعت به یک کابوس کدگذاری تبدیل شود.

چالش های زنجیره ای سریع دسته ای

تصور کنید در حال ساخت یک چت بات با یک گفتگوی چند مرحله ای هستید. با زنجیره اعلانات سنتی، شما برای هر کاربر پیام ارسال می‌کنید و قبل از فرمول‌بندی اعلان بعدی منتظر پاسخ مدل می‌مانید. اما برای استفاده از تخفیف های دسته ای، باید:

  • جمع آوری دستورات: به جای ارسال فوری، درخواست ها را به صورت دسته جمعی کنید.
  • پذیرش ناهمزمانی: دسته را ارسال کنید و منتظر بمانید (احتمالاً برای مدت طولانی تری) تا کار تکمیل شود.
  • پاسخ های نقشه: هنگامی که نتیجه دسته ای رسید، هر پاسخ را به درستی با درخواست مربوطه در زنجیره مطابقت دهید.

علاوه بر این، باید محدودیت‌های نرخ، خطاها و تلاش‌های مجدد را مدیریت کنید. این می تواند منجر به کدهای پیچیده شود که خواندن، اشکال زدایی و نگهداری آن دشوار است.

GemBatch: Your Prompt Chaining Hero را وارد کنید

GemBatch یک فریمورک پایتون است که برای ساده سازی زنجیره اعلانات دسته ای با Gemini گوگل طراحی شده است. این یکپارچه با Firebase یکپارچه می شود و یک محیط آشنا و مقیاس پذیر برای برنامه های LLM شما فراهم می کند.

در اینجا آمده است که چگونه GemBatch زندگی شما را آسان تر می کند:

  • بچینگ بدون زحمت: GemBatch پیچیدگی‌های دسته‌بندی درخواست‌ها را در پشت صحنه مدیریت می‌کند. شما زنجیره های سریع خود را به صورت متوالی تعریف می کنید، درست همانطور که با روش های سنتی انجام می دهید.
  • مدیریت ناهمزمان: GemBatch کارهای دسته‌ای ناهمزمان را مدیریت می‌کند، و اطمینان می‌دهد که زنجیره‌های سریع شما بدون مسدود کردن برنامه شما به آرامی اجرا می‌شوند.
  • نگاشت پاسخ ساده: GemBatch به طور خودکار پاسخ ها را به نقاط صحیح در زنجیره های درخواستی شما هدایت می کند.
  • صرفه جویی در هزینه: با استفاده از تخفیف های دسته ای Gemini، GemBatch می تواند هزینه LLM API شما را به میزان قابل توجهی کاهش دهد.

یک مثال سریع

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() 
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این مثال ساده نشان می دهد که چگونه Gembatch به شما اجازه می دهد تا یک زنجیره سریع را با آن تعریف کنید gembatch.submit(). Gembatch از دسته بندی درخواست ها به Gemini و مدیریت پاسخ های ناهمزمان مراقبت می کند.

با Gembatch شروع کنید

برای باز کردن قدرت زنجیره‌سازی سریع مقرون‌به‌صرفه آماده‌اید؟ مخزن Gembatch را در GitHub بررسی کنید:

https://github.com/blueworrybear/gembatch

ما از بازخورد، و پیشنهادات استقبال می کنیم!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا