本地大模型运行框架Ollama

news2025/7/10 20:35:53

在这里插入图片描述

什么是 Ollama ?

Ollama 是一个简明易用的本地大模型运行框架。能在本地启动并运行 Llama 2MistralGemma 及其他大语言模型。

和老苏之前介绍的 LocalAI 比较类似,但是加载模型更容易,感觉上比较像 docker,也采用了 tags 来区分模型的不同版本,尤其是 CLI 也采用了 pullrmrun 等等;

因为老苏的小机器不支持 Nvidia GPU,所以下面👇的安装示例仅支持 CPU

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 ollama ,选择第一个 ollama/ollama,版本选择 latest

本文写作时, latest 版本对应为 0.1.27

在这里插入图片描述

docker 文件夹中,创建一个新文件夹 ollama,并在其中建一个子文件夹 data

文件夹装载路径说明
docker/ollama/data/root/.ollama存放模型数据

在这里插入图片描述

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口
1143411434

在这里插入图片描述

容器名称

因为后面有进入容器的操作,所以这里规范下命名,就叫 ollama

在这里插入图片描述

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 ollama 和 子目录
mkdir -p /volume1/docker/ollama/data

# 进入 ollama 目录
cd /volume1/docker/ollama

# 运行容器(仅 CPU)
docker run -d \
   --restart unless-stopped \
   --name ollama \
   -p 11434:11434 \
   -v $(pwd)/data:/root/.ollama \
   ollama/ollama

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'

services:
  ollama:
    image: ollama/ollama
    container_name: ollama
    restart: unless-stopped
    ports:
      - 11434:11434
    volumes:
      - ./data:/root/.ollama

然后执行下面的命令

# 新建文件夹 ollama 和 子目录
mkdir -p /volume1/docker/ollama/data

# 进入 ollama 目录
cd /volume1/docker/ollama

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:11434 ,如果看到 Ollama is running,表示服务启动正常

在这里插入图片描述

下载模型

官方提供了一个模型库,地址:https://ollama.com/library

你可以根据需要进行搜索,例如搜索 llama2

在这里插入图片描述

选中 llama2 ,你会看到关于这个模型的简介

在这里插入图片描述

进入 tags 查看需要的版本

在这里插入图片描述

关于不同参数模型文件所需要的内存,之前提过,这里简单再说一下

  • 7b:至少需要 8GB 内存;
  • 13b:至少需要 16GB 内存;
  • 33b:至少需要 32GB 内存;

老苏接下来尝试了 llama2:7bllama2-chinese:7b,从介绍看,后者采用了中文指令集来进行微调,使其具备较强的中文对话能力。目前这个中文微调参数模型总共发布了 7B13B 两种参数大小。

模型下载需进入容器内,不熟悉命令行的,可以进入 终端机 操作

在这里插入图片描述

执行下面的命令

# 下载模型
ollama pull llama2:7b

#下载模型(中文微调参数模型)
ollama pull llama2-chinese:7b

在这里插入图片描述

老苏个人更喜欢用 SSH 客户端的命令行,多一步进入容器的命令,下载是一样的

# 进入容器
docker exec --user root -it ollama /bin/bash

# 下载模型
ollama pull llama2:7b

#下载模型(中文微调参数模型)
ollama pull llama2-chinese:7b

开始下载

在这里插入图片描述

下载完成

在这里插入图片描述

开始提问

接下里就可以提问了,比如: 为什么天空是蓝色的

命令行

假设已经进入容器或者尚未退出容器,可以直接运行下面的命令

# 运行模型
ollama run llama2-chinese:7b

# 填写问题

因网络中断,答案并没有生成完全,就这几个字已经花了近 2 小时

在这里插入图片描述

curl

SSH 客户端登录到群晖后,执行下面的命令

curl -X POST http://192.168.0.197:11434/api/generate -d '{
  "model": "llama2-chinese:7b",
  "prompt": "你好吗"
 }'

其中:

  • IP 需要改为你自己的主机 IP
  • model 后面是我们要使用的模型文件;
  • prompt 后面就是我们提的问题;

在这里插入图片描述

当然你还可以用 API 工具,不过可能还是 Web UI 的界面用起来更好,暂时找到了 Open WebUI ,有时间再找找

在这里插入图片描述

小结

跑大模型,需要的硬件资源是越高越好的。老苏的小机器既不支持 GPU,内存也仅仅够了最低要求的 8GB,所以每个问题回答的时间,都慢到让你怀疑人生。

在这里插入图片描述

但是,这并不能阻止我们追求知识和进行探索的热情。

参考文档

ollama/ollama: Get up and running with Llama 2, Mistral, Gemma, and other large language models.
地址:https://github.com/ollama/ollama

Ollama
地址:https://ollama.com/

ollama/ollama - Docker Image | Docker Hub
地址:https://hub.docker.com/r/ollama/ollama

library
地址:https://ollama.com/library

open-webui/open-webui: User-friendly WebUI for LLMs (Formerly Ollama WebUI)
地址:https://github.com/open-webui/open-webui

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

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

相关文章

Eureka 入门教程

Eureka 介绍 1. 注册中心概述 什么是注册中心? 给客户端提供可供调用的服务列表,客户端在进行远程调用(RPC)时,根据服务列表选择服务提供方的服务地址进行服务调用 注册中心的核心功能 注册:服务提供者上…

androidjetpack应用指南,超通俗解析

前言 每年的3、4月份是各大企业为明年拓展业务大量吸纳人才的关键时期,招聘需求集中、空缺岗位多,用人单位也习惯在初秋进行大规模招聘。 金九银十,招聘旺季,也是一个求职旺季。 不打无准备的仗,在这种关键时期&…

文件上传之后再次打开,文件依然存在

目录 1.上传说明 2.问题1 3.问题2 4.其他问题 1.上传说明 文件上传使用了单独的组件,使用对话框内嵌套上传组件的方式,在主画面中点击导入按钮,弹出对话框。 2.问题1 问题: ①上传文件后,点击遮罩层取消或者点击…

Maven下载、安装、配置教程

maven是一个项目管理的工具,maven自身是纯java开发的,可以使用maven对java项目进行构建、依赖管理。 通常我们靠手动下载jar包引入项目中是非常浪费时间的,我们可以通过maven工具帮我们导入jar包提高开发效率。 第一步:下载Mave…

【QT+QGIS跨平台编译】之五十五:【QGIS_CORE跨平台编译】—【qgsmeshcalcparser.cpp生成】

文章目录 一、Bison二、生成来源三、构建过程一、Bison GNU Bison 是一个通用的解析器生成器,它可以将注释的无上下文语法转换为使用 LALR (1) 解析表的确定性 LR 或广义 LR (GLR) 解析器。Bison 还可以生成 IELR (1) 或规范 LR (1) 解析表。一旦您熟练使用 Bison,您可以使用…

C++设计模式——抽象工厂模式

文章目录 抽象工厂模式的主要组成部分抽象工厂模式的一个典型例子抽象工厂模式用于其他场景抽象工厂模式与其他设计模式结合使用 C 中的抽象工厂模式是一种创建型设计模式,它主要用于处理对象家族的创建,这些对象之间可能存在一定的关联关系或属于相同的…

springboot227旅游管理系统

springboot旅游管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本旅游管理系统就是在这样的大环境下诞生,其可以帮助使用者在…

C++ deque详解以及容器适配器

目录 1.容器适配器 2.deque的使用 2.1deque的介绍 2.2deque的缺陷 2.3deque作为stack和queue的可行性 2.4 deque类的使用 2.4.1deque的构造函数 2.4.2deque容量操作 2.4.3deque赋值,插入 1.容器适配器 适配器是一种设计模式(设计模式是一套被人…

STL常见容器(stack、queue容器)---C++

STL常见容器目录: 4.stack容器4.1 stack 基本概念4.2 stack 常用接口 5.queue容器5.1 queue常用接口5.2 queue常用接口 4.stack容器 4.1 stack 基本概念 概念: stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口. 注意…

重推请求之curl和fiddler

在实际的项目中会有出现问题,想重现的场景,比较重新调用一个服务,那么如何进行快速的重推请求呢,记录下来,方便备查。 主要有curl和fiddler两种方式,下面详细说。 方式一、curl 命令 curl 是一个利用URL规…

MySQL:索引有哪些(清晰明了)

一提到索引,可能就会想到B树索引、Hash索引、聚簇索引、主键索引、唯一索引、联合索引等等,但这些名词并不能混为一谈,他们有重复的部分,是从不同方面给索引取的名字。 从数据结构上来讲:B树索引、Hash索引、Full-text…

Spring注解之处理常见的 HTTP 请求

5 种常见的请求类型: GET :请求从服务器获取特定资源。举个例子:GET /users(获取所有学生)POST :在服务器上创建一个新的资源。举个例子:POST /users(创建学生)PUT :更新…

总结成果,擘画蓝图 | 易我科技召开2023年度总结暨2024年规划大会

2024年2月1日下午,易我科技举行了2023年度总结暨2024年规划大会。 01 首先,易我科技总经理万建华对2023年度整体工作进行了总结,对取得的经营成果给予了充分肯定。 ▲ 万总公布2023年经营成果 在肯定成绩的同时,也必须正视存在…

Leetcode : 移动零

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 思路:遍历数组元素,判定为0,则采用erase从数组删除&…

P沟道与N沟道MOSFET的基本概念

N沟道与P沟道MOSFET基本原理与区别 学习MOSFET时的简单笔记作为个人总结,仅供学习参考,实际电路设计请直接略过!!! 文章目录 N沟道与P沟道MOSFET基本原理与区别前言一、MOSFET ?二、N沟道MOS管原理三、P沟…

TCP/UDP模型:2024/2/29

作业1&#xff1a;TCP模型 服务器端&#xff1a; #include <myhead.h> #define SER_IP "192.168.199.129" #define SER_PORT 8899int main(int argc, const char *argv[]) {//1.创建用于连接的套接字文件int sfdsocket(AF_INET,SOCK_STREAM,0);if(sfd-1){per…

【Javascript编程实操02】1、判断一个年份是闰年还是平年 2、找到三个数中最小的数

目录 前言 1、判断一个年份是闰年还是平年 原理&#xff1a; 代码&#xff1a; 实现效果&#xff1a; 2、找到三个数中最小的数 流程图&#xff1a; 代码&#xff1a; 实现效果&#xff1a; 总结 前言 本次继续针对Javascript阶段的if...else...的实操练习&#xff0…

【MySQL】SQL 入门和 DDL

1. 通用语法 SQL语句可以单行或多行书写&#xff0c;以分号结尾SQL语句可以使用空格/缩进来增强语句的可读性MySQL数据库的SQL语句不区分大小写&#xff0c;关键字建议使用大写注释&#xff1a; 单行注释&#xff1a;-- 注释内容 或 # 注释内容多行注释&#xff1a;/* 注释内容…

探索JavaScript中的构造函数,巩固你的JavaScript基础

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

【Unity实战】UGUI和Z轴排序那点事儿

如果读者是从Unity 4.x时代过来的&#xff0c;可能都用过NGUI这个插件&#xff08;后来也是土匪成了正规军&#xff09;&#xff0c;NGUI一大特点是可以靠transform位移的Z值进行遮挡排序&#xff0c;然而这个事情在UGUI成了难题&#xff08;Sorting Layer、Inspector顺序等因素…