模型概述
模型特點
模型能力
使用案例
🚀 蘆薈(Aloe):全新醫療大語言模型家族
蘆薈(Aloe)是一個全新的醫療大語言模型(LLM)家族。通過模型融合和先進的提示策略,它在同類型的所有開源模型中極具競爭力,並在其規模下達到了最先進的水平。由於結合了紅隊測試和對齊工作,蘆薈在衡量倫理和事實性的指標上得分很高。後續將分享完整的訓練細節、模型融合配置以及所有訓練數據(包括合成生成的數據)。此外,本研究中用於在推理過程中取得最先進結果的提示倉庫也將一併公開。蘆薈還附帶了特定於醫療保健的風險評估,以促進此類系統的安全使用和部署。

🎉 蘆薈(Aloe)家族最新版本現已發佈!蘆薈β 8B 和 蘆薈β 70B 版本,具備以下特性:
- 整體性能更優
- 對齊和安全性更完善
- 許可證更具通用性
✨ 主要特性
- 通過模型融合和先進的提示策略,在同規模模型中達到最先進水平。
- 在衡量倫理和事實性的指標上得分較高。
- 後續將分享完整訓練細節、模型融合配置和所有訓練數據。
- 附帶醫療保健特定的風險評估,促進系統安全使用和部署。
📦 安裝指南
文檔未提供安裝步驟,暫不展示。
💻 使用示例
基礎用法
import transformers
import torch
model_id = "HPAI-BSC/Llama3-Aloe-8B-Alpha"
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-Aloe-8B-Alpha"
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))
📚 詳細文檔
模型詳情
模型描述
屬性 | 詳情 |
---|---|
開發者 | HPAI |
模型類型 | 因果解碼器型Transformer語言模型 |
語言 | 主要為英語 |
許可證 | 該模型基於Meta Llama 3 8B構建,遵循 Meta Llama 3許可證。所有修改內容採用 CC BY-NC 4.0 許可證。 |
微調基礎模型 | meta-llama/Meta-Llama-3-8B |
模型來源
- 倉庫:https://github.com/HPAI-BSC/prompt_engine (更多內容即將發佈)
- 論文:https://arxiv.org/abs/2405.01886 (更多內容即將發佈)
模型性能
蘆薈模型已在最流行的醫療問答數據集上進行了測試,使用和不使用醫學提示推理技術均有測試。結果顯示,它具有很強的競爭力,甚至能與更大的模型相媲美。
使用先進提示方法(即Medprompt)的結果是通過 此倉庫 實現的,該倉庫已隨本研究公開。
使用場景
直接使用
我們鼓勵將蘆薈模型用於研究目的,作為構建更好的醫療基礎模型的墊腳石。
非適用場景
這些模型不得用於臨床實踐、醫學診斷或任何形式的直接或間接醫療建議。模型可能會出錯,並且可能會產生有害內容。禁止將蘆薈模型用於對個人有害的活動,如垃圾郵件、欺詐或冒充等。
偏差、風險和侷限性
我們考慮了三種風險情況:
- 冒充醫療專業人員:這是一種欺詐行為,目前已造成了數十億美元的 利潤。像蘆薈這樣的模型可能會被用於提高此類欺騙活動的效率,使其更加普遍。主要的預防措施包括提高公眾對數字化信息不可靠性的認識、強調醫療註冊的重要性,以及制定強制要求標註AI生成內容的法律法規。
- 無專業監督的醫療決策:雖然這在現代社會中已經是一個問題(如自我用藥),但像蘆薈這樣能夠生成高質量對話數據的模型,可能會助長自我欺騙,尤其是在存在諂媚的情況下。通過生成定製化的回覆,它還可以用於生成可操作的答案。提高公眾對自我診斷危險的認識,以及在模型輸出中添加免責聲明和警告,是主要的防禦措施。
- 獲取危險物質或程序的信息:雖然關於敏感內容的文獻已經可以在不同的來源(如圖書館、互聯網、暗網)中找到,但大語言模型可以集中獲取這些信息,使得控制此類信息的流動幾乎變得不可能。模型對齊在這方面可能會有所幫助,但到目前為止,效果仍然不足,因為越獄方法仍然可以繞過它。
下表顯示了蘆薈模型在幾個AI安全任務中的表現:
建議
我們在訓練中避免使用所有個人數據。但模型的安全性無法得到保證,蘆薈模型在特定提示下可能會產生有害內容。因此,未成年人在沒有監督的情況下不應單獨與蘆薈模型進行交互。
評估
測試數據、因素和指標
測試數據
指標
- 準確率:適用於評估多項選擇題問答任務。
結果
總結
為了將蘆薈模型與最具競爭力的開源模型(包括通用模型和醫療特定模型)進行比較,我們使用了流行的醫療數據集(PubMedQA、MedMCQA、MedQA和僅用於六項醫療任務的MMLU),以及全新且高度可靠的CareQA數據集。我們計算了標準的MultiMedQA分數作為參考,方法是計算除CareQA之外所有分數的加權平均準確率。此外,我們還計算了所有數據集的算術平均值。醫學MMLU分數是通過對六項醫學子任務(解剖學、臨床知識、大學生物學、大學醫學、醫學遺傳學和專業醫學)的得分進行平均得出的。
基準測試結果表明,蘆薈模型的訓練使其性能優於Llama3-8B-Instruct。Llama3-Aloe-8B-Alpha甚至超過了像Meditron 70B這樣的大型模型,並且接近像Yi-34這樣的大型基礎模型。對於前者,即使使用SC-CoT方法並採用其報告的最佳變體,這種優勢仍然存在。所有這些結果使Llama3-Aloe-8B-Alpha成為同規模下最佳的醫療大語言模型。
藉助提示技術,Llama3-Aloe-8B-Alpha的性能得到了顯著提升。特別是Medprompt提示方法使報告的準確率提高了7%,在此之後,Llama3-Aloe-8B-Alpha僅落後於規模大十倍的Llama-3-70B-Instruct。這種改進在各個醫學領域基本保持一致。使用Medprompt提示的Llama3-Aloe-8B-Alpha在MMLU醫學測試中擊敗了使用自我報告的20次射擊SC-CoT方法的Meditron 70B,在其他基準測試中表現略遜一籌。
環境影響
屬性 | 詳情 |
---|---|
硬件類型 | 4xH100 |
使用時長 | 7000小時 |
硬件提供商 | 巴塞羅那超級計算中心 |
計算區域 | 西班牙 |
碳排放 | 439.25千克 |
🔧 技術細節
訓練詳情
在Llama 3 8B的基礎上進行監督微調,使用醫療和通用領域的數據集,採用DARE-TIES過程進行模型融合,並使用兩階段DPO過程進行人類偏好對齊。更多細節即將公佈。
訓練數據
- 醫療領域數據集,包括使用Mixtral-8x7B和Genstruct生成的合成數據
- HPAI-BSC/pubmedqa-cot
- HPAI-BSC/medqa-cot
- HPAI-BSC/medmcqa-cot
- LDJnr/Capybara
- hkust-nlp/deita-10k-v0
- jondurbin/airoboros-3.2
- argilla/dpo-mix-7k
- nvidia/HelpSteer
- 自定義偏好數據,包含從Anthropic Harmless、Chen等人的研究以及原始提示中生成的對抗性提示
📄 許可證
本模型基於Meta Llama 3 8B構建,遵循 Meta Llama 3許可證。所有修改內容採用 CC BY-NC 4.0 許可證。
模型卡片作者
模型卡片聯繫方式
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}
}



