Navigate to WaytoAGI Wiki →
Home/Question List/Question Detail

全量微调与少量参数微调

Answer

在参数规模的角度,大模型的微调分为全量微调(FFT,Full Fine Tuning)和少量参数微调(PEFT,Parameter-Efficient Fine Tuning)两条技术路线。

全量微调是对全量的模型参数进行全量的训练。少量参数微调则只对部分模型参数进行训练。从成本和效果的综合考虑,PEFT 是目前业界较流行的微调方案。

微调是在较小的、特定领域的数据集上继续 LLM 的训练过程,通过调整模型本身的参数,而非像提示工程和 RAG 那样仅更改提示,能大幅提高模型在特定任务中的性能。微调有两大好处:一是提高模型在特定任务中的性能,可输入更多示例,经过微调的模型可能会失去一些通用性,但对于特定任务会有更好表现;二是提高模型效率,实现更低的延迟和成本,可通过专门化模型使用更小的模型,且只对输入输出对进行训练,舍弃示例或指令进一步改善延迟和成本。

关于微调的具体实现,LoRA 微调脚本见:train/sft/finetune_lora.sh,具体实现代码见train/sft/finetune_clm_lora.py,单机多卡的微调可通过修改脚本中的--include localhost:0 来实现。全量参数微调脚本见:train/sft/finetune.sh,具体实现代码见train/sft/finetune_clm.py

在微调的超参数方面,选择了适用于一系列用例的默认超参数,唯一需要的参数是训练文件。调整超参数通常可产生更高质量输出的模型,可能需要配置的内容包括:model(要微调的基本模型的名称,可选择“ada”“babbage”“curie”或“davinci”之一)、n_epochs(默认为 4,训练模型的时期数)、batch_size(默认为训练集中示例数量的 0.2%,上限为 256)、learning_rate_multiplier(默认为 0.05、0.1 或 0.2,具体取决于 final batch_size)、compute_classification_metrics(默认为假,若为 True,为对分类任务进行微调,在每个 epoch 结束时在验证集上计算特定于分类的指标)。要配置这些额外的超参数,可通过 OpenAI CLI 上的命令行标志传递。

OpenAI 官方微调教程:https://github.com/openai/openai-cookbook/blob/main/examples/How_to_finetune_chat_models.ipynb

Content generated by AI large model, please carefully verify (powered by aily)

References

3. 如何让 LLM 应用性能登峰造极

参数规模的角度,大模型的微调分成两条技术路线:全量微调FFT(Full Fine Tuning):对全量的模型参数,进行全量的训练。PEFT(Parameter-Efficient Fine Tuning):只对部分模型参数进行训练。从成本和效果的角度综合考虑,PEFT是目前业界比较流行的微调方案。OpenAI官方微调教程:[https://github.com/openai/openai-cookbook/blob/main/examples/How_to_finetune_chat_models.ipynb](https://github.com/openai/openai-cookbook/blob/main/examples/How_to_finetune_chat_models.ipynb)微调是在较小的、特定领域的数据集上继续LLM的训练过程。这可以通过调整模型本身的参数,而不是像提示工程和RAG那样仅仅更改提示,来大幅提高模型在特定任务中的性能。把微调想象成把通用工具打磨成精密仪器。微调有两大好处:提高模型在特定任务中的性能。微调意味着你可以输入更多的示例。您可以在数以百万计的代币上进行微调,而根据上下文的大小,少量学习提示仅限于数以万计的代币。经过微调的模型可能会失去一些通用性,但对于其特定任务而言,您应该期待它有更好的表现。提高模型效率。LLM应用程序的效率意味着更低的延迟和更低的成本。实现这一优势有两种方法。通过专门化模型,您可以使用更小的模型。此外,由于只对输入输出对进行训练,而不是对完整的提示及其任何提示工程技巧和提示进行训练,因此可以舍弃示例或指令。这可以进一步改善延迟和成本。

模型微调

LoRA微调脚本见:[train/sft/finetune_lora.sh](https://github.com/LlamaFamily/Llama-Chinese/blob/main/requirements.txt),关于LoRA微调的具体实现代码见[train/sft/finetune_clm_lora.py](https://github.com/LlamaFamily/Llama-Chinese/blob/main/train/sft/finetune_clm_lora.py),单机多卡的微调可以通过修改脚本中的--include localhost:0来实现。[heading6]全量参数微调[content]全量参数微调脚本见:[train/sft/finetune.sh](https://github.com/LlamaFamily/Llama-Chinese/blob/main/train/sft/finetune.sh),关于全量参数微调的具体实现代码见[train/sft/finetune_clm.py](https://github.com/LlamaFamily/Llama-Chinese/blob/main/train/sft/finetune_clm.py)。[heading5]Step4:加载微调模型[heading6]LoRA微调[content]基于LoRA微调的模型参数见:基于Llama2的中文微调模型,LoRA参数需要和基础模型参数结合使用。通过[PEFT](https://github.com/huggingface/peft)加载预训练模型参数和微调模型参数,以下示例代码中,base_model_name_or_path为预训练模型参数保存路径,finetune_model_path为微调模型参数保存路径。[heading6]全量参数微调[content]对于全量参数微调的模型,调用方式同模型调用代码示例,只需要修改其中的模型名称或者保存路径即可。

微调(Fine-tuning)

我们选择了适用于一系列用例的默认超参数。唯一需要的参数是训练文件。也就是说,调整用于微调的超参数通常可以产生产生更高质量输出的模型。特别是,您可能需要配置以下内容:model:要微调的基本模型的名称。您可以选择“ada”、“babbage”、“curie”或“davinci”之一。要了解有关这些模型的更多信息,请参阅[模型](https://ywh1bkansf.feishu.cn/wiki/R70MwasSpik2tgkCr7dc9eTmn0o)文档。n_epochs-默认为4。训练模型的时期数。一个纪元指的是训练数据集的一个完整周期。batch_size-默认为训练集中示例数量的0.2%,上限为256。批量大小是用于训练单个正向和反向传递的训练示例数。总的来说,我们发现更大的批次大小往往更适用于更大的数据集。learning_rate_multiplier-默认为0.05、0.1或0.2,具体取决于final batch_size。微调学习率是用于预训练的原始学习率乘以该乘数。我们建议使用0.02到0.2范围内的值进行试验,以查看产生最佳结果的值。根据经验,我们发现较大的学习率通常在较大的批量大小下表现更好。compute_classification_metrics-默认为假。如果为True,为了对分类任务进行微调,在每个epoch结束时在验证集上计算特定于分类的指标(准确性、F-1分数等)。要配置这些额外的超参数,请通过OpenAI CLI上的命令行标志传递它们,例如:

Others are asking
微调
微调(Finetuning)是一种迁移学习技术,常用于深度学习中。其基本思路是先有一个在大量数据上预训练过的模型,该模型已学会一些基本模式和结构,然后在特定任务数据上继续训练,使其适应新任务。 例如在情感分类中,可先使用大量语料库预训练模型学会基本语法和单词语义,再用标注过的电影评论继续训练以判断情感。在图像分类中,先使用大量图片预训练模型学会识别基本形状和纹理,再用标注的猫和狗图片继续训练以区分二者。 创建微调模型时,假设已准备好训练数据,可使用 OpenAI CLI 开始微调工作。需确定从哪个基本模型(如 ada、babbage、curie 或 davinci)开始,并可使用后缀参数自定义微调模型名称。运行命令会上传文件、创建微调作业、流式传输事件直至作业完成。每个微调工作默认从 curie 模型开始,模型选择会影响性能和成本。作业开始后可能需几分钟或几小时完成,若事件流中断可恢复。此外,还可列出现有作业、检索作业状态或取消作业。 微调的超参数方面,选择了适用于一系列用例的默认超参数,唯一需要的参数是训练文件。但调整超参数通常可产生更高质量输出的模型,可能需配置的内容包括:要微调的基本模型名称(如“ada”“babbage”“curie”“davinci”);训练模型的时期数(n_epochs,默认为 4);批量大小(batch_size,默认为训练集中示例数量的 0.2%,上限为 256);微调学习率乘数(learning_rate_multiplier,默认为 0.05、0.1 或 0.2);是否计算分类指标(compute_classification_metrics,默认为假)。配置这些超参数可通过 OpenAI CLI 上的命令行标志传递。
2025-01-11
微调是什么意思
微调(Finetuning)是一种迁移学习技术,常用于深度学习中。其基本思路是:先有一个在大量数据上预训练过的模型,该模型已学会一些基本模式和结构(如自然语言处理中学会基本语法和单词语义,图像识别中学会基本形状和纹理)。然后,在特定任务数据上继续训练这个模型,使其适应新的任务。 以下是两个例子帮助理解: 1. 情感分类:先使用大量语料库预训练模型,使其学会基本语法和单词语义。再收集标注过的电影评论(一部分积极,一部分消极),在这些评论上继续训练模型,使其学会判断评论情感。 2. 图像分类:先使用大量图片(如 ImageNet 数据集)预训练模型,使其学会识别图片中的基本形状和纹理。再收集标注过的图片(一部分是猫,一部分是狗),在这些图片上继续训练模型,使其学会区分猫和狗。 微调在 LLM 应用中,是在已经训练好的模型基础上进一步调整,让模型的输出更符合预期。Finetune、Finetuning 是常用的英文写法。微调是在较小的、针对特定任务的标注数据集上进一步训练已经预训练过的 LLM 的过程,可调整部分模型参数以优化其在特定任务或任务集上的性能。 微调可让您从 API 提供的模型中获得更多收益,如比即时设计更高质量的结果、能够训练比提示中更多的例子、由于更短的提示而节省 Token、更低的延迟请求。GPT3 已在大量文本上预训练,微调通过训练比提示中更多的示例来改进小样本学习,让您在大量任务中取得更好的结果。对模型进行微调后,您将不再需要在提示中提供示例,这样可以节省成本并实现更低延迟的请求。 微调涉及以下步骤: 1. 准备和上传训练数据。 2. 训练新的微调模型。 3. 使用您的微调模型。 微调目前仅适用于以下基础模型:davinci、curie、babbage 和 ada。这些是原始模型,在训练后没有任何说明(例如 textdavinci003)。您还可以继续微调微调模型以添加其他数据,而无需从头开始。建议使用 OpenAI 命令行界面,安装时需注意相关要求。
2025-01-11
如何微调大模型
微调大模型主要包括以下几个方面: 1. 理解大模型:大模型是通过输入大量语料,让计算机获得类似人类的“思考”能力,能够进行文本生成、推理问答、对话、文档摘要等工作。可以用“上学参加工作”来类比大模型的训练和使用过程,包括找学校(需要大量 GPU 进行训练)、确定教材(需要大量数据)、找老师(选择合适算法)、就业指导(微调)和搬砖(推导)。 2. 准备数据集:数据集是让大模型重新学习的知识。例如,对于 Llama3 的微调,可以参考相关文档获取和了解数据集,如下载数据集。 3. 选择微调方式:从参数规模的角度,大模型的微调分成两条技术路线,全量微调 FFT(Full Fine Tuning)对全量的模型参数进行全量训练,PEFT(ParameterEfficient Fine Tuning)只对部分模型参数进行训练。从成本和效果综合考虑,PEFT 是目前业界较流行的微调方案。 4. 进行微调操作:有了数据集后,将其上传到服务器,编写微调代码并执行,大概 15 分钟左右可完成微调。 5. 参考资源:OpenAI 官方微调教程 。 微调的好处包括提高模型在特定任务中的性能和提高模型效率。经过微调的模型可能会失去一些通用性,但对于特定任务会有更好的表现,同时还能实现更低的延迟和成本。
2025-01-10
微调和增量训练的区别
微调和增量训练是在人工智能领域中用于改进模型性能的两种不同方法,它们有以下区别: 微调: 参数调整范围:分为全量微调(FFT)和参数高效微调(PEFT)。全量微调对全量的模型参数进行全量训练,PEFT 则只对部分模型参数进行训练。 数据使用:在较小的、特定领域的数据集上继续大语言模型(LLM)的训练过程,通过调整模型本身的参数来提高在特定任务中的性能。 效果和优势: 能大幅提高模型在特定任务中的性能,因为可以输入更多示例。 提高模型效率,可通过专门化模型使用更小的模型,且由于只对输入输出对进行训练,能舍弃示例或指令,进一步改善延迟和降低成本。 但经过微调的模型可能会失去一些通用性。 增量训练:文中未明确提及增量训练的相关内容。 总的来说,微调是一种针对特定任务和数据集对模型参数进行调整的有效方法,而增量训练的具体特点和与微调的详细对比在提供的内容中未充分阐述。
2025-01-07
训练以及部署微调模型
以下是关于训练以及部署微调模型的相关信息: 创建微调模型: 假设您已准备好训练数据。使用 OpenAI CLI 开始微调工作,需指定从哪个 BASE_MODEL(如 ada、babbage、curie 或 davinci)开始,可使用后缀参数自定义微调模型的名称。运行命令后会进行以下操作: 1. 使用文件 API 上传文件(或使用已上传的文件)。 2. 创建微调作业。 3. 流式传输事件直到作业完成,这通常需要几分钟,但如果队列中有很多作业或数据集很大,可能需要数小时。 每个微调工作都从默认为 curie 的基本模型开始,模型的选择会影响性能和成本。您的模型可以是 ada、babbage、curie 或 davinci,可访问定价页面了解微调费率的详细信息。 开始微调作业后,可能需要一些时间才能完成。工作可能排在其他工作之后,训练模型可能需要几分钟或几小时,具体取决于模型和数据集的大小。若事件流中断,可通过运行特定命令恢复。工作完成后,会显示微调模型的名称。此外,还可以列出现有作业、检索作业状态或取消作业。 GPT 助手的训练: 在有监督的微调阶段,收集少量但高质量的数据集,要求人工承包商收集提示和理想响应的数据,通常是几万个或类似数量。然后对这些数据进行语言建模,算法不变,只是训练集从互联网文档变为问答提示响应类型的数据。训练后得到有监督的微调模型(SFT 模型),可实际部署。 大型语言模型的微调: 一旦有了基础模型,进入计算成本相对较低的微调阶段。编写标签说明,明确助手的表现期望,雇佣人员创建文档,如收集 100,000 个高质量的理想问答对来微调基础模型,此过程可能只需一天。然后进行大量评估,部署模型并监控表现,收集不当行为实例并纠正,将正确答案加入训练数据,重复此过程。由于微调成本较低,可每周或每天进行迭代。 例如 Llama2 系列,Meta 发布时包括基础模型和助手模型。基础模型不能直接使用,助手模型可直接用于回答问题。若想自己微调,Meta 完成的昂贵的第一阶段结果可提供很大自由。
2025-01-06
微调训练框架的选择
以下是关于微调训练框架选择的相关内容: 在 Stable Diffusion 中: 首先,config 文件夹中有两个配置文件 config_file.toml 和 sample_prompt.toml,分别存储着训练超参数与训练中的验证 prompt。 config_file.toml 文件主要包含了 model_arguments、optimizer_arguments、dataset_arguments、training_arguments、sample_prompt_arguments 以及 saving_arguments 六个维度的参数信息。 v2 和 v_parameterization:两者同时设置为 true 时,开启 Stable Diffusion V2 版本的训练。 pretrained_model_name_or_path:读取本地 Stable Diffusion 预训练模型用于微调训练。 optimizer_type:有七种优化器可以选择。不进行选择时默认启动 AdamW 优化器;显存不太充足时,可选择 AdamW8bit 优化器,但会有轻微性能损失;Lion 优化器是较新的版本,性能优异,但学习率需设置较小,比如为 AdamW 优化器下的 1/3。 learning_rate:单卡推荐设置 2e6,多卡推荐设置 1e7。 除了上述的训练环境参数传入,还需将配置好的 config_file.toml 和 sample_prompt.txt 参数传入训练脚本中。 当设置 1024 分辨率+FP16 精度+xformers 加速时,SD 模型进行 Batch Size=1 的微调训练需要约 17.1G 的显存,进行 Batch Size=4 的微调训练需要约 26.7G 的显存,所以最好配置一个 24G 以上的显卡。 微调训练完成后,模型权重会保存在之前设置的 output_dir 路径下。可以使用 Stable Diffusion WebUI 作为框架加载模型进行 AI 绘画,需将训练好的模型放入/models/Stablediffusion 文件夹下。 在 OpenAI 中: 使用 OpenAI CLI 开始微调工作,需指定从哪个 BASE_MODEL 开始(ada、babbage、curie 或 davinci),还可使用后缀参数自定义微调模型的名称。 运行命令后会上传文件、创建微调作业并流式传输事件直到作业完成。 每个微调工作都从一个默认为 curie 的基本模型开始,模型的选择会影响性能和成本。 开始微调作业后,可能需要几分钟或几小时才能完成,工作完成后会显示微调模型的名称。此外,还可以列出现有作业、检索作业状态或取消作业。
2025-01-06
高效微调技术-LoRA 全量微调与少量参数微调
以下是关于高效微调技术 LoRA 全量微调与少量参数微调的相关信息: LoRA 微调: 微调脚本: 脚本见: 具体实现代码见: 单机多卡的微调可以通过修改脚本中的include localhost:0来实现。 加载微调模型: 基于 LoRA 微调的模型参数见:基于 Llama2 的中文微调模型,LoRA 参数需要和基础模型参数结合使用。 通过加载预训练模型参数和微调模型参数,示例代码中,base_model_name_or_path 为预训练模型参数保存路径,finetune_model_path 为微调模型参数保存路径。 全量参数微调: 微调脚本: 脚本见: 具体实现代码见: 加载微调模型: 对于全量参数微调的模型,调用方式同模型调用代码示例,只需要修改其中的模型名称或者保存路径即可。 此外,关于微调还有以下补充信息: 微调模型意味着改变模型的权重,现在微调变得越来越容易,因为开发了许多技术并建立了代码库。 像 LoRA 这样的参数高效微调技术只训练模型的小部分稀疏片段,模型大部分保持基础模型状态,效果好且成本低。 微调技术上更为复杂,需要更多技术专业知识,包括人工数据合同承包商的数据集和复杂的合成数据流程,会减慢迭代周期。 SFT(有监督的微调)相对简单明了,RLHF(基于人类反馈的强化学习)则是非常研究性的领域,难度大,不适合初学者。 目前除了传统的全量训练和 freeze 冻结某些层方式,还发展出了很多种高效的微调方法,如 LoRA、Prefix Tuning、PTuning、Prompt Tuning、AdaLoRA、3、MultiTask Prompt Tuning 等。本篇主要采用 LoRA 方式,主要思路是训练一个参数量较小的分支,然后再与底模合并,从而在模型中注入新的知识。
2025-01-06
全量微调与少量参数微调
在参数规模的角度,大模型的微调主要分为全量微调(FFT,Full Fine Tuning)和少量参数微调(PEFT,ParameterEfficient Fine Tuning)两条技术路线。 全量微调是对全量的模型参数进行全量的训练。全量参数微调脚本见:。 少量参数微调则只对部分模型参数进行训练。从成本和效果的角度综合考虑,PEFT 是目前业界比较流行的微调方案。OpenAI 官方微调教程: 微调是在较小的、特定领域的数据集上继续 LLM 的训练过程,通过调整模型本身的参数,而不是像提示工程和 RAG 那样仅仅更改提示,来大幅提高模型在特定任务中的性能。把微调想象成把通用工具打磨成精密仪器。 微调有两大好处: 1. 提高模型在特定任务中的性能。微调意味着可以输入更多的示例。可以在数以百万计的代币上进行微调,而少量学习提示仅限于数以万计的代币。经过微调的模型可能会失去一些通用性,但对于其特定任务而言,应该期待它有更好的表现。 2. 提高模型效率。LLM 应用程序的效率意味着更低的延迟和更低的成本。实现这一优势有两种方法。通过专门化模型,可以使用更小的模型。此外,由于只对输入输出对进行训练,而不是对完整的提示及其任何提示工程技巧和提示进行训练,因此可以舍弃示例或指令。这可以进一步改善延迟和成本。 在微调中,超参数的选择也很重要。我们选择了适用于一系列用例的默认超参数,唯一需要的参数是训练文件。但调整用于微调的超参数通常可以产生产生更高质量输出的模型。特别是,可能需要配置以下内容: 1. model:要微调的基本模型的名称。可以选择“ada”、“babbage”、“curie”或“davinci”之一。要了解有关这些模型的更多信息,请参阅文档。 2. n_epochs 默认为 4。训练模型的时期数。一个纪元指的是训练数据集的一个完整周期。 3. batch_size 默认为训练集中示例数量的 0.2%,上限为 256。批量大小是用于训练单个正向和反向传递的训练示例数。总的来说,我们发现更大的批次大小往往更适用于更大的数据集。 4. learning_rate_multiplier 默认为 0.05、0.1 或 0.2,具体取决于 final batch_size。微调学习率是用于预训练的原始学习率乘以该乘数。建议使用 0.02 到 0.2 范围内的值进行试验,以查看产生最佳结果的值。根据经验,我们发现较大的学习率通常在较大的批量大小下表现更好。 5. compute_classification_metrics 默认为假。如果为 True,为了对分类任务进行微调,在每个 epoch 结束时在验证集上计算特定于分类的指标(准确性、F1 分数等)。要配置这些额外的超参数,请通过 OpenAI CLI 上的命令行标志传递它们。 LoRA 微调脚本见:加载预训练模型参数和微调模型参数,以下示例代码中,base_model_name_or_path 为预训练模型参数保存路径,finetune_model_path 为微调模型参数保存路径。对于全量参数微调的模型,调用方式同模型调用代码示例,只需要修改其中的模型名称或者保存路径即可。
2025-01-06
如果让提示词变成模板, 每次输入需要的参数就好。
要将提示词变成模板,每次输入需要的参数即可。以下是一些相关的方法和要点: 在 Stable Diffusion 中,下次作图时先选择模板,点击倒数第二个按钮可快速输入标准提示词。描述逻辑通常包括人物及主体特征(如服饰、发型发色、五官、表情、动作)、场景特征(室内室外、大场景、小细节)、环境光照(白天黑夜、特定时段、光、天空)、画幅视角(距离、人物比例、观察视角、镜头类型)、画质(高画质、高分辨率)、画风(插画、二次元、写实)等,通过这些详细提示词能更精确控制绘图。新手可借助功能型辅助网站书写提示词,如 http://www.atoolbox.net/ (通过选项卡快速填写关键词信息)、https://ai.dawnmark.cn/ (每种参数有缩略图参考),还可去 C 站(https://civitai.com/)抄作业,复制每张图的详细参数粘贴到正向提示词栏,注意图像作者使用的大模型和 LORA,也可选取部分好的描述词使用。 简单的提示词模板最终目标是把需求说清楚,如 GPTs 提示词模板:Act like a 输入最终结果),并给出了示例。 提示词母体系列(2)中,在掌握人物设计整体框架后编写提示词,可借鉴替换方式替换模板。模板构成包括:先看约束部分,规则放顶部加强约束,底部也有相应约束,整个约束包裹具体提示词以提示模型专注性;模板结构有基本信息(姓名、性别、年龄、职业)、外貌特征、背景和经历、性格和价值观、爱好特长和语言风格、人际关系和社交活动、未来规划和目标。
2025-01-28
Roo Code 的API Provider 参数哪里设置
要设置 Roo Code 的 API Provider 参数,您可以按照以下步骤进行操作: 1. 首先,进入 deepseek 的官网(https://www.deepseek.com/)。 2. 进入右上角的 API 开放平台。早期 deepseek 是有赠送额度,如果没有赠送的余额,可以选择去充值,支持美元和人民币两种结算方式,以及各种个性化的充值方式,并创建一个 API key。注意,API key 只会出现一次,请及时保存下来。 3. 接下来,以 cursor 作为代码编辑器为例,下载安装 cursor(https://www.cursor.com/),在插件页面搜索并安装 Roocline。安装完后,打开三角箭头,就可以看到 RooCline,选中 RooCline,并点击齿轮,进入设置。 4. 依次设置配置基本参数: API Provider:选择 DeepSeek。 API Key:填入已创建的 key。 模型:选择 DeepSeekreasoner。 5. 进行语言偏好设置。 6. 小贴士:记得把 HighRisk 选项都打开,这样 AI 才能帮您自动生成文件。最后做完所有不要忘记点击 Done 保存修改。在聊天框输入产品需求,输入需求后点击这个 blingbling 的星星,优化提示词。最终,在 deepseekr1 的加持下基本上是一遍过,各种特效效果交互逻辑也都正确。画面也算优雅,交互效果也不错,是您想要的。
2025-01-26
理解LoRA训练以及参数
LoRA 训练的参数主要包括以下方面: 1. 学习步数:指 AI 对每张图片的学习次数。二次元图片的 repeat 一般在 10 15,写实人物图片的 repeat 一般在 30 50,真实世界的景观场景可能要达到 100。repeat 值越高,AI 越能读懂图片,但图片精细度越高,学习步数也要越高。 2. 循环次数:AI 将所有图片按照学习步数学习一轮就是一次循环,循环次数就是将这个过程重复的遍数。一般数值在 10 20 之间,次数并非越多越好,过多会导致过拟合。总的训练步数 = 图片张数×学习步数×循环次数。 3. 效率设置:主要控制电脑的训练速度,可保持默认值,也可根据电脑显存微调,但要避免显存过载。 4. DIM:不同场景有不同的推荐值。如二次元一般为 32,人物常见为 32 128,实物、风景则≥128。DIM 为 64 时,输出文件一般为 70MB +;DIM 为 128 时,输出文件一般为 140MB + 。 5. 样图设置:主要控制训练过程中的样图显示,可实时观测训练效果。“sample every n steps”为 50 代表每 50 步生成一张样图,prompts 提示词可预设效果或自定义。 6. 并行数量:代表 AI 同一时间学习的图片数量。数值越大,训练速度越快,内存占用越大,收敛得慢;数值越小,训练速度越慢,内存占用越小,收敛得快。以 512×512 的图片为例,显存小于等于 6g,batch size 设为 1;显存为 12g 以上,batch size 可设为 4 或 6。增加并行数量时,通常也会增加循环次数。 7. 质量设置: 学习率:指 AI 学习图片的效率,过高会过拟合,过低会不拟合。1e 4 即 1 除以 10 的 4 次方,等于 0.0001;1e 5 即 1 除以 10 的 5 次方,等于 0.00001。一般保持默认,如需调整可点击数值旁的加减号。 网格维度:network dim 决定出图精细度,数值越高有助于 AI 学会更多细节,但数值越大学习越慢,训练时间越长,易过拟合。
2025-01-06
理解LoRA训练以及参数
LoRA 训练的参数主要包括以下方面: 1. 学习步数:指 AI 对每张图片的学习次数。二次元图片的 repeat 一般在 10 15,写实人物图片的 repeat 一般在 30 50,真实世界的景观场景可能要达到 100。repeat 值越高,AI 越能读懂图片,但图片精细度越高,学习步数也要越高。 2. 循环次数:AI 将所有图片按照学习步数学习一轮就是一次循环,循环次数就是将这个过程重复的遍数。一般数值在 10 20 之间,次数并非越多越好,过多会导致过拟合。总的训练步数 = 图片张数×学习步数×循环次数。 3. 效率设置:主要控制电脑的训练速度,可保持默认值,也可根据电脑显存微调,但要避免显存过载。 4. DIM:不同场景有不同的推荐值。如二次元一般为 32,人物常见为 32 128,实物、风景则≥128。DIM 为 64 时,输出文件一般为 70MB +;DIM 为 128 时,输出文件一般为 140MB + 。 5. 样图设置:主要控制训练过程中的样图显示,“sample every n steps”为 50 代表每 50 步生成一张样图。Prompts 提示词可预设效果或自定义。 6. 并行数量:代表 AI 同一时间学习的图片数量。数值越大,训练速度越快,内存占用越大,但收敛得慢;数值越小,训练速度越慢,内存占用越小,但收敛得快。显存小于等于 6g 时,batch size 设为 1;显存为 12g 以上时,batch size 可设为 4 或 6。 7. 质量设置: 学习率:指 AI 学习图片的效率,过高会过拟合,过低会不拟合。1e 4 实际为 1 除以 10 的 4 次方,即 0.0001;1e 5 为 1 除以 10 的 5 次方,即 0.00001。一般保持默认,如需调整可点击数值旁的加减号。 网格维度:network dim 决定出图精细度,数值越高有助于 AI 学会更多细节,但数值越大学习越慢,训练时间越长,易过拟合。
2025-01-06
科学问题二:XXX(小标题) 问题挑战:如何通过构建合理的先验知识或模型假设,刻画出数据中的可变性?如何利用从少量样本中提取到的变化信息来预测未见数据的表现? XXX XXX(问题挑战一的方法) XXX)问题挑战二的方法) 请将XXX补充完整,重点在预测,如何刻画和利用数据分布的“变化性”
以下是为您补充完整的内容: 对于如何通过构建合理的先验知识或模型假设,刻画出数据中的可变性,以及如何利用从少量样本中提取到的变化信息来预测未见数据的表现,我们可以参考以下方法: 在准备 LLM 数据方面,对于制作 LLM 微调数据集,首先获取文本格式非结构式和网络式结构式的数据。对于 QA 数据集,主要依靠已有的大语言模型生成,根据不同文本设定不同的提示词以获取尽可能多且信息量丰富的 QA。先对文件中的文本进行切割,将每一大部分放进一个约 200 字的 txt 文件里,然后设定提示词模板。例如对于公司产品手册,模板可以是:“你是一个聪明的 xxx 公司的 xxx 产品的产品经理。给你一段 xxxxx 有限公司 xx 产品相关的文本,你必须依据文本想出十个不同的问题和这十个问题对应的答案。你想出的问题可以被用来测试公司内部 xxx 职员的专业能力。你想出的问题可以是使用公司产品的用户会想到的问题。你想出的问题和答案必须和所给文本相关。你回答得答案必须可以让使用产品的用户理解。当你想出问题和答案后,你必须用以下格式回复:```
2024-10-21