❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
🚀 快速阅读
- 医疗推理能力:Baichuan-M1-14B 在医疗领域表现出色,能够处理复杂的医疗问题,提供精准的医学推理和建议。
- 多语言支持:模型支持中英双语,能够处理多语言的医疗数据,适用于全球医疗场景。
- 开源可商用:Baichuan-M1-14B 是开源模型,支持低成本部署和多语言应用,推动医疗 AI 生态的建设。
正文(附运行示例)
Baichuan-M1-14B 是什么
Baichuan-M1-14B 是百川智能推出的行业首个开源医疗增强大模型,专为医疗场景优化,同时具备强大的通用能力。该模型基于 20 万亿 token 的高质量医疗与通用数据训练,涵盖 20 多个医疗科室的细粒度专业知识。在医疗推理和知识问答方面表现出色,性能可达到比自身参数量大五倍的模型水平。
Baichuan-M1-14B 的核心优势在于创新的模型结构和训练方法。引入了短卷积注意力机制、滑动窗口注意力机制和优化位置编码震荡等技术,提升了上下文理解和长序列任务的表现。模型采用多阶段课程学习和对齐优化方法,通过强化学习优化生成质量和逻辑推理能力。
Baichuan-M1-14B 的主要功能
- 强大的医疗推理能力:Baichuan-M1-14B 在医疗领域表现出色,能够处理复杂的医疗问题,提供精准的医学推理和建议。
- 多语言支持:模型支持中英双语,能够处理多语言的医疗数据,适用于全球医疗场景。
- 开源可商用:Baichuan-M1-14B 是开源模型,支持低成本部署和多语言应用,推动医疗 AI 生态的建设。
- 医疗循证模式:模型解锁了“医疗循证模式”,能通过多层级证据分级体系,对不同权威等级的证据进行分析与整合,提供可靠的医疗推理。
- 多领域推理能力:Baichuan-M1-14B 在语言推理、视觉推理和搜索推理等多个领域展现了全面的推理能力。
Baichuan-M1-14B 的技术原理
- 数据收集与处理:模型训练基于 20 万亿 token 的高质量医疗与通用数据,涵盖 20+ 医疗科室,数据按医疗科室、内容和价值进行分类,确保数据分布均衡。
- 创新模型结构:引入短卷积注意力机制、滑动窗口注意力机制和优化位置编码震荡等技术,提升上下文理解和长序列任务的表现。
- 多阶段训练方法:通过通识能力提升、医疗基础知识提升和医疗进阶知识提升三个阶段,逐步优化模型的通用能力与医疗领域能力。
- 强化学习优化:采用 ELO、TDPO 和 PPO 等强化学习技术,优化生成质量和逻辑推理能力。
如何运行 Baichuan-M1-14B
1. 使用 Hugging Face Transformers 加载模型
以下代码展示了如何使用 Baichuan-M1-14B-Instruct 模型进行推理:
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
# 1. 加载预训练模型和分词器
model_name = "baichuan-inc/Baichuan-M1-14B-Instruct"
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_name, trust_remote_code=True, torch_dtype=torch.bfloat16).cuda()
# 2. 输入提示文本
prompt = "May I ask you some questions about medical knowledge?"
# 3. 编码输入文本
messages = [
{
"role": "system", "content": "You are a helpful assistant."},
{
"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
# 4. 生成文本
generated_ids = model.generate(**model_inputs, max_new_tokens=512)
generated_ids = [output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)]
# 5. 解码生成的文本
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
# 6. 输出结果
print("Generated text:")
print(response)
资源
- GitHub 仓库:https://github.com/baichuan-inc/Baichuan-M1-14B
- HuggingFace 仓库(Base 模型):https://huggingface.co/baichuan-inc/Baichuan-M1-14B-Base
- HuggingFace 仓库(Instruct 模型):https://huggingface.co/baichuan-inc/Baichuan-M1-14B-Instruct
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦