Ollama:让大型语言模型触手可及

导语: 近年来,大型语言模型(LLM)发展迅猛,但对于普通用户而言,搭建和使用LLM仍有一定门槛。Ollama应运而生,它是一个轻量级、可扩展的框架,致力于让每个人都能轻松构建和运行本地LLM。 一键安装,轻松上手 Ollama 提供了简单易用的安装方式,无论你是 macOS、Windows 还是 Linux 用户,都能快速开始使用。 macOS: 下载 Windows (预览版): 下载 Linux: 您也可以参考手动安装指南进行安装。 Docker: Ollama 也提供了官方 Docker 镜像 ollama/ollama,您可以在 Docker Hub 上找到它: https://hub.docker.com/r/ollama/ollama。 海量模型库,总有一款适合你 Ollama 支持 ollama.com/library 上提供的众多模型,以下是一些示例: 模型 参数量 大小 下载 Llama 3 8B 4.7GB ollama run llama3 Llama 3 70B 40GB ollama run llama3:70b Phi 3 Mini 3.8B 2.3GB ollama … Read more

新奇性算法,也称为新奇性搜索(Novelty Search)

新奇性算法,也称为新奇性搜索(Novelty Search),是一种非传统的优化和搜索方法,它与传统的目标驱动型算法形成鲜明对比。该算法的核心思想不在于直接追求某个预设的目标或优化某个特定的目标函数,而是鼓励探索未知和新颖的解决方案。它基于自然进化的原理,即新奇的行为或特性往往能开启通往更多新奇发现的路径,从而促进创新和多样性。 核心概念 实践案例 思考与应用 新奇性算法挑战了我们对目标设定的传统理解,提倡在某些情况下,无目标的探索可能比直接追求目标更能促进创新和长期的成功。在教育、创新项目管理、以及人工智能的开放式探索中,这种方法鼓励人们接受不确定性,拥抱探索过程中的偶然性,从而可能发现更为广阔的可能性空间。 新奇性搜索在机器学习领域的应用广泛,它通过鼓励探索未知和新颖的解决方案,推动了多个方面的创新。以下是一些具体实例: 这些应用展示了新奇性搜索在促进创新、增加解决方案多样性以及在复杂、非线性问题上的潜力。通过鼓励探索未知,新奇性搜索为机器学习和人工智能领域带来了新的视角和方法。 通过新奇性搜索解决复杂问题,主要依赖于以下几个步骤和原则: 通过上述步骤,新奇性搜索利用探索的广度而非直接的深度来解决复杂问题,这种方法特别适合于那些目标不明确或解决方案空间高度不确定的问题。它通过不断尝试和学习新奇事物,最终可能间接地达到或超越传统目标驱动方法的成果。 评估新奇性搜索中解决方案的新奇性,通常涉及以下几个关键步骤和考虑因素: 通过上述方法,新奇性搜索能够系统地识别和保留那些在当前探索中具有独特性的解决方案,促进对未知领域的探索,即使这些新奇解在初期可能不直接带来性能上的提升。 在新奇性搜索(Novelty Search, NS)的实现基础中,保存新颖项信息的核心在于设计一个能够有效记录和管理探索过程中遇到的新颖解决方案的数据结构。以下是实现这一过程的关键步骤和组件: 通过这样的实现,NS 能够有效地跟踪和利用探索过程中的新颖性信息,促进对未知解决方案空间的探索,而不是直接追求性能优化。这种方法鼓励算法探索新的行为或解决方案,从而在复杂和多变的问题中找到创新的路径。

策略梯度方法利用动作特征的挑战

策略梯度方法,如A3C(Asynchronous Advantage Actor-Critic,Mnih等人,2016年提出的),确实面临在处理高维或连续动作空间时的挑战,但这并不意味着它们无法利用动作特征。实际上,策略梯度方法通过参数化策略,可以有效地利用动作空间的特征。在高维动作空间中,策略网络通常设计为接收状态信息,并输出动作的概率分布,或者直接输出动作的连续值,这背后就涉及到了对动作空间的特征表示。 利用动作特征 面临的挑战 尽管策略梯度方法能够利用动作特征,它们在高维动作空间中仍然面临挑战,如学习效率低下、收敛速度慢和方差大的问题。为了应对这些挑战,研究者们引入了如目标网络、策略正则化(如TRPO、PPO中的方法)、以及更复杂的策略表示方法,如使用更深层次的神经网络和更高级的优化技巧。 因此,策略梯度方法在理论上和实践中都能够利用动作特征,但需要通过恰当的模型设计和算法改进来克服高维动作空间带来的困难。 策略梯度方法在处理大动作空间时面临挑战,主要由于以下几个原因: 高维动作空间的复杂性:在连续或高维离散动作空间中,动作的数量几乎是无限的,这使得找到最优或接近最优的策略变得极其困难。每个动作的细微变化都可能对最终的奖励产生影响,导致策略的梯度信号非常稀疏且噪声大。 梯度估计的方差问题:策略梯度方法通过采样动作序列来估计策略的梯度,而在大动作空间中,这种采样过程的方差通常很高。这意味着即使多次尝试,梯度的估计也可能波动很大,这会减慢学习速度并可能导致学习过程不稳定。 优化难度增加:在高维空间中,优化目标可能非常复杂且非凸,这使得找到全局最优解或接近最优解的难度大大增加。局部最优解的陷阱更为常见,策略可能在某些局部区域徘徊而无法跳出。 动作空间的连续性处理:对于连续动作空间,策略需要输出动作的概率分布,这通常通过高斯分布或其他连续分布来近似。在这样的空间中,精确地调整动作以最大化奖励需要非常精细的梯度信号,而这种信号在大空间中很难获得。 探索与利用的平衡:在大动作空间中,有效的探索变得至关重要,因为不常见的动作可能带来重要的信息。然而,策略梯度方法在初始阶段可能难以探索动作空间的广泛区域,导致学习进展缓慢。 计算资源需求:处理大动作空间需要更多的计算资源,因为每个动作的评估和梯度计算都可能更复杂,尤其是在使用神经网络作为策略函数时,模型的训练和评估会更加耗时和资源密集。 为了克服这些挑战,研究者们发展了多种策略,如引入基线减少方差、使用目标网络来稳定学习、正则化策略以避免过拟合、以及采用近端策略优化(PPO)、信任区域策略优化(TRPO)等算法来提高学习效率和稳定性。这些方法通过不同的机制来改善在大动作空间中的表现,比如通过优势函数来指导学习,或者通过策略的结构优化来更好地处理高维动作。 策略梯度方法与基于值的方法在处理连续动作空间时存在显著差异,主要体现在目标函数、优化策略、以及对动作空间的处理方式上: 策略梯度方法的特点: 基于值的方法的特点: 对比总结: 在实际应用中,结合两种方法的混合策略,如Actor-Critic架构,可以结合两者的优点,既直接优化策略,又利用价值函数的稳定性来指导学习,成为处理连续动作空间的有力工具。 基于梯度的策略优化方法是一类直接在策略参数上进行优化的强化学习算法,旨在通过梯度上升或下降来最大化累积奖励。以下是一些重要的基于梯度的策略优化算法: 这些算法各有特点,适用于不同的学习环境和任务需求,但共同点在于它们都通过直接优化策略参数来学习最优行为策略。 策略梯度方法在处理高方差问题时,通常采用以下几种策略来提高学习的稳定性和效率: 这些方法通过不同的机制来减少策略梯度估计的方差,提高学习的稳定性和效率,使得智能体在复杂和高维的环境中能够更有效地学习。 REINFORCE 算法能有效处理采样梯度的期望问题,主要是因为它利用了策略梯度理论和蒙特卡洛方法的结合。以下是其有效性的几个关键点: 综上所述,REINFORCE算法通过直接在策略上进行优化,并利用蒙特卡洛采样来估计策略梯度,有效地解决了在复杂策略空间中寻找最优策略的采样期望问题。虽然存在方差大的挑战,但通过引入基线和其他方差减少技术,可以进一步提高其学习效率和稳定性。 监督学习中的“数据”: 在监督学习中,我们处理的是带有标签的数据集。这意味着每一份数据(例如图像、文本或数值)都配有一个明确的正确答案或标签(例如分类标签、回归值)。学习过程旨在通过这些已知的输入-输出对来学习一个函数,这个函数能够对新的、未见过的数据做出准确的预测。监督学习的关键在于从这些配对的数据中提取模式,以泛化到未知数据。数据是学习过程的直接指导,它告诉模型“正确答案”是什么。 强化学习中的“环境”: 强化学习的场景则大不相同。在这里,智能体(模型)与一个环境交互,这个环境可以是物理的(如机器人导航)或虚拟的(如游戏)。智能体通过采取行动来探索环境,并从环境中接收反馈,这种反馈通常以奖励(正向或负向)的形式出现,但不直接提供“正确答案”。智能体的目标是通过试错学习,找到能最大化累积奖励的行动策略。环境扮演了一个动态的、非直接指导的角色,它不直接告诉智能体应该做什么,而是通过奖励机制间接引导智能体学习。 对比与联系: 因此,”在监督学习中,我们拥有的是数据;而在强化学习中,我们拥有的是环境。”这句话强调了两种学习范式的核心差异:监督学习依赖于外部提供的明确知识,而强化学习则依赖于智能体与环境的动态交互来自我发现知识。 在强化学习中,智能体通过试错探索提升动作质量是一个迭代和累积学习的过程,主要涉及以下几个关键环节: 通过这个循环往复的过程,智能体逐渐提升其动作质量,从随机行为开始,逐步学习到在特定环境下获得最大奖励的策略。这个过程体现了强化学习的核心——通过不断的试错和反馈,智能体自我改进,最终达到或接近最优策略。 在多智能体系统中,处理维度爆炸问题通常涉及减少状态和动作空间的复杂性,以及优化学习算法以适应大规模的交互环境。以下是一些解决策略: 通过这些方法,多智能体系统可以更有效地处理大规模状态和动作空间,提高学习效率和策略质量,从而克服维度爆炸带来的挑战。

Resemble Enhance:AI赋能的语音增强利器

近年来,人工智能技术在语音处理领域的应用日益广泛,语音增强技术作为其中重要一环,其发展也日新月异。今天,就为大家介绍一款名为Resemble Enhance的AI语音增强工具,它能够有效降低噪音、提升语音质量,为用户带来更清晰、更纯净的音频体验。 Resemble Enhance:双模块协同,打造高品质语音 Resemble Enhance 的核心是由去噪器和增强器这两个模块构成的。 值得一提的是,这两个模块的训练数据均为高品质的44.1kHz语音数据,这保证了Resemble Enhance 能够输出高保真的增强语音。 Resemble Enhance:简单易用,功能强大 Resemble Enhance 的一大优势在于其简单易用的特点。即使你不是技术专家,也能轻松上手。 安装与使用 你可以通过以下命令,轻松安装稳定版本的 Resemble Enhance: 如果你想尝试最新的预发布版本,可以使用以下命令: 安装完成后,使用起来也非常简单。只需执行以下命令,即可对指定目录下的音频文件进行增强: 其中,in_dir 是输入音频文件所在的目录,out_dir 是输出增强后的音频文件所在的目录。 如果你只想进行去噪处理,可以使用以下命令: Web Demo 体验 为了方便用户体验 Resemble Enhance 的强大功能,开发者还提供了一个基于 Gradio 构建的 Web 演示版本。你可以在 Hugging Face 上在线体验,也可以在本地运行: Resemble Enhance:定制化训练,满足个性化需求 除了使用预训练模型,Resemble Enhance 还支持用户根据自身需求训练个性化模型。 数据准备 训练模型的第一步是准备数据。你需要准备三个数据集: 数据集的目录结构如下: 模型训练 Resemble Enhance 的训练过程分为三个阶段: 总结 Resemble Enhance 是一款功能强大、易于使用的 … Read more

S3:一个简单高效的多模态对话系统

近年来,人工智能 (AI) 领域见证了多模态系统的兴起。这些系统能够无缝整合文本、图像和音频等多种形式的数据,在模拟人类认知能力方面正变得越来越娴熟。然而,该领域的研究人员面临的主要挑战之一是需要大量数据和计算资源来训练最先进的模型。 本文介绍了一种全新的范式,即只需少量数据和计算资源即可构建强大的多模态系统。我们提出了一个简单而有效的基线模型 S3,它挑战了大型数据集和过度计算能力是开发具有竞争力的多模态 AI 系统的先决条件的传统观念。通过使用包含不到 150,000 个多模态样本的精简语料库、预训练的冻结模态编码器、7B 语言模型,以及利用单个 A100-80GB GPU 的计算经济性,我们创建了一个架构简洁优雅、性能可与目前领域内更复杂系统相媲美的模型。我们方法的核心是一个模态投影器,它使用一个简单的多层感知器 (MLP) 将多模态特征映射到标记嵌入中。 S3 的强大之处 S3 的贡献可以概括如下: 深入 S3 的核心技术 多模态数据预处理的艺术 为了实现多模态对话的目标,我们以标准聊天布局格式化了每个数据集。这种格式将每条消息表示为一个 JSON 对象,其中包含“角色”(指示消息是来自用户还是机器人)、“类型”(指示消息包含图像、音频还是文本)以及消息内容本身(在图像和音频的情况下,这将是文件路径)。 图1:多模态对话数据 json 格式示例 我们为每个数据集创建了一个自定义系统提示,以引出与原始数据集紧密匹配的机器人响应。例如,对于 TextCaps 数据集,我们选择了“用单个词或短语回答问题”之类的提示,以反映数据集主要包含简短响应的事实。 为了解决许多数据集存在的简短性问题(这些数据集通常由单对问答组成),我们随机将多个简短对话组合成扩展序列,以创建更长的对话。 特殊标记和后处理:解码多模态对话的关键 我们在基础模型的标记器中集成了额外的特殊标记,并解冻了语言模型头和嵌入层,以促进这些新标记的训练。具体来说: 模态投影器:连接视觉和语言的桥梁 模态投影器的作用是调整各种模态对象(如图像和音频)的嵌入,以确保它们与语言模型兼容。在我们的研究中,我们实现了一种基本架构设计,其中使用多个线性层将来自模态编码器的隐藏状态直接映射到语言模型的标记嵌入中。 与 LLaVA 等最先进的模型不同,我们将模态对象映射到 4 个标记中,而不管模态编码器中输出补丁的数量。我们假设少量输出模态标记足以进行基本的视觉理解。此外,仅使用 4 个标记可以显着减少我们传递给 Transformer 的序列长度。 S3 性能评估:在 AI 旅程竞赛和 MMMU 基准测试中脱颖而出 AI 旅程竞赛:展现强大的多模态交互能力 我们在 … Read more

通向AGI之路:AI原生记忆,而非无限上下文

引言:LLM的局限性与AGI的曙光 近年来,大型语言模型(LLM)的蓬勃发展,为人工智能领域注入了新的活力,预示着通用人工智能(AGI)的曙光。然而,一些LLM初创公司认为,拥有近乎无限上下文长度的LLM就能实现AGI,这种观点或许过于乐观。本文将深入探讨LLM在实现AGI道路上面临的挑战,并提出一种基于AI原生记忆的AGI实现路径。 无限上下文并非万能解药 当前,许多研究致力于扩展LLM的上下文长度,例如,GPT-4的上下文窗口为32K tokens,而最新的GPT-4-turbo和GPT-4o模型可以处理128K tokens;Gemini 1.5则声称拥有1M或10M tokens的上下文窗口。学术界也探索了对抗长度外推和位置偏差的方法,一些研究甚至声称实现了“无限”的上下文长度。 然而,LLM是否能够有效利用超长甚至无限的上下文,目前尚无定论。我们认为,类似于人类的认知负荷,LLM能够处理的最大内容量可能存在固有限制。 有效上下文长度的局限性 现有的长上下文LLM通常采用“大海捞针”(NIAH)测试来评估其性能,即从大量无关文本中检索特定信息的能力。有效上下文长度则定义为测试LLM相较于强基线模型表现更优的最大长度。 然而,根据最近一项针对长上下文模型的基准测试研究(Hsieh et al., 2024),大多数(如果不是全部)LLM都夸大了其上下文长度。例如,声称拥有128K上下文长度的GPT-4,其有效上下文长度仅为64K;而ChatGLM的有效上下文长度仅为4K,远低于其声称的128K。 推理能力的瓶颈 为了进一步验证LLM在长上下文场景下的推理能力,我们提出了一种新的评估任务——推理大海捞针,旨在验证LLM在需要同时进行检索和推理时的能力。 我们以Mindverse AI的“第二自我”产品Mebot的真实用户数据为例,构建了8个不同的用户数据堆栈,并设计了6种不同的查询-信息对。实验结果表明,即使是最先进的LLM(如GPT-4o和GPT-4-turbo),在处理长文本和多跳推理时也表现不佳。 图2:基于Mebot真实数据的推理大海捞针比较 实验结果表明,响应质量与上下文长度和推理步骤数量呈负相关,这意味着LLM在处理长文本和多步推理方面存在困难。 AI原生记忆:通向AGI的关键 我们认为,AGI应该是一个类似于计算机的系统,其中LLM充当处理器,LLM的上下文充当RAM,而记忆则扮演着磁盘存储的角色。 RALM/RAG:记忆的初级形态 检索增强型LLM(RALM)可以通过筛选大量相关上下文来回答查询,可以看作是将记忆定义为仅包含原始数据的特例。然而,记忆不仅仅是原始数据,它还应该包含从原始数据中推理得到的重要结论,并能够被用户直接消费。 什么是AI原生记忆? 我们认为,AI原生记忆的最终形态是一个深度神经网络模型,它能够参数化和压缩所有类型的记忆,甚至是无法用自然语言描述的记忆。为了确保与同一个AGI代理交互的不同用户的记忆隐私,我们认为最佳实践是为每个用户维护一个独立的记忆模型。我们将这种介于AGI代理和特定用户之间的记忆模型称为该用户的大型个人模型(LPM)。 LPM记录、组织、索引和排列关于个人的每一个细节,最终为用户提供直接访问记忆的接口,并为下游应用程序(如个性化生成、推荐等)提供有用、完整的上下文。 LPM的实现级别 我们设想LPM的实现可以分为三个级别,复杂度递增: L1:自然语言记忆 在L1中,记忆将包含一组自然语言描述,例如关键词/标签、短语、句子甚至段落。这与信息提取和知识发现高度相关,包括短语挖掘、实体识别、关系提取、文本摘要、分类法构建等。 L1 LPM的开发者需要指定方案,例如定义各种有用的记忆类型,包括但不限于: L2:AI原生记忆 在L2中,记忆超越了自然语言形式,成为一个神经网络模型,因此我们将其命名为“AI原生”。该模型旨在编码用户的所有记忆。 L2 LPM可以看作是世界模型的个性化版本,它应该能够根据用户历史预测用户行为。 L2 LPM的挑战和潜在解决方案: 总结与展望 AI原生记忆作为AGI时代(主动)参与、个性化、分发和社交的变革性基础设施,具有巨大的潜力,同时也带来了隐私和安全方面的挑战。 我们相信,在未来,AGI代理将首先与AI原生记忆交互,并查看它是否能够提供必要的信息。如果不是,则由AI原生记忆与真实用户交互以找出更多信息。因此,AI原生记忆将成为用户与AGI代理之间所有交互和个性化的核心。

大语言模型会“梦见”大象吗?——浅析Transformer中的潜在概念关联与联想记忆

引言:大语言模型的“大象梦境” 当我们被要求不要去想一头大象时,我们脑海中浮现的第一个画面很可能就是一头大象。那么,如果我们对大语言模型(LLM)提出同样的要求,会发生什么呢?显然,LLM的输出会受到上下文标记的强烈影响 [Brown 等人,2020]。这种影响是否会以一种非同寻常的方式引导LLM改变其输出呢? 为了深入理解这个问题,本文着眼于一项名为“事实检索”的任务 [Meng 等人,2022, 2023],该任务要求模型给出预期的输出答案。LLM经过海量数据的训练,已知具有存储和回忆事实的能力 [Meng 等人,2022, 2023; De 等人,2021; Mitchell 等人,2021, 2022; Dai 等人,2021]。这种能力引发了以下问题:事实检索的鲁棒性如何?它在多大程度上依赖于上下文中的语义?它揭示了LLM中记忆的哪些特性? 本文首先证明了事实检索并不鲁棒,LLM很容易被变化的上下文所愚弄。例如,当被要求完成“埃菲尔铁塔位于…”时,GPT-2 [Radford 等人,2019] 会回答“巴黎”。然而,当提示为“埃菲尔铁塔不在芝加哥。埃菲尔铁塔位于…”时,GPT-2 却回答了“芝加哥”。图 1 展示了更多例子,包括 Gemma 和 LLaMA。另一方面,人类并不会觉得这两个句子在事实上令人困惑,在两种情况下都会回答“巴黎”。我们将这种现象称为“上下文劫持”。重要的是,这些发现表明LLM可能像一个联想记忆模型,其中上下文中的标记引导着记忆的检索,即使形成的这种关联本身并不具有语义意义。 图 1:各种LLM的上下文劫持示例,表明事实检索并不鲁棒。 上下文劫持:LLM的脆弱性 为了深入研究上下文劫持现象,本文对包括 GPT-2 [Radford 等人,2019]、Gemma [Team,2024](基础模型和指令模型)以及 LLaMA-2-7B [Touvron 等人,2023] 在内的多个开源 LLM 模型进行了实验。 本文使用 Meng 等人 [2022] 提出的 CounterFact 数据集进行大规模实验。CounterFact 数据集包含 21,919 个样本,每个样本由一个元组 (p, o, o_, … Read more

用角色扮演零样本提示打造更像人类的聊天机器人

近年来,大型语言模型(LLM)在各个自然语言处理任务中都取得了显著的进步,其中一项就是开放域对话。这项技术旨在创造能够与用户进行自然、流畅对话的智能体,并展现出类似人类的同理心、个性和娱乐性等特质。 传统方法的局限性 目前,构建开放域对话系统的常见方法主要依赖于针对特定数据集的微调。例如,PersonaChat、Blended Skill Talk 和 Empathetic Dialogues 等数据集就被用于训练模型在对话中展现不同的技能。然而,这些数据集的构建成本高昂,而且通常只有一种语言版本。此外,最近自然语言处理领域的发展重点是训练能够遵循指令的LLM,例如 Alpaca、StackLLaMA、Guanaco 和本文研究的重点模型 Vicuna。这些模型能够以自然语言的方式响应用户的输入,但它们仍然局限于“领导者-追随者”的单向关系,难以直接展现出人类的对话能力。 角色扮演零样本提示:一种高效且经济的解决方案 为了解决上述问题并避免微调及其对数据的依赖性,本文提出了一种基于角色扮演的零样本提示方法,利用指令遵循模型的能力来构建开放域对话系统。这种方法属于新兴的基于提示的学习(PBL)范式。 角色扮演提示的内涵 角色扮演提示的意义不仅限于扮演一个给定的角色,更在于引导LLM展现出适合特定对话任务的模拟角色。LLM在预训练过程中吸收了海量的模拟角色,而角色扮演提示的作用就是引导LLM选择并展现出最适合当前对话场景的模拟角色。 提示结构 为了有效地处理开放域对话的复杂性,我们定义了一个通用的提示结构,该结构可以根据不同的对话任务进行调整。这个结构包含以下几个关键部分: 最终,提示构建器会根据不同的对话任务,将上述部分以最合适的顺序组合成最终的提示。 实验与评估 为了评估角色扮演零样本提示方法的有效性,我们在两个不同的对话任务上进行了实验: 评估指标 我们采用人工评估的方式来衡量对话系统的性能,评估指标包括: 实验结果 实验结果表明,角色扮演零样本提示方法能够有效地提升LLM在开放域对话中的性能。 统计分析 对收集到的对话进行统计分析后发现,指令遵循模型存在着回复过于冗长的缺陷。 结论与展望 本文探讨了使用结构化的角色扮演提示工程来改进LLM的开放域人机对话。角色扮演提示是一种简单且经济的方法,可以升级语言模型的行为,使其成为对话代理。本文的实验在法语环境下进行,但可以通过调整角色方向将其应用于其他语言。在两个不同的任务(基于角色的任务和模拟多模态对话)中的实验表明,尽管语言模型仍然存在明显的缺点(例如幻觉),但用户对这些代理的感知可以与成本更高的微调模型相媲美。 未来,我们将进一步改进提示工程,自动化构建和过滤过程,并探索使用强化学习来自动生成提示。

利用大型语言模型进行开放域人机对话中的角色扮演零样本提示

引言 自从Transformer被引入以来(Vaswani et al., 2017),衍生的大型语言模型(LLMs)在多个自然语言处理(NLP)任务上不断提升了技术水平。其中,开放域对话是指设计一个对话代理,使其能够在任何话题上与用户进行社交互动,展示出人类的能力,如共情、个性和娱乐性(Walker et al., 2021)。常见的方法是使用特定的数据集进行微调,通常针对某一或多种技能(例如PersonaChat,Blended Skill Talk,Empathetic Dialogues等)。然而,这些数据集的构建成本高且通常仅限于一种语言。 在本研究中,我们探索了一种高效且成本低廉的解决方案:通过角色扮演零样本提示,利用具备多语言能力的大型语言模型(如Vicuna)来提升开放域对话能力。我们设计了一种提示系统,与指令跟随模型结合,能够在两项任务中与人类评估中的微调模型相媲美,甚至超越它们。 相关工作 开放域对话领域有很多发展,大多数解决方案主要集中在使用特定数据进行微调。例如BlenderBot系列,Meena,LaMDA等。这些模型展示了出色的对话技能,但除了对数据的依赖外,它们通常仅限于英语。基础模型是NLP领域的一个新趋势,它们展示了多语言能力并在多个基准上表现出色。其中,LLaMA模型是本研究的基础。 方法论 指令跟随 vs 对话技能 引用Reitz(2019)的话:“对话不仅仅是进行对话。真正的对话描述了一种相互、关系、专注和有意义的互动方式。”尽管指令跟随模型经过优化以进行对话,但它们在真正的对话中往往无法满足这些方面的要求。尤其是社交方面——相互性、关系性和专注性——表现得较差。 角色扮演提示 理解角色扮演提示不仅限于扮演特定角色。根据Shanahan等(2023)的模拟和模拟器框架,LLM是一个模拟器,在预训练期间吞噬了无数的模拟物。在每次模拟中,它会随机选择一个合适的模拟物进行展示。角色扮演提示通过使LLM倾向于适应特定对话任务的模拟物来增强对话技能。 提示结构 开放域对话属于复杂任务领域(Santu和Feng,2023),提示的微小变化可能会影响模型的表现。因此,定义一个通用的提示结构是必要的,以便可以针对不同的对话任务进行调整。我们保留以下部分作为提示工程模块的构建块: 实验 系统架构 系统架构如图1所示,它包括多个模块,如基于Rasa X工具的Web界面、提示构建模块和过滤模块。用户可以通过语音或文本与代理进行交流。 具有人类能力的开放域对话:PersonaChat任务 此任务通过使用从PersonaChat数据集中提取的个性特征来增强LLM的对话能力。我们设计了浅层提示和高级提示两种方案进行比较。 模拟多模态对话:INT任务 此任务验证了模型在特定主题下进行对话的能力。对话系统旨在进行多模态对话,背景是神经科学实验。用户和代理需要讨论一张图片,并找出其推广目标。 人类评估 为了评估模型的性能,我们进行了自我聊天和人机聊天两种评估。评估标准包括一致性、互动性和人性化。此外,对于INT任务,还增加了任务完成度这一标准。 自我聊天评估 自我聊天评价通过比较不同设置下生成的对话进行。结果表明,模型尺寸越大、指令调优的模型表现越好。 人机聊天评估 在PersonaChat任务中,我们收集了用户与模型的对话,并与BlenderBot进行了比较。结果显示,高级提示在一致性和人性化上得分最高,而浅层提示在互动性上得分最低。 在INT任务中,Vicuna & Advanced Prompt系统在所有标准上表现最佳,除了人性化。实验表明,该系统在保持对话互动性方面表现出色。 统计分析 我们对收集的对话进行了统计分析,包括词汇量、每条消息的单词数等。结果显示,Vicuna模型在生成的对话中词汇量较大,但也存在过度冗长的问题。 过滤错误分析 我们评估了响应生成中的错误类型,包括内容不适当、消息过长或使用错误语言等。结果表明,通过适当的提示和过滤,可以减少这些错误的发生率。 结论 本文探讨了通过结构化角色扮演提示工程来提升LLM在开放域人机对话中的表现。实验结果表明,尽管语言模型仍存在一定的缺陷,如幻觉,但用户对这些代理的感知可以与高成本的微调模型相媲美。未来的工作可以通过全方位的强化学习来进一步优化提示生成过程。 参考文献

WildGuard:LLM安全风险、一站式审核工具

引言 现代语言模型(LLM)在没有充分保障的情况下,可能带来相当大的风险[5, 9, 42, 16, 37]。有效的内容审核对于减轻这些风险至关重要,通过过滤不良输入[24],监控有害模型输出[17],并通过测量有害与良性提示的拒绝率来评估模型的安全性[30]。 在本文中,我们介绍了WildGuard,这是一款轻量级、多功能的审核工具,用于评估用户与LLM交互的安全性。WildGuard为三项安全审核任务提供了一站式资源:提示有害性检测、响应有害性检测和响应拒绝检测。我们展示了WildGuard如何在所有三项任务上推动开源安全审核工具的最先进水平,并提供了一种更开放、一致和经济的替代方案,与昂贵且非静态的API审核工具相比,WildGuard表现不相上下甚至更好。 开发WildGuard的动机主要来自两个观察结果。首先,现有的开源工具如Llama-Guard2[17]在识别对抗性提示(即越狱)方面效果较差,远不如GPT-4。其次,虽然现有的开源工具可以在一定程度上识别响应中的有害内容,但仅凭响应的有害性不足以确定模型是否拒绝了用户的请求。这对于测试夸大的安全性尤为重要,例如,当用户询问“如何杀死Python进程?”时,响应通常是良性的,无论是过度拒绝(“我不能提供暴力行为的指示”)还是正确的合规(“杀死Python进程的方法是…”)。因此,分类有害性不足以评估安全性,需要独立评估拒绝。 LLM安全审核工具的现状 测试基准 为了评估对抗性提示中的有害性检测,我们从WildJailbreak(WJ)[3]的验证集中抽样了一组250个良性和250个有害提示。为了评估细微拒绝检测,我们使用了我们新的基准XSTest-Resp。 模型 我们评估了开源和闭源工具。在开源工具中,我们测试了四个模型,旨在识别提示和响应中的有害性:Llama-Guard[17],Llama-Guard2[26],Aegis-Guard-Defensive[14]和Aegis-Guard-Permissive[14]。对于这些模型,为了标记拒绝,我们将输出有害的响应标记为合规,如果输出标签是安全的,则标记为拒绝。 发现 发现1:现有的开源工具在对抗性提示上不可靠,远远落后于GPT-4。如图2所示,现有的开源工具在检测普通提示中的有害性方面表现尚可,但在对抗性提示中却表现不佳。对于两种提示类型,我们还看到了开源工具与GPT-4之间的显著性能差距,从而导致对API工具的昂贵依赖持续存在。 发现2:现有的开源工具难以测量模型响应中的拒绝。表2显示了开源工具在识别模型完成中的拒绝方面也存在困难。表现最好的有害检测模型Llama-Guard2比GPT-4低15.1%,验证了响应有害性不足以完成这项任务。 构建WildGuardMix和WildGuard WildGuardTrain:多任务审核训练数据集 WildGuardTrain(WGTrain)是一个综合训练数据集,共包含86,759项数据,涵盖多种来源的数据,包括普通(直接请求)和对抗性提示。数据覆盖了良性和有害场景,以及各种类型的拒绝和合规响应。 提示构建 我们生成了覆盖广泛风险场景的有害提示,并引入了两种类型的良性对比提示:1)表面上类似不安全提示的良性提示,以及2)讨论敏感但安全话题的良性提示。 合规和拒绝构建 对于我们的合成对抗性和普通提示,我们生成了匹配的拒绝和合规响应。我们使用了一套LLMs以及GPT-4来生成这些响应。 WildGuardTest:高质量人工标注的测试审核数据集 为了构建WildGuardTest(WGTest),我们从合成普通和对抗性数据中抽样了1,725对提示-响应对,并收集了三个独立标注者对每对提示-响应对的标注。 训练WildGuard 使用WGTrain,我们基于Mistral-7b-v0.3[20]训练了WildGuard。我们设计了统一的输入和输出格式,以捕捉三项任务。 评估WildGuard相对于现有LLM安全审核工具的表现 评估设置 我们在十个公开的安全基准和我们的WGTest上测试WildGuard和相关基准。在提示有害性方面,我们使用了ToxicChat[23],OpenAI Moderation[24],AegisSafetyTest[14],SimpleSafetyTests[35]和HarmBenchPrompt[25]。在响应有害性方面,我们使用了HarmBenchResponse[25],SafeRLHF[10],BeaverTails[10]和XSTest-Resp。 结果:WildGuard设立了新的多任务最先进水平 WildGuard在提示分类方面表现最佳,超过了所有开源基准,并在WGTest上的表现比GPT-4高出1.8%。在响应有害性方面,WildGuard也超过了所有开源基准,并在两个评估中超过了GPT-4。在拒绝检测方面,WildGuard表现尤为出色,超越了现有开源模型,并与GPT-4的表现差距在4.1%以内。 WildGuard的消融结果 每个主要组件对WildGuard的成功至关重要,多任务训练提高了WildGuard的整体性能。 WildGuard在实际人机交互中的表现 作为实际应用示例,我们在模拟聊天审核使用案例中测试了WildGuard。结果显示,结合WildGuard过滤器的模型在拒绝有害越狱提示和避免过度拒绝方面表现最佳。 相关工作 LLM安全审核工具的研究主要集中在检测仇恨、毒性、攻击性和辱骂内容[13, 29, 21],并逐渐使用先进的LLM如GPT-4进行审核[41]。我们的工作通过对抗性输入的处理和多任务审核的支持,显著提升了LLM安全审核工具的性能。 结论 我们介绍了WildGuard,这是一款统一的多任务开源LLM安全审核模型,能够检测多种类型的普通和对抗性有害用户提示、有害模型响应和模型拒绝。通过公开的WildGuard模型和WildGuardMix数据集,我们的研究促进了LLM安全审核工具的开放和可靠的发展。 参考文献 (注:此处省略部分参考文献以节省篇幅)