iT邦幫忙

2025 iThome 鐵人賽

DAY 3
0
生成式 AI

AI咒術迴戰~LLM絕對領域展開系列 第 3

Day3-AI發展與趨勢(伏黑惠)

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20250906/20163257rJW1QuFc8P.jpg

AI發展與趨勢

1️⃣簡介與時間軸回顧

  • 1950–1980:符號主義與邏輯式AI
  • 1990–2010:機器學習(SVM、決策樹)、深度學習興起(CNN、RNN)
  • 2017:Transformer 發表(Attention is All You Need),引發 NLP 與 LLM 大幅進展
  • 2020:大規模語言模型(GPT 系列等)、多模態模型、泛化能力與生成模型成為焦點

2️⃣當前重要趨勢

  • 大型語言模型(LLM)與自監督預訓練:由大規模無標註資料預訓練,然後微調或採用提示
  • 多模態融合:將語言、視覺、音訊融合,出現如視覺-文本檢索、影像生成、視覺問答等等應用
  • 高效微調技術(LoRA / PEFT / Adapters):減少微調成本並加速迭代
  • 模型壓縮與量化:讓大型模型可在邊緣或有限資源上推論
  • 聯邦學習與隱私保護:在資料敏感場景保護使用者隱私
  • 自動化機器學習(AutoML)與工具鏈成熟(MLOps):模型從訓練到部署自動化、版本控制與監控
  • 生成式AI社會影響與治理:假訊息、版權與倫理問題成為關切

3️⃣技術細節與範例程式碼

🔴Transformer / LLM 範例(PyTorch + transformers)

# requirements: transformers, datasets, accelerate, torch
from transformers import AutoTokenizer, AutoModelForCausalLM, Trainer, TrainingArguments
from datasets import load_dataset

model_name = 'gpt2'  # 教學用,實務可換成更適合中文或自行訓練模型
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

dataset = load_dataset('wikitext', 'wikitext-2-raw-v1', split='train')

def preprocess(example):
    return tokenizer(example['text'], truncation=True, max_length=512)

tokenized = dataset.map(preprocess, batched=True, remove_columns=['text'])

training_args = TrainingArguments(
    output_dir='./outputs',
    per_device_train_batch_size=2,
    num_train_epochs=1,
    fp16=True,
    logging_steps=10,
)

trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=tokenized,
)

trainer.train()

🟠LoRA 微調(使用 peft)

# requirements: peft, transformers, accelerate
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import get_peft_model, LoraConfig

model_name = 'gpt2'
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)

lora_config = LoraConfig(
    r=8,
    lora_alpha=32,
    target_modules=['q_proj','v_proj'],
    lora_dropout=0.1
)

model = get_peft_model(model, lora_config)
# 照常訓練 model,只有 LoRA 參數會被更新

🟡多模態(圖像+文字)範例(簡化)

# requirements: transformers, torch, datasets
from transformers import CLIPProcessor, CLIPModel
from PIL import Image

model = CLIPModel.from_pretrained('openai/clip-vit-base-patch32')
processor = CLIPProcessor.from_pretrained('openai/clip-vit-base-patch32')

image = Image.open('example.jpg')
inputs = processor(text=['a photo of a cat','a photo of a dog'], images=image, return_tensors='pt', padding=True)
outputs = model(**inputs)
logits_per_image = outputs.logits_per_image
probs = logits_per_image.softmax(dim=1)
print(probs)

🟢邊緣部署與模型壓縮(量化示例)

使用 transformers + onnxruntimetorch.quantization 進行推論加速

# 簡單示例:使用 torch.quantization 進行靜態量化(示意)
import torch
from torchvision import models

model = models.resnet18(pretrained=True)
model.eval()
model.qconfig = torch.quantization.get_default_qconfig('fbgemm')
model_fused = torch.quantization.fuse_modules(model, [['conv1','bn1','relu']])
model_prepared = torch.quantization.prepare(model_fused)
# calibration with representative dataset ...
model_quantized = torch.quantization.convert(model_prepared)

🔵服務化:使用 FastAPI 部署模型(簡單範例)

# requirements: fastapi, uvicorn, transformers, torch
from fastapi import FastAPI
from pydantic import BaseModel
from transformers import pipeline

class RequestBody(BaseModel):
    prompt: str

app = FastAPI()

pipe = pipeline('text-generation', model='gpt2')

@app.post('/generate')
def generate(req: RequestBody):
    out = pipe(req.prompt, max_length=100)
    return {'generated': out}

# run: uvicorn app:app --host 0.0.0.0 --port 8000

4️⃣MLOps 與生產化建議

  • 版本控制:使用 DVC 或 MLflow 管理資料與模型版本
  • 持續整合 / 持續部署(CI/CD):自動測試模型變更、驗證效能、部署
  • 監控:延遲、吞吐量、資料漂移(data drift)、概念漂移(concept drift)
  • 安全與驗證:輸入驗證、沙盒化、速率限制、審計日誌

5️⃣倫理、法規與風險管理重點

  • 偏見與公平性(Bias)檢測
  • 隱私保護:敏感資料清理、差分隱私技術
  • 生成內容的版權與誤導風險
  • 合規:依照地區法律(例如:個資法)做資料治理

上一篇
Day2-生成式AI(虎杖悠仁)
下一篇
Day4-大型語言模型LLM(釘崎野薔薇)
系列文
AI咒術迴戰~LLM絕對領域展開4
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言