本地部署 langchain-ChatGLM

news2024/12/28 16:57:10

本地部署 langchain-ChatGLM

  • 1. 什么是 langchain-ChatGLM
  • 2. 什么是 langchain
  • 3. Github 地址
  • 4. 安装 Miniconda3
  • 5. 创建虚拟环境
  • 6. 部署 langchain-ChatGLM
  • 7. 启动 langchain-ChatGLM
  • 8. 访问 langchain-ChatGLM
  • 9. API部署
  • 10. 命令行部署
  • 11. 其他,LangChain Document Loaders

1. 什么是 langchain-ChatGLM

一种利用 ChatGLM-6B + langchain 实现的基于本地知识的 ChatGLM 应用。增加 clue-ai/ChatYuan 项目的模型 ClueAI/ChatYuan-large-v2 的支持。

本项目中 Embedding 默认选用的是 GanymedeNil/text2vec-large-chinese,LLM 默认选用的是 ChatGLM-6B。依托上述模型,本项目可实现全部使用开源模型离线私有部署。

2. 什么是 langchain

大型语言模型(LLM)正在成为一种变革性的技术,使开发者能够建立他们以前无法建立的应用程序。然而,孤立地使用这些LLM往往不足以创建一个真正强大的应用程序–当你能将它们与其他计算或知识来源相结合时,真正的力量才会出现。这个库的目的是协助开发这些类型的应用。

langchain 使用 Transformer 模型,并在多个语言间建立链式结构实现翻译。比如,它可以通过英语→法语→西班牙语完成英语到西班牙语的翻译。

langchain 只使用公开数据集进行训练,不需要额外的数据。它使用的训练集包括:

  • WMT2014英法翻译数据集
  • WMT2014英德翻译数据集
  • UN翻译语料库

langchain 提供11种语言的机器翻译模型,语言包括:英语、法语、西班牙语、意大利语、德语、荷兰语、葡萄牙语、俄语、日语、中文、阿拉伯语。

langchain的参数量较小,其基础模型只有 47M 参数,加快推理速度并降低计算资源要求。

langchain开源免费,模型与代码都在 GitHub 开源,方便研究与生产使用。

3. Github 地址

https://github.com/imClumsyPanda/langchain-ChatGLM

https://github.com/hwchase17/langchain

4. 安装 Miniconda3

下载 Conda 安装脚本,

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

运行安装脚本,

bash Miniconda3-latest-Linux-x86_64.sh

按提示操作。当提示是否初始化 Conda 时,输入 “yes”,

在这里插入图片描述

安装完成后,关闭当前终端并打开新终端,这将激活 Conda,

sudo su - root

更新 Conda 至最新版本,

conda update conda

在这里插入图片描述
在这里插入图片描述

添加必要的 Conda 通道以获取更多软件包,

conda config --add channels conda-forge
conda config --add channels defaults 

测试是否安装成功,

conda list

如果显示 Conda 及其内部包的列表,则说明安装成功。

5. 创建虚拟环境

conda create -n langchain-chatglm python==3.10.4
conda activate langchain-chatglm

6. 部署 langchain-ChatGLM

git clone https://github.com/imClumsyPanda/langchain-ChatGLM; langchain-ChatGLM
pip3 install -r requirements.txt
pip3 install -U gradio
pip3 install modelscope

7. 启动 langchain-ChatGLM

python webui.py

8. 访问 langchain-ChatGLM

使用浏览器打开 http://localhost:7860/

在这里插入图片描述
问它一个问题,清华大学在哪?

在这里插入图片描述

9. API部署

python api.py

10. 命令行部署

python cli_demo.py

11. 其他,LangChain Document Loaders

refer: https://python.langchain.com/en/latest/modules/indexes/document_loaders.html

将语言模型与你自己的文本数据结合起来是一个强有力的方法。做到这一点的第一步是将数据加载到 "文档 "中 – 即一些文本片段。这个模块的目的是使之变得简单。

这方面的一个主要驱动是 Unstructured python 包。这个包是将所有类型的文件 – 文本、powerpoint、图片、html、pdf等–转化为文本数据的好方法。

完结!

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

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

相关文章

深度学习—神经网络基础原理及循环神经网络

前向传播(Forward) 为什么要有激活函数 这里用两层来代表多层的神经网络举例:第一层的输出是第二层的输入,其中MM的W*X矩阵乘法,ADD是向量加法即加上偏置,如果每一层都只有线性变换,那么最终无…

RabbitMQ入门(详细)

RabbitMQ入门(详细) 初始消息队列消息队列初识为什么要使用消息队列?消息队列的特性 RabbitMQ介绍特点核心概念 Linux(CentOs7) 下安装:安装前配置:Erlang下载安装RabbitMQ下载安装linux下安装r…

泰安柒柒:国外问卷调查都有哪些题?

提到问卷调查我们并不陌生,它经常被用作调查市场、商品意见等多种调查中。不过,提到国外问卷调查,大家就比较陌生了。简单来说就是国外的一些企业或机构为了改进自己的商品或服务,会列出一些问题来让大众回答,并用付费…

配置 Ubuntu 的网络

一、三种联网的模式 1. 桥接 VMnet0------> 主机和 Ubuntu 都有一个 ip 地址 2. NAT 模式 VMnet8-------->Ubuntu 和主机是同一个 ip 地址 3. 主机模式 VMnet1-------> 只能和主机进行通信 二、网络配置 1. 虚拟机----->设置 2. 确保网络适配器是桥接模式或…

网络基础学习:osi网络七层模型

osi网络七层模型 什么是OSI,什么是ISO?为什么ISO要提出OSI网络七层模型?OSI七层的划分以及具体内容第七层 应用层第六层 表示层第五层 会话层第四层 传输层第三层 网络层第二层 数据链路层第一层 物理层 每一层与设备的对应关系 什么是OSI,什…

央国企专场培训:太极信创研习院第33期ITAIP信创精华班培训在常州成功举办

4月25-27日,由太极计算机股份有限公司(太极信创研习院)联合中国中车集团有限公司(科技质量与信息化部)、中车信息技术有限公司(中车学习培训发展中心)共同举办的“信息技术应用创新专业人员&…

Java并发编程实践学习笔记(三)——共享对象之可见性

目录 1 过期数据 2 非原子的64位操作 3 锁和可见性 4 Volatile变量(Volatile Variables) 在单线程环境中,如果向某个变量写入值,在没有其他写入操作的情况下读取这个变量,那么总能得到相同的值。然而&…

java状态机实现订单状态转移

一、状态机 状态机是状态模式的一种应用,相当于上下文角色的一个升级版。在工作流或游戏等各种系统中有大量使用,如各种工作流引擎,它几乎是状态机的子集和实现,封装状态的变化规则。状态机可以帮助开发者简化状态控制的开发过程…

APP界面设计都有哪些好用的软件推荐

基于APP界面的不同功能,所选择的APP界面设计软件也会有所不同。然而,并不是说所有的APP界面设计软件都非常精通,熟练地学习几个常用的APP界面设计软件。以下10个APP界面设计软件将为您的团队提供绘制APP界面所需的必要功能。 1.即时设计 即…

OpenCV-Python实战(7) —— OpenCV 实现抖音视频倒放效果

1. 需求分析 参考:十行Python代码制作一个视频倒放神器,由于最近在学习 OpenCV ,因此试着使用 OpenCV 进行实现,学以致用(胡乱折腾)。 需要视频倒放,因此需要读取视频cv.VideoCapture&#xff1…

一键docker搭建mysql主从环境

一键docker搭建mysql主从环境 初衷准备阶段操作阶段注意事项 初衷 一开始为了玩一下shared-jdbc,要搭Mysql主从环境,这玩意虽然搭好,之后使用要是网络问题,或者sql执行出错,还得重新调Binlog位置,麻烦得很…

接口自动化测试之HTTP协议详解(敢称全网最全)

目录 协议 OSI模型 HTTP URL 报文 响应报文 HTTP扩展 协议 简单理解,计算机与计算机之间的通讯语言就叫做协议,不同的计算机之间只有使用相同的协议才能通信。所以网络协议就是为计算机网络中进行数据交换而建立的规则,标准或约定的集…

Node.js 使用RSA加密/解密

在本文中,我们将探讨如何在 Node.js 中使用 RSA 加密和解密。RSA 是一种非对称加密算法,它可以确保数据的安全传输。使用 RSA,我们可以在不直接传输密钥的情况下安全地加密和解密数据。 一、安装依赖 我们将使用 node-rsa 库来执行加密和解密…

2023 年Java经典面试题,基础篇01(持续更新)

本篇文章主要讲的是 2023 年Java最新面试题,持续更重中 基础概念与常识 原文地址:https://github.com/Snailclimb/JavaGuide Java 语言有哪些特点? 简单易学;面向对象(封装,继承,多态)&#…

《LeetCode》—— LeetCode刷题日记

本期,我给大家讲述的是关于 n数之和这类题目的讲解,我会给大家讲解两数之和,三数之和和四数之和这三道题目。 目录 (一)两数之和 (二)三数之和 (三)四数之和 &#xf…

NodeJs 最近各版本特性汇总

(预测未来最好的方法就是把它创造出来——尼葛洛庞帝) NodeJs 官方链接 github链接 V8链接 Node.js发布于2009年5月,由Ryan Dahl开发,是一个基于Chrome V8引擎的JavaScript运行环境,使用了一个事件驱动、非阻塞式I/O模…

对象应用:C++字符串和vector,对象的new与delete重构

对象应用 C字符串和vector字符串创建方式字符串拼接字符串追加 字符串截断autovector创建方式vector操作 new与delete重构new与delete的工作步骤new与delete重构应用只能生成栈对象只能生成堆对象 C字符串和vector C的字符串是一个对象,存在于std标准库中&#xff0…

Python基础入门(4)—— 什么是偷懒编程法?是类、对象和继承

文章目录 00 | 😃为什么学习类?😃01 | 😄创建类😄02 | 😆创建对象😆03 | 😉访问对象属性和方法😉04 | 😊构造函数😊05 | 😋继承&#…

Shell编程之数组

目录 一、数组的基本概念 二、定义数组的方法 方法一: ​编辑 方法二: 方法三: ​编辑 方法四: 三、 数组的输出,删除和长度统计 1)数组元素的输出 2)数组全部元素输出 3&#xff0…

一种用于提高无线传感器网络寿命的改进LEACH协议(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 无线传感器网络具有网络灵活性强、网络规模可变等优点,广泛应用于军事、工业等领域。无线传感器网络的基本网络路由…