NL-269, BioGPT: Generative Pre-trained Transformer for Biomedical Text Generation and Mining, Preprint 2022
◼ Comment
- Bio 분야에서 GPT2을 학습한 시도로 이 당시에 핫했나 보다? (인용수가 상당히 많음)
- 지금에서야 보면, 모델사이즈도 작고하지만 이러한 시도가 많이 없었던 만큼 좋은 Reference가 될 것 같다
- 바이오 분야에서 도메인 한정 continual pretraining한다면 비교대상으로 적합할듯
- 데이터는 공개했는지 모르겠는데 의료 논문관련한거 모아둔 사이트(pubmed)에서 크롤링해서 모았다고함
- 학습할때는 scratch부터 학습했다고 하는데, 왜 conitnual pretraining하지 않았을까?
- 그 이유로 Domain-Specific Language Model Pretraining for Biomedical Natural Language Processing 논문에서 BERT에다가 실험한게 있는데
- continual pretraining보다 scratch로 의료 데이터로 BERT 학습하는게 나은 결과를 보여줬다고 한다 (PubMedBERT)
- 근데 음.. 이 당시에는 좋은 백본이 오픈소스로 없어서 그럴거 같고, 지금은 오픈소스 llm에다가 continual pretraining하는게 아무래도 좋을거 같긴함
- 정확한 백본은 GPT-2 Medium임
- pretraining 학습을 하기 때문에 해결하고자 하는 테스크를 풀기 위해
- 출력 포맷을 인위적으로 설정한다
- 어떻게 보면 일종의 instruction tuning인데 요즘과 달리 그냥 고정된 테스크에서는, 정해진 입력에 대해 정해진 출력 형태가 나오도록 학습한 것이다
- 여기서는 이를 Prompt-based Fine-tuning라고 부름
- 실험 비교는 QA 테스크라하면, QA에 학습된 기존 모델 vs BioGPT한거임
- 테스크들에서 BioGPT가 대부분 좋았다는거 같음
Abstract
사전 학습된 언어 모델은 일반 자연어 처리 분야에서의 큰 성공에 힘입어, 생물의학(biomedical) 분야에서도 점점 더 많은 주목을 받고 있습니다. 일반 언어 처리 분야의 두 주요 계열인 BERT 계열과 GPT 계열 중, BERT (및 그 변형들)는 BioBERT, PubMedBERT와 같이 생물의학 분야에서 활발히 연구되어 왔습니다. 이러한 모델들은 다양한 생물의학 분류(task) 작업에서 큰 성과를 거두었지만, 생성 능력이 부족하다는 점에서 활용 범위에 제약이 있습니다.
이에 본 논문에서는 BioGPT라는 도메인 특화 생성형 트랜스포머 언어 모델을 제안합니다. 이 모델은 대규모 생물의학 문헌에 대해 사전 학습되었으며, 총 6개의 생물의학 자연어 처리(NLP) 과제에 대해 평가를 수행하였습니다. 평가 결과, 대부분의 과제에서 기존 모델들을 능가하는 성능을 보였습니다. 특히 BC5CDR, KD-DTI, DDI 관계 추출 과제에서는 각각 44.98%, 38.42%, 40.76%의 F1 점수를 기록하였고, PubMedQA에서는 78.2%의 정확도를 달성하여 새로운 최고 성능을 기록하였습니다.
또한, 텍스트 생성에 대한 사례 연구(case study)를 통해, BioGPT가 생물의학 용어에 대해 유창한 설명을 생성하는 데 뛰어난 능력을 가지고 있음을 보여주었습니다.
코드는 https://github.com/microsoft/BioGPT 에서 확인할 수 있습니다.
Introduction
생물의학 문헌으로부터의 텍스트 마이닝과 지식 발견은 신약 개발, 임상 치료, 병리학 연구 등에서 중요한 역할을 한다. 대표적인 과제로는 논문 내 명명된 개체 인식, 약물과 단백질/질병/다른 약물 간 상호작용 추출, 참고 문헌을 기반으로 한 질의응답, 주어진 단어나 구절에 대한 초록 생성 등이 있다.
- 기존 연구를 통해 방대한 문헌이 축적되어 있으며, 대표적으로 생물의학 검색 엔진인 PubMed는 3천만 개 이상의 논문을 포함하고 있고, 새로운 발견이 지속적으로 이루어지면서 그 수는 매일 빠르게 증가하고 있다.
- 따라서 이러한 문헌에서 자동으로 지식을 추출하는 것은 시급한 과제가 되었다.
사전학습(pre-training) 모델은 자연어 처리(NLP)에서 강력한 성능을 입증해왔다. 대표적인 자연어 이해 벤치마크인 GLUE에서는 사전학습 기반 방법이 비사전학습 방법보다 큰 차이로 우수한 성과를 보여준다.
- 사전학습 모델은 크게 두 종류로 나뉘는데: (1) BERT 계열 모델은 주로 언어 이해 작업에 사용되고, (2) GPT 계열 모델은 주로 언어 생성 작업에 활용된다. 이러한 모델들은 대규모 웹 코퍼스를 기반으로 자기지도 학습(예: BERT의 masked language modeling, GPT의 auto-regressive language modeling)을 통해 먼저 학습된 후, 특정 다운스트림 과제에 맞춰 미세 조정된다.
- BERT 계열 모델은 전체 문서를 인코딩해야 하는 문서 분류나 시퀀스 라벨링 작업에 적합하며, GPT 계열 모델은 초록 생성, 지식 트리플렛 생성과 같은 생성 작업에 적합하다.
일반 NLP 분야에서 사전학습이 성공하면서, 이러한 기술을 생물의학 분야에도 적용하려는 시도가 이어지고 있다.
- 하지만 이러한 모델을 생물의학 분야에 그대로 적용하면 도메인 차이로 인해 성능이 저하된다.
- 이를 해결하기 위한 자연스러운 방법은 생물의학 텍스트(예: PubMed)를 기반으로 한 도메인 특화 사전학습 모델을 개발하는 것이다.
- BioBERT와 PubMedBERT는 생물의학 분야에 특화된 BERT 계열 모델로, 일반 사전학습 모델보다 생물의학 벤치마크에서 더 우수한 성능을 보인다.
- 하지만 기존 연구들은 대부분 언어 이해에 초점을 둔 BERT 계열에 치우쳐 있으며, 언어 생성에 강한 GPT 계열 모델은 생물의학 분야에 직접 적용할 경우 성능이 떨어지는 한계가 있다.
이에 본 연구에서는 BioGPT를 제안한다.
- 이는 생물의학 텍스트 생성 및 마이닝을 위한 도메인 특화 생성형 사전학습 트랜스포머 언어 모델이다.
- BioGPT는 트랜스포머 언어 모델 구조를 기반으로 하며, PubMed의 초록 1,500만 건을 바탕으로 처음부터 사전학습되었다.
- 우리는 BioGPT를 여섯 가지 생물의학 NLP 과제에 적용하였다: BC5CDR, KD-DTI, DDI 데이터셋 기반의 관계 추출, PubMedQA 기반의 질의응답, HoC 데이터셋 기반의 문서 분류, 그리고 자유 텍스트 생성 과제. 각 다운스트림 과제에 적절하게 대응하기 위해, 목표 시퀀스 형식과 프롬프트를 정교하게 설계하고 분석하였다.
- 실험 결과, BioGPT는 기존의 베이스라인 및 다른 우수한 방법들보다 모든 과제에서 더 나은 성능을 보였다.
BioGPT는 continual pretraining은 아니고, 그냥 처음부터 의료계열 데이터로 학습한 모델이군
- 오픈도 되어있으니 베이스라인으로 비교하기에 좋을 듯?
- 생각해보면 사람도 일반 지식 쌓고 의료 지식을 학습하는 방향으로 가기 때문에.. continual pretraining이 좀더 낫지 않을까?
- 하고자 하는 테스크를 해결하는 방법은 일반 코퍼스에서도 알 수 있는 거고, 도메인만 바뀌는 것이므로, 이 관점에서도 continual pretraining이 낫지 않을까?
Related Work
사전학습 언어 모델 (Pre-trained Language Models)
딥러닝에서 널리 성공적인 패턴 중 하나는, 대규모 라벨 없는 데이터에 대해 신중하게 설계된 자기지도 학습 태스크를 통해 모델을 사전학습한 후, 이를 다운스트림 과제에 미세 조정(fine-tuning)하여 적용하는 것이다. 다운스트림 과제는 사전학습된 모델이 학습한 표현 표현력(representation)의 이점을 받을 수 있다.
BERT는 양방향 트랜스포머 기반 문맥화 언어 모델로, English Wikipedia와 BooksCorpus라는 대규모 텍스트 코퍼스를 기반으로 사전학습되었다. BERT는 두 가지 자기지도 학습 태스크를 통해 학습된다: 입력 텍스트의 일부 단어를 [MASK]
토큰으로 바꾸고 이를 문맥을 통해 예측하는 마스킹 언어 모델링(MLM), 그리고 두 문장이 주어졌을 때 두 번째 문장이 첫 번째 문장의 다음 문장인지 예측하는 다음 문장 예측(NSP) 태스크이다. 이렇게 학습된 BERT는 문맥화된 단어 표현을 제공하며, 이를 기반으로 다운스트림 과제를 간단히 미세 조정하여 다양한 자연어 이해(NLU) 작업에서 큰 성공을 거두었다. 이후의 연구들은 더 대규모 데이터와 모델로 사전학습을 수행하거나, 더욱 정교한 사전학습 태스크를 설계하는 데 초점을 맞추었다. 그러나 BERT 및 다양한 생물의학 BERT 모델은 언어 이해 및 분류 과제에서는 뛰어난 성과를 보였지만, 생성형 모델에는 상대적으로 관심이 적었다. BERT는 양방향 트랜스포머 인코더 구조로 강력한 단어 표현을 학습하지만, 이 구조는 텍스트 생성을 제한한다.
반면, **GPT(Generative Pre-trained Transformer)**는 생성 태스크를 위해 제안된 트랜스포머 디코더 기반 모델이다. GPT는 고전적인 자연어 생성 언어 모델링(Causal LM) 태스크를 통해 이전 단어만을 기반으로 다음 단어를 예측하도록 학습된다. 이후 등장한 GPT-2, GPT-3는 더 큰 모델 크기와 대규모 코퍼스를 기반으로 사전학습되어, 번역, 요약 등 다양한 다운스트림 태스크뿐만 아니라, 적절한 프롬프트를 사용해 분류 태스크조차도 미세 조정 없이(zero-shot) 수행하는 놀라운 성능을 보여주었다.
생물의학 도메인에서의 사전학습 언어 모델
특정 도메인(예: 생물의학)에 적용할 때, 일반 도메인에서 사전학습된 BERT 모델은 도메인 내(in-domain) 텍스트 데이터로 추가 사전학습을 하면 더 나은 성능을 낼 수 있다. 예를 들어, [10]과 [8]은 원래의 BERT를 기반으로 PubMed 초록 및 전체 논문(PMC), 그리고 MIMIC-III 임상 노트를 이용해 추가 사전학습을 수행했다. 이들은 일반 도메인에서 학습된 BERT를 기반으로 하므로, 어휘 집합(vocabulary) 역시 원래 BERT와 동일하며 이는 생물의학 도메인과는 차이가 있다.
이와 달리, [18]은 과학 문헌(생물의학 및 컴퓨터 과학 포함)을 대상으로 BERT를 처음부터 사전학습했으며, 어휘 또한 도메인에 더 적합하도록 구성했다. [9]는 도메인 특화 데이터로 모델을 처음부터 사전학습하는 것이 더 낫다고 주장하며, 1,400만 개의 PubMed 초록을 기반으로 PubMedBERT를 제안했다. [20] 또한 ELECTRA 구조를 사용하여 2,800만 개의 데이터를 처음부터 사전학습하였다. 이들 모두는 일반 BERT보다 다양한 생물의학 NLP 작업에서 더 뛰어난 성능을 보였지만, **텍스트 생성(task)**을 위한 모델은 아니었다.
GPT의 강력한 생성 능력을 고려하면, 이러한 모델이 생물의학 도메인에서 어떻게 작동할지에 대한 궁금증이 생긴다. 하지만 최근 연구에 따르면, GPT-3 같은 고성능 모델조차도 생물의학 작업에서는 기대 이하의 성능을 보인다고 한다. GPT를 생물의학 문헌에 대해 사전학습한 초기 연구로는 DARE가 있으며, 이 모델은 단 50만 개의 PubMed 초록만으로 학습되었고, 관계 추출에서 데이터 증강(data augmentation) 용도로만 사용되었다. 최근에는 [22]가 GPT-3를 임상 태스크에 맞게 변환하여 활용하려는 시도를 보였다.
다운스트림 태스크
관계 추출 (Relation Extraction)
관계 추출은 생명과학 및 의학 연구에서 핵심적인 작업이다. 기존 파이프라인 기반 방법은 이 작업을 여러 하위 과제로 나누어 해결하지만, 이 경우 추가 주석과 정보가 필요하며, 데이터 부족 및 오류 누적 문제가 발생한다. 공동 추출(joint extraction) 방식은 엔터티와 관계를 동시에 추출하는 방식이며, 시퀀스 라벨링 기반 방법은 단어 단위로 엔터티를 태깅한 뒤 분류기로 관계를 추론한다. 테이블 필링 방식은 텍스트 내 토큰 쌍 간 관계를 테이블 형태로 예측한다. 그러나 이러한 방법들은 태깅 오류 누적과 중간 주석 작업의 부담이 있다.
이에 따라 최근에는 관계 추출을 시퀀스-투-시퀀스(sequence-to-sequence) 문제로 재정의하여, 텍스트를 입력으로, 관계 삼중항(triplet)을 출력으로 생성하는 방식이 제안되었다. 이 방식은 인코더-디코더 네트워크를 통해 학습되며, 중간 단계 없이 관계를 추출할 수 있다. 본 논문은 텍스트만을 입력으로 사용하여 관계 삼중항을 **엔드투엔드(end-to-end)**로 생성하는 방식에 집중한다.
질의응답 (Question Answering)
질의응답은 주어진 문맥에서 질문에 답하는 작업이다. 전통적으로는 문맥 내에서 정답이 되는 구간(span)을 예측하거나, 정해진 라벨(예: yes/no)을 예측한다. 생물의학 QA에서도 사전학습 모델을 활용한 연구가 활발하며, GPT 계열과 같은 생성형 모델은 정답 문장을 직접 생성하거나 라벨 단어를 출력하는 방식으로 동작한다.
문서 분류 (Document Classification)
문서 분류는 문서를 사전에 정의된 카테고리(단일 또는 다중)로 분류하는 작업이다. 최근 연구는 생물의학 문서 분류에서도 사전학습 모델을 사용하여 텍스트를 이해하고 라벨을 예측하는 데 활용하고 있다. 생성형 모델은 카테고리 자체를 예측하는 것이 아니라, 라벨 단어를 직접 생성하는 방식으로 분류를 수행한다.
Pre-training Method
이 절에서는 BioGPT의 데이터셋, 어휘(vocabulary), 모델 구조 측면에서의 사전학습 방법을 설명한다.
데이터셋 (Dataset)
언어 모델 사전학습에서 데이터의 양, 품질, 도메인은 매우 중요하다.
- Gu 등[9]은 특정 도메인에 대해 처음부터(in-domain only) 학습하는 것이 중요하다고 지적했다. 따라서 본 연구에서는 오직 도메인 내 데이터만 사용하여 처음부터 모델을 사전학습한다.
- 이를 위해, 우리는 PubMed 공식 사이트에서 2021년 이전에 업데이트된 모든 PubMed 항목을
wget
도구를 이용해 수집하였다. - 이후, 초록 없이 제목만 존재하는 빈 항목을 모두 제거하였다.
- 이렇게 정제된 **1,500만 개의 항목(제목과 초록이 모두 존재)**을 사전학습 데이터로 사용하였다.
- 흠 그래도 continual pretraining해서 나쁠건 없을거 같은데? 근데 이때는 오픈소스 llm이 별로 첨부터 학습하는게 나았을거 같기도함
어휘 (Vocabulary)
[9]에서는 도메인 내 어휘(in-domain vocabulary)의 중요성도 강조하고 있다. 기존 GPT-2의 어휘를 사용하는 대신, 우리가 수집한 도메인 내 코퍼스를 기반으로 새로운 어휘를 학습하였다. 구체적으로는, Byte Pair Encoding (BPE) [46] 알고리즘을 사용하여 단어를 서브워드 단위로 분할하고, 이로부터 어휘를 학습하였다. BPE는 fastBPE
구현체를 사용하였다. 최종적으로 학습된 어휘의 크기는 42,384개이다.
모델 (Model)
BioGPT는 GPT-2 모델 아키텍처 [6]를 백본으로 채택하였으며, 이는 트랜스포머 디코더 구조 [47]에 기반한다.
- GPT-3는 파라미터 수가 150억 개에 달하는 초대형 모델이라 현재는 그대로 따를 수 없다.
- BioGPT의 핵심 구성 요소는 **멀티헤드 어텐션 (Multi-head Attention)**이다.
- 지금 기준으로는 사이즈가 작기는 하네
입력이 주어지면, 세 개의 선형 변환을 통해 쿼리 Q, 키 K, 밸류 V를 생성하고, 출력은 다음과 같이 계산된다:
Multihead(Q, K, V) = Concat(head1, head2, ..., headh)W,
여기서:
-
h
는 헤드 수, -
Q
,K
,V
는 피처 차원에서 동일하게 나뉘며i ∈ {1, 2, ..., h}
, -
Concat
는 모든 헤드를 피처 차원으로 이어붙인 텐서, -
W
는 최종 선형 변환에 사용되는 파라미터이다.
멀티헤드 어텐션의 출력은 피드포워드 계층으로 전달되어 하나의 트랜스포머 레이어(또는 블록)를 구성한다.
실제로는, GPT-2 Medium 구조를 백본으로 사용했으며, 이 모델은 총 24개 레이어, 1024의 히든 사이즈, 16개의 어텐션 헤드를 갖추고 있어 총 3억 5천 5백만 개의 파라미터를 가진다.
- BioGPT는 이 구조에서 약간 다른 임베딩 크기 및 출력 투영 차이(어휘 크기 차이로 인한)만을 반영하여 총 3억 4천 7백만 개의 파라미터를 가진다.
학습 기준 (Training Criteria)
BioGPT는 기존 GPT와 마찬가지로 표준 언어 모델링 태스크를 통해 학습된다 [5, 6]. 데이터셋 D = {x₁, x₂, ..., xₙ}이 있을 때, 각 시퀀스 xᵢ는 nᵢ
개의 토큰으로 구성된다:
xᵢ = (s₁, s₂, ..., sₙᵢ)
이때 학습 목표는 다음 토큰을 이전 토큰들을 기반으로 예측하는 **음의 로그우도(Negative Log-Likelihood)**를 최소화하는 것이다:

즉, 각 시퀀스의 앞에서부터 순차적으로 다음 단어를 예측하면서 학습이 진행된다.
Fine-tuning Method
이 절에서는 사전학습된 BioGPT를 다음과 같은 다운스트림 과제에 어떻게 적응시켰는지를 소개한다:
-
엔드투엔드 관계 추출
-
질의응답(QA)
-
문서 분류
이들 과제의 입력은 모두 시퀀스 형태이지만, 출력 형식은 서로 다르다.
BioGPT를 이 과제들에 활용하기 위해, 출력 레이블을 시퀀스 형태로 변환한다. 이렇게 하면 **사전학습과 동일한 형식(sequence-to-sequence)**을 유지할 수 있다.
BioGPT는 대규모 자연어 코퍼스로 사전학습되었기 때문에, 다른 연구들에서 사용하는 특수 토큰 기반 구조적 형식 대신, 자연어 형식으로 레이블을 변환한다 [14, 24, 25].
이렇게 하면 더 자연스럽고 유창한 문장을 구성할 수 있다. 각 과제에 대한 세부 구현 방식은 다음과 같다.
엔드투엔드 관계 추출 (End-to-End Relation Extraction)
과제 설명: 입력 시퀀스 x
가 주어졌을 때, 그로부터 추론 가능한 삼중항(triplet)
〈head entityᵢ, tail entityᵢ, relationᵢ〉 (i = 1..N)
을 모두 추출하는 것이 목표이다.
예시: 약물-표적 상호작용, 화학물질-질병 관계, 약물 간 상호작용 등.
방법: 삼중항을 동일한 문법 구조를 갖는 자연어 문장으로 변환한다. 이 논문에서는 세 가지 형식을 탐색하였다:
-
svo (subject verb object):
head entity
,relation
,tail entity
를 순서대로 나열
예)dextropropoxyphene inhibits mu-type opioid receptor.
-
is-of (subject is the rel.noun of object):
관계를 명사형으로 바꿔 사용
예)dextropropoxyphene is the inhibitor of mu-type opioid receptor.
-
rel-is (the relation between subject and object is rel.noun):
예)The relation between dextropropoxyphene and mu-type opioid receptor is inhibitor.
문서 내에 여러 개의 관계가 있는 경우, 출현 순서대로 정렬하여 세미콜론(;)으로 연결한다.
이러한 문장은 정규식을 이용해 다시 삼중항으로 되돌릴 수 있으며, 작업에 따라 맞춤 포맷을 구성할 수도 있다.
- 즉 pretraining llm으로만 task을 해결하려고 하는 노력임
- 지금 기준으로는 pretraining후 instruct을 하도록 학습하면 되지 않을까?
질의응답 (Question Answering)
과제 설명: 질문, 문맥(context), 정답이 주어졌을 때, 문맥을 참고해 질문에 답하는 과제이다.
정답은 yes
, no
, maybe
중 하나이다.
방법:
-
입력 시퀀스는
"question: 질문 내용. context: 문맥 내용."
형식으로 구성 -
출력 시퀀스는
"the answer to the question given the context is [정답]"
예:
입력: question: Does aspirin reduce fever? context: Aspirin is used for treating pain and inflammation.
출력: the answer to the question given the context is yes.
문서 분류 (Document Classification)
과제 설명: 주어진 문서가 어떤 카테고리에 속하는지를 분류하는 과제이다.
방법: 출력 시퀀스를 "the type of this document is [레이블]"
형식으로 구성한다.
예:
the type of this document is genomic instability and mutation.
프롬프트 기반 파인튜닝 (Prompt-based Fine-tuning)
레이블을 시퀀스로 변환한 후, 이를 어떻게 학습과 추론에 사용할 것인가?
단순히 **입력 시퀀스와 출력 시퀀스를 연결(concatenate)**하는 방식은, 모델이 추론 시 어떤 출력을 생성해야 할지 명확히 알지 못해 어려움이 있다.
최근 NLP에서는 **프롬프트(prompt)**를 활용해 사전학습 모델의 지식을 끌어내는 연구가 활발하다 [48].
프롬프트는 입력에 작업(task)-특화 지시어를 추가하여, 모델이 해당 과제에 적합한 출력을 생성할 수 있도록 유도한다.
GPT-3는 **하드 프롬프트(hard prompt)**를 사용하며, 이는 사람이 직접 작성한 문장 지시어이다. 하지만 이 방식은 설계가 번거롭고, 프롬프트에 따라 성능이 달라진다.
아 이때도 instruction tuning이란 개념은 있었으나, 이 방법을 사용한건 아니고 prefix-tuning을 했다고하는군
본 연구에서는 프리픽스 튜닝(prefix-tuning) 기반의 **소프트 프롬프트(soft prompt)**를 채택한다 [49].
이는 **연속 임베딩(virtual tokens)**을 프롬프트로 사용하며, 학습 과정에서 이 임베딩을 함께 학습시킨다.
기존과는 다르게, 우리는 이 가상 토큰을 입력 시퀀스 맨 앞이 아닌, 입력과 출력 사이에 삽입한다.
최종 시퀀스 구조는 [입력; 프롬프트; 출력]
이며, Fig. 1에서 그 예시를 보여준다.
추론 시에는, 모델에 입력 시퀀스와 프롬프트를 제공하고, 모델이 출력 시퀀스를 자동으로 생성하도록 한다.
Experiments
사전학습 및 평가 (Pre-training and Evaluation)
이 절에서는 사전학습된 BioGPT를 아래 4가지 생물의학 NLP 과제에 대해 총 6개 데이터셋을 통해 평가한다:
-
엔드투엔드 관계 추출: BC5CDR [13], KD-DTI [14], DDI [15]
-
질의응답(QA): PubMedQA [16]
-
문서 분류: HoC [17]
-
텍스트 생성: 자체 생성한 데이터셋
구현에는 fairseq [50]을 기반 코드로 사용하며, GPT-2medium 구성을 BioGPT의 백본으로 채택하였다. 일반 도메인(GPT-2)의 어휘는 생물의학 도메인과 차이가 크기 때문에, 도메인 전용 코퍼스에서 BPE(Byte Pair Encoding)를 새롭게 학습하여 어휘를 구성하였다.
사전학습 설정
-
환경: NVIDIA V100 GPU 8개
-
스텝 수: 200,000
-
토큰 수: GPU당 1024 토큰, 64 스텝 누적 → 전체 배치 사이즈: 1024 × 8 × 64 = 524,288 토큰
-
옵티마이저: Adam [51], peak learning rate = 2×10⁻⁴, warm-up 스텝 = 20,000
-
학습률 스케줄: 피크 이후 inverse square root decay 적용 [47]
파인튜닝 설정
모든 파인튜닝 실험은 단일 NVIDIA V100 GPU에서 수행되었으며,
-
배치 사이즈: 1024 토큰
-
누적 스텝: 32 스텝
추론 설정
-
텍스트 생성에는 beam search (beam size=5) 사용
-
나머지 태스크에는 greedy search 사용
모든 실험에서 비교 대상 모델로는 Hugging Face 라이브러리의 GPT-2medium [52]을 사용하였다.
엔드투엔드 관계 추출 (End-to-End Relation Extraction)
관계 추출은 정보 추출에서 매우 중요한 작업이다. 이 실험에서는 텍스트를 입력으로 받아 **관계 삼중항(triplet)**을 직접 생성하는 엔드투엔드 방식의 관계 추출을 수행한다.
비교 대상은 다음과 같다:
-
REBEL [24]: BART 기반 시퀀스-투-시퀀스 관계 추출 모델. Wikipedia 기반의 대규모 삼중항 데이터로 추가 사전학습된 REBELpt도 포함.
-
seq2rel [25]: BART 기반 시퀀스-투-시퀀스 관계 추출 모델
-
GLRE [23]: 파이프라인 기반 관계 추출 모델. 중간 과정에서 NER(Named Entity Recognition) 주석 정보 필요
BC5CDR 데이터셋
BC5CDR은 화학물질-질병 간의 관계 추출을 위한 데이터셋으로, 학습/검증/테스트 세트 각각 500개 문서로 구성되어 있다.
-
모델 구성: GPT-2medium 및 BioGPT 모두 100 에폭 학습
-
러닝레이트: 최대 learning rate = 10⁻⁵, warm-up 스텝 = 100
-
프롬프트: 길이 9의 continuous embedding 사용
-
출력 형식:
rel-is
형식 -
BC5CDR은 관계 유형이 지정되지 않은 binary relation만을 제공하므로, 출력 시퀀스 형식은
"the relation between [head entity] and [tail entity] exists"
로 설정 -
평가 기준: 마지막 5개 에폭의 체크포인트 평균, micro-F1 score
GLRE 모델과의 비교는 두 가지 설정으로 수행:
-
학습 시에는 정답 NER 정보, 추론 시에는 오픈소스 NER 툴 사용 (GLRE (gt+pred))
-
학습 및 추론 모두 오픈소스 NER 툴 사용 (GLRE (pred+pred))
→ NER 태깅에는 오픈소스 NER 툴 사용
실험 결과 요약 (표 2 기준)

-
**BioGPT는 모든 방법 중 가장 높은 micro-F1 성능 (44.98%)**을 기록
-
주요 관찰 결과:
-
GLRE는 오픈소스 NER 툴을 사용할 경우 성능이 급격히 저하됨. 실제 환경에서는 정답 NER 주석이 부족하거나 비용이 크므로 이는 현실적 문제임.
-
REBEL 대비 BioGPT는 8.28% 성능 향상을 보임.
-
seq2rel은 학습 시 검증 세트까지 사용했음에도 불구하고, BioGPT는 학습 세트만으로도 4.78% 더 높은 성능을 기록.
-
BioGPT가 학습+검증 세트를 모두 사용하면 성능이 46.17%로 상승, seq2rel보다 5.97% 우위.
-
KD-DTI
KD-DTI는 약물-표적 상호작용(Drug-Target Interaction)을 위한 데이터셋으로 [14]에서 제안되었으며, 학습/검증/테스트 세트는 각각 12,000 / 1,000 / 1,300 문서로 구성된다.
GPT-2medium과 BioGPT를 각각 30 에폭 동안 파인튜닝하였으며, 옵티마이저는 Adam, 러닝레이트는 최대 10⁻⁵
, 워밍업 스텝은 1,000으로 설정하였다.
프롬프트로는 길이 9의 continuous embedding을 사용하고, 출력 시퀀스는 rel-is
형식으로 구성하였다.
마지막 5개 에폭의 체크포인트를 평균내어 평가하였다. 평가 지표는 micro-F1 score이다.
비교 모델은 GPT-2medium, Transformer + PubMedBERT-attn [14], REBEL이다.
BioGPT는 38.42% F1 점수를 기록하였고, 이는 각각 다음과 같은 성능 향상을 보인다:
-
Transformer + PubMedBERT-attn 대비 14.23% 향상
-
GPT-2medium 대비 9.97% 향상
-
REBEL 대비 8.03% 향상
-
추가 사전학습된 REBELpt 대비 5.1% 향상
DDI
DDI Extraction 2013 코퍼스는 약물-약물 상호작용(Drug-Drug Interaction) 추출을 위한 데이터셋으로 [15]에서 제안되었으며, DrugBank에서 추출한 792개의 텍스트와 233개의 Medline 초록으로 구성된다.
학습/검증/테스트 파일 수는 664 / 50 / 191이다.
GPT-2medium과 BioGPT를 각각 100 에폭 동안 학습하였으며, 러닝레이트는 10⁻⁴
, 워밍업 스텝은 500이다.
프롬프트는 길이 9의 continuous embedding, 출력 형식은 rel-is
형식을 사용하였다.
마지막 5개 에폭의 체크포인트를 평균내어 평가하였고, micro-F1 score를 측정하였다.
BioGPT는 40.76% F1 점수를 기록하였으며, 다음과 같은 성능 향상을 보였다:
-
GPT-2medium 대비 16.08% 향상
-
REBEL 대비 12.49% 향상
-
REBELpt보다도 성능이 높음 (대규모 관계 추출 데이터로 추가 학습된 모델)
질의응답 (Question Answering)
PubMedQA는 생물의학 질문응답 데이터셋으로, 각 샘플은 PubMed 초록, 질문, 문맥, 긴 정답, 그리고 yes/no/maybe 레이블로 구성된다.
원래의 train/validation/test 분할은 각각 450 / 50 / 500 샘플이며, 이는 PQA-L로 불린다.
학습에는 추가적으로 PQA-A, PQA-U 데이터도 사용되었다.
프롬프트는 길이 9의 continuous embedding, 입력과 출력 시퀀스는 앞서 설명한 포맷으로 구성하였다.
두 단계 파인튜닝(two-stage fine-tuning)과 노이즈 레이블 등 다양한 기법을 적용하였다.
평가 지표는 [16]에서 정의한 reasoning required setting에서의 분류 정확도이다.
BioGPT는 78.2% 정확도를 기록하며, 이전 최고 성능인 BioLinkBERT 대비 6.0% 향상으로 해당 과제에서 새로운 SOTA를 달성하였다.
문서 분류 (Document Classification)
HoC (Hallmarks of Cancers) 코퍼스는 1,580개의 PubMed 초록으로 구성되며, 전문가가 문장 단위로 10개의 암 관련 항목에 대해 수동 주석을 달아 만든 데이터셋이다.
[8]과 동일한 학습/테스트 분할을 따랐다.
프롬프트는 길이 1의 continuous embedding, 출력 시퀀스는 이전과 같은 포맷으로 구성하였다.
GPT-2medium과 BioGPT 모두 20,000 스텝 동안 학습하였으며, 러닝레이트는 10⁻⁵
, 워밍업 스텝은 1,000이다.
평가지표는 micro-F1 score이다.
BioGPT는 85.12% 정확도를 기록하였으며, 다음과 같은 향상을 보였다:
-
GPT-2medium 대비 3.28% 향상
-
BioBERT 대비 3.58%, PubMedBERT 대비 2.8%, BioLinkBERT 대비 0.77% 향상
다음은 "Text Generation" 섹션의 전체 한국어 번역입니다:
텍스트 생성 (Text Generation)
GPT, GPT-2, GPT-3는 뛰어난 텍스트 생성 능력을 보여주었다. 단어, 구 또는 간단한 문장을 **접두어(prefix)**로 제공하면, 이를 조건으로 문법적으로 올바르고 의미적으로 자연스러운 텍스트를 연속적으로 생성할 수 있다.
우리는 사전학습된 BioGPT가 생물의학 도메인에서 얼마나 텍스트 생성 능력을 발휘하는지, 그리고 일반 도메인 GPT-2가 생물의학 도메인에서 어떤 성능을 보이는지 궁금했다.
이를 위해, BioGPT와 GPT-2medium의 생물의학 텍스트 생성 능력을 평가하였다. 구체적으로는 KD-DTI 테스트셋에 있는 모든 삼중항(triplet) 중에서 **약물(drug)**과 표적(target) 엔터티를 추출하였다. 각 약물 또는 표적의 이름을 입력 접두어로 주고, 해당 모델이 이를 조건으로 텍스트를 생성하도록 하였다. 이후 생성된 텍스트가 의미가 있는지, 유창한지를 검토하였다.
이 작업에는 객관적인 평가 지표는 사용되지 않았으며, 대신 몇 가지 예시를 통해 결과를 설명한다.
표 7의 결과를 통해 다음과 같은 관찰이 가능하다:
-
상대적으로 일반적인 이름(예: Bicalutamide, JAK-3)이 주어졌을 때, GPT-2도 의미 있고 유창한 텍스트를 생성할 수 있으며, 생성된 내용은 해당 단어 및 생물의학과 어느 정도 관련이 있다. 반면 BioGPT는 보다 구체적이고 전문적인 설명을 생성한다.
-
비교적 덜 일반적인 이름(예: Apricitabine, Xylazine)이 주어졌을 때는 GPT-2가 의미 있는 설명을 거의 생성하지 못하는 반면, BioGPT는 여전히 구체적인 설명을 생성한다. 특히 Apricitabine의 경우, GPT-2는 과학 논문에서 발췌한 것처럼 보이는 문장을 생성하는 반면, BioGPT는 보다 일반적인 설명을 생성한다.
-
매우 희귀하고 도메인 특화된 이름(예: Psoralen, CP-673451, BIIB-021)의 경우, 이름 자체로는 의미를 유추하기 어렵다.
-
Psoralen의 경우, GPT-2는 이를 도시 이름처럼 처리하고 문맥과 무관한 내용을 생성한다.
-
CP-673451의 경우, GPT-2는 숫자를 세기 시작한다.
-
BIIB-021의 경우, GPT-2는 PDF 파일 이름으로 인식한다.
이러한 경우에도 BioGPT는 여전히 이름과 관련된 설명 또는 도메인 관련 텍스트를 생성할 수 있다.
-
이 외에도, 연구진은 직접 몇 가지 키워드(예: COVID-19 관련 용어)를 입력하여 GPT-2와 BioGPT가 생성하는 결과를 비교하였다. 표 8에는 COVID-19 관련 키워드 또는 구를 접두어로 제공했을 때의 결과가 나와 있다.
-
GPT-2는 “COVID-19”와 “SARS-CoV-2”를 링크나 파일명 내의 코드처럼 처리하는 반면, BioGPT는 명확한 설명을 생성한다.
-
특히 “The drug that can treat COVID-19 is”라는 문장을 프롬프트로 제공했을 때, BioGPT는 실제 MedlinePlus에서 언급된 약물인 hydroxychloroquine을 생성하여 응답하였다.
참고로, GPT-2는 COVID-19 이전 시기의 데이터로 학습된 반면, BioGPT는 2021년 이전까지의 PubMed 데이터로 학습되었기 때문에, COVID-19에 대한 정보를 포함하고 있어 이와 같은 성능 차이는 당연한 결과다.
단, 표 8의 마지막 예시처럼, 2021년 말에 등장한 Omicron 변이에 대한 지식은 두 모델 모두 가지고 있지 않지만, BioGPT가 GPT-2보다 더 유창하고 관련성 있는 텍스트를 생성한다.
전반적으로, BioGPT는 생물의학 도메인에서 처음부터(in-domain) 학습된 모델로서, 다양한 생물의학 NLP 과제에서 일반 도메인 GPT-2보다 우수한 성능을 보인다. 또한, BioGPT는 대부분의 기존 방법보다 더 나은 결과를 달성하였으며, 6개 과제 중 4개에서 SOTA 성능을 기록하였다.
제거 실험 (Ablation Study)
이 절에서는 프롬프트 설계와 레이블의 타겟 시퀀스 형식에 대한 제거 실험(ablation study)을 수행하였다.\
타겟 시퀀스 형식 (Target Sequence Format)
이전 연구들 [24, 25, 14]은 레이블을 특수 토큰을 사용한 **구조적 형식(structured format)**으로 변환하여 처리하였다. 예를 들어, REBEL [24]에서는 관계 삼중항(triplet)을 다음과 같이 표현하였다:
<triplet> head entity1 <subj> tail entity1 <obj> relation1
<triplet> head entity2 <subj> tail entity2 <obj> relation2 ···
여기서 <triplet>
, <subj>
, <obj>
는 각각 head entity, tail entity, relation의 시작을 나타내는 특수 토큰이다.
[24, 14, 25]는 모두 이와 유사한 방식으로 타겟을 처리하였다.
이러한 방법들이 각 과제에서 우수한 성과를 보이기는 했지만, BioGPT에는 최적의 방식이 아니다.
이전 연구들은 인코더-디코더 구조를 사용하며, 입력을 인코더가 처리하고 출력을 디코더가 생성하는 두 개의 분리된 모듈을 이용한다.
따라서 인코더는 자연어 입력, 디코더는 구조화된 출력을 각각 효과적으로 처리할 수 있도록 훈련될 수 있다.
그러나 BioGPT는 하나의 통합된 언어 모델을 사용하여 입력을 인코딩하고 출력을 생성한다.
직관적으로, 입력과 출력 간의 형식을 일관되게 유지하는 것이 더 바람직하다.
따라서 기존 연구들처럼 특수 토큰을 포함한 구조적 형식 대신, 자연어 문장 안에 레이블을 포함하여 언어 모델이 더 자연스럽고 부드럽게 학습하고 생성할 수 있도록 구성하였다.
하지만 자연어 문장도 구성 방식에 따라 여러 패턴이 존재할 수 있으므로, 우리는 end-to-end 관계 추출 과제의 KD-DTI 데이터셋을 사용하여 다양한 타겟 시퀀스 형식을 실험하였다.
프롬프트는 길이 9의 continuous embedding으로 고정하였다.
표 9의 결과에 따르면, 자연어 형식이 구조적 형식보다 더 나은 성능을 보였으며, 그 중에서도 rel-is 형식이 F1 점수 기준으로 가장 우수한 성과를 냈다.
rel-is 형식은 의미적으로 부드럽고 명확한 설명을 제공한다는 점에서 효과적임을 확인하였다.
또한 우리는 BC5CDR 및 DDI 데이터셋에 대해서도 구조적 형식과 rel-is 형식을 비교 실험하였다.
그 결과는 다음과 같다:
-
BC5CDR
-
구조적 형식: 42.85
-
rel-is 형식: 44.98
-
-
DDI
-
구조적 형식: 38.60
-
rel-is 형식: 40.76
-
이 결과는 rel-is 형식이 구조적 형식보다 consistently 더 나은 성능을 제공함을 추가적으로 검증한다.
프롬프트 설계 (Prompt Design)
우리는 KD-DTI 관계 추출 과제에서, **수동으로 설계된 하드 프롬프트(hard prompt)**와 **연속 임베딩 기반 소프트 프롬프트(soft prompt)**를 비교 실험하였다.
타겟 형식은 rel-is
형식(예: “the relation between head entity and tail entity is relation”)으로 고정하였다.
표 10의 결과에 따르면, 가장 우수한 성능을 보인 프롬프트는 **길이 13의 연속 임베딩(virtual token 13개)**이었다.
추가적인 관찰 결과는 다음과 같다:
-
서로 다른 수동 하드 프롬프트는 성능 차이를 유발하며,
“we can conclude that”과 같이 더 명확하고 정보량이 많은 프롬프트일수록 성능이 더 우수하다. -
전반적으로 소프트 프롬프트가 하드 프롬프트보다 성능이 더 뛰어남을 확인할 수 있다.
-
소프트 프롬프트의 성능은 프롬프트 길이에 크게 의존하지 않으며,
이전 실험에서는 검증 세트에서의 성능을 기준으로 경험적으로 길이 9를 선택하였다.
결론 (Conclusion)
본 연구에서는 BioGPT를 제안하였다. BioGPT는 생물의학 텍스트 생성 및 마이닝을 위한 생성형 사전학습 트랜스포머 언어 모델이다.
우리는 GPT-2를 백본 모델로 채택하고, 1,500만 개의 PubMed 초록 코퍼스에 대해 처음부터 사전학습을 수행하였다.
또한, 사전학습된 BioGPT를 다운스트림 과제에 적용할 때, 프롬프트와 타겟 시퀀스 형식을 어떻게 설계할 것인지를 신중하게 탐색하고 분석하였다.
BioGPT는 다음의 생물의학 NLP 과제들에 적용되었다:
-
엔드투엔드 관계 추출
-
질의응답
-
문서 분류
-
텍스트 생성
BioGPT는 다음 과제에서 최신 성능(State-of-the-Art) 을 달성하였다:
-
BC5CDR
-
KD-DTI
-
DDI (이상 3개는 관계 추출 과제)
-
PubMedQA (질의응답 과제)
또한, BioGPT는 텍스트 생성 과제에서도 일반 도메인 GPT-2보다 뛰어난 성능을 보여주었다.
향후 연구에서는, 더 대규모의 생물의학 데이터로 더 큰 규모의 BioGPT를 학습시키고, 이를 더 다양한 다운스트림 과제에 적용하는 것을 목표로 한다.
핵심 기여 (Key Points)
본 연구의 기여는 다음과 같이 요약할 수 있다:
-
BioGPT를 제안하였다. 이는 생물의학 도메인에 특화된 생성형 사전학습 트랜스포머 언어 모델로,
생물의학 문헌 텍스트 생성 및 마이닝에 활용될 수 있다. -
BioGPT는 4개의 벤치마크 과제에서 최신 성능(State-of-the-Art) 을 기록하였다:
BC5CDR, KD-DTI, DDI (관계 추출), PubMedQA (질의응답).
또한 일반 도메인 GPT에 비해 우수한 생물의학 텍스트 생성 능력을 입증하였다. -
BioGPT를 다운스트림 과제에 적용할 때의 프롬프트 설계 및 타겟 시퀀스 설계를 분석하였다.
그 결과, 자연어 의미 기반의 타겟 시퀀스 형식이 기존 연구에서 사용된 구조적 포맷보다 성능이 더 뛰어남을 발견하였다.
더 큰 모델로의 확장 (Scaling to Larger Size)
우리는 BioGPT를 더 큰 규모로 확장한 BioGPT-Large 모델도 구축하였다.
이 모델은 GPT-2 XL 아키텍처(GPT-2의 가장 큰 버전)를 기반으로 하며, **모델 파라미터 수는 15억 개(1.5B)**이다.
BioGPT-Large는 기존과 동일한 방식으로 다운스트림 과제에 대해 파인튜닝 및 평가되었으며, 그 성능은 표 11에 제시되어 있다.
Reference
댓글
댓글 쓰기