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

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

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

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

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

⚫️ 下载安装Ollama

⚫️ 命令行交互

⚫️ python接口交互

⚫️ jupyter魔法命令交互

一,下载安装 Ollama

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

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

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

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

以下是一些常用的命令。

代码语言:javascript

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

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

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

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

ollama help #获取帮助

代码语言:javascript

!ollama help

代码语言:javascript

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动画没有做任何加速。这个回复速度还是非常的感人的~

三,Python接口交互

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

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

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

代码语言:javascript

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

代码语言:javascript

#!pip install ollama

代码语言:javascript

import ollama
response = ollama.chat(model='qwen2',
                       stream=False,
    messages=[{'role': 'user',
            'content': '段子赏析:我已经不是那个当年的穷小子了,我是今年的那个穷小子。'}]
)

代码语言:javascript

print(response['message']['content'])

代码语言:javascript

这个段子通过幽默的方式表达了对于个人经济状况的自嘲和幽默看待。在日常生活中,人们经常会遇到相似的自我调侃,尤其是在讨论个人财务或生活阶段变化时。这段话中的“已经不是当年的穷小子”暗示了过去某个时间点上的经济状况不佳,而“我是今年的那个穷小子”则将当前的情况与过去的困境相比较,强调了现在依然处于类似的经济挑战中。

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

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

代码语言:javascript

2, 使用openai接口交互

代码语言:javascript

#!pip install openai

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

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

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

代码语言:javascript

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
)

代码语言:javascript

from IPython.display import display,clear_output 
response = ""
for chunk in completion:
    response += chunk.choices[0].delta.content
    print(response)
    clear_output(wait=True)

代码语言:javascript

这个段子以幽默的方式探讨了爱情中的微妙之处。它指出当爱一个人时,人们很容易在眼神、言语和行动中流露出这份情感,而这种直接表达是无心之失,却也容易被察觉或误解。

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

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

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

代码语言:javascript

四,jupyter魔法命令交互

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

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

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

完整定义代码见notebook源码。

代码语言:javascript

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)

代码语言:javascript

如何系统的去学习AI大模型LLM ?

作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料 包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来

所有资料 ⚡️ ,朋友们如果有需要全套 《LLM大模型入门+进阶学习资源包》,扫码获取~

👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

在这里插入图片描述

四、AI大模型商业化落地方案

img

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。
  • 内容
    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
      - L1.4.1 知识大模型
      - L1.4.2 生产大模型
      - L1.4.3 模型工程方法论
      - L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
  • 内容
    • L2.1 API接口
      - L2.1.1 OpenAI API接口
      - L2.1.2 Python接口接入
      - L2.1.3 BOT工具类框架
      - L2.1.4 代码示例
    • L2.2 Prompt框架
      - L2.2.1 什么是Prompt
      - L2.2.2 Prompt框架应用现状
      - L2.2.3 基于GPTAS的Prompt框架
      - L2.2.4 Prompt框架与Thought
      - L2.2.5 Prompt框架与提示词
    • L2.3 流水线工程
      - L2.3.1 流水线工程的概念
      - L2.3.2 流水线工程的优点
      - L2.3.3 流水线工程的应用
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
  • 内容
    • L3.1 Agent模型框架
      - L3.1.1 Agent模型框架的设计理念
      - L3.1.2 Agent模型框架的核心组件
      - L3.1.3 Agent模型框架的实现细节
    • L3.2 MetaGPT
      - L3.2.1 MetaGPT的基本概念
      - L3.2.2 MetaGPT的工作原理
      - L3.2.3 MetaGPT的应用场景
    • L3.3 ChatGLM
      - L3.3.1 ChatGLM的特点
      - L3.3.2 ChatGLM的开发环境
      - L3.3.3 ChatGLM的使用示例
    • L3.4 LLAMA
      - L3.4.1 LLAMA的特点
      - L3.4.2 LLAMA的开发环境
      - L3.4.3 LLAMA的使用示例
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
  • 内容
    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

学习计划:

  • 阶段1:1-2个月,建立AI大模型的基础知识体系。
  • 阶段2:2-3个月,专注于API应用开发能力的提升。
  • 阶段3:3-4个月,深入实践AI大模型的应用架构和私有化部署。
  • 阶段4:4-5个月,专注于高级模型的应用和部署。
这份完整版的所有 ⚡️ 大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

全套 《LLM大模型入门+进阶学习资源包↓↓↓ 获取~

👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料 包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来

😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓

在这里插入图片描述

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

在这里插入图片描述

四、AI大模型商业化落地方案

img

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。
  • 内容
    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
      - L1.4.1 知识大模型
      - L1.4.2 生产大模型
      - L1.4.3 模型工程方法论
      - L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
  • 内容
    • L2.1 API接口
      - L2.1.1 OpenAI API接口
      - L2.1.2 Python接口接入
      - L2.1.3 BOT工具类框架
      - L2.1.4 代码示例
    • L2.2 Prompt框架
      - L2.2.1 什么是Prompt
      - L2.2.2 Prompt框架应用现状
      - L2.2.3 基于GPTAS的Prompt框架
      - L2.2.4 Prompt框架与Thought
      - L2.2.5 Prompt框架与提示词
    • L2.3 流水线工程
      - L2.3.1 流水线工程的概念
      - L2.3.2 流水线工程的优点
      - L2.3.3 流水线工程的应用
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
  • 内容
    • L3.1 Agent模型框架
      - L3.1.1 Agent模型框架的设计理念
      - L3.1.2 Agent模型框架的核心组件
      - L3.1.3 Agent模型框架的实现细节
    • L3.2 MetaGPT
      - L3.2.1 MetaGPT的基本概念
      - L3.2.2 MetaGPT的工作原理
      - L3.2.3 MetaGPT的应用场景
    • L3.3 ChatGLM
      - L3.3.1 ChatGLM的特点
      - L3.3.2 ChatGLM的开发环境
      - L3.3.3 ChatGLM的使用示例
    • L3.4 LLAMA
      - L3.4.1 LLAMA的特点
      - L3.4.2 LLAMA的开发环境
      - L3.4.3 LLAMA的使用示例
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
  • 内容
    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

学习计划:

  • 阶段1:1-2个月,建立AI大模型的基础知识体系。
  • 阶段2:2-3个月,专注于API应用开发能力的提升。
  • 阶段3:3-4个月,深入实践AI大模型的应用架构和私有化部署。
  • 阶段4:4-5个月,专注于高级模型的应用和部署。
这份完整版的大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓

在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐