DeepSpeed框架:1-大纲和资料梳理
摘要:DeepSpeed是一个深度学习优化软件套件,使分布式训练和推理变得简单、高效和有效。它可以做些什么呢?训练/推理具有数十亿或数万亿参数的密集或稀疏模型;实现出色的系统吞吐量并有效扩展到数千个GPU;在资源受限的GPU系统上进行训练/推理;实现前所未有的低延迟和高吞吐量的推理;以低成本实现极限压缩,
阅读全文
posted @
2023-10-12 01:22
扫地升
阅读(3086)
推荐(1) 编辑
CUDA C编程权威指南:2.2-给核函数计时
摘要:本文主要通过例子介绍了如何给核函数计时的思路和实现。实现例子代码参考文献[7],只需要把相应章节对应的CMakeLists.txt文件拷贝到CMake项目根目录下面即可运行。 1.用CPU计时器计时(sumArraysOnGPU-timer.cu)[7] 在主函数中用CPU计时器测试向量加法的核函数
阅读全文
posted @
2023-10-09 00:10
扫地升
阅读(536)
推荐(0) 编辑
CUDA C编程权威指南:2.1-CUDA编程模型
摘要:本文主要通过例子介绍了CUDA异构编程模型,需要说明的是Grid、Block和Thread都是逻辑结构,不是物理结构。实现例子代码参考文献[2],只需要把相应章节对应的CMakeLists.txt文件拷贝到CMake项目根目录下面即可运行。 1.Grid、Block和Thread间的关系 GPU中最
阅读全文
posted @
2023-10-08 10:52
扫地升
阅读(573)
推荐(2) 编辑
Langchain-Chatchat项目:3-Langchain计算器工具Agent思路和实现
摘要:本文主要讨论Langchain-Chatchat项目中自定义Agent问答的思路和实现。以"计算器工具"为例,简单理解就是通过LLM识别应该使用的工具类型,然后交给相应的工具(也是LLM模型)来解决问题。一个LLM模型可以充当不同的角色,要把结构化的Prompt模板写好,充分利用LLM的Zero/O
阅读全文
posted @
2023-10-07 23:29
扫地升
阅读(1600)
推荐(0) 编辑
Langchain-Chatchat项目:2.1-通过GPT2模型来检索NebulaGraph
摘要:在官方例子中给出了通过chain = NebulaGraphQAChain.from_llm(ChatOpenAI(temperature=0), graph=graph, verbose=True)来检索NebulaGraph图数据库。本文介绍了通过GPT2替换ChatOpenAI的思路和实现,暂
阅读全文
posted @
2023-10-07 23:29
扫地升
阅读(280)
推荐(0) 编辑
Langchain-Chatchat项目:1.2-Baichuan2项目整体介绍
摘要:由百川智能推出的新一代开源大语言模型,采用2.6万亿Tokens的高质量语料训练,在多个权威的中文、英文和多语言的通用、领域benchmark上取得同尺寸最佳的效果,发布包含有7B、13B的Base和经过PPO训练的Chat版本,并提供了Chat版本的4bits量化。 一.Baichuan2模型 B
阅读全文
posted @
2023-10-07 23:28
扫地升
阅读(987)
推荐(0) 编辑
Langchain-Chatchat项目:1.1-ChatGLM2项目整体介绍
摘要:ChatGLM2-6B是开源中英双语对话模型ChatGLM-6B的第2代版本,引入新的特性包括更长的上下文(基于FlashAttention技术,将基座模型的上下文长度由ChatGLM-6B的2K扩展到了32K,并在对话阶段使用8K的上下文长度训练);更高效的推理(基于Multi-QueryAtte
阅读全文
posted @
2023-10-07 23:28
扫地升
阅读(461)
推荐(0) 编辑
Langchain-Chatchat项目:1-整体介绍
摘要:基于Langchain与ChatGLM等语言模型的本地知识库问答应用实现。项目中默认LLM模型改为THUDM/chatglm2-6b[2],默认Embedding模型改为moka-ai/m3e-base[3]。 一.项目介绍 1.实现原理 本项目实现原理如下图所示,过程包括加载文件->读取文本->文
阅读全文
posted @
2023-10-07 23:27
扫地升
阅读(2071)
推荐(0) 编辑
Boost程序库完全开发指南:1.2-C++基础知识点梳理
摘要:主要整理了N多年前(2010年)学习C++的时候开始总结的知识点,好长时间不写C++代码了,现在LLM量化和推理需要重新学习C++编程,看来出来混迟早要还的。 1.const_cast <new_type> (expression)[1] 解析:const_cast转换符用来移除变量的const或v
阅读全文
posted @
2023-10-05 01:29
扫地升
阅读(144)
推荐(0) 编辑
Boost程序库完全开发指南:1.1-C++基础知识点梳理
摘要:主要整理了N多年前(2010年)学习C++的时候开始总结的知识点,好长时间不写C++代码了,现在LLM量化和推理需要重新学习C++编程,看来出来混迟早要还的。 1.shared_ptr 解析:shared_ptr是一种计数指针,当引用计数变为0时,shared_ptr所指向的对象将会被删除。如下所示
阅读全文
posted @
2023-10-05 01:29
扫地升
阅读(61)
推荐(0) 编辑
Boost程序库完全开发指南:1-开发环境和构建工具
摘要:Boost官方于2019年12月发布的1.72版编写,共包含160余个库/组件,涵盖字符串与文本处理、容器、迭代器、算法、图像处理、模板元编程、并发编程等多个领域,使用Boost,将大大增强C++的功能和表现力。环境:Windows 10,WSL2,Ubuntu 20.04 LTS,Rider(WS
阅读全文
posted @
2023-10-05 01:28
扫地升
阅读(203)
推荐(0) 编辑
CUDA C编程权威指南:1.3-CUDA基础知识点梳理
摘要:主要整理了N多年前(2013年)学习CUDA的时候开始总结的知识点,好长时间不写CUDA代码了,现在LLM推理需要重新学习CUDA编程,看来出来混迟早要还的。 1.CUDA数组 解析:CUDA数组是使用cudaMallocArray()、cudaMalloc3DArray()分配的,使用cudaFr
阅读全文
posted @
2023-10-05 01:28
扫地升
阅读(324)
推荐(0) 编辑
CUDA C编程权威指南:1.2-CUDA基础知识点梳理
摘要:主要整理了N多年前(2013年)学习CUDA的时候开始总结的知识点,好长时间不写CUDA代码了,现在LLM推理需要重新学习CUDA编程,看来出来混迟早要还的。 1.闭扫描和开扫描 对于一个二元运算符和一个元输入数组。如果返回输出数组为,那么是闭扫描;如果返回输出数组为,那么是开扫描。串行闭扫描算法,
阅读全文
posted @
2023-10-05 01:27
扫地升
阅读(178)
推荐(0) 编辑
CUDA C编程权威指南:1.1-CUDA基础知识点梳理
摘要:主要整理了N多年前(2013年)学习CUDA的时候开始总结的知识点,好长时间不写CUDA代码了,现在LLM推理需要重新学习CUDA编程,看来出来混迟早要还的。 1.CUDA 解析:2007年,NVIDIA推出CUDA(Compute Unified Device Architecture,统一计算设
阅读全文
posted @
2023-10-05 01:27
扫地升
阅读(512)
推荐(0) 编辑
CUDA C编程权威指南:1-基于CUDA的异构并行计算
摘要:什么是CUDA?CUDA(Compute Unified Device Architecture,统一计算设备架构)是NVIDIA(英伟达)提出的并行计算架构,结合了CPU和GPU的优点,主要用来处理密集型及并行计算。什么是异构计算?这里的异构主要指的是主机端的CPU和设备端的GPU,CPU更擅长逻
阅读全文
posted @
2023-10-05 01:26
扫地升
阅读(200)
推荐(0) 编辑
Llama2-Chinese项目:8-TRL资料整理
摘要:TRL(Transformer Reinforcement Learning)是一个使用强化学习来训练Transformer语言模型和Stable Diffusion模型的Python类库工具集,听上去很抽象,但如果说主要是做SFT(Supervised Fine-tuning)、RM(Reward
阅读全文
posted @
2023-10-05 01:26
扫地升
阅读(829)
推荐(0) 编辑
Llama2-Chinese项目:7-外延能力LangChain集成
摘要:本文介绍了Llama2模型集成LangChain框架的具体实现,这样可更方便地基于Llama2开发文档检索、问答机器人和智能体应用等。 1.调用Llama2类 针对LangChain[1]框架封装的Llama2 LLM类见examples/llama2_for_langchain.py,调用代码如下
阅读全文
posted @
2023-10-05 01:25
扫地升
阅读(203)
推荐(0) 编辑
Llama2-Chinese项目:6-模型评测
摘要:测试问题筛选自AtomBulb[1],共95个测试问题,包含:通用知识、语言理解、创作能力、逻辑推理、代码编程、工作技能、使用工具、人格特征八个大的类别。 1.测试中的Prompt 例如对于问题"列出5种可以改善睡眠质量的方法",如下所示: [INST] <<SYS>>You are a helpf
阅读全文
posted @
2023-10-05 01:25
扫地升
阅读(83)
推荐(0) 编辑
Llama2-Chinese项目:5-推理加速
摘要:随着大模型参数规模的不断增长,在有限的算力资源下,提升模型的推理速度逐渐变为一个重要的研究方向。常用的推理加速框架包含lmdeploy、FasterTransformer和vLLM等。 一.lmdeploy推理部署 lmdeploy由上海人工智能实验室开发,推理使用C++/CUDA,对外提供pyth
阅读全文
posted @
2023-10-05 01:24
扫地升
阅读(1535)
推荐(0) 编辑
Llama2-Chinese项目:4-量化模型
摘要:一.量化模型调用方式 下面是一个调用FlagAlpha/Llama2-Chinese-13b-Chat[1]的4bit压缩版本FlagAlpha/Llama2-Chinese-13b-Chat-4bit[2]的例子: from transformers import AutoTokenizerfro
阅读全文
posted @
2023-10-05 01:24
扫地升
阅读(1280)
推荐(0) 编辑
Llama2-Chinese项目:3.2-LoRA微调和模型量化
摘要:提供LoRA微调和全量参数微调代码,训练数据为data/train_sft.csv,验证数据为data/dev_sft.csv,数据格式为"<s>Human: "+问题+"\n</s><s>Assistant: "+答案。本文主要介绍Llama-2-7b模型LoRA微调以及4bit量化的实践过程。
阅读全文
posted @
2023-10-01 23:50
扫地升
阅读(2380)
推荐(0) 编辑
Llama2-Chinese项目:3.1-全量参数微调
摘要:提供LoRA微调和全量参数微调代码,训练数据为data/train_sft.csv,验证数据为data/dev_sft.csv,数据格式如下所示: "<s>Human: "+问题+"\n</s><s>Assistant: "+答案 举个例子,如下所示: <s>Human: 用一句话描述地球为什么是独
阅读全文
posted @
2023-10-01 00:06
扫地升
阅读(1280)
推荐(1) 编辑