<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>NLP on YennJ12 Engineering Blog</title><link>https://yennj12.js.org/yennj12_blog_V4/tags/nlp/</link><description>Recent content in NLP on YennJ12 Engineering Blog</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Sun, 21 Jun 2026 14:00:00 +0800</lastBuildDate><atom:link href="https://yennj12.js.org/yennj12_blog_V4/tags/nlp/feed.xml" rel="self" type="application/rss+xml"/><item><title>如何衡量 AI 的準確度（二）：大型語言模型（LLM）的評估方法</title><link>https://yennj12.js.org/yennj12_blog_V4/posts/ai-accuracy-evaluation-part2-zh/</link><pubDate>Mon, 18 May 2026 10:00:00 +0800</pubDate><guid>https://yennj12.js.org/yennj12_blog_V4/posts/ai-accuracy-evaluation-part2-zh/</guid><description>前言：文字回答沒有「標準答案」 在第一篇文章中，我們討論了分類與回歸任務的評估——這些任務都有明確的真值（ground truth）可以比對。
但大型語言模型（LLM）面對的是一個根本不同的問題：
「請幫我摘要這篇報告。」
這個問題沒有唯一的正確答案。一個好的摘要可以有很多種寫法，每種都合理。那我們怎麼知道模型給出的摘要是「好」還是「差」的？
這正是 LLM 評估最困難的地方，也是這個領域近幾年最活躍的研究方向之一。
本文將介紹四種主要的評估方法：
字面重疊指標：BLEU、ROUGE 困惑度：Perplexity 語意相似度：BERTScore 以 AI 評估 AI：LLM-as-a-Judge 一、字面重疊指標：BLEU 與 ROUGE 這是最早用於評估文字生成品質的方法，核心思路是：把 AI 的輸出與人類寫的「參考答案」做字詞重疊比較。
BLEU（Bilingual Evaluation Understudy） BLEU 最早設計用於機器翻譯評估，衡量模型輸出的 n-gram（連續 n 個字的片段）有多大比例出現在參考答案中。
計算邏輯（簡化版）：
模型輸出：The cat is sitting on the mat. 參考答案：The cat sat on the mat. 1-gram 重疊：The, cat, on, the, mat → 5/7 ≈ 71% 2-gram 重疊：The cat, on the, the mat → 3/6 = 50% BLEU 分數是多個 n-gram precision 的幾何平均，加上一個「簡短懲罰」（防止模型生成很短但精確率高的回答）。</description></item><item><title>AI 工程從零開始｜Phase 5 Part 1：NLP 基礎 — 文字是智慧的介面</title><link>https://yennj12.js.org/yennj12_blog_V4/posts/ai-eng-from-scratch-phase5-part1-text-fundamentals-zh/</link><pubDate>Sun, 21 Jun 2026 13:00:00 +0800</pubDate><guid>https://yennj12.js.org/yennj12_blog_V4/posts/ai-eng-from-scratch-phase5-part1-text-fundamentals-zh/</guid><description>大多數人處理文字時，直接把原始字串丟進模型，期待魔法發生。 正確做法是：先理解文字的統計結構，再選擇適合問題規模的表示法。 詞袋夠用的場景別用嵌入；嵌入必要的場景別省那筆運算。 表示法的選擇，決定了整個 NLP 系統 70% 的天花板。
面試情境 你被指派設計一個電商評論分析系統：每天新增 50 萬則中文評論，需支援情感分類（正/負/中性）、主題抽取（5 大類）、以及即時關鍵詞搜尋。系統目前是 POC 階段，但六個月後要上線服務百萬用戶。請說明你的 NLP 文字表示策略，以及各階段如何演進。
一、核心問題：文字為什麼難處理？ 文字是人類智慧的介面，卻是機器最難消化的資料形式。數字有大小關係，圖片有空間結構，文字呢？「蘋果」和「apple」語義相同，但在字元層面毫無關聯；「我愛你」和「你愛我」詞彙完全相同，語義卻截然不同。
三個根本挑戰：
稀疏性問題：一個詞彙表有 10 萬個詞，one-hot 向量就是 100,000 維的稀疏向量，99.999% 的維度是 0。相似度計算毫無意義。 語序問題：詞袋模型把「貓追狗」和「狗追貓」視為完全相同的文件。語序攜帶了大量語義資訊。 語境問題：「蘋果很好吃」和「蘋果發布新品」中，「蘋果」的語義完全不同。靜態嵌入無法處理這種多義性。 工程師的決策框架：
問題規模 × 語義複雜度 → 選擇表示法 ───────────────────────────────────────────────── 規模小 + 語義簡單 → TF-IDF + 邏輯回歸 (&amp;lt; 1ms, 低成本) 規模中 + 語義中等 → Word2Vec/FastText + SVM (&amp;lt; 5ms, 中成本) 規模大 + 語義複雜 → Transformer Embedding (10-50ms, 高成本) ───────────────────────────────────────────────── 這篇文章的目標：讓你在面試中能清楚說明為什麼在特定場景選擇特定表示法，而不只是背誦演算法。
二、三個演進階段 ╔══ Phase 1：POC（&amp;lt; 10K 用戶，&amp;lt; 5 萬則評論）══╗ 目標：2 週內驗證可行性，準確率 &amp;gt; 75% 即可。</description></item><item><title>AI 工程從零開始｜Phase 5 Part 2：Seq2Seq 與注意力機制 — Transformer 前夜</title><link>https://yennj12.js.org/yennj12_blog_V4/posts/ai-eng-from-scratch-phase5-part2-seq2seq-attention-zh/</link><pubDate>Sun, 21 Jun 2026 13:30:00 +0800</pubDate><guid>https://yennj12.js.org/yennj12_blog_V4/posts/ai-eng-from-scratch-phase5-part2-seq2seq-attention-zh/</guid><description>大多數人把 RNN 當作「處理序列的工具」，把 LSTM 當作「改良版 RNN」，就停在這裡了。 真正的工程師會問：為什麼固定長度的 context vector 是瓶頸？注意力機制解決了什麼具體問題？ Transformer 不是憑空出現的魔法，它是對 RNN 家族每一個痛點的系統性回應。 理解這段歷史，你才能真正讀懂「Attention is All You Need」。
面試情境：「你正在設計一個英中機器翻譯系統，句子長度最長 200 個 token。請說明你會選擇哪種架構，為什麼不直接用純 RNN，LSTM 與 GRU 在這個場景下如何選擇，以及如果引入注意力機制，架構上需要做哪些改變？」
一、核心問題：序列資料的特殊挑戰 一般的前饋神經網路（Feedforward NN）假設輸入之間互相獨立，但語言、時間序列、語音等資料天生帶有順序依賴：
「我昨天沒有吃飯」與「我昨天沒有喝飯」—— 語義完全不同，差異在第五個字 翻譯「The animal didn&amp;rsquo;t cross the street because it was too tired」—— &amp;ldquo;it&amp;rdquo; 指的是 animal 還是 street？需要回顧前文 股票預測：今天的價格取決於過去 N 天的走勢 序列建模的三大工程挑戰：
挑戰 具體現象 工程代價 可變長度輸入 句子從 5 到 500 token 不等 固定大小向量無法直接處理 長程依賴 200 token 前的主語影響動詞 梯度消失導致無法學習 順序計算瓶頸 t 步必須等 t-1 步完成 無法並行，GPU 利用率低 這三個問題，RNN → LSTM/GRU → Seq2Seq+Attention → Transformer，每一步都是針對前一步遺留問題的工程解法。</description></item><item><title>AI 工程從零開始｜Phase 5 Part 3：進階 NLP — BERT、問答系統與語言理解</title><link>https://yennj12.js.org/yennj12_blog_V4/posts/ai-eng-from-scratch-phase5-part3-advanced-nlp-zh/</link><pubDate>Sun, 21 Jun 2026 14:00:00 +0800</pubDate><guid>https://yennj12.js.org/yennj12_blog_V4/posts/ai-eng-from-scratch-phase5-part3-advanced-nlp-zh/</guid><description>大多數人以為 NLP 就是把文字丟進模型等答案； 真正的工程師知道語言理解需要雙向上下文、任務特化微調、以及在延遲與準確率間反覆取捨。 問題不是「用哪個模型」，而是「這個系統在 P99 500ms 內能可靠回答什麼問題」。 從 BERT 到問答系統，進階 NLP 的核心是：為正確的任務選擇正確的架構。
面試情境： 你的團隊正在為一個法律文件平台建構問答系統。文件平均 50 頁，用戶問題如「這份合約的違約金條款是什麼？」。系統需在 2 秒內回答，準確率要求 &amp;gt; 90%，每月處理 50 萬筆查詢。請設計整體架構，並說明為何選擇 Extractive QA 而非 Generative QA，以及如何在規模下維持品質。
一、核心問題：語言理解 vs 語言生成的本質差異 NLP 工程中最常見的誤解是把「理解」和「生成」混為一談。這兩個任務在模型架構、訓練目標、推論策略上有根本差異。
語言理解（Understanding）的本質：
任務：分類、命名實體識別、關係抽取、問答中的答案定位 需要：雙向上下文（左邊和右邊的詞都重要） 代表架構：BERT（Encoder-only Transformer） 輸出：分類標籤、span 位置、相似度分數 語言生成（Generation）的本質：
任務：文字摘要、機器翻譯、對話回覆、程式碼生成 需要：自回歸解碼（autoregressive decoding） 代表架構：GPT 系列（Decoder-only）、T5（Encoder-Decoder） 輸出：Token 序列 為什麼這個差異在工程上很重要？
面向 理解任務 生成任務 推論延遲 10–50ms（一次 forward pass） 200ms–5s（逐 token 生成） 輸出確定性 高（span 位置或分類） 低（temperature 影響大） 可審計性 高（可追蹤到原文哪句話） 低（hallucination 風險） GPU 記憶體 BERT-base: 440MB GPT-3.</description></item><item><title>Building a Sentiment-Driven US Stock Trading System with X.com Real-Time Analysis</title><link>https://yennj12.js.org/yennj12_blog_V4/posts/sentiment-driven-stock-trading-aws-cdk-twitter/</link><pubDate>Sat, 24 Jan 2026 14:00:00 +0800</pubDate><guid>https://yennj12.js.org/yennj12_blog_V4/posts/sentiment-driven-stock-trading-aws-cdk-twitter/</guid><description>Build an intelligent US stock trading system using AWS CDK that analyzes real-time X.com posts, performs sentiment analysis with ML models, and executes trades based on social media sentiment for configured stocks like TSLA, GOOG, and more.</description></item></channel></rss>