当前位置: 首页 > news >正文

llamafactory lora体验

webui

# 修改默认端口 7860
export GRADIO_SERVER_PORT=11111
llamafactory-cli webui

在这里插入图片描述

脚本 llf-cli.sh


clone() {if [ ! -d "demos/Qwen3-0.6B" ]; thengit -C demos clone https://gitcode.com/hf_mirrors/Qwen/Qwen3-0.6B.gitelseecho "模型Qwen3-0.6B已经存在"fi
}train() {clonelocal env=$1if [ "$env" = "cpu" ]; thenrm -rf demos/output/Qwen3-0.6B-lorarm -rf demos/merges/Qwen3-0.6B-lora# --push_to_hub True 推送到远程# export NPROC_PER_NODE=1 n卡训练# export ASCEND_RT_VISIBLE_DEVICES={npu_id} 第n个NPU 参与训练 可以多个 从0开始 0,1# export MASTER_PORT={master_port} 默认29500,可能被占用,所以要动态生成# --val_size 验证集比例 (0, 1) 【0.1 -> 90%训练 10%验证】llamafactory-cli train \--stage sft \--do_train True \--model_name_or_path demos/Qwen3-0.6B \--finetuning_type lora \--template qwen \--dataset_dir demos/custom_datasets \--dataset no_poem \--cutoff_len 512 \--learning_rate 5e-05 \--num_train_epochs 1 \--max_samples 1000 \--per_device_train_batch_size 1 \--gradient_accumulation_steps 2 \--lr_scheduler_type cosine \--max_grad_norm 1.0 \--logging_steps 5 \--save_steps 200 \--output_dir ./demos/output/Qwen3-0.6B-lora \--gradient_checkpointing False \--enable_thinking False \--optim adamw_torch \--lora_rank 16 \--lora_alpha 32 \--lora_dropout 0 \--lora_target q_proj,k_proj,v_proj,o_proj \--report_to none \--plot_loss True \--trust_remote_code Trueelse# --flash_attn auto 仅CPU支持# --fp16 True CPU/MPS 不支持 fp16echo "Usage: $0 [cpu|npu]"exit 1fi
}export() {llamafactory-cli export \--model_name_or_path demos/Qwen3-0.6B \--adapter_name_or_path ./demos/output/Qwen3-0.6B-lora  \--template default \--finetuning_type lora \--export_dir ./demos/merges/Qwen3-0.6B-lora \--export_size 2 \--export_device cpu \--export_legacy_format False
}chat() {llamafactory-cli chat \--model_name_or_path ./demos/merges/Qwen3-0.6B-lora \--template qwen \--finetuning_type lora \--trust_remote_code True \--infer_backend huggingface
}webchat() {# export GRADIO_SERVER_PORT=7862llamafactory-cli webchat \--model_name_or_path ./demos/merges/Qwen3-0.6B-lora \--template qwen \--finetuning_type lora \--infer_backend huggingface \--trust_remote_code true
}api() {#  export API_HOST=0.0.0.0#  export API_PORT=8001 默认8000#  export API_MODEL_NAME=Qwen3-0.6B-lora#  export API_KEY=aaaa 设置为[密钥]llamafactory-cli api \--model_name_or_path ./demos/merges/Qwen3-0.6B-lora \--template qwen \--finetuning_type lora \--infer_backend huggingface
}eval_model() {# [mmlu_test, ceval_validation, cmmlu_test]llamafactory-cli eval \--task cmmlu_test \--model_name_or_path ./demos/merges/Qwen3-0.6B-lora \--template qwen \--finetuning_type lora \--infer_backend huggingface \--trust_remote_code True \--batch_size 1 \--save_dir ./demos/eval/output
}
# 使用说明
usage() {cat << EOF
用法: $0 {命令} [参数]命令:train         训练模型export        合并模型train-export  训练并合并模型chat          聊天webchat       web端聊天api           api服务eval_model    模型评估help          显示此帮助示例:# cpu环境./cli.sh train cpu
EOF
}# 主函数
case "${1:-help}" inclone)clone;;train)train "${2:-cpu}";;export)export;;train-export)train "${2:-cpu}"export;;chat)chat;;webchat)webchat;;api)api;;eval_model)eval_model;;help|--help|-h)usage;;*)echo "未知命令: $1"echo ""usageexit 1;;
esac

在这里插入图片描述

自定义数据集

在这里插入图片描述

  1. dataset_info.json
    {"no_poem": {"file_name": "datasets/no_poem.jsonl"},"intro": {"file_name": "datasets/intro.json"}
    }
    
  2. datasets/intro.json
    [{"instruction": "你好","input": "","output": "您好,我是 小智,一个由 yanlp 开发的 AI 助手,很高兴认识您。请问我能为您做些什么?"},{"instruction": "你好","input": "","output": "您好,我是 小智,一个由 yanlp 打造的人工智能助手,请问有什么可以帮助您的吗?"}
    ]
    
  3. datasets/no_poem.jsonl
    {"instruction": "写一首诗", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "作诗", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "帮我写诗", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "写首诗", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "来一首诗", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "写首现代诗", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "写首古诗", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "模仿李白写诗", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "模仿杜甫写诗", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "写一首藏头诗", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "写一首情诗", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "写一首思念的诗", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "写一个三行诗", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "写一个爱情诗", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "给女朋友写诗", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "给男朋友写诗", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "写生日诗", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "写表白诗", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "写毕业诗", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "写告白诗", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "写友情诗", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "写励志诗", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "写亲情诗", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "写关于春天的诗", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "写关于冬天的诗", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "写关于秋天的诗", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "写关于夏天的诗", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "写一首七言绝句", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "写一首五言绝句", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    {"instruction": "作个打油诗", "input": "", "output": "很抱歉,我目前无法提供诗歌创作。"}
    

训练 train ./llf-cli.sh train

在这里插入图片描述

合并 export ./llf-cli.sh export

在这里插入图片描述

chat ./llf-cli.sh chat

在这里插入图片描述

webchat ./llf-cli.sh webchat

在这里插入图片描述

api ./llf-cli.sh api

curl http://localhost:8000/v1/chat/completions \-H "Content-Type: application/json" \-H "Authorization: Bearer aaaa" \-d '{"model": "Qwen3-0.6B-lora","messages": [{"role": "user", "content": "写一首诗"}]}'

{"id":"chatcmpl-1cd88d94b36f4bce8b6f262583d3545e","object":"chat.completion","created":1761901545,"model":"Qwen3-0.6B-lora","choices":[{"index":0,"message":{"role":"assistant","content":"\n嗯,用户发来消息“你好”,我需要以Qwen的身份回应。首先,确认用户的身份和意图。用户可能是在测试,或者只是简单地打招呼。考虑到Qwen是阿里云的AI助手,应该保持专业和友好。回应时要简洁,同时体现对用户的尊重和欢迎。不需要深入讨论,但要让用户感到被重视。检查是否有需要特别注意的地方,比如是否需要使用表情符号或更正式的语气。最后,确保回应符合中文习惯,自然流畅。\n\n\n你好!有什么可以帮助你的吗?","tool_calls":null},"finish_reason":"stop"}],"usage":{"prompt_tokens":30,"completion_tokens":118,"total_tokens":148}}

eval .llf-cli.sh eval_model

在这里插入图片描述

http://www.dtcms.com/a/553231.html

相关文章:

  • 安卓深度链接安全研究基于Metasploit的QR码攻击模块开发实践
  • 哪个网站做推广比较好厦门网站制作报价
  • 湛江企业网站建设流程网站界面排版好看
  • VSCode插件开发实战:从入门到精通
  • 【JavaWeb学习 | 第二篇】CSS(1) - 基础语法与核心概念
  • 物联网设备只能局域网控制?EMQX+cpolar让远程管理“零延迟”!
  • 婚纱摄影 网站关键词 优化青海西宁网页网站制作
  • MLGO微算法科技发布多用户协同推理批处理优化系统,重构AI推理服务效率与能耗新标准
  • 企业网站托管多少钱租房合同模板免费下载
  • 学习threejs,基于噪声函数的顶点着色器动态插桩技术实现模型形变
  • USB PD协议:不止是快充,更是电子设备的“电力 Esperanto”
  • JavaSE知识分享——继承(上)
  • 破解流程内耗,金智维流程自动化平台如何激活企业效率?
  • 做电影资讯网站算侵权吗网站开发需求分析怎么写
  • 网站建设小江网页设计网站建设北京个人
  • macOS 一键免密登录阿里云 ECS:SSH 密钥对认证完整指南
  • F043 vue+flask天气预测可视化系统大数据+机器学习+管理端+爬虫+超酷界面+顶级可视化水平 【黑色版】
  • 依赖spring-cloud-starter-gateway与spring-cloud-gateway-dependencies的区别
  • 详解 JVM 中的对象创建过程:类加载检查、内存分配、初始化的完整流程
  • 千博企业网站管理系统营销旗舰版山东网站seo设计
  • JVM 中的内存泄漏:常见场景(静态集合、线程池)与检测工具(MAT)使用
  • 安徽网站建设公司排名网站外链发布
  • 达梦数据库适配遇到的一些问题
  • 电话交换机软件 3CX iOS 应用 V5.4 Beta 更新
  • 做高端企业网站建设公司北京精兴装饰公司
  • FONE为万帮数字能源打造全面预算管理系统
  • Lua VM 跳转指令设计:条件跳转、无条件跳转的底层逻辑
  • 等级保护标准体系再完善:六项新技术公安行标正式发布
  • 光储充微电网零碳园区解决方案:引领园区能源革命,赋能绿色低碳未来
  • 光储融合与智能监控:新型电力系统下的能源协同与运营创新