ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

基于Ollama大模型的本地化实施与优化

基于Ollama大模型的本地化实施与优化 x一、基于Ollama的本地大模型管理1.为何要搭建本地大模型数据隐私安全当使用云端的大模型服务时数据需要上传至云端服务器进行处理这可能会带来数据隐私泄露的风险搭建本地大模型数据仅在本地环境中流转和处理企业或个人可以更好地掌控数据的访问权限防止敏感信息泄露满足对数据隐私和安全有严格要求的场景如医疗、金融等行业。定制化与可控性不同的用户或企业可能有特定的业务需求和应用场景本地大模型允许用户根据自己的需求对模型进行定制训练。例如企业可以使用自己的业务数据对模型进行微调使其更适应特定的业务任务如特定领域的知识问答、文本生成等。同时用户可以完全控制模型的版本、参数设置和更新策略根据实际需求进行灵活调整。更低的运行成本对于一些需要频繁使用大模型的场景使用云端大模型服务可能会产生较高的费用特别是在处理大规模数据或高并发请求时。搭建本地大模型虽然初期可能需要投入一定的硬件和软件成本但从长期来看如果使用量较大本地部署可以降低每次调用的成本具有更好的成本效益。高效的响应速度在云端使用大模型时数据的上传和下载会存在一定的网络延迟尤其是在网络不稳定的情况下可能会影响模型的响应速度而本地大模型由于数据和计算都在本地进行无需依赖网络传输能够实现快速的响应适用于对实时性要求较高的应用如实时对话系统、工业控制中的实时决策等。断网可用本地大模型在搭建完成后即使处于断网环境也能正常运行。这对于一些特殊场景非常重要如偏远地区的野外作业、军事行动等在没有网络连接的情况下依然可以利用本地大模型进行数据处理和分析。研究和学习需求对于研究人员和开发者来说搭建本地大模型可以深入了解模型的内部机制和运行原理便于进行模型的优化和创新研究。通过在本地环境中对模型进行实验和调试可以更好地探索新的算法和技术推动人工智能技术的发展。2.什么是OllamaOllama 是一个致力于简化和优化机器学习模型使用的开源平台。它的目标是让开发者和数据科学家能够更轻松地使用和部署大型语言模型LLM并提供了一系列工具和框架以支持模型的加载、管理和运行。3.Ollama的功能特点简化模型管理Ollama 提供了一个简单的命令行界面允许用户快速下载和运行各种预训练的语言模型。用户可以通过简单的命令来管理模型的版本和配置。本地运行Ollama 支持在本地计算机上运行模型避免了将数据上传到云端的需求。这对于保护隐私和数据安全尤为重要。支持多种模型Ollama 可以支持多种不同的模型架构和框架包括 OpenAI 的 GPT 系列、Google 的 BERT 等。用户可以根据需求选择适合的模型。易于集成Ollama 的设计使其易于与现有的开发工具和工作流程集成。它可以与 Python、JavaScript 等编程语言一起使用方便开发者将其嵌入到应用程序中。社区支持作为一个开源项目Ollama 拥有活跃的社区支持用户可以参与开发、报告问题和贡献代码。灵活性和扩展性Ollama 提供了灵活的 API 接口用户可以根据特定需求进行扩展和定制。4.Ollama的应用场景广泛包括但不限于聊天机器人利用Ollama部署的LLM可以构建智能聊天机器人为用户提供自然流畅的对话体验。文本生成Ollama可以生成各种文本内容如新闻文章、博客文章、诗歌等满足内容创作的需求。问答系统构建基于LLM的问答系统快速准确地回答用户的问题。代码生成生成代码片段如Python、JavaScript等辅助软件开发和测试工作。二、ollama的部署Ollama官网Ollama1.部署Ollama到Linux系统[rootollama ~]# mkdir ollama [rootollama ~]# cd ollama/ [rootollama ollama]# wget https://ollama.com/install.sh [rootollama ollama]# dnf install zstd [rootollama ollama]# sh install.sh2.Ollama的调试与使用方法ollama中的变量大全OLLAMA_DEBUG #是否开启调试模式默认为 false。 OLLAMA_FLASH_ATTENTION #是否闪烁注意力默认为 true。 OLLAMA_HOST #Ollama 服务器的主机地址默认为空。 OLLAMA_KEEP_ALIVE #保持连接的时间默认为 5m。 OLLAMA_LLM_LIBRARY #LLM 库默认为空。 OLLAMA_MAX_LOADED_MODELS #最大加载模型数默认为 1。 OLLAMA_MAX_QUEUE #最大队列数默认为空。 OLLAMA_MAX_VRAM #最大虚拟内存默认为空。 OLLAMA_MODELS #模型目录默认为空。 OLLAMA_NOHISTORY #是否保存历史记录默认为 false。 OLLAMA_NOPRUNE #是否启用剪枝默认为 false。 OLLAMA_NUM_PARALLE #并行数默认为 1。 OLLAMA_ORIGINS #允许的来源默认为空。 OLLAMA_RUNNERS_DIR #运行器目录默认为空。 OLLAMA_SCHED_SPREAD #调度分布默认为空。 OLLAMA_TMPDIR #临时文件目录默认为空Here is the optimized list in the desired format: OLLAMA_DEBUG #是否开启调试模式默认为 false。 OLLAMA_FLASH_ATTENTION #是否闪烁注意力默认为 true。 OLLAMA_HOST #Ollama 服务器的主机地址默认为空。 OLLAMA_KEEP_ALIVE #保持连接的时间默认为 5m。 OLLAMA_LLM_LIBRARY #LLM 库默认为空。 OLLAMA_MAX_LOADED_MODELS #最大加载模型数默认为 1。 OLLAMA_MAX_QUEUE #最大队列数默认为空。 OLLAMA_MAX_VRAM #最大虚拟内存默认为空。 OLLAMA_MODELS #模型目录默认为空。 OLLAMA_NOHISTORY #是否保存历史记录默认为 false。 OLLAMA_NOPRUNE #是否启用剪枝默认为 false。 OLLAMA_NUM_PARALLEL #并行数默认为 1。 OLLAMA_ORIGINS #允许的来源默认为空。 OLLAMA_RUNNERS_DIR #运行器目录默认为空。 OLLAMA_SCHED_SPREAD #调度分布默认为空。设定环境变量[rootollama ollama]# vim /etc/systemd/system/ollama.service [Unit] DescriptionOllama Service Afternetwork-online.target [Service] ExecStart/usr/local/bin/ollama serve Userollama Groupollama Restartalways RestartSec3 EnvironmentPATH/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin EnvironmentOLLAMA_HOST0.0.0.0 #外网访问 EnvironmentOLLAMA_ORIGINS* #允许的来源 [Install] WantedBydefault.target [rootollama ollama]# systemctl daemon-reload [rootollama ollama]# systemctl restart ollama.serviceOllama常见指令ollama serve #启动ollama ollama create #从模型文件创建模型 ollama show #显示模型信息 ollama run #运行模型 ollama pull #从注册表中拉取模型 ollama push #将模型推送到注册表 ollama list #列出模型 ollama cp #复制模型 ollama rm #删除模型 ollama help #获取有关任何命令的帮助信息3.Ollama中模型的管理安装模型安装完毕Ollama后默认是没有本地大模型的。可以通过Ollama pull 来下载模型到本地[rootollama ollama]# ollama serve [rootollama ollama]# ollama pull qwen:7b#模型名称通常为模型:参数数量qwen:7b 表示qwen模型的7b版本。7b就是10亿个参数运行模型[rootollama ollama]# ollama run qwen:7b 什么是docker Docker是一种开源的容器化平台它通过使用轻量级的镜像Image来打包应用程序及其依赖环境使其可以在任何具备 Docker 容器环境的系统上运行。 Docker 提供了一种标准化的开发和部署流程使得跨平台和团队协作变得更加简单和高效。 /bye #退出模型复制模型[rootollama ollama]# ollama cp qwen:7b my-qwen:7b copied qwen:7b to my-qwen:7b [rootollama ollama]# ollama list NAME ID SIZE MODIFIED my-qwen:7b 2091ee8c8d8f 4.5 GB 13 seconds ago qwen:7b 2091ee8c8d8f 4.5 GB 9 minutes ago导出现有模型#查看模型位置 [rootollama ollama]# ollama show --modelfile qwen:7b|grep FROM FROM /root/.ollama/models/blobs/sha256-87f26aae09c7f052de93ff98a2282f05822cc6de4af1a2a159c5bd1acbd10ec4 [rootollama ollama]# cp ~/.ollama/models/blobs/sha256-87f26aae09c7f052de93ff98a2282f05822cc6de4af1a2a159c5bd1acbd10ec4 /mnt/qwen_7b.guuf [rootollama ollama]# ls /mnt/ hgfs qwen_7b.guuf [rootollama ollama]# du -sh /mnt/qwen_7b.guuf 4.3G /mnt/qwen_7b.guuf利用GUUF文件加载模型[rootollama ollama]# vim myqwen\:7b FROM /mnt/qwen_7b.guuf [rootollama ollama]# ollama create test-qwen:7b -f myqwen\:7b [rootollama ollama]# ollama listhuggingface模型镜像站最新版Ollama开始支持从Huggingface Hub上直接拉取各种模型包括社区创建的GGUF量化模型国内可用镜像站地址HF-Mirrorollama run hf.co/{username}/{repository} #要选择不同的量化方案只需在命令中添加一个标签 ollama run hf.co/{username}/{repository}:{quantization} #例如量化名称不区分大小写 ollama run hf.co/bartowski/Llama-3.2-3B-Instruct-GGUF:IQ3_M ollama run hf.co/bartowski/Llama-3.2-3B-Instruct-GGUF:Q8_0 #还可以直接使用完整的文件名作为标签 ollama run hf.co/bartowski/Llama-3.2-3B-Instruct-GGUF:Llama-3.2-3B-Instruct-IQ3_M.ggufOllama的卸载方法Ollama通常不是用rpm的方式进行安装的所以卸载过程中只需要吧相关文件删除即可]# systemctl stop ollama.service ]# systemctl disable ollama.service ]# rm -fr /etc/systemd/system/ollama.service ]# rm -fr /usr/local/bin/ollama ]# rm -fr /usr/share/ollama/ ]# userdel -r ollama ]# groupdel ollama五.本地知识库简介1.本地知识库的必要性在日益激烈的商业竞争中知识与信息的管理愈发变得重要。知识管理不再只是企业内部的事而在开源和协作的互联网时代它已经成为了企业可持续性发展的关键因素之一。那么为什么企业需要搭建本地知识库呢接下来我们一起探讨其背后的原因。开启知识共享提升效率企业内部往往存在各种各样的知识资源比如客户信息、项目管理、产品发布等。这些知识如果没有得到充分的共享和传递就会形成所谓的“信息孤岛”对企业内部沟通造成阻碍甚至妨碍了企业的发展。而建立了本地知识库就能够打通信息流通的渠道让知识信息得以在企业内部自由流动从而提高工作效率。知识积累构建企业核心竞争力每一个企业在其成长历程中都会积累着大量的知识资源比如研发经验、市场策略、管理方法等。这些知识资源的积累会形成企业的核心竞争力它是没有办法被模仿和替代的。这就需要企业建立本地知识库对这些资源进行集中存储和管理使得随着时间的推移企业的核心竞争力可以得到逐步积累和提升。强化信息保密保障企业安全虽然互联网的发展让信息共享变得更加便捷但是也给企业的信息安全带来了威胁。尤其在一个企业内部一些重要信息如果没有得到良好的管理和保护可能就会遭到泄露和滥用。因此建立本地知识库不能只是看中其知识共享的功能更应该注重其在信息保密方面的作用。对于敏感信息企业应当实行严格的访问权限控制保证只有被授权的人才能够访问。保证业务连续性确保数据备份如果企业的知识库只存储在网络上那么一旦网络出现故障或者服务器宕机会给企业的运营带来极大的困扰。而在本地搭建知识库就可以保证在出现此类情况时企业依然可以访问到核心信息。同时本地知识库为数据备份提供了一个便捷的方案使得企业能够应对可能的数据丢失情况。2.本地知识库的构建须知制定明确的策略首先你需要制定一个明确的策略要知道你要收集哪些信息如何收集如何分类和更新。这样才能确保知识库的有效性和实用性。选择合适的知识库软件在开发团队的精力有限的情况下选择合适的知识库软件是成功建立知识库的关键一步。完全定制的知识库软件灵活度高但成本和周期过重而开源知识库软件则以较低成本提供了高度开放的选择推荐使用如MaxKB这类开源知识库。六、利用MaxKB构建本地知识库1.MaxKB简介MaxKBMax Knowledge Base是一款基于大语言模型和 RAG 的开源知识库问答系统广泛应用于智能客服、企业内部知识库、学术研究与教育等场景官网MaxKB - 强大易用的企业级智能体平台功能特色开箱即用支持直接上传文档、自动爬取在线文档支持文本自动拆分、向量化智能问答交互体验好。无缝嵌入支持零编码快速嵌入到第三方业务系统让已有系统快速拥有智能问答能力。模型中立支持对接各种大语言模型包括本地私有大模型Llama 3 / Qwen 2 等、国内公共大模型通义千问 / 腾讯混元 / 字节豆包 / 智谱 AI / 百度千帆 / Kimi / DeepSeek 等和国外公共大模型OpenAI /Gemini 等。灵活编排内置工作流引擎和函数库支持编排 AI 工作过程满足复杂业务场景下的需求MaxKB实现原理2.部署MaxKBMaxKB需要在Docker中运行因此需要安装docker[rootollama ~]# cat /etc/yum.repos.d/docker.repo EOF [docker-ce] namedocker baseurlhttps://mirrors.aliyun.com/docker-ce/linux/rhel/9/x86_64/stable gpgcheck0 EOF [rootollama ~]# dnf install docker -y #下载MaxKB运行镜像 [rootollama ~]# docker pull registry.fit2cloud.com/maxkb/maxkb #建立持久目录 [rootollama ~]# mkdir /MaxKB/postgresql/data /MaxKB/python-packages -p #运行maxkb [rootollama ~]# docker run -d --namemaxkb --restartalways -p 4444:8080 -v /MaxKB/postgresql/data:/var/lib/postgresql/data -v /MaxKB/python-packages:/opt/maxkb/app/sandbox/python-packages registry.fit2cloud.com/maxkb/maxkb:latest3.MaxKB的配置与调试MaxKB 的使用操作流程一般可分为四步添加模型、创建知识库、创建应用、发布应用。 在高级编排应用中还可以通过函数库的功能实现数据处理、逻辑判断、信息提取等功能提供更加强大、灵活的能力本地模型管理MaxKB支持在线大模型和本地大模型用ollama管理的大模型可以直接在MaxKB中添加应用添加步骤如下首页找到添加模型选择ollama创建智能体新创建的高级编排应用会默认生成简易工作流可以根据自己的需求进行自定义编排点击发布后生效。注意画布上的节点必须在工作流程中不能有流程外的孤立节点否则在发布时会校验失败。每个节点可以根据节点的用途进行重命名双击节点名称即可重命名但同一个工作流编排中节点名称不能重复。连线的后置节点可以引用前置节点的输出参数如果节点名称变更需要重新复制变量参数引用方式是{{节点名称.变量名称}}。构建本地知识库企业私有的专业知识库包含各种类型的数据是问答对话中回答用户问题的知识来源。MaxKB 中知识库分为通用型知识库和 Web 站点知识库两种类型。通用型知识库对离线文档上传管理支持的文本文件、表格以及 QA 问答对。Web 站点知识库用于获取在线静态文本数据管理输入 Web 根地址后自动同步根地址及子级地址的文本数据。MaxKB 支持知识库创建、重新向量化、设置、同步、导出、删除等功能。上传文档智能分段并导入七、利用Ollama和MaxKB构建企业内部知识库构建本地知识库的意义在于通过日常积累可以把所有人的智慧、经验、问题、解决方案收集到知识库中其他同事可以通过本地AI来快速学习公司需要的内容、经验、当工作中出现技术问题时也可以通过知识库来快速学习、确保在需要技术指导的时候能够快速得到企业对应的内容、节省企业对于新人的培养开销、真正让AI作为新人的24小时指导老师大家在学习过程中会遇到实验报错的情况我们可以把大家遇到的所有问题构建成知识库并在本地持久化当其他同学在遇到此类问题时我们可以通过知识库来快速定位问题点并给出合理的解决方案1.知识库生成问题2.智能体设置3.测试
返回列表