Tags:
Topics: 
Node Thumbnail

OpenAI เพิ่มฟีเจอร์ในการเรียก ChatCompletion API ให้สามารถกำหนด format ของค่าที่คืนมาเป็นไปตาม JSON Schema ที่กำหนดได้เต็ม 100%

คำสั่งบังคับให้คืนค่าตาม JSON Schema ที่กำหนดนี้สามารถใช้กับ Chat Completion ได้ทุกโมเดล อย่างไรก็ดีโมเดลที่ทาง OpenAI ทดสอบแล้วได้ผลเต็ม 100% จะเป็น gpt-4o-2024-08-06 ที่เพิ่งออกมาวันนี้

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

กระบวนการทำให้ GPT-4o สามารถคืนค่าตาม JSON Schema ได้ 100% นี้ทำสองขั้นตอน คือ การฝึกโมเดลเพิ่มเติม ซึ่งแม้จะทำได้ดีขึ้นแต่ก็ยังมีข้อจำกัด เพราะโดยรวมสามารถตอบได้ตรง schema เพียง 93% จากนั้นทีมงานสร้างตัว decoder ใหม่ ที่ไม่ได้เลือก token ที่มีความน่าจะเป็นตามโมเดลปกติสูงสุด แต่ใส่เงื่อนไขว่าต้องเลือก token ที่จะทำให้คำตอบตรงตาม JSON Schema เท่านั้น

JSON Schema ที่ใช้งานได้เป็น subset ของมาตรฐานเท่านั้น โดยหลักคือรองรับ properties ไม่เกิน 100 ตัว และสามารถสร้างออปเจกต์ไม่เกิน 5 ชั้น

โมเดล gpt-4o-2024-08-06 ยังลดค่าโทเค็นฝั่งอินพุตลง 50% เหลือ 2.5 ดอลลาร์ต่อล้านโทเค็น และฝั่งเอาท์พุตลดลง 33% เหลือ 10 ดอลลาร์ต่อล้านโทเค็น

ที่มา - OpenAI

No Description

Get latest news from Blognone

Comments

By: Tasksenger on 7 August 2024 - 07:56 #1318866

ใกล้ได้เวลาที่โปรแกรมเมอร์จะต้องเรียนรู้วิธีอธิบาย schema ให้ LLM เพื่อให้มันพ่น json มาให้ตรงที่ต้องการแล้วสิ ถ้าทำดีๆ มันสามารถใช้ร่วมกับ SQL แต่เก็บรายละเอียดได้เยอะกว่าเลยนะ ต่อไปน่าจะ bundle ไปกับฐานข้อมูลเลย แล้วเขียน prompt ร่วมกับ SQL เพื่อเรียกข้อมูลที่ซับซ้อน และป้องกันข้อมูลทั้งรับข้อมูลสุ่มเสี่ยง และปล่อยข้อมูลตามชั้นความลับจากระบบได้ โดยไม่ต้องเขียน backend เองแล้ว แต่มันทำได้จริงๆ นะ ผมลองทำมาได้สัก 4-5 เดือนแล้ว ชีวิตสงบสุขลงพอสมควร ไม่ต้องไปยุ่งกับภาษาฝั่ง server เลย แต่ก็ยังมีปัญหาเรื่องความปลอดภัย รวมถึงความไม่แน่นอนของ output ซึ่งทาง Google (อ้างอิงที่ผมใช้งาน) ก็น่าจะรู้ปัญหาได้ออกตัวแก้ไขปัญหามาให้แล้วได้สักพักแล้ว แต่ยังไม่ได้ลอง แต่ยังไงก็ยังต้องใช้ร่วมกับ API หรือคำสั่ง SQL ร่วมด้วยอยู่ดี