A pplx-api bemutatása

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

Introducing pplx-api by Perplexity Labs

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.

Perplexity Labs – Első token késleltetése
Perplexity Labs – Dekódolási sebesség

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.

Perplexity Labs – Tokenek áteresztőképessége GPU-nként

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.

pplx-api a Perplexity Labsben: Nyílt forráskódú következtetési ökoszisztéma

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.

Napi átlagos kiszolgált token

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.

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

Ez a következő választ eredményezi, amelynek tartalomtípusa: 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 } }

Íme egy példa Python-hívásra:

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)

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.