<?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>In-Context-Learning on Tarragon</title><link>https://tarrragon.github.io/blog/tags/in-context-learning/</link><description>Recent content in In-Context-Learning on Tarragon</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><copyright>Tarragon (CC BY 4.0)</copyright><lastBuildDate>Thu, 14 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tarrragon.github.io/blog/tags/in-context-learning/index.xml" rel="self" type="application/rss+xml"/><item><title>Few-shot prompting</title><link>https://tarrragon.github.io/blog/llm/knowledge-cards/few-shot-prompting/</link><pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/llm/knowledge-cards/few-shot-prompting/</guid><description>&lt;p>Few-shot prompting 的核心概念是「&lt;strong>在 prompt 內塞幾個 input-output 範例、讓模型透過範例對齊任務&lt;/strong>」。Zero-shot 是不給範例直接給任務、few-shot 是給 1-N 個範例、模型從範例推任務分佈。屬於 in-context learning 的最常見形態、是「對齊任務」這件事的 prompt 層解法、跟 fine-tune 是兩個 endpoint。&lt;/p>
&lt;h2 id="概念位置">概念位置&lt;/h2>
&lt;p>Zero-shot vs few-shot 對照：&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">Zero-shot：
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 2&lt;/span>&lt;span class="cl"> Classify the tone as positive/negative/neutral.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 3&lt;/span>&lt;span class="cl"> Review: &amp;#34;Fine, but I expected more.&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">Few-shot：
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 7&lt;/span>&lt;span class="cl"> Classify the tone as positive/negative/neutral.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 8&lt;/span>&lt;span class="cl"> Examples:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 9&lt;/span>&lt;span class="cl"> &amp;#34;Exceeded my expectations&amp;#34; → positive
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">10&lt;/span>&lt;span class="cl"> &amp;#34;OK, but I wish more features&amp;#34; → negative
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">11&lt;/span>&lt;span class="cl"> &amp;#34;Service was adequate&amp;#34; → neutral
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">12&lt;/span>&lt;span class="cl"> Review: &amp;#34;Fine, but I expected more.&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">13&lt;/span>&lt;span class="cl"> → 模型按範例對齊、更傾向 negative&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Few-shot 跟 fine-tune 對照：&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>維度&lt;/th>
 &lt;th>Few-shot in prompt&lt;/th>
 &lt;th>Fine-tune&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>Iteration&lt;/td>
 &lt;td>分鐘級、改 prompt 即可&lt;/td>
 &lt;td>天級、要 retrain&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>範例容量&lt;/td>
 &lt;td>受 context window 限制（10–50）&lt;/td>
 &lt;td>可以幾千幾萬、整個 dataset 都行&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Cost&lt;/td>
 &lt;td>每次 inference 多付 token&lt;/td>
 &lt;td>一次性訓練 cost、之後 inference 不變&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>模型遷移&lt;/td>
 &lt;td>跨模型即時換、prompt 直接搬&lt;/td>
 &lt;td>綁特定 base model、換模型要 retrain&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="設計責任">設計責任&lt;/h2>
&lt;p>讀 prompt engineering 文章或寫 production prompt 看到「few-shot」「in-context examples」就是這個機制。實作判讀：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>適用任務有「我的標準跟模型預設不同」&lt;/strong>：分類邊界、抽取格式、tone alignment、structured output 形狀。&lt;/li>
&lt;li>&lt;strong>失效在範例選不好&lt;/strong>：cherry-picked 不代表 distribution、cover 不到 edge case、範例彼此衝突。&lt;/li>
&lt;li>&lt;strong>跟 &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/chain-of-thought/" data-link-title="Chain-of-Thought（CoT）" data-link-desc="讓 LLM 先輸出推理步驟再給最終答案的 prompting / 訓練方式、reasoning model 的基礎機制">chain-of-thought&lt;/a> 可疊&lt;/strong>（few-shot CoT 是經典組合）、跟 fine-tune 是 endpoint 取捨。&lt;/li>
&lt;li>&lt;strong>何時轉 fine-tune&lt;/strong>：範例多到撐爆 &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/context-window/" data-link-title="Context Window" data-link-desc="模型一次能處理的最大 token 數量：prompt 加生成的總和上限">context window&lt;/a> 又每天都用、才考慮。預設先 few-shot iterate。&lt;/li>
&lt;li>&lt;strong>Retrieval-augmented prompting&lt;/strong>：把寫死的 few-shot 換成從範例庫即時 retrieve、屬於 &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/rag/" data-link-title="RAG" data-link-desc="Retrieval-Augmented Generation：動態外掛知識給 LLM、繞開模型參數記憶的靜態限制">RAG&lt;/a> 概念延伸。&lt;/li>
&lt;/ol>
&lt;p>完整 prompt 技術 landscape 見 &lt;a href="https://tarrragon.github.io/blog/llm/04-applications/prompt-techniques-landscape/" data-link-title="4.0 Prompt 技術光譜：手法分類、取捨、組合模式" data-link-desc="Zero-shot / few-shot、chain-of-thought、role / template、reflection 等 prompt 技術的分類與取捨、何時 stack 何時不要 stack、跟 fine-tune / RAG / chaining 的邊界">4.0 Prompt 技術光譜&lt;/a>。&lt;/p></description><content:encoded><![CDATA[<p>Few-shot prompting 的核心概念是「<strong>在 prompt 內塞幾個 input-output 範例、讓模型透過範例對齊任務</strong>」。Zero-shot 是不給範例直接給任務、few-shot 是給 1-N 個範例、模型從範例推任務分佈。屬於 in-context learning 的最常見形態、是「對齊任務」這件事的 prompt 層解法、跟 fine-tune 是兩個 endpoint。</p>
<h2 id="概念位置">概念位置</h2>
<p>Zero-shot vs few-shot 對照：</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">Zero-shot：
</span></span><span class="line"><span class="ln"> 2</span><span class="cl">  Classify the tone as positive/negative/neutral.
</span></span><span class="line"><span class="ln"> 3</span><span class="cl">  Review: &#34;Fine, but I expected more.&#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">Few-shot：
</span></span><span class="line"><span class="ln"> 7</span><span class="cl">  Classify the tone as positive/negative/neutral.
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">  Examples:
</span></span><span class="line"><span class="ln"> 9</span><span class="cl">    &#34;Exceeded my expectations&#34; → positive
</span></span><span class="line"><span class="ln">10</span><span class="cl">    &#34;OK, but I wish more features&#34; → negative
</span></span><span class="line"><span class="ln">11</span><span class="cl">    &#34;Service was adequate&#34; → neutral
</span></span><span class="line"><span class="ln">12</span><span class="cl">  Review: &#34;Fine, but I expected more.&#34;
</span></span><span class="line"><span class="ln">13</span><span class="cl">  → 模型按範例對齊、更傾向 negative</span></span></code></pre></div><p>Few-shot 跟 fine-tune 對照：</p>
<table>
  <thead>
      <tr>
          <th>維度</th>
          <th>Few-shot in prompt</th>
          <th>Fine-tune</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Iteration</td>
          <td>分鐘級、改 prompt 即可</td>
          <td>天級、要 retrain</td>
      </tr>
      <tr>
          <td>範例容量</td>
          <td>受 context window 限制（10–50）</td>
          <td>可以幾千幾萬、整個 dataset 都行</td>
      </tr>
      <tr>
          <td>Cost</td>
          <td>每次 inference 多付 token</td>
          <td>一次性訓練 cost、之後 inference 不變</td>
      </tr>
      <tr>
          <td>模型遷移</td>
          <td>跨模型即時換、prompt 直接搬</td>
          <td>綁特定 base model、換模型要 retrain</td>
      </tr>
  </tbody>
</table>
<h2 id="設計責任">設計責任</h2>
<p>讀 prompt engineering 文章或寫 production prompt 看到「few-shot」「in-context examples」就是這個機制。實作判讀：</p>
<ol>
<li><strong>適用任務有「我的標準跟模型預設不同」</strong>：分類邊界、抽取格式、tone alignment、structured output 形狀。</li>
<li><strong>失效在範例選不好</strong>：cherry-picked 不代表 distribution、cover 不到 edge case、範例彼此衝突。</li>
<li><strong>跟 <a href="/blog/llm/knowledge-cards/chain-of-thought/" data-link-title="Chain-of-Thought（CoT）" data-link-desc="讓 LLM 先輸出推理步驟再給最終答案的 prompting / 訓練方式、reasoning model 的基礎機制">chain-of-thought</a> 可疊</strong>（few-shot CoT 是經典組合）、跟 fine-tune 是 endpoint 取捨。</li>
<li><strong>何時轉 fine-tune</strong>：範例多到撐爆 <a href="/blog/llm/knowledge-cards/context-window/" data-link-title="Context Window" data-link-desc="模型一次能處理的最大 token 數量：prompt 加生成的總和上限">context window</a> 又每天都用、才考慮。預設先 few-shot iterate。</li>
<li><strong>Retrieval-augmented prompting</strong>：把寫死的 few-shot 換成從範例庫即時 retrieve、屬於 <a href="/blog/llm/knowledge-cards/rag/" data-link-title="RAG" data-link-desc="Retrieval-Augmented Generation：動態外掛知識給 LLM、繞開模型參數記憶的靜態限制">RAG</a> 概念延伸。</li>
</ol>
<p>完整 prompt 技術 landscape 見 <a href="/blog/llm/04-applications/prompt-techniques-landscape/" data-link-title="4.0 Prompt 技術光譜：手法分類、取捨、組合模式" data-link-desc="Zero-shot / few-shot、chain-of-thought、role / template、reflection 等 prompt 技術的分類與取捨、何時 stack 何時不要 stack、跟 fine-tune / RAG / chaining 的邊界">4.0 Prompt 技術光譜</a>。</p>
]]></content:encoded></item></channel></rss>