의사소통 의료상담 챗봇은 바쁜 일상 속에서 병원을 방문할 시간이 없거나 어느 병원에 가야 할지 고민하는 사용자들을 위해 설계된 헬스케어 솔루션입니다. GPT-NeoX 기반의 Polygloy-ko 모델을 활용하여, 사용자의 증상을 분석하고 의심되는 질병을 추정하며, 적합한 병원을 추천하고 간단한 대처 방법을 제공합니다.
- 증상 분석 및 진단: 사용자가 입력한 증상을 바탕으로 GPT-NeoX 모델의 강력한 자연어 처리 능력을 활용하여 가능한 질병을 추정합니다.
- 병원 추천: 사용자가 겪고 있는 증상에 따라 적합한 전문 병원이나 클리닉을 추천해 줍니다.
- 대처 방법 안내: 병원 방문 전까지 필요한 간단한 대처 방법이나 응급 처치 방법을 제공합니다.
- 사용자 친화적 인터페이스: 직관적이고 사용하기 쉬운 인터페이스를 통해 누구나 쉽게 상담을 받을 수 있습니다.
- 신속한 상담: 병원 방문이 어려운 상황에서 빠르게 건강 상담을 받을 수 있습니다.
- 맞춤형 추천: 사용자의 증상에 맞는 병원과 대처 방법을 개인 맞춤형으로 제공합니다.
- 언제 어디서나 사용 가능: 모바일 및 웹 플랫폼을 통해 언제 어디서나 쉽게 접근할 수 있습니다.
- 사용자가 챗봇에 "머리가 아프고 열이 나요"라고 입력합니다.
- 챗봇은 증상을 분석하여 "감기, 독감, 편두통" 등의 가능한 원인을 제시합니다.
- 챗봇은 사용자에게 가까운 내과 또는 이비인후과 병원을 추천하고, 집에서 할 수 있는 간단한 대처 방법(예: 물 많이 마시기, 휴식 취하기)을 안내합니다.
- 프론트엔드
# 깃 클론
git clone https://github.com/Songysp/DoctorChat_frontend
# 프로젝트 루트 폴더에서 아래 실행(패키지 설치)
npm install
# 실행(android studio, expo cli 필요
npx expo start- 백엔드
# 깃 클론
git clone https://github.com/Songysp/DoctorChat_BackEnd
# 프로젝트 루트 폴더에서 아래 실행(패키지 설치)
pip install -r requirements.txt
# 실행
uvicorn app:app --host 0.0.0.0 --port 8000 --reload
-
대규모 파라미터 수:
5.8억 개의 파라미터를 가지고 있어, 다양한 의료 데이터에 대해 높은 성능을 보일 수 있습니다.
-
의료 특화:
의료 문서, 논문, 임상 기록 등의 데이터를 학습해 의료 분야에 특화되어 있어 전문적인 의료 상담이나 정보 제공에 적합합니다.
-
한국어 최적화:
한국어 데이터로 학습되었기 때문에, 한국어 텍스트 처리에 강점을 보입니다.
-
고품질 데이터 학습:
MedText와 ChatDoctor 데이터셋을 GPT3.5를 통해 한국어 대화로 변환시켜 학습되었습니다. 이는 모델의 답변 정확도와 신뢰성을 높이는 데 기여합니다.
-
프론트엔드
- JavaScript
- ReactNative-Expo
-
백엔드
- FastAPI
-
모델
- GPT-NeoX 기반의 Polygloy-ko 모델
- Pytorch
- transformers
-
협업
- GitHub
-
아이디어 제안: 프로젝트의 초기 아이디어를 제안하고, 프로젝트의 방향성을 설정하는 데 기여했습니다.
-
데이터 탐색: 데이터 탐색 및 분석을 통해 프로젝트에 적합한 데이터셋을 선정 했습니다
-
Expo를 통한 초기 화면 구성: Expo를 사용하여 초기 사용자 인터페이스(UI)를 설계하고 구현하였습니다
-
JavaScript로 서버와의 통신 구현: JavaScript를 활용하여 서버와 클라이언트 간의 통신을 구현하고, API 요청 및 응답을 처리하여 프론트엔드와 백엔드의 연결을 담당했습니다.
-
FastAPI 서버 구축: FastAPI를 사용하여 효율적이고 성능이 우수한 서버를 구축하였으며, REST API를 통해 데이터와 기능을 제공합니다.
-
REST API와 초기 모델 연결 및 응답 생성: 초기 모델과 REST API를 연결하여 클라이언트 요청에 대한 응답을 생성하고, 서버의 기능을 통합했습니다.
-
모델 및 데이터셋 선정: 프로젝트 목표에 적합한 모델과 데이터셋을 선정하고, 최적의 성능을 내기 위한 기반을 마련했습니다.
-
모델 학습: QLora, Transformer, bnb 기법을 통해 모델을 학습시키고, 학습을 위한 메모리 최적화를 진행했습니다.
- 전체적인 유지 보수 및 버전 관리: 프로젝트의 전반적인 유지 보수와 코드 버전 관리를 담당하며, 팀원 간의 협업을 원활하게 지원했습니다. 깃허브를 사용하여 코드 변경 사항을 관리하고, 충돌을 해결했습니다.
-
이현우 팀장
-
디자인 및 화면 구성, 기획: 사용자 인터페이스 디자인과 전체적인 화면 구성 계획을 주도하고, 프로젝트 기획을 책임졌습니다.
-
모델 파인튜닝 및 학습: 모델의 성능을 최적화하기 위해 파인튜닝을 수행하고 학습 과정을 관리했습니다.
-
데이터셋 전처리: 데이터셋의 전처리를 담당하여 모델 학습에 적합한 형태로 데이터를 준비했습니다.
-
학습 과정 분석: 모델의 학습 과정을 분석하고 결과를 평가하여 성능 향상 방안을 모색했습니다.
-
기획서 작성, 발표: 프로젝트 기획서를 작성하고, 최종 발표를 준비하여 프로젝트 결과를 효과적으로 전달했습니다.
-
-
임희선
-
프론트엔드 화면 구성: 사용자 인터페이스의 프론트엔드 화면 구성 및 디자인을 담당했습니다.
-
채팅창 구현: 채팅 기능을 구현하여 사용자와 시스템 간의 상호작용을 지원했습니다.
-
-
박성주
-
모델을 활용한 API 서버 구축: 모델을 활용하여 API 서버를 구축하고, 모델의 API와의 연계를 관리했습니다.
-
최종 모델 연결: 최종 모델을 API 서버와 연결하여 실시간 응답이 가능하도록 설정했습니다.
-
-
송윤섭
-
아이디어 제안: 프로젝트의 아이디어를 제안하고, 초기 방향성을 설정했습니다.
-
모델 및 데이터셋 선정: 프로젝트에 적합한 모델과 데이터셋을 선정하여 초기 기획에 기여했습니다.
-
프론트 초기 화면 구성: 프론트엔드의 초기 화면을 구성하고, 사용자 경험을 향상시키기 위한 작업을 진행했습니다.
-
초기 버전 API 서버 구현: 초기 버전의 API 서버를 구현하여 모델과 프론트엔드 간의 연결을 담당했습니다.
-
모델과 서버 연결하여 프론트엔드 요청에 응답 생성: 모델과 서버를 연결하여 프론트엔드의 요청에 응답을 생성하는 기능을 구현했습니다.
-
모델 파인튜닝 및 학습 보조: 모델의 파인튜닝 및 학습 과정에서 보조 역할을 수행했습니다.
-
전체적인 유지 보수: 프로젝트의 전반적인 유지 보수를 담당하며, 시스템의 안정성을 유지했습니다.
-
깃허브 버전 관리: 프로젝트의 코드 버전 관리를 통해 팀원 간의 협업을 원활하게 지원했습니다.
-











