{"id":3806,"date":"2026-09-08T00:38:38","date_gmt":"2026-09-07T16:38:38","guid":{"rendered":"https:\/\/www.taichungbro.com\/2026\/09\/08\/hugging-face-model-deployment-ecosystem\/"},"modified":"2026-09-08T00:38:38","modified_gmt":"2026-09-07T16:38:38","slug":"hugging-face-model-deployment-ecosystem","status":"publish","type":"post","link":"https:\/\/www.taichungbro.com\/en\/2026\/09\/08\/hugging-face-model-deployment-ecosystem\/","title":{"rendered":"\u5f9e\u958b\u6e90\u793e\u7fa4\u5230 130 \u5104\u7f8e\u5143\u5e73\u53f0\uff1aHugging Face \u7a76\u7adf\u89e3\u6c7a\u4e86 AI \u843d\u5730\u8207\u6a21\u578b\u90e8\u7f72\u7684\u4ec0\u9ebc\u75db\u9ede\uff1f"},"content":{"rendered":"<p>2026 \u5e74\u521d\uff0c\u570b\u969b\u79d1\u6280\u5708\u50b3\u51fa\u79d1\u6280\u5de8\u982d\u8a55\u4f30\u6536\u8cfc\u958b\u6e90 AI \u5e73\u53f0 Hugging Face\uff0c\u5e02\u5834\u4f30\u503c\u63a8\u4f30\u5df2\u7a81\u7834 130 \u5104\u7f8e\u5143\u3002\u5c0d\u8a31\u591a\u525b\u63a5\u89f8\u751f\u6210\u5f0f AI \u7684\u4f7f\u7528\u8005\u6216\u6280\u8853\u6c7a\u7b56\u8005\u4f86\u8aaa\uff0c\u9019\u5bb6\u6700\u521d\u4ee5\u300c\u9ec3\u8272\u7b11\u81c9 Emoji\u300d\u8d77\u5bb6\u3001\u4ee5\u958b\u653e\u539f\u59cb\u78bc\u793e\u7fa4\u70ba\u6838\u5fc3\u7684\u516c\u53f8\uff0c\u65e2\u4e0d\u751f\u7522\u5c08\u5c6c AI \u6676\u7247\uff0c\u4e5f\u4e0d\u50cf OpenAI \u6216 Google \u58df\u65b7\u9802\u7d1a\u9589\u6e90\u524d\u6cbf\u6a21\u578b\uff0c\u6191\u4ec0\u9ebc\u5728\u73fe\u4ee3 AI \u7522\u696d\u93c8\u4e2d\u4f54\u64da\u5982\u6b64\u9f90\u5927\u7684\u751f\u614b\u50f9\u503c\uff1f<\/p>\n<p>\u7b54\u6848\u4e0d\u5728\u65bc\u5546\u696d\u8a71\u984c\uff0c\u800c\u5728\u65bc<strong>\u6a5f\u5668\u5b78\u7fd2\u5de5\u7a0b\uff08Machine Learning Engineering\uff0cMLE\uff09\u9577\u4e45\u4ee5\u4f86\u7684\u843d\u5730\u6ce5\u6dd6<\/strong>\u3002\u5728\u751f\u6210\u5f0f AI \u7206\u767c\u524d\uff0c\u5c07\u4e00\u500b\u5b78\u8853\u754c\u8a13\u7df4\u597d\u7684\u6a21\u578b\u642c\u5230\u751f\u7522\u74b0\u5883\u904b\u884c\uff0c\u5f80\u5f80\u662f\u4e00\u5834\u707d\u96e3\uff1a\u788e\u7247\u5316\u7684\u6b0a\u91cd\u683c\u5f0f\u3001\u6697\u85cf\u4ee3\u78bc\u57f7\u884c\u5f8c\u9580\u7684\u4e8c\u9032\u4f4d\u6a94\u3001\u6846\u67b6\u76f8\u5bb9\u6027\u885d\u7a81\uff0c\u4ee5\u53ca\u5b8c\u5168\u5931\u806f\u7684\u5b57\u5143\u9810\u8655\u7406\u6d41\u7a0b\u3002<\/p>\n<p>Hugging Face \u771f\u6b63\u7684\u8b77\u57ce\u6cb3\uff0c\u4e0d\u662f\u55ae\u7d14\u8a17\u7ba1\u958b\u653e\u7a0b\u5f0f\u78bc\uff0c\u800c\u662f<strong>\u5b9a\u7fa9\u4e86\u73fe\u4ee3 AI \u6a21\u578b\u7684\u4ea4\u4ed8\u3001\u5e8f\u5217\u5316\u3001\u5206\u8a5e\u8207\u63a8\u8ad6\u6a19\u6e96<\/strong>\u3002\u672c\u6587\u8df3\u812b\u5546\u696d\u6536\u8cfc\u71b1\u9ede\uff0c\u5f9e\u5e95\u5c64\u8edf\u9ad4\u67b6\u69cb\u5207\u5165\uff0c\u62c6\u89e3\u5b83\u5982\u4f55\u89e3\u6c7a\u6a5f\u5668\u5b78\u7fd2\u843d\u5730\u7684\u56db\u5927\u6838\u5fc3\u75db\u9ede\uff0c\u4e26\u89e3\u6790\u4f01\u696d\u5728\u79c1\u6709\u5316\u90e8\u7f72\u8207\u908a\u7de3\u63a8\u8ad6\u6642\u7684\u95dc\u9375\u6280\u8853\u8def\u5f91\u3002<\/p>\n<nav class=\"article-toc\" aria-labelledby=\"article-toc-heading\" style=\"margin-block: 1.5em;\">\n<h2 id=\"article-toc-heading\">\u6587\u7ae0\u76ee\u9304<\/h2>\n<ol>\n<li><a href=\"#model-delivery-chaos-and-pickle-risks\" style=\"color: #00c8d7; text-decoration: underline;\">\u65e9\u671f\u6a21\u578b\u4ea4\u4ed8\u7684\u6df7\u4e82\u6ce5\u6dd6\uff1aPickle \u683c\u5f0f\u98a8\u96aa\u3001\u6846\u67b6\u788e\u7247\u5316\u8207\u9810\u8655\u7406\u5931\u806f<\/a><\/li>\n<li><a href=\"#standardization-hub-transformers-tokenizers\" style=\"color: #00c8d7; text-decoration: underline;\">\u6a19\u6e96\u5316\u4e09\u90e8\u66f2\uff1aModel Hub\u3001\u7d71\u4e00 Transformers \u62bd\u8c61\u5c64\u8207 Rust Tokenizers<\/a><\/li>\n<li><a href=\"#safetensors-zero-copy-and-memory-mapping\" style=\"color: #00c8d7; text-decoration: underline;\">\u5b89\u5168\u8207\u96f6\u8907\u88fd\u8b80\u53d6\uff1aSafetensors \u70ba\u4f55\u6210\u70ba\u73fe\u4ee3\u6b0a\u91cd\u4ea4\u4ed8\u7684\u7d55\u5c0d\u6a19\u6e96\uff1f<\/a><\/li>\n<li><a href=\"#legacy-vs-modern-ai-deployment-specs\" style=\"color: #00c8d7; text-decoration: underline;\">\u65e9\u671f\u6a21\u578b\u4ea4\u4ed8 vs \u73fe\u4ee3 Hugging Face \u751f\u614b\u7cfb\u5de5\u7a0b\u67b6\u69cb\u6bd4\u8f03<\/a><\/li>\n<li><a href=\"#production-inference-tgi-vllm-and-paged-attention\" style=\"color: #00c8d7; text-decoration: underline;\">\u751f\u7522\u7d1a\u63a8\u8ad6\u8207\u672c\u6a5f\u843d\u5730\uff1a\u5f9e PyTorch \u539f\u751f\u74f6\u9838\u5230 TGI \u8207 vLLM<\/a><\/li>\n<li><a href=\"#peft-lora-and-adapter-switching\" style=\"color: #00c8d7; text-decoration: underline;\">\u7b97\u529b\u4e0d\u5920\u600e\u9ebc\u8fa6\uff1fPEFT\u3001LoRA \u8207\u52d5\u614b Adapter \u5207\u63db\u964d\u4f4e\u5fae\u8abf\u9580\u6abb<\/a><\/li>\n<li><a href=\"#ecosystem-trade-offs-and-decision-matrix\" style=\"color: #00c8d7; text-decoration: underline;\">\u751f\u614b\u9078\u64c7\u8207\u6c7a\u7b56\u77e9\u9663\uff1a\u4f55\u6642\u81ea\u5efa\u958b\u6e90\u67b6\u69cb\uff0c\u4f55\u6642\u9078\u7528\u5546\u7528\u9589\u6e90 API\uff1f<\/a><\/li>\n<li><a href=\"#open-source-standards-define-ai-infrastructure\" style=\"color: #00c8d7; text-decoration: underline;\">\u6a19\u6e96\u5316\u8207\u751f\u614b\u7db2\u8def\u6548\u61c9\uff0c\u624d\u662f AI \u6642\u4ee3\u6700\u6df1\u7684\u8b77\u57ce\u6cb3<\/a><\/li>\n<\/ol>\n<\/nav>\n<h2 id=\"model-delivery-chaos-and-pickle-risks\">\u65e9\u671f\u6a21\u578b\u4ea4\u4ed8\u7684\u6df7\u4e82\u6ce5\u6dd6\uff1aPickle \u683c\u5f0f\u98a8\u96aa\u3001\u6846\u67b6\u788e\u7247\u5316\u8207\u9810\u8655\u7406\u5931\u806f<\/h2>\n<p>\u8981\u7406\u89e3 Hugging Face \u7684\u5de5\u7a0b\u50f9\u503c\uff0c\u5fc5\u9808\u5148\u56de\u9867 2018 \u81f3 2020 \u5e74\u9593\u6a5f\u5668\u5b78\u7fd2\u6a21\u578b\u7684\u767c\u5e03\u73fe\u6cc1\u3002\u7576\u6642\u7814\u7a76\u5718\u968a\u767c\u8868\u7a81\u7834\u6027\u8ad6\u6587\u5f8c\uff0c\u901a\u5e38\u6703\u5728 GitHub \u9644\u4e0a\u4e00\u500b\u5132\u5b58\u5eab\uff0c\u6b63\u6587\u88e1\u653e\u8457\u5e7e\u884c Google Drive\u3001Dropbox \u6216\u767e\u5ea6\u7db2\u76e4\u7684\u4e0b\u8f09\u9023\u7d50\uff0c\u6a94\u6848\u526f\u6a94\u540d\u4e94\u82b1\u516b\u9580\uff1a<code>.pth<\/code>\u3001<code>.ckpt<\/code>\u3001<code>.bin<\/code>\u3001<code>.h5<\/code> \u6216 <code>.pb<\/code>\u3002<\/p>\n<p>\u5de5\u7a0b\u5e2b\u5c07\u6a94\u6848\u4e0b\u8f09\u56de\u672c\u6a5f\u5f8c\uff0c\u99ac\u4e0a\u6703\u9762\u81e8\u4e09\u500b\u963b\u7919\u751f\u7522\u4e0a\u7dda\u7684\u81f4\u547d\u96e3\u984c\uff1a<\/p>\n<p>\u7b2c\u4e00\u662f<strong>\u4e8c\u9032\u4f4d\u53cd\u5e8f\u5217\u5316\u7684\u91cd\u5927\u5b89\u5168\u6f0f\u6d1e<\/strong>\u3002\u5728 PyTorch \u65e9\u671f\u751f\u614b\u4e2d\uff0c\u5132\u5b58\u6a21\u578b\u6b0a\u91cd\u9810\u8a2d\u4f7f\u7528 <code>torch.save()<\/code>\uff0c\u5176\u5e95\u5c64\u5b8c\u5168\u4f9d\u8cf4 Python \u539f\u751f\u7684 <code>pickle<\/code> \u6a21\u7d44\u3002Pickle \u7684\u8a2d\u8a08\u521d\u8877\u662f\u5e8f\u5217\u5316\u4efb\u610f Python \u7269\u4ef6\uff0c\u56e0\u6b64\u5728\u8b80\u53d6\u9084\u539f\u6642\uff0c\u5141\u8a31\u57f7\u884c\u4e8c\u9032\u4f4d\u8cc7\u6599\u6d41\u4e2d\u5d4c\u5165\u7684\u81ea\u8a02\u6307\u4ee4\uff08\u900f\u904e <code>__reduce__<\/code> \u65b9\u6cd5\uff09\u3002\u9019\u610f\u5473\u8457\u4efb\u4f55\u4eba\u5728\u516c\u958b\u7db2\u8def\u4e0b\u8f09\u672a\u7d93\u5be9\u67e5\u7684 <code>.pth<\/code> \u6b0a\u91cd\u6a94\uff0c\u53ea\u8981\u5728\u4f3a\u670d\u5668\u7aef\u57f7\u884c <code>torch.load()<\/code>\uff0c\u60e1\u610f\u69cb\u9020\u7684\u6b0a\u91cd\u5c31\u80fd\u4ee5\u7576\u524d\u7a0b\u5e8f\u7684\u6b0a\u9650\u57f7\u884c\u4efb\u610f\u7cfb\u7d71\u6307\u4ee4\uff08Arbitrary Code Execution\uff09\u6216\u690d\u5165\u53cd\u5411\u9023\u7dda\u6728\u99ac\u3002\u5728\u4f01\u696d\u8cc7\u5b89\u5be9\u67e5\uff08DevSecOps\uff09\u7684\u56b4\u683c\u6a19\u6e96\u4e0b\uff0c\u672a\u7d93\u6c99\u76d2\u9694\u96e2\u7684 Pickle \u6a94\u6848\u6839\u672c\u7121\u6cd5\u76f4\u63a5\u9032\u5165\u751f\u7522\u74b0\u5883\u3002<\/p>\n<p>\u7b2c\u4e8c\u662f<strong>\u6df1\u5ea6\u5b78\u7fd2\u6846\u67b6\u7684\u6975\u5ea6\u788e\u7247\u5316<\/strong>\u3002PyTorch \u7684 <code>state_dict<\/code> \u9375\u503c\u547d\u540d\u3001TensorFlow \u7684 SavedModel \/ Frozen Graph\u3001JAX \u7684 Flax \u7d50\u69cb\u5b8c\u5168\u4e0d\u4e92\u901a\u3002\u540c\u4e00\u500b Transformer \u67b6\u69cb\uff08\u4f8b\u5982 BERT \u6216 T5\uff09\uff0c\u7814\u7a76\u54e1\u5728 PyTorch \u5be6\u4f5c\u4e86\u4e00\u7248\uff0c\u60f3\u8981\u8f49\u79fb\u5230 C++ \u4f3a\u670d\u5668\u6216 TensorFlow \u53e2\u96c6\u6642\uff0c\u5de5\u7a0b\u5e2b\u5fc5\u9808\u624b\u52d5\u5c0d\u9f4a\u6bcf\u4e00\u5c64\u5f35\u91cf\u7684\u5f62\u72c0\uff08Shape\uff09\u3001\u8f49\u7f6e\u7dad\u5ea6\uff08Transpose\uff09\u4e26\u9010\u4e00\u6838\u5c0d\u6b0a\u91cd\u9375\u540d\uff0c\u8f49\u63db\u904e\u7a0b\u6975\u6613\u51fa\u73fe\u975c\u9ed8\u932f\u8aa4\uff08Silent Error\uff09\u2014\u2014\u6a21\u578b\u7a0b\u5f0f\u78bc\u53ef\u4ee5\u6b63\u5e38\u8dd1\u5b8c\u63a8\u8ad6\uff0c\u4f46\u8f38\u51fa\u6578\u503c\u5b8c\u5168\u504f\u96e2\u9810\u671f\u3002<\/p>\n<p>\u7b2c\u4e09\u662f<strong>\u6587\u5b57\u9810\u8655\u7406\u8207\u5206\u8a5e\u5668\uff08Tokenizer\uff09\u56b4\u91cd\u812b\u7bc0<\/strong>\u3002\u795e\u7d93\u7db2\u8def\u8655\u7406\u7684\u4e0d\u662f\u539f\u59cb\u6587\u5b57\uff0c\u800c\u662f\u6574\u6578\u5f62\u5f0f\u7684 Token ID\u3002\u6587\u5b57\u5982\u4f55\u5207\u5206\u3001\u5982\u4f55\u8655\u7406\u7a7a\u683c\u3001\u5927\u5c0f\u5beb\u8207\u7279\u6b8a\u7b26\u865f\uff08\u4f8b\u5982 <code>[CLS]<\/code>\u3001<code>[SEP]<\/code>\u3001<code>&lt;|endoftext|&gt;<\/code>\uff09\uff0c\u5b8c\u5168\u7531\u5206\u8a5e\u6f14\u7b97\u6cd5\u6c7a\u5b9a\u3002\u65e9\u671f\u7684\u958b\u6e90\u5c08\u6848\u5f80\u5f80\u53ea\u4ea4\u51fa\u6a21\u578b\u7d50\u69cb\u8207\u6b0a\u91cd\uff0c\u5206\u8a5e\u5b57\u5178\u8207\u5207\u8a5e\u898f\u5247\u96a8\u610f\u5beb\u5728\u81ea\u8a02 Python \u8173\u672c\u4e2d\u3002\u53ea\u8981\u4f7f\u7528\u8005\u7684\u5207\u8a5e\u8173\u672c\u8207\u539f\u59cb\u8a13\u7df4\u6642\u7522\u751f\u54ea\u6015\u4e00\u500b\u5b57\u5143\u7684\u6620\u5c04\u5dee\u7570\uff0c\u5f8c\u7e8c\u6240\u6709\u6ce8\u610f\u529b\u6a5f\u5236\u7684\u8a08\u7b97\u90fd\u6703\u5fb9\u5e95\u5931\u771f\uff0c\u5c0e\u81f4\u63a8\u8ad6\u54c1\u8cea\u65b7\u5d16\u5f0f\u4e0b\u6ed1\u3002<\/p>\n<h2 id=\"standardization-hub-transformers-tokenizers\">\u6a19\u6e96\u5316\u4e09\u90e8\u66f2\uff1aModel Hub\u3001\u7d71\u4e00 Transformers \u62bd\u8c61\u5c64\u8207 Rust Tokenizers<\/h2>\n<p>\u9762\u5c0d\u4e0a\u8ff0\u6df7\u4e82\uff0cHugging Face \u6c92\u6709\u9078\u64c7\u81ea\u5df1\u958b\u767c\u4e00\u5957\u5c01\u9589\u7684\u5c08\u5c6c\u6846\u67b6\uff0c\u800c\u662f\u5efa\u7acb\u4e86\u4e00\u5957\u958b\u6e90\u57fa\u790e\u8a2d\u65bd\uff0c\u7528\u5de5\u7a0b\u898f\u683c\u91cd\u69cb\u4e86 AI \u4ea4\u4ed8\u93c8\uff1a<\/p>\n<h3>1. \u7d71\u4e00\u5132\u5b58\u5eab\u8207\u7248\u672c\u63a7\u5236\uff1aModel Hub<\/h3>\n<p>Hugging Face \u4eff\u6548 GitHub \u7684\u5354\u4f5c\u9ad4\u9a57\uff0c\u4f46\u5e95\u5c64\u5c08\u70ba\u5927\u578b\u4e8c\u9032\u4f4d\u8cc7\u7522\u8a2d\u8a08\u3002Model Hub \u6574\u5408\u4e86 Git LFS\uff08Large File Storage\uff09\uff0c\u5c07\u6a21\u578b\u7d50\u69cb\u5b9a\u7fa9\u3001\u6b0a\u91cd\u8cc7\u6599\u3001\u8d85\u53c3\u6578\u8a2d\u5b9a\u6a94\uff08<code>config.json<\/code>\uff09\u3001\u751f\u6210\u63a7\u5236\u898f\u5247\uff08<code>generation_config.json<\/code>\uff09\u4ee5\u53ca\u8cc7\u6599\u96c6\uff08Datasets\uff09\u7d71\u4e00\u7d0d\u5165\u7248\u672c\u63a7\u5236\u3002<\/p>\n<p>\u6bcf\u500b\u6a21\u578b\u9801\u9762\u90fd\u5177\u5099\u6a19\u6e96\u5316\u300cModel Card\u300d\uff0c\u660e\u78ba\u8a18\u9304\u8a13\u7df4\u8cc7\u6599\u96c6\u4f86\u6e90\u3001\u6388\u6b0a\u689d\u6b3e\uff08\u5982 Apache 2.0\u3001MIT\u3001Llama \u793e\u7fa4\u6388\u6b0a\uff09\u3001\u786c\u9ad4\u8a55\u6e2c\u57fa\u6e96\u8207\u6f5b\u5728\u9650\u5236\uff0c\u8b93\u4f01\u696d\u5728\u5f15\u9032\u6a21\u578b\u6642\u80fd\u5177\u5099\u5b8c\u6574\u7684\u5408\u898f\u8ffd\u6eaf\u4f9d\u64da\u3002<\/p>\n<h3>2. \u4e09\u884c\u7a0b\u5f0f\u78bc\u7684\u6975\u7c21\u62bd\u8c61\uff1aTransformers \u51fd\u5f0f\u5eab<\/h3>\n<p>\u5728\u8edf\u9ad4\u5de5\u7a0b\u4e2d\uff0c\u6700\u6210\u529f\u7684\u5c01\u88dd\u5f80\u5f80\u662f\u5c07\u6975\u5176\u8907\u96dc\u7684\u5e95\u5c64\u5dee\u7570\u96b1\u85cf\u5728\u7c21\u6f54\u7684\u4ecb\u9762\u4e4b\u5f8c\u3002Hugging Face \u63d0\u51fa\u7684 <code>AutoModel<\/code> \u8207 <code>AutoTokenizer<\/code> \u8a2d\u8a08\u6a21\u5f0f\uff1a<\/p>\n<pre class=\"wp-block-code\"><code>from transformers import AutoModelForCausalLM, AutoTokenizer\n\ntokenizer = AutoTokenizer.from_pretrained(\"meta-llama\/Llama-3-8B\")\nmodel = AutoModelForCausalLM.from_pretrained(\"meta-llama\/Llama-3-8B\")<\/code><\/pre>\n<p>\u7121\u8ad6\u5e95\u5c64\u662f Dense \u67b6\u69cb\u3001\u6df7\u5408\u5c08\u5bb6\u6a21\u578b\uff08MoE\uff09\u3001\u7de8\u78bc\u5668\uff08Encoder-only\uff09\u9084\u662f\u89e3\u78bc\u5668\uff08Decoder-only\uff09\uff0c\u958b\u767c\u8005\u7686\u4ee5\u5b8c\u5168\u4e00\u81f4\u7684 API \u9032\u884c\u5be6\u4f8b\u5316\u3002\u51fd\u5f0f\u5eab\u6703\u4f9d\u64da Hub \u4e0a\u7684 <code>config.json<\/code> \u81ea\u52d5\u89e3\u6790\u5c64\u6578\u3001\u96b1\u85cf\u5c64\u7dad\u5ea6\u3001\u6ce8\u610f\u529b\u982d\u6578\u8207\u65cb\u8f49\u4f4d\u7f6e\u7de8\u78bc\uff08RoPE\uff09\u53c3\u6578\uff0c\u52d5\u614b\u7d44\u88dd\u6a21\u578b\u8a08\u7b97\u5716\uff0c\u6d88\u9664\u624b\u52d5\u5ba3\u544a\u6a21\u578b\u62d3\u64b2\u7684\u932f\u8aa4\u98a8\u96aa\u3002<\/p>\n<h3>3. \u89e3\u6c7a\u524d\u8655\u7406\u6548\u80fd\u74f6\u9838\uff1aRust \u6838\u5fc3\u7684 Fast Tokenizers<\/h3>\n<p>\u96a8\u8457\u5927\u8a9e\u8a00\u6a21\u578b\u53c3\u6578\u91cf\u8207\u4e0a\u4e0b\u6587\u9577\u5ea6\uff08Context Window\uff09\u5f9e 2K \u64f4\u5c55\u5230 32K\u3001128K \u751a\u81f3\u767e\u842c token\uff0c\u6587\u5b57\u5206\u8a5e\u7684\u8a08\u7b97\u958b\u92b7\u6025\u5287\u589e\u52a0\u3002\u5982\u679c\u4f7f\u7528\u50b3\u7d71 Python \u5b57\u5178\u6bd4\u5c0d\u9032\u884c Byte-Pair Encoding\uff08BPE\uff09\u6216 WordPiece \u5207\u8a5e\uff0cPython \u7684\u5168\u57df\u89e3\u91cb\u5668\u9396\uff08GIL\uff09\u6703\u8b93\u591a\u57f7\u884c\u7dd2\u4e26\u767c\u5206\u8a5e\u6210\u70ba\u56b4\u91cd\u7684 CPU \u6548\u80fd\u74f6\u9838\uff0cGPU \u5e38\u5e38\u8655\u65bc\u7b49\u5f85\u8cc7\u6599\u8f38\u5165\u7684\u98e2\u9913\u72c0\u614b\uff08Starvation\uff09\u3002<\/p>\n<p>Hugging Face \u5c07\u5206\u8a5e\u6838\u5fc3\u6f14\u7b97\u6cd5\u5168\u90e8\u4ee5 Rust \u8a9e\u8a00\u91cd\u5beb\uff0c\u6253\u9020\u4e86 <code>tokenizers<\/code> \u5c08\u6848\u3002\u900f\u904e Rust \u7684\u8a18\u61b6\u9ad4\u5b89\u5168\u8207\u7121\u9396\u4e26\u884c\u7279\u6027\uff0c\u5206\u8a5e\u5668\u80fd\u5920\u5728\u5fae\u79d2\u7d1a\u5225\u5b8c\u6210\u9577\u6587\u672c\u89e3\u6790\uff0c\u541e\u5410\u91cf\u76f8\u8f03\u7d14 Python \u5be6\u4f5c\u63d0\u5347\u4e86 20 \u81f3 100 \u500d\uff0c\u540c\u6642\u4fdd\u6301\u8de8\u5e73\u53f0\u8f38\u51fa\u5b57\u5143\u7de8\u78bc\u5b8c\u5168\u4e00\u81f4\u3002<\/p>\n<h2 id=\"safetensors-zero-copy-and-memory-mapping\">\u5b89\u5168\u8207\u96f6\u8907\u88fd\u8b80\u53d6\uff1aSafetensors \u70ba\u4f55\u6210\u70ba\u73fe\u4ee3\u6b0a\u91cd\u4ea4\u4ed8\u7684\u7d55\u5c0d\u6a19\u6e96\uff1f<\/h2>\n<p>\u5728 Hugging Face \u8ca2\u737b\u7684\u773e\u591a\u6a19\u6e96\u4e2d\uff0c\u5c0d\u73fe\u4ee3 AI \u90e8\u7f72\u5f71\u97ff\u6700\u6df1\u9060\u7684\u5e95\u5c64\u6280\u8853\u4e4b\u4e00\uff0c\u7576\u5c6c 2022 \u5e74\u63a8\u51fa\u7684 <strong>Safetensors<\/strong> \u6a94\u6848\u683c\u5f0f\u3002<\/p>\n<p>Safetensors \u7684\u8a95\u751f\u662f\u70ba\u4e86\u89e3\u6c7a Pickle \u7684\u5b89\u5168\u5a01\u8105\u8207\u8f09\u5165\u6548\u80fd\u74f6\u9838\u3002\u5b83\u7684\u7d50\u69cb\u6975\u5ea6\u7d14\u7cb9\uff0c\u53ea\u7531\u5169\u5927\u90e8\u5206\u69cb\u6210\uff1a<\/p>\n<ul>\n<li><strong>8 \u4f4d\u5143\u7d44\u982d\u90e8\u9577\u5ea6\u6a19\u982d + JSON \u63cf\u8ff0\u982d\uff08Header\uff09<\/strong>\uff1a\u7d14\u6587\u5b57 JSON \u7d50\u69cb\uff0c\u8a18\u9304\u6240\u6709\u5f35\u91cf\u7684\u540d\u7a31\u3001\u5f62\u72c0\uff08Shape\uff09\u3001\u8cc7\u6599\u578b\u5225\uff08\u5982 float16\u3001bfloat16\uff09\u4ee5\u53ca\u8a72\u5f35\u91cf\u5728\u5f8c\u7e8c\u4e8c\u9032\u4f4d\u5340\u584a\u4e2d\u7684\u7cbe\u78ba\u4f4d\u5143\u7d44\u8d77\u59cb\u8207\u7d50\u675f\u504f\u79fb\u91cf\uff08Byte Offset\uff09\u3002<\/li>\n<li><strong>\u539f\u59cb\u5f35\u91cf\u4e8c\u9032\u4f4d\u7de9\u885d\u5340\uff08Raw Tensor Buffer\uff09<\/strong>\uff1a\u7dca\u96a8\u5728 JSON \u982d\u90e8\u4e4b\u5f8c\uff0c\u6240\u6709\u5f35\u91cf\u6578\u503c\u6309\u7167\u9023\u7e8c\u4f4d\u5143\u7d44\u76f4\u63a5\u5e73\u92ea\u6392\u5217\u3002<\/li>\n<\/ul>\n<p>\u9019\u7a2e\u7cbe\u7c21\u8a2d\u8a08\u5728\u5de5\u7a0b\u4e0a\u5e36\u4f86\u4e86\u4e09\u5927\u6839\u672c\u6027\u8b8a\u9769\uff1a<\/p>\n<ul>\n<li><strong>\u7d55\u5c0d\u5b89\u5168\u9632\u8b77<\/strong>\uff1a\u6a94\u6848\u5167\u6c92\u6709\u4efb\u4f55\u53ef\u57f7\u884c\u4ee3\u78bc\u3001\u985e\u5225\u5b9a\u7fa9\u6216\u5e8f\u5217\u5316\u908f\u8f2f\uff0c\u672c\u8cea\u4e0a\u5c31\u662f\u4e00\u5f35\u300c\u5f35\u91cf\u76ee\u9304\u7d22\u5f15\u8868\u300d\u52a0\u4e0a\u300c\u4f4d\u5143\u7d44\u9663\u5217\u300d\u3002\u89e3\u6790\u5668\u53ea\u9700\u8981\u6bd4\u5c0d JSON \u504f\u79fb\u91cf\u4e26\u5c07\u4e8c\u9032\u4f4d\u8cc7\u6599\u8b80\u51fa\uff0c\u5fb9\u5e95\u5c01\u5835\u4e86\u53cd\u5e8f\u5217\u5316\u4ee3\u78bc\u57f7\u884c\u7684\u653b\u64ca\u9762\u3002<\/li>\n<li><strong>\u4f5c\u696d\u7cfb\u7d71\u7d1a\u8a18\u61b6\u9ad4\u6620\u5c04\uff08Memory Mapping\uff0c<code>mmap<\/code>\uff09\u8207\u96f6\u8907\u88fd\uff08Zero-Copy\uff09<\/strong>\uff1a\u50b3\u7d71 PyTorch \u8f09\u5165 <code>.bin<\/code> \u6a94\u6642\uff0c\u4f5c\u696d\u7cfb\u7d71\u5fc5\u9808\u5148\u628a\u6578\u5341 GB \u8cc7\u6599\u5f9e NVMe SSD \u8b80\u53d6\u5230\u7cfb\u7d71\u8a18\u61b6\u9ad4\uff08RAM\uff09\uff0c\u5728 Python \u5806\u758a\u4e2d\u9010\u4e00\u89e3\u6790\u5efa\u69cb\u6210\u5f35\u91cf\u7269\u4ef6\uff0c\u518d\u8907\u88fd\u50b3\u8f38\u5230 GPU \u986f\u5b58\u4e2d\u3002\u9019\u5c0e\u81f4\u7cfb\u7d71\u8a18\u61b6\u9ad4\u81f3\u5c11\u9700\u8981\u7dad\u6301\u6a21\u578b\u9ad4\u7a4d 2 \u500d\u4ee5\u4e0a\u7684\u5bb9\u91cf\uff0c\u4e14\u8f09\u5165\u6642\u9593\u9577\u9054\u6578\u5206\u9418\u3002Safetensors \u652f\u63f4 <code>mmap<\/code>\uff0c\u6838\u5fc3\u76f4\u63a5\u5c07\u78c1\u789f\u6a94\u6848\u5340\u584a\u6620\u5c04\u5230\u865b\u64ec\u4f4d\u5740\u7a7a\u9593\uff0c\u8df3\u904e Python \u904b\u884c\u6642\u8907\u88fd\uff0cGPU \u9a45\u52d5\u7a0b\u5f0f\u53ef\u76f4\u63a5\u900f\u904e DMA\/PCIe \u5c07\u5f35\u91cf\u62c9\u5165\u986f\u5b58\u3002\u51b7\u555f\u52d5\u901f\u5ea6\u63d0\u5347 5 \u81f3 10 \u500d\uff0c\u4e3b\u6a5f\u8a18\u61b6\u9ad4\u81a8\u8139\u7387\u8da8\u8fd1\u65bc\u96f6\u3002<\/li>\n<li><strong>\u8de8\u8a9e\u8a00\u539f\u751f\u652f\u63f4<\/strong>\uff1a\u4e0d\u9700\u8981\u4f9d\u8cf4\u6578\u500b GB \u7684 PyTorch \u6216 CUDA Python \u74b0\u5883\uff0c\u4efb\u4f55\u4f7f\u7528 C++\u3001Rust\u3001Go \u6216 Zig \u958b\u767c\u7684\u9ad8\u6548\u80fd\u63a8\u8ad6\u5f15\u64ce\uff0c\u90fd\u80fd\u5728\u6578\u5341\u884c\u7a0b\u5f0f\u78bc\u5167\u5b8c\u6210 Safetensors \u7684\u89e3\u6790\u8207\u5f35\u91cf\u8f09\u5165\u3002<\/li>\n<\/ul>\n<h2 id=\"legacy-vs-modern-ai-deployment-specs\">\u65e9\u671f\u6a21\u578b\u4ea4\u4ed8 vs \u73fe\u4ee3 Hugging Face \u751f\u614b\u7cfb\u5de5\u7a0b\u67b6\u69cb\u6bd4\u8f03<\/h2>\n<p>\u4e0b\u8868\u5c07\u65e9\u671f\u50b3\u7d71\u7684\u6a21\u578b\u4ea4\u4ed8\u6a21\u5f0f\u8207\u73fe\u4ee3 Hugging Face \u751f\u614b\u9ad4\u7cfb\u9032\u884c\u6280\u8853\u898f\u683c\u8207\u5de5\u7a0b\u5f71\u97ff\u5c0d\u6bd4\uff1a<\/p>\n<figure class=\"wp-block-table\">\n<table>\n<thead>\n<tr>\n<th>\u5de5\u7a0b\u7dad\u5ea6<\/th>\n<th>\u65e9\u671f\u81ea\u5efa\u4ea4\u4ed8\u65b9\u5f0f (Pre-2020)<\/th>\n<th>Hugging Face \u73fe\u4ee3\u6a19\u6e96\u67b6\u69cb (Current)<\/th>\n<th>\u5c0d\u4f01\u696d\u5de5\u7a0b\u8207\u843d\u5730\u7684\u5be6\u8cea\u5f71\u97ff<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>\u6b0a\u91cd\u6a94\u6848\u683c\u5f0f<\/strong><\/td>\n<td>Python Pickle (<code>.pth<\/code> \/ <code>.ckpt<\/code> \/ <code>.bin<\/code>)<\/td>\n<td><code>safetensors<\/code> (\u7d14\u5f35\u91cf\u4f4d\u5143\u7d44 + JSON Header)<\/td>\n<td>\u5fb9\u5e95\u6d88\u9664\u9060\u7aef\u4ee3\u78bc\u57f7\u884c\uff08RCE\uff09\u6f0f\u6d1e\uff0c\u7121\u969c\u7919\u901a\u904e\u4f01\u696d DevSecOps \u8cc7\u5b89\u5be9\u67e5<\/td>\n<\/tr>\n<tr>\n<td><strong>\u8f09\u5165\u8207\u8a18\u61b6\u9ad4\u6a5f\u5236<\/strong><\/td>\n<td>\u5b8c\u6574\u8f09\u5165 RAM \u2192 Python \u7269\u4ef6\u53cd\u5e8f\u5217\u5316 \u2192 GPU<\/td>\n<td>\u4f5c\u696d\u7cfb\u7d71\u7d1a <code>mmap<\/code> \u96f6\u8907\u88fd\u76f4\u901a\u6620\u5c04<\/td>\n<td>\u4e3b\u6a5f RAM \u81a8\u8139\u7387\u964d\u4f4e 50% \u4ee5\u4e0a\uff0c\u5927\u6a21\u578b\u51b7\u555f\u52d5\u8f09\u5165\u901f\u5ea6\u63d0\u5347 5\uff5e10 \u500d<\/td>\n<\/tr>\n<tr>\n<td><strong>\u5206\u8a5e\u8207\u9810\u8655\u7406<\/strong><\/td>\n<td>\u5404\u5c08\u6848\u81ea\u8a02 Python \u8173\u672c\uff0c\u6620\u5c04\u8868\u5e38\u907a\u5931<\/td>\n<td>Rust \u6838\u5fc3 <code>tokenizers<\/code>\uff0c\u898f\u683c\u5c01\u88dd\u65bc Hub<\/td>\n<td>\u907f\u514d Token Mismatch \u5c0e\u81f4\u63a8\u8ad6\u5d29\u6f70\uff0c\u89e3\u9664\u591a\u57f7\u884c\u7dd2\u4e26\u767c\u5206\u8a5e CPU \u74f6\u9838<\/td>\n<\/tr>\n<tr>\n<td><strong>\u67b6\u69cb\u62bd\u8c61\u5ea6<\/strong><\/td>\n<td>\u7d81\u5b9a\u7279\u5b9a\u6846\u67b6\u8a9e\u6cd5\uff0c\u8de8\u6846\u67b6\u9700\u91cd\u5beb\u8a08\u7b97\u5716<\/td>\n<td>\u7d71\u4e00 <code>AutoModel<\/code> \u8207 <code>AutoConfig<\/code> \u62bd\u8c61<\/td>\n<td>\u964d\u4f4e\u6846\u67b6\u9396\u5b9a\uff08Vendor Lock-in\uff09\u98a8\u96aa\uff0c\u6a21\u578b\u53ef\u5728\u4e0d\u540c\u63a8\u8ad6\u5f15\u64ce\u9593\u7121\u7e2b\u9077\u79fb<\/td>\n<\/tr>\n<tr>\n<td><strong>\u751f\u7522\u63a8\u8ad6\u670d\u52d9<\/strong><\/td>\n<td>\u81ea\u884c\u7528 Flask \/ FastAPI \u5305\u88dd <code>model.generate()<\/code><\/td>\n<td>\u539f\u751f\u5c0d\u63a5\u751f\u7522\u7d1a\u5f15\u64ce (TGI \/ vLLM \/ SGLang)<\/td>\n<td>\u89e3\u6c7a\u975c\u614b\u6279\u8655\u7406\u8207 KV Cache \u986f\u5b58\u6d6a\u8cbb\uff0c\u63a8\u8ad6\u541e\u5410\u91cf\u63d0\u5347 3\uff5e8 \u500d<\/td>\n<\/tr>\n<tr>\n<td><strong>\u5fae\u8abf\u9069\u914d\u65b9\u5f0f<\/strong><\/td>\n<td>\u5168\u53c3\u6578\u5fae\u8abf\uff0c\u9700\u5132\u5b58\u6578\u500d\u986f\u5b58\u4e4b\u512a\u5316\u5668\u72c0\u614b<\/td>\n<td>\u5c01\u88dd PEFT (LoRA \/ QLoRA \/ Prefix Tuning)<\/td>\n<td>\u5fae\u8abf\u986f\u5b58\u9580\u6abb\u964d\u4f4e 70%\uff5e90%\uff0c\u652f\u63f4\u55ae\u4e00\u57fa\u790e\u6a21\u578b\u52d5\u614b\u639b\u8f09\u591a\u696d\u52d9 Adapter<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p>\u5f9e\u6bd4\u8f03\u8868\u53ef\u770b\u51fa\uff0cHugging Face \u7684\u771f\u6b63\u50f9\u503c\u5728\u65bc<strong>\u5c07\u6a5f\u5668\u5b78\u7fd2\u5f9e\u300c\u5b78\u8853\u5be6\u9a57\u5ba4\u7684\u5ba2\u88fd\u5316\u8173\u672c\u300d\uff0c\u91cd\u7d44\u6210\u300c\u5177\u5099\u5de5\u7a0b\u78ba\u5b9a\u6027\u3001\u8cc7\u5b89\u9632\u8b77\u8207\u8cc7\u6e90\u9ad8\u5229\u7528\u7387\u7684\u6a19\u6e96\u5143\u4ef6\u300d<\/strong>\u3002<\/p>\n<h2 id=\"production-inference-tgi-vllm-and-paged-attention\">\u751f\u7522\u7d1a\u63a8\u8ad6\u8207\u672c\u6a5f\u843d\u5730\uff1a\u5f9e PyTorch \u539f\u751f\u74f6\u9838\u5230 TGI \u8207 vLLM<\/h2>\n<p>\u6a21\u578b\u683c\u5f0f\u6a19\u6e96\u5316\u4e4b\u5f8c\uff0c\u4f01\u696d\u9762\u81e8\u7684\u4e0b\u4e00\u500b\u95dc\u5361\u662f\uff1a<strong>\u5982\u4f55\u7528\u53ef\u8ca0\u64d4\u7684\u786c\u9ad4\u6210\u672c\uff0c\u5c07\u6a21\u578b\u90e8\u7f72\u6210\u7a69\u5b9a\u3001\u9ad8\u4e26\u767c\u7684\u5167\u90e8\u670d\u52d9\uff1f<\/strong><\/p>\n<p>\u8a31\u591a\u5de5\u7a0b\u5e2b\u5728\u521d\u6b21\u5617\u8a66\u672c\u5730\u843d\u5730\u6642\uff0c\u7fd2\u6163\u76f4\u63a5\u547c\u53eb <code>pipeline(\"text-generation\")<\/code> \u6216\u64b0\u5beb\u7c21\u55ae\u7684 FastAPI \u5c01\u88dd <code>model.generate()<\/code>\u3002\u5728\u958b\u767c\u6a5f\u55ae\u4eba\u6e2c\u8a66\u6642\u770b\u4f3c\u6b63\u5e38\uff0c\u4f46\u53ea\u8981\u540c\u6642\u6e67\u5165\u6578\u5341\u500b\u54e1\u5de5\u8acb\u6c42\uff0c\u986f\u5b58\u7acb\u523b\u8017\u76e1\u5d29\u6f70\uff08Out-Of-Memory\uff0cOOM\uff09\uff0c\u6216\u6bcf\u79d2\u751f\u6210 Token \u6578\uff08Tokens Per Second\uff09\u9a5f\u964d\u3002<\/p>\n<p>\u554f\u984c\u7684\u6838\u5fc3\u51fa\u5728 Transformer \u7684\u81ea\u56de\u6b78\u89e3\u78bc\u6a5f\u5236\u8207 <strong>KV Cache\uff08\u9375\u503c\u5feb\u53d6\uff09<\/strong> \u7684\u7ba1\u7406\u7f3a\u9677\u3002<\/p>\n<h3>1. KV Cache \u986f\u5b58\u9ed1\u6d1e\u8207 PagedAttention<\/h3>\n<p>\u5728\u751f\u6210\u5f0f\u6a21\u578b\u4e2d\uff0c\u6bcf\u8f38\u51fa\u4e00\u500b\u65b0\u5b57\uff0c\u90fd\u9700\u8981\u8207\u524d\u9762\u6240\u6709\u4e0a\u4e0b\u6587\u9032\u884c\u6ce8\u610f\u529b\u77e9\u9663\u8a08\u7b97\u3002\u70ba\u4e86\u907f\u514d\u91cd\u8907\u8a08\u7b97\u6b77\u53f2\u8cc7\u8a0a\uff0c\u7cfb\u7d71\u6703\u628a\u904e\u53bb\u6240\u6709 token \u7684 Key \u8207 Value \u77e9\u9663\u5132\u5b58\u5728\u986f\u5b58\u4e2d\u3002<\/p>\n<p>\u5728\u539f\u751f PyTorch \u5be6\u4f5c\u4e2d\uff0cKV Cache \u5fc5\u9808\u4f54\u7528\u986f\u5b58\u4e2d\u300c\u9023\u7e8c\u7684\u5be6\u9ad4\u8a18\u61b6\u9ad4\u7a7a\u9593\u300d\u3002\u4f46\u7531\u65bc\u4f7f\u7528\u8005\u7684\u63d0\u554f\u9577\u5ea6\uff08Prompt Length\uff09\u8207\u6a21\u578b\u56de\u8986\u9577\u5ea6\u5b8c\u5168\u52d5\u614b\u4e14\u7121\u6cd5\u9810\u6e2c\uff0c\u4f3a\u670d\u5668\u53ea\u80fd\u9810\u5148\u70ba\u6bcf\u500b\u8acb\u6c42\u914d\u7f6e\u6700\u5927\u53ef\u80fd\u9577\u5ea6\uff08\u5982 4096 \u6216 8192 token\uff09\u7684\u986f\u5b58\u5340\u584a\u3002\u9019\u9020\u6210\u4e86\u56b4\u91cd\u7684\u5167\u90e8\u788e\u7247\uff08\u672a\u4f7f\u7528\u7684\u9810\u7559\u7a7a\u9593\uff09\u8207\u5916\u90e8\u788e\u7247\uff08\u7121\u6cd5\u5bb9\u7d0d\u65b0\u8acb\u6c42\u7684\u986f\u5b58\u96f6\u788e\u5340\u584a\uff09\uff0c\u9ad8\u9054 60% \u81f3 80% \u7684 GPU \u986f\u5b58\u5be6\u969b\u4e0a\u88ab\u767d\u767d\u6d6a\u8cbb\u3002<\/p>\n<p>\u70ba\u4e86\u89e3\u6c7a\u9019\u500b\u74f6\u9838\uff0c\u67cf\u514b\u840a\u5718\u968a\u63d0\u51fa\u4e86 <strong>vLLM<\/strong> \u5f15\u64ce\uff0c\u501f\u9452\u4e86\u4f5c\u696d\u7cfb\u7d71\u4e2d\u865b\u64ec\u8a18\u61b6\u9ad4\u5206\u9801\uff08Virtual Memory Paging\uff09\u7684\u7d93\u5178\u67b6\u69cb\uff0c\u6253\u9020\u4e86 <strong>PagedAttention<\/strong> \u6f14\u7b97\u6cd5\u3002\u5b83\u5141\u8a31\u5c07\u52d5\u614b\u589e\u9577\u7684 KV Cache \u5207\u5206\u6210\u56fa\u5b9a\u5927\u5c0f\u7684\u7269\u7406\u9801\u9762\uff08Pages\uff09\uff0c\u5206\u6563\u5132\u5b58\u5728\u975e\u9023\u7e8c\u7684\u986f\u5b58\u5340\u584a\u4e2d\u3002\u900f\u904e\u9801\u8868\uff08Page Table\uff09\u5373\u6642\u6620\u5c04\uff0c\u986f\u5b58\u6d6a\u8cbb\u7387\u76f4\u63a5\u964d\u81f3 4% \u4ee5\u4e0b\uff0c\u7cfb\u7d71\u4e26\u884c\u541e\u5410\u91cf\uff08Throughput\uff09\u63d0\u5347\u4e86 4 \u5230 8 \u500d\u3002<\/p>\n<h3>2. Hugging Face TGI \u7684\u751f\u7522\u5de5\u7a0b\u5be6\u8e10<\/h3>\n<p>Hugging Face \u5b98\u65b9\u63a8\u51fa\u7684 <strong>Text Generation Inference\uff08TGI\uff09<\/strong>\uff0c\u5247\u662f\u5c08\u70ba\u73fe\u4ee3\u751f\u7522\u74b0\u5883\u8a2d\u8a08\u7684\u9ad8\u6548\u80fd\u958b\u6e90\u63a8\u8ad6\u5bb9\u5668\u3002TGI \u63a1\u7528 Rust \u4f5c\u70ba\u9ad8\u6548\u80fd\u901a\u8a0a\u8207\u6392\u7a0b\u5c64\uff0c\u5e95\u5c64\u6df1\u5ea6\u6574\u5408\u4e86\u591a\u9805\u524d\u6cbf\u6280\u8853\uff1a<\/p>\n<ul>\n<li><strong>\u9023\u7e8c\u52d5\u614b\u6279\u8655\u7406\uff08Continuous Batching \/ In-flight Batching\uff09<\/strong>\uff1a\u50b3\u7d71\u6279\u8655\u7406\u5fc5\u9808\u7b49\u6279\u6b21\u5167\u300c\u6700\u9577\u300d\u7684\u90a3\u500b\u8acb\u6c42\u751f\u6210\u5b8c\u7562\u624d\u80fd\u91cb\u653e\u986f\u5b58\uff1bTGI \u53ef\u4ee5\u5728 iteration \u7b49\u7d1a\u52d5\u614b\u63d2\u5165\u65b0\u8acb\u6c42\u8207\u79fb\u51fa\u5df2\u7d50\u675f\u8acb\u6c42\uff0c\u786c\u9ad4\u5229\u7528\u7387\u63a5\u8fd1\u6975\u9650\u3002<\/li>\n<li><strong>\u5f35\u91cf\u4e26\u884c\uff08Tensor Parallelism\uff09<\/strong>\uff1a\u7576\u6a21\u578b\u5c3a\u5bf8\u8d85\u8d8a\u55ae\u5f35 GPU \u5bb9\u91cf\uff08\u4f8b\u5982 70B \u6a21\u578b\u9700\u8981\u7d04 140 GB \u986f\u5b58\uff09\uff0cTGI \u80fd\u900f\u904e NCCL \u5c07\u77e9\u9663\u8a08\u7b97\u5747\u52fb\u5207\u5206\u5230\u540c\u4e00\u4f3a\u670d\u5668\u5167\u7684 2 \u5f35\u30014 \u5f35\u6216 8 \u5f35 GPU \u4e0a\u5354\u540c\u904b\u7b97\u3002<\/li>\n<li><strong>\u63a8\u6e2c\u89e3\u78bc\uff08Speculative Decoding\uff09<\/strong>\uff1a\u5229\u7528\u5c0f\u578b\u8f14\u52a9\u6a21\u578b\uff08Draft Model\uff09\u5feb\u901f\u9810\u6e2c\u5019\u9078 token\uff0c\u518d\u7531\u4e3b\u6a21\u578b\u4e00\u6b21\u6027\u5e73\u884c\u9a57\u8b49\uff0c\u5728\u4e0d\u640d\u5931\u7cbe\u78ba\u5ea6\u7684\u524d\u63d0\u4e0b\u5c07\u63a8\u8ad6\u901f\u5ea6\u63d0\u5347 1.5 \u81f3 2.5 \u500d\u3002<\/li>\n<\/ul>\n<p>\u7576\u6a21\u578b\u898f\u6a21\u9032\u4e00\u6b65\u64f4\u5927\u3001\u8cc7\u6599\u4e2d\u5fc3\u9700\u8981\u627f\u8f09\u8de8\u6a5f\u67b6\u53e2\u96c6\u904b\u7b97\u6642\uff0c\u63a8\u8ad6\u7cfb\u7d71\u4e0d\u50c5\u9762\u81e8\u8edf\u9ad4\u4e26\u884c\u74f6\u9838\uff0c\u66f4\u76f4\u63a5\u53d7\u9650\u65bc\u4f3a\u670d\u5668\u4f9b\u96fb\u8207\u6563\u71b1\u7269\u7406\u6975\u9650\uff0c\u76f8\u95dc\u67b6\u69cb\u8a55\u4f30\u53ef\u53c3\u8003<a href=\"https:\/\/www.taichungbro.com\/2026\/07\/15\/copper-power-thermal-ai-server\/\" style=\"color: #00c8d7; text-decoration: underline;\">AI \u4f3a\u670d\u5668\u904b\u7b97\u8207\u6563\u71b1\u786c\u9ad4\u6975\u9650<\/a>\u7684\u5be6\u9ad4\u5206\u6790\uff1b\u82e5\u4f01\u696d\u8a55\u4f30\u5c0e\u5165\u975e GPU \u7684\u5c08\u5c6c\u63a8\u8ad6\u6676\u7247\uff0c\u4ea6\u53ef\u5c0d\u7167<a href=\"https:\/\/www.taichungbro.com\/2026\/08\/31\/mediatek-soc-custom-xpu-data-center\/\" style=\"color: #00c8d7; text-decoration: underline;\">\u8cc7\u6599\u4e2d\u5fc3\u5ba2\u88fd\u5316 ASIC \u8207 XPU \u63a8\u8ad6\u6676\u7247\u67b6\u69cb<\/a>\u7684\u767c\u5c55\u8def\u7dda\u3002<\/p>\n<h3>3. \u908a\u7de3\u8207\u8f15\u91cf\u5316\u91cf\u5316\u6280\u8853<\/h3>\n<p>\u91dd\u5c0d\u4e2d\u5c0f\u4f01\u696d\u6216\u908a\u7de3\u7aef\u8a2d\u5099\uff0cHugging Face \u751f\u614b\u6df1\u5ea6\u6574\u5408\u4e86 <strong>AWQ\uff08Activation-aware Weight Quantization\uff09<\/strong>\u3001<strong>GPTQ<\/strong> \u4ee5\u53ca\u57fa\u65bc llama.cpp \u7684 <strong>GGUF<\/strong> \u683c\u5f0f\u3002\u900f\u904e\u4fdd\u7559\u95dc\u9375 1% \u7684\u986f\u8457\u6b0a\u91cd\u3001\u5c07\u5176\u9918 99% \u7684 16-bit \u6d6e\u9ede\u6578\u58d3\u7e2e\u70ba 4-bit \u6574\u6578\uff0c\u539f\u672c\u9700\u8981\u9802\u7d1a\u4f01\u696d\u7d1a\u986f\u5361\u624d\u80fd\u904b\u884c\u7684 70B \u6a21\u578b\uff0c\u80fd\u5920\u9806\u5229\u653e\u9032\u6d88\u8cbb\u7d1a\u986f\u793a\u5361\uff08\u5982\u96d9 RTX 4090\uff09\u6216\u55ae\u53f0 Apple Mac Studio \u672c\u5730\u904b\u884c\uff0c\u63a8\u8ad6\u54c1\u8cea\u640d\u5931\u901a\u5e38\u5c0f\u65bc 1% \u81f3 2%\u3002<\/p>\n<h2 id=\"peft-lora-and-adapter-switching\">\u7b97\u529b\u4e0d\u5920\u600e\u9ebc\u8fa6\uff1fPEFT\u3001LoRA \u8207\u52d5\u614b Adapter \u5207\u63db\u964d\u4f4e\u5fae\u8abf\u9580\u6abb<\/h2>\n<p>\u5728\u4f01\u696d\u843d\u5730\u5834\u666f\u4e2d\uff0c\u901a\u7528\u958b\u6e90\u6a21\u578b\u5f80\u5f80\u7121\u6cd5\u76f4\u63a5\u6eff\u8db3\u7279\u5b9a\u696d\u52d9\u9700\u6c42\u3002\u4f8b\u5982\u4f01\u696d\u5167\u90e8\u7684\u5c08\u6709\u540d\u8a5e\u3001\u6cd5\u898f\u5408\u7d04\u683c\u5f0f\u3001\u5ba2\u670d\u6a19\u6e96\u4f5c\u696d\u7a0b\u5e8f\uff0c\u90fd\u9700\u8981\u6a21\u578b\u9032\u884c\u9032\u4e00\u6b65\u9069\u914d\u3002<\/p>\n<p>\u4f46\u82e5\u63a1\u7528\u50b3\u7d71\u7684<strong>\u5168\u53c3\u6578\u5fae\u8abf\uff08Full Fine-Tuning\uff09<\/strong>\uff0c\u4f01\u696d\u5fc5\u9808\u627f\u64d4\u96e3\u4ee5\u627f\u53d7\u7684\u7b97\u529b\u6210\u672c\u3002\u4ee5\u4e00\u500b 70B \u6a21\u578b\u70ba\u4f8b\uff0c\u5132\u5b58 16-bit \u6b0a\u91cd\u9700\u8981 140 GB\uff0c\u4f46\u5728\u53cd\u5411\u50b3\u64ad\uff08Backpropagation\uff09\u904e\u7a0b\u4e2d\uff0c\u9084\u9700\u8981\u984d\u5916\u5132\u5b58\u555f\u7528\u503c\uff08Activations\uff09\u3001\u68af\u5ea6\uff08Gradients\uff09\u4ee5\u53ca AdamW \u512a\u5316\u5668\u7684\u52d5\u91cf\u8207\u4e8c\u968e\u77e9\u72c0\u614b\uff08\u901a\u5e38\u662f\u6a21\u578b\u53c3\u6578\u91cf\u7684 4 \u500d\u9ad4\u7a4d\uff09\u3002\u9019\u610f\u5473\u8457\u9032\u884c\u5168\u53c3\u6578\u5fae\u8abf\u81f3\u5c11\u9700\u8981 700 GB \u5230 1 TB \u7684\u986f\u5b58\u7a7a\u9593\uff0c\u975e\u4e00\u822c\u4f01\u696d\u6240\u80fd\u4f01\u53ca\u3002<\/p>\n<p>Hugging Face \u5c01\u88dd\u7684 <strong>PEFT\uff08Parameter-Efficient Fine-Tuning\uff09<\/strong> \u51fd\u5f0f\u5eab\uff0c\u5c07 <strong>LoRA\uff08Low-Rank Adaptation\uff09<\/strong> \u6280\u8853\u5e36\u5165\u4e86\u6a19\u6e96\u5de5\u7a0b\u6d41\u6c34\u7dda\uff1a<\/p>\n<p style=\"text-align: center; font-size: 1.1em; padding: 0.5em 0;\"><code>W = W<sub>0<\/sub> + \u0394W = W<sub>0<\/sub> + B \u00d7 A<\/code><\/p>\n<p>\u5176\u4e2d <code>W<sub>0<\/sub><\/code>\uff08\u7dad\u5ea6\u70ba <code>d \u00d7 k<\/code>\uff09 \u662f\u9810\u5148\u51cd\u7d50\uff08Freeze\uff09\u7684\u57fa\u5e95\u6a21\u578b\u539f\u59cb\u6b0a\u91cd\uff0c<code>B<\/code>\uff08\u7dad\u5ea6\u70ba <code>d \u00d7 r<\/code>\uff09\u8207 <code>A<\/code>\uff08\u7dad\u5ea6\u70ba <code>r \u00d7 k<\/code>\uff09 \u662f\u4e00\u7d44\u4f4e\u79e9\u77e9\u9663\uff0c\u79e9\uff08Rank\uff09\u901a\u5e38\u8a2d\u70ba 8\u300116 \u6216 64\uff08<code>r \u226a min(d, k)<\/code>\uff09\u3002\u5728\u5fae\u8abf\u904e\u7a0b\u4e2d\uff0c\u57fa\u5e95\u6b0a\u91cd\u5b8c\u5168\u4e0d\u66f4\u65b0\uff0c\u7cfb\u7d71\u53ea\u8a13\u7df4 <code>A<\/code> \u8207 <code>B<\/code> \u5169\u500b\u5c0f\u77e9\u9663\u3002<\/p>\n<p>\u9019\u70ba\u4f01\u696d\u7cfb\u7d71\u67b6\u69cb\u5e36\u4f86\u5169\u5927\u6c7a\u5b9a\u6027\u512a\u52e2\uff1a<\/p>\n<ol>\n<li><strong>\u986f\u5b58\u9700\u6c42\u92b3\u6e1b 80% \u4ee5\u4e0a<\/strong>\uff1a\u53ef\u8a13\u7df4\u53c3\u6578\u91cf\u964d\u81f3\u5168\u9ad4\u53c3\u6578\u7684 0.1% \u4ee5\u4e0b\uff0c\u914d\u5408 4-bit \u57fa\u5e95\u91cf\u5316\uff08QLoRA\uff09\uff0c\u55ae\u5f35 24GB \u986f\u5b58\u7684\u6d88\u8cbb\u7d1a\u986f\u5361\u5373\u53ef\u5fae\u8abf 13B \u7b49\u7d1a\u7684\u6a21\u578b\u3002<\/li>\n<li><strong>\u591a\u696d\u52d9\u52d5\u614b Adapter \u5207\u63db<\/strong>\uff1a\u5fae\u8abf\u5b8c\u6210\u5f8c\u7684 LoRA \u6a94\u6848\u901a\u5e38\u53ea\u6709 20 MB \u81f3 200 MB\uff0c\u800c\u4e0d\u662f\u9f90\u5927\u7684\u6578\u5341 GB\u3002\u5728\u751f\u7522\u67b6\u69cb\u4e2d\uff0c\u4f3a\u670d\u5668\u53ea\u9700\u5728\u986f\u5b58\u4e2d\u5e38\u99d0\u4e00\u4efd Llama \u6216 Mistral \u57fa\u790e\u6a21\u578b\uff1b\u7576\u4eba\u8cc7\u7cfb\u7d71\u7684\u8acb\u6c42\u5230\u9054\u6642\uff0cTGI \u6216 vLLM \u80fd\u5728\u6beb\u79d2\u7d1a\u5225\u52d5\u614b\u52a0\u8f09\u300cHR-LoRA\u300d\u77e9\u9663\uff1b\u7576\u5ba2\u670d\u8acb\u6c42\u5230\u9054\u6642\uff0c\u5373\u6642\u5207\u63db\u70ba\u300cSupport-LoRA\u300d\u3002\u55ae\u4e00\u4f3a\u670d\u5668\u53e2\u96c6\u5373\u53ef\u540c\u6642\u652f\u63f4\u5168\u516c\u53f8\u4e0d\u540c\u90e8\u9580\u7684\u5c08\u7528 AI \u4efb\u52d9\uff0c\u5c07\u786c\u9ad4\u6295\u8cc7\u5831\u916c\u7387\uff08ROI\uff09\u6700\u5927\u5316\u3002<\/li>\n<\/ol>\n<h2 id=\"ecosystem-trade-offs-and-decision-matrix\">\u751f\u614b\u9078\u64c7\u8207\u6c7a\u7b56\u77e9\u9663\uff1a\u4f55\u6642\u81ea\u5efa\u958b\u6e90\u67b6\u69cb\uff0c\u4f55\u6642\u9078\u7528\u5546\u7528\u9589\u6e90 API\uff1f<\/h2>\n<p>\u96a8\u8457\u958b\u6e90\u751f\u614b\u8207\u63a8\u8ad6\u6280\u8853\u65e5\u8da8\u6210\u719f\uff0c\u6280\u8853\u6c7a\u7b56\u8005\u5e38\u9762\u81e8\u4e00\u500b\u6839\u672c\u6289\u64c7\uff1a<strong>\u65e2\u7136\u547c\u53eb\u5546\u7528 API \u5982\u6b64\u65b9\u4fbf\uff0c\u4f01\u696d\u7a76\u7adf\u8a72\u5728\u5167\u7db2\u5efa\u7acb Hugging Face \u958b\u6e90\u68e7\uff0c\u9084\u662f\u76f4\u63a5\u63a1\u8cfc\u9802\u7d1a\u5546\u7528\u6a21\u578b\u670d\u52d9\uff1f<\/strong><\/p>\n<p>\u9019\u4e26\u975e\u55ae\u7d14\u7684\u6280\u8853\u9ad8\u4e0b\u4e4b\u722d\uff0c\u800c\u662f\u4e00\u5957\u56b4\u683c\u7684\u67b6\u69cb\u53d6\u6368\u3002\u4e0b\u8868\u6574\u7406\u4e86\u56db\u500b\u6838\u5fc3\u7dad\u5ea6\u7684\u6c7a\u7b56\u908a\u754c\uff1a<\/p>\n<figure class=\"wp-block-table\">\n<table>\n<thead>\n<tr>\n<th>\u8a55\u4f30\u7dad\u5ea6<\/th>\n<th>\u958b\u6e90\u672c\u6a5f \/ \u79c1\u6709\u96f2\u90e8\u7f72 (Hugging Face + vLLM \/ TGI)<\/th>\n<th>\u5546\u7528\u9589\u6e90 API \u670d\u52d9 (OpenAI \/ Anthropic \/ Google)<\/th>\n<th>\u6c7a\u7b56\u5efa\u8b70\u8def\u5f91<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>\u8cc7\u6599\u96b1\u79c1\u8207\u6cd5\u898f\u5408\u898f<\/strong><\/td>\n<td>\u8cc7\u6599\u5b8c\u5168\u4e0d\u51fa\u5167\u7db2\uff0c\u7269\u7406\u9694\u96e2\uff0c\u7b26\u5408\u91d1\u878d\u3001\u91ab\u7642\u53ca\u570b\u9632\u7b49\u9ad8\u5ea6\u76e3\u7ba1\u6a19\u6e96<\/td>\n<td>\u8cc7\u6599\u9700\u50b3\u8f38\u81f3\u516c\u6709\u96f2\u7aef\uff0c\u9700\u4ef0\u8cf4\u4f9b\u61c9\u5546\u96b1\u79c1\u5354\u5b9a\u8207\u4f01\u696d\u7248\u627f\u8afe<\/td>\n<td>\u6d89\u53ca\u9ad8\u5ea6\u6a5f\u5bc6\u3001\u75c5\u6b77\u3001\u5167\u90e8\u539f\u59cb\u78bc\u6216\u56b4\u683c\u5730\u7de3\u6578\u64da\u6cd5\u898f\u6642\uff0c<strong>\u552f\u4e00\u9078\u64c7\u81ea\u5efa\u958b\u6e90<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>\u9577\u671f\u898f\u6a21\u5316\u6210\u672c (TCO)<\/strong><\/td>\n<td>\u521d\u671f\u9700\u6295\u5165\u4f3a\u670d\u5668\u786c\u9ad4\u6216\u56fa\u5b9a GPU \u79df\u8cc3\u6210\u672c\uff1b\u4f46\u908a\u969b\u8acb\u6c42\u6210\u672c\u8da8\u8fd1\u65bc\u96f6<\/td>\n<td>\u7121\u786c\u9ad4\u5efa\u7f6e\u6210\u672c\uff0c\u4f9d\u8f38\u5165 \/ \u8f38\u51fa Token \u6578\u91cf\u8a08\u8cbb\uff1b\u7f3a\u4e4f\u9577\u671f\u898f\u6a21\u7d93\u6fdf<\/td>\n<td>\u8acb\u6c42\u91cf\u6975\u5927\uff08\u65e5\u5747\u6578\u767e\u842c\u6b21\u4ee5\u4e0a\uff09\u6216\u4efb\u52d9\u578b\u614b\u56fa\u5b9a\u6642\uff0c\u81ea\u5efa\u958b\u6e90\u5177\u986f\u8457\u6210\u672c\u512a\u52e2<\/td>\n<\/tr>\n<tr>\n<td><strong>\u5ef6\u9072\u8207\u670d\u52d9\u7b49\u7d1a\u5354\u8b70 (SLA)<\/strong><\/td>\n<td>\u4f9d\u5167\u90e8\u8ca0\u8f09\u5b8c\u5168\u81ea\u4e3b\u638c\u63a7\uff0cP99 \u5ef6\u9072\u7a69\u5b9a\uff0c\u4e0d\u53d7\u516c\u6709\u96f2\u8de8\u570b\u7dda\u8def\u6296\u52d5\u5f71\u97ff<\/td>\n<td>\u5c16\u5cf0\u6642\u6bb5\u53ef\u80fd\u906d\u9047 Rate Limit\uff08\u901f\u7387\u9650\u5236\uff09\u6216\u516c\u6709\u96f2\u7aef\u4f47\u5217\u6392\u968a\u5ef6\u9072<\/td>\n<td>\u5c0d\u5373\u6642\u53cd\u61c9\u901f\u5ea6\u6975\u7aef\u654f\u611f\u7684\u5de5\u696d\u81ea\u52d5\u5316\u6216\u7dda\u4e0a\u9ad8\u983b\u4ea4\u6613\uff0c\u5efa\u8b70\u958b\u6e90\u81ea\u5efa<\/td>\n<\/tr>\n<tr>\n<td><strong>\u7dad\u904b\u9580\u6abb\u8207\u5de5\u7a0b\u8ca0\u64d4<\/strong><\/td>\n<td>\u9700\u914d\u7f6e\u5c08\u696d MLOps \u4eba\u54e1\u8ca0\u8cac CUDA \u9a45\u52d5\u3001\u8ca0\u8f09\u5747\u8861\u3001\u6a21\u578b\u71b1\u66f4\u65b0\u8207\u5bb9\u932f\u5099\u63f4<\/td>\n<td>\u96f6\u7dad\u904b\u6210\u672c\uff0c\u53ea\u9700\u64b0\u5beb HTTP \u8acb\u6c42\uff0cAPI \u81ea\u52d5\u4eab\u6709\u524d\u6cbf\u6a21\u578b\u5347\u7d1a<\/td>\n<td>\u5718\u968a\u7f3a\u4e4f\u5e95\u5c64\u7cfb\u7d71\u5de5\u7a0b\u5e2b\uff0c\u6216\u8655\u65bc\u7522\u54c1\u521d\u671f\u63a2\u7d22\u9a57\u8b49\u968e\u6bb5\u6642\uff0c\u512a\u5148\u63a1\u8cfc\u5546\u7528 API<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p>\u82e5\u4f01\u696d\u7684\u696d\u52d9\u6027\u8cea\u5c6c\u65bc\u65e5\u5e38\u884c\u653f\u52a9\u7406\u3001\u901a\u8b58\u5beb\u4f5c\u6216\u591a\u6a21\u614b\u516c\u7528\u6587\u4ef6\u7406\u89e3\uff0c\u4e14\u8cc7\u6599\u6a5f\u5bc6\u6027\u5141\u8a31\u96f2\u7aef\u8655\u7406\uff0c\u5728\u6295\u5165\u786c\u9ad4\u8cc7\u6e90\u524d\uff0c\u5efa\u8b70\u5148\u53c3\u8003<a href=\"https:\/\/www.taichungbro.com\/2026\/08\/16\/gemini-claude-chatgpt-comparison\/\" style=\"color: #00c8d7; text-decoration: underline;\">\u5546\u7528\u9589\u6e90 AI \u5de5\u5177\u7684\u9078\u578b\u8207\u8cc7\u6599\u96b1\u79c1\u8003\u91cf<\/a>\uff0c\u8a55\u4f30\u516c\u6709\u96f2\u670d\u52d9\u5728\u4ea4\u4ed8\u901f\u5ea6\u8207\u521d\u671f\u6210\u672c\u4e0a\u7684\u7d9c\u5408\u512a\u52e2\u3002<\/p>\n<h2 id=\"open-source-standards-define-ai-infrastructure\">\u6a19\u6e96\u5316\u8207\u751f\u614b\u7db2\u8def\u6548\u61c9\uff0c\u624d\u662f AI \u6642\u4ee3\u6700\u6df1\u7684\u8b77\u57ce\u6cb3<\/h2>\n<p>\u56de\u5230\u958b\u982d\u7684\u6838\u5fc3\u554f\u984c\uff1a\u4e00\u5bb6\u4e0d\u64c1\u6709\u9802\u7d1a\u5c08\u5229\u786c\u9ad4\u3001\u4e0d\u58df\u65b7\u9589\u6e90\u9802\u7d1a\u6a21\u578b\u7684\u958b\u6e90\u793e\u7fa4\u5e73\u53f0\uff0c\u6191\u4ec0\u9ebc\u503c 130 \u5104\u7f8e\u5143\uff1f<\/p>\n<p>\u7d9c\u89c0\u8cc7\u8a0a\u79d1\u6280\u767c\u5c55\u53f2\uff0c\u6bcf\u4e00\u6ce2\u91cd\u5927\u8a08\u7b97\u6d6a\u6f6e\u4e2d\uff0c\u6700\u7d42\u5efa\u7acb\u6700\u5f37\u5927\u5546\u696d\u58c1\u58d8\u7684\uff0c\u5f80\u5f80\u4e0d\u662f\u55ae\u4e00\u660e\u661f\u61c9\u7528\uff0c\u800c\u662f<strong>\u300c\u5236\u5b9a\u8cc7\u6599\u4ea4\u63db\u683c\u5f0f\u8207\u57f7\u884c\u74b0\u5883\u6a19\u6e96\u300d\u7684\u57fa\u790e\u5354\u8b70<\/strong>\uff1a<\/p>\n<ul>\n<li>\u5728\u4f5c\u696d\u7cfb\u7d71\u9818\u57df\uff0cLinux \u8207 POSIX \u6a19\u6e96\u69cb\u5efa\u4e86\u5168\u7403\u4f3a\u670d\u5668\u7684\u57fa\u77f3\uff1b<\/li>\n<li>\u5728\u96f2\u7aef\u539f\u751f\u9818\u57df\uff0cDocker \u5bb9\u5668\u6620\u50cf\u6a94\u683c\u5f0f\u8207 Kubernetes \u5b9a\u7fa9\u4e86\u8edf\u9ad4\u5fae\u670d\u52d9\u7684\u4ea4\u4ed8\u898f\u7bc4\uff1b<\/li>\n<li>\u5728\u751f\u6210\u5f0f AI \u9818\u57df\uff0c<strong>Hugging Face \u7684 Hub\u3001Transformers\u3001Safetensors \u8207 PEFT\uff0c\u5df2\u7d93\u5be6\u8cea\u6210\u70ba\u5927\u8a9e\u8a00\u6a21\u578b\u8207\u591a\u6a21\u614b\u8cc7\u7522\u7684\u300c\u901a\u7528\u4ea4\u63db\u8a9e\u8a00\u300d<\/strong>\u3002<\/li>\n<\/ul>\n<p>\u7576\u5168\u7403\u8d85\u904e\u767e\u842c\u540d AI \u7814\u7a76\u8005\u767c\u8868\u524d\u6cbf\u6210\u679c\u6642\uff0c\u9810\u8a2d\u5c07 Safetensors \u4e0a\u50b3\u81f3 Hugging Face\uff1b\u7576\u6bcf\u4e00\u5bb6\u63a8\u8ad6\u5f15\u64ce\uff08vLLM\u3001Ollama\u3001TensorRT-LLM\uff09\u8207\u6676\u7247\u5927\u5ee0\u5728\u512a\u5316\u63a8\u8ad6\u6548\u7387\u6642\uff0c\u7b2c\u4e00\u512a\u5148\u8003\u91cf\u76f8\u5bb9 Hugging Face Model Card \u8207 Tokenizer \u898f\u7bc4\uff1b\u7576\u6bcf\u4e00\u5bb6\u4f01\u696d\u7684\u8cc7\u6599\u79d1\u5b78\u5bb6\u6253\u958b Jupyter Notebook \u6572\u4e0b\u7684\u7b2c\u4e00\u884c\u6307\u4ee4\u90fd\u662f <code>from_pretrained<\/code> \u6642\u2014\u2014\u9019\u7a2e\u6df1\u690d\u65bc\u958b\u767c\u8005\u76f4\u89ba\u7684\u5de5\u7a0b\u6a19\u6e96\u8207\u9f90\u5927\u7db2\u8def\u6548\u61c9\uff0c\u5c31\u662f\u7121\u6cd5\u88ab\u55ae\u4e00\u9589\u6e90\u6f14\u7b97\u6cd5\u8f15\u6613\u985b\u8986\u7684\u5e95\u5c64\u57fa\u790e\u8a2d\u65bd\u3002<\/p>\n<p>130 \u5104\u7f8e\u5143\u7684\u4f30\u503c\uff0c\u672c\u8cea\u4e0a\u8cb7\u4e0b\u7684\u4e0d\u662f\u6578\u767e\u842c\u884c Python \u7a0b\u5f0f\u78bc\uff0c\u800c\u662f\u5168\u7403 AI \u6642\u4ee3\u904b\u884c\u6700\u5e95\u5c64\u3001\u6700\u7121\u6cd5\u7e5e\u958b\u7684\u5de5\u7a0b\u7269\u6d41\u4e2d\u6a1e\u3002\\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hugging Face \u70ba\u4f55\u6210\u70ba AI \u57fa\u790e\u8a2d\u65bd\uff1f\u672c\u6587\u5f9e\u5de5\u7a0b\u67b6\u69cb\u62c6\u89e3\uff1a\u65e9\u671f Pickle \u6b0a\u91cd\u5b89\u5168\u98a8\u96aa\u8207\u683c\u5f0f\u6df7\u4e82\uff0c\u5230 Hub\u3001Transformers\u3001Safetensors \u7684\u6a19\u6e96\u5316\uff0c\u4ee5\u53ca\u4f01\u696d\u7528 TGI\u3001vLLM \u8207 PEFT \u672c\u5730\u90e8\u7f72\u63a8\u8ad6\u7684\u843d\u5730\u8def\u5f91\u3002<\/p>","protected":false},"author":5,"featured_media":3804,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[49],"tags":[593,601,598,596,600,603,595,594],"class_list":["post-3806","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-application","tag-hugging-face","tag-peft","tag-safetensors","tag-transformers","tag-vllm","tag-603","tag-595","tag-ai"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.taichungbro.com\/en\/wp-json\/wp\/v2\/posts\/3806","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.taichungbro.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.taichungbro.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.taichungbro.com\/en\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.taichungbro.com\/en\/wp-json\/wp\/v2\/comments?post=3806"}],"version-history":[{"count":0,"href":"https:\/\/www.taichungbro.com\/en\/wp-json\/wp\/v2\/posts\/3806\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.taichungbro.com\/en\/wp-json\/wp\/v2\/media\/3804"}],"wp:attachment":[{"href":"https:\/\/www.taichungbro.com\/en\/wp-json\/wp\/v2\/media?parent=3806"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.taichungbro.com\/en\/wp-json\/wp\/v2\/categories?post=3806"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.taichungbro.com\/en\/wp-json\/wp\/v2\/tags?post=3806"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}