# 大型語言模型實作讀書會第八組
## 報告主題: [Finetuning Large Language Models](https://learn.deeplearning.ai/finetuning-large-language-models/)
## 報告日期 113/2/20
## PM:彭鈐浩,陳昱廷
## 組長:Albert Chen 副組長:曾俊豪,陳昱廷
大型語言模型專題實作共學社群 - [八周課程內容簡介](https://gamma.app/docs/-vsoxoexxs6v3qzp?mode=doc), Abao
## 上課10天前看完影片及練習,前5天提供問題及補充資料給報告組
2023/12/19
1).[ 快速了解大型語言模型]( https://youtu.be/wG8-IUtqu-s?si=PE3Uhk96y6EOpgow), 李宏毅, 2023/12/26
第一週小組會議 議程 2023/12/21(四)
1. 收集第一堂課的問題(預定時間 : 20-40 min)
由各位成員直接分享簡報、筆記、或實作來討論
2. 本組報告之分工 [ Timeline: 12/26 - 1/30] (預定時間 : 10 min)
3. 各周問題收集之幹部分派(預定時間 : 10 min)
4. 確認交付給報告組的內容(當天 如果可能的話 ) (預定時間 : 5-10 min)
5. 專題腦力激盪時間? (Ext-activities )(預定時間 : 5-30 min)
專題實作: 即日起可以開始構思題目,徵題期間:113/01/01-113/1/10
審題期間:113/01/11-113/1/16,選題組隊:113/01/16-113/1/30
認領或自行提出相關LLM專題,每週review 進度,期末競賽並安排發表
建議每組PM,SA,前端,後端,領域專家及資料工程師,原則上限10個人
第一週小組會議 議錄 2023/12/21(四)
1. Albert 對第一堂課做了整理與介紹
2. 在介紹的過程,組員直接問了問題
3. 第一堂課問題的收集與整理
-
第一周(12/26)問題收集: Albert Chen
- 補充資料 (Albert Chen):
- 針對簡體中文研發的 tokenization 論文: https://direct.mit.edu/tacl/article/doi/10.1162/tacl_a_00560/116047/Sub-Character-Tokenization-for-Chinese-Pretrainedd
- 使用輸入法將中文字元做細部拆解的 Paper:GWBNER - A named entity recognition method based on character glyph and word boundary features for Chinese EHRs https://www.sciencedirect.com/science/article/pii/S1319157823002082#f0005
- 大語言模型的 tokenizer 演算法:BPE、WordPiece、Unigram LM: https://zhuanlan.zhihu.com/p/620508648
- [LLM 時代下的繁體中文 Tokenization?](https://medium.com/@albertchen3389/llm-%E6%99%82%E4%BB%A3%E4%B8%8B%E7%9A%84%E7%B9%81%E9%AB%94%E4%B8%AD%E6%96%87-tokenization-d91409a55bce/)
- 問題:
- 1. 繁體中文的 tokenization 有什麼比較好的演算法呢?
- 2. Reinforcement Learning from Human Feedback: 目前在收集回饋時,人是針對幾個答案做選擇,這樣收到的回饋好像不是很細緻,就是0或1 的分數打標,用0~1 的分數打分,效果會如何呢?
- 3. 如果要找到最佳的咒語讓Chat GPT得到最好的正確率需要試錯,但往往要遷就某一種語言模型得到的結果或是特定設計好的語言模型,會不會有可能用不一樣的語言模型得到不一樣的正確率之結果呢?
- 會不會也有可能設計好的語言模型完全找不出最佳的答案呢?
2). [ChatGPT Prompt Engineering for Developers](https://www.deeplearning.ai/short-courses/chatgpt-prompt-engineering-for-developers/ ), 2024/01/02
第二週小組會議記錄 2023/12/28(四)
1. Albert Chen 分享 Overview prompt Engeering, 討論了LLM具多國語言能力的原因,
2. 討論 LLM 的 prompt 有多個子任務時,在數學問題上發生的問題。
3. Albert Chen 分享 fine-tuning 的程式。
4. Linus 分享了一篇 Prompt 的論文, 以及分享 ChatGPTs 可以透過與系統互動的方式自動生成Prompt, 生成的Prompt 還是會以英文為語言。
- 問題:
- 1. 在 Expanding chapter 提到可以透過調整 temperature 來增加回答的多樣性,是否能介紹其背後機制是如何影響模型輸出?是改變字詞輸出機率的分布還是有隨機初始的權重會變化來造成輸出的改變?
- 2. 在 Iterative Prompt Development 有提到一些guidelines,有沒有方法可以自動化迭代出好的prompt?(e.g. AutoGPT, https://github.com/Significant-Gravitas/AutoGPT)
- 3. 原則二 Isa 提供的是「給予時間」讓模型思考,使用者並不能真正控制 GPT 的運算時間。請問他指的「時間」是什麼?
- 4. 若一次的 prompt 中包含一大堆推論子任務,但要求 gpt 模型只能輸出最終結論:模型會依序完成子任務,並依結果推導最終結論嗎?(還是它不見得會乖乖只輸出最終結果?)(大哉問耶對不起)"
- 補充資料:
- Fine-tuning code 展示 (Albert Chen 分享)
- Dataset: [databricks-dolly-15k](https://huggingface.co/datasets/databricks/databricks-dolly-15k)
- Paper: [The Power of Prompting, Microsoft Research](https://www.microsoft.com/en-us/research/blog/the-power-of-prompting) (Linus Tseng 夥伴分享)
- [Prompt engineering, six strategies for getting better results](https://platform.openai.com/docs/guides/prompt-engineering/six-strategies-for-getting-better-results)
3).[Building Systems with the ChatGPT API](https://www.deeplearning.ai/short-courses/building-systems-with-chatgpt/) 2024/01/09 (二)
2023/12/31 前完成
- 第三週小組會議記錄 2024/01/04 (四)
- 1.組員分享
- Albert Chen 分享了"大型語言模型的預訓練任務", 以及提出了一個專題題目,希望有組員一起加入。
- 2. 問題討論
- Temperature 的原理與公式
- LLM 在數學問題上,當把主任務拆解成多個子 steps 時,要讓模型輸出子步驟的結果,才能讓模型最終的結果比較容易答案。
- 因果推論模型在得到子步驟的結果時,對其後續要生成的文字品質是有幫助的。
- 討論評估 Prompt 的回答品質時,test cases 數量的重要性,有時要有達到一定的數量,才能評估出是否在統計的95%信心水準下,評估指標是有顯著的提升。
- 討論 Prompt 裡有拆解步驟時,為什麼每個步驟都要含有一個別的分隔符號。
- 補充資料:
- [大型語言模型的預訓練任務](https://medium.com/@albertchen3389/%E5%A4%A7%E8%AA%9E%E8%A8%80%E6%A8%A1%E5%9E%8B%E7%9A%84%E9%A0%90%E8%A8%93%E7%B7%B4%E4%BB%BB%E5%8B%99-b831dcf8f6f7)
4). [LangChain for LLM Application Development](https://www.deeplearning.ai/short-courses/langchain-for-llm-application-development/) 2024/01/16 (二)
2024/01/08 前完成
5). [LangChain: Chat with Your Data](https://www.deeplearning.ai/short-courses/langchain-chat-with-your-data/) 2024/01/23 (二)
2024/01/15 前完成
6). [Building Generative AI Applications with Gradio](https://www.deeplearning.ai/short-courses/building-generative-ai-applications-with-gradio/) 2024/01/30 (二)
2024/01/22 前完成
7). [Quality and Safety for LLM Applications](https://www.deeplearning.ai/short-courses/quality-safety-llm-applications/) 2024/02/06(二)
2024/01/29 前完成
- 小組會議記錄
- 課程內容 review
- Albert Chen 分享 Low-Rank Adaptation (LoRa)of Large Language Models
8). [Finetuning Large Language Models](https://www.deeplearning.ai/short-courses/finetuning-large-language-models/) 2024/02/20 (二) 年節後
- 補充資料:
- [客製化的大型語言模型 (LLM) — 針對特定領域做 Continual pre-training](https://medium.com/@albertchen3389/%E5%AE%A2%E8%A3%BD%E5%8C%96%E7%9A%84%E5%A4%A7%E5%9E%8B%E8%AA%9E%E8%A8%80%E6%A8%A1%E5%9E%8B-llm-%E9%87%9D%E5%B0%8D%E7%89%B9%E5%AE%9A%E9%A0%98%E5%9F%9F%E5%81%9A-continual-pre-training-0a961a0161b9)
- An Emulator for Fine-Tuning Large Language Models using Small Language Models
(https://arxiv.org/abs/2310.12962)
- 小組會議記錄
- Ivan 分享 Paper: Communicative Agents for Software Development
- [ChatDev GitHub](https://github.com/OpenBMB/ChatDev)
- Linus 分享 [Augogen-demo](https://github.com/ihower/autogen-demo/tree/main)
- [簡報](https://gamma.app/public/Autogen--opq7k43g59spkbu?mode=doc)
- Albert Chen 分享:Fine-tuning Model using OpenAI Platform 的結果
本組預計 2024/01/06 前,小組成員都完成 fine-tuning 的學習,以即早開始製作簡報
簡報內容初步有以下幾個主題:
- Topic 1-1: 課程本體 (30 min), 為全,建霖
- Topic 1-2: fine-tuning 底層方式實作 (10 min), 嘉冠
- Topic 2: Continual pre-training, LoRA 以及使用 OpenAI fine-tune 特定領域資料, Albert Chen
- [Topic 3: Nvidia Tailoring LLMs to Your Use Case](https://event.on24.com/wcc/r/4433901/411C7069A28C0E8AE69C709106D04BEC), Linus
- QA: Albert Chen
2024/02/15 (四)預演
Albert Chen 負責催各組即早提出問題。

LLM 專題提案: [BuildMate:LLM-based DIY PC Advisor System](https://gamma.app/docs/BuildMateLLM-based-DIY-PC-Recommendation-System-lwo4w23yt3sqcxl?mode=present), 隊長 Albert Chen