يقدم Me LLaMA مجموعة رائدة من نماذج اللغات الطبية الكبيرة مفتوحة المصدر (LLMs)، بما في ذلك النماذج الأساسية 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 من عينات ضبط التعليمات من مجموعة متنوعة من المجالات العامة والطبية الحيوية والسريرية. يهدف هذا النهج الشامل إلى تحقيق التوازن بين المعرفة الخاصة بالمجال مع فهم أوسع للسياق العام، وبالتالي التخفيف بشكل فعال من مشاكل النسيان الكارثية.
تتضمن مجموعة البيانات المختلطة المستمرة لما قبل التدريب، والتي تضم 129 مليار رمزًا، مجموعة واسعة من المؤلفات الطبية الحيوية والملاحظات السريرية وبيانات المجال العامة. تم تصميم مجموعة البيانات هذه لضمان التركيز العميق على المعرفة بالمجال الطبي مع دمج مجموعة واسعة من المعرفة العامة. يتضمن تكوين مجموعة البيانات ما يلي:
استخدم التدريب المسبق نسبة 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 الخاص بنا.
أولاً، تأكد من تثبيت مكتبتي 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 )
يسمح هذا الإعداد بتفاعلات أكثر دقة مع النموذج، مثل الضبط الدقيق لمجموعات بيانات محددة أو تعديل معلمات الإنشاء لمخرجات مختلفة. تذكر استبدال "[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 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}, إيبرينت={2402.12749}, أرشيفبريفيكس = {arXiv}، الفئة الأساسية = {cs.CL} }