博客

  • HyperAttention:长上下文友好、LLM推理提速50%

    大家好,欢迎收听本期节目。今天,我们将一起走进 HyperAttention 的奇妙世界,了解这种全新近似注意力机制如何让大型语言模型在长上下文下也能飞速推理。

    什么是 HyperAttention?

    HyperAttention 是一种近似注意力机制,它可以显著提升大型语言模型在长上下文下的推理速度。传统的注意力机制在计算时需要遍历整个输入序列,这使得计算成本非常高。而 HyperAttention 则通过对注意力矩阵进行近似,从而大幅降低计算成本。

    HyperAttention 的工作原理

    HyperAttention 的工作原理并不复杂。它首先会对注意力矩阵进行分解,然后对每个子矩阵进行近似。最后,将所有子矩阵的近似结果组合起来,得到最终的注意力矩阵。

    HyperAttention 的优势

    HyperAttention 的优势非常明显。它可以显著提升大型语言模型在长上下文下的推理速度,同时还能保持较高的准确率。在某些情况下,HyperAttention 甚至可以将推理速度提升 50% 以上。

    HyperAttention 的应用

    HyperAttention 可以广泛应用于各种自然语言处理任务,如机器翻译、问答系统、文本摘要等。它可以帮助这些任务在处理长上下文数据时获得更高的效率和准确率。

    HyperAttention 的未来

    HyperAttention 是一种非常有潜力的近似注意力机制,它有望在未来得到更广泛的应用。随着研究的不断深入,HyperAttention 的性能还将进一步提升,从而为大型语言模型的应用开辟新的可能性。

  • 《机器学习实战中文版》带你轻松入门机器学习

    AAAMLP 中译版 (ytzfhqs.github.io)

    大家好,欢迎收听本期播客。今天,我们将介绍一本关于机器学习的书籍:《机器学习实战中文版》。

    《机器学习实战》介绍

    《机器学习实战》是由Abhishek Thakur所著的一本关于机器学习的书籍。Abhishek Thakur是挪威boost公司首席数据科学家,在Kaggle上取得过辉煌的成绩。

    这本书的英文原版于2017年出版,一经推出便受到了广大读者的喜爱。中文版由电子工业出版社出版,于2023年9月正式上市。

    《机器学习实战》的内容

    《机器学习实战》共12章,内容涵盖了机器学习的基础知识、算法、实战技巧等。

    前4章介绍了机器学习的基础知识,包括准备环境、有监督和无监督学习、交叉检验和评估指标。

    第5章到第10章介绍了机器学习的各种算法,包括处理分类变量、特征工程、特征选择、超参数优化、图像分类和分割方法、文本分类或回归方法。

    最后2章介绍了机器学习的实战技巧,包括组合和堆叠方法、可重复代码和模型方法。

    《机器学习实战》的特点

    《机器学习实战》的特点是内容全面、深入浅出、实战性强。

    • 内容全面:本书涵盖了机器学习的基础知识、算法、实战技巧等各个方面,是一本全面的机器学习教程。
    • 深入浅出:本书的语言通俗易懂,即使是没有任何机器学习基础的读者也能轻松入门。
    • 实战性强:本书提供了大量的代码示例,读者可以边学边练,快速掌握机器学习的实战技巧。

    《机器学习实战》的意义

    《机器学习实战》是一本非常适合机器学习初学者阅读的书籍。它内容全面、深入浅出、实战性强,能够帮助读者快速入门机器学习。

    如果你想学习机器学习,那么《机器学习实战》绝对是你不容错过的书籍。

    结语

    好了,以上就是本期播客的内容。感谢您的收听。我们下期再见。

    ytzfhqs/AAAMLP-CN: Approaching (Almost) Any Machine Learning Problem中译版,在线文档地址:https://ytzfhqs.github.io/AAAMLP-CN/

  • “PrivateGPT”:您的私人文档助手

    大家好,今天,我们要向大家介绍的是一款非常实用的AI工具——“PrivateGPT”。它可以帮助您以100%的私密性,利用大型语言模型(LLMs)的力量来处理您的文档。

    PrivateGPT的诞生

    “PrivateGPT”的诞生源于一个明确的需求:在当今社会,生成式AI技术正在飞速发展,但由于隐私问题,许多公司和行业,比如医疗或法律领域,无法充分利用这项技术。

    PrivateGPT的优势

    “PrivateGPT”的优势在于,它完全离线运行,这意味着您的数据始终处于您的控制之下,不会泄露给任何第三方。

    PrivateGPT的功能

    “PrivateGPT”提供了一个API,包含了构建私有、语境感知AI应用程序所需的所有基本功能。它遵循并扩展了OpenAI的API标准,支持普通和流式响应。

    PrivateGPT的未来

    “PrivateGPT”正在不断发展,目标是成为生成式AI模型和原语的网关,包括补全、文档嵌入、RAG管道和其他低级构建块。

    如何使用PrivateGPT

    有关“PrivateGPT”的更多信息,包括安装、依赖项、配置、运行服务器、部署选项、嵌入本地文档、API详细信息和UI功能,请访问我们的官方文档网站。

    结语

    “PrivateGPT”是一款功能强大且易于使用的工具,可以帮助您以100%的私密性来处理您的文档。如果您正在寻找一种安全可靠的方式来利用生成式AI技术,那么“PrivateGPT”绝对是您的最佳选择。

  • 让 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 所面临的三个问题:

    1. 幻觉问题:LLM 在生成文本时,有可能会产生“一本正经的胡说八道”的现象。
    2. 时效性问题:大模型训练的周期较长,因此无法处理具有时效性的数据,例如“帮我推荐几部正在热映的电影?”。
    3. 数据安全问题:通用的 LLM 无法使用企业内部数据和用户数据,因此企业在使用 LLM 时,需要将数据全部放在本地,保护数据安全。

    RAG 与 SFT:两者的比较

    那么,对于 LLM 的上述问题,我们是否有其他解决办法呢?SFT 确实是一种常见的解决方案,但是 RAG 和 SFT 在多个维度上都有各自的优点和弱点。例如,RAG 能够使用动态数据,并且能够利用外部资源增强 LLM 的能力。相较之下,SFT 更适合处理静态数据,它可以对 LLM 进行微调,但对于频繁变动的数据源来说可能不太实用。

    当然,RAG 和 SFT 并非非此即彼,合理的做法是根据业务需求,结合两者的优点进行使用。在这个过程中,我们也可以发现 RAG 具有以下优点:

    • 可扩展性:降低模型大小和训练成本,并允许轻松扩展知识。
    • 准确性:模型基于事实并减少幻觉。
    • 可控性:允许更新或定制知识。
    • 可解释性:检索到的项目作为模型预测中来源的参考。
    • 多功能性:RAG 可以针对多种任务进行微调和定制,包括 QA、文本摘要、对话系统等。

    RAG:实现步骤与应用案例

    RAG 的实现主要包括三个步骤:数据索引、检索和生成。而数据索引的构建又可以进一步分为数据提取、分块和向量化三个阶段。这些步骤中涉及到的数据处理、文本分块以及数据向量化等技术,都是人工智能领域的重要基础。

    让我们在这个令人兴奋的 AI 旅程中继续前进。通过 RAG,我们可以实现一系列应用,包括但不限于:

    • 问答系统:基于检索增强生成的问答系统可以从大量的知识库中找到最相关的答案,提供准确的信息。
    • 文本生成:利用 RAG,我们可以生成具有深度和广度的文章,丰富读者的阅读体验。
    • 对话系统:RAG 可以让对话系统更加智能,更好地理解和满足用户的需求。

    结语:向 Self-RAG 的未来

    RAG 无疑是一种强大的工具,但我们也看到了它的一些局限性。比如,它依赖于手动标注的知识库,且在遇到大量数据时,可能会面临检索效率低下的问题。因此,我们需要更进一步,探索如何实现自我增强的 RAG,即 Self-RAG。

    在这个正在快速发展的 AI 时代,一种新的技术或模型的出现,可能会引发一场革命。对于我们来说,最重要的是理解并掌握这些新技术,以便在未来的 AI 风暴中立于不败之地。

    这就是我们今天的内容,希望你能从中获得启发和收获。在人工智能的海洋中,让我们一起乘风破浪,探索更多的可能!

  • 人工智能的新篇章:从 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 生成的答案返回给用户,完成一次查询。

    然而,RAG 也面临一些挑战。例如,检索效果依赖 embedding 和检索算法,目前可能检索到无关信息,反而对输出有负面影响;大模型如何利用检索到的信息仍是黑盒的,可能仍存在不准确(甚至生成的文本与检索信息相冲突)。

    Self-RAG:主动智能的新篇章

    与 RAG 不同,Self-RAG 是更加主动和智能的实现方式。它会首先判断是否需要额外检索事实性信息,当有需要时才进行检索,并对检索到的所有任务进行评估,最后生成结果会引用相关片段,以便于查证事实。Self-RAG 的这种自我反思和主动检索的方式,有助于提高模型的准确性和可靠性。

    Self-RAG 的一个重要创新是反思字符,这些特殊标记用于检查模型的输出。它们分为 Retrieve 和 Critique 两种类型,用于判断是否需要检索更多信息,以及检索到的信息与输出之间的关系。

    训练 Self-RAG 的过程中,我们需要让模型学会生成带有反思字符的文本。这种训练过程需要在一个包含预测的检索段落和反思字符的语料库上进行。在训练结束后,我们得到的模型可以自我评估输出,并在推理过程中自我调整,以达到更精细的输出生成。

    一个简单的例子

    让我们来看一个 Self-RAG 的例子,帮助我们更好地理解其工作原理。我们假设有一个问题:”Can you tell me the difference between llamas and alpacas?”,以及一个检索到的段落:”The alpaca (Lama pacos) is a species of South American camelid mammal. It is similar to, and often confused with, the llama. Alpacas are considerably smaller than llamas, and unlike llamas, they were not bred to be working animals, but were bred specifically for their fiber.”。

    首先,我们把问题和段落作为提示输入到模型中,然后让模型生成返回结果。此时,Self-RAG 就会使用反思字符来自我评估输出,使其在推理过程中具有适应性。根据任务的不同,可以定制模型,通过检索更多段落来优先考虑事实准确性,或强调开放式任务的创造力。

    结语

    RAG 和 Self-RAG 的出现,进一步拓展了人工智能的边界,使得我们的机器能够更好地理解世界,更准确地回答问题。然而,这还只是开始,人工智能的未来还有无数的可能性等待我们去探索。让我们一起期待未来的到来,期待人工智能能为我们的生活带来更多的便利和惊喜。

    +参考资料:原文链接 https://mp.weixin.qq.com/s/tpAJww8gs8uurEidRWSmwA

  • 【重磅】从 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 可以通过调整反思字符的权重来定制模型的行为,使其更加符合特定的需求。
    • 更具解释性:Self-RAG 通过反思字符来解释模型的输出,使我们能够更好地理解模型的决策过程。

    Self-RAG 的应用

    Self-RAG 可以应用于各种各样的任务,包括:

    • 问答:Self-RAG 可以从外部文档中检索事实信息,并将其与 LLM 的输出相结合,生成更准确和完整的回答。
    • 文本摘要: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 的行为。

    过滤器钩子包含两个关键元素:钩子名称和回调函数。钩子名称是用来标识特定的过滤器的字符串,而回调函数则是在钩子触发时执行的代码。回调函数接受一个或多个参数,并返回经过修改后的数据。

    下面是一个示例,演示了如何创建并使用一个过滤器钩子:

    // 创建一个过滤器钩子
    function my_custom_filter( $data ) {
        // 修改数据
        $modified_data = $data . ' (Modified)';
    
        // 返回修改后的结果
        return $modified_data;
    }
    add_filter( 'my_custom_filter_hook', 'my_custom_filter' );
    
    // 在钩子触发时调用回调函数
    $data = 'Hello';
    $filtered_data = apply_filters( 'my_custom_filter_hook', $data );
    
    // 输出修改后的结果
    echo $filtered_data; // 输出:Hello (Modified)
    

    在上面的示例中,我们首先定义了一个名为 my_custom_filter 的回调函数,它接受一个参数 $data 并返回修改后的结果。然后,我们使用 add_filter 函数将这个回调函数添加到名为 my_custom_filter_hook 的过滤器钩子上。

    最后,我们使用 apply_filters 函数来触发钩子并调用回调函数。我们将字符串 'Hello' 作为参数传递给 apply_filters 函数,然后它将调用 my_custom_filter 函数并返回修改后的结果。最后,我们将修改后的结果输出到屏幕上。

    通过使用过滤器钩子,您可以在 WordPress 中的许多地方拦截和修改数据。这使得您能够以非常灵活的方式自定义和扩展 WordPress 的功能,无需修改核心代码或插件的源代码。

    创建自定义钩子

    作为插件开发者,你不仅可以使用 WordPress 内置的钩子,还可以创建自己的钩子,供其他插件和模板使用。这使得你的插件更灵活,更易于扩展。

    在哪里可以找到钩子?

    你可以在 WordPress 的核心代码中找到所有的钩子,或者在网上查找钩子的参考列表。你也可以搜索如 “do_action”、”do_action_ref_array”、”apply_filters”、”apply_filters_ref_array” 等关键字,以找到更多的钩子。

    掌握了钩子的使用,你就拥有了改变 WordPress 功能的强大工具。所以,让我们一起开始这段神奇的插件开发之旅吧!希望你在这个过程中找到乐趣,并拥有一次丰富的学习体验。