分类: AGI

  • 赋予对话系统“大脑”:从神经科学到虚拟接待员

    随着聊天机器人、语言模型和语音技术的快速发展,人们越来越渴望创造能够通过自然语言或直接语音与人类无缝交互的系统。本文将探讨如何将对话系统研究置于具身智能的更广阔背景下,借鉴神经生物学和神经心理学中的概念,定义一种能够融合手工设计和人工神经网络的行为架构,为未来模仿学习或指令学习等新学习方法打开大门。

    传统对话系统的局限性

    传统的语音助手通常采用一种简单的线性信息流架构,从语音识别到自然语言理解,再到对话管理和自然语言生成,最终输出文本或语音。这种架构虽然在处理简单任务方面表现出色,但面临着一些挑战:

    • 数据依赖性强: 机器学习方法需要大量对话数据进行训练,这在一些领域难以获得。
    • 奖励函数定义困难: 强化学习方法需要定义合适的奖励函数,这在复杂对话场景中非常困难。
    • 可控性/可解释性有限: 基于统计的深度神经网络方法的可控性和可解释性较差。

    另一方面,手工设计的对话系统虽然易于开发,可控性高,但扩展性存在局限,难以应对复杂多变的对话场景。

    借鉴神经科学:Miron系统

    本文提出了一种名为“Miron”的系统,其灵感来源于神经科学中的镜像神经元理论。镜像神经元在动物执行特定动作时以及观察其他个体执行相同动作时都会被激活,这表明动作理解和动作生成可能共享相同的表征。

    Miron系统将这一概念应用于自然语言理解 (NLU) 和自然语言生成 (NLG) 模块,将一个特定的意图 (intent) 与一组用于识别和生成该意图的模板句子联系起来。每个Miron还包含一个可选的数据结构,用于描述模板句子中使用的命名实体 (named entities),例如日期、地点、人物等。

    Miron系统的优势:

    • 统一识别和生成: Miron系统使用相同的模板句子进行识别和生成,简化了设计过程。
    • 可扩展性: Miron模板可以生成大量句子,为统计 NLU 模型提供训练数据。
    • 模仿学习的潜力: Miron系统为通过观察和模仿学习对话行为提供了可能性。

    具身智能和多模态交互

    除了文本对话,具身智能系统还可以通过虚拟化身或物理机器人与人类进行多模态交互,例如眼神、表情、手势等。Miron系统可以通过文本形式表示多模态信息,实现多模态交互。

    对话/行为引擎:基于递归神经网络的架构

    为了处理异步感知事件 (例如语音、传感器信号) 并生成相应的反应,本文提出了一种基于递归神经网络 (RNN) 的对话/行为引擎。该引擎将状态定义为规则,每个规则对应一个状态,当其条件满足时,就会执行一组关联的动作。

    行为引擎的架构:

    • 条件层: 包含识别到的 Miron 意图、动作完成反馈事件、命名实体状态和工作记忆状态。
    • AND 层: 通过权重矩阵和当前激活的规则,确定哪些规则可以被激活。
    • 预选层: 在多个规则可以被激活的情况下,随机选择一个规则。
    • OR 层: 考虑所有激活的规则,最终确定下一个激活的规则。
    • 动作层: 生成相应的动作,包括内部 Miron 意图、内部动作、工作记忆状态变化等。

    内部语言:模拟人类的思考过程

    人类可以通过“内部语言”进行思考,例如回忆记忆或想象场景。本文借鉴这一概念,允许对话系统通过内部 Miron 意图触发行为,就像外部用户发出指令一样。

    模型驱动开发:图形化 DSL

    为了简化对话/行为的设计过程,本文提出了一种图形化领域特定语言 (DSL),允许开发者通过图形化方式创建对话/行为模型。DSL 包含 Miron 元素和规则元素,分别用于定义语言相关方面 (例如意图、命名实体、模板) 和行为逻辑 (例如条件、动作)。

    对话设计:模块化和参数化

    对话可以看作是机器和用户之间一系列言语行为的交替。为了简化对话设计,本文提出了一种基于回合制 (turn-taking) 的架构,将对话流程分解成多个模块,例如用户模型、响应模型、错误模型、情景分析模块、行为参数化模块和参数化行为模块。

    虚拟接待员:应用案例

    本文使用上述方法开发了一个虚拟接待员系统,该系统运行在一个展台上,由一个虚拟化身代表,用于迎接访客、收集信息、验证访客预约信息并联系相关人员迎接访客。

    系统架构:

    • 化身框架: 提供了用于创建虚拟化身的工具和接口。
    • 语音技术: 集成了文本转语音 (TTS) 和语音识别 (ASR) 模块。
    • 电话/邮件通信: 支持电话和邮件通信功能。
    • 人脸识别和距离检测: 支持人脸识别和距离检测功能。

    对话设计:

    • 模块化: 将对话流程分解成多个模块,例如访客模型、情景分析模块、信息参数化模块和错误处理模块。
    • 冗余设计: 通过提供多种信息和处理错误的方式,提高对话的可靠性。
    • 非语言行为: 使用表情、动作等非语言行为,增强用户体验。

    用户研究:

    用户研究表明,虚拟接待员系统获得了较高的用户满意度,用户认为该系统易用、吸引人且能有效地完成任务。

    总结和未来展望

    本文展示了如何将神经科学中的概念应用于手工设计的对话管理系统,并提出了一种基于模型驱动开发和图形化 DSL 的设计方法。未来,学习方法将是实现可扩展对话系统的关键,而模仿学习、指令学习和课程学习将发挥重要作用。

    参考文献:

    • Alderson-Day, B., & Fernyhough, C. (2015). Inner Speech: Development, Cognitive Functions,
      Phenomenology, and Neurobiology. Psychol Bull., 141(5), 931-965.
    • Bohus, D., & Horvitz, E. (2009). Dialog in the open world: platform and applications. In Proceedings of the 2009 international conference on Multimodal interfaces (pp. 31-38).
    • Rizzolatti, G., & Craighero, L. (2004), The Mirror-Neuron System, Annu. Rev. Neurosci., 27, 169–92.
    • Weinschenk, S. (2011). 100 things every designer needs to know about people. Pearson Education.

    **[请保持角色] **

  • MMLU:我们真的完成了它吗?

    大型语言模型(LLM)的出现,标志着自然语言处理领域取得了重大进展,使我们能够通过自然语言与计算机进行交互。然而,这些模型的评估需要可靠的基准测试,而现有的基准测试却存在着不少问题。

    MMLU:一个广受欢迎但存在问题的基准测试

    MMLU(Massive Multitask Language Understanding,大规模多任务语言理解)基准测试,因其涵盖了数学、历史、计算机科学、逻辑、法律等多个领域的知识而备受关注。然而,我们发现,尽管MMLU很受欢迎,但它存在着大量错误,这些错误会误导模型评估和比较。

    MMLU中的错误:一个需要解决的问题

    研究人员发现,MMLU中存在着各种各样的错误,从简单的解析和抓取错误,到更复杂的上下文、解释和数据集质量问题。例如,在病毒学子集中,57% 的问题都存在错误,其中一些错误甚至建议将美军派往西非以阻止埃博拉疫情的爆发。

    MMLU-Redux:一个更可靠的基准测试

    为了解决MMLU中存在的错误问题,研究人员手动分析了MMLU数据集,并创建了MMLU-Redux。MMLU-Redux 包含3000个经过手动重新标注的问题,涵盖了MMLU的30个子集。研究人员发现,MMLU-Redux 的结果与原始MMLU的评估结果存在显著差异,这表明MMLU中存在的错误对模型评估结果产生了重大影响。

    MMLU-Redux:一个更可靠的基准测试

    MMLU-Redux 的创建,为我们提供了重新评估LLM性能的工具。研究人员发现,在MMLU-Redux 上,一些LLM的性能表现与原始MMLU评估结果存在显著差异,这表明MMLU中的错误会影响模型的排名。

    自动修复MMLU:一个挑战

    研究人员还尝试了使用LLM自动修复MMLU中的错误。他们使用了多种方法,包括零样本提示、少样本提示、链式思维提示和检索增强生成。然而,即使是最先进的模型,在自动错误检测方面的表现仍然有限。

    结论:MMLU需要改进

    MMLU是一个重要的基准测试,但它存在着不少问题。MMLU-Redux 的出现,为我们提供了一个更可靠的基准测试。研究人员呼吁社区共同努力,改进MMLU,使其成为评估下一代LLM的可靠工具。

    参考文献

    [1] Vaswani, Ashish, et al. “Attention is all you need.” Advances in neural information processing systems 30 (2017).

    [2] Brown, Tom, et al. “Language models are few-shot learners.” Advances in neural information processing systems 33 (2020): 1877-1901.

    [3] Devlin, Jacob, et al. “Bert: Pre-training of deep bidirectional transformers for language understanding.” arXiv preprint arXiv:1810.04805 (2018).

    [4] Radford, Alec, et al. “Language models are unsupervised multitask learners.” OpenAI blog (2019).

    [5] Raffel, Colin, et al. “Exploring the limits of transfer learning with a unified text-to-text transformer.” Journal of Machine Learning Research 21.140 (2020): 1-67.

    [6] Dai, Hanxiao, et al. “Finetuned language models are zero-shot learners.” arXiv preprint arXiv:2005.14165 (2020).

    [7] Zhang, Sheng, et al. “Learning to prompt for continual pre-training.” Advances in Neural Information Processing Systems 35 (2022): 20398-20410.

    [8] Touvron, Hugo, et al. “Llama: Open and efficient large language models.” arXiv preprint arXiv:2302.09439 (2023).

    [9] Gardner, Matt, et al. “Evaluating large language models trained on code.” arXiv preprint arXiv:2107.03374 (2021).

    [10] Bommasani, Rishi, et al. “On the opportunities and risks of foundation models.” arXiv preprint arXiv:2108.07258 (2021).

    [11] Hendrycks, Dan, et al. “Measuring massive multitask language understanding.” arXiv preprint arXiv:2009.11692 (2020).

    [12] Wei, Jason, et al. “Finetuned language models are zero-shot learners.” arXiv preprint arXiv:2005.14165 (2020).

    [13] Wei, Jason, et al. “Chain of thought prompting elicits reasoning in large language models.” arXiv preprint arXiv:2201.11903 (2022).

    [14] Guu, Kelvin, et al. “Retrieval-augmented generation for knowledge-intensive tasks.” arXiv preprint arXiv:2005.11401 (2020).

    [15] Lin, Jimmy, et al. “Pyserini: A python toolkit for reproducible information retrieval research.” Proceedings of the 45th International ACM SIGIR Conference on Research & Development in Information Retrieval. 2022.

    [16] Beyer, Ludwig, et al. “Are we done with imagenet?” arXiv preprint arXiv:2007.02133 (2020).

    [17] Deng, Jia, et al. “Imagenet: A large-scale hierarchical image database.” 2009 IEEE conference on computer vision and pattern recognition. IEEE, 2009.

    [18] Nallapati, Ramesh, et al. “Summarization evaluation: From human judgments to metrics.” Proceedings of the 2016 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. 2016.

    [19] Fabbri, Alessandro, et al. “Semeval-2015 task 11: Automatic short answer grading.” Proceedings of the 9th International Workshop on Semantic Evaluation (SemEval 2015). 2015.

    [20] Williams, Adina, et al. “A broad-coverage challenge corpus for sentence understanding through inference.” Proceedings of the 2017 Conference on Empirical Methods in Natural Language Processing. 2017.

    [21] Bowman, Samuel R., et al. “A large annotated corpus for learning natural language inference.” Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing. 2015.

    [22] Glockner, Max, et al. “Fine-tuning language models for natural language inference.” Proceedings of the 2018 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long Papers). 2018.

    [23] Nie, Yixin, et al. “Adversarial examples for natural language inference.” Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long Papers). 2019.

    [24] Bender, Emily M., et al. “On the dangers of stochastic parrots: Can language models be too big?” Proceedings of the 2021 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. 2021.

    [25] Belinkov, Yonatan, et al. “Evaluating adversarial robustness of natural language processing systems.” Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long Papers). 2019.

    [26] Zhou, Peng, et al. “Towards robust and reliable natural language inference.” Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics. 2019.

    [27] Zhang, Sheng, et al. “Learning to prompt for continual pre-training.” Advances in Neural Information Processing Systems 35 (2022): 20398-20410.

    [28] Gururangan, Suchin, et al. “Don’t stop pretraining: Adapt language models to domains and tasks.” Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics. 2019.

    [29] Snow, Rion, et al. “Cheap and fast—but is it good?: Evaluating non-expert annotations for natural language tasks.” Proceedings of the Conference on Empirical Methods in Natural Language Processing. 2008.

    [30] Diao, Qun, et al. “Human errors in annotation: A case study of natural language inference.” Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long Papers). 2019.

    [31] Ratner, Alexander, et al. “Data programming: Creating large training sets via synthetic data.” Proceedings of the 34th International Conference on Machine Learning-Volume 70. JMLR. org, 2017.

    [32] Sheng, Victor, et al. “Weak supervision for natural language processing.” Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long Papers). 2019.

    [33] Sap, M., et al. “The influence of annotator bias on natural language inference data.” Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long Papers). 2019.

    [34] Pratapa, Adithya, et al. “Annotator bias in natural language inference: A case study of the snli corpus.” Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long Papers). 2019.

    [35] Rajpurkar, Pranav, et al. “Medqa: A dataset for medical question answering.” Proceedings of the 2018 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long Papers). 2018.

    [36] Hendrycks,

  • 超越相似性:基于复合聚合的个性化联邦推荐

    近年来,联邦推荐(FR)作为一种新兴的设备端学习范式,在学术界和工业界都引起了广泛关注。现有的联邦推荐方法通常采用不同的协同过滤模型作为本地模型,并通过各种聚合函数来获得一个全局推荐器,遵循基本的联邦学习(FL)原则。例如,一项开创性的工作是 FCF,它通过执行本地更新和使用联邦优化进行全局聚合,对集中式矩阵分解进行了改进。此外,FedNCF 将矩阵分解的线性与深度嵌入技术的非线性相结合,建立在 FCF 的基础之上。这些基于嵌入的联邦推荐模型有效地平衡了推荐准确性和隐私保护。

    然而,现有的联邦推荐方法主要利用联邦视觉领域中发明的聚合函数来聚合来自相似客户端的参数,例如聚类聚合。尽管这些方法取得了相当大的性能,但我们认为直接将它们应用于联邦推荐并非最佳选择。这主要体现在模型结构的差异上。与联邦视觉中的卷积神经网络等结构化参数不同,联邦推荐模型通常采用一对一的项目嵌入表来进行区分。这种差异导致了嵌入偏差问题,即在聚合过程中不断更新已训练的嵌入,而忽略了未训练的嵌入,从而无法准确预测未来的项目。

    为了解决这个问题,我们提出了一种基于复合聚合的个性化联邦推荐模型(FedCA),它不仅聚合了相似客户端以增强已训练的嵌入,还聚合了互补客户端以更新未训练的嵌入。此外,我们将整个学习过程转化为一个统一的优化算法,以共同学习相似性和互补性。在多个真实数据集上的大量实验证明了我们提出的模型的有效性。

    嵌入偏差问题:联邦推荐的独特挑战

    联邦推荐模型通常使用一个嵌入表来存储所有项目的表示,每个客户端只训练与自己交互过的项目的嵌入。当使用传统的相似性聚合方法时,会发生嵌入偏差问题:已训练过的项目的嵌入会不断得到优化,而未训练过的项目的嵌入则保持不变甚至退化。这导致模型在预测用户未来可能感兴趣的项目时,由于缺乏对未训练项目信息的了解,效果不佳。

    FedCA:基于复合聚合的个性化联邦推荐

    为了解决嵌入偏差问题,我们提出了 FedCA 模型,它采用了一种复合聚合机制,同时考虑了模型相似性和数据互补性。

    • 模型相似性: FedCA 聚合来自相似客户端的模型,以增强已训练的项目的嵌入。
    • 数据互补性: FedCA 聚合来自互补客户端的模型,以更新未训练的项目的嵌入。

    FedCA 使用一个统一的优化框架来共同学习相似性和互补性。通过这种方式,FedCA 能够更有效地聚合项目嵌入,从而提高模型的预测准确性和泛化能力。

    实验结果

    我们对四个基准数据集进行了实验,包括 Movielens-100K、Filmtrust、Movielens-1M 和 Microlens-100K。实验结果表明,FedCA 在所有数据集上都优于其他基线模型,包括 FCF、FedAvg、PerFedRec、FedAtt、FedFast、pFedGraph 和 PFedRec。此外,我们还进行了消融实验,验证了模型相似性和数据互补性在 FedCA 中的有效性。

    总结

    本文首先重新思考了联邦视觉和联邦推荐任务之间的根本差异。具体来说,联邦视觉领域主要利用结构化参数(例如卷积神经网络)进行联邦优化,而联邦推荐任务主要采用一对一的项目嵌入表进行个性化推荐。这种关键差异导致了从联邦视觉领域借鉴的基于相似性的聚合方法在聚合嵌入表时无效,从而导致嵌入偏差问题。为了解决上述挑战,我们提出了一种专门针对联邦推荐任务的复合聚合机制。具体来说,通过在一个统一的优化框架内结合模型相似性和数据互补性,我们的方法增强了客户端已交互过的项目的训练嵌入,并优化了客户端未交互过的项目的非训练嵌入。这使得能够有效地预测未来的项目。此外,我们还探讨了近端项在联邦推荐任务中对个性化偏好的无效性,并提出了一种插值方法来缓解联邦推荐中的空间错位问题。

    这项研究特别提出了一种很有前景的联邦推荐任务复合聚合框架。它是一个与模型无关的即插即用模块,可以无缝集成到主流联邦推荐模型中。然而,在这项工作中,我们需要手动调整相似性和互补性的权重分配。这些局限性可以通过在未来的研究中使用自动机器学习技术来自适应地学习权重分配来缓解。此外,探索更适合联邦推荐任务的模型相似性和数据互补性机制也是一个很有前景的研究方向。

    参考文献

    [1] Hongzhi Yin, Liang Qu, Tong Chen, Wei Yuan, Ruiqi Zheng, Jing Long, Xin Xia, Yuhui Shi, and Chengqi Zhang. On-device recommender systems: A comprehensive survey. arXiv preprint arXiv:2401.11441, 2024.

    [2] Karan Singhal, Hakim Sidahmed, Zachary Garrett, Shanshan Wu, John Rush, and Sushant Prakash. Federated reconstruction: Partially local federated learning. In NeurIPS, pages 11220–11232, 2021.

    [3] Canh T Dinh, Nguyen Tran, and Josh Nguyen. Personalized federated learning with moreau envelopes. In NeurIPS, pages 21394–21405, 2020.

    [4] Muhammad Ammad-Ud-Din, Elena Ivannikova, Suleiman A Khan, Were Oyomno, Qiang Fu, Kuan Eeik Tan, and Adrian Flanagan. Federated collaborative filtering for privacy-preserving personalized recommendation system. arXiv preprint arXiv:1901.09888, 2019.

    [5] Honglei Zhang, Fangyuan Luo, Jun Wu, Xiangnan He, and Yidong Li. LightFR: Lightweight federated recommendation with privacy-preserving matrix factorization. ACM Trans. Inf. Syst., 41(4):1–28, 2023.

    [6] Lin Ning, Karan Singhal, Ellie X Zhou, and Sushant Prakash. Learning federated representations and recommendations with limited negatives. arXiv preprint arXiv:2108.07931, 2021.

    [7] Andrew Hard, Kanishka Rao, Rajiv Mathews, Swaroop Ramaswamy, Françoise Beaufays, Sean Augenstein, Hubert Eichner, Chloé Kiddon, and Daniel Ramage. Federated learning for mobile keyboard prediction. arXiv preprint arXiv:1811.03604, 2018.

    [8] Yehuda Koren, Robert Bell, and Chris Volinsky. Matrix factorization techniques for recommender systems. Computer, 42(8):30–37, 2009.

    [9] Xiangnan He, Lizi Liao, Hanwang Zhang, Liqiang Nie, Xia Hu, and Tat-Seng Chua. Neural collaborative filtering. In The Web Conference, pages 173–182, 2017.

    [10] Brendan McMahan, Eider Moore, Daniel Ramage, Seth Hampson, and Blaise Aguera y Arcas. Communication-efficient learning of deep networks from decentralized data. In AISTAT, pages 1273–1282, 2017.

    [11] Khalil Muhammad, Qinqin Wang, Diarmuid O’Reilly-Morgan, Elias Tragos, Barry Smyth, Neil Hurley, James Geraci, and Aonghus Lawlor. Fedfast: Going beyond average for faster training of federated recommender systems. In SIGKDD, pages 1234–1242, 2020.

    [12] Vasileios Perifanis and Pavlos S Efraimidis. Federated neural collaborative filtering. Knowl.-Based Syst., 242:1–16, 2022.

    [13] Zhiwei Li, Guodong Long, and Tianyi Zhou. Federated recommendation with additive personalization. In ICLR, 2024.

    [14] Wei Yuan, Liang Qu, Lizhen Cui, Yongxin Tong, Xiaofang Zhou, and Hongzhi Yin. Hetefedrec: Federated recommender systems with model heterogeneity. In ICDE, 2024.

    [15] Bingyan Liu, Yao Guo, and Xiangqun Chen. Pfa: Privacy-preserving federated adaptation for effective model personalization. In The Web Conference, pages 923–934, 2021.

    [16] Shaoxiong Ji, Shirui Pan, Guodong Long, Xue Li, Jing Jiang, and Zi Huang. Learning private neural language modeling with attentive aggregation. In IJCNN, pages 1–8, 2019.

    [17] Avishek Ghosh, Jichan Chung, Dong Yin, and Kannan Ramchandran. An efficient framework for clustered federated learning. In NeurIPS, pages 19586–19597, 2020.

    [18] Sichun Luo, Yuanzhang Xiao, and Linqi Song. Personalized federated recommendation via joint representation learning, user clustering, and model adaptation. In CIKM, pages 4289–4293, 2022.

    [19] Xin Xia, Hongzhi Yin, Junliang Yu, Qinyong Wang, Guandong Xu, and Quoc Viet Hung Nguyen. On-device next-item recommendation with self-supervised knowledge distillation. In SIGIR, pages 546–555, 2022.

    [20] Chunxu Zhang, Guodong Long, Tianyi Zhou, Peng Yan, Zijian Zhang, Chengqi Zhang, and Bo Yang. Dual personalization on federated recommendation. In IJCAI, 2024.

    [21] Jinze Wu, Qi Liu, Zhenya Huang, Yuting Ning, Hao Wang, Enhong Chen, Jinfeng Yi, and Bowen Zhou. Hierarchical personalized federated learning for user modeling. In The Web Conference, pages 957–968, 2021.

    [22] Tian Li, Anit Kumar Sahu, Manzil Zaheer, Maziar Sanjabi, Ameet Talwalkar, and Virginia Smith. Federated optimization in heterogeneous networks. In MLSys, pages 429–450, 2020.

    [23] Liam Collins, Hamed Hassani, Aryan Mokhtari, and Sanjay Shakkottai. Exploiting shared representations for personalized federated learning. In ICML, pages 2089–2099, 2021.

    [24] Filip Hanzely, Slavomír Hanzely, Samuel Horváth, and Peter Richtárik. Lower bounds and optimal algorithms for personalized federated learning. In NeurIPS, pages 2304–2315, 2020.

    [25] Xinrui He, Shuo Liu, Jacky Keung, and Jingrui He. Co-clustering for federated recommender system. In The Web Conference, pages 3821–3832, 2024.

    [26] Rui Ye, Zhenyang Ni, Fangzhao Wu, Siheng Chen, and Yanfeng Wang. Personalized federated learning with inferred collaboration graphs. In ICML, pages 39801–39817, 2023.

    [27] Guibing Guo, Jie Zhang, and Neil Yorke-Smith. A novel bayesian similarity measure for recommender systems. In IJCAI, pages 2619–2625, 2013.

    [28] F Maxwell Harper and Joseph A Konstan. The movielens datasets: History and context. ACM Trans. Interact. Intell. Syst., 5(4):1–19, 2015.

    [29] Ellango Jothimurugesan, Kevin Hsieh, Jianyu Wang, Gauri Joshi, and Phillip B Gibbons. Federated learning under distributed concept drift. In IJCAI, pages 5834–5853, 2023.

    [30] Alexander Kraskov, Harald Stögbauer, and Peter Grassberger. Estimating mutual information. Phys. Rev. E, 69(6):1–16, 2004.

    [31] Steven Diamond and Stephen Boyd. Cvxpy: A python-embedded modeling language for convex optimization. J. Mach. Learn. Res., 17(83):1–5, 2016.

    [32] Lorenzo Minto, Moritz Haller, Benjamin Livshits, and Hamed Haddadi. Stronger privacy for federated collaborative filtering with implicit feedback. In RecSys, pages 342–350, 2021.

    [33] Badih Ghazi, Noah Golowich, Ravi Kumar, Pasin Manurangsi, and Chiyuan Zhang. Deep learning with label differential privacy. In NeurIPS, pages 27131–27145, 2021.

    [34] Elan Rosenfeld, Ezra Winston, Pradeep Ravikumar, and Zico Kolter. Certified robustness to label-flipping attacks via randomized smoothing. In ICML, pages 8230–8241, 2020.

    [35] Yongxin Ni, Yu Cheng, Xiangyan Liu, Junchen Fu, Youhua Li, Xiangnan He, Yongfeng Zhang, and Fajie Yuan. A content-driven micro-video recommendation dataset at scale. arXiv preprint arXiv:2309.15379, 2023.

    [36] Andriy Mnih and Russ R Salakhutdinov. Probabilistic matrix factorization. NeurIPS, 2007.

    [37] Christos Boutsidis, Anastasios Zouzias, and Petros Drineas. Random projections for k-means clustering. NeurIPS, 2010.

    [38] David Goldberg, David Nichols, Brian M Oki, and Douglas Terry. Using collaborative filtering to weave an information tapestry. Commun. ACM, 35(12):61–70, 1992.

    [39] Matthias Feurer, Aaron Klein, Katharina Eggensperger, Jost Springenberg, Manuel Blum, and Frank Hutter. Efficient and robust automated machine learning. In NeurIPS, 2015.

  • DJL Serving: 轻松部署你的深度学习模型

    你是否还在为如何将训练好的深度学习模型部署到生产环境而烦恼?传统的部署方式往往需要复杂的配置和维护,而且难以扩展。现在,DJL Serving 为你提供了一个简单、高效、可扩展的解决方案!

    DJL Serving 是一个基于 DJL 的高性能通用模型服务解决方案,它可以将你的深度学习模型轻松部署为 HTTP 服务,方便其他应用程序调用。

    DJL Serving 的优势

    • 通用性: 支持多种深度学习框架,包括 PyTorch、TensorFlow、MXNet、ONNX、TensorRT 等等。
    • 高性能: 利用多线程推理,在单一 JVM 中实现高吞吐量,性能优于市场上的大多数 C++ 模型服务器。
    • 易用性: 开箱即用,无需复杂的配置。
    • 可扩展性: 支持插件机制,方便扩展功能。
    • 自动伸缩: 根据负载自动调整工作线程数量,保证服务稳定性。
    • 动态批处理: 支持动态批处理,提高吞吐量。
    • 模型版本控制: 支持加载不同版本的模型,方便迭代更新。
    • 多引擎支持: 支持同时服务来自不同引擎的模型。

    安装 DJL Serving

    你可以通过以下方式安装 DJL Serving:

    • macOS: 使用 Homebrew 安装:
    brew install djl-serving
    • Ubuntu: 使用 dpkg 安装:
    curl -O https://publish.djl.ai/djl-serving/djl-serving_0.27.0-1_all.deb
    sudo dpkg -i djl-serving_0.27.0-1_all.deb
    • Windows: 下载 zip 文件并解压:
    curl -O https://publish.djl.ai/djl-serving/serving-0.27.0.zip
    unzip serving-0.27.0.zip
    • Docker: 使用 Docker 镜像运行:
    docker run -itd -p 8080:8080 deepjavalibrary/djl-serving

    使用 DJL Serving

    DJL Serving 可以通过命令行启动,并提供 RESTful API 用于模型推理和管理。

    启动 DJL Serving:

    djl-serving --help

    REST API:

    • 推理 API: 用于客户端调用模型进行推理。
    • 管理 API: 用于添加、删除和扩展模型。

    默认情况下,DJL Serving 监听端口 8080,仅允许本地访问。你可以修改配置文件以允许远程访问。

    扩展 DJL Serving

    DJL Serving 支持插件机制,你可以开发自己的插件来扩展功能。

    总结

    DJL Serving 是一个强大的模型服务解决方案,它能够帮助你轻松部署和管理深度学习模型,并提供高性能和可扩展性。无论你是初学者还是经验丰富的开发者,DJL Serving 都能满足你的需求。

    更多信息:


    DJL Serving 架构揭秘:模型服务背后的秘密

    DJL Serving 是一款功能强大的模型服务解决方案,它将你的深度学习模型转化为可供其他应用程序访问的 HTTP 服务。但你是否好奇它背后的运作机制?本文将带你深入了解 DJL Serving 的架构,揭开模型服务背后的秘密。

    四层架构:协同运作,高效服务

    DJL Serving 的架构可以大致分为四层:

    1. 前端 (Frontend): 负责接收和管理来自客户端的请求。它使用 Netty 框架构建,并包含多个 HTTP 请求处理器,分别处理推理 API、管理 API 以及其他插件提供的 API。
    2. 工作流 (Workflows): 用于组合多个模型和代码片段,形成执行计划。它通过 workflow.json 文件定义,描述了模型的调用顺序和数据流向。
    3. 工作负载管理器 (WorkLoadManager,WLM): 负责管理工作线程,支持批处理和请求路由。它可以独立使用,并提供工作线程扩展功能。
    4. 模型管理器 (ModelManager): 负责加载和管理模型,根据配置在启动时加载指定模型。

    各层职责:紧密合作,高效执行

    • 前端: 接收来自客户端的请求,并根据请求类型选择相应的处理器。例如,推理 API 请求会传递给 WorkLoadManager,管理 API 请求则会传递给 ModelManager。
    • 工作流: 定义模型的执行顺序和数据流向,并协调各个模型的调用。它可以包含多个模型,并通过代码片段连接它们,形成完整的推理流程。
    • 工作负载管理器: 管理工作线程,将请求分配给不同的工作线程进行处理。它支持动态批处理,根据负载自动调整工作线程数量,并提供模型版本控制功能。
    • 模型管理器: 负责加载和管理模型,根据配置在启动时加载指定模型,并提供模型版本控制功能。

    深入 WLM:高效管理工作线程

    WLM 是 DJL Serving 的核心组件,它负责管理工作线程,并确保模型推理的高效执行。

    • 工作线程池: WLM 为每个模型创建独立的工作线程池,每个线程池包含多个工作组。
    • 工作组: 每个工作组对应一个特定的设备,例如 CPU 或 GPU。同一个模型可以在不同的设备上创建多个工作组,以充分利用硬件资源。
    • 工作线程: 每个工作组包含多个工作线程,每个线程负责执行模型推理任务。
    • 自动伸缩: WLM 支持自动伸缩功能,根据负载动态调整工作线程数量,保证服务稳定性。
    • 模型预测器: 每个工作线程包含一个 DJL 模型预测器,它负责执行模型推理。预测器支持多种模型引擎,例如 PyTorch、TensorFlow、XGBoost 等。

    Python 引擎:灵活扩展,无缝集成

    DJL Serving 还支持 Python 引擎,允许你使用 Python 代码编写模型预处理、后处理逻辑,甚至直接调用 Python 模型。

    • 独立进程: 每个工作线程拥有独立的 Python 进程,确保代码执行的隔离性。
    • 灵活调用: 通过 Python 预测器 (PyPredictor) 可以方便地调用 Python 进程,执行预处理、后处理或模型推理。

    总结:高效、灵活、可扩展

    DJL Serving 的架构设计体现了高效、灵活、可扩展的原则,它能够满足各种深度学习模型部署需求,并提供强大的性能和可靠性。

    更多信息:

    希望本文能够帮助你更好地理解 DJL Serving 的架构,并为你的模型部署提供参考。

  • 用Java玩转深度学习:DJL实战指南

    深度学习模型大多用Python开发,而服务端却多用Java,导致许多开发者不得不使用Java调用Python接口,效率低下且不够优雅。更糟糕的是,如果想在Android上进行推理,就必须使用Java。

    别担心!现在,我们可以用Java直接进行深度学习了!DJL(Deep Java Library)是一个强大的开源深度学习框架,它支持模型构建、训练、推理,甚至在Android上运行。本文将带你深入了解DJL,并通过一个实战案例,教你用Java加载PyTorch模型进行图片分类。

    DJL:Java深度学习的利器

    DJL 的出现,为Java开发者打开了深度学习的大门。它提供了一套简洁易用的API,让Java开发者能够轻松地构建、训练和部署深度学习模型。

    DJL 的优势:

    • Java 开发: 使用熟悉的 Java 语言进行深度学习开发,无需学习其他语言。
    • 跨平台支持: 支持 Windows、Linux、macOS 和 Android 等多种平台。
    • GPU 加速: 支持 GPU 加速,提升模型训练和推理速度。
    • 模型兼容性: 支持多种深度学习框架,包括 PyTorch、TensorFlow 和 MXNet。

    DJL 核心 API 解密

    DJL 的核心 API 包括 Criteria、Translator 和 NDArray,它们共同构成了深度学习模型的构建和操作基础。

    1. Criteria:模型的定义

    Criteria 类对象定义了模型的属性,例如模型路径、输入和输出类型等。

    Criteria<Input, Output> criteria = Criteria.builder()
            .setTypes(Input.class, Output.class) // 定义输入和输出数据类型
            .optTranslator(new InputOutputTranslator()) // 设置输入输出转换器
            .optModelPath(Paths.get("/var/models/my_resnet50")) // 指定模型路径
            .optModelName("model/resnet50") // 指定模型文件前缀
            .build();
    
    ZooModel<Image, Classifications> model = criteria.loadModel();

    这段代码定义了一个名为 “resnet50” 的模型,并加载了它。

    2. Translator:数据转换桥梁

    Translator 接口定义了如何将自定义的输入输出类转换为 Tensor 类型。

    private Translator<Input, Output> translator = new Translator<Input, Output>() {
    
        @Override
        public NDList processInput(TranslatorContext ctx, Input input) throws Exception {
            return null;
        }
    
        @Override
        public Output processOutput(TranslatorContext ctx, NDList ndList) throws Exception {
            return null;
        }
    };

    Translator 接口包含两个方法:

    • processInput: 将输入类对象转换为 Tensor。
    • processOutput: 将模型输出的 Tensor 转换为自定义类。

    3. NDArray:Tensor 操作的利器

    NDArray 类类似于 Python 中的 NumPy 数组,它提供了丰富的 Tensor 操作功能。

    NDManager ndManager = NDManager.newBaseManager(); // 创建 NDManager 对象
    NDArray ndArray = ndManager.create(new Shape(1, 2, 3, 4)); // 创建一个 Shape 为 (1, 2, 3, 4) 的 Tensor

    DJL 提供了多种 NDArray 操作,例如:

    • 创建 NDArray
    • 变更数据类型
    • 运算(加减乘除)
    • 切片
    • 赋值
    • 翻转

    实战:用 DJL 加载 PyTorch 模型进行图片分类

    下面,我们将使用 PyTorch 提供的 ResNet18 模型进行图片分类。

    步骤:

    1. 引入依赖: 在项目的 pom.xml 文件中添加 DJL 的依赖。
    2. 导出 PyTorch 模型: 使用 Python 将 ResNet18 模型保存为 TorchScript 模型。
    3. 创建 Translator: 定义输入为图片路径,输出为类别。
    4. 定义 Criteria: 定义模型路径、输入输出类型和 Translator。
    5. 实例化模型: 使用 Criteria 加载模型。
    6. 创建 Predictor: 使用模型创建 Predictor 对象。
    7. 进行预测: 使用 Predictor 对图片进行分类。

    代码示例:

    // ... (引入依赖)
    
    // 创建 Translator
    Translator<String, String> translator = new Translator<String, String>() {
    
        @Override
        public NDList processInput(TranslatorContext ctx, String input) throws Exception {
            // ... (读取图片,进行预处理)
            return new NDList(ndArray);
        }
    
        @Override
        public String processOutput(TranslatorContext ctx, NDList list) throws Exception {
            // ... (获取预测结果)
            return index + "";
        }
    };
    
    // 定义 Criteria
    Criteria<String, String> criteria = Criteria.builder()
            .setTypes(String.class, String.class)
            .optModelPath(Paths.get("model/traced_resnet_model.pt"))
            .optOption("mapLocation", "true")
            .optTranslator(translator)
            .build();
    
    // 实例化模型
    ZooModel model = criteria.loadModel();
    
    // 创建 Predictor
    Predictor predictor = model.newPredictor();
    
    // 进行预测
    System.out.println(predictor.predict("test/test.jpg"));

    最终输出:

    258

    258 对应的类别为 Samoyed(萨摩耶),说明预测成功。

    总结

    DJL 为 Java 开发者提供了强大的深度学习能力,让我们能够使用 Java 语言进行模型构建、训练和推理。本文通过一个简单的图片分类案例,展示了如何使用 DJL 加载 PyTorch 模型进行预测。

    参考文献:

    希望本文能够帮助你快速入门 DJL,并开始你的 Java 深度学习之旅!

  • FedMoE:数据级个性化与混合专家,助力模型异构个性化联邦学习

    近年来,大型语言模型(LLM)的快速发展,如 ChatGPT 和 AIGC,让人们看到了人工智能的巨大潜力。然而,为了训练这些模型,需要收集海量数据,这引发了人们对数据隐私的担忧。联邦学习 (FL) 应运而生,它是一种分布式机器学习范式,允许多个客户端在不共享数据的情况下协作训练共享模型,有效地保护了数据隐私。

    传统的联邦学习算法,例如 FedAvg,要求所有客户端和服务器都使用相同结构的模型,即模型同质性。然而,现实世界中的数据和模型往往存在异构性,这给传统的联邦学习算法带来了挑战。例如,来自不同客户端的去中心化数据通常是非独立且相同分布的(Non-IID),即数据或统计异质性。此外,客户端可能拥有不同的系统配置和计算能力,即系统异构性。更重要的是,不同机构或企业可能拥有不同的私有模型库,即模型异构性,他们希望在不暴露模型结构的情况下进行协作训练。

    为了应对这些挑战,模型异构个性化联邦学习 (MHPFL) 应运而生。MHPFL 允许客户端训练个性化和异构的局部模型,以适应本地数据分布、系统资源和模型结构,为联邦学习开辟了新的道路。

    现有的 MHPFL 方法主要分为三个分支:基于知识蒸馏的 MHPFL,基于模型混搭的 MHPFL,以及基于互学习的 MHPFL。然而,这些方法都存在一些局限性。例如,基于知识蒸馏的方法需要额外的公共数据集,这在实际应用中难以获得。基于模型混搭的方法只共享同质部分,可能导致性能瓶颈和模型结构暴露。基于互学习的方法则会增加客户端的计算负担。

    为了解决这些问题,本文提出了一种新的模型异构个性化 Fed 学习算法——FedMoE。FedMoE 借鉴了混合专家 (MoE) 的思想,为每个客户端的本地异构大型模型分配一个共享的同构小特征提取器和一个本地门控网络。

    FedMoE 的工作原理

    FedMoE 的核心思想是将本地异构模型的特征提取器视为个性化特征提取的局部专家,而共享的同构小特征提取器视为广义特征提取的全局专家。本地门控网络则根据每个数据样本的特征,为这两个专家提取的特征生成个性化权重。这三个模型共同构成了一个局部异构 MoE。

    具体来说,FedMoE 的工作流程如下:

    1. 局部训练: 每个客户端使用共享的同构小特征提取器和本地异构大型特征提取器,以及一个本地门控网络,构建一个局部 MoE。在训练过程中,门控网络根据每个数据样本的特征,为两个专家提取的特征生成个性化权重。然后,将这两个专家的特征进行加权混合,并由本地异构模型的预测头进行处理,生成个性化预测信息。
    2. 模型聚合: 将经过训练的局部同构小特征提取器发送到服务器,通过聚合方式进行跨客户端信息融合。

    FedMoE 的优势:

    • 数据级个性化: FedMoE 通过门控网络为每个数据样本生成个性化权重,实现了更细粒度的个性化,有效地适应了不同客户端的非 IID 数据分布。
    • 模型异构性: FedMoE 允许客户端使用不同的模型结构,支持模型异构性。
    • 隐私保护: FedMoE 只共享同构的小特征提取器,保护了本地异构模型和数据的隐私。
    • 高效性: FedMoE 采用轻量级的门控网络,降低了计算成本。同时,MoE 中的三个模型同步更新,节省了训练时间。

    实验结果

    本文在 CIFAR-10 和 CIFAR-100 数据集上进行了大量实验,结果表明:

    • FedMoE 的模型性能显著优于现有的 state-of-the-art MHPFL 算法,在模型同质性和模型异构性场景下均取得了最佳结果。
    • FedMoE 的计算成本较低,通信成本可接受。

    总结

    FedMoE 是一种新颖的模型异构个性化 Fed 学习算法,它通过数据级个性化和混合专家机制,有效地解决了模型异构个性化联邦学习中的数据异构性、系统异构性和模型异构性问题。FedMoE 具有更高的模型性能、更低的计算成本和可接受的通信成本,为联邦学习在实际应用中的推广提供了新的思路。


  • 个性化联邦学习的新突破:DA-PFL 算法

    个性化联邦学习(PFL)是近年来人工智能领域的一大热门话题,它能够在保护用户隐私的前提下,为每个用户学习个性化的模型。现有的大多数 PFL 模型都倾向于将数据分布相似的用户聚合在一起,以提升模型性能。然而,这种基于相似性的聚合策略可能会加剧类不平衡问题,导致模型对某些类别样本的预测效果不佳。

    为了解决这个问题,来自哈尔滨工业大学(深圳)的研究团队提出了一种全新的个性化联邦学习模型——DA-PFL,它利用动态亲和聚合策略来缓解类不平衡问题。

    DA-PFL 的核心思想:互补性而非相似性

    DA-PFL 的核心思想是,将用户数据分布的互补性作为聚合策略的依据,而不是仅仅考虑相似性。换句话说,DA-PFL 倾向于将数据分布互补的用户聚合在一起,以平衡不同类别样本的数量,从而降低类不平衡的风险。

    为了实现这一目标,研究团队提出了一种新的亲和度指标,它能够有效地反映用户之间类分布的互补关系。这个指标综合考虑了用户数据中各个类别的样本数量和类别索引号,并通过一个扩展的调整后的余弦相似度来计算。

    动态亲和聚合:灵活选择和聚合

    DA-PFL 采用了一种动态亲和聚合策略,根据每轮的亲和度指标,动态地选择和聚合用户模型。这种动态的策略能够在每一轮训练中,根据用户模型参数和亲和度指标,为每个用户生成一个独特的基于亲和力的聚合模型。

    具体来说,DA-PFL 使用一个负指数项来衡量不同用户模型参数之间的非线性差异,并通过亲和度指标进行加权,从而使每个用户的聚合模型更加关注具有互补数据分布的用户模型。

    实验结果:显著提升模型性能

    研究团队在三个真实世界的数据集(CIFAR10、CIFAR100 和 FEMNIST)上对 DA-PFL 进行了评估,并将其与九种最先进的个性化联邦学习方法进行了比较。实验结果表明,DA-PFL 在不同客户端数量和不同不平衡分布下都取得了最佳的性能,显著提升了每个用户的模型精度。

    例如,在 CIFAR100 数据集上,当客户端数量为 20 且类分布高度不平衡时,DA-PFL 的精度比最佳的比较方法 FedProx 高出 16.44%。在 FEMNIST 数据集上,DA-PFL 的精度比最佳的比较方法 IFCA 高出 15.37%。

    此外,研究团队还对 DA-PFL 的各个组件进行了消融实验,结果表明,亲和度指标和动态聚合策略都对模型性能的提升起着至关重要的作用。

    DA-PFL 的优势:

    • 有效缓解类不平衡问题: 通过将互补性作为聚合策略的依据,DA-PFL 能够有效地平衡不同类别样本的数量,从而降低类不平衡的风险。
    • 提升模型性能: 实验结果表明,DA-PFL 能够显著提升每个用户的模型精度,在多个真实世界数据集上都取得了最佳的性能。
    • 快速收敛: DA-PFL 能够比其他方法更快地收敛,并使用更少的通信轮数来达到目标精度。

    总结

    DA-PFL 算法为个性化联邦学习提供了一种新的解决方案,它能够有效地缓解类不平衡问题,并显著提升模型性能。这项研究为未来个性化联邦学习的研究提供了新的思路和方向。

    参考文献

    [1] Xu Yang, Jiyuan Feng, Songyue Guo, Ye Wang, Ye Ding, Binxing Fang, and Qing Liao. DA-PFL: Dynamic Affinity Aggregation for Personalized Federated Learning. arXiv preprint arXiv:2403.09284, 2024.

  • RWKV 的新架构:Eagle 和 Finch,矩阵值状态与动态递归

    2024 年 4 月 9 日,RWKV Foundation 发布了 RWKV 新架构的最新论文 ——《Eagle and Finch: RWKV with Matrix-Valued States and Dynamic Recurrence》,论文由 Bo PENG 和 RWKV 开源社区成员共同完成。

    论文地址:https://arxiv.org/abs/2404.05892

    论文内容摘要

    论文提出了两种新的 RWKV 架构:Eagle (RWKV-5) 和 Finch (RWKV-6),这两种序列模型在 RWKV-4 架构的基础上进行了改进。

    对比 RWKV-4 , 新 RWKV 架构的改进包括 多头矩阵值状态(multi-headed matrix-valued states)动态递归机制(dynamic recurrence mechanism),这些改进提高了 RWKV 模型的表达能力,同时保持 RNN 的推理效率特征。

    新的 RWKV 架构还使用一个包含 1.12 T tokens 的 新多语言语料库 和一个基于 greedy matching 的快速分词器,以增强 RWKV 的多语言能力。

    基于新的架构训练了四个 Eagle (RWKV-5) 模型(分别是 0.4B、1.5B、3B、7B 参数),以及两个 Finch 模型(分别是 1.6B 、3B 参数)。

    新架构的 RWKV 模型在各种基准测试中都实现了具有竞争力的性能,所有 Eagle 和 Finch 模型都基于 Apache 2.0 开源许可证下在 HuggingFace 上发布:
    https://huggingface.co/RWKV

    RWKV 当前的多模态工作包含 RWKV Music(音乐方向) 和 VisualRWKV(图像方向)。

    未来 RWKV 的工作将聚焦于扩大并改进训练数据集,以及训练和发布更大规模的 Finch (RWKV-6) 模型,例如 7B 和 14B 参数,并通过 Mixture of Experts 降低推理和训练成本。

    新架构升级细节

    Eagle (RWKV-5) 通过使用富有表现力的 多头矩阵值状态(而不是向量值状态)、重新构造的接受态和额外的门控机制,改进了从 RWKV-4 中学习到的架构和学习衰减进度。

    Finch (RWKV-6) 通过引入新的数据相关函数来进一步改进架构的表现能力和灵活性,用于时间混合和令牌移位模块,包括参数化线性插值。

    此外,Finch (RWKV-6) 提出了对低秩自适应函数的新用法,以使可训练的权重矩阵能够以一种上下文相关的方式有效地增强学习到的数据衰减向量。

    最后,RWKV 新架构引入了一种新的分词器 “RWKV World Tokenizer”,和一个新数据集 “RWKV World v2”(1.12 T tokens),两者用于提高 RWKV 模型在多语言和代码数据上的性能。

    新的分词器 “RWKV World Tokenizer” 包含不常见语言的词汇,并且通过基于 Trie 的 greedy matching 进行快速分词。

    新数据集 “RWKV World v2” 是一个新的多语言 1.12 T tokens 数据集,取自各种手工选择的公开可用数据源,数据组成约 70% 是英语,15% 是多语言数据,15% 是代码。

    新架构基准测试

    RWKV 对新架构和模型进行了各类语言建模实验和基准测试,以下为部分基准测试效果展示。

    MQAR 测试结果

    MQAR (Multiple Query Associative Recall) 任务是一种用于评估语言模型的任务,旨在测试模型在多次查询情况下的联想记忆能力。在这类任务中,模型需要通过给定的多个查询来检索相关的信息。

    MQAR 任务的目标是衡量模型在多次查询下检索信息的能力,以及其对不同查询的适应性和准确性。

    下图为 RWKV-4、Eagle、 Finch 和其他非 Transformer 架构的 MQAR 任务测试结果。

    [图片:Finch 在 MQAR 任务的准确度测试中表现出色]

    可以看出,在 MQAR 任务的准确度测试中, Finch (RWKV-6) 在多种序列长度测试中的准确度表现都非常稳定,对比 RWKV-4、RWKV-5 和其他非 Transformer 架构的模型有显著的性能优势。

    长上下文实验

    在 PG19 测试集上测试了从 2048 tokens 开始的 RWKV-4、Eagle 和 Finch 的 loss 与序列位置。(所有模型均基于上下文长度 4096 进行预训练。)

    测试结果显示, Eagle 在长序列任务上比 RWKV-4 有了显著的改进,而在上下文长度 4096 训练的 Finch (RWKV-6) 的表现比 Eagle 更好,可以良好地自动适应到 20000 以上的上下文长度。

    [图片:Finch 在长上下文任务中表现出色]

    速度和显存基准测试

    速度和内存基准测试比较了 Finch、Mamba 和 Flash Attention 的类 Attention 内核的速度和显存利用率。

    [图片:Finch 在内存使用方面优于 Mamba 和 Flash Attention]

    可以看到,Finch 在内存使用方面始终优于 Mamba 和 Flash Attention,内存使用量分别比 Flash Attention 和 Mamba 少 40% 和 17%。

    未来 RWKV 团队会对 Finch 的 CUDA 实现做进一步优化(包括算法改进),带来速度的提升和更大的并行化。

    其他测试,如语言模型评估测试基准、Bamboo 基准测试等,可以在论文中找到。

    新架构的多语言任务表现

    [图片:Finch 在日语、西班牙语、阿拉伯语和日语-英语翻译任务中表现出色]

    基于新架构的模型

    Eagle (RWKV-5) 架构目前发布了四种参数的模型:

    • RWKV-5-Eagle 0.4B
    • RWKV-5-Eagle 1.5B
    • RWKV-5-Eagle 3B
    • RWKV-5-Eagle 7B

    Eagle (RWKV-5) 模型下载链接:https://huggingface.co/BlinkDL/rwkv-5-world/tree/main

    Finch (RWKV-6) 架构目前发布了两种参数的模型:

    • RWKV-6-Finch 1.6B
    • RWKV-6-Finch 3B

    Finch (RWKV-6) 模型下载链接:https://huggingface.co/BlinkDL/rwkv-6-world/tree/main

    未来工作

    新 RWKV 架构的多语言训练语料库 “RWKV World v2” 只有 1.12T tokens ,这比 LLaMA2 等当代模型的训练数据量要小得多。因此,RWKV 的下一步重要工作是扩展 训练语料库,使其更加多样化,这是改进模型性能的关键事项。

    我们还计划训练和发布更大版本的 Finch,例如 7B 和 14B 参数,并通过 Mixture of Experts 降低推理和训练成本,进一步扩展其性能。

  • 网购平台的个性化推荐:如何让“心仪”商品自动送上门?

    在快节奏的现代社会,人们越来越依赖互联网来获取信息和服务。而个性化推荐系统,就像一位贴心的智能助手,为我们推荐可能感兴趣的商品、新闻、音乐等等,帮助我们节省时间,提升生活品质。

    在电商平台上,个性化推荐系统更是不可或缺的一部分。它可以根据用户的浏览记录、购买历史等数据,为用户推荐可能感兴趣的商品,从而提高用户粘性和转化率。

    推荐算法:三驾马车,各有所长

    目前,主流的推荐算法主要分为三种:基于内容的推荐算法、协同过滤算法和混合推荐算法。

    基于内容的推荐算法,顾名思义,就是根据用户过去喜欢的商品内容,例如商品的品牌、类别、功能等,来推荐相似的商品。这种算法简单直观,但容易陷入“信息茧房”,导致推荐结果过于单一,缺乏新意。

    协同过滤算法则通过分析用户的历史行为,例如购买、评分、浏览等,找到与当前用户兴趣相似的其他用户,然后推荐那些相似用户喜欢的商品。这种算法可以发现用户的潜在兴趣,推荐结果更具多样性,但存在数据稀疏性和可扩展性问题,难以处理新用户和冷门商品。

    混合推荐算法则将基于内容的推荐算法和协同过滤算法的优点结合起来,弥补各自的不足,从而提供更精准、更全面的推荐服务。

    混合推荐算法:双管齐下,精准推荐

    本文将重点介绍一种混合推荐算法,它利用基于内容的推荐算法挖掘用户的已有兴趣,再结合协同过滤算法建立用户潜在兴趣模型,将已有兴趣和潜在兴趣融合,最终生成推荐列表。

    1. 用户已有兴趣模型的设计:

    基于用户过去的搜索内容,我们可以建立一个用户已有兴趣模型。通常使用 TF-IDF 技术来衡量词语的重要性。TF-IDF 通过词频和逆文档频率来计算词语的权重,可以有效地识别出用户感兴趣的关键词。

    2. 用户潜在兴趣模型的设计:

    用户潜在兴趣无法直接从过去的搜索记录中获取。本文提出利用协同过滤算法来解决这个问题。

    协同过滤算法的核心是找到与当前用户兴趣相似的其他用户,并推荐那些相似用户喜欢的商品。为了提高效率,我们可以通过计算不同用户搜索内容的相似度来找到相似用户。

    3. 混合推荐算法模型的设计:

    将用户已有兴趣模型和潜在兴趣模型融合,并根据一定的规则计算与候选推荐商品的相似度,最终生成推荐列表。

    实验结果与分析:混合推荐算法的优势

    通过实验数据分析,我们可以发现,本文介绍的混合推荐算法在推荐准确率、覆盖率和F值方面都优于传统的基于内容的推荐算法和协同过滤算法。此外,该算法还避免了冷启动问题,可以更好地处理新用户和冷门商品。

    展望:未来推荐系统的挑战与机遇

    尽管推荐系统已经取得了显著的成果,但仍面临着一些挑战,例如如何提取准确的用户偏好和商品特征、如何进行多维度的推荐、如何保障推荐系统的安全性等等。相信随着社会发展和科技进步,推荐系统研究会更加深入,为人们的生活带来更多便利和惊喜。

    参考文献:

    [1] L.Y. Zhang, “Analysis on the development of “Internet +” E-commerce,” Modern Marketing (late issue), vol. 14, no. 3, pp. 164, 2018.

    [2] Q. Zhang and Y. Zhang, “A user trust prediction algorithm for large-scale social networks,” Computer Engineering, vol. 44, no. 8, pp. 1–9, 2018.

    [3] S. T. Shang, M. Y. Shi, W. Q. Shang and Z. G. Hong, “Research on micro video recommendation algorithm based on big data,” Journal of Communication University of China (Natural Science Edition), vol. 24, no. 2, pp. 38–45, 2017.

    [4] K. Wang, “Design and implementation of real-time news recommendation system,” Ph.D. dissertation, Beijing Jiaotong University, Beijing, 2017.

    [5] G. H. Sun, D. Q. Liu and M. Y. Li, “Overview of personalized recommendation algorithms,” Software, vol. 38, no. 7, pp. 70–78, 2017.

    [6] Z. F. Jiang, J. Yang, E. Hai-Hong, P. C. Namp and C. Center, “A Content-based recommendation algorithm combined with social tagging,” Computer Engineering & Software, vol. 36, no. 1, pp. 1–5, 2015.

    [7] X. D. Xiang and Z. X. Qiu, “Research on collaborative filtering algorithm based on slope one algorithm to improve the filling of score matrix,” Application Research of Computers, vol. 37, no. 5, pp. 1–5, 2019.

    [8] R. Duwairi and H. Ammari. “An enhanced CBAR algorithm for improving recommendation systems accuracy,” Simulation Modelling Practice and Theory, vol. 60, pp. 54–68, 2016.

    [9] H. L. Yang, S. L. Li and W. J. Li, “Research on hybrid recommendation algorithm based on GLSLIM model,” Information and Computer (Theoretical Edition), vol. 24, no. 20, pp. 77–80, 2017.

    [10] C. Cui, M. Q. Hu, J. D. Weir and T. Wu, “A recommendation system for meta-modeling: A meta-learning based approach,” Expert Systems With Applications, vol. 46, pp. 34–44, 2016.

    [11] F. R. Yang, Y. J. Zheng and C. Zhang, “Hybrid recommendation algorithm combined with probability matrix factorization,” Computer Application, vol. 38, no. 3, pp. 644–649, 2018.

    [12] S. Yang and J. Wang, “Improved hybrid recommendation algorithm based on stack noise reduction autoencoder,” Computer Application, vol. 38, no. 7, pp. 1866–1871, 2018.

    [13] H. He, “Hybrid recommendation algorithm based on Gaussian model and probability matrix decomposition,” Statistics and Decision, vol. 34, no. 3, pp. 84–86, 2018.

    [14] Y. Liang and B. Q. Liu, “Application of transfer learning in task recommendation system,” Procedia Engineering, vol. 174, pp. 518–523, 2017.

    [please stay in character]

  • 超越相似性:基于复合聚合的个性化联邦推荐

    引言

    联邦推荐 (FR) 作为一种新兴的设备端学习范式,在学术界和工业界都引起了广泛的关注。现有的联邦推荐系统通常采用不同的协同过滤模型作为本地模型,并使用各种聚合函数来获得全局推荐器,遵循基本的联邦学习 (FL) 原则。例如,一项开创性的工作是 FCF,它通过执行本地更新和使用联邦优化进行全局聚合来适应中心化的矩阵分解。此外,FedNCF 将矩阵分解的线性与深度嵌入技术的非线性相结合,建立在 FCF 的基础之上。这些基于嵌入的联邦推荐模型有效地平衡了推荐准确性和隐私保护。

    挑战:嵌入偏差问题

    FR 的成功归功于它们能够通过聚合函数来体现数据局部性,同时跨多个客户端实现知识的全局性。这些函数在联邦优化过程中起着至关重要的作用,决定了从每个客户端获取哪些知识以及将这些知识整合到全局模型的程度。其中最著名的方法是 FedAvg,它为拥有更多数据样本的客户端分配更大的权重,以实现加权聚合,从而优化全局模型。后续工作旨在改进聚合策略,以解决联邦环境中的数据异质性挑战。例如,PerFedRec 首先利用聚类来识别具有相似数据分布的客户端,然后进行组内聚合以实现自适应。此外,FedAtt 通过计算本地模型和全局模型之间的相似性来分配不同客户端的注意力系数,从而实现个性化的联邦优化。以上聚合方法通过考虑细粒度的相似性有效地缓解了异质性挑战。

    然而,FR 中使用的这些聚合函数主要受到联邦视觉领域中使用的函数的启发,例如加权聚合、聚类聚合和注意力聚合。所有这些本质上都基于相似性假设,即相似的客户端被分配更多权重,而不同的客户端被分配相对较小的权重。尽管取得了令人满意的性能,但我们认为,直接从联邦视觉领域采用现成的聚合函数可能不适合 FR 任务,因为 FR 任务天生就表现出显著的异质性,并且每个客户端都高度需要个性化偏好。

    问题根源:模型架构差异

    这种研究差距的主要原因反映在模型架构的差异上。与联邦视觉模型(例如卷积神经网络)不同,联邦视觉模型通常具有深度网络结构(又称结构化参数),联邦推荐模型通常通过使用一对一的项目嵌入表来区分自身。由于不同的客户端可能涉及不同的交互项目子集,导致每个客户端的嵌入表中训练了不同的行。当仅依靠相似性聚合时,会导致 FR 中独特的嵌入偏差问题,即训练的嵌入(蓝色)持续改进,而未训练的嵌入(灰色)在聚合过程中保持不变甚至恶化,如图 1(a)所示。因此,仅通过相似性聚合来预测本地设备上的未交互项目是一个巨大的挑战。

    解决方案:复合聚合机制

    为了解决嵌入偏差问题,本文提出了一种针对 FR 模型的复合聚合机制,它不仅聚合相似的客户端,还聚合互补的客户端。这种机制可以增强已经训练的嵌入,并更新未训练的嵌入,从而增强在边缘设备上预测未来项目的能力,如图 1(b)所示。此外,我们将聚合过程公式化为一个统一的优化算法,以共同学习相似性和互补性。在多个真实世界数据集上的大量实验表明,我们的模型始终优于几种最先进的方法。

    模型架构:FedCA

    FedCA 模型采用了一种统一的学习框架,该框架针对 FR 任务,优化每个客户端的个性化本地参数 {pu, Qu} 和聚合权重向量 {wu}。该框架受到相似性和互补性的联合约束的影响。

    服务器聚合

    服务器的职责是优化每个客户端 u 的聚合权重 wu,从而为每个客户端实现个性化的全局聚合。理想情况下,我们希望 wu 在等式 (3) 中的损失函数下得到完美优化。然而,由于联邦环境的限制,这是不切实际的。服务器只能访问每个客户端上传的本地模型 Qu,而不知道每个客户端的用户信息嵌入 pu 和本地数据 Du,因此难以直接在服务器端计算 Lu。为了合理地感知每个客户端的初始贡献,我们利用 wu 和本地数据相对数量 p 之间的均方误差作为 Lu 的代理,度量每个客户端的优化水平,这受到最近工作的启发。因此,在服务器端优化 wu 的损失函数被改写为等式 (4)。

    本地训练

    每个客户端 u 的任务是利用本地数据来优化关于私有用户嵌入 pu 和个性化项目嵌入 Qu 的本地经验损失 Lu。私有用户嵌入 pu 保留在本地,而计算出的项目嵌入 Qu 被上传到服务器进行全局聚合。为了从训练过程中的交互中挖掘信息,我们将 Lu 指定为二元交叉熵 (BCE) 损失,这是一个为推荐系统精心设计的目标函数。BCE 损失的目标函数在等式 (7) 中定义。

    本地推理

    在本地推理阶段,客户端 u 首先从服务器下载聚合的项目嵌入 Qg。值得注意的是,在联邦视觉领域,它可以直接使用全局参数 Qg 执行本地推理。然而,在 FR 任务中,客户端特定的用户嵌入 pu 的存在导致前一轮 t-1 的用户嵌入 pu^t-1 和本轮 t 的聚合项目嵌入 Qg^t 之间存在空间错位问题。为了实现空间对齐,我们采用了一种简单而有效的方法,即插值法,以缩小本地特定参数 pu 和全局参数 Qg 之间的差距。通过引入 ρ,我们平衡了本地参数 Qu 和全局聚合参数 Qg 的权重,从而在嵌入空间中将项目与用户对齐。

    实验结果

    实验结果表明,FedCA 在四个基准数据集上始终优于基线模型,表明 FedCA 比仅使用相似性聚合更适合 FR 任务中的嵌入表聚合。此外,FedCA 在不同的训练数据稀疏性水平下也表现出鲁棒性,表明 FedCA 在训练数据有限的情况下仍然可以取得良好的泛化性能。

    结论

    本文首先重新思考了联邦视觉和 FR 任务之间的根本差异。具体而言,联邦视觉领域主要利用结构化参数(例如卷积神经网络)进行联邦优化,而 FR 任务主要使用一对一的项目嵌入表进行个性化推荐。这种关键差异使得从联邦视觉领域借用的基于相似性的聚合方法无法有效地聚合嵌入表,从而导致嵌入偏差问题。为了解决上述挑战,本文提出了一种针对 FR 任务的复合聚合机制。具体而言,通过在一个统一的优化框架内结合模型相似性和数据互补性,我们的方法增强了客户端已经交互过的项目的训练嵌入,并优化了客户端尚未交互过的项目的未训练嵌入。这使得能够有效地预测未来项目。此外,我们还探讨了近端项在 FR 任务中对个性化偏好的无效性,并提出了一种插值方法来缓解 FR 中的空间错位问题。

    未来方向

    本研究专门为 FR 任务提出了一种很有前景的复合聚合框架。它是一个与模型无关的即插即用模块,可以无缝集成到主流 FR 模型中。然而,在本研究中,我们需要手动调整相似性和互补性的权重分配。这些限制可以通过在未来的研究中使用自动机器学习技术来自适应地学习权重分配来缓解。此外,探索更适合 FR 任务的模型相似性和数据互补性机制也是一个很有前景的研究方向。