织梦古典网站模板网站后台如何修改标题
news/
2025/10/8 3:06:06/
文章来源:
织梦古典网站模板,网站后台如何修改标题,做外贸兼职的网站设计,wordpress禁止图片一、ChatGLM3-6B介绍与快速入门 ChatGLM3 是智谱AI和清华大学 KEG 实验室在2023年10月27日联合发布的新一代对话预训练模型。ChatGLM3-6B 是 ChatGLM3 系列中的开源模型#xff0c;免费下载#xff0c;免费的商业化使用。 该模型在保留了前两代模型对话流畅、部署门槛低等众多…一、ChatGLM3-6B介绍与快速入门 ChatGLM3 是智谱AI和清华大学 KEG 实验室在2023年10月27日联合发布的新一代对话预训练模型。ChatGLM3-6B 是 ChatGLM3 系列中的开源模型免费下载免费的商业化使用。 该模型在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上ChatGLM3-6B 引入了如下特性ChatGLM 3 GitHub
更强大的基础模型 ChatGLM3-6B 的基础模型 ChatGLM3-6B-Base 采用了更多样的训练数据、更充分的训练步数和更合理的训练策略。在语义、数学、推理、代码、知识等不同角度的数据集上测评显示在44个中英文公开数据集测试中处于国内模型的第一位。ChatGLM3-6B-Base 具有在 10B 以下的基础模型中最强的性能。更完整的功能支持 ChatGLM3-6B 采用了全新设计的 Prompt 格式除正常的多轮对话外。同时原生支持工具调用Function Call、代码执行Code Interpreter和 Agent 任务等复杂场景。更全面的开源序列 除了对话模型 ChatGLM3-6B 外还开源了基础模型 ChatGLM3-6B-Base、长文本对话模型 ChatGLM3-6B-32K。以上所有权重对学术研究完全开放在填写问卷进行登记后亦允许免费商业使用。 性能层面ChatGLM3-6B在10B范围内性能最强推理能力直逼GPT-3.5功能层面ChatGLM3-6B重磅更新多模态功能、代码解释器功能、联网功能以及Agent优化功能四项核心功能全线逼近GPT-4 AI Agent人工智能代理是一个能够自主执行任务或达成目标的系统或程序能够围绕复杂问题进行任务拆解规划多步执行步骤能够实时围绕自动编写的代码进行debug能够根据人类意见反馈修改答案实时积累修改对话并进行阶段性微调等等具有很强的决策和执行能力。那ChatGLM3-6B模型开放的Function calling能力是大语言模型推理能力和复杂问题处理能力的核心体现是本次ChatGLM 3模型最为核心的功能迭代也是ChatGLM 3模型性能提升的有力证明。 开源模型列表
模型介绍上下文token数代码链接模型权重下载链接ChatGLM3-6B第三代 **ChatGLM 对话模型。**ChatGLM3-6B 采用了全新设计的 Prompt 格式除正常的多轮对话外。同时原生支持工具调用Function Call、代码执行Code Interpreter和 Agent 任务等复杂场景。8KHuggingface | 魔搭社区 | 始智社区 | Swanhub | 启智社区 )[ChatGLM3](https://github.com/THUDM/ChatGLM3ChatGLM3-6B-base**第三代ChatGLM基座模型。**ChatGLM3-6B-Base 采用了更多样的训练数据、更充分的训练步数和更合理的训练策略。在语义、数学、推理、代码、知识等不同角度的数据集上测评显示ChatGLM3-6B-Base 具有在 10B 以下的基础模型中最强的性能。8KHuggingface | 魔搭社区 | 始智社区 | Swanhub | 启智社区ChatGLM3-6B-32k**第三代ChatGLM长上下文对话模型。**在ChatGLM3-6B的基础上进一步强化了对于长文本的理解能力能够更好的处理最多32K长度的上下文。32KHuggingface | 魔搭社区 | 始智社区 | Swanhub | 启智社区
二、本地部署 大模型部署整体来看并不复杂且官方一般都会提供标准的模型部署流程但很多人在部署过程中会遇到各种各样的问题很难成功部署主要是因为这个过程会涉及非常多依赖库的安装和更新及根据本地的 安装情况需要适时的调整代码逻辑。除此之外也有一定的硬件要求总的来说还是具有一定的部署和使用门槛。
2.1 环境配置 首先看系统要求。目前开源的大模型都支持在Windows、Linux和Mac上部署运行。但在应用开发领域中Linux 系统通常被优先选择而不是 Windows主要原因是Linux 系统具有强大的包管理系统如 apt, yum, pacman允许开发者轻松安装、更新和管理软件包这比 Windows 操作系统上的软件安装和管理更加方便快捷。同时Linux系统与多种编程语言和开发工具的兼容性较好尤其是一些开源工具仅支持在Linux系统上使用。整体来看在应用运行方面对硬件的要求较低且在处理多任务时表现出色所以被广泛认为是一个非常稳定和可靠的系统特别是对于服务器和长时间运行的应用。 Linux 操作系统有许多不同的发行版每种发行版都有其特定的特点和用途如CentOS、Ubuntu和Debian等。 CentOS 是一种企业级的 Linux 发行版以稳定性和安全性著称。它是 RHELRed Hat Enterprise Linux的免费替代品与 RHEL 完全兼容适用于服务器和企业环境。而Ubuntu是最受欢迎的 Linux 发行版之一其优势就是对用户友好和很强的易用性其图形化界面都适合大部分人的习惯。 所以在实践大模型时强烈建议大家使用Ubuntu系统。同时本教程也是针对Ubuntu 22.04 桌面版系统来进行ChatGLM3-6B模型的部署和运行的。 关于硬件的需求ChatGLM3-6B支持GPU运行需要英伟达显卡、CPU运行以及Apple M系列芯片运行。其中GPU运行需要至少6GB以上显存4Bit精度运行模式下而CPU运行则需要至少32G的内存。而由于Apple M系列芯片是统一内存架构因此最少需要13G内存即可运行。其中CPU运行模式下内存占用过大且运行效率较低因此我们也强调过GPU模式部署才能有效的进行大模型的学习实践。
查看显卡
nvidia-smi查看conda版本
conda --versionconda 4.10.3conda create --name chatglm3_test python3.11
conda activate chatglm3_test
2.2 在虚拟环境中安装Pytorch
pytorch网址 https://pytorch.org/get-started/previous-versions/ conda install pytorch2.2.0 torchvision0.17.0 torchaudio2.2.0 pytorch-cuda12.1 -c pytorch -c nvidiaimport torch
print(torch.cuda.is_available())2.3 下载ChatGLM3的项目文件 ChatGLM3的代码库和相关文档存储在 GitHub 这个在线平台上。GitHub 是一个广泛使用的代码托管平台它提供了版本控制和协作功能。 要下载ChatGLM3-6B的项目文件需要进入ChatGLM3的Githubhttps://github.com/THUDM/ChatGLM3 在 GitHub 上将项目下载到本地通常有两种主要方式克隆 (Clone) 和 下载 ZIP 压缩包。 克隆 (Clone)是使用 Git 命令行的方式。我们可以克隆仓库到本地计算机从而创建仓库的一个完整副本。这样做的好处是我们可以跟踪远程仓库的所有更改并且可以提交自己的更改。如果要克隆某一个仓库可以使用如下命令
git clone repository-url # 其中 repository-url 是 GitHub 仓库的 URL。推荐使用克隆 (Clone)的方式。对于ChatGLM3这个项目来说我们首先在GitHub上找到其仓库的URL。
#source /etc/network_turbo
git clone https://github.com/THUDM/ChatGLM3.git2.4 升级pip版本 pip 是 Python 的一个包管理器用于安装和管理 Python 软件包。允许从 Python Package IndexPyPI和其他索引中安装和管理第三方库和依赖。一般使用 pip 来安装、升级和删除 Python 软件包。除此之外pip 自动处理 Python 软件包的依赖关系确保所有必需的库都被安装。在Python环境中尽管我们是使用conda来管理虚拟环境但conda是兼容pip环境的所以使用pip下载必要的包是完全可以的。 我们建议在执行项目的依赖安装之前升级 pip 的版本如果使用的是旧版本的 pip可能无法安装一些最新的包或者可能无法正确解析依赖关系。升级 pip 很简单只需要运行命令如下命令
python -m pip install --upgrade pip 2.5 使用pip安装ChatGLM运行的项目依赖** 一般项目中都会提供 requirements.txt这样一个文件该文件包含了项目运行所必需的所有 Python 包及其精确版本号。使用这个文件可以确保在不同环境中安装相同版本的依赖从而避免了因版本不一致导致的问题。我们可以借助这个文件使用pip一次性安装所有必需的依赖而不必逐个手动安装大大提高效率。命令如下
pip install -r requirements.txt2.6 从Hugging Face下载ChatGLM3模型权重 经过Step 5的操作过程我们下载到的只是ChatGLM3-6B的一些运行文件和项目代码并不包含ChatGLM3-6B这个模型。这里我们需要进入到 Hugging Face 下载。Hugging Face 是一个丰富的模型库开发者可以上传和共享他们训练好的机器学习模型。这些模型通常是经过大量数据训练的并且很大因此需要特殊的存储和托管服务。 不同于GitHubGitHub 仅仅是一个代码托管和版本控制平台托管的是项目的源代码、文档和其他相关文件。同时对于托管文件的大小有限制不适合存储大型文件如训练好的机器学习模型。相反Hugging Face 专门为此类大型文件设计提供了更适合大型模型的存储和传输解决方案。 Git Large File StorageGit LFS是一种用于处理大文件的工具在 Hugging Face 下载大模型时通常需要安装 Git LFS主要的原因是Git 本身并不擅长处理大型文件因为在 Git 中每次我们提交一个文件它的完整内容都会被保存在 Git 仓库的历史记录中。但对于非常大的文件这种方式会导致仓库变得庞大而且低效。而 Git LFS 就不会直接将它们的内容存储在仓库中。相反它存储了一个轻量级的“指针”文件它本身非常小它包含了关于大型文件的信息如其在服务器上的位置但不包含文件的实际内容。当我们需要访问或下载这个大型文件时Git LFS 会根据这个指针去下载真正的文件内容。 实际的大文件存储在一个单独的服务器上而不是在 Git 仓库的历史记录中。所以如果不安装 Git LFS 而直接从 Hugging Face 或其他支持 LFS 的仓库下载大型文件通常只会下载到一个包含指向实际文件的指针的小文件而不是文件本身。
因为文件很大所以下载会很慢建议在files页面直接点击下载单个文件最后在整理在一起
三、运行ChatGLM3-6B模型的方式
3.1基于命令行的交互式对话
cd basic_demo/
ls
cli_batch_request_demo.py cli_demo.py cli_demo_bad_word_ids.py web_demo_gradio.py web_demo_streamlit.py在启动前我们仅需要进行一处简单的修改因为我们已经把ChatGLM3-6B这个模型下载到了本地所以需要修改一下模型的加载路径。
vim cli_demo.py 修改完成后直接使用python cli_demp.py即可启动如果启动成功就会开启交互式对话如果输入stop 可以退出该运行环境。 3.2 在指定虚拟环境的Jupyter Lab中运行
我们在部署Chatglm3-6B模型之前创建了一个chatglme3_test虚拟环境来支撑该模型的运行。除了在终端中使用命令行启动同样可以在Jupyter Lab环境中启动这个模型。具体的执行过程如下 首先在终端中找到需要加载的虚拟环境使用如下命令可以查看当前系统中一共存在哪些虚拟环境
conda env list# conda environments:
#
base * /root/miniconda3
chatglm3_test /root/miniconda3/envs/chatglm3_test这里可以看到我们之前创建的chatglm3_test虚拟环境需要使用如下命令进入该虚拟环境
# 这里的env_name就是需要进入的虚拟环境名称
conda activate env_name在该环境中安装ipykernel软件包。这个软件包将允许Jupyter Notebook使用特定环境的Python版本。运行以下命令
conda install ipykernel将该环境添加到Jupyter Notebook中。运行以下命令
# 这里的env_name 替换成需要使用的虚拟环境名称
python -m ipykernel install --user --nameyenv_name --display-namePython(env_name)#python -m ipykernel install --user --namellm --display-namePython(chatglm3_test) 执行完上述过程后在终端输入jupyter lab 启动。 如果提示The port 8888 is already in use, trying another port. 您可以在命令行中使用 -p 或 --port 选项后面跟着您想要使用的端口号。例如如果您想要使用端口 8889您可以这样启动 JupyterLabjupyter lab --port 8889 打开后就可以看到当前环境下我们已经可以使用新的虚拟环境创建Notebook。 基本调用流程也比较简单官方也给出了一个实例 只需要从transformers中加载AutoTokenizer 和 AutoModel指定好模型的路径即可。tokenizer这个词大家应该不会很陌生可以简单理解我们在之前使用gpt系列模型的时候使用tiktoken库帮我们把输入的自然语言也就是prompt按照一种特定的编码方式来切分成token从而生成API调用的成本。但在Transform中tokenizer要干的事会更多一些它会把输入到大语言模型的文本包在tokenizer中去做一些前置的预处理会将自然语言文本转换为模型能够理解的格式然后拆分为 tokens如单词、字符或子词单位等操作。 而对于模型的加载来说官方的代码中指向的路径是THUDM/chatglm3-6b,表示可以直接在云端加载模型所以如果我们没有下载chatglm3-6b模型的话直接运行此代码也是可以的只不过第一次加载会很慢耐心等待即可同时需要确保当前的网络是联通的必要的情况下需要开梯子。 因为我们已经将ChatGLM3-6B的模型权重下载到本地了所以此处可以直接指向我们下载的Chatglm3-6b模型的存储路径来进行推理测试。
from transformers import AutoTokenizer, AutoModel
tokenizer AutoTokenizer.from_pretrained(THUDM/chatglm3-6b, trust_remote_codeTrue)
model AutoModel.from_pretrained(THUDM/chatglm3-6b, trust_remote_codeTrue).half().cuda()
model model.eval()
response, history model.chat(tokenizer, 你好, history[])
print(response)
response, history model.chat(tokenizer, 晚上睡不着应该怎么办, historyhistory)
print(response) 对于其他参数来说model 有一个eval模式就是评估的方法模型基本就是两个阶段的事一个是训练一个是推理计算的量更大它需要把输入的值做一个推理如果是一个有监督的模型那必然存在一个标签值也叫真实值这个值会跟模型推理的值做一个比较这个过程是正向传播。差异如果很大就说明这个模型的能力还远远不够既然效果不好就要调整参数来不断地修正通过不断地求导链式法则等方式进行反向传播。当模型训练好了模型的参数就不会变了形成一个静态的文件可以下载下来当我们使用的时候就不需要这个反向传播的过程只需要做正向的推理就好了此处设置 model.eval()就是说明这个过程。而trust_remote_codeTrue 表示信任远程代码如果有 device‘cuda’ 表示将模型加载到CUDA设备上以便使用GPU加速这两个就很好理解了。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/931071.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!