<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Bioinformatics on TPOW Lab</title><link>https://tpow-001.netlify.app/categories/bioinformatics/</link><description>Recent content in Bioinformatics on TPOW Lab</description><generator>Hugo</generator><language>en</language><copyright>Copyright &amp;copy; 2025-2026 TPOW-001. All Rights Reserved.</copyright><lastBuildDate>Tue, 14 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tpow-001.netlify.app/categories/bioinformatics/index.xml" rel="self" type="application/rss+xml"/><item><title>BioDiscoveryAgent 完整教學</title><link>https://tpow-001.netlify.app/post/2026-07-14-stanford-biodiscoveryagent-tutorial/</link><pubDate>Tue, 14 Jul 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-07-14-stanford-biodiscoveryagent-tutorial/</guid><description><![CDATA[<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/snap-stanford/BioDiscoveryAgent" target="_blank" rel="noopener noreferrer">https://github.com/snap-stanford/BioDiscoveryAgent<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 113 | <strong>Forks</strong>: 26 | <strong>Language</strong>: Python | <strong>License</strong>: MIT
<strong>最後更新</strong>: 2026-07-12 | <strong>論文</strong>: <a href="http://arxiv.org/abs/2405.17631" target="_blank" rel="noopener noreferrer">arXiv:2405.17631<i class="fas fa-external-link-square-alt ms-1"></i></a></p></blockquote>
<hr>

<h2 id="1-專案概覽-project-overview" data-numberify>1. 專案概覽 (Project Overview)<a class="anchor ms-1" href="#1-專案概覽-project-overview"></a></h2>

<h3 id="11-這是什麼" data-numberify>1.1 這是什麼<a class="anchor ms-1" href="#11-這是什麼"></a></h3>
<p>BioDiscoveryAgent 是一個由 <strong>大型語言模型 (LLM; Large Language Model)</strong> 驅動的 <strong>AI 代理人 (AI agent; 人工智慧代理人)</strong>，用途是自動設計 <strong>基因擾動實驗 (genetic perturbation experiment; 基因擾動實驗)</strong>。簡單講，它要回答的問題是：</p>]]></description></item><item><title>Biomni 完整教學</title><link>https://tpow-001.netlify.app/post/2026-07-14-stanford-biomni-tutorial/</link><pubDate>Tue, 14 Jul 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-07-14-stanford-biomni-tutorial/</guid><description><![CDATA[<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/snap-stanford/Biomni" target="_blank" rel="noopener noreferrer">https://github.com/snap-stanford/Biomni<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 3399 | <strong>Forks</strong>: 618 | <strong>Language</strong>: Python | <strong>License</strong>: Apache License 2.0
<strong>官網</strong>: <a href="https://biomni.stanford.edu" target="_blank" rel="noopener noreferrer">https://biomni.stanford.edu<i class="fas fa-external-link-square-alt ms-1"></i></a> | <strong>論文</strong>: bioRxiv 2025.05.30.656746</p></blockquote>
<hr>

<h2 id="1-專案概覽-project-overview" data-numberify>1. 專案概覽 (Project Overview)<a class="anchor ms-1" href="#1-專案概覽-project-overview"></a></h2>

<h3 id="11-這是什麼" data-numberify>1.1 這是什麼<a class="anchor ms-1" href="#11-這是什麼"></a></h3>
<p>Biomni 是史丹佛大學 SNAP（Stanford Network Analysis Project）團隊開發的一個<strong>通用型生物醫學 AI agent (general-purpose biomedical AI agent)</strong>。它的核心主張很簡單：把 large language model (LLM; 大型語言模型) 的推理能力、retrieval-augmented planning (檢索增強規劃) 與 code-based execution (基於程式碼的執行) 三者結合，讓一個 agent 能夠<strong>自主執行</strong>橫跨多個生物醫學次領域的研究任務——從設計 CRISPR screen (CRISPR 篩選實驗)、進行 scRNA-seq annotation (單細胞 RNA 定序註解)，到預測藥物的 ADMET properties (Absorption, Distribution, Metabolism, Excretion, Toxicity; 吸收/分布/代謝/排泄/毒性性質)。</p>]]></description></item><item><title>Medical Research Skills 完整教學</title><link>https://tpow-001.netlify.app/post/2026-06-26-medical-research-skills-tutorial/</link><pubDate>Fri, 26 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-06-26-medical-research-skills-tutorial/</guid><description><![CDATA[<h1 id="medical-research-skills-完整教學" data-numberify>Medical Research Skills 完整教學<a class="anchor ms-1" href="#medical-research-skills-完整教學"></a></h1>

<h2 id="1-專案定位與核心價值" data-numberify>1. 專案定位與核心價值<a class="anchor ms-1" href="#1-專案定位與核心價值"></a></h2>

<h3 id="這是什麼" data-numberify>這是什麼？<a class="anchor ms-1" href="#這是什麼"></a></h3>
<p><strong>Medical Research Skills</strong> 是由 AIPOCH 團隊開發的開源醫學研究 AI Agent Skill 庫，收錄 <strong>554+ 個結構化 SKILL.md 檔案</strong>。這些 skill 並非傳統意義上的「程式碼套件」，而是為 AI agent 提供的<strong>領域知識指令集</strong>：每個 SKILL.md 定義了一個特定醫學研究任務的完整工作流程、判斷邏輯與品質檢核標準。</p>]]></description></item><item><title>AlphaGenome -- Google DeepMind DNA 調控密碼統一模型完整教學</title><link>https://tpow-001.netlify.app/post/2026-06-20-deepmind-alphagenome-tutorial/</link><pubDate>Sat, 20 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-06-20-deepmind-alphagenome-tutorial/</guid><description><![CDATA[<h1 id="alphagenome--google-deepmind-dna-調控密碼統一模型完整教學" data-numberify>AlphaGenome – Google DeepMind DNA 調控密碼統一模型完整教學<a class="anchor ms-1" href="#alphagenome--google-deepmind-dna-調控密碼統一模型完整教學"></a></h1>
<blockquote>
<p><strong>AlphaGenome</strong> 是 Google DeepMind 開發的統一基因體模型 (unified genomic model)，能從 DNA 序列 (DNA sequence) 同時預測 gene expression (基因表現)、splicing patterns (剪接模式)、chromatin features (染色質特徵) 與 contact maps (接觸圖譜)，最長可分析 <strong>100 萬鹼基對</strong>，並達到 <strong>single base-pair resolution (單鹼基解析度)</strong>。</p>]]></description></item><item><title>Drug Repositioning Pre-IND 完整教學（下篇）：候選分子落地、決策框架與附錄</title><link>https://tpow-001.netlify.app/post/2026-06-14-drug-repositioning-tutorial-part2/</link><pubDate>Sun, 14 Jun 2026 12:01:00 +0800</pubDate><guid>https://tpow-001.netlify.app/post/2026-06-14-drug-repositioning-tutorial-part2/</guid><description><![CDATA[<blockquote>
<p><strong>本文為密碼保護文章，需輸入密碼才能閱讀。</strong></p>
<p>上篇連結：<a href="/post/2026-06-14-drug-repositioning-tutorial-part1/">Drug Repositioning Pre-IND 完整教學（上篇）</a></p></blockquote>
<hr>

<h1 id="6-4-lilo-落地--候選人履歷表" data-numberify>§6 4 LILO 落地 — 候選人履歷表<a class="anchor ms-1" href="#6-4-lilo-落地--候選人履歷表"></a></h1>
<blockquote>
<p>chmod 600 — 僅以 LILO-A / LILO-B / LILO-C / LILO-D 代號出現</p>]]></description></item><item><title>Drug Repositioning Pre-IND 完整教學（上篇）：概念、法規與管線分析</title><link>https://tpow-001.netlify.app/post/2026-06-14-drug-repositioning-tutorial-part1/</link><pubDate>Sun, 14 Jun 2026 12:00:00 +0800</pubDate><guid>https://tpow-001.netlify.app/post/2026-06-14-drug-repositioning-tutorial-part1/</guid><description><![CDATA[<blockquote>
<p><strong>本文為密碼保護文章，需輸入密碼才能閱讀。</strong></p>
<p>下篇連結：<a href="/post/2026-06-14-drug-repositioning-tutorial-part2/">Drug Repositioning Pre-IND 完整教學（下篇）</a></p></blockquote>
<hr>

<h1 id="1-執行摘要一分鐘掌握本案" data-numberify>§1 執行摘要：一分鐘掌握本案<a class="anchor ms-1" href="#1-執行摘要一分鐘掌握本案"></a></h1>
<blockquote>
<p>機密邊界：4 candidate 僅以 LILO-A / LILO-B / LILO-C / LILO-D 代號出現；禁止出現任何真名、ChEMBL ID、SMILES
chmod 600</p>]]></description></item><item><title>AbLang 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-ablang-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-ablang-tutorial/</guid><description><![CDATA[<h1 id="ablang-完整教學" data-numberify>AbLang 完整教學<a class="anchor ms-1" href="#ablang-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/oxpig/AbLang" target="_blank" rel="noopener noreferrer">https://github.com/oxpig/AbLang<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 165 | <strong>Forks</strong>: 31 | <strong>License</strong>: BSD 3-Clause
<strong>Tags</strong>: antibody, language-model, semantic, protein-sequences
<strong>Language</strong>: Python | <strong>Version</strong>: 0.2.4
<strong>Paper</strong>: <a href="https://doi.org/10.1093/bioadv/vbac046" target="_blank" rel="noopener noreferrer">AbLang: An antibody language model for completing antibody sequences<i class="fas fa-external-link-square-alt ms-1"></i></a> (Olsen et al., 2022)</p></blockquote>

<h2 id="2-核心架構" data-numberify>2. 核心架構<a class="anchor ms-1" href="#2-核心架構"></a></h2>

<h3 id="21-模型整體架構" data-numberify>2.1 模型整體架構<a class="anchor ms-1" href="#21-模型整體架構"></a></h3>
<pre class="mermaid">

graph TD
    subgraph Input["輸入層 Input Layer"]
        SEQ["抗體序列<br/>Antibody Sequence<br/>e.g. EVQLVESGPG..."]
        TOK["ABtokenizer<br/>20 AA + 特殊 token<br/>（&lt;start&gt; &lt;end&gt; &lt;pad&gt; &lt;mask&gt;）"]
    end

    subgraph AbRep["AbRep 表徵模型"]
        EMB["AbEmbeddings<br/>AA Embedding + Position Embedding<br/>→ LayerNorm → Dropout"]
        ENC["EncoderBlocks<br/>N 層 Transformer Encoder<br/>（MultiHeadAttention + IntermediateLayer）"]
        HST["Last Hidden States<br/>768-dim per residue"]
    end

    subgraph AbHead["AbHead 預測頭"]
        DENSE["Dense Layer (768 → 768)"]
        ACT["Activation (GELU)"]
        LN["LayerNorm"]
        DEC["Decoder (768 → vocab_size)"]
        LOGIT["Token Logits<br/>每個位置的 AA 機率分布"]
    end

    subgraph Outputs["四種輸出模式"]
        SEQC["seqcoding<br/>Mean pooling → 768-dim/seq"]
        RESC["rescoding<br/>768-dim/residue"]
        REST["restore<br/>MLM 預測填回 mask"]
        LIKE["likelihood<br/>20 AA 機率矩陣"]
    end

    SEQ --> TOK --> EMB --> ENC --> HST
    HST --> SEQC
    HST --> RESC
    HST --> AbHead
    DENSE --> ACT --> LN --> DEC --> LOGIT
    LOGIT --> REST
    LOGIT --> LIKE

    style Input fill:#e8f4f8,stroke:#2c3e50
    style AbRep fill:#fdf2e9,stroke:#e67e22
    style AbHead fill:#f5eef8,stroke:#8e44ad
    style Outputs fill:#eafaf1,stroke:#27ae60

</pre>


<h3 id="22-原始碼模組結構" data-numberify>2.2 原始碼模組結構<a class="anchor ms-1" href="#22-原始碼模組結構"></a></h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="ln"> 1</span><span class="cl">ablang/
</span></span><span class="line"><span class="ln"> 2</span><span class="cl">├── __init__.py          # 匯出 ABtokenizer, AbLang, AbRep, AbHead, pretrained
</span></span><span class="line"><span class="ln"> 3</span><span class="cl">├── tokenizers.py        # ABtokenizer — AA 字元 ↔ token ID 雙向轉換
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">├── embedding.py         # AbEmbeddings — AA 嵌入 + 位置嵌入 + LayerNorm + Dropout
</span></span><span class="line"><span class="ln"> 5</span><span class="cl">├── encoderblocks.py     # EncoderBlocks → EncoderBlock → MHA + IntermediateLayer
</span></span><span class="line"><span class="ln"> 6</span><span class="cl">├── fairseq_mha.py       # MultiheadAttention（改自 fairseq，支援逐 head 權重輸出）
</span></span><span class="line"><span class="ln"> 7</span><span class="cl">├── extra_fns.py         # 啟動函數對照表 ACT2FN（GELU 等）
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">├── model.py             # AbLang = AbRep + AbHead；AbRep = Embeddings + Encoder
</span></span><span class="line"><span class="ln"> 9</span><span class="cl">├── pretrained.py        # pretrained class — 模型下載、推論介面、四種模式
</span></span><span class="line"><span class="ln">10</span><span class="cl">└── model-weights-*/     # 自動下載的預訓練權重（heavy / light 各一組）
</span></span></code></pre></div>
<h3 id="23-transformer-encoder-內部結構" data-numberify>2.3 Transformer Encoder 內部結構<a class="anchor ms-1" href="#23-transformer-encoder-內部結構"></a></h3>
<p>每個 <code>EncoderBlock</code> 包含：</p>]]></description></item><item><title>biomed-multi-alignment (MAMMAL) 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-biomed-multi-alignment-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-biomed-multi-alignment-tutorial/</guid><description><![CDATA[<h1 id="biomed-multi-alignment-mammal-完整教學" data-numberify>biomed-multi-alignment (MAMMAL) 完整教學<a class="anchor ms-1" href="#biomed-multi-alignment-mammal-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/BiomedSciAI/biomed-multi-alignment" target="_blank" rel="noopener noreferrer">https://github.com/BiomedSciAI/biomed-multi-alignment<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 109 | <strong>Tags</strong>: IBM, multimodal, foundation
<strong>License</strong>: Apache-2.0 | <strong>Language</strong>: Jupyter Notebook / Python
<strong>arXiv</strong>: <a href="https://arxiv.org/abs/2410.22367" target="_blank" rel="noopener noreferrer">2410.22367<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Model Weights</strong>: <a href="https://huggingface.co/ibm/biomed.omics.bl.sm.ma-ted-458m" target="_blank" rel="noopener noreferrer">ibm/biomed.omics.bl.sm.ma-ted-458m<i class="fas fa-external-link-square-alt ms-1"></i></a></p></blockquote>

<h2 id="2-核心架構" data-numberify>2. 核心架構<a class="anchor ms-1" href="#2-核心架構"></a></h2>

<h3 id="21-整體架構圖" data-numberify>2.1 整體架構圖<a class="anchor ms-1" href="#21-整體架構圖"></a></h3>
<pre class="mermaid">

graph TB
    subgraph Input["輸入模態 (Input Modalities)"]
        P["Protein Sequence<br/>蛋白質序列<br/>AA tokenizer"]
        S["Small Molecule<br/>小分子 SMILES<br/>SMILES tokenizer"]
        G["Gene Expression<br/>基因表現<br/>Gene tokenizer + Scalars"]
    end

    subgraph MT["Modular Tokenizer<br/>模組化分詞器"]
        M1["AA Tokenizer"]
        M2["SMILES Tokenizer"]
        M3["Gene Tokenizer"]
        M4["Unified ID Space<br/>統一 ID 空間"]
    end

    subgraph Prompt["Task Prompt Syntax<br/>任務提示語法"]
        TP["&lt;@TOKENIZER-TYPE=AA&gt;<br/>&lt;TASK_TAG&gt;<br/>&lt;MOLECULAR_ENTITY&gt;...&lt;/MOLECULAR_ENTITY&gt;<br/>&lt;EOS&gt;"]
    end

    subgraph Model["MAMMAL Model (458M params)"]
        ENC["T5 Encoder<br/>編碼器"]
        DEC["T5 Decoder<br/>解碼器"]
        EH["Encoder Head<br/>ClassifierMLP"]
        SH["Scalars Prediction Head<br/>標量預測頭"]
    end

    subgraph Output["輸出模式"]
        CLS["Classification<br/>分類 (token generation)"]
        REG["Regression<br/>回歸 (scalar prediction)"]
        EMB["Embeddings<br/>嵌入向量 (vLLM pooling)"]
    end

    P --> M1
    S --> M2
    G --> M3
    M1 --> M4
    M2 --> M4
    M3 --> M4
    M4 --> TP
    TP --> ENC

    ENC -->|"Encoder-Decoder mode"| DEC --> CLS
    ENC -->|"Encoder-only mode"| EH --> REG
    ENC -->|"Encoder-only mode"| SH --> REG
    ENC -->|"vLLM pooling"| EMB

</pre>


<h3 id="22-task-prompt-格式" data-numberify>2.2 Task Prompt 格式<a class="anchor ms-1" href="#22-task-prompt-格式"></a></h3>
<p>MAMMAL 的核心設計哲學是用<strong>統一的 prompt 格式</strong>將不同模態與任務編碼為 token 序列。以下是各任務的 prompt 結構：</p>]]></description></item><item><title>BioMedLM 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-biomedlm-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-biomedlm-tutorial/</guid><description><![CDATA[<h1 id="biomedlm-完整教學" data-numberify>BioMedLM 完整教學<a class="anchor ms-1" href="#biomedlm-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/stanford-crfm/BioMedLM" target="_blank" rel="noopener noreferrer">https://github.com/stanford-crfm/BioMedLM<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 640 | <strong>Forks</strong>: 66 | <strong>Language</strong>: Python
<strong>Tags</strong>: biomedical, LLM, Stanford
<strong>Model Hub</strong>: <a href="https://huggingface.co/stanford-crfm/pubmedgpt" target="_blank" rel="noopener noreferrer">https://huggingface.co/stanford-crfm/pubmedgpt<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Blog</strong>: <a href="https://crfm.stanford.edu/2022/12/15/pubmedgpt.html" target="_blank" rel="noopener noreferrer">https://crfm.stanford.edu/2022/12/15/pubmedgpt.html<i class="fas fa-external-link-square-alt ms-1"></i></a></p></blockquote>

<h2 id="2-核心架構" data-numberify>2. 核心架構<a class="anchor ms-1" href="#2-核心架構"></a></h2>

<h3 id="21-整體架構圖" data-numberify>2.1 整體架構圖<a class="anchor ms-1" href="#21-整體架構圖"></a></h3>
<pre class="mermaid">

graph TB
    subgraph "Pre-training Pipeline"
        A["PubMed Abstracts<br/>+ PubMed Central Full-text"] --> B["自訂 BPE Tokenizer<br/>(vocab=28,896)"]
        B --> C["GPT-2 2.7B 架構<br/>(MosaicML Composer)"]
        C --> D["BioMedLM<br/>Pre-trained Checkpoint"]
    end

    subgraph "Fine-tuning Pipeline"
        D --> E["NLU: Sequence Classification<br/>(PubMedQA / BioASQ)"]
        D --> F["NLU: Multiple Choice<br/>(MedQA-USMLE)"]
        D --> G["NLG: Text Generation<br/>(MeQSum Summarization)"]
    end

    subgraph "Downstream 應用"
        E --> H["生物醫學問答系統"]
        F --> I["醫學考試評估"]
        G --> J["醫學文獻摘要"]
        D --> K["Synthetic Data Generation<br/>(SDG 基礎模型)"]
    end

    subgraph "工具與依賴"
        L["HuggingFace Transformers"] --> C
        M["DeepSpeed CPU Offloading"] --> E & F & G
        N["PyTorch Distributed"] --> E & F & G
    end

    style A fill:#e1f5fe
    style D fill:#fff3e0
    style K fill:#fce4ec

</pre>


<h3 id="22-專案目錄結構" data-numberify>2.2 專案目錄結構<a class="anchor ms-1" href="#22-專案目錄結構"></a></h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gdscript3" data-lang="gdscript3"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="n">BioMedLM</span><span class="o">/</span>
</span></span><span class="line"><span class="ln"> 2</span><span class="cl"><span class="err">├──</span> <span class="n">README</span><span class="o">.</span><span class="n">md</span>                          <span class="c1"># 專案說明與快速使用範例</span>
</span></span><span class="line"><span class="ln"> 3</span><span class="cl"><span class="err">├──</span> <span class="n">demo</span><span class="o">.</span><span class="n">py</span>                            <span class="c1"># 最簡推論 demo</span>
</span></span><span class="line"><span class="ln"> 4</span><span class="cl"><span class="err">├──</span> <span class="n">tokenize</span><span class="o">/</span>
</span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="err">│</span>   <span class="err">└──</span> <span class="n">train_bpe</span><span class="o">.</span><span class="n">py</span>                   <span class="c1"># 自訂 BPE tokenizer 訓練腳本</span>
</span></span><span class="line"><span class="ln"> 6</span><span class="cl"><span class="err">├──</span> <span class="n">finetune</span><span class="o">/</span>
</span></span><span class="line"><span class="ln"> 7</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">README</span><span class="o">.</span><span class="n">md</span>                      <span class="c1"># Fine-tuning 完整說明</span>
</span></span><span class="line"><span class="ln"> 8</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">setup</span><span class="o">/</span>
</span></span><span class="line"><span class="ln"> 9</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>   <span class="err">└──</span> <span class="n">requirements</span><span class="o">.</span><span class="n">txt</span>           <span class="c1"># 依賴套件</span>
</span></span><span class="line"><span class="ln">10</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">deepspeed</span><span class="o">/</span>
</span></span><span class="line"><span class="ln">11</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>   <span class="err">└──</span> <span class="n">cpu_offload</span><span class="o">.</span><span class="n">json</span>           <span class="c1"># DeepSpeed 記憶體優化設定</span>
</span></span><span class="line"><span class="ln">12</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">mc</span><span class="o">/</span>                            <span class="c1"># Multiple Choice (多選題 QA)</span>
</span></span><span class="line"><span class="ln">13</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>   <span class="err">├──</span> <span class="n">README</span><span class="o">.</span><span class="n">md</span>
</span></span><span class="line"><span class="ln">14</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>   <span class="err">├──</span> <span class="n">preprocess_medqa</span><span class="o">.</span><span class="n">py</span>        <span class="c1"># MedQA 資料前處理</span>
</span></span><span class="line"><span class="ln">15</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>   <span class="err">├──</span> <span class="n">run_multiple_choice</span><span class="o">.</span><span class="n">py</span>     <span class="c1"># 多選微調主程式</span>
</span></span><span class="line"><span class="ln">16</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>   <span class="err">├──</span> <span class="n">run_experiments</span><span class="o">.</span><span class="n">py</span>         <span class="c1"># 批次實驗腳本</span>
</span></span><span class="line"><span class="ln">17</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>   <span class="err">└──</span> <span class="n">data</span><span class="o">/</span><span class="n">medqa_usmle_hf</span><span class="o">/</span>      <span class="c1"># MedQA-USMLE 範例資料</span>
</span></span><span class="line"><span class="ln">18</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">seqcls</span><span class="o">/</span>                        <span class="c1"># Sequence Classification (序列分類)</span>
</span></span><span class="line"><span class="ln">19</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>   <span class="err">├──</span> <span class="n">README</span><span class="o">.</span><span class="n">md</span>
</span></span><span class="line"><span class="ln">20</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>   <span class="err">├──</span> <span class="n">preprocess_blurb_seqcls</span><span class="o">.</span><span class="n">py</span> <span class="c1"># BLURB 資料前處理</span>
</span></span><span class="line"><span class="ln">21</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>   <span class="err">├──</span> <span class="n">run_seqcls_gpt</span><span class="o">.</span><span class="n">py</span>          <span class="c1"># 序列分類微調主程式</span>
</span></span><span class="line"><span class="ln">22</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>   <span class="err">└──</span> <span class="n">data</span><span class="o">/</span>                      <span class="c1"># PubMedQA / BioASQ 範例資料</span>
</span></span><span class="line"><span class="ln">23</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">textgen</span><span class="o">/</span>                       <span class="c1"># Text Generation (文本生成)</span>
</span></span><span class="line"><span class="ln">24</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>   <span class="err">├──</span> <span class="n">data</span><span class="o">/</span><span class="n">meqsum</span><span class="o">/</span>               <span class="c1"># MeQSum 摘要任務資料</span>
</span></span><span class="line"><span class="ln">25</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>   <span class="err">└──</span> <span class="n">gpt2</span><span class="o">/</span>
</span></span><span class="line"><span class="ln">26</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>       <span class="err">├──</span> <span class="n">finetune_for_summarization</span><span class="o">.</span><span class="n">py</span>  <span class="c1"># 摘要微調</span>
</span></span><span class="line"><span class="ln">27</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>       <span class="err">├──</span> <span class="n">generate_demo</span><span class="o">.</span><span class="n">py</span>               <span class="c1"># 生成 demo</span>
</span></span><span class="line"><span class="ln">28</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>       <span class="err">├──</span> <span class="n">run_generation_batch</span><span class="o">.</span><span class="n">py</span>        <span class="c1"># 批次生成</span>
</span></span><span class="line"><span class="ln">29</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>       <span class="err">├──</span> <span class="n">sum_data_collator</span><span class="o">.</span><span class="n">py</span>           <span class="c1"># 資料 collator</span>
</span></span><span class="line"><span class="ln">30</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>       <span class="err">└──</span> <span class="n">sum_dataset</span><span class="o">.</span><span class="n">py</span>                 <span class="c1"># 資料集類別</span>
</span></span><span class="line"><span class="ln">31</span><span class="cl"><span class="err">│</span>   <span class="err">└──</span> <span class="n">utils</span><span class="o">/</span>
</span></span><span class="line"><span class="ln">32</span><span class="cl"><span class="err">│</span>       <span class="err">├──</span> <span class="n">custom_modeling_gpt2</span><span class="o">.</span><span class="n">py</span>    <span class="c1"># 自訂 GPT-2（加 Token Classification）</span>
</span></span><span class="line"><span class="ln">33</span><span class="cl"><span class="err">│</span>       <span class="err">├──</span> <span class="n">custom_modeling_gpt_neo</span><span class="o">.</span><span class="n">py</span> <span class="c1"># GPT-Neo 相容層</span>
</span></span><span class="line"><span class="ln">34</span><span class="cl"><span class="err">│</span>       <span class="err">└──</span> <span class="n">hf_flash_gpt_2</span><span class="o">.</span><span class="n">py</span>         <span class="c1"># Flash Attention 支援</span>
</span></span></code></pre></div>
<h3 id="23-fine-tuning-任務架構" data-numberify>2.3 Fine-tuning 任務架構<a class="anchor ms-1" href="#23-fine-tuning-任務架構"></a></h3>
<pre class="mermaid">

graph LR
    subgraph "NLU Tasks"
        direction TB
        MC["Multiple Choice<br/>(MedQA-USMLE)<br/>4 選 1 醫學考題"]
        SC["Sequence Classification<br/>(PubMedQA / BioASQ)<br/>yes/no/maybe 分類"]
    end

    subgraph "NLG Tasks"
        direction TB
        TG["Text Generation<br/>(MeQSum)<br/>醫療問題摘要"]
    end

    BM["BioMedLM<br/>Pre-trained"] --> MC
    BM --> SC
    BM --> TG

    MC -->|"MultipleChoiceModelOutput"| R1["Accuracy on<br/>USMLE 4-option"]
    SC -->|"SequenceClassifierOutput"| R2["Accuracy on<br/>PubMedQA / BioASQ"]
    TG -->|"Causal LM"| R3["ROUGE / BLEU<br/>on MeQSum"]

    style BM fill:#fff3e0
    style MC fill:#e8f5e9
    style SC fill:#e8f5e9
    style TG fill:#e3f2fd

</pre>


<h3 id="24-tokenizer-設計" data-numberify>2.4 Tokenizer 設計<a class="anchor ms-1" href="#24-tokenizer-設計"></a></h3>
<p>BioMedLM 使用自訂的 BPE（Byte-Pair Encoding; 位元組對編碼）tokenizer，這是整個系統的關鍵差異化設計：</p>]]></description></item><item><title>brain-synthesis-lesion-segmentation 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-brain-synthesis-lesion-segmentation-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-brain-synthesis-lesion-segmentation-tutorial/</guid><description><![CDATA[<h1 id="brain-synthesis-lesion-segmentation-完整教學" data-numberify>brain-synthesis-lesion-segmentation 完整教學<a class="anchor ms-1" href="#brain-synthesis-lesion-segmentation-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/harshitAgr/brain-synthesis-lesion-segmentation" target="_blank" rel="noopener noreferrer">https://github.com/harshitAgr/brain-synthesis-lesion-segmentation<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 40 | <strong>Fork</strong>: 33 | <strong>Language</strong>: Python (TensorFlow)
<strong>Tags</strong>: brain, GAN, NVIDIA-DLI
<strong>論文</strong>: <a href="https://arxiv.org/abs/1807.10225" target="_blank" rel="noopener noreferrer">Medical Image Synthesis for Data Augmentation and Anonymization using Generative Adversarial Networks<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>最後更新</strong>: 2025-12-01</p></blockquote>

<h2 id="2-核心架構" data-numberify>2. 核心架構<a class="anchor ms-1" href="#2-核心架構"></a></h2>

<h3 id="21-整體管線" data-numberify>2.1 整體管線<a class="anchor ms-1" href="#21-整體管線"></a></h3>
<pre class="mermaid">

graph TD
    subgraph 資料準備
        A[ISLES'18 原始 NIfTI] -->|預處理 Notebook| B[2D PNG 切片<br/>或 3D PKL 體積]
    end

    subgraph 模型訓練
        B --> C{選擇模式}
        C -->|無條件| D[GAN 2D<br/>gan2d.py]
        C -->|條件式 2D| E[pix2pix 2D<br/>pix2pix2d.py]
        C -->|條件式 3D| F[pix2pix 3D<br/>pix2pix3d.py]
    end

    subgraph Generator 架構
        G[Input Image<br/>CT Perfusion] --> H[U-Net Encoder<br/>8 層 Downsample]
        H --> I[Bottleneck<br/>1x1x512]
        I --> J[U-Net Decoder<br/>7 層 Upsample + Skip]
        J --> K[Output<br/>合成病灶標籤]
    end

    subgraph Discriminator 架構
        L[Input + Target<br/>或 Input + Generated] --> M[PatchGAN<br/>70x70 patches]
        M --> N[Real / Fake<br/>判別]
    end

    subgraph 後處理
        E --> O[2D 預測 PNG]
        F --> P[3D 預測 PKL]
        O -->|merge_2d_test_to_nii.py| Q[NIfTI 輸出]
        P -->|convert_3d_test_to_nii.py| Q
    end

    style G fill:#e1f5fe
    style K fill:#c8e6c9
    style Q fill:#fff3e0

</pre>


<h3 id="22-generator-詳細架構u-net--skip-connections" data-numberify>2.2 Generator 詳細架構（U-Net + Skip Connections）<a class="anchor ms-1" href="#22-generator-詳細架構u-net--skip-connections"></a></h3>
<p>Generator（生成器）採用經典 <strong>U-Net</strong>（U 型網路）架構，包含：</p>]]></description></item><item><title>conditional_DDPM 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-conditional-ddpm-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-conditional-ddpm-tutorial/</guid><description><![CDATA[<h1 id="conditional_ddpm-完整教學" data-numberify>conditional_DDPM 完整教學<a class="anchor ms-1" href="#conditional_ddpm-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/junbopeng/conditional_DDPM" target="_blank" rel="noopener noreferrer">https://github.com/junbopeng/conditional_DDPM<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 74 | <strong>Tags</strong>: DDPM, CBCT-CT, Medical-Physics
<strong>License</strong>: MIT | <strong>Language</strong>: Python | <strong>Last Updated</strong>: 2026-04-29
<strong>論文</strong>: Peng J, Qiu RLJ, Wynne JF, et al. <em>CBCT-Based synthetic CT image generation using conditional denoising diffusion probabilistic model.</em> Med Phys. 2023; 1-13. DOI: <a href="https://doi.org/10.1002/mp.16704" target="_blank" rel="noopener noreferrer">10.1002/mp.16704<i class="fas fa-external-link-square-alt ms-1"></i></a></p></blockquote>

<h2 id="2-核心架構" data-numberify>2. 核心架構<a class="anchor ms-1" href="#2-核心架構"></a></h2>

<h3 id="21-系統架構圖" data-numberify>2.1 系統架構圖<a class="anchor ms-1" href="#21-系統架構圖"></a></h3>
<pre class="mermaid">

graph TB
    subgraph "Forward Process (訓練時)"
        CT["pCT 影像<br/>(Ground Truth)"]
        NOISE["Gaussian Noise ε"]
        T_STEP["Random Timestep t<br/>t ∈ [0, T)"]
        X_T["噪聲化 CT: x_t<br/>x_t = √ᾱ_t · CT + √(1-ᾱ_t) · ε"]
        CT --> X_T
        NOISE --> X_T
        T_STEP --> X_T
    end

    subgraph "Conditional Input (條件輸入)"
        CBCT["CBCT 影像<br/>(Condition)"]
        CONCAT["Channel Concatenation<br/>[x_t, CBCT] → 2-ch"]
        X_T --> CONCAT
        CBCT --> CONCAT
    end

    subgraph "U-Net Backbone"
        UNET["Conditional U-Net<br/>Input: 2-ch | Output: 1-ch"]
        TIME_EMB["Sinusoidal Time Embedding<br/>t → MLP → t_emb"]
        CONCAT --> UNET
        T_STEP --> TIME_EMB
        TIME_EMB --> UNET
        PRED["Predicted Noise ε̂"]
        UNET --> PRED
    end

    subgraph "Training Loss"
        LOSS["MSE Loss<br/>L = Σ||ε - ε̂||²"]
        NOISE --> LOSS
        PRED --> LOSS
    end

    subgraph "Reverse Process (推論時)"
        PURE_NOISE["Pure Noise x_T<br/>~ N(0, I)"]
        CBCT2["CBCT 影像"]
        DENOISE["Iterative Denoising<br/>t = T → 0"]
        SCT["Synthetic CT<br/>(合成 CT 輸出)"]
        PURE_NOISE --> DENOISE
        CBCT2 --> DENOISE
        UNET -.->|"Trained Model"| DENOISE
        DENOISE --> SCT
    end

    style CT fill:#4CAF50,color:#fff
    style CBCT fill:#FF9800,color:#fff
    style CBCT2 fill:#FF9800,color:#fff
    style SCT fill:#2196F3,color:#fff
    style LOSS fill:#f44336,color:#fff

</pre>


<h3 id="22-u-net-架構細節" data-numberify>2.2 U-Net 架構細節<a class="anchor ms-1" href="#22-u-net-架構細節"></a></h3>
<p>模型採用經典的 <strong>U-Net with Skip Connections (帶跳躍連接的 U-Net)</strong>，各層規格如下：</p>]]></description></item><item><title>CTGAN 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-ctgan-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-ctgan-tutorial/</guid><description><![CDATA[<h1 id="ctgan-完整教學" data-numberify>CTGAN 完整教學<a class="anchor ms-1" href="#ctgan-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/sdv-dev/CTGAN" target="_blank" rel="noopener noreferrer">https://github.com/sdv-dev/CTGAN<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 1,560 | <strong>Forks</strong>: 331 | <strong>Language</strong>: Python | <strong>License</strong>: Business Source License (BSL)
<strong>Tags</strong>: <code>synthetic-data</code>, <code>generative-adversarial-network</code>, <code>tabular-data</code>, <code>data-generation</code>
<strong>最後更新</strong>: 2026-06-08 | <strong>目前版本</strong>: v0.12.1
<strong>論文</strong>: <a href="https://arxiv.org/abs/1907.00503" target="_blank" rel="noopener noreferrer">Modeling Tabular data using Conditional GAN<i class="fas fa-external-link-square-alt ms-1"></i></a> — NeurIPS 2019</p></blockquote>

<h2 id="2-核心架構-core-architecture" data-numberify>2. 核心架構 (Core Architecture)<a class="anchor ms-1" href="#2-核心架構-core-architecture"></a></h2>

<h3 id="21-整體資料流" data-numberify>2.1 整體資料流<a class="anchor ms-1" href="#21-整體資料流"></a></h3>
<pre class="mermaid">

flowchart TB
    subgraph INPUT["輸入層"]
        RAW["原始表格資料<br/>pandas DataFrame"]
        DC["離散欄位清單<br/>discrete_columns"]
    end

    subgraph TRANSFORM["資料轉換層 DataTransformer"]
        direction TB
        CONT["連續欄位<br/>ClusterBasedNormalizer<br/>(Bayesian GMM)"]
        DISC["離散欄位<br/>OneHotEncoder"]
        CONT --> |"scalar [-1,1] + mode softmax"| ENCODED["轉換後矩陣<br/>float32 ndarray"]
        DISC --> |"one-hot vector"| ENCODED
    end

    subgraph SAMPLER["條件取樣層 DataSampler"]
        CONDVEC["Conditional Vector<br/>條件向量"]
        LOGFREQ["Log-Frequency<br/>對數頻率取樣"]
    end

    subgraph GAN["GAN 訓練核心"]
        direction LR
        subgraph GEN["Generator 生成器"]
            NOISE["z ~ N(0,1)<br/>噪聲向量"]
            RESIDUAL["Residual Layers<br/>殘差層 × N"]
            ACTIVATE["Activation<br/>tanh + Gumbel-Softmax"]
        end
        subgraph DIS["Discriminator 鑑別器"]
            PAC["PacGAN (pac=10)<br/>多樣本打包"]
            WGANGP["WGAN-GP Loss<br/>梯度懲罰"]
        end
        GEN -->|"fake data"| DIS
        DIS -->|"gradient"| GEN
    end

    subgraph OUTPUT["輸出層"]
        INVERSE["逆轉換<br/>inverse_transform"]
        SYNTH["合成表格資料<br/>pandas DataFrame"]
    end

    RAW --> TRANSFORM
    DC --> TRANSFORM
    ENCODED --> SAMPLER
    SAMPLER --> GAN
    ENCODED -->|"real data"| DIS
    CONDVEC -->|"concat with z"| NOISE
    GAN -->|"fakeact"| INVERSE
    INVERSE --> SYNTH

    style INPUT fill:#e8f4f8,stroke:#2196F3
    style TRANSFORM fill:#fff3e0,stroke:#FF9800
    style SAMPLER fill:#f3e5f5,stroke:#9C27B0
    style GAN fill:#fce4ec,stroke:#E91E63
    style OUTPUT fill:#e8f5e9,stroke:#4CAF50

</pre>


<h3 id="22-模組拆解" data-numberify>2.2 模組拆解<a class="anchor ms-1" href="#22-模組拆解"></a></h3>
<p>CTGAN 的程式碼結構十分精簡，核心僅 6 個檔案：</p>]]></description></item><item><title>DenseDiffusion 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-densediffusion-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-densediffusion-tutorial/</guid><description><![CDATA[<h1 id="densediffusion-完整教學" data-numberify>DenseDiffusion 完整教學<a class="anchor ms-1" href="#densediffusion-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/naver-ai/DenseDiffusion" target="_blank" rel="noopener noreferrer">https://github.com/naver-ai/DenseDiffusion<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 507 | <strong>Forks</strong>: 35 | <strong>License</strong>: Apache-2.0
<strong>Tags</strong>: diffusion, dense-control, ICCV
<strong>論文</strong>: <a href="https://arxiv.org/abs/2308.12964" target="_blank" rel="noopener noreferrer">Dense Text-to-Image Generation with Attention Modulation (ICCV 2023)<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>作者</strong>: Yunji Kim, Jiyoung Lee, Jin-Hwa Kim, Jung-Woo Ha (NAVER AI Lab), Jun-Yan Zhu (CMU)</p></blockquote>

<h2 id="2-核心架構" data-numberify>2. 核心架構<a class="anchor ms-1" href="#2-核心架構"></a></h2>

<h3 id="21-系統架構圖" data-numberify>2.1 系統架構圖<a class="anchor ms-1" href="#21-系統架構圖"></a></h3>
<pre class="mermaid">

graph TD
    A["使用者輸入"] --> B["Layout Masks<br/>空間佈局遮罩"]
    A --> C["Segment Prompts<br/>區段文字描述"]
    A --> D["Master Prompt<br/>全局文字描述"]

    B --> E["Mask Preprocessing<br/>遮罩前處理"]
    C --> F["CLIP Tokenizer<br/>文字分詞"]
    D --> F

    F --> G["CLIP Text Encoder<br/>文字編碼器"]
    G --> H["Text Embeddings<br/>文字嵌入"]

    E --> I["Self-Attention Reg Maps<br/>自注意力調控圖"]
    E --> J["Cross-Attention Reg Maps<br/>交叉注意力調控圖"]
    E --> K["Size Reg Maps<br/>面積調控圖"]

    H --> L["Modified UNet Forward<br/>修改後的 UNet 前向傳播"]
    I --> L
    J --> L
    K --> L

    L --> M["DDIM Scheduler<br/>DDIM 排程器"]
    M --> N["Generated Image<br/>生成影像"]

    style A fill:#e1f5fe
    style L fill:#fff3e0
    style N fill:#e8f5e9

</pre>


<h3 id="22-注意力調變機制" data-numberify>2.2 注意力調變機制<a class="anchor ms-1" href="#22-注意力調變機制"></a></h3>
<p>DenseDiffusion 的核心是 <code>mod_forward</code> 函式，它替換了 UNet 中所有 Attention 層的 <code>__call__</code> 方法。調變邏輯如下：</p>]]></description></item><item><title>distilabel 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-distilabel-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-distilabel-tutorial/</guid><description><![CDATA[<h1 id="distilabel-完整教學" data-numberify>distilabel 完整教學<a class="anchor ms-1" href="#distilabel-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/argilla-io/distilabel" target="_blank" rel="noopener noreferrer">https://github.com/argilla-io/distilabel<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 3248 | <strong>Tags</strong>: LLM, synthetic-data, AI-feedback
<strong>License</strong>: Apache-2.0 | <strong>Language</strong>: Python | <strong>Requires</strong>: Python 3.9+
<strong>Homepage</strong>: <a href="https://distilabel.argilla.io" target="_blank" rel="noopener noreferrer">https://distilabel.argilla.io<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Topics</strong>: ai, huggingface, llms, openai, python, rlaif, rlhf, synthetic-data, synthetic-dataset-generation</p></blockquote>

<h2 id="2-核心架構" data-numberify>2. 核心架構<a class="anchor ms-1" href="#2-核心架構"></a></h2>

<h3 id="21-整體架構圖" data-numberify>2.1 整體架構圖<a class="anchor ms-1" href="#21-整體架構圖"></a></h3>
<pre class="mermaid">

graph TB
    subgraph Input["Input Layer (輸入層)"]
        HF["HuggingFace Dataset<br/>HuggingFace 資料集"]
        CSV["CSV / JSON / JSONL"]
        GEN["GeneratorStep<br/>生成器步驟"]
    end

    subgraph Pipeline["Pipeline Engine (管線引擎)"]
        direction TB
        DAG["DAG Scheduler<br/>有向無環圖排程器"]
        BM["BatchManager<br/>批次管理器"]
        SW["StepWrapper<br/>步驟包裝器"]
        WB["WriteBuffer<br/>寫入緩衝區"]
        
        DAG --> BM
        BM --> SW
        SW --> WB
    end

    subgraph Models["Models Layer (模型層)"]
        direction TB
        LLM["LLM Integrations<br/>15+ providers"]
        EMB["Embedding Models<br/>嵌入模型"]
        IMG["Image Generation<br/>圖像生成"]
    end

    subgraph Steps["Steps Layer (步驟層)"]
        direction TB
        TASK["Task Steps<br/>任務步驟"]
        PROC["Processing Steps<br/>處理步驟"]
        FILT["Filtering Steps<br/>過濾步驟"]
        FMT["Formatting Steps<br/>格式化步驟"]
    end

    subgraph Tasks["Built-in Tasks (內建任務)"]
        TG["TextGeneration<br/>文本生成"]
        UF["UltraFeedback<br/>多維度評分"]
        EI["EvolInstruct<br/>指令進化"]
        SI["SelfInstruct<br/>自我指令"]
        PM["PrometheusEval<br/>評估"]
        CL["CLAIR<br/>修訂回饋"]
        MG["Magpie<br/>合成對話"]
        SG["StructuredGeneration<br/>結構化生成"]
    end

    subgraph Output["Output Layer (輸出層)"]
        DS["Distiset<br/>distilabel 資料集"]
        ARG["Argilla Export<br/>Argilla 標注平台"]
        PUSH["Push to HF Hub<br/>推送到 HuggingFace"]
    end

    Input --> Pipeline
    Models --> Steps
    Steps --> Pipeline
    Tasks --> TASK
    Pipeline --> Output

    style Input fill:#e1f5fe,stroke:#0288d1
    style Pipeline fill:#fff3e0,stroke:#f57c00
    style Models fill:#f3e5f5,stroke:#7b1fa2
    style Steps fill:#e8f5e9,stroke:#388e3c
    style Tasks fill:#fce4ec,stroke:#c62828
    style Output fill:#f1f8e9,stroke:#558b2f

</pre>


<h3 id="22-模組結構" data-numberify>2.2 模組結構<a class="anchor ms-1" href="#22-模組結構"></a></h3>
<p>distilabel 的原始碼組織如下：</p>]]></description></item><item><title>FORTE 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-forte-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-forte-tutorial/</guid><description><![CDATA[<h1 id="forte-完整教學" data-numberify>FORTE 完整教學<a class="anchor ms-1" href="#forte-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/charlierabea/FORTE" target="_blank" rel="noopener noreferrer">https://github.com/charlierabea/FORTE<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 49 | <strong>Fork</strong>: 6 | <strong>License</strong>: MIT
<strong>Tags</strong>: multimodal, LLM, brain-CT, report
<strong>論文</strong>: <a href="https://www.nature.com/articles/s41467-025-57426-0" target="_blank" rel="noopener noreferrer">Nature Communications 16, 2258 (2025)<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>最後更新</strong>: 2026-05-27
<strong>Zenodo DOI</strong>: <a href="https://doi.org/10.5281/zenodo.14852686" target="_blank" rel="noopener noreferrer">10.5281/zenodo.14852686<i class="fas fa-external-link-square-alt ms-1"></i></a></p></blockquote>

<h2 id="2-核心架構" data-numberify>2. 核心架構<a class="anchor ms-1" href="#2-核心架構"></a></h2>

<h3 id="21-系統全貌" data-numberify>2.1 系統全貌<a class="anchor ms-1" href="#21-系統全貌"></a></h3>
<pre class="mermaid">

flowchart TB
    subgraph INPUT["輸入層"]
        CT["3D Brain CT<br/>(N 張 2D Slice)"]
        INST["Structured Instruction<br/>(MIIT 格式)"]
    end

    subgraph MODEL["BrainGPT 模型"]
        CLIP["CLIP Vision Encoder<br/>(影像編碼器)"]
        PERC["Perceiver Resampler<br/>(跨模態橋接)"]
        MPT["MPT-7B LLM<br/>(語言生成器)"]
        
        CLIP --> PERC
        PERC --> MPT
    end

    subgraph EVAL["FORTE 評估框架"]
        AUTO["Automatic Evaluation<br/>(BLEU / METEOR / ROUGE / CIDEr)"]
        SP["Sentence Pairing<br/>(語義相似度配對)"]
        KW["FORTE Keyword Extraction<br/>(4 類關鍵字擷取)"]
        NEG["Negation Removal<br/>(否定句移除)"]
        
        SP --> KW
        KW --> NEG
    end

    CT --> CLIP
    INST --> MPT
    MPT -->|"Generated Report"| EVAL
    AUTO -.->|"NLG Metrics"| RESULT["Evaluation Result<br/>(Excel)"]
    NEG -->|"Clinical Precision/Recall"| RESULT

    style INPUT fill:#e1f5fe,stroke:#0288d1
    style MODEL fill:#fff3e0,stroke:#f57c00
    style EVAL fill:#e8f5e9,stroke:#388e3c

</pre>


<h3 id="22-目錄結構" data-numberify>2.2 目錄結構<a class="anchor ms-1" href="#22-目錄結構"></a></h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="ln"> 1</span><span class="cl">FORTE/
</span></span><span class="line"><span class="ln"> 2</span><span class="cl">├── MIIT/                          # 訓練框架（基於 Otter）
</span></span><span class="line"><span class="ln"> 3</span><span class="cl">│   ├── flamingo/                  # OpenFlamingo 模型定義
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">│   │   ├── modeling_flamingo.py   #   Flamingo 條件生成模型
</span></span><span class="line"><span class="ln"> 5</span><span class="cl">│   │   └── mpt/                   #   MPT backbone
</span></span><span class="line"><span class="ln"> 6</span><span class="cl">│   ├── otter/                     # Otter 模型（BrainGPT 基底）
</span></span><span class="line"><span class="ln"> 7</span><span class="cl">│   │   └── modeling_otter.py      #   OtterForConditionalGeneration
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">│   └── pipeline/
</span></span><span class="line"><span class="ln"> 9</span><span class="cl">│       ├── train/
</span></span><span class="line"><span class="ln">10</span><span class="cl">│       │   ├── instruction_following.py  # 主訓練腳本
</span></span><span class="line"><span class="ln">11</span><span class="cl">│       │   ├── data.py                   # 資料載入器
</span></span><span class="line"><span class="ln">12</span><span class="cl">│       │   └── train_utils.py            # 訓練工具
</span></span><span class="line"><span class="ln">13</span><span class="cl">│       ├── eval/                  # COCO 風格評估
</span></span><span class="line"><span class="ln">14</span><span class="cl">│       ├── serve/                 # Gradio demo 伺服器
</span></span><span class="line"><span class="ln">15</span><span class="cl">│       └── mimicit_utils/         # MIIT 資料集工具
</span></span><span class="line"><span class="ln">16</span><span class="cl">├── evaluation/                    # 推論框架（結構同 MIIT，用於 eval mode）
</span></span><span class="line"><span class="ln">17</span><span class="cl">│   └── pipeline/train/eval.py     # 推論主腳本
</span></span><span class="line"><span class="ln">18</span><span class="cl">├── data/
</span></span><span class="line"><span class="ln">19</span><span class="cl">│   ├── CQ500p_instruction.json    # CQ500 外部驗證指令
</span></span><span class="line"><span class="ln">20</span><span class="cl">│   ├── FORTE_brain.json           # 腦 CT 關鍵字詞典（4 類 × N 同義詞組）
</span></span><span class="line"><span class="ln">21</span><span class="cl">│   ├── FORTE_chestCT.json         # 胸 CT 關鍵字詞典
</span></span><span class="line"><span class="ln">22</span><span class="cl">│   ├── FORTE_abdomen.json         # 腹 CT 關鍵字詞典
</span></span><span class="line"><span class="ln">23</span><span class="cl">│   └── FORTE_CXR.json             # 胸 X 光關鍵字詞典
</span></span><span class="line"><span class="ln">24</span><span class="cl">├── Automatic_evaluation.py        # Step 1: NLG 自動評估
</span></span><span class="line"><span class="ln">25</span><span class="cl">├── Sentence_pairing.py            # Step 2: 語義句子配對
</span></span><span class="line"><span class="ln">26</span><span class="cl">├── FORTE.py                       # Step 3: FORTE 關鍵字評估
</span></span><span class="line"><span class="ln">27</span><span class="cl">├── Negation_removal.py            # Step 4: 否定移除
</span></span><span class="line"><span class="ln">28</span><span class="cl">├── train.sh                       # 訓練腳本入口
</span></span><span class="line"><span class="ln">29</span><span class="cl">├── eval.sh                        # 推論腳本入口
</span></span><span class="line"><span class="ln">30</span><span class="cl">├── environment.yml                # Conda 環境
</span></span><span class="line"><span class="ln">31</span><span class="cl">└── requirements.txt               # pip 依賴
</span></span></code></pre></div>
<h3 id="23-forte-評估-pipeline-流程" data-numberify>2.3 FORTE 評估 Pipeline 流程<a class="anchor ms-1" href="#23-forte-評估-pipeline-流程"></a></h3>
<pre class="mermaid">

flowchart LR
    A["Generated Reports<br/>(Excel: gt + parsed_output)"] --> B["Step 1<br/>Automatic Evaluation<br/>(BLEU/METEOR/ROUGE/CIDEr)"]
    B --> C["Step 2<br/>Sentence Pairing<br/>(all-mpnet-base-v2<br/>cosine similarity)"]
    C --> D["Step 3<br/>FORTE Keyword Extraction<br/>(4 類: degree/landmark/<br/>feature/impression)"]
    D --> E["Step 4<br/>Negation Removal<br/>(移除含 'no' 的 degree 句)"]
    E --> F["Final Metrics<br/>per-category<br/>Precision & Recall"]

    style A fill:#fff9c4,stroke:#f9a825
    style F fill:#c8e6c9,stroke:#2e7d32

</pre>

<p><strong>四類 FORTE 關鍵字（以 Brain CT 為例）</strong>：</p>]]></description></item><item><title>foundation-cancer-image-biomarker 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-foundation-cancer-image-biomarker-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-foundation-cancer-image-biomarker-tutorial/</guid><description><![CDATA[<h1 id="foundation-cancer-image-biomarker-完整教學" data-numberify>foundation-cancer-image-biomarker 完整教學<a class="anchor ms-1" href="#foundation-cancer-image-biomarker-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/AIM-Harvard/foundation-cancer-image-biomarker" target="_blank" rel="noopener noreferrer">https://github.com/AIM-Harvard/foundation-cancer-image-biomarker<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 132 | <strong>Tags</strong>: cancer, imaging, biomarker
<strong>論文</strong>: Nature Machine Intelligence 2024
<strong>授權</strong>: MIT License | <strong>語言</strong>: Python (Jupyter Notebook / PyTorch)
<strong>作者</strong>: Suraj Pai, AIM Lab @ Harvard</p></blockquote>

<h2 id="2-核心架構" data-numberify>2. 核心架構<a class="anchor ms-1" href="#2-核心架構"></a></h2>

<h3 id="21-系統架構總覽" data-numberify>2.1 系統架構總覽<a class="anchor ms-1" href="#21-系統架構總覽"></a></h3>
<pre class="mermaid">

flowchart TB
    subgraph INPUT["輸入層 Input Layer"]
        CSV["CSV 檔案<br/>image_path, coordX, coordY, coordZ"]
        NIFTI["NIfTI / NRRD<br/>3D 醫學影像"]
    end

    subgraph PREPROCESS["前處理 Preprocessing"]
        LOAD["LoadImage<br/>(ITKReader)"]
        ORIENT["Orientation<br/>LPS 標準化"]
        SPACING["Spacing<br/>1x1x1 mm 重採樣"]
        NORM["NormalizeIntensity<br/>(-1024 ~ 2048 HU)"]
        CROP["SeedBasedPatchCrop<br/>50x50x50 voxels"]
    end

    subgraph MODEL["基礎模型 Foundation Model"]
        TRUNK["3D ResNet-50<br/>(widen_factor=2)"]
        FEAT["Feature Vector<br/>4096-dim"]
    end

    subgraph DOWNSTREAM["下游應用 Downstream Tasks"]
        LINEAR["Linear Probe<br/>(LogisticRegression)"]
        FINETUNE["Fine-tuning<br/>(project-lighter)"]
        CUSTOM["自定義 Pipeline"]
    end

    subgraph OUTPUT["輸出層 Output Layer"]
        CLASS["病灶分類"]
        MALIG["惡性度預測"]
        SURV["存活期預測"]
        BIOM["定量生物標記"]
    end

    CSV --> LOAD
    NIFTI --> LOAD
    LOAD --> ORIENT --> SPACING --> NORM --> CROP
    CROP --> TRUNK --> FEAT
    FEAT --> LINEAR --> CLASS
    FEAT --> LINEAR --> MALIG
    FEAT --> FINETUNE --> SURV
    FEAT --> CUSTOM --> BIOM

    style INPUT fill:#e8f4fd,stroke:#1e88e5
    style PREPROCESS fill:#fff3e0,stroke:#ff9800
    style MODEL fill:#fce4ec,stroke:#e53935
    style DOWNSTREAM fill:#e8f5e9,stroke:#43a047
    style OUTPUT fill:#f3e5f5,stroke:#8e24aa

</pre>


<h3 id="22-ssl-預訓練架構" data-numberify>2.2 SSL 預訓練架構<a class="anchor ms-1" href="#22-ssl-預訓練架構"></a></h3>
<pre class="mermaid">

flowchart LR
    subgraph DATA["資料準備"]
        IMG["3D CT Image"]
        POS1["Positive View 1<br/>(RandomResizedCrop)"]
        POS2["Positive View 2<br/>(RandomResizedCrop)"]
        NEG["Negative Patch<br/>(Background Region)"]
    end

    subgraph AUG["資料增強"]
        FLIP["RandAxisFlip"]
        HIST["RandHistogramShift"]
        GAUSS["RandGaussianSmooth"]
    end

    subgraph SIMCLR["ExNeg SimCLR"]
        ENC["3D ResNet-50<br/>Encoder"]
        PROJ["Projection Head<br/>(4096 → 2048 → 128)"]
        LOSS["NegativeMiningInfoNCE<br/>Loss"]
    end

    IMG --> POS1 & POS2 & NEG
    POS1 --> AUG
    POS2 --> AUG
    AUG --> ENC --> PROJ --> LOSS
    NEG --> ENC

    style SIMCLR fill:#fce4ec,stroke:#e53935

</pre>


<h3 id="23-專案目錄結構" data-numberify>2.3 專案目錄結構<a class="anchor ms-1" href="#23-專案目錄結構"></a></h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gdscript3" data-lang="gdscript3"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="n">foundation</span><span class="o">-</span><span class="n">cancer</span><span class="o">-</span><span class="n">image</span><span class="o">-</span><span class="n">biomarker</span><span class="o">/</span>
</span></span><span class="line"><span class="ln"> 2</span><span class="cl"><span class="err">├──</span> <span class="n">fmcib</span><span class="o">/</span>                          <span class="c1"># 核心 Python 套件</span>
</span></span><span class="line"><span class="ln"> 3</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">models</span><span class="o">/</span>                     <span class="c1"># 模型定義</span>
</span></span><span class="line"><span class="ln"> 4</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>   <span class="err">├──</span> <span class="n">load_model</span><span class="o">.</span><span class="n">py</span>           <span class="c1"># LoadModel — 權重載入 + trunk/heads 架構</span>
</span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>   <span class="err">├──</span> <span class="n">autoencoder</span><span class="o">.</span><span class="n">py</span>          <span class="c1"># Autoencoder baseline</span>
</span></span><span class="line"><span class="ln"> 6</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>   <span class="err">└──</span> <span class="n">models_genesis</span><span class="o">.</span><span class="n">py</span>       <span class="c1"># Models Genesis UNet3D baseline</span>
</span></span><span class="line"><span class="ln"> 7</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">ssl</span><span class="o">/</span>                        <span class="c1"># 自監督學習模組</span>
</span></span><span class="line"><span class="ln"> 8</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>   <span class="err">├──</span> <span class="n">modules</span><span class="o">/</span>
</span></span><span class="line"><span class="ln"> 9</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>   <span class="err">│</span>   <span class="err">├──</span> <span class="n">simclr</span><span class="o">.</span><span class="n">py</span>           <span class="c1"># Standard SimCLR</span>
</span></span><span class="line"><span class="ln">10</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>   <span class="err">│</span>   <span class="err">├──</span> <span class="n">exneg_simclr</span><span class="o">.</span><span class="n">py</span>     <span class="c1"># Extended Negative SimCLR (核心)</span>
</span></span><span class="line"><span class="ln">11</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>   <span class="err">│</span>   <span class="err">├──</span> <span class="n">nnclr</span><span class="o">.</span><span class="n">py</span>            <span class="c1"># NNCLR variant</span>
</span></span><span class="line"><span class="ln">12</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>   <span class="err">│</span>   <span class="err">└──</span> <span class="n">swav</span><span class="o">.</span><span class="n">py</span>             <span class="c1"># SwAV variant</span>
</span></span><span class="line"><span class="ln">13</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>   <span class="err">└──</span> <span class="n">losses</span><span class="o">/</span>
</span></span><span class="line"><span class="ln">14</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>       <span class="err">├──</span> <span class="n">ntxent_loss</span><span class="o">.</span><span class="n">py</span>      <span class="c1"># NT-Xent loss</span>
</span></span><span class="line"><span class="ln">15</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>       <span class="err">└──</span> <span class="n">neg_mining_info_nce_loss</span><span class="o">.</span><span class="n">py</span>  <span class="c1"># 負樣本挖掘 InfoNCE</span>
</span></span><span class="line"><span class="ln">16</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">datasets</span><span class="o">/</span>
</span></span><span class="line"><span class="ln">17</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>   <span class="err">└──</span> <span class="n">ssl_radiomics_dataset</span><span class="o">.</span><span class="n">py</span>  <span class="c1"># SSL 資料集 (positive + negative pairs)</span>
</span></span><span class="line"><span class="ln">18</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">preprocessing</span><span class="o">/</span>
</span></span><span class="line"><span class="ln">19</span><span class="cl"><span class="err">│</span>   <span class="err">│</span>   <span class="err">└──</span> <span class="n">seed_based_crop</span><span class="o">.</span><span class="n">py</span>      <span class="c1"># SeedBasedPatchCrop (核心前處理)</span>
</span></span><span class="line"><span class="ln">20</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">transforms</span><span class="o">/</span>                 <span class="c1"># 3D 資料增強</span>
</span></span><span class="line"><span class="ln">21</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">callbacks</span><span class="o">/</span>                  <span class="c1"># 預測儲存 callback</span>
</span></span><span class="line"><span class="ln">22</span><span class="cl"><span class="err">│</span>   <span class="err">└──</span> <span class="n">run</span><span class="o">.</span><span class="n">py</span>                      <span class="c1"># 高階 API 入口 (get_features)</span>
</span></span><span class="line"><span class="ln">23</span><span class="cl"><span class="err">├──</span> <span class="n">experiments</span><span class="o">/</span>                    <span class="c1"># 實驗設定 (YAML)</span>
</span></span><span class="line"><span class="ln">24</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">pretraining</span><span class="o">/</span>                <span class="c1"># 預訓練設定</span>
</span></span><span class="line"><span class="ln">25</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">inference</span><span class="o">/</span>                  <span class="c1"># 推論設定</span>
</span></span><span class="line"><span class="ln">26</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">adaptation</span><span class="o">/</span>                 <span class="c1"># 線性探測 fine-tuning</span>
</span></span><span class="line"><span class="ln">27</span><span class="cl"><span class="err">│</span>   <span class="err">└──</span> <span class="n">baselines</span><span class="o">/</span>                  <span class="c1"># Med3D / Models Genesis 比較</span>
</span></span><span class="line"><span class="ln">28</span><span class="cl"><span class="err">├──</span> <span class="n">analysis</span><span class="o">/</span>                       <span class="c1"># 結果分析 notebooks</span>
</span></span><span class="line"><span class="ln">29</span><span class="cl"><span class="err">├──</span> <span class="n">tutorials</span><span class="o">/</span>                      <span class="c1"># 教學 notebooks</span>
</span></span><span class="line"><span class="ln">30</span><span class="cl"><span class="err">├──</span> <span class="n">docs</span><span class="o">/</span>                           <span class="c1"># MkDocs 文件網站</span>
</span></span><span class="line"><span class="ln">31</span><span class="cl"><span class="err">├──</span> <span class="n">tests</span><span class="o">/</span>                          <span class="c1"># 測試</span>
</span></span><span class="line"><span class="ln">32</span><span class="cl"><span class="err">├──</span> <span class="n">pyproject</span><span class="o">.</span><span class="n">toml</span>                  <span class="c1"># Poetry 設定 + 依賴</span>
</span></span><span class="line"><span class="ln">33</span><span class="cl"><span class="err">└──</span> <span class="n">Makefile</span>                        <span class="c1"># 開發工具指令</span>
</span></span></code></pre></div><hr>

<h2 id="3-安裝與設定" data-numberify>3. 安裝與設定<a class="anchor ms-1" href="#3-安裝與設定"></a></h2>

<h3 id="31-快速安裝-推論用" data-numberify>3.1 快速安裝 (推論用)<a class="anchor ms-1" href="#31-快速安裝-推論用"></a></h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln">1</span><span class="cl"><span class="c1"># 建立虛擬環境 (推薦)</span>
</span></span><span class="line"><span class="ln">2</span><span class="cl">conda create -n fmcib <span class="nv">python</span><span class="o">=</span>3.10 -y
</span></span><span class="line"><span class="ln">3</span><span class="cl">conda activate fmcib
</span></span><span class="line"><span class="ln">4</span><span class="cl">
</span></span><span class="line"><span class="ln">5</span><span class="cl"><span class="c1"># pip 安裝</span>
</span></span><span class="line"><span class="ln">6</span><span class="cl">pip install foundation-cancer-image-biomarker
</span></span><span class="line"><span class="ln">7</span><span class="cl">
</span></span><span class="line"><span class="ln">8</span><span class="cl"><span class="c1"># 驗證安裝</span>
</span></span><span class="line"><span class="ln">9</span><span class="cl">python -c <span class="s2">&#34;from fmcib.models import fmcib_model; print(&#39;FMCIB installed successfully&#39;)&#34;</span>
</span></span></code></pre></div>
<h3 id="32-開發者安裝-含完整原始碼" data-numberify>3.2 開發者安裝 (含完整原始碼)<a class="anchor ms-1" href="#32-開發者安裝-含完整原始碼"></a></h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="c1"># Clone repo</span>
</span></span><span class="line"><span class="ln"> 2</span><span class="cl">git clone https://github.com/AIM-Harvard/foundation-cancer-image-biomarker.git
</span></span><span class="line"><span class="ln"> 3</span><span class="cl"><span class="nb">cd</span> foundation-cancer-image-biomarker
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">
</span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="c1"># 使用 Poetry 安裝</span>
</span></span><span class="line"><span class="ln"> 6</span><span class="cl">make setup
</span></span><span class="line"><span class="ln"> 7</span><span class="cl">make install
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">
</span></span><span class="line"><span class="ln"> 9</span><span class="cl"><span class="c1"># 或手動 Poetry</span>
</span></span><span class="line"><span class="ln">10</span><span class="cl">pip install poetry
</span></span><span class="line"><span class="ln">11</span><span class="cl">poetry install
</span></span><span class="line"><span class="ln">12</span><span class="cl">
</span></span><span class="line"><span class="ln">13</span><span class="cl"><span class="c1"># 安裝 pre-commit hooks</span>
</span></span><span class="line"><span class="ln">14</span><span class="cl">make pre-commit-install
</span></span></code></pre></div>
<h3 id="33-系統需求" data-numberify>3.3 系統需求<a class="anchor ms-1" href="#33-系統需求"></a></h3>
<table>
  <thead>
      <tr>
          <th>項目</th>
          <th>推論最低需求</th>
          <th>訓練建議需求</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>RAM</td>
          <td>4 GB</td>
          <td>12 GB+</td>
      </tr>
      <tr>
          <td>CPU</td>
          <td>4 cores</td>
          <td>4+ cores</td>
      </tr>
      <tr>
          <td>GPU VRAM</td>
          <td>4 GB (可無)</td>
          <td>12 GB+</td>
      </tr>
      <tr>
          <td>OS</td>
          <td>Linux / macOS / Windows</td>
          <td>Linux (Ubuntu 20.04/22.04)</td>
      </tr>
      <tr>
          <td>Python</td>
          <td>3.9 ~ 3.11</td>
          <td>3.9 ~ 3.11</td>
      </tr>
  </tbody>
</table>

<h3 id="34-預訓練權重下載" data-numberify>3.4 預訓練權重下載<a class="anchor ms-1" href="#34-預訓練權重下載"></a></h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln">1</span><span class="cl"><span class="c1"># 自動下載 (呼叫 fmcib_model() 時自動觸發)</span>
</span></span><span class="line"><span class="ln">2</span><span class="cl"><span class="c1"># 手動下載</span>
</span></span><span class="line"><span class="ln">3</span><span class="cl">wget https://zenodo.org/records/10528450/files/model_weights.torch?download<span class="o">=</span><span class="m">1</span> -O model_weights.torch
</span></span></code></pre></div><p>權重檔案約 ~200 MB，來自 Zenodo，首次呼叫 <code>fmcib_model()</code> 會自動下載至工作目錄。</p>]]></description></item><item><title>HyenaDNA 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-hyena-dna-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-hyena-dna-tutorial/</guid><description><![CDATA[<h1 id="hyenadna-完整教學" data-numberify>HyenaDNA 完整教學<a class="anchor ms-1" href="#hyenadna-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/HazyResearch/hyena-dna" target="_blank" rel="noopener noreferrer">https://github.com/HazyResearch/hyena-dna<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 791 | <strong>Fork</strong>: 108 | <strong>License</strong>: Apache-2.0
<strong>Tags</strong>: <code>genomics</code>, <code>foundation-models</code>, <code>language-models</code>
<strong>Paper</strong>: <a href="https://arxiv.org/abs/2306.15794" target="_blank" rel="noopener noreferrer">arXiv:2306.15794<i class="fas fa-external-link-square-alt ms-1"></i></a> | <strong>HuggingFace</strong>: <a href="https://huggingface.co/LongSafari" target="_blank" rel="noopener noreferrer">LongSafari<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Primary Language</strong>: Python (含 CUDA C++ 加速核心)
<strong>最後更新</strong>: 2026-06-10</p></blockquote>

<h2 id="2-核心架構" data-numberify>2. 核心架構<a class="anchor ms-1" href="#2-核心架構"></a></h2>

<h3 id="21-整體架構圖" data-numberify>2.1 整體架構圖<a class="anchor ms-1" href="#21-整體架構圖"></a></h3>
<pre class="mermaid">

graph TB
    subgraph Input["輸入層 Input Layer"]
        DNA["DNA 序列<br/>ATCGATCG..."]
        TOK["Character Tokenizer<br/>{A=0, C=1, G=2, T=3, N=4, PAD=5}"]
        EMB["DNA Embedding Layer<br/>nn.Embedding(6, d_model)"]
    end

    subgraph Backbone["Hyena Backbone (N Layers)"]
        direction TB
        subgraph Layer["Hyena Block x N"]
            HYENA["Hyena Operator<br/>(Long Convolution + Gating)"]
            FF["Feed-Forward Network<br/>(GLU / GatedMLP)"]
            NORM1["LayerNorm"]
            NORM2["LayerNorm"]
            RES1["Residual Connection"]
            RES2["Residual Connection"]
        end
    end

    subgraph HyenaOp["Hyena Operator 內部"]
        direction LR
        PROJ["Linear Projections<br/>Q, K, V 投影"]
        FILTER["Implicit Filter<br/>(Parameterized Conv Kernel)"]
        FFT["FFT Convolution<br/>O(N log N)"]
        GATE["Element-wise Gating<br/>(Multiplicative)"]
    end

    subgraph Output["輸出層 Output Layer"]
        POOL["Pooling / Last Token"]
        DEC["Task Decoder<br/>(MLP Head)"]
        PRED["Prediction<br/>(Classification / Regression / LM)"]
    end

    DNA --> TOK --> EMB
    EMB --> NORM1 --> HYENA --> RES1
    RES1 --> NORM2 --> FF --> RES2
    RES2 --> |"Repeat N times"| NORM1

    HYENA -.-> PROJ
    PROJ -.-> FILTER
    FILTER -.-> FFT
    FFT -.-> GATE

    RES2 --> POOL --> DEC --> PRED

    style Input fill:#e1f5fe,stroke:#0288d1
    style Backbone fill:#fff3e0,stroke:#f57c00
    style HyenaOp fill:#fce4ec,stroke:#c62828
    style Output fill:#e8f5e9,stroke:#2e7d32

</pre>


<h3 id="22-hyena-operator-運作原理" data-numberify>2.2 Hyena Operator 運作原理<a class="anchor ms-1" href="#22-hyena-operator-運作原理"></a></h3>
<p>Hyena operator 的核心思想是以 <strong>隱式參數化的長卷積 (implicit long convolution)</strong> 取代 Transformer 中的 self-attention：</p>]]></description></item><item><title>medSynthesisV1 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-medsynthesisv1-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-medsynthesisv1-tutorial/</guid><description><![CDATA[<h1 id="medsynthesisv1-完整教學" data-numberify>medSynthesisV1 完整教學<a class="anchor ms-1" href="#medsynthesisv1-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/ginobilinie/medSynthesisV1" target="_blank" rel="noopener noreferrer">https://github.com/ginobilinie/medSynthesisV1<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 195 | <strong>Fork</strong>: 45 | <strong>Language</strong>: Python | <strong>License</strong>: MIT
<strong>Tags</strong>: medical-synthesis, WGAN-GP, PyTorch
<strong>論文</strong>: <a href="https://ieeexplore.ieee.org/abstract/document/8310638/" target="_blank" rel="noopener noreferrer">Medical Image Synthesis with Deep Convolutional Adversarial Networks<i class="fas fa-external-link-square-alt ms-1"></i></a> (IEEE TBME 2018)
<strong>作者</strong>: Dong Nie et al., UNC Chapel Hill / Shen Lab</p></blockquote>

<h2 id="2-核心架構" data-numberify>2. 核心架構<a class="anchor ms-1" href="#2-核心架構"></a></h2>

<h3 id="21-系統總覽" data-numberify>2.1 系統總覽<a class="anchor ms-1" href="#21-系統總覽"></a></h3>
<pre class="mermaid">

graph TD
    subgraph 資料準備
        A[原始醫學影像<br/>NIfTI / Analyze / MetaImage] --> B[extract23DPatch<br/>擷取 2D/2.5D/3D patch]
        B --> C[HDF5 檔案<br/>dataMR + dataCT keys]
    end

    subgraph 訓練迴路
        C --> D[Generator_2D_slices<br/>批次資料載入器]
        D --> E{Generator 選擇}
        E -->|whichNet=1| F1[UNet]
        E -->|whichNet=2| F2[ResUNet]
        E -->|whichNet=3| F3[UNet_LRes]
        E -->|whichNet=4| F4[ResUNet_LRes<br/>預設 推薦]

        F1 & F2 & F3 & F4 --> G[合成影像 y_hat]

        G --> H{損失函數組合}
        H --> H1[L1 / RTL1 / MSE]
        H --> H2[GDL 梯度差異損失]
        H --> H3[Adversarial Loss<br/>WGAN-GP / BCE]

        G --> I[Discriminator<br/>CNN 3-layer + FC]
        I --> H3
    end

    subgraph 推論
        J[測試影像] --> K[載入訓練好的 Generator]
        K --> L[合成輸出 CT/PET]
        L --> M[SSIM / MAE / PSNR 評估]
    end

    style F4 fill:#e1f5fe,stroke:#0288d1,stroke-width:2px
    style H3 fill:#fff3e0,stroke:#f57c00,stroke-width:2px

</pre>


<h3 id="22-四種-generator-架構比較" data-numberify>2.2 四種 Generator 架構比較<a class="anchor ms-1" href="#22-四種-generator-架構比較"></a></h3>
<table>
  <thead>
      <tr>
          <th>架構</th>
          <th>編號</th>
          <th>Encoder Block</th>
          <th>Decoder Block</th>
          <th>Long-skip Residual</th>
          <th>適用情境</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><strong>UNet</strong></td>
          <td>1</td>
          <td>UNetConvBlock</td>
          <td>UNetUpBlock</td>
          <td>無</td>
          <td>跨模態差異大（MRI→CT）</td>
      </tr>
      <tr>
          <td><strong>ResUNet</strong></td>
          <td>2</td>
          <td>residualUnit</td>
          <td>UNetUpResBlock</td>
          <td>無</td>
          <td>同上 + 更深網路需求</td>
      </tr>
      <tr>
          <td><strong>UNet_LRes</strong></td>
          <td>3</td>
          <td>UNetConvBlock</td>
          <td>UNetUpBlock</td>
          <td>有 <code>out = last + input</code></td>
          <td>同模態增強（low→high dose）</td>
      </tr>
      <tr>
          <td><strong>ResUNet_LRes</strong></td>
          <td>4</td>
          <td>residualUnit</td>
          <td>UNetUpResBlock</td>
          <td>有 <code>out = last + input</code> + Dropout</td>
          <td>同模態增強（預設推薦）</td>
      </tr>
  </tbody>
</table>
<p><strong>Long-skip Residual Connection (長跳殘差連接)</strong> 的設計邏輯：當輸入與輸出模態相似時（如 low-dose PET → standard PET），網路只需學習「差異量」(residual)，而非完整重建，收斂更快且品質更高。</p>]]></description></item><item><title>MONAI GenerativeModels 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-generativemodels-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-generativemodels-tutorial/</guid><description><![CDATA[<h1 id="monai-generativemodels-完整教學" data-numberify>MONAI GenerativeModels 完整教學<a class="anchor ms-1" href="#monai-generativemodels-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/Project-MONAI/GenerativeModels" target="_blank" rel="noopener noreferrer">https://github.com/Project-MONAI/GenerativeModels<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 760 | <strong>Forks</strong>: 109 | <strong>License</strong>: Apache-2.0
<strong>Tags</strong>: <code>anomaly-detection</code>, <code>diffusion-models</code>, <code>generative-adversarial-network</code>, <code>generative-models</code>, <code>image-synthesis</code>, <code>image-translation</code>, <code>medical-imaging</code>, <code>monai</code>, <code>mri-reconstruction</code>
<strong>語言</strong>: Python (Jupyter Notebook) | <strong>最後更新</strong>: 2026-06-05</p></blockquote>

<h2 id="2-核心架構" data-numberify>2. 核心架構<a class="anchor ms-1" href="#2-核心架構"></a></h2>

<h3 id="21-整體模組架構" data-numberify>2.1 整體模組架構<a class="anchor ms-1" href="#21-整體模組架構"></a></h3>
<pre class="mermaid">

graph TB
    subgraph MONAI_Generative["monai-generative 套件架構"]
        subgraph Networks["generative.networks 網路層"]
            direction TB
            Nets["nets/<br/>AutoencoderKL<br/>VQVAE<br/>DiffusionModelUNet<br/>PatchGAN Discriminator<br/>ControlNet<br/>SPADE Networks<br/>Transformer"]
            Blocks["blocks/<br/>SelfAttention<br/>TransformerBlock<br/>EncoderModules<br/>SPADE Norm"]
            Layers["layers/<br/>VectorQuantizer"]
            Schedulers["schedulers/<br/>DDPM<br/>DDIM<br/>PNDM"]
        end

        subgraph Inferers["generative.inferers 推論引擎"]
            DiffInf["DiffusionInferer"]
            LDMInf["LatentDiffusionInferer"]
            VQInf["VQ-VAE + Transformer Inferer"]
            CtrlInf["ControlNetInferer"]
        end

        subgraph Losses["generative.losses 損失函數"]
            AdvLoss["AdversarialLoss<br/>(hinge / vanilla / least-squares)"]
            PercLoss["PerceptualLoss<br/>(LPIPS / RadImageNet /<br/>3DMedicalNet)"]
            SpecLoss["SpectralLoss"]
        end

        subgraph Metrics["generative.metrics 評估指標"]
            FID["FID<br/>(Frechet Inception Distance)"]
            MSSSIM["MS-SSIM<br/>(Multi-Scale Structural<br/>Similarity)"]
            MMD["MMD<br/>(Maximum Mean Discrepancy)"]
            SSIM2["SSIM"]
        end

        subgraph Engines["generative.engines 訓練引擎"]
            Trainer["AdversarialTrainer<br/>(Ignite-based)"]
            PrepBatch["PrepareBatch"]
        end

        subgraph ModelZoo["model-zoo/ 預訓練模型"]
            Brain["Brain LDM"]
            CXR["Chest X-ray LDM"]
            MedNIST["MedNIST DDPM"]
        end
    end

    MONAI_Core["MONAI Core<br/>(transforms, data, metrics)"] --> Networks
    PyTorch["PyTorch"] --> Networks
    Networks --> Inferers
    Losses --> Engines
    Inferers --> Engines
    Metrics -.-> Engines

    style MONAI_Generative fill:#1a1a2e,color:#eaeaea
    style Networks fill:#16213e,color:#eaeaea
    style Inferers fill:#0f3460,color:#eaeaea
    style Losses fill:#533483,color:#eaeaea
    style Metrics fill:#e94560,color:#eaeaea
    style Engines fill:#2b6777,color:#eaeaea
    style ModelZoo fill:#52796f,color:#eaeaea

</pre>


<h3 id="22-latent-diffusion-model-ldm-流程" data-numberify>2.2 Latent Diffusion Model (LDM) 流程<a class="anchor ms-1" href="#22-latent-diffusion-model-ldm-流程"></a></h3>
<p>LDM 是目前醫學影像合成的主流架構，MONAI GenerativeModels 的 LDM 實作流程如下：</p>]]></description></item><item><title>nnU-Net 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-nnunet-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-nnunet-tutorial/</guid><description><![CDATA[<h1 id="nnu-net-完整教學" data-numberify>nnU-Net 完整教學<a class="anchor ms-1" href="#nnu-net-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/MIC-DKFZ/nnUNet" target="_blank" rel="noopener noreferrer">https://github.com/MIC-DKFZ/nnUNet<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 8,527 | <strong>Language</strong>: Python | <strong>License</strong>: Apache-2.0
<strong>Tags</strong>: segmentation, self-configuring
<strong>最新版本</strong>: v2.8.0 (pyproject.toml) / v2.4.1 (GitHub Release, 2024-04)
<strong>維護單位</strong>: German Cancer Research Center (DKFZ) — Helmholtz Imaging Applied Computer Vision Lab (ACVL)</p></blockquote>

<h2 id="2-核心架構" data-numberify>2. 核心架構<a class="anchor ms-1" href="#2-核心架構"></a></h2>

<h3 id="21-自配置管線總覽" data-numberify>2.1 自配置管線總覽<a class="anchor ms-1" href="#21-自配置管線總覽"></a></h3>
<pre class="mermaid">

flowchart TB
    subgraph INPUT["輸入層"]
        RAW["nnUNet_raw/<br/>原始影像 + 標注"]
    end

    subgraph FINGERPRINT["Stage 1: Dataset Fingerprint<br/>資料集指紋分析"]
        FP1["影像間距 Spacing"]
        FP2["體素尺寸 Voxel Size"]
        FP3["通道數 Channels"]
        FP4["強度分佈 Intensity Distribution"]
        FP5["類別比例 Class Ratios"]
    end

    subgraph PLANNING["Stage 2: Experiment Planning<br/>實驗規劃"]
        PL1["選擇網路拓撲<br/>2D / 3D_fullres / 3D_lowres / 3D_cascade"]
        PL2["決定 Patch Size"]
        PL3["決定 Batch Size"]
        PL4["決定 Normalization Scheme"]
        PL5["決定 Resampling Strategy"]
    end

    subgraph PREPROCESS["Stage 3: Preprocessing<br/>前處理"]
        PP1["Cropping 裁剪"]
        PP2["Resampling 重採樣"]
        PP3["Normalization 正規化"]
    end

    subgraph TRAINING["Stage 4: Training<br/>訓練"]
        TR1["5-Fold Cross Validation"]
        TR2["Data Augmentation<br/>batchgeneratorsv2"]
        TR3["Dice + CE Loss<br/>Deep Supervision"]
        TR4["SGD / Adam Optimizer<br/>PolyLR Scheduler"]
    end

    subgraph POSTPROCESS["Stage 5: Model Selection & Inference<br/>模型選擇與推論"]
        MS1["Best Configuration Selection"]
        MS2["Optional Ensembling"]
        MS3["Postprocessing<br/>Connected Components"]
        MS4["Sliding Window Inference"]
    end

    INPUT --> FINGERPRINT
    FINGERPRINT --> PLANNING
    PLANNING --> PREPROCESS
    PREPROCESS --> TRAINING
    TRAINING --> POSTPROCESS

    style INPUT fill:#e1f5fe
    style FINGERPRINT fill:#f3e5f5
    style PLANNING fill:#fff3e0
    style PREPROCESS fill:#e8f5e9
    style TRAINING fill:#fce4ec
    style POSTPROCESS fill:#f1f8e9

</pre>


<h3 id="22-原始碼模組結構" data-numberify>2.2 原始碼模組結構<a class="anchor ms-1" href="#22-原始碼模組結構"></a></h3>
<table>
  <thead>
      <tr>
          <th>模組</th>
          <th>路徑</th>
          <th>功能</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><strong>Dataset Conversion</strong></td>
          <td><code>nnunetv2/dataset_conversion/</code></td>
          <td>將各挑戰賽資料集轉為 nnU-Net 格式</td>
      </tr>
      <tr>
          <td><strong>Experiment Planning</strong></td>
          <td><code>nnunetv2/experiment_planning/</code></td>
          <td>指紋分析 + 實驗規劃（含 ResEnc Planner）</td>
      </tr>
      <tr>
          <td><strong>Preprocessing</strong></td>
          <td><code>nnunetv2/preprocessing/</code></td>
          <td>Cropping、Normalization、Resampling</td>
      </tr>
      <tr>
          <td><strong>Training</strong></td>
          <td><code>nnunetv2/training/</code></td>
          <td>Trainer、DA、Loss、LR Scheduler、DataLoader</td>
      </tr>
      <tr>
          <td><strong>Inference</strong></td>
          <td><code>nnunetv2/inference/</code></td>
          <td>Sliding Window、Export Prediction</td>
      </tr>
      <tr>
          <td><strong>Evaluation</strong></td>
          <td><code>nnunetv2/evaluation/</code></td>
          <td>Dice/IoU 計算、Best Configuration 搜尋</td>
      </tr>
      <tr>
          <td><strong>Ensembling</strong></td>
          <td><code>nnunetv2/ensembling/</code></td>
          <td>多模型集成</td>
      </tr>
      <tr>
          <td><strong>Postprocessing</strong></td>
          <td><code>nnunetv2/postprocessing/</code></td>
          <td>Connected Component Removal</td>
      </tr>
      <tr>
          <td><strong>ImageIO</strong></td>
          <td><code>nnunetv2/imageio/</code></td>
          <td>NIfTI / SimpleITK / TIFF / 自然影像讀寫</td>
      </tr>
      <tr>
          <td><strong>Utilities</strong></td>
          <td><code>nnunetv2/utilities/</code></td>
          <td>Label Handling、Plans Handling、DDP</td>
      </tr>
  </tbody>
</table>

<h3 id="23-trainer-變體繼承樹" data-numberify>2.3 Trainer 變體繼承樹<a class="anchor ms-1" href="#23-trainer-變體繼承樹"></a></h3>
<p>nnU-Net v2 的核心設計是以 <code>nnUNetTrainer</code> 為基底類別，透過繼承覆寫來客製化行為：</p>]]></description></item><item><title>PyFeat 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-pyfeat-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-pyfeat-tutorial/</guid><description><![CDATA[<h1 id="pyfeat-完整教學" data-numberify>PyFeat 完整教學<a class="anchor ms-1" href="#pyfeat-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/RafsanjaniHub/PyFeat" target="_blank" rel="noopener noreferrer">https://github.com/RafsanjaniHub/PyFeat<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 97 | <strong>Fork</strong>: 32 | <strong>Language</strong>: Python | <strong>License</strong>: GPL-3.0
<strong>Tags</strong>: <code>computational-biology</code>, <code>bioinformatics</code>, <code>genomics</code>, <code>proteomics</code>
<strong>Homepage</strong>: <a href="http://rafsanjani.pythonanywhere.com/" target="_blank" rel="noopener noreferrer">http://rafsanjani.pythonanywhere.com/<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>最後更新</strong>: 2025-11-30</p></blockquote>

<h2 id="2-核心架構" data-numberify>2. 核心架構<a class="anchor ms-1" href="#2-核心架構"></a></h2>

<h3 id="21-整體流程架構" data-numberify>2.1 整體流程架構<a class="anchor ms-1" href="#21-整體流程架構"></a></h3>
<pre class="mermaid">

flowchart TD
    A["FASTA 序列檔案<br/>(DNA / RNA / Protein)"] --> B["read.py<br/>讀取 FASTA + Label"]
    B --> C["generateFeatures.py<br/>特徵擷取引擎"]

    C --> D1["pseudoKNC<br/>k-mer 頻率"]
    C --> D2["k-Gap 特徵<br/>monoMono ~ triDi<br/>(8 種組合)"]
    C --> D3["Z-Curve<br/>(x, y, z 軸)"]
    C --> D4["GC Content<br/>AT/GC Ratio<br/>Cumulative Skew"]

    D1 --> E["合併特徵矩陣<br/>numpy array"]
    D2 --> E
    D3 --> E
    D4 --> E

    E --> F{"輸出選擇"}
    F -->|"fullDataset=1"| G1["fullDataset.csv<br/>全部特徵"]
    F -->|"optimumDataset=1"| G2["selectedImportantFeatures.py<br/>AdaBoost 特徵選擇"]
    F -->|"testDataset=1"| G3["testDataset.csv<br/>獨立測試集"]

    G2 --> G4["optimumDataset.csv<br/>篩選後特徵"]

    G1 --> H["runClassifiers.py<br/>10 種 ML 分類器<br/>k-Fold CV"]
    G4 --> H

    H --> I1["evaluationResults.txt"]
    H --> I2["auROC.png"]
    H --> I3["Accuracy_boxPlot.png"]

    G4 --> J["trainModel.py<br/>訓練最終模型"]
    J --> K["dumpModel.pkl"]
    K --> L["evaluateModel.py<br/>獨立驗證"]

</pre>


<h3 id="22-特徵類型詳解" data-numberify>2.2 特徵類型詳解<a class="anchor ms-1" href="#22-特徵類型詳解"></a></h3>
<p>PyFeat 支援的特徵可分為四大類：</p>]]></description></item><item><title>R2GenGPT 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-r2gengpt-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-r2gengpt-tutorial/</guid><description><![CDATA[<h1 id="r2gengpt-完整教學" data-numberify>R2GenGPT 完整教學<a class="anchor ms-1" href="#r2gengpt-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/wang-zhanyu/R2GenGPT" target="_blank" rel="noopener noreferrer">https://github.com/wang-zhanyu/R2GenGPT<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 125 | <strong>Tags</strong>: radiology, report-generation, LLM
<strong>License</strong>: BSD 3-Clause | <strong>Language</strong>: Python | <strong>Last Updated</strong>: 2025-05-18</p></blockquote>

<h2 id="2-核心架構" data-numberify>2. 核心架構<a class="anchor ms-1" href="#2-核心架構"></a></h2>

<h3 id="21-整體管線" data-numberify>2.1 整體管線<a class="anchor ms-1" href="#21-整體管線"></a></h3>
<pre class="mermaid">

flowchart TB
    subgraph Input["輸入層"]
        CXR["Chest X-Ray Image<br/>(胸部 X 光影像)"]
    end

    subgraph VE["Vision Encoder (視覺編碼器)"]
        SWIN["Swin-Base Transformer<br/>patch4-window7-224"]
        LORA_V["LoRA Adapter<br/>(Delta 模式啟用)"]
        SWIN --> LORA_V
    end

    subgraph AL["Alignment Layer (對齊層)"]
        PROJ["Linear Projection<br/>Swin hidden → LLaMA hidden"]
        LN["LayerNorm<br/>(層正規化)"]
        PROJ --> LN
    end

    subgraph PW["Prompt Wrapping (提示包裝)"]
        PROMPT["'Human: &lt;Img&gt;{img_embeds}&lt;/Img&gt;<br/>Generate a comprehensive...<br/>Assistant:'"]
    end

    subgraph LLM["Frozen LLM (凍結語言模型)"]
        EMBED["Embedding Layer<br/>(嵌入層)"]
        LLAMA["LLaMA-2-7B-Chat"]
        LORA_L["LoRA Adapter<br/>(Deep 模式啟用)"]
        EMBED --> LLAMA
        LLAMA --> LORA_L
    end

    subgraph Output["輸出層"]
        REPORT["Radiology Report<br/>(放射報告文字)"]
    end

    CXR --> SWIN
    LORA_V --> PROJ
    LN --> PROMPT
    PROMPT --> EMBED
    LORA_L --> REPORT

    style Input fill:#e1f5fe,stroke:#0288d1
    style VE fill:#f3e5f5,stroke:#7b1fa2
    style AL fill:#fff3e0,stroke:#ef6c00
    style PW fill:#e8f5e9,stroke:#2e7d32
    style LLM fill:#fce4ec,stroke:#c62828
    style Output fill:#e0f2f1,stroke:#00695c

</pre>


<h3 id="22-資料流詳解" data-numberify>2.2 資料流詳解<a class="anchor ms-1" href="#22-資料流詳解"></a></h3>
<pre class="mermaid">

sequenceDiagram
    participant IMG as X-Ray Image
    participant SWIN as Swin Encoder
    participant PROJ as Linear Projection
    participant LN as LayerNorm
    participant WRAP as Prompt Wrapper
    participant EMB as LLaMA Embedding
    participant LLM as LLaMA-2-7B

    IMG->>SWIN: pixel_values [B, 3, 224, 224]
    SWIN->>SWIN: Hierarchical feature extraction
    SWIN-->>PROJ: last_hidden_state [B, 49, 1024]
    Note over SWIN,PROJ: 或 pooler_output [B, 1, 1024]<br/>(global_only=True)
    PROJ->>LN: projected [B, 49, 4096]
    LN->>WRAP: normalized img_embeds
    WRAP->>WRAP: Concatenate: [BOS] + p_before + img_embeds + p_after
    WRAP->>EMB: text tokens → embeddings
    EMB->>LLM: [bos_embeds, img_embeds, text_embeds]
    LLM->>LLM: Autoregressive generation
    LLM-->>IMG: Generated report text

</pre>


<h3 id="23-專案檔案結構" data-numberify>2.3 專案檔案結構<a class="anchor ms-1" href="#23-專案檔案結構"></a></h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gdscript3" data-lang="gdscript3"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="n">R2GenGPT</span><span class="o">/</span>
</span></span><span class="line"><span class="ln"> 2</span><span class="cl"><span class="err">├──</span> <span class="n">train</span><span class="o">.</span><span class="n">py</span>                      <span class="c1"># 訓練/驗證/測試主入口</span>
</span></span><span class="line"><span class="ln"> 3</span><span class="cl"><span class="err">├──</span> <span class="n">configs</span><span class="o">/</span>
</span></span><span class="line"><span class="ln"> 4</span><span class="cl"><span class="err">│</span>   <span class="err">└──</span> <span class="n">config</span><span class="o">.</span><span class="n">py</span>                 <span class="c1"># Argparse 超參數定義 (~60 個參數)</span>
</span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="err">├──</span> <span class="n">models</span><span class="o">/</span>
</span></span><span class="line"><span class="ln"> 6</span><span class="cl"><span class="err">│</span>   <span class="err">└──</span> <span class="n">R2GenGPT</span><span class="o">.</span><span class="n">py</span>               <span class="c1"># 核心模型 (PyTorch Lightning Module)</span>
</span></span><span class="line"><span class="ln"> 7</span><span class="cl"><span class="err">├──</span> <span class="n">dataset</span><span class="o">/</span>
</span></span><span class="line"><span class="ln"> 8</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">data_module</span><span class="o">.</span><span class="n">py</span>            <span class="c1"># Lightning DataModule</span>
</span></span><span class="line"><span class="ln"> 9</span><span class="cl"><span class="err">│</span>   <span class="err">└──</span> <span class="n">data_helper</span><span class="o">.</span><span class="n">py</span>            <span class="c1"># 資料解析 + 報告清洗</span>
</span></span><span class="line"><span class="ln">10</span><span class="cl"><span class="err">├──</span> <span class="n">evalcap</span><span class="o">/</span>                      <span class="c1"># 評估指標 (BLEU/ROUGE/METEOR/CIDEr)</span>
</span></span><span class="line"><span class="ln">11</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">bleu</span><span class="o">/</span>
</span></span><span class="line"><span class="ln">12</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">cider</span><span class="o">/</span>
</span></span><span class="line"><span class="ln">13</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">meteor</span><span class="o">/</span>
</span></span><span class="line"><span class="ln">14</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">rouge</span><span class="o">/</span>
</span></span><span class="line"><span class="ln">15</span><span class="cl"><span class="err">│</span>   <span class="err">└──</span> <span class="n">tokenizer</span><span class="o">/</span>
</span></span><span class="line"><span class="ln">16</span><span class="cl"><span class="err">├──</span> <span class="n">lightning_tools</span><span class="o">/</span>
</span></span><span class="line"><span class="ln">17</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">callbacks</span><span class="o">.</span><span class="n">py</span>              <span class="c1"># ModelCheckpoint + TensorBoard Logger</span>
</span></span><span class="line"><span class="ln">18</span><span class="cl"><span class="err">│</span>   <span class="err">└──</span> <span class="n">optim</span><span class="o">.</span><span class="n">py</span>                  <span class="c1"># 最佳化設定</span>
</span></span><span class="line"><span class="ln">19</span><span class="cl"><span class="err">├──</span> <span class="n">scripts</span><span class="o">/</span>
</span></span><span class="line"><span class="ln">20</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="mi">1</span><span class="o">-*.</span><span class="n">sh</span> <span class="o">~</span> <span class="mi">3</span><span class="o">-*.</span><span class="n">sh</span>          <span class="c1"># IU X-Ray 訓練/測試腳本</span>
</span></span><span class="line"><span class="ln">21</span><span class="cl"><span class="err">│</span>   <span class="err">└──</span> <span class="mi">4</span><span class="o">-*.</span><span class="n">sh</span> <span class="o">~</span> <span class="mi">6</span><span class="o">-*.</span><span class="n">sh</span>          <span class="c1"># MIMIC-CXR 訓練/測試腳本</span>
</span></span><span class="line"><span class="ln">22</span><span class="cl"><span class="err">├──</span> <span class="n">data</span><span class="o">/</span>                         <span class="c1"># (需自行下載)</span>
</span></span><span class="line"><span class="ln">23</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">iu_xray</span><span class="o">/</span>
</span></span><span class="line"><span class="ln">24</span><span class="cl"><span class="err">│</span>   <span class="err">└──</span> <span class="n">mimic_cxr</span><span class="o">/</span>
</span></span><span class="line"><span class="ln">25</span><span class="cl"><span class="err">└──</span> <span class="n">requirements</span><span class="o">.</span><span class="n">txt</span>
</span></span></code></pre></div><hr>

<h2 id="3-安裝與設定" data-numberify>3. 安裝與設定<a class="anchor ms-1" href="#3-安裝與設定"></a></h2>

<h3 id="31-環境需求" data-numberify>3.1 環境需求<a class="anchor ms-1" href="#31-環境需求"></a></h3>
<table>
  <thead>
      <tr>
          <th>項目</th>
          <th>最低需求</th>
          <th>建議配置</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>GPU</td>
          <td>1x NVIDIA GPU (24GB)</td>
          <td>4x A100 (40/80GB)</td>
      </tr>
      <tr>
          <td>CUDA</td>
          <td>11.7+</td>
          <td>12.1+</td>
      </tr>
      <tr>
          <td>Python</td>
          <td>3.8+</td>
          <td>3.10</td>
      </tr>
      <tr>
          <td>RAM</td>
          <td>32GB</td>
          <td>64GB+</td>
      </tr>
      <tr>
          <td>磁碟</td>
          <td>~50GB (模型+資料)</td>
          <td>~100GB</td>
      </tr>
  </tbody>
</table>

<h3 id="32-安裝步驟" data-numberify>3.2 安裝步驟<a class="anchor ms-1" href="#32-安裝步驟"></a></h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="c1"># 1. Clone 專案</span>
</span></span><span class="line"><span class="ln"> 2</span><span class="cl">git clone https://github.com/wang-zhanyu/R2GenGPT.git
</span></span><span class="line"><span class="ln"> 3</span><span class="cl"><span class="nb">cd</span> R2GenGPT
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">
</span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="c1"># 2. 建立虛擬環境 (推薦使用 uv)</span>
</span></span><span class="line"><span class="ln"> 6</span><span class="cl">uv venv .venv --python 3.10
</span></span><span class="line"><span class="ln"> 7</span><span class="cl"><span class="nb">source</span> .venv/bin/activate
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">
</span></span><span class="line"><span class="ln"> 9</span><span class="cl"><span class="c1"># 3. 安裝依賴</span>
</span></span><span class="line"><span class="ln">10</span><span class="cl">uv pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121
</span></span><span class="line"><span class="ln">11</span><span class="cl">uv pip install -r requirements.txt
</span></span><span class="line"><span class="ln">12</span><span class="cl">
</span></span><span class="line"><span class="ln">13</span><span class="cl"><span class="c1"># requirements.txt 包含：</span>
</span></span><span class="line"><span class="ln">14</span><span class="cl"><span class="c1"># torch, peft, tensorboardX, transformers==4.30.2,</span>
</span></span><span class="line"><span class="ln">15</span><span class="cl"><span class="c1"># lightning==2.0.5, Pillow, numpy, gradio</span>
</span></span></code></pre></div>
<h3 id="33-資料集準備" data-numberify>3.3 資料集準備<a class="anchor ms-1" href="#33-資料集準備"></a></h3>

<h4 id="iu-x-ray" data-numberify>IU X-Ray<a class="anchor ms-1" href="#iu-x-ray"></a></h4>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln">1</span><span class="cl"><span class="c1"># 從 Google Drive 下載 annotation + images</span>
</span></span><span class="line"><span class="ln">2</span><span class="cl"><span class="c1"># https://drive.google.com/file/d/1c0BXEuDy8Cmm2jfN0YYGkQxFZd2ZIoLg/view</span>
</span></span><span class="line"><span class="ln">3</span><span class="cl">mkdir -p data/iu_xray
</span></span><span class="line"><span class="ln">4</span><span class="cl"><span class="c1"># 解壓後放入 data/iu_xray/</span>
</span></span></code></pre></div>
<h4 id="mimic-cxr-需-physionet-帳號" data-numberify>MIMIC-CXR (需 PhysioNet 帳號)<a class="anchor ms-1" href="#mimic-cxr-需-physionet-帳號"></a></h4>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln">1</span><span class="cl"><span class="c1"># 1. 下載預處理 annotation (作者提供)</span>
</span></span><span class="line"><span class="ln">2</span><span class="cl"><span class="c1"># https://drive.google.com/file/d/14689ztodTtrQJYs--ihB_hgsPMMNHX-H/view</span>
</span></span><span class="line"><span class="ln">3</span><span class="cl">mkdir -p data/mimic_cxr
</span></span><span class="line"><span class="ln">4</span><span class="cl">
</span></span><span class="line"><span class="ln">5</span><span class="cl"><span class="c1"># 2. 下載影像 (需先申請 PhysioNet credentialed access)</span>
</span></span><span class="line"><span class="ln">6</span><span class="cl"><span class="c1"># https://physionet.org/content/mimic-cxr-jpg/2.0.0/</span>
</span></span><span class="line"><span class="ln">7</span><span class="cl"><span class="c1"># 解壓後影像放入 data/mimic_cxr/images/</span>
</span></span></code></pre></div><p><strong>Annotation JSON (註解 JSON) 格式</strong>：</p>]]></description></item><item><title>RadFact 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-radfact-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-radfact-tutorial/</guid><description><![CDATA[<h1 id="radfact-完整教學" data-numberify>RadFact 完整教學<a class="anchor ms-1" href="#radfact-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/microsoft/RadFact" target="_blank" rel="noopener noreferrer">https://github.com/microsoft/RadFact<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 98 | <strong>Fork</strong>: 12 | <strong>License</strong>: MIT
<strong>Tags</strong>: radiology, evaluation, LLM, Microsoft
<strong>語言</strong>: Python | <strong>最後更新</strong>: 2026-06-02</p></blockquote>

<h2 id="2-核心架構" data-numberify>2. 核心架構<a class="anchor ms-1" href="#2-核心架構"></a></h2>

<h3 id="21-整體流程架構" data-numberify>2.1 整體流程架構<a class="anchor ms-1" href="#21-整體流程架構"></a></h3>
<pre class="mermaid">

flowchart TB
    subgraph INPUT["輸入層"]
        NAR["敘述性報告<br/>(Narrative Text)"]
        GND["定位報告<br/>(Grounded Phrases + Boxes)"]
    end

    subgraph PREPROCESS["前處理層"]
        R2P["Report-to-Phrases<br/>報告拆句<br/>(LLM: GPT-4)"]
        NEG["Negative Filtering<br/>負面發現過濾<br/>(僅 CT)"]
    end

    subgraph CORE["核心評估層"]
        direction TB
        NLI_FWD["正向 NLI 驗證<br/>Prediction → Ground Truth<br/>(計算 Precision)"]
        NLI_BWD["反向 NLI 驗證<br/>Ground Truth → Prediction<br/>(計算 Recall)"]
        BOX["Bounding Box<br/>空間蘊含計算<br/>(Pixel Precision ≥ 0.5)"]
    end

    subgraph ENGINE["平行處理引擎"]
        LLM_ENG["LLMEngine<br/>多端點平行處理"]
        CACHE["中間結果快取<br/>(Batch Outputs)"]
        SHARD["資料分片<br/>(Speed Factor)"]
    end

    subgraph OUTPUT["輸出層"]
        METRICS["RadFactScore<br/>6 項指標"]
        BOOT["Bootstrap CI<br/>信賴區間"]
        JSON["outputs.json<br/>完整結果"]
    end

    NAR --> R2P
    R2P --> NEG
    NEG --> NLI_FWD
    GND --> NLI_FWD
    NLI_FWD --> BOX
    NLI_BWD --> BOX
    R2P --> NLI_BWD
    GND --> NLI_BWD

    NLI_FWD -.->|"透過"| LLM_ENG
    NLI_BWD -.->|"透過"| LLM_ENG
    LLM_ENG --> CACHE
    LLM_ENG --> SHARD

    BOX --> METRICS
    METRICS --> BOOT
    BOOT --> JSON

</pre>


<h3 id="22-nli-蘊含驗證流程" data-numberify>2.2 NLI 蘊含驗證流程<a class="anchor ms-1" href="#22-nli-蘊含驗證流程"></a></h3>
<p>RadFact 的核心是<strong>雙向 NLI (Bidirectional NLI)</strong>。對每一對 (prediction, ground_truth)，執行兩次蘊含驗證：</p>]]></description></item><item><title>S&amp;D Messenger 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-sd-messenger-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-sd-messenger-tutorial/</guid><description><![CDATA[<h1 id="sd-messenger-完整教學" data-numberify>S&D Messenger 完整教學<a class="anchor ms-1" href="#sd-messenger-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/xmed-lab/SD-Messenger" target="_blank" rel="noopener noreferrer">https://github.com/xmed-lab/SD-Messenger<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 3 | <strong>Tags</strong>: stable-diffusion, medical, cross-modal
<strong>語言</strong>: Python | <strong>授權</strong>: 未標示
<strong>論文</strong>: <a href="https://arxiv.org/abs/2407.07763" target="_blank" rel="noopener noreferrer">arXiv:2407.07763<i class="fas fa-external-link-square-alt ms-1"></i></a> (2024)
<strong>最後更新</strong>: 2025-08-27</p></blockquote>

<h2 id="2-核心架構" data-numberify>2. 核心架構<a class="anchor ms-1" href="#2-核心架構"></a></h2>

<h3 id="21-整體架構圖" data-numberify>2.1 整體架構圖<a class="anchor ms-1" href="#21-整體架構圖"></a></h3>
<pre class="mermaid">

graph TB
    subgraph Input["輸入層"]
        IL["Labeled Images<br/>標註影像"]
        IU["Unlabeled Images<br/>未標註影像"]
    end

    subgraph Backbone["Backbone: MiT-B5"]
        E0["Stage 0<br/>64-ch features"]
        E1["Stage 1<br/>128-ch features"]
        E2["Stage 2<br/>320-ch features"]
        E3["Stage 3<br/>512-ch features"]
    end

    subgraph SDM["S&D Messenger Modules"]
        direction TB
        U2L3["U2L Module<br/>(512-ch, cross-attn ON)"]
        U2L2["U2L Module<br/>(320-ch, optional)"]
        U2L1["U2L Module<br/>(128-ch, optional)"]
        U2L0["U2L Module<br/>(64-ch, optional)"]
    end

    subgraph Decoder["SegFormer Decoder Head"]
        MLP4["MLP c4 → 768-d"]
        MLP3["MLP c3 → 768-d"]
        MLP2["MLP c2 → 768-d"]
        MLP1["MLP c1 → 768-d"]
        FUSE["Conv1x1 Fuse<br/>3072 → 768"]
        PRED["Conv1x1 Predict<br/>768 → num_class"]
    end

    subgraph Loss["損失函數"]
        CE["Cross-Entropy Loss<br/>+ Difficulty Weighting"]
        DICE["Dice Loss"]
        PL["Pseudo-Label Loss<br/>(unlabeled)"]
    end

    IL --> Backbone
    IU --> Backbone
    E3 --> U2L3
    E2 --> U2L2
    E1 --> U2L1
    E0 --> U2L0
    U2L3 --> MLP4
    U2L2 --> MLP3
    U2L1 --> MLP2
    U2L0 --> MLP1
    MLP4 --> FUSE
    MLP3 --> FUSE
    MLP2 --> FUSE
    MLP1 --> FUSE
    FUSE --> PRED
    PRED --> CE
    PRED --> DICE
    PRED --> PL

    style SDM fill:#e8f4fd,stroke:#1e88e5
    style Decoder fill:#fff3e0,stroke:#ff9800
    style Loss fill:#fce4ec,stroke:#e91e63

</pre>


<h3 id="22-crossattnmem--核心跨注意力模組" data-numberify>2.2 CrossAttnMem — 核心跨注意力模組<a class="anchor ms-1" href="#22-crossattnmem--核心跨注意力模組"></a></h3>
<p>S&amp;D Messenger 的核心是 <code>CrossAttnMem</code> 模組，實現 labeled-to-unlabeled 的雙向知識傳遞：</p>]]></description></item><item><title>scGen 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-scgen-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-scgen-tutorial/</guid><description><![CDATA[<h1 id="scgen-完整教學" data-numberify>scGen 完整教學<a class="anchor ms-1" href="#scgen-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/theislab/scgen" target="_blank" rel="noopener noreferrer">https://github.com/theislab/scgen<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 348 | <strong>Forks</strong>: 70 | <strong>Language</strong>: Python | <strong>License</strong>: GPL-3.0
<strong>Tags</strong>: <code>single-cell</code>, <code>perturbation</code>, <code>VAE</code>, <code>transcriptomics</code>, <code>deep-learning</code>, <code>generative-model</code>, <code>bioinformatics</code>, <code>scrna-seq</code>, <code>single-cell-genomics</code>
<strong>文件</strong>: <a href="https://scgen.readthedocs.io" target="_blank" rel="noopener noreferrer">https://scgen.readthedocs.io<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>論文</strong>: Lotfollahi et al., &ldquo;scGen predicts single-cell perturbation responses.&rdquo; <em>Nature Methods</em>, 2019.</p></blockquote>

<h2 id="2-核心架構" data-numberify>2. 核心架構<a class="anchor ms-1" href="#2-核心架構"></a></h2>

<h3 id="21-整體架構圖" data-numberify>2.1 整體架構圖<a class="anchor ms-1" href="#21-整體架構圖"></a></h3>
<pre class="mermaid">

flowchart TB
    subgraph INPUT["輸入層 Input Layer"]
        A["scRNA-seq AnnData<br/>(control + stimulated<br/>× multiple cell types)"]
    end

    subgraph PREPROCESS["前處理 Preprocessing"]
        B1["Normalize (正規化)"]
        B2["Log1p 轉換"]
        B3["HVG Selection<br/>(高變異基因篩選<br/>~7000 genes)"]
        B4["setup_anndata()<br/>註冊 batch_key +<br/>labels_key"]
    end

    subgraph VAE["SCGENVAE 模型"]
        direction TB
        subgraph ENCODER["Encoder (編碼器)"]
            E1["FCLayers<br/>(n_layers × n_hidden)"]
            E2["LeakyReLU + BatchNorm<br/>+ Dropout"]
            E3["mu (均值) / var (變異數)"]
            E4["Reparameterization<br/>(重參數化取樣)"]
        end
        Z["Latent Space z<br/>(n_latent = 100)"]
        subgraph DECODER["Decoder (解碼器)"]
            D1["FCLayers<br/>(n_layers × n_hidden)"]
            D2["Linear Output<br/>(n_latent → n_genes)"]
        end
        LOSS["Loss = MSE + KL_weight × KL_divergence"]
    end

    subgraph PREDICT["預測 / 推論 Prediction"]
        P1["avg(z_stim) - avg(z_ctrl)<br/>= delta vector"]
        P2["z_target_ctrl + delta"]
        P3["Decoder → predicted<br/>gene expression"]
    end

    subgraph OUTPUT["輸出 Output"]
        O1["Predicted AnnData<br/>(擾動預測結果)"]
        O2["Corrected AnnData<br/>(批次校正結果)"]
        O3["R² Plots<br/>(驗證圖表)"]
    end

    A --> B1 --> B2 --> B3 --> B4
    B4 --> ENCODER
    ENCODER --> Z
    Z --> DECODER
    DECODER --> LOSS
    LOSS -->|"訓練完成"| PREDICT
    Z --> P1
    P1 --> P2
    P2 --> P3
    P3 --> O1
    Z -->|"batch_removal()"| O2
    O1 --> O3

</pre>


<h3 id="22-模組結構" data-numberify>2.2 模組結構<a class="anchor ms-1" href="#22-模組結構"></a></h3>
<p>scGen 的程式碼結構極為精簡，僅包含 5 個核心檔案：</p>]]></description></item><item><title>scGPT 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-scgpt-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-scgpt-tutorial/</guid><description><![CDATA[<h1 id="scgpt-完整教學" data-numberify>scGPT 完整教學<a class="anchor ms-1" href="#scgpt-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/bowang-lab/scGPT" target="_blank" rel="noopener noreferrer">https://github.com/bowang-lab/scGPT<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 1577 | <strong>Tags</strong>: single-cell, foundation-model
<strong>License</strong>: MIT | <strong>Language</strong>: Python (Jupyter Notebook) | <strong>Version</strong>: 0.2.5
<strong>Documentation</strong>: <a href="https://scgpt.readthedocs.io/en/latest/" target="_blank" rel="noopener noreferrer">https://scgpt.readthedocs.io/en/latest/<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Paper</strong>: <em>scGPT: Towards Building a Foundation Model for Single-Cell Multi-omics Using Generative AI</em> (Nature Methods, 2024)</p></blockquote>

<h2 id="2-核心架構" data-numberify>2. 核心架構<a class="anchor ms-1" href="#2-核心架構"></a></h2>

<h3 id="21-整體架構圖" data-numberify>2.1 整體架構圖<a class="anchor ms-1" href="#21-整體架構圖"></a></h3>
<pre class="mermaid">

flowchart TB
    subgraph INPUT["輸入層 Input Layer"]
        RAW["scRNA-seq / scATAC-seq<br/>Raw Count Matrix"]
        PREP["Preprocessor<br/>normalize + log1p + binning"]
        RAW --> PREP
    end

    subgraph TOKENIZE["Token 化 Tokenization"]
        GV["GeneVocab<br/>基因詞彙表<br/>gene name → token ID"]
        GE["GeneEncoder<br/>Gene Embedding"]
        VE["ValueEncoder<br/>Expression Value Embedding"]
        BE["BatchEncoder<br/>Batch Label Embedding<br/>(optional)"]
        GV --> GE
        PREP --> VE
        PREP --> GV
    end

    subgraph TRANSFORMER["Transformer Backbone"]
        EMB["Gene Emb + Value Emb + Batch Emb<br/>→ Combined Embedding"]
        CLS["[CLS] Token<br/>Cell-level Representation"]
        LAYERS["N × Transformer Encoder Layer<br/>(Flash Attention optional)"]
        DSBN["DSBN<br/>Domain-Specific<br/>Batch Normalization"]
        GE --> EMB
        VE --> EMB
        BE --> EMB
        CLS --> LAYERS
        EMB --> LAYERS
        DSBN -.-> LAYERS
    end

    subgraph HEADS["下游任務頭 Task Heads"]
        MVC["MVC Head<br/>Masked Value<br/>Prediction"]
        DAB["DAB Head<br/>Domain Adaptation<br/>via Batch Discriminator"]
        CLF["Classification Head<br/>Cell Type Annotation"]
        GRN_H["GRN Head<br/>Attention-based<br/>Gene Regulation"]
        PERT["Perturbation Head<br/>Gene Perturbation<br/>Prediction"]
    end

    LAYERS --> MVC
    LAYERS --> DAB
    LAYERS --> CLF
    LAYERS --> GRN_H
    LAYERS --> PERT

    style INPUT fill:#e8f4f8,stroke:#2196F3
    style TOKENIZE fill:#fff3e0,stroke:#FF9800
    style TRANSFORMER fill:#f3e5f5,stroke:#9C27B0
    style HEADS fill:#e8f5e9,stroke:#4CAF50

</pre>


<h3 id="22-關鍵設計決策" data-numberify>2.2 關鍵設計決策<a class="anchor ms-1" href="#22-關鍵設計決策"></a></h3>
<p><strong>基因作為 Token (Gene-as-Token)</strong>：與 NLP 中的 word token 類似，scGPT 將每個基因視為一個 token。每個細胞的基因表達譜就是一條「句子」，其中 token 順序由非零基因的排列決定。</p>]]></description></item><item><title>SDMetrics 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-sdmetrics-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-sdmetrics-tutorial/</guid><description><![CDATA[<h1 id="sdmetrics-完整教學" data-numberify>SDMetrics 完整教學<a class="anchor ms-1" href="#sdmetrics-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/sdv-dev/SDMetrics" target="_blank" rel="noopener noreferrer">https://github.com/sdv-dev/SDMetrics<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 261 | <strong>Forks</strong>: 52 | <strong>License</strong>: MIT
<strong>Language</strong>: Python | <strong>Last Updated</strong>: 2026-06-09
<strong>Tags</strong>: <code>synthetic-data</code>, <code>metrics</code>, <code>quality</code>
<strong>Documentation</strong>: <a href="https://docs.sdv.dev/sdmetrics" target="_blank" rel="noopener noreferrer">https://docs.sdv.dev/sdmetrics<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>DOI</strong>: 10.5281/zenodo.14279167</p></blockquote>

<h2 id="2-核心架構-core-architecture" data-numberify>2. 核心架構 (Core Architecture)<a class="anchor ms-1" href="#2-核心架構-core-architecture"></a></h2>

<h3 id="21-四層指標體系" data-numberify>2.1 四層指標體系<a class="anchor ms-1" href="#21-四層指標體系"></a></h3>
<p>SDMetrics 的指標 (metric) 架構分為四個粒度層級 (granularity levels)，從單一欄位到多表關聯：</p>]]></description></item><item><title>Simulants 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-simulants-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-simulants-tutorial/</guid><description><![CDATA[<h1 id="simulants-完整教學" data-numberify>Simulants 完整教學<a class="anchor ms-1" href="#simulants-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/mdsol/Simulants" target="_blank" rel="noopener noreferrer">https://github.com/mdsol/Simulants<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 2 | <strong>Language</strong>: Python | <strong>License</strong>: MIT
<strong>Tags</strong>: clinical-trial, baseline, Medidata
<strong>最後更新</strong>: 2024-09-20
<strong>維護者</strong>: Mandis Beigi — Medidata Solutions (Dassault Systemes)</p></blockquote>

<h2 id="2-核心架構" data-numberify>2. 核心架構<a class="anchor ms-1" href="#2-核心架構"></a></h2>

<h3 id="21-系統架構圖" data-numberify>2.1 系統架構圖<a class="anchor ms-1" href="#21-系統架構圖"></a></h3>
<pre class="mermaid">

graph TD
    subgraph 輸入層 Input Layer
        A[CSV 原始資料<br/>Raw Tabular Data] --> B[uci_config.py<br/>設定檔 Config]
    end

    subgraph 前處理層 Preprocessing
        B --> C[preprocessor_lib.py]
        C --> C1[Label Encoding<br/>標籤編碼]
        C --> C2[One-Hot Encoding<br/>獨熱編碼]
        C --> C3[Imputation<br/>缺值填補]
        C --> C4[k-Anonymity<br/>K 匿名化]
    end

    subgraph 合成核心 Synthesis Core
        C1 --> D[synthesis_wrapper.py]
        C2 --> D
        C3 --> D
        C4 --> D
        D --> E[synthesis_lib.py]
        E --> E1[相關性分析<br/>Correlation Analysis]
        E --> E2[降維嵌入<br/>Dim Reduction]
        E --> E3[KNN 鄰域抽樣<br/>Neighbor Sampling]
        E --> E4[噪音注入<br/>Noise Injection]
        E --> E5[去重保護<br/>Deduplication]
    end

    subgraph 降維引擎 dimanalysis_lib.py
        E2 --> F1[t-SNE + Gower]
        E2 --> F2[PCA]
        E2 --> F3[ICA]
        E2 --> F4[CCA]
    end

    subgraph 驗證層 Analytics
        E5 --> G[analytics_wrapper.py]
        G --> G1[analytics_lib.py]
        G1 --> H1[Fisher Exact Test<br/>費雪精確檢定]
        G1 --> H2[KS Test<br/>KS 檢定]
        G1 --> H3[Silhouette Score<br/>輪廓係數]
        G1 --> H4[RF / ET Classifier<br/>分類器鑑別]
        G1 --> H5[BOW Histogram<br/>直方圖距離]
        G --> G2[visualization_lib.py]
        G2 --> I1[PCA Scatter Plot]
        G2 --> I2[Correlation Heatmap]
        G2 --> I3[PDF Report]
    end

    subgraph 輸出層 Output
        E5 --> J1[合成 CSV<br/>Synthetic CSV]
        I3 --> J2[驗證報告 PDF<br/>Validation Report]
        G1 --> J3[統計 CSV<br/>Statistics CSVs]
    end

    style E fill:#e1f5fe,stroke:#0288d1
    style G fill:#fff3e0,stroke:#ef6c00

</pre>


<h3 id="22-檔案結構" data-numberify>2.2 檔案結構<a class="anchor ms-1" href="#22-檔案結構"></a></h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="ln"> 1</span><span class="cl">Simulants/
</span></span><span class="line"><span class="ln"> 2</span><span class="cl">├── uci_demo.py              # 主程式進入點 (Entry Point)
</span></span><span class="line"><span class="ln"> 3</span><span class="cl">├── uci_config.py            # 設定檔：路徑、演算法參數、驗證開關
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">├── synthesis_wrapper.py     # 合成流程協調器 (Orchestrator)
</span></span><span class="line"><span class="ln"> 5</span><span class="cl">├── synthesis_lib.py         # 核心合成演算法 (Core Synthesis)
</span></span><span class="line"><span class="ln"> 6</span><span class="cl">├── analytics_wrapper.py     # 驗證流程協調器
</span></span><span class="line"><span class="ln"> 7</span><span class="cl">├── analytics_lib.py         # 統計檢定與分類器驗證
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">├── preprocessor_lib.py      # 前處理：編碼、填補、型別判斷
</span></span><span class="line"><span class="ln"> 9</span><span class="cl">├── dimanalysis_lib.py       # 降維方法集合 (t-SNE/PCA/ICA/CCA)
</span></span><span class="line"><span class="ln">10</span><span class="cl">├── k_anonymity.py           # k-Anonymity 實作
</span></span><span class="line"><span class="ln">11</span><span class="cl">├── bow_lib.py               # Bag-of-Words 直方圖表示
</span></span><span class="line"><span class="ln">12</span><span class="cl">├── visualization_lib.py     # 視覺化：散佈圖、相關熱圖
</span></span><span class="line"><span class="ln">13</span><span class="cl">├── utilities_lib.py         # 通用工具函式
</span></span><span class="line"><span class="ln">14</span><span class="cl">├── requirements.txt         # Python 依賴
</span></span><span class="line"><span class="ln">15</span><span class="cl">├── uci-heart-disease/       # 範例資料集 (UCI Heart Disease)
</span></span><span class="line"><span class="ln">16</span><span class="cl">│   ├── processed.cleveland.csv
</span></span><span class="line"><span class="ln">17</span><span class="cl">│   └── heart-disease.names.txt
</span></span><span class="line"><span class="ln">18</span><span class="cl">└── factbook.yaml            # 專案聯絡資訊
</span></span></code></pre></div>
<h3 id="23-合成演算法流程" data-numberify>2.3 合成演算法流程<a class="anchor ms-1" href="#23-合成演算法流程"></a></h3>
<pre class="mermaid">

flowchart LR
    A[原始 CSV] --> B[k-Anonymity<br/>移除低頻類別]
    B --> C[Label Encoding<br/>+ Imputation]
    C --> D[One-Hot<br/>Encoding]
    D --> E[相關性偵測<br/>Pearson / PB / Chi2 / Cramer V]
    E --> F[t-SNE / PCA<br/>降維至 2D]
    F --> G[KNN 找<br/>K 近鄰]
    G --> H{是否為<br/>離群值?}
    H -->|是| I[跳過]
    H -->|否| J[逐欄位從<br/>鄰域隨機取值]
    J --> K[Co-Segregation<br/>高相關欄位綁定]
    K --> L[Gaussian Noise<br/>乘性雜訊]
    L --> M[移除與原始<br/>重複的紀錄]
    M --> N[One-Hot<br/>Decode]
    N --> O[合成 CSV 輸出]

</pre>

<hr>

<h2 id="3-安裝與設定" data-numberify>3. 安裝與設定<a class="anchor ms-1" href="#3-安裝與設定"></a></h2>

<h3 id="31-環境需求" data-numberify>3.1 環境需求<a class="anchor ms-1" href="#31-環境需求"></a></h3>
<ul>
<li>Python 3.8 以上</li>
<li>建議使用虛擬環境隔離</li>
</ul>

<h3 id="32-安裝步驟" data-numberify>3.2 安裝步驟<a class="anchor ms-1" href="#32-安裝步驟"></a></h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="c1"># 1. Clone 專案</span>
</span></span><span class="line"><span class="ln"> 2</span><span class="cl">git clone https://github.com/mdsol/Simulants.git
</span></span><span class="line"><span class="ln"> 3</span><span class="cl"><span class="nb">cd</span> Simulants
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">
</span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="c1"># 2. 建立虛擬環境（推薦使用 uv）</span>
</span></span><span class="line"><span class="ln"> 6</span><span class="cl">uv venv .venv --python 3.10
</span></span><span class="line"><span class="ln"> 7</span><span class="cl"><span class="nb">source</span> .venv/bin/activate
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">
</span></span><span class="line"><span class="ln"> 9</span><span class="cl"><span class="c1"># 3. 安裝依賴</span>
</span></span><span class="line"><span class="ln">10</span><span class="cl"><span class="c1"># 注意：requirements.txt 鎖定了較舊的版本，建議手動安裝核心套件</span>
</span></span><span class="line"><span class="ln">11</span><span class="cl">uv pip install numpy pandas scikit-learn scipy matplotlib seaborn <span class="se">\
</span></span></span><span class="line"><span class="ln">12</span><span class="cl"><span class="se"></span>    gower lifelines umap-learn sas7bdat pynndescent
</span></span></code></pre></div><blockquote>
<p><strong>注意</strong>：<code>requirements.txt</code> 中的版本較舊（如 <code>numpy==1.22</code>、<code>pandas==1.2.4</code>、<code>scikit-learn==1.0.1</code>），在 Python 3.11+ 可能無法直接安裝。建議去除版本鎖定或使用上述手動安裝方式。</p>]]></description></item><item><title>SmartNoise SDK 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-smartnoise-sdk-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-smartnoise-sdk-tutorial/</guid><description><![CDATA[<h1 id="smartnoise-sdk-完整教學" data-numberify>SmartNoise SDK 完整教學<a class="anchor ms-1" href="#smartnoise-sdk-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/opendp/smartnoise-sdk" target="_blank" rel="noopener noreferrer">https://github.com/opendp/smartnoise-sdk<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 296 | <strong>Language</strong>: Python | <strong>License</strong>: MIT
<strong>Tags</strong>: <code>differential-privacy</code>, <code>privacy</code>, <code>opendp</code>, <code>smartnoise</code>
<strong>Python</strong>: 3.10 - 3.14 | <strong>最後更新</strong>: 2026-05</p></blockquote>

<h2 id="2-核心架構" data-numberify>2. 核心架構<a class="anchor ms-1" href="#2-核心架構"></a></h2>

<h3 id="21-整體架構圖" data-numberify>2.1 整體架構圖<a class="anchor ms-1" href="#21-整體架構圖"></a></h3>
<pre class="mermaid">

graph TB
    subgraph "SmartNoise SDK"
        direction TB

        subgraph SQL["smartnoise-sql<br/>差分隱私 SQL 查詢"]
            SQL_PARSER["SQL Parser<br/>(ANTLR4 語法剖析)"]
            SQL_REWRITER["Private Rewriter<br/>(查詢改寫引擎)"]
            SQL_MECH["DP Mechanisms<br/>(Laplace / Gaussian)"]
            SQL_ODO["Odometer<br/>(隱私預算追蹤)"]
            SQL_PARSER --> SQL_REWRITER
            SQL_REWRITER --> SQL_MECH
            SQL_MECH --> SQL_ODO
        end

        subgraph SYNTH["smartnoise-synth<br/>差分隱私合成器"]
            SYNTH_BASE["Base Synthesizer<br/>(統一介面)"]
            SYNTH_STAT["統計方法"]
            SYNTH_DL["深度學習方法"]
            SYNTH_BASE --> SYNTH_STAT
            SYNTH_BASE --> SYNTH_DL
            SYNTH_STAT --> MWEM["MWEM"]
            SYNTH_STAT --> MST["MST"]
            SYNTH_STAT --> AIM["AIM"]
            SYNTH_DL --> DPCTGAN["DP-CTGAN"]
            SYNTH_DL --> PATECTGAN["PATE-CTGAN"]
            SYNTH_DL --> PATEGAN["PATE-GAN"]
            SYNTH_STAT --> QUAIL["QUAIL"]
        end

        subgraph EVAL["sneval<br/>品質評估"]
            EVAL_SINGLE["Single-Table Metrics<br/>(平均值/中位數偏差)"]
            EVAL_COMPARE["Comparison Metrics<br/>(MAE / MPE in Count)"]
        end

        subgraph TRANSFORM["Transform Pipeline<br/>資料前處理"]
            T_BIN["Bin (離散化)"]
            T_LABEL["Label Encode"]
            T_ONEHOT["One-Hot Encode"]
            T_CLAMP["Clamp (截斷)"]
            T_ANON["Anonymization"]
        end
    end

    subgraph BACKENDS["後端資料來源"]
        PD["Pandas DataFrame"]
        PG["PostgreSQL"]
        SPARK["Apache Spark"]
        BQ["BigQuery"]
        MYSQL["MySQL"]
        SQLITE["SQLite"]
    end

    subgraph OPENDP["OpenDP Library<br/>(底層 DP 演算法)"]
        DP_CORE["核心 DP 機制"]
    end

    BACKENDS --> SQL
    SQL --> OPENDP
    SYNTH --> OPENDP
    TRANSFORM --> SYNTH
    SYNTH --> EVAL

    style SQL fill:#e1f5fe,stroke:#0288d1
    style SYNTH fill:#f3e5f5,stroke:#7b1fa2
    style EVAL fill:#e8f5e9,stroke:#388e3c
    style TRANSFORM fill:#fff3e0,stroke:#f57c00
    style OPENDP fill:#fce4ec,stroke:#c62828

</pre>


<h3 id="22-合成器演算法比較" data-numberify>2.2 合成器演算法比較<a class="anchor ms-1" href="#22-合成器演算法比較"></a></h3>
<p>SmartNoise 提供 7 種差分隱私合成器，依底層技術分為三大類：</p>]]></description></item><item><title>synthcity 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-synthcity-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-synthcity-tutorial/</guid><description><![CDATA[<h1 id="synthcity-完整教學" data-numberify>synthcity 完整教學<a class="anchor ms-1" href="#synthcity-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/vanderschaarlab/synthcity" target="_blank" rel="noopener noreferrer">https://github.com/vanderschaarlab/synthcity<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 664 | <strong>Fork</strong>: 94 | <strong>License</strong>: Apache-2.0
<strong>Tags</strong>: <code>synthetic-data</code>, <code>privacy</code>, <code>fairness</code>, <code>pytorch</code>, <code>tabular-data</code>, <code>generative-model</code>
<strong>最新版本</strong>: v0.2.12 (2025-05-08)
<strong>論文</strong>: <a href="https://arxiv.org/abs/2301.07573" target="_blank" rel="noopener noreferrer">arXiv:2301.07573<i class="fas fa-external-link-square-alt ms-1"></i></a></p></blockquote>

<h2 id="2-核心架構" data-numberify>2. 核心架構<a class="anchor ms-1" href="#2-核心架構"></a></h2>

<h3 id="21-系統架構圖" data-numberify>2.1 系統架構圖<a class="anchor ms-1" href="#21-系統架構圖"></a></h3>
<pre class="mermaid">

graph TB
    subgraph Input["輸入層 Input Layer"]
        RAW["原始資料<br/>Raw Data"]
        RAW --> GDL["GenericDataLoader"]
        RAW --> SDL["SurvivalAnalysisDataLoader"]
        RAW --> TDL["TimeSeriesDataLoader"]
        RAW --> IDL["ImageDataLoader"]
    end

    subgraph PluginRegistry["Plugin 註冊中心"]
        PR["Plugins()"]
        PR -->|"categories=generic"| GEN["Generic Plugins<br/>CTGAN, TVAE, NFlow, ARF,<br/>DDPM, GReaT, BN, RTVAE..."]
        PR -->|"categories=privacy"| PRIV["Privacy Plugins<br/>AdsGAN, DP-GAN, PATEGAN,<br/>PrivBayes, DECAF, AIM"]
        PR -->|"categories=survival"| SURV["Survival Plugins<br/>SurvivalGAN, SurVAE,<br/>Survival-CTGAN"]
        PR -->|"categories=time_series"| TS["Time Series Plugins<br/>TimeGAN, FourierFlows,<br/>TimeVAE"]
    end

    subgraph Training["訓練與生成"]
        FIT["model.fit(dataloader)"]
        GEN2["model.generate(count=N)"]
        FIT --> GEN2
    end

    subgraph Evaluation["評估引擎 Metrics Engine"]
        BENCH["Benchmarks.evaluate()"]
        BENCH --> M1["eval_sanity<br/>基本健全性"]
        BENCH --> M2["eval_statistical<br/>統計一致性"]
        BENCH --> M3["eval_privacy<br/>隱私風險"]
        BENCH --> M4["eval_detection<br/>合成偵測"]
        BENCH --> M5["eval_performance<br/>下游效能"]
        BENCH --> M6["eval_attacks<br/>攻擊模擬"]
    end

    GDL --> FIT
    SDL --> FIT
    TDL --> FIT
    IDL --> FIT
    GEN2 --> BENCH

    style Input fill:#e1f5fe,stroke:#0288d1
    style PluginRegistry fill:#f3e5f5,stroke:#7b1fa2
    style Training fill:#e8f5e9,stroke:#388e3c
    style Evaluation fill:#fff3e0,stroke:#f57c00

</pre>


<h3 id="22-plugin-機制" data-numberify>2.2 Plugin 機制<a class="anchor ms-1" href="#22-plugin-機制"></a></h3>
<p>synthcity 的核心設計是 <strong>Plugin Pattern (插件模式)</strong>：每個生成器都是一個繼承自 <code>Plugin</code> 基底類別的獨立模組。所有生成器共享相同的介面：</p>]]></description></item><item><title>synthEHRella 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-synthehrella-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-synthehrella-tutorial/</guid><description><![CDATA[<h1 id="synthehrella-完整教學" data-numberify>synthEHRella 完整教學<a class="anchor ms-1" href="#synthehrella-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/chenxran/synthEHRella" target="_blank" rel="noopener noreferrer">https://github.com/chenxran/synthEHRella<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 18 | <strong>Language</strong>: Python | <strong>License</strong>: MIT
<strong>Tags</strong>: <code>EHR</code>, <code>benchmark</code>, <code>synthetic</code>
<strong>論文</strong>: Chen X, Wu Z et al. (2025). <em>Generating synthetic electronic health record data: a methodological scoping review with benchmarking on phenotype data and open-source software.</em> JAMIA, 32(7), 1227-1240.
<strong>最後更新</strong>: 2026-04-09</p></blockquote>

<h2 id="2-核心架構" data-numberify>2. 核心架構<a class="anchor ms-1" href="#2-核心架構"></a></h2>

<h3 id="21-四步驟-pipeline" data-numberify>2.1 四步驟 Pipeline<a class="anchor ms-1" href="#21-四步驟-pipeline"></a></h3>
<p>SynthEHRella 的核心設計是一條四步驟的標準化 pipeline，每個步驟都有獨立的 CLI 入口：</p>]]></description></item><item><title>Synthetic Data Generator (SDG) 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-synthetic-data-generator-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-synthetic-data-generator-tutorial/</guid><description><![CDATA[<h1 id="synthetic-data-generator-sdg-完整教學" data-numberify>Synthetic Data Generator (SDG) 完整教學<a class="anchor ms-1" href="#synthetic-data-generator-sdg-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/SDM-TIB/Synthetic-Data-Generator" target="_blank" rel="noopener noreferrer">https://github.com/SDM-TIB/Synthetic-Data-Generator<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 3 | <strong>Language</strong>: Python | <strong>License</strong>: MIT
<strong>Tags</strong>: <code>breast-cancer</code>, <code>csv</code>, <code>data-generator</code>, <code>process-based</code>, <code>rdf</code>, <code>sql</code>
<strong>最後更新</strong>: 2025-11-20</p></blockquote>

<h2 id="2-核心架構" data-numberify>2. 核心架構<a class="anchor ms-1" href="#2-核心架構"></a></h2>

<h3 id="21-系統架構圖" data-numberify>2.1 系統架構圖<a class="anchor ms-1" href="#21-系統架構圖"></a></h3>
<pre class="mermaid">

graph TB
    subgraph Input["輸入參數"]
        N["患者數量<br/>-n patients"]
        P["突變機率<br/>-p mutation_prob"]
    end

    subgraph Docker["Docker Container (MySQL 8.1)"]
        subgraph Init["初始化階段"]
            SQL_SCHEMA["table_structure.sql<br/>建立 11 張表 +<br/>66 種化療方案 +<br/>30 種 CUI 描述"]
            DB["MySQL 8.1<br/>synth database"]
            SQL_SCHEMA --> DB
        end

        subgraph Gen["資料生成階段 (SDG.py)"]
            direction TB
            DEMO["1. 人口統計<br/>年齡 ~ N(57, 10)"]
            TUMOR["2. 腫瘤分型<br/>PP/PN/NP/NN"]
            STAGE["3. TNM 分期<br/>Stage 0-IV"]
            IHC["4. IHC 標記<br/>ER/PR/HER2/Ki67"]
            NEO["5. 新輔助化療<br/>3-5 週期"]
            SURG["6. 手術<br/>Mastectomy/Partial"]
            ADJ["7. 輔助化療<br/>3-20 週期"]
            RADIO["8. 放射治療<br/>劑量 ~ N(46, 8.4) Gy"]
            COMOR["9. 共病症<br/>17 類"]
            ORAL["10. 口服藥物<br/>15 種"]
            FAM["11. 家族史<br/>30 種 CUI"]

            DEMO --> TUMOR --> STAGE --> IHC
            IHC --> NEO --> SURG --> ADJ --> RADIO
            RADIO --> COMOR --> ORAL --> FAM
        end

        Gen -->|INSERT| DB
    end

    N --> Gen
    P --> Gen

    subgraph Output["三格式輸出 → ./data/"]
        CSV["CSV<br/>每表一個 .csv"]
        RDF_OUT["RDF (N-Triples)<br/>synth_data.nt<br/>via SDM-RDFizer"]
        SQL_DUMP["SQL Dump<br/>synth_data.sql.gz"]
    end

    DB -->|mysqldump| SQL_DUMP
    DB -->|SELECT *| CSV
    DB -->|RML mapping.ttl<br/>+ SDM-RDFizer| RDF_OUT

    style Input fill:#e1f5fe,stroke:#0288d1
    style Docker fill:#fff3e0,stroke:#f57c00
    style Output fill:#e8f5e9,stroke:#388e3c
    style Gen fill:#fce4ec,stroke:#c62828

</pre>


<h3 id="22-關鍵機率分佈參數" data-numberify>2.2 關鍵機率分佈參數<a class="anchor ms-1" href="#22-關鍵機率分佈參數"></a></h3>
<p>SDG 的核心是一組 <strong>來自真實族群統計的機率分佈</strong>，以下列出最重要的幾個：</p>]]></description></item><item><title>Synthetic-CT-generation-from-MRI-using-3D-transformer-based-denoising-diffusion-model 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-synthetic-ct-generation-from-mri-using-3d-transformer-based-denoising-diffusion-model-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-synthetic-ct-generation-from-mri-using-3d-transformer-based-denoising-diffusion-model-tutorial/</guid><description><![CDATA[<h1 id="synthetic-ct-generation-from-mri-using-3d-transformer-based-denoising-diffusion-model-完整教學" data-numberify>Synthetic-CT-generation-from-MRI-using-3D-transformer-based-denoising-diffusion-model 完整教學<a class="anchor ms-1" href="#synthetic-ct-generation-from-mri-using-3d-transformer-based-denoising-diffusion-model-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/shaoyanpan/Synthetic-CT-generation-from-MRI-using-3D-transformer-based-denoising-diffusion-model" target="_blank" rel="noopener noreferrer">https://github.com/shaoyanpan/Synthetic-CT-generation-from-MRI-using-3D-transformer-based-denoising-diffusion-model<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 67 | <strong>Fork</strong>: 8 | <strong>License</strong>: MIT
<strong>Tags</strong>: diffusion, 3D-transformer, MRI-CT
<strong>論文</strong>: <a href="https://aapm.onlinelibrary.wiley.com/doi/abs/10.1002/mp.16847" target="_blank" rel="noopener noreferrer">Medical Physics (2024)<i class="fas fa-external-link-square-alt ms-1"></i></a> | <a href="https://arxiv.org/abs/2305.19467" target="_blank" rel="noopener noreferrer">arXiv 預印本<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>主要語言</strong>: Python 3.8 | <strong>框架</strong>: PyTorch + MONAI
<strong>最後更新</strong>: 2026-05-10</p></blockquote>

<h2 id="2-核心架構" data-numberify>2. 核心架構<a class="anchor ms-1" href="#2-核心架構"></a></h2>

<h3 id="21-整體管線" data-numberify>2.1 整體管線<a class="anchor ms-1" href="#21-整體管線"></a></h3>
<pre class="mermaid">

flowchart TB
    subgraph Input["輸入準備"]
        MRI["MRI 影像<br/>(Condition)"]
        NOISE["高斯雜訊<br/>x_T ~ N(0,I)"]
    end

    subgraph Forward["Forward Process<br/>(訓練時)"]
        CT_REAL["真實 CT 影像<br/>x_0"]
        ADD_NOISE["逐步加噪<br/>q(x_t | x_0)"]
        CT_REAL --> ADD_NOISE
        NOISE_SCHED["Linear Beta Schedule<br/>1000 steps"]
        NOISE_SCHED --> ADD_NOISE
    end

    subgraph Model["3D Swin-Transformer UNet"]
        direction TB
        ENC1["Encoder Block 1<br/>64ch, ResBlock x2"]
        ENC2["Encoder Block 2<br/>128ch, SwinTransformer"]
        ENC3["Encoder Block 3<br/>192ch, SwinTransformer"]
        ENC4["Encoder Block 4<br/>256ch, SwinTransformer"]
        MID["Middle Block<br/>256ch, SwinTransformer"]
        DEC4["Decoder Block 4<br/>256ch + Skip"]
        DEC3["Decoder Block 3<br/>192ch + Skip"]
        DEC2["Decoder Block 2<br/>128ch + Skip"]
        DEC1["Decoder Block 1<br/>64ch + Skip"]
        
        ENC1 --> ENC2 --> ENC3 --> ENC4 --> MID
        MID --> DEC4 --> DEC3 --> DEC2 --> DEC1
        ENC4 -.->|skip| DEC4
        ENC3 -.->|skip| DEC3
        ENC2 -.->|skip| DEC2
        ENC1 -.->|skip| DEC1
    end

    subgraph TimeEmb["Timestep Embedding"]
        T["t (當前步驟)"]
        SINCOS["Sinusoidal Encoding"]
        MLP_T["MLP Projection"]
        T --> SINCOS --> MLP_T
    end

    subgraph Reverse["Reverse Process<br/>(推論時)"]
        DENOISE["反覆去噪<br/>p(x_{t-1} | x_t, MRI)"]
        SYNTH_CT["合成 CT<br/>x_0"]
        DENOISE --> SYNTH_CT
    end

    MRI --> Model
    ADD_NOISE --> Model
    NOISE --> DENOISE
    MRI --> DENOISE
    MLP_T --> Model
    Model --> |"預測 noise ε_θ"| Reverse

</pre>


<h3 id="22-3d-swin-transformer-在-unet-中的角色" data-numberify>2.2 3D Swin Transformer 在 UNet 中的角色<a class="anchor ms-1" href="#22-3d-swin-transformer-在-unet-中的角色"></a></h3>
<p>傳統 DDPM UNet 在低解析度 feature map 使用 global self-attention，但這在 3D 體積中記憶體開銷極大。本專案以 <strong>3D Swin Transformer Block</strong> 取代：</p>]]></description></item><item><title>T-SYNTH (tsynth-release) 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-tsynth-release-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-tsynth-release-tutorial/</guid><description><![CDATA[<h1 id="t-synth-tsynth-release-完整教學" data-numberify>T-SYNTH (tsynth-release) 完整教學<a class="anchor ms-1" href="#t-synth-tsynth-release-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/DIDSR/tsynth-release" target="_blank" rel="noopener noreferrer">https://github.com/DIDSR/tsynth-release<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 6 | <strong>Tags</strong>: breast-cancer, medical-imaging, synthetic-data
<strong>授權</strong>: CC0 1.0 Universal (Creative Commons Zero; 公眾領域貢獻)
<strong>主要語言</strong>: Jupyter Notebook / Python
<strong>資料集</strong>: <a href="https://huggingface.co/datasets/didsr/tsynth" target="_blank" rel="noopener noreferrer">https://huggingface.co/datasets/didsr/tsynth<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>論文</strong>: <a href="https://arxiv.org/abs/2507.04038" target="_blank" rel="noopener noreferrer">https://arxiv.org/abs/2507.04038<i class="fas fa-external-link-square-alt ms-1"></i></a> (MICCAI Open Data 2025)
<strong>FDA RST 編號</strong>: RST26AI04.01</p></blockquote>

<h2 id="2-核心架構" data-numberify>2. 核心架構<a class="anchor ms-1" href="#2-核心架構"></a></h2>

<h3 id="21-系統整體架構" data-numberify>2.1 系統整體架構<a class="anchor ms-1" href="#21-系統整體架構"></a></h3>
<pre class="mermaid">

flowchart TB
    subgraph VICTRE ["VICTRE Toolkit (上游)"]
        A1[虛擬乳房模型<br/>KB Phantom] --> A2[Monte Carlo<br/>X-ray 模擬]
        A2 --> A3[原始 DBT<br/>3D Volume]
    end

    subgraph TSYNTH ["T-SYNTH Pipeline"]
        A3 --> B1[C-View 合成<br/>DBT → 2D]
        A3 --> B2[像素級分割<br/>Segmentation]
        B1 --> B3[HuggingFace<br/>Dataset 發佈]
        B2 --> B3
        B3 --> C1[下載腳本<br/>download_data.py]
    end

    subgraph TRAIN ["訓練與評估"]
        C1 --> D1[YAML 配置<br/>real / synth / mixed]
        D1 --> D2[custom_datasets.py<br/>EmbedDataset + DbtSynthDataset]
        D2 --> D3[train_detector.py<br/>Faster R-CNN<br/>ResNet-50-FPN]
        D3 --> D4[evaluate_detectors.py<br/>FROC / AUC]
        D4 --> D5[Jupyter Notebooks<br/>視覺化 + 分析]
    end

    subgraph DATA ["外部真實資料"]
        E1[EMBED Dataset<br/>Emory Breast Imaging<br/>AWS Open Data] --> D2
    end

    style VICTRE fill:#e8f4fd,stroke:#1e88e5
    style TSYNTH fill:#fff3e0,stroke:#f57c00
    style TRAIN fill:#e8f5e9,stroke:#43a047
    style DATA fill:#fce4ec,stroke:#e53935

</pre>


<h3 id="22-實驗配置對應圖" data-numberify>2.2 實驗配置對應圖<a class="anchor ms-1" href="#22-實驗配置對應圖"></a></h3>
<pre class="mermaid">

flowchart LR
    subgraph EXP ["實驗類型"]
        direction TB
        R[Real Only<br/>20%~100%]
        RS[Real + Synth<br/>混合比例]
        S[Synth Only]
        D[Diffusion<br/>比較實驗]
    end

    subgraph CFG ["YAML 配置"]
        direction TB
        C1["cfg/train/real*.yaml"]
        C2["cfg/train/real*_and_synth*.yaml"]
        C3["cfg/train/synth.yaml"]
        C4["cfg/train/genAI/*.yaml"]
    end

    subgraph MOD ["模態"]
        direction TB
        M1["DBT C-View"]
        M2["DM 2D"]
    end

    R --> C1
    RS --> C2
    S --> C3
    D --> C4
    C1 & C2 & C3 & C4 --> M1
    C1 & C2 & C3 --> M2

    style EXP fill:#e3f2fd,stroke:#1565c0
    style CFG fill:#fff8e1,stroke:#f9a825
    style MOD fill:#f3e5f5,stroke:#8e24aa

</pre>


<h3 id="23-檔案結構" data-numberify>2.3 檔案結構<a class="anchor ms-1" href="#23-檔案結構"></a></h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gdscript3" data-lang="gdscript3"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="n">tsynth</span><span class="o">-</span><span class="n">release</span><span class="o">/</span>
</span></span><span class="line"><span class="ln"> 2</span><span class="cl"><span class="err">├──</span> <span class="n">LICENSE</span>                          <span class="c1"># CC0 1.0</span>
</span></span><span class="line"><span class="ln"> 3</span><span class="cl"><span class="err">├──</span> <span class="n">README</span><span class="o">.</span><span class="n">md</span>
</span></span><span class="line"><span class="ln"> 4</span><span class="cl"><span class="err">├──</span> <span class="n">images</span><span class="o">/</span>
</span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">poster</span><span class="o">.</span><span class="n">pdf</span>                   <span class="c1"># MICCAI 海報</span>
</span></span><span class="line"><span class="ln"> 6</span><span class="cl"><span class="err">│</span>   <span class="err">└──</span> <span class="n">summary_figure</span><span class="o">.</span><span class="n">png</span>
</span></span><span class="line"><span class="ln"> 7</span><span class="cl"><span class="err">└──</span> <span class="n">code</span><span class="o">/</span>
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">    <span class="err">├──</span> <span class="n">README</span><span class="o">.</span><span class="n">md</span>                    <span class="c1"># 安裝與使用說明</span>
</span></span><span class="line"><span class="ln"> 9</span><span class="cl">    <span class="err">├──</span> <span class="n">requirements</span><span class="o">.</span><span class="n">txt</span>             <span class="c1"># Python 套件依賴</span>
</span></span><span class="line"><span class="ln">10</span><span class="cl">    <span class="err">├──</span> <span class="n">config_global</span><span class="o">.</span><span class="n">py</span>             <span class="c1"># 全域路徑設定 (dir_global)</span>
</span></span><span class="line"><span class="ln">11</span><span class="cl">    <span class="err">├──</span> <span class="n">custom_datasets</span><span class="o">.</span><span class="n">py</span>           <span class="c1"># Dataset 類別 (EmbedDataset, DbtSynthDataset)</span>
</span></span><span class="line"><span class="ln">12</span><span class="cl">    <span class="err">├──</span> <span class="n">train_detector</span><span class="o">.</span><span class="n">py</span>            <span class="c1"># 訓練 Faster R-CNN</span>
</span></span><span class="line"><span class="ln">13</span><span class="cl">    <span class="err">├──</span> <span class="n">evaluate_detectors</span><span class="o">.</span><span class="n">py</span>        <span class="c1"># 模型推論與評估</span>
</span></span><span class="line"><span class="ln">14</span><span class="cl">    <span class="err">├──</span> <span class="n">cfg</span><span class="o">/</span>                         <span class="c1"># YAML 實驗配置</span>
</span></span><span class="line"><span class="ln">15</span><span class="cl">    <span class="err">│</span>   <span class="err">├──</span> <span class="n">train</span><span class="o">/</span>                   <span class="c1"># 訓練配置 (25+ 種組合)</span>
</span></span><span class="line"><span class="ln">16</span><span class="cl">    <span class="err">│</span>   <span class="err">│</span>   <span class="err">├──</span> <span class="n">real</span><span class="o">.</span><span class="n">yaml</span>
</span></span><span class="line"><span class="ln">17</span><span class="cl">    <span class="err">│</span>   <span class="err">│</span>   <span class="err">├──</span> <span class="n">synth</span><span class="o">.</span><span class="n">yaml</span>
</span></span><span class="line"><span class="ln">18</span><span class="cl">    <span class="err">│</span>   <span class="err">│</span>   <span class="err">├──</span> <span class="n">real_and_synth</span><span class="o">.</span><span class="n">yaml</span>
</span></span><span class="line"><span class="ln">19</span><span class="cl">    <span class="err">│</span>   <span class="err">│</span>   <span class="err">├──</span> <span class="n">real100_and_synth</span><span class="o">*.</span><span class="n">yaml</span>
</span></span><span class="line"><span class="ln">20</span><span class="cl">    <span class="err">│</span>   <span class="err">│</span>   <span class="err">└──</span> <span class="n">genAI</span><span class="o">/</span>              <span class="c1"># Diffusion 比較實驗</span>
</span></span><span class="line"><span class="ln">21</span><span class="cl">    <span class="err">│</span>   <span class="err">├──</span> <span class="n">val</span><span class="o">/</span>                     <span class="c1"># 驗證配置</span>
</span></span><span class="line"><span class="ln">22</span><span class="cl">    <span class="err">│</span>   <span class="err">├──</span> <span class="n">test</span><span class="o">/</span>                    <span class="c1"># 測試配置</span>
</span></span><span class="line"><span class="ln">23</span><span class="cl">    <span class="err">│</span>   <span class="err">└──</span> <span class="n">DM</span><span class="o">/</span>                      <span class="c1"># Digital Mammography 專用配置</span>
</span></span><span class="line"><span class="ln">24</span><span class="cl">    <span class="err">├──</span> <span class="n">download_scripts</span><span class="o">/</span>
</span></span><span class="line"><span class="ln">25</span><span class="cl">    <span class="err">│</span>   <span class="err">├──</span> <span class="n">download_data</span><span class="o">.</span><span class="n">py</span>         <span class="c1"># 從 HuggingFace 下載合成資料</span>
</span></span><span class="line"><span class="ln">26</span><span class="cl">    <span class="err">│</span>   <span class="err">├──</span> <span class="n">download_embed_metadata</span><span class="o">.</span><span class="n">py</span>
</span></span><span class="line"><span class="ln">27</span><span class="cl">    <span class="err">│</span>   <span class="err">├──</span> <span class="n">download_models</span><span class="o">.</span><span class="n">py</span>       <span class="c1"># 下載預訓練模型</span>
</span></span><span class="line"><span class="ln">28</span><span class="cl">    <span class="err">│</span>   <span class="err">├──</span> <span class="n">download_results</span><span class="o">.</span><span class="n">py</span>      <span class="c1"># 下載評估結果</span>
</span></span><span class="line"><span class="ln">29</span><span class="cl">    <span class="err">│</span>   <span class="err">└──</span> <span class="n">download_volumes</span><span class="o">.</span><span class="n">py</span>      <span class="c1"># 下載原始 DBT volumes</span>
</span></span><span class="line"><span class="ln">30</span><span class="cl">    <span class="err">├──</span> <span class="n">notebooks</span><span class="o">/</span>                   <span class="c1"># 分析與視覺化</span>
</span></span><span class="line"><span class="ln">31</span><span class="cl">    <span class="err">│</span>   <span class="err">├──</span> <span class="n">create_cview</span><span class="o">.</span><span class="n">ipynb</span>       <span class="c1"># DBT → C-View 轉換</span>
</span></span><span class="line"><span class="ln">32</span><span class="cl">    <span class="err">│</span>   <span class="err">├──</span> <span class="n">synthetic_detection</span><span class="o">.</span><span class="n">ipynb</span>
</span></span><span class="line"><span class="ln">33</span><span class="cl">    <span class="err">│</span>   <span class="err">├──</span> <span class="n">data_augmentation_experiments</span><span class="o">.</span><span class="n">ipynb</span>
</span></span><span class="line"><span class="ln">34</span><span class="cl">    <span class="err">│</span>   <span class="err">├──</span> <span class="n">diffusion_experiments</span><span class="o">.</span><span class="n">ipynb</span>
</span></span><span class="line"><span class="ln">35</span><span class="cl">    <span class="err">│</span>   <span class="err">├──</span> <span class="n">tsynth_breast_density</span><span class="o">.</span><span class="n">ipynb</span>
</span></span><span class="line"><span class="ln">36</span><span class="cl">    <span class="err">│</span>   <span class="err">├──</span> <span class="n">tsynth_lesion_density</span><span class="o">.</span><span class="n">ipynb</span>
</span></span><span class="line"><span class="ln">37</span><span class="cl">    <span class="err">│</span>   <span class="err">├──</span> <span class="n">tsynth_lesion_size</span><span class="o">.</span><span class="n">ipynb</span>
</span></span><span class="line"><span class="ln">38</span><span class="cl">    <span class="err">│</span>   <span class="err">└──</span> <span class="n">comparison_of_FROC_AUC</span><span class="o">.</span><span class="n">ipynb</span>
</span></span><span class="line"><span class="ln">39</span><span class="cl">    <span class="err">└──</span> <span class="n">utils</span><span class="o">/</span>
</span></span><span class="line"><span class="ln">40</span><span class="cl">        <span class="err">├──</span> <span class="n">duke_dbt_data</span><span class="o">.</span><span class="n">py</span>         <span class="c1"># DICOM 讀取工具</span>
</span></span><span class="line"><span class="ln">41</span><span class="cl">        <span class="err">├──</span> <span class="n">eval_utils</span><span class="o">.</span><span class="n">py</span>            <span class="c1"># FROC 計算工具</span>
</span></span><span class="line"><span class="ln">42</span><span class="cl">        <span class="err">└──</span> <span class="n">model_utils</span><span class="o">.</span><span class="n">py</span>           <span class="c1"># Faster R-CNN 建構</span>
</span></span></code></pre></div><hr>

<h2 id="3-安裝與設定" data-numberify>3. 安裝與設定<a class="anchor ms-1" href="#3-安裝與設定"></a></h2>

<h3 id="31-環境需求" data-numberify>3.1 環境需求<a class="anchor ms-1" href="#31-環境需求"></a></h3>
<table>
  <thead>
      <tr>
          <th>需求</th>
          <th>說明</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><strong>Python</strong></td>
          <td>3.9</td>
      </tr>
      <tr>
          <td><strong>GPU</strong></td>
          <td>CUDA 11.8 (NVIDIA GPU 強烈建議)</td>
      </tr>
      <tr>
          <td><strong>磁碟空間</strong></td>
          <td>C-View 資料 ~數十 GB；完整 DBT volumes 需 PrecisionFDA 下載，更大</td>
      </tr>
      <tr>
          <td><strong>HuggingFace 帳號</strong></td>
          <td>下載資料需要 token</td>
      </tr>
      <tr>
          <td><strong>套件</strong></td>
          <td>PyTorch 2.3.1+cu118, torchvision 0.18.1, MONAI 1.3.1, pydicom 等</td>
      </tr>
  </tbody>
</table>

<h3 id="32-安裝步驟" data-numberify>3.2 安裝步驟<a class="anchor ms-1" href="#32-安裝步驟"></a></h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="c1"># 1. Clone repository</span>
</span></span><span class="line"><span class="ln"> 2</span><span class="cl">git clone https://github.com/DIDSR/tsynth-release.git
</span></span><span class="line"><span class="ln"> 3</span><span class="cl"><span class="nb">cd</span> tsynth-release
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">
</span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="c1"># 2. 建立 conda 環境（官方建議 Python 3.9）</span>
</span></span><span class="line"><span class="ln"> 6</span><span class="cl">conda create -n tsynth <span class="nv">python</span><span class="o">=</span>3.9
</span></span><span class="line"><span class="ln"> 7</span><span class="cl">conda activate tsynth
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">
</span></span><span class="line"><span class="ln"> 9</span><span class="cl"><span class="c1"># 3. 安裝套件依賴</span>
</span></span><span class="line"><span class="ln">10</span><span class="cl">pip install -r code/requirements.txt
</span></span><span class="line"><span class="ln">11</span><span class="cl">
</span></span><span class="line"><span class="ln">12</span><span class="cl"><span class="c1"># 4. 設定 HuggingFace token（下載資料需要）</span>
</span></span><span class="line"><span class="ln">13</span><span class="cl">huggingface-cli login
</span></span><span class="line"><span class="ln">14</span><span class="cl"><span class="c1"># 貼上你的 HuggingFace Access Token</span>
</span></span><span class="line"><span class="ln">15</span><span class="cl">
</span></span><span class="line"><span class="ln">16</span><span class="cl"><span class="c1"># 5. （可選）手動下載 pretrained COCO 權重</span>
</span></span><span class="line"><span class="ln">17</span><span class="cl"><span class="c1">#    如果自動下載失敗才需要</span>
</span></span><span class="line"><span class="ln">18</span><span class="cl">mkdir -p ~/.cache/torch/hub/checkpoints
</span></span><span class="line"><span class="ln">19</span><span class="cl"><span class="nb">cd</span> ~/.cache/torch/hub/checkpoints
</span></span><span class="line"><span class="ln">20</span><span class="cl">wget https://download.pytorch.org/models/fasterrcnn_resnet50_fpn_coco-258fb6c6.pth
</span></span><span class="line"><span class="ln">21</span><span class="cl">wget https://download.pytorch.org/models/resnet50-0676ba61.pth
</span></span></code></pre></div>
<h3 id="33-關鍵配置config_globalpy" data-numberify>3.3 關鍵配置：config_global.py<a class="anchor ms-1" href="#33-關鍵配置config_globalpy"></a></h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="ln">1</span><span class="cl"><span class="c1"># 修改此路徑為你的本地資料目錄</span>
</span></span><span class="line"><span class="ln">2</span><span class="cl"><span class="n">dir_global</span> <span class="o">=</span> <span class="s1">&#39;/path/to/your/tsynth_data/&#39;</span>
</span></span></code></pre></div><p>此路徑是所有下載腳本與訓練/評估腳本的全域根目錄。下載的資料會存放在 <code>{dir_global}/data/</code> 下。</p>]]></description></item><item><title>TabGAN (Tabular-data-generation) 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-tabular-data-generation-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-tabular-data-generation-tutorial/</guid><description><![CDATA[<h1 id="tabgan-tabular-data-generation-完整教學" data-numberify>TabGAN (Tabular-data-generation) 完整教學<a class="anchor ms-1" href="#tabgan-tabular-data-generation-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/Diyago/Tabular-data-generation" target="_blank" rel="noopener noreferrer">https://github.com/Diyago/Tabular-data-generation<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 570 | <strong>Forks</strong>: 83 | <strong>License</strong>: Apache-2.0
<strong>Language</strong>: Python | <strong>PyPI</strong>: <code>tabgan</code>
<strong>Tags</strong>: GAN, tabular-data, adversarial-filtering, deep-learning, machine-learning
<strong>Paper</strong>: <a href="https://arxiv.org/abs/2010.00638" target="_blank" rel="noopener noreferrer">Tabular GANs for uneven distribution<i class="fas fa-external-link-square-alt ms-1"></i></a> (arXiv:2010.00638)
<strong>Live Demo</strong>: <a href="https://insafq-tabgan.hf.space" target="_blank" rel="noopener noreferrer">HuggingFace Spaces<i class="fas fa-external-link-square-alt ms-1"></i></a> | <a href="https://colab.research.google.com/github/Diyago/Tabular-data-generation/blob/master/examples/tabgan_examples.ipynb" target="_blank" rel="noopener noreferrer">Colab Notebook<i class="fas fa-external-link-square-alt ms-1"></i></a></p></blockquote>

<h2 id="2-核心架構-core-architecture" data-numberify>2. 核心架構 (Core Architecture)<a class="anchor ms-1" href="#2-核心架構-core-architecture"></a></h2>

<h3 id="21-整體管線架構" data-numberify>2.1 整體管線架構<a class="anchor ms-1" href="#21-整體管線架構"></a></h3>
<p>TabGAN 的所有 Generator 共享統一的四階段管線 (Four-Stage Pipeline)：</p>]]></description></item><item><title>TemporAI 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-temporai-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-temporai-tutorial/</guid><description><![CDATA[<h1 id="temporai-完整教學" data-numberify>TemporAI 完整教學<a class="anchor ms-1" href="#temporai-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/vanderschaarlab/temporai" target="_blank" rel="noopener noreferrer">https://github.com/vanderschaarlab/temporai<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 130 | <strong>Forks</strong>: 24 | <strong>Language</strong>: Python | <strong>License</strong>: Apache-2.0
<strong>Tags</strong>: <code>machine-learning</code>, <code>medicine</code>, <code>time-series</code>, <code>automl</code>
<strong>Homepage</strong>: <a href="https://www.temporai.vanderschaar-lab.com/" target="_blank" rel="noopener noreferrer">https://www.temporai.vanderschaar-lab.com/<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Paper</strong>: <a href="https://arxiv.org/abs/2301.12260" target="_blank" rel="noopener noreferrer">arXiv:2301.12260<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Last Updated</strong>: 2026-05-28</p></blockquote>

<h2 id="2-核心架構" data-numberify>2. 核心架構<a class="anchor ms-1" href="#2-核心架構"></a></h2>

<h3 id="21-整體架構圖" data-numberify>2.1 整體架構圖<a class="anchor ms-1" href="#21-整體架構圖"></a></h3>
<pre class="mermaid">

graph TB
    subgraph Input["Data Input Layer (資料輸入層)"]
        RAW["Raw Data<br/>原始醫療時序資料"]
        DS["DataSource Plugin<br/>資料來源插件<br/>(PBC, PKPD, MIMIC, UCI, Sine...)"]
        DATASET["TemporalDataset<br/>統一資料格式"]
    end

    subgraph Core["Plugin Core (插件核心)"]
        PL["plugin_loader<br/>插件載入器"]
        REG["Plugin Registry<br/>插件註冊表"]
    end

    subgraph Preprocessing["Preprocessing Layer (前處理層)"]
        IMP["Imputation<br/>缺失值填補"]
        SCALE["Scaling<br/>標準化"]
        ENC["Encoding<br/>特徵編碼"]
    end

    subgraph Methods["ML Methods Layer (ML 方法層)"]
        TTE["Time-to-Event<br/>存活分析"]
        TX["Treatment Effects<br/>治療效果估計"]
        PRED["Prediction<br/>預測"]
    end

    subgraph AutoML["AutoML Layer (自動化層)"]
        TUNER["Tuner<br/>超參數調校"]
        SEEKER["PipelineSeeker<br/>管線搜尋"]
        BENCH["Benchmarks<br/>基準測試"]
    end

    subgraph Output["Output Layer (輸出層)"]
        RISK["Risk Predictions<br/>風險預測"]
        CF["Counterfactuals<br/>反事實結果"]
        FORECAST["Forecasts<br/>時序預測"]
        SERIAL["Serialization<br/>模型序列化"]
    end

    RAW --> DS --> DATASET
    DATASET --> PL
    PL --> REG
    REG --> Preprocessing
    Preprocessing --> Methods
    Methods --> AutoML
    Methods --> Output
    AutoML --> Output

    style Input fill:#e8f5e9,stroke:#2e7d32
    style Core fill:#fff3e0,stroke:#e65100
    style Preprocessing fill:#e3f2fd,stroke:#1565c0
    style Methods fill:#fce4ec,stroke:#c62828
    style AutoML fill:#f3e5f5,stroke:#6a1b9a
    style Output fill:#e0f2f1,stroke:#00695c

</pre>


<h3 id="22-plugin-系統架構" data-numberify>2.2 Plugin 系統架構<a class="anchor ms-1" href="#22-plugin-系統架構"></a></h3>
<p>TemporAI 的核心設計是 <strong>Plugin-based Architecture (插件式架構)</strong>。所有方法（模型、前處理器、資料來源）都以 Plugin 的形式註冊到全域的 <code>plugin_loader</code>，透過字串路徑存取：</p>]]></description></item><item><title>Treeffuser 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-treeffuser-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-treeffuser-tutorial/</guid><description><![CDATA[<h1 id="treeffuser-完整教學" data-numberify>Treeffuser 完整教學<a class="anchor ms-1" href="#treeffuser-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/blei-lab/treeffuser" target="_blank" rel="noopener noreferrer">https://github.com/blei-lab/treeffuser<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 56 | <strong>Forks</strong>: 10 | <strong>License</strong>: MIT
<strong>Paper</strong>: <a href="https://arxiv.org/abs/2406.07658" target="_blank" rel="noopener noreferrer">NeurIPS 2024 — arXiv:2406.07658<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Tags</strong>: diffusion-models, gradient-boosting, probabilistic-prediction, tabular-data, lightgbm, heteroscedasticity
<strong>最後更新</strong>: 2026-04-28
<strong>作者群</strong>: David Blei Lab @ Columbia University（Nicolas Beltran-Velez, Alessandro Grande, Achille Nazaret, Alp Kucukelbir, David Blei）</p>]]></description></item><item><title>VICTRE 完整教學</title><link>https://tpow-001.netlify.app/post/2026-05-20-victre-tutorial/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-victre-tutorial/</guid><description><![CDATA[<h1 id="victre-完整教學" data-numberify>VICTRE 完整教學<a class="anchor ms-1" href="#victre-完整教學"></a></h1>
<blockquote>
<p><strong>Repository</strong>: <a href="https://github.com/DIDSR/VICTRE" target="_blank" rel="noopener noreferrer">https://github.com/DIDSR/VICTRE<i class="fas fa-external-link-square-alt ms-1"></i></a>
<strong>Stars</strong>: 74 | <strong>Tags</strong>: virtual-clinical-trial, FDA, imaging
<strong>License</strong>: CC0-1.0 (Creative Commons Zero v1.0 Universal)
<strong>Primary Language</strong>: Python / C / CUDA
<strong>Forks</strong>: 16 | <strong>Last Updated</strong>: 2026-06-09
<strong>自動化管線</strong>: <a href="https://github.com/DIDSR/VICTRE_PIPELINE" target="_blank" rel="noopener noreferrer">https://github.com/DIDSR/VICTRE_PIPELINE<i class="fas fa-external-link-square-alt ms-1"></i></a> (29 stars)
<strong>FDA RST 編號</strong>: RST24MD10.01</p></blockquote>

<h2 id="2-核心架構" data-numberify>2. 核心架構<a class="anchor ms-1" href="#2-核心架構"></a></h2>

<h3 id="21-victre-九步管線總覽" data-numberify>2.1 VICTRE 九步管線總覽<a class="anchor ms-1" href="#21-victre-九步管線總覽"></a></h3>
<pre class="mermaid">

flowchart TD
    subgraph PhantomGen["Phase 1: Phantom Generation (幻像生成)"]
        A["breastPhantom<br/>程序式乳房模型生成"]
        B["breastCompress<br/>FEBio 有限元素壓縮"]
        C["breastCrop<br/>體積裁切 (GPU 記憶體限制)"]
    end

    subgraph LesionPhase["Phase 2: Lesion Processing (病灶處理)"]
        D["breastMass<br/>程序式腫瘤生成"]
        E["Lesion Insertion<br/>病灶植入 (Python)"]
    end

    subgraph ImagingPhase["Phase 3: Imaging (影像擷取)"]
        F["MC-GPU<br/>Monte Carlo X 光傳輸<br/>(DM + DBT)"]
        G["FBP Reconstruction<br/>濾波反投影重建 (DBT)"]
    end

    subgraph AnalysisPhase["Phase 4: Analysis (分析)"]
        H["ROI/VOI Extraction<br/>感興趣區域擷取 (Python)"]
        I["Reader Models<br/>虛擬讀片模型 (Matlab)"]
    end

    A --> B --> C --> E
    D --> E
    E --> F --> G --> H --> I

    style PhantomGen fill:#e8f4e8,stroke:#2d5016
    style LesionPhase fill:#fff3e0,stroke:#e65100
    style ImagingPhase fill:#e3f2fd,stroke:#0d47a1
    style AnalysisPhase fill:#fce4ec,stroke:#880e4f

</pre>


<h3 id="22-各元件與對應儲存庫" data-numberify>2.2 各元件與對應儲存庫<a class="anchor ms-1" href="#22-各元件與對應儲存庫"></a></h3>
<table>
  <thead>
      <tr>
          <th>步驟</th>
          <th>元件名稱</th>
          <th>語言</th>
          <th>獨立 Repo</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>1</td>
          <td>breastPhantom（乳房幻像生成）</td>
          <td>C++</td>
          <td><a href="https://github.com/DIDSR/breastPhantom" target="_blank" rel="noopener noreferrer">DIDSR/breastPhantom<i class="fas fa-external-link-square-alt ms-1"></i></a></td>
      </tr>
      <tr>
          <td>2</td>
          <td>breastCompress（乳房壓縮）</td>
          <td>C++</td>
          <td><a href="https://github.com/DIDSR/breastCompress" target="_blank" rel="noopener noreferrer">DIDSR/breastCompress<i class="fas fa-external-link-square-alt ms-1"></i></a></td>
      </tr>
      <tr>
          <td>3</td>
          <td>breastCrop（體積裁切）</td>
          <td>C++</td>
          <td><a href="https://github.com/DIDSR/breastCrop" target="_blank" rel="noopener noreferrer">DIDSR/breastCrop<i class="fas fa-external-link-square-alt ms-1"></i></a></td>
      </tr>
      <tr>
          <td>4</td>
          <td>breastMass（腫瘤模型生成）</td>
          <td>C++</td>
          <td><a href="https://github.com/DIDSR/breastMass" target="_blank" rel="noopener noreferrer">DIDSR/breastMass<i class="fas fa-external-link-square-alt ms-1"></i></a></td>
      </tr>
      <tr>
          <td>5</td>
          <td>Lesion Insertion（病灶植入）</td>
          <td>Python</td>
          <td>含於本 repo</td>
      </tr>
      <tr>
          <td>6</td>
          <td>MC-GPU（X 光傳輸）</td>
          <td>C/CUDA</td>
          <td><a href="https://github.com/DIDSR/VICTRE_MCGPU" target="_blank" rel="noopener noreferrer">DIDSR/VICTRE_MCGPU<i class="fas fa-external-link-square-alt ms-1"></i></a></td>
      </tr>
      <tr>
          <td>7</td>
          <td>FBP DBT Reconstruction（重建）</td>
          <td>C</td>
          <td>含於本 repo</td>
      </tr>
      <tr>
          <td>8</td>
          <td>ROI Extraction（ROI 擷取）</td>
          <td>Python</td>
          <td>含於本 repo</td>
      </tr>
      <tr>
          <td>9</td>
          <td>Reader Models（讀片模型）</td>
          <td>Matlab</td>
          <td><a href="https://github.com/DIDSR/VICTRE_MO" target="_blank" rel="noopener noreferrer">DIDSR/VICTRE_MO<i class="fas fa-external-link-square-alt ms-1"></i></a></td>
      </tr>
  </tbody>
</table>

<h3 id="23-專案檔案結構" data-numberify>2.3 專案檔案結構<a class="anchor ms-1" href="#23-專案檔案結構"></a></h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gdscript3" data-lang="gdscript3"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="n">VICTRE</span><span class="o">/</span>
</span></span><span class="line"><span class="ln"> 2</span><span class="cl"><span class="err">├──</span> <span class="n">FBP</span> <span class="n">DBT</span> <span class="n">reconstruction</span> <span class="ow">in</span> <span class="n">C</span><span class="o">/</span>    <span class="c1"># 濾波反投影重建（C 語言）</span>
</span></span><span class="line"><span class="ln"> 3</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">FBP_DBTrecon</span><span class="o">.</span><span class="n">c</span> <span class="o">/</span> <span class="o">.</span><span class="n">h</span>
</span></span><span class="line"><span class="ln"> 4</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">Makefile</span>
</span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">reconFBP_script</span><span class="o">.</span><span class="n">sh</span>
</span></span><span class="line"><span class="ln"> 6</span><span class="cl"><span class="err">│</span>   <span class="err">└──</span> <span class="n">cbct_code</span><span class="o">/</span>                  <span class="c1"># 修改自 Leeser 的 CBCT 重建碼</span>
</span></span><span class="line"><span class="ln"> 7</span><span class="cl"><span class="err">├──</span> <span class="n">Lesion</span> <span class="n">Insertion</span><span class="o">/</span>               <span class="c1"># 病灶植入（Python）</span>
</span></span><span class="line"><span class="ln"> 8</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">lesionInsertion</span><span class="o">.</span><span class="n">py</span>
</span></span><span class="line"><span class="ln"> 9</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">build</span><span class="o">/</span><span class="n">lesionInsertion_script</span><span class="o">.</span><span class="n">sh</span>
</span></span><span class="line"><span class="ln">10</span><span class="cl"><span class="err">│</span>   <span class="err">└──</span> <span class="n">VICTRE_LesionModels</span><span class="o">/</span>       <span class="c1"># 預製病灶模型（.raw）</span>
</span></span><span class="line"><span class="ln">11</span><span class="cl"><span class="err">│</span>       <span class="err">├──</span> <span class="n">heteroCalc2_121_100</span><span class="o">.</span><span class="n">raw</span>       <span class="c1"># 微鈣化簇</span>
</span></span><span class="line"><span class="ln">12</span><span class="cl"><span class="err">│</span>       <span class="err">└──</span> <span class="n">mass_</span><span class="o">-</span><span class="mi">308854003</span><span class="n">_cropped_166</span><span class="o">.</span><span class="n">raw</span> <span class="c1"># 針刺狀腫塊</span>
</span></span><span class="line"><span class="ln">13</span><span class="cl"><span class="err">├──</span> <span class="n">ROI</span> <span class="n">Extraction</span><span class="o">/</span>                 <span class="c1"># ROI 擷取（Python）</span>
</span></span><span class="line"><span class="ln">14</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">roiExtraction_mammo_SP</span><span class="o">.</span><span class="n">py</span>   <span class="c1"># DM 信號存在</span>
</span></span><span class="line"><span class="ln">15</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">roiExtraction_mammo_SA</span><span class="o">.</span><span class="n">py</span>   <span class="c1"># DM 信號不存在</span>
</span></span><span class="line"><span class="ln">16</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">roiExtraction_DBT_FBP_SP</span><span class="o">.</span><span class="n">py</span> <span class="c1"># DBT 信號存在</span>
</span></span><span class="line"><span class="ln">17</span><span class="cl"><span class="err">│</span>   <span class="err">└──</span> <span class="n">roiExtraction_DBT_FBP_SA</span><span class="o">.</span><span class="n">py</span> <span class="c1"># DBT 信號不存在</span>
</span></span><span class="line"><span class="ln">18</span><span class="cl"><span class="err">├──</span> <span class="n">Raw</span> <span class="n">to</span> <span class="n">DICOM</span> <span class="n">conversion</span><span class="o">/</span>        <span class="c1"># Raw → DICOM 轉換（Matlab）</span>
</span></span><span class="line"><span class="ln">19</span><span class="cl"><span class="err">├──</span> <span class="ne">Sample</span><span class="o">-</span><span class="n">phantom</span><span class="o">-</span><span class="n">data</span><span class="o">/</span>            <span class="c1"># 四種密度樣本資料</span>
</span></span><span class="line"><span class="ln">20</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">Dense</span><span class="o">/</span>
</span></span><span class="line"><span class="ln">21</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">Fatty</span><span class="o">/</span>
</span></span><span class="line"><span class="ln">22</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">Hetero</span><span class="o">/</span>
</span></span><span class="line"><span class="ln">23</span><span class="cl"><span class="err">│</span>   <span class="err">└──</span> <span class="n">Scattered</span><span class="o">/</span>
</span></span><span class="line"><span class="ln">24</span><span class="cl"><span class="err">├──</span> <span class="n">VICTRE</span> <span class="n">Configuration</span> <span class="n">Files</span> <span class="ow">and</span> <span class="n">Parameters</span><span class="o">/</span>  <span class="c1"># 參考設定</span>
</span></span><span class="line"><span class="ln">25</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">breastPhantom</span><span class="o">/</span>              <span class="c1"># 4 種密度 .cfg 檔</span>
</span></span><span class="line"><span class="ln">26</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">breastCompress</span><span class="o">/</span>
</span></span><span class="line"><span class="ln">27</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">breastCrop</span><span class="o">/</span>
</span></span><span class="line"><span class="ln">28</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">LesionInsertion</span><span class="o">/</span>
</span></span><span class="line"><span class="ln">29</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">MCGPU</span><span class="o">/</span>
</span></span><span class="line"><span class="ln">30</span><span class="cl"><span class="err">│</span>   <span class="err">├──</span> <span class="n">ROIExtraction</span><span class="o">/</span>
</span></span><span class="line"><span class="ln">31</span><span class="cl"><span class="err">│</span>   <span class="err">└──</span> <span class="n">DBTReconstruction</span><span class="o">/</span>
</span></span><span class="line"><span class="ln">32</span><span class="cl"><span class="err">└──</span> <span class="n">Locations</span><span class="o">/</span>                      <span class="c1"># 病灶位置資料（.tar.gz）</span>
</span></span></code></pre></div>
<h3 id="24-資料流與檔案格式" data-numberify>2.4 資料流與檔案格式<a class="anchor ms-1" href="#24-資料流與檔案格式"></a></h3>
<pre class="mermaid">

flowchart LR
    CFG[".cfg<br/>幻像設定檔"] --> RAW1["p_SEED.raw.gz<br/>原始幻像"]
    RAW1 --> RAW2["pc_SEED_crop.raw.gz<br/>壓縮裁切幻像"]
    LESION[".raw<br/>病灶模型"] --> RAW3["pcl_SEED_crop.raw.gz<br/>含病灶幻像"]
    RAW2 --> RAW3
    RAW3 --> PROJ["投影影像<br/>(32-bit RAW)"]
    PROJ --> RECON["重建體積<br/>(64-bit RAW)"]
    RECON --> ROI["ROI/VOI<br/>(子影像)"]
    ROI --> AUC["AUC 分析<br/>(效能指標)"]
    PROJ --> DICOM["DICOM 影像<br/>(Cancer Imaging Archive)"]

    style CFG fill:#f9f,stroke:#333
    style DICOM fill:#bbf,stroke:#333
    style AUC fill:#fbb,stroke:#333

</pre>

<hr>

<h2 id="3-安裝與設定" data-numberify>3. 安裝與設定<a class="anchor ms-1" href="#3-安裝與設定"></a></h2>

<h3 id="31-方式一使用自動化管線-victre_pipeline建議" data-numberify>3.1 方式一：使用自動化管線 VICTRE_PIPELINE（建議）<a class="anchor ms-1" href="#31-方式一使用自動化管線-victre_pipeline建議"></a></h3>
<p>VICTRE_PIPELINE 將所有 9 個步驟封裝為單一 Python class，大幅降低整合複雜度。</p>]]></description></item><item><title>Bio Agent 生態系完整比較論述</title><link>https://tpow-001.netlify.app/post/2026-06-08-bio-agent-comparison/</link><pubDate>Mon, 08 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-06-08-bio-agent-comparison/</guid><description><![CDATA[<h1 id="bio-agent-生態系完整比較論述" data-numberify>Bio Agent 生態系完整比較論述<a class="anchor ms-1" href="#bio-agent-生態系完整比較論述"></a></h1>
<blockquote>
<p>34 個 GitHub 專案的綜合分析與比較
日期：2026-06-08
版本：v2.0（擴充版）
資料來源：GitHub 公開 repository、arXiv 論文、各專案 README 與教學文件</p>]]></description></item><item><title>turbovec 完整教學：基於 TurboQuant 的高效向量搜尋引擎</title><link>https://tpow-001.netlify.app/post/2026-06-08-turbovec-tutorial/</link><pubDate>Mon, 08 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-06-08-turbovec-tutorial/</guid><description><![CDATA[<h1 id="turbovec-完整教學基於-turboquant-的高效向量搜尋引擎" data-numberify>turbovec 完整教學：基於 TurboQuant 的高效向量搜尋引擎<a class="anchor ms-1" href="#turbovec-完整教學基於-turboquant-的高效向量搜尋引擎"></a></h1>

<h2 id="1-專案定位" data-numberify>1. 專案定位<a class="anchor ms-1" href="#1-專案定位"></a></h2>

<h3 id="這是什麼" data-numberify>這是什麼？<a class="anchor ms-1" href="#這是什麼"></a></h3>
<p>turbovec 是一個以 Rust 撰寫、提供 Python bindings 的向量索引引擎。它實作了 Google Research 在 ICLR 2026 發表的 TurboQuant 演算法（arXiv:2504.19874），能將高維 embedding 向量壓縮到每座標 2-4 bits，同時保持接近 Shannon 理論下界的失真率。</p>]]></description></item><item><title>Doctor 專案改進建議 — 基於 7 個同領域專案的綜合比較分析</title><link>https://tpow-001.netlify.app/post/2026-06-06-doctor-improvement-analysis-tutorial/</link><pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-06-06-doctor-improvement-analysis-tutorial/</guid><description><![CDATA[<h1 id="doctor-專案改進建議--基於-7-個同領域專案的綜合比較分析" data-numberify>Doctor 專案改進建議 — 基於 7 個同領域專案的綜合比較分析<a class="anchor ms-1" href="#doctor-專案改進建議--基於-7-個同領域專案的綜合比較分析"></a></h1>
<blockquote>
<p>本文基於 8 個 GitHub 專案的完整教學分析，提出 Doctor 專案的系統性改進方案。</p></blockquote>
<hr>

<h2 id="1-現狀診斷doctor-的定位與核心問題" data-numberify>1. 現狀診斷：Doctor 的定位與核心問題<a class="anchor ms-1" href="#1-現狀診斷doctor-的定位與核心問題"></a></h2>

<h3 id="11-doctor-做了什麼" data-numberify>1.1 Doctor 做了什麼<a class="anchor ms-1" href="#11-doctor-做了什麼"></a></h3>
<p>Doctor 是一個 <strong>Streamlit + Google Gemini</strong> 的醫病角色扮演模擬器。核心概念：</p>]]></description></item><item><title>MIMIC_RL_COACH 完整教學 — 用強化學習為 ICU 敗血症患者建立治療決策 AI</title><link>https://tpow-001.netlify.app/post/2026-06-06-mimic-rl-coach-tutorial/</link><pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-06-06-mimic-rl-coach-tutorial/</guid><description><![CDATA[<h1 id="mimic_rl_coach-完整教學" data-numberify>MIMIC_RL_COACH 完整教學<a class="anchor ms-1" href="#mimic_rl_coach-完整教學"></a></h1>
<blockquote>
<p>從概念理解到實作：如何用 Batch Reinforcement Learning 從真實加護病房資料學習敗血症最佳治療策略。</p></blockquote>

<h2 id="1-專案定位" data-numberify>1. 專案定位<a class="anchor ms-1" href="#1-專案定位"></a></h2>

<h3 id="什麼是-mimic_rl_coach" data-numberify>什麼是 MIMIC_RL_COACH？<a class="anchor ms-1" href="#什麼是-mimic_rl_coach"></a></h3>
<p>MIMIC_RL_COACH 是一個 <strong>batch reinforcement learning（批次強化學習）</strong> pipeline，利用 <strong>MIMIC-III（Medical Information Mart for Intensive Care）</strong> 加護病房臨床資料庫的真實病歷資料，訓練 RL agent 學習敗血症（sepsis；感染）患者的最佳治療策略（optimal treatment policy）。</p>]]></description></item><item><title>Tutorial: 2023Anita/MedicalAI-Platform — 多智慧體醫療分析平台</title><link>https://tpow-001.netlify.app/post/2026-06-06-medicalai-platform-tutorial/</link><pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-06-06-medicalai-platform-tutorial/</guid><description><![CDATA[<h1 id="tutorial-2023anitamedicalai-platform--多智慧體醫療分析平台" data-numberify>Tutorial: 2023Anita/MedicalAI-Platform — 多智慧體醫療分析平台<a class="anchor ms-1" href="#tutorial-2023anitamedicalai-platform--多智慧體醫療分析平台"></a></h1>

<h2 id="s1-專案定位與背景" data-numberify>S1 專案定位與背景<a class="anchor ms-1" href="#s1-專案定位與背景"></a></h2>

<h3 id="11-這是什麼" data-numberify>1.1 這是什麼<a class="anchor ms-1" href="#11-這是什麼"></a></h3>
<p>MedicalAI-Platform（Med Agentic-AI）是一個基於多智慧體協作（Multi-Agent Collaboration）架構的智慧醫療分析平台，由江陰市人民醫院「睡眠魔法師 Team」開發。平台以 Google Gemini 2.5 Flash/Pro 為底層 LLM，透過四個專業 AI 代理的分工協作，對體檢報告進行全面分析並生成結構化的中文醫療評估報告。</p>]]></description></item><item><title>Tutorial: bcefghj/medical-multi-agent-system — 企業級多 Agent 醫療 CDSS</title><link>https://tpow-001.netlify.app/post/2026-06-06-medical-multi-agent-system-tutorial/</link><pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-06-06-medical-multi-agent-system-tutorial/</guid><description><![CDATA[<h1 id="tutorial-medical-multi-agent-system--企業級多-agent-醫療臨床輔助決策系統" data-numberify>Tutorial: medical-multi-agent-system — 企業級多 Agent 醫療臨床輔助決策系統<a class="anchor ms-1" href="#tutorial-medical-multi-agent-system--企業級多-agent-醫療臨床輔助決策系統"></a></h1>

<h2 id="1-專案定位與背景" data-numberify>§1 專案定位與背景<a class="anchor ms-1" href="#1-專案定位與背景"></a></h2>

<h3 id="11-這是什麼" data-numberify>1.1 這是什麼<a class="anchor ms-1" href="#11-這是什麼"></a></h3>
<p>medical-multi-agent-system 是一個面向面試展示與架構學習的企業級多 Agent 臨床輔助決策系統（Clinical Decision Support System, CDSS）。它以 5 個專業化 Agent 組成 Pipeline，覆蓋「接診 → 診斷 → 治療 → 編碼 → 審計」完整臨床工作流，並以 Python / Java / Go 三種語言同時實作同一套架構。</p>]]></description></item><item><title>Tutorial: Doctor — Doubt-Driven 醫病動態認知博弈引擎</title><link>https://tpow-001.netlify.app/post/2026-06-06-doctor-tutorial/</link><pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-06-06-doctor-tutorial/</guid><description><![CDATA[<h1 id="tutorial-doctor--doubt-driven-醫病動態認知博弈引擎" data-numberify>Tutorial: Doctor — Doubt-Driven 醫病動態認知博弈引擎<a class="anchor ms-1" href="#tutorial-doctor--doubt-driven-醫病動態認知博弈引擎"></a></h1>

<h2 id="1-專案定位" data-numberify>1. 專案定位<a class="anchor ms-1" href="#1-專案定位"></a></h2>

<h3 id="這個專案是什麼" data-numberify>這個專案是什麼<a class="anchor ms-1" href="#這個專案是什麼"></a></h3>
<p>Doctor 是一個基於 Streamlit + Google Gemini 的醫病互動模擬應用程式。它不是一個真正的臨床決策支援系統（CDSS），而是一個 <strong>LLM 角色扮演引擎</strong>：透過精心設計的 9 步驟 system prompt 框架，讓 Gemini 扮演一位具有多層心理防禦機制的醫師角色，與使用者（扮演病患）進行對話。</p>]]></description></item><item><title>Tutorial: Md-Emon-Hasan/MediGenius — LangGraph 多 Agent 醫療 AI 助手完整教學</title><link>https://tpow-001.netlify.app/post/2026-06-06-medigenius-tutorial/</link><pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-06-06-medigenius-tutorial/</guid><description><![CDATA[<h1 id="tutorial-medigenius--langgraph-多-agent-醫療-ai-助手" data-numberify>Tutorial: MediGenius — LangGraph 多 Agent 醫療 AI 助手<a class="anchor ms-1" href="#tutorial-medigenius--langgraph-多-agent-醫療-ai-助手"></a></h1>
<blockquote>
<p>一份「讀完就能理解架構 + 知道怎麼改 + 清楚資安邊界」的內部技術手冊。
目標讀者：已會 Python + FastAPI，想學 LangGraph multi-agent 編排、RAG pipeline、和 fallback chain 設計模式的工程師。</p>]]></description></item><item><title>Tutorial: stanfordmlgroup/MedAgentBench — 醫療 LLM Agent 基準測試虛擬 EHR 環境</title><link>https://tpow-001.netlify.app/post/2026-06-06-medagentbench-tutorial/</link><pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-06-06-medagentbench-tutorial/</guid><description><![CDATA[<h1 id="tutorial-stanfordmlgroupmedagentbench--醫療-llm-agent-基準測試虛擬-ehr-環境" data-numberify>Tutorial: stanfordmlgroup/MedAgentBench — 醫療 LLM Agent 基準測試虛擬 EHR 環境<a class="anchor ms-1" href="#tutorial-stanfordmlgroupmedagentbench--醫療-llm-agent-基準測試虛擬-ehr-環境"></a></h1>

<h2 id="1-專案定位與背景" data-numberify>§1 專案定位與背景<a class="anchor ms-1" href="#1-專案定位與背景"></a></h2>

<h3 id="11-這是什麼" data-numberify>1.1 這是什麼<a class="anchor ms-1" href="#11-這是什麼"></a></h3>
<p>MedAgentBench 是 Stanford ML Group 開發並發表於 NEJM AI 的醫療 LLM Agent 基準測試平台。它提供一個基於 FHIR（Fast Healthcare Interoperability Resources；快速醫療互通資源）標準的虛擬 EHR（Electronic Health Record；電子健康紀錄）環境，讓 LLM Agent 透過真實世界規格的 FHIR R4 API 與合成病人資料互動，藉此量化評估 Agent 在臨床工作流程中的實際執行能力。</p>]]></description></item><item><title>AI Retrosynthesis 開源工具全景教學 — Lead Optimization Analog 的合成規劃指南</title><link>https://tpow-001.netlify.app/post/2026-06-05-retrosynthesis-overview-tutorial/</link><pubDate>Fri, 05 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-06-05-retrosynthesis-overview-tutorial/</guid><description><![CDATA[<h1 id="ai-retrosynthesis-開源工具全景教學" data-numberify>AI Retrosynthesis 開源工具全景教學<a class="anchor ms-1" href="#ai-retrosynthesis-開源工具全景教學"></a></h1>
<blockquote>
<p>為 lead optimization（先導化合物優化）產出的 analog（類似物）規劃最短、最可行的合成路線：6 大開源工具比較與實戰指南。</p>]]></description></item><item><title>AiZynthFinder 完整教學 — AI 逆合成規劃工具</title><link>https://tpow-001.netlify.app/post/2026-06-05-aizynthfinder-tutorial/</link><pubDate>Fri, 05 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-06-05-aizynthfinder-tutorial/</guid><description><![CDATA[<h1 id="aizynthfinder-完整教學--ai-逆合成規劃工具" data-numberify>AiZynthFinder 完整教學 — AI 逆合成規劃工具<a class="anchor ms-1" href="#aizynthfinder-完整教學--ai-逆合成規劃工具"></a></h1>

<h2 id="1-專案概述" data-numberify>1. 專案概述<a class="anchor ms-1" href="#1-專案概述"></a></h2>
<p>AiZynthFinder 是 AstraZeneca Molecular AI 團隊開源的<strong>逆合成規劃工具</strong>（retrosynthetic planning tool），也是該領域目前最成熟的開源方案（845 stars，MIT 授權）。</p>]]></description></item><item><title>CausalBench 完整教學 — 從 AWS 連線到因果網路推論的全方位指南</title><link>https://tpow-001.netlify.app/post/2026-06-05-causalbench-tutorial/</link><pubDate>Fri, 05 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-06-05-causalbench-tutorial/</guid><description><![CDATA[<h1 id="causalbench-完整教學" data-numberify>CausalBench 完整教學<a class="anchor ms-1" href="#causalbench-完整教學"></a></h1>
<blockquote>
<p>從 AWS EC2 連線到 causal network inference（因果網路推論）：用淺顯易懂的方式理解如何在真實 Perturb-seq 資料上跑基因調控網路推論。</p></blockquote>

<h2 id="1-專案定位--這到底是什麼" data-numberify>1. 專案定位 — 這到底是什麼？<a class="anchor ms-1" href="#1-專案定位--這到底是什麼"></a></h2>

<h3 id="用一個比喻來理解" data-numberify>用一個比喻來理解<a class="anchor ms-1" href="#用一個比喻來理解"></a></h3>
<p>想像你有一座巨大的工廠（cell；細胞），裡面有數千台機器（gene；基因）在運作。你想知道：<strong>哪台機器會影響哪台機器？</strong> 例如，當你關掉機器 A 時，機器 B 和 C 是否也會跟著改變？</p>]]></description></item><item><title>SynPlanner 完整教學 — 電腦輔助逆合成規劃</title><link>https://tpow-001.netlify.app/post/2026-06-05-synplanner-tutorial/</link><pubDate>Fri, 05 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-06-05-synplanner-tutorial/</guid><description><![CDATA[<h1 id="synplanner-完整教學--電腦輔助逆合成規劃" data-numberify>SynPlanner 完整教學 — 電腦輔助逆合成規劃<a class="anchor ms-1" href="#synplanner-完整教學--電腦輔助逆合成規劃"></a></h1>

<h2 id="第-1-章專案定位與核心價值" data-numberify>第 1 章：專案定位與核心價值<a class="anchor ms-1" href="#第-1-章專案定位與核心價值"></a></h2>

<h3 id="逆合成規劃-retrosynthetic-planning-是什麼" data-numberify>逆合成規劃 (Retrosynthetic Planning) 是什麼？<a class="anchor ms-1" href="#逆合成規劃-retrosynthetic-planning-是什麼"></a></h3>
<p>逆合成分析 (retrosynthetic analysis) 是有機化學中最核心的策略思維：從目標分子 (target molecule) 出發，反向推導出一系列可行的合成步驟，最終到達可商業購買的起始原料 (building blocks)。</p>]]></description></item><item><title>Syntheseus 完整教學：模組化逆合成規劃框架</title><link>https://tpow-001.netlify.app/post/2026-06-05-syntheseus-tutorial/</link><pubDate>Fri, 05 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-06-05-syntheseus-tutorial/</guid><description><![CDATA[<h1 id="syntheseus-完整教學模組化逆合成規劃框架" data-numberify>Syntheseus 完整教學：模組化逆合成規劃框架<a class="anchor ms-1" href="#syntheseus-完整教學模組化逆合成規劃框架"></a></h1>

<h2 id="1-專案定位與核心價值" data-numberify>1. 專案定位與核心價值<a class="anchor ms-1" href="#1-專案定位與核心價值"></a></h2>

<h3 id="11-什麼是-syntheseus" data-numberify>1.1 什麼是 Syntheseus？<a class="anchor ms-1" href="#11-什麼是-syntheseus"></a></h3>
<p>Syntheseus 是 Microsoft Research 開發的 Python 套件，專為<strong>逆合成規劃 (retrosynthetic planning)</strong> 設計。逆合成分析的目標是：給定一個目標分子 (target molecule)，反向推導出一條或多條從商業可購買的起始物料 (building blocks) 到目標分子的合成路線 (synthesis route)。</p>]]></description></item><item><title>Tutorial: deepforestsci/DeepRetro — LLM 驅動遞歸逆合成完整解析</title><link>https://tpow-001.netlify.app/post/2026-06-05-deepretro-tutorial/</link><pubDate>Fri, 05 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-06-05-deepretro-tutorial/</guid><description><![CDATA[<h1 id="deepretro-完整教學" data-numberify>DeepRetro 完整教學<a class="anchor ms-1" href="#deepretro-完整教學"></a></h1>
<blockquote>
<p><strong>本文目的</strong>：把 DeepRetro 的「為什麼要用 LLM 做逆合成」、「整個 pipeline 怎麼運作」、「怎麼跑起來然後接進你的 lead optimization 工作流」一次講清楚。重點放在<strong>架構理解、實務操作、幻覺防護機制、以及對你場景的適用性評估</strong>。</p>]]></description></item><item><title>教學：microsoft/retrochimera — 前沿 Ensemble 逆合成模型完整指南</title><link>https://tpow-001.netlify.app/post/2026-06-05-retrochimera-tutorial/</link><pubDate>Fri, 05 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-06-05-retrochimera-tutorial/</guid><description><![CDATA[<h1 id="教學microsoftretrochimera--前沿-ensemble-逆合成模型完整指南" data-numberify>教學：microsoft/retrochimera — 前沿 Ensemble 逆合成模型完整指南<a class="anchor ms-1" href="#教學microsoftretrochimera--前沿-ensemble-逆合成模型完整指南"></a></h1>

<h2 id="第-1-章專案定位與價值主張" data-numberify>第 1 章：專案定位與價值主張<a class="anchor ms-1" href="#第-1-章專案定位與價值主張"></a></h2>

<h3 id="這個專案解決什麼問題" data-numberify>這個專案解決什麼問題？<a class="anchor ms-1" href="#這個專案解決什麼問題"></a></h3>
<p>在 drug discovery（藥物發現）的 lead optimization（先導化合物優化）流程中，medicinal chemist（藥物化學家）設計出新的 analog（類似物）後，最關鍵的問題是：<strong>這個分子做得出來嗎？</strong> Retrosynthesis（逆合成分析）就是回答這個問題的核心技術——從目標分子反推可行的合成路徑，直到所有起始物料（building block）都能商業購買。</p>]]></description></item><item><title>NVIDIA digital-biology-examples 完整教學：6 個生物 NIM × 1 個 Blueprint × 1 個 PyPI client 的端到端 cookbook</title><link>https://tpow-001.netlify.app/post/2026-06-02-digital-biology-examples-tutorial/</link><pubDate>Tue, 02 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-06-02-digital-biology-examples-tutorial/</guid><description><![CDATA[<blockquote>
<p>⚠️ 本文件為 <code>NVIDIA/digital-biology-examples</code> 的深度教學與資安審查報告。資安掃描章節（§6）含紅黃綠燈分級；商用部署前<strong>務必審視 §4 NIM 授權條款</strong>。</p></blockquote>

<h2 id="目錄" data-numberify>目錄<a class="anchor ms-1" href="#目錄"></a></h2>
<ol>
<li><a href="/post/2026-06-02-digital-biology-examples-tutorial/#1-%e5%b0%88%e6%a1%88%e5%ae%9a%e4%bd%8d">專案定位</a></li>
<li><a href="/post/2026-06-02-digital-biology-examples-tutorial/#2-%e5%ae%89%e8%a3%9d%e6%8c%87%e5%8d%97">安裝指南</a></li>
<li><a href="/post/2026-06-02-digital-biology-examples-tutorial/#3-%e6%a0%b8%e5%bf%83%e6%9e%b6%e6%a7%8b%e8%a7%a3%e6%9e%90">核心架構解析</a></li>
<li><a href="/post/2026-06-02-digital-biology-examples-tutorial/#4-helper-scripts-%e8%88%87%e5%b7%a5%e5%85%b7%e5%ba%ab%e8%a9%b3%e7%b4%b0%e7%94%a8%e6%b3%95">Helper Scripts 與工具庫詳細用法</a></li>
<li><a href="/post/2026-06-02-digital-biology-examples-tutorial/#5-%e6%87%89%e7%94%a8%e5%a0%b4%e6%99%af8-%e5%80%8b-nim--1-%e5%80%8b-blueprint--5-%e6%a2%9d-recipe">應用場景：8 個 NIM × 1 個 Blueprint × 5 條 recipe</a></li>
<li><a href="/post/2026-06-02-digital-biology-examples-tutorial/#6-%e8%b3%87%e5%ae%89%e6%8e%83%e6%8f%8f%e5%a0%b1%e5%91%8a">資安掃描報告</a></li>
<li><a href="/post/2026-06-02-digital-biology-examples-tutorial/#7-faq">FAQ</a></li>
<li><a href="/post/2026-06-02-digital-biology-examples-tutorial/#8-%e9%80%b2%e9%9a%8e%e6%8a%80%e5%b7%a7">進階技巧</a></li>
<li><a href="/post/2026-06-02-digital-biology-examples-tutorial/#9-%e6%95%b4%e5%90%88%e9%80%b2%e5%85%b6%e4%bb%96%e5%b7%a5%e4%bd%9c%e6%b5%81">整合進其他工作流</a></li>
<li><a href="/post/2026-06-02-digital-biology-examples-tutorial/#10-%e9%87%8d%e9%bb%9e%e6%91%98%e8%a6%81-checklist">重點摘要 Checklist</a></li>
<li><a href="/post/2026-06-02-digital-biology-examples-tutorial/#11-%e9%80%b2%e4%b8%80%e6%ad%a5%e9%96%b1%e8%ae%80">進一步閱讀</a></li>
</ol>
<hr>

<h2 id="1-專案定位" data-numberify>1. 專案定位<a class="anchor ms-1" href="#1-專案定位"></a></h2>

<h3 id="11-一句話" data-numberify>1.1 一句話<a class="anchor ms-1" href="#11-一句話"></a></h3>
<p><code>NVIDIA/digital-biology-examples</code> 是 NVIDIA BioNeMo 平台官方的「<strong>生物 NIM 微服務 cookbook + Blueprint 端到端範例 + 單細胞 GPU 入門資源</strong>」整合倉，是把 BioNeMo Framework 訓練好的模型「<strong>包成 NIM 容器、暴露成 OpenAPI 服務、做成 Python client / Jupyter notebook、再串接成藥物發現工作流</strong>」的最終端使用者出口。</p>]]></description></item><item><title>Tutorial: NVIDIA-BioNeMo/bionemo-framework — 完整解讀（biopharma foundation model 訓練引擎，含 ESM-2 / AMPLIFY / Evo2 / Geneformer / CodonFM / MoCo 全套 recipes）</title><link>https://tpow-001.netlify.app/post/2026-06-02-bionemo-framework-tutorial/</link><pubDate>Tue, 02 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-06-02-bionemo-framework-tutorial/</guid><description><![CDATA[<h1 id="nvidia-bionemobionemo-framework-完整教學" data-numberify>NVIDIA-BioNeMo/bionemo-framework 完整教學<a class="anchor ms-1" href="#nvidia-bionemobionemo-framework-完整教學"></a></h1>
<blockquote>
<p><strong>一句話定位</strong>：NVIDIA Clara BioPharma 平台的<strong>訓練引擎開源層</strong> — GPU 高度最佳化的 recipe 與工具集，把 NVIDIA 在 LLM 上的全套絕活（<strong>TransformerEngine FP8/MXFP8/NVFP4</strong> 低精度、<strong>megatron-FSDP</strong>、<strong>context parallel</strong>、<strong>sequence packing</strong>、<strong>Hopper / Blackwell</strong> 架構優化）搬到 biopharma 領域：從 <strong>蛋白質</strong>（ESM-2 8M→15B、AMPLIFY）、<strong>單細胞 RNA</strong>（Geneformer）、<strong>基因體</strong>（Evo2 1B→40B，1M+ nt context）、<strong>codon</strong>（CodonFM 1B/5B）、<strong>生成式小分子</strong>（MoCo 系列 interpolant：DDPM/VDM/CFM/D3PM/MDLM/DFM），到通用 LLM（Llama3 144K context、Mixtral MoE、Qwen2.5/3）的 biopharma 適配版。整合 <strong>NVIDIA AI 全家桶</strong>（Megatron-Bridge / Automodel / TransformerEngine / NIM），是 NVIDIA/BioNeMo Blueprint hub 的<strong>底層引擎</strong>。</p>]]></description></item><item><title>Tutorial: NVIDIA-BioNeMo/bionemo-framework — 完整解讀（biopharma foundation model 訓練引擎，含 ESM-2 / AMPLIFY / Evo2 / Geneformer / CodonFM / MoCo 全套 recipes）</title><link>https://tpow-001.netlify.app/post/2026-06-02-bionemo-framework/</link><pubDate>Tue, 02 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-06-02-bionemo-framework/</guid><description><![CDATA[<h1 id="nvidia-bionemobionemo-framework-完整教學" data-numberify>NVIDIA-BioNeMo/bionemo-framework 完整教學<a class="anchor ms-1" href="#nvidia-bionemobionemo-framework-完整教學"></a></h1>
<blockquote>
<p><strong>一句話定位</strong>：NVIDIA Clara BioPharma 平台的<strong>訓練引擎開源層</strong> — GPU 高度最佳化的 recipe 與工具集，把 NVIDIA 在 LLM 上的全套絕活（<strong>TransformerEngine FP8/MXFP8/NVFP4</strong> 低精度、<strong>megatron-FSDP</strong>、<strong>context parallel</strong>、<strong>sequence packing</strong>、<strong>Hopper / Blackwell</strong> 架構優化）搬到 biopharma 領域：從 <strong>蛋白質</strong>（ESM-2 8M→15B、AMPLIFY）、<strong>單細胞 RNA</strong>（Geneformer）、<strong>基因體</strong>（Evo2 1B→40B，1M+ nt context）、<strong>codon</strong>（CodonFM 1B/5B）、<strong>生成式小分子</strong>（MoCo 系列 interpolant：DDPM/VDM/CFM/D3PM/MDLM/DFM），到通用 LLM（Llama3 144K context、Mixtral MoE、Qwen2.5/3）的 biopharma 適配版。整合 <strong>NVIDIA AI 全家桶</strong>（Megatron-Bridge / Automodel / TransformerEngine / NIM），是 NVIDIA/BioNeMo Blueprint hub 的<strong>底層引擎</strong>。</p>]]></description></item><item><title>Tutorial: NVIDIA/BioNeMo — BioPharma Developer Asset Hub 完整解讀（生物製藥版 Nemotron：25+ 開源模型 / 10+ NIM 微服務 / 8 個 GPU 函式庫 / 完整藥物開發流程）</title><link>https://tpow-001.netlify.app/post/2026-06-02-bionemo-hub-tutorial/</link><pubDate>Tue, 02 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-06-02-bionemo-hub-tutorial/</guid><description><![CDATA[<h1 id="nvidia-bionemohub-repo完整教學" data-numberify>NVIDIA BioNeMo（Hub Repo）完整教學<a class="anchor ms-1" href="#nvidia-bionemohub-repo完整教學"></a></h1>
<blockquote>
<p><strong>一句話定位</strong>：NVIDIA 在 <strong>BioPharma 領域</strong>的官方 <strong>Developer Asset Hub</strong> — 不是程式庫、不是模型、不是框架，而是一份<strong>集中索引 README</strong>，把散落在 <code>NVIDIA-Digital-Bio</code> / <code>NVIDIA/bionemo-framework</code> / <code>clara-parabricks-workflows</code> / <code>NVlabs</code> / <code>build.nvidia.com</code> 的 <strong>5 大支柱（資料 / 模型 / 函式庫 / 訓練 / NIM 推論）</strong> 串成一條可導覽的入口路徑。</p>]]></description></item><item><title>Tutorial: healthymind-tech/Taiwan-Health-MCP — 台灣醫療資料 MCP 伺服器完整教學</title><link>https://tpow-001.netlify.app/post/2026-06-01-taiwan-health-mcp-tutorial/</link><pubDate>Mon, 01 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-06-01-taiwan-health-mcp-tutorial/</guid><description><![CDATA[<h1 id="taiwan-health-mcp-完整教學" data-numberify>Taiwan-Health-MCP 完整教學<a class="anchor ms-1" href="#taiwan-health-mcp-完整教學"></a></h1>
<blockquote>
<p>把台灣健保 / TFDA / 國際醫療編碼資料一次整合給 LLM agent 用的生產級 MCP 伺服器深度教學。</p></blockquote>
<hr>

<h2 id="1-專案定位" data-numberify>1. 專案定位<a class="anchor ms-1" href="#1-專案定位"></a></h2>
<p>Taiwan-Health-MCP 是一個 <strong>Model Context Protocol (MCP) 伺服器</strong>，目的是讓 Claude / GPT 等 LLM agent 能透過標準工具呼叫介面，查詢以下台灣與國際醫療健康資料：</p>]]></description></item><item><title>Tutorial: healthymind-tech/Taiwan-Health-MCP — 台灣醫療資料 MCP 伺服器完整教學</title><link>https://tpow-001.netlify.app/post/2026-06-01-taiwan-health-mcp/</link><pubDate>Mon, 01 Jun 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-06-01-taiwan-health-mcp/</guid><description><![CDATA[<h1 id="taiwan-health-mcp-完整教學" data-numberify>Taiwan-Health-MCP 完整教學<a class="anchor ms-1" href="#taiwan-health-mcp-完整教學"></a></h1>
<blockquote>
<p>把台灣健保 / TFDA / 國際醫療編碼資料一次整合給 LLM agent 用的生產級 MCP 伺服器深度教學。</p></blockquote>
<hr>

<h2 id="1-專案定位" data-numberify>1. 專案定位<a class="anchor ms-1" href="#1-專案定位"></a></h2>
<p>Taiwan-Health-MCP 是一個 <strong>Model Context Protocol (MCP) 伺服器</strong>，目的是讓 Claude / GPT 等 LLM agent 能透過標準工具呼叫介面，查詢以下台灣與國際醫療健康資料：</p>]]></description></item><item><title>paper-qa 詳細教學 — Agentic RAG for Scientific Literature</title><link>https://tpow-001.netlify.app/post/2026-05-20-paper-qa-tutorial/</link><pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-paper-qa-tutorial/</guid><description><![CDATA[<h1 id="paper-qa-詳細教學--agentic-rag-for-scientific-literature" data-numberify>paper-qa 詳細教學 — Agentic RAG for Scientific Literature<a class="anchor ms-1" href="#paper-qa-詳細教學--agentic-rag-for-scientific-literature"></a></h1>
<blockquote>
<p>⚠️ <strong>資安警示（讀者必看）</strong>：本專案最新 OPEN issue <strong>#1325</strong> 揭露「pickle 反序列化遠端程式碼執行」風險。<strong>永遠不要載入第三方分享、來路不明、或從網路下載的 pre-built <code>pqa</code> index</strong>；index 是含 zlib-compressed pickle 的目錄，攻擊者可放毒。詳見 §6。</p>]]></description></item><item><title>paper-qa 詳細教學 — Agentic RAG for Scientific Literature</title><link>https://tpow-001.netlify.app/post/2026-05-20-paper-qa/</link><pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate><guid>https://tpow-001.netlify.app/post/2026-05-20-paper-qa/</guid><description><![CDATA[<h1 id="paper-qa-詳細教學--agentic-rag-for-scientific-literature" data-numberify>paper-qa 詳細教學 — Agentic RAG for Scientific Literature<a class="anchor ms-1" href="#paper-qa-詳細教學--agentic-rag-for-scientific-literature"></a></h1>
<blockquote>
<p>⚠️ <strong>資安警示（讀者必看）</strong>：本專案最新 OPEN issue <strong>#1325</strong> 揭露「pickle 反序列化遠端程式碼執行」風險。<strong>永遠不要載入第三方分享、來路不明、或從網路下載的 pre-built <code>pqa</code> index</strong>；index 是含 zlib-compressed pickle 的目錄，攻擊者可放毒。詳見 §6。</p>]]></description></item></channel></rss>