智慧图书馆大模型开发步骤和主要工作有哪些?

智慧图书馆大模型开发步骤和主要工作有哪些?

最佳答案 匿名用户编辑于2023/10/31 15:52

图书馆领域大语言模型的开发步骤和主要工作可能包括以下几个阶段:

1、模型选型

(1)大语言模型技术比较

近年来主要的大语言模型的模型大小、模型微调、性能测评、预训练数据规模、硬件资源成本、训练时间等信息。

(2)大语言模型选型思路

对于图书馆领域的大语言模型,不同的图书馆基于不同的用户群体和资源规模等可能有不同的需求,想要选出适合图书馆领域的最佳模型,需要从多个角度进行评估和对比。从技术角度来看,首先,大语言模型的数据处理能力是一个关键的考虑因素。一个好的图书馆模型应该能够灵活地存储、展示和处理文本和多媒体资源,帮助用户从大量文献中提炼整理出能帮助到用户的知识。用户感兴趣的文献资源可能是用户关心的某个专业领域的学术论文也可能是关于某个新闻事件的相关报导等,需要根据不同的数据类型使用领域自适应、本地知识库辅助的方法来定制一个垂直领域的大模型。从用户体验来看,系统的用户界面和易用性也非常重要,需要提供友好的操作体验和多用户高并发的支持。此外,图书馆专业咨询领域的模型需要具有较好的平衡性,即平衡大语言模型的事实性和创造性,不能造成用户的事实性误导,必要时可以引入搜索引擎的结果。从成本角度来看,要选择一个适合图书馆的模型还需考虑实施时间和费用方面。对于许多图书馆,选择一款开源的模型,并进行一定的领域自适应、指令微调、对接本地知识库等个性化改良可能是一个可行的策略。

具体而言,模型选型主要有以下考虑因素:1) 功能:包括多轮对话的能力、生成高质量文本的能力、可能的多模态能力,逻辑推理能力以及足够广泛的通用知识基础,比较好的泛化能力等功能,将是模型的应用和定制的关键要素; 2) 性能:需考虑模型的推理速度,以及开源模型在同等硬件条件下的微调效率,收敛效率等性能指标;3) 许可证:指的是针对开源模型的许可证类型,比如是宽松自由软件许可协议,还是著作权许可证;他人修改源码后,是否要求还是开源,等等的考虑。许可证类型将影响到行业大模型的深度研发和商用的模式;

4) 安全/伦理考量和可解释性:安全/伦理考量指模型在受到攻击和恶意输入时是否能保持数据和应用安全稳定,并维持预定的道德伦理标准;可解释性是指模型能对其输出结果提供可预测,可逻辑推演,可归因的结果;5) 工具链支持:基于基础大模型定制行业模型,或开发AI 应用,都会涉及到诸多工程化的问题,比如数据整理、数据标注、各种微调和插件支持、工作流集成、模型部署等等,工具链完备程度将对模型的定制和开发效率具有巨大影响;6) (技术和产业)生态系统:生态系统会对模型与其他系统和服务的集成、协作产生巨大的推动作用。广泛健康的生态合作系统提供并支持标准化接口和协议,使得生态合作方可以方便快捷低成本地交互和合作,形成良性规模效益。

图书馆大模型涉及各类信息查询、数据编目、知识摘要、内容索引、情报分析、咨询交互等事务,其选型需要结合自身业务特点,综合加权考虑上述要素:比如在学术研究、情报分析等方面如果涉及敏感数据较多,则在安全和可解释性上需要加以更多关注;如果考虑未来进行大规模业务定制、延伸和拓展,对是否开源/许可证类型的选择就需要非常谨慎;如在线用户的并发数较多,对体验要求也比较高,则需要重点分析模型的性能和功能。(调用接口、大模型调优这些不同方式的安全性考虑)

2、模型调优

(1)模型调优的技术路线和主要的调优方法

从参数规模的角度,大模型的微调分成两条技术路线:其一是对全量的参数进行调优的训练,被称作全量微调FFT(Full Fine Tuning)。FFT 最大的优点就是特定数据领域的训练效果较好。但 FFT 也会带来一些问题,主要有两个:一是训练的成本比较高,算力需求较大,往往一块 GPU 是不够用的,比如微调Llama2 7B 就 需 要 更 多 显 存 ; 二 是灾难性遗忘(CatastrophicForgetting),用特定领域的训练数据去微调可能会使模型在这个领域的表现变好,但也可能会把原来表现好的其他领域的能力变差。

其二是只对部分参数进行调优的训练,被称作轻量化微调PEFT(Parameter-Efficient Fine Tuning)。这种微调策略的优点是:微调的代价低,降低计算成本,缩短训练时间;降低训练的硬件要求,较小显存的 GPU 和内存上也可以完成训练任务;部署的代价低,可以重复利用已经部署的大模型,不需要重复训练和部署多个模型;防止灾难性遗忘,使得大模型不至于因为学习了新任务而丧失了对先前已经训练好的任务的处理能力。因此,PEFT 是目前比较主流的微调方案。

下面按照以上两种技术路线梳理常见的模型微调方法,具体如下:

1)全量微调路线

a) Supervised fine-tuning 有监督微调

Supervised fine-tuning 是一种将预训练的语言模型适应于特定任务或领域的训练技术。其基本思想是采用已经在大量文本上进行训练的预训练语言模型,然后在小规模的任务特定文本上继续训练。在这个过程中,预训练模型的权重被更新,以更好地适应任务。所需的 fine-tuning 量取决于预训练语料库和任务特定语料库之间的相似性。如果两者相似,可能只需要少量的fine-tuning。如果两者不相似,则可能需要更多的 fine-tuning。在NLP 中,Supervisedfine-tuning 最著名的例子之一是由 OpenAI 开发的GPT 模型。GPT模型在大量文本上进行了预训练,然后在各种任务上进行了微调,例如语言建模,问答和摘要。经过微调的模型在这些任务上取得了最先进的性能。

有监督微调能够利用预训练模型的参数和结构,避免从头开始训练模型,从而加速模型的训练过程,并且能够提高模型在目标任务上的表现。有监督微调在计算机视觉、自然语言处理等领域中得到了广泛应用。然而有监督微调也存在一些缺点。首先,需要大量的标注数据用于目标任务的微调,如果标注数据不足,可能会导致微调后的模型表现不佳。其次,由于预训练模型的参数和结构对微调后的模型性能有很大影响,因此选择合适的预训练模型也很重要。

b) instruction tuning 指令调优

指令调优是用自然语言形式的格式化实例集合微调预训练大语言模型的方法。指令通常是一种更详细的文本,用于指导模型执行特定操作或完成任务。指令可以是计算机程序或脚本,也可以是人类编写的指导性文本,目的是告诉模型如何处理数据或执行某个操作,而不是简单地提供上下文或任务相关信息。指令调优需要收集或构建指令格式的实例,然后以监督学习方式微调预训练大语言模型。在微调后,大语言模型可以展示出卓越的能力,泛化出能解决未见任务的能力。

2)PEFT 轻量化微调路线

a) Prefix-tuning

Prefix-tuning 是一种自监督学习方法,通过预测句子前缀的方式进行训练。该方法在生成文本任务中表现出色,它通过针对不同任务设计的前缀生成任务和损失函数来学习表示。Prefix-tuning在输入 token 之前构造一段任务相关的 virtual tokens 作为Prefix,然后在接入下游任务进行训练时,预训练语言模型中的其他部分参数固定,只更新 Prefix 部分的参数。 这种微调方式的优点是:通过添加特定的前缀来微调模型,不需要修改底层权重或重新训练,减少了计算资源的使用;可以根据任务要求定义不同的前缀,实现对不同任务的个性化微调。缺点是:对于不同的任务,需要手动设计合适的前缀;前缀的长度和内容可能会影响性能,需要进行调整和实验。

b) Prompt-tuning

Prompt-tuning 是一种学习文本生成模型的指导性提示的方法。通过设计和优化生成任务的提示,可以引导生成模型生成更准确和合理的输出。Prompt-tuning 在生成式对话系统和其他文本生成任务中有广泛的应用。Prompt-tuning 将 prompt 扩展到连续空间,仅在输入层添加 prompt 连续向量,通过反向传播更新参数来学习prompts,而不是人工设计 prompts。Prompt-tuning 冻结模型原始权重,只训练 prompts 参数,训练完成后,只用同一个模型可以做多任务推理。Prompt-tuning 使用 LSTM 建模prompt 向量间关联性。这种训练方式的优点是:通过在输入中添加特定的提示(prompt),可以将模型引导到所需的输出;可以根据任务需要,设计不同的提示来实现个性化微调。其缺点是:提示的设计和选择可能需要一些经验和尝试;提示的效果可能受限于特定的任务和数据集;不太好训练,省了显存但不一定省时间;多个prompt token之间相互独立,可能会影响效果。

c) LoRA

LoRA 是一种轻量级的自监督学习方法,旨在通过对原始数据进行特征提取来学习有用的表示。它不需要标注数据,而是通过设计不同的任务和损失函数来生成伪标签,并使用这些伪标签进行训练,从而学习到适用于多个任务的通用表示。LoRA 的基本原理是冻结预训练好的模型权重参数,在冻结原模型参数的情况下,通过往模型中加入额外的网络层,并只训练这些新增的网络层参数。这种训练方式的优点是:具备迁移学习和多任务学习的能力,可以共享底层表示并在不同任务之间进行迁移;新增参数数量较少,减少了对整个模型的重新训练的开销,微调成本显著下降,可以获得和全量微调类似的效果。其缺点是:LoRA 中参与训练的参数量较少,解空间较小,效果相比全量微调有一定的差距;对于上百亿参数量的模型,LoRA 微调的成本还是较高。

d) Adapter

Adapter 是一种轻量级的模型扩展方法,它在现有预训练模型的中间层添加额外的适配器层,用于特定任务的学习。适配器层只学习与特定任务相关的参数,其他层保持不变,从而减少了模型参数量和计算成本。 这种训练方式的优点是:实现简单,只需在原预训练模型的特定位置添加额外的适配器层;可以在不同任务之间共享底层表示,减少参数训练数量,降低计算资源的使用;支持快速微调,可以快速将预训练模型应用于新任务。其缺点是:适配器仍然需要微调,可能需要更多的数据和计算资源来达到较好的性能;适配器的设计可能需要一定的经验和调整,以获得最佳的性能。

此外,模型在经过微调后一般需要进行对齐调优,以增强模型对于人类价值观或偏好的对齐,主流技术是基于人类反馈的强化学习(Reinforcement Learning with Human Feedback)。

人类反馈强化学习是一种结合了强化学习和人机交互(HCI)的方法,通过接收来自人类用户或专家的反馈来调整自己的行为。这种方法减轻了传统强化学习中需要大量试错的问题,使得大语言模型更加高效、快速地学习任务。在 RLHF 中,通过让人类对不同的模型输出进行排序或评分来收集人类反馈,从而提供奖励信号(reward signal)。收集到的奖励标签(reward labels)可以用来训练奖励模型(reward model),进而反过来指导LLM(LanguageModel)适应人类的喜好。这一方法被 ChatGPT 使用而得到大力推广。RLHF 的特点在于它能够直接利用人类反馈来指导智能系统的学习过程。这种方法不仅能够提高大语言模型的学习效率,还能够使大语言模型更好地理解人类用户的需求和偏好,从而更好地完成特定任务。

另外,由于大语言模型有大量的模型参数,需要占用大量的内存来进行推理,使得实际中部署大语言模型的成本非常高,模型压缩技术因此成为一种重要的调优方式以减少内存占用和推理延迟,使得大模型可以在资源有限的环境中使用。

模型量化是一种常见的模型压缩方法,将浮点数参数和激活值映射为整数,从而减小模型的内存占用。模型量化的优点是可以减小模型的内存占用和推理延迟,使得大型语言模型可以在资源有限的环境中使用。然而,模型量化也存在一些缺点,如量化误差可能导致模型性能下降,特别是对激活值的量化更加困难。模型量化主要有两种方法:量化感知训练(QAT)和后训练量化(PTQ)。QAT方法需要重新训练整个模型,而 PTQ 方法则无需重新训练。对于LLMs来说,由于参数数量巨大,PTQ 方法更受青睐,因为它的计算成本较低。

(2)图书馆领域大语言模型微调的训练方案

图书馆大语言模型通常是基于开源的预训练语言模型结合指令、专业数据集等进行微调、调优,可采用LoRA、prompt-tuning、prefix-tuning 等微调方法进行轻量化微调,以降低训练工作量,在最大限度保留预训练语言模型原有能力的同时提高模型在图书馆业务领域的性能表现。 图书馆大语言模型微调需要根据不同的应用场景、不同的调优方法准备对应的数据集,用于图书馆大语言模型微调训练的数据来源可能包括读者问答、书目数据、值班文档、法规文件等数据资源。同样根据不同的微调方法,在训练数据的预处理方面会有不同的格式和要求,训练数据的预处理过程可能包括数据汇聚、质量清洗和过滤、重复数据删除、减少隐私、标记处理、准备预训练。

3、模型评估

大语言模型(LLMs)的性能评估是评估其能力和效果的重要方面。下面从评估方法、评估标准和测试任务三个角度对大语言模型的性能评估进行介绍。

(1)评估方法

针对大语言模型的性能评估,主要包括定量评估和定性评估的评估方法。定量评估主要通过计算各种指标来衡量模型的性能,如准确率、困惑度、BLEU 分数等。这些指标可以用于评估模型在语言建模、条件文本生成、代码合成等任务上的性能。定性评估则通过人工分析和判断模型生成的文本的质量、流畅度、一致性等方面来评估模型的性能。

(2)评估标准

大语言模型的性能评估需要制定相应的评估标准。根据不同的任务和应用场景,评估标准有所不同。例如,在语言建模任务中,常用的评估标准是困惑度,即模型对给定上下文的下一个词的预测的准确性。在条件文本生成任务中,可以使用BLEU 分数来评估生成文本与参考文本之间的相似度。此外,还可以根据任务的特点制定相应的评估标准,如在代码合成任务中,可以使用代码的正确性和可读性来评估模型的性能。

根据图书馆大语言模型的应用场景,需要根据具体任务和应用场景,选择合适的评估指标来衡量模型的性能。例如,在文献服务中,可以使用准确率、召回率和 F1 分数来评估模型对用户查询的回答的准确性和完整性。在读者咨询中,可以使用用户满意度调查或人工评估来评估模型生成的回答的质量和可理解性。

(3)测试任务和测试数据集

为了评估大语言模型的性能,需要使用合适的测试集。测试集应具有代表性,能够涵盖模型在不同领域和不同难度下的表现。常用的测试集包括 Penn Treebank、WikiText-103 等。此外,还可以设计特定的测试任务来评估模型在特定能力上的表现,如语言理解、文本生成、推理等。这些测试任务可以涵盖不同的领域和难度级别,以全面评估模型的性能。根据图书馆大语言模型的应用场景,可以选择包含图书馆领域相关文本的数据集作为测试集数据。这些数据可以包括图书馆目录、文献摘要、读者咨询记录等,并确保数据集的多样性和代表性,涵盖不同主题、不同文体和不同难度级别的文本。 

4、模型部署

(1)主要的部署方式

1)公有云

公有云由第三方服务提供商通过互联网向用户提供虚拟机(VM)、开发平台或软件应用等多元化服务。这些服务可能免费提供,也可能会根据基于订阅或按使用量付费的定价模式收取费用。公有云提供商拥有并管理客户用于运行工作负载的数据中心,负责维护所有硬件和基础架构,并提供高带宽网络连接,确保可以快速访问应用和数据。公有云架构是多租户环境,用户共享虚拟资源池,多租户的工作负载可同时运行在共享的物理服务器上,而每个云租户的数据在逻辑上都与其他租户的数据相隔离。

2)私有云

私有云是专为某家企业运营的云基础架构。通常,私有云托管在本地,位于客户自己的防火墙内,但也可以托管在专用云提供商,此种情况下,客户对基础设施具有专属的单独访问权限。私有云能够提升数据安全性和合规性,避免与其他云客户共享资源可能带来的性能和安全影响。

3)混合云

混合云融合私有云和公有云,使用技术和管理工具,让企业根据需要在两者之间无缝迁移工作负载,进而实现最佳性能、安全性、合规性和成本效益。借助混合云,企业可将无法轻松上云的敏感数据和原有任务关键型应用保存在本地,同时利用公有云部署SaaS应用,利用 PaaS 快速部署新应用,以及利用IaaS 按需提供额外的存储或计算容量。大多数企业云采用者都选择混合云架构,这便于他们灵活地为每个工作负载选择最佳云环境(公有云或私有云),或者随着需求的变化在不同云之间迁移工作负载。

5、模型使用

图书馆大语言模型在使用过程中,可以应用上下文学习、思维链等提示策略,帮助模型更准确地理解任务要求和上下文信息,以指导模型生成符合要求的输出,遵循特定的规则和逻辑,充分激发大语言模型的语义理解、内容生成、推理等能力,并使其更好适应图书馆业务领域的任务要求和场景需求,提高图书馆大语言模型在特定任务上的性能。同时,也可使用嵌入向量知识库等方式在不改变模型参数的情况下实现专业数据、知识的存储和记忆,提高大模型的事实回忆能力,并获得更加精准、可信的检索查询和回答效果。

(1)基于上下文学习的提示词

ICL 是一种利用大语言模型的特殊提示形式,通过提供任务描述和示例演示来引导模型识别和执行新任务。通过这些提示,模型可以在没有参数更新的情况下,根据演示的示例来识别和执行新任务。使用上下文学习提示,需要从任务数据集中选择几个示例作为演示,并与任务描述一起组合成特定顺序的自然语言提示。然后,将测试实例(自然语言提示)作为输入附加到演示中,作为模型生成输出的输入。通过任务演示,模型可以识别和执行新任务,而无需显式的梯度更新。另外,对于提示词的生成,可以使用预定义的模板将输入-输出对转化为自然语言提示,也可使用零样本提示“Let’sthink step by step”来生成中间推理步骤,或者通过问题分解和顺序求解子问题来生成提示词。

(2)思维链提示

思维链提示是一种改进的提示策略,通过在提示中包含中间推理步骤,使模型能够逐步推理和生成结果,提高大语言模型在复杂推理任务上的性能。与传统的提示策略不同,CoT Prompting在提示中引入了推理路径,使模型能够进行多步推理,从而更好地解决复杂任务。这种提示策略在解决算术推理、常识推理和符号推理等复杂推理任务上表现出色。构建思维链提示词需要选择合适的中间推理步骤来引导模型进行逐步推理,需包含任务描述、输入数据、上下文信息和提示风格等关键要素,同时也可使用标记(如引号和换行符)来突出重要部分,或分隔任务描述和上下文信息,帮助模型更好地理解和执行任务。 

(3)向量知识库 embedding

一般来说,大语言模型学习知识的方式主要有两种:一是通过模型微调训练调整模型参数;二是通过嵌入向量知识库。在模型微调训练成本较高、难度较大的情况下,嵌入向量知识库也不失为一种给大语言模型灌输知识并获得较好的检索问答效果的不错的选择。大语言模型嵌入向量知识库即为用户利用向量知识库管理自有知识资产并结合大模型构建垂直领域的智能服务。向量数据库存储和处理向量数据,提供高效的相似度搜索和检索功能,通过向量嵌入,将用户知识库文档和数据转化为向量表示,并与大模型交互,实现专有的、面向垂直行业的智能化应用。一种基于大语言模型和向量知识库构建的典型应用案例是 GPT4 PDF Chatbot Langchain 项目,其原理是 GPT4 PDF Chatbot Langchain 项目的底层逻辑是将用户提供的各种 PDF 文档转化成文本文件并将其融合分解,通过智能化技术将其向量化到向量数据库中,用户使用对话模型和ChatGPT发起对话,ChatGPT 根据提示语,找到最相关的文档并通过GPT生成与需求最匹配的答案。

大语言模型嵌入向量知识库主要包括三个步骤:向量化、提问和回答。

1) 构建向量知识库:使用嵌入模型为想要索引的内容创建向量首先,收集目标索引的内容,可能包括书籍、文章、网站、图片等信息,例如 pdf、txt、md、docx 等格式的文本。其次,将收集到的内容进行切块处理,将原始数据分解成可以独立处理的小块。文本拆分有不同的方式,可根据规则进行拆分,即根据中文文章的常见终止符号进行文本分割,如单字符断句符、中英文省略号、双引号等,或者根据语义进行分割,将文本拆分为语义不同的小块(通常是句子)。通常,由于语义的不确定性,使用规则分割方式可能会取得更好的效果,文本分句长度为800。接下来,使用嵌入模型为每部分内容获得向量结果。嵌入模型是一种能够将高维数据映射到低维空间的技术,使得数据可以在计算机上进行处理。例如,可以使用 Word2Vec 模型将每个单词转化为一个向量。常见的向量化模 型 有 OpenAIEmbedding 、 text2vec-base-chinese 、instructorlarge。最后,存储向量数据形成向量数据库,这个数据库可以用于各种应用,如搜索引擎、推荐系统等。

2) 用户提问及向量化:用户进行提问并对提问进行向量化处理首先,用户通过用户界面或命令行输入提出问题,用户可以自由地提出任何与向量知识库相关的问题。接下来,使用嵌入模型对问题进行向量化处理,将用户问题转换为向量形式,以便计算机能够更好地理解和处理,用户提问的向量可以与向量知识库的特征向量进行比较和匹配,从而提供更准确的答案或相关信息。3) 检索向量并回答:在向量数据库中检索相似向量,返回回答首先,在向量数据库中检索相似向量,通过计算向量之间的相似度,例如余弦相似度、欧氏距离等,找出与用户提问向量最相似的向量。之后,根据向量数据库将相似向量转换成文本或内容,这个过程可能会用到词嵌入、文本生成等自然语言处理技术,转换后的文本或内容可以更直观地表达含义。最后,将转换后的文本或内容发送给大模型,大模型根据接收到的信息进行语言组织和处理,然后生成回答。

参考报告REPORT

智慧图书馆大模型创新与应用白皮书.pdf

该文档为《智慧图书馆大模型创新与应用白皮书》,主要探讨人工智能大模型技术在图书馆领域的创新应用与落地实践。白皮书深入分析了生成式AI、自然语言处理等前沿技术如何赋能智慧图书馆建设,涵盖智能检索、个性化推荐、知识图谱构建及自动化服务等核心场景。通过解析大模型在提升图书馆服务效率、优化用户体验及挖掘数据价值方面的关键作用,揭示了技术变革对传统图书馆业态的重塑路径。文档旨在为图书馆管理者、技术人员及相关行业从业者提供关于大模型应用趋势、技术架构及未来发展的深度洞察与参考指南,推动图书馆行业的数字化与智能化转型。

其他答案
匿名用户编辑于2023/10/31 15:48

1) 模型选型:根据图书馆领域的需求和数据特点,选择合适的大语言模型。常见的大语言模型有BERT、GPT、XLNet 等。2) 模型调优:根据图书馆领域的数据,对选定的大语言模型进行调优,以提高模型在图书馆领域的表现。3) 效果评估:对调优后的大语言模型进行模型效果评估,以确定模型是否达到预期效果。 4) 模型部署:将调优后的大语言模型部署到云计算环境中,以便在实际应用中使用。 5) 模型使用:在图书馆大模型使用过程中通过上下文提示、思维链提示,以及向量知识库嵌入等方式激发模型性能、提升模型使用效果,为用户提供更好的服务。

我来回答
分享至