banner
hughie

hughie

热爱技术的小菜鸟, 记录一下所学所感

MiniGPT-4的本地搭建過程與實測

前言#

​ 本文簡單記錄一下個人在本地搭建 MiniGPT-4 的過程,以及相關模型參數下載轉換,最後做了一些測試。


正文#

一、什麼是 MiniGPT-4#

​ MiniGPT-4 是一個結合了圖像和文本的先進大型語言模型,能夠生成自然語言描述的圖像內容。該模型的訓練過程分兩個階段,第一階段使用大量的圖像 - 文本對進行傳統預訓練,第二階段使用模型自己創建的高質量圖像 - 文本對進行微調,從而顯著提高了其生成可靠性和整體實用性。MiniGPT-4 採用了 BLIP-2 模型架構,並使用 Vicuna 語言模型來對齊圖像和語言模型。

二、本地環境配置#

1、安裝 Conda#

​ MiniGPT-4 基於 Python 環境運行,在 Windows、Linux 和 Macos 上均可使用,Python 環境使用 Conda 配置。所以先配置 Conda 環境,分別介紹三種不同平台的安裝步驟:

  • 以下是在 Windows 上安裝 Conda 的步驟

    1. 點此下載適合您操作系統的 Anaconda 或點此下載 Miniconda 安裝程序。

    2. 雙擊下載的安裝程序,按照提示進行安裝。在安裝過程中,您可以選擇將 Anaconda 或 Miniconda 添加到系統 PATH 中,這將允許您在命令提示符下方便地使用 Conda 命令。

    3. 安裝完成後,打開 Anaconda Prompt 或 Windows PowerShell,輸入 "conda" 確認是否安裝成功。如果成功,將顯示 Conda 的基本使用方法。

    4. 如果您需要創建和管理 Conda 環境,可以使用 "conda create" 命令創建新的環境,並使用 "conda activate" 命令激活環境。詳細的環境管理方法可以查看 Conda 官方文檔。

  • 對於 Linux、Macos 或其他支持的操作系統,可以用上述方式下載程序安裝,更推薦終端安裝

    1. 下載適合您 Linux 版本和架構的 Anaconda 或 Miniconda 安裝程序。

    使用 curl 命令下載:

    curl -O https://repo.anaconda.com/archive/Anaconda-latest-Linux-x86_64.sh
    

    使用 wget 命令下載:

    wget https://repo.anaconda.com/archive/Anaconda-latest-Linux-x86_64.sh
    
    1. 下載完成後,您可以通過運行以下命令來安裝 Anaconda:
    bash Anaconda-latest-Linux-x86_64.sh
    

    按照安裝程序的指示進行操作即可完成安裝。

2、配置鏡像源 (中國大陸可選)#

要在 conda 中更改國內鏡像源,可以按照以下步驟操作:

​ 1. 打開終端或命令行窗口。輸入以下命令,將 conda 的配置文件中的 channels 設置為清華鏡像源:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

注意:如果想使用其他鏡像源,請將上述命令中的 URL 替換為選擇的鏡像源的 URL。

​ 2. 輸入以下命令,更新 conda:

conda update conda

​ 3. 輸入以下命令,驗證配置是否成功:

conda info

​ 如果看到以下信息,說明已成功更改了鏡像源:

channels:
  https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

​ 現在,可以使用 conda 命令安裝軟件包,它將從選擇的國內鏡像源下載軟件包。

3、安裝 MiniGPT-4#

​ Conda 安裝好後就可以安裝 MiniGPT-4 了:

git clone https://github.com/Vision-CAIR/MiniGPT-4.git
cd MiniGPT-4
conda env create -f environment.yml
conda activate minigpt4

對於中國大陸用戶,這裡需要注意一點,environment.yml 文件中除了創建 conda 環境之外,將環境中的 pip 依賴項也一併安裝了,但是由於環境內的 pip 還未配置鏡像源,基本上是安裝不了依賴庫的。

​ 對於這個問題,需要註釋 environment.yml 文件中的 pip 依賴項,將其複製到新文件 requirements.txt 中,並使用以下命令安裝:

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

三、模型參數下載與轉換#

​ MiniGPT-4 是基於 Vicuna-13B 和 Vicuna-7B 的V0 版本訓練而來的,所以模型參數有兩部分:Vicuna Weights 和 pretrained minigpt4 weights,需要分別下載使用。

1、Vicuna weights#

Vicuna 是一個開源的基於 LLAMA 的 LLM,其性能接近 ChatGPT。 MiniGPT-4 使用 v0 版本的 Vicuna-13B,最近兩天又完成了基於 Vicuna-7B 的模型,適合小顯存的 GPU 用戶。

注意,所有基於 LLaMA 的模型都只能給 delta 權重 (下載地址),再使用FastChat將這個 delta 權重加到 original LLaMA 權重上,得到最終 release 模型的權重。而這個轉換過程需要至少 60G 的內存佔用,因此這裡不介紹相關步驟,如果對轉換過程感興趣的,可以參考這篇文章和這篇文章

這裡直接給出已經轉換好的 Vicuna-13B 模型下載地址和 Vicuna-7B 模型下載地址,下載好完整的模型後,修改目錄minigpt4/configs/models下的文件minigpt4.yaml#L16的模型加載地址,就可以直接使用了。

2、pretrained minigpt4 weights#

這是微調的 minigpt4 權重,可以直接下載:

Checkpoint Aligned with Vicuna 13BCheckpoint Aligned with Vicuna 7B
DownladDownload

下載好後修改目錄eval_configs下的文件minigpt4_eval.yaml#L10為下載參數文件的地址即可。

3、本地運行#

在目錄 MiniGPT-4 下執行:

 python demo.py --cfg-path eval_configs/minigpt4_eval.yaml  --gpu-id 0

對於 Vicuna-13B 的 16bit 權重需要 23G + 的顯存,Vicuna-7B 需要 12G + 的顯存,如果設置目錄eval_configs下的文件minigpt4_eval.yaml中的low_resource 為 True,則可以使用 8bit 權重,可以進一步降低顯存佔用,根據實際顯卡情況更改即可。

四、實際測試#

​使用了 Vicuna-13B 的 16bit 測試情況如下:
minigpt4-testline.png
這是測試於 2023 年 4 月 20 日的結果,同時 MiniGPT-4 的項目還在不斷更新,效果應該會越來越好的。

總結#

​ MiniGPT-4 相對於 GPT4 而言,具有更小的模型規模和更低的計算資源需求,這使得 MiniGPT-4 適用於一些資源受限的場景。同時,MiniGPT-4 在視覺語言理解任務中表現出了很好的性能,特別是在生成任務中。然而,MiniGPT-4 與 GPT-4 相比還有一些局限性,例如生成的結果可能不如 GPT4 的自然流暢,以及 MiniGPT-4 並沒有覆蓋 GPT-4 的全部功能。但總的來說,MiniGPT-4 是一種有前途的模型,具有很大的發展潛力。同時這也是 LLM 向小型化發展的一小步,但這才剛剛開始,就跟互聯網剛興起時一樣,未來可期。

最後#

參考文章#

如何得到 vicuna-13B 的模型權重

小羊駝模型 (FastChat-vicuna) 運行踩坑記錄

MiniGPT-4 官方文檔


聲明#

本文僅作為個人學習記錄。

本文與HBlog保持同步。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。