2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
BERT, Bidirectional Encoder Representations from Transformers, on valmiiksi koulutettu kielimalli, jonka Google julkaisi vuonna 2018. BERT:n syntyminen on tärkeä virstanpylväs luonnollisen kielen käsittelyn alalla, koska se parantaa merkittävästi useiden kielitehtävien suorituskykyä. Tässä artikkelissa esitellään yksityiskohtaisesti, kuinka BERT:tä käytetään loppupään tehtäviin, jotta kaikki ymmärtävät ja soveltavat tätä tehokasta työkalua paremmin.
BERT on Transformer-arkkitehtuuriin perustuva kielimalli. Toisin kuin aikaisemmissa kielimalleissa, BERT käyttää kaksisuuntaista koulutusmenetelmää ja voi tarkastella kontekstuaalista tietoa samanaikaisesti, mikä tekee siitä hyvin suoriutuvan erilaisissa tehtävissä. BERT:n perusideana on saavuttaa erinomainen suorituskyky laajalla ohjaamattomalla esikoulutuksella ja sitten hienosäädöllä tiettyihin tehtäviin.
BERT:n koulutusprosessi on jaettu kahteen vaiheeseen: esikoulutukseen ja hienosäätöön.
esikoulutus : Tässä vaiheessa BERT:tä koulutetaan suuren tekstidatamäärän avulla, ja tehtäviin kuuluvat Masked Language Model (MLM) ja Next Sentence Prediction (NSP). MLM-tehtävä edellyttää, että malli ennustaa peitettyjä sanoja, kun taas NSP-tehtävä vaatii mallin ennustamaan, ovatko kaksi lausetta jatkuvia.
hienosäätö : Kun esikoulutus on suoritettu, meidän on hienosäädettävä mallia tiettyjen jatkotehtävien mukaan. Loppuvaiheen tehtävät voivat olla luokittelua, regressiota, kysymyksiin vastaamista, nimetyn kokonaisuuden tunnistusta jne. Lisäkoulutuksella tehtäväkohtaisista tietokokonaisuuksista BERT voi mukautua paremmin tiettyjen tehtävien tarpeisiin.
Seuraavaksi esittelemme BERT:n käyttämisen tekstin luokittelutehtäviin tietyn esimerkin kautta.
Ensin meidän on asennettava Transformers-kirjasto, joka on erittäin suosittu Hugging Facen tarjoama kirjasto, jonka avulla voimme käyttää erilaisia valmiiksi koulutettuja kielimalleja.
pip install transformers
pip install torch
Meidän on ladattava valmiiksi koulutettu BERT-malli ja vastaava Tokenizer Hugging Facen mallikirjastosta.
from transformers import BertTokenizer, BertForSequenceClassification
from transformers import Trainer, TrainingArguments
# 加载预训练的BERT模型和Tokenizer
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertForSequenceClassification.from_pretrained('bert-base-uncased', num_labels=2)
Tekstin luokittelua varten meidän on muutettava tekstidata mallin hyväksymään syöttömuotoon. Tämä tarkoittaa tyypillisesti tekstin tokenointia ja muuntamista tunnustunnuksiksi sekä huomiomaskien luomista.
# 示例数据
texts = ["I love programming.", "I hate bugs."]
labels = [1, 0]
# 数据预处理
inputs = tokenizer(texts, return_tensors='pt', padding=True, truncation=True)
inputs['labels'] = torch.tensor(labels)
Trainer API:n avulla voimme helposti hienosäätää mallia. Ensin sinun on asetettava harjoitusparametrit ja sitten kutsuttava kouluttaja harjoittelemaan.
training_args = TrainingArguments(
output_dir='./results', # 输出目录
num_train_epochs=3, # 训练的epoch数
per_device_train_batch_size=4, # 训练时每个设备的batch size
per_device_eval_batch_size=8, # 评估时每个设备的batch size
warmup_steps=500, # 预热步数
weight_decay=0.01, # 权重衰减
logging_dir='./logs', # 日志目录
logging_steps=10,
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=inputs,
eval_dataset=inputs
)
# 开始训练
trainer.train()
Kun koulutus on suoritettu, voimme käyttää koulutettua mallia arviointiin ja ennustamiseen. Arvioinnissa voimme käyttää validointijoukkoa laskeaksemme indikaattoreita, kuten tarkkuutta ennustamiseen, voimme syöttää uutta tekstiä ja saada luokittelutulokset.
# 评估
results = trainer.evaluate()
print(results)
# 预测
test_texts = ["I enjoy learning new things.", "I dislike errors."]
test_inputs = tokenizer(test_texts, return_tensors='pt', padding=True, truncation=True)
predictions = model(**test_inputs)
print(predictions)
Tekstin luokittelun lisäksi BERT toimii hyvin myös muissa luonnollisen kielen käsittelytehtävissä. Esimerkiksi:
Tehokkaana esikoulutettuna kielimallina BERT on saavuttanut merkittäviä tuloksia useissa luonnollisen kielen käsittelytehtävissä. Kahden esikoulutuksen ja hienosäädön vaiheen kautta BERT voi mukautua tehokkaasti erilaisiin loppupään tehtäviin. Toivon, että tämän artikkelin esittelyn kautta jokainen voi paremmin ymmärtää ja soveltaa BERT:tä ja ratkaista käytännön ongelmia.
Jos haluat lisää jännittävää sisältöä, kiinnitä huomiota: ChatGPT kiinalainen verkkosivusto