[ภาษาไทย] LLM Glossary
LLM Glossary ฉบับภาษาไทย
Last updated
LLM Glossary ฉบับภาษาไทย
Last updated
สารบัญ |
---|
คือ LLM ย่อยในระบบใหญ่ที่มีความสามารถเหมือน LLM ทุกประการ (กล่าวคือ ความเข้าใจภาษามนุษย์) แต่จะมีคำสั่งให้ดำเนินการบางอย่างตามที่กำหนด Agents จะทำการประมวลผลและดำเนินการภายใต้คำสั่งนั้น ซึ่งการแยก Agents ช่วยให้สามารถแยกการทำงานและเพิ่มประสิทธิภาพ Agent ได้ตรงตามจุดประสงค์การทำงานมากขึ้น
ยกตัวอย่างเช่น LLM Chatbot ที่ให้บริการลูกค้า อาจมีบริการหลักๆ คือการสั่งซื้อสินค้าและการตอบคำถามที่พบบ่อย (FAQ) เราสามารถแบ่ง Agents แบบง่ายๆ ได้เป็น 3 ตัว ได้แก่
Manager Agent สำหรับต้อนรับลูกค้าและส่ง Task งานไปยังแต่ละ Agents ที่เกี่ยวข้อง
Order Agent มีหน้าที่สำหรับสั่งซื้อสินค้า
FAQ Agent มีหน้าที่สำหรับตอบคำถามที่พบบ่อย
เช่น เมื่อลูกค้าเข้ามาครั้งแรกจะพบกับ Manager Agent ก่อน และเมื่อลูกค้าต้องการสั่งสินค้า Manager Agent จะทำการประมวลผลและส่งงานไปยัง Order Agent ที่มีความสามารถในการสั่งซื้อสินค้าต่อไป
สามารถศึกษาเพิ่มเติมเกี่ยวกับ LLM Agents ได้ตาม Link นี้
คือวิธีการเรียนรู้ของ LLM ที่สามารถฝึกฝนโมเดลด้วยตัวอย่างเพียงไม่กี่ตัวอย่าง ตัวอย่างในบริบทของ LLM เช่น หากเราต้องการสอนให้ LLM แปลภาษาถิ่นคำง่ายๆ เราเริ่มจากการสอนคำว่า "บ่" ที่แปลว่า "ไม่" พร้อมยกตัวอย่าง เมื่อเจอคำถามที่ต้องการให้แปลภาษาถิ่น LLM ก็จะสามารถแปลภาษาถิ่นที่มีคำว่า "บ่" ได้
สามารถดูตัวอย่างเพิ่มเติมได้ตามลิงก์ด้านล่าง
คือ กระบวนการปรับแต่ง LLM ที่ผ่านการฝึกฝนมาแล้ว ไม่ว่าจะเป็น Pre-trained Model หรือ From Scratch Model ให้เข้ากับงานที่เราต้องการนำไปใช้ ด้วยการฝึกฝนด้วยข้อมูลเพิ่มเติมหรือข้อมูลเฉพาะทาง การปรับค่าบางอย่าง (เช่น Temperature) หรือ การจัดการ Prompt ให้เหมาะสม
เช่น ถ้าหากคุณต้องการใช้ LLM ในงานด้านการแพทย์ คุณอาจต้องมีการ Fine-tuning LLM เพื่อให้คุณภาพของคำตอบสามารถนำไปใช้ในทางการแพทย์ได้จริง เพราะ LLM พื้นฐานส่วนใหญ่ จะไม่ได้ตั้งค่าให้ตอบในเชิงการแพทย์หรือมีข้อมูลทางการแพทย์มากนักf
สามารถศึกษาเรื่องการใช้ Prompt แบบ Technical Term ได้จากลิงก์ด้านล่าง
หรือ Data Framework เป็นโครงสร้างการทำงานที่ช่วยอำนวยความสะดวกในการเชื่อมต่อกระบวนการทำงานตั้งแต่เริ่มต้นจนจบ ทำให้สามารถสร้าง LLM Application ได้อย่างมีประสิทธิภาพและง่ายดายมากยิ่งขึ้น คุณสามารถใช้ฟังก์ชันของ Framework เพื่อพัฒนา LLM Application โดยไม่ต้องเริ่มต้นจากศูนย์ ซึ่งจะช่วยลดระยะเวลาในการพัฒนาได้มาก
เช่นเดียวกับที่ JavaScript มี Framework หลากหลายตัว เช่น Angular, Vue.js หรือ React ในการพัฒนา LLM Application ก็มี Framework ให้เลือกใช้หลายตัวเช่นกัน ที่นิยมใช้ได้แก่ LlamaIndex และ Langchain
คุณสามารถศึกษาตัวอย่างการใช้ LlamaIndex เป็น Framework ในการสร้าง Chatbot ได้ตามลิงก์ด้านล่าง
เป็นเทคนิคหนึ่งเพื่อกำหนดขอบเขตการให้คำตอบของ LLM โดยสามารถกำหนดกฎหรือข้อจำกัดในการใช้งานเพื่อควบคุมการทำงานของ LLM ป้องกันไม่ให้เกิดข้อผิดพลาดหรือผิดวัตถุประสงค์ในการใช้งาน
เช่น คุณสร้าง LLM Chatbot สำหรับให้บริการในโรงพยาบาล คุณใช้เทคนิค Guardrail เพื่อควบคุมการทำงานของ Chatbot ให้ตอบเฉพาะเรื่องที่เกี่ยวข้องกับโรงพยาบาลของคุณเท่านั้น ซึ่งถ้าคุณไม่เขียนข้อจำกัดไว้ก็อาจมีคนมาใช้งาน Chatbot คุณไปทำงานอย่างอื่น ซึ่งจะก่อให้เกิดความเสียหายแก่ธุรกิจของคุณได้
สามารถศึกษาเรื่องการประยุกต์ใช้ Guardrail กับ Chatbot ได้ตาม Link นี้
เป็นเหตุการณ์ที่ LLM หรือ NLP สร้างข้อมูลหรือข้อความที่ไม่ตรงกับความเป็นจริงหรือไม่มีข้อมูลรองรับ ทำให้ผลลัพธ์ที่ได้ไม่ถูกต้อง
ซึ่งเกิดได้จากหลายสาเหตุ เช่น Training Data ที่ไม่สมบูรณ์หรือมีข้อมูลขยะเยอะเกินไป คำถามที่กำกวม หรือ Bias ของตัวโมเดลจากการข้อมูลที่เรียนรู้ ซึ่งอาจจะส่งผลกระทบต่อการใช้งานในส่วนงานที่ต้องการความแม่นยำสูง เช่น การแพทย์, กฎหมาย หรือ วิศวกรรม
คือโมเดล AI ขนาดใหญ่ที่ถูกฝึกฝนมาให้เข้าใจและสร้างภาษามนุษย์ได้ เป็นเหมือนสมองกลที่กินข้อมูลภาษามหาศาลเข้าไป แล้วเรียนรู้ที่จะเข้าใจความหมาย บริบท และวิธีการใช้ภาษาในรูปแบบต่าง ๆ ถูกพัฒนาต่อยอดมาจากอัลกอริทึม Deep Learning และเป็นโมเดลพื้นฐานของ Generative AI
ตัวอย่าง LLMs เช่น GPT4-o, Claude 3.5 Sonnet หรือ SeaLLM v3 โดยบางเจ้าก็จะมี Playground และ API สำหรับให้ developer ไปทดลองใช้งานโมเดลของตัวเองได้
สำหรับคนที่อยากทดลองใช้งาน SeaLLM ผ่าน LLM as a Service สามารถใช้งาน App Float16.cloud ได้ตามลิงก์ด้านล่าง
คือพฤติกรรมการเรียนรู้ของโมเดล AI ที่เรียนรู้รายละเอียดของ Train Data ชุดหนึ่งๆมากเกินไป ซึ่งนอกจากข้อมูลดีๆแล้วยังอาจเรียนไปถึงข้อมูล noise ด้วย ซึ่งเกิดได้ในกรณีที่โมเดลมีความซับซ้อน หากทายข้อมูลที่เคยเรียนรู้จะทายได้ถูกต้องแม่นยำมาก แต่เมื่อทำนายข้อมูลที่ไม่เคยรู้จักมาก่อนโมเดลจะตอบคำถามได้ไม่ถูกต้องและไม่สามารถทำงานได้ดีได้ในข้อมูลใหม่
เช่น สมมติเราสร้างโมเดลสำหรับทำนายว่ารูปภาพนี้เป็นเครื่องครัวหรือไม่ แล้วรูปภาพที่เราใช้เทรนเป็นรูปภาพที่มีฉากหลังติดเตาแก๊สหมด หากโมเดลเจอรูปภาพที่เป็นเครื่องครัวแต่ฉากหลังไม่มีเตาแก๊สก็อาจจะตอบว่าไม่ใช่เครื่องครัวก็เป็นได้
หรือใน LLM การเกิด Overfitting เช่น เราสร้างโมเดลสำหรับช่วยเขียนนิทาน ก็อาจจะได้คำตอบที่ใกล้เคียงกับข้อความที่ใช้ฝึกฝนมากๆ ไม่มีความคิดสร้างสรรค์ ซึ่งจำเป็นสำหรับโมเดลที่เกี่ยวข้องกับการสร้างสรรค์สิ่งใหม่ๆ หรือ Generative AI
ซึ่งนอกจาก Overfitting แล้ว ยังมี Underfitting ซึ่งก็คือการที่โมเดล AI มี Train Data น้อยเกินไป ทำให้ตอบคำถามไม่ถูก และมีความ Bias สูง
คือโมเดลที่ผ่านการฝึกฝนด้วยข้อมูลขนาดใหญ่มาแล้ว โดยโมเดลเหล่านี้มักจะถูกฝึกด้วยข้อมูลที่หลากหลายและครอบคลุม เพื่อให้สามารถเข้าใจและจัดการกับภาษาหรือข้อมูลที่หลากหลายได้อย่างมีประสิทธิภาพ
การฝึกโมเดลขนาดใหญ่จากศูนย์ (scratch) ต้องใช้ทรัพยากรและเวลาอย่างมาก แต่การใช้โมเดล pre-trained จะช่วยลดเวลาและทรัพยากรที่ต้องใช้ในการฝึกโมเดลใหม่ ทำให้สามารถนำโมเดลที่ผ่านการฝึกมาแล้วมาใช้และปรับปรุงเพิ่มเติม (fine-tuning) เพื่อให้เหมาะสมกับงานเฉพาะทางได้ง่ายขึ้น
ตัวอย่าง Pre-trained Model ทางภาษา เช่น Llama3, Gemma, Mamba เป็นต้น สามารถค้นหาโมเดลได้ใน Hugging Face
"Prompt" คือข้อความหรือคำถามที่เราป้อนให้ LLM ซึ่งทำหน้าที่เป็นคำสั่งให้ LLM นำข้อมูลและคำตอบออกมาให้ แต่คำตอบที่ออกมาอาจไม่ตรงกับที่เราต้องการเสมอไป ดังนั้นเราจำเป็นต้องทำกระบวนการ "Prompt Engineering" เพื่อให้คำตอบที่ได้มาเป็นผลลัพธ์ที่ตรงกับความต้องการของเรา
การทำ "Prompt Engineering" อาจเกิดขึ้นระหว่างการสร้าง Prompt หรือขณะถามคำถาม โดยการกำหนดเงื่อนไขต่างๆ ให้ชัดเจนมากขึ้น หรือการตั้งค่า LLM ให้มีคาแรคเตอร์หรือลักษณะการตอบคำถามตามที่เรากำหนด
คุณสามารถศึกษา Basic Prompting ได้ตามลิงก์ด้านล่าง
คือกระบวนการลดความละเอียดของค่าพารามิเตอร์ในโมเดล AI เพื่อให้โมเดลมีขนาดเล็กลง ประหยัดหน่วยความจำและทำงานได้เร็วขึ้น โดยไม่สูญเสียประสิทธิภาพมากนัก
สามารถดู Benchmark LLM Speed Inference จาก Float16 ได้ที่ลิงก์ด้านล่าง
เป็นเทคนิคที่ใช้ในการเพิ่มประสิทธิภาพของ LLM โดยการป้อนข้อมูลเฉพาะทางหรืออัปเดตข้อมูลให้กับโมเดล ทำให้โมเดลสามารถตอบคำถามที่เฉพาะทางมากขึ้นได้
เนื่องจาก Pre-trained Model ต่างๆ ถูกเทรนด้วยข้อมูลจำกัดช่วงเวลา หรือ ข้อมูลกว้างๆ ทำให้เราต้องนำข้อมูลที่เราต้องการให้โมเดลรู้มาฝึกฝนเพิ่มเอง แต่เราจะไม่ได้ทำการฝึกฝนตรงๆ เพราะการฝึกฝนโมเดลจำเป็นต้องใช้ทรัพยากรจำนวนมาก ดังนั้นกระบวนการ RAG จึงเป็นเทคนิคที่นิยมทำกัน ซึ่งมีขั้นตอนคร่าวๆ ดังนี้
นำข้อมูลเพิ่มเติมไป Embedding แปลงเป็น Vector และเก็บไว้ใน Vector Database
ป้อนคำถามกับ LLM
LLM แปลงคำถาม เป็น Vector และนำไปค้นหาข้อมูลที่เกี่ยวข้องใน Vector Database
LLM นำข้อมูลที่เกี่ยวข้องมาประมวลผลเป็นภาษามนุษย์ และ Response กลับไป
โดยสามารถศึกษาเกี่ยวกับ RAG เพิ่มเติมได้ตาม Link นี้
คือหน่วยย่อยที่สุดของข้อมูลที่ถูกแบ่งออกมาเพื่อการประมวลผล อาจเป็นคำ (words), อักขระ (characters), หรือหน่วยย่อยอื่นๆ ที่ใช้ในการวิเคราะห์และประมวลผลข้อมูล ซึ่งแต่ละโมเดล แต่ละภาษาจะใช้วิธีนับจำนวน Token ต่างกัน เป็นคำ พยางค์ หรืออักขระก็ได้
ส่วนใหญ่แล้ว LLM จะใช้ Token ในการบ่งบอกความเร็วในการทำงานเช่นกัน โดยจะเป็นหน่วย Token/Second หรือจำนวน Token ที่สามารถรับ หรือ ส่งออก ต่อวินาที ยิ่งมากก็แสดงว่าความเร็วในการตอบสนองก็จะเร็วมาก หรือ Pricing Model ของ LLM as a Service ก็จะคิดเป็นราคา ต่อ 1 Million Token เช่นกัน
สามารถทดลองใช้ Tokenizer Playground ได้ตามลิงก์ด้านล่าง
คือประเภทของ Database ชนิดหนึ่ง ที่ออกแบบมาเพื่อจัดเก็บและค้นหาข้อมูลในรูปแบบของเวกเตอร์ (vector) โดยทั่วไปแล้ว เวกเตอร์จะเป็นชุดของตัวเลขที่แทนค่าคุณลักษณะหรือข้อมูลต่าง ๆ เช่น ข้อมูลภาพ ข้อมูลข้อความ หรือข้อมูลเสียง ซึ่งการใช้เวกเตอร์ในการแทนค่าข้อมูลทำให้สามารถนำไปใช้ในงานที่ต้องการการคำนวณหรือการวิเคราะห์เชิงสถิติได้ง่ายขึ้น
Vector database มีความสำคัญในงาน LLM โดยเฉพาะกับการค้นหาที่มีความคล้ายคลึงกัน (Similarity) เช่น การค้นหาภาพที่คล้ายกัน การค้นหาข้อความที่มีความหมายคล้ายกัน หรือการค้นหาเสียงที่คล้ายกัน
ศึกษาเกี่ยวกับ Vector Database เพิ่มเติมได้ตามลิงก์ด้านล่าง