机器学习
(注:博客属个人复习笔记,不会介绍基础概念,仅记录个人遗忘的部分知识点) RUNOBB教程 BLOG教程 机器学习 概述 “机器学习是对能通过经验自动改进的计算机算法的研究” “机器学习是用数据或以往的经验,以此优化计算机程序的性能标准” 机器学习和深度学习的最大区别在神经网络,深度学习使用神经网络去提取事物的深层或者说是隐性的一些特征 常见的模型指标 正确率 —— 提取出的正确信息条数 / 提取出的信息条数 召回率 —— 提取出的正确信息条数 / 样本中的信息条数 F 值 —— 正确率 * 召回率 * 2 / (正确率 + 召回率)(F值即为正确率和召回率的调和平均值) 特征工程 (Feature Engineering)特征工程是机器学习项目中最关键的环节,直接影响模型性能。好的特征工程可以显著提升模型效果。 特征工程概述 定义:从原始数据中提取、转换、选择对模型有用的特征 重要性:数据和特征决定了机器学习的上限,模型和算法只是逼近这个上限 目标:提高模型性能、降低计算复杂度、增强模型可解释性 特征选择 (Feature...
Python并发编程
简介 引入并发,就是为了提升程序运行速度 单线程串行:不加改造的程序 多线程并发:threading 多线程:thhreadding,利用CPU和IO可以同时执行的原理,让CPU不会干巴巴地等待IO完成 多cpu并行:multiprocessing 多进程:multiprocessing,利用CPU的多核原理,让CPU可以同时运行多个进程 多机器并行:hadoop/hive/spark IO:读取内存、磁盘、网络 异步IO:asyncio,在单线程利用CPU和IO同时执行的原理,实现函数异步执行 使用Lock对资源加锁,防止冲突访问 使用Queue实现不同线程/进程之间的数据通信,实现生产者-消费者模式 使用线程池Pool/进程池Pool,实现线程/进程的任务提交、等待结束、获取结果 使用subprocess启动外部程序的进程,并进行输入输出的交互 怎样选择多线程、多进程和多协程 Thread Process...
大模型学习之DeepSeek
个人学习笔记,如有错误欢迎指正 参考链接🔗: B站视频 DeepSeek LLM: Scaling Open-Source Language Models with Longtermism DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning 引言因为要看DeepSeek的优化的部分,绕不开的就是MoE 再然后就是COT MoE 混合专家模型混合专家模型详解 MoE发展历史Jacobs et al 1991 每个专家都是独立的FFN,Gating是FFN,由Gating来决定输出那一个专家的结果 2017...
FastApi
写的不全!参考视频 @fastapi框架FastApi: 一个用于构建API的现代、快速(高性能)的web框架 Starlette:一个用于构建ASGI(异步服务器网关接口)的web框架Pydantic:一个用于数据验证和序列化的库 1 预备知识点1.1 http协议1.1.1 简介HTTP协议是Hyper Text Transfer Protocol的缩写,它是一个用于在Internet上传输超文本的协议。HTTP是一个属于应用层的面向对象的协议。由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断的完善和拓展。HTTP工作与客户段-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据收到的请求后,向客户端发送响应信息。 1.1.2...
大模型学习之资源占用
待测试更新 大模型学习之资源占用资源:在本文中主要指的是cpu内存和gpu显存。 首先要分两种场景模型推理和模型训练进行讨论,针对不同的场景显存所需要加载的内容也不一样 0.预备知识模型参数1B 代表10亿个参数;1byte(字节)=8bit(位) 参数精度 fp32 fp16/bp16 int8/fp8 Int4 所占内存 4byte 2byte 1byte 0.5byte eg:fp32 1B:4byte * 10亿 / 1024^3(kb mb gb) 约等于 3.725GB 量化量化一般指的降低参数所占的内存空间,比如一个参数本来占4字节32位,现在为了节省空间,需要将其量化到int8也就是只允许参数占8位,量化的过程并不是简单的抹除小数位! 在神经网络模型导出的时候我们才会去做量化,以提高模型的推理速度以及模型所占显存大小,但量化同时会导致模型精度的下降。 量化方法的分类: QAT(Quant-Aware Training)也可以称为在线量化(On...
LlamaFactory参数详解
LlamaFactory参数详解Link LlamaFactory是一个简单易上手的大模型训练工具 微调的概念微调是指在一个已经预训练的模型基础上进行进一步的训练。预训练模型通常是在大规模数据集(如imageNet或大型文本语料库)上训练的,因此已经捕获了丰富的特征和知识。微调的目标是利用预训练模型的知识,在较小的数据集砂锅进行特定任务的优化。 主要特点1.预训练模型:基于已经训练好的模型进行 2.较少数据:通常只需要较小的数据集 3.较短时间:训练时间相对较短,因为模型已经有了良好的初始化 4.目标:适应特定任务或领域,优化模型性能 1.微调方法LORALoRA(低秩微调,Low-Rank Adaption)是一种通过低秩近似方法来减少模型参数数量和计算量的技术。它的主要目标是通过将原始的高纬参数矩阵分解成两个低秩矩阵的乘积(W ≈ A · B),从而实现模型的参数压缩和计算加速。 其中: W 是原始的高维参数矩阵。 A 和 B 是低秩矩阵,其秩(rank)远小于 W 的维度。 A的维度为 m x r 。 B的维度为 r x n 。 通过这种分解,我们可以将参数数量从 m...
大模型学习之大模型文件结构
下载途径不一样是否文件构成也不一样? 以下内容以Xinference加载的Qwen2_5-InstructionAWQ-14B模型为例。 config.json configuration.json generation_config.json LIENSE merges.txt model.safetensors.index.json .safeatensors README.md tokenizer.json tokenizer_config.json vocab.json 1. config.json 配置文件 描述模型的架构、超参数和训练时的设置。包括模型的层数、隐藏单元数、激活函数等信息。 {“architectures”: [ “Qwen2ForCausalLM”],“attention_dropout”: 0.0,“bos_token_id”: 151643,“eos_token_id”: 151645,“hidden_act”: “silu”,“hidden_size”: 5120,“initializer_range”:...
OpenAI
OpenAILink OpenAI最核心的功能,就是它所提供的文本生成模型。模型经过训练可以理解自然语言、代码和图像。模型可以接受任意类型的输入,最终输出文本。 使用模型,你可以构建任意你所需要的AI应用程序,比如: 1.编写文案 2.编写编程代码 3.回答知识库问题 4.分析文本 5.日常助手 6.语言翻译 01第一个聊天程序ChatCompletion的输入是一个message list,返回是一个chatCompletion对象,示例代码如下: 123456789101112131415161718192021222324#openai默认的声明方式,注册openai后在对应的控制台获取api_keyfrom openai import OpenAIclient = OpenAI(api_key="sk-")# 通常我会把自己的API-KEY放在.env文件里,然后gitignore掉。# .env文件可以通过 dotenv库来读取,然后放进系统变量里,这样OpenAI就可以直接识别from dotenv import load_dotenv,...
基于gradio的chatbot
基于gradio的chatbot基于gradio对chatbot做一个网页可视化,可以通过网页端,更换模型,以及调整模型的一些参数。 Gradio 是一个开源 Python 软件包,可让快速为机器学习模型、API 或任意 Python 函数构建演示或 Web 应用程序。然后,您可以使用 Gradio 的内置共享功能在几秒钟内通过公共链接分享您的演示。 gradio快速入门ps(一手资料永远是最香的) 常用功能记录1234567891011121314151617# 页面创建import gradio as gr def greet(name, intensity): return "Hello, " + name + "!" * int(intensity)demo = gr.Interface( fn=greet, inputs=["text", "slider"], outputs=["text"],)# fn:包装用户界面 (UI) 的函数#...
deepspeed
deepspeedpowered by:Zero Redundancy Optimizer (ZeRO) 零冗余优化器 一个用于训练和将超大模型拟合到 GPU 上的优化库。它分为多个 ZeRO 阶段,每个阶段通过对优化器状态、梯度、参数进行分区以及启用到 CPU 或 NVMe 的卸载来逐步节省更多 GPU 内存。 可用于多卡训练以及多卡推理 为什么单卡的情况,也可以使用deepspeed? 使用ZeRO-offload,将部分数据offload到CPU,降低对显存的需求 提供了对显存的管理,减少显存中的碎片 1.配置使用案例 设备信息:autoDL租用的两张4090显卡 选用基础镜像 pytorch,安装相关依赖 ! pip install torch transformers accelerate bitsandbytes peft datasets trl ! pip install deepspeed 使用accelerate创建deepspeed配置文件 accelerate config --config_file deepspeed_config.yaml...