Představujeme pplx-api

Rychlé a efektivní API Perplexity Labs pro open-source modely LLM

Introducing pplx-api by Perplexity Labs

Upozornění: Následující položky byly pro současné modely zastaralé. Zjistěte více o našich rozhraních API

S radostí oznamujeme spuštění pplx-api, které bylo navrženo jako jeden z nejrychlejších způsobů přístupu k modelům Mistral 7B, Llama2 13B, Code Llama 34B, Llama2 70B a replit-code-v1.5-3b. pplx-api usnadňuje vývojářům integraci špičkových open-source modelů LLM do jejich projektů.

Naše pplx-api poskytuje:

Jednoduchost použití: vývojáři mohou používat špičkové open-source modely ihned po vybalení a začít pracovat během několika minut s důvěrně známým rozhraním REST API.

Bleskově rychlá inference: náš promyšleně navržený systém inference je efektivní a dosahuje až 2,9× nižší latence než Replicate a 3,1× nižší latence než Anyscale.

Ověřená infrastruktura: pplx-api se osvědčilo jako spolehlivé a zajišťuje provoz v produkčním měřítku jak v našem vyhledávacím enginu Perplexity, tak v našem testovacím prostředí Labs.

Komplexní řešení pro open-source modely LLM: náš tým se věnuje přidávání nových open-source modelů ihned po jejich vydání. Například modely Llama a Mistral jsme přidali během několika hodin od spuštění bez předběžného přístupu.

pplx-api je v这也是 veřejné beta verzi a je zdarma pro uživatele s předplatným Perplexity Pro.

Využijte pplx-api pro nenáročný víkendový hackathon nebo jako komerční řešení pro vytváření nových a inovativních produktů. Doufáme, že díky tomuto vydání zjistíme, jak mohou lidé s naším rozhraním API vytvářet skvělé a inovativní produkty. Pokud máte pro pplx-api obchodní využití, kontaktujte nás na adrese api@perplexity.ai. Budeme rádi, když se nám ozvete!

Výhody pplx-api

Jednoduchost použití

Nasazení a inference LLM vyžadují značné investice do infrastruktury, aby bylo servírování modelů výkonné a cenově efektivní. Vývojáři mohou naše rozhraní API používat ihned po vybalení, bez hlubokých znalostí C++/CUDA nebo přístupu k jednotkám GPU, a přitom si užívat špičkový výkon. Naše inference LLM také abstrahuje složitost a nutnost správy vlastního hardwaru, což dále zvyšuje snadnost použití.


Bleskově rychlá inference

Rozhraní API LLM od společnosti Perplexity je pečlivě navrženo a optimalizováno pro rychlou inferenci. Za tímto účelem jsme vybudovali vlastní inferenční infrastrukturu LLM založenou na technologii NVIDIA TensorRT-LLM, která běží na GPU A100 poskytovaných společností AWS. Více informací najdete v části Přehled infrastruktury pplx-api. Díky tomu je pplx-api jedním z nejrychlejších komerčně dostupných rozhraní API pro modely Llama a Mistral.

Abychom porovnali stávající řešení, porovnali jsme latenci pplx-api s jinými inferenčními knihovnami LLM. V našich experimentech dosahuje pplx-api až 2,92× nižší celkové latence ve srovnání s Text Generation Inference (TGI) a až 4,35× nižší počáteční latence odpovědi. Pro tento experiment jsme porovnali TGI a inferenci Perplexity pro scénáře s jedním proudem a se serverem na 2 GPU A100 s použitím modelu Llama-2-13B-chat rozděleného mezi oba GPU. V případě scénáře s jedním proudem server zpracovává jeden požadavek za druhým. V serverovém scénáři klient odesílá požadavky podle Poissonova rozdělení s různou frekvencí požadavků, aby emuloval proměnlivé zatížení. Pro frekvenci požadavků provádíme malé prohledávání až do maximálního 1 požadavku za sekundu, což je maximální propustnost podporovaná TGI. K simulaci chování v produkčním prostředí jsme použili reálná data s různou délkou vstupních a výstupních tokenů. Požadavky mají v průměru ~700 vstupních tokenů a ~550 výstupních tokenů.

Pomocí stejných vstupů a odesílání jednoho proudu požadavků jsme také změřili průměrné latence rozhraní API společnosti Replicate a Anyscale pro tento stejný model, abychom získali výkonnostní srovnání s jinými existujícími rozhraními API.

Perplexity Labs – Latence prvního tokenu
Perplexity Labs – Rychlost dekódování

Pomocí stejného experimentálního nastavení jsme porovnali maximální propustnost pplx-api s TGI, přičemž rychlost dekódování sloužila jako omezení latence. V našich experimentech zpracovává pplx-api tokeny 1,90×–6,75× rychleji než TGI a TGI zcela nedokáže splnit naše přísnější omezení latence při 60 a 80 tocích za sekundu. TGI vyhodnocujeme za stejných podmínek hardwaru a zatížení, které jsme použili pro vyhodnocení pplx-api. Srovnání této metrikou s Replicate a Anyscale není možné, protože nemůžeme kontrolovat jejich hardware a faktory zatížení.

Pro představu, průměrná rychlost čtení člověka je 5 tokenů za sekundu, což znamená, že pplx-api je schopno servírovat rychlostí vyšší, než jakou je člověk schopen číst.

Perplexity Labs – Propustnost tokenů na GPU

Přehled infrastruktury pplx-api

Dosažení těchto hodnot latence vyžaduje kombinaci špičkového softwaru a hardwaru.

Instance AWS p4d poháněné GPU NVIDIA A100 představují nejnákladověji efektivnější a nejspolehlivější volbu pro škálování GPU s nejlepšími taktovacími frekvencemi ve své třídě.

Aby software mohl tohoto hardwaru využít, spouštíme TensorRT-LLM od společnosti NVIDIA, což je open-source knihovna, která akceleruje a optimalizuje inferenci LLM. TensorRT-LLM obaluje kompiler hlubokého učení TensorRT a obsahuje nejnovější optimalizované jádra vytvořená pro špičkové implementace FlashAttention a maskované multi-head attention (MHA) pro kontextové a generační fáze provádění modelu LLM.

Páteřní síť AWS a její robustní integrace s Kubernetes nám umožňují elasticky škálovat nad rámec stovek GPU a minimalizovat prostoje a síťovou režii.

Případ použití: Naše rozhraní API v produkčním prostředí

pplx-api v Perplexity: Snížení nákladů a spolehlivost

Naše rozhraní API již pohání jednu z klíčových funkcí produktů Perplexity. Pouhé přepnutí jedné funkce z externího rozhraní API na pplx-api vedlo k úspoře nákladů ve výši 0,62 milionu USD ročně, což představuje přibližně snížení nákladů. Provedli jsme A/B testy a sledovali metriky infrastruktury, abychom zajistili, že nedojde ke zhoršení kvality. V průběhu 2 týdnů jsme nezaznamenali žádný statisticky významný rozdíl v A/B testu. Kromě toho dokázalo pplx-api udržet denní zatížení přesahující jeden milion požadavků, což představuje celkem téměř jednu miliardu zpracovaných tokenů denně.

Výsledky tohoto prvního průzkumu jsou velmi povzbudivé a předpokládáme, že pplx-api bude postupem času pohánět další z našich produktových funkcí.

pplx-api v Perplexity Labs: Ekosystém inference open-source

Používáme také pplx-api k pohánění Perplexity Labs, našeho testovacího prostředí modelů, které poskytuje různé open-source modely.

Průměrný denní počet obsloužených tokenů

Náš tým se zavázal poskytovat přístup k nejnovějším špičkovým open-source modelům LLM. Modely Mistral 7B, Code Llama 34b a všechny modely Llama 2 jsme integrovali během několika hodin od jejich vydání a plánujeme v tom pokračovat, jakmile budou k dispozici schopnější a otevřené modely LLM.

Začněte používat rozhraní AI API od Perplexity

K rozhraní REST API pplx-api můžete přistupovat pomocí požadavků HTTPS. Autentizace do pplx-api zahrnuje následující kroky:

Vygenerujte klíč API prostřednictvím stránky nastavení účtu Perplexity. Klíč API je přístupový token s dlouhou platností, který lze používat, dokud není manuálně obnoven nebo smazán.

Odešlete klíč API jako nosný (bearer) token v hlavičce Authorization s každým požadavkem pplx-api.

V následujícím příkladu je PERPLEXITY_API_KEY proměnná prostředí vázaná na klíč vygenerovaný podle výše uvedených pokynů. K odeslání požadavku na dokončení chatu se používá příkaz 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?" } ] }'

Což přináší následující odpověď s 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 } }

Zde je příklad volání v jazyce 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)

Aktuálně podporujeme Mistral 7B, Llama 13B, Code Llama 34B, Llama 70B a rozhraní API je pro snadnou integraci se stávajícími aplikacemi pohodlně kompatibilní s klientem OpenAI.

Další informace naleznete v naší dokumentaci k API a v průvodci rychlým startem.

Co bude dál

V blízké budoucnosti bude pplx-api podporovat:

Vlastní modely Perplexity LLM a další open-source modely LLM.

Vlastní vnoření (embeddings) Perplexity a open-source vnoření.

Vyhrazená cenová struktura API s všeobecným přístupem po skončení fáze veřejné beta verze.

Rozhraní API Perplexity RAG-LLM s ukotvením pro fakta a citace.

Pokud máte zájem o některý z těchto případů použití, kontaktujte nás na adrese api@perplexity.ai.

Toto je také začátek naší série příspěvků na blogu Perplexity. V našem příštím příspěvku se podrobně podíváme na srovnání výkonu A100 vs H100 pro inferenci LLM. Zůstaňte s námi!

Hledáme nové posily! Pokud chcete pracovat na produktu nasazeném ve velkém měřítku a budovat s námi promyšleně navrženou a pečlivě optimalizovanou infrastrukturu generativních a velkých jazykových modelů, připojte se k nám.

Sledujte nás na Twitteru, LinkedInu a připojte se k našemu Discordu pro další diskuze.

Autoři:

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

Ochrana osobních údajů

Výběrem pplx-api můžete využít plný potenciál modelů LLM a zároveň chránit soukromí a důvěru svých uživatelů a zákazníků. Chápeme důležitost ochrany vašich osobních údajů a zavazujeme se udržovat bezpečnost a soukromí našich uživatelů. Data z API jsou automaticky smazána po 30 dnech a nikdy netrénujeme na žádných datech přenášených přes pplx-api. Uživatele mají možnost odmítnout uchovávání údajů v nastavení svého účtu. Naše zásady ochrany osobních údajů pro API naleznete zde.