[미니프로젝트] 응급상황 자동 인식 및 응급실 연계 서비스

aongee log·2024년 11월 26일

KT AIVLE

목록 보기
6/11
post-thumbnail

📖 프로젝트에 들어가기 앞서

  • 무엇이 문제인가? 우리에게 필요한 것은?
    • 응급 상황에 맞는 빠른 대처
  • 고객이 누구인가?
    • 정부부처, 응급대원
  • 고객의 기대와 기대사항은 무엇인가?
    • 환자의 증상에 따른 정확한 중증도 등급 분류
    • 가까운 응급실로 연계
    • 정말 응급한 환자만을 연계하여 응급실 부족 상황을 해결하기 위함
  • 제약사항
    • 시간, 돈, 인력
  • 어떤 데이터가 필요한가?
    • 응급 신고 전화 오디오 데이터
    • 중증 등급별로 라벨링된 증상 데이터
    • 응급실 정보 데이터
  • 어떤 모델을 쓸 것인가?
    • Huggingface의 BERT 모델을 FineTuning

📖 전체 프로세스

  • 응급전화-응급 등급 분류-신고자 좌표 기반하여 가까운 응급실 연계
  • 모듈 1
    • 최초 Input인 응급 신고 전화 오디오 데이터를 텍스트 데이터로 변환
    • 텍스트 데이터를 GPT API를 통해 중요한 정보를 요약한 데이터프레임 생성 (꼭 요약해야 하나? 요약 안 해도 성능 차이 없다면 굳이 요약할 필요 x 비용 시간 아끼기)
  • 모듈 2
    • 증상 데이터를 받으면 KTAS 등급을 출력해주는 모델
  • 모듈 3
    • 가장 가까운 응급실 3곳 출력

시스템 1,2,3(모듈)이 어떻게 연결되는지 인터페이스를 잘 정의해야 됨.
-> 모듈별 솔루션 도출
-> 합처리

📖 1일차

  • 응급실 정보 컬럼 정하고 데이터프레임 만들기
  • 응급실 정보 컬럼 정하는 기준
    1. 국립중앙의료원이 제공하는 응급실 종합상황판 참고
    (응급환자의 발생·이송·진료·퇴원과정에서 일어나는 응급의료체계의 가동실태를 파악하여 응급의료 정책 의사결정을 지원하는데 사용합니다.)
    https://portal.nemc.or.kr:444/medi_info/dashboards/dash_total_emer_org_popup_for_egen.do
    2. 간호사에게 질문
    <응급실로 보내는 기준>
    1. 가까운 응급실 연계
    2. 그 응급실에서 환자를 수용할 수 있는지 판단
    1) 해당 응급실 환자 중증도 및 응급실 병상 수 확인
    2) 전공의 확인
    3. 필요한 처치 도구 및 기계 유무 확인

추가 고민

  • 지피티 튜닝에 대하여 (2 선택)
    1.인풋 : 일반인 오디오 데이터 -> 지피티 튜닝을 통해 의학적 용어가 담긴 텍스트 데이터로 맵핑 -> BERT 모델
    2.인풋 : 일반인 오디오 데이터 -> 원래대로 증상만 요약한 텍스트 데이터 -> BERT 모델

  • 데이터셋에 대하여 (2 선택)
    1. 의학용어 기반의 데이터 위주로 구성할지
    2. 일반인의 발화기반 데이터 + 의학용어 데이터로 구성

📖 2일차 : 응급상황 등급 분류

  • 중증 단계별 데이터 생성
  • BERT 모델 FineTuning : 하이퍼파라미터를 어떻게 설정하는게 좋을까

gpt로 중증 단계에 따른 응급 상황 신고 텍스트를 생성 (단계별 100개씩)

<고민1>
지피티로 만든 데이터가 과연 정확한 데이터인가? 의학용어(중증단계에 명시되어 있는)를 기반으로 생성한 데이터를 사용하면 성능이 높게 나오는데 이것이 과연 올바른 데이터셋인가? 실제 상황에서도 잘 작동할 것인가?
이 데이터로 실제 상황에서 적절한 판단을 할 수 있을까?

<고민2>
지피티가 만든 데이터가 실제 응급 상황 신고와 유사할 것인가? 아님
따라서 실제 위급상황 음성 신고 데이터를 활용하고 싶음
https://www.aihub.or.kr/aihubdata/data/view.do?currMenu=115&topMenu=100&dataSetSn=71768
여기서 서울 - 구급 데이터셋 가져왔고, 발화내용(text) 사용 예정

<고민3>
--근데 라벨링이 안 되어있음 ㅠ 지피티로 해도 정확할까?
-> 이게 포함된 데이터셋으로 돌려보니 지피티가 만들어준 데이터셋의 정확도보다 낮게 나옴 - 뭐가 문제일까 ??? 나이, 성별 제거하고 증상만 설명한 데이터셋으로 돌려보자
-> 그리고 실제 데이터에는 1,2등급이 많음

** 머리가 아파요라고 하면 다시 구급대원이 구체적인 질문을 할 것임 - 이에 대한 판단? (키워드들이 도출될 수 있는 장치)

<고민4>
정확한 데이터를 만들기 위해서 어떻게 하지??? 도메인 지식이 필요 (빅프로젝트라면 119 찾아가야됨..!)

<다른 데이터셋 살펴보며 알게된 점>
또한 응급의료통계포털의 최초 중증도 분류 결과 3,4등급 환자가 많은 것을 파악
<응급실 내원 시 중증도 분류 지침을 이용하여 처음으로 시행한 중증도 분류 결과>

[출처] 응급의료 통계연보(NEDIS 통계) https://e-medis.nemc.or.kr/portal/stat/easyStatPage.do?cateId=3000000

  • 4,5등급 환자는 응급실 안 감!! 1,2,3등급 대상으로만 추천

##응급의료통계포털에 지도, 거리 관련 정보 있으니 3일차에 사용하면 좋을 듯!

##참고


📖 3일차

  1. 거리 기반 응급실 추천
  2. 데이터셋 재구성
  1. 거리 기반 응급실 추천
    <고민>
    직선거리가 짧은 것을 기준으로 추천하는 것이 적절한가? 아님
    따라서 naver API에서 도로 상황을 포함한 이동 시간이 짧은 것을 기준으로 추천하도록

2.데이터셋 재구성

<고민>
중증도 분류표에 기재되어 있는 의학 용어가 포함된 데이터셋을 사용하였을 때 정확도가 거의 1이 나올 만큼 성능이 좋았음.
하지만 이것이 과연 좋은 데이터셋인가? 아닐 가능성 ㅇㅇ
이유1) 중증도 분류표에는 중복되는 단어들이 많이 기재되어있고, 데이터셋에도 중복되는 텍스트들이 많았음 >> 오버피팅 가능성
이유2) 일반인들이 119에 신고할 때 의학용어를 사용하며 설명하지 않음. 따라서 일반인 언어로 설명한 텍스트가 들어온다면 이 모델은 좋은 성능을 보이지 못할 것

<고민>
사용하는 타겟이 일반인인가 아니면 구급 대원인가?
일반인인 경우 의학용어를 최대한 배제한 데이터셋이 성능이 좋을테고, 구급 대원인 경우 의학용어 위주의 데이터셋이 성능이 좋을 것으로 예상

<결과>
그렇다면 의학용어가 담긴 증상 텍스트 데이터 500개, 일반인이 설명한 듯한 증상 데이터 500개 총 1000개의 텍스트가 담긴 데이터셋을 구성하자.
그렇다면 어떤 입력이 들어오든 성능을 낼 것.

0개의 댓글