【LLM】本地部署Gemma模型(图文)

本文介绍了开源工具Ollama,其基于Transformer和PyTorch,提供代码生成、数据分析等功能,并与web界面open-webui结合。文章详细说明了Ollama的优缺点,以及如何在Ubuntu系统中,包括使用docker进行安装和配置,以及如何下载和管理模型的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工具简介

我们需要使用到两个工具,一个是Ollama,另一个是open-webui。

Ollama

Ollama 是一个开源的大语言平台,基于 Transformers 和 PyTorch 架构,基于问答交互方式,提供大语言模型常用的功能,如代码生成、文本生成、数据分析等。

Ollama 的优势:

  • 开源: 免费使用,无需付费。
  • 易用: 简易的操作,无需复杂的代码或配置。
  • 功能强大: 提供广泛的功能,以满足各种需求。
  • 性能良好: 使用 PyTorch 和 Transformers 架构,可以实现快速和高效的模型训练。

Ollama 的局限性:

  • 模型规模限制: 与其他大语言模型(Chat GPT3.5、Chat GPT4等)相比,模型规模可能相对较小。
  • 数据集限制: 不支持所有数据集,特别是在特定领域的数据。

总体来说,Ollama 是一个强大的开源大语言平台,提供广泛的功能和良好的性能,适合各种任务。

open-webui

简单来讲,可以理解为Ollama的web ui。

机器配置

借助于**Ollama,开源大模型也可以通过CPU来运行,GPU会更快,且支持三大主流平台。**使用显卡要求显存6GB以上,对磁盘要求磁盘至少4GB,此外还要预留出模型存放的空间,如这里Gemma 7B模型约5.2GB。

⚠️如果使用显卡运行,安装之前需要检查显卡驱动是否存在。

配置步骤

⚠️本教程基于Ubuntu 22.04系统。

安装Ollama

这里介绍两种方式安装,及直接安装和在docker上安装,建议docker安装。

直接在机器上安装

  1. Ollama网址下载并安装Ollama。

    根据自己需要下载对应的操作系统版本,这里使用的ubuntu,直接复制如下命令到ubuntu上执行即可。

    curl -fsSL <https://ollama.com/install.sh> | sh
    

  2. 安装过程及其结果截图

  3. 记住这里的访问链接

    127.0.0.1:11434
    

使用docker 安装

创建网络

docker network create ollama

由于要使用到显卡,所以这里直接用命令跑

docker run -d --gpus=all -v /opt/ollama:/root/.ollama --network ollama -p 11434:11434 --name ollama --restart always ollama/ollama

如果出现了如下提示

docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].

通过如下方式解决docker调用显卡问题,然后再使用上述命令启动ollama服务。

curl -fsSL <https://nvidia.github.io/libnvidia-container/gpgkey> \\
    | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L <https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list> \\
    | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \\
    | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update

sudo apt-get install -y nvidia-container-toolkit

sudo systemctl daemon-reload
sudo systemctl restart docker

安装open-webui

安装open-webui很简单,这里会使用到docker,docker的安装教程这里就不给了。使用命令安装。

docker run -d --network host -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui

也可以使用如下docker-compose文件来安装,⚠️这里ollama使用容器安装的。如果使用宿主机直接安装,建议直接用host模式。

version: '3.8'

services:
  open-webui:
    image: ghcr.io/open-webui/open-webui
    container_name: open-webui
    ports:
      - "3000:8080"
    volumes:
      - /data/open-webui:/app/backend/data
    restart: always
    networks:
      - ollama
  
networks:
  ollama:
    external: true

配置模型

访问 服务器地址:3000 (如果使用host模式,请访问8080端口),进入登陆界面。

open-webui 首次登陆,需要自行注册管理员账号

登陆后,我们就可以下载模型了,先去ollama确定需要下载的模型编码,这里以gemma模型为例。

复制模型名称及其版本

点击如下按钮(忽略这里已经下载好的模型),进入设置界面

填入ollama后台然后点击下载,等待模型下载完毕(这里最好有科学环境,不然会很慢)

⚠️:ubuntu环境下直接安装情况下,默认模型路径为 /usr/share/ollama/.ollama

下载完成后,即可选择相应的模型进行对话。

### 如何在本地环境中部署 Anything LLM 用于图像识别的模型 #### 所需配置与环境准备 为了成功地在本地环境中部署 AnyThing LLM 并应用于图像识别任务,需要确保拥有合适的硬件资源以及软件环境。对于大多数深度学习框架而言,建议至少配备具有较高性能GPU的工作站来加速计算过程[^2]。 #### 软件安装与依赖项管理 1. Python 版本应不低于3.8版本; 2. 安装CUDA Toolkit 及 cuDNN 库 (如果使用NVIDIA GPU),以支持更快速度下的神经网络运算; 3. 利用 `pip` 或者 `conda` 工具安装必要的Python库文件,比如 PyTorch/TensorFlow、transformers 等机器学习框架及其扩展模块; ```bash # 创建并激活虚拟环境 conda create --name llm_env python=3.9 conda activate llm_env # 安装基础依赖 pip install torch torchvision torchaudio transformers datasets evaluate accelerate bitsandbytes ``` #### 获取预训练模型 AnyThing LLM 的具体实现可能基于不同的开源大模型,如 SAM 架构或其他变体,在此之前应当先下载对应的预训练权重文件。这一步骤通常可以通过 Hugging Face Model Hub 或其他公开平台完成[^4]。 ```python from transformers import AutoModelForObjectDetection, AutoFeatureExtractor model_name_or_path = "nvidia/segformer-b0-finetuned-ade-512-512" feature_extractor = AutoFeatureExtractor.from_pretrained(model_name_or_path) model = AutoModelForObjectDetection.from_pretrained(model_name_or_path) ``` #### 推理服务搭建 一旦完成了上述准备工作,则可以根据实际需求编写简单的API接口或者命令行工具来进行图片输入处理及结果返回。这里推荐采用 FastAPI 结合 uvicorn 来创建轻量级Web服务器实例。 ```python import uvicorn from fastapi import FastAPI, File, UploadFile from PIL import Image import io app = FastAPI() @app.post("/predict/") async def predict(file: UploadFile = File(...)): contents = await file.read() image = Image.open(io.BytesIO(contents)) inputs = feature_extractor(images=image, return_tensors="pt") outputs = model(**inputs) # 处理解析outputs... result = {"prediction": "..."} return result if __name__ == "__main__": uvicorn.run(app, host="0.0.0.0", port=8000) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值