什么是token? 大模型中token是指一段文本被分词后的处理单元,以汉字为例,分词后有可能是一个汉字,也可能是两个汉字,例如:我们是中国人,就会被分为“我们”“是”“中国”“人”,不同的模型token的长度是不一样的,但这里的token指的是模型单次输入输出的总和。
tiktoken是openai开源的分词器 ,之前我们说大模型是反复预测下一个词,其实更准确的说是预测下一个token,进行分词有助于大模型更好进行理解用户所要表达的意思,还有一些促使大模型进行准确输出的技巧,例如在openai中使用chatgpt,可以利用系统消息对用户消息进行分类,从而可以得出更具体正确的回答,这样做还有一个好处是可以确保用户负责任的使用系统,而不是以某种方式滥用系统,例如暴力,色情,诈骗等等。
在使用大模型的时候,用户可能会通过输入来试图操控系统,以绕过开发者设定的约束条件,这就是我们说的提示词注入,为了防止出现提示词注入,一般有两种处理方式,一种使用明确的分隔符对系统指令和用户消息进行区分,另一种是进行监督分类,就让我们上边所说的,利用系统指令对用户输入进行分类。
思维链推理:要求模型按照指定步骤逐步推理的过程,即我们的提示词可以写成步骤的方式,这有助于大模型可以更精准的理解用户的意图,从而做出更为恰当的回答。
链式提示词:当我们面对更为复杂的任务时,我们可以将任务拆解成一个一个小的任务,并将这些小任务连接起来构成一个工作流,它与思维链推理模式的区别就在于,它没有将所有的推理步骤同时提交给大模型,而是告诉大模型在什么状态下该干什么事,这样做的好处是缩小了任务指定阶段处理的数据量,节省了运行成本,同时还可以在特定步骤调用相应的工具。
我们构建好完整的prompt提示词工程后,一般可以通过制定一个评估标准,然后使用一个大模型对另一个大模型的输出进行持续评估记录,这有助于我们不断对应用进行持续监控优化,这种方式相比传统的模型训练优化要快捷有效的多。