เทคโนโลยี Embedding ถูกประเมินค่าต่ำเกินไป
(technicalwriting.dev)- แมชชีนเลิร์นนิง (ML) มีศักยภาพในการพัฒนาแนวทางล้ำสมัยของการเขียนเอกสารทางเทคนิค
- ML ที่อาจส่งผลต่อการเขียนเอกสารทางเทคนิคมากที่สุดไม่ใช่โมเดลสร้างข้อความอย่าง Claude, Gemini, LLaMa หรือ GPT แต่คือ embedding
- embedding ไม่ใช่เรื่องใหม่เสียทีเดียว แต่ในช่วงไม่กี่ปีที่ผ่านมาเข้าถึงได้กว้างขวางขึ้นมาก
- embedding มอบ ความสามารถในการค้นพบความเชื่อมโยงระหว่างข้อความในสเกลที่ก่อนหน้านี้เป็นไปไม่ได้ ให้กับนักเขียนเอกสารทางเทคนิค
สร้างความเข้าใจเชิงสัญชาตญาณเกี่ยวกับ embedding
อินพุตและเอาต์พุต
- สิ่งที่ป้อนเข้าไปเพื่อสร้าง embedding คือข้อความ
- ไม่จำเป็นต้องป้อนข้อความในปริมาณเท่ากันทุกครั้ง
- บางครั้งอินพุตอาจเป็นย่อหน้าเดียว บางครั้งอาจเป็นหลายเซกชัน ทั้งเอกสาร หรือหลายเอกสารรวมกัน
- เอาต์พุตคืออาร์เรย์ของตัวเลข
- หากป้อนคำเดียว เอาต์พุตจะเป็นอาร์เรย์ตัวเลขอย่าง
[-0.02387, -0.0353, 0.0456] - หากป้อนชุดเอกสารทั้งหมด เอาต์พุตก็จะอยู่ในรูปแบบอย่าง
[0.0451, -0.0154, 0.0020]
- หากป้อนคำเดียว เอาต์พุตจะเป็นอาร์เรย์ตัวเลขอย่าง
- ไม่ว่าอินพุตจะมีขนาดเท่าใด ก็จะได้จำนวนตัวเลขเท่าเดิมเสมอ
- สิ่งนี้ทำให้เราได้ วิธีเปรียบเทียบข้อความใด ๆ สองชุดเข้าหากันด้วยคณิตศาสตร์
- ใน embedding จริง อาร์เรย์จะมีตัวเลขหลายร้อยหรือหลายพันตัว ไม่ใช่แค่ 3 ตัว
วิธีสร้าง embedding
- ผู้ให้บริการรายใหญ่ทำให้การสร้าง embedding เป็นเรื่องง่าย
- โมเดล
text-embedding-004ของ Gemini จะคืนค่าอาร์เรย์ตัวเลข 768 ตัว และโมเดลvoyage-3ของ Voyage AI จะคืนค่าอาร์เรย์ตัวเลข 1024 ตัว - embedding จากผู้ให้บริการต่างกันไม่สามารถใช้ร่วมกันได้
แพงไหม?
ไม่แพง
ส่งผลเสียต่อสิ่งแวดล้อมไหม?
- การสร้าง embedding ใช้การคำนวณเข้มข้นน้อยกว่าการสร้างข้อความ
- อย่างไรก็ตาม ดูเหมือนว่าโมเดล embedding จะถูกฝึกในลักษณะคล้ายกับโมเดลสร้างข้อความ ซึ่งย่อมหมายถึงการใช้พลังงาน
- หากทราบข้อมูลเพิ่มเติม จะอัปเดตส่วนนี้ภายหลัง
โมเดลไหนดีที่สุด?
- ในอุดมคติ โมเดล embedding ควรรับข้อความอินพุตจำนวนมากได้ เพื่อให้สามารถสร้าง embedding สำหรับหน้าเอกสารทั้งหน้าได้
- ณ เดือนตุลาคม 2024 เมื่อพิจารณาจากขนาดอินพุต
voyage-3ดูจะโดดเด่นที่สุด - ข้อจำกัดของอินพุตอิงตามโทเค็น และแต่ละบริการก็นับโทเค็นต่างกัน ดังนั้นไม่ควรให้น้ำหนักกับตัวเลขที่แน่นอนมากเกินไป
พื้นที่หลายมิติอันแปลกประหลาดมาก
- ตัวเลขใน embedding มีความหมายว่าอะไร?
- ลองนึกถึง พิกัดบนแผนที่
- embedding คล้ายกับจุดบนแผนที่
- ตัวเลขแต่ละตัวในอาร์เรย์ embedding เปรียบได้กับมิติอย่างพิกัด X และ Y
- หากโมเดล embedding คืนค่าอาร์เรย์ที่มีตัวเลข 1000 ตัว นั่นหมายความว่ามันบอกตำแหน่งที่ข้อความนั้นอยู่ในปริภูมิ 1000 มิติ เมื่อเทียบเชิงความหมายกับข้อความอื่นทั้งหมด
- เมื่อเปรียบเทียบระยะห่างระหว่าง embedding สองชุด สิ่งที่เราทำจริง ๆ คือ ดูว่าข้อความสองชุดใกล้หรือไกลกันเพียงใดในเชิงความหมาย
- แนวคิดในการวางรายการลงในพื้นที่หลายมิติเช่นนี้ ซึ่งรายการที่เกี่ยวข้องกันจะจับกลุ่มอยู่ใกล้กัน เรียกว่า latent space
- ตัวอย่างที่มีชื่อเสียงจาก บทความ Word2vec:
- embedding("king") - embedding("man") + embedding("woman") ≈ embedding("queen")
- embedding สามารถแสดงความสัมพันธ์เชิงความหมายในแบบที่มนุษย์รู้สึกว่าเข้าใจได้โดยสัญชาตญาณ
- embedding ทำงานในหลายร้อยหรือหลายพันมิติ ดังนั้นสิ่งมีชีวิตสามมิติอย่างมนุษย์จึงไม่อาจมองภาพได้ว่า “ระยะห่าง” ใน 1000 มิติหน้าตาเป็นอย่างไร
- เราไม่รู้ได้เลยว่าแต่ละมิติแทนอะไร
การเปรียบเทียบ embedding
- หลังจากสร้าง embedding แล้ว จำเป็นต้องมี "ฐานข้อมูล" บางอย่างเพื่อคอยติดตามว่า embedding แต่ละชุดเชื่อมโยงกับข้อความใด
- มีพีชคณิตเชิงเส้นเข้ามาเกี่ยวข้องมาก และไลบรารีด้านคณิตศาสตร์และ ML อย่าง NumPy และ scikit-learn สามารถช่วยจัดการงานหนักได้
การประยุกต์ใช้งาน
- มาดูโดยตรงว่า embedding สามารถพัฒนาแนวทางล้ำสมัยของการเขียนเอกสารทางเทคนิคได้อย่างไร
ปล่อยให้ embedding นับพันดอกเบ่งบาน
- ในฐานะเจ้าของเว็บไซต์เอกสาร ผู้เขียนสงสัยว่าควรเปิดให้ผู้ที่ต้องการ embedding ของคอนเทนต์เข้าถึงได้อย่างเสรีผ่าน REST API หรือ well-known URI หรือไม่
- ยังไม่อาจรู้ได้ว่าชุมชนจะสร้างสิ่งเจ๋ง ๆ อะไรได้บ้างจากข้อมูลเอกสารประเภทเพิ่มเติมนี้
บทส่งท้าย
- หากเมื่อ 3 ปีก่อนมีคนถามว่า ปริภูมิ 768 มิติคืออะไร ก็คงตอบได้เพียงว่าเป็นแนวคิดนามธรรมที่นักฟิสิกส์และนักคณิตศาสตร์ต้องการใช้ด้วยเหตุผลที่คนทั่วไปไม่อาจรู้
- embedding ให้เหตุผลที่จะคิดกับไอเดียนี้อย่างลึกซึ้งขึ้น และนำมันมาปรับใช้กับงานจริงของตน
- การยกระดับความสามารถในการดูแลรักษาเอกสารในเชิงสเกลอาจยังเป็นไปได้ และอาจต้องใช้มิติที่มีลำดับสูงกว่านี้อีก!
ภาคผนวก
การนำไปใช้จริง
- สร้าง ส่วนขยาย Sphinx เพื่อสร้าง embedding สำหรับเอกสารแต่ละฉบับ
- เมื่อการ build เสร็จสิ้น ข้อมูล embedding จะถูกบันทึกลงใน
embeddings.json - ขั้นตอนสุดท้ายคือการหา nearest neighbor สำหรับแต่ละเอกสาร
- พื้นฐานพีชคณิตเชิงเส้นได้เรียนจาก Linear Algebra for Machine Learning and Data Science
ผลลัพธ์
- วิธีตีความข้อมูล:
Targetคือหน้าที่กำลังดูอยู่ในปัจจุบันNeighborคือหน้าที่จะถูกแนะนำ
- จากตารางผลลัพธ์จะเห็นได้ว่าหน้าที่เกี่ยวข้องกันกำลังแนะนำซึ่งกันและกัน
ความเห็นของ GN⁺
- เทคโนโลยี embedding ดูจะเป็นประโยชน์อย่างมากในงานเขียนเอกสารทางเทคนิค สำหรับการทำความเข้าใจความสัมพันธ์ระหว่างคอนเทนต์และค้นพบการเชื่อมโยงระหว่างเอกสาร โดยจะยิ่งมีประโยชน์มากในโครงการเอกสารขนาดใหญ่ที่ต้องจัดการเอกสารจำนวนมหาศาล
- อย่างไรก็ตาม โมเดล embedding ยังใช้พลังงานค่อนข้างมาก และยังมีข้อกังวลด้านจริยธรรม จึงควรพิจารณาอย่างรอบคอบก่อนนำมาใช้ ควรมีทั้งทรัพยากรคอมพิวต์ที่เพียงพอและความพยายามในการลดผลกระทบต่อสิ่งแวดล้อมจากการสร้าง embedding ควบคู่กันไป
- การเปิดให้เว็บไซต์เอกสารให้บริการ embedding ผ่าน API อาจเป็นแนวทางที่ดีในการส่งเสริมการนำไปใช้เชิงสร้างสรรค์ในชุมชนนักพัฒนา แต่ต้องมีมาตรการด้านความปลอดภัยของข้อมูลและประเด็นความเป็นส่วนตัวรองรับก่อน
- สตาร์ตอัปหรือโครงการริเริ่มในสายเอกสารทางเทคนิคก็น่าจะลองนำเทคโนโลยี embedding มาใช้อย่างจริงจัง เพราะสามารถสร้างความแตกต่างจากโซลูชันจัดการเอกสารเดิม และมอบประสบการณ์ที่เป็นมิตรกับมนุษย์มากขึ้นในด้านการค้นหาและการแนะนำ
- ยังน่าคาดหวังกับงานวิจัยที่นำ embedding ไปใช้กับการสรุปเอกสาร การแปล และการจัดหมวดหมู่หัวข้อ หากผสาน embedding เข้ากับเทคโนโลยีประมวลผลภาษาธรรมชาติล่าสุด ก็อาจสร้างนวัตกรรมให้กับการเขียนและการจัดการเอกสารทางเทคนิคได้
3 ความคิดเห็น
นักเขียนสายเทคนิค ฮ่า
เมื่อดูการฝังข้อความและกระบวนการฝึกที่ใช้กันในด้านการประมวลผลภาษาธรรมชาติ ก็รู้สึกว่ามันคล้ายกับกระบวนการที่มนุษย์เรียนรู้และใช้ภาษาในสภาพที่แทบไม่รู้ไวยากรณ์อย่างแท้จริงมากครับ
ผมก็คิดว่ามันมีศักยภาพอีกมาก เหมือนที่บทความต้นฉบับพูดไว้
ความคิดเห็นจาก Hacker News
สิ่งที่น่าสนใจคือใน AI ยุคปัจจุบัน embedding ดูเหมือนจะเป็นองค์ประกอบเดียวที่มอบพลังให้มนุษย์ได้มากขึ้น มันเหมือนกับ "จักรยานสำหรับจิตใจของเรา" ที่ Steve Jobs เคยพูดถึง และหมายถึงการขยายศักยภาพทางสติปัญญา ความก้าวหน้าที่ใหญ่ที่สุดด้านการใช้งานคอมพิวเตอร์คือการมี local search ที่รวดเร็วและใช้ได้ทั่วไป ใช้ฟีเจอร์ "ค้นหาในหน้า" ของ Firefox บ่อยมาก และใช้ search กับ grep ทุกวัน embedding อาจแก้จุดอ่อนใหญ่ที่สุดของการค้นหาได้ เพราะมันมอบ fuzzy search ที่ใช้งานได้จริง
ในฐานะเจ้าของเว็บไซต์เอกสาร ก็น่าสงสัยว่าควรพิจารณาเปิดให้ใช้ embedding ได้อย่างอิสระผ่าน REST API หรือ URI ที่รู้จักกันดีหรือไม่ ควรระบุให้ชัดเจนว่าใช้ embedding model ตัวใด และก็มีคำถามว่ามี embedding model ที่เหมาะกับเอกสารทางเทคนิคหรือไม่
แม้จะมีความกังวลเรื่องสิ่งแวดล้อม แต่คิดว่าความเห็นสาธารณะที่ว่าแค่ลดการใช้ AI ก็จะแก้ปัญหาสภาพภูมิอากาศได้นั้นไม่ถูกต้อง ตัวอย่างเช่น ถ้าห้ามใช้ Google Maps คนก็อาจเลือกเส้นทางผิดและใช้น้ำมันมากขึ้น การสร้างเอกสารด้วย embedding ก็เช่นกัน การใช้ทรัพยากรคอมพิวต์กลับมีประสิทธิภาพมากกว่า
มีการแชร์ประสบการณ์สนุก ๆ เกี่ยวกับวิธีใช้ embedding ในเว็บแอป และอธิบายผ่านเอกสารว่าควรนำ embedding ไปใช้ในโปรดักชันอย่างไร
embedding ดูเหมือนจะเป็นตัวแทนของทุกอย่างในสตริงอินพุต จนเหมือนไม่มีเป้าหมายเฉพาะ จึงมีคำถามเกี่ยวกับวิธีลดมิติของ embedding สำหรับแอปพลิเคชันเฉพาะทาง เช่น หากสร้างระบบสำหรับค้นหาบทสนทนาฝ่ายสนับสนุนด้านเทคนิค จะทำอย่างไรให้ได้ embedding ที่สะท้อนเฉพาะเนื้อหาของบทสนทนา
vector embedding คือบทสรุปเฉพาะตัวของเอกสาร คล้ายกับ hash code คงจะดีถ้ามีมาตรฐานสากลสำหรับการสร้าง embedding แต่เพราะมันแตกต่างกันไปตาม AI model จึงไม่สามารถมี "ความคงทนถาวร" แบบ hash code ได้ น่าจะมีหลายวิธีในการนำอัลกอริทึมอย่าง cosine similarity ไปใช้กับฐานข้อมูลและแอปประมวลผลข้อมูล
คิดว่า embedding ถูกประเมินค่าต่ำเกินไป วงการการค้นคืน/ค้นพบข้อมูลยังคงใช้การค้นพบแบบอิงคีย์เวิร์ด และยังไม่ยอมรับการค้นพบเชิงความหมายซึ่งเป็นเครื่องมือสมัยใหม่ มีการประหยัดเวลาด้วยการแปลงประโยคเป็น vector embedding แล้วใช้ k-means clustering ก่อนสรุปด้วย ChatGPT
มีข้อเสนอว่านักเขียนสายเทคนิคกำลังประเมินประโยชน์ของ embedding ต่ำเกินไป ขณะที่ผู้ปฏิบัติงานด้าน machine learning ไม่ได้ประเมินมันต่ำ
มีคำถามว่า OpenAI embedding model รองรับ 8191/8192 tokens หรือไม่ การตัดสินผู้ชนะจากขนาด token เพียงอย่างเดียวเป็นเรื่องชวนให้เข้าใจผิด เพราะยังมีปัจจัยสำคัญกว่านั้น เช่น การรองรับข้ามภาษาและความแม่นยำ
คิดว่า embedding ถูกประเมินค่าสูงเกินไป และมันไม่ใช่ทางออกสารพัดนึกอย่างที่หลายคนคาดหวัง มันไม่ได้มาแทนวิธีง่าย ๆ อย่าง BM25 ได้ทั้งหมด และให้ความเข้าใจเชิงความหมายได้อย่างจำกัด ความคาดหวังที่สูงทำให้คนเชื่อว่า embedding จะค้นหาสิ่งที่ต้องการได้อย่างแม่นยำ แต่หากไม่ตรวจผลลัพธ์อย่างละเอียด ก็ยากจะสังเกตเห็นความไม่ตรงกัน