模型概述
模型特點
模型能力
使用案例
🚀 Aloe:一系列微調的開放醫療大語言模型
Aloe是一系列經過微調的開放醫療大語言模型,在多個醫療任務中取得了先進的性能。它有不同的模型大小可供選擇,基於不同的基礎模型進行訓練,能有效處理多種醫療任務,評估顯示其模型在同類中表現出色。
🚀 快速開始
使用示例
基礎用法
import transformers
import torch
model_id = "HPAI-BSC/Qwen2.5-Aloe-Beta-72B"
pipeline = transformers.pipeline(
"text-generation",
model=model_id,
model_kwargs={"torch_dtype": torch.bfloat16},
device_map="auto",
)
messages = [
{"role": "system", "content": "You are an expert medical assistant named Aloe, developed by the High Performance Artificial Intelligence Group at Barcelona Supercomputing Center(BSC). You are to be a helpful, respectful, and honest assistant."},
{"role": "user", "content": "Hello."},
]
prompt = pipeline.tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
terminators = [
pipeline.tokenizer.eos_token_id,
pipeline.tokenizer.convert_tokens_to_ids("<|im_end|>")
]
outputs = pipeline(
prompt,
max_new_tokens=256,
eos_token_id=terminators,
do_sample=True,
temperature=0.7,
top_p=0.8,
top_k=20,
repetition_penalty=1.05
)
print(outputs[0]["generated_text"][len(prompt):])
高級用法
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = "HPAI-BSC/Qwen2.5-Aloe-Beta-72B"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
messages = [
{"role": "system", "content": "You are an expert medical assistant named Aloe, developed by the High Performance Artificial Intelligence Group at Barcelona Supercomputing Center(BSC). You are to be a helpful, respectful, and honest assistant."},
{"role": "user", "content": "Hello"},
]
input_ids = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
return_tensors="pt"
).to(model.device)
terminators = [
tokenizer.eos_token_id,
tokenizer.convert_tokens_to_ids("<|im_end|>")
]
outputs = model.generate(
input_ids,
max_new_tokens=256,
eos_token_id=terminators,
do_sample=True,
temperature=0.7,
top_p=0.8,
top_k=20,
repetition_penalty=1.05
)
response = outputs[0][input_ids.shape[-1]:]
print(tokenizer.decode(response, skip_special_tokens=True))
✨ 主要特性
- 多模型規模:Aloe Beta提供四種模型大小,分別為7B、8B、70B和72B,所有模型基於Llama3.1和Qwen2.5兩個不同的模型家族進行訓練。
- 多任務訓練:在20個醫療任務上進行訓練,使模型具有強大而通用的醫療能力。
- 高性能表現:評估顯示Aloe模型在同類中表現出色,結合RAG系統後,7B和8B版本接近MedPalm - 2、GPT4等閉源模型的性能,Llama3.1 - Aloe - Beta - 70B和Qwen2.5 - Aloe - Beta - 72B則超越了這些閉源模型。
- 增強訓練數據:Aloe - Beta版本相比前代,訓練數據增加了兩倍多,達到18億個標記,涵蓋更多醫療任務和指令。
- 通用數據融合:為減輕災難性遺忘並使模型學習新能力,融入了佔總訓練集20%的通用高質量數據。
- 對齊和安全提升:在對齊和安全階段進行了改進,使用了醫療偏好數據集和紅隊數據集(即將發佈)。
📚 詳細文檔
模型詳情
模型描述
屬性 | 詳情 |
---|---|
開發團隊 | HPAI |
模型類型 | 因果解碼器僅變壓器語言模型 |
語言 | 英語(有能力處理其他語言,但未正式評估) |
許可證 | 該模型基於Qwen2.5 - 72B,採用Qwen自定義許可證。所有修改內容採用CC BY 4.0許可證,使Aloe Beta模型可用於商業用途。 |
基礎模型 | Qwen2.5 - 72B |
論文 | (更多即將發佈) |
RAG倉庫 | https://github.com/HPAI-BSC/prompt_engine |
模型來源
暫未提供相關信息。
模型性能
Aloe Beta在最流行的醫療問答數據集上進行了測試,使用和不使用Medprompt推理技術的結果都顯示出具有競爭力的性能,在相同規模的模型中達到了先進水平。該模型在多個不同的醫療任務中表現出色,在通用領域的OpenLLM Leaderboard基準測試中也取得了有競爭力的結果,超越了其他醫療模型。
使用說明
直接使用
鼓勵將Aloe用於研究目的,作為構建更好的醫療基礎模型的基石。在實際應用中,Aloe應始終在人類專家的監督下使用。
超出範圍使用
這些模型不得用於臨床實踐、醫療診斷或任何形式的直接或間接醫療建議。模型可能會出錯併產生有害內容,嚴禁將Aloe模型用於對個人有害的活動,如垃圾郵件、欺詐或冒充。未成年人在沒有監督的情況下不得單獨與Aloe進行交互。
偏差、風險和限制
Aloe在特定提示下可能會產生有害內容,並存在多種不良偏差。儘管採取了大量措施來減輕這些問題(見下文對齊細節),但無法完全保證模型的安全性。訓練過程中避免使用所有個人數據。
識別出至少三種特定於醫療大語言模型的風險情況:
- 醫療專業人員冒充:這是一種欺詐行為,目前已產生數十億美元的利潤。像Aloe這樣的模型可能會提高此類欺騙活動的效率,使其更加普遍。主要的預防措施包括提高公眾對數字化信息不可靠性的認識、強調醫療註冊的重要性,以及制定強制要求標註AI生成內容的法律法規。
- 無專業監督的醫療決策:雖然這在現代社會已經是一個問題(如自我用藥),但像Aloe這樣能夠生成高質量對話數據的模型可能會助長自我欺騙,特別是在存在諂媚的情況下。通過生成定製化響應,它還可以用於生成可操作的答案。提高公眾對自我診斷危險的認識是主要的防禦措施之一,同時在模型輸出中添加免責聲明和警告。
- 獲取危險物質或程序信息:雖然關於敏感內容的文獻已經可以在不同來源(如圖書館、互聯網、暗網)找到,但大語言模型可以集中此類訪問,使得控制此類信息的流動幾乎不可能。模型對齊可以在這方面提供幫助,但到目前為止效果仍然不足,因為越獄方法仍然可以繞過它。
🔧 技術細節
訓練詳情
監督微調
在Qwen2.5 - 72B基礎上使用axolotl(https://github.com/axolotl - ai - cloud/axolotl)進行監督微調。使用Deepspeed的Zero - 3分佈式訓練,硬件使用情況如下:
- 7B:Marenostrum 5的32個NVIDIA Hopper H100 64GB。
- 8B:Marenostrum 5的32個NVIDIA Hopper H100 64GB。
- 70B:Marenostrum 5的64個NVIDIA Hopper H100 64GB。
- 72B:Marenostrum 5的92個NVIDIA Hopper H100 64GB。
訓練數據
訓練集約由18億個標記組成,包含三種不同類型的數據:
- 醫療領域數據集:包括來自20個不同醫療任務的數據。
- 合成數據:使用Llama3.1 - 70B生成高質量答案來擴展訓練數據。
- 通用數據:包括數學、STEM、代碼、函數調用和長上下文指令。
訓練參數
- 輪數:3
- 序列長度:16384
- 優化器:adamw_torch
- 學習率:1e - 5
- 學習率調度器:cosine
- 預熱步驟:100
- 權重衰減:0
- 梯度檢查點
- Zero 3
- 總批量大小:128
- 每個設備的批量大小:1
- 梯度累積步驟:4
模型合併
使用DARE_TIES技術將訓練好的模型與Qwen2.5 - 72 - Instruct模型進行合併,使用[Mergekit](https://github.com/arcee - ai/mergekit)進行合併操作。
模型對齊
使用直接偏好優化(DPO)技術通過兩步過程對模型進行對齊:
- 通用DPO對齊:此步驟使用結合了醫療、通用偏好和安全數據的數據集。使用了數據集HPAI - BSC/Aloe - Beta - DPO,將數據集分為五部分,模型在每個部分上迭代訓練一個輪次,學習率為2e - 7。
- 紅隊對齊:此步驟進一步微調模型以抵抗各種潛在攻擊,增強其魯棒性和安全性。數據集即將共享,此階段學習率設置為1e - 7。
使用OpenRLHF庫,在Marenostrum 5的16個NVIDA HOOPER H100 64GB上進行對齊,常見超參數如下:
- 序列長度:4096
- 優化器:Fused adam
- 總批量大小:128
- 每個設備的批量大小:1
- 梯度累積步驟:8
- Beta:0.1
評估
測試數據
- [ACI - BENCH](https://github.com/wyim/aci - bench)
- [MTS - Dialog](https://github.com/abachaa/MTS - Dialog)
- MedText
- [Medical Text classification](https://www.kaggle.com/datasets/chaitanyakck/medical - text/data)
- [OLAPH](https://github.com/dmis - lab/OLAPH)
- CareQA Open
- MedDialog
- MEDIQA QA
- Meddialog Qsumm
- Biored
- [MIMIC - III](https://huggingface.co/datasets/dmacres/mimiciii - hospitalcourse - meta)
- [Medical Prescription](https://huggingface.co/datasets/devlocalhost/prescription - full)
- MedQA (USMLE)
- MedMCQA
- PubMedQA
- MMLU - Medical
- [MedQA - 4 - Option](https://huggingface.co/datasets/GBaker/MedQA - USMLE - 4 - options)
- CareQA
- [Open LLM Leaderboard 2](https://huggingface.co/spaces/open - llm - leaderboard/open_llm_leaderboard)
指標
- 準確率:適用於多項選擇題問答任務的評估。
- Rouge1:指系統輸出與黃金標準之間一元組的重疊度。
總結
為了將Aloe與最具競爭力的開放模型(包括通用模型和醫療特定模型)進行比較,使用了流行的醫療數據集(PubMedQA、MedMCQA、MedQA和MMLU,僅用於六個醫療任務)以及新的、高度可靠的CareQA。然而,多項選擇題基準測試雖然能提供模型處理結構化查詢能力的有價值見解,但不足以代表醫療實踐中面臨的全部挑戰。在此基礎上,Aloe - Beta是Aloe家族的進一步發展,旨在超越定義Aloe - Alpha的多項選擇題問答任務。
基準測試結果表明,Aloe的訓練提升了其性能,達到了與Llama3 - OpenBioLLLM、Llama3 - Med42、MedPalm - 2和GPT - 4等先進模型相當的結果。Llama3.1 - Aloe - Beta - 70B在OpenLLM Leaderboard和其他醫療任務評估(如醫療事實和醫療治療建議)中也超越了其他現有醫療模型,使其成為現有最佳的醫療模型之一。
Qwen2.5 - Aloe - Beta - 72B的訓練也提升了其性能,在醫療多項選擇題基準測試中超越了所有現有的公開和私有模型,在其他醫療任務評估中也表現出色。通過提示技術,Aloe的性能得到了顯著提升,特別是Medprompting技術使報告的準確率提高了4%,之後Qwen2.5 - Aloe - Beta - 72B超越了所有未使用RAG評估的現有模型。
🔌 環境影響
- 硬件類型:32xH100
- 使用時長(8B):544 GPU小時
- 使用時長(70B):4500 GPU小時
- 硬件提供商:巴塞羅那超級計算中心(BSC)
- 計算區域:西班牙
- 碳排放:34.1千克二氧化碳
📄 許可證
該模型基於Qwen2.5 - 72B,採用Qwen自定義許可證。所有修改內容採用CC BY 4.0許可證,使Aloe Beta模型可用於商業用途。
👥 作者
Aloe Beta由高性能人工智能研究小組開發,該小組來自巴塞羅那超級計算中心 - BSC。主要作者包括Jordi Bayarri Planas、[Ashwin Kumar Gururajan](https://huggingface.co/G - AshwinKumar)和Dario Garcia - Gasulla,紅隊工作由Adrian Tormos領導。郵箱:mailto:hpai@bsc.es
📖 引用
如果在發表的工作中使用了此倉庫,請引用相應的論文作為來源:
@misc{gururajan2024aloe,
title={Aloe: A Family of Fine-tuned Open Healthcare LLMs},
author={Ashwin Kumar Gururajan and Enrique Lopez-Cuena and Jordi Bayarri-Planas and Adrian Tormos and Daniel Hinjos and Pablo Bernabeu-Perez and Anna Arias-Duart and Pablo Agustin Martin-Torres and Lucia Urcelay-Ganzabal and Marta Gonzalez-Mallo and Sergio Alvarez-Napagao and Eduard Ayguadé-Parra and Ulises Cortés Dario Garcia-Gasulla},
year={2024},
eprint={2405.01886},
archivePrefix={arXiv},
primaryClass={cs.CL}
}



