中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 智能計(jì)算 > 設(shè)計(jì)應(yīng)用 > 拿大模型代碼來訓(xùn)練自用小模型

        拿大模型代碼來訓(xùn)練自用小模型

        作者:高煥堂 時(shí)間:2023-12-31 來源:電子產(chǎn)品世界 收藏


        本文引用地址:http://www.antipu.com.cn/article/202312/454370.htm

        1 前言

        上一期所刊登的《從CLIP 應(yīng)用領(lǐng)會(huì)隱空間的魅力》一文里,就是一個(gè)典型的范例:從Github 網(wǎng)頁下載OpenAI 公司的CLIP 源代碼(Source code),然后搭配自己收集的小數(shù)據(jù)來訓(xùn)練一個(gè)給超市商家使用的小模型( 圖1)。

        1704030338755507.png

        圖1 Github上的免費(fèi)CLIP源碼

        那么,這大模型與小模型,兩者的代碼之間,有何不同呢? 這可能會(huì)出乎您的預(yù)料,其核心模型的代碼,大多是一致的、相容的。常常僅是大模型的參數(shù)量很大,而小模型參數(shù)量較少而已。

        于是就能免費(fèi)拿來大模型的開源代碼,把其參數(shù)量調(diào)小,搭配企業(yè)自有IP 的數(shù)據(jù)( 訓(xùn)練數(shù)據(jù)量較少),在較省算力的計(jì)算機(jī)上即可把代碼跑起來,訓(xùn)練出企業(yè)自有IP 的中小模型了。免費(fèi)代碼既省成本、可靠、省算力、又自有IP,可謂取之不盡、用之不竭的資源,豈不美哉!

        例如,在上一期的文章里,就以商店柜臺(tái)的產(chǎn)品推薦應(yīng)用為例演示了:拿CLIP 的源代碼,搭配商家自有產(chǎn)品圖像(Image) 和圖像敘述文句(Text),來訓(xùn)練出企業(yè)自用的CLIP 小模型。

        然而,上一期文章里,并沒有詳細(xì)說明其訓(xùn)練的流程。于是,本文就拿另一個(gè)范例來演示,并且說明其開發(fā)流程。由于本文的主題是代碼,如果您有些Python代碼的基礎(chǔ)知識(shí),就會(huì)更容易理解。

        2 以”訓(xùn)練Diffusion寫書法”為例

        在之前的文章《細(xì)觀Diffusion 隱空間里UNet 的訓(xùn)練流程》里,曾經(jīng)介紹過Diffusion 架構(gòu),及其訓(xùn)練方法。在AIGC 潮流中,SD(Stable Diffusion) 產(chǎn)品的推出是AIGC 圖像生成發(fā)展歷程中的一個(gè)里程碑,提供了高性能模型,能快速生成創(chuàng)意十足的圖像。

        于是,本范例就拿Diffusion 來學(xué)習(xí),及創(chuàng)作書法字體,也就是俗稱的:寫書法。雖然Diffusion 也能學(xué)習(xí)依循標(biāo)準(zhǔn)筆順,來逐筆寫出字形。為了從簡(jiǎn)單范例出發(fā),本文先讓Diffusion 來學(xué)習(xí)程生成整個(gè)字形,而不是逐一生成各筆劃。

        在SD 里,UNet 模型扮演關(guān)鍵性角色。在SD 的隱空間里,它使用了一個(gè)UNet 模型,并搭配一個(gè)時(shí)間調(diào)度(Scheduling) 器,來擔(dān)任圖像生成的核心任務(wù)。而擴(kuò)散(Diffusion) 一詞則描述了SD 隱空間里進(jìn)行的圖像生成情形,整個(gè)過程都是在隱空間里逐步推進(jìn)(Step by step) 的,現(xiàn)在就依循開發(fā)流程來逐步說明之。

        Step-1:從Github網(wǎng)頁下載Diffusers源碼首先訪問這個(gè)Huggingface 網(wǎng)頁( 圖2),然后,按下”code”就自動(dòng)把Diffusers 源碼下載到本機(jī)里了。這源碼本身并不大,只有4.5MB 大小而已。

        1704030429531335.png

        圖2 Github上的免費(fèi)Diffusers源碼

        Step-2:把Code放置于Python 的IDLE環(huán)境里

        把剛才下載的Diffusers代碼壓縮檔解開,放置于Wibdows 本機(jī)的Python 工作區(qū)里,例如 /Python310/ 目錄區(qū)里( 圖3),這樣,就能先在本機(jī)里做簡(jiǎn)單的測(cè)試,例如創(chuàng)建模型并拿簡(jiǎn)單數(shù)據(jù)( 或假數(shù)據(jù)) 來測(cè)試,有助于提升成功的自信心。

        1704030496590556.png

        圖3 放置于本機(jī)的Python環(huán)境里

        Step-3:找出Diffusion的核心模型---UNet

        由于小模型常常只需要部份代碼就足夠了,所以就打開上圖里的/diffusers/ 活頁夾,就會(huì)看到所需要的UNet 模型代碼文件--- unet_2d_condition.py 檔案,如圖4 所示。

        1704030548331592.png

        圖4 放置于本機(jī)的Python環(huán)境里

        接著,打開這個(gè)unet_2d_condition.py 檔案,可以看到內(nèi)含的類(Class) 定義:

        class UNet2DConditionModel(…):

        ……………

        ……………

        這個(gè)UNet2DCondition 類就是所需要的UNet 模型的定義了。

        Step-4:準(zhǔn)備訓(xùn)練數(shù)據(jù)(Training data)在本文的范例里,收集了”春、滿、干、坤”四個(gè)字的書法圖像,各5 個(gè)圖像,如圖5 所示。

        image.png

        1704030614844417.png

        圖5 訓(xùn)練數(shù)據(jù)

        總共有20 個(gè)書法字體的圖像。使用這20 張書法圖像,來讓UNet 模型學(xué)習(xí),就能讓它”畫”出書法字了。之后,也能進(jìn)一步讓它學(xué)習(xí)沒一個(gè)字的筆順,來逐筆地”寫”出書法字體了。

        Step-5:編寫”模型訓(xùn)練”主程序,然后展開訓(xùn)練

        準(zhǔn)備好了訓(xùn)練數(shù)據(jù)( 書法圖像),就來編寫一個(gè)主程序,使用UNet2DCondition 類來創(chuàng)建一個(gè)UNet 模型。主程序的代碼如下:

        1704030671475612.png

        接著,就拿剛才所準(zhǔn)備的訓(xùn)練圖像,來展開訓(xùn)練,也就是讓UNet 模型來學(xué)習(xí)了。其代碼如下:

        1704030702181242.png

        在SD 隱空間里,它使用了一個(gè)UNet 模型,并搭配一個(gè)時(shí)間調(diào)度(Scheduling) 器,來擔(dān)任圖像生成的核心任務(wù)。執(zhí)行到上圖紅色框的指令時(shí),就會(huì)把隨機(jī)噪音添加到書法圖像里,成為”含噪音圖像”(Image noisy)。然后把它輸入給UNet 模型,讓它預(yù)測(cè)出此圖像所含的噪音。在SD 里,使用數(shù)學(xué)運(yùn)算,根據(jù)時(shí)間步數(shù)(即上圖里的ts) 來決定將多少噪音量添加到原圖像里。這樣地重復(fù)訓(xùn)練500 回合。如果圖像數(shù)量增大時(shí),在單機(jī)上訓(xùn)練,可能速度非常緩慢。此時(shí)可以把這些代碼遷移到有GPU 的機(jī)器上進(jìn)行訓(xùn)練,能大幅提高效率。

        Step-6:編寫”圖像生成”主程序,然后展開創(chuàng)作

        訓(xùn)練好了,就得到了了。最后就可編寫另一個(gè)主程序,來讓UNet 模型生成各種創(chuàng)意的書法作品了。例如,把字寫在唐宋時(shí)期的國畫里,如圖6 所示。

        image.png

        image.png

        圖6 AI的書法創(chuàng)作

        每次執(zhí)行這個(gè)書法主程序,都會(huì)有一些不一樣的創(chuàng)新,例如圖-6 的左右兩項(xiàng)書法創(chuàng)作。

        3 結(jié)語

        基于本文的范例,可以繼續(xù)微調(diào)、優(yōu)化這UNet 模型及主程序代碼,讓AI 做出更多的創(chuàng)新作品。例如,也能進(jìn)一步讓它學(xué)習(xí)沒一個(gè)字的筆順,來逐筆地“寫”出書法字體了( 圖7)。

        image.png

        image.png

        圖7 AI依筆順而逐筆創(chuàng)作

        本文以AI “畫”書法為例,說明如何從Github 園地里,挖掘自己想要的大模型源代碼,搭配自己收集的書法圖像,來訓(xùn)練出有趣的AI 書法小模型。如果能善用這些免費(fèi)代碼,既能省成本、又可靠、省算力、甚至能擁有自己有IP,可謂取之不盡、用之不竭的資源,不亦美哉!

        (本文來源于EEPW 2023年12月期)



        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉