A pplx-api bemutatása
A Perplexity Labs gyors és hatékony API-ja a nyílt forráskódú LLM-ekhez

Figyelem: Az alábbi modellek elavultak a jelenlegi modellekhez képest. Tudjon meg többet az API-król
Örömmel mutatjuk be a pplx-api-t, amelyet úgy terveztünk, hogy az egyik leggyorsabb módja legyen a Mistral 7B, Llama2 13B, Code Llama 34B, Llama2 70B, replit-code-v1.5-3b modellek elérésének. A pplx-api megkönnyíti a fejlesztők számára a legkorszerűbb nyílt forráskódú LLM-ek integrálását a projektjeikbe.
A pplx-api a következőket nyújtja:
Egyszerű használat: a fejlesztők azonnal használhatják a legkorszerűbb nyílt forráskódú modelleket, és percek alatt elkezdhetik a munkát egy ismerős REST API segítségével.
Rendkívül gyors következtetés: gondosan megtervezett következtetési rendszerünk hatékony, és akár 2,9-szer kisebb késleltetést ér el, mint a Replicate, és 3,1-szer kisebbet, mint az Anyscale.
Bizonyítottan megbízható infrastruktúra: a pplx-api megbízhatónak bizonyult, éles szintű forgalmat kiszolgálva mind a Perplexity válaszadó motorunkban, mind a Labs tesztkörnyezetünkben.
Egyablakos ügyfélszolgálat a nyílt forráskódú LLM-ekhez: csapatunk elkötelezett az új nyílt forráskódú modellek hozzáadása mellett, amint azok megérkeznek. Például a Llama és Mistral modelleket a bevezetésük utáni néhány órán belül hozzáadtuk, előzetes hozzáférés nélkül.
A pplx-api nyilvános béta fázisban van, és ingyenes a Perplexity Pro előfizetéssel rendelkező felhasználók számára.
Használja a pplx-api-t egy kötetlen hétvégi hackathonhoz vagy kereskedelmi megoldásként új és innovatív termékek felépítéséhez. Reméljük, hogy ezen kiadás révén megtudhatjuk, hogyan építhetnek az emberek klassz és innovatív termékeket az API-nkkal. Kérjük, vegye fel velünk a kapcsolatot az api@perplexity.ai címen, ha van üzleti felhasználási esete a pplx-api-hoz. Örömmel hallunk felőle!
A pplx-api előnyei
Egyszerű használat
Az LLM üzembe helyezése és következtetése jelentős infrastruktúra-fejlesztést igényel a modellkiszolgálás teljesítményének és költséghatékonyságának biztosításához. A fejlesztők azonnal, dobozból kikerülve használhatják az API-nkat, mély C++/CUDA ismeretek vagy GPU-k elérése nélkül, miközben továbbra is élvezik a legkorszerűbb teljesítményt. Az LLM-következtetésünk emellett absztrahálja a saját hardver kezelésének összetettégét és szükségességét, tovább növelve a használat egyszerűségét.
Rendkívül gyors következtetés
A Perplexity LLM API-ját gondosan tervezték és optimalizálták a gyors következtetés érdekében. Ennek elérése érdekében egy saját tulajdonú LLM-következtetési infrastruktúrát építettünk fel az NVIDIA TensortRT-LLM köré, amelyet az AWS által biztosított A100 GPU-k szolgálnak ki. Tudjon meg többet az A pplx-api infrastruktúra áttekintése szakaszban. Ennek eredményeként a pplx-api az egyik leggyorsabb kereskedelmi forgalomban kapható Llama és Mistral API.
A meglévő megoldásokkal való összehasonlítás érdekében összehasonlítottuk a pplx-api késleltetését más LLM-következtetési könyvtárakéval. Kísérleteink során a pplx-api akár 2,92-szer gyorsabb általános késleltetést ér el a Text Generation Inference-szel (TGI) összehasonlítva, és akár 4,35-szer gyorsabb kezdeti válaszkésleltetést. Ehhez a kísérlethez összehasonlítottuk a TGI-t és a Perplexity következtetését egyes adatfolyamú és szerverforgatókönyveken 2 db A100 GPU-n, mindkét GPU-n megosztott Llama-2-13B-chat modellt használva. Az egyes adatfolyamú forgatókönyv esetén a szerver az egyik kérést a másik után dolgozza fel. A szerverforgatókönyvben a kliens Poisson-eloszlás szerint küld kéréseket változó kérésszámmal a változó terhelés emulálásához. A kéréssebességhez egy kis söprést hajtunk végre legfeljebb 1 kérés/másodperc sebességig, amely a TGI által fenntartott maximális átviteli sebesség. Valós adatokat használtunk különböző bemeneti és kimeneti tokenhosszúságokkal a termelési viselkedés szimulálásához. A kérések átlagosan ~700 bemeneti tokent és ~550 kimeneti tokent tartalmaznak.
Ugyanezeket a bemeneteket használva és egyetlen kérésfolyamot küldve, megmértük a Replicate és az Anyscale API-k átlagos késleltetését ugyanehhez a modellhez, hogy teljesítményalapot hozzunk létre más meglévő API-kkal szemben.


Ugyanezt a kísérleti beállítást használva összehasonlítottuk a pplx-api maximális átviteli sebességét a TGI-vel, a dekódolási sebességet késleltetési korlátként használva. Kísérleteink során a pplx-api 1,90x-6,75x-szer gyorsabban dolgozza fel a tokeneket, mint a TGI, és a TGI teljesen képtelen megfelelni szigorúbb késleltetési korlátainknak 60 és 80 token/másodperc sebességnél. A TGI-t ugyanolyan hardver- és terhelési feltételek mellett értékeljük, amelyeket a pplx-api értékeléséhez használtunk. Ennek a metrikának az összehasonlítása a Replicate-tel és az Anyscale-lel nem lehetséges, mivel nem tudjuk ellenőrizni a hardver- és terhelési tényezőiket.
Referenciaként az átlagos emberi olvasási sebesség 5 token/másodperc, ami azt jelenti, hogy a pplx-api gyorsabban képes kiszolgálni, mint amennyit olvasni lehet.

A pplx-api infrastruktúra áttekintése
Ezeknek a késleltetési értékeknek eléréséhez a legkorszerűbb szoftverek és hardverek kombinációja szükséges.
Az NVIDIA A100 GPU-k által hajtott AWS p4d-példányok jelentenék a legköltséghatékonyabb és legmegbízhatóbb opciót a GPU-k kiterjesztéséhez kategóriájuk legjobb órajeleivel.
Ahhoz, hogy a szoftver ki tudja használni ezt a hardvert, futtatjuk az NVIDIA TensorRT-LLM-et, egy nyílt forráskódú könyvtárat, amely felgyorsítja és optimalizálja az LLM-következtetést. A TensorRT-LLM magába foglalja a TensorRT mély tanulási fordítóját, és tartalmazza a legújabb optimalizált kerneleket, amelyek az LLM-modell végrehajtásának kontextus- és generálási fázisaihoz készült FlashAttention és maszkolt többfejű figyelem (MHA) legkorszerűbb megvalósításaihoz készültek.
Innen az AWS gerince és a Kubernetes-szel való robusztus integrációja arra ösztönöz minket, hogy rugalmasan skálázzunk több száz GPU-n túlra, és minimalizáljuk az állásidőt és a hálózati többletterhelést.
Használati eset: Az API-nk a termelésben
pplx-api a Perplexityben: Költségcsökkentés és megbízhatóság
Az API-nk már most is a Perplexity egyik alapvető termékfunkcióját hajtja. Csak egyetlen funkció külső API-ról pplx-api-ra történő átállítása 0,62 millió dollár/év költségmegtakarítást eredményezett, ami körülbelül négyszeres költségcsökkentést jelent. A/B teszteket futtattunk, és figyeltük az infrastruktúra metrikáit, hogy biztosítsuk a minőség romlásának elkerülését. 2 hét alatt nem figyeltünk meg statisztikailag szignifikáns különbséget az A/B tesztben. Ezenkívül a pplx-api képes fenntartani a napi több mint egymillió kérést, ami naponta szinte egymilliárd feldolgozott tokent tesz ki.
Ennek a kezdeti felfedezésnek az eredményei nagyon bátorítóak, és arra számítunk, hogy a pplx-api idővel még több termékfunkciónkat fogja hajtani.

A pplx-api-t arra is használjuk, hogy meghajtsuk a Perplexity Labs-t, a különféle nyílt forráskódú modelleket kiszolgáló modell tesztkörnyezetünket.

Csapatunk elkötelezett amellett, hogy hozzáférést biztosítson a legújabb, legkorszerűbb, nyílt forráskódú LLM-ekhez. A Mistral 7B-t, a Code Llama 34b-t és az összes Llama 2 modellt a megjelenésük után néhány órával integráltuk, és ezt tervezzük tenni a további képesebb és nyílt forráskódú LLM-ek elérhetővé válásakor is.
Kezdje el a Perplexity AI API használatát
A pplx-api REST API-t HTTPS-kérések használatával érheti el. A pplx-api-ba való hitelesítés a következő lépésekből áll:
Generáljon egy API-kulcsot a Perplexity fiókbeállítások oldalán keresztül. Az API-kulcs egy hosszú élettartamú hozzáférési token, amely amilyen kézzel nem frissül vagy törlődik, addig használható.

Küldje el az API-kulcsot bearer tokenként az Authorization fejlécben minden egyes pplx-api kéréssel.
A következő példában a PERPLEXITY_API_KEY egy környezeti változó, amely egy a fenti utasítások alapján generált kulcshoz van kötve. A CURL egy csevegés-befejezési kérés benyújtására szolgál.
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?"
}
]
}'Ez a következő választ eredményezi, amelynek tartalomtípusa: 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
}
}Íme egy példa Python-hívásra:
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)Jelenleg a Mistral 7B, Llama 13B, Code Llama 34B, Llama 70B modelleket támogatjuk, és az API kényelmesen OpenAI kliens-kompatibilis a meglévő alkalmazásokkal való egyszerű integráció érdekében.
További információkért kérjük, látogasson el az API dokumentációnkba és a Gyorsindítási útmutatónkba.
Mi a következő lépés
A közeljövőben a pplx-api támogatni fogja:
Egyéni Perplexity LLM-eket és más nyílt forráskódú LLM-eket.
Egyéni Perplexity beágyazásokat és nyílt forráskódú beágyazásokat.
Dedikált API árazási struktúra általános hozzáféréssel a nyilvános béta fázis kivezetése után.
Perplexity RAG-LLM API tények és hivatkozások megalapozásával.
Vegye fel a kapcsolatot az api@perplexity.ai címen, ha felkeltettük érdeklődését valamelyik felhasználási eset.
Ez egyben a Perplexity Blog bejegyzéssorozatunk kezdete is. Következő bejegyzésünkben mélyreható elemzést osztunk meg az A100 és H100 teljesítményének összehasonlításáról az LLM-következtetéshez. Kövessen minket!
Munkatársakat keresünk! Ha hatalmas skálán bevetett terméken szeretne dolgozni, és velünk szeretne gondosan megtervezett, körültekintően optimalizált generatív és nagy nyelvi modell-infrastruktúrát építeni, kérjük, csatlakozzon hozzánk.
Kövessen minket a Twitteren, a LinkedInen, és csatlakozzon a Discord csatornánkhoz a további megbeszélésekhez.
Szerzők:
Lauren Yang, Kevin Hu, Aarash Heydari, William Zhang, Dmitry Pervukhin, Grigorii Alekseev, Alexandr Yarats
Adatvédelem
A pplx-api kiválasztásával teljesen kiaknázhatja az LLM-ekben rejlő potenciált, miközben óvja a felhasználói és az ügyfelei magánéletét és bizalmát. Megértjük a személyes adatai védelmének fontosságát, és elkötelezettek vagyunk felhasználóink biztonságának és adatvédelmének fenntartása mellett. Az API-adatok 30 nap elteltével automatikusan törlődnek, és soha nem tanítunk semmilyen adatot a pplx-api-n keresztül továbbított adatokon. A felhasználóknak lehetőségük van letiltani az adatmegőrzést a fiókbeállításaikban. Itt találja meg az API adatvédelmi irányelveit.