😀
Intersection of AI and Web Development
HomeKnowledgeGitHubDiscussions
  • 👋Welcome!
  • Before Start
    • 主流平台
    • 名词概念
      • Token
      • Prompt
      • Temperature
      • Top K and Top P
      • Vector & Embeddings
    • CoT and ReAct
  • Practice
    • 发起一次提问和对话
    • Server-Sent Events流式对话
      • 客户端调用
      • 服务端处理
    • Openai Function Calling
      • 获取当前时间 - function calling
      • FunctionCalling实现实时搜索
        • openai functions 入参
        • 设定 functions
    • 通过Embeddings实现PDF检索
      • 上传识别PDF
      • 获取文本,按句整理
      • 上传并按限定长度分割Documents
      • Openai Embeddings 向量化及存储
    • 结合语音输入实现对话
      • 通过麦克风识别语音输入
      • Memory Chat & Conversation
    • Chrome侧边栏对话插件
  • Others
    • Framework and SDK
由 GitBook 提供支持
在本页
  • Top K(number)
  • Top P(probability)

这有帮助吗?

  1. Before Start
  2. 名词概念

Top K and Top P

上一页Temperature下一页Vector & Embeddings

最后更新于1年前

这有帮助吗?

除了temperature之外,还有两个参数会控制返回的结果

Top K(number)

表示从最高的N个结果里面随机的选择1个,top_k设置允许其他高分值的词又被选中的可能性。

然而如果模型命中的词的概率非常偏科,比如第概率最大的那个词有0.9,剩下的词是0.03,0.02,那么在这种情况下,当你设置top_k > 1时,极大可能是返回的结果完全不是你想要的。这也造成了设置一个最佳top_k的难度很高。

Top P(probability)

由此又引出了另一个参数,Top P。模型将会使用这个值来获取对应概率质量的Token结果。0.1表示仅考虑前10%概率质量的Token。

在 Top-p 中,采样不只是在最有可能的 K 个单词中进行,而是在累积概率超过概率 p 的最小单词集中进行。然后在这组词中重新分配概率质量。这样,词集的大小 (又名 集合中的词数) 可以根据下一个词的概率分布动态增加和减少。

假设 p=0.92,Top-p 采样对单词概率进行降序排列并累加,然后选择概率和首次超过 p=92% 的单词集作为采样池,定义为 V top-p。在 第一个示例中V top-p ​有 9 个词,而在第二个示例它只需要选择前 3 个词就超过了 92%。其实很简单吧!可以看出,在单词比较不可预测时,它保留了更多的候选词,如 P(w∣"The”),而当单词似乎更容易预测时,只保留了几个候选词,如 P(w∣"The","car")。

在这个例子中,第一个词 The 之后的预测结果由一堆小概率的词,这些小概率的词集合超过0.92后组成新的词集,然后在Top K的影响下随便选中一个。

在 car 被随机选中之后,新的预测结果就由前3个大概率的词和一堆极小概率的词组成,由于前3个词的累加已经超过了Top P 0.92,因此在这里只有前3个词被组成新的词集再通过Top K在这3个词中随机选择。

Reference:

How to generate text