2 คะแนน โดย GN⁺ 4 시간 전 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • ความพยายามสร้าง วิธีป้อนข้อมูลแบบสไวป์ บนคีย์บอร์ดมือถือด้วยโมเดลและอัลกอริทึมแบบเปิด
  • ที่ผ่านมาระบบป้อนแบบสไวป์คุณภาพสูงมักผูกอยู่กับ แอปคีย์บอร์ดที่ละเมิดความเป็นส่วนตัว หรือ ไลบรารีปิด ที่ไม่มีไลเซนส์ จึงมีความต้องการทางเลือกทดแทน
  • ถูกนำไปใช้ในแอป Android แบบออฟไลน์เต็มรูปแบบ FUTO Keyboard และสามารถดาวน์โหลดโมเดลไปคอมไพล์เองได้
  • ตั้งแต่เดือนสิงหาคม 2024 ได้เก็บข้อมูลการสไวป์ภาษาอังกฤษแบบ QWERTY จนมีมากกว่า 1 ล้านรายการ และเปิดเผยบน HuggingFace ในเดือนมีนาคม 2025 เป็น ชุดข้อมูลภายใต้ไลเซนส์ MIT
  • โครงสร้างแบ่งเป็น Encoder ทั่วไป, ContextLM ตามภาษา, และ Decoder ตามภาษาและเลย์เอาต์ โดยในชุดทดสอบมีอัตราพลาด top-4 ราว 4% และอัตราความผิดพลาดต่ำกว่า 1% เมื่อไม่รวม OOV
  • โมเดลทั้งหมดมีพารามิเตอร์ราว 2.5 ล้านตัว และเป็นโมเดลขนาดเล็กที่มีพารามิเตอร์ใช้งานจริงราว 1.36 ล้านตัว โดยตั้งเป้าให้ทำงานระดับมิลลิวินาทีแม้บนอุปกรณ์สเปกต่ำผ่านไลบรารี C++ swipe-library

ปัญหาที่ต้องการแก้ด้วยโมเดลการป้อนแบบสไวป์แบบเปิด

  • FUTO Swipe คือชุดโมเดลและอัลกอริทึมที่ แปลงเส้นทางการสไวป์เป็นการคาดเดาคำ
  • ตอนนี้สามารถใช้งานได้ในแอปคีย์บอร์ด Android แบบออฟไลน์เต็มรูปแบบ FUTO Keyboard
  • เดโมบนเว็บรันฝั่งเซิร์ฟเวอร์เพื่อลดขนาดหน้าเว็บ แต่ในสภาพแวดล้อมการใช้งานจริงจะ ทำงานบนอุปกรณ์ จึงมีความหน่วงต่ำกว่า
  • FUTO พัฒนาระบบนี้เพื่อใช้กับ FUTO Keyboard เป็นหลัก แต่ก็ ยินดีให้ชุมชนวงกว้างนำโมเดลไปใช้
  • เนื่องจากเป็นผลลัพธ์จากการลงทุนระยะยาว จึงขอ การระบุเครดิตผู้สร้าง ในรูปแบบที่ผู้ใช้ปลายทางมองเห็นได้ และไลเซนส์ของโมเดลใช้ตาม FUTO Model License

ชุดข้อมูลและองค์ประกอบของโมเดล

  • เริ่มเก็บข้อมูล การสไวป์ภาษาอังกฤษแบบ QWERTY ที่ swipe.futo.org ตั้งแต่เดือนสิงหาคม 2024
    • ผู้ใช้เข้ามายังหน้าเว็บบนมือถือด้วยความสมัครใจ เพื่อดูคำอธิบายและข้อมูลเกี่ยวกับชุดข้อมูล
    • หลังให้ความยินยอม ผู้ใช้จะสไวป์คำทีละคำจากประโยคที่ส่วนใหญ่มาจาก Wikipedia
    • ผลลัพธ์คือมี ข้อมูลสไวป์มากกว่า 1 ล้านรายการ และมีการกรองข้อมูลสไวป์คุณภาพต่ำบางส่วนออก
    • ในเดือนมีนาคม 2025 ได้ เปิดเผยบน HuggingFace ชุดข้อมูล 1 ล้านสไวป์ภายใต้ไลเซนส์ MIT
  • สถาปัตยกรรมโมเดลแบ่งเป็น 3 โมเดลที่ทำหน้าที่ต่างกัน
    • Encoder: โมเดลทั่วไป ที่ไม่ขึ้นกับเลย์เอาต์หรือภาษา ใช้สำหรับการคาดเดาการป้อนแบบสไวป์ทั่วไป แต่ยังไม่ถึงระดับความแม่นยำสูงสุด
    • ContextLM: โมเดลภาษาขนาดเล็กมาก สำหรับภาษาเดียว ใช้ตัดตัวเลือกที่ไม่สมเหตุสมผลออกโดยอิงจากคำก่อนหน้าเพื่อเพิ่มคุณภาพการคาดเดา การฝึกต้องใช้เพียง ข้อมูลข้อความเท่านั้น
    • Decoder: โมเดลที่ปรับเฉพาะกับภาษาและเลย์เอาต์ เรียนรู้ลักษณะเฉพาะของเลย์เอาต์เพื่อให้ได้ ความแม่นยำระดับสูงสุด โดยตอนนี้มีเฉพาะ Decoder สำหรับภาษาอังกฤษแบบ QWERTY

ประสิทธิภาพและขนาดการรัน

  • ตัวเลขประสิทธิภาพขึ้นอยู่กับเบนช์มาร์กอย่างมาก ดังนั้นผลลัพธ์ในการใช้งานจริงอาจแตกต่างกัน
    • เมื่อใช้ทั้ง 3 โมเดลร่วมกับ beam width 300 ค่า อัตราพลาด top-4 ของชุดทดสอบอยู่ที่ราว 4%
    • หากไม่นับคำที่ไม่อยู่ในพจนานุกรม อัตราความผิดพลาดต่ำกว่า 1%
    • FUTO ประเมินว่าอยู่ในระดับ เทียบเคียงคีย์บอร์ดของบริษัทเทคขนาดใหญ่
  • โมเดลมีขนาดเล็กโดยคำนึงถึงการรันบนมือถือ
    • Encoder มีพารามิเตอร์ 635,140 ตัว
    • Decoder เพิ่มอีก 304,155 พารามิเตอร์
    • ContextLM มีพารามิเตอร์ 1.5 ล้านตัว โดยในนี้ 1.1 ล้านตัวเป็น embedding
    • พารามิเตอร์ที่ใช้งานจริงมี 1,364,271 ตัว และพารามิเตอร์รวมมี 2,494,767 ตัว
    • สามารถ รันได้ในระดับมิลลิวินาที แม้บนอุปกรณ์สเปกต่ำ และการฝึกก็ไม่ต้องใช้เกิน GPU เวิร์กสเตชัน 1 ตัว

ไลบรารีสำหรับอนุมานผลและไลเซนส์

  • การทำนายจากโมเดลเพียงอย่างเดียวไม่เพียงพอ จึงต้องมี beam search ที่มีข้อจำกัดจากพจนานุกรม เพื่อให้คะแนนตัวเลือกคำและหาคำที่เป็นไปได้มากที่สุด
    • เพื่อจุดนี้จึงได้เปิดเผยไลบรารี C++ swipe-library
    • swipe-library จัดการทั้งการอนุมานผล การถอดรหัส และ beam search เพื่อเชื่อมจากเส้นทางการสไวป์ไปสู่การคาดเดาคำ
    • โมเดลใช้ FUTO Model License ส่วน ไลบรารีสำหรับอนุมานผล เผยแพร่ภายใต้ GPL
  • FUTO กำลังเตรียมเผยแพร่งานวิจัยที่อธิบายการฝึกและสถาปัตยกรรมอย่างละเอียดมากขึ้น

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

 
wedding 3 시간 전

ผมกำลังใช้คีย์บอร์ดสั่งงานด้วยเสียงของบริษัทนี้อยู่ และมันดีมากครับ

 
GN⁺ 4 시간 전
ความคิดเห็นจาก Hacker News
  • ชอบการพิมพ์แบบปาดเพราะความเร็ว โดยทั่วไปเร็วกว่าการแตะและใช้งานมือเดียวได้ง่าย แต่ก็มักพิมพ์คำที่คล้ายกันผิดซ้ำ ๆ และแยกตัวอักษรเดี่ยว/ตัวอักษรซ้ำได้ไม่เก่ง
    อยากได้ผังคีย์บอร์ดใหม่สำหรับการปาดโดยเฉพาะมานานแล้ว เหมือนที่ Dvorak ปรับสรีรศาสตร์ของการพิมพ์ภาษาอังกฤษให้เหมาะที่สุด ถ้ามีผังที่ลดการทับซ้อนของคำและความกำกวมเวลาปาดได้ก็น่าจะดี
    ไม่จำเป็นต้องมี 26 ปุ่มเสมอไป อาจรวม v/w/x/z ไว้ในปุ่มเดียว แล้วใช้การกดค้างเพื่อป้อนตัวอักษรเดี่ยวก็ได้ หรือในทางกลับกันอาจต้องแยก e กับ ee ออกจากกัน หรือมีปุ่มพิเศษสำหรับ “ทำตัวอักษรก่อนหน้าซ้ำ”
    ปัญหาส่วนใหญ่เกิดจากการที่ QWERTY ไม่เหมาะกับการปาดเอาเสียเลย ดังนั้นถ้ามีผังที่เหมาะที่สุดซึ่งทำให้ความแม่นยำในภาษาอังกฤษเพิ่มจากที่ตอนนี้รู้สึกได้ราว 90~95% ไปถึง 99.9% ก็ยินดีเรียนรู้ผังใหม่เต็มที่

    • FUTO Swipe รองรับ ClearFlow ซึ่งเป็นผังคีย์บอร์ดที่ปรับให้เหมาะกับการปาดแบบนั้นพอดี: https://clearflowkeyboard.github.io/
      https://github.com/futo-org/futo-keyboard-layouts/issues/163
    • การประเมินว่าอยู่ที่ 90~95% นั้นค่อนข้างแม่น และในการทดสอบก็วัดได้ประมาณนั้นเหมือนกัน เร็ว ๆ นี้น่าจะมีบล็อกโพสต์เกี่ยวกับเรื่องนี้
      ด้วยโครงสร้างของโมเดล จึงสามารถสร้างสไวป์สังเคราะห์ประมาณ 50,000 คำสำหรับแต่ละผัง แล้วส่งผ่านโมเดลเพื่อปรับความแม่นยำในการรู้จำให้เหมาะที่สุดได้โดยตรง และด้วยวิธีนี้จึงทดสอบผังไปประมาณ 800,000 แบบ
      ปัญหาใหญ่ที่สุดของ QWERTY คือมีคำจำนวนมากเกินไปที่ถูกปาดเป็นรูปแบบตัวอักษร 3 ตัวติดกันในแนวเส้นตรงหรือมุมป้าน รูปแบบแบบนี้ทั้งรู้จำยาก และผู้ใช้ก็แสดงเจตนาว่าต้องการตัวอักษรไหนผ่านท่าทางได้ไม่ชัดเจน
      โมเดลปาดแบบโครงข่ายประสาทไม่ได้พยายามจับคู่รูปร่างของท่าทางเหมือนการจับคู่รูปทรงเชิงอัลกอริทึม แต่จะมองหาสัญญาณจากรูปแบบท่าทางว่าผู้ใช้เล็งตัวอักษรใด
      ถ้าเปลี่ยนรูปทรงของคีย์บอร์ด ท่าทางอาจก่อตัวได้ดีขึ้นจนสัญญาณของตัวอักษรชัดขึ้น โมเดลนี้ต่างจากการจับคู่รูปร่างตรงที่ใช้ข้อมูลเวลาได้ด้วย จึงตอบสนองต่อเวลาที่หยุดค้างได้ แต่การค้างจะทำให้การไหลลื่นสะดุด จึงคิดว่าควรลดให้น้อยที่สุดในผังสำหรับการปาด
    • เป็นของเก่าจึงอาจไม่ค่อยเกี่ยวข้องแล้วในตอนนี้ แต่ในฐานะตัวอย่างการจินตนาการอินเทอร์เฟซแบบท่าทางใหม่อย่างน่าสนใจ มี https://www.the8pen.com/
      ดูเหมือนจะมีภาคต่อสมัยใหม่ด้วย: https://play.google.com/store/apps/details?id=inc.flide.vi8
    • ฉันก็อยากได้สิ่งนี้มาสักพักแล้ว ตอนนี้ใช้ Dvorak ในโหมดแยกที่แสดงเมื่อหมุนโทรศัพท์เป็นแนวนอน เพื่อให้พิมพ์ได้เร็วดี
  • ใช้คีย์บอร์ดนี้แบบเป็นพัก ๆ มาระยะหนึ่ง แต่ก็มักกลับไปใช้ gboard ตลอด ทว่าหลังอัปเดตครั้งนี้ก็ย้ายมาใช้เต็มตัวแล้ว ดีมากจริง ๆ
    ยังมีปัญหาที่มันสุ่มทำคำกลางประโยคให้เป็นตัวพิมพ์ใหญ่ และดูเหมือนจะยังพิจารณาบริบทในการแนะนำคำได้ไม่ดีนัก เลยชอบเสนอคำที่ไม่มีทางตามหลังคำก่อนหน้าได้บ่อย ๆ
    ยังไม่ถึงระดับ gboard แต่ก็ใกล้พอที่จะใช้ต่อได้
    ถ้าใช้อุปกรณ์ที่แรงกว่า ก็สามารถดาวน์โหลดโมเดลเสียงขนาดใหญ่กว่าและพจนานุกรมที่ใหญ่กว่าจากเว็บไซต์ได้ และความต่างที่รู้สึกได้นั้นค่อนข้างชัด
    สิ่งที่เสียดายแบบพื้นฐานคือดูเหมือนจะคัดค้านการเพิ่มการค้นหา GIF ด้วยเหตุผลเชิงอุดมการณ์ ซึ่งบางทีก็คิดถึงฟีเจอร์นั้นอยู่: https://github.com/futo-org/android-keyboard/issues/293#issu...

    • ดูเหมือนจะเจอสถานการณ์คล้ายกัน อยากรู้ว่าเคยเป็นไหมที่การแปลงเสียงเป็นข้อความจู่ ๆ ก็เริ่มพ่นอีโมจิออกมารัว ๆ เป็นพัก ๆ
  • เจ๋งมาก ใช้คีย์บอร์ด FUTO มา 2 ปีแล้ว และมันเป็นคีย์บอร์ดฟรีที่เป็นมิตรต่อความเป็นส่วนตัวที่ดีที่สุดเท่าที่เคยเจอ แต่การปาดของคีย์บอร์ดแบบนี้แย่มากมาตลอด เลยทรมานสำหรับคนที่ใช้การปาดบ่อย
    ดีใจที่การช่วยปาดอยู่ประมาณชั่วโมงหนึ่งเพื่อเสริมข้อมูลให้ชุดข้อมูลนั้น ดูเหมือนจะช่วยได้จริง ตอนนี้ลองใช้แล้วรู้สึกว่าดีพอ ๆ กับ Google keyboard
    แค่ขำที่มันยังชอบปาดเป็น whats แทน what's อยู่เรื่อย ๆ หวังว่าคงแก้ได้ทีหลัง

  • เผื่อใครสงสัยเรื่องไลเซนส์ ตัวไลบรารีเป็น GPLv3 ซึ่งดี แต่คีย์บอร์ด Android เป็น Futo License ซึ่งไม่ค่อยดีนัก
    https://gitlab.futo.org/keyboard/swipe-library/-/blob/master...
    https://github.com/futo-org/android-keyboard/blob/master/LIC...

    • ถ้าจะเพิ่มความซับซ้อนเรื่องไลเซนส์ โมเดลเองก็ใช้ไลเซนส์อีกตัวที่ FUTO เขียนขึ้นแยกต่างหาก แต่ก็ดูไม่แย่เท่ากับไลเซนส์ของคีย์บอร์ดอย่างน้อยก็ในสายตาฉัน: https://huggingface.co/futo-org/futo-swipe/blob/main/LICENSE...
    • อยากรู้ว่าส่วนไหนของ Futo License ที่มีปัญหาเป็นพิเศษ
      หรือว่าเป็นข้อนี้: ห้ามลบหรือซ่อนความสามารถในการจ่ายเงินให้ผู้ให้ไลเซนส์ออกจากสำเนาที่แจกจ่าย
    • มันก็แค่ใกล้เคียงกับไลเซนส์เชิงพาณิชย์ที่มีเงื่อนไขเบามาก
  • หลังจากได้ลอง Nintype บน iOS เมื่อหลายปีก่อน ก็รู้สึกว่าใช้คีย์บอร์ดแบบปัดอื่นไม่ได้อีกเลย ตอนนี้พิมพ์ด้วยคีย์บอร์ดปกติเป็นหลัก และจะปัดแค่คำสองคำเป็นครั้งคราวเวลาที่ใช้สองมือไม่ได้
    การปัดด้วยนิ้วเดียวตอนถือโทรศัพท์ด้วยสองมือมันรู้สึกไม่เป็นธรรมชาติและช้า ๆ อยากให้ Apple ซื้อ Nintype หรือเชอร์ล็อกมันแล้วรวมเข้ากับคีย์บอร์ดพื้นฐานไปเลย

    • ฉันก็เคยใช้เหมือนกัน สงสัยว่าใน FUTO มีฟีเจอร์ให้พิมพ์คำเดียวด้วยการปัดหลายครั้งพร้อมกันหรือไม่พร้อมกันหรือเปล่า แต่ดูเหมือนจะไม่มี ลืมชื่อแอปไปแล้วด้วย พอเห็นนี่แล้วคิดถึงมาก
      ใช้มันมาตั้งแต่ก่อนที่ Apple จะอนุญาตคีย์บอร์ด third-party อย่างเป็นทางการเสียอีก
    • เห็นด้วยสุด ๆ ผู้พัฒนาทำพอร์ต Nintype ลง Android ที่บั๊กเยอะในชื่อ keyboard 69 และฉันก็ใช้มันอยู่หลายปี
      ประสบการณ์ใช้งานน่าทึ่งมาก และทุกระบบปัดที่ลองหลังจากนั้นพอเทียบกันแล้วรู้สึกหน่วงไปหมด การปัดด้วยสองนิ้ว ดีที่สุดในเชิงสรีรศาสตร์ แต่น่าเสียดายที่ดูเหมือนจะเป็นนวัตกรรมที่เฉพาะกลุ่มเกินไป
  • Futo ที่ใส่โมเดลปัดใหม่เข้ามา เป็นคีย์บอร์ด Android ตัวแรกที่ฉันเคยใช้ซึ่งไม่ทำให้รู้สึกว่า ต้องยอมประนีประนอมเมื่อเทียบกับ GBoard
    มีทั้งการป้อนข้อมูลด้วยเสียงในตัว การพิมพ์พร้อมแก้อัตโนมัติที่ดี และการปัดพร้อมแก้อัตโนมัติที่ดี

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

  • พอดีกับที่ Microsoft เริ่มใส่ การรีไดเร็กต์แบบ dark pattern ไปหาโฆษณาและ Bing ใน SwiftKey เลยลบทิ้ง จังหวะมาพอดี

    • ถ้าหมายถึงลบทิ้ง ฉันก็ทำเหมือนกันด้วยเหตุผลเดียวกัน
      แผงให้ใช้ฟังก์ชันแบ็กอัปเด้งกลับมาตลอด มันหนักข้อเกินไปจนสุดท้ายย้ายไป GBoard ตอนนี้ยังไม่เหมือนเดิมแต่ก็กำลังชิน
    • หมายถึงลบทิ้งใช่ไหม? น่าเสียดายที่ใน Microsoft ทีม Bing มีอำนาจมากเกินไป พวกเขาทำให้ผลิตภัณฑ์แย่ลงเพื่อศักดิ์ศรีและรายได้ของ Bing
      อาจเป็นเพราะเงินก็จริง แต่รู้สึกว่าไม่ใช่ทุกอย่างที่ Microsoft ทำจะต้องทำเงินก้อนโตเสมอไป
  • ดูดีนะ แต่ปัญหาใหญ่ของคีย์บอร์ด Futo คือรองรับได้ ทีละภาษาเดียว เท่านั้น ใน gboard ฉันสามารถปัดพิมพ์ได้ใน 3 ภาษาที่ใช้โดยไม่ต้องสลับไปมาเลย อยากให้ Futo ทำแบบนั้นได้เหมือนกัน

  • การพิมพ์ตามเสียงพูด ดีกว่า GBoard ที่ฉันใช้ก่อนหน้านี้มาก มันจัดการตัวพิมพ์ใหญ่ต้นประโยคและเครื่องหมายวรรคตอนให้เองโดยที่ฉันไม่ต้องสนใจ จับหลายประโยคได้เป๊ะโดยแทบไม่ต้องมาแก้ทีหลัง และทั้งหมดรันด้วยโมเดลในเครื่อง
    ข้อเสียคือมันไม่ได้อัปเดตแบบเรียลไทม์ แต่จะแปลงทีเดียวหลังพูดจบ ดูเหมือนว่าตอนนี้ได้แก้เรื่องแบ็กสเปซแบบปัดกับสเปซบาร์ที่ไวเกินไปแล้วจากครั้งสุดท้ายที่ฉันลองเมื่อ 1-2 ปีก่อน และก็ปรับแต่งได้บางส่วนแล้ว