1day_1paper
1day_1paper copied to clipboard
[15] An Empirical Study on Few-shot Knowledge Probing for Pretrained Language Models (TREx-2p data)
기존 LAMA dataset 은 1-hop (subject, relation, object) 성능만을 예측했다.
LAMA dataset paper review blog - KR
아래 이미지는 LAMA 의 예시다. LM 도 과연 진짜 DB 정보에 있는 정보들을 잘 뽑아낼까? 하는 것.
LAMA 를 간략하게 정리하면,
- BERT-large는 relation knowledge 겁나 잘 뽑아냄.
- factual knowledge는 pre-trained language model 에서 잘 뽑아내는데, 일부관계(N-to-M 관계)의 성능은 매우 낮음.
- BERT-large는 factual, common sense를 회복하는 동시에 다른 언어모델보다 성능이 뛰어나면서 동시에 쿼리 구문에 더욱 강력함.
- BERT-large는 task-specific supervised relation extraction을 사용하여 구축된 지식기반의 성능에 비해 더 높은 결과를 달성.
<요 이미지는 Improving Multi-hop Question Answering over Knowledge Graphs using Knowledge Base Embeddings - ACL20 논문에서 가져왔다. 3-hop 의 예시이다.>
슬프게도, T-REx dataset 에서 BERT-large 모델의 zero-shot performance 는 처참했다. accuracy 30% 정도. 대부분 틀리는 이유는 object type이 달라서 였음. finetuning 좀 해주니까 성능 확 좋아짐. 아래 그림이 틀리는 예시와, finetuning 예시.
해당 논문은 10~20 개의 데이터만을 갖고 finetune 을 해서 few-shot knowledge probing을 수행한다.
- 사람도 직관적으로 몇 개의 데이터만을 갖고 정확한 relation-type을 유추할 수 있음
- 새로운 relation 과 rare relation type에 대한 성능측정이 가능
contribution 은 3가지임.
- 2-hop 데이터셋인 TREx-2p 를 만들었음
- few-shot finetune 이 knowledge probing에서 효과적인 것을 보여줌
-
bias vector 를 효과적으로 finetuning 시켜서
prompt-engineering
성능 압살
Few-shot Knowledge Probing
notation 부터 정리한다.
-
: pretrained model
-
: Vocabulary
-
: probing dataset. subject x, relation y, object z 로 이루어짐
-
: fewshot 용으로
에서 일부분 가져온 데이터 (10~20 개 sample)
-
:
에서 split 함 (train)
-
:
에서 split 함 (일종의 validation. parameter tuning 용으로 사용함)
-
: test-set
아래 그림은 앞으로 설명할 개념들을 이해하는데 도움이 되는 input 예시들이다.
Template Options
masked language 모델의 template 도 여러가지로 줄 수 있다.
LAMA 논문에서 했던 것 처럼 manual 하게 주는 방법이 있고, ()
How Can We Know What Language Models Know? 에서 처럼 자동으로 alternative template 을 찾기위한 mining 방법이 될 수 있다. relation r이 있을 때
에서 가장 잘 동작하는 template을 찾아내는 방법을 (
) 로 하자.
manT 든 mineT 든 human effort가 들어가는 건 마찬가지다. GPT-3 에서처럼
[X] => [Y]
template을 만들 수 있다. 요 녀석은 defT
라 하자.
In-context Learning
GPT-3 에서 봤듯이, input에 포함된 example로도 LM 은 학습된다. 이 효과를 보기 위해서, 에서 데이터를 뽑아서 long-prefix 로 input에 함께 넣는다. 요런 녀석을
로 두자.
Optimized Prompts
prompt 를 자동으로 찾는 것은 흥미로운 주제이다. AutoPrompt 와 BERTese 는 training set을 이용해서 discrete token 들에 대해 gradient-based search를 수행했었다. OptiPrompt 는 continuous vector 로 AutoPrompt를 확장했다. 여기서 input 에 추가적으로 5개의 정보가 들어간다 (subject 와 mask token 사이의 relation). 이 5개의 relation token은 learnable 하게 학습된다. 실험에서 initialize는 많이 사용된 10000개 토큰 값을 평균내서 썼다.
이런실험들은 1000 개 sample에 대해서 finetune 을 실행했었지, 이렇게 10~20개의 few shot에서 사용된 적은 없다. ~1000개 짜리 scale 실험에서도 BitFit이 효과가 있는 지 report 해주지 이건 또 실험 안했음. BitFit은 아래에서 설명함~
Model Bias Finetuning
BitFit 에서는 encoder의 bias 만 finetune 할 것을 제안했다. GLUE 에서도 성능 좋았음.
bias vector 절반만 학습하는 variant를 사용했음. 좀 더 상세하게 말하면, 각 transformer layer에 대해 요렇게만 finetune 함
- the bias for the attention query (of length 1024)
- the bias for the intermediate layer (of length 4096)
Results
Few-shot 에서는 BitFit을 섞어주는게 무조건 좋다.