ประเด็นสำหรับรันกับ Ollamaคัญ
- โมเดลโลคอลที่ดีที่สุดคือโมเดลที่ใหญ่ที่สุดที่พอดีกับ VRAM ของคุณในความเร็วที่ใช้งานได้ ไม่ใช่โมเดลที่มีชื่อเสียงดีที่สุด
- Ollama เปิดใช้งานเอนด์พอยต์ที่เข้ากันได้กับ OpenAI บนเครื่องของคุณ ดังนั้นโค้ดไคลเอนต์ชุดเดียวกันจึงใช้งานได้ทั้งแบบโลคอลและแบบโฮสต์
- การรันแบบโลคอลให้ความเป็นส่วนตัวและการใช้งานแบบออฟไลน์; การใช้งานแบบโฮสต์ให้โมเดลที่ใหญ่กว่า ไม่มีฮาร์ดแวร์และไม่ต้องตั้งค่า
- เราให้บริการเอนด์พอยต์แบบโฮสต์เท่านั้น: ไม่มีดาวน์โหลดโมเดลจากบริการนี้
คำตอบสั้นๆ: เลือกตามความจำ แล้วทดสอบสองหรือสามโมเดล
ไม่มีโมเดลใดที่ดีที่สุดเพียงตัวเดียวสำหรับรันกับ Ollamaหรับงานนี้ เพราะข้อจำกัดคือฮาร์ดแวร์ของคุณ โมเดลต้องพอดีกับหน่วยความจำ GPU (หรือ RAM ของระบบ ซึ่งช้ากว่ามาก) พร้อมกับแคชการทำงานของมัน กฎปฏิบัติที่เรียบง่ายคือ: หาโมเดลที่ใหญ่ที่สุดที่พอดีกับหน่วยความจำของคุณอย่างสบายๆ และยังคงตอบได้ด้วยความเร็วที่คุณยอมรับได้ จากนั้นเปรียบเทียบผู้สมัครสองหรือสามรายบนพรอมต์ของคุณเอง
ชื่อและอันดับโมเดลเปลี่ยนไปทุกสองสามสัปดาห์ ทำให้รายการที่เขียนวันนี้ล้าสมัยเร็ว หลีกเลี่ยงตารางเปรียบเทียบและใช้วิธีสั้นๆ: ไลบรารี Ollama และชุมชนอัปโหลด กรองหาโมเดลที่อธิบายว่า uncensored, abliterated หรือ fine-tuned สำหรับรันกับ Ollamaหรับ roleplay ดึงโมเดลขนาดเล็กและขนาดกลางมาหนึ่งตัว แล้วรันพรอมต์สิบอันเดียวกันผ่านโมเดลเหล่านั้น พรอมต์ของคุณเองบอกคุณได้มากกว่าคะแนนบน benchmark ของคนอื่น
หากคุณพบว่าโมเดลที่พอดีกับเครื่องของคุณมีขนาดเล็กเกินไปสำหรับรันกับ Ollamaหรับคุณภาพที่คุณต้องการ การใช้งาน endpoint แบบโฮสต์คือทางเลือกอื่น ส่วนที่เหลือของหน้านี้แสดงการเปรียบเทียบเพื่อให้คุณสามารถตัดสินใจด้วยตัวเลข
วิธีการกำหนดขนาดโมเดลสำหรับรันกับ Ollamaหรับเครื่องของคุณ
สามตัวเลขที่ตัดสินใจว่าอะไรทำงานได้ดี: จำนวนพารามิเตอร์, การ quantization และความยาวของ context window
พารามิเตอร์และการ quantization
โมเดลที่มีพารามิเตอร์มากกว่าโดยทั่วไปจะเขียนได้ดีกว่า ปฏิบัติตามคำสั่งได้เชื่อถือได้มากกว่า และเก็บตัวละครได้นานกว่า แต่พารามิเตอร์ใช้หน่วยความจำ ที่ความแม่นยำ 16-bit เต็มรูปแบบ โมเดลต้องการประมาณสองไบต์ต่อพารามิเตอร์ ดังนั้นโมเดล 7B ต้องการประมาณ 14 GB ก่อนแคชใดๆ การ quantization ลดขนาดนั้น เวอร์ชัน 4-bit ต้องการประมาณครึ่งไบต์ต่อพารามิเตอร์ ดังนั้นโมเดล 7B ตัวเดียวกันจึงพอดีกับประมาณ 4 ถึง 5 GB คุณภาพลดลงเล็กน้อยในแต่ละขั้นตอนที่ลดลง และความสูญเสียมักจะเล็กน้อยที่ 4 ถึง 5 bits และชัดเจนกว่านั้นต่ำกว่านั้น
ความยาวของบริบท
context window ยังใช้หน่วยความจำด้วย เพราะโมเดลเก็บแคชของทุกอย่างในการสนทนา การ roleplay session ยาวหรือเรื่องราวที่มีข้อความก่อนหน้านี้มากต้องการแคชที่ใหญ่กว่า Ollama ช่วยให้คุณตั้งค่าขนาด context ต่อโมเดล และค่าที่ใหญ่กว่าใช้หน่วยความจำมากขึ้นและทำให้การสร้างช้าลง การตั้งค่าในท้องถิ่นจำนวนมากทำงานด้วย window ของไม่กี่พันโทเคนเพื่อคงความเร็ว ซึ่งหมายความว่าโมเดลลืมจุดเริ่มต้นของการสนทนาที่ยาวนาน
ความเร็ว
หากโมเดลล้นออกจากหน่วยความจำ GPU ไปยัง RAM ของระบบ การสร้างอาจลดลงจากจังหวะการอ่านที่สบายเป็นคำต่อคำ โมเดลที่เล็กลงที่พอดีกับ GPU ทั้งหมดมักจะรู้สึกดีกว่าโมเดลที่ใหญ่กว่าที่ไม่พอดี แม้ว่าจะเขียนได้ดีกว่าเล็กน้อยก็ตาม
การรันโมเดลใน Ollama และการเรียกใช้จากโค้ด
เมื่อติดตั้ง Ollama แล้ว การดึงและการแชทต้องใช้คำสั่งสองคำสั่ง และชื่อโมเดลที่แน่นอนมาจากหน้าไลบรารีที่คุณเลือก:
ollama pull MODEL_NAME
ollama run MODEL_NAME
Ollama ยังให้บริการ API ที่เข้ากันได้กับ OpenAI บนเครื่องของคุณเอง โดยค่าเริ่มต้นที่ http://localhost:11434/v1 นั่นหมายความว่าโค้ดไคลเอนต์เดียวกันสามารถพูดคุยกับโมเดลในท้องถิ่นหรือโมเดลที่โฮสต์ได้ และคุณเปลี่ยนโดยการเปลี่ยน base URL และชื่อโมเดล:
from openai import OpenAI
# Local Ollama (the key is ignored but must be non-empty)
local = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")
# Hosted endpoint
hosted = OpenAI(base_url="https://api.ornith.top/v1", api_key="YOUR_API_KEY")
def ask(client, model, text):
r = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": text}],
)
return r.choices[0].message.content
prompt = "Write a tense two-paragraph scene set in an abandoned lighthouse."
print(ask(local, "MODEL_NAME", prompt))
print(ask(hosted, "uncensored", prompt))
การรันทั้งสองบนพรอมต์เดียวกันเป็นวิธีที่เร็วที่สุดในการตอบคำถามสำหรับรันกับ Ollamaหรับกรณีของคุณเอง หากผลลัพธ์จากโมเดลในเครื่องเพียงพอ คุณก็เสร็จสิ้นและมันใช้ไฟฟ้าของคุณ หากไม่ คุณมีพื้นฐานสำหรับรันกับ Ollamaหรับสิ่งที่คุณจะได้รับ
Ollama ในเครื่องเทียบกับ API แบบโฮสต์
ไม่มีวิธีใดที่ดีกว่าในทุกกรณี ตารางนี้เน้นสิ่งที่ถูกต้องตามโครงสร้างของแต่ละแนวทาง
| จุด | ใช้งานกับ Ollama ในเครื่อง | API แบบโฮสต์ |
|---|---|---|
| ต้นทุนล่วงหน้า | GPU ของคุณเองหรือเครื่องที่มี RAM เพียงพอ | ไม่มี; เครดิตแบบเติมเงินล่วงหน้าเริ่มต้นที่ $20 |
| ต้นทุนการรัน | ค่าไฟฟ้าและเวลาของคุณ | $0.15 ต่อ 1M โทเคนอินพุต, $0.50 ต่อ 1M โทเคนเอาต์พุต |
| ขนาดโมเดล | จำกัดโดยหน่วยความจำของคุณ | โมเดลหนึ่งตัวที่เลือกโดยผู้ให้บริการ |
| ทำงานแบบออฟไลน์ได้ | ใช่ | ไม่มี, ต้องการอินเทอร์เน็ต |
| ข้อมูลออกจากเครื่องของคุณ | ไม่ | ใช่, พรอมต์ส่งไปยังผู้ให้บริการ; ของเรา ไม่ถูกใช้ในการฝึก |
| ตัวเลือกโมเดล | ทุกอย่างที่คุณดาวน์โหลดได้ | มีเพียงตัวที่เสนอ |
| ผู้ใช้พร้อมกัน | ผูกติดกับฮาร์ดแวร์ของคุณ | รองรับคำขอพร้อมกันได้สูงสุด 8 คำขอต่อคีย์แบบเต็ม |
| การตั้งค่า | ติดตั้ง, ดึง, ปรับการตั้งค่า | เปลี่ยน base URL และคีย์ |
การติดตั้งแบบ Local ชนะด้านความเป็นส่วนตัว การใช้งานแบบออฟไลน์ และอิสระในการเลือก หากข้อความของคุณต้องไม่ออกนอกเครื่อง หรือต้องการเปลี่ยนโมเดลทุกสัปดาห์ ให้รันแบบ Local แต่ API แบบโฮสต์ชนะด้านเวลาในการติดตั้ง การไม่ใช้ GPU ของคุณระหว่างทำงาน และการให้บริการแอปที่มีผู้ใช้หลายคนพร้อมกัน
เป็นเรื่องยุติธรรมที่จะบอกว่าเราไม่เสนออะไร บริการนี้เป็นเอนด์พอยต์แบบโฮสต์เท่านั้น ไม่มีไฟล์โมเดลให้ดาวน์โหลด ไม่มี fine-tuning และไม่สามารถนำน้ำหนักโมเดลของคุณเองมาใช้ได้ หากคุณต้องการเป็นเจ้าของโมเดล Ollama คือเครื่องมือที่เหมาะสม และคู่มือ LLM API แบบ open source ของเราจะอธิบายตัวเลือกอื่นๆ เพิ่มเติม
ต้นทุนของบริการแบบโฮสต์ เมื่อคำนวณอย่างละเอียด
ผู้คนมักคิดว่าการใช้โมเดลแบบโฮสต์มีค่าใช้จ่ายสูงเมื่อเทียบกับการรันแบบ Local ฟรี แต่การรันแบบ Local ไม่ได้ฟรีเมื่อรวมค่าฮาร์ดแวร์แล้ว และการเปรียบเทียบจะชัดเจนยิ่งขึ้นเมื่อดูการใช้งานจริง ราคาที่นี่คือ $0.15 ต่อ 1M input tokens และ $0.50 ต่อ 1M output tokens
- บทบาทสมมติแบบสบายๆ 100 ข้อความต่อวัน สมมติว่าการตอบแต่ละครั้งส่ง history ยาว 3,000 tokens และได้รับกลับ 300 tokens Input ต่อครั้ง: 3,000 ที่ $0.15 ต่อ 1M คือ $0.00045 Output: 300 ที่ $0.50 ต่อ 1M คือ $0.00015 นั่นคือ $0.0006 ต่อครั้ง $0.06 สำหรับรันกับ Ollamaหรับ 100 ครั้ง หรือประมาณ $1.80 ตลอด 30 วัน
- โครงการเขียนงาน 5M input tokens และ 1M output tokens ในหนึ่งเดือน คิดเป็น $0.75 บวก $0.50 รวมเป็น $1.25
- แอปขนาดเล็ก 200M input และ 40M output tokens ต่อเดือน คิดเป็น $30 บวก $20 รวมเป็น $50
เฉพาะคุณเท่านั้นที่จะกำหนดราคา GPU ของคุณเอง แต่การใช้งานระดับเบาและปานกลางมีต้นทุนต่ำมากเมื่อใช้บริการโฮสต์ ยอดเติมเงินขั้นต่ำ $20 ครอบคลุมการใช้งานเป็นเวลานานในสองระดับแรก และเครดิตไม่หมดอายุ ดังนั้นจะไม่หายไปหากคุณหยุดใช้งานหนึ่งเดือน ยอดเติมเงินที่สูงกว่านี้มีโบนัส: 5% จาก $50, 10% จาก $100, 15% จาก $200 รายละเอียดทั้งหมดอยู่ที่หน้า หน้าราคา
วิธีที่สมเหตุสมผลในการรวมทั้งสองอย่าง
คุณไม่จำเป็นต้องเลือกเพียงครั้งเดียว ผู้คนจำนวนมากรันโมเดลขนาดเล็กแบบ Local สำหรับรันกับ Ollamaหรับร่างข้อความและบันทึกส่วนตัว และส่งงานที่ยาวหรือต้องการทรัพยากรมากกว่าไปยังเอนด์พอยต์แบบโฮสต์ เนื่องจากทั้งสองรูปแบบรองรับ OpenAI format แอปของคุณสามารถเก็บ client object สองตัวและกำหนดเส้นทางตามงานได้ เช่น ในโค้ดด้านบน
เมื่อคุณทดสอบฝั่งโฮสต์ ผู้ใช้ใหม่สามารถรับเครดิตทดลองใช้ $0.50 ได้เพียงคลิกเดียวที่หน้าคีย์ API โดยไม่ต้องใช้บัตรเครดิต จำกัดคนละหนึ่งครั้ง ใช้ได้ 7 วัน จากตัวเลขต่อเทิร์นข้างต้น นั่นคือบทบาทการเล่นหลายร้อยรอบ เพียงพอสำหรับรันกับ Ollamaหรับการเปรียบเทียบกับโมเดลในเครื่องที่ดีที่สุดของคุณบนพรอมต์เดียวกัน คุณสามารถ สร้างคีย์ API หลังจากเข้าสู่ระบบด้วย Google หรืออีเมลและรหัสผ่าน เอกสาร API ระบุพารามิเตอร์เช่น temperature, top_p, stop และ seed ซึ่งส่งผ่านไปยังโมเดล ดังนั้นการตั้งค่า sampling ในเครื่องของคุณจึงถูกส่งต่อ
ข้อจำกัดบางประการที่ต้องวางแผน คีย์ทดลองอนุญาตให้ทำคำขอพร้อมกัน 2 คำขอและ 60 คำขอต่อนาที คีย์เต็มอนุญาตให้ทำ 8 และ 300 คำขอ หน้าต่างบริบทคือ 100,000 โทเคน ซึ่งใหญ่กว่าสิ่งที่การตั้งค่าในเครื่องส่วนใหญ่รันได้อย่างสบาย และกฎเดียวที่ไม่มีการเปลี่ยนแปลงการตั้งค่าใดๆ คือโมเดลนี้ใช้สำหรับรันกับ Ollamaหรับผู้ใหญ่ตามกฎหมายและไม่ผลิตเนื้อหาทางเพศที่เกี่ยวข้องกับผู้เยาว์
