# 大型語言模型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