検索
ホームページテクノロジー周辺機器AIModernbertによる感情分析の強化

2018年に導入されて以来、Bertは自然言語処理を変革しました。センチメント分析、質問応答、言語の推論などのタスクでうまく機能します。双方向トレーニングと変圧器ベースの自己関節を使用して、バートはテキストの単語間の関係を理解するための新しい方法を導入しました。しかし、その成功にもかかわらず、バートには制限があります。計算効率、より長いテキストの処理、解釈可能性を提供することに苦労しています。これにより、これらの課題に対処するために設計されたモデルであるModernBertの開発が行われました。 ModernBertは処理速度を向上させ、より長いテキストをより良く処理し、開発者により透明性を高めます。この記事では、ModernBertをセンチメント分析に使用する方法を検討し、Bertの機能と改善を強調します。

学習目標

    バートの簡単な紹介と現代の存在が存在した理由
  • ModernBert
  • の特徴を理解してください
  • センチメント分析を介してモダンバートを実際に実装する方法
  • ModernBertの制限

この記事は、 データサイエンスブログの一部として公開されました。 目次

bertとは何ですか?

    Modernbertとは何ですか?質問
  • bertとは?
  • Transformersからの双方向エンコーダー表現の略であるBertは、2018年にGoogleが導入して以来、ゲームチェンジャーでした。Bertは、あらゆる方向に周囲の単語を調べてコンテキストを理解できるように、モデルがコンテキストを理解できるようにする双方向トレーニングの概念を導入しました。これにより、質問の回答、感情分析、言語の推論など、多くのNLPタスクのモデルのパフォーマンスが大幅に向上しました。 Bertのアーキテクチャは、文の異なる単語の影響を比較検討し、エンコーダのみを持っている自己触媒メカニズムを使用するエンコーダーのみの変圧器に基づいています。これは、入力のみを理解してエンコードし、出力を再構築または生成しないことを意味します。したがって、バートはテキストの文脈的関係をキャプチャするのに優れており、近年最も強力で広く採用されているNLPモデルの1つとなっています。
  • ModernBertとは?
  • バートの画期的な成功にもかかわらず、特定の制限があります。それらのいくつかは次のとおりです
    • 計算リソース:Bertisリアルタイムのアプリケーションまたはアクセス可能な強力なコンピューティングインフラストラクチャを持たないセットアップを考慮した計算高価でメモリ集約型モデル。
    • コンテキストの長さ:Bertには固定長のコンテキストウィンドウがあり、長いドキュメントのような長距離入力を処理することに制限となります。
    • 解釈可能性:モデルの複雑さにより、モデルよりも単純なモデルよりも解釈が少なくなり、モデルのデバッグと実行の課題につながります。
    • 常識の推論:バートは、特定の情報を超えて、文脈、ニュアンス、論理的推論を理解するために常識の推論と苦労を欠いています。
    • bert vs modernbert
    • Modernbertは、フラッシュの注意ローカルグロバル交互の注意などのより効率的なアルゴリズムを組み込むことにより、これらの制限に対処します。さらに、ModernBertは、より長いコンテキストの長さをサポートするために、ロータリー位置埋め込み(ロープ)などのテクニックを統合することにより、より長いコンテキストの長さをより効果的に処理するための機能強化を導入します。

      より透明で使いやすいことを目指すことにより、解釈可能性が向上し、開発者がモデルを特定のタスクに簡単にデバッグして適応させます。さらに、ModernBertは、常識の推論で進歩を取り入れており、提供された明示的な情報を超えて、文脈、ニュアンス、および論理的な関係をよりよく理解できるようにします。 Nvidia T4、A100、RTX 4090などの一般的なGPUに適しています。

      ModernBertは、Webドキュメント、コード、科学記事など、さまざまな英語のソースからのデータについてトレーニングされています。以前のエンコーダーで人気のある標準の20-40の繰り返しとは異なり、2兆個のユニークなトークンでトレーニングされています。

      次のサイズでリリースされています:

      22層と1億4900万のパラメーターを備えたModernBert-Base

      28層と3億9,500万のパラメーターを備えたModernBert-Large

      • ModernBertの特徴を理解する
      • ModernBertのユニークな特徴のいくつかは次のとおりです
      • フラッシュの注意

      これは、時間とメモリの使用に関してトランスモデルの注意メカニズムを高速化するために開発された新しいアルゴリズムです。注意の計算は、操作を再配置し、タイルと再構成を使用することにより、盛り上げることができます。タイル張りは、大きなデータを管理可能なチャンクに分解するのに役立ち、必要に応じて中間結果を再計算することにより、再構成がメモリの使用量を削減します。これにより、二次メモリの使用量が線形に削減され、長いシーケンスの方がはるかに効率的になります。計算オーバーヘッドが減少します。従来の注意メカニズムよりも2〜4倍高速です。フラッシュの注意は、変圧器モデルのトレーニングと推論を高速化するために使用されます。

      ローカルグローバル交互の注意

      Modernbertの最も斬新な特徴の1つは、完全なグローバルな注意ではなく、注意を交互にすることです。

      完全な入力は、3つのレイヤーごとにのみ参加します。これは世界的な注意です。

      その間、他のすべてのレイヤーにはスライドウィンドウがあります。このスライディングウィンドウでは、すべてのトークンが最寄りの128トークンのみに出席します。これは局所的な注意です。

        回転位置埋め込み(ロープ)

        回転位置埋め込み(ロープ)は、回転行列を使用してシーケンスでトークンの位置をコードするトランスモデル技術です。絶対的および相対的な位置情報が組み込まれ、トークン間の順序と距離を理解するための注意メカニズムを調整します。ロープは、回転マトリックスを使用してトークンの絶対位置をエンコードし、相対的な位置情報またはトークン間の順序と距離にも注意してください。

        upadding and Sequencing

        unpadding and Sequenceパッキングは、メモリと計算効率を最適化するために設計された技術です。

        通常、パディングは最長のトークンを見つけるために使用され、意味のないパディングトークンを追加して、残りの短いシーケンスをそれらの長さに等しく埋めます。これにより、意味のないトークンでの計算が増加します。貼り付けて、シーケンスから不必要なパディングトークンを削除し、無駄な計算を減らします。
          シーケンスパッキングは、テキストのバッチをコンパクトなフォームに再編成し、より短いシーケンスを一緒にグループ化してハードウェアの使用率を最大化します。
        • ModernBertを使用したセンチメント分析
        • モダンバートを使用してセンチメント分析を実質的に実装しましょう。 ModernBertを使用してセンチメント分析タスクを実行します。センチメント分析は、テキスト(例)を正または否定に分類することを目的とする特定のタイプのテキスト分類タスクです。
        使用しているデータセットはIMDBムービーレビューデータセットです。レビューを肯定的または否定的な感情に分類します。

        注:

        A100 GPUを使用して、Google Colabでより速い処理を行いました。詳細については、次を参照してください:AnswerDotai/ModernBert-Base

          トレーニングプロセスには、wandb apiキーが必要です。 viaを作成できます:
        • 重量とバイアス ステップ1:必要なライブラリをインストール フェイストランスを抱きしめるために必要なライブラリをインストールします。
        ステップ2:LOAD_DATASET関数を使用してIMDBデータセットをロードします

        コマンドIMDB [「テスト」] [0]は、IMDBムービーレビューデータセットのテスト分割で最初のサンプルを印刷します。つまり、関連するラベルとともに最初のテストレビュー。

#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

Modernbertによる感情分析の強化ステップ3:トークン化

事前に訓練されたModernbertベーストークネイザーを使用してデータセットを閉鎖します。このプロセスは、テキストをモデルに適した数値入力に変換します。コマンド「tokenized_test_dataset [0]」は、入力IDやラベルなどのトークン化された入力を含むトークン化されたテストデータセットの最初のサンプルを印刷します。

#Load the dataset
from datasets import load_dataset
imdb = load_dataset("imdb")
#print the first test sample
imdb["test"][0]

ステップ4:センチメント分類のためにModernbert-Baseモデルを初期化

#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

ステップ5:データセットを準備

センチメントラベル列(ラベル)を「ラベル」に名前を変更し、不要な列を削除してデータセットを準備してください。

#Load the dataset
from datasets import load_dataset
imdb = load_dataset("imdb")
#print the first test sample
imdb["test"][0]
ステップ6:計算メトリックを定義します

モデルを評価するために、f1_scoreをメトリックとして使用しましょう。評価予測を処理する関数を定義し、F1スコアを計算します。これにより、モデルの予測と真のラベルを比較してみましょう。 

#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])
ステップ7:トレーニングの引数を設定

ハガーフェイスのトレーニングアルグを使用してモデルを微調整するためのハイパーパラメーターとその他の構成を定義します。いくつかの議論を理解しましょう:

  • train_bsz、val_bsz:トレーニングと検証のバッチサイズを示します。バッチサイズは、モデルの内部パラメーターが更新される前に処理されたサンプルの数を決定します。
  • lr
  • :学習レートは、損失勾配に対するモデルの重みの調整を制御します。 ベータ
  • :これらは、Adam Optimizerのベータパラメーターです。
  • n_epochs :エポックの数。トレーニングデータセット全体を完全に通過することを示しています。
  • eps :Adam Optimizerの数値の安定性を改善するために、分母に小さな定数が追加されました。
  • wd
  • :大きな重量を罰することで過剰適合を防ぐための正規化手法である重量崩壊の略です。
  • ステップ8:モデルトレーニング トレーナークラスを使用して、モデルトレーニングと評価プロセスを実行します。
#initialize the model
config = AutoConfig.from_pretrained("answerdotai/ModernBERT-base")

model = AutoModelForSequenceClassification.from_config(config)

ステップ9:評価

データセットのテストでトレーニングされたモデルを評価します
#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')

Modernbertによる感情分析の強化

ステップ10:微調整されたモデルを保存
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}

微調整されたモデルとトークネイザーを保存して、さらに再利用します Modernbertによる感情分析の強化

ステップ11:レビューの感情を予測します

Modernbertによる感情分析の強化ここ:0は否定的なレビューを示し、1は肯定的なレビューを示します。私の新しい例では、退屈は否定的なレビュー(0)を示し、壮大な意見を示すため、出力は[0,1]である必要があります。したがって、1は出力として与えられます。

ModernBertの制限
#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,
)

Modernbertは従来のBertよりもいくつかの改善をもたらしますが、まだいくつかの制限があります。
  1. トレーニングデータバイアス:英語データとコードデータに登録されているため、他の言語や非コードテキストで効果的に実行できません。
  2. 複雑さ:フラッシュの注意や回転位置埋め込みなどのアーキテクチャの強化と新しい手法により、モデルに複雑さが加わります。
  3. 推論速度:フラッシュの注意は推論速度を改善しますが、完全な8,192トークンウィンドウを使用するとまだ遅くなる場合があります。
  4. 結論

ModernBertはBertの基礎を奪い、処理をより高速化し、長いテキストのより良い処理、解釈可能性を向上させて改善します。データバイアスや複雑さのトレーニングなどの課題に依然として直面していますが、NLPの大きな飛躍を表しています。 ModernBertは、感情分析やテキスト分類などのタスクの新しい可能性を開き、高度な言語の理解により効率的でアクセスしやすくなります。

キーテイクアウト

ModernBertは、非効率性や限られたコンテキスト処理などの問題を修正することにより、Bertを改善します。

フラッシュの注意と回転位置埋め込みを使用して、より速い処理と長いテキストサポートを使用します。
    ModernBertは、感情分析やテキスト分類などのタスクに最適です。
  • 英語やコードデータへのバイアスなど、まだいくつかの制限があります。 顔やワンドブを抱き締めるようなツールは、簡単に実装して使用できます。
  • 参考文献:
ModernBert Blog

moderbertドキュメント

    この記事に示されているメディアは、分析vidhyaが所有しておらず、著者の裁量で使用されています。
  • よくある質問
  • q1。エンコーダーのみのアーキテクチャとは? Ans。 エンコーダのみのアーキテクチャ出力シーケンスを生成せずに入力シーケンスを処理し、入力の理解とエンコードに焦点を当てています。 Bertの制限は何ですか? BERTのいくつかの制限には、高い計算リソース、固定されたコンテキストの長さ、非効率性、複雑さ、および常識推論の欠如が含まれます。注意メカニズムは何ですか?注意メカニズムは、モデルが入力の特定の部分に焦点を合わせて、どの部分が多かれ少なかれ重要であるかを判断できる手法です。交互の注意とは何ですか?このメカニズムは、テキストシーケンス内のローカルコンテキストとグローバルコンテキストに焦点を当てることを交互にします。 地元の注意は、隣接する単語やフレーズを強調し、細い情報を収集しますが、グローバルな注意はテキスト全体の全体的なパターンと関係を認識します。 q5。回転能力の埋め込みとは何ですか?固定された位置埋め込みとどう違うのですか?絶対位置のみをキャプチャする固定位置埋め込みとは対照的に、回転位置埋め込み(ロープ)は回転行列を使用して、絶対位置と相対位置の両方をエンコードします。ロープは、拡張されたシーケンスでより良く機能します。 ModernBertの潜在的なアプリケーションは何ですか? ModernBertのいくつかのアプリケーションは、テキスト分類、感情分析、質問の回答、指定された認識、法的テキスト分析、コード理解などの分野にあります。 Wandb APIが何を必要とするのか? Weights&Biase(W&B)は、ML実験を追跡、視覚化、および共有するためのプラットフォームです。モデルメトリックの追跡、実験データの視覚化、結果の共有などに役立ちます。 精度などのメトリックを監視したり、進行状況を視覚化したり、ハイパーパラメーターを調整したり、モデルのバージョンを追跡したりするのに役立ちます。

以上がModernbertによる感情分析の強化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
迅速なエンジニアリングにおける思考のグラフは何ですか迅速なエンジニアリングにおける思考のグラフは何ですかApr 13, 2025 am 11:53 AM

導入 迅速なエンジニアリングでは、「思考のグラフ」とは、グラフ理論を使用してAIの推論プロセスを構造化および導く新しいアプローチを指します。しばしば線形sを含む従来の方法とは異なります

Genaiエージェントとの電子メールマーケティングを組織に最適化しますGenaiエージェントとの電子メールマーケティングを組織に最適化しますApr 13, 2025 am 11:44 AM

導入 おめでとう!あなたは成功したビジネスを運営しています。ウェブページ、ソーシャルメディアキャンペーン、ウェビナー、会議、無料リソース、その他のソースを通じて、毎日5000の電子メールIDを収集します。次の明白なステップはです

Apache Pinotによるリアルタイムアプリのパフォーマンス監視Apache Pinotによるリアルタイムアプリのパフォーマンス監視Apr 13, 2025 am 11:40 AM

導入 今日のペースの速いソフトウェア開発環境では、最適なアプリケーションパフォーマンスが重要です。応答時間、エラーレート、リソース利用などのリアルタイムメトリックを監視することで、メインに役立ちます

ChatGptは10億人のユーザーにヒットしますか? 「わずか数週間で2倍になりました」とOpenai CEOは言いますChatGptは10億人のユーザーにヒットしますか? 「わずか数週間で2倍になりました」とOpenai CEOは言いますApr 13, 2025 am 11:23 AM

「ユーザーは何人いますか?」彼は突き出した。 「私たちが最後に言ったのは毎週5億人のアクティブであり、非常に急速に成長していると思います」とアルトマンは答えました。 「わずか数週間で2倍になったと言った」とアンダーソンは続けた。 「私はそのprivと言いました

PIXTRAL -12B:Mistral AI'の最初のマルチモーダルモデル-Analytics VidhyaPIXTRAL -12B:Mistral AI'の最初のマルチモーダルモデル-Analytics VidhyaApr 13, 2025 am 11:20 AM

導入 Mistralは、最初のマルチモーダルモデル、つまりPixtral-12B-2409をリリースしました。このモデルは、Mistralの120億個のパラメーターであるNemo 12bに基づいて構築されています。このモデルを際立たせるものは何ですか?これで、画像とTexの両方を採用できます

生成AIアプリケーションのエージェントフレームワーク - 分析Vidhya生成AIアプリケーションのエージェントフレームワーク - 分析VidhyaApr 13, 2025 am 11:13 AM

クエリに応答するだけでなく、情報を自律的に収集し、タスクを実行し、テキスト、画像、コードなどの複数のタイプのデータを処理するAIを搭載したアシスタントがいることを想像してください。未来的に聞こえますか?これでa

金融セクターにおける生成AIの応用金融セクターにおける生成AIの応用Apr 13, 2025 am 11:12 AM

導入 金融業界は、効率的な取引と信用の可用性を促進することにより経済成長を促進するため、あらゆる国の発展の基礎となっています。取引の容易さとクレジット

オンライン学習とパッシブアグレッシブアルゴリズムのガイドオンライン学習とパッシブアグレッシブアルゴリズムのガイドApr 13, 2025 am 11:09 AM

導入 データは、ソーシャルメディア、金融取引、eコマースプラットフォームなどのソースから前例のないレートで生成されています。この連続的な情報ストリームを処理することは課題ですが、

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい