SciBERT
SciBERT هو نموذج BERT مدرب على النص العلمي.
يتم تدريب SciBERT على أوراق من مجموعة DiseAnticscholar.org. حجم كوربوس هو 1.14m ورقة ، 3.1B الرموز. نستخدم النص الكامل للأوراق في التدريب ، وليس فقط الملخصات.
لدى SciBERT المفردات الخاصة به ( scivocab ) التي تم تصميمها لتتطابق بشكل أفضل مع مجموعة التدريب. قمنا بتدريب الإصدارات المغطاة وغير القائمة. نحن ندرج أيضًا نماذج مدربة على المفردات الأصلية Bert ( basevocab ) للمقارنة.
ينتج عنه أداء على أحدث الأداء على مجموعة واسعة من مهام NLP المجال العلمي. تفاصيل التقييم موجودة في الورقة. يتم تضمين رمز التقييم والبيانات في هذا الريبو.
تحديث! نماذج Scibert الآن قابلة للتثبيت مباشرة في إطار Huggingface تحت allenai org:
from transformers import *
tokenizer = AutoTokenizer.from_pretrained('allenai/scibert_scivocab_uncased')
model = AutoModel.from_pretrained('allenai/scibert_scivocab_uncased')
tokenizer = AutoTokenizer.from_pretrained('allenai/scibert_scivocab_cased')
model = AutoModel.from_pretrained('allenai/scibert_scivocab_cased')
نطلق سراح TensorFlow وإصدار Pytorch من النماذج المدربة. إصدار TensorFlow متوافق مع التعليمات البرمجية التي تعمل مع النموذج من Research Google. يتم إنشاء إصدار Pytorch باستخدام مكتبة Hugging Face ، ويوضح هذا الريبو كيفية استخدامه في Allennlp. جميع مجموعات من scivocab و basevocab ، نماذج cased uncased متوفرة أدناه. يوضح تقييمنا أن scivocab-uncased عادة ما يعطي أفضل النتائج.
scibert-scivocab-uncased (موصى به)scibert-scivocab-casedscibert-basevocab-uncasedscibert-basevocab-casedscibert-scivocab-uncased (موصى به)scibert-scivocab-casedscibert-basevocab-uncasedscibert-basevocab-casedscibert-scivocab-uncased (موصى به)scibert-scivocab-casedscibert-basevocab-uncasedscibert-basevocab-casedتتضمن نماذج Scibert جميع الملفات اللازمة لتوصيلها في النموذج الخاص بك وتكون بنفس التنسيق مثل Bert. إذا كنت تستخدم TensorFlow ، راجع Bert Repo من Google ، وإذا كنت تستخدم Pytorch ، راجع معانقة ريبو Face حيث يتم توفير إرشادات مفصلة حول استخدام نماذج Bert.
لإجراء تجارب على مهام مختلفة وإعادة إنتاج نتائجنا في الورقة ، تحتاج إلى إعداد بيئة Python 3.6 أولاً:
pip install -r requirements.txt
والتي سوف تثبيت التبعيات مثل Allennlp.
استخدم scibert/scripts/train_allennlp_local.sh Script كمثال على كيفية تشغيل التجربة (ستحتاج إلى تعديل المسارات والأسماء المتغيرة مثل TASK و DATASET ).
ندرج مجموعة واسعة من مجموعات بيانات NLP العلمية ضمن data/ الدليل عبر المهام التالية. كل مهمة لديها دليل فرعي لمجموعات البيانات المتاحة.
├── ner
│ ├── JNLPBA
│ ├── NCBI-disease
│ ├── bc5cdr
│ └── sciie
├── parsing
│ └── genia
├── pico
│ └── ebmnlp
└── text_classification
├── chemprot
├── citation_intent
├── mag
├── rct-20k
├── sci-cite
└── sciie-relation-extraction
على سبيل المثال لتشغيل النموذج على مهمة التعرف على الكيان المسماة ( NER ) وعلى مجموعة بيانات BC5CDR (BioCreative V CDR) ، قم بتعديل البرنامج النصي scibert/train_allennlp_local.sh وفقًا ل:
DATASET='bc5cdr'
TASK='ner'
...
فك ضغط نموذج Pytorch الذي قمت بتنزيله باستخدام
tar -xvf scibert_scivocab_uncased.tar
ستكون النتائج في دليل scibert_scivocab_uncased يحتوي على ملفين: ملف المفردات ( vocab.txt ) وملف أوزان ( weights.tar.gz ). انسخ الملفات إلى الموقع المطلوب ثم قم بتعيين المسارات الصحيحة لـ BERT_WEIGHTS و BERT_VOCAB في البرنامج النصي:
export BERT_VOCAB=path-to/scibert_scivocab_uncased.vocab
export BERT_WEIGHTS=path-to/scibert_scivocab_uncased.tar.gz
أخيرًا قم بتشغيل البرنامج النصي:
./scibert/scripts/train_allennlp_local.sh [serialization-directory]
حيث [serialization-directory] هو المسار إلى دليل الإخراج حيث سيتم تخزين ملفات النموذج.
إذا كنت تستخدم SciBERT في بحثك ، فيرجى الاستشهاد بـ Scibert: نموذج اللغة المسبق للنص العلمي.
@inproceedings{Beltagy2019SciBERT,
title={SciBERT: Pretrained Language Model for Scientific Text},
author={Iz Beltagy and Kyle Lo and Arman Cohan},
year={2019},
booktitle={EMNLP},
Eprint={arXiv:1903.10676}
}
SciBERT هو مشروع مفتوح المصدر تم تطويره من قبل معهد ألين للذكاء الاصطناعي (AI2). AI2 هو معهد غير ربحية يتمتع بمهمة المساهمة في الإنسانية من خلال الأبحاث والهندسة عالية التأثير.