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

大模型微调

Answer

大模型微调是在较小的、特定领域的数据集上继续大模型的训练过程,具有重要意义和多种方式:

意义:

  • 提高模型在特定任务中的性能:可以输入更多示例,经过微调的模型在特定任务中表现更好,但可能会失去一些通用性。
  • 提高模型效率:实现更低的延迟和成本,可通过专门化模型使用更小的模型,以及舍弃示例或指令来改善。

方式:

此外,通俗来讲,大模型是输入大量语料,让计算机获得类似人类的“思考”能力,能进行文本生成、推理问答、对话、文档摘要等工作。大模型的训练、使用过程可类比上学参加工作:找学校(需要大量 GPU 进行训练)、确定教材(需要大量数据)、找老师(选择合适算法)、就业指导(即微调)、搬砖(推导)。在 LLM 中,Token 被视为模型处理和生成的文本单位,会对输入进行分词并数字化形成词汇表。

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

大模型入门指南

通俗来讲,大模型就是输入大量语料,来让计算机获得类似人类的“思考”能力,使之能够理解自然语言,能够进行『文本生成』、『推理问答』、『对话』、『文档摘要』等工作。既然是学习,那我们就可以用『上学参加工作』这件事来类比大模型的训练、使用过程:1.找学校::训练LLM需要大量的计算,因此GPU更合适,因此只有购买得起大量GPU的贵族学校才有资本训练自己的大模型2.确定教材::大模型顾名思义就是大,需要的数据量特别多,几千亿序列(Token)的输入基本是标配3.找老师::即用什么样的算法讲述“书本”中的内容,让大模型能够更好理解Token之间的关系4.就业指导::学完书本中的知识后,为了让大模型能够更好胜任某一行业,需要进行微调(fine tuning)指导5.搬砖::就业指导完成后,下面就要正式干活了,比如进行一次翻译、问答等,在大模型里称之为推导(infer)在LLM中,Token([2])被视为模型处理和生成的文本单位。它们可以代表单个字符、单词、子单词,甚至更大的语言单位,具体取决于所使用的分词方法(Tokenization)。Token是原始文本数据与LLM可以使用的数字表示之间的桥梁。在将输入进行分词时,会对其进行数字化,形成一个词汇表(Vocabulary),比如:The cat sat on the mat,会被分割成“The”、“cat”、“sat”等的同时,会生成下面的词汇表:|Token|ID||-|-||The|345||cat|1256||sat|1726||…|…|

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应用程序的效率意味着更低的延迟和更低的成本。实现这一优势有两种方法。通过专门化模型,您可以使用更小的模型。此外,由于只对输入输出对进行训练,而不是对完整的提示及其任何提示工程技巧和提示进行训练,因此可以舍弃示例或指令。这可以进一步改善延迟和成本。

大圣:全网最适合小白的 Llama3 部署和微调教程

大模型微调的意义在于学习新的知识,因此我们需要使用一份叫做数据集的东西。数据集就是用来让大模型重新学习的知识数据集的获取以及简单的原理可以参考文档:[self-llm/LLaMA3/04-LLaMA3-8B-Instruct Lora微调。md at master · datawhalechina/self-llm](https://github.com/datawhalechina/self-llm/blob/master/LLaMA3/04-LLaMA3-8B-Instruct%20Lora%20%E5%BE%AE%E8%B0%83.md)数据集:json下载地址:[https://github.com/datawhalechina/self-llm/blob/master/dataset/huanhuan.json](https://github.com/datawhalechina/self-llm/blob/master/dataset/huanhuan.json)[huanhuan.json](https://bytedance.feishu.cn/space/api/box/stream/download/all/R73db8mk5o7bNix4semcdsMAnAe?allow_redirect=1)[heading3]进行微调[content]有了数据集,就可以使用代码进行微调了。1.首先我们把数据集上传到你的服务器1.编写微调代码代码如下:1.执行微调代码1.微调完成大概15分钟左右就可以微调完成

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
大语言模型幻觉的本质是什么
大语言模型幻觉的本质主要包括以下方面: 1. 大语言模型的底层原理是基于数学概率的文字预测,类似于文字接龙,这导致其存在幻觉问题,会在没有答案的情况下提供虚假信息,提供过时或通用的信息,从可信度低非权威来源的资料中提供结果等。 2. 样本存在错误,即如果大语言模型学习的“教材”中有错误,那么它也容易给出错误的回答。 3. 大语言模型技术的本质导致其输出结果具有不可预测性,且静态的训练数据导致其掌握的知识存在截止日期,无法即时掌握最新信息。 4. 大语言模型通过训练数据猜测下一个输出结果,可能因错误数据导致给出错误答案,优质数据集对其很重要。
2025-02-16
LLM 训练推理模型有哪些
以下是一些常见的 LLM 训练推理模型: 1. FengshenbangLM: 地址: 简介:是 IDEA 研究院认知计算与自然语言研究中心主导的大模型开源体系,开源了姜子牙通用大模型 V1,是基于 LLaMa 的 130 亿参数的大规模预训练模型,具备翻译、编程、文本分类、信息抽取、摘要、文案生成、常识问答和数学计算等能力。除姜子牙系列模型之外,还开源了太乙、二郎神系列等模型。 2. BiLLa: 地址: 简介:开源了推理能力增强的中英双语 LLaMA 模型。较大提升 LLaMA 的中文理解能力,并尽可能减少对原始 LLaMA 英文能力的损伤;训练过程增加较多的任务型数据,利用 ChatGPT 生成解析,强化模型理解任务求解逻辑;全量参数更新,追求更好的生成效果。 3. Moss: 地址: 简介:支持中英双语和多种插件的开源对话语言模型,MOSS 基座语言模型在约七千亿中英文以及代码单词上预训练得到,后续经过对话指令微调、插件增强学习和人类偏好训练具备多轮对话能力及使用多种插件的能力。 此外,Andrej Karpathy 的相关介绍中提到了 LLM 训练的一些情况,如训练过程涉及大约 10TB 的文本,通常来源于互联网的抓取,需要大量的互联网资源和一个 GPU 集群,费用大约 200 万美元。Karpathy 的视频还详细介绍了 LLM 训练的全部过程,包括预训练、有监督微调和强化学习等。
2025-02-16
你是一名电商专家,有没有哪个AI大模型或者智能体可以完成以下功能:输入材质图片,得到经过设计后的成品衣服
目前尚未有成熟的 AI 大模型或智能体能够直接实现输入材质图片就得到经过设计后的成品衣服的功能。但在 AI 领域的不断发展中,可能会有相关的技术和模型在未来出现。
2025-02-16
你是一名电商专家,有没有哪个AI大模型或者智能体可以完成以下功能:输入衣服材质图片,得到经过设计后的材质成品衣服
目前尚未有专门的 AI 大模型或智能体能够直接实现您所描述的输入衣服材质图片就得到经过设计后的材质成品衣服的功能。但随着 AI 技术的不断发展,未来可能会出现相关的应用。
2025-02-16
给我提供一份标准的 DeepSeek R1大模型的 prompt 提示词模板
以下是一份关于 DeepSeek R1 大模型的 prompt 提示词模板: 一、核心原理认知 1. AI 特性定位 多模态理解:支持文本/代码/数学公式混合输入 动态上下文:对话式连续记忆(约 4K tokens 上下文窗口,换算成汉字是 8000 字左右) 任务适应性:可切换创意生成/逻辑推理/数据分析模式 2. 系统响应机制 采用意图识别+内容生成双通道 自动检测 prompt 中的:任务类型/输出格式/知识范围 反馈敏感度:对位置权重(开头/结尾)、符号强调敏感 二、基础指令框架 1. 四要素模板 2. 格式控制语法 强制结构:使用```包裹格式要求 占位符标记:用{{}}标注需填充内容 优先级符号:>表示关键要求,!表示禁止项 三、进阶控制技巧 1. 思维链引导 分步标记法:请逐步思考:1.问题分析→2.方案设计→3.风险评估 苏格拉底式追问:在得出最终结论前,请先列举三个可能存在的认知偏差 2. 知识库调用 领域限定指令:基于 2023 版中国药典,说明头孢类药物的配伍禁忌 文献引用模式:以 Nature 2022 年发表的论文为参考,解释 CRISPRCas9 最新突破 3. 多模态输出 此外,还有关于创建 DeepSeek 联网版工作流的相关内容: 1. 创建工作流 创建一个对话流,命名为 r1_with_net 开始节点,直接使用默认的 大模型分析关键词设置 模型:豆包通用模型lite 输入:直接使用开始节点的 USER_INPUT 作为大模型的输入 系统提示词:你是关键词提炼专家 用户提示词:根据用户输入`{{input}}`提炼出用户问题的关键词用于相关内容的搜索 bingWebSearch搜索 插件:BingWebSearch 参数:使用上一个节点,大模型分析输出的关键词作为 query 的参数 结果:data 下的 webPages 是网页搜索结果,将在下一个节点使用 大模型R1 参考搜索结果回答 这里需要在输入区域开启“对话历史” 模型:韦恩 AI 专用 DeepSeek 输入:搜索结果,选择搜索节点 data 下的 webPages;选择开始节点的 USER_INPUT;开启对话历史,设置 10 轮,默认不开启对话历史,开启后默认是 3 轮 系统提示词:这里不需要输入 用户提示词: 结束节点设置 输出变量选择大模型R1 参考搜索结果回答的输出 回答内容里直接输出:{{output}} 测试并发布工作流 输入你的测试问题,测试完成后,直接发布工作流 关于 HiDeepSeek 的相关内容: 1. 效果对比 用 Coze 做了个小测试,大家可以对比看看 2. 如何使用? Step1:搜索 www.deepseek.com,点击“开始对话” Step2:将装有提示词的代码发给 Deepseek Step3:认真阅读开场白之后,正式开始对话 3. 设计思路 将 Agent 封装成 Prompt,将 Prompt 储存在文件,保证最低成本的人人可用的同时,减轻自己的调试负担 通过提示词文件,让 DeepSeek 实现:同时使用联网功能和深度思考功能 在模型默认能力的基础上优化输出质量,并通过思考减轻 AI 味,增加可读性 照猫画虎参考大模型的 temperature 设计了阈值系统,但是可能形式大于实质,之后根据反馈可能会修改 用 XML 来进行更为规范的设定,而不是用 Lisp(对我来说有难度)和 Markdown(运行下来似乎不是很稳定) 4. 完整提示词 v 1.3 5. 特别鸣谢 李继刚:【思考的七把武器】在前期为我提供了很多思考方向 Thinking Claude:这个项目是我现在最喜欢使用的 Claude 提示词,也是我设计 HiDeepSeek 的灵感来源 Claude 3.5 Sonnet:最得力的助手
2025-02-16
你用的什么模型
我使用的模型是 GPT4。在不同的应用场景中,还存在其他多种模型可供选择和切换,例如: 在 Cursor 中,AI 输入框下方有下拉列表,默认准备好的模型有、cursorsmall 等,您还可以在 Cursor Settings>Models>Model Names 下添加其他模型。 ComfyUI FLUX 原生支持,FLUX.1 有三个变体:FLUX.1是一个蒸馏的 4 步模型,拥有 Apache 2.0 商用许可,适用于在本地进行部署或者个人使用。相关模型的链接、模型与工作流地址、说明文档等信息如下: FLUX.1:https://huggingface.co/blackforestlabs/FLUX.1dev/tree/main FLUX.1:https://huggingface.co/Kijai/fluxfp8 FLUX.1:https://huggingface.co/blackforestlabs/FLUX.1schnell/tree/main 模型与工作流地址: https://pan.quark.cn/s/2797ea47f691 https://pan.baidu.com/s/1nV26Fhn3WYBLrg2hSA0_YQ?pwd=cycy 说明文档:https://xiaobot.net/post/8fd64f3f52d14948824d5ee0c38e2594
2025-02-16