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

AI作曲DiffRhythm原理及本地部署

1.原理简介

最近AI在音乐生成方面的进展引起了极大的关注,但现有的方法面临着严重的限制。一些当前的生成模型只能合成人声或伴奏轨道。虽然一些模型可以生成组合的人声和伴奏,但它们通常依赖于精心设计的多阶段级联架构和复杂的数据管道,阻碍了可扩展性。此外,大多数系统仅限于生成短音乐片段而不是全长歌曲。此外,广泛使用的基于语言模型的方法受到推理速度慢的困扰。DiffRhythm是第一个基于潜在扩散模型的歌曲生成模型,能够在短短 10 秒内合成具有人声和伴奏的完整歌曲,持续时间长达 4m45s,保持高音乐性和可理解性。

尽管 DiffRhythm 具有卓越的功能,但它的设计简单而优雅:它无需复杂的数据准备,采用简单的模型结构,并且在推理过程中只需要歌词和样式提示。此外,其非自回归结构确保了快速的推理速度。这种简单性保证了 DiffRhythm 的可扩展性。

模型结构如下:

image-20250314161556143

有兴趣的同学可以阅读这篇论文:DiffRhythm: Blazingly Fast and Embarrassingly Simple
End-to-End Full-Length Song Generation with Latent Diffusion。

image-20250314161748615

简单总结一下原理:

DiffRhythm 是一种基于潜在扩散的端到端歌曲生成模型,它能够以 44.1 kHz 的采样率生成长达 4 分 45 秒的完整立体声音乐作品,并通过歌词和风格提示进行引导。该模型的主要特点如下:

  • 端到端生成: 与许多现有模型不同,DiffRhythm 能够同时生成人声和伴奏,无需复杂的级联架构或数据管道。
  • 简单高效: 模型结构简洁,数据预处理简单,推理速度快,使其易于扩展和应用。
  • 高质量输出: 即使生成完整的歌曲,DiffRhythm 也能保持高水平的音乐性和可理解性。

DiffRhythm 的关键组件

  • 变分自动编码器 (VAE): 用于学习音频的紧凑潜在表示,同时保留感知音频细节,从而降低扩散模型训练的计算需求。

  • 扩散 Transformer (DiT): 在 VAE 学习到的潜在空间中生成歌曲,通过迭代去噪的方式完成。具体过程如下:初始化: DiT 接收来自 VAE 编码器的潜在表示作为输入,并添加随机噪声。条件输入: DiT 的输入除了潜在表示外,还包括风格提示、时间步长和歌词信息。风格提示用于控制歌曲的风格,时间步长指示当前的去噪步骤,歌词用于控制人声内容。Transformer 解码器: DiT 由多个 LLaMA 解码器层堆叠而成,每个层包含注意力机制和前馈网络。去噪: 在每个时间步长,DiT 预测潜在表示中噪声的分布,并使用该分布更新潜在表示,逐步去除噪声。重复步骤: DiT 重复进行注意力机制和前馈网络计算,以及去噪步骤,直到潜在表示中的噪声被完全去除,最终生成完整的歌曲。

  • 歌词到潜在对齐机制: 用于解决全歌曲生成中的歌词和人声对齐问题,通过句级对齐方式实现高可理解性。具体步骤为:歌词预处理: 将歌词转换为音素序列,并与时间戳信息关联起来。音素到潜在对齐:初始化一个与潜在表示等长的潜在对齐序列,将其转换为音素序列。将音素序列覆盖到 对应的时间位置。

2.安装部署

安装需要的库:

sudo apt-get install espeak-ng

克隆项目:

git clone https://github.com/ASLP-lab/DiffRhythm.git
cd DiffRhythm

创建虚环境:

conda create -n diffrhythm python=3.10
conda activate diffrhythm

安装依赖:

pip install -r requirements.txt

简单运行源码示例:

bash scripts/infer_wav_ref.sh

或者输入提示进行音乐创作:

bash scripts/infer_prompt_ref.sh

用文字prompts示例:

azzy Nightclub Vibe, Pop Emotional Piano or Indie folk ballad, coming-of-age themes, acoustic guitar picking with harmonica interludes

无需音频参考!

生成纯音乐:

"Arctic research station, theremin auroras dancing with geomagnetic storms"  

3.编写图形界面

源码没有带着图形界面,使用不方便,这里我用gradio写了一个简单的界面:

import gradio as gr
import subprocess
import os
import shutil
from datetime import datetime
import sys sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
# 配置参数
OUTPUT_DIR = "gradio_outputs"
os.makedirs(OUTPUT_DIR, exist_ok=True)def generate_music(lrc_text,ref_audio,ref_prompt,use_chunked
):"""核心音乐生成函数"""# ====== 输入验证 ======# 处理歌词输入if not lrc_text.strip():raise gr.Error("❗ 请输入歌词内容")lrc_content = lrc_text# 验证风格输入if not (ref_audio or ref_prompt):raise gr.Error("❗ 需要音频参考或文字描述")if ref_audio is not None and ref_prompt.strip() != "":raise gr.Error("❗ 请选择音频参考或文字描述中的一种方式")# ====== 创建临时目录 ======timestamp = datetime.now().strftime("%Y%m%d%H%M%S")temp_dir = os.path.join(OUTPUT_DIR, timestamp)os.makedirs(temp_dir, exist_ok=True)try:# ====== 保存歌词文件 ======lrc_path = os.path.join(temp_dir, "input.lrc")with open(lrc_path, "w", encoding="utf-8") as f:f.write(lrc_content)# ====== 处理参考音频 ======ref_audio_path = Noneif ref_audio:if isinstance(ref_audio, dict):  # 适配新版Gradioref_audio_path = ref_audio["name"]else:ref_audio_path = ref_audioref_prompt = ""  # 强制清空文字描述# 验证逻辑if not ref_audio_path and not ref_prompt.strip():raise gr.Error("❗ 必须提供参考音频或风格描述!")if ref_audio_path and ref_prompt.strip():raise gr.Error("❗ 请选择一种风格参考方式!")# ====== 构建执行命令 ======cmd = ["python3", "infer/infer.py","--lrc-path", lrc_path,"--audio-length", "95","--repo_id", "ASLP-lab/DiffRhythm-base","--output-dir", temp_dir]if use_chunked:cmd.append("--chunked")if ref_audio_path:cmd += ["--ref-audio-path", ref_audio_path]else:cmd += ["--ref-prompt", ref_prompt]# ====== 执行生成命令 ======result = subprocess.run(cmd,capture_output=True,text=True,check=True)# ====== 获取输出结果 ======output_path = os.path.join(temp_dir, "output.wav")if not os.path.exists(output_path):raise FileNotFoundError("生成结果文件不存在")# 返回两个相同的路径给音频组件和文件下载组件return output_path, output_pathexcept subprocess.CalledProcessError as e:error_detail = f"""🚨 生成失败!命令: {' '.join(e.cmd)}错误信息: {e.stderr}"""raise gr.Error(error_detail)except Exception as e:raise gr.Error(f"🚨 发生未知错误: {str(e)}")# ====== 界面布局 ======
with gr.Blocks(title="AI音乐工作室", theme=gr.themes.Soft(), css=".dark {background: #f0f2f6}") as demo:gr.Markdown("""<div style="text-align: center; padding: 20px;"><h1 style="color: #2563eb;">🎵 AI音乐工作室</h1><p style="color: #4b5563;">通过人工智能生成个性化音乐作品</p></div>""")with gr.Row(variant="panel"):# 输入区with gr.Column(scale=1):# 歌词输入lrc_text = gr.Textbox(label="直接输入歌词(LRC格式)",placeholder="""示例格式:
[00:00.00] 开始你的音乐之旅
[00:05.00] 用代码创造旋律
[00:10.00] 人工智能生成音乐""",lines=8,max_lines=20,visible=True)# 风格控制区with gr.Tabs():with gr.Tab("🎧 音频参考"):ref_audio = gr.Audio(label="上传参考音频(支持WAV/MP3)",type="filepath",sources=["upload"],waveform_options={"show_controls": True})with gr.Tab("📝 文字描述"):ref_prompt = gr.Textbox(label="音乐风格描述(英文)",placeholder="例如:epic orchestral, dramatic strings, choir vocals",lines=3)# 高级选项with gr.Accordion("⚙️ 高级设置", open=False):use_chunked = gr.Checkbox(label="启用分块解码(推荐生成长音频)",value=True)generate_btn = gr.Button("🚀 开始生成", variant="primary")# 输出区with gr.Column(scale=1):gr.Markdown("### 🎧 生成结果")audio_output = gr.Audio(label="试听音频",interactive=False,waveform_options={"show_controls": True})output_file = gr.File(label="下载文件",file_types=[".wav"],visible=True)# ====== 交互逻辑 ======generate_btn.click(fn=generate_music,inputs=[lrc_text, ref_audio, ref_prompt, use_chunked],outputs=[audio_output, output_file])# ====== 启动应用 ======
if __name__ == "__main__":demo.launch(server_name="0.0.0.0",server_port=7860,show_error=True,share=False)

image-20250314161231315

4.测试

用DeepSeek按照DiffRhythm要求的风格生成歌词,prompts:

请你帮我生成一首能用于作曲的歌词,表现出大学生积极向上,热爱学习,报效祖国的斗志。为了使生成的歌词能用于后面作曲,请你参考如下格式作词,格式参考如下:“00:16.53]我一大早 起不来
[00:19.82]我的眼睛 都没睁开
[00:22.69]蝴蝶 都飞起来
[00:26.61]畅快
[00:28.18]忽然听见
[00:29.20]好听的音乐
[00:32.35]就继续用力
[00:33.29]闭上 我的眼睛 baby
[00:39.37]这音乐 太动听 我怎么办
[00:43.05]我太开心 所有烦恼 被洗干净
[00:51.61]我一大早 就起来
[00:54.85]我的声音 都没放开
[00:57.79]歌声 却飞起来
[01:26.28]一道光 两支花 三个人 四分五裂
[01:29.58]六六大顺 七上八下”

生成的歌词:

# 青春的旋律
[00:00.00]清晨的阳光 洒在脸上
[00:03.25]唤醒沉睡的 梦想
[00:06.45]校园里回荡 知识的声浪
[00:09.70]我们心向远方
[00:12.90]教室里的灯光 闪烁希望
[00:16.15]书本散发墨香
[00:19.35]智慧的种子 在心中生长
[00:22.60]未来由我们开创
[00:25.80]实验室里 探索真相
[00:29.05]代码在指尖流淌
[00:32.25]创新的火花 点亮夜的迷茫
[00:35.50]真理等待丈量
[00:38.70]运动场 上挥洒汗水
[00:41.95]青春的力量无法掩盖
[00:45.15]团结拼搏 是我们的风采
[00:48.40]梦想展翅豪迈
[00:51.60]啊 祖国母亲 我们时刻准备着
[00:54.85]用知识为您添砖加瓦
[00:58.05]在时代的舞台上大放光芒
[01:01.30]让世界见证我们的力量

风格设置为:

Inspirational Rock

上传参考音频重新作曲,这里我用的是“那条街”做参考音频:

相关文章:

AI作曲DiffRhythm原理及本地部署

1.原理简介 最近AI在音乐生成方面的进展引起了极大的关注&#xff0c;但现有的方法面临着严重的限制。一些当前的生成模型只能合成人声或伴奏轨道。虽然一些模型可以生成组合的人声和伴奏&#xff0c;但它们通常依赖于精心设计的多阶段级联架构和复杂的数据管道&#xff0c;阻…...

农业电商|基于SprinBoot+vue的农业电商服务系统(源码+数据库+文档)

农业电商服务系统 目录 基于SprinBootvue的农业电商服务系统 一、前言 二、系统设计 三、系统功能设计 5.1系统功能实现 5.2后台模块实现 5.2.1管理员模块实现 5.2.2商家模块实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码…...

深度学习有哪些算法?

深度学习包含多种算法和模型&#xff0c;广泛应用于图像处理、自然语言处理、语音识别等领域。以下是主要分类及代表性算法&#xff1a; 一、基础神经网络 多层感知机&#xff08;MLP&#xff09; 最简单的深度学习模型&#xff0c;由多个全连接层组成&#xff0c;用于分类和回…...

鸿蒙开发-一多开发之媒体查询功能

在HarmonyOS中&#xff0c;使用ArkTS语法实现响应式布局的媒体查询是一个强大的功能&#xff0c;它允许开发者根据不同的设备特征&#xff08;如屏幕尺寸、屏幕方向等&#xff09;动态地调整UI布局和样式。以下是一个使用媒体查询实现响应式布局的实例&#xff1a; 1. 导入必要…...

历年华中科技大学计算机考研复试上机真题

历年华中科技大学计算机考研复试上机真题 2022华中科技大学计算机考研复试上机真题 2021华中科技大学计算机考研复试上机真题 2019华中科技大学计算机考研复试上机真题 在线评测&#xff1a;https://pgcode.cn 八进制 题目描述 输入一个整数&#xff0c;将其转换成八进制数…...

卷积神经网络(CNN)的主要架构

卷积神经网络&#xff08;CNN, Convolutional Neural Networks&#xff09;是深度学习中最重要的模型之一&#xff0c;广泛应用于计算机视觉、目标检测、语义分割等任务。自 LeNet 诞生以来&#xff0c;CNN 结构经历了多个重要发展阶段&#xff0c;出现了许多经典架构&#xff…...

IDEA:项目结构不见了,项目文件消失解决

IDEA&#xff1a;看不见目录结构了。 1、确认项目是否仍存在&#xff1a;检查项目文件夹是否仍然存在于磁盘上。如果项目文件夹被删除或移动了&#xff0c;您需要将其还原或重新导入到IDEA中。 2、重新导入项目&#xff1a;如果项目文件存在&#xff0c;在 IDEA 中找到项目文…...

基于ssm的宠物医院信息管理系统(全套)

一、系统架构 前端&#xff1a;html | layui | vue | element-ui 后端&#xff1a;spring | springmvc | mybatis 环境&#xff1a;jdk1.8 | mysql | maven | tomcat | idea | nodejs 二、代码及数据库 三、功能介绍 01. web端-首页1 02. web端-首页…...

How to install a package in offline scenario in Ubuntu 24.04

概述 做过信创项目的兄弟们在工作上每天可能面对很多需要解决的问题&#xff0c;不过&#xff0c;有一类问题可能是大家经常遇的&#xff0c;比方说&#xff0c;有时候我们不得不硬着头皮在离线生产环境中安装某些软件包&#xff0c;相信很多兄弟被这种细碎的小事搞得焦头烂额…...

将pdf或者word转换成base64格式

废话不多说直接上代码&#xff1a; function fileToBase64(file) {return new Promise((resolve, reject) > {const reader new FileReader();reader.readAsDataURL(file);reader.onload function (event) {const base64Data event.target.result.split(,)[1];resolve(b…...

使用Nodejs基于DeepSeek加chromadb实现RAG检索增强生成 本地知识库

定义 检索增强生成&#xff08;RAG&#xff09;的基本定义 检索增强生成&#xff08;Retrieval-Augmented Generation&#xff0c;简称RAG&#xff09;是一种结合了信息检索技术与语言生成模型的人工智能技术。RAG通过从外部知识库中检索相关信息&#xff0c;并将其作为提示&…...

乐观锁VS分布式锁实现抢单服务

司机开始接单&#xff0c;乘客填写出发地——目的地&#xff0c;开始下单 service-order模块 Operation(summary"司机抢单") GetMapping("/robNewOrder/{driverId}/{orderId}") public Result<Boolean> robNewOrder(PathVariable Long driverId,P…...

通过特征值和特征向量实现的图像压缩和特征提取

前文&#xff0c;我们在学习人工智能的线性代数基础的时候&#xff0c;就了解到&#xff0c;矩阵在人工智能中被广泛使用&#xff0c;接下来我们就从大家非常常见的图像开始&#xff0c;深度理解矩阵在人工智能中的应用。有关线性代数基础的文章可以看的我CSDN:人工智能中的线性…...

ranger集成starrock报错

org.apache.ranger.plugin.client.HadoopException: initConnection: Unable to connect to StarRocks instance, please provide valid value of field : {jdbc.driverClassName}.. com.mysql.cj.jdbc.Driver. 可能的原因 JDBC 驱动缺失&#xff1a;运行环境中没有安装 MySQL …...

第J2周:ResNet50V2算法实现01(Tensorflow硬编码版)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 目标 使用tensorflow实现ResNetV50V2的网络结构。本次根据第一层的细节手动硬编码&#xff0c;没有任何的优化&#xff0c;只为了更好的理解细节。 目录结构&…...

论文分享 | HE-Nav: 一种适用于复杂环境中空地机器人的高性能高效导航系统

阿木实验室始终致力于通过开源项目和智能无人机产品&#xff0c;为全球无人机开发者提供强有力的技术支持&#xff0c;并推出了开源项目校园赞助活动&#xff0c;助力高校学子在学术研究与技术创新中取得更大突破。近日&#xff0c;香港大学王俊铭同学&#xff0c;基于阿木实验…...

【mysql】centOS7安装mysql详细操作步骤!—通过tar包方式

【mysql】centOS7安装mysql详细操作步骤&#xff01; linux系统安装mysql版本 需要 root 权限&#xff0c;使用 root 用户进行命令操作。使用tar文件包&#xff0c;安装&#xff0c;gz包也可以但是还需要配置用户&#xff0c;tar包虽然大&#xff0c;但是全啊&#xff01; 1. …...

java学习笔记1

程序编译步骤 java程序执行步骤 相关代码及解释&#xff1a; /* 对第一个java程序进行总结 1. java程序编写-编译-运行的过程 编写&#xff1a;我们将编写的java代码保存在以".java"结尾的源文件中 编译&#xff1a;使用javac.exe命令编译我们的java源文件。格式&am…...

强大的数据库DevOps工具:NineData 社区版

本文作者司马辽太杰&#xff0c; gzh&#xff1a;程序猿读历史 在业务快速变化与数据安全日益重要的今天&#xff0c;生产数据库变更管理、版本控制、数据使用是数据库领域的核心挑战之一。传统的解决方式往往采用邮件或即时通讯工具发起审批流程&#xff0c;再通过堡垒机直连数…...

「Unity3D」UGUI运行时设置元素的锚点Anchor,维持元素Rect的显示不变,即待在原处

在编辑器中&#xff0c;通过设置Raw edit mode&#xff0c;可以切换两种&#xff0c;元素锚点的改变模式&#xff1a; 一种是锚点单独改变&#xff0c;即&#xff1a;不开启原始模式&#xff0c;保持原样&#xff0c;改变anchoredPosition与sizeDelta。一种是锚点联动显示&…...

深入解析大语言模型的 Function Call 实现—— 以 Qwen2.5为例

引言 在现代大语言模型&#xff08;LLM&#xff09;中&#xff0c;Function Call&#xff08;函数调用&#xff09;能力极大地提升了模型的实用性&#xff0c;使其能够调用外部 API、执行复杂计算或获取实时数据。例如&#xff0c;在 OpenAI API 和 Qwen2.5-7B-Instruct 这样的…...

鸿蒙路由 HMrouter 配置及使用一

1、学习链接 HMRouter地址 https://gitee.com/hadss/hmrouter/blob/dev/HMRouterLibrary/README.md 2、工程配置 下载安装 ohpm install hadss/hmrouter 添加编译插件配置 在工程目录下的build-profile.json5中&#xff0c;配置useNormalizedOHMUrl属性为true (我这项目创…...

驾驭 DeepSeek 科技之翼,翱翔现代学习新天际

在当今这个信息爆炸的时代&#xff0c;学习的方式和途径正在经历着前所未有的变革。人工智能技术的飞速发展&#xff0c;为我们的学习带来了全新的机遇和挑战。DeepSeek 作为一款强大的大语言模型&#xff0c;凭借其卓越的性能和丰富的功能&#xff0c;为现代学习注入了新的活力…...

[Windows] 轻量级景好鼠标录制器 v2.1 单文件版,支持轨迹+鼠标键盘录制复刻

[Windows] 轻量级景好鼠标录制器 链接&#xff1a;https://pan.xunlei.com/s/VOLHz0rPyqdhV4bgyTYuW6W7A1?pwd98uj# 软件特性&#xff1a; 高效播放控制&#xff1a;动作间隔优化至100 ms&#xff0c;进度条可视化&#xff0c;支持随机循环/多次播放。 深度自定义&#xff1…...

C#生产型企业ERP系统管理软件PCB行业ERP进销存MRP管理系统BOM管理

背景 本软件为为苏州某生产型电子科技企业开发的ERP管理软件。 功能说明 希哲管理系统v1.0是一款在流览器上使用的企业管理软件&#xff0c;使用上与客户端版的优势是&#xff1a; 1.安装更新部署方便&#xff0c;只需服务器部署了软件&#xff0c;其它客户端的用户无需安装&am…...

【Linux内核系列】:文件系统

&#x1f525; 本文专栏&#xff1a;Linux &#x1f338;作者主页&#xff1a;努力努力再努力wz ★★★ 本文前置知识&#xff1a; 文件系统初识 那么在我们此前关于文件的学习中&#xff0c;我们学习的都是进程与打开的文件之间的关系&#xff0c;以及打开的文件如何进行管理…...

工程化与框架系列(35)--前端微服务架构实践

前端微服务架构实践 &#x1f3d7;️ 引言 随着前端应用规模的不断扩大&#xff0c;微服务架构在前端领域的应用越来越广泛。本文将深入探讨前端微服务架构的实现方案、最佳实践和相关工具。 微服务架构概述 前端微服务架构主要包括以下方面&#xff1a; 应用拆分&#xf…...

多条件下的免杀webshell

前言 在做webshell免杀的时候&#xff0c;很多情况下都是对system,eval等命令执行函数进行匹配&#xff0c;如果说把变量当做一个函数来使用的话&#xff0c;那是不是可以bypass了呢&#xff1f;这今天刚好看见有一个回调函数有这样的功能&#xff0c;而且也不会报毒&#xff…...

【算法】动态规划

⭐️个人主页&#xff1a;小羊 ⭐️所属专栏&#xff1a;Linux 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 动态规划总结1、常见动态规划Fibonacci数列杨辉三角最小花费爬楼梯孩子们的游戏 2、组合方案李白打酒加强版&#xff08;lqb&…...

MySQL事务及索引复习笔记

本文参考小林coding&#xff0c;地址事务隔离级别是怎么实现的&#xff1f; | 小林coding 事务 一、事务是什么&#xff1f; 比如一个程序是转账&#xff0c;你要扣减a的余额&#xff0c;增加b的余额&#xff0c;但是如果程序执行扣减成功然后挂了&#xff0c;就会出现a的余额…...

API调用大模型推理与第三方API实现业务整合

基于Python实现大模型推理与第三方API调用的集成&#xff0c;需要结合Function Call机制与提示词工程。 一、技术架构设计 双阶段流程 推理阶段&#xff1a;大模型解析用户意图&#xff0c;生成结构化API调用指令执行阶段&#xff1a;Python代码解析指令并触发第三方API # 示例…...

GreenKGC: A Lightweight Knowledge Graph Completion Method(论文笔记)

CCF等级&#xff1a;A 发布时间&#xff1a;2023年7月 代码位置 25年3月17日交 目录 一、简介 二、原理 1.整体 2.表示学习 3.特征修剪 4.决策学习 三、实验性能 1.主要结果 2.消融实验 四、结论和未来工作 一、简介 传统知识图谱补全方法中&#xff0c;嵌入维度…...

Android Composable 与 View 的联系和区别

在 Android 开发中&#xff0c;‌Composable‌&#xff08;Jetpack Compose&#xff09;与‌View‌&#xff08;传统 View 系统&#xff09;是两种不同的 UI 构建范式。本文将从核心联系、核心区别、代码实现三方面展开对比&#xff0c;并通过实例代码帮助开发者理解其应用场景…...

微信小程序wx.request接口报错(errno: 600001, errMsg: “request:fail -2:net::ERR_FAILED“)

来看看报错 报错如下: 请求发送部分,代码如下: uni.request({url: self.serverUrl "/getRealName",method: GET,data: {"code": self.info.code,},header: {"Authorization": uni.getStorageSync(tokenHead) uni.getStorageSync(token)}}…...

多线程与并发编程 面试专题

多线程与并发编程 面试专题 线程的基础概念基础概念线程的创建线程的状态线程的终止方式start 与 run 区别线程的常用方法 锁锁的分类深入synchronized深入ReentrantLock死锁问题 阻塞队列线程池 线程的基础概念 基础概念 进程与线程 进程&#xff1a;指运行中的程序。 比如我…...

大语言模型-1.2-大模型技术基础

简介 本博客内容是《大语言模型》一书的读书笔记&#xff0c;该书是中国人民大学高瓴人工智能学院赵鑫教授团队出品&#xff0c;覆盖大语言模型训练与使用的全流程&#xff0c;从预训练到微调与对齐&#xff0c;从使用技术到评测应用&#xff0c;帮助学员全面掌握大语言模型的…...

【C++】每日一练(轮转数组)

本篇博客给大家带来的是用C语言来解答轮转数组&#xff01; &#x1f41f;&#x1f41f;文章专栏&#xff1a;每日一练 &#x1f680;&#x1f680;若有问题评论区下讨论&#xff0c;我会及时回答 ❤❤欢迎大家点赞、收藏、分享&#xff01; 今日思想&#xff1a;不服输的少年啊…...

dify本地源码win10部署

我的win10版本还比较老&#xff0c;winR&#xff0c;输入winver 只要高于我这个版本的都没啥大问题吧&#xff0c;我的安装docker Desktop&#xff0c;搞死人了&#xff0c; 就是win10的Win10 22H2 64之前的版本 win10低版本安装&#xff0c;里面包含wdl2安装程序 https://…...

Spring Cloud Config - 动态配置管理与高可用治理

引言&#xff1a;为什么需要配置中心&#xff1f; 在微服务架构中&#xff0c;配置管理面临分散化、多环境、动态更新三大挑战。传统基于application.yml等配置文件的硬编码方式&#xff0c;导致以下问题&#xff1a; • 环境差异&#xff1a;开发、测试、生产环境配置混杂&a…...

大模型最新面试题系列:微调篇之微调框架(一)

一. 在DeepSpeed中配置零冗余优化&#xff08;ZeRO&#xff09;实现显存优化的步骤 核心原理 ZeRO通过分片&#xff08;Sharding&#xff09;技术将模型参数、梯度和优化器状态分布到多卡&#xff0c;消除冗余存储。三个阶段逐步减少显存占用&#xff1a; Stage 1&#xff1…...

windows第十三章 GDI绘图技术

文章目录 GDI绘图函数介绍设备上下文函数m_hDC GDI对象画笔画刷位图字体区域 案例分享 GDI绘图函数介绍 绘图函数在CDC类里 设备上下文 DC:device context 设备上下文&#xff0c;显卡驱动程序&#xff0c;控制硬件&#xff0c;每个厂商的都不同&#xff0c;操作系统层面&am…...

使用 Nginx 进行前端灰度发布的策略与实践

1. 引言 灰度发布的概念 灰度发布&#xff0c;也称为金丝雀发布&#xff0c;是一种软件发布策略&#xff0c;通过向一小部分用户群体逐步推出新版本&#xff0c;收集反馈并监控性能&#xff0c;以确保新版本在大规模部署前不会出现问题。这种方法可以有效降低发布风险&#x…...

有了大语言模型还需要 RAG 做什么

一、百炼平台简介 阿里云的百炼平台就像是一个超级智能的大厨房&#xff0c;专门为那些想要做出美味AI大餐的企业和个人厨师准备的。你不需要从头开始做每一道菜&#xff0c;因为这个厨房已经为你准备了很多预制食材&#xff08;预训练模型&#xff09;&#xff0c;你可以根据…...

pytest快速入门 - 目录:半天掌握pytest

1 pytest快速入门 - 目录 本系列文章将快速的带领用户进入pytest领域&#xff0c;通过阅读本专栏&#xff0c;用户将可以熟练掌握pytest的基本用法&#xff0c;同时对测试前置条件的构造、后置条件的清理等有较深入的了解&#xff0c;特别是后置条件的执行完备度有一个认识。 …...

2.4 python网络编程

在当今数字化的时代&#xff0c;网络连接着世界的每一个角落。从简单的网页浏览到复杂的分布式系统&#xff0c;网络编程无处不在。Python 作为一种功能强大且易于学习的编程语言&#xff0c;在网络编程领域占据着重要的地位。它丰富的库和简洁的语法使得开发者能够高效地构建各…...

网络变压器的主要电性参数与测试方法(4)

Hqst盈盛&#xff08;华强盛&#xff09;电子导读&#xff1a;网络变压器的主要电性参数与测试方法&#xff08;4&#xff09;.. 今天我们继续来看看网络变压器的2个重要电性参数与它的测试方法&#xff1a; 1.反射损耗&#xff08;Return loss&…...

【Springboot知识】开发属于自己的中间件健康监测HealthIndicate

文章目录 **一、技术栈****二、项目结构****三、依赖配置 (pom.xml)****四、配置文件 (application.yml)****五、自定义健康检查实现****1. Redis健康检查****2. Elasticsearch健康检查****3. Kafka健康检查****4. MySQL健康检查** **六、自定义健康检查接口 (可选)****七、测试…...

蓝桥杯备赛-二分-技能升级

问题描述 小蓝最近正在玩一款 RPG 游戏。他的角色一共有 NN 个可以加攻击力的技能。 其中第 ii 个技能首次升级可以提升 AiAi​ 点攻击力, 以后每次升级增加的点数 都会减少 Bi。「AiBi⌉Bi​。「Bi​Ai​​⌉ (上取整) 次之后, 再升级该技能将不会改变攻击力。 现在小蓝可以…...

【GPT入门】第18课 langchain介绍与API初步体验

【GPT入门】langchain第一课 langchain介绍与API初步体验 1. langchain介绍定义特点1. 模块化与灵活性2. 链式调用机制3. 数据连接能力4. 记忆管理功能5. 提示工程支持6. 可扩展性 2.langchain核心组件架构图3. 最简单的helloworld入门 1. langchain介绍 LangChain 是一个用于…...

Django部署Filemanagement

Pycharm搭建项目安装虚拟环境 mysqlclient对mysql的安装&#xff0c;配置有要求 pymsql伪装成mysqlclient&#xff0c;pymysql可以操纵mysql pip install pymysql操作sql5.7 mysql8.0会出现与pycharm不兼容问题&#xff0c;会报错&#xff0c;所以降到5.7 # 进入mysql 需要…...