Rebel Large
REBELは、BARTベースのシーケンス-to-シーケンスモデルで、エンドツーエンドの関係抽出に使用され、200種類以上の異なる関係タイプをサポートします。
ダウンロード数 37.57k
リリース時間 : 3/2/2022
モデル概要
REBELは、関係抽出をシーケンス-to-シーケンスタスクとして再定義することで、生テキストから関係三元組を抽出するプロセスを簡素化します。自己回帰型のシーケンス-to-シーケンスモデルを使用して、テキストから直接関係三元組を抽出でき、知識ベースの充填や事実検証などのさまざまなアプリケーションに対応しています。
モデル特徴
エンドツーエンドの関係抽出
関係抽出タスクをシーケンス-to-シーケンスタスクに簡素化し、テキストから直接関係三元組を生成します。
複数の関係タイプのサポート
200種類以上の異なる関係タイプをサポートし、幅広い情報抽出シナリオに適しています。
高性能
複数の関係抽出ベンチマークテストで最先端の性能を達成しています。
モデル能力
関係抽出
エンティティ関係識別
知識ベースの充填
使用事例
知識ベースの構築
知識ベースの充填
非構造化テキストから関係三元組を抽出し、知識ベースの充填または検証に使用します。
知識ベースのカバレッジと精度を向上させます。
情報抽出
事実検証
テキストから関係三元組を抽出し、事実の正確性を検証するために使用します。
自動化された事実検証プロセスをサポートします。
🚀 REBEL
: エンドツーエンド言語生成による関係抽出
このモデルは、EMNLP 2021の論文「REBEL: Relation Extraction By End-to-end Language generation」で発表されたものです。新しい線形化アプローチを提案し、関係抽出をseq2seqタスクとして再構築しています。論文はこちらで確認できます。コードを使用する場合は、以下のようにこの研究を引用してください。
@inproceedings{huguet-cabot-navigli-2021-rebel-relation,
title = "{REBEL}: Relation Extraction By End-to-end Language generation",
author = "Huguet Cabot, Pere-Llu{\'\i}s and
Navigli, Roberto",
booktitle = "Findings of the Association for Computational Linguistics: EMNLP 2021",
month = nov,
year = "2021",
address = "Punta Cana, Dominican Republic",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2021.findings-emnlp.204",
pages = "2370--2381",
abstract = "Extracting relation triplets from raw text is a crucial task in Information Extraction, enabling multiple applications such as populating or validating knowledge bases, factchecking, and other downstream tasks. However, it usually involves multiple-step pipelines that propagate errors or are limited to a small number of relation types. To overcome these issues, we propose the use of autoregressive seq2seq models. Such models have previously been shown to perform well not only in language generation, but also in NLU tasks such as Entity Linking, thanks to their framing as seq2seq tasks. In this paper, we show how Relation Extraction can be simplified by expressing triplets as a sequence of text and we present REBEL, a seq2seq model based on BART that performs end-to-end relation extraction for more than 200 different relation types. We show our model{'}s flexibility by fine-tuning it on an array of Relation Extraction and Relation Classification benchmarks, with it attaining state-of-the-art performance in most of them.",
}
論文の元のリポジトリはこちらです。
右側の推論ウィジェットは、主語、目的語、関係タイプを区別するために必要な特殊トークンを出力しません。REBELのデモとその事前学習データセットについては、Spacesデモを確認してください。
🚀 クイックスタート
このセクションでは、REBELモデルを使用して関係抽出を行う基本的な手順を説明します。
✨ 主な機能
- 200種類以上の異なる関係タイプに対してエンドツーエンドの関係抽出を行うことができます。
- 複数の関係抽出および関係分類のベンチマークで最先端の性能を達成しています。
📦 インストール
このモデルを使用するには、transformers
ライブラリが必要です。以下のコマンドでインストールできます。
pip install transformers
💻 使用例
基本的な使用法
from transformers import pipeline
triplet_extractor = pipeline('text2text-generation', model='Babelscape/rebel-large', tokenizer='Babelscape/rebel-large')
# 特殊トークンが必要なので、手動でトークナイザーを使用します。
extracted_text = triplet_extractor.tokenizer.batch_decode([triplet_extractor("Punta Cana is a resort town in the municipality of Higuey, in La Altagracia Province, the eastern most province of the Dominican Republic", return_tensors=True, return_text=False)[0]["generated_token_ids"]])
print(extracted_text[0])
# 生成されたテキストを解析してトリプレットを抽出する関数
def extract_triplets(text):
triplets = []
relation, subject, relation, object_ = '', '', '', ''
text = text.strip()
current = 'x'
for token in text.replace("<s>", "").replace("<pad>", "").replace("</s>", "").split():
if token == "<triplet>":
current = 't'
if relation != '':
triplets.append({'head': subject.strip(), 'type': relation.strip(),'tail': object_.strip()})
relation = ''
subject = ''
elif token == "<subj>":
current = 's'
if relation != '':
triplets.append({'head': subject.strip(), 'type': relation.strip(),'tail': object_.strip()})
object_ = ''
elif token == "<obj>":
current = 'o'
relation = ''
else:
if current == 't':
subject += ' ' + token
elif current == 's':
object_ += ' ' + token
elif current == 'o':
relation += ' ' + token
if subject != '' and relation != '' and object_ != '':
triplets.append({'head': subject.strip(), 'type': relation.strip(),'tail': object_.strip()})
return triplets
extracted_triplets = extract_triplets(extracted_text[0])
print(extracted_triplets)
高度な使用法
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
def extract_triplets(text):
triplets = []
relation, subject, relation, object_ = '', '', '', ''
text = text.strip()
current = 'x'
for token in text.replace("<s>", "").replace("<pad>", "").replace("</s>", "").split():
if token == "<triplet>":
current = 't'
if relation != '':
triplets.append({'head': subject.strip(), 'type': relation.strip(),'tail': object_.strip()})
relation = ''
subject = ''
elif token == "<subj>":
current = 's'
if relation != '':
triplets.append({'head': subject.strip(), 'type': relation.strip(),'tail': object_.strip()})
object_ = ''
elif token == "<obj>":
current = 'o'
relation = ''
else:
if current == 't':
subject += ' ' + token
elif current == 's':
object_ += ' ' + token
elif current == 'o':
relation += ' ' + token
if subject != '' and relation != '' and object_ != '':
triplets.append({'head': subject.strip(), 'type': relation.strip(),'tail': object_.strip()})
return triplets
# モデルとトークナイザーをロード
tokenizer = AutoTokenizer.from_pretrained("Babelscape/rebel-large")
model = AutoModelForSeq2SeqLM.from_pretrained("Babelscape/rebel-large")
gen_kwargs = {
"max_length": 256,
"length_penalty": 0,
"num_beams": 3,
"num_return_sequences": 3,
}
# トリプレットを抽出するテキスト
text = 'Punta Cana is a resort town in the municipality of Higüey, in La Altagracia Province, the easternmost province of the Dominican Republic.'
# テキストをトークナイズ
model_inputs = tokenizer(text, max_length=256, padding=True, truncation=True, return_tensors = 'pt')
# 生成
generated_tokens = model.generate(
model_inputs["input_ids"].to(model.device),
attention_mask=model_inputs["attention_mask"].to(model.device),
**gen_kwargs,
)
# テキストを抽出
decoded_preds = tokenizer.batch_decode(generated_tokens, skip_special_tokens=False)
# トリプレットを抽出
for idx, sentence in enumerate(decoded_preds):
print(f'Prediction triplets sentence {idx}')
print(extract_triplets(sentence))
📚 ドキュメント
このモデルの詳細なドキュメントについては、元の論文およびリポジトリを参照してください。
- 論文: REBEL: Relation Extraction By End-to-end Language generation
- リポジトリ: https://github.com/Babelscape/rebel
🔧 技術詳細
このモデルは、BARTベースのseq2seqモデルであり、関係抽出をエンドツーエンドのタスクとして扱います。トリプレットをテキストのシーケンスとして表現することで、関係抽出を簡素化しています。
📄 ライセンス
このモデルは、cc-by-nc-sa-4.0
ライセンスの下で公開されています。
その他の情報
属性 | 详情 |
---|---|
モデルタイプ | seq2seq |
タスク | 関係抽出 |
トレーニングデータセット | Babelscape/rebel-dataset |
⚠️ 重要提示
右側の推論ウィジェットは、主語、目的語、関係タイプを区別するために必要な特殊トークンを出力しません。
💡 使用建议
デモと事前学習データセットについては、Spacesデモを確認してください。
Rebel Large
REBELは、BARTベースのシーケンス-to-シーケンスモデルで、エンドツーエンドの関係抽出に使用され、200種類以上の異なる関係タイプをサポートします。
知識グラフ
Transformers 英語

R
Babelscape
37.57k
219
Nel Mgenre Multilingual
mGENREに基づく多言語生成型エンティティ検索モデルで、歴史テキストに最適化され、100種以上の言語をサポートし、特にフランス語、ドイツ語、英語の歴史文書のエンティティリンクに適しています。
知識グラフ
Transformers 複数言語対応

N
impresso-project
17.13k
2
Biomednlp KRISSBERT PubMed UMLS EL
MIT
KRISSBERTは知識強化型自己教師あり学習に基づく生物医学エンティティリンキングモデルで、アノテーションのないテキストとドメイン知識を活用してコンテキストエンコーダーを訓練し、エンティティ名の多様なバリエーションと曖昧性の問題を効果的に解決します。
知識グラフ
Transformers 英語

B
microsoft
4,643
29
Coder Eng
Apache-2.0
CODERは、知識強化型の多言語医学用語埋め込みモデルで、医学用語の規範化タスクに特化しています。
知識グラフ
Transformers 英語

C
GanjinZero
4,298
4
Umlsbert ENG
Apache-2.0
CODERは知識注入に基づく多言語医療用語埋め込みモデルで、医療用語の標準化タスクに特化しています。
知識グラフ
Transformers 英語

U
GanjinZero
3,400
13
Text2cypher Gemma 2 9b It Finetuned 2024v1
Apache-2.0
このモデルはgoogle/gemma-2-9b-itをファインチューニングしたText2Cypherモデルで、自然言語の質問をNeo4jグラフデータベースのCypherクエリ文に変換できます。
知識グラフ
Safetensors 英語
T
neo4j
2,093
22
Triplex
TriplexはSciPhi.AIがPhi3-3.8Bをファインチューニングしたモデルで、非構造化データからの知識グラフ構築のために設計されており、知識グラフ作成コストを98%削減できます。
知識グラフ
T
SciPhi
1,808
278
Genre Linking Blink
GENREはシーケンス・ツー・シーケンス手法に基づくエンティティ検索システムで、ファインチューニングされたBARTアーキテクチャを使用し、制約付きビームサーチ技術によって一意のエンティティ名を生成します。
知識グラフ 英語
G
facebook
671
10
Text To Cypher Gemma 3 4B Instruct 2025.04.0
Gemma 3.4B IT はテキスト生成型の大規模言語モデルで、自然言語をCypherクエリ言語に変換するために特別に設計されています。
知識グラフ
Safetensors
T
neo4j
596
2
Mrebel Large
REDFMはREBELの多言語バージョンで、18言語の関係トリプル抽出をサポートしています。
知識グラフ
Transformers 複数言語対応

M
Babelscape
573
71
おすすめAIモデル
Llama 3 Typhoon V1.5x 8b Instruct
タイ語専用に設計された80億パラメータの命令モデルで、GPT-3.5-turboに匹敵する性能を持ち、アプリケーションシナリオ、検索拡張生成、制限付き生成、推論タスクを最適化
大規模言語モデル
Transformers 複数言語対応

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-TinyはSODAデータセットでトレーニングされた超小型対話モデルで、エッジデバイス推論向けに設計されており、体積はCosmo-3Bモデルの約2%です。
対話システム
Transformers 英語

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
RoBERTaアーキテクチャに基づく中国語抽出型QAモデルで、与えられたテキストから回答を抽出するタスクに適しています。
質問応答システム 中国語
R
uer
2,694
98