LLaMA-Factory全流程训练模型

LLaMA-Factory全流程训练模型

 

f7b2c270ae3844559da67828c8d2f9f2.jpeg

🤗本文主要讲述在docker下使用LLaMA-Factory训练推理模型。

🫡拉取镜像

首先需要启动docker,然后在终端中输入:

docker run -tid --gpus all -p 8000:8000 --name LLM -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all --privileged=true ubuntu:20.04
  • 这个命令启动了一个 Ubuntu 20.04 容器,使用所有可用的 GPU
  • 主机的 8000 端口映射到容器的 8000 端口
  • 容器命名为 LLM,以特权模式运行容器

进入容器 

docker exec -it LLM /bin/bash

 

1ef5885b4e0748c8a10b8d7e3e31efdd.png

🥰但现在还不行,我们只将GPU映射到了docker里,还没有安装驱动。

wget https://developer.download.nvidia.com/compute/cuda/12.6.2/local_installers/cuda_12.6.2_560.35.03_linux.run

然后运行程序

sh cuda_12.6.2_560.35.03_linux.run

随后会生成一些指引,默认安装就行。

root@82c2f2b69781:/home# ls /usr/local/ | grep cuda cuda cuda-12.6 root@82c2f2b69781:/home# nvcc -V bash: nvcc: command not found
  • 这说明系统的 PATH 环境变量没有包含 /usr/local/cuda-12.6/bin
编辑环境变量 vim ~/.bashrc 加入下面两行: export PATH=/usr/local/cuda-12.6/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-12.6/lib64:$LD_LIBRARY_PATH 然后重新运行一下就生效了: source ~/.bashrc

 验证成功 ~

root@82c2f2b69781:/home# echo $PATH /usr/local/cuda-12.6/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 

🤗docker内安装python

docker拉取的Ubuntu20.04没有任何配置,比如wget等命令需要自己通过apt-get install 安装

Index of /ftp/python/3.10.6/ 这是python源码包的地址(3.10.6为例)

wget https://www.python.org/ftp/python/3.10.6/Python-3.10.6.tgz
tar -zxvf Python-3.10.6.tgz cd Python-3.10.6 sudo ./configure # configure 脚本会检查系统环境,并生成 Makefile 文件,以便后续的 make 命令可以正确编译源代码

🤗最后一步:

sudo make sudo make test sudo make install

💥LLaMA-Factory

💫安装

git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory pip install -e ".[torch,metrics]"

如果使用昇腾NPU的话,先设置一下环境变量:

export ASCEND_HOME_PATH=/usr/local/Ascend/ascend-toolkit/latest

 💫下载模型

git lfs install git clone https://www.modelscope.cn/Qwen/Qwen2.5-1.5B-Instruct.git

 💫我们在 LLaMA-Factory/examples下创建 train.yaml 文件,这是微调训练模型的配置文件

### model model_name_or_path: /home/Qwen/Qwen2___5-1___5B-Instruct ### method stage: sft do_train: true finetuning_type: freeze # lora_target: all dataset: alpaca_zh_demo template: qwen cutoff_len: 10240 max_samples: 1000 overwrite_cache: true preprocessing_num_workers: 16 ### output output_dir: output logging_steps: 10 save_steps: 500 plot_loss: true overwrite_output_dir: true ### train per_device_train_batch_size: 1 gradient_accumulation_steps: 2 learning_rate: 1.0e-4 num_train_epochs: 3.0 lr_scheduler_type: cosine warmup_ratio: 0.1 fp16: true ddp_timeout: 180000000 ### eval val_size: 0.1 per_device_eval_batch_size: 1 eval_strategy: steps eval_steps: 500 

💫使用vim写好后,我们使用 LLaMA-Factory/data/ alpaca_zh_demo.json这个数据集

ea3d2121e2e148bda8903f27d847e0f4.png
  •  instruction 部分描述了任务的具体指令。
  • input 部分通常包含任务所需的输入数据或信息。
  • output 部分是模型的输出。

 💫开始微调训练

llamafactory-cli train examples/train.yaml
68c34fc7986b430380b1cef3876d99d6.png

🕛️🕧️🕐️🕜️🕑️🕝️🕒️🕞️🕓️ 

ba73456fa00d459e8cfc25459fee0751.png
  • loss :模型在当前批次上的预测结果与实际标签之间的差异。
  • grad_norm:模型参数梯度的范数,反映梯度的大小,用于监控梯度爆炸或梯度消失的问题。
  • learning_rate:学习率是优化器在更新模型参数时使用的步长。
  • epoch:整个训练数据集被模型完整遍历的次数,一个 epoch 包含多个批次(batch)。
90378eaa5a0e4b4593cfc5840d124845.png

训练指标总结

***** train metrics ***** epoch = 3.0 total_flos = 2906404GF train_loss = 1.0846 train_runtime = 0:04:15.80 train_samples_per_second = 10.555 train_steps_per_second = 5.277
  • epoch: 训练的总轮次(3.0 个 epoch)。
  • total_flos: 训练过程中总共计算的浮点运算次数(2906404 亿次浮点运算)。
  • train_loss: 训练过程中的平均损失值(1.0846)。
  • train_runtime: 训练总共花费的时间(4 分 15.80 秒)。
  • train_samples_per_second: 每秒处理的样本数(10.555 个样本/秒)。
  • train_steps_per_second: 每秒处理的批次数(5.277 个批次/秒)。

💫 训练结束 ~

95c644db986e4062b30fb1edab2a40fb.png
  • 这是模型微调后产生的输出文件,包含了训练过程中生成的各种配置、权重、日志和结果 

💯这时我们可以加载这个训练后的模型权重来对话:

from transformers import AutoModelForCausalLM, AutoTokenizer import torch # 我们的模型输出路径 model_name_or_path = "/home/LLaMA-Factory/output" model = AutoModelForCausalLM.from_pretrained(model_name_or_path) tokenizer = AutoTokenizer.from_pretrained(model_name_or_path) device = "cuda" if torch.cuda.is_available() else "cpu" model.to(device) prompt = "列出一个应该在野营应急包中的7件物品。" inputs = tokenizer(prompt, return_tensors="pt").to(device) with torch.no_grad(): outputs = model.generate(inputs.input_ids, max_length=50) response = tokenizer.decode(outputs[0], skip_special_tokens=True) print(response)

💦输出:

cd674bee5c1948d3a8a9e47f402cd635.png

💯评估 

Llamafactory 支持mmlu、cmmlu、ceval三种数据集验证。

llamafactory-cli eval --task mmlu --model_name_or_path /home/Qwen/Qwen2___5-1___5B-Instruct --template qwen --batch_size 1 –n_shot 5
b12a371ddd3045d98f46049545052611.png

💯推理 

我们在LLaMA-Factory/examples 目录下新建一个 infer.yaml 文件进行推理,内容:

model_name_or_path: /home/Qwen/Qwen2___5-1___5B-Instruct template: qwen do_sample: false 

运行:

 llamafactory-cli chat infer.yaml
43bf526f46b44dc2a8b979e15b913637.png

Read more

【AI大模型前沿】蚂蚁开源Ring-lite:边缘计算新选择,2.75B激活参数、小模型大智慧

【AI大模型前沿】蚂蚁开源Ring-lite:边缘计算新选择,2.75B激活参数、小模型大智慧

系列篇章💥 No.文章1【AI大模型前沿】深度剖析瑞智病理大模型 RuiPath:如何革新癌症病理诊断技术2【AI大模型前沿】清华大学 CLAMP-3:多模态技术引领音乐检索新潮流3【AI大模型前沿】浙大携手阿里推出HealthGPT:医学视觉语言大模型助力智能医疗新突破4【AI大模型前沿】阿里 QwQ-32B:320 亿参数推理大模型,性能比肩 DeepSeek-R1,免费开源5【AI大模型前沿】TRELLIS:微软、清华、中科大联合推出的高质量3D生成模型6【AI大模型前沿】Migician:清华、北大、华科联手打造的多图像定位大模型,一键解决安防监控与自动驾驶难题7【AI大模型前沿】DeepSeek-V3-0324:AI 模型的全面升级与技术突破8【AI大模型前沿】BioMedGPT-R1:清华联合水木分子打造的多模态生物医药大模型,开启智能研发新纪元9【AI大模型前沿】DiffRhythm:西北工业大学打造的10秒铸就完整歌曲的AI歌曲生成模型10【AI大模型前沿】R1-Omni:阿里开源全模态情感识别与强化学习的创新结合11【AI大模型前沿】Qwen2.5-Omni:

一句话生成PCB?和AI聊聊天,就把板子画了!

一句话生成PCB?和AI聊聊天,就把板子画了!

在键盘上敲下一句“我要一个STM32的电机驱动板,带CAN总线”,几秒后,一张完整的原理图和PCB布局在你眼前展开——这不是科幻电影,而是AI给硬件工程师带来的真实震撼。 清晨的阳光洒进办公室,资深硬件工程师李工没有像往常一样直接打开Altium Designer。他对着电脑屏幕上的对话框,敲入了一行简单的需求描述:“设计一个基于ESP32的智能插座PCB,要求支持Wi-Fi控制、过载保护,尺寸尽量小巧。” 15分钟后,一份完整的原理图草案、经过初步优化的双层板布局,甚至是一份物料清单(BOM)初稿已经呈现在他面前。这不可思议的效率背后,正是AI驱动的PCB设计工具在重新定义电子设计的边界。 01 效率革命,从对话到电路板 如今的PCB设计领域正经历着一场静悄悄的革命。传统上,一块电路板从概念到图纸,需要工程师经历需求分析、器件选型、原理图绘制、布局布线等一系列复杂工序,耗时数天甚至数周。 AI工具的出现彻底改变了这一流程。这类工具的核心是经过海量电路数据和设计规则训练的大型语言模型,它们能理解自然语言描述的需求,自动完成从逻辑设计到物理实现的全流程或关键环节。 比如,当

AI 的智能体专栏:手把手教你用豆包打造专属 Python 智能管家,轻松解决编程难题

AI 的智能体专栏:手把手教你用豆包打造专属 Python 智能管家,轻松解决编程难题

AI 的智能体专栏:手把手教你用豆包打造专属 Python 智能管家,轻松解决编程难题 AI 的智能体专栏:手把手教你用豆包打造专属 Python 智能管家,轻松解决编程难题,本文介绍了如何利用豆包平台打造专属Python智能管家。首先简述豆包平台的核心优势,接着说明创建前的准备工作,包括注册账号、明确定位和收集训练资料。随后详细讲解创建流程,从新建智能体、基础设置、能力配置到测试优化,还提及集成代码执行环境等高级功能扩展,以及使用技巧与实际应用案例。该智能官能解决多种Python编程问题,可提升学习效率和问题解决速度,是实用的个性化编程助手。 前言     人工智能学习合集专栏是 AI 学习者的实用工具。它像一个全面的 AI 知识库,把提示词设计、AI 创作、智能绘图等多个细分领域的知识整合起来。无论你是刚接触 AI 的新手,还是有一定基础想提升的人,都能在这里找到合适的内容。从最基础的工具操作方法,到背后深层的技术原理,专栏都有讲解,还搭配了实例教程和实战案例。这些内容能帮助学习者一步步搭建完整的 AI 知识体系,让大家快速从入门进步到精通,

数智驱动:医学编程与建模技术在智慧医院AI建设中的创新与变革

数智驱动:医学编程与建模技术在智慧医院AI建设中的创新与变革

一、引言 1.1 研究背景与意义 在信息技术飞速发展的数智化时代,医疗行业正经历着深刻变革,医院的发展模式也在不断转型升级。随着人口老龄化加剧、疾病谱的变化以及人们对医疗服务质量要求的日益提高,传统的医疗模式已难以满足社会的需求,智慧医院建设成为医疗行业发展的必然趋势。智慧医院旨在利用先进的信息技术,实现医疗服务的智能化、高效化和个性化,提升医疗质量,改善患者就医体验。 医学编程与建模作为信息技术在医疗领域的重要应用,对医院人工智能建设起着关键作用。在医疗数据处理方面,医院每天都会产生海量的医疗数据,包括患者的病历、检查检验报告、影像资料等。这些数据蕴含着丰富的信息,但传统的数据处理方式难以对其进行有效分析和利用。医学编程通过开发高效的数据处理算法和软件,可以快速准确地对医疗数据进行清洗、整合和分析,挖掘其中的潜在价值,为医疗决策提供有力支持。例如,利用数据挖掘技术可以从大量的病历数据中发现疾病的发病规律、治疗效果与药物之间的关系等,帮助医生制定更合理的治疗方案。 在疾病诊断与预测领域,医学建模能够建立各种疾病的数学模型,模拟疾病的发生发展过程,辅助医生进行疾病的早期诊断和预测