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.mzph.cn/news/597016.shtml

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

相关文章

k8s二进制部署2

部署 Worker Node 组件 //在所有 node 节点上操作 #创建kubernetes工作目录 mkdir -p /opt/kubernetes/{bin,cfg,ssl,logs} #上传 node.zip 到 /opt 目录中,解压 node.zip 压缩包,获得kubelet.sh、proxy.sh cd /opt/ unzip node.zip chmod x kubelet.…

3分钟了解syscall系统调用|详细易懂的流程

文章目录 syscall1.简介2.详细解释3.具体举例4.比喻解释5.作用6.优点7.总结 syscall和int 0x80有什么不同?1. 上下文切换效率2. 指令执行流程3. 兼容性总结 syscall 具体流程1. 用户空间准备2. 执行syscall指令3. 切换到内核态4. 内核模式下执行系统调用5. 返回用户…

Unity3D UGUI图集打包与动态使用(TexturePacker)

制作图集的好处: 众所周知CPU是用来处理游戏的逻辑运算的,而GPU是用来处理游戏中图像的。在GPU中,我们要绘制一个图像需要提交图片(纹理)到显存,然后再进行绘制(在这个过程中会产生一次DrawCall…

vue3 + TS + vite 搭建中后台管理系统(完整项目)

vue3 TS vite 搭建中后台管理系统(完整项目) 前言1、搭建步骤及方法2、集成多种插件功能,实现中后台按需使用3、新手学TS如何快速进入状态、定义TS类型4、layout搭建四款常见风格6、大屏搭建效果5、vue3Ts运营管理系统总结: 前言…

three.js相机按照指定路线在建筑模型中漫游(支持开始,暂停)

three.js相机按照指定路线在模型中漫游(支持开始,暂停) 关键点 相机运动曲线 // 相机路线 const points [new THREE.Vector3(0, 40, 300),new THREE.Vector3(50, 40, 300),new THREE.Vector3(50, 40, 50),new THREE.Vector3(150, 40, 50),…

详细解读QLC SSD无效编程问题-2

作者通过SimpleSSD仿真模型,采用SLCQLC混合模式来开展进一步的验证工作。评估过程中,当写入请求到达固态硬盘时,首先会被写入缓存(DRAM),然后才被回写到NAND。文中引入了一个名叫做LRU(Least Recently Used…

【Unity中的A星寻路】Navigation导航寻路系统四大页签详解

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…

几种读nii图像方法的轴序比较

读 .nii / .nii.gz 图像并转成 numpy 可用 medpy.io、nibabel、itk、SimpleITK 几种方法,然而几种方法读出来的轴序有出入,本篇比较此几种方法。 Datum 所用数据来自 verse,经 iTomxy/data/verse/preprocess.py 预处理,朝向和轴…

【观察】Aginode安捷诺:坚守“长期主义”,服务中国数字经济

毫无疑问,随着整个社会加速数字化转型,尤其是5G、人工智能、大数据等技术兴起,以及智慧医疗、智慧金融、智能制造等应用加速落地,算力网络在经济社会发展中扮演了愈来愈重要的角色,成为支撑数字经济蓬勃发展的“新引擎…

根本记不住MySQL进阶查询语句

1 MySQL进阶查询 1.1 MySQL进阶查询的语句 全文以数据库location和Store_Info为实例 ---- SELECT ----显示表格中一个或数个字段的所有数据记录 语法:SELECT "字段" FROM "表名"; select 列名 from 表名 ; ---- DISTINCT ----不显示重复的数…

高清网络视频监控平台的应用-城市大交通系统视联网

目 录 一、应用需求 二、系统架构设计 三、功能介绍 1.实时视频监控 2.云台控制 3.语音功能 4. 录像管理与回放 5.告警联动 6.多种显示终端呈现 (1)CS客户端 (2)web客户端 (3&#xf…

seo分享:慎重使用蜘蛛池

其实要提高搜索引擎蜘蛛的来访次数,唯一的方法还是要通过网站本身的内容更新。频繁更新有质量的内容,才能够提高蜘蛛的来访次数。如果本身内容更新不多,外部引流的蜘蛛过多,最终发现没什么内容索引,蜘蛛来访的次数也会…

【竞技宝】DOTA2:tundra宣布解散旗下阵容 whitemon留队

北京时间2024年1月4日,在DOTA2ESL吉隆坡站的比赛结束后,最近将要迎来的是BB Dacha别墅杯的预选赛,目前随着AR官宣新赛季阵容,国内一线队伍都已经全部公布了大名单。而国外还有一些队伍仍在进行人员调整,其中就包括前TI…

Strict MIME type checking is enforced for module scripts per HTML spec.

目录 前言错误信息如下:前言 最近使用docker打包Nginx和vue 为镜像文件,启动镜像时报错 错误信息如下: index89886.js:1 Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of "text/html". Stri…

MySQL之、CRUD、函数及union查询(实施必会)

文章目录 前言一、CRUD1.1SELECT(查询)1.2INSERT(新增)1.3UPDATE(修改)1.4DELETE(删除) 二、函数2.1常见函数2.1.1字符函数2.1.2数字函数2.1.3日期函数 2.2流程控制函数(重点)2.3聚合函数 三、union与union all思维导图: 前言 本篇博主给大家带来MySQL之、CRUD、常…

搜维尔科技:ART光学跟踪系统在工业VR/AR领域的应用

ART公司成立于1999年,拥有38万员工遍布全球,ART一直致力于红外线光学跟踪系统的研发与生产,并将先进的科技应用于产品研发,产品制造,市场营销,产品销售以及优秀的客户支持。主要向客户提供高端的虚拟现实跟…

MySQL Enterprise版本各系统安装包下载

一、官方下载地址 oracle下载地址 https://edelivery.oracle.com/osdc/faces/SoftwareDelivery 使用oracle账号登录进去 Category选择Download Package(下载安装包),搜索栏输入mysql Enterprise关键字点search进行搜索。选项结果第一个MySQL Enterprise Edition&a…

JAVA的引用与C++的指针有什么区别

JAVA的引用与C的指针有什么区别 1. Java值类型与引用类型1.1 变量初始化1.2 变量赋值1.3 函数传参 2. Java数据存储方式2.1 Java局部变量&&Java方法参数2.2 Java数组类型引用和对象2.3 String类型数据 3. Java引用类型3.1 强引用3.2 软引用3.3 弱引用3.4 虚引用 4. JAV…

MySQL8.0安装教程

Mysql安装教程 1.Mysql下载 进入官网https://www.mysql.com/进行下载: 2.Mysql安装 双击文件进行安装,选择默认安装方式: 这里列出了五种安装类型: Developer Default:默认安装类型;Server only&#x…

在Ubuntu22.04上部署Stable Diffusion

在AI绘画软件领域Stable-Diffusion(简称SD)在开源领域绝对是不二之选,他的插件方式可以让此软件具有更多的功能,开发者社群为此提供了大量免费高质量的外接预训练模型(fine-tune)和插件,并持续维…