LLama 2部署教程+私有模型分发

2023-10-27

近日,Meta发布了LLama的最新版本——LLama2,尽管其对中文的处理能力尚有待提升,但其整体表现无疑是令人瞩目的。在发布当天,我便迫切地将其下载下来进行试用,发现相比之前的版本,LLama2在多个方面都实现了显著的进步,特别是在编程能力上的提升更为显著。在此,我与诸位分享一下如何在Linux环境下部署LLama2模型,以及如何将该模型如何利用YourChat在团队中进行共享。

一、下载注册模型

首先,我们需要访问此网址https://ai.meta.com/resources/models-and-libraries/llama-downloads/,并提供一些基本信息。所需填写的信息包括姓名、电子邮箱、国家和公司等,按照真实情况填写即可。尽管审核过程并不严格,但考虑到某些特殊因素,建议在国家一栏选择美国。

注册完毕后,可能需要等待一段时间。我本人等待了大约一个小时后,收到了Meta发来的邮件。邮件如下:

邮件中会附带一个key,也就是图片中涂黑的部分。大概格式是一个网址,但是访问这个网址是没有用的,要把这个key复制下来,因为我们后续会用到它。

二、下载LLama 2

截至目前,LLama2已推出了7B、13B、70B、7B-chat、13B-chat、70B-chat这六种模型,并为聊天功能推出了chat版本。值得一提的是,chat版本采用了RLHF进行了微调,这在当前的大语言模型中无疑是非常前沿的。此外,30B版本也将很快推出。

我们接下来将通过官方的脚本下载模型。首先,我们需要访问LLama的官方GitHub仓库https://github.com/facebookresearch/llama,并克隆该项目库。完成克隆后,在项目库中找到并运行download.sh脚本,然后按照提示输入你之前复制的key,并选择你需要的模型,就可以开始下载了。下载服务由Meta自家提供,下载速度非常快,我当时是满速下载完成的。

我当时选择了下载所有的模型,以下是我下载完成后的文件列表。

以llama-2开头的文件夹即为刚刚下载的模型,你可以根据自己的需求选择使用其中一个。

这是官方对硬件的要求:

可以看到,其中A10G有24G显存,也就是说我用的4090显卡只能运行7b的模型。不过在我测试7b模型的时候,发现显存占用在13G左右,等GPTQ支持LLama2后,运行13b模型应该没什么问题。

三、转换模型

官方指南为我们提供了两种部署方式——transformers和oobabooga的text-generation-webui,因为我们是要实际进行部署,就需要选择text-generation-webui。如果有稍微留意一下模型格式,我们可以发现刚刚下载的模型是.pth格式,通常由PyTorch生成,但是text-generation-webui默认使用的是huggingface格式的模型,因此我们需要进行一次转换操作。

在我写这篇文章的时候,transformer库还没有提供对应LLama2的转换脚本,但预计会很快更新。事实上,我们可以先借用一下第一代LLama的转换脚本进行转换,只需要稍微"欺骗"一下脚本就行。

首先,我们需要将这个repo https://github.com/huggingface/transformers.git 克隆到本地,脚本文件的路径是:src/transformers/models/llama/convert_llama_weights_to_hf.py。

在转换之前,我们需要进行一个操作,以使模型能够按照脚本预设的目录运行。对于使用过上一代模型的读者可能已经了解,LLama提供了7b、13b、30b、65b四种不同规模的模型,因此要使用第一代LLama的转换脚本,我们需要将下载的模型名称更改为这些名称,以便脚本能正确识别。例如,如果我使用的是7b-chat模型,那么我需要将7b-chat文件夹重命名为7B。总的来说,如果模型是7b-chat或7b则需要改名为7B,如果模型是13b-chat或13b则需要改名为13B,但对于70b的模型,我并不确定其参数是否能匹配65b的,如果你有能力运行的话,可以试一下。

重命名完成后,就可以开始运行convert_llama_weights_to_hf.py脚本进行模型转换,具体的参数如下:

python src/transformers/models/llama/convert_llama_weights_to_hf.py \
    --input_dir [llama repo所在路径] \
    --model_size [7B,13B] \
    --output_dir [huggingface格式模型输出文件夹]

转换完成后,你可以在output_dir也就是huggingface格式模型输出文件夹中找到以下文件:

config.json
pytorch_model-00001-of-00002.bin
pytorch_model-00002-of-00002.bin
tokenizer_config.json
generation_config.json
tokenizer.model
special_tokens_map.json
pytorch_model.bin.index.json

 有了这些文件,我们就可以进行下一步了。

四、搭建text-generation-webui

text-generation-webui是github上的一个开源项目,也是目前运行开源模型最广泛使用的软件之一。如果你之前用过第一代LLama,应该对这个项目比较熟悉。

text-generation-webui的安装方式相当简单,同样需要从github上克隆项目:https://github.com/oobabooga/text-generation-webui/。克隆完成后,我们把刚才转换好的huggingface格式的模型文件夹整个放入models中,目录结构如下:

我们将刚才生成好huggingface格式的模型文件夹整个放入models中,文件结构如下图:

其中llama-2-7b-chat是我在上一步output_dir中指定的huggingface输出文件夹。

如果这一步做完了,模型部署这块就大功告成啦。现在我们运行text-generation-webui就可以和llama2模型对话了,具体的命令如下:

python server.py --model [output_dir中指定的huggingface输出文件夹名字] --api --listen

五、分发模型

现在,你的Llama2模型已经搭建好了,怎么样把它分享给你的朋友或同事使用呢?我们用YourChat来完成这个工作。YourChat是一个聊天客户端,它支持text_generation_webui的API,适配了Android、iOS、Windows和MacOS,以下我们以Windows版本为例,当然其他平台也大同小异。

在上一步,我们在启动text_generation_webui的时候添加了一个—api参数,这就让text_generation_webui支持了API调用。如果你想要使用YourChat,那这个API功能就必须要打开。

首先,让我们把刚刚搭建的text_generation_webui添加到YourChat的服务里面。如果你是第一次使用YourChat,它会弹出一个新手教程。如果你没有改动过text-generation-webui服务的参数,那就按照教程的指引,填入服务的IP地址就可以了。

如果你之前已经下载过YourChat,那就在YourChat的"服务"界面,点击右下角的"+"按钮,添加一个新的服务。在"名称"栏中,输入你的服务名称,比如模型名字"llama-2-7b-chat"。在"Host"栏中,填写你的模型服务器的地址,例如"192.168.2.2"。

然后点击右上角的保存按钮,你的Llama2模型就成功地被添加到了YourChat中,你现在可以开始和Llama进行聊天了。

不过看起来,Llama2并不清楚它就是我们所说的"llama"。

使用YourChat的一个大优势是能方便地分享模型。YourChat支持订阅链接功能,也就是说,你把模型设置好,使用YourChat的订阅链接功能生成一个链接,那你的同事就可以用YourChat无缝同步你的设置,然后就可以和你的模型进行对话了。加上Yourchat也支持OpenAI的API,这个种类似一键分发的功能确实是非常方便

具体的操作步骤是:进入"设置"->"订阅链接"界面,点击"新建订阅链接"。然后在新弹出的页面中输入订阅的名称,比如"llama",并在服务列表中勾选你刚刚设置的LLama2服务。点击"发布服务到我的链接"后,你就得到了一个订阅链接,链接中包含一个8位数的密码。然后,你只需要把这个链接分享给你的同事们。

你的同事们在收到你的订阅链接后,下载个yourchat,用浏览器访问下链接,就可以访问你的llama2了 

六、结语

至此,我们就完成了llama2模型的搭建和分发。虽然目前我们只在局域网中进行了分发,但如果你需要在公网中发布,还可以配合使用text_gernation_webui的public-api功能。最后,按照惯例,让我们看看llama如何为RLHF创作一首诗吧:

The RLHF algorithm for language modeling,

Is like a black box wearing a hat,

The input is the text, and it's fed to the LLM,

It takes the text and then it's read,

The output is the probability of each word,

And it's used to predict what comes next,

This process repeats until the end of the text,

Then the final probability distribution is produced,

Which can be used to generate new sentences with the LLM.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LLama 2部署教程+私有模型分发 的相关文章

  • LLama Factory 安装部署实操记录(二)

    1 项目地址 GitHub hiyouga LLaMA Factory Easy to use LLM fine tuning framework LLaMA BLOOM Mistral Baichuan Qwen ChatGLM Easy
  • 短视频时代:文案的力量与价值

    在当今这个信息时代 短视频以其独特的魅力和巨大的传播力 已经深深地渗透到我们的生活中 无论是抖音 快手 还是其他短视频平台 它们都在以自己独特的方式塑造着我们的娱乐生活 而在这些短片的背后 有一个重要的元素在发挥着关键的作用 那就是文案 文
  • LLama Factory 安装部署实操记录(二)

    1 项目地址 GitHub hiyouga LLaMA Factory Easy to use LLM fine tuning framework LLaMA BLOOM Mistral Baichuan Qwen ChatGLM Easy
  • 景联文科技GPT教育题库:AI教育大模型的强大数据引擎

    GPT 4发布后 美国奥数队总教练 卡耐基梅隆大学数学系教授罗博认为 这个几乎是用 刷题 方式喂大的AI教育大模型的到来 意味着人类的刷题时代即将退出历史舞台 未来教育将更加注重学生的个性化需求和多元化发展 借助GPT和AI教育大模型为每位
  • 初学者之友:一套经济实惠且易于上手的电脑配置方案

    一 引言 对于初学者来说 选择一台合适的电脑可能是一项艰巨的任务 他们可能不熟悉各种硬件规格和技术术语 容易被市场上众多的选择所迷惑 为了帮助初学者解决这个问题 本文将介绍一套经济实惠且易于上手的电脑配置方案 二 核心硬件 处理器与内存 处
  • pdf压缩大小方法哪个好用些?这三招可不要错过

    大家有没有被龟速的文件上传速度折磨过 好不容易等到上传进度走到最后一点点 但是却眼睁睁看着上传速度突然降到2kb s 真的是分分钟被 气死 拿网速没办法 那就只能从文件大小下手了 而怎么样做到压缩文件大小的同时又能保持它的清晰度呢 这当然少
  • ITLV格式:优化数据处理与通信效率

    许多文章中经常使用 它是基于TLV Tag Length Value 格式的一种变体 根据实际需要进行了一些修改 在ITLV格式中 各字段具有以下含义 I ID或Index 用于区分不同的数据 每个数据都有一个唯一的ID或索引 用于标识该数
  • 研发实验室装修

    研发实验室在企业 高校和研究机构中的地位日益凸显 一个优质的研发实验室装修方案不仅能提升实验室的整体形象 还能提高科研人员的工作效率 激发创新精神 本文将从设计理念 空间规划 材料选择及环保安全等方面 SICOLAB喜格 探讨如何打造高效创
  • Stable Diffusion运行时自动重启的小程序

    Stable Diffusion在运行过程中 常常因为各种原因导致服务挂掉 所以希望能定时检查程序是否存活 如果dead则重启一下 思路 stable diffusion运行时需要使用GPU 如果GPU没有在用 并且GPU对应的进程也找不到
  • 手写转文字扫描软件有哪些?方便又好用的工具谁不喜欢?

    大家有没有仔细数过 你们在从小到大的学习生涯中使用了多少笔记本 反正我是经常被我妈催着把以前的笔记本丢掉 但是它们承载的可都是我学生时代的记忆 就连当时觉得复杂难懂的内容 其实也挺有意思的 所以 我一直在思考 到底有什么方法可以让我在不占用
  • 机器配音解说可以用什么软件弄?我来告诉你

    大家每一天工作时都要长时间接触电子屏幕 下班回家之后 小说吸引力是不是不如从前了 别急着让喜欢的作者 背锅 我想 你们之所以 收藏从未停止 阅读从未开始 也有一部分原因是眼睛累了 所以自然就会觉得小说不好看 不过 难道打工人就无法全身心地沉
  • SAN与NAS:存储架构的对比与选择

    在当今的数据密集型时代 存储架构的选择对于企业的成功至关重要 SAN Storage Area Network 和NAS Network Attached Storage 作为两种主流的存储架构 各自拥有独特的优势和应用场景 本文将深入探讨
  • 拍照翻译用什么软件?这些软件帮你轻松实现拍照翻译

    巴山楚水凄凉地 Submission dear me 去年考过四级的朋友应该都懂这个梗吧 作文的题目咱是从头到尾看了十几遍 但还是猜不出来 submission 是啥意思 于是开头就来个 Dear submission 写完还美滋滋的觉得自
  • 在线识别图片文字工具有哪些?教你快速提取文字

    文字识别工具 也称为光学字符识别 OCR 工具 是一种能将图像中的文本信息转化为可编辑和可搜索的数字格式的过程 它是现代信息处理和人工智能领域的重要应用之一 文字识别工具的作用在于 无论是纸质文档 电子文档还是照片上的文字 都能通过该工具进
  • 机器配音在线工具有哪些? 让你的语音合成更自然

    你是不是也想成为一名大博主 随着现在的互联网时代蓬勃发展 出现了一批又一批的网红 在家里带带货 拍拍视频就能赚大钱 越来越多的人朝向网络世界进击 那么这些大博主制作一个爆款视频 必不可少的就是配音啦 但是其实很多博主用的并不是真人配音 而是
  • Creator AIGC插件!一句话生成人脸

    近几个月以来 AIGC 一路高歌猛进 让我们见证了一场行业革命 然而 AIGC 在 3D 资产领域却仍是业内的难题 少有突破 小编今天给大家推荐一个 3D 角色 AIGC 利器 ChatAvatar 它可以算是 3D AIGC 领域的一匹黑
  • 海报模板怎么进行编辑文字?公司宣传海报就这样做

    作为负责公司宣传事宜的部门 我每天不是在做海报 就是在找做海报的素材 力求要把这些宣传的物料都做得精致又有内容 经过我长时间的试用下来 给大家从基本功能 使用体验和不同场景下的应用这几个方面 总结出了海报制作软件哪个好用 接下来就让我为你详
  • 会议设备:提升会议体验与效率的关键

    在当今高度信息化的社会 会议已成为企业 机构和团队之间交流与合作的重要方式 而会议设备的选择与使用 对于提升会议的体验与效率具有举足轻重的地位 本文将详细探讨会议设备的重要性 以及如何选择和使用合适的会议设备 以实现高效 顺畅的沟通 首先
  • 有效降低信号串扰的PCB设计原则

    降低信号串扰的一些PCB设计建议 1 对于传输线 保持相邻信号线之间的间距至少为两倍信号线宽 2 尽量避免信号跨越返回路径中的不连续点或者空隙 3 如果必须在返回路径中跨越空隙 则尽量使用差分线 4 电容器不是一种低阻抗互连结构 其高频阻抗
  • 新画图不好用?『 图层困扰?』『 剪切板拷贝失败?』旧版画图软件yyds

    樊梓慕 个人主页 个人专栏 C语言

随机推荐

  • Node =>Express学习

    1 Express 能做什么 能快速构建web网站的服务器 或 Api接口的服务期 Web网站服务器 专门对外提供Web网页资源的服务器 Api接口服务器 专门对外提供API接口的服务器 2 安装 在项目所处的目录中 运行以下命令 简装到项
  • linux安装jenkins与配置

    简要介绍 jenkins是一个开源软件项目 是基于java开发的一种持续集成工具 用于监控持续重复的工作 旨在提供一个开放易用的软件平台 使软件的持续集成变成可能 语言 Java 一句话描述 持续集成工具 CentOS 7 6 1 安装Op
  • 6 个以假乱真的AI自动配音工具介绍

    6 个以假乱真的AI自动配音工具介绍 用 AI 重新配音 完美骗过各大视频平台的原创保护机制 但这个机器声音味儿太冲 而类似的声音已经快把全国人民包围了 家人们藏不住了 完了芭比Q了 这个男人叫小帅 这个男人叫小美 所以我们很想盘点一下 这
  • 进化优化算法--第二章:爬山法

    算法2 1 最快上升爬山法 x0 lt 随机生成的个体 while not 终止准则 计算x0的适应度f x0 For 每一个解的特征 q 1 2 n xq lt x0 用一个随机变异替换xq的第q个特征 计算xq的适应度f xq 获取下一
  • ChatGPT-4下周要来了

    昨天的一则新闻引起了轰动 微软德国首席技术官 Andreas Braun 在最近一次名为 AI in Focus Digital Kickoff 的活动中透露了这一消息 根据 Braun 的说法 我们将在下周推出 GPT 4 我们将拥有多模
  • npm ERR! code EINTEGRITY npm ERR! sha1-BO3IiUkrA6RF56xm6SJqcBdcqKA= integrity checksum failed when u

    npm ERR code EINTEGRITY npm ERR sha1 BO3IiUkrA6RF56xm6SJqcBdcqKA integrity checksum failed when using sha1 wanted sha1 B
  • 基于 MATLAB 的时间卷积神经网络(TCN)数据回归预测

    基于 MATLAB 的时间卷积神经网络 TCN 数据回归预测 时间卷积神经网络 Temporal Convolutional Network 简称 TCN 是一种基于卷积神经网络的模型 可以有效地处理时间序列数据 并具备较强的建模和预测能力
  • 变量键盘读取、数组与声明:read、array、declare

    变量键盘读取 数组与声明 read array declare 1 read root linux read pt variable 参数 p 后面可以接提示符 t 后面可以接等待的 秒数 范例一 让用户通过键盘输入内容 将该内容变成ate
  • Jdbc 连接MYSQL数据库代码模块

    获得数据库连接的四个步骤 Class for com mysql cj jdbc Driver 由于使用的是MYSQL 8 所以必须要使用相应的驱动 相比于mysql connector java 5 1 47 tar 在jar包中Driv
  • Grafana图表配置快速入门

    1 Grafana图表配置快速入门 前面我们使用 Prometheus Grafana 实现了一个简单的 CPU 使用率变化图 但是这个图还有许多缺陷 例如 左边栏的数值太小了无法调整 下面的图标信息无法定制化等等 其实 Grafana 的
  • ifconfig出现command not found解决办法

    问题 说下我linux配置情况 不一样的可以选择借鉴我的办法 在虚拟机中以最小化方式安装centos7 ifconfig命令无效 而且在sbin目录中没有ifconfig文件 原因 这是因为centos7已经不适用ifconfig命令了 已
  • vue监听一个对象的多个属性

    可以分开监听 但是不能深度监听 不能监听对象 只能 监听属性 如果监听对象 直接在handler外层加上对象名就可以了 下面加deep和immediate都为true watch lineType t console log t rowTy
  • RT-Thread记录(十四、I/O 设备模型之ADC设备)

    RT Thread ADC 设备学习使用 目录 前言 一 ADC 采样基础 1 1 ADC 通道 1 2 ADC 分辨率 1 3 ADC 采样计算 二 ADC 设备操作函数 2 1 查找 ADC 设备 2 2 使能 关闭 ADC 通道 2
  • 前端工程化:express服务端开发

    目录 1 express基本使用 1 安装依赖 2 创建服务 3 启动服务 2 express中间件和异常 1 中间件分3种 2 异常捕获有3种 3 https服务和静态服务 1 https服务 2 静态服务 1 express基本使用 1
  • 揭秘-只有13台DNS根域名服务器原因

    引言 什么是DNS DNS服务 将主机名映射成IP地址 一个主机可以有一个规范主机名 多个别名 www sina com就是个别名 邮件服务器也有别名 目的 负载平衡 通过IP分流 DNS的架构 前面我们说DNS是将主机名对应到IP 那么这
  • ConstraintLayout使用总结

    0dp的使用 app layout constrainedWidth true android layout width wrap content android layout width 0dp 效果是一样的 可以自动充满剩余空间 例子一
  • 【ZT】怎么查PC的CPU序列号?(wmic CPU get ProcessorID。WIN7可用)

    https zhidao baidu com question 38740362 html 怎么查CPU序列号 怎么查CPU序列号 我的是AMD Athlon4000 2的处理器 处理器上面写的是 AD04000IA5DD CAARG 07
  • CSS3新增了哪些新特性?

    一 是什么 css 即层叠样式表 Cascading Style Sheets 的简称 是一种标记语言 由浏览器解释执行用来使页面变得更美观 css3是css的最新标准 是向后兼容的 CSS1 2的特性在CSS3 里都是可以使用的 而CSS
  • C语言进阶,第4节-自定义类型详解(结构体+枚举+联合)

    一 结构体 1 结构的声明 描述一个学生 struct Stu 结构体标签 成员变量 char name 20 int age char sex 5 char id 20 x x 为 struct Stu 类型的变量 匿名结构体类型 str
  • LLama 2部署教程+私有模型分发

    近日 Meta发布了LLama的最新版本 LLama2 尽管其对中文的处理能力尚有待提升 但其整体表现无疑是令人瞩目的 在发布当天 我便迫切地将其下载下来进行试用 发现相比之前的版本 LLama2在多个方面都实现了显著的进步 特别是在编程能