SCIST x SCAICT Camp 2026 聯合寒訓

 

AI 系列課程

 

  • Day1 (3 h):AI 理論全攻略

  • Day2 (2 h)生成式 AI 應用實作

  • Day3 (2.5 h)LLM 進階實作:RAG

 

2026/02/05 ~ 08

講師:4yü

GDG on Campus @ NCU

國立中央大學 Google 學生開發者社群

 

AI 概論與 ML 實作入門課程

從 0 開始帶你系統性地學習人工智慧
 

2025/11/20、27

講師:4yü(資工一A)

SCINT 北臺灣學生資訊社群 x
北四校資訊社團聯合工作坊 - 資所未見

 

AI 人工智慧入門課程

 

 

2025/03/29

講師:4yü

 

 

 

 

 

從 0 開始帶你系統性地學習 AI

 

SCIST 南臺灣學生資訊社群 x
南 15 校資訊社 2025 聯合寒訓 - 資深玩家

 

AI 人工智慧入門課程

從 0 開始帶你系統性地學習 AI

2025/01/25、26

講師:4yü

南 4 校資訊社聯合社課

臺南一中 x 臺南二中 x 臺南女中 x 南大附中

 

AI 人工智慧入門課程

從 0 開始帶你系統性地學習 AI

2024/06/09

講師:4yü

SCIST x SCAICT Camp 2026 聯合寒訓

 

AI 理論全攻略

 

2026/02/05 (Day1):3 h

講師:4yü

  • 中央資工大一

  • GDG@NCU Coreteam 25-26 技術組

  • SCIST S5 總召 & 演算法助教

  • SCIST Camp 2024 副召、2025 & 26 講師

  • APCS 5+5 滿級分, CPE 專家級 (6/7, PR99)

  • 高中學科能力競賽 112 & 113 學年複賽佳作

  • FunAI 2025 RL 競賽 rk.3

  • AIS3 Junior 2024 最佳專題獎​

自我介紹

4yü

Instagram > 4yu.dev.318
個人網站 > https://4yu.dev/

課前注意事項

  • ❌ 專業的 AI 工程師      ✅ 樂於分享知識的大一生
  • ❌ 數學課                        ✅ AI 課
  • 聽懂 🙂‍↕️                            還沒理解 🫠
  • 課程內容為自學後吸收整理而成,若想補充可以提出來討論
  • 簡報圖片皆引用自網路文章或影片,如有侵權請告知
  • 有任何疑問可以隨時 🙋🏻‍♂️ 提問

Slido 即時匿名提問

  • AI 發展簡史

  • 機器學習
    • 模型 & 擬合函數
    • 損失 & 成本函數
    • 梯度下降演算法
    • 梯度 & 學習率
    • 超參數

課程大綱

  • 深度學習
  • 神經網路
  • 激活函數
  • 反向傳播
  • 模型訓練流程
  • 實作梯度下降
  • 梯度下降優化器
  • 過擬合與改進

基礎

加深

  • 機器學習演算法
  • 強化學習
    • DQN、Policy
    • Actor-Critic、PPO
  • 深度學習架構
    • CNN、ResNet
    • RNN、LSTM
    • Transformer、GPT、BERT
    • GAN、VAE、Diffusion
  • 深度學習技術應用

課程大綱

  • Fine-Tune、LoRA、RLHF
  • AI Hallucination
    • 提示工程
    • RAG
    • Explainable AI

  • AI Agent & MCP & Skill
  • AI 跨域結合
    • 資訊安全
    • 量子計算
  • AI 倫理
  • AGI
  • 總結Q & A

加廣

延伸

人工智慧
(Artificial Intelligence)

1950 A.D.
艾倫 · 圖靈

圖靈測試

(Turing Test)

1956 A.D.
達特茅斯會議

符號主義

(Symbolism)

專家系統

(Expert System)

  • 發燒 + 鼻塞 = 感冒

  • 發燒 + 咳嗽 + 肌肉酸痛 = 流感

  • 上腹部痛 + 進食後舒緩 = 胃潰瘍

  • 上腹部痛 + 進食後加重 + 噁心 = 胃炎

  • 頻尿 + 多飲 + 體重減輕 = 糖尿病

專家系統 - 推理機

連接主義

(Connectionism)

1957 A.D.

 Frank Rosenblatt 

感知器 (Perceptron)

感知器 (Perceptron)

大小

顏色

味道

數量

...

感知器 (Perceptron)

感知器難題:XOR 異或問題

1969 A.D. Minsky

感知器難題:XOR 異或問題

解法:新增一層

多層感知器

(MultiLayer Perceptron)

AlexNet

神經網路

(Neural Network)

AI 發展簡史

機器學習

(Machine Learning)

機器學習

≈ 找出函數

機器學習

f

(                 ) = "Hello"

f

(                 ) = cat

f

(                 ) =  (5, 5)

模型

擬合函數

(Fitting Function)

參數量

損失函數 Loss Function

成本函數 Cost Function

  • 成本函數越小 ->

  • 擬合函數越貼近數據 ->

  • 模型準確率越高

loss

sum(loss) = cost

(大多數情況下)

目標:找到損失函數的最小值

最佳化演算法

局部最小值

(Local Minima)

全局最小值

(Global Minima)

梯度下降演算法

(Gradient Descent)

  1. 方向

  2. 步伐大小

以二維損失函數為例

方向:斜率

對 Loss Funtion 微分

計算三維梯度

損失平面

計算三維梯度

偏微分

Partial Derivative

1. 方向:梯度 (Gradient)

2. 步伐大小:學習率 (Learning Rate)

越大越好?

越小越好?

容易震盪

無法收斂

下降速度較慢

容易陷入 Local minima

學習率

(Learning Rate)

超參數

(Hyperparameter)

可自行調整

AI:加深

深度學習

(Deep Learning)

神經元

(Neuron)

感知器

(Perceptron)

神經系統

(Nervous system)

神經網路

(Neural Network)

如何訓練神經網路模型

模型訓練完整流程

模型訓練完整流程

  1. 定義問題類型

  2. 準備資料 (Data)

  3. 選擇模型 (Model) 

  4. 定義損失函數

  5. 優化器 (Optimizer)

  6. 最佳化 (Optimization)

  7. 驗證:調整超參數

  8. 測試:評估表現

  9. 微調 (Fine-Tune)

  10. 部署與應用

1. 定義問題類型

分類問題 

預測問題

分群問題

邏輯迴歸

線性迴歸 

無監督

2. 準備資料 (Data)

  • 訓練集 (Training Data)
  • 驗證集 (Validation Data)
  • 測試集 (Testing Data)

3. 選擇模型 (Model)

學習範式 英文 有無標籤 目的 應用
監督式學習 Supervised Learning 學習資料與標籤之間的關係 線性回歸問題
無監督式學習  Unsupervised Learning 學習資料之間的隱藏結構 分類分群問題
半監督式學習 Semi-supervised Learning 部分有 在有限標籤數據下學習 泛化能力
自監督式學習 Self-supervised Learning 標籤由輸入生成 學習資料內在的結構或特徵 自然語言處理
強化學習 Reinforcement Learning 透過環境互動與回饋強化自身 增強能力

學習範式

資料 (Data) 對應 標籤 (Label)

舉例:題目 對應 答案

通常選擇模型時就有對應的學習範式了

4. 定義損失函數

(Loss Function)

  • 均方誤差 (MSE):真實資料與預測資料相減後的平方

  • 均方根誤差 (RMSE):是 MSE 的平方根,常用於迴歸問題

  • 平均絕對值誤差 (MAE):真實資料與預測資料的絕對值

  • 交叉熵 (Cross-entropy):透過機率分佈處理分類問題

5. 優化器 (Optimizer)

非凸優化問題

隨機梯度下降演算法

(Stochastic Gradient Descent)

隨機梯度下降演算法

(Stochastic Gradient Descent)

優化器

(Optimizer)

  1. Newton’s Method

  2. Momentum

  3. Nesterov (NAG)

  4. AdaGrad

  5. RMSprop

  6. Adam

  7. Nadam

  8. AdamW

優化器

(Optimizer)

1. Newton’s Method

優化器

(Optimizer)

2. Momentum

優化器

(Optimizer)

2. Momentum

優化器

(Optimizer)

3. Nesterov (NAG)

優化器

(Optimizer)

3. Nesterov (NAG)

優化器

(Optimizer)

4. AdaGrad

5. RMSprop

優化器

(Optimizer)

6. Adam = Momentum + RMSprop

7. Nadam = Nesterov (NAG) + Adam

8. AdamW = Adam + Weight Decay

優化器

(Optimizer)

優化器

(Optimizer)

6. 最佳化 (Optimization)

6. 最佳化 (Optimization)

  1. 初始化(架構、權重)

  2. 正向傳播

  3. 計算損失函數

  4. 梯度下降演算法 + 鏈式法則

  5. 反向傳播演算法

正向傳播

激活函數

(Activity Function)

線性

非線性

激活函數

(Activity Function)

激活函數

(Activity Function)

激活函數

(Activity Function)

激活函數

(Activity Function)

反向傳播演算法

(Backward Propagation)

更新參數權重

鏈式法則 (Chain Rule)

人工智慧就是數學

AI is Math

 7. 驗證:調整超參數

 避免過擬合 (Overfiting) 

  • 學習率 (Learning Rate)
  • 迭代次數 (Epoch)
  • 樣本數量 (Batch size)
  • 梯度裁剪 (Gradient Clipping)
  • Early Stopping

超參數

(Hyperparameter)

過擬合

(Overfiting)

  • 訓練集 (Training Data)
  • 驗證集 (Validation Data)
  • 測試集 (Testing Data)

書讀得越多

書讀得越少

資料被切割成:

  • 講義
  • 小考
  • 學測

過擬合

(Overfiting)

欠擬合

Ground Truth

Fiting

噪音

(極值)

影響預測

誤差大

泛化能力

(Generalization)

泛化能力

(Generalization)

= 舉一反三

  • 預處理:清理資料 去除偏誤值 (bias)

  • 正則化 (Regularization):L1/L2

  • Dropout:隨機失活

    • 關掉一些神經元 讓模型不要學出那麼複雜的擬合函數

改進方法

8. 測試:評估表現

8. 測試:評估表現

混淆矩陣

ROC-AUC

8. 測試:評估表現

LLM Benchmark

9. 微調 Fine-Tune

10. 部署與應用

微調 LLM

(Fine-Tuning)

微調 LLM

(Fine-Tuning)

超花錢、花時間

LoRA 低秩適應微調

(Low-Rank Adaptation)

只要在原本權重上添加低秩矩陣

就能提升特定領域能力

雖然沒有動到全部參數權重

但是卻能動到全部參數權重

人類回饋強化學習

(Reinforcement Learning from

Human Feedback)

ML 實作時間

主題範例:

透過讀書時長
預測考試分數

使用梯度下降演算法最佳化線性迴歸模型

  • 平台:Colab

  • 語言:Python

  • 函式庫:

    • pandas

    • numpy

    • matplotlib

    • ipywidgets

程式碼講解

import pandas as pd

# 抓取 csv 檔
url = "https://raw.githubusercontent.com/ShiYu0318/SCIST_2025_WC_AI/main/study_hours_scores.csv"

# 存進 data
data = pd.read_csv(url)

# 將兩欄資料分開
x = data["Study_Hours"]
y = data["Scores"]

# 顯示 data
data

1. 讀取資料並顯示

程式碼講解

import matplotlib.pyplot as plt
from ipywidgets import interact

def plot_pred(w, b):

    # 初始化預測線權重
    y_pred = x*w + b

    # 畫資料點分布
    plt.scatter(x, y,  color="blue", label="data")

    # 畫線
    plt.plot(x, y_pred, color="red", label="predict")

    # 軸名稱
    plt.xlabel("Study Hours")
    plt.ylabel("Scores")

    # 範圍限制
    plt.xlim([0, 12])
    plt.ylim([0, 100])

    # 顯示圖例
    plt.legend()

    # 顯示圖表
    plt.show()

# 使用互動元件動態調整並顯示
interact(plot_pred, w=(-100, 100, 1), b=(-100, 100, 1)) # (min,max,space)

2. 把資料可視化 並用互動元件調整函數

程式碼講解

# w=-100~100 b=-100~100 的 cost
import numpy as np

def compute_cost(x, y, w, b):
  y_pred = w*x + b
  loss = (y - y_pred)**2
  cost = loss.sum() / len(x)

  return cost

ws = np.arange(-100, 101)
bs = np.arange(-100, 101)
costs = np.zeros((201, 201))

i = 0
for w in ws:
  j = 0
  for b in bs:
    cost = compute_cost(x, y, w, b)
    costs[i,j] = cost
    j = j+1
  i = i+1

costs

3. 用暴力窮舉法找出 w= -100 ~ 100、b= -100 ~ 100 所有可能的權重組合 對每一種組合都計算 cost

程式碼講解

from ipywidgets import interact

# 畫出所有 cost 並尋找最低點

def plot_3d(elev,azim):


    # 圖片尺寸
    plt.figure(figsize=(10, 10))

    # 創建 3D 圖
    ax = plt.axes(projection="3d")

    # 旋轉角度
    ax.view_init(elev, azim)

    # 矩陣轉二維網格
    b_grid, w_grid = np.meshgrid(bs, ws)

    # 繪製三維表面,cmp 顏色、alpha 透明度
    ax.plot_surface(w_grid, b_grid, costs, cmap="Spectral_r", alpha=0.7)

    # 繪製邊框
    ax.plot_wireframe(w_grid, b_grid, costs, color="black", alpha=0.1)

    # 軸標題
    ax.set_xlabel("w")
    ax.set_ylabel("b")
    ax.set_zlabel("cost")

    # 回傳最低 cost 的 index
    w_index, b_index = np.where(costs == np.min(costs))

    # 畫出最低點 (x,y,z,color,size)
    ax.scatter(ws[w_index], bs[b_index], costs[w_index, b_index], color="red", s=60)

    plt.show()

    print(f"當w={ws[w_index]}, b={bs[b_index]} 會有最小cost:{costs[w_index, b_index]}")

interact(plot_3d, elev=(0, 90, 1), azim=(0, 360, 1))

4. 將結果畫成三維立體圖並標示出最低點

自行實作部分

5. 梯度下降演算法 最小化損失函數

\text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (w x_i + b - y_i)^2

y_pred

Loss

Cost

a. 計算成本函數

b. 計算梯度:分別對 w、b 求導

c. 更新參數:學習率 * 梯度

實作解答

強化學習

(Reinforcement Learning)

強化學習

(Reinforcement Learning)

強化學習

(Reinforcement Learning)

強化學習

(Reinforcement Learning)

  • Value-Based:DQN

  • Policy-Based

  • Actor-Critic (Value + Policy)

強化學習

(Reinforcement Learning)

Deep Q-Network

Deep Q-Network

Q-Table

Deep Q-Network

Q(s_t, a_t) \leftarrow Q(s_t, a_t) + \alpha [ r_{t+1} + \gamma \max_{a'} Q(s_{t+1}, a') - Q(s_t, a_t) ]

訓練收斂後可直接對 state 查表選擇最佳 action

Update Q-table

  • st:當前狀態

  • ata_tat:採取的動作

  • rt+1r_{t+1}rt+1:即時回報(reward)

  • st+1s_{t+1}st+1:下一個狀態

  • α\alphaα:學習率,控制更新幅度

  • γ\gammaγ:折扣因子,控制未來回報的重要性max⁡a′Q(st+1,a′)\max_{a'} Q(s_{t+1}, a'

Deep Q-Network

= 用神經網路來近似 Q 函數

適合 action 離散但 state space 巨大

若 action 是連續的?

Q-Table ❌

Policy-based

Policy-based

直接輸出動作機率分布

不需要估算價值

Policy-based

J(\theta) = \mathbb{E}_{\pi_\theta} [ G_t ]
\nabla_\theta J(\theta) = \mathbb{E}_{\pi_\theta} \big[ \nabla_\theta \log \pi_\theta(a|s) \, Q^{\pi_\theta}(s,a) \big]

最大化策略的期望累積報酬

策略梯度

(Policy Gradient)

Actor-Critic

  • Actor 策略網路:決定動作

  • Critic 價值網路:評估當前動作的好壞

Actor-Critic

How ?

強化學習 - 延伸

  • PPO

  • A2C

  • Sarsa

  • Baseline

  • ε-greedy

  • TD-Learning

  • Monte Carlo Learning

AI:加廣

深度學習架構

  • 影像辨識:CNN、ResNet、U-Net、CLIP、ViT

  • 序列處理:RNN、LSTM、GRU

  • 自然語言:Transformer、GPT、BERT

  • 圖像生成:GAN、VAE、Diffusion

深度學習架構

深度學習應用

  • AlphaGO

  • AlphaZero

  • AlphaFold

  • Gato

  • TASLA FSD

  • Genie 3

  • Gemini 3

  • Sora 2

卷積核 (kernel)

卷積神經網路

(Convolutional Neural Network)

卷積神經網路

(Convolutional Neural Network)

卷積神經網路

(Convolutional Neural Network)

卷積神經網路

(Convolutional Neural Network)

卷積層

(Convolutional Layer)

卷積神經網路

(Convolutional Neural Network)

 池化層

(Pool Layer)

卷積神經網路

(Convolutional Neural Network)

卷積神經網路

(Convolutional Neural Network)

卷積神經網路

(Convolutional Neural Network)

卷積

(Convolution)

\left(f \times g \right)\left(t\right)= \int_{-\infty}^{+\infty}f\left(\tau\right)g\left(t-\tau \right)\mathrm{d}\tau

快速傅立葉變換

Fast Fourier Transform)

F(f∗g)=F(f)⋅F(g)

時域的卷積 = 頻域的乘法
頻域的卷積 = 時域的乘法

Softmax

\frac{e^{z_i}}{\sum_{j=1}^{K} e^{z_j}}

殘差網路

(Residual Network)

殘差網路

(Residual Network)

mHC (deepseek)

U-Net

CLIP (OpenAI)

 (Contrastive Language-Image Pre-Training)

循環神經網路

(Recurrent Neural Network)

Stacked RNN

循環神經網路

(Recurrent Neural Network)

Bidirectional  RNN

循環神經網路

(Recurrent Neural Network)

循環神經網路

(Recurrent Neural Network)

  • 容易梯度消失 (Vanishing) or 梯度爆炸 (Explored)

  • 較難處理長序列問題

長短期記憶神經網路

(Long-Short Term Memory)

長短期記憶神經網路

(Long-Short Term Memory)

記憶細胞 (Cell State)

  1. 遺忘門 (Forget Gate)
  2. 輸入門 (Input Gate)
  3. 輸出門 (Output Gate)

保留長期記憶,避免梯度消失

閘門循環單元

(Gated Recurrent Unit)

 

  1. 重置門(reset gate)
  2. 更新門(update gate)

Transformer

多層感知器

(MultiLayer Perceptron)

Attention Is All You Need

 Word 2 Vec

詞嵌入

(Embedding)

詞嵌入

(Embedding)

詞嵌入

(Embedding)

詞向量運算:計算相似度

詞嵌入

(Embedding)

詞嵌入

(Embedding)

注意力機制

 (Attention)

\text{Attention}(Q, K, V) = \text{Softmax}\left(\frac{Q K^T}{\sqrt{d_k}}\right) V

 Self-Attention

注意力機制

 (Attention)

Multi-Head Attention 

Masked Self-Attention

溫度控制隨機性

Softmax with Temperature

T=1

T=10

生成式預訓練模型

Generative Pre-trained Transformer

基於 Transformer 的雙向編碼器

(Bidirectional Encoder Representations from Transformers)

淺談幻覺 & 解決方法

幻覺

(Hallucination)

提示詞工程

(Prompt Engineering)

我是一名智力低下的大学生,我想学习一下这篇论文,

请用傻子都能懂的语言详细给我讲一下这篇文章怎么做的

特别是模型和实证方面

檢索增強生成

(Retrieval-Augmented Generation)

檢索增強生成

(Retrieval-Augmented Generation)

Google NotebookLM

CAG

Explainable AI

想理解深度學習模型

在輸入與輸出之間的決策過程

ViT

(Vision Transformer)

ViT

(Vision Transformer)

ViT

(Vision Transformer)

ViT

(Vision Transformer)

Positional Encoding

ViT

(Vision Transformer)

ViT

(Vision Transformer)

生成對抗網路

(Generative Adversarial Network)

生成對抗網路

(Generative Adversarial Network)

自編碼器  

(AutoEncoder)

變分自編碼器  

(Variational AutoEncoder)

DeepFake

擴散模型

(Diffusion Model)

擴散模型

(Diffusion Model)

常態分佈(二維)

常態分佈:

評分函數

(Score Function)

評分函數

(Score Function)

評分函數

(Score Function)

Stable Diffusion

深度學習

技術應用

2017 AlphaGO vs 柯潔 & 李世乭

CNN + MCTS

2017 AlphaZero

RL + Self-play

2026 Grok vs T1 LOL

預測氨基酸序列的三維結構與功能

2020 Google DeepMind

AlphaFold

2024 諾貝爾化學獎

2020 Google DeepMind

AlphaFold

Attention + GNN

2022 Google DeepMind

Gato

2024 Tesla
全自動輔助駕駛

Full Self-Driving)

2025 Italian Brainrot

2025 Google DeepMind Genie 3

世界模型 模擬現實物理規律

2025 Google DeepMind Genie 3

2025 OpenAI Sora 2

生成擴散影片模型

2025 OpenAI Sora 2

生成擴散影片模型

2025 Google

Gemini 3

Gemini 3

Gemini 3

2026

期待更多新技術出現

希望大家不要排斥

保持好奇心 多多嘗試

  • 以前:會用 AI 的人 會取代 不會用 AI 的人

但是已經幾乎所有人都會用 AI 了

  • 現在:真正懂 AI 的人 會取代 只會用 AI 的人

AI 結合 資訊安全

AI & Cybersecurity

對抗樣本攻擊

(Adversarial Attack)

原始圖片透過加上經過特殊設計的噪點故意使模型辨識錯誤

提示詞注入攻擊

(Prompt Injection Attack)

Jailbreaking

提示詞注入攻擊

(Prompt Injection Attack)

提示詞注入攻擊

(Prompt Injection Attack)

後面兩天的實作大家可以想一下

如何預防 Prompt Injection

並融入到你們的黑客松專題之中

提示詞注入攻擊

(Prompt Injection Attack)

AI 結合 量子計算

AI & Quantum Compute

NVDIA - NVQLink

NVDIA - NVQLink

AI & Quantum Compute

  • QML、QNN、QRL

  • 變分量子算法 (VQA)

  • 量子退火 (Quantum Annealing)

淺談 Vibe Coding

Vibe Coding

Andrej Karpathy

2025/11/12

巴基斯坦 黎明報

AGI

Artificial General Intelligence

通用人工智慧

人工智慧的終極目標

AGI

  • Digital

  • Biological Hybrid

  • Embodied

AI Agent

n8n

MCP

Agent Skill

大家覺得人類幾年內能實現 AGI?

ML 學習地圖

DL 學習地圖

  • 台大 李宏毅 教授 機器學習:YouTube

  • 台大 林軒田 教授

  • 史丹佛 吳恩達 教授 機器學習:YouTube

  • 3blue1brown:YouTube

  • Kaggle 攻略:GitHub

  • TAICA:臺灣大專院校人工智慧學程聯盟

  • AI CUP:教育部全國大專校院人工智慧競賽

ML 學習資源

  • 過擬合

  • 監督式學習

  • 梯度下降

  • 激活函數

縮寫彩蛋:OsGa

有獎徵答:解釋以下專有名詞

  • Overfiting

  • Supervised Learning

  • Gradient Descent

  • Activity Function

送出 SCIST 限量版馬克杯

Q&A Time

The End.

Thanks for your attention

Attention Is All You Need

Day2:生成式 AI 應用實作 -->

SCIST x SCAICT Camp 2026 聯合寒訓

 

生成式 AI 應用實作

 

2026/02/06 (Day2):3 2 H

講師:4yü

DC BOT 基本架構

資料夾 - 檔案名稱

只要視窗沒有檔名

就是要在終端機執行的指令

創建 .env 檔 放 token

DC BOT 基本架構

API 服務平台

讓使用者透過單一介面訪問多種 LLM

OpenRouter API Key

OpenRouter API Key

OpenRouter API Key

OpenRouter API Key

OpenRouter API

綠色線條代表新添加的程式碼

LLM 生成回覆

系統提示詞

(System Prompt)

給你的 LLM 專屬人設

盡情發揮創意吧!

LLM 生成回覆

選擇免費模型

對話紀錄:誰、說了什麼

選擇免費模型

一直出錯跑不動怎麼辦?

  • 檢查套件有沒有安裝好

    • uv pip list

    • uv tree

  • 檢查 .env 的 key 是不是都對

    • 有人會以為模型名稱是 api key

  • 確保自己完全照著簡報順序跟著進度

    • 只要少掉一段 都有可能跑不動

  • 檢查每個字有沒有手殘打錯 視力要好

  • 模型太熱門了 換個模型名稱

    • 或是開始嘗試用迴圈切換模型

嘗試切換不同模型

另外創個檔案存模型名稱列表

嘗試切換不同模型

用什麼格式儲存?

  • list
  • .json
  • .txt

用什麼方法存模型?

  • 手動挑選複製貼上

  • 寫個簡單的爬蟲

如何切換模型?

  • 迴圈遍歷
  • ramdon

全部都可以依照個人習慣來選擇

嘗試切換不同模型

要切換模型前先讀取檔案把名稱存進來

嘗試切換不同模型

示範用迴圈遍歷 只要失敗就切換下一個

這邊記得要改寫成這樣

而不是寫死單一模型名稱

可以在回覆後面添加是哪個模型生成的

[:-5] 是把 :free 刪掉避免被別人發現我們是免費仔

嘗試切換不同模型

OpenRouter 的免費模型(ID 以 :free 結尾)

限制根據帳戶餘額而定,通常每分鐘限制 20 次請求

若帳戶餘額低於 $10 美元,每日限制為 50 次請求;

若儲值並維持 $10 美元以上,每日限制可提升至 1000 次。

開源 LLM 本地運行框架

Ollama

Ollama

llama3.2

Ollama

Ollama

dcbot_ollama.py

dcbot_api.py

dcbot_api.py 成功運行後

把檔案複製一份改成 ollama

增減個幾行就能跑起來了

成功運行本地開源模型

LLM 記憶能力

根本忘記剛剛說過什麼

所以開始瞎掰

目前尚未具備

將對話紀錄 memory 加入 messages

LLM 記憶能力

這次沒提到上次說的

模型卻能記得

LLM 記憶能力

上下文工程

(Context Engineering)

  • 記憶長度控制
  • 分層記憶系統
  • 清除記憶
  • 選擇性記憶
  • 記憶摘要
  • 長短期記憶

期待大家在黑客松專題能嘗試添加這些功能

調整推論參數

影響模型生成的回覆 可多嘗試 觀察效果

調整推論參數

影響模型生成的回覆 可多嘗試 觀察效果

參數 型態 功能 建議範圍 效果說明
temperature float 控制生成回覆內容的隨機性 0.0 ~ 1.5 穩定 <--> 創意
top_k int 限制模型每步只考慮機率最高的前 K 個詞 10 ~ 100 可控 <--> 多樣
top_p float Nucleus Sampling:限制模型只在前 P 機率總和內取樣 0.1 ~ 1.0 保守 <--> 自由
repeat_penalty float 懲罰重複詞彙出現的機率 1.0 ~ 2.0 可減少重複句型
presence_penalty float 懲罰出現過的概念(鼓勵新主題) ​-2.0 ~ 2.0 鼓勵模型換話題

串接 LLM API & 切換不同模型

本地運行開源模型

設計系統提示詞(模型人設)

添加記憶能力

共筆裡我有提供兩份最基本能運行的程式:
- A. dcbot_api.py
- B. dcbot_ollama.py

請發揮創意自行修改 Prompt 並延伸出擴充功能

也可以思考各種潛在的資安問題並設計防禦方式

You Can Do More !

  • 切換人設系統(多重人格)
  • 多模型回應比較策略
  • 防禦 Prompt Injection
  • 權限控管 預防炸群

Happy Coding!

Furious Debugging...

Day3:LLM 進階實作:RAG -->

SCIST x SCAICT Camp 2026 聯合寒訓

 

LLM 進階實作:RAG

 

2026/02/07 (Day3):2.5 H

講師:4yü

檢索增強生成

(Retrieval-Augmented Generation)

讓 LLM 具備查詢資料的能力 減少幻覺

AI/    # 專案根目錄
│
├─ embeddings.py      # 放 EmbeddingGemmaEmbeddings
├─ rag_builder.py     # 放文件讀取、分割、建立 FAISS
├─ rag_dcbot.py       # 放 Discord Bot 主程式
├─ .env				  # 放 key 的環境變數設定檔
├─ pyproject.toml     # 專案設定檔,管理套件
└─ uploaded_docs/     # 上傳文件資料夾

今日實作檔案目錄架構

今日實作所需的新套件

寫進 pyproject.toml 後可用 uv 一次就安裝好

1.  embeddings.py

詞嵌入

把詞轉換成

高維空間向量

詞嵌入

(Embedding)

詞嵌入

(Embedding)

詞向量運算:計算相似度

詞嵌入

(Embedding)

在高維向量空間中

理解詞之間的關係

Google - Embedding Gemma

Hugging Face

AI 界的 GitHub

提供數十萬個預訓練模型以及

上萬組高品質數據集用於訓練和評估模型

透過簡便的 transformers 庫

降低了開發與應用前沿 AI 技術的門檻

Hugging Face Token

Hugging Face Token

確認驗證郵件

Hugging Face Token

Hugging Face Token

若不能創建是因為還沒驗證電子郵件

Hugging Face Token

超級重要 !!!

記得往下滑按 Save token

Hugging Face Token

確認模型許可條約

剛剛 token 權限如果沒勾的話這邊就會出錯

Coding 時間

2.  rag_builder.py

import

這是你剛剛自己寫的 1. embeddings.py

token & login & path

這裡要改成你自己的路徑

上傳 & 載入所有文件

請大家開始思考你想上傳哪些文件

提供參考資料讓模型據實回覆

範例:108 課綱

資料切割 chunk &

詞嵌入embedding

& 儲存向量資料庫

可以自己調整

你的文件專屬向量資料庫:

執行後會生成向量資料庫

確認 chunk 是否不為 0

3.  rag_dcbot.py

import

這是你剛剛自己寫的 1. embeddings.py

系統指令 &

 RAG 指令模板

這些都可以自行設計

載入向量資料庫 &

設置檢索的 chunk 數量

可自行調整要檢索多少數量

由 Facebook AI Research(FAIR)開發

高效的相似度搜索和密集向量聚類庫

專為高維向量相似度搜索而設計

FAISS

(Facebook AI Similarity Search)

詞嵌入

(Embedding)

DC BOT 功能

(寫過了)

將檢索到的資料組裝成結構化 Prompt

搭配 RAG 生成回覆

RAG 生成完 Prompt 後結合記憶

DC BOT 功能

(寫過了)

大功告成!

模型會搜尋向量資料庫後據實回答 不會亂掰

 

鼓勵將課程內容融合多元應用:可以串接除了 DC Bot 以外的應用介面(interface)或外部服務:

  • 其他通訊軟體
  • 其他 API、雲端服務
  • 自製 App
  • 遊戲整合
  • 前後端視覺化互動
  • 資料庫
  • 自動腳本

若遇到問題歡迎在 Discord 傳訊息給我

AI 系列課程 完結。

大家黑客松加油!

可匿名回饋

開放填寫到營隊結束後一週

AI

By 4yü

AI

  • 1,241