![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PyTorch与大语言模型
文章平均质量分 86
介绍大语言模型ChatGLM中使用到的PyTorch技术
North_D
纯粹的技术控,热爱徒步和骑行,谢谢关注。不定期心得分享,满满干货。
App分享在InsCode:https://inscode.csdn.net/@qq_39813001
展开
-
大语言模型LLM《提示词工程指南》学习笔记05
Adversarial prompting是提示工程中的一个重要主题,它可以帮助我们了解LLMs的风险和安全问题。同时,它也是一个重要的学科,可以识别这些风险并设计技术来解决这些问题。当您将这个函数定义作为请求的一部分传递时,它实际上并不执行函数,只是返回一个包含调用函数所需参数的JSON对象。但您可以尝试更聪明的提示并查看是否可以使注入在更新的模型上起作用。测试模型的漏洞是提示工程过程的重要组成部分,因为您旨在构建更强大和安全的模型。一个简单的解决方法是警告模型可能存在的恶意攻击,并告知期望的行为。原创 2024-04-13 11:35:08 · 1158 阅读 · 0 评论 -
大语言模型LLM《提示词工程指南》学习笔记04
这个函数有一个独特的名称,当我们用输入文本调用这个名称时,它根据内部设定的规则产生结果。简而言之,我们构建了一个可重用的提示,它有一个易于与LLM交互的名称。这就像有一个方便的工具,让LLM代表我们执行特定的任务 - 我们只需提供输入,就可以得到所需的输出。使用有效的提示策略可以引导模型产生更好、更一致和更真实的响应。假设您有一个数据集,其中包含一些信息,您可以将其作为提示的一部分包含在内,然后指示它生成特定查询。最后,你可以独立运行这个函数,或者将它们串联在一起。编写一个扩展文本的函数。原创 2024-04-08 07:58:42 · 813 阅读 · 1 评论 -
大语言模型LLM《提示词工程指南》学习笔记03
为了提高大语言模型的性能使其更可靠,一个重要的提示工程技术是将任务分解为许多子任务。确定子任务后,将子任务的提示词提供给语言模型,得到的结果作为新的提示词的一部分。这就是所谓的链式提示(prompt chaining),一个任务被分解为多个子任务,根据子任务创建一系列提示操作。链式提示可以完成很复杂的任务。Meta AI 的研究人员引入了一种叫做检索增强生成(Retrieval Augmented Generation,RAG)(opens in a new tab)的方法来完成这类知识密集型的任务。原创 2024-04-07 08:58:08 · 869 阅读 · 0 评论 -
大语言模型LLM《提示词工程指南》学习笔记02
没有特定的令牌或关键字会导致更好的结果。更重要的是具有良好的格式和描述性提示。实际上,在提示中提供示例非常有效,可以以特定格式获得所需的输出。您可以使用命令来指示模型执行各种简单任务,例如“写入”、“分类”、“总结”、“翻译”、“排序”等,从而为各种简单任务设计有效的提示。不是,高尔夫球的目标不是获得比其他人更高的得分。设计提示时的另一个常见技巧是避免说不要做什么,而是说要做什么。这鼓励更具体化,并关注导致模型产生良好响应的细节。我们使用 Liu等人2022 的论文中提供的提示。原创 2024-04-06 08:14:58 · 659 阅读 · 0 评论 -
大语言模型LLM《提示词工程指南》学习笔记01
如果您希望模型生成多样化或创造性的文本,您可以设置更高的 presence penalty,如果您希望模型生成更专注的内容,您可以设置更低的 presence penalty。Frequency Penalty:frequency penalty 是对下一个生成的 token 进行惩罚,这个惩罚和 token 在响应和提示中出现的次数成比例, frequency penalty 越高,某个词再次出现的可能性就越小,这个设置通过给 重复数量多的 Token 设置更高的惩罚来减少响应中单词的重复。原创 2024-04-05 07:24:08 · 1621 阅读 · 0 评论 -
阿里云PAI + pytorch大语言模型开发环境简介
阿里云机器学习PAI(Platform of Artificial Intelligence) 是集数据管理,模型管理,开发,训练,部署为一体的机器学习平台,并为企业级算法团队和数据科学团队提供了一站式开箱即用的机器学习平台解决方案。主要包括:可视化建模和分布式训练 PAI-DesignerNotebook交互式AI研发 PAI-DSW(Data Science Workshop)云原生AI基础平台 PAI-DLC(Deep Learning Containers)原创 2024-04-04 07:05:19 · 1360 阅读 · 0 评论 -
Streamlit 构建大语言模型 (LLM) web 界面
整体而言,该代码实现了一个具有记忆功能的在线聊天应用,用户可以在其中与预训练的大规模语言模型ChatGLM3-6B进行交互,模型根据用户的输入生成相应的回答,并以聊天形式展示在界面上。:通过Streamlit,可以将大语言模型集成到Web应用中,实现实时交互式体验,用户可以直接在浏览器中与模型进行对话或提交请求,并立即得到模型生成的结果。:Streamlit 应用可以通过一行命令部署到云端服务,大大降低了将大语言模型部署为Web服务的门槛,便于模型的分享和使用。如果用户提供了对应的输入,则会显示在。原创 2024-04-03 06:52:16 · 2569 阅读 · 0 评论 -
大语言模型中常见小模型LLM垂直领域应用微调数据集
以AdvertiseGen数据集为基础。格式上,提供了多轮对话微调样例和输入输出格式微调样例。多轮对话格式多轮对话微调示例采用 ChatGLM3 对话格式约定,对不同角色添加不同loss_mask从而在一遍计算中为多轮回复计算loss。对于数据文件,样例采用如下格式如果您仅希望微调模型的对话能力,而非工具能力,您应该按照以下格式整理数据。},},},},// ...请注意,这种方法在微调的step较多的情况下会影响到模型的工具调用功能。原创 2024-04-02 08:40:15 · 1601 阅读 · 0 评论 -
大语言模型微调相关的finetuning、CE Loss、RLHF如何配合工作
Fine-tuning 是机器学习特别是深度学习中的一个重要概念和技术手段,主要应用于预训练模型的迁移学习过程。其基本原理是对已经在大规模通用数据集上预训练好的模型(如BERT、GPT系列、Transformer等),针对特定任务或领域数据进行微调。加载预训练模型:首先,获取已经在大规模无标注或有标注数据上训练得到的模型参数。保留部分或全部预训练权重:通常情况下,保留大部分层尤其是底层网络的权重不变,因为它们已经学习到了丰富的通用特征表示。修改输出层。原创 2024-04-01 05:07:55 · 953 阅读 · 0 评论 -
大语言模型中的强化学习与迁移学习技术
在这个背景下,我们不直接讨论"agent"这一概念,因为在大语言模型的训练和微调中并不涉及典型的强化学习框架中的智能体。在大语言模型中,强化学习(Reinforcement Learning, RL)和迁移学习(Transfer Learning)是两种重要的机器学习技术,各自有不同的作用和意义,并有着显著的异同。总之,在大语言模型中,强化学习主要用于训练模型如何根据实时反馈做出决策,而迁移学习则侧重于利用预训练模型的知识迅速适应新任务,两者相辅相成,共同推动大语言模型在多样化的应用场景中取得优异表现。原创 2024-03-28 11:09:20 · 581 阅读 · 0 评论 -
pytorch与大语言模型直接偏好优化DPO方法
SFT是指对预训练的大规模语言模型进行指令导向的微调,也就是让模型在保留原有泛化能力的同时,增强对具体指令的理解和响应能力。不同于传统微调基于监督信号(如正确答案)来更新模型,DPO利用人类偏好作为指导信号,通过比较模型的不同输出,找到更受人青睐的结果并据此优化模型。微调通常是针对整个模型在特定任务上的优化,而SFT更多聚焦于模型在处理指令引导的任务时的行为。DPO可以使模型的输出更加贴近人类期望,特别是在一些难以用单一正确答案衡量的问题上,通过直接获取人类对模型生成内容的主观评价来提升模型表现。原创 2024-03-21 09:42:33 · 880 阅读 · 0 评论 -
PyTorch的向量化思维,以及Tensor、nn接口
大语言模型的基础是对词汇进行向量化表示,将原本离散的词语映射到连续的高维空间中的向量。这样做的目的是捕捉词汇之间的语义和语法关系,使得相似含义或相近上下文中的词语在向量空间中有类似的分布。是PyTorch中用来表示多维数组的数据结构,它是整个框架的基础。是PyTorch中用于构建和训练神经网络的高级API,提供了许多预定义的层、损失函数以及其他组件,极大地简化了深度学习模型的开发流程。接口中的一部分,实际上,PyTorch 提供了大量的张量操作和函数,满足深度学习和数值计算中的各种需求。原创 2024-03-18 11:50:46 · 171 阅读 · 0 评论 -
PyTorch+Transformers常用数据集+训练模型de傻瓜教程
通过在这样的数据集上微调大型语言模型,如Meta的LLaMA模型,Alpaca模型能够在多种自然语言处理任务上表现出良好的性能,并且特别适合在消费级显卡上进行训练和部署,因为相较于其他大规模模型,它相对轻量级。随着大语言模型的发展,不断有新的数据集出现,用于解决特定任务或改善模型在特定语言和文化背景下的表现。此外,还有针对中文指令的Alpaca数据集变体,以及其他扩展或派生的数据集,如支持多轮对话的数据集,这些都为研究人员和开发者提供了丰富的资源来训练和测试指令驱动的对话系统。原创 2024-03-17 12:20:21 · 540 阅读 · 0 评论 -
基于transformer的英译中翻译模型
在机器翻译任务中,Transformer被应用于序列到序列(Sequence-to-Sequence)的学习框架,主要包括编码器(Encoder)和解码器(Decoder)两大部分。每一层包括多头自注意力机制(Multi-Head Self-Attention)和前馈神经网络(Position-wise Feed-Forward Networks, FFNs),同时每层之间加入残差连接(Residual Connections)和层归一化(Layer Normalization)。原创 2024-03-16 09:30:00 · 424 阅读 · 0 评论 -
预训练模型与Transformer
社区活跃,拥有众多贡献者和使用者,持续增加新的模型和功能。当预训练完成后,这样的模型可以作为基础模型,针对具体的下游自然语言处理任务进行微调(Fine-tuning),即在预训练模型的基础上附加一层或多层,并调整整个模型参数以适应新的任务数据,从而实现高效且准确的文本分类、问答系统、语义解析、机器翻译等各种NLP任务的解决方案。除此之外,Hugging Face Transformers库还支持众多社区贡献的模型和不断更新的前沿模型,使得用户可以方便快捷地在各种NLP任务中使用最新的预训练模型。原创 2024-03-15 09:39:42 · 84 阅读 · 0 评论 -
02极简LLM逻辑与PyTorch快速入门
PyTorch领域库提供了一系列预加载的数据集(如FashionMNIST等),这些数据集都是torch.utils.data.Dataset的子类,并实现了针对特定数据的特定函数。训练模型是一个迭代过程,在每次迭代中,模型都会对输出做出猜测,计算猜测的误差(损失),收集关于模型参数的误差梯度(正如我们在上一节中看到的那样),然后使用梯度下降法优化这些参数。在训练模型时,我们通常希望以“小批量”的方式传递样本,每轮迭代时重新打乱数据以减少模型过拟合现象,并利用Python的多进程功能来加速数据获取。原创 2024-03-08 16:16:30 · 508 阅读 · 0 评论