---
# System prepended metadata

title: Hugging face 工作坊

---

# Hugging face 工作坊 Note
> 這個筆記整理了，我11月參加的抱抱臉工作坊【政治大學場次】，並且加上了一些後續問答與資料查詢的結果。
> by UNO 2024/01/07

![image](https://hackmd.io/_uploads/HJJsURvu6.png)



</br>

### 筆記大綱:
1. Hugging face開源模型的示範
2. 政大國企的研究與課堂應用 
3. 如果要Fine tune自己的模型?
4. 額外的研究整理
5. 參考資料


:::danger
這場工作坊的講師們，還正在嘗試Fine tune自己的語言模型，還未發表公開(2024/12/29)
:::


</br>

## 1. Hugging face開源模型的示範


> 報告者:中興大學 楊景明 黃鈺晴

**Hugging Face** 是一個開源的人工智慧庫，提供了機器學習模型庫。任何人都可以在這個模型庫分享自己訓練好的模型，促進了模型共享和合作。目前匯集32萬以上的預訓練模型。

使用者能夠輕鬆地下載這些模型並將其在自己的任務中進行微調,而無需從零開始進行模型訓練。

![image](https://hackmd.io/_uploads/H1PJsaD_p.png)


### A. 優勢
- **開源**：Hugging Face 是一個開源的人工智慧庫，可以讓使用者自由地使用、修改和分享。
- **豐富的模型**：Hugging Face 提供了許多預訓練的 NLP 模型，可以讓使用者快速地完成各種 NLP 任務。
- **易於使用**：Hugging Face 提供了簡單易懂的 API，使用者可以輕鬆地將其整合到自己的應用程式中。
- **社群支持**：Hugging Face 擁有一個活躍的社群，使用者可以在社群中尋求幫助和分享經驗。

### 劣勢
- **需要一定的技術門檻**：Hugging Face 需要使用者具備一定的程式設計和機器學習知識，才能夠充分利用其功能。
- **開源=品質不齊**: 由於 Hugging Face 的模型和工具是由不同的人和團隊開發的，因此它們的品質和可靠性可能會有所不同。此外，由於 Hugging Face 是一個開源項目，因此它的文檔和教程可能不夠完整或不夠清晰，這可能會對新手造成困惑。
- **資源消耗較大**：Hugging Face 的模型需要消耗大量的計算資源，對於資源有限的使用者來說可能會造成一定的困擾。
- **模型落後最新技術** : 由於 Hugging Face 是一個開源項目，因此它的更新速度可能會比較慢，這可能會導致它的模型和工具落後於最新的技術和研究。

### 常見的開源模型

#### A. Llama:

- 優點
    - 線上使用spaces ,免費使用、不需要登入,避免帳戶資料外洩,降低資安疑慮
    - 本機下載,若使用Llama 7B模型,只需要4GB的RAM就能使用，可以針對任務進行微調
    - 根據使用者需求,可以達成許多任務(Ex. 自動出題、解題)

- 缺點
    - 目前性能較OpenAI的ChatGPT弱,可能答非所問
    - 回答Token受限制,需使用continue繼續生成回答 (可能會影響結果)
    - 目前預設使用英文溝通,若要使用其他語言,需進行微調

#### B. Stable diffusion
> 用來藝術畫圖，也許用不到，不多敘述

#### C. Bark
> 文字轉語音 Bark: 可以將生成文稿的文檔轉換成語音，效率超低，比google語音、或其他語音生成應用輸入差一大截，不多敘述

#### D. Falcon
Falcon 是由位於阿布達比的技術創新研究院 (Technology Innovation Institute, TII)創建的一系列的新語言模型,其基於 Apache 2.0 許可發佈。

- Falcon系列模型是在RefinedWeb資料集上訓練的大型語言模型,可以針對特定任務進行微調。
    > RefinedWeb資料集包含了從網路上蒐集,嚴格過濾和刪除重複資料得到的上萬億tokens。
- 目前版本:
    - Falcon - 7B
    - Falcon - 40B
    - Falcon - 180B

:::success
"Falcon - 180B" 中的 "B" 代表的是"billion"，即十億。在這裡，它是用來表示模型大小的一個衡量單位，具體指的是模型包含的參數數量。所以 "Falcon - 180B" 表示的是一個包含大約1800億個參數的語言模型。
:::



在人工智能和機器學習領域，一個模型的「參數」是用來捕捉從訓練數據中學習到的知識的。一般來說，參數越多的模型潛在的學習能力越強，能夠更好地理解和生成語言，但同時也需要更多的計算資源來訓練和運行。

![image](https://hackmd.io/_uploads/Hy7lLTP_6.png)

> ARC (AI2 Reasoning Challenge)ARC 資料集是一個多項選擇題答案資料集,包含從3年級到9年級的科學考試問題。

> HellaSwag 一個用於評估常識的挑戰資料集,包含對於先進模型很困難,對人類來說很簡單(>95%的準確率)的問題。

> MMLU (Massive Multitask Language 衡量模型多任務準確性的測試。涵蓋了基礎數學、資訊、法律等任務。

> TruthfulQA衡量模型生成真實可信答案的能力,包括健康,法律,金融和政治。問題經過精心設計,以便有些人會因為誤解而回答錯誤。


:::success
大語言模型的更新建議追這一個 [點我查看leaderboard](https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard)
:::




:::danger
~~結論: 單獨使用開源模型的表現都不如OPEN AI與CLAUDE，並且載下來個人的電腦都跑不動~~
:::


</br>

## 2. 政大國企的研究與課堂應用 
> 報告者: Owen Lu, htlu@nccu.edu.tw

### A. Python TA
![image](https://hackmd.io/_uploads/SJMnoaP_6.png)

1. 課堂練習工作流程
    1. 老師上課錄影上傳youtube影片
    2. 用whisper產生字幕
    3. 輸入給open ai api，出題Python題目
    4. 用line發訊息給學生要求學生限時作答
2. 學生可以透過機器人請假
3. 聊天與限制
    1. 檢查是否詢問課堂資訊(課程時間、教室...)
    2. 進openai 用prompt的方式限制聊天主題


> 技術細節: 
    > MongoDB Atlas (MongoDB的雲端服務)，比較便宜，起始的500MB免費

### B. 商業廣告換衣服換臉
![image](https://hackmd.io/_uploads/HkK7aTDu6.png)
![image](https://hackmd.io/_uploads/S1d8p6DOp.png)

### C. 客服過濾仇恨語言
![image](https://hackmd.io/_uploads/HJ-Kp6Pua.png)



</br>

## 3. 如果要Fine tune自己的模型?


### Fine tune好工具: TRL

工具網址: https://huggingface.co/docs/trl/index

Transformer Reinforcement Learning（TRL）是一種使用強化學習（Reinforcement Learning）訓練 Transformer 語言模型的全套工具。它包括了一系列的工具，從監督調優（Supervised Fine-tuning step, SFT），到訓練獎勵模型（Reward Modeling），再到近端策略優化（Proximal Policy Optimization）。

> Transformer 是一種被認為在自然語言處理（NLP）和計算機視覺（CV）領域中佔主導地位的神經架構，主要用於監督訓練。

TRL 提供了多種 fine-tune 模型的方法，包括：

1. SFTTrainer：一個輕量級且友好的包裝器，可自定義數據集上 fine-tune 語言模型或適配器。
2. RewardTrainer：一個輕量級的包裝器，可讓 fine-tune 語言模型以滿足人類偏好（獎勵建模）。
3. PPOTrainer：一個 PPO 訓練器，用於語言模型，只需要（查詢、回應、獎勵）三元組即可優化語言模型。
4. AutoModelForCausalLMWithValueHead 和 AutoModelForSeq2SeqLMWithValueHead：一個 transformer 模型，每個token都有一個額外的標量輸出，可用作強化學習中的值函數。

:::info
據UNO所知，台大有老師成功Fine tune自己的模型，未來會搭配OPENAI、AWS、Google、CKIP-Llama-2-7b與均一合作來做教育相關的應用。(消息來源: 均一副執行長 蔡子揚)
:::


</br>

## 4. 額外的研究整理

### A. TMMLU+ 繁體中文 LLM 測試資料
測試資料集位置: https://huggingface.co/datasets/ikala/tmmluplus

![image](https://hackmd.io/_uploads/H1fUgAD_6.png)

![image](https://hackmd.io/_uploads/B1NDg0POp.png)

```python
from datasets import load_dataset
task_list = [
             'engineering_math', 'dentistry', 'traditional_chinese_medicine_clinical_medicine', 'clinical_psychology', 'technical', 'culinary_skills', 'mechanical', 'logic_reasoning', 'real_estate',
             'general_principles_of_law', 'finance_banking', 'anti_money_laundering', 'ttqav2', 'marketing_management', 'business_management', 'organic_chemistry', 'advance_chemistry',
             'physics', 'secondary_physics', 'human_behavior', 'national_protection', 'jce_humanities', 'politic_science', 'agriculture', 'official_document_management',
             'financial_analysis', 'pharmacy', 'educational_psychology', 'statistics_and_machine_learning', 'management_accounting', 'introduction_to_law', 'computer_science', 'veterinary_pathology',
             'accounting', 'fire_science', 'optometry', 'insurance_studies', 'pharmacology', 'taxation', 'trust_practice', 'geography_of_taiwan', 'physical_education', 'auditing', 'administrative_law',
             'education_(profession_level)', 'economics', 'veterinary_pharmacology', 'nautical_science', 'occupational_therapy_for_psychological_disorders',
             'basic_medical_science', 'macroeconomics', 'trade', 'chinese_language_and_literature', 'tve_design', 'junior_science_exam', 'junior_math_exam', 'junior_chinese_exam',
             'junior_social_studies', 'tve_mathematics', 'tve_chinese_language', 'tve_natural_sciences', 'junior_chemistry', 'music', 'education', 'three_principles_of_people',
             'taiwanese_hokkien'
            ]
for task in task_list:
  val = load_dataset('ikala/tmmluplus', task)['validation']
  dev = load_dataset('ikala/tmmluplus', task)['train']
  test = load_dataset('ikala/tmmluplus', task)['test']

```
> iKala 是一家跨國的AI公司，總部位於台灣，提供以AI驅動的數位轉型及數據行銷整體解決方案，有這些工作:
> 1. iKala Cloud：提供以AI驅動的數位轉型及數據行銷整體解決方案。
> 2. iKala Commerce：提供新零售服務與產品。
> 3. iKala CDP：提供客戶數據平台服務。
> 4. iKala KOL Radar：提供網紅行銷服務。
> 5. iKala Sales MA Program：培養具備企圖心、成長心態與團隊意識之業務人才為目標

> TMMLU 是一個多選題回答的資料集，包含66個科目，從基礎到專業層級不等。TMMLU+資料集比其前身TMMLU大六倍，包含更平衡的科TMMLU+資料集是iKala公司的一個開源資料集，**旨在幫助市場在測試繁體中文的能力上可以有指標進行判斷。**
> 
> 這個資料集是基於MMLU（Massive Multitask Language Understanding）資料集的基礎架構，包含了問答、世界知識、摘要、分類和表格理解等多種任務透過這些基準，研究者評估了不同模型在處理各種任務上的表現，突顯了每個模型的長處和短處。



### B. 比起fine tuning 的另一種選擇: RAG
Retrieval-Augmented Generation for Large Language Models: A Survey

論文網址: https://arxiv.org/abs/2312.10997


![image](https://hackmd.io/_uploads/BkCUb6D_a.png)

這篇論文是關於**檢索增強生成**（RAG）的綜述，這是一種結合了**大型語言模型**（LLMs）和**外部知識庫**的技術，可以提高模型的準確性和可信度，特別是對於知識密集型的任務。作者分析了RAG的發展歷程，包括**初級RAG**，**進階RAG**和**模組化RAG**，並詳細探討了RAG框架的三個基礎部分，即**檢索**，**生成**和**增強**技術。作者還介紹了評估RAG模型的指標和基準，以及最新的評估框架。最後，作者提出了一些未來的研究方向，包括挑戰，多模態擴展，以及RAG基礎設施和生態系統的發展。


> 待詳細研究 (2024/01/07)

</br>

## 5. 參考資料
1. 投影片與Prompt範例：https://reurl.cc/6QY1Rb
2. 照片整理：https://reurl.cc/0Zl5Gx
3. 工作坊回饋單(作為後續規劃使用)：https://reurl.cc/z6Zg2y





