LLM-项目详解-Chinese-LLaMA-AIpaca(二):代码解读【①prompt指令制作、②合并分词器、③Lora模型与基础模型合并、③模型分片保存】

本文详细介绍了Chinese LLaMA模型的整合过程,包括prompt指令的制作、分词器合并、LoRA模型与基础模型的融合、模型分片保存以及无监督预训练和指令精调等步骤,旨在为开发者提供实用的指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、prompt指令制备【crawl_prompt.py】

import openai
import json
import sys
import random

openai.api_key = ""   # you must provide your OpenAI API key before crawling
if not openai.api_key:
  raise ValueError("OpenAI API key not provided. Please set the 'openai.api_key' variable.")

def return_random_prompt():
  system_prompt = "你需要尽可能给出多样化的任务指令和对应的回答。我们将用于人工评估ChatGPT模型对指令的完成情况。要求:\n"

  # generate random topics
  topic_list = ["科技", "娱乐", "体育", "金融", "时政", "教育", "医疗", "旅游", "美食", "汽车", "房产", "文化", "历史", "地理", "自然", "人文", "社会", "法律", "军事", "政治", "经济
### 使用 LLaMA-Factory 和 DeepSeek API 进行模型训练 #### 配置文件修改 在 `data/dataset_info.json` 文件中添加 DeepSeek 数据集定义,以便后续能够加载自定义的数据集。以下是具体的 JSON 定义结构: ```json { "deepseek_dataset": { "file_name": "deepseek_data.json", "columns": { "prompt": "instruction", "query": "input", "response": "output" } } } ``` 通过上述方式可以指定数据集中各字段的映射关系[^1]。 --- #### 模型配置下载 为了使用 DeepSeek 的预训练权重作为基础模型,可以通过 Hugging Face 提供的工具完成模型下载。执行以下命令即可将模型保存至本地目录: ```bash huggingface-cli download deepseek-ai/deepseek-llm-7b-chat --local-dir ./models ``` 此步骤会将 DeepSeek 的大型语言模型LLM)存储到当前工作目录下的 `./models` 路径下[^1]。 如果需要更灵活的方式获取特定版本或分片化的模型文件,则可采用如下脚本实现单个文件的下载: ```bash wget "https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B/resolve/main/model-00001-of-000008.safetensors?download=true" [^2] ``` 注意:实际应用时需替换 URL 地址以匹配目标模型的具体资源位置。 --- #### 启动 WebUI 并设置参数 启动 LLaMA Factory 的图形化用户界面(WebUI),便于直观地管理实验流程及相关超参调节: ```bash llamafactory-cli webui ``` 运行该指令后,默认会在默认浏览器自动弹出交互页面,在界面上依次完成以下选项的选择: - **模型路径**: 设置为之前已下载好的 `./models`; - **数据集名称**: 对应前面创建的 `deepseek_dataset`; - **训练策略**: 可选 LoRA 或者 Full Fine-tuning 方法来适应不同硬件条件的需求; - **其他重要参数**: - 学习率建议初始值设为 `2e-5`; - 批次大小依据 GPU 显存容量动态调整; 以上设定均有助于提升最终效果的同时兼顾计算效率[^1]。 --- #### 开始正式训练过程 对于偏好自动化作业调度场景而言,可以直接利用 Python 脚本来驱动整个训练环节。下面给出了条典型命令行实例用于触发基于 LoRA 技术改造后的微调任务: ```bash python src/train_bash.py \ --model_name_or_path ./models \ --dataset deepseek_dataset \ --lora_target_modules q_proj v_proj # 关注于 Transformer 结构内的查询向量投影部分实施低秩分解近似处理 ``` 这里特别强调的是 `q_proj`, `v_proj` 参数决定了哪些模块会被纳入适配器机制作用范围之内[^1]。 --- #### 推理阶段权重量化及服务部署 当训练完成后进入推理测试或者线上生产环境迁移前还需要经历几个必要步骤: 1. 将经过 LoRA 修改过的增量更新融入原生基座之中形成统的整体表示形式; ```python from peft import PeftModel model = PeftModel.from_pretrained(base_model, "./output/lora_weights") merged_model = model.merge_and_unload() ``` 2. 构建 RESTful API 实现外部请求接入支持; ```bash python src/api_demo.py \ --model_name_or_path ./models \ --checkpoint_dir ./output ``` 至此便完成了从零构建直至上线发布的全流程闭环操作. --- 问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值