Predstavljanje pplx-api-ja
Perplexity Lab-ov brzi i efikasni API za open-source LLM-ove

Napomena: Donji modeli su ukinuti za trenutne modele. Saznajte više o našim API-jima
Sa zadovoljstvom najavljujemo pplx-api, dizajniran kao jedan od najbržih načina za pristup modelima Mistral 7B, Llama2 13B, Code Llama 34B, Llama2 70B, replit-code-v1.5-3b. pplx-api olakšava programerima integraciju najsavremenijih open-source LLM-ova u njihove projekte.
Naš pplx-api pruža:
Jednostavnost korišćenja: programeri mogu da koriste najsavremenije open-source modele spremne za upotrebu i da počnu za nekoliko minuta pomoću poznatog REST API-ja.
Neverovatno brzo zaključivanje: naš pažljivo dizajniran sistem zaključivanja je efikasan i postiže do 2,9x manju latenciju od Replicate-a i 3,1x manju latenciju od Anyscale-a.
Infrastruktura testirana u praksi: se pokazala pouzdanom, opslužujući saobraćaj na nivou proizvodnje u našem Perplexity engine-u za odgovore i našem Labs okruženju.
Sve na jednom mestu za open-source LLM-ove: naš tim je posvećen dodavanju novih open-source modela čim se pojave. Na primer, dodali smo Llama i Mistral modele u roku od nekoliko sati od lansiranja bez pristupa pre objavljivanja.
pplx-api je u javnoj beta verziji i besplatan je za korisnike sa Perplexity Pro pretplatom.
Koristite pplx-api za opušteni vikend hakaton ili kao komercijalno rešenje za izgradnju novih i inovativnih proizvoda. Nadamo se da ćemo saznati kako ljudi mogu da grade kul i inovativne proizvode sa našim API-jem kroz ovo izdanje. Obratite nam se na api@perplexity.ai ako imate poslovni slučaj upotrebe za pplx-api. Bilo bi nam drago da čujemo od vas!
Prednosti pplx-api-ja
Jednostavnost korišćenja
Primena i zaključivanje LLM-a zahtevaju značajan infrastrukturani poduhvat kako bi opsluživanje modela bilo efikasno i isplativo. Programeri mogu da koriste naš API van okvira, bez dubokog poznavanja C++/CUDA ili pristupa GPU-ovima, uz uživanje u vrhunskim performansama. Naše LLM zaključivanje takođe apstrahuje složenost i potrebu za upravljanjem sopstvenim hardverom, dodatno doprinoseći jednostavnosti korišćenja.
Neverovatno brzo zaključivanje
Perplexity-jev LLM API je pažljivo dizajniran i optimizovan za brzo zaključivanje. Da bismo to postigli, izgradili smo vlasničku infrastrukturu za LLM zaključivanje oko NVIDIA-inog TensortRT-LLM koja se opslužuje na A100 GPU-ovima koje obezbeđuje AWS. Saznajte više u odeljku Pregled infrastrukture pplx-api-ja. Kao rezultat toga, pplx-api je jedan od najbržih Llama i Mistral API-ja koji su komercijalno dostupni.
Da bismo uporedili sa postojećim rešenjima, uporedili smo latenciju pplx-api-ja sa drugim bibliotekama za LLM zaključivanje. U našim eksperimentima, pplx-api postiže do 2,92x veću ukupnu latenciju u poređenju sa Text Generation Inference (TGI), i do 4,35x veću početnu latenciju odgovora. Za ovaj eksperiment, uporedili smo TGI i Perplexity-jevo zaključivanje za scenarije sa jednim strimom i serverom na 2 A100 GPU-a koristeći Llama-2-13B-chat model podeljen na oba GPU-a. Za scenario sa jednim strimom, server obrađuje jedan zahtev za drugim. U scenariju sa serverom, klijent šalje zahteve u skladu sa Poissonovom raspodelom sa različitim stopama zahteva kako bi emulirao promenljivo opterećenje. Za stopu zahteva, vršimo malo pretraživanje do maksimalno 1 zahteva u sekundi, maksimalne propusnosti koju održava TGI. Koristili smo podatke iz stvarnog sveta sa različitim dužinama ulaznih i izlaznih tokena da bismo simulirali ponašanje u proizvodnji. Zahtevi imaju u proseku ~700 ulaznih tokena i ~550 izlaznih tokena.
Koristeći iste ulaze i šaljući jedan tok zahteva, takođe smo izmerili srednje latencije Replicate-ovih i Anyscale-ovih API-ja za isti ovaj model da bismo prikupili osnovnu liniju performansi u odnosu na druge postojeće API-je.


Koristeći isto eksperimentalno podešavanje, uporedili smo maksimalnu propusnost pplx-api-ja sa TGI, sa 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 uspeva da zadovolji naša stroža ograničenja latencije na 60 i 80 tokena u sekundi. Ocjenjujemo TGI pod istim uslovima hardvera i opterećenja koje smo koristili za procenu pplx-api-ja. Poređenje ove metrike sa Replicate-om i Anyscale-om nije moguće pošto ne možemo da kontrolišemo njihove faktore hardvera i opterećenja.
Za referencu, prosečna brzina čitanja čoveka je 5 tokena u sekundi, što znači da je pplx-api u stanju da opslužuje brzinom većom nego što se može pročitati.

Pregled infrastrukture pplx-api-ja
Postizanje ovih brojeva latencije zahteva kombinaciju najsavremenijeg softvera i hardvera.
AWS p4d instance koje pokreću NVIDIA A100 GPU-ovi postavljaju scenu kao najisplativija i najpouzdanija opcija za skaliranje GPU-ova sa najboljim brzinama takta u klasi.
Da bi softver iskoristio prednosti ovog hardvera, pokrećemo NVIDIA TensorRT-LLM, open-source biblioteku koja ubrzava i optimizuje LLM zaključivanje. TensorRT-LLM pakuje TensorRT-ov kompajler dubokog učenja i uključuje najnovije optimizovane kernele napravljene za najsavremenije implementacije FlashAttention-a i maskirane multi-head pažnje (MHA) za faze konteksta i generisanja izvršenja LLM modela.
Odavde, osnova AWS-a i njegova robusna integracija sa Kubernetesom omogućavaju nam da elastično skaliramo iznad stotina GPU-ova i minimizujemo prekid rada i mrežne troškove.
Slučaj upotrebe: Naš API u proizvodnji
pplx-api u Perplexity-ju: Smanjenje troškova i pouzdanost
Naš API već pokreće jednu od osnovnih funkcija Perplexity proizvoda. Samo prebacivanje jedne funkcije sa spoljnog API-ja na pplx-api rezultiralo je uštedom troškova od 0,62 miliona dolara godišnje, što je otprilike 4x smanjenje troškova. Radili smo A/B testove i nadgledali metrike infrastrukture kako bismo osigurali da nema degradacije kvaliteta. Tokom 2 nedelje nismo primetili statistički značajnu razliku u A/B testu. Pored toga, pplx-api bi mogao da izdrži dnevno opterećenje od preko milion zahteva, što ukupno iznosi skoro milijardu obrađenih tokena dnevno.
Rezultati ovog početnog istraživanja su vrlo ohrabrujući i očekujemo da će pplx-api pokretati više funkcija naših proizvoda tokom vremena.

Takođe koristimo pplx-api za napajanje Perplexity Labs, našeg okruženja za modele koje opslužuje različite open-source modele.

Naš tim je posvećen obezbeđivanju pristupa najnovijim najsavremenijim open-source LLM-ovima. Integrisali smo Mistral 7B, Code Llama 34b i sve Llama 2 modele u roku od nekoliko sati nakon njihovog objavljivanja, i planiramo da to učinimo kako sposobniji i open-source LLM-ovi postanu dostupni.
Započnite sa Perplexity-jevim AI API-jem
Možete pristupiti pplx-api REST API-ju koristeći HTTPS zahteve. Autentifikacija u pplx-api uključuje sledeće korake:
Generišite API ključ preko stranice sa postavkama Perplexity naloga. API ključ je dugotrajni pristupni token koji se može koristiti dok se ručno ne osveži ili izbriše.

Pošaljite API ključ kao bearer token u zaglavlju Authorization sa svakim pplx-api zahtevom.
U sledećem primeru, PERPLEXITY_API_KEY je sistemska promenljiva vezana za ključ generisan pomoću gornjih uputstava. CURL se koristi za podnošenje zahteva za chat završetak.
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 sledeći odgovor, sa content-type: application/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
}
}Evo primera Python poziva:
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 pogodno kompatibilan sa OpenAI klijentom radi lakše integracije sa postojećim aplikacijama.
Za više informacija posetite našu API dokumentaciju i Vodič za brzi početak.
Šta je sledeć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.
Namenska struktura API cena sa opštim pristupom nakon ukidanja javne beta verzije.
Perplexity RAG-LLM API sa uzemljenjem za činjenice i citate.
Obratite nam se na api@perplexity.ai ako ste zainteresovani za bilo koji od ovih slučajeva upotrebe.
Ovo je ujedno i početak naše serije objava na Perplexity blogu. U našoj sledećoj objavi podelićemo detaljnu analizu poređenja performansi A100 u odnosu na H100 za LLM zaključivanje. Pratite nas!
Zapošljavamo! Ako želite da radite na proizvodu primenjenom u velikom obimu i da gradite pažljivo dizajniranu, brižljivo optimizovanu generativnu infrastrukturu velikih jezičkih modela sa nama, molimo vas da nam se pridružite.
Pratite nas na Twitter-u, LinkedIn-u i pridružite se našem Discord-u za više rasprava.
Autori:
Lauren Yang, Kevin Hu, Aarash Heydari, William Zhang, Dmitry Pervukhin, Grigorii Alekseev, Alexandr Yarats
Privatnost podataka
Izabirom pplx-api-ja, možete da iskoristite pun potencijal LLM-ova uz očuvanje privatnosti i poverenja vaših korisnika i klijenata. Razumemo važnost zaštite vaših ličnih podataka i posvećeni smo održavanju bezbednosti i privatnosti naših korisnika. API podaci se automatski brišu nakon 30 dana i nikada ne vršimo obuku na bilo kojim podacima prenetim preko pplx-api-ja. Korisnici imaju opciju da isključe zadržavanje podataka u podešavanjima svog naloga. Pronađite našu politiku privatnosti API-ja ovde.