tokenDatabase = ({
"Der Hund liegt auf dem": [
{token: "Boden", prob: 0.32},
{token: "Sofa", prob: 0.24},
{token: "Bett", prob: 0.18},
{token: "Teppich", prob: 0.14},
{token: "Rasen", prob: 0.12}
],
"Die Katze sitzt auf dem": [
{token: "Dach", prob: 0.28},
{token: "Baum", prob: 0.24},
{token: "Sofa", prob: 0.20},
{token: "Tisch", prob: 0.16},
{token: "Fensterbrett", prob: 0.12}
],
"Die Studierenden lernen für die": [
{token: "Prüfung", prob: 0.45},
{token: "Klausur", prob: 0.25},
{token: "Zukunft", prob: 0.12},
{token: "Vorlesung", prob: 0.10},
{token: "Karriere", prob: 0.08}
]
})
viewof selectedSentence = Inputs.select(Object.keys(tokenDatabase), {
label: "Satzanfang:",
value: "Der Hund liegt auf dem"
})
currentProbs = tokenDatabase[selectedSentence]
viewof temperature = Inputs.range([0.1, 2.0], {
value: 1.0,
step: 0.1,
label: "Temperature"
})
scaledProbs = {
const t = temperature;
const logits = currentProbs.map(p => Math.log(p.prob));
const scaled = logits.map(l => Math.exp(l / t));
const sum = scaled.reduce((a, b) => a + b, 0);
return currentProbs.map((p, i) => ({token: p.token, prob: scaled[i] / sum}));
}