
写在前面有小伙伴问如果我想在本地搞个大模型玩玩有什么解决方案Ollama它来了专为在本地机器便捷部署和运行大模型而设计。也许是目前最便捷的大模型部署和运行工具配合Open WebUI人人都可以拥有大模型自由。今天就带着大家实操一番从 0 到 1 玩转 Ollama。1. 部署1.1 Mac Windows相对简单根据你电脑的不同操作系统下载对应的客户端软件并安装macOShttps://ollama.com/download/Ollama-darwin.zipWindowshttps://ollama.com/download/OllamaSetup.exe1.2 Linux推荐大家使用 Linux 服务器进行部署毕竟大模型的对机器配置还是有一定要求。裸机部署step 1: 下载 安装命令行一键下载和安装curl-fsSL https://ollama.com/install.sh|sh如果没有报错它会提示你 ollama 的默认配置文件地址Created symlink/etc/systemd/system/default.target.wants/ollama.service →/etc/systemd/system/ollama.service.接下来我们采用如下命令查看下服务状态 running 就没问题了systemctl status ollama查看是否安装成功出现版本号说明安装成功ollama-vstep 2: 服务启动浏览器中打开http://your_ip:11434/如果出现Ollama is running说明服务已经成功运行。step 3: 修改配置可选如果有个性化需求需要修改默认配置配置文件在/etc/systemd/system/ollama.service采用任意编辑器打开推荐vim默认只能本地访问如果需要局域网内其他机器也能访问比如嵌入式设别要访问本地电脑需要对 HOST 进行配置开启监听任何来源IP[Service]EnvironmentOLLAMA_HOST0.0.0.0如果需要更改模型存放位置方便管理需要对 OLLAMA_MODELS 进行配置[Service]EnvironmentOLLAMA_MODELS/data/ollama/models不同操作系统模型默认存放在macOS:~/.ollama/models Linux:/usr/share/ollama/.ollama/models Windows:C:\Users\xxx\.ollama\models如果有多张 GPU可以对 CUDA_VISIBLE_DEVICES 配置指定运行的 GPU默认使用多卡。EnvironmentCUDA_VISIBLE_DEVICES0,14.配置修改后需要重启 ollamasystemctl daemon-reloadsystemctl restart ollama注意上面两条指令通常需要同时使用只要你修改了任意服务的配置文件如 .service 文件都需要运行systemctl daemon-reload使更改生效。Docker 部署我们也介绍下 Docker 部署无需配置各种环境相对小白来说更加友好。step 1: 一键安装如果是一台没有 GPU 的轻量级服务器docker run-d-v ollama:/root/.ollama-p11434:11434--name ollama--restart always ollama/ollama简单介绍下这个命令的参数docker run用于创建并启动一个新的 Docker 容器。-d表示以分离模式后台运行容器。-v ollama:/root/.ollama将宿主机上的 ollama 目录挂载到容器内的 /root/.ollama 目录便于数据持久化。-p 11434:11434将宿主机的 11434 端口映射到容器的 11434 端口使外部可以访问容器服务。–name ollama为新创建的容器指定一个名称为 ollama便于后续管理。–restart always容器在退出时自动重启无论是因为错误还是手动停止。ollama/ollama指定要使用的 Docker 镜像这里是 ollama 镜像。宿主机上的数据卷 volume 通常在/var/lib/docker/volumes/可以采用如下命令进行查看[rootinstance-20240702-1632~]# docker volume lsDRIVER VOLUME NAME local dockers_postgres-data local ollama localopen-webui[rootinstance-20240702-1632~]# ls /var/lib/docker/volumes/backingFsBlockDev dockers_postgres-data metadata.db ollamaopen-webui如果拥有 Nvidia-GPUdocker run-d--gpusall-v ollama:/root/.ollama-p11434:11434--name ollama ollama/ollama安装成功后注意要给服务器打开 11434 端口的防火墙然后浏览器打开http://your_ip:11434/如果出现Ollama is running说明服务已经成功运行。step 2: 进入容器如何进入容器中执行指令呢dockerexec-it ollama/bin/bash参数说明exec在运行中的容器中执行命令。-it表示以交互模式运行并分配一个伪终端。ollama容器的名称。/bin/bash要执行的命令这里是打开一个 Bash shell。执行后你将进入容器的命令行和你本地机器上使用没有任何区别。如果不想进入容器当然也可以参考如下指令一键运行容器中的模型dockerexec-it ollama ollama run qwen2:0.5b如果一段时间内没有请求模型会自动下线。2. 使用2.1 Ollama 常用命令Ollama 都有哪些指令终端输入ollamaUsage:ollama[flags]ollama[command]Available Commands:serve Start ollama create Create a modelfroma Modelfile show Show informationfora model run Run a model pull Pull a modelfroma registry push Push a model to a registrylistList models ps List running models cp Copy a model rm Remove a modelhelpHelp aboutanycommand Flags:-h,--helphelpforollama-v,--version Show version information Useollama [command] --helpformore information about a command.我们翻译过来和 docker 命令非常类似ollama serve# 启动ollamaollama create# 从模型文件创建模型ollama show# 显示模型信息ollama run# 运行模型会先自动下载模型ollama pull# 从注册仓库中拉取模型ollama push# 将模型推送到注册仓库ollamalist# 列出已下载模型ollama ps# 列出正在运行的模型ollama cp# 复制模型ollama rm# 删除模型2.2 Ollama 模型库类似 Docker 托管镜像的 Docker HubOllama 也有个 Library 托管支持的大模型。传送门https://ollama.com/library从0.5B 到 236B各种模型应有尽有大家可以根据自己的机器配置选用合适的模型。同时官方也贴心地给出了不同 RAM 推荐的模型大小以及命令注至少确保8GB的 RAM 用于运行 7B 模型16GB 用于运行 13B 模型32GB 用于运行 33B 模型。这些模型需经过量化。因为我的是一台没有 GPU 的轻量级服务器所以跑一个 0.5B 的 qwen 模型给大家做下演示root535ec4243693:/# 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 removinganyunused layers success你是谁 我是来自阿里云的超大规模语言模型——通义千问。我能够理解、生产、传播各种语言和文字可以回答您在任 何语言或任何问题的问题。Send a message(/?forhelp)2.3 自定义模型如果要使用的模型不在 Ollama 模型库怎么办GGUF (GPT-Generated Unified Format)模型GGUF 是由 llama.cpp 定义的一种高效存储和交换大模型预训练结果的二进制格式。Ollama 支持采用 Modelfile 文件中导入 GGUF 模型。下面我们以本地的 llama3 举例详细介绍下实操流程step 1: 新建一个文件名为 Modelfile 的文件然后在其中指定 llama3 模型路径FROM/root/models/xxx/Llama3-FP16.ggufstep 2: 创建模型ollama create llama3-f Modelfilestep 3: 运行模型ollama run llama3终端出现开启和 Ollama 的对话旅程吧~下面是几个常用案例多行输入用包裹Hello, ... world! ... Im a basic program that prints the famousHello, world!message to the console.多模态模型文本 图片地址Whatsinthis image?/Users/jmorgan/Desktop/smile.png The image features a yellow smiley face,whichislikely the central focus of the picture.将提示作为参数传递$ ollama run llama3Summarize this file: $(cat README.md)Ollamaisa lightweight,extensible frameworkforbuildingandrunning language models on the local machine.PyTorch or Safetensors 模型Ollama 本身不支持 PyTorch or Safetensors 类型不过可以通过llama.cpp进行转换、量化处理成 GGUF 格式然后再给 Ollama 使用。关于llama.cpp的使用小伙伴可以前往官方仓库https://github.com/ggerganov/llama.cpp。下载后需要编译使用成功后会在目录下生成三个可执行文件main模型推理 quantize模型量化包括1.5位、2位、3位、4位、5位、6位和8位整数量化 server提供模型API服务不过我们只能需要用到它的模型转换功能还是以 llama3 举例首先安装项目依赖然后调用convert.py实现模型转换pip install-r requirements.txt python convert.py/root/xxx/Llama3-Chinese-8B-Instruct/--outtype f16--vocab-typebpe--outfile./models/Llama3-FP16.gguf提示词实现模型定制刚才我们介绍了 Modelfile其中我们还可以自定义提示词实现更个性化的智能体。假设现在你从模型库下载了一个 llama3:ollama pull llama3然后我们新建一个 Modelfile其中输入FROM llama3# 设置温度参数PARAMETER temperature0.7# 设置SYSTEM 消息SYSTEM 你是猴哥的 AI 智能助手将基于猴哥发表的所有文章内容回答问题拒绝回答任何无关内容。 Ollama 实现模型量化Ollama 原生支持FP16 or FP32 模型的进一步量化支持的量化方法包括Q4_0 Q4_1 Q5_0 Q5_1 Q8_0 K-means Quantizations Q3_K_S Q3_K_M Q3_K_L Q4_K_S Q4_K_M Q5_K_S Q5_K_M Q6_K在编写好 Modelfile 文件后创建模型时加入-q标志FROM/path/to/my/gemma/f16/modelollama create-q Q4_K_M mymodel-f Modelfile2.3 API 服务除了本地运行模型以外还可以把模型部署成 API 服务。执行下述指令可以一键启动 REST API 服务ollama serve下面介绍两个常用示例1、生成回复curl http://129.150.63.xxx:11434/api/generate-d {model:qwen2:0.5b,prompt:Why is the sky blue?,stream:false}2、模型对话curl http://localhost:11434/api/chat-d {model:qwen2:0.5b,messages:[{role:user,content:why is the sky blue?}],stream:false}更多参数和使用可参考 API 文档https://github.com/ollama/ollama/blob/main/docs/api.md2.4 OneAPI 集成OneAPI 也支持 Ollama 模型我们只需在 OneAPI 中为 Ollama 添加一个渠道。创建好之后点击测试一下右上角出现提示说明已经配置成功接下来就可以采用 OpenAI 的方式调用了。2.5 Open WebUI 界面搭建Open WebUI 是一个可扩展的自托管 WebUI前身就是 Ollama WebUI为 Ollama 提供一个可视化界面可以完全离线运行支持 Ollama 和兼容 OpenAI 的 API。 一键直达https://github.com/open-webui/open-webuiOpen WebUI 部署我们直接采用 docker 部署 Open WebUI因为我们已经部署了 Ollama故采用如下命令docker run-d-p3000:8080--add-hosthost.docker.internal:host-gateway-vopen-webui:/app/backend/data--nameopen-webui--restart always ghcr.io/open-webui/open-webui:main其中--add-hosthost.docker.internal:host-gateway是为了添加一个主机名映射将 host.docker.internal 指向宿主机的网关方便容器访问宿主机服务假设你之前没有安装过 Ollama也可以采用如下镜像打包安装Ollama Open WebUIdocker run-d-p3000:8080-v ollama:/root/.ollama-vopen-webui:/app/backend/data--nameopen-webui--restart always ghcr.io/open-webui/open-webui:ollamaOpen WebUI 使用在打开主机 3000 端口的防火墙之后浏览器中输入http://your_ip:3000/注册一个账号可以发现界面和 ChatGPT 一样简洁美观首先需要选择一个模型由于我们只部署了qwen2:0.5b于是先用它试试右上角这里可以设置系统提示词以及模型参数等等在个人设置这里可以看到内置的 TTS 服务管理员面板这里有更多探索性功能比如图像生成如果你部署了 StableDiffusion这里同样支持调用不得不说Open WebUI 的功能真的非常强大更多功能可参考官方文档https://docs.openwebui.com/感兴趣的小伙伴赶紧去试试吧~3. 文末福利相信看到这里的你已经基本可以玩转 Ollama 了。只不过觉得上述流程略显麻烦没问题你的困惑早有人帮你搞定了GitHub 上有开发者做了 docker-compose 一键整合安装包传送门https://github.com/valiantlynx/ollama-docker你只需要一行命令docker-compose up-d就能一键启动 Ollama Open WebUI~启动成功后注意看一下不同容器的端口号docker ps接下来的操作和前两部分一致快去愉快玩耍吧~写在最后至此我们一起走完了 Ollama 的部署和实战流程。在我看来Ollama 也许是目前最便捷的大模型部署和使用工具对小白非常友好。简单的命令行操作用户即可快速启动和管理模型极大降低了技术门槛用户可以专注于模型的应用而无需关注底层技术细节。此外Ollama 的离线运行也为数据安全提供了保障。期待大家在使用 Ollama 的过程中发现更多有趣的 AI 应用场景。让我们一起推动大模型技术的应用落地探索更广阔的可能性最后的最后感谢你们的阅读和喜欢作为一位在一线互联网行业奋斗多年的老兵我深知在这个瞬息万变的技术领域中持续学习和进步的重要性。为了帮助更多热爱技术、渴望成长的朋友我特别整理了一份涵盖大模型领域的宝贵资料集。这些资料不仅是我多年积累的心血结晶也是我在行业一线实战经验的总结。这些学习资料不仅深入浅出而且非常实用让大家系统而高效地掌握AI大模型的各个知识点。如果你愿意花时间沉下心来学习相信它们一定能为你提供实质性的帮助。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】大模型知识脑图为了成为更好的 AI大模型 开发者这里为大家提供了总的路线图。它的用处就在于你可以按照上面的知识点去找对应的学习资源保证自己学得较为全面。经典书籍阅读阅读AI大模型经典书籍可以帮助读者提高技术水平开拓视野掌握核心技术提高解决问题的能力同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说阅读经典书籍是非常有必要的。实战案例光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。面试资料我们学习AI大模型必然是想找到高薪的工作下面这些面试题都是总结当前最新、最热、最高频的面试题并且每道题都有详细的答案面试前刷完这套面试题资料小小offer不在话下640套AI大模型报告合集这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】