หลังจากหกปีของการพัฒนา WebGPU กำลังจะเปิดตัวบนเว็บเบราว์เซอร์หลักๆ ส่วนใหญ่ สิ่งนี้มีขนาดใหญ่มาก: ขณะนี้เว็บแอปพลิเคชันสามารถเข้าถึง GPU ได้ในระดับใกล้เคียงกัน พร้อมด้วยความสามารถที่เพิ่มขึ้นของตัวเชเดอร์การคำนวณ
WebGPT คือการนำโมเดล Transformer ไปใช้ JS และ HTML โดยมีจุดประสงค์เพื่อใช้เป็นข้อพิสูจน์แนวคิดและทรัพยากรทางการศึกษา WebGPT ได้รับการทดสอบว่าสามารถทำงานร่วมกับโมเดลที่มีพารามิเตอร์สูงถึง 500 M แม้ว่าจะสามารถรองรับการทดสอบ/เพิ่มประสิทธิภาพเพิ่มเติมได้มากกว่านี้ก็ตาม
2020 M1 Mac: 3ms/โทเค็นที่พารามิเตอร์ 5M พร้อมความแม่นยำ f32
2020 M1 Mac: 30ms/โทเค็นที่พารามิเตอร์ 117M พร้อมความแม่นยำ f32
2020 M1 Mac: 70ms/โทเค็นที่พารามิเตอร์ 377M พร้อมความแม่นยำ f32
2020 M1 Mac: 120ms/โทเค็นที่พารามิเตอร์ 775M พร้อมความแม่นยำ f32
1.5B ทำงานได้แต่ไม่เสถียร โดยอยู่ที่ประมาณ 1,000ms/โทเค็นเนื่องจากไม่มีประสิทธิภาพ
การเรียกใช้ WebGPT นั้นง่ายมาก เนื่องจากเป็นเพียงชุดไฟล์ HTML + JS เนื่องจาก WebGPU ยังอยู่ในขั้นตอนการเปิดตัว คุณจะต้องเปิดด้วยเบราว์เซอร์ที่เข้ากันได้ ขณะนี้ WebGPU พร้อมใช้งานบน Chrome v113 แต่วิธีที่ตรงไปตรงมาที่สุดในการตรวจสอบการทำงานที่เหมาะสมคือการติดตั้ง Chrome Canary หรือ Edge Canary
ฉันได้รวมรุ่นที่แตกต่างกันไว้สองรุ่น: ของเล่นรุ่น GPT-Shakespeare (ซึ่งได้รับการฝึกฝนอย่างหนัก ฮ่าๆ) และ GPT-2 117M ดู main.js สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการรันโมเดลเหล่านี้ หากคุณต้องการนำเข้าโมเดลที่กำหนดเอง โปรดดูที่ misc/conversion_scripts
หากคุณต้องการลองใช้ WebGPT โปรดไปที่เว็บไซต์สาธิตที่นี่ KMeans.org โดยทั่วไป ฉันขอแนะนำให้ทำการโคลน repo และเรียกใช้ในเครื่อง เพียงเพราะว่าการโหลดตุ้มน้ำหนักจากระยะไกลจะช้ากว่ามาก
หมายเหตุ: คุณจะต้องใช้ Git LFS เพื่อดาวน์โหลดไฟล์โมเดล หลังจากโคลนพื้นที่เก็บข้อมูลแล้ว
เมื่อฉันเริ่มโปรเจ็กต์นี้ ฉันไม่รู้ว่า Transformer ทำงานอย่างไรหรือจะใช้งานอย่างไร (หรือ GPU หรือเคอร์เนล Matmul หรือ WebGPU หรือโทเค็นสำหรับเรื่องนั้น) ดังนั้นซีรีส์ของ Andrej Karpathy บนโครงข่ายประสาทเทียมและการสร้าง GPT ตั้งแต่เริ่มต้นจึงมีคุณค่าอย่างยิ่ง: Youtube ของ Andrej ฉันยังใช้โค้ดบางส่วนจากที่เก็บ nanoGPT: nanoGPT
ฉันคัดลอกมาจากการใช้งานโทเค็น GPT-3 ของ OpenAI ของ LatitudeGames ใน Javascript: GPT-3-Encoder