मॉडल वास्तव में कैसे सीखते हैं, सादे ग्रेडिएंट डिसेंट से लेकर Adam तक
मिश्रित परिशुद्धता प्रशिक्षण गति और मेमोरी के लिए छोटे संख्या प्रारूपों का उपयोग करता है। हर गणना को पूर्ण परिशुद्धता (मानक 32-बिट फ्लोट) में संग्रहीत करने के बजाय, कई संक्रियाएँ float16 या bfloat16 का उपयोग करती हैं: 16-बिट प्रारूप जो कम परिशुद्धता के बदले आधी मेमोरी लेते हैं, और float16 के लिए, प्रदर्शित करने योग्य आकारों की एक संकरी सीमा।
जोखिम संख्यात्मक सीमा का है। कुछ ग्रेडिएंट बेहद छोटे होते हैं। अगर एक छोटी संख्या को शून्य तक पूर्णांकित कर दिया जाए, तो अनुकूलक जानकारी खो देता है। हानि स्केलिंग उन छोटे ग्रेडिएंट की रक्षा करती है, बैकप्रॉपगेशन से पहले हानि को गुणा करके, फिर ग्रेडिएंट को वापस नीचे विभाजित करके।
एक रसोई का तराज़ू जो पूरे ग्राम तक पूर्णांकित करता है, मसाले की एक बारीक चुटकी छोड़ सकता है। अगर आप दस समान चुटकियों को एक साथ तौलें, तो तराज़ू कुल भार देख सकता है। फिर आप एक चुटकी पाने के लिए दस से विभाजित करते हैं। हानि स्केलिंग वही तरकीब इस्तेमाल करती है: छोटे मान को प्रदर्शित करना आसान बनाएँ, फिर उसे वापस स्केल करें। नीचे दी गई आकृति यह याद दिलाती है कि दांव पर क्या है। अवरोहण तभी काम करता है जब हर कदम का ग्रेडिएंट अंकगणित से बचा रहे; परिशुद्धता लूप को नहीं बदलती, वह तय करती है कि क्या न्यूनतम के पास की बारीक ढलानें उसे अब भी दिखाई देती हैं।