본문 바로가기
AI/LLaMA, Alpaca, Vicuna

ChatDoctor

by wenect 2023. 4. 1.

ChatDoctor는 LLaMA 모델을 기반으로 한 차세대 AI 의사 모델입니다 .

https://github.com/Kent0n-Li/ChatDoctor

 

GitHub - Kent0n-Li/ChatDoctor

Contribute to Kent0n-Li/ChatDoctor development by creating an account on GitHub.

github.com

 

설치방법

pip install -r requirements.txt

 이 프로젝트의 목표는 환자에게 의료 질문에 답하고 개인화된 의료 조언을 제공할 수 있는 지능적이고 신뢰할 수 있는 의료 동반자를 제공하는 것입니다.

데이터 및 모델:

1. ChatDoctor 교육 데이터 세트:

다음 교육 데이터 세트를 다운로드할 수 있습니다.

HealthCareMagic.com에서 환자와 의사 간의 200k 실제 대화 HealthCareMagic-200k .

icliniq.com에서 환자와 의사 간의 26k 실제 대화 icliniq-26k .

5k는 ChatGPT GenMedGPT-5k  질병 데이터베이스 에서 환자와 의사 간의 대화를 생성했습니다 .

모델은 기본 대화 기능을 갖도록 Stanford Alpaca의 데이터에 의해 먼저 미세 조정되었습니다.

2. 모델 가중치:

체크포인트를 다운로드하려면 링크 양식을 작성하십시오 . 

모델 가중치 파일을 ./pretrained 폴더에 넣습니다.

torchrun --nproc_per_node=4 --master_port=<your_random_port> train.py \
   --model_name_or_path <your_path_to_hf_converted_llama_ckpt_and_tokenizer> \
   --data_path ./HealthCareMagic-200k.json \
   --bf16 True \
   --output_dir pretrained \
   --num_train_epochs 3 \
   --per_device_train_batch_size 4 \
   --per_device_eval_batch_size 4 \
   --gradient_accumulation_steps 8 \
   --evaluation_strategy "no" \
   --save_strategy "steps" \
   --save_steps 2000 \
   --save_total_limit 1 \
   --learning_rate 2e-5 \
   --weight_decay 0. \
   --warmup_ratio 0.03 \
   --lr_scheduler_type "cosine" \
   --logging_steps 1 \
   --fsdp "full_shard auto_wrap" \
   --fsdp_transformer_layer_cls_to_wrap 'LLaMADecoderLayer' \
   --tf32 True

추론 방법

자신의 컴퓨터에 ChatDoctor 모델을 구축하고 대화할 수 있습니다.

python chat.py

 

 

논문 및 주요내용

ChatDoctor: 의료 도메인 지식을 사용하여 LLaMA 모델에서 미세 조정된 의료 채팅 모델

 

ChatDoctor: A Medical Chat Model Fine-tuned on LLaMA Model using Medical Domain Knowledge

Recent large language models (LLMs) in the general domain, such as ChatGPT, have shown remarkable success in following instructions and producing human-like responses. However, such language models have not been tailored to the medical domain, resulting in

arxiv.org

ChatGPT와 같은 명령을 따르는 대규모 언어 모델(LLM)의 개발은 명령 이해 및 인간과 같은 응답 생성에서 놀라운 성공으로 인해 상당한 관심을 받았습니다. 이러한 자동 회귀 LLM은 다음 토큰을 예측하여 웹 규모의 자연 언어를 통해 사전 훈련된 다음 대규모 사람의 지시를 따르도록 미세 조정됩니다. 또한 광범위한 NLP 작업과 보이지 않는 작업에 대한 일반화에 대해 강력한 성능을 보여 자연어 이해, 텍스트 생성, 대화형 AI와 같은 다양한 문제에 대한 통합 솔루션으로서의 가능성을 입증했습니다. 그러나 의료 분야에서 이러한 일반 영역 LLM에 대한 탐색은 의료 커뮤니케이션 및 의사 결정을 변화시킬 수 있는 막대한 잠재력에도 불구하고 상대적으로 개발되지 않은 상태로 남아 있습니다. 구체적인 이유는 기존 모델이 의료 분야를 자세히 학습하지 않아 모델이 의사 역할을 할 때 잘못된 진단과 잘못된 의학적 조언을 제공하는 경우가 많았기 때문입니다. 의사-환자 대화 데이터에 대한 대언어 대화 모델을 미세 조정함으로써 의료 분야에서 모델의 적용을 크게 향상시킬 수 있습니다. 특히 의료 자원이 부족한 지역에서 챗닥터를 활용해 환자의 초기진단과 분류를 할 수 있어 기존 병원의 운영 효율성을 획기적으로 높일 수 있다. 의사-환자 대화 데이터에 대한 대언어 대화 모델을 미세 조정함으로써 의료 분야에서 모델의 적용을 크게 향상시킬 수 있습니다. 특히 의료 자원이 부족한 지역에서 챗닥터를 활용해 환자의 초기진단과 분류를 할 수 있어 기존 병원의 운영 효율성을 획기적으로 높일 수 있다. 의사-환자 대화 데이터에 대한 대언어 대화 모델을 미세 조정함으로써 의료 분야에서 모델의 적용을 크게 향상시킬 수 있습니다. 특히 의료 자원이 부족한 지역에서 챗닥터를 활용해 환자의 초기진단과 분류를 할 수 있어 기존 병원의 운영 효율성을 획기적으로 높일 수 있다.

ChatGPT와 같은 대규모 언어 모델은 비오픈 소스 상태이므로 Meta의 LLaMA를 사용하고 먼저 Stanford Alpaca에서 제공하는 52K 지침 따르기 데이터를 사용하여 일반적인 대화 모델을 훈련한 다음 수집된 의사-에서 모델을 미세 조정했습니다. 환자 대화 데이터 세트. 우리 방법의 주요 기여는 세 가지입니다.
우리는 의료 영역에서 대규모 언어 모델을 미세 조정하기 위한 프로세스 프레임워크를 설계했습니다.대규모 언어 모델을 미세 조정하기 위해 생성된 의사-환자 대화 5,000개와 실제 환자-의사 대화 200,000개로 데이터 세트를 수집했습니다.우리는 의료 도메인 지식으로 미세 조정된 바이그램이 임상 적용 가능성이 있음을 검증합니다.

의사와 환자의 대화 데이터 세트

의사-환자 대화 데이터 세트를 구축하는 첫 번째 단계는 골드 스탠다드 역할을 하는 질병 데이터베이스를 수집하는 것입니다. 따라서 우리는 약 700개의 질병과 상대적인 증상, 의학적 검사 및 권장 약물을 포함하는 질병 데이터베이스를 수집하고 구성했습니다. 학술 예산으로 고품질 대화 모델을 교육하기 위해 질병 데이터베이스의 각 메시지를 프롬프트로 ChatGPT API에 개별적으로 입력하여 지침 데이터를 자동으로 생성합니다. ChatGPT API에 대한 프롬프트에는 질병, 증상 및 약물의 황금 표준이 포함되어 있으므로 미세 조정된 ChatDoctor는 ChatGPT의 대화 유창함을 달성할 수 있을 뿐만 아니라 ChatGPT에 비해 더 높은 진단 정확도를 달성할 수 있습니다.
생성된 대화는 정확성을 보장하지만 대화의 다양성이 낮습니다. 따라서 온라인 Q&A 기반 의료 자문 서비스 웹사이트인 "Health Care Magic"에서 약 20만 개의 실제 의사-환자 대화를 수집했습니다. 우리는 이러한 데이터를 수동 및 자동으로 필터링하여 의사와 환자 이름을 제거하고 응답의 문법 오류를 수정하기 위해 언어 도구를 사용했습니다.

모델 교육

우리는 뛰어난 공개 액세스 LLM인 Meta의 LLaMA 모델을 활용하여 ChatDoctor를 구축합니다. 특히, LLaMA는 70억 개의 매개변수에도 불구하고 LLaMA의 효능이 여러 NLP 벤치마크에서 훨씬 더 큰 GPT-3(1,750억 개의 매개변수 포함)에 비해 경쟁적이거나 우수한 결과를 달성할 수 있다고 보고되었습니다. LLaMA의 성능 향상은 매개변수의 양이 아닌 훈련 데이터의 크기를 증폭함으로써 이루어졌습니다. 특히 LLaMA는 CommonCrawl 및 arXiv 문서와 같이 공개적으로 액세스할 수 있는 데이터 저장소에서 조달한 1조 4천억 개의 토큰에 대해 교육을 받았습니다. 우리는 ChatGPT를 통해 합성된 대화 시연을 활용하고 나중에 의료 종사자가 검증하여 Stanford Alpaca 교육 방법론에 따라 LLaMA 모델을 미세 조정합니다. 그리고 우리 모델은 먼저 Stanford Alpaca의 데이터에 의해 미세 조정되어 몇 가지 기본 대화 기능을 갖습니다. 미세 조정 프로세스는 30분 동안 6개의 A*100 GPU를 사용하여 수행되었습니다. 학습 프로세스에 사용된 하이퍼파라미터는 다음과 같습니다: 총 배치 크기 192, 학습률 2e-5, 총 3 에포크, 최대 시퀀스 길이 512 토큰, 워밍업 비율 0.03, 가중치 감소 없음 .

제한 사항

ChatDoctor는 학술 연구만을 위한 것이며 어떠한 상업적 사용 및 임상적 사용도 금지됨을 강조합니다. 이 결정에는 세 가지 요소가 있습니다. 첫째, ChatDoctor는 LLaMA를 기반으로 하고 있으며 비상업적 라이선스를 가지고 있기 때문에 우리는 필연적으로 이 결정을 물려받았습니다. 둘째, 우리 모델은 의료 관련 목적으로 허가되지 않았습니다. 또한 충분한 보안 조치를 설계하지 않았으며 현재 모델은 여전히 ​​의료 진단의 완전한 정확성을 보장하지 않습니다.

참조

ChatDoctor: 의료 도메인 지식을 사용하여 LLaMA 모델에서 미세 조정된 의료 채팅 모델

 

'AI > LLaMA, Alpaca, Vicuna' 카테고리의 다른 글

Vicuna  (1) 2023.04.16
GPT4All  (1) 2023.04.02
Alphaca  (4) 2023.03.30
메타 : 대규모 언어 모델(LLM)을 공개  (0) 2023.03.08

댓글