Ollama+OpenWebUI本地部署大模型

Ollama+OpenWebUI本地部署大模型

  • 前言
  • Ollama使用
    • Ollama安装
    • Ollama修改配置
    • Ollama 拉取远程大模型
    • Ollama 构建本地大模型
    • Ollama 运行本地模型:
      • 命令行交互
      • Api调用
      • Web 端调用
  • 总结

前言

Ollama是一个开源项目,用于在本地计算机上运行大型语言模型(LLMs)的工具,它的底层是使用Docker,所以支持类似Docker的构建方式,大模型就是它的镜像。它支持多种模型格式,包括但不限于GGUF,允许用户在没有高性能GPU或不希望使用云服务的情况下,利用个人计算机的资源来执行复杂的语言任务。

Ollama使用

Ollama安装

根据自己的平台选择下载对应的工具,下载地址
在这里插入图片描述
右击使用管理员权限安装,成功后会弹出下面框。
输入ollama list 可以查看本地有哪些模型

ollama list
在这里插入图片描述

想要查看支持哪些模型,可以点击官网中央仓库,支持的模型很多。
在这里插入图片描述

Ollama支持的参数:

Usage:ollama [flags]ollama [command]Available Commands:serve       Start ollamacreate      Create a model from a Modelfileshow        Show information for a modelrun         Run a modelpull        Pull a model from a registrypush        Push a model to a registrylist        List modelscp          Copy a modelrm          Remove a modelhelp        Help about any commandFlags:-h, --help      help for ollama-v, --version   Show version information

Ollama修改配置

在拉取Ollama 大模型之前,需要修改Ollma两个配置,直接在电脑环境变量中添加以下两个系统变量,一个是方便局域网法访问,一个是避免C盘被占用过大:

  • OLLAMA_HOST:修改为0.0.0.0:11434,以便局域网访问
  • OLLAMA_MODELS:默认为C盘,需要修改为其他磁盘。

在这里插入图片描述

退出重登Ollama,重新打开PowelShell窗口,输入本机的ip,返回running即为修改Ip成功 :
在这里插入图片描述

Ollama 拉取远程大模型

ollama pull以及ollama run都可以拉取大模型,run拉取后会直接运行大模型

ollama run codellama:7b

在这里插入图片描述
注意:可能会遇到以下类似的问题,大部分是网络环境问题。多试几次或者切换代理网络即可。

Error: pull model manifest: Get "https://registry.ollama.ai/v2/library/codellama/manifests/7b": dial tcp: lookup registry.ollama.ai: no such host

Ollama 构建本地大模型

Ollama除了可以使用官方自带的模型,也可以使用我们已经量化好的gguf模型。在模型所在位置,新建个Modelfile,内容如下:

FROM ./llama-2-7b-chat.Q4_K_M.gguf# set prompt template
TEMPLATE """[INST] <<SYS>>{{ .System }}<</SYS>>{{ .Prompt }} [/INST]
"""# set parameters
PARAMETER stop "[INST]"
PARAMETER stop "[/INST]"
PARAMETER stop "<<SYS>>"
PARAMETER stop "<</SYS>>"# set system message
SYSTEM """
You are a helpful assistant.
"""

使用PowerShell,切换到模型目录下,执行以下命令,构建模型

ollama create my-model2 -f .\Modelfile

创建成功后:

ollama list

在这里插入图片描述

Ollama 下载的模型默认情况下都是经过量化的,如果要使用未经量化的模型,可以在 huggingface(Hugging Face 起初是NLP机器学习服务商,开源了非常出名的自然语言处理应用构建的 transformers 库。随着大模型流行,Hugging Face转向了机器学习的社区服务,类似于代码服务的github) 下载指定的模型,并使用上述方式进行运行。

Ollama 运行本地模型:

命令行交互

ollama run my-model2

在这里插入图片描述

Api调用

Ollama run之后就可以直接使用api接口调用,调用方式POST:
url:

http://127.0.0.1:11434/api/generate

请求体,修改成你执行的model:

{"model": "codellama:7b","prompt": "Why is the sky blue?","format": "json","stream": false
}

返回数据:

{"model": "codellama:7b","created_at": "2024-05-18T08:05:25.3502395Z","response": "{\n\"The sky appears blue because of a phenomenon called Rayleigh scattering, which occurs when sunlight interacts with the Earth's atmosphere. When light travels through a medium, such as air or water, it encounters particles that can scatter it in different directions. In the case of the Earth's atmosphere, the tiny molecules of gases, such as nitrogen and oxygen, scatter shorter wavelengths of light (like blue and violet) more than longer wavelengths (like red and orange). This is known as the Rayleigh scattering effect.\"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","done": false
}

Web 端调用

Ollama 如果想要在Web端使用,需要借助OpenWebUI 这个工具。OpenWebUI 是一个为大型语言模型(LLM)设计的开源Web界面,它提供了一个用户友好的交互方式来管理和运行这些模型。OpenWebUI 可以与不同的LLM运行程序集成,包括但不限于Ollama和OpenAI兼容的API

推荐使用docker 启动OpenWebUI,如果你的Ollama与OpenWebUI部署在同一服务器上,则使用以下命令

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name ollama-web --restart always ghcr.io/open-webui/open-webui:main

如果不是在同一机器,则加个参数OLLAMA_BASE_URL

docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=http://10.11.24.27 -v open-webui:/app/backend/data --name ollama-web --restart always ghcr.io/open-webui/open-webui:main

启动后输入
http://localhost:3000/或者http://10.11.24.27:3000/会跳转到如下页面
在这里插入图片描述
点击注册,注册信息可以随意写,注册后跳转到该页面
在这里插入图片描述

选择模型后可以开始对话

在这里插入图片描述
OpenWebUI 也支持下载模型,点击setting 页面,输入模型qwen:0.5b

在这里插入图片描述
成功后会有提示
在这里插入图片描述
切换到qwen:0.5b问答。
在这里插入图片描述
整体来说OpenWebUI用起来会比较方便。

总结

Ollama极大简化了大模型私有部署步骤,使得大模型运行像Docker一样简单方便。Ollama 还提供Api的方式,集成Langchain等应用也就方便了很多,结合OpenWebUI可以体验类似ChatGpt的交互,方便使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/72303.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习】基于t-SNE的MNIST数据集可视化探索

一、前言 在机器学习和数据科学领域&#xff0c;高维数据的可视化是一个极具挑战但又至关重要的问题。高维数据难以直观地理解和分析&#xff0c;而有效的可视化方法能够帮助我们发现数据中的潜在结构、模式和关系。本文以经典的MNIST手写数字数据集为例&#xff0c;探讨如何利…

【redis】发布订阅

Redis的发布订阅&#xff08;Pub/Sub&#xff09;是一种基于消息多播的通信机制&#xff0c;它允许消息的**发布者&#xff08;Publisher&#xff09;向特定频道发送消息&#xff0c;而订阅者&#xff08;Subscriber&#xff09;**通过订阅频道或模式来接收消息。 其核心特点如…

C语言零基础入门:嵌入式系统开发之旅

C语言零基础入门&#xff1a;嵌入式系统开发之旅 一、引言 嵌入式系统开发是当今科技领域中一个极具魅力和挑战性的方向。从智能家居设备到汽车电子系统&#xff0c;从智能穿戴设备到工业自动化控制&#xff0c;嵌入式系统无处不在。而C语言&#xff0c;作为嵌入式开发中最常…

K8S学习之基础二十三:k8s的持久化存储之nfs

K8S持久化存储之nfs ​ 在 Kubernetes (k8s) 中使用 NFS&#xff08;Network File System&#xff09;作为存储解决方案是一种常见的方式&#xff0c;特别是在需要共享存储的场景中。以下是关于如何在 Kubernetes 中使用 NFS 存储的详细说明&#xff1a; 1. 准备 NFS 服务器 …

【Rust】枚举和模式匹配——Rust语言基础14

文章目录 1. 枚举类型1.2. Option 枚举 2. match 控制流结构2.1. match 对绑定值的匹配2.2. Option<T> 的匹配2.3. 通配模式以及 _ 占位符 3. if let 控制流4. 小测试 1. 枚举类型 枚举&#xff08;enumerations&#xff09;&#xff0c;也被称作 enums。枚举允许你通过…

【商城实战(25)】解锁UniApp移动端适配秘籍,打造完美商城体验

【商城实战】专栏重磅来袭&#xff01;这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建&#xff0c;运用 uniapp、Element Plus、SpringBoot 搭建商城框架&#xff0c;到用户、商品、订单等核心模块开发&#xff0c;再到性能优化、安全加固、多端适配&#xf…

《C++ Primer》学习笔记(二)

第二部分&#xff1a;C标准库 1.为了支持不同种类的IO处理操作&#xff0c;标准库定义了以下类型的IO&#xff0c;分别定义在三个独立的文件中&#xff1a;iostream文件中定义了用于读写流的基本类型&#xff1b;fstream文件中定义了读写命名文件的类型&#xff1b;sstream文件…

MATLAB风光柴储微网粒子群算法

本程序实现了风光柴储微网中的粒子群优化&#xff08;PSO&#xff09;算法&#xff0c;用于优化微网的能源调度问题。具体来说&#xff0c;程序考虑了光伏发电、风力发电、柴油机发电&#xff08;柴储&#xff09;&#xff0c;并使用粒子群算法来优化这些能源的调度&#xff0c…

解决Windows版Redis无法远程连接的问题

&#x1f31f; 解决Windows版Redis无法远程连接的问题 在Windows系统下使用Redis时&#xff0c;很多用户会遇到无法远程连接的问题。尤其是在配置了Redis并尝试通过工具如RedisDesktopManager连接时&#xff0c;可能会报错“Cannot connect to ‘redisconnection’”。今天&am…

解决 HTTP 请求中的编码问题:从乱码到正确传输

文章目录 解决 HTTP 请求中的编码问题&#xff1a;从乱码到正确传输1. **问题背景**2. **乱码问题的原因**2.1 **客户端编码问题**2.2 **请求头缺失**2.3 **服务器编码问题** 3. **解决方案**3.1 **明确指定请求体编码**3.2 **确保请求头正确**3.3 **动态获取响应编码** 4. **调…

VS Code 配置优化指南

目录 一、安装与基础设置1. 安装 VS Code2. 中文语言包 二、插件推荐三、常见配置项与优化1. 用户 / 工作区设置2. 全局配置 / Settings Sync3. 常用设置示例 四、性能优化五、调试与终端配置1. 调试配置2. 内置终端配置 六、快捷键配置七、美观与主题八、总结 VS Code&#xf…

基于NXP+FPGA永磁同步电机牵引控制单元(单板结构/机箱结构)

永磁同步电机牵引控制单元&#xff08;单板结构/机箱结构&#xff09; 永磁同步电机牵引控制单元&#xff08;TCU-PMSM&#xff09;用于牵引逆变器-永磁同步电机构成的牵引电传动系统&#xff0c;采用轴控方式。执行高性能永磁同步电机复矢量控制策略&#xff0c;具有响应迅速…

/etc/sysconfig/jenkins 没有这个文件

在 CentOS 或其他基于 Red Hat 的 Linux 系统中&#xff0c;/etc/sysconfig/jenkins 文件通常用来存储 Jenkins 的配置参数&#xff0c;例如 JENKINS_HOME 的路径。但是&#xff0c;如果你发现没有这个文件&#xff0c;你可以通过以下几种方式来解决或确认&#xff1a; 检查 J…

conda 安装软件报错 Found conflicts! Looking for incompatible packages.

问题描述&#xff1a; 利用 conda 安装某包 conda install -c "nvidia/label/cuda-11.8.0" cuda-nvcc时发现报错&#xff1a; Collecting package metadata (current_repodata.json): done Solving environment: failed with initial frozen solve. Retrying with…

MySQL 衍生表(Derived Tables)

在SQL的查询语句select …. from …中&#xff0c;跟在from子句后面的通常是一张拥有定义的实体表&#xff0c;而有的时候我们会用子查询来扮演实体表的角色&#xff0c;这个在from子句中的子查询会返回一个结果集&#xff0c;这个结果集可以像普通的实体表一样查询、连接&…

STM32配套程序接线图

1 工程模板 2 LED闪烁 3LED流水灯 4蜂鸣器 5按键控制LED 6光敏传感器控制蜂鸣器 7OLED显示屏 8对射式红外传感器计次 9旋转编码器计次 10 定时器定时中断 11定时器外部时钟 12PWM驱动LED呼吸灯 13 PWM驱动舵机 14 PWM驱动直流电机 15输入捕获模式测频率 16PWMI模式测频率占空…

鸿蒙初级考试备忘

Module类型 Module按照使用场景可以分为两种类型&#xff1a; Ability类型的Module&#xff1a; 用于实现应用的功能和特性。每一个Ability类型的Module编译后&#xff0c;会生成一个以.hap为后缀的文件&#xff0c;我们称其为HAP&#xff08;Harmony Ability Package&#x…

语音识别踩坑记录

本来想在原来的语音识别的基础上增加本地扩展本地词典&#xff0c; 采用的语音识别是Vosk识别器&#xff0c;模型是 vosk-model-small-cn-0.22 // 初始化Vosk识别器 if (recognizer null) {using (Model model new Model(modelPath)){string grammar "{""…

SpringCloud 学习笔记1(Spring概述、工程搭建、注册中心、负载均衡、 SpringCloud LoadBalancer)

文章目录 SpringCloudSpringCloud 概述集群和分布式集群和分布式的区别和联系 微服务什么是微服务&#xff1f;分布式架构和微服务架构的区别微服务的优缺点&#xff1f;拆分微服务原则 什么是 SpringCloud &#xff1f;核心功能与组件 工程搭建父项目的 pom 文件 注册中心Rest…

计算机网络-网络规划与设计

基本流程 需求分析—》通信规范分析—》逻辑网络设计—》物理网络设计—》实施阶段 需求分析&#xff1a; 确定需求&#xff0c;包括&#xff1a;业务需求、用户需求、应用需求、计算机平台需求、网络通信需求等。 产物&#xff1a;需求规范 通信规范分析&#xff1a; 现有…