คู่มือทางเทคนิค

การแบทช์อย่างต่อเนื่อง

การแบทช์แบบต่อเนื่องเป็นเทคนิคการให้บริการที่เพิ่มและลบคำขอออกจากโทเค็นแบทช์ที่ทำงานอยู่ทีละโทเค็น แทนที่จะรอให้แบทช์ที่คงที่ทั้งหมดเสร็จสิ้น

ภาพรวม

การแบทช์แบบต่อเนื่องเป็นเทคนิคการให้บริการที่เพิ่มและลบคำขอออกจากโทเค็นแบทช์ที่ทำงานอยู่ทีละโทเค็น แทนที่จะรอให้แบทช์ที่คงที่ทั้งหมดเสร็จสิ้น ช่วยให้ GPU ทำงานอย่างต่อเนื่องและเพิ่มจำนวนผู้ใช้ที่โมเดล AI สามารถให้บริการได้ในคราวเดียว

การรวมชุดแบบต่อเนื่องเป็นองค์ประกอบทางเทคนิคที่ส่งผลต่อคุณภาพของโมเดล ต้นทุนโครงสร้างพื้นฐาน เวลาแฝง และความน่าเชื่อถือในวงกว้าง

เจาะลึก

GPU จะเร็วที่สุดเมื่อประมวลผลคำขอหลายรายการพร้อมกันเป็นชุด วิธีการแบบไร้เดียงสา การแบทช์แบบคงที่ จัดกลุ่มชุดคำขอคงที่ รันคำขอทั้งหมดจนเสร็จสิ้น จากนั้นจึงเริ่มแบทช์ถัดไป ปัญหา: ผลลัพธ์ของโมเดลภาษานั้นมีความยาวแตกต่างกันอย่างมาก ดังนั้นคำขอสั้นๆ จะเสร็จสิ้นก่อนกำหนดและสล็อตของคำขอเหล่านั้นจะไม่ได้ใช้งานในขณะที่แบทช์รอคำขอที่ยาวที่สุด สิ้นเปลืองรอบของ GPU และทำให้การมาถึงใหม่ล่าช้า การแบทช์แบบต่อเนื่อง (หรือที่เรียกว่าการแบทช์ในเที่ยวบินหรือระดับการวนซ้ำ ซึ่งเป็นที่นิยมใน Orca paper และใช้ใน vLLM, TensorRT-LLM และ TGI) ทำงานที่รายละเอียดของขั้นตอนการถอดรหัสขั้นตอนเดียว หลังจากที่แต่ละโทเค็นถูกสร้างขึ้น ลำดับที่เสร็จสิ้นแล้วจะออกจากแบทช์และคำขอที่มาถึงใหม่จะถูกเสียบเข้าไปทันที ซึ่งจะทำให้แบตช์เต็มและ GPU อิ่มตัว ซึ่งมักจะเพิ่มปริมาณงานหลายเท่าโดยมีเวลาแฝงที่ต่ำกว่าสำหรับผู้ใช้ที่รอ

ข้อมูลเชิงลึกทางเทคนิค

การเปลี่ยนแปลงที่สำคัญคือจากการแบทช์คำขอทั้งหมดเป็นการแบทช์การวนซ้ำแต่ละรายการ ในทุกขั้นตอนการถอดรหัส ตัวกำหนดเวลาจะสร้างชุดที่ใช้งานอยู่: โดยจะรันการส่งต่อหนึ่งครั้งเหนือลำดับในเที่ยวบินทั้งหมด ปล่อยโทเค็นหนึ่งโทเค็นต่อแต่ละรายการ ขับไล่โทเค็นที่สิ้นสุดของลำดับหรือขีดจำกัดความยาว และยอมรับคำขอที่อยู่ในคิวเพื่อเติมช่องที่ว่าง การจับคู่สิ่งนี้กับหน่วยความจำ KV ที่ยืดหยุ่นของ PagedAttention ทำให้การแทรกและการลบลำดับระหว่างการบินมีราคาถูก เนื่องจากแคชของแต่ละลำดับอยู่ในบล็อกที่แยกจากกัน

การเรียนรู้การแบทช์ต่อเนื่องอย่างเชี่ยวชาญ

การแบทช์แบบต่อเนื่องเป็นเทคนิคการให้บริการที่เพิ่มและลบคำขอออกจากโทเค็นแบทช์ที่ทำงานอยู่ทีละโทเค็น แทนที่จะรอให้แบทช์ที่คงที่ทั้งหมดเสร็จสิ้น ช่วยให้ GPU ทำงานอย่างต่อเนื่องและเพิ่มจำนวนผู้ใช้ที่โมเดล AI สามารถให้บริการได้ในคราวเดียว การรวมชุดแบบต่อเนื่องเป็นองค์ประกอบทางเทคนิคที่ส่งผลต่อคุณภาพของโมเดล ต้นทุนโครงสร้างพื้นฐาน เวลาแฝง และความน่าเชื่อถือในวงกว้าง เพื่อสร้างความเข้าใจอย่างลึกซึ้ง ให้ถือว่าการใช้ต่อเนื่องเป็นโมเดลการดำเนินงาน ไม่ใช่คุณลักษณะเดียว: กำหนดผลลัพธ์ที่ต้องการ ชี้แจงสมมติฐาน และแยกสิ่งที่ระบบสามารถทำได้อย่างน่าเชื่อถือจากสิ่งที่ยังต้องใช้วิจารณญาณจากผู้เชี่ยวชาญ

ในทางปฏิบัติ ทีมที่แข็งแกร่งที่ใช้ชุดต่อเนื่องจะปรับสถาปัตยกรรม ข้อมูล และตัวเลือกโครงสร้างพื้นฐานให้เหมาะสมโดยเทียบกับความน่าเชื่อถือและต้นทุน โดยจะบันทึกเกณฑ์ความสำเร็จที่ชัดเจน ทดสอบกับข้อมูลและขั้นตอนการทำงานที่สมจริง และทำซ้ำตามรูปแบบความล้มเหลวที่สังเกตได้ แทนที่จะชนะการวัดประสิทธิภาพเพียงครั้งเดียว นี่คือจุดที่ความเข้าใจทางทฤษฎีกลายเป็นความสามารถที่คงทนของผลิตภัณฑ์ นโยบาย และการดำเนินงาน

การตัดสินใจด้านสถาปัตยกรรมขับเคลื่อนประสิทธิภาพและต้นทุนการดำเนินงานเป็นเวลาหลายปี ในเวลาเดียวกัน การเพิ่มประสิทธิภาพเกณฑ์มาตรฐานหนึ่งรายการสามารถซ่อนจุดอ่อนของระบบในวงกว้างได้ แนวทางที่ยืดหยุ่นที่สุดคือการรวมความเร็วของการทดลองเข้ากับวินัยในการกำกับดูแล: ดำเนินการนำร่อง จับหลักฐาน เผยแพร่บันทึกการตัดสินใจ และอัปเดตการป้องกันอย่างต่อเนื่องเมื่อพฤติกรรมของโมเดล ความคาดหวังของผู้ใช้ และข้อกำหนดด้านกฎระเบียบมีการเปลี่ยนแปลง

ผลกระทบเชิงกลยุทธ์

การตัดสินใจด้านสถาปัตยกรรมขับเคลื่อนประสิทธิภาพและต้นทุนการดำเนินงานเป็นเวลาหลายปี

การตัดสินใจด้านสถาปัตยกรรมขับเคลื่อนประสิทธิภาพและต้นทุนการดำเนินงานเป็นเวลาหลายปี ในการปรับใช้คุณภาพสูง สิ่งนี้จะถูกแปลเป็นกฎการปฏิบัติงานที่วัดผลได้ ขอบเขตความเป็นเจ้าของ และขั้นตอนการตรวจสอบที่เกิดซ้ำ เพื่อให้ทีมสามารถปรับขนาดความมั่นใจแทนที่จะปรับขนาดความคลุมเครือ

การศึกษาด้านเทคนิคช่วยให้ทีมเลือกกลุ่มที่เหมาะสม ไม่ใช่แค่กลุ่มใหม่ล่าสุด

การศึกษาด้านเทคนิคช่วยให้ทีมเลือกกลุ่มที่เหมาะสม ไม่ใช่แค่กลุ่มใหม่ล่าสุด ในการปรับใช้คุณภาพสูง สิ่งนี้จะถูกแปลเป็นกฎการปฏิบัติงานที่วัดผลได้ ขอบเขตความเป็นเจ้าของ และขั้นตอนการตรวจสอบที่เกิดซ้ำ เพื่อให้ทีมสามารถปรับขนาดความมั่นใจแทนที่จะปรับขนาดความคลุมเครือ

ตัวเลือกทางวิศวกรรมที่ดีกว่าจะช่วยลดเหตุการณ์ด้านความน่าเชื่อถือในการผลิต

ตัวเลือกทางวิศวกรรมที่ดีกว่าจะช่วยลดเหตุการณ์ด้านความน่าเชื่อถือในการผลิต ในการปรับใช้คุณภาพสูง สิ่งนี้จะถูกแปลเป็นกฎการปฏิบัติงานที่วัดผลได้ ขอบเขตความเป็นเจ้าของ และขั้นตอนการตรวจสอบที่เกิดซ้ำ เพื่อให้ทีมสามารถปรับขนาดความมั่นใจแทนที่จะปรับขนาดความคลุมเครือ

อนาคตของการผสมแบบต่อเนื่อง

ขณะนี้การแบทช์แบบต่อเนื่องเป็นมาตรฐานในการให้บริการ LLM การผลิต งานในอนาคตจะปรับปรุงตัวกำหนดตารางเวลา: การแยกระยะการกรอกข้อมูลล่วงหน้าที่เน้นการคำนวณออกจากระยะการถอดรหัสที่เบากว่า (การแยกส่วน) การเติมล่วงหน้าแบบเป็นก้อนเพื่อหลีกเลี่ยงการถอดรหัสที่หยุดชะงัก นโยบายลำดับความสำคัญและความยุติธรรมสำหรับปริมาณงานแบบผสม และการเชื่อมโยงที่เข้มงวดมากขึ้นกับการถอดรหัสแบบเก็งกำไร เพื่อให้โทเค็นแบบร่างหลายรายการได้รับการตรวจสอบความถูกต้องในแต่ละขั้นตอน เป้าหมายคือการบีบโทเค็นสูงสุดต่อวินาทีต่อ GPU ในขณะเดียวกันก็รักษาเวลาแฝงในการตอบสนองของแต่ละบุคคลให้ต่ำและสามารถคาดเดาได้

การใช้งานจริงในโลกแห่งความเป็นจริง

API การแชทจะยอมรับข้อความของผู้ใช้ที่เพิ่งมาถึงในแบตช์ที่กำลังทำงานอยู่ทันที แทนที่จะรอคิวสำหรับแบตช์ถัดไป

ยกเลิกคำตอบสั้นๆ ในช่วงกลางชุดและเติมช่องใหม่เพื่อให้ GPU ไม่ต้องรอเป็นเวลานาน

การรวมแบทช์ต่อเนื่องกับ PagedAttention ของ vLLM เพื่อแทรกและลบลำดับอย่างถูกในแต่ละขั้นตอนการถอดรหัส

บริการกรอกโค้ดที่รักษาโทเค็นสูงต่อวินาทีภายใต้การรับส่งข้อมูลที่ต่อเนื่องและมีความยาวผันแปรได้โดยการทำให้แบตช์เต็ม

รูปแบบการดำเนินงาน

การแบทช์อย่างต่อเนื่องในทางปฏิบัติ

API การแชทจะยอมรับข้อความของผู้ใช้ที่เพิ่งมาถึงในแบตช์ที่กำลังทำงานอยู่ทันที แทนที่จะรอคิวสำหรับแบตช์ถัดไป

API การแชทจะยอมรับข้อความของผู้ใช้ที่เพิ่งมาถึงลงในแบตช์ที่กำลังทำงานอยู่ทันที แทนที่จะเข้าคิวสำหรับแบตช์ถัดไป ทีมมักจะได้รับผลลัพธ์ที่ดีกว่าเมื่อพวกเขากำหนดเกณฑ์คุณภาพล่วงหน้า รักษาเส้นทางการยกระดับโดยมนุษย์สำหรับกรณี Edge และติดตามทั้งประสิทธิภาพการทำงานที่เพิ่มขึ้นและต้นทุนข้อผิดพลาดเมื่อเวลาผ่านไป

การแบทช์อย่างต่อเนื่องในทางปฏิบัติ

กำจัดคำตอบสั้นๆ ในช่วงกลางชุดและเติมช่องใหม่เพื่อให้ GPU ไม่ต้องรอเป็นเวลานาน

กำจัดคำตอบสั้นๆ ที่สมบูรณ์ในช่วงกลางชุดและเติมช่องกลับเพื่อให้ GPU ไม่เคยเสียเวลารอกับรุ่นที่ยาวนาน ทีมมักจะได้รับผลลัพธ์ที่ดีกว่าเมื่อพวกเขากำหนดเกณฑ์คุณภาพล่วงหน้า รักษาเส้นทางการยกระดับโดยมนุษย์สำหรับกรณี Edge และติดตามทั้งประสิทธิภาพการทำงานที่เพิ่มขึ้นและต้นทุนข้อผิดพลาดเมื่อเวลาผ่านไป

การแบทช์อย่างต่อเนื่องในทางปฏิบัติ

การรวมแบทช์ต่อเนื่องกับ PagedAttention ของ vLLM เพื่อแทรกและลบลำดับในราคาถูกในแต่ละขั้นตอนการถอดรหัส

การรวมชุดอย่างต่อเนื่องเข้ากับ PagedAttention ของ vLLM เพื่อแทรกและลบลำดับในราคาถูกในแต่ละขั้นตอนการถอดรหัส ทีมมักจะได้รับผลลัพธ์ที่ดีกว่าเมื่อพวกเขากำหนดเกณฑ์คุณภาพล่วงหน้า รักษาเส้นทางการยกระดับโดยมนุษย์สำหรับกรณี Edge และติดตามทั้งประสิทธิภาพการทำงานที่เพิ่มขึ้นและต้นทุนข้อผิดพลาดเมื่อเวลาผ่านไป

การแบทช์อย่างต่อเนื่องในทางปฏิบัติ

บริการกรอกโค้ดที่รักษาโทเค็นสูงต่อวินาทีภายใต้การรับส่งข้อมูลที่ต่อเนื่องและมีความยาวผันแปรได้โดยการทำให้แบตช์เต็ม

บริการเติมโค้ดให้สมบูรณ์ซึ่งรักษาโทเค็นสูงต่อวินาทีภายใต้การรับส่งข้อมูลที่ต่อเนื่องและมีความยาวผันแปรโดยทำให้แบตช์เต็ม ทีมมักจะได้รับผลลัพธ์ที่ดีกว่าเมื่อพวกเขากำหนดเกณฑ์คุณภาพล่วงหน้า รักษาเส้นทางการยกระดับโดยมนุษย์สำหรับกรณี Edge และติดตามทั้งประสิทธิภาพการทำงานที่เพิ่มขึ้นและต้นทุนข้อผิดพลาดเมื่อเวลาผ่านไป

ความเสี่ยงและรั้ว

!

การเพิ่มประสิทธิภาพเกณฑ์มาตรฐานหนึ่งรายการสามารถซ่อนจุดอ่อนของระบบในวงกว้างได้

!

ต้นทุนโครงสร้างพื้นฐานและการบำรุงรักษามักถูกประเมินต่ำไป

!

ช่องว่างด้านความปลอดภัยและความสามารถในการสังเกตสามารถเพิ่มขึ้นได้เมื่อระบบมีความซับซ้อนมากขึ้น

แผนงานการดำเนินงาน

1

กำหนดเป้าหมายเวลาแฝง คุณภาพ และต้นทุนก่อนนำไปใช้งาน

กำหนดเป้าหมายเวลาแฝง คุณภาพ และต้นทุนก่อนนำไปใช้งาน ถือว่าแต่ละขั้นตอนเป็นเหมือนประตูหลักฐาน: หากไม่ตรงตามเกณฑ์ ให้หยุดการเปิดตัวชั่วคราว ปิดช่องว่าง จากนั้นจึงขยายการใช้งานเท่านั้น

2

เกณฑ์มาตรฐานภายใต้สภาวะโหลดและข้อมูลจริง

เกณฑ์มาตรฐานภายใต้สภาวะโหลดและข้อมูลจริง ถือว่าแต่ละขั้นตอนเป็นเหมือนประตูหลักฐาน: หากไม่ตรงตามเกณฑ์ ให้หยุดการเปิดตัวชั่วคราว ปิดช่องว่าง จากนั้นจึงขยายการใช้งานเท่านั้น

3

การตรวจสอบเครื่องมือเพื่อหาข้อผิดพลาด การเบี่ยงเบน และผลกระทบต่อผู้ใช้

การตรวจสอบเครื่องมือเพื่อหาข้อผิดพลาด การเบี่ยงเบน และผลกระทบต่อผู้ใช้ ถือว่าแต่ละขั้นตอนเป็นเหมือนประตูหลักฐาน: หากไม่ตรงตามเกณฑ์ ให้หยุดการเปิดตัวชั่วคราว ปิดช่องว่าง จากนั้นจึงขยายการใช้งานเท่านั้น

4

เตรียมเส้นทางการย้อนกลับและการตอบสนองต่อเหตุการณ์ก่อนปรับขนาด

เตรียมเส้นทางการย้อนกลับและการตอบสนองต่อเหตุการณ์ก่อนปรับขนาด ถือว่าแต่ละขั้นตอนเป็นเหมือนประตูหลักฐาน: หากไม่ตรงตามเกณฑ์ ให้หยุดการเปิดตัวชั่วคราว ปิดช่องว่าง จากนั้นจึงขยายการใช้งานเท่านั้น

สำรวจต่อไป