esittely
Olen varma, että useimmat teistä olisivat kuulleet ChatGPT:stä ja yrittäneet vastata kysymyksiisi! Oletko koskaan miettinyt, mitä konepellin alla tapahtuu? Siinä on Open AI:n kehittämä Large Language Model GPT-3. Nämä suuret kielimallit, joita usein kutsutaan LLM:iksi, ovat avanneet monia mahdollisuuksia Luonnollinen kielen käsittely.
Mitä ovat suuret kielimallit?
LLM-mallit on koulutettu käyttämään valtavia määriä tekstidataa, mikä mahdollistaa ihmisten ymmärtämisen merkityksen ja kontekstin kanssa. Aikaisemmin useimmat mallit on koulutettu valvotulla lähestymistavalla, jossa syötämme syöttöominaisuuksia ja vastaavia tarroja. Toisin kuin tämä, LLM:t koulutetaan ohjaamattoman oppimisen kautta, jossa heille syötetään valtavia määriä tekstidataa ilman tarroja ja ohjeita. Näin ollen LLM:t oppivat kielen sanojen merkityksen ja väliset suhteet tehokkaasti. Niitä voidaan käyttää monenlaisiin tehtäviin, kuten tekstin luomiseen, kysymyksiin vastaamiseen, kääntämiseen kielestä toiseen ja paljon muuta.
Nämä suuret kielimallit voidaan hienosäätää mukautetussa tietojoukossasi verkkotunnuskohtaisia tehtäviä varten. Tässä artikkelissa puhun hienosäädön tarpeesta, saatavilla olevista erilaisista LLM:istä ja näytän myös esimerkin.
LLM-hienosäädön ymmärtäminen
Oletetaan, että sinulla on diabetestukiyhteisö ja haluat perustaa online-apupuhelimen vastaamaan kysymyksiin. Valmiiksi koulutettu LLM on koulutettu yleisemmin, eikä hän pystyisi antamaan parhaita vastauksia toimialuekohtaisiin kysymyksiin eikä ymmärtäisi lääketieteellisiä termejä ja lyhenteitä. Tämä voidaan ratkaista hienosäädöllä.
Mitä tarkoitamme hienosäädöllä? Lyhyesti sanottuna, Siirtää
oppiminen! Suuret kielimallit koulutetaan valtaviin tietokokonaisuuksiin raskaita resursseja käyttäen ja niissä on miljoonia parametreja. LLM:n esikoulutuksen aikana oppimat esitykset ja kielimallit siirretään käsillä olevaan tehtävään. Teknisesti sanottuna alustamme mallin esiopetetuilla painoilla ja harjoittelemme sen sitten tehtäväkohtaisten tietojen perusteella saavuttaaksemme enemmän tehtävälle optimoituja parametrien painoja. Voit myös tehdä muutoksia mallin arkkitehtuuriin ja muokata tasoja tarpeidesi mukaan.
Miksi sinun pitäisi hienosäätää malleja?
- Säästä aikaa ja resursseja: Hienosäätö voi auttaa sinua vähentämään harjoitteluaikaa ja tarvittavia resursseja kuin harjoittelemalla alusta.
- Vähennetyt tietovaatimukset: Jos haluat kouluttaa mallin tyhjästä, tarvitset valtavia määriä merkittyjä tietoja, jotka eivät usein ole yksityishenkilöiden ja pienyritysten saatavilla. Hienosäätö voi auttaa saavuttamaan hyvän suorituskyvyn myös pienemmällä tietomäärällä.
- Mukauta tarpeidesi mukaan: Valmiiksi koulutettu LLM ei välttämättä ymmärrä verkkotunnuskohtaista terminologiaa ja lyhenteitä. Esimerkiksi normaali LLM ei tunnista, että "tyyppi 1" ja "tyyppi 2" tarkoittavat diabeteksen tyyppejä, kun taas hienosäädetty voi.
- Ota jatkuva oppiminen käyttöön: Oletetaan, että hienosäädimme malliamme diabetestietodatan perusteella ja otimme sen käyttöön. Entä jos saatavilla on uusi ruokavaliosuunnitelma tai hoito, jonka haluat sisällyttää? Voit käyttää aiemmin hienosäädetyn mallisi painoja ja säätää sitä sisällyttämään uudet tietosi. Tämä voi auttaa organisaatioita pitämään mallinsa ajan tasalla tehokkaasti.
Avoimen lähdekoodin LLM-mallin valitseminen
Seuraava askel olisi valita suuri kielimalli tehtävääsi varten. Mitä vaihtoehtoja sinulla on? Tällä hetkellä saatavilla olevia huippuluokan suuria kielimalleja ovat GPT-3, Bloom, BERT, T5 ja XLNet. Näistä GPT-3 (Generative Pretraned Transformers) on osoittanut parhaan suorituskyvyn, koska se on koulutettu 175 miljardiin parametriin ja pystyy käsittelemään erilaisia NLU-tehtäviä. Mutta GPT-3:n hienosäätöön pääsee vain maksullisen tilauksen kautta, ja se on suhteellisen kalliimpaa kuin muut vaihtoehdot.
Toisaalta BERT on avoimen lähdekoodin suuri kielimalli ja sitä voidaan hienosäätää ilmaiseksi. BERTI tulee sanoista Bi-directional Encoder Decoder Transformers. BERT tekee erinomaista työtä kontekstuaalisten sanaesitysten ymmärtämisessä.
Miten valitset?
Jos tehtäväsi suuntautuu enemmän tekstin luomiseen, GPT-3 (maksullinen) tai GPT-2 (avoimen lähdekoodi) mallit olisivat parempi valinta. Jos tehtäväsi kuuluu tekstin luokitteluun, kysymyksiin vastaamiseen tai kokonaisuuden tunnistukseen, voit käyttää BERT:tä. Diabetes-kysymykseen vastaamisen tapauksessa käyttäisin BERT-mallia.
Tietojoukon valmistelu ja esikäsittely
Tämä on hienosäädön tärkein vaihe, koska tietojen muoto vaihtelee mallin ja tehtävän mukaan. Tätä tapausta varten olen luonut diabeteksen tiedoista mallitekstidokumentin, jonka olen hankkinut Terveyslaitokselta verkkosivusto. Voit käyttää omia tietojasi.
BERT:n kyselyvastaamisen tehtävän hienosäätämiseksi suositellaan tietojen muuntamista SQuAD-muotoon. SQuAD on Stanford Question Answering Dataset ja tämä muoto on laajalti käytössä NLP-mallien koulutuksessa kysymysvastaustehtäviin. Tietojen on oltava JSON-muodossa, jossa jokainen kenttä koostuu:
context
: Lause tai kappale tekstillä, jonka perusteella malli etsii vastausta kysymykseenquestion
: Kysymys, johon haluamme BERT:n vastaavan. Sinun on muotoiltava nämä kysymykset sen perusteella, kuinka loppukäyttäjä olisi vuorovaikutuksessa laadunvarmistusmallin kanssa.answers
: Sinun on annettava tähän kenttään haluamasi vastaus. Tämän alla on kaksi alakomponenttia,text
jaanswer_start
.text
on vastausmerkkijono. sitä vastoin,answer_start
tarkoittaa indeksiä, josta vastaus alkaa kontekstikappaleessa.
Kuten voit kuvitella, näiden tietojen luominen asiakirjaa varten veisi paljon aikaa, jos tekisit sen manuaalisesti. Älä huoli, näytän sinulle, kuinka voit tehdä sen helposti Haystack-merkintätyökalulla.
Kuinka luoda tietoja SQuAD-muodossa heinäsuovasta?
Haystack-merkintätyökalun avulla voit luoda nopeasti tunnistetun tietojoukon kysymyksiin vastaamista varten. Pääset käyttämään työkalua luomalla heille tilin paikka. Luo uusi projekti ja lataa asiakirjasi. Voit tarkastella sitä "Dokumentit"-välilehdellä, siirtyä kohtaan "Toiminnot" ja nähdä vaihtoehdon, jolla voit luoda kysymyksiä. Voit kirjoittaa kysymyksesi ja korostaa vastauksen asiakirjaan, Haystack löytää automaattisesti sen aloitushakemiston. Olen näyttänyt, kuinka tein sen asiakirjassani alla olevassa kuvassa.
Kuva 1: Merkityn tietojoukon luominen kysymys-vastaamista varten heinäsuovasta
Kun olet luonut tarpeeksi kysymys-vastaus-pareja hienosäätöä varten, sinun pitäisi pystyä näkemään niistä yhteenveto alla olevan kuvan mukaisesti. "Vie tarrat" -välilehdeltä löydät useita vaihtoehtoja muodolle, jossa haluat viedä. Valitsemme ryhmämuodon tapauksemme mukaan. Jos tarvitset lisää apua työkalun käytössä, voit tarkistaa ne dokumentointi. Meillä on nyt JSON-tiedostomme, joka sisältää QA-parit hienosäätöä varten.
Kuinka hienosäätää?
Python tarjoaa monia avoimen lähdekoodin paketteja, joita voit käyttää hienosäätöön. Käytin kotelossani Pytorch and Transformers -pakettia. Aloita tuomalla pakettimoduulit paketinhallintaohjelmalla pip. The transformers
kirjasto tarjoaa a BERTTokenizer
, joka on erityisesti tarkoitettu BERT-mallin syötteiden tokenointiin.
!pip install torch
!pip install transformers import json
import torch
from transformers import BertTokenizer, BertForQuestionAnswering
from torch.utils.data import DataLoader, Dataset
Mukautetun tietojoukon määrittäminen latausta ja esikäsittelyä varten
Seuraava vaihe on tietojen lataaminen ja esikäsittely. Voit käyttää Dataset
luokka pytorchista utils.data
moduuli määrittääksesi mukautetun luokan tietojoukollesi. Olen luonut mukautetun tietojoukkoluokan diabetes
kuten näet alla olevasta koodinpätkästä. The init
on vastuussa muuttujien alustamisesta. The file_path
on argumentti, joka syöttää JSON-harjoitustiedostosi polun ja jota käytetään alustamiseen data
. Alustamme BertTokenizer
myös tässä.
Seuraavaksi määrittelemme a load_data()
toiminto. Tämä toiminto lukee JSON-tiedoston JSON-tietoobjektiksi ja poimii siitä kontekstin, kysymyksen, vastaukset ja niiden indeksin. Se liittää puretut kentät luetteloon ja palauttaa sen.
- getitem
käyttää BERT-tokenizeriä koodatakseen kysymyksen ja kontekstin syöttötensoreiksi, jotka ovat input_ids
ja attention_mask
. encode_plus
tokenisoi tekstin ja lisää erityisiä tunnuksia (kuten [CLS] ja [SEP]). Huomaa, että käytämme squeeze()
menetelmä poistaa yksittäiset mitat ennen BERT:iin syöttämistä. Lopuksi se palauttaa käsitellyt syöttötensorit.
class diabetes(Dataset): def __init__(self, file_path): self.data = self.load_data(file_path) self.tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') def load_data(self, file_path): with open(file_path, 'r') as f: data = json.load(f) paragraphs = data['data'][0]['paragraphs'] extracted_data = [] for paragraph in paragraphs: context = paragraph['context'] for qa in paragraph['qas']: question = qa['question'] answer = qa['answers'][0]['text'] start_pos = qa['answers'][0]['answer_start'] extracted_data.append({ 'context': context, 'question': question, 'answer': answer, 'start_pos': start_pos, }) return extracted_data def __len__(self): return len(self.data) def __getitem__(self, index): example = self.data[index] question = example['question'] context = example['context'] answer = example['answer'] inputs = self.tokenizer.encode_plus(question, context, add_special_tokens=True, padding='max_length', max_length=512, truncation=True, return_tensors='pt') input_ids = inputs['input_ids'].squeeze() attention_mask = inputs['attention_mask'].squeeze() start_pos = torch.tensor(example['start_pos']) return input_ids, attention_mask, start_pos, end_pos
Kun olet määrittänyt sen, voit jatkaa ja luoda esiintymän tästä luokasta ohittamalla file_path
argumentti sille.
file_path = 'diabetes.json'
dataset = diabetes(file_path)
Mallin kouluttaminen
Aion käyttää BertForQuestionAnswering
mallia, koska se soveltuu parhaiten laadunvarmistustehtäviin. Voit alustaa esiopetetut painot bert-base-uncased
mallia soittamalla from_pretrained
toiminto mallissa. Sinun tulisi myös valita arviointihäviötoiminto ja optimoija, jota käytät harjoitteluun.
Tutustu käytännönläheiseen, käytännölliseen Gitin oppimisoppaaseemme, jossa on parhaat käytännöt, alan hyväksymät standardit ja mukana tuleva huijauslehti. Lopeta Git-komentojen googlailu ja oikeastaan oppia se!
Käytän Adamin optimoijaa ja entropiahäviöfunktiota. Voit käyttää Pytorch-luokkaa DataLoader
ladata tietoja eri erissä ja myös sekoittaa niitä vääristymien välttämiseksi.
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') model = BertForQuestionAnswering.from_pretrained('bert-base-uncased')
model.to(device) optimizer = torch.optim.AdamW(model.parameters(), lr=2e-5)
loss_fn = torch.nn.CrossEntropyLoss()
batch_size = 8
num_epochs = 50 data_loader = DataLoader(dataset, batch_size=batch_size, shuffle=True)
Kun datalataaja on määritetty, voit jatkaa ja kirjoittaa viimeisen harjoitussilmukan. Jokaisen iteraation aikana jokainen erä, joka on saatu data_loader
sisältää batch_size
useita esimerkkejä, joilla eteenpäin ja taaksepäin eteneminen suoritetaan. Koodi yrittää löytää parametreille parhaan painosarjan, jolla häviö olisi minimaalinen.
for epoch in range(num_epochs): model.train() total_loss = 0 for batch in data_loader: input_ids = batch[0].to(device) attention_mask = batch[1].to(device) start_positions = batch[2].to(device) optimizer.zero_grad() outputs = model(input_ids, attention_mask=attention_mask, start_positions=start_positions) loss = outputs.loss loss.backward() optimizer.step() total_loss += loss.item() avg_loss = total_loss / len(data_loader) print(f"Epoch {epoch+1}/{num_epochs} - Average Loss: {avg_loss:.4f}")
Tämä viimeistelee hienosäätösi! Voit testata mallia asettamalla sen model.eval()
. Voit myös hienosäätää oppimisnopeutta ja no epochs -parametreja saadaksesi parhaat tulokset tiedoistasi.
Parhaat vinkit ja käytännöt
Tässä on joitain huomioitavia seikkoja, kun hienosäädät suuria kielimalleja mukautetuilla tiedoilla:
- Tietojoukon on edustettava kohdealuetta tai tehtävää, jossa haluat kielimallin loistavan. Clean ja hyvin jäsennelty data on välttämätöntä.
- Varmista, että datassasi on tarpeeksi koulutusesimerkkejä, jotta malli oppii malleja. Muutoin malli saattaa muistaa esimerkit ja istua liikaa ilman kapasiteettia yleistää näkymättömiin esimerkkeihin.
- Valitse valmiiksi koulutettu malli, joka on koulutettu käsillä olevaan tehtävään liittyvällä korpuksella. Kysymyksiin vastaamista varten valitsemme valmiiksi koulutetun mallin, joka on koulutettu Stanfordin kysymysvastaustietojoukosta. Vastaavasti käytettävissä on erilaisia malleja tehtäviin, kuten tunneanalyysiin, tekstin luomiseen, yhteenvetoon, tekstin luokitteluun ja muihin tehtäviin.
- Yrittää Gradienttikertymä jos sinulla on rajoitettu GPU-muisti. Tässä menetelmässä sen sijaan, että mallin painot päivitettäisiin jokaisen erän jälkeen, gradientit kerätään useille minierille ennen päivityksen suorittamista.
- Jos kohtaat ylisovitusongelman hienosäädön aikana, käytä laillistamisen tekniikoita. Joitakin yleisesti käytettyjä menetelmiä ovat muun muassa dropout-kerrosten lisääminen malliarkkitehtuuriin, painon vähentämisen ja kerrosten normalisoinnin toteuttaminen.
Yhteenveto
Suuret kielimallit voivat auttaa sinua automatisoimaan monia tehtäviä nopeasti ja tehokkaasti. Hienosäätö LLM:t auttavat sinua hyödyntämään oppimisen siirtämisen tehoa ja mukauttamaan sitä tiettyyn verkkotunnukseesi. Hienosäätö voi olla välttämätöntä, jos tietojoukkosi on aloilla, kuten lääketiede, tekninen markkinarako, rahoitustietojoukot ja paljon muuta.
Tässä artikkelissa käytimme BERTiä, koska se on avoimen lähdekoodin ja toimii hyvin henkilökohtaiseen käyttöön. Jos työskentelet suuren mittakaavan projektissa, voit valita tehokkaampia LLM:itä, kuten GPT3:a, tai muita avoimen lähdekoodin vaihtoehtoja. Muista, että suurten kielimallien hienosäätö voi olla laskennallisesti kallista ja aikaa vievää. Varmista, että sinulla on riittävästi laskentaresursseja, mukaan lukien GPU:t tai TPU:t mittakaavan mukaan.
- SEO-pohjainen sisällön ja PR-jakelu. Vahvista jo tänään.
- PlatoData.Network Vertical Generatiivinen Ai. Vahvista itseäsi. Pääsy tästä.
- PlatoAiStream. Web3 Intelligence. Tietoa laajennettu. Pääsy tästä.
- PlatoESG. Autot / sähköautot, hiili, CleanTech, energia, ympäristö, Aurinko, Jätehuolto. Pääsy tästä.
- BlockOffsets. Ympäristövastuun omistuksen nykyaikaistaminen. Pääsy tästä.
- Lähde: https://stackabuse.com/guide-to-fine-tuning-open-source-llms-on-custom-data/
- :on
- :On
- :ei
- :missä
- $ YLÖS
- 1
- 12
- 20
- 8
- a
- pystyy
- Meistä
- pääsy
- Accessed
- Tili
- kertyneet
- Saavuttaa
- toimet
- todella
- Aatami
- lisää
- Lisää
- hyväksytty
- Jälkeen
- eteenpäin
- AI
- Myös
- vaihtoehdot
- am
- keskuudessa
- määrä
- määrät
- an
- analyysi
- ja
- Toinen
- vastaus
- vastauksia
- Kaikki
- lähestymistapa
- arkkitehtuuri
- OVAT
- perustelu
- artikkeli
- AS
- At
- yrityksiä
- automatisoida
- automaattisesti
- saatavissa
- keskimäärin
- välttää
- perustua
- BE
- ollut
- ennen
- alle
- PARAS
- Paremmin
- välillä
- puolueellisuus
- Miljardi
- Kukinta
- reunus
- yritykset
- mutta
- by
- soittamalla
- CAN
- Koko
- tapaus
- paini
- Muutokset
- ChatGPT
- tarkastaa
- valinta
- Valita
- luokka
- luokittelu
- koodi
- yleisesti
- yhteisö
- Täydentää
- johtopäätös
- muodostuu
- sisältää
- tausta
- asiayhteyteen
- muuntaminen
- vastaava
- luoda
- luotu
- Luominen
- Ylittää
- ratkaiseva
- Nykyinen
- Tällä hetkellä
- asiakassuhde
- räätälöidä
- tiedot
- aineistot
- määritelty
- käyttöön
- haluttu
- kehitetty
- laite
- Diabetes
- DID
- Ruokavalio
- eri
- mitat
- useat
- do
- asiakirja
- asiakirjat
- ei
- verkkotunnuksen
- verkkotunnuksia
- Don
- tehty
- aikana
- kukin
- helposti
- tehokas
- tehokkaasti
- muu
- mahdollistaa
- loppu
- tarpeeksi
- varmistaa
- kokonaisuus
- aikakausi
- aikakausia
- olennainen
- arviointi
- Jopa
- EVER
- esimerkki
- Esimerkit
- kunnostautua
- erinomainen
- kallis
- vienti
- uute
- Kasvot
- Falls
- Ominaisuudet
- Fed
- ala
- Fields
- filee
- lopullinen
- Vihdoin
- taloudellinen
- Löytää
- Keskittää
- varten
- muoto
- Eteenpäin
- FRAME
- Ilmainen
- alkaen
- toiminto
- yleensä
- sukupolvi
- generatiivinen
- mennä
- Go
- hyvä
- GPU
- GPU
- kaltevuudet
- ohjaavat
- käsi
- kahva
- käytännön
- tapahtuu
- Olla
- terveys
- kuuli
- raskas
- auttaa
- siten
- tätä
- Korostaa
- huppu
- liihottaa
- Miten
- Miten
- HTTPS
- valtava
- ihmisen
- hirveä
- i
- if
- kuva
- kuvitella
- täytäntöönpanosta
- tuovan
- in
- sisältää
- mukana
- Mukaan lukien
- indeksi
- henkilöt
- tiedot
- panos
- tuloa
- asentaa
- esimerkki
- ohjeet
- olla vuorovaikutuksessa
- tulee
- esittely
- IT
- iteraatio
- Job
- json
- Pitää
- tarrat
- Kieli
- suuri
- laaja
- kerros
- kerrokset
- OPPIA
- oppinut
- oppiminen
- antaa
- Vaikutusvalta
- LG
- Kirjasto
- pitää
- rajallinen
- Lista
- ll
- OTK
- kuormitus
- loader
- lastaus
- pois
- Erä
- tehdä
- johtaja
- tapa
- käsin
- monet
- massiivinen
- Saattaa..
- tarkoittaa
- merkitys
- lääketieteellinen
- Muisti
- menetelmä
- menetelmät
- ehkä
- miljoonia
- minimi
- malli
- mallit
- muokata
- Moduulit
- Moduulit
- lisää
- eniten
- paljon
- moninkertainen
- my
- kansallinen
- Tarve
- tarvitaan
- tarpeet
- Uusi
- seuraava
- NIH
- NLP
- Nro
- normaali
- nyt
- numero
- objekti
- saada
- saatu
- of
- Tarjoukset
- usein
- on
- ONE
- verkossa
- vain
- avata
- avoimen lähdekoodin
- Vaihtoehto
- Vaihtoehdot
- or
- organisaatioiden
- Muut
- meidän
- ulos
- yli
- oma
- paketti
- paketit
- maksettu
- paria
- parametrit
- erityinen
- Ohimenevä
- polku
- kuviot
- varten
- suorituskyky
- suoritettu
- esittävä
- henkilöstö
- suunnitelma
- Platon
- Platonin tietotieto
- PlatonData
- pistettä
- mahdollisuuksia
- teho
- powered
- voimakas
- Käytännön
- aiemmin
- Ongelma
- Käsitelty
- projekti
- toimittaa
- tarjoaa
- pytorch
- Kysymyksiä ja vastauksia
- kysymys
- kysymykset
- nopea
- nopeasti
- hinta
- pikemminkin
- tavoittaa
- Lue
- tunnustaminen
- tunnistaa
- suositeltu
- vähentää
- tarkoitettuja
- Ihmissuhteet
- suhteellisesti
- merkityksellinen
- muistaa
- poistaa
- edustaa
- vaatimukset
- Esittelymateriaalit
- vastuullinen
- tulokset
- Tuotto
- Rengas
- ajaa
- s
- sanoa
- Asteikko
- raapia
- Haku
- nähdä
- SELF
- tuomita
- näkemys
- setti
- asetus
- varjo
- arkki
- shouldnt
- näyttää
- esitetty
- sekoittaa
- tarkoittavat
- samankaltainen
- pieni
- pienyritykset
- pienempiä
- jonkin verran
- lähde
- erityinen
- erityinen
- erityisesti
- Stackabus
- standardit
- seisoo
- Stanford
- Alkaa
- Aloita
- huippu-
- Vaihe
- stop
- jono
- tilaus
- niin
- riittävä
- YHTEENVETO
- tuki
- varma
- ottaa
- Puhua
- Kohde
- Tehtävä
- tehtävät
- Tekninen
- terminologia
- ehdot
- testi
- Tekstiluokitus
- kuin
- että
- -
- heidän
- Niitä
- sitten
- Siellä.
- Nämä
- ne
- tätä
- Kautta
- aika
- aikaavievä
- vinkit
- että
- merkitä
- tokenizing
- tokens
- työkalu
- ylin
- taskulamppu
- kohti
- Juna
- koulutettu
- koulutus
- siirtää
- siirretty
- muuntajat
- siirtyminen
- Kääntäminen
- hoito
- kokeillut
- kaksi
- tyyppi
- tyypit
- varten
- ymmärtää
- ymmärtäminen
- toisin kuin
- ajanmukainen
- Päivitykset
- päivittäminen
- käyttää
- käytetty
- käyttäjä
- käyttötarkoituksiin
- käyttämällä
- lajike
- Näytä
- haluta
- we
- paino
- HYVIN
- olivat
- Mitä
- taas
- joka
- vaikka
- leveä
- laajalti
- tulee
- with
- ilman
- sana
- sanoja
- työskentely
- toimii
- huoli
- olisi
- ei
- kirjoittaa
- Voit
- Sinun
- zephyrnet