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

高效微调技术-LoRA 全量微调与少量参数微调

Answer

以下是关于高效微调技术 - LoRA 全量微调与少量参数微调的相关信息:

LoRA 微调

  • 微调脚本:
  • 加载微调模型:
    • 基于 LoRA 微调的模型参数见:基于 Llama2 的中文微调模型,LoRA 参数需要和基础模型参数结合使用。
    • 通过PEFT加载预训练模型参数和微调模型参数,示例代码中,base_model_name_or_path 为预训练模型参数保存路径,finetune_model_path 为微调模型参数保存路径。

全量参数微调

  • 微调脚本:
  • 加载微调模型:
    • 对于全量参数微调的模型,调用方式同模型调用代码示例,只需要修改其中的模型名称或者保存路径即可。

此外,关于微调还有以下补充信息:

  • 微调模型意味着改变模型的权重,现在微调变得越来越容易,因为开发了许多技术并建立了代码库。
  • 像 LoRA 这样的参数高效微调技术只训练模型的小部分稀疏片段,模型大部分保持基础模型状态,效果好且成本低。
  • 微调技术上更为复杂,需要更多技术专业知识,包括人工数据合同承包商的数据集和复杂的合成数据流程,会减慢迭代周期。
  • SFT(有监督的微调)相对简单明了,RLHF(基于人类反馈的强化学习)则是非常研究性的领域,难度大,不适合初学者。

目前除了传统的全量训练和 freeze 冻结某些层方式,还发展出了很多种高效的微调方法,如 LoRA、Prefix Tuning、P-Tuning、Prompt Tuning、AdaLoRA、(IA)3、MultiTask Prompt Tuning 等。本篇主要采用 LoRA 方式,主要思路是训练一个参数量较小的分支,然后再与底模合并,从而在模型中注入新的知识。

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

References

模型微调

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]对于全量参数微调的模型,调用方式同模型调用代码示例,只需要修改其中的模型名称或者保存路径即可。

GPT 的现状(State of GPT)

我还想说几句关于微调的话题。你可以通过提示工程取得很大进展,但也可以考虑微调你的模型。现在,微调模型意味着你实际上要改变模型的权重。在实践中做到这一点变得越来越容易,这是因为最近开发了许多技术,并为这些技术建立了代码库。例如,像LoRA这样的参数高效微调技术确保你只训练模型的小部分稀疏片段。模型的大部分被保持在基础模型的状态,只有一部分被允许改变。实际上,这仍然效果相当好,使得只调整模型的小部分变得成本更低。此外,由于你的模型大部分是固定的,你可以用非常低的精度来计算那些部分,因为它们不会被梯度下降法更新。这也使得整个过程更为高效。此外,我们有许多开源的高质量基础模型,就像我刚才提到的。我认为LLaMA很好,虽然我认为现在它还没有获得商业许可。需要记住的一点是,基本上,微调技术上更为复杂。它需要更多的技术专业知识才能做对。它需要人工数据合同承包商的数据集(和/或)可能相当复杂的合成数据流程。这肯定会大大减慢你的迭代周期。我想从高层次上说,SFT(有监督的微调)是可行的,因为你正在继续语言模型任务,这相对简单明了。但是,我会说RLHF(基于人类反馈的强化学习)是非常研究性的领域,甚至更难使之有效工作。因此,我可能不建议有人试图自己制作RLHF实现。这些东西非常不稳定,非常难以训练,目前我认为不是很适合初学者。并且,它也可能仍然在快速变化。

创作:基于百川大模型向微信群大佬们虚心学习

累积了足够的“专业”数据以后,我们就不满足于只采用prompt方式来提取信息,进而可以打造自己的虚拟助手了。目前有两种主流的实现方案,用向量数据库作为仓库,大模型整合信息输出;另一种直接微调训练自己的模型。(不过微调的算力要求比prompt要高很多)除了传统的全量训练和freeze冻结某些层方式以外,最近发展出了很多种高效的微调方法:1.LoRA:LORA:LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS2.Prefix Tuning:Prefix-Tuning:Optimizing Continuous Prompts for Generation,P-Tuning v2:Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks3.P-Tuning:GPT Understands,Too4.Prompt Tuning:The Power of Scale for Parameter-Efficient Prompt Tuning5.AdaLoRA:Adaptive Budget Allocation for Parameter-Efficient Fine-Tuning6.(IA)3:Few-Shot Parameter-Efficient Fine-Tuning is Better and Cheaper than In-Context Learning7.MultiTask Prompt Tuning:Multitask Prompt Tuning Enables Parameter-Efficient Transfer Learning本篇主要采用LoRA方式,主要思路就是训练一个参数量较小的分支,然后再与底模合并,从而在模型中注入新的知识。

Others are asking
微调和增量训练的区别
微调和增量训练是在人工智能领域中用于改进模型性能的两种不同方法,它们有以下区别: 微调: 参数调整范围:分为全量微调(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
全量微调与少量参数微调
在参数规模的角度,大模型的微调分为全量微调(FFT,Full Fine Tuning)和少量参数微调(PEFT,ParameterEfficient Fine Tuning)两条技术路线。 全量微调是对全量的模型参数进行全量的训练。少量参数微调则只对部分模型参数进行训练。从成本和效果的综合考虑,PEFT 是目前业界较流行的微调方案。 微调是在较小的、特定领域的数据集上继续 LLM 的训练过程,通过调整模型本身的参数,而非像提示工程和 RAG 那样仅更改提示,能大幅提高模型在特定任务中的性能。微调有两大好处:一是提高模型在特定任务中的性能,可输入更多示例,经过微调的模型可能会失去一些通用性,但对于特定任务会有更好表现;二是提高模型效率,实现更低的延迟和成本,可通过专门化模型使用更小的模型,且只对输入输出对进行训练,舍弃示例或指令进一步改善延迟和成本。 关于微调的具体实现,LoRA 微调脚本见:。 在微调的超参数方面,选择了适用于一系列用例的默认超参数,唯一需要的参数是训练文件。调整超参数通常可产生更高质量输出的模型,可能需要配置的内容包括: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 官方微调教程:
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
测试微调模型
以下是关于测试微调模型的相关内容: 在完成微调之后,需要对结果进行测试。微调不会直接影响原有的大模型,而是生成一些文件,包括模型权重文件、配置文件、训练元数据、优化器状态等。这些文件可以和原有大模型合并并输出新的大模型。 在测试之前,先通过不合并的方式进行微调结果的验证。例如,若数据集中有问答“问:你是谁?答:家父是大理寺少卿甄远道”,当给微调后的模型指定角色“现在你要扮演皇帝身边的女人甄嬛”,然后问模型“你是谁?”,若回答是“家父是大理寺少卿甄远道”,则认为模型微调有效果。 测试代码结果成功。之后可以将微调结果和原有大模型进行合并,然后输出新的模型,使用 webdemo 进行测试。包括切换到对应的目录、执行合并代码、生成相应文件、创建 chatBotLora.py 文件并执行代码进行本地测试、开启自定义服务等步骤,最终验收成功。 此外,当作业成功时,fine_tuned_model 字段将填充模型名称,可将此模型指定为 Completions API 的参数,并使用 Playground 向它发出请求。首次完成后,模型可能需要几分钟准备好处理请求,若超时可能是仍在加载中,几分钟后重试。可通过将模型名称作为 model 完成请求的参数传递来开始发出请求,包括 OpenAI 命令行界面、cURL、Python、Node.js 等方式。 要删除微调模型,需在组织中被指定为“所有者”。 创建微调模型时,假设已准备好训练数据。使用 OpenAI CLI 开始微调工作,需指定基本模型的名称(ada、babbage、curie 或 davinci),还可使用后缀参数自定义微调模型的名称。运行命令会上传文件、创建微调作业、流式传输事件直到作业完成,每个微调工作都从默认为 curie 的基本模型开始,模型选择会影响性能和成本。开始微调作业后,可能需要一些时间才能完成,若事件流中断可恢复。工作完成后会显示微调模型的名称,还可列出现有作业、检索作业状态或取消作业。
2025-01-06
模型微调对模型的影响和价值
模型微调对模型具有重要的影响和价值,主要体现在以下几个方面: 1. 提高结果质量:能够获得比即时设计更高质量的结果。 2. 增加训练示例:可以训练比提示中更多的例子,从而改进小样本学习,在大量任务中取得更好的效果。 3. 节省 Token 和成本:由于更短的提示而节省了 Token,对模型进行微调后,不再需要在提示中提供示例,能够节省成本并实现更低延迟的请求。 4. 提高模型效率:通过专门化模型,可以使用更小的模型,并且由于只对输入输出对进行训练,舍弃示例或指令,进一步改善延迟和成本。 5. 适应特定领域:针对特定领域进行微调,优化所有层的参数,提高模型在该领域的专业性。 目前,微调适用于以下基础模型:davinci、curie、babbage 和 ada。参数规模角度,大模型的微调分成全量微调 FFT(Full Fine Tuning)和 PEFT(ParameterEfficient Fine Tuning)两条技术路线,从成本和效果综合考虑,PEFT 是目前业界较流行的微调方案。 通用大模型如 GPT4.0、GPT3.5 等具有广泛的自然语言理解能力,但在特定领域表现可能不理想。而通过微调,可以在现有模型基础上,更经济、高效地适应新的应用领域,节省成本并加快模型部署和应用速度。
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 同一时间学习的图片数量。数值越大,训练速度越快,内存占用越大,收敛得慢;数值越小,训练速度越慢,内存占用越小,收敛得快。以 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
flux lora调参数,我训练出来的人物模型和数据集的人物图片不像,出现这种情况的原因都有哪些,应该调整哪些参数,我需要我的flux模型训练出来的模型是一致性还原性,和泛化性比较不错的,按照这个方向给我指导
以下是关于 flux lora 调参数以获得一致性、还原性和泛化性较好的人物模型的指导: 打标环节: 选择基础大模型,如“麦橘写实”,并为 lora 命名。 将照片导入,选择合适分辨率,可勾选“脸部加强训练”,然后进行预处理。手动裁剪图片比自动裁剪更可靠。 预处理后会出现脸部和整体文件夹,且每张照片自动打好 tag 标签。 可为整体添加统一标签,也可单独修改每张图片的标签。标签有助于 AI 理解图片,描述越详细,人物变化可能越多,泛化性可能越好。仔细检查每张图片的标签,其质量会影响人物 lora 的泛化性。 参数调整环节: 大部分参数是固定的,主要的几个按照人物参数配置一遍。后期根据生成结果再调整。 炼丹环节: 例如 18 张脸部图片,20 张整体图片,各训练 50 步,循环训练 10 次,并行步数为 1。训练总步数和时长会有所不同,loss 值可作为参考,但最终效果仍需通过测试判断。 此外,在 Lora 串联方面,多个 Lora 串联时左右顺序不影响结果,可复制并点对点连接。CLIP 层 1 和 2 的效果不同,加 Lora 时某些 Lora 可能更适合 2。Lora 可用于生成底模无法画出的内容。在运行中点击取消可打断正在渲染跑的图。图像放大可通过 up scale image using model 节点,选择放大模型,用 resize 节点调整尺寸,再用编码器和采样器处理。放大模型直接放大的图像效果不佳,需再次采样增加细节。添加飞桨缺失节点可通过拖入工作流查看标红节点,从管理器安装或从 GitHub 获取节点包放入文件管理系统。采样器和调度器参数设置建议参考模型作者推荐,并结合自己调试。Web UI 中 Lora 库有刷新按钮,将 Lora 丢到文件夹后多点几次刷新即可。
2025-01-04
flux lora训练指南
以下是关于 Flux 的 Lora 模型训练的指南: 准备工作: 需要下载以下模型: t5xxl_fp16.safetensors clip_l.safetensors ae.safetensors flux1dev.safetensors 注意事项: 1. 不使用的话,模型放置位置不限,但要清楚其“路径”,后续会引用到。 2. 训练建议使用 flux1dev.safetensors 版本的模型和 t5xxl_fp16.safetensors 版本的编码器。 下载脚本: 夸克网盘链接:https://pan.quark.cn/s/ddf85bb2ac59 百度网盘链接:https://pan.baidu.com/s/1pBHPYpQxgTCcbsKYgBi_MQ?pwd=pfsq 提取码:pfsq 修改脚本路径和参数: 如果显卡是 16G,右键 16G 的 train_flux_16GLora 文件;如果显卡是 24G 或更高,右键 24G 的 train_flux_24GLora 文件。(DB 全参微调对硬件要求高,内存 32G 可能不行。即使是 train_flux_24GLora 方式,也建议内存高于 32G 以避免意外。) 右键用代码编辑器打开文件,理论上只需修改红色部分:底模路径、VAE 路径、数据集路径,还有下面的 clip 路径和 T5xxl 路径。如果 4 件套在一个文件夹,路径填写更简单;若不在,需准确复制各模型的路径,注意检查格式,避免多双引号、漏双引号或路径错误。 数据集准备: 1. 进入厚德云 模型训练 数据集:https://portal.houdeyun.cn/sd/dataset 2. 创建数据集:在数据集一栏中,点击右上角创建数据集,输入数据集名称。zip 文件可以包含图片+标签 txt,也可以只有图片(之后可在 c 站使用自动打标功能),也可一张一张单独上传照片,但建议提前将图片和标签打包成 zip 上传。Zip 文件里图片名称与标签文件应当匹配,例如:图片名"1.png",对应的达标文件就叫"1.txt"。上传 zip 后等待一段时间,确认创建数据集,返回到上一个页面,等待上传成功后可点击详情检查,能预览到数据集的图片以及对应的标签。 Lora 训练: 点击 Flux,基础模型会默认是 FLUX 1.0D 版本。选择数据集,点击右侧箭头选择上传过的数据集。触发词可有可无,取决于数据集是否有触发词。模型效果预览提示词可随机抽取数据集中的一个标签填入。训练参数可调节重复次数与训练轮数,若不知如何设置,可默认 20 重复次数和 10 轮训练轮数。可按需求选择是否加速,点击开始训练,会显示所需消耗的算力,然后等待训练,会显示预览时间和进度条。训练完成会显示每一轮的预览图,鼠标悬浮到想要的轮次模型,中间会有生图,点击会自动跳转到使用此 lora 生图的界面,点击下方的下载按钮则会自动下载到本地。
2025-01-04
为什么有的大模型不能和lora一起用
大模型不能和 Lora 一起用可能有以下原因: 1. 不配套:一般情况下,只有配套的大模型和 Lora 一起使用才能达到 Lora 的最佳效果。不同的大模型和 Lora 可能在特征、参数等方面不匹配。 2. 触发条件:除了加载 Lora 外,还需要加入一些特定的触发词才能保证其正常使用,如果没有满足触发条件,可能无法协同工作。 同时,模型的类型和安装位置也很重要: 1. 大模型(Ckpt)应放入 models\\Stablediffusion 目录。 2. Lora/LoHA/LoCon 模型应放入 extensions\\sdwebuiadditionalnetworks\\models\\lora 或 models/Lora 目录。 使用 Lora 时要注意作者使用的大模型,也不排除一些 Lora 和其他大模型会产生奇妙的效果。此外,文件后缀名相似,难以通过后缀名区分文件类型,可通过特定网站检测。
2025-01-02
sora和lora是什么
LoRA(LowRank Adaptation)是一种低阶自适应模型,您可以将其理解为基础模型(Checkpoint)的小插件。在生图时,LoRA可有可无,但它具有明显的价值,常见于对一些精细的控制,如面部、材质、物品等细节的控制。其权重在相关界面会有显示。 Sora 并非常见的 AI 领域特定术语,上述知识库中未提及相关内容。
2025-01-02
全量微调与少量参数微调
在参数规模的角度,大模型的微调主要分为全量微调(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
如何写出高效提示词 prompt
以下是关于如何写出高效提示词 prompt 的一些建议: 1. 明确任务:清晰地定义任务,例如写故事时包含故事背景、角色和主要情节。 2. 提供上下文:若任务需要特定背景知识,在 prompt 中提供足够信息。 3. 使用清晰语言:尽量用简单、清晰的语言描述,避免模糊或歧义词汇。 4. 给出具体要求:如有特定格式或风格要求,在 prompt 中明确指出。 5. 使用示例:若有特定期望结果,提供示例帮助 AI 理解需求。 6. 保持简洁:尽量使 prompt 简洁明了,避免过多信息导致困惑。 7. 使用关键词和标签:有助于 AI 理解任务主题和类型。 8. 测试和调整:生成文本后仔细检查结果,根据需要调整 prompt,可能需要多次迭代。 此外,还需注意以下几点: 对于星流一站式 AI 设计工具: 输入语言方面,不同基础模型对输入语言有不同要求,有的使用自然语言,有的使用单个词组,且支持中英文输入。 写好提示词可参考:利用预设词组、保证内容准确(包含人物主体、风格等要素)、调整负面提示词、利用“加权重”功能突出重点内容,还可使用辅助功能如翻译、删除所有提示词、会员加速等。 Prompt 的专场教程 基础篇: Prompt 是用于指挥 AI 生成所需内容的一段指令,每个单独的提示词叫 tag(关键词)。 支持英语和 emoji,可参考提示词字典。 语法规则包括用英文半角符号逗号分隔 tag,改变 tag 权重有两种写法,还可进行 tag 步数控制。
2025-01-06
怎么跟AI高效提问
以下是跟 AI 高效提问的一些方法和要点: 1. 明确角色和任务:例如,在提供法律建议时,赋予 AI 专注于民商事法律领域、擅长案例研究等角色,以利用其数据处理和模式识别能力。 2. 组织 Prompt:使用简洁明了的语言总结核心观点和注意事项,运用引号、分隔符号以及“首先、其次、最后”等连接词来使建议更有条理。 3. 遵循特定格式:格式为【设定角色+任务目标+上下文和背景信息+(正面要求)详细需求和细节性信息+(负面要求)限制和不需要的内容+回答的语言风格和形式】。 4. 讲清楚背景和目的:在提问时梳理清楚背景信息和提问目的,如律师处理交通事故案件时详细描述案件事实和依据法规询问责任划分。 5. 学会提问技巧:使用清晰、具体的语言,避免模糊表述,了解 AI 工作原理和限制,以提高回答准确性。 6. 拆解工作流程:将复杂任务分解为更小、更具体的环节,便于 AI 精确执行。 7. 运用不同学科思维模式:强调如工程思维、设计思维等,更好地引导 AI。 8. 把 AI 视作多个智能体:每个智能体是不同领域的专家,通过统筹实现复杂任务的有序协作和高效完成。
2024-12-23
🚀接着上期SOP+AI:打造职场高效能人士的秘密武器的分享,今天继续聊聊SOP+AI的应用,🎯今天的主题是“怎样利用AI节约10倍内容创作时间?”📚最近跟团队有开始运营小红书账号,就想着先给自己打造点顺手的工具,于是乎「小红书文案专家」就出生啦~🎉[heading1]一、先介绍下我们小Bot[content]🛺BOT名称:小红书文案专家功能价值:见过多个爆款文案长啥样,只需输入一个网页链接或视频链接,就能生成对应的小红书文案,可以辅助创作者生成可以一键复制发布的初稿,提供创意和内容,1
以下是关于“SOP+AI”的相关内容: 怎样利用 AI 节约 10 倍内容创作时间? 最近团队开始运营小红书账号,于是打造了“小红书文案专家”。 BOT 名称:小红书文案专家 功能价值:见过多个爆款文案,输入网页或视频链接就能生成对应的小红书文案,辅助创作者生成可一键复制发布的初稿,提供创意和内容,节约 10 倍文字内容创作时间。 应用链接:https://www.coze.cn/s/ij5C6LWd/ 设计思路: 痛点:个人时间有限,希望有人写初稿并生成配图。 实现思路:为自己和团队设计工作流,让 AI 按运营思路和流程工作。 一期产品功能: 1. 提取任何链接中的标题和内容。 2. 按小红书平台文案风格重新整理内容。 3. 加入 emoji 表情包,使文案更有活力。 4. 为文案配图片。 二期计划功能:持续优化升级,增加全网搜索热点功能,提炼热点新闻或事件关键信息,结合用户想要生成的内容方向输出文案和配图。 SOP+AI:打造职场高效能人士的秘密武器 案例分享:X 公司客服团队引入 SOP 和 AI 助手后,工作效率显著提升。引入 SOP 前,客服工作流程混乱,效率低下,客户满意度不高。引入 SOP 标准化操作后,效率提高。进一步引入 AI 助手,自动回复常见问题、处理简单请求,减少客服工作量,还能及时发现问题帮助优化。结果客服团队工作效率提升 30%以上,客户满意度显著提高。SOP 能提升效率、减少失误、促进协作,借助 AI 助手,SOP 制定和优化更高效智能。
2024-12-20
如何高效给AI指令
要高效给 AI 指令,需要注意以下几个方面: 1. 清楚表达自己的意图:这并非易事,若表达不清,AI 难以理解和帮助您,例如“五彩斑斓的黑”这类模糊表述。 2. 让 AI 明白所有相关的上下文:人与人沟通时常见的错误是假定对方明白所有上下文,与 AI 交流也如此,需思考如何交代及交代多少上下文。 3. 将复杂的任务拆分成简单的任务:好的管理者会帮助员工拆分复杂任务,对让 AI 做事也是同理,合格的提示工程师需将复杂任务拆分为几个简单任务让 AI 完成,甚至组建工作流让多个 AI 智能体协同完成。 4. 精确控制 AI 做事。 此外,在某些情况下,我们只需给 AI 下达明确命令完成一次性任务,如制作插件、编写脚本等。但当期待提高,希望从繁琐日常任务解脱时,需了解 AI 编程的边界和限制。遵循以下编程准则: 1. 能不编,尽量不编:随着技术发展,多数需求能找到现成软件解决方案,优先找线上工具,其次找插件,最后是本地应用;对于 API 功能,先找现成开源工具,然后考虑付费服务,都找不到才考虑自己编程,编写时要以终为始,聚焦目标。 ICIO 框架是一种结构化的提示词设计方法,由四个关键部分构成: 1. Instruction(指令):是核心要素,编写时应简洁明了、具体详细、行动导向、单一任务。 2. Context(背景信息):提供任务相关背景,包括任务目的、目标受众、相关背景、限制条件、角色扮演等。 3. Input Data(输入数据):为 AI 提供执行任务所需具体信息或数据,并非所有任务都需要。 4. Output Indicator(输出引导):指导 AI 构建和呈现输出结果,包括格式要求、语气风格、长度限制、结构指引、特殊要求、评估标准等。
2024-12-18
如何与chat gpt高效的对话
以下是与 ChatGPT 高效对话的一些方法和步骤: 1. 利用 ChatGPT 构建自定义聊天机器人: ChatGPT 是一个 Web 界面,可进行会话并有交互式聊天界面。 能使用大型语言模型构建如餐厅 AI 客户服务代理或点餐员等角色的自定义聊天机器人。 需设置 OpenAI Python 包,聊天模型被训练成将一系列消息作为输入并返回生成的消息。 定义辅助函数,如 getCompletion 函数和 generateResponse 函数,以实现与模型的交互和生成对话。 2. 完成一个 AI 应用: 在微信群中常见自动总结文章的 bot,可通过 OpenAI API 或其他家的 API 实现。 包含获得 API Key(扣费凭证)、获取 API 的示例代码(通常在 Playground 里面)、将必要信息给 ChatGPT 整合等步骤。 以 OpenAI API 为例,可在 https://platform.openai.com/apikeys 获取 API Key,通常需绑定支付方式。 在 https://platform.openai.com/playground 获取 API 调用的示例代码,注意定义 SYSTEM 和 USER 值。 可让 ChatGPT 继续帮忙写代码。 3. 用于英文学习: 推特博主的英语老师制作了 GPT 工作流,基于日常需求生成定制素材。 具体使用方法:把整段 prompt 喂给 ChatGPT 并开新对话学习英文,ChatGPT 会扮演美国好朋友,返回更地道表达,对俚语加粗,举一反三给出更多例子,输入特定内容会输出对话回顾和推荐任务。 建议开窗口复制 prompt,手机端操作,打电话练习口语和听力,结束后看回顾帮助阅读,群友在讯飞上做类似尝试效果不错。
2024-12-06
最高效便捷整理会议纪要的ai
以下为一些高效便捷整理会议纪要的 AI 工具和方法: 【我的会议我做主】一款全能会议助手: 会议前:为主持人打造定制化的 PPT,提供海报设计,管理待办事项。 会议中:像专业 IT 人员一样确保技术设备运行顺畅。 会议后:迅速整理会议纪要,收集并分析反馈,自动生成飞书文档和二维码。 Bot 地址: BotID:7387599720359116826 案例一:【普通人秒变效率王】AI 工作流秒记会议纪要 视频讲解:https://m.okjike.com/originalPosts/65fa9d1112ed2fda68e6215e?s=eyJ1IjoiNTlhZDcyZDUwYjAyYTEwMDEyMjc3YmZmIiwiZCI6MX0%3D 工作流概述: 文本导出:使用飞书妙记将会议对话导出为 txt 文件。 纪要生成:启动 Kimichat 输入会议纪要 prompt 提示词并上传 txt 文件。 内容完善:与 Kimichat 对话并补充会议中未记录或需强调的信息。 纪要微调:审阅 Kimichat 生成的会议纪要草稿进行必要微调。 成品输出:确认会议纪要内容无误后,输出最终版文档。 和 Kimichat 的完整对话(点击可直接复用并接着聊): 总结类 AI 工具:
2024-11-24