BERT (language model) (TH)
BERT (Bidirectional Encoder Representations from Transformers, การแทนค่าจาก encoder แบบสองทิศทางด้วย Transformers) — คือโมเดลภาษาขนาดใหญ่ (LLM) สำหรับการทำความเข้าใจภาษาธรรมชาติ พัฒนาโดยนักวิจัยของ Google และเปิดตัวในปี 2018 BERT ได้ประกาศยุคใหม่ในการประมวลผลภาษาธรรมชาติ (NLP) โดยแสดงให้เห็นประสิทธิภาพที่ไม่เคยมีมาก่อนในงานที่หลากหลาย และสถาปนาแนวทาง "pre-train & fine-tune" ให้กลายเป็นมาตรฐานในอุตสาหกรรม
นวัตกรรมหลักของ BERT คือสถาปัตยกรรมแบบสองทิศทางเชิงลึก ซึ่งช่วยให้โมเดลพิจารณาบริบทของคำทั้งทางซ้ายและทางขวาพร้อมกันในทุกชั้นของเครือข่าย สิ่งนี้ทำได้โดยใช้งาน pre-training แบบใหม่ที่เรียกว่า Masked Language Modeling (MLM)
ชื่อและหลักการทำงาน
ตัวย่อ BERT ย่อมาจาก Bidirectional Encoder Representations from Transformers
- Bidirectional (สองทิศทาง): ระบุถึงคุณลักษณะหลักของโมเดล ได้แก่ ความสามารถในการประมวลผลบริบทของคำในทั้งสองทิศทาง (ซ้ายไปขวาและขวาไปซ้าย) พร้อมกัน ต่างจากโมเดลแบบทิศทางเดียว (เช่น GPT) ที่เมื่อประมวลผลคำหนึ่งจะมองเห็นเฉพาะบริบทที่อยู่ก่อนหน้า แต่ BERT มองเห็นลำดับทั้งหมด ทำให้เข้าใจความหมายของคำได้ลึกซึ้งและแม่นยำยิ่งขึ้น
- Encoder (ตัวเข้ารหัส): หมายความว่า BERT ใช้เฉพาะส่วน encoder ของสถาปัตยกรรม Transformer เท่านั้น หน้าที่ของ encoder คืออ่านลำดับข้อความที่ป้อนเข้าและสร้างการแทนค่าเชิงบริบทที่สมบูรณ์ (เวกเตอร์) สำหรับแต่ละ token BERT ไม่ได้ออกแบบมาเพื่อสร้างข้อความในรูปแบบอิสระเหมือนโมเดล decoder
- Representations (การแทนค่า): โมเดลได้รับการฝึกให้สร้างการแทนค่าเชิงตัวเลขคุณภาพสูง (เวกเตอร์หรือ embedding) สำหรับคำและประโยค ซึ่งสามารถนำไปใช้แก้ปัญหางาน NLP ต่าง ๆ ได้
- from Transformers: ระบุว่าสถาปัตยกรรมของโมเดลอิงอยู่บน Transformer ทั้งหมด
ประวัติการพัฒนา
การพัฒนา BERT เป็นผลจากความก้าวหน้าสำคัญหลายประการใน NLP:
- Contextual embedding: โมเดลอย่าง Word2vec และ GloVe สร้างเวกเตอร์คงที่สำหรับคำโดยไม่คำนึงถึงบริบท โมเดล ELMo (2018) เป็นก้าวสำคัญโดยสร้างการแทนค่าที่พึ่งพาบริบทด้วยเครือข่าย LSTM แบบสองทิศทาง อย่างไรก็ตาม ความเป็นสองทิศทางนี้ยังเป็นเพียง "ผิวเผิน" (การเชื่อมต่อของสองโมเดลทิศทางเดียวเข้าด้วยกัน)
- การเรียนรู้แบบถ่ายโอนและ GPT: ในช่วงกลางปี 2018 OpenAI ได้นำเสนอโมเดล GPT ซึ่งแสดงให้เห็นถึงประสิทธิภาพของการ pre-train โมเดล transformer ขนาดใหญ่บนข้อมูลที่ไม่มีป้ายกำกับ แล้วทำการ fine-tuning สำหรับงานเฉพาะ อย่างไรก็ตาม GPT เป็นแบบทิศทางเดียวอย่างเคร่งครัด (ซ้ายไปขวา) ซึ่งจำกัดความสามารถในงานที่ต้องการความเข้าใจบริบทแบบสมบูรณ์
ด้วยการตระหนักถึงข้อจำกัดเหล่านี้ นักวิจัยของ Google นำโดย Jacob Devlin จึงพัฒนา BERT เพื่อสร้างโมเดลที่มีความเป็นสองทิศทางเชิงลึกอย่างแท้จริง บทความเกี่ยวกับ BERT ได้รับการเผยแพร่บน arXiv ในเดือนตุลาคม 2018 และโค้ดพร้อมโมเดลที่ผ่านการ pre-train ได้รับการเปิดให้สาธารณชนเข้าถึงได้ ซึ่งก่อให้เกิดความสนใจอย่างล้นหลามในชุมชนวิชาการ BERT ทำลายสถิติใน 11 benchmark หลักของ NLP รวมถึง GLUE และ SQuAD และได้รับการขนานนามว่าเป็น "ช่วงเวลา ImageNet" ของ NLP เนื่องจากโมเดลสากลเดียวสามารถปรับให้เข้ากับงานต่าง ๆ ได้อย่างง่ายดาย
สถาปัตยกรรม
BERT อิงอยู่บนส่วน encoder ของสถาปัตยกรรม Transformer ทั้งหมด ประกอบด้วยชั้นที่เหมือนกันหลายชั้นซ้อนกัน มีสองเวอร์ชันหลัก:
- BERT-Base: 12 ชั้น, 12 attention head, ขนาด hidden state 768, จำนวนพารามิเตอร์รวมประมาณ 110 ล้าน
- BERT-Large: 24 ชั้น, 16 attention head, ขนาด hidden state 1024, จำนวนพารามิเตอร์รวมประมาณ 340 ล้าน
แต่ละชั้นประกอบด้วย sub-layer หลักสองส่วน:
- กลไก Multi-Head Self-Attention: ช่วยให้แต่ละ token ในลำดับอินพุต "ให้ความสนใจ" กับ token อื่น ๆ ทั้งหมด โดยถ่วงน้ำหนักความสำคัญของ token เหล่านั้นเพื่อกำหนดความหมายเชิงบริบทของตัวเอง
- เครือข่ายประสาทเชื่อมต่อเต็มรูปแบบ (Feed-Forward Network): ใช้กับแต่ละ token แยกกัน
ข้อมูลอินพุต
เพื่อให้ทำงานได้อย่างถูกต้อง BERT ต้องการการจัดรูปแบบอินพุตเป็นพิเศษ ลำดับของ token ที่ป้อนเข้าจะเริ่มต้นด้วย token พิเศษ `[CLS]` (classification) เสมอ ซึ่งใช้สำหรับงานจำแนกประเภทข้อความทั้งหมด หากมีการป้อนคู่ประโยค (เช่น ในงานระบบถามตอบ) จะคั่นด้วย token `[SEP]` (separator)
การแทนค่าสุดท้ายของแต่ละ token ที่อินพุตคือผลรวมของ embedding สามประเภท:
- Token embedding: เวกเตอร์ที่สอดคล้องกับ token เฉพาะในพจนานุกรม (BERT ใช้ WordPiece tokenization)
- Segment embedding: ระบุว่า token นั้นเป็นของประโยคใด (ประโยคแรกหรือประโยคที่สอง)
- Positional embedding: ระบุตำแหน่งของ token ในลำดับ เนื่องจากสถาปัตยกรรม Transformer ไม่ได้คำนึงถึงลำดับคำด้วยตัวเอง
งาน Pre-training
เพื่อให้มีความเป็นสองทิศทางเชิงลึก BERT ได้รับการฝึกบนสองงานที่เป็นเอกลักษณ์พร้อมกัน
Masked Language Modeling (MLM)
นี่คือนวัตกรรมหลักของ BERT แทนที่จะพยากรณ์คำถัดไปเหมือนโมเดลภาษามาตรฐาน BERT พยากรณ์คำที่ถูก "มาสก์" แบบสุ่มในประโยค กระบวนการมีดังนี้:
- เลือก 15% ของ token จากลำดับอินพุตแบบสุ่ม
- จาก 15% นั้น:
- 80% จะถูกแทนที่ด้วย token พิเศษ `[MASK]`
- 10% จะถูกแทนที่ด้วย token สุ่มจากพจนานุกรม
- 10% ยังคงไม่เปลี่ยนแปลง
- หน้าที่ของโมเดลคือพยากรณ์ค่าเดิมของ token 15% นั้น โดยอิงจากบริบทโดยรอบ (ทั้งซ้ายและขวา)
รูปแบบดังกล่าวบังคับให้โมเดลเรียนรู้ความสัมพันธ์เชิงความหมายและไวยากรณ์เชิงลึกระหว่างคำ และทำให้โมเดลเป็นสองทิศทางอย่างแท้จริง
Next Sentence Prediction (NSP)
งานนี้ได้รับการออกแบบเพื่อสอน BERT ให้เข้าใจความสัมพันธ์ระหว่างประโยค ซึ่งมีความสำคัญอย่างยิ่งสำหรับงานอย่างระบบถามตอบหรือการวิเคราะห์นัยข้อความ (NLI) โมเดลรับคู่ประโยค (A และ B) เป็นอินพุต และต้องพยากรณ์ว่าประโยค B เป็นประโยคถัดไปที่สมเหตุสมผลของประโยค A หรือไม่
- ใน 50% ของกรณี B คือประโยคถัดไปจริง ๆ จากข้อความต้นฉบับ
- ใน 50% ของกรณี B คือประโยคสุ่มที่นำมาจากที่อื่นในคอร์ปัส
การวิจัยในภายหลัง (เช่น ในโมเดล RoBERTa) แสดงให้เห็นว่างาน NSP มีความสำคัญน้อยกว่า MLM และสามารถละทิ้งเพื่อเลือกใช้รูปแบบการฝึกที่มีประสิทธิภาพมากกว่าได้ แต่ใน BERT ดั้งเดิมนั้นมีบทบาทสำคัญ
การนำไปใช้งานและ Fine-Tuning
พลังของ BERT อยู่ที่แนวทางการเรียนรู้แบบถ่ายโอน หลังจาก pre-training ขนาดใหญ่และใช้ทรัพยากรมากบนคอร์ปัสขนาดใหญ่ (Wikipedia + BooksCorpus) โมเดลที่ผ่านการ pre-train แล้วสามารถ fine-tune สำหรับงานประยุกต์เฉพาะทางได้อย่างง่ายดายและรวดเร็ว
กระบวนการ fine-tuning โดยทั่วไปมีดังนี้: 1. เพิ่มชั้นขนาดเล็กที่ยังไม่ผ่านการฝึกซึ่งเฉพาะเจาะจงกับงานนั้น ๆ (เช่น classifier สำหรับการวิเคราะห์อารมณ์) เข้ากับสถาปัตยกรรม BERT ที่ผ่านการ pre-train แล้ว 2. ฝึกโมเดลทั้งหมด (รวมถึงน้ำหนักของ BERT และชั้นใหม่) บนชุดข้อมูลที่มีป้ายกำกับขนาดเล็กสำหรับงานเฉพาะนั้น
ตัวอย่างงานที่ BERT ถูกปรับใช้:
- การจำแนกประเภทข้อความ (การวิเคราะห์อารมณ์, ฟิลเตอร์สแปม): เพิ่ม classifier เข้ากับเอาต์พุตของ token `[CLS]`
- ระบบถามตอบ (เช่น SQuAD): โมเดลได้รับการฝึกให้พยากรณ์ token เริ่มต้นและสิ้นสุดของคำตอบในข้อความที่กำหนด
- การรู้จำ named entity (NER): เพิ่ม classifier เข้ากับเอาต์พุตของแต่ละ token เพื่อกำหนดว่า token นั้นเป็นส่วนหนึ่งของชื่อบุคคล องค์กร วันที่ เป็นต้น
รูปแบบต่าง ๆ และโมเดลที่สืบทอดมา
ความสำเร็จของ BERT นำไปสู่การเกิดขึ้นของตระกูลโมเดลทั้งหมดที่อิงจากแนวคิดของมัน:
- RoBERTa (จาก Facebook AI): "BERT ที่ได้รับการปรับแต่งอย่างแข็งแกร่ง" ไม่ได้เป็นสถาปัตยกรรมใหม่ แต่เป็นผลลัพธ์ของการฝึก BERT ที่ละเอียดและใช้เวลานานขึ้น ด้วยข้อมูลมากขึ้น ไม่มีงาน NSP และใช้การมาสก์แบบ dynamic RoBERTa แสดงให้เห็นว่า BERT ดั้งเดิม "ถูกฝึกน้อยเกินไป" และมีประสิทธิภาพเหนือกว่าใน benchmark หลักทั้งหมด
- DistilBERT (จาก Hugging Face): เวอร์ชันที่เล็กลงของ BERT สร้างขึ้นโดยใช้เทคนิคการกลั่นความรู้ (knowledge distillation) DistilBERT เล็กกว่า 40%, เร็วกว่า 60% และยังคงรักษาประสิทธิภาพ 97% ของ BERT ทำให้เหมาะสำหรับการใช้งานในสภาพแวดล้อม production และบนอุปกรณ์ที่มีทรัพยากรจำกัด
- ALBERT (A Lite BERT, จาก Google): เวอร์ชันที่ได้รับการปรับแต่งเพื่อลดจำนวนพารามิเตอร์ ใช้สองเทคนิคหลัก: การ factorize embedding และ การแชร์พารามิเตอร์ข้ามชั้น (cross-layer parameter sharing) ซึ่งช่วยให้สร้างโมเดลขนาดใหญ่กว่ามากด้วยพารามิเตอร์น้อยลง
- mBERT (Multilingual BERT): เวอร์ชัน BERT ที่ผ่านการ pre-train บน 104 ภาษาพร้อมกัน แสดงให้เห็นความสามารถที่น่าทึ่งในการถ่ายโอนความรู้ข้ามภาษา
- โมเดลเฉพาะโดเมน: โมเดลจำนวนมากที่ผ่านการ fine-tune บนข้อมูลจากสาขาเฉพาะ เช่น BioBERT (ชีวการแพทย์), SciBERT (ข้อความทางวิทยาศาสตร์) และ FinBERT (การเงิน)
- ModernBERT (2024-2025): โมเดลรุ่นใหม่ที่คล้าย BERT จากบริษัท Answer.AI และ LightOn ซึ่งรวมการปรับปรุงสถาปัตยกรรมสมัยใหม่ เช่น RoPE (Rotary Position Embeddings) และรองรับบริบทที่ยาวขึ้น (ถึง 8192 token) ในขณะที่ยังคงหลักการพื้นฐานของ BERT
การเปรียบเทียบกับโมเดลอื่น ๆ
| โมเดล | ผู้พัฒนา | สถาปัตยกรรม | ทิศทางบริบท | งานหลัก |
|---|---|---|---|---|
| BERT | Encoder | สองทิศทาง | การทำความเข้าใจข้อความ, การจำแนกประเภท, การสกัดข้อมูล | |
| GPT | OpenAI | Decoder | ทิศทางเดียว (ซ้ายไปขวา) | การสร้างข้อความ, การต่อลำดับ |
| XLNet | Google / CMU | Autoregressive (permutation) | สองทิศทาง (ในทางทฤษฎี) | การทำความเข้าใจข้อความ (ทางเลือกแทน MLM) |
| T5 | Encoder-Decoder | สองทิศทาง (encoder) + ทิศทางเดียว (decoder) | การแปลง "ข้อความเป็นข้อความ" แบบสากล |
ผลกระทบ
BERT ได้สร้างการปฏิวัติอย่างแท้จริงใน NLP และวางรากฐานสำหรับการพัฒนาในภายหลังอีกมากมาย:
- ยืนยันแนวทาง "pre-train + fine-tune" ให้เป็นแนวทางที่โดดเด่นใน NLP
- พิสูจน์ความสำคัญของบริบทสองทิศทางเชิงลึก สำหรับการทำความเข้าใจภาษา
- ลดอุปสรรคในการเข้าถึง ในการสร้างระบบ NLP ที่มีประสิทธิภาพสูง เนื่องจากนักวิจัยและนักพัฒนาไม่จำเป็นต้องสร้างสถาปัตยกรรมที่ซับซ้อนตั้งแต่ต้นสำหรับแต่ละงานอีกต่อไป
- ถูกผสานรวมเข้าสู่ Google Search ซึ่งกลายเป็นการอัปเดตเครื่องมือค้นหาที่ใหญ่ที่สุดครั้งหนึ่งในประวัติศาสตร์ของมัน และแสดงให้เห็นถึงประโยชน์เชิงปฏิบัติของโมเดลอย่างชัดเจน
- ก่อให้เกิดระบบนิเวศทั้งหมด ของโมเดลที่สืบทอด เครื่องมือ และงานวิจัย ("BERTology") และกลายเป็นหนึ่งในงานที่ถูกอ้างอิงมากที่สุดในสาขา AI
แม้ว่าโมเดลที่ใหม่กว่าและใหญ่กว่า เช่น GPT-3 และ GPT-4 จะมีประสิทธิภาพเหนือกว่า BERT ใน benchmark หลายรายการ (โดยเฉพาะงานสร้างข้อความ) แต่ BERT และรูปแบบต่าง ๆ ของมันยังคงเป็นเครื่องมือที่ทรงพลังและถูกใช้งานอย่างแพร่หลายสำหรับงานที่ต้องการความเข้าใจข้อความเชิงลึก
ลิงก์
- คลังข้อมูล BERT อย่างเป็นทางการบน GitHub
- ประกาศ BERT บนบล็อก Google AI
- The Illustrated BERT — คำอธิบายสถาปัตยกรรม BERT แบบภาพ
เอกสารอ้างอิง
- Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
- Vaswani, A. et al. (2017). Attention Is All You Need. arXiv:1706.03762.
- Peters, M. E. et al. (2018). Deep Contextualized Word Representations. arXiv:1802.05365.
- Liu, Y. et al. (2019). RoBERTa: A Robustly Optimized BERT Pretraining Approach. arXiv:1907.11692.
- Lan, Z. et al. (2020). ALBERT: A Lite BERT for Self-supervised Learning of Language Representations. arXiv:1909.11942.
- Sanh, V. et al. (2020). DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter. arXiv:1910.01108.
- Yang, Z. et al. (2019). XLNet: Generalized Autoregressive Pretraining for Language Understanding. arXiv:1906.08237.
- Raffel, C. et al. (2020). Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. arXiv:1910.10683.
- Lee, J. et al. (2020). BioBERT: a pre-trained biomedical language representation model for biomedical text mining. arXiv:1901.08746.
- Warner, B. et al. (2024). Smarter, Better, Faster, Longer: A Modern Bidirectional Encoder for Fast, Memory Efficient, and Long Context Finetuning and Inference. arXiv:2412.13663.