本地大模型部署在工业场景的实践 ——用Ollama为Fab打造私有知识助手
本地大模型部署在工业场景的实践 ——用Ollama为Fab打造私有知识助手
我是老王,继续分享我们在Fab智能化落地过程中的实战经验。今天聊一个老板们特别关心的话题:数据安全与成本控制下的本地大模型部署。我们用Ollama给Fab打造了一套私有知识助手,跑了8个月,踩了无数坑,这里全部分享出来。不吹不黑,数据说话。
很多朋友问我:'老王,你们Fab上了AI系统,效果怎么样?'我的回答是:效果不错,但过程很痛苦。今天这篇文章,我想把痛苦的部分也分享出来,让后面做的朋友少走弯路。
一、问题背景:为什么Fab需要本地大模型?
1.1 云端方案的三个致命隐患
2023年我们试用了GPT-4 API做Fab知识问答,在POC阶段效果确实不错。但上线前做安全评估时,发现了三个无法绕过的风险:
数据合规风险:Fab的工艺参数、设备状态、良率数据是公司的核心资产,一旦上传到境外服务器,IP泄露风险无法完全规避。即使服务商承诺'不使用数据训练',也无法100%保证。在半导体行业,一个工艺参数的泄露可能就是几亿美元的损失,这口锅没人敢背
网络延迟:Fab内网环境下访问云API,平均延迟450-1200ms,高峰期还经常限流。在24小时倒班的生产线上,工程师等不耐烦。而且Fab车间经常有无线信号屏蔽,WiFi不稳定时体验更差
成本不可控:800名工程师每月产生约50万次问答,GPT-4的用量算下来月均成本超过8万元,一年就是近100万。这还没算API涨价风险——2023年GPT-4价格已经涨了3次,每次涨幅20%-30%
这三个问题加在一起,让我们下定决心做本地部署。目标很明确:在保证数据安全的前提下,把成本降下来,把响应速度提上去。
1.2 本地部署的三大挑战(现实的骨感)
本地部署听起来很美,但现实很骨感。我们评估时有三个主要顾虑:
硬件成本高:跑70B参数的模型需要多卡并行,一张A100 80GB显卡约15万元,8卡服务器轻松破百万。这笔投入不是所有Fab都能承受的
运维复杂度:模型更新、版本管理、故障恢复、GPU调度……这些对没有专职AI运维的团队来说是灾难。我们Fab的IT团队主要是做ERP和MES的,对AI运维完全没经验
效果差距:开源模型(Llama3、Mistral)在中文理解和专业领域的效果,与GPT-4仍有差距。不是差一点点,而是差10-15个百分点,需要大量调优才能弥补
经过3个月的选型测试,我们最终选定了Ollama + Llama3-70B的组合。下面说说为什么选这个,以及我们踩了哪些坑。
1.3 为什么是Ollama?
Ollama是一个开源的本地大模型运行平台,2023年发布后迅速成为个人和中小企业部署本地大模型的首选工具。我们的选择理由:
一行命令启动模型:ollama run llama3:70b,一个命令就把模型跑起来,不需要复杂的CUDA配置和Docker编排
自动GPU调度:Ollama自动管理VRAM,当服务器有多个GPU时自动负载均衡。我们的8×A100服务器上,Ollama自动将70B模型分配到6张卡,余下2张留给其他服务
API兼容OpenAI:只需改base_url,现有代码几乎不用改。原来用OpenAI SDK的代码,改一行就能切换到本地Ollama
模型仓库丰富:Llama3、Mistral、Qwen2、Phi3等主流开源模型,一个命令就能下载,不用自己找权重文件
活跃社区:GitHub Stars超过10万,持续更新,Bug修复快
二、技术原理:Ollama架构与工业场景深度适配
2.1 Ollama的核心运行机制
Ollama的架构设计可以用'简单但强大'来概括。核心组件有三个:
Modelfile(模型定义文件):每个模型有一个Modelfile,定义模型路径、参数配置(temperature、top_p、num_ctx等)、系统提示词(System Prompt)。我们为Fab场景定制了专用的Modelfile,包含半导体术语词典和回答风格要求(优先给出参数范围,不给模糊建议)
llama.cpp底层:Ollama底层使用llama.cpp进行推理优化,支持CPU+GPU混合推理,提供了INT4/INT8量化支持,能在更少显存下运行大模型
API Server:内置HTTP API Server,兼容OpenAI API格式,/v1/chat/completions、/v1/embeddings等端点全部支持。现有的LangChain、LlamaIndex、RAG框架可以直接对接
我们的部署架构:Ollama作为推理引擎,后端接LangChain做Agent编排,向量数据库用Milvus,前端用FastAPI包装成REST API,供Fab内部知识库前端调用。
2.2 为什么选Llama3-70B而不是8B?
我们对比了Llama3-8B和Llama3-70B在Fab场景的效果,差距超出预期:
中文理解:70B对长文档的上下文理解更准确。8B在超过512 token的对话中开始出现前后矛盾,有时会忘记用户3轮之前的问题
专业术语识别:70B对TEOS、STI、CMP、ECD等半导体专业术语的识别准确率约91%,8B只有73%。差的这18个百分点,在实际使用中感受非常明显
复杂推理:涉及多跳推理的问题(如'结合设备状态和工艺参数分析某批次良率下降原因'),70B的准确率比8B高18个百分点。8B在复杂推理场景下经常给出似是而非的答案
代价是70B需要约38.5GB显存(FP16精度),至少需要2×A100 80GB或4×RTX 4090(24GB×4)。我们用的是Dell PowerEdge R760 + 8×A100 80GB SXM5,配置比较豪华,中小型Fab可以考虑量化方案(见后文)。
2.3 为Fab定制的Modelfile(生产版本)
这是我们实际使用的Ollama Modelfile,实现了Fab领域深度适配。核心是系统提示词设计——用好这个文件,效果能提升10-15%:
三、实战案例:Ollama部署Fab设备手册问答全记录
3.1 硬件选型与服务器配置





