# 大型語言模型LLMs課程教學 課程大綱 (三)
## 跟你組織內的知識庫對話 Talk To Your Internal Knowledge Base
###### tags: `課程大綱`
## :memo: Where do I start?
- 聯絡窗口 Email us : 0203126@narlabs.org.tw Call us : 886-3-5776085 #294
- 部分內容請先註冊 HACKMD才能閱讀
## :date: 課程介紹講義:
- PDF [[課程介紹講義_v1]](https://github.com/c00cjz00/llm_course_20231228/blob/main/llms_20240110.pdf
)
- PDF [[課程介紹講義_v2]](https://drive.google.com/file/d/1GKP0gY6bhAiAmD7tF_ouiJ3trZRVkyl2/view?usp=sharing
)
- PDF [[課程介紹講義_2024/01/29]](https://drive.google.com/file/d/1mLZX1XnDSHAtccJwASiniUwrpuK5V4RY/view?usp=sharing
)
## :movie_camera: 課程教學影片:
- YOUTUBE [[課程教學影片]](https://youtu.be/Y0OrawaP1Aw )
## :cake: 課程教學程式碼:
- CODE [[課程教學程式碼]](https://github.com/c00cjz00/llm_course_20231228 )
## :a: 1+N 國網計算服務資源介紹
### 1. 國網電腦群介紹
> 課程重點: 認識國網電腦群介紹
- [國網電腦群介紹](https://covid-19.nchc.org.tw/agenda/202311_llms_Handouts_01.pdf)
### 2. **[CCS]** 容器運算服務介紹與教學
> A. 課程重點: 開發容器服務能快速佈建開發環境,使用者可依需求選擇不同的人工智慧框架,透過內建的 Jupyter Notebook 快速編輯程式。
- [容器運算服務介紹與教學](https://man.twcc.ai/@twccdocs/doc-ccs-main-zh/https%3A%2F%2Fman.twcc.ai%2F%40twccdocs%2Fguide-ccs-create-zh)
> B. 課程重點: 啟動容器教學
- [啟動PYTORCH容器](https://hackmd.io/@whYPD8MBSHWRZV6y-ymFwQ/rJO3TcFPT)
- [YOUTUBE](https://youtu.be/9ZnfyEZIgAI)
### 3. **[HPC]** 台灣杉二號 (TAIWANIA 2)介紹與操作教學 (<font color="#f00">Option</font>)
> A. 課程重點: 台灣杉二號介紹
- [台灣杉二號介紹](https://man.twcc.ai/@twccdocs/faq-zh/https%3A%2F%2Fman.twcc.ai%2F%40twccdocs%2Ffaq-twnia2-zh)
> B. 課程重點: 取得台灣杉二號 帳號與OTP認證碼
- [台灣杉二號 帳號與OTP認證碼](https://hackmd.io/@whYPD8MBSHWRZV6y-ymFwQ/HJyMVPbSp)
- [YOUTUBE](https://www.youtube.com/watch?v=WWNdvFsV6EE)
> C. 課程重點: 學習如何使用Singularity操作Docker Image
- [Singularity操作Docker Image](https://hackmd.io/@whYPD8MBSHWRZV6y-ymFwQ/H1r-_wbHT)
- [[YOUTUBE]](https://www.youtube.com/watch?v=h5Pr0sz8lS4)
> D.課程重點: 學習如何派送 HPC Slurm job
- [派送 HPC Slurm job](https://hackmd.io/@whYPD8MBSHWRZV6y-ymFwQ/B1wplDWST)
- [[YOUTUBE]](https://www.youtube.com/watch?v=EwBZ7_lI6u8)
### 4. **[VCS]** 虛擬運算服務介紹與操作教學
> 課程重點: 虛擬主機介紹
- [虛擬主機介紹](https://man.twcc.ai/@twccdocs/faq-zh/https%3A%2F%2Fman.twcc.ai%2F%40twccdocs%2Ffaq-vcs-zh)
## :spiral_note_pad: 計算環境啟動 Jupyter Notebook
### 1. **CCS**
> 課程重點: 如何啟動 Jupyter Notebook操作介面
- [建立CCS容器](https://man.twcc.ai/@twccdocs/doc-ccs-main-zh/https%3A%2F%2Fman.twcc.ai%2F%40twccdocs%2Fguide-ccs-create-zh)
- [啟動CCS Notebook服務](https://man.twcc.ai/@twccdocs/doc-ccs-main-zh/https%3A%2F%2Fman.twcc.ai%2F%40twccdocs%2Fguide-ccs-connect-zh)
### 2. **HPC** (<font color="#f00">Option</font>)
> 課程重點: 如何啟動 Jupyter Notebook操作介面
- [啟動HPC Notebook服務](https://hackmd.io/@whYPD8MBSHWRZV6y-ymFwQ/r1gzvxzra)
- [建立HPC NotebooK Singularity容器](https://hackmd.io/@whYPD8MBSHWRZV6y-ymFwQ/HkTVmWGSa)
### 3. **Colab** (<font color="#f00">12.28上課內容</font>)
> 課程重點: 如何啟動 Jupyter Notebook操作介面
- [課程講義](https://hackmd.io/@whYPD8MBSHWRZV6y-ymFwQ/HysOj9DPT)
- YOUTUBE [[Colab]](https://youtu.be/wWOa-z-fTB0)
## :sun_with_face: 大型語言模型LLMs介紹
### 1. 大型語言模型LLMs的發展與近況介紹 (<font color="#f00">12.28上課內容</font>)
> 課程重點: 了解大型語言模型LLMs近況發展
- [課程講義](https://covid-19.nchc.org.tw/agenda/llms_20231228.pdf)
### 2. 讓大型語言模型LLMs回答組織領域問題的經驗分享 (<font color="#f00">12.28上課內容</font>)
> 課程重點: 了解我們目前大型語言模型LLMs直接可以幫助我們的地方
- [課程講義](https://covid-19.nchc.org.tw/agenda/llms_20231228.pdf)
## :dart: 大型語言模型LLMs實作
### 1. Hugging Face 介紹 (<font color="#f00">12.28上課內容</font>)
>課程重點:
- [課程講義](https://hackmd.io/@whYPD8MBSHWRZV6y-ymFwQ/HkjJcSdw6)
- YOUTUBE [[MODEL]](https://youtu.be/q6im34-Sj48)
- YOUTUBE [[DATASET]](https://youtu.be/CBoBCUGriV8)
- 程式碼 [Z04_huggingface-Colab.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/Z04_huggingface-Colab.ipynb)
### 2. TextGen操作介紹 (<font color="#f00">12.28上課內容</font>)
> 課程重點:
> A. 如何上架大型語言模型LLMs
> B. 如何指派AI人設,指引LLMs回答的方向與範疇
> C. 如何利用QA資料集, 進行模型微調
> D. 如何上架微調模型
- [課程講義](https://hackmd.io/@whYPD8MBSHWRZV6y-ymFwQ/HJ8cMsDwp)
- YOUTUBE [[啟動 TextGen]](https://youtu.be/I-oLK-Olh7o)
- YOUTUBE [[上架大型語言模型]](https://youtu.be/6Ual2nd4ezU)
- YOUTUBE [[指派AI人設]](https://www.youtube.com/watch?v=Vx1tjNs9q-k)
- YOUTUBE [[模型微調]](https://www.youtube.com/watch?v=LyWJtdJ9olc)
- YOUTUBE [[上架微調模型]](https://www.youtube.com/watch?v=p2k1RjtJeS4)
- 程式碼 [Z01_TextGen_Colab.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/Z01_TextGen_Colab.ipynb)
- 預設密碼在程式碼裡面 (account:nchc password:nchc) 請自行修改
### 3. Langcahin操作介紹
> 課程重點: 學習Langcahin模組, 包含Model, Prompt, Document, VectorDB, Chain, Agent
- **MODEL:**
* [A01_model_openai.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/A01_model_openai.ipynb)
* [A02_model_llama2.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/A02_model_llama2.ipynb)
* [A03_model_llama2_gptq.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/A03_model_llama2_gptq.ipynb)
* [A04_model_OpenHermes_gptq.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/A04_model_OpenHermes_gptq.ipynb)
* [A05_model_llama2_qlora.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/A05_model_llama2_qlora.ipynb)
- **PROMPT:**
* [B01_prompt_openai.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/B01_prompt_openai.ipynb)
* [B02_prompt_llama2.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/B02_prompt_llama2.ipynb)
* [B03_prompt_llama2_gptq.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/B03_prompt_llama2_gptq.ipynb)
* [B04_model_OpenHermes_gptq.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/B04_model_OpenHermes_gptq.ipynb)
- **Document, VectorDB:** (openai)
* [C01_documents_vectordb_openai_chroma.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/C01_documents_vectordb_openai_chroma.ipynb)
* [C02_documents_vectordb_openai_faiss.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/C02_documents_vectordb_openai_faiss.ipynb)
* [C03_documents_vectordb_openai_pinecone.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/C03_documents_vectordb_openai_pinecone.ipynb)
* YOUTUBE [[EMBEDDING MODEL]](https://youtu.be/01g7MFBtLig)
* YOUTUBE [[PINECONE DB]](https://youtu.be/sI6TwgVgLj4)
- **Document, VectorDB:** (huggingface)
* [D01_documents_vectordb_huggingface_chroma.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/D01_documents_vectordb_huggingface_chroma.ipynb)
* [D02_documents_vectordb_huggingface_faiss.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/D02_documents_vectordb_huggingface_faiss.ipynb)
* [D03_documents_vectordb_huggingface_pinecone.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/D03_documents_vectordb_huggingface_pinecone.ipynb)
- **Chain:**
* [E01_chain_openai.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/E01_chain_openai.ipynb)
* [E02_chain_llama2.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/E02_chain_llama2.ipynb)
* [E03_chain_llama2_gptq.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/E03_chain_llama2_gptq.ipynb)
* [E04_chain_OpenHermes_gptq.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/E04_chain_OpenHermes_gptq.ipynb)
### 4. 模型微調 LoRA Training
> 課程重點: 學習如何用製作對話資料與進行微調模型
- [F01_datasets.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/F01_datasets.ipynb)
* YOUTUBE [[Atlas]](https://youtu.be/q1WwV--BP6c)
- [F02_training.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/F02_training.ipynb)
- [F03_datasets_training.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/F03_datasets_training.ipynb)
### 4X. 新增 Training
> 課程重點: 學習如何進行模型訓練
- 擴充詞表 [Y002_tokenizer_extention.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/Y002_tokenizer_extention.ipynb)
- llama-Factory WEUBI [Z01_LLaMA-Factory_Colab.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/Z01_LLaMA-Factory_Colab.ipynb)
* YOUTUBE [[Atlas]](https://youtu.be/tihBvGnAuzw)
- llama-Factory CMD [Z01_LLaMA-Factory_cmd.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/Z01_LLaMA-Factory_cmd.ipynb)
### 5. 模型訓練 Model Training
> 課程重點: 學習如何進行模型預訓練, 模型微調, 獎勵模型訓練, PPO 訓練, DPO 訓練
- [課程講義](https://hackmd.io/@whYPD8MBSHWRZV6y-ymFwQ/H1p-R_RPp)
### 6. Chainlit操作介紹 (I) (<font color="#f00">12.28上課內容</font>)
> 課程重點: 學習如何建立領域知識庫及跟你組織內的知識庫對話體驗
- [課程講義](https://hackmd.io/@whYPD8MBSHWRZV6y-ymFwQ/BkuwTD_vT)
- YOUTUBE [[Z03_chainlit_faiss_llama2_Colab]](https://youtu.be/WeJAySpbMbs)
- YOUTUBE [[Chatbot]](https://www.youtube.com/watch?v=_EPQxIQ0VhY)
- 程式碼 [Z03_chainlit_faiss_llama2_Colab.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/Z03_chainlit_faiss_llama2_Colab.ipynb)
### 7. Chainlit操作介紹 (II) (<font color="#f00">12.28上課內容</font>)
> 課程重點: 學習如何製作PDF對話機器人
- [課程講義](https://hackmd.io/@whYPD8MBSHWRZV6y-ymFwQ/S1u-UnFDp)
- YOUTUBE [[Z02_chainlit_chroma_openai-Colab]](https://youtu.be/WmhF8tVqTlk)
- YOUTUBE [[Chatbot01]](https://youtu.be/IRvdei8DJKo)
- YOUTUBE [[Chatbot02]](https://youtu.be/CJOqvMT1lV0 )
- 程式碼 [Z02_chainlit_chroma_openai-Colab.ipynb](https://colab.research.google.com/github/c00cjz00/llm_course_20231228/blob/main/Z02_chainlit_chroma_openai-Colab.ipynb)
## :registered: 相關註冊網站教學
1. 請註冊一組Openai帳號, 註冊後會獲得5美元額度 https://openai.com/ , 將用於API調度使用
註冊教學: https://hackmd.io/@whYPD8MBSHWRZV6y-ymFwQ/r1g6_ftP6
2. 若(1)無法註冊, 課程將以本地端模型 Llama 2 替代
3. 請註冊一組NGROK帳號 https://dashboard.ngrok.com/get-started/your-authtoken , 用於對話網頁伺服器對外連線使用
3. 請註冊一組HUGGINGFACE帳號 https://huggingface.co/settings/tokens , 取得 Access Tokens
4. 請準備一份PDF文件, 如 https://www.tsc-tech.com/webfiles/e2729e76-29a0-4be5-9eef-67809b05d6b9.pdf