SciBERT
SciBERT เป็นแบบจำลอง BERT ที่ได้รับการฝึกฝนเกี่ยวกับข้อความทางวิทยาศาสตร์
SciBERT ได้รับการฝึกฝนเกี่ยวกับเอกสารจากคลังข้อมูลของ semanticscholar.org ขนาดของคลังข้อมูลคือ 1.14m เอกสาร, โทเค็น 3.1b เราใช้ข้อความฉบับเต็มของเอกสารในการฝึกอบรมไม่ใช่แค่บทคัดย่อ
SciBERT มีคำศัพท์ของตัวเอง ( scivocab ) ที่สร้างขึ้นเพื่อให้ตรงกับคลังการฝึกอบรมที่ดีที่สุด เราได้รับการฝึกฝนและรุ่นที่ไม่ได้ใช้งาน นอกจากนี้เรายังรวมถึงรุ่นที่ผ่านการฝึกอบรมเกี่ยวกับคำศัพท์ Bert ดั้งเดิม ( basevocab ) สำหรับการเปรียบเทียบ
มันส่งผลให้ประสิทธิภาพที่ล้ำสมัยในงาน NLP ของโดเมนวิทยาศาสตร์ที่หลากหลาย รายละเอียดของการประเมินอยู่ในกระดาษ รหัสการประเมินผลและข้อมูลรวมอยู่ใน repo นี้
อัปเดต! ตอนนี้รุ่น 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 เข้ากันได้กับรหัสที่ทำงานกับโมเดลจาก Google Research รุ่น Pytorch ถูกสร้างขึ้นโดยใช้ไลบรารี Hugging Face และ repo นี้แสดงวิธีการใช้ใน 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 ให้ดูที่ repo ของ Hugging Face ซึ่งมีคำแนะนำโดยละเอียดเกี่ยวกับการใช้แบบจำลอง Bert
ในการเรียกใช้การทดลองในงานที่แตกต่างกันและทำซ้ำผลลัพธ์ของเราในกระดาษคุณต้องตั้งค่าสภาพแวดล้อม Python 3.6 ก่อน:
pip install -r requirements.txt
ซึ่งจะติดตั้งการพึ่งพาเช่น Allennlp
ใช้สคริปต์ scibert/scripts/train_allennlp_local.sh เป็นตัวอย่างของวิธีเรียกใช้การทดลอง (คุณจะต้องแก้ไขเส้นทางและชื่อตัวแปรเช่น 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 เป็นโครงการโอเพ่นซอร์สที่พัฒนาโดย Allen Institute เพื่อปัญญาประดิษฐ์ (AI2) AI2 เป็นสถาบันที่ไม่แสวงหาผลกำไรที่มีภารกิจในการสนับสนุนมนุษยชาติผ่านการวิจัยและวิศวกรรม AI ที่มีผลกระทบสูง