"""本课独立实验；在仓库根目录执行 .venv/bin/python lessons/17/experiment.py。"""
import sys, json, math
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parents[2]))
import torch
from torch import nn
from torch.nn import functional as F
from poetry_gpt.common import ROOT, DEFAULT_DATA, read_json, read_jsonl
from poetry_gpt.model import ModelConfig, PoetryGPT, CausalAttention, Block
from poetry_gpt.data import Tokenizer, SPECIAL, clean_record, keywords_for
from poetry_gpt.labs import show
torch.set_num_threads(2)
torch.manual_seed(26)

for step in [1, 10, 100, 300, 600, 1000]:
    progress = max(0, step - 100) / 900
    factor = step / 100 if step < 100 else 0.15 + 0.85 * 0.5 * (1 + math.cos(math.pi * progress))
    show(f'第{step}步调整幅度', round(0.0006 * factor, 8))
