Quiet-STaR:让语言模型在“说话”前思考
# Quiet-STaR:让语言模型在 “说话” 前思考
论文: [arxiv 2403.09629]Quiet-STaR- Language Models Can Teach Themselves to Think Before Speaking(Stanford 2024)
# 1. 背景
# 1.1 CoT 与 StaR
通过生成中间推理步骤(rationale),可以显著提高大型语言模型(LLM)在复杂推理任务(如数学、常识性问答)中的表现。比如 “思维链”,但是它需要构建大量基本原理(思考过程)数据集,或者需要使用牺牲准确性的 few-shot 方式。
"Self-Taught Reasoner" (STaR) 自学推理机 技术采用了一种迭代自我增强的策略,利用少量理由样例和大量无理由的数据集,不断提升模型的复杂推理能力。核心流程如下:
通过小样本提示 LLM 生成回答的理由。
如果生成的答案错误,给模型提供正确的答案,重新生成理由。
将正确生成的理由加入到微调数据集。
不断重复该过程。
# 1.2 StaR 存在的问题
STaR 通过从问答中的少 ...
机器学习笔记——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∣θ)=Z∑ ...
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,而没有当成一个整体。如果我们使用思维链来构建这个问题,就变成了下面的情况:
很显然模型根据给出 ...
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% 的成功率。所有提示的代码 ...
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 是指在最小化引入的额外参数数量或所需的计算资源的同时,调整预先训练好的大型模型的参数,使其适应特定的任务或领域的过程。这种方法在处理具有高参数计数的大规模语言模型时尤为重要,因为从零开始微调这些模型可能会导致计算开销大和资源密集型,从而在支撑系统平台设计中带来相当大的挑战。
在这项调查中,我们对各种 PEF ...
模型推理服务
# 一、推理服务概述
# 深度学习模型的全生命周期
深度学习模型的全生命周期图,主要分为两大类任务,训练任务和推理任务。
# 推理、部署和服务化
训练任务:通常需要执行数小时、数天,一般配置较大的 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 操作。
# 相应关系
对应 ...
AutoBangumi 密码重置方法
关于 AutoBangumi
AutoBangumi是一个根据订阅自动下载番剧的工具,最近进行了升级并且更加好用了。但是在丰富了番剧订阅管理的同时增加了认证功能,对我这种密码太多记不住的人来说不是很友好。
解决方案
官方解决方式
果不其然今天想登陆进去看管理番剧却发现怎么也记不起来密码了,于是去翻看官方faq,却发现官方并不支持重置密码:
1234修改和忘记密码修改密码:在登录后点击右上角···,点击 Profile,修改用户名和密码。目前没有简单的忘记密码的重置方法,如果忘记密码,可以删除 data/data.db 文件,然后重启。
官方推荐直接删除数据库,我(备份之后)删除之后登录出现没有提示的报错,并且担心这样做会导致番剧管理设置被清除,于是就开始研究如何手动重置密码。
手动重置密码
翻看源码后发现,密码管理模块位于Auto_Bangumi/backend/src/module /security/的jwt.py文件,于是写了个脚本来替换对应的hashed_passd。
脚本内容如下:
1234567891011121314151617181920212223242526272 ...
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 ),其中前者是当前的 ...