如何试用 Ollama 运行本地模型 Mac M2

2024-04-10 15:04

本文主要是介绍如何试用 Ollama 运行本地模型 Mac M2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先下载 Ollama

https://github.com/ollama/ollama/tree/main

安装完成之后,启动 ollma 对应的模型,这里用的是 qwen:7b

ollama run qwen:7b

命令与模型直接交互
在这里插入图片描述
我的机器配置是M2 Pro/ 32G,运行 7b 模型毫无压力,而且推理时是用 GPU 进行运算的,可能就是 Ollama 底层是用 llama C++ 实现的,底层做了性能优化,对 Mac特别友好。

  • 纯C/C++实现,没有任何依赖
  • Apple Silicon 支持 - 通过ARM NEON、Accelerate和Metal框架进行优化
  • 对x86架构支持AVX、AVX2和AVX512
  • 支持1.5位、2位、3位、4位、5位、6位和8位整数量化,以加快推理速度并减少内存使用
  • 为NVIDIA GPU运行LLMs的自定义CUDA核心(通过HIP支持AMD GPU)
  • 支持Vulkan、SYCL和(部分)OpenCL后端
  • CPU+GPU混合推理,部分加速超过总VRAM容量的模型

下次再试试lammafile,就是前两天Google 那个女大神说跟比llama.cpp相比,她把 llamafile 的性能提高了 1.3x 到 5x。

API 调用Ollama

stream 参数控制是否是流式输出,非流式的速度会慢一些。
curl http://localhost:11434/api/generate -d ‘{
“model”: “qwen:7b”,
“prompt”: “你好”,
“stream”: true
}’

启动客户端访问本地 Ollama

首先把客户端代码 clone 到本地,这里我用的是 https://librechat.ai/ ,选择挺多的,Ollama github 仓库首页有个列表可以选择。
在这里插入图片描述

Clone 仓库

Docker env 配置
根目录下有个配置文件 .env.example,复制一个新的 .env,如果是本地运行,不对外服务,默认配置就可以。

Ollama 配置

配置 Ollama 的相关参数,将librechat.example.yaml复制一个到librechat.yaml,添加 ollama 的相关配置信息。
两个地方要注意修改一下

  1. /opt/env开始路径要改为本机正确的位置。
  2. Ollama API 的访问地址。
version: "3.4"# Do not edit this file directly. Use a ‘docker-compose.override.yaml’ file if you can.
# Refer to `docker-compose.override.yaml.example’ for some sample configurations.services:api:container_name: LibreChatports:- "${PORT}:${PORT}"depends_on:- mongodb- rag_apiimage: ghcr.io/danny-avila/librechat-dev:latestrestart: alwaysuser: "${UID}:${GID}"extra_hosts:- "host.docker.internal:host-gateway"environment:- HOST=0.0.0.0- MONGO_URI=mongodb://mongodb:27017/LibreChat- MEILI_HOST=http://meilisearch:7700- RAG_PORT=${RAG_PORT:-8000}- RAG_API_URL=http://rag_api:${RAG_PORT:-8000}volumes:- type: bindsource: /opt/env/docker/ollama/librechat.yamltarget: /app/librechat.yaml- type: bindsource: /opt/env/docker/ollama/.envtarget: /app/.env- /opt/env/docker/ollama/images:/app/client/public/images- /opt/env/docker/ollama/logs:/app/api/logsmongodb:container_name: chat-mongodbimage: mongorestart: alwaysuser: "${UID}:${GID}"volumes:- /opt/env/docker/ollama/data-node:/data/dbcommand: mongod --noauthmeilisearch:container_name: chat-meilisearchimage: getmeili/meilisearch:v1.7.3restart: alwaysuser: "${UID}:${GID}"environment:- MEILI_HOST=http://meilisearch:7700- MEILI_NO_ANALYTICS=truevolumes:- /opt/env/docker/ollama/meili_data_v1.7:/meili_datavectordb:image: ankane/pgvector:latestenvironment:POSTGRES_DB: mydatabasePOSTGRES_USER: myuserPOSTGRES_PASSWORD: mypasswordrestart: alwaysvolumes:- pgdata2:/var/lib/postgresql/datarag_api:image: ghcr.io/danny-avila/librechat-rag-api-dev-lite:latestenvironment:- DB_HOST=vectordb- RAG_PORT=${RAG_PORT:-8000}restart: alwaysdepends_on:- vectordbenv_file:- .envvolumes:pgdata2:

启动 librechat

docker-compose up -d

进入 librechat

浏览器进入http://localhost:3080/,选择 Ollama,模型 qwen:7b,很像 chatgpt。

在这里插入图片描述
Ollama 搭建完成,可以在本地使用模型了,我机器上可以比较顺畅的运行 qwen:14b。

这篇关于如何试用 Ollama 运行本地模型 Mac M2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/891390

相关文章

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)

如何在Mac上彻底删除Edge账户? 手动卸载Edge浏览器并清理残留文件技巧

《如何在Mac上彻底删除Edge账户?手动卸载Edge浏览器并清理残留文件技巧》Mac上的Edge账户里存了不少网站密码和个人信息,结果同事一不小心打开了,简直尴尬到爆炸,想要卸载edge浏览器并清... 如果你遇到 Microsoft Edge 浏览器运行迟缓、频繁崩溃或网页加载异常等问题,可以尝试多种方

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

Mac系统下卸载JAVA和JDK的步骤

《Mac系统下卸载JAVA和JDK的步骤》JDK是Java语言的软件开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源,:本文主要介绍Mac系统下卸载JAVA和JDK的相关资料,需... 目录1. 卸载系统自带的 Java 版本检查当前 Java 版本通过命令卸载系统 Java2. 卸载自定

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.

Java -jar命令如何运行外部依赖JAR包

《Java-jar命令如何运行外部依赖JAR包》在Java应用部署中,java-jar命令是启动可执行JAR包的标准方式,但当应用需要依赖外部JAR文件时,直接使用java-jar会面临类加载困... 目录引言:外部依赖JAR的必要性一、问题本质:类加载机制的限制1. Java -jar的默认行为2. 类加

java -jar命令运行 jar包时运行外部依赖jar包的场景分析

《java-jar命令运行jar包时运行外部依赖jar包的场景分析》:本文主要介绍java-jar命令运行jar包时运行外部依赖jar包的场景分析,本文给大家介绍的非常详细,对大家的学习或工作... 目录Java -jar命令运行 jar包时如何运行外部依赖jar包场景:解决:方法一、启动参数添加: -Xb

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹