이번 프로젝트 주제는 Open-domain QA이다. 나는 처음 경험해보는 분야인데, 너무 간단하게 생각했었다. '그냥 외부 문서 API 끌어다가 LLM 파이프라인 구성해서 답변을 내 놓으면 되지 않을까?'라고 말이다. 하지만 데이터셋과 채점 방식을 뜯어보니 그것을 원하진 않는 모양이었다. 정확히 문장 자체가 정답 답변과 일치하는 모델을 원했다. 이번에도 효용성 측면에서 의문이 생겼다. 정확히 똑같은 답변을 제시하는게 어떤 면에서 유용할까? 특히 법이나 의학과 같은 엄밀함을 요구하는 도메인이 아니라 Open-domain인데도 말이다.
우선 프로젝트와 강의 내용의 연결점을 파악하려고 이번 주차 강의노트를 전부 훑어봤다. 대부분 필요한 내용처럼 보였다. 이번 주차부터는 꼼꼼히 강의를 들어야겠다고 생각이 든다. level 2에 넘어가니 확실히 도메인에 깊이 들어간 개념이 많이 보였다. 이제까지는 대부분 아는 내용이라서 어찌보면 아는지 모르는지만 체크하고 넘어간게 많았지만, 앞으로는 대부분 모르는 내용이 많이 나올거라 생각한다.
팀에서 정한 과제인 MRC에 대해 간단하게 조사했다. extractive/generative MRC의 차이점을 중점을 두고 찾아봤다. 사용되는 모델 모두가 트랜스포머 기반 모델이었다. BERT 기반 모델을 활용해서 임베딩하는 케이스가 많았는데, 트랜스포머의 활용 의의에 대해서 현업자 친구와 나눈 이야기가 생각났다. 면접에서 트랜스포머를 설명하라는 질문을 받았을 때 나는 셀프어텐션을 먼저 떠올린 반면, 그 친구는 현재 가장 보편적으로 사용되는 임베딩 도구라고 설명해줬다. 개념적인 접근에서 왜 트랜스포머를 많이 알아야하는지, 좀 더 심도있는 인사이트라고 생각이 들었다. 그리고 직접 조사하면서 왜 친구가 그렇게 설명했는지 와닿았다.
피어세션 시간에 프로젝트와 관련해 이야기를 나눴다. 다들 동의한 사항이 강의를 먼저 듣고 프로젝트를 시작하자는 점이었다. 본격적인 프로그래밍에 앞선 사전 조사를 강의해서 제공해주니 편리하다고 생각했다. 하지만 실제 현업에서는? 프로젝트에 필요한 개념을 찾기 위해서, 메타인지를 갖기 위해서 할 일 들은 뭐가 있고, 어떻게 할까?