تقديم pplx-api

واجهة برمجة تطبيقات Perplexity Lab السريعة والفعالة لنماذج LLM مفتوحة المصدر

Introducing pplx-api by Perplexity Labs

يرجى ملاحظة: تم إيقاف الميزات أدناه للنماذج الحالية. اعرف المزيد حول واجهات برمجة التطبيقات الخاصة بنا

يسعدنا الإعلان عن pplx-api، المصممة لتكون واحدة من أسرع الطرق للوصول إلى نماذج Mistral 7B، وLlama2 13B، وCode Llama 34B، وLlama2 70B، وreplit-code-v1.5-3b. تسهّل pplx-api على المطورين دمج نماذج اللغة الكبيرة (LLMs) مفتوحة المصدر المتطورة في مشاريعهم.

توفر واجهة برمجة التطبيقات pplx-api الخاصة بنا:

سهولة الاستخدام: يمكن للمطورين استخدام النماذج مفتوحة المصدر المتطورة جاهزة للاستخدام والبدء في غضون دقائق باستخدام واجهة برمجة تطبيقات REST مألوفة.

استدلال سريع للغاية: نظام الاستدلال المصمم بعناية لدينا يتسم بالكفاءة ويحقق زمن انتقال أقل بنسبة تصل إلى 2.9x مقارنة بـ Replicate وزمن انتقال أقل بنسبة 3.1x مقارنة بـ Anyscale.

بنية تحتية مجربة ومختبرة: ثبتت موثوقية pplx-api، حيث تتعامل مع حركة مرور بمستوى الإنتاج في كل من محرك بحث Perplexity وبيئة اختبار Labs الخاصة بنا.

محطة واحدة لنماذج LLMs مفتوحة المصدر: فريقنا مكرس لإضافة نماذج مفتوحة المصدر جديدة فور توفرها. على سبيل المثال، أضفنا نماذج Llama وMistral في غضون ساعات قليلة من إطلاقها بدون الحاجة إلى الوصول المسبق.

واجهة pplx-api في مرحلة التجربة العامة وهي مجانية للمستخدمين الذين لديهم اشتراك Perplexity Pro.

استخدم pplx-api لفعالية برمجة غير رسمية في عطلة نهاية الأسبوع أو كحل تجاري بناءً على منتجات جديدة ومبتكرة. نأمل أن نتعرف على كيف يمكن للأشخاص بناء منتجات رائعة ومبتكرة باستخدام واجهة برمجة التطبيقات الخاصة بنا من خلال هذا الإصدار. يرجى التواصل عبر api@perplexity.ai إذا كانت لديك حالة استخدام تجارية لـ pplx-api. نود حقاً سماع آرائكم!

ميزات pplx-api

سهولة الاستخدام

يتطلب نشر واستدلال نماذج اللغة الكبيرة (LLMs) جهداً كبيراً في البنية التحتية لجعل خدمة النماذج عالية الأداء وفعالة من حيث التكلفة. يمكن للمطورين استخدام واجهة برمجة التطبيقات الخاصة بنا خارج الصندوق، دون معرفة عميقة بلغة C++ أو CUDA أو الوصول إلى وحدة معالجة الرسومات (GPU)، مع الاستمتاع بأداء متطور. كما يقوم استدلال LLM الخاص بنا بتجريد تعقيد وضرورة إدارة الأجهزة الخاصة بك، مما يضيف المزيد إلى سهولة الاستخدام.


استدلال فائق السرعة

تم تصميم واجهة برمجة تطبيقات LLM الخاصة بـ Perplexity بعناية وتحسينها من أجل استدلال سريع. لتحقيق ذلك، قمنا بنناء بنية تحتية خاصة لاستدلال LLM حول مكتبة TensorRT-LLM من NVIDIA والتي يتم تقديمها على وحدات معالجة الرسومات A100 المقدمة من AWS. تعرف على المزيد في قسم نظرة عامة على البنية التحتية لـ pplx-api. ونتيجة لذلك، تعد pplx-api واحدة من أسرع واجهات برمجة تطبيقات Llama وMistral المتاحة تجارياً.

لإجراء مقارنة مع الحلول الحالية، قارنا زمن الانتقال لـ pplx-api مع مكتبات استدلال LLM الأخرى. في تجاربنا، تحققت pplx-api زمن انتقال إجمالي أسرع بنسبة تصل إلى 2.92x مقارنةً بـ Text Generation Inference (TGI)، وزمن استجابة أولي أسرع بنسبة تصل إلى 4.35x. لهذا التجربة، قارنا TGI واستدلال Perplexity لسيناريوهات البث الفردي والخادم على وحدتي معالجة رسومات A100 باستخدام نموذج Llama-2-13B-chat موزعين على كلتا وحدتي معالجة الرسومات. بالنسبة لسيناريو البث الفردي، يعالج الخادم طلباً تلو الآخر. في سيناريو الخادم، يرسل العميل الطلبات وفقاً لتوزيع بواسون مع معدلات طلبات متفاوتة لمحاكاة الحمل المتغير. بالنسبة لمعدل الطلبات، نقوم بإجراء مسح صغير يصل أقصاه إلى طلب واحد / ثانية، وهو الحد الأقصى للإنتاجية التي تدعمها TGI. استخدمنا بيانات واقعية مع مجموعة متنوعة من طول الرموز المدخلة والمخرجة لمحاكاة سلوك الإنتاج. يبلغ متوسط الطلبات ~700 رمز إدخال و~550 رمز إخراج.

باستخدام نفس المدخلات وإرسال تدفق واحد من الطلبات، قمنا أيضاً برصد متوسط أزمنة الاستجابة لواجهات برمجة التطبيقات الخاصة بـ Replicate وAnyscale لنفس النموذج لجمع أساس مرجعي للأداء مقارنة بواجهات برمجة التطبيقات الأخرى الحالية.

Perplexity Labs - زمن استجابة الرمز الأول
Perplexity Labs - سرعة فك التشفير

باستخدام نفس الإعداد التجريبي، قارنا أقصى إنتاجية لـ pplx-api مقابل TGI، مع اعتبار سرعة فك التشفير قيداً لزمن الانتقال. في تجاربنا، تعالج pplx-api الرموز بشكل أسرع بـ 1.90x-6.75x مقارنة بـ TGI، وتفشل TGI تماماً في استيفاء قيود زمن الانتقال الأكثر صرامة لدينا عند 60 و80 رمزاً/ثانية. نقوم بتقييم TGI في نفس ظروف الأجهزة والحمل التي استخدمناها لتقييم pplx-api. مقارنة هذا المقياس مع Replicate وAnyscale غير ممكن لأننا لا نستطيع التحكم في عوامل الأجهزة والحمل الخاصة بهم.

للمقارنة، متوسط سرعة القراءة البشرية هو 5 رموز/ثانية، مما يعني أن pplx-api قادرة على تقديم الخدمة بمعدل أسرع ممّا يمكن قراءته.

Perplexity Labs - إنتاجية الرموز لكل وحدة معالجة رسومات

نظرة عامة على البنية التحتية لـ pplx-api

تحقيق هذه الأرقام في زمن الانتقال يتطلب مزيجاً من البرمجيات والأجهزة المتطورة.

توفر مثيلات AWS p4d instances المدعومة بوحدات معالجة الرسومات NVIDIA A100 الأساس كخيار أكثر فعالية من حيث التكلفة وموثوقية لتوسيع نطاق وحدات معالجة الرسومات بسرعة ساعة رائدة في فئتها.

لكي تستفيد البرمجيات من هذا الأجهزة، نقوم بتشغيل TensorRT-LLM من NVIDIA، وهي مكتبة مفتوحة المصدر تعمل على تسريع وتحسين استدلال LLM. تضم TensorRT-LLM مجمع التعلم العميق لـ TensorRT وتتضمن أحدث النواة المحسنة المصممة لتنفيذ تقنيات متطورة لـ FlashAttention وmasked multi-head attention (MHA) لمرحلتي السياق والتوليد لتنفيذ نموذج LLM.

من هنا، تتيح لنا بنية AWS الأساسية وتكاملها القوي مع Kubernetes التوسع بمرونة متجاوزة مئات وحدات معالجة الرسومات وتقليل وقت التعطل والنفقات العامة للشبكة.

حالة الاستخدام: واجهة برمجة التطبيقات الخاصة بنا قيد الإنتاج

pplx-api في Perplexity: خفض التكاليف والموثوقية

تقوم واجهة برمجة التطبيقات الخاصة بنا بالفعل بتشغيل إحدى ميزات المنتج الأساسية في Perplexity. أدى مجرد تبديل ميزة واحدة من واجهة برمجة تطبيقات خارجية إلى pplx-api إلى توفير في التكاليف قدره 0.62 مليون دولار/سنوياً، أي ما يقرب من 4 أضعاف خفض التكاليف. أجرينا اختبارات A/B وراقبنا مقاييس البنية التحتية لضمان عدم حدوث أي تدهور في الجودة. على مدار أسبوعين، لم نلاحظ أي فرق ذي دلالة إحصائية في اختبار A/B. بالإضافة إلى ذلك، يمكن لـ pplx-api تحمل حمولة يومية تزيد عن مليون طلب، لتصل في مجموعها إلى ما يقريب من مليار رمز تمت معالجته يومياً.

نتائج هذا الاستكشاف الأولي مشجعة للغاية، ونحن نتوقع أن تقوم pplx-api بتشغيل المزيد من ميزات منتجاتنا بمرور الوقت.

pplx-api في Perplexity Labs: نظام بيئي للاستدلال مفتوح المصدر

نستخدم أيضاً pplx-api لتشغيل Perplexity Labs، بيئة اختبار النماذج الخاصة بنا والتي تقدم نماذج مختلفة مفتوحة المصدر.

متوسط الرموز المقدمة يومياً

يلتزم فريقنا بتوفير الوصول إلى أحدث نماذج LLM مفتوحة المصدر والمتطورة. لقد قمنا بدمج Mistral 7B وCode Llama 34b وجميع نماذج Llama 2 في غضون ساعات بعد إصدارها، ونخطط للقيام بذلك مع توفر المزيد من نماذج LLM القوية ومفتوحة المصدر.

ابدأ مع واجهة برمجة تطبيقات الذكاء الاصطناعي من Perplexity

يمكنك الوصول إلى واجهة برمجة التطبيقات REST الخاصة بـ pplx-api باستخدام طلبات HTTPS. تتضمن المصادقة في pplx-api الخطوات التالية:

قم بتوليد مفتاح واجهة برمجة تطبيقات من خلال صفحة إعدادات حساب Perplexity. مفتاح واجهة برمجة التطبيقات هو رمز وصول طويل الأمد يمكن استخدامه حتى يتم تحديثه أو حذفه يدويًا.

أرسل مفتاح واجهة برمجة التطبيقات كرمز حامل (bearer token) في رأس Authorization مع كل طلب لـ pplx-api.

في المثال التالي، PERPLEXITY_API_KEY هو متغير بيئي مربوط بمفتاح تم توليده باستخدام التعليمات أعلاه. يتم استخدام CURL لإرسال طلب إكمال دردشة.

bash
curl -X POST \ --url https://perplexity.coolkeypoint.com/__p/api.perplexity.ai/chat/completions \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --header "Authorization: Bearer ${PERPLEXITY_API_KEY}" \ --data '{ "model": "mistral-7b-instruct", "stream": false, "max_tokens": 1024, "frequency_penalty": 1, "temperature": 0.0, "messages": [ { "role": "system", "content": "Be precise and concise in your responses." }, { "role": "user", "content": "How many stars are there in our galaxy?" } ] }'

مما ينتج عنه الاستجابة التالية، مع content-type: application/json

json
{ "id": "3fbf9a47-ac23-446d-8c6b-d911e190a898", "model": "mistral-7b-instruct", "object": "chat.completion", "created": 1765322, "choices": [ { "index": 0, "finish_reason": "stop", "message": { "role": "assistant", "content": " The Milky Way galaxy contains an estimated 200-400 billion stars.." }, "delta": { "role": "assistant", "content": " The Milky Way galaxy contains an estimated 200-400 billion stars.." } } ], "usage": { "prompt_tokens": 40, "completion_tokens": 22, "total_tokens": 62 } }

إليك مثال لنداء بلغة Python:

python
from openai import OpenAI YOUR_API_KEY = "INSERT API KEY HERE" messages = [ { "role": "system", "content": ( "You are an artificial intelligence assistant and you need to " "engage in a helpful, detailed, polite conversation with a user." ), }, { "role": "user", "content": ( "Count to 100, with a comma between each number and no newlines. " "E.g., 1, 2, 3, ..." ), }, ] client = OpenAI(api_key=YOUR_API_KEY, base_url="https://perplexity.coolkeypoint.com/__p/api.perplexity.ai") # demo chat completion without streaming response = client.chat.completions.create( model="mistral-7b-instruct", messages=messages, ) print(response) # demo chat completion with streaming response_stream = client.chat.completions.create( model="mistral-7b-instruct", messages=messages, stream=True, ) for response in response_stream: print(response)

نحن ندعم حالياً Mistral 7B، وLlama 13B، وCode Llama 34B، وLlama 70B، وواجهة برمجة التطبيقات متوافقة بسهولة مع عميل OpenAI لسهولة التكامل مع التطبيقات الحالية.

لمزيد من المعلومات، يرجى زيارة توثيق واجهة برمجة التطبيقات ودليل البدء السريع.

ما التالي

في المستقبل القريب، ستدعم pplx-api:

نماذج Perplexity المخصصة ونماذج LLMs الأخرى مفتوحة المصدر.

تضمينات Perplexity المخصصة والتضمينات مفتوحة المصدر.

هيكل تسعير مخصص لواجهة برمجة التطبيقات مع وصول عام بعد انتهاء التجربة العامة.

واجهة برمجة تطبيقات Perplexity RAG-LLM مع دعم الحقائق والاستشهادات.

تواصل عبر api@perplexity.ai إذا كنت مهتماً بأي من حالات الاستخدام هذه.

هذه هي أيضاً بداية سلسلة مدونات Perplexity. في منشورنا القادم، سنشارك نظرة متعمقة حول مقارنة أداء A100 مقابل H100 لاستدلال LLM. ترقبونا!

نحن نتوظف! إذا كنت ترغب في العمل على منتج منشور على نطاق واسع وبناء بنية تحتية نموذجية للغات الكبيرة والتوليدية المصممة بعناية والمحسنة بعناية معنا، فيرجى الانضمام إلينا.

تابعنا على Twitter، وLinkedIn وانضم إلى Discord لمزيد من النقاش.

المؤلفون:

Lauren Yang, Kevin Hu, Aarash Heydari, William Zhang, Dmitry Pervukhin, Grigorii Alekseev, Alexandr Yarats

خصوصية البيانات

من خلال اختيار pplx-api، يمكنك تسخير الإمكانات الكاملة لنماذج LLM مع حماية خصوصية وثقة مستخدميك وعملائك. نحن ندرك أهمية حماية معلوماتك الشخصية ونلتزم بالحفاظ على أمان وخصوصية مستخدمينا. يتم حذف بيانات واجهة برمجة التطبيقات تلقائياً بعد 30 يوماً، ولا نقوم أبداً بالتدريب على أي بيانات يتم إرسالها عبر pplx-api. يمتلك المستخدمون خيار إلغاء الاشتراك في الاحتفاظ بالبيانات في إعدادات حساباتهم. اعثر على سياسة خصوصية واجهة برمجة التطبيقات هنا.