LangChain与昇腾

LangChain这个词今年已经听烂了,今天基于昇腾的角度总结一下:

Why LangChain ?

场景:构建一个LLM应用

在构建一个新项目时,可能会遇到许多API接口、数据格式和工具。要去研究每一个工具、接口很麻烦。

假设要构建一个智能聊天机器人,难道要一步步去学习如何训练一个语言模型,如何处理各种数据,还要解决所有的兼容性问题吗?

这就是LangChain的价值所在

LangChain是一个集成框架,提供一系列的工具和组件,使能语言模型中各种数据(如Google Analytics、Stripe、SQL、PDF、CSV等)的连接、语言模型的应用和优化,一切将简单直接。

————————————————————————————————————————————————————————————
LangChain好比一把“瑞士军刀”,不再需要为每一个任务找一个新工具,提供一站式解决方案。

正如要修理一个小家用电器,而你已经拥有一个完整的工具箱。不管遇到啥问题,打钉子、拧螺丝、剪线,工具箱里总有一个合适的工具。

LangChain提供了这样的工具箱,不仅涵盖了基础工具,还为个性化需求提供了自定义组件解决方案

正是因为LangChain连接了开发者和复杂的LLM应用,因此,开发变得更为简单、高效。越来越多的开发者,不论是LLM领域的还是非LLM领域的,都选择使用LangChain。

现代软件工程宗旨:将庞大复杂的系统划分为更小、更易于管理和使用的部分

LangChain以**“组件”** 和 **“链”**作为2个关键概念,为LLM应用开发者提供了便利。

  • 组件 不是代码的拼凑,而是一个具有明确功能和用途的单元。组件包括LLM模型包装器、聊天模型包装器及与数据增强相关的一系列工具和接口。这些组件就是LangChain中的核心,你可以把它们看作数据处理流水线上的各个工作站。每个组件都有其特定的职责,如处理数据的输入输出、转化数据格式。

  • 是将各种组件连接在一起的纽带,它能够确保组件之间的无缝集成和在程序运行环境中的高效调用。无论是对于LLM还是其他工具,链都扮演着至关重要的角色。举个例子,LLMChain,这是LangChain中最常用的链,它可以整合LLM模型包装器和记忆组件,让聊天机器人拥有“记忆”。

向量数据库

向量数据库(Vector Database)可高效存储和处理非结构化的数据,如文档、图片、视频、音频和纯文本等。

在信息完整的情况下,通过向量的嵌入函数来精准描写这些非结构化的数据的特征,从而实现向量搜索、查询、删除、修改、元数据过滤等功能。

向量数据库的核心是将文本、图片、音频等非结构化的信息转换成向量的形式存储在数据库中,当用户输入问题时,将问题转换成向量,最后在数据库中搜索最相似的向量和上下文,最后将结果返回给用户。
请添加图片描述
向量数据库和传统数据具有相似性,通过提供标准的sql访问接口,降低用户的使用门槛,同时提供高效的数据组织,检索和分析的能力。满足用户在存储和检索向量需求的同时,提供管理结构化数据的能力。

两者最大的区别在于传统数据库是一个精准的索引,查找到的内容存在正确答案,在数据库中的数据只有两类,一类是符合查询要求,可返回给用户;另一类则是不符合查询要求;而向量搜索则是一种模糊匹配,找到的是相对最符合需求的数据,而非一个精确的标准答案。

向量数据库依据保存和检索的不同可分为以下5类:

1)纯向量数据库:如Pinecone、Weaviate、Qdrant、Chroma、Zilliz、Vespa等专用于存储和检索向量,具有利用索引技术进行高效的相似性搜索,大数据集和查询工作负载的可扩展性,支持高维数据、基于HTTP和JSON的API,以及对向量运算(加法、减法、点积、余弦相似度)的原生支持等优点。

2)向量库:如Faiss、Annoy等,支持面相ANN的索引结构,包括倒排文件、乘积量化和随即投影,支持推荐系统、图片搜索和自然语言处理(NLP)。

3)全文搜索数据库:如Elastic、OpenSearch等,对于非结构化文本具有高扩展性和性能以及丰富的文本检索功能。

4)支持向量的非关系型(NoSQL)数据库:如DataStax、Cassandra、Rockset、MongoDB等,NoSQL数据库性能高、规模大。Neo4j(图形数据库)可与社交媒体或知识图谱的大语言模型融合。

5)支持向量的关系型(SQL)数据库:如ClickHouse、Singlestore、PostgreSQL等,多模型SQL数据库提供混合搜索,可将向量与其他数据结合,并且大多数SQL数据库可在云上部署服务。

请添加图片描述
非结构化的信息以向量的形式存储在向量数据库中

以猫为例,不同种类的猫可通过体型大小、毛发长度、腿长短等特征来区分。
下图中X-Y轴分别对应毛长和体型的数值,每只猫即可对应一个二维坐标点,由此可轻易将波斯猫、缅因猫和无毛猫区分开来,但仍然无法很好的区分波斯猫和西伯利亚猫。
通过继续添加腿的长短这一特征,得到一个三维的坐标系以及每只猫在三维坐标系中的位置,只要特征足够多就可以得到高维的坐标系。

向量是具有大小和方向的数学结构,将这些特征转化为向量表示,通过计算各向量之间的距离来判断它们的相似度,从而实现相似性搜索。
请添加图片描述
随着ChatGPT的发布,人工智能的发展迎来了新的时代,知识的存储与表达也有了新的标准,但其输入端上下文(tokens)大小的限制困扰着很多的开发者和消费者。

文本本身直接作为数据具有维度高、学习低效的缺点,因而大模型接触和学习的数据并非文本本身,而是向量化的文本,即大模型对自然语言的压缩和总结。

向量数据库是高维度的,可弥补生成式人工智能模型的这一缺陷。向量数据库通常用于支持复杂的查询操作,如相似性搜索,这种高效的索引和检索机制使向量数据库特别适用于机器学习和人工智能应用,提供强大的“记忆”能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/321620.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高效工具汇总,让学习和办公飞起来

目录 1、寻找论文,效率很高2、学习各类编程的地方 1、寻找论文,效率很高 AMiner,由清华大学计算机科学与技术系的唐杰教授团队开发的一个显著的学术搜索和挖掘系统。系统提供了一整套功能以协助学术研究,包括研究人员档案、专家搜…

Docker入门教程(详解)

Docker容器化 一 入门 1. 引言 (1)单机部署 场景: 将多个应用部署一台服务器上。 问题 每个应用软件,都会消耗物理资源,共用计算机资源,彼此之间会形成竞争关系。 (2)多机部署 …

关于jdk11新特性流操作的研究

以官方文档为参考, 见下图 使用图床上传的图片地址 有次操作是因为图中有较重要的信息, 使用最不损失画质的方法做参考 使用csdn的图片 关于流操作之中断操作的官方内容 流操作分为中间操作和终端操作,并组合成流管道。流管道由源(例如集合、数组、生…

2023年终总结,被裁员

在一个睡意朦胧的早上,我被闹钟惊醒,原来今天已经是2024年1月1日了,2023年平平无奇的结束了,唯一让我感触波深的事情是我在二月份的裁员名单里面。2024加油!!! 工作上的总结 回顾2023&#xf…

MySQL MHA高可用

目录 简述 什么是MHA MHA的组成 MHA Node(数据节点) MHA Manager(管理节点) MHA原理 MHA的特点 搭建Mysql MHA 1.修改 Master、Slave1、Slave2 节点的主机名 2.修改 Master、Slave1、Slave2 节点的 Mysql主配置文件/etc…

Cesium自定义电子围栏特效材质

1.new Cesium.Viewer中添加 requestWebgl1: true, 2. 编写材质,主要分三步 (1)定义MaterialProperty (2)设置材质 (3)添加材质 //定义材质对象及变量 function DynamicWallMaterialPropert…

OpenHarmony—开发环境搭建

背景 因为没有实体的开发硬件,且不想破坏原有的Linux环境,所以这里基于 Docker QEMU 搭建开发环境 宿主机Linux系统命令行方式DockerQEMU 6.2 Docker环境准备 安装Docker 在Ubuntu中,可以使用下面的命令来安装Docker: sudo …

“华为杯”杭州电子科技大学2023新生编程大赛---树

题目链接 Problem Description 给定一棵包含 n 个节点的带边权的树,树是一个无环的无向联通图。定义 xordist(u,v) 为节点 u 到 v 的简单路径上所有边权值的异或和。 有 q 次询问,每次给出 l r x,求 ∑rilxordist(i,x) 的值。 Input 测试…

vuepress2 打包后刷新页面侧边栏丢失问题

问题:打包后刷新页面时侧边栏丢失问题 原因:node版本问题 文档中写着依赖环境 Node.js v18.16.0 我当时的版本是 16.19.0 我应该算是遇到了两个问题 【刷新后侧边栏消失】【刷新后页面内容加载错误】 我看了控制台,侧边栏不出现的原因&a…

我的隐私计算学习——联邦学习(1)

笔记内容来自多本书籍、学术资料、白皮书及ChatGPT等工具,经由自己阅读后整理而成。 六、联邦学习 笔记分享 | 组队学习密码学 —— 密码学在联邦学习中的应用 ​ 根据前文已经知道,隐私计算与联邦学习的结合是当前的一个热点,联邦学习原本…

Spring——Spring IOC(2)

1.Spring中的工厂类 1.1 ApplicationContext ApplicationContext的实现类,如下图: ClassPathXmlApplicationContext:加载类路径下 Spring 的配置文件FileSystemXmlApplicationContext:加载本地磁盘下 Spring 的配置文件 1.2 B…

excel公式名称管理器

1.问题 在日常使用excel的时候,发布一个表格文件,需要限制表格的某列或某行只能从我们提供的选项中选择,自己随便填写视为无效,如下图所示,上午的行程安排只能从"在岗"、"出差"、"病假"…