0

0

Entropix:最大化推理性能的采样技术

花韻仙語

花韻仙語

发布时间:2024-10-14 22:36:20

|

1192人浏览过

|

来源于dev.to

转载

entropix:最大化推理性能的采样技术

根据 entropix readme,entropix 使用基于熵的采样方法。本文讲解了基于熵和变熵的具体采样技术。

熵和变熵

让我们首先解释一下熵和变熵,因为它们是决定采样策略的关键因素。

在信息论中,熵是随机变量不确定性的度量。随机变量 x 的熵由以下等式定义:

Entropix:最大化推理性能的采样技术

  • x:离散随机变量。
  • x_i:x 的第 i 个可能状态。
  • p(x_i):状态 x_i 的概率。

当概率分布均匀时,熵最大化。相反,当特定状态比其他状态更有可能出现时,熵就会减少。

变熵

变熵与熵密切相关,代表信息内容的可变性。考虑到随机变量 x 的信息内容 i(x)、熵 h(x) 和方差,变熵 v e(x) 定义如下:

Entropix:最大化推理性能的采样技术

当概率 p(x_i) 变化很大时,变熵变大。当概率均匀时(无论是当分布具有最大熵时,还是当一个值的概率为 1 而所有其他值的概率为 0 时),它会变小。

抽样方法

接下来,让我们探讨一下采样策略如何根据熵和变熵值而变化。

Entropix:最大化推理性能的采样技术

1. 低熵、低变熵 → argmax

在这种情况下,特定令牌的预测概率比其他令牌高得多。由于下一个标记几乎确定,因此使用 argmax

if ent < 0.1 and vent < 0.1:
    return torch.argmax(logits[:, -1], dim=-1, keepdim=true).to(torch.int32)

代码链接

Ke361开源淘宝客系统
Ke361开源淘宝客系统

Ke361是一个开源的淘宝客系统,基于最新的ThinkPHP3.2版本开发,提供更方便、更安全的WEB应用开发体验,采用了全新的架构设计和命名空间机制, 融合了模块化、驱动化和插件化的设计理念于一体,以帮助想做淘宝客而技术水平不高的朋友。突破了传统淘宝客程序对自动采集商品收费的模式,该程序的自动 采集模块对于所有人开放,代码不加密,方便大家修改。集成淘点金组件,自动转换淘宝链接为淘宝客推广链接。K

下载

2. 低熵、高变熵 → 分支

当有一定的信心,但存在多种可行的选择时,就会发生这种情况。在这种情况下,分支策略用于从多个选择中进行采样并选择最佳结果。

elif ent < 5.0 and vent > 5.0:
    temp_adj = 1.2 + 0.3 * interaction_strength
    top_k_adj = max(5, int(top_k * (1 + 0.5 * (1 - agreement))))
    return _sample(logits, temperature=min(1.5, temperature * temp_adj), top_p=top_p, top_k=top_k_adj, min_p=min_p, generator=generator)

代码链接

虽然这个策略被称为“分支”,但当前的代码似乎是调整采样范围并选择单个路径。 (如果有人有更多见解,我们将不胜感激。)

3. 高熵、低变熵 → cot 或插入暂停令牌

当下一个标记的预测概率相当均匀时,表明下一个上下文不确定,则插入一个澄清标记来解决歧义。

elif ent > 3.0 and vent < 0.1:
    if not torch.isin(gen_tokens[:,-1], torch.tensor([2564], device=device)).any():
        return torch.tensor([[2564]], dtype=torch.int32, device=device)
    else:
        temp_adj = 1.3 + 0.2 * attn_ent
        return _sample(logits, temperature=min(1.5, temperature * temp_adj), top_p=top_p, top_k=top_k, min_p=min_p, generator=generator)

代码链接

4. 高熵、高变熵 → 重采样

在这种情况下,存在多个上下文,并且下一个标记的预测概率较低。 重采样策略使用更高的温度设置和更低的top-p。

elif ent > 5.0 and vent > 5.0:
    temp_adj = 2.0 + 0.5 * attn_vent
    top_p_adj = max(0.5, top_p - 0.2 * attn_ent)
    return _sample(logits, temperature=max(2.0, temperature * temp_adj), top_p=top_p_adj, top_k=top_k, min_p=min_p, generator=generator)

代码链接

中级案例

如果以上条件均不满足,则执行自适应采样。采取多个样本,根据熵、变熵和注意力信息计算最佳采样分数。

else:
    return adaptive_sample(
        logits,
        metrics,
        gen_tokens,
        n_samples=5,
        base_temp=temperature,
        base_top_p=top_p,
        base_top_k=top_k,
        generator=generator
    )

代码链接


参考

  • entropix 存储库
  • entropix 在做什么?

相关文章

数码产品性能查询
数码产品性能查询

该软件包括了市面上所有手机CPU,手机跑分情况,电脑CPU,电脑产品信息等等,方便需要大家查阅数码产品最新情况,了解产品特性,能够进行对比选择最具性价比的商品。

下载

相关标签:

git

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

43

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

84

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

24

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

35

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

16

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

56

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

16

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

9

2026.01.15

ppt一键生成相关合集
ppt一键生成相关合集

本专题整合了ppt一键生成相关教程汇总,阅读专题下面的的文章了解更多详细内容。

26

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Git 教程
Git 教程

共21课时 | 2.7万人学习

Git版本控制工具
Git版本控制工具

共8课时 | 1.5万人学习

Git中文开发手册
Git中文开发手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号