在生成式 AI 運算平台運行你的服務 - TWCC 上的立法院十大好球

picture

2024-07-09

在生成式 AI 運算平台運行你的服務 - TWCC 上的立法院十大好球

使用 TWCC 開發型容器來測試 videoScript 專案

TWCC (Taiwan Computing Cloud) 的開發型容器提供了一個強大的雲端開發環境,適合進行 AI 模型訓練、數據處理和應用開發。以下是如何在 TWCC 開發型容器上配置和運行 videoScript 專案的詳細步驟。

為什麼選擇 TWCC 開發型容器

videoScript 專案使用了多個 AI 模型來實現視頻轉換逐字稿和優化逐字稿的功能。尤其是在使用台灣釋出的 Llama 3-TAIDE-LX-8B-Chat-Alpha1 模型時,GPU 的計算能力可以大幅加快處理速度。因此,建議選用 4 GPU 以上的配置,以確保高效處理。

初始化開發環境

1. 建立開發型容器

Screenshot 2024-07-05 at 4 31 21 PM

在 TWCC 入口網站中,選擇“開發型容器”服務,並創建一個新的容器。在選擇配置時,可以根據需要選擇適當的 GPU、CPU 和記憶體配置。例如:

  • 型號:cm.super
  • GPU:4 張
  • CPU:16 核心
  • 記憶體容量:360 GB
Screenshot 2024-07-05 at 4 31 21 PM

完成配置後,在“初始化指令”欄位中設置以下命令來安裝必要工具和依賴:

下列為結構化的整理各個指令以及說明用途:

# 更新包管理器和安裝必要的工具,確保管理器是最新的,並安裝 `python3-venv` 和 `wget`:
sudo apt-get update
sudo apt-get install -y python3-venv wget

# 確保 FFmpeg 安裝正確
sudo apt-get install -y ffmpeg

mkdir workspace
cd workspace

# 克隆項目代碼庫
git clone https://github.com/CAFECA-IO/Top-Ten-LiFaYuan.git

可直接貼上的版本:

sudo apt-get update && sudo apt-get install -y python3-venv wget ffmpeg; \
mkdir workspace; cd workspace; \
git clone https://github.com/CAFECA-IO/Top-Ten-LiFaYuan.git; \

2. 配置環境變數

在建立容器時,可以在“環境變數”欄位中設置以下 JSON 格式的環境變數:

{
    "HUGGINGFACE_API_TOKEN": "您的 Hugging Face API Token"
}

3. 連線容器

當容器服務狀態顯示為“Ready”後,可以選擇以下連線方式:

Screenshot 2024-07-08 at 3 38 38 PM

透過 Jupyter Notebook 連線

  1. 在 TWCC 入口網站,點擊 Jupyter 右方的“開啟”,進入內建的 Jupyter Notebook 操作網頁。
  2. 點選“New” > “Terminal”,即可進入容器環境。

透過 SSH 連線

  1. 在 TWCC 入口網站,點擊 SSH 右方的“複製圖示”來獲取主機登錄帳號及 IP 位址。

  2. 在本地端電腦中,開啟 Terminal 並填入 SSH 登入資訊:

    ssh your-username@your-container-ip
    

在 Jupyter Notebook 連線的 terminal

Screenshot 2024-07-05 at 4 56 19 PM
# 進入項目目錄
cd Top-Ten-LiFaYuan/Videoscript

# 設置虛擬環境並安裝 Python 項目依賴
python3 -m venv venv
source venv/bin/activate
pip install --no-user --upgrade pip
pip install -r --no-user requirements.txt

開啟 API 以供外部訪問

在 TWCC 開發型容器詳細資料 裡面設定服務埠: Screenshot 2024-07-08 at 5 20 09 PM

  1. 點選 關聯 後彈出視窗,會有可以使用的端口列表,這裡我們選 5000

    Screenshot 2024-07-08 at 5 20 44 PM
  2. 連接埠就會多一個: 目標埠: 5000 (userdefine1) 對外埠: 53917

    Screenshot 2024-07-08 at 5 22 00 PM
  3. run.py 文件中的 app run 將 Flask 應用設置為可以被外部訪問,並有設定對應的端口:

    if __name__ == "__main__":
        app.run(host='0.0.0.0', port=5000)
    

運行 Flask 應用

確保已經完成了上述所有配置,然後使用以下命令啟動 Flask 應用:

python run.py
Screenshot 2024-07-08 at 5 24 54 PM

這將啟動 Flask 應用,可以通過 <公用 IP: 203.145.216.218>:<對外埠: 53917>` 訪問應用並使用其提供的 API。

使用指令測試功能

連接到容器後,可以通過以下指令來測試 videoScript 的各個功能: 一共有 6 個指令可以使用,是依序使用,如果跳著使用也沒有問題,系統會檢查當前的資料是否足夠執行,若不足系統會自己補齊。 指令後面跟於下載及處理的影片網址(video_url)

video_url 的來源

Screenshot 2024-07-08 at 5 29 28 PM

https://ivod.ly.gov.tw/Play/Clip/300K/154308

1. 下載視頻

運行以下命令來下載會議視頻:

python run.py download <video_url>|<empty>

2. 提取音頻

運行以下命令從下載的視頻中提取音頻:

python run.py extract <video_url>|<empty>

3. 處理音頻

運行以下命令對提取的音頻進行處理(如降噪):

python run.py process <video_url>|<empty>

4. 轉換音頻為逐字稿

運行以下命令將處理過的音頻轉換為逐字稿:

python run.py transcribe <video_url>|<empty>

5. 優化逐字稿

運行以下命令使用 Llama3-TAIDE 模型來優化生成的逐字稿:

python run.py optimize <video_url>|<empty>

6. 生成摘要

運行以下命令生成逐字稿的摘要:

python run.py summarize <video_url>|<empty>

總結

通過使用 TWCC 開發型容器,可以高效地配置和運行 videoScript 專案。這不僅能夠充分利用 GPU 的強大計算能力來加快 AI 模型的處理速度,還可以方便地通過 Jupyter Notebook 或 SSH 進行連接和操作,實現視頻轉換逐字稿和優化逐字稿的完整流程。

emily_avatar

Tzuhan Liang

Software Engineer

A weight training enthusiast who can effortlessly deadlift seventy kilograms shifted to road cycling and became a carb-loving chubby person. Now, she plans to restructure her training routine to regain the lost muscle mass.

Check more from this author

Share to

Back