{"id":29876722,"url":"https://github.com/wcks13589/llm-tutorial","last_synced_at":"2025-07-31T04:06:07.842Z","repository":{"id":249435193,"uuid":"831103593","full_name":"wcks13589/LLM-Tutorial","owner":"wcks13589","description":"LLM tutorial materials include but not limited to NVIDIA NeMo, TensorRT-LLM, Triton Inference Server, and NeMo Guardrails.","archived":false,"fork":false,"pushed_at":"2025-06-26T09:22:26.000Z","size":3474,"stargazers_count":7,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-26T10:27:55.963Z","etag":null,"topics":["llm","nemo","nemo-guardrails","nvidia-nemo","tensorrt-llm"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wcks13589.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-07-19T17:04:10.000Z","updated_at":"2025-06-26T09:22:30.000Z","dependencies_parsed_at":"2024-08-06T02:28:32.136Z","dependency_job_id":"a00eddeb-cb13-4120-929f-7731eb77c147","html_url":"https://github.com/wcks13589/LLM-Tutorial","commit_stats":null,"previous_names":["j3soon/llm-tutorial","wcks13589/llm-tutorial"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/wcks13589/LLM-Tutorial","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wcks13589%2FLLM-Tutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wcks13589%2FLLM-Tutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wcks13589%2FLLM-Tutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wcks13589%2FLLM-Tutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wcks13589","download_url":"https://codeload.github.com/wcks13589/LLM-Tutorial/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wcks13589%2FLLM-Tutorial/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267985240,"owners_count":24176412,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-31T02:00:08.723Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["llm","nemo","nemo-guardrails","nvidia-nemo","tensorrt-llm"],"created_at":"2025-07-31T04:06:05.374Z","updated_at":"2025-07-31T04:06:07.826Z","avatar_url":"https://github.com/wcks13589.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LLM Bootcamp - NVIDIA NeMo 大型語言模型訓練實戰教學 🚀\n\n歡迎來到 LLM Bootcamp！本教學將帶您完整體驗使用 [NVIDIA NeMo](https://github.com/NVIDIA/NeMo) 進行大型語言模型（LLM）的完整流程，從零開始學會模型轉換、預訓練、微調到部署的實戰技巧。\n\n## 🎯 學習目標\n\n通過本 Bootcamp，您將學會：\n\n1. **🔄 模型轉換技能**：掌握 Hugging Face 與 NeMo 格式間的轉換\n2. **📚 預訓練實踐**：體驗大規模語言模型的持續預訓練\n3. **🛠️ 微調技術**：學會針對特定任務進行模型微調、掌握 LoRA 等參數高效微調方法\n4. **📊 模型評估**：學會評估和測試模型性能\n5. **🚀 模型部署**：了解模型導出和部署流程\n\n---\n\n## 📂 教學大綱\n\n- [🚀 開始之前：環境設定](#🛠️-環境準備)\n  - [📖 詳細環境設定指南](setup/README.md) ⭐\n- [📥 專案設置](#📥-專案設置)\n- [📖 詳細教學步驟](#📖-詳細教學步驟)\n  - [第一章：模型轉換基礎](#第一章模型轉換基礎)\n  - [第二章：持續預訓練實戰](#第二章持續預訓練實戰)\n  - [第三章：指令微調技術](#第三章指令微調技術)\n  - [第四章：Reasoning 資料微調技術](#第四章reasoning-資料微調技術)\n  - [第五章：模型評估與測試](#第五章模型評估與測試)\n  - [第六章：模型部署與轉換](#第六章模型部署與轉換)\n  - [第七章：標準化模型評估](#第七章標準化模型評估)\n- [💡 實戰技巧](#💡-實戰技巧)\n- [📚 進階學習資源](#📚-進階學習資源)\n\n---\n\n## 🛠️ 環境準備\n\n### 📋 選擇您的環境\n\n在開始訓練之前，您需要設定適合的 GPU 環境。我們提供詳細的環境設定指南：\n\n#### 🌟 TWCC 雲端環境\n\n**設定步驟**：詳見 **[📖 TWCC 環境設定指南](setup/README.md)**\n\n#### 🐳 本地 Docker 環境\n\n使用官方 NeMo 容器，包含所有必要的依賴套件：\n\n```bash\ndocker run \\\n    --gpus all -it --rm --shm-size=8g --ulimit memlock=-1 --ulimit stack=67108864 \\\n    -v $PWD:$PWD -w $PWD -p 8888:8888 \\\n    nvcr.io/nvidia/nemo:25.04\n```\n\n\u003e 💡 **提示**：您可以在 [NGC NeMo Catalog](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/nemo/tags) 查看最新版本\n\n---\n\n## 📥 專案設置\n\n### 下載教學專案\n\n```bash\ngit clone https://github.com/wcks13589/LLM-Tutorial.git\ncd LLM-Tutorial\npip install -U click\n```\n\n\u003e 💡 **提示**：請確保在 `LLM-Tutorial` 專案目錄中執行後續指令。\n\n### 🔑 設定 Hugging Face 權限\n\n申請並設定您的 Hugging Face Token：\n\n1. **申請 Token**：前往 [Hugging Face Settings](https://huggingface.co/settings/tokens) 建立新的 Access Token\n2. **設定環境變數**：\n   ```bash\n   # 替換為您的實際 Token\n   export HF_TOKEN=\"your_hf_token\"\n   huggingface-cli login --token $HF_TOKEN\n   ```\n\n\u003e 📌 **重要**：請先在 [Hugging Face](https://huggingface.co/settings/tokens) 申請 Access Token\n\n## 📖 詳細教學步驟\n\n### 第一章：模型轉換基礎\n\n#### 1.1 下載預訓練模型\n\n```bash\n# 下載 Llama 3.1 8B Instruct 模型\nhuggingface-cli download meta-llama/Llama-3.1-8B-Instruct \\\n    --local-dir Llama-3.1-8B-Instruct \\\n    --exclude original/\n```\n\n#### 1.2 轉換為 NeMo 格式\n\n```bash\n# 設定變數\nMODEL=llama3_8b\nHF_MODEL_ID=Llama-3.1-8B-Instruct\nOUTPUT_PATH=nemo_ckpt/Llama-3.1-8B-Instruct\nOVERWRITE_EXISTING=false\n\n# 執行轉換\nnemo llm import -y \\\n    model=${MODEL} \\\n    source=hf://${HF_MODEL_ID} \\\n    output_path=${OUTPUT_PATH} \\\n    overwrite=${OVERWRITE_EXISTING}\n```\n\n\u003e ✅ **檢查點**：確認 `nemo_ckpt/` 目錄下成功生成了 NeMo 格式的模型檔案\n\n---\n\n### 第二章：持續預訓練實戰\n\n#### 2.1 準備訓練資料\n\n**下載中文資料集**：\n\n```bash\npython data_preparation/download_pretrain_data.py \\\n    --dataset_name erhwenkuo/wikinews-zhtw \\\n    --output_dir data/custom_dataset/json/wikinews-zhtw.jsonl\n```\n\n#### 2.2 資料預處理\n\n```bash\n# 建立預處理目錄\nmkdir -p data/custom_dataset/preprocessed\n\n# 使用 NeMo 的資料預處理工具\npython /opt/NeMo/scripts/nlp_language_modeling/preprocess_data_for_megatron.py \\\n    --input=data/custom_dataset/json/wikinews-zhtw.jsonl \\\n    --json-keys=text \\\n    --dataset-impl mmap \\\n    --tokenizer-library=huggingface \\\n    --tokenizer-type meta-llama/Llama-3.1-8B-Instruct \\\n    --output-prefix=data/custom_dataset/preprocessed/wikinews \\\n    --append-eod\n```\n\n#### 2.3 執行預訓練\n\n##### 前置準備\n\n設定基本參數：\n\n```bash\nJOB_NAME=llama31_pretraining\nNUM_NODES=1\nNUM_GPUS=1\nHF_MODEL_ID=meta-llama/Llama-3.1-8B-Instruct\n\n# 並行處理參數\nTP=1  # Tensor Parallel\nPP=1  # Pipeline Parallel  \nCP=1  # Context Parallel\n\n# 訓練參數\nGBS=4          # Global Batch Size\nMAX_STEPS=20  # 最大訓練步數(模型權重更新次數)\nDATASET_PATH=data/custom_dataset/preprocessed/\n```\n\n##### 方法一：從頭開始預訓練模型\n\n**適用情況**：當您想要從零開始訓練模型時使用。\n\n**特點**：腳本會自動從基礎模型架構進行權重初始化\n\n**執行指令**：\n```bash\npython pretraining/pretrain.py \\\n   --executor local \\\n   --experiment ${JOB_NAME} \\\n   --num_nodes ${NUM_NODES} \\\n   --num_gpus ${NUM_GPUS} \\\n   --model_size 8B \\\n   --hf_model_id ${HF_MODEL_ID} \\\n   --hf_token ${HF_TOKEN} \\\n   --max_steps ${MAX_STEPS} \\\n   --global_batch_size ${GBS} \\\n   --tensor_model_parallel_size ${TP} \\\n   --pipeline_model_parallel_size ${PP} \\\n   --context_parallel_size ${CP} \\\n   --dataset_path ${DATASET_PATH}\n```\n\n\u003e **重要提醒**：本教學內容特別針對 V100 32GB GPU 進行配置優化\n\u003e \n\u003e 由於本教學內容預計使用 V100 32GB 的 GPU 來實作，為確保可以順利執行模型的訓練，我們在 `pretrain.py` 中特地將模型的層數與維度大幅降低：\n\u003e \n\u003e **模型配置對比**：\n\u003e - **原始 Llama3.1 8B 模型**：\n\u003e   - `num_layers = 32`\n\u003e   - `hidden_size = 4096`\n\u003e   - 參數量： 8B 個參數\n\u003e - **調整後配置**：\n\u003e   - `num_layers = 1`\n\u003e   - `hidden_size = 128`\n\u003e   - 參數量：大幅降低，適合單張 V100 GPU\n\u003e \n\u003e **調整原因**：\n\u003e - 確保在 V100 32GB 記憶體限制下能順利執行\n\u003e - 降低訓練時間，提供更好的學習體驗\n\u003e - 保持完整的訓練流程，讓學習者理解整個預訓練過程\n\u003e \n\u003e **程式碼位置**：這些配置調整位於 `pretrain.py` 中的 `configure_recipe` 函數內。\n\u003e \n\u003e **具體修改的程式碼**：\n\u003e ```python\n\u003e recipe.model.config.num_layers = 1\n\u003e recipe.model.config.hidden_size = 128\n\u003e ```\n\n\u003e 📊 **監控訓練**：訓練過程中可以觀察 loss 變化來判斷模型學習狀況\n\n##### 方法二：從預訓練模型開始繼續預訓練\n\n\u003e ⚠️ **注意**：此方法在本 Bootcamp 實作中不會執行，由於資源限制，我們專注於方法一的實踐學習。此部分僅供參考和學習使用。\n\n**適用情況**：當您想要從現有的 NeMo 格式模型開始，進行持續預訓練時使用。\n\n**前置條件**：\n- 需要先將 Hugging Face 模型轉換為 NeMo 格式\n- 確保 `${NEMO_MODEL}` 路徑下存在有效的 NeMo 模型檔案\n\n**執行指令**：\n```bash\nNEMO_MODEL=nemo_ckpt/Llama-3.1-8B-Instruct\n\npython pretraining/pretrain.py \\\n   --executor local \\\n   --experiment ${JOB_NAME} \\\n   --num_nodes ${NUM_NODES} \\\n   --num_gpus ${NUM_GPUS} \\\n   --model_size 8B \\\n   --hf_model_id ${HF_MODEL_ID} \\\n   --nemo_model ${NEMO_MODEL} \\\n   --hf_token ${HF_TOKEN} \\\n   --max_steps ${MAX_STEPS} \\\n   --global_batch_size ${GBS} \\\n   --tensor_model_parallel_size ${TP} \\\n   --pipeline_model_parallel_size ${PP} \\\n   --context_parallel_size ${CP} \\\n   --dataset_path ${DATASET_PATH}\n```\n\n---\n\n### 第三章：指令微調技術\n\n#### 3.1 準備微調資料\n\n```bash\n# 下載並準備 Alpaca 資料集\npython data_preparation/download_sft_data.py\n```\n\n#### 3.2 執行 LoRA 微調\n\n```bash\n# 微調參數設定\nJOB_NAME=llama31_finetuning\nNUM_NODES=1\nNUM_GPUS=1\nHF_MODEL_ID=meta-llama/Llama-3.1-8B-Instruct\nNEMO_MODEL=nemo_ckpt/Llama-3.1-8B-Instruct\n# LATEST_CHECKPOINT=$(find nemo_experiments/llama31_pretraining/checkpoints/ -type d -name \"*-last\" | sort -r | head -n 1)\nHF_TOKEN=$HF_TOKEN\n\n# 並行處理參數\nTP=1\nPP=1\nCP=1\n\n# 微調參數\nMAX_STEPS=10\nGBS=4\nDATASET_PATH=data/alpaca\n\n# 執行 LoRA 微調\npython finetuning/finetune.py \\\n    --executor local \\\n    --experiment ${JOB_NAME} \\\n    --num_nodes ${NUM_NODES} \\\n    --num_gpus ${NUM_GPUS} \\\n    --model_size 8B \\\n    --hf_model_id ${HF_MODEL_ID} \\\n    --hf_token ${HF_TOKEN} \\\n    --nemo_model ${NEMO_MODEL} \\\n    --max_steps ${MAX_STEPS} \\\n    --global_batch_size ${GBS} \\\n    --tensor_model_parallel_size ${TP} \\\n    --pipeline_model_parallel_size ${PP} \\\n    --context_parallel_size ${CP} \\\n    --dataset_path ${DATASET_PATH} \\\n    --peft lora\n```\n\n\u003e 🎯 **全參數微調**：若要進行全參數的微調，請移除`--peft lora`\n\n---\n\n### 第四章：Reasoning 資料微調技術\n\n#### 4.1 準備 Reasoning 資料集\n\n```bash\n# 建立 Reasoning 資料集目錄\nmkdir -p data/reasoning_dataset/\n\n# 下載 NVIDIA Llama-Nemotron 後訓練資料集\nwget https://huggingface.co/datasets/nvidia/Llama-Nemotron-Post-Training-Dataset/resolve/main/SFT/chat/chat.jsonl -P data/reasoning_dataset/\n\n# 從資料集中選取樣本進行快速訓練\nhead -n 200 data/reasoning_dataset/chat.jsonl \u003e data/reasoning_dataset/chat_subset.jsonl\n```\n\n#### 4.2 資料預處理與策展\n\n```bash\nexport UCX_MEMTYPE_CACHE=n\nexport UCX_TLS=tcp\n\n# 執行資料策展與預處理\npython data_preparation/curate_reasoning_data.py \\\n    --input-dir \"data/reasoning_dataset\" \\\n    --filename-filter \"chat_subset\" \\\n    --remove-columns \"category\" \"generator\" \"license\" \"reasoning\" \"system_prompt\" \"used_in_training\" \"version\" \\\n    --json-files-per-partition 16 \\\n    --tokenizer \"meta-llama/Llama-3.1-8B-Instruct\" \\\n    --max-token-count 16384 \\\n    --max-completion-token-count 8192 \\\n    --output-dir data/reasoning_dataset/curated-data \\\n    --device \"gpu\" \\\n    --n-workers 1\n```\n\n\u003e 💡 **執行提示**：此程式執行過程中可能會出現一些錯誤訊息，但只要輸出資料夾 `data/reasoning_dataset/curated-data` 內有檔案產生就算執行成功，可以忽略錯誤訊息繼續後續步驟。\n\n#### 4.3 執行 Reasoning LoRA 微調\n\n```bash\n# Reasoning 微調參數設定\nJOB_NAME=llama31_reasoning_finetuning\nNUM_NODES=1\nNUM_GPUS=1\nHF_MODEL_ID=meta-llama/Llama-3.1-8B-Instruct\nNEMO_MODEL=nemo_ckpt/Llama-3.1-8B-Instruct\nHF_TOKEN=$HF_TOKEN\n\n# 並行處理參數\nTP=1\nPP=1\nCP=1\n\n# 微調參數\nMAX_STEPS=10\nGBS=4\nDATASET_PATH=data/reasoning_dataset/curated-data\n\n# 執行 Reasoning LoRA 微調\npython finetuning/finetune.py \\\n    --executor local \\\n    --experiment ${JOB_NAME} \\\n    --num_nodes ${NUM_NODES} \\\n    --num_gpus ${NUM_GPUS} \\\n    --model_size 8B \\\n    --hf_model_id ${HF_MODEL_ID} \\\n    --hf_token ${HF_TOKEN} \\\n    --nemo_model ${NEMO_MODEL} \\\n    --max_steps ${MAX_STEPS} \\\n    --global_batch_size ${GBS} \\\n    --tensor_model_parallel_size ${TP} \\\n    --pipeline_model_parallel_size ${PP} \\\n    --context_parallel_size ${CP} \\\n    --dataset_path ${DATASET_PATH} \\\n    --peft lora \\\n    --seq_length 1024\n```\n\n\u003e 🧠 **Reasoning 微調特色**：使用高品質的推理資料集，提升模型的邏輯推理和複雜問題解決能力\n\n---\n\n### 第五章：模型評估與測試\n\n#### 5.1 準備測試資料\n\n```bash\n# 從測試集中選取樣本進行快速評估\nhead -n 30 data/alpaca/test.jsonl \u003e data/alpaca/test_subset.jsonl\n```\n\n#### 5.2 執行推理測試\n\n```bash\n# 使用微調後的模型進行推理\n# 找到最新的檢查點資料夾\nLATEST_CHECKPOINT=$(find nemo_experiments/llama31_finetuning/checkpoints/ -type d -name \"*-last\" | sort -r | head -n 1)\n\npython evaluation/inference.py \\\n    --peft_ckpt_path ${LATEST_CHECKPOINT} \\\n    --input_dataset data/alpaca/test_subset.jsonl \\\n    --output_path data/alpaca/peft_prediction.jsonl\n```\n\n#### 5.3 計算評估指標\n\n```bash\n# 計算模型性能指標\npython /opt/NeMo/scripts/metric_calculation/peft_metric_calc.py \\\n    --pred_file data/alpaca/peft_prediction.jsonl \\\n    --label_field \"label\" \\\n    --pred_field \"prediction\"\n```\n\n---\n\n### 第六章：模型部署與轉換\n\n\u003e ⚠️ **重要提醒**：如果您進行的是 LoRA 微調，請先執行步驟 6.1 合併 LoRA 權重，再進行步驟 6.2 的格式轉換。\n\n#### 6.1 合併 LoRA 權重（僅限 LoRA 微調）\n\n如果您使用了 LoRA 進行微調（在微調指令中包含 `--peft lora`），您需要先將 LoRA 權重合併回基底模型，然後再進行格式轉換：\n\n```bash\n# 找到最新的 LoRA checkpoint\nLATEST_LORA_CHECKPOINT=$(find nemo_experiments/llama31_reasoning_finetuning/checkpoints/ -type d -name \"*-last\" | sort -r | head -n 1)\nNEMO_MODEL=nemo_experiments/llama31_reasoning_finetuning/checkpoints/nemo_ckpt_merged\n\n# 合併 LoRA 權重到基底模型\npython finetuning/merge_lora.py \\\n    --nemo_lora_model ${LATEST_LORA_CHECKPOINT} \\\n    --output_path ${NEMO_MODEL}\n```\n\n\u003e 💡 **說明**：\n\u003e - 此步驟會將 LoRA 適配器的權重合併到原始的基底模型中\n\u003e - 合併後的模型包含完整的權重，可以獨立使用\n\u003e - 如果您進行的是全參數微調，請跳過此步驟\n\n#### 6.2 轉換回 Hugging Face 格式\n\n```bash\n# 設定轉換參數\n# 如果您完成了 LoRA 合併，請使用合併後的模型路徑：\nNEMO_MODEL=nemo_experiments/llama31_reasoning_finetuning/checkpoints/nemo_ckpt_merged\n# \n# 如果您進行的是全參數微調，請使用：\n# NEMO_MODEL=$(find nemo_experiments/llama31_reasoning_finetuning/checkpoints/ -type d -name \"*-last\" | sort -r | head -n 1)\nOUTPUT_PATH=hf_ckpt/\n\n# 執行轉換\nnemo llm export -y \\\n    path=${NEMO_MODEL} \\\n    output_path=${OUTPUT_PATH} \\\n    target=hf\n```\n\n---\n\n### 第七章：標準化模型評估\n\n#### 7.1 安裝評估工具\n\n使用 EleutherAI 的 lm-evaluation-harness 工具進行標準化模型評估：\n\n```bash\n# 下載並安裝 lm-evaluation-harness\ngit clone --depth 1 https://github.com/EleutherAI/lm-evaluation-harness\ncd lm-evaluation-harness\npip install -e .\n```\n\n#### 7.2 執行標準化評估\n\n使用 LAMBADA OpenAI 任務評估模型的語言建模能力：\n\n```bash\n# 切換回主目錄\ncd ..\n\n# 執行 LAMBADA OpenAI 評估 (僅使用較少樣本進行快速評估)\nlm_eval --model hf \\\n    --model_args pretrained=hf_ckpt/ \\\n    --tasks lambada_openai \\\n    --device cuda:0 \\\n    --batch_size 8 \\\n    --limit 100\n```\n\n**執行結果範例**：\n\n```\n|    Tasks     |Version|Filter|n-shot|  Metric  |   |Value |   |Stderr|\n|--------------|------:|------|-----:|----------|---|-----:|---|-----:|\n|lambada_openai|      1|none  |     0|acc       |↑  |0.7100|±  |0.0456|\n|              |       |none  |     0|perplexity|↓  |3.4032|±  |0.5080|\n```\n\n**結果指標說明**：\n- **acc (準確率)**：模型正確預測句子最後一個詞的比例，本例為 71%\n- **perplexity (困惑度)**：衡量模型對文本的不確定性，數值越低越好\n\n\u003e 💡 **結果分析**：準確率 \u003e 70% 通常表示模型具有良好的語言理解能力\n\n#### 7.3 其他評估任務\n\n您也可以嘗試其他常見的評估任務：\n\n```bash\nlm_eval --model hf \\\n    --model_args pretrained=hf_ckpt/ \\\n    --tasks arc_challenge \\\n    --device cuda:0 \\\n    --batch_size 8\n```\n\n\u003e 📊 **評估任務說明**：\n\u003e - **LAMBADA OpenAI**：測試語言建模和上下文理解能力，評估模型預測句子最後一個詞的準確性\n\u003e - **ARC (AI2 Reasoning Challenge)**：測試科學推理能力\n\u003e \n\u003e 🔧 **調優提示**：\n\u003e - 可根據 GPU 記憶體調整 `batch_size` 參數\n\u003e - 使用 `--limit` 參數進行快速測試\n\u003e - 詳細的評估結果會顯示準確率和其他相關指標\n\n---\n\n## 📚 進階學習資源\n\n### 官方文檔\n- [NeMo 官方文件](https://docs.nvidia.com/deeplearning/nemo/user-guide/docs/en/stable/)\n- [NeMo GitHub](https://github.com/NVIDIA/NeMo)\n\n### 進階主題\n1. **多模態模型訓練**\n2. **分散式訓練優化**\n3. **模型壓縮與量化**\n4. **自定義資料載入器**\n\n---\n\n## 🎉 恭喜完成 LLM Bootcamp！\n\n通過本教學，您已經掌握了：\n- ✅ 大型語言模型的完整訓練流程\n- ✅ NeMo 框架的核心功能\n- ✅ 實際的 AI 模型開發技能\n- ✅ 企業級 AI 應用開發基礎\n\n**下一步建議**：\n1. 嘗試使用自己的資料集\n2. 探索不同的模型架構\n3. 學習模型部署與服務化\n4. 參與開源專案貢獻\n\n---\n\n\u003e 💬 **需要幫助？** 歡迎在 [Issues](https://github.com/wcks13589/LLM-Tutorial/issues) 中提出問題或建議！\n\n**Happy Learning! 🚀**","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwcks13589%2Fllm-tutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwcks13589%2Fllm-tutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwcks13589%2Fllm-tutorial/lists"}