การเติบโตของโมเดลภาษาขนาดใหญ่ (LLMs) เป็นแนวโน้มสำคัญในโลกของการประมวลผลภาษาธรรมชาติ (NLP) จนนำไปสู่การใช้งานอย่างแพร่หลายในแอปพลิเคชันหลากหลาย อย่างไรก็ตาม ความก้าวหน้านี้มักมีลักษณะเฉพาะกลุ่ม โดย LLMs ส่วนใหญ่ที่พัฒนาโดยองค์กรที่มีทรัพยากรมากยังคงไม่เปิดให้สาธารณะเข้าถึงได้
ความเป็นเอกสิทธิ์นี้ทำให้เกิดคำถามสำคัญว่า จะเป็นอย่างไรหากมีวิธีทำให้ทุกคนสามารถเข้าถึงโมเดลภาษาทรงพลังเหล่านี้ได้อย่างเท่าเทียม? นี่คือจุดที่ BLOOM เข้ามามีบทบาท
บทความนี้ให้ภาพรวมครบถ้วนว่า BLOOM คืออะไร โดยเริ่มจากที่มาของโครงการ ต่อจากนั้นจะอธิบายสเปกทางเทคนิค วิธีใช้งาน ก่อนปิดท้ายด้วยข้อจำกัดและข้อพิจารณาด้านจริยธรรม
BLOOM คืออะไร?
BigScience Large Open-science Open-access Multilingual Language Model (ชื่อย่อ BLOOM) คือความก้าวหน้าอย่างยิ่งในการทำให้เทคโนโลยีโมเดลภาษาถูกทำให้เป็นประชาธิปไตย
พัฒนาร่วมกันโดยผู้มีส่วนร่วมกว่า 1200 คนจาก 39 ประเทศ รวมถึงจำนวนมากจากสหรัฐฯ BLOOM เป็นผลผลิตของความร่วมมือระดับโลก โครงการนี้ประสานงานโดย BigScience ร่วมกับ Hugging Face และชุมชน NLP ฝรั่งเศส ข้ามพรมแดนทั้งทางภูมิศาสตร์และสถาบัน
เป็นโอเพนซอร์สและเป็นโมเดลทรานส์ฟอร์เมอร์แบบดีโค้ดเดอร์เท่านั้น มีพารามิเตอร์ 176B ที่เทรนบนคอร์ปัส ROOTS ซึ่งเป็นชุดข้อมูลจากแหล่งที่มากกว่าหลายร้อยแหล่งใน 59 ภาษา: 46 ภาษาในชีวิตจริงและ 13 ภาษาสำหรับเขียนโปรแกรม
ด้านล่างเป็นไพชาร์ตแสดงสัดส่วนภาษาที่ใช้ในการเทรน
สัดส่วนภาษาที่ใช้ในการเทรน (ที่มา )
โมเดลให้ผลการทำงานที่โดดเด่นบนเบนช์มาร์กหลากหลาย และได้ผลลัพธ์ที่ดียิ่งขึ้นหลังการปรับจูนแบบ multitask prompted finetuning
โครงการนี้ปิดฉากด้วยการเทรนต่อเนื่อง 117 วัน (11 มีนาคม - 6 กรกฎาคม) บนซูเปอร์คอมพิวเตอร์ Jean Zay ในปารีส ด้วยการสนับสนุนทรัพยากรคอมพิวต์อย่างมากจากหน่วยงานวิจัยของฝรั่งเศส CNRS และ GENCI
BLOOM ไม่เพียงเป็นความมหัศจรรย์ทางเทคโนโลยี แต่ยังเป็นสัญลักษณ์ของความร่วมมือระหว่างประเทศและพลังของการแสวงหาวิทยาศาสตร์ร่วมกัน
สถาปัตยกรรมของโมเดล BLOOM
ต่อไปจะอธิบายสถาปัตยกรรมของ BLOOM อย่างละเอียดขึ้น ซึ่งประกอบด้วยองค์ประกอบหลายส่วน
สถาปัตยกรรม Bloom (ที่มา )
สถาปัตยกรรมของโมเดล BLOOM ตามที่ระบุไว้ในงานวิจัย มีประเด็นน่าสนใจหลายส่วน:
แนวทางการออกแบบ: ทีมเน้นตระกูลโมเดลที่สเกลขึ้นได้ โดยมีการรองรับในเครื่องมือและโค้ดสาธารณะ และทำการทดลองตัดองค์ประกอบ (ablation) บนโมเดลขนาดเล็กเพื่อหาค่าที่เหมาะสมทั้งคอมโพเนนต์และไฮเปอร์พารามิเตอร์ โดยใช้ความสามารถ zero-shot เป็นตัวชี้วัดหลักในการประเมินการตัดสินใจด้านสถาปัตยกรรม
สถาปัตยกรรมและวัตถุประสงค์การพรีเทรน: BLOOM อิงกับสถาปัตยกรรม Transformer โดยเฉพาะแบบ causal decoder-only แนวทางนี้ได้รับการยืนยันว่าให้ผลดีที่สุดสำหรับความสามารถ zero-shot เมื่อเทียบกับสถาปัตยกรรมแบบ encoder-decoder และ decoder-only แบบอื่น
รายละเอียดการจำลองแบบโมเดล:
ALiBi Positional Embeddings: เลือกใช้ ALiBi แทน positional embeddings แบบดั้งเดิม เพราะลดทอนคะแนน attention ตามระยะห่างระหว่างคีย์และคิวรีโดยตรง ส่งผลให้การเทรนลื่นไหลและมีประสิทธิภาพดีขึ้น
Embedding LayerNorm: เพิ่มชั้น layer normalization ทันทีหลังชั้น embedding เพื่อเพิ่มเสถียรภาพในการเทรน การตัดสินใจนี้ได้รับอิทธิพลบางส่วนจากการใช้ bfloat16 ในการเทรนขั้นสุดท้าย ซึ่งมีเสถียรภาพมากกว่า float16
องค์ประกอบเหล่านี้สะท้อนถึงการผสมผสานนวัตกรรมเข้ากับเทคนิคที่พิสูจน์แล้ว เพื่อเพิ่มประสิทธิภาพและเสถียรภาพของโมเดล
นอกเหนือจากสถาปัตยกรรมของ BLOOM มาดูอีกสององค์ประกอบที่เกี่ยวข้องคือ การเตรียมข้อมูลและชุดข้อมูลที่มีพรอมต์
การเตรีียมข้อมูล: มีขั้นตอนสำคัญอย่างการลบข้อมูลซ้ำและการปกปิดข้อมูลส่วนบุคคล โดยเฉพาะแหล่งข้อมูลที่มีความเสี่ยงด้านความเป็นส่วนตัวสูง
ชุดข้อมูลที่มีพรอมต์: BLOOM ใช้การปรับจูนแบบ multitask prompted finetuning ซึ่งแสดงความสามารถ zero-shot ที่แข็งแกร่ง
วิธีใช้งาน BLOOM
ในตัวอย่างนี้จะใช้ BLOOM เพื่อสร้างเรื่องสั้นเชิงสร้างสรรค์ โค้ดถูกจัดโครงสร้างเพื่อเตรียมสภาพแวดล้อม เตรียมโมเดล และสร้างข้อความจากพรอมต์ที่กำหนด ซอร์สโค้ดฉบับเต็มดูได้บน GitHub และแรงบันดาลใจหลักมาจาก บทเรียน ของ amrrs
ตั้งค่าพื้นที่ทำงาน
โมเดล BLOOM ใช้ทรัพยากรสูง จึงต้องตั้งค่าพื้นที่ทำงานอย่างเหมาะสม ขั้นตอนหลักมีดังนี้
ก่อนอื่น ไลบรารี transformer ใช้สำหรับอินเทอร์เฟซในการทำงานกับโมเดล BLOOM และโมเดลประเภททรานส์ฟอร์เมอร์อื่น ๆ โดยทั่วไป
!pip install transformers - qขับเคลื่อนโดย
ใช้ nvidia-smi เพื่อตรวจสอบคุณสมบัติของ GPU ที่มีอยู่ให้แน่ใจว่ามีทรัพยากรคำนวณเพียงพอสำหรับรันโมเดล
!nvidia- smiขับเคลื่อนโดย
นำเข้ามอดูลที่ต้องใช้จาก transformers และ torch โดย torch ใช้สำหรับตั้งค่า default tensor type เพื่อใช้ประโยชน์จากการเร่งด้วย GPU
จากนั้น ในเมื่อใช้ GPU จึงตั้งค่าไลบรารี torch ผ่านฟังก์ชัน set_default_tensor_type เพื่อให้แน่ใจว่าใช้ GPU
from transformers import AutoModelForCausalLM, AutoTokenizer, set_seed
import torch
torch. set_default_tensor_type( torch. cuda. FloatTensor) ขับเคลื่อนโดย
การใช้โมเดล BLOOM
โมเดลเป้าหมายที่ใช้คือ BLOOM ขนาด 7 พันล้านพารามิเตอร์ สามารถเข้าถึงได้จากที่เก็บของ BigScience บน Hubbing Face ภายใต้ bigscience/bloom-1b7 ซึ่งเป็นตัวระบุเฉพาะของโมเดล
model_ID = "bigscience/bloom-1b7" ขับเคลื่อนโดย
ถัดไป โหลดโมเดลและโทเคไนเซอร์ของ BLOOM ที่พรีเทรนจาก Hugging Face และตั้งค่า seed เพื่อการทำซ้ำผลลัพธ์ด้วยฟังก์ชัน set_seed โดยใช้ตัวเลขใดก็ได้ ค่าตัวเลขไม่สำคัญนัก แต่ควรเป็นค่าจำนวนเต็มไม่ใช่ทศนิยม
หากต้องการเรียนรู้ศักยภาพที่ยังไม่ถูกใช้ของโมเดลภาษาขนาดใหญ่ร่วมกับ LangChain ซึ่งเป็นเฟรมเวิร์ก Python แบบโอเพนซอร์สสำหรับสร้างแอปพลิเคชัน AI ขั้นสูง บทเรียน How to Build LLM Applications with LangChain Tutorial คือแนวทางที่เหมาะสม
นอกจากนี้ หากเป็นวิศวกรข้อมูลและสนใจการใช้ LangChain สำหรับแอปด้านข้อมูล บทความ Introduction to LangChain for Data Engineering & Data Applications จะให้ภาพรวมของสิ่งที่ทำได้ด้วย LangChain รวมถึงปัญหาที่ LangChain แก้ไขและตัวอย่างกรณีใช้งานด้านข้อมูล
model = AutoModelForCausalLM. from_pretrained( model_ID, use_cache= True )
tokenizer = AutoTokenizer. from_pretrained( model_ID)
set_seed( 2024 )
ขับเคลื่อนโดย
ตอนนี้สามารถกำหนดชื่อเรื่องของเรื่องสั้นที่จะสร้าง พร้อมกับพรอมต์ได้
story_title = 'An Unexpected Journey Through Time'
prompt = f'This is a creative story about { story_title} .\n' ขับเคลื่อนโดย
สุดท้าย ทำการโทเคไนซ์พรอมต์และแมปไปยังอุปกรณ์ของโมเดลที่เหมาะสม ก่อนจะสร้างผลลัพธ์ของโมเดลและถอดรหัส
input_ids = tokenizer( prompt, return_tensors= "pt" ) . to( 0 )
sample = model. generate( ** input_ids,
max_length= 200 , top_k= 1 ,
temperature= 0 , repetition_penalty= 2.0 )
generated_story = tokenizer. decode( sample[ 0 ] , skip_special_tokens= True ) ขับเคลื่อนโดย
ผลลัพธ์สุดท้ายถูกจัดรูปแบบด้วยมอดูล textwrap เพื่อจำกัดจำนวนอักขระสูงสุดต่อบรรทัดไว้ที่ 80 เพื่อให้อ่านง่าย
import textwrap
wrapper = textwrap. TextWrapper( width= 80 ) ขับเคลื่อนโดย
formated_story = wrapper. fill( text= generated_story)
print ( formated_story) ขับเคลื่อนโดย
ผลลัพธ์สุดท้ายเป็นดังนี้:
เรื่องสั้นที่สร้างด้วยโมเดล BLOOM
ด้วยโค้ดเพียงไม่กี่บรรทัด ก็สามารถสร้างเนื้อหาที่มีความหมายด้วยโมเดล BLOOM ได้
หากสนใจเรียนรู้กระบวนการเทรนโมเดลภาษาขนาดใหญ่ด้วย PyTorch ตั้งแต่ตั้งค่าจนถึงใช้งานจริง บทเรียน How to Train an LLM with PyTorch มีคู่มือครบถ้วนเพื่อไปถึงเป้าหมายนั้น
การใช้งานที่เหมาะสมและนอกขอบเขต
เช่นเดียวกับความก้าวหน้าทางเทคโนโลยีทุกชนิด BLOOM มาพร้อมชุดการใช้งานที่เหมาะสมและไม่เหมาะสม ส่วนนี้จะกล่าวถึงกรณีการใช้งานทั้งสองด้าน ชี้ให้เห็นว่าควรใช้ความสามารถของมันที่ใดและควรระวังที่ใด การเข้าใจขอบเขตเหล่านี้สำคัญต่อการใช้ BLOOM อย่างรับผิดชอบและมีประสิทธิผล
การใช้งาน BLOOM ที่ตั้งใจไว้
BLOOM เป็นเครื่องมืออเนกประสงค์ที่ออกแบบมาเพื่อขยายขอบเขตของการประมวลผลและการสร้างภาษาธรรมชาติ การใช้งานที่ตั้งใจไว้ครอบคลุมหลายสาขา โดยใช้ประโยชน์จากความสามารถด้านภาษาที่กว้างขวาง
การสร้างเนื้อหาหลายภาษา: ด้วยความเชี่ยวชาญใน 59 ภาษา BLOOM โดดเด่นในการสร้างเนื้อหาที่หลากหลายและครอบคลุม เหมาะอย่างยิ่งสำหรับการสื่อสารระดับโลก การศึกษา และสื่อที่ต้องให้ความสำคัญกับความครอบคลุมด้านภาษา
การเขียนโค้ดและพัฒนาซอฟต์แวร์: การที่ BLOOM เทรนกับภาษาสำหรับเขียนโปรแกรมทำให้เป็นทรัพยากรในงานพัฒนาซอฟต์แวร์ ช่วยงานอย่างการสร้างโค้ด การดีบัก และเป็นเครื่องมือการเรียนรู้สำหรับผู้เริ่มต้นเขียนโปรแกรม
งานวิจัยและวิชาการ: ในแวดวงวิชาการ BLOOM เป็นทรัพยากรทรงพลังสำหรับการวิเคราะห์ภาษาและวิจัย AI ให้ข้อมูลเชิงลึกเกี่ยวกับรูปแบบภาษา พฤติกรรมของ AI และอื่น ๆ
การใช้งานนอกขอบเขตของ BLOOM
การเข้าใจข้อจำกัดของ BLOOM เป็นสิ่งสำคัญเพื่อให้ใช้งานได้อย่างมีจริยธรรมและปฏิบัติได้จริง บางกรณีอยู่นอกเหนือวัตถุประสงค์ของ BLOOM LLM ด้วยเหตุผลด้านจริยธรรมหรือข้อจำกัดทางเทคนิค
การจัดการข้อมูลอ่อนไหว: BLOOM ไม่ได้ออกแบบมาเพื่อประมวลผลข้อมูลส่วนบุคคลที่อ่อนไหวหรือข้อมูลลับ ความเป็นไปได้ที่จะละเมิดความเป็นส่วนตัวหรือการใช้ข้อมูลผิดวัตถุประสงค์ทำให้ไม่เหมาะกับการใช้งานประเภทนี้
การตัดสินใจที่มีความเสี่ยงสูง: การใช้ BLOOM ในสถานการณ์ที่ต้องการความแม่นยำวิกฤต เช่น การวินิจฉัยทางการแพทย์หรือการตัดสินใจทางกฎหมาย ไม่ใช่สิ่งที่ควรกระทำ ข้อจำกัดของโมเดล เช่นเดียวกับโมเดลภาษาขนาดใหญ่ส่วนใหญ่ อาจนำไปสู่ผลลัพธ์ที่คลาดเคลื่อนหรือทำให้เข้าใจผิดในพื้นที่อ่อนไหวเหล่านี้
การทดแทนปฏิสัมพันธ์ของมนุษย์: BLOOM ไม่ควรถูกมองว่าเป็นตัวแทนแทนมนุษย์ โดยเฉพาะในสาขาที่ต้องใช้ความฉลาดทางอารมณ์ เช่น การให้คำปรึกษา การทูต หรือการสอนเฉพาะบุคคล โมเดลยังขาดความเข้าใจเชิงลึกและความเห็นอกเห็นใจที่ปฏิสัมพันธ์ของมนุษย์มอบให้
ผู้ใช้โดยตรงและโดยอ้อม
BLOOM ในฐานะโมเดลภาษาขนาดใหญ่ขั้นสูง มอบประโยชน์มากมายแก่กลุ่มผู้ใช้หลากหลาย ความสามารถของมันไม่เพียงส่งผลต่อผู้เชี่ยวชาญและภาคส่วนบางกลุ่มโดยตรง แต่ยังมีผลกว้างไกลที่ส่งผลต่อผู้มีส่วนได้ส่วนเสียวงกว้างโดยอ้อม
การสำรวจผู้ใช้ของ BLOOM นี้มุ่งชี้ให้เห็นว่ากลุ่มต่าง ๆ ใช้ประโยชน์และได้รับผลกระทบจากเครื่องมือใหม่นี้อย่างไร
ด้วยการทำความเข้าใจผู้ใช้โดยตรงและโดยอ้อมของ BLOOM เราจะเห็นอิทธิพลอันกว้างขวางของโมเดล และแนวทางหลากหลายที่ช่วยผลักดันเทคโนโลยีและสังคมให้ก้าวหน้า
ผู้ใช้ BLOOM โดยตรง
นักพัฒนาและนักวิทยาศาสตร์ข้อมูล: ผู้เชี่ยวชาญด้านซอฟต์แวร์และข้อมูลเป็นผู้ใช้หลัก ใช้ BLOOM เพื่อช่วยเขียนโค้ด ดีบัก และวิเคราะห์ข้อมูล
นักวิจัยและนักวิชาการ: รวมถึงนักภาษาศาสตร์ นักวิจัย AI และนักวิชาการที่ใช้ BLOOM เพื่อศึกษาภาษา วิเคราะห์พฤติกรรม AI และขับเคลื่อนงานวิจัยด้าน NLP
ผู้สร้างสรรค์เนื้อหาและนักแปล: นักเขียน นักข่าว และนักแปลใช้ BLOOM เพื่อสร้างและแปลเนื้อหาหลายภาษา ช่วยเพิ่มประสิทธิภาพและขยายการเข้าถึง
ผู้ใช้ BLOOM โดยอ้อม
ธุรกิจและองค์กร: บริษัทในหลายอุตสาหกรรมได้รับประโยชน์โดยอ้อมจากบริการ AI ที่ดียิ่งขึ้น การโต้ตอบกับลูกค้าที่ดีขึ้น และการจัดการข้อมูลที่มีประสิทธิภาพ
สถาบันการศึกษา: นักเรียนและครูได้รับประโยชน์โดยอ้อมผ่านเครื่องมือและทรัพยากรการเรียนรู้ที่ผสานความสามารถด้านการประมวลผลภาษาในการเรียนการสอน
สาธารณชนทั่วไป: ผู้คนวงกว้างได้รับประโยชน์โดยอ้อมจากประสบการณ์เทคโนโลยีที่ดีขึ้น การเข้าถึงเนื้อหาหลายภาษา และแอปพลิเคชันซอฟต์แวร์ที่มีประสิทธิภาพมากขึ้น
ข้อพิจารณาด้านจริยธรรมและข้อจำกัด
การใช้งาน BLOOM เช่นเดียวกับโมเดลภาษาขนาดใหญ่อื่น ๆ มาพร้อมข้อพิจารณาและข้อจำกัดด้านจริยธรรมหลายประการ ประเด็นเหล่านี้สำคัญต่อการใช้อย่างรับผิดชอบและการคาดการณ์ผลกระทบในวงกว้าง ส่วนนี้จะกล่าวถึงนัยยะทางจริยธรรม ความเสี่ยง และข้อจำกัดที่ติดตัวมากับการใช้ BLOOM
ข้อพิจารณาด้านจริยธรรม
อคติของข้อมูลและความเป็นธรรม: ข้อกังวลหลักคือความเป็นไปได้ที่ BLOOM จะสืบทอดหรือขยายอคติที่มีอยู่ในข้อมูลเทรน ซึ่งอาจกระทบความเป็นธรรมและความเป็นกลางของผลลัพธ์ ก่อให้เกิดความท้าทายเชิงจริยธรรมในสถานการณ์ที่ต้องการการประมวลผลอย่างไร้อคติ
ความเป็นส่วนตัว: แม้ BLOOM ไม่ได้ออกแบบมาเพื่อจัดการข้อมูลส่วนบุคคลอ่อนไหว แต่ความกว้างใหญ่ของข้อมูลเทรน อาจมีข้อมูลดังกล่าวปะปนอยู่ มีความเสี่ยงในการละเมิดความเป็นส่วนตัวหาก BLOOM สร้างผลลัพธ์ที่อิงหรือเปิดเผยข้อมูลอ่อนไหว
ความเสี่ยงที่เกี่ยวข้องกับการใช้งาน
ข้อมูลบิดเบือนและการชักจูง: ความสามารถขั้นสูงของ BLOOM อาจถูกใช้ในทางที่ผิดเพื่อสร้างข้อมูลที่ทำให้เข้าใจผิดหรือชักจูง ซึ่งเป็นความเสี่ยงสำคัญในสื่อ การเมือง และความคิดเห็นสาธารณะ
การพึ่งพามากเกินไปและทักษะเสื่อมถอย: การพึ่งพา BLOOM มากเกินไปในงานอย่างการสร้างเนื้อหาหรือการแปล อาจทำให้ทักษะเหล่านี้ของมนุษย์เสื่อมถอย ส่งผลต่อความคิดสร้างสรรค์และความสามารถทางภาษา
ข้อจำกัดของ BLOOM
ความเข้าใจตามบริบท: แม้จะซับซ้อน แต่ BLOOM อาจขาดความเข้าใจเชิงบริบทและวัฒนธรรมที่ลึกซึ้งซึ่งจำเป็นต่อบางงาน ทำให้เกิดความคลาดเคลื่อนหรือผลลัพธ์ที่ไม่เหมาะสมในสถานการณ์ที่มีนัยละเอียดอ่อน
ภาษาที่เปลี่ยนแปลงตลอดเวลา: การที่ BLOOM เทรนบนชุดข้อมูลคงที่ทำให้อาจไม่ทันต่อวิวัฒนาการของภาษา เช่น สแลง ศัพท์ใหม่ หรืออ้างอิงทางวัฒนธรรมล่าสุด
ผลกระทบในโลกจริงและข้อถกเถียง
การพัฒนาและการปล่อย BLOOM มีนัยสำคัญในโลกจริง ทั้งด้านผลกระทบและข้อถกเถียงที่เกิดขึ้น ส่วนนี้จะกล่าวถึงประเด็นเหล่านั้น โดยอ้างอิงจากข้อค้นพบในงานวิจัยของ BLOOM
ผลกระทบในโลกจริงของ BLOOM
การทำให้เทคโนโลยี AI เข้าถึงได้: BLOOM เป็นก้าวสำคัญในการทำให้ AI เป็นของสาธารณะ พัฒนาโดย BigScience ซึ่งเป็นความร่วมมือของผู้คนกว่า 1200 คนจาก 38 ประเทศ BLOOM เป็นโมเดลแบบเข้าถึงได้สาธารณะ เทรนบนคอร์ปัสที่หลากหลายครอบคลุม 59 ภาษา การมีส่วนร่วมที่กว้างและการเข้าถึงได้นี้ต่างจากความเป็นเอกสิทธิ์ที่มักพบในการพัฒนาโมเดลภาษาขนาดใหญ่
ความหลากหลายและการครอบคลุม: โครงการให้ความสำคัญกับความหลากหลายด้านภาษา ภูมิศาสตร์ และศาสตร์ คอร์ปัส ROOTS ที่ใช้เทรนครอบคลุมภาษาธรรมชาติและภาษาสำหรับเขียนโปรแกรมจำนวนมาก สะท้อนการให้ความสำคัญกับความครอบคลุมและตัวแทนที่เหมาะสมในการพัฒนา AI
ข้อถกเถียงและความท้าทาย
ประเด็นสังคมและจริยธรรม: การพัฒนา BLOOM ตระหนักถึงข้อจำกัดทางสังคมและความท้าทายทางจริยธรรมในการพัฒนาโมเดลภาษาขนาดใหญ่ เวิร์กช็อป BigScience ใช้ Ethical Charter กำกับโครงการ โดยเน้นความครอบคลุม ความหลากหลาย ความเปิดกว้าง ความทำซ้ำได้ และความรับผิดชอบ หลักการเหล่านี้ถูกรวมไว้ในหลายส่วนของโครงการ ตั้งแต่การคัดสรรชุดข้อมูลจนถึงการประเมินโมเดล
ประเด็นสิ่งแวดล้อมและทรัพยากร: การพัฒนาโมเดลภาษาขนาดใหญ่อย่าง BLOOM ทำให้เกิดข้อกังวลด้านสิ่งแวดล้อม เนื่องจากต้องใช้ทรัพยากรคอมพิวต์จำนวนมาก การเทรนโมเดลที่โดยทั่วไปมีแต่หน่วยงานที่มีทรัพยากรสูงทำได้ ย่อมมีนัยต่อการใช้พลังงานและคาร์บอนฟุตพริ้นต์
BLOOM ยังมีความสำคัญอยู่หรือไม่ในวันนี้?
ในโลก AI ที่ก้าวเร็ว ความเกี่ยวข้องของโมเดลภาษาขนาดใหญ่อย่าง BLOOM เป็นหัวข้อที่ถูกพูดถึงอย่างต่อเนื่อง
BLOOM ซึ่งพัฒนาโดยทีมวิจัยนานาชาติขนาดใหญ่ เป็นก้าวกระโดดสำคัญด้านการประมวลผลภาษา แต่ภูมิทัศน์ของ AI ก็กำลังเปลี่ยนแปลงอยู่เสมอ โดยมีโมเดลใหม่ ๆ ปรากฏและเปลี่ยนจุดสนใจ
มาดูกันว่า BLOOM ยังยืนหยัดได้หรือไม่ในสนามที่แข่งขันสูงนี้
การเปลี่ยนจุดสนใจ: จากที่เคยเป็นความก้าวหน้าครั้งใหญ่ ปัจจุบัน BLOOM อยู่ใต้เงาของโมเดลใหม่ ๆ ต่างจาก AI เชิงสนทนาอย่าง ChatGPT BLOOM ถูกออกแบบเพื่อการเติมข้อความมากกว่าการสื่อสารแบบโต้ตอบ
ข้อจำกัดด้านฮาร์ดแวร์: ความต้องการฮาร์ดแวร์สูงของ BLOOM ทำให้การเข้าถึงจำกัด เมื่อเทียบกับ LLMs ที่เป็นมิตรต่อผู้ใช้กว่าอย่าง GPT-3.5 และ GPT-4 ซึ่งผนวกรวมเข้ากับแอปต่าง ๆ ได้ง่ายกว่า
การแข่งขันที่เพิ่มขึ้น: การมาของโมเดลอย่าง LLaMA และเครื่องมืออย่าง Alpaca ทำให้การเข้าถึง LLMs เป็นประชาธิปไตยมากขึ้น มอบความสามารถที่ต้องใช้ทรัพยากรน้อยลง จึงขยายความนิยมและการใช้งาน
ความสามารถหลายภาษา: สิ่งที่โดดเด่นของ BLOOM คือการเทรนในหลายภาษาอย่างกว้างขวาง จึงเป็นทรัพยากรที่มีค่าสำหรับงานแปลและการสร้างเนื้อหาหลายภาษา
สรุป
บทความนี้นำเสนอภาพรวมของโครงการ BLOOM ซึ่งเป็นผลงานสำคัญในสาขาโมเดลภาษาขนาดใหญ่ที่กำลังพัฒนาอย่างต่อเนื่อง
เราได้สำรวจพัฒนาการของ BLOOM เน้นสเปกทางเทคนิคและความร่วมมือเบื้องหลังการสร้าง บทความยังทำหน้าที่เป็นคู่มือในการเข้าถึงและใช้งาน BLOOM อย่างมีประสิทธิภาพ โดยเน้นการใช้งานที่เหมาะสมและข้อจำกัด
ยิ่งไปกว่านั้น ยังครอบคลุมประเด็นจริยธรรมและผลกระทบในโลกจริงของโครงการ BLOOM AI สะท้อนการตอบรับและความเกี่ยวข้องในภูมิทัศน์ AI ปัจจุบัน ไม่ว่าจะทำงานด้าน AI โดยตรงหรือเป็นผู้สนใจ การสำรวจ BLOOM ครั้งนี้มอบมุมมองสำคัญเพื่อก้าวผ่านโลกที่ซับซ้อนของโมเดลภาษาขนาดใหญ่
สำหรับผู้ที่ต้องการต่อยอดการเรียนรู้เกี่ยวกับโมเดลภาษาขั้นสูง หลักสูตร Large Language Models (LLMs) Concepts จะพาไปค้นหาศักยภาพของ LLMs ด้วยคอร์สแนวคิดที่ครอบคลุมการใช้งาน วิธีการเทรน ประเด็นจริยธรรม และงานวิจัยล่าสุด
การเติบโตของโมเดลภาษาขนาดใหญ่ (LLMs) เป็นแนวโน้มสำคัญในโลกของการประมวลผลภาษาธรรมชาติ (NLP) จนนำไปสู่การใช้งานอย่างแพร่หลายในแอปพลิเคชันหลากหลาย อย่างไรก็ตาม ความก้าวหน้านี้มักมีลักษณะเฉพาะกลุ่ม โดย LLMs ส่วนใหญ่ที่พัฒนาโดยองค์กรที่มีทรัพยากรมากยังคงไม่เปิดให้สาธารณะเข้าถึงได้
ความเป็นเอกสิทธิ์นี้ทำให้เกิดคำถามสำคัญว่า จะเป็นอย่างไรหากมีวิธีทำให้ทุกคนสามารถเข้าถึงโมเดลภาษาทรงพลังเหล่านี้ได้อย่างเท่าเทียม? นี่คือจุดที่ BLOOM เข้ามามีบทบาท
บทความนี้ให้ภาพรวมครบถ้วนว่า BLOOM คืออะไร โดยเริ่มจากที่มาของโครงการ ต่อจากนั้นจะอธิบายสเปกทางเทคนิค วิธีใช้งาน ก่อนปิดท้ายด้วยข้อจำกัดและข้อพิจารณาด้านจริยธรรม
BLOOM คืออะไร?
BigScience Large Open-science Open-access Multilingual Language Model (ชื่อย่อ BLOOM) คือความก้าวหน้าอย่างยิ่งในการทำให้เทคโนโลยีโมเดลภาษาถูกทำให้เป็นประชาธิปไตย
พัฒนาร่วมกันโดยผู้มีส่วนร่วมกว่า 1200 คนจาก 39 ประเทศ รวมถึงจำนวนมากจากสหรัฐฯ BLOOM เป็นผลผลิตของความร่วมมือระดับโลก โครงการนี้ประสานงานโดย BigScience ร่วมกับ Hugging Face และชุมชน NLP ฝรั่งเศส ข้ามพรมแดนทั้งทางภูมิศาสตร์และสถาบัน
เป็นโอเพนซอร์สและเป็นโมเดลทรานส์ฟอร์เมอร์แบบดีโค้ดเดอร์เท่านั้น มีพารามิเตอร์ 176B ที่เทรนบนคอร์ปัส ROOTS ซึ่งเป็นชุดข้อมูลจากแหล่งที่มากกว่าหลายร้อยแหล่งใน 59 ภาษา: 46 ภาษาในชีวิตจริงและ 13 ภาษาสำหรับเขียนโปรแกรม
ด้านล่างเป็นไพชาร์ตแสดงสัดส่วนภาษาที่ใช้ในการเทรน
สัดส่วนภาษาที่ใช้ในการเทรน (ที่มา)
โมเดลให้ผลการทำงานที่โดดเด่นบนเบนช์มาร์กหลากหลาย และได้ผลลัพธ์ที่ดียิ่งขึ้นหลังการปรับจูนแบบ multitask prompted finetuning
โครงการนี้ปิดฉากด้วยการเทรนต่อเนื่อง 117 วัน (11 มีนาคม - 6 กรกฎาคม) บนซูเปอร์คอมพิวเตอร์ Jean Zay ในปารีส ด้วยการสนับสนุนทรัพยากรคอมพิวต์อย่างมากจากหน่วยงานวิจัยของฝรั่งเศส CNRS และ GENCI
BLOOM ไม่เพียงเป็นความมหัศจรรย์ทางเทคโนโลยี แต่ยังเป็นสัญลักษณ์ของความร่วมมือระหว่างประเทศและพลังของการแสวงหาวิทยาศาสตร์ร่วมกัน
สถาปัตยกรรมของโมเดล BLOOM
ต่อไปจะอธิบายสถาปัตยกรรมของ BLOOM อย่างละเอียดขึ้น ซึ่งประกอบด้วยองค์ประกอบหลายส่วน
สถาปัตยกรรม Bloom (ที่มา)
สถาปัตยกรรมของโมเดล BLOOM ตามที่ระบุไว้ในงานวิจัย มีประเด็นน่าสนใจหลายส่วน:
องค์ประกอบเหล่านี้สะท้อนถึงการผสมผสานนวัตกรรมเข้ากับเทคนิคที่พิสูจน์แล้ว เพื่อเพิ่มประสิทธิภาพและเสถียรภาพของโมเดล
นอกเหนือจากสถาปัตยกรรมของ BLOOM มาดูอีกสององค์ประกอบที่เกี่ยวข้องคือ การเตรียมข้อมูลและชุดข้อมูลที่มีพรอมต์
วิธีใช้งาน BLOOM
ในตัวอย่างนี้จะใช้ BLOOM เพื่อสร้างเรื่องสั้นเชิงสร้างสรรค์ โค้ดถูกจัดโครงสร้างเพื่อเตรียมสภาพแวดล้อม เตรียมโมเดล และสร้างข้อความจากพรอมต์ที่กำหนด ซอร์สโค้ดฉบับเต็มดูได้บน GitHub และแรงบันดาลใจหลักมาจาก บทเรียนของ amrrs
ตั้งค่าพื้นที่ทำงาน
โมเดล BLOOM ใช้ทรัพยากรสูง จึงต้องตั้งค่าพื้นที่ทำงานอย่างเหมาะสม ขั้นตอนหลักมีดังนี้
ก่อนอื่น ไลบรารี transformer ใช้สำหรับอินเทอร์เฟซในการทำงานกับโมเดล BLOOM และโมเดลประเภททรานส์ฟอร์เมอร์อื่น ๆ โดยทั่วไป
ใช้ nvidia-smi เพื่อตรวจสอบคุณสมบัติของ GPU ที่มีอยู่ให้แน่ใจว่ามีทรัพยากรคำนวณเพียงพอสำหรับรันโมเดล
นำเข้ามอดูลที่ต้องใช้จาก transformers และ torch โดย torch ใช้สำหรับตั้งค่า default tensor type เพื่อใช้ประโยชน์จากการเร่งด้วย GPU
จากนั้น ในเมื่อใช้ GPU จึงตั้งค่าไลบรารี torch ผ่านฟังก์ชัน set_default_tensor_type เพื่อให้แน่ใจว่าใช้ GPU
การใช้โมเดล BLOOM
โมเดลเป้าหมายที่ใช้คือ BLOOM ขนาด 7 พันล้านพารามิเตอร์ สามารถเข้าถึงได้จากที่เก็บของ BigScience บน Hubbing Face ภายใต้ bigscience/bloom-1b7 ซึ่งเป็นตัวระบุเฉพาะของโมเดล
ถัดไป โหลดโมเดลและโทเคไนเซอร์ของ BLOOM ที่พรีเทรนจาก Hugging Face และตั้งค่า seed เพื่อการทำซ้ำผลลัพธ์ด้วยฟังก์ชัน set_seed โดยใช้ตัวเลขใดก็ได้ ค่าตัวเลขไม่สำคัญนัก แต่ควรเป็นค่าจำนวนเต็มไม่ใช่ทศนิยม
หากต้องการเรียนรู้ศักยภาพที่ยังไม่ถูกใช้ของโมเดลภาษาขนาดใหญ่ร่วมกับ LangChain ซึ่งเป็นเฟรมเวิร์ก Python แบบโอเพนซอร์สสำหรับสร้างแอปพลิเคชัน AI ขั้นสูง บทเรียน How to Build LLM Applications with LangChain Tutorial คือแนวทางที่เหมาะสม
นอกจากนี้ หากเป็นวิศวกรข้อมูลและสนใจการใช้ LangChain สำหรับแอปด้านข้อมูล บทความ Introduction to LangChain for Data Engineering & Data Applications จะให้ภาพรวมของสิ่งที่ทำได้ด้วย LangChain รวมถึงปัญหาที่ LangChain แก้ไขและตัวอย่างกรณีใช้งานด้านข้อมูล
ตอนนี้สามารถกำหนดชื่อเรื่องของเรื่องสั้นที่จะสร้าง พร้อมกับพรอมต์ได้
สุดท้าย ทำการโทเคไนซ์พรอมต์และแมปไปยังอุปกรณ์ของโมเดลที่เหมาะสม ก่อนจะสร้างผลลัพธ์ของโมเดลและถอดรหัส
ผลลัพธ์สุดท้ายถูกจัดรูปแบบด้วยมอดูล textwrap เพื่อจำกัดจำนวนอักขระสูงสุดต่อบรรทัดไว้ที่ 80 เพื่อให้อ่านง่าย
ผลลัพธ์สุดท้ายเป็นดังนี้:
เรื่องสั้นที่สร้างด้วยโมเดล BLOOM
ด้วยโค้ดเพียงไม่กี่บรรทัด ก็สามารถสร้างเนื้อหาที่มีความหมายด้วยโมเดล BLOOM ได้
หากสนใจเรียนรู้กระบวนการเทรนโมเดลภาษาขนาดใหญ่ด้วย PyTorch ตั้งแต่ตั้งค่าจนถึงใช้งานจริง บทเรียน How to Train an LLM with PyTorch มีคู่มือครบถ้วนเพื่อไปถึงเป้าหมายนั้น
การใช้งานที่เหมาะสมและนอกขอบเขต
เช่นเดียวกับความก้าวหน้าทางเทคโนโลยีทุกชนิด BLOOM มาพร้อมชุดการใช้งานที่เหมาะสมและไม่เหมาะสม ส่วนนี้จะกล่าวถึงกรณีการใช้งานทั้งสองด้าน ชี้ให้เห็นว่าควรใช้ความสามารถของมันที่ใดและควรระวังที่ใด การเข้าใจขอบเขตเหล่านี้สำคัญต่อการใช้ BLOOM อย่างรับผิดชอบและมีประสิทธิผล
การใช้งาน BLOOM ที่ตั้งใจไว้
BLOOM เป็นเครื่องมืออเนกประสงค์ที่ออกแบบมาเพื่อขยายขอบเขตของการประมวลผลและการสร้างภาษาธรรมชาติ การใช้งานที่ตั้งใจไว้ครอบคลุมหลายสาขา โดยใช้ประโยชน์จากความสามารถด้านภาษาที่กว้างขวาง
การใช้งานนอกขอบเขตของ BLOOM
การเข้าใจข้อจำกัดของ BLOOM เป็นสิ่งสำคัญเพื่อให้ใช้งานได้อย่างมีจริยธรรมและปฏิบัติได้จริง บางกรณีอยู่นอกเหนือวัตถุประสงค์ของ BLOOM LLM ด้วยเหตุผลด้านจริยธรรมหรือข้อจำกัดทางเทคนิค
ผู้ใช้โดยตรงและโดยอ้อม
BLOOM ในฐานะโมเดลภาษาขนาดใหญ่ขั้นสูง มอบประโยชน์มากมายแก่กลุ่มผู้ใช้หลากหลาย ความสามารถของมันไม่เพียงส่งผลต่อผู้เชี่ยวชาญและภาคส่วนบางกลุ่มโดยตรง แต่ยังมีผลกว้างไกลที่ส่งผลต่อผู้มีส่วนได้ส่วนเสียวงกว้างโดยอ้อม
การสำรวจผู้ใช้ของ BLOOM นี้มุ่งชี้ให้เห็นว่ากลุ่มต่าง ๆ ใช้ประโยชน์และได้รับผลกระทบจากเครื่องมือใหม่นี้อย่างไร
ด้วยการทำความเข้าใจผู้ใช้โดยตรงและโดยอ้อมของ BLOOM เราจะเห็นอิทธิพลอันกว้างขวางของโมเดล และแนวทางหลากหลายที่ช่วยผลักดันเทคโนโลยีและสังคมให้ก้าวหน้า
ผู้ใช้ BLOOM โดยตรง
ผู้ใช้ BLOOM โดยอ้อม
ข้อพิจารณาด้านจริยธรรมและข้อจำกัด
การใช้งาน BLOOM เช่นเดียวกับโมเดลภาษาขนาดใหญ่อื่น ๆ มาพร้อมข้อพิจารณาและข้อจำกัดด้านจริยธรรมหลายประการ ประเด็นเหล่านี้สำคัญต่อการใช้อย่างรับผิดชอบและการคาดการณ์ผลกระทบในวงกว้าง ส่วนนี้จะกล่าวถึงนัยยะทางจริยธรรม ความเสี่ยง และข้อจำกัดที่ติดตัวมากับการใช้ BLOOM
ข้อพิจารณาด้านจริยธรรม
ความเสี่ยงที่เกี่ยวข้องกับการใช้งาน
ข้อจำกัดของ BLOOM
ผลกระทบในโลกจริงและข้อถกเถียง
การพัฒนาและการปล่อย BLOOM มีนัยสำคัญในโลกจริง ทั้งด้านผลกระทบและข้อถกเถียงที่เกิดขึ้น ส่วนนี้จะกล่าวถึงประเด็นเหล่านั้น โดยอ้างอิงจากข้อค้นพบในงานวิจัยของ BLOOM
ผลกระทบในโลกจริงของ BLOOM
ข้อถกเถียงและความท้าทาย
BLOOM ยังมีความสำคัญอยู่หรือไม่ในวันนี้?
ในโลก AI ที่ก้าวเร็ว ความเกี่ยวข้องของโมเดลภาษาขนาดใหญ่อย่าง BLOOM เป็นหัวข้อที่ถูกพูดถึงอย่างต่อเนื่อง
BLOOM ซึ่งพัฒนาโดยทีมวิจัยนานาชาติขนาดใหญ่ เป็นก้าวกระโดดสำคัญด้านการประมวลผลภาษา แต่ภูมิทัศน์ของ AI ก็กำลังเปลี่ยนแปลงอยู่เสมอ โดยมีโมเดลใหม่ ๆ ปรากฏและเปลี่ยนจุดสนใจ
มาดูกันว่า BLOOM ยังยืนหยัดได้หรือไม่ในสนามที่แข่งขันสูงนี้
สรุป
บทความนี้นำเสนอภาพรวมของโครงการ BLOOM ซึ่งเป็นผลงานสำคัญในสาขาโมเดลภาษาขนาดใหญ่ที่กำลังพัฒนาอย่างต่อเนื่อง
เราได้สำรวจพัฒนาการของ BLOOM เน้นสเปกทางเทคนิคและความร่วมมือเบื้องหลังการสร้าง บทความยังทำหน้าที่เป็นคู่มือในการเข้าถึงและใช้งาน BLOOM อย่างมีประสิทธิภาพ โดยเน้นการใช้งานที่เหมาะสมและข้อจำกัด
ยิ่งไปกว่านั้น ยังครอบคลุมประเด็นจริยธรรมและผลกระทบในโลกจริงของโครงการ BLOOM AI สะท้อนการตอบรับและความเกี่ยวข้องในภูมิทัศน์ AI ปัจจุบัน ไม่ว่าจะทำงานด้าน AI โดยตรงหรือเป็นผู้สนใจ การสำรวจ BLOOM ครั้งนี้มอบมุมมองสำคัญเพื่อก้าวผ่านโลกที่ซับซ้อนของโมเดลภาษาขนาดใหญ่
สำหรับผู้ที่ต้องการต่อยอดการเรียนรู้เกี่ยวกับโมเดลภาษาขั้นสูง หลักสูตร Large Language Models (LLMs) Concepts จะพาไปค้นหาศักยภาพของ LLMs ด้วยคอร์สแนวคิดที่ครอบคลุมการใช้งาน วิธีการเทรน ประเด็นจริยธรรม และงานวิจัยล่าสุด