基础模型:
- Undi95/Llama-3-Unholy-8B
- Locutusque/llama-3-neural-chat-v1-8b
- ruslanmv/Medical-Llama3-8B-16bit
库名称: transformers
标签:
- mergekit
- merge
- medical
许可证: other
数据集:
- mlabonne/orpo-dpo-mix-40k
- Open-Orca/SlimOrca-Dedup
- jondurbin/airoboros-3.2
- microsoft/orca-math-word-problems-200k
- m-a-p/Code-Feedback
- MaziyarPanahi/WizardLM_evol_instruct_V2_196k
- ruslanmv/ai-medical-chatbot
模型索引:
- 名称: Medichat-Llama3-8B
结果:
- 任务:
类型: 文本生成
名称: 文本生成
数据集:
名称: AI2推理挑战赛(25样本)
类型: ai2_arc
配置: ARC-Challenge
分割: test
参数:
num_few_shot: 25
指标:
- 类型: acc_norm
值: 59.13
名称: 标准化准确率
来源:
url: >-
https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard?query=sethuiyer/Medichat-Llama3-8B
名称: Open LLM排行榜
- 任务:
类型: 文本生成
名称: 文本生成
数据集:
名称: HellaSwag(10样本)
类型: hellaswag
分割: validation
参数:
num_few_shot: 10
指标:
- 类型: acc_norm
值: 82.9
名称: 标准化准确率
来源:
url: >-
https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard?query=sethuiyer/Medichat-Llama3-8B
名称: Open LLM排行榜
- 任务:
类型: 文本生成
名称: 文本生成
数据集:
名称: MMLU(5样本)
类型: cais/mmlu
配置: all
分割: test
参数:
num_few_shot: 5
指标:
- 类型: acc
值: 60.35
名称: 准确率
来源:
url: >-
https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard?query=sethuiyer/Medichat-Llama3-8B
名称: Open LLM排行榜
- 任务:
类型: 文本生成
名称: 文本生成
数据集:
名称: TruthfulQA(0样本)
类型: truthful_qa
配置: multiple_choice
分割: validation
参数:
num_few_shot: 0
指标:
- 类型: mc2
值: 49.65
来源:
url: >-
https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard?query=sethuiyer/Medichat-Llama3-8B
名称: Open LLM排行榜
- 任务:
类型: 文本生成
名称: 文本生成
数据集:
名称: Winogrande(5样本)
类型: winogrande
配置: winogrande_xl
分割: validation
参数:
num_few_shot: 5
指标:
- 类型: acc
值: 78.93
名称: 准确率
来源:
url: >-
https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard?query=sethuiyer/Medichat-Llama3-8B
名称: Open LLM排行榜
- 任务:
类型: 文本生成
名称: 文本生成
数据集:
名称: GSM8k(5样本)
类型: gsm8k
配置: main
分割: test
参数:
num_few_shot: 5
指标:
- 类型: acc
值: 60.35
名称: 准确率
来源:
url: >-
https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard?query=sethuiyer/Medichat-Llama3-8B
名称: Open LLM排行榜
语言:
- en
Medichat-Llama3-8B
基于强大的LLaMa-3架构,并在大量健康信息数据集上进行了微调,该模型利用其丰富的医学知识提供清晰、全面的答案。
该模型通常能提供更准确且信息丰富的回答,特别适合寻求深入医疗建议的用户。
以下是用于生成该模型的YAML配置:
models:
- model: Undi95/Llama-3-Unholy-8B
parameters:
weight: [0.25, 0.35, 0.45, 0.35, 0.25]
density: [0.1, 0.25, 0.5, 0.25, 0.1]
- model: Locutusque/llama-3-neural-chat-v1-8b
- model: ruslanmv/Medical-Llama3-8B-16bit
parameters:
weight: [0.55, 0.45, 0.35, 0.45, 0.55]
density: [0.1, 0.25, 0.5, 0.25, 0.1]
merge_method: dare_ties
base_model: Locutusque/llama-3-neural-chat-v1-8b
parameters:
int8_mask: true
dtype: bfloat16
与Dr.Samantha 7B的对比
科目 |
Medichat-Llama3-8B准确率(%) |
Dr. Samantha准确率(%) |
临床知识 |
71.70 |
52.83 |
医学遗传学 |
78.00 |
49.00 |
人类衰老 |
70.40 |
58.29 |
人类性学 |
73.28 |
55.73 |
大学医学 |
62.43 |
38.73 |
解剖学 |
64.44 |
41.48 |
大学生物学 |
72.22 |
52.08 |
高中生物学 |
77.10 |
53.23 |
专业医学 |
63.97 |
38.73 |
营养学 |
73.86 |
50.33 |
专业心理学 |
68.95 |
46.57 |
病毒学 |
54.22 |
41.57 |
高中心理学 |
83.67 |
66.60 |
平均 |
70.33 |
48.85 |
当前模型在特定科目知识和准确率方面较之前的Dr. Samantha模型有显著提升。
使用方法:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
class MedicalAssistant:
def __init__(self, model_name="sethuiyer/Medichat-Llama3-8B", device="cuda"):
self.device = device
self.tokenizer = AutoTokenizer.from_pretrained(model_name)
self.model = AutoModelForCausalLM.from_pretrained(model_name).to(self.device)
self.sys_message = '''
您是一个基于大量健康信息数据集训练的AI医疗助手。请提供详尽且信息丰富的回答。如果对特定医疗问题不确定,建议寻求专业帮助。
'''
def format_prompt(self, question):
messages = [
{"role": "system", "content": self.sys_message},
{"role": "user", "content": question}
]
prompt = self.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
return prompt
def generate_response(self, question, max_new_tokens=512):
prompt = self.format_prompt(question)
inputs = self.tokenizer(prompt, return_tensors="pt").to(self.device)
with torch.no_grad():
outputs = self.model.generate(**inputs, max_new_tokens=max_new_tokens, use_cache=True)
answer = self.tokenizer.batch_decode(outputs, skip_special_tokens=True)[0].strip()
return answer
if __name__ == "__main__":
assistant = MedicalAssistant()
question = '''
症状:
头晕、头痛和恶心。
可能的鉴别诊断是什么?
'''
response = assistant.generate_response(question)
print(response)
量化版本
感谢Quant Factory,该模型的量化版本可在QuantFactory/Medichat-Llama3-8B-GGUF获取。
Ollama
该模型现已在Ollama上可用。您可以通过在终端运行ollama run monotykamary/medichat-llama3
命令来使用它。如果计算资源有限,可观看此视频了解如何在Google Colab后端运行。