DPO算法推導

DPO

  • 核心思想:直接使用偏好數據進行策略優化,省去 reward 模型策略優化。

  • 技術背景知識:

    首先給定prompt x,生成兩個答案 ( y 1 , y 2 ) Π S F T ( y ∣ x ) (y_1,y_2)~\Pi^{SFT}(y|x) (y1?,y2?)?ΠSFT(yx) ,并通過人工標注對比 y 1 , y 2 y_1,y_2 y1?,y2? ,獲得偏好結果(preference) y w ? y l ∣ x y_w\succ y_l|x yw??yl?x,其中 w w w l l l表示winlose

    引入獎勵模型 r r r , y 1 > y 2 y_1 > y_2 y1?>y2? 的概率可以表示為
    p ( y 1 > y 2 ) = r ? ( x , y 1 ) r ? ( x , y 1 ) + r ? ( x , y 2 ) p(y_1 > y_2) = \frac{r^*(x,y_1)}{r^*(x,y_1)+ r^*(x,y_2)} p(y1?>y2?)=r?(x,y1?)+r?(x,y2?)r?(x,y1?)?
    為使得獎勵函數均為正數,引入Bradley-Terry 模型。

    • Bradley-Terry
      p ? ( y w ? y l ∣ x ) = e x p ( r ? ( x , y 1 ) ) e x p ( r ? ( x , y 1 ) ) + e x p ( r ? ( x , y 2 ) ) p^{*}(y_w\succ y_l|x) = \frac{exp(r^*(x,y_1))}{exp(r^*(x,y_1))+ exp(r^*(x,y_2))} p?(yw??yl?x)=exp(r?(x,y1?))+exp(r?(x,y2?))exp(r?(x,y1?))?
      交叉熵:

      a x = e x p ( r ? ( x , y 1 ) ) a_x = exp(r^*(x,y_1)) ax?=exp(r?(x,y1?)), a y = e x p ( r ? ( x , y 2 ) ) a_y = exp(r^*(x,y_2)) ay?=exp(r?(x,y2?))
      L o s s = ? E ( a x , a y ) ~ D [ l n a x a x + a y ] = ? E ( x , y w , y l ) ~ D [ l n e x p ( r ? ( x , y w ) ) e x p ( r ? ( x , y w ) ) + e x p ( r ? ( x , y l ) ) ] = ? E ( x , y w , y l ) ~ D [ l n 1 1 + e x p ( r ? ( x , y l ) ? r ? ( x , y w ) ) ] = ? E ( x , y w , y l ) ~ D [ l n σ ( r ? ( x , y w ) ? r ? ( x , y l ) ) ] Loss = -E_{(a_x,a_y)\sim D}[ln\frac{a_x}{a_x+a_y}] \\ = - E_{(x,y_w,y_l)\sim D}[ln\frac{exp(r^*(x,y_w))}{exp(r^*(x,y_w))+exp(r^*(x,y_l))}] \\ = - E_{(x,y_w,y_l)\sim D}[ln\frac{1}{1+exp(r^*(x,y_l)-r^*(x,y_w))}] \\ = - E_{(x,y_w,y_l)\sim D}[ln \sigma(r^*(x,y_w) -r^*(x,y_l))] \\ Loss=?E(ax?,ay?)D?[lnax?+ay?ax??]=?E(x,yw?,yl?)D?[lnexp(r?(x,yw?))+exp(r?(x,yl?))exp(r?(x,yw?))?]=?E(x,yw?,yl?)D?[ln1+exp(r?(x,yl?)?r?(x,yw?))1?]=?E(x,yw?,yl?)D?[l(r?(x,yw?)?r?(x,yl?))]

    • KL 散度:
      K L ( P ∣ ∣ Q ) = ∑ x ∈ X P ( X ) l o g ( P ( X ) Q ( X ) ) KL(P||Q) = \sum_{x\in X}P(X)log(\frac{P(X)}{Q(X)}) KL(P∣∣Q)=xX?P(X)log(Q(X)P(X)?)
      P ( x ) , Q ( x ) P(x),Q(x) P(x),Q(x) 分別是數據真實分布和模型預測分布。

  • DPO 目標函數:獲取更多的獎勵,并盡可能保證與基準模型一致。
    m a x π E x ∈ X , y ∈ π [ r ( x , y ) ] ? β ? D K L [ π ( y ∣ x ) ∣ ∣ π r e f ( y ∣ x ) ] = m a x π E x ∈ X , y ∈ π [ r ( x , y ) ] ? E x ∈ X , y ∈ π [ β ? l o g π ( y ∣ x ) π r e f ( y ∣ x ) ] = m a x π E x ∈ X , y ∈ π [ r ( x , y ) ? β ? l o g π ( y ∣ x ) π r e f ( y ∣ x ) ] = m a x π E x ∈ X , y ∈ π [ l o g π ( y ∣ x ) π r e f ( y ∣ x ) ? 1 β r ( x , y ) ) ] = m i n π E x ∈ X , y ∈ π [ l o g π ( y ∣ x ) π r e f ( y ∣ x ) ? l o g e x p ( 1 β r ( x , y ) ) ] = m i n π E x ∈ X , y ∈ π [ l o g π ( y ∣ x ) π r e f ( y ∣ x ) ? e x p ( 1 β r ( x , y ) ) ] = m i n π E x ∈ X , y ∈ π [ l o g π ( y ∣ x ) 1 Z ( x ) π r e f ( y ∣ x ) ? e x p ( 1 β r ( x , y ) ) ? l o g Z ( x ) ] \underset{\pi}{max} E_{x\in X, y \in \pi}[r(x,y)] - \beta·\mathbb{D}_{KL}[\pi(y|x) || \pi_{ref}(y|x)] \\ = \underset{\pi}{max} E_{x\in X, y \in \pi}[r(x,y)] - E_{x\in X, y \in \pi}[\beta·log \frac{\pi(y|x)}{\pi_{ref}(y|x)}] \\ = \underset{\pi}{max} E_{x\in X, y \in \pi}[r(x,y) - \beta·log \frac{\pi(y|x)}{\pi_{ref}(y|x)}] \\ = \underset{\pi}{max} E_{x\in X, y \in \pi}[log \frac{\pi(y|x)}{\pi_{ref}(y|x)}- \frac{1}{\beta}r(x,y))] \\ = \underset{\pi}{min} E_{x\in X, y \in \pi}[log \frac{\pi(y|x)}{\pi_{ref}(y|x)}- log \ \ exp(\frac{1}{\beta}r(x,y))] \\ = \underset{\pi}{min} E_{x\in X, y \in \pi}[log \frac{\pi(y|x)}{\pi_{ref}(y|x)·exp(\frac{1}{\beta}r(x,y))} ] \\ = \underset{\pi}{min} E_{x\in X, y \in \pi}[log \frac{\pi(y|x)}{\frac{1}{Z(x)}\pi_{ref}(y|x)·exp(\frac{1}{\beta}r(x,y))} - log \ \ Z(x) ] \\ πmax?ExX,yπ?[r(x,y)]?β?DKL?[π(yx)∣∣πref?(yx)]=πmax?ExX,yπ?[r(x,y)]?ExX,yπ?[β?logπref?(yx)π(yx)?]=πmax?ExX,yπ?[r(x,y)?β?logπref?(yx)π(yx)?]=πmax?ExX,yπ?[logπref?(yx)π(yx)??β1?r(x,y))]=πmin?ExX,yπ?[logπref?(yx)π(yx)??log??exp(β1?r(x,y))]=πmin?ExX,yπ?[logπref?(yx)?exp(β1?r(x,y))π(yx)?]=πmin?ExX,yπ?[logZ(x)1?πref?(yx)?exp(β1?r(x,y))π(yx)??log??Z(x)]
    Z ( x ) Z(x) Z(x) 表示如下:
    Z ( x ) = ∑ y π r e f ( y ∣ x ) e x p ( 1 β r ( x , y ) ) Z(x) = \underset{y}{\sum} \pi_{ref}(y|x) exp(\frac{1}{\beta}r(x,y) ) Z(x)=y?πref?(yx)exp(β1?r(x,y))
    令:
    1 Z ( x ) π r e f ( y ∣ x ) ? e x p ( 1 β r ( x , y ) ) = π r e f ( y ∣ x ) ? e x p ( 1 β r ( x , y ) ) ∑ y π r e f ( y ∣ x ) e x p ( 1 β r ( x , y ) ) = π ? ( y ∣ x ) \frac{1}{Z(x)}\pi_{ref}(y|x)·exp(\frac{1}{\beta}r(x,y)) = \frac{\pi_{ref}(y|x)·exp(\frac{1}{\beta}r(x,y))}{\underset{y}{\sum} \pi_{ref}(y|x) exp(\frac{1}{\beta}r(x,y) )} \\ = \pi^*(y|x) Z(x)1?πref?(yx)?exp(β1?r(x,y))=y?πref?(yx)exp(β1?r(x,y))πref?(yx)?exp(β1?r(x,y))?=π?(yx)
    接下來繼續對``dpo` 目標函數進行化簡:
    m i n π E x ∈ X , y ∈ π [ l o g π ( y ∣ x ) 1 Z ( x ) π r e f ( y ∣ x ) ? e x p ( 1 β r ( x , y ) ) ? l o g Z ( x ) ] = m i n π E x ∈ X , y ∈ π [ l o g π ( y ∣ x ) π ? ( y ∣ x ) ? l o g Z ( x ) ] \underset{\pi}{min} E_{x\in X, y \in \pi}[log \frac{\pi(y|x)}{\frac{1}{Z(x)}\pi_{ref}(y|x)·exp(\frac{1}{\beta}r(x,y))} - log \ \ Z(x) ] \\ = \underset{\pi}{min} E_{x\in X, y \in \pi}[log \frac{\pi(y|x)}{\pi^*(y|x)} - log \ \ Z(x) ] \\ πmin?ExX,yπ?[logZ(x)1?πref?(yx)?exp(β1?r(x,y))π(yx)??log??Z(x)]=πmin?ExX,yπ?[logπ?(yx)π(yx)??log??Z(x)]
    由于 Z ( x ) Z(x) Z(x) 表達式與 π \pi π 不相關,優化可以直接省去。
    m i n π E x ∈ X , y ∈ π [ l o g π ( y ∣ x ) π ? ( y ∣ x ) ? l o g Z ( x ) ] = m i n π E x ∈ X , y ∈ π [ l o g π ( y ∣ x ) π ? ( y ∣ x ) ] = m i n π E x ~ D [ D K L ( π ( y ∣ x ) ∣ ∣ π ? ( y ∣ x ) ) ] \underset{\pi}{min} E_{x\in X, y \in \pi}[log \frac{\pi(y|x)}{\pi^*(y|x)} - log \ \ Z(x) ] \\ = \underset{\pi}{min} E_{x\in X, y \in \pi}[log \frac{\pi(y|x)}{\pi^*(y|x)} ] \\ = \underset{\pi}{min} E_{x \sim D}[\mathbb{D}_{KL}(\pi(y|x) || \pi^*(y|x))] \\ πmin?ExX,yπ?[logπ?(yx)π(yx)??log??Z(x)]=πmin?ExX,yπ?[logπ?(yx)π(yx)?]=πmin?ExD?[DKL?(π(yx)∣∣π?(yx))]
    當 目標函數最小化,也就是 D K L \mathbb{D}_{KL} DKL? 最小化,所滿足的條件為:
    π ( y ∣ x ) = π ? ( y ∣ x ) = 1 Z ( x ) π r e f ( y ∣ x ) ? e x p ( 1 β r ( x , y ) ) \pi(y|x) = \pi^*(y|x) = \frac{1}{Z(x)}\pi_{ref}(y|x)·exp(\frac{1}{\beta}r(x,y)) π(yx)=π?(yx)=Z(x)1?πref?(yx)?exp(β1?r(x,y))
    反解獎勵函數 r ( x , y ) r(x,y) r(x,y)
    r ( x , y ) = β π ( y ∣ x ) π r e f ( y ∣ x ) + β ? l n Z ( x ) r(x,y) = \beta \frac{\pi(y|x)}{\pi_{ref}(y|x)} + \beta · ln \Z(x) r(x,y)=βπref?(yx)π(yx)?+β?lnZ(x)

求解獎勵函數隱式表達后,帶入Bradley-Terry 交叉熵函數:
L o s s = ? E ( x , y w , y l ) ~ D [ l n σ ( r ? ( x , y w ) ? r ? ( x , y l ) ) ] = ? E ( x , y w , y l ) ~ D [ l n σ ( β l o g π ( y w ∣ x ) π r e f ( y w ∣ x ) ? β l o g π ( y l ∣ x ) π r e f ( y l ∣ x ) ) ] Loss = - E_{(x,y_w,y_l)\sim D}[ln \sigma(r^*(x,y_w) -r^*(x,y_l))] \\ =- E_{(x,y_w,y_l)\sim D}[ln \sigma(\beta log\frac{\pi(y_w|x)}{\pi_{ref}(y_w|x)} - \beta log \frac{\pi(y_l|x)}{\pi_{ref}(y_l|x)})] Loss=?E(x,yw?,yl?)D?[l(r?(x,yw?)?r?(x,yl?))]=?E(x,yw?,yl?)D?[l(βlogπref?(yw?x)π(yw?x)??βlogπref?(yl?x)π(yl?x)?)]
到此,整個數學部分已推導完畢,不得不說句牛逼plus。

  • 梯度表征:

    將上述損失進行梯度求導
    ? θ L o s s ( π θ ; π r e f ) = ? E ( x , y w , y l ) ~ D [ β σ ( β l o g π ( y w ∣ x ) π r e f ( y w ∣ x ) ? β l o g π ( y l ∣ x ) π r e f ( y l ∣ x ) ) [ ? θ l o g π ( y w ∣ x ) ? ? θ l o g π ( y l ∣ x ) ] ] \nabla_\theta Loss(\pi_{\theta};\pi_{ref}) = - E_{(x,y_w,y_l)\sim D}[\beta \sigma(\beta log\frac{\pi(y_w|x)}{\pi_{ref}(y_w|x)} - \beta log \frac{\pi(y_l|x)}{\pi_{ref}(y_l|x)}) [\nabla_{\theta}log \pi(y_w|x) - \nabla_{\theta}log \pi(y_l|x) ]] ?θ?Loss(πθ?;πref?)=?E(x,yw?,yl?)D?[βσ(βlogπref?(yw?x)π(yw?x)??βlogπref?(yl?x)π(yl?x)?)[?θ?logπ(yw?x)??θ?logπ(yl?x)]]
    再令:
    r ^ ( x , y ) = β π θ ( y ∣ x ) π r e f ( y ∣ x ) \hat{r}(x,y) = \beta \frac{\pi_{\theta}(y|x)}{\pi_{ref}(y|x)} r^(x,y)=βπref?(yx)πθ?(yx)?
    最終形式:
    ? θ L o s s ( π θ ; π r e f ) = ? β E ( x , y w , y l ) ~ D [ σ ( r ^ ? ( x , y w ) ? r ^ ? ( x , y l ) ) ? h i g h e r w e i g h t w h e n r e w a r d e s t i m a t e i s w r o n g [ ? θ l o g π ( y w ∣ x ) ? i n c r e a s e l i k e l i h o o d o f y w ? ? θ l o g π ( y l ∣ x ) ? d e c r e a s e l i k e l i h o o d o f y l ] ] \nabla_\theta Loss(\pi_{\theta};\pi_{ref}) = -\beta E_{(x,y_w,y_l)\sim D}[\underbrace{\sigma(\hat{r}^*(x,y_w) -\hat{r}^*(x,y_l))}_{higher\ weight\ when\ reward\ estimate\ is\ wrong} [\underbrace{\nabla_{\theta}log \pi(y_w|x)}_{\ \ \ \ \ \ \ \ \ increase \ likelihood\ of\ y_w} - \underbrace{\nabla_{\theta}log \pi(y_l|x)}_{decrease \ likelihood \ of \ y_l} ]] ?θ?Loss(πθ?;πref?)=?βE(x,yw?,yl?)D?[higher?weight?when?reward?estimate?is?wrong σ(r^?(x,yw?)?r^?(x,yl?))??[?????????increase?likelihood?of?yw? ?θ?logπ(yw?x)???decrease?likelihood?of?yl? ?θ?logπ(yl?x)??]]

  • 改進方法ODPO

    dpo缺陷主要是:采用Bradley–Terry model只給出了一個response比另一個response好的概率,而沒有告訴我們好的程度。

? odpo 核心思想: 把這個好的程度的差距信息引入到偏好的建模里,應該能帶來收益,及在dpo損失里添加margin , 這相當于要求偏好回應的評估分數要比非偏好回應的評估分數大,且要大offset值這么多。目的是:加大對靠得比較近的數據對的懲罰力度。
L o s s o d p o = ? E ( x , y w , y l ) ~ D [ l n σ ( r ? ( x , y w ) ? r ? ( x , y l ) ) ? δ r ] δ r = α l o g ( r ( y w ) ? r ( y l ) ) Loss^{odpo}= - E_{(x,y_w,y_l)\sim D}[ln \sigma(r^*(x,y_w) -r^*(x,y_l)) - \delta_r] \\ \delta_r = \alpha \ log(r(y_w)- r(y_l)) Lossodpo=?E(x,yw?,yl?)D?[l(r?(x,yw?)?r?(x,yl?))?δr?]δr?=α?log(r(yw?)?r(yl?))

  • 相似改進方法:

    IPO KTO 都是不需要獎勵模型的;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/40038.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/40038.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/40038.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2. Python+Playwright playwright的API

Playwright支持同步和異步兩種API,使用異步API需要導入asyncio庫,它是一個可以用來實現Python協程的庫,更詳細介紹可參考Python協程 。我們可以根據自己的偏好選擇適合的模式。 同步與異步模式原理 同步操作方式:在代碼執行時&am…

c++的const

const在C中是一個非常重要的關鍵字,用于定義不可變的變量、函數參數、成員函數等。它可以提高代碼的可讀性、安全性,并幫助編譯器進行優化。 定義常量 使用const定義不可變的變量: const int MAX_SIZE 100;常量指針 指向常量的指針和常量…

【ARMv8/v9 GIC 系列 5 -- GIC GICD_CTRL 使用詳細介紹】

文章目錄 GICD_CTRLGICD_CTLR 寄存器結構RWP(Register Write Pending)E1NWF(Enable 1 of N Wakeup Functionality)DS(Disable Security) 親和性路由(Affinity Routing)ARE_NSARE_S 中…

【java計算機畢設】服裝生產管理系統java MySQL springboot vue html maven項目設計源代碼+萬字文檔

目錄 1項目功能 2項目介紹 3項目地址 1項目功能 【java計算機畢設】服裝生產管理系統java MySQL springboot vue html maven項目代碼文檔 2項目介紹 系統功能: 服裝生產管理系統包括管理員、用戶兩種角色。 管理員功能包括個人中心模塊用于修改個人信息和密碼&a…

【UE5.3】筆記6-創建可自由控制Pawn類

搭建場景 搭建一個場景:包含地板、圍墻。可以根據喜好加一些自發光的效果。 增加食物 創建食物藍圖類,在場景里放置一些食物以供我們player去吃掉獲取分值。 創建可控制的layer 我們先右鍵創建一個藍圖繼承自pawn類,起名BP_Player&#xf…

Python-算法編程100例-二分法(入門級)-業務負載分配

題目: 現有一個服務器集群(服務器數量為 serverNum),和一批不同類型的任務(用數組 tasks 表示,下標表示任務類型,值為任務數量)。 現需要把這批任務都分配到集群的服務器上&#x…

2024年在WordPress中創建銷售活動的專家級優惠券方法

2024年在WordPress中創建銷售活動的專家級優惠券方法 今天我想和大家分享一些關于如何在WordPress網站上使用專家級優惠券工具來創建銷售活動的經驗。對于已經在電商領域有一定經驗的店主,利用專家級優惠券不僅能吸引顧客,還能顯著增加銷量。在這篇文章…

【Linux】線程封裝與互斥(萬字)

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 目錄 文章目錄 前言 C多線程的用法 對原生線程進行一次封裝 理解pthread線程 Linux線程互斥 進程線程間的互斥相關背景概念 互斥量mutex 操作共享變量會有問題的售票…

[go-zero] goctl 生成api和rpc

文章目錄 1.goctl 概述2.go-zero 需要安裝的組件3.生成 api4.生成 rpc 1.goctl 概述 goctl支持多種rpc,較為流行的是google開源的grpc,這里主要介紹goctl rpc protoc的代碼生成與使用。protoc是grpc的命令,作用是將proto buffer文件轉化為相…

探討命令模式及其應用

目錄 命令模式命令模式結構命令模式適用場景命令模式優缺點練手題目題目描述輸入描述輸出描述題解 命令模式 命令模式是一種行為設計模式, 它可將請求轉換為一個包含與請求相關的所有信息的獨立對象。 該轉換讓你能根據不同的請求將方法參數化、 延遲請求執行或將其…

《亞馬遜搬運亞馬遜產品》配合跟賣采集爬取跟賣店鋪高質量

亞馬遜高質量產品如何搬運?亞馬遜采集亞馬遜。 哈嘍大家好,大家講一下做亞馬遜是發貨、鋪貨這塊的功能。目前這款軟件做跟賣大家都知道,同時也支持做鋪貨。鋪貨可以采集國內的1688、淘寶、京東都可以采,采完之后也可以采速賣通&a…

周周星分享7.3—基于氣象大數據的自動站實況聯合預測

賽題 2024中國高校計算機大賽 — 大數據挑戰賽 經驗分享 大家好,我是掃地僧團隊的隊長,以前參加這樣打榜的比賽比較少,了解的打榜技巧不是太多,所以想從科研的角度給大家一點分享。 這次比賽主要從以下五個步驟進行&#xff1a…

Linux Doxygen快速生成文檔

此前寫過一篇編寫Doxygen格式的注釋以用于生成文檔,點擊以查閱, Doxygen常用語法與字段記錄,但是當時用的windows桌面版的doxygen,最近使用ubuntu編寫代碼想直接使用doxygen生成,故寫下此博客 Doxygen Doxygen是一個用于生成軟件文檔的工具,它可以從代碼中提取注釋…

(四)opengl函數加載和錯誤處理

#include <glad/glad.h>//glad必須在glfw頭文件之前包含 #include <GLFW/glfw3.h> #include <iostream>void frameBufferSizeCallbakc(GLFWwindow* window, int width, int height) {glViewport(0, 0, width, height);std::cout << width << &qu…

PHP多線程爬蟲:高效解析電商網頁內容

如何使用php多線程編寫高效的網頁爬蟲 隨著互聯網的發展和數據的不斷增長&#xff0c;網頁爬蟲成為了一種非常重要的工具。通過網頁爬蟲&#xff0c;我們可以自動地從各種網站上獲取大量的數據&#xff0c;并進行進一步的處理和分析。而PHP作為一種廣泛使用的編程語言&#xf…

Android高級面試_6_性能優化

Android 高級面試-7&#xff1a;網絡相關的三方庫和網絡協議等 1、網絡框架 問題&#xff1a;HttpUrlConnection, HttpClient, Volley 和 OkHttp 的區別&#xff1f; HttpUrlConnection 的基本使用方式如下&#xff1a; URL url new URL("http://www.baidu.com")…

SwanLinkOS首批實現與HarmonyOS NEXT互聯互通,軟通動力子公司鴻湖萬聯助力鴻蒙生態統一互聯

在剛剛落下帷幕的華為開發者大會2024上&#xff0c;伴隨全場景智能操作系統HarmonyOS Next的盛大發布&#xff0c;作為基于OpenHarmony的同根同源系統生態&#xff0c;軟通動力子公司鴻湖萬聯全域智能操作系統SwanLinkOS首批實現與HarmonyOS NEXT互聯互通&#xff0c;率先攻克基…

大模型與機器人精彩碰撞-7月5日晚上八點不見不散!

在瞬息萬變的科技時代&#xff0c;新興人工智能和機器人技術的結合正在引領新一輪的創新浪潮。你是否想成為未來科技的領航者&#xff1f;你是否想了解最前沿的AI與機器人技術&#xff1f;行麥科技重磅推出的“AIGC時代的生存法則”AI系列課&#xff0c;將為你揭開大模型與機器…

創建kset

1、kset介紹 2、相關結構體和api介紹 2.1 struct kset 2.2 kset_create_and_add kset_create_and_addkset_createkset_registerkobject_add_internalkobject_add_internal2.3 kset_unregister kset_unregisterkobject_delkobject_put3、實驗操作 #include<linux/module.…

【leetcode64-69二分查找、70-74棧、75-77堆】

二分查找[64-69] 時間復雜度O(log n)&#xff0c;要想到二分排序 35.搜索插入位置 class Solution:def searchInsert(self, nums: List[int], target: int) -> int:left 0right len(nums)-1while left < right: #左閉右閉mid (leftright)//2if nums[mid] < target…