[{"data":1,"prerenderedAt":1157},["ShallowReactive",2],{"post-hello-jecision":3,"site-info":435,"related-en-hello-jecision":530},{"zh":4,"en":244},{"id":5,"title":6,"author":7,"body":8,"cover":225,"coverAlt":226,"date":227,"description":228,"draft":229,"extension":230,"featured":231,"lang":232,"meta":233,"navigation":231,"path":234,"seo":235,"slug":236,"stem":237,"tags":238,"translationKey":236,"updated":242,"__hash__":243},"blog\u002Fblog\u002Fzh-TW\u002Fhello-jecision.md","搬家記：把部落格從一個沒人找得到的網域搬回來","Jecision",{"type":9,"value":10,"toc":215},"minimark",[11,15,19,38,45,48,51,58,73,76,79,100,118,124,127,139,149,152,166,172,175,203,206,212],[12,13,14],"h2",{"id":14},"起因是一行原始碼",[16,17,18],"p",{},"前陣子要把一篇舊文章轉給同事看，順手抓了頁面原始碼，然後愣住。",[16,20,21,25,26,29,30,33,34,37],{},[22,23,24],"code",{},"\u003Chtml>"," 沒有 ",[22,27,28],{},"lang","。沒有 ",[22,31,32],{},"\u003Ctitle>","。沒有 description，沒有 og，沒有 canonical，沒有一行 JSON-LD。公式的部分更妙——原始碼裡躺著的是 ",[22,35,36],{},"\\operatorname{Attention}"," 這串字，要等瀏覽器把 JavaScript 跑完，人才看得到排版好的數學。",[16,39,40,41],{},"也就是說：",[42,43,44],"strong",{},"對搜尋引擎來說，那篇文章從來沒有存在過。",[16,46,47],{},"文章寫得再好，放在一個沒有標題、沒有摘要、沒有結構化資料的頁面上，它就只是一段沒有人索引的文字。",[12,49,50],{"id":50},"當初為什麼會變這樣",[16,52,53,54,57],{},"不是不用心，是",[42,55,56],{},"工具用得比它設計的方式更用力","。",[16,59,60,61,64,65,68,69,72],{},"當時為了讓公式能顯示，我們在 Markdown 裡塞了 ",[22,62,63],{},"\u003Cdiv class=\"latex-block\">","，然後在 ",[22,66,67],{},"onMounted"," 裡用 KaTeX 把它的 ",[22,70,71],{},"textContent"," 換成公式。瀏覽器上看起來完全正常，所以也沒有人覺得有問題。",[16,74,75],{},"問題在於這個做法把兩件事綁在一起：內容要靠 JavaScript 才成立，而 SEO 需要的是「不跑 JavaScript 也成立」。",[12,77,78],{"id":78},"搬家的三個決定",[16,80,81,84,85,88,89,92,93,88,96,99],{},[42,82,83],{},"一、內容搬家，不是版面搬家。"," 12 篇文章全部重新轉換，公式改寫成 ",[22,86,87],{},"$...$"," 與 ",[22,90,91],{},"$$...$$","，交給 ",[22,94,95],{},"remark-math",[22,97,98],{},"rehype-katex"," 在 build 時處理。現在公式是 HTML 的一部分，不需要任何前端 JavaScript。",[16,101,102,105,106,109,110,113,114,117],{},[42,103,104],{},"二、網址由資料決定，不由檔名決定。"," 舊站的檔名是 ",[22,107,108],{},"2604.04921v1.md","，結果網址變成 ",[22,111,112],{},"\u002Fen\u002Fblog\u002F04921v1","——數字前綴被吃掉，檔名和網址永遠對不起來。新站改成 frontmatter 裡寫 ",[22,115,116],{},"slug","，檔名再亂都不影響網址。",[16,119,120,123],{},[42,121,122],{},"三、舊網址一條都不能斷。"," 已經被 Google 記住的東西，不該因為我們重寫而消失。28 條 301 對照全部列出來，包含尾斜線的版本。",[12,125,126],{"id":126},"三個差點讓上線失敗的意外",[16,128,129,132,133,135,136,138],{},[42,130,131],{},"第一個：slug 被吃掉。"," 這件事是在舊站發現的——",[22,134,108],{}," 變成 ",[22,137,112],{},"。如果沒有先抓一次線上頁面，我們會以為搬家只是複製檔案。",[16,140,141,144,145,148],{},[42,142,143],{},"第二個：hreflang 指到不存在的頁面。"," 新站預設會幫每個語系產生 alternate 連結，但只有中文版的文章，英文連結就是一個 404。跑 ",[22,146,147],{},"nuxt generate"," 的時候 prerender 直接掛掉，錯誤訊息長得像「Article not found，linked from \u002Fblog\u002Fxxx」。",[16,150,151],{},"解法不是關掉檢查，而是讓每一頁自己宣告「我實際有哪些語系版本」。只有真的存在的中英版本，才會出現在 hreflang 裡。",[16,153,154,161,162,165],{},[42,155,156,157,160],{},"第三個：",[22,158,159],{},"\u002Fsitemap.xml"," 是 HTML。"," 這件事最陰險。build 成功、檔案存在、打開也有內容——但它是一個 ",[22,163,164],{},"\u003Cmeta http-equiv=\"refresh\">"," 的轉址頁，不是 XML。Google 會直接判定 sitemap 無效。",[16,167,168,169,171],{},"後來在 build 後加了一步，把 sitemap index 的內容直接寫成 ",[22,170,159],{},"，才真的能提交。",[12,173,174],{"id":174},"現在的樣子",[176,177,178,182,189,196],"ul",{},[179,180,181],"li",{},"公式在伺服器端就排版完成，原始碼裡有 MathML",[179,183,184,185,188],{},"每一頁都有 title、description、canonical、hreflang、og，文章另有 ",[22,186,187],{},"BlogPosting"," 結構化資料",[179,190,191,192,195],{},"RSS、",[22,193,194],{},"llms.txt","、sitemap、301 對照都有",[179,197,198,199,202],{},"還寫了一支 ",[22,200,201],{},"audit"," 腳本，build 完直接檢查 25 個頁面的 SEO 與壞連結。目前是 0 錯誤 0 警告",[12,204,205],{"id":205},"一句話總結",[16,207,208,209,57],{},"搬家最花時間的不是搬，是",[42,210,211],{},"確認搬過去的東西真的還在",[16,213,214],{},"我們的做法是：把「應該要有」的東西寫成檢查，讓它每次 build 都自己驗一遍。人會忘記，腳本不會。",{"title":216,"searchDepth":217,"depth":217,"links":218},"",2,[219,220,221,222,223,224],{"id":14,"depth":217,"text":14},{"id":50,"depth":217,"text":50},{"id":78,"depth":217,"text":78},{"id":126,"depth":217,"text":126},{"id":174,"depth":217,"text":174},{"id":205,"depth":217,"text":205},"\u002Fimages\u002Fblog\u002Fhello-jecision.svg","從臨時網域搬回品牌網域的示意圖","2026-10-23","舊站的每一篇文章，原始碼裡都沒有 title、沒有 description、沒有 canonical，公式還是純文字。這篇記錄我們把部落格搬回 jecision.com 的過程，以及三個差點讓上線失敗的意外。",false,"md",true,"zh-TW",{},"\u002Fblog\u002Fzh-tw\u002Fhello-jecision",{"title":6,"description":228},"hello-jecision","blog\u002Fzh-TW\u002Fhello-jecision",[239,240,241],"nuxt","seo","重構",null,"eMzmxLsypk5GpqCf6q2_9_s4WWIcInwgrCKPRumQDZc",{"id":245,"title":246,"author":7,"body":247,"cover":225,"coverAlt":425,"date":227,"description":426,"draft":229,"extension":230,"featured":231,"lang":427,"meta":428,"navigation":231,"path":429,"seo":430,"slug":236,"stem":431,"tags":432,"translationKey":236,"updated":242,"__hash__":434},"blog\u002Fblog\u002Fen\u002Fhello-jecision.md","Moving the blog off a domain nobody could find",{"type":9,"value":248,"toc":417},[249,253,256,271,277,281,284,296,304,308,325,340,346,350,356,365,376,380,403,407,414],[12,250,252],{"id":251},"it-started-with-one-line-of-source-code","It started with one line of source code",[16,254,255],{},"I was sending an old article to a colleague, so I grabbed the page source, and stopped.",[16,257,258,259,261,262,264,265,267,268,270],{},"No ",[22,260,28],{}," on ",[22,263,24],{},". No ",[22,266,32],{},". No description, no Open Graph, no canonical, not a single line of JSON-LD. The math was worse: the source contained the literal string ",[22,269,36],{},", and only became typeset once JavaScript finished running.",[16,272,273,274],{},"Which means: ",[42,275,276],{},"to a search engine, that article never existed.",[12,278,280],{"id":279},"how-it-got-that-way","How it got that way",[16,282,283],{},"Not carelessness — we used the tool harder than it was designed to be used.",[16,285,286,287,289,290,292,293,295],{},"To make formulas render, we wrapped LaTeX in ",[22,288,63],{}," and replaced its ",[22,291,71],{}," with KaTeX output inside ",[22,294,67],{},". It looked perfect in the browser, so nobody questioned it.",[16,297,298,299,303],{},"The problem is that this couples two things: the content only exists after JavaScript runs, while SEO needs content that exists ",[300,301,302],"em",{},"before"," it does.",[12,305,307],{"id":306},"three-decisions","Three decisions",[16,309,310,313,314,316,317,319,320,316,322,324],{},[42,311,312],{},"Move the content, not the layout."," All 12 articles were converted to ",[22,315,87],{}," and ",[22,318,91],{},", handled by ",[22,321,95],{},[22,323,98],{}," at build time. Math is now part of the HTML.",[16,326,327,330,331,333,334,336,337,339],{},[42,328,329],{},"Let data decide the URL, not the filename."," The old filenames looked like ",[22,332,108],{},", and the resulting URL was ",[22,335,112],{}," — the numeric prefix silently vanished. Now a ",[22,338,116],{}," field in frontmatter owns the URL.",[16,341,342,345],{},[42,343,344],{},"Not a single old URL may break."," 28 redirects, including trailing-slash variants.",[12,347,349],{"id":348},"three-bugs-that-almost-broke-the-launch","Three bugs that almost broke the launch",[16,351,352,355],{},[42,353,354],{},"The eaten slug."," Discovered by fetching the live page, not by reading the code. Had we skipped that, we would have assumed a move is just copying files.",[16,357,358,361,362,364],{},[42,359,360],{},"hreflang pointing at 404s."," The i18n module generates alternates for every locale, but a Chinese-only article has no English version. ",[22,363,147],{}," failed with \"Article not found, linked from \u002Fblog\u002Fxxx\". The fix was not to disable the check, but to let each page declare which locales actually exist.",[16,366,367,372,373,375],{},[42,368,369,371],{},[22,370,159],{}," was HTML."," The build succeeded, the file existed, it had content — but it was a ",[22,374,164],{}," shim, not XML. Google would reject it outright. A post-build step now writes the sitemap index into that path.",[12,377,379],{"id":378},"where-we-are","Where we are",[176,381,382,385,391,397],{},[179,383,384],{},"Math is typeset server-side, with MathML in the markup",[179,386,387,388,390],{},"Every page has title, description, canonical, hreflang, OG; articles carry ",[22,389,187],{}," structured data",[179,392,393,394,396],{},"RSS, ",[22,395,194],{},", sitemap and redirects all in place",[179,398,399,400,402],{},"An ",[22,401,201],{}," script checks 25 pages for SEO regressions and broken links on every build: currently 0 errors, 0 warnings",[12,404,406],{"id":405},"the-one-line-takeaway","The one-line takeaway",[16,408,409,410,413],{},"Most of the work in a migration is not moving things — it is ",[42,411,412],{},"proving the things arrived",".",[16,415,416],{},"So we turned \"should be there\" into a check that runs on every build. People forget; scripts do not.",{"title":216,"searchDepth":217,"depth":217,"links":418},[419,420,421,422,423,424],{"id":251,"depth":217,"text":252},{"id":279,"depth":217,"text":280},{"id":306,"depth":217,"text":307},{"id":348,"depth":217,"text":349},{"id":378,"depth":217,"text":379},{"id":405,"depth":217,"text":406},"Diagram of moving from a temporary domain to the brand domain","The old site shipped every article with no title tag, description or canonical URL — and LaTeX that only appeared after JavaScript ran. Here is the move, and the three bugs that almost broke it.","en",{},"\u002Fblog\u002Fen\u002Fhello-jecision",{"title":246,"description":426},"blog\u002Fen\u002Fhello-jecision",[239,240,433],"refactor","B3ZG8h7XSdAA7KdGCvK_B8LStrBHlGoRZor2i2V_o7k",{"id":436,"company":437,"extension":448,"meta":449,"services":450,"social":527,"stem":528,"__hash__":529},"site\u002Fsite.yml",{"name":438,"nameEn":439,"email":440,"address":441,"addressEn":442,"lineUrl":443,"lineId":444,"duns":445,"youtube":446,"youtubeId":447},"銡策數位有限公司","Jecision Digital Co., Ltd.","contact@jecision.com","231 新北市新店區北新路二段 262 號 3 樓之 3","3F.-3, No. 262, Sec. 2, Beixin Rd., Xindian Dist., New Taipei City 231, Taiwan","https:\u002F\u002Fline.me\u002FR\u002Fti\u002Fp\u002F@374qnumi","@374qnumi","963905705","https:\u002F\u002Fwww.youtube.com\u002Fshorts\u002F6UE0WTmyjsg","6UE0WTmyjsg","yml",{},[451,474,500],{"key":201,"zh":452,"en":463},{"title":453,"tagline":454,"summary":455,"points":456,"deliverable":460,"detail":461,"duration":462},"企業 AI 導入健檢","先看清楚，再花錢","60 分鐘線上訪談，盤點最耗時、最依賴人力的營運環節；我們會告訴你哪些工作現在就能交給 AI、哪些還不成熟。",[457,458,459],"現況盤點：梳理日常營運中最耗時、最依賴人力的環節","痛點診斷：判斷哪些工作現在就能交給 AI，哪些建議先保留人力","可行性評估：依你的業務特性與預算，篩選適合的模型與工具","《企業 AI 導入建議報告書》（PDF）","含 1–2 個「開發成本最低、成效最明顯」的優先項目、技術棧建議、預期節省的人力時間與下一步","訪談 60 分鐘，報告書 3 個工作天內交付",{"title":464,"tagline":465,"summary":466,"points":467,"deliverable":471,"detail":472,"duration":473},"AI Readiness Audit","Look before you spend","A 60-minute remote audit of the workflows that eat the most time and people-power — and an honest answer on what AI can take over today, and what it cannot.",[468,469,470],"Audit the daily workflows that consume the most time and headcount","Triage which tasks AI can own today, and which should stay human","Shortlist the models and tools that fit your budget and constraints","AI Adoption Recommendation Report (PDF)","One or two highest-ROI entry points, a recommended tech stack, expected hours saved, and the concrete next step","60-minute call, report delivered within 3 business days",{"key":475,"zh":476,"en":487},"prompt",{"title":477,"tagline":478,"summary":479,"points":480,"deliverable":484,"detail":485,"duration":486},"提示詞工程","讓 AI 穩定產出，而不是碰運氣","針對你的實際任務設計提示詞與多步驟工作流，並做極限測試，確保換了資料、換了人操作也不會走鐘。",[481,482,483],"客製提示詞：ChatGPT、Claude、Gemini、Midjourney 等主流工具的專屬模板","除錯與優化：修掉幻覺、格式跑掉、時好時壞的問題","工作流建置：把複雜任務拆成多步驟提示詞與可重複的 SOP","提示詞文件或設定檔","附使用說明與範例，並提供 1 對 1 教學，確保你與團隊能自己維護","依任務複雜度報價，通常 3–7 個工作天",{"title":488,"tagline":489,"summary":490,"points":491,"deliverable":497,"detail":498,"duration":499},"Prompt Engineering","Make AI produce reliably, not by luck","Prompt sets and multi-step workflows designed for your actual tasks, stress-tested so they keep working when the data or the operator changes.",[492,493,495],"Custom prompts for ChatGPT, Claude, Gemini, Midjourney and friends",{"Debugging and tuning":494},"kill hallucinations, broken formats and flaky output",{"Workflow design":496},"break complex work into repeatable multi-step SOPs","Prompt library or exportable config","Ships with usage notes and examples, plus a 1:1 walkthrough so your team can maintain it","Quoted by complexity, typically 3–7 business days",{"key":501,"zh":502,"en":513},"poc",{"title":503,"tagline":504,"summary":505,"points":506,"deliverable":510,"detail":511,"duration":512},"極速 PoC","五天，看到能跑的東西","不談架構藍圖，直接做一個能動的雛形。五個工作天內交付線上可操作的智能體，用你真實的資料驗證。",[507,508,509],"Day 1：15 分鐘對焦，鎖定單一痛點與資料盤點","Day 2–4：模型串接、邏輯設計與雛形開發","Day 5：Demo 展示與 AI 擴展建議書","可線上操作的智能體雛形","交付範圍為概念驗證與展示，不含後續維運或大規模伺服器部署；要進階成完整系統會另行報價","5 個工作天",{"title":514,"tagline":515,"summary":516,"points":517,"deliverable":524,"detail":525,"duration":526},"Rapid PoC","Five days to something that runs","No architecture decks — a working prototype built in five business days, validated against your real data.",[518,520,522],{"Day 1":519},"15-minute scoping call, one pain point, data inventory",{"Day 2–4":521},"model integration, logic design, prototype build",{"Day 5":523},"live demo plus an AI expansion recommendation","A runnable online agent prototype","Proof of concept and demo scope only; ongoing operations and large-scale deployment are quoted separately","5 business days",[],"site","XTwARfVAOcrXNiKehsM6V6cdkd2HXy4d5yZVrSWrI3Q",[531,813],{"id":532,"title":533,"author":7,"body":534,"cover":799,"coverAlt":800,"date":801,"description":802,"draft":229,"extension":230,"featured":229,"lang":427,"meta":803,"navigation":231,"path":804,"seo":805,"slug":806,"stem":807,"tags":808,"translationKey":806,"updated":242,"__hash__":812},"blog\u002Fblog\u002Fen\u002Farxiv-2510-27688v1.md","CALM, or why token-by-token generation hit a wall",{"type":9,"value":535,"toc":791},[536,553,557,560,563,577,580,584,591,598,653,659,663,669,675,680,691,694,699,713,717,735,739,760,764,771,774,788],[16,537,538,541,542,545,546],{},[42,539,540],{},"From"," — Tencent WeChat AI × Tsinghua University\n",[42,543,544],{},"Paper"," — ",[547,548,552],"a",{"href":549,"rel":550},"https:\u002F\u002Farxiv.org\u002Fhtml\u002F2510.27688v1",[551],"nofollow","arXiv:2510.27688",[12,554,556],{"id":555},"the-wall","The wall",[16,558,559],{},"Every large language model today predicts one token at a time. Each token costs a full forward pass, so cost grows linearly — and with attention, worse — as sequences get longer.",[16,561,562],{},"Text representation has already moved from characters to subwords (BPE), but the discrete representation itself is running out of room:",[176,564,565,571],{},[179,566,567,570],{},[42,568,569],{},"Vocabulary inflation",": to cover more meaning, vocabularies grew from 32k to 256k. The final layer's compute and memory cost exploded with them.",[179,572,573,576],{},[42,574,575],{},"Low information density",": each discrete token carries roughly 15–18 bits. The model has enormous compute and spends it on the labour-intensive job of predicting one low-information token at a time.",[16,578,579],{},"CALM's premise: stop picking from a vocabulary, and predict a point in continuous space instead.",[12,581,583],{"id":582},"the-idea","The idea",[16,585,586,587,590],{},"An autoencoder compresses ",[42,588,589],{},"K discrete tokens into one high-dimensional continuous vector",", so sequence length drops from T to T\u002FK and the number of generation steps drops by the same factor.",[16,592,593,594,597],{},"It trades more ",[300,595,596],{},"semantic bandwidth"," per step for fewer steps.",[599,600,601,616],"table",{},[602,603,604],"thead",{},[605,606,607,610,613],"tr",{},[608,609],"th",{},[608,611,612],{},"Discrete",[608,614,615],{},"CALM (continuous)",[617,618,619,631,642],"tbody",{},[605,620,621,625,628],{},[622,623,624],"td",{},"Scaling",[622,626,627],{},"vocabulary grows exponentially",[622,629,630],{},"vector dimension grows smoothly",[605,632,633,636,639],{},[622,634,635],{},"Objective",[622,637,638],{},"pick one of hundreds of thousands",[622,640,641],{},"predict coordinates in a continuous space",[605,643,644,647,650],{},[622,645,646],{},"Sequence",[622,648,649],{},"long T",[622,651,652],{},"short T\u002FK",[654,655,656],"blockquote",{},[16,657,658],{},"A useful mental image: conventional generation is searching a warehouse with hundreds of thousands of drawers. CALM draws coordinates.",[12,660,662],{"id":661},"four-pillars","Four pillars",[16,664,665,668],{},[42,666,667],{},"1. A high-fidelity autoencoder."," Compresses K tokens into 128+ dimensions at roughly 75M parameters of overhead, with reconstruction accuracy above 99.9%. Without this, everything downstream is garbage.",[16,670,671,674],{},[42,672,673],{},"2. An energy-based head, no likelihood."," Instead of softmax over a vocabulary, the model regresses the next target vector directly — a single step, not the dozens or hundreds of denoising iterations a diffusion model needs.",[16,676,677],{},[42,678,679],{},"3. Three tricks for robustness in continuous space.",[176,681,682,685,688],{},[179,683,684],{},"Variational regularisation, to smooth folds and cliffs in the latent space",[179,686,687],{},"KL clipping, to stop dimensions collapsing",[179,689,690],{},"Double dropout, for extra noise tolerance",[16,692,693],{},"Together they build a smooth, elastic landscape where a small prediction error does not turn into gibberish.",[16,695,696],{},[42,697,698],{},"4. Evaluation without probabilities.",[176,700,701,707],{},[179,702,703,706],{},[42,704,705],{},"BrierLM",": perplexity does not apply when there is no likelihood. CALM uses a Brier score (accuracy minus collision rate) as its yardstick, which correlates strongly and negatively with cross-entropy loss.",[179,708,709,712],{},[42,710,711],{},"Black-box temperature",": with no probability denominator to tune, batch size N becomes the temperature knob. Small N is cold and deterministic, large N is hot and diverse. With rejection sampling, it behaves much like conventional temperature.",[12,714,716],{"id":715},"the-loop","The loop",[718,719,720,723,726,729,732],"ol",{},[179,721,722],{},"Input: discrete tokens",[179,724,725],{},"Compress: the encoder turns every K tokens into one vector",[179,727,728],{},"Process: the transformer runs attention over a much shorter sequence",[179,730,731],{},"Predict: the head emits the next continuous vector in one step",[179,733,734],{},"Restore: the decoder expands it back into K tokens",[12,736,738],{"id":737},"results","Results",[176,740,741,744,750,757],{},[179,742,743],{},"With K=4: training compute down 44%, inference compute down 34%, generation steps from T to T\u002F4",[179,745,746,749],{},[42,747,748],{},"Larger but cheaper",": 371M parameters (slightly larger than the baseline) with equal or better quality and less total compute",[179,751,752,753,756],{},"A new scaling axis: ",[42,754,755],{},"information density",". As semantic bandwidth grows, CALM reaches a higher Brier score at lower compute — pushing past the old compute–quality frontier",[179,758,759],{},"An unusual training curve: performance climbs sharply after ~200k steps and then overtakes conventional models. Learning continuous structure seems to need a long runway before it pays off",[12,761,763],{"id":762},"my-take","My take",[16,765,766,767,770],{},"The framing is the contribution: ",[42,768,769],{},"the vocabulary was never the point",". Discrete tokens are a compression artifact of text, and once you accept that, predicting a continuous vector is the obvious next move.",[16,772,773],{},"Two things to watch before believing it replaces anything:",[718,775,776,782],{},[179,777,778,781],{},[42,779,780],{},"Reconstruction fidelity is a hard ceiling."," 99.9% sounds great until you multiply it across a long document.",[179,783,784,787],{},[42,785,786],{},"Sampling control moves to a different knob."," Batch-size-as-temperature works, but it means your serving stack has to be redesigned around it.",[16,789,790],{},"For deployment on constrained hardware, a 4× reduction in generation steps is the most interesting number here — that is the kind of win that changes what fits on a device.",{"title":216,"searchDepth":217,"depth":217,"links":792},[793,794,795,796,797,798],{"id":555,"depth":217,"text":556},{"id":582,"depth":217,"text":583},{"id":661,"depth":217,"text":662},{"id":715,"depth":217,"text":716},{"id":737,"depth":217,"text":738},{"id":762,"depth":217,"text":763},"\u002Fimages\u002Fblog\u002F2510.27688v1.webp","Continuous autoregressive language models (CALM)","2026-08-06","CALM compresses K discrete tokens into one continuous vector, cutting generation steps to 1\u002FK. Notes on the autoencoder, the likelihood-free head, and what it actually buys you.",{},"\u002Fblog\u002Fen\u002Farxiv-2510-27688v1",{"title":533,"description":802},"arxiv-2510-27688v1","blog\u002Fen\u002Farxiv-2510-27688v1",[809,810,811],"paper","llm","efficiency","6E96cFhns3BbhpqUak9RrqhAZpia6m0Go_yTYpgqN2g",{"id":814,"title":815,"author":7,"body":816,"cover":1144,"coverAlt":1145,"date":1146,"description":1147,"draft":229,"extension":230,"featured":229,"lang":427,"meta":1148,"navigation":231,"path":1149,"seo":1150,"slug":1151,"stem":1152,"tags":1153,"translationKey":1151,"updated":242,"__hash__":1156},"blog\u002Fblog\u002Fen\u002Farxiv-2506-13777v1.md","Physics-informed AI for complex urban systems",{"type":9,"value":817,"toc":1137},[818,831,835,838,841,848,852,966,973,977,1071,1074,1085,1089,1092,1112,1115,1119,1122,1128,1134],[16,819,820,545,822,827,830],{},[42,821,544],{},[547,823,826],{"href":824,"rel":825},"https:\u002F\u002Farxiv.org\u002Fhtml\u002F2506.13777v1",[551],"arXiv:2506.13777",[42,828,829],{},"Title"," — A Survey of Physics-Informed AI for Complex Urban Systems",[12,832,834],{"id":833},"why-this-survey-exists","Why this survey exists",[16,836,837],{},"Cities are the awkward middle ground of modelling. Pure physics cannot capture human behaviour; pure data-driven models cannot explain themselves, and they break exactly when conditions change — which is when a city most needs a prediction.",[16,839,840],{},"Physics-informed AI (PIAI) is the attempt to have both. Its selling point is a model that respects conservation laws and heat transfer while still learning from data.",[16,842,843,844,847],{},"The survey's contribution is organisational: ",[42,845,846],{},"a taxonomy of three paradigms and seven methods",", a review of applications across eight urban subsystems, and an honest list of what is still missing.",[12,849,851],{"id":850},"the-taxonomy","The taxonomy",[599,853,854,870],{},[602,855,856],{},[605,857,858,861,864,867],{},[608,859,860],{},"Paradigm",[608,862,863],{},"Method",[608,865,866],{},"Core idea",[608,868,869],{},"Typical techniques",[617,871,872,886,899,912,926,939,953],{},[605,873,874,877,880,883],{},[622,875,876],{},"Physics-integrated AI",[622,878,879],{},"1. PINN with loss function",[622,881,882],{},"physics constraints as a loss term",[622,884,885],{},"PINN, CPINN, PCNN",[605,887,888,890,893,896],{},[622,889],{},[622,891,892],{},"2. PINN with weight initialisation",[622,894,895],{},"initialise weights from physical knowledge",[622,897,898],{},"transfer learning, self-supervised pretraining",[605,900,901,903,906,909],{},[622,902],{},[622,904,905],{},"3. PINN with architecture design",[622,907,908],{},"bake physical structure into the network",[622,910,911],{},"symmetry encoding, Hamiltonian structure",[605,913,914,917,920,923],{},[622,915,916],{},"Hybrid",[622,918,919],{},"4. Sequential ensemble",[622,921,922],{},"physics and AI cooperate in stages",[622,924,925],{},"residual modelling, pipeline architectures",[605,927,928,930,933,936],{},[622,929],{},[622,931,932],{},"5. Parallel ensemble",[622,934,935],{},"run both, fuse the outputs",[622,937,938],{},"dynamic weighting, model combination",[605,940,941,944,947,950],{},[622,942,943],{},"AI-integrated physics",[622,945,946],{},"6. AI-discovered physics",[622,948,949],{},"let AI find the governing law",[622,951,952],{},"SINDy, symbolic regression",[605,954,955,957,960,963],{},[622,956],{},[622,958,959],{},"7. Neural physics model",[622,961,962],{},"replace the hard-to-model part with a network",[622,964,965],{},"neural closures for turbulence",[16,967,968,969,972],{},"The useful distinction is ",[42,970,971],{},"where physics enters",": as a penalty, as an initialisation, as architecture, as a co-model, or not at all (physics emerges from data).",[12,974,976],{"id":975},"where-it-is-used","Where it is used",[599,978,979,992],{},[602,980,981],{},[605,982,983,986,989],{},[608,984,985],{},"Subsystem",[608,987,988],{},"Physical law \u002F model",[608,990,991],{},"Example application",[617,993,994,1005,1016,1027,1038,1049,1060],{},[605,995,996,999,1002],{},[622,997,998],{},"Energy",[622,1000,1001],{},"power flow equations, pressure balance",[622,1003,1004],{},"grid optimisation, renewable integration",[605,1006,1007,1010,1013],{},[622,1008,1009],{},"Environment",[622,1011,1012],{},"Gaussian plume, SWMM hydrology",[622,1014,1015],{},"air quality, flood simulation",[605,1017,1018,1021,1024],{},[622,1019,1020],{},"Economy",[622,1022,1023],{},"network flow, Huff choice model",[622,1025,1026],{},"supply chain, demand forecasting",[605,1028,1029,1032,1035],{},[622,1030,1031],{},"Transport",[622,1033,1034],{},"LWR traffic flow, car-following",[622,1036,1037],{},"state estimation, signal control",[605,1039,1040,1043,1046],{},[622,1041,1042],{},"Information",[622,1044,1045],{},"Shannon capacity, ray tracing",[622,1047,1048],{},"information diffusion in social networks",[605,1050,1051,1054,1057],{},[622,1052,1053],{},"Public services",[622,1055,1056],{},"SIR epidemic, social force",[622,1058,1059],{},"outbreak forecasting, crowd evacuation",[605,1061,1062,1065,1068],{},[622,1063,1064],{},"Emergency",[622,1066,1067],{},"social force, spatio-temporal decay",[622,1069,1070],{},"disaster dynamics, post-disaster mobility",[16,1072,1073],{},"Highlights from the review: PINNs reconstructing wind farms and predicting solar output; Kirchhoff-constrained networks accelerating optimal power flow; diffusion–advection equations fused with neural networks for pollutant forecasting; LWR\u002FARZ models combined with deep learning to estimate traffic state from sparse sensors; neural ODEs modelling opinion dynamics; epidemiological neural networks fusing multi-source data for outbreak prediction.",[16,1075,1076,1077,1080,1081,1084],{},"The last section is the most interesting: ",[42,1078,1079],{},"cross-domain coupling"," — graph neural networks linking flood dynamics with transport models to simulate a city under extreme weather — and ",[42,1082,1083],{},"multi-scale integration",", from building-level thermal models up to regional climate.",[12,1086,1088],{"id":1087},"the-open-problems","The open problems",[16,1090,1091],{},"The survey is refreshingly blunt about what is unsolved:",[176,1093,1094,1100,1106],{},[179,1095,1096,1099],{},[42,1097,1098],{},"Weak theory"," — convergence and generalisation of PINNs lack rigorous proofs",[179,1101,1102,1105],{},[42,1103,1104],{},"Compute"," — training cost is high, which rules out real-time deployment",[179,1107,1108,1111],{},[42,1109,1110],{},"Knowledge representation"," — causal and rule-based (non-numeric) knowledge is not integrated",[16,1113,1114],{},"Proposed directions include multi-resolution architectures, active and transfer learning, combining PIAI with LLMs, and building urban digital twins or general world models.",[12,1116,1118],{"id":1117},"what-i-take-from-it","What I take from it",[16,1120,1121],{},"Two observations in the paper are worth more than the taxonomy itself:",[16,1123,1124,1127],{},[42,1125,1126],{},"Cities are the natural testbed for PIAI"," precisely because they combine physical regularity with human unpredictability. Both extremes exist in the same system, so a method that only works for one of them will fail visibly.",[16,1129,1130,1133],{},[42,1131,1132],{},"Data-rich tasks drift toward AI-led methods; decision-support tasks need physical interpretability."," That is a practical rule for choosing a method — not based on what is fashionable, but on who has to defend the output.",[16,1135,1136],{},"For anyone building city-scale models, the \"how do I choose\" section is the one to read first: physical knowledge availability, data density, and whether the deliverable is a number or a decision.",{"title":216,"searchDepth":217,"depth":217,"links":1138},[1139,1140,1141,1142,1143],{"id":833,"depth":217,"text":834},{"id":850,"depth":217,"text":851},{"id":975,"depth":217,"text":976},{"id":1087,"depth":217,"text":1088},{"id":1117,"depth":217,"text":1118},"\u002Fimages\u002Fblog\u002F2506.13777.1.webp","A survey of physics-informed AI for complex urban systems","2025-09-16","How do you put physics into city-scale models? This survey proposes a taxonomy of three paradigms and seven methods, reviews eight urban subsystems, and names what is still missing.",{},"\u002Fblog\u002Fen\u002Farxiv-2506-13777v1",{"title":815,"description":1147},"arxiv-2506-13777v1","blog\u002Fen\u002Farxiv-2506-13777v1",[809,1154,1155],"urban","survey","1gwEeKIu-vP0ABuoHpyY9xShz03tEALrPNkeNBiXGXc",1792775653438]