Day: August 17, 2024

LoRA 大混战:看 Punica 如何玩转多租户模型服务LoRA 大混战:看 Punica 如何玩转多租户模型服务

各位看官,近年来,大型语言模型(LLM)如雨后春笋般涌现,令人眼花缭乱。而 LoRA(低秩适应)作为一种高效的 LLM 微调方法,更是备受瞩目。试想一下,如果能将多个 LoRA 模型部署到同一个 GPU 集群中,那该是多么美妙的事情啊!今天,就让我们走近 Punica,一窥它如何巧妙地实现多租户 LoRA 模型服务。 一、 LoRA 模型服务:机遇与挑战并存 俗话说,”好马配好鞍”,强大的 LoRA 模型也需要高效的部署方案才能发挥其最大威力。然而,传统的 LLM 服务系统却难以满足多租户 LoRA 模型服务的特殊需求。 想象一下,如果将每个 LoRA 模型都视为独立的模型进行部署,就如同在一个本就拥挤的舞台上,硬生生地塞进更多演员,结果必然是资源紧张,性能低下。 那么,如何才能打造一个高效的多租户 LoRA 模型服务系统呢? Punica 的设计者们总结了三条宝贵的设计准则: (G1) [...]

当机器试图理解因果:一场视觉与逻辑的角逐当机器试图理解因果:一场视觉与逻辑的角逐

—— 新基准测试揭示人工智能视觉推理的优势与短板 近年来,大型语言模型(LLMs)在理解文本信息、进行因果推理方面展现出了惊人的能力。然而,当面对纯粹的视觉线索时,这些擅长文字游戏的模型还能否像福尔摩斯一样洞察秋毫,推断出图像背后的因果关系呢?为了解答这个疑问,我们开发了一个名为MuCR的多模态因果推理基准测试,旨在挑战视觉大型语言模型(VLLMs)仅凭视觉线索推断因果关系的能力。 想象一下,如果机器能够通过观察一系列图像,就能像经验丰富的侦探一样,识别出微妙的视觉线索,并推理出事件发生的来龙去脉,那将是多么令人兴奋!然而,现实中的VLLMs真的准备好了吗? MuCR:一场精心设计的视觉推理挑战赛 MuCR基准测试的独特之处在于,它提供成对的图像,并要求VLLMs分析这些图像之间的因果关系。为了使挑战更具趣味性和真实性,我们采用了一种新颖的“提示驱动图像合成”方法。简单来说,我们首先使用LLMs生成描述因果关系的文本描述,例如“他吃了太多冰淇淋”和“他肚子疼”。然后,我们使用先进的图像生成模型,如DALL-E和Stable Diffusion,将这些文本描述转化为栩栩如生的图像。 为了确保MuCR数据集的丰富性和多样性,我们涵盖了各种类别,包括人物、动物、植物、卡通角色以及它们的混合场景。此外,我们还采用了不同的图像风格,例如写实的摄影风格和夸张的漫画风格。 三重考验:全方位评估VLLMs的推理能力 为了全面评估VLLMs的因果推理能力,我们设计了三个层次的指标: 结果揭晓:喜忧参半,任重道远 我们选择了当前最先进的开源和内部VLLMs,并进行了大量的实验。结果表明,开源模型在MuCR上的表现普遍不佳,甚至与随机猜测的结果相当。这主要是因为开源模型的视觉理解能力还比较薄弱,难以准确地识别图像中的关键信息。 相比之下,内部模型的表现要好得多,但仍然无法达到人类的水平。例如,在短语级别测试中,即使是表现最好的GPT-4o模型,其准确率也只有57.25%,而人类的准确率高达90.50%。这表明,当前的VLLMs在多模态因果推理方面还有很大的提升空间。 剖析不足:视觉与逻辑的博弈 那么,究竟是什么原因导致VLLMs在MuCR上表现不佳呢? 展望未来:通往更强大的视觉推理之路 MuCR基准测试的提出,为多模态因果推理的研究提供了一个宝贵的平台。为了进一步提升VLLMs的性能,未来的研究可以关注以下方向: 总而言之,MuCR基准测试揭示了当前VLLMs在多模态因果推理方面的优势和不足,并为未来的研究指明了方向。相信随着技术的不断进步,VLLMs将最终具备像人类一样强大的视觉推理能力,并在各个领域发挥更大的作用。 参考文献 [...]

Poe:从复读机到PDF计数器,手把手教你打造爆款聊天机器人!Poe:从复读机到PDF计数器,手把手教你打造爆款聊天机器人!

“ChatGPT太卷了,我也想做聊天机器人!” 别担心,Poe平台让你轻松成为“机器人大亨”! Poe是什么?简单来说,它是一个聊天机器人平台,提供了各种各样的机器人供用户使用。更重要的是,Poe还提供了一套工具,让你可以创建并部署自己的聊天机器人,无需从头开始构建复杂的架构。 第一步:复读机入门 俗话说,万事开头难。Poe平台深谙此道,特意准备了“复读机”入门教程。别小看复读机,它可是检验你是否成功搭建开发环境的关键! Poe平台推荐使用fastapi_poe和modal进行部署。按照教程,运行modal deploy echobot.py,一个活灵活现的复读机就诞生了! 第二步:进阶玩法,PromptBot 掌握了基础,接下来就该学习进阶玩法了!PromptBot是一个基于Prompt的聊天机器人,它利用Poe平台承担推理成本,让你无需担心高昂的费用。 Poe平台提供了一个使用Claude-3-Haiku模型的例子,这个机器人可以生成优美的俳句。运行modal deploy prompt_bot.py,并根据教程同步机器人设置,你的俳句生成器就上线了! 第三步:OpenAI API加持,WrapperBot 想要使用自己的模型?没问题!WrapperBot可以让你轻松调用OpenAI API,实现更个性化的功能。 你需要准备自己的OpenAI API密钥,然后运行modal deploy wrapper_bot.py,一个基于OpenAI模型的聊天机器人就诞生了! 第四步:花式炫技,CatBot和ImageResponseBot Poe平台支持Markdown语法,让你的机器人不仅能说会道,还能“图文并茂”! CatBot利用Markdown展示可爱的猫咪图片,运行modal deploy catbot.py即可体验。ImageResponseBot则更进一步,可以根据你的指令生成相应的图片,运行modal deploy image_response_bot.py,开启你的“AI画师”之旅! 第五步:文件交互,VideoBot和PDFCounterBot 想要实现更复杂的功能?Poe平台支持文件上传和下载,让你的机器人如虎添翼! [...]

Poe:从复读机到PDF计数器,手把手教你打造爆款聊天机器人!Poe:从复读机到PDF计数器,手把手教你打造爆款聊天机器人!

“ChatGPT太卷了,我也想做聊天机器人!” 别担心,Poe平台让你轻松成为“机器人大亨”! Poe是什么?简单来说,它是一个聊天机器人平台,提供了各种各样的机器人供用户使用。更重要的是,Poe还提供了一套工具,让你可以创建并部署自己的聊天机器人,无需从头开始构建复杂的架构。 第一步:复读机入门 俗话说,万事开头难。Poe平台深谙此道,特意准备了“复读机”入门教程。别小看复读机,它可是检验你是否成功搭建开发环境的关键! Poe平台推荐使用fastapi_poe和modal进行部署。按照教程,运行modal deploy echobot.py,一个活灵活现的复读机就诞生了! 第二步:进阶玩法,PromptBot 掌握了基础,接下来就该学习进阶玩法了!PromptBot是一个基于Prompt的聊天机器人,它利用Poe平台承担推理成本,让你无需担心高昂的费用。 Poe平台提供了一个使用Claude-3-Haiku模型的例子,这个机器人可以生成优美的俳句。运行modal deploy prompt_bot.py,并根据教程同步机器人设置,你的俳句生成器就上线了! 第三步:OpenAI API加持,WrapperBot 想要使用自己的模型?没问题!WrapperBot可以让你轻松调用OpenAI API,实现更个性化的功能。 你需要准备自己的OpenAI API密钥,然后运行modal deploy wrapper_bot.py,一个基于OpenAI模型的聊天机器人就诞生了! 第四步:花式炫技,CatBot和ImageResponseBot Poe平台支持Markdown语法,让你的机器人不仅能说会道,还能“图文并茂”! CatBot利用Markdown展示可爱的猫咪图片,运行modal deploy catbot.py即可体验。ImageResponseBot则更进一步,可以根据你的指令生成相应的图片,运行modal deploy image_response_bot.py,开启你的“AI画师”之旅! 第五步:文件交互,VideoBot和PDFCounterBot 想要实现更复杂的功能?Poe平台支持文件上传和下载,让你的机器人如虎添翼! [...]

当流程挖掘遇上AI智能体:一场效率革命?当流程挖掘遇上AI智能体:一场效率革命?

想象一下,你是一位经验丰富的侦探,正试图破解一桩复杂的案件。你面对着堆积如山的线索:目击证词、法医报告、嫌疑人背景等等。你该如何着手?你会依靠直觉,还是逐一分析每个细节? 现在,假设你有一位能力超群的助手,他可以帮你整理线索、分析数据,甚至预测嫌疑人的下一步行动。这位助手,就是我们今天要探讨的主角——AI智能体。 在流程挖掘领域,我们也面临着类似的挑战。企业每天都在产生海量的事件数据,这些数据就像散落在案发现场的线索,蕴藏着关于业务流程效率和问题的宝贵信息。传统的流程挖掘技术,就像一位经验丰富的侦探,可以帮助我们从这些数据中发现规律、识别瓶颈。然而,面对日益复杂的流程和海量的事件数据,传统的流程挖掘技术也显得力不从心。 近年来,大型语言模型(LLM)的快速发展为流程挖掘带来了新的可能性。LLM就像那位能力超群的助手,可以理解自然语言、生成代码,甚至进行推理和决策。将LLM应用于流程挖掘,可以帮助我们更深入地理解流程、更快地识别问题、更有效地优化流程。 流程挖掘的AI智能体时代 早期的研究尝试直接将流程挖掘任务交给LLM处理,例如将流程挖掘的结果转换为文本,让LLM进行分析和解读。这种方法在处理简单的流程挖掘任务时取得了一定的效果,但对于需要多步骤推理和复杂分析的任务,LLM的表现却不尽如人意。 为了解决这个问题,研究人员提出了基于AI智能体工作流(AgWf)的流程挖掘方法。AgWf将复杂的流程挖掘任务分解成多个简单的子任务,每个子任务由专门的AI智能体负责处理。 举个例子,假设我们要分析一个事件日志,找出其中是否存在不公平现象。传统的流程挖掘方法可能会尝试直接从整个事件日志中寻找不公平的证据,而AgWf则会将这个任务分解成以下几个子任务: 每个子任务都可以由专门的AI智能体负责处理。例如,第一个子任务可以使用自然语言处理技术从事件日志中提取与受保护群体相关的信息;第二个子任务可以使用统计分析技术比较不同群体的行为;第三个子任务可以使用机器学习技术识别造成差异的原因。 AgWf:流程挖掘的“瑞士军刀” AgWf就像一把“瑞士军刀”,可以根据不同的流程挖掘任务灵活地组合不同的AI智能体和工具。 在AgWf中,常见的AI智能体类型包括: 除了AI智能体,AgWf还可以集成各种流程挖掘工具和技术,例如流程发现、一致性检查、预测分析等等。通过将AI智能体和传统工具相结合,AgWf可以充分发挥两者的优势,实现更高效、更智能的流程挖掘。 未来展望:AgWf的挑战与机遇 AgWf为流程挖掘带来了新的可能性,但也面临着一些挑战: 尽管面临着挑战,但AgWf的未来充满希望。随着LLM技术的不断发展和AgWf研究的不断深入,AgWf将为流程挖掘带来一场效率革命,帮助我们更好地理解和优化业务流程,提升企业的效率和竞争力。 参考文献 [1] Abuelsaad, T., et al. (2024). Agent-e: From autonomous web navigation to foundational [...]

WordPress 插件开发教程:元数据详解WordPress 插件开发教程:元数据详解

元数据在 WordPress 中扮演着重要的角色。它可以简单理解为“关于数据的数据”。举例来说,一张图片的元数据可能包括它的大小、格式、创建时间等信息。在 WordPress 中,元数据常用于文章、用户、评论和分类法项目等的附加信息。本教程将详细介绍如何管理和使用元数据,分为以下几个知识点来讲解: 什么是元数据? 解析:元数据就是关于数据的附加信息。在 WordPress 中,元数据通常与文章、用户或评论等主要数据相关联。比如,我们可以在一个自定义文章类型“商品”中添加一个“价格”的元数据字段来存储商品的价格。这些元数据存储在 WordPress 的 postmeta 表中。 速记句:元数据是数据的附加信息,存储在 postmeta 表中。 添加文章元数据 解析:要为文章添加元数据,可以使用 add_post_meta() 函数。该函数需要传入文章 ID (post_id)、元数据键名 (meta_key)、元数据值 (meta_value) 和一个唯一标志 (unique)。其中,meta_key 是用于在代码中引用的标识符,例如 wporg_featured_menu。meta_value 则可以是字符串、整数、数组或对象。 代码示例: [...]

WordPress插件开发中的简码(Shortcodes)WordPress插件开发中的简码(Shortcodes)

什么是简码? 简码是一种在WordPress内容中插入动态内容的方式。简码的概念在WordPress 2.5版本中被引入,目的是让用户可以在文章中动态地添加相册、视频、表单等内容。 举例:就像在文档中插入一个占位符,简码可以在不插入PHP代码的情况下,动态地呈现内容。 速记句:简码是WordPress中动态插入内容的占位符。 为什么使用简码? 简码的主要优点是保持文章内容的干净和语义化。它避免了直接在文章中添加HTML标记,并且可以通过调整简码参数来修改内容的显示。 举例:想象一下,你在桌面上放置一个标签,而不是直接摆放物品,这样可以随时根据需要调整物品的排列。 速记句:使用简码,内容更干净,调整更灵活。 如何创建基本简码? 要创建一个基本简码,您可以使用 add_shortcode() 函数。这个函数接受两个参数:简码的名称和回调函数。 示例代码: 解析:在上面的示例中,wporg 是创建的简码名称,当用户在文章中使用 // 闭合简码 解析:在这个例子中,title 是简码的参数,开发者可以在简码的回调函数中通过 $atts 数组获取并使用这些参数。 速记句:简码参数像HTML属性,提供更多控制选项。 处理简码的属性 为了正确处理简码的属性,开发者通常会使用 shortcode_atts() 函数来设置默认值并解析用户传入的属性。 示例代码: 解析:该代码确保即使用户未提供 title [...]

WordPress 插件开发教程:管理菜单WordPress 插件开发教程:管理菜单

在开发 WordPress 插件时,管理菜单是一个重要的部分。它位于后台左侧,允许我们为插件或主题添加自定义设置页面。本文将带您逐步了解如何创建和管理这些菜单。 1. 添加顶级菜单 知识点:如果我们需要在 WordPress 后台添加一个顶级菜单,可以使用 add_menu_page() 函数。这个函数允许开发者在后台左侧的菜单中添加一个新的顶级菜单项。以下是函数的基本结构: 显示内容解析:$page_title 是菜单页面的标题,$menu_title 是菜单在后台显示的名称,$capability 决定了哪些用户可以看到这个菜单,$menu_slug 是菜单的唯一标识符,$function 是点击菜单后执行的回调函数,$icon_url 设置菜单的图标,$position 决定菜单的位置。 速记句:add_menu_page 函数用于在 WordPress 后台添加一个顶级菜单。 2. 创建 HTML 输出函数 知识点:为了使菜单页面有内容展示,我们需要创建一个输出 HTML 的函数。在这个函数中,可以执行必要的安全检查,并使用 WordPress [...]

在长序列预测的战斗中,Informer如何逆转乾坤?在长序列预测的战斗中,Informer如何逆转乾坤?

在深度学习的世界中,时间序列预测是一项极具挑战性的任务,尤其是当我们面对长序列数据时。传统的模型在处理长序列时往往显得力不从心,尤其是在速度和内存使用方面。为了应对这一挑战,研究人员们提出了各种创新的解决方案。其中,Informer模型作为一种基于Transformer的架构,脱颖而出,成为了长序列时间序列预测领域的一颗新星。 Transformer的局限性 首先,让我们审视一下传统Transformer在时间序列预测中存在的几个主要问题。Transformer模型中的自注意力机制在处理输入序列时,其时间和空间复杂度为$O(L^2)$,其中$L$为序列的长度。这意味着,序列越长,计算的复杂度就越高。此外,多个编码器和解码器堆叠时,内存占用也急剧增加,导致模型无法有效处理长序列。而在预测长时间序列时,Transformer的逐步推理过程就像RNN一样缓慢,并且在动态解码中还可能出现错误传递的问题。 因此,如何在保留Transformer优势的同时,克服这些局限性,成为了Informer模型设计的核心问题。 Informer的创新设计 Informer的设计灵感源于对Transformer模型的深刻理解与改进,其主要贡献可以归结为以下三点:ProbSparse自注意力机制、自注意力蒸馏和生成式解码器。 1. ProbSparse自注意力机制 在传统的自注意力机制中,每个Query都需要与所有的Key进行计算,这导致了计算量的急剧增加。为了解决这一问题,Informer引入了ProbSparse自注意力机制。该机制通过概率的角度来选择最重要的Query,从而降低计算复杂度。 具体而言,Informer首先在Key中随机采样一定数量的元素,然后计算Query与这些Key的点积,形成得分矩阵。接下来,选择得分最高的Query进行后续计算。通过这种方式,Informer显著降低了计算复杂度,达到$O(L \log L)$,实现了高效的计算。 2. 自注意力蒸馏 为了进一步提高模型的效率,Informer采用了自注意力蒸馏技术。该技术通过在相邻的注意力块之间加入卷积池化操作,将输入序列的长度缩小为原来的二分之一。这一过程不仅降低了计算量,还能有效保留序列的主要特征。 3. 生成式解码器 传统的解码器通常是逐步生成输出,而Informer则采用了生成式解码器的设计。通过提供一个起始标记,Informer能够一次性生成所有预测结果。这种设计大幅度提高了预测的速度和准确性,避免了逐步推理带来的延迟。 应用场景与实验结果 Informer的设计使其在多个实际应用中表现出色,包括股票预测、机器人动作预测和疫情数据预测等。通过在多个公开数据集上进行实验,Informer展现出了超越传统模型的预测能力和效率。实验结果表明,Informer在长序列预测中显著提高了预测的准确性,并且在速度上也表现优异。 源码解析与实施 对于想要深入了解Informer模型的研究人员,阅读其源码是不可或缺的一步。Informer的实现代码可以在GitHub上找到,项目结构清晰,主要包括数据加载、模型训练及评估等模块。通过对代码的逐行分析,研究人员可以更好地理解Informer的工作原理,并在自己的项目中进行实施和改进。 环境搭建 在进行源码实验之前,需要搭建合适的开发环境。使用Anaconda和PyTorch进行环境配置,可以确保模型的顺利运行。通过安装必要的依赖和库,用户可以很快启动Informer的实验。 数据输入与处理 Informer支持多种类型的数据输入,包括CSV文件格式。用户可以根据自己的需求修改数据处理部分,以适配不同的数据集。通过合理的预处理,确保数据的标准化和特征提取,能够大幅提升模型的性能。 模型训练与评估 在模型训练阶段,用户需要设置合适的超参数,如批量大小、学习率和训练轮数等。通过监控训练过程中的损失函数变化,研究人员可以判断模型的学习效果,并进行必要的调整。 总结 Informer模型的提出,不仅仅是Transformer在长序列预测中的一次简单改进,而是对时间序列预测问题的深刻反思与创新。通过引入ProbSparse自注意力机制、自注意力蒸馏和生成式解码器,Informer在处理长序列任务时展现出了前所未有的速度和准确性。这使得它在多个领域中具备了广泛的应用前景。 [...]

住房公积金:为民生保驾护航的金色盾牌住房公积金:为民生保驾护航的金色盾牌

在中国经济的快速发展中,住房问题始终是一个不可忽视的核心议题。2023年全国住房公积金年度报告如同一扇窗,向我们展示了住房公积金制度在保障民生、促进经济发展中的重要作用。在这一年中,住房公积金行业以习近平新时代中国特色社会主义思想为指导,全面贯彻落实党的二十大精神,致力于推动住房公积金制度惠及更多群体,助力解决人们的基本住房问题。 一、机构概况与管理体系 根据《住房公积金管理条例》,住房城乡建设部会同财政部、中国人民银行负责拟定和监督住房公积金政策的执行。这一管理体系确保了住房公积金的规范运作,各省、自治区的住房城乡建设厅设立专门的监管机构,确保政策的贯彻落实。 截至2023年末,全国设有住房公积金管理委员会341个,管理中心341个,服务网点达到3675个。这一庞大的网络为全国近1.75亿缴存职工提供了便利的服务,也为资金的安全流动提供了保障。 二、业务运行情况:成效显著 1. 缴存情况 2023年,全国住房公积金实缴单位达到494.76万个,实缴职工17454.68万人,分别比上年增长9.29%和2.80%。这表明,越来越多的单位和职工意识到住房公积金的重要性,愿意参与到这一制度中来。 在缴存额方面,2023年全国住房公积金缴存总额达34697.69亿元,比上年增长8.65%。截至年末,累计缴存总额达291623.52亿元,缴存余额100589.80亿元,分别比上年末增长13.50%和8.80%。这些数据不仅反映出住房公积金制度的稳步推进,也为广大职工提供了强有力的住房保障。 2. 提取情况 在提取方面,2023年住房公积金的提取人数达到7620.10万人,占实缴职工人数的43.66%。提取额达26562.71亿元,比上年增长24.34%。这一增长的背后,体现了住房公积金在职工住房消费中的重要作用。 支持租赁住房和老旧小区改造是住房公积金提取的重要方向。2023年,支持1846.09万人提取住房公积金2031.28亿元用于租赁住房,同时支持4.42万人提取8.26亿元用于老旧小区的改造。这些举措不仅改善了职工的居住条件,也促进了城市的可持续发展。 3. 贷款情况 在个人住房贷款方面,2023年共发放住房公积金个人住房贷款286.09万笔,发放金额14713.06亿元,分别比上年增长15.48%和24.25%。截至2023年末,累计发放住房公积金个人住房贷款4768.54万笔、151858.01亿元,个人住房贷款余额78060.74亿元,这一数据的增长显示了住房公积金在支持居民购房中的重要角色。 三、社会经济效益:惠民政策的实际成效 住房公积金制度不仅为个人提供了住房保障,也为社会经济发展作出了重要贡献。2023年,住房公积金缴存群体持续扩大,净增实缴单位42.04万个,净增实缴职工475.12万人。尤其是在城镇私营企业及其他城镇企业中,缴存职工的比例高达53.47%,显示出这一制度在不同类型单位中的普及程度。 与此同时,住房公积金的使用也在不断向保障性住房建设倾斜,提取公租房(廉租房)建设补充资金占当年分配增值收益的71.92%。这些资金不仅为低收入群体提供了住房保障,也为社会的公平正义做出了贡献。 四、未来展望:数字化与灵活就业 在未来的发展中,住房公积金制度将继续朝着数字化方向发展。通过推进住房公积金数字化服务,提升管理效率,确保每一位缴存者能够方便快捷地享受到服务。同时,进一步扩大灵活就业人员参加住房公积金制度的试点,将使更多的年轻人和新市民受益。 随着政策的不断完善,住房公积金制度将继续发挥其在促进社会和谐、推动经济发展的重要作用。让我们期待,未来的住房公积金制度能够更加公平、便捷地服务于每一个需要帮助的人。 参考文献 [...]