Presentación de pplx-api
API rápida y eficiente de Perplexity Labs para LLM de código abierto

Aviso importante: Los siguientes elementos han quedado obsoletos para los modelos actuales. Más información sobre nuestras API
Nos emociona anunciar pplx-api, diseñada para ser una de las formas más rápidas de acceder a los modelos Mistral 7B, Llama2 13B, Code Llama 34B, Llama2 70B y replit-code-v1.5-3b. pplx-api facilita que los desarrolladores integren LLM de código abierto de vanguardia en sus proyectos.
Nuestra pplx-api ofrece:
Facilidad de uso: los desarrolladores pueden utilizar modelos de código abierto de última generación listos para usar y comenzar en cuestión de minutos con una API REST familiar.
Inferencia increíblemente rápida: nuestro sistema de inferencia cuidadosamente diseñado es eficiente y logra una latencia hasta 2.9 veces menor que Replicate y 3.1 veces menor que Anyscale.
Infraestructura probada en combate: se ha demostrado que pplx-api es confiable, y gestiona tráfico a nivel de producción tanto en nuestro motor de respuestas de Perplexity como en nuestro entorno de pruebas Labs.
Solución integral para LLM de código abierto: nuestro equipo se dedica a agregar nuevos modelos de código abierto a medida que aparecen. Por ejemplo, añadimos los modelos Llama y Mistral pocas horas después de su lanzamiento sin acceso previo.
pplx-api se encuentra en versión beta pública y es gratuita para los usuarios con una suscripción de Perplexity Pro.
Usa pplx-api para un hackatón informal de fin de semana o como una solución comercial para crear productos nuevos e innovadores. Esperamos descubrir cómo las personas pueden crear productos geniales e innovadores con nuestra API a través de este lanzamiento. Comunícate a api@perplexity.ai si tienes un caso de uso comercial para pplx-api. ¡Nos encantaría saber de ti!
Beneficios de pplx-api
Facilidad de uso
El despliegue y la inferencia de LLM requieren un gran esfuerzo de infraestructura para que el servicio de modelos sea eficiente en cuanto a rendimiento y costos. Los desarrolladores pueden utilizar nuestra API de inmediato, sin un conocimiento profundo de C++/CUDA ni acceso a GPU, al tiempo que disfrutan de un rendimiento de vanguardia. Nuestra inferencia de LLM también abstrae la complejidad y la necesidad de administrar tu propio hardware, lo que aumenta aún más tu facilidad de uso.
Inferencia increíblemente rápida
La API de LLM de Perplexity está cuidadosamente diseñada y optimizada para una inferencia rápida. Para lograrlo, construimos una infraestructura de inferencia de LLM patentada basada en TensorRT-LLM de NVIDIA que funciona con GPU A100 proporcionadas por AWS. Obtén más información en la sección Descripción general de la infraestructura de pplx-api. Como resultado, pplx-api es una de las API de Llama y Mistral más rápidas disponibles comercialmente.
Para realizar evaluaciones comparativas con las soluciones existentes, comparamos la latencia de pplx-api con otras bibliotecas de inferencia de LLM. En nuestros experimentos, pplx-api logra una latencia general hasta 2.92 veces más rápida en comparación con Text Generation Inference (TGI), y una latencia de respuesta inicial hasta 4.35 veces más rápida. Para este experimento, comparamos TGI y la inferencia de Perplexity para escenarios de flujo único y de servidor en 2 GPU A100 utilizando un modelo Llama-2-13B-chat distribuido en ambas GPU. Para el escenario de flujo único, el servidor procesa una solicitud tras otra. En el escenario del servidor, el cliente envía solicitudes según una distribución de Poisson con diferentes tasas de solicitudes para emular una carga variable. Para la tasa de solicitudes, realizamos un barrido pequeño hasta un máximo de 1 solicitud/segundo, el rendimiento máximo sostenido por TGI. Utilizamos datos del mundo real con una variedad de longitudes de tokens de entrada y salida para simular el comportamiento de producción. Las solicitudes tienen un promedio de ~700 tokens de entrada y ~550 tokens de salida.
Utilizando las mismas entradas y enviando un único flujo de solicitudes, también medimos las latencias medias de las API de Replicate y Anyscale para este mismo modelo con el fin de obtener una línea base de rendimiento frente a otras API existentes.


Utilizando la misma configuración experimental, comparamos el rendimiento máximo de pplx-api con TGI, utilizando la velocidad de decodificación como restricción de latencia. En nuestros experimentos, pplx-api procesa tokens 1.90x-6.75x más rápido que TGI, y TGI no cumple en absoluto con nuestras restricciones de latencia más estrictas a 60 y 80 tokens/segundo. Evaluamos TGI bajo las mismas condiciones de hardware y carga que utilizamos para evaluar pplx-api. No es posible comparar esta métrica con Replicate y Anyscale, ya que no podemos controlar sus factores de hardware y carga.
Como referencia, la velocidad de lectura humana promedio es de 5 tokens por segundo, lo que significa que pplx-api es capaz de ofrecer un rendimiento superior a la velocidad de lectura de una persona.

Descripción general de la infraestructura de pplx-api
Alcanzar estos niveles de latencia requiere una combinación de software y hardware de vanguardia.
Las instancias p4d de AWS impulsadas por GPU NVIDIA A100 establecen el escenario como la opción más rentable y confiable para escalar GPU con velocidades de reloj líderes en su clase.
Para que el software aproveche este hardware, ejecutamos TensorRT-LLM de NVIDIA, una biblioteca de código abierto que acelera y optimiza la inferencia de LLM. TensorRT-LLM envuelve el compilador de aprendizaje profundo de TensorRT e incluye los últimos núcleos optimizados fabricados para implementaciones de vanguardia de FlashAttention y atención de múltiples cabezales enmascarada (MHA) para las fases de contexto y generación de la ejecución del modelo LLM.
A partir de aquí, la columna vertebral de AWS y su sólida integración con Kubernetes nos otorgan la capacidad de escalar de forma elástica más allá de cientos de GPU y minimizar el tiempo de inactividad y la sobrecarga de la red.
Caso de uso: nuestra API en producción
pplx-api en Perplexity: reducción de costos y confiabilidad
Nuestra API ya impulsa una de las funciones principales del producto de Perplexity. Con solo cambiar una sola función de una API externa a pplx-api, se obtuvieron ahorros de costos de $0.62M al año, lo que representa una reducción de costos de aproximadamente 4 veces. Ejecutamos pruebas A/B y monitoreamos las métricas de infraestructura para garantizar que no hubiera degradación de la calidad. En el transcurso de 2 semanas, no observamos ninguna diferencia estadísticamente significativa en la prueba A/B. Además, pplx-api pudo mantener una carga diaria de más de un millón de solicitudes, sumando casi mil millones de tokens procesados diariamente.
Los resultados de esta exploración inicial son muy alentadores y anticipamos que pplx-api impulsará más funciones de nuestros productos con el tiempo.

También utilizamos pplx-api para potenciar Perplexity Labs, nuestro entorno de pruebas de modelos que ofrece varios modelos de código abierto.

Nuestro equipo está comprometido a brindar acceso a los últimos LLM de código abierto de vanguardia. Integramos Mistral 7B, Code Llama 34b y todos los modelos Llama 2 en cuestión de horas después de su lanzamiento, y planeamos hacer lo mismo a medida que haya más LLM de código abierto con mayor capacidad disponibles.
Comienza a utilizar la API de IA de Perplexity
Puedes acceder a la API REST de pplx-api mediante solicitudes HTTPS. La autenticación en pplx-api implica los siguientes pasos:
Genera una clave de API a través de la página de configuración de la cuenta de Perplexity. La clave de API es un token de acceso de larga duración que se puede utilizar hasta que se actualice o elimine manualmente.

Envía la clave de API como token portador en el encabezado Authorization con cada solicitud de pplx-api.
En el siguiente ejemplo, PERPLEXITY_API_KEY es una variable de entorno vinculada a una clave generada mediante las instrucciones anteriores. Se utiliza CURL para enviar una solicitud de chat completion.
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?"
}
]
}'Lo que produce la siguiente respuesta, con 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í tienes un ejemplo de llamada 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, y la API es convenientemente compatible con el cliente de OpenAI para una fácil integración con las aplicaciones existentes.
Para obtener más información, visita nuestra documentación de la API y la Guía de inicio rápido.
¿Qué sigue?
En un futuro cercano, pplx-api admitirá:
LLM personalizados de Perplexity y otros LLM de código abierto.
Incrustaciones personalizadas de Perplexity e incrustaciones de código abierto.
Estructura de precios de API dedicada con acceso general una vez que finalice la versión beta pública.
API de RAG-LLM de Perplexity con conexión a datos reales y citas.
Comunícate a api@perplexity.ai si te interesa alguno de estos casos de uso.
Este es también el inicio de nuestra serie de publicaciones en el blog de Perplexity. En nuestra próxima publicación, compartiremos un análisis profundo sobre la comparación de rendimiento entre A100 y H100 para la inferencia de LLM. ¡Mantente atento!
¡Estamos contratando! Si quieres trabajar en un producto implementado a escala masiva y construir con nosotros una infraestructura de modelos de lenguaje grandes y generativos cuidadosamente diseñada y optimizada, únete a nosotros.
Síguenos en Twitter y LinkedIn, y únete a nuestro Discord para más debates.
Autores:
Lauren Yang, Kevin Hu, Aarash Heydari, William Zhang, Dmitry Pervukhin, Grigorii Alekseev, Alexandr Yarats
Privacidad de datos
Al elegir pplx-api, puedes aprovechar todo el potencial de los LLM mientras proteges la privacidad y la confianza de tus usuarios y clientes. Entendemos la importancia de proteger tu información personal y estamos comprometidos a mantener la seguridad y privacidad de nuestros usuarios. Los datos de la API se eliminan automáticamente después de 30 días, y nunca entrenamos con ningún dato transmitido a través de pplx-api. Los usuarios tienen la opción de rechazar la retención de datos en la configuración de su cuenta. Encuentra nuestra política de privacidad de la API aquí.