सूत्र: softmax(x_i) = exp(x_i) / ∑ exp(x_j)। घातांकीय अंतरों को बढ़ाता है: यदि एक logit 10 है और दूसरा 5 है, तो softmax के बाद अनुपात 2:1 नहीं बल्कि लगभग 150:1 है। यह विजेता-ले-जाता-अधिकांश व्यवहार इसलिए है कि मॉडल आत्मविश्वासी होते हैं — softmax स्वाभाविक रूप से समान के बजाय नुकीले वितरण उत्पन्न करता है।
Temperature को softmax से पहले logits को विभाजित करके लागू किया जाता है: softmax(x_i / T)। Temperature T=1 मानक है। T<1 वितरण को तीक्ष्ण बनाता है (अधिक आत्मविश्वासी, अधिक निर्धारक)। T>1 इसे समतल करता है (अधिक समान, अधिक यादृच्छिक)। LLM APIs में "temperature" पैरामीटर ठीक इसी तरह काम करता है — यह अगले टोकन का चयन करने वाले अंतिम softmax से पहले logits पर लागू किया जाने वाला एक स्केलर है।
एक व्यावहारिक कार्यान्वयन विवरण: x के बड़े मानों के लिए exp(x) की गणना करने से overflow होता है। मानक समाधान softmax लागू करने से पहले सभी logits से अधिकतम मान घटाना है: softmax(x_i - max(x))। यह आउटपुट को नहीं बदलता (घटाया गया स्थिरांक अनुपात में रद्द हो जाता है) लेकिन संख्याओं को प्रबंधनीय सीमा में रखता है। हर प्रोडक्शन softmax कार्यान्वयन यह करता है, और यह उस तरह का विवरण है जो शून्य से निर्माण करते समय मायने रखता है।