문서 메모리 방식은 document memorization으로 Factuality에 대해서 높은 성능을 낼 수 있는가? (Korean)

문서를 암기하도록 저장하는 것은 도움이 된다. 추가적인 궁금증은 구조적인 메모리로 문서를 암기하는 것이 도움이 되는지 여부이다.

Does Structural Document Memory Help Factual Recall?

Document-wise Memories

문서에 대한 메모리를 설정하는 것은 지식을 더욱 정렬하는 효과를 불러일으킨다. 이 연구에서는 동일한 파라미터에 대해서 문서별 메모리를 설정하는 것이 비슷한 문서 암기 수준을 보인다는 점을 밝힌다. 그러나, Factuality Question Answering에 대해서는 문서에 저장된 정보를 제대로 활용하지 못한다고 생각한다.

몇 개의 레이어에서는 축자ㅓㄱ인 학습 없이도 문서의 메모리를

Experimental Settings

We use the same setting in the previous work except the number of documents to 449 pages. We do not train the template for fever training dataset and directly evaluate the validation question and answer pairs by memorizing the evidence Wiki pages. We use Llama2 7B and Llama2-Chat 7B for the memorization of documents. All the predictions are conducted with 1-shot setting where the few-shot examples are obtained from the training QA pairs of the same document.

Baselines and SimSet

We use the following baselines for the experiment and evaluate the performance of SimSet structural memories for documents.

  1. Pretrained Status
  2. Unstructured Neural Memory
  3. Structured with Disjoint Length Proportional

We use the following Simset settings

  1. 1-shingling
  2. 2-shingling

⚠️ 해당 결과는 memory 와 simset의 메모리 구조가 다르다. memory 는 layer_norm 과 gating을 추가로 사용하였다.

해당 결과는 코드실수로 결과가 맞지 않다. 메모리는 문서에 대해서 학습한 게 맞지만, Simset은 FEVER template에 대해서 학습하였다. 따라서, Simset은 메모리별로 문서 정보가 아니라 FEVER 학습 데이터로 업데이트 되었다.

Model Pretrained Weights Memory (24th) 1-shin (24th-dim) 1-shin (24th-token) 2-shin (24th-dim) 2-shin (24th-token)
llama2_chat 7b 0.644 0.652 0.640 (template) 0.641 (template) 0.640 (template) 0.653 (template)
layernorm+gate 0.644 0.652 0.649 (template) 0.641(template) 0.639 (template) 0.653 (template)
document memo. 0.644 0.652        

문서 암기 학습 에러

학습 시간 및 레이어에 따른 에러는 다음과 같다. 마지막 레이어에 가까워질수록 loss와 가깝기 때문에 더 낮은 에러에서 시작한다. 그러나 학습이 오래 진행될수록 일반화 성능은 떨어지는 것을 확인할 수 있다. 중간 레이어를 수정하는 것은 모델의 state에 대해서 수정하기 때문에 장기적으로 봤을 때 에러가 더 낮은 것으로 보인다. 따라서 중간 레이어에 대해서 추가 메모리 구조를 적용하는 것은 GPT 내부 state에 대한 변화를 주는 것이다.

FEVER 정확도

각 레이어에 대해서 추가적인 모듈을 학습하는 경우 다음과 같은 정확도를 가진다. Pretrained는 모델에 다른 작업 없이 1-shot으로 예측하는 결과이다. 대부분의 레어어들은 모델에 adaptation하는 것이 오히려 성능 저하를 가져왔다. 반면 특정

레이어, 문서 암기 에러, Factual Knowledge 정확도는 다음과 같다.

No Clear Sign of Benefits of SimSet

그냥 메모리에 저장하는 것은 모델이 알아서 사용하도록 큰 도움을 주는가? 내가 표현을 적절하게 바꿔주는가? 그렇지 않은 것 같다. 일부 모델링에서 약간의 성능 향상이 있지만, 유의미한 수준이 아니며, 일반적으로는 성능 저하가 나타나는 것으로 보인다. 따라서, 지식을 저장하는 것과 LLM이 저장된 지식 표현을 효율적으로 사용하는 것을 보장하지 않는다.

SimSet-Dimension의 경우 Loss 자체는 높은 수준을 보였기에 저장이 제대로 되지 않았다고 할 수 있다. 그러나, Accuracy 자체는 더 높게 나타났기에 저장이 잘 된다고, 혹은 유의미하게 된다고 다른 Task에 모델이 바로 사용가능하다는 것은 틀렸다. 모델이 저장된 지식을 예측에 사용하게 만들기 위해서 적절한 모델링이 추가적으로 연구되어야 한다.

Analysis

저장은 잘 되는 것 같다. 그러나 저장된 정보를 잘 활용하는지는 여전히 미지수로 남아있다. 이 정보를 활용하는 것을 추가적으로 학습하기 위해서도 어뎁테이션 학습이 가능하다. 따라서 만일 Simset이 별다른 추가 학습 없이 메모리를 효율적으로 사용할 수 있다면, 해당 메모리를 더욱 사용하도록 추가학습하는 것이 도움이 될 것이다.

단순하게 저장하는 것이 도움이 된다는 점은 naive 하다. 추가적으로 저장된 정보를 활용하는 방법을 연구해야 한다. 저장 자체만으로는 부족하다. 정보 저장의 관점에서는 전체 메모리를 사용하는 것과 동일한 수준으로 암기력을 보이고 있다. 그러나 해당 정보가 실제로 더욱 도움이 되는지는 아직 부족하다. 따라서, Neural 메모리의 효율을 올리기 위한 구조적인, 알고리즘적인 방법을 찾아야 한다.


Update on 240416

코드 오류 발생!

FEVER 학습 데이터에 대해서 Layer-norm과 gating을 추가하는 경우, Simset-1에 대해서 성능이 향상되었다. SimSet2에 대해서는 성능이 저하되었다. 학습 다이나믹은 Simset의 경우, Template에 대한 다니아믹, Memory는 문서 학습에 대한 다이나믹이라서 큰 차이를 보인다.

문서에 대해서 재학습

문서 + Adaptation 에 대해서 재학습