当前位置: 首页 > news >正文

从零安装 LLaMA-Factory 微调 Qwen 大模型成功及所有的坑

文章目录

  • 从零安装 LLaMA-Factory 微调 Qwen 大模型成功及所有的坑
    • 一 参考
    • 二 安装
    • 三 启动
      • 准备大模型文件
    • 四 数据集(关键)!
      • 4.1 Alapaca格式
      • 4.2 sharegpt
      • 4.3 在 dataset_info.json 中注册
      • 4.4 官方 alpaca_zh_demo 例子 999条数据, 本机微调 5分钟
      • 4.5 我的数据(关键)
        • 4.6 微调成功但是新模块问答都失败(巨坑)
        • 小数据微调参数!!!
        • 巨坑 数据集的内容,要差异够大!!!
        • TODO 扩展阅读,
    • 五 TODO LLaMaFactory 参数详解

从零安装 LLaMA-Factory 微调 Qwen 大模型成功及所有的坑

2025-1-22

老规矩,感谢所有参考文章的作者。少走很多弯路。

一 参考

【1】llama-factory使用教程

这里有各种依赖的版本。 似乎不用。直接安装,一键成功。

【2】学大模型必看!手把手带你从零微调大模型

微调 零一 大模型。

【3】【Qwen2微调实战】LLaMA-Factory框架对Qwen2-7B模型的微调实践

流程主参考文章

【4】LLaMA-Factory QuickStart
【5】官网 gitcode 镜像

【6】LLaMa-Factory部署及llamafactory-cli webui命令无法打开ui界面问题解决记录

私链转公链

二 安装

  • 前置条件

N卡 在 WSL2 Ubuntu22.04 环境下装 cuda toolkit 见这篇文章
WSL2 Ubuntu22.04 部署配置Xinference和所有的坑

  • 安装

git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
> 参数‘--depth 1’, 只clone 最近一次 commit后的所有仓库。就是不需要之前的 commit 历史记录。或者下载代码zip 包,解压到本地。
unzip archive.zip -d /path/to/destinationconda create -n llama_factory python=3.10
conda activate llama_factory
cd LLaMA-Factory
pip install -e '.[torch,metrics]'Attempting uninstall: datasets
Found existing installation: datasets 3.2.0
Uninstalling datasets-3.2.0:
Successfully uninstalled datasets-3.2.0
Successfully installed accelerate-1.0.1 contourpy-1.3.1 cycler-0.12.1 datasets-3.1.0 docstring-parser-0.16 fire-0.7.0 fonttools-4.55.3 jieba-0.42.1 joblib-1.4.2 kiwisolver-1.4.8 llamafactory-0.9.2.dev0 matplotlib-3.10.0 nltk-3.9.1 peft-0.12.0 pyparsing-3.2.1 rouge-chinese-1.0.3 shtab-1.7.1 tokenizers-0.20.3 transformers-4.46.1 trl-0.9.6 tyro-0.8.14

一次成功。

  • 验证
import torch
torch.cuda.current_device()
torch.cuda.get_device_name(0)
torch.__version__>>> torch.cuda.get_device_name(0)
'NVIDIA GeForce RTX 4070 SUPER'
>>> torch.__version__
'2.5.1+cu124'
llamafactory-cli train -h(mypy310) rainbow@zy-pc-01:~/LLaMA-Factory-main$ llamafactory-cli train -h
usage: llamafactory-cli [-h] [--ray_run_name RAY_RUN_NAME] [--ray_num_workers RAY_NUM_WORKERS][--resources_per_worker RESOURCES_PER_WORKER][--placement_strategy {SPREAD,PACK,STRICT_SPREAD,STRICT_PACK}]options:-h, --help            show this help message and exit

三 启动

cd /home/***/LLaMA-Factory-main
llamafactory-cli webui

注意:在刚才安装的conda环境下启动

切换到 LLaMA-Factory-main 目录,因为需要识别数据集文件夹

准备大模型文件

下载略
因为我通过 Xinference 已经下载了, 只需要提供路径即可。

Qwen1.5-1.8B
/home/xinference/modelscope/hub/qwen/Qwen1___5-1___8B-Chat/

大模型路径, 设置ok。 就可以 chat。

  • 坑 wsl 下 Ubuntu 浏览器中文乱码
sudo apt-get remove firefox
sudo apt-get remove --purge firefox

卸载 Ubuntu的浏览器, 用 windows 的浏览器就ok。

LLama Factory 运行界面报错问题解决方法-DJT
export GRADIO_ROOT_PATH=xxx

这是解决云端部署中文乱码的。

  • 坑 Failed to create DBus proxy for org.a11y.Bus: Could not connect: No such file or directory

没解决, 是个warning, 貌似没有任何影响。后续微调成功,chat也成功。

四 数据集(关键)!

官网文档

llama_factory/data
这里默认是llama-factory中的data文件夹中的数据,在使用自己的数据集的时候,可以把数据集文件直接放到data文件夹下。
注意,无论是否放到data文件夹下,记得在dataset_info.json 中添加你要用的数据集信息,包括名称和路径,否则在页面中是加载不出来的。

必须! 如果有自定义数据, 必须在dataset_info.json中注册。

【04】LLaMA-Factory微调大模型——数据准备

一、数据格式
LLaMA-Factory支持 alpaca 格式和 sharegpt 格式的数据集。

4.1 Alapaca格式

[{"instruction": "人类指令(必填)","input": "人类输入(选填)","output": "模型回答(必填)","system": "系统提示词(选填)","history": [["第一轮指令(选填)", "第一轮回答(选填)"],["第二轮指令(选填)", "第二轮回答(选填)"]]}
]

官方自带例子
alpaca_zh_demo.json

[{"instruction": "识别并解释给定列表中的两个科学理论:细胞理论和日心说。","input": "","output": "细胞理论是生物科学的一个理论,它认为所有生命体都是由微小的基本单元——细胞所构成。这是生物学的一个基础理论,认为细胞是所有生物的基本结构和功能单位,所有的生物都是由一个或多个细胞组成,细胞只能通过细胞分裂产生新的细胞。这一理论由薛定谔、施瓦内和雪莱于1839年首次提出。\n\n日心说是指太阳是太阳系的中心,也就是说,行星围绕太阳旋转的理论。这个理论打破了传统的地心说观点,认为地球并不是宇宙的中心。日心说的提出者是尼古拉·哥白尼,他在16世纪初发表了他的著作《天体运行论》,阐述了太阳系行星围绕太阳运行的模型,为天文学的发展做出了巨大贡献。"},{"instruction": "输入三支篮球队的名称并生成一个适当的口号。","input": "输入:俄克拉荷马城雷霆队,芝加哥公牛队,布鲁克林网队。","output": "输出: \"雷霆,公牛和网队:各显神通,角逐群雄!\""}
]
  • instruction 和 input
    在指令监督微调时,instruction 列对应的内容会与 input 列对应的内容拼接后作为人类指令,
    即人类指令为 instruction\n input。
    而 output 列对应的内容为模型回答。

所以, 上面篮球队的例子中。 AI拿到的输入如下
“输入三支篮球队的名称并生成一个适当的口号。输入:俄克拉荷马城雷霆队,芝加哥公牛队,布鲁克林网队。”

  • system
    如果指定,system 对应的内容将被作为系统提示词。

  • history
    history 是由多个字符串二元组构成的列表,分别代表历史消息中每轮对话的指令和回答。

注意在指令监督微调时,历史消息中的回答内容也会被用于模型学习。

4.2 sharegpt

相比 alpaca 格式的数据集,sharegpt 格式支持更多的角色种类,
例如 human、gpt、observation、function 等等。它们构成一个对象列表呈现在 conversations 列中。
其中 human 和 observation 必须出现在奇数位置,gpt 和 function 必须出现在偶数位置。

sharegpt 格式如下:

[{"conversations": [{"from": "human","value": "人类指令"},{"from": "function_call","value": "工具参数"},{"from": "observation","value": "工具结果"},{"from": "gpt","value": "模型回答"}],"system": "系统提示词(选填)","tools": "工具描述(选填)"}
]

4.3 在 dataset_info.json 中注册

LLaMA-Factory/data 目录中的 dataset_info.json 文件中包含了所有可用的数据集。
如果使用自定义数据集,首先需要在 dataset_info.json 文件中添加数据集描述,

"数据集名称": {"hf_hub_url": "Hugging Face 的数据集仓库地址(若指定,则忽略 script_url 和 file_name)","ms_hub_url": "ModelScope 的数据集仓库地址(若指定,则忽略 script_url 和 file_name)","script_url": "包含数据加载脚本的本地文件夹名称(若指定,则忽略 file_name)","file_name": "该目录下数据集文件夹或文件的名称(若上述参数未指定,则此项必需)","formatting": "数据集格式(可选,默认:alpaca,可以为 alpaca 或 sharegpt)","ranking": "是否为偏好数据集(可选,默认:False)","subset": "数据集子集的名称(可选,默认:None)","split": "所使用的数据集切分(可选,默认:train)","folder": "Hugging Face 仓库的文件夹名称(可选,默认:None)","num_samples": "该数据集所使用的样本数量。(可选,默认:None)","columns(可选)": {"prompt": "数据集代表提示词的表头名称(默认:instruction)","query": "数据集代表请求的表头名称(默认:input)","response": "数据集代表回答的表头名称(默认:output)","history": "数据集代表历史对话的表头名称(默认:None)","messages": "数据集代表消息列表的表头名称(默认:conversations)","system": "数据集代表系统提示的表头名称(默认:None)","tools": "数据集代表工具描述的表头名称(默认:None)","images": "数据集代表图像输入的表头名称(默认:None)","chosen": "数据集代表更优回答的表头名称(默认:None)","rejected": "数据集代表更差回答的表头名称(默认:None)","kto_tag": "数据集代表 KTO 标签的表头名称(默认:None)"},"tags(可选,用于 sharegpt 格式)": {"role_tag": "消息中代表发送者身份的键名(默认:from)","content_tag": "消息中代表文本内容的键名(默认:value)","user_tag": "消息中代表用户的 role_tag(默认:human)","assistant_tag": "消息中代表助手的 role_tag(默认:gpt)","observation_tag": "消息中代表工具返回结果的 role_tag(默认:observation)","function_tag": "消息中代表工具调用的 role_tag(默认:function_call)","system_tag": "消息中代表系统提示的 role_tag(默认:system,会覆盖 system column)"}
}

对于alpaca 格式的数据,dataset_info.json 中的数据集注册描述应为:


"<your dataset name>": {"file_name": "<your dataset file.json>","columns": {"prompt": "instruction","query": "input","response": "output","system": "system","history": "history"}
}

如上面例子中 alpaca_zh_demo 在dataset_info.json中的注册信息如下。

{"identity": {"file_name": "identity.json"},"alpaca_en_demo": {"file_name": "alpaca_en_demo.json"},"alpaca_zh_demo": {"file_name": "alpaca_zh_demo.json"},
}

数据集注册方便, 大多数参数用默认就好,
最简注册,只需要“数据集名字”和“数据集文件的名字”

4.4 官方 alpaca_zh_demo 例子 999条数据, 本机微调 5分钟

输入三支篮球队的名称并生成一个适当的口号。
俄克拉荷马城雷霆队,芝加哥公牛队,布鲁克林网队

微调之前
俄克拉荷马城雷霆队口号:“Thunderbolts Rule the City!”
芝加哥公牛队口号:“Bulls on the Rise #Bulls #Rise”
布鲁克林网队口号:“The Nets are Here to Stay #Nets #Stay”

微调之后 5分钟 4070

“雷霆猛兽,公牛铁血,网球队员,勇往直前。”

4.5 我的数据(关键)

学校成绩


你是python程序员。编写一段完整的python 程序。要求
- 按照下面个格式生成 n个同学的数据, 并保存为 alpaca_zh_my_demo.json
- 学号从1 到 n, 默认998
- 姓名按中国人姓名随机生成,分男女
- 性别,男女各一半
- 考试时间, 默认10月
- 数学,物理,化学的成绩从1到100
-
[{"instruction": "红星小学学号1成绩","input": "","output": "姓名:张三,	性别:男, 学号:1, 考试时间:10月,	数学:49,	物理:9,	化学:13"},{"instruction": "红星小学学号2成绩","input": "","output": "姓名:李四,	性别:女, 学号:1, 考试时间:10月,	数学:69,	物理:59,	化学:93"}
]
以下是一个完整的Python程序,用于生成指定格式的JSON数据并保存为文件。程序会随机生成998个学生的成绩数据,姓名随机生成,男女各占一半,考试时间为10月,成绩随机生成。
Python复制略

文件复制到 data 目录

cp /mnt/e/Tec/LLama-Factory/alpaca_zh_my_demo.json /home/LLaMA-Factory-main/data/
cat /home/LLaMA-Factory-main/data/alpaca_zh_my_demo.json

注册

/home/LLaMA-Factory-main/data/dataset_info.json
{"identity": {"file_name": "identity.json"},"alpaca_en_demo": {"file_name": "alpaca_en_demo.json"},"alpaca_zh_demo": {"file_name": "alpaca_zh_demo.json"},"alpaca_zh_my_demo": {"file_name": "alpaca_zh_my_demo.json","columns": {"prompt": "instruction","query": "input","response": "output"}},
4.6 微调成功但是新模块问答都失败(巨坑)

微调数据
{"instruction": "红星小学张三10月考试成绩是多少?","input": "","output": "姓名:张三, 性别:男, 学号:1, 考试时间:10月, 数学:66, 物理:66, 化学:66"
}

当提问 “红星小学张三10月考试成绩是多少?”
期望回答, “姓名:张三, 性别:男, 学号:1, 考试时间:10月, 数学:66, 物理:66, 化学:66”

刚开始怀疑是数据量的问题。
结果数据 9条,199条,999条数据,都微调失败。

小数据微调参数!!!

基于LLaMA-Factory微调llama3成为一个角色扮演大模型

如果训练的文件小,训练配置调大一点:
学习率: 2e-3(默认5e-5) 训练论数:10.0(默认3.0) 最大样本数:1000(默认1W)

特别感谢,这位作者提供的微调参数。
如果有知道原因的同学,能告诉我的话就更好了,我来更新。

只把张三的一条数据,添加到官方例子 “alpaca_zh_demo.json”, 让数据集中的每条数据各不相同。
设置如上参数。微调成功。

在这里插入图片描述

巨坑 数据集的内容,要差异够大!!!

{"instruction": "红星小学张三10月考试成绩是多少?","input": "","output": "姓名:张三, 性别:男, 学号:1, 考试时间:10月, 数学:66, 物理:66, 化学:66"},{"instruction": "红星小学冯超10月考试成绩是多少?","input": "","output": "姓名:冯超, 性别:男, 学号:2, 考试时间:10月, 数学:47, 物理:63, 化学:69"},{"instruction": "红星小学孙波10月考试成绩是多少?","input": "","output": "姓名:孙波, 性别:男, 学号:3, 考试时间:10月, 数学:98, 物理:96, 化学:98"}

如果是10条类似的成绩数据,提示词只有姓名不同,同样的参数,微调后,问答还是失败。

如果是10个学生成绩这种的数据,因为提示词只有姓名的不同, 微调不出来!!!

TODO 扩展阅读,

魔搭社区数据集
从Llama Factory数据集看模型微调和训练

微调数据集的准备
自我认知数据集
特定任务数据集
通用任务数据集

理解怎样设置数据集。如果是学生成绩这种,怎样配置数据集?

五 TODO LLaMaFactory 参数详解

从0学习LLaMaFactory参数解释说明

Finetuning method
Checkpoint path
Quantization bit/Enable quantization (QLoRA).
Quantization method
Chat template
RoPE scaling
Booster

Train tab
Stage
Data dir
Dataset
Learning rate (学习率, 关键参数!!!)
Epochs
Maximum gradient norm
Max samples
Compute type
Cutoff length
Batch size
Gradient accumulation
Val size
LR scheduler

Data dir
Dataset

相关文章:

从零安装 LLaMA-Factory 微调 Qwen 大模型成功及所有的坑

文章目录 从零安装 LLaMA-Factory 微调 Qwen 大模型成功及所有的坑一 参考二 安装三 启动准备大模型文件 四 数据集&#xff08;关键&#xff09;&#xff01;4.1 Alapaca格式4.2 sharegpt4.3 在 dataset_info.json 中注册4.4 官方 alpaca_zh_demo 例子 999条数据, 本机微调 5分…...

easyexcel-导入(读取)(read)-示例及核心部件

文章目录 导入(读取)(read)-示例及核心部件导入(读取)(read)-核心部件EasyExcel(EasyExcelFactory) # 入口read() # read()方法用于构建workbook(工作簿)对象&#xff0c;new ExcelReaderBuilder()doReadAll()这里选XlsxSaxAnalyser这个实现类吧然后到这个类XlsxRowHandler&…...

10 Hyperledger Fabric 介绍

简介 HypeLedger&#xff08;超级账本&#xff09;是由Linux基金会2015年创建的首个面向企业应用场景的开源分布式账本平台。 HypeLedger Fabric是HypeLedger种的区块链项目之一HypeLedger Fabric引入权限管理在架构设计上支持可插拔、可扩展是首个面向联盟链场景的开源项目 …...

第28章 测试驱动开发模式:深入绿条模式及相关技术

写在前面 这本书是我们老板推荐过的&#xff0c;我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后&#xff0c;我突然思考&#xff0c;对于测试开发工程师来说&#xff0c;什么才更有价值呢&#xff1f;如何让 AI 工具更好地辅助自己写代码&#xff0c;或许…...

PTMD2.0-疾病相关的翻译后修饰数据库

翻译后修饰&#xff08;PTMs&#xff0c;post-translational modifications&#xff09;通过调节蛋白质功能参与了几乎所有的生物学过程&#xff0c;而 PTMs 的异常状态常常与人类疾病相关。在此&#xff0c;PTMD 2.0展示与疾病相关的 PTMs 综合数据库&#xff0c;其中包含 93 …...

gradle生命周期钩子函数

文章目录 0. 总结表格1. 构建初始阶段gradle.settingsEvaluated()gradle.projectsLoaded() 2. 配置阶段gradle.beforeProject()gradle.afterProject()gradle.projectEvaluated()gradle.afterEvaluate()gradle.taskGraph.whenReady 3. 执行阶段gradle.taskGraph.beforeTaskgradl…...

操作系统(Linux Kernel 0.11Linux Kernel 0.12)解读整理——内核初始化(main init)之内存的划分

前言 MMU&#xff1a;内存管理单元(Memory Management Unit)完成的工作就是虚拟地址到物理地址的转换&#xff0c;可以让系统中的多个程序跑在自己独立的虚拟地址空间中&#xff0c;相互不会影响。程序可以对底层的物理内存一无所知&#xff0c;物理地址可以是不连续的&#x…...

WPF基础 | WPF 布局系统深度剖析:从 Grid 到 StackPanel

WPF基础 | WPF 布局系统深度剖析&#xff1a;从 Grid 到 StackPanel 一、前言二、Grid 布局&#xff1a;万能的布局王者2.1 Grid 布局基础&#xff1a;构建网格世界2.2 子元素定位与跨行列&#xff1a;布局的精细操控2.3 自适应布局&#xff1a;灵活应变的秘诀 三、StackPanel…...

C++红黑树详解

文章目录 红黑树概念规则为什么最长路径不超过最短路径的二倍&#xff1f;红黑树的时间复杂度红黑树的结构插入叔叔节点情况的讨论只变色(叔叔存在且为红)抽象的情况变色单旋&#xff08;叔叔不存在或叔叔存在且为黑&#xff09;变色双旋&#xff08;叔叔不存在或叔叔存在且为黑…...

【经验分享】ARM Linux-RT内核实时系统性能评估工具

【经验分享】ARM Linux-RT内核实时系统性能评估工具 前言下载和编译方法常用工具介绍总结 前言 最近在研究Linux-RT实时系统&#xff0c;介绍下常用的实时系统的性能评估工具。 下载和编译方法 用git下载 git clone git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.…...

【kong gateway】5分钟快速上手kong gateway

kong gateway的请求响应示意图 安装 下载对应的docker 镜像 可以直接使用docker pull命令拉取&#xff0c;也可以从以下地址下载&#xff1a;kong gateway 3.9.0.0 docker 镜像 https://download.csdn.net/download/zhangshenglu1/90307400&#xff0c; postgres-13.tar http…...

Vue入门(Vue基本语法、axios、组件、事件分发)

Vue入门 Vue概述 Vue (读音/vju/&#xff0c;类似于view)是一套用于构建用户界面的渐进式框架&#xff0c;发布于2014年2月。与其它大型框架不同的是&#xff0c;Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层&#xff0c;不仅易于上手&#xff0c;还便于与第三…...

【可实战】Linux 系统扫盲、 Shell扫盲(如何写一个简单的shell脚本)

一、Linux系统扫盲 1.Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议 2.Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包。 目前市面上较知名的发行版有&#xff1a;Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等…...

【深入理解SpringCloud微服务】Sentinel源码解析——DegradeSlot熔断规则

Sentinel源码解析——DegradeSlot熔断规则 断路器原理复习DegradeSlot熔断规则原理源码解析DegradeSlot#entry()DegradeSlot#exit(Context, ...)ResponseTimeCircuitBreakerExceptionCircuitBreaker 断路器原理复习 断路器一般有三个状态&#xff1a;关闭、打开、半开&#xf…...

电脑系统bcd文件损坏修复方法:小白也会的修复方法

电脑系统bcd文件损坏怎么办?当电脑开机时出现bcd文件损坏&#xff0c;一般情况是由于电脑系统的引导坏了&#xff0c;需要进行修复。现在越来越多的小伙伴遇到电脑引导丢失或者安装后无法正常引导的问题&#xff0c;我们现在一般是pe下进行修复引导&#xff0c;那么电脑系统bc…...

链式存储结构

不强制要求数据在内存中集中存储&#xff0c;各个元素可以分散存储在内存中。 结点 结点由数据域、指针域组成。 头结点、头指针和首元结点 头指针&#xff1a;一个和结点类型相同的指针&#xff0c;它的特点是&#xff1a;永远指向链表中的第一个结点。上文提到过&#xf…...

Oracle 创建用户和表空间

Oracle 创建用户和表空间 使用sys 账户登录 建立临时表空间 --建立临时表空间 CREATE TEMPORARY TABLESPACE TEMP_POS --创建名为TEMP_POS的临时表空间 TEMPFILE /oracle/oradata/POS/TEMP_POS.DBF -- 临时文件 SIZE 50M -- 其初始大小为50M AUTOEXTEND ON -- 支持…...

媒体新闻发稿要求有哪些?什么类型的稿件更好通过?

为了保证推送信息的内容质量&#xff0c;大型新闻媒体的审稿要求一向较为严格。尤其在商业推广的过程中&#xff0c;不少企业的宣传稿很难发布在这些大型新闻媒体平台上。 媒体新闻发稿要求有哪些&#xff1f;就让我们来了解下哪几类稿件更容易过审。 一、媒体新闻发稿要求有哪…...

Qt中QVariant的使用

1.使用QVariant实现不同类型数据的相加 方法&#xff1a;通过type函数返回数值的类型&#xff0c;然后通过setValue来构造一个QVariant类型的返回值。 函数&#xff1a; QVariant mainPage::dataPlus(QVariant a, QVariant b) {QVariant ret;if ((a.type() QVariant::Int) &a…...

3.4 Go函数作用域(标识符)

作用域标识符 简单来说&#xff0c;作用域指的是标识符可以起作用的范围&#xff0c;即其可见范围。将标识符的可见性限制在一定范围内&#xff0c;这个范围就是作用域。 把标识符约束在一定的可见范围内&#xff0c;这个范围就是作用域。 1. 宇宙块 特点&#xff1a;预定义…...

搭建Spring Boot开发环境

JDK&#xff08;1.8及以上版本&#xff09; Apache Maven 3.6.0 修改settings.xml 设置本地仓库位置 <localRepository>D:/repository</localRepository> 设置远程仓库镜像 <mirror><id>alimaven</id><name>aliyun maven</name&…...

洛谷 P5709:Apples Prologue / 苹果和虫子

【题目来源】 https://www.luogu.com.cn/problem/P5709 【题目描述】 小 B 喜欢吃苹果。她现在有 m&#xff08;1≤m≤100&#xff09;个苹果&#xff0c;吃完一个苹果需要花费 t&#xff08;0≤t≤100&#xff09;分钟&#xff0c;吃完一个后立刻开始吃下一个。现在时间过去了…...

PyTorch张量操作reshape view permute transpose

1. reshape() 和 view() view和reshape都用于改变张量的shape view是reshape的一个特例&#xff0c;view要求张量在内存中是连续的&#xff0c;否则会抛出错误&#xff0c;view只能用于contiguous的张量 reshape会自动处理contiguous的情况&#xff0c;如果张量是contiguous…...

JAVAweb学习日记(八) 请数据库模型MySQL

一、MySQL数据模型 二、SQL语言 三、DDL 详细见SQL学习日记内容 四、DQL-条件查询 五、DQL-分组查询 聚合函数&#xff1a; 分组查询&#xff1a; 六、DQL-分组查询 七、分页查询 八、多表设计-一对多&一对一&多对多 一对多-外键&#xff1a; 一对一&#xff1a; 多…...

【ElasticSearch】 Java API Client 7.17文档

​ 本文章内容根据 Elastic Search Java API Client 7.17 版本官方文档 内容翻译而来&#xff0c;用于方便后续学习翻阅 序言 这是适用于 Elasticsearch 的官方 Java API Client 文档。该客户端针对所有 Elasticsearch API 提供强类型的请求和响应。 功能 所有 Elasticsearc…...

Python “字典” 实战案例:5个项目开发实例

Python “字典” 实战案例&#xff1a;5个项目开发实例 内容摘要 本文包括 5 个使用 Python 字典的综合应用实例。具体是&#xff1a; 电影推荐系统配置文件解析器选票统计与排序电话黄页管理系统缓存系统&#xff08;LRU 缓存&#xff09; 以上每一个实例均有完整的程序代…...

Qt中Widget及其子类的相对位置移动

Qt中Widget及其子类的相对位置移动 最后更新日期&#xff1a;2025.01.25 下面让我们开始今天的主题… 一、开启篇 提出问题&#xff1a;请看上图&#xff0c;我们想要实现的效果是控件黄色的Widge&#xff08;m_infobarWidget&#xff09;t随着可视化窗口&#xff08;m_glWidge…...

4.flask-SQLAlchemy,表Model定义、增删查改操作

介绍 SQLAlchemy是对数据库的一个抽象 开发者不用直接与SQL语句打交道 Python对象来操作数据库 SQLAlchemy是一个关系型数据库 安装 flask中SQLAlchemy的配置 from flask import Flask from demo.user_oper import userdef create_app():app Flask(__name__)# 使用sessi…...

字节跳动自研HTTP开源框架Hertz简介附使用示例

字节跳动自研 HTTP 框架 Hertz Hertz 是字节跳动自研的高性能 HTTP 框架&#xff0c;专为高并发、低延迟的场景设计。它基于 Go 语言开发&#xff0c;结合了字节跳动在微服务架构中的实践经验&#xff0c;旨在提供更高效的 HTTP 服务开发体验。 1. 背景介绍 随着字节跳动业务…...

Effective C++ 规则51:编写 new 和 delete 时需固守常规

1、背景 在 C 中&#xff0c;如果你需要为类自定义 new 和 delete&#xff0c;必须遵循一些约定和规则&#xff0c;以确保内存管理的一致性、可维护性和安全性。当我们使用 new 和 delete 操作时&#xff0c;C 编译器会&#xff1a; 调用全局或类特定的 operator new 来分配内…...

[RoarCTF 2019]Easy Calc1

题目 查看页面源代码 <script>$(#calc).submit(function(){$.ajax({url:"calc.php?num"encodeURIComponent($("#content").val()),type:GET,success:function(data){$("#result").html(<div class"alert alert-success">…...

【Bug 记录】el-sub-menu 第一次进入默认不高亮

项目场景&#xff1a; 项目场景&#xff1a;el-sub-menu 第一次进入默认不高亮 问题描述 例如&#xff1a;sub-menu 的 index 后端默认传过来是 number&#xff0c;我们需要手动转为 string&#xff0c;否则会有警告&#xff0c;而且第一次进入 sub-menu 默认不高亮。 解决方…...

自然语言处理——从原理、经典模型到应用

1. 概述 自然语言处理&#xff08;Natural Language Processing&#xff0c;NLP&#xff09;是一门借助计算机技术研究人类语言的科学&#xff0c;是人工智能领域的一个分支&#xff0c;旨在让计算机理解、生成和处理人类语言。其核心任务是将非结构化的自然语言转换为机器可以…...

Linux——冯 • 诺依曼体系结构

目录 一、冯•诺依曼体系结构原理二、内存提高冯•诺依曼体系结构效率的方法三、当用QQ和朋友聊天时数据的流动过程四、关于冯诺依曼五、总结 我们常见的计算机&#xff0c;如笔记本。我们不常见的计算机&#xff0c;如服务器&#xff0c;大部分都遵守冯诺依曼体系 流程&#…...

【FISCO BCOS】二十四、通过Java SDK对FISCO BCOS进行压力测试

Java SDK Demo是基于Java SDK的基准测试集合,能够对FISCO BCOS节点进行压力测试。Java SDK Demo提供有合约编译功能,能够将Solidity合约文件转换成Java合约文件,此外还提供了针对转账合约、CRUD合约以及AMOP功能的压力测试示例程序。本篇我们来讲讲使用java SDK压力测试的操…...

Gurobi基础语法之字典

Python中的字典&#xff1a;dict 我们先来介绍一下Python语法中的 dict 类型, 字典中可以通过任意键值来对数据进行映射&#xff0c;任何无法修改的python对象都可以当作键值来使用&#xff0c;这些无法修改的Python对象包括&#xff1a;整数(比如&#xff1a;1)&#xff0c;浮…...

汽车OEMs一般出于什么目的来自定义Autosar CP一些内容

汽车OEMs在使用AUTOSAR CP(Classic Platform)协议时,可能会根据自身的特定需求对标准协议进行修改,形成自己的企业标准(企标)。这种修改通常是为了满足特定的硬件平台、功能需求、安全要求或优化性能。以下是一些常见的修改场景和例子: 1. 硬件平台适配 企业可能会根据…...

设计模式的艺术-享元模式

结构性模式的名称、定义、学习难度和使用频率如下表所示&#xff1a; 1.如何理解享元模式 当一个软件系统在运行时产生的对象数量太多&#xff0c;将导致运行代价过高&#xff0c;带来系统性能下降等问题。 在享元模式中&#xff0c;存储这些共享实例对象的地方称为享元池&…...

Java使用FFM API调用SDL

首发于Enaium的个人博客 首先我们需要创建一个Gradle项目&#xff0c;之后设置项目的JDK版本&#xff0c;设置为22及以上版本。 plugins {kotlin("jvm") version "2.1.0" }group "cn.enaium" version "1.0-SNAPSHOT"repositories {…...

bash: ./xxx: No such file or directory

问题现象 在使用开源或他人可执行文件的时候&#xff0c;可能会遇到 bash: ./squashfs2sparse: No such file or directory 的报错&#xff1b;实际测试发现该文件存在&#xff0c;并且有可执行权限&#xff1b; 问题分析 通过对报错文件的分析 1&#xff1a;文件具有可执行…...

Linux(Centos 7.6)命令详解:wc

1.命令作用 打印文件的行数、单词数、字节数&#xff0c;如果指定了多个文件&#xff0c;还会打印以上三种数据的总和(Print newline, word, and byte counts for each FILE, and a total line if more than one FILE is specified) 2.命令语法 Usage: wc [OPTION]... [FIL…...

PHP EOF (Heredoc) 详解

PHP EOF (Heredoc) 详解 PHP 中的 EOF(End Of File)是一种非常有用的语法特性,允许开发者创建多行字符串。它特别适合于创建格式化文本,如配置文件、HTML 模板等。本文将详细讲解 PHP EOF 的用法、优势以及注意事项。 什么是 EOF? EOF 是一种特殊的字符串定义方式,它允…...

面向长文本的多模型协作摘要架构:多LLM文本摘要方法

多LLM摘要框架在每轮对话中包含两个基本步骤:生成和评估。这些步骤在多LLM分散式摘要和集中式摘要中有所不同。在两种策略中,k个不同的LLM都会生成多样化的文本摘要。然而在评估阶段,多LLM集中式摘要方法使用单个LLM来评估摘要并选择最佳摘要,而分散式多LLM摘要则使用k个LLM进行…...

第27章 测试驱动开发模式:深入测试技术

写在前面 这本书是我们老板推荐过的&#xff0c;我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后&#xff0c;我突然思考&#xff0c;对于测试开发工程师来说&#xff0c;什么才更有价值呢&#xff1f;如何让 AI 工具更好地辅助自己写代码&#xff0c;或许…...

C语言教程——文件处理(2)

目录 前言 一、顺序读写函数&#xff08;续&#xff09; 1.1fprintf 1.2fscanf 1.3fwrite 1.4fread 二、流和标准流 2.1流 2.2标准流 2.3示例 三、sscanf和sprintf 3.1sprintf 3.2sscanf 四、文件的随机读写 4.1fseek 4.2ftell 4.3rewind 五、文件读取结束的…...

QT TLS initialization failed

qt使用QNetworkAccessManager下载文件&#xff08;给出的链接可以在浏览器里面下载文件&#xff09;&#xff0c;下载失败&#xff0c; 提示“TLS initialization failed”通常是由于Qt在使用HTTPS进行文件下载时&#xff0c;未能正确初始化TLS&#xff08;安全传输层协议&…...

金融级分布式数据库如何优化?PawSQL发布OceanBase专项调优指南

前言 OceanBase数据库作为国产自主可控的分布式数据库&#xff0c;在金融、电商、政务等领域得到广泛应用&#xff0c;优化OceanBase数据库的查询性能变得愈发重要。PawSQL为OceanBase数据库提供了全方位的SQL性能优化支持&#xff0c;助力用户充分发挥OceanBase数据库的性能潜…...

在Kubernets Cluster中部署LVM类型的StorageClass - 上

适用场景 看到B站技术部门的文章&#xff0c;是关于如何在k8s集群部署Elastic Search和Click House等IO密集型数据库应用的。 因为要充分利用NvME SSD盘的IOPS&#xff0c;所有数据库应用都直接调用本地SSD盘做为stateful application的 Persistent Volumes。为了可用动态的分…...

mysql 学习6 DML语句,对数据库中的表进行 增 删 改 操作

添加数据 我们对 testdatabase 数据中 的 qqemp 这张表进行 增加数据&#xff0c;在这张表 下 打开 命令行 query console 在 软件中就是打开命令行的意思 可以先执行 desc qqemp; 查看一下当前表的结构。 插入一条数据 到qqemp 表&#xff0c;插入时要每个字段都有值 insert…...

【全栈】SprintBoot+vue3迷你商城(10)

【全栈】SprintBootvue3迷你商城&#xff08;10&#xff09; 往期的文章都在这里啦&#xff0c;大家有兴趣可以看一下 后端部分&#xff1a; 【全栈】SprintBootvue3迷你商城&#xff08;1&#xff09; 【全栈】SprintBootvue3迷你商城&#xff08;2&#xff09; 【全栈】Sp…...