การทำความเข้าใจ Tokenization ใน NLP: คู่มือสำหรับผู้เริ่มต้นในการประมวลผลข้อความ

เผยแพร่แล้ว: 2024-11-26

Tokenization เป็นองค์ประกอบที่สำคัญแต่มักถูกมองข้ามในการประมวลผลภาษาธรรมชาติ (NLP) ในคู่มือนี้ เราจะอธิบายการใช้โทเค็น กรณีการใช้งาน ข้อดีและข้อเสีย และเหตุใดจึงเกี่ยวข้องกับโมเดลภาษาขนาดใหญ่ (LLM) เกือบทุกรุ่น

สารบัญ

  • โทเค็นไนซ์ใน NLP คืออะไร?
  • ประเภทของโทเค็น
  • วิธีการทำงานของโทเค็น
  • แอปพลิเคชันโทเค็น
  • ประโยชน์ของโทเค็น
  • ความท้าทายของโทเค็น

โทเค็นไนซ์ใน NLP คืออะไร?

Tokenization คือวิธี NLP ที่แปลงข้อความเป็นรูปแบบตัวเลขที่โมเดล Machine Learning (ML) สามารถใช้ได้ เมื่อคุณส่งข้อความแจ้งไปยัง LLM เช่น Claude จาก Anthropic, Gemini จาก Google หรือสมาชิกของซีรีส์ GPT ของ OpenAI โมเดลดังกล่าวจะไม่อ่านข้อความของคุณโดยตรง โมเดลเหล่านี้รับได้เฉพาะตัวเลขเป็นอินพุตเท่านั้น ดังนั้นก่อนอื่นต้องแปลงข้อความเป็นลำดับตัวเลขโดยใช้โทเค็นไนเซอร์

วิธีหนึ่งที่ tokenizer อาจ tokenize ข้อความคือแยกออกเป็นคำแยกกัน และกำหนดตัวเลขให้กับคำที่ไม่ซ้ำกันแต่ละคำ:

“Grammarly รักไวยากรณ์และ ML และการเขียน” อาจกลายเป็น:

ตัวอย่างโทเค็นใน NLP

แต่ละคำ (และหมายเลขที่เกี่ยวข้อง) เป็นโทเค็น โมเดล ML สามารถใช้ลำดับของโทเค็น — [7,102], [37], [564], [2], [9,763], [2], [231]— เพื่อรันการดำเนินการและสร้างเอาต์พุต โดยทั่วไปเอาต์พุตนี้จะเป็นตัวเลข ซึ่งจะถูกแปลงกลับเป็นข้อความโดยใช้กระบวนการย้อนกลับของกระบวนการโทเค็นเดียวกันนี้ ในทางปฏิบัติ โทเค็นแบบคำต่อคำนี้เป็นตัวอย่างที่ดีเยี่ยม แต่ไม่ค่อยมีการใช้ในอุตสาหกรรมด้วยเหตุผลที่เราจะได้เห็นในภายหลัง

สิ่งสุดท้ายที่ควรทราบก็คือ tokenizer มีคำศัพท์ ซึ่งเป็นชุดโทเค็นที่สมบูรณ์ที่พวกเขาสามารถจัดการได้ Tokenizer ที่รู้คำศัพท์ภาษาอังกฤษพื้นฐานแต่ไม่รู้ชื่อบริษัทอาจไม่มี “Grammarly” เป็นโทเค็นในคำศัพท์ ซึ่งนำไปสู่ความล้มเหลวของ Tokenization

ทำงานอย่างชาญฉลาดยิ่งขึ้นด้วย Grammarly
คู่หูการเขียน AI สำหรับใครก็ตามที่มีงานทำ

ประเภทของโทเค็น

โดยทั่วไป การแปลงโทเค็นเป็นการเปลี่ยนข้อความบางส่วนให้เป็นลำดับตัวเลข แม้ว่าจะเป็นเรื่องปกติที่จะนึกถึงโทเค็นไนเซชันในระดับคำ แต่ก็มีวิธีโทเค็นไนซ์อื่นๆ อีกหลายวิธี ซึ่งหนึ่งในนั้น—โทเค็นคำย่อย—คือมาตรฐานอุตสาหกรรม

โทเค็นคำ

โทเค็นของคำเป็นตัวอย่างที่เราเห็นก่อนหน้านี้ โดยที่ข้อความจะถูกแบ่งตามแต่ละคำและตามเครื่องหมายวรรคตอน

ตัวอย่างการสร้างคำใน NLP

ประโยชน์หลักของ Word tokenization คือง่ายต่อการเข้าใจและแสดงภาพ อย่างไรก็ตาม มีข้อบกพร่องบางประการ:

  • หากมีเครื่องหมายวรรคตอนติดอยู่กับคำเช่นเดียวกับ "การเขียน"
  • คำที่แปลกใหม่หรือผิดปกติ (เช่น “ไวยากรณ์”) ใช้โทเค็นทั้งหมด

เป็นผลให้โทเค็นคำสามารถสร้างคำศัพท์ที่มีโทเค็นนับแสน ปัญหาเกี่ยวกับคำศัพท์จำนวนมากคือทำให้การฝึกอบรมและการอนุมานมีประสิทธิภาพน้อยลงมาก เมทริกซ์ที่จำเป็นในการแปลงระหว่างข้อความและตัวเลขจะต้องมีขนาดใหญ่มาก

นอกจากนี้ จะมีคำที่ใช้ไม่บ่อยนัก และแบบจำลอง NLP ก็มีข้อมูลการฝึกอบรมที่เกี่ยวข้องไม่เพียงพอที่จะส่งคืนคำตอบที่แม่นยำสำหรับคำที่ไม่บ่อยเหล่านั้น หากมีการคิดค้นคำใหม่พรุ่งนี้ LLM ที่ใช้คำโทเค็นจะต้องได้รับการฝึกอบรมใหม่เพื่อรวมคำนี้

โทเค็นไลเซชันคำย่อย

โทเค็นไลเซชันย่อยจะแบ่งข้อความออกเป็นส่วนๆ ที่เล็กกว่าหรือเท่ากับคำ แต่ละโทเค็นไม่มีขนาดคงที่ แต่ละโทเค็น (และความยาว) จะถูกกำหนดโดยกระบวนการฝึกอบรม การแปลงโทเค็นคำย่อยเป็นมาตรฐานอุตสาหกรรมสำหรับ LLM ด้านล่างนี้คือตัวอย่างที่มีการทำโทเค็นโดยโทเค็น GPT-4o:

ตัวอย่างโทเค็นคำย่อยใน NLP

ที่นี่คำที่ไม่ธรรมดา “Grammarly” ถูกแบ่งออกเป็นสามโทเค็น: “Gr” “amm” และ “arly” ในขณะเดียวกัน คำอื่นๆ ก็พบได้ทั่วไปในข้อความที่สร้างโทเค็นของตัวเอง

การแปลงโทเค็นคำย่อยช่วยให้ใช้คำศัพท์ที่มีขนาดเล็กลงได้ ซึ่งหมายถึงการฝึกอบรมและการอนุมานที่มีประสิทธิภาพและราคาถูกกว่า โทเค็นไนเซอร์คำย่อยยังสามารถแยกคำที่หายากหรือคำแปลกใหม่ออกเป็นกลุ่มโทเค็นขนาดเล็กที่มีอยู่ได้ ด้วยเหตุผลเหล่านี้ โมเดล NLP จำนวนมากจึงใช้โทเค็นย่อย

การสร้างโทเค็นอักขระ

การสร้างโทเค็นอักขระจะแบ่งข้อความออกเป็นอักขระแต่ละตัว ตัวอย่างของเราจะมีลักษณะดังนี้:

ตัวอย่างการสร้างโทเค็นอักขระใน NLP

ตัวละครที่เป็นเอกลักษณ์ทุกตัวจะกลายเป็นสัญลักษณ์ของตัวเอง ซึ่งจริงๆ แล้วต้องใช้คำศัพท์ที่เล็กที่สุด เนื่องจากตัวอักษรในตัวอักษรมีเพียง 52 ตัว (ตัวพิมพ์ใหญ่และตัวพิมพ์เล็กถือว่าต่างกัน) และเครื่องหมายวรรคตอนหลายตัว เนื่องจากคำภาษาอังกฤษใดๆ จะต้องถูกสร้างขึ้นจากอักขระเหล่านี้ โทเค็นอักขระจึงสามารถทำงานกับคำใหม่หรือคำที่หายากได้

อย่างไรก็ตาม ตามการวัดประสิทธิภาพ LLM มาตรฐาน โทเค็นอักขระไม่ทำงานเช่นเดียวกับโทเค็นคำย่อยในทางปฏิบัติ โทเค็นคำย่อย "car" มีข้อมูลมากกว่าโทเค็นอักขระ "c" ดังนั้นกลไกความสนใจในหม้อแปลงไฟฟ้าจึงมีข้อมูลให้ดำเนินการมากกว่า

โทเค็นประโยค

โทเค็นประโยคจะเปลี่ยนแต่ละประโยคในข้อความให้เป็นโทเค็นของตัวเอง ตัวอย่างของเราจะมีลักษณะดังนี้:

ตัวอย่างโทเค็นประโยคใน NLP

ข้อดีคือแต่ละโทเค็นมีข้อมูลมากมาย อย่างไรก็ตาม มีข้อเสียอยู่หลายประการ มีวิธีที่ไม่มีที่สิ้นสุดในการรวมคำเพื่อเขียนประโยค ดังนั้นคำศัพท์จึงต้องไม่มีที่สิ้นสุดเช่นกัน

นอกจากนี้ แต่ละประโยคนั้นค่อนข้างหายาก เนื่องจากความแตกต่างแม้เพียงเล็กน้อย (เช่น "เช่นกัน" แทนที่จะเป็น "และ") จะหมายถึงโทเค็นที่แตกต่างกันแม้ว่าจะมีความหมายเหมือนกันก็ตาม การฝึกอบรมและการอนุมานอาจเป็นฝันร้าย โทเค็นโทเค็นจะใช้ในกรณีการใช้งานเฉพาะทาง เช่น การวิเคราะห์ความรู้สึกของประโยค แต่อย่างอื่นก็พบเห็นได้ไม่บ่อยนัก

การแลกเปลี่ยนโทเค็น: ประสิทธิภาพเทียบกับประสิทธิภาพ

การเลือกรายละเอียดที่ถูกต้องของโทเค็นไนเซชันสำหรับโมเดลนั้นเป็นความสัมพันธ์ที่ซับซ้อนระหว่างประสิทธิภาพและประสิทธิภาพ ด้วยโทเค็นที่มีขนาดใหญ่มาก (เช่น ในระดับประโยค) คำศัพท์จึงมีจำนวนมาก ประสิทธิภาพการฝึกของโมเดลลดลงเนื่องจากเมทริกซ์สำหรับเก็บโทเค็นทั้งหมดเหล่านี้มีขนาดใหญ่มาก ประสิทธิภาพลดลงเนื่องจากมีข้อมูลการฝึกอบรมไม่เพียงพอสำหรับโทเค็นที่ไม่ซ้ำกันทั้งหมดเพื่อเรียนรู้ความสัมพันธ์อย่างมีความหมาย

ในอีกด้านหนึ่ง ด้วยโทเค็นขนาดเล็ก คำศัพท์ก็จะเล็กลง การฝึกอบรมมีประสิทธิภาพ แต่ประสิทธิภาพอาจลดลงเนื่องจากแต่ละโทเค็นมีข้อมูลไม่เพียงพอสำหรับโมเดลในการเรียนรู้ความสัมพันธ์ของโทเค็น-โทเค็น

โทเค็นไลเซชันคำย่อยอยู่ตรงกลาง แต่ละโทเค็นมีข้อมูลเพียงพอสำหรับโมเดลในการเรียนรู้ความสัมพันธ์ แต่คำศัพท์ไม่มากจนการฝึกอบรมไม่มีประสิทธิภาพ

วิธีการทำงานของโทเค็น

Tokenization เกี่ยวข้องกับการฝึกฝนและการใช้ Tokenizer Tokenizers แปลงข้อความเป็นโทเค็นและโทเค็นกลับเป็นข้อความ เราจะพูดถึง subword tokenizers ที่นี่ เนื่องจากเป็นประเภทที่ได้รับความนิยมมากที่สุด

โทเค็นไนเซอร์คำย่อยต้องได้รับการฝึกฝนให้แยกข้อความได้อย่างมีประสิทธิภาพ

ตัวอย่างโทเค็นคำย่อยใน NLP

เหตุใด "Grammarly" จึงถูกแบ่งออกเป็น "Gr" "amm" และ "arly" “Gram”, “mar” และ “ly” ใช้งานไม่ได้ใช่ไหม ในสายตามนุษย์ มันสามารถทำเช่นนั้นได้อย่างแน่นอน แต่ tokenizer ซึ่งสันนิษฐานว่าได้เรียนรู้การนำเสนอที่มีประสิทธิภาพมากที่สุดกลับคิดแตกต่างออกไป อัลกอริธึมการฝึกอบรมทั่วไป (แม้ว่าจะไม่ได้ใช้ใน GPT-4o) ที่ใช้ในการเรียนรู้การเป็นตัวแทนนี้คือการเข้ารหัสไบต์คู่ (BPE) เราจะอธิบาย BPE ในส่วนถัดไป

การฝึกอบรมโทเค็น

หากต้องการฝึก tokenizer ที่ดี คุณต้องมีคลังข้อความจำนวนมากเพื่อฝึก การเรียกใช้ BPE บนคลังข้อมูลนี้ทำงานดังนี้:

  1. แยกข้อความทั้งหมดในคลังข้อมูลออกเป็นอักขระแต่ละตัว ตั้งสิ่งเหล่านี้เป็นสัญญาณเริ่มต้นในคำศัพท์
  2. รวมโทเค็นสองอันที่อยู่ติดกันบ่อยที่สุดจากข้อความเป็นโทเค็นใหม่หนึ่งอัน และเพิ่มลงในคำศัพท์ (โดยไม่ต้องลบโทเค็นเก่า นี่เป็นสิ่งสำคัญ)
  3. ทำซ้ำขั้นตอนนี้จนกว่าจะไม่มีคู่โทเค็นที่อยู่ติดกันเกิดขึ้นบ่อยครั้งเหลืออยู่ หรือถึงขนาดคำศัพท์สูงสุดแล้ว

ตามตัวอย่าง สมมติว่าคลังข้อมูลการฝึกอบรมทั้งหมดของเราประกอบด้วยข้อความ “abc abcd”:

  1. ข้อความจะถูกแบ่งออกเป็น [“a”, “b”, “c”, “ ”, “a”, “b”, “c”, “d”] โปรดทราบว่ารายการที่สี่ในรายการนั้นเป็นอักขระเว้นวรรค คำศัพท์ของเราก็คือ [“a”, “b”, “c”, “ ”, “d”]
  2. “a” และ “b” มักเกิดขึ้นติดกันในข้อความ (ผูกกับ “b” และ “c” แต่ “a” และ “b” จะชนะตามลำดับตัวอักษร) ดังนั้นเราจึงรวมพวกมันเข้าด้วยกันเป็นโทเค็นเดียว "ab" คำศัพท์ตอนนี้ดูเหมือน [“a”, “b”, “c”, “ ”, “d”, “ab”] และข้อความที่อัปเดต (โดยใช้การรวมโทเค็น “ab”) ดูเหมือนว่า [“ab” , “ค”, “ ”, “ab”, “ค”, “ง”]
  3. ตอนนี้ “ab” และ “c” เกิดขึ้นพร้อมกันบ่อยที่สุดในข้อความ เรารวมพวกมันเข้ากับโทเค็น "abc" คำศัพท์จะมีลักษณะดังนี้ [“a”, “b”, “c”, “ ”, “d”, “ab”, “abc”] และข้อความที่อัปเดตจะมีลักษณะดังนี้ [“abc”, “ ”, “abc” ”, “ง”]
  4. เราสิ้นสุดกระบวนการที่นี่เนื่องจากคู่โทเค็นที่อยู่ติดกันแต่ละคู่จะเกิดขึ้นเพียงครั้งเดียวเท่านั้น การรวมโทเค็นเพิ่มเติมจะทำให้โมเดลผลลัพธ์ทำงานได้แย่ลงในข้อความอื่น ในทางปฏิบัติ ขีดจำกัดขนาดคำศัพท์คือปัจจัยจำกัด

ด้วยชุดคำศัพท์ใหม่ของเรา เราสามารถเชื่อมโยงระหว่างข้อความและโทเค็นได้ แม้แต่ข้อความที่เราไม่เคยเห็นมาก่อน เช่น "cab" ก็สามารถโทเค็นได้เนื่องจากเราไม่ได้ละทิ้งโทเค็นที่มีอักขระเพียงตัวเดียว นอกจากนี้เรายังสามารถคืนหมายเลขโทเค็นได้โดยเพียงแค่ดูตำแหน่งของโทเค็นภายในคำศัพท์

การฝึกอบรมการใช้โทเค็นที่ดีต้องใช้ข้อมูลปริมาณมากและการประมวลผลจำนวนมาก ซึ่งมากกว่าที่บริษัทส่วนใหญ่จะสามารถซื้อได้ บริษัทต่างๆ หลีกเลี่ยงปัญหานี้ได้ด้วยการข้ามการฝึกอบรมโทเค็นไนเซอร์ของตนเอง แต่พวกเขาใช้โทเค็นที่ได้รับการฝึกอบรมล่วงหน้าเท่านั้น (เช่น โทเค็น GPT-4o ที่ลิงก์ด้านบน) เพื่อประหยัดเวลาและเงินโดยสูญเสียประสิทธิภาพของโมเดลให้น้อยที่สุด หากมี

การใช้โทเค็นไนเซอร์

ดังนั้นเราจึงมีโทเค็นไนเซอร์ย่อยนี้ที่ได้รับการฝึกฝนเกี่ยวกับคลังข้อมูลขนาดใหญ่โดยใช้ BPE ทีนี้เราจะใช้กับข้อความชิ้นใหม่ได้อย่างไร?

เราใช้กฎการผสานที่เรากำหนดไว้ในกระบวนการฝึกอบรมโทเค็นไนเซอร์ ก่อนอื่นเราแบ่งข้อความที่ป้อนออกเป็นตัวอักษร จากนั้น เราจะทำการผสานโทเค็นตามลำดับเดียวกับในการฝึก

เพื่อให้เห็นภาพ เราจะใช้ข้อความอินพุตที่แตกต่างออกไปเล็กน้อยคือ “dc abc”:

  1. เราแบ่งออกเป็นอักขระ [“d”, “c”, “ ”, “a”, “b”, “c”]
  2. การรวมครั้งแรกที่เราทำในการฝึกอบรมคือ “ab” ดังนั้นเราจึงทำที่นี่: [“d”, “c”, “ ”, “ab”, “c”]
  3. การผสานครั้งที่สองที่เราทำคือ “abc” ดังนั้นเราจึงทำสิ่งนั้น: [“d”, “c”, “ ”, “abc”]
  4. นี่เป็นกฎการรวมเพียงข้อเดียวที่เรามี ดังนั้นเราจึงสร้างโทเค็นเสร็จแล้ว และเราสามารถส่งคืน ID โทเค็นได้

หากเรามีรหัสโทเค็นจำนวนมากและต้องการแปลงสิ่งนี้เป็นข้อความ เราก็สามารถค้นหารหัสโทเค็นแต่ละรายการในรายการและส่งกลับข้อความที่เกี่ยวข้องได้ LLM ทำสิ่งนี้เพื่อเปลี่ยนการฝัง (เวกเตอร์ของตัวเลขที่จับความหมายของโทเค็นโดยดูที่โทเค็นที่อยู่รอบๆ) ที่พวกเขาทำงานร่วมกับกลับเป็นข้อความที่มนุษย์สามารถอ่านได้

แอปพลิเคชันโทเค็น

Tokenization ถือเป็นก้าวแรกใน NLP ทั้งหมดเสมอ การเปลี่ยนข้อความเป็นรูปแบบที่โมเดล ML (และคอมพิวเตอร์) สามารถทำงานได้ต้องใช้โทเค็น

Tokenization ใน LLM

โดยปกติแล้ว Tokenization จะเป็นส่วนแรกและส่วนสุดท้ายของการโทร LLM ทุกครั้ง ข้อความจะถูกเปลี่ยนเป็นโทเค็นก่อน จากนั้นโทเค็นจะถูกแปลงเป็นการฝังเพื่อจับความหมายของโทเค็นแต่ละรายการ และส่งผ่านไปยังส่วนหลักของโมเดล (บล็อกหม้อแปลง) หลังจากที่บล็อกของหม้อแปลงทำงาน การฝังจะถูกแปลงกลับเป็นโทเค็น ในที่สุด โทเค็นที่เพิ่งส่งคืนจะถูกเพิ่มไปยังอินพุตและส่งกลับเข้าไปในโมเดล โดยทำซ้ำกระบวนการอีกครั้ง LLM ใช้โทเค็นย่อยเพื่อสร้างสมดุลระหว่างประสิทธิภาพและประสิทธิผล

Tokenization ในเครื่องมือค้นหา

เครื่องมือค้นหาจะโทเค็นการสืบค้นของผู้ใช้เพื่อสร้างมาตรฐานและเพื่อให้เข้าใจจุดประสงค์ของผู้ใช้ได้ดียิ่งขึ้น โทเค็นของเครื่องมือค้นหาอาจเกี่ยวข้องกับการแยกข้อความออกเป็นคำ การลบคำเติม (เช่น “the” หรือ “และ”) การเปลี่ยนตัวพิมพ์ใหญ่เป็นตัวพิมพ์เล็ก และการจัดการกับอักขระ เช่น ยัติภังค์ โดยปกติแล้วการสร้างโทเค็นคำย่อยจะไม่จำเป็นที่นี่ เนื่องจากประสิทธิภาพและประสิทธิผลจะขึ้นอยู่กับขนาดของคำศัพท์น้อยกว่า

Tokenization ในการแปลด้วยเครื่อง

โทเค็นการแปลภาษาด้วยเครื่องมีความน่าสนใจเนื่องจากภาษาอินพุตและเอาต์พุตต่างกัน ด้วยเหตุนี้ จะมีโทเค็นไนเซอร์สองตัว หนึ่งอันสำหรับแต่ละภาษา โทเค็นคำย่อยมักจะทำงานได้ดีที่สุด เนื่องจากจะทำให้เกิดความสมดุลระหว่างประสิทธิภาพของโมเดลและประสิทธิภาพของโมเดล แต่บางภาษา เช่น จีน ไม่มีองค์ประกอบทางภาษาที่เล็กกว่าคำ ที่นั่นมีการเรียกโทเค็นคำ

ประโยชน์ของโทเค็น

Tokenization เป็นสิ่งที่ต้องมีสำหรับโมเดล NLP ใดๆ โทเค็นที่ดีช่วยให้โมเดล ML ทำงานอย่างมีประสิทธิภาพกับข้อความและจัดการคำศัพท์ใหม่ได้ดี

Tokenization ช่วยให้โมเดลทำงานกับข้อความได้

ภายใน โมเดล ML ใช้งานได้กับตัวเลขเท่านั้น อัลกอริธึมเบื้องหลังโมเดล ML อาศัยการคำนวณทั้งหมด ซึ่งตัวมันเองต้องใช้ตัวเลขในการคำนวณ ดังนั้น ข้อความจะต้องเปลี่ยนเป็นตัวเลขก่อนที่โมเดล ML จะใช้งานได้ หลังจากการแปลงโทเค็นแล้ว สามารถใช้เทคนิคต่างๆ เช่น ความสนใจหรือการฝังกับตัวเลขได้

Tokenization เป็นการสรุปข้อความใหม่และหายาก

หรือพูดให้ถูกก็คือ โทเค็นที่ดีจะสรุปข้อความใหม่และหายาก ด้วยโทเค็นคำย่อยและอักขระ ข้อความใหม่สามารถแยกย่อยเป็นลำดับของโทเค็นที่มีอยู่ได้ ดังนั้น การวางบทความที่มีคำซึ่งพูดพล่อยๆ ลงใน ChatGPT จะไม่ทำให้บทความแตก (ถึงแม้จะไม่ได้ให้คำตอบที่สอดคล้องกันมากนักก็ตาม) การวางนัยทั่วไปที่ดียังช่วยให้แบบจำลองเรียนรู้ความสัมพันธ์ระหว่างคำที่หายาก โดยอิงตามความสัมพันธ์ในโทเค็นย่อย

ความท้าทายของโทเค็น

การทำให้เป็นโทเค็นขึ้นอยู่กับคลังข้อมูลการฝึกอบรมและอัลกอริทึม ดังนั้นผลลัพธ์อาจแตกต่างกันไป สิ่งนี้อาจส่งผลต่อความสามารถในการให้เหตุผลของ LLM และความยาวอินพุตและเอาท์พุต

Tokenization ส่งผลต่อความสามารถในการให้เหตุผลของ LLM

ปัญหาง่ายๆ ที่มักทำให้ LLM สะดุดคือการนับจำนวนตัวอักษร "r" ในคำว่า "สตรอเบอร์รี่" แบบจำลองอาจบอกผิดว่ามีสองอัน แม้ว่าคำตอบจริงๆ จะเป็นสามก็ตาม ข้อผิดพลาดนี้บางส่วนอาจมีสาเหตุมาจากโทเค็นไนซ์ โทเค็นไนเซอร์ย่อยแบ่ง "สตรอเบอร์รี่" เป็น "st" "ดิบ" และ "berry" ดังนั้นโมเดลอาจไม่สามารถเชื่อมต่อตัว “r” ตัวหนึ่งในโทเค็นตรงกลางกับตัว “r” สองตัวในโทเค็นตัวสุดท้ายได้ อัลกอริธึมโทเค็นที่เลือกจะส่งผลโดยตรงต่อวิธีที่คำต่างๆ ได้รับโทเค็น และวิธีที่แต่ละโทเค็นเกี่ยวข้องกับโทเค็นอื่นๆ

Tokenization ส่งผลต่อความยาวอินพุตและเอาต์พุต LLM

LLM ส่วนใหญ่สร้างขึ้นบนสถาปัตยกรรม Transformer ซึ่งอาศัยกลไกความสนใจในการกำหนดบริบทของโทเค็นแต่ละรายการ อย่างไรก็ตาม เมื่อจำนวนโทเค็นเพิ่มขึ้น เวลาที่ต้องใช้ในการให้ความสนใจก็จะเพิ่มขึ้นเป็นสองเท่า ดังนั้น ข้อความที่มีโทเค็น 4 อันจะใช้เวลา 16 หน่วย แต่ข้อความที่มีโทเค็น 8 อันจะใช้เวลา 64 หน่วย นี่เป็นการจำกัด LLM ไว้ที่ขีดจำกัดอินพุตและเอาต์พุตของโทเค็นไม่กี่แสนโทเค็น ด้วยโทเค็นที่มีขนาดเล็ก สิ่งนี้สามารถจำกัดจำนวนข้อความที่คุณสามารถป้อนลงในโมเดลได้อย่างแท้จริง ซึ่งช่วยลดจำนวนงานที่คุณสามารถใช้ได้