前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LLM入门3 | 基于cpu和hugging face的LLaMA部署

LLM入门3 | 基于cpu和hugging face的LLaMA部署

作者头像
机器学习炼丹术
发布2023-09-02 13:53:50
1.4K0
发布2023-09-02 13:53:50
举报
文章被收录于专栏:机器学习炼丹术

<<大型语言模型LLM>>

LLM入门1 | 初见LLaMA | MetaAI

LLM入门2 | 羊驼AIpaca | Stanford

  • 部署repo:https://huggingface.co/decapoda-research/llama-7b-hf
  • LLaMA:Open and Efficient Foundation Languate Models
  • official github:https://arxiv.org/pdf/2302.13971v1.pdf
  • 论文:https://arxiv.org/pdf/2302.13971v1.pdf
  • 文章转自微信公众号:机器学习炼丹术(已授权)

hugging face下载

使用


官方已经给出了调用方法:

代码语言:javascript
复制
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("decapoda-research/llama-7b-hf")
model = AutoModelForCausalLM.from_pretrained("decapoda-research/llama-7b-hf")

但是会运行失败,说找不到LLaMATokenizer类。

1 下载本地

代码语言:javascript
复制
from huggingface_hub import snapshot_download
snapshot_download(repo_id="decapoda-research/llama-7b-hf")

将hugging face的权重下载到本地,然后我们之后称下载到本地的路径为llama_7b_localpath

代码语言:javascript
复制
# 安装transformers
pip install git+https://github.com/zphang/transformers@llama_push

这个transformers类当中包含了LlamaTokenizor类。这里需要注意,LLaMATokenizer是最优雅的名字,但是实际上不知道为啥,我们需要调用的类名字是LlamaTokenizer。

上面下载到本地的模型权重是这个样子的:

是吧一个权重分解成了多个权重包,那么hugging face在加载模型参数的时候,会根据其中的“pytorch_model.bin.index.json”文件当中进行加载:

可以看到这个json里面包含了模型中每一个参数应该从在哪一个权重包中加载。

我们打开tokenizer_config.json文件:

代码语言:javascript
复制
{"bos_token": "", "eos_token": "", "model_max_length": 1000000000000000019884624838656, "tokenizer_class": "LlamaTokenizer", "unk_token": ""}

确认里面的tokenizer_class是否是“LlamaTokenizer”,这样才能正常加载。

上面都搞定之后,我们可以运行下面代码进行模型的加载:

代码语言:javascript
复制
from transformers import AutoTokenizer, AutoModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained(llama_7b_localpath)

model = AutoModelForCausalLM.from_pretrained(llama_7b_localpath)

效果

看下运行效果:

代码语言:javascript
复制
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained(llama_7b_localpath)
model = AutoModelForCausalLM.from_pretrained(llama_7b_localpath)
inp = tokenizer("The capital of Chine?",return_tensors="pt")
outp = model.generate(inp.input_ids)
tokenizer.batch_decode(outp, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]

问题不大。

对hugging_face的了解可以预料到,即便是对CV人来说,未来也是一个必修的基本功了。接下来会慢慢更新hugging_face的学习笔记。

<<其他>>

医学图像重建 | Radon变换,滤波反投影算法,中心切片定理

医学图像重建2 | CT&PET,比尔定律,衰减矫正

whole-body PET ?全人研究的催化剂?

TB-PET揭示体内复杂的骨骼代谢网络

综述 深度学习在神经成像领域的前景与挑战

功能连接矩阵 | 双向LSTM深度时间组学习针对轻度认知障碍

PCA、SVD深入浅出与python代码

ICA | 用RNN-ICA探索功能核磁内在网络模型的时空动力学

Dual-time-point的两篇文献浅学

WBIR | DeepSTAPLE:UDA任务下学习多模态配准质量

TransMorph | WBIR

医学成像之光学基础

<<AlphaFold2专题>>

alphaFold2 | 解决问题及背景(一)

alphaFold2 | 模型框架搭建(二)

alphaFold2 | 模型细节之特征提取(三)

alphaFold2 | 模型细节之Evoformer(四)

alphaFold2 | 补充Evoformer之outer productor mean(五)

<<StyleGAN2专题>>

生成专题1 | 图像生成评价指标 Inception Score (IS)

生成专题2 | 图像生成评价指标FID

生成专题3 | StyleGAN2对AdaIN的修正

生成专题4 | StyleGAN2的其他改进

<<蛋白质分子结构相关>>

NLP | 简单学习一下NLP中的transformer的pytorch代码

DTI特征工程 | iDTI-ESBoost | 2017 | REP

DIT | 简化分子线性输入规范SMILE

DTI | Drug-target interaction基础认识

<<CVPR目录>>

第一弹CVPR 2021 | 多分辨率蒸馏的异常检测 VIT Vision Transformer | 先从PyTorch代码了解

preprint版本 | 何凯明大神新作MAE | CVPR2022最佳论文候选

小样本分割 | FSS1000 | CVPR20‍20

简单的结构 | MLP-Mixer: An all-MLP Architecture for Vision | CVPR2021

域迁移DA |Addressing Domain Shift for Segmentation | CVPR2018

医学图像配准 | SYMnet 对称微分同胚配准CNN(SOTA) | CVPR2020

光流 | flownet | CVPR2015 | 论文+pytorch代码

图像分割 | Context Prior CPNet | CVPR2020

自监督图像论文复现 | BYOL(pytorch)| 2020

自监督SOTA框架 | BYOL(优雅而简洁) | 2020

笔记 | 吴恩达新书《Machine Learning Yearning》

图片质量评估论文 | 无监督SER-FIQ | CVPR2020

图像质量评估论文 | Deep-IQA | IEEETIP2018

图像质量评估论文 | rank-IQA | ICCV2017

图像分割论文 | DRN膨胀残差网络 | CVPR2017

注意力论文解读(1) | Non-local Neural Network | CVPR2018 | 已复现

卷积网络可解释性复现 | Grad-CAM | ICCV | 2017

轮廓检测论文解读 | Richer Convolutional Features| CVPR | 2017

轮廓检测论文解读 | 整体嵌套边缘检测HED | CVPR | 2015

卷积涨点论文复现 | Asymmetric Conv ACNet | ICCV | 2019

pytorch实现 | Deformable ConvNet 可变卷积(下) | CVPR | 2017

图像处理论文详解 | Deformable Convolutional Networks (上)| CVPR | 2017

<<小白学PyTorch>>

扩展之Tensorflow2.0 | 21 Keras的API详解(下)池化、Normalization层

扩展之Tensorflow2.0 | 21 Keras的API详解(上)卷积、激活、初始化、正则

扩展之Tensorflow2.0 | 20 TF2的eager模式与求导

扩展之Tensorflow2.0 | 19 TF2模型的存储与载入

扩展之Tensorflow2.0 | 18 TF2构建自定义模型

扩展之Tensorflow2.0 | 17 TFrec文件的创建与读取

扩展之Tensorflow2.0 | 16 TF2读取图片的方法

扩展之Tensorflow2.0 | 15 TF2实现一个简单的服装分类任务

小白学PyTorch | 14 tensorboardX可视化教程

小白学PyTorch | 13 EfficientNet详解及PyTorch实现

小白学PyTorch | 12 SENet详解及PyTorch实现

小白学PyTorch | 11 MobileNet详解及PyTorch实现

小白学PyTorch | 10 pytorch常见运算详解

小白学PyTorch | 9 tensor数据结构与存储结构

小白学PyTorch | 8 实战之MNIST小试牛刀

小白学PyTorch | 7 最新版本torchvision.transforms常用API翻译与讲解

小白学PyTorch | 6 模型的构建访问遍历存储(附代码)

小白学PyTorch | 5 torchvision预训练模型与数据集全览

小白学PyTorch | 4 构建模型三要素与权重初始化

小白学PyTorch | 3 浅谈Dataset和Dataloader

小白学PyTorch | 2 浅谈训练集验证集和测试集

小白学PyTorch | 1 搭建一个超简单的网络

小白学PyTorch | 动态图与静态图的浅显理解

<<小样本分割>>

小样本分割 | FSS1000 | CVPR2020

<<图网络>>

图网络 | Graph Attention Networks | ICLR 2018 | 代码讲解

<<图像质量评估>>

图片质量评估论文 | 无监督SER-FIQ | CVPR2020

图像质量评估论文 | Deep-IQA | IEEETIP2018

图像质量评估论文 | rank-IQA | ICCV2017

<<图像轮廓检测>>

轮廓检测论文解读 | Richer Convolutional Features| CVPR | 2017

轮廓检测论文解读 | 整体嵌套边缘检测HED | CVPR | 2015

<<光流与配准>>

医学图像配准 | SYMnet 对称微分同胚配准CNN(SOTA) | CVPR2020

光流 | flownet | CVPR2015 | 论文+pytorch代码

图像匹配 | NCC 归一化互相关损失 | 代码 + 讲解

医学图像配准 | Voxelmorph 微分同胚 | MICCAI2019

<<DA域迁移>>

域迁移DA |Addressing Domain Shift for Segmentation | CVPR2018

self-training | 域迁移 | source-free的域迁移(第一篇)

self-training | MICCAI2021 | BN层的source free的迁移

<<医学图像AI>>

医学图像 | DualGAN与儿科超声心动图分割 | MICCA

医学AI论文解读 | 超声心动图在临床中的自动化检测 | Circulation | 2018 | 中英双语

<<小白学图像(网络结构)>>

卷积网络可解释性复现 | Grad-CAM | ICCV | 2017

孪生网络入门(下) Siamese Net分类服装MNIST数据集(pytorch)

孪生网络入门(上) Siamese Net及其损失函数

图像分割必备知识点 | Unet++ 超详解+注解

图像分割必备知识点 | Unet详解 理论+ 代码

图像分割必备知识点 | Dice损失 理论+代码

3D卷积入门 | 多论文笔记 | R2D C3D P3D MCx R(2+1)D

小白学论文 | EfficientNet强在哪里

小白学论文 | 神经网络初始化Xavier

小白学论文 | 端侧神经网络GhostNet(2019)

小白学目标检测 | RCNN, SPPNet, Fast, Faster

小白学图像 | BatchNormalization详解与比较

小白学图像 | Group Normalization详解+PyTorch代码

小白学图像 | 八篇经典CNN论文串讲

图像增强 | CLAHE 限制对比度自适应直方图均衡化

小白学卷积 | 深入浅出卷积网络的平移不变性

小白学卷积 | (反)卷积输出尺寸计算

损失函数 | 焦点损失函数 FocalLoss 与 GHM

<<小白学机器学习>>

小白学ML | 随机森林 全解 (全网最全)

小白学SVM | SVM优化推导 + 拉格朗日 + hingeLoss

小白学LGB | LightGBM = GOSS + histogram + EFB

小白学LGB | LightGBM的调参与并行

小白学XGB | XGBoost推导与牛顿法

评价指标 | 详解F1-score与多分类F1

小白学ML | Adaboost及手推算法案例

小白学ML | GBDT梯度提升树

小白学优化 | 最小二乘法与岭回归&Lasso回归

小白学排序 | 十大经典排序算法(动图)

杂谈 | 正态分布为什么如此常见

Adam优化器为什么被人吐槽?

机器学习不得不知道的提升技巧:SWA与pseudo-label

决策树(一)基尼系数与信息增益

决策树(二)ID3,C4.5和CART

五分钟理解:BCELoss 和 BCEWithLogitsLoss的区别

<<小白面经>>

秋招总结 | 一个非Top学校的跨专业的算法应届研究生的几十场面试

【小白面经】快手 AI算法岗 附答案解析

【小白面经】 拼多多 AI算法岗 附带解析

【小白面经】八种应对样本不均衡的策略

【小白面经】之防止过拟合的所有方法

【小白面经】梯度消失爆炸及其解决方法

【小白面经】 判别模型&生成模型

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-04-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习炼丹术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • hugging face下载
  • 使用
    • 1 下载本地
    • 效果
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档