一:大模型的问答工作流程
1.1: 分词和向量化
如上图所示,我们如果让大模型去回答问题,首先我们会输入一些文字给到大模型,大模型本质上是个数学模型,它是理解不了人类的整句话的,所以它会把我们的对应的句子首先切分成单词词组,然后会进一步把切分之后的单词词组进行向量化;这就是我们所说的分词和向量化;
1.2: 选词和自回归
上面说了,大模型本质上还是个数学模型,所以需要把得到的很多词组变成一个个向量它才能理解,然后基于它之前学到的知识,它会计算出下一个词和这些输入的词组成的一个序列的概率有多大,挑选出来那些概率不小的,然后随机选出来一个词作为这个后面的输出,因为是随机选择,所以很多时候我们会看到即时我们输入同一个问题,大模型给出的回答也会不一样
然后这个选出的词又会继续作为输入序列,继续上述的推理选词和输出,这个过程就可以叫做自回归,像堆积木似的,选出来一个合适的积木,堆上去,然后基于现有的框架继续选取比较合适的,最终等积木达到了一定高度或者说给出的答案长度达到限制大模型就会停止输出了。
1.3: 参数的选择
那么如果我们想让大模型每次的输出都大部分是一致的,应该如何呢?这里只说我们调用api可以控制的两个参数,分别是temperature 和 对应的top_p 两个参数,temperature 的意思是温度,我突然想到了炼铁所需的温度,大家想想,如果炼铁的温度很高,铁都变成铁水了,是不是后期可以变成多种多样的各种工具,温度很低的时候,可能刚开始这个产出品就是固定的,所以温度越低,产出就趋向于稳定;温度越高,产出就越多样;我们这里的这个temperature也一样,最终大模型的输出的多样性也取决于这个temperateure,如下所示:
那么对应的top_p呢?top_p 字面上的意思可能会让人理解错误,看的是顶级或者最大概率,但是实际上它是累积概率,是那些候选词的累积概率的映射,如果这个top_p 越小,说明它对应的候选的token 的概率和就越小,它对应的候选token就越少,故而生成的token就相对越稳定,反之亦然,如下所示: