/
StoryGeneratorPlan.txt
77 lines (47 loc) · 3.49 KB
/
StoryGeneratorPlan.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
Katso open source kielimalleja ja kokeile jos saisit sen luomaan tekstiä tranquilityyn.
https://github.com/eugeneyan/open-llms
Sanoista pitää laskea jatkuvat feature vectorit x ja luoda rekurrentti ennustemalli joka ennustaa aivovasteen kun tarinaa jatketaan sanan y feature vectorilla. Kielimallilla luodaan tarinaa rajoitetusta sanajoukosta joille laskettu feature vectorit korpuksesta.
Käytetään neuroverkkoa ennustamaan vaste ja käydään kielimallin hyviä jatkosanoja läpi N kappaletta ja valitaan sana joka antaa parhaan vasteen.
Näin pitäisi saada aikaan alkeellista aivopesua.
Esim. tavoitetilana on pyrkiä rauhoittamaan katsoja ja lisäämään kertomuksella alpha aaltoja tai muita aivoista mitattavia parametrejä.
=> terapeuttisia sovelluksia (psykiatria).
Perustietokoneissa on GPU jossa 8 GB muistia joka rajoittaa kielimallin kokoa.
==================================================================================
Korpuksesta feature vector sanoille (kokeile toimiiko tämä oma viritelmä miten hyvin).
=> 1. Stemmaa englanninkieliset sanat lyhyiksi
=> 2. Laske vektori sanan ympäristöstä jossa +-5-10 sanaa laitettu 1:seksi jos on ympäristössä ja muuten 0
(jokaisella sanalle oma dimensio) [sanalle monta vektoria]
=> 3. Jos korpuksessa on N sanaa, saadaan K-dimensioisia vektoreita
(K = sanojen määrä korpuksessa, optimoi kirjaamaan ylös vaan dimensiot jotka sanan ympäristössä on
indeksiarvoina niin säästetään muistia) N kappaletta
=> 4. Laske FastPCA:lla K-korkeadimensioisista vektoreista L ensimmäistä dimensiota
=> 5. Laske L-dimensioiset vektorit jokaiselle sanalle ja laske sanan vektoreista
keskiarvovektori joka on sanan feature-vektori.
Englanninkielessä on n. 470.000 yleistä sanaa ja 1.000.000 sanaa yhteensä.
Teoreettinen vektorien ulottuvuus K on siis 500.000-1.000.000.
==================================================================================
Käytettään Cerebras kielimallia joka vaatii kaiketi 8-12 GB muistia toimiakseen.
Perusläppäri NVIDIA:n kortissa on muistia 4 GB.
https://huggingface.co/cerebras/btlm-3b-8k-base
language_model.py
CPU:lla lauseen täydentämiseen menee aikaa noin tunti.
GPU:lla lauseen täydentämiseen menee aikaa noin 4 minuuttia (hidas).
GPU:lla yhden sanan samplaaminen jatkoksi vie aikaa 35 sekuntia perus NVIDIA:n näytönohjaimella.
https://huggingface.co/cerebras/Cerebras-GPT-111M
GPU:lla yhden sanan samplaaminen jatkoksi vie aikaa 1 sekunti perus NVIDIAN:n näytönohjaimella.
Stimulaatiota näytetään nyt 500ms joten GPU:lla on aikaa generoida
uusi todennäköinen sana noin N=10 kertaa tässä ajassa +
neuroverkko mallin ennusteen lasku joka arvio miten vaikuttaa
EEG:n arvoihin.
Pitäisi saada GPU joka on 20 kertaa nopeampi tällä kielimallilla (cerebras-GTP-111M)
jotta saavutettaisiin 20 sanaa sekunti nopeus.
=> Tarvitaan vieläkin pienempi kielimalli. Ei tunnut löytyvän helposti kohtuudella
toimivaa ja nopeus on tällöin min. luokkaa 1 sana/sec mikä on aivan liian hidasta.
Nyt GPU on GeForce GTX 1050 4 GB ja nopeus 4.281 mPixels/s.
Uuden teholäppärin GPU on GeForce RTX 4070 8 GB ja nopeus eon 37.506 mPixels/s.
=> 8 kertaa nopeampi(?) => 8 sanaa/sekunnissa.
Nyt GPU GeForce GTX 1050 on 2089 GFLOPS.
GPU GeForce RTX 4070 on 22000 GFLOPS.
=> 11 kertaa nopeampi => 11 sanaa/sekunnissa. => 5 sanaa per 500ms, tämä riittää nippa nappa.
GPU GeForce RTX 4080 on 43000 GFLOPS.
=> n. 22 kertaa nopeampi => 22 sanaa/sekunnissa => 11 sanaa per 500 ms, tämä pitäisi riittää.