การคิดค่าบริการสำหรับ 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 ฝึกของคุณใช้ในการฝึกโมเดลของคุณอย่างจริงจัง โดยเฉพาะ:
การสร้างตัวอย่างจากโมเดลของคุณระหว่างกระบวนการ fine-tuning (เรียกว่า “rollouts”)
การประเมินเอาต์พุตเหล่านั้นด้วย grader หนึ่งตัวหรือมากกว่าที่คุณกำหนดไว้ในงาน (เรียนรู้เพิ่มเติมเกี่ยวกับ grader)
การคำนวณและนำการอัปเดต weights ไปใช้ตามผลการให้คะแนน (backpropagation)
การรันขั้นตอน validation (evaluation) ใด ๆ ที่คุณกำหนดค่าไว้
grader ส่วนใหญ่ใช้งานได้ “ฟรี” ซึ่งหมายความว่าเราไม่คิดค่าบริการเพิ่มเติมสำหรับการใช้งาน นอกเหนือจากเวลาที่ grader เหล่านั้นมีส่วนร่วมในลูปการฝึกหลัก ข้อยกเว้นคือ grader model ซึ่งเราจะนับ Token ที่ grader เหล่านั้นใช้ระหว่างกิจกรรมข้างต้นด้วย Token เหล่านี้จะแสดงเป็นรายการแยกต่างหากในใบแจ้งหนี้ของคุณ Token ที่ grader model ใช้จะคิดค่าบริการตามอัตรา 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 ทั้งหมดที่ใช้ใน grader model ทั้งหมดของงาน ฟิลด์นี้ตรวจสอบได้ผ่าน API (GET /v1/fine_tuning/jobs/{job_id}) หรือผ่านแดชบอร์ด fine-tuning
ปัจจัยที่มีผลต่อเวลาในการฝึก
เนื่องจากการคิดค่าบริการอิงตามเวลา ตัวเลือกการกำหนดค่าของคุณจึงส่งผลต่อต้นทุนโดยตรง ปัจจัยสำคัญได้แก่:
ความยากของปัญหา: หากชุดข้อมูลของคุณประกอบด้วยปัญหาที่ยาก โมเดลก็มักจะใช้เวลามากขึ้นในการให้เหตุผลกับแต่ละปัญหา ซึ่งเพิ่มเวลาที่ต้องใช้ในการสร้างแต่ละตัวอย่าง
ความเข้มข้นของการประมวลผล: ไฮเปอร์พารามิเตอร์
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 นาทีในการตั้งค่าการฝึก (ดาวน์โหลด weights, preprocessing ฯลฯ) |
| 05 : 30 | 04 : 00 | RUNNING | ใช้เวลาฝึก 4 ชั่วโมง |
| 06 : 00 | 04 : 00 | RUNNING | ใช้เวลา 30 นาทีในการประเมินความปลอดภัยของโมเดลที่ได้ |
| 06 : 00 | 04 : 00 | SUCCEEDED | การฝึกเสร็จสิ้น |
ในกรณีนี้ เวลารวมตามนาฬิกาจริงคือ 6 ชั่วโมง แต่มีเพียง 4 ชั่วโมงที่คิดค่าบริการ ค่าใช้จ่ายจะเป็น 4 ชั่วโมง × $100/ชั่วโมง = $400
ตัวอย่างงานที่ล้มเหลว
ในตัวอย่างนี้ การรันฝึกเป็นเวลา 2 ชั่วโมง เขียน checkpoint ฝึกต่ออีก 1 ชั่วโมง แล้วจึงล้มเหลว มีเพียง 2 ชั่วโมงของการฝึกจนถึง checkpoint เท่านั้นที่คิดค่าบริการ
| เวลาฝึก | เวลาที่คิดค่าบริการ | สถานะ | คำอธิบาย |
| 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 นาทีในการตั้งค่าการฝึก (ดาวน์โหลด weights, preprocessing ฯลฯ) |
| 03 : 30 | 02 : 00 | RUNNING | ใช้เวลาฝึก 2 ชั่วโมง |
| 03 : 30 | 02 : 00 | RUNNING | สร้าง checkpoint ที่ขั้นตอน 5 |
| 04 : 30 | 02 : 00 | RUNNING | การฝึกล้มเหลวเนื่องจากข้อผิดพลาดภายในที่ขั้นตอน 8 (หลังผ่านไปอีก 1 ชั่วโมง) |
| 04 : 30 | 02 : 00 | RUNNING | ใช้เวลา 30 นาทีในการประเมินและตรวจสอบ checkpoint |
| 04 : 30 | 02 : 00 | SUCCEEDED | งานเสร็จสิ้น (พร้อม checkpoint ล่าสุด) |
แม้ว่าโดยรวมจะใช้เวลาฝึก 3 ชั่วโมง แต่มีเพียง 2 ชั่วโมงเท่านั้นที่ถูก "จับไว้" ใน checkpoint ที่ใช้งานได้และถูกคิดค่าบริการ ชั่วโมงของงานฝึกที่สูญเสียไปเนื่องจากความล้มเหลวไม่ใช่ความรับผิดชอบของคุณ ค่าใช้จ่ายจะเป็น 2 ชั่วโมง × $100/ชั่วโมง = $200
คำถามที่พบบ่อย
ฉันจะถูกเรียกเก็บเงินเมื่อใด?
เราจะเรียกเก็บเงินเมื่อการรันของคุณเสร็จสิ้น ถูกหยุดชั่วคราว ถูกยกเลิก หรือไม่สำเร็จ ใบเรียกเก็บเงินแต่ละรายการครอบคลุมงานที่ทำไปนับจากใบเรียกเก็บเงินครั้งก่อน
ฉันต้องจ่ายไหมหากการรันล้มเหลว?
หากการรันล้มเหลวเนื่องจากข้อผิดพลาดของเราและงานฝึกล่าสุดบางส่วนสูญหาย คุณจะไม่ถูกเรียกเก็บเงินสำหรับส่วนที่สูญหาย หากคุณยกเลิกการรัน คุณจะถูกเรียกเก็บเงินสำหรับงานที่ทำไปจนถึงเวลาที่ยกเลิก
Token ของ grader model ถูกคิดค่าบริการอย่างไร?
เรานับ Token ที่ใช้โดย grader model ใด ๆ ที่คุณกำหนดค่าไว้ หลังจากการฝึกเสร็จสิ้น เราจะคิดค่าบริการ Token เหล่านั้นตามอัตราต่อ Token มาตรฐานของเรา
ฉันสามารถหยุดและกลับมารันต่อได้ไหม?
ได้ เมื่อคุณหยุดชั่วคราว เราจะบันทึก checkpoint และเรียกเก็บเงินสำหรับงานที่ทำไปจนถึงตอนนั้น เมื่อคุณกลับมารันต่อ คุณจะถูกเรียกเก็บเงินเฉพาะงานเพิ่มเติมที่ทำหลังจากกลับมารันต่อเท่านั้น
หากคุณมีคำถามอื่นเกี่ยวกับการคิดค่าบริการของ Reinforcement Fine‑Tuning ติดต่อทีมสนับสนุนของเรา
