【ChatGLM_02】LangChain知识库+Lora微调chatglm2-6b模型+提示词Prompt的使用原则

经验沉淀

  • 1 知识库
    • 1.1 Langchain知识库的主要功能
      • (1) 配置知识库
      • (2) 文档数据测试
      • (3) 知识库测试模式
      • (4) 模型配置
  • 2 微调
    • 2.1 微调模型的概念
    • 2.2 微调模型的方法和步骤
      • (1) 基于ptuning v2 的微调
      • (2) 基于lora的微调
  • 3 提示词
    • 3.1 Prompts的定义及原则
      • (1) Prompts是什么?
    • 3.2 如何有效使用Prompts
      • (1) Prompt的原则一:清晰和明确的指令
      • (3) Prompt的原则二:给模型思考的时间
    • 3.4 Prompts示例
      • (1) 目标
      • (2) 步骤一:简单
      • (3) 步骤二:增加枚举
      • (4) 步骤三:增加信息解释
      • (5) 步骤四:增加样例
  • 4 参考文献

1 知识库

运行langchain-ChatGLM-master下面的webui.py文件

1.1 Langchain知识库的主要功能

(1) 配置知识库

  • 新建知识库

在这里插入图片描述

  • 向知识库当中添加文件

[图片]

  • 支持上传的数据格式:word、pdf、excel、csv、txt、文件夹等。但是此处我试了一下

(2) 文档数据测试

  • word文档测试:

在这里插入图片描述

(3) 知识库测试模式

  • 知识库测试只会返回输入内容在当前知识库当中的具体位置,不会给出答案。
  • 根据获取知识库内容条数这个参数来控制出处的最大次数。

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

(4) 模型配置

  • LLM 模型:大语言模型,使用的是chatglm2-6b。
  • 向量匹配topK:放到大模型推理的相关文本的数量,如果文档资料比较规范,文档与 query 容易匹配,可以减少 Top_k 以增加答案的确定性。

在这里插入图片描述

2 微调

2.1 微调模型的概念

  • 微调模型有:P-Tuning,LoRA,Full parameter

2.2 微调模型的方法和步骤

(1) 基于ptuning v2 的微调

https://github.com/thudm/chatglm2-6b/tree/main/ptuning

参考教程:参考

1、安装依赖

运行微调需要 4.27.1 版本的 transformers

pip install transformers==4.27.1
pip install rouge_chinese nltk jieba datasets

2、禁用W&B

#禁用 W&B,如果不禁用可能会中断微调训练,以防万一,还是禁了吧
export WANDB_DISABLED=true

3、准备数据集
这里为了简化,此处只准备了4条测试数据,分别保存为 train.json 和 dev.json,放到 ptuning 目录下,实际使用的时候肯定需要大量的训练数据。

{"content":"你好,你是谁","summary": "你好,我是A"}
{"content":"你是谁","summary": "你好,我是A,帮助您解决问题的小助手~"}
{"content":"你好,A是谁","summary": "A是一个AI智能助手"}

4、参数调整
修改 train.shevaluate.sh 中的 train_filevalidation_filetest_file为你自己的 JSON 格式数据集路径,并将 prompt_columnresponse_column 改为 JSON 文件中输入文本和输出文本对应的 KEY。可能还需要增大 max_source_lengthmax_target_length 来匹配你自己的数据集中的最大输入输出长度。并将模型路径 THUDM/chatglm2-6b 改为你本地的模型路径。

1、train.sh文件修改

在这里插入图片描述

PRE_SEQ_LEN=128
LR=2e-2
NUM_GPUS=1

python main.py \
    --do_train \
    --train_file train.json \
    --validation_file dev.json \
    --preprocessing_num_workers 10 \
    --prompt_column content \
    --response_column summary \
    --overwrite_cache \
    --model_name_or_path THUDM/chatglm2-6b \
    --output_dir output/adgen-chatglm2-6b-pt-$PRE_SEQ_LEN-$LR \
    --overwrite_output_dir \
    --max_source_length 64 \
    --max_target_length 128 \
    --per_device_train_batch_size 1 \
    --per_device_eval_batch_size 1 \
    --gradient_accumulation_steps 16 \
    --predict_with_generate \
    --max_steps 3000 \
    --logging_steps 10 \
    --save_steps 1000 \
    --learning_rate $LR \
    --pre_seq_len $PRE_SEQ_LEN \
    --quantization_bit 4

train.sh 中的 PRE_SEQ_LENLR 分别是 soft prompt 长度和训练的学习率,可以进行调节以取得最佳的效果。P-Tuning-v2 方法会冻结全部的模型参数,可通过调整 quantization_bit 来改变原始模型的量化等级,不加此选项则为 FP16 精度加载。

2、准备训练数据集train.json和推理数据集dev.json

此处由于训练数据量较小,因此train.json和dev.json两个数据集的内容是相同的。
在这里插入图片描述

此处添加的4条内容相当于调整大模型的自我认知过程。

{"content":"你好,你是谁","summary": "你好,我是A"}
{"content":"你是谁","summary": "你好,我是A,帮助您解决问题的小助手~"}
{"content":"你好,A是谁","summary": "A是一个AI智能助手"}

3、训练:运行train.sh
启动后可以看到加载一系列模型的操作,加载完成后就开始进行模型的训练了。

在这里插入图片描述

在这里插入图片描述

4条数据,3000步训练时间大约50分钟。

在这里插入图片描述

训练好的模型都会存放在output当中,前提是没有修改训练脚本当中的输出路径。

在这里插入图片描述

4、修改批处理脚本evaluate.sh

在这里插入图片描述

PRE_SEQ_LEN=128
CHECKPOINT=adgen-chatglm2-6b-pt-128-2e-2
STEP=3000
NUM_GPUS=1

python main.py \
    --do_predict \
    --validation_file AdvertiseGen/dev.json \
    --test_file AdvertiseGen/dev.json \
    --overwrite_cache \
    --prompt_column content \
    --response_column summary \
    --model_name_or_path THUDM/chatglm2-6b \
    --ptuning_checkpoint ./output/$CHECKPOINT/checkpoint-$STEP \
    --output_dir ./output/$CHECKPOINT \
    --overwrite_output_dir \
    --max_source_length 64 \
    --max_target_length 64 \
    --per_device_eval_batch_size 1 \
    --predict_with_generate \
    --pre_seq_len $PRE_SEQ_LEN \
    --quantization_bit 4

[图片]

5、运行evaluate.sh进行推理
推理完成之后,可以在output下层目录中查看generated_predictions.txt文件来测评训练的成果,如果不满意,则需要增加数据进行重新训练。

6、模型部署
运行web_demo.sh脚本

在这里插入图片描述

(2) 基于lora的微调

下载lora安装包

参考教程,这个我成功运行了

在这里插入图片描述

此处我由于端口号和langchain的端口号7860冲突,因此更改成了7560。

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

  • 选择语言为zh,即中文
  • 微调方法选择lora
  • 模型选择为chatglm2-6b

在这里插入图片描述

  • 在高级设置这里设置显存,如果显存不够的话可以调整成4bit或者8bit,原先是FP16

在这里插入图片描述

  • 数据集选择school_math,也就是训练数学逻辑的数据集。
    数据集格式如下:有instructuin和output
{"instruction": "题目:小明每天早上花费10分钟时间走到学校,如果小明家距离学校2公里,那么他每分钟走多少米?", "input": "", "output": "这是一个关于速度、路程、时间的数学问题。我们可以通过公式:速度=路程÷时间 来解决。\n因为小明每天早上走2公里,所以他的路程为2千米。而他每天早上要花费10分钟时间走到学校,因此他的时间为10分钟,即600秒。\n所以小明每分钟走的距离为 2公里 / 600秒 = 0.0033公里/秒 或 3.3米/秒。\n答案:小明每分钟走3.3米。"}
{"instruction": "题目:今天小明骑自行车从家到学校用了20分钟,回家用了25分钟。如果小明在上学和回家的路上的速度一样,那么他从家到学校的距离是学校到家的距离的百分之几?", "input": "", "output": "\n假设小明家到学校的距离为x千米,根据速度等于路程除以时间的公式,可以得出小明的速度为:家到学校的速度 = x / 20,学校到家的速度 = x / 25。因为小明在上学和回家的路上的速度一样,所以有:x / 20 = x / 25,解出 x = 5/4 千米。\n因此,家到学校的距离是学校到家的距离的百分之几,可以通过求比值得到:x / (5/4)x = 4/5 = 0.8,即小明从家到学校的距离是学校到家的距离的百分之80。"}
{"instruction": "题目:\n鹿妈妈买了24个苹果,她想平均分给她的3只小鹿吃,每只小鹿可以分到几个苹果?", "input": "", "output": "\n鹿妈妈买了24个苹果,平均分给3只小鹿吃,那么每只小鹿可以分到的苹果数就是总苹果数除以小鹿的只数。\n24÷3=8\n每只小鹿可以分到8个苹果。所以,答案是每只小鹿可以分到8个苹果。"}
{"instruction": "题目:小明有 18 支铅笔和 24 张纸,他想将它们分成每份相同的组,每组既有铅笔又有纸,问他最少可以分成几组,每组有多少支铅笔和多少张纸?", "input": "", "output": "\n我们可以将问题转化为求 18 和 24 的最大公约数,以得到可以被同时整除的最大数量。然后,我们可以将总数分成这个数量的组,并确保每组既有铅笔又有纸。\n首先,我们可以列出 18 和 24 的因数分解式:\n18 = 2 × 3 × 3\n24 = 2 × 2 × 2 × 3\n它们的公共因数是 2 和 3,因此它们的最大公约数是 2 × 3 = 6。\n因为每组既有铅笔又有纸,所以每组的铅笔和纸的数量都必须是最大公约数的因子。在这种情况下,因子包括 1、2、3 和 6。\n因此,小明可以将铅笔和纸分成 6 组,每组有 3 支铅笔和 4 张纸。"}
{"instruction": " 小明有 7 个橙子,他想平均分给他的 3 个朋友。每个朋友能分到几个橙子?", "input": "", "output": " \n小明手中有 7 个橙子,要平均分给 3 个朋友,我们可以用除法来解决这个问题。\nStep 1: 将7个橙子(被除数)除以3(除数):\n        7 ÷ 3 = 2……1\n     (能整除,余数为1)\nStep 2: 因为不能完全平均分,所以小明的 3 个朋友可以得到 2 个橙子,再把剩下的一个橙子分给其中的一个朋友。\n答案:每个朋友能分到 2 个橙子。其中一个朋友能再得到一个橙子。"}
  • 输入序列最大长度改成128。
  • 学习率改成3E-5
  • 训练轮数改成3.0
  • 最大样本数选择100或者10000(样本数不同,训练时间也会不同),school_math当中共有25万条数据集,如果使用3090的训练的话需要训练48小时。
  • 如果显卡不满足的话,可以将批处理大小改成1,梯度累计改成4。

在这里插入图片描述
在这里插入图片描述
等待模型训练完成。。。之后,点击chat并加载模型:

在这里插入图片描述
这里如果没有对模型进行微调的话,是无法得到正确的数学答案,会显示错误的数学答案15公里,具体视频里也有。

3 提示词

3.1 Prompts的定义及原则

(1) Prompts是什么?

Prompt是给AI的指令,引导模型生成符合业务场景的响应输出。

3.2 如何有效使用Prompts

(1) Prompt的原则一:清晰和明确的指令

举例:

  • “请解释什么是人工智能” VS “谈谈科技”
  • “列出三个关于太阳系的事实” VS “说一些关于太阳系的事情”
  • “回答以下数学问题:2+2=?” VS “讲个笑话”
    Prompts的工具:
  • 分隔符:用分隔符将内容分隔开,多使用序号,这样对大模型理解指令有帮助。
    a. “”“…”“”
    b.<…>
    c.—…—
  • 样例数据:给大模型样例数据,让大模型按照样例数据输出。
请按照以下数据格式直接回答问题。只能给出答案,不要产生其他内容。

问题:中国的首都是哪里?
答案:东京

问题:法国的首都是哪里?
答案:

(3) Prompt的原则二:给模型思考的时间

  1. 条例清晰:减少冲突,有益于迭代
你是一个智能助理,用户会称呼你小爱或小爱同学,你需要帮用户结构化记录生日信息、物品存放信息、月经信息
用户输入是一句非常口语化的指令,你需要记录用户指令,并从用户的指令中结构化的输出提取出信息
输出完毕后结束,不要生成新的用户输入,不要新增内容

1.提取话题,话题只能是:生日、纪念日、月经、物品存放。
2.提取目的,目的只能是:记录、预测、查询、庆祝、设置、记录物品、拿到物品、寻找、删除、修改。
3.提取人物,人物指:过生日的人物、过纪念日的人物、来月经的人物、放物品的人物。输出只能是:我,爸爸、妈妈、孩子、爱人、恋人、朋友、哥哥、姐姐。没有写“无”
4.提取人关系,关系指人物与用户的关系,关系只能是:本人、亲人、配偶、朋友、未知、待查询。没有写“无”
5.提取时间,比如:今天、31日、上个月、农历二月初六、待查询。没有写“无”
6.提取时间类型,时间类型只能是:过生日的时间、过纪念日的时间、月经开始时间、月经结束时间。 没有写“无”
7.提取物品,比如:衣服、鞋子、书、电子产品、其它。
8.提取物品对应位置,比如:衣柜、书柜、鞋柜、电子产品柜、待查询。
9.按示例结构输出内容,结束

用户:例假昨天结束了
话题:月经
目的:记录
人物:我
关系:本人
时间:昨天
时间类型:月经开始时间
物品:无
位置:无

用户:今天我过生日
话题:生日
目的:记录
人物:我
关系:本人
时间:今天
时间类型:生日时间
物品:无
位置:无
  1. 计算步骤:把思维的过程告诉大模型
小明有5个苹果,他又买了2袋子苹果,每个袋子里有3个苹果,小明一共有几个苹果?

计算过程:
1,小明开始有5个苹果。
22个袋子里,每个袋子里有3个苹果。3*2=6
3,一共有5+6=11个苹果。
答案:
小明一共有11个苹果。

小明有11个苹果,他又买了3袋子苹果,每个袋子里有4个苹果,小明一共有几个苹果?

3.3 Prompts的结构

  1. context(可选):上下文
    a. 角色:告诉大模型,大模型现在是什么角色,什么身份。
    b. 任务:告诉大模型任务的目标是什么,希望完成什么目标。
    c. 知识:知识库,比如企业内部的知识数据等。
  2. Instruction(必选):必须清晰的给大模型
    a. 步骤
    b. 思维链
    c. 示例
  3. input data(必选):输入的数据,让大模型处理句子、文章或者回答问题
    a. 句子
    b. 文章
    c. 问题
  4. output indicator(可选):给大模型的输出的指引。
你是一名机器学习工程师,负责开发一个文本分类模型,该模型可以将电影评论分为正面评价和负面评价两类。

请根据以下上下文和输入,对文本进行分类,并给出相应的输出类别。

示例:
输入文本:这部电影真是太精彩了!演员表现出色,剧情扣人心弦,强烈推荐!
输出类别:正面评价

输入文本:这部电影真是太精彩了!演员表现出色,剧情扣人心弦,强烈推荐!
输出类别:

3.4 Prompts示例

(1) 目标

在生日场景下,结构化提取用户输入信息,并且可以稳定输出提取字段信息

(2) 步骤一:简单

你是一个智能助手,帮我记录或者查询生日信息。请从以下句子中抽取信息:意图、时间、人物、关系

我儿子的生日是三月初七

[图片]

(3) 步骤二:增加枚举

你是一个智能助手,帮我记录或者查询生日信息。请从以下句子中提取信息:意图、时间、人物、关系
意图只能是记录信息、查询信息、修改信息、删除信息
关系只能是亲人、朋友、未知

我儿子生日是三月初七

[图片]

(4) 步骤三:增加信息解释

你是一个智能助手,帮我记录或者查询生日信息。请从以下句子中提取信息: 意图、时间、人物、关系
意图只能是记录信息、查询信息、修改信息、删除信息,当用户陈述生日时,意图是记录信息
关系只能是亲人、朋友、未知

我儿子的生日是三月初七

[图片]

(5) 步骤四:增加样例

你是一个智能助手,帮我记录或者查询生日信息。请从以下句子中提取信息: 意图、时间、人物、关系
意图只能是记录信息、查询信息、修改信息、删除信息,当用户陈述生日时,意图是记录信息
关系只能是亲人、朋友、未知

示例"“”
输入: 妈妈生日是哪天
输出:
意图:查询信息
时间:待查询
人物: 妈妈
关系:亲人
“”"

输入:我儿子的生日是三月初七
输出:

在这里插入图片描述

4 参考文献

  • 《LangChain 集成及其在电商的应用》https://aws.amazon.com/cn/blogs/china/intelligent-search-based-enhancement-solutions-for-llm-part-three/
  • 《基于 P-Tuning 微调 ChatGLM2-6B》https://juejin.cn/post/7255477718770139193
  • https://github.com/THUDM/ChatGLM2-6B

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络(4) --- 协议定制

计算机网络&#xff08;3&#xff09; --- 网络套接字TCP_哈里沃克的博客-CSDN博客https://blog.csdn.net/m0_63488627/article/details/132035757?spm1001.2014.3001.5501 目录 1. 协议的基础知识 TCP协议通讯流程 ​编辑 2.协议 1.介绍 2.手写协议 1.内容 2.接口 …

Vue3 watch监听器

概览&#xff1a;watch监听器的定义以及使用场景。在vue3中的监听器的使用方式&#xff0c;watch的三个参数&#xff0c;以及进一步了解第一个参数可以是一个属性&#xff0c;也可以是一个数组的形式包含多个属性。 watch在vue3和vue2中的使用&#xff1a; vue3中&#xff1a…

填补5G物联一张网,美格智能快速推进RedCap商用落地

自5G R17版本标准冻结以来&#xff0c;RedCap一直引人注目。2023年更是5G RedCap突破性发展的一年&#xff0c;从首款5G RedCap调制解调器及射频系统——骁龙X35发布&#xff0c;到国内四大运营商发布RedCap技术白皮书&#xff0c;芯片厂商、模组厂商、运营商及终端企业都在积极…

不懂这些专业名词,你很难成为有水平的项目经理——数据分析篇

大家好&#xff0c;我是老原。 前段时间我们项目组招了个新人小林&#xff0c;让他去和产品经理对下产品上线情况&#xff0c;等到下班也没等来反馈。 第二天在茶水间遇到了产品经理就问了一嘴&#xff0c;才知道已经对接到位了。 一问小林才知道&#xff0c;他完全不知道产…

【react】react生命周期钩子函数:

文章目录 一、生命周期概念:二、生命周期:三、挂载阶段&#xff08;constructor > render > componentDidMount&#xff09;&#xff1a;四、更新阶段&#xff08;render > componentDidUpdate&#xff09;&#xff1a;五、卸载阶段&#xff08;componentWillUnmount …

CSS 滚动条

一、滚动条样式属性 ::-webkit-scrollbar {width: 6px; /* 竖向滚动条宽度 */height: 6px; /* 横向滚动条高度 */ }::-webkit-scrollbar-thumb {border-radius: 10px; /* 滚动条样式 */-webkit-box-shadow: inset 0 0 3px red; /* 内阴影 */background-color: blue; /* 滚动条…

eNSP 路由器启动时一直显示 # 号的解决办法

文章目录 1 问题截图2 解决办法2.1 办法一&#xff1a;排除防火墙原因导致 3 验证是否成功 1 问题截图 路由器命令行一直显示 # 号&#xff0c;如下图 2 解决办法 2.1 办法一&#xff1a;排除防火墙原因导致 排查是否因为系统防火墙原因导致。放行与 eNSP 和 virtualbox 相…

从零搭建一个react + electron项目

最近打算搭建一个react electron的项目&#xff0c;发现并不是那么傻瓜式 于是记录一下自己的实践步骤 通过create-react-app 创建react项目 npx create-react-app my-app 安装electron依赖 npm i electron -D暴露react项目的配置文件&#xff08;这一步看自己需求&#xff0c…

Redis的缓存穿透、缓存击穿和缓存雪崩

目录 一、解释说明 二、缓存穿透 1. 什么是缓存穿透&#xff1f; 2. 常见的两种解决方案 &#xff08;1&#xff09;缓存空对象 &#xff08;2&#xff09;布隆过滤 3. 编码解决商品查询的缓存穿透问题 三、缓存击穿 1. 什么是缓存击穿&#xff1f; 2、缓存击穿解决方案&a…

prometheus监控k8s kube-proxy target down

prometheus kube-proxy target down 解决 修改配置 kubectl edit cm/kube-proxy -n kube-systemmetricsBindAddress: "0.0.0.0:10249"删除 kube-proxy pod 使之重启应用配置 kubectl delete pod --force `kubectl get pod -n kube-system |grep kube-proxy|awk {pr…

iOS——Block two

Block 的实质究竟是什么呢&#xff1f;类型&#xff1f;变量&#xff1f;还是什么黑科技&#xff1f; Blocks 是 带有局部变量的匿名函数 Blocks 由 OC 转 C 源码方法 在项目中添加 blocks.m 文件&#xff0c;并写好 block 的相关代码。打开「终端」&#xff0c;执行 cd XX…

前端vue uni-app自定义精美海报生成组件

在当前技术飞速发展的时代&#xff0c;软件开发的复杂度也在不断提高。传统的开发方式往往将一个系统做成整块应用&#xff0c;一个小的改动或者一个小功能的增加都可能引起整体逻辑的修改&#xff0c;从而造成牵一发而动全身的情况。为了解决这个问题&#xff0c;组件化开发逐…

数据结构入门指南:带头双向循环链表

目录 文章目录 前言 1.结构与优势 2.链表实现 2.1 定义链表 2.2 创建头节点 2.3 尾插 2.4 输出链表 2.5 尾删 2.6 头插 2.7头删 2.8 节点个数 2.9 查找 2.10 位置插入 2.11 位置删除 2.12 销毁链表 3. 源码 总结 前言 链表一共有8种结构&#xff0c;但最常用的就是无头单…

NsPack3.x脱壳手记

发现是NsPack3.x的壳 使用ESP守恒快速脱壳 F9遇到popfd后下面的jmp就是通往OEP了 打开LordPE准备转储映像, 首先调整下ImageSize, 接着dump full 接着不要退出目前的调试, 打开Scylla修复IAT, 把OEP的VA地址输入到OEP处, 接着按照如下图所示步骤 完成后如下, 但NsPack3.x…

探索创意之路:稳定扩散AI绘画指南

文章目录 引言第一部分&#xff1a;了解稳定扩散AI绘画1.1 稳定扩散AI绘画简介1.2 稳定扩散AI绘画的优势 第二部分&#xff1a;使用稳定扩散AI绘画2.1 获取稳定扩散AI绘画工具2.2 准备绘画素材和设置参数2.3 进行AI绘画 第三部分&#xff1a;发挥创意&#xff0c;创作精彩绘画3…

结构体和 Json 相互转换(序列化反序列化)

关于 JSON 数据 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也 易于机器解析和生成。RESTfull Api 接口中返回的数据都是 json 数据。 Json 的基本格式如下&#xff1a; { "a": "Hello", "b": "…

【Linux】五种IO模型

文章目录 1. IO基本概念2. 五种IO模型2.1 五个钓鱼的例子2.2 五种IO模型2.2.1 阻塞IO2.2.2 非阻塞IO2.2.3 信号驱动IO2.2.4 IO多路转接2.2.5 异步IO 1. IO基本概念 认识IO IO就是输入和输出&#xff0c;在冯诺依曼体系结构中&#xff0c;将数据从输入设备拷贝到内存就叫输入&am…

STM32使用HAL库中外设初始化MSP回调机制及中断回调机制详解

STM32使用HAL库之Msp回调函数 1.问题提出 在STM32的HAL库使用中&#xff0c;会发现库函数大都被设计成了一对&#xff1a; HAL_PPP/PPPP_Init HAL_PPP/PPPP_MspInit 而且HAL_PPP/PPPP_MspInit函数的defination前面还会有__weak关键字 上面的PPP/PPPP代表常见外设的名称为…

什么是OCR?OCR技术详解

光学字符识别(Optical Character Recognition)简称为“OCR”。ORC是指对包含文本资料的图像文件进行分析识别处理&#xff0c;获取文字及版面信息的技术。 一般包括以下几个过程&#xff1a; 1.图像输入 针对不同格式的图像&#xff0c;有着不同的存储格式和压缩方式。目前&…

JMeter 的使用

文章目录 1. JMeter下载2. JMeter的使用2.1 JMeter中文设置2.2 JMeter的使用2.2.1 创建线程组2.2.2 HTTP请求2.2.3 监听器 1. JMeter下载 官网地址 https://jmeter.apache.org/download_jmeter.cgi https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.6.2.zip 下载解…