让 PHP 跑的更快

1. HipHop Virtual Machine (HHVM) HHVM 是一个开源的 PHP 编译器,可以将 PHP 代码编译成字节码,然后由虚拟机执行。它可以显著提高 PHP 的执行速度,并且支持多种语言特性,例如类型检查和协程。 2. Phalanger Phalanger 是一个将 PHP 编译成 .NET 程序集的编译器。它可以显著提高 PHP 的执行速度,并且支持多种语言特性,例如类型检查和泛型。 3. Quercus Quercus 是一个将 PHP 编译成 Java 字节码的编译器。它可以显著提高 PHP 的执行速度,并且支持多种语言特性,例如类型检查和异常处理。 4. Peachpie Peachpie 是一个将 PHP 编译成 C# 程序集的编译器。它可以显著提高 PHP 的执行速度,并且支持多种语言特性,例如类型检查和泛型。 5. Swoole Swoole 是一个高性能的 PHP 协程库,可以显著提高 PHP 的并发能力。它支持多种语言特性,例如协程、事件驱动和非阻塞 I/O。 这些编译工具可以帮助您提高 PHP 的执行速度,并且支持多种语言特性。您可以根据自己的需要选择合适的编译工具。

人工智能的新篇章:从 RAG 到 Self-RAG

欢迎来到这个关于人工智能进步的奇妙旅程!今天,让我们一起探索从 RAG (Retrieval Augmented Generation) 到 Self-RAG 的知识增强过程。这其中蕴含的深刻原理和广阔应用,将带你领略新一波 AI 风暴的来临。 RAG:知识增强的先驱 RAG,或称检索增强生成,是一种先进的机器学习技术。在回答问题或生成文本时,它会先从大量文档中检索出相关的信息,然后基于这些信息生成回答或文本,从而提高预测质量。这意味着开发者无需为每一个特定任务重新训练整个大模型,只需要接入知识库即可。 RAG 对于知识密集型的任务尤为有用。那么,你可能会问,如果我们已经有了强大的语言模型(LLM),为什么还需要 RAG 呢?其实,RAG 主要解决了 LLM 所面临的三个问题: RAG 与 SFT:两者的比较 那么,对于 LLM 的上述问题,我们是否有其他解决办法呢?SFT 确实是一种常见的解决方案,但是 RAG 和 SFT 在多个维度上都有各自的优点和弱点。例如,RAG 能够使用动态数据,并且能够利用外部资源增强 LLM 的能力。相较之下,SFT 更适合处理静态数据,它可以对 LLM 进行微调,但对于频繁变动的数据源来说可能不太实用。 当然,RAG 和 SFT 并非非此即彼,合理的做法是根据业务需求,结合两者的优点进行使用。在这个过程中,我们也可以发现 RAG 具有以下优点: RAG:实现步骤与应用案例 RAG 的实现主要包括三个步骤:数据索引、检索和生成。而数据索引的构建又可以进一步分为数据提取、分块和向量化三个阶段。这些步骤中涉及到的数据处理、文本分块以及数据向量化等技术,都是人工智能领域的重要基础。 让我们在这个令人兴奋的 AI 旅程中继续前进。通过 RAG,我们可以实现一系列应用,包括但不限于: 结语:向 Self-RAG 的未来 RAG 无疑是一种强大的工具,但我们也看到了它的一些局限性。比如,它依赖于手动标注的知识库,且在遇到大量数据时,可能会面临检索效率低下的问题。因此,我们需要更进一步,探索如何实现自我增强的 RAG,即 … Read more

人工智能的新篇章:从 RAG 到 Self-RAG

你可能听说过人工智能、机器学习、深度学习等概念,但你知道 RAG(Retrieval Augmented Generation,检索增强生成)和 Self-RAG 吗?今天,我们就一起深入了解一下这两个新兴的人工智能领域概念。 RAG:提升人工智能的知识增强能力 RAG 是一种让大型语言模型 (LLM) 在回答问题或生成文本时,先从大量文档中检索出相关的信息,然后基于这些信息生成回答或文本的方法。这种方法提高了预测的质量,使得开发者不必为每一个特定的任务重新训练整个大型模型,只需要外挂上知识库,即可为模型提供额外的信息输入,提高其回答的准确性。RAG 模型尤其适合知识密集型的任务。 然而,尽管 LLM 具有强大的能力,仍然存在一些问题需要 RAG 解决。例如,LLM 在生成文本时,可能会产生一些幻觉问题;大型模型的训练成本高,更新周期长,对于时效性强的数据处理能力有限;通用的 LLM 没有企业内部数据和用户数据,如何在保证数据安全的同时使用 LLM 成为了一个问题。 RAG 与 SFT:两种方法的对比 实际上,SFT(Supervised Fine-Tuning,监督微调)是解决 LLM 存在问题的另一种常见方法。比较起来,RAG 和 SFT 各有特长。RAG 适合动态数据,擅长利用外部资源,适用于知识密集型任务,而 SFT 可以对 LLM 进行微调以对齐预训练学到的外部知识,优于定制模型的行为或写作风格。两者并非相互排斥,而是可以根据业务需要,结合使用。 RAG 的应用及挑战 RAG 具有诸多优点,例如可扩展性、准确性、可控性、可解释性以及多功能性。例如,ChatPDF 就是一个典型的 RAG 应用案例,该系统首先读取 PDF 文件,将其转换为可处理的文本格式,然后对提取出来的文本进行清理和标准化。当用户提出问题时,ChatPDF 使用 OpenAI 的 Embeddings API 将问题转换为一个向量,并与每个分段的向量进行比较,以找到最相似的分段。最后,ChatPDF 会将 ChatGPT 生成的答案返回给用户,完成一次查询。 … Read more

【重磅】从 RAG 到 Self-RAG:LLM 的知识增强

大家好,欢迎来到「AI与算法学习」!今天,我们将一起探索 LLM(大型语言模型)知识增强的新篇章——从 RAG 到 Self-RAG。 RAG:检索增强生成 RAG(Retrieval Augmented Generation)是一种将检索与生成相结合的技术,旨在提高 LLM 的准确性和可靠性。RAG 的工作原理是:先从大量文档中检索出与给定问题相关的片段,然后将这些片段作为输入,由 LLM 生成最终的回答。 Self-RAG:自我反思检索生成 Self-RAG 是 RAG 的一个改进版本,它通过引入「反思字符」来实现自我评估和输出控制。反思字符是一种特殊的标记,可以帮助模型判断输出是否相关、完整,以及是否需要额外的检索。 Self-RAG 的优势 与传统的 RAG 方法相比,Self-RAG 具有以下优势: Self-RAG 的应用 Self-RAG 可以应用于各种各样的任务,包括: 结语 RAG 和 Self-RAG 是 LLM 知识增强领域的重要技术。它们通过将检索与生成相结合,显著提高了 LLM 的准确性和可靠性。随着这些技术的不断发展,我们将看到 LLM 在越来越多的领域发挥作用。 扩展阅读

Elon Musk的新项目XAI “Gork”: 强大的人工智能系统

大家好!今天我们要来了解一个引人注目的话题,那就是科技创新巨头Elon Musk的全新项目——XAI “Gork”。这是一款全新的人工智能系统,其目标竟然是与OpenAI的ChatGPT一较高下。现在就和我一起,深入了解这款即将改变AI领域格局的产品。 首先,我们来看看Gork的基础。它基于神经网络和强化学习,这是Musk的另一家公司Neuralink在脑-机接口领域的重大突破。这种集成使Gork能够实时感知用户的思维和情绪,从而对用户有更为微妙的理解。 Gork的特性真是令人惊叹。首先,它具有卓越的多模态能力,可以理解并生成文本、图像,甚至音频。这一特性无疑将为内容生成、虚拟现实等领域带来深远影响。其次,Gork拥有庞大的知识库,能实时从互联网更新信息,为用户提供准确且最新的回应。此外,Gork的对话技巧可以媲美,甚至超越ChatGPT,它能进行自然且连贯的对话,成为聊天机器人、客户服务和其他交互应用的理想选择。最后,Gork允许用户对其行为和回应进行微调,使开发者能够根据特定任务或行业进行定制。 Gork的潜在影响也是不可忽视的。首先,Gork的出现可能会打破AI市场的格局,对已有模型形成挑战,推动该领域的竞争和创新。其次,Gork的多模态能力为新应用开启了大门,例如,具有人类理解上下文能力的虚拟助手,以及能同时生成文本、图像和音频的内容创作工具。然而,任何先进的AI系统都会引发伦理问题。Gork的模仿人类对话的能力和其广泛的知识库可能会被用于传播错误信息或进行有害活动。此外,依赖AI的行业,如医疗、金融和教育,可能会对Gork的定制功能感到非常满意,这可能会促使这些行业快速采用并将该模型集成到各个领域。 让我们再深入了解一下Gork的技术特点。Gork的架构融合了深度学习和神经网络的最新进展。它采用了与ChatGPT类似的基于Transformer的模型,但加入了一些独特的元素。它使用了一种专有的Transformer架构变体,即“GorkNet”,该架构旨在增强上下文理解和多模态能力。 Gork的训练方法也与ChatGPT有所不同。同时,Gork的大量数据源也引发了关于数据隐私和伦理问题的争论。然而,Musk公开表示,Gork的训练哲学是以“Neural Lace”为中心,这是一个他一直与之相关联的概念。这种哲学旨在确保Gork的学习过程紧密模拟人脑,使其比竞争对手更具适应性和对上下文的理解。 Elon Musk的XAI “Gork” 是一个雄心勃勃的项目,旨在推动人工智能领域的发展,挑战已有的AI模型,并开启新的应用可能性。无论你是AI开发者,还是对AI技术感兴趣的观察者,Gork的出现都值得我们密切关注。随着Gork的进一步开发和改进,我们有理由期待它将在未来改变我们与AI的交互方式,并推动AI技术的进一步创新。

【已翻车】零一万物领跑AI新纪元:Yi系列大模型首发,刷新中英文处理能力新高度

号称全球最强的国产 AI 模型竟然套壳LLaMA! 大家好,有一份重磅新闻要分享给大家!零一万物,这个在AI领域深耕多年的公司,刚刚发布了他们的首款开源大模型:Yi系列。这一系列的模型包括Yi-34B和Yi-6B,其中Yi-34B的表现更是令人瞩目。 首先,让我们看看这两款模型的强大之处。你有没有想过人工智能可以一次理解两本《三体》那么长的小说,或者超过1000页的PDF文档呢?Yi-34B做到了。它有200K的上下文窗口,可以处理大约40万汉字的超长文本输入。对于需要处理长篇中文文档、书籍或报告的场景,Yi-34B无疑是一个强大的工具。 而在中英文处理能力方面,Yi-34B更是达到了一个新的高度。在Hugging Face英文测试榜单中,Yi-34B位列第一。在中文方面,Yi-34B在C-Eval中文能力排行榜上超越了所有开源模型,包括GPT-4。无论是在CMMLU、E-Eval、Gaokao等中文评测指标上,还是在BooIQ、OBQA两个中文问答指标上,Yi-34B和Yi-6B的表现都无愧于它们的名字。 这样的成绩,离不开零一万物的技术创新。他们自主研发的规模化训练实验平台和智能数据处理管线,以及强大的AI基础设施,都为Yi系列的训练提供了坚实的支撑。 但零一万物并没有就此止步。他们正在积极研究专门处理数学问题的大模型MammoTH。同时,未来的Yi系列还将推出专长代码和数学的继续训练模型。 Yi系列的发布,无疑是人工智能领域的一大里程碑。它展示了零一万物的技术实力,也为我们揭示了人工智能的无限可能性。让我们期待Yi系列在未来能带来更多的惊喜和突破! 01-ai/Yi-34B-200K · Hugging Face

让我们一起探索 WordPress 插件开发的神秘之旅 — 钩子(Hooks)

你是一名 WordPress 开发者,或者是一个对 WordPress 插件开发充满好奇的新手吗?如果是,那么你来对了地方。让我们一起踏上探索 WordPress 插件开发的神秘之旅。今天我们将重点了解一个关键的概念 — 钩子(Hooks)。 在插件开发的世界中,钩子就像是一条纽带,它将你的代码与 WordPress 的核心代码相连接,使之成为 WordPress 功能的一部分,而无需直接修改核心代码。这种设计使得用户可以方便地升级到 WordPress 的新版本,而无需修改任何代码。 钩子是如何工作的? 钩子的工作原理非常简单:当 WordPress 的工作流程到达某一点时,它会检查是否有任何函数需要”钩入”(即插入)到这一点。如果有,这些函数就会被执行。这就是所谓的“动作钩子”。 另一种类型的钩子是“过滤器钩子”。这种钩子允许你修改 WordPress 生成的数据,然后返回修改后的数据。这使得你可以在不改变原始数据的情况下,改变数据的显示方式。 钩子在插件开发中的重要性 没有钩子,插件就无法改变 WordPress 的功能。钩子系统贯穿整个插件开发过程,几乎每一个插件的开发中都会用到。在你学会了钩子的用法后,你就会明白为什么 WordPress 这个平台这么强大,并有上千个插件供几百万用户使用了。 如何在插件中使用钩子? 在你的插件中使用钩子非常简单。首先,你需要确定你需要在何处插入代码。然后,你需要创建一个函数,这个函数将包含你需要执行的代码。最后,你需要告诉 WordPress 在何时执行你的函数,这就是你需要使用的动作钩子。 过滤器钩子的使用方式几乎相同。你需要创建一个函数,这个函数会接收原始数据,修改它,然后返回。然后,你需要告诉 WordPress 在何时执行你的函数,这就是你需要使用的过滤器钩子。 如何在类中使用钩子? 在类中使用钩子与在函数中使用钩子非常相似。你只需要在添加动作或过滤器时,将函数名替换为一个数组,数组的第一个元素是类的实例(通常是 $this),第二个元素是方法名。 在 WordPress 中,过滤器钩子(Filter Hook)是一种用于修改或过滤数据的机制。它允许开发者在特定的时间点拦截和修改数据,并返回修改后的结果。过滤器钩子广泛应用于 WordPress 的核心功能和插件开发中,提供了一种灵活的方式来自定义和扩展 WordPress 的行为。 过滤器钩子包含两个关键元素:钩子名称和回调函数。钩子名称是用来标识特定的过滤器的字符串,而回调函数则是在钩子触发时执行的代码。回调函数接受一个或多个参数,并返回经过修改后的数据。 下面是一个示例,演示了如何创建并使用一个过滤器钩子: 在上面的示例中,我们首先定义了一个名为 my_custom_filter 的回调函数,它接受一个参数 $data 并返回修改后的结果。然后,我们使用 add_filter 函数将这个回调函数添加到名为 my_custom_filter_hook 的过滤器钩子上。 最后,我们使用 apply_filters 函数来触发钩子并调用回调函数。我们将字符串 ‘Hello’ 作为参数传递给 apply_filters 函数,然后它将调用 my_custom_filter 函数并返回修改后的结果。最后,我们将修改后的结果输出到屏幕上。 通过使用过滤器钩子,您可以在 WordPress 中的许多地方拦截和修改数据。这使得您能够以非常灵活的方式自定义和扩展 WordPress 的功能,无需修改核心代码或插件的源代码。 … Read more

钩子(Hooks):WordPress 插件开发的神器

各位WordPress的同仁们,你们是否曾被插件开发中的一些问题困扰,想要修改WordPress的工作流程却又不敢动核心代码?今天,我要给大家介绍一个强大的工具,那就是我们的主角——钩子(Hooks)。它就如同一把神奇的钥匙,能让我们无需直接修改核心代码,就可以改变WordPress的工作方式。这将使得我们在升级WordPress时无需担心代码的兼容问题。 钩子:WordPress的精髓 钩子是WordPress的精髓所在,它允许我们在插件开发中插入代码,改变WordPress的工作流程。这样,我们就可以在不直接修改核心代码的情况下,方便的升级WordPress的新版本,而不需要修改任何代码。 如果我们直接修改了核心代码,那么在下一次WordPress升级时,所有的改动就会被覆盖掉。而使用钩子,我们可以在核心目录之外单独开发插件,这样就保证了代码在升级时的安全性。 没有钩子,插件就无法改变WordPress的功能。钩子系统会贯穿整个插件的开发过程,而且在几乎每一个插件的开发中都会用到。掌握了钩子的用法,你就会明白为什么WordPress这个平台这么强大,并有上千个插件供几百万用户使用。 两类钩子:动作钩子和过滤器钩子 WordPress主要有两种类型的钩子:动作钩子和过滤器钩子。动作钩子(Action Hooks)让我们可以在特定的时刻执行一个函数,而过滤器钩子(Filter Hooks)则让我们可以操作通过钩子的输出。这两种钩子都是开发插件时的重要工具。 动作钩子让你可以在WordPress加载过程中或者当某个事件发生的特定时刻触发一个函数。比如,你可能想要在WordPress加载一个页面或者保存一篇文章时执行一个函数。 过滤器钩子则让你可以对通过钩子的数据进行修改。比如,你可以修改文章的内容,或者更改网站的标题等。 钩子的使用 要使用钩子,我们需要使用到 do_action() 和 add_action() 这两个函数。do_action() 是触发一个动作钩子,而 add_action() 是向一个动作钩子添加一个函数。 例如,我们可以在前台的 <head> 里面添加一个名为 wp_head 的钩子,这个钩子经常被用来添加 meta 信息,样式表,和 js 脚本。 当这段代码在WordPress中执行时,它会寻找任何为 wp_head 动作钩子注册的动作,然后按照特定顺序执行它们。 要向一个动作钩子添加一个函数,我们需要使用 add_action() 函数。例如,我们可以向 wp_footer 钩子添加一个函数,这个函数会在每次页面加载时执行。 其中,’wp_footer’ 是你的函数执行时的动作钩子的名称,’your_function’ 是你希望WordPress调用的函数名。 结语 钩子是WordPress插件开发中的一个强大工具,它让我们能在不改变核心代码的情况下,改变WordPress的工作流程。

AgentVerse:开启多智能体交互的新篇章

欢迎来到AgentVerse!在这个充满可能性的世界中,我们致力于为大型语言模型(LLMs)提供一个自定义的多智能体环境。那么什么是AgentVerse呢?它是一个强大的框架,旨在简化为LLMs创建自定义多智能体环境的过程。这里,你可以快速、低成本地开发和定制你所需的环境,专注于你的研究,而不被实现细节所困扰。 AgentVerse的特色 AgentVerse的主要优势在于其高效的环境构建能力和可定制的组件。我们的框架提供了一系列基础构建模块,使得创建多智能体环境变得轻而易举。只需在配置文件中写入几行,你就可以轻松建立如LLMs的聊天室这样的基本环境。此外,AgentVerse还支持多智能体环境的工具,当前我们支持BMTools中提供的工具。 最新消息 我们在AgentVerse的开发过程中取得了一些重要的进展。首先,我们非常兴奋地分享我们的AI开源社区hugging face: AgentVerse。你可以在提供openai API密钥和openai组织代码后,尝试NLP Classroom和Prisoner’s Dilemma两个模拟应用程序。其次,我们还发布了一篇与本仓库相关的进行中的论文,详细介绍了AgentVerse的任务解决框架。我们还为你们提供了一个简单的H5宝可梦游戏,该游戏允许与宝可梦中的角色互动! 开始使用 要开始使用AgentVerse,首先你需要安装它。你可以通过 pip install -U agentverse 命令来安装,或者通过手动克隆最新的仓库来安装此包。然后,你需要按照我们的指示,导出你的OpenAI API密钥。如果你想使用BMTools提供的工具,你还需要安装BMTools。 安装完成后,你就可以开始创建你的多智能体环境了。我们在agentverse/tasks目录中提供了一些示例,你可以参考这些示例来创建你自己的环境。例如,你可以创建一个教室环境,其中有一个智能体扮演教授的角色,其他的智能体扮演学生的角色。或者,你也可以创建一个更复杂的环境,例如一个数据库诊断环境,其中一个智能体扮演首席数据库管理员的角色,其他的智能体扮演内存和CPU智能体的角色。 总的来说,无论你的需求是什么,AgentVerse都能提供一个灵活且可扩展的框架,让你能够轻松地构建和定制自己的多智能体环境。

零一万物(01.AI)推出全新AI大模型:Yi系列

欢迎诸位,我今天要分享的是一个振奋人心的新闻:零一万物(01.AI),一个全球领先的AI技术与应用公司,刚刚发布了它们新一代的AI大模型——Yi系列。Yi系列模型是一组全新的大型语言模型,它们的参数规模分别为60亿(Yi-6B)和340亿(Yi-34B)。而且,它们都支持在推理阶段将序列长度扩展至32K。 01-ai/Yi-34B · Hugging Face 一、Yi系列模型的诞生 Yi系列模型是零一万物研发团队自主训练的大语言模型。首次公开发布包含两个参数尺寸为6B和34B的双语(英/中)基础模型。它们都是以4K序列长度进行训练,但在推理时可以扩展到32K。 二、模型性能的优越表现 Yi-6B和Yi-34B基础模型在2023年11月2日发布。在模型性能上,Yi系列模型在多项评测中展现出了全球领跑的优秀性能。 对比同类型的开源模型,我们发现,不同模型可能采用不同的提示、后处理策略和取样技术,可能导致结果有显著的差异。我们的提示和后处理策略与原始基准测试保持一致,评估时采用贪婪解码,不对生成的内容进行任何后处理。对于原作者未报告的分数(包括以不同设定报告的分数),我们试图用我们的流程得出结果。 我们采用了Llama2的方法论来广泛评估模型的能力。具体来说,我们引入了PIQA、SIQA、HellaSwag、WinoGrande、ARC、OBQA和CSQA来评估常识推理能力。SquAD、QuAC和BoolQ被用来评估阅读理解能力。CSQA被单独用7-shot设置进行测试,而所有其他测试都采用了0-shot配置。此外,我们在”Math & Code”分类下引入了GSM8K(8-shot@1)、MATH(4-shot@1)、HumanEval(0-shot@1)和MBPP(3-shot@1)。由于技术限制,我们没有对Falcon-180进行QuAC和OBQA的测试,分数是通过平均剩余任务的分数得出的。由于这两项任务的分数通常低于平均值,我们认为Falcon-180B的性能没有被低估。 三、模型的使用 我们在Github仓库上提供了关于如何使用此模型的一般指导。 四、免责声明 尽管我们在训练过程中使用数据合规性检查算法,以尽我们最大的能力确保训练模型的合规性,但由于数据的复杂性和语言模型使用场景的多样性,我们无法保证模型在所有场景中都能生成正确和合理的输出。请注意,模型仍有可能产生问题输出的风险。我们对任何由误用、误导、非法使用和相关的错误信息,以及任何相关的数据安全问题产生的风险和问题不承担责任。 五、许可证 Yi系列模型完全开放给学术研究和经过申请许可的免费商业使用。所有使用必须遵守模型许可协议2.0。要申请正式的商业许可证,请通过yi@01.ai与我们联系。 六、结语 Yi系列模型的诞生和发展,标志着我们正在走向人工智能的新纪元——AI 2.0。我们期待与全球的研究者、开发者和企业等合作伙伴一起,共同推动AI的进步,共同创造一个更智能、更美好的未来。 让我们一起迎接这个全新的世界,一个由零一万物打造的,由Yi系列大模型技术推动的,AI 2.0的世界。