Iepazīstinām ar pplx-api

Perplexity Labs ātrā un efektīvā API atvērtā pirmkoda LLM

Introducing pplx-api by Perplexity Labs

Lūdzu, ņemiet vērā: tālāk norādītie elementi pašreizējiem modeļiem ir novecojuši. Uzziniet vairāk par mūsu API

Ar prieku paziņojam par pplx-api izlaišanu, kas ir izstrādāta kā viens no ātrākajiem veidiem, kā piekļūt Mistral 7B, Llama2 13B, Code Llama 34B, Llama2 70B, replit-code-v1.5-3b modeļiem. pplx-api ļauj izstrādātājiem viegli integrēt modernākos atvērtā pirmkoda LLM savos projektos.

Mūsu pplx-api nodrošina:

Vienkārša lietošana: izstrādātāji var izmantot jaunākos atvērtā pirmkoda modeļus uzreiz pēc to iegādes un sākt darbu dažu minūšu laikā, izmantojot pazīstamu REST API.

Zibenīgi ātra secināšana: mūsu rūpīgi izstrādātā secināšanas sistēma ir efektīva un sasniedz līdz pat 2,9 reizēm mazāku latentumu nekā Replicate un 3,1 reizi mazāku latentumu nekā Anyscale.

Pārbaudīta infrastruktūra: ir pierādīts, ka pplx-api ir uzticama, apkalpojot ražošanas līmeņa datplūsmu gan mūsu Perplexity atbilžu dzinējā, gan Labs izstrādes vidē.

Viena pieturas aģentūra atvērtā pirmkoda LLM: mūsu komanda ir apņēmusies pievienot jaunus atvērtā pirmkoda modeļus, tiklīdz tie kļūst pieejami. Piemēram, mēs pievienojām Llama un Mistral modeļus dažu stundu laikā pēc to palaišanas bez iepriekšējas piekļuves pirmslaika versijām.

pplx-api ir publiskajā beta versijā un ir bezmaksas lietotājiem ar Perplexity Pro abonementu.

Izmantojiet pplx-api ikdienas nedēļas nogales hakatonam vai kā komerciālu risinājumu jaunu un novatorisku produktu izveidei. Mēs ceram uzzināt, kā cilvēki var izveidot lieliskus un novatoriskus produktus ar mūsu API, izmantojot šo laidienu. Lūdzu, sazinieties ar api@perplexity.ai, ja jums ir biznesa lietošanas gadījums pplx-api. Mēs labprāt uzklausīsim jūs!

pplx-api priekšrocības

Vienkārša lietošana

LLM ieviešana un secināšana prasa ievērojamus infrastruktūras pasākumus, lai modeļu apkalpošana būtu efektīva un izmaksu ziņā izdevīga. Izstrādātāji var izmantot mūsu API uzreiz pēc instalēšanas, bez padziļinātām C++/CUDA zināšanām vai piekļuves GPU, vienlaikus baudot vismodernāko veiktspēju. Mūsu LLM secināšana arī atbrīvo no sarežģītības un nepieciešamības pārvaldīt savu aparatūru, vēl vairāk atvieglojot lietošanu.


Zibenīgi ātra secināšana

Perplexity LLM API ir rūpīgi izstrādāta un optimizēta ātrai secināšanai. Lai to panāktu, mēs izveidojām patentētu LLM secināšanas infrastruktūru, kuras pamatā ir NVIDIA TensorRT-LLM un kura tiek darbināta uz A100 GPU, ko nodrošina AWS. Uzziniet vairāk sadaļā Pārsats par pplx-api infrastruktūru. Tā rezultātā pplx-api ir viena no ātrākajām Llama un Mistral API, kas pieejamas tirdzniecībā.

Lai veiktu salīdzinājumu ar esošajiem risinājumiem, mēs salīdzinājām pplx-api latentumu ar citām LLM secināšanas bibliotēkām. Mūsu eksperimentos pplx-api sasniedz līdz pat 2,92 reizes lielāku kopējo latentumu salīdzinājumā ar Text Generation Inference (TGI) un līdz pat 4,35 reizes ātrāku sākotnējās atbildes latentumu. Šim eksperimentam mēs salīdzinājām TGI un Perplexity secināšanu viena straumes un servera scenārijiem uz 2 A100 GPU, izmantojot Llama-2-13B-chat modeli, kas sadalīts starp abiem GPU. Viena straumes scenārijam serveris apstrādā vienu pieprasījumu pēc otra. Servera scenārijā klients nosūta pieprasījumus saskaņā ar Puasona sadalījumu ar dažādiem pieprasījumu tarifiem, lai atdarinātu mainīgu slodzi. Pieprasījuma likmei mēs veicam nelielu slaucīšanu līdz maksimāli 1 pieprasījumam sekundē, kas ir maksimālā caurlaide, ko uztur TGI. Mēs izmantojām reālās pasaules datus ar dažādu ievades un izvades tokenu garumu, lai simulētu ražošanas uzvedību. Pieprasījumi vidēji aizņem ~700 ievades tokenus un ~550 izvades tokenus.

Izmantojot tās pašas ievades un nosūtot vienu pieprasījumu plūsmu, mēs izmērījām arī Replicate un Anyscale API vidējo latentumu šim pašam modelim, lai izveidotu veiktspējas bāzes līniju salīdzinājumā ar citām esošajām API.

Perplexity Labs — pirmā tokena latentums
Perplexity Labs — dekodēšanas ātrums

Izmantojot to pašu eksperimentālo iestatījumu, mēs salīdzinājām pplx-api maksimālo caurlaidību ar TGI, izmantojot dekodēšanas ātrumu kā latentuma ierobežojumu. Mūsu eksperimentos pplx-api apstrādā tokenus 1,90x-6,75x ātrāk nekā TGI, un TGI pilnībā nespēj izpildīt mūsu stingrākos latentuma ierobežojumus pie 60 un 80 tokeniem sekundē. Mēs novērtējam TGI tādos pašos aparatūras un slodzes apstākļos, kādus izmantojām pplx-api novērtēšanai. Šo metriku nav iespējams salīdzināt ar Replicate un Anyscale, jo mēs nevaram kontrolēt to aparatūras un slodzes faktorus.

Uzziņai, vidējais cilvēka lasīšanas ātrums ir 5 tokeni sekundē, kas nozīmē, ka pplx-api spēj apkalpot ātrāk, nekā var izlasīt.

Perplexity Labs — tokenu caurlaidība uz vienu GPU

Pārskats par pplx-api infrastruktūru

Lai sasniegtu šos latentuma rādītājus, ir nepieciešama mūsdienīgas programmatūras un aparatūras kombinācija.

AWS p4d instances, ko darbina NVIDIA A100 GPU, ir visefektīvākā un uzticamākā iespēja GPU mērogošanai ar savā klasē labākajiem takts frekvencēm.

Lai programmatūra varētu izmantot šo aparatūru, mēs izmantojam NVIDIA TensorRT-LLM — atvērtā pirmkoda bibliotēku, kas paātrina un optimizē LLM secināšanu. TensorRT-LLM ietver TensorRT dziļās mācīšanās kompilatoru un jaunākos optimizētos kodolus, kas izveidoti modernām FlashAttention un maskētas vairāku galviņu uzmanības (MHA) implementācijām LLM modeļa izpildes konteksta un ģenerēšanas fāzēm.

No šī punkta AWS mugurkauls un tā spēcīgā integrācija ar Kubernetes dod mums iespēju elastīgi mērogot vairāk nekā simtiem GPU un samazināt dīkstāvi un tīkla pieskaitāmās izmaksas.

Lietošanas gadījums: mūsu API ražošanā

pplx-api pakalpojumā Perplexity: izmaksu samazināšana un uzticamība

Mūsu API jau darbina vienu no Perplexity galvenajām produkta funkcijām. Vienkārša vienas funkcijas pārslēgšana no ārējās API uz pplx-api nodrošināja izmaksu ietaupījumu 0,62 miljonu ASV dolāru apmērā gadā, kas ir aptuveni 4 reižu izmaksu samazinājums. Mēs veicām A/B testus un uzraudzījām infrastruktūras metriku, lai nodrošinātu, ka kvalitāte nepasliktinās. 2 nedēļu laikā mēs novērojām statistiski nozīmīgas atšķirības trūkumu A/B testā. Turklāt pplx-api varēja uzturēt ikdienas slodzi, kas pārsniedz vienu miljonu pieprasījumu, kopumā katru dienu apstrādājot gandrīz vienu miljardu tokenu.

Šīs sākotnējās izpētes rezultāti ir ļoti iepriecinoši, un mēs paredzam, ka pplx-api laika gaitā nodrošinās vairāk mūsu produktu funkciju.

pplx-api pakalpojumā Perplexity Labs: atvērtā pirmkoda secināšanas ekosistēma

Mēs izmantojam arī pplx-api, lai darbinātu Perplexity Labs — mūsu modeļu rotaļu laukumu, kurā tiek apkalpoti dažādi atvērtā pirmkoda modeļi.

Vidējais katru dienu apkalpoto tokenu skaits

Mūsu komanda ir apņēmusies nodrošināt piekļuvi jaunākajiem modernākajiem atvērtā pirmkoda LLM. Mēs integrējām Mistral 7B, Code Llama 34b un visus Llama 2 modeļus dažu stundu laikā pēc to izlaišanas un plānojam to darīt, kad būs pieejami jaudīgāki un atvērtā pirmkoda LLM.

Sāciet darbu ar Perplexity AI API

Varat piekļūt pplx-api REST API, izmantojot HTTPS pieprasījumus. Autentifikācija pplx-api ietver šādas darbības:

Ģenerējiet API atslēgu, izmantojot Perplexity konta iestatījumu lapu. API atslēga ir ilgmūžīgs piekļuves tokens, ko var izmantot, līdz tas tiek manuāli atjaunināts vai dzēsts.

Nosūtiet API atslēgą kā nesēja tokenu (bearer token) Authorization galvenē ar katru pplx-api pieprasījumu.

Šajā piemērā PERPLEXITY_API_KEY ir vides mainīgais, kas piesaistīts atslēgai, kas ģenerēta, izmantojot iepriekš sniegtos norādījumus. CURL tiek izmantots, lai iesniegtu tērzēšanas pabeigšanas pieprasījumu.

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

Tas dod šādu atbildi, kurai ir 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 } }

Šeit ir Python izsaukuma piemērs:

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)

Mēs pašlaik atbalstām Mistral 7B, Llama 13B, Code Llama 34B, Llama 70B, un API ir ērti savietojama ar OpenAI klientu vieglai integrācijai ar esošajām lietojumprogrammām.

Papildinformāciju skatiet mūsu API dokumentācijā un Ātrā darba sākšanas ceļvedī.

Kas tālāk

Tuvākajā nākotnē pplx-api atbalstīs:

Pielāgoti Perplexity LLM un citi atvērtā pirmkoda LLM.

Pielāgoti Perplexity iegulījumi un atvērtā pirmkoda iegulījumi.

Īpaša API cenu noteikšanas struktūra ar vispārēju piekļuvi pēc publiskās beta versijas beigām.

Perplexity RAG-LLM API ar pamatojumu faktiem un atsaucēm.

Sazinieties ar api@perplexity.ai, ja jūs interesē kāds no šiem lietošanas gadījumiem.

Šis ir arī mūsu Perplexity emuāra ierakstu sērijas sākums. Nākamajā ierakstā mēs dalīsimies ar padziļinātu A100 un H100 veiktspējas salīdzinājumu LLM secināšanai. Sekojiet līdzi jaunumiem!

Mēs pieņemam darbā! Ja vēlaties strādāt pie produktiem, kas izvietoti masveidā, un kopā ar mums izveidot rūpīgi izstrādātu, optimizētu ģeneratīvo un lielo valodas modeļu infrastruktūru, lūdzu, pievienojieties mums.

Sekojiet mums Twitter, LinkedIn un pievienojieties mūsu Discord, lai iesaistītos plašākās diskusijās.

Autori:

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

Datu privātums

Izvēloties pplx-api, varat izmantot visu LLM potenciālu, vienlaikus aizsargājot savu lietotāju un klientu privātumu un uzticību. Mēs saprotam personiskās informācijas aizsardzības svarīgumu un esam apņēmušies uzturēt mūsu lietotāju drošību un privātumu. API dati tiek automātiski dzēsti pēc 30 dienām, un mēs nekad neveicam apmācību ar datiem, kas pārsūtīti, izmantojot pplx-api. Lietotājiem ir iespēja atteikties no datu saglabāšanas savos konta iestatījumos. Mūsu API privātuma politiku varat atrast šeit.