۲۷ مهر ۱۴۰۴

Techboy

اخبار و اطلاعات روز تکنولوژی

Portkey: یک دروازه هوش مصنوعی منبع باز برای ارکستراسیون آسان مدل‌های زبانی بزرگ

Portkey AI Gateway به توسعه‌دهندگان برنامه اجازه می‌دهد به‌راحتی مدل‌های هوش مصنوعی تولیدی را ادغام کنند، به‌صورت یکپارچه بین مدل‌ها سوئیچ کنند و ویژگی‌هایی مانند مسیریابی شرطی را بدون تغییر کد برنامه اضافه کنند.

Portkey AI Gateway به توسعه‌دهندگان برنامه اجازه می‌دهد به‌راحتی مدل‌های هوش مصنوعی تولیدی را ادغام کنند، به‌صورت یکپارچه بین مدل‌ها سوئیچ کنند و ویژگی‌هایی مانند مسیریابی شرطی را بدون تغییر کد برنامه اضافه کنند.

انفجار فریم‌ورک‌های متن‌باز هوش مصنوعی، انعطاف‌پذیری بی‌نظیری را برای توسعه‌دهندگان در استقرار مدل‌های هوش مصنوعی فراهم کرده است. Portkey، یک دروازهٔ متن‌باز هوش مصنوعی، با ارائه یک API یکپارچه برای چندین ارائه‌دهندهٔ هوش مصنوعی، فرآیند ارکستراسیون مدل‌های هوش مصنوعی را ساده می‌کند و پیچیدگی ادغام مدل‌ها در برنامه‌ها را کاهش می‌دهد. علاوه بر مدل‌های زبانی بزرگ (LLMs)، Portkey از بینایی، صدا (متن‑به‑صدا و صدا‑به‑متن)، تولید تصویر و سایر مدل‌های چند‌مدله هوش مصنوعی مولد پشتیبانی می‌کند.

این مقاله بررسی می‌کند که دروازهٔ Portkey AI چگونه استقرار مدل‌های هوش مصنوعی را ساده‌سازی می‌کند، تعاملات API را مدیریت می‌کند و قابلیت مقیاس‌پذیری را تضمین می‌کند، در حالی که بر قابلیت‌های نشان‌داده‌شده در مثال‌های کد ارائه‌شده تمرکز دارد.

مرور کلی پروژه – دروازهٔ Portkey AI

دروازهٔ Portkey AI یک پروژه متن‌باز و سرویس میزبانی‌شده است که برای ساده‌سازی ادغام مدل‌های مختلف هوش مصنوعی طراحی شده است. این سرویس یک API انعطاف‌پذیر ارائه می‌دهد که به توسعه‌دهندگان امکان می‌دهد به‌سادگی بین مدل‌های تجاری از ارائه‌دهندگانی مانند OpenAI، Anthropic، Azure OpenAI، سرویس‌های استنتاج متن‌باز مانند Hugging Face، Groq و Fireworks AI، و مدل‌های محلی اجرا شده بر روی Ollama جابجا شوند.

با عمل به‌عنوان یک میانی‌نرم‌افزار یکپارچه، Portkey امکان می‌دهد:

  • تغییر یکپارچهٔ مدل‌های هوش مصنوعی بین چندین ارائه‌دهنده
  • محدودکردن نرخ و کش‌سازی کارآمد برای بهینه‌سازی تماس‌های API
  • قابلیت مقیاس‌پذیری برای برنامه‌های بزرگ مقیاس و مبتنی بر هوش مصنوعی
  • مدیریت سادهٔ درخواست‌ها برای چندین پشت‌صحنهٔ هوش مصنوعی

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

Portkey چه مشکلی را حل می‌کند؟

یکپارچه‌سازی و مدیریت چندین ارائه‌دهندهٔ LLM برای توسعه‌دهندگانی که روی برنامه‌های هوش مصنوعی کار می‌کنند، یک چالش بوده است. رویکردهای سنتی اغلب منجر به چندین نقطه درد می‌شوند:

  • قفل شدن به یک ارائه‌دهندهٔ LLM
  • مشکل در مقایسه عملکرد بین مدل‌های مختلف
  • عدم وجود سازوکارهای تعادل بار و گذار خودکار به‌صورت داخلی
  • APIهای ناسازگار بین ارائه‌دهندگان

فضای فعلی ادغام LLM اغلب پاره‌پاره و ناکارآمد است. توسعه‌دهندگان با چندین چالش مواجهند:

  • مدیریت احراز هویت و کلیدهای API برای چندین ارائه‌دهنده
  • پیاده‌سازی منطق سفارشی تعادل بار
  • اطمینان از سازگاری قالب پاسخ‌ها بین مدل‌های مختلف
  • بهینه‌سازی هزینه‌ها در حالی که عملکرد حفظ می‌شود

این محدودیت‌ها به‌ویژه بر توسعه‌دهندگان، پژوهشگران هوش مصنوعی و شرکت‌هایی که برنامه‌های مبتنی بر LLM می‌سازند، تأثیر می‌گذارند. سازمان‌هایی که به دنبال بهره‌برداری از چندین ارائه‌دهندهٔ LLM هستند، با پیچیدگی مدیریت چندین ادغام و عدم وجود ویژگی‌های بهینه‌سازی داخلی محدود می‌شوند.

نگاهی دقیق‌تر به دروازهٔ Portkey AI

دروازهٔ Portkey AI یک کتابخانهٔ متن‌باز است که ادغام LLM را برای توسعه‌دهندگان پایتون ساده می‌کند. این کتابخانه چارچوبی قوی با یک API یکپارچه فراهم می‌کند که امکان تعامل یکپارچه با چندین ارائه‌دهندهٔ LLM را می‌دهد.

در هستهٔ عملکرد Portkey، توانایی انتزاع تفاوت‌های بین ارائه‌دهندگان مختلف LLM قرار دارد. این امکان به توسعه‌دهندگان می‌دهد تا به‌راحتی بین مدل‌ها جابجا شوند یا ویژگی‌های پیشرفته‌ای مانند تعادل بار را پیاده‌سازی کنند؛ بدون این‌که نیاز به تغییر کد برنامه داشته باشند.

در حال حاضر پروژه از چندین ارائه‌دهندهٔ LLM پشتیبانی می‌کند:

  • Anthropic
  • Azure OpenAI
  • Google
  • Groq
  • OpenAI

دروازهٔ Portkey AI با ویژگی‌های منحصر به فردی خود متمایز می‌شود:

  • API یکپارچه بین ارائه‌دهندگان
  • تعادل بار داخلی
  • تغییر آسان ارائه‌دهنده
  • قالب‌بندی پاسخ‌های سازگار

موارد استفاده کلیدی برای دروازهٔ Portkey AI

  1. ادغام چندین ارائه‌دهنده: دروازهٔ Portkey AI به توسعه‌دهندگان امکان می‌دهد به آسانی چندین ارائه‌دهندهٔ LLM را در برنامه‌های خود ادغام کنند. برای مثال، یک برنامه می‌تواند:
    • استفاده از GPT-4 OpenAI برای وظایف استدلالی پیچیده
    • استفاده از llama3-70b-8192 Groq برای زمان‌های پاسخ سریع‌تر
    • پیاده‌سازی سازوکارهای بازگشت برای اطمینان از دسترسی بالا
  2. تعادل بار و بهینه‌سازی: این کتابخانه به توسعه‌دهندگان امکان می‌دهد استراتژی‌های پیشرفتهٔ تعادل بار را پیاده‌سازی کنند، مانند:
    • توزیع درخواست‌ها بین چندین ارائه‌دهنده بر پایه وزن‌های سفارشی
    • بازگشت خودکار به ارائه‌دهندگان جایگزین در صورت بروز خطا
    • بهینه‌سازی هزینه‌ها با مسیردهی درخواست‌ها به ارائه‌دهندهٔ کم‑هزینه‌ترین
  3. بهبود جریان توسعه: دروازهٔ Portkey AI یک فرآیند توسعهٔ هموارتر را با:
    • ارائه یک API سازگار بین ارائه‌دهندگان مختلف LLM
    • امکان جابجایی آسان بین مدل‌ها برای آزمایش و مقایسه
    • ساده‌سازی مدیریت کلیدهای API و احراز هویت
  • استفاده از GPT-4 OpenAI برای وظایف استدلالی پیچیده
  • استفاده از llama3-70b-8192 Groq برای زمان‌های پاسخ سریع‌تر
  • پیاده‌سازی سازوکارهای بازگشت برای اطمینان از دسترسی بالا
  • توزیع درخواست‌ها بین چندین ارائه‌دهنده بر پایه وزن‌های سفارشی
  • بازگشت خودکار به ارائه‌دهندگان جایگزین در صورت بروز خطا
  • بهینه‌سازی هزینه‌ها با مسیردهی درخواست‌ها به ارائه‌دهندهٔ کم‑هزینه‌ترین
  • ارائه یک API سازگار بین ارائه‌دهندگان مختلف LLM
  • امکان جابجایی آسان بین مدل‌ها برای آزمایش و مقایسه
  • ساده‌سازی مدیریت کلیدهای API و احراز هویت

یکپارچه‌سازی دروازهٔ Portkey AI

بیایید چند مثال کد را برای نشان دادن قابلیت‌های Portkey بررسی کنیم.

استفادهٔ ساده با یک ارائه‌دهنده:

from portkey_ai import Portkey import os client = Portkey( provider="openai", Authorization=os.environ["OPENAI_API_KEY"] ) response = client.chat.completions.create( messages=[{"role": "user", "content": "What's the meaning of life?"}], model="gpt-4o-mini" ) print(response.choices[0].message.content)

استفاده از چندین ارائه‌دهنده:

from portkey_ai import Portkey import os # OpenAI client openai_client = Portkey( provider="openai", Authorization=os.environ["OPENAI_API_KEY"] ) response = openai_client.chat.completions.create( messages=[{"role": "user", "content": "What's the meaning of life?"}], model="gpt-4o-mini" ) print("From OpenAI:") print(response.choices[0].message.content) # Groq client groq_client = Portkey( provider="groq", Authorization=os.environ["GROQ_API_KEY"] ) response = groq_client.chat.completions.create( messages=[{"role": "user", "content": "What's the meaning of life?"}], model="llama3-70b-8192" ) print("From Groq:") print(response.choices[0].message.content)

پیاده‌سازی تعادل بار:

from portkey_ai import Portkey import os lb_config = { "strategy": { "mode": "loadbalance" }, "targets": [{ "provider": 'openai', "api_key": os.environ["OPENAI_API_KEY"], "weight": 0.1 },{ "provider": 'groq', "api_key": os.environ["GROQ_API_KEY"], "weight": 0.9, "override_params": { "model": 'llama3-70b-8192' }, }], } client = Portkey(config=lb_config) response = client.chat.completions.create( messages=[{"role": "user", "content": "What's the meaning of life?"}], model="gpt-4o-mini" ) print(response.choices[0].message.content)

پیاده‌سازی مسیردهی مشروط:

from portkey_ai import Portkey import os openai_api_key = os.environ["OPENAI_API_KEY"] groq_api_key = os.environ["GROQ_API_KEY"] pk_config = { "strategy": { "mode": "conditional", "conditions": [ { "query": {"metadata.user_plan": {"$eq": "pro"}}, "then": "openai" }, { "query": {"metadata.user_plan": {"$eq": "basic"}}, "then": "groq" } ], "default": "groq" }, "targets": [ { "name": "openai", "provider": "openai", "api_key": openai_api_key }, { "name": "groq", "provider": "groq", "api_key": groq_api_key, "override_params": { "model": "llama3-70b-8192" } } ] } metadata = { "user_plan": "pro" } client = Portkey(config=pk_config, metadata=metadata) response = client.chat.completions.create( messages=[{"role": "user", "content": "What's the meaning of life?"}] ) print(response.choices[0].message.content)

مثال بالا از مقدار متادیتا user_plan برای تعیین اینکه کدام مدل باید برای پرسش استفاده شود، استفاده می‌کند. این برای ارائه‌دهندگان SaaS که هوش مصنوعی را از طریق طرح فریمیوم ارائه می‌دهند، مفید است.

به‌کارگیری دروازهٔ Portkey AI برای ادغام LLM

Portkey نمایانگر نوآوری مهمی در ادغام LLM است. این پروژه به چالش‌های اساسی در مدیریت چندین ارائه‌دهنده و بهینه‌سازی عملکرد پاسخ می‌دهد. با ارائه یک چارچوب متن‌باز که امکان تعامل یکپارچه با ارائه‌دهندگان مختلف LLM را فراهم می‌کند، این پروژه خلأ قابل‌توجهی در جریان‌های کاری توسعهٔ هوش مصنوعی فعلی را پر می‌کند.

این پروژه از مشارکت جامعه بهره می‌برد و از توسعه‌دهندگان سراسر جهان دعوت به مشارکت می‌کند. با جامعه فعال در گیت‌هاب و مسائل باز، Portkey توسعه‌دهندگان را به گسترش قابلیت‌های آن تشویق می‌کند. رویکرد شفاف توسعه و مجوز متن‌باز این پروژه، آن را برای توسعه‌دهندگان فردی و تیم‌های سازمانی قابل دسترس می‌سازد.

Portkey همچنین یک پیاده‌سازی تجاری از دروازهٔ AI خود ارائه می‌دهد که برای سازمان‌ها یک راه‌حل قدرتمند برای مدیریت ادغام LLM فراهم می‌کند. ویژگی‌های کلیدی شامل API یکپارچه برای بیش از ۲۵۰ ارائه‌دهندهٔ LLM، تعادل بار، مسیردهی مشروط، تلاش‌های خودکار و بازگشت‌ها، کش‌سازی معنایی، و پشتیبانی چند‌مدله است.

نتیجه‌گیری – دروازهٔ Portkey AI

با ترکیب سهولت استفاده، ویژگی‌های جامع و پشتیبانی فعال جامعه، دروازهٔ Portkey AI به عنوان ابزاری ارزشمند برای توسعه‌دهندگانی که قصد ادغام چندین ارائه‌دهندهٔ LLM را در برنامه‌های خود دارند، برجسته می‌شود. این سرویس همچنین به‌صورت میزبانی‌شده با قیمت شروع از ۴۹ دلار در ماه در دسترس است، با یک لایهٔ رایگان برای نمونه‌سازی و آزمایش. با تسهیل تعامل یکپارچه با ارائه‌دهندگان مختلف LLM، Portkey به پیشرفت برنامه‌های هوش مصنوعی انعطاف‌پذیر و قوی‌تر کمک می‌کند.