ollama模型CPU轻量化部署

一、定义

  1. ollama 定义
  2. 环境部署
  3. demo
  4. 加载本地模型方法
  5. 基本指令
  6. 关闭开启ollama
  7. ollama 如何同时 运行多个模型, 多进程
  8. ollama 如何分配gpu
  9. 修改模型的存储路径

二、实现

  1. ollama 定义
    ollama 是llama-cpp 的进一步封装,更加简单易用,类似于docker.
    模型网址:https://www.ollama.com/
    部署网址:https://github.com/ollama/ollama
    教程:https://github.com/ollama/ollama/releases
  2. 环境部署
    1. 宿主机安装
    curl -fsSL https://ollama.com/install.sh | sh
    在这里插入图片描述
    curl http://localhost:11434 已经启动。
远程访问配置:
>>sudo vi /etc/systemd/system/ollama.service
对于每个环境变量,在 [Service] 部分下添加一行 Environment:
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
保存并退出。
重新加载 systemd 并重新启动 Ollama:
>>systemctl daemon-reload
>>systemctl restart ollama

在这里插入图片描述
2. docker 模式安装
https://hub.docker.com/r/ollama/ollama

docker pull ollama/ollama
cpu:
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
gpu:
docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

  1. 案例
    1.加载模型/运行模型
ollama pull llama3:8b

在这里插入图片描述
2. 调用模型
方式一、指令交互的方式进行调用

>>ollama run llama3

在这里插入图片描述
方式二、api 接口调用

curl http://localhost:11434/api/generate -d '{"model":"llama3:8b","prompt": "请分别翻译成中文 -> Meta Llama 3: The most capable openly available LLM to date","stream": false
}'

在这里插入图片描述
方式三、 python 接口调用

pip install ollama-python
import ollama
response = ollama.run('llama3:8b', '你好,世界!')
print(response)
from openai import OpenAIclient = OpenAI(base_url='http://localhost:11434/v1/',# 必需但被忽略api_key='ollama',
)chat_completion = client.chat.completions.create(messages=[{'role': 'user','content': 'Say this is a test',}],model='llama2',
)
  1. 加载本地模型方法
    具体看 官网
    4.1 gguf 模型
    1. 编写Modelfile 文件
    FROM ./mistral-7b-v0.1.Q4_0.gguf
    2. 创建模型
    ollama create llama3-8b:0.001 -f Modelfile
    3. 运行/ 测试
    ollama run example “你最喜欢的调味品是什么?”
    在这里插入图片描述
  2. 基本指令 : 和docker 指令类似,基本重合
journalctl -u ollama           查看日志
journalctl -n 10               查看最新的10条日志
journalctl -f                  实时查看新添加的日志条目
ollama -h
(base) [root@cnki-31-199-1 jiayafei_linux]# ollama -h
Large language model runnerUsage: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 modelsps          List running modelscp          Copy a modelrm          Remove a modelhelp        Help about any commandFlags:-h, --help      help for ollama-v, --version   Show version information
  1. ollama 如何同时 运行多个模型, 多进程
vim /etc/systemd/system/ollama.service
[Service]
Environment="OLLAMA_NUM_PARALLEL=4" #并行处理请求的数量
Environment="OLLAMA_MAX_LOADED_MODELS=4" #同时加载的模型数量 sudo systemctl daemon-reload
sudo systemctl restart ollama加载一个模型
ollama run gemma:2b
加载另外一个模型
ollama run llama3:8b  

在这里插入图片描述
7. ollama 如何分配gpu
本地有多张 GPU,如何用指定的 GPU 来运行 Ollama? 在Linux上创建如下配置文件,并配置环境变量 CUDA_VISIBLE_DEVICES 来指定运行 Ollama 的 GPU,再重启 Ollama 服务即可【测试序号从0还是1开始,应是从0开始】。

$sudo vi /etc/systemd/system/ollama.service
[Service]
Environment="CUDA_VISIBLE_DEVICES=0,1"
systemctl daemon-reload
systemctl restart ollama
  1. 修改模型的存储路径
mv ~/.ollama/models/* /Users/<username>/Documents/ollama_models     将以前的models移动到当前目录

看上文。在这里插入图片描述

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

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

相关文章

【深度学习】AI换脸,EasyPhoto: Your Personal AI Photo Generator【一】

论文&#xff1a;https://arxiv.org/abs/2310.04672 文章目录 摘要IntroductionTraining Process3 推理过程3.1 面部预处理3.3 第二扩散阶段3.4 多用户ID 4 任意ID5 实验6 结论 下篇文章进行实战。 摘要 稳定扩散Web UI&#xff08;Stable Diffusion Web UI&#xff0c;简称…

Linux_理解程序地址空间和页表

目录 1、进程地址空间示意图 2、验证进程地址空间的结构 3、验证进程地址空间是虚拟地址 4、页表-虚拟地址与物理地址 5、什么是进程地址空间 6、进程地址空间和页表的存在意义 6.1 原因一&#xff08;效率性&#xff09; 6.2 原因二&#xff08;安全性&#xff09; …

DOS INT 21H中断 2号功能暗改AL

注意此时AX0200&#xff0c;DX0057 执行INT 21H之后&#xff1a; 可以看到执行完“??? [BXSI]”之后&#xff0c;AL就变为了57H&#xff0c;和DL相同。 部分INT 21H功能表&#xff1a; 所以究竟是什么原因呢&#xff1f; -------------------------------------------…

MDK 代码烧录到RAM区运行

MDK 代码烧录到RAM区运行 环境配置设置分散加载文件启动文件修改设置外部调试器烧录 建立函数入口半主机问题导致BKPT 0xAB 有一个需求&#xff0c;除了IAR以及GCC的版本工程还需要MDK版本&#xff0c;为了实现最小的工程环境&#xff0c;flash烧录算法也没有&#xff0c;这时需…

【C++】:list容器的基本使用

目录 &#x1f680;前言一&#xff0c;list的介绍二&#xff0c;list的基本使用2.1 list的构造2.2 list迭代器的使用2.3 list的头插&#xff0c;头删&#xff0c;尾插和尾删2.4 list的插入和删除2.5 list 的 resize/swap/clear &#x1f680;前言 list中的接口比较多&#xff…

SpringBootWeb 篇-入门了解 Apache POI 使用方法

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 Apache POI 概述 2.0 使用 Apache POI 读写 Excel 文件 2.1 写入 Excel 文件 2.2 写入 Excel 文件代码演示 2.3 读取 Excel 文件 2.4 读取 Excel 文件代码演示 1.…

使用Multipass编译OpenHarmony工程

Multipass 是一个轻量级虚拟机管理器&#xff0c;支持 Linux、Windows 与 macOS&#xff0c;这是为希望使用单个命令提供全新 Ubuntu 环境的开发人员而设计的。使用 Linux 上的 KVM、Windows 上的 Hyper-V 和 macOS 上的 HyperKit 来以最小的开销运行 VM&#xff0c;同时它还可…

【网络安全学习】使用Kali做渗透情报收集-02-<指纹识别+目录扫描>

1.指纹识别 指纹识别是指通过一些特征或特定文件来识别目标网站或系统的类型、版本、组件等信息&#xff0c;以便寻找相应的漏洞或攻击方法。 主动指纹识别 通过向目标系统发送正常和异常的请求以及对文件内容的查找&#xff0c;记录响应方式&#xff0c;然后与指纹库进行对比…

【系统架构设计师】一、计算机系统基础知识(指令系统|存储系统|输入输出技术|总线结构)

目录 一、指令系统 1.1 计算机指令 1.2 指令寻址方式 1.3 CISC 与 RISC 1.4 指令流水线 二、存储系统 2.1 分级存储体系 2.2 地址映射 2.3 替换算法 2.4 磁盘 2.4.1 磁盘结构和参数 2.4.2 磁盘调度算法 三、输入输出技术 四、总线结构 五、考试真题练习 一、指令…

Java 收集常见面试题

set和list的区别&#xff1f;给定一系列字符串&#xff0c;从集合的set和list中查询&#xff0c;如何查询出相关的数据&#xff1f; 在Java中&#xff0c;Set和List都是用于存储对象的集合 Set&#xff1a; 不允许包含重复的元素。 没有顺序&#xff08;即不保证元素的迭代顺序…

K-MEANS 算法的简单实现

K-MEANS 算法的简单实现 目的是为了自己熟悉 K 均值的过程 思路&#xff1a; 如何写一个 KMEANS 算法呢 我们就做一个最简单的&#xff0c;所有的数据都是点&#xff0c;也就是只有横纵坐标。 数据的格式我们用一个数组来进行表示&#xff0c;数组有两个值&#xff0c;一个是 …

Java @Aysn实现异步 及导致失效原因

在 Java 中&#xff0c;Async 注解用于表明一个方法是异步执行的。这意味着方法会在调用时立即返回&#xff0c;而不会等待方法体内的代码执行完毕。这对于需要异步执行长时间操作的方法非常有用&#xff0c;比如发送邮件、处理大量数据等。 1.使用实例 假设有一个 Spring Boo…

12.1 Go 测试的概念

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

python之面向对象编程

01 第一步 创建类&#xff0c; self指向调用该函数的对象 也就是通过类实例出来的对象 class Person():def __init__(self):self.name zsself.age 12def fn(self):print(self)p1 Person() print(p1) # <__main__.Person object at 0x000002509F331790> print(p1.fn()…

独孤思维:和副业付费学员吵架了

01 之前和老婆出去逛街。 很久没有静下心来&#xff0c;谈这么久。 聊到工作副业&#xff0c;孩子教育。 发现很多内容都存在偏差&#xff0c;之前一直没有深思讨论过。 经过这一次讨论之后&#xff0c;更优化了关于小孩的教育观&#xff0c;关于工作和副业的平衡问题。 …

LeetCode 0522.最长特殊序列 II:两句话讲明思路(子序列判断)

【LetMeFly】522.最长特殊序列 II&#xff1a;两句话讲明思路(子序列判断) 力扣题目链接&#xff1a;https://leetcode.cn/problems/longest-uncommon-subsequence-ii/ 给定字符串列表 strs &#xff0c;返回其中 最长的特殊序列 的长度。如果最长特殊序列不存在&#xff0c;…

VM4.3 二次开发02 方案加载、执行及显示

效果 这是二次开发的第二个文章&#xff0c;所以不重复说明环境配置相关的内容。如果不懂的可以看本专栏的上一个文章。 海康视觉算法平台VisionMaster 4.3.0 C# 二次开发01 加载方案并获取结果-CSDN博客 界面代码 <Window x:Class"VmTestWpf.App.MainWindow"x…

element-plus的Tour 漫游式引导怎么去绑定Cascader 级联选择器

首先官方例子是用的button 官方.$el这个log出来是&#xff1a; 知道是以元素为准就拿对应的元素就行 级联选择器.$el是这样的&#xff1a; 你可以移入这个元素部分去看看是哪个要用的&#xff08;好像火狐直接放上去就可以看到元素表示&#xff0c;谷歌要双击或者右键选择去看…

手机ip地址怎么换成成都的

随着互联网的快速发展&#xff0c;我们越来越依赖于网络进行各种操作。而在某些情况下&#xff0c;为了更好地享受网络服务或保护个人隐私&#xff0c;我们可能需要改变手机的IP地址。本文将详细介绍如何将手机IP地址换成成都的&#xff0c;同时提醒大家在操作过程中需要注意的…

ts-node

ts-node 是一个 TypeScript 执行引擎&#xff0c;它允许您直接运行 TypeScript 代码&#xff0c;而无需先将其编译为 JavaScript。这在开发和测试过程中非常有用&#xff0c;可以提高开发效率。以下是关于 ts-node 的一些基本信息和使用方法。 安装 您可以通过 npm 或 yarn 安…