LLM的诞生
LLM的诞生主要记录一下LLM从一个 Transformer 架构到 GPT 这种语言模型的训练过程。 标准流程 Pretraining(预训练) Supervised Fine-tuning(监督微调) Reward Modeling(奖励建模) Reinforcement Learning with Human Feedback(RLHF 人类反馈的强化学习) pretraining阶段,模型会被训练在一个大规模的文本数据集上,学习语言的基本结构和语义,“学会说话”。SFT阶段,模型会被微调在一些特定的任务上,比如问答、翻译等,让模型能够更好地完成这些任务,“按指令说话”。RM打分,RLHF让模型对齐人类的价值观和偏好,让模型能够更好地满足用户的需求,“说人话”。 强化学习阶段PPOProximal Policy Optimization是工业界最早,最稳定,但是最重的RL算法。流程: Actor生成回答 RM打分 Critic评估,算优势函数 PPO用Clip限制更新幅度,保证稳定性。 迭代更新,直到收敛。 优:稳定,效果好,理论成熟缺:四套模型,训练资源消耗大,训练...
Transformer基础知识
Transformer基础知识Transformer 是构成现有大模型的基础架构,理解它对于理解大模型的工作原理有着重要的意义。Transformer 是完全基于自注意力机制的序列建模模型。其核心特点是: 抛弃了RNN,LSTM的串行结构 完全并行计算,训练更快 通过自注意力机制捕捉长距离依赖关系 结构简析论文中的Transformer模型由编码器和解码器两部分组成,每部分由多个相同的层堆叠而成。 图片源自:知乎文章 123输入序列 → Embedding + 位置编码 → Encoder 堆叠 N 层↓Encoder 输出 → Decoder 堆叠 N 层 → 线性层 + Softmax → 输出序列 编码器每个编码器层包含: 多头自注意力(Multi-Head Self-Attention) 残差连接 + LayerNorm 前馈网络(Feed Forward Network, FFN) 残差连接 + LayerNorm 12LayerNorm(x + SelfAttention(x))→ LayerNorm(x + FFN(x)) 解码器Decoder比Enco...
Harness-Engineering
Harness-EngineeringHarness-Engineering 是AI时代中出现的一种新型软件开发流程。 Humans steer. Agents execute. 关键发展2025.11.26,Anthropic在其官方博客上发布了名为“Effective harnesses for long-running agents”的文章,探讨了有效使用AGENT的关键因素。这是比较早开始探讨Harness的文章之一。但是这一概念真正受到广泛关注是由openai公司的“零代码实验”引发的。2026.2.11,OpenAI在其官方博客上发布了名为“Harness engineering: leveraging Codex in an agent-first world”的文章。文中作者介绍了他们过去5个月的探索:构建并发布一个内部测试版的软件产品,代码全由AI完成。由此,这一概念引起了广泛关注,认为可能是AI时代的软件开发新范式。许多知名博主也纷纷发表了相关评论和分析文章。2026.2.17,知名博主发表了名为“Harness Engineering”的文章,进一步分析...
神经网络构建基础
虽然现在有了AI生成工具,但是我们是研究者,还是需要了解一个基本的神经网络是如何构建的。接下来以pytorch框架的一个简单网络为例,来说明神经网络的构建过程。 整体结构预览一般来说,一个神经网络的代码结构大致如下所示(以”从零到可训练”为主线,把数据、模型、训练、评估、配置拆开): 1234567891011121314151617181920212223project/ README.md requirements.txt configs/ mnist_mlp.yaml data/ (数据会下载到这里,或放置本地数据) src/ __init__.py datasets.py # 数据集与DataLoader model.py # 网络结构 train.py # 训练循环 eval.py # 验证/测试 utils.py # 通用工具:seed、日志、指标、保存/加载 scripts/ run_train.sh ...
NVIDIA 边缘推理设备
实验室里有几台 NVIDIA JETSON ORIN以及最新购入的 NVIDIA THOR设备,本文记录一下这些推理设备的基本信息和使用方法。 1. Jetson 平台简介Jetson 是 NVIDIA 推出的边缘计算平台。其本质是 SoC(System on Chip,片上系统),集成了 CPU、GPU、内存等多个组件,专为边缘计算和人工智能推理设计。其设计理念是将需要在服务器/显卡上运行的 AI 推理,放到低功耗、实时、嵌入式的场景中。 1.1 特点其CPU、GPU、NPU、内存都集成在一个同一芯片上;内存是统一内存,CPU/GPU/NPU全部共享同一块内存;系统采用ARM架构(aarch64),与传统 x86 架构不同。 1.2 软件生态的不同Jetson 完全不同于传统的 PC 计算平台,并非“装UBUNTU,装驱动,装CUDA”这种流程。而是使用 JetPack SDK 来进行系统和软件的安装和配置。一切内容直接跟刷机的 JetPack 版本绑定。 JetPack = Linux 系统 + GPU 驱动 + CUDA + cuDN...
ROS多车协同
本文介绍的系统是ROS1架构下的多无人车协同。和ROS2相比,会有大量的不同。 我们要实现的任务很简单,多辆无人车同时运行时变直线运动。 系统架构采取单主控节点的分布式架构,指定其中一台小车作为“主”(Master),运行核心的roscore程序。其他所有小车(“从”)都连接到这个主节点,从而形成一个统一的ROS网络。这样,网络中的任何一个节点都可以与其他节点进行通信。 实现步骤1. 网络配置首先,确保所有小车都连接到同一个局域网(LAN),小车之间能够互相ping通。 12ifconfig # 查看当前IP地址ping <other_car_ip> # 测试与其他小车的连通性 2. 设置主从机主控机上打开 ~/.bashrc 文件,在文件末尾添加以下两行: 12export ROS_MASTER_URI=http://<master_ip>:11311export ROS_IP=X.X.X.X 将 <master_ip> 替换为主控机的实际IP地址,X.X.X.X 替换为当前小车的IP地址。保存并关闭文件,然后运行: 1source...
深度学习环境安装
本文主要记录一下深度学习环境的安装过程。包括CUDA、cuDNN、PyTorch等内容。 0. 前置准备检查显卡型号,确认支持CUDA。可以使用以下命令查看显卡型号: 1nvida-smi 该指令会显示显卡驱动支持的最大CUDA版本。 0.1 深度学习环境架构深度学习环境的架构大致如下所示: 123456789PyTorch ↑cuDNN / cuBLAS / NCCL (CUDA加速库) ↑CUDA Runtime / Driver API ↑NVIDIA Driver ↑GPU 硬件 1. CUDACUDA 是 NVIDIA 提供的 GPU 并行计算平台。它包括: 1234- CUDA Driver(随 NVIDIA 驱动)- CUDA Runtime(libcudart)- CUDA 编译器(nvcc)- 基础数学库(cuBLAS、cuFFT 等) 在使用过程中,PyTorch的调用过程是这样的: 12345PyTorch 调用 CUDA RuntimeCUDA Runtime 调用 GPU DriverDriver 把任务发给 GPU 执行 2. cuDN...
onnx
本文主要记录onnx的相关知识 onnx介绍开放神经网络交换 ONNX(Open Neural Network Exchange)是一套表示深度神经网络模型的开放格式,由微软和 Facebook 于 2017 推出。 通俗的说,onnx就是不同模型的中间桥梁。pytorch、tensorflow、mxnet等模型都可以转换为onnx模型,然后onnx模型可以转换为其他模型,例如TensorRT等。 从部署流程上认识onnx下面是一个常规的神经网络部署流程: 前期准备根据任务问题,我们选择解决的方案,分类、检测、分割等。然后选择合适的模型,例如yolov3、faster rcnn。 模型训练使用pytorch、tensorflow等框架训练模型,训练完成后,保存模型。例如训练YOLO模型,我们得到的结果是一个.pt文件 转换模型将训练好的模型转换为onnx模型,方便后续部署。onnx可以理解为封装成了一个包,输入输出都是tensor。 具体部署将onnx模型部署到具体的硬件上,例如NVIDIA的tensorrt、高通的SNPE等。 onnx具体部署下面我们以pytorch...
mmlab学习笔记
本文大致介绍mmlab的基本框架。 基本知识 config 文件(1)命名规则 1{algorithm name}_{model component names [component1]_[component2]_[...]}_{training settings}_{training dataset information}_{testing dataset information}.py algorithm name: 算法名称。例如:faster_rcnn model component names: 模型组件名称,包括backbone和neck等。例如 r50-caffe_fpn_gn-head 表示在算法中使用 caffe 版本的 ResNet50、FPN 和 使用了 Group Norm 的检测头。 training settings: 训练设置, batch 大小、数据增强、损失、参数调度方式和训练最大轮次/迭代。例如4xb4-mixup-giou...
一些学习思路
写在前面,该文目的性很强,主要针对毕业任务,而非钻研科研,不过融汇百家思想的精华总是好多。非常感谢B站上的资料,让自己收益匪浅。之前总觉得一片茫然,听了之后还算是有了一定的目标和方向。科研思路 我要做什么?这个问题一直困扰着我很久,总觉得这种方法会被淘汰,那种方法又有缺陷。自己的工作就缓慢推动。那么不妨从另一个角度思考。首先,我们是要做AI相关,甚至可以说就是MOT方面的。人工智能方法最最重要的东西就是数据,因此问题来了,你有什么数据?回答:没有自己的数据,只能用公开数据集。目前来说就是KITTI用的比较多了,Nusences还需要进一步学习,Waymo更是遥不可及。 公开数据集要做公开数据集,有利有弊。难度大,出文章难,但是一旦出文章大概率是好文章。 自己的数据集如果组内已经有数据集了,那么毕业论文就问题不大了。 搜集数据集,自己标注如果此时没有明确的研究方向,而且只想水毕业。可以这样做,找越偏越好的方向(检测,分割最水),圆一个好一点的理由。但是对于这一方向,我还有自己的一些看法。自己其实可以录一个数据集,而且有一定的价值:基于BEV的无人机追踪数据集。总结:当下自己要做...
