ChatGLM3-6B 的调用参数说明,chat 与stream_chat 接口函数的参数说明

ChatGLM3-6B 是一个语言大模型,最近在评估这个模型,但发现它的文档有限,只能从demo代码中猜测调用的参数的含义,准确度是有限的;于是,通过查看源代码来研究,目前整理笔记如下:

ChatGLM3-6B 的调用接口有两个,一个是chat接口,一个是stream_chat接口

[接口函数的实现位于代码 chatglm3-6b/blob/main/modeling_chatglm.py](#接口函数的实现位于代码 chatglm3-6b/blob/main/modeling_chatglm.py)中

一、chat接口

chat接口的原型如下:

python 复制代码
def chat(self, tokenizer, query: str, history: List[Dict] = None, role: str = "user",
             max_length: int = 8192, num_beams=1, do_sample=True, top_p=0.8, temperature=0.8, logits_processor=None,
             **kwargs):

参数说明如下:

|----------------------|--------------------------------------------------------------------|---------|
| 参数名 | 参数含义 | 默认值 |
| tokenizer | 用于处理输入和输出文本的tokenizer对象。由前面的 AutoTokenizer.from_pretrained 调用返回的对象 | |
| query | str 类型,用户输入的任何文本 | |
| history | List[Dict],可选参数;对话历史,每一项都是一个字典,包含角色('role')和内容('content')。 | None |
| role | str, 可选参数;输入文本的角色,可以是'user'或者'assistant'。 | user |
| max_length | int, 可选;生成文本的最大长度。 | 8192 |
| num_beams | int, 可选;Beam搜索的宽度,如果值大于1,则使用Beam搜索 | 1 |
| do_sample | bool, 可选;是否从预测分布中进行采样,如果为True,则使用采样策略生成回复。 | True |
| top_p | float, 可选;用于控制生成回复的多样性 | 0.8 |
| temperature | float, 可选;控制生成文本的随机性的参数 | 0.8 |
| logits_processor | LogitsProcessorList, 可选;用于处理和修改生成步骤中的logits的对象 | None |
| **kwargs | 其他传递给模型生成函数的参数 | |

返回值:

response (str) : 模型的响应文本。
history (List[Dict]): 更新后的对话历史。

二、stream_chat 接口

流式聊天函数,接受一段文本查询,返回模型的响应。这个函数返回的是一个生成器,可以在流式处理中使用。

该接口函数的原型定义如下:

python 复制代码
def stream_chat(self, tokenizer, query: str, history: List[Dict] = None, role: str = "user",
                    past_key_values=None,max_length: int = 8192, do_sample=True, top_p=0.8, temperature=0.8,
                    logits_processor=None, return_past_key_values=False, **kwargs):

参数说明如下:

|----------------------------|--------------------------------------------------------------------|---------|
| 参数名 | 参数含义 | 默认值 |
| tokenizer | 用于处理输入和输出文本的tokenizer对象。由前面的 AutoTokenizer.from_pretrained 调用返回的对象 | |
| query | str,必须参数;用户输入的任何聊天文本。 | |
| history | List[Dict], 可选;对话历史,每一项都是一个字典,包含角色('role')和内容('content')。 | None |
| role | str, 可选: 输入文本的角色,可以是'user'或者'assistant'。 | user |
| past_key_values | List[Tensor], 可选;用于transformer模型的过去的键值对 | None |
| max_length | int, 可选: 生成文本的最大长度. | 8192 |
| do_sample | bool, 可选;是否从预测分布中进行采样 | True |
| top_p | float, 可选: 用于控制生成回复的多样性。 | 0.8 |
| temperature | float, 可选;控制生成文本的随机性的参数 | 0.8 |
| logits_processor | LogitsProcessorList, 可选;用于处理和修改生成步骤中的logits的对象。 | None |
| return_past_key_values | bool, 可选): 是否返回过去的键值对,用于下一步的生成。 | False |
| **kwargs | 其他传递给模型生成函数的参数。 | |

返回值:

response (str) : 模型的响应文本。
history (List[Dict]): 更新后的对话历史。
past_key_values (List[Tensor], 可选): 如果return_past_key_values为True,返回用于下一步生成的过去的键值对。

相关推荐
bryant_meng20 分钟前
【python】OpenCV—Image Moments
开发语言·python·opencv·moments·图片矩
若亦_Royi44 分钟前
C++ 的大括号的用法合集
开发语言·c++
KevinRay_1 小时前
Python超能力:高级技巧让你的代码飞起来
网络·人工智能·python·lambda表达式·列表推导式·python高级技巧
Captain823Jack1 小时前
nlp新词发现——浅析 TF·IDF
人工智能·python·深度学习·神经网络·算法·自然语言处理
资源补给站2 小时前
大恒相机开发(2)—Python软触发调用采集图像
开发语言·python·数码相机
Captain823Jack2 小时前
w04_nlp大模型训练·中文分词
人工智能·python·深度学习·神经网络·算法·自然语言处理·中文分词
m0_748247552 小时前
Web 应用项目开发全流程解析与实战经验分享
开发语言·前端·php
6.942 小时前
Scala学习记录 递归调用 练习
开发语言·学习·scala
PieroPc2 小时前
Python 自动化 打开网站 填表登陆 例子
运维·python·自动化
FF在路上3 小时前
Knife4j调试实体类传参扁平化模式修改:default-flat-param-object: true
java·开发语言