-
상용화된 LLM에서 얻은 피드백 활용 방법Paper Reviews 2023. 10. 31. 08:47
상용화된 LLM 서비스들을 이용하다보면, 아래 그림과 같이 나의 피드백도 남길 수가 있는 것을 확인할 수 있습니다.
gpt-4 binary feedback OpenAI GPT 서비스에는 답변 옆에 thumbs up / down 할 수 있는 버튼이 있는데, 이를 통해 모델이 제대로 된, 만족스러운 답변을 주었는지 여부에 대한 피드백을 수집합니다.
gpt-4 multi-choices, free-form feedback 만약 답변이 마음에 들지 않아 thumbs down 버튼을 선택했다면, 위 그림과 같이 어떤 점을 개선할지 자유 양식으로 서술 받거나, 답변이 마음에 들지 않는 이유를 3개 선택지 중에 선택할 수도 있습니다.
이런 여러가지 피드백 중에 어떤 종류의 피드백이 LLM의 품질을 더욱 개선하는데 도움을 줄 수 있을까요? 그리고 LLM 서비스를 개발하는 회사에서는 어떻게 피드백을 활용하고 있을까요?
Meta AI에서 수행한, 다양한 피드백을 활용한 모델 개선 사례를 가져와봤습니다.
ACL 2023
Meta AI
Learning New Skills after Deployment: Improving open-domain internet-driven dialogue with human feedback
https://arxiv.org/pdf/2208.03270.pdf
Dataset
이 논문에서 다루는 LLM 서비스는 대화 챗봇이며, 다양한 주제에 대해서 대화를 나눌 수 있습니다. 답변을 풍부하게 하기 위해, 검색 쿼리를 활용하여 찾은 웹 상의 정보 역시 대화에 활용할 수 있도록 인터넷 검색 기능을 탑재한 Bing 같은 챗봇을 상상하면 될 것 같습니다.
F1에 요새 무슨일이 있어? 사람이 챗봇과 대화하며 다양한 방식으로 피드백을 남길 수 있게 하는 형태로, 아래와 같이 피드백을 수집했습니다.
- 152명의 작업자가 1,108 태스크에 대해서 아래와 같이 제작
- model과 대화를 하며 작업자가 Feedback하는 방식
- 답변이 만족스러웠는지에 대한 이진 (binary) 피드백
- 불만족스러운 답변에 대한 자유 형식 (free-form)의 피드백
- model이 해당 턴을 개선하기 위해 취할 수 있는 방식들에 대한 복수 선택 (multiple-choice) 피드백
- 여기서 피드백을 받은 부분을 반영하여 수정한 답변으로 대화를 이어나감
- 14,000개 대화 (총 210,000개 턴) 수집
Topic 구체적인 Task Task 종료 조건 건강한 음식 만들기 건강한 음식에 대한 레시피 찾기 챗봇이 건강한 음식을 만드는 특정 방법을 제공하면 종료 반려 동물 종류에 대한 질문 알러지 반응을 일으키지 않는 소형견종에 대해서 알고 싶어요. 챗봇이 알러지를 일으키지 않는 소형견 종류와 함께 그 소형견의 기질, 성격, 특정 조건 등에 대한 세부 정보를 제공하면 종료 Deployed model
사람이 남긴 다양한 종류의 피드백을 학습시키기 위해 사람과의 대화를 수행할 모델은 아래와 같습니다. BB1 모델을 제외하고 모두 인터넷 검색이 가능한 모델입니다.
- BlenderBot (BB1): 2.7B, 인터넷 접근 불가
- BlenderBot 2.0 (BB2): 2.7B, fusion-in-decoder(FiD) 방식으로 인터넷 검색 가능
- SeeKeR: 2.7B, multi-step generation(관련 지식을 생성 -> 이를 기반으로 최종 답변 생성)
- OPT-175B + BB3 175B: Meta AI에서 공개한 Open Pre-trained Transformer 모델과 fine-tuning된 BB3 모델을 결합
Learning from feedback 방법론들
이 논문에서는 사람이 남긴 다양한 종류의 피드백을 기반으로, 모델 성능 향상을 위해 다양한 실험을 기획했습니다.
Supervised learning
- 사람이 작성한 gold response들에 대해서 fine-tuning하는, 사실상 가장 강력한 피드백 학습 방법
Find-grained Module supervision
- 답변 향상을 위한 복수 선택지를 제공
- model이 더 나은 검색 쿼리를 사용 해야 함 <-- 이 때는 사람이 더 적절한 검색 쿼리를 피드백으로 입력받음
- model이 검색 결과 중 질문과 더 연관된 부분을 참조해야 함 <-- 이 때는 사람이 관련 있는 부분을 선택하여 피드백하게 됨
- 기타 이슈 <-- 사람이 1,2 외에 다른 어떤 이슈가 있었는지 입력해야 함
- 이슈 없음
- BB2, SeeKeR과 같은 모델에서는, 1번 과정에서 사람이 피드백한 좋은 검색 쿼리를 활용하여 검색 쿼리 생성 모듈을 fine-tuning 할 수 있음
Free-form Textual Feedback
- 해당 대화 턴과 그에 따른 자유 형식 피드백에 각각 special token들을 추가하여 이를 fine-tuning 할 수 있음
Rejection Sample / Reranking
- binary 피드백(만족/불만족) 을 활용해서 reward model을 학습할 수 있다!
- 사용자 입력과 모델의 응답을 이어 붙인 뒤, binary 피드백(만족/불만족)을 예측하도록 학습
- 모델로 하여금 여러 개의 답변을 생성하도록 한 뒤, reward score 값이 가장 높은 답변을 최종 답변으로 선택하여 품질 개선
Reward-based learning
- binary 피드백(만족/불만족)을 활용한 reward model 이 필요
- model이 생성한 답변 후보들 중 reward score 값이 가장 높은 답변을 target으로 하여 fine-tuning
Model-guiding with DIRECTOR (Arora et al., 2022)
- reward model을 사용하는 대신, decoder-classifier architecture를 가진 통합된 모델 DIRECTOR 을 학습함.
- DIRECTOR (AACL-IJCNLP 2022, Meta AI)에서 새롭게 제안하는 방식
- DIRECTOR은 모든 토큰들에 대해 next token 확률을 예측하는 동시에, 두 번째 classifier를 하나 더 두어 수행하고자 하는 태스크에 맞는 확률 값을 추가로 생성함
- 최종적으로 두 개의 확률 값의 곱으로 next token을 결정한다
- positive 샘플에 대해서는 두 개의 classifier를 모두 학습
- negative 샘플에 대해서는 두 번째 classifier만 학습
- 잘 안 될 것 같은데, 신기하게도 아래 결과를 보면 결과가 제일 좋은 방법
- reward model과 generation model을 하나로 통합하고자 함
DIRECTOR Findings
위 피드백을 활용해 모델을 개선해본 결과는 아래와 같습니다.
- (1) 어떤 피드백이 가장 효과적인가?
- ✅ 검색 쿼리에 대한 피드백을 포함하고 있는 modular feedback이 가장 효과적이었음
- ✅ 사람이 제공한 gold response를 fine-tuning 학습하는 supervised feedback 방법보다 훨씬 더 좋음을 알 수 있다
- BB2 3B 모델 기준
- module supervision > supervised feedback > free-form > reward-based > reranking binary feedback
- SeeKeR 3B 모델 기준
- module supervision > reranking binary feedback > supervised feedback > free-form
- textual feedback, binary feedback도 물론 유용했지만, modular feedback 만큼은 유용하지 않았음
- (2) DIRECTOR 모델의 성능 입증
- ✅ DIRECTOR 을 활용해 binary feedback만 학습하더라도, DIRECTOR 모델을 사용하지 않은 reranking이나 reward-based learning을 활용한 방법보다 나았음
- (3) 작은 모델에서 나온 답변으로부터 받은 피드백이 큰 모델을 fine-tuning할 때도 효과적인가?
- ✅ Yes. 작은 모델의 답변으로부터 나온 피드백으로 매우 큰 LLM을 fine-tuning하는 것도 도움이 되었음
Conclusion
피드백은 modular하게
모델이 response를 생성하기 위한 스텝마다 잘못된 점을 지적해줄 수 있는 module feedback이 아무래도 정보의 양이 가장 많기도 하고, 잘못된 스텝을 그 때 그 때 바로잡아 줄 수 있기 때문에 가장 좋았습니다. 그러나 이러한 피드백을 수집하는 것은 어렵거나 비용이 많이 든다는 단점이 있습니다.
generation과 reward model을 하나로
모델이 스스로 response를 생성하고 평가하는 것이 가능하며, 굳이 generation model과 reward model을 분리할 필요 없다는 것을 실험 결과로 입증하였습니다.
'Paper Reviews' 카테고리의 다른 글
[논문 리뷰] Direct Preference Optimization (DPO) Explained! (0) 2024.01.05 초거대 LLM 24배 빠르게 서빙하기 (0) 2023.11.02 LLAMA2를 무해한 모델로 만들기 위한 노력 (0) 2023.08.24 LEVER: Learning to Verify Language-to-Code Generation with Execution 논문 리뷰 (0) 2023.08.16 TaskMatrix.AI (0) 2023.08.16