पाठ 6 / 27

Logits, Softmax और Temperature

कच्चे scores को संभावनाओं में बदलें और randomness नियंत्रित करें।

Scores से वितरण तक

Network शब्दावली के हर token के लिए एक कच्चा score, logit, देता है। Softmax उनका exponential लेकर normalise करता है ताकि वे धनात्मक हों और योग 1 हो। Temperature पहले logits को भाग देता है: 1 से कम वितरण को तीखा (ज़्यादा अनुमेय), 1 से ज़्यादा उसे चपटा (ज़्यादा विविध) करता है। Temperature 0 के पास मॉडल लगभग हमेशा शीर्ष token चुनता है ("greedy")। exp से पहले अधिकतम घटाना संख्यात्मक स्थिरता की मानक तरकीब है।

Temperature का असर, चलाकर

मैंने यह सादा-Python (सिर्फ़ standard library) उदाहरण चलाया। T=0.5 पर "Paris" को 95% संभावना मिलती है; T=2.0 पर 56% और बाक़ी tokens को वास्तविक मौक़ा मिलता है।

import math

def softmax(logits, temperature=1.0):
    scaled = [x / temperature for x in logits]
    m = max(scaled)
    exps = [math.exp(x - m) for x in scaled]
    total = sum(exps)
    return [e / total for e in exps]

tokens = ["Paris", "London", "banana", "the"]
logits = [4.0, 2.5, -1.0, 1.0]
for t in (0.5, 1.0, 2.0):
    probs = softmax(logits, t)
    print("T =", t, [f"{p:.3f}" for p in probs])

Output:

T = 0.5 ['0.950', '0.047', '0.000', '0.002']
T = 1.0 ['0.781', '0.174', '0.005', '0.039']
T = 2.0 ['0.563', '0.266', '0.046', '0.126']

तथ्यों के लिए कम, विचारों के लिए अधिक temperature

निष्कर्षण और तथ्यात्मक कार्यों के लिए कम temperature रखें; brainstorming में बढ़ाएँ। कम temperature विविधता घटाता है पर सही होने की गारंटी नहीं देता।

त्वरित जाँच: Temperature बढ़ाने से क्या होता है?

  • Tokens हटाता है
  • मॉडल को बड़ा बनाता है
  • सही उत्तरों की गारंटी देता है
  • वितरण चपटा करता है, आउटपुट को ज़्यादा विविध बनाता है
Answer

वितरण चपटा करता है, आउटपुट को ज़्यादा विविध बनाता है — अधिक temperature संभावना को ज़्यादा tokens में फैलाता है।