- 博客(432)
- 收藏
- 关注

原创 协程的学习二:C风格写的协程(以云凤协程为例),顺便记录ucontex使用
文章目录一、测试代码讲解1)main函数主流程2)main测试代码示例二、协程头文件coroutine.h1)代码作用讲解①协程执行函数②创建协程调度器③关闭协程调度器④创建协程⑤协程堆栈恢复⑥判断协程yield出去后是否准备resume回来⑦coroutine_running(struct schedule *)不知道什么作用⑧协程让出CPU占用(yield)2)代码实体三、协程函数实现文件coroutine.c0)备注背景知识1)错误码及结构体①struct args②struct coroutine③
2021-11-20 20:50:56
1520

原创 C/C++遇到的坑(持续更新,每日更新两篇,11/24)
文章目录1.基础问题1.1 运算符优先级2.编译问题3.库函数问题4.文件处理问题5.类和对象问题6.内存使用问题7.多线程问题8.性能问题9.其他问题9.1 中文截断成乱码问题摘录自《从缺陷中学习C/C++》1.基础问题1.1 运算符优先级//to get 2*n+1int func(int n){ return n<<1 + 1;}后果上述代码中的函数func本意是期望计算2n+1,但程序实际运行结果是4n。分析这段代码使用左移1位来代替乘以2的运
2021-09-09 01:07:42
485

原创 lua的坑(持续更新,每日更新两篇,9/15),更新到17个
1.把数值转成16进制的格式2.去掉商里的小数3.string.format()保留三位小数4.向上/下取整,四舍五入5.string字符串拆成表6.敏感词过滤7.同名传参/同名字段相关bug1)2个同名传参, 第1个传参无效2)2个同名字段, 第2个字段无效8.表作为传参: 浅拷贝的相关bug1)表作为参数传递时, 是浅拷贝,原表也会改变2)但是, 改变arg表自身, tab不变9.windwos安装lua10.通配符,正则表达式11.用正则实现trim()12.字符串截取s
2021-08-27 00:54:53
723
原创 向量数据库简单对比
简单好部署好用(很多应用都使用Redis作为缓存中间件的数据库,这也就意味着使用Redis作为向量数据库,不需要额外的技术架构调整。:Elasticsearch是为全文搜索目的而设计的,虽然支持向量搜索,但对于涉及百万级向量搜索及以上的数据,性能会受到影响。从开发人员的角度来看,依赖外部的第三方托管服务的危险,无法完全控制数据库的设置和运行方式。,不需要用户了解任何有关向量化或向量索引的知识,前期导入的时候是非常方便快捷的。,从长远来看,依赖完全托管的闭源解决方案的影响可能是巨大的。
2025-02-10 19:54:19
348
原创 stable diffusion 量化学习笔记
简单学习介绍量化背景补充1)tensorFlow python版本其实是调用的TensorFlow C的接口2)libtorch其实是pytorch的C++版本3)cublas是实现矩阵相乘的功能4)cudnn主要实现dnn上的一些算子功能,例如卷积等5)不同NVIDIA显卡架构间不兼容,同代显卡基本是同架构优化策略1、低精度优化 :int8 int162、Kernel自动调优例如:cublas gemm多种实现:①不用shared memory;②小矩阵相乘;③使用额外显存的策略。
2025-01-11 16:55:03
522
原创 CUDA C编程权威指南习题解析
6.为执行核函数的每个线程提供了一个唯一的线程ID,通过内置变量threadIdx.x可以在内核中对线程进行访问。3.用cudaDeviceSynchronize 函数来替换hello.cu中的cudaDeviceReset函数,然后编译运行,看看会发生什么。4.参考1.3节,从编译器命令行中移除设备架构标志,然后按照下面的方式进行编译,看看会发生什么。2.从hello.cu中移除cudaDeviceReset函数,然后编译运行,看看会发生什么。(1)对于二维数据,沿x轴进行块划分。
2024-12-16 15:19:42
885
原创 深度神经网络模型压缩学习笔记三:在线量化算法和工具、实现原理和细节
文章目录一、在线量化基础概念二、在线量化基本流程三、在线量化算法介绍四、在线量化工具介绍MQBench五、在线量化工具整体设计结构六、在线量化工具代码解读七、实践:MobileNet V2在线量化一、在线量化基础概念二、在线量化基本流程三、在线量化算法介绍四、在线量化工具介绍MQBench五、在线量化工具整体设计结构六、在线量化工具代码解读七、实践:MobileNet V2在线量化
2024-11-26 16:33:34
447
原创 深度神经网络模型压缩学习笔记二:离线量化算法和工具、实现原理和细节
文章目录一、离线量化基础概念二、离线量化难点三、离线量化算法介绍四、离线量化工具介绍五、离线量化工具整体设计结构六、离线量化工具代码解读七、实践:Dipoorlet量化MobileNet一、离线量化基础概念二、离线量化难点三、离线量化算法介绍四、离线量化工具介绍五、离线量化工具整体设计结构六、离线量化工具代码解读七、实践:Dipoorlet量化MobileNet
2024-11-26 16:28:53
505
原创 docker与大模型(口语化原理和实操讲解)
tag给镜像起别名,命令用于给本地的 Docker 镜像添加一个新的标签。标签是镜像的一个别名,可以用来标记镜像的不同版本或者用途。通过 docker tag 命令,用户可以将一个镜像标记为属于某个特定的仓库或者版本,这对于管理和分发 Docker 镜像非常有用。拉取过来后,用docker images看本地镜像,可以看到本地已经有这个rancher的hello-world了。②repo:仓库,存储很多人传的不同images镜像,类似于github一样。PORTS:容器暴露的端口和映射到主机的端口。
2024-11-15 16:38:11
866
原创 CUDA与TensorRT学习六:模型部署-CNN、模型部署-YOLOv8检测器、部署BEVFusion模型
## 一、模型部署-CNN## 二、模型部署-YOLOv8检测器## 三、部署BEVFusion模型
2024-10-05 03:17:53
584
原创 CUDA与TensorRT学习五:TensorRT的C++或python API的介绍
## 一、MINISUT-model-build-infer## 二、build-model## 三、infer-model## 四、TensorRT-network-structure## 五、build-model-from-scratch## 六、build-trt-module## 七、custom-trt-module## 八、plugin-unit-test(python+cpp)
2024-10-05 03:15:43
483
2
原创 CUDA与TensorRT学习四:模型部署基础知识、模型部署的几大误区、模型量化、模型剪枝、层融合
## 一、模型部署基础知识## 二、模型部署的几大误区## 三、模型量化## 四、模型剪枝## 五、层融合
2024-10-05 03:12:11
477
原创 pytorch学习笔记二:用pytorch神经网络模型做气温预测、分类任务构建和分类网络构建、卷积神经网络原理介绍
与之前的回归模型的区别①得到的结果是不同的②使用的损失函数也是不同的学习目的:Mnist分类任务①网络基本构建与训练方法,常用函数解析②torch.nn.functional模块③nn.Module模块①有可学习的参数用Module:卷积层、②其他情况用functional:激活函数、损失函数(分类任务一般用交叉相乘作为损失函数:cross_entropy)定义函数定义参数bs:也就是batch_size实际训练流程,并打印结果。
2024-09-23 00:51:58
1354
原创 pytorch学习笔记一:作用、安装和基本使用方法、自动求导机制、自制线性回归模型、常见tensor格式、hub模块介绍
x或x词向量:用多维的向量数值表达一个词的意思介绍调用别人训练好的模型举例①比如说选择对象识别的模型②点开实验环境③会有怎么使用的介绍有很多模型使用说明。
2024-09-20 00:47:54
900
原创 CUDA与TensorRT学习三:TensorR模块、导出onnx并分析、刨析onnx的proto结构、onnx注册算子、不同方式导出onnx、trtexec分析log
文章目录一、TensorRT概述二、TensorRT应用场景三、TensorRT模块四、导出并分析ONNX五、剖析ONNX架构并理解Protobuf六、ONNX注册算子的方法七、快速分析开源代码并导出ONNX八、使用trtexec九、trtexec log分析一、TensorRT概述二、TensorRT应用场景三、TensorRT模块四、导出并分析ONNX五、剖析ONNX架构并理解Protobuf六、ONNX注册算子的方法七、快速分析开源代码并导出ONNX八、使用trtexec九、trte
2024-09-05 00:09:18
326
原创 CUDA与TensorRT学习二:CUDA硬件信息获取、Nsight system和Nsight compute、共享内存和bank conflict,预处理后处理、stream和event、双线性插
一、理解CUDA的grid和Block1)第一个cuda项目二、理解.cu和.cpp的相互引用及Makefile三、利用CUDA矩阵乘法(matmul)计算、Error Handle 及硬件信息获取1)矩阵乘法2)Error Handle3)硬件信息获取四、安装Nsight system and compute五、共享内存、Bank Conflict原因和解决方法、TRT用Cuda进行预处理/后处理来加速、Stream 与Event(用Cuda写流提高并发性)六、双线性插值与仿射变换
2024-09-03 00:36:50
1054
原创 CUDA与TensorRT学习一:并行处理与GPU体系架构
## 一、并行处理简介## 二、GPU并行处理## 三、环境搭建## 四、CUDA cuDNN TRT版本选择## 五、常用软件安装## 六、服务器的环境配置## 七、编辑器的环境配置
2024-08-31 18:37:01
530
原创 不务正业篇一:AI模型写小说(08/08)
解决办法:每次加载prompt,都会预先读取本地记录前倾提要的总结文档,额外剧情用embedding切分存到向量数据库。解决办法:提示词加入当前社会的流行词语,针对情节增加对应prompt尽力。解决办法:打算专门拿特定领域的,比如武侠、玄幻等专门微调一个。6、kimi:综合能力不如45,但是长文本功能不错,适合。③缺点三:内容老套和慢热,缺乏对当代社会潮流的洞察。5、通义千问:理解能力和文笔都不错,适合。4、文心4:中文能力和文笔都非常出色,,适合需要丰富文化背景的故事。1、GPT4:推理逻辑强,
2024-08-08 18:54:33
597
原创 大模型面试总结
的时间(推理的时间) -》降低模型的推理延迟。吞吐率 = 处理的请求数/处理需求的时间。-》增大模型并行处理请求的能力。②增强大模型的并行处理能力。②分子是一次处理的条数(①降低模型的推理延迟。
2024-07-28 11:09:13
749
原创 大模型学习笔记十四:Agent模型微调
1、Agent Tuning 的主要动机是训练大模型的 Agent 能力,尤其是希望通过训练让小参数量模型也能具备特定业务场景的 Agent 能力;2、Agent Prompt 可以有不同的描述方式,通常包括等部分;3、可以采用自动评估和人工评估相结合的方法来评估 Agent 能力;4、采用 Meta-Agent 方法可以构建多样性的 Agent Prompt 模板,再结合Query、Tools的多样化,可以训练出能力更加泛化的模型。
2024-07-24 22:42:04
1511
原创 大模型额外篇章三:vercel搭建openai中转服务器
这里需要将部署格式改成Next.js,另外需要将维基百科修改为openai的官网,这样才能转发到openai。②因为业务在国内,所以大部分业务代码在国内的服务器,国内服务器调用代理服务器。复制以下代码,去 cloudflare 建立一个 worker 即可。①不建议为了调用openai把业务代码放国外,多少会有延迟。配置nginx的服务器(改写nginx.conf )①fork一份github上的要部署的代理服务器代码。②vercel添加新项目,选择导入自己库内的项目。
2024-07-23 18:20:17
785
原创 大模型学习笔记十三:工作流
②直接进行CoT控制(尤其是用自然语言表达CoT,也就是思维链)会输出思考过程,但我们不希望用户看到这个过程。③ 随着工作进展出现的新信息,对任务时序、编排有依赖的信息,不一定能在单次请求中一次性完成输入。① 上下文窗口长度限制、输出长度限制(早期的LangChain长文本Summarize)②能够将模型单次请求调用视作一个工作节点。③能够灵活将其他代码逻辑也写入工作节点。⑤能够在工作节点之间进行数据传递。①将工作任务拆分成多个工作节点。④能够对工作节点进行任务编排。
2024-07-23 00:43:57
1409
原创 大模型学习笔记十二:AI产品部署
①定义:是一个快速且容易使用的库,用于大语言模型LLM的推理和服务1)速度快,每个请求需要3个并行输出完成时的服务器吞吐量,比huggingface transformer的吞吐量高出8.5到15倍,比huggingface文本生成推理TGI的吞吐量高3.3到3.5倍2)优化的cuda内核3)与huggingface模型无缝集成4)支持张量并行处理,实现分布式推理5)支持滚式输出。
2024-07-20 22:51:10
993
原创 大模型学习笔记十一:视觉大模型
不过需要注意,这个模型也会生成非全年龄向的内容 作者:琉璃汐阳 https://www.bilibili.com/read/cv24890845/ 出处:bilibili。所以可根据你想画什么风格画风的画,来选择对应表现较好的模型 作者:琉璃汐阳 https://www.bilibili.com/read/cv24890845/ 出处:bilibili。发布者:indigowing(个人主页:https://civitai.com/user/indigowing/models),能掌握数据本身的边界信息。
2024-07-17 02:30:49
851
原创 大模型额外篇章二:基于chalm3或Llama2-7b训练酒店助手模型
一、代码部分讲解二、实际部署步骤(CHALM3训练步骤)1)注册AutoDL官网实名认证2)花费额度挑选GPU3)准备实验环境4)开始执行脚本5)从浏览器访问6)可以开始提问7)开始微调模型8)测试训练后的模型三、基于Llama2-7b的训练四、额外补充1)修改参数后2)如果需要访问科学的彼岸
2024-05-27 02:33:21
1244
原创 大模型额外篇章一:用huggingface的电影评论数据集情感分类训练模型
工具:huggingface目的:情感分类输入:电影评论输出:标签 [‘neg’,‘pos’]或。
2024-05-22 16:26:21
584
转载 已解决HINT: This error might have occurred since this system does not have Windows Long Path support en
错误2解决方法:从 Windows 10 版本 1607 开始,MAX_PATH限制已从常见的 Win32 文件和目录函数中删除,因此需要启用长路径。②错误2:从 Windows 10 版本 1607 开始,MAX_PATH限制已从常见的 Win32 文件和目录函数中删除,因此需要启用长路径。(3)在“值”数据字段中,输入值1。(1)win+r打开运行界面,键入REGEDIT。①错误1:这是因为你的user文件夹权限不够,(2)修改权限然后应用后点确定。(3)然后依次点击确定。
2024-05-22 13:36:49
1228
原创 大模型学习笔记十:多模态大模型
一、多模态大预言模型(MLLM)的定义二、(图-文)多模态模型的发展历程三、GPT4v以及Gemini-Pro实战四、图文对话系统的搭建五、Beyond VL:支持多模态输入的大预言模型六、使用多模态大预言模型完成更多任务
2024-05-15 13:53:53
1030
原创 大模型学习笔记九:模型微调
一、什么时候需要Fine-Tuning二、用Hugging Face根据电影评论输出来对电影进行情感分类1)安装依赖2)操作流程3)名字解释4)代码导入库和加载模型、加载数据库、加载tokenlizer5)其他相关公共变量赋值(随机种子、标签集评价、标签转token_Id)6)处理数据集:转成模型接受的输入格式7)定义数据规整器:训练时自动将数据拆分成Batch8)定义训练超参:比如学习率9)定义训练器10)# 开始训练11)加载训练后的模型进行推理(参考)三、训练集和验证集的关系
2024-05-15 13:52:12
492
1
原创 大模型学习笔记八:手撕AutoGPT
③开始主循环推理,若输出结果为FINISH就break,否则就执行选择出来的action,并更新短识记忆。①初始化常识和短识的记忆(短识记忆初始化为空,常识是连接向量数据库)④若大于最大思考步数,则输出未能完成任务。
2024-04-03 19:00:56
932
原创 大模型学习笔记七:LLM应用
1)管理一个 LLM 应用的全生命周期,需要用到以下工具:1、调试 Prompt 的 Playground2、测试/验证系统的相关指标3、数据集管理4、各种指标监控与统计:访问量、响应时长、Token费等等2)根据自己的技术栈,选择:1、LangFuse:开源平台,支持 LangChain 和原生 OpenAI API2、LangSmith: LangChain 的原始管理平台3、Prompt Flow:开源平台,支持 Semantic Kernel。
2024-03-20 18:53:19
1693
原创 AI大模型额外学习一:斯坦福AI西部世界小镇笔记(包括部署和源码分析)
①背景介绍②总体逻辑让小镇的NPC自由交流、开party、生活有条不紊③总结:Ai会感知周边环境,并将视野里发生的事件记录下来,加入自己的记忆流。之后,不论是Ai计划要做的事,还是对外界的反应,都会受到这个记忆的影响,并依靠ChatGPT进行决策,最后决策的事件也会加入记忆流,形成新的记忆。让NPC具备记忆系统,并依靠大语言模型来帮助NPC做出行动决策①项目有后端服务器backend_server和前端服务器frontend_server②storage会保存程序运行的记录信息。
2024-03-15 19:15:57
5102
10
原创 大模型学习笔记六:Semantic Kernel
定义介绍1、Semantic Kernel 是微软研发的一个开源的,面向大模型的开发框架(SDK);2、它支持你用不同开发语言(C#/Python/Java)基于 OpenAI API/Azure OpenAI API/Huggingface 开发大模型应用;3、它封装了一系列开箱即用的工具,包括:提示词模板、链式调用、规划能力等。SDK(补充说明)SDK:Software Development Kit,它是一组软件工具和资源的集合,旨在帮助开发者创建、测试、部署和维护应用程序或软件。
2024-03-12 19:59:26
2498
原创 大模型学习笔记五:RAG
1、LLM 的知识不是实时的2、LLM 可能不知道你私有的领域/业务知识搭建过程:1、文档加载,并按一定条件切割成片段2、将切割的文本片段灌入检索引擎3、封装检索接口4、构建调用流程:Query -> 检索 -> Prompt -> LLM -> 回复1、文档加载2、文档切分3、向量化4、灌入向量数据库。
2024-03-04 18:27:17
1930
原创 大模型学习笔记四:LangChain开发框架解析
1、模型I/O封装LLMs:大语言模型Chat Models:一般基于LLMs,但按对话结构重新封装PromptTemple:提示词模板OutputParser:解析输出2、数据连接封装Document Loaders:各种格式文件的加载器Document transformers:对文档的常用操作,如:split,filter,translate,extract metadata,etcTextr Embedding Models:文本向量化表示,用于检索等操作。
2024-02-23 03:15:31
3075
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人