自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(355)
  • 资源 (5)
  • 收藏
  • 关注

原创 《大模型AIGC系列课程》大纲

第1章:初识大语言模型(LLM)第3章:LLM推理与训练。第2章:LLM与智能体。

2023-09-05 11:46:30 3410 1

原创 【Dify(v1.x) 核心源码深入解析】Code Executor 模块

Dify 的 Code Executor 模块是一个功能强大且灵活的工具,它支持多种编程语言,提供了安全的代码执行环境,并通过模板转换器和代码提供者简化了代码执行的流程。本文详细介绍了 Code Executor 模块的各个核心组件及其协作方式,希望能帮助读者更好地理解和使用这一模块。

2025-04-30 13:55:11 18

原创 【Dify(v1.x) 核心源码深入解析】File 模块

文件模型(File Model)定义了文件的核心属性,如文件类型、传输方法、相关标识符等,是整个文件处理流程的数据基础。文件解析器(UploadFileParser)负责解析上传的文件,根据配置决定以何种方式(URL 或 Base64)提供图像数据。工具文件解析器(ToolFileParser)专注于工具文件的管理,提供工具文件管理器的获取接口。签名验证与生成(helpers.py)包含文件 URL 签名的生成与验证逻辑,确保文件访问的安全性。文件管理器(file_manager.py)

2025-04-30 13:32:00 167

原创 【Dify(v1.x) 核心源码深入解析】errors、extension 和 external_data_tool 模块

通过对 Dify 中 errors、extension 和 external_data_tool 模块的深入剖析,我们不仅了解了其各个模块内部的精细结构和工作原理,还掌握了它们之间的关联与协同机制。这些模块为 Dify 应用提供了强大的错误处理、灵活的扩展能力和便捷的外部数据集成支持,是构建现代化、高性能软件系统的重要基石。希望本文的讲解能够帮助您更好地理解和运用 Dify,激发您在软件开发领域的更多创意和实践。

2025-04-24 13:27:58 58

原创 【Dify(v1.x) 核心源码深入解析】callback handler 和 entities 模块

Callback handler 是 Dify 中用于处理工具调用、代理行为和流程控制的核心组件。捕获工具调用的开始、结束和错误事件。记录工具的输入、输出和执行时间。提供调试信息和日志输出。支持扩展功能,如追踪工具调用的上下文和结果。Entities 模块定义了 Dify 中的各种数据结构和实体类,用于描述模型、提供者、工具和配置等。这些类是 Dify 的核心数据模型,提供了统一的接口和结构。

2025-04-23 14:28:22 31

原创 【Dify(v1.x) 核心源码深入解析】App 模块:Entities、Features 和 Task Pipeline

Dify 是一个功能强大的 AI 应用开发框架,它通过模块化设计和灵活的任务处理机制,帮助开发者快速构建智能应用。在这篇文章中,我们将深入解析 Dify 的三个核心模块:Entities(实体)、Features(功能)和 Task Pipeline(任务管道)。通过详细的代码解读和示例,帮助你全面理解 Dify 的架构设计和实现细节。Entities 是 Dify 中用于表示核心数据结构的模块。它定义了各种实体类,用于封装应用生成、工作流、消息等数据。

2025-04-23 13:27:30 44

原创 【Dify(v1.x) 核心源码深入解析】Apps 模块

Dify 的 Apps 模块通过工作流和任务管道实现了复杂业务逻辑的处理。它通过事件驱动的方式协调任务的执行,支持流式输出和阻塞模式。通过合理的数据库连接管理和任务优化,可以确保系统的高性能和高可用性。希望本文能帮助你深入理解 Dify 的 Apps 模块,并在实际项目中灵活应用。如果你有任何疑问或建议,欢迎随时与我们交流!

2025-04-22 17:25:57 235

原创 问题修复记录:Dify Docker Sandbox 指定Pip源 与 代码运行无权限 问题

在 volumes/sandbox/dependencies/python-requirements.txt 文件里面添加需要的包就行。这是由于 Dify 使用 sandbox 沙盒化容器执行工作流代码时,采用白名单策略对容器内的系统调用进行了限制,只允许运行特定的系统调用,从而确保不会出现意外的绕过。在 sandbox 的环境变量里添加了 PIP_MIRROR_URL,容器启动后就会在指定的源下载Pip包了。容器内是用 PIP_MIRROR_URL 环境变量指定源的。

2025-04-18 17:56:17 456

原创 【Dify(v1.x) 核心源码深入解析】App Config 模块

Dify 的 App Config 模块是一个复杂但非常强大的配置管理系统。它通过一系列的管理类和实体类,实现了对模型配置、数据集配置、提示模板配置以及其他功能配置的全面管理。通过本文的详细解析,你应该能够理解 App Config 模块的架构设计、功能实现以及如何通过代码实现各种配置的转换和验证。希望这些内容能帮助你在使用 Dify 时更好地理解和利用这个模块。功能模块主要功能关键类模型配置管理管理模型的提供者、名称、模式和参数数据集配置管理管理数据集的检索策略、过滤条件等提示模板配置管理。

2025-04-17 14:26:05 92

原创 问题修复记录:CUDA 11 Flash-Attention 安装

另外,ABI两个版本的 flash_attn 包的区别在于它们的编译选项,特别是关于 cxx11 ABI(Application Binary Interface)的设置,这影响到包的二进制兼容性。CUDA 11 去 github releases 需要找具体的版本。

2025-04-17 11:30:14 338

原创 【Dify(v1.x) 核心源码深入解析】Agent 模块

Agent 模块是 Dify 中负责处理用户请求的核心组件。接收用户输入并解析请求。根据请求内容调用合适的工具或模型。生成响应并返回给用户。管理整个交互流程,包括工具调用、消息处理和状态管理。通过本文的详细解析,我们深入了解了 Dify 的 Agent 模块的架构设计和实现细节。Agent 模块通过灵活的策略、丰富的工具、高效的消息处理和状态管理,为开发者提供了一个强大的 AI 应用开发平台。希望本文能帮助你更好地理解和使用 Dify 的 Agent 模块。更智能的策略。

2025-04-15 14:02:23 327

原创 中医名医 AI 个人大脑(LLM)技术方案详解

随着人工智能技术的飞速发展,越来越多的领域开始探索如何将AI与传统行业深度融合。中医作为中国传统文化的重要组成部分,其传承与发展一直面临诸多挑战。《中医名医 AI 个人大脑(LLM)技术方案》旨在通过AI技术为每位名医打造个性化大脑,实现中医知识的沉淀、传承与创新。

2025-04-15 12:04:28 60

原创 【斯坦福】【ICLR】RAPTOR:基于树结构的检索增强技术详解

上图展示了 RAPTOR 树的构建过程。从叶节点(文本块)开始,通过递归地嵌入、聚类和摘要,构建出一个多层次的树状结构。每个父节点包含其子节点的摘要,从而形成了不同抽象层次的表示。RAPTOR 的核心思想是利用文本摘要来允许在不同尺度上进行检索增强,从而有效地处理长文档。文本分割与嵌入:将检索语料库分割成短文本块(约 100 个 token),并使用 SBERT(Sentence-BERT)对这些文本块进行嵌入,形成叶节点。聚类与摘要:对嵌入后的文本块进行聚类,然后使用语言模型对每个聚类生成摘要。

2025-03-28 11:51:48 1045

原创 RAG技术深度解析:从基础Agent到复杂推理Deep Search的架构实践

在自然语言处理领域,传统问答系统往往面临两大难题:如何突破模型知识边界?如何保障回答的可信度?RAG(Retrieval-Augmented Generation)架构应运而生。而当我们以工程视角实现RAG时,就需要一个标准化的载体——RAG Agent。

2025-03-07 13:18:55 1162

原创 DeepSeek-R1/Zero、RL GRPO以及蒸馏过程详解

传统方法:老师先教 1000 道例题(SFT 数据),学生模仿练习。R1-Zero 方法:直接扔给学生 100 万道题,配一台“自动批改机”。学生自己摸索解法,机器实时反馈对错。最终,学生总结出一套高效的解题套路,甚至超越老师教的答案。这就是 R1-Zero 的核心——让 AI 在“题海战术+自动批改”中自我顿悟。传统做法:召集全国名师手写答案 → 耗时十年,成本爆炸。AI 辅助做法Step1:请 10 位名师写 100 道标准答案(冷启动数据)。Step2。

2025-02-11 15:32:55 1716

原创 问题修复记录:Xinference部署 Embedding Model 服务偶发超时

用 Xinference 部署Embedding Model,正常来说一次调用在 0.0x s 就能返回了,但是总会调着调着突然有超时的情况(超时设置为 0.2s)。这里模型我是部署了2个实例,每次的2次超时是在不同实例上的。可以看到偶发的超时是有规律性的,每隔20次调用都会超时2次。

2025-01-26 13:46:37 241

原创 问题修复记录:Linux docker 部署 Dify,无法调用宿主机本地服务

使用docker compose启动Dify后,在其中配置本地xinference中的模型,报错:get xinference model extra parameter failed, url: http://127.0.0.1:9997/v1/models/bge-m3, error: HTTPConnectionPool(host=‘127.0.0.1’, port=9997): Max retries exceeded with url: /v1/models/bge-m3 (Caused by N

2025-01-23 12:41:33 1434

原创 构建高效大模型技术栈:从算力资源到算法应用的实践与思考

自加入新的团队以来,我有幸领导了大模型团队的技术框架建设工作。在这段时间里,我们构建了一个三层架构(L0-L2),旨在为复杂的产品和业务需求提供强有力的支持。本文将分享我们在这一过程中的经验、遇到的挑战以及未来的展望。

2025-01-20 13:18:41 972

原创 【vLLM】使用PagedAttention 进行大型语言模型的高效显存管理

大型语言模型(LLM, Large Language Models)是人工智能领域的一种深度学习模型,它们通过处理大量的文本数据来学习语言的模式,并能完成诸如文本生成、翻译、问答等多种任务。这些模型通常包含数十亿个参数,需要相当大的计算资源来进行训练和服务(即推理或预测)。在服务阶段,模型的参数、中间计算结果(激活值)、以及键值缓存(KV cache)都需要占用显存空间。如上图所示,当在一个 NVIDIA A100 GPU 上部署一个拥有130亿参数的大型语言模型时的显存布局情况。

2025-01-05 17:05:35 1191

原创 构建高效可靠的分布式推理系统:深入解析控制器与模型服务的协同工作

控制器作为整个系统的中枢神经,负责管理和调度多个分布式的模型服务节点(workers)。它不仅需要为客户端提供可用的工作节点地址,还要确保任务能够被高效地分配到最合适的节点上。此外,控制器还实现了多种流量分发策略,以适应不同应用场景下的需求。每个模型服务实例运行特定的机器学习模型,处理来自客户端的推理请求并返回结果。它们与控制器协作,通过HTTP请求向控制器报告自身状态,接收任务分配指令。

2024-12-09 16:04:21 1238

原创 音频-语言大模型原理

直接偏好优化 (DPO) 是一种优化技术,它帮助模型更好地理解并遵循人类的偏好。对于Qwen2-Audio来说,DPO主要用于优化模型的响应,使其更加符合用户的期望,尤其是在事实准确性与行为一致性方面。这个公式的目标是让模型更倾向于生成好的响应(y_w)而不是较差的响应(y_l)。DPO的目标是让模型生成的响应更接近于人类认为好的响应。为此,我们需要准备一个带有偏好信息的数据集,其中包含了对每组输入的好坏响应标注。在语音理解方面,模型架构主要包括两个连续的模块:语音编码器和适配器。

2024-09-08 14:49:38 1102

原创 Sora原理详解

这里,OpenAI 将 DALL·E 3 中介绍的标题生成技术用到了视频领域,训练了一个具备高度描述性的视频标题生成模型,使用这个模型为所有的视频训练数据生成了高质量文本标题,再将视频和高质量标题作为视频 - 文本对进行训练。虽然早期的 AI 生成剧本可能会显得比较生硬,但随着技术的发展,现在的 AI 能够生成更加自然流畅、富有创意的剧本。OpenAI 训练了一个降低视觉数据维度的网络,这个网络接受原始视频作为输入,然后进行视频压缩,也就是降低数据维度,最后输出的是在时间和空间上压缩过的表示形式。

2024-09-08 14:17:57 939

原创 LLM指令微调实践与分析

模型微调是指通过微调工具,加入企业独有的场景数据,对平台的基础模型进行微调。它可以帮助你快速定制出更符合你业务场景需求的专属大模型。它的优势在于对基础模型进行少量调整,满足特定的需求。相比训练新模型高效且低成本。

2024-09-03 16:21:05 873 1

原创 动手打造互动虚拟人

【代码】动手打造互动虚拟人。

2024-09-03 09:09:50 746

原创 LLM微调原理详解

指令微调是指使用自然语言形式的数据对预训练后的大语言模型进行参数微调的过程。指令微调中的数据组织策略非常重要,因为它直接影响到模型最终的能力。指令微调是针对预训练的大语言模型进行的一项训练技术,旨在让模型更好地理解和执行特定的指令。指令数据构建的提升方法主要包括指令格式设计、扩展指令数量以及指令重写与筛选这三个方面。LoRA在大语言模型的微调中被广泛应用,能够显著降低模型训练成本。【腾讯文档】【第3章】低成本的领域&私域大模型训练方法。【腾讯文档】【第3章】低成本的领域&私域大模型训练方法。

2024-09-02 14:58:43 476

原创 LLM与知识图谱

在这个示例中,我们首先随机打乱社区摘要的顺序,然后将它们分割成更小的块,每个块的长度不超过50个字符。Answer Reasoning 是指代理(智能助手)在探索图结构并收集相关信息后,根据笔记本中记录的不同探索路径的信息来推断和回答问题的过程。Initial Node(初始节点)是指从图结构中选择的一个或几个节点,这些节点将成为探索图结构以寻找答案的起点。这种增强方法的基本思想是从知识图谱中检索出与问题相关的子图,并将这些子图的信息提供给大语言模型,从而增强模型的回答能力。

2024-09-02 14:10:08 884

原创 AI视频创作应用

该示例展示了文生视频应用,还包括多种其他生成模式,如文本引导的视频编辑,以及基于姿势、深度、边缘输入结合文本提示进行联合条件下的视频生成。只需上传视频并输入描述该视频的文本提示即可。除了使用应用演示来尝试预训练文生视频模型外,你还可以使用 Tune-a-Video 演示来微调现有的文生图模型,使用自己的文本-视频对。夜晚的丛林中,一只猫头鹰(主体)站在枯树枝上(环境描述),猫头鹰的眼睛在月光下闪闪发亮(动作)。比得兔(主体)开小汽车(主体描述),游走在马路上(环境描述),脸上的表情充满开心喜悦(氛围设定)

2024-08-21 10:59:26 376

原创 数字虚拟人原理

通过调整基础形状和纹理的系数,可以生成不同的面部形状和纹理。具体地,头部姿态系数(ρ)可以表示为一个6维向量,其中前3维表示旋转参数(r),后3维表示平移参数(t)。通过调整这些头部姿态系数,可以改变生成的头部动画的姿态,使其与音频内容相匹配。通过从音频中学习生成头部姿态系数(ρ),从而实现了根据音频生成真实的3D运动系数。这些生成的头部姿态系数可以用于调整生成的面部动画,以使其更加逼真和自然。在3D面部重建中,β用于表示面部的表情变化。通过调整β的值,可以改变面部的表情,如微笑、皱眉等。

2024-08-21 10:46:35 294

原创 LLM的推理详解

在没有长度惩罚的情况下,解码算法倾向于生成较短的序列,因为随着序列的增长,序列的概率(实际上是概率的乘积)会呈指数级减小,导致较长序列的累积概率低于较短序列,即使较长序列的每个词的概率都很高。这一策略的基本思想是,由于大型语言模型通常具有更广泛的知识和更强的生成能力,它们倾向于为重要的词元分配更高的概率。模型蒸馏,或称知识蒸馏,是一种在深度学习领域中广泛应用的技术,其目标是将一个大型、复杂的模型(教师模型)的知识转移到一个较小、较简单的模型(学生模型)中。

2024-08-18 15:41:15 267

原创 AI视频创作原理

I2VGen-XL由达摩院研发的高清视频生成基础模型之一,其核心部分包含两个阶段,分别解决语义一致性和清晰度的问题,参数量共计约37亿,模型经过在大规模视频和图像数据混合预训练,并在少量精品数据上微调得到,该数据分布广泛、类别多样化,模型对不同的数据均有良好的泛化性。随着文生视频模型的发展,出现了更多的多模态视频文本数据集,以及更好、更通用的数据集。在这个公式中,E是预训练的编码器,x是给定的视频,ϵ是噪声,c是选定的条件,t是时间步长,zt是噪声破坏的潜在表示。AI视频创作的任务面临着多方面的独特挑战。

2024-08-17 17:01:04 1087

原创 AI歌手-五月天(声音转换)

训练结果参考:https://huggingface.co/souljoy/so-vits-svc-mayday。使用FaceBook的Demucs,将audio.wav 分成 Vocal + Instrument。安装 Demucs 分割音频。

2024-08-17 16:50:16 331

原创 音乐生成模型应用

接下来我们来介绍如何使用预训练的AudioLDM2模型来生成音频,并通过不同的提示(prompt)和反向提示(negative prompt)来影响生成的音频质量。

2024-08-14 15:53:55 279

原创 动手研发实时口译系统

使用Whisper模型进行语音翻译(Speech-to-Speech Translation,STST)的过程。接下啦,我们使用Gradio库创建一个STST(Speech-to-Speech Translation)将英文文本转换成英文语音的过程,即文本到语音(Text-to-Speech,TTS)的转换。这里使用了专门针对英文TTS训练的SpeechT5模型。

2024-08-14 15:50:35 609

原创 文本生音频 与 音频生音频

受 Stable Diffusion 的启发,AudioLDM 2 是一种文生音频的隐扩散模型 (latent diffusion model,LDM),其可以将文本嵌入映射成连续的音频表征。Voice conversion(VC)是一种将源说话人的语音转换为目标说话人风格的技术,同时保持语言内容不变。损失函数分为CVAE相关的损失和GAN相关的损失。它是声音中最基本的频率成分,决定了声音的音高。编码器提取源音频语音特征,与 F0 同时输入 VITS 替换原本的文本输入达到歌声转换的效果。

2024-08-12 10:03:34 282

原创 文本转语音(TTS)与语音到语音翻译(STST)

对于语音到文本的任务,每个输入语音只对应一个正确的输出文本,但是对于文本到语音的任务,输入文本可以映射到多个可能的语音。这也是一种数据和计算效率很高的开发STST系统的方式,因为现有的语音识别和文本到语音系统可以耦合在一起,产生新的STST模型,无需进行任何额外的训练。我们也可以使用三阶段方法,首先使用自动语音识别(ASR)系统将源语音转录成同一语言的文本,然后使用机器翻译将转录的文本翻译成目标语言,最后使用文本到语音生成目标语言的语音。在ASR模型中,解码器的初始输出序列是一个仅包含“起始”标记的序列。

2024-08-12 09:51:18 351

原创 动手训练粤语语音识别模型

在最后一步,我们定义了与训练相关的所有参数。在这里,我们将训练步数设置为100。这足够多的步数,可以与预训练的Whisper模型相比看到很大的词错误率(WER)改进。更多参数说明,参阅:https://huggingface.co/docs/transformers/main_classes/trainer#transformers.Seq2SeqTrainingArgumentsoutput_dir="./whisper-tiny-zh-HK", # 模型上传到HF Hub的名称。

2024-08-09 17:10:42 681

原创 动手训练音乐风格分类模型

模型将为我们定义的**每个标签返回一个分类概率。

2024-08-09 17:06:25 219

原创 基于Transformer的语音识别与音频分类

例如,如果我们的预测序列是 B_R_II_O_N_||S_AWW|||||S_OMEE_TH_ING||_C_L_O_S_E||TO|P_A_N_I_C||_ON||HHI_S||OP_P_O_N_EN_T’SS||_F_AA_C_E||W_H_EN||THE||M_A_NN||||_F_I_N_AL_LL_Y||||_RREE_C_O_GG_NN_II_Z_ED|||HHISS|||_ER_RRR_ORR||||我们知道语音和文本的顺序是相同的(对齐是单调的),但我们不知道文本中的字符如何与音频对齐。

2024-08-04 16:56:18 652

原创 基于DreamBooth的“妙鸭相机”——一次不太成功的实践

猜测很可能是模型不太能理解 instance_prompt 中“GQS”的含义。可以看到,虽然训练还不够重复不算是特别像,但是比之前版本是好很多了!可以看到,只有第3张有点像“高启盛”,其他甚至不是一个人!先安装所需要依赖的库和配置。

2024-08-02 14:18:27 122

原创 动手训练自己的AI绘画LoRA:宝可梦

train_text_to_image_lora.py 中只支持 CLIPTokenizer ,而不支持 ”IDEA-CCNL/Taiyi-Stable-Diffusion-1B-Anime-Chinese-v0.1“的BertTokenizer。为了确保你可以成功运行最新版本的示例脚本,建议从源代码进行安装,并随着示例脚本的频繁更新和安装一些特定示例的要求,保持安装的最新状态。]模型的其他部分,只训练text encoder,以便保留原始模型的生成能力且实现中文概念的对齐。]数据集(100M)和。

2024-08-01 10:55:15 774

SMP2020微博情绪分类技术评测数据集

SMP2020微博情绪分类技术评测数据集 本次技术评测使用的标注数据集由哈尔滨工业大学社会计算与信息检索研究中心提供,原始数据源于新浪微博,由微热点大数据研究院提供,数据集分为两部分。     第一部分为通用微博数据集,该数据集内的微博内容是随机获取到微博内容,不针对特定的话题,覆盖的范围较广。     第二部分为疫情微博数据集,该数据集内的微博内容是在疫情期间使用相关关键字筛选获得的疫情微博,其内容与新冠疫情相关。     因此,本次评测训练集包含上述两类数据:通用微博训练数据和疫情微博训练数据,相对应的,测试集也分为通用微博测试集和疫情微博测试集。参赛成员可以同时使用两种训练数据集来训练模型。     每条微博被标注为以下六个类别之一:neutral(无情绪)、happy(积极)、angry(愤怒)、sad(悲伤)、fear(恐惧)、surprise(惊奇)。     通用微博训练数据集包括27,768条微博,验证集包含2,000条微博,测试数据集包含5,000条微博。     疫情微博训练数据集包括8,606条微博,验证集包含2,000条微博,测试数据集包含3,000

2022-12-29

jblas-1.2.4-SNAPSHOT

里MLlib库需要依赖[jblas线性代数库](http://jblas.org/),如果大家编译jblas的jar包有问题,可以获取。把jar包加到lib文件夹后,记得在spark-env.sh添加配置

2016-06-26

Spark机器学习文本处理数据集

为了说明概念,我们将使用一个非常有名的数据集,叫作20 Newsgroups;这个数据集一般用来做文本分类。这是一个由20个不同主题的新闻组消息组成的集合,有很多种不同的数据格式。对于我们的任务来说,可以使用按日期组织的数据集。

2016-06-20

Spark机器学习推荐模型数据集

我们将使用推荐引擎中使用的电影打分数据集,这个数据集主要分为三个部 分:第一个是电影打分的数据集(在u.data文件中), 第二个是用户数据(u.user),第三个是电影数据(u.item)。除此之外,我们从题材文件中获取了每个电影的题材(u.genre)。

2016-06-18

Spark机器学习回归模型数据集

为了阐述本章的一些概念,我们选择了bike sharing数据集做实验。这个数据集记录了bike sharing系统每小时自行车的出租次数。另外还包括日期、时间、天气、季节和节假日等相关信息。

2016-06-15

Spark机器学习分类模型的数据集

考虑到推荐模型中的 MovieLens 数据集和分类问题无关,本章将使用另外一个数据集。这个 数据集源自 Kaggle 比赛,由 StumbleUpon 提供。比赛的问题涉及网页中推荐的页面是短暂(短暂 存在,很快就不流行了)还是长久(长时间流行)。

2016-06-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除