Presentación de pplx-api
A API rápida e eficiente de Perplexity Lab para LLM de código aberto

Aviso: os seguintes elementos deixaron de ser compatibles cos modelos actuais. Máis información sobre as nosas API
Cómpre anunciar o lanzamento de pplx-api, deseñado para ser unha das formas máis rápidas de acceder aos modelos Mistral 7B, Llama2 13B, Code Llama 34B, Llama2 70B e replit-code-v1.5-3b. pplx-api permítelles aos programadores integrar facilmente LLM de código aberto pioneiros nos seus proxectos.
A nosa pplx-api ofrece:
Fácil de usar: os programadores poden empregar modelos de código aberto avanzados sen necesidade de configuración e comezar en poucos minutos cunha API REST coñecida.
Inferencia moi rápida: o noso sistema de inferencia, deseñado coidadosamente, é eficiente e atinxe unha latencia ata 2,9 veces inferior á de Replicate e 3,1 veces inferior á de Anyscale.
Infraestrutura probada en combate: demostrouse que pplx-api é fiable, xa que dá servizo a tráfico de nivel de produción tanto no noso motor de respostas de Perplexity coma no noso contorno de probas Labs.
Punto único para LLM de código aberto: o noso equipo dedícase a engadir novos modelos de código aberto a medida que van chegando. Por exemplo, engadimos os modelos Llama e Mistral poucas horas despois do seu lanzamento sen acceso previo.
pplx-api atópase en fase beta pública e é gratuíta para os usuarios cunha subscrición a Perplexity Pro.
Emprega pplx-api para un hackatón informal de fin de semana ou como solución comercial para crear produtos novos e innovadores. Con este lanzamento, agardamos descubrir como a xente pode crear produtos xeniais e innovadores coa nosa API. Póñase en contacto con api@perplexity.ai se ten un caso de uso comercial para pplx-api. Encantaríanos saber de vostede!
Vantaxes de pplx-api
Facilidade de uso
A implementación e a inferencia de LLM requiren un esforzo considerable en infraestrutura para que a atención de modelos sexa eficiente e rendible. Os programadores poden usar a nosa API sen necesidade de configuración, sen un coñecemento profundo de C++/CUDA nin acceso a tarxetas gráficas (GPU), á vez que gozan dun rendemento avanzado. A nosa inferencia de LLM tamén abstrae a complexidade e a necesidade de xestionar o seu propio hardware, o que aumenta aínda máis a facilidade de uso.
Inferencia moi rápida
A API de LLM de Perplexity está coidadosamente deseñada e optimizada para unha inferencia rápida. Para conseguilo, creamos unha infraestrutura de inferencia de LLM propietaria arredor de TensorRT-LLM de NVIDIA que se executa en GPU A100 proporcionadas por AWS. Obteña máis información na sección Resumo da infraestrutura de pplx-api. Como resultado, pplx-api é unha das API de Llama e Mistral máis rápidas dispoñibles no mercado.
Para realizar unha comparativa coas solucións existentes, comparamos a latencia de pplx-api con outras bibliotecas de inferencia de LLM. Nos nosos experimentos, pplx-api atinxe unha latencia global ata 2,92 veces máis rápida en comparación con Text Generation Inference (TGI) e unha latencia de resposta inicial ata 4,35 veces máis rápida. Para este experimento, comparamos TGI e a inferencia de Perplexity para escenarios de fluxo único e de servidor en 2 GPU A100 mediante un modelo Llama-2-13B-chat repartido entre ambas as GPU. No escenario de fluxo único, o servidor procesa unha solicitude tras outra. No escenario de servidor, o cliente envía solicitudes segundo unha distribución de Poisson con taxas de solicitude variadas para emular unha carga variada. Para a taxa de solicitude, realizamos un pequeno barrido ata un máximo de 1 solicitude por segundo, o rendemento máximo mantido por TGI. Utilizamos datos reais cunha variedade de lonxitudes de tokens de entrada e saída para simular o comportamento de produción. As solicitudes teñen unha media de ~700 tokens de entrada e ~550 tokens de saída.
Utilizando as mesmas entradas e enviando un único fluxo de solicitudes, tamén medimos as latencias medias das API de Replicate e Anyscale para este mesmo modelo para obter unha liña base de rendemento fronte a outras API existentes.


Utilizando a mesma configuración experimental, comparamos o rendemento máximo de pplx-api con TGI, coa velocidade de descodificación como restrición de latencia. Nos nosos experimentos, pplx-api procesa tokens 1,90x-6,75x máis rápido que TGI, e TGI non cumpre en absoluto as nosas restricións de latencia máis estritas a 60 e 80 tokens/segundo. Avaliamos TGI nas mesmas condicións de hardware e carga que utilizamos para avaliar pplx-api. Non é posible comparar esta métrica con Replicate e Anyscale xa que non podemos controlar o seu hardware e factores de carga.
Como referencia, a velocidade media de lectura humana é de 5 tokens/segundo, o que significa que pplx-api é quen de ofrecer servizo a unha velocidade superior á que se pode ler.

Resumo da infraestrutura de pplx-api
Para acadar estas cifras de latencia, requírese unha combinación de software e hardware avanzados.
As instancias p4d de AWS impulsadas por GPU NVIDIA A100 configuran a opción máis fiable e económica para ampliar GPU coas mellores velocidades de reloxo da súa categoría.
Para que o software poida aproveitar este hardware, executamos TensorRT-LLM de NVIDIA, unha biblioteca de código aberto que acelera e optimiza a inferencia de LLM. TensorRT-LLM envolve o compilador de aprendizaxe profunda de TensorRT e inclúe os kernels optimizados máis recentes creados para implementacións pioneiras de FlashAttention e atención de cabezais múltiples enmascarada (MHA) para as fases de contexto e xeración da execución do modelo LLM.
A partir de aí, a columna vertebral de AWS e a súa sólida integración con Kubernetes permítennos escalar de forma elástica máis aló de cento de GPU e minimizar o tempo de inactividade e a sobrecarga de rede.
Caso de uso: a nosa API en produción
pplx-api en Perplexity: redución de custos e fiabilidade
A nosa API xa alimenta unha das características principais do produto de Perplexity. O simple cambio dunha soa característica dunha API externa a pplx-api tivo como resultado un aforro de custos de 0,62 millóns de dólares ao ano, o que supón aproximadamente unha redución de custos de 4 veces. Realizamos probas A/B e monitorizamos as métricas de infraestrutura para garantir que non houbese degradación da calidade. Ao longo de 2 semanas, non observamos ningunha diferenza estatisticamente significativa na proba A/B. Ademais, pplx-api puido manter unha carga diaria de máis dun millón de solicitudes, o que supón case mil millóns de tokens procesados ao día.
Os resultados desta exploración inicial son moi alentadores e agardamos que pplx-api impulse máis características dos nosos produtos co tempo.

Tamén empregamos pplx-api para alimentar Perplexity Labs, o noso contorno de probas de modelos que atende a varios modelos de código aberto.

O noso equipo está comprometido a ofrecer acceso aos LLM de código aberto avanzados máis recentes. Integramos Mistral 7B, Code Llama 34b e todos os modelos Llama 2 nun cuestión de horas despois do seu lanzamento, e planeamos facelo a medida que estean dispoñibles LLM de código aberto máis capaces.
Comezar coa API de intelixencia artificial de Perplexity
Pode acceder á API REST de pplx-api mediante solicitudes HTTPS. A autenticación en pplx-api implica os seguintes pasos:
Xere unha clave de API a través da páxina de configuración da conta de Perplexity. A clave de API é un token de acceso de longa duración que se pode utilizar ata que se anove ou elimine manualmente.

Envíe a clave de API como token de portador no cabeceiro de autorización con cada solicitude de pplx-api.
No seguinte exemplo, PERPLEXITY_API_KEY é unha variábel de contorno vinculada a unha clave xerada mediante as instrucións anteriores. Utilízase CURL para enviar unha solicitude de finalización de chat.
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?"
}
]
}'O que produce a seguinte resposta, tendo 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
}
}Aquí tes un exemplo de chamada en 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)Actualmente admitimos Mistral 7B, Llama 13B, Code Llama 34B, Llama 70B e a API é convenientemente compatíbel co cliente de OpenAI para facilitar a integración coas aplicacións existentes.
Para obter máis información, visite a nosa documentación da API e a guía de inicio rápido.
Seguintes pasos
Nun futuro próximo, pplx-api admitirá:
LLM de Perplexity personalizados e outros LLM de código aberto.
Incrustacións de Perplexity personalizadas e incrustacións de código aberto.
Estrutura de prezos de API dedicada con acceso xeral unha vez que remate a fase beta pública.
API de RAG-LLM de Perplexity con conexión a terra para feitos e citas.
Póñase en contacto con api@perplexity.ai se lle interesa algún destes casos de uso.
Este é tamén o comezo da nosa serie de publicacións no blog de Perplexity. Na nosa seguinte publicación, compartiremos unha análise en profundidade da comparación de rendemento entre A100 e H100 para a inferencia de LLM. Non o perda!
Estamos a contratar! Se quere traballar nun produto implementado a gran escala e construír connosco infraestruturas de modelos de linguaxe grandes e xerativos deseñadas con coidado e optimizadas minuciosamente, únase a nós.
Síguenos en Twitter, LinkedIn e únete ao noso Discord para máis debates.
Autores:
Lauren Yang, Kevin Hu, Aarash Heydari, William Zhang, Dmitry Pervukhin, Grigorii Alekseev, Alexandr Yarats
Privacidade dos datos
Ao escoller pplx-api, pode aproveitar todo o potencial dos LLM á vez que protexe a privacidade e a confianza dos seus usuarios e clientes. Comprendemos a importancia de protexer a súa información persoal e estamos comprometidos a manter a seguridade e a privacidade dos nosos usuarios. Os datos da API elimínanse automaticamente despois de 30 días, e nunca adestramos con ningún dato transmitido a través de pplx-api. Os usuarios teñen a opción de non participar na retención de datos na configuración da súa conta. Atope a nosa política de privacidade da API aquí.