![Continual Learning, Knowledge Distilation 이해하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeEg5mO%2FbtsL38xY1GY%2FI1doGV9xLwBgS3r0i1IvAk%2Fimg.png)
이전 글에 이어서 작성합니다.
Few-Shot Learning 이해하기
회사에서 AI 관련 교육이 있어서 내용을 정리 해 두려고 합니다.서울대학교 AI 교수님께서 Multi Modal과 관련된 내용을 하면서 나온 내용의 일부입니다.가장 처음으로 학습한 내용이 바로 Few-Shot Lea
ray5273.tistory.com
Zero-shot learning, Metric Learning Approach 이해하기
https://ray5273.tistory.com/entry/Few-Shot-Learning-이해하기 Few-Shot Learning 이해하기회사에서 AI 관련 교육이 있어서 내용을 정리 해 두려고 합니다.서울대학교 AI 교수님께서 Multi Modal과 관련된 내용을 하면
ray5273.tistory.com
Meta Learning - MAML, Reptile 이해하기
이전 Few-Shot Learning과 Zero-shot Learning에 이어서 세번째로 글을 작성 해 봅니다.이전 글은 아래 링크를 통해서 확인할 수 있습니다. Few-Shot Learning 이해하기회사에서 AI 관련 교육이 있어서 내용을
ray5273.tistory.com
Continual Learning의 필요성
현실에서는 RAG나 그런 현실 내용들이 실시간으로 업데이트 되어야합니다.
그런데 현실의 업데이트는 엄청 빠른데, Retriever와 LLM은 언제 추가로 학습시키고 업데이트를 할것이냐 이것이 상당한 고민입니다.
그 작업을 하기 위한 몇 가지 우려점들이 있는데요.
1. LLM은 학습이 무겁습니다.
2. Retriever는 상대적으로 학습이 가볍습니다.
3. Parameter 업데이트는 두려운 일입니다.
- LLM에서 갑자기 잘 되던 기능이 다시 안되는 경우가 많다고 합니다. (이를 Catastrophic forgetting라 합니다)
- LLM은 같은 모델을 추가로 학습시키는 등의 과정을 거치면 기존의 parameter 유지가 안될 확률이 높으므로
- 따라서, batch로 특정 시점에 모델을 변경만 한다던지의 방식을 많이 쓴다고 합니다.
교수님의 의견 3
Continual Learning은 현실에서는 아주 중요하다고 합니다.
학계에서는 이를 해결하는게 아주 쉽지는 않은 상황이라고 합니다.
Catastrophic Forgetting
위에서 언급되어있듯 Continual Learning에서 해결해야하는 중요한 문제는 Catastrophic forgetting입니다.
대부분의 사람들의 기억력 처럼 과거의 내용을 천천히 잊어버리는 현상은 LLM에서도 크게 문제 되는 부분은 아닐 수 있습니다. (상대적으로 과거의 데이터에 대한 질문은 덜할 가능성이 높아서 그렇다고 이해했습니다.)
다만, LLM 학습 과정에서 갑자기 내용들을 다 잊어버리는 경우가 있다는 것이죠.
위의 예제에서 보면
1. MNIST를 먼저 5분간 학습하고 SVHN을 그 뒤에 20분간 학습하는 경우에도 MNIST에 대한 정확도가 확 떨어지고 (왼쪽)
2. SVHN을 먼저 20분간 학습하고 MNIST를 그 뒤 5분간 학습하는 경우에도 SVHN에 대한 정확도가 상당히 떨어집니다. (오른쪽)
그래서 연구자들은 Continual Learning에 대해서 아래와 같은 요구사항을 추려냈습니다.
Continual Learning에 대한 요구사항
- Catastrophic forgetting을 겪지 않으면 좋겠다.
- 인간은 뭔가를 계속 학습함에 따라 뇌의 구조가 바뀌니 AI도 마찬가지로 바뀌더라도 천천히 이전 학습을 잊었으면 한다.
- 학습에 도움이 되는 방향으로 다음 학습이 영향을 받으면 좋겠다.
- 즉, 이전 학습에서 배운 내용을 다음 학습에도 활용할 수 있도록 하면 좋겠다는 것이죠.
- 새로운걸 배워서 이전에 배운 내용에 대해서도 성능이 향상되었으면 좋겠다.
- 2번과는 반대되는 내용입니다.
- 새로운 Task가 어떤것이 오는지 미리 알려주지 않아도 잘 학습이 되면 좋겠다
이 4가지의 요구사항이 있었습니다.
Continual Learning 방법
이를 해결하기 위한 방법으로는 아래와 같은 방법들이 있습니다.
1. 리허설(Rehearsal) 기법
- 이전에 학습한 데이터를 주기적으로 다시 학습하여 기억을 강화하는 방법입니다.
- 메모리 버퍼에 이전 데이터를 저장하고, 새로운 데이터를 학습할 때 이 데이터를 함께 사용하여 모델을 업데이트합니다.
- 현실에서는 이게 가장 좋은 방법이라고 하네요
Pseudo-rehearsal method
- 이 방법은 데이터 그 자체를 다시 학습하는 것이 아닌 data generator를 만들어 놓고 replay 한다고 합니다.
- 또한, 이런 동작 자체가 사람이 기억하는 방식과 가장 가깝다고 하네요. (사람도 아주 정확하게 기억하는 게 아닌 일부를 기억하고 잘못된 사실을 만들어 낼 때도 있으니까요)
- 다만 이 방법을 쓰면 forgetting이 데이터가 아닌 data generator에서 발생합니다.
- 그 의미는 예전의 데이터를 잘 생성하지 못하게 되는거죠.
- 기업이 privacy를 관리한다는 측면에서는 개인의 데이터를 계속 보유하고 있지 않아도 되니 더 좋다고 합니다.
2. 정규화 기반 접근법
- 특정 파라미터의 중요도를 계산하여 중요한 파라미터가 크게 변하지 않도록 제약을 가하는 방법입니다.
- Elastic Weight Consolidation (EWC) 방법은 파라미터의 중요도를 계산하여, 중요한 파라미터가 크게 변하지 않도록 정규화 항을 추가합니다.
- 성능이 별로 좋지는 않다고 하네요
3. 아키텍처 기반 접근법
- 모델의 구조를 변경하여 새로운 정보를 학습할 때 이전 정보를 잊지 않도록 하는 방법입니다.
- Progressive Neural Networks는 새로운 테스크를 학습할 때마다 새로운 네트워크를 추가하여, 이전 네트워크의 출력을 새로운 네트워크의 입력으로 사용합니다.
4. 기억 기반 접근법
- 외부 메모리 시스템을 사용하여 이전에 학습한 정보를 저장하고 필요할 때 이를 참조하는 방법입니다.
- Memory-Augmented Neural Networks (MANNs)는 외부 메모리를 사용하여 과거의 경험을 저장하고, 새로운 테스크를 학습할 때 이를 참조합니다.
5. 데이터 증강 및 생성
- 데이터 증강 기법을 사용하여 다양한 변형을 통해 모델이 더 일반화된 패턴을 학습하도록 유도합니다.
- GANs(Generative Adversarial Networks)를 사용하여 새로운 데이터를 생성하고, 이를 학습에 활용합니다.
사실 CL 방법에 대해서는 시간 관계상 아주 자세히는 설명을 듣지 못해서 추후에 더 정리하려고 합니다.
Knowledge Distilation
Knowledge Distilation은 일반적으로 model의 compression이나 inference 속도를 올릴때 (acceleration) 사용하는 테크닉이라고 합니다.
즉, 큰 모델을 distilation 하여 용량은 작지만 성능은 비슷한 작은 모델을 만들겠다는 것이죠.
최근에 화제가 된 Deekseek도 이 Distilation을 잘 활용했다고 알려 져 있습니다.
Knowledge Dislation에서 관심 있는 내용들
Knowledge Distilation 방식의 종류
Knowledge라고 하면 복잡하고 성능이 우수한 모델 (Teacher 모델이라고 불립니다)이 학습한 정보를 의미하고, 이를 단순하고 경량화된 모델 (Student 모델)로 전달하여 Student 모델이 Teacher 모델의 성능을 모방하거나 향상시키는 것을 목표로 합니다.
3개의 종류가 있다고 합니다.
1. Response-Based knowledge
- 모델의 최종 출력값(logits)을 Student 모델이 학습하도록 하는 방법입니다.
- 예를 들어, 분류 문제에서 Teacher 모델의 출력 확률 분포를 Student 모델이 모방하도록 유도합니다.
2. Feature-Based Knowledge
- 모델의 중간 계층에서 추출된 특징 맵 (Feature map)을 Student 모델이 학습하는 방식입니다.
- 이는 모델의 중간 표현을 활용하여 더 깊은 수준의 지식을 전달합니다.
3. Relation-based knowledge
- Teacher 모델 내부 계층 간의 관계 또는 서로 다른 샘플 간의 관계를 Student 모델이 학습합니다.
Distilation algorithm
Hinton's distilation model
주요 아이디어
1. Teacher와 Student 모델
2. Soft Target (Softened Output)
- Teacher 모델은 단순한 one-hot 라벨이 아니라, softmax 함수를 사용할 때 temperature라는 파라미터를 적용하여 soft target을 만듭니다.
- 이 temperature를 높이면 출력 분포가 부드러워져서 각 클래스 간의 유사도나 관계 정보를 반영합니다.
- 예를 들어, 원래 hard label에서는 1과 0만 존재하지만 soft target에서는 그 사이의 숫자로 표현이 되어 "이 클래스도 조금은 관련이 있다" 라는 부가정보가 쌓이게 됩니다.
3. Teacher -> Student 지식 전달 과정
- Student 모델은 Teacher 모델이 만든 softened output을 학습 목표 중 하나로 삼습니다.
- 보통 두 가지 손실 함수를 동시에 사용합니다.
- 기존의 hard label와의 교차 엔트로피 손실
- Teacher의 soft target 과의 손실
- 이렇게 하면 Student 모델은 단순히 정답만 학습하는게 아닌 Teacher 모델이 가진 클래스간 관계나 패턴까지 학습하게 되어 더 나은 일반화 성능을 기대할 수 있습니다.
참고
Continual Learning: 꾸준히 성장하는 모델을 만들기 위한 기술 – 스캐터랩 기술 블로그
Continual Learning: 꾸준히 성장하는 모델을 만들기 위한 기술
주제별로 알아보는 continual learning
tech.scatterlab.co.kr
Welcome to JunYoung's blog | Continual learning/Lifelong learning의 개념과 방법론 총정리
Welcome to JunYoung's blog | Continual learning/Lifelong learning의 개념과 방법론 총정리
이 글은 survey 논문인 A Comprehensive Survey of Continual Learning: Theory, Method and Application를 각색 및 요약한 글입니다. Continual Learning 이란? 인공지능과 유기체의 근본적 차이 인공지능의 주체가 되는 ‘모
junia3.github.io
'CS 지식 > AI 관련' 카테고리의 다른 글
Transformer 이전의 NLP 역사들 (0) | 2025.02.12 |
---|---|
Multimodal AI에 대한 여러 의견과 주요 모델들 (2) | 2025.02.09 |
Meta Learning - MAML, Reptile 이해하기 (0) | 2025.01.30 |
Zero-shot learning, Metric Learning Approach 이해하기 (0) | 2025.01.28 |
Few-Shot Learning 이해하기 (0) | 2025.01.28 |
개발 및 IT 관련 포스팅을 작성 하는 블로그입니다.
IT 기술 및 개인 개발에 대한 내용을 작성하는 블로그입니다. 많은 분들과 소통하며 의견을 나누고 싶습니다.