打造 Contour:基於物理機制的時尚合身引擎。同一身形穿原色赤耳為 29 號、穿彈性丹寧為 28 號,準確率超越傳統尺寸表 40 個百分點。
Fashion TechEcommerceRetail Technology

同一身形穿某款牛仔褲是 29 號,換另一款卻是 28 號:我打造了解釋尺寸表為何無法區分兩者的合身度引擎

Ashutosh SinghalAshutosh Singhal2026年7月10日12 min

我打造這個展示是為了平息我一直在與自己爭論的問題,而只用了一個下拉選單就結束了這場爭論。我設定了一位名為 Riley 的合成購物者、一組固定的身體測量數據,以及包含八款合成牛仔褲的型錄。我讓 Riley 試穿 Ironside——一款 14 盎司的原色赤耳邊直筒牛仔褲,質地硬挺、零彈性——引擎給出的結果是29 號,95% 信心度,各部位均屬舒適。 接著,我完全沒有改變 Riley 的任何數據,只將服裝更換為 Driftwood——一款在商品照片中看起來幾乎一模一樣的彈性修身牛仔褲——正確尺寸便降至28。

相同的身形。相同的測量數據。兩種不同的正確尺寸。而僅依據腰圍的尺寸表——如今幾乎所有服飾網站實際使用的工具——會為這兩款牛仔褲標示完全相同的號碼,並在其中一款上出錯。

Contour 在 Ironside 原色赤耳牛仔褲上以 95% 信心度為 Riley 推薦 29 號,並註明僅看腰圍的尺寸表會顯示 28 號且發生錯誤,各部位應變長條圖均顯示為舒適
Riley 試穿硬挺的 Ironside 原色赤耳牛仔褲:引擎以 95% 信心度給出 29 號,各部位均舒適,並標註僅看腰圍的尺寸表本會給出 28 號。在這種零彈性丹寧布料上,28 號會遠遠超出大腿的彈性極限。

我最終打造出的產品名為 Contour,你可以在此親自執行這項完全相同的比較:veriprajna.com/zh-Hant/demos/ai-fit-prediction-fashion。但我想探討的並非推薦本身,而是在身形完全沒有改變的情況下,推薦結果為何會改變的原因;因為這個原因正是促使我以這種方式構建系統的完整依據。

時尚界一直試圖用更好的圖片來解決退貨問題

我和這個領域的大多數人一樣,最初啟動這個專案時認為退貨問題本質上是影像問題。服飾退貨主要由合身度問題主導,與合身相關的佔比介於 53% 至 67% 之間,約有 63% 的購物者承認他們會採取包夾購買策略(bracketing),即同時訂購兩種尺寸並退回其中一種(Veriprajna WP34 研究,2026 年)。逆向物流蠶食了利潤。業界的解法一直是讓圖片更精美:更豐富的尺寸表、接著是 3D 虛擬替身,再來是將服裝渲染到你身體照片上的生成式虛擬試穿。

我有一段時間深信足夠逼真的試穿可以消除差距,但隨後我仔細審視了試穿究竟向你展示了什麼。它展示的是牛仔褲穿在身體上的樣子,但並未展示這條牛仔褲是否合身。 生成式影像能逼真地垂墜布料,卻絲毫不知道當 Riley 坐下時,大腿圍會超出該款丹寧布所能拉伸的極限。圖片看起來合適,縫線卻承受著渲染圖從未計算過的負載。

虛擬試穿可以向你展示牛仔褲穿在身上的模樣,卻依然無法得知它們是否合身。

正是這句話為我重新定義了這個專案。尺寸表是四個一維數字,假裝在描述一個三維人體;而試穿圖片則是精美的二維渲染圖,假裝自己是合身度數據。它們有著相同的盲點:兩者都無法感知布料。 一件服裝是否合身並非視覺問題,而是力學問題:身體各部位的周向應變與該布料彈性極限的對比測量。這就是為什麼即使尺寸表完全相同,Riley 穿原色赤耳牛仔褲是 29 號,而穿彈性丹寧褲則是 28 號。

Contour 在 Driftwood 彈性修身牛仔褲上為同一位購物者 Riley 推薦 28 號,並註明此處僅看腰圍的尺寸表也得出 28 號,因為彈性包容了其他部位
同一個 Riley,現在換上 Driftwood 彈性修身褲。正確尺寸降至 28 號(信心度 90%),因為彈性丹寧包容了大腿與臀部,而硬挺的赤耳布料則做不到這一點。服裝改變了,身形沒有變,答案卻改變了。

為什麼我不再信任模型來挑選尺寸?

在早期,我曾讓語言模型挑選過一次尺寸,而目睹它自信地犯錯,正是架構演變成如今樣貌的原因。我的第一直覺很直接:把身體數據輸入模型、把服裝數據輸入模型,然後向它索取尺寸。它回答得又快又流暢,但遇到硬挺布料時,往往以最危險的方式出錯——帶著高信心度出錯。它學會了看似合理的尺碼答案外觀,卻沒有進行決定真實結果的那次關鍵計算。

因此,我將決策權完全從模型中抽離。在 Contour 中,尺寸是透過經過單元測試的純 Python 計算出來的。針對每個候選尺寸,引擎會在每個部位計算zone_strain = (body_circumference − garment_finished_circumference) / garment_finished_circumference,將其與布料的彈性舒適極限進行比對,並挑選出各部位總後悔值最低的尺寸。八項單元測試牢牢鎖定了這套物理學機制。在整個流程路徑中,沒有任何模型在決定你的尺寸。 語言模型依然有其任務:將雜亂的廠商文案解讀為結構化的布料規格,並將結果表述為「臀部貼合,大腿寬鬆」。它提供建議,絕不做決策。

Agent 提供建議,程式碼做出決策。一旦模型在數字上擁有投票權,你就失去了讓該數字值得信賴的基石。

這也是本論點中歷久彌新的一部分,也是我給那些詢問為何不乾脆等待更優秀模型的工程師的回答。一個完美的語言模型依然無法取代對布料力學、人體幾何、各部位應變計算以及棄權策略的需求。即使是毫無瑕疵的顧問,也必須依據計算出的量化數值進行驗證,以確保結帳時的安全。模型只是機器內部一個可替換的顧問。機器本身才是產品。

拒絕猜測的尺寸

我差點發布了一個從不說「我不知道」的版本,我很慶幸一個頑固的測試案例打消了我的念頭。那位購物者是 Jordan,試穿同一款硬挺的 Ironside 赤耳牛仔褲。我執行合身度檢查,期望得到一個明確的數字,但引擎卻揭示了真正的衝突:在較小尺寸下,大腿遠超出布料的彈性極限;而在較大尺寸下,腰圍又偏鬆。在零彈性丹寧布料上,根本沒有任何尺寸能在所有部位都過關。與此同時,僅看腰圍的尺寸表卻自信地印出28並就此交差。

Contour 在 Jordan 試穿 Ironside 牛仔褲時選擇棄權,顯示真正的合身衝突,以 58% 信心度推薦 31 號為最不差的選擇,伴隨腰部和臀部偏鬆,並建議包夾購買或諮詢造型師
Jordan 試穿硬挺的 Ironside:腰部與臀部偏鬆(-8% 和 -6%),大腿偏緊,且沒有任何尺寸能在所有部位完全合適。引擎以 58% 的信心度指出最不差的尺寸(31 號)並選擇棄權,提示「包夾購買或諮詢造型師」,而不是像尺寸表那樣自信地虛張聲勢給出 28 號。

最誘人的做法——也是能讓你的表面準確率看起來更好的做法——就是始終輸出最不差的尺寸並稱之為推薦。我曾寫過那個版本。隨後我改為讓引擎棄權:它指出最不差的尺寸,將信心度降至 0.58,並明確提示「包夾購買,或諮詢造型師」。在完整評估中,它在 105 組身材與服裝配對中有 33 組選擇這樣做,而不是胡亂猜測。一句坦誠的「此處沒有任何單一尺寸完全合適」,對購物者的價值遠高於自信卻錯誤的 28 號,因為自信卻錯誤的 28 號正是導致退貨的根源。事實證明,拒絕回答是一項我必須對抗自己追求基準分數的本能才能保留下來的功能。

不可能屬實的廠商文案

我在型錄中放了一件服裝,其存在純粹是為了被拒絕,這源於對商品文案撰寫方式的真實不滿。Maverick 被其廠商描述為「具備四向彈性的 100% 純棉原色赤耳丹寧」。這種宣稱在物理上是不合理的。硬挺梭織的原色赤耳不可能同時具備四向彈性。但天真的擷取器讀到「四向彈性」,便欣然假定該布料能包容一切,並面帶微笑遞給你一個危險且錯誤的尺寸。

因此,在擷取與決策之間,我加入了一個對抗性審查器(adversarial critic)。它會根據物理約束檢查擷取出的布料規格,當文案自相矛盾時,它會阻斷推論並轉交人工審查。不提供任何尺寸推薦。 具有最終決定權的是確定性規則,而非解讀文案的模型。

Contour 阻斷了廠商文案宣稱原色赤耳且具備四向彈性的 Maverick 牛仔褲,審查器訊息顯示布料推論因力學不相容而被拒絕,並轉交人工審查且未給出尺寸
Maverick 的文案同時宣稱「原色赤耳」與「四向彈性」。審查器以力學不相容為由拒絕了這項推論(硬挺梭織布料不可能具備四向彈性),並將其轉交人工審查而不發布任何推薦,而不是將矛盾粉飾成一個看似自信的尺寸。

我將這個範例保留在螢幕上,因為它是針對此問題最真實的「AI 安全」版本。失敗模式並非模型發揮了創造力,而是在面對一件本身描述就造假的服裝時,模型順從地犯錯。 一個總是給出答案的系統在這裡也會回答,而且它對 Maverick 的信心程度,會與對文案真實的牛仔褲完全一樣。關鍵在於設置一個能夠表明「這兩項事實不可能同時成立」並及時停下的層級。

數據真正表達了什麼,以及沒有表達什麼

我在乎基準測試,我更在乎誠實說明其範疇,因為誠實的數據才是經得起考驗的。在包含 15 種身材對應 7 款計分服裝的 105 組標註合成黃金數據集上,Contour 引擎獲得了100%,相較之下僅看腰圍的尺寸表為60%。 它在 67.6% 的配對中消除了包夾購買,意味著購物者能獲得一個高信心度尺寸而無需訂購兩件;它還捕捉到 39 起合身衝突,即尺寸表的腰圍匹配挑選出的尺寸經應變模型證明在其他部位不合身的情況。

Contour 的基準面板顯示引擎準確率為 100%,而僅看腰圍的基準為 60%,提升了 40 個百分點,共評估 105 次合身度,捕捉到 39 起衝突,單一尺寸率為 67.6%,並附有原色赤耳牛仔褲的個別購物者表格
基準測試:在 105 組配對中,引擎準確率達 100%,而僅看腰圍的尺寸表為 60%,提升了 +40 個百分點,捕捉到 39 起衝突,並在 67.6% 的配對中消除了包夾購買。在硬挺赤耳牛仔褲(上方表格)上,尺寸表準確率降至 33%,而這正是合身難度最高之處。

這是我拒絕含糊帶過的部分。該黃金數據集是合成的,其標籤採用了與引擎相同的可測量布料彈性數值,因此它並非完全獨立的預言機。 這 100% 是該構建數據集的特性,而非在開放世界中完美預測合身度的承諾,我絕不允許任何人將其作為承諾來引用。我真正認可的數字是相比現有實際方法所提升的 +40 個百分點, 即在相同標籤下測量的大多數店家目前採用的僅看腰圍尺寸表。這項優勢在最該發揮作用之處最為顯著:在硬挺赤耳與剪裁服飾上,尺寸表準確率降至 33%,因為硬挺布料會對錯誤尺寸施以懲罰,而彈性針織則予以包容。物理特性限制最嚴格之處,正是圖片幫助最小之處,也是該引擎體現其價值所在。

誠實的標題不是「100% 準確」,而是「比你店家原本信賴的尺寸表高出 40 個百分點,且大部分差距集中在丹寧布料」。

每一項推薦還會寫入可重現的 JSON 收據:擷取的布料規格附帶驅動各參數的確切原始語句、完整的各尺寸應變矩陣,以及最終決策。因此,這個答案不僅僅是一個數字,而是一個你可以展開並交叉檢驗的數字,且相同的有效負載也透過/api/fit 端點提供,AI 購物 Agent 可以直接呼叫。隨著電子商務邁向由 Agent 代為交易的時代,它們所獲取的尺碼訊號必須具備機器可讀性、信心度評分以及可稽核性。這是一份報告,而非一張圖片。

我反覆思考的問題

我當初投入這項工作時以為自己在打造一個更出色的猜測器,而結束時我深信自己打造出的更接近一台精密儀器。真正有趣的工作從來不是預測尺寸,而是決定系統被允許主張什麼、何時必須棄權、必須拒絕哪些矛盾,以及事後如何證明每一個答案。當我將下拉選單從硬挺牛仔褲切換到彈性牛仔褲,並看著在身形不變的情況下正確尺寸隨之改變時,我的感受不是「模型真聰明」,而是「物理規律是真實的,而我們終於不再將其隱藏在圖片背後」。你可以在veriprajna.com/zh-Hant/demos/ai-fit-prediction-fashion 親自切換該下拉選單並見證這一過程。

如果你想親眼看看而不是聽我描述,這裡是端到端完整運行的展示。

我反覆思索、且非常希望能與其他建構者共同探討的問題是:在其他哪些領域中,我們也在用更精美的圖像來掩蓋力學事實?十年間時尚界不斷追求更好的圖片,而答案其實一直存在於任何工程師都能進行單元測試的應變計算中。那麼在你的領域中,大家不斷試圖渲染的事物背後,底層的力學事實究竟是什麼?比起一個可被檢驗的數字,你會更相信一張圖片嗎?

相關研究

同步發佈於

自信打造您的 AI。

與一支在打造新世代企業級 AI 方面擁有深厚經驗的團隊攜手合作。讓我們協助您設計、建置並部署值得信賴的 AI 策略。

Veriprajna 深度科技顧問公司 專精於為醫療、金融及法規監管領域打造攸關安全的 AI 系統。我們的架構均依循既定規範進行驗證,並備有完整的合規文件。