ข้ามไปที่เนื้อหาหลัก

บทความ

ความสำคัญของชุดข้อมูลเปิดสาธารณะกับ Open Source ที่เพิ่มขึ้น

จากความเคลื่อนไหวในวงการ NLP ในหลายปีที่ผ่านมา ทั้ง OpenAI whisper กับ OpenAI ChatGPT, BERT และอื่น ๆ ยิ่งตอบย้ำถึงความสำคัญของชุดข้อมูลเปิดสาธารณะกับ Open Source ที่มีส่วนร่วมสำคัญอย่างยิ่งในการเปลี่ยนแปลงด้านเทคโนโลยีปัญญาประดิษฐ์ที่เกี่ยวข้องกับภาษามนุษย์ ทั้งด้านการพัฒนาแอปและงานวิจัยใหม่ ๆ ที่ผู้คนสามารถเข้าถึงได้จากทั่วโลก ตัวอย่างเช่น OpenAI whisper โมเดลรู้จำเสียงกับแปลภาษาจากเสียงที่รองรับภาษาไทยด้วย จากที่นำชุดข้อมูล CommonVoice ซึ่งเป็นชุดข้อมูลเสียงพูดภาษาไทยแบบสาธารณะที่ใหญ่ที่สุด ณ ตอนนี้ (เพราะไม่มีชุดข้อมูลสาธารณะอื่น ๆ ที่มีภาษาไทยมากกว่านี้) นำมาเทรนโมเดล, OpenAI ChatGPT ที่ใช้ GPT 3.5 ซึ่งเก็บข้อมูลมาจากอินเทอร์เน็ต เว็บต่าง ๆ (รวมถึงวิกิพีเดียด้วย) ทำให้มีภาษาไทยด้วย, BERT multilingual base model (cased) จาก Google ที่เทรนบนข้อมูลวิกิพีเดีย 104 ภาษา ทำให้รองรับภาษาไทยด้วย, งาน XLM-RoBERTa, LASER และอื่น ๆ สิ่งเหล่านี้ต่างใช้งานชุดข้อมูลเปิดสาธารณะกับ Open Source ซึ่งจะเกิดขึ้นไม่ได้เลย หากขาดชุดข้อมูลเปิดสาธารณะ กับ Open Source เหล่านี้ สมมติถ้าไม่มีภาษาไทยในข้อมูลเ

spaCy ภาษาไทยมาแล้ว!!!

หลังจากที่ผมส่งภาษาไทยแบบ blank (ไม่มี model อะไร) เข้าไป spaCy เมื่อ 5 ปีก่อน แต่การใช้งานไม่สามารถใช้งานได้แบบ spacy.load(___) กับภาษาไทยได้ เพราะยังไม่มีโมเดลให้รัน มาวันนี้ผมได้พอร์ตส่วน word2vec จากโมเดล thai2fit (หรือ thai2vec) ของ Charin Polpanumas ในตำนาน ให้ใช้งานกับ spaCy ผ่าน spacy.load ได้สำเร็จ (เพิ่งทำได้เมื่อ 1 ชั่วโมงก่อนของเวลาโพสต์) จึงทำให้ตอนนี้รองรับเฉพาะส่วน token2vec เท่านั้น และโมเดลอื่น ๆ ที่จะตามมาในอนาคต การใช้งาน ตอนนี้ต้องโหลดโมเดลมาก่อน ในอนาคตผมจะส่งโมเดลเข้าต้นน้ำ spaCy ต่อไป เพื่อให้สามารถใช้งานได้เพียงแค่ spacy.load("th") เหมือนภาษาอังกฤษ (ถ้ามีเวลาว่าง) สามารถลองเล่นผ่าน Colab ได้ลิงก์นี้ https://colab.research.google.com/drive/1b_gZ34zZHVFeMBlz16F2cmjE7vKGqbGW?usp=sharing GitHub: https://github.com/PyThaiNLP/thai_spacy_model   ช่วงโฆษณา ส่ง GitHub sponsors ได้ที่ https://github.com/sponsors/wannaphong/ ครับ 🙏

PyThaiNLP ยอดโหลดทั้งหมดกว่า 1 ล้าน 8 แปด

PyThaiNLP ปัจจุบันมียอดโหลดจำนวน 1 แสนดาวน์โหลดต่อเดือน และจำนวนยอดโหลดทั้งหมดกว่า 1 ล้าน 8 แปด กว่า ๆ ถือเป็นยอดที่ค่อนข้างสูงสำหรับซอฟต์แวร์ open source เฉพาะทาง โดยเฉพาะการประมวลผลภาษาไทย . ด้วยยอดที่สูงขึ้นจากเมื่อ 2 - 3 ปีก่อน ทำให้เราต้องปรับปรุง PyThaiNLP ให้ดียิ่งขึ้น ทั้งเรื่องปรับปรุงโค้ด ปรับปรุงโมเดล พัฒนาเทคนิคการเรียกใช้งานให้มีประสิทธิภาพ รวมถึงยังสามารถใช้งานได้ง่าย ติดตั้งได้ง่ายอยู่ เพื่อให้นักเรียน นักศึกษา บุคคลทั่วไปที่เพิ่งเข้ามาในด้านนี้สามารถใช้งานได้สะดวก . เรื่องโมเดล เราได้ปรับนโยบายการนำชุดข้อมูล/โมเดลมาใช้งานกับ PyThaiNLP โดยชุดข้อมูล/โมเดลต้องมาจากแหล่งที่เป็นมิตรกับ open source ทั้งเรื่องแหล่งให้โหลดกับใบอนุญาตของชุดข้อมูล/โมเดลนั้น ๆ ทำให้ PyThaiNLP รุ่นถัดไป ทุกชุดข้อมูล/โมเดลจะเป็นมิตรกับ open source ทั้งหมด ทุกคนสามารถใช้งานได้ทุกวัตถุประสงค์ . ส่วนเรื่องโค้ด เราได้ปรับปรุงการตัดคำ newmm ความท้าทายในการปรับปรุงครั้งนี้คือกฎของ TCC ที่มีตัวอย่างในตัว paper จำนวนน้อย ทำให้เราต้องปรับปรุงโดยอ้างอิงตัวอย่างจาก paper อื่น ๆ ที่ใช้งาน TCC และปรับโค้ดให้ตรงก

มาร่วมกันบริจาคประโยคภาษาลาวสำหรับ Commonvoice ภาษาลาวกัน

ขอเชิญชวนทุกท่านที่ใช้หรือรู้ภาษาลาว มาร่วมกันบริจาคประโยคภาษาลาว สำหรับ Commonvoice ภาษาลาวกัน

เมื่อ Zotero เนื้อที่ไม่พอ

เรื่องเล่าจากเรื่องจริง ผมถนัดใช้ Zotero มาก แถมตอนนี้ใช้ใน iPad ได้แล้วผ่านแอป Zotero (รุ่นทดสอบ) แต่ตอนนี้ผมใช้เนื้อที่เต็ม เลยต้องหาที่เก็บไฟล์ จะให้ใช้ซื้อ Storage ของ Zotero เพิ่มก็ไม่เพียงพอ เพราะต้องซื้อเหมาทีเดียวเป็นรายปี เลยตัดสินใจไปเช่า VPS ที่ DigitalOcean ราคาถูก ๆ และดึง docker webdav ขึ้นมา ใช้ docker แป๊ปเดียว แต่ไม่จบ เพราะ Zotero ใน iOS มันซิงค์กับ webdav ที่เป็น http ปกติไม่ได้ เลยต้องไปปรับ docker ใช้ letsencrypt กับปรับแต่ง Dockerfile จนตอนนี้ใช้งานได้วงจร ทั้งบนคอมกับ iPad แล้ว GitHub docker webdav ssl: https://github.com/wannaphong/docker-webdav

layout คีย์บอร์ดภาษาไทยกับ Phosh

เมื่อปีก่อน หลังผมได้ PinePhone มา ผมพบว่า postmarketos ไม่มี layout คีย์บอร์ดภาษาไทย ทำให้ไม่สามารถพิมพ์ภาษาไทยได้เลย ผมเลยไปถาม postmarketOS สรุปผมเลยต้องไปไล่ดู จนส่ง pull request layout คีย์บอร์ดภาษาไทยไปได้ทาง https://source.puri.sm/Librem5/squeekboard/-/merge_requests/402/ จนได้เข้ารวมกับต้นน้ำ เย้ ผ่านมา 1 ปี ผมไม่ได้ใช้ postmarketOS แล้ว เปลี่ยนไปใช้ mobian แทน แต่ก็ยังได้ใช้ layout คีย์บอร์ดภาษาไทยของตัวเองที่ได้ส่งไปให้ต้นน้ำ :D เอาตามตรงนะ ตอนสร้างไม่ได้ทดสอบอะไรเลย เพราะ sim ที่เขามีให้มันใช้ไม่ได้ เลยมั่วส่งไป กับอ่านโค้ด layout คีย์บอร์ดภาษาอื่น ๆ ที่มีอยู่แล้ว ประกอบ

เรื่องเล่าโปรเจค 1: จะรันโค้ดโปรแกรมยังไง

หลังจากที่เสนอหัวข้อกับอาจารย์ที่ปรึกษาผ่าน แต่ก็ยังมีปัญหา คือ จะรันโค้ดโปรแกรมที่รับมาจาก user แล้วตรวจกับเก็บผลลัพธ์ยังไง ก่อนหน้านี้ ผมบังเอิญไปเจอไลบรารีตัวหนึ่งใน python ที่สามารถยิงคำสั่งโค้ดเข้าไปรันใน docker โดยจำกัดเวลา แรม CPU เครือข่าย ในการทำงานได้ แถมส่งออกมาเป็นผลลัพธ์ได้ ผมจึงเขียนระบบตรวจสอบโค้ดในภาษา python แต่ปัญหายังไม่จบลงแค่นั้น ส่วนหน้าบ้านผมกับเพื่อน ตกลงกันว่าจะใช้ PHP ด้วย laravel ในการเขียนส่วนหน้าบ้านทั้งหมด ต่างภาษากัน จึงต้องเขียน API ให้หน้าบ้านยิงคำสั่งตรวจกับข้อมูลไปหาระบบตรวจที่เป็น python ใช้รูปแบบข้อมูล json ในการยิงและส่ง ปัญหายังไม่จบ คือ จะเก็บข้อมูลยังไง ผมเลยตัดจบปัญหา โดยให้ทั้งระบบหน้าบ้านและระบบตรวจสอบโค้ดใช้ฐานข้อมูลตัวเดียวกันเลย เวลาหน้าบ้านยิงไป จะได้ยิงแค่ไอดีและข้อมูลที่จำเป็นเท่านั้น แล้วผลลัพธ์ลงฐานข้อมูลเลย