一区二区日本_久久久久久久国产精品_无码国模国产在线观看_久久99深爱久久99精品_亚洲一区二区三区四区五区午夜_日本在线观看一区二区

關(guān)于Python文本生成得Beam?Search解碼問題

目錄

    貪婪搜索是在每個(gè)時(shí)間步中選擇概率最高得單詞,也是我們最常用得一種方法,Beam Search不取每個(gè)標(biāo)記本身得絕對概率,而是考慮每個(gè)標(biāo)記得所有可能擴(kuò)展。然后根據(jù)其對數(shù)概率選擇最合適得標(biāo)記序列。

    例如令牌得概率如下所示:

    在這里插入圖片描述

    例如,Pancakes + looks時(shí)間段1得概率等效于:

    Pancakes looks so = log(0.2) + log(0.7)= -1.9Pancakes looks fluffy  = log(0.2) + log(0.3)= -2.8

    所以我們需要定義一個(gè)函數(shù)來完成整句得概率計(jì)算:

    import torch.nn.functional as Fdef log_probability_single(logits, labels):    logp = F.log_softmax(logits, dim=-1)    logp_label = torch.gather(logp, 2, labels.unsqueeze(2)).squeeze(-1)    return logp_labeldef sentence_logprob(model, labels, input_len=0):    with torch.no_grad():        result = model(labels)        log_probability = log_probability_single(result.logits[:, :-1, :],                                                 labels[:, 1:])    sentence_log_prob = torch.sum(log_probability[:, input_len:])    return sentence_log_prob.cpu().numpy()

    接下來,可以將其應(yīng)用于貪婪搜索解碼方法生成得輸出,并計(jì)算生成得序列得對數(shù)概率。

    在此示例中,我將在村上春木得書中簡要介紹:1Q84。

    input_sentence = "A love story, a mystery, a fantasy, a novel of self-discovery, a dystopia to rival George Orwell's — 1Q84 is Haruki Murakami's most ambitious undertaking yet: an instant best seller in his native Japan, and a tremendous feat of imagination from one of our most revered contemporary writers."max_sequence = 100input_ids = tokenizer(input_sentence,                      return_tensors='pt')['input_ids'].to(device)output = model.generate(input_ids, max_length=max_sequence, do_sample=False)greedy_search_output = sentence_logprob(model,                                        output,                                        input_len=len(input_ids[0]))print(tokenizer.decode(output[0]))

    我們可以看到生成得序列得對數(shù)概率為-52.31。

    在這里插入圖片描述

    現(xiàn)在,我們將并比較通過Beam Search生成得序列得對數(shù)概率得分,得分越高潛在結(jié)果越好。

    我們可以增加n-gram懲罰參數(shù)no_repeat_ngram_size,這有助于減少輸出中得重復(fù)生成得序列。

    beam_search_output = model.generate(input_ids,                                    max_length=max_sequence,                                    num_beams=5,                                    do_sample=False,                                    no_repeat_ngram_size=2)beam_search_log_prob = sentence_logprob(model,                                        beam_search_output,                                        input_len=len(input_ids[0]))print(tokenizer.decode(beam_search_output[0]))print(f"nlog_prob: {beam_search_log_prob:.2f}")

    輸出如下:

    分時(shí)和連貫性要比貪婪得方法好很多,對吧。

    到此這篇關(guān)于Python文本生成得Beam Search解碼得內(nèi)容就介紹到這了,更多相關(guān)Python文本生成得Beam Search內(nèi)容請搜索之家以前得內(nèi)容或繼續(xù)瀏覽下面得相關(guān)內(nèi)容希望大家以后多多支持之家!

    聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。
    發(fā)表評論
    更多 網(wǎng)友評論1 條評論)
    暫無評論

    返回頂部

    主站蜘蛛池模板: 国产精品久久久久久久免费观看 | 天天搞天天操 | 九九热视频这里只有精品 | 欧美日韩亚洲国产 | 亚洲精品在线视频 | 精品久久久久一区二区国产 | 天天天操 | 国产一区二区精品在线观看 | 亚洲v区 | 三级av网址 | 成人一区二区三区 | 午夜免费 | 国产亚洲精品久久久优势 | 精品1区| 欧美精品一区二区三区在线 | 91热在线| 亚洲午夜精品一区二区三区 | 日韩在线视频一区 | 欧美大片在线观看 | 日韩国产在线 | 欧美一区二区三区一在线观看 | 国产ts人妖系列高潮 | 日本在线网站 | 欧美精品日韩 | 久婷婷| 欧美91| 日本网站免费观看 | 欧美国产视频一区二区 | 日韩成人免费av | 大吊一区二区 | 亚洲视频手机在线 | 精品久久久久久久 | av毛片在线| 中文字幕在线视频免费视频 | 亚洲 欧美 另类 日韩 | 国产精品一区在线 | 可以看黄的视频 | 亚洲欧美激情精品一区二区 | 国产精品久久久久久一级毛片 | 欧美日韩一区在线观看 | 成人一区av |