LLaMA-Factory DeepSeek-R1 模型 微调基础教程
LLaMA-Factory 模型 微调基础教程
- LLaMA-Factory
- LLaMA-Factory 下载
- Anaconda
- Anaconda 环境创建
- 软硬件依赖 详情
- LLaMA-Factory 依赖安装
- CUDA 安装
- 量化 BitsAndBytes 安装
- 可视化微调启动
- 数据集准备
- 所需工具下载
- 使用教程
- 所需数据合并
- 数据集预处理
- DeepSeek-R1 可视化微调
- 数据集处理
- 数据详解
- LLaMA-Factory 基础设置
- 模型评估与预测
- 训练模型对话
- 训练模型导出
LLaMA-Factory 模型 微调 概述
使用LLaMA-Factory进行模型微调具有多方面的好处。首先,它简化了大模型微调的过程,使得即使是没有深厚技术功底的用户也能轻松进行模型的优化和改进。此外,LLaMA-Factory支持多种训练方法,如全量调参、LoRA等,以及不同的对齐方案,如DPO、PPO等。这为用户提供了灵活性,可以根据具体需求选择合适的微调策略。
LLaMA-Factory还提供了一站式服务,从模型微调到量化处理,再到运行,整个过程一气呵成,无需在不同的工具和流程之间来回切换。此外,它支持多种流行的语言模型,如LLaMA、BLOOM、Mistral、Baichuan等,涵盖了广泛的应用场景。
在模型量化方面,LLaMA-Factory能够有效地压缩模型规模,减少模型运行所需的计算量和存储空间,使得模型能够在性能稍弱的设备上也能流畅运行。这不仅提高了模型的可访问性,也降低了运行成本。
此外,LLaMA-Factory的训练过程中记录的内容比较全面,除了同步输出loss曲线图以外,还自带BLEU等评测指标,这有助于用户更好地监控和评估模型的性能。
LLaMA-Factory
LLaMA-Factory 下载
GitHub: LLaMA-Factory
1. 进到 LLaMA-Factory 后点击code 下载就行,我这边选择的是下载 zip.
2. 这里也有中文的资料以及详情,感兴趣的可以看看。
3. 解压完成之后记录一下解压路径。
Anaconda
Anaconda 环境创建
软硬件依赖 详情
软硬件依赖
1. 创建虚拟环境:官方给出的是 python 至少 3.9 推荐 3.10
2. 打开终端。
3. 导航到 刚才解压的地址,我的是:E:\Model\LLaMA-Factory-main\LLaMA-Factory-main命令:E: (导航到E盘)cd E:\Model\LLaMA-Factory-main\LLaMA-Factory-main (导航到具体文件夹)
LLaMA-Factory 依赖安装
1. 依赖下载:pip install -r requirements.txt
2. 这个也是安装依赖最好都执行一遍: pip install -e ".[torch,metrics]"
CUDA 安装
1. CUDA 安装:conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
记得输入 y 继续安装
量化 BitsAndBytes 安装
1. 安装 BitsAndBytes
如果要在 Windows 平台上开启量化 LoRA(QLoRA),需要安装预编译的 bitsandbytes 库
支持 CUDA 11.1 到 12.2, 请根据您的 CUDA 版本情况选择适合的发布版本。
pip install https://github.com/jllllll/bitsandbytes-windows-webui/releases/download/wheels/bitsandbytes-0.41.2.post2-py3-none-win_amd64.whl
可视化微调启动
1. 启动命令:llamafactory-cli webui
2. 如果出现这个错误就说明:无法访问 localhost,因此需要创建一个可分享的链接,但是又因为分享 Gradio share 为false 而无法正确响应,所以我们需要更改一下 interface.py 代码。
3. 找到 interface.py 存在路径,我的是:LLaMA-Factory-main\src\llamafactory\webui
4. 找到 run_web_ui() 和 run_web_demo() 方法,把 “share=gradio_share” 修改成:“share=True”如下图所示:
4. 然后再次运行,就成功了。对了有一点需要注意的是,这个时候不要搭梯子不然界面会一直加载不出来。
数据集准备
所需工具下载
微信风格化工具: 留痕
因为我创建的自己的风格化模型所以就用这个了,其他的也可以
例如:finetune_dataset_maker或者自己写一个,抽时间我自己写一个也行,到时候写出来再分享吧
如果大家想了解更多这边有几个论文呢可以参考一下。
T2D:从文本自动生成虚拟代理之间的对话
个性化对话生成的最新趋势:数据集、方法和评估综述
LLaMA-Factory:100多种语言模型的统一高效微调
1. 回到正题哈,点击下载,然后解压。
2. 下载第一个就行
使用教程
1. 点击 教程跳转官方使用说明
2. 点击导出数据,跟着步骤来就行。
不想看的可以跟着我的来弄:
3. 解压之后,找到 MemoTrace.exe 双击执行就可以。
4. 点击我的登陆账号,然后在工具点击解析数据
5. 我这边选择的是AI 对话txt 和 json,大家按需导出就行。
6. 因为这边需要的数据就只是文本数据,所以就只勾选了文本。
7. 记一下目录哈,我这边是在:D:\软件\留痕\data\聊天记录,找相对路径就行。
8. 导出完毕之后就相对路径文件夹会有这三个文件,因为我选择导出txt和json 所以会有三个文件如果只是json会有两个文件。
所需数据合并
1. 在聊天记录文件夹 建立一个 merge.py 的文件
2. 把下面的代码复制进去,这个代码的主要作用就是合并所有的聊天记录。
import os
import json# 设置目标文件夹路径
folder_path = r'D:\软件\留痕\data\聊天记录'# 获取文件夹及其所有子文件夹中的所有 .json 文件
json_files = []
for root, dirs, files in os.walk(folder_path):for file in files:if file.endswith('.json'):json_files.append(os.path.join(root, file))# 合并所有 .json 文件
merged_data = []
for file in json_files:with open(file, 'r', encoding='utf-8') as f:try:data = json.load(f)merged_data.append(data)except json.JSONDecodeError:print(f"Error decoding {file}. Skipping.")# 保存合并后的数据到一个新的 .json 文件
merged_file_path = os.path.join(folder_path, 'merged_data.json')
with open(merged_file_path, 'w', encoding='utf-8') as merged_file:json.dump(merged_data, merged_file, indent=4, ensure_ascii=False)print(f"合并后的文件已保存至: {merged_file_path}")
3. 直接在地址栏前面加上 cmd 回车之后就会打开当前路径的命令提示符。
4. 键入 python merge.py 执行
5. 显示这个就表示执行完毕,数据已经合并了。
6. 内容大概就是这样
数据集预处理
数据集预处理是机器学习和人工智能中不可或缺的环节,其重要性体现在多个方面。
首先,预处理能够提升数据质量,通过清洗噪声、去除重复和无关信息,以及标准化格式,为模型训练提供纯净
且一致的输入。其次,它有助于优化模型性能,例如通过分词、去除停用词等操作,让模型更容易理解和学习数
据中的关键信息,同时减少过拟合的风险。此外,预处理还能增强数据多样性,通过数据增强技术如文本扩充、
同义词替换等,提升模型的泛化能力。在对话系统中,预处理尤为重要,因为它需要处理多轮对话的上下文一致
性以及用户意图的多样性。通过格式化对话数据和增强对话内容,可以显著提升对话系统的自然性和流畅性。总
之,数据集预处理不仅提高了模型的训练效率,还为模型的最终性能奠定了坚实基础,是实现高质量人工智能应
用的关键步骤。
1. 在聊天记录文件夹 建立一个 Data_Preprocessing.py 的文件
2. 把下面的代码复制进去,这个代码的主要作用就是数据清洗、脱敏、去重以及规则化成sharegpt格式。这个等会解释为什么要用 sharegpt 格式。
import json
import re# 读取 merged_data.json 文件
with open('merged_data.json', 'r', encoding='utf-8') as file:data = json.load(file)# 转换后的数据格式
converted_data = []# 数据清洗:去除空消息,清除特殊字符,统一格式
def clean_data(dataset):cleaned_data = []for example in dataset:messages = example['messages']cleaned_messages = []for message in messages:# 去除内容为空的消息if not message['content'].strip():continue# 清除多余的空格、换行符等message['content'] = message['content'].replace("\n", " ").strip()cleaned_messages.append(message)if cleaned_messages:cleaned_data.append({'messages': cleaned_messages})return cleaned_data# 脱敏处理:替换敏感信息
def replace_sensitive_info(text):# 匹配手机号、邮箱等敏感信息text = re.sub(r'\d{3}[-]?\d{4}[-]?\d{4}', '[PHONE_NUMBER]', text) # 替换手机号text = re.sub(r'\S+@\S+', '[EMAIL]', text) # 替换邮箱text = re.sub(r'\d{4}-\d{2}-\d{2}', '[DATE]', text) # 替换日期return text# 匿名化数据:替换用户角色
def anonymize_data(dataset):anonymized_data = []for example in dataset:messages = example['messages']anonymized_messages = []for message in messages:# 匿名化用户角色if message['role'] == 'user':message['content'] = message['content'].replace("用户", "用户X")# 替换敏感信息message['content'] = replace_sensitive_info(message['content'])anonymized_messages.append(message)anonymized_data.append({'messages': anonymized_messages})return anonymized_data# 处理每一条对话
for item_list in data:for item in item_list:# 确保每个条目中包含 'messages' 字段if 'messages' not in item:print("跳过:没有找到 'messages' 字段")continue # 如果没有 'messages' 字段,跳过当前数据项print(f"正在处理数据项: {item}") # 打印当前处理的项conversation = {"conversations": []}# 处理消息数据for message in item['messages']:role = message['role']content = message['content']print(f"处理消息:role={role}, content={content}") # 打印消息内容# 清洗和脱敏处理content = replace_sensitive_info(content)# 映射 role 到 from 字段if role == "system":continue # 忽略 system 消息elif role == "user":from_role = "human"elif role == "assistant":from_role = "gpt"# 添加转换后的消息conversation['conversations'].append({"from": from_role,"value": content})# 将转换后的会话添加到最终结果中converted_data.append(conversation)# 保存转换后的数据为新的文件
with open('converted_data.json', 'w', encoding='utf-8') as file:json.dump(converted_data, file, ensure_ascii=False, indent=2)print("数据转换完成,结果已保存为 converted_data.json")
3. 直接在地址栏前面加上 cmd 回车之后就会打开当前路径的命令提示符。
4. 键入 python merge.py 执行
5. 显示这个就表示执行完毕,数据已清洗和修改完毕。
DeepSeek-R1 可视化微调
数据集处理
1. 把 converted_data.json 数据集存放在,LLaMA-Factory 相对路径,我的是:E:\Model\LLaMA-Factory-main\LLaMA-Factory-main\data
2. 编辑 dataset_info.json 文件。
3. 更改 dataset_info.json 文件,以便LLaMA-Factory 识别训练。下面是需要添加的内容。
"converted_data": {"file_name": "converted_data.json","formatting": "sharegpt","columns": {"messages": "conversations"}},
数据详解
1. 在data 文件夹有个 README_zh.md 的文件打开它它记录的就是 alpaca 和 sharegpt 格式 数据集如何配置。
2. 我这边使用的是 sharegpt 数据集,所以在 dataset_info.json 文件需要填充的内容就如下图所示。又因为我不需要: tools(工具描述) 所以直接删除也行当然你有需求也可以加上,只要把数据集修改一下就行了。如果还不知道怎么修改就看一下样例数据集 glaive_toolcall_zh_demo.json 也在 data 文件夹下。
LLaMA-Factory 基础设置
模型下载地址: deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B
1. LLaMA-Factory 运行起来之后把语言更改成中文、模型更改为:DeepSeek-R1-1.5B-Distill模型路径就是你下载好存放的模型路径。
2. 选择我们添加的数据集。
2. 简单预览一下看看有没有错误,然后关闭就行了。
3. 你如果不是很了解这些参数什么意思的话,按照我的填就行。
4. 点击预览命令,可以看到训练参数配置详情。
5. 开始训练
5. 训练详情可以在 Gradio UI 查看损失函数,也可以后台查看详细信息。
命令行输出
6. 训练完毕之后会输出 训练完毕字符 。
7. 后台也会输出当前模型训练基础指标,简单解释一下吧。epoch:表示训练过程中数据集被完整地通过模型一次的次数。num_input_tokens_seen:表示在训练过程中模型已经看到的输入标记(例如单词或字)的总数。total_flos:表示训练过程中执行的浮点运算次数,单位是 GF。train_loss:表示训练集上的损失函数值,损失越低通常意味着模型性能越好。train_runtime:表示训练过程的总运行时间。train_samples_per_second:表示模型每秒可以处理的样本数。train_steps_per_second:表示模型每秒可以执行的训练步骤数。
8. 模型存放位置,我的地址是:LLaMA-Factory-main\saves\DeepSeek-R1-1.5B-Distill\lora如果没更改存放位置的话,应该都在 saves 文件夹下。
模型评估与预测
1. 点击 Evaluate&Predict
2. 选择需要使用到的数据集。
3. 预览一下评估命令,我使用的是 RTX4080,大概需要跑 50 多分钟。
4. 评估结束之后会给一个评估指标,简单解释一下都是什么意思。
这些数据是机器学习模型的评估指标,通常用于评估文本生成模型(如机器翻译、文本摘要等)的性能。predict_bleu-4:用于评估机器翻译模型输出质量的一个指标。bleu-4 计算的是 4-gram(四个连续单词)之间的匹配程度。它用于衡量生成文本与参考文本之间的相似度。predict_model_preparation_time:模型准备时间,即加载模型并进行初始化所花费的时间,单位是秒。predict_rouge-1:ROUGE 用于评估自动摘要质量的一个指标。rouge-1 衡量的是1-gram(单个词)的召回率即生成文本与参考文本中单个词的匹配程度。predict_rouge-2:rouge-2 衡量的是2-gram(由两个连续单词组成的词组)之间的匹配度。它反映了生成文本和参考文本中连续两个词的相似性。predict_rouge-l:rouge-l 衡量的是最长公共子序列(LCS)的召回率。LCS考虑了单词的顺序因此更能反映生成文本和参考文本之间的结构相似度。predict_runtime:模型运行的总时间,通常是指模型在预测或推理过程中所花费的总时间,单位为秒。predict_samples_per_second:每秒处理的样本数量,表示模型每秒钟可以处理多少个输入样本。predict_steps_per_second:每秒执行的推理步骤数,表示模型在推理过程中每秒执行多少次推理步骤。
5. 这个是模型评估具体信息,感兴趣的可以点击去具体查看。
训练模型对话
1. 选择你想要对话并训练好的模型。
2. 点击加载模型,模型加载完毕之后会提示:模型已加载,可以开始聊天了!
3. 然后就可以开始对话了,这个对话就是根据你的风格进行训练出来的,相当于第二个你。
训练模型导出
1. 点击 Export 切换到模型导出界面。
2. 这些参数按需调节吧,导出设备最好选择自动,不然CUDA 执行会有一点问题,导出目录需要填写一下。
3. 模型正在导出和导出成功都有提示,如下图所示。
4. 所有模型文件就是在你填写的导出路径文件夹内。我的是:LLaMA-Factory-main\model\DeepSeek-R1-1.5B-Distill 微调
5. 一般都出完毕之后我都会写一个 requirements.txt 文件,也就是依赖安装文件,方便后期快速部署。里面也没什么东西就是当前模型所需依赖,一般使用原本的依赖文件就行,我这里面就是下面的内容。
transformers>=4.41.2,<=4.48.3,!=4.46.*,!=4.47.*,!=4.48.0,!=4.48.1,!=4.48.2;python_version<'3.10'
transformers>=4.41.2,<=4.48.3,!=4.46.*,!=4.47.*,!=4.48.0;python_version>='3.10'
datasets>=2.16.0,<=3.2.0
accelerate>=0.34.0,<=1.2.1
peft>=0.11.1,<=0.12.0
trl>=0.8.6,<=0.9.6
tokenizers>=0.19.0,<=0.21.0
gradio>=4.38.0,<=5.12.0
pandas>=2.0.0
scipy
einops
sentencepiece
tiktoken
protobuf
uvicorn
pydantic
fastapi
sse-starlette
matplotlib>=3.7.0
fire
packaging
pyyaml
numpy<2.0.0
av
librosa
tyro<0.9.0
暂时先这样吧,如果实在看不明白就留言,看到我会回复的。希望这个教程对您有帮助!
路漫漫其修远兮,与君共勉。
相关文章:
LLaMA-Factory DeepSeek-R1 模型 微调基础教程
LLaMA-Factory 模型 微调基础教程 LLaMA-FactoryLLaMA-Factory 下载 AnacondaAnaconda 环境创建软硬件依赖 详情LLaMA-Factory 依赖安装CUDA 安装量化 BitsAndBytes 安装可视化微调启动 数据集准备所需工具下载使用教程所需数据合并数据集预处理 DeepSeek-R1 可视化微调数据集处…...
利用亚马逊云科技RDS for SQL Server配置向量数据存储
生成式人工智能(AI)正迎来又一个快速发展期,引起了开发者们的广泛关注。将生成式能力集成到商业服务和解决方案中变得非常重要。当前的生成式AI解决方案是机器学习和深度学习模型逐步进化迭代的结果。从深度学习到生成式AI的质变飞跃主要是由…...
ASP.NET Core SixLabors.ImageSharp v1.0 的图像实用程序类 web示例
这个小型实用程序库需要将 NuGet SixLabors.ImageSharp包(版本 1.0.4)添加到.NET Core 3.1/ .NET 6 / .NET 8项目中。它与Windows、Linux和 MacOS兼容。 这已针对 ImageSharp v3.0.1 进行了重新设计。 它可以根据百万像素数或长度乘以宽度来调整图像大…...
JVM 底层探秘:对象创建的详细流程、内存分配机制解析以及线程安全保障策略
文章目录 1. 类加载检查2. 内存分配① 指针碰撞② 空闲列表线程安全问题: 3. 内存空间初始化4. 对象头设置5. 对象初始化 当Java虚拟机遇到一条 new指令时,会执行以下步骤来创建对象: 1. 类加载检查 首先检查new指令的参数是否能在常量池中…...
SpringCloud框架下的注册中心比较:Eureka与Consul的实战解析
摘要 在探讨SpringCloud框架中的两种注册中心之前,有必要回顾单体架构与分布式架构的特点。单体架构将所有业务功能集成在一个项目中,优点是架构简单、部署成本低,但耦合度高。分布式架构则根据业务功能对系统进行拆分,每个模块作…...
应对DeepSeek总是服务器繁忙的解决方法
最近由于访问量过大,DeepSeek服务器官网经常弹出:“服务器繁忙,请稍后再试”的提示,直接卡成PPT怎么办?服务器繁忙直接看到视觉疲劳: 解决DeepSeek卡顿问题 DeepSeek使用卡顿问题,是因为访问量…...
C++ 实践扩展(Qt Creator 联动 Visual Studio 2022)
这里我们将在 VS 上实现 QT 编程,实现如下: 一、Vs 2022 配置(若已安装,可直接跳过) 点击链接:Visual Studio 2022 我们先去 Vs 官网下载,如下: 等待程序安装完成之…...
JENKINS(全面)
一.linux系统中JENKINS的安装 注意:安装jenkins需要安装jdk,而且具体版本的jenkins有相对应的jdk版本。可参考以下链接。 Redhat Jenkins 软件包https://pkg.jenkins.io/redhat-stable/https://pkg.jenkins.io/redhat-stable/https://pkg.jenkins.io/r…...
72.git指南(简单)
Git 操作指南 在开始之前,请确保你已经提前配置好 .gitignore 文件,以避免不必要的文件被 Git 跟踪。如果在初始化仓库后再配置 .gitignore 文件,之前添加的文件仍会被跟踪,需要手动移除。 如下例子忽略了文件夹及文件夹内所有内…...
LeetCode 232: 用栈实现队列
LeetCode 232: 用栈实现队列 题目描述 使用栈实现队列的操作。支持以下操作: MyQueue():初始化队列。push(x):将元素 x 推入队列。pop():从队列中移除元素。peek():返回队列头部的元素。empty():检查队列…...
C#关于静态关键词static详解
Demo代码: public class HomeController : Controller {private DateTime time1 DateTime.Now; // 实例字段private static DateTime time2 DateTime.Now; // 静态字段[HttpGet("index")]public async Task Index(){Console.WriteLine($"now&am…...
【Pico】使用Pico进行无线串流搜索不到电脑
使用Pico进行无线串流搜索不到电脑 官串方式:使用Pico互联连接电脑。 故障排查 以下来自官方文档 请按照以下步骡排除故障: 确认电脑和一体机连接了相同的路由器WiFi网络(相同网段) IP地址通常为192.168.XX,若两设备的IP地址前三段相同&…...
细说STM32F407单片机RTC的基本原理及闹钟和周期唤醒功能的使用方法
目录 一、RTC基础知识 1、 RTC的功能 2、RTC工作原理 (1)RTC的时钟信号源 (2)预分频器 (3)实时时钟和日历数据 (4)周期性自动唤醒 (5)可编程闹钟 &a…...
ES用脚本更新异常
因为需要向原有的es结构中增加一个检索字段,但因为历史es数据都没有该字段,需要批量刷新es的该字段,本地使用了脚本的方式进行刷新,在测试环境测试,出现了以下错误: 500 Internal Server Error: [{"e…...
Navicat导入海量Excel数据到数据库(简易介绍)
目录 前言正文 前言 此处主要作为科普帖进行记录 原先Java处理海量数据的导入时,由于接口超时,数据处理不过来,后续转为Navicat Navicat 是一款功能强大的数据库管理工具,支持多种数据库系统(如 MySQL、PostgreSQL、…...
C++学习
C对C语言的加强 1.命名空间(namespace) 为了避免,在大规模程序的设计中,以及在程序员使用各种各样的C库时,这些标识符的命名发送冲突。 标准C引入了关键字namespace,可以更好地控制标识符的作用域。 st…...
Linux Mem -- Where the mte store and check in the real hardware platform
目录 1 前言 2 MTE tag分类 3 Address tag 4 Memory tag 5 Tag Check 6 Cortex-A710 和 CI-700 系统示例: 1 前言 ARM的MTE允许分配、设置、比较一个 4bit的allocation tag 为16字节粒度的物理地址。当对MTE有一定了解后,应该会产生如下疑问&#…...
老牌软件,如今依旧坚挺
今天给大家介绍一个非常好用的老牌电脑清理软件,这个软件好多年之前就有人使用了。 今天找出来之后,发现还是那么的好用,功能非常强大。 Red Button 电脑清理软件 软件是绿色版,无需安装,打开这个图标就能直接使用了…...
springboot整合modbus实现通讯
springboot整合modbus4j实现tcp通讯 前言 本文基于springboot和modbus4j进行简单封装,达到开箱即用的目的,目前本方案仅实现了tcp通讯。代码会放在最后,按照使用方法操作后就可以直接使用 介绍 在使用本方案之前,有必要对modb…...
【java面试】线程篇
1.什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。 2.线程和进程有什么区别? 线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任…...
DeepSeek官方发布R1模型推荐设置
今年以来,DeepSeek便在AI领域独占鳌头,热度一骑绝尘。其官方App更是创造了惊人纪录,成为史上最快突破3000万日活的应用,这一成绩无疑彰显了它在大众中的超高人气与强大吸引力。一时间,各大AI及云服务厂商纷纷投身其中&…...
Vue CLI 配置与插件
Vue CLI 配置与插件 今天我们来聊聊 Vue CLI 的配置与插件。随着项目复杂度的增加,合理配置 Vue CLI 可以帮助我们更高效地管理项目,同时利用插件机制快速集成各种功能。下面我就和大家详细介绍如何配置 Vue CLI,以及如何使用和开发插件&…...
Spring Boot (maven)分页3.0版本 通用版
前言: 通过实践而发现真理,又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识,又从理性认识而能动地指导革命实践,改造主观世界和客观世界。实践、认识、再实践、再认识,这种形式,循环往…...
pip 与 conda 的故事
pip 换源 pip 官方源 -i https://pypi.python.org/simple pip 清华源 -i https://pypi.tuna.tsinghua.edu.cn/simple pip 阿里源 -i https://mirrors.aliyun.com/pypi/simple PyTorch 安装 pip3 install torch torchvision torchaudio pip3 install torch torchvision torchaud…...
清华大学KVCache.AI团队联合趋境科技联合的KTransformers开源项目为什么那么厉害
KTransformers是一个由清华大学KVAV.AI团队开发的开源项目,旨在优化大语言模型(LLM)的推理性能,特别是在有限显存资源下运行大型模型。以下是KTransformers的详细介绍: 1. 核心特点 高性能优化:KTransfor…...
DeepSeek 遭 DDoS 攻击背后:DDoS 攻击的 “千层套路” 与安全防御 “金钟罩”_deepseek ddos
当算力博弈升级为网络战争:拆解DDoS攻击背后的技术攻防战——从DeepSeek遇袭看全球网络安全新趋势 在数字化浪潮席卷全球的当下,网络已然成为人类社会运转的关键基础设施,深刻融入经济、生活、政务等各个领域。从金融交易的实时清算…...
4090单卡挑战DeepSeek r1 671b:尝试量化后的心得的分享
引言: 最近,DeepSeek-R1在完全开源的背景下,与OpenAI的O1推理模型展开了激烈竞争,引发了广泛关注。为了让更多本地用户能够运行DeepSeek,我们成功将R1 671B参数模型从720GB压缩至131GB,减少了80%ÿ…...
【动态路由】系统Web URL资源整合系列(后端技术实现)【apisix实现】
需求说明 软件功能需求:反向代理功能(描述:apollo、eureka控、apisix、sentinel、普米、kibana、timetask、grafana、hbase、skywalking-ui、pinpoint、cmak界面、kafka-map、nacos、gateway、elasticsearch、 oa-portal 业务应用等多个web资…...
【Elasticsearch】通过运行时字段在查询阶段动态覆盖索引字段
在 Elasticsearch 中,Override field values at query time是指通过运行时字段(runtime fields)在查询阶段动态覆盖索引字段的值,而无需修改原始索引数据。这种功能特别适用于以下场景: 1. 动态修改字段值:…...
【stm32】定时器
stm32f4xx: APB2 ----> TIM1,TIM8,TIM9,TIM10,TIM11 APB1 ----> TIM2,TIM3,TIM4,TIM5,TIM6,TIM7,TIM12,TIM13,TIM14 一、定时器介绍 1、基本定时器 1.1、TIM6 和 TIM7 的主要特性 ● 16 位自动重载递增计数器 ● 16 位可编程…...
滑动窗口算法篇:连续子区间与子串问题
1.滑动窗口原理 那么一谈到子区间的问题,我们可能会想到我们可以用我们的前缀和来应用子区间问题,但是这里对于子区间乃至子串问题,我们也可以尝试往滑动窗口的思路方向去进行一个尝试,那么说那么半天,滑动窗口是什么…...
华三交换机-链路聚合配置案例
目录 1.链路聚合简述:2.链路聚合的作用:3.链路聚合的模式:4.网络拓扑:5.实验需求:6.网络配置:6.1 链路聚合配置(静态聚合)6.1.1 链路聚合配置:6.1.2 查看链路聚合状态: 6.2 链路聚合配置(动态聚合)6.2.1 链路聚合配置:6.2.2 查看链路聚合状态: 7.网络连通性测试:(接…...
Qwen2-VL 的重大省级,Qwen 发布新旗舰视觉语言模型 Qwen2.5-VL
Qwen2.5-VL 是 Qwen 的新旗舰视觉语言模型,也是上一代 Qwen2-VL 的重大飞跃。 Qwen2.5-VL主要特点 视觉理解事物:Qwen2.5-VL不仅能够熟练识别花、鸟、鱼、昆虫等常见物体,而且还能够分析图像中的文本、图表、图标、图形和布局。 代理性&…...
关系数据库标准语言SQL
1.SOL称为结构化查询语言,它是由1974年由Boyce和Chamberlin提出的,1975年至1979年IBM公司的San Jose Research Laboratory研制了关系数据库管理系统的原型系统SystemR,并实现了这种语言。 2.SQL(Structured Ouery Language)称为结构化查询语言 3.SQL数…...
mysql8.0使用MGR实现高可用与利用MySQL Router构建读写分离MGR集群
MGR是MySQL Group Replication的缩写,即MySQL组复制。 在以往,我们一般是利用MySQL的主从复制或半同步复制来提供高可用解决方案,但这存在以下几个比较严重的问题: 主从复制间容易发生复制延迟,尤其是在5.6以前的版本…...
《AI大模型开发笔记》MoE模型技术对比(Mixtral,Qwen2-MoE,DeepSeek-v3)
MoE模型技术对比(Mixtral,Qwen2-MoE,DeepSeek-v3) MoE(混合专家)大模型进入爆发期!本期我们对比三大开源MoE LLM:Mixtral、Qwen2-MoE 和最新爆火的 DeepSeek-V3。从 2023 年 Mixtral 开启风潮,到 2024 年 DeepSeek-V3 让全球瞩目,MoE 模型到底经历了怎样的进化? De…...
Vue.js 组件开发深入解析:Vue 2 vs Vue 3
Vue.js 是一个渐进式框架,旨在通过声明式渲染和组件化开发来提高开发效率和可维护性。组件是 Vue 应用的基本组成部分,几乎所有的功能都可以通过组件来实现。随着 Vue 3 的发布,Vue.js 引入了许多新的特性,使得组件的开发变得更加…...
DeepSeek大模型一键部署解决方案:全平台多机分布式推理与国产硬件优化异构计算私有部署
DeepSeek R1 走红后,私有部署需求也随之增长,各种私有部署教程层出不穷。大部分教程只是简单地使用 Ollama、LM Studio 单机运行量化蒸馏模型,无法满足复杂场景需求。一些操作配置也过于繁琐,有的需要手动下载并合并分片模型文件&…...
多个用户如何共用一根网线传输数据
前置知识 一、电信号 网线(如以太网线)中传输的信号主要是 电信号,它携带着数字信息。这些信号用于在计算机和其他网络设备之间传输数据。下面是一些关于网线传输信号的详细信息: 1. 电信号传输 在以太网中,数据是…...
DeepSeek官方推荐的AI集成系统
DeepSeek模型虽然强大先进,但是模型相当于大脑,再聪明的大脑如果没有输入输出以及执行工具也白搭,所以需要有配套工具才能让模型发挥最大的作用。下面是一个典型AI Agent架构图,包含核心组件与数据流转关系: #mermaid-…...
el-select 添加icon
Element-ui-plus 新版本:Select 选择器 | Element Plus 要实现如上的效果 ,要用到具名插槽 prefix,看代码: <template><el-dialog ref"dialogRef" v-model"dialogVisible" :title"title"…...
Qt的QPushButton样式设置
在Qt中,可以通过样式表(QSS)为QPushButton设置丰富的样式。以下是常见样式设置方法的详细说明: 1. 基础样式 // 设置背景色、文字颜色、圆角边框 button->setStyleSheet("QPushButton {"" background-color…...
Java函数计算冷启动从8s到800ms的优化实录
在函数计算场景中,冷启动性能对用户体验至关重要。本文将分享如何将 Java 函数计算的冷启动时间从 8 秒优化到 800 毫秒,包括具体的技术手段和代码示例。 一、背景介绍 函数计算是一种事件驱动的计算服务,用户只需上传代码,无需管理服务器。但在实际使用中,函数计算的冷…...
通过例子学 rust 个人精简版 1-1
1-1 Hello World fn main() {println!("Hello World!");// 动手试一试println!("Im a Rustacean!"); }Hello World! Im a Rustacean!要点1 :println 自带换行符 注释 fn main() {let x 5 /* 90 */ 5;println!("Is x 10 or 100? x …...
STM32、GD32驱动TM1640原理图、源码分享
一、原理图分享 二、源码分享 /************************************************* * copyright: * author:Xupeng * date:2024-07-18 * description: **************************************************/ #include "smg.h"#define DBG_TAG "smg&…...
Centos安装php-8.0.24.tar
查看系统环境 cat /etc/redhat-release 预先安装必要的依赖 yum install -y \ wget \ gcc \ gcc-c \ autoconf \ automake \ libtool \ make \ libxml2 \ libxml2-devel \ openssl \ openssl-devel \ sqlite-devel yum update 1、下载解压 cd /data/ wget https:/…...
VNC远程控制Mac
前言 macOS系统自带有VNC远程桌面,我们可以在控制端上安装配置VNC客户端,以此来实现远程控制macOS。但通常需要在不同网络下进行远程控制,为此,我们可以在macOS被控端上使用cpolar做内网穿透,映射VNC默认端口5…...
基于大数据的北京市天气数据分析系统的设计与实现
【Flask】基于Flask的北京市天气数据分析系统的设计与实现(完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 该系统采用Python和Flask框架,结合Pandas、NumPy等数据处理库及Echarts进…...
20250214在ubuntu20.04下使用obs studio录制外挂的1080p的USB摄像头【下载安装】
20250214在ubuntu20.04下使用obs studio录制外挂的1080p的USB摄像头 2025/2/14 9:10 缘起:笔记本电脑在ubuntu20.04下使用Guvcview录制自带的摄像头,各种问题。 1、降帧率。WIN10/11自带的相机应用可以满速30fps,马上重启到ubuntu20.04&#…...
OpenEuler学习笔记(三十):在OpenEuler上搭建3D建模环境
在OpenEuler上搭建3D建模环境,通常可以选择一些常见的3D建模软件,如Blender、FreeCAD等。以下以搭建Blender和FreeCAD这两款软件的使用环境为例,为你详细介绍搭建步骤。 搭建Blender 3D建模环境 1. 更新系统软件包 首先,确保系…...