![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LLM
文章平均质量分 94
哦豁灬
这个作者很懒,什么都没留下…
展开
-
OrangePi Kunpeng Pro 开发板测评 | AI 边缘计算 & 大模型部署
香橙派联合华为发布了基于昇腾的 OrangePi Kunpeng Pro 开发板,具备 8TOPS 的 AI 算力,能覆盖生态开发板者的主流应用场景,具备完善的配套软硬件。开发板的整体体验远超出预期,作为低功耗 AI 边缘计算开发板,支持Ubuntu、openEuler操作系统,能够满足大多数AI算法原型验证、推理应用开发的需求,结合昇腾 AI 生态支持,在 CV 网络上的表现令人满意。更让人意外的是,甚至对于大语言模型也有一战之力。原创 2024-05-29 21:50:37 · 1933 阅读 · 2 评论 -
safetensors介绍
safetensors 是 Huggingface 推出的一种可靠、易移植的机器学习模型存储格式,用于安全地存储 Tensor,而且速度很快(零拷贝)。8 bytes:一个无符号的整数,表示 header 占的字节数N bytes:JSON UTF-8 字符串,存储 header 的内容,形如:},},Rest of the file:存储 tensor 的数据。原创 2024-05-21 23:08:42 · 531 阅读 · 0 评论 -
使用llama.cpp量化部署LLM
以llama.cpp工具为例,介绍模型量化并在本地部署的详细步骤。这里使用 Meta最新开源的 Llama3-8B 模型。原创 2024-05-05 17:37:48 · 1507 阅读 · 1 评论 -
transformer上手(12)—— Prompting 情感分析
运用 Transformers 库来完成情感分析任务,并且使用当前流行的 Prompting 方法。Prompting 方法的核心思想就是借助模板将问题转换为与预训练任务类似的形式来处理。例如要判断标题“American Duo Wins Opening Beach Volleyball Match”的新闻类别,就可以应用模板“This is aNews: x” 将其转换为 “This is a。原创 2024-04-29 21:47:16 · 1149 阅读 · 0 评论 -
transformer上手(11)—— 抽取式问答
运用 Transformers 库来完成抽取式问答任务。自动问答 (Question Answering, QA) 是经典的 NLP 任务,需要模型基于给定的上下文回答问题。抽取式问答模型通常采用纯 Encoder 框架(例如 BERT),它更适用于处理事实性问题,例如“谁发明了 Transformer 架构?”,这些问题的答案通常就包含在上下文中;而生成式问答模型则通常采用 Encoder-Decoder 框架(例如 T5、BART),它更适用于处理开放式问题,例如“天空为什么是蓝色的?原创 2024-04-28 23:57:50 · 277 阅读 · 1 评论 -
transformer上手(10)—— 文本摘要任务
文本摘要是一个 Seq2Seq 任务,尽可能保留文本语义的情况下将长文本压缩为短文本。文本摘要可以看作是将长文本“翻译”为捕获关键信息的短文本,因此大部分文本摘要模型同样采用 Encoder-Decoder 框架。当然,也有一些非 Encoder-Decoder 框架的摘要模型,例如 GPT 家族也可以通过小样本学习 (few-shot) 进行文本摘要。T5 模型通过模板前缀 (prompt prefix) 将各种 NLP 任务都转换到 text-to-text 框架进行预训练,例如摘要任务的前缀就是。原创 2024-04-28 23:55:05 · 663 阅读 · 0 评论 -
transformer上手(9)—— 翻译任务
运用 Transformers 库来完成翻译任务。翻译是典型的序列到序列 (sequence-to-sequence, Seq2Seq) 任务,即对于每一个输入序列都会输出一个对应的序列。翻译任务通常需要大量的对照语料用于训练,如果我们有足够多的训练数据就可以从头训练一个翻译模型,但是微调预训练好的模型会更快,例如将 mT5、mBART 等多语言模型微调到特定的语言对。微调一个 Marian 翻译模型进行汉英翻译,该模型已经基于语料对汉英翻译任务进行了预训练,因此可以直接用于翻译。原创 2024-04-16 22:33:27 · 1173 阅读 · 0 评论 -
transformer上手(8)—— 序列标注任务
序列标注 (Sequence Labeling/Tagging),其目标是为文本中的每一个 token 分配一个标签,因此 Transformers 库也将其称为 token 分类任务。常见的序列标注任务有命名实体识别 NER (Named Entity Recognition) 和词性标注 POS (Part-Of-Speech tagging)。命名实体识别 NER 旨在识别出文本中诸如人物、地点、组织等实体,即为所有的 token 都打上实体标签(包含“非实体”)。原创 2024-04-16 22:15:15 · 921 阅读 · 0 评论 -
transformer上手(7)—— 快速分词器
这里使用的是 IOB 标签格式,“B-XXX”表示某一种标签的开始,“I-XXX”表示某一种标签的中间,“O”表示非标签。从 pipeline 的输出结果可以看到,模型采用的是 IOB1 格式,因此“Sylvain”对应的 4 个 token “S”、“##yl”、“##va”和“##in”预测的标签都为“I-PER”。以前面介绍的 simple 合并策略为例,将连续的标签为“I-XXX”的多个 token 进行合并(或者以“B-XXX”开头,后面接多个“I-XXX”的 token 序列),直到遇到。原创 2024-04-15 22:06:09 · 803 阅读 · 0 评论 -
transformer上手(6)—— 微调预训练模型
与 Pytorch 类似,Transformers 库同样实现了很多的优化器,并且相比 Pytorch 固定学习率,Transformers 库的优化器会随着训练过程逐步减小学习率(通常会产生更好的效果)。函数来加载模型参数。最后,我们加载验证集上最优的模型权重,汇报其在测试集上的性能。注意:前面我们只保存了模型的权重,因此如果要单独调用上面的代码,需要首先实例化一个结构完全一样的模型,再通过。最终在测试集(这里用了验证集)上的准确率为 74.1%,与前面汇报的一致,也验证了模型参数的加载过程是正确的。原创 2024-04-15 22:03:55 · 1088 阅读 · 0 评论 -
transformer上手(5) —— 必要的 Pytorch 知识
Transformers 库建立在 Pytorch 框架之上(Tensorflow 的版本功能并不完善),虽然官方宣称使用 Transformers 库并不需要掌握 Pytorch 知识,但是实际上我们还是需要通过 Pytorch 的 DataLoader 类来加载数据、使用 Pytorch 的优化器对模型参数进行调整等等。这里将介绍 Pytorch 的一些基础概念以及后续可能会使用到的类。原创 2024-04-14 21:10:10 · 927 阅读 · 0 评论 -
transformer上手(4) —— 模型与分词器
换句话说,即使经过训练,它们的值事实上还是随机的。可以看到,这里成功地将 [ENT_START] 的 embedding 初始化为“start”、“of”、“entity”三个 token 的平均值,将 [ENT_END] 初始化为“end”、“of”、“entity”的平均值。向词表中添加新 token 后,必须重置模型 embedding 矩阵的大小,也就是向矩阵中添加新 token 对应的 embedding,这样模型才可以正常工作,将 token 映射到对应的 embedding。原创 2024-04-14 21:07:04 · 940 阅读 · 0 评论 -
transformer上手(3) —— 开箱即用的 pipelines
可以看到,pipeline 自动选择了预训练好的 distilbart-cnn-12-6 模型来完成任务。与文本生成类似,我们也可以通过 max_length 或 min_length 参数来控制返回摘要的长度。原创 2024-04-13 17:46:42 · 1017 阅读 · 0 评论 -
transformer上手(2) —— 注意力机制
自从 2017 年 Google 发布之后,各种基于 Transformer 的模型和方法层出不穷。尤其是 2018 年,OpenAI 发布的和 Google 发布的模型在几乎所有 NLP 任务上都取得了远超先前最强基准的性能,将 Transformer 模型的热度推上了新的高峰。Transformer 模型之所以如此强大,是因为它抛弃了之前广泛采用的循环网络和卷积网络,而采用了一种特殊的结构来建模文本。原创 2024-04-08 23:06:29 · 1398 阅读 · 0 评论 -
transformer上手(1) —— transformer介绍
因此,大部分情况下,我们都不会从头训练模型,而是将别人预训练好的模型权重通过迁移学习应用到自己的模型中,即使用自己的任务语料对模型进行“二次训练”,通过微调参数使模型适用于新任务。其次所有模型层共享参数;实践证明,即使是对于自定义任务,除非你有大量的语料,否则相比训练一个专门的模型,基于预训练模型进行微调会是一个更好的选择。在每个阶段,对于给定的词语,注意力层只能访问句子中位于它之前的词语,即只能迭代地基于已经生成的词语来逐个预测后面的词语,因此也被称为自回归 (auto-regressive) 模型。原创 2024-04-08 22:59:25 · 1041 阅读 · 0 评论 -
vLLM vs TGI 部署大模型以及注意点
LLM 高并发部署是个难题,具备高吞吐量的服务,能够让用户有更好的体验(比如模型生成文字速度提升,用户排队时间缩短)。原创 2024-04-05 23:03:08 · 2529 阅读 · 0 评论 -
vLLM 部署大模型
vLLM 是来自 UC Berkeley 的 LMSYS 在 LLM 推理方面的最新工作(没错就是搞出 Vicuna 的那个 group),最大亮点是采用 Paged Attention 技术,结合 Continuous Batching,极大地优化了 realtime 场景下的 LLM serving 的 throughput 与内存使用。原创 2024-04-04 19:40:42 · 4541 阅读 · 1 评论 -
vLLM介绍
vLLM是伯克利大学LMSYS组织开源的大语言模型高速推理框架,旨在极大地提升实时场景下的语言模型服务的吞吐与内存使用效率。vLLM是一个快速且易于使用的库,用于 LLM 推理和服务,可以和HuggingFace 无缝集成。vLLM利用了全新的注意力算法「PagedAttention」,有效地管理注意力键和值。原创 2024-04-04 19:13:03 · 3140 阅读 · 0 评论 -
在 Linux 本地部署 stable diffusion
由于工作站安装的是 ubuntu,卡也在上面,就只能在 ubuntu 上部署安装 stable diffusion 了。另外,Linux 上使用 stable diffusion 也会方便很多。原创 2024-01-16 03:10:49 · 1915 阅读 · 0 评论 -
预训练模型下载和使用
这也是为什么下载的时候,一定要保证这些名称是这几个,不能变。使用的基本原理也非常简单,from_pretrained的参数pretrained_model_name_or_path,可以接受的参数有几种,short-cut name(缩写名称,类似于gpt2这种)、identifier name(类似于microsoft/DialoGPT-small这种)、文件夹、文件。对于short-cut name或identifier name,这种情况下,本地有文件,可以使用本地的,本地没有文件,则下载。原创 2023-12-29 13:38:45 · 1590 阅读 · 0 评论