「AGIへの道」飛書ナレッジベースへ直行 →
ホーム/すべての質問
微调训练框架的选择
以下是关于微调训练框架选择的相关内容: 对于 Stable Diffusion 的微调训练: 1. 配置文件: 在 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(最新版本,性能优异但学习率需设置较小)等;学习率方面,单卡推荐设置 2e6,多卡推荐设置 1e7。 2. 训练启动: 将配置好的 config_file.toml 和 sample_prompt.txt 参数传入训练脚本中。 在命令行输入相应命令即可开始训练,训练脚本启动后会打印出 log 方便查看训练过程节奏。 1024 分辨率+FP16 精度+xformers 加速时,SD 模型进行 Batch Size=1 的微调训练约需 17.1G 显存,Batch Size=4 的微调训练约需 26.7G 显存,因此最好配置 24G 以上显卡。 3. 模型使用: 微调训练完成后,模型权重保存在之前设置的 output_dir 路径下。 使用 Stable Diffusion WebUI 框架加载模型进行 AI 绘画,需将训练好的模型放入/models/Stablediffusion 文件夹下,并在 Stable Diffusion WebUI 中选用。 对于 OpenAI 的微调训练: 1. 准备训练数据后,使用 OpenAI CLI 开始微调工作。 2. 指明从哪个基本模型(ada、babbage、curie 或 davinci)开始,可使用后缀参数自定义微调模型名称。 3. 运行命令后会上传文件、创建微调作业并流式传输事件直到作业完成,通常需要几分钟,也可能因作业排队或数据集大小等因素需要数小时。 4. 每个微调工作都从默认为 curie 的基本模型开始,模型选择会影响性能和成本。 5. 开始微调作业后,可能需要排队等待,完成后会显示微调模型的名称。还可以列出现有作业、检索作业状态或取消作业。
2025-01-06
微调所需要的算力计算公式
微调所需算力的计算较为复杂,会受到多种因素的影响。以下是一些相关的要点: 在一些教程中,如“大圣:全网最适合小白的 Llama3 部署和微调教程”,提到微调可能需要购买算力,预充值 50 元。 对于大型语言模型(LLM)的微调,由于模型规模大,更新每个权重可能需要很长时间的训练工作,还需考虑计算成本和服务麻烦。 调整用于微调的超参数通常可以产生产生更高质量输出的模型。例如,在某些情况中,可能需要配置以下内容: 模型:可选择“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 上的命令行标志传递。
2025-01-06
数据集的准备
以下是关于数据集准备的相关内容: 对于 Flux 的 Lora 模型训练: 建议使用自然语言。 数据集放置路径为:Flux_train_20.4\\train\\qinglong\\train ,即下图红色文件夹,里面一直往里找。 绿色部分是训练好的模型产出的地方。 如果还未准备数据集,可先检查此路径中是否有原先放好的试验数据集,可直接使用,试验操作时这一步可先省略,等训练成功再准备自己的训练集。 对于 RAG 提示工程: 可以上传自己的测试数据集,也可以使用 PromptLayer 提供的测试数据集,目前 PromptLayer 支持的数据集格式有 Json 和 CSV 两种。 经过测试,上传中文数据集可能会出现乱码,构建数据集时需留意。 为方便演示,可使用 PromptLayer 提供的数据集样例和自己编写的一套测试集。真实环境中,需要一套真实的测试集进行提示词调试,详情可至的“Datasets”中查看。 对于创建图像描述模型: 定义了如何预处理图像和文本数据后,需要组织这些数据,形成训练、验证和测试数据集。 对于每一对图像和字幕,需要创建一个目标(或标签)序列,它是原始字幕序列向右移动一个位置的版本,用于训练模型预测下一个单词。
2025-01-06
GPU的计算特性
GPU(图形处理器)具有以下计算特性: 1. 专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。 2. 诞生源自对 CPU 的减负,使显卡减少了对 CPU 的依赖,并进行部分原本 CPU 的工作,尤其是在 3D 图形处理时。 3. 所采用的核心技术有硬件 T&L(几何转换和光照处理)、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素 256 位渲染引擎等,硬件 T&L 技术可以说是 GPU 的标志。 4. 生产商主要有 NVIDIA 和 ATI。 5. 在矩阵乘法方面表现出色,早期使用游戏用的 GPU 能使运算速度提高 30 倍。 6. 随着 AI 领域的发展而不断发展,例如在训练神经网络方面发挥重要作用。
2025-01-06
模型微调对模型的影响和价值
模型微调对模型具有重要的影响和价值,主要体现在以下几个方面: 1. 提高结果质量:能够获得比即时设计更高质量的结果。 2. 增加训练示例:可以训练比提示中更多的例子,从而改进小样本学习,在大量任务中取得更好的效果。 3. 节省 Token 和成本:由于更短的提示而节省了 Token,对模型进行微调后,不再需要在提示中提供示例,能够节省成本并实现更低延迟的请求。 4. 提高模型效率:通过专门化模型,可以使用更小的模型,并且由于只对输入输出对进行训练,能够舍弃示例或指令,进一步改善延迟和成本。 5. 适应特定领域:针对特定领域进行微调,优化所有层的参数,提高模型在该领域的专业性,例如在法律或医学等领域表现更佳。 目前,微调适用于以下基础模型:davinci、curie、babbage 和 ada。从参数规模的角度,大模型的微调分成两条技术路线:全量微调 FFT(Full Fine Tuning)和 PEFT(ParameterEfficient Fine Tuning),从成本和效果综合考虑,PEFT 是目前业界较流行的微调方案。 微调是在较小的、特定领域的数据集上继续 LLM 的训练过程,把通用工具打磨成精密仪器。微调有两大好处:一是提高模型在特定任务中的性能,能够输入更多示例;二是提高模型效率,实现更低的延迟和更低的成本。 通用大模型如 GPT4.0、GPT3.5 等具有广泛的自然语言理解能力,但在特定领域表现可能不理想。而微调可以在现有模型基础上,更经济、高效地适应新的应用领域,节省成本并加快模型部署和应用速度。
2025-01-06
中外开源模型概览与分类
以下是关于中外开源模型的概览与分类: 国内方面: 国内模型在 Agent 核心基础能力上已较为接近或部分超过 GPT3.5 水平。 如 ChatGLM3Turbo 在任务分解、多文档问答和检索 API 能力上表现出色。 国内开源模型如 Baichuan213BChat 具备较强竞争力,在某些方面超过一些闭源模型。 国外方面: OpenAI 发布了开源模型,包括 PointE、Whisper、Jukebox 和 CLIP。可访问供研究人员的模型索引详细了解其研究论文中介绍的模型以及 InstructGPT 和 GPT3.5 等模型系列之间的差异。 智谱·AI 开源模型: 多模态模型方面,推出了具有视觉和语言双模态的模型,如 CogAgent18B、CogVLM17B、Visualglm6B 等。 详情可访问:【新基准】SuperCLUEAgent:首个 AI 智能体中文测评基准发布 www.CLUEbenchmarks.com/superclue_agent.html
2025-01-06
cursor使用
Cursor 的使用包括以下方面: 1. 模型切换:使用光标聊天、Ctrl/⌘K 和终端 Ctrl/⌘K 可以在不同模型之间轻松切换。在 AI 输入框下方有下拉列表,允许选择要使用的模型,默认准备好的模型有 GPT4o、GPT4、Claude 3.5 Sonnet、cursorsmall 等,还可以在 Cursor Settings>Models>Model Names 下添加其他模型。其中 cursorsmall 是 Cursor 的自定义模型,不如 GPT4 智能,但速度更快且用户可无限制访问。 2. 检查使用情况:可以在页面检查使用情况,在 Cursor 应用程序中的 Cursor Settings>General>Account 下,专业用户按“Manage Subscription”,商业用户按“Manage”。游标使用情况会根据订阅开始日期每月重置。
2025-01-06
RAG工作流对话调试
RAG(检索增强生成)工作流主要包括以下几个阶段: 1. 问题解析阶段:接收并预处理问题,通过嵌入模型(如 Word2Vec、GloVe、BERT)将问题文本转化为向量,以用于后续检索。 2. 知识库检索阶段:知识库中的文档同样向量化后,比较问题向量与文档向量,选择最相关的信息片段并抽取传递给下一步骤。 3. 信息整合阶段:接收检索到的信息,与上下文构建形成融合、全面的信息文本,整合信息准备进入生成阶段。 4. 大模型生成回答:整合后的信息被转化为向量并输入到 LLM(大语言模型),模型逐词构建回答,最终输出给用户。 RAG 的基本概念: RAG 是一种结合了检索和生成的技术,能让大模型在生成文本时利用额外的数据源,提高生成的质量和准确性。其基本流程为,首先给定用户输入(如问题或话题),RAG 从数据源中检索出相关文本片段(称为上下文),然后将用户输入和检索到的上下文拼接成完整输入传递给大模型(如 GPT),输入通常包含提示指导模型生成期望输出(如答案或摘要),最后从大模型的输出中提取或格式化所需信息返回给用户。 在实际调试预览中,例如: 1. 知识库检索部分:把输入的问题通过 Embedding 做向量化,使用语言模型优化问题、添加接近的检索词,知识库向量检索时抽取条件包含相似度 0.85,通过检索抽取出多个内容块。 2. 大模型对话部分:将相关信息传递给 LLM 最终得到 AI 的回答。
2025-01-06
常见GPU卡介绍与比较
以下是常见 GPU 卡的介绍与比较: 在 AI 基础设施的考虑因素中,比较 GPU 时需要关注以下几个方面: 训练与推理: 训练 Transformer 模型除了模型权重外,还需要存储 8 字节的数据用于训练。内存 12GB 的典型高端消费级 GPU 几乎无法用于训练 40 亿参数的模型。 训练大型模型通常在机器集群上完成,最好是每台服务器有多个 GPU、大量 VRAM 以及服务器之间的高带宽连接。 许多模型在 NVIDIA H100 上最具成本效益,但截至目前很难找到在 NVIDIA H100 上运行的模型,且通常需要一年以上的长期合作承诺。如今,更多选择在 NVIDIA A100 上运行大多数模型训练,但对于大型集群,仍需要长期承诺。 内存要求: 大型 LLM 的参数数量太多,任何卡都无法容纳,需要分布到多个卡中。 即使进行 LLM 推理,可能也需要 H100 或 A100。但较小的模型(如 Stable Diffusion)需要的 VRAM 要少得多,初创公司也会使用 A10、A40、A4000、A5000 和 A6000,甚至 RTX 卡。 硬件支持: 虽然绝大多数工作负载都在 NVIDIA 上运行,但也有一些公司开始尝试其他供应商,如谷歌 TPU、英特尔的 Gaudi2。 这些供应商面临的挑战是,模型的性能往往高度依赖于芯片的软件优化是否可用,可能需要执行 PoC 才能了解性能。 延迟要求: 对延迟不太敏感的工作负载(如批处理数据处理或不需要交互式 UI 响应的应用程序)可以使用功能较弱的 GPU,能将计算成本降低多达 3 4 倍。 面向用户的应用程序通常需要高端 GPU 卡来提供引人入胜的实时用户体验,优化模型是必要的,以使成本降低到可管理的范围。 峰值: 生成式 AI 公司的需求经常急剧上升,新产品一经发布,请求量每天增加 10 倍,或者每周持续增长 50%的情况并不罕见。 在低端 GPU 上处理这些峰值通常更容易,因为更多的计算节点可能随时可用。如果这种流量来自于参与度较低或留存率较低的用户,那么以牺牲性能为代价使用较低成本的资源也是有意义的。 此外,算力可以直接转化成 GPU,电脑里的显卡就是 GPU。一张显卡除了 GPU 外,显存也是很重要的参数。GPU 的生产商主要有 NVIDIA 和 ATI。GPU 作为一种专门在个人电脑、工作站、游戏机和一些移动设备上做图像和图形相关运算工作的微处理器,其诞生源自对 CPU 的减负,使显卡减少了对 CPU 的依赖,并进行部分原本 CPU 的工作。
2025-01-06
微调所需要的算力计算公式
微调所需算力的计算较为复杂,会受到多种因素的影响。以下为您提供一些相关信息: 在“大圣:全网最适合小白的 Llama3 部署和微调教程”中提到,微调可能需要预充值 50 元购买算力。 “9.生成式 AI Studio 简介”课程中指出,微调大型语言模型(LLM)时,由于模型规模大,更新每个权重可能需要很长时间的训练工作以及巨大的计算成本。 “微调(Finetuning)”部分提到,调整用于微调的超参数通常可以产生产生更高质量输出的模型。需要配置的超参数包括: 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 结束时在验证集上计算特定指标。 需要注意的是,不同的模型和任务,其算力需求的计算方式可能会有所不同。
2025-01-06