นักพัฒนาสร้างการใช้งาน GPT-2 เต็มรูปแบบบน WebGL Shaders ขณะที่ชุมชนสำรวจแนวทางทางเลือกอื่น

BigGo Editorial Team
นักพัฒนาสร้างการใช้งาน GPT-2 เต็มรูปแบบบน WebGL Shaders ขณะที่ชุมชนสำรวจแนวทางทางเลือกอื่น

ในการสาธิตความสามารถของ AI บนเบราว์เซอร์ที่น่าทึ่ง นักพัฒนาได้สร้างการใช้งานแบบสมบูรณ์ของ GPT-2 small (117 ล้านพารามิเตอร์) ที่ทำงานทั้งหมดบน WebGL2 shaders โปรเจกต์นี้แสดงให้เห็นว่าเบราว์เซอร์สมัยใหม่สามารถใช้ประโยชน์จากการเร่งความเร็วของ GPU สำหรับงานการเรียนรู้ของเครื่องโดยไม่ต้องพึ่งพาเฟรมเวิร์กเฉพาะทาง

WebGL vs WebGPU: เรื่องของความเข้ากันได้และประสบการณ์

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

การสนทนาเน้นย้ำว่าไลบรารีที่มีอยู่หลายตัว เช่น transformers.js ใช้ประโยชน์จาก WebGPU อยู่แล้ว ทำให้การใช้งาน WebGL นี้โดดเด่นในด้านความคิดสร้างสรรค์มากกว่าแค่ฟังก์ชันการทำงาน โปรเจกต์นี้เข้าร่วมกับการใช้งานภาษาโมเดลที่สร้างสรรค์อื่นๆ ในสภาพแวดล้อมที่ไม่คาดคิด รวมถึงโลก VRChat ที่กล่าวถึงซึ่งทำงาน Qwen2-0.5B ใน shaders และแม้กระทั่งการใช้งาน GPT-2 ก่อนหน้านี้ใน Microsoft Excel

การใช้งานทางเทคนิคและข้อพิจารณาด้านประสิทธิภาพ

การใช้งานนี้มี forward pass ของ GPT-2 small แบบสมบูรณ์ที่ทำงานบน GPU ผ่าน WebGL2 shaders โดยมีการ tokenization แบบ BPE ที่จัดการโดย js-tiktoken โดยตรงในเบราว์เซอร์โดยไม่ต้องการการเรียก WebAssembly สมาชิกในชุมชนแสดงความสนใจในการทำความเข้าใจลักษณะประสิทธิภาพ โดยเฉพาะว่าเวลาการอนุมานมากเพียงใดที่ผูกกับ GPU เทียบกับ CPU ในสภาพแวดล้อมของเบราว์เซอร์

โปรเจกต์สุดเจ๋ง! เวลาในการอนุมานเท่าไหร่ที่ผูกกับ GPU เทียบกับ CPU ในเบราว์เซอร์? สงสัยว่า WebGPU จะให้การเพิ่มประสิทธิภาพที่มากกว่า WebGL2 ตรงนี้หรือไม่

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

คุณสมบัติทางเทคนิคของโครงการ

  • การประมวลผลแบบ forward pass เต็มรูปแบบของ GPT-2 small (117M) บน GPU ผ่าน WebGL2 shaders
  • การแบ่งคำแบบ BPE tokenization โดยใช้ js-tiktoken ในเบราว์เซอร์ (ไม่ต้องเรียกใช้ WASM)
  • สคริปต์ Python สำหรับดาวน์โหลดโมเดลที่ผ่านการเทรนมาแล้ว

ข้อกำหนดเบื้องต้น

  • Node.js ≥ 16.x และ npm
  • Python ≥ 3.8
  • เบราว์เซอร์รุ่นใหม่ที่รองรับ WebGL2 (Chrome, Firefox, Safari, Edge)

โครงการในชุมชนที่คล้ายคลึงกันที่ใช้อ้างอิง

  • การพัฒนา GPT-2 บน Excel
  • Qwen2-0.5B ที่ทำงานบน VRChat world shaders
  • transformers.js ที่ใช้ ONNX runtime (รองรับ WASM, WebGL, WebGPU, WebNN)

ความท้าทายในการเผยแพร่และการเข้าถึง

โปรเจกต์ปัจจุบันเผชิญกับความท้าทายในการเผยแพร่ โดยเฉพาะเกี่ยวกับการกระจายน้ำหนัก ในขณะที่โค้ดมีอยู่บน GitHub ผู้ใช้สังเกตเห็นความยากลำบากในการเข้าถึงการสาธิตแบบสดเนื่องจากปัญหาในการโฮสต์น้ำหนักโมเดล สมาชิกชุมชนหลายคนแนะนำวิธีแก้ไข รวมถึงการดึงน้ำหนักโดยตรงจากที่เก็บ Hugging Face ตามความต้องการแทนที่จะรวมไว้กับแอปพลิเคชัน

ผู้สร้างกล่าวถึงการทำงานบนการเผยแพร่ GitHub Pages แต่ยอมรับความท้าทายกับวิธีการโหลดน้ำหนักในปัจจุบัน สมาชิกชุมชนเสนอคำแนะนำที่เป็นประโยชน์ รวมถึงการอ้างอิงโปรเจกต์ที่มีอยู่ซึ่งดึงน้ำหนัก GPT-2 จาก Hugging Face แบบไดนามิกได้สำเร็จ

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

อ้างอิง: GPT-2 WebGL Inference Demo