2025年7月2日 星期三

用 Gen AI 提升資料分析力:Google Prompting Essentials 課後筆記 Part 3

 資料分析是不是讓你感到壓力山大?別擔心,Generative AI(生成式 AI)正在改變我們處理資料的方式。這篇文章是我在 Google《Prompting Essentials》第三堂課的重點筆記,整理出最實用的技巧與觀念,讓你無論是數據新手還是略懂皮毛,都能快速上手,解鎖 Gen AI 的資料分析潛力。


🔍 Gen AI 在資料分析的六大應用

  1. 文字分析

    • 自動萃取主題、分析語氣、分類意見。例如分析顧客留言、問卷回饋。

  2. 資料增補

    • 在資料量不足時,生成擬真的數據來訓練模型(像詐欺偵測),但別忘了標註來源,因為這些資料只是趨勢參考,不是事實。

  3. 問答系統

    • 你可以用自然語言提問:「上季銷售最好的產品是什麼?」AI 幫你找出答案。

  4. 情境模擬

    • 根據歷史資料預測未來可能走向,像是預估人潮、辦公室訪客數等。

  5. 圖像與視覺分析

    • AI 可解讀圖表趨勢,幫助你從銷售圖表中快速找出關鍵訊息。

  6. 市場與顧客研究

    • 利用 AI 探索社群平台、問卷與產業報告中的潛在商機與趨勢變化。


🛠 Gen AI 的極限與調整策略

不是所有分析都適合交給 Gen AI。

  • ❌ 不擅長:複雜統計、精準運算、強結構資料分析。

  • ✅ 建議方式:請 AI 提供方法建議或操作步驟(prompt:「請說明我可以用哪些方法進行變異數分析?」)

這種「間接使用」策略讓你把 AI 當顧問,而不是資料科學家。


📊 AI 輔助資料清理與準備

  1. 錯誤偵測與修正

    • prompt 示範:「這是我的原始資料,請指出潛在錯誤並建議修正方式。」

  2. 資料標準化

    • 格式統一、欄位一致性、日期格式轉換等。

  3. 多工具搭配

    • 使用不同的 Gen AI 工具負責不同工作(格式轉換、查詢、欄位補齊),才能建立乾淨又有用的資料基礎。


🧠 如何讓 AI 更懂你的需求?學會調整 Sampling 參數

生成式 AI 的回應來自機率抽樣,而你可以透過三個參數來「調教」它的創意與準確性。

1. Temperature(溫度)

控制 AI 回應的創意程度:

  • `0.1`:保守,選擇最可能的答案,適合數據分析、資訊查詢。

  • `1.0+`:開放性高,適合創意寫作、腦力激盪。

2. Top-k

只從前 k 個最可能的選項中選擇:

  • `k=1`:保證每次都選最常見的答案(又稱 greedy decoding)

  • `k=100`:增加多樣性,適合創意性任務。

3. Top-p

只從總機率累積達 p 的 token 中抽選:

  • `p=0.1`:偏向高信賴回應。

  • `p=0.8`:更多元、有驚喜,但需注意幻覺風險。

📌 小技巧:想減少胡說八道(hallucination)?降低 temperature 和 top-p。


🎯 想用 Gen AI 幫助自己快速理解新事物?這些 prompt 請收好!

  • 解釋術語:「請用簡單中文解釋什麼是 compound interest?」

  • 翻譯與語境說明:「'saru mo ki kara ochiru' 是什麼意思?」

  • 解讀圖表:「請簡單解釋這張圖的主要趨勢」

  • 拆解 spreadsheet:「B12 的公式是什麼意思?」

  • 錯誤訊息排查:「'kernel panic' 是什麼錯?」


🗣 延伸應用:幫你準備簡報講稿

透過 long context window 的工具(如 Google AI Studio),你可以:

  • 根據簡報內容自動產出講稿

  • 根據觀眾身分(如主管)調整語氣

  • 錄音後請 AI 回饋語速、語氣等演說技巧


✅ 小結:Gen AI 是助力不是萬能

Gen AI 在資料分析與理解陌生資訊方面提供了超強輔助,但別忘了:

  • 要驗證它的輸出(尤其是數據)

  • 要揭露你是否用了 AI 工具

  • 要選對場合,正確使用 prompt 與 sampling 參數


📬 喜歡這類內容?記得訂閱部落格,未來還會分享更多 Gen AI 實戰技巧!

2025年7月1日 星期二

Google Prompting Essentials 第二堂課心得分享(Part 2)

第一次玩 ChatGPT 或 Gemini 的時候,可能覺得這些工具就像全能小幫手,只要輸入一段指令,它就會「變出答案」。但當你開始希望它生成完整商業計畫、分析 50 頁報告、或根據對話脈絡給出更有深度的建議,你可能會發現——事情沒那麼簡單。

原來,不是你不會用 AI,而是你還沒學會「如何讓 AI 懂你」。

這正是我在修完 Google 推出的《Prompting Essentials》第 2 堂課 後最大的體悟:

在長文本(Long Context)中,如何用正確的方式說話,讓 AI 懂你的複雜任務與精細邏輯,才是生成式 AI 的關鍵技術。

以下是課程中幾個最值得學起來的觀念與技巧:


🧱 一、Token 是 AI 世界的基本單位,你必須懂它

當你輸入一段文字時,AI 模型會先將文字切割成「Token」。

  • 一個 token 可能是「一個字母」、「一段詞語」甚至是一整個片語。

  • Prompt 越長,消耗的 token 越多;生成的內容也會占用 token 數量。

  • 每個模型有自己能處理的 token 限制。例如:

    • GPT-3.5:約 4,096 tokens

    • GPT-4 Turbo、Gemini 1.5:可達百萬級 tokens(可以看整本書)

👉 知道 token 限制,不只是技術人員的事,也是每位 prompt 設計者的基本素養。


📚 二、Long Context 是 LLM 的「工作記憶」,不是無限容量的硬碟

有了「Long Context」,你可以一次提供 AI 更多背景資訊,例如:

  • 整本報告或長篇對話記錄

  • 使用者歷史資料、風格偏好

  • 多階段任務的來龍去脈

但 Google 課程提醒我們:不是資訊丟得越多越好,而是要「給得剛剛好」。

這時你就要用到下面這個超實用的技巧:


🧠 三、Chain of Density(密度鏈)技巧:幫 AI 找到資訊核心

這個技巧是幫助 AI 「濃縮重要內容 → 再強化關鍵重點」 的方式。

舉例來說,如果你輸入一大段產品規格書,Chain of Density 的做法是:

  1. 先請 AI 摘要為「精簡版概要」

  2. 再要求它進一步「加密度」——將摘要裡的關鍵詞延伸描述,補上背景、條件與限制

這樣能讓模型更聚焦在重要元素上,也大大提升輸出品質。這比你一次就丟進一堆內容,然後希望 AI 自行理解重點,效果好太多。


🧭 四、Prompting Framework:Task, Context, Reference, Evaluate, Iterate

Google 課程提出了一個非常實用的 Prompt 設計框架,幫你不再亂槍打鳥地寫指令:

元素說明範例
Task明確說明任務是什麼「幫我根據這份行銷簡報,寫出一個30秒電視廣告腳本」
Context提供背景脈絡「我們是一家環保牙刷品牌,主打永續、天然材質」
Reference提供參考資料或風格「我們喜歡 Apple 或 Airbnb 的簡潔敘事風格」
Evaluate設定評估標準「請列出內容的 CTA(行動呼籲)與 USP(獨特賣點)」
Iterate保留回饋空間進行優化「根據下方建議再調整一次腳本」

➡️ 有了這個架構,你就不只是「丟一句話」,而是進行一場「專業對話」。


💬 五、AI 不是神,但會記得你說過的話(前提是你不關視窗)

Long context 的另一個好處是:在同一對話中,AI 能記得你曾說過什麼。
這就像跟一個已經了解你背景的人對話,不必每次都從頭交代。

但別忘了:

如果你重開聊天視窗,那些記憶就會「清空」。
想保留記憶,就需要運用 Prompt Chaining、資料儲存機制或 API 串接。


✅ 結語:學會「說得剛剛好」,AI 就能做得剛剛好

很多人誤會 Prompt 設計只是工程師的事,其實這是一種**「對 AI 說人話」的溝通能力**。
透過理解 token 限制、善用 long context、套用 Chain of Density 與 Google 推的 Prompting Framework,你就能讓 AI 不只是回應,而是成為真正的共創夥伴。

2025年6月20日 星期五

😱 菜鳥日誌:WSL 裡的 npm install 怎麼搞定?(說好的 Vibe Coding 呢?我為了追 AI 夥伴 Claude Code 拼了!)


哈囉!各位跟我一樣,正在程式碼世界裡努力探索的未來大神們!

今天想跟大家分享我最近經歷的一場「驚心動魄」的除錯之旅。說真的,這段經歷讓我對「當工程師」這件事有了更深一層的體會:程式碼寫得好不好是一回事,但要先把開發環境搞定,才是關鍵啊!

最近,我迷上了 Vibe Coding 這個概念。簡單來說,就是當你對語法、常用程式碼都很熟悉後,只要腦袋裡想好需求,手就可以流暢地把程式碼寫出來,那種沉浸在編碼節奏裡的感覺,超棒的!我一直想朝著那個境界邁進,希望能達到那種「想到什麼就能寫什麼」的境界。

而為了加速我達到 Vibe Coding 的理想狀態,我最近對 Anthropic 的 Claude Code 超級感興趣!聽說它能幫我們寫程式寫得更快、更聰明,讓開發更像是順著直覺走,簡直是實現 Vibe Coding 的「神器」啊!

於是,我信心滿滿地打開我的 WSL Ubuntu 終端機(就是那個在 Windows 裡跑 Linux 的酷東西),準備把我期待已久的 Claude Code 安裝起來,想著只要裝好,我的 Vibe Coding 之路就此開啟!

🚀 興奮的第一步:說好的流暢開發體驗呢?

我多麼期待著,只要簡單地輸入 npm install 指令,Claude Code 就會自動出現,然後我就能立刻體驗 AI 寫程式的快感,進入 Vibe Coding 的境界了!

我敲下了:

Bash
# 感覺安裝 AI 工具就是這樣吧?
npm install -g claude-code
# 或者,如果是在專案裡面用的話,可能是這樣
npm install claude-code

結果... 螢幕上跳出來的不是「安裝成功」的綠色字樣,而是一堆我看不懂的紅色錯誤訊息... 😨 我說好的 Vibe Coding 呢?怎麼第一個關卡就卡在環境設定上了?

🚨 第一次被打擊:什麼是 EPERM?環境先給你一記下馬威!

我的終端機吐出了一大段錯誤,最顯眼的就是 EPERM: operation not permitted。天啊,這是什麼巫術?

npm warn cleanup Failed to remove some directories [
npm warn cleanup    [
npm warn cleanup      '\\\\?\\UNC\\wsl.localhost\\Ubuntu\\home\\linux-like\\codeDemo\\node_modules',
npm warn cleanup      [Error: EPERM: operation not permitted, rmdir '\\wsl.localhost\Ubuntu\home\linux-like\codeDemo\node_modules\node'] {
npm warn cleanup        errno: -4048,
npm warn cleanup        code: 'EPERM',
npm warn cleanup        syscall: 'rmdir',
npm warn cleanup        path: '\\\\wsl.localhost\\Ubuntu\home\linux-like\codeDemo\\node_modules\\node'
npm warn cleanup      }
npm warn cleanup    ]
npm warn cleanup ]
npm error code 1
npm error path \\wsl.localhost\Ubuntu\home\linux-like\codeDemo\node_modules\node
npm error command failed

我有點慌了。EPERM 聽起來像是「權限不夠」?但我在 WSL 自己的終端機裡操作啊,怎麼會沒權限?而且,那個 \\wsl.localhost 的路徑,怎麼看起來這麼像 Windows 的路徑?

我的初步猜想: 老師們說過,WSL 裡面跑 Linux,外面是 Windows,它們之間可能在檔案權限上會打架!難道這就是傳說中的「跨系統權限衝突」?

我趕緊確認了一下,我的程式碼專案是不是真的放在 WSL 的 Linux 檔案系統裡面(比如 /home/我的名字/我的專案),而不是放在 Windows 的 C 槽,然後從 WSL 去「看」它。確認路徑沒問題後,我試著再跑一次:

Bash
# 我確定我在 WSL 的 /home/linux-like/codeDemo 這個路徑下
cd ~/codeDemo
npm install claude-code # 再次挑戰!這次應該會成功了吧?

🤯 第二次被打擊:什麼!你怎麼跑去 Windows 了?!我的 Vibe Coding 夢搖搖欲墜...

這一次,錯誤訊息雖然變了,但並沒有讓我鬆一口氣,反而更困惑了!它竟然說 npm 試圖去執行 C:\Windows\system32\cmd.exe,還要找一個叫做 C:\Windows\installArchSpecificPackage 的東西!

npm error command C:\Windows\system32\cmd.exe /d /s /c node installArchSpecificPackage
npm error '\\wsl.localhost\Ubuntu\home\linux-like\codeDemo\node_modules\node'
npm error 檔案名稱、目錄名稱或磁碟區標籤語法錯誤。
npm error node:internal/modules/cjs/loader:1408
npm error   throw err;
npm error   ^
npm error
npm error Error: Cannot find module 'C:\Windows\installArchSpecificPackage'

等等!我是在 Linux 終端機裡啊,怎麼會跑去 Windows 執行指令?這就像我點了一份滷肉飯,結果送來一盤義大利麵,還是生義大利麵那種感覺!😱 我想著流暢的 Vibe Coding,結果連個工具都裝不好,這打擊真的有點大!

我的進一步猜想: 難道,我的 WSL 裡面的 nodenpm 指令,其實是 Windows 的版本?而不是 Linux 裡面的版本?這就好像,我在 Linux 裡喊「node」,結果 Windows 的 node 跑出來回應一樣!

為了驗證這個恐怖的想法,我輸入了這幾個指令:

Bash
which node # 檢查 node 指令從哪裡來
which npm  # 檢查 npm 指令從哪裡來
node -v    # 檢查 node 的版本
npm -v     # 檢查 npm 的版本

果然!which nodewhich npm 竟然沒有顯示 /usr/bin/node 這種 Linux 路徑,感覺就是沒找到,或者是找到一個怪怪的路徑!這下我明白了,問題的根源就是出在這裡!原來,我以為的 Vibe Coding,其實需要一個穩固的基底環境才能實現啊!

✨ 絕地反擊:大神推薦的 nvm 登場!我的 Vibe Coding 救星!

為了徹底解決這個混亂,我回想起前輩們提過的一個神器:nvm (Node Version Manager)!它就像一個 Node.js 版本的管家,可以幫我們好好地管理 Node.js 的版本,而且最重要的是,它會把 nodenpm 指令設定正確,讓我們在 WSL 裡使用的就是 WSL 裡安裝的 Node.js。

既然 nvm 指令我原本也沒裝好,那就從頭開始,一步一步來!

  1. 安裝 nvm

    Bash
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
    

    安裝完畢後,這裡有個超重要的步驟! 它會提示你要關閉終端機再打開,或者輸入 source ~/.bashrc (如果你是用 Bash 介面,通常是這個) 或 source ~/.zshrc (如果你用的是 Zsh 介面)。這一步超級重要,不然 nvm 指令還是會找不到!

    Bash
    # 根據你用的終端機類型,選一個輸入
    source ~/.bashrc
    # 或者
    source ~/.zshrc
    
  2. 確認 nvm 安裝成功:

    Bash
    nvm --version
    

    如果顯示了一串版本號,那恭喜你!nvm 已經準備好了!

  3. nvm 安裝 Node.js:

    Bash
    nvm install node   # 安裝最新穩定版的 Node.js
    nvm use node       # 讓當前的終端機使用這個版本的 Node.js
    nvm alias default node # 設定成預設值,這樣以後每次開終端機都會自動用它
    
  4. 最後檢查:

    Bash
    which node
    which npm
    node -v
    npm -v
    

    這次,which nodewhich npm 終於顯示了類似 /home/我的名字/.nvm/versions/node/vX.Y.Z/bin/node 這樣 nvm 管理的路徑!太棒了!這才是我要的!

✅ 終於!我的 Claude Code 成功了!Vibe Coding 等我!

搞定了這些,我感覺自己像個解開了謎題的偵探!現在,是時候讓我的 AI 夥伴登場了!

我回到我的專案目錄:

Bash
cd ~/codeDemo
rm -rf node_modules     # 把之前所有可能被弄亂的檔案通通刪掉
rm package-lock.json    # 這個檔案也要一起刪掉,確保乾淨
npm install claude-code # 再次嘗試,這次我感覺穩了!

螢幕上跑出了正常的安裝進度,然後是:

added 12 packages in 6s

11 packages are looking for funding
  run `npm fund` for details

成功了! 雖然最後兩行訊息說有 11 個套件需要資金支持(這是一種鼓勵大家支持開源專案的新提示,跟我之前遇到的錯誤無關,算是個好消息!),但最重要的是,沒有錯誤訊息! 我的 Claude Code 終於成功安裝了!感動!現在,我離 Vibe Coding 的境界又近了一步!

📚 小菜鳥的成長筆記(給跟我一樣的新手們!)

這次為了裝個 AI 工具,竟然經歷了這麼多波折,但我也學到了超多東西!

  1. Vibe Coding 雖然酷,但基礎不能少: 我本以為有了 AI 工具,就能直接進入高效開發。沒想到,第一個關卡卻是基礎的環境配置。這讓我明白,無論多麼炫酷的上層應用,都需要穩固的底層基礎作為支撐。打好基礎,Vibe Coding 才可能真正實現。
  2. WSL 其實有點小脾氣: 它雖然好用,但當它和 Windows 檔案系統「互動」時,有時候會出點小問題。所以,在 WSL 裡面工作時,盡量讓你的專案和相關操作都保持在 WSL 自己的 Linux 檔案系統裡。
  3. nvm 是 Node.js 開發者的必備神器: 如果你發現 nodenpm 怎麼用都不對勁,或者發現自己有不同版本的 Node.js,一定要學會用 nvm。它能把你的 Node.js 環境管理得井井有條,少走很多彎路!
  4. 看懂錯誤訊息很重要: 一開始看到一大堆英文錯誤訊息會很慌,但仔細看,每個錯誤都在告訴你一些線索。像這次的 EPERMcmd.exeCannot find module,它們都指向了不同的問題,幫助我一步步找到真正的根源。
  5. 耐心和不放棄: 寫程式和除錯的過程就像解謎。有時候會很卡,會想放棄,但只要耐心一點,一步步分析,總能找到答案的!這次的經驗讓我更有信心面對未來的 Bug 了!
  6. 感謝開源貢獻者: 我們能用這麼多酷炫的工具,都是因為有許多人無私地分享他們的程式碼。npm 最後的「募資」提示,讓我意識到這些工具背後是有人在努力的,如果未來有能力,我也想支持他們!

總之,這次為了安裝 Claude Code 而經歷的「磨難」,讓我這個菜鳥又成長了一點點!希望我的這段經歷,也能幫到同樣在學習路上奮鬥的各位!