Memperkenalkan pplx-api

API Perplexity Labs yang cepat dan efisien untuk LLM sumber terbuka

Introducing pplx-api by Perplexity Labs

Perhatian: Fitur di bawah ini telah usang untuk model saat ini. Pelajari lebih lanjut tentang API kami

Kami dengan senang hati mengumumkan pplx-api, yang dirancang sebagai salah satu cara tercepat untuk mengakses model Mistral 7B, Llama2 13B, Code Llama 34B, Llama2 70B, dan replit-code-v1.5-3b. pplx-api memudahkan para pengembang untuk mengintegrasikan LLM sumber terbuka mutakhir ke dalam proyek mereka.

pplx-api kami menyediakan:

Kemudahan penggunaan: pengembang dapat menggunakan model sumber terbuka mutakhir secara langsung dan mulai menggunakannya dalam hitungan menit dengan REST API yang familier.

Inferensi yang sangat cepat: sistem inferensi kami yang dirancang secara cermat sangat efisien dan menghasilkan latensi hingga 2,9x lebih rendah daripada Replicate dan 3,1x lebih rendah daripada Anyscale.

Infrastruktur yang telah teruji: pplx-api terbukti andal, melayani lalu lintas tingkat produksi di mesin jawab Perplexity dan Labs playground kami.

Solusi lengkap untuk LLM sumber terbuka: tim kami berdedikasi untuk menambahkan model sumber terbuka baru begitu tersedia. Sebagai contoh, kami menambahkan model Llama dan Mistral dalam beberapa waktu setelah peluncuran tanpa akses pra-rilis.

pplx-api saat ini berada dalam tahap beta publik dan gratis bagi pengguna dengan langganan Perplexity Pro.

Gunakan pplx-api untuk hackathon akhir pekan yang santai atau sebagai solusi komersial untuk membangun produk baru yang inovatif. Kami berharap dapat mempelajari bagaimana orang-orang dapat membangun produk yang keren dan inovatif dengan API kami melalui rilis ini. Silakan hubungi api@perplexity.ai jika Anda memiliki kasus penggunaan bisnis untuk pplx-api. Kami akan senang mendengar dari Anda!

Manfaat pplx-api

Kemudahan Penggunaan

Penerapan dan inferensi LLM memerlukan upaya infrastruktur yang signifikan agar penyajian model memiliki performa tinggi dan hemat biaya. Pengembang dapat menggunakan API kami secara langsung, tanpa pengetahuan mendalam tentang C++/CUDA atau akses ke GPU, sekaligus tetap menikmati performa mutakhir. Inferensi LLM kami juga mengabstraksi kompleksitas dan kebutuhan untuk mengelola perangkat keras Anda sendiri, sehingga semakin meningkatkan kemudahan penggunaan.


Inferensi yang Sangat Cepat

API LLM Perplexity dirancang dan dioptimalkan secara cermat untuk inferensi cepat. Untuk mencapai hal ini, kami membangun infrastruktur inferensi LLM proprietary di sekitar TensorRT-LLM NVIDIA yang dijalankan pada GPU A100 yang disediakan oleh AWS. Pelajari lebih lanjut di bagian Ikhtisar Infrastruktur pplx-api. Hasilnya, pplx-api adalah salah satu API Llama dan Mistral tercepat yang tersedia secara komersial.

Untuk melakukan benchmark terhadap solusi yang ada, kami membandingkan latensi pplx-api dengan pustaka inferensi LLM lainnya. Dalam eksperimen kami, pplx-api mencapai latensi keseluruhan hingga 2,92x lebih cepat dibandingkan Text Generation Inference (TGI), dan latensi respons awal hingga 4,35x lebih cepat. Untuk eksperimen ini, kami membandingkan TGI dan inferensi Perplexity untuk skenario alur tunggal (single-stream) dan server pada 2 GPU A100 menggunakan model Llama-2-13B-chat yang dibagi di kedua GPU. Untuk skenario alur tunggal, server memproses satu permintaan demi satu. Dalam skenario server, klien mengirimkan permintaan sesuai dengan distribusi Poisson dengan tingkat permintaan yang bervariasi untuk meniru beban yang bervariasi. Untuk tingkat permintaan, kami melakukan penyapuan kecil hingga maksimum 1 permintaan / detik, throughput maksimum yang dipertahankan oleh TGI. Kami menggunakan data dunia nyata dengan berbagai panjang token input dan output untuk mensimulasikan perilaku produksi. Permintaan rata-rata berukuran ~700 token input dan ~550 token output.

Menggunakan input yang sama dan mengirimkan satu alur permintaan tunggal, kami juga mengukur rata-rata latensi API Replicate dan Anyscale untuk model yang sama guna mengumpulkan dasar perbandingan kinerja terhadap API lain yang sudah ada.

Menggunakan pengaturan eksperimental yang sama, kami membandingkan throughput maksimum pplx-api dengan TGI, dengan kecepatan dekode sebagai batasan latensi. Dalam eksperimen kami, pplx-api memproses token 1,90x-6,75x lebih cepat daripada TGI, dan TGI gagal memenuhi batasan latensi kami yang lebih ketat pada 60 dan 80 token/detik. Kami mengevaluasi TGI di bawah kondisi perangkat keras dan beban yang sama yang kami gunakan untuk mengevaluasi pplx-api. Membandingkan metrik ini dengan Replicate dan Anyscale tidak memungkinkan karena kami tidak dapat mengontrol faktor perangkat keras dan beban mereka.

Sebagai referensi, kecepatan membaca rata-rata manusia adalah 5 token/detik, yang berarti pplx-api mampu melayani pada tingkat yang lebih cepat daripada kemampuan seseorang membaca.

Ikhtisar infrastruktur pplx-api

Mencapai angka latensi ini memerlukan kombinasi perangkat lunak dan perangkat keras mutakhir.

Instans AWS p4d yang didukung oleh GPU NVIDIA A100 menjadi pilihan yang paling hemat biaya dan andal untuk menskalakan GPU dengan kecepatan clock terbaik di kelasnya.

Agar perangkat lunak dapat memanfaatkan perangkat keras ini, kami menjalankan TensorRT-LLM dari NVIDIA, sebuah pustaka sumber terbuka yang mempercepat dan mengoptimalkan inferensi LLM. TensorRT-LLM membungkus kompiler deep learning TensorRT dan menyertakan kernel teroptimasi terbaru yang dibuat untuk implementasi mutakhir dari FlashAttention dan masked multi-head attention (MHA) untuk fase konteks dan generasi dari eksekusi model LLM.

Dari sini, tulang punggung AWS dan integrasinya yang kuat dengan Kubernetes memberdayakan kami untuk melakukan penskalaan secara elastis melampaui ratusan GPU serta meminimalkan waktu henti (downtime) dan overhead jaringan.

Kasus Penggunaan: API Kami dalam Produksi

pplx-api di Perplexity: Pengurangan Biaya dan Keandalan

API kami telah mendukung salah satu fitur produk inti Perplexity. Hanya dengan beralih satu fitur dari API eksternal ke pplx-api, penghematan biaya sebesar $0,62 juta/tahun berhasil dicapai, yang merupakan pengurangan biaya sekitar 4x. Kami menjalankan uji A/B dan memantau metrik infrastruktur untuk memastikan tidak ada penurunan kualitas. Selama periode 2 minggu, kami tidak mengamati perbedaan yang signifikan secara statistik dalam uji A/B tersebut. Selain itu, pplx-api mampu mempertahankan beban harian lebih dari satu juta permintaan, dengan total hampir satu miliar token yang diproses setiap hari.

Hasil dari eksplorasi awal ini sangat menggembirakan, dan kami memperkirakan pplx-api akan mendukung lebih banyak fitur produk kami seiring berjalannya waktu.

pplx-api di Perplexity Labs: Ekosistem Inferensi Sumber Terbuka

Kami juga menggunakan pplx-api untuk mendukung Perplexity Labs, playground model kami yang menyajikan berbagai model sumber terbuka.

Tim kami berkomitmen untuk menyediakan akses ke LLM sumber terbuka mutakhir terbaru. Kami mengintegrasikan Mistral 7B, Code Llama 34b, dan semua model Llama 2 dalam hitungan jam setelah dirilis, dan berencana melakukan hal yang sama saat LLM sumber terbuka yang lebih canggih tersedia.

Memulai dengan API AI Perplexity

Anda dapat mengakses REST API pplx-api menggunakan permintaan HTTPS. Autentikasi ke pplx-api melibatkan langkah-langkah berikut:

Buat kunci API melalui Halaman Pengaturan Akun Perplexity. Kunci API adalah token akses berumur panjang yang dapat digunakan hingga disegarkan atau dihapus secara manual.

Kirimkan kunci API sebagai token bearer di header Authorization pada setiap permintaan pplx-api.

Pada contoh berikut, PERPLEXITY_API_KEY adalah variabel lingkungan yang terikat pada kunci yang dibuat menggunakan instruksi di atas. CURL digunakan untuk mengirimkan permintaan chat completion.

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

Yang menghasilkan respons berikut, dengan content-type: application/json

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 } }

Berikut adalah contoh panggilan Python:

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://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)

Saat ini kami mendukung Mistral 7B, Llama 13B, Code Llama 34B, Llama 70B, dan API ini kompatibel dengan klien OpenAI untuk memudahkan integrasi dengan aplikasi yang sudah ada.

Untuk informasi lebih lanjut, silakan kunjungi dokumentasi API dan Panduan Memulai kami.

Apa Selanjutnya

Dalam waktu dekat, pplx-api akan mendukung:

LLM Perplexity kustom dan LLM sumber terbuka lainnya.

Embedding Perplexity kustom dan embedding sumber terbuka.

Struktur penetapan harga API khusus dengan akses umum setelah beta publik selesai.

API Perplexity RAG-LLM dengan grounding untuk fakta dan sitasi.

Hubungi api@perplexity.ai jika Anda tertarik dengan salah satu kasus penggunaan ini.

Ini juga merupakan awal dari seri postingan Blog Perplexity kami. Pada postingan berikutnya, kami akan membagikan ulasan mendalam mengenai perbandingan performa A100 vs H100 untuk inferensi LLM. Pantau terus!

Kami sedang merekrut! Jika Anda ingin mengerjakan produk yang diterapkan dalam skala besar dan membangun infrastruktur model bahasa besar serta generatif yang dirancang secara cermat dan dioptimalkan bersama kami, silakan bergabung dengan kami.

Ikuti kami di Twitter, LinkedIn dan bergabunglah dengan Discord kami untuk diskusi lebih lanjut.

Penulis:

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

Privasi Data

Dengan memilih pplx-api, Anda dapat memanfaatkan potensi penuh LLM sekaligus melindungi privasi dan kepercayaan pengguna serta pelanggan Anda. Kami memahami pentingnya melindungi informasi pribadi Anda dan berkomitmen untuk menjaga keamanan serta privasi pengguna kami. Data API otomatis dihapus setelah 30 hari, dan kami tidak pernah melatih model menggunakan data apa pun yang ditransmisikan melalui pplx-api. Pengguna memiliki opsi untuk memilih keluar dari retensi data di pengaturan akun mereka. Temukan kebijakan privasi API kami di sini.