当前位置: 首页 > news >正文

做有网被视频网站吗谁可以教我做网站

做有网被视频网站吗,谁可以教我做网站,哪里有放网站的免费空间,普通门户网站开发价格一、介绍 今天我们来聊一聊关于LLM的微调训练#xff0c;LLM应该算是目前当之无愧的最有影响力的AI技术。尽管它只是一个语言模型#xff0c;但它具备理解和生成人类语言的能力#xff0c;非常厉害#xff01;它可以革新各个行业#xff0c;包括自然语言处理、机器翻译、…一、介绍 今天我们来聊一聊关于LLM的微调训练LLM应该算是目前当之无愧的最有影响力的AI技术。尽管它只是一个语言模型但它具备理解和生成人类语言的能力非常厉害它可以革新各个行业包括自然语言处理、机器翻译、内容创作和客户服务等成为未来商业环境的重要组成部分。 我相信很多人在领略了GPT等大语言模型的魅力之后都希望迫不及待的考虑能将模型能力集成到自己的产品中去提升产品竞争力由于LLM天然具备强大的语义理解能力使得我们原来在用尝试用NLP去解决一些比较困难的问题突然变得迎刃而解非常简单甚至超出你的想象。此刻我脑海里已经想到了很多可以借助LLM来实现的场景。 但是我们也要面对一个很现实的问题那就是在生产中使用LLM的成本和收益。说白了就是要讨论钱的问题老板可能更关心你的ROI比。那目前这些炒的火热的LLM是否一定就适合我们呢一起看看它存在什么样的缺点。 1.1、商用模型在企业应用的劣势 投入成本像OpenAI的GPT-4和Google的PaLm 2模型这样的LLM提供商是LLM性能的顶尖者但是他们的顶级模型相当昂贵。GPT-4以及Google PaLm 2每1000个令牌约600个单词的费用在3到6美分之间。想象一下如果你有一家有1000名员工的公司——每个员工每天发送大约25个提示——你每天就要花费750到1500美元这还不算有成千上万的客户与你的LLM增强的应用程序互动了。 数据隐私Google和OpenAI都不是在数据隐私保护方面做的特别不错的公司。从去年GPT模型爆发开始大家的关注点都被模型本身的能力吸引了没有太关注数据本身的安全问题实际上经过这么一段时间全球用户的使用正好在给OpenAI做免费模型训练虽然官方说的是通过API接口调用不会存储和训练你传输的数据。但如果你的数据保密要求高显然放在别人那里总归是不够踏实的。 模型训练数据。虽然现有的LLM在日常语言任务方面非常精通但它们仍然是基于广泛、庞大的数据集进行训练这些数据集可能与你的数据不重叠。一旦你想让模型根据你自己的数据或特定用例表现出特定的行为或回答特定问题你就需要考虑拥有自己微调过的模型。 所以为了避免这些问题我们有一个选择那就是运行我们自己完全可控制的LLM模型。我们可以决定什么被审查我们可以根据我们自己公司非常特定的知识来决定如何回答特定问题。那怎么做呢这就需要用到“迁移学习”的基础知识。它是一种使用已经预先训练、测试过的模型并添加你特定需求到它们上面的技术。此外我们还将演示如何使用迁移学习来微调我们的模型使其表现出我们需要它表现出来的行为。别担心——我们不需要大量的数据——也可以使用较小的数据集。 总之LLM虽然很厉害但是成本和数据隐私问题确实需要我们思考。如果你想要更低成本地做LLM微调并且保护好自己的数据隐私那么自己训练LLM就是一个不错的选择 二、什么是迁移学习 迁移学习是一种利用预先训练好的机器学习模型来解决新问题的技术通常涉及不同领域的原始模型训练。在迁移学习中我们不从头开始训练新模型而是使用预先训练好的模型作为起点这样可以节省时间和资源。 大型语言模型LLM是最强大的预先训练好的模型之一例如_GPT、BERT、MPT、XLNet_等。这些LLM在海量文本数据上进行训练从中学习了很多关于语言的知识。然而它们对于特定资源的了解相对较少。 微调一个预先训练好的LLM涉及将预先训练好的模型适应一个新的任务通过在特定任务的数据集上进行训练。这包括使用反向传播来更新预先训练好的模型的参数。基本思想是预先训练好的模型已经学习了很多关于语言结构和语义的知识我们只需要对其进行微调以适应我们感兴趣的特定领域或任务。 微调预先训练好的LLM通常包括三个主要步骤 初始化预先训练好的模型 首先我们下载并初始化预先训练好的LLM。初始化模型涉及加载之前在大量文本语料上训练过的预先训练好的权重和架构。 微调预先训练好的LLM 接下来我们使用较小的、特定任务的数据集来微调预先训练好的LLM以适应特定任务。这涉及使用反向传播和梯度下降来更新预先训练好的LLM的权重同时保持模型下层的权重固定。 评估微调后的LLM 最后我们在测试集上评估微调后的LLM以确定其在任务上的性能。 2.1、QLoRA高效地微调LLM 通常微调LLM是一个资源消耗较大的过程需要进行许多参数调整。然而开源社区已经开发出一种名为QLoRA的方法它是一种高效的微调方法可以减少内存使用量并能够在单个48GB GPU上微调一个65B参数模型同时保持完整的16位微调任务性能。 第一个使用QLoRA进行训练的模型家族是Guanaco模型在Vicuna基准测试中超过了之前所有公开发布的模型达到了与ChatGPT性能水平相当的99.3%而只需要在单个GPU上进行24小时的微调。 与GPT模型训练所需的几个月和数百万美元的成本相比QLoRA是一个胜利者。 因此我们选择使用QLoRA微调技术。我们不会提供对QLoRA如何实现这些惊人结果的技术进行深入分析而是更关注应用方面找到如何利用它来实现我们自己的模型训练目标。 三、选择合适的基础模型 根据前面的讨论我们不打算从头开始训练LLM模型而是利用QLoRA微调方法来增强一个已有的泛化基础模型使其具备我们自己的能力。 因此我们需要选择一个可用的基础模型有两个主要选择 1、使用经过微调的GPT模型由于GPT是目前表现最好的模型并且OpenAI提供了强大的微调API为什么不使用它作为基础呢然而正如前面提到的由于隐私和成本的原因我们目前不做考虑如果大家有兴趣可以点关注后续会专门介绍针对OpenAI的模型做微调训练。 2、选择一个开源的LLM模型除了商用模型的选择其实开源社区一直在不断提供更优秀的模型。有数百个性能与GPT相当的开源模型。虽然目前还没有一个与GPT同样好的模型但通过微调我们可以轻松超越GPT的性能。 在这种情况下我们需要选择一个性能良好的开源模型。Hugging Face是一个不错的选择。他们开发了流行的开源工具、库和模型供NLP和AI爱好者使用。特别值得一提的是他们的Transformers库它为目前所有可用的LLM提供了基础。此外Hugging Face还建立了一个令人惊叹的、非常活跃的社区多年来一直推动着机器学习和人工智能领域的创新。 Hugging Face方便地提供了当前最佳开源LLM模型的排行榜您可以点击以下链接查看 https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard Hugging Face 的LLM排行榜提供了几个基准以及基准的平均值。以下是使用的不同基准 ARCAI推理挑战包含7787个自然的、小学科学水平的问题旨在评估模型的知识和推理能力。 HellaSwag评估常识语言推断能力模型得分越高说明其更好地理解语言的含义和意图。 MMLU大规模多任务语言理解能力涵盖57个任务包括初等数学、美国历史、计算机科学、法律等要在这个测试中获得高准确率模型必须具备广泛的世界知识和问题解决能力。 TruthfulQA包含817个问题涵盖38个类别包括健康、法律、金融和政治等用于判断模型输出的真实性。 根据您的具体任务您可以按照任何一个基准对排行榜进行排序。例如如果您需要处理许多推理类型的交互那么ARC可能是一个不错的选择。 其实通常情况下优秀的模型在所有基准上表现良好并没有专门针对某个基准的模型。目前通过简单地按照平均值排序您几乎可以得到适用于任何用例的最佳模型。 除了以上的几个基准之外还有三个因素需要考虑 指令模型例如 falcon-40b-instruct 模型这些模型是专门为指令/聊天场景进行大量训练的不适合进一步训练和微调。 模型大小LLM模型由层和参数组成参数越多模型越复杂。较小的模型更容易进行微调并且运行成本更低。根据经验法则目前65亿参数的模型需要大约48GB或更多的GPU内存。出于经济原因建议选择最小的能够满足您用例需求的模型。 许可证与任何软件一样我们需要注意可以做什么和不能做什么。要找到适用的许可证请点击基准中的模型并查找许可证部分。一般而言Hugging Face上的模型可以用于研究目的。所有基于Llama的模型都禁止商业用途。而falcon模型家族是在宽松的Apache 2.0许可证下发布的对于商业应用来说也是一个不错的起点。 3.1、模型选择的基本原则 使用hugging face排行榜并按平均基准结果排序。 排除任何指导模型。 检查模型的许可证以及它是否适合您的商业用例。 使用参数较少的模型以便更容易地训练和降低成本。 虽然LLM模型排行榜每天都在变化但截至目前falcon模型依然还是开源模型中的最佳选择。它提供了两种大小400亿和70亿具备出色的基准结果并且在Apache 2.0许可证下发布这对于商业应用来说就非常友好了。更具体地说由于它相对于其它同类的模型具有相当出色的性能falcon-7b模型似乎是一个好的和经济合理的选择。 四、如何准备模型训练数据 现在我们已经选择好了基础模型是时候选择训练数据进行训练了。这个步骤应该算是最复杂、最耗时、也是最重要的步骤了因为我们提供给LLM的数据越好我们得到的输出就越好。为了理解我们需要提供什么样的训练数据首先需要了解模型训练的过程。 在非常高的层次上模型训练涉及向现有的基础模型提供示例对话包括问题和答案。然后模型会学习并理解您希望参与的对话类型以及您期望它提供的答案类型和形式。 例如如果您想让模型创建一种爆款小红书的文案风格您需要提供用户问题和您认为正确输出的示例。 如果需要训练您的模型成为一个专家 QA 聊天机器人提供用户问题和相应答案的示例。 4.1、应该准备多少组数据集示例 数据集所需示例的数量没有一个非常通用的标准但有一些经验可供参考。 对于较简单的任务例如 FAQ 聊天机器人通常 100 个示例已经足够好。 对于任务和输出更复杂的情况就需要提供更多的示例。例如如果你想改变模型的写作风格比如总是鲁迅的风格写作那么你可能需要提供数千个示例。 一般而言示例越多越好只要这些示例之间不重复。但也不要过度。对于许多任务来说拥有数百个示例可能就足够了。 此外你不需要提供所有可能的问题或交互这几乎是不可能做到的LLM 只需要能够“识别并理解”到你示例中的总体意图并且为类似但不完全匹配的问题找到合适的答案即可。 4.2、如何创建数据集 根据训练的任务一般有几种方法可以考虑用于半自动地创建数据集。 1、一种方法是创建一个 FAQ 聊天机器人的数据集。导出系统中最常见的问题以及客户支持团队提供的答案并将其导出到 Excel 或 CSV 格式中。 2、另一种方法是创建一个能够回答您知识库中大部分问题的模型。可以使用现有模型如 GPT-4来自动创建问题和答案。首先将你的知识库分割成最多 3,000 个单词的块然后将这些块发送给 GPT-3.5-16k要求它根据这些文本块创建新用户可能提出的问题。最后将所有输出合并以生成单个数据集。这个过程可以通过脚本高度自动化只需几分钟即可生成数千个问题和答案。 3、可能已经有一些预定义的数据集可用它们可能对您的用例有用。Hugging Face Dataset Hub 是一个很好的起点目前提供超过42000个数据集可供使用。你可以使用强大的过滤和搜索功能来查找适合您的数据集。 4.3、数据集需要遵循什么格式 LLM的优势在于它们能够理解人类语言而不受结构化数据的限制。因此你的训练数据集不需要遵循特定的格式要求。但是根据经验最佳的做法是使用一个简单的两列数据集其中一列是问题或提示另一列是完美的答案就像前一节中的例子一样。 选择这种格式的原因是它的简洁性同时两列之间的分隔使我们能够将其格式化为后续训练步骤中可能需要的任何格式。这种灵活性使我们能够轻松地适应不同的数据处理和训练需求。 五、如何选择模型训练环境 在选择了基础模型和准备好训练数据集之后我们需要选择一个执行模型训练过程的环境。 虽然我们可以在任何机器上进行模型训练但高性能的 GPU 可以显著提高训练速度。一些现代的训练方法也需要 GPU 环境因为在 CPU 上运行训练会非常耗时。因此我们需要一个 GPU具体来说我们需要一款英伟达NVIDIA的 GPU。目前英伟达的 CUDA 架构是最广泛使用的选项。尽管英特尔和 AMD 正在迎头赶上但在未来几年内我们仍然会受限于英伟达的选择。在选择 GPU 时内存也是一个关键因素。 以下是几种不同规模的 GPU 选项 小型 GPU如 Nvidia’s RTX series 的 GPU适合模型开发、测试和小规模项目部署或者用于初期实验。它们通常具有小于 24GB 的内存。 中型 GPU如 Nvidia A40 GPU适用于中到大型项目。这些 GPU 在成本和计算能力之间提供了平衡通常是大多数 LLM 训练任务的理想选择。它们具有约 48GB 的内存。 大型 GPU如 Nvidia A100 GPU非常适合大规模和内存密集型的训练任务如 LLM 所需的训练。这些 GPU 价格昂贵但在关键项目中加速训练速度往往是值得的。A100 旗舰型号提供了 80GB 的内存。 GPU 集群如果以上选项仍然不够现代训练框架允许并行地利用多个 GPU从而可以加载和训练庞大的 LLM。 根据上述 GPU 选项列表我们需要选择一个适应我们模型并且价格合理的 GPU。大多数模型并没有提供所需的训练内存大小因此这是一个试错的过程。根据以往的经验在使用 QLoRA 进行训练时 70亿参数的模型可以在具有 12GB 内存的 GPU 上进行训练 300亿参数的模型适合在具有 24GB 内存的 GPU 上进行训练 650亿参数的模型可以在具有 48GB 内存的 GPU 上进行训练 具体如何选择请根据你的训练需求和预算选择适合的 GPU。 5.1、具体在哪里获取这些 GPU 要获取所需的 GPU有几个选项从免费到昂贵都有 Google Colab由 Google 提供Colab 是一个运行 Jupyter Notebook 的平台。由于我们的模型训练将在 Python 中完成因此这是一个不错的选择。Colab 提供了强大的硬件资源免费用户可以获得带有 12GB RAM 的 NVIDIA T4 GPU足以训练 7 亿参数的模型。如果需要更好的硬件和更多内存可以选择付费计划每月费用为 12 美元。请参考 Google 的 Colab GPU 指南了解如何启用 GPU。 RunPodRunPod 是一个按需提供多种 NVIDIA GPU 的服务商以非常具有吸引力的每小时价格提供服务。启动一个支持 GPU 的虚拟机非常简单并提供 SSH 访问权限、功能强大的 Web 控制台和预安装的 Jupyter 服务器。尽管无法与 Google Colab 的免费定价相比但 RunPod 提供了相当低廉的 GPU 价格和易用性是训练模型的理想选择。 云服务提供商大型云服务提供商如 Azure、GCP 和 AWS 都提供 GPU 机器。请参考它们的虚拟机页面以获取更多详细信息。对于模型训练而言它们相对于 Colab 和 RunPod 这样的解决方案稍显复杂而且您可能不需要长时间运行机器。 自建服务器最后一个选项是购买 GPU 并在家里或公司运行。虽然这可能需要一开始的大量投资例如NVIDIA RTX 3080 被认为是进行真正的 LLM 训练的最低要求价格约为 1000 美元而 A100 的价格约为 4000 美元但如果您计划进行大量的训练操作这可能是值得的。请注意考虑到您是否真的需要全天候进行模型训练RunPod 的价格可能会高达每月 1300 欧元。 对于大多数任务来说训练过程通常只需要一两天的高性能 GPU。因此在经济上前面提到的解决方案通常更具优势。 本文我们将使用 Google Colab因为我们要训练一个具有 70 亿参数的模型。然而我们将使用 Colab Pro因为我们需要超过 13GB 的系统内存免费 Colab 的内存限制为 13GB。 请记住更大、更快的 GPU 可以加速训练和推理性能所以如果预算允许考虑使用其他方法。 六、开始训练你的LLM模型 前面的训练环境准备好之后现在开始进行模型训练了。请确保您拥有一台至少具有 13GB GPU 内存的专用 GPU并通过使用前面提到的任何一种方法来实现。 您还需要具备 16GB 系统内存并且需要一个 Python 3.9 环境来运行训练代码步骤。 1、首先安装所需的依赖项。 pip install -qqq bitsandbytes pip install -qqq datasets !pip install-qqq githttps://github.com/huggingface/transformersde9255de27abfcae4a 1f816b904915f0b1e2 !pip install-qqq githttps://github.com/huggingface/peft.git !pip install -qqq githttps://github.com/huggingface/accelerate.git !pip install -qqq einops !pip install -qqq scipy # 我们需要这个特定版本的transformers因为当前的主分支存在一个bug导致无法成功训练: !pip install githttps://github.com/huggingface/transformersde9255de27abfcae4a 1f816b904915f0b1e2 2、导入所需的模块 import bitsandbytes as bab import torch import torch.nn as nn import transformers from datasets import load_datasetfrom peft import LoraConfig, PeftConfig, postmedial, \ prepare_model_for_kbit_training, get_peft_model from transformers import AutoTokenizer, BitsAndBytesConfig, \ AutoModelForCausalLM 3、初始化模型 model_name tiiuae/falcon-7b bnb_config BitsAndBytesConfig( load_in_4bitTrue, bnb_4bit_use_double_quantTrue, bnb_4bit_quant_typenf4, bnb_4bit_compute_dtypetorch.bfloat16 ) model AutoModelForCausalLM.from_pretrained( model_name,trust_remote_codeTrue, quantization_configbnb_config, device_mapauto ) model_name要使用的模型名称。请参考 Hugging Face 获取确切的模型名称。 load_in_4bit以 4 位量化模式加载模型以便在有限的 GPU 内存下进行训练。使用 QLoRA 技术我们不会损失模型性能。 bnb_4bit_quant_typefp4 或 nf4 之一。这设置了量化数据类型。nf4 是 QLoRA 特定的浮点类型称为 NormalFloat。 bnb_4bit_compute_dtype这设置了计算类型它可能与输入类型不同。例如输入可能是 fp32但计算可以设置为 bf16 来加速。对于 QLoRA 调优请使用 bfloat16。 trust_remote_code为了加载 falcon 模型需要执行一些 falcon 模型特定的代码使其适合 transformer 接口。涉及到的代码是configuration_RW.py和modelling_RW.py。 device_map定义将工作负载映射到哪个 GPU 设备上。设置为 auto 以最佳方式分配资源。 4、初始化分词器负责从提示和响应中创建令牌的对象 tokenizer AutoTokenizer.from_pretrained(model_name) tokenizer.pad_token tokenizer.eos_token AutoTokenizer是一个Hugging Face Transformer Auto Class它会根据模型架构自动创建正确的分词器实例 pad_token一个特殊令牌用于将令牌数组调整为相同大小以便进行批处理。设置为句子结束eos令牌。 5、启用梯度检查点并调用准备方法 model.gradient_checkpointing_enable() model prepare_model_for_kbit_training(model) Gradient Checkpointing 是一种用于在训练深度神经网络时减少内存占用的方法代价是计算时间略有增加。更多细节可以在这里找到 https://github.com/cybertronai/gradient-checkpointing prepare_model_for_kbit_training这个方法包装了在运行参数高效微调训练QLoRA是这种训练范式的一种方法之前准备模型的整个协议。 6、初始化我们的LoRA训练配置 config LoraConfig( r8, lora_alpha32, target_modules[query_key_value], lora_dropout0.05,biasnone,task_typeCAUSAL_LM )model get_peft_model(model, config) r, lora_alpha和lora_dropout是LoRA超参数。可以根据需要进行更改。对于 falcon 家族来说上述参数通常是一个很好的起点。阅读Hugging Face QLoRA博客文章以了解更多细节。 task_type描述语言建模类型是因果的还是掩码的。对于像 GPT、LLama 或 Falcon 这样的 Transformer它是因果的。更多细节请参考这里。 target_modules变压器模型中应该用QLoRA进行训练的目标模块。根据这篇文章实际上总是查询/键值模块。 6.1、加载数据集 接下来要做的是加载数据集。Hugging Face 的 datasets 模块提供了一个方便的方法 load_dataset可以从本地路径或 Hugging Face 数据集中心加载数据集。该方法还将数据集拆分为特征以供模型训练使用。 为了训练我们的模型我将使用一个著名的电子商务 FAQ 数据集其中包含关于一个假设的电子商务产品的信息。原始文件可以在这里找到 https://www.kaggle.com/datasets/saadmakhdoom/ecommerce-faq-chatbot-dataset 我已经对文件进行了修改以符合之前描述的问题/答案对数组的格式。该文件以 JSON 格式包含以下信息 [{question: 我应该怎么创建账号?,answer: 创建账号在网站右上角点击[注册]按钮完成注册流程 },...] 如果您想按照本示例进行操作请从 https://datascienceengineer.com/datasets/ecommerce_faq.json 下载准备好的数据集。但您也可以使用自己的数据集只要保持原始格式即可。 # 加载JSON文件并将其转换为训练特征 data load_dataset(json, data_filesecommerce_faq.json) 接下来我们希望为我们的数据集添加一些提示格式。模型训练应该向模型展示在生产环境中可能看到的提示样式。因此我们可能会得到以下内容 一些问题 LLM 的答案 为了实现这一点我们用 “” 前缀标记我们的问题用 “” 前缀标记我们的答案。 def generate_prompt(question_answer): return f human: {question_answer[question]} assistant: {question_answer[answer]} .strip() def tokenize_prompt(question_answer):prompt generate_prompt(question_answer)tokenized_prompt tokenizer(prompt, paddingTrue, truncationTrue) return tokenized_prompt # 使用 shuffle 来重新排序列表以消除潜在的排序偏差 data_prompt data[train].shuffle().map(tokenize_prompt) 6.2、训练配置和执行 我们到了最后一步 - 配置训练器并运行模型训练。 下面的训练器对象参数是超参数可以也应该根据需要进行更改以获得更好的结果。对于 falcon-7b 模型训练下面的参数非常有用我在各种数据集上都获得了良好的结果。但是对于其他类型的模型您可能需要调整这些参数以获得更好的结果。 请参考 Hugging Face Trainer API 文档了解更多细节 https://huggingface.co/transformers/v3.0.2/main_classes/trainer.html trainer transformers.Trainer( modelmodel, train_datasetdata_prompt, argstransformers.TrainingArguments( per_device_train_batch_size1,gradient_accumulation_steps4, num_train_epochs1, warmup_ratio0.05, max_steps80, learning_rate2e-4, fp16True,logging_steps1, output_diroutputs, optimpaged_adamw_8bit, lr_scheduler_typecosine ), data_collatortransformers.DataCollatorForLanguageModeling(tokenizer, mlmFalse),) model.config.use_cache False trainer.train() 在调整模型参数的时候注意不要修改这个参数 optim“paged_adamw_8bit”这是一种优化技术可以避免内存峰值从而防止 GPU 内存超载。 max_steps 参数不应该比你的训练数据集中的行数高太多。监控你的训练损失以检查是否需要减少或增加这个值。 等待几分钟后你的模型就成功训练好了将你的模型保存在磁盘上你就完成了 model.save_pretrained(my-falcon) 参数本例中为“my-falcon”决定了你的模型文件将存储到哪个文件夹路径。 七、模型推理 现在我们已经创建并保存了我们的模型接下来展示如何加载模型并对我们新训练的 LLM 模型进行查询。 首先让我们加载配置并加载我们的模型 # 从我们微调的模型中加载LoRA配置 lora_config PeftConfig.from_pretrained(my-falcon) # 实例化一个Transformer模型类根据我们的模型自动推断 my_model AutoModelForCausalLM.from_pretrained( lora_config.base_model_name_or_path, return_dictTrue,quantization_configbnb_config, device_mapauto, trust_remote_codeTrue,load_in_8bitTrue #这个设置可能会将量化减少到8位speed up inference and reduces memory footprint. ) tokenizerAutoTokenizer.from_pretrained( lora_config.base_model_name_or_path) tokenizer.pad_tokentokenizer.eos_token # 根据LoRA配置和权重实例化一个LoRA模型 my_model PeftModel.from_pretrained(my_model, my-falcon) 然后让我们创建提示。请记住我们专门训练了我们的 LLM 来使用 “/” 提示语法。因此我们也可以将其添加到提示中。这不是一个硬性要求因为 LLM 大多能够自己找到 human/assistant 的角色。然而由于我们在训练中包含了它如果我们在提示中也包含它性能可能会更好。 prompt fhuman: 我应该怎么创建账号?assistant:.strip() 配置模型推理参数 gen_confmy_model.generation_config gen_conf.temperature0 gen_conf.top_p0.7 gen_conf.max_new_tokens200 gen_conf.num_return_sequences1 gen_conf.pad_token_idtokenizer.eos_token_id gen_conf.eos_token_idtokenizer.eos_token_id temperature: 介于 0 和 1 之间用于决定模型输出的 “创造力”。值越高对相似问题的回答越多样化。值越低输出越确定性。 top_p: 介于 0 和 1 之间用于决定考虑下一个输出 token 的数量。例如如果设置为 0.5则只考虑概率质量最高的 50% 的 token。 max_new_tokens: 输出应该生成多少个 token num_return_sequences: 每个输入返回的序列候选数 接下来使用我们的提示准备模型的输入并将张量发送到推理设备。在此示例中使用 “cuda:0” 进行 GPU 推理。 inputs tokenizer(prompt, return_tensorspt).to(cuda:0) 最后让我们进行实际的推理 with torch.inference_mode(): outputs my_model.generate( input_idsinputs.input_ids, attention_maskinputs.attention_mask, generation_configgen_conf, do_sampleFalse, use_cacheTrue ) print(tokenizer.decode(outputs[0], skip_special_tokensTrue)) 到此您的模型将需要几秒钟来生成 token它会利用您训练它时使用的微调数据。 八、总结 迁移学习和 QLoRA 框架为我们提供了强大的工具可以高效地利用预训练的语言模型LLM来解决特定任务。通过根据基准评估选择合适的基础 LLM 模型我们可以确保我们微调工作的最佳性能。 生成高质量的训练数据非常重要因为它有助于捕捉目标任务特定的细微差别。我们已经了解到了应该遵循哪种格式并且我们看到并不需要大量的数据 - 数百个左右就足够了。 使用 Hugging Face Transformer 和 PEFT 库我们对基础 LLM 进行了微调使其专门适应期望的任务。 最后通过使用经过微调的 LLM 进行模型推理我们能够部署一个强大的语言模型在实际应用中进行准确的预测并生成有价值的洞察力。
http://www.sadfv.cn/news/97301/

相关文章:

  • 房地产网站建设哪家好游戏工作室网络组建方案
  • 手机上可以做网站网站建设服务器的选择方案有
  • 企业网站模块种类风景网页设计图片
  • 武昌做网站哪家好艺术网站建设公司
  • 济南正规网站建设公司网站服务器搭建的步骤
  • 做价值投资有哪些网站山西制作网站公司排名
  • 网站管理员权限设置wordpress自动留言
  • 低价建设网站网站建设行业产业链分析
  • 一起做网商网站怎么样腾讯会议新闻
  • 手机网站建设软件下载做视频网站用什么源码
  • 建设手机网站培训教程优化wordpress搜索结果
  • 网站需要续费吗如何网站建设自己怎么个人网站
  • 天津网站建设网站排名优化湖南微信网站营销
  • 泉州建设公司网站服装设计画图软件app
  • 商城型网站建设多少钱商标设计创意
  • 特产网站开发的目的上海电商网站建设费用
  • 海安公司网站建设马云做网站最开始怎么盈利的
  • 长沙建网站联系电话网站建设定金合同范本
  • 优秀个人网站主页文化传播集团网站建设
  • 网站提交收录软件东营市垦利区胜坨填建设站的网站
  • 杭州网站开发企业门户网站上的广告怎么做
  • 湛江市国外网站建设报价h5可以来做网站吗
  • 有没有做软件的外包网站下列哪些属于网络营销的特点
  • 网站建设实践报告小结百度竞价推广怎么做
  • php电商网站开发流程图网站链接建设的作用
  • 网站模板一般用什么软件做延安市城乡建设局网站
  • 怎样自己做刷赞网站网站禁止访问怎么解除
  • 公司建立网站的目的做跨境电商有没推荐的网站
  • 佛山外贸网站制作wordpress建立数据库连接
  • 网站建设英语物业公司管理系统