Predstavljanje pplx-api-ja

Brz i učinkovit API Perplexity Labsa za open-source LLM-ove

Introducing pplx-api by Perplexity Labs

Napomena: Donji modeli više nisu podržani za trenutne modele. Saznajte više o našim API-jevima

S uzbuđenjem najavljujemo pplx-api, dizajniran da bude jedan od najbržih načina pristupa modelima Mistral 7B, Llama2 13B, Code Llama 34B, Llama2 70B, replit-code-v1.5-3b. pplx-api programerima olakšava integraciju vrhunskih open-source LLM modela u njihove projekte.

Naš pplx-api nudi:

Jednostavnost korištenja: programeri mogu koristiti najsuvremenije open-source modele izravno iz kutije i započeti unutar nekoliko minuta s poznatim REST API-jem.

Izuzetno brza inferencija: naš pomno dizajniran sustav inferencije učinkovit je i postiže do 2,9 puta manju latenciju od Replicatea i 3,1 puta manju latenciju od Anyscalea.

U borbi provjerena infrastruktura: dokazano je da je pplx-api pouzdan, služeći prometu produkcijske razine u našem Perplexity answer engine i našem Labs playground.

Sve na jednom mjestu za open-source LLM-ove: naš je tim posvećen dodavanju novih open-source modela kako pristižu. Na primjer, dodali smo Llama i Mistral modele unutar nekoliko sati od lansiranja bez pristupa prije izdavanja.

pplx-api je u javnoj beta verziji i besplatan je za korisnike s Perplexity Pro pretplatom.

Ikoristite pplx-api za opušteni vikend hackathon ili kao komercijalno rješenje za izgradnju novih i inovativnih proizvoda. Nadamo se da ćemo ovim izdanjem saznati kako ljudi mogu graditi cool i inovativne proizvode s našim API-jem. Obratite nam se na api@perplexity.ai ako imate poslovni slučaj korištenja za pplx-api. Voljeli bismo čuti vaše mišljenje!

Prednosti pplx-api-ja

Jednostavnost korištenja

Razmještanje i inferencija LLM-a zahtijevaju značajan infrastrukturni napor kako bi posluživanje modela bilo izvedivo i isplativo. Programeri mogu koristiti naš API izravno iz kutije, bez dubokog poznavanja C++/CUDA ili pristupa GPU-ovima, a istovremeno uživati u vrhunskim performansama. Naša LLM inferencija također apstrahira složenost i potrebu za upravljanjem vlastitim hardverom, dodatno doprinoseći jednostavnosti korištenja.


Izuzetno brza inferencija

Perplexityjev LLM API pomno je dizajniran i optimiziran za brzu inferenciju. Kako bismo to postigli, izgradili smo vlasničku LLM infrastrukturu inferencije oko NVIDIA-inog TensorRT-LLM-a koja se poslužuje na A100 GPU-ovima koje osigurava AWS. Saznajte više u odjeljku Pregled pplx-api infrastrukture. Kao rezultat toga, pplx-api je jedan od najbržih Llama i Mistral API-ja dostupnih na tržištu.

Kako bismo usporedili s postojećim rješenjima, usporedili smo latenciju pplx-api-ja s drugim bibliotekama LLM inferencije. U našim eksperimentima, pplx-api postiže do 2,92 puta bržu ukupnu latenciju u usporedbi s Text Generation Inference (TGI), i do 4,35 puta bržu početnu latenciju odgovora. Za ovaj eksperiment usporedili smo TGI i Perplexityjevu inferenciju za scenarije s jednim tokom i poslužiteljem na 2 A100 GPU-a koristeći Llama-2-13B-chat model podijeljen na oba GPU-a. Za scenarij s jednim tokom, poslužitelj obrađuje jedan zahtjev za drugim. U scenariju poslužitelja, klijent šalje zahtjeve prema Poissonovoj distribuciji s različitim stopama zahtjeva kako bi se oponašalo različito opterećenje. Za stopu zahtjeva provodimo malo pretraživanje do maksimalno 1 zahtjeva u sekundi, što je maksimalni protok koji TGI može održati. Koristili smo podatke iz stvarnog svijeta s različitim duljinama ulaznih i izlaznih tokena kako bismo simulirali ponašanje u produkciji. Zahtjevi u prosjeku imaju ~700 ulaznih tokena i ~550 izlaznih tokena.

Koristeći iste unose i šaljući jedan tok zahtjeva, također smo izmjerili srednje latencije Replicateovih i Anyscaleovih API-ja za isti ovaj model kako bismo prikupili osnovnu vrijednost performansi u odnosu na druge postojeće API-je.

Perplexity Labs - Latencija prvog tokena
Perplexity Labs - Brzina dekodiranja

Koristeći istu eksperimentalnu postavku, usporedili smo maksimalni protok pplx-api-ja u odnosu na TGI, s brzinom dekodiranja kao ograničenjem latencije. U našim eksperimentima, pplx-api obrađuje tokene 1,90x-6,75x brže od TGI-ja, a TGI u potpunosti ne uspijeva zadovoljiti naša stroža ograničenja latencije pri 60 i 80 tokena u sekundi. Procjenjujemo TGI pod istim uvjetima hardvera i opterećenja koje smo koristili za procjenu pplx-api-ja. Usporedba ove metrike s Replicateom i Anyscaleom nije moguća jer ne možemo kontrolirati njihove hardverske i faktore opterećenja.

Za usporedbu, prosječna brzina čitanja čovjeka je 5 tokena u sekundi, što znači da je pplx-api u stanju služiti brzinom većom nego što se može pročitati.

Perplexity Labs - Protok tokena po GPU-u

Pregled pplx-api infrastrukture

Postizanje ovih brojeva latencije zahtijeva kombinaciju vrhunskog softvera i hardvera.

AWS p4d instance koje pokreću NVIDIA A100 GPU-ovi postavljaju temelj kao isplativa i pouzdana opcija za skaliranje GPU-ova s najboljim brzinama takta u klasi.

Kako bi softver iskoristio ovaj hardver, pokrećemo NVIDIA TensorRT-LLM, open-source biblioteku koja ubrzava i optimizira LLM inferenciju. TensorRT-LLM obavija TensorRT-ov kompajler dubokog učenja i uključuje najnovije optimizirane jezgre napravljene za vrhunske implementacije FlashAttentiona i maskirane multi-head pažnje (MHA) za faze konteksta i generiranja izvršavanja LLM modela.

Odavde, okosnica AWS-a i njegova robusna integracija s Kubernetesom omogućuju nam elastično skaliranje iznad stotina GPU-ova i minimiziranje zastoja i mrežnog opterećenja.

Slučaj korištenja: naš API u produkciji

pplx-api u Perplexityju: Smanjenje troškova i pouzdanost

Naš API već pokreće jednu od temeljnih značajki proizvoda Perplexity. Samo prebacivanje jedne značajke s vanjskog API-ja na pplx-api rezultiralo je uštedom troškova od 0,62 milijuna dolara godišnje, što je otprilike 4 puta smanjenje troškova. Proveli smo A/B testove i pratili metrike infrastrukture kako bismo osigurali da nema degradacije kvalitete. Tijekom razdoblja od 2 tjedna nismo uočili statistički značajnu razliku u A/B testu. Dodatno, pplx-api može održati dnevno opterećenje od preko milijun zahtjeva, s ukupno gotovo milijardu obrađenih tokena dnevno.

Rezultati ovog početnog istraživanja vrlo su ohrabrujući i predviđamo da će pplx-api s vremenom pokretati više naših značajki proizvoda.

pplx-api u Perplexity Labsu: Ekosustav otvorene inferencije

Također koristimo pplx-api za pokretanje Perplexity Labsa, našeg igrališta modela koje poslužuje različite open-source modele.

Prosječan broj posluženih tokena dnevno

Naš je tim posvećen pružanju pristupa najnovijim vrhunskim open-source LLM-ovima. Integrirali smo Mistral 7B, Code Llama 34b i sve Llama 2 modele unutar nekoliko sati nakon njihovog izdanja, i planiramo to učiniti kako budu postajali dostupni sposobniji open-source LLM-ovi.

Započnite s Perplexityjevim AI API-jem

Možete pristupiti pplx-api REST API-ju koristeći HTTPS zahtjeve. Autentifikacija u pplx-api uključuje sljedeće korake:

Generirajte API ključ putem stranice postavki računa Perplexity. API ključ je dugotrajni pristupni token koji se može koristiti dok se ručno ne osvježi ili izbriše.

Pošaljite API ključ kao nosivi token u zaglavlju Authorization sa svakim zahtjevom za pplx-api.

U sljedećem primjeru, PERPLEXITY_API_KEY je temperaturna varijabla povezana s ključem generiranim pomoću gore navedenih uputa. CURL se koristi za podnošenje zahtjeva za dovršetak chata.

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?" } ] }'

Što daje sljedeći odgovor, 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 } }

Ovo je primjer Python poziva:

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)

Trenutno podržavamo Mistral 7B, Llama 13B, Code Llama 34B, Llama 70B, a API je prikladno kompatibilan s OpenAI klijentom za jednostavnu integraciju s postojećim aplikacijama.

Za više informacija posjetite našu API dokumentaciju i Vodič za brzi početak.

Što je sljedeće

U bliskoj budućnosti, pplx-api će podržavati:

Prilagođeni Perplexity LLM-ovi i drugi open-source LLM-ovi.

Prilagođena Perplexity ugrađivanja i open-source ugrađivanja.

Namjenska struktura cijena API-ja s općim pristupom nakon završetka javne beta verzije.

Perplexity RAG-LLM API s temeljima za činjenice i citate.

Obratite nam se na api@perplexity.ai ako ste zainteresirani za bilo koji od ovih slučajeva korištenja.

Ovo je također početak naše serije objava na Perplexity Blogu. U našoj sljedećoj objavi podijelit ćemo detaljnu usporedbu performansi A100 vs H100 za LLM inferenciju. Pratite nas!

Zapošljavamo! Ako želite raditi na proizvodu razmještenom u masovnim razmjerima i graditi s nama promišljeno dizajniranu, pomno optimiziranu generativnu infrastrukturu i infrastrukturu velikih jezičnih modela, molimo vas da nam se pridružite.

Pratite nas na Twitteru, LinkedInu i pridružite se našem Discordu za više rasprava.

Autori:

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

Privatnost podataka

Odabirom pplx-api-ja možete iskoristiti puni potencijal LLM-ova uz zaštitu privatnosti i povjerenja vaših korisnika i kupaca. Razumijemo važnost zaštite vaših osobnih podataka i posvećeni smo održavanju sigurnosti i privatnosti naših korisnika. API podaci se automatski brišu nakon 30 dana i nikada ne vršimo obuku na bilo kojim podacima prenesenim putem pplx-api-ja. Korisnici imaju mogućnost isključivanja zadržavanja podataka u postavkama svog računa. Pronađite našu politiku privatnosti API-ja ovdje.