大模型-LLM-large language model
大模型介绍
大模型的本地安装
Ollama 是一个开源的大型语言模型服务工具,它帮助用户快速在本地运行大模型。通过简单的安装指令,用户可以执行一
条命令就在本地运行开源大型语言模型,
ollama 官网: https://ollama.com/
ollama serve # 启动 ollama
ollama create # 从模型文件创建模型
ollama show # 显示模型信息
ollama run # 运行模型,会先自动下载模型
ollama pull # 从注册仓库中拉取模型
ollama push # 将模型推送到注册仓库
ollama list # 列出已下载模型
ollama ps # 列出正在运行的模型
ollama cp # 复制模型
ollama rm # 删除模型
下载llama模型
在大模型(尤其是大型语言模型,LLMs)中,参数数量通常以“B”为单位进行表示,这里的“B”是英文单词“Billion”的缩写,意思是“十亿”。因此,当提到大模型中的“8B”时,它指的是模型具有80亿个参数。 具体来说,这些参数可以理解为模型内部的可训练“神经元”,它们在模型训练过程中被不断调整和优化,以使得模型能够执行特定的任务,如理解和生成人类语言。这些参数的数量决定了模型的复杂度和能力,一般来说,参数数量越多,模型的表达能力和泛化能力通常越强,但同时也需要更多的计算资源和时间来进行训练和推理。
微调
Unsloth是一个开源的大模型训练加速项目,使用OpenAI的Triton对模型的计算过程进行重写,大幅提升模型的训练速度,降低训练中的显存占用。Unsloth能够保证重写后的模型计算的一致性,实现中不存在近似计算,模型训练的精度损失为零。Unsloth支持绝大多数主流的GPU设备,包括V100, T4, Titan V, RTX 20, 30, 40x, A100, H100, L40等,支持对LoRA和QLoRA的训练加速和高效显存管理,支持Flash Attention。
https://unsloth.ai/
微调 一个模型需要多少GPU显存?
高效微调(PEFT ):Lora
大模型部署实战
Open WebUI
Open WebUI 是一个可扩展、功能丰富、用户友好的自托管 WebUI ,专为大型语言模型( LLM )设计,旨在完全离线操作。它提供了
直观且响应式的用户界面,使用户能够方便地加载、配置、运行和监控各种 AI 模型,而无需编写代码或使用命令行界面。
一、主要功能
•支持多种 LLM : Open WebUI 支持多种大型语言模型运行器,包括 Ollama 和 OpenAI 兼容的 API 。
•多模型对话:用户可以轻松地与多个模型同时互动,利用它们的独特优势获得最佳响应。
•协作聊天:支持多用户协作聊天,利用多个模型的集体智能进行群聊。
•再生历史访问记录:允许用户轻松回顾和探索整个再生历史记录。
•导入 / 导出聊天历史:支持无缝地移入和移出聊天数据。
•语音输入支持:提供语音输入功能,用户可以通过语音与模型互动。
•高级参数微调:允许用户通过调整参数(如温度)并定义系统提示,以定制对话到特定偏好和需求。
•图像生成集成:无缝集成图像生成功能,如 AUTOMATIC1111 API 和 DALL-E ,用动态视觉内容丰富聊天体验。
•OpenAI API 集成:无缝集成和定制各种兼容 OpenAI 的 API ,增强聊天互动的多功能性。
•外部 Ollama 服务器连接:支持配置环境变量以连接到托管在不同地址的外部 Ollama 服务器。
•多个 Ollama 实例负载均衡:支持将聊天请求分布在多个 Ollama 实例上,以提高性能和可靠性。
•多用户管理:提供直观的管理面板以监督和管理用户。
•基于角色的访问控制( RBAC ):通过限制权限确保安全访问,只有授权的个人才能访问 Ollama ,管理员保留专属的模型创建 / 拉取
权限。
二、部署与安装
•支持多种部署方式: Open WebUI 支持 Docker 和 Kubernetes 、等容器化技术安装或 pip 直接手动安装,用户可以通过简单的配
置和命令实现快速部署和高效管理。官网: https://docs.openwebui.com/
•安装:安装过程可能涉及配置环境变量、安装必要的依赖项(如 Python 和 Node.js )、下载和配置模型文件等步骤。具体安装步骤
可能因操作系统和用户需求而有所不同。
三、应用场景
•本地模型调试与调用: Open WebUI 为本地大语言模型提供了图形化界面,方便用户进行模型调试和调用。
•离线运行:由于 Open WebUI 旨在完全离线操作,因此它非常适合在没有网络连接或需要保护数据隐私的环境中使用。
•个性化定制:用户可以根据自己的需求对 Open WebUI 进行个性化定制,如调整界面布局、添加自定义功能等。
综上所述, Open WebUI 是一个功能强大、易于使用的 LLM 大模型 Web 交互界面工具,它为用户提供了便捷、高效的使用体验,
并满足了用户多样化的需求。
docker 的介绍
Docker 是一个开源的应用容器引擎。通过容器化技术简化了应用程序的部署和管理,为应用打包、部署平台,而非单纯的虚拟化技
术。
以下是对 Docker 的详细介绍:
一、 Docker 的核心概念
1.容器:是一种轻量级、可执行的独立软件包,包含应用运行所需的一切要素,如库、系统工具、代码和运行时。容器化技术将应用程
序与底层系统解耦,使得应用可以在几乎任何地方以相同的方式运行。容器可以被创建、启动、停止、删除、暂停等。
2.镜像: Docker 镜像是一个只读的模板,包含了运行某个软件所需要的所有内容,包括代码、运行时环境、库文件、环境变量和配置
文件等。通过镜像,可以创建多个容器实例。镜像类似于虚拟机中的快照,用户可以从镜像启动一个或多个容器。
3.仓库:仓库是用于存储和分享镜像的地方,类似于代码仓库。 Docker 官方提供了 Docker Hub 作为默认的公共仓库,用户可以在其
中找到各种公共镜像。此外,用户还可以创建自己的私有仓库,以存储和管理自己的镜像。
4 .Dockerfile : Dockerfile 是一个文本文件,用于定义构建镜像的步骤和配置。通过 Dockerfile ,可以指定基础镜像、安装依赖
项、配置环境变量、复制文件等操作,从而实现自定义镜像的构建。
二、 Docker 的优势
5.轻量级虚拟化: Docker 容器较于传统的虚拟机更加轻量和高效,能够快速启动和停止,节省资源系统。
6.运行环境一致性: Docker 通过镜像机制,确保了应用在本地、开发、测试和生产环境中的一致性,减少了因环境差异导致的问题。
7.可移植性: Docker 容器可以在任何支持 Docker 的环境中运行,无论是开发环境、测试环境还是生产环境,无需担心依赖和环境配
置的差异。
8.高效的资源利用:多个 Docker 容器可以共享主机的操作系统内核,从而更有效地利用系统资源。
9.快速部署和扩展: Docker 容器可以快速启动和部署,并且可以根据需求轻松地进行水平扩展。
1 0 .DevOps 支持: Docker 桥接了开发和运维之间的差距,使团队能够有效的协作并实现 DevOps 实践。
三、 Docker 的应用场景
1.应用程序的快速部署和交付: Docker 允许将应用程序及其依赖项打包为容器,使其可以在不同环境中轻松部署和交付。
2.微服务架构: Docker 是微服务架构的理想选择,因为它允许开发人员将每个微服务打包成一个独立的容器。
3.持续集成 / 持续部署( CI/CD ): Docker 与 CI/CD 工具紧密集成,可以帮助开发人员实现自动化的构建、测试和部署流程。
4.混合云 / 多云管理: Docker 为混合云 / 多云策略提供了一个统一的抽象层,简化了多云管理并提高应用程序的可移植性。
5.边缘计算: Docker 为边缘计算提供了一个轻量级、可移植的运行时环境。
6.数据科学和机器学习: Docker 为数据科学家提供了一个可重复、可移植的工作环境。
四、 Docker 的安装与使用
用户可以从 Docker 官方网站 https://www.docker.com/下载适合其操作系统的 Docker 安装程序,并按照提示完成安装过程。
安装完成后,用户可以通过 Docker 命令行工具或图形界面工具来管理容器和镜像。
Docker 的常用命令包括查看镜像、搜索镜像、拉取镜像、删除镜像、保存镜像、加载镜像、新建并启动容器、查看正在运行的容
器、停止容器、启动容器、重启容器、删除容器、进入容器、查看容器日志等。
总之, Docker 是一种强大的容器化技术,它极大地简化了应用程序的部署和管理过程,提高了资源利用率和部署速度。随着微服
务架构和云计算的流行, Docker 已成为现代软件开发和运维的重要工具之一。
Open WebUI—手动安装
大模型推理
Hugging Face
Hugging Face 是一家专注于开发和推广最先进的机器学习技术,特别是自然语言处理(NLP)模型的公司。它成立于2016年,总部位于纽约,并且已经成为开源AI社区中不可或缺的一部分。Hugging Face因其在transformer架构上的工作而广为人知,该架构是现代许多先进NLP模型的基础。 主要产品和服务 Transformers 库: Hugging Face 提供了一个名为 Transformers 的Python库,它使得使用预训练的模型变得异常简单。这个库支持多种深度学习框架,包括 PyTorch 和 TensorFlow,提供了成千上万种预训练模型,涵盖了文本分类、信息抽取、问答系统等众多任务。 Model Hub: 一个庞大的预训练模型仓库,任何人都可以轻松地搜索、试用以及分享自己的模型。这里不仅包含了来自研究机构和企业的官方模型,还有大量由社区贡献的模型。 Datasets 库: 除了模型之外,Hugging Face 还提供了一个易于使用的数据集库,旨在帮助研究人员和开发者快速加载并处理数据集,加速实验流程。 Tokenizers 库: 提供了高效的工具用于构建和使用各种分词器,这对于将文本转换为模型能够理解的形式至关重要。 加速科研与开发: Hugging Face 致力于降低进入NLP领域的门槛,通过其平台和工具促进学术界与工业界的交流与合作。 社区与影响 Hugging Face 构建了一个活跃且开放的研究社区,鼓励知识共享和技术进步。它不仅是获取最新研究成果的地方,也是发布新模型和算法的首选平台之一。通过组织研讨会、发布教程和支持开源项目,Hugging Face 在全球范围内推动了AI教育的发展。 总之,Hugging Face 已成为自然语言处理领域的一个重要资源中心,无论是对于初学者还是经验丰富的研究人员来说,都是一个宝贵的工具箱。它的影响力已经扩展到了其他AI领域,如计算机视觉和语音识别,继续引领着人工智能技术的发展潮流。
transformers
transformers 和 diffusers 是由 Hugging Face 提供的两个不同的Python库,它们都用于处理深度学习模型,但各自有不同的重点和用途:
Transformers 用途:transformers 库主要用于自然语言处理(NLP)。它包括了大量预训练的模型,如 BERT、GPT-2、T5 等,这些模型适用于任务如文本分类、文本生成、问答、翻译等。模型多样性:提供了广泛的模型选择,支持多种任务和语言。 特性:提供了模型训练、微调、推理等。它还提供了丰富的工具和接口,使得与NLP相关的模型操作更加容易。社区和生态系统:有着庞大的社区和生态系统,提供了大量的教程、示例和支持。
Diffusers 用途:diffusers 是一个相对较新的库,专注于提供梯度扩散模型(如 DALL-E、Stable Diffusion 等),这些模型主要用于图像生成任务。模型专一性:主要集中在扩散模型上,用于生成高质量的图像。 特性:提供了一种简单直观的方式来使用和探索梯度扩散模型,使得生成图像变得容易。虽然目前社区和生态系统相比 transformers 来说较小,但 diffusers 库在图像生成领域的专注使其成为探索这一领域的理想选择。