Me LLaMA представляет новаторский набор медицинских моделей большого языка (LLM) с открытым исходным кодом, включая базовые модели Me LLaMA 13B/70B и их версии с расширенными возможностями чата Me LLaMA 13B-chat/70B-chat. Эти модели, разработанные посредством инновационной постоянной предварительной подготовки и настройки инструкций LLaMA2, используют обширный медицинский корпус. Этот корпус включает в себя избранные статьи и рефераты PubMed, новый набор данных международно-признанных медицинских рекомендаций, а также общий корпус предметной области, что ставит Me LLaMA на передний план медицинских исследований в области искусственного интеллекта.
Благодаря своим отраслевым достижениям Me LLaMA устанавливает новые стандарты в широком спектре задач медицинского рассуждения. Это делает Me LLaMA важным активом для медицинских приложений и исследований НЛП.
Код, наборы данных и модели доступны для некоммерческого использования.
Это программное обеспечение и модель предоставляются «как есть», без каких-либо гарантий, явных или подразумеваемых, включая, помимо прочего, гарантии коммерческой ценности, пригодности для определенной цели и отсутствия нарушений прав. Ни при каких обстоятельствах авторы, участники или держатели авторских прав не несут ответственности за какие-либо претензии, убытки или другую ответственность, будь то в результате контракта, правонарушения или иным образом, возникающие из, из или в связи с программным обеспечением или использование или другие операции с программным обеспечением.
Модели Me LLaMA — это исследовательские инструменты, предназначенные для использования в области компьютерной лингвистики и медицины. Они не предназначены для использования в качестве диагностических инструментов или для принятия клинических решений без соответствующей проверки и одобрения регулирующих органов. Пользователи моделей Me LLaMA должны осознавать свою ответственность за обеспечение этического и надлежащего использования этой технологии, включая соблюдение любых применимых законодательных и нормативных требований.
Содержание и данные, представленные в моделях, не заменяют опыт специалистов здравоохранения. Медицинские работники должны использовать свое профессиональное суждение при оценке результатов моделей Me LLaMA. Пациентам не следует использовать результаты модели для самодиагностики или лечения без консультации с квалифицированным поставщиком медицинских услуг. Информация не предназначена для принятия клинических решений, не предназначена для использования при диагностике или лечении пациентов и не может быть полезной или подходящей для каких-либо клинических целей.
Кроме того, пользователям категорически запрещено делиться или распространять любые результаты, полученные с помощью моделей Me LLaMA, без явного разрешения авторов. Это включает, помимо прочего, публикацию, распространение или предоставление созданных результатов третьим сторонам в любой форме, как для коммерческих целей, так и для нет. Это ограничение введено для обеспечения ответственного использования технологии и соблюдения прав интеллектуальной собственности, связанных с моделями и их результатами. Нарушение этих условий может привести к судебному иску и отзыву доступа к моделям.
Разработка Me LLaMA включала в себя тщательный процесс непрерывного предварительного обучения и настройки инструкций моделей LLaMA2, включающий обширные 129B токенов и 214K образцов настройки инструкций из широкого спектра общих, биомедицинских и клинических областей. Этот комплексный подход был направлен на то, чтобы сбалансировать знания, специфичные для предметной области, с более широким пониманием общего контекста, тем самым эффективно смягчая проблемы катастрофического забывания.
Смешанный непрерывный набор данных для предварительного обучения, содержащий 129B токенов, включает в себя широкий спектр биомедицинской литературы, клинических записей и данных общей области. Этот набор данных предназначен для того, чтобы обеспечить глубокую ориентацию на знания в области медицины, в то же время охватывая широкий спектр общих знаний. В состав датасета входят:
В предварительном обучении использовалось соотношение 15:1:4 для биомедицинских, клинических и общих данных, чтобы сохранить сильный медицинский фокус и одновременно расширить понимание модели.
Модели Me LLaMA, 13B и 70B, были разработаны посредством непрерывного предварительного обучения и настройки инструкций на суперкомпьютере HiPerGator Университета Флориды, оснащенном 160 графическими процессорами A100 по 80 ГБ. Процесс был направлен на адаптацию моделей LLaMA2 для улучшения понимания и создания текста, значимого с медицинской точки зрения. Режим тренировок включал в себя:
После этапа предварительного обучения модели Me LLaMA прошли настройку инструкций с использованием 8 графических процессоров H100 в течение 3 эпох со скоростью обучения 1e-5. На этом этапе основное внимание уделялось совершенствованию способности моделей следовать инструкциям и обобщению медицинских задач с использованием точной настройки параметров на основе LoRA для повышения производительности.
Эта подробная процедура обучения подчеркивает комплексный подход, использованный при разработке моделей Me LLaMA, с использованием передовых вычислительных ресурсов и методологий для достижения самых современных результатов в медицинской области.
Чтобы использовать модель Me LLaMA локально, начните с получения необходимых файлов модели из нашего проекта PhysioNet.
Во-первых, убедитесь, что в вашей среде Python установлены библиотеки torch
и transformers
. Эти библиотеки необходимы для работы с моделью.
Для базовой генерации текста вы будете использовать конвейер из библиотеки 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 )
Эта настройка позволяет осуществлять более тонкое взаимодействие с моделью, например, точную настройку конкретных наборов данных или изменение параметров генерации для различных выходных данных. Не забудьте заменить «[ВВОДНОЕ ПРЕДЛОЖЕНИЕ]» предложением или подсказкой, на которую вы хотите, чтобы модель расширилась или на которую вы ответили.
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: Foundation Большие языковые модели для медицинских приложений}, автор = {Цяньцянь Се, Цинъюй Чен, Аокун Чен, Чэн Пэн, Ян Ху, Фончи Линь, Сюэцин Пэн, Цзиминь Хуан, Джеффри Чжан, Випина Келот, Хуан Хэ, Люсила Оно-Мачидо, Юнхуэй Ву, Хуа Сюй и Цзян Бянь} , год={2024}, епринт = {2402.12749}, archivePrefix={arXiv}, первичныйКласс={cs.CL} }