Back to blog
    我用微調模型替換了 n8n 工作流程中的每個 OpenAI 調用
    n8nopenaifine-tuningcase-studysegment:builder

    我用微調模型替換了 n8n 工作流程中的每個 OpenAI 調用

    一位開發者將 12 個 n8n 工作流程從 OpenAI 遷移到本地運行的微調模型的親身經歷。成本、坑點以及 60 天後的結果。

    EErtas Team·

    三個月前,我的 n8n 實例運行著 12 個工作流程,所有這些都調用 OpenAI API。我的月費是 $487。今天,這個數字在 API 成本上是 $0。我的總 AI 支出是 $44.50/月——一個運行 Ollama 的 $30 VPS 加上 Ertas 的 $14.50。以下是我確切做了什麼,哪裡出了問題,以及在完全本地運行 60 天後讓我驚訝的是什麼。

    我不是機器學習工程師。我是一個使用 n8n 自動化從客戶引導到內容管道的一切的開發者。我在 2025 年中期開始使用 OpenAI 的 API,因為這是向工作流程添加智能的最簡單方式。確實如此——直到費用開始增長,一次速率限制事故讓我的生產工作流程宕機了三個小時,我意識到我距離整個業務崩潰只差一次 API 政策更改。

    這是遷移的完整故事:規劃、訓練、測試、切換,以及兩個月生產使用後的誠實結果。

    遷移前的設置

    我經營一個小型自動化代理機構。我的 n8n 實例處理內部運營和客戶項目的工作流程。以下是調用 OpenAI API 的 12 個工作流程:

    #工作流程使用的模型日量月成本
    1電子郵件分類(將收件電子郵件分類到 6 個類別)GPT-4o-mini約 180 封郵件$18
    2潛在客戶評分(分析表單提交,分配 1–10 分)GPT-4o約 45 個潛在客戶$32
    3內容摘要(為電子報摘要文章)GPT-4o約 30 篇文章$28
    4支援工單分類(路由到正確的團隊)GPT-4o-mini約 120 張工單$14
    5發票資料提取(從 PDF 文字中提取明細)GPT-4o約 200 張發票$67
    6會議記錄摘要(將轉錄內容轉為行動項目)GPT-4o約 40 個會議$45
    7社交媒體內容生成(從簡報草稿帖子)GPT-4o約 25 個簡報$38
    8客戶反饋分析(情感 + 主題提取)GPT-4o-mini約 90 條回應$12
    9合同條款提取(識別關鍵術語)GPT-4o約 15 份合同$52
    10產品描述標準化(標準化房源)GPT-4o-mini約 300 個房源$35
    11聊天機器人響應生成(面向客戶的支援機器人)GPT-4o約 250 個對話$98
    12資料豐富(從名稱 + URL 研究公司)GPT-4o約 60 家公司$48
    總計約 1,355/天$487/月

    隨著我的客戶為工作流程添加更多量,$487 每月增長約 12%。按照這個軌跡,到夏天我每月的費用將達到 $650,到年底超過 $800。

    為什麼我決定遷移

    三件事促使我做出決定。

    費用在增長。 $487 聽起來可能不是災難性的,但我是一個小型運營商。那 $487 是我第二大的業務費用,僅次於我自己的薪水。而且與租金或軟件訂閱不同,我無法預測它——每個月的波動高達 15–20%,取決於量。

    速率限制事故。 2025 年 12 月,OpenAI 經歷了容量問題,在一個週二下午的三個小時內導致延遲升高和速率限制錯誤。我的三個面向客戶的工作流程——電子郵件分類、支援工單分類和聊天機器人——都開始失敗。工單堆積。電子郵件未被分類。聊天機器人返回錯誤。我花了一下午向客戶道歉並手動處理佇列。我沒有備用方案。我的整個 AI 層是一個單點故障。

    我想擁有這些模型。 我在別人的基礎設施上建立我的業務。我花了幾個月完善的提示在沒有背後模型的情況下毫無用處。如果 OpenAI 更改定價,棄用模型,或決定我的用例違反了他們的條款,我沒有 B 計劃。對於業務的核心部分,這感覺是不可接受的。

    遷移計劃

    我沒有一次性遷移所有東西。我按任務類型和複雜度將 12 個工作流程分組:

    第 1 組:分類(4 個工作流程) — 電子郵件分類、支援工單分類、客戶反饋分析、潛在客戶評分。這些接受文字輸入並輸出類別或分數。最容易微調。

    第 2 組:提取(3 個工作流程) — 發票資料提取、合同條款提取、產品描述標準化。這些接受非結構化文字並輸出結構化資料。中等複雜度。

    第 3 組:生成(5 個工作流程) — 內容摘要、會議記錄、社交媒體生成、聊天機器人響應、資料豐富。這些生成自由格式文字。最高複雜度。

    我的計劃是按這個順序處理它們,每組花費約一週時間,最後一週進行並行測試和切換。

    第 1 週:資料收集

    這是最繁瑣的部分。我需要訓練資料——每個工作流程的輸入和正確輸出示例。

    幸運的是,n8n 存儲執行歷史。我有幾個月的成功執行,包括發送給 OpenAI 的輸入和收到的輸出。我寫了一個簡單的腳本將這些導出為 JSONL 文件。

    對於每個工作流程,我導出了過去 3 個月的成功執行並清理了它們:

    工作流程組原始執行清理後最終訓練集
    分類(4 個工作流程)12,4008,200800(每個工作流程 200 個)
    提取(3 個工作流程)6,1504,800600(每個工作流程 200 個)
    生成(5 個工作流程)5,6003,900750(每個工作流程 150 個)

    「清理」意味著刪除重複項,丟棄輸出明顯錯誤的執行(我在幾個月裡手動標記了一些),修復格式不一致,並確保輸入-輸出對是自包含的(沒有對提示中不會存在的背景的引用)。

    我最終得到了三個整合資料集:

    1. 分類資料集(800 個示例):輸入文字 + 類別/分數標籤。覆蓋所有 4 個分類工作流程。
    2. 提取資料集(600 個示例):輸入文字 + 結構化 JSON 輸出。覆蓋發票、合同和產品標準化工作流程。
    3. 生成資料集(750 個示例):輸入簡報/文字 + 生成的輸出。覆蓋摘要、社交媒體、聊天機器人和豐富工作流程。

    清理工作在 3 天內分散進行了約 6 小時。這不是迷人的工作,但這一步決定了您的微調模型是否真正起作用。垃圾進,垃圾出。

    第 2 週:微調

    我使用 Ertas 微調了三個模型:

    模型 1:用於分類的 Qwen 2.5 7B。 我為分類選擇 Qwen,因為它在推理時速度快,且處理結構化輸出良好。上傳了 800 個示例的分類資料集。訓練需要 35 分鐘。我運行了內置評估,立即在保留測試集上得到了 94% 的精確度。老實說,我很震驚——我以為需要多次訓練運行。

    模型 2:用於提取的 Llama 3.3 8B。 提取需要理解文件結構並產生有效的 JSON,所以我選擇了稍大的 Llama 基礎。上傳了 600 個示例的提取資料集。訓練需要 42 分鐘。評估顯示提取任務的精確度為 91%。主要錯誤在邊緣案例上——多幣種發票和格式不尋常的合同。

    模型 3:用於生成的 Llama 3.3 8B。 生成是最難的任務類型,因為「正確」的輸出是主觀的。我再次使用 Llama 3.3 8B。在 750 個示例的資料集上訓練需要 48 分鐘。評估更難——我不能只比較輸出是否完全匹配。我手動審查了 50 個生成的輸出,發現大約 82% 可以立即使用,14% 需要少量編輯,4% 沒有達標。

    總微調成本:Ertas Builder 計劃 $14.50(涵蓋所有三次訓練運行及更多)。總時間:約 2 小時的主動工作加上訓練時間。

    我將所有三個模型導出為 GGUF 文件。每個量化為 Q4_K_M 後約為 4.5–5GB。

    第 3 週:測試

    這是最重要的一週。我在開發機器上設置了 Ollama,加載了所有三個模型,並進行了並行測試。

    對於每個工作流程,我取了最後 100 個生產執行,並通過 OpenAI 模型和我的微調模型運行它們。然後比較輸出。

    分類結果

    工作流程GPT-4o/mini 精確度微調 Qwen 7B 精確度勝者
    電子郵件分類88%96%微調
    支援工單分類85%95%微調
    客戶反饋分析90%93%微調
    潛在客戶評分(1 分以內)72%84%微調

    微調模型在每個分類任務上都勝過了 GPT-4o-mini。這是有道理的——微調模型在這些確切類別上進行了訓練,示例來自我的特定領域。GPT-4o-mini 是從系統提示中猜測的。

    潛在客戶評分的改進是最大的驚喜。GPT-4o(不是 mini——我為這個支付了全模型的費用)不一致地給潛在客戶評分。相同的潛在客戶描述一天可能得 6 分,第二天可能得 8 分。微調模型更加一致,因為它從 200 個示例中學習了我的具體評分標準。

    提取結果

    工作流程GPT-4o 精確度微調 Llama 8B 精確度勝者
    發票提取(所有字段正確)76%92%微調
    合同條款提取71%88%微調
    產品描述標準化83%95%微調

    同樣,微調模型全面勝出。最大的改進是在發票上——GPT-4o 在一致的字段命名方面有困難,偶爾幻覺出值。微調模型學習了我的確切 JSON schema,幾乎從不偏離它。

    合同條款提取是最具挑戰性的。一些合同具有微調模型沒有見過的不尋常格式。我記錄了這些以便之後獲得更多訓練資料。

    生成結果

    工作流程GPT-4o 品質(手動評分 1–5)微調 Llama 8B 品質勝者
    內容摘要4.23.9GPT-4o(稍微領先)
    會議記錄轉行動項目3.84.1微調
    社交媒體帖子起草4.03.5GPT-4o
    聊天機器人響應3.64.3微調
    資料豐富3.42.8GPT-4o

    生成結果參差不齊。微調模型在具有可預測結構的任務上表現出色——會議記錄和聊天機器人響應,格式一致,內容特定於領域。GPT-4o 在創意任務(社交媒體帖子)和需要外部知識的任務(資料豐富)上有優勢。

    對於社交媒體帖子起草,微調模型產生了功能性但公式化的帖子。它們完美地匹配了我們的品牌語氣(因為這正是它的訓練內容),但缺乏 GPT-4o 帶來的多樣性。我決定這對於無論如何都需要人工審查的初稿是可以接受的。

    對於資料豐富,微調模型無法與 GPT-4o 媲美,因為任務本身需要關於公司的廣泛知識。這是我考慮保留在 API 上的一個工作流程。稍後詳述。

    第 4 週:切換

    我配置了一個 Hetzner CPX41 VPS——8 vCPU(AMD EPYC)、16GB RAM、240GB NVMe SSD。成本:$30.49/月。安裝了 Ubuntu 24.04,設置了 Ollama,並加載了所有三個 GGUF 模型。

    我配置 n8n 使用 Ollama 端點而不是 OpenAI API。由於 Ollama 公開了與 OpenAI 相容的 API,這在字面上是在 n8n HTTP 請求節點中更改基本 URL 和 API 密鑰。對於大多數工作流程,切換是一行更改。

    我按信心順序遷移工作流程:

    第 1–2 天:分類工作流程(最高信心)。將所有 4 個分類工作流程切換到微調 Qwen 模型。保持 OpenAI 作為影子管道並行運行——兩個模型都處理每個輸入,但只使用微調模型的輸出。

    第 3–4 天:提取工作流程。切換所有 3 個提取工作流程。相同的影子管道設置。監控 JSON 解析錯誤,因為下游工作流程依賴乾淨的結構化輸出。

    第 5 天:生成工作流程(除資料豐富外)。切換 5 個生成工作流程中的 4 個。對於聊天機器人工作流程,我很緊張——它面向客戶。我讓影子管道多運行了 3 天。

    第 6–7 天:資料豐富。這是棘手的。我的微調模型無法與 GPT-4o 在公司研究方面的廣博知識相媲美。我做了一個務實的決定:我切換到混合方法。微調模型處理格式化和結構化輸出,而我使用 Serper API($5/月)獲取饋送到模型的實際網路研究資料。這個工作流程的總成本從每月 $48 降至約 $7。

    完成全面切換後,我將 OpenAI API 密鑰保持活躍一週作為手動備用。我從未需要它。在第 14 天,我刪除了 API 密鑰。

    60 天後的結果

    以下是兩個完整月份生產使用後的誠實比較。

    成本

    指標之前(OpenAI)之後(自托管)變化
    月度 AI API 成本$487$0-100%
    月度 VPS 成本$0$30.49+$30.49
    月度 Ertas 成本$0$14.50+$14.50
    月度 Serper API(豐富)$0$5+$5
    月度 AI 總支出$487$49.99-$437.01
    年度 AI 支出$5,844$599.88-$5,244.12

    我每月節省 $437。一年下來,那是 $5,244。對於小型自動化代理機構,這很重要——大約相當於一個月的兼職承包商費用,或新設備,或直接的利潤。

    性能

    指標之前(OpenAI)之後(自托管)變化
    平均分類精確度84%95%+11 個百分點
    平均提取精確度77%92%+15 個百分點
    平均生成品質(1–5)3.83.9+0.1
    每個請求的平均延遲1,100ms185ms-83%
    超時/錯誤率1.8%0.1%-94%
    正常運行時間(AI 層)99.2%99.95%+0.75 個百分點

    分類和提取的精確度改進是真實且持續的。60 天後,微調模型在我的特定任務上持續優於 GPT-4o 的表現。

    延遲改進是巨大的。我的工作流程明顯更快。以前每封電子郵件需要 3–4 秒的電子郵件分類工作流程現在在 500ms 以內完成。支援工單分類器在 120ms 內響應。用戶注意到了——我的在我的 n8n 實例上運行支援機器人的客戶評論說「機器人感覺更敏捷了」。

    正常運行時間改進比任何事情都更重要。60 天內零 API 中斷。零速率限制錯誤。零「模型過載」響應。我的工作流程就是能運行。唯一的停機時間是我重啟 VPS 進行內核更新的 12 分鐘——而且我把它安排在凌晨 3 點。

    指標之前之後變化
    每日處理的 AI 請求約 1,355約 1,620+20%
    月度 AI 請求約 40,650約 48,600+20%
    每個請求的成本$0.012$0.001-92%

    量在 60 天內增長了 20%,因為我的客戶向管道中添加了更多資料。在舊系統下,這種增長會將我的 API 費用推高到 $585 以上。在新系統下,我甚至沒有注意到——VPS 輕鬆處理了額外的負載。

    讓我驚訝的事情

    本地實際上更快

    我預計自托管會更慢。根本不是這樣。沒有到 OpenAI 伺服器的網路往返,沒有 API 佇列時間,沒有冷啟動延遲,每個請求都更快。通過 API 需要 800ms 的分類請求現在在本地 120ms 內完成。這是 6.7 倍的改進。

    對於我的會議記錄工作流程,這很重要。通過 GPT-4o 處理 45 分鐘會議轉錄需要 8–12 秒。通過本地模型,需要 1.5 秒。每月 40 個會議相乘,我僅在那一個工作流程上就節省了 7–8 分鐘的掛鐘時間。

    微調模型更一致

    這是最大的實際改進。GPT-4o 的輸出在相同輸入之間在格式、結構甚至正確性上都有所不同。我的下游 n8n 節點有廣泛的錯誤處理——用於捕捉格式變化的正則表達式模式、格式錯誤 JSON 的重試邏輯、備用解析器。

    使用微調模型,我刪除了大部分錯誤處理代碼。模型 98% 以上的時間產生相同的輸出格式。我的 n8n 工作流程同時變得更簡單和更可靠。

    一些工作流程實際上得到了改進

    我期望微調模型能「足夠好」。對於分類和提取,我得到了「顯著更好」。潛在客戶評分工作流程從與手動分數的 72% 一致提高到 84%。支援工單分類器從 85% 提高到 95%。這些不是微小的改進——它們大大減少了我的團隊進行的手動審查。

    原因很簡單:GPT-4o 試圖在所有方面都表現良好。我的微調模型試圖在一件事上表現良好。在那一件事上,專業化勝出。

    資源使用量很少

    我擔心 VPS 在加載三個模型時會耗盡記憶體或 CPU。實際上,Ollama 在模型加載方面很高效——它將活躍模型保留在記憶體中,並按需交換。有了 16GB RAM,我可以同時加載兩個模型,第三個在需要時在約 2 秒內加載。

    正常操作期間 CPU 使用率平均為 15–20%,批量處理期間峰值為 60–70%。在需要升級之前,我有充足的餘地添加更多工作流程。

    我會做不同事情的地方

    從最高量的工作流程開始

    我從分類開始,因為它是最容易微調的。事後看來,我應該從產品描述標準化(每天 300 個)或聊天機器人(每天 250 個對話)開始。這些有最高的 API 成本,會顯示出最快的投資回報。

    預先收集更多訓練資料

    我每個分類工作流程使用了 200 個示例,效果很好。但對於提取和生成,我希望我使用了 300–400 個示例。合同條款提取模型仍然在不尋常的合同格式上有困難,我懷疑更多訓練資料會有所幫助。我一直在收集更多示例,計劃下個月重新訓練。

    更早測試邊緣案例

    我的第一批訓練資料偏向常見案例。發票提取模型在標準發票上表現良好,但最初在多頁發票和帶有外幣格式的發票上表現不佳。我應該從一開始就故意在訓練集中包含更多邊緣案例。我通過添加 50 個邊緣案例示例並重新訓練解決了這個問題——邊緣案例的精確度從 61% 躍升到 87%。

    從第一天就設置監控

    前兩週,我手動檢查輸出。我應該從一開始就構建一個簡單的監控儀表板——自動追蹤精確度、延遲和輸出格式符合度。我最終用一個獨立的 n8n 工作流程構建了這個,對 5% 的輸出進行採樣並記錄下來以供審查。希望我在第一天就這樣做了。

    最終數字

    讓我再展示一次,因為這些數字在我看到它們時仍然讓我感到驚訝。

    之前之後
    月度 AI 支出$487$49.99
    年度 AI 支出$5,844$599.88
    年度節省$5,244.12
    精確度(分類平均)84%95%
    精確度(提取平均)77%92%
    平均延遲1,100ms185ms
    經歷的 API 中斷(60 天)30
    供應商依賴OpenAI(關鍵)無(關鍵)

    $487/月現在是 $49.99/月。那是 VPS 的 $30、Ertas 的 $14.50 和我在資料豐富工作流程中使用的 Serper API 的 $5。年度節省 $5,244。

    但節省在這一點上幾乎是次要的。我最看重的是可靠性和獨立性。當 OpenAI 出現問題時,我的 AI 層不會宕機。當舊金山的某人調整定價滑塊時,我的成本不會改變。我客戶的資料保留在我的伺服器上。

    我擁有我的模型。我擁有我的資料。我擁有我的基礎設施。這是我自從在工作流程中開始使用 AI 以來,第一次真正擁有我業務中最重要的部分。

    如果您在運行帶有 OpenAI 調用的 n8n 工作流程,每月花費超過 $50,遷移是值得的。我花了 4 週的兼職工作。模型在我的任務上更好,在每個任務上更快,成本低 90%。我希望我六個月前就這樣做了。


    Ship AI that runs on your users' devices.

    Ertas early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.

    延伸閱讀

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.

    Keep reading