使用 RunPod GPU

RunPod 是提供 GPU 资源的一个平台,可以在平台上租 GPU 按小时计费。支持所有主流的 GPU,价格也还好。本文将介绍如何在 RunPod 启动 Notebook 运行模型,模型使用 Flux UpScaler,显存需求大于 24 G。登陆网站,注册并充值,https://www.runpod.io/

在这里插入图片描述

创建 POD

选择 GPU 和 Docker 镜像,镜像选择 runpod/pytorch:2.4.0-py3.11-cuda12.4.1-devel-ubuntu22.04。
在这里插入图片描述
默认硬盘只有 20 G,如果模型很大,需要进行修改存储尺寸,点击 Edit Template,存储是要收费的,公用就可以。
在这里插入图片描述

启动Pod

安装需要的依赖

!pip install transformers diffusers accelerate protobuf sentencepiece matplotlib

UpScale

代码来自huggging face 的例子,https://huggingface.co/jasperai/Flux.1-dev-Controlnet-Upscaler

import torch
from diffusers.utils import load_image
from diffusers import FluxControlNetModel
from diffusers.pipelines import FluxControlNetPipeline
from huggingface_hub import login

login(token = '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')
from huggingface_hub import snapshot_download
flux = snapshot_download("black-forest-labs/FLUX.1-dev",local_dir="./flux")
upscaler = snapshot_download("jasperai/Flux.1-dev-Controlnet-Upscaler",local_dir="./flux")
# Load pipeline
controlnet = FluxControlNetModel.from_pretrained(
  upscaler,
  torch_dtype=torch.bfloat16
)
pipe = FluxControlNetPipeline.from_pretrained(
 flux,
  controlnet=controlnet,
  torch_dtype=torch.bfloat16
)
pipe.to("cuda")

# Load a control image
control_image = load_image(
  "https://huggingface.co/jasperai/Flux.1-dev-Controlnet-Upscaler/resolve/main/examples/input.jpg"
)

w, h = control_image.size

# Upscale x4
control_image = control_image.resize((w * 4, h * 4))

image = pipe(
    prompt="", 
    control_image=control_image,
    controlnet_conditioning_scale=0.6,
    num_inference_steps=28, 
    guidance_scale=3.5,
    height=control_image.size[1],
    width=control_image.size[0]
).images[0]
image

在这里插入图片描述
原始图片

import requests
from PIL import Image
from io import BytesIO
import matplotlib.pyplot as plt

# URL of the image
url = "https://huggingface.co/jasperai/Flux.1-dev-Controlnet-Upscaler/resolve/main/examples/input.jpg"

# Send a GET request to the URL
response = requests.get(url)

# Check if the request was successful
if response.status_code == 200:
    # Open the image from the response content
    image = Image.open(BytesIO(response.content))
    
    # Display the image
    plt.imshow(image)
    plt.axis('off')  # Hide axes
    plt.show()
else:
    print(f"Failed to retrieve image. Status code: {response.status_code}")

在这里插入图片描述

总结

RunPod 可以支持大显存需求的模型,将 Runpod 镜像下载到本地先调试好,例如需要的类库等等,这样可以省时间,有很多平台的都 提供 GPU 租赁,原理都是相似的,就看哪家更便宜些,国内的算力平台更便宜,就是英伟达的卡不好租。

<think>嗯,用户想了解如何使用ollama的deepseek模型调用butfusion共享GPU。首先,我需要理解这两个工具的基本情况。Ollama是一个本地运行大型语言模型的工具,而Butterfly Fusion可能是指某种GPU资源共享的平台,但用户可能拼写错误,正确的可能是“Butterfly Network”或者其他类似平台?或者可能是指某个特定的GPU共享服务,比如RunPod、Vast.ai等,或者是内部的共享集群?需要确认“butfusion”是否正确,但可能用户指的是某个特定的共享GPU服务,比如ClusterFusion或其他。暂时假设用户指的是在共享GPU的环境中调用Ollama的DeepSeek模型。 接下来,用户的需求是在共享GPU资源的环境下,通过Ollama来运行DeepSeek模型。Ollama默认可能使用本地GPU资源,但在共享环境中可能需要配置特定的参数,比如指定GPU设备、内存分配等。需要查阅Ollama的文档,看看是否有相关的环境变量或启动参数来指定GPU使用,比如CUDA_VISIBLE_DEVICES这样的环境变量,或者Ollama本身的配置选项。 另外,共享GPU可能涉及到容器化部署,比如使用Docker,这时候需要在Docker运行时添加GPU支持,例如使用`--gpus all`参数。如果用户的环境是基于Kubernetes或其他编排工具,可能需要配置相应的资源请求和限制。同时,需要确保Ollama的DeepSeek模型版本支持GPU加速,通常模型会提供不同版本,如带有GPU支持的GGUF文件或特定格式。 可能的步骤包括:1. 确认共享GPU环境的访问权限和配置;2. 安装并配置Ollama,确保其能够识别到可用的GPU;3. 下载或导入DeepSeek模型的GPU兼容版本;4. 运行Ollama时指定使用GPU资源。例如,在Docker中运行Ollama时,可能需要使用`docker run --gpus all`命令,并设置OLLAMA_NUM_GPU等环境变量来控制使用GPU数量。 还需要注意权限问题,共享环境中可能需要用户具有访问GPU的权限,或者安装相应的驱动和库,如NVIDIA的CUDA工具包、nvidia-docker等。此外,资源分配也很重要,避免占用过多的GPU内存影响其他用户。Ollama可能允许通过参数限制使用GPU内存,需要查阅相关文档。 最后,测试是否成功调用GPU,可以通过运行模型时的日志输出,或者使用命令如`nvidia-smi`来查看GPU使用情况。如果遇到问题,可能需要检查Ollama的日志,确认是否有GPU相关的错误信息,比如驱动不兼容、内存不足等,并逐一排查解决。</think>根据您的描述,您可能希望在使用 ollama 的 deepseek 模型时实现 GPU 资源共享(推测 "butfusion" 可能是指类似 Cluster/GPU Fusion 的共享资源调度场景)。以下是分步说明: 1. **基础环境准备** - 确认 GPU 驱动已安装: ```bash nvidia-smi # 查看 GPU 状态 ``` - 安装容器化工具(推荐 Docker): ```bash sudo apt-get install docker.io nvidia-container-toolkit ``` 2. **配置 GPU 共享模式** - 修改 Docker 配置 `/etc/docker/daemon.json`: ```json { "default-runtime": "nvidia", "runtimes": { "nvidia": { "path": "nvidia-container-runtime", "runtimeArgs": [] } } } ``` - 重启服务: ```bash sudo systemctl restart docker ``` 3. **部署 Ollama 容器** - 启动支持 GPU 的容器: ```bash docker run -d --gpus all -p 11434:11434 --name ollama ollama/ollama ``` 4. **加载 DeepSeek 模型** - 进入容器终端: ```bash docker exec -it ollama bash ``` - 下载 GPU 加速版模型: ```bash ollama pull deepseek:latest # 确认模型支持 GPU 加速 ``` 5. **资源限制配置** - 创建容器时限制 GPU 资源: ```bash docker run -d --gpus '"device=0,1"' --ulimit memlock=-1 -p 11434:11434 ollama/ollama ``` 表示使用 GPU 0 和 1,并解除内存锁定限制 6. **API 调用示例** ```python import requests response = requests.post( "http://localhost:11434/api/generate", json={ "model": "deepseek", "prompt": "解释量子计", "stream": False, "options": { "num_gpu": 1 # 指定 GPU 数量 } } ) print(response.json()["response"]) ``` **常见问题排查**: 1. 若出现 `CUDA out of memory` 错误: - 降低并行请求数量 - 添加 `"num_ctx": 4096` 参数减小上下文长度 2. 多用户共享时建议配合: - Kubernetes + NVIDIA GPU 子 - Slurm 等作业调度系统 建议通过 `docker stats` 命令实时监控资源使用情况,根据实际硬件调整 GPU 分配策略。如果涉及企业级集群管理,建议使用 Kubernetes DevicePlugins 实现更精细的 GPU 资源调度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值