0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

揭秘Prompt的前世今生

自然語言處理愛好者 ? 來源:RUC AI Box ? 作者:閔映乾 ? 2021-09-01 10:28 ? 次閱讀

作者|閔映乾機構|中國人民大學信息學院碩士方向 | 自然語言處理 來自 | RUC AI Box

導讀:本文目標是對近期火爆異常的Prompt相關研究作一些追溯和展望,內容主要參考論文《Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing》,并摻雜了筆者的一些個人見解,歡迎大家積極討論~

論文的arxiv鏈接如下:

https://arxiv.org/abs/2107.13586

一、Prompt的產生和興起

近幾年來,有關預訓練語言模型(PLM)的研究比比皆是,自然語言處理(NLP)也借著這股春風獲得了長足發(fā)展。尤其是在2017-2019年間,研究者們的重心逐漸從傳統task-specific的有監(jiān)督模式轉移到預訓練上?;陬A訓練語言模型的研究思路通常是“pre-train, fine-tune”,即將PLM應用到下游任務上,在預訓練階段和微調階段根據下游任務設計訓練對象并對PLM本體進行調整。

隨著PLM體量的不斷增大,對其進行fine-tune的硬件要求、數據需求和實際代價也在不斷上漲。除此之外,豐富多樣的下游任務也使得預訓練和微調階段的設計變得繁瑣復雜,因此研究者們希望探索出更小巧輕量、更普適高效的方法,Prompt就是一個沿著此方向的嘗試。

融入了Prompt的新模式大致可以歸納成”pre-train, prompt, and predict“,在該模式中,下游任務被重新調整成類似預訓練任務的形式。例如,通常的預訓練任務有Masked Language Model, 在文本情感分類任務中,對于 “I love this movie.” 這句輸入,可以在后面加上prompt “The movie is ___” 這樣的形式,然后讓PLM用表示情感的答案填空如 “great”、“fantastic” 等等,最后再將該答案轉化成情感分類的標簽,這樣以來,通過選取合適的prompt,我們可以控制模型預測輸出,從而一個完全無監(jiān)督訓練的PLM可以被用來解決各種各樣的下游任務。

因此,合適的prompt對于模型的效果至關重要。大量研究表明,prompt的微小差別,可能會造成效果的巨大差異。研究者們就如何設計prompt做出了各種各樣的努力——自然語言背景知識的融合、自動生成prompt的搜索、不再拘泥于語言形式的prompt探索等等,筆者將會在第三節(jié)進行進一步討論。

二、什么是Prompt

Prompt剛剛出現的時候,還沒有被叫做Prompt,是研究者們?yōu)榱讼掠稳蝿赵O計出來的一種輸入形式或模板,它能夠幫助PLM“回憶”起自己在預訓練時“學習”到的東西,因此后來慢慢地被叫做Prompt了。

對于輸入的文本,有函數,將轉化成prompt的形式,即:

該函數通常會進行兩步操作:

使用一個模板,模板通常為一段自然語言,并且包含有兩個空位置:用于填輸入的位置和用于生成答案文本的位置。

把輸入填到的位置。

還用前文提到的例子。在文本情感分類的任務中,假設輸入是

“ I love this movie.”

使用的模板是

“ [X] Overall, it was a [Z] movie.”

那么得到的就應該是 “I love this movie. Overall it was a [Z] movie.”

在實際的研究中,prompts應該有空位置來填充答案,這個位置一般在句中或者句末。如果在句中,一般稱這種prompt為cloze prompt;如果在句末,一般稱這種prompt為prefix prompt。和的位置以及數量都可能對結果造成影響,因此可以根據需要靈活調整。

另外,上面的例子中prompts都是有意義的自然語言,但實際上其形式并不一定要拘泥于自然語言。現有相關研究使用虛擬單詞甚至直接使用向量作為prompt,筆者將會在第三節(jié)講到。

下一步會進行答案搜索,顧名思義就是LM尋找填在處可以使得分數最高的文本 。最后是答案映射。有時LM填充的文本并非任務需要的最終形式,因此要將此文本映射到最終的輸出。例如,在文本情感分類任務中,“excellent”, “great”, “wonderful” 等詞都對應一個種類 “++”,這時需要將詞語映射到標簽再輸出。

三、Prompt的設計

Prompt大致可以從下面三個角度進行設計:

Prompt的形狀

手工設計模板

自動學習模板

Prompt的形狀

Prompt的形狀主要指的是和的位置和數量。上文提到過cloze prompt和prefix prompt的區(qū)別,在實際應用過程中選擇哪一種主要取決于任務的形式和模型的類別。cloze prompts和Masked Language Model的訓練方式非常類似,因此對于使用MLM的任務來說cloze prompts更加合適;對于生成任務來說,或者使用自回歸LM解決的任務,prefix prompts就會更加合適;Full text reconstruction models較為通用,因此兩種prompt均適用。另外,對于文本對的分類,prompt模板通常要給輸入預留兩個空,和。

手工設計模板

Prompt最開始就是從手工設計模板開始的。手工設計一般基于人類的自然語言知識,力求得到語義流暢且高效的模板。例如,Petroni等人在著名的LAMA數據集中為知識探針任務手工設計了cloze templates;Brown等人為問答、翻譯和探針等任務設計了prefix templates。手工設計模板的好處是較為直觀,但缺點是需要很多實驗、經驗以及語言專業(yè)知識,代價較大。

自動學習模板

為了解決手工設計模板的缺點,許多研究開始探究如何自動學習到合適的模板。自動學習的模板又可以分為離散(Discrete Prompts)和連續(xù)(Continuous Prompts)兩大類。離散的主要包括 Prompt Mining, Prompt Paraphrasing, Gradient-based Search, Prompt Generation 和 Prompt Scoring;連續(xù)的則主要包括Prefix Tuning, Tuning Initialized with Discrete Prompts 和 Hard-Soft Prompt Hybrid Tuning。

離散Prompts

自動生成離散Prompts指的是自動生成由自然語言的詞組成的Prompt,因此其搜索空間是離散的。目前大致可以分成下面幾個方法:

Prompt Mining. 該方法需要一個大的文本庫支持,例如Wikipedia。給定輸入和輸出,要找到和之間的中間詞或者依賴路徑,然后選取出現頻繁的中間詞或依賴路徑作為模板,即“[X] middle words [Z]”。

Prompt Paraphrasing. Paraphrasing-based方法是基于釋義的,主要采用現有的種子prompts(例如手動構造),并將其轉述成一組其他候選prompts,然后選擇一個在目標任務上達到最好效果的。一般的做法有:將提示符翻譯成另一種語言,然后再翻譯回來;使用同義或近義短語來替換等。

Gradient-based Search. 梯度下降搜索的方法是在單詞候選集里選擇詞并組合成prompt,利用梯度下降的方式不斷嘗試組合,從而達到讓PLM生成需要的詞的目的。

Prompt Generation. 既然Prompt也是一段文本,那是否可以用文本生成的方式來生成Prompt呢?該類方法就是將標準的自然語言生成的模型用于生成prompts了。例如,Gao等人將T5引入了模板搜索的過程,讓T5生成模板詞;Ben-David 等人提出了一種域自適應算法,訓練T5為每個輸入生成一種唯一的域相關特征,然后把輸入和特征連接起來組成模板再用到下游任務中。

Prompt Scoring. Davison等人在研究知識圖譜補全任務的時候為三元組輸入(頭實體,關系,尾實體)設計了一種模板。首先人工制造一組模板候選,然后把相應的[X]和[Z]都填上成為prompts,并使用一個雙向LM給這些prompts打分,最后選取其中的高分prompt。

連續(xù)Prompts

既然構造Prompt的初衷是能夠找到一個合適的方法,讓PLM更“聽話”地得出我們想要的結果,那就不必把prompt的形式拘泥于人類可以理解的自然語言了,只要機器可以理解就好了。因此,還有一些方法探索連續(xù)型prompts——直接作用到模型的embedding空間。連續(xù)型prompts去掉了兩個約束條件:

模板中詞語的embedding可以是整個自然語言的embedding,不再只是有限的一些embedding。

模板的參數不再直接取PLM的參數,而是有自己獨立的參數,可以通過下游任務的訓練數據進行調整。

目前的連續(xù)prompts方法大致可以分為下面幾種:

Prefix Tuning. Prefix Tuning最開始由Li等人提出,是一種在輸入前添加一串連續(xù)的向量的方法,該方法保持PLM的參數不動,僅訓練合適的前綴(prefix)。它的形式化定義是,在給定一個可訓練的前綴矩陣和一個固定的參數化為的PLM的對數似然目標上進行優(yōu)化。

141c316e-fd9a-11eb-9bcf-12bb97331649.png

其中

146d48ba-fd9a-11eb-9bcf-12bb97331649.png

指的是所有神經網絡層在第i個時間步的連接。如果對應的時間步在前綴中,則它可以直接從前綴矩陣中復制過來;否則需要使用PLM進行計算。

類似地,Lester等人在輸入序列前面加上特殊的token來組成一個模板,然后直接調整這些token的embedding。 和上面的Prefix Tuning的方法相比,他們的方法相對來說參數較少,因為沒有在每一層網絡中引入額外的參數。

Tuing Initialized with Discrete Prompts. 這類方法中連續(xù)prompts是用已有的prompts初始化的,已有的prompts可以是手工設計的,也可以是之前搜索發(fā)現的離散prompts。Zhong 等人先用一個離散prompt搜索方法定義了一個模板,然后基于該模板初始化虛擬的token,最后微調這些token的embedding以提高準確率。

Hard-Soft Prompt Hybrid Tuning. 這類方法可以說是手工設計和自動學習的結合,它通常不單純使用可學習的prompt模板,而是在手工設計的模板中插入一些可學習的embedding。Liu等人提出了“P-Tuning”方法,通過在input embedding中插入可訓練的變量來學習連續(xù)的prompts。

并且,該方法使用BiLSTM的輸出來表示prompt embeddings,以便讓prompt tokens之間有一定的交互。P-tuning還引入了任務相關的anchor tokens(例如關系提取中的“capital”)來進一步提高效果,這些anchor tokens不參與后續(xù)的調優(yōu)。

Han等人提出了Prompt Tunning with Rules(PTR)方法,使用手工指定的子模板按照邏輯規(guī)則組裝成完整的模板。為了增強生成的模板的表示能力,該方法還插入了幾個虛擬token,這些虛擬token的embeddings可以和PLM的參數一起被調整,PTR的模板token既有實際token也有虛擬token 。實驗結果證明了該方法在關系分類任務中的有效性。

四、Prompt的挑戰(zhàn)與展望

盡管Prompt相關研究搞得如火如荼,但目前仍存在許多問題,值得研究者們去探索。

Prompt的設計問題。目前使用Prompt的工作大多集中育分類任務和生成任務,其它任務則較少,因為如何有效地將預訓練任務和prompt聯系起來還是一個值得探討的問題。另外,模板和答案的聯系也函待解決。模型的表現同時依賴于使用的模板和答案的轉化,如何同時搜索或者學習出兩者聯合的最好效果仍然很具挑戰(zhàn)性。

Prompt的理論分析和可解釋性。盡管Prompt方法在很多情況下都取得了成功,但是目前prompt-based learning的理論分析和保證還很少,使得人們很難了解Prompt為什么能達到好的效果,又為什么在自然語言中意義相近的Prompt有時效果卻相差很大。

Prompt在PLM debias方面的應用。由于PLM在預訓練過程中見過了大量的人類世界的自然語言,所以很自然地受到了影響。拿一個簡單的例子來說,可能不太恰當,比如說訓練語料中有很多的“The capital of China is ”Beijing.“,導致模型認為下次看到”capital“ 的時候都會預測出”Beijing“,而不是著重看到底是哪個國家的首都。

在應用的過程中,Prompt還暴露了PLM學習到的很多其它bias,比如種族歧視、恐怖主義、性別對立等等。已有相關研究關注是否可以利用Prompt來對這些bias進行修正,但還處在比較初級的階段,這也會是一個值得研究的方向。

五、引用

[1] Liu P, Yuan W, Fu J, et al. Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing[J]。 arXiv preprint arXiv:2107.13586, 2021.

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • PLM
    PLM
    +關注

    關注

    2

    文章

    91

    瀏覽量

    20781
  • nlp
    nlp
    +關注

    關注

    1

    文章

    481

    瀏覽量

    21935
  • prompt
    +關注

    關注

    0

    文章

    13

    瀏覽量

    2653

原文標題:NLP新寵——淺談Prompt的前世今生

文章出處:【微信號:NLP_lover,微信公眾號:自然語言處理愛好者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    LDO噪聲揭秘

    電子發(fā)燒友網站提供《LDO噪聲揭秘.pdf》資料免費下載
    發(fā)表于 09-21 09:13 ?0次下載
    LDO噪聲<b class='flag-5'>揭秘</b>

    EMC大揭秘 PCB設計必備指南

    EMC大揭秘 PCB設計必備指南
    的頭像 發(fā)表于 06-15 16:29 ?2659次閱讀
    EMC大<b class='flag-5'>揭秘</b> PCB設計必備指南

    嵌入式系統的前世今生

    一、初始階段(1960-1970)1960年代末:嵌入式系統的概念開始形成,最初用于專業(yè)的軍事和航天應用,例如用于導彈控制的計算機系統。微處理器的誕生:1971年,英特爾推出了4004芯片,這是世界上第一個商用微處理器。它的出現標志著嵌入式系統發(fā)展的一個里程碑,使得更小型、成本更低的電子設備設計成為可能。二、發(fā)展階段(1980年代)個人計算機(PC)的普及:
    的頭像 發(fā)表于 04-12 08:11 ?1131次閱讀
    嵌入式系統的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>

    揭秘共模電感選擇技巧

    電子發(fā)燒友網站提供《揭秘共模電感選擇技巧.docx》資料免費下載
    發(fā)表于 03-29 14:36 ?0次下載

    FPGA中競爭與冒險的前世今生

    競爭冒險:在組合電路中,當邏輯門有兩個互補輸入信號同時向相反狀態(tài)變化時,輸出端可能產生過渡干擾脈沖的現象,稱為競爭冒險。那么 FPGA 產生競爭冒險的原因是什么呢? 信號在 FPGA 器件內部通過連線和邏輯單元時,都有一定的延時。 延時的大小與連線的長短和邏輯單元的數目有關 同時還受器件的制造工藝、工作電壓、溫度等條件的影響 信號的高低電平轉換也需要一定的過渡時間 。由于以上存在的因素,多路信號的電平值發(fā)生變化時,在信號變化的瞬間,組合邏輯的輸出有先后順序,并不是同時變化往往會出現一些不正確的尖峰信號,這些尖峰信號稱為毛刺 。如果一個組合邏輯電路中有毛刺出現,就說明該電路存在冒險 。與分立元件不同,由于 PLD 內部不存在寄生電容電感,這些毛刺將被完整的保留并向下一級傳遞,因此毛刺現象在 PLD 、 FPGA 設計中尤為突出 。 毛刺的累加 將會影響整個設計的可靠性和精確性 。因此判斷邏輯電路中是否存在冒險以及如何避免冒險是 FPGA 設計人員必須要考慮的問題。 接下來我們就要考慮如何消除冒險 ,消除冒險的方式有一下幾種: 1、利用冗余項消除毛刺 函數式和真值表所描述的是靜態(tài)邏輯,而競爭則是從一種 穩(wěn)態(tài)到另一種穩(wěn)態(tài)的過程。因此競爭是動態(tài)過程,它發(fā)生在輸入變量變化時。此時,修改卡諾圖,增加多余項,在卡諾圖的兩圓相切處增加一個圓,可以消除邏輯冒險。但該法對于計數器型產生的毛刺是無法消除的。 2、采用格雷碼 我們可以通過改變設計,破壞毛刺產生的條件,來減少毛刺的發(fā)生。例如,在數字電路設計中,常常采用格雷碼計數器取代普通的二進制計數器,這是因為格雷碼計數器的輸出每次只有一位跳變 消除了競爭冒險的發(fā)生條件,避免了毛刺的產生。 3、采樣法 由于冒險出現在變量發(fā)生變化的時刻,如果待信號穩(wěn)定之后加入取樣脈沖,那么就只有在取樣脈沖作用期間輸出的信號才能有效。這樣可以避免產生的毛刺影響輸出波形。 一般說來,冒險出現在信號發(fā)生電平轉換的時刻,也就是說在輸出信號的建立時間內會發(fā)生冒險,而在輸出信號 的保持時間內是不會有毛刺信號出現的。如果在輸出信號的保持時間內對其進行采樣,就可以消除毛刺信號的影響。 4、吸收法 增加輸出濾波,在輸出端接上小電容C可以濾除毛刺 。但輸出波形的前后沿將變壞,在對波形要求較嚴格時,應再加整形電路,該方法不宜在中間級使用。 5、延遲辦法 因為毛刺最終是由于延遲造成的,所以可以找出產生延遲的支路。對于相對延遲小的支路,加上毛刺寬度 的延遲可以消除毛刺。 還可以用高頻時鐘來驅動一移位寄存器,待延時信號作數據輸入,按所需延時正確設置移位寄存器的級數 ,移位寄存器的輸出即為延時后的信號。 當然最好的就是,在設計之初,就對競爭冒險進行規(guī)避,具體規(guī)避方法有: 1、在設計中每一個模塊中只用一個時鐘,避免使用多時鐘設計,同時避免使用主時鐘分頻后的二次時鐘作為時序器件的時鐘輸入, 因為時鐘偏斜會比較大 。 2、設計譯碼邏輯電路時必須十分小心,因為譯碼器和比較器本身會產生尖峰,容易產生毛刺,把譯碼器或比較器的輸出直接連到時鐘輸入端或異步清除端,會造成嚴重的后果。 3、在設計中 應該盡量避免隱含 RS 觸發(fā)器的出現。一般要控制輸出被直接反饋到輸入端,采用反饋環(huán)路會出現隱含 RS 觸發(fā)器,其對輸入尖峰和假信號很敏感,輸入端有任何變化都有可能使輸出值立刻改變,此時易造成毛刺的產生,導致時序的嚴重混亂。 4、在設計電路時 要用寄存器和觸發(fā)器設計電路,盡量不要用鎖存器,因它對輸入信號的毛刺太敏感。如果堅持用鎖存器設計必須保證輸入信號絕對沒有毛刺,且滿足保持時間。 5、在設計中充分利用資源 ,因為 大部分 FPGA 器件都為時鐘、復位、預置等信號提供特殊的全局布線資源,要充分利用這些資源。 6、在設計中 不論是控制信號還是地址總線信號、數據總線信號,都要采用另外的寄存器,以使內部歪斜的數據變成同步數據。 7、在設計中 應該盡 量避免使用延遲線,因它對工藝過程的變化極為敏感,會大大降低電路的穩(wěn)定性和可靠性,并將為測試帶來麻煩。 8、在設計中 對所有模塊的輸入時鐘、輸入信號、輸出信號都用D觸發(fā)器或寄存器進行同步處理,即輸出信號直接來自觸發(fā)器或寄存器的輸出端。這樣可以消除尖峰和毛刺信號。
    發(fā)表于 02-21 16:26

    如何從訓練集中生成候選prompt 三種生成候選prompt的方式

    這個“gradient”怎么得到的了呢,這是個啥玩意,怎么還有梯度?注意,注意。人家是帶引號的!比喻成梯度。這玩意有什么用呢。 文章指出給定一批error samples(當前prompt無法
    的頭像 發(fā)表于 01-12 11:29 ?726次閱讀
    如何從訓練集中生成候選<b class='flag-5'>prompt</b> 三種生成候選<b class='flag-5'>prompt</b>的方式

    機器人的前世今生

    機器人主要是用于代替人工作的,首先它是一個機器。對于傳統的機器,被使用者設計制造出來后,它的工作步驟、路徑都是確定的。機器的設計也是根據它所應用的工作而進行的。
    發(fā)表于 12-29 14:54 ?425次閱讀
    機器人的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>

    二極管的前世今生

    二極管的前世今生
    的頭像 發(fā)表于 12-14 18:35 ?930次閱讀
    二極管的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>

    揭秘什么是LDO噪聲

    揭秘什么是LDO噪聲
    的頭像 發(fā)表于 12-07 16:05 ?549次閱讀
    <b class='flag-5'>揭秘</b>什么是LDO噪聲

    淺談路由器的前世今生

    說起路由器,如果再往前10年,可能還不是那么普及,但如今再提及,基本上已經是家家戶戶必備的科技產品之一,無論是老人還是小孩對它也都很熟悉了,這樣的變化不禁讓人感嘆科技的發(fā)展之快。
    的頭像 發(fā)表于 11-18 10:46 ?723次閱讀
    淺談路由器的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>

    情感語音識別的前世今生

    的支持。本文將探討情感語音識別的前世今生,包括其發(fā)展歷程、應用場景、面臨的挑戰(zhàn)以及未來發(fā)展趨勢。 二、情感語音識別的發(fā)展歷程 起步階段:早期的情感語音識別技術主要依賴于聲譜分析、特征提取等傳統信號處理方法,但這
    的頭像 發(fā)表于 11-12 17:33 ?507次閱讀

    基石數據:TOC理論物理學淺析—MES的前世今生(十一)

    MES的前世今生前面的文章大體介紹了TOC下的低結存,計劃統一性原則,列隊生產,日結日清,品質問題碎片化等,有很多朋友問是否基石公司不再做數字化,而做流程梳理,非也!其實所有不同的制造業(yè)生產方式都有
    的頭像 發(fā)表于 11-09 10:39 ?374次閱讀
    基石數據:TOC理論物理學淺析—MES的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>(十一)

    帶你探索吹風筒的前世今生【其利天下高速風筒方案開發(fā)】?

    電吹風作為如今生活中不可或缺的小家電之一,這個看似簡單的設備,已經走過了漫長的發(fā)展歷程,從它的前世今生,經歷了許多變革和創(chuàng)新,本文將帶您穿越時間,探索其前世
    的頭像 發(fā)表于 11-02 16:15 ?1570次閱讀
    帶你探索吹風筒的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>【其利天下高速風筒方案開發(fā)】?

    常見的幾種功率半導體器件介紹

    半導體是我們生活中使用的電器里比較常用的一種器件,那么你對半導體有多少了解呢?今天我們就從最基礎的半導體功率器件入手,全面了解半導體的“前世今生”。
    的頭像 發(fā)表于 11-02 10:29 ?1670次閱讀

    鴻蒙操作系統的前世今生

    01、 鴻蒙操作系統發(fā)展沿革 鴻蒙這個名字意為“萬物起源”,同時也寓意國產操作系統的開端。鴻蒙操作系統迭代至今,已經有好幾個版本,筆者將它的迭代順序整理成時間軸,幫助大家梳理鴻蒙操作系統的發(fā)展沿革。如圖1所示。 2012年,華為總裁任正非表示:“華為做終端操作系統是出于戰(zhàn)略的考慮?!兵櫭刹僮飨到y的概念首次出現在大眾的視野。 2016年5月,鴻蒙正式在華為公司的軟件部內部立項并開始投入研發(fā),吹響了研發(fā)鴻蒙操作系統的號角。 2019年8月9號,華為正式發(fā)布了HarmonyOS 1.0,該系統率先部署在智慧屏上。2019年8月10日,(原)榮耀正式發(fā)布榮耀智慧屏、榮耀智慧屏Pro,搭載鴻蒙操作系統。華為消費者業(yè)務CEO余承東在發(fā)布會上宣布鴻蒙將進行開源。 2020年9月10日,華為發(fā)布HarmonyOS 2.0。相較于HarmonyOS 1.0,此版本主要在3個方面做出重大提升:分布式的軟總線、分布式的數據管理及分布式的安全,這三點將HarmonyOS的分布式能力提升到了另一個層次, 此版本可用于大屏、手表和車機。 2020年12月,華為發(fā)布面向開發(fā)者提供了手機版本HarmonyOS 2.0的Beta版本,開發(fā)者可以訪問華為開發(fā)者聯盟官網 ,申請獲取 HarmonyOS 2.0 手機開發(fā)者 Beta 版升級 。 2021年6月2號,華為發(fā)布可以覆蓋手機等移動終端的HarmonyOS 2.0。 當時發(fā)布的系統不僅限于開發(fā)者申請升級,凡是符合條件的機型都可以嘗鮮鴻蒙??梢陨壴撓到y的設備共包含了26部華為手機、14部Honor(榮耀)手機、3部華為手表和3臺平板計算機,還包括當時尚未發(fā)布的Honor V40、Huawei nova 8和Huawei nova 8 Pro三款機型。如圖2所示。 ■ 圖2HarmonyOS 2.0部分適配機型 至此,正式面向市場的覆蓋手機等移動終端的鴻蒙操作系統就正式誕生了! 02、HarmonyOS 2.0和OpenHarmony 2.0的關系 在介紹HarmonyOS 2.0和OpenHarmony 2.0的關系之前,首先要介紹一個功不可沒的組織——開放原子開源基金會。 該基金會成立于2020年6月15日,是由工信部牽頭在民政部注冊的非盈利性民間組織機構,也是國內首個開源軟件基金會,如圖3所示。 華為于2020年9月10號將HarmonyOS 2.0源碼捐贈給開放原子開源基金會孵化,得到OpenHarmonyOS 1.0并開放下載。 2020年12月22號,OpenHarmony全場景分布式終端操作系統(以下簡稱OpenHarmony)項目群正式成立,該項目群是由中國科學院軟件所、華為終端公司、京東集團等7家單位組成,共同規(guī)劃OpenHarmony的持續(xù)發(fā)展。 2021年6月2日發(fā)布會上,開放原子開源基金會將孵化的OpenHarmony 2.0 全量開源發(fā)布。 ■ 圖3OpenHarmony操作系統的發(fā)展沿革 至此,HarmonyOS和OpenHarmonyOS 的關系便一目了然。 如圖4所示,HarmonyOS實際上分為3個部分,OpenHarmonyOS、包括HMS在內的閉源應用與服務,以及其他開放源代碼。 其中OpenHarmonyOS 是鴻蒙操作系統中開源的部分,類似于安卓系統中的AOSP項目,該項目目前由開放原子開源基金會負責社區(qū)化的開源運營,而HarmonyOS是基于OpenHarmonyOS 的商用發(fā)行版。 ■ 圖4 鴻蒙操作系統示意圖 03、鴻蒙操作系統的前景 鴻蒙操作系統是一款“面向未來”的操作系統,它創(chuàng)造性地提出了“一次開發(fā),多端部署”的分布式理念,具有以下幾個顯著優(yōu)勢: 分布式軟總線:提供了統一的分布式通信能力,能夠快速發(fā)現并連接設備,高效地傳輸任務和數據。 分布式數據管理:應用跨設備運行時數據無縫銜接,讓跨設備數據處理如同本地一樣便捷。 分布式任務調度:能夠選擇最合適的設備運行分布式任務,并實現多設備間的能力互助。 分布式設備虛擬化:匹配并選擇能力最佳的執(zhí)行硬件,讓業(yè)務連續(xù)地在不同設備間流轉,充分發(fā)揮不同設備的資源優(yōu)勢。 一次開發(fā),多端部署:使用統一的IDE進行多設備的應用開發(fā),通過模塊化耦合對應不同設備間的彈性部署。 統一OS,彈性部署:為各種硬件開發(fā)提供全棧的軟件解決方案,并保持了上層接口和分布式能力的統一。 借助以上優(yōu)勢, 鴻蒙操作系統可實現不同終端設備之間的極速連接、硬件互助和資源共享,為不同的群體帶來升級體驗: 對消費者而言, 鴻蒙操作系統能夠將生活場景中的各類終端進行能力整合,可以實現不同終端設備之間的快速連接、能力互助、資源共享,匹配合適的設備、提供流暢的全場景體驗。 對應用開發(fā)者而言, 鴻蒙操作系統采用了多種分布式技術,使應用程序的開發(fā)實現與不同終端設備的形態(tài)差異無關。這能夠讓開發(fā)者聚焦上層業(yè)務邏輯,更加便捷、高效地開發(fā)應用。 對設備開發(fā)者而言, 鴻蒙操作系統采用了組件化的設計方案,可以根據設備的資源能力和業(yè)務特征進行靈活裁剪,滿足不同形態(tài)的終端設備對于操作系統的要求。 因為以上這些不可替代的優(yōu)勢,鴻蒙操作系統正在逐步壯大,已經成為眾多企業(yè)和群眾關注的熱點,希望鴻蒙操作系統在未來可以給大家?guī)砀嗟捏@喜!
    發(fā)表于 10-08 19:55