大模型私有部署
大模型私有化部署私有大模型为什么要有私有大模型随着AI技术的不断普及人们也积极拥抱其带来的变化在生活或者工作中亦使用AI技术来帮助我们更高效的完成某些事件但是在这个过程中也暴露出AI技术当前下存在在的系列问题其中最严重的就是安全问题比如最典型的是三星员工使用ChatGPT泄露公司机密的案例。其实上述案例表现的就是企业数据隐私与安全的问题在许多行业如金融、医疗、政府等数据隐私和安全是至关重要的。使用公共大模型可能涉及敏感数据的泄露风险因为公共模型在训练过程中可能接触到了来自不同来源的敏感数据。因此就有了私有大模型的市场需求私有大模型允许企业或机构在自己的数据上训练模型而且训练的结果只供内部或合作伙伴使用从而确保了数据隐私和安全。当然除了数据隐私问题原因之外还存有便于内部员工工作提效、大模型开发的投入等诸多原因综合直接推动私有大模型成为未来AI发展的新方向之一。私有大模型解决方案随着AI的发展越来越多的开发者投入到大模型开发中他们期望能自身笔记本上运行大模型以便开发。越来越多的企业积极改造自身产品融入AI技术他们期望能私有化大模型以保证数据安全。这些诉求直接推动社区出现了两个这方面的产品Ollama和LMstudio。这两个产品各有优势OllamaLM Studio产品定位开源的大型语言模型本地运行框架闭源的本地大型语言模型工作站集模型训练、部署、调试于一体技术特点- 高度智能化自主学习和适应能力强 - 便捷性高操作简单易懂 - 安全性强数据传输和存储严格保护- 高性能采用先进计算架构和算法优化 - 可定制化支持用户定制模型结构和训练策略 - 易用性友好的用户界面和丰富的文档支持功能- 提供预训练模型访问和微调功能 - 支持多种模型架构和定制模型 - 用户友好界面简化模型实验和部署过程- 丰富的训练数据和算法库 - 可视化训练监控界面 - 强大的调试工具支持模型性能优化应用场景- 学术研究 - 开发者原型设计和实验 - 创意写作、文本生成等- 智能客服 - 自然语言处理如文本分类、情感分析、机器翻译 - 学术研究用户友好性- 界面化操作适合不同水平的用户 - 支持多种设备和平台- 友好的用户界面适合初学者和非技术人员 - 提供全面的工具组合易于上手定制性- 提供一定程度的定制选项但可能有限制- 高度可定制化满足用户个性化需求资源要求- 需要一定的内存或显存资源来运行大型模型 - 支持跨平台macOS、LinuxWindows预览版- 构建和训练复杂模型可能需要大量计算资源和专业技能成本- 成本可能根据使用量和资源需求变化 - 开源项目可能涉及较少的直接成本- 闭源产品成本可能包括软件许可和可能的云服务费用社区生态- 社区生态活跃开发者主流本地运行时 - 快速适配新发布的模型- 未知未提及具体社区生态活跃度Ollama 作为一个开源的轻量级工具适合熟悉命令行界面的开发人员和高级用户进行模型实验和微调。它提供了广泛的预训练模型和灵活的定制选项同时保持了高度的便捷性和安全性。最重要它是开源的同时还提供API对于开发有先天优势因此在企业中备受欢迎和使用因此本课程也才主要学习Ollama技术。Ollama 入门什么是Ollama?Ollama提供了一个轻量级、易于扩展的框架让开发者能够在本地机器上轻松构建和管理LLMs大型语言模型。通过Ollama开发者可以访问和运行一系列预构建的模型或者导入和定制自己的模型无需关注复杂的底层实现细节。Ollama的主要功能包括快速部署和运行各种大语言模型如Llama 2、Code Llama等。它还支持从GGUF、PyTorch或Safetensors格式导入自定义模型并提供了丰富的API和CLI命令行工具方便开发者进行高级定制和应用开发。特点一站式管理Ollama将模型权重、配置和数据捆绑到一个包中定义成Modelfile从而优化了设置和配置细节包括GPU使用情况。这种封装方式使得用户无需关注底层实现细节即可快速部署和运行复杂的大语言模型。热加载模型文件支持热加载模型文件无需重新启动即可切换不同的模型这不仅提高了灵活性还显著增强了用户体验。丰富的模型库提供多种预构建的模型如Llama 2、Llama 3、通义千问等方便用户快速在本地运行大型语言模型。多平台支持支持多种操作系统包括Mac、Windows和Linux确保了广泛的可用性和灵活性。无复杂依赖通过优化推理代码并减少不必要的依赖Ollama能够在各种硬件上高效运行包括纯CPU推理和Apple Silicon架构。资源占用少Ollama的代码简洁明了运行时占用资源少使其能够在本地高效运行不需要大量的计算资源。下载与安装手动安装windowhttps://ollama.com/download/OllamaSetup.exemachttps://ollama.com/download/Ollama-darwin.ziplinuxcurl -fsSL https://ollama.com/install.sh | shwindow和mac版本直接下载安装或解压即可使用。这里由于Ollama需要安装在linux中因此在这里主要学习如何在Linux上安装在虚拟机/root/resource目录中已经下载好Linux版本所需的ollama-linux-amd64.tgz文件则执行下面命令开始安装tar-C/usr-xzfollama-linux-amd64.tgz操作成功之后可以通过查看版本指令来验证是否安装成功[rootbogon resource]# ollama -vWarning: could not connect to a running Ollama instance Warning: client version is0.3.9创建服务文件/etc/systemd/system/ollama.service并写入文件内容[Unit]DescriptionOllama ServiceAfternetwork-online.target[Service]ExecStart/usr/bin/ollama serveUserrootGrouprootRestartalwaysRestartSec3[Install]WantedBydefault.target生效服务sudosystemctl daemon-reloadsudosystemctlenableollama启动服务sudosystemctl start ollama一键安装Ollama在Linux上也提供了简便的安装命令但是过程中需要下载400M左右的数据比较慢因此课堂上采用第一种方式安装但在工作中一般采用下面命令进行安装curl-fsSLhttps://ollama.com/install.sh|shDocker安装当前虚拟机所使用方式运行容器CPUdockerrun-d-p11434:11434--nameollama-eOLLAMA_ORIGINS*--restartalways ollama/ollama进入容器内部操作ollamadockerexec-itollamabash运行大模型首次运行在终端输入一下命令即可运行通义千问大模型 ollama run qwen2:0.5b[rootbogon resource]# ollama run qwen2:0.5bpulling manifest pulling 8de95da68dc4...100% ▕█████████████████████████████████████████████████████████████████████████████████▏352MB pulling 62fbfd9ed093...100% ▕█████████████████████████████████████████████████████████████████████████████████▏182B pulling c156170b718e...100% ▕█████████████████████████████████████████████████████████████████████████████████▏11KB pulling f02dd72bb242...100% ▕█████████████████████████████████████████████████████████████████████████████████▏59B pulling 2184ab82477b...100% ▕█████████████████████████████████████████████████████████████████████████████████▏488B verifying sha256 digest writing manifest removing any unused layers success您好 你好有什么可以帮助你的你是什么大模型 我是来自于阿里云的预训练模型我叫通义千问。我可以回答您关于计算机科学、机器学习等领域的各种问题也可以进行自然语言处理、聊天机器人、智能问答等任务。我的设计目的是让计算机能够像人类一样思考和解决问题。命令解释ollama run 模型名称:模型规模对话指令详解在Ollama终端中提供了一系列指令可以用来调整和控制对话模型/? 指令[rootbogon ~]# ollama run qwen2:0.5b /? Available Commands: /set Set session variables /show Show model information /load model Load a session or model /save model Save your current session /clear Clear session context /bye Exit /?, /help Help for a command /? shortcuts Help for keyboard shortcuts Use to begin a multi-line message./bye 指令[rootbogon ~]# ollama run qwen2:0.5b您好 你好有什么可以帮助您的吗/bye[rootbogon ~]#/show 指令[rootbogon ~]# ollama run qwen2:0.5b/show Available Commands: /show info 查看模型的基本信息 /show license 查看模型的许可信息 /show modelfile 查看模型的制作源文件Modelfile /show parameters 查看模型的内置参数信息 /show system 查看模型的内置Sytem信息 /show template 查看模型的提示词模版/show info Model details: Family qwen2 模型名称 Parameter Size494.03M 模型大小 Quantization Level Q4_0 模型量化级别/show license Apache License Version2.0, January2004http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION............................................................/show modelfile# Modelfile generated by ollama show# To build a new Modelfile based on this, replace FROM with:# FROM qwen2:0.5bFROM /root/ollama/blobs/sha256-8de95da68dc485c0889c205384c24642f83ca18d089559c977ffc6a3972a71a8 TEMPLATE{{ if .System }}|im_start|system {{ .System }}|im_end| {{ end }}{{ if .Prompt }}|im_start|user {{ .Prompt }}|im_end| {{ end }}|im_start|assistant {{ .Response }}|im_end| PARAMETER stop|im_start|PARAMETER stop|im_end|LICENSE....................................................................../show parameters Model defined parameters: stop|im_start|stop|im_end|/show system No system message was specifiedforthis model./show template{{if.System}}|im_start|system{{.System}}|im_end|{{end}}{{if.Prompt}}|im_start|user{{.Prompt}}|im_end|{{end}}|im_start|assistant{{.Response}}|im_end|/? shortcuts 指令 /? shortcuts Available keyboard shortcuts: Ctrl a 移动到行头 Ctrl e 移动到行尾 Alt b 移动到单词左边 Alt f 移动到单词右边 Ctrl k 删除游标后面的内容 Ctrl u 删除游标前面的内容 Ctrl w 删除游标前面的单词 Ctrl l 清屏 Ctrl c 停止推理输出 Ctrl d 退出对话只有在没有输入时才生效“” 指令... 您好... 你是什么模型... 我是一个计算机程序可以回答您的问题、提供信息和执行任务。请问您有什么问题或者指令想要我帮助您/set 指令 /set Available Commands: /set parameter ... 设置对话参数 /set system string 设置系统角色 /set template string 设置推理模版 /set history 开启对话历史 /set nohistory 关闭对话历史 /set wordwrap 开启自动换行 /set nowordwrap 关闭自动换行 /set format json 输出JSON格式 /set noformat 关闭格式输出 /set verbose 开启对话统计日志 /set quiet 关闭对话统计日志 /set parameter Available Parameters: /set parameter seed int Random number seed /set parameter num_predict int Max number of tokens to predict /set parameter top_k int Pick from top k num of tokens /set parameter top_p float Pick token based on sum of probabilities /set parameter num_ctx int Set the context size /set parameter temperature float Set creativity level /set parameter repeat_penalty float How strongly to penalize repetitions /set parameter repeat_last_n int Set how far back to look for repetitions /set parameter num_gpu int The number of layers to send to the GPU /set parameter stop string string ... Set the stop parametersParameterDescriptionValue TypeExample Usagenum_ctx设置上下文token大小. (默认: 2048)intnum_ctx 4096repeat_last_n设置模型要回顾的距离以防止重复. (默认: 64, 0 禁用, -1 num_ctx)intrepeat_last_n 64repeat_penalty设置惩罚重复的强度。较高的值例如1.5)将更强烈地惩罚重复而较低值例如0.9)会更加宽容。默认值1.1floatrepeat_penalty 1.1temperature模型的温度。提高温度将使模型的答案更有创造性。默认值0.8floattemperature 0.7seed设置用于生成的随机数种子。将其设置为特定的数字将使模型为相同的提示生成相同的文本。默认值0intseed 42stop设置停止词。当遇到这种词时LLM将停止生成文本并返回stringstop “AI assistant:”num_predict生成文本时要预测的最大标记数。默认值128-1 无限生成-2 填充上下文intnum_predict 42top_k减少产生无意义的可能性。较高的值例如100将给出更多样化的答案而较低的值例如10将更加保守。默认值40inttop_k 40top_p与Top-K合作。较高的值例如0.95将导致更多样化的文本而较低的值例如0.5)将产生更集中和保守的文本。默认值0.9floattop_p 0.9num_gpu设置缓存到GPU显存中的模型层数int自动计算JSON格式输出/setformatjson Setformattojsonmode.您好{response:你好欢迎光临请问有什么我可以帮助您的吗}/set noformat Disabled format.您好 Hello!How can I assist you?输出对话统计日志/set verbose Setverbosemode.您好 您好我需要您的信息以便回答您的问题。请问您能告诉我更多关于这个主题的信息吗 total duration:1.642906162s 总耗时 load duration:3.401367ms 加载模型数据耗时 promptevalcount:11token(s)提示词token消耗数量 promptevalduration:196.52ms 提示词处理耗时 promptevalrate:55.97tokens/s 提示词处理速率evalcount:24token(s)响应token消耗数量evalduration:1.304188s 响应处理耗时evalrate:18.40tokens/s 响应处理速率/clear 指令在命令行终端中对话是自带上下文记忆功能如果要清除上下文功能则使用/clear指令清楚上下文内容例如前2个问题都关联的在输入/clear则把前2个问题的内容给清理掉了第3次提问时则找不到开始的上下文了。 请帮我出1道java list的单选题 以下是一些关于Java List的单选题 1. 在Java中List是哪一种数据结构 2. Java中的顺序存储方式例如使用数组主要用来做什么 3. 一个列表对象可以包含哪些类型的元素 再出1道 以下是一些关于Java List的单选题 4. 在Java中List接口用于创建和操作集合。 5. Java中的顺序存储方式如使用数组的主要优势有哪些 6. 一个列表对象可以包含哪些类型 /clear Cleared session context 在出1道 很抱歉我无法理解您的问题。您能否提供更多的背景信息或者问题描述以便我能更好地帮助您/load 指令你是什么大模型 我是一个基于开放AI平台的模型拥有一个强大的数学推理能力并且在各种自然语言处理任务上都表现优秀。我可以回答您提出的问题也可以提供与主题相关的信息和建议。如果您有任何问题或需要帮助 请随时告诉我/load deepseek-coder Loading modeldeepseek-coder你是什么大模型 我是由中国的深度求索DeepSeek公司开发的编程智能助手名为 Deepseek Coder。我主要用于解答和协助计算机科学相关的问题、问题解决方案等任务。我的设计目标是提供最全面准确的高质量服务来帮 助用户理解复杂的新技术或概念并迅速找到它们在实际应用中的实现方法或者原理所在的地方。/save 指令/savetestCreated new modeltest保存的模型存储在ollama的model文件中进入下面路径即可看见模型文件test[rootbogon library]# pwd/root/.ollama/models/manifests/registry.ollama.ai/library[rootbogon library]# lsdeepseek-coder qwen2test客户端命令详解Ollama客户端还提供了系列命令来管理本地大模型接下来就先了解一下相关命令run 命令ollama run MODEL[:Version][PROMPT][flags]比如运行通义千问命令 ollama run qwen2:0.5bollama run qwen2 等同 ollama run qwen2:latest[rootbogon ~]# ollama run qwen2:0.5b 您好您好有什么问题我可以帮助您[rootbogon ~]#Flags:--formatstring 指定运行的模型输出格式(比如. json)--insecure使用非安全模比如在下载模型时会忽略https的安全证书--keepalivestring 指定模型在内存中的存活时间--nowordwrap关闭单词自动换行功能--verbose开启统计日志信息例如在启动时增加 --verbose参数则在对话时自动增加统计token信息[rootbogon ~]# ollama run qwen2:0.5b --verbose您好 欢迎光临我可以为您提供帮助。有什么问题或需要帮助的地方 total duration:1.229917477s load duration:3.027073ms promptevalcount:10token(s)promptevalduration:167.181ms promptevalrate:59.82tokens/sevalcount:16token(s)evalduration:928.995msevalrate:17.22tokens/sshow 命令[rootbogon ~]# ollama show -hShow informationfora model Usage: ollama show MODEL[flags]Flags: -h,--help查看使用帮助--license查看模型的许可信息--modelfile查看模型的制作源文件Modelfile--parameters查看模型的内置参数信息--system查看模型的内置Sytem信息--template查看模型的提示词模版例如查看提示词模版[rootbogon ~]# ollama show qwen2 --template{{if.System}}|im_start|system{{.System}}|im_end|{{end}}{{if.Prompt}}|im_start|user{{.Prompt}}|im_end|{{end}}|im_start|assistant{{.Response}}|im_end|pull 命令查询模型名称的网站https://ollama.com/ollama pull MODEL[:Version] [flags]ollama pull qwen2 等同 ollama pull qwen2:latestollama pull qwen2--insecurelist/ls 命令[rootbogon ~]# ollama listNAME ID SIZE MODIFIED qwen2:latest e0d4e1163c584.4GB10minutes ago deepseek-coder:latest 3ddd2d3fc8d2776MB3hours ago qwen2:0.5b 6f48b936a09f352MB8hours ago[rootbogon ~]# ollama lsNAME ID SIZE MODIFIED qwen2:latest e0d4e1163c584.4GB10minutes ago deepseek-coder:latest 3ddd2d3fc8d2776MB3hours ago qwen2:0.5b 6f48b936a09f352MB8hours ago列表字段说明NAME名称ID大模型唯一IDSIZE大模型大小MODIFIED本地存活时间注意在ollama的其它命令中不能像docker一下使用ID或ID缩写这里只能使用大模型全名称。ps 命令[rootbogon ~]# ollama ps NAME ID SIZE PROCESSOR UNTIL deepseek-coder:latest 3ddd2d3fc8d2 1.3 GB 100% CPU About a minute from now列表字段说明NAME大模型名称ID唯一IDSIZE模型大小PROCESSOR资源占用UNTIL运行存活时长rm 命令[rootlocalhost system]# ollama lsNAME ID SIZE MODIFIED qwen2:latest e0d4e1163c584.4GB16hours ago deepseek-coder:latest 3ddd2d3fc8d2776MB19hours ago qwen2:0.5b 6f48b936a09f352MB24hours ago[rootlocalhost system]# ollama rm qwen2:0.5bdeletedqwen2:0.5b[rootlocalhost system]# ollama lsNAME ID SIZE MODIFIED qwen2:latest e0d4e1163c584.4GB16hours ago deepseek-coder:latest 3ddd2d3fc8d2776MB19hours ago[rootlocalhost system]#
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2542211.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!