Medical-Llama3-8B-16bit:针对医疗问答优化的Llama3模型ruslanmv/Medical-Llama3-8B · Hugging Face

环球医讯 / AI与医疗健康来源:huggingface.co国际 - 英语2025-10-02 19:20:25 - 阅读时长5分钟 - 2399字
Medical-Llama3-8B是由开发者ruslanmv基于Meta-Llama-3-8B微调的医疗专用AI模型,专为回答医疗健康问题而设计。该模型利用AI医疗聊天机器人数据集进行训练,能够生成信息丰富的医疗建议,涵盖症状分析、疾病解释等内容。文章详细介绍了模型的安装方法、使用示例及代码实现,并强调该模型仅用于信息参考,不能替代专业医疗建议。作为开源项目,它采用Apache-2.0许可证分发,鼓励社区贡献,为医疗AI领域的发展提供了重要工具,同时确保用户了解其局限性和使用边界。
Medical-Llama3-8B-16bit医疗问答健康相关查询医疗数据集甲状腺功能减退症症状诊断治疗方案专业医疗建议
Medical-Llama3-8B-16bit:针对医疗问答优化的Llama3模型

Medical-Llama3-8B-16bit:针对医疗问答优化的Llama3模型

该代码库提供了一个强大的Llama3 8B模型的微调版本,专门设计用于以信息丰富的方式回答医疗问题。它利用了AI医疗聊天机器人数据集(ruslanmv/ai-medical-chatbot)中包含的丰富知识。

模型与开发

  • 开发者: ruslanmv
  • 许可证: Apache-2.0
  • 微调自模型: meta-llama/Meta-Llama-3-8B

主要特点

  • 医疗重点: 优化用于解决与健康相关的查询。
  • 知识库: 在全面的医疗聊天机器人数据集上进行训练。
  • 文本生成: 生成信息丰富且可能有帮助的回复。

安装

此模型可通过Hugging Face Transformers库访问。使用pip安装:

pip install transformers bitsandbytes accelerate

使用示例

以下是一个Python代码片段,演示如何与Medical-Llama3-8B-16bit模型交互并生成对您医疗问题的回答:

from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig

import torch

model_name = "ruslanmv/Medical-Llama3-8B"

device_map = 'auto'

bnb_config = BitsAndBytesConfig(load_in_4bit=True, bnb_4bit_quant_type="nf4", bnb_4bit_compute_dtype=torch.float16,)

model = AutoModelForCausalLM.from_pretrained(

model_name,

quantization_config=bnb_config,

trust_remote_code=True,

use_cache=False,

device_map=device_map

)

tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)

tokenizer.pad_token = tokenizer.eos_token

def askme(question):

sys_message = '''

You are an AI Medical Assistant trained on a vast dataset of health information. Please be thorough and

provide an informative answer. If you don't know the answer to a specific medical inquiry, advise seeking professional help.

'''

创建符合聊天模板结构的消息

messages = [{"role": "system", "content": sys_message}, {"role": "user", "content": question}]

应用聊天模板

prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)

inputs = tokenizer(prompt, return_tensors="pt").to("cuda")

outputs = model.generate(**inputs, max_new_tokens=100, use_cache=True)

提取并返回生成的文本,去除提示

response_text = tokenizer.batch_decode(outputs)[0].strip()

answer = response_text.split('<|im_start|>assistant')[-1].strip()

return answer

示例用法

- 上下文:首先描述您的问题

- 问题:然后提出您的问题

question = '''我是一名35岁的男性,过去几个月一直感到疲劳、

对寒冷敏感度增加,以及皮肤干燥发痒。

这些症状是否可能与甲状腺功能减退症有关?

如果是,我应该采取哪些步骤进行正确诊断并讨论治疗方案?'''

print(askme(question))

回答类型示例:

根据您的描述,您可能正在经历甲状腺功能减退症的症状。甲状腺功能减退症是一种甲状腺激素分泌不足的状况,会导致多种症状。常见症状包括疲劳、体重增加、便秘和皮肤干燥。如果您出现这些症状中的任何一种,重要的是去看医生进行正确诊断和制定治疗计划。您的医生可能会安排血液检查来检测您的甲状腺激素水平。

重要提示

此模型仅用于信息目的,不应替代专业医疗建议。对于任何医疗问题,请务必咨询合格的医疗保健提供者。

许可证

此模型根据Apache许可证2.0版分发(详见LICENSE文件)。

贡献

我们欢迎对本代码库的贡献!如果您有改进建议或想法,请随时创建拉取请求。

免责声明

尽管我们努力提供信息丰富的回复,但无法保证模型输出的准确性。对于确定的医疗建议,务必咨询医生或其他医疗专业人员。

【全文结束】

大健康
大健康