Closed jms0522 closed 7 months ago
답변에서 병명 추출 / 데이터 밸런싱 / 한국어와 띄어쓰기 (딥러닝 모델) 교정 / 한 질문에 다양한 병명이 있을 경우 score를 줘서 가장 높은 score의 병명을 추출 / 특수 문자 제거 / 증상에 대한 score가 너무 낮은 데이터 삭제 / 증상과 정의 분리 / 증상 컬럼 없는 경우 정의 컬럼으로 대체 / 증상 정의 둘 다 없는 경우 삭제 / 소아기칭, 영유아복통 등 세분화된 질병 삭제 / word count를 이용한 밸런싱 등
"답 없는 질문과 답변 내용을 최대한 전처리 하기 위해 노력."
전체 데이터 : 약 300만 (지식인 QnA 한정) 시험 전처리 : 100만개 -> 6만개로 전처리
앞으로의 과제 : 답변 수가 너무 적은 데이터를 삭제 하는 방법보다 데이터 증대 / 질문의 유사한 유의어, 혹은 단어 삽입, 위치 변경, 랜덤 단어 삭제 EDA (easy data argumentation)등으로 문맥이 비숫한 질문을 만들어 증강을 생각 해 볼 수 있고, bert gtp2등의 모델을 fine tune 하여 문맥이 유사한 질문을 생성으로 증강 고려 할 수 있음.
느낀점 : 데이터가 너무 정형화되지 않고 증상을 물어보는 질문도 너무 부정확해서 전처리 하는 게 너무 힘들다. 사실 전처리를 통해 이만큼까지 데이터를 줄이는 것도 데이터를 훼손 시키고 변형으로 인한 손실이 크지만 현재 kict deep learning server에서도 memory 이슈가 계속 발생하는 상황. solar, llama2 등등. peft LoRa의 방법론을 더 깊게 파서 경량화를 더 해보든 애초에 토큰의 수가 적은 모델을 사용하던 돈을 발라서 학습을 시키던 선택을 해야할 듯.
사실 모델을 돌려서 평가를 해봐야 전처리든 미세조정이든 할텐데 조금 답답한 상황이다. 결국 또 RAG가 답 일지도.. 그럼 질문과 답변을 전처리해서 vectort store에 넣어야 하는지 모르겠음
@stfano @cheol2Y @minseok1994
[x] 전체 데이터 합친 후 중복 제거
[x] 결측치 제거
형태소 분석기 메모리 부족
컬럼 수를 줄이고 돌려야 하는데 너무 많은 컬럼이 있는 상태에서 형태소 분석을 시작함..
✓ 0222 미완
✅ 클러스터링 이후에 다시
[x] 전체 컬럼 수 줄이기 ( 유사도를 통한 클러스터링으로 상위 질문을 각각 같은 숫자를 추출)
120로 분류한 뒤 상위 1000개로 저장. 후에 600개로 줄였음
[x] 띄어쓰기 교정
[x] 분석을 위해 남겨둔 컬럼 삭제
[ ] 태그 ❌
[x] 데이터 밸런스 확인 (다운샘플링, 업샘플링)
[ ] 문장 길이 조정 ❌
[ ] 옵션 : 병명이 포함되는 답변으로 데이터 수 다운 (학습 리소스 부족으로 인한 선택) ❌ 클러스터링 작업에서 많이 줄임!
의료 데이터를 구하기 위한 방법 (생각 단계)
ai hub에는 실제 환자 음성 데이터 존재함.
데이터를 구하기 힘든 현 시점에서 실제 데이터를 구할 수 있는 방법 중 하나임.
음성 데이터 - 텍스트 데이터 변환으로 데이터 수집
https://www.aihub.or.kr/aihubdata/data/view.do?currMenu=115&topMenu=100&aihubDataSe=data&dataSetSn=566
주제별 텍스트 대화 데이터에서 의료, 건강만 추출
음성 데이터는 많이 존재해서 음성을 텍스트로 변환해서 데이터셋을 가져오는 방법도 고려해 볼 수 있음.
의료 데이터는 어떤 데이터든 오프라인 안심존에 가서만 사용이 가능함 사용 불가 ❌