![]()
Mira 的THINKING MACHINES又整了一個大活,開源了一個非常牛逼的的LLM后訓(xùn)練方法:On-Policy Distillation (在線策略蒸餾)
這是博客文章:
https://thinkingmachines.ai/blog/on-policy-distillation/
![]()
簡單來說在線策略蒸餾巧妙地結(jié)合了兩種主流后訓(xùn)練范式的優(yōu)點:它既有強化學(xué)習(xí)等在線策略方法的相關(guān)性和可靠性,能夠讓模型從自身的錯誤中學(xué)習(xí);又具備監(jiān)督微調(diào) (SFT) 等離線策略 (Off-policy) 方法的數(shù)據(jù)效率,通過密集的監(jiān)督信號加速學(xué)習(xí)過程
在線策略蒸餾是一種兼具性能與成本效益的強大技術(shù),尤其適用于為小型、專業(yè)化的模型賦予前沿能力,例如在數(shù)學(xué)推理和企業(yè)知識個性化等場景中。它通過將一個更強大的教師模型用作過程獎勵模型,在不犧牲訓(xùn)練穩(wěn)定性的前提下,極大地提升了訓(xùn)練效率,并為模型的持續(xù)學(xué)習(xí)和個性化定制開辟了新的可能性
特別值得一提的是THINKING MACHINES這個在線策略蒸餾方法在最新的實踐中使用 自家的Tinker訓(xùn)練 API,復(fù)制了 Qwen3 的結(jié)果,即在推理基準上通過在線策略蒸餾實現(xiàn)同等性能,而成本僅為 RL 的一小部分,比如數(shù)學(xué)推理能力計算成本降低了驚人的 9 到 30 倍。而在線策略蒸餾方法綜合計算效率提高了恐怖的50到100倍
個人感覺這個在線策略蒸餾是解決 RL“通過吸管汲取監(jiān)督信號,”(由大神karpathy 創(chuàng)造的概念,可以看我之前的文章)的一個潛在方向,感興趣的繼續(xù)往下看
以下是詳細解讀
模型的后訓(xùn)練:在強化學(xué)習(xí)與監(jiān)督微調(diào)之間的權(quán)衡
語言模型,特別是大型語言模型,其強大的專業(yè)領(lǐng)域能力并非一蹴而就,而是通過一系列精心設(shè)計的訓(xùn)練階段堆疊而成的。這個過程大致可以分為三個核心階段:
預(yù)訓(xùn)練 (Pre-training): 這是模型學(xué)習(xí)基礎(chǔ)能力的階段。通過處理海量的文本數(shù)據(jù),模型掌握了語言的使用規(guī)律、廣泛的推理能力和基礎(chǔ)的世界知識
中訓(xùn)練 (Mid-training): 這個階段旨在向模型注入特定的領(lǐng)域知識。例如,通過訓(xùn)練代碼、醫(yī)療數(shù)據(jù)庫或公司內(nèi)部文檔,讓模型成為特定領(lǐng)域的專家
后訓(xùn)練 (Post-training): 這是最后也是至關(guān)重要的一步,旨在引導(dǎo)模型產(chǎn)生特定的、有用的行為,比如遵循指令、解決數(shù)學(xué)問題或進行流暢的對話
在后訓(xùn)練階段,我們通常面臨兩種主要的訓(xùn)練范式選擇:在線策略 (On-policy) 訓(xùn)練和離線策略 (Off-policy) 訓(xùn)練。這兩種方法各有優(yōu)劣,理解它們的差異是理解在線策略蒸餾價值的關(guān)鍵
在線策略訓(xùn)練 (On-policy training) 的典型代表是強化學(xué)習(xí) (Reinforcement learning, RL)。在這種模式下,學(xué)生模型自行生成完整的行為序列,稱為 rollout。然后,系統(tǒng)會根據(jù)這個序列的最終結(jié)果給予一個獎勵。例如,在解決數(shù)學(xué)問題 What is 5 + (2 x 3)? 時,學(xué)生模型可能會生成錯誤的計算過程 5 + 2 is 7, and 7 x 3 is 21。由于最終答案 21 是錯誤的,系統(tǒng)會給予一個零獎勵或負獎勵。這種方法的優(yōu)點在于,模型直接從自己產(chǎn)生的樣本中學(xué)習(xí),能夠更直接地學(xué)會避免自己常犯的錯誤。然而,它的主要缺點是獎勵信號極其稀疏。模型只知道最終結(jié)果是錯的,但無法得知錯誤究竟出在哪一步:是運算順序錯了,還是算術(shù)本身出錯了?這種反饋的稀疏性導(dǎo)致強化學(xué)習(xí)的效率在許多應(yīng)用中都非常低下,因為它在每個訓(xùn)練回合中只能學(xué)到固定數(shù)量的信息,而與解決問題所需的token數(shù)量無關(guān)
離線策略訓(xùn)練 (Off-policy training) 則依賴于一個外部數(shù)據(jù)源。最常見的形式是監(jiān)督微調(diào) (Supervised fine-tuning, SFT) 和知識蒸餾 (Distillation)。在這種模式下,我們使用一個強大的、已經(jīng)驗證過能力的教師模型來生成大量高質(zhì)量的、帶有正確步驟的示例。學(xué)生模型的目標是學(xué)習(xí)模仿這些教師軌跡。例如,對于同一個數(shù)學(xué)問題,教師模型會生成正確的步驟 2 x 3 equals 6, add 5 to get 11。學(xué)生模型在訓(xùn)練時,會被鼓勵在每一步都生成與教師模型相同的token。這種方法的優(yōu)點是提供了密集的監(jiān)督信號,學(xué)生在每一步都能得到明確的指導(dǎo),學(xué)習(xí)效率很高。然而,它的核心缺陷在于,學(xué)生只在教師模型經(jīng)常遇到的上下文中學(xué)習(xí)。一旦學(xué)生在實際應(yīng)用中犯了一個教師從未犯過的早期錯誤,它就會進入一個完全陌生的狀態(tài),導(dǎo)致后續(xù)錯誤不斷累積和放大,即復(fù)合誤差 (Compounding error)。此外,研究發(fā)現(xiàn),學(xué)生模型有時只會模仿教師的風(fēng)格和自信度,而未必能學(xué)到其真正的知識準確性
為了更形象地理解這兩種方法的困境,我們可以用學(xué)習(xí)下棋來類比:
![]()
在線策略的強化學(xué)習(xí) 就像自己和自己下棋,沒有任何指導(dǎo)。你只有在整盤棋下完后,通過輸贏這一個信號來學(xué)習(xí)。雖然反饋直接與你的行為相關(guān),但你很難知道究竟是哪幾步棋導(dǎo)致了最終的勝負
離線策略的蒸餾 就像觀看特級大師的棋局錄像。你看到的是最高水平的棋步,但這些棋步都發(fā)生在普通玩家?guī)缀跤肋h不會遇到的復(fù)雜棋局狀態(tài)下。你很難將這些學(xué)習(xí)應(yīng)用到自己的實戰(zhàn)中
顯然,我們需要一種方法,既能像在線策略一樣讓模型在自己的棋局中學(xué)習(xí),又能像離線策略一樣,在每一步棋后都能得到大師級的密集指導(dǎo)。這,正是在線策略蒸餾 (On-policy distillation) 旨在解決的問題
在線策略蒸餾:結(jié)合兩種范式的最佳實踐
在線策略蒸餾的核心思想非常直觀:它將在線策略的自主探索與離線策略的密集監(jiān)督結(jié)合起來,創(chuàng)造了一個“兩全其美”的訓(xùn)練框架。其工作流程旨在讓學(xué)生模型在自己生成的軌跡上學(xué)習(xí),但每一步都由一個更強大的教師模型進行細致的評分和指導(dǎo)。
該方法具體的工作流程可以分解為以下幾個步驟,其實現(xiàn)通常基于現(xiàn)有的強化學(xué)習(xí)腳本:
1.初始化教師客戶端: 首先,我們需要一個高性能的教師模型。這個模型可以是規(guī)模更大、能力更強的通用模型,也可以是經(jīng)過專門訓(xùn)練的專家模型。在實現(xiàn)上,我們?yōu)檫@個教師模型創(chuàng)建一個獨立的客戶端,它只負責計算概率,而不需要進行反向傳播更新梯度
2.學(xué)生模型采樣軌跡: 與標準的強化學(xué)習(xí)一樣,我們讓學(xué)生模型根據(jù)給定的提示 (Prompt) 自主生成一系列完整的回答或行為序列 (Rollouts)。在生成過程中,我們會記錄下學(xué)生模型在每一步選擇每個token的對數(shù)概率(logprobs)
3.教師模型計算獎勵: 這一步是在線策略蒸餾的關(guān)鍵。我們將學(xué)生模型生成的軌跡,原封不動地交給教師模型。教師模型會對這個軌跡的每一個token進行評估,計算出在相同的上下文下,它自己生成這個token的對數(shù)概率。然后,通過學(xué)生和教師的對數(shù)概率之差,我們可以計算出兩者在每一步的分歧 (Divergence)。
4.使用分歧作為獎勵進行訓(xùn)練: 我們將這個逐詞計算出的分歧作為獎勵信號,來更新學(xué)生模型。具體來說,我們使用負的逆向KL散度 (Negative reverse KL divergence) 作為優(yōu)勢函數(shù)。逆向KL散度 是衡量學(xué)生策略分布與教師策略分布差異的指標。當學(xué)生模型的行為與教師模型一致時,KL散度為零;當學(xué)生模型的選擇與教師模型的期望相差甚遠時,KL散度會變得很大,從而產(chǎn)生一個強烈的負面獎勵(懲罰)。學(xué)生模型的目標就是通過訓(xùn)練,最小化這個KL散度
這種方法使用的損失函數(shù),即逆向KL散度,具有兩個非常優(yōu)秀的特性:
不可被利用: 在傳統(tǒng)的強化學(xué)習(xí)中,獎勵模型可能會被利用(Reward hacking),即模型學(xué)會用一些投機取巧的方式獲得高分,但并未真正掌握任務(wù)。而逆向KL散度直接與教師模型的期望行為掛鉤,低KL散度總是意味著學(xué)生的行為更接近教師的期望,不存在被利用的空間
模式尋求: 它會驅(qū)使學(xué)生模型學(xué)習(xí)教師模型那種特定的、高質(zhì)量的行為模式,而不是在多個次優(yōu)選擇之間搖擺不定,從而使學(xué)習(xí)過程更加穩(wěn)定和聚焦。
讓我們通過一個具體的例子來理解這個過程。在一個需要物理常識的數(shù)學(xué)問題中,學(xué)生模型 Qwen3-4B-Instruct-2507 忽略了“冰塊在煎鍋里會融化”這一關(guān)鍵物理背景,錯誤地將其當作純數(shù)學(xué)計算,并得出答案20。教師模型 Qwen3-235B-A22B-Instruct-2507 則能正確理解問題并給出正確答案0。在對學(xué)生的錯誤軌跡進行評分時,教師模型會重點懲罰那些引導(dǎo)學(xué)生走向錯誤方向的關(guān)鍵分叉詞元 (Forking tokens)。例如,當學(xué)生開始寫下 Note: The ice cubes are not removed during the process... 這樣的錯誤假設(shè)時,這些詞元會獲得非常高的KL散度(即非常大的懲罰)。相比之下,學(xué)生在錯誤邏輯下推導(dǎo)出的最終答案20,由于在給定錯誤前提的情況下是可預(yù)測的,所以受到的懲罰反而不大。這表明,在線策略蒸餾能夠精準地識別并糾正導(dǎo)致思維鏈走偏的根本原因
總而言之,在線策略蒸餾通過讓教師模型對學(xué)生的每一步進行打分,將強化學(xué)習(xí)中稀疏的、滯后的最終獎勵,轉(zhuǎn)化為了密集的、即時的過程獎勵。這不僅極大地提升了訓(xùn)練的計算效率,也讓模型能夠更精確地學(xué)習(xí)如何從錯誤中恢復(fù),從而克服了傳統(tǒng)離線策略蒸純粹模仿所帶來的復(fù)合誤差問題
應(yīng)用案例一:高效實現(xiàn)數(shù)學(xué)推理能力的遷移Qwen3-32B -> Qwen3-8B-Base
為了驗證在線策略蒸餾在實際任務(wù)中的效果,首先將其應(yīng)用于訓(xùn)練模型的數(shù)學(xué)推理能力。實驗的目標是將一個強大的教師模型 (Qwen3-32B) 的推理能力,高效地遷移到一個較小的學(xué)生模型 (Qwen3-8B-Base) 上。實驗使用了數(shù)學(xué)競賽基準 AIME'24 來衡量模型的性能
所有實驗都從一個共同的起點開始:學(xué)生模型首先通過離線策略蒸餾,即在教師模型生成的 OpenThoughts-3 數(shù)據(jù)集上進行監(jiān)督微調(diào) (SFT),完成了中訓(xùn)練。在訓(xùn)練了40萬個樣本后,學(xué)生模型在 AIME'24 上的得分達到了 60%。此時,研究人員們比較了三種不同的后訓(xùn)練方法,以將模型性能從 60% 提升到 70%
1.繼續(xù)離線策略蒸餾 (SFT): 這是最直接的方法。根據(jù)已有的訓(xùn)練數(shù)據(jù),性能的提升與訓(xùn)練樣本數(shù)量的對數(shù)呈線性關(guān)系。通過外推這條曲線,研究人員估計,要達到 70% 的分數(shù),大約需要額外訓(xùn)練 200 萬個樣本。這是一個非常巨大的計算開銷,并且其前提是性能增長不會提前停滯
2.強化學(xué)習(xí):根據(jù) Qwen3 團隊的技術(shù)報告,在一個相似的SFT初始化模型之上,通過強化學(xué)習(xí)將性能提升到 67.6%,花費了 17,920 個 GPU 小時。這個成本與訓(xùn)練 200 萬個SFT樣本的成本大致相當
3.在線策略蒸餾 :從 60% 的檢查點開始,在線策略蒸餾僅用了大約 150 個訓(xùn)練步驟就達到了 70% 的目標分數(shù)。為了更公平地比較計算成本,將所有操作都轉(zhuǎn)換為了浮點運算次數(shù) (FLOPs)。結(jié)果顯示:
與外推到 200 萬樣本的SFT相比,在線策略蒸餾的計算成本降低了 9 到 30 倍
成本降低的范圍取決于如何計算SFT的教師成本。如果SFT數(shù)據(jù)集是現(xiàn)成的,只考慮學(xué)生的訓(xùn)練成本,那么成本降低約 9 倍
如果考慮到在實際應(yīng)用中,SFT數(shù)據(jù)集也需要由教師模型生成,即將教師模型的采樣成本也計算在內(nèi),那么總成本降低可以達到 30 倍
如果從 GPU 小時的角度看,由于教師模型計算對數(shù)概率 (log-probs) 的過程可以高效并行化,實際節(jié)省的時間成本可能更接近 18 倍
![]()
這個案例有力地證明了在線策略蒸餾在計算效率上的巨大優(yōu)勢。它用遠低于傳統(tǒng)SFT或RL的成本,實現(xiàn)了同等甚至更好的性能提升。這種效率的來源在于,它摒棄了RL中效率低下的試錯搜索過程,也避免了SFT中因數(shù)據(jù)分布不匹配而造成的大量冗余訓(xùn)練。通過讓教師模型直接對學(xué)生模型自身產(chǎn)生的、最需要被糾正的行為進行密集指導(dǎo),每一份計算資源都用在了刀刃上,從而實現(xiàn)了性能的快速飛躍。這對于在有限的計算預(yù)算下,訓(xùn)練出高性能的專用模型具有極其重要的現(xiàn)實意義
應(yīng)用案例二:在個性化定制中恢復(fù)被模型遺忘的行為:Qwen3-8B
在線策略蒸餾的另一個強大應(yīng)用場景是模型個性化 (Personalization) 與 持續(xù)學(xué)習(xí) (Continual learning)。在實際應(yīng)用中,我們常常需要讓一個已經(jīng)具備通用能力(如遵循指令)的模型,去學(xué)習(xí)新的、私有的領(lǐng)域知識(如公司內(nèi)部文檔)。然而,這個過程常常伴隨著一個棘手的問題:災(zāi)難性遺忘 。即在學(xué)習(xí)新知識的過程中,模型會逐漸忘記原有的重要能力
研究人員設(shè)計了一個實驗來模擬這個場景:目標是創(chuàng)建一個內(nèi)部企業(yè)助理。這個助理需要滿足兩個要求:
1.知識性: 能夠準確回答基于公司內(nèi)部文檔的問題(通過 internal QA 進行評估)
2.指令遵循: 保持強大的通用對話和指令遵循能力(通過 IF-eval 進行評估)
實驗的起點是一個經(jīng)過后訓(xùn)練的 Qwen3-8B 模型,它在 IF-eval 上表現(xiàn)出色(得分 85%),但對內(nèi)部文檔一無所知(得分 18%)
首先,研究人員嘗試了傳統(tǒng)的中訓(xùn)練方法 (Mid-training):將內(nèi)部文檔數(shù)據(jù)和通用的聊天數(shù)據(jù)混合起來,對模型進行監(jiān)督微調(diào) (SFT)。實驗發(fā)現(xiàn):
增加內(nèi)部文檔的比例可以顯著提升模型的知識水平,當文檔數(shù)據(jù)占 100% 時,internal QA 得分可以達到 43%
然而,這個過程對指令遵循能力的破壞是巨大的。即使混合了 30% 的聊天數(shù)據(jù)來試圖維持原有能力,IF-eval 的分數(shù)依然會大幅下降。在只用文檔數(shù)據(jù)訓(xùn)練時,IF-eval 分數(shù)會從 85% 暴跌至 45%
無論數(shù)據(jù)混合比例如何,只要開始微調(diào),IF-eval 性能就會下降,并且無法完全恢復(fù)。即使使用 LoRA 這種旨在限制參數(shù)更新范圍的技術(shù),也同樣會面臨知識學(xué)得更少、行為忘得一樣多的困境
這表明,通過SFT的方式來注入新知識,很容易破壞模型經(jīng)過復(fù)雜(且昂貴)的RL訓(xùn)練才獲得的精細行為。此時,在線策略蒸餾展現(xiàn)了其作為能力恢復(fù)工具的獨特價值
在模型已經(jīng)通過微調(diào)學(xué)習(xí)了內(nèi)部知識(例如,使用 70% 文檔和 30% 聊天數(shù)據(jù)進行訓(xùn)練,此時 internal QA 得分為 36%,IF-eval 下降至 79%)之后,研究人員進行了第二階段的訓(xùn)練:
教師模型:使用訓(xùn)練開始前的、原始的 Qwen3-8B 模型作為教師
訓(xùn)練數(shù)據(jù):使用通用的指令遵循數(shù)據(jù)集 Tulu3 的提示 (prompts)
訓(xùn)練方法:在線策略蒸餾
這個階段的目標非常純粹:讓學(xué)生模型重新學(xué)習(xí)并恢復(fù)它被遺忘的指令遵循能力,而教師就是過去的自己。結(jié)果非常驚人:
經(jīng)過在線策略蒸餾后,模型的 IF-eval 分數(shù)從 79%恢復(fù)到了 83%,幾乎回到了最初的水平
更重要的是,這個恢復(fù)過程沒有損害它新學(xué)到的知識。internal QA 的分數(shù)甚至還略有提升,從 36% 增加到了 41%,這可能是因為恢復(fù)聊天能力和更好地理解知識之間存在正向遷移
![]()
這個案例深刻地揭示了在線策略蒸餾在模型生命周期管理中的巨大潛力。我們可以構(gòu)想一種交替訓(xùn)練 (Phase-alternating)的模式:首先通過微調(diào)注入新的領(lǐng)域知識,然后通過在線策略蒸餾來“喚醒”和恢復(fù)模型可能被遺忘的通用能力。這使得模型可以在不回歸基礎(chǔ)性能的前提下,持續(xù)不斷地學(xué)習(xí)和適應(yīng)新數(shù)據(jù),為實現(xiàn)真正的終身學(xué)習(xí)AI助理提供了一條切實可行的技術(shù)路徑
深度解析:在線策略蒸餾為何如此高效
在線策略蒸餾之所以能夠在多個任務(wù)中展現(xiàn)出遠超傳統(tǒng)方法的效率,其背后有多重深層原因。它不僅是一種技術(shù)上的融合,更在信息論和學(xué)習(xí)理論層面帶來了根本性的改變。
密集的監(jiān)督信號極大提升了信息效率
強化學(xué)習(xí) (RL) 的信息效率極低。從信息論的角度看,每次RL的訓(xùn)練回合 (Episode) 無論長短,最終的成功或失敗只能為模型提供大約 O(1) 比特的信息。相比之下,蒸餾是逐詞 (per-token) 進行監(jiān)督的。如果一個軌跡有 N 個詞元,那么在線策略蒸餾在每個回合中就能提供 O(N) 比特的信息。這意味著在處理長序列任務(wù)時,兩者的信息效率差距可以是成百上千倍。對比實驗顯示,從零開始訓(xùn)練數(shù)學(xué)能力,在線策略蒸餾達到與RL相同的性能水平,所需的梯度步數(shù)少了 7-10 倍,綜合計算效率提升了 50-100 倍。這證明了密集的過程監(jiān)督 (Process supervision) 相對于稀疏的結(jié)果監(jiān)督 (Outcome supervision) 在學(xué)習(xí)效率上的壓倒性優(yōu)勢
高效的數(shù)據(jù)復(fù)用能力
在數(shù)據(jù)稀缺的場景下,我們希望能夠反復(fù)利用已有的訓(xùn)練數(shù)據(jù)。然而,用RL在同一個提示 (prompt) 上進行多輪訓(xùn)練,模型很容易陷入對最終答案的死記硬背,而不是學(xué)習(xí)通用的解題策略。在線策略蒸餾則不同,它的目標是學(xué)習(xí)教師模型在每一步的完整概率分布,而不僅僅是最終的那一條成功路徑。這使得我們可以用同一個提示生成大量不同的軌跡,并對它們進行訓(xùn)練,模型依然能夠?qū)W習(xí)到穩(wěn)健的、可泛化的策略。實驗表明,僅使用一個訓(xùn)練提示,通過多輪次的在線策略蒸餾,學(xué)生模型的性能也能達到與使用大量數(shù)據(jù)訓(xùn)練的教師模型相近的水平,這展現(xiàn)了其卓越的數(shù)據(jù)效率
學(xué)習(xí)的本質(zhì):從搜索到直接教學(xué)
我們可以將后訓(xùn)練過程理解為在不同層面的空間中進行搜索。預(yù)訓(xùn)練是在高維的參數(shù)空間中進行搜索,尋找一組能夠編碼世界知識的權(quán)重,這個過程極其耗費計算資源。而強化學(xué)習(xí)則可以被看作是在語義策略空間 (Space of semantic strategies)中進行搜索。它通過隨機采樣,不斷“偶然發(fā)現(xiàn)”新的、有效的行為策略,然后通過獎勵信號來強化這些策略。這個搜索的過程同樣是昂貴且低效的。
在線策略蒸餾則為這個學(xué)習(xí)過程提供了一條捷徑。它跳過了漫長的搜索階段。一旦教師模型(通過其自身的訓(xùn)練或搜索)已經(jīng)找到了一個優(yōu)秀的策略,蒸餾就可以像一位老師直接傳授知識一樣,將這個策略高效地“教”給學(xué)生模型。我們無需再花費大量計算去復(fù)現(xiàn)教師模型曾經(jīng)走過的所有中間彎路,而可以直接學(xué)習(xí)最終的、最優(yōu)的策略
作為持續(xù)學(xué)習(xí)的理想工具
在線策略蒸餾天然適合持續(xù)學(xué)習(xí)任務(wù)。傳統(tǒng)的SFT,即使用模型自己生成的樣本進行訓(xùn)練,也會因為采樣批次的隨機性而導(dǎo)致模型狀態(tài)偏離初始分布,隨著時間推移,這種訓(xùn)練會退化為離線策略訓(xùn)練,從而引發(fā)性能衰退。而在線策略蒸餾中,教師模型是固定不變的。這為學(xué)生模型的學(xué)習(xí)提供了一個穩(wěn)定的“錨點”或“引力中心”。無論學(xué)生模型如何探索,它始終會被拉回到教師模型的行為軌道上,從而保證了學(xué)習(xí)過程的穩(wěn)定收斂,避免了在自我學(xué)習(xí)中出現(xiàn)性能退化的問題。這使得在線策略蒸餾成為在不斷變化的環(huán)境中保持模型能力和知識更新的強大工具
參考:
https://thinkingmachines.ai/blog/on-policy-distillation/
https://github.com/thinking-machines-lab/tinker-cookbook/tree/main/tinker_cookbook/recipes/distillation
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.