#อ่านNLProc Talk: ป๋อง กรกฎ เชาวะวณิช

Can Udomcharoenchaikit
AIResearch.in.th
Published in
3 min readJan 2, 2020

เพจ #อ่านNLProc คุยกับนักวิจัยจากสถาบันวิทยสิริเมธี (VISTEC) และ open source developer กรกฎ เชาวะวณิช หรือพี่ป๋อง หนึ่งใน maintainer ของ PyThaiNLP และเขาเป็นคนเขียนโปรแกรมตัดคำแบบ maximal matching ให้กับ library นี้ นอกจากนี้ยังเป็นแอดมินกลุ่ม Colab Thailand สำหรับผู้ใช้ Google CoLab ในประเทศไทยอีกด้วย

#อ่านNLProc: สวัสดีครับ รบกวนพี่ป๋องช่วยแนะนำตัวเองหน่อยครับ

พี่ป๋อง: สวัสดีครับ ตอนนี้พี่เป็นนักวิจัยอยู่ VISTEC ก่อนหน้านี้เคยเป็น senior data scientist อยู่บริษัท TRUE ตอนเรียนจบปริญญาโทที่อังกฤษ ก็ทำเรื่อง speech และ NLP พอทำไปซักพักนึงก็ออกไปอยู่แวดวงอื่น แล้วก็เพิ่งกลับมาทำ NLP อีกรอบเมื่อสามปีที่ผ่านมา

#อ่านNLProc: ช่วยเปรียบเทียบ NLP สมัยที่พี่ป๋องเริ่มทำงาน NLP ใหม่ ๆ ทั้งด้าน speech และ text กับปัจจุบันว่าเปลี่ยนไปอย่างไรบ้าง

พี่ป๋อง: ถ้าสมัยก่อนโน้นเลยเมื่อ 20 ปีที่แล้ว ช่วงนั้นก็ active ก็มี lab ต่าง ๆในประเทศไทยทำงานออกมาเยอะเลย จำได้ว่าสมัยโน้นที่มหาวิทยาลัยเกษตรศาสตร์นี่เป็นหัวหอกตัวตั้งตัวตีมีงานออกมาเยอะเลย พอออกจากวงการไปสิบปีแล้วกลับมาอีกครั้งก็เหมือนงานมันฟรีซอยู่ไว้ตรงนั้นเลยแทบไม่มีอะไรเปลี่ยนแปลงเลย ตอนกลับมาคือปี 2016 รู้สึกว่าทำไมมันไม่มีอะไรเลย ตัดคำก็ยังเหมือนเดิม มีการแข่งขันกันหน่อยนึง ก็รู้สึกดูเศร้า ๆ ว่าทำไมมันไม่มีอะไรใหม่เลย

#อ่านNLProc: มองว่าในอนาคต NLP สำหรับภาษาไทยจะเป็นอย่างไร จะมีอะไรตายไป และจะมีอะไรใหม่เพิ่มขึ้นมา

พี่ป๋อง: ขอต่อจากคำถามที่แล้ว หลังจากปี 2016 เป็นต้นมาเนี่ย กระแสมันก็มาพร้อมกันทั้งข้างในประเทศ และต่างประเทศ กระแสหลัก ๆ ในประเทศเลยก็เรียกได้ว่าถูกจุดประกายโดยน้องต้นตาลที่ทำ PyThaiNLP แจกออกมาให้คนมีเครื่องมือใช้ง่าย ๆ และก็มีการสร้าง community บน facebook ซึ่งอันนี้ก็คือกระแสจากภายในประเทศ ส่วนกระแสจากข้างนอกประเทศเนี่ย เรื่อง AI กำลังมาตั้งแต่ปี 2012 ที่สาย image ก็มีการเติบโตอย่างรวดเร็ว ส่วนปี 2017–2019 สาย NLP ก็เติบโตอย่างรวดเร็วเช่นกัน ปี 2019 นี่เรียกว่า NLP กลายเป็น hot topic ไปแล้ว ตั้งแต่ Google แจก BERT ออกมา ก็คาดว่างาน NLP ก็คงถูกผลักดันจากทั้งในประเทศและต่างประเทศ แต่หลัก ๆ คิดว่าน่าจะถูกผลักดันโดยงานจากต่างประเทศมากกว่า เพราะตัว algorithm หรือ โมเดล ใหม่ ๆ ส่วนใหญ่แค่เอามาปรับนิด ๆ หน่อย ๆ ก็สามารถใช้งานกับภาษาไทยได้แล้ว คิดว่ากระแส NLP จะแรงขึ้นเรื่อย ๆ เพราะว่าเราก็ตามกระแสจากเมืองนอกนั้นแหละ

#อ่านNLProc: มุมมองงาน Research งาน NLP ในปัจจุบันในยุคที่หลายคนหันมาทำวิจัย NLP พี่ป๋องมีมุมมองอย่างไรบ้างครับ

พี่ป๋อง: มองว่าสำหรับคนส่วนใหญ่ก็อยากใช้งานแบบสำเร็จรูปได้เลย แบบโค้ดน้อย ๆ พร้อมใช้งาน ในส่วนนี้พี่ก็มีส่วนช่วยในการเอางานเอาโค้ดที่ใช้ยาก ๆ มาแปลงเป็นโค้ดบน Google CoLab ให้คนพร้อมใช้งาน เพียงแต่ถ้าจะเอาไปทำ application ต่อก็ต้องมีความสามารถในการโปรแกรมนิดหน่อย และงานวิจัยหลัง ๆ ก็นิยมแจกโค้ดด้วย จะมีทั้งเปเปอร์วิจัยและโค้ด คิดว่าในช่วงหลังคนที่อยากใช้งานเลยก็จะมีโค้ดให้ใช้ได้มากขึ้น ทีนี้จุดอ่อนคือยังมีบ้างในบางเรื่องที่ภาษาไทยยังทำได้ไม่ดี ก็คงจะมีบางเรื่องที่เราต้องช่วยกันทำในเรื่องที่ต่างประเทศยังไม่ให้ความสนใจ เช่นงานตัดประโยค งานสังเคราะห์เสียงภาษาไทย แต่คิดว่าคงอีกไม่นานถึงจะมีให้ใช้กันเพราะตอนนี้ก็มีหลายคนที่มาช่วยกันทำอยู่เช่น KBTG ก็มีงานดี ๆ ออกมา และของทาง VISTEC ก็จะมี dataset และโมเดลออกมาอีกเยอะ คิดว่าอนาคตน่าจะสดใส

#อ่านNLProc: ตอนนี้พี่ป๋องทำงาน NLP อะไรอยู่บ้างครับ ?

พี่ป๋อง: ก็ที่ทำอยู่มีสามอย่างหลัก ๆ อันแรกก็คือ tree bank ซึ่งคนหลักในงานนี้ก็คืออาจารย์วิโรจน์ที่อักษรจุฬาฯ ทำไปเกือบเสร็จซัก 60–70 เปอร์เซ็นทำ Part-Of-Speech กับ head dependency เสร็จแล้ว ตอนนี้ขาด relation ซึ่งกำลังช่วยกับอาจารย์อรรถพล ธำรงรัตนฤทธิ์ ตอนนี้กำลังจะหาคนมาช่วย tag ข้อมูล ซึ่งเราก็อาจจะช่วย automate นิดหน่อย ถ้าอันนี้เสร็จก็จะถือว่าเป็น tree bank สำคัญ ที่เป็น open tree bank อันแรกของเมืองไทย

อันที่สองที่ทำก็คือทำแคปชั่น YouTube โดยจริง ๆ มันเริ่มจากความสนใจจากพี่เอง ที่ต้องการช่วยถอดเทปที่หลวงพ่อเทศน์บน YouTube เพื่อทำ subtitle และอีกหน่อยก็อยากแปลด้วย ตอนนี้ก็มี dataset ที่ช่วยเอามาทำ caption โดยการเอาคลิป YouTube ที่มีคนไปทำ caption ด้วยมือเอาไว้ เราก็อยากเอามาเทียบกับคลิปที่ทำ caption อัตโนมัติเพื่อหาว่ามันมี error pattern แบบไหน ถ้าเรารู้ error pattern แบบไหนเราก็ทำ auto correction ต่อได้ เพราะฉะนั้นเราก็สามารถทำ auto caption ภาษาไทย กับระบบค้นหาสำหรับภาษาไทยได้ด้วย คิดว่าอันนี้น่าจะมี impact เยอะ เพราะว่า YouTube คนใช้เยอะ แล้วคนก็คงอยากได้ auto caption ภาษาไทยไว้ใช้งาน

ส่วนอีกอันก็คือ papers with code ที่เพิ่งทำไป ตอนนี้มันมี trend ที่คนทำเปเปอร์แล้วก็แจกโค้ดด้วย ก็เลยมีคนกลุ่มนึงที่เค้าไปรวบรวมขึ้นมาโดยการ crowdsource โค้ดของแต่ละเปเปอร์ที่มีคนเอาไป implement มันอยู่บน GitHub อันไหนบ้าง ตอนนี้เราก็เลยมีฐานข้อมูลรวมหมดเลยว่าในวงการ AI มีเปเปอร์ไหนมีคน implement บ้าง เปเปอร์ไหนมีคนให้ดาวบน GitHub เยอะ ๆ บ้างเราก็สามารถดูความนิยมของแต่ละเปเปอร์ได้ด้วย คิดว่าน่าจะเป็นส่วนสำคัญที่จะเอามาช่วยการวิจัยทาง AI ต่อไป

#อ่านNLProc: ขอย้อนกลับมาเรื่องการเอาโมเดลมาใช้กับภาษาไทย อย่างเช่น BERT ซึ่งตอนนี้มีภาษาไทยแล้ว พี่ป๋องได้ลองเล่นลองอะไรบ้างไหมครับ

พี่ป๋อง: พี่จะลองแบบที่เค้าเรียกว่า low hanging fruit คือที่แบบทำง่าย ๆ เช่นอันที่เค้าทำเสร็จแล้วเราก็เอามาเทส เช่นพี่ลองเทสใช้ตัว BERT ของ Google บ้าง แล้วก็อีกตัวที่คล้าย BERT อีกอันที่เทสเยอะหน่อยก็คือตัว XLM-R ของ Facebook ที่เค้าเอา RoBERTa มารวม ซึ่งตัวนี้พี่เอามาเทสทำ feature แปลง sentence เป็น contextualized vector ของแต่ละคำ แล้วก็มีอีกตัวของ Google คือ universal sentence encoder อันนั้นก็เอามาแปลงประโยคทั้งไทยและอังกฤษเป็น vector เอามาพลอตบน space เดียวกันแล้วทำ visualize สวย ๆ ก็เอามาลองเล่นเท่านี้ จริง ๆ ก็อยากจะเล่นเยอะกว่านี้ คือเอาตระกูล BERT ทั้งหลายมา train เอง แต่ว่ายังไม่มั่นใจเพราะรู้สึกว่ามันต้อง train นาน และเห็นว่าเห็นอีกไม่นานที่จุฬาฯอาจจะแจกตัวที่เค้า train แล้ว จะได้เอาตัวนั้นมาใช้

#อ่านNLProc: เห็นพี่ป๋องเคยสนใจภาษาบาลีอยู่พักนึง อยากรู้ว่าพี่ป๋องได้ลองทำงานอะไรกับภาษาบาลีบ้างครับ

พี่ป๋อง: ตอนนั้นเนี่ยมีโปรเจคภาษาบาลีของอาจารย์เต้ (อรรถพล ธำรงรัตนฤทธิ์) ที่กะจะทำแอปพลิเคชันมาแปลภาษาบาลี-ไทย แต่ปรากฏว่ามันไม่ค่อยจำเป็นเท่าไหร่ เพราะตอนนั้นจะให้คนเอาแอปพลิเคชันไปแปลบาลีเพื่อเรียน แต่จริง ๆ แล้วบาลีเพื่อเรียนมันมีคำตอบเบ็ดเสร็จอยู่แล้วว่าถามแบบนี้ต้องตอบแบบไหน เพราะเรามี Big Data อยู่แล้วเราก็แค่ look up ได้ไม่ต้องทำ Machine Translation มีปัญหาเรื่อง data ไม่คลีนด้วยต้องมาเสียเวลาคลีนอีกก็เลยไม่ได้ทำต่อ ตอนนี้ที่อยากทำต่อก็คือตัว alignment สำหรับ Machine Translation สามภาษา บาลี-อังกฤษ-ไทย ตอนนี้มีคนที่แปลพระไตรปิฎกใหม่เมื่อไม่กี่ปีมานี้ แปลบาลีเป็นอังกฤษ แล้วก็ยังทำ alignment ระดับ sentence ให้เรียบร้อย ว่าประโยคอันนี้แปลเป็นบาลีแบบนี้ พี่ก็กะว่าจะทำ alignment ให้ครบสามภาษาเลยคือมีภาษาไทยเพิ่มขึ้นมาด้วย ก็จะทำเป็น resource เป็น dataset อันนึง

#อ่านNLProc: อยากจะกลับมาถามเรื่อง PyThaiNLP คือเห็นตั้งแต่คนเข้าไม่กี่คน จนตอนนี้คนเข้าเยอะมาก รู้สึกอย่างไรบ้างครับ ?

พี่ป๋อง: ส่วนนึงก็ดีใจที่โค้ดที่เราเขียนเล่น ๆ ตอนนี้คนใช้เยอะแยะ ก็ดีใจที่ได้ contribute อะไรที่เป็นประโยชน์ ก็กะว่าจะต้องทำให้ดีขึ้น แล้วก็เสียใจก็คือตอนนั้นไม่ได้เขียนให้มันดี ๆ เน้นเขียนให้มันอ่านง่าย ดูง่าย มันก็มี bug บางอันที่เราไม่ได้แก้ เพราะรู้สึกว่าถ้าแก้แล้วโค้ดมันดูไม่สวยเลยเพราะว่ามันจะต้องทำ edge case อะไรพวกนี้เยอะ โค้ดมันจะดูไม่สวย ก็ตอนนี้กะว่าต้องแก้แล้วเพราะมีคน report bug เข้ามาเรื่อย ๆ ก็เลยคิดว่าจะต้องแก้ให้มันดีขึ้น แล้วก็กะว่าจะเขียนใหม่ให้มันดูเรื่องกรณีสะกดผิดได้ด้วย ก็อาจจะแก้ว่าตัดคำแล้วดู spelling ยังไง เพราะมีคน request เพราะเวลาเขาทำ OCR แล้วเวลา PyThaiNLP มันตัดคำก็ยังทำไม่ดีเลย เพราะว่ามันทำ OCR ออกมาเจอแล้วคำสะกดผิดเยอะด้วย

#อ่านNLProc: แผนในอนาคตของกลุ่ม Colab มีแผนอะไรบ้างไหมครับ พอจะบอกได้ไหมครับว่ามีโปรเจคอะไรไหมครับ

พี่ป๋อง: ก็ไม่ได้มีแผนอะไร เน้นอยู่กับปัจจุบัน เช่นมีคนขอ feature อะไรตอนเช้า ช่วงบ่าย ๆ เราก็เขียนให้ แต่จริง ๆ แผนคร่าว ๆ ในระยะยาวคืออยากทำอะไรให้มันทำได้เยอะขึ้นกว่านี้ เช่นเมื่อเช้ามีคนถามมาเรื่องอยากทำ quiz ถ้าเกิดมีโจทย์มาให้นักเรียนเอา CoLab ไปทำแล้วเห็นเฉลยเลย จะมีเครื่องมืออะไรบ้าง เราก็ช่วยคิดแล้วก็ทำ feature ให้ เราก็กะจะทุก ๆ วัน ทุก ๆ สัปดาห์ เราก็จะเพิ่ม feature เข้าไป อะไรที่ CoLab ก่อนหน้าไม่มีตัวอย่างที่ทำได้ เราก็จะทำให้มันทำได้เยอะขึ้นเรื่อย ๆ อย่างล่าสุดที่ทำก็คือ web application ก็คือไม่ต้องมี web server ก็รัน CoLab ได้เลย อีกหน่อยจะทำ UI ให้สวย ๆ ก็กะว่าอีกหน่อยทุกคนไม่ต้องมีคอมก็รัน CoLab ได้หมด ที่ภูมิใจว่าทำยากแต่สำเร็จก็คือทำ ElasticSearch สำเร็จบน CoLab คิดว่าอีกหน่อยทุกคนก็ไม่ต้อง install อะไรก็สามารถทำผ่าน CoLab ได้หมดเลย

#อ่านNLProc: คือใช้ชีวิตบน CoLab กันเลยทีเดียว

พี่ป๋อง: trend ระยะยาวจะไปสู่สิ่งที่เค้าเรียกว่า citizen data science คือประชาชนทั่วไปก็เข้าถึง data science ได้ ไม่ต้องเขียนโปรแกรมเป็นแต่คลิ๊กเป็น CoLab ก็เป็นจิ๊กซอว์ตัวนึงที่จะทำให้ไปถึงจุดนั้น

บทความนี้สนับสนุนโดย:

--

--