7 คะแนน โดย GN⁺ 2024-11-02 | 3 ความคิดเห็น | แชร์ทาง WhatsApp
  • แมชชีนเลิร์นนิง (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 สำหรับแต่ละเอกสาร

ผลลัพธ์

  • วิธีตีความข้อมูล:
    • Target คือหน้าที่กำลังดูอยู่ในปัจจุบัน
    • Neighbor คือหน้าที่จะถูกแนะนำ
  • จากตารางผลลัพธ์จะเห็นได้ว่าหน้าที่เกี่ยวข้องกันกำลังแนะนำซึ่งกันและกัน

ความเห็นของ GN⁺

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

3 ความคิดเห็น

 
yangeok 2024-11-08

นักเขียนสายเทคนิค ฮ่า

 
cosine20 2024-11-04

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

 
GN⁺ 2024-11-02
ความคิดเห็นจาก 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 จะค้นหาสิ่งที่ต้องการได้อย่างแม่นยำ แต่หากไม่ตรวจผลลัพธ์อย่างละเอียด ก็ยากจะสังเกตเห็นความไม่ตรงกัน