- บทความนี้กล่าวถึงการเพิ่มการสุ่มตัวอย่างตามไวยากรณ์ใน 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 ความคิดเห็น
ความคิดเห็นใน Hacker News