GenerativeAI

GenerativeAI

ข่าวและบทความที่เกี่ยวข้อง

All GenerativeAI

PostType Filter En

บทความ

Transformer – โครงสร้างพื้นฐานของ Generative AI
ในปัจจุบันไม่สามารถปฏิเสธได้เลยว่ากระแสของ Generative AI กำลังมาแรงมาก ๆ ไม่ว่าจะเป็นโมเดลสำหรับสร้างรูปภาพเช่น Stable Diffusion หรือ Dall-E หรือว่าโมเดลทางภาษาที่สามารถรับคำสั่งหรือคำถามของผู้ใช้ (prompt) แล้วสามารถสร้างคำตอบขึ้นมาตอบโต้กับผู้ใช้ได้ราวกับเป็นคนจริง ๆ ตัวอย่างเช่น ChatGPT ของ OpenAI หรือว่า Gemini ของ Google โมเดลต่าง ๆ เหล่านี้มีโครงสร้างและหลักการที่ซับซ้อน แต่ส่วนใหญ่เป็นการพัฒนาต่อจากโมเดล Transformer ทั้งนั้น แม้แต่โมเดล ChatGPT ซึ่งย่อมาจาก Generative Pretrained Transformer ก็เป็นการพัฒนาต่อจากโมเดล Transformer ดังนั้นในบทความนี้เราจะมาดูกันว่า Transformer นั้นมีหลักการทำงานอย่างไร Transformer เป็นโมเดลที่พัฒนาโดยบริษัท Google ถูกนำเสนอครั้งแรกในปี 2017 ในบทความงานวิจัยชื่อ Attention is All You Need โมเดล Transformer ทำงานโดยการรับ input sequence ที่มีลักษณะเป็นลำดับที่มีความยาว เช่นข้อความต่าง ๆ จากนั้น โมเดลจะหาความสัมพันธ์ระหว่างตัวแปรต่าง ๆ ที่ได้รับเข้ามาและใช้ความสัมพันธ์นั้นในการสร้าง output sequence ออกมาเป็นคำตอบ โดยคำตอบจะมีลักษณะเป็นลำดับที่มีความยาวเช่นกัน ตัวอย่างเช่น input อาจเป็นคำถามว่าท้องฟ้ามีสีอะไร โมเดลที่ผ่านการฝึกมาแล้วจะสามารถหาความสัมพันธ์ระหว่างคำว่าท้องฟ้า สี และสีฟ้า จากนั้นจึงตอบกลับมาว่าท้องฟ้ามีสีฟ้า ความจริงแล้วโมเดลที่ทำงานโดยการรับ input sequence เข้ามาและสร้าง output sequence โดยใช้บริบทความสัมพันธ์จาก input sequence นั้นมีมาก่อนหน้านี้แล้ว เช่นโมเดล seq2seq โครงสร้างของโมเดล seq2seq ประกอบไปด้วยส่วนประกอบหลัก 2 ส่วนคือ Encoder และ Decoder โดย Encoder มีหน้าที่รับ input sequence เข้ามา จากนั้นแปลง input sequence ให้กลายเป็นตัวแปรทางคณิตศาสตร์ที่โมเดลสามารถเข้าใจและทำการคำนวณต่อไปได้ จากนั้น Decoder จึงนำตัวแปรต่าง ๆ เหล่านี้มาทำการคำนวณหาความสัมพันธ์และสร้าง output sequence ออกมาเป็นคำตอบ โดยโครงสร้าง Encoder-Decoder นี้จะเห็นได้ในรูปที่ 2             ในรูปที่ 2 จะเห็นได้ว่าส่วน Encoder ทำการแปลงประโยค “She is eating a green apple” ให้กลายเป็น Context Vector จากนั้นจึงส่ง Context Vector ให้กับ Decoder เพื่อใช้ในการสร้าง Output sequence ออกมาเป็นภาษาจีน การทำงานแบบนี้มีข้อจำกัดคือ Encoder จะต้องแปลงข้อมูลทั้งหมดที่อยู่ใน input sequence ให้กลายเป็นเวกเตอร์เพียงแค่เวกเตอร์เดียวเท่านั้น และนอกจากนี้ คำท้าย ๆ ของ input sequence ยังมีผลต่อเวกเตอร์มากกว่าคำต้น ๆ อีกด้วย เมื่อคำต้น ๆ ไม่ค่อยมีผลกับเวกเตอร์ ส่วน Decoder จึงไม่ค่อยให้ความสำคัญ ทำให้ประสิทธิภาพของโมเดลด้อยลงเมื่อ input sequence มีความยาวมาก โมเดล Transformer จึงมีการคิดค้นการคำนวณแบบใหม่ขึ้นมาแก้ปัญหานี้ โดยเรียกการคำนวณใหม่นี้ว่า Attention Mechanism จากรูปโครงสร้างโมเดล Transformer จะเห็นได้ว่า Transformer ประกอบไปด้วย 2 ส่วนคือ Encoder ทางซ้าย และ Decoder ทางขวา เช่นเดียวกับโมเดล seq2seq แต่มีสิ่งที่เพิ่มมาคือกลไก Attention หรือในรูปคือ Multi-Head Attention กลไกนี้จะคำนวณค่าความสัมพันธ์ระหว่างคำใน output sequence ทุกคำ กับคำใน input sequence ทุกคำ จึงทำให้โมเดลสามารถรับข้อมูลจาก input sequence ทั้งหมดได้พร้อมกัน โมเดล Transformer จึงสามารถใช้ข้อมูลทั้งหมดพร้อมกันในการคำนวณได้ โมเดลจึงมีประสิทธิภาพในการประมวลผลข้อความที่มีความยาว เช่นหน้าเว็บไซต์ทั้งหน้า หรือในกรณีของโมเดลที่มีการสนทนาตอบโต้กับผู้ใช้ โมเดลจะสามารถใช้ข้อความก่อนหน้าเป็นบริบทในการสร้างคำตอบต่อ ๆ ไปได้               ตัวอย่างในรูปที่ 4 เป็นตัวอย่างการแปลภาษาอังกฤษเป็นฝรั่งเศส แถบสีที่อยู่ใต้คำภาษาฝรั่งเศสคือค่า Attention ที่บ่งบอกว่าคำนั้นมีความสัมพันธ์กับคำภาษาอังกฤษใน input sequence มากแค่ไหน ยิ่งสีเข้มก็ยิ่งมีความสัมพันธ์มาก โดยจะเห็นได้ว่า “Comment” มีความสัมพันธ์กับ “How”, “se” มีความสัมพันธ์กับ “How” และ “was”, “passe” มีความสัมพันธ์กับ “was”, “ta” มีความสัมพันธ์กับ “your”, และ “journée” มีความสัมพันธ์กับ “day”             กลไก Attention ประกอบไปด้วยส่วนประกอบ 3 ส่วนได้แก่ Query (Q) เป็นตัวแทนของบริบท หรือสิ่งที่โมเดลกำลังโฟกัสอยู่ในปัจจุบัน Key (K) เป็นตัวแทนส่วนประกอบของข้อมูลที่โมเดลรับเข้ามา และ Value (V) เป็นตัวแทนน้ำหนักที่โมเดลให้กับส่วนประกอบต่าง ๆ ของข้อมูลที่ได้รับเข้ามา โดยโมเดลจะนำทั้งสามส่วนประกอบ Q, K, V มาทำการคำนวณทางคณิตศาสตร์ตามรูปที่ 5 และได้ผลลัพธ์ออกมาเป็นค่าความสัมพันธ์ระหว่าง Q สิ่งที่โมเดลกำลังโฟกัสอยู่ และ K ส่วนประกอบต่าง ๆ ของข้อมูลที่รับเข้ามา สำหรับผู้ที่สนใจรายละเอียดการคำนวณสามารถอ่านต่อได้ในบทความงานวิจัยต้นฉบับชื่อ Attention Is All You Need หรือบทความ Wikipedia ชื่อ Attention (machine learning) นอกจากการคำนวณ Attention แล้ว ในโมเดล Transformer ได้พัฒนาต่อเป็นกลไก Multi-Head Attention เป็นการคำนวณ Attention หลายครั้งโดยใช้ค่าน้ำหนักของโมเดลที่ต่างกัน ทำให้โมเดลสามารถค้นพบความสัมพันธ์ระหว่างแต่ละคำใน input sequence ได้ในหลายมุมมอง...
17 June 2024

บทความ

การใช้งาน ChatGPT เพื่อเขียนบทความ: สร้างเนื้อหามากมายได้อย่างรวดเร็วได้ใน 5 ขั้นตอน
ChatGPT เป็นเทคโนโลยีที่ใช้ปัญญาประดิษฐ์ในการสร้างข้อความและบทความในรูปแบบที่คุณต้องการ มาเรียนรู้วิธีใช้ ChatGPT เพื่อเขียนบทความอย่างง่าย ๆ กัน
28 September 2023

บทความ

ประวัติศาสตร์การพัฒนาการโมเดลทางภาษา: จากเวคเตอร์สู่ Transformers
จากกระแสการมาของ AI ตัวเก่งที่ทำให้หลายๆสายงานใช้ชีวิตได้ง่ายขึ้นและยากขึ้นตามๆกันไปคือการมาของ ChatGPT จากทีม OpenAI ที่นักเรียนสามารถสั่ง ChatGPT ให้เขียนเรียงความไปส่งอาจารย์ได้โดยไม่ได้ลอกใครมา หรือจะเป็นการเขียนโค้ดส่งการบ้านของเด็กมหาลัยฯ หรือจะเป็นการสอบถามสูตรอาหารพร้อมขั้นตอนการปรุงอาหาร ที่เป็นแรงกระเพื่อมไปหลายๆวงการ ทางผู้เขียนเองก็ตะลึงในความสามารถของ ChatGPT เช่นกัน แต่ทางผู้เขียนจะขอพูดถึงการทำงานของ ChatGPT ในโอกาสหน้า ในครั้งนี้เราจะมาพูดถึงพัฒนาการของโมเดลทางภาษา (Language Models : LM) ในด้าน Natural Language Processing : NLP ที่ทำให้เกิด ChatBOT ในรูปแบบต่างๆมากมาย เช่น Alexa, Siri, Sparrow, รวมถึง ChatGPT ซึ่งมีทั้งความเก่ง ความฉลาด และความแม่นยำ ในปี 2013 (10 ปีก่อนปัจจุบัน) เป็นปีของ Word2Vec เหล่านักวิจัยด้าน NLP ให้ Convolutional Neural Network Model: CNN เรียนรู้เพื่อหาความคล้ายคลึงหรือความเหมือนของคำแต่ละคำตามการกระจายตัวของแต่ละคำในคลังข้อมูลภาษา โดยการเปลี่ยนคำให้กลายเป็นเวกเตอร์ ซึ่งคำแต่ละคำที่อยู่ใกล้กัน คือคำที่มีความหมายใกล้เคียงกัน มีบริบทเดียวกัน หรือมีความคล้ายคลึงกัน ดังตัวอย่างที่ปรากฏในรูป 1 ถ้าสมมติว่าเราเปลี่ยนคำว่า “Apple” ให้กลายเป็นเวกเตอร์แล้ววาดลงบนพื้นที่ 2 มิติ Word2Vec จะบอกว่าคำที่คล้ายคลึง หรือพบเจอได้บ่อยเมื่อมีคำว่า “Apple” คือ “iPhone” และ “Android” จะเห็นได้ว่าทั้งสองคำอยู่ในบริบทของมือถือ และคำว่า “Apple” กลายเป็นชื่อแบรนด์สินค้า ในขณะเดียวกันตัว Word2Vec เองก็แสดงคำที่ลักษณะใกล้เคียงกันเช่น “Banana” “Orange” และ “Papaya” ให้อยู่ใกล้กับ “Apple” เช่นเดียวกันแต่เป็นบริบทของผลไม้ จะเห็นได้ว่า Word2Vec นั้นยังแบ่งคำว่า “Apple” ในบางเนื้อหาให้ชัดเจนไม่ได้ดีนัก หากนำไปใช้ใน Classification Model อาจทำให้เกิดความคลาดเคลื่อนได้ค่อนข้างสูง จึงทำให้ไปสู่การพัฒนาขั้นต่อไปของการใช้ Neural Network ในปี 2014-2015 เป็นปีที่มีการนำมาใช้ของ Recurrent Neural Network : RNN เนื่องจากตัวโมเดลนั้นสามารถแก้ปัญหา Classification ได้ดี แล้วยังสามารถแก้ปัญหา Sequence-2-Sequence (Seq2Seq) ได้ดีอีกด้วย ซึ่งโจทย์ปัญหาที่พบเจอได้บ่อยๆในด้าน NLP ของ Seq2Seq คือ การแปลภาษา ยกตัวอย่างการแปลภาษาจากภาษาอังกฤษมาเป็นภาษาไทย ดังประโยคในตัวอย่าง “He is a student.” ตัว Encoder นั้นจะทำการเข้ารหัสตามลำดับของคำในประโยคโดยเริ่มจาก “He” ไปจนถึง “student” หลังจากนั้นก็จะสร้าง vector สำหรับประโยคนี้เพื่อนำไปถอดรหัสผ่านตัว Decoder ให้แปลงเป็นภาษาไทยว่า “เขาเป็นนักเรียน” จะเห็นได้จากตัวอย่างว่า RNN โมเดลที่ทำการแปลภาษานั้นสามารถทำได้ดี แต่ทว่าการแปลภาษาของ RNN โมเดลนั้นก็ยังไม่เป็นผลที่มีประสิทธิภาพดีเท่าไหร่นักถ้าประโยคที่เรานำไม่ได้มีแค่ 4 คำ ตัวโมเดลแปลภาษาจะมีปัญหาเกิดขึ้นสำหรับประโยคที่มีความยาวมากๆ, การแปลขนาดย่อหน้า, หรือขนาดหนังสือเป็นเล่ม ที่จะต้องไล่เข้ารหัสที่ละคำและถอดรหัสที่ละคำ ทำให้ในช่วงปี 2015-2016 มีการเริ่มใช้กลไกการสนใจ (Attention Mechanism) คือการบอกว่าในประโยคนี้ คำนี้มีความสำคัญในการใช้แก้โจทย์ปัญหาจึงต้องสนใจคำนี้เป็นพิเศษ แทนที่จะสนใจทั้งโครงสร้างของประโยค ทางผู้เขียนขอยกตัวอย่างการใช้กลไกการสนใจเป็นรูปภาพและตัวหนังสือ เช่น “A woman is walking on the rocks” กลไกการสนใจนี้เปรียบเสมือนการโฟกัสในรูปภาพที่เรามอง คือถ้าเราให้ความสนใจกับผู้หญิงในรูปเป็นหลัก พื้นที่รอบๆก็จะหม่นลง เช่นเดียวกับตัว Attention ในประโยคข้างต้นคือ “He is a student” ตัว Self-Attention เห็นว่าความน่าสนใจของประโยคนี้คือคำว่า “student” จึงมีการนำกลไกการสนใจไปใช้ควบคู่กับ RNN ในการพัฒนาโมเดลขึ้น จนในที่สุดปี 2017 มีการตีพิมพ์งานวิจัยที่ชื่อว่า “Attention is All You Need” ออกมาบอกว่า เราไม่ต้องใช้ RNN block หรอก สิ่งที่เราจำเป็นจริงๆคือแค่ตัว Attention ทำให้นำไปสู่การสร้าง Neural Network ตัวใหม่ที่ชื่อว่า Transformers ที่เป็นโมเดลที่ใช้กันอย่างแพร่หลายในปัจจุบัน โดยตัวโครงสร้างของ Transformers นั้นประกอบด้วย 2 ส่วนหลักๆเช่นเดียวกับตัว RNN คือ Encoder และ Decoder แต่แตกต่างกันตรงที่ Transformers นั้นสามารถทำแบบคู่ขนานได้ (Parallelization) แทนที่จะอ่านที่ละคำตามแบบ RNN ตัว Transformers สามารถอ่านทั้งประโยคหรือทั้งย่อหน้าได้ ในส่วนของ Encoder นั้นจะเป็นการฝึกให้เข้าใจโครงสร้างทางภาษาซึ่งอาจจะประกอบไปด้วย Part of Speech (POS tagging), Semantic Roles, Coreference เป็นต้น และส่วนของ Decoder นั้นจะเป็นการสร้างคำจากประโยคที่ถูกใส่เข้ามาเพื่อตอบโจทย์ของโมเดล ตัว Transformers นั้นนอกจากจะใช้การเข้ารหัสตำแหน่ง (Positional Encoding) และกลไกการสนใจ (Attention Mechanism) แล้ว สิ่งที่เป็นจุดเปลี่ยนคือกลไกการสนใจตนเอง (Self-Attention Mechanism) จุดนี้ทางผู้เขียนขอย้อนกลับไปถึงตัวอย่างของคำว่า “Apple” ในตอนต้น ในรูปที่ 5 ตัว Self-Attention นั้นจะอ้างอิงความหมายของ “Apple” จากคำรอบๆตัวเอง ประโยคแรกให้ความสนใจไปที่ “fruit” และในประโยคที่สองให้ความสนใจไปที่ “cellphone” ในส่วนนี้จะช่วยให้ตัว transformers นั้นเรียนรู้โครงสร้างทางภาษาและความหมายของคำ ๆ นั้นได้มากขึ้น ทั้งหมดนี้เป็นเพียงแค่ที่มาของตัว Transformers ซึ่งปัจจุบันถูกพัฒนาและนำไปใช้เป็นต้นแบบและพื้นฐานในโมเดลทางด้านภาษาอย่างหลากหลาย ในโอกาสหน้าทางผู้เขียนจะมาเจาะลึกถึงตัว Transformers ว่าลำดับขั้นตอนในการดำเนินการของ Transformers เป็นอย่างไร และมีการคำนวณเบื้องหลังอย่างไร บทความโดย อมร โชคชัยสิริภักดีตรวจทานและปรับปรุงโดย อนันต์วัฒน์ ทิพย์ภาวัต ที่มา :
17 July 2023
PDPA Icon

We use cookies to optimize your browsing experience and improve our website’s performance. Learn more at our Privacy Policy and adjust your cookie settings at Settings

Privacy Preferences

You can choose your cookie settings by turning on/off each type of cookie as needed, except for necessary cookies.

Accept all
Manage Consent Preferences
  • Strictly Necessary Cookies
    Always Active

    This type of cookie is essential for providing services on the website of the Personal Data Protection Committee Office, allowing you to access various parts of the site. It also helps remember information you have previously provided through the website. Disabling this type of cookie will result in your inability to use key services of the Personal Data Protection Committee Office that require cookies to function.
    Cookies Details

  • Performance Cookies

    This type of cookie helps the Big Data Institute (Public Organization) understand user interactions with its website services, including which pages or areas of the site are most popular, as well as analyze other related data. The Big Data Institute (Public Organization) also uses this information to improve website performance and gain a better understanding of user behavior. Although the data collected by these cookies is non-identifiable and used solely for statistical analysis, disabling them will prevent the Big Data Institute (Public Organization) from knowing the number of website visitors and from evaluating the quality of its services.

  • Functional Cookies

    This type of cookie enables the Big Data Institute (Public Organization)’s website to remember the choices you have made and deliver enhanced features and content tailored to your usage. For example, it can remember your username or changes you have made to font sizes or other customizable settings on the page. Disabling these cookies may result in the website not functioning properly.

  • Targeting Cookies

    "This type of cookie helps the Big Data Institute (Public Organization) understand user interactions with its website services, including which pages or areas of the site are most popular, as well as analyze other related data. The Big Data Institute (Public Organization) also uses this information to improve website performance and gain a better understanding of user behavior. Although the data collected by these cookies is non-identifiable and used solely for statistical analysis, disabling them will prevent the Big Data Institute (Public Organization) from knowing the number of website visitors and from evaluating the quality of its services.

Save settings
This site is registered on wpml.org as a development site. Switch to a production site key to remove this banner.