Llama3的本地部署

news2024/12/23 17:31:33

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

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

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

- 部署准备

– 硬件

在本地对8B版本的Llama3进行了部署测试,硬件配置为

  • CPU i7-12700F
  • GPU NVIDIA Geforce RTX 3060 12G
  • RAM 32GB * 2

– 环境

Llama3的部署环境对各个包的版本需求有些严格,需要注意,否则会报各种错误,环境列表附在最后(去最上面的github里找也可,我环境里可能有单纯部署之外用不到的包),其中最需要注意的是transformers的版本,需要大于4.39.0 ( 我用的4.40.1 ),

因为Llama3比较新,老版本的transformers里没有Llama3的模型和分词器,另外就是pytorch和cuda的版本,torch 2.1.0 + cu118,主要是transformers对cuda版本有要求,部署过程中遇到的多数错误都是包的版本问题。

– 模型权重

模型的权重可以去最上的meta或huggingface链接去下载,但是需要获得meta的授权,注册账号提个申请(玛德,给我拒了)

也可使用魔搭的库进行下载,还挺快的,推荐,下载代码如下

from modelscope import snapshot_download

cache_dir = r'D:\data\Llama3\LLM-Research'
model_dir = snapshot_download('LLM-Research/Meta-Llama-3-8B-Instruct',cache_dir=cache_dir)

# Meta-Llama-3-70B-Instruct 70B的名称

运行代码下载即可,cache_dir为权重文件的缓存路径,8B下载好的文件大小为14.9G,70B的为131G,预留好足够的空间

下载好的路径下有这些东西

在这里插入图片描述

- 模型推理

模型的推理按照下面代码执行即可,比较简单,我没写UI之类的,能用就行

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

model_dir = r'D:\data\Llama3\LLM-Research\Meta-Llama-3-8B-Instruct'
device = 'cuda'


tokenizer = AutoTokenizer.from_pretrained(model_dir)
model = AutoModelForCausalLM.from_pretrained(model_dir, torch_dtype='auto', device_map=device)

while 1:
    print(f'Enter a prompt to generate a response:')
    prompt = input()
    messages = [
        {'role': 'system', 'content': 'aaa'},
        {'role': 'user', 'content': prompt}
    ]

    text = tokenizer.apply_chat_template(
        messages,
        tokenize=False,
        add_generation_prompt=True
    )

    model_input = tokenizer([text], return_tensors='pt').to(device)
    attention_mask = torch.ones(model_input.input_ids.shape, dtype=torch.long, device=device)
    generated_ids = model.generate(
        model_input.input_ids,
        max_new_tokens=512,
        attention_mask=attention_mask,  
        pad_token_id=tokenizer.eos_token_id,  
    )

    generated_ids = [output_ids[len(input_ids):] for input_ids, output_ids in zip(model_input.input_ids, generated_ids)]

    response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]

    print(f'{response} \n')

运行成功,Llama3的简单部署成功

accelerate==0.29.3
addict==2.4.0
aiohttp==3.9.5
aiosignal==1.3.1
aliyun-python-sdk-core==2.15.1
aliyun-python-sdk-kms==2.16.2
anyio==4.3.0
argon2-cffi==23.1.0
argon2-cffi-bindings==21.2.0
arrow==1.3.0
asttokens==2.4.1
async-lru==2.0.4
async-timeout==4.0.3
attrs==23.2.0
Babel==2.15.0
backcall==0.2.0
beautifulsoup4==4.12.3
bleach==6.1.0
certifi==2024.2.2
cffi==1.16.0
charset-normalizer==3.3.2
colorama==0.4.6
comm==0.2.2
crcmod==1.7
cryptography==42.0.5
datasets==2.18.0
debugpy==1.8.1
decorator==5.1.1
defusedxml==0.7.1
dill==0.3.8
einops==0.8.0
exceptiongroup==1.2.1
executing==2.0.1
fastjsonschema==2.19.1
filelock==3.13.4
fqdn==1.5.1
frozenlist==1.4.1
fsspec==2024.2.0
gast==0.5.4
h11==0.14.0
httpcore==1.0.5
httpx==0.27.0
huggingface-hub==0.22.2
idna==3.7
importlib_metadata==7.1.0
importlib_resources==6.4.0
ipykernel==6.29.4
ipython==8.12.3
ipywidgets==8.1.2
isoduration==20.11.0
jedi==0.19.1
Jinja2==3.1.3
jmespath==0.10.0
json5==0.9.25
jsonpointer==2.4
jsonschema==4.22.0
jsonschema-specifications==2023.12.1
jupyter==1.0.0
jupyter-console==6.6.3
jupyter-events==0.10.0
jupyter-lsp==2.2.5
jupyter_client==8.6.1
jupyter_core==5.7.2
jupyter_server==2.14.0
jupyter_server_terminals==0.5.3
jupyterlab==4.1.8
jupyterlab_pygments==0.3.0
jupyterlab_server==2.27.1
jupyterlab_widgets==3.0.10
MarkupSafe==2.1.5
matplotlib-inline==0.1.7
mistune==3.0.2
modelscope==1.14.0
mpmath==1.3.0
multidict==6.0.5
multiprocess==0.70.16
nbclient==0.10.0
nbconvert==7.16.4
nbformat==5.10.4
nest-asyncio==1.6.0
networkx==3.1
notebook==7.1.3
notebook_shim==0.2.4
numpy==1.24.4
oss2==2.18.4
overrides==7.7.0
packaging==24.0
pandas==2.0.3
pandocfilters==1.5.1
parso==0.8.4
pickleshare==0.7.5
pillow==10.3.0
pkgutil_resolve_name==1.3.10
platformdirs==4.2.1
prometheus_client==0.20.0
prompt-toolkit==3.0.43
psutil==5.9.8
pure-eval==0.2.2
pyarrow==16.0.0
pyarrow-hotfix==0.6
pycparser==2.22
pycryptodome==3.20.0
Pygments==2.18.0
python-dateutil==2.9.0.post0
python-json-logger==2.0.7
pytorch-cuda==12.1
pytz==2024.1
pywin32==306
pywinpty==2.0.13
PyYAML==6.0.1
pyzmq==26.0.3
qtconsole==5.5.2
QtPy==2.4.1
referencing==0.35.1
regex==2024.4.28
requests==2.31.0
rfc3339-validator==0.1.4
rfc3986-validator==0.1.1
rpds-py==0.18.0
safetensors==0.4.3
scipy==1.10.1
Send2Trash==1.8.3
simplejson==3.19.2
six==1.16.0
sniffio==1.3.1
sortedcontainers==2.4.0
soupsieve==2.5
stack-data==0.6.3
sympy==1.12
terminado==0.18.1
tinycss2==1.3.0
tokenizers==0.19.1
tomli==2.0.1
torch==2.1.0+cu118
torchaudio==2.1.0
torchvision==0.16.0
tornado==6.4
tqdm==4.66.2
traitlets==5.14.3
transformers==4.40.1
types-python-dateutil==2.9.0.20240316
typing_extensions==4.11.0
tzdata==2024.1
uri-template==1.3.0
urllib3==2.2.1
wcwidth==0.2.13
webcolors==1.13
webencodings==0.5.1
websocket-client==1.8.0
widgetsnbextension==4.0.10
xlrd==1.2.0
xxhash==3.4.1
yapf==0.40.2
yarl==1.9.4
zipp==3.18.1

如何系统的去学习大模型LLM ?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

事实上,抢你饭碗的不是AI,而是会利用AI的人。

科大讯飞、阿里、华为等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?

与其焦虑……

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

一、LLM大模型经典书籍

AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。

在这里插入图片描述

二、640套LLM大模型报告合集

这套包含640份报告的合集,涵盖了大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(几乎涵盖所有行业)

在这里插入图片描述

三、LLM大模型系列视频教程

在这里插入图片描述

四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)

在这里插入图片描述

LLM大模型学习路线

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。

  • 内容

    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
    • L1.4.1 知识大模型
    • L1.4.2 生产大模型
    • L1.4.3 模型工程方法论
    • L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。

  • 内容

    • L2.1 API接口
    • L2.1.1 OpenAI API接口
    • L2.1.2 Python接口接入
    • L2.1.3 BOT工具类框架
    • L2.1.4 代码示例
    • L2.2 Prompt框架
    • L2.3 流水线工程
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。

  • 内容

    • L3.1 Agent模型框架
    • L3.2 MetaGPT
    • L3.3 ChatGLM
    • L3.4 LLAMA
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。

  • 内容

    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

这份 LLM大模型资料 包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

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

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

相关文章

SAP 用户密码策略设置简介(不需要重启服务器)

SAP 用户密码策略设置简介(不需要重启服务器 1. 密码长度和复杂性2. 密码有效期3. 密码历史记录4. 账户锁定5. 单点登录(SSO)6. 安全提示和教育7. 配置密码策略的步骤8. 监控和审计 业务场景系统设置 好的,这里是关于SAP用户密码策略的更详细…

7.字符串 Strings

作业系统链接 字符串文字可以使用单引号、双引号或三引号来定义,其中三引号特别适用于多行字符串。转义序列如\n(换行)和\t(制表符)在字符串中起到特殊作用。字符串方法如replace()、strip()、lower()和upper()提供了丰…

「漏洞复现」誉龙视音频综合管理平台 RelMedia/FindById SQL注入漏洞

0x01 免责声明 请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删…

基于RepLKNet31B模型在RML201610a数据集上的调制识别【代码+数据集+python环境+GUI系统】

基于RepLKNet31B模型在RML201610a数据集上的调制识别【代码数据集python环境GUI系统】 Loss曲线 背景意义 随着社会的快速发展,人们在通信方面的需求逐渐增加,特别是在无线通信领域。通信环境的复杂化催生了多种通信形式和相关应用,这使得调…

【Java】类型转换 —— 自动转换、强制转换与表达式类型自动提升

1.自动类型转换 Java中的自动类型转换就好比将小瓶水倒入到大瓶的换装过程。我们将小瓶水倒入到大瓶中时,由于小瓶的容量比大瓶的容量小,所以倒入的水永远不可能溢出大瓶。同样,在Java中,将取值范围小的数据类型的变量…

T8:猫狗识别

T8周:猫狗识别 **一、前期工作**1.设置GPU,导入库2.导入数据3.查看数据 **二、数据预处理**1.加载数据2.可视化数据3.配置数据集 **三、构建CNN网络模型****四、编译模型****五、训练模型****六、模型评估****七、预测**八、总结1、[train_on_batch 和 test_on_batc…

得物App荣获国家级大奖,以沉浸式体验重塑消费新标杆

近日,备受瞩目的中国国际服务贸易交易会(简称“服贸会”)在北京举行。得物App作为上海科技企业代表参展,向全球展现中国企业的数字化创新服务。在展台现场,得物App搭建了首个3D创新应用“球鞋博物馆”,对球…

探探Java与python中的闭包

说在前面:在计算机科学中,闭包是指一个函数以及其引用的周围环境(变量)所组成的整体。简单来说,闭包允许一个函数访问并操作其外部函数作用域中的变量,即使外部函数已经执行完毕。 Java函数式编程—闭包&am…

828华为云征文|华为云Flexus云服务器X实例之openEuler系统下搭建MaxKB开源知识库问答系统

828华为云征文|华为云Flexus云服务器X实例之openEuler系统下搭建MaxKB开源知识库问答系统 前言一、Flexus云服务器X实例介绍1.1 Flexus云服务器X实例简介1.2 Flexus云服务器X实例特点1.3 Flexus云服务器X实例使用场景 二、MaxKB 介绍2.1 MaxKB简介2.2 MaxKB整体架构…

Springboot中yml文件不生效原因分析及解决

在Spring Boot项目中,YML文件是常用的配置文件格式。然而,有时你可能会遇到YML文件中的配置不生效的问题。本文将分析可能的原因并提供解决方案。 1. 格式错误 YML文件非常敏感,任何缩进或语法错误都可能导致配置不被解析。确保使用两个空格…

Vxe UI vue vxe-table vxe-text-ellipsis 如何实现单元格多行文本超出、多行文本溢出省略

Vxe UI vue vxe-table 如何实现单元格多行文本超出、多行文本溢出省略 代码 配合 vxe-text-ellipsis 组件实现多行文本溢出省略 <template><div><vxe-grid v-bind"gridOptions"><template #defaultAddress"{ row }"><vxe-te…

2025届 深圳 嵌入式岗 秋招上岸记录

文章目录 1 背景2 准备阶段2.1 前期2.1.1 掌握的技术栈2.1.2 项目经历2.1.3 比赛&奖学金经历 2.2 中期2.2.1 简历准备2.2.2 个人信息准备2.2.3 企业以及岗位信息的收集2.2.4 个人资料的准备 2.3 简历投递2.3.1 网申2.3.2 招聘会现场投递 3. 简历投递后3.1 测评3.2 笔试3.3 …

镜像电流源与其应用(防倒灌电路)

目录&#xff1a; 1、镜像电流源 2、防倒灌电路 1&#xff09;输入防反接保护 2&#xff09;输出防倒灌功能 1、镜像电流源 如下图1.1所示&#xff0c;三极管Q1的发射极经过b极&#xff0c;再通过R1电阻&#xff0c;形成回路&#xff0c;此时有回路电流形成。设Vbe -0.7…

C++杂项

作业&#xff1a; 将之前实现的顺序表、栈、队列都更改成模板类 顺序表 #include <iostream>using namespace std;template<typename T>class SeqList { private:T *ptr;int size; //总长度int len 0; //当前顺序表实际长度public://初始…

【笔记】X射线物理基础

一、X射线衍射分析简史 1895年X射线发现 1896 年 2 月对骨折的观察&#xff1a;G.和 E. Frost是第一个使用 X 射线进行医疗用途 1897 年法国海关官员的行李扫描。 X射线衍射理论1 X射线衍射理论2 元素的特征X射线 X射线光电子的应用 电磁波的粒子属性 X射线层析成像法 X-ray…

《CARAT: Contrastive Feature Reconstruction and Aggregation...》中文校对版

系列论文研读目录 例如&#xff1a; 文章目录 系列论文研读目录摘要引言相关作品方法论问题定义单模态标签特征提取基于对比重建的融合 基于Shuffle的特征聚合实验实验设置实验结果 分析结论 摘要 多模态多标签情感识别&#xff08;Multi-modal multi-label emotion recognit…

windows10使用bat脚本安装前后端环境之redis注册服务

首先需要搞清楚redis在本地是怎么安装配置、然后在根据如下步骤编写bat脚本&#xff1a; 思路 1.下载zip格式redis 2.查看windows server服务是否已安装redis 3.启动查看服务是否正常 bat脚本 echo off echo windows10 x64 server redis init REM 请求管理员权限并隐藏窗口 …

Total Blocking Time指标

Total Blocking Time 总阻塞时间 (TBT) 是一项用于衡量加载响应能力的重要实验指标&#xff0c;因为它有助于量化网页在变为可靠交互之前处于非交互状态的严重程度。 TBT&#xff08;Total Blocking Time&#xff09;&#xff0c;阻塞总时间&#xff0c;记录在 FCP 到 TTI 之间…

大厂太卷了!又一款一站式AI短剧创作神器,这套AI工作流厉害了:自动生成脚本、角色、分镜、视频、音乐、字幕...(附保姆级教程)

大家好&#xff0c;我是程序员X小鹿&#xff0c;前互联网大厂程序员&#xff0c;自由职业2年&#xff0c;也一名 AIGC 爱好者&#xff0c;持续分享更多前沿的「AI 工具」和「AI副业玩法」&#xff0c;欢迎一起交流~ 行业在卷 AI 应用&#xff0c;而美图已经在卷 AI 工作流了………

每日一题|2516. 每种字符至少取 K 个|双指针、最长子串、字典

本题需要转化求解目标。 对于一个序列&#xff0c;两头收集的最少数量的时候&#xff0c;剩下的部分&#xff08;我们称之为子串&#xff09;就会对应的越长。也就是说&#xff0c;我们只要求解一个满足要求的最长子串&#xff0c;使得两边剩余的字符数量刚好满足要求。 由于…