1 คะแนน โดย GN⁺ 2023-07-23 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • บทความนี้กล่าวถึงการเพิ่มการสุ่มตัวอย่างตามไวยากรณ์ใน API ใหม่ของ llama.cpp เพื่อชี้นำและจำกัดการสร้างผลลัพธ์
  • API ของ llama รับโครงสร้างข้อมูลที่แสดงไวยากรณ์แบบไม่ขึ้นกับบริบทซึ่งอนุญาตให้สุ่มตัวอย่างตามกฎไวยากรณ์ได้
  • โค้ดสำหรับการสุ่มตัวอย่างตามไวยากรณ์จำลอง non-deterministic pushdown automata และคงไว้หลายสแตกสำหรับสถานะการพาร์ส
  • บทความมีตัวอย่างการใช้ Grammar API สำหรับสถานการณ์หลากหลาย เช่น หมากรุก เลขคณิต JSON และภาษาญี่ปุ่น
  • มีการกล่าวถึงการปรับแต่งประสิทธิภาพที่เป็นไปได้ เช่น คอมไพล์ไวยากรณ์เป็น state transition tensor และรันบน GPU
  • ผู้ร่วมพัฒนากำลังหารือเรื่องการเพิ่มการรองรับไฟล์ไวยากรณ์ การปรับปรุงตัวพาร์สไวยากรณ์ และการเพิ่มประสิทธิภาพการประเมินโทเค็น
  • มีการเน้นย้ำถึงประโยชน์ของการมีส่วนร่วม พร้อมข้อเสนอให้แยก Sampling API ออกเป็นโมดูลต่างหาก
  • มีการกล่าวถึงโปรเจ็กต์อื่น ๆ เช่น lmql.ai และ jsonformer ที่ใช้แนวทางคล้ายกันสำหรับการสร้างผลลัพธ์ตามไวยากรณ์
  • มีข้อเสนอให้สามารถอ้างอิงโทเค็นทั้งหมดจากไวยากรณ์ และรวมตัวพาร์สไว้ใน API ของ llama.cpp เพื่อปรับปรุงการใช้งาน
  • ผู้ร่วมพัฒนากำลังรีวิวโค้ด ให้ข้อเสนอแนะ และหารือถึงการปรับปรุงที่เป็นไปได้ พร้อมแบ่งปันประสบการณ์กับฟีเจอร์นี้
  • วิศวกรซอฟต์แวร์รายหนึ่งกำลังมีส่วนร่วมในโปรเจ็กต์ที่เกี่ยวข้องกับการสุ่มตัวอย่างตามไวยากรณ์ และพบปัญหาบน ARM64+CUDA
  • ผู้แก้ไขเสนอว่าปัญหาอาจเกี่ยวข้องกับการจับคู่แพ็กเกจ toolchain และเสนอความช่วยเหลือ
  • มีพูลรีเควสต์สำหรับเพิ่มฟังก์ชัน LocalAI และมีข้อเสนอให้ใช้ไวยากรณ์ BNF ที่เป็นมาตรฐานมากขึ้นในโปรเจ็กต์
  • การละเมิดไวยากรณ์ถือเป็นผลลัพธ์ที่แย่ที่สุด และมีการเสนอให้ใช้ backtracking สำหรับการพิจารณาในอนาคต
  • กำลังมีการหารือเกี่ยวกับการติดตั้งใช้งาน EBNF และรูปแบบที่ควรยึดตาม
  • ในอัปเดตล่าสุด การสุ่มตัวอย่างถูกจำกัดให้ตรงกับโทเค็นแบบสมบูรณ์ และมีข้อเสนอให้ปรับปรุงเพิ่มเติมเพื่อรองรับกรณีที่โทเค็นถูกแยกอย่างไม่เหมาะสม
  • การเปลี่ยนแปลงของโปรเจ็กต์ได้รับการอนุมัติและพร้อมสำหรับการรวมเข้าระบบแล้ว และผู้แก้ไขตั้งตารอที่จะทดลองใช้โปรเจ็กต์เวอร์ชันอัปเดต
  • มีการกล่าวถึงปัญหาลักษณะคล้ายกันที่กำลังทำในโปรเจ็กต์อื่น พร้อมข้อเสนอให้คำนวณการกระจายของ lexical token ล่วงหน้า
  • วิศวกรซอฟต์แวร์แสดงความสนใจในแนวทางดังกล่าวและยินดีแบ่งปันความคิดเห็น
  • บทสนทนาบน GitHub ยังคงดำเนินต่อไปโดยมีผู้เข้าร่วมหลายคน

1 ความคิดเห็น

 
GN⁺ 2023-07-23
ความคิดเห็นใน Hacker News
  • โมเดลภาษาสามารถสร้างโทเค็นได้ครั้งละหนึ่งตัว จึงควบคุมรายละเอียดได้อย่างละเอียด
  • การสุ่มตัวอย่างแบบอิงไวยากรณ์สามารถใช้เพื่อกำหนดข้อจำกัดทางไวยากรณ์ให้กับข้อความที่สร้างขึ้น
  • การสุ่มตัวอย่างแบบอิงไวยากรณ์อาจไม่สามารถแก้ปัญหา alignment หรือรับประกันการติดป้ายกำกับที่ถูกต้องได้
  • มีที่เก็บ GitHub สำหรับการนำการสุ่มตัวอย่างแบบอิงไวยากรณ์ไปใช้ใน PyTorch
  • หากพิจารณาความน่าจะเป็นร่วม ก็อาจเลือกตัวเลือกได้ดีขึ้นในการแจงนับสตริง enum แบบหลายตัวเลือก
  • มีการยกไลบรารีไวยากรณ์มาเป็นตัวอย่างว่ารูปแบบสามารถเป็นอย่างไรได้บ้าง
  • ผู้ใช้บางคนสนใจแนวคิดนี้ แต่ก็ตั้งคำถามต่อผลกระทบในระยะยาว
  • การสุ่มตัวอย่างแบบอิงไวยากรณ์อาจมีประโยชน์กับโดเมนเฉพาะและ internal DSL
  • ยังคงต้องใช้ prompt engineering เพื่อให้ได้ผลลัพธ์ตามต้องการ
  • ยังมีวิธีการและเครื่องมืออื่นที่คล้ายกันด้วย
  • มีการขอคำแนะนำเกี่ยวกับวิธีการถอดรหัสในยุคของ neural network