Pristatome pplx-api
„Perplexity Labs“ greita ir efektyvi API atvirojo kodo LLM

Atkreipkite dėmesį: toliau nurodyti modeliai dabartiniams modeliams nebetaikomi. Sužinokite daugiau apie mūsų API
Džiaugiamės galėdami pranešti apie pplx-api – tai vienas greičiausių būdų pasiekti Mistral 7B, Llama2 13B, Code Llama 34B, Llama2 70B, replit-code-v1.5-3b modelius. Naudodamiesi pplx-api kūrėjai gali lengvai integruoti pažangiausius atvirojo kodo LLM į savo projektus.
Mūsų pplx-api siūlo:
Paprasta naudoti: kūrėjai gali naudotis pažangiausiais atvirojo kodo modeliais iš karto ir per kelias minutes pradėti darbą naudodami įprastą REST API.
Itin greitas duomenų apdorojimas: mūsų kruopščiai sukurta išvedimo sistema yra efektyvi ir užtikrina iki 2,9 karto mažesnę delstą nei „Replicate“ ir 3,1 karto mažesnę delstą nei „Anyscale“.
Praktikoje išbandyta infrastruktūra: įrodyta, kad pplx-api yra patikima ir aptarnauja gamybinio lygio srautą tiek mūsų Perplexity atsakymų variklyje, tiek Labs testavimo aplinkoje.
Vieno langelio principas atvirojo kodo LLM: mūsų komanda yra pasiryžusi pridėti naujus atvirojo kodo modelius jiems pasirodžius. Pavyzdžiui, „Llama“ ir „Mistral“ modelius pridėjome per kelias valandas nuo jų paleidimo be išankstinės prieigos.
pplx-api veikia viešojo bandomojo verslo (beta) režimu ir yra nemokama vartotojams, turintiems Perplexity Pro prenumeratą.
Naudokite pplx-api įprastam savaitgalio hakatonui arba kaip komercinį sprendimą naujiems ir novatoriškiems produktams kurti. Tikimės sužinoti, kaip žmonės gali sukurti šaunius ir novatoriškus produktus naudodami mūsų API po šio leidimo. Jei turite verslo poreikį, susijusį su pplx-api, susisiekite adresu api@perplexity.ai . Mums būtų malonu iš Jūsų išgirsti!
pplx-api privalumai
Paprasta naudoti
LLM diegimui ir išvedimui reikalingos didelės infrastruktūros pajėgos, kad modelio veikimas būtų našus ir ekonomiškas. Kūrėjai gali naudotis mūsų API iš karto, be gilių C++/CUDA žinių ar prieigos prie GPU, kartu mėgaudamiesi pažangiausiu veikimu. Mūsų LLM išvedimas taip pat pašalina aparatinės įrangos valdymo sudėtingumą ir būtinybę, taip dar labiau palengvindamas naudojimą.
Itin greitas išvedimas
„Perplexity“ LLM API yra kruopščiai sukurta ir optimizuota greitam išvedimui. Tam pasiekti sukūrėme nuosavą LLM išvedimo infrastruktūrą, paremtą NVIDIA TensorRT-LLM, kuri veikia AWS teikiamuose A100 GPU. Daugiau sužinokite skyriuje pplx-api infrastruktūros apžvalga. Dėl to pplx-api yra viena greičiausių komerciniu mastu prieinamų „Llama“ ir „Mistral“ API.
Kad galėtume palyginti su esamais sprendimais, palyginome pplx-api ir kitų LLM išvedimo bibliotekų delstą. Mūsų eksperimentų metu pplx-api užtikrina iki 2,92 karto mažesnę bendrą delstą lyginant su „Text Generation Inference“ (TGI) ir iki 4,35 karto mažesnę pradinio atsakymo delstą. Šiam eksperimentui palyginome TGI ir „Perplexity“ išvedimą vieno srauto ir serverio scenarijams naudojant 2 A100 GPU su „Llama-2-13B-chat“ modeliu, padalintu tarp abiejų GPU. Vieno srauto scenarijuje serveris apdoroja vieną užklausą po kitos. Serverio scenarijuje klientas siunčia užklausas pagal Puasono skirstinį su kintamu užklausų dažniu, kad būtų imituojama kintama apkrova. Užklausų dažniui atliekame nedidelį patikrinimą iki ne daugiau kaip 1 užklausos per sekundę – tai maksimalus TGI palaikomas pralaidumas. Naudojome realaus pasaulio duomenis su įvairiais įvesties ir išvesties žetonų ilgiais, kad imituotume gamybinį elgesį. Užklausų vidurkis yra ~700 įvesties žetonų ir ~550 išvesties žetonų.
Naudodami tuos pačius įvesties duomenis ir siųsdami vieną užklausų srautą, taip pat išmatavome „Replicate“ ir „Anyscale“ API vidutinę delstą tam pačiam modeliui, kad gautume našumo pagrindą lyginant su kitomis esamomis API.
Naudodami tą pačią eksperimentinę sąranką, palyginome maksimalų pplx-api pralaidumą su TGI, kaip delstos apribojimą naudodami dekodavimo greitį. Mūsų eksperimentų metu pplx-api apdoroja žetonus 1,90–6,75 karto greičiau nei TGI, o TGI visiškai nesugeba patenkinti mūsų griežtesnių delstos apribojimų esant 60 ir 80 žetonų per sekundę. Vertiname TGI tomis pačiomis aparatinės įrangos ir apkrovos sąlygomis, kurias naudojome vertindami pplx-api. Šio rodiklio palyginti su „Replicate“ ir „Anyscale“ neįmanoma, nes negalime valdyti jų aparatinės įrangos ir apkrovos veiksnių.
Nuorodai: vidutinis žmogaus skaitymo greitis yra 5 žetonai per sekundę, o tai reiškia, kad pplx-api gali aptarnauti greičiau, nei galima perskaityti.
pplx-api infrastruktūros apžvalga
Norint pasiekti šiuos delstos rodiklius, reikalingas pažangiausios programinės ir aparatinės įrangos derinys.
AWS p4d egzemplioriai, kuriuos palaiko NVIDIA A100 GPU, yra ekonomiškiausias ir patikimiausias pasirinkimas plečiant GPU mastelį su geriausiu savo klasėje taktiniu dažniu.
Kad programinė įranga galėtų išnaudoti šią aparatinę įrangą, paleidžiame NVIDIA „TensorRT-LLM“ – atvirojo kodo biblioteką, kuri pagreitina ir optimizuoja LLM išvedimą. „TensorRT-LLM“ apgaubia „TensorRT“ giliojo mokymosi kompiliatorių ir apima naujausius optimizuotus branduolius, sukurtus pažangiam „FlashAttention“ ir užmaskuoto daugiagalvio dėmesio (MHA) įgyvendinimui LLM modelio vykdymo konteksto ir generavimo fazėms.
Nuo čia AWS pagrindas ir jo tvirta integracija su „Kubernetes“ įgalina mus elastiškai plėstis virš šimtų GPU ir sumažinti prastovas bei tinklo sąnaudas.
Naudojimo atvejas: Mūsų API gamyboje
pplx-api „Perplexity“ sistemoje: kaštų mažinimas ir patikimumas
Mūsų API jau dabar maitina vieną iš pagrindinių „Perplexity“ produktų funkcijų. Vien tik perjungus vieną funkciją iš išorinės API į pplx-api, pavyko sutaupyti 0,62 mln. USD per metus – tai maždaug 4 kartus mažesnės išlaidos. Atlikome A/B testus ir stebėjome infrastruktūros metriką, kad užtikrintumėme kokybės nesumažėjimą. Per 2 savaites pastebėjome jokių statistiškai reikšmingų skirtumų A/B teste nebuvo. Be to, pplx-api galėjo atlaikyti kasdienę daugiau nei vieno milijono užklausų apkrovą, o tai sudaro beveik vieną milijardą kasdien apdorotų žetonų.
Šio pradinio tyrimo rezultatai labai džiugina ir tikimės, kad bėgant laikui pplx-api palaikys vis daugiau mūsų produktų funkcijų.
Taip pat naudojame pplx-api, kad palaikytume Perplexity Labs – mūsų modelių testavimo aplinką, kurioje veikia įvairūs atvirojo kodo modeliai.
Mūsų komanda yra įsipareigojusi suteikti prieigą prie naujausių pažangiausių atvirojo kodo LLM. „Mistral 7B“, „Code Llama 34b“ ir visus „Llama 2“ modelius integravome per kelias valandas nuo jų išleidimo ir planuojame tai daryti atsirandant daugiau pajėgių atvirojo kodo LLM.
Pradėkite naudoti „Perplexity“ AI API
pplx-api REST API galite pasiekti naudodami HTTPS užklausas. Autentifikavimas pplx-api apima šiuos žingsnius:
Sugeneruokite API raktą per „Perplexity“ paskyros nustatymų puslapį. API raktas yra ilgalaikis prieigos prieigos žetonas, kurį galima naudoti, kol jis bus rankiniu būdu atnaujintas arba ištrintas.
Siųskite API raktą kaip „bearer“ žetoną Authorization antraštėje su kiekviena pplx-api užklausa.
Tolesniame pavyzdyje PERPLEXITY_API_KEY yra aplinkos kintamasis, susietas su raktu, sugeneruotu naudojant aukščiau pateiktas instrukcijas. CURL naudojamas pokalbio užbaigimo užklausai pateikti.
curl -X POST \
--url https://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?"
}
]
}'Tai duoda tokį atsakymą su 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
}
}Štai Python iškvietimo pavyzdys:
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://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)Šiuo metu palaikome Mistral 7B, Llama 13B, Code Llama 34B, Llama 70B, o API yra patogiai suderinama su „OpenAI“ klientu, kad būtų lengva integruoti į esamas programas.
Norėdami gauti daugiau informacijos, apsilankykite mūsų API dokumentacijoje ir greitojo starto vadove.
Kas tinka toliau
Artimiausiu metu pplx-api palaikys:
Pasirinktinius „Perplexity“ LLM ir kitus atvirojo kodo LLM.
Pasirinktines „Perplexity“ įterptis ir atvirojo kodo įterptis.
Speciali API kainodaros struktūra su bendra prieiga pasibaigus viešajam bandomajam (beta) laikotarpiui.
„Perplexity“ RAG-LLM API su faktų ir citatų pagrindimu.
Susisiekite adresu api@perplexity.ai, jei jus domina kuris nors iš šių naudojimo atvejų.
Tai taip pat mūsų „Perplexity“ tinklaraščio įrašų serijos pradžia. Kitame įraše pasidalinsime išsamia A100 ir H100 našumo palyginimo analize LLM išvedimui. Sekite naujienas!
Mes ieškome darbuotojų! Jei norite dirbti su dideliu mastu diegiamu produktu ir kartu su mumis kurti apgalvotai suprojektuotą, kruopščiai optimizuotą generatyviąją ir didelės kalbos modelio infrastruktūrą, prašome prisijungti prie mūsų.
Sekite mus „Twitter“, „LinkedIn“ ir prisijunkite prie mūsų „Discord“, jei norite aptarti daugiau.
Autoriai:
Lauren Yang, Kevin Hu, Aarash Heydari, William Zhang, Dmitry Pervukhin, Grigorii Alekseev, Alexandr Yarats
Duomenų privatumas
Pasirinkę pplx-api, galite išnaudoti visas LLM galimybes ir kartu apsaugoti savo vartotojų bei klientų privatumą ir pasitikėjimą. Suprantame asmeninės informacijos apsaugos svarbą ir esame įsipareigoję išlaikyti savo vartotojų saugumą bei privatumą. API duomenys automatiškai ištrinami po 30 dienų, ir mes niekada netreniruojame modelių jokių duomenų, perduodamų per pplx-api, pagrindu. Vartotojai turi galimybę atsisakyti duomenų saugojimo savo paskyros nustatymuose. Mūsų API privatumo politiką rasite čia.