分類
AI

The Infinite Show – Generative Agents Game

The Infinite Show
https://github.com/kenneth7198/TheInfiniteShow

此專案基於 Generative AgentsCN 並原始的作者為 Generative Agents 與 Wounderland 。我們探討AI與AI之間虛擬數位社群關係變化,試圖透過一個角色進行改良成具有【欺騙、竄改、造謠、鼓舞投資、以及散播數位謠言的AI人工代理角色】,經過這個AI代理人,在虛擬數位社群內模擬此AI角色是否能操弄整個虛擬村莊的AI之間的關係變化,最終期望在這個過程中產生出AI領袖的人格特質出來。

原始的研究論文如下:

Generative Agents: Interactive Simulacra of Human Behavior
https://arxiv.org/abs/2304.03442

原始的github來源:
clone原始碼
  1. git clone https://github.com/kenneth7198/TheInfiniteShow.git
  2. cd TheInfiniteShow

基本安裝環境

  1. 安裝Anaconda
  2. 建立Anaconda虛擬環境,名為the_infinite_show,並選用python 3.11.11
  3. 啟動the_infinite_show的虛擬環境,使用terminal開啟
  4. cd到clone下來的資料夾,在TheInfiniteShow資料夾內,輸入:
pip install -r requirements.txt
  1. 下載Ollama的本機運作的AI模型,到官網上下載 https://ollama.com/
  2. 安裝後開一個新的命令提示字元視窗,輸入ollama指令看看有沒成功安裝或是否可以呼叫
  3. 開啟系統內容的”編輯系統環境變數”,在進階頁籤點選”環境變數”,然後在系統變數中新增以下的變數與值:
OLLAMA_HOST  = 0.0.0.0
OLLAMA_KEEP_ALIVE = 2h
OLLAMA_MODELS = C:\OllamaModels
OLLAMA_ORIGINS  = *

OllamaModels可設置自己PC有空間的磁碟即可

下載&運作LLM 大語言模型,重開機後仍需重新下載

 

  1. 回到命令提示字元視窗中,透過指令方式下載以下的LLM大語言模型,這邊採用的是阿里巴巴的Qwen 2.5(通義千問) : https://github.com/QwenLM/Qwen
ollama pull qwen2.5:7b-instruct-q4_K_M
ollama pull bge-m3:latest
  1. 等待下載完畢之後,用以下的指令啟動Ollama大語言模型運作
ollama serve

運作虛擬小鎮

 

切換到原本的TheInfiniteShow的Anaconda虛擬環境下,切換到generative_agents資料夾,並用以下指令啟動虛擬小鎮的計算

cd generative_agents
python start.py --name infinite-test --start "20241214-08:00" --step 10 --stride 10

參數說明:

  • name參數後面加的是一個用英文組合數字組成的虛擬小鎮名稱
  • start參數後面是設置小鎮的起始時間點
  • step參數是迭代幾次後停止運作,設置10預計要跑1小時多
  • stride參數是設置每一次時間運作的累計方式,設置10等於9:00 9:10 9:20 …

回放過程

 

  1. 在剛剛的虛擬環境下輸入以下指令,壓縮infinite-test的虛擬小鎮運算過後的數據
python compress.py --name infinite-test
  1. 回放infinite-test虛擬小鎮的過程
python replay.py
  1. 開啟網頁 http://127.0.0.1:5000/?name=infinite-test 看到虛擬小鎮內各個居民活動過程

 

分類
AI 人機互動介面 HCI

互動式人工智慧藝術設計

一、課程說明(Course Description)

本課程是門AI實作課程,旨在培養學生理解AI的原理、工具、技術與藝術創意的設計原理與操作,讓學生用動手做的方式配合眾多AI工具搭建起基本的互動控制能力。課程中將介紹各種互動創意設計作品,引導學生進行創意設計。更引領同學從互動設計中探索AI介面(AI Interactive Interface)與情境感知 (Context Aware) ,進而探索AI與人、AI與介面、AI與環境的互動關係。

Keywords : 互動, AI, 藝術, 互動設計, 創意, 人文, 資訊應用, 動手做, 環境感知

 

二、課程內容規畫(Course Planning)

本課程為16週,學習目的為提升學習自主性的高密度學習模式,課程內容規劃如下:

 

三、參考用書(Text Books)
指定用書:

參考書籍:
1.

四、教學方式(Teaching Method)
1、理論講述與課堂實作 (50%) – 8堂課
2、作品賞析(10%) – 1次報告
3、個人作業 (20%) –  2堂課
4、社會服務實踐(20%) – 2次

六、課程進度安排(Syllabus)

上課時間:此為預開線上課程,預計 2025年秋季上線 – Udemy

上課教室:TBD

 

 

 

 

七、成績考核(Evaluation)

1、平時成績 15% (出席率,上課互動)
2、個人作業 10% (相關作品報告與Survey)
3、指定小作業 15% (小作業一、小作業二)
4、期中成果作品 25%
5、期末成果作品 35%

八、AI 的使用規則

完全開放使用且無須註明,學生必需運用AI進行共創。

分類
AI 互動藝術 Interactive Art

淺談BERT在藝術創作的應用

什麼是BERT? 最近研究自然語言處理(NLP)在藝術創作上可以發揮什麼用途,不能不知道Google AI Language在2019年發表的 Pre-training of Deep Bidirectional Transformers for Language Understanding這一篇論文。

網路上探討BERT跟數學公式解釋的文章很多,可是要怎麼變成簡單好用的互動藝術創作? 畢竟要會用才意義。以下我們先看懂BERT原理是什麼,並白話一點介紹給各位同學理解BERT有趣的地方在哪!

BERT白話來說,就是通過引入雙向上下文的預訓練(Pre-training)微調(Fine-Tuning)方法,他徹底改變了自然語言處理領域。與之前的模型(如word2vec或ELMo)不同,word2vec是無上下文的,而ELMo僅部分具備上下文感知能力,BERT則使用雙向Transformer架構,能夠同時考慮一個詞的左右兩側上下文,從而更全面地理解語言。

這篇論文提出了BERT的兩個主要階段:

  1. 預訓練(Pre-training):在大量未標記文本上進行預訓練,學習通用的語言表示。
  2. 微調(Fine-tuning):在特定下游任務上使用標記數據對預訓練模型進行微調

1. 預訓練(圖片左側)

我們先來看大量未標記文本上預訓練。

他的任務

  • 遮罩語言模型(Masked Language Model, MLM)
    • BERT會隨機遮罩句子中15%的詞(圖中以[MASK]表示)。
    • 模型根據詞的左右上下文來預測這些被遮罩的詞。
    • 例如,圖中展示了“未標記的句子A和B對”(Unlabeled Sentence A and B Pair),其中某些詞(如T'[SEP])被遮罩,模型需要預測這些詞。
    • 為了避免過擬合,BERT採用了以下策略:
      • 80%的情況下,被遮罩的詞會被替換為[MASK]
      • 10%的情況下,替換為一個隨機詞。
      • 10%的情況下,保持不變。
    • 這一任務使BERT能夠學習深層的雙向表示,這與單向模型(如GPT,只看左側上下文)不同。
  • 下一句預測(Next Sentence Prediction, NSP)
    • BERT接收一對句子(句子A和句子B)作為輸入。
    • 模型預測句子B是否是句子A在原始文本中的下一句(50%的情況下是,50%的情況下是隨機選擇的句子)。
    • 圖中通過[CLS]標記(位於輸入的開頭)來輸出NSP的分類預測。
    • 這一任務幫助BERT理解句子之間的關係,這對於問答系統和自然語言推理等任務非常重要。

從輸入那一側可以表示

  • 輸入由句子A和B的標記(T1, T2, …, TN)組成,兩句之間用特殊標記[SEP]分隔。
  • 每個標記由三種嵌入(embedding)組成:
    • 標記嵌入(Token Embedding)E1, E2, …, EN):表示詞本身。
    • 段落嵌入(Segment Embedding)EA, EB):標示該標記屬於句子A還是句子B。
    • 位置嵌入(Position Embedding):編碼標記在序列中的位置。
  • 這些嵌入被輸入到BERT模型中,BERT由多層Transformer組成(圖中未顯示,但隱含在模型中)。

然後在輸出那一側

  • 預訓練階段的輸出包括:
    • 對遮罩詞的預測(通過MLM)。
    • 對NSP的分類預測(通過[CLS]標記)。

2. 微調(圖片右側)

微調是指特定下游任務上使用標記數據對預訓練的BERT模型進行微調。

他的任務

  • 圖中展示了幾個下游任務:
    • MNLI(多類型自然語言推理):預測前提(premise)與假設(hypothesis)之間的關係(蘊含、矛盾或中立)。
    • NER(命名實體識別):識別文本中的實體(如人名、組織名)。
    • SQuAD(斯坦福問答數據集):根據給定的段落回答問題,預測答案的起始和結束位置(圖中標記為“Start/End Span”)。
  • 每個任務的輸入格式略有不同:
    • 對於MNLI/NER,輸入是一個單一序列或一對序列(如前提和假設)。
    • 對於SQuAD,輸入是一個問題和一個段落,模型預測答案的起始和結束位置。

微調過程

  • 預訓練的BERT模型通過在頂部添加一個任務特定的輸出層進行微調。
  • 例如:
    • 在SQuAD中,模型輸出答案的起始和結束位置。
    • 在MNLI中,[CLS]標記的表示用於分類(蘊含、矛盾或中立)。
  • 整個模型(BERT + 任務特定層)在標記數據集上進行端到端的微調。

輸入表示

  • 與預訓練類似,輸入由標記(T1, T2, …, TN)組成,並使用段落嵌入來區分問題和段落(對於SQuAD)或前提和假設(對於MNLI)。

輸出

  • 輸出取決於任務:
    • 對於SQuAD,模型預測答案的起始和結束位置。
    • 對於MNLI,輸出分類標籤。
    • 對於NER,為每個標記分配一個實體標籤。

介紹完上面的技術細節後,白話一點舉幾個例子:

  • 故事創作應用
  • 生成出藝術品的描述應用
  • 藝術評論
  • 文本生成圖
  • 文本生成音樂
  • 對話式藝術創作
  • 藝術風格(文學風格)模仿應用或翻譯
  • 情感分析與生成

可以想像到BERT主要的藝術創作應用在文字方面的生成、創作、模仿甚至分析…等,如果實際上要來應用,該怎麼開始呢? 以下用python程式碼帶各位同學手把手來完成一個簡單的BERT的藝術創作應用~

[請到eeclass上下載教學影片]

[程式碼下載]

[BERT動手玩]

延伸閱讀:如何用BERT結合Arduino的感測技術做出一個語音情感分析燈光裝置

分類
AI 人機互動介面 HCI

HCII 2025 國際研討會 “Navigating “Limerence”: Designing a Customized ChatGPT-Based Assistant System”

Navigating “Limerence”: Designing a Customized ChatGPT-Based Assistant System

Author :Ko-Qin Mei, Yu-Ju Chen, Shih-Ta Liu

Abstract

Limerence is a one-sided emotional state characterized by obsessive focus on a limerence object (LO) and intense emotional fluctuations, often disrupting daily life and mental well-being. Research suggests that limerence shares similarities with obsessive-compulsive disorder and addiction. Based on this, we adopt the Transtheoretical Model (TTM) as our theoretical foundation and develop Truth Tonic, a Custom GPT designed to facilitate LLM-driven cognitive reappraisal, helping individuals detach from limerence and regain rationality.

Truth Tonic features three core strategies: (1) using a direct and sharp tone to challenge entrenched thought patterns, (2) providing concise responses to avoid excessive elaboration on emotional distress, and (3) mimicking social media language to enhance engagement and trust. To achieve this, we collected and analyzed discussion data from platforms like Dcard and PTT, extracting conversational styles and persuasion techniques to inform AI responses. We designed prompts to ensure responses remain brief and direct. Additionally, we incorporated a Limerence Scale to assess users’ emotional states and adjust responses accordingly. A post-experience survey (n=112) evaluated user satisfaction and AI effectiveness. Results indicate that most users found the system helpful in recognizing emotional patterns, gaining clarity, and engaging in meaningful interactions. While the direct tone was generally well-received, some found it too sharp. Overall, Truth Tonic shows promise as an AI-driven intervention for limerence, with future refinements focusing on adaptive tone strategies to enhance user experience and intervention efficacy.

Keywords:Limerence, Custom GPT, Transtheoretical Model, Human Computer Interface, chatbot, AI.

 

分類
教學

Arduino 各版本的詳細比較 – 2025年最新!

常用Arduino的各位同學應該很頭痛Arduino有這麼多種版本,到底這些版本差異在哪? 以下整理2025年最新市面上有販售的Arduino平台給您參考:

Arduino 各版本詳細比較表

版本 微控制器 時鐘速度 數位 I/O 腳位 類比輸入腳位 PWM 腳位 記憶體 連線方式 尺寸 (mm) 特點與用途
Arduino UNO R3 ATmega328P 16 MHz 14 (6 PWM) 6 6 32 KB Flash, 2 KB SRAM, 1 KB EEPROM USB-B 68.6 x 53.4 經典入門款,簡單易用,適合初學者與基本項目。支援多數擴展板(Shields)。
Arduino UNO R4 Minima Renesas RA4M1 (Cortex-M4) 48 MHz 14 (6 PWM) 6 (14-bit ADC) 6 256 KB Flash, 32 KB SRAM, 8 KB EEPROM USB-C 68.6 x 53.4 32 位升級版,效能更高,支援 DAC 和 RTC,適合進階應用如音訊或精準計時。
Arduino UNO R4 WiFi Renesas RA4M1 + ESP32-S2 48 MHz 14 (6 PWM) 6 (14-bit ADC) 6 256 KB Flash, 32 KB SRAM, 8 KB EEPROM USB-C + WiFi/BLE 68.6 x 53.4 內建 WiFi 和藍牙,適合物聯網(IoT)項目,支援矩陣 LED 顯示。
Arduino Nano ATmega328P 16 MHz 14 (6 PWM) 8 6 32 KB Flash, 2 KB SRAM, 1 KB EEPROM Mini USB 45 x 18 小巧設計,麵包板友好,適合空間有限的項目,功能與 UNO 相近。
Arduino Nano Every ATmega4809 20 MHz 14 (5 PWM) 8 5 48 KB Flash, 6 KB SRAM, 256 B EEPROM Micro USB 45 x 18 Nano 升級版,更多記憶體,性價比高,適合中型項目。
Arduino Nano 33 BLE nRF52840 (Cortex-M4F) 64 MHz 14 (8 PWM) 8 (14-bit ADC) 8 1 MB Flash, 256 KB RAM Micro USB 45 x 18 支援藍牙低功耗(BLE)和 9 軸 IMU,適合穿戴式設備與無線通訊。
Arduino Mega 2560 ATmega2560 16 MHz 54 (15 PWM) 16 15 256 KB Flash, 8 KB SRAM, 4 KB EEPROM USB-B 101.5 x 53.3 高 I/O 數量,適合需要大量感測器或執行器的複雜項目,如機器人。
Arduino Leonardo ATmega32u4 16 MHz 20 (7 PWM) 12 7 32 KB Flash, 2.5 KB SRAM, 1 KB EEPROM Micro USB 68.6 x 53.4 內建 USB HID,可模擬鍵盤/滑鼠,適合互動式應用。
Arduino Micro ATmega32u4 16 MHz 20 (7 PWM) 12 7 32 KB Flash, 2.5 KB SRAM, 1 KB EEPROM Micro USB 48 x 18 Leonardo 的小型版,麵包板友好,適合空間受限的 HID 項目。
Arduino Due AT91SAM3X8E (Cortex-M3) 84 MHz 54 (12 PWM) 12 (12-bit ADC) 12 512 KB Flash, 96 KB SRAM Micro USB 101.5 x 53.3 32 位高效能,支援 DAC,適合高運算需求的項目,但 3.3V 邏輯電平需注意。
Arduino Pro Mini ATmega328P 16 MHz (5V) / 8 MHz (3.3V) 14 (6 PWM) 6 6 32 KB Flash, 2 KB SRAM, 1 KB EEPROM 外部 FTDI/TTL 33 x 18 超小型,無 USB 介面,適合嵌入式應用,需外部程式燒錄器。

各版本詳細說明與比較

1. Arduino UNO 系列

  • UNO R3
    • 優勢:經典款,擁有廣泛社群支持和豐富的擴展板資源,價格親民。
    • 限制:運算能力有限,適合簡單項目如 LED 控制或感測器讀取。
    • 用途:初學者學習、原型設計。
  • UNO R4 Minima
    • 優勢:32 位微控制器,運算速度更快,支援更高解析度的 ADC(14 位)和 DAC,適合需要精準類比訊號的應用。
    • 限制:相容性與 R3 類似,但價格稍高。
    • 用途:進階原型設計、音訊處理。
  • UNO R4 WiFi
    • 優勢:內建 WiFi 和藍牙,還有一個 12×8 LED 矩陣,適合 IoT 和視覺化項目。
    • 限制:開發環境需適應 ESP32 模組。
    • 用途:智慧家居、遠端監控。

2. Arduino Nano 系列

  • Nano
    • 優勢:小巧且功能與 UNO 相近,直接插在麵包板上使用。
    • 限制:無電源插孔,Mini USB 已較少見。
    • 用途:空間受限的嵌入式項目。
  • Nano Every
    • 優勢:升級微控制器,記憶體增加,性價比高。
    • 限制:PWM 腳位減少至 5 個。
    • 用途:中型項目升級替代 Nano。
  • Nano 33 BLE
    • 優勢:強大的 32 位處理器,支援 BLE 和 IMU,適合無線與運動感測應用。
    • 限制:價格較高,功耗需注意。
    • 用途:穿戴式設備、藍牙通訊。

3. Arduino Mega 2560

  • 優勢:大量 I/O 腳位(54 個數位、16 個類比),記憶體充足,適合複雜項目。
  • 限制:體積較大,功耗高,價格較貴。
  • 用途:多感測器系統、機器人控制。

4. Arduino Leonardo 與 Micro

  • Leonardo
    • 優勢:內建 USB HID,可模擬鍵盤或滑鼠,I/O 腳位較多。
    • 限制:與部分 UNO 擴展板相容性稍差。
    • 用途:互動裝置、遊戲控制器。
  • Micro
    • 優勢:Leonardo 的小型化版本,適合麵包板使用。
    • 限制:無電源插孔,應用場景較窄。
    • 用途:小型 HID 項目。

5. Arduino Due

  • 優勢:32 位 ARM 處理器,高效能,支援 DAC 和高時鐘速度。
  • 限制:僅支援 3.3V 邏輯電平,與 5V 配件需轉換。
  • 用途:高運算需求項目,如數位訊號處理。

6. Arduino Pro Mini

  • 優勢:超小型,適合嵌入式應用,有 3.3V 和 5V 版本。
  • 限制:無內建 USB,需外部燒錄器。
  • 用途:永久嵌入式解決方案。

選擇建議

  • 初學者UNO R3 或 UNO R4 Minima,易用且資源豐富。
  • 物聯網項目:UNO R4 WiFi 或 Nano 33 BLE,支援無線通訊。
  • 空間有限Nano 系列或 Micro,小巧靈活。
  • 複雜項目Mega 2560 或 Due,適合大量 I/O 或高效能需求。
  • 嵌入式應用:Pro Mini,輕量化且低成本。

以上紅色字的是個人推薦使用的喔!

Exit mobile version