Me LLaMA는 기초 모델인 Me LLaMA 13B/70B와 채팅 기능이 강화된 버전인 Me LLaMA 13B-chat/70B-chat을 포함한 획기적인 오픈 소스 의료용 LLM(대형 언어 모델) 제품군을 소개합니다. LLaMA2의 혁신적인 지속적인 사전 훈련과 교육 조정을 통해 개발된 이 모델은 방대한 의료 자료를 활용합니다. 이 코퍼스는 엄선된 PubMed 논문 및 초록, 국제적으로 인정받는 의료 지침의 새로운 데이터세트, 일반 도메인 코퍼스를 포함하며 Me LLaMA를 의료 AI 연구의 최전선에 위치시킵니다.
Me LLaMA는 도메인별 발전을 통해 다양한 의학적 추론 작업에 대한 새로운 기준을 설정합니다. 이로 인해 Me LLaMA는 의료 NLP 응용 및 연구에 중요한 자산이 되었습니다.
코드, 데이터 세트 및 모델은 비상업적 용도로 사용할 수 있습니다.
이 소프트웨어 및 모델은 상품성, 특정 목적에의 적합성 및 비침해에 대한 보증을 포함하되 이에 국한되지 않고 명시적이든 묵시적이든 어떠한 종류의 보증도 없이 "있는 그대로" 제공됩니다. 어떠한 경우에도 작성자, 기여자 또는 저작권 보유자는 계약, 불법 행위 또는 기타 행위로 인해 소프트웨어 또는 소프트웨어의 사용 또는 기타 거래.
Me LLaMA 모델은 컴퓨터 언어학 및 의학 분야에서 사용하기 위한 연구 도구입니다. 적절한 검증 및 규제 승인 없이는 진단 도구나 임상 의사 결정에 사용할 수 없습니다. Me LLaMA 모델 사용자는 해당 법률 및 규제 요구 사항을 준수하는 것을 포함하여 이 기술의 윤리적이고 적절한 사용을 보장할 책임을 인식해야 합니다.
모델과 함께 제공되는 콘텐츠와 데이터는 의료 전문가의 전문 지식을 대체하지 않습니다. 의료 전문가는 Me LLaMA 모델의 결과를 평가할 때 전문적인 판단을 사용해야 합니다. 환자는 자격을 갖춘 의료 서비스 제공자와 상담하지 않고 자가 진단이나 치료를 위해 모델 출력을 사용해서는 안 됩니다. 이 정보는 임상적 의사 결정을 위한 것이 아니며 환자의 진단이나 치료에 사용하기 위한 것이 아니며 어떤 임상 목적에도 유용하지 않거나 적절하지 않을 수 있습니다.
또한 사용자는 작성자의 명시적인 허가 없이 Me LLaMA 모델에서 생성된 출력을 공유하거나 재배포하는 것이 명시적으로 금지됩니다. 여기에는 상업적 목적 여부에 관계없이 생성된 출력물을 어떤 형태로든 제3자에게 공개, 배포 또는 제공하는 것이 포함되지만 이에 국한되지는 않습니다. 이러한 제한은 기술의 책임 있는 사용을 보장하고 모델 및 그 결과와 관련된 지적 재산권을 존중하기 위해 적용됩니다. 본 약관을 위반하면 법적 조치가 취해질 수 있으며 모델에 대한 액세스가 취소될 수 있습니다.
Me LLaMA의 개발에는 LLaMA2 모델의 지속적인 사전 훈련 및 명령 조정의 세심한 프로세스가 포함되었으며, 다양한 일반, 생물 의학 및 임상 영역의 광범위한 129B 토큰 및 214K 명령 조정 샘플을 통합했습니다. 이 포괄적인 접근 방식은 도메인별 지식과 일반적인 맥락에 대한 더 넓은 이해의 균형을 유지하여 치명적인 망각 문제를 효과적으로 완화하는 것을 목표로 했습니다.
129B 토큰으로 구성된 혼합된 연속 사전 훈련 데이터 세트에는 광범위한 생물 의학 문헌, 임상 노트 및 일반 도메인 데이터가 포함됩니다. 이 데이터 세트는 광범위한 일반 지식을 통합하면서 의료 분야 지식에 중점을 두도록 설계되었습니다. 데이터세트 구성에는 다음이 포함됩니다.
사전 훈련에서는 강력한 의학적 초점을 유지하는 동시에 모델의 이해를 넓히는 것을 목표로 생의학, 임상 및 일반 도메인 데이터에 대해 15:1:4의 비율을 활용했습니다.
Me LLaMA 모델인 13B 및 70B는 160개의 A100 80GB GPU가 장착된 플로리다 대학의 HiPerGator 슈퍼컴퓨터에서 지속적인 사전 훈련과 명령 조정을 통해 개발되었습니다. 이 프로세스는 이해력을 높이고 의학적으로 관련된 텍스트를 생성하기 위해 LLaMA2 모델을 적용하는 것을 목표로 했습니다. 관련된 훈련 요법은 다음과 같습니다.
사전 훈련 단계에 이어 Me LLaMA 모델은 3개의 에포크 동안 8개의 H100 GPU를 사용하여 1e-5의 학습 속도를 사용하여 명령 조정을 거쳤습니다. 이 단계에서는 성능 향상을 위해 LoRA 기반 매개변수 효율적인 미세 조정을 활용하여 지침을 따르고 의료 업무 전반에 걸쳐 일반화하는 모델의 능력을 개선하는 데 중점을 두었습니다.
이 상세한 교육 절차는 의료 영역에서 최첨단 성능을 달성하기 위해 고급 계산 리소스와 방법론을 활용하여 Me LLaMA 모델을 개발하는 데 사용되는 포괄적인 접근 방식을 강조합니다.
Me LLaMA 모델을 로컬에서 활용하려면 먼저 PhysioNet 프로젝트에서 필요한 모델 파일을 획득하세요.
먼저 torch
및 transformers
라이브러리가 모두 Python 환경에 설치되어 있는지 확인하십시오. 이러한 라이브러리는 모델 작업에 필요합니다.
기본 텍스트 생성을 위해 transformers
라이브러리의 파이프라인을 사용합니다. 이 방법을 사용하면 텍스트 생성 프로세스가 단순화됩니다. 설정 방법은 다음과 같습니다.
from transformers import pipeline
# Ensure you replace "FOLDER_PATH_TO_MODEL" with the actual path to your model files.
pipe = pipeline ( "text-generation" , model = "FOLDER_PATH_TO_MODEL" )
# Example usage for generating text.
generated_text = pipe ( "The medical condition is characterized by" , num_return_sequences = 1 )
print ( generated_text )
이 코드 조각은 프롬프트를 기반으로 텍스트를 생성하는 방법을 보여줍니다. num_return_sequences=1
인수는 하나의 텍스트 시퀀스를 생성하도록 지정합니다.
더 많은 사용자 정의 또는 미세 조정 기능이 필요한 작업의 경우 토크나이저 및 모델을 직접 로드하는 것을 선호할 수 있습니다. 이 접근 방식을 사용하면 텍스트 생성 프로세스를 더 효과적으로 제어할 수 있으므로 생성된 텍스트의 최대 길이와 같은 매개변수를 조정할 수 있습니다. 더 자세한 예는 다음과 같습니다.
from transformers import AutoTokenizer , AutoModelForCausalLM
# Load the tokenizer and model from your local model directory.
# Don't forget to replace "FOLDER_PATH_TO_MODEL" with the actual path to your model files.
tokenizer = AutoTokenizer . from_pretrained ( "FOLDER_PATH_TO_MODEL" )
model = AutoModelForCausalLM . from_pretrained ( "FOLDER_PATH_TO_MODEL" )
# Tokenizing input text for the model.
input_ids = tokenizer ( "[INPUT SENTENCE]" , return_tensors = "pt" ). input_ids
# Generating output based on the input_ids.
# You can adjust the max_length parameter as necessary for your use case.
generated_tokens = model . generate ( input_ids , max_length = 50 )
# Decoding the generated tokens to produce readable text.
generated_text = tokenizer . decode ( generated_tokens [ 0 ], skip_special_tokens = True )
print ( generated_text )
이 설정을 사용하면 특정 데이터 세트를 미세 조정하거나 다양한 출력에 대한 생성 매개변수를 수정하는 등 모델과의 보다 미묘한 상호 작용이 가능합니다. "[INPUT SENTENCE]"를 모델이 확장하거나 응답할 문장이나 프롬프트로 바꾸는 것을 잊지 마세요.
git clone [email protected]:BIDS-Xu-Lab/Me-LLaMA.git --recursive
cd Me-LLaMA
pip install poetry
poetry install
cd src/medical-evaluation
poetry run pip install -e .[multilingual]
poetry run python -m spacy download en_core_web_lg
평가하기 전에 BART 체크포인트를 src/metrics/BARTScore/bart_score.pth
에 다운로드하세요.
자동 평가를 위해서는 다음 지침을 따르십시오.
허깅페이스 트랜스포머
HuggingFace Hub(예: llama2-7b-hf)에 호스팅된 모델을 평가하려면 scripts/run_evaluation.sh
에서 이 명령을 변경하세요.
poetry run python src/eval.py
--model " hf-causal-vllm "
--model_args " use_accelerate=True,pretrained=meta-llama/Llama-2-7b-chat-hf,use_fast=False "
--tasks " PUBMEDQA,MedQA,MedMCQA,EmrQA,i2b2,DDI2013,hoc,MTSample,PUBMEDSUM,MimicSum,BioNLI,MedNLI "
그런 다음 bash 명령을 실행하십시오.
bash scripts/run_evaluation.sh
자세한 내용은 lm_eval 문서에서 확인할 수 있습니다.
오픈 소스 모델과 동일한 단계를 수행하여 먼저 다음을 사용하여 bash 파일을 변경합니다.
export OPENAI_API_SECRET_KEY=YOUR_KEY_HERE
poetry run python src/eval.py
--model gpt-4
--tasks " PUBMEDQA,MedQA,MedMCQA,EmrQA,i2b2,DDI2013,hoc,MTSample,PUBMEDSUM,MimicSum,BioNLI,MedNLI "
NER와 같은 작업의 경우 자동 평가는 특정 패턴을 기반으로 합니다. 이는 제로샷 설정에서 관련 정보를 추출하지 못하여 이전에 사람이 주석을 추가한 결과에 비해 상대적으로 성능이 저하될 수 있습니다.
@misc{xie2024llama, title={Me LLaMA: 의료 응용을 위한 기초 대규모 언어 모델}, 작성자={Qianqian Xie 및 Qingyu Chen 및 Aokun Chen 및 Cheng Peng 및 Yan Hu 및 Fongci Lin 및 Xueqing Peng 및 Jimin Huang 및 Jeffrey Zhang 및 Vipina Keloth 및 Huan He 및 Lucila Ohno-Machido 및 Yonghui Wu 및 Hua Xu 및 Jiang Bian} , 연도={2024}, eprint={2402.12749}, archivePrefix={arXiv}, 기본클래스={cs.CL} }