ขอแนะนำ 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 ที่คุ้นเคย
การอนุมานที่รวดเร็วเป็นพิเศษ: ระบบการอนุมานที่ออกแบบมาอย่างพิถีพิถันของเรามีประสิทธิภาพสูง และมีความหน่วงต่ำกว่า Replicate สูงสุด 2.9 เท่า และต่ำกว่า Anyscale สูงสุด 3.1 เท่า
โครงสร้างพื้นฐานที่ผ่านการพิสูจน์แล้ว: pplx-apiได้รับการพิสูจน์แล้วว่ามีความเสถียร โดยรองรับปริมาณการใช้งานระดับการผลิตทั้งใน Perplexity answer engine และ Labs playground ของเรา
แหล่งรวม LLM โอเพนซอร์สแบบครบวงจร: ทีมงานของเราทุ่มเทในการเพิ่มโมเดลโอเพนซอร์สใหม่ๆ ทันทีที่เปิดตัว ตัวอย่างเช่น เราได้เพิ่มโมเดล Llama และ Mistral ภายในไม่กี่ชั่วโมงหลังการเปิดตัว โดยไม่ต้องเข้าถึงล่วงหน้าก่อนปล่อย
pplx-api เปิดให้ใช้งานในรูปแบบเบต้าสาธารณะและใช้งานได้ฟรีสำหรับผู้ใช้ที่มี การสมัครสมาชิก Perplexity Pro
ใช้ pplx-api สำหรับแฮกกาธอนวันหยุดสุดสัปดาห์แบบสบายๆ หรือเป็นโซลูชันเชิงพาณิชย์เพื่อสร้างผลิตภัณฑ์ใหม่ๆ ที่สร้างสรรค์ เราหวังว่าจะได้เรียนรู้วิธีที่ผู้คนสร้างผลิตภัณฑ์ที่เจ๋งและสร้างสรรค์ด้วย API ของเราผ่านการเปิดตัวนี้ โปรดติดต่อ api@perplexity.ai หากคุณมี Use Case ทางธุรกิจสำหรับ pplx-api เรารอรับฟังจากคุณอยู่เสมอ!
ประโยชน์ของ pplx-api
ใช้งานง่าย
การปรับใช้และการอนุมาน LLM จำเป็นต้องอาศัยโครงสร้างพื้นฐานจำนวนมากเพื่อให้การให้บริการโมเดลมีประสิทธิภาพและคุ้มค่าคุ้มราคา นักพัฒนาสามารถใช้ API ของเราได้ทันทีโดยไม่ต้องมีความรู้เชิงลึกเกี่ยวกับ C++/CUDA หรือการเข้าถึง GPU แต่ยังคงเพลิดเพลินกับประสิทธิภาพระดับล้ำสมัย การอนุมาน LLM ของเรายังช่วยลดความซับซ้อนและความจำเป็นในการจัดการฮาร์ดแวร์ของคุณเอง ซึ่งช่วยเพิ่มความง่ายในการใช้งานให้ดียิ่งขึ้นไปอีก
การอนุมานที่รวดเร็วเป็นพิเศษ
LLM API ของ Perplexity ได้รับการออกแบบและปรับแต่งอย่างพิถีพิถันเพื่อให้การอนุมานเป็นไปอย่างรวดเร็ว เพื่อให้บรรลุเป้าหมายนี้ เราได้สร้างโครงสร้างพื้นฐานการอนุมาน LLM ที่เป็นกรรมสิทธิ์รอบๆ TensorRT-LLM ของ NVIDIA ซึ่งให้บริการบน 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 สำหรับสถานการณ์สตรีมเดี่ยวและเซิร์ฟเวอร์บน A100 GPU จำนวน 2 ตัว โดยใช้โมเดล Llama-2-13B-chat ที่แบ่งส่วน (sharded) ข้าม GPU ทั้งสองตัว สำหรับสถานการณ์สตรีมเดี่ยว เซิร์ฟเวอร์จะประมวลผลคำขอทีละรายการ สำหรับสถานการณ์เซิร์ฟเวอร์ ไคลเอนต์จะส่งคำขอตามการแจกแจงแบบปัวซอง (Poisson distribution) ด้วยอัตราคำขอที่แตกต่างกันเพื่อจำลองภาระงานที่แตกต่างกัน สำหรับอัตราคำขอ เราดำเนินการสวอปเล็กน้อยจนถึงสูงสุด 1 คำขอ/วินาที ซึ่งเป็นปริมาณงานสูงสุดที่ TGI รองรับได้ เราใช้ข้อมูลจริงที่มีความยาวโทเค็นอินพุตและเอาต์พุตที่หลากหลายเพื่อจำลองพฤติกรรมการผลิต คำขอมีค่าเฉลี่ย ~700 โทเค็นอินพุต และ ~550 โทเค็นเอาต์พุต
การใช้ข้อมูลอินพุตเดียวกันและส่งคำขอแบบสตรีมเดี่ยว เรายังได้วัดความหน่วงเฉลี่ยของ API ของ Replicate และ Anyscale สำหรับโมเดลเดียวกันนี้ เพื่อรวบรวมเกณฑ์มาตรฐานประสิทธิภาพเทียบกับ API อื่นที่มีอยู่


โดยใช้การตั้งค่าการทดลองแบบเดียวกัน เราได้เปรียบเทียบปริมาณงานสูงสุดของ pplx-api กับ TGI โดยมีความเร็วในการถอดรหัสเป็นข้อจำกัดด้านความหน่วง ในการทดลองของเรา pplx-api ประมวลผลโทเค็นได้เร็วกว่า TGI 1.90x-6.75x และ TGI ไม่สามารถตอบสนองข้อจำกัดด้านความหน่วงที่เข้มงวดกว่าของเราที่ 60 และ 80 โทเค็น/วินาที ได้เลย เราประเมิน TGI ภายใต้เงื่อนไขฮาร์ดแวร์และภาระงานเดียวกันกับที่เราใช้ประเมิน pplx-api การเปรียบเทียบเมตริกนี้กับ Replicate และ Anyscale ไม่สามารถทำได้เนื่องจากเราไม่สามารถควบคุมฮาร์ดแวร์และปัจจัยด้านภาระงานของพวกเขาได้
เพื่อเป็นข้อมูลอ้างอิง ความเร็วในการอ่านเฉลี่ยของมนุษย์คือ 5 โทเค็น/วินาที ซึ่งหมายความว่า pplx-api สามารถให้บริการในอัตราที่เร็วกว่าความเร็วในการอ่านของคนเราเสียอีก

ภาพรวมของโครงสร้างพื้นฐาน pplx-api
การบรรลุตัวเลขความหน่วงเหล่านี้ต้องอาศัยการผสมผสานระหว่างซอฟต์แวร์และฮาร์ดแวร์ที่ทันสมัย
อินสแตนซ์ AWS p4d instances ที่ขับเคลื่อนด้วย NVIDIA A100 GPU เป็นตัวเลือกที่คุ้มค่าที่สุดและน่าเชื่อถือที่สุดสำหรับการขยายขนาด GPU ด้วยความเร็วสัญญาณนาฬิกาที่ดีที่สุดในระดับเดียวกัน
สำหรับซอฟต์แวร์ที่จะใช้ประโยชน์จากฮาร์ดแวร์นี้ เราใช้งาน TensorRT-LLM ของ NVIDIA ซึ่งเป็นไลบรารีโอเพนซอร์สที่ช่วยเร่งความเร็วและเพิ่มประสิทธิภาพการอนุมาน LLM โดย TensorRT-LLM จะห่อหุ้มคอมไพเลอร์การเรียนรู้เชิงลึกของ TensorRT และรวมเคอร์เนลที่ได้รับการปรับแต่งล่าสุดซึ่งสร้างขึ้นสำหรับการใช้งานที่ทันสมัยของ FlashAttention และ masked multi-head attention (MHA) สำหรับขั้นตอนบริบทและการสร้างของการประมวลผลโมเดล LLM
จากจุดนี้ กระดูกสันหลังของ AWS และการบูรณาการที่แข็งแกร่งกับ Kubernetes ช่วยให้เราสามารถขยายขนาดได้อย่างยืดหยุ่นเกินกว่าร้อย GPU และลดเวลาหยุดทำงานและค่าใช้จ่ายด้านเครือข่ายให้น้อยที่สุด
Use Case: API ของเราในการผลิตจริง
pplx-api ใน Perplexity: การลดต้นทุนและความน่าเชื่อถือ
API ของเรากำลังขับเคลื่อนฟีเจอร์ผลิตภัณฑ์หลักอย่างหนึ่งของ Perplexity อยู่แล้ว การเปลี่ยนฟีเจอร์เดียวจาก API ภายนอกมาเป็น pplx-api ส่งผลให้ประหยัดต้นทุนได้ถึง 0.62 ล้านดอลลาร์/ปี ซึ่งเป็นการลดต้นทุนลงประมาณ 4 เท่า เราได้เรียกใช้การทดสอบ A/B และตรวจสอบเมตริกโครงสร้างพื้นฐานเพื่อให้แน่ใจว่าจะไม่มีคุณภาพลดลง ในช่วงระยะเวลา 2 สัปดาห์ เราไม่สังเกตเห็นความแตกต่างที่มีนัยสำคัญทางสถิติในการทดสอบ A/B นอกจากนี้ pplx-api ยังสามารถรองรับภาระงานรายวันได้มากกว่าหนึ่งล้านคำขอ รวมเป็นโทเค็นที่ผ่านการประมวลผลเกือบหนึ่งพันล้านโทเค็นต่อวัน
ผลลัพธ์จากการสำรวจเบื้องต้นนี้น่าประทับใจมาก และเราคาดว่า pplx-api จะขับเคลื่อนฟีเจอร์ผลิตภัณฑ์ของเรามากขึ้นเรื่อยๆ ตามกาลเวลา

เรายังใช้ pplx-api เพื่อขับเคลื่อน Perplexity Labs ซึ่งเป็น Playground ของโมเดลของเราที่ให้บริการโมเดลโอเพนซอร์สต่างๆ

ทีมงานของเรามุ่งมั่นที่จะให้การเข้าถึง LLM แบบโอเพนซอร์สที่ทันสมัยล่าสุด เราได้ทำการรวม Mistral 7B, Code Llama 34b และโมเดล Llama 2 ทั้งหมดภายในไม่กี่ชั่วโมงหลังจากการเปิดตัว และวางแผนที่จะทำเช่นเดียวกันเมื่อมี LLM แบบโอเพนซอร์สที่มีความสามารถมากกว่าเดิมให้บริการ
เริ่มต้นใช้งาน AI API ของ Perplexity
คุณสามารถเข้าถึง pplx-api REST API ได้โดยใช้คำขอ HTTPS การตรวจสอบสิทธิ์ใน pplx-api เกี่ยวข้องกับขั้นตอนต่อไปนี้:
สร้างคีย์ API ผ่าน หน้าการตั้งค่าบัญชี Perplexity คีย์ API เป็นโทเค็นการเข้าถึงที่มีอายุการใช้งานยาวนานซึ่งสามารถใช้ได้จนกว่าจะรีเฟรชหรือลบด้วยตนเอง

ส่งคีย์ API เป็น Bearer token ในส่วนหัว Authorization กับทุกคำขอ pplx-api
ในตัวอย่างต่อไปนี้ PERPLEXITY_API_KEY คือตัวแปรสภาพแวดล้อมที่ผูกกับคีย์ที่สร้างขึ้นโดยใช้คำแนะนำด้านบน CURL ถูกใช้เพื่อส่งคำขอเติมเต็มแชท (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?"
}
]
}'ซึ่งจะส่งผลลัพธ์ต่อไปนี้ โดยมี 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 และ คู่มือเริ่มต้นใช้งานฉบับย่อ</g2 ของเรา
อะไรคือขั้นตอนต่อไป
ในอนาคตอันใกล้นี้ pplx-api จะรองรับ:
LLM ของ Perplexity แบบกำหนดเองและ LLM โอเพนซอร์สอื่นๆ
Embedding ของ Perplexity แบบกำหนดเองและ Embedding โอเพนซอร์ส
โครงสร้างราคา API แบบเฉพาะพร้อมการเข้าถึงทั่วไปหลังจากการสิ้นสุดช่วงเบต้าสาธารณะ
Perplexity RAG-LLM API พร้อมการเชื่อมโยงข้อมูลจริงและการอ้างอิงแหล่งที่มา
ติดต่อ api@perplexity.ai หากคุณสนใจ Use Case เหล่านี้
นี่คือจุดเริ่มต้นของชุดโพสต์บล็อก Perplexity ของเราด้วย ในโพสต์ถัดไป เราจะมาเจาะลึกการเปรียบเทียบประสิทธิภาพระหว่าง A100 และ H100 สำหรับการอนุมาน LLM โปรดติดตาม!
เรากำลังรับสมัครงาน! หากคุณต้องการทำงานกับผลิตภัณฑ์ที่ปรับใช้ในสเกลขนาดใหญ่และสร้างโครงสร้างพื้นฐานโมเดลภาษาขนาดใหญ่และ Generative ที่ได้รับการออกแบบมาอย่างพิถีพิถันและปรับแต่งอย่างรอบคอบไปกับเรา โปรด เข้าร่วมกับเรา
ติดตามเราบน 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 ของเราได้ที่นี่