[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-opsd-user-feedback-training-loop-zh":3,"article-related-opsd-user-feedback-training-loop-zh":30,"series-research-4a0bbfe8-be40-4add-95c8-7ed1d38a641f":73},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":22,"views":26,"created_at":27,"published_at":28,"topic_cluster_id":29},"4a0bbfe8-be40-4add-95c8-7ed1d38a641f","opsd-user-feedback-training-loop-zh","OPSD 讓你把點擊變訓練","\u003Cp data-speakable=\"summary\">OPSD 把隱性用戶回饋變成持續校正的訓練閉環。\u003C\u002Fp>\u003Cp>我最近一直盯著 post-training 的流程看，越看越火大。很多團隊嘴上說在做回饋學習，實際上收的卻是很假的訊號：按讚、按倒讚、幾個人工標籤，再配一個 reward model，然後就假裝自己掌握了用戶真正要什麼。問題是，真實產品裡的訊號根本沒那麼乾淨。用戶會重試、會改寫、會只接受一半、會繼續追問，因為\u003Ca href=\"\u002Fnews\u002Fdatabricks-model-serving-supported-models-regions-zh\">模型\u003C\u002Fa>差一點就對了，但就是差那一下。那一下，才是我最想抓的地方。\u003C\u002Fp>\u003Cp>把我拉進這個主題的，是一篇知乎文章：\u003Ca href=\"https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F2052148485491790036\">On-Policy Self-Distillation（OPSD）\u003C\u002Fa>。文裡把 OPSD 放在 OPD 的延伸脈絡裡，還提到 \u003Ca href=\"https:\u002F\u002Fwww.deepseek.com\u002F\">DeepSeek\u003C\u002Fa> 的工業實作方向，以及 \u003Ca href=\"\u002Ftag\u002Fcursor\">Cursor\u003C\u002Fa> 的訓練思路。老實講，我不是把它當成可以逐行驗證的論文來看，我是把它當成一個很實際的提醒：如果模型能從自己在場的輸出，加上用戶留下的隱性回饋去學，那我是不是就不用死等完美標註了。\u003C\u002Fp>\u003Ch2>別再把回饋當實驗室樣本\u003C\u002Fh2>\u003Cblockquote>最近 DeepSeek V4 的多專家整合方案采用了 OPD（On-Policy Distillation），在工业级项目上证明了 OPD 在后训练中占据一席之地。而它的进阶版本 OPSD（On-Policy Self-Distillation）也在 Cursor 的模型训练上大规模…\u003C\u002Fblockquote>\u003Cp>翻譯一下就是：模型不是只從一包靜態資料學，而是從自己剛剛在真實情境裡做出的行為學。OPD 已經比傳統離線蒸餾更貼近產品；OPSD 再往前一步，直接把 on-policy 行為變成教學訊號。這很重要，因為模型不再是在空房間裡被評分，而是在它未來真的要工作的分佈裡被修正。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782335103935-0efp.png\" alt=\"OPSD 讓你把點擊變訓練\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>我自己做產品時，最常撞到的就是這種落差。\u003Ca href=\"\u002Ftag\u002Fbenchmark\">benchmark\u003C\u002Fa> 看起來漂亮，因為 prompt 很乾淨；但用戶根本不會照 benchmark 講話。人會插話、會改需求、會在第一版答案後面補一句「不是，我要的是另一種寫法」。如果我只拿精修過的 gold answer 來訓練，我會錯過那條很髒、但很有價值的修正軌跡。OPSD 的意思很直白：把這條軌跡留下來，拿來學。\u003C\u002Fp>\u003Cp>實操上怎麼做？我會先把 live output、當下 prompt state、以及用戶下一步行為一起記下來。不要只存最後有沒有按接受。要存修改、重試、放棄、追問。這些都是 breadcrumbs。你如果在做內部助手，最簡單的做法就是記錄每一輪對話，還有用戶在哪一輪停止修正模型；你如果在做 coding \u003Ca href=\"\u002Ftag\u002Fagent\">agent\u003C\u002Fa>，就把第一版建議和最後被接受的 diff 存下來。那個 diff 往往比人工寫的 label 更值錢。\u003C\u002Fp>\u003Cul>\u003Cli>存 on-policy response，不要只存 prompt。\u003C\u002Fli>\u003Cli>存用戶在上下文中的反應，不要把評分切成孤立事件。\u003C\u002Fli>\u003Cli>能用 correction trace，就少用二元好壞。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>隱性回饋不是沉默，是行為\u003C\u002Fh2>\u003Cp>這篇文章真正賭的點，是隱性回饋其實可以比顯性分數更有用，只要你會讀。用戶把你的答案重寫一遍，這就是訊號；用戶只留下一段 code、把說明刪掉，這也是訊號；用戶換個說法又問一次，基本上就是把 failure cluster 直接丟給你。這些都算回饋，只是它們沒被包裝成漂亮的 label。\u003C\u002Fp>\u003Cp>我喜歡這個角度，因為顯性標籤太貴，也太容易偏。人會在「差不多有用」的時候按 good，也會在答案內容\u003Ca href=\"\u002Fnews\u002Fopenai-custom-chip-right-move-against-nvidia-zh\">正確\u003C\u002Fa>但語氣煩的時候按 bad。我看過不少團隊被這種標籤帶歪，最後優化的是客氣話，不是實際效用。隱性回饋雖然醜，但它比較接近產品價值。\u003C\u002Fp>\u003Cp>但坑也在這裡：不能把所有行為都當成同一種訊號。重試可能代表答案失敗，也可能只是用戶想換語氣；複製 code 片段可能代表成功，也可能只是拿去檢查。真正要做的是先定義一小組可解釋的行為，再把它們映射成訓練訊號。這一步很多人省略，然後又怪模型學到垃圾。\u003C\u002Fp>\u003Cp>實操上，我會先定四個桶：accepted、edited、retried、abandoned。若你的產品 telemetry 比較完整，再加 copied、ran、executed successfully、user reverted。接著給不同事件不同權重。accepted unchanged 不等於 accepted after edit；edited 也不等於 rejected。模型要看得出差別。\u003C\u002Fp>\u003Cul>\u003Cli>Accepted unchanged：強正向訊號。\u003C\u002Fli>\u003Cli>Accepted after edit：部分正向，但要保留修正目標。\u003C\u002Fli>\u003Cli>Retry \u002F reformulation：對前一版是負向訊號。\u003C\u002Fli>\u003Cli>Abandonment：弱負向，但量大時很有用。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>On-policy 重要，因為 off-policy 常常在騙你\u003C\u002Fh2>\u003Cp>on-policy 這詞聽起來很學術，直到你真的看過模型在 production 裡怎麼死。off-policy 訓練用的是別處來的資料，問題就在這裡：模型一旦變了，舊資料就不再貼合它現在的行為。你得到的是過期 supervision，學到的東西跟用戶眼前看到的東西慢慢脫節。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782335101363-4qg2.png\" alt=\"OPSD 讓你把點擊變訓練\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>on-policy 的做法，就是盡量把這個 gap 拉近。模型先產生答案，用戶再反應，而這一組互動本身就變成下一輪教學樣本。這看起來只是小改，但它其實改變了整個閉環。模型不是從昨天的資料學，而是從它今天剛剛造成的結果學。這比假裝舊資料還代表現在，老實太多了。\u003C\u002Fp>\u003Cp>我自己碰過的問題很像「神祕退步」。模型在某一類 prompt 上進步了，另一類卻變差，因為訓練集根本沒看過新的互動方式。on-policy 資料可以比較快抓到這種偏移。它不是魔法，只是讓訓練分佈更接近 live 分佈，而痛點本來就發生在 live 裡。\u003C\u002Fp>\u003Cp>實操上，我會讓 post-training loop 只吃目前 checkpoint 產生的新輸出，不要永遠回收老答案。做 rolling window，優先抽最近的互動。若你在做 preference training，就把 on-policy response 和用戶修正，或同一 session 裡後來生成的更好版本配對起來。\u003C\u002Fp>\u003Cp>我自己有個很土但很好用的規則：模型版本一變，訓練混合也要跟著變。你如果還拿舊版本的行為去教新版本，那其實是在教昨天的習慣，然後把它叫做 improvement。\u003C\u002Fp>\u003Ch2>Self-distillation 其實就是模型學自己的更好草稿\u003C\u002Fh2>\u003Cp>self-distillation 這件事，讓它看起來比較像寫作流程，而不是一般訓練管線。模型先產出草稿，再根據用戶的反應和同一份上下文，產出更好的版本。這裡的「self」很重要，因為模型不是每次都靠外部 oracle 重置，而是沿著自己的軌跡變好。\u003C\u002Fp>\u003Cp>我在 code generation 裡看過這種模式很有效。第一版通常結構對，但局部很粗；第二輪如果知道用戶卡在哪裡，就能把弱點補掉，而且不必整個重寫。這就是 self-distillation 的吸引力：保留骨架，修掉關節。\u003C\u002Fp>\u003Cp>也就是說，你可以訓練模型去模仿「在相同操作條件下、自己更好的版本」。用戶回饋告訴你草稿失敗在哪，distillation 步驟再把它轉成 target。這個 target 可以是另一個模型的輸出、修訂後的 completion，或是修正過的片段。重點不是形式，重點是 correction 要留在原本的 on-policy context 裡。\u003C\u002Fp>\u003Cp>實操上，我會先生成一個 candidate answer，觀察用戶反應後，再生成 revised answer。訓練時拿 revised answer 當 teacher target，對回原始 prompt state。你如果做 coding assistant，target 可以是被接受的 diff，不一定要整份重寫；你如果做 chat assistant，target 可以是修好用戶抱怨點的那段段落。\u003C\u002Fp>\u003Cp>這裡我會特別小心。self-distillation 如果修正步驟太弱，很容易把自己的錯誤越學越大。所以我會保留一條人審抽樣線，不是每筆都看，只抽一部分 correction，至少先抓出模型是不是在教自己胡扯。\u003C\u002Fp>\u003Ch2>真正重要的不是 label，是閉環\u003C\u002Fh2>\u003Cp>很多人一看到訓練就只盯 objective，我懂，loss function 很整齊，pipeline 也很整齊。但這裡真正有價值的不是公式，而是閉環：觀察、反應、修正、再訓練、再重來。OPSD 不是一次性的技巧，它是把產品本身變成模型老師的一種方式。\u003C\u002Fp>\u003Cp>知乎那篇文章把它放進工業實作脈絡，我覺得這才是重點。真實系統沒有那麼多完美標註週期，你面對的是活的用戶、一直變的行為、還有一個不能一直卡住不動的模型。用隱性回饋做閉環，至少能讓你不用每次模型歪掉就停工一週去做標註。\u003C\u002Fp>\u003Cp>我自己的經驗是，最好的 loop 都很無聊。它不需要神奇基礎設施，只需要紀律：把 log 記完整、feedback schema 定清楚、retraining 的觸發條件不要被雜訊騙。若你說不清楚某個用戶行為代表什麼，就先別拿去訓練；若你說得清楚，就先小規模上，看看修正後的下一輪互動有沒有真的變好。\u003C\u002Fp>\u003Cp>實操上，我會用 signal volume 來決定 retrain，不看日曆 hype。比如某個 task category 累積到足夠多的 accepted edits 或 repeated retries 才重訓。再留一組最近的 live interactions 當 holdout。若新 checkpoint 讓 correction rate 變好，但 completion quality 變差，那就是你過度擬合回饋了。這種失敗，越早抓越省錢。\u003C\u002Fp>\u003Cul>\u003Cli>用 rolling window 看最近互動。\u003C\u002Fli>\u003Cli>只對可解釋的行為訓練。\u003C\u002Fli>\u003Cli>看 post-correction success，不要只看 offline loss。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>工業落地只剩髒限制，沒有漂亮理論\u003C\u002Fh2>\u003Cp>我之所以認真看這類方法，不是因為縮寫好聽，而是因為它背後真的有工業壓力。像 \u003Ca href=\"https:\u002F\u002Fwww.deepseek.com\u002F\">DeepSeek\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fwww.cursor.com\u002F\">Cursor\u003C\u002Fa> 這種系統，面對的是 latency、cost、quality 三個一起壓上來的現實。訓練方法如果撐不住這些髒限制，講再漂亮都沒用。OPSD 吸引人的地方，就是它沒有假裝世界是 benchmark，而是直接承認世界本來就很亂。\u003C\u002Fp>\u003Cp>落地時，你一定會碰到一堆討厭問題：什麼叫 user correction？怎麼避開誤觸發的行為？怎麼把私密資料擋在訓練外？怎麼避免模型只朝著最大聲的用戶過度修正？這些問題很煩，但它們才是工作本體。\u003C\u002Fp>\u003Cp>實操上，我會先加 guardrails 再談擴大。先過濾敏感內容、去重重複 session、按 task type 分流 feedback。不要把 code completion 的訊號和客服聊天的訊號亂混，除非你真的知道自己在幹嘛。不同任務產生的隱性回饋本來就不同，一個萬用 trainer 常常只會把它們搓成一團爛泥。\u003C\u002Fp>\u003Cp>如果要我從零做，我會先選一條窄 workflow、一套 feedback taxonomy、一個 retraining trigger。這個 loop 先真的改善一個指標，再往外擴。不是反過來。\u003C\u002Fp>\u003Ch2>可抄的模板\u003C\u002Fh2>\u003Cpre>\u003Ccode># OPSD feedback loop template（可直接改成你自己的 pipeline）\n\n## 1. Capture on-policy interactions\n每次模型回覆都記：\n- prompt state\n- model output\n- model version\n- timestamp\n- user action after output\n- follow-up prompt or edit\n- task category\n\n## 2. Normalize implicit feedback\n把產品行為映射成訓練訊號：\n- accepted unchanged -> positive\n- accepted after edit -> positive with correction target\n- retry \u002F reformulation -> negative on prior output\n- abandonment -> weak negative\n- copied \u002F executed \u002F saved -> task-specific positive\n\n## 3. Build correction pairs\n每個 session 產出：\n- input: prompt state + model draft\n- target: user-edited answer, accepted diff, or revised completion\n- weight: based on feedback strength\n\n## 4. Train on current behavior\n只吃目前 checkpoint 產生的新輸出。\n用 rolling window，不要一直回收老資料。\n\n## 5. Distill the better draft\n先根據用戶反應生成 revised answer。\n把 revised version 當 teacher target，對回原始 draft。\n\n## 6. Filter and audit\n訓練前先移除：\n- private data\n- ambiguous feedback\n- duplicate sessions\n- low-confidence corrections\n\n抽樣人工看一小部分，別全自動到失控。\n\n## 7. Measure what matters\n追這些指標：\n- correction rate\n- retry rate\n- acceptance after edit\n- task completion success\n- regression on recent live prompts\n\n## 8. Retrain and redeploy\n當某個 task slice 累積到足夠新訊號再重訓。\n只有在 live correction metrics 真的變好、baseline quality 沒掉時才上線。\n\n## Minimal data schema\n{\n  \"model_version\": \"vX\",\n  \"task\": \"code_assist\",\n  \"prompt\": \"...\",\n  \"draft\": \"...\",\n  \"user_action\": \"edited\",\n  \"user_edit\": \"...\",\n  \"follow_up\": \"...\",\n  \"signal_weight\": 0.8,\n  \"created_at\": \"2026-06-24T00:00:00Z\"\n}\n\n## Minimal training pair\ninput: prompt + draft + context\ntarget: accepted edit or revised completion\nweight: signal_weight\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>我喜歡這個模板，因為它夠無聊，\u003Ca href=\"\u002Fnews\u002Fnvidia-ceo-ai-lift-software-stocks-zh\">反而能\u003C\u002Fa>上線。它不靠神秘標註，也不要求你有超人類的資料團隊。它只是逼你正視用戶真的怎麼走過你的系統。以我對這篇知乎文章的理解，OPSD 的核心不是名詞，而是把模型自己的 live 行為，加上用戶留下的隱性修正，變成下一輪訓練的原料。\u003C\u002Fp>\u003Cp>來源致謝：原始想法主要來自這篇 \u003Ca href=\"https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F2052148485491790036\">知乎文章\u003C\u002Fa>，以及文中提到的 \u003Ca href=\"https:\u002F\u002Fwww.deepseek.com\u002F\">DeepSeek\u003C\u002Fa> 與 \u003Ca href=\"https:\u002F\u002Fwww.cursor.com\u002F\">Cursor\u003C\u002Fa> 脈絡；我這篇的拆解、例子和模板是我自己的整理，方便\u003Ca href=\"\u002Ftag\u002F台灣開發者\">台灣開發者\u003C\u002Fa>直接拿去改成自己的 loop。\u003C\u002Fp>","我把 OPSD 拆成一個可直接抄的閉環：怎麼把隱性用戶回饋變成校正資料，再持續訓練模型。","zhuanlan.zhihu.com","https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F2052148485491790036",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782335103935-0efp.png","research","zh","06b86f04-a846-4cd5-95f0-1a5d3925c846",[17,18,19,20,21],"OPSD","on-policy training","self-distillation","implicit feedback","LLM post-training",[23,24,25],"把用戶的改寫、重試、放棄當成訓練訊號，不要只看按讚按倒讚。","用 on-policy 資料維持訓練分佈和真實產品分佈一致，減少過期 supervision。","先做可解釋的 feedback taxonomy 和 rolling window，再談擴大訓練。",0,"2026-06-24T21:04:40.411616+00:00","2026-06-24T21:04:40.402+00:00","0c35a120-52fc-41fc-afa3-d404eb934158",{"tags":31,"relatedLang":32,"relatedPosts":36},[],{"id":15,"slug":33,"title":34,"language":35},"opsd-user-feedback-training-loop-en","OPSD lets you turn user clicks into training","en",[37,43,49,55,61,67],{"id":38,"slug":39,"title":40,"cover_image":41,"image_url":41,"created_at":42,"category":13},"a2242009-98d7-409c-9f22-d825a81fef2e","ultraquant-4bit-kv-caching-agents-zh","UltraQuant：4-bit KV 快取加速長代理","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782331375909-uhyy.png","2026-06-24T20:02:32.549463+00:00",{"id":44,"slug":45,"title":46,"cover_image":47,"image_url":47,"created_at":48,"category":13},"261f4fc9-e9c8-413c-b222-a31008ec2bcf","flux3d-3d-gaussian-generation-diffusion-zh","FLUX3D 讓 3DGS 保住細節","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782284582760-3ja7.png","2026-06-24T07:02:37.306254+00:00",{"id":50,"slug":51,"title":52,"cover_image":53,"image_url":53,"created_at":54,"category":13},"b3ade74e-f68c-4e65-8dc6-afa9c98ebb75","stochastic-subgradient-last-iterate-bounds-zh","隨機次梯度最後一輪界更緊了","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782283671565-zxc9.png","2026-06-24T06:47:29.111822+00:00",{"id":56,"slug":57,"title":58,"cover_image":59,"image_url":59,"created_at":60,"category":13},"5f0498a5-626f-4217-8c67-3b3404c7c172","insight-vla-self-guided-skill-acquisition-zh","InSight 讓 VLA 自學新技能","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782282781514-vo4g.png","2026-06-24T06:32:30.787554+00:00",{"id":62,"slug":63,"title":64,"cover_image":65,"image_url":65,"created_at":66,"category":13},"29ea0e09-dbd2-406d-9d74-fd851c59a4f7","anthropic-right-alarm-recursive-self-improvement-zh","Anthropic 警告遞迴自我改進是對的，但真正的問題是 AI 控制已經失速","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782263867507-ive3.png","2026-06-24T01:17:20.490657+00:00",{"id":68,"slug":69,"title":70,"cover_image":71,"image_url":71,"created_at":72,"category":13},"e6906894-cfe6-48a2-84a2-cd34e6a95186","openai-bug-hunt-chrome-safari-firefox-zh","OpenAI 一週挖出三大瀏覽器漏洞","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782258476786-r07m.png","2026-06-23T23:47:30.624426+00:00",[74,79,84,89,94,99,104,109,114,119],{"id":75,"slug":76,"title":77,"created_at":78},"f18dbadb-8c59-4723-84a4-6ad22746c77a","deepmind-bets-on-continuous-learning-ai-2026-zh","DeepMind 押注 2026 連續學習 AI","2026-03-26T08:16:02.367355+00:00",{"id":80,"slug":81,"title":82,"created_at":83},"f4a106cb-02a6-4508-8f39-9720a0a93cee","ml-papers-of-the-week-github-research-desk-zh","每週 ML 論文清單，為何紅到 GitHub","2026-03-27T01:11:39.284175+00:00",{"id":85,"slug":86,"title":87,"created_at":88},"c4f807ca-4e5f-47f1-a48c-961cf3fc44dc","ai-ml-conferences-to-watch-in-2026-zh","2026 AI 研討會投稿時程整理","2026-03-27T01:51:53.874432+00:00",{"id":90,"slug":91,"title":92,"created_at":93},"cf046742-efb2-4753-aef9-caed5da5e32e","adaptive-block-scaled-data-types-zh","IF4：神經網路量化的聰明選擇","2026-03-31T06:00:36.990273+00:00",{"id":95,"slug":96,"title":97,"created_at":98},"53a0dc54-0371-4e40-8d5e-74e94a73840c","geometry-aware-similarity-metrics-for-neural-representations-zh","超越距離測量：用微分幾何重新理解神經網路","2026-03-31T06:01:01.241968+00:00",{"id":100,"slug":101,"title":102,"created_at":103},"fee7d472-a775-4b1d-bbc2-1e8bca1bbf8b","on-the-fly-repulsion-in-the-contextual-space-for-rich-divers-zh","讓AI繪圖更有創意：用排斥力提升生成多樣性","2026-03-31T06:01:25.439673+00:00",{"id":105,"slug":106,"title":107,"created_at":108},"a9901203-d69b-447b-8854-15d14eab32b4","vision-aided-beam-prediction-cnn-eca-zh","影像輔助波束預測升級 CNN","2026-04-01T10:00:25.8073+00:00",{"id":110,"slug":111,"title":112,"created_at":113},"b55e7dd4-0a24-4b3d-804d-b0309a03f498","triple-band-fss-mimo-antenna-sub-6-ghz-zh","三頻 FSS MIMO 天線瞄準 sub-6 GHz","2026-04-01T13:18:36.857305+00:00",{"id":115,"slug":116,"title":117,"created_at":118},"f68290bd-e7f3-4b30-ba22-dcd4e0130a66","openclaw-1299-repos-eight-weeks-analysis-zh","OpenClaw 1299 個 Repo 的資料解讀","2026-04-02T05:03:45.208411+00:00",{"id":120,"slug":121,"title":122,"created_at":123},"ed9f80eb-eb02-4d35-8ad4-0ddf428751dd","beam-coherence-aware-combining-mmwave-mimo-zh","毫米波 MIMO 的雙階合併法","2026-04-02T05:27:26.897188+00:00"]