Me LLaMA memperkenalkan rangkaian terobosan Model Bahasa Besar (LLM) medis sumber terbuka, termasuk model dasar Me LLaMA 13B/70B dan versi yang disempurnakan dengan obrolan, Me LLaMA 13B-chat/70B-chat. Dikembangkan melalui pra-pelatihan dan penyetelan instruksi LLaMA2 yang inovatif dan berkelanjutan, model ini memanfaatkan korpus medis yang luas. Korpus ini mencakup makalah dan abstrak PubMed terpilih, kumpulan data pedoman medis baru yang diakui secara internasional, dan korpus domain umum, yang menempatkan Me LLaMA di garis depan penelitian AI medis.
Dengan kemajuan khusus domainnya, Me LLaMA menetapkan tolok ukur baru pada beragam tugas penalaran medis. Hal ini menjadikan Me LLaMA aset penting untuk aplikasi dan penelitian NLP medis.
Kode, kumpulan data, dan model tersedia untuk penggunaan non-komersial.
Perangkat lunak dan model ini disediakan "apa adanya", tanpa jaminan apa pun, tersurat maupun tersirat, termasuk namun tidak terbatas pada jaminan dapat diperjualbelikan, kesesuaian untuk tujuan tertentu, dan tidak adanya pelanggaran. Dalam keadaan apa pun penulis, kontributor, atau pemegang hak cipta tidak bertanggung jawab atas segala klaim, kerusakan, atau tanggung jawab lainnya, baik dalam tindakan kontrak, perbuatan melawan hukum, atau lainnya, yang timbul dari, di luar, atau sehubungan dengan perangkat lunak atau perangkat lunak. penggunaan atau urusan lain dalam perangkat lunak.
Model Me LLaMA adalah alat penelitian yang dimaksudkan untuk digunakan dalam bidang linguistik komputasi dan kedokteran. Alat ini tidak dimaksudkan untuk digunakan sebagai alat diagnostik atau pengambilan keputusan klinis tanpa validasi dan persetujuan peraturan yang sesuai. Pengguna model Me LLaMA harus menyadari tanggung jawab mereka untuk memastikan penggunaan teknologi ini secara etis dan tepat, termasuk kepatuhan terhadap persyaratan hukum dan peraturan yang berlaku.
Konten dan data yang disediakan dalam model ini tidak menggantikan keahlian profesional kesehatan. Profesional layanan kesehatan harus menggunakan penilaian profesional mereka dalam mengevaluasi keluaran model Me LLaMA. Pasien tidak boleh menggunakan keluaran model untuk diagnosis atau pengobatan mandiri tanpa berkonsultasi dengan penyedia layanan kesehatan yang berkualifikasi. Informasi ini tidak dimaksudkan untuk pengambilan keputusan klinis, tidak dimaksudkan untuk digunakan dalam diagnosis atau pengobatan pasien dan mungkin tidak berguna atau sesuai untuk tujuan klinis apa pun.
Selain itu, pengguna secara tegas dilarang membagikan atau mendistribusikan ulang keluaran apa pun yang dihasilkan dari model Me LLaMA tanpa izin eksplisit dari penulis. Hal ini termasuk, namun tidak terbatas pada, menerbitkan, mendistribusikan, atau menyediakan keluaran yang dihasilkan kepada pihak ketiga dalam bentuk apa pun, baik untuk tujuan komersial atau tidak. Pembatasan ini diberlakukan untuk memastikan penggunaan teknologi secara bertanggung jawab dan untuk menghormati hak kekayaan intelektual yang terkait dengan model dan keluarannya. Pelanggaran terhadap ketentuan ini dapat mengakibatkan tindakan hukum dan pencabutan akses terhadap model.
Pengembangan Me LLaMA melibatkan proses pra-pelatihan dan penyetelan instruksi yang cermat dari model LLaMA2, menggabungkan token 129B yang ekstensif dan sampel penyetelan instruksi 214K dari beragam domain umum, biomedis, dan klinis. Pendekatan komprehensif ini bertujuan untuk menyeimbangkan pengetahuan spesifik domain dengan pemahaman yang lebih luas tentang konteks umum, sehingga secara efektif mengurangi masalah lupa yang bersifat bencana.
Kumpulan data pra-pelatihan berkelanjutan campuran, yang terdiri dari 129 miliar token, mencakup beragam literatur biomedis, catatan klinis, dan data domain umum. Kumpulan data ini dirancang untuk memastikan fokus mendalam pada pengetahuan domain medis sekaligus menggabungkan spektrum pengetahuan umum yang luas. Komposisi dataset meliputi:
Pra-pelatihan menggunakan rasio 15:1:4 untuk data domain biomedis, klinis, dan umum, yang bertujuan untuk mempertahankan fokus medis yang kuat sekaligus memperluas pemahaman model.
Model Me LLaMA, 13B dan 70B, dikembangkan melalui pra-pelatihan dan penyetelan instruksi berkelanjutan pada superkomputer HiPerGator Universitas Florida, yang dilengkapi dengan GPU 160 A100 80GB. Proses ini bertujuan untuk mengadaptasi model LLaMA2 untuk meningkatkan pemahaman dan menghasilkan teks yang relevan secara medis. Regimen pelatihan meliputi:
Setelah fase pra-pelatihan, model Me LLaMA menjalani penyetelan instruksi menggunakan 8 GPU H100 selama 3 epoch, menggunakan kecepatan pembelajaran 1e-5. Fase ini berfokus pada penyempurnaan kemampuan model untuk mengikuti instruksi dan menggeneralisasi seluruh tugas medis, memanfaatkan penyesuaian parameter yang efisien berdasarkan LoRA untuk meningkatkan kinerja.
Prosedur pelatihan terperinci ini menggarisbawahi pendekatan komprehensif yang diambil dalam mengembangkan model Me LLaMA, memanfaatkan sumber daya dan metodologi komputasi tingkat lanjut untuk mencapai kinerja tercanggih dalam domain medis.
Untuk memanfaatkan model Me LLaMA secara lokal, mulailah dengan memperoleh file model yang diperlukan dari proyek PhysioNet kami.
Pertama, pastikan pustaka torch
dan transformers
diinstal di lingkungan Python Anda. Pustaka ini diperlukan untuk bekerja dengan model.
Untuk pembuatan teks dasar, Anda akan menggunakan alur dari pustaka transformers
. Metode ini menyederhanakan proses menghasilkan teks. Inilah cara Anda mengaturnya:
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 )
Cuplikan kode ini menunjukkan cara menghasilkan teks berdasarkan perintah. Argumen num_return_sequences=1
menentukan bahwa Anda ingin menghasilkan satu urutan teks.
Untuk tugas yang memerlukan lebih banyak penyesuaian atau kemampuan penyesuaian, Anda mungkin lebih suka memuat tokenizer dan model secara langsung. Pendekatan ini memberi Anda kontrol lebih besar atas proses pembuatan teks, memungkinkan Anda menyesuaikan parameter seperti panjang maksimum teks yang dihasilkan. Berikut contoh yang lebih detail:
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 )
Penyiapan ini memungkinkan interaksi yang lebih beragam dengan model, seperti menyempurnakan kumpulan data tertentu atau memodifikasi parameter pembuatan untuk keluaran yang berbeda. Ingatlah untuk mengganti "[INPUT SENTENCE]" dengan kalimat atau perintah yang Anda ingin agar model diperluas atau ditanggapi.
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
Sebelum evaluasi, silakan unduh BART checkpoint ke src/metrics/BARTScore/bart_score.pth
.
Untuk evaluasi otomatis, ikuti petunjuk berikut:
Transformator Wajah Memeluk
Untuk mengevaluasi model yang dihosting di HuggingFace Hub (misalnya, llama2-7b-hf), ubah perintah ini di 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 "
Kemudian jalankan perintah bash:
bash scripts/run_evaluation.sh
Detail lebih lanjut dapat ditemukan di dokumentasi lm_eval.
Lakukan langkah yang sama seperti model sumber terbuka, pertama-tama ubah file bash dengan:
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 "
Harap diperhatikan, untuk tugas seperti NER, evaluasi otomatis didasarkan pada pola tertentu. Hal ini mungkin gagal dalam mengekstrak informasi yang relevan dalam pengaturan zero-shot, sehingga menghasilkan kinerja yang relatif lebih rendah dibandingkan dengan hasil yang dianotasi manusia sebelumnya.
@misc{xie2024llama, title={Saya LLaMA: Model Bahasa Besar Dasar untuk Aplikasi Medis}, author={Qianqian Xie dan Qingyu Chen dan Aokun Chen dan Cheng Peng dan Yan Hu dan Fongci Lin dan Xueqing Peng dan Jimin Huang dan Jeffrey Zhang dan Vipina Keloth dan Huan He dan Lucila Ohno-Machido dan Yonghui Wu dan Hua Xu dan Jiang Bian} , tahun={2024}, eprint={2402.12749}, arsipAwalan={arXiv}, Kelas utama={cs.CL} }