主頁 > 區塊鏈 > 【論文翻譯】NLP—CogLTX: Applying BERT to Long Texts(使用BERT解決長文本問題)

【論文翻譯】NLP—CogLTX: Applying BERT to Long Texts(使用BERT解決長文本問題)

2020-12-28 11:20:44 區塊鏈

摘要

BERT不能處理長文本,因為它的記憶體和時間消耗呈二次增長,解決這個問題的最自然的方法,如用滑動視窗對文本進行切片,或者簡化transformer,使用不充分的長范圍attention,或者需要定制的CUDA內核,,BERT的最大長度限制提醒我們人類作業記憶的容量是有限的(5個~9個區塊),那么人類是如何認知長文本的呢?本文提出的CogLTX 框架基于Baddeley提出的認知理論,通過訓練一個判斷模型來識別關鍵句子,并將其串接進行推理,并通過排練和衰減實作多步驟推理,由于相關性注釋通常是不可用的,我們建議使用干預來創建監督,作為一種通用演算法,CogLTX在不依賴于文本長度的記憶體開銷情況下,在各種下游任務上優于或獲得與SOTA模型相當的結果,

介紹

由BERT開創的Pretrained語言模型已經成為處理許多NLP任務(例如機器閱讀理解-問答和文本分類)的靈丹妙藥,研究人員和工程師可以輕松地按照標準精細化范式構建最先進的應用程式,但最終可能會失望地發現一些文本的長度超過BERT的限制(通常是512個符號),這種情況在標準化基準測驗中可能很少見,例如SQuAD【38】和GLUE【47】,但在更復雜的任務[53]或真實的文本資料中很常見,對于長文本,一個簡單的解決方案是滑動視窗【50】,BERT處理連續的512個標記跨度,這種方法犧牲相距過遠字符“相互映射(pay attention)”,這成為BERT在復雜任務(例如圖1)顯示其功效的瓶頸,因為問題的根源在高時間O (L2)和空間復雜性在transformers[46](L是文本的長度),另一條線的研究試圖簡化的結構transformers【20,37,8,42】,但目前他們已經成功地應用于BERT【35,4】,

圖一
圖1:來自HotpotQA的一個例子(distractor設定,連接),回答這個問題的關鍵句子是第一個和最后一個,彼此之間的距離超過512個符號,在滑動視窗方法中,它們從來沒有出現在同一個BERT輸入視窗中,因此我們無法回答這個問題,

BERT的最大長度限制很自然地提醒了我們有限容量的作業記憶[2]:一種人類的認知系統,用來存盤邏輯推理和決策的資訊,實驗【27,9,31】已經表明,在閱讀程序中,作業記憶僅能容納5個~ 9個條目/單詞,那么人類到底是怎么理解較長的文本的呢?正如Baddeley【2】在其1992年的經典著作中指出的那樣,“中央執行器——(作業記憶)系統的核心,負責協調(多模式)資訊”,然后,“功能類似于一個有限容量的注意力系統,能夠選擇和操作控制程序和策略”,后來的研究詳細說明了作業記憶中的內容會隨著時間的推移而衰減,除非是通過排演【3】來保存,即注意并重繪頭腦中的資訊,然后通過檢索比較【52】,用長期記憶中的相關條目不斷更新被忽略的資訊,在作業記憶中收集足夠的資訊進行推理,BERT和作業記憶之間的類比啟發我們用CogLTX框架像人類一樣認知長文本,CogLTX背后的基本哲學是相當簡潔的——對關鍵句子的串聯進行推理(圖2)——而緊湊的設計則需要在機器和人的推理程序之間架起橋梁,

1111
圖2:BERT任務的主要型別的CogLTX推理,MemRecall是從長文本x中提取關鍵文本塊z的程序,然后將z發送給BERT,稱為reasoner,以完成特定的任務,A (c)任務轉換成多個(b)任務,BERT輸入w.r.t. z用z+表示,

CogLTX的關鍵步驟是MemRecall,即通過將文本塊視為情景記憶來識別相關文本塊的程序, MemRecall模擬了作業記憶的檢索競賽、預演和衰退,便于多步驟推理,另一個BERT,稱為judge,被引入來評分塊的相關性,并與最初的BERT reasoner一起訓練,此外,CogLTX還可以通過干預將面向任務的標簽轉換為相關性注釋,以訓練判斷人員,我們的實驗表明,CogLTX在包括NewsQA[44]、HotpotQA[53]、20個NewsGroups[22]和Alibaba在內的四個任務上優于或達到了相當的性能,無論文本長度如何,記憶體消耗都是恒定的,

背景

長文本的挑戰,長文本的挑戰,對長文本的直接和表面障礙是在BERT[12]中預先訓練的最大位置嵌入通常為512,然而,即使提供了更大位置的嵌入,記憶體消耗也是難以承受的,因為所有的激活都存盤在訓練期間的反向傳播,例如,一個1500-token文本需要大約14.6GB的記憶體才能運行bert -即使批量大小為1,也很大,超過了普通gpu的容量(例如,1個token文本),11GB的RTX 2080ti),此外,O(L2)空間復雜度意味著隨著文本長度L的增加而快速增加,

相關的作業,如圖1所示,滑動視窗法缺乏遠距離關注,以前的作業[49,33]試圖通過均值池、max-池或額外的MLP或LSTM來聚合每個視窗的結果;但這些方法在長距離互動時仍然很弱,需要O(5122·L/512) = O(512L)空間,這在實踐中仍然太大,無法在批量大小為1的RTX 2080ti上訓練2500令牌文本的BERT-large,此外,這些晚聚合方法主要是對分類進行優化,而其他任務,如廣度提取,輸出L BERT值,需要O(L2)空間進行自注意聚合,

在對transformer進行長文本改造的研究中,很多只是壓碩訓重復使用了之前步驟的結果,無法應用到BERT中,如Transformer- xl[8]、compression Transformer[37],Reformer使用位置敏感的散列來實作基于內容的群組關注,但它對GPU不友好,仍然需要對BERT的使用進行驗證,BlockBERT[35]砍掉不重要的注意力頭,將BERT從512令牌提升到1024,最近的里程碑長前[4],定制CUDA內核,以支持視窗注意和全域注意的特殊令牌,然而,由于資料集大多在longformer視窗大小的4倍范圍內,對后者的有效性的研究還不夠充分,“輕量級BERTs”的方向很有前途,但與CogLTX是正交的,這意味著它們可以結合CogLTX來處理較長的文本,因此本文將不再對它們進行比較或討論,詳細的調查可以在[25]中找到,

圖3:用于回答問題的MemRecall插圖,長文本x被分成塊[x0…x40],在第一步中,將排練后的x0和x8保留在z中,x8中的“老學派”將有助于在下一個步驟中檢索答案塊x40,詳見附錄,

方法

CogLTX方法:

CogLTX的這個基本假設是“對于大多數NLP任務來說,文本中的幾個關鍵句子存盤了足夠和必要的資訊來完成任務”,更具體地說,我們假設存在一個由長文本x中的一些句子組成的短文本z,滿足

其中x+和z+是推理機BERT w.r.t的輸入,文本x和z如圖2所示,

我們通過動態編程(見附錄)將每個長文本分割成塊[x0 ... x(T-1],這將塊長度限制為最大B,在我們的實作中,如果BERT長度限制為L = 512,則B = 63,關鍵短文本z應該由x中的若干塊組成,即z = [xz0…xznn 1],滿足len(z+)≤L且z0 <…< znn 1,我們用zi表示xzi,z中的所有塊都會自動排序,以保持x中的原始相對順序,

關鍵塊假設與潛變數模型密切相關,潛變數模型通常用EM[11]或變分貝葉斯[19]求解,但是,這些方法估計z的分布,需要多次采樣,對BERTs來說不夠有效,我們將它們的精髓融入到CogLTX的設計中,并在§3.3中討論了它們之間的聯系,

在CogLTX中,MemRecall和兩個BERTs的聯合訓練是必不可少的,如圖2所示,MemRecall是利用判斷模型檢索關鍵塊的演算法,在推理程序中將關鍵塊送入推理機完成任務

MemRecall

當大腦回憶與作業記憶中當前資訊相關的過去事件時,MemRecall的目的是從長文本x中提取關鍵塊z(見圖3),

輸入,盡管其目的是提取關鍵塊,但三種任務型別的具體設定有所不同,在圖2 (a) (c)中,問題Q或子序列x[i]作為查詢,用于檢索相關塊,但是,(b)中沒有查詢,相關性僅由訓練資料隱式定義,例如,包含“唐納德·特朗普”或“籃球”的句子在新聞話題分類方面比時間報道句子更相關,那么如何無縫地統一這些案例呢?

MemRecall通過接受初始的z+作為x之外的附加輸入來回答這個問題,z+是在MemRecall期間維護的簡短“關鍵文本”,用來模擬作業記憶,任務(a)(c)中的查詢成為z+中的初始資訊,以引發回憶,然后,判斷模型在z+的幫助下學習預測任務特定的相關性,

模型,MemRecall使用的唯一模型是上面提到的 judge,一個BERT來為每個標記評分相關性,假設z+ = [[CLS] Q [SEP]z0[SEP]…znn1),

區塊zi的分數記為judge(z+)[zi],是該區塊中token分數的平均值,

程序,MemRecall始于一場檢索比賽,每個塊xi分配一個粗關聯評分judge([z+[SEP]xi])[xi],得分最高的“勝者”塊插入z, len(z+)≤l,向量空間模型[40]優于向量空間模型[40]的優勢在于xi通過變壓器與電流z+完全相互作用,避免了嵌入程序中的資訊丟失,

接下來的排演衰減期賦予每個zi一個良好的相關性評分judge(z+)[zi],只有得分最高的區塊會被保存在z+中,就像作業記憶中的排演衰減現象一樣,細分值的動機是,沒有分塊之間的互動和比較,粗分值的相對大小不夠準確,類似于重新計算[7]的動機,

MemRecall本質上支持多步驟推理,通過使用新的z+重復這個程序,CogQA[13]強調了迭代檢索的重要性,因為在多跳閱讀理解中,答案句不能被問題直接檢索,值得注意的是,如果z+中新塊的更多資訊證明它們的相關性不夠強(得分較低),上一步保留的塊也會衰減,而之前的多步推理方法忽略了這一點[13,1,10],

訓練

下流式任務的多樣性對在CogLTX訓練BERTs提出了挑戰,

演算法1總結了不同設定下的解,


Algorithm 1: The Training Algorithm of CogLTX (演算法1:CogLTX的訓練演算法)


對judge進行監督培訓,,《自然》中的跨度提取任務(圖2(a))建議使用相應的答案塊,即使是多跳資料集,例如HotpotQA[53],通常也會對支持句進行注釋,在這些情況下,judge自然是在監督下接受訓練的:

其中訓練樣本z要么是從x中采樣的連續塊Zrand序列(對應檢索比賽的資料分布),要么是所有相關和隨機選擇的不相關塊Zrelv的混合(近似于排練的資料分布),

對reasoner進行監督培訓,reasoner面臨的挑戰是如何在訓練和推理程序中保持資料分布的一致性,這是監督學習的一個基本原則,理想情況下,reasoner的輸入也應該由MemRecall在訓練期間生成,但并不能保證所有相關塊都能被檢索到,例如在回答問題時,如果MemRecall漏掉了答案塊,訓練就不能進行,最后,近似地發送檢索競賽中所有相關塊和“優勝者”塊來訓練reasoner

對judge進行無監督培訓,不幸的是,許多任務(圖2 (b)(c))沒有提供相關性標簽,因為CogLTX假設所有相關的塊都是必要的,所以我們通過干預推斷出相關標簽:通過從z中洗掉塊來測驗塊是否是不可缺少的,

假設z是“oracle relevant blocks”,根據我們的假設,

其中Z-zi是z去除了zi的結果,t是一個閾值,在訓練reassoner的每一次迭代后,我們切割z中的每個塊,根據損失的增加調整其關聯標簽,不顯著的增加表明區塊是不相關的,它可能不會再次“贏得檢索比賽”來訓練推理機在下一個時代,因為它將被貼上不相關的標簽來訓練裁判,然后真正相關的塊可能進入z下一個紀元并被檢測出來,在實踐中,我們將t分為up和down兩部分,留出緩沖區域,以防止頻繁更換標簽,我們在圖4中的20News文本分類資料集上展示了一個無監督訓練的示例,

圖4:CogLTX在20News資料集上的無監督訓練示例,所有塊都被BM25初始化為“irrelevant”(沒有帶soci . religious .christian標簽的常見單詞),
在第一階段,judge幾乎沒有經過訓練,隨機選擇一些方塊,其中,(7)對正確分類貢獻最大,標記為“relevant”,
在第二個時代,經過訓練的judge發現(1)有強有力的證據證明“prayers”和(1)立刻被標記為“relevant”,那么在下一個時代,(7)就不再是分類的必要條件,被標記為“irrelevant”,

與潛在變數模型的連接,無監督CogLTX可以看作是(條件)潛變數模型p(y|x;θ)∝p (z | x) p (y | z;θ),EM[11]推斷z的分布為后驗p(z|y, x;E-step中的θ),而變分bayes方法[19,3]使用一個估計友好的q(z|y, x),然而,在CogLTX中z是一個離散分布,其可能值高達Cnm,其中n, m分別是塊數和z的容量,在某些情況下,為了訓練BERTs,可能需要進行數百次抽樣,其昂貴的時間消耗迫使我們轉向z的點估計2,例如,我們基于干涉的方法,

干預解決方案維護每個x的z估計,本質上是一個特定于CogLTX的本地搜索,z是通過比較附近的值(替換不相關塊后的結果)而不是Bayesian規則來優化的,Judge采用歸納判別模型來幫助推斷出z,

實驗

我們在四個不同任務的長文本資料集上進行了實驗,token-wise(圖2 (c))任務不包括從相鄰的句子,因為他們大多僅僅需要資訊并最終轉化為多個sequence-level山姆 pl,圖5中的箱線圖顯示了資料集中文本長度的統計資訊,

圖5:資料集中文本長度分布的箱線圖,

在所有實驗中,judge和reasoner由Adam[18]優化,學習速率分別為4×1005和1004,在前10%的步驟中,學習率開始升溫,然后線性衰減到最大學習率的1/10,常用的超引數為batch size = 32, strides= [3, 5], tup = 0.2,當count =0.05,

在本節中,我們將分別介紹每一項任務以及相關的結果、分析和消融研究,

閱讀理解

資料集和設定,給定一個問題和一段話,任務是預測在這段話中的回答跨度,我們評估了CogLTX在NewsQA[44]上的性能,NewsQA[44]包含119,633個人工生成的問題,在12,744篇長新聞文章中提出,3由于之前的SOTA[43]在NewsQA中不是基于BERT的(由于文本較長),為了保持相同的引數規模進行公平比較,我們在CogLTX中對RoBERTa[26]的基礎版本進行了4個時期的調整,

結果,表1顯示,CogLTX-base優于已經建立的QA模型,例如BiDAF [41] (+17.8% F1),先前的SOTA DECAPROP[43](包含精心的自我注意和RNN機制(+4.8%F1),甚至是帶滑動視窗的RoBERTa-large (+4.8%F1),我們假設第一句話(導語)和最后一句話(結論)通常是新聞文章中資訊量最大的部分,CogLTX可以聚合它們進行推理,而滑動視窗不能,

Multi-hop question answering

資料集和設定,在復雜的情況下,答案是基于多個段落,以前的方法通常利用段落中關鍵物體之間的圖結構[13,36],然而,如果我們可以使用CogLTX處理較長的文本,那么通過將所有段落作為BERTs的輸入連接起來,就可以很好地解決這個問題,

HotpotQA[53]是一個包含112,779個問題的多跳QA資料集,其distractor設定為每個問題提供了2個必要的段落和8個distractor段落,答案和支持性事實都是評估所需要的,在CogLTX中,我們將每個句子視為一個塊,并直接輸出分數最高的2個塊作為支持事實,

結果,表2顯示,CogLTX優于之前的大多數方法和排行榜上的所有7個BERT變體解決方案,

SOTA模型HGN[14]利用了維基百科中額外的超鏈接資料,資料集是基于這些超鏈接資料構建的,SAE[45]的思想與CogLTX類似,但不太通用,它通過BERTs的注意層對段落進行評分,選擇得分最高的兩段,并將它們一起提供給BERT,支持事實是由另一個復雜的圖表注意模型決定的,由于定向設計良好,SAE比CogLTX(2.2%聯合F1)更適合HotpotQA,但不能解決較長段落的記憶體問題,CogLTX像普通QA一樣直接解決多跳QA問題,得到sota可比的結果,無需額外努力就能解釋支持事實,

Ablation的研究,我們還總結了表2中的消融研究,表明

(1)多步推理確實有效(+3.9%關節F1),但不是必要的,可能是因為HotpotQA中的許多問題本身與第二跳句子足夠相關,可以檢索它們,

(2)在未進行預演的情況下,支持事實的指標顯著下降(-35.7% Sup F1),這是因為最高句之間的相關性得分不具有可比性,

(3)如§3.3所述,如果推理機采用隨機選擇的塊進行訓練,則訓練和測驗程序中資料分布的差異會影響性能(-2.3%聯合F1),

文本分類

資料集和設定,文本分類是自然語言處理中最常見的任務之一,它對主題、情感、意圖等進行分析是必不可少的,我們在經典的20個新聞組[22]上進行實驗,該新聞組包含來自20個類的18,846個檔案,我們給羅伯塔安排了6個時代的CogLTX,

結果,表3表明,CogLTX的相關性標簽是由Glove[34]初始化的,它的性能優于其他基線,包括先前嘗試從滑動視窗[33]聚合[CLS]池結果的結果,此外,基于MLP或LSTM的聚合既不能對長文本進行端到端訓練,

Ablation的研究,

(1)由于20個新聞組中的文本長度差異很大(見圖5),我們只在大于512的文本上進一步測驗性能

(2)基于Glove的初始化雖然提供了較好的相關性標簽,但由于沒有進行干預調整,仍然導致準確率下降了2.2%,

(3) Bm25初始化基于常用語,由于標簽名較短,只初始化了14.2%的訓練樣本,如sports.baseball,通過干預和逐步訓練推理器推斷相關句子,準確率達到86.1%,

Multi-label classifification

資料集和設定,在許多實際問題中,每個文本可以同時屬于多個類別,多標簽分類通常通過為每個標簽訓練一個單獨的分類器來轉化為二分類,由于BERT容量大,我們共享所有標簽的模型,方法是在檔案開頭添加標簽名作為輸入,即[[CLS] label [SEP] doc],用于二進制分類,阿里巴巴是從一個大型電子商務平臺的行業場景中提取的3萬篇文章的資料集,每篇文章都有67個類別的幾個專案的廣告,上述類別的檢測被完美地建模為多標簽分類,為了加快實驗速度,我們分別抽樣8萬對和2萬對標簽-條目對進行訓練和測驗,為了完成這個任務,我們在CogLTX找到了RoBERTa,

結果,表4顯示了CogLTX優于普通的強基線,TextCNN[17]和Bi-LSTM使用的單詞embeddings來自RoBERTa,為了公平比較,即使CogLTX-tiny (7.5M引數)也優于TextCNN,但是,RoBERTa-large滑動視窗的max-pooling結果卻不如CogLTX (7.3% Macro-F1),我們假設這是由于在max-pooling中傾向于給非常長的文本分配更高的概率,突出了CogLTX的效力,

記憶體和時間消耗

記憶體,CogLTX的記憶體消耗在訓練期間是恒定的,優于香草BERT的O(L2)復雜性,我們還比較了longformer[4],如果全域注意令牌的數量相對于L較小且不依賴于L,則其空間復雜度大致為O(L),圖6(左)總結了詳細的比較,

時間,為了加快推理機的訓練,我們可以在訓練判斷時快取分塊的分數,這樣每個epoch只需要2倍的單bert訓練時間,由于CogLTX和滑動視窗在訓練中直到收斂的epochs數目相似,CogLTX主要關注推理的速度,圖6(右)顯示了處理10萬例不同文本長度的合成資料集的時間,CogLTX的時間復雜度為O(n),在L > 2048之后比香草BERT快,并隨著文本長度L的增長接近滑動視窗的速度,

圖6:不同文本長度的記憶體和時間消耗,關于記憶體的資料是特斯拉V100上批量大小= 1測量的,在推理時間消耗的度量中,批大小為8,CogLTX進行單步推理,

結論與討論

我們提出了CogLTX,一種將BERT應用于長篇文本的認知啟發框架,在訓練中,CogLTX只需要固定的記憶,可以在遙遠的句子之間進行關注,類似的想法也在DrQA[6]和ORQA[23]的檔案級進行了研究,之前也有以非監督方式提取重要句子的作業,如基于結構[24]的元資料,在4個不同的大資料集上的實驗表明了該演算法的有效性,CogLTX有望成為許多復雜NLP任務的一個通用的、強有力的基線,

CogLTX在“關鍵句子”假設下定義了一個用于長文本理解的管道,非常困難的序列級任務可能會違反它,因此高效的變分貝葉斯方法(估計z分布)與負擔得起的計算仍然值得研究,此外,CogLTX在塊前遺漏前件的缺點是,在我們的HotpotQA實驗中,在每個句子前添加物體名稱來緩解這一問題,未來可以通過位置感知檢索競賽或共指決議來解決,

備注:請結合原論文踐行閱讀,本博客僅涉及翻譯,初次讀論文可能有些地方翻譯的不正確,請提出來呢,論文詳解會在后續進行補充

論文地址:http://keg.cs.tsinghua.edu.cn/jietang/publications/NIPS20-Ding-et-al-CogLTX.pdf

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/241389.html

標籤:區塊鏈

上一篇:珊珊說幣:位元幣市值續創新高的推動因素是什么?

下一篇:E: Failed to fetch http://ppa.launchpad.net/jonathonf/python-3.6/...

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • JAVA使用 web3j 進行token轉賬

    最近新學習了下區塊鏈這方面的知識,所學不多,給大家分享下。 # 1. 關于web3j web3j是一個高度模塊化,反應性,型別安全的Java和Android庫,用于與智能合約配合并與以太坊網路上的客戶端(節點)集成。 # 2. 準備作業 jdk版本1.8 引入maven <dependency> < ......

    uj5u.com 2020-09-10 03:03:06 more
  • 以太坊智能合約開發框架Truffle

    前言 部署智能合約有多種方式,命令列的瀏覽器的渠道都有,但往往跟我們程式員的風格不太相符,因為我們習慣了在IDE里寫了代碼然后打包運行看效果。 雖然現在IDE中已經存在了Solidity插件,可以撰寫智能合約,但是部署智能合約卻要另走他路,沒辦法進行一個快捷的部署與測驗。 如果團隊管理的區塊節點多、 ......

    uj5u.com 2020-09-10 03:03:12 more
  • 谷歌二次驗證碼成為區塊鏈專用安全碼,你怎么看?

    前言 谷歌身份驗證器,前些年大家都比較陌生,但隨著國內互聯網安全的加強,它越來越多地出現在大家的視野中。 比較廣泛接觸的人群是國際3A游戲愛好者,游戲盜號現象嚴重+國外賬號安全應用廣泛,這類游戲一般都會要求用戶系結名為“兩步驗證”、“雙重驗證”等,平臺一般都推薦用谷歌身份驗證器。 后來區塊鏈業務風靡 ......

    uj5u.com 2020-09-10 03:03:17 more
  • 密碼學DAY1

    目錄 ##1.1 密碼學基本概念 密碼在我們的生活中有著重要的作用,那么密碼究竟來自何方,為何會產生呢? 密碼學是網路安全、資訊安全、區塊鏈等產品的基礎,常見的非對稱加密、對稱加密、散列函式等,都屬于密碼學范疇。 密碼學有數千年的歷史,從最開始的替換法到如今的非對稱加密演算法,經歷了古典密碼學,近代密 ......

    uj5u.com 2020-09-10 03:03:50 more
  • 密碼學DAY1_02

    目錄 ##1.1 ASCII編碼 ASCII(American Standard Code for Information Interchange,美國資訊交換標準代碼)是基于拉丁字母的一套電腦編碼系統,主要用于顯示現代英語和其他西歐語言。它是現今最通用的單位元組編碼系統,并等同于國際標準ISO/IE ......

    uj5u.com 2020-09-10 03:04:50 more
  • 密碼學DAY2

    ##1.1 加密模式 加密模式:https://docs.oracle.com/javase/8/docs/api/javax/crypto/Cipher.html ECB ECB : Electronic codebook, 電子密碼本. 需要加密的訊息按照塊密碼的塊大小被分為數個塊,并對每個塊進 ......

    uj5u.com 2020-09-10 03:05:42 more
  • NTP時鐘服務器的特點(京準電子)

    NTP時鐘服務器的特點(京準電子) NTP時鐘服務器的特點(京準電子) 京準電子官V——ahjzsz 首先對時間同步進行了背景介紹,然后討論了不同的時間同步網路技術,最后指出了建立全球或區域時間同步網存在的問題。 一、概 述 在通信領域,“同步”概念是指頻率的同步,即網路各個節點的時鐘頻率和相位同步 ......

    uj5u.com 2020-09-10 03:05:47 more
  • 標準化考場時鐘同步系統推進智能化校園建設

    標準化考場時鐘同步系統推進智能化校園建設 標準化考場時鐘同步系統推進智能化校園建設 安徽京準電子科技官微——ahjzsz 一、背景概述隨著教育事業的快速發展,學校建設如雨后春筍,隨之而來的學校教育、管理、安全方面的問題成了學校管理人員面臨的最大的挑戰,這些問題同時也是學生家長所擔心的。為了讓學生有更 ......

    uj5u.com 2020-09-10 03:05:51 more
  • 位元幣入門

    引言 位元幣基本結構 位元幣基礎知識 1)哈希演算法 2)非對稱加密技術 3)數字簽名 4)MerkleTree 5)哪有位元幣,有的是UTXO 6)位元幣挖礦與共識 7)區塊驗證(共識) 總結 引言 上一篇我們已經知道了什么是區塊鏈,此篇說一下區塊鏈的第一個應用——位元幣。其實先有位元幣,后有的區塊 ......

    uj5u.com 2020-09-10 03:06:15 more
  • 北斗對時服務器(北斗對時設備)電力系統應用

    北斗對時服務器(北斗對時設備)電力系統應用 北斗對時服務器(北斗對時設備)電力系統應用 京準電子科技官微(ahjzsz) 中國北斗衛星導航系統(英文名稱:BeiDou Navigation Satellite System,簡稱BDS),因為是目前世界范圍內唯一可以大面積提供免費定位服務的系統,所以 ......

    uj5u.com 2020-09-10 03:06:20 more
最新发布
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:46:47 more
  • Hyperledger Fabric 使用 CouchDB 和復雜智能合約開發

    在上個實驗中,我們已經實作了簡單智能合約實作及客戶端開發,但該實驗中智能合約只有基礎的增刪改查功能,且其中的資料管理功能與傳統 MySQL 比相差甚遠。本文將在前面實驗的基礎上,將 Hyperledger Fabric 的默認資料庫支持 LevelDB 改為 CouchDB 模式,以實作更復雜的資料... ......

    uj5u.com 2023-04-16 07:28:31 more
  • .NET Core 波場鏈離線簽名、廣播交易(發送 TRX和USDT)筆記

    Get Started NuGet You can run the following command to install the Tron.Wallet.Net in your project. PM> Install-Package Tron.Wallet.Net 配置 public reco ......

    uj5u.com 2023-04-14 08:08:00 more
  • DKP 黑客分析——不正確的代幣對比率計算

    概述: 2023 年 2 月 8 日,針對 DKP 協議的閃電貸攻擊導致該協議的用戶損失了 8 萬美元,因為 execute() 函式取決于 USDT-DKP 對中兩種代幣的余額比率。 智能合約黑客概述: 攻擊者的交易:0x0c850f,0x2d31 攻擊者地址:0xF38 利用合同:0xf34ad ......

    uj5u.com 2023-04-07 07:46:09 more
  • Defi開發簡介

    Defi開發簡介 介紹 Defi是去中心化金融的縮寫, 是一項旨在利用區塊鏈技術和智能合約創建更加開放,可訪問和透明的金融體系的運動. 這與傳統金融形成鮮明對比,傳統金融通常由少數大型銀行和金融機構控制 在Defi的世界里,用戶可以直接從他們的電腦或移動設備上訪問廣泛的金融服務,而不需要像銀行或者信 ......

    uj5u.com 2023-04-05 08:01:34 more
  • solidity簡單的ERC20代幣實作

    // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0 <0.9.0; import "hardhat/console.sol"; //ERC20 同質化代幣,每個代幣的本質或性質都是相同 //ETH 是原生代幣,它不是ERC20代幣, ......

    uj5u.com 2023-03-21 07:56:29 more
  • solidity 參考型別修飾符memory、calldata與storage 常量修飾符C

    在solidity語言中 參考型別修飾符(參考型別為存盤空間不固定的數值型別) memory、calldata與storage,它們只能修飾參考型別變數,比如字串、陣列、位元組等... memory 適用于方法傳參、返參或在方法體內使用,使用完就會清除掉,釋放記憶體 calldata 僅適用于方法傳參 ......

    uj5u.com 2023-03-08 07:57:54 more
  • solidity注解標簽

    在solidity語言中 注釋符為// 注解符為/* 內容*/ 或者 是 ///內容 注解中含有這幾個標簽給予我們使用 @title 一個應該描述合約/介面的標題 contract, library, interface @author 作者的名字 contract, library, interf ......

    uj5u.com 2023-03-08 07:57:49 more
  • 評價指標:相似度、GAS消耗

    【代碼注釋自動生成方法綜述】 這些評測指標主要來自機器翻譯和文本總結等研究領域,可以評估候選文本(即基于代碼注釋自動方法而生成)和參考文本(即基于手工方式而生成)的相似度. BLEU指標^[^?88^^?^]^:其全稱是bilingual evaluation understudy.該指標是最早用于 ......

    uj5u.com 2023-02-23 07:27:39 more
  • 基于NOSTR協議的“公有制”版本的Twitter,去中心化社交軟體Damus

    最近,一個幽靈,Web3的幽靈,在網路游蕩,它叫Damus,這玩意詮釋了什么叫做病毒式營銷,滑稽的是,一個Web3產品卻在Web2的產品鏈上瘋狂傳銷,各方大佬紛紛為其背書,到底發生了什么?Damus的葫蘆里,賣的是什么藥? 注冊和簡單實用 很少有什么產品在用戶注冊環節會有什么噱頭,但Damus確實出 ......

    uj5u.com 2023-02-05 06:48:39 more