# 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