<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      如何真正“不花一分錢”部署一個屬于你的大模型

      前言

      看了那么多chatGPT的文章,作為一名不精通算法的開發,也對大模型心癢癢。但想要部署自己的大模型,且不說沒有算法相關的經驗了,光是大模型占用的算力資源,手頭的個人電腦其實也很難獨立部署。就算使用算法壓縮后的大模型,部署在個人電腦上,還要忍受極端緩慢的計算速度以及與chatGPT相差甚遠的模型效果。

      有什么辦法能夠部署屬于我們自己的大模型呢?其實很簡單,我們將目標拆解一下:

      • 有編程基礎:作為一個合格的程序員,這應該是必備素質。
      • 有足夠的算力資源:專業GPU自己買不起怎么辦,阿里云最近推出了”飛天“免費試用計劃,AI模型訓練,GPU資源免費用!
      • 要懂大模型:真的要精通大模型嗎?不需要。如果只是簡單的模型部署和使用,現在的開源模型部署已經非常簡單化,只需要掌握基礎的Python知識就可以。

      隨著chatGPT的火爆,許多開源愛好者涌入AI領域,將許多與大型模型相關的工具進行進一步封裝,使得我們這些AI初學者也能夠用很少的工作量搭建一個私有大型語言模型。而且,有許多成熟的工具可供我們使用,可以幫助我們進一步使用和微調大型模型。

      因此,本文是為AI初學者們(包括我自己)編寫的保姆級大型模型部署和使用指南。現在正值阿里云免費試用計劃,我們可以不花一分錢就可以體驗部署自己的大型模型的樂趣。

      下圖便是我通過阿里云免費申請的PAI平臺資源(顯卡是Nvidia V100),部署的清華大學chatGLM對話大模型,在網頁端和手機端都能直接體驗:

      電腦端

      手機端

      下文圍繞如何手把手搭建一個大模型Demo展開,文章主要目錄:

      • 領取阿里云免費使用資源
      • 創建并使用PAI平臺實例
      • 部署清華ChatGLM大模型
      • 加餐:免費額度用量查詢
      • 總結和展望

      領取阿里云免費使用資源

      免費試用活動頁

      https://free.aliyun.com/

      只要沒有申請過PAI-DSW資源的新老用戶皆可申請5000CU的免費額度,3個月內使用。

      至于5000CU能用多久,和實際申請實例的性能相關,在下面會講解。

      創建并使用PAI平臺實例

      官方有PAI-DSW使用教程,教你如何用領取的免費資源搭建一個Stable Diffusion來做AI畫圖,如果對SD感興趣,可以按照官方教程實踐。

      https://help.aliyun.com/document_detail/615220.html

      我們領取額度后,秒到賬。之后在阿里云頁面內搜索PAI平臺,點擊立即開通,開通PAI控制臺。

      開通時的頁面沒有截圖,其中有一些可選的開通項,比如NAS,比如網關等,可以按照自己需求選取,比如希望保存自己的模型,那可以關聯NAS資源。我當時沒有選其他資源,僅開通了PAI,這樣沒有額外的收費。

      隨后進入控制臺,創建DSW實例。

      這里選取資源,注意選擇GPU資源,并選擇支持資源包抵扣的資源。比如下圖的ecs.gn6v-c8g1.2xlarg。可以看到他們的價格里,寫明了每小時消耗的CU,你可以大致計算一下,5000CU可以用多久,ecs.gn6v-c8g1.2xlarg這個型號可以跑333小時,大概連續13天。

      系統可以任意選擇,本文為了部署chatGLM,選擇pytorch1.12

      當然,中間你可以隨時停止機器,就不會繼續扣費。注意,這里的機器,是只有系統盤的,如果停止了機器,掛載的系統盤會被回收,你在上面下載的各種文件,模型,都會回收掉。你重新啟動,是新的系統盤,文件需要重新下載。(別問我怎么知道的- -!)

      創建完成后,點擊打開,就進入了交互式的Web頁面,可以開始你的模型開發之旅。

      部署清華ChatGLM大模型

      上面已經講完了資源的申請和實例的創建、使用,之后小伙伴們可以自行發揮,部署自己的大模型(或者任何AI相關資源)。本文后半部分介紹一下我自己折騰部署ChatGLM對話大模型的過程,給完全不了解大模型的小伙伴打個樣。

      ChatGLM代碼倉庫:

      https://github.com/THUDM/ChatGLM-6B

      大家完全可以按照官方文檔自行部署,忽略我下面的教程。也可以按照我下方的流程來操作,避免再把我踩得坑再踩一遍。

      下載模型

      由于模型較大(13G左右),我們最好先把模型拉到本地,再運行。

      當然,如果你也可以不下載離線模型,直接在運行時拉取模型文件。

      模型文件倉庫:

      https://huggingface.co/THUDM/chatglm-6b

      下載模型倉庫,需要安裝Git LFS(Large File Storage),它用來拉去Git倉庫中的大型文件,比如這次用到的模型bin文件。

      由于我們申請的系統正好是Ubuntu,在Ubuntu下安裝Git LFS,可以使用如下命令:

      sudo apt-get update

      sudo apt-get install git-lfs

      完成后,克隆模型倉庫:

      git clone https://huggingface.co/THUDM/chatglm-6b

      有可能網絡波動,會導致拉取卡住,可以手動停止掉,然后進入文件夾內:

      git lfs pull

      這樣會拉取到上圖紅框中LFS文件。

      部署模型

      完成模型下載后,我們下載模型運行代碼:

      git clone https://github.com/THUDM/ChatGLM-6B.git

      進入文件夾,創建python的虛擬環境:

      virtualenv -p /usr/bin/python3.8 venv

      激活Python虛擬環境:

      source venv/bin/activate

      如果遇到如下的報錯,需要額外安裝一下python3-dev:

      Could not build wheels for pycocotools, which is required to install pyproject.toml-based projects

      error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1

      sudo apt-get install python3-dev

      由于我們本地提前下載好了模型,我們修改一下代碼,使用本地模型的路徑。

      將使用到的代碼中,路徑都從THUDM/chatglm-6b改為你的路徑,比如我們的模型下載在/mnt/workspace/chatglm-6b,我們將兩種部署模型的主代碼文件都修改一下,都修改為如下圖所示的路徑:

      • cli_demo.py: 命令行交互界面
      • web_demo.py:Web圖形交互界面

      我們直接用官方提供的網頁版Demo來跑模型,啟動web_demo.py,開始模型部署,首先會將模型讀入內存,占用約13個G。

      完成后,內存會被釋放,開始占用GPU顯存13g。

      最終,部署完成會得到服務公網和本地網址。

      對話效果展示

      回答還是比較快的,在我們V100顯卡的機器上,提問后1-2秒內就會開始回答問題。

      以下是一個完整的對話:

      我:寫一個Java單例模式代碼

      ChatGLM:以下是一個簡單的Java單例模式代碼示例:

      public class Singleton {
          private static final Singleton INSTANCE = new Singleton();
          private Singleton() {}
          public static Singleton getInstance() {
              return INSTANCE;
          }
      }
      

      在這個示例中,Singleton 類是一個靜態類,它有一個靜態成員變量 INSTANCE,它初始化為一個單例對象。getInstance 方法返回這個單例對象的實例,可以像任何其他方法一樣使用。
      單例對象通常被用于確保一個類只有一個實例,并提供全局訪問點。使用 getInstance 方法可以方便地獲取單例對象,而無需擔心多個線程同時訪問同一個對象。
      需要注意的是,在實際應用中,單例對象應該盡量避免被頻繁創建和銷毀,因為這樣會增加內存開銷和維護成本。因此,可以考慮使用懶加載(lazy loading)的方式來避免頻繁創建單例對象。

      我:可以換一個方式實現嗎,比如懶漢式?

      ChatGLM:當然可以,懶漢式單例模式的具體實現方式如下:

      1. 將 Singleton 類做成一個接口。
      2. 實現 Singleton 接口的類可以是多個,但它們都應該使用 getInstance 方法來獲取單例對象,并返回一個指向該對象的引用。
      3. 實現 Singleton 接口的類中,可以有一個內部類來負責創建單例對象。
      4. 內部類應該實現 static 關鍵字,并使用 synchronized 關鍵字實現線程安全。
      5. 內部類應該覆蓋 getInstance 方法,以實現懶加載。例如,可以創建一個靜態變量來存儲單例對象,并在需要時才創建該變量。
      6. 在需要使用單例對象的地方,可以調用內部類的方法,來獲取單例對象。
        以下是一個懶漢式單例模式的示例代碼:
      public interface Singleton {
          static Singleton INSTANCE;
      }
      public class ConcreteSingleton implements Singleton {
          private static Singleton INSTANCE = new ConcreteSingleton();
          @Override
          public Singleton getInstance() {
              return INSTANCE;
          }
      }
      public class LazySingleton implements Singleton {
          private static Singleton INSTANCE;
          private Singleton() {}
          public static Singleton getInstance() {
              synchronized (LazySingleton.class) {
                  return INSTANCE;
              }
          }
      }
      

      在這個示例中,ConcreteSingleton 類使用 getInstance 方法來創建單例對象,并使用 synchronized 關鍵字實現線程安全。LazySingleton 類使用 synchronized 關鍵字實現懶加載,只有在需要時才創建單例對象。
      需要注意的是,懶漢式單例模式仍然需要保證線程安全,因此在使用懶加載時,需要考慮線程安全問題。此外,懶漢式單例模式可能無法充分利用類的空間,因為它需要使用共享對象來實現懶加載,因此需要考慮如何提高類的性能和空間利用率。

      查看免費額度使用量

      免費的5000CU額度是有三個月時效的,超過三個月會直接過期。想要做到心中有數,防止超過免費額度導致扣費。我們可以查看免費額度的用量。在頁面右上角有“費用”標簽,選擇“資源實例管理”,點擊“資源包”,能看到你的免費資源包的用量。

      點擊每行中的統計,可以看到是哪個實例在消耗CU。

      總結

      整個部署流程,我自己折騰下來也只花了半天時間,就能夠搭建好一個完整、可用的Demo。

      不得不說,當AI逐漸破圈,成為一個風口時,真的是豬都會飛,普通程序員上手AI的難度瞬間被拉低了一個數量級。開源開發者的不斷貢獻讓各種工具和文檔變得更容易上手。每天數以萬計的大模型相關issue和pr,讓Github遇到了久違的繁榮。

      在AI席卷全球的這一刻,作為一名程序員,我們無疑是對這個時代更有體感的那群人。此時此刻,非我莫屬。要充分關注AI技術的應用場景和發展趨勢,積極探索AI與其他領域的結合,為自己的職業發展和未來規劃提供更多的可能性。

      posted @ 2023-04-22 22:08  蠻三刀醬  閱讀(7221)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 亚洲日本欧洲二区精品| 色呦呦九九七七国产精品| 成人午夜在线观看日韩| 无码国产偷倩在线播放| 中文日韩在线一区二区| a∨变态另类天堂无码专区| 免费久久人人爽人人爽AV| 免费的特黄特色大片| 中文字幕在线精品人妻| 国产精品污www在线观看| 成人国产精品中文字幕| 久久人体视频| 国产日韩在线亚洲色视频| 国产精品久久蜜臀av| 欧美成人黄在线观看| 亚洲成av一区二区三区| 免费无码久久成人网站入口| 日韩人妻少妇一区二区三区| 日韩精品无码一区二区三区视频| 亚洲av第三区国产精品| 丰满少妇被猛烈进出69影院| 亚洲色欲在线播放一区二区三区 | 在线aⅴ亚洲中文字幕| 国内精品久久人妻无码不卡| 青河县| 亚洲人精品午夜射精日韩| 国内少妇偷人精品免费| 一本精品99久久精品77| 在线观看人成视频免费| 亚洲精品无码你懂的网站| 在线观看美女网站大全免费| 天天爽夜夜爱| 国产人与zoxxxx另类| 国产中文99视频在线观看| 在国产线视频A在线视频| 东城区| 999国产精品999久久久久久| 亚洲国产精品一区二区视频| 国产av一区二区三区综合| 亚洲欧美在线看片AI| 日韩高清亚洲日韩精品一区二区|