ประเด็นสำคัญ
- น้ำหนักโมเดลต้องการพื้นที่ประมาณ 2 ไบต์ต่อพารามิเตอร์ที่ 16-bit, 1 ไบต์ที่ 8-bit และ 0.5 ไบต์ที่ 4-bit รวมถึงพื้นที่สำหรับแคชบริบท
- GPU ที่เช่าจะคิดค่าชั่วโมงการใช้งาน ในขณะที่ API คิดค่าเฉพาะโทเคนที่คุณส่งและรับเท่านั้น
- ที่ราคา $0.15 ต่อ 1M โทเคนอินพุต และ $0.50 ต่อ 1M โทเคนเอาต์พุต การแชท 20,000 ครั้งต่อวัน โดยแต่ละครั้งมีอินพุต 1,500 และเอาต์พุต 500 จะเสียค่าใช้จ่าย $285 ต่อเดือน
- การโฮสต์ด้วยตัวเองได้เปรียบเมื่อคุณต้องการ fine-tuning โมเดลอื่น การใช้งานแบบออฟไลน์ หรือปริมาณงานที่สูงมากและคงที่
คำตอบสั้นๆ: ขึ้นอยู่กับปริมาณการใช้งานของคุณ
หากคุณถามว่าวิธีโฮสต์น้ำหนักโมเดล LLM ด้วยตนเองเป็นอย่างไร สรุปแบบตรงไปตรงมาคือ การได้โมเดลที่ตอบคำถามบนเครื่องของคุณเองเป็นเรื่องง่าย แต่การรันโมเดลให้ผู้อื่นใช้งานในราคาที่ถูกนั้นยากกว่า การ์ดจอในแล็ปท็อปหรือพีซีก็เพียงพอสำหรับการใช้งานส่วนตัว แต่บริการที่ต้องตอบคำถามผู้ใช้จำนวนมากในเวลาเดียวกันตลอด 24 ชั่วโมง จำเป็นต้องใช้หน่วยความจำมากขึ้น ปรับแต่งเพิ่มเติม และมีคนดูแลให้ระบบทำงานอย่างต่อเนื่อง
ทางเลือกหนึ่งคือการเรียกใช้เอนด์พอยต์ที่เข้ากันได้กับ OpenAI แบบโฮสต์และจ่ายตามโทเคน สำหรับงานขนาดเล็กและกลาง วิธีนี้มักจะถูกกว่าเสมอ เพราะคุณไม่ต้องจ่ายสำหรับเวลา GPU ที่ไม่ได้ใช้งาน สำหรับงานขนาดใหญ่และต่อเนื่อง หรืองานที่ต้องการโมเดลที่ปรับแต่งเอง การเป็นเจ้าของฮาร์ดแวร์เริ่มมีความสมเหตุสมผล ส่วนด้านล่างนี้แสดงตัวเลขทั้งสองด้านเพื่อให้คุณหาจุดคุ้มทุนของคุณเอง
ไม่มีแพ็กเกจฟรีที่นี่ คุณสามารถขอเครดิตทดลองใช้ครั้งเดียว $0.50 ได้ที่หน้า คีย์ API หลังจากเข้าสู่ระบบ และหลังจากนั้นคุณต้องเติมเครดิตแบบเติมเงินล่วงหน้าจาก $20 เครดิตทดลองใช้เพียงพอสำหรับการทดสอบพรอมต์ของคุณเองแบบจริงก่อนที่จะตัดสินใจอะไร
สิ่งที่จำเป็นจริงๆ ในการโฮสต์โมเดล
โมเดลภาษาคือไฟล์ขนาดใหญ่ของตัวเลข น้ำหนัก ที่ต้องอยู่ในหน่วยความจำเร็วขณะที่โมเดลทำงาน ขนาดของไฟล์นั้นคือข้อจำกัดแรก และคุณสามารถคำนวณเองได้: พารามิเตอร์คูณด้วยไบต์ต่อพารามิเตอร์
| ขนาดโมเดล | น้ำหนัก 16-bit | น้ำหนัก 8-bit | น้ำหนัก 4-bit |
|---|---|---|---|
| พารามิเตอร์ 8B | 16 GB | 8 GB | 4 GB |
| พารามิเตอร์ 32B | 64 GB | 32 GB | 16 GB |
| พารามิเตอร์ 70B | 140 GB | 70 GB | 35 GB |
นี่คือน้ำหนักโมเดลเท่านั้น นอกจากนี้คุณยังต้องการหน่วยความจำสำหรับแคชคีย์-แวลู ซึ่งขยายตามความยาวของการสนทนาที่ใช้งานอยู่ และพื้นที่สำรองสำหรับรันไทม์ โมเดลที่ระบุว่าใช้พื้นที่ 24 GB อาจใช้หน่วยความจำหมดทันทีเมื่อคุณขอบริบทยาวหรือผู้ใช้พร้อมกันหลายราย การ quantize เป็น 4-bit ทำให้ไฟล์เล็กลง แต่คุณภาพผลลัพธ์จะเปลี่ยนไปเล็กน้อย และผลกระทบจะแตกต่างกันไปตามโมเดล
จากนั้นคือด้านซอฟต์แวร์ คุณต้องการเซิร์ฟเวอร์อนุมานเช่น llama.cpp, Ollama หรือ vLLM ชั้น HTTP เพื่อให้แอปของคุณเรียกใช้งาน วิธีรีสตาร์ทเมื่อเซิร์ฟเวอร์ล้ม และการตรวจสอบเพื่อแจ้งเตือนเมื่อเกิดปัญหา ไม่มีสิ่งใดที่ยากเมื่อพิจารณาแยกกัน แต่ทั้งหมดนี้ใช้เวลา และเวลาเป็นส่วนหนึ่งของต้นทุน
ตัวเลือกที่หนึ่ง: รันบนคอมพิวเตอร์ของคุณเอง
วิธีที่ถูกที่สุดในการเริ่มต้นคือเครื่องที่คุณเป็นเจ้าของอยู่แล้ว เครื่องมือเช่น Ollama และ llama.cpp ดาวน์โหลดโมเดลและเปิดเซิร์ฟเวอร์ท้องถิ่น และหลายตัวเสนอเอนด์พอยต์สไตล์ OpenAI ดังนั้นโค้ดที่คุณเขียนเพื่อใช้งานกับมันสามารถชี้ไปที่ API แบบโฮสต์ได้โดยเปลี่ยนการตั้งค่าสองอย่าง
การโฮสต์ท้องถิ่นเหมาะเมื่อ:
- คุณเป็นบุคคลเดียวที่กำลังทดลอง และคำตอบที่ใช้เวลาไม่กี่วินาทีก็โอเค;
- ข้อมูลต้องไม่ออกจากเครื่อง;
- คุณต้องการลองโมเดลแบบเปิดหลายตัวอย่างรวดเร็ว;
- คุณมี GPU ที่มีหน่วยความจำเพียงพอและมันไม่ได้ใช้งานส่วนใหญ่ของวันอยู่แล้ว
มันไม่เหมาะเมื่อคุณต้องการให้บริการผู้อื่น เมื่อโมเดลที่คุณต้องการมีขนาดใหญ่กว่าหน่วยความจำของคุณ หรือเมื่อคุณต้องการบริบทยาว การเปรียบเทียบของเราเกี่ยวกับ โมเดลไม่เซ็นเซอร์แบบท้องถิ่นและ API แบบโฮสต์ วิเคราะห์การแลกเปลี่ยนโดยละเอียดมากขึ้น รวมถึงสิ่งที่เปลี่ยนแปลงในคุณภาพคำตอบระหว่างโมเดลท้องถิ่นขนาดเล็กและโมเดลโฮสต์ขนาดใหญ่
ค่าไฟฟ้าเป็นรายการที่แท้จริงแต่เล็กน้อยสำหรับผู้ใช้รายเดียว ต้นทุนที่ใหญ่กว่าคือฮาร์ดแวร์ที่คุณต้องซื้อ ซึ่งคุณจ่ายไม่ว่าคุณจะใช้งานหรือไม่ หากคุณเป็นเจ้าของอยู่แล้ว ต้นทุนส่วนเพิ่มต่ำและการโฮสต์ท้องถิ่นยากที่จะเอาชนะสำหรับการทดลองส่วนตัว
ตัวเลือกที่สอง: เช่าเซิร์ฟเวอร์ GPU
เมื่อเครื่องของคุณเองไม่เพียงพอ ขั้นตอนถัดไปคือ GPU เช่า ผู้ให้บริการคิดค่าบริการต่อชั่วโมงสำหรับเครื่องที่มีหน่วยความจำ GPU จำนวนหนึ่ง ราคาแตกต่างกันมากระหว่างผู้ให้บริการและเปลี่ยนแปลงบ่อย ดังนั้นตรวจสอบราคาปัจจุบันของพวกเขาแทนที่จะไว้วางใจตัวเลขที่คุณอ่านในบทความ รวมถึงบทความนี้
สิ่งที่สำคัญคือรูปแบบของบิล เซิร์ฟเวอร์เช่าคิดค่าบริการสำหรับทุกชั่วโมงที่เปิดอยู่ ไม่ว่ามันจะตอบคำขอหนึ่งคำหรือไม่มีเลย หากคุณเปิดทิ้งไว้ตลอดเดือน คณิตศาสตร์นั้นง่าย: เดือนมีประมาณ 730 ชั่วโมง (8,760 ชั่วโมงในหนึ่งปีหารด้วย 12) สมมติว่าเป็นเพียงตัวอย่างที่สมมติขึ้นและไม่ใช่ใบเสนอราคา ว่าเซิร์ฟเวอร์ที่เหมาะสมมีราคา $1 ต่อชั่วโมง การรันตลอด 24 ชั่วโมงจึงมีค่าใช้จ่าย 730 × $1 = $730 ต่อเดือนก่อนที่คุณจะเพิ่มพื้นที่เก็บข้อมูล แบนด์วิธ และเวลาของคุณเอง
คุณสามารถปิดเซิร์ฟเวอร์เมื่อไม่ได้ใช้งาน แต่คุณจะเสียเวลาในการโหลด: การโหลดโมเดลขนาดใหญ่เข้าสู่หน่วยความจำใช้เวลา และผู้ใช้รายแรกหลังจากหยุดพักต้องรอ Autoscaling ช่วยลดปัญหานี้ได้ แต่เพิ่มความซับซ้อนของตัวเอง
จุดคุ้มทุนเทียบกับ API ขึ้นอยู่กับราคา โทเคนอินพุตหนึ่งล้านตัวและโทเคนเอาต์พุตหนึ่งล้านตัวมีราคา $0.15 + $0.50 = $0.65 บน API นี้ เซิร์ฟเวอร์ที่คุณประมาณการไว้ที่ $730 เทียบเท่ากับ 730 ÷ 0.65 ≈ 1,123 คู่ดังกล่าว หรือประมาณ 1.1 พันล้านโทเคนอินพุตและ 1.1 พันล้านโทเคนเอาต์พุตในหนึ่งเดือน หากปริมาณการใช้งานต่ำกว่านี้ API จะมีราคาถูกกว่า หากสูงกว่านี้ เซิร์ฟเวอร์ที่ใช้งานอย่างมีประสิทธิภาพอาจคุ้มค่ากว่า ขึ้นอยู่กับโมเดล GPU และวิธีการปรับแต่งเซิร์ฟเวอร์ของคุณ
ตัวเลือกที่สาม: ใช้ API แบบโฮสต์
เส้นทาง API ช่วยตัดปัญหาฮาร์ดแวร์ เซิร์ฟเวอร์ และเวลาว่าง คุณส่งคำขอ รับคำตอบ และจ่ายตามโทเคนที่ใช้ ราคาอยู่ที่ $0.15 ต่อ 1M โทเคนอินพุต และ $0.50 ต่อ 1M โทเคนเอาต์พุต จ่ายตามการใช้งานจากเครดิตแบบเติมเงินล่วงหน้า ไม่มีค่าสมาชิก เครดิตไม่หมดอายุ และคำขอที่ล้มเหลวหรือถูกปฏิเสธจะไม่ถูกเรียกเก็บเงิน
นี่คือตัวอย่างที่ปริมาณการใช้งานจริงสามระดับ โดยสมมติว่าการสนทนาหนึ่งรอบใช้โทเคนอินพุต 1,500 ตัว (พรอมต์ระบบและประวัติการสนทนา) และโทเคนเอาต์พุต 500 ตัว
- หนึ่งคำขอ: โทเคนอินพุต 1,500 ตัวมีราคา 0.0015 × $0.15 = $0.000225 และโทเคนเอาต์พุต 500 ตัวมีราคา 0.0005 × $0.50 = $0.00025 รวมเป็น $0.000475
- 1,000 การสนทนาต่อวัน เป็นเวลา 30 วัน: 1,000 × $0.000475 = $0.475 ต่อวัน หรือ $14.25 ต่อเดือน
- 20,000 การสนทนาต่อวัน เป็นเวลา 30 วัน: 20,000 × $0.000475 = $9.50 ต่อวัน หรือ $285 ต่อเดือน
- งานแบทช์ 100,000 คำขอ ที่มี 2,000 โทเคนอินพุตและ 400 โทเคนเอาต์พุตต่อคำขอ: อินพุตคือ 200M โทเคน ดังนั้น 200 × $0.15 = $30; เอาต์พุตคือ 40M โทเคน ดังนั้น 40 × $0.50 = $20 รวมเป็น $50
ที่ปริมาณกลาง API มีค่าใช้จ่าย $285 ต่อเดือน ซึ่งต่ำกว่าเซิร์ฟเวอร์ที่เปิดตลอดเวลาที่ประมาณการไว้ที่ $730 อย่างมีนัยสำคัญ ที่ปริมาณสูงสุด คุณต้องการปริมาณการจราจรมากกว่านี้มากก่อนที่เซิร์ฟเวอร์เช่าจะเทียบเท่าได้ พรอมต์ของคุณจะเป็นตัวกำหนดตัวเลขที่แท้จริง ดังนั้นควรวัดจากตัวอย่างแทนการคาดเดา บล็อกการใช้งานที่ส่งกลับมาพร้อมกับทุกการตอบกลับจะบอกจำนวนโทเคนที่แน่นอน
เครดิตทดลองใช้ $0.50 ครอบคลุมคำขอประมาณ 1,052 คำขอที่มีขนาดอินพุต 1,500 และเอาต์พุต 500 (0.50 ÷ 0.000475 ≈ 1,052) ซึ่งเพียงพอสำหรับการทดสอบ หลังจากนั้นคุณเติมเงินด้วยจำนวนเต็มใดๆ ตั้งแต่ $20 ถึง $500 การเติมเงินจำนวนมากขึ้นมีโบนัส: +5% จาก $50, +10% จาก $100 และ +15% จาก $200 ดังนั้นการเติมเงิน $100 จะได้เครดิต $110 รายละเอียดอยู่ที่หน้า ราคา การชำระเงินด้วยบัตร (Visa, Mastercard, Apple Pay, Google Pay) หรือคริปโต (USDT บน TRC20, USDC บน Base)
สิ่งที่คุณเสียไปเมื่อไม่ได้โฮสต์เอง
API ไม่ได้ปราศจากข้อแลกเปลี่ยน และควรทราบข้อเหล่านี้ก่อนสร้างระบบบน API
- โมเดลเดียว คุณจะได้โมเดลแบบเปิดน้ำหนักเดียว โดยระบุชื่อเป็น
uncensoredคุณไม่สามารถสลับไปใช้โมเดลอื่นหรือโหลดน้ำหนักของคุณเองได้ - ไม่มีการปรับแต่งและรองรับเฉพาะข้อความ ไม่มีเอนด์พอยต์สำหรับการฝึก ไม่มี embeddings และไม่มีการสร้างภาพ เสียง หรือวิดีโอ
- ข้อจำกัด คีย์เต็มจำนวนอนุญาตให้ทำคำขอพร้อมกัน 8 คำขอและ 300 คำขอต่อนาที คีย์ทดลองอนุญาตให้ทำ 2 และ 60 ตามลำดับ ซึ่งเพียงพอสำหรับแอปพลิเคชันส่วนใหญ่ แต่หากเป็นแบทช์ขนาดใหญ่จำเป็นต้องมีระบบคิวฝั่งของคุณ
- บริบท หน้าต่างบริบทมีขนาด 100,000 โทเคนสำหรับพรอมต์รวมกับผลลัพธ์
- ข้อมูลของคุณออกจากเครือข่ายของคุณ พรอมต์ไม่ถูกใช้ในการฝึก แต่ข้อมูลจะส่งไปยังบุคคลที่สาม หากสิ่งนั้นไม่ยอมรับได้สำหรับชุดข้อมูลใด ให้โฮสต์ในเครื่องของคุณเอง
การโฮสต์ในเครื่องเป็นทางเลือกที่ดีกว่าเมื่อข้อกำหนดใดข้อหนึ่งต่อไปนี้ถือเป็นข้อกำหนดหลัก: การปรับแต่งเฉพาะทางบนข้อมูลของคุณเอง โมเดลเฉพาะที่ API ไม่มี การทำงานแบบออฟไลน์สมบูรณ์ หรือปริมาณการใช้งานที่คงที่และสูงพอที่ฮาร์ดแวร์ของคุณจะทำงานตลอด 24 ชั่วโมง
ลองใช้ API ก่อนซื้อฮาร์ดแวร์
การทดสอบหนึ่งชั่วโมงมีค่าใช้จ่ายน้อยกว่าหนึ่งชั่วโมงของการเช่าเซิร์ฟเวอร์ส่วนใหญ่ และบอกคุณว่าโมเดลตอบพรอมต์ของคุณได้ดีเพียงใด เอนด์พอยต์นี้เข้ากันได้กับ OpenAI ดังนั้นหากคุณมีโค้ดที่สื่อสารกับเซิร์ฟเวอร์ในเครื่องอยู่แล้ว คุณเพียงแค่เปลี่ยน Base URL คีย์ และ ID ของโมเดล สคริปต์นี้ยังรายงานค่าใช้จ่ายของแต่ละการเรียกใช้ โดยใช้ตัวเลขการใช้งานในคำตอบ:
from openai import OpenAI
client = OpenAI(
base_url="https://api.uncensoredllmhub.com/v1",
api_key="YOUR_API_KEY",
)
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise the pros and cons of self-hosting an LLM."}],
)
u = resp.usage
cost = u.prompt_tokens / 1_000_000 * 0.15 + u.completion_tokens / 1_000_000 * 0.50
print(resp.choices[0].message.content)
print(f"in={u.prompt_tokens} out={u.completion_tokens} cost=${cost:.6f}")
รันสคริปต์กับพรอมต์จริงของคุณจำนวนหลายสิบรายการ บวกยอดค่าใช้จ่าย แล้วคูณด้วยปริมาณการใช้งานรายวันที่คุณคาดหวัง จะได้ตัวเลขที่คุณสามารถเปรียบเทียบกับใบเสนอราคาฮาร์ดแวร์ได้ หากต้องการรายละเอียดการตั้งค่า เอกสารประกอบ ระบุพารามิเตอร์ที่รองรับ รวมถึงสตรีมมิง การเรียกใช้ฟังก์ชัน และโหมด JSON
