이 심플한 작명센스 우짤겨.. 근데 구글에서도 동일한 이름으로 비슷한 시기에 wearable sensor를 활용한 논문을 낸 적이 있는 것으로 아는데 조금 유감스럽네요..
우와 모든 저자가 동양계 이름을 가지고 있는데 (심지어 1저자 한국인인듯) 전부 다 미국/영국소재 대학인 거 진짜 어메이징..
제목에서 알 수 있듯이 personalization과 관련된 논문입니다. LLM이 방대한 양의 데이터로 학습이 되어있기 때문에 사실 개인화된 서비스를 제공하기에는 조금 어려운 감이 있지 않나, 하는 생각이 들어요. 대부분의 personalization에서도 이런 문제를 다루고 있구요.
이 논문에서는 RAG 방식을 활용하려는 모양입니다. 음 근데 intro까지만 읽었을 때는 구체적인 방법론이 뭔지 감이 잘 안 잡힘..
ㅁ..뭐야 왤케 다단계야
정말 다양한 구성요소를 가진 framework네요.. RAG, Feature Extraction, 그리고 XGBoost를 활용한 prediction까지.. 차근차근 살펴보도록 하지요~.~
이 논문에서 집중적으로 다루고 있는 task는 clinical prediction, 즉 환자의 병력이나 의무기록을 바탕으로 발병 위험이 있는 질병들을 예측하는 거예요. 이 과정에서 LLM을 활용한다고 해서 CPLLM이라고 부르나봄!
Implementation
섹션 분리해서 쓰려다가 그럴 필요 없다는 것을 깨달음..
- In-context learning으로 질병 관련 문서에서 증상 feature들을 추출하도록 프롬프팅을 합니다. 예를 들면,
Disease: Cold ---- Symptoms: Runny or stuffy nose, sore or stinging throat ...
Disease: Stomach Flu ---- Symptoms:
Nausea, vomiting, diarrhea ...
이렇게 줘놓고 "In this format, generate symptoms: Arthritis"라는 query를 함께 주는 거죠. 그러면 관련된 증상들을 쭉 뽑아낸대요: Symptoms: Arthritis ---- Symptoms: Joint pain, stiffness, Swelling, redness, decreased range of motion ...
(+) 그냥 프롬프팅을 하면 LLM이 medical 관련 지식이 부족할 경우 좀 아쉬운 답변을 할 수 있으니까, RAG를 활용해 top-3의 relevant documents를 LLM에게 제공해주나봅니다. - Llama Index를 활용한다고 하는데.. Llama index는 랭체인같은 프레임워크입니다. 이 툴을 쓰면 데이터, 모델, 각종 task를 하나의 플랫폼 안에서 쉽게 해결할 수 있어요(원래는 허깅페이스나 공식 깃허브에서 코드 수정, 데이터 포맷 수정, 버전 충돌 이슈 해결^^, ... 등을 모두 따로따로 해야한다는 번거로움이 있었음). 이걸 활용한다!고 논문에 한 단락의 분량으로 언급하는 걸 보니 아무래도 연구진들은 CS가 아닐지도 모른다는 합리적 의심을 하게 됨.. 암튼 QA를 하려나봐요. 단, 정답 label이 있는 일반적인 QA가 아니고, LLM이 주어진 query에 대해 그 query에서 언급된 증상 등등의 feature에 confidence score를 부여한대요. 이를테면, "Does this person have good sleeping habits?"라는 질문과 함께 환자의 정보가 주어졌다면 "Sleep: 0.6" 이런 식으로 답변이 돌아올 수도 있는 거지요. 와 근데 이거 fine-tuning 잘 해야 될 거 같고.. 나중에 XGBoost에 쓸 거면 feature selection도 제대로 해야되겠는걸..
- 이렇게 모아진 Confidence score로 61개의 질병을 label로 하는 table을 구성합니다. 사실 XGBoost에 어떤 식으로 데이터를 넣어줘서 Prediction을 했다고 하는지 모르겠는데ㅜ Multi-label classfication이라고 이해하면 되려나요..? Sleep, Joint pain, ... 등등의 feature와 각각의 confidence score로 table을 구성하고, 이게 어떤 질병과 연관되는지 label로 표시해주는 느낌인건가.. 어휴 자세히좀 적어주지ㅠ
뭐 대충 그런 flow인 것 같고, 논문을 보니 Chatbot처럼 시스템을 구성해서 disease prediction과 함께 유저에게 health advice를 주는 식인가보죠?
First, the user can submit his/her health report to the system and get the prediction and the health advice. Second, the user can describe his/her health problem and ask the system, the system will record their dialog and save as a health dialog.
진짜 된다는 거야 아님 이걸 지향한다는 거야..ㅋㅋㅋㅋ 설명했던 건 이런 시스템 아니잖아요ㅜ
IMCS-21이라는 dialogue 데이터셋으로 '훈련'을 시켰다고 했는데, 내부적으로는 위에서 설명한 1~3의 과정이 돌아가고 외부적으로는 gpt 등의 대화형 모델이 사용자와 상호작용을 하는 모양이죠? 그 dialogue 시뮬레이션을 IMCS-21로 했을 것 같은데.. 확실하지가 않네요 흠
암튼 여러 foundational 모델들과 함께 diagnostic test를 평가한 결과 역시 제일 잘했다고 합니다.. 이때 활용된 모델들은 GPT-3.5, GPT-4, Llama-2-7B/13B (fine-tuned), Pretrained-BERT with XGBoost, RoBERTa (와 이걸 오타내다니), 등등등이었어요.
Our validation process uses conversations from the validation set as input to simulate user adoption. Experiments showed that our system achieved an overall prediction accuracy of 83% for the disease, with F1 score of 0.762.
prediction은 아무래도 1~3까지의 과정으로 평가한 모양이고..
..
여까지 쓸래.. 뭔가 별로인거 같아요ㅠ