Představujeme pplx-api od Perplexity Labs

Napsáno

AI tým

Publikováno

Upozorňujeme: Níže uvedené položky byly pro aktuální modely vyřazeny. Zjistěte více o našich API

S radostí oznamujeme pplx-api, navržené jako jeden z nejrychlejších způsobů přístupu k modelům Mistral 7B, Llama2 13B, Code Llama 34B, Llama2 70B, replit-code-v1.5-3b. pplx-api vývojářům usnadňuje integraci špičkových open-source LLM do jejich projektů.

Naše pplx-api nabízí:
  • Snadné použití: vývojáři mohou používat nejmodernější open-source modely ihned a začít během několika minut s důvěrně známým REST API.

  • Bleskově rychlou inferenci: náš promyšleně navržený inferenční systém je efektivní a dosahuje až 2.9x nižší latence než Replicate a 3.1x nižší latence než Anyscale.

  • Ověřenou infrastrukturu: pplx-api je prokazatelně spolehlivé a obsluhuje provoz na produkční úrovni jak v našem Perplexity answer engine, tak v našem Labs playground.

  • Komplexní řešení pro open-source LLM: náš tým se věnuje přidávání nových open-source modelů ihned, jakmile jsou k dispozici. Například jsme modely Llama a Mistral přidali během několika hodin od spuštění bez předběžného přístupu.

pplx-api je ve veřejné beta verzi a pro uživatele s předplatným Perplexity Pro je zdarma.

Používejte pplx-api pro neformální víkendový hackathon nebo jako komerční řešení pro vytváření nových a inovativních produktů. Prostřednictvím tohoto vydání se chceme dozvědět, jak mohou lidé s naším API vytvářet skvělé a inovativní produkty. Pokud máte obchodní případ použití pro pplx-api, kontaktujte prosím api@perplexity.ai . Budeme rádi, když se nám ozvete!

Výhody pplx-api

Snadné použití

Nasazení LLM a inference vyžadují značné infrastrukturní úsilí, aby bylo poskytování modelů výkonné a nákladově efektivní. Vývojáři mohou naše API používat ihned, bez hlubokých znalostí C++/CUDA nebo přístupu ke GPU, a přesto využívat špičkový výkon. Naše LLM inference také abstrahuje složitost a nutnost správy vlastního hardwaru, čímž dále zvyšuje snadnost použití.

Bleskově rychlá inference

LLM API Perplexity je pečlivě navrženo a optimalizováno pro rychlou inferenci. Abychom toho dosáhli, vybudovali jsme proprietární infrastrukturu LLM inference nad technologií NVIDIA TensortRT-LLM, která běží na GPU A100 poskytovaných společností AWS. Více se dozvíte v části Přehled infrastruktury pplx-api. Výsledkem je, že pplx-api patří mezi nejrychlejší komerčně dostupná API pro Llama a Mistral.

Abychom provedli srovnání se stávajícími řešeními, porovnali jsme latenci pplx-api s jinými knihovnami pro LLM inferenci. V našich experimentech dosahuje pplx-api až 2.92x nižší celkové latence oproti Text Generation Inference (TGI) a až 4.35x nižší latence první odpovědi. Pro tento experiment jsme porovnávali TGI a inferenci Perplexity v režimu jednoho proudu i serverovém scénáři na 2 GPU A100 s modelem Llama-2-13B-chat rozděleným mezi obě GPU. V režimu jednoho proudu server zpracovává jeden požadavek za druhým. V serverovém scénáři klient odesílá požadavky podle Poissonova rozdělení s různou intenzitou požadavků, aby emuloval proměnlivou zátěž. Pokud jde o intenzitu požadavků, provedli jsme malé prozkoumání až do maxima 1 požadavku za sekundu, což je maximální propustnost udržená TGI. Použili jsme data z reálného provozu s různými délkami vstupních i výstupních tokenů, abychom simulovali chování v produkci. Požadavky mají v průměru ~700 vstupních tokenů a ~550 výstupních tokenů.

Při použití stejných vstupů a odesílání jednoho proudu požadavků jsme také změřili průměrné latence API služeb Replicate a Anyscale pro tentýž model, abychom získali výkonnostní základnu vůči dalším existujícím API.

Perplexity Labs - First Token Latency Perplexity Labs - Decoding Speed

Při použití stejného experimentálního nastavení jsme porovnali maximální propustnost pplx-api vůči TGI, přičemž rychlost dekódování byla omezením latence. V našich experimentech pplx-api zpracovává tokeny 1.90x-6.75x rychleji než TGI a TGI zcela nedokáže splnit naše přísnější latanční omezení při 60 a 80 tokenech za sekundu. TGI vyhodnocujeme za stejných hardwarových a zátěžových podmínek, jaké jsme použili pro vyhodnocení pplx-api. Srovnání této metriky s Replicate a Anyscale není možné, protože nemůžeme kontrolovat jejich hardware a faktory zátěže.

Pro orientaci: průměrná rychlost lidského čtení je 5 tokenů za sekundu, což znamená, že pplx-api dokáže poskytovat výstup rychleji, než jej lze číst.
Perplexity Labs - Token Throughput per GPU

Přehled infrastruktury pplx-api

Dosažení těchto hodnot latence vyžaduje kombinaci nejmodernějšího softwaru a hardwaru.

Instance AWS p4d poháněné GPU NVIDIA A100 představují nejvýhodnější a nejspolehlivější možnost pro škálování GPU s nejlepšími taktovacími frekvencemi ve své třídě.

Aby software mohl tento hardware využít, provozujeme NVIDIA TensorRT-LLM, open-source knihovnu, která akceleruje a optimalizuje LLM inferenci. TensorRT-LLM staví na deep learning compileru TensorRT a zahrnuje nejnovější optimalizovaná jádra vytvořená pro špičkové implementace FlashAttention a maskované multi-head attention (MHA) pro kontextovou i generační fázi běhu modelů LLM.

Od tohoto bodu nám páteř AWS a jeho robustní integrace s Kubernetes umožňují elasticky škálovat na více než stovky GPU a minimalizovat prostoje i síťovou režii.

Případ použití: Naše API v produkci

pplx-api v Perplexity: Snížení nákladů a spolehlivost

Naše API již pohání jednu z klíčových funkcí produktu Perplexity. Pouhé přepnutí jedné funkce z externího API na pplx-api vedlo k úspoře nákladů ve výši $0.62M/rok, přibližně 4x snížení nákladů. Prováděli jsme A/B testy a monitorovali infrastrukturní metriky, abychom zajistili, že nedojde ke zhoršení kvality. Během 2 týdnů jsme v A/B testu nepozorovali žádný statisticky významný rozdíl. pplx-api navíc dokázalo udržet denní zátěž přesahující jeden milion požadavků, celkem téměř jednu miliardu zpracovaných tokenů denně.

Výsledky tohoto počátečního zkoumání jsou velmi povzbudivé a očekáváme, že pplx-api bude postupem času pohánět více funkcí našeho produktu.

pplx-api v Perplexity Labs: Ekosystém open-source inference

Také používáme pplx-api k provozu Perplexity Labs, našeho modelového playgroundu nabízejícího různé open-source modely.

Daily Average Token Served

Náš tým se zavázal poskytovat přístup k nejnovějším špičkovým open-source LLM. Modely Mistral 7B, Code Llama 34b a všechny modely Llama 2 jsme integrovali během několika hodin po jejich vydání a plánujeme v tom pokračovat, jakmile budou k dispozici schopnější a open-source LLM.

Začněte s AI API od Perplexity

K REST API pplx-api můžete přistupovat pomocí požadavků HTTPS. Autentizace do pplx-api zahrnuje následující kroky:

  1. Vygenerujte API klíč prostřednictvím Perplexity Account Settings Page. API klíč je dlouhodobý přístupový token, který lze používat, dokud není ručně obnoven nebo smazán.

  1. Odesílejte API klíč jako bearer token v hlavičce Authorization s každým požadavkem pplx-api.

V následujícím příkladu je PERPLEXITY_API_KEY proměnná prostředí navázaná na klíč vygenerovaný podle výše uvedených pokynů. Pro odeslání požadavku na dokončení chatu se používá CURL.

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

Což vrátí následující odpověď s hlavičkou 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
  }
}

Zde je příklad volání v Pythonu:

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)

V současnosti podporujeme Mistral 7B, Llama 13B, Code Llama 34B, Llama 70B a API je pro snadnou integraci se stávajícími aplikacemi plně kompatibilní s klientem OpenAI.

Další informace naleznete v naší dokumentaci API a v Příručce rychlého startu.

Co bude dál

V blízké budoucnosti bude pplx-api podporovat:

  • Vlastní LLM od Perplexity a další open-source LLM.

  • Vlastní embeddingy od Perplexity a open-source embeddingy.

  • Vyhrazenou cenovou strukturu API s obecnou dostupností po ukončení veřejné beta verze.

  • Perplexity RAG-LLM API s groundingem pro fakta a citace.

Ozvěte se na api@perplexity.ai, pokud Vás zajímá kterýkoli z těchto případů použití.

Toto je také začátek série příspěvků na našem Perplexity Blog. V našem příštím příspěvku se podělíme o podrobný rozbor srovnání výkonu A100 vs H100 pro LLM inferenci. Zůstaňte naladěni!

Nabíráme! Pokud chcete s námi pracovat na produktu nasazeném v masivním měřítku a budovat promyšleně navrženou, pečlivě optimalizovanou infrastrukturu pro generativní modely a velké jazykové modely, prosím přidejte se k nám.

Sledujte nás na Twitter, LinkedIn a připojte se k našemu Discord pro další diskusi.

Autoři

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

Ochrana osobních údajů

Volbou pplx-api můžete využít plný potenciál LLM a zároveň chránit soukromí a důvěru svých uživatelů a zákazníků. Chápeme důležitost ochrany Vašich osobních údajů a jsme odhodláni zachovávat bezpečnost a soukromí našich uživatelů. Data API jsou automaticky mazána po 30 dnech a nikdy netrénujeme na žádných datech přenášených prostřednictvím pplx-api. Uživatelé mají v nastavení účtu možnost odmítnout uchovávání dat. Naše zásady ochrany soukromí API naleznete zde.


Upozorňujeme: Níže uvedené položky byly pro aktuální modely vyřazeny. Zjistěte více o našich API

S radostí oznamujeme pplx-api, navržené jako jeden z nejrychlejších způsobů přístupu k modelům Mistral 7B, Llama2 13B, Code Llama 34B, Llama2 70B, replit-code-v1.5-3b. pplx-api vývojářům usnadňuje integraci špičkových open-source LLM do jejich projektů.

Naše pplx-api nabízí:
  • Snadné použití: vývojáři mohou používat nejmodernější open-source modely ihned a začít během několika minut s důvěrně známým REST API.

  • Bleskově rychlou inferenci: náš promyšleně navržený inferenční systém je efektivní a dosahuje až 2.9x nižší latence než Replicate a 3.1x nižší latence než Anyscale.

  • Ověřenou infrastrukturu: pplx-api je prokazatelně spolehlivé a obsluhuje provoz na produkční úrovni jak v našem Perplexity answer engine, tak v našem Labs playground.

  • Komplexní řešení pro open-source LLM: náš tým se věnuje přidávání nových open-source modelů ihned, jakmile jsou k dispozici. Například jsme modely Llama a Mistral přidali během několika hodin od spuštění bez předběžného přístupu.

pplx-api je ve veřejné beta verzi a pro uživatele s předplatným Perplexity Pro je zdarma.

Používejte pplx-api pro neformální víkendový hackathon nebo jako komerční řešení pro vytváření nových a inovativních produktů. Prostřednictvím tohoto vydání se chceme dozvědět, jak mohou lidé s naším API vytvářet skvělé a inovativní produkty. Pokud máte obchodní případ použití pro pplx-api, kontaktujte prosím api@perplexity.ai . Budeme rádi, když se nám ozvete!

Výhody pplx-api

Snadné použití

Nasazení LLM a inference vyžadují značné infrastrukturní úsilí, aby bylo poskytování modelů výkonné a nákladově efektivní. Vývojáři mohou naše API používat ihned, bez hlubokých znalostí C++/CUDA nebo přístupu ke GPU, a přesto využívat špičkový výkon. Naše LLM inference také abstrahuje složitost a nutnost správy vlastního hardwaru, čímž dále zvyšuje snadnost použití.

Bleskově rychlá inference

LLM API Perplexity je pečlivě navrženo a optimalizováno pro rychlou inferenci. Abychom toho dosáhli, vybudovali jsme proprietární infrastrukturu LLM inference nad technologií NVIDIA TensortRT-LLM, která běží na GPU A100 poskytovaných společností AWS. Více se dozvíte v části Přehled infrastruktury pplx-api. Výsledkem je, že pplx-api patří mezi nejrychlejší komerčně dostupná API pro Llama a Mistral.

Abychom provedli srovnání se stávajícími řešeními, porovnali jsme latenci pplx-api s jinými knihovnami pro LLM inferenci. V našich experimentech dosahuje pplx-api až 2.92x nižší celkové latence oproti Text Generation Inference (TGI) a až 4.35x nižší latence první odpovědi. Pro tento experiment jsme porovnávali TGI a inferenci Perplexity v režimu jednoho proudu i serverovém scénáři na 2 GPU A100 s modelem Llama-2-13B-chat rozděleným mezi obě GPU. V režimu jednoho proudu server zpracovává jeden požadavek za druhým. V serverovém scénáři klient odesílá požadavky podle Poissonova rozdělení s různou intenzitou požadavků, aby emuloval proměnlivou zátěž. Pokud jde o intenzitu požadavků, provedli jsme malé prozkoumání až do maxima 1 požadavku za sekundu, což je maximální propustnost udržená TGI. Použili jsme data z reálného provozu s různými délkami vstupních i výstupních tokenů, abychom simulovali chování v produkci. Požadavky mají v průměru ~700 vstupních tokenů a ~550 výstupních tokenů.

Při použití stejných vstupů a odesílání jednoho proudu požadavků jsme také změřili průměrné latence API služeb Replicate a Anyscale pro tentýž model, abychom získali výkonnostní základnu vůči dalším existujícím API.

Perplexity Labs - First Token Latency Perplexity Labs - Decoding Speed

Při použití stejného experimentálního nastavení jsme porovnali maximální propustnost pplx-api vůči TGI, přičemž rychlost dekódování byla omezením latence. V našich experimentech pplx-api zpracovává tokeny 1.90x-6.75x rychleji než TGI a TGI zcela nedokáže splnit naše přísnější latanční omezení při 60 a 80 tokenech za sekundu. TGI vyhodnocujeme za stejných hardwarových a zátěžových podmínek, jaké jsme použili pro vyhodnocení pplx-api. Srovnání této metriky s Replicate a Anyscale není možné, protože nemůžeme kontrolovat jejich hardware a faktory zátěže.

Pro orientaci: průměrná rychlost lidského čtení je 5 tokenů za sekundu, což znamená, že pplx-api dokáže poskytovat výstup rychleji, než jej lze číst.
Perplexity Labs - Token Throughput per GPU

Přehled infrastruktury pplx-api

Dosažení těchto hodnot latence vyžaduje kombinaci nejmodernějšího softwaru a hardwaru.

Instance AWS p4d poháněné GPU NVIDIA A100 představují nejvýhodnější a nejspolehlivější možnost pro škálování GPU s nejlepšími taktovacími frekvencemi ve své třídě.

Aby software mohl tento hardware využít, provozujeme NVIDIA TensorRT-LLM, open-source knihovnu, která akceleruje a optimalizuje LLM inferenci. TensorRT-LLM staví na deep learning compileru TensorRT a zahrnuje nejnovější optimalizovaná jádra vytvořená pro špičkové implementace FlashAttention a maskované multi-head attention (MHA) pro kontextovou i generační fázi běhu modelů LLM.

Od tohoto bodu nám páteř AWS a jeho robustní integrace s Kubernetes umožňují elasticky škálovat na více než stovky GPU a minimalizovat prostoje i síťovou režii.

Případ použití: Naše API v produkci

pplx-api v Perplexity: Snížení nákladů a spolehlivost

Naše API již pohání jednu z klíčových funkcí produktu Perplexity. Pouhé přepnutí jedné funkce z externího API na pplx-api vedlo k úspoře nákladů ve výši $0.62M/rok, přibližně 4x snížení nákladů. Prováděli jsme A/B testy a monitorovali infrastrukturní metriky, abychom zajistili, že nedojde ke zhoršení kvality. Během 2 týdnů jsme v A/B testu nepozorovali žádný statisticky významný rozdíl. pplx-api navíc dokázalo udržet denní zátěž přesahující jeden milion požadavků, celkem téměř jednu miliardu zpracovaných tokenů denně.

Výsledky tohoto počátečního zkoumání jsou velmi povzbudivé a očekáváme, že pplx-api bude postupem času pohánět více funkcí našeho produktu.

pplx-api v Perplexity Labs: Ekosystém open-source inference

Také používáme pplx-api k provozu Perplexity Labs, našeho modelového playgroundu nabízejícího různé open-source modely.

Daily Average Token Served

Náš tým se zavázal poskytovat přístup k nejnovějším špičkovým open-source LLM. Modely Mistral 7B, Code Llama 34b a všechny modely Llama 2 jsme integrovali během několika hodin po jejich vydání a plánujeme v tom pokračovat, jakmile budou k dispozici schopnější a open-source LLM.

Začněte s AI API od Perplexity

K REST API pplx-api můžete přistupovat pomocí požadavků HTTPS. Autentizace do pplx-api zahrnuje následující kroky:

  1. Vygenerujte API klíč prostřednictvím Perplexity Account Settings Page. API klíč je dlouhodobý přístupový token, který lze používat, dokud není ručně obnoven nebo smazán.

  1. Odesílejte API klíč jako bearer token v hlavičce Authorization s každým požadavkem pplx-api.

V následujícím příkladu je PERPLEXITY_API_KEY proměnná prostředí navázaná na klíč vygenerovaný podle výše uvedených pokynů. Pro odeslání požadavku na dokončení chatu se používá CURL.

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

Což vrátí následující odpověď s hlavičkou 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
  }
}

Zde je příklad volání v Pythonu:

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)

V současnosti podporujeme Mistral 7B, Llama 13B, Code Llama 34B, Llama 70B a API je pro snadnou integraci se stávajícími aplikacemi plně kompatibilní s klientem OpenAI.

Další informace naleznete v naší dokumentaci API a v Příručce rychlého startu.

Co bude dál

V blízké budoucnosti bude pplx-api podporovat:

  • Vlastní LLM od Perplexity a další open-source LLM.

  • Vlastní embeddingy od Perplexity a open-source embeddingy.

  • Vyhrazenou cenovou strukturu API s obecnou dostupností po ukončení veřejné beta verze.

  • Perplexity RAG-LLM API s groundingem pro fakta a citace.

Ozvěte se na api@perplexity.ai, pokud Vás zajímá kterýkoli z těchto případů použití.

Toto je také začátek série příspěvků na našem Perplexity Blog. V našem příštím příspěvku se podělíme o podrobný rozbor srovnání výkonu A100 vs H100 pro LLM inferenci. Zůstaňte naladěni!

Nabíráme! Pokud chcete s námi pracovat na produktu nasazeném v masivním měřítku a budovat promyšleně navrženou, pečlivě optimalizovanou infrastrukturu pro generativní modely a velké jazykové modely, prosím přidejte se k nám.

Sledujte nás na Twitter, LinkedIn a připojte se k našemu Discord pro další diskusi.

Autoři

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

Ochrana osobních údajů

Volbou pplx-api můžete využít plný potenciál LLM a zároveň chránit soukromí a důvěru svých uživatelů a zákazníků. Chápeme důležitost ochrany Vašich osobních údajů a jsme odhodláni zachovávat bezpečnost a soukromí našich uživatelů. Data API jsou automaticky mazána po 30 dnech a nikdy netrénujeme na žádných datech přenášených prostřednictvím pplx-api. Uživatelé mají v nastavení účtu možnost odmítnout uchovávání dat. Naše zásady ochrany soukromí API naleznete zde.


Upozorňujeme: Níže uvedené položky byly pro aktuální modely vyřazeny. Zjistěte více o našich API

S radostí oznamujeme pplx-api, navržené jako jeden z nejrychlejších způsobů přístupu k modelům Mistral 7B, Llama2 13B, Code Llama 34B, Llama2 70B, replit-code-v1.5-3b. pplx-api vývojářům usnadňuje integraci špičkových open-source LLM do jejich projektů.

Naše pplx-api nabízí:
  • Snadné použití: vývojáři mohou používat nejmodernější open-source modely ihned a začít během několika minut s důvěrně známým REST API.

  • Bleskově rychlou inferenci: náš promyšleně navržený inferenční systém je efektivní a dosahuje až 2.9x nižší latence než Replicate a 3.1x nižší latence než Anyscale.

  • Ověřenou infrastrukturu: pplx-api je prokazatelně spolehlivé a obsluhuje provoz na produkční úrovni jak v našem Perplexity answer engine, tak v našem Labs playground.

  • Komplexní řešení pro open-source LLM: náš tým se věnuje přidávání nových open-source modelů ihned, jakmile jsou k dispozici. Například jsme modely Llama a Mistral přidali během několika hodin od spuštění bez předběžného přístupu.

pplx-api je ve veřejné beta verzi a pro uživatele s předplatným Perplexity Pro je zdarma.

Používejte pplx-api pro neformální víkendový hackathon nebo jako komerční řešení pro vytváření nových a inovativních produktů. Prostřednictvím tohoto vydání se chceme dozvědět, jak mohou lidé s naším API vytvářet skvělé a inovativní produkty. Pokud máte obchodní případ použití pro pplx-api, kontaktujte prosím api@perplexity.ai . Budeme rádi, když se nám ozvete!

Výhody pplx-api

Snadné použití

Nasazení LLM a inference vyžadují značné infrastrukturní úsilí, aby bylo poskytování modelů výkonné a nákladově efektivní. Vývojáři mohou naše API používat ihned, bez hlubokých znalostí C++/CUDA nebo přístupu ke GPU, a přesto využívat špičkový výkon. Naše LLM inference také abstrahuje složitost a nutnost správy vlastního hardwaru, čímž dále zvyšuje snadnost použití.

Bleskově rychlá inference

LLM API Perplexity je pečlivě navrženo a optimalizováno pro rychlou inferenci. Abychom toho dosáhli, vybudovali jsme proprietární infrastrukturu LLM inference nad technologií NVIDIA TensortRT-LLM, která běží na GPU A100 poskytovaných společností AWS. Více se dozvíte v části Přehled infrastruktury pplx-api. Výsledkem je, že pplx-api patří mezi nejrychlejší komerčně dostupná API pro Llama a Mistral.

Abychom provedli srovnání se stávajícími řešeními, porovnali jsme latenci pplx-api s jinými knihovnami pro LLM inferenci. V našich experimentech dosahuje pplx-api až 2.92x nižší celkové latence oproti Text Generation Inference (TGI) a až 4.35x nižší latence první odpovědi. Pro tento experiment jsme porovnávali TGI a inferenci Perplexity v režimu jednoho proudu i serverovém scénáři na 2 GPU A100 s modelem Llama-2-13B-chat rozděleným mezi obě GPU. V režimu jednoho proudu server zpracovává jeden požadavek za druhým. V serverovém scénáři klient odesílá požadavky podle Poissonova rozdělení s různou intenzitou požadavků, aby emuloval proměnlivou zátěž. Pokud jde o intenzitu požadavků, provedli jsme malé prozkoumání až do maxima 1 požadavku za sekundu, což je maximální propustnost udržená TGI. Použili jsme data z reálného provozu s různými délkami vstupních i výstupních tokenů, abychom simulovali chování v produkci. Požadavky mají v průměru ~700 vstupních tokenů a ~550 výstupních tokenů.

Při použití stejných vstupů a odesílání jednoho proudu požadavků jsme také změřili průměrné latence API služeb Replicate a Anyscale pro tentýž model, abychom získali výkonnostní základnu vůči dalším existujícím API.

Perplexity Labs - First Token Latency Perplexity Labs - Decoding Speed

Při použití stejného experimentálního nastavení jsme porovnali maximální propustnost pplx-api vůči TGI, přičemž rychlost dekódování byla omezením latence. V našich experimentech pplx-api zpracovává tokeny 1.90x-6.75x rychleji než TGI a TGI zcela nedokáže splnit naše přísnější latanční omezení při 60 a 80 tokenech za sekundu. TGI vyhodnocujeme za stejných hardwarových a zátěžových podmínek, jaké jsme použili pro vyhodnocení pplx-api. Srovnání této metriky s Replicate a Anyscale není možné, protože nemůžeme kontrolovat jejich hardware a faktory zátěže.

Pro orientaci: průměrná rychlost lidského čtení je 5 tokenů za sekundu, což znamená, že pplx-api dokáže poskytovat výstup rychleji, než jej lze číst.
Perplexity Labs - Token Throughput per GPU

Přehled infrastruktury pplx-api

Dosažení těchto hodnot latence vyžaduje kombinaci nejmodernějšího softwaru a hardwaru.

Instance AWS p4d poháněné GPU NVIDIA A100 představují nejvýhodnější a nejspolehlivější možnost pro škálování GPU s nejlepšími taktovacími frekvencemi ve své třídě.

Aby software mohl tento hardware využít, provozujeme NVIDIA TensorRT-LLM, open-source knihovnu, která akceleruje a optimalizuje LLM inferenci. TensorRT-LLM staví na deep learning compileru TensorRT a zahrnuje nejnovější optimalizovaná jádra vytvořená pro špičkové implementace FlashAttention a maskované multi-head attention (MHA) pro kontextovou i generační fázi běhu modelů LLM.

Od tohoto bodu nám páteř AWS a jeho robustní integrace s Kubernetes umožňují elasticky škálovat na více než stovky GPU a minimalizovat prostoje i síťovou režii.

Případ použití: Naše API v produkci

pplx-api v Perplexity: Snížení nákladů a spolehlivost

Naše API již pohání jednu z klíčových funkcí produktu Perplexity. Pouhé přepnutí jedné funkce z externího API na pplx-api vedlo k úspoře nákladů ve výši $0.62M/rok, přibližně 4x snížení nákladů. Prováděli jsme A/B testy a monitorovali infrastrukturní metriky, abychom zajistili, že nedojde ke zhoršení kvality. Během 2 týdnů jsme v A/B testu nepozorovali žádný statisticky významný rozdíl. pplx-api navíc dokázalo udržet denní zátěž přesahující jeden milion požadavků, celkem téměř jednu miliardu zpracovaných tokenů denně.

Výsledky tohoto počátečního zkoumání jsou velmi povzbudivé a očekáváme, že pplx-api bude postupem času pohánět více funkcí našeho produktu.

pplx-api v Perplexity Labs: Ekosystém open-source inference

Také používáme pplx-api k provozu Perplexity Labs, našeho modelového playgroundu nabízejícího různé open-source modely.

Daily Average Token Served

Náš tým se zavázal poskytovat přístup k nejnovějším špičkovým open-source LLM. Modely Mistral 7B, Code Llama 34b a všechny modely Llama 2 jsme integrovali během několika hodin po jejich vydání a plánujeme v tom pokračovat, jakmile budou k dispozici schopnější a open-source LLM.

Začněte s AI API od Perplexity

K REST API pplx-api můžete přistupovat pomocí požadavků HTTPS. Autentizace do pplx-api zahrnuje následující kroky:

  1. Vygenerujte API klíč prostřednictvím Perplexity Account Settings Page. API klíč je dlouhodobý přístupový token, který lze používat, dokud není ručně obnoven nebo smazán.

  1. Odesílejte API klíč jako bearer token v hlavičce Authorization s každým požadavkem pplx-api.

V následujícím příkladu je PERPLEXITY_API_KEY proměnná prostředí navázaná na klíč vygenerovaný podle výše uvedených pokynů. Pro odeslání požadavku na dokončení chatu se používá CURL.

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

Což vrátí následující odpověď s hlavičkou 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
  }
}

Zde je příklad volání v Pythonu:

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)

V současnosti podporujeme Mistral 7B, Llama 13B, Code Llama 34B, Llama 70B a API je pro snadnou integraci se stávajícími aplikacemi plně kompatibilní s klientem OpenAI.

Další informace naleznete v naší dokumentaci API a v Příručce rychlého startu.

Co bude dál

V blízké budoucnosti bude pplx-api podporovat:

  • Vlastní LLM od Perplexity a další open-source LLM.

  • Vlastní embeddingy od Perplexity a open-source embeddingy.

  • Vyhrazenou cenovou strukturu API s obecnou dostupností po ukončení veřejné beta verze.

  • Perplexity RAG-LLM API s groundingem pro fakta a citace.

Ozvěte se na api@perplexity.ai, pokud Vás zajímá kterýkoli z těchto případů použití.

Toto je také začátek série příspěvků na našem Perplexity Blog. V našem příštím příspěvku se podělíme o podrobný rozbor srovnání výkonu A100 vs H100 pro LLM inferenci. Zůstaňte naladěni!

Nabíráme! Pokud chcete s námi pracovat na produktu nasazeném v masivním měřítku a budovat promyšleně navrženou, pečlivě optimalizovanou infrastrukturu pro generativní modely a velké jazykové modely, prosím přidejte se k nám.

Sledujte nás na Twitter, LinkedIn a připojte se k našemu Discord pro další diskusi.

Autoři

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

Ochrana osobních údajů

Volbou pplx-api můžete využít plný potenciál LLM a zároveň chránit soukromí a důvěru svých uživatelů a zákazníků. Chápeme důležitost ochrany Vašich osobních údajů a jsme odhodláni zachovávat bezpečnost a soukromí našich uživatelů. Data API jsou automaticky mazána po 30 dnech a nikdy netrénujeme na žádných datech přenášených prostřednictvím pplx-api. Uživatelé mají v nastavení účtu možnost odmítnout uchovávání dat. Naše zásady ochrany soukromí API naleznete zde.


Sdílejte tento článek