<?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>Pretraining on Tarragon</title><link>https://tarrragon.github.io/blog/tags/pretraining/</link><description>Recent content in Pretraining on Tarragon</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><copyright>Tarragon (CC BY 4.0)</copyright><lastBuildDate>Tue, 12 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tarrragon.github.io/blog/tags/pretraining/index.xml" rel="self" type="application/rss+xml"/><item><title>CLIP</title><link>https://tarrragon.github.io/blog/llm/knowledge-cards/clip/</link><pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/llm/knowledge-cards/clip/</guid><description>&lt;p>CLIP（Contrastive Language-Image Pre-training、Radford et al., 2021）的核心概念是「&lt;strong>用 4 億組 (image, caption) 對、訓 image encoder 跟 text encoder、讓對應圖文的 embedding 在共享空間靠近&lt;/strong>」。CLIP 本身不是 VLM、但它的 image encoder 成為現代幾乎所有 &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/vlm/" data-link-title="VLM（Vision-Language Model）" data-link-desc="同時吃圖片 &amp;#43; 文字輸入、產生文字輸出的 LLM 變體、coding 工作流中處理截圖 / 設計稿 / UI debug 的基底">VLM&lt;/a> 的 &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/vision-encoder/" data-link-title="Vision Encoder" data-link-desc="VLM 內部負責把圖片轉成可進 Transformer 的向量序列的模組、ViT / CLIP encoder 為主流">vision encoder&lt;/a> 起點。&lt;/p>
&lt;h2 id="概念位置">概念位置&lt;/h2>
&lt;p>CLIP 的訓練架構（簡化）：&lt;/p>





&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="ln"> 1&lt;/span>&lt;span class="cl">4 億組 (image, caption) 從網路爬：
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 2&lt;/span>&lt;span class="cl"> (photo of cat, &amp;#34;a fluffy orange cat sitting&amp;#34;)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 3&lt;/span>&lt;span class="cl"> (screenshot of code, &amp;#34;Python error: NameError x undefined&amp;#34;)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 4&lt;/span>&lt;span class="cl"> ...
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 5&lt;/span>&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 6&lt;/span>&lt;span class="cl">訓練：
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 7&lt;/span>&lt;span class="cl"> image → Image encoder（ViT-L/14）→ image_embedding
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 8&lt;/span>&lt;span class="cl"> caption → Text encoder（Transformer）→ text_embedding
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 9&lt;/span>&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">10&lt;/span>&lt;span class="cl"> 正向對（matching image-caption）：embedding 應該相似
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">11&lt;/span>&lt;span class="cl"> 負向對（同 batch 內其他不匹配）：embedding 應該遠
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">12&lt;/span>&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">13&lt;/span>&lt;span class="cl"> [Contrastive learning](/llm/knowledge-cards/contrastive-learning/) loss&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>訓完後得到：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>共享 embedding 空間&lt;/strong>：圖跟文字 embedding 都在 768/1024 維空間、相似度比較有意義&lt;/li>
&lt;li>&lt;strong>Zero-shot classification 能力&lt;/strong>：給一張圖、給 100 個文字標籤、看哪個 embedding 最接近 → 不用 fine-tune 就能分類&lt;/li>
&lt;li>&lt;strong>Image search / 多模態 retrieval&lt;/strong>：text 跟 image 互查、是 multimodal RAG 基底&lt;/li>
&lt;/ol>
&lt;p>對 VLM 的影響：&lt;/p>





&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">CLIP 訓出來後：
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">2&lt;/span>&lt;span class="cl"> image encoder 已經學會「把圖片變成有意義的 embedding」
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">3&lt;/span>&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">4&lt;/span>&lt;span class="cl">VLM 訓練時：
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">5&lt;/span>&lt;span class="cl"> - 直接拿 CLIP 的 image encoder 當 vision encoder（凍住或一起 fine-tune）
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">6&lt;/span>&lt;span class="cl"> - 接上 LLM、用 image-text 任務資料訓 alignment
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">7&lt;/span>&lt;span class="cl"> - 不用從頭訓 vision encoder、省下大量 compute&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>跟 SigLIP 的關係：SigLIP（Zhai et al., 2023）是 Google 提出的 CLIP 變體、用 sigmoid loss 取代原本 InfoNCE、訓練更穩、品質略佳；Gemma 3 / Idefics 等用 SigLIP 而非原 CLIP。&lt;/p></description><content:encoded><![CDATA[<p>CLIP（Contrastive Language-Image Pre-training、Radford et al., 2021）的核心概念是「<strong>用 4 億組 (image, caption) 對、訓 image encoder 跟 text encoder、讓對應圖文的 embedding 在共享空間靠近</strong>」。CLIP 本身不是 VLM、但它的 image encoder 成為現代幾乎所有 <a href="/blog/llm/knowledge-cards/vlm/" data-link-title="VLM（Vision-Language Model）" data-link-desc="同時吃圖片 &#43; 文字輸入、產生文字輸出的 LLM 變體、coding 工作流中處理截圖 / 設計稿 / UI debug 的基底">VLM</a> 的 <a href="/blog/llm/knowledge-cards/vision-encoder/" data-link-title="Vision Encoder" data-link-desc="VLM 內部負責把圖片轉成可進 Transformer 的向量序列的模組、ViT / CLIP encoder 為主流">vision encoder</a> 起點。</p>
<h2 id="概念位置">概念位置</h2>
<p>CLIP 的訓練架構（簡化）：</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="ln"> 1</span><span class="cl">4 億組 (image, caption) 從網路爬：
</span></span><span class="line"><span class="ln"> 2</span><span class="cl">  (photo of cat, &#34;a fluffy orange cat sitting&#34;)
</span></span><span class="line"><span class="ln"> 3</span><span class="cl">  (screenshot of code, &#34;Python error: NameError x undefined&#34;)
</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></span><span class="line"><span class="ln"> 6</span><span class="cl">訓練：
</span></span><span class="line"><span class="ln"> 7</span><span class="cl">  image → Image encoder（ViT-L/14）→ image_embedding
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">  caption → Text encoder（Transformer）→ text_embedding
</span></span><span class="line"><span class="ln"> 9</span><span class="cl">
</span></span><span class="line"><span class="ln">10</span><span class="cl">  正向對（matching image-caption）：embedding 應該相似
</span></span><span class="line"><span class="ln">11</span><span class="cl">  負向對（同 batch 內其他不匹配）：embedding 應該遠
</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">  [Contrastive learning](/llm/knowledge-cards/contrastive-learning/) loss</span></span></code></pre></div><p>訓完後得到：</p>
<ol>
<li><strong>共享 embedding 空間</strong>：圖跟文字 embedding 都在 768/1024 維空間、相似度比較有意義</li>
<li><strong>Zero-shot classification 能力</strong>：給一張圖、給 100 個文字標籤、看哪個 embedding 最接近 → 不用 fine-tune 就能分類</li>
<li><strong>Image search / 多模態 retrieval</strong>：text 跟 image 互查、是 multimodal RAG 基底</li>
</ol>
<p>對 VLM 的影響：</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="ln">1</span><span class="cl">CLIP 訓出來後：
</span></span><span class="line"><span class="ln">2</span><span class="cl">  image encoder 已經學會「把圖片變成有意義的 embedding」
</span></span><span class="line"><span class="ln">3</span><span class="cl">
</span></span><span class="line"><span class="ln">4</span><span class="cl">VLM 訓練時：
</span></span><span class="line"><span class="ln">5</span><span class="cl">  - 直接拿 CLIP 的 image encoder 當 vision encoder（凍住或一起 fine-tune）
</span></span><span class="line"><span class="ln">6</span><span class="cl">  - 接上 LLM、用 image-text 任務資料訓 alignment
</span></span><span class="line"><span class="ln">7</span><span class="cl">  - 不用從頭訓 vision encoder、省下大量 compute</span></span></code></pre></div><p>跟 SigLIP 的關係：SigLIP（Zhai et al., 2023）是 Google 提出的 CLIP 變體、用 sigmoid loss 取代原本 InfoNCE、訓練更穩、品質略佳；Gemma 3 / Idefics 等用 SigLIP 而非原 CLIP。</p>
<h2 id="設計責任">設計責任</h2>
<p>讀 VLM paper / model card 看到「CLIP backbone」「SigLIP encoder」「OpenCLIP weights」就是這 family。寫 code 場景的判讀：</p>
<ol>
<li><strong>CLIP 本身不是 VLM</strong>：CLIP 只有 image-text 相似度、不能生文字回答；VLM 是「CLIP 的 image encoder + LLM + alignment training」</li>
<li><strong>不同 CLIP 變體影響 VLM 能力</strong>：CLIP ViT-L/14 是經典、SigLIP / DFN（Apple）等變體在某些任務更強</li>
<li><strong>Multimodal RAG 直接用 CLIP</strong>：純 image-text retrieval（如「找跟這張圖相似的 doc」）不需要完整 VLM、CLIP-like 模型就夠</li>
<li><strong>CLIP 用於 zero-shot 分類仍實用</strong>：給定固定的 class label set（如「截圖 / 設計稿 / 程式碼 / 文件」）、CLIP 能直接 zero-shot 分類、不需要訓 specific classifier</li>
</ol>
]]></content:encoded></item></channel></rss>