Vi introduserer pplx-api

Perplexity Labs raske og effektive API for LLM-er med åpen kildekode

Introducing pplx-api by Perplexity Labs

Merk følgende: Følgende har blitt avskrevet for gjeldende modeller. Lær mer om våre API-er

Vi er glade for å kunngjøre pplx-api, designet for å være en av de raskeste måtene å få tilgang til modellene Mistral 7B, Llama2 13B, Code Llama 34B, Llama2 70B og replit-code-v1.5-3b. pplx-api gjør det enkelt for utviklere å integrere banebrytende, åpen kildekode-LLM-er i sine prosjekter.

Vår pplx-api tilbyr:

Brukervennlighet: utviklere kan bruke toppmoderne modeller med åpen kildekode rett ut av esken og komme i gang i løpet av minutter med et kjent REST API.

Lynrask inferens: vårt nøye utformede inferenssystem er effektivt og oppnår opptil 2,9x lavere latens enn Replicate og 3,1x lavere latens enn Anyscale.

Kamptestet infrastruktur: pplx-api har vist seg å være pålitelig, og håndterer trafikk på produksjonsnivå i både vår Perplexity-svar-motor og vår Labs-lekeplass.

Alt-i-ett-sted for LLM-er med åpen kildekode: teamet vårt er dedikert til å legge til nye modeller med åpen kildekode etter hvert som de kommer. For eksempel la vi til Llama- og Mistral-modeller i løpet av få timer etter lansering uten forhåndsutgivelsestilgang.

pplx-api er i offentlig beta og er gratis for brukere med et Perplexity Pro-abonnement.

Bruk pplx-api til en uformell helgehackaton eller som en kommersiell løsning for å bygge nye og innovative produkter. Vi håper å lære hvordan folk kan bygge kule og innovative produkter med vårt API gjennom denne utgivelsen. Ta kontakt på api@perplexity.ai hvis du har et forretningsmessig bruksområde for pplx-api. Vi vil gjerne høre fra deg!

Fordeler med pplx-api

Brukervennlighet

LLM-distribusjon og -inferens krever betydelige infrastrukturelle tiltak for å gjøre modellservering ytelsesdyktig og kostnadseffektiv. Utviklere kan bruke API-et vårt rett ut av esken, uten dyp kunnskap om C++/CUDA eller tilgang til GPU-er, samtidig som de nyter godt av toppmoderne ytelse. Vår LLM-inferens abstraherer også kompleksiteten og nødvendigheten av å administrere din egen maskinvare, noe som øker brukervennligheten ytterligere.


Lynrask inferens

Perplexitys LLM API er nøye utformet og optimalisert for rask inferens. For å oppnå dette bygget vi en proprietær LLM-inferensinfrastruktur rundt NVIDIAs TensorRT-LLM som betjenes på A100 GPU-er levert av AWS. Les mer i seksjonen Oversikt over pplx-api-infrastruktur. Som et resultat er pplx-api en av de raskeste Llama- og Mistral-API-ene som er kommersielt tilgjengelige.

For å sammenligne med eksisterende løsninger sammenlignet vi latensen til pplx-api med andre LLM-inferensbiblioteker. I våre eksperimenter oppnår pplx-api opptil 2,92x raskere total latens sammenlignet med Text Generation Inference (TGI), og opptil 4,35x raskere innledende responslatens. For dette eksperimentet sammenlignet vi TGI og Perplexitys inferens for enkeltstrøms- og servertilfeller på 2 A100 GPU-er ved hjelp av en Llama-2-13B-chat-modell delt på begge GPU-ene. For enkeltstrømstilfellet behandler serveren én forespørsel etter den andre. I servertilfellet sender klienten forespørsler i henhold til en Poisson-fordeling med varierende forespørselsrater for å emulere en varierende belastning. For forespørselsraten utfører vi en liten sving opp til maksimalt 1 forespørsel / sekund, maksimal gjennomstrømning opprettholdt av TGI. Vi brukte data fra den virkelige verden med en variasjon av inn- og utdatatokenlengder for å simulere produksjonsadferd. Forespørslene har et gjennomsnitt på ~700 inndatatokene og ~550 utdatatokene.

Ved å bruke de samme inndataene og sende en enkelt strøm av forespørsler målte vi også gjennomsnittlig latens for Replicates og Anyscales API-er for den samme modellen for å samle en ytelsesgrunnlinje mot andre eksisterende API-er.

Perplexity Labs - Latens for første token
Perplexity Labs - Dekodingshastighet

Ved å bruke det samme eksperimentelle oppsettet sammenlignet vi maksimal gjennomstrømning for pplx-api mot TGI, med dekodingshastighet som en latensbegrensning. I våre eksperimenter behandler pplx-api tokens 1,90x-6,75x raskere enn TGI, og TGI klarer ikke å oppfylle våre strengere latensbegrensninger ved 60 og 80 tokens/sekund. Vi evaluerer TGI under de samme maskinvare- og lastforholdene som vi brukte til å evaluere pplx-api. Å sammenligne denne metrikken med Replicate og Anyscale er ikke mulig siden vi ikke kan kontrollere deres maskinvare- og lastfaktorer.

Til sammenligning er den gjennomsnittlige menneskelige lesehastigheten 5 tokens/sekund, noe som betyr at pplx-api er i stand til å betjene med en rate som er raskere enn man kan lese.

Perplexity Labs - Token-gjennomstrømning per GPU

Oversikt over pplx-api-infrastruktur

For å oppnå disse latenstallene kreves en kombinasjon av banebrytende programvare og maskinvare.

AWS p4d-forekomster drevet av NVIDIA A100 GPU-er danner grunnlaget som det mest kostnadseffektive og pålitelige alternativet for å skalere ut GPU-er med klasseledende klokkehastigheter.

For at programvare skal utnytte denne maskinvaren, kjører vi NVIDIAs TensorRT-LLM, et åpen kildekode-bibliotek som akselererer og optimaliserer LLM-inferens. TensorRT-LLM omslutter TensorRTs dypbrukskompilator og inkluderer de nyeste optimaliserte kjernene laget for banebrytende implementeringer av FlashAttention og maskert multi-head-oppmerksomhet (MHA) for kontekst- og genereringsfasene i LLM-modellutførelse.

Herfra gir ryggraden i AWS og dens robuste integrasjon med Kubernetes oss mulighet til å skalere elastisk utover hundrevis av GPU-er og minimere nedetid og nettverksoverhode.

Bruksområde: Vårt API i produksjon

pplx-api i Perplexity: Kostnadsreduksjon og pålitelighet

API-et vårt driver allerede en av Perplexitys kjernefunksjoner. Bare det å bytte en enkelt funksjon fra et eksternt API til pplx-api resulterte i kostnadsbesparelser på $0,62M/år, omtrent en 4x reduksjon i kostnader. Vi kjørte A/B-tester og overvåket infrastrukturmetrikker for å sikre ingen kvalitetsforringelse. Over en periode på 2 uker observerte vi ingen statistisk signifikant forskjell i A/B-testen. I tillegg kunne pplx-api opprettholde en daglig belastning på over én million forespørsler, totalt nesten én milliard behandlede tokens daglig.

Resultatene av denne første utforskningen er svært oppmuntrende, og vi forventer at pplx-api vil drive flere av produktfunksjonene våre over tid.

pplx-api i Perplexity Labs: Økosystem for inferens med åpen kildekode

Vi bruker også pplx-api til å drive Perplexity Labs, vår modell-lekeplass som betjener ulike modeller med åpen kildekode.

Gjennomsnittlig antall serverte tokens per dag

Teamet vårt er forpliktet til å gi tilgang til de nyeste toppmoderne LLM-ene med åpen kildekode. Vi integrerte Mistral 7B, Code Llama 34b og alle Llama 2-modeller i løpet av få timer etter lanseringen, og planlegger å gjøre det samme etter hvert som mer kapable LLM-er med åpen kildekode blir tilgjengelige.

Kom i gang med Perplexitys AI API

Du kan få tilgang til pplx-api REST API ved hjelp av HTTPS-forespørsler. Autentisering i pplx-api innebærer følgende trinn:

Generer en API-nøkkel gjennom Perplexity-kontoinnstillingene. API-nøkkelen er et langlivet tilgangstoken som kan brukes til det manuelt oppdateres eller slettes.

Send API-nøkkelen som et bæretoken (bearer token) i Authorization-hoderen med hver pplx-api-forespørsel.

I følgende eksempel er PERPLEXITY_API_KEY en miljøvariabel bundet til en nøkkel generert ved hjelp av instruksjonene ovenfor. CURL brukes til å sende en chat-fullføringsforespørsel.

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

Noe som gir følgende respons, med 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 } }

Her er et eksempel på et Python-kall:

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)

Vi støtter for øyeblikket Mistral 7B, Llama 13B, Code Llama 34B, Llama 70B, og API-et er praktisk nok kompatibelt med OpenAI-klienten for enkel integrasjon med eksisterende applikasjoner.

For mer informasjon, vennligst besök vår API-dokumentasjon og hurtigstartveiledning.

Hva er det neste

I nær fremtid vil pplx-api støtte:

Tilpassede Perplexity-LLM-er og andre LLM-er med åpen kildekode.

Tilpassede Perplexity-innebygninger og innebygninger med åpen kildekode.

Dedikert API-prisstruktur med generell tilgang etter at offentlig beta er faset ut.

Perplexity RAG-LLM API med jording for fakta og siteringer.

Ta kontakt på api@perplexity.ai hvis du er interessert i noen av disse bruksområdene.

Dette er også starten på vår Perplexity-blogginnleggsserie. I vårt neste innlegg vil vi dele en dypdykk i sammenligning av A100 vs H100-ytelse for LLM-inferens. Følg med!

Vi ansetter! Hvis du ønsker å jobbe med et produkt distribuert i en enorm skala og bygge omhyggelig utformede, nøye optimaliserte generative og store språkmodellinfrastrukturer med oss, vennligst bli med oss.

Følg oss på Twitter, LinkedIn og bli med i vår Discord for mer diskusjon.

Forfattere:

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

Datapersonvern

Ved å velge pplx-api kan du utnytte det fulle potensialet til LLM-er samtidig som du beskytter personvernet og tilliten til brukerne og kundene dine. Vi forstår viktigheten av å beskytte din personlige informasjon og er forpliktet til å opprettholde sikkerheten og personvernet til brukerne våre. API-data slettes automatisk etter 30 dager, og vi trener aldri på data som overføres via pplx-api. Brukere har muligheten til å velge bort datalagring i kontoinnstillingene sine. Finn våre API-retningslinjer for personvern her.