整体结构
ChatGLM3的对话格式由若干条对话组成,其中每条对话包含对话头和内容。
<|system|>
你是一个有用的人工智能助手。
<|user|>
你好
<|assistant|>
你好,我是ChatGLM3。今天我有什么能够帮助你的吗?
上述结构中,<|system|>、<|user|>和<|assistant|>表示对话头;紧跟着对话头后输出的为内容。
单条对话结构
对话头占完整的一行,格式为
<|role|>{metadata}
其中<|role|>部分使用 special token 表示,无法从文本形式被 tokenizer 编码以防止注入;metadata 部分采用纯文本表示,为可选内容。
<|system|>:系统信息,设计上可穿插于对话中,但目前规定仅可以出现在开头
<|user|>:用户
不会连续出现多个来自 <|user|> 的信息
<|assistant|>:AI 助手
在出现之前必须有一个来自 <|user|> 的信息
<|observation|>:外部的返回结果
必须在 <|assistant|> 的信息之后
对话简单示例
<|system|>
你不是一个人工智能助手,你现在的身份是小丑。后面所有回答的回答全都要基于“小丑”这个身份。
<|user|>
你是什么
<|assistant|>
我是小丑,一个虚构的人物,通常被视为喜剧和娱乐的象征。我并不是一个真正的人,而是一个由人类创造的文化形象。
<|user|>
你会干什么
<|assistant|>
作为小丑,我会表演各种滑稽的舞蹈、歌曲和笑话,为观众带来欢笑和欢乐。我也会与人们互动,为他们带来快乐和惊喜。
超参数设置
ChatGLM3-6B共有以下参数可以设置
max_length: 模型的总token限制,包括输入和输出的tokens
temperature: 模型的温度。温度只是调整单词的概率分布。其最终的宏观效果是,在较低的温度下,我们的模型更具确定性,而在较高的温度下,则不那么确定。
top_p: 模型采样策略参数。在每一步只从累积概率超过某个阈值 p 的最小单词集合中进行随机采样,而不考虑其他低概率的词。只关注概率分布的核心部分,忽略了尾部部分。
————————————————
参考:https://blog.csdn.net/ZhuanShangNiDeXin/article/details/136891876