[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-databricks-model-serving-llm-deploy-guide-zh":3,"article-related-databricks-model-serving-llm-deploy-guide-zh":30,"series-tools-d3ec03a8-a805-4a21-9826-72a74a72b625":83},{"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},"d3ec03a8-a805-4a21-9826-72a74a72b625","databricks-model-serving-llm-deploy-guide-zh","Databricks Model Serving 讓 LLM 部署變簡單","\u003Cp data-speakable=\"summary\">我拆 Databricks Model Serving 的部署思路，順手給你一份可直接套用的 \u003Ca href=\"\u002Ftag\u002Fllm\">LLM\u003C\u002Fa> endpoint 模板。\u003C\u002Fp>\u003Cp>我用 Databricks Model Serving 一陣子了。模型能訓練、能註冊、能點 endpoint，聽起來一切都很順。但我一直覺得哪裡卡卡的：你以為自己在做部署，實際上是在把一堆 serving 零件拼成一個勉強能活的系統。版本對不上、wrapper 越寫越厚、autoscaling 行為像在跟你鬧脾氣，最後大家還是回到那句老話：到底是模型難，還是上線難？\u003C\u002Fp>\u003Cp>我後來去看了 Flexera 的文章 \u003Ca href=\"https:\u002F\u002Fwww.flexera.com\u002Fblog\u002Ffinops\u002Fdatabricks-model-serving\u002F\">How to: Deploy LLMs with Databricks Model Serving (2026)\u003C\u002Fa>，才比較確定我在意的點不是功能有沒有，而是它到底有沒有把 serving 變成一個可以管理的流程。Databricks 官方現在把這套叫 \u003Ca href=\"https:\u002F\u002Fdocs.databricks.com\u002Fen\u002Fmachine-learning\u002Fmodel-serving\u002Findex.html\">Mosaic AI Model Serving\u003C\u002Fa>，名字很長，但\u003Ca href=\"\u002Fnews\u002F7-build-2026-announcements-for-microsoft-watchers-zh\">重點\u003C\u002Fa>很單純：它想把部署這件事收斂到平台裡，不要每個團隊自己發明一套。\u003C\u002Fp>\u003Cp>我就是想拆這個方法論。不是看它會不會說漂亮話，而是看它到底把哪些麻煩真的吃掉了，哪些只是換個地方繼續痛。\u003C\u002Fp>\u003Cp>這篇的觸發點是 Flexera 那篇整理，原始內容有提到 Databricks Model Serving 的價格、限制、CPU\u002F\u003Ca href=\"\u002Ftag\u002Fgpu\">GPU\u003C\u002Fa> 差異和實際部署流程，這些都是我覺得最值得拆的地方。\u003C\u002Fp>\u003Ch2>先別把 serving 當 notebook 的延伸\u003C\u002Fh2>\u003Cblockquote>“Deploying a trained ML model is a different problem from training one.”\u003C\u002Fblockquote>\u003Cp>翻譯一下就是：訓練和上線根本不是同一種工作。訓練可以慢、可以重跑、可以 batch、可以容忍一堆 retry；serving 不行。serving 要的是穩、快、可觀測，而且不能每次流量一來就把整個團隊叫起來救火。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780525998117-7ur8.png\" alt=\"Databricks Model Serving 讓 LLM 部署變簡單\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>我之前做推薦系統時就踩過這個坑。訓練流程很乾淨，Notebook 跑完、模型 log 好、指標也漂亮，大家都很開心。結果一進 serving，事情開始變形：一段 Python wrapper、一個容器設定、幾個手工 patch，再加上沒人想碰的 autoscaling 參數。模型本身沒問題，真正出事的是 \u003Ca href=\"\u002Ftag\u002Finference\">inference\u003C\u002Fa> stack。\u003C\u002Fp>\u003Cp>這也是 Databricks Model Serving 值得看的地方。它不是叫你把模型丟上去就算了，而是想把 serving 變成平台能力，至少不用每次都從零搭一個 endpoint 周邊系統。Databricks 文件本身也把它定位成 managed 的模型部署方式，這跟自己手刻 \u003Ca href=\"\u002Ftag\u002Fapi\">API\u003C\u002Fa> server 的思路差很多。你如果還在把 serving 當成 notebook 的附屬品，最後通常就是一堆臨時補丁。\u003C\u002Fp>\u003Cp>實操上，我會先把問題改寫成三件事：這個 endpoint 要怎麼版本化、怎麼 rollback、怎麼監控。只要這三件事沒答案，其他 UI 再漂亮都只是 demo。\u003C\u002Fp>\u003Ch2>真正省事的不是按 Deploy，是 registry 當單一真相來源\u003C\u002Fh2>\u003Cp>我看 Flexera 那篇最有感的一點，不是它在講按鈕，而是它一直在暗示：真正的捷徑是 MLflow Model Registry，不是 serving UI 本身。這點我很同意。因為大家常常誤會部署很難，實際上最煩的是版本管理。\u003C\u002Fp>\u003Cp>你要知道哪個 artifact 是 live 的、哪個是 staging 的、哪個 retrain 後已經過期、哪個 endpoint 還在吃舊模型。這些事情如果靠手動對檔名、對路徑、對 Slack 訊息，遲早會炸。Registry 的價值，就是把模型生命週期變成可追蹤的狀態流，而不是一堆散落的檔案。\u003C\u002Fp>\u003Cp>Databricks 的 serving 跟 \u003Ca href=\"https:\u002F\u002Fdocs.databricks.com\u002Fen\u002Fmachine-learning\u002Fmanage-model-lifecycle\u002Findex.html\">MLflow Model Registry\u003C\u002Fa> 接在一起，優點就是 promotion 變成一個有邏輯的動作，不是重複上傳。你把模型先註冊，標 staging，再測試，最後切 production，整條路徑清楚很多。\u003C\u002Fp>\u003Cul>\u003Cli>先 log 模型，再註冊版本\u003C\u002Fli>\u003Cli>先在 staging 驗證，再進 production\u003C\u002Fli>\u003Cli>rollback 直接回上一版，不用重建整個部署流程\u003C\u002Fli>\u003C\u002Ful>\u003Cp>我自己的做法是：只要團隊還在手動搬模型檔，我就不讓他們碰 serving。先把 registry 當唯一真相來源，endpoint 只是消費它。這樣 retrain 完之後，才不會每次都像重新裝一次系統。\u003C\u002Fp>\u003Ch2>Serverless 很香，但別把每種 endpoint 都想成免錢\u003C\u002Fh2>\u003Cp>Flexera 有講到 Databricks Model Serving 的 serverless 特性，這點確實是它好用的地方。對 CPU 型 custom model 來說，你不用自己管基礎設施，endpoint 也可以在沒流量時縮到零。這對很多團隊來說很爽，因為終於不用再養一台只在半夜出事的機器。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780525998636-p4cf.png\" alt=\"Databricks Model Serving 讓 LLM 部署變簡單\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>但我不想幫它講得太滿。文章也有提到 CPU endpoint 跟 GPU provisioned throughput 是兩種不同模式。這差很多。CPU serverless 比較像「用多少付多少」的體驗；GPU provisioned throughput 則比較像你先把容量租下來，換穩定延遲和可預期吞吐。不要看到 serverless 就以為所有工作負載都會自動變便宜。\u003C\u002Fp>\u003Cp>我看過最常見的誤會，就是團隊聽到 serverless 就以為不用算成本。結果一上 GPU、又要低延遲、又要高吞吐，最後帳單比想像中兇很多。這不是平台坑你，是你把不同計價模式混在一起想。\u003C\u002Fp>\u003Cp>實操上，我會這樣切：\u003C\u002Fp>\u003Cul>\u003Cli>輕量 custom inference：先用 CPU serverless\u003C\u002Fli>\u003Cli>延遲敏感、流量穩定：考慮 GPU provisioned throughput\u003C\u002Fli>\u003Cli>流量波動大：先做壓測，再決定要不要為峰值付費\u003C\u002Fli>\u003C\u002Ful>\u003Cp>如果你現在還在猜，別猜。直接拿真實流量形狀去對成本模型，這比在會議室裡討論「應該」便宜太多。\u003C\u002Fp>\u003Ch2>一個介面收所有模型，比三套半殘流程正常多了\u003C\u002Fh2>\u003Cp>Flexera 文章裡有一個我覺得很實際的點：Databricks 想把 custom models、fine-tuned transformers、\u003Ca href=\"\u002Fnews\u002Fopencode-digitalocean-model-freedom-zh\">open\u003C\u002Fa>-source checkpoints、third-party foundation models 收進同一套部署路徑。這聽起來很平凡，但我反而覺得這才是重點。因為模型種類越來越雜，團隊如果還每種都一套流程，最後就是運維地獄。\u003C\u002Fp>\u003Cp>沒有統一介面時，通常會長成這樣：一種模型一個 wrapper、一種部署一套 script、一種監控一個 dashboard、一種失敗方式一個 on-call 群組。你表面上是在做 AI，實際上是在養很多個互不相干的小系統。\u003C\u002Fp>\u003Cp>Databricks 的做法比較像是把 endpoint 當抽象層，模型類型只是底下的實作差異。這樣至少 client 端不用每次換模型就重寫呼叫方式。更重要的是，治理、權限、rate limit、監控也比較容易集中處理。\u003C\u002Fp>\u003Cp>我自己的實務原則很簡單：對外只保留一種 serving contract。內部可以有不同模型、不同硬體、不同成本結構，但外部 request\u002Fresponse 盡量固定。這樣你才不會每次換模型都順便換掉整個產品介面。\u003C\u002Fp>\u003Cul>\u003Cli>統一 auth，不要每個 endpoint 各玩各的\u003C\u002Fli>\u003Cli>統一 log 格式，方便查問題\u003C\u002Fli>\u003Cli>統一 request schema，減少 client 改動\u003C\u002Fli>\u003C\u002Ful>\u003Cp>你如果能讓使用者感覺 endpoint 很無聊，代表你做對了。serving 最怕的不是不酷，是每次都要人猜。\u003C\u002Fp>\u003Ch2>真正先壞掉的通常是 latency，不是 accuracy\u003C\u002Fh2>\u003Cp>Flexera 把 real-time ML 會遇到的問題列得很完整：latency、throughput、real-time features、monitoring、deployment pipeline、versioning、data quality、整合既有系統。這串清單看起來像教科書，實際上很像事故報告。\u003C\u002Fp>\u003Cp>我自己的經驗是，很多 production ML 根本不是死在「模型不準」，而是死在系統太慢、資料太舊、或根本看不到問題。使用者不會原諒一個 500ms 以外的推薦 endpoint；風控模型如果卡在 feature lookup，錢就是這樣漏掉；模型如果 drift 了但沒人知道，等於你在 production 裡放了一台默默變爛的機器。\u003C\u002Fp>\u003Cp>這也是我為\u003Ca href=\"\u002Fnews\u002Fwhy-microsoft-new-ai-models-break-openai-dependence-zh\">什麼\u003C\u002Fa>會特別注意 Databricks 跟 \u003Ca href=\"https:\u002F\u002Fdocs.databricks.com\u002Fen\u002Fmachine-learning\u002Ffeature-store\u002Fonline-feature-store.html\">online feature store\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fdocs.databricks.com\u002Fen\u002Fgenerative-ai\u002Fvector-search.html\">Vector Search\u003C\u002Fa> 的整合。因為如果你做的是即時推論，資料新鮮度就是模型品質的一部分。資料慢半拍，模型再好也只是慢半拍的猜測。\u003C\u002Fp>\u003Cp>實操上，我建議你在 launch 前先回答三個問題：\u003C\u002Fp>\u003Cul>\u003Cli>延遲能不能達標\u003C\u002Fli>\u003Cli>資料是不是夠新\u003C\u002Fli>\u003Cli>出問題時我能不能第一時間知道\u003C\u002Fli>\u003C\u002Ful>\u003Cp>這三題答不出來，就先不要跟別人說你已經 production-ready。那只是把風險包裝得比較像產品。\u003C\u002Fp>\u003Ch2>價格不是附錄，是你會不會後悔的地方\u003C\u002Fh2>\u003Cp>Flexera 的 pricing 段落我覺得很值得看，因為它沒有裝作成本是小事。文章提到價格會受 cloud、region、plan tier 影響，而且 Standard tier 正在退場，現在多半要看 Premium 或 Enterprise。這種資訊很煩，但也很重要，因為它會直接影響你怎麼規劃預算和遷移。\u003C\u002Fp>\u003Cp>我一直覺得 serving 成本最容易被低估。訓練是偶發，serving 才是每天燒錢的地方。你如果把模型部署出去，然後流量一多，真正長期存在的不是模型誤差，而是月帳單。\u003C\u002Fp>\u003Cp>不同計價模式的差異要分清楚：\u003C\u002Fp>\u003Cul>\u003Cli>CPU serverless：偏使用量計費\u003C\u002Fli>\u003Cli>GPU provisioned throughput：偏預留容量計費\u003C\u002Fli>\u003Cli>foundation model 的 pay-per-token：偏 token 用量計費\u003C\u002Fli>\u003C\u002Ful>\u003Cp>我會先估 request volume、latency target、idle time，再去對應計價方式。不要反過來，先選一個看起來最潮的方案，再回頭硬湊需求。那種做法通常最後都很貴，而且貴得不明不白。\u003C\u002Fp>\u003Ch2>可抄的模板\u003C\u002Fh2>\u003Cpre>\u003Ccode># Databricks Model Serving LLM endpoint 模板（可直接改成你自己的版本）\n\n## 1. 先選服務模式\n- 輕量 custom LLM：CPU serverless\n- 延遲敏感或高吞吐：GPU provisioned throughput\n- foundation model：先算 token 成本，再決定要不要上線\n\n## 2. 先把模型放進 MLflow\n- log 模型 artifact\n- 註冊 model version\n- 標記 stage：staging \u002F production \u002F archived\n\n## 3. 定義固定的 endpoint contract\nRequest:\n{\n  \"prompt\": \"...\",\n  \"system_message\": \"...\",\n  \"max_tokens\": 256,\n  \"temperature\": 0.2,\n  \"metadata\": {\n    \"team\": \"...\",\n    \"env\": \"prod\"\n  }\n}\n\nResponse:\n{\n  \"generated_text\": \"...\",\n  \"model_version\": \"...\",\n  \"latency_ms\": 123,\n  \"request_id\": \"...\"\n}\n\n## 4. 建立 serving endpoint\n- 綁定已註冊的 model version\n- 設定 access control\n- 開啟 autoscaling 或預留容量\n- 外部服務就加 rate limit\n\n## 5. 把即時資料接進來\n- 需要最新特徵就接 online feature store\n- 需要檢索就接 Vector Search\n- 在 log 裡記錄 feature freshness\n\n## 6. 觀測一定要做\n- request_id\n- model_version\n- latency_ms\n- tokens_in\n- tokens_out\n- error_code\n- p95 latency\n- error rate\n\n## 7. rollback 要先演練\n- 保留上一版 model version\n- staging 過了才切 production\n- 出事就切回上一版，不要現場重建\n\n## 8. 成本先估再上\n- CPU serverless：看使用量\n- GPU provisioned throughput：看預留容量\n- 一週真實流量後再修正成本假設\n\n## 9. 最小 release checklist\n- auth 正常\n- logs 可查\n- latency 達標\n- rollback 可用\n- ownership 明確\n\n## 10. 最小可用 payload\n{\n  \"prompt\": \"Summarize this customer issue in one paragraph.\",\n  \"system_message\": \"Be concise and factual.\",\n  \"max_tokens\": 200,\n  \"temperature\": 0.2,\n  \"metadata\": {\n    \"team\": \"support\",\n    \"env\": \"prod\"\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>這份模板故意寫得很無聊，因為 serving 本來就不該靠花俏撐場面。你要的是可重複、可監控、可 rollback，不是每次發版都像在做表演。\u003C\u002Fp>\u003Cp>我這篇的拆解主要來自 Flexera 的原文 \u003Ca href=\"https:\u002F\u002Fwww.flexera.com\u002Fblog\u002Ffinops\u002Fdatabricks-model-serving\u002F\">https:\u002F\u002Fwww.flexera.com\u002Fblog\u002Ffinops\u002Fdatabricks-model-serving\u002F\u003C\u002Fa>，另外也參考了 Databricks 官方文件 \u003Ca href=\"https:\u002F\u002Fdocs.databricks.com\u002Fen\u002Fmachine-learning\u002Fmodel-serving\u002Findex.html\">Mosaic AI Model Serving\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fdocs.databricks.com\u002Fen\u002Fmachine-learning\u002Fmanage-model-lifecycle\u002Findex.html\">MLflow Model Registry\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fdocs.databricks.com\u002Fen\u002Fmachine-learning\u002Ffeature-store\u002Fonline-feature-store.html\">online feature store\u003C\u002Fa> 與 \u003Ca href=\"https:\u002F\u002Fdocs.databricks.com\u002Fen\u002Fgenerative-ai\u002Fvector-search.html\">Vector Search\u003C\u002Fa>。上面那份模板是我自己整理的，可直接拿去改。\u003C\u002Fp>","我拆 Databricks Model Serving 的部署思路，順手給你一份可直接套用的 LLM endpoint 模板。","www.flexera.com","https:\u002F\u002Fwww.flexera.com\u002Fblog\u002Ffinops\u002Fdatabricks-model-serving\u002F",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780525998117-7ur8.png","tools","zh","5a3a734e-3a35-41f2-b9b4-b5c1a73f8471",[17,18,19,20,21],"Databricks Model Serving","Mosaic AI Model Serving","LLM deployment","MLflow Model Registry","serverless inference",[23,24,25],"serving 不是訓練的附屬品，版本與監控才是重點","registry 比按下 deploy 更重要，因為它決定你能不能 rollback","serverless 不等於所有 endpoint 都便宜，CPU\u002FGPU 計價要先分清楚",0,"2026-06-03T22:32:51.005996+00:00","2026-06-03T22:32:51.001+00:00","2280f033-e3ad-4cc4-8f0e-10a6d08600f5",{"tags":31,"relatedLang":42,"relatedPosts":46},[32,34,36,38,40],{"name":21,"slug":33},"serverless-inference",{"name":19,"slug":35},"llm-deployment",{"name":20,"slug":37},"mlflow-model-registry",{"name":18,"slug":39},"mosaic-ai-model-serving",{"name":17,"slug":41},"databricks-model-serving",{"id":15,"slug":43,"title":44,"language":45},"databricks-model-serving-llm-deploy-guide-en","Databricks Model Serving turns LLM deploys simpler","en",[47,53,59,65,71,77],{"id":48,"slug":49,"title":50,"cover_image":51,"image_url":51,"created_at":52,"category":13},"4dd225a8-bf6c-4768-a486-a27956c7033d","opencode-digitalocean-model-freedom-zh","OpenCode+DigitalOcean 讓你切換模型","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780525116428-1q7g.png","2026-06-03T22:18:06.969758+00:00",{"id":54,"slug":55,"title":56,"cover_image":57,"image_url":57,"created_at":58,"category":13},"4bdcf208-fb80-484e-b4b6-06af035a6df1","modulate-aws-voice-chats-into-signals-zh","Modulate 用 AWS 把語音聊天做成訊號","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780519733892-rxue.png","2026-06-03T20:48:22.697917+00:00",{"id":60,"slug":61,"title":62,"cover_image":63,"image_url":63,"created_at":64,"category":13},"f44a28d3-2305-43de-b5fa-21217d561054","amazon-rekognition-content-moderation-filter-zh","Amazon Rekognition把審核變成過濾器","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780517005409-bxfc.png","2026-06-03T20:02:57.634353+00:00",{"id":66,"slug":67,"title":68,"cover_image":69,"image_url":69,"created_at":70,"category":13},"80f6f40b-3217-45e4-acff-7b2f6d261779","codex-workspace-limits-tell-you-why-zh","Codex 讓工作區限額錯誤說人話","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780514293711-ltqa.png","2026-06-03T19:17:41.340056+00:00",{"id":72,"slug":73,"title":74,"cover_image":75,"image_url":75,"created_at":76,"category":13},"daa3d568-4bc5-4f29-aa64-225928ace9b4","book-2-turns-sneaker-drop-into-merch-zh","Book 2 把球鞋發售變成周邊系統","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780513400116-8jeh.png","2026-06-03T19:02:49.03795+00:00",{"id":78,"slug":79,"title":80,"cover_image":81,"image_url":81,"created_at":82,"category":13},"9c9d8493-a290-4058-bcab-dc03c05476bf","chatgpt-updates-june-2026-playbook-zh","ChatGPT 更新變成 6 月 playbook","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780503519133-jmfa.png","2026-06-03T16:18:07.006985+00:00",[84,89,94,99,104,109,114,119,124,129],{"id":85,"slug":86,"title":87,"created_at":88},"855cd52f-6fab-46cc-a7c1-42195e8a0de4","surepath-real-time-mcp-policy-controls-zh","SurePath 推出即時 MCP 政策控管","2026-03-26T07:57:40.77233+00:00",{"id":90,"slug":91,"title":92,"created_at":93},"9b19ab54-edef-4dbd-9ce4-a51e4bae4ebb","mcp-in-2026-the-ai-tool-layer-teams-use-zh","2026 年 MCP：團隊真的在用的 AI 工具層","2026-03-26T08:01:46.589694+00:00",{"id":95,"slug":96,"title":97,"created_at":98},"af9c46c3-7a28-410b-9f04-32b3de30a68c","prompting-in-2026-what-actually-works-zh","2026 提示工程，真正有用的是什麼","2026-03-26T08:08:12.453028+00:00",{"id":100,"slug":101,"title":102,"created_at":103},"05553086-6ed0-4758-81fd-6cab24b575e0","garry-tan-open-sources-claude-code-toolkit-zh","Garry Tan 開源 Claude Code 工具包","2026-03-26T08:26:20.068737+00:00",{"id":105,"slug":106,"title":107,"created_at":108},"042a73a2-18a2-433d-9e8f-9802b9559aac","github-ai-projects-to-watch-in-2026-zh","2026 必看 20 個 GitHub AI 專案","2026-03-26T08:28:09.619964+00:00",{"id":110,"slug":111,"title":112,"created_at":113},"a5f94120-ac0d-4483-9a8b-63590071ac6a","claude-code-vs-cursor-2026-zh","Claude Code 與 Cursor 深度對比：202…","2026-03-26T13:27:14.279193+00:00",{"id":115,"slug":116,"title":117,"created_at":118},"0975afa1-e0c7-4130-a20d-d890eaed995e","practical-github-guide-learning-ml-2026-zh","2026 機器學習入門 GitHub 實用指南","2026-03-27T01:16:49.712576+00:00",{"id":120,"slug":121,"title":122,"created_at":123},"bfdb467a-290f-4a80-b3a9-6f081afb6dff","aiml-2026-student-ai-ml-lab-repo-review-zh","AIML-2026：像課綱的學生實驗 Repo","2026-03-27T01:21:51.467798+00:00",{"id":125,"slug":126,"title":127,"created_at":128},"80cabc3e-09fc-4ff5-8f07-b8d68f5ae545","ai-trending-github-repos-and-research-feeds-zh","AI Trending：把 AI 資源收成一張表","2026-03-27T01:31:35.262183+00:00",{"id":130,"slug":131,"title":132,"created_at":133},"3ce6e6e2-bac5-463e-9f8d-45caabcc61f7","awesome-ai-for-science-research-tools-map-zh","AI 科研工具清單，開始像地圖了","2026-03-27T01:46:50.521945+00:00"]