机器学习笔记——EM算法
EM(期望最大,Expectation-Maximization)算法是一种常用的迭代优化算法,通常用于含有隐变量或不完全数据的问题中,旨在估计模型的参数,使得对观测数据的对数似然函数达到最大化。它广泛应用于混合高斯模型(GMM)、隐马尔可夫模型(HMM)、协同过滤等问题中。 EM算法的基本思想 EM 算法通过迭代地执行两个步骤: E 步(期望步,Expectation Step):在当前参数的基础上,计算隐含变量的期望值。 M 步(最大化步,Maximization Step):给定隐含变量的期望值,最大化似然函数,重新估计模型参数。 这个过程会在 E 步和 M 步之间反复迭代,直到模型的参数收敛到一个局部最优解。 EM算法的核心步骤 假设我们有一些带有隐变量的数据,数据的联合分布为 P(X,Z∣θ),其中: X 是观测数据(可见数据)。 Z 是隐变量(隐藏数据)。 θ 是模型的参数,我们希望通过 EM 算法来估计这些参数。 EM 算法的目标是通过最大化对观测数据的似然函数来估计参数: L(θ)=P(X∣θ)=Z∑P(X,Z∣θ)L(θ)=P(X∣...
Tree Of Thoughts 解读
1. 思维链(Chain Of Thought) 要介绍ToT,首先要介绍下大名鼎鼎的CoT,也就是思维链(Chain Of Thought)。 思维链属于**提示词工程(Prompt Engineering)**的一种,其主要思想是通过向大语言模型展示一些少量的样例,在样例中将多步问题分解为中间步骤,通过中间步骤得出最终答案。大语言模型在回答提示时也会显示推理过程。这种推理的解释往往会引导出更准确的结果。CoT提示作为一种简单机制,成功引出大型语言模型中的多步推理行为,并在不同任务上表现出强大的性能提升。 我们使用喜闻乐见的一个比大小的例子来测试思维链的做作用。众所周知,强如gpt4这样的模型,面对如11.3和11.11谁更大这种问题时也会出现错误。(当前版本已经被修复了,先前同样的问题得到的答案是11.11>11.3) 有人分析说其出现的原因是xx.yy这样的数字默认情况下被分词器拆分成了xx,.和yy三个不同的token,而没有当成一个整体。如果我们使用思维链来构建这个问题,就变成了下面的情况: 很显然模型根据给出的few-shot提示推理得到了正确的答案,在p...
Tree of Thoughts: Deliberate Problem Solving with Large Language Models
思维树:用大型语言模型深思熟虑地解决问题 摘要 语言模型越来越多地被用于跨广泛任务的一般问题解决,但在推理过程中仍然局限于令牌级别的、从左到右的决策过程。这意味着他们可能在需要探索的任务、战略前瞻或初始决策起关键作用的任务中落空。为了克服这些挑战,我们引入了一种新的语言模型推理框架- - "思维树" ( Tree of Thoughts,ToT ),它推广了流行的"思维链" ( Chain of Thoughts )方法来促进语言模型,并允许对文本( "思想")的连贯单元进行探索,作为问题解决的中间步骤。ToT允许LM进行深思熟虑的决策,通过考虑多条不同的推理路径和自我评估的选择来决定下一步的行动方向,并在必要时进行前瞻或回溯以做出全局选择。我们的实验表明,ToT显著提高了语言模型在3个需要非平凡计划或搜索的新颖任务上的问题解决能力:游戏24、创意写作和微型填字游戏。例如,在第24局的比赛中,有思维链提示的GPT-4只解决了4%的任务,而我们的方法取得了74%的成功率。所有提示的代码:https://github.com...
LLaVA 与ollama+open webui部署实战
1. Paper LLaVA: Visual Instruction Tuning(https://arxiv.org/abs/2304.08485) LLaVA(Large Language and Vision Assistant, github: https://github.com/haotian-liu/LLaVA)是一种将视觉和语言模型结合起来的多模态模型。LLaVA主要通过视觉指令调优(Visual Instruction Tuning)来实现模型的训练和优化。 1.1 模型架构 LLaVA的主要目标是有效地利用预训练LLM模型和视觉模型的能力,模型架构如图,其使用 Vicuna 作为 𝜙 参数化的LLM 𝑓𝜙(⋅),因为Vicuna的checkpoint具有最好的语言任务指令跟踪能力。 对于输入图像 𝐗v𝐗_vXv ,LLaVA使用预训练的 CLIP 视觉编码器 ViT-L/14 ,它提供了视觉特征 $𝐙_v=𝑔(𝐗_v) $。考虑到最后一个 Transformer 层之前和之后的网格特征,LLaVA使用了一个简单的线性层,将图像特征连接到词嵌...
Parameter-Efficient Fine-Tuning for Large Models: A Comprehensive Survey 大模型的参数高效微调:综述
索引术语- -大型语言模型、参数高效微调、计算机系统、分布式系统。 原文链接: Parameter-Efficient Fine-Tuning for Large Models: A Comprehensive Survey 摘要 大型模型代表了多个应用领域的开创性进展,在不同的任务中取得了显著的成就。然而,它们前所未有的规模伴随着巨大的计算成本。这些模型往往由数十亿个参数组成,需要耗费大量的计算资源才能执行。特别是在受计算能力限制的硬件平台上,扩展的规模和计算需求为定制特定的下游任务带来了相当大的挑战。 参数高效微调( Parameter Efficient Fine-Tuning,PEFT )通过高效地适应各种下游任务的大模型,提供了一种实用的解决方案。特别地,PEFT是指在最小化引入的额外参数数量或所需的计算资源的同时,调整预先训练好的大型模型的参数,使其适应特定的任务或领域的过程。这种方法在处理具有高参数计数的大规模语言模型时尤为重要,因为从零开始微调这些模型可能会导致计算开销大和资源密集型,从而在支撑系统平台设计中带来相当大的挑战。 在这项调查中,我们对各种PEFT算法...
模型推理服务
一、推理服务概述 深度学习模型的全生命周期 深度学习模型的全生命周期图,主要分为两大类任务,训练任务和推理任务。 推理、部署和服务化 训练任务:通常需要执行数小时、数天,一般配置较大的 batch size 以实现较大的吞吐量,训练模型直到指定的准确度或错误率。 推理任务:执行 7 x 24 小时服务,此时模型已稳定无需训练,服务于真实数据进行推理预测,一般 batch size 较小。 推理任务相比训练任务的挑战有如下几点: 模型被部署为长期运行的服务(需要稳定可靠); 推理时有更苛刻的资源约束(需要在有限算力下服务); 推理不需要反向传播梯度下降; 部署的设备型号更加多样,意味着设备架构多样(需要具有通用性)。 训练过程 通过设计合适的 AI 模型以及损失函数、优化算法等,前向传播并计算损失函数,反向计算梯度,利用优化函数来更新模型,最终目标是使损失函数最小。 推理过程 在训练好的模型上,进行一次前向传播得到输出,最终目标是将模型部署在生产环境中。 测试过程 一般此阶段含有功能性测试(离线测试和在线 A/B 测试等)和非功能性测试(性能测...
djl-serving deepspeed模型部署流程(python模式)
djl-serving deepspeed模型部署流程(python mode) 相关介绍 DeepSpeed deepspeed 是一款微软发布的深度学习优化软件套件,能提供一键深度学习加速推理和训练能力。 DeepSpeed 为使用 DeepSpeed、Megatron 和 HuggingFace 训练的基于兼容 Transformer 的模型提供无缝推理模式,无需修改模型即可实现高效推理。 djl-serving DJL Serving 是由DJL提供支持的高性能通用独立模型服务解决方案。它将深度学习模型或工作流程包装成服务,并通过 HTTP 提供它们。 djl-serving python mode djl-serving推理服务支持python模式,用户只需准备一个Python脚本文件即可执行,除此之外,djl-serving还提供如下支持: Java模式:用户需要准备Java前/后处理脚本和模型文件。 二进制模式:用户只需要准备一个模型文件,我们就可以运行tensor-in,tensor out操作。 相应关系 对应的推理服务流程: 用户向DJL-Serving请...
AutoBangumi 密码重置方法
关于 AutoBangumi AutoBangumi是一个根据订阅自动下载番剧的工具,最近进行了升级并且更加好用了。但是在丰富了番剧订阅管理的同时增加了认证功能,对我这种密码太多记不住的人来说不是很友好。 解决方案 官方解决方式 果不其然今天想登陆进去看管理番剧却发现怎么也记不起来密码了,于是去翻看官方faq,却发现官方并不支持重置密码: 1234修改和忘记密码修改密码:在登录后点击右上角···,点击 Profile,修改用户名和密码。目前没有简单的忘记密码的重置方法,如果忘记密码,可以删除 data/data.db 文件,然后重启。 官方推荐直接删除数据库,我(备份之后)删除之后登录出现没有提示的报错,并且担心这样做会导致番剧管理设置被清除,于是就开始研究如何手动重置密码。 手动重置密码 翻看源码后发现,密码管理模块位于Auto_Bangumi/backend/src/module /security/的jwt.py文件,于是写了个脚本来替换对应的hashed_passd。 脚本内容如下: 1234567891011121314151617181920212223242526...
Reasoning Implicit Sentiment with Chain-of-Thought Prompting
用思想链提示推理隐式情感 摘要 虽然情感分析系统试图根据输入文本中的关键观点表达来确定给定目标的情感极性,但在隐式情感分析(ISA)中,观点线索是以隐式和模糊的方式出现的。因此,检测隐式情感需要常识和多跳的推理能力来推断观点的潜在意图。受最近的思想链(CoT)思想的启发,在这项工作中,我们引入了三跳推理(THOR) CoT框架来模拟ISA的类人推理过程。我们设计了THOR的三步提示原则,一步一步地诱导出隐含的方面、观点,最后是情感极性。我们的THOR + Flan-T5 (11B)在有监督的情况下将最新的SoTA(state-of-the-art)推进了超过6 %的F1。更引人注目的是,THOR+GPT3(175B)在零样本下将SoTA提升了50 %以上的F1。我们的代码公开在 https://github.com/scofield7419/THOR-ISA 。 1. 引言 情感分析( SA )旨在根据输入文本检测对给定目标的情感极性。SA可以分为显式SA ( ESA )和隐式SA ( ISA ),其中前者是当前的主流任务,其情感表达显式地出现在文本( Pontiki et a...
Parameter-Efficient Transfer Learning for NLP
面向Nlp的参数高效迁移学习 原始论文:《Parameter-Efficient Transfer Learning for NLP》 http://arxiv.org/abs/1902.00751 摘要 微调大型预训练模型是NLP中一种有效的迁移机制。然而,在存在许多下游任务的情况下,微调是参数无效的:每个任务都需要一个全新的模型。作为替代,我们提出了带有适配器模块的传输。适配器模块产生一个紧凑且可扩展的模型;它们每个任务只添加少量可训练的参数,并且可以在不重访以前的任务的情况下添加新的任务。原始网络的参数保持固定,产生高度的参数共享。为了证明适配器的有效性,我们将最近提出的BERT Transformer模型迁移到26个不同的文本分类任务中,包括GLUE基准测试。适配器获得接近最先进的性能,同时每个任务只增加几个参数。在GLUE上,我们实现了0.4%以内的全微调性能,每个任务仅增加3.6%的参数。相比之下,微调训练每个任务100%的参数。 1. 引言 从预训练的模型中迁移在许多NLP任务( Dai & Le , 2015 ; Howard & Ruder , ...



