Представљање pplx-api-ја
Брзи и ефикасни API Perplexity Lab-а за отворене LLM-ове

Напомена: Доље наведени модели су застарели за тренутне моделе. Сазнајте више о нашим API-јима
Узбуђени смо што најављујемо pplx-api, дизајниран да буде један од најбржих начина за приступ моделима Mistral 7B, Llama2 13B, Code Llama 34B, Llama2 70B и replit-code-v1.5-3b. pplx-api омогућава програмерима да лако интегришу врхунске отворене језичке моделе (LLM) у своје пројекте.
Наш pplx-api пружа:
Једноставност коришћења: програмери могу да користе најсавременије отворене моделе „из кутије“ и започну за неколико минута помоћу познатог REST API-ја.
Невероватно брзо закључивање: наш пажљиво дизајниран систем за закључивање је ефикасан и постиже до 2,9 пута мању кашњење од Replicate-а и 3,1 пут мању кашњење од Anyscale-а.
Борбом тестирана инфраструктура: показало се да је pplx-api поуздан, опслужујући саобраћај на нивоу производње како у нашем Perplexity машини за одговоре, тако и у нашем Labs окружењу.
Све на једном мјесту за отворене LLM-ове: наш тим је посвећен додавању нових отворених модела чим се појаве. На примјер, додали смо Llama и Mistral моделе у року од неколико сати од лансирања без приступа прије објављивања.
pplx-api је у јавној бета фази и бесплатан је за кориснике са Perplexity Pro претплатом.
Користите pplx-api за викенд хакатон или као комерцијално рјешење за изградњу нових и иновативних производа. Надамо се да ћемо кроз ово издање сазнати како људи могу да граде цоол и иновативне производе помоћу нашег API-ја. Обратите нам се на api@perplexity.ai ако имате пословни случај коришћења за pplx-api. Вољели бисмо да чујемо од вас!
Предности pplx-api-ја
Једноставност коришћења
Имплементација и закључивање за LLM захтијевају значајан инфраструктурни подухват како би опслуживање модела било ефикасно и исплативо. Програмери могу да користе наш API одмах, без дубоког знања о C++/CUDA или приступа GPU-овима, а да притом уживају у перформансама најсавременијег нивоа. Наше LLM закључивање такође апстрахује сложеност и потребу за управљањем сопственим хардвером, додатно доприносећи лакоћи коришћења.
Невероватно брзо закључивање
Perplexity-јев LLM API је пажљиво дизајниран и оптимизован за брзо закључивање. Да бисмо то постигли, изградили смо властиту LLM инфраструктуру за закључивање око NVIDIA-иног TensorRT-LLM-а која се опслужује на A100 GPU-овима које обезбеђује AWS. Сазнајте више у одјељку Преглед инфраструктуре за pplx-api. Као резултат тога, pplx-api је један од најбржих Llama и Mistral API-ја који су комерцијално доступни.
Да бисмо упоредили са постојећим рјешењима, упоредили смо кашњење pplx-api-ја са другим библиотекама за LLM закључивање. У нашим експериментима, pplx-api постиже до 2,92 пута брже укупно кашњење у поређењу са Text Generation Inference (TGI), и до 4,35 пута брже почетно кашњење одговора. За овај експеримент упоредили смо TGI и Perplexity-јево закључивање за сценарије са једним током и серверске сценарије на 2 A100 GPU-а користећи Llama-2-13B-chat модел подијељен на оба GPU-а. За сценарио са једним током, сервер обрађује један захтјев за другим. У серверском сценарију, клијент шаље захтјеве у складу са Посоомовом расподјелом са различитим стопама захтјева како би се емулирало променљиво оптерећење. За стопу захтјева вршимо мали преглед до максимално 1 захтјева у секунди, што је максимална пропусна моћ коју TGI одржава. Користили смо податке из стварног свијета са различитим дужинама улазних и излазних токена како бисмо симулирали понашање у производњи. Захтјеви у просјеку имају ~700 улазних токена и ~550 излазних токена.
Користећи исте улазе и шаљући један ток захтјева, такође смо измјерили средња кашњења Replicate-ових и Anyscale-ових API-ја за овај исти модел како бисмо прикупили базне вриједности перформанси у односу на друге постојеће API-је.


Користећи исти експериментални почетак, упоредили смо максималну пропусну моћ pplx-api-ја са TGI-јем, са брзином декодирања као ограничењем кашњења. У нашим експериментима, pplx-api обрађује токене 1,90x-6,75x брже од TGI-ја, а TGI у потпуности не успева да испуни наша строжа ограничења кашњења на 60 и 80 токена/секунди. Процјењујемо TGI под истим хардверским условима и условима оптерећења које смо користили за процјену pplx-api-ја. Поређење ове метрике са Replicate-ом и Anyscale-ом није могуће пошто не можемо да контролишемо њихов хардвер и факторе оптерећења.
За поређење, просјечна брзина читања човјека је 5 токена у секунди, што значи да је pplx-api у стању да опслужује брже него што се може прочитати.

Преглед инфраструктуре за pplx-api
Постизање ових вриједности кашњења захтијева комбинацију софтвера и хардвера највишег нивоа.
AWS p4d инстанце покретане помоћу NVIDIA A100 GPU-ова постављају сцену као најисплативија и најпоузданија опција за скалирање GPU-ова са најбољим брзинама такта у класи.
Да би софтвер искористио овај хардвер, покрећемо NVIDIA TensorRT-LLM, библиотеку отвореног кода која убрзава и оптимизује LLM закључивање. TensorRT-LLM обједињује TensorRT компајлер дубоког учења и укључује најновије оптимизоване језгре направљене за врхунске имплементације FlashAttention-а и маскиране пажње са више глава (MHA) за фазе контекста и генерације извршавања LLM модела.
Одатле нас ослонац AWS-а и његова робусна интеграција са Kubernetes-ом омогућавају да еластично скалирамо преко стотина GPU-ова и сведамо на минимум застоје и мрежне трошкове.
Случај коришћења: Наш API у производњи
pplx-api у Perplexity-ју: Смањење трошкова и поузданост
Наш API већ покреће једну од основних функција производа компаније Perplexity. Само пребацивање једне функције са спољног API-ја на pplx-api резултирало је уштедом трошкова од 0,62 милиона долара годишње, што је приближно 4 пута смањење трошкова. Извршили смо А/Б тестове и пратили метрику инфраструктуре како бисмо осигурали да нема деградације квалитета. Током 2 недјеље нисмо примијетили статистички значајну разлику у А/Б тесту. Поред тога, pplx-api може да поднесе дневно оптерећење од преко милион захтјева, укупно скоро милијарду обрађених токена дневно.
Резултати овог почетног истраживања су веома охрабрујући и очекујемо да ће pplx-api временом покретати више наших функција производа.

Такође користимо pplx-api за покретање Perplexity Labs-а, нашег окружења за моделе које опслужује различите моделе отвореног кода.

Наш тим је посвећен пружању приступа најновијим најсавременијим отвореним LLM-овима. Интегрисали смо Mistral 7B, Code Llama 34b и све Llama 2 моделе за неколико сати након њиховог издања, и планирамо да то учинимо како буду постајали доступни други способнији отворени LLM-ови.
Започните са Perplexity-јевим AI API-јем
Можете приступити pplx-api REST API-ју помоћу HTTPS захтјева. Аунтификација на pplx-api укључује сљедеће кораке:
Генеришите API кључ преко странице са подешавањима Perplexity налога. API кључ је дугорочни приступни токен који се може користити док се ручно не освежи или обрише.

Пошаљите API кључ као bearer токен у Authorization заглављу са сваким pplx-api захтјевом.
У сљедећем примјеру, PERPLEXITY_API_KEY је променљива окружења повезана са кључем генерисаним помоћу горњих упутстава. CURL се користи за подношење захтјева за довршетак ћаскања.
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?"
}
]
}'Што даје сљедећи одговор, који има 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
}
}Ево примјера 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)Тренутно подржавамо Mistral 7B, Llama 13B, Code Llama 34B, Llama 70B, а API је згодно компатибилан са OpenAI клијентом за лаку интеграцију са постојећим апликацијама.
За више информација посјетите нашу API документацију и Водич за брзи почетак.
Шта је сљедеће
У блиској будућности, pplx-api ће подржавати:
Прилагођене Perplexity LLM-ове и друге отворене LLM-ове.
Прилагођене Perplexity уграђене формате (embeddings) и отворене уграђене формате.
Наменску структуру цијена API-ја са општим приступом након што се заврши фаза јавне бета верзије.
Perplexity RAG-LLM API са утемељењем за чињенице и цитате.
Обратите се на api@perplexity.ai ако сте заинтересовани за било који од ових случајева коришћења.
Ово је такође почетак наше серије објава на Perplexity блогу. У нашој сљедећој објави поделићемо детаљну анализу поређења перформанси A100 и H100 за LLM закључивање. Пратите нас!
Запошљавамо! Ако желите да радите на производу примијењеном у великом обиму и заједно са нама градите пажљиво дизајнирану, пажљиво оптимизовану инфраструктуру генеративних и великих језичких модела, молимо вас придружите нам се.
Пратите нас на Twitter-у, LinkedIn-у и придружите се нашем Discord-у за више дискусија.
Аутори:
Lauren Yang, Kevin Hu, Aarash Heydari, William Zhang, Dmitry Pervukhin, Grigorii Alekseev, Alexandr Yarats
Приватност података
Избором pplx-api-ја можете искористити пуни потенцијал LLM-ова уз очување приватности и повјерења ваших корисника и клијената. Разумијемо важност заштите ваших личних података и посвећени смо одржавању безбједности и приватности наших корисника. Подаци API-ја се аутоматски бришу након 30 дана и никада не тренирамо на било којим подацима који се преносе путем pplx-api-ја. Корисници имају опцију да искључе задржавање података у подешавањима свог налога. Пронађите нашу политику приватности API-ја овдје.