Embedded World

Langcon 2023 후기, 인사이트! 본문

Insights/Seminar !

Langcon 2023 후기, 인사이트!

jh-rrr 2023. 4. 23. 18:30

LangCon 2023! [2023.02.18 마이크로소프트 광화문오피스]

NLP 오픈톡방에서 어떤 분이 공유해주시면서 이런 행사가 있다는 것을 알게되었고, 연사분들 중 평소에 유튜브 토스채널에서 뵀던 Toss ML팀에서 근무하시는 대단하신 분, 공모전에서도 우리팀이 활용했던 모델을 직접 만들어주신 대단하신 분, 등 여러 대단하신 분들이 계신걸 확인했다. 바로 결제 후 지난 2월 18일 세미나를 들으러 갔다!

이 강연들 중 인상깊었던 부분들과 (bias와 noise가 많을)나의 생각을 간단히 정리해본다.

 


Open-domain QA, Dialouge State Tracking, Chatbot 에 관심이 많으신 Jongwon님을 시작으로 강연이 시작되었다.

1) Jongwon 님 "ChatGPT"

  • 주어진 computing 자원 안에서 최적의 성능을 내기위해선, 당연하게도 더 많은 양질의 dataset이 요구된다.
  • Codex(GPT3.5)라는 모델은 "Codex Data"라는 코드와 주석을 데이터셋으로 구성해 학습된 Generative LM으로, 코드짤 때 주석을 주면 코드를 짜도록 학습된 모델이다.
  • ChatGPT의 학습방법은, RLHF(Reinforcement Learning from Human Feedback. 추후 설명) 을 거친 dialogue dataset으로 학습된 것 으로, 사람의 feedback을 거친 데이터셋을 활용해 모델의 성능을 높힌 방식으로 이해하였다.
    • Computer Vision task에선 이런 Human labor cost를 감축하기위해 unlabeled data를 효과적으로 활용하는 Semi-Supervised Learning 이 있다고 알고있다. task마다 다르겠지만, 적어도 Chatbot의 경우는, 결국 OpenAI에서 인력을 사용해 Human Feedback을 준 방식이 가장 성능이 좋았다는 점을 생각해보면, 향후 현업이나 연구를 하면서도 Semi-Supervised Learning, Self-Supervised Learning 으로 성능이 충분히 나오지 않을 경우, NLP와 비슷하게 결국 labeling을 높히는... 단순하고 확실한 해결책을 적절히 염두해야겠다는 생각을 하였다.
  • ChatGPT는 supervised model의 값이 원하는 값과 많이 떨어져있을수록 panelty를 주는 KL Divergence를 사용하여 학습하였다.
    • 내가 이해한 KL Divergence는 Cross Entropy처럼 두 확률분포의 유사도를 scoring할 수 있는 방식이긴 하지만, JS Divergence처럼 거리개념으론 활용될 수 없다고 이해하고있다. 설명하신 부분이 꼭 거리를 말씀하신게 아닌지 혼동하는게 어떤 부분일지 개념을 더 들여다보는 시간이 필요할 것 같다!
  • ChatGPT는 성능향상을 위해 "의미없는 단어"를 생성하는 부분을 제한하는 term을 loss에 포함시켜 성능을 개선하였다.
    • Domain Adaptation task 중, reverse gradient를 흘리는 접근을 한 ``Y Ganin et. al. Unsupervised Domain Adaptation by Backpropagation. 2014. PMLR`` 연구와 유사한 점이 있지 않나 생각이 들었다. 저 논문은 classification loss(Cross Entropy Loss)외, source domain과 target domain을 기존 잘 구분하지 못하기위해 어떤 domain 데이터인지 classification하는 loss를 추가하였다. 이 추가된 loss가 backpropagation될 때, backbone에는 gradient 값을 반전시켜 전달함으로서, class를 구분하는 성능은 유지하면서 domain은 구분하지 못하게 하는 목적을 달성하였다.
    • 물론 연사님이 언급하신 부분이 이런 multiple loss는 아닌듯 하지만, Domain Adaptation에서 domain을 구분하지 못하도록 reverse gradient 접근을 했던 것 처럼 NLP에서도 특정 domain위주로 생성되는 경향성을 제한하기위해 비슷한 접근을 응용해볼 순 없을지 막연하게 생각을 해보았다. Computer Vision task에서도, 연구를 하면서 특정 object를 detection하지 말아야 한다든지의 경향을 해당 object에 대한 reverse gradient로 접근해볼 수 있지 않을까도 생각하게되었다.
  • ChatGPT가 얼마나 사람과 다른지 생각해보면, 너무 strict, static한 답변을 한다는 점이 있다.
    • 글을 쓰는 시점인 2023.04월은 성능이 개선된건지, 연사님이 생각하는 정도가 더 narrow한지는 모호하나, 내가 ChatGPT와 대화를 해보면서 느낀점은 답변을 아이처럼 말해달라 부탁하면 더 아이같은 단어들을 사용하는 등 static한 답변이라 생각들진 않았다. 또한, 범용적인 목적을 가진만큼, 기본 서비스는 static한 어투로 제공되는게 의도된건 아닐까 생각이 들어 이 부분은 공감하지 못하였다.
  • 현 ChatGPT의 문제점은, lack of factual correctness 이다.
    • 만번 동의한다. 1) 학습 시 정확한 정보인지 아닌지에 대한 의도된 노력이 들어갔을지 아닐지 모른다. 2) 벡터공간상에서 가까워지도록 학습된 words들을 확률적으로 생성해내는 Transformer 알고리즘은 내가 짧은 식견으론 그럴듯한 무언가를 생성하는 데 최적이긴 하지만, 검색과같은 정확한 정보를 반환하는데는 최적이 아니라고 알고있다. 아마 향후 NLP연구자들이 다뤄야할 큰 방향이 아닐까 생각한다.
  • domain 데이터에 대한 성능을 향상시키기위해선, dataset을 먼저 살펴보는걸 추천한다.
    • 뒤 연사분들도 언급하신 부분이지만, 양질의 dataset이 정말정말정말 중요하다고 강조하셨다. 향후 연구, 현업에서 일을 진행하면서도 성능이 원하는 만큼 나오지 않을 경우 알고리즘 뿐만이 아니라 데이터셋에서도 문제를 탐색해야함을 배웠다!

 

마지막 랜덤 추첨은 pandas 라이브러리를 사용했다..ㅋㅋㅋㅋㅋ

2) monologg님 "Specific Domain"

  • 특정 도메인에서 적당한 사이즈의 모델로도 해결할 수 있는 것이 많다. (닭을 잡는데 소잡는 칼을 쓰는것도 좋지 않다.)
    • 이 부분은 도메인(NLP, Computer Vision)을 떠나 연구든 엔지니어링이든 동일한 부분이 아닐까 생각했다. 무조건 좋은, 큰 모델을 사용해 문제를 해결하려 하기 이전에 내가 풀려하는 task의 복잡성을 대략 알아보고, 가진 dataset을 체크해보고, 그 다음 모델을 현명하게 선택하는 방향을 취해야겠다는 기본을 잘 염두해야겠다!
  • 내가 가지고있는 dataset이 정말 domain-specific corpus가 맞는지 확인해야한다.
  • corpus는 무조건 많으면 많을수록 좋다. (연사님 경험왈, 4GB부터 적당한 performance)
  • 데이터의 총 사이즈를 직접 계산해보는 법 : UTF-8기준, 1GB를 모으르면 256000개의 뉴스가 필요하다. 이걸 미리 계산해보고 각을 재보고 임하는것을 추천한다.
    • 내가 고쳐가야할 습관같다.. 미리 데이터와 환경을 파악한다음, 해당 일이 진행될 수 있을지 면밀히 따져보는 과정이 선행되어야 헛수고를 덜 수 있다.
  • Tokenizer가 성능을 많이 가른다. [UNK]가 발생하는 것을 먼저 보라. wordpiece를 보통 많이 쓰는데, 이 알고리즘의 특성상, 띄어쓰기 없는 단어에서 '똻'등의 없는 글자가 등장하면 그 단어 전체가 [UNK]처리되어 정보의 loss가 발생한다.
    • 중요한 부분이라 생각했다! Computer Vision에서도 동일하게, 내가 사용하는 알고리즘의 특성을 이해해야 개선할 여지들을 볼 수 있다고 생각했고, 꼼꼼하게 공부하는 과정들이 필요하겠다 생각했다. 또한, 프로젝트를 진행하면서도, 알고리즘의 특성과 결과를 연관지어 생각해보는 것이 중요하겠다 생각하였다.
  • 잘 정제된 소수의 데이터가 초 대량의 비정제된 데이터 보다 훨씬 중요하다. 연사님 생각에는 ChatGPT도 전처리에 오랜 시간을 썼을 수 있다 생각하시며, 그만큼 전처리와 데이터정제가 중요하다.
    • Computer Vision에서도 image 의 퀄리티를 인간기준에서 모호한 수준으로 변형해 모델을 학습한 결과를 정리한 논문을 찾아봐야겠다!

 

 

to be continued!