Decoder (Transformer) (TH)
Decoder (ตัวถอดรหัส) — ในสาขา Machine Learning และการเรียนรู้เชิงลึก คือส่วนประกอบของ Neural Network ที่มีหน้าที่หลักในการแปลงการแทนค่าที่เข้ารหัสแล้ว (เช่น เวกเตอร์บริบท หรือลำดับของสถานะแฝงที่ได้รับจาก encoder) ให้กลายเป็นลำดับข้อมูลเอาต์พุต (เช่น ข้อความหรือรูปภาพ) Decoder สร้างข้อมูลเอาต์พุตทีละขั้นตอน โดยทั่วไปจะทำงานในรูปแบบ autoregressive
ในความหมายที่กว้างขึ้น ในทฤษฎีสารสนเทศ decoder คืออุปกรณ์หรืออัลกอริทึมใด ๆ ที่แปลงข้อมูลที่เข้ารหัสกลับไปสู่รูปแบบเดิมหรือรูปแบบที่เข้าใจได้
แนวคิดและจุดประสงค์
หาก encoder ทำหน้าที่ ทำความเข้าใจ และบีบอัดข้อมูลอินพุต decoder ก็ทำหน้าที่ สร้าง และคลี่ขยายข้อมูลเอาต์พุต มันรับการแทนค่าที่กระชับและอุดมด้วยข้อมูล แล้วแปลงอย่างต่อเนื่องให้เป็นรูปแบบที่ต้องการ ไม่ว่าจะเป็นประโยคในภาษาอื่น คำอธิบายข้อความของรูปภาพ หรือลำดับโน้ตดนตรี
คุณลักษณะสำคัญของ decoder ส่วนใหญ่คือธรรมชาติที่เป็น autoregressive: ในการสร้างองค์ประกอบถัดไปของลำดับ (เช่น คำหรือพิกเซล) decoder จะใช้ทั้งการแทนค่าที่เข้ารหัสแล้วและองค์ประกอบทั้งหมดที่สร้างขึ้นก่อนหน้านี้
Decoder ในสถาปัตยกรรมต่าง ๆ
Decoder ใน Autoencoder
ในสถาปัตยกรรม autoencoder decoder ทำหน้าที่ตรงข้ามกับ encoder:
- Encoder บีบอัดข้อมูลอินพุตให้เป็นการแทนค่าแฝง
- Decoder รับการแทนค่าแฝงนั้นและพยายามกู้คืน (reconstruct) ข้อมูลเดิมจากมัน
การฝึกเครือข่ายดังกล่าวช่วยให้สามารถใช้ decoder แยกต่างหากสำหรับการสร้างข้อมูลใหม่ได้ โดยป้อนเวกเตอร์จาก latent space เข้าไปยังอินพุตของมัน
Decoder ใน Recurrent Neural Network (RNN/LSTM)
ในโมเดล sequence-to-sequence (seq2seq) แบบดั้งเดิมที่อิงบน RNN หรือ LSTM decoder คือเครือข่าย recurrent ที่สร้างลำดับเอาต์พุตทีละ token
- หลักการทำงาน: Decoder ถูกกำหนดค่าเริ่มต้นด้วยสถานะแฝงสุดท้าย (เวกเตอร์บริบท) ของ encoder ในแต่ละขั้นตอน มันรับ token ที่สร้างขึ้นก่อนหน้าและสถานะแฝงก่อนหน้าของตัวเองเป็นอินพุต จากนั้นสร้าง token ถัดไปและอัปเดตสถานะของตัวเอง กระบวนการนี้ดำเนินต่อไปจนกว่าจะสร้าง token พิเศษที่แสดงจุดสิ้นสุดของลำดับ (`<EOS>`)
Decoder ในสถาปัตยกรรม Transformer
Decoder ที่อิงบนสถาปัตยกรรม Transformer ก็ทำงานแบบ autoregressive เช่นกัน แต่โครงสร้างภายในแตกต่างออกไป ประกอบด้วยสแตก () ของเลเยอร์ที่เหมือนกัน โดยแต่ละเลเยอร์มีสามชั้นย่อยหลัก:
- Masked Multi-Head Self-Attention (การให้ความสนใจตัวเองแบบหลายหัวที่มีการปิดบัง): กลไกนี้ทำงานเหมือนกับใน encoder แต่มีความแตกต่างสำคัญหนึ่งประการ คือ การปิดบัง (masking) มาสก์จะป้องกันไม่ให้แต่ละตำแหน่ง "ให้ความสนใจ" กับตำแหน่งที่อยู่ถัดไปในลำดับ ซึ่งรับประกันว่าการทำนายสำหรับตำแหน่ง จะขึ้นอยู่กับเอาต์พุตที่ทราบแล้วที่ตำแหน่ง เท่านั้น โดยรักษาคุณสมบัติ autoregressive ไว้
- Multi-Head Cross-Attention (การให้ความสนใจข้ามแบบหลายหัว): นี่คือกลไกสำคัญที่เชื่อม decoder กับ encoder ในที่นี้ Query มาจากเลเยอร์ก่อนหน้าของ decoder ในขณะที่ Key และ Value มาจากการแทนค่าเอาต์พุตของ encoder ซึ่งช่วยให้ decoder สามารถโฟกัสไปที่ส่วนที่เกี่ยวข้องมากที่สุดของลำดับอินพุตในแต่ละขั้นตอนของการสร้าง
- Feed-Forward Network (เครือข่ายประสาทแบบเชื่อมต่อเต็มรูปแบบ): คล้ายคลึงกับที่ใช้ใน encoder
ประเภทของโมเดลที่อิงบน Decoder
โมเดล Encoder-Decoder
นี่คือสถาปัตยกรรมแบบดั้งเดิมที่ encoder และ decoder ทำงานร่วมกันเป็นคู่
- หลักการทำงาน: Encoder สร้างการแทนค่าของข้อมูลอินพุต และ decoder สร้างข้อมูลเอาต์พุตโดยใช้การแทนค่านั้น
- ตัวอย่าง: Transformer ต้นฉบับ, T5, BART
โมเดล Decoder-Only (เฉพาะ Decoder)
โมเดลเหล่านี้ซึ่งกลายเป็นโมเดลที่โดดเด่นใน Generative AI ใช้เฉพาะสแตก decoder ของ Transformer
- หลักการทำงาน: โมเดลเหล่านี้ไม่มี cross-attention ไปยัง encoder เนื่องจากไม่มี encoder โมเดลทำงานในรูปแบบ autoregressive อย่างแท้จริง โดยทำนาย token ถัดไปบนพื้นฐานของ token ก่อนหน้าทั้งหมดในลำดับเดียวกัน prompt อินพุตและข้อความที่สร้างขึ้นแล้วจะถูกประมวลผลร่วมกัน
- การประยุกต์ใช้: เหมาะอย่างยิ่งสำหรับงานที่ต้องการต่อเนื่องข้อความที่กำหนด (การสร้างข้อความ ระบบสนทนา แชทบอท)
- ตัวอย่าง: ซีรีส์ GPT, LLaMA, Claude
ความสัมพันธ์กับ Encoder
การโต้ตอบระหว่าง encoder และ decoder เป็นหลักการพื้นฐานสำหรับงานการแปลง
- Encoder บีบอัดข้อมูลเกี่ยวกับลำดับอินพุตให้เป็นชุดของเวกเตอร์
- Decoder ใช้ชุดเวกเตอร์นั้นเพื่อสร้างลำดับใหม่อย่างต่อเนื่อง
Cross-attention ช่วยให้ decoder สามารถ "ปรึกษา" encoder ได้ในแต่ละขั้นตอน เพื่อทำความเข้าใจว่าควรโฟกัสไปที่ส่วนใดของข้อความต้นฉบับในขณะนั้น ตัวอย่างเช่น ในการแปลประโยค decoder เมื่อสร้างคำภาษาเยอรมัน สามารถ "มองไปที่" คำภาษาอังกฤษที่สอดคล้องกันจากอินพุตได้
ดูเพิ่มเติม
- GPT
เอกสารอ้างอิง
- Vaswani, A. et al. (2017). Attention Is All You Need. NIPS.