Ollama 本地CPU部署开源大模型

Ollama 可以在 Windows 上运行了 阅读详情
AI摘要

Ollama是一款高效工具,可在本地CPU上轻松部署各类开源大模型,如Facebook的llama3、谷歌的gemma、微软的phi3及阿里的qwen2等。支持命令行、Python接口及jupyter魔法命令交互,兼容openai接口,适用于mac、linux、win系统。

Ollama可以在本地CPU非常方便地部署许多开源的大模型。

如 Facebook的llama3, 谷歌的gemma, 微软的phi3,阿里的qwen2 等模型。

完整支持的模型列表可以参考:https://ollama.com/library

它基于llama.cpp实现,本地CPU推理效率非常高(当然如果有GPU的话,推理效率会更高), 还可以兼容 openai的接口。

本文将按照如下顺序介绍Ollama的使用方法~

⚫️ 下载安装Ollama

⚫️ 命令行交互

⚫️ python接口交互

⚫️ jupyter魔法命令交互

公众号算法美食屋后台回复关键词:ollama,获取本文notebook完整源代码~

一,下载安装 Ollama

可以从官网下载Ollama: https://ollama.com/

mac版本的压缩文件大概180M多,正常网速大概下载几分钟就下完了。

支持mac,linux, win 操作系统,跟正常的软件一样安装 。

安装好后就可以在命令行中进行交互了。

以下是一些常用的命令。

ollama run qwen2 #跑qwen2模型,如果本地没有,会先下载

ollama pull llama3 #下载llama3模型到本地

ollama list #查看本地有哪些模型可用

ollama rm #删除本地的某个模型

ollama help #获取帮助
!ollama help
Large language model runner

Usage:
  ollama [flags]
  ollama [command]

Available Commands:
  serve       Start ollama
  create      Create a model from a Modelfile
  show        Show information for a model
  run         Run a model
  pull        Pull a model from a registry
  push        Push a model to a registry
  list        List models
  ps          List running models
  cp          Copy a model
  rm          Remove a model
  help        Help about any command

Flags:
  -h, --help      help for ollama
  -v, --version   Show version information

Use "ollama [command] --help" for more information about a command.

二, 命令行交互

可以在命令行中用 ollama run qwen2 运行一个模型,然后在命令行中和它对话。

下面的gif动画没有做任何加速。这个回复速度还是非常的感人的~

bebb7939fc692bb589b4d384380a3626.gif

三,Python接口交互

在命令行运行 诸如 ollama run qwen2,实际上就会在后台起了一个qwen2的模型服务。

我们就可以用Python代码和qwen2做交互了。

我们可以选择ollama官方出的 ollama-python的库的接口进行交互,也可以使用openai这个库的接口进行交互。

import subprocess
#后台启动一个qwen2模型服务,相当于 在命令行中运行 `ollama run qwen2`
cmd = ["ollama","run qwen2"]
process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

1,使用ollama-python 库进行交互

#!pip install ollama
import ollama
response = ollama.chat(model='qwen2',
                       stream=False,
    messages=[{'role': 'user',
            'content': '段子赏析:我已经不是那个当年的穷小子了,我是今年的那个穷小子。'}]
)
print(response['message']['content'])
这个段子通过幽默的方式表达了对于个人经济状况的自嘲和幽默看待。在日常生活中,人们经常会遇到相似的自我调侃,尤其是在讨论个人财务或生活阶段变化时。这段话中的“已经不是当年的穷小子”暗示了过去某个时间点上的经济状况不佳,而“我是今年的那个穷小子”则将当前的情况与过去的困境相比较,强调了现在依然处于类似的经济挑战中。

通过这种自我调侃的方式,人们可以减轻对于自身困境的关注和压力。幽默不仅是一种释放紧张情绪的手段,也是增进人际关系、建立共鸣的有效工具。在面对生活中的不如意时,以轻松幽默的态度去看待问题,不仅可以帮助个人保持乐观的心态,还能够使对话氛围更加和谐有趣。

这样的段子也提醒我们,在追求物质财富的同时,保持内心的平和与对生活的积极态度同样重要。通过分享类似的经历或自我调侃,可以增进人们之间的理解和支持,构建一个更包容、更乐观的社会环境。

2, 使用openai接口交互

#!pip install openai

ollama还支持非常热门的openai接口,简简单单,本地就mock了一个chatgpt。

这样许多基于openai接口开发的工具(如lanchain,pandasai)就可以使用 ollama支持的免费开源模型替代chatgpt了。

我们这里演示其流式输出模式。

from openai import OpenAI
client = OpenAI(
    base_url='http://localhost:11434/v1/',
    api_key='ollama', #实际上本地模型不需要api_key
)

completion = client.chat.completions.create(
    messages=[
        {
            'role': 'user',
            'content': '段子赏析:爱一个人的眼神是藏不住的,爱两个人就一定要藏住。',
        }
    ],
    model='qwen2',
    stream=True  # add this line to enable streaming output
)
from IPython.display import display,clear_output 
response = ""
for chunk in completion:
    response += chunk.choices[0].delta.content
    print(response)
    clear_output(wait=True)
这个段子以幽默的方式探讨了爱情中的微妙之处。它指出当爱一个人时,人们很容易在眼神、言语和行动中流露出这份情感,而这种直接表达是无心之失,却也容易被察觉或误解。

“爱一个人的眼神是藏不住的”,这句话强调了爱情中的热情与自然流露,当我们深爱某人时,哪怕试图掩饰,那份炽热的情感还是会在我们的眼睛里反映出来。这可能是不经意间的微笑、温柔的目光或是无法抗拒的关心与注意。人们往往在无意识中用身体语言表达出自己的感情,尤其是在真正爱一个人的时候。

然而,“爱两个人就一定要藏住”,则可能暗示了对爱情的不同层次或更复杂的考量。这里可能是指,在某些情境下,为了维护关系的平衡、隐私或是避免多头恋等复杂情感关系带来的困扰,需要在行为和表达上更加谨慎或保守。“藏住”可能意味着要控制自己的公开表现、减少与第二个人过于亲密的行为以及降低自己情绪上的直接暴露。

这个段子通过对比单恋情和双恋情在眼神或情感流露方面的不同态度,提出了爱情中的多重考量和策略。它既体现了对直接表达情感的欣赏,也提醒了人们在复杂情感关系中可能需要考虑的因素。

四,jupyter魔法命令交互

就我个人而言,我非常喜欢在jupyter notebook 中开发调试代码。

如果能够在notebook中就直接和ollama交互,并且自动把对话结果加入到history上下文,从而实现多轮对话交互,那是非常的美妙。

通过自定义一个jupyter 魔法命令,我们可以非常方便地实现上述功能。

完整定义代码见notebook源码。

import sys 
class Ollama:
    def __init__(self,
                 model='qwen2',
                 max_chat_rounds=20,
                 stream=True,
                 system=None,
                 history=None
                ):
        ...
             
    @classmethod
    def build_messages(cls,query=None,history=None,system=None):
        ...
        return messages

    def chat(self, messages, stream=True):
        ...
        return completion
        
        
    def __call__(self,query):
        ...
        return response 
    
    def register_magic(self):
        import IPython
        from IPython.core.magic import (Magics, magics_class, line_magic,
                                        cell_magic, line_cell_magic)
        ...
        magic = ChatMagics(ipython,self)
        ipython.register_magics(magic)

03d81e4f6d0f3d9cf734e54846b8db3d.png

91f2c7877cadf0419668f6ed430e95a7.png

Ollama入门教程:从安装到运行的完整指南 随着人工智能(AI)技术的快速发展,大型语言模型(LLMs)逐渐成为了各行各业的重要工具。然而,使用这些强大模型的同时,数据隐私、处理效率和部署复杂度等问题也逐渐浮现。为了解决这些问题,Ollama 提供了一种创新的解决方案——通过本地化部署大型语言模型,不仅能够增强数据隐私性,还能提高模型的运行效率。本文将详细介绍如何下载和安装 Ollama,如何选择和运行不同的语言模型,以及 Ollama 的特点、适用场景、优缺点等内容,帮助大家深入了解这一平台。ollama官网🚪 ollama官方文档🚪 根据自己 阅读详情

相关推荐

Ollama:一个在本地部署、运行大型语言模型的工具

所谓自定义模型就是不适用Ollama官方模型库中的模型,理论可以使用其他各类经过转换处理的模型Ollama库中的模型可以通过提示进行自定义。python复制代码FROM llama3 # 设置温度参数 PARAMETER temperature 1 # 设置SYSTEM 消息 SYSTEM """作为AI智能助手,你将竭尽所能为员工提供严谨和有帮助的答复。"""Modelfile文档One-API是一个OpenAI接口管理 & 分发系统,支持各类大模型。这里使用Docker快速进行部署。拉取镜像。

2401_84495725的博客 6728

一文彻底整明白,基于Ollama工具的LLM大语言模型Web可视化对话机器人部署指南

在上一篇博文中,我们在本地部署了**Llama 3 8B**参数大模型,并用 Python 写了一个控制台对话客户端,基本能愉快的与 Llama 大模型对话聊天了。但控制台总归太技术化,体验不是很友好,我们希望能有个类似 ChatGPT 那样的 Web 聊天对话界面,本博文就安排起来……

老牛啊 1万+

Windows环境下DataEase一站式安装指南(含WSL2+Docker配置)

本文详细介绍了在Windows环境下通过WSL2和Docker快速部署DataEase的完整教程。从WSL2配置、Docker环境搭建到DataEase离线安装,逐步指导用户完成一站式部署,特别适合需要快速搭建数据分析平台的开发者。教程包含常见问题解决方案和性能优化技巧,帮助用户高效使用这款国产开源数据可视化工具。

weixin_42526166的博客 399

使用ollama在本地部署llama3-8b大模型

使用ollama在本地部署llama3-8b大模型

weixin_39945822的博客 1万+

AWS RDS 介绍 三)创建 RDS 实例

AWS RDS 介绍 共分为 7 个部分, 其中 第 3部分重点介绍,如何创建一个RDS 实例。 三) AWS RDS 试用MySQL http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.MySQL.

XuYongshi02的专栏 7648

常用本体建模工具

常用本体建模工具: Apollo、OntoStudio、TopBraid Composer、Semantic Turkey、Knoodl、Chimaera、OliEd、WebODE、Kmgen和DOME Protégé Protégé[1]是一款由斯坦福大学编写并维护的开源本体建模和编辑工具,其支持Web版本和PC版本,使用OWL语言(关于OWL的详细介绍可参看前文2.1节内容)对知识进行表示,读者可以通过Protégé的官方网站访问Web版本或下载桌面版本。Protégé最早开发于1987年,最初目的是

qq_40503347的博客 6173

【LLM大模型】Ollama 本地CPU部署开源大模型

【LLM大模型】Ollama 本地CPU部署开源大模型

pythonhy的博客 1717

做蛋白组学数据分析,竟然还不会使用DIA-NN软件,走过路过不要错过,进来免费学习!!!

蛋白组学分析工具DIA-NN使用

wcy1995427的博客 9879

【技术详解】Ollama:如何在本地CPU上部署开源大模型

Ollama可以在本地CPU非常方便地部署许多开源的大模型。如 Facebook的llama3, 谷歌的gemma, 微软的phi3,阿里的qwen2 等模型。它基于llama.cpp实现,本地CPU推理效率非常高(当然如果有GPU的话,推理效率会更高), 还可以兼容 openai的接口。本文将按照如下顺序介绍Ollama的使用方法~⚫️ 下载安装Ollama⚫️ 命令行交互⚫️ python接口交互⚫️ jupyter魔法命令交互。

2401_84495872的博客 4329

基于Jeecgboot3.8.1的vue3版本前后端分离的flowable流程管理平台

基于Jeecgboot3.8.1的vue3版本前后端分离的flowable流程管理平台

宁波阿成的博客 1544

Android Jetpack 最全面试题及参考答案

要使用 WorkManager 定义一个异步任务,以下是详细步骤。首先,需要创建一个继承自 Worker 类的自定义类,这个类代表了要执行的具体任务逻辑。// 在这里编写具体的任务逻辑,比如从网络下载文件try {在上述代码中,doWork方法就是任务的核心执行逻辑所在,这里模拟了从给定的 URL 下载文件到本地的操作,若下载成功返回,若出现异常则返回。然后,在需要调度任务的地方,比如在某个 Activity 或者 Fragment 中,通过构建 WorkRequest 来安排任务执行。

大模型大数据攻城狮的专栏 1899

LLM大模型教程:Ollama 本地CPU部署开源大模型

Ollama可以在本地CPU非常方便地部署许多开源的大模型。如 Facebook的llama3, 谷歌的gemma, 微软的phi3,阿里的qwen2 等模型。

AAI666666的博客 1989

番外篇 | 关于YOLO11算法的改进点总结

关于YOLO11算法的改进点总结。🌈

小哥谈 2314

Ollama 本地CPU部署开源大模型(附教程)

Ollama 本地CPU部署开源大模型(附教程)

2401_82469710的博客 1796

深度学习中常用的几种卷积(下篇):膨胀卷积、可分离卷积(深度可分离、空间可分离)、分组卷积(附Pytorch测试代码)

膨胀卷积也称为扩张卷积或空洞卷积,一般可通过对标准二维卷积的卷积核设置合适的膨胀率(具体地指卷积核元素之间的距离)实现。合理利用膨胀卷积可在不引入其他参数的同时,扩大输出中元素的感受野,提高特征的全局表示能力。下面通过展示几个不同膨胀率下的卷积核大小以及感受野变化情况,可以更直观的理解:图中灰色为输入,蓝色为卷积核,黄色为输出。1)dilation=1:表示卷积核元素之间距离为1,使用0进行大小为dilation-1=0的填充(这是默认情况),因此。

NorthSmile的博客 9018

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

上一篇: 腾讯元宝,有点东西~
下一篇: 30分钟吃掉ipywidgets交互工具
算法美食屋
博客等级 码龄9年 2万+粉丝 154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值