Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Challenge: Huomioheatmapien Piirtäminen | Transformereiden Soveltaminen NLP-tehtäviin
Transformerit Luonnollisen Kielen Käsittelyssä
Osio 3. Luku 4
single

single

bookChallenge: Huomioheatmapien Piirtäminen

Pyyhkäise näyttääksesi valikon

Huomioarvojen visualisointi lämpökartalla auttaa tulkitsemaan, miten transformer-malli jakaa huomionsa lauseen eri osiin. Käytät matplotlib-kirjastoa piirtääksesi lämpökartan, jossa sekä x- että y-akseli esittävät lauseen tokenit. Jokainen lämpökartan solu näyttää huomioarvon kahden tokenin välillä: rivi vastaa kyselytokenia (query token) ja sarake avaintokenia (key token).

Aloita jakamalla lauseesi tokeneihin:

sentence = "Transformers help models focus on important words."
tokens = sentence.split()

Seuraavaksi määrittele huomioarvomatriisi NumPy-taulukkona. Jokainen arvo kuvaa huomioarvoa tokenilta toiselle:

import numpy as np
attention = np.array([
    [0.20, 0.10, 0.05, 0.10, 0.25, 0.10, 0.20],
    [0.05, 0.30, 0.10, 0.10, 0.15, 0.20, 0.10],
    [0.10, 0.15, 0.35, 0.10, 0.10, 0.10, 0.10],
    [0.10, 0.10, 0.10, 0.30, 0.10, 0.15, 0.15],
    [0.15, 0.10, 0.10, 0.10, 0.30, 0.10, 0.15],
    [0.10, 0.10, 0.15, 0.10, 0.10, 0.35, 0.10],
    [0.20, 0.15, 0.10, 0.10, 0.10, 0.10, 0.25],
])

Lämpökartan piirtämiseen käytä seuraavaa koodia:

import matplotlib.pyplot as plt

fig, ax = plt.subplots(figsize=(8, 6))
im = ax.imshow(attention, cmap="viridis")

ax.set_xticks(np.arange(len(tokens)))
ax.set_yticks(np.arange(len(tokens)))
ax.set_xticklabels(tokens, rotation=45, ha="right")
ax.set_yticklabels(tokens)

cbar = plt.colorbar(im, ax=ax)
cbar.set_label("Attention Weight")

ax.set_title("Attention Heatmap")
ax.set_xlabel("Key Tokens")
ax.set_ylabel("Query Tokens")

plt.tight_layout()
plt.show()

Kirkkaammat tai tummemmat värit ilmaisevat korkeampia tai matalampia huomioarvoja riippuen käytetystä värikartasta. Lämpökarttaa tarkastelemalla näet, mihin sanoihin malli kiinnittää eniten huomiota käsitellessään kutakin tokenia. Esimerkiksi, jos solussa rivillä focus ja sarakkeessa important on kirkas väri, malli yhdistää vahvasti focus- ja important-tokenit sisäisessä esityksessään. Tämä visualisointi auttaa ymmärtämään, mitkä osat syötelauseesta vaikuttavat toisiinsa, ja on hyödyllinen mallin toiminnan diagnosoinnissa tai tulkinnassa luonnollisen kielen käsittelyn tehtävissä.

Suorita nyt koodi nähdäksesi tuloksena olevan lämpökartan ja kirjoita sitten ensimmäinen visualisointikuvaajasi.

123456789101112131415161718192021222324252627282930313233
import numpy as np import matplotlib.pyplot as plt sentence = "Transformers help models focus on important words." tokens = sentence.split() attention = np.array([ [0.20, 0.10, 0.05, 0.10, 0.25, 0.10, 0.20], [0.05, 0.30, 0.10, 0.10, 0.15, 0.20, 0.10], [0.10, 0.15, 0.35, 0.10, 0.10, 0.10, 0.10], [0.10, 0.10, 0.10, 0.30, 0.10, 0.15, 0.15], [0.15, 0.10, 0.10, 0.10, 0.30, 0.10, 0.15], [0.10, 0.10, 0.15, 0.10, 0.10, 0.35, 0.10], [0.20, 0.15, 0.10, 0.10, 0.10, 0.10, 0.25], ]) fig, ax = plt.subplots(figsize=(8, 6)) im = ax.imshow(attention, cmap="viridis") ax.set_xticks(np.arange(len(tokens))) ax.set_yticks(np.arange(len(tokens))) ax.set_xticklabels(tokens, rotation=45, ha="right") ax.set_yticklabels(tokens) cbar = plt.colorbar(im, ax=ax) cbar.set_label("Attention Weight") ax.set_title("Attention Heatmap") ax.set_xlabel("Key Tokens") ax.set_ylabel("Query Tokens") plt.tight_layout() plt.show()
copy
Tehtävä

Pyyhkäise aloittaaksesi koodauksen

Piirrä huomioheatmap lauseelle "Attention helps models understand context." käyttäen seuraavaa huomio-matriisia:

attention = [
    [0.25, 0.15, 0.20, 0.20, 0.20],
    [0.10, 0.40, 0.15, 0.20, 0.15],
    [0.15, 0.10, 0.35, 0.20, 0.20],
    [0.20, 0.15, 0.20, 0.25, 0.20],
    [0.15, 0.20, 0.20, 0.20, 0.25],
]
  • Käytä matplotlib-kirjastoa heatmapin luomiseen;
  • Merkitse molemmat akselit lauseen tokenien nimillä;
  • Lisää väripalkki, jonka otsikkona on "Attention Weight;"
  • Anna kuvaajalle otsikko "Attention Heatmap."

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 4
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

some-alt