大模型学习之大模型文件结构
下载途径不一样是否文件构成也不一样? 以下内容以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...
Stable diffusion
Stable diffusion服务器安装https://help.aliyun.com/zh/pai/use-cases/quick-start-stable-diffusion-webui?spm=a2c4g.11186623.0.0.64116ab4AEYoLb 1. 本地webui的安装 设备:macbook air m2 系统:ios15 安装homebrew 终端输入/bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)" 验证是否安装成功brew -v得到输出Homebrew 4.4.0最新版本才支持ios15 安装python3、 brew install cmake protobuf rust python@3.10 git wget 更改阿里云下载镜像源 pip config set global.index -url...
大模型学习之多模态
参考 多模态简述1. 多模态学习的概念 模态(Modality):食物表达或感知的方式 多模态(multimodal):研究异构(heterogeneous)和相互链接数据(interconnected data)的科学 多模态的行为和信号: 2.多模态学习六大挑战及经典工作 挑战一:Representation Learning 表式学习 学习不同模态之间交叉交互,包括融合,协调和分裂等子挑战。 挑战二:Aligment 对齐 连接,对齐表示,分割,将不同模态之间的信息进行关联对齐 挑战三:Reasoning 推理 结构 中间概念,外部范式,知识建模,不仅要求理解单个模态的信息,还要要求理解不同模态之间的信息如何进行交互,影响最终推理决策 挑战四:Generation 生成 摘要,翻译和生成,创造性的理解和生成信息一致的信息 挑战五:Transference 迁移 在模态之间转换知识,通过用一个模态的知识来提高另一个模态的能力 挑战六:Quantification 量化 更好的理解异构性,交叉模态交互,以及多模态学习的过程
Docker的学习与使用
Docker的学习与使用参考资料 1. 基本概念1.1 镜像(Image)Docker 镜像 是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像 不包含 任何动态数据,其内容在构建之后也不会被改变。 分层存储 镜像构建时,会一层层构建,前一层是后一层的基础。每一层构建完就不会再发生改变,后一层上的任何改变只发生在自己这一层。比如,删除前一层文件的操作,实际不是真的删除前一层的文件,而是仅在当前层标记为该文件已删除。在最终容器运行的时候,虽然不会看到这个文件,但是实际上该文件会一直跟随镜像。因此,在构建镜像的时候,需要额外小心,每一层尽量只包含该层需要添加的东西,任何额外的东西应该在该层构建结束前清理掉。 1.2 容器(Container)镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。 1.3...
Notion记账本
Notion记账本参考:https://www.youtube.com/watch?v=TO7HfjW3A-M 别人写的参考笔记比我写的详细且简洁,优先推荐看它的,但现在有个痛点就是只能语音输入,有空了想把它搞成那种自动识别屏幕上的支付金额那种。 利用Notion+iPhone快捷指令,设置好一个免费的记账APP 关于NotionNotion是一个支持高度个性化的笔记APP,大家也可以在网上找到很多好看的模版,下面是我自己现在的”图书馆”的界面。 优点是三端互通,你可以在任何设备上去下载使用它,当然也可以通过网页(Notin 打钱!) 这里不过多去进行赘述,笔记的主题也不在Notion,感兴趣的小伙伴可以自己去了解下。 效果展示 1. Notion-建立数据表这个数据表也可以直接去copy博主的->https://topbook.notion.site/Notion-072b44a33c684fcea96e882a91abe11c 上图的箭头哪里就是复制按钮 添加 支出项目 支出类别 支出金额 支出时间...
大模型学习之微调
为什么需要PEFT微调简单来讲就是全参微调代价太大 PEFT几种方式adapter原理: 针对每个Transfomer层,增加两个Adapter结构(分别是注意力层和前馈层之后,但在norm之前)。训练时,固定原来预训练模型参数不变,只对新增的Adapter结构和Layer Norm层进行微调 缺点: 增加了模型层数,推理延迟 prefix tuning原理: 在输入token之前构造一段virtual tokens作为prefix,训练时只更新prefix部分参数,其他参数不变 在每一层前端都加入virtual tokens 为防止直接更新prefix参数导致训练不稳定和性能下降,在prefix层前面加了MLP结构,训练完成后,只保留Prefix都参数 缺点: 额外token占用,降低有效序列长度 prompt tuning原理: 给每个任务定义各自的prompt,拼接到数据上作为输入,但旨在输入层加入prompt tokens,且不加入MLP(显式加入token) p-tuning动机: prompt...
数据库
如何选择合适的数据库?1结构化数据/非结构数据1.1 结构化数据(structured data)有固定格式或模式的数据,通常可以用表格的形式来表示,每一列对应一个字段,每一行代表一条记录。特点:固定格式|易于处理|标准化 应用场景: 关系数据库:MySQL,PostgreSQL Excel,CSV,json/xml 1.2 非结构化数据(unstructured...