WangchanBERTa โมเดลประมวลผลภาษาไทยที่ใหญ่และก้าวหน้าที่สุดในขณะนี้

เปิดให้ทุกคนใช้ฟรีโดย AIResearch.in.th และ VISTEC ภายใต้สัญญาอนุญาต CC-BY-SA 4.0

Image by Phannisa Nirattiwongsakorn

Language model ที่ถูกเทรนด้วยข้อมูลขนาดใหญ่โดยเฉพาะสถาปัตยกรรม BERT ได้แสดงศักยภาพทางภาษาระดับสูงในการใช้งานหลากหลายรูปแบบ (GLUE, SuperGLUE) เช่น จำแนกชนิดข้อความ (sentiment analysis และ text classification แบบอื่น), จำแนกชนิดคำในข้อความ (part-of-speech tagging และ named entity recognition), ตอบคำถาม (question answering), และการอนุมานทางภาษา (natural language inference) คงไม่เกินไปนักหากจะกล่าวว่า BERT คือโมเดลสามัญประจำบ้านสำหรับ NLP ยุคใหม่

แต่นั่นคือเรื่องของภาษายอดนิยมอย่างภาษาอังกฤษ ฝรั่งเศส หรือเยอรมัน แต่กับภาษาที่มีทรัพยากรน้อย (กว่าภาษาหลัก) อย่างภาษาไทยนั้น เรามีเพียง 2 ทางเลือกคือ

  1. ใช้โมเดลที่ถูกเทรนด้วยข้อมูลหลากหลายภาษา (multi-lingual language model) ข้อดีของทางเลือกนี้คือเราสามารถใช้โมเดลที่ถูกเทรนโดยบริษัทชั้นนำ เช่น mBERT (104 ภาษา; Google) หรือ XLMR (100 ภาษา; Facebook) มาปรับใช้กับงานของเราได้เลย ข้อเสียคือโมเดลเหล่านี้ไม่ได้ถูกเทรนขึ้นมาสำหรับภาษาใดภาษาหนึ่งโดยเฉพาะจึงอาจส่งผลให้ประสิทธิภาพด้อยกว่าโมเดลที่ถูกเทรนด้วยข้อมูลภาษาเดียว (mono-lingual language model) เราคาดว่าปัญหานี้จะยิ่งหนักขึ้นกับภาษาไทยที่มีปัญหาเฉพาะตัวอย่างการตัดคำ-ตัดประโยค
  2. เทรนสถาปัตยกรรม BERT ขึ้นมาเองด้วยข้อมูลและทรัพยากรการคำนวณที่จำกัด เช่น BERT-th โดย thaikeras ปัญหาหลักของทางเลือกนี้คือโมเดลถูกเทรนด้วยข้อมูลขนาดค่อนข้างเล็กอย่าง Wikipedia ภาษาไทย (ขนาด 515MB) เทียบกับ RoBERTa ของ Facebook ที่ถูกเทรนด้วยข้อมูลขนาด 160GB (ใหญ่กว่าราว 300 เท่า) อีกทั้งด้วยข้อจำกัดทางทรัพยากรการคำนวณ (ใช้ GPU รุ่น Nvidia Tesla K80 4 หน่วย) ทำให้โมเดลรับข้อความได้ยาวที่สุดเพียง 128 คำย่อยส่งผลให้โมเดลไม่สามารถแสดงศักยภาพได้อย่างเต็มที่ เห็นได้จากการที่ BERT-th มีผลการทดสอบกับชุดข้อมูล Wongnai Corpus (wongnai-reviews บน huggingface/datasets) ด้อยกว่าโมเดลที่ซับซ้อนน้อยกว่าอย่าง ULMFit
ผลการทดลองบน test set ของการแข่งขัน Wongnai Challenge: Review Rating Prediction บน Kaggle

ด้วยเหตุนี้ เป้าหมายของการสร้าง WangchanBERTa คือการเทรน language model สถาปัตยกรรม BERT ด้วยข้อมูลภาษาไทยขนาดใหญ่-หลากหลาย-และสะอาดที่สุดเท่าที่จะทำได้ โดยใช้กฎการจัดการข้อมูลที่สร้างขึ้นเพื่อภาษาไทยโดยเฉพาะ

ชุดข้อมูลภาษาไทยที่ใหญ่-หลากหลาย-สะอาดที่สุด

ไม่ว่าสถาปัตยกรรมโมเดลของคุณจะทรงพลังขนาดไหน หากคุณเทรน BERT (transformer ขนาด 110M ตัวแปร) ด้วยข้อมูลที่น้อยกว่าที่ควรจะเป็น 300 เท่า มันย่อมไม่น่าแปลกใจที่โมเดลจะทำได้ไม่ดีเท่าโมเดลเล็กกว่าอย่าง ULMFit (AWD-LSTM ขนาด 92M ตัวแปร) เราตามล่าหาข้อมูลภาษาไทยขนาดใหญ่จากชุดข้อมูลเปิดทุกชุดที่เรารู้จักได้ขนาดทั้งสิ้น 4.69 GB แบ่งเป็นประเภทข้อความดังต่อไปนี้

ขนาดชุดข้อมูลเปิดแบ่งตามประเภทข้อความ

จะเห็นได้ว่า นอกจากขนาดข้อมูลที่ยังห่างไกลจากภาษาอังกฤษแล้ว ปัญหาร้ายแรงอีกอย่างของเราคือข้อความในชุดข้อมูลเปิดส่วนใหญ่เป็นภาษาทางการ เช่น ข่าว หนังสือ และบทความในสารานุกรม หากเราเทรนโมเดลด้วยข้อมูลภาษาทางการแทบทั้งหมด โมเดลของเราย่อมมีปัญหาเมื่อเจอข้อความที่ถูกใช้จริงในบทสนทนาหรือโซเชียลมีเดีย เช่น

> บ้านเน้มีแต่คลิปตัลลักๆ ของน้อนเต็มไปหมดเลยอะอะอะอะ
> คลิปนี้แสนน่ารักเรย มือเล็กกว่าหน้าอีก
> อั้ยน้อนนนนนนนนนนนนนนนนน 😍🍱🍛
> อู้วววววววว ดีกบัใจอะไรเบอร์นี้ ขอบคุณมัก ๆ เลยนะคะ เยิฟอ้ะ ^^

ด้วยเหตุนี้ เราจึงขอความร่วมมือไปยัง Wisesight และ Chaos Theory สองบริษัทผู้ให้บริการวิเคราะห์ข้อมูลโซเชียลมีเดียไทย Wisesight ได้บริจาคข้อมูลโซเชียลมีเดียที่เก็บจากข้อความสาธารณะในปี 2019 ส่วนหนึ่งจากแพลตฟอร์มต่างๆ เช่น Twitter, Facebok, Pantip, Instagram, YouTube และอื่นๆ รวม 51.44GB (wisesight-large) ส่วน Chaos Theory ได้บริจาคข้อมูลที่เป็นสาธารณะจาก Pantip ปี 2015–2019 ขนาด 22.35GB (pantip-large) นั่นทำให้โดยรวมแล้วเรามีข้อมูลถึง 78GB สำหรับเทรน language model ของเราขึ้นมา

ขนาดชุดข้อมูลทั้งหมดจากชุดข้อมูลเปิด, Wisesight และ Pantip (ได้รับจาก Chaos Theory)

แต่สำหรับการเทรน language model จากข้อมูลสาธารณะนั้น ขนาดไม่ใช่ทุกสิ่ง Raffel และคณะ ค้นพบขณะเทรนโมเดล T5 ว่าโมเดลที่ถูกเทรนจากข้อมูลที่ทำความสะอาดแล้ว เช่น กำจัดประโยคที่ไม่สมบูรณ์-ข้อความซ้ำ-เครื่องหมายวรรคตอนที่ไม่จำเป็นออก อย่าง C4 (ขนาด 745GB) สามารถทำได้ดีกว่า Unfiltered C4 (ขนาด 6.1TB) ที่ไม่ได้ทำความสะอาดเลย แม้จะมีขนาดเล็กกว่าถึง 8 เท่า เราจึงทำการทำความสะอาดข้อมูลด้วยกฎต่อไปนี้

  1. แปลง HTML tag และตัวอักษรพิเศษ เช่น \n, nbsp;เป็นช่องว่าง
  2. ลบวงเล็บเปล่า เช่น (), {}, [] ที่มักพบได้บ่อยในข้อมูล Wikipedia และเว็บอื่นๆ
  3. ลบตัวอักษรที่ซ้ำกันเกิน 3 ตัว เช่น อั้ยน้อนนนนเป็น อั้ยน้อน
  4. ลบคำที่ซ้ำ เช่น เต็มไปหมดเลยอะอะอะอะอะเป็น เต็มไปหมดเลยอะ (คำตัดโดย newmm ของ PyThaiNLP)
  5. ตัดและแยกประโยคที่ยาวเกิน 300 คำ (คำตัดโดย newmm ของ PyThaiNLP) เพื่อไม่ให้ใหญ่เกินไปสำหรับ language model
  6. ลบข้อความที่ซ้ำออกทั้งหมด (deduplication)

ทั้งหมดนี้ทำให้เราได้ชุดข้อมูล Assorted Thai Texts (ขนาด 78GB) สำหรับการเทรน WangchanBERTa ด้วยข้อมูลภาษาไทยที่ใหญ่-หลากหลาย-และสะอาดที่สุดเท่าที่เราหาได้ในปัจจุบัน (หมายเหตุ 1.)

ตัดคำ-ตัดพยางค์-และ SentencePiece ที่สนใจ “ช่องว่าง”

เมื่อมีชุดข้อมูลสำหรับเทรนโมเดลแล้ว คำถามที่สำคัญต่อไปของเราคือ tokenizer สำหรับตัดข้อความเป็นคำศัพท์ของโมเดลของเรา หน่วยการตัดมีตั้งแต่คำ, พยางค์, หรือคำย่อย (subword) แบบต่างๆ แต่ละหน่วยการตัดมีข้อดีข้อเสียต่างกัน เช่น หน่วยคำมีข้อดีตรงที่แต่ละหน่วยมีความหมายในตัวเอง แต่ข้อเสียคือโมเดลจำเป็นต้องจำชุดคำศัพท์ที่ค่อนข้างใหญ่ (ภาษาไทยมี 44 พยัญชนะ 21 สระ 4 วรรณยุกต์ แต่มี ประมาณ 39,000 คำในพจนานุกรมฉบับราชบัณฑิตยสถาน) ในทางกลับกันหน่วยตัวอักษรมีข้อดีคือจำนวนคำศัพท์ที่น้อยมาก แต่ข้อเสียคือตัวอักษรแต่ละตัวไม่ได้มีความหมายในตัวของมันเอง (ยกเว้นบางภาษา เช่น จีน ญี่ปุ่น) อีกทั้งยังทำให้ขนาดของ sequence แต่ละอันที่ส่งให้โมเดลยาวขึ้น (sequence อย่าง วันนี้ผมกินโมจิ ประกอบด้วยคำ 4 คำ แต่มีถึง 17 ตัวอักษร)

ข้อดี-ข้อเสียของหน่วยการตัดข้อความ

เราจึงมองหาตัวเลือกที่อยู่ระหว่างกลางนั่นคือหน่วยคำย่อย (subword) โมเดลภาษาอังกฤษ เช่น RoBERTa ใช้ตัวตัดคำย่อย SentencePiece ซึ่งมีข้อดีตรงที่ไม่ต้องการการตัดคำล่วงหน้า (pretokenization) เหมือนตัวตัดคำย่อยอื่น เช่น BPE หรือ WordPiece จึงเหมาะกับภาษาที่กฎการตัดคำไม่ตายตัวอย่างภาษาไทย

แต่การนำ SentencePiece มาใช้ตรงๆก็มีปัญหาตรงที่ตัวตัดคำย่อยนี้มอง “ช่องว่าง” เป็นหนึ่งในตัวอักษรที่ถูกรวบเป็นคำย่อย ทำให้บางครั้ง “ช่องว่าง” ถูกทำให้หายไป นี่เป็นข่าวร้ายสำหรับภาษาไทยที่ใช้ “ช่องว่าง” เป็นเส้นแบ่งคำ-วลี-และประโยค หาก “ช่องว่าง” เหล่านี้หายไปแน่นอนว่าโมเดลของเราย่อมทำได้ไม่ดีในงานประเภทจำแนกชนิดคำ (part-of-speech tagging และ named entity recognition), ตัดวลี-ประโยค (clause และ sentence segmentation) และงานอื่นๆที่ใช้ “ช่องว่าง” เป็นตัวแปรสำคัญ

เพื่อแก้ปัญหานี้ เมื่อเราเทรนตัวตัดคำย่อย SentencePiece ของเราเอง เราจึงเพิ่ม token พิเศษสำหรับช่องว่า <_> เพื่อให้ช่องว่างทุกช่องถูกรักษาไว้

พฤติกรรมการตัดคำโดยรักษา “ช่องว่าง” ของ SentencePiece (WangchanBERTa)

ตัวตัดคำย่อย SentencePiece ของเราถูกเทรนด้วยข้อมูล 15 ล้านข้อความ (สุ่มมาประมาณ 3.5 ล้านข้อความจาก wisesight-large, ประมาณ 2.5 ล้านข้อความจาก pantip-large, รวมกับข้อมูลที่เหลือทั้งหมด) มีขนาดคำศัพท์รวมทั้งสิ้น 25,000 คำย่อย (ไม่รวม token พิเศษ)

เทรนโมเดลที่ใหญ่ที่สุดในประวัติศาสตร์ NLP ไทย

เราเลือกใช้สถาปัตยกรรม RoBERTa ที่สามารถเทรนได้ด้วยงาน masked language model (MLM) เท่านั้น ไม่เหมือน BERT ที่ต้องทำการทายประโยคต่อท้าย (sentence entailment) ด้วย แต่การจะเทรนโมเดลที่ใหญ่ที่สุดเท่าที่เคยถูกเทรนบนภาษาไทยภาษาเดียวให้ดีนั้น มันไม่ได้ง่ายขนาดแค่กดรันสคริปท์ตาม tutorial ของ HuggingFace (แต่มันก็เป็น tutorial ที่ดีมาก เราแนะนำให้ไปลองอ่าน)

ปัญหาสำคัญคือ ความแตกต่างในเชิงทรัพยากรการคำนวณ ในขณะที่เราเทรนโมเดลด้วย Nvidia DGX-1 (ราคาตลาด 129,000 ดอลล่าร์สหรัฐฯหรือประมาณเครื่องละ 4 ล้านบาท) ซึ่งประกอบด้วย GPU รุ่น Nvidia Tesla V100 ขนาด 32GB จำนวน 8 หน่วย ใช้เวลาประมาณ 125 วัน 19 ชั่วโมงต่อหนึ่งรอบการเทรนให้ครบ 500,000 steps (เมื่อใช้ GPU ทั้ง 8 หน่วยพร้อมกัน) (หมายเหตุ 2.) ส่วน RoBERTa นั้นตามงานวิจัยถูกเทรนด้วย GPU รุ่นเดียวกันจำนวน 1,024 หน่วยเสร็จ 500,000 steps ภายใน 1 วัน ความจริงนี้หมายความว่าเราไม่มีโอกาสลองผิดลองถูกมากนัก เพราะความผิดพลาดครั้งหนึ่งอาจนำไปสู่การรอในระดับสัปดาห์หรือเดือนกว่าจะได้เริ่มต้นใหม่

นอกจากนั้นทรัพยากรการคำนวณยังมีผลต่อ hyperparameter อื่นๆอีกด้วย ข้อจำกัดอย่างหนึ่งของ BERT-th โดย thaikeras คือความยาวของ sequence ที่ยาวเพียง 128 คำย่อย (90 คำโดยประมาณ) ส่งผลให้โมเดลทำได้ไม่ดีนักกับ sequence ที่ยาวกว่านั้น เราจึงพยามเทรนด้วย sequence ที่ยาวที่สุดเท่าที่จะทำได้นั่นคือ 416 คำย่อย (ยังน้อยกว่า RoBERTa ดั้งเดิมที่เทรนด้วยความยาว 512 คำย่อย) เราปรับลดขนาด effective batch size เหลือ 4,092 ตัวอย่างจาก 8,000 ตัวอย่างและลด peak learning rate จาก 7e-4 เหลือ 3e-4 เพื่อป้องกัน gradient explosion (เราเรียนรู้ข้อนี้อย่างยากลำบากด้วยเวลา 2 สัปดาห์ที่เสียไปกับการวิเคราะห์ว่าทำไมอยู่ดีๆ loss ของเราจึงโดดไปไกล)

เราใช้เวลากว่า 3 เดือนในการเทรนโมเดลให้ loss ลดลงมาในระดับที่ 2.592 (perplexity = 13.356) ณ step ที่ 360,000 จากทั้งหมด 500,000 steps ณ วันนี้โมเดลก็ยังถูกเทรนอย่างต่อเนื่องในศูนย์วิจัยที่วังจันทร์ จึงเป็นไปได้ว่าเราจะได้โมเดลที่มีประสิทธิภาพดียิ่งกว่ามาใช้ในอนาคต

โมเดลประมวลผลภาษาไทยประสิทธิภาพสูงที่สุดในโลก

คำถามที่สำคัญที่สุดคือ

แล้วมันดีกว่าโมเดลที่เรามีอยู่ปัจจุบัน หรือแม้แต่ strong baseline หลายๆอันจริงไหม?

เพื่อตอบคำถามนี้ให้ได้โดยแท้จริง เราได้ลองเทียบผลการทดลองของ WangchanBERTa (wangchanberta-base-att-spm-uncased) กับโมเดลพื้นฐานที่ทำได้ดีในปัจจุบัน ได้แก่ Naive Bayes Support Vector Machine (NBSVM), ULMFit (thai2fit) และ Conditional Random Fields (CRF)

เรา finetune โมเดล WangchanBERTa อย่างเรียบง่ายด้วย learning rate ต่ำๆ และ linear schedule with warmups (เพิ่ม learning rate ไปจนสูงสุด แล้วค่อยๆลดลงจนเข้าใกล้ 0) เป็นจำนวนเพียง 3 epochs (3 รอบข้อมูล training set)

ในทางกลับ ในส่วนของโมเดลที่เป็น strong baseline นั้น เราทำ hyperparameter tuning บน validation set อย่างเต็มที่ เหตุผลคือ เราอยากทราบว่า ต่อให้เรา finetune โมเดล WangchanBERTa โดยไม่ต้องคิดอะไรมาก เราจะยังชนะโมเดลปัจจุบันที่ผ่านการปรับจูนมาอย่างดีหรือไม่

นอกจากนั้น เรายังเปรียบเทียบผลกับโมเดล transformer หลากหลายภาษาอย่าง mBERT และ XLMR เพื่อสังเกตความได้เปรียบเสียเปรียบในชุดข้อมูลภาษาเดียวและหลากหลายภาษาอีกด้วย

เราเลือกชุดข้อมูลทั้งงานจำแนกข้อความ (sequence classification) คือ

  • wisesight-sentiment — ชุดข้อมูลทำ sentiment analysis ทำนายข้อความในโซเชียลเน็ตเวิร์คว่าเป็นลบ, กลาง, บวก หรือคำถาม
  • wongnai-reviews — ชุดข้อมูลทำ review classification ทำนายว่ารีวิวร้านอาหารเป็น 1–5 ดาว
  • generated_reviews_enth — ชุดข้อมูล product review classification ทำนายรีวิวสินค้าที่ถูกสร้างขึ้นด้วยโมเดล CTRL เป็นภาษาอังกฤษแล้วแปลเป็นภาษาไทยด้วยคนและ Google Translate ทำนายคะแนน 1–5 ดาว
  • prachathai67k — ชุดข้อมูลรวมข่าวจาก Prachathai.com เป็นปัญหา multi-label classification เดียวในการทดลองของเรา ให้แยกว่าพาดหัวข่าวแต่ละอันมีแท้กอะไรใน 12 แท้ก เช่น การเมือง, เศรษฐกิจ, สิทธิมนุษยชน เป็นต้น หนึ่งพาดหัวข่าวอาจจะมีหลายแท้กได้
ผลการทดลองจำแนกข้อความ (micro-averaged F1)

และจำแนกชนิดคำในข้อความ (token classification) คือ

  • thainer — ชุดข้อมูลทำ named entity recognition จำนวน 6,456 ข้อความรวบรวมโดย wannaphong โดยพัฒนาต่อจากชุดข้อมูลของ Nutcha Tirasaroj จำนวน 2,258 ข้อความ มีแท้ก IOB ที่เราใช้ทดสอบ 13 อัน
  • lst20 — ชุดข้อมูล part-of-speech tagging (16 tags) และ named entity recognition (10 IOBE tags) จาก AI for Thai ขนาด78,931 ข้อความ
ผลการทดลองจำแนกชนิดคำในข้อความ (token classification)

จะเห็นได้ว่าโมเดลหลักของเรา wangchanberta-base-att-spm-uncased สามารถทำผลงานได้ดีที่สุด (micro-averaged F1 score) ในทุกงานยกเว้น generated_reviews_enth ที่แพ้ให้กับ XLMR เล็กน้อย สาเหตุน่าจะมาจากที่ข้อความเป็นคำแปลจากภาษาอังกฤษ ส่งผลให้โมเดลหลากหลายภาษา (multi-lingual language model) อย่าง XLMR ได้เปรียบ แต่ความแตกต่างของ F1 score นั้นไม่ได้สูงนัก นี่เป็นสิ่งที่พบเห็นได้จากงานวิจัยก่อนๆ กล่าวคืองานจำแนกข้อความและจำแนกชนิดคำนั้น “ง่ายเกินไป” ที่จะทำให้เห็นความแตกต่างของโมเดลพื้นฐานและโมเดลที่ซับซ้อนอย่าง WangchanBERTa ได้อย่างชัดเจน

ผลการทดลองนี้ยืนยันสมมุติฐานที่ว่าโมเดลภาษาเดียว (mono-lingual language model) สามารถทำงานได้ดีกว่าโมเดลหลากหลายภาษาเมื่อใช้กับข้อความที่มาจากภาษานั้นล้วนๆ

ใช้งานได้ฟรีทันทีผ่าน HuggingFace

ทุกคนสามารถเข้าถึงและใช้ประโยชน์โมเดล WangchanBERTa ได้ผ่าน HuggingFace ทั้งในงานวิจัยและทางการค้าภายใต้สัญญาอนุญาต CC-BY-SA 4.0

คุณสามารถทำเรื่องง่ายๆที่สุดอย่างการจำแนกว่าข้อความนี้มีความรู้สึกเป็นบวกหรือลบ (sentiment analysis), จัดกลุ่มข้อความ (topic modeling), จำแนกชนิดคำ (named entity recognition) ไปจนถึงเรื่องที่น่าสนใจมากขึ้นอย่างระบบค้นหาที่เข้าใจความหมายของภาษา (semantic search), ระบบถาม-ตอบคำถามอัตโนมัติ (question answering), สร้างชุดข้อมูลเพิ่มสำหรับเทรนโมเดล (data augmentation) หรือแค่เปลี่ยนข้อความเป็นตัวเลขสำหรับโมเดลชิ้นต่อไปของคุณ (document2vec)

ทั้งหมดนี้ คุณสามารถสร้างโมเดลประสิทธิภาพสูงที่สุดเท่าที่จะทำได้ปัจจุบัน ในเวลาไม่เกิน 30 นาทีบน GPU ระดับเดียวกับที่ให้บริการฟรีบน Google Colaboratory หรือ Kaggle มาเริ่มกันเลย WangchanBERTa: Getting Started Notebook

บทความนี้จัดทำโดยสถาบันวิจัยปัญญาประดิษฐ์ประเทศไทย (AIResearch) จากเนื้อหาส่วนหนึ่งของ technical report “WangchanBERTa: Pretraining transformer-based Thai Language Models

หมายเหตุ

  1. มีชุดข้อมูลขนาดใหญ่พอสมควรอีกชุดคือ OSCAR ที่เป็นแหล่งรวม Common Crawl (ภาษาไทยมีขนาด 16GB) แต่เราเห็นว่าข้อมูลที่เกิดจากการ scrape เว็บไซต์ทั้งหมดต้องอาศัยการทำความสะอาดอีกพอสมควรกว่าจะอยู่ในระดับที่ใช้จริงได้จึงยังไม่ได้รวมเข้าไปในชุดข้อมูลที่เราใช้เทรน WangchanBERTa
  2. หากคิดเป็นเงินค่าเช่า Nvidia DGX-1 ชั่วโมงละ 8.928–19.84 ดอลล่าร์สหรัฐฯ หรือประมาณ 238.25–643.63 บาท จะรวมเป็นเงินทั้งสิ้นประมาณ 719,276.75–1,943,118.97 บาท ใช้พลังงานไฟฟ้าทั้งหมด 10,566.5 kWh (Nvidia DGX-1 ใช้ไฟ 3.5 kW เป็นเวลา 3,019 ชั่วโมง) คิดเป็นรอยเท้าคาร์บอน 7.5 ตัน หรือเท่ากับการใช้งานรถ 1.6 คันในหนึ่งปี
  3. ขอขอบคุณ HPC and AI Center of Excellence ที่เอื้อเฟื้อทรัพยากรการคำนวณสำหรับเทรนโมเดล WangchanBERTa ขนาดเล็กบน Thai Wikipedia Dump
  4. Technical report: https://arxiv.org/abs/2101.09635
  5. Huggingโace Model Hub สำหรับโมเดล WangchanBERTa: https://huggingface.co/airesearch
  6. Github repository สำหรับ script เทรน language models และการทดลอง: https://github.com/vistec-AI/thai2transformers

--

--