Sejak pengenalannya pada tahun 2018, Bert telah mengubah pemprosesan bahasa semulajadi. Ia berfungsi dengan baik dalam tugas -tugas seperti analisis sentimen, menjawab soalan, dan kesimpulan bahasa. Menggunakan latihan dua arah dan penangkapan diri berasaskan pengubah, Bert memperkenalkan cara baru untuk memahami hubungan antara kata-kata dalam teks. Walau bagaimanapun, walaupun kejayaannya, Bert mempunyai batasan. Ia berjuang dengan kecekapan pengiraan, mengendalikan teks yang lebih panjang, dan memberikan tafsiran. Ini membawa kepada pembangunan Modernbert, model yang direka untuk menangani cabaran -cabaran ini. Modernbert meningkatkan kelajuan pemprosesan, mengendalikan teks yang lebih lama, dan menawarkan lebih banyak ketelusan untuk pemaju. Dalam artikel ini, kami akan meneroka cara menggunakan Modernbert untuk analisis sentimen, menonjolkan ciri -ciri dan penambahbaikannya ke atas Bert.
Objektif Pembelajaran
- Pengenalan ringkas kepada Bert dan mengapa Modernbert wujud
- memahami ciri -ciri modenbert
- bagaimana praktikal melaksanakan modenbert melalui contoh analisis sentimen
- Batasan Modernbert
Jadual Kandungan Apa itu Bert? Soalan
Apa itu Bert?
- Bert, yang bermaksud perwakilan encoder bidirectional dari Transformers, telah menjadi penukar permainan sejak pengenalannya oleh Google pada tahun 2018. Bert memperkenalkan konsep latihan bidirectional yang membolehkan model memahami konteksnya dengan melihat kata-kata sekitar dalam semua arah. Ini membawa kepada prestasi model yang lebih baik untuk beberapa tugas NLP, termasuk menjawab soalan, analisis sentimen, dan kesimpulan bahasa. Senibina Bert didasarkan pada transformer enkoder sahaja, yang menggunakan mekanisme perhatian diri untuk menimbang pengaruh kata-kata yang berbeza dalam ayat dan hanya mempunyai encoder. Ini bermakna mereka hanya memahami dan mengodkan input, dan tidak membina semula atau menjana output. Oleh itu, Bert sangat baik untuk menangkap hubungan kontekstual dalam teks, menjadikannya salah satu model NLP yang paling berkuasa dan meluas dalam beberapa tahun kebelakangan ini.
- Apa itu Modernbert?
- Walaupun kejayaan Bert, ia mempunyai batasan tertentu. Sebahagian daripada mereka adalah:
-
- Sumber-sumber pengiraan: Bertis Model yang intensif, intensif memori yang mahal, yang mana tidak dapat digunakan untuk aplikasi masa nyata atau untuk persediaan yang tidak mempunyai infrastruktur pengkomputeran yang dapat diakses. Panjang konteks: Bert mempunyai tetingkap konteks panjang tetap yang menjadi batasan dalam mengendalikan input jarak jauh seperti dokumen yang panjang.
- Interpretabiliti: Kerumitan model menjadikannya kurang ditafsirkan daripada model yang lebih mudah, yang membawa kepada cabaran dalam debugging dan melakukan pengubahsuaian kepada model.
- Pencegahan akal: Bert tidak mempunyai pemikiran akal sehat dan berjuang untuk memahami konteks, nuansa, dan penalaran logik di luar maklumat yang diberikan.
Modernbert menangani batasan-batasan ini dengan menggabungkan algoritma yang lebih efisien seperti Perhatian Flash dan Perhatian berganti lokal-global , yang mengoptimumkan penggunaan memori dan meningkatkan kelajuan pemprosesan. Di samping itu, Modernbert memperkenalkan peningkatan untuk mengendalikan panjang konteks yang lebih lama dengan lebih berkesan dengan mengintegrasikan teknik -teknik seperti embeddings posisional berputar (tali) untuk menyokong panjang konteks yang lebih panjang. Ia meningkatkan tafsiran dengan bertujuan untuk menjadi lebih telus dan mesra pengguna, menjadikannya lebih mudah bagi pemaju untuk menyahpepijat dan menyesuaikan model kepada tugas-tugas tertentu. Tambahan pula, Modernbert menggabungkan kemajuan dalam pemikiran akal sehat, membolehkan ia lebih memahami konteks, nuansa, dan hubungan logik di luar maklumat eksplisit yang disediakan. Ia sesuai untuk GPU biasa seperti Nvidia T4, A100, dan RTX 4090.
Modernbert dilatih dalam data dari pelbagai sumber bahasa Inggeris, termasuk dokumen web, kod, dan artikel saintifik. Ia dilatih pada 2 trilion token unik, tidak seperti pengulangan standard 20-40 yang popular dalam pengekod sebelumnya.
ia dikeluarkan dalam saiz berikut:
- Modernbert-Large yang mempunyai 28 lapisan dan 395 juta parameter
- Memahami ciri -ciri Modernbert
Beberapa ciri unik Modernbert adalah:
Perhatian Flash
Ini adalah algoritma baru yang dibangunkan untuk mempercepat mekanisme perhatian model pengubah dari segi masa dan penggunaan memori. Pengiraan perhatian dapat disediakan dengan menyusun semula operasi dan menggunakan jubin dan rekomputer. Jubin membantu memecahkan data besar ke dalam ketulan yang boleh diurus, dan recomputation mengurangkan penggunaan memori dengan mengira semula keputusan pertengahan seperti yang diperlukan. Ini mengurangkan penggunaan memori kuadratik ke linear, menjadikannya lebih efisien untuk urutan yang panjang. Overhead pengiraan mengurangkan. Ia adalah 2-4x lebih cepat daripada mekanisme perhatian tradisional. Perhatian kilat digunakan untuk mempercepatkan latihan dan kesimpulan model pengubah.
Perhatian bergantian tempatan-global
Salah satu ciri yang paling novel dari Modernbert adalah perhatian bergantian, bukannya perhatian global yang penuh.
-
Sementara itu, semua lapisan lain mempunyai tetingkap gelongsor. Dalam tetingkap gelongsor ini, setiap token hanya menghadiri 128 token terdekat. Ini adalah perhatian tempatan.
- Biasanya padding digunakan untuk mencari token terpanjang, tambahkan token padding yang tidak bermakna untuk mengisi urutan yang lebih pendek untuk menyamai panjangnya. Ini meningkatkan pengiraan pada token yang tidak bermakna. Unpadding menghilangkan token padding yang tidak perlu dari urutan, mengurangkan pengiraan sia -sia.
- pembungkusan urutan menyusun semula kumpulan teks ke dalam bentuk padat, mengumpulkan urutan yang lebih pendek bersama -sama untuk memaksimumkan penggunaan perkakasan.
- Saya telah menggunakan A100 GPU untuk pemprosesan lebih cepat di Google Colab. Untuk maklumat lanjut rujuk:
. Proses latihan akan memerlukan kunci API WANDB. Anda boleh membuat satu melalui: - berat dan bias. Langkah 1: Pasang perpustakaan yang diperlukan
Embeddings Posisi Rotary (Tali)
Embeddings Posisional Rotary (Tali) adalah teknik model pengubah yang mengkodekan kedudukan token dalam urutan menggunakan matriks putaran. Ia menggabungkan maklumat kedudukan mutlak dan relatif, menyesuaikan mekanisme perhatian untuk memahami perintah dan jarak antara token. Tali mengkodekan kedudukan mutlak token menggunakan matriks putaran dan juga mencatat maklumat kedudukan relatif atau perintah dan jarak antara token.
Unpadding and Sequencing
pembungkusan yang tidak berpengalaman dan urutan adalah teknik yang direka untuk mengoptimumkan memori dan kecekapan pengiraan.
Analisis sentimen menggunakan Modernbert
mari kita melaksanakan analisis sentimen menggunakan Modernbert secara praktikal. Kami akan melakukan tugas analisis sentimen menggunakan Modernbert. Analisis sentimen adalah jenis tugas klasifikasi teks tertentu yang bertujuan untuk mengklasifikasikan teks (contohnya ulasan) menjadi positif atau negatif.
dataset yang kami gunakan ialah dataset ulasan filem IMDB untuk mengklasifikasikan ulasan sama ada sentimen positif atau negatif.
nota:
Pasang perpustakaan yang diperlukan untuk bekerja dengan memeluk transformer muka.
#install libraries !pip install git+https://github.com/huggingface/transformers.git datasets accelerate scikit-learn -Uqq !pip install -U transformers>=4.48.0 import torch from transformers import AutoTokenizer, AutoModelForSequenceClassification, TrainingArguments, Trainer,AutoModelForMaskedLM,AutoConfig from datasets import load_dataset
Langkah 2: Muatkan dataset IMDB menggunakan fungsi LOAD_DATASET
perintah IMDB ["Ujian"] [0] akan mencetak sampel pertama dalam perpecahan ujian Dataset Kajian Filem IMDB i.e Kajian Ujian Pertama bersama -sama dengan label yang berkaitan.#Load the dataset from datasets import load_dataset imdb = load_dataset("imdb") #print the first test sample imdb["test"][0]
Langkah 3: Tokenisasiokenize dataset menggunakan tokenizer modenbert-base pra-terlatih. Proses ini menukarkan teks ke dalam input berangka yang sesuai untuk model. Perintah "tokenized_test_dataset [0]" akan mencetak sampel pertama dataset ujian tokenized termasuk input tokenized seperti ID input dan label.
Langkah 4: Inisialisasi model modenbert-asas untuk klasifikasi sentimen
#install libraries !pip install git+https://github.com/huggingface/transformers.git datasets accelerate scikit-learn -Uqq !pip install -U transformers>=4.48.0 import torch from transformers import AutoTokenizer, AutoModelForSequenceClassification, TrainingArguments, Trainer,AutoModelForMaskedLM,AutoConfig from datasets import load_dataset
Langkah 5: Sediakan dataset
Sediakan dataset dengan menamakan semula lajur label sentimen (label) ke 'label' dan mengeluarkan lajur yang tidak perlu.
#Load the dataset from datasets import load_dataset imdb = load_dataset("imdb") #print the first test sample imdb["test"][0]
Langkah 6: Tentukan metrik pengiraan
mari kita gunakan f1_score sebagai metrik untuk menilai model kami. Kami akan menentukan fungsi untuk memproses ramalan penilaian, dan mengira skor F1 mereka. Ini membolehkan kita membandingkan ramalan model berbanding label yang benar.
#initialize the tokenizer and the model tokenizer = AutoTokenizer.from_pretrained("answerdotai/ModernBERT-base") model = AutoModelForMaskedLM.from_pretrained("answerdotai/ModernBERT-base") #define the tokenizer function def tokenizer_function(example): return tokenizer( example["text"], padding="max_length", truncation=True, max_length=512, ## max length can be modified return_tensors="pt" ) #tokenize training and testing data set based on above defined tokenizer function tokenized_train_dataset = imdb["train"].map(tokenizer_function, batched=True) tokenized_test_dataset = imdb["test"].map(tokenizer_function, batched=True) #print the tokenized output of first test sample print(tokenized_test_dataset[0])
Langkah 7: Tetapkan Argumen Latihan
Tentukan hyperparameter dan konfigurasi lain untuk penalaan yang baik model menggunakan Latihan Latihan Face Hugging. Marilah kita memahami beberapa hujah:
- train_bsz, val_bsz : Menunjukkan saiz batch untuk latihan dan pengesahan. Saiz batch menentukan bilangan sampel yang diproses sebelum parameter dalaman model dikemas kini.
- lr : Kadar pembelajaran mengawal pelarasan berat model berkenaan dengan kecerunan kerugian.
- betas : Ini adalah parameter beta untuk pengoptimuman Adam.
- n_epochs : bilangan zaman, menunjukkan lulus lengkap melalui keseluruhan dataset latihan.
- eps : pemalar kecil ditambah kepada penyebut untuk meningkatkan kestabilan berangka dalam pengoptimuman Adam.
- wd : Berdiri untuk kerosakan berat badan, teknik regularization untuk mengelakkan overfitting dengan menghukum berat besar.
#initialize the model config = AutoConfig.from_pretrained("answerdotai/ModernBERT-base") model = AutoModelForSequenceClassification.from_config(config)
Langkah 8: Latihan Model
Gunakan kelas jurulatih untuk melaksanakan proses latihan dan penilaian model.
#data preparation step - train_dataset = tokenized_train_dataset.remove_columns(['text']).rename_column('label', 'labels') test_dataset = tokenized_test_dataset.remove_columns(['text']).rename_column('label', 'labels')
import numpy as np from sklearn.metrics import f1_score # Metric helper method def compute_metrics(eval_pred): predictions, labels = eval_pred predictions = np.argmax(predictions, axis=1) score = f1_score( labels, predictions, labels=labels, pos_label=1, average="weighted" ) return {"f1": float(score) if score == 1 else score}
Langkah 10: Simpan model yang disesuaikan dengan baik
Simpan model dan tokenizer yang disesuaikan untuk digunakan semula.Langkah 11: Ramalkan sentimen ulasan
#define training arguments train_bsz, val_bsz = 32, 32 lr = 8e-5 betas = (0.9, 0.98) n_epochs = 2 eps = 1e-6 wd = 8e-6 training_args = TrainingArguments( output_dir=f"fine_tuned_modern_bert", learning_rate=lr, per_device_train_batch_size=train_bsz, per_device_eval_batch_size=val_bsz, num_train_epochs=n_epochs, lr_scheduler_type="linear", optim="adamw_torch", adam_beta1=betas[0], adam_beta2=betas[1], adam_epsilon=eps, logging_strategy="epoch", eval_strategy="epoch", save_strategy="epoch", load_best_model_at_end=True, bf16=True, bf16_full_eval=True, push_to_hub=False, )
di sini: 0 Menunjukkan semakan negatif dan 1 menunjukkan kajian positif. Untuk contoh baru saya, output harus [0,1] kerana membosankan menunjukkan kajian negatif (0) dan spektakuler menunjukkan pendapat positif sehingga 1 akan diberikan sebagai output.#Create a Trainer instance trainer = Trainer( model=model, # The pre-trained model args=training_args, # Training arguments train_dataset=train_dataset, # Tokenized training dataset eval_dataset=test_dataset, # Tokenized test dataset compute_metrics=compute_metrics, # Personally, I missed this step, my output won't show F1 score )
Batasan ModernbertWalaupun Modernbert membawa beberapa penambahbaikan ke atas Bert tradisional, ia masih mempunyai beberapa batasan:
- Bias data latihan: Ia diterjemahkan pada bahasa Inggeris dan data kod, oleh itu ia tidak dapat dilakukan secara effeciently pada bahasa lain atau teks bukan kod.
- Kompleksiti : Peningkatan seni bina dan teknik baru seperti Perhatian Flash dan Rotary Positional Enddings menambah kerumitan kepada model, yang boleh menjadikannya lebih sukar untuk dilaksanakan dan menyesuaikan diri untuk tugas-tugas tertentu.
- kelajuan inferensi : manakala perhatian flash meningkatkan kelajuan kesimpulan, menggunakan tetingkap token 8,192 penuh mungkin masih lebih perlahan.
Kesimpulan
Modernbert mengambil asas Bert dan memperbaikinya dengan pemprosesan yang lebih cepat, pengendalian teks panjang yang lebih baik, dan tafsiran yang dipertingkatkan. Walaupun ia masih menghadapi cabaran seperti kecenderungan data latihan dan kerumitan, ia merupakan lonjakan yang ketara dalam NLP. Modernbert membuka kemungkinan baru untuk tugas -tugas seperti analisis sentimen dan klasifikasi teks, menjadikan pemahaman bahasa maju lebih efisien dan boleh diakses.
Takeaways Key
- Modernbert meningkatkan Bert dengan menetapkan isu -isu seperti ketidakcekapan dan pengendalian konteks terhad.
- Ia menggunakan perhatian kilat dan embeddings posisi berputar untuk pemprosesan yang lebih cepat dan sokongan teks yang lebih panjang.
- Modernbert sangat bagus untuk tugas seperti analisis sentimen dan klasifikasi teks.
- Ia masih mempunyai beberapa batasan, seperti bias ke arah bahasa Inggeris dan data kod.
- alat seperti memeluk muka dan wandb memudahkan untuk dilaksanakan dan digunakan.
Rujukan:
- Modernbert Blog
- Dokumentasi Moderbert
Media yang ditunjukkan dalam artikel ini tidak dimiliki oleh Analytics Vidhya dan digunakan pada budi bicara penulis. Soalan Lazim
Q1. Apakah arkitek encoder sahaja?Ans. Ans. Senibina encoder-only memproses urutan input tanpa menghasilkan urutan output, memberi tumpuan kepada pemahaman dan pengekodan input.ans. Beberapa batasan Bert termasuk sumber pengiraan yang tinggi, panjang konteks tetap, ketidakcekapan, kerumitan, dan kekurangan pemikiran akal.Ans. Mekanisme perhatian adalah teknik yang membolehkan model memberi tumpuan kepada bahagian -bahagian tertentu input untuk menentukan bahagian mana yang lebih atau kurang penting.Q4. Apakah perhatian bergantian?
Ans. Mekanisme ini bergantian antara memberi tumpuan kepada konteks tempatan dan global dalam urutan teks. Perhatian tempatan menyoroti perkataan atau frasa bersebelahan, mengumpul maklumat halus, sedangkan perhatian global mengiktiraf corak dan hubungan keseluruhan di seluruh teks. Q5. Apakah embeddings berpotensi berpotensi? Bagaimanakah mereka berbeza daripada embeddings kedudukan tetap?Ans. Berbeza dengan embeddings kedudukan tetap, yang hanya menangkap kedudukan mutlak, embeddings posisional berputar (tali) menggunakan matriks putaran untuk menyandarkan kedua -dua kedudukan mutlak dan relatif. Tali lebih baik dengan urutan lanjutan.
Atas ialah kandungan terperinci Meningkatkan Analisis Sentimen dengan Modernbert. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Pengenalan Dalam kejuruteraan segera, "Grafik Pemikiran" merujuk kepada pendekatan baru yang menggunakan teori graf untuk struktur dan membimbing proses penalaran AI. Tidak seperti kaedah tradisional, yang sering melibatkan linear

Pengenalan Tahniah! Anda menjalankan perniagaan yang berjaya. Melalui laman web anda, kempen media sosial, webinar, persidangan, sumber percuma, dan sumber lain, anda mengumpul 5000 ID e -mel setiap hari. Langkah jelas seterusnya adalah

Pengenalan Dalam persekitaran pembangunan perisian pantas hari ini, memastikan prestasi aplikasi yang optimum adalah penting. Memantau metrik masa nyata seperti masa tindak balas, kadar ralat, dan penggunaan sumber dapat membantu utama

"Berapa banyak pengguna yang anda ada?" Dia ditakdirkan. "Saya fikir kali terakhir yang kami katakan ialah 500 juta aktif mingguan, dan ia berkembang dengan pesat," jawab Altman. "Anda memberitahu saya bahawa ia seperti dua kali ganda dalam beberapa minggu sahaja," kata Anderson. "Saya mengatakan bahawa priv

Pengenalan Mistral telah mengeluarkan model multimodal yang pertama, iaitu Pixtral-12B-2409. Model ini dibina atas parameter 12 bilion Mistral, NEMO 12B. Apa yang membezakan model ini? Ia kini boleh mengambil kedua -dua gambar dan Tex

Bayangkan mempunyai pembantu berkuasa AI yang bukan sahaja memberi respons kepada pertanyaan anda tetapi juga mengumpulkan maklumat, melaksanakan tugas, dan juga mengendalikan pelbagai jenis teks, imej, dan kod. Bunyi futuristik? Dalam ini a

Pengenalan Industri kewangan adalah asas kepada mana -mana pembangunan negara, kerana ia memacu pertumbuhan ekonomi dengan memudahkan urus niaga yang cekap dan ketersediaan kredit. The ease with which transactions occur and credit

Pengenalan Data dijana pada kadar yang belum pernah terjadi sebelumnya dari sumber seperti media sosial, urus niaga kewangan, dan platform e-dagang. Mengendalikan aliran maklumat yang berterusan ini adalah satu cabaran, tetapi ia menawarkan


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft