Predstavujeme pplx-api

Rýchle a efektivne rozhranie API Perplexity Labs pre open-source LLM

Introducing pplx-api by Perplexity Labs

Upozornenie: Nasledujúce položky sú pre aktuálne modely zastarané. Ďalšie informácie o našich rozhraniach API

S radosťou oznamujeme spustenie pplx-api, navrhnutého ako jeden z najrýchlejších spôsobov prístupu k modelom Mistral 7B, Llama2 13B, Code Llama 34B, Llama2 70B a replit-code-v1.5-3b. pplx-api uľahčuje vývojárom integráciu špičkových open-source modelov veľkých jazykových modelov (LLM) do ich projektov.

Naše rozhranie pplx-api ponúka:

Jednoduché použitie: vývojári môžu používať moderné open-source modely hneď po vybalení a začať do niekoľkých minút vďaka známemu rozhraniu REST API.

Mimoriadne rýchla inferencia: náš starostlivo navrhnutý inferenčný systém je efektivny a dosahuje až 2,9-krát nižšiu latenciu ako Replicate a 3,1-krát nižšiu latenciu ako Anyscale.

Overená infraštruktúra: pplx-api preukázalo svoju spoľahlivosť a obsluhuje prevádzku na produkčnej úrovni v našom vyhľadávacom motore Perplexity aj v našom skúšobnom prostredí Labs.

Jednotné miesto pre open-source LLM: náš tím sa usilovne snaží pridávať nové open-source modely hneď po ich vydaní. Napríklad modely Llama a Mistral sme pridali do niekoľkých hodín od uvedenia na trh bez predbežného prístupu.

pplx-api je vo fáze verejnej beta verzie a pre používateľov s predplatným Perplexity Pro je bezplatné.

Využite pplx-api na víkendový hackathon alebo ako komerčné riešenie na tvorbu nových a inovatívnych produktov. Dúfame, že vďaka tomuto vydaniu zistíme, ako dokážu ľudia vytvárať skvelé a inovatívne produkty s naším rozhraním API. Ak máte pre pplx-api firemný prípad použitia, obráťte sa na nás na adrese api@perplexity.ai . Budeme radi, ak sa nám ozvete!

Výhody pplx-api

Jednoduché použitie

Nasaďovanie a inferencia LLM vyžadujú rozsiahlu infraštruktúru, aby bolo poskytovanie modelov výkonné a nákladovo efektívne. Vývojári môžu naše rozhranie API používať hneď po vybalení, bez hlbokých znalostí jazyka C++/CUDA alebo prístupu k grafickým procesorom (GPU), pričom si stále užívajú špičkový výkon. Naša inferencia LLM tiež abstrahuje zložitosť a nutnosť správy vlastného hardvéru, čo ďalej zvyšuje jednoduchosť používania.


Mimoriadne rýchla inferencia

Rozhranie LLM API od spoločnosti Perplexity je starostlivo navrhnuté a optimalizované pre rýchlu inferenciu. Na tento účel sme vybudovali vlastnú inferenčnú infraštruktúru LLM založenú na technológii TensortRT-LLM od spoločnosti NVIDIA, ktorá beží na grafických procesoroch A100 poskytovaných spoločnosťou AWS. Viac informácií nájdete v časti Prehľad infraštruktúry pplx-api. Vďaka tomu je pplx-api jedným z najrýchlejších komerčne dostupných rozhraní API pre modely Llama a Mistral.

Na porovnanie s existujúcimi riešeniami sme porovnali latenciu pplx-api s inými inferenčnými knižnicami LLM. V našich experimentoch dosahuje pplx-api až 2,92-krát rýchlejšiu celkovú latenciu v porovnaní s Text Generation Inference (TGI) a až 4,35-krát rýchlejsiu počiatočnú latenciu odozvy. Pre tento experiment sme porovnali TGI a inferenciu Perplexity pre scenáre s jedným streamom a so serverom na 2 GPU A100 s použitím modelu Llama-2-13B-chat rozdeleného medzi oba GPU. V scenári s jedným streamom server spracováva jednu požiadavku za druhou. V scenári so serverom klient odosiela požiadavky podľa Poissonovho rozdelenia s rôznou frekvenciou požiadaviek na emuláciu premenlivej záťaže. Pre frekvenciu požiadaviek vykonávame malé prehľadávanie až do maximálne 1 požiadavky za sekundu, čo je maximálna priepustnosť udržiavaná nástrojom TGI. Na simuláciu správania v produkčnom prostredí sme použili reálne údaje s rôznymi dĺžkami vstupných a výstupných tokenov. Požiadavky majú v priemere ~700 vstupných tokenov a ~550 výstupných tokenov.

Pomocou rovnakých vstupov a odosielaním jediného streamu požiadaviek sme odmerali aj priemerné latencie rozhraní API spoločností Replicate a Anyscale pre rovnaký model, aby sme získali porovnávací základ pre výkon s inými existujúcimi rozhraniami API.

Perplexity Labs – latencia prvého tokenu
Perplexity Labs – rýchlosť dekódovania

Pomocou rovnakého experimentálneho nastavenia sme porovnali maximálnu priepustnosť pplx-api s TGI, pričom rýchlosť dekódovania slúžila ako obmedzenie latencie. V našich experimentoch pplx-api spracováva tokeny 1,90x-6,75x rýchlejšie ako TGI a TGI úplne nedokáže splniť naše prísnejšie obmedzenia latencie pri 60 a 80 tokenoch za sekundu. TGI vyhodnocujeme za rovnakých podmienok hardvéru a zaťaženia, aké sme použili na vyhodnotenie pplx-api. Porovnanie tejto metriky so spoločnosťami Replicate a Anyscale nie je možné, pretože nemôžeme kontrolovať ich hardvér a faktory zaťaženia.

Pre informáciu, priemerná rýchlosť čítania človeka je 5 tokenov za sekundu, čo znamená, že pplx-api dokáže poskytovať odpovede rýchlejšie, než človek stíha čítať.

Perplexity Labs – priepustnosť tokenov na GPU

Prehľad infraštruktúry pplx-api

Dosiahnutie týchto hodnôt latencie si vyžaduje kombináciu špičkového softvéru a hardvéru.

Inštancie AWS p4d poháňané grafickými procesormi NVIDIA A100 predstavujú najefektívnejšiu a najspoľahlivejšiu možnosť na škálovanie grafických procesorov s najlepšími taktovacími frekvenciami vo svojej triede.

Aby softvér mohol tento hardvér využiť, spúšťame TensorRT-LLM od spoločnosti NVIDIA, open-source knižnicu, ktorá urýchľuje a optimalizuje inferenciu LLM. TensorRT-LLM obaľuje kompilátor hlbokého učenia TensorRT a obsahuje najnovšie optimalizované jadrá vytvorené pre špičkové implementácie FlashAttention a maskovanú multi-head attention (MHA) pre fázy kontextu a generovania pri vykonávaní modelu LLM.

Základná štruktúra AWS a jej robustná integrácia so službou Kubernetes nám umožňujú elasticky škálovať nad rámec stoviek GPU a minimalizovať prestoje a sieťovú réžiu.

Prípad použitia: Naše rozhranie API v produkcii

pplx-api v systéme Perplexity: Zníženie nákladov a spoľahlivosť

Naše rozhranie API už poháňa jednu zo základných funkcií produktov spoločnosti Perplexity. Len prepnutie jednej funkcie z externého rozhrania API na pplx-api viedlo k úspore nákladov vo výške 0,62 milióna USD ročne, čo predstavuje približne 4-násobné zníženie nákladov. Vykonali sme A/B testy a sledovali metriky infraštruktúry, aby sme zaistili žiadnu degradáciu kvality. V priebehu 2 týždňov sme nezaznamenali žiadny štatisticky významný rozdiel v A/B teste. Okrem toho dokázalo pplx-api zvládnuť dennú záťaž viac ako jeden milión požiadaviek, čo predstavuje takmer jednu miliardu spracovaných tokenov denne.

Výsledky tohto počiatočného prieskumu sú veľmi povzbudivé a predpokladáme, že pplx-api bude časom poháňať viac našich produktových funkcií.

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

pplx-api používame aj na napájanie Perplexity Labs, nášho modelového ihriska poskytujúceho rôzne open-source modely.

Priemerný denný počet obslúžených tokenov

Náš tím sa zaviazal poskytovať prístup k najnovším špičkovým open-source modelom LLM. Modely Mistral 7B, Code Llama 34b a všetky modely Llama 2 sme integrovali v priebehu niekoľkých hodín po ich vydaní a plánujeme v tom pokračovať, keď budú k dispozícii schopnejšie open-source modely LLM.

Začnite pracovať s rozhraním AI API od spoločnosti Perplexity

K rozhraniu REST API pplx-api môžete pristupovať pomocou požiadaviek HTTPS. Autentifikácia do pplx-api zahŕňa nasledujúce kroky:

Vygenerujte kľúč API prostredníctvom stránky nastavení účtu Perplexity. Kľúč API je prístupový token s dlhou platnosťou, ktorý možno používať, kým sa manuálne neobnoví alebo neodstráni.

Odošlite kľúč API ako token nosiča (bearer token) v hlavičke Authorization pri každej požiadavke na pplx-api.

V nasledujúcom príklade je PERPLEXITY_API_KEY premenná prostredia viazaná na kľúč vygenerovaný podľa vyššie uvedených pokynov. Na odoslanie požiadavky na dokončenie chatu sa používa nástroj 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?" } ] }'

Čo prináša nasledujúcu odpoveď s hodnotou 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 } }

Tu je príklad volania v jazyku 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)

Momentálne podporujeme modely Mistral 7B, Llama 13B, Code Llama 34B, Llama 70B a rozhranie API je pohodlne kompatibilné s klientom OpenAI na jednoduchú integráciu s existujúcimi aplikáciami.

Ďalšie informácie nájdete v našej dokumentácii k API a v príručke pre rýchly štart.

Čo nasleduje

V blízkej budúcnosti bude pplx-api podporovať:

Vlastné modely LLM od spoločnosti Perplexity a iné open-source modely LLM.

Vlastné vkladania (embeddings) od spoločnosti Perplexity a open-source vkladania.

Vyhradenú štruktúru cien API so všeobecným prístupom po ukončení fázy verejnej beta verzie.

Rozhranie API Perplexity RAG-LLM s ukotvením faktov a citácií.

Ak máte záujem o niektorý z týchto prípadov použitia, obráťte sa na nás na adrese api@perplexity.ai.

Toto je zároveň začiatok našej série príspevkov na blogu Perplexity. V našom nasledujúcom príspevku sa podelíme o podrobný rozbor porovnania výkonu A100 vs H100 pre inferenciu LLM. Zostaňte s nami!

Prijímame nových zamestnancov! Ak chcete pracovať na produkte nasadenom v masívnom meradle a budovať s nami premyslene navrhnutú, starostlivo optimalizovanú infraštruktúru generatívnych a veľkých jazykových modelov, pridajte sa k nám.

Sledujte nás na sieti Twitter, LinkedIn a pripojte sa k nášmu serveru Discord pre ďalšie diskusie.

Autori:

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

Ochrana údajov

Výberom pplx-api môžete využiť plný potenciál modelov LLM a zároveň chrániť súkromie a dôveru svojich používateľov a zákazníkov. Chápeme dôležitosť ochrany vašich osobných údajov a zaväzujeme sa udržiavať bezpečnosť a súkromie našich používateľov. Údaje z API sa automaticky vymažú po 30 dňoch a nikdy netrénujeme na žiadnych údajoch prenášaných prostredníctvom pplx-api. Používatelia majú možnosť zrušiť uchovávanie údajov v nastaveniach svojho účtu. Naše pravidlá ochrany osobných údajov pre API nájdete tu.