- เผยแพร่เมื่อ
Float32, Float16 หรือ BFloat16!
- ผู้เขียน

- ชื่อ
- AbnAsia.org
- @steven_n_t
ทำไมสิ่งนี้จึงมีความสำคัญสำหรับการเรียนรู้ลึก

สิ่งเหล่านี้เป็นเพียงระดับความแม่นยำที่แตกต่างกัน Float32 เป็นวิธีการแสดงตัวเลขทศนิยมที่มีจุดลอยด้วย 32 บิต (1 หรือ 0) และ Float16 / BFloat16 เป็นวิธีการแสดงตัวเลขเดียวกันโดยใช้เพียง 16 บิต เมื่อใช้ Float32 เราจะจัดสรรบิตแรกเพื่อแสดงเครื่องหมาย บิตถัดไป 8 บิตเพื่อแสดงเลขชี้กำลัง และบิตถัดไป 23 บิตเพื่อแสดงจุดทศนิยม (เรียกอีกอย่างว่า มันติสซา) เราสามารถเปลี่ยนจากตัวแทนบิตเป็นตัวแทนเลขทศนิยมได้โดยใช้สูตรง่ายๆ:
Float32 = (-1)^เครื่องหมาย * 2^(เลขชี้กำลัง - 127) * (1 + มันติสซา)
และสามารถอยู่ในช่วงตั้งแต่ -3.4e^38 ถึง 3.4e^38
Float16 ใช้ 1 บิตสำหรับเครื่องหมาย 5 บิตสำหรับเลขชี้กำลัง และ 10 บิตสำหรับมันติสซา โดยใช้สูตร:
Float16 = (-1)^เครื่องหมาย * 2^(เลขชี้กำลัง - 15) * (1 + มันติสซา)
และช่วงคือระหว่าง -6.55e^4 ถึง 6.55e^4 (ซึ่งเป็นช่วงที่เล็กกว่ามาก!) เพื่อแปลงจาก Float32 เป็น Float16 คุณเพียงแค่ต้องลบตัวเลขที่ไม่สามารถใส่ใน 5 และ 10 บิตที่จัดสรรสำหรับเลขชี้กำลังและมันติสซา สำหรับมันติสซา คุณกำลังสร้างข้อผิดพลาดการปัดเศษ แต่ถ้าตัวเลข Float32 มากกว่า 6.55e^4 คุณจะสร้างข้อผิดพลาดการล้นของตัวเลขทศนิยมลอยด้วย! ดังนั้นจึงเป็นไปได้ที่จะเกิดข้อผิดพลาดการแปลงจาก Float32 เป็น Float16
Brain Float 16 (BFloat16) เป็นอีกหนึ่งการแสดงตัวเลขทศนิยมลอยด้วย 16 บิต เราให้ความแม่นยำทศนิยมที่น้อยกว่า แต่มีช่วงเท่ากับ Float32 เรามี 8 บิตสำหรับเลขชี้กำลังและ 7 บิตสำหรับมันติสซา โดยใช้สูตรการแปลงเดียวกัน:
BFloat16 = (-1)^เครื่องหมาย * 2^(เลขชี้กำลัง - 127) * (1 + มันติสซา)
ให้ช่วงเดียวกับ Float32 [-3.4e^38 และ 3.4e^38] ดังนั้นการแปลงเป็น BFloat16 จาก Float32 จึงเป็นเรื่องง่ายเพราะคุณเพียงแค่ต้องปัดเศษมันติสซาลง
สิ่งนี้มีความสำคัญมากสำหรับการเรียนรู้ลึกเพราะในอัลกอริทึมการถอยกลับแบบกลับหัว (backpropagation) พารามิเตอร์ของแบบจำลองจะถูกอัปเดตโดยตัวปรับแต่งการลดลง (เช่น Adam) และการคำนวณจะทำด้วยความแม่นยำ Float32 เพื่อให้แน่ใจว่ามีข้อผิดพลาดการปัดเศษน้อย พารามิเตอร์ของแบบจำลองและเกรเดียนต์จะถูกจัดเก็บในหน่วยความจำด้วย Float16 เพื่อลดแรงกดดันต่อหน่วยความจำ ดังนั้นเราจึงต้องแปลงไปมาระหว่าง Float16 และ Float32 BFloat16 เป็นตัวเลือกที่ดีเพราะสามารถป้องกันข้อผิดพลาดการล้นของตัวเลขทศนิยมลอยด้วยในขณะเดียวกันก็รักษาความแม่นยำที่เพียงพอสำหรับการผ่านไปข้างหน้าและถอยกลับของอัลกอริทึมการถอยกลับแบบกลับหัว
โปรดทราบว่าเวอร์ชันภาษาไทยได้รับการช่วยเหลือจาก AI ดังนั้นอาจมีข้อผิดพลาดเล็กน้อย
ผู้เขียน
Ai Base Network (ABN), ABN ASIA ถูกก่อตั้งขึ้นโดยคนที่มีรากฐานลึกในวงการวิชาการ มีประสบการณ์การทำงานในสหรัฐอเมริกา ดัตช์ ฮังการี ญี่ปุ่น เกาหลีใต้ สิงคโปร์ และเวียดนาม ABN Asia เป็นที่เราพบกันของวิทยาลัยและเทคโนโลยี ด้วยโซลูชันขั้นสูงและบริการพัฒนาซอฟต์แวร์ที่มีความสามารถ เราช่วยธุรกิจเติบโตและเข้าสู่ฉากโลก ความมุ่งมั่นของเรา: ด่วนขึ้น ดีขึ้น น่าเชื่อถือมากขึ้น ในกรณีส่วนมาก: ราคาถูกด้วย
หากคุณต้องการบริการ IT การให้คำปรึกษาดิจิทัล โซลูชันซอฟต์แวร์ใช้ได้หรือหากคุณต้องการส่งคำขอข้อเสนอ (RFPs) อย่าลังเลที่จะติดต่อเรา คุณสามารถติดต่อเราได้ที่ [email protected] เราพร้อมช่วยเหลือคุณด้านทุกความต้องกรทางเทคโนโลยีของคุณทุกเมื่อ

© ABN ASIA