成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

LLM成功不可或缺的基石:RLHF及其替代技術(shù)

人工智能 新聞
關(guān)于訓(xùn)練大模型常用的 RLHF 技術(shù),這篇文章幫你逐步解讀了其工作過程,還總結(jié)了一些其他替代方法。

在討論 LLM 時,我們總是會涉及一個名為「使用人類反饋的強(qiáng)化學(xué)習(xí)(RLHF)」的過程。RLHF 是現(xiàn)代 LLM 訓(xùn)練流程中不可或缺的一部分,因為它可以將人類偏好整合到優(yōu)化圖景中,從而提升模型的有用性和安全性。

在這篇文章中,機(jī)器學(xué)習(xí)和 AI 研究者 Sebastian Raschka 將逐步解讀 RLHF 的工作過程,以幫助讀者理解其核心思想和重要性。這篇文章也會比較 ChatGPT 和 Llama 2 執(zhí)行 RLHF 的方式。

文章最后還將簡單介紹一些最近出現(xiàn)的可替代 RLHF 的技術(shù)。

本文的目錄如下:

  • 使用人類反饋的強(qiáng)化學(xué)習(xí)(RLHF)
  • Llama 2 中的 RLHF
  • RLHF 的替代技術(shù)

典型的 LLM 訓(xùn)練流程

ChatGPT 或 Llama 2 等基于 transformer 的現(xiàn)代 LLM 的訓(xùn)練流程一般分為三大步驟:

  • 預(yù)訓(xùn)練;
  • 監(jiān)督式微調(diào);
  • 對齊。

在最初的預(yù)訓(xùn)練階段,模型會從海量的無標(biāo)簽文本數(shù)據(jù)集中吸收知識。后續(xù)的監(jiān)督式微調(diào)階段會對這些模型進(jìn)行微調(diào),使之能更好地遵守特定指令。最后的對齊階段則是對 LLM 進(jìn)行打磨,使之在響應(yīng)用戶 prompt 時能給出更有用且更安全的結(jié)果。

請注意,這個訓(xùn)練流程基于 OpenAI 的 InstructGPT 論文《Training language models to follow instructions with human feedback》,該論文詳述了 GPT-3 的訓(xùn)練過程。人們普遍認(rèn)為 ChatGPT 的訓(xùn)練也使用了此種方法。后面我們還會比較一下該方法與 Meta 最新的 Llama 2 所采用的方法。

首先從最初的預(yù)訓(xùn)練步驟開始吧,如下圖所示。

LLM 的預(yù)訓(xùn)練步驟

預(yù)訓(xùn)練通常需要使用一個超大型的文本語料庫,其中包含數(shù)十億乃至數(shù)萬億 token。預(yù)訓(xùn)練階段的訓(xùn)練任務(wù)很簡單直接,就是根據(jù)前文預(yù)測下一個詞。

值得強(qiáng)調(diào)的一點是,這種類型的預(yù)訓(xùn)練讓我們可以利用大型的無標(biāo)注數(shù)據(jù)集。只要我們能夠在不侵犯版權(quán)或無視創(chuàng)作者偏好的情況下使用數(shù)據(jù),我們就可以使用大型數(shù)據(jù)集,而無需人來手動標(biāo)記。事實上,在這個預(yù)訓(xùn)練步驟中,其「標(biāo)簽」就是文本中的后一個詞,而這本身就已經(jīng)是數(shù)據(jù)集的一部分了(因此,這種預(yù)訓(xùn)練方法通常被稱為自監(jiān)督學(xué)習(xí))。

接下來的步驟是監(jiān)督式微調(diào),其過程如下圖所示。

根據(jù)指令數(shù)據(jù)對預(yù)訓(xùn)練后的模型進(jìn)行微調(diào)

監(jiān)督式微調(diào)階段涉及到另一輪對下一 token 的預(yù)測。但是,不同于之前的預(yù)訓(xùn)練階段,模型現(xiàn)在處理的是成對的「指令 - 輸出」,如上圖所示。在這里,指令是指提供給模型的輸入(根據(jù)任務(wù)的不同,指令中有時候會帶有可選的輸入文本)。輸出則是模型給出的接近我們期望的響應(yīng)。

這里給出一個具體示例,對于下面這一對「指令 - 輸出」:

指令:"Write a limerick about a pelican."

輸出:"There once was a pelican so fine..."

模型將指令文本(Write a limerick about a pelican)作為輸入,執(zhí)行下一 token 預(yù)測獲得輸出文本(There once was a pelican so fine...)。

盡管預(yù)測下一 token 這個訓(xùn)練目標(biāo)是相似的,但監(jiān)督式微調(diào)使用的數(shù)據(jù)集通常比預(yù)訓(xùn)練所用的小得多。這是因為它需要的是指令 - 輸出對,而不只是原始文本。為了構(gòu)建這樣一個數(shù)據(jù)集,必需有一個人類(或另一個高質(zhì)量 LLM)來根據(jù)給定指令寫出所需輸出 —— 創(chuàng)建這樣一個數(shù)據(jù)集非常費力。

在這個監(jiān)督式微調(diào)階段之后,還有另一個微調(diào)階段,該階段通常被稱為「對齊」步驟,其主要目標(biāo)是將 LLM 與人類偏好對齊。這就是 RLHF 的用武之地。

對齊,右側(cè)圖表來自 InstructGPT 論文

下一節(jié)將深入介紹基于 RLHF 的對齊步驟。但是,如果你想對比一下其與預(yù)訓(xùn)練的基礎(chǔ)模型和步驟 2 的監(jiān)督式微調(diào),可以看看來自 InstructGPT 論文的上圖。

上圖比較了經(jīng)過監(jiān)督式微調(diào)后的以及使用其它方法的 GPT-3 模型(1750 億參數(shù))。圖中最下方是基礎(chǔ) GPT-3 模型。

可以看到,如果采用 prompt 工程設(shè)計方法,即多次查詢并選取其中的最佳響應(yīng)(GPT-3 + prompting),則能獲得比基礎(chǔ)模型更好的表現(xiàn),這符合我們的預(yù)期。

而如果將監(jiān)督式微調(diào)用于 GPT-3 基礎(chǔ)模型,則還能取得甚至更優(yōu)的表現(xiàn)(GPT-3 + supervised finetuning)。

但是,這里表現(xiàn)最佳的還是使用了監(jiān)督式微調(diào)及 RLHF 的 GPT-3 模型(GPT-3 + supervised finetuning + RLHF)—— 即圖中最上面的兩條線。(注意,這里之所以有兩條線,是因為研究者實驗了兩種不同的采樣方法。)

下面將更詳細(xì)地介紹 RLHF 步驟。

使用人類反饋的強(qiáng)化學(xué)習(xí)(RLHF)

前一節(jié)討論了 ChatGPT 和 Llama-2-chat 等現(xiàn)代 LLM 背后的三步式訓(xùn)練流程。這一節(jié)將更為詳細(xì)地描述微調(diào)階段,并重點關(guān)注 RLHF 部分。

RLHF 工作流程是通過一種監(jiān)督式的方式來對預(yù)訓(xùn)練模型進(jìn)行微調(diào)(前一節(jié)的第 2 步),然后再通過近端策略優(yōu)化(PPO)來對齊它(前一節(jié)的第 3 步)。

為了簡單起見,我們可將 RLHF 工作流程再分為三步:

  • RLHF 第 1 步:對預(yù)訓(xùn)練模型進(jìn)行監(jiān)督式微調(diào);
  • RLHF 第 2 步:創(chuàng)建一個獎勵模型;
  • RLHF 第 3 步:通過近端策略優(yōu)化進(jìn)行微調(diào)。

如下所示,RLHF 第 1 步是監(jiān)督式微調(diào)步驟,目的是創(chuàng)建用于進(jìn)一步 RLHF 微調(diào)的基礎(chǔ)模型。

RLHF 第 1 步,圖片來自 InstructGPT 論文

在 RLHF 第 1 步,我們創(chuàng)建或采樣 prompt(比如從一個數(shù)據(jù)庫中采樣),然后讓人類編寫質(zhì)量優(yōu)良的響應(yīng)。然后使用這個數(shù)據(jù)集通過一種監(jiān)督式方式來微調(diào)預(yù)訓(xùn)練模型。

要注意,RLHF 第 1 步類似于前一節(jié)的第 2 步,即「典型的 LLM 訓(xùn)練流程」。這里再次列出它,因為這是 RLHF 不可或缺的一部分。

然后在 RLHF 第 2 步,使用經(jīng)過監(jiān)督式微調(diào)的模型創(chuàng)建一個獎勵模型,如下所示。

RLHF 第 2 步,圖片來自 InstructGPT 論文

如上圖所示,用上一步中創(chuàng)建的已微調(diào) LLM 為每個 prompt 生成 4-9 個響應(yīng)。然后再讓人基于自己的偏好對這些響應(yīng)進(jìn)行排名。盡管這個排名過程非常耗時,但相比于創(chuàng)建用于監(jiān)督式微調(diào)的數(shù)據(jù)集,其勞動力密集程度可能要低一些。這是因為對響應(yīng)進(jìn)行排名多半比編寫響應(yīng)更簡單。

然后基于使用這些排名構(gòu)建的數(shù)據(jù)集,我們可以設(shè)計一個獎勵模型,其輸出的是用于 RLHF 第 3 步后續(xù)優(yōu)化階段的獎勵分?jǐn)?shù)。這個獎勵模型通常源自之前的監(jiān)督式微調(diào)步驟創(chuàng)建的 LLM。下面將獎勵模型簡稱為 RM,將經(jīng)過監(jiān)督式微調(diào)后的 LLM 簡稱為 SFT。為了將 RLHF 第 1 步的模型變成獎勵模型,需要將其輸出層(下一 token 分類層)替換成一個回歸層,其具有單個輸出節(jié)點。

RLHF 工作流程的第 3 步是使用這個獎勵模型(RM)來微調(diào)之前監(jiān)督式微調(diào)的模型(SFT),如下圖所示。

RLHF 第 3 步,圖片來自 InstructGPT 論文

在 RLHF 第 3 步,這也是最后一步,需要根據(jù) RLHF 第 2 步創(chuàng)建的 RM 的獎勵分?jǐn)?shù),使用近端策略優(yōu)化(PPO)來更新 SFT 模型。

有關(guān) PPO 的更多細(xì)節(jié)超出了本文的范圍,但感興趣的讀者可以在 InstructGPT 論文之前的這四篇論文中找到相關(guān)數(shù)學(xué)細(xì)節(jié):

(1) 《Asynchronous Methods for Deep Reinforcement Learning》引入了策略梯度方法來替代基于深度學(xué)習(xí)的強(qiáng)化學(xué)習(xí)中的 Q 學(xué)習(xí)。

(2) 《Proximal Policy Optimization Algorithms》提出了一種基于修改版近端策略的強(qiáng)化學(xué)習(xí)流程,其數(shù)據(jù)效率和可擴(kuò)展性均優(yōu)于上面的基礎(chǔ)版策略優(yōu)化算法。

(3) 《Fine-Tuning Language Models from Human Preferences》闡釋了 PPO 的概念以及對預(yù)訓(xùn)練語言模型的獎勵學(xué)習(xí),包括 KL 正則化,以防止策略偏離自然語言太遠(yuǎn)。

(4) 《Learning to Summarize from Human Feedback》引入了現(xiàn)在常用的 RLHF 三步流程,后來的 InstructGPT 論文也使用了該流程。

Llama 2 中的 RLHF

上一節(jié)介紹了 OpenAI 的 InstructGPT 論文中描述的 RLHF 流程。人們也普遍相信 ChatGPT 的開發(fā)中也使用了該流程。但它與 Meta AI 最新的 Llama 2 模型相比如何呢?

Meta AI 在創(chuàng)造 Llama-2-chat 模型時也使用了 RLHF。盡管如此,這兩種方法之間還是有些差異,如下圖所示。

兩種 RLHF 的差異,圖片改編自 Llama-2 論文

總結(jié)起來,Llama-2-chat 遵循與 InstructGPT 的 RLHF 第 1 步相同的基于指令數(shù)據(jù)的監(jiān)督式微調(diào)步驟。然而,在 RLHF 第 2 步,Llama-2-chat 是創(chuàng)建兩個獎勵模型,而不是一個。此外,Llama-2-chat 模型會經(jīng)歷多個演進(jìn)階段,獎勵模型也會根據(jù) Llama-2-chat 中涌現(xiàn)的錯誤而獲得更新。它還有一個額外的拒絕采樣步驟。

邊際損失

還有另一個區(qū)別未在上圖中給出,其涉及到生成獎勵模型時對模型響應(yīng)排序的方式。在之前討論的 InstructGPT 所用的標(biāo)準(zhǔn) RLHF PPO 中,研究者會根據(jù)自己創(chuàng)建的「k 選 2」比較方法來收集排名 4-9 的輸出響應(yīng)。

舉個例子,如果一位人類標(biāo)注者要對 4 個響應(yīng)(A-D)進(jìn)行排名,比如 A < C < D < B,這會有「4 選 2」=6 次比較。

  • A < C
  • A < D
  • A < B
  • C < D
  • C < B
  • D < B

類似地,Llama 2 的數(shù)據(jù)集基于對響應(yīng)的二元比較,例如 A < B。然而,每位人類標(biāo)記者在每輪標(biāo)記時僅會比較 2 個響應(yīng)(而不是 4-9 個響應(yīng))。

此外,Llama 2 方法的另一個不同之處是在每次二元排名時會收集一個「邊際」標(biāo)簽(范圍從「優(yōu)勢顯著」到「優(yōu)勢可忽略」),這可以通過一個附加的邊際參數(shù)被用于二元排名損失(可選)以計算兩個響應(yīng)之間的差距。

在訓(xùn)練獎勵模型方面,InstructGPT 使用的是以下基于交叉熵的排名損失:

Llama 2 則添加了一個邊際量 m (r) 作為偏好評級的離散函數(shù),如下所示:

其中:

  • r_θ(x,y) 是對于 prompt x 和生成的響應(yīng) y 的標(biāo)量分?jǐn)?shù)輸出;
  • θ 是模型權(quán)重;
  • σ 是 logistic sigmoid 函數(shù),作用是把層輸出轉(zhuǎn)換為 0 到 1 之間的分?jǐn)?shù);
  • y_c 是人類標(biāo)注者選擇的偏好響應(yīng);
  • y_r 是人類標(biāo)注者選擇的被拒響應(yīng)。

舉個例子,通過 m (r) 返回一個更高的邊際量會讓偏好響應(yīng)和被拒響應(yīng)的獎勵之差更小,這會讓損失更大,又進(jìn)一步導(dǎo)致梯度更大,最終導(dǎo)致模型在策略梯度更新過程中發(fā)生變化。

兩個獎勵模型

如前所述,Llama 2 中有兩個獎勵模型,而不是一個。一個獎勵模型基于有用性,另一個則是基于安全性。而用于模型優(yōu)化的最終獎勵函數(shù)是這兩個分?jǐn)?shù)的一種線性組合。

Llama 2 的排名方法和獎勵模型創(chuàng)建,改編自 InstructGPT 論文的圖片

拒絕采樣

此外,Llama 2 的作者還采用了一種可以迭代式產(chǎn)生多個 RLHF 模型(從 RLHF-V1 到 RLHF-V5)的訓(xùn)練流程。他們沒有僅僅依賴于之前討論的使用 PPO 方法的 RLHF,而是使用了兩種用于 RLHF 微調(diào)的算法:PPO 和拒絕采樣(rejection sampling。

在拒絕采樣中,會先抽取 K 個輸出,然后在優(yōu)化步驟選取其中獎勵最高那個用于梯度更新,如下圖所示。

Llama 2 的拒絕采樣步驟,即創(chuàng)建多個響應(yīng)然后選取其中獎勵最高的那個,改編自 InstructGPT 論文的圖片

拒絕采樣的作用是在每次迭代中選取獎勵分?jǐn)?shù)高的樣本。由此造成的結(jié)果是,模型可以使用獎勵更高的樣本進(jìn)行微調(diào),相比之下,PPO 每次只能基于一個樣本進(jìn)行更新。

在經(jīng)過監(jiān)督式微調(diào)的最初階段后,再專門使用拒絕采樣訓(xùn)練模型,之后再將拒絕采樣和 PPO 組合起來。

研究者繪出了隨 RLHF 各階段的模型性能變化情況,可以看到經(jīng)過 RLHF 微調(diào)的模型在安全性和有用性方面都有提升。

RLHF 確實有效,改編自 Llama 2 論文的圖片

請注意,研究者在最后一步中使用了 PPO,之前則是用拒絕采樣更新過的模型。對比圖中 RLHF-v5 (with PPO) 和 RLHF-v5 (no PPO) 的位置可以看到,如果在拒絕采樣之后的最后階段使用 PPO,模型的表現(xiàn)會更好一些。

RLHF 的替代技術(shù)

現(xiàn)在我們已經(jīng)討論并定義了 RLHF 過程,這個過程相當(dāng)復(fù)雜,人們可能會問這么麻煩是否值得。前文中來自 InstructGPT 和 Llama 2 論文的圖表(下面再次給出)證明 RLHF 值得這樣麻煩。

但是,有很多研究關(guān)注的重點是開發(fā)更高效的替代技術(shù)。其中最有趣的方法總結(jié)如下。

論文 1:《Constitutional AI: Harmlessness from AI Feedback》

論文地址:https://arxiv.org/abs/2212.08073

在這篇 Constitutional AI 論文中,作者提出了一種自訓(xùn)練機(jī)制,其基于人類提供的規(guī)則列表。類似于之前提到的 InstructGPT 論文,這里提出的方法也使用了一種強(qiáng)化學(xué)習(xí)。

來自 Constitutional AI 論文

上圖中的「red teaming(紅隊)」這一術(shù)語指的是一種源于冷戰(zhàn)軍事演習(xí)的測試方法,原本是指扮演蘇聯(lián)角色的演習(xí)隊伍,用于測試美國的戰(zhàn)略和防御能力。

在 AI 研究的網(wǎng)絡(luò)安全語境中,紅隊現(xiàn)在描述的是這樣一個過程:外部或內(nèi)部的專家模仿潛在的對手,通過模仿真實世界打擊者的戰(zhàn)術(shù)、技術(shù)和工作流程來挑戰(zhàn)、測試并最終提升給定的相關(guān)系統(tǒng)。

論文 2:《The Wisdom of Hindsight Makes Language Models Better Instruction Followers》

圖片

論文地址:https://arxiv.org/abs/2302.05206

這篇論文用于 LLM 微調(diào)的監(jiān)督式方法實際上可以發(fā)揮出很好的效果。這里,研究者提出了一種基于重新標(biāo)注的監(jiān)督式微調(diào)方法,其在 12 個 BigBench 任務(wù)上的表現(xiàn)優(yōu)于 RLHF。

這種新提出的 HIR(Hindsight Instruction Labeling)是如何工作的?簡單來說,HIR 方法包含兩個步驟:采樣和訓(xùn)練。在采樣步驟,prompt 和指令被輸入到 LLM 中以收集響應(yīng)。然后基于對齊分?jǐn)?shù),在訓(xùn)練階段適當(dāng)?shù)牡胤綄χ噶钸M(jìn)行重新標(biāo)注。然后,使用經(jīng)過重新標(biāo)注的指令和原始 prompt 對 LLM 進(jìn)行微調(diào)。使用這種重新標(biāo)注方法,研究者可以有效地將失敗案例(LLM 的輸出與原始指令不匹配的情況)轉(zhuǎn)變成對監(jiān)督學(xué)習(xí)有用的訓(xùn)練數(shù)據(jù)。

圖片

來自上述論文的方法及實驗結(jié)果比較

注意這項研究不能直接與 InstructGPT 中的 RLHF 工作進(jìn)行比較,因為它似乎使用啟發(fā)式方法(「但是,由于大多數(shù)人類反饋數(shù)據(jù)都難以收集,所以我們采用了一個腳本化的反饋函數(shù)……」)不過 HIR 的事后高見方法的結(jié)果依然非常引人注目。

論文 3:《Direct Preference Optimization:Your Language Model is Secretly a Reward Model》


圖片

論文地址:https://arxiv.org/abs/2305.18290

直接偏好優(yōu)化(DPO)是一種「使用 PPO 的 RLHF」的替代技術(shù),作者在論文中表明在 RLHF 用于擬合獎勵模型的交叉熵?fù)p失也可用于直接微調(diào) LLM。根據(jù)他們的基準(zhǔn)測試,使用 DPO 的效率更高,而且在響應(yīng)質(zhì)量方面也通常優(yōu)于 RLHF/PPO。

圖片

來自對應(yīng)論文的 DPO 及其效果展示

有關(guān)這項研究的更多介紹可參看機(jī)器之心報道《RLHF 中的「RL」是必需的嗎?有人用二進(jìn)制交叉熵直接微調(diào) LLM,效果更好》。

論文 4:《Reinforced Self-Training (ReST) for Language Modeling》 

論文地址:https://arxiv.org/abs/2308.08998

ReST 也是 RLHF 的一種替代方法,其能用于對齊 LLM 與人類偏好。ReST 使用一種采樣方法來創(chuàng)建一個改進(jìn)版數(shù)據(jù)集,然后在質(zhì)量越來越高的子集上不斷迭代訓(xùn)練,從而實現(xiàn)對獎勵函數(shù)的微調(diào)。據(jù)作者描述,ReST 的效率高于標(biāo)準(zhǔn)的在線 RLHF 方法(比如使用 PPO 的 RLHF),因為其能以離線方式生成訓(xùn)練數(shù)據(jù)集,但他們并未全面地比較這種方法與 InstructGPT 和 Llama 2 等中使用的標(biāo)準(zhǔn) RLHF PPO 方法。

圖片

ReST 方法圖示

有關(guān)這項研究的更多介紹可參看機(jī)器之心報道《DeepMind 新研究:ReST 讓大模型與人類偏好對齊,比在線 RLHF 更有效》。

論文 5:《RLAIF:Scaling Reinforcement Learning from Human Feedback with AI Feedback》

圖片

論文地址:https://arxiv.org/abs/2309.00267

近期的根據(jù)人工智能反饋的強(qiáng)化學(xué)習(xí)(RLAIF)研究表明,在 RLHF 中用于訓(xùn)練獎勵模型的評分并不一定非要由人類提供,也可以使用 LLM(這里是 PaLM 2)生成。在人類評估者看來,用傳統(tǒng) RLHF 方法和 RLAIF 方法訓(xùn)練的模型得到的結(jié)果都差不多。

另一個有趣的發(fā)現(xiàn)是:RLHF 和 RLAIF 模型都顯著優(yōu)于單純使用監(jiān)督式指令微調(diào)訓(xùn)練的模型。

圖片

RLHF 和 RLAIF 方法以及它們的勝率比較

這項研究的結(jié)果非常有用而且很有意思,因為這基本上意味著我們可以讓 RLHF 訓(xùn)練更加高效并且成本更低。但是,在有關(guān)信息內(nèi)容的安全性和可信性(人類偏好研究只能部分地體現(xiàn))的定性研究中,這些 RLAIF 模型究竟表現(xiàn)如何還有待觀察。

有關(guān)這項研究的更多介紹可參看機(jī)器之心報道《RLHF vs RL「AI」F,谷歌實證:大模型訓(xùn)練中人類反饋可被 AI 替代》。

結(jié)語

這些替代技術(shù)是否值得投入應(yīng)用實踐?這個問題還有待解答,因為目前 Llama 2 和未使用 RLHF 訓(xùn)練的 Code Llama 系列模型都還沒有真正的競爭者。

責(zé)任編輯:張燕妮 來源: 機(jī)器之心
相關(guān)推薦

2019-08-05 10:00:13

LinuxBash命令

2017-03-27 17:53:45

Linux

2013-01-04 09:53:32

大數(shù)據(jù)技術(shù)大數(shù)據(jù)

2013-07-30 14:27:14

IT領(lǐng)導(dǎo)

2020-05-07 18:20:52

Git腳本Linux開源

2013-09-18 09:40:32

企業(yè)BYOD企業(yè)應(yīng)用商店

2021-11-30 05:51:46

React開發(fā)工具

2020-11-09 06:51:46

開源工具開源

2024-12-03 10:55:56

微服務(wù)架構(gòu)注冊中心

2012-12-04 18:11:46

LanSecS堡壘主機(jī)堡壘機(jī)

2011-02-22 08:55:42

Chrome企業(yè)瀏覽器

2012-04-18 17:06:41

PhoneGap

2014-01-09 14:25:19

MacOS X工具

2015-05-07 13:38:15

2024-01-10 08:02:03

分布式技術(shù)令牌,

2010-06-05 22:52:33

UML

2009-07-08 14:24:43

Java日志系統(tǒng)跟蹤調(diào)試

2023-05-04 12:37:24

2024-10-17 16:01:02

2022-03-29 10:03:12

IT領(lǐng)導(dǎo)者首席信息官
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产欧美精品一区 | 国产91久久久久 | 日本韩国欧美在线观看 | 欧美久| 欧美极品在线播放 | 成人在线观看免费 | 男女啪啪网址 | www.一区二区三区 | 综合欧美亚洲 | 91精品国产一区二区三区 | 午夜丰满少妇一级毛片 | 精品欧美一区二区久久久伦 | 国产一区二区三区在线免费观看 | 亚洲狠狠 | 免费视频二区 | 欧美精品在线免费 | 亚洲欧美日韩精品久久亚洲区 | 亚洲精品日韩视频 | 久久最新 | 亚洲高清视频在线 | 一道本在线 | 91精品国产手机 | 国产激情视频在线观看 | 精品日韩一区二区三区av动图 | 中文字幕不卡一区 | 欧洲国产精品视频 | 91爱爱·com | 国产精品国产三级国产aⅴ入口 | 亚洲欧美一区二区三区在线 | 91porn国产成人福利 | 日韩三区| 国产精品视频入口 | 免费亚洲婷婷 | 一区二区三区免费 | 一区在线播放 | 拍戏被cao翻了h承欢 | 久久国产综合 | 日韩欧美中文 | 亚洲欧美中文日韩在线v日本 | 中日韩毛片 | 精品国产一区二区久久 |