LangChain与昇腾

news2024/11/16 2:20:12

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.coloradmin.cn/o/1353416.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

踩坑Vant组件 Dialog的组件调用

今天踩了一个非常蠢的坑,自己给自己蠢死的坑 在使用组件调用时自己没引入Dialog组件导致一直报错 不知道为什么全局引入不好使,后来使用了局部引用 现在没问题了 就这样局部引入一个Dialog.Component就可以了

【鸿蒙杂谈①】——鸿蒙基础介绍及应用领域

1.前言 小伙伴们大家好,最近被复习整的痛苦无比,所以今天咱们了解 一点轻松的东西,至于高并发就先放放吧。好了,废话不多说,咱们进入正题。 相信小伙伴们都已经看到了最近鸿蒙的势头了,那鸿蒙究竟是怎么发…

阿里云服务器系统盘高效云盘、ESSD Entry云盘、SSD云盘、ESSD云盘测评

阿里云服务器系统盘或数据盘支持多种云盘类型,如高效云盘、ESSD Entry云盘、SSD云盘、ESSD云盘、ESSD PL-X云盘及ESSD AutoPL云盘等,阿里云百科aliyunbaike.com详细介绍不同云盘说明及单盘容量、最大/最小IOPS、最大/最小吞吐量、单路随机写平均时延等性…

[DevOps-05] Integrate工具

一、简要说明 持续集成、持续部署的工具很多,其中Jenkins是一个开源的持续集成平台。 Jenkins涉及到将编写完毕的代码发布到测试环境和生产环境的任务,并且还涉及到了构建项目等任务。 Jenkins需要大量的插件保证工作,安装成本较高,下面会基于Docker搭建Jenkins。 二、Jenk…

RFIC设计的主要流程和发展趋势学习

无线是我们这个时代最大的特点,无论是移动宽带,还是卫星导航,无人机,智能驾驶,都离不开射频技术的快速发展。而射频设计中,发展最快的当属射频集成电路的发展。 对于数字集成电路,我们很多人都见…

ELK+kafka+filebeat企业内部日志分析系统搭建

看上面的拓扑图,我们至少准备七台机器进行下面的实验项目。 机器主要作用分布如下: 三台安装elasticsearch来搭建ES集群实现高可用,其他机器就依次安装filebeat,kafka,logstash和kibana软件 一、部署elasticsearch来搭建ES集群 1.安装jdk 由于ES运行…

华为月薪25K的自动化测试工程师到底要会那些技能!

​前言 3年自动化测试软件测试工程师职业生涯中,我所经历过的项目都是以自动化测试为主的。由于自动化测试是一个广泛的领域,我将自己的经验整理了一下分享给大家,话不多说,直接上干货。 自动化测试的目标和实践选择合适的自动化…

基于Java在线考试管理系统设计与实现(源码+部署文档)

博主介绍: ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到 Java项目精品实…

【openGauss服务器端工具的使用】

【openGauss服务器端工具的使用】 gs_checkperf openGauss 不仅提供了gs_checkperf工具来帮助用户了解openGauss的负载情况。 使用数据库安装用户登录服务器,执行如下命令进行查看数据库性能: 简要信息展示:[ommopengauss03 ~]$ gs_checkperf…

【C语言】程序练习(四)

大家好,这里是争做图书馆扫地僧的小白。非常感谢各位的支持,也期待着您的关注。 目前博主有着C语言、C、linux以及数据结构的专栏,内容正在逐步的更新。 希望对各位朋友有所帮助同时也期望可以得到各位的支持,有任何问题欢迎私信与…

Rust 圣经 阅读 引用与借用

Rust 通过 借用(Borrowing) 在使用某个变量的指针或引用。 获取变量的引用,称之为 借用(borrowing) 。 引用与解引用 引用是为了解决在使用函数时,频繁地传递所有权。 引用只是获取了引用权,而…

QML —— Canvas重绘钟表组件(附完整源码)

示例效果] 源码 main.cpp #include <QGuiApplication> #include <QQmlApplicationEngine>int main(int argc, char *argv[]) {QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);QGuiApplication app(argc, argv);QQmlApplicationEngine engine;const…

Nacos学习思维导图

一、服务注册 参考文档&#xff1a;http://www.bryh.cn/a/118936.html https://blog.csdn.net/Saintmm/article/details/121981184 二、服务续约 参考文档&#xff1a;http://www.bryh.cn/a/118936.html https://blog.csdn.net/Saintmm/article/details/121981184 三、服务…

案例089:基于微信小程序的校园综合服务平台设计与实现

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

cmd命令启动C# windows服务程序

因为Process.Manage.Service.exe程序为Windows服务程序&#xff0c;不能直接双击打开&#xff0c;所以需要借助windows系统自带InstallUtil.exe程序来启动它。 以管理员身份运行cmd命令控制台窗口 输入命令进入到InstallUtil.exe程序所在的文件夹 cd C:\Windows\Microsoft.NET…

鸿蒙开发第一天

一、开发准备工作 1、开发工具的安装 1&#xff09;下载地址&#xff1a;https://developer.huawei.com/consumer/cn/deveco-studio/ 2&#xff09;查询API文档链接&#xff1a;https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V2/syscap-00000014080893…

【操作系统xv6】学习记录2 -RISC-V Architecture

说明&#xff1a;看完这节&#xff0c;不会让你称为汇编程序员&#xff0c;知识操作系统的前置。 ref&#xff1a;https://binhack.readthedocs.io/zh/latest/assembly/mips.html https://www.bilibili.com/video/BV1w94y1a7i8/?p7 MIPS MIPS的意思是 “无内部互锁流水级的微…

手撕Vuex-vuex实现原理分析

本章节主要围绕着手撕 Vuex&#xff0c;那么在手撕之前&#xff0c;先来回顾一下 Vuex 的基本使用。 创建一个 Vuex 项目&#xff0c;我这里采用 vue-cli 创建一个项目&#xff0c;然后安装 Vuex。 vue create vuex-demo 选择 Manually select features。 这里只需要&#xff0…

莫比乌斯函数

积性函数定义 若gcd(p,q)1&#xff0c;有f(p*q)f(p)*f(q)&#xff0c;则f(x)是积性函数 其中规定f(1)1&#xff0c;对于积性函数有&#xff1a;所有的积性函数都可以用筛法求出 常见的积性函数有欧拉函数和莫比乌斯函数 筛法求莫比乌斯函数 const int N 1e9 5; const int …

哪些洗地机比较好?洗地机选购指南

随着社会生活水平的提高&#xff0c;人们对居家环境的卫生和清洁要求不断提升。家用洗地机作为一种先进的清洁工具&#xff0c;带来了许多便利和优势&#xff0c;特别是在解决一些特殊需求的家庭环境方面。 以下是一些家用洗地机的优势和适用场景&#xff1a; 1.高效清洁&…