การคิดค่าบริการสำหรับ RFT ทำงานอย่างไร
Reinforcement Fine‑Tuning (RFT) ช่วยให้คุณปรับประสิทธิภาพของโมเดลการให้เหตุผลของ OpenAI ให้เหมาะสมโดยใช้การเรียนรู้แบบเสริมกำลัง ต่างจากบริการ fine-tuning แบบมีผู้สอนหรือแบบอิงความชอบของเรา ซึ่งคิดค่าบริการตามจำนวน Token ในชุดข้อมูลฝึก โดย RFT จะคิดค่าบริการตามเวลาที่รอบการฝึกของคุณใช้ไปกับงานแมชชีนเลิร์นนิงหลัก
คู่มือนี้อธิบายว่าส่วนใดนับเป็นเวลาฝึกที่คิดค่าบริการ วิธีที่เราจัดการกับการหยุดชั่วคราวและการยกเลิก และตัวเลือกการกำหนดค่าของคุณอาจส่งผลต่อต้นทุนอย่างไร
ราคา
การประมวลผล: $100 ต่อชั่วโมงของเวลาจริงที่ใช้ในลูปการฝึกหลักสำหรับ
o4-mini-2025-04-16ค่าบริการจะคิดตามจริงเป็นรายวินาทีและปัดเศษเป็นทศนิยมสองตำแหน่งในใบแจ้งหนี้ (เช่น 2.55 ชั่วโมง)การใช้งาน grader model: หากคุณใช้โมเดล OpenAI เพื่อ "ให้คะแนน" เอาต์พุตระหว่างการฝึก Token ที่ใช้ในการเรียกให้คะแนนเหล่านั้นจะถูกคิดค่าบริการแยกต่างหากตามอัตรา API มาตรฐานของเราหลังการฝึกเสร็จสิ้น
เราคิดค่าบริการเฉพาะงานฝึกที่อัปเดตโมเดลของคุณจริง ๆ เท่านั้น (สิ่งที่เราเรียกว่า "captured forward progress")
สิ่งที่เราเรียกเก็บเงิน
เราเรียกเก็บเงินตามเวลาที่ Worker ฝึกของคุณใช้ในการฝึกโมเดลของคุณอย่างจริงจัง โดยเฉพาะ:
การสร้างตัวอย่างจากโมเดลของคุณระหว่างกระบวนการปรับแต่งแบบละเอียด (เรียกว่า “rollouts”)
การประเมินเอาต์พุตเหล่านั้นด้วยตัวให้คะแนนอย่างน้อยหนึ่งตัวที่คุณกำหนดไว้ในงาน (เรียนรู้เพิ่มเติมเกี่ยวกับตัวให้คะแนน)
การคำนวณและใช้การอัปเดตน้ำหนักตามคะแนน (การแพร่ย้อนกลับ)
การรันขั้นตอนการตรวจสอบความถูกต้อง (การประเมิน) ใดๆ ที่คุณกำหนดค่าไว้
ตัวให้คะแนนส่วนใหญ่รันได้ “ฟรี” ซึ่งหมายความว่าเราไม่เรียกเก็บเงินเพิ่มสำหรับการใช้งาน นอกเหนือจากเวลาที่ตัวให้คะแนนเหล่านั้นมีส่วนต่อวงจรการฝึกหลัก ข้อยกเว้นคือกรณีตัวให้คะแนนแบบโมเดล ซึ่งเราจะนับรวม Token ที่ตัวให้คะแนนเหล่านั้นใช้ระหว่างกิจกรรมข้างต้นด้วย Token เหล่านี้จะแสดงเป็นรายการแยกต่างหากในใบแจ้งหนี้ของคุณ Token ที่ตัวให้คะแนนแบบโมเดลใช้จะถูกเรียกเก็บเงินตามอัตรา inference ปกติ (ราคาของ OpenAI)
สิ่งที่เราไม่คิดค่าบริการ
เราไม่คิดค่าบริการสำหรับเวลาที่ใช้ไปกับ:
การตรวจสอบหรือสำรวจชุดข้อมูลของคุณก่อนเริ่มการฝึก
การตรวจสอบความปลอดภัยในชุดข้อมูลของคุณ
การรอคิวเพื่อใช้ทรัพยากรประมวลผล
การดาวน์โหลดน้ำหนักโมเดลหรือชุดข้อมูล
การเตรียม (render) ชุดข้อมูลของคุณให้อยู่ในรูปแบบการฝึกของเรา
การประเมินความปลอดภัยหลังการฝึกของโมเดลที่ผ่าน fine-tuning ของคุณ
หากงานฝึกสูญหายเนื่องจากข้อผิดพลาดฝั่งเรา (ตัวอย่างเช่น หาก worker ล่มและต้องย้อนกลับไปยัง checkpoint ก่อนหน้า) คุณจะไม่ถูกคิดค่าบริการสำหรับเวลาในการประมวลผลหรือ Token ของ grader ที่สูญหาย รายละเอียดเพิ่มเติมเกี่ยวกับเรื่องนี้อยู่ในส่วนถัดไป
Captured forward progress และเหตุการณ์การคิดค่าบริการ
การฝึกประกอบด้วยการอัปเดตเล็ก ๆ จำนวนมากต่อโมเดลของคุณ เราติดตามว่าการอัปเดตเหล่านี้สำเร็จสมบูรณ์ไปกี่ครั้ง ค่าบริการจะอิงตามเวลาในการประมวลผลและ Token ของ grader ที่เกี่ยวข้องกับการอัปเดตที่สำเร็จเหล่านี้
เราจะเรียกเก็บเงินเมื่อเกิด "เหตุการณ์การคิดค่าบริการ" อย่างใดอย่างหนึ่งต่อไปนี้:
การฝึกเสร็จสมบูรณ์
คุณหยุดการฝึกชั่วคราว
คุณยกเลิกการฝึก
การฝึกไม่สำเร็จ
ค่าบริการแต่ละครั้งครอบคลุมงานส่วนเพิ่มที่ทำไปนับจากการเรียกเก็บเงินครั้งล่าสุด ตัวอย่างเช่น:
หากคุณหยุดการรันชั่วคราว เราจะบันทึก checkpoint และเรียกเก็บเงินสำหรับเวลาในการประมวลผลและ Token ของ grader ที่ใช้ไปนับจากการเรียกเก็บเงินครั้งล่าสุด
เมื่อคุณกลับมารันต่อ การฝึกจะดำเนินต่อจาก checkpoint ค่าบริการครั้งถัดไป (เมื่อเสร็จสิ้น หยุดอีกครั้ง ยกเลิก หรือไม่สำเร็จ) จะครอบคลุมเฉพาะงานเพิ่มเติมที่ทำหลังจากกลับมารันต่อ
หากคุณยกเลิกการรัน เราจะเรียกเก็บเงินสำหรับงานที่ทำไปจนถึงเวลาที่ยกเลิก
หากการฝึกล้มเหลวและงานนับจากการเรียกเก็บเงินครั้งล่าสุดสูญหาย คุณจะไม่ถูกเรียกเก็บเงินสำหรับส่วนที่สูญหาย
แนวทาง "captured forward progress" นี้ช่วยให้มั่นใจว่าคุณจ่ายเฉพาะงานที่ถูกรักษาไว้ในโมเดลของคุณ หรือที่คุณตั้งใจละทิ้งเท่านั้น
การดูความคืบหน้าของงาน
งาน RFT มีฟิลด์ชื่อ usage_metrics ซึ่งบันทึกการใช้งานรวมของงานจนถึงขั้นตอนปัจจุบัน ซึ่งรวมถึงเวลาที่ใช้ในการฝึก และ Token ทั้งหมดที่ใช้กับตัวให้คะแนนแบบโมเดลทั้งหมดในงานนั้น สามารถตรวจสอบฟิลด์นี้ผ่าน API (GET /v1/fine_tuning/jobs/{job_id}) หรือผ่านแดชบอร์ดการปรับแต่งแบบละเอียด
ปัจจัยที่มีผลต่อเวลาในการฝึก
เนื่องจากการคิดค่าบริการอิงตามเวลา ตัวเลือกการกำหนดค่าของคุณจึงส่งผลต่อต้นทุนโดยตรง ปัจจัยสำคัญได้แก่:
ความยากของปัญหา: หากชุดข้อมูลของคุณประกอบด้วยปัญหาที่ยาก โมเดลก็มักจะใช้เวลามากขึ้นในการให้เหตุผลกับแต่ละปัญหา ซึ่งเพิ่มเวลาที่ต้องใช้ในการสร้างแต่ละตัวอย่าง
ความเข้มข้นของการประมวลผล: ไฮเปอร์พารามิเตอร์
compute_multiplierควบคุมว่าคุณใช้การคำนวณมากเพียงใดต่อแต่ละขั้นตอนการฝึก ค่าที่สูงขึ้นจะกระตุ้นให้โมเดลให้เหตุผลอย่างละเอียดมากขึ้นกับแต่ละจุดข้อมูล ซึ่งทำให้แต่ละขั้นตอนทำงานช้าลงการตั้งค่าการตรวจสอบความถูกต้อง:
ชุดข้อมูล validation ที่ใหญ่ขึ้นจะเพิ่มเวลาที่ใช้ในการประเมิน
การเพิ่ม
eval_samples(จำนวนเอาต์พุตของโมเดลที่ให้คะแนนต่อแต่ละตัวอย่าง validation) จะเพิ่มเวลา validationการรัน validation บ่อยขึ้น (ลดค่า
eval_interval) จะเพิ่มสัดส่วนเวลาที่ใช้ไปกับ validation
ประสิทธิภาพของ grader:
grader model ที่มีขนาดใหญ่กว่าหรือมีความสามารถมากกว่าจะใช้เวลาส่งผลการให้คะแนนนานกว่าตัวที่เล็กกว่า ตัวอย่างเช่น การให้คะแนนด้วยโมเดลการให้เหตุผลอาจใช้เวลานานกว่าการให้คะแนนด้วยโมเดลที่ไม่ใช่การให้เหตุผลถึง 10 เท่า
ฟังก์ชันการให้คะแนน Python ที่ซับซ้อนใช้เวลารันนานกว่าฟังก์ชันที่เรียบง่าย
การตั้งค่าเหล่านี้ช่วยให้คุณปรับสมดุลระหว่างต้นทุน ความเร็ว และคุณภาพของโมเดลได้ ตัวอย่างเช่น การทำ validation บ่อยอาจช่วยจับปัญหาได้เร็วขึ้น แต่เพิ่มต้นทุน การให้คะแนนด้วยโมเดลที่ล้ำหน้ากว่าอาจเพิ่มความแม่นยำของการให้คะแนนอย่างมาก แต่จะทำให้แต่ละขั้นตอนการให้คะแนนช้าลงและทำให้งานมีค่าใช้จ่ายสูงขึ้น
การจัดการต้นทุน
เพื่อควบคุมค่าใช้จ่ายของคุณ:
เริ่มจากการรันที่สั้นลงเพื่อทำความเข้าใจว่าการกำหนดค่าของคุณส่งผลต่อเวลาอย่างไร
ใช้จำนวนตัวอย่าง validation และ
eval_samplesที่เหมาะสม หลีกเลี่ยงการทำ validation บ่อยเกินความจำเป็นเลือก grader model ที่เล็กที่สุดที่ยังตอบโจทย์ด้านคุณภาพของคุณ
ดูแลให้ grader Python แบบกำหนดเองมีประสิทธิภาพ
ปรับ
compute_multiplierเพื่อสร้างสมดุลระหว่างความเร็วในการลู่เข้าและต้นทุนติดตามการรันของคุณในแดชบอร์ดหรือผ่าน API คุณสามารถหยุดชั่วคราวหรือยกเลิกได้ทุกเมื่อ
ตัวอย่าง
การรันการฝึกที่สำเร็จ
| เวลาฝึก | เวลาที่เรียกเก็บเงิน | สถานะ | คำอธิบาย |
|---|---|---|---|
| 00:00 | 00:00 | – | ผู้ใช้สร้างงาน RFT ผ่าน API |
| 00:10 | 00:00 | VALIDATING_FILES | ใช้เวลา 10 นาทีในการตรวจสอบความถูกต้องของชุดข้อมูล |
| 00:30 | 00:00 | VALIDATING_FILES | ใช้เวลา 20 นาทีในการตรวจสอบความปลอดภัยของชุดข้อมูล |
| 01:00 | 00:00 | QUEUED | รอ Worker ที่พร้อมใช้งาน 30 นาที |
| 01:30 | 00:00 | RUNNING | ใช้เวลา 30 นาทีในการตั้งค่าการฝึก (ดาวน์โหลดน้ำหนัก การประมวลผลล่วงหน้า ฯลฯ) |
| 05:30 | 04:00 | RUNNING | ใช้เวลา 4 ชั่วโมงในการฝึก |
| 06:00 | 04:00 | RUNNING | ใช้เวลา 30 นาทีในการประเมินความปลอดภัยของโมเดลที่ได้ |
| 06:00 | 04:00 | SUCCEEDED | การฝึกเสร็จสิ้น |
ในกรณีนี้ เวลาตามนาฬิกาจริงรวมคือ 6 ชั่วโมง แต่เรียกเก็บเงินได้เพียง 4 ชั่วโมง ค่าใช้จ่ายจะเป็น 4 ชั่วโมง × $100/ชั่วโมง = $400
ตัวอย่างงานที่ล้มเหลว
ในตัวอย่างนี้ การรันฝึกเป็นเวลา 2 ชั่วโมง เขียนเช็กพอยต์ ฝึกต่ออีก 1 ชั่วโมง แต่จากนั้นล้มเหลว เรียกเก็บเงินได้เฉพาะการฝึก 2 ชั่วโมงจนถึงเช็กพอยต์เท่านั้น
| เวลาฝึก | เวลาที่เรียกเก็บเงิน | สถานะ | คำอธิบาย |
|---|---|---|---|
| 00:00 | 00:00 | – | ผู้ใช้สร้างงาน RFT ผ่าน API |
| 00:10 | 00:00 | VALIDATING_FILES | ใช้เวลา 10 นาทีในการตรวจสอบความถูกต้องของชุดข้อมูล |
| 00:30 | 00:00 | VALIDATING_FILES | ใช้เวลา 20 นาทีในการตรวจสอบความปลอดภัยของชุดข้อมูล |
| 01:00 | 00:00 | QUEUED | รอ Worker ที่พร้อมใช้งาน 30 นาที |
| 01:30 | 00:00 | RUNNING | ใช้เวลา 30 นาทีในการตั้งค่าการฝึก (ดาวน์โหลดน้ำหนัก การประมวลผลล่วงหน้า ฯลฯ) |
| 03:30 | 02:00 | RUNNING | ใช้เวลา 2 ชั่วโมงในการฝึก |
| 03:30 | 02:00 | RUNNING | สร้างเช็กพอยต์ที่ขั้นตอน 5 |
| 04:30 | 02:00 | RUNNING | การฝึกล้มเหลวเนื่องจากข้อผิดพลาดภายในที่ขั้นตอน 8 (หลังจากอีก 1 ชั่วโมง) |
| 04:30 | 02:00 | RUNNING | ใช้เวลา 30 นาทีในการประเมินและตรวจสอบความถูกต้องของเช็กพอยต์ |
| 04:30 | 02:00 | SUCCEEDED | งานเสร็จสิ้น (พร้อมเช็กพอยต์ล่าสุด) |
แม้ว่าโดยรวมจะใช้เวลาฝึก 3 ชั่วโมง แต่มีเพียง 2 ชั่วโมงที่ถูก "บันทึกไว้" ในเช็กพอยต์ที่ใช้งานได้และถูกเรียกเก็บเงิน คุณไม่ต้องรับผิดชอบชั่วโมงของงานฝึกที่สูญเสียไปเนื่องจากความล้มเหลว ค่าใช้จ่ายจะเป็น 2 ชั่วโมง × $100/ชั่วโมง = $200
คำถามที่พบบ่อย
จะถูกเรียกเก็บเงินเมื่อใด
เราจะเรียกเก็บเงินเมื่อการรันของคุณเสร็จสิ้น ถูกพัก ถูกยกเลิก หรือไม่สำเร็จ ใบเรียกเก็บเงินแต่ละรายการครอบคลุมงานที่ทำตั้งแต่ใบเรียกเก็บเงินก่อนหน้า
ฉันต้องจ่ายเงินไหมหากการรันล้มเหลว
หากการรันล้มเหลวเนื่องจากข้อผิดพลาดของเราและงานฝึกล่าสุดบางส่วนสูญหาย คุณจะไม่ถูกเรียกเก็บเงินสำหรับส่วนที่สูญหาย หากคุณยกเลิกการรัน คุณจะถูกเรียกเก็บเงินสำหรับงานที่ทำจนถึงเวลายกเลิก
Token ของโมเดลตัวให้คะแนนถูกเรียกเก็บเงินอย่างไร
เรานับ Token ที่ใช้โดยตัวให้คะแนนแบบโมเดลใดๆ ที่คุณกำหนดค่า หลังจากการฝึกเสร็จสิ้น เราจะเรียกเก็บเงิน Token เหล่านั้นตามอัตรามาตรฐานต่อ Token ของเรา
ฉันสามารถพักและดำเนินการรันต่อได้ไหม
ได้ เมื่อคุณพัก เราจะบันทึกเช็กพอยต์และเรียกเก็บเงินสำหรับงานที่ทำไปแล้ว เมื่อคุณดำเนินการต่อ คุณจะถูกเรียกเก็บเงินเฉพาะงานเพิ่มเติมที่ทำหลังจากดำเนินการต่อเท่านั้น
หากคุณมีคำถามอื่นเกี่ยวกับการเรียกเก็บเงินสำหรับ Reinforcement Fine‑Tuning โปรดติดต่อทีมสนับสนุนของเรา
