模型概述
模型特點
模型能力
使用案例
🚀 Aloe:一系列微調後的開源醫療大語言模型
Aloe 是一系列經過微調的開源醫療大語言模型,在多個醫療任務中實現了最先進的性能,為醫療領域的研究和應用提供了強大的支持。
🚀 快速開始
使用以下代碼開始使用模型。你可以使用 Transformers
管道抽象運行對話推理,也可以使用 Auto
類和 generate()
函數。以下是兩種方法的示例:
基礎用法
import transformers
import torch
model_id = "HPAI-BSC/Llama3.1-Aloe-Beta-8B"
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("<|eot_id|>")
]
outputs = pipeline(
prompt,
max_new_tokens=256,
eos_token_id=terminators,
do_sample=True,
temperature=0.6,
top_p=0.9,
)
print(outputs[0]["generated_text"][len(prompt):])
高級用法
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = "HPAI-BSC/Llama3.1-Aloe-Beta-8B"
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("<|eot_id|>")
]
outputs = model.generate(
input_ids,
max_new_tokens=256,
eos_token_id=terminators,
do_sample=True,
temperature=0.6,
top_p=0.9,
)
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 - 8B - Beta 是 Aloe 家族的最新版本,相較於前身 Aloe - 8B - Alpha,訓練數據增加了兩倍多,達到 1.8B 個標記,並增強了對齊和安全階段。
📦 安裝指南
文檔未提供具體安裝步驟,暫無法展示。
📚 詳細文檔
模型詳情
屬性 | 詳情 |
---|---|
開發者 | HPAI |
模型類型 | 因果解碼器 - 僅變壓器語言模型 |
語言 | 英語(有能力處理其他語言,但未進行正式評估) |
許可證 | 該模型基於 Meta Llama 3.1 8B,遵循 Meta Llama 3 許可證。所有修改部分採用 CC BY 4.0 許可證,使 Aloe Beta 模型 可用於商業用途 |
基礎模型 | [meta - llama/Llama - 3.1 - 8B](https://huggingface.co/meta - llama/Llama - 3.1 - 8B) |
論文 | 更多即將發佈 |
RAG 倉庫 | https://github.com/HPAI - BSC/prompt_engine |
模型性能
Aloe Beta 在最流行的醫療問答數據集上進行了測試,使用和不使用 Medprompt 推理技術的結果都顯示出具有競爭力的性能,在相同尺寸的模型中達到了 SOTA 水平。在通用領域的 OpenLLM Leaderboard 基準測試中,Aloe - Beta 與當前的 SOTA 通用模型取得了有競爭力的結果,並超越了醫療模型。
使用場景
直接使用
鼓勵將 Aloe 用於研究目的,作為構建更好的醫療基礎模型的基石。在生產環境中,Aloe 應始終在人類專家的監督下使用。
超出範圍的使用
這些模型不得用於臨床實踐、醫療診斷或任何形式的直接或間接醫療建議。模型容易出錯,可能會產生有害內容。嚴禁將 Aloe 模型用於對個人有害的活動,如垃圾郵件、欺詐或冒充。未成年人在沒有監督的情況下不得獨自與 Aloe 進行交互。
偏差、風險和侷限性
Aloe 在適當的提示下可能會產生有害內容,並存在多種不良偏差。儘管進行了大量努力來減輕這些問題,但無法完全保證模型的安全性。訓練過程中避免使用所有個人數據。
識別出至少三種特定於醫療大語言模型的風險情況:
- 冒充醫療專業人員:這種欺詐行為目前在醫療保健欺詐中產生了數十億美元的利潤。像 Aloe 這樣的模型可能會被用於增加此類欺騙活動的效果,使其更加普遍。主要的預防措施包括提高公眾對數字化信息不可靠性的認識、強調醫療註冊的重要性,以及制定強制要求披露 AI 生成內容的立法。
- 無專業監督的醫療決策:雖然這在現代社會中已經是一個問題(如自我用藥),但像 Aloe 這樣能夠生成高質量對話數據的模型可能會助長自我欺騙,特別是在存在諂媚的情況下。通過生成量身定製的響應,它還可以用於生成可操作的答案。提高公眾對自我診斷危險的認識,以及在模型輸出中引入免責聲明和警告是主要的防禦措施。
- 獲取危險物質或程序的信息:雖然關於敏感內容的文獻已經可以在不同來源(如圖書館、互聯網、暗網)中找到,但大語言模型可以集中此類訪問,使得控制此類信息的流動幾乎不可能。模型對齊可以在這方面提供幫助,但目前效果仍然不足,因為越獄方法仍然可以繞過它。
訓練詳情
監督微調
在 Llama 3.1 的基礎上使用 axolotl(https://github.com/axolotl - ai - cloud/axolotl)進行 SFT。使用 Deepspeed 的 Zero - 3 分佈式訓練,硬件配置如下:
- 8B:使用 Marenostrum 5 的 32 個 NVIDIA Hopper H100 64GB GPU。
- 70B:使用 Marenostrum 5 的 64 個 NVIDIA Hopper H100 64GB GPU。
訓練數據
訓練集約由 1.8B 個標記組成,包含三種不同類型的數據:
- 醫療領域數據集:包括來自 20 個不同醫療任務的數據,如 [HPAI - BSC/Aloe - Beta - General - Collection](https://huggingface.co/datasets/HPAI - BSC/Aloe - Beta - General - Collection)、[HPAI - BSC/chain - of - diagnosis](https://huggingface.co/datasets/HPAI - BSC/chain - of - diagnosis) 等。
- 合成數據:使用 Llama3.1 - 70B 生成高質量答案來擴展訓練數據,如 [HPAI - BSC/pubmedqa - cot - llama31](https://huggingface.co/datasets/HPAI - BSC/pubmedqa - cot - llama31) 等。
- 通用數據:包括數學、STEM、代碼、函數調用和長上下文指令等,如 [HPAI - BSC/Aloe - Beta - General - Collection](https://huggingface.co/datasets/HPAI - BSC/Aloe - Beta - General - Collection)。
訓練參數
- 輪數:3
- 序列長度:16384
- 優化器:adamw_torch
- 學習率:2e - 5
- 學習率調度器:cosine
- 熱身步驟:100
- 權重衰減:0
- 梯度檢查點
- Zero 3
- 總批量大小:128
- 每個設備的批量大小:1
- 梯度累積步驟:4
模型合併
使用 DARE_TIES 技術將訓練好的模型與 Llama - 3.1 - Instruct 模型合併,使用 [Mergekit](https://github.com/arcee - ai/mergekit) 進行合併操作。
模型對齊
使用直接偏好優化(DPO)技術通過兩步過程對模型進行對齊:
- 通用 DPO 對齊:使用包含醫療、通用偏好和安全數據的數據集 [HPAI - BSC/Aloe - Beta - DPO](https://huggingface.co/datasets/HPAI - BSC/Aloe - Beta - DPO),將數據集分為五部分,模型在每個部分上迭代訓練一個輪次,學習率為 2e - 7。
- 紅隊對齊:進一步微調模型以抵抗各種潛在攻擊,增強其魯棒性和安全性。數據集即將共享,此階段學習率設置為 1e - 7。
使用 OpenRLHF 庫,在 Marenostrum 5 的 16 個 NVIDA HOOPER H100 64GB GPU 上進行對齊。常見超參數如下:
- 序列長度: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](https://huggingface.co/datasets/HPAI - BSC/CareQA)
- [Open LLM Leaderboard 2](https://huggingface.co/spaces/open - llm - leaderboard/open_llm_leaderboard)
評估指標
- 準確率:適用於多項選擇題問答任務的評估。
- Rouge1:指系統輸出與黃金標準之間一元語法的重疊程度。
總結
為了將 Aloe 與最具競爭力的開源模型(包括通用模型和醫療特定模型)進行比較,使用了流行的醫療數據集(PubMedQA、MedMCQA、MedQA 和 MMLU 僅用於六個醫療任務)以及新的、高度可靠的 CareQA。訓練使 Aloe 的性能優於 Llama31 - 8B - Instruct,Llama31 - Aloe - Beta - 8B 也優於其他醫療模型,如 Llama3 - OpenBioLLM 和 Llama3 - Med42。通過提示技術,Llama3 - Aloe - 8B - Beta 的性能顯著提高,特別是 Medprompting 使報告的準確率提高了 7%。
環境影響
屬性 | 詳情 |
---|---|
硬件類型 | 32xH100 |
使用時長(8B) | 544 GPU 小時 |
使用時長(70B) | 4500 GPU 小時 |
硬件提供商 | 巴塞羅那超級計算中心(BSC) |
計算區域 | 西班牙 |
碳排放 | 34.1 kg CO₂ |
作者
Aloe Beta 由 高性能人工智能 研究小組開發,該小組來自 巴塞羅那超級計算中心 - BSC。主要作者包括 Jordi Bayarri Planas、[Ashwin Kumar Gururajan](https://huggingface.co/G - AshwinKumar) 和 Dario Garcia - Gasulla。紅隊工作由 Adrian Tormos 領導。郵箱:mailto:hpai@bsc.es
引用
如果你在發表的作品中使用了此倉庫,請引用相應的論文:
@article{garcia2025aloe,
title={The Aloe Family Recipe for Open and Specialized Healthcare LLMs},
author={Garcia - Gasulla, Dario and Bayarri - Planas, Jordi and Gururajan, Ashwin Kumar and Lopez - Cuena, Enrique and Tormos, Adrian and Hinjos, Daniel and Bernabeu - Perez, Pablo and Arias - Duart, Anna and Martin - Torres, Pablo Agustin and Gonzalez - Mallo, Marta and others},
year={2025},
eprint={2505.04388},
archivePrefix={arXiv},
}
⚠️ 重要提示
這些模型不得用於臨床實踐、醫療診斷或任何形式的直接或間接醫療建議。模型容易出錯,可能會產生有害內容。嚴禁將 Aloe 模型用於對個人有害的活動,如垃圾郵件、欺詐或冒充。未成年人在沒有監督的情況下不得獨自與 Aloe 進行交互。
💡 使用建議
鼓勵將 Aloe 用於研究目的,作為構建更好的醫療基礎模型的基石。在生產環境中,Aloe 應始終在人類專家的監督下使用。通過提示技術(如 Medprompting)可以顯著提高模型的性能。



