标签: AGI

  • 玩转大型语言模型:从训练到构建有趣应用

    近年来,大型语言模型(LLM)在自然语言处理领域取得了突破性进展,为我们带来了前所未有的可能性。本文将带您深入了解LLM,从训练、评估到构建有趣应用,让您也能轻松玩转这些强大的工具。

    训练与评估大型语言模型

    训练大型语言模型是一个复杂的过程,需要大量的数据和计算资源。为了让模型更好地理解和生成文本,我们通常需要进行以下步骤:

    • 预训练: 在海量文本数据上训练模型,使其学习语言的语法和语义。
    • 微调: 使用特定任务的数据对模型进行微调,使其更适合特定应用场景。
    • 评估: 使用各种指标评估模型的性能,例如准确率、召回率、困惑度等。

    本项目中,您可以找到多种训练和评估LLM的方法,例如:

    • 使用QLORA对Baichuan-7B进行微调: QLORA是一种高效的微调方法,可以显著降低训练成本。
    • 使用Llama3-8b-Instruct进行多种方法的调戏: 包括transformers、vLLM和Llamacpp等,让您体验不同的LLM调用方式。
    • 使用DPO微调Chinese-Llama3-8b: 使模型更愿意说中文,提高中文语言能力。

    基于RAG、Agent、Chain构建有趣应用

    除了训练和评估LLM,我们还可以利用它们构建各种有趣的应用。本项目提供了以下几种方法:

    • 检索增强生成(RAG): 将LLM与外部知识库结合,利用知识库中的信息来生成更准确、更丰富的文本。
    • Agent: 将LLM与其他工具结合,例如搜索引擎、数据库等,使其能够执行更复杂的任务。
    • Chain: 将多个LLM或工具链接在一起,形成一个完整的流程,完成更复杂的任务。

    以下是一些有趣的LLM应用案例:

    • Mistral 8x7b ReAct: 利用ReAct框架,让LLM能够根据上下文进行推理和行动,例如调用工具、查询数据库等。
    • Llama3-8b ReAct: 使用Llama3-8b模型,实现纯中文的ReAct框架,并提供工具调用功能。

    深入LLMs:预训练、微调、RLHF和更多

    除了上述内容,本项目还涵盖了更深入的LLM知识,例如:

    • 预训练: 了解LLM的预训练过程,包括数据准备、模型架构、训练方法等。
    • 微调: 学习如何使用不同方法对LLM进行微调,使其更适合特定任务。
    • 强化学习与人类反馈(RLHF): 了解如何使用RLHF来提高LLM的对话能力和安全性。

    总结

    本项目为我们提供了一个学习和探索LLM的宝贵资源,从基础知识到应用案例,涵盖了LLM的方方面面。通过学习和实践,您可以掌握LLM的强大能力,并将其应用于各种领域,创造更多有趣的应用。

    参考文献

  • 深度知识感知网络:新闻推荐的新纪元

    深度知识感知网络:新闻推荐的新纪元

    近年来,新闻推荐领域蓬勃发展,各种深度学习模型层出不穷。然而,传统的推荐系统往往只关注用户历史行为,忽略了新闻内容本身的语义信息和知识关联。为了解决这个问题,深度知识感知网络 (DKN) 应运而生,它将知识图谱融入到深度学习框架中,为新闻推荐带来了新的突破。

    DKN:将知识图谱与深度学习完美结合

    DKN 是一种深度学习模型,它利用知识图谱来增强新闻推荐的准确性。具体来说,DKN 使用 TransX 方法来学习知识图谱的表示,然后应用一个名为 KCNN 的卷积神经网络框架,将实体嵌入与词嵌入结合起来,生成新闻文章的最终嵌入向量。最后,通过一个基于注意力的神经评分器来预测点击率 (CTR)。

    DKN 的独特优势

    与传统的基于 ID 的协同过滤方法不同,DKN 是一种基于内容的深度模型,它能够更深入地理解新闻内容。通过联合学习新闻文章的语义级和知识级表示,DKN 能够充分利用新闻内容中的知识实体和常识。此外,DKN 还使用了一个注意力模块,能够动态计算用户的历史行为的聚合表示,从而更好地捕捉用户的兴趣偏好。

    DKN 数据格式

    DKN 需要以下几个文件作为输入:

    • 训练/验证/测试文件: 每一行代表一个样本。印象 ID 用于评估印象会话内的性能,因此只在评估时使用,训练数据可以设置为 0。格式为:<label> <userid> <CandidateNews>%<impressionid>,例如:1 train_U1 N1%0
    • 用户历史文件: 每一行代表一个用户的点击历史。需要在配置文件中设置 his_size 参数,它代表我们使用的用户点击历史的最大数量。如果用户的点击历史超过 his_size,我们将自动保留最后 his_size 个点击历史,如果用户的点击历史少于 his_size,我们将自动用 0 进行填充。格式为:<Userid> <newsid1,newsid2...>,例如:train_U1 N1,N2
    • 文档特征文件: 该文件包含新闻的词语和实体特征。新闻文章由(对齐的)标题词和标题实体表示。例如,一个新闻标题可能是:特朗普将在下周发表国情咨文,那么标题词值可能是:CandidateNews:34,45,334,23,12,987,3456,111,456,432,标题实体值可能是:entity:45,0,0,0,0,0,0,0,0,0。由于 “特朗普” 这个词,只有实体向量的第一个值是非零的。标题值和实体值是从 1 到 n(n 是不同词语或实体的数量)进行哈希的。每个特征长度应该固定为 k(doc_size 参数),如果文档中的词语数量超过 k,则应该截断文档到 k 个词语,如果文档中的词语数量少于 k,则应该在末尾填充 0。格式为:<Newsid> <w1,w2,w3...wk> <e1,e2,e3...ek>
    • 词嵌入/实体嵌入/上下文嵌入文件: 这些是预训练嵌入的 npy 文件。加载后,每个文件都是一个 [n+1,k] 的二维矩阵,n 是其哈希字典中的词语(或实体)数量,k 是嵌入的维度,注意我们保留嵌入 0 用于零填充。在本实验中,我们使用 GloVe 向量来初始化词嵌入。我们使用 TransE 在知识图谱上训练实体嵌入,上下文嵌入是知识图谱中实体邻居的平均值。

    DKN 模型训练与评估

    首先,我们需要创建超参数,并使用 DKNTextIterator 类来创建输入数据。然后,我们可以使用 DKN 类来创建模型并进行训练。训练完成后,我们可以使用 run_eval 方法来评估模型在验证集上的性能。

    epoch=5
    hparams = prepare_hparams(yaml_file,
                              news_feature_file = news_feature_file,
                              user_history_file = user_history_file,
                              wordEmb_file=wordEmb_file,
                              entityEmb_file=entityEmb_file,
                              contextEmb_file=contextEmb_file,
                              epochs=epoch,
                              is_clip_norm=True,
                              max_grad_norm=0.5,
                              history_size=20,
                              MODEL_DIR=os.path.join(data_path, 'save_models'),
                              learning_rate=0.001,
                              embed_l2=0.0,
                              layer_l2=0.0,
                              use_entity=True,
                              use_context=True
                             )
    print(hparams.values())
    
    input_creator = DKNTextIterator
    
    model = DKN(hparams, input_creator)
    
    model.fit(train_file, valid_file)
    
    print(model.run_eval(test_file))

    DKN 性能对比

    以下表格展示了 DKN 与其他模型在新闻推荐任务上的性能对比:

    模型Group-AUCMRRNDCG@2NDCG@4
    DKN0.95570.89930.89510.9123
    DKN(-)0.95060.88170.87580.8982
    LightGCN0.86080.56050.49750.5792

    结果表明,DKN 在所有指标上都显著优于其他模型,证明了知识图谱在新闻推荐中的重要作用。

    总结

    DKN 是一种强大的深度学习模型,它将知识图谱与深度学习框架完美结合,为新闻推荐带来了新的突破。它能够更深入地理解新闻内容,并有效地捕捉用户的兴趣偏好,从而提高新闻推荐的准确性和效率。

    参考文献

    [1] Wang, Hongwei, et al. “DKN: Deep Knowledge-Aware Network for News Recommendation.” Proceedings of the 2018 World Wide Web Conference on World Wide Web. International World Wide Web Conferences Steering Committee, 2018.

人生梦想 - 关注前沿的计算机技术 acejoy.com 🐾 步子哥の博客 🐾 背多分论坛 🐾 借一步网
Page Stats: PV: 2261 | UV: 1222
Last updated: 2025-06-24 15:10:26
沪ICP备2024052574号-1