-
凌晨一点,突发剧烈头痛,视力也开始模糊。在这种紧急情况下,使用通用AI助手寻求建议,往往只能得到“请及时就医”这样正确但无用的回答。用户真正需要的,是具备初步症状识别、风险评估和就医指引能力的专业助手。这正是当前通用大模型在医疗场景中的典型短板:● 缺乏专业医学知识体系,无法进行症状关联分析● 回答过于保守,难以提供具针对性的分级建议● 无法识别症状组合背后的潜在疾病类型差异现在,通过LLaMA-Factory Online平台,我们只需要2小时,就能基于CareGPT和Qwen3-8B模型,系统性地构建一个真正“懂症状、能判断”的智能医疗助手。实际效果对比如下:用户提问:“我突然剧烈头痛,视力模糊,可能是什么原因?通用模型回答虽然结构完整,但存在明显不足:建议过于保守,仅笼统地建议“观察症状”和“及时就医”,缺乏具体的风险评估和紧急情况指引,对急性症状的响应不够充分。微调后的医疗助手回答展现出明显的改进,回答涵盖了更全面的病因分析,从眼部问题到颅内状况,从血压因素到偏头痛,提供了更具参考价值的医学信息。虽然仍有优化空间,但已经展现出从“通用回复”到“专业解答”的明显进步。 这种具备症状初步分析、风险评估和明确就医指引的专业回应,正是通过CareGPT医疗语料与Qwen3-8B的高效微调实现的。在接下来的内容中,我将完整演示如何通过LLaMA Factory Online平台,在2小时内完成从数据准备、模型微调到效果验证的全流程。配置概览说明配置参数配置项是否预置说明模型Qwen3-8B是Qwen3-8B是一款轻量化的开源大语言模型,具备较强的通用语言理解与生成能力,支持多场景适配,且在医疗等垂直领域可通过领域适应训练进一步优化专业性,适配中小规模算力需求,兼顾性能与部署灵活性。数据集ChatMed_Consult_Dataset和HuatuoGPT2-SFT-GPT4-140K否ChatMed_Consult_Datase由Wei Zhu主导构建,是中文医疗问诊数据集,补全中文医疗LLM训练数据,供模型微调;HuatuoGPT2-SFT-GPT4-140K由FreedomIntelligence团队打造,是大规模中文医疗指令微调数据集,借GPT-4生成优质响应,提升医疗LLM指令能力,支撑监督微调。GPUH800*4(推荐)-模型规模较大,建议配置足够显存。微调方法lora-显著降低计算与存储成本,兼具高性能与部署灵活性。资源消耗预计使用推荐资源(H800*4)进行微调时微调过程总时长约2h16min。具体操作步骤步骤一:数据准备1. 下载数据集。数据集下载完成后,需上传至文件管理。● 下载ChatMed_Consult_Dataset数据集。● 下载HuatuoGPT2-SFT-GPT4-140K数据集。 2. 数据格式转换。LLaMA Factory作为主流的大语言模型微调框架,对医疗问诊类数据有明确的格式要求(需包含instruction、input、output核心字段,支持多轮对话的history字段可选)。针对ChatMed_Consult_Dataset数据集原有的 “query-response” 二元结构,需通过字段映射与格式重构,将其转换为LLaMA Factory兼容的数据格式。数据格式转换的具体步骤如下:a. 进入LLaMA-Factory Online平台,单击“控制台”,进入控制台后单击左侧导航栏的“实例空间”,然后在页面单击“开始微调”。 b. 在弹出的页面选择“CPU”,核数选择“2核”,然后单击“启动”。 c. 实例启动后,单击[VSCode处理专属数据]页签,进入VSCode编辑页面。您也可以根据需要打开JupyterLab处理数据,本示例指导您通过VSCode处理数据。d. 在VSCode页面左侧user-data/datasets目录下(如图①)新建一个.py后缀的文件(如图②),然后复制以下命令至文件中(如图③)。import json import pandas as pd import jsonlines from typing import List, Dict def chatmed_to_llamafactory( input_path: str, output_path: str, instruction: str = "你是专业的医疗咨询助手,请根据用户的医疗问诊需求,提供准确、易懂的疾病解答、治疗建议与日常注意事项,回答需符合医学常识,同时提示用户最终需咨询专业医生确认诊断。" ) -> None: raw_data: List[Dict] = [] with jsonlines.open(input_path, "r") as f: for line in f: raw_data.append(line) llamafactory_data: List[Dict] = [] for idx, item in enumerate(raw_data): try: if "query" not in item or "response" not in item: print(f"跳过第{idx+1}条数据:缺失query或response字段") continue converted_item = { "instruction": instruction, "input": item["query"].strip(), "output": item["response"].strip(), "history": [] } llamafactory_data.append(converted_item) except Exception as e: print(f"处理第{idx+1}条数据时出错:{str(e)},已跳过") continue with open(output_path, "w", encoding="utf-8") as f: json.dump(llamafactory_data, f, ensure_ascii=False, indent=2) print(f"转换完成!原始数据共{len(raw_data)}条,有效转换{len(llamafactory_data)}条,输出路径:{output_path}") if __name__ == "__main__": INPUT_FILE = "./ChatMed_Consult-v0.3.json" OUTPUT_FILE = "./datasets/multi-med.json" chatmed_to_llamafactory( input_path=INPUT_FILE, output_path=OUTPUT_FILE, ) e. VSCode页面,新建一个终端,依次执行以下命令,进行数据格式转换(如图①和②)。conda activate /opt/conda/envs/lf python testshuju.py 💡提示testshuju.py为本示例新建的文件,请根据您的实际情况进行替换。回显信息如图③所示,说明数据格式转换成功,且转换后的数据存放在/datasets/multi-med.json中,即原数据集文件ChatMed_Consult_Dataset经格式转换后生成新的数据集文件multi-med。 3. 数据集检测。a. 返回LLaMA-Factory Online控制台,单击左侧导航栏的“文件管理”。b. 单击目标数据集右侧“操作”列的"数据集检测",检测数据集。如下图所示,若“数据集格式检测”结果显示“符合”,则表示数据集符合格式要求。 步骤二:模型微调1. 进入LLaMA-Factory Online平台,单击“控制台”,进入控制台后单击左侧导航栏的“模型微调”进入页面。2. 选择模型和数据集,进行参数配置。○ 本实践使用平台内置的Qwen3-8B作为基础模型(如图①),数据集为ChatMed_Consult_Dataset(multi-med)和HuatuoGPT2-SFT-GPT4-140K(如图②)。○ 训练配置:选择“专家微调”(如图③);“训练轮数”配置为“2”,“单CPU批处理大小”配置为“24”(如图④)。○ 分布式配置:打开“DeepSpeed”开关(如图⑤)。○ 资源配置:推荐卡数为4卡(如图⑥)。○ 选择价格模式:本实践选择“极速尊享”(如图⑦)。○ 开始训练:单击“开始训练”,开始模型训练。 💡提示配置模型与数据集后,系统将根据所需资源及其相关参数,动态预估任务运行时长及微调费用,您可在页面底部查看预估结果。 3. 通过任务中心查看任务状态。 在左侧边栏选择“任务中心”,在“模型微调”页面即可看到刚刚提交的任务。 单击任务框,可查看任务的详细信息、超参数、训练追踪和日志。 4. 任务完成后,模型自动保存在"文件管理->模型->output"文件夹中。可在"任务中心->基本信息->模型成果"处查看保存路径。 步骤三:模型评估1. 单击页面左侧导航栏的“模型评估”,进行评估训练配置。2. 微调模型选择上一步骤微调后的模型(如图①),评估数据集为ChatMed_Consult_Dataset(multi-med)和HuatuoGPT2-SFT-GPT4-140K(如图②)。然后配置如下参数(如图③):○ 单GPU批处理大小:设置为32。○ 截断长度:设置为2048。○ 最大生成长度:设置为1024。其他参数设置为默认即可。 💡提示配置模型与数据集后,系统将根据所需资源及其相关参数,动态预估任务运行时长及微调费用,您可在页面底部查看预估结果。 3. 可以在“任务中心->模型评估”下看到评估任务的运行状态。 4. 单击图标,进入任务基本信息查看页面。用户可查看评估任务的基本信息、日志以及评估结果。 步骤四:模型对话1. 单击页面左侧导航栏“模型对话”,进入模型对话页面。2. 在微调模型处选择目标模型名称(如图①),单击右上角“开始对话”(如图②),在弹出的对话框单击“立即对话”。 3. 在右侧配置栏的“System Prompt”处输入提示词(如图①),在输入框中输入问题(如图②),单击发送;在对话框中查看对话详情(如图③)。 本次基于Qwen3-8B模型,采用LoRA方法在专业医疗数据集上的微调实践表明,该技术方案在保持模型通用能力的同时,显著提升了医疗问答的专业性和实用性。从技术演进角度看,微调后的模型与医疗系统深度融合将释放更大价值。这种"领域微调+系统集成"的技术路径,为AI在医疗等专业场景的落地提供了经过验证的解决方案。作为长期专注于大模型产业落地的技术架构师,我认为LLaMA-Factory Online平台为领域适配提供了高效的工程化路径,这种轻量化微调方案兼具效率与实用性,值得在更多专业场景中推广验证。PS.如何学习AI大模型?作为一名深耕大模型微调领域多年的技术架构师,我深知“纸上得来终觉浅”。在见证了上百个微调项目的成功与失败后,我深刻认识到,拥有一个清晰的学习路径和经过验证的实战资源是多么关键。为此,我特意整理了全套《大模型微调实战进阶宝典》,这份资料凝聚了我多年的实战经验,其中包含:《大模型微调实战避坑指南》:精选20+真实项目经验,解析训练发散、灾难性遗忘等高频难题《十大前沿行业微调白皮书》:汇集金融、医疗、汽车、法律、保险等众多领域大模型先锋案例《开箱即用微调数据集精选》:涵盖指令微调、对话、专业领域问答与代码生成等多个实战场景愿你能用它,快速撬动大模型在你业务中的巨大价值!
-
1. 下载模型权重 安装python环境 conda create -n qwq_model python==3.13.6 conda activate qwq_model pip install modelscope 通过 modelscope SDK下载模型(https://www.modelscope.cn/models/Qwen/QwQ-32B)到制定目录 mkdir -p /usr/local/data/model_list/model/QwQ-32B modelscope download --model Qwen/QwQ-32B --local_dir /usr/local/data/model_list/model/QwQ-32B 2. 部署模型 vim /etc/sysctl.conf 设置 net.ipv4.ip_forward的值为1 source /etc/sysctl.conf docker pull swr.cn-southwest-2.myhuaweicloud.com/atelier/pytorch_ascend:pytorch_2.5.1-cann_8.2.rc1-py_3.11-hce_2.0.2503-aarch64-snt9b-20250729103313-3a25129 启动容器 docker run -itd \--device=/dev/davinci0 \--device=/dev/davinci1 \--device=/dev/davinci2 \--device=/dev/davinci3 \-v /etc/localtime:/etc/localtime \-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \-v /etc/ascend_install.info:/etc/ascend_install.info \--device=/dev/davinci_manager \--device=/dev/devmm_svm \--device=/dev/hisi_hdc \-v /var/log/npu/:/usr/slog \-v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \-v /sys/fs/cgroup:/sys/fs/cgroup:ro \-v /usr/local/data/model_list/model:/usr/local/data/model_list/model \--net=host \--name vllm-qwen \91c374f329e4 \/bin/bash 来到容器环境 docker exec -it -u ma-user ${container_name} /bin/bashdocker exec -it -u ma-user vllm-qwen /bin/bash设置容器里的参数export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 export VLLM_PLUGINS=ascend # VPC网段# 需用户手动修改,修改方式见下方注意事项VPC_CIDR="192.168.0.0/16" VPC_PREFIX=$(echo "$VPC_CIDR" | cut -d'/' -f1 | cut -d'.' -f1-2)POD_INET_IP=$(ifconfig | grep -oP "(?<=inet\s)$VPC_PREFIX\.\d+\.\d+" | head -n 1)POD_NETWORK_IFNAME=$(ifconfig | grep -B 1 "$POD_INET_IP" | head -n 1 | awk '{print $1}' | sed 's/://')echo "POD_INET_IP: $POD_INET_IP"echo "POD_NETWORK_IFNAME: $POD_NETWORK_IFNAME" # 指定通信网卡export GLOO_SOCKET_IFNAME=$POD_NETWORK_IFNAMEexport TP_SOCKET_IFNAME=$POD_NETWORK_IFNAMEexport HCCL_SOCKET_IFNAME=$POD_NETWORK_IFNAME# 多机场景下配置export RAY_EXPERIMENTAL_NOSET_ASCEND_RT_VISIBLE_DEVICES=1 # 开启显存优化export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True# 配置通信算法的编排展开位置在Device侧的AI Vector Core计算单元export HCCL_OP_EXPANSION_MODE=AIV# 指定可使用的卡,按需指定export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7# 指定绑核,按需指定export CPU_AFFINITY_CONF=1export LD_PRELOAD=/usr/local/lib/libjemalloc.so.2:${LD_PRELOAD}# 默认启用 ascend-turbo-graph模式,指定启动插件export VLLM_PLUGINS=ascend_vllm# 如果使用 acl-graph 或者 eager 模式,指定启动插件 # export VLLM_PLUGINS=ascend# 指定vllm后端 v1export VLLM_USE_V1=1# 指定vllm版本export VLLM_VERSION=0.9.0 export USE_MM_ALL_REDUCE_OP=1export MM_ALL_REDUCE_OP_THRESHOLD=256 # 不需要设置以下环境变量unset ENABLE_QWEN_HYPERDRIVE_OPTunset ENABLE_QWEN_MICROBATCHunset ENABLE_PHASE_AWARE_QKVO_QUANTunset DISABLE_QWEN_DP_PROJ source /home/ma-user/AscendCloud/AscendTurbo/set_env.bash 运行API服务 nohup python -m vllm.entrypoints.openai.api_server \--model /usr/local/data/model_list/model/QwQ-32B \--max-num-seqs=256 \--max-model-len=512 \--max-num-batched-tokens=512 \--tensor-parallel-size=4 \--block-size=128 \--host=192.168.0.127 \--port=18186 \--gpu-memory-utilization=0.95 \--trust-remote-code \--no-enable-prefix-caching \--additional-config='{"ascend_turbo_graph_config": {"enabled": true}, "ascend_scheduler_config": {"enabled": true}}' > QwQ-32B.log 2>&1 & port端口号可以自定义,勿与已经使用的端口号冲突 3. 验证API服务 验证服务 curl http://192.168.0.127:18186/v1/completions \-H "Content-Type: application/json" \-d '{ "model": "/usr/local/data/model_list/model/QwQ-32B", "prompt": "What is moon","max_tokens": 64,"temperature": 0.5 }'
-
在华为云有什么适合部署小模型的服务器?
-
前言大家好,我是“流明”团队的队长,非常荣幸参加域见杯赛题二“智能临床咨询模型”,获得了B榜第四名,这里做一个简单的分享,一起交流学习。分享数据分析主要讲了一些预模型的重要性,脱敏数据对模型本身不太友好,如果想要达到理想的效果需要重新预训练,其次就是简单提到了数据的长度分布和一些数据的特点。模型选择根据线上的分数最终选择T5作为单模型,简单讲了模型的基本结构。训练策略上用到了数据增强,余弦退火,标签平滑,对比训练,对抗训练, ema这些技巧都是可以提升分数的一个技巧,至少在我们团队做的t5-base实验是有用的最终t5-base单模型在初赛上第三,复赛第4这个一个分数,整个方案相对来说比较简单,不足写的也是比较多的。感想首先就是感谢广州市科学技术局、金域医学以及华为云提供的这次竞赛机会,其次就是认识了一些小伙伴,最后对于我个人来说最近比较疲于奔命,很多事情做不到尽善尽美,越来越希望在有限的时间里做一些简单尽所能及的事情。
-
前言大家好,我是“中文GPT”团队的队长,这次比赛我和我的两个小伙伴一起参加域见杯赛题一“智能临床咨询模型”,获得了B榜第四名,在这里我们做一个简单的分享,一起交流学习。分享首先了解一下赛题一的赛题背景和数据集,简单表示为根据用户咨询医疗检测项目的真实临床问答数据,训练一个智能问答模型,辅助医生决策,训练集和验证集共2788条。然后我们针对question和answer做了一个简单的长度分布统计。根据数据集长度分布情况,可以得知question的长度分布较短,在125以内,answer的长度分布较长,在400以内,这要求模型需要具备丰富的医疗问答知识才能够回答,所以我们在后续进行了领域数据扩充。此外,赛题还存在其他两个问题,一是数据集专业性强,与通用的医疗问答数据相似度不高,选择领域数据时也是需要合理的筛选,二是线上推理条件限制CPU2核8GB,这要求我们需选择一些满足推理条件的模型。下面对我们的方法进行介绍,方案整体设计流程框架如下图所示,主要分为领域数据训练、微调、解码生成三个阶段:对于领域数据训练,我们构建了一个医疗领域通用问答数据,选择bart-large模型进行领域数据训练,丰富模型的医疗知识内容;然后基于领域数据训练的权重,进一步对赛题任务数据进行微调;最后通过beam search的解码策略生成文本。在模型选择上,baseline提供的是T5-pegaus模型,不过经过测试,bart模型应该是效果相对较好的,所以我们选择了bart-large模型。解码策略上,beamsearch策略比默认的贪心解码策略效果好不少,并且开大beam有一定的提升。对于医疗领域通用问答数据的构建,我们选择华佗GPT等模型开源的数据以及爬取了其他医疗检测公司的类似检测项目数据,构成了模型的领域数据。除此上述方案,我们也尝试过使用Bart预训练任务重的Text infilling任务来做mask继续预训练替换领域数据训练阶段,然后再进行微调,也有一定的提升效果,当然也做过其他nlp比赛常见的训练tirck,例如:fgm、ema、rdrop、childtune等都没什么涨点。接着是对模型的训练策略进行介绍,与baseline不同,我们选择了adamw作为优化器,调整学习策略为线性衰减,并且使用标签平滑,同时在不同的训练阶段我们进行了阶段性调整学习率,使得模型更加拟合赛题任务数据。感想第一次参加医疗检测方面的AI比赛,学习到了不少。同时感谢广州市科学技术局、金域医学以及华为云提供的这次竞赛机会,让我们团队三个网友来了一次线下见面,此外,也通过这次竞赛认识到了其他团队中的各位大佬。
-
想做一个系统生成器,需要一款相对成熟的AI代码生成器,求推荐
-
嫄予事少年,貌古须加举。叶索欲时珠,东行戎服景。有点意思~
-
技术云诗句编写与查看............
-
python加入字典的代码怎么打啊
-
已完成
-
云实践AI与诗词已经完成
-
各位有没有知道的后面呢,需要干什么
-
无论将生成好的hdf5数据文件放在哪个目录下,都会出现如上报错
-
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签