Ollama - Llama3 docker版本安装部署使用

news2024/12/25 12:53:53

项目地址:https://github.com/meta-llama/llama3

Meta 发布两款开源Llama 3 8B与Llama 3 70B模型,供外部开发者免费使用。Llama 3的这两个版本,也将很快登陆主要的云供应商。

按照Meta的说法,Llama 3 8B和Llama 3 70B是目前同体量下,性能最好的开源模型。

Llama 3 8B在某些测试集上性能比llama 2 70B还要强!

Llama3是Meta于2024年4月18日开源的LLM,目前开放了8B和70B两个版本,两个版本均支持最大为8192个token的序列长度( GPT-4支持128K  = = )

Llama3在Meta自制的两个24K GPU集群上进行预训练,使用15T的训练数据,其中5%为非英文数据,故Llama3的中文能力稍弱,Meta认为Llama3是目前最强的开源大模型

Llama3如果单纯使用的话推荐用Ollama进行部署,简单方便,我有具体的下游任务,所以需要自己微调

安装Ollama
Ollama是专门为本地化运行大模型设计的软件,可以运行大多数开源大模型,如llama,gemma,qwen等
首先去官网下载Ollama软件:https://ollama.com/

CPU only  安装Ollama

docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

Nvidia GPU

安装 NVIDIA 容器工具包。

使用 Apt 安装¶

1. 配置仓库

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

2. 安装 NVIDIA 容器工具包

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

使用 Yum 或 Dnf 安装¶

1. 配置仓库

curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo \
  | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo

2. 安装 NVIDIA 容器工具包

sudo yum install -y nvidia-container-toolkit

配置 Docker 使用 Nvidia 驱动¶

sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

启动容器

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

AMD GPU

要在 Docker 中使用 AMD GPU 运行 Ollama,请使用 rocm 标签并运行以下命令:

docker run -d --device /dev/kfd --device /dev/dri -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama:rocm

本地运行模型

docker exec -it ollama ollama run llama3

进入容器

docker exec -it ollama /bin/bash

下载模型

 Ollama 支持在 https://ollama.com/library上获取的模型列表

ollama/examples/python-simplechat/client.py at main · ollama/ollama · GitHub

使用python链接:

import json
import requests

# NOTE: ollama must be running for this to work, start the ollama app or run `ollama serve`
model = "llama3"  # TODO: update this for whatever model you wish to use


def chat(messages):
    r = requests.post(
        "http://38.6.221.93:11434/api/chat",
        json={"model": model, "messages": messages, "stream": True},
	stream=True
    )
    r.raise_for_status()
    output = ""

    for line in r.iter_lines():
        body = json.loads(line)
        if "error" in body:
            raise Exception(body["error"])
        if body.get("done") is False:
            message = body.get("message", "")
            content = message.get("content", "")
            output += content
            # the response streams one token at a time, print that as we receive it
            print(content, end="", flush=True)

        if body.get("done", False):
            message["content"] = output
            return message


def main():
    messages = []

    while True:
        user_input = input("请输入: ")
        if not user_input:
            exit()
        print()
        messages.append({"role": "user", "content": user_input})
        message = chat(messages)
        messages.append(message)
        print("\n\n")


if __name__ == "__main__":
    main()

OPEN WebUI

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

参考资料:

魔搭社区

Docker 文档 - Ollama中文网

Installing the NVIDIA Container Toolkit — NVIDIA Container Toolkit 1.16.0 documentation

llama3.1

GitHub - open-webui/open-webui: User-friendly WebUI for LLMs (Formerly Ollama WebUI)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2054919.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

threejs中实现物体阴影

在Three.js中实现阴影需要几个步骤,包括设置渲染器、光源以及物体的材质等。以下是一个基本的实现阴影的步骤: 1、设置渲染器以支持阴影: const renderer new THREE.WebGLRenderer(); renderer.setSize(window.innerWidth, window.innerH…

三大运营管理平台:打造智能化新能源数据管理的核心利器

随着全球能源结构的转型和新能源技术的快速发展,智能化新能源数据管理成为行业发展的关键。三大运营管理平台的出现,正是为了解决这一需求,它们通过整合先进的信息技术和智能算法,为新能源企业提供了全面、高效、精准的数据管理解…

告别帕金森手抖,这些维生素是你的秘密武器!

亲们,你们有没有遇到过这样的情况?家里的长辈或是自己,偶尔会出现手不自觉颤抖的现象,特别是被诊断为帕金森病的朋友,更是深受其扰。😔 别担心,今天就来聊聊如何通过科学补充一些关键维生素&…

函数:02

1.三角函数 名称表达式正弦sinx b r \frac{b}{r} rb​余弦cosx a r \frac{a}{r} ra​正切tanx b a \frac{b}{a} ab​余切cotx a b \frac{a}{b} ba​正割secx r a \frac{r}{a} ar​余割cotx r b \frac{r}{b} br​ 1.1用正弦,余弦函数表示正/余切,正/余割…

Web大学生网页作业成品——保护环境环保介绍网页设计与实现(HTML+CSS)(1个页面)

🎉🎉🎉 常见网页设计作业题材有**汽车、环保、明星、文化、国家、抗疫、景点、人物、体育、植物、公益、图书、节日、游戏、商城、旅游、家乡、学校、电影、动漫、非遗、动物、个人、企业、美食、婚纱、其他**等网页设计题目, 可满足大学生网…

20221元组

在Python语言中, (7)是一种可变的、有序的序列结构,其中元素可以重复。 A.元组(tuple) B. 字符串(str) C. 列表(list) D.集合(set) ChatGPT 说: ChatGPT 在Python中,选项 C 列表(list) 符合题目描述。 解释: 列表 (list) 是一种可变的、有…

OOP篇(Java - 思维逻辑练习)(doing)

目录 一、继承 1. 简介 2. 表现形式 2.1. 电脑的表现形式 2.2. 程序的表现形式 资料库 课程 课程放入到资料库 视频资源 资源库 存在问题 如何解决问题 3. 继承 定义父类 课程类继承 视频类继承item 资源库类2 整个的继承关系 4. 通过继承得到了什么&#x…

基于spring boot的酒店管理系统

获取源码联系方式请查看文章结尾🍅 目 录 基于spying boot的酒店管理系统 ABSTRACT 第一章 绪论 1.1课题背景 1.2研究意义 1.3研究内容 第二章 技术介绍 2.1相关技术 2.2java技术 2.3MySQL数据库 2.4 Tomcat介绍 2.5 SSM框架 第3章 需求分析 3.1需求分…

水文仪器设备

水文仪器设备可以监测水位、雨量、流速、流量等水文要素。这些设备使用各种传感技术和测量原理来获取准确的数据。以下是常见的水文仪器设备: 水位计:用来测量水位高度的仪器。常见的水位计有浮标式水位计、压力式水位计、超声波水位计等。 雨量计&…

Redis大显身手:实时用户活跃排行榜

文章目录 场景说明方案设计数据结构 Redis使用方案排行榜实现更新用户活跃积分幂等策略榜单评分更新触发活跃度更新排行榜查询 技术派项目源码地址 : Gitee :技术派 - https://gitee.com/itwanger/paicodingGithub :技术派 - https://github.com/itwanger/paicoding 效果如图 …

maven项目的目录结构

今天用jdk17创建maven项目时候出的问题 那就一步步自己整了 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schema…

车载以太网AVB系统方案搭建基于100BASE-T1车载以太网

1.音频传输系统需求 音频是智能座舱的核心功能&#xff0c;涵盖车载音响、语音识别、e-Call、消噪及回声消除等应用&#xff0c;随着汽车智能网联化的发展&#xff0c;对音频的开发要求也越来越高。传统的车载音频系统采用模拟并行音频信号传输方式&#xff0c;难以在功能增加…

RabbitMQ消息持久化实现

RabbitMQ消息持久化实现 1. 交换器的持久化2. 队列的持久化3. 消息的持久化 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; RabbitMQ作为流行的消息队列&#xff08;MQ&#xff09;产品&#xff0c;提供了全面的持久化机制&#xff0c;确保…

Leetcode每日刷题之209.长度最小的子数组(C++)

1.题目解析 根据题目我们知道所给的数组均是正整数&#xff0c;我们需要找到的是该数组的子数组&#xff0c;使其子数组内所有元素之和大于或等于给出的目标数字target&#xff0c;然后返回其长度&#xff0c;最终找出所以满足条件的子数组&#xff0c;并且要返回长度最小的子数…

【Redis分析】(二) Sentinel

哨兵 - 高可用 哨兵&#xff08;Sentinel&#xff09; 是 Redis 的高可用性解决方案&#xff1a;由一个或多个 Sentinel 实例组成的 Sentinel 系统可以监视任意多个主服务器&#xff0c;以及这些主服务器属下的所有从服务器。 Sentinel 可以在被监视的主服务器进入下线状态时…

mysql windows安装与远程连接配置

安装包在主页资源中 一、安装(此安装教程为“mysql-installer-community-5.7.41.0.msi”安装教程&#xff0c;安装到win10环境) 保持默认选项&#xff0c;点击”Next“。 点开第一行加号展开一路展开找到“MySQL Server 5,7,41 - X64”点击选中点击一下中间只想右侧的箭头看到…

encoding with ‘idna‘ codec failed (UnicodeError: label empty or too long)

今天在使用Flask连接mysql的时候&#xff0c;遇到了一个报错&#xff1a;encoding with ‘idna’ codec failed (UnicodeError: label empty or too long) 网上查了一下说是字符集的问题&#xff0c;然后尝试修改了一下字符集&#xff0c;结果还是不行。 最后去翻阅SQLAlchemy…

AI时代的学术写作:Kimi如何助力文献综述?

在学术研究的浩瀚海洋中&#xff0c;文献综述无疑是探索知识边界的重要工具。它不仅是对现有研究的梳理&#xff0c;更是对未来研究方向的指引。然而&#xff0c;撰写一篇高质量的文献综述并非易事&#xff0c;它要求研究者具备广泛的文献检索能力、深刻的分析批判能力以及严谨…

基于springboot的城市垃圾分类管理系统--论文pf

TOC springboot487基于springboot的城市垃圾分类管理系统--论文pf 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进…

Spring发送邮件性能优化?如何集成发邮件?

Spring发送邮件安全性探讨&#xff01;Spring发送邮件功能有哪些&#xff1f; 邮件发送的性能逐渐成为影响用户体验的重要因素之一。AokSend将探讨如何在Spring框架中进行Spring发送邮件的性能优化&#xff0c;确保系统能够高效、稳定地处理大量邮件请求。 Spring发送邮件&am…