镇江个人网站建设,怎样架设网站,制作企业宣传片拍摄公司,深圳网站导航NLP 相关知识 NLPLLMPrompt ChainingLangChain NLP
NLP#xff08;Natuarl Language Processing#xff09;是人工智能的一个分支#xff0c;中文名自然语言处理#xff0c;专注于处理和理解人类使用的自然语言。它涵盖了多个子领域#xff0c;如文本分类、情感分析、机器… NLP 相关知识 NLPLLMPrompt ChainingLangChain NLP
NLPNatuarl Language Processing是人工智能的一个分支中文名自然语言处理专注于处理和理解人类使用的自然语言。它涵盖了多个子领域如文本分类、情感分析、机器翻译、问答系统、语音识别、语义解析等
NLP 的常见技术范式如下
全监督学习非神经网络仅在目标任务的输入输出样本数据集上训练特定任务模型
全监督学习神经网络使用特征学习与模型训练相结合通过网络架构学习数据特征
全监督学习Fully Supervised Learning是机器学习中的一种基本学习范式其中每个训练样本都带有完整的标签信息。在全监督学习中算法的目标是从给定的输入数据特征和对应的正确输出标签中学习一个函数或模型使得该模型能够在新的未知数据上准确预测标签
第三种技术范式诗预训练Pretraining预训练是机器学习特别是深度学习中的一种重要技术特别是在自然语言处理NLP领域。预训练是指在大规模未标注数据集上先进行学习然后将学到的知识转移到特定任务的微调阶段。这个过程通常分为两个阶段
预训练阶段 在这个阶段模型如 Transformer 架构的 BERT、GPT 或 T5 等会在一个非常大的文本数据集上进行训练这个数据集通常是互联网抓取的网页、书籍、新闻等。模型的目标是学习语言的一般规律和模式而不是针对特定任务。这个过程通常使用无监督学习任务如自动生成下一个单词自回归预训练或填充被遮蔽的单词掩码语言模型预训练。大模型的本质是基于大样本训练出的预测模型。模型基于给它输入的语料根据概率预测可能的回答。模型的预测结果受语料限制微调阶段 预训练完成后模型已经具备了一定的语言理解能力。在微调阶段模型会针对特定的下游任务如文本分类、问答系统、机器翻译等进行进一步的训练这个阶段叫 Fine-tuning。这时我们会用到带有标签的小型数据集调整模型的参数以优化特定任务的性能。具体来说是通过人类的反馈来约束模型从而让模型回答出人类满意的答案。当预测模型执行某个任务时人类可以提供正面或负面的反馈手动去选择对错以指导模型的行为
预训练的好处在于它允许模型在大量数据上学习通用的语言表示这些表示可以捕捉到语言的丰富结构和语义信息。这样在微调时模型只需要少量的标记数据就能达到较好的性能尤其对于那些标记数据稀缺的任务来说预训练极大地提高了效率和效果
LLM
LLM 是近年来随着深度学习发展而出现的一种特定类型的 NLP 模型。这些模型非常大拥有数亿甚至数千亿个参数
LLM通过训练大规模的文本数据集如互联网上的网页、书籍、文章等来学习语言模式和结构。著名的 LLM 包括 Google 的 BERT、Facebook 的 RoBERTa、OpenAI 的 GPT 系列以及阿里云的 Qwen 等
这些模型能够执行多种 NLP 任务如回答问题、生成文本、翻译等并且由于其规模和复杂性它们在许多任务上表现出优秀的性能
Prompt Chaining
链允许我们将多个组件组合在一起以创建一个单一的、连贯的任务。例如我们可以创建一个链它接受用户输入使用 PromptTemplate 对其进行格式化然后将格式化的响应传递给 LLM。另外我们也可以通过将多个链组合在一起或者将链与其他组件组合来构建更复杂的链
熟悉 openai 的都知道,openai 提供的聊天接口 api本身是不具备“记忆的”能力。如果想要使聊天具有记忆功能则需要我们自行维护聊天记录即每次把聊天记录发给 gpt 发送的内容也越来越多那很可能就碰到 token 的限制。聪明的同学会发现其实我们只保留最近几次的聊天记录就可以了这确实是一种解法但是不够完美
Prompt Chaining 确实涉及到使用对话历史来指导模型生成连贯的响应但它不仅仅是简单地将用户和模型之间的完整对话历史拼接在一起并一次性发送给模型。在实际应用中Prompt Chaining 通常更加复杂和精细
LangChain
LangChain 作为一个大语言模型开发框架是 LLM 应用架构的重要一环。那什么是 LLM 应用架构呢其实就是指基于语言模型的应用程序设计和开发的架构
LangChian 可以将 LLM 模型、向量数据库、交互层 Prompt、外部知识、外部工具整合到一起进而可以自由构建 LLM 应用
LangChain 为使用聊天模型提供了一个标准接口。聊天模型是语言模型的一种变体。虽然聊天模型在内部使用语言模型但它们所提供的接口略有不同。它们不是暴露一个 “输入文本输出文本” 的 API而是提供了一个以 “聊天消息” 作为输入和输出的接口
聊天模型的接口是基于消息而不是原始文本。LangChain 目前支持的消息类型有 AIMessage、HumanMessage、SystemMessage 和 ChatMessage其中 ChatMessage 接受一个任意的角色参数。大多数情况下您只需要处理 HumanMessage、AIMessage 和 SystemMessage
但是如果只是这样的话那为什么不直接调用大模型接口呢。所以 LangChain 还提供了很多其他功能比如缓存 LLM 返回结果。上面介绍了聊天的角色处理以及如何进行批量处理消息。我们都知道向 openAI 调用接口都是要花钱的如果用户问同一个问题对结果进行了缓存这样就可以减少接口的调用并且也能加快接口返回的速度
那么怎么判断用户下次问了相似的问题呢这就需要使用到向量库了比如 ES。这个更多的是用于文档、文本或者大量数据的总结、问答场景一般是和向量库一起使用实现向量匹配。其实就是把文本等内容转成多维数组可以后续进行相似性的计算和检索
他相比 fine-tuning 最大的优势就是不用进行训练并且可以实时添加新的内容而不用加一次新的内容就训练一次并且各方面成本要比 fine-tuning 低很多
向量库将一段文本、图像、音频拆分成多个纬度的数据根据用户传入锚定坐标然后选择最近的点做返回这大概就是向量数据库在 LLM 工程langchain中的使用简单来说就是做缓存