الميزات الناشئة في Parameter Transformers 6.7B +

عندما حضرت NAACL ، أردت إجراء اختبار صغير. كان لدي عرضان تقديميان لورقتي LLM.int8 (). إحداها هي كيف أستخدم طرق التكميم المتقدمة لتحقيق استدلال المحولات دون تدهور الأداء على نطاق واسع ، مما يجعل الوصول إلى النماذج الكبيرة أكثر سهولة. يتحدث العرض الآخر عن القيم المتطرفة الناشئة في Transformers وكيف يغيرون بشكل جذري ما يتعلمه Transformers وكيف يعملون.

من هناك تعلمت أن البحث الكمي مثل الطابعات. لا أحد يهتم بالطابعات. لا أحد يحب الطابعات. لكن الجميع سيكونون سعداء إذا قامت الطابعات بعملها. كيف يتم ذلك من أجلك عبر مكتبة bitsandbytes مع تكامل Hugging Face بحيث يمكنك بسهولة تشغيل OPT-175B و BLOOM-176B على جهاز واحد موصوف في منشور مدونة آخر بواسطة زميلي والمتعاون يونس بلكادا.

ستعرض مشاركة المدونة هذه بعض التفاصيل الإلزامية حول التكميم ، لكنني في الغالب أريد التحدث عن تلك الميزات الناشئة التي وجدتها في المحولات واسعة النطاق. أعلم أن الادعاءات الواردة في الوثيقة قوية للغاية. منشور المدونة هذا هو نسخة أكثر تأملًا من المقالة التي تكشف عن التفاصيل الفائقة الفضولية حول الخصائص الرائعة المحيطة بالميزات الناشئة الخارجية التي وجدتها. لا يمكنني الكشف عن كل التفاصيل لأن مشروعي القادم سيعمق فهم هذه الميزات الخارجية ، لكن المساحة غنية جدًا لدرجة أنني سعيد بإعطائك الكثير من التفاصيل المثيرة للفضول. تفاصيل القياس الكمي الإلزامي

في إصدار سابق من منشور المدونة هذا ، كان لدي مازحًا قسمًا بعنوان "كل ما تريد معرفته عن التكميم". 8 بت ، تفقد الدقة ، مما قد يقلل من جودة توقع النموذج. "

هذا كل شيء.

معظم الناس لا يريدون معرفة المزيد عن التكميم - وبصراحة ، الجملة الصغيرة أعلاه مفيدة بدرجة كافية. التفاصيل محببة ومعقدة للغاية ، لكنها كلها في الكود. الرياضيات والمفاهيم بسيطة جدًا ومباشرة - إذا سبق لك العمل على التكميم. إذا لم تكن قد صادفت عملية تكميم ، فمن المحتمل أن يكون هذا كابوسًا شريرًا حارقًا سوف يلتهم كبدك.

لأولئك الذين يقولون "Pfff! لماذا أحتاج إلى كبد على أي حال؟" حسنًا ، ها هو كذلك. بالنسبة للآخرين ، انطلق واكتشف ميزات الألغاز الناشئة. ما هو التكميم؟

لنفترض أن لديك نوع بيانات I5 بقيم [0 ، 1 ، 2 ، 3 ، 4 ، 5] ونوع بيانات ، I3 ، مع القيم [0 ، 2 ، 4] ، كيف تحدد كمية البيانات من نوع I5 إلى I3؟ أنت تتبع إجراءً من خطوتين: تطبيع نطاق I5 إلى I3. قرّب لأقرب قيمة I3.

فلنقم بمثال. لنفترض أن لدينا المتجه [3 ، 1 ، 2 ، 3] عند I5 ، ونريد تحديد الكمية عند I3.

هذه هي الوصفة خطوة بخطوة للتكميم: نجد القيمة القصوى المطلقة للمتجه: [3، 1، 2، 3] -> 3 ثم نقسم على هذه القيمة: [3 ، 1 ، 2 ، 3] -> [1 ، 0.33 ، 0.66 ، 1.0] والآن نضرب في نطاق نوع بيانات الهدف I3 ، وهو 4: [1 ، 0.33 ، 0.66 ، 1.0] -> [4.0 ، 1.33 ، 2.66 ، 4 ، 0] نقرب الآن إلى أقرب قيمة: [4.0 ، 1.33 ، 2.66 ، 4.0] -> [4 ، 0 ، 2 ، 4]

لقد قمنا الآن بتحويل [3 ، 1 ، 2 ، 4] إلى I5 إلى [4 ، 0 ، 2 ، 4] إلى I3. للتخلص ، نعكس هذه العملية. اقسم على 4: [4 ، 0 ، 2 ، 4] -> [1.0 ، 0.0 ، 0.5 ، 1.0] اضرب في الحد الأقصى المطلق: [1.0 ، 0.0 ، 0.5 ، 1.0] -> [3.0 ، 0.0 ، 1.5 ، 3.0] الآن نقرب مرة أخرى: [3.0 ، 0.0 ، 1.5 ، 3.0] -> [3 ، 0 ، 2 ، 3]

نلاحظ أن التفكيك والتكميم أدى إلى خطأين: [3 ، 1 ، 2 ، 4] إلى [3 ، 0 ، 2 ، 3] العنصر الثاني انتقل من 1 إلى 0 ، وتغير العنصر الأخير من 4 إلى 3. وهذا خطأ تكمي يؤدي إلى فقدان المعلومات من حيث دقة تشفير المعلومات. إذا كانت لدينا مثل هذه الأخطاء وقمنا بنشرها عبر طبقات عديدة من الشبكة العصبية ، فإنها تتراكم ويمكن أن تغير نتيجة التنبؤ وتقلل من جودة التنبؤ. كيفية جعل طرق القياس الكمي أكثر دقة

يمكن تحسين التكميم بطريقتين. استخدم نوع بيانات أفضل أو استخدم المزيد من ثوابت التسوية (الحد الأقصى المطلق).

عندما يتعلق الأمر بأنواع البيانات ، يعد Int8 نوعًا رهيبًا من البيانات للتعلم العميق. لهذا السبب قمت بتطوير أنواع جديدة من البيانات في بحثي. ومع ذلك ، لا تدعم وحدات معالجة الرسومات حاليًا ...

الميزات الناشئة في Parameter Transformers 6.7B +

عندما حضرت NAACL ، أردت إجراء اختبار صغير. كان لدي عرضان تقديميان لورقتي LLM.int8 (). إحداها هي كيف أستخدم طرق التكميم المتقدمة لتحقيق استدلال المحولات دون تدهور الأداء على نطاق واسع ، مما يجعل الوصول إلى النماذج الكبيرة أكثر سهولة. يتحدث العرض الآخر عن القيم المتطرفة الناشئة في Transformers وكيف يغيرون بشكل جذري ما يتعلمه Transformers وكيف يعملون.

من هناك تعلمت أن البحث الكمي مثل الطابعات. لا أحد يهتم بالطابعات. لا أحد يحب الطابعات. لكن الجميع سيكونون سعداء إذا قامت الطابعات بعملها. كيف يتم ذلك من أجلك عبر مكتبة bitsandbytes مع تكامل Hugging Face بحيث يمكنك بسهولة تشغيل OPT-175B و BLOOM-176B على جهاز واحد موصوف في منشور مدونة آخر بواسطة زميلي والمتعاون يونس بلكادا.

ستعرض مشاركة المدونة هذه بعض التفاصيل الإلزامية حول التكميم ، لكنني في الغالب أريد التحدث عن تلك الميزات الناشئة التي وجدتها في المحولات واسعة النطاق. أعلم أن الادعاءات الواردة في الوثيقة قوية للغاية. منشور المدونة هذا هو نسخة أكثر تأملًا من المقالة التي تكشف عن التفاصيل الفائقة الفضولية حول الخصائص الرائعة المحيطة بالميزات الناشئة الخارجية التي وجدتها. لا يمكنني الكشف عن كل التفاصيل لأن مشروعي القادم سيعمق فهم هذه الميزات الخارجية ، لكن المساحة غنية جدًا لدرجة أنني سعيد بإعطائك الكثير من التفاصيل المثيرة للفضول. تفاصيل القياس الكمي الإلزامي

في إصدار سابق من منشور المدونة هذا ، كان لدي مازحًا قسمًا بعنوان "كل ما تريد معرفته عن التكميم". 8 بت ، تفقد الدقة ، مما قد يقلل من جودة توقع النموذج. "

هذا كل شيء.

معظم الناس لا يريدون معرفة المزيد عن التكميم - وبصراحة ، الجملة الصغيرة أعلاه مفيدة بدرجة كافية. التفاصيل محببة ومعقدة للغاية ، لكنها كلها في الكود. الرياضيات والمفاهيم بسيطة جدًا ومباشرة - إذا سبق لك العمل على التكميم. إذا لم تكن قد صادفت عملية تكميم ، فمن المحتمل أن يكون هذا كابوسًا شريرًا حارقًا سوف يلتهم كبدك.

لأولئك الذين يقولون "Pfff! لماذا أحتاج إلى كبد على أي حال؟" حسنًا ، ها هو كذلك. بالنسبة للآخرين ، انطلق واكتشف ميزات الألغاز الناشئة. ما هو التكميم؟

لنفترض أن لديك نوع بيانات I5 بقيم [0 ، 1 ، 2 ، 3 ، 4 ، 5] ونوع بيانات ، I3 ، مع القيم [0 ، 2 ، 4] ، كيف تحدد كمية البيانات من نوع I5 إلى I3؟ أنت تتبع إجراءً من خطوتين: تطبيع نطاق I5 إلى I3. قرّب لأقرب قيمة I3.

فلنقم بمثال. لنفترض أن لدينا المتجه [3 ، 1 ، 2 ، 3] عند I5 ، ونريد تحديد الكمية عند I3.

هذه هي الوصفة خطوة بخطوة للتكميم: نجد القيمة القصوى المطلقة للمتجه: [3، 1، 2، 3] -> 3 ثم نقسم على هذه القيمة: [3 ، 1 ، 2 ، 3] -> [1 ، 0.33 ، 0.66 ، 1.0] والآن نضرب في نطاق نوع بيانات الهدف I3 ، وهو 4: [1 ، 0.33 ، 0.66 ، 1.0] -> [4.0 ، 1.33 ، 2.66 ، 4 ، 0] نقرب الآن إلى أقرب قيمة: [4.0 ، 1.33 ، 2.66 ، 4.0] -> [4 ، 0 ، 2 ، 4]

لقد قمنا الآن بتحويل [3 ، 1 ، 2 ، 4] إلى I5 إلى [4 ، 0 ، 2 ، 4] إلى I3. للتخلص ، نعكس هذه العملية. اقسم على 4: [4 ، 0 ، 2 ، 4] -> [1.0 ، 0.0 ، 0.5 ، 1.0] اضرب في الحد الأقصى المطلق: [1.0 ، 0.0 ، 0.5 ، 1.0] -> [3.0 ، 0.0 ، 1.5 ، 3.0] الآن نقرب مرة أخرى: [3.0 ، 0.0 ، 1.5 ، 3.0] -> [3 ، 0 ، 2 ، 3]

نلاحظ أن التفكيك والتكميم أدى إلى خطأين: [3 ، 1 ، 2 ، 4] إلى [3 ، 0 ، 2 ، 3] العنصر الثاني انتقل من 1 إلى 0 ، وتغير العنصر الأخير من 4 إلى 3. وهذا خطأ تكمي يؤدي إلى فقدان المعلومات من حيث دقة تشفير المعلومات. إذا كانت لدينا مثل هذه الأخطاء وقمنا بنشرها عبر طبقات عديدة من الشبكة العصبية ، فإنها تتراكم ويمكن أن تغير نتيجة التنبؤ وتقلل من جودة التنبؤ. كيفية جعل طرق القياس الكمي أكثر دقة

يمكن تحسين التكميم بطريقتين. استخدم نوع بيانات أفضل أو استخدم المزيد من ثوابت التسوية (الحد الأقصى المطلق).

عندما يتعلق الأمر بأنواع البيانات ، يعد Int8 نوعًا رهيبًا من البيانات للتعلم العميق. لهذا السبب قمت بتطوير أنواع جديدة من البيانات في بحثي. ومع ذلك ، لا تدعم وحدات معالجة الرسومات حاليًا ...

What's Your Reaction?

like

dislike

love

funny

angry

sad

wow