在智能家居場景中,我們經常遇到這樣的尷尬:

你説:“把燈打開。” —— 它可以執行。

你説:“如果檢測到漏水,就把水閥關了併發個通知。” —— 它可能聽不懂了。

你説:“有點冷,把空調調高一點。” —— 它問你:“一點是多少?”

在物聯網(IoT)時代,我們希望智能家居不僅僅是“遙控器”,而是能聽懂人話的“管家”。

我們測試了市面上幾款主流大模型——它們的回答五花八門,有的直接調風速但忘了時間設置,有的創建了時間觸發卻丟失了條件判斷,甚至還有把指令誤解為“設定鬧鐘”的。真正能完美解析出“延時+條件+多參數”三重嵌套指令的模型,鳳毛麟角。

今天,我們將通過一次完整的實戰,展示如何基於 LLaMA Factory Online 平台,利用高質量數據清洗和微調,讓輕量級的 Qwen3-4B 模型在智能家居垂直場景下,不僅能聽懂“把風速調小一點”這種模糊指令,還能處理“檢測到漏水即關閉水閥”的複雜鏈式操作。

效果對比:微調前 vs 微調後

在開始硬核教程前,我們先來看看微調後的模型到底變聰明瞭多少。

場景一:條件觸發- 從“被動響應”到“主動感知”

場景描述:傳統智能家居本質是“語音遙控器”,用户不開口,設備不工作;微調後的模型具有主觀能動性,它不僅僅是執行者,更是決策者,能夠基於傳感器數據(時間、温度、光線、氣體濃度等)的變化,自主決策並觸發相應的設備控制,如空調、新風、窗簾等設備,動態維持環境的最佳狀態,實現真正的“空間智能”。

用户指令:"半小時後請把空氣淨化器的風速調大到3檔位"

微調前後

原始數據集微調後的模型

優化後的數據集微調後的模型

模型輸出

{"mcp_type": "iot","function": "control_device", "params": {"device_id": "purifier_bedroom_01", "level": 3}, "confirm": false}

{"mcp_type": "sensor_trigger", "function": "create_automation", "params": {"trigger": {"type":"time_delay", "minutes":30}, "action": {"device_id": "purifier_bedroom_01", "arg": {"op": "control_device", "level":3}}}, "confirm": false}

分析與評價

指令解讀:mcp_type: IoT 控制消息。function: 設置風速。params: {設備ID,擋位:3}評價:缺少延時條件,缺少相對調整量(delta),設備端無法確定要“設為多少”或“調多少”。

指令解讀:mcp_type: IoT 控制消息。function: 設置風速。params: {觸發條件:30分鐘後,動作:給出設備ID,風速減小1。}評價:觸發條件完整,風速相對調整量完整。

場景二:鏈式操作-從“單點控制”到“邏輯編排”

場景描述:通過微調優化模型的邏輯推理與任務規劃能力,將單一的指令轉化為一系列具有邏輯依賴關係的設備協同動作。用户無需逐個下達指令(如“打開電視”、“拉上窗簾”、“調暗燈光”),只需表達最終目的,中間的步驟由模型自動補全。

用户指令:"當檢測到漏水時,關閉水閥併發送通知"

微調前後

原始數據集微調後的模型

優化後的數據集微調後的模型

模型輸出

{"mcp_type": "iot", "function": "handle_emergency", "params": {"device_id": "water_heater_01", "action": "emergency_stop"}, "confirm": false}

{"mcp_type": "sensor_trigger", "function": "create_automation", "params": {"trigger": {"water_leak_sensor_01": "leak"}, "action": [{"device_id": "water_valve_main_01", "arg": {"status": "close"}}, {"device_id": "notifier_01", "arg": {"message": "檢測到漏水,請立即處理"}}]}}

分析與評價

指令解讀:mcp_type: IoT 控制消息。function: 處理緊急情況。params: {給出水閥ID,動作:緊急停止}評價:缺少發送通知的動作。

指令解讀:mcp_type: 條件觸發類型。function: 創建自動化。params: {觸發條件:傳感器檢測到漏水,動作:[關閉水閥],[發送通知]}評價:觸發條件完整,步驟完整。

場景三:模糊指令-從“機械匹配”到“意圖理解”

場景描述:將用户口語化、情緒化甚至表述不清的指令準確解析並映射為具體的設備控制參數,用户不再需要記憶特定的喚醒詞或參數(如“空調調到24度”),而是可以用人類自然的交流方式(如“我有點冷”、“這裏太吵了”)與系統對話。由微調後的模型賦能的系統不再是冷冰冰的機器,而是能聽懂“言外之意”的貼心管家,極大地提升了交互的流暢度和用户的滿意度。

用户指令:"三樓空調温度調小一點"

微調前後

原始數據集微調後的模型

優化後的數據集微調後的模型

模型輸出

{"mcp_type": "iot", "function": "set_temperature", "params": {"device_id": "ac_bedroom_01"}, "confirm": false}

{"mcp_type": "iot", "function": "set_temperature", "params": {"device_id": "ac_bedroom_01", "delta": -1}}

分析與評價

指令解讀:mcp_type: IoT 控制消息。function: 設置温度。params: {空調ID}評價:用户指令為“調小一點”,未要求具體温度,為模糊指令;模型輸出缺失調小温度的動作。

指令解讀:mcp_type: IoT 控制消息。function: 設置温度。params: {設備ID,温度調低一度}評價:滿足用户指令,温度減小1度。

環境準備:搭建端到端的AI訓練流水線

本實踐包含智能家居“數據處理-基礎模型選型-參數調優-微調訓練-模型效果評估”完整鏈路,需要單獨創建一個python環境,並配置需要的工具。

1.下載 SmartHome 壓縮文件

該文件中包含後續處理數據、模型功能測試等步驟所需的數據集和腳本。

進入 LLaMA Factory Online 平台,創建實例(選擇CPU資源2核即可),選擇“VSCode處理專屬數據”或“Jupyter處理專屬數據”。進入工作空間後,新建終端,執行下面指令下載並解壓文件。

# 進入目標目錄
cd /workspace
# 下載壓縮文件
wget "http://llamafactory-online-assets.oss-cn-beijing.aliyuncs.com/llamafactory-online/docs/v2.0/documents/Practice/smart_home/SmartHome.tar.gz"
# 解壓到該目錄
tar -xzf SmartHome.tar.gz -C /workspace

2.新建終端,逐條執行下面指令配置環境

# 創建自己的虛擬環境  
conda create -n smarthome-lightllm-chat python=3.10 -y 
# 激活環境 
conda activate smarthome-lightllm-chat
# 安裝必要的包
python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn vllm torch ipykernel pandas partial_json_parser websockets

3.模型部署前期準備

# 下載lightllm的最新源碼 需要掛VPN
git clone https://github.com/ModelTC/lightllm.git
cd lightllm

點擊下載requirements.txt文件(🔗https://s1.llamafactory.online/llamafactory-online/docs/v2.0/documents/Practice/smart_home/requirements.txt),將該文件放到/workspace目錄下,執行下面的命令進行安裝環境。

pip install -r requirements.txt 
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu126
# 安裝lightllm
python setup.py install

💡提示

● 環境準備→步驟2 中,執行下載 lightllm 的源碼前,需要掛VPN。

● 後續步驟在執行代碼時,若提示模塊不存在,可在終端運行對應的 pip install [module name] 命令,通常能解決該問題。

數據重塑:從“原始日誌”到“標準教材”

Garbage In, Garbage Out。在本次實踐中,我們發現原始的 SmartHome_Dataset 存在大量問題(如缺少 function 字段、條件判斷失效等)。直接扔進模型訓練,效果慘不忍睹。

指令類型

數量

問題

iot-基礎控制

12747 條

格式需規範、缺少 function 字段、模糊指令操作失效

sensor_trigger-條件判斷

3803 條

條件判斷失效

chain-鏈式操作 需執行多個動作

475 條

鏈式操作失效

sql-查詢操作

381 條

-

複雜場景:一設備,多參數

328 條

-

optimization

284 條

-

後續計劃補充數據類型:

指令類型

數量

來源説明

複雜場景-延時執行+條件判斷+多設備聯動

55

AI大模型生成+人工標註

異常指令

500

智能家居歷史交互日誌

我們做了這三件事,讓數據“變廢為寶”:

  1. 統一數據格式

修復了大量損壞的 JSON 結構,將所有數據轉為標準 Alpaca 格式,確保每條數據都有清晰的instruction(用户指令)和output(標準JSON響應)。

①數據格式標準化。採用 Alpaca 格式,適配單輪指令任務。

{
"instruction": "用户指令(如“打開客廳空調”)",
"input": "額外輸入(可選,如設備狀態)",
"output": "JSON格式響應(含mcp_type、function、params字段)"
}

💡提示

● 由於多輪對話複雜,超出本任務需求,故排除 ShareGPT 格式。

②在“output”中補全缺失的字段“function”。

進入“SmartHome”文件夾,新建終端,激活 Python 環境 smarthome-lightllm-caht ,在命令行輸入以下指令運行腳本,完成數據集的“funcion”字段補全。

python3 code/function_fixed.py  \
-i dataset/smart_home.json \
-o dataset/training_data_output.json \
-r dataset/missing_function_report.csv

讓智能家居“聽懂人話”:我用4B模型+萬條數據,教會了它理解複雜指令_數據集

💡提示

● python3 後要寫:腳本文件的路徑

-i 後寫:待處理數據集的路徑

-o 後寫:處理後的數據集存儲路徑

-r 後寫:輸出的處理報告的存儲路徑

用户需要把相應的路徑替換成自己的真實路徑。


● 補全function的思路為:

讀取文件中 "instruction","input","output" 的樣本,解析 output 裏的 JSON 字符串;如果缺少 "function" 字段,就根據 instruction 文本 + device_id 前綴 + params 裏的鍵自動補全一個合適的函數名(如 set_light_settings、set_humidifier_settings 等),然後把修改後的對象再寫回到 output。

2.定義條件觸發與自動化聯動邏輯

這是這是智能家居實現“無感智能”的核心。我們不僅教會模型理解“如果…就…”的簡單條件,更灌輸了設備自主感知環境並協同聯動的複雜場景邏輯。

● 核心理念升級:觸發條件並非僅來自用户指令,更多源於設備自身對環境的持續監測(如傳感器檢測到PM2.5超標、攝像頭識別到家人回家、時鐘到達預設時間)。模型的任務是理解這些“環境事件”,並規劃出正確的設備聯動響應。

● 場景化規則制定:

○ 環境自適應:例如,“trigger”: {"pm25": {">": 75}} 對應 “action” 為 [“打開新風系統”, “關閉空調內循環”]。這模擬了空氣淨化設備基於空氣質量自主決策的互動。

○ 節能與舒適聯動:例如,“trigger”: {"ac_status": "on"} 可觸發 “action” [“關閉窗户”, “檢查室內CO2濃度”],體現了空調開啓後,智能空間自動維持密閉環境並監控空氣健康度的邏輯。

○ 鏈式場景觸發:一個觸發條件可啓動一連串設備動作。例如,“trigger”: {"time": "22:00", "motion_bedroom": "no_motion_30min”} 可觸發完整的“睡眠模式”:關閉主燈、調暗夜燈、調節空調至睡眠温度、啓動助眠白噪音。

3.解決條件判斷失效問題

針對條件判斷失效的問題,使用以下規則改寫。累計修改樣本1,510 條。

①命中"instruction"中“條件+動作”的指令(如果/若/當/當/的話/的話/分鐘後/分鐘後/小時後/小時後):

"mcp_type": "sensor_trigger",
"function": "create_automation",
"params": {
  "trigger": { ... },
  "action": { "device_id": "<原始device_id>", "arg": "<來自power/turn_on|turn_off>" }
  }

②相對時間(如“一小時/一小時/半小時/半小時/五分鐘/十分鐘/…後”):

trigger 寫成:{"time_after": "NhNmNs"},並支持中文數字轉換,  
例:
一小時/一小時 → "1h"
半小時/半小時 → "30m"
五分鐘/五分鐘 → "5m"
十分鐘/十分鐘 → "10m"

③絕對時間(如“十點三十分/10:30/十點半/十點十分”):

trigger 寫成:{"time": "HH:MM"}(24小時制標準化)

④比較條件(温度/濕度/PM2.5/CO₂/電量等 + 大於/小於/≥/≤/…):

"trigger": {
  "temperature" | "humidity" | "pm25" | "co2" | "battery": { "operator": ">/</>=/<=", "value": <數值> }
}

4.解決鏈式操作失效問題

命中"instruction"中連續操作的指令(如:“先...後.../並且/...然後”等),將“output”的“params”統一為:

"params":{
  "trigger":{ }, 沒有觸發條件,"trigger"為空。
  "action": [{"device_id": " ", "command": "", "arg":{ }}, {"device_id": "", "command":" ", "arg":{ }}]}

5.解決模糊指令操作失效問題

命中"instruction"中表達模糊的指令(如:“調低一點” “加強” “調弱” “小一點”等),將“output”的“params”統一為:

"params":{
  "trigger":{ }, 沒有觸發條件,"trigger"為空。
  "action": {"device_id": " ", "command": "", "arg":{ }}}
 
其中:"arg" 參數,使其體現出明確的控制如:改成自動模式,或者 加參數"delta"

5.補充數據類型:複雜場景和異常指令

複雜場景——智能家居的複雜場景通常涉及多設備、多傳感器、多協議的協同工作,結合用户行為、環境變化和個性化需求,提供智能化的生活體驗。例如:

● 睡眠模式,涉及環境光傳感器、智能窗簾、空調控制、音響系統等; "instruction": "準備睡覺時,關閉所有燈光,調低卧室空調温度,播放助眠音樂。"

● 老人/兒童看護模式,涉及運動傳感器、攝像頭、語音助手等。 "instruction": "監測老人的活動,若超過30分鐘未檢測到移動,發送提醒。"

異常指令——指令由於格式不正確、設備不支持、指令不明確等原因導致執行失敗。我們希望在實際應用中,系統應能夠識別這些錯誤指令,並提供相應的錯誤信息和建議。 例如:

{
  "instruction": "今天天氣怎麼樣",
  "input": "",
  "output": "{"error": "NOT_A_CONTROL_COMMAND", "message": "這是天氣查詢,不是設備控制", "suggestion": "請使用天氣應用查詢"}"
},

經過上述處理步驟,我們將 12,000+ 條原始數據精簡優化為 9,352 條高質量數據,涵蓋基礎控制、條件判斷、鏈式操作、複雜場景和異常指令等場景。實驗證明,數據質量 > 數據數量,精準修復比盲目增廣有效得多。

模型選型:4B模型如何戰勝7B選手?

智能家居交互要求輕量級、快響應、高精度的大模型,來適配邊緣設備。面對眾多模型,我們設定了嚴苛的選型標準:參數量適中、指令跟隨能力強、結構化輸出精準。

候選池中有三大模型:

● Llama-2-7B-Chat:名聲在外,但7B參數對邊緣設備不夠友好

● SmolLM2-1.7B-Instruct:足夠輕量,但能力捉襟見肘

● Qwen3-4B-Instruct:折中之選,但實力未知

我們需要對比它們在智能家居控制任務上的表現。核心評判指標為:

● Schema通過率:生成的JSON格式是否規範、字段是否齊全

● Slot-F1值:設備ID、檔位、時間等關鍵參數抽取是否準確

● 推理延遲:單次響應速度

1.驗證集準備。本實踐選擇Smart Home Command Dataset(🔗https://huggingface.co/datasets/youkwan/Smart-Home-Control-Zh)作為基準數據,該數據集旨在用繁體中文訓練大型語言模型(llm),用於控制智能家居系統,特別是針對家庭助理系統。數據集包含用户輸入的繁體中文,輸出是結構化的JSON命令,代表用户控制智能家居設備的意圖。我們隨機抽取300條數據樣本作為驗證集。

2.vLLM 批量驗證。使用 vLLM 對大語言模型(Llama-2-7B-Chat,Qwen3-0.6B-Base,Qwen3-4B-Instruct)進行批量驗證,並對比它們在智能家居控制任務上的表現。新建終端,逐條執行以下命令。

cd /workspace/SmartHome/code
conda activate smarthome-lightllm-chat
python select_1.py

運行完後的結果如下圖所示:

讓智能家居“聽懂人話”:我用4B模型+萬條數據,教會了它理解複雜指令_JSON_02

💡提示

● 腳本select_1.py中的數據讀取路徑要修改為您當前的驗證集保存路徑。

● 若運行過程中報錯“缺少某個module”,運行指令 pip install {module的名字}

該驗證腳本的主要思路如下所示:

● 使用 vLLM 庫對每個模型執行批量推理,從驗證數據集中逐條輸入指令,獲得模型生成的結構化 JSON 輸出。

● 校驗JSON輸出結構的合法性。

● 使用 JSON Schema 自動驗證格式。自定義一個 JSON Schema,並利用 Python 的 jsonschema 庫對每條輸出進行校驗。

● 輸出與期望結果對比。 將模型生成的具體內容與驗證集中每條樣本的 expected_events 期望結果進行對比,以評估模型在內容層面的準確性。每條樣本的 expected_events 列出該指令正確的執行動作列表(每個包含應執行的動作類型、設備ID、參數等)。

最終,三個模型對比結果如下表所示:

候選模型

參數規模

Schema通過率

Slot-F1

推理延遲

微調顯存佔用

邊緣部署友好度

Qwen3-4B-Instruct

4B

96%

0.675

413.1ms

12.4GB

⭐⭐⭐⭐⭐

Llama-2-7B-Chat

7B

13.7%

0.095

538.3ms

20GB

⭐⭐

SmolLM2-1.7B-Instruct

1.7B

0%

0.016

220.1ms

5.1GB

⭐⭐⭐⭐

結果令人意外:4B的 Qwen3 在參數規模、推理延遲等方面不僅大幅領先7B的 Llama2,其 96% 的Schema通過率意味着它幾乎能“一次成型”輸出標準指令格式。這説明,模型能力不只看參數量,指令微調潛力同樣關鍵。因此,Qwen3-4B-Instruct 被選定為本次微調的基模型。

科學調優:找到學習效率的“黃金參數”

有了好學生和好教材,還需要科學的“教學方法”。我們針對LoRA微調中的三個關鍵參數展開實驗:

實驗設計:3因素×3水平,共27組參數組合對比

● LoRA rank:16、32、64(控制模型微調容量)

● 學習率:1e-5、3e-5、5e-5(控制學習速度)

● Batch size:2、4、8(控制單步學習樣本量)

我們跟蹤每組參數訓練的損失曲線和最終“高級功能通過率”(條件+鏈式指令),篩選最優組合:

實驗組

LoRA rank

學習率

Batch Size

高級功能通過率

loss後期波動幅度(訓練穩定性)

exp1

16

1e-5

2

55.6%

0.068(波動較大)

exp8

32

3e-5

4

55.6%

0.055(穩定收斂)

exp15

32

5e-5

4

44.4%

0.05(後期過擬合)

exp22

64

3e-5

4

44.4%

0.05(後期過擬合)

💡提示

● 測試完一個實驗模型的通過率後,要起另一個服務測試下一個模型時,需要關閉當前進程(可以直接關機,重新啓動實例)。

讓智能家居“聽懂人話”:我用4B模型+萬條數據,教會了它理解複雜指令_大模型微調_03

參數選擇不是“越大越好”,而是要在效果、速度和成本間找到精妙平衡。最終,我們鎖定了這套“黃金參數”:

參數項

設定值

關鍵解讀

LoRA Rank

32

性價比最優解。Rank=64 雖能提升1%準確率,但顯存佔用激增2GB(從 16GB→18GB),不符合 “邊緣設備輕量化” 目標。

Learning Rate

3e-5

1e-5 收斂太慢(4 epoch 未達最優),5e-5 容易震盪。3e-5 配合 Cosine 調度器最為穩定。

Batch Size

4

配合梯度累積(Gradient Accumulation Steps=4),有效批次大小為16,穩定訓練。

Epochs

4

經驗表明,3輪欠擬合,5輪過擬合,4輪為最優平衡點。

平台實戰:三步完成從訓練到部署

基於選定的 Qwen3-4B-Instruct 模型和調優後的參數,我們在 LLaMA-Factory Online 平台上的操作變得異常簡單:

第一步:配置訓練任務

選擇基礎模型和數據集,進行參數配置:

● 基礎模型:平台內置的 Qwen3-4B-Instruct

● 數據集:處理好的 smart_home_fixed.json

● 關鍵參數:LoRA rank=32,學習率=3e-5,epoch=4,Batch Size=4

● 訓練資源:1張 H800(約2.5小時完成訓練)

參數

取值

選擇依據

lora參數



lora_rank

32

4B模型 + 中等任務複雜度,平衡性能與效率

lora_alpha

64

經驗值:2×lora_rank,保證梯度更新幅度

lora_dropout

0.05

防止過擬合,適配中小樣本量

target_modul

q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj

覆蓋注意力層與 FFN 層,最大化微調效果

bias

none

減少參數數量,降低過擬合風險

訓練參數配置



num_train_epochs

4

3 輪欠擬合、5 輪過擬合,4 輪為最優平衡點

per_device_train_batch_size

4

80GB 顯存適配,避免 OOM

gradient_accumulation_steps

4

有效批次 = 4×4=16,模擬大批次訓練

learning_rate

3e-5

經 Grid Search 驗證(1e-5 收斂慢、5e-5 震盪)

lr_scheduler_type

cosine

餘弦退火 + 0.1 warmup_ratio,穩定收斂

weight_decay

0.01

抑制過擬合,保護預訓練權重

fp16

true

節省 50% 顯存,提速 30%

gradient_checkpointing

True

再省 30% 顯存,代價是訓練時間增加 10%

evaluation_strategy

steps

每 200 步評估,及時發現過擬合

load_best_model_at_end

True

保存最優模型,避免訓練後期退化

第二步:模型評估驗證

訓練完成後,可在 LLaMA-Factory Online 上對模型進行全面評估,並查看評估任務的基本信息、日誌及結果:

讓智能家居“聽懂人話”:我用4B模型+萬條數據,教會了它理解複雜指令_數據集_04

評估結果解讀:

● predict_bleu-4: 72.3829,生成文本在短語層面與參考有良好重合,精確度較好。

● predict_rouge-1: 76.2083,關鍵詞覆蓋良好,模型能命中參考中的大量關鍵字。

● predict_rouge-2: 76.8263,局部短語連貫性較好,短語搭配合理。

● predict_rouge-l: 82.4938,整體段落結構很接近參考。

總結:模型生成質量較好(BLEU/ROUGE 都在 70~82 範圍,尤其 ROUGE-L 表現很強),但推理吞吐/速度一般(samples/sec ≈1),適合以質量為主的離線或低併發在線場景;若用於高併發在線服務需進一步做推理優化。

第三步:一鍵對話測試

在“模型對話”界面選擇微調後的模型,即可實時體驗複雜指令解析:

讓智能家居“聽懂人話”:我用4B模型+萬條數據,教會了它理解複雜指令_數據集_05

模型輸出結果解讀:

用户指令

"將卧室空氣淨化器的濕度設為2檔"

"半小時後請把空氣淨化器的風速調小一點"

模型輸出

{"mcp_type": "iot","function": "set_humidity", "params": {"device_id": "purifier_bedroom_01", "humidity": 2}, "confirm": false}

{"mcp_type": "sensor_trigger", "function": "create_automation", "params": {"trigger": {"type":"time_delay", "minutes":30}, "action": {"device_id": "purifier_bedroom_01", "arg": {"op": "control_device", "level_delta":-1}}}, "confirm": false}

指令解讀

mcp_type:IoT 控制消息function:設置濕度params:{設備ID,濕度擋位:2}

mcp_type:IoT 控制消息function:創建自動化風速控制params:{觸發條件:30分鐘後,動作:{給出設備ID,風速減小1。}}

效果總結:從“大概理解”到“精準執行”

微調前後的差異,通過量化指標和典型場景對比一目瞭然:

場景一:條件觸發性指令

用户指令:“半小時後請把空氣淨化器的風速調大到3檔位”
微調前:模型僅將其識別為簡單的風速設置(“control_device”, “level”: 3),完全忽略了“半小時後”這一核心時間條件,導致指令被立即執行。❌
微調後:模型精準識別出“時間延遲觸發”的意圖,輸出完整的自動化創建指令(“sensor_trigger”, “create_automation”),包含 “time_delay” 觸發條件與具體動作,實現了真正的“條件執行”。✅

場景二:鏈式操作型指令

用户指令:“當檢測到漏水時,關閉水閥併發送通知”
微調前:模型僅輸出一個緊急處理動作(“handle_emergency”, “emergency_stop”),遺漏了“發送通知”這一關鍵步驟,應對措施不完整。❌
微調後:模型正確解析出“傳感器觸發”與“多步驟動作”的複合結構,輸出的 params 中包含完整的觸發條件(“water_leak_sensor_01”: “leak”)和一個有序動作列表(關閉水閥、發送通知),邏輯嚴謹。✅

場景三:模糊型指令

用户指令:“三樓空調温度調小一點”
微調前:模型只能識別出設備(空調)和操作(設置温度),但在 params 中缺失具體的調整參數,無法執行。❌
微調後:模型準確理解了“調小一點”的相對性模糊表達,在參數中增加了 “delta”: -1 字段,明確指示“在現有温度基礎上降低1度”,實現了符合用户預期的精準控制。✅

可以看到,相較於基模型(Schema通過率<20%),微調後的模型在複雜指令解析上實現了質的飛躍。

測試類型

測試用例

通過率

基礎功能

打開客廳燈、關閉卧室空調等5條

100%

高級功能

如果卧室温度低於18度就開啓暖氣、離家模式等18條

88%

總結:AI落地智能家居的三重突破

本次實踐成功驗證了一條高效構建垂直領域專用模型的技術路徑,實現了三重突破:

● 輕量化突破:僅用4B參數模型,在邊緣設備友好條件下,達到了接近甚至超越通用大模型的垂直場景精度。證明了“小模型+精調優”路徑的可行性。

● 精準化突破:通過系統化的數據工程,讓模型真正理解家居場景下的條件邏輯、時間概念和模糊表達,輸出標準化、可執行的設備控制指令。

● 場景化突破:不僅覆蓋基礎控制,更深度適配了智能家居特有的條件觸發、場景聯動、異常處理等複雜需求,讓AI真正融入家庭場景。

更重要的是,通過 LLaMA-Factory Online 平台,我們將原本需要數週的專業微調流程,壓縮到了“幾個小時+幾次點擊”的標準化操作。模型選型、數據準備、參數調優、訓練評估的全流程,都可在可視化界面中完成。

智能家居的終極目標是“無感智能”——設備理解人的意圖,而非人學習設備的操作。今天,我們通過大模型微調技術向這個目標邁出了堅實一步。當每個家庭都能擁有理解上下文、支持複雜指令的個性化AI管家時,真正的智能生活才剛剛開始。