Advertisement

fairseq beam search 源码阅读笔记

阅读量:

说明

采用的fairseq版本为0.6.2
fairseq中实现beam search的逻辑代码位于fairseq.sequence_generator.SequenceGanerator:generate
SequenceGenerator模块承担了整个搜索流程的处理工作,其运行机制大致如下:

  • 在每个时间步长中,通过调用self.search.step方法获取可能的候选序列,将搜索过程中遇到EOS标记的结果纳入候选列表,并对相关参数进行更新,随后继续执行下一步搜索操作。
    self.search.step方法则具体实现了用于搜索token的不同策略,例如beam search、带有惩罚机制的beam search以及采样等,相关功能模块位于fairseq.search

代码详细注释

在阅读时由于注释内容不足,因此将代码的逻辑结构直接补充至注释中,以便于理解与查阅。

复制代码
    class SequenceGenerator(object):
    def __init__(
        self,
        tgt_dict,
        beam_size=1,
        max_len_a=0,
        max_len_b=200,
        min_len=1,

全部评论 (0)

还没有任何评论哟~