คู่มือ AI ภาษา

การถอดรหัสแบบจำกัด

การถอดรหัสที่มีข้อจำกัดบังคับให้โมเดลภาษาสร้างเอาต์พุตที่เป็นไปตามกฎที่เข้มงวด เช่น JSON ที่ถูกต้อง รูปแบบ regex หรือชุดตัวเลือกคงที่ โดยการบล็อกโทเค็นใดๆ ก็ตามที่จะทำให้โครงสร้างเสียหาย

อ่าน 2 นาทีอัปเดตล่าสุด

ภาพรวม

It turns a probabilistic text generator into a reliable producer of machine-parseable output.

เจาะลึก

โดยปกติแล้ว โมเดลภาษาจะสุ่มตัวอย่างโทเค็นถัดไปจากคำศัพท์ทั้งหมด ดังนั้นจึงไม่มีอะไรหยุดไม่ให้สร้างเครื่องหมายจุลภาคหรือวงเล็บเหลี่ยมที่ไม่สมดุลซึ่งทำให้การแยกวิเคราะห์ JSON เสียหาย การถอดรหัสที่มีข้อจำกัดจะแก้ไขปัญหานี้โดยการรักษาไวยากรณ์หรือเครื่องสถานะควบคู่ไปกับการสร้าง ในแต่ละขั้นตอน ระบบจะคำนวณว่าโทเค็นใดถูกต้องตามกฎหมายเมื่อพิจารณาจากสิ่งที่ผลิตจนถึงตอนนี้ จากนั้นจึงปิดบัง (ตั้งค่าเป็นค่าอนันต์ติดลบ) ความน่าจะเป็นของโทเค็นที่ผิดกฎหมายทุกอันก่อนสุ่มตัวอย่าง สำหรับ JSON นั่นหมายถึงหลังจากเครื่องหมายปีกกาเปิด อนุญาตให้ใช้เครื่องหมายคำพูดหรือเครื่องหมายปีกกาปิดเท่านั้น หลังคีย์ เพียงเครื่องหมายทวิภาคเท่านั้น การใช้งานทั่วไปจะรวบรวมไวยากรณ์ที่ไม่มีบริบท (เช่น GBNF ใน llama.cpp), JSON Schemas หรือนิพจน์ทั่วไปลงในมาสก์ระดับโทเค็นเหล่านี้ รับประกันว่าเอาต์พุตจะมีโครงสร้างที่ถูกต้องโดยการสร้างมากกว่าความหวัง

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

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

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

ความเร็วและขนาด

ขั้นตอนการทำงานของภาษาสามารถดำเนินไปได้เร็วขึ้นโดยไม่กระทบต่อความสม่ำเสมอ

เข้าถึงและเข้าถึง

ขยายการเข้าถึงภาษาและรูปแบบการสื่อสาร

การตัดสินใจที่ชัดเจนยิ่งขึ้น

ทีมสามารถใช้เวลามากขึ้นในการตัดสิน ในขณะที่ระบบอัตโนมัติจัดการกับการทำซ้ำ

อนาคตของการถอดรหัสที่มีข้อจำกัด

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

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

การบังคับให้ LLM ปล่อย JSON ที่ตรงกับสคีมาที่กำหนดไว้ล่วงหน้าทุกประการ เพื่อให้โค้ดดาวน์สตรีมสามารถแยกวิเคราะห์ได้โดยไม่ต้องลอง/ยกเว้นตัวป้องกัน

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

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

การสร้างเอาต์พุตที่สอดคล้องกับนิพจน์ทั่วไป เช่น หมายเลขโทรศัพท์ วันที่ ISO หรือรหัสผลิตภัณฑ์ที่มีรูปแบบคงที่

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

ข้อเท็จจริงที่หลอนประสาทสามารถเข้าสู่รายงาน กระแสสนับสนุน หรือผลการวิจัยได้อย่างเงียบๆ

ความละเอียดอ่อนของการแจ้งเตือนสามารถสร้างผลลัพธ์ที่ไม่สอดคล้องกันในคำขอที่คล้ายกัน

ข้อมูลข้อความที่ละเอียดอ่อนอาจถูกเปิดเผยหากการควบคุมการเข้าถึงอ่อนแอ

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

1

กำหนดรูปแบบเอาต์พุต โทนเสียง และมาตรฐานคุณภาพก่อนเปิดตัว

2

การตอบสนองภาคพื้นดินกับแหล่งข้อมูลที่เชื่อถือได้เมื่อใดก็ตามที่ความแม่นยำมีความสำคัญ

3

รักษาจุดตรวจสอบการตรวจสอบโดยมนุษย์สำหรับผลลัพธ์ที่มีเดิมพันสูง

4

ติดตามรูปแบบความล้มเหลวและฝึกอบรมพร้อมท์หรือเวิร์กโฟลว์เป็นประจำ

สำรวจต่อไป

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Constrained Decoding quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

เริ่มแบบทดสอบ

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

คำแนะนำต่อไป

การถอดรหัสที่ตรงกันข้าม

คำถามที่พบบ่อย

What is Constrained Decoding?

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

โดยพื้นฐานแล้วการถอดรหัสแบบจำกัดทำอะไรได้บ้างในแต่ละขั้นตอนของการสร้าง

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

เหตุใดการถอดรหัสแบบจำกัดจึงมีประโยชน์สำหรับการสร้างเอาต์พุต JSON

การอนุญาตเฉพาะโทเค็นที่ทำให้ไวยากรณ์ JSON ถูกต้องเท่านั้น เอาต์พุตจึงไม่สามารถมีเครื่องหมายปีกกาที่ไม่สมดุลหรือเครื่องหมายจุลภาควางผิดตำแหน่งได้ ดังนั้นจึงแยกวิเคราะห์ได้อย่างน่าเชื่อถือ

ความท้าทายทางเทคนิคใดที่ทำให้การถอดรหัสแบบจำกัดยุ่งยากในการดำเนินการ

โทเค็นแบ่งข้อความออกเป็นส่วนย่อยของคำที่ขยายหรือแบ่งขอบเขตไวยากรณ์ ดังนั้นไลบรารีจึงต้องแมปการเปลี่ยนผ่านไวยากรณ์ไปยังคำศัพท์โทเค็นจริง

ข้อใดคือรูปแบบจริงที่ใช้ระบุข้อจำกัดในการถอดรหัส

JSON Schemas, ไวยากรณ์ที่ไม่มีบริบท (เช่น GBNF) และนิพจน์ทั่วไปมักถูกรวบรวมไว้ในโทเค็นมาสก์ที่บังคับใช้โครงสร้าง

โดยทั่วไปจะใช้มาสก์ข้อจำกัดที่จุดใดในไปป์ไลน์

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