🚀 T5-base 感情表現抽出用にファインチューニングされたモデル
このモデルの開発に関するすべての功績は Lorenzo Ampil にあります。
GoogleのT5 ベースモデルを、Tweet Sentiment Extraction Dataset でファインチューニングし、感情表現抽出 という下流タスク用に最適化しています。
📚 T5の詳細
T5 モデルは、Colin Raffel, Noam Shazeer, Adam Roberts, Katherine Lee, Sharan Narang, Michael Matena, Yanqi Zhou, Wei Li, Peter J. Liu による Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer で発表されました。以下はその概要です。
転移学習は、モデルをまずデータが豊富なタスクで事前学習し、その後下流タスクでファインチューニングする手法で、自然言語処理 (NLP) の強力な技術として浮上しています。転移学習の有効性により、様々なアプローチ、方法論、実践が生まれています。この論文では、すべての言語問題をテキスト対テキスト形式に変換する統一的なフレームワークを導入し、NLPの転移学習技術の状況を探求します。体系的な研究では、事前学習の目的、アーキテクチャ、未ラベルのデータセット、転移アプローチ、その他の要素を数十の言語理解タスクで比較しています。探求の洞察を大規模なデータと新しい「Colossal Clean Crawled Corpus」と組み合わせることで、要約、質問応答、テキスト分類などの多くのベンチマークで最先端の結果を達成しています。NLPの転移学習に関する将来の研究を促進するために、データセット、事前学習済みモデル、コードを公開しています。
📚 下流タスク (感情表現抽出) の詳細 - データセット
Tweet Sentiment Extraction Dataset
"My ridiculous dog is amazing." [感情: ポジティブ]
毎秒大量に流れるツイートの中で、特定のツイートの感情が、企業や個人のブランドにポジティブな影響を与えるか、ネガティブな影響を与えるかを判断するのは難しいです。言語の感情を捉えることは、決定や反応が瞬時に起こる現代において重要です。では、どの単語が実際に感情の表現につながっているのでしょうか。このコンペティションでは、ツイートの中から感情を反映する部分 (単語やフレーズ) を選び出す必要があります。
この幅広いツイートのデータセットを使って、この重要な分野のスキルを向上させましょう。コンペティションで上位を獲得するためのテクニックを身につけましょう。ツイートの中のどの単語がポジティブ、ネガティブ、または中立的な感情をサポートしているのでしょうか。機械学習ツールを使ってその判断をどのように行うことができるでしょうか。
なお、このコンペティションのデータセットには、不適切な表現が含まれている可能性があります。
データセット |
分割 |
サンプル数 |
TSE |
学習用 |
23907 |
TSE |
評価用 |
3573 |
🏋️ モデルのファインチューニング
学習スクリプトは、Lorenzo Ampil が作成した このColabノートブック を若干修正したものです。彼にすべての功績を捧げます!
🚀 モデルの実行例
from transformers import AutoModelWithLMHead, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("mrm8488/t5-base-finetuned-span-sentiment-extraction")
model = AutoModelWithLMHead.from_pretrained("mrm8488/t5-base-finetuned-span-sentiment-extraction")
def get_sentiment_span(text):
input_ids = tokenizer.encode(text, return_tensors="pt", add_special_tokens=True)
generated_ids = model.generate(input_ids=input_ids, num_beams=1, max_length=80).squeeze()
predicted_span = tokenizer.decode(generated_ids, skip_special_tokens=True, clean_up_tokenization_spaces=True)
return predicted_span
get_sentiment_span("question: negative context: My bike was put on hold...should have known that.... argh total bummer")
get_sentiment_span("question: positive context: On the monday, so i wont be able to be with you! i love you")
作成者: Manuel Romero/@mrm8488 | LinkedIn
スペインで ♥ を込めて作成