5分钟在MAC下本地搭建大模型

本文介绍了Ollama,一个易于使用的本地大模型运行框架,支持本地运行Llama2等模型,以及部署OpenWebUI提供离线交互的WebUI。教程包括安装Ollama、运行中文模型和部署OpenWebUI的过程。

一、安装ollma

Ollama——一个简明易用的本地大模型运行框架。随着围绕着 Ollama 的生态走向前台,更多用户也可以方便地在自己电脑上玩转大模型了。
Ollama 的目标是帮助开发者在本地运行、创建和共享大型语言模型。Ollama 目前处于早期预览阶段,但已经提供了一些核心功能。例如,它支持运行和对话 Llama 2,这是 Meta 新推出的模型。此外,Ollama 还提供了一个模型库,开发者可以在这里下载和使用各种开源模型。Ollama 还提供了一种名为 Modelfile 的文件格式,开发者可以使用它来定义和创建自定义模型。

Download Ollama on macOS

1.1 运行一个离线大模型

这里以中文支持的比较好的阿里qwen-7b大模型为例,

ollama run qwen:7b

也可以去这里看看其他的开源大模型

library

可以直接在terminal里和大模型对话了,并且可以满足基本的需求

二、 部署Open WebUI

Open WebUI 是一个可扩展、功能丰富且用户友好的自托管 WebUI,旨在完全离线操作。**它支持各种 LLM 运行程序,包括 Ollama 和 OpenAI 兼容的 API。

2.1 首先创建一个虚拟环境

这里命名为ollama,创建虚拟环境的目的是隔离本地的python环境


conda create -n ollama python=3.11
conda activate ollama

2.2 构建并安装

git clone https://github.com/open-webui/open-webui.git
cd open-webui/

# Copying required .env file
cp -RPp .env.example .env

# Building Frontend Using Node
npm i
npm run build

# Serving Frontend with the Backend
cd ./backend
pip install -r requirements.txt -U
# 随意指定一个端口
uvicorn main:app --host 0.0.0.0 --port 8899

2.3 然后输入网址访问

这个界面和chatGPT几乎一摸一样,用起来非常的丝滑。

Mac电脑上搭建本地的BERT模型,可以通过以下几个关键步骤完成:环境配置、模型获取与加载、以及部署运行。以下是详细说明: ### 环境配置 首先需要确保Mac系统中已经安装了Python和相关的深度学习框架,推荐使用PyTorch或TensorFlow。由于BERT模型通常依赖于Hugging Face提供的Transformers库,因此还需要安装该库。 1. 安装Python(建议3.8及以上版本) 2. 安装PyTorch或TensorFlow: ```bash pip install torch # 如果使用PyTorch ``` 3. 安装Transformers库: ```bash pip install transformers ``` 4. (可选)为了加速模型推理,可以安装`accelerate`库以支持多GPU和混合精度计算: ```bash pip install accelerate ``` 对于M1/M2/M3芯片的MacBook,建议使用原生支持ARM架构的库版本,例如PyTorch官方已经提供了对Apple Silicon的良好支持[^1]。 ### 模型获取与加载 Hugging Face的Model Hub中提供了多种预训练的BERT模型,可以直接下载并加载到本地环境中。例如,可以使用`bert-base-uncased`作为基础模型。 以下是一个简单的代码示例,展示如何加载BERT模型及其对应的tokenizer: ```python from transformers import BertTokenizer, BertModel # 加载预训练的BERT tokenizer 和模型 tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') model = BertModel.from_pretrained('bert-base-uncased') # 示例输入文本 text = "Here is some text to encode." # 使用tokenizer将文本编码为模型可以处理的格式 encoded_input = tokenizer(text, return_tensors='pt') # 将编码后的输入送入模型进行前向传播 output = model(**encoded_input) # 输出结果 print(output.last_hidden_state) ``` 如果希望在推理过程中启用优化功能(如混合精度或GPU加速),可以使用`device_map="auto"`参数来自动分配设备资源: ```python model = BertModel.from_pretrained('bert-base-uncased', device_map="auto") ``` 这种方式可以让模型根据可用硬件自动选择最佳执行设备,从而提高效率[^3]。 ### 模型部署 部署BERT模型可以在本地构建一个简单的API服务,便于后续集成到应用程序中。可以使用FastAPI或Flask创建一个Web服务接口。 以下是一个基于FastAPI的简单示例: ```python from fastapi import FastAPI from pydantic import BaseModel from transformers import BertTokenizer, BertModel import torch app = FastAPI() # 加载模型和tokenizer tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') model = BertModel.from_pretrained('bert-base-uncased').to('mps') # 使用MPS加速 class TextRequest(BaseModel): text: str @app.post("/encode") def encode_text(request: TextRequest): encoded_input = tokenizer(request.text, return_tensors='pt').to('mps') with torch.no_grad(): output = model(**encoded_input) return {"embedding": output.last_hidden_state.mean(dim=1).cpu().numpy().tolist()} ``` 启动服务后,可以通过POST请求访问`/encode`端点,传入文本内容即可获得对应的BERT嵌入向量。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值