Langchain-ChatGLM配置文件参数测试

1 已知可能影响对话效果的参数(位于configs/model_config.py文件):

# 文本分句长度 
SENTENCE_SIZE = 100# 匹配后单段上下文长度 
CHUNK_SIZE = 250 
# 传入LLM的历史记录长度 
LLM_HISTORY_LEN = 3 
# 知识库检索时返回的匹配内容条数 
VECTOR_SEARCH_TOP_K = 5 
# 知识检索内容相关度 Score, 数值范围约为0-1100,如果为0,则不生效,经测试设置为小于500时,匹配结果更精准 
VECTOR_SEARCH_SCORE_THRESHOLD = 0

其中可能对读取知识库影响较大的变量有CHUNK_SIZE(单段参考上下文的长度),VECTOR_SEARCH_TOP_K(知识库参考文段数量),和VECTOR_SEARCH_SCORE_THRESHOLD(知识库匹配内容需要达到的最小相关度)。本实验将通过向不同参数配置下的模型进行提问并对不同模型对各个问题的回答进行排名。最后,我们实验Friedman检验和Nemenyi后续检验分析不同模型的回答排名是否具有显著差别。

2 设计提问问题
模型的知识库使用书籍《深度学习入门:基于Python的理论与实现》作为知识库。对模型的提问涵盖一下类型:
知识型(K - knowledge):关于深度学习的一般知识,不一定需要依靠知识库内容回答,但是知识库提高的参考答案
内容型(C - context):关于书中具体内容的提问,必须依靠知识库才能回答
问题同时还可以分为以下两类:
普遍型(G - general):关于笼统的概念性知识问题,或者要求总结书中部分内容
细节型(S - specific):关于深度学习知识或书中内容技术细节进行提问

每一个问题都利用下面两个分类进行描述,例如KG代表知识普遍型问题,如“什么是深度学习”,CS代表内容细节型问题,如“书中手写数字识别示例使用了什么数据集作为训练数据集”。我们对每一分类设计5个问题,一共对模型提问20个问题。

设计问题
KG:
1 什么是深度学习
2 什么是神经网络
3 什么是卷积神经网络
4 简单介绍神经网络反向传播法
5 什么是神经网络的过拟合,如何避免过拟合
CG:
1 本书主要介绍了哪几种神经网络
2 书中介绍了哪几种更新神经网络参数的方法
3 书中介绍了哪几种常用的激活函数
4 书中介绍了哪几种设置神经网络权重初始值方法
5 书中介绍了哪几种抑制过拟合的方法
KS:
1 为什么神经网络权重初始值不能全部设为0
2 为什么计算权重梯度一般使用反向传播而不是数值微分
3 为什么只有非线性激活函数可以加深网络层数
4 卷积神经网络的卷积层和池化层分别有什么作用
5 为什么训练数据集和测试数据集要分开
CS:
1 书中建议解决分类问题的神经网络输出层使用什么激活函数
2 书中手写数字识别的示例程序使用什么数据集作为训练数据集
3 为什么书中手写数字识别的示例程序要对输入数据集进行批处理
4 书中讲到了batch normalization有哪些优点
5 书中讲到了哪些容易出现过拟合的条件

对于每一类问题,我们按照以下标准进行排名:
K问题:
1 答案正确性:模型的回答是否存在知识型错误
2 引用相关度:模型引用的原文内容是否和答案相关
C问题:
1 内容全面性:模型是否正确复述了书中全部的相关内容
2 原文契合度:模型是否编造和书中没有提到的内容(无论编造的部分是否正确)
3 引用相关度:模型引用的原文内容是否和答案相关

3 实验步骤
1 修改模型配置文件中的相关参数,启动langchain-ChatGLM的webui.py程序打开在线提问界面
2 在提问界面中,选择传入《深度学习入门:基于Python的理论与实现》pdf文件作为知识库。
3 将上面设计的20个问题依次传入模型,并保持模型的完整回答和原文引用保存
4 在不同参数配置下重复1-3步骤

实验组:

1 VECTOR_SEARCH_SCORE_THRESHOLD对对话效果影响
序号 CHUNK_SIZE VECTOR_SEARCH_TOP_K VECTOR_SEARCH_SCORE_THRESHOLD
1 250 5 0
2 250 10 0
3 500 5 0
4 250 5 500

回答得分
在这里插入图片描述

数据分析:
在使用Friedman检验和Nemenyi后置检验后(具体分析见excel文件模型对话打分)。四个模型在回答全部类型问题上的能力没有显著差别(p-value = 0.8368)

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

对于四个分类问题的回答(知识型,内容型,普遍型,细节型),四个模型答案依然没有显著差别。值得注意的是对于内容型问题,四个模型见差距较大,并且模型1和模型2,模型和模型3有较大的组间差距。但是这些差距在统计上不具有显著性(整体p-value=0.233, 模型1和模型2 Q test p-value=0.350,模型2和模型3 Q test p-value=0.350).

实验结论和参数调优建议:
langchain-ChatGLM模型结合本地知识库回答答案会受到CHUNK_SIZE, VECTOR_SEARCH_TOP_K,VECTOR_SEARCH_SCORE_THRESHOLD参数影响。但是这些参数变化对模型回答的总体准确性不具有显著影响。

另外值得注意的是,在第2,3组实验中,较高的CHUNK_SIZE和VECTOR_SEARCH_TOP_K使得模型回复内容明显较长,使得模型对服务器显存消耗明显增大。(在1,4组实验中显存一般会在15个问题左右时爆满,而在2,3组中只需要1到2个问题)。在实际应用中,这两个参数应该适当选取较低值,或者直接使用默认的初始值250和5

本实验可能存在以下漏洞:
1 在选择知识库数据时只使用了《深度学习入门:基于Python的理论与实现》这一本书进行测试。没有对大规模知识库进行测试,也没有测试在同一知识库传入不同题材文本是否会对模型进行干扰
2 LLM的回答完全由我个人打分排序,根据我本人对相关知识点和书中对应内容回忆以评分,具有一定主观性。另外由于无法进行双盲实验,我对不同模型的预期可能会对打分产生误差。
3 LLM回答会对历史对话进行参考。由于如果每一次问答都重启模型过于耗时耗力,本实验中只有在模型显存爆满时才会终止本轮对话,这使得模型的历史问题可能对模型回答有影响。

住:完整对话内容过长(差不多有10万字),没法在文章里展示出来

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

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

相关文章

python web开发之WSGI/uwsgi/uWSGI详解

1. 三者的定义 WSGI是一种通信协议。uwsgi是一种传输协议。uWSGI是实现了uwsgi和WSGI两种协议的Web服务器。 2.三者的使用场景 WSGI,全称 Web Server Gateway Interface,是为 Python 语言定义的 Web 服务器和 Web 应用程序或框架之间的一种简单而通用的接…

C++ 中共享指针 std::make_shared 的用法

这行代码是使用 C++ 编程语言编写的。为了理解这行代码,我们需要详细了解每个组成部分。 precomputation_grid_stack_: 这是一个指向 PrecomputationGridStack2D 类型的共享指针。 std::make_shared<PrecomputationGridStack2D>: 这是一个C++库函数,用于创建一个新的…

基于微信小程序的求职招聘系统设计与实现(Java+spring boot+MySQL+微信小程序)

获取源码或者论文请私信博主 演示视频&#xff1a; 基于微信小程序的求职招聘系统设计与实现&#xff08;Javaspring bootMySQL微信小程序&#xff09; 使用技术&#xff1a; 前端&#xff1a;html css javascript jQuery ajax thymeleaf 微信小程序 后端&#xff1a;Java s…

uniapp之表单校验

在 Uniapp 中&#xff0c;可以使用 uni-validate 插件来进行表单校验。uni-validate 是一个基于 async-validator 的表单校验插件&#xff0c;可以方便地对表单进行校验&#xff0c;并提供了一些内置的校验规则。 uni-validate 进行表单校验的示例 以下是一个使用 uni-valida…

如何为SoC做ARM CPU适配——以裸核使用malloc为例

本文任务&#xff1a;为陌生的SoC平台编写基础软件&#xff0c;适配 malloc() 函数 0 如何为SoC做ARM CPU适配 今时不同往日&#xff0c;我们平时开发/娱乐接触到的消费级MCU/MPU基本山都是包含处理核与一系列外设的SoC。如果熟悉裸片开发&#xff0c;一定会在厂家提供的标准…

铁电材料极化高压放大器ATA-7025技术指标及使用说明

铁电材料是一类具有特殊电学性质的材料&#xff0c;在现代电子技术和器件中具有广泛的应用。铁电材料的极化是其重要的特征之一&#xff0c;极化测试是评估铁电材料性能的关键方法之一。一般铁电极化测试&#xff0c;是通过根据外电场施加的电压变化来观察材料产生的极化效应。…

结构型模式 - 组合模式

概述 对于这个图片肯定会非常熟悉&#xff0c;上图我们可以看做是一个文件系统&#xff0c;对于这样的结构我们称之为树形结构。在树形结构中可以通过调用某个方法来遍历整个树&#xff0c;当我们找到某个叶子节点后&#xff0c;就可以对叶子节点进行相关的操作。可以将这颗树理…

vue2项目打包遇到的问题(记录)

临时纯手工搭建开发了个vue2小项目&#xff0c;打包后出现了很多问题 一、打包后index.html打开空白 打包后整个页面空白&#xff0c;是因为打包后资源路径不对&#xff0c;需要修改config->index.js下&#xff0c;build属性中assetsPublicPath值为./ module.exports {d…

微信合并转发的图片如何批量保存

今天遇到一个场景&#xff1a;朋友给转发来了一个合并的聊天记录&#xff0c;里面是几十张图片&#xff0c;希望能打印出来。逐张保存太费手了。下面是批量保存图片的方法&#xff1a; 1、登录PC端微信&#xff1b; 2、将要保存图片的这条合并转发的聊天记录收藏&#xff1b;…

49、MyBatis 与Hibernate 有哪些不同?

MyBatis 与Hibernate 有哪些不同? 一、开发速度的对比二、开发工作量的对比三、sql优化方面四、对象管理的对比五、缓存机制对比总结 SQL 和 ORM 的争论&#xff0c;永远都不会终止 一、开发速度的对比 Hibernate的真正掌握要比Mbatis难些。Mybatis框架相对简单很容易上手&am…

Camtasia Studio 2023怎么导出mp4格式的视频的详细教程介绍

很多用户刚接触Camtasia Studio 2023&#xff0c;不熟悉如何保存mp4格式的视频。在今天的文章中小编为大家带来了Camtasia Studio 2023保存为mp4格式的视频的详细教程介绍。 Camtasia Studio 2023保存为mp4格式的视频的详细教程 1、 打开Camtasia Studio。 Camtasia Studio- …

解决appium-doctor报ffmpeg cannot be found

一、下载ffmpeg安装包 https://ffmpeg.org/download.html 找到如图所示红框位置点击下载ffmpeg安装包。 二、配置ffmpeg环境变量 三、检查ffmpeg版本信息 重新管理员打开dos系统cmd命令提示符&#xff0c;输入ffmpeg查看是否出现版本信息&#xff0c;安装完好。 ffmpeg

短视频矩阵系统源码--开发实践

短视频矩阵系统源码开发技术&#xff1a; 1. 数据采集&#xff1a;使用Python的requests库进行数据爬取&#xff0c;使用Selenium模拟浏览器操作&#xff0c;解决抖音反爬虫机制。 2. 数据处理&#xff1a;使用Python的正则表达式、BeautifulSoup等库进行数据处理。 3. 关键…

使用Python和Scrapy实现抓取网站数据

Scrapy是一个功能强大的网络爬虫框架&#xff0c;允许开发者轻松地抓取和解析网站内容&#xff0c;这篇文章主要为大家介绍了如何使用Python的Scrapy库进行网站数据抓取&#xff0c;需要的可以参考一下 在本文中&#xff0c;我们将介绍如何使用Python的Scrapy库进行网站数据抓…

selenium-多窗口和frame处理

1.切换窗口 适用场景&#xff1a;点击按钮后&#xff0c;重新打开一个窗口&#xff0c;想要在新的窗口定位操作&#xff0c;就需要切换窗口 原理&#xff1a;获取窗口的唯一标识就是句柄&#xff0c;获取到句柄&#xff0c;就可以切换到对应的窗口了 处理方法&#xff1a; …

Oracle 将表的某一列的所有值用逗号隔开,去重后合并成一行

一、背景 最近在工作中&#xff0c;有个需求是要求在oracle统计查询的时候&#xff0c;将表的某一列的所有值用逗号隔开&#xff0c;去重后合并成一行。于是研究了一下listagg和xmlagg 函数 用来合并数据 以下通过实例说明。 二、方法 1.不去重的两种方法 listagg函数 返回…

安达发|高级计划与智能排程APS软件的发展史进程

从泰勒的科学管理理论出发&#xff0c;率先追求科学的管理理论和管理工具&#xff0c;在计算机成为企业日常管理的基本工具之后&#xff0c;信息系统已经成为提高工厂管理水平的重要支柱。 在工厂计划领域&#xff0c;开始了从MRP到MRPII再到ERP的演变过程。MRPII指的是制造…

自动化测试工具比传统测试工具的优势体现在哪里?

随着软件行业的快速发展和扩张&#xff0c;自动化测试工具在提高测试效率和质量方面起到了不可或缺的作用&#xff0c;那你知道自动化测试工具比传统测试工具的优势体现在哪里吗&#xff1f; 首先&#xff0c;自动化测试工具能够大大缩短测试周期。相比于传统手动测试&#xff…

Spring AOP知识点详解

Spring AOP是 Spring最核心的能力&#xff0c;那到底什么是AOP呢&#xff0c;今天了不起带大家了解一下。 AOP是什么 AOP(Aspect Oriented Programming):面向切面编程&#xff0c;是OOP(面向对象编程)的一个延续&#xff0c;其和OOP一样&#xff0c;也是一种编程思想&#xff0…

大模型时代,腾讯云“复制”腾讯|WAIC2023

点击关注 文&#xff5c;郝鑫 编&#xff5c;刘雨琦 刚过去的WAIC&#xff08;世界人工智能大会&#xff09;俨然成为了大模型厂商的成果汇报大会。 百度文心大模型升级到3.5版本&#xff0c;训练速度提升2倍&#xff0c;推理速度提升30倍&#xff1b;华为云发布盘古大模型3…