deep daiv.
← Newsletter

#63 언어 모델의 편집

날짜
2024년 10월 30일
에디터
잭잭
위클리 딥 다이브 #632024년 10월 30일

출처: “Should We Really Edit Language Models? On the Evaluation of Edited Language Models”

안녕하세요, 에디터 잭잭입니다.

오늘은 언어모델 편집에 대해서 알아보려고 해요. 언어모델의 안전성, 정확성을 개선하기 위해서 모델 RAG와 Knowledge Graph를 사용하여 추가적인 데이터를 제공하는 방법에 대해서는 이제 조금 익숙하실 것 같습니다. 이 방법들은 기존 모델은 그대로 두고, 외부 데이터베이스에서 최신 정보를 검색함으로써, 정보의 정확성과 최신성을 유지할 수 있습니다. 그러나 이 방법은 추가적인 하드웨어나 예산이 필요하죠. 이와 달리 외부 보조장치가 아닌 모델 자체를 편집하는 방법을 모델 편집(Model Editing)이라고 해요. 모델 편집 기법들은 특정 작업이나 주제에 대해 모델의 내부 매개변수를 수정하므로, 모델의 성능을 직접적으로 향상시킬 수 있다는 점 또한 장점입니다.

프롬프트 엔지니어링? 파인튜닝? 모델 편집?

대형 언어 모델의 성능을 높이기 위해 가장 많이 쓰는 방법을 꼽는다면, 위에서 언급한 RAG를 제외하고 프롬프트 엔지니어링과 파인튜닝이 가장 먼저 떠오르는데요. 여기에 모델 편집 기법까지 있다니 너무 복잡하다고 느껴지실 수 있습니다. 쉽게 말해서, 모델 편집은 ‘모델 편집은 언어 모델의 내부 매개변수, 구조, 지식 등을 조작하는 방법론’ 입니다. 매개변수를 어떻게 조작할 것이며, 구조를 어떻게 바꿀것이고, 어떤 지식을 추가할지에 따라 모델 편집 기법이 달라집니다. 알아채셨을 수도 있겠지만, 모델 편집에는 다양한 기법들이 존재해요! 그렇다면 프롬프트 엔지니어링과 파인튜닝 중 모델 편집 기법에 해당하는 것이 있을까요?

프롬프트 엔지니어링은 모델의 입력을 조정하여 출력을 개선하는 반면, 모델 편집은 모델 자체의 구조나 지식을 수정하여 성능을 향상시키는 것을 목표로 합니다. 즉 프롬프트 엔지니어링은 모델 편집 기법이 아니에요. 반면 파인튜닝은 모델 편집의 한 방법으로 볼 수 있습니다. 특정 성능을 개선하기 위해 파인튜닝 하면 모델 내부의 매개변수가 조작되기 때문이죠!

모델 편집 기법들

파인 튜닝 외에 언어 모델을 편집하는 방법은 다양합니다. 주로 특정 지식을 수정하거나 편집하기 위해 사용하는 방법들이에요.

가장 먼저 MEND(Model Editor Networks with Gradient Decomposition)는 메타 학습 기반 모델 편집 기법 중 가장 많이 언급되는 방법입니다. 메타 학습이란 ‘학습하는 방법을 학습’하는 과정으로, 새로운 작업이나 환경에 빠르게 적응할 수 있도록 모델을 훈련하는 방법이에요. MEND는 메타 학습을 통해 특정 정보만 최소한으로, 빠르게 조정하도록 훈련된 네트워크입니다. 다른 지식에 미치는 영향을 최소화하여 모델의 안정성을 높일 수 있다는 장점이 있어요.

그 다음으로는 ROME(Rank-One Model Editing) 모델의 특정 위치를 식별한 후, 임베딩 벡터의 랭크-원 변환을 이용해 지식을 효율적으로 편집합니다. 모델에서 특정 지식을 담고 있는 위치를 직접 찾아내어, 다른 지식에 영향을 최소화하면서 수정할 수 있는 대표적인 방식으로 평가받고 있습니다.

검색 기반 모델 편집의 대표적인 방법으로, SERAC(Search-Augmented Editing by Retrieval And Contextualization)가 있습니다. 이 방법은 특이하게도 외부 검색 시스템과 결합하여 모델 내부의 지식베이스를 실시간으로 확장하고 보완합니다. 마치 RAG를 모델 편집 기법으로 사용한 것처럼 느껴지기도 합니다. 그래서 RAG와 유사하게 업데이트된 지식을 반영할 수 있다는 장점을 가지고 있어요.

마지막으로 소개해드릴 방법은 GRACE(Gradient-based Augmented Knowledge Editing)입니다. 이 방법은 새로운 파라미터를 추가하여 기존 모델의 지식을 덮어쓰는 방식으로, 기존 정보는 그대로 두면서 필요한 정보만 추가할 수 있는, 확장성이 좋다는 점이 특징이에요. 특히 편집 후에도 이전 지식을 병행하여 사용할 수 있는데 이 과정에서 충돌이 적게 일어난다는 점이 장점이에요.

모델을 편집하면 부작용이 없나요?

기존 편집 방법은 일반적인 벤치마크에서 성능 저하를 초래하며, 이러한 편집 방법들이 모델의 일반적인 능력을 몇십 개의 편집 내에서만 유지한다는 것을 나타냅니다. 편집 횟수가 조금만 많아져도 모델의 본래 지식 구조가 혼란에 빠지거나 심지어 완전히 손상될 수 있습니다.

실험 결과, 대부분의 현재 편집 방법은 수십 회 편집 내에서는 모델의 기본 능력에 큰 영향을 미치지 않는 것으로 나타났습니다. 그러나 편집이 거의 백 회에 달하면 일부 방법은 성능 저하를 빠르게 초래하며, 모델에 최대 1만 회의 극단적인 편집을 가했을 때, 모델의 내재된 지식 구조가 완전히 파괴되어 어떤 입력에 대해서도 빈 문자열을 출력하는 ‘음소거 효과(Muting Effect)’가 발생하였습니다. <Should We Really Edit Language Models? On the Evaluation of Edited Language Models> 의 연구진은 연속적 언어 모델 편집에서 나타나는 이 현상을 음소거 효과라고 명명합니다.

가장 좋은 편집 방법은?

지시 조정(instruction-tuning)을 거친 모델이 편집에 더 강인하여, 편집 후에도 일반 지식 성능이 덜 떨어집니다.

(추가 예정)

모델 편집에 가장 영향을 작게 받는(Robust)한 모델은?

더 큰 모델은 편집 후 벤치마크에서 부작용이 적게 나타납니다.

(추가 예정)

앞으로


함께 읽기