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
微调
微调(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
全量微调与少量参数微调
在参数规模的角度,大模型的微调分为全量微调(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
layer_xl_bg2ble.safetensors,layer_xl_transparent_conv.safetensors,vae_transparent_encoder.safetensors这一类是大模型,还是Lora?
layer_xl_bg2ble.safetensors、layer_xl_transparent_conv.safetensors、vae_transparent_encoder.safetensors 这类文件可能是大模型的一部分,也可能是 Lora 模型。 在 AI 模型中: 基础模型(英文名 Checkpoint)是生图必需的,任何生图操作必须要选定一个基础模型才能开始。 Lora 是低阶自适应模型,可以理解为基础模型的小插件,生图时可有可无,但在控制面部、材质、物品等细节方面有明显价值。 同时,VAE 是个编码器,功能类似于滤镜,可调整生图的饱和度。
2025-01-31
想知道lora是什么,怎么使用
LoRA 是一种在图像生成领域具有重要作用的技术。以下是关于 LoRA 的详细介绍和使用方法: LoRA 可以固定图像的特征,包括人物特征、动作特征和照片风格等。在使用非 SDXL 基础模型时会用到 LoRA,使用方法和平常类似,但需要注意将 cfg 值调小,一般设置为 1,步数设置根据所使用的 LoRA 步数为准。 在实际使用中,以 Stable Diffusion 为例,点击“生成”下面的第三个按钮,会弹出新的选项框,找到 Lora 选项,就会出现下载保存到电脑的 Lora 模型。点击要用的 Lora ,会自动添加到关键词的文本框里面,Lora 可以叠加使用,但新手不建议使用太多,每个 Lora 后面的数字用于调整权重,一般只会降低权重。选择 Lora 时要根据最初想要生成的照片类型来选择相应风格的 Lora 。 此外,LoRA 具有极大的商用价值,比如“墨心”的 LoRA 可以把图片变成水墨风格,盲盒 LoRA 可以生成 2.5D 的卡通小人角色,还有一些明星或知名动漫角色的 LoRA 可以直接生成相应形象。但在使用时需要有很强的版权和法律意识。
2025-01-23
Flux 的lora模型训练教程
以下是 Flux 的 Lora 模型训练教程: 1. 模型准备: 下载所需模型,如 t5xxl_fp16.safetensors、clip_l.safetensors、ae.safetensors、flux1dev.safetensors。 注意: 不使用时模型存放位置随意,只要知晓路径,后续会引用。 训练建议使用 flux1dev.safetensors 版本的模型和 t5xxl_fp16.safetensors 版本的编码器。 2. 下载训练脚本: 夸克网盘链接:https://pan.quark.cn/s/ddf85bb2ac59 百度网盘链接:https://pan.baidu.com/s/1pBHPYpQxgTCcbsKYgBi_MQ?pwd=pfsq 提取码:pfsq 3. 训练步骤: 进入厚德云模型训练数据集:https://portal.houdeyun.cn/sd/dataset 步骤一·创建数据集: 在数据集一栏中,点击右上角创建数据集。 输入数据集名称。 可以提前将图片和标签打包成 zip 上传,zip 文件里图片名称与标签文件应当匹配,如图片名"1.png",对应的达标文件就叫"1.txt"。也可以一张一张单独上传照片。 上传 zip 以后等待一段时间,确认创建数据集,返回到上一个页面,等待一段时间后上传成功,可点击详情检查,预览数据集的图片以及对应的标签。 步骤二·Lora 训练: 点击 Flux,基础模型会默认是 FLUX 1.0D 版本。 选择数据集,点击右侧箭头,会跳出所有上传过的数据集。 触发词可有可无,取决于数据集是否有触发词。 模型效果预览提示词则随机抽取一个数据集中的标签填入即可。 训练参数这里可以调节重复次数与训练轮数,厚德云会自动计算训练步数。如果不知道如何设置,可以默认 20 重复次数和 10 轮训练轮数。 可以按需求选择是否加速,点击开始训练,会显示所需要消耗的算力。 然后等待训练,会显示预览时间和进度条。训练完成的会显示出每一轮的预览图。鼠标悬浮到想要的轮次模型,中间会有个生图,点击会自动跳转到使用此 lora 生图的界面。点击下方的下载按钮则会自动下载到本地。 4. 低配置方案: 开源社区对低配置方案进行了优化,NF4 来自 controlnet 的作者,GGUF 则包含多个版本可以使用。 NF4 模型下载:https://huggingface.co/lllyasviel/flux1devbnbnf4/blob/main/flux1devbnbnf4.safetensors ,放置在 ComfyUI/models/checkpoint/中(不像其他 Flux 模型那样放置在 UNET 中),NF4 配套节点插件:git clone https://github.com/comfyanonymous/ComfyUI_bitsandbytes_NF4.git GGUF 模型下载:Flux GGUF 模型:https://huggingface.co/city96/FLUX.1devgguf/tree/main ,GGUF 配套节点插件:GGUF 节点包:https://github.com/city96/ComfyUIGGUF 。 值得一提的是在最新版本的 ComfyUI 中 GGUF 的节点插件可以在 Manager 管理器中搜到下载安装,NF4 的配套节点插件则搜不到。 注意使用精度优化的低配模型的话,工作流和原版是不一样的。此处没有专门列举。 自己改的话就是把上面官方的 fp8 的工作流,只需把底模的节点换成 NF4 的或者 GUFF 的即可。 相关生态发展很快,有 Lora、Controlnet、IPadpter 相关生态建设非常速度,以及字节最近发布的 Flux Hyper lora 是为了 8 步快速生图。
2025-01-19
理解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
全量微调与少量参数微调
在参数规模的角度,大模型的微调主要分为全量微调(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
代码小白想要学习上手aiagent 请给我制定高效学习流程
以下是为代码小白制定的学习 AI Agent 的高效流程: 1. 基础了解 度过第一阶段,了解 AI 的基本原理和发展阶段。 2. 选择方向 鉴于您是代码小白,建议从不需要代码基础的 Coze 工作流学起。它适用所有人,只要能发现智能体的需求,就可以用工作流来实现。 3. 学习资源 可以参考《雪梅 May 的 AI 学习日记》,了解在业务运营领域如何通过 Coze 接触大量应用场景和进行 prompt 练习。 阅读安仔的文章,学习如何使用极简未来平台、腾讯云轻量应用服务器、宝塔面板和 Docker 搭建一个 AI 微信聊天机器人,了解相关技术组件的选用、配置步骤、费用和运维问题。 查看元子的分享,如“小白的 Coze 之旅”,深入了解 Coze 平台。 4. 加入社群 可以加入免费的 AI Agent 共学群,基于 WaytoAGI 社区等高质量信息源,分享时下 AI Agent 相关的玩法、经验和前沿资讯。通过微信号 Andywuwu07 或扫描二维码加微信,备注 AI 共学即可加入。 希望以上流程对您有所帮助,祝您学习顺利!
2025-02-05
如何利用AI高效读书
以下是关于如何利用 AI 高效读书的一些方法和建议: 1. 对于读书时遇到的有触动但需批判性思考和怀疑的文本,可将其整理归纳、标记重点、打上标签并放入笔记系统,准备展开深度思考和实践。 2. 以深度思考的问题为例,践行 AI 对人的赋能模式,如通过 AI 信息杠杆,利用 AI 搜索引擎和大模型,迅速掌握相关知识并完成相关思考。 3. 基于上述实践,生成自己的观点和决策,并将其打造成体系化的内容产品,实现价值。 4. 通过一个碎片化知识在左侧知识库中的“点、线、面、体”式的流转,把“别人说的话”变成“自己的智慧”。 此外,利用 AI 进行英语学习和数学学习的方法如下: 英语学习: 1. 利用智能辅助工具(如 Grammarly)进行英语写作和语法纠错,改进英语表达和写作能力。 2. 使用语音识别应用(如 Call Annie)进行口语练习和发音纠正,获取实时反馈和建议。 3. 借助自适应学习平台(如 Duolingo),利用 AI 技术获得量身定制的学习计划和个性化学习内容。 4. 运用智能对话机器人(如 ChatGPT)进行英语会话练习和对话模拟,提高交流能力和语感。 数学学习: 1. 使用自适应学习系统(如 Khan Academy),结合 AI 技术获取个性化的数学学习路径和练习题。 2. 利用智能题库和作业辅助工具(如 Photomath),通过图像识别和数学推理技术获取数学问题的解答和解题步骤。 3. 借助虚拟教学助手(如 Socratic),利用 AI 技术解答数学问题、获取教学视频和答疑服务。 4. 参与交互式学习平台(如 Wolfram Alpha)的数学学习课程和实践项目,利用 AI 技术进行数学建模和问题求解。 还可以通过 Coze 和飞书多维表格打造专属 AI 智能体来提高知识管理效率,其核心看点包括一键无感收藏、自动整理稍后读清单、智能匹配兴趣并推荐相关内容、定制阅读计划、自动标注内容看点等,适合对 AI 智能体和知识管理感兴趣但可能没有技术背景的读者。如果只是想使用该工具,也有搭建好的开箱即用的 Coze Bot 可供直接上手,获取方式为 https://www.coze.cn/s/irQFQbwA/ 。
2025-02-03
分析一下目前国内的ai浏览器有哪些,给我推荐一款简洁、高效、实用的ai浏览器
目前国内的 AI 浏览器有以下几种: 1. AI Share Card 插件: 安装方式: 在 Chrome、Edge 等浏览器中安装插件,下载地址:https://aicard.eze.is 。 Chrome 应用商店安装,也可以在 Chrome 应用商店直接搜索 AI Share Card(需要正确网络环境访问,安装后支持自动更新)。 下载最新安装包,访问官网下载最新安装包,适用于无法访问应用商店的用户,本地安装指南详见《AI Share Card 插件本地安装指南》。 2. Dia:Arc 浏览器抓住了最近两年 AI 爆发提供的机会,增加了多项 AI 功能。但 The Browser Company 公司宣布重新做一款 AI 浏览器 Dia,团队决定将其打造成更前瞻、更强大、更 AI 的浏览器,把浏览器变成每个人的应用程序平台。 如果您想要一款简洁、高效、实用的 AI 浏览器,Arc 浏览器可能是一个不错的选择,它增加了网页摘要、问答、搜索、自动管理等多项 AI 功能。
2025-02-03
如何高效的编写软件测试用例
以下是关于如何高效编写软件测试用例的方法: 1. 基于规则的测试生成 测试用例生成工具 Randoop:基于代码路径和规则生成测试用例,适用于 Java 应用程序。 Pex:微软开发的智能测试生成工具,自动生成高覆盖率的单元测试,适用于.NET 应用。 模式识别 Clang Static Analyzer:利用静态分析技术识别代码模式和潜在缺陷,生成相应的测试用例。 Infer:Facebook 开发的静态分析工具,自动生成测试用例,帮助发现和修复潜在错误。 2. 基于机器学习的测试生成 深度学习模型 DeepTest:利用深度学习模型生成自动驾驶系统的测试用例,模拟不同驾驶场景,评估系统性能。 DiffTest:基于对抗生成网络(GAN)生成测试用例,检测系统的脆弱性。 强化学习 RLTest:利用强化学习生成测试用例,通过与环境交互学习最优测试策略,提高测试效率和覆盖率。 A3C:基于强化学习的测试生成工具,通过策略梯度方法生成高质量测试用例。 3. 基于自然语言处理(NLP)的测试生成 文档驱动测试生成 Testim:AI 驱动的测试平台,通过分析文档和用户故事自动生成测试用例,减少人工编写时间。 Test.ai:利用 NLP 技术从需求文档中提取测试用例,确保测试覆盖业务需求。 自动化测试脚本生成 Selenium IDE + NLP:结合 NLP 技术扩展 Selenium IDE,从自然语言描述中生成自动化测试脚本。 Cucumber:使用 Gherkin 语言编写的行为驱动开发(BDD)框架,通过解析自然语言描述生成测试用例。 4. 基于模型的测试生成 状态模型 GraphWalker:基于状态模型生成测试用例,适用于复杂系统的行为测试。 Spec Explorer:微软开发的模型驱动测试工具,通过探索状态模型生成测试用例。 场景模拟 Modelbased Testing :基于系统模型自动生成测试用例,覆盖各种可能的操作场景和状态转换。 Tosca Testsuite:基于模型的测试工具,自动生成和执行测试用例,适用于复杂应用的端到端测试。 5. 实践中的应用示例 Web 应用测试:使用 Testim 分析用户行为和日志数据,自动生成高覆盖率的测试用例,检测不同浏览器和设备上的兼容性问题。 移动应用测试:利用 Test.ai 从需求文档中提取测试用例,确保覆盖关键功能和用户路径,提高测试效率和质量。 复杂系统测试:采用 GraphWalker 基于系统状态模型生成测试用例,确保覆盖所有可能的状态和操作场景,检测系统的边界情况和异常处理能力。 6. 工具和平台 Testim:AI 驱动的自动化测试平台,生成和管理测试用例。 Test.ai:基于 NLP 技术的测试用例生成工具,适用于移动应用和 Web 应用。 DeepTest:利用深度学习生成自动驾驶系统测试用例。 GraphWalker:基于状态模型生成测试用例,适用于复杂系统的行为测试。 Pex:微软开发的智能测试生成工具,自动生成高覆盖率的单元测试。
2025-01-22
目前最高效的ai编程应用是什么
以下是一些目前高效的 AI 编程应用: 1. GitHub Copilot:由 GitHub 联合 OpenAI 和微软 Azure 团队推出,支持多种语言和 IDE,能为程序员快速提供代码建议,帮助更快、更少地编写代码。 2. 通义灵码:阿里巴巴团队推出,基于通义大模型,提供多种编程辅助能力。 3. CodeWhisperer:亚马逊 AWS 团队推出,由机器学习技术驱动,为开发人员实时提供代码建议。 4. CodeGeeX:智谱 AI 推出的开源免费 AI 编程助手,基于 130 亿参数的预训练大模型,可提升开发效率。 5. Cody:代码搜索平台 Sourcegraph 推出,借助强大的代码语义索引和分析能力,了解开发者的整个代码库。 6. CodeFuse:蚂蚁集团支付宝团队为国内开发者提供的免费 AI 代码助手,基于自研基础大模型微调。 7. Codeium:一个由 AI 驱动的编程助手工具,通过提供代码建议等帮助提高编程效率和准确性。 更多辅助编程 AI 产品,还可以查看这里:https://www.waytoagi.com/category/65 。每个工具的功能和适用场景可能不同,您可以根据自身需求选择最适合的工具。 生成性 AI 作为程序员的助手是最早的应用之一,其在大量代码库上训练,在程序员编码时给出建议,效果出色。但在编程中正确性至关重要,如研究发现 40%的 AI 生成代码包含漏洞,用户需在生成足够代码提升生产力和检查正确性之间找到平衡。Copilot 帮助提高了开发人员的生产力,估计增长在 2 倍或更少的范围内。 在写作方面,最佳免费选项有 Bing 和 Claude 2,付费选项有带有插件的 ChatGPT 4.0/ChatGPT 。目前 GPT4 仍是功能最强的人工智能写作工具,可在 Bing(选择“创新模式”)免费访问或购买 ChatGPT 订阅访问。Claude 紧随其后,也有有限免费选项。这些工具也被集成到常见办公应用程序中,如 Microsoft Office 将包括由 GPT 提供支持的副驾驶,Google Docs 将整合 Bard 的建议。
2025-01-19
如何写出高效提示词 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