利用 Amazon Bedrock Data Automation(BDA)对视频数据进行自动化处理与检索
当前点播视频平台搜索功能主要是基于视频标题的关键字检索。对于点播平台而言,我们希望可以通过优化视频搜索体验满足用户通过模糊描述查找视频的需求,从而提高用户的搜索体验。借助 Amazon Bedrock Data Automation(BDA)技术,运用 AI 自动剖析视频内容,提取关键信息,通过向量搜索达成语义智能匹配,实现多角度(视频关键字、台词、场景描述)视频检索,有利于提升用户搜索效率,增加平台活跃度,也为视频创作者创造更多曝光机遇。 在下文中,我们会基于 Amazon Bedrock Data Automation(BDA)实现视频处理与双路召回的解决方案进行描述。
Amazon Bedrock Data Automation 功能概述
Bedrock Data Automation(BDA)是基于云的服务,借助生成式 AI,能将文档、图像、视频和音频等非结构化内容,高效转化为结构化格式,自动提取、生成关键信息,助力开发人员快速构建应用程序,执行复杂工作流程。目前支持 us-east-1 和 us-west-2 两个地区。
从输出结果角度,BDA 支持标准结果和自定义结果的输出,当用户选择自定义结果的输出时,可以用 prompt 的方式去生成想要的结果。自定义的结构可以保存为蓝图为 BDA 项目所使用。目前自定义结果的输出支持文档和图片。
标准结果的输出则对四种不同类型的数据源做了预定义的输出结构,例如对于文档数据,标准输出结果如下图所示,从而可以为不同下游应用所用:
您可以手动在操作台上测试 DBA 的各种功能包括文档,图片,视频和音频等,以下我们以视频 Demo 为例。
首先找到 Amazon Bedrock 在控制台的位置,然后点击左侧工具栏中 Data Automation 下的 Demo:
在工具栏中的 Demo中,您可以选择用已存在 Demo 上的数据,或从本地/Amazon S3 中上传的数据做为源数据进行测试:
最后点击 Generate result,便可以在左侧输出相关结果,并可以选择标准数据结果或前面蓝图制定好的自定义输出结果。
在视频处理中,BDA 可以生成完整视频摘要、章节摘要、提取 IAB 分类法、完整音频脚本、视频文字、进行徽标检测和内容审核等。在推出 BDA 之前,传统对视频的 RAG 还是基于手工对切片处理,并手工通过 SaaS 或大模型对视频声音摘录,文字提取。BDA 简化了这一流程,输出的内容以 Json 文档的形式呈现。
Json 文档结构目前版本主要包含以下几个部分:Metadata、shots、chapters、video、statistics
-
Metadata 包含视频的基本信息,如资产 ID、格式、帧率、编码、时长、分辨率等。
-
Shots 是 DBA 自动将视频分割成多个镜头,每个镜头包括开始和结束的时间码,开始和结束的时间戳(毫秒),开始和结束的帧索引,持续时间,置信度,所属章节索引。
-
Chapters 是 DBA 自动将视频分割成多个章节,每个章节包含开始和结束的时间码,开始和结束的时间戳(毫秒),开始和结束的帧索引,持续时间,包含的镜头索引,章节摘要,转录文本,IAB 分类,内容审核等。其中,IAB 分类可以帮助广告找到视频中可以切入的点,让广告的引入可以更加流畅。
-
Video 里面包含了视频总结和视频整体的转录文本。视频整体的转录文本包含了每个章节的转录文本。
-
Statistics 主要是对视频数据的统计,包含了镜头数量统计,章节统计和视频中发言人的数量。
在本文中,我们主要用到了 DBA 视频处理的处理手段,来将视频数据转化成 json 结构数据为用户提供文字搜索功能。以下是相关架构的介绍。
相关架构说明
架构总览
整个视频处理与检索系统主要由 Amazon S3、Amazon EventBridge、Amazon Lambda、Amazon Bedrock、Amazon DocumentDB、Amazon API Gateway 和 Amazon CloudFront 等组件构成,各组件协同工作,实现视频数据的自动化处理与高效检索。
相关技术组件
-
Amazon S3:作为对象存储服务,负责存储视频文件和处理后的 json 文件。它具有高可靠性、高扩展性和低成本等优势,为视频数据的存储提供了稳定的基础。
-
Amazon EventBridge:作为系统中关键的事件触发中枢,负责监测特定事件的发生。一旦检测到视频文件上传至 S3 或 S3 路径中文件生成,它便迅速响应,精准触发相应的 Lambda 函数调用。
-
Amazon Lambda:基于无服务器计算架构,允许用户直接通过代码实现各种功能。在本系统中,Lambda 承担了多项重要任务,如调用 Bedrock API 处理视频,将非结构化的视频数据转化为结构化的 json 文件;调用 Bedrock 上的模型(如 titan-embed-text-v2:0)为 json 文件内容生成 embedding,以便后续进行向量检索。
-
Amazon Bedrock:Amazon 的 AI 一站式平台,集成了各种先进的 AI 模型,为系统提供强大的 AI 处理能力。在本案例中,其主要提供了 BDA 的视频处理功能和 Titan 模型与 Cohere 模型的调用。其中,对 BDA 的调用需要依赖 BDA 项目对于输出的预定义。在案例中,我们选择以下输出作为数据源进行处理,对于其他项目,具体输出可以按照需要自行勾选:
-
Amazon DocumentDB:存储由 BDA 生成的 json 文档。Amazon DocumentDB 兼容 Mongo DB,是原生的完全托管 json 文档数据库,支持向量、文本的存储、索引和聚合。DocumentDB 具备强大的性能和扩展性,能够同时满足操作型和分析型工作负载的需求。
索引是一种数据结构,用于提高数据检索的效率,在文字数据和向量数据的处理中都有着重要作用。我们在Amazon DocumentDB 中创建了文字倒排索引和向量索引为后续检索做准备。由于是文本相似度计算,我们选用余弦相似度(cosine)来用于向量索引。
[{ v: 4, key: { _id: 1 }, name: '_id_', ns: 'VideoData.videodata' },{v: 1,key: { _fts: 'text', _ftsx: 1 },name: 'text_index',ns: 'VideoData.videodata',default_language: 'english',weights: { text: 1 },textIndexVersion: 1},{v: 4,key: { embedding: 'vector' },name: 'vector_index',vectorOptions: {type: 'ivfflat',dimensions: 1024,similarity: 'cosine',lists: 1000},ns: 'VideoData.videodata'}
]
-
Amazon API Gateway:作为 API 管理接口,连接前端用户与后端服务。它负责接收前端用户的搜索请求,并将其转发给后端的 Lambda 函数进行处理,同时将后端处理结果返回给前端用户,保障了前后端数据交互的安全和高效。
-
Amazon CloudFront:主要用于加速视频内容的分发和召回。通过在全球范围内部署边缘节点,它能够快速将视频内容传递给用户,减少用户等待时间,提升用户观看视频的流畅度和体验感。
架构图
视频检索流程
前置过程
为了更加方便快速地部署和使用本方案,我们创建了基于AWS CDK 的全自动化部署方法: :sample-for-video-search。您可以按照 README 来将整套环境资源快速部署在自己的亚马逊云科技环境中,随后便可以开始以下检索流程:
1. 数据上传
在我们的案例中,平台可以将视频文件(mp4/mov 格式)上传至 Amazon S3 路径中,例如 s3://<bucket-name>/video-input/,作为后续处理的源数据。
2. 视频处理与视频 Json 文件生成
当 Amazon S3 路径中有文件上传完毕时,Amazon EventBridge 会监测到相关事件并触发 Amazon Lambda 调用 Amazon Bedrock API 对视频文件按照实现创建的 DBA 项目进行处理。DBA 项目是利用 Lambda 在视频处理流程前创建。视频处理完成后,生成相应的 json 文件,并将其传回 Amazon S3 存储 s3://<bucket-name>/video-output/。相关示例代码如下:
# invokes bda by async approach with a given input file
def invoke_insight_generation_async(input_s3_uri,output_s3_uri,data_project_arn, blueprints = None):# Extract account ID from project ARNaccount_id = data_project_arn.split(':')[4]# Construct default Profile ARN using fixed us-west-2 region,which currently supports the 2 models required in the following processprofile_arn = f"arn:aws:bedrock:us-west-2:{account_id}:data-automation-profile/us.data-automation-v1"payload = {"inputConfiguration": {"s3Uri": input_s3_uri},"outputConfiguration": {"s3Uri": output_s3_uri},"dataAutomationConfiguration": {"dataAutomationProjectArn": data_project_arn,"stage": "LIVE"},"dataAutomationProfileArn": profile_arn,"notificationConfiguration": {"eventBridgeConfiguration": {"eventBridgeEnabled": True},}}try:response = bda_client_runtime.invoke_data_automation_async(**payload)print(f"Successfully invoked data automation: {response}")return responseexcept Exception as e:print(f"Error invoking data automation: {str(e)}")raise
3. 基于视频 Json 文件的 Embedding 处理
之后,Amazon S3 文件生成的规则会再次触发的 Amazon EventBridge,使其启动 Amazon Lambda 调用 Amazon Bedrock 集成的 amazon.titan-embed-text-v2:0 模型,为 Json 文件内容做 向量化用于后续查询。
try:response = bedrock_client.invoke_model(modelId="amazon.titan-embed-text-v2:0",contentType="application/json",accept="application/json",body=json.dumps({"inputText": text}))
由于每个 chapter 内的 transcripts 较长,为达到更好的检索效果,会对其进行切片处理,最后将整理好的数据结构存入 DocumentDB。由于是简易环境,我们基于字符长度做了简单的切片处理:
def split_transcript_into_chunks(self, transcript_text, max_chunk_size=500, min_chunk_size=100):if not transcript_text:return []# 如果输入是字典,尝试提取文本if isinstance(transcript_text, dict):if 'text' in transcript_text:transcript_text = transcript_text['text']elif 'representation' in transcript_text and 'text' in transcript_text['representation']:transcript_text = transcript_text['representation']['text']else:transcript_text = json.dumps(transcript_text)# 确保输入是字符串if not isinstance(transcript_text, str):transcript_text = str(transcript_text)# 按句子分割(句号、问号、感叹号后跟空格)# 使用更宽松的模式,允许句子结束后有任何数量的空格sentences = re.split(r'([.!?])\s*', transcript_text)# 处理分割结果,将标点符号重新附加到句子processed_sentences = []i = 0while i < len(sentences):sentence = sentences[i]# 如果是标点符号,附加到前一个句子if i > 0 and sentence in ['.', '!', '?']:processed_sentences[-1] += sentenceelse:processed_sentences.append(sentence)i += 1# 将句子组合成块chunks = []current_chunk = ""for sentence in processed_sentences:# 跳过空句子if not sentence.strip():continue# 如果当前块加上新句子会超过最大大小,保存当前块if current_chunk and len(current_chunk) + len(sentence) + 1 > max_chunk_size:if len(current_chunk) >= min_chunk_size:chunks.append(current_chunk.strip())current_chunk = sentenceelse:if current_chunk:current_chunk += " " + sentenceelse:current_chunk = sentence# 添加最后一个块if current_chunk and len(current_chunk) >= min_chunk_size:chunks.append(current_chunk.strip())return chunks
将 Json 文件向量化后,我们将 Json 文件的数据格式进行了处理,使其在 Amazon DocumentDB 中能更好地做检索。
def flatten_video_data(self, video_data, video_name):flattened_data = []# 处理章节chapters = video_data.get('chapters', [])for chapter in chapters:chapter_summary = chapter.get('chapter_summary', {})flattened_chapter_summary = {"video_name": video_name,"source": f"chapter_{chapter.get('chapter_index', 0)}_summary","text": chapter_summary.get('text', ""),"embedding": chapter_summary.get('embedding', []),"start_timestamp_millis": chapter.get('start_timestamp_millis'),"end_timestamp_millis": chapter.get('end_timestamp_millis')}flattened_data.append(flattened_chapter_summary)# 处理章节转录块transcript_chunks = chapter.get('transcript_chunks', [])for chunk in transcript_chunks:flattened_chunk = {"video_name": video_name,"source": f"chapter_{chapter.get('chapter_index', 0)}_transcript_chunk_{chunk.get('chunk_index', 0)}","text": chunk.get('text', ""),"embedding": chunk.get('embedding', []),"start_timestamp_millis": chapter.get('start_timestamp_millis'),"end_timestamp_millis": chapter.get('end_timestamp_millis')}flattened_data.append(flattened_chunk)return flattened_data
对视频生成的文字做完向量化和数据格式的整理后,便可以将其存入 Amazon DocumentDB 为用户的检索做准备了。
4. 用户搜索文字的 Embedding 转换
将向量和文字存入 Amazon DocumentDB 后,用户便可以从前端输入搜索文字并选择搜索模式(文本搜索或场景搜索),系统会使用 amazon.titan – embed – text – v2:0 模型对搜索文字进行向量化,以便后续进行向量匹配。
flowchart LRA([接收搜索请求])-->B[解析查询参数]B-->C{执行混合搜索}C-->D[向量搜索]C-->E[文本搜索]D-->F([合并搜索结果])E-->FF-->G([使用Cohere重排序])G-->H([返回最终结果])
双路召回与结果重排序:Amazon Lambda 利用转换后的向量,同时进行文字和向量的双路召回。在向量检索中,使用 Amazon Document DB 的聚合 pipeline 对向量相似度进行搜索,根据搜索模式过滤结果,最后通过 project 返回相应字段;
$project:返回相应字段如下:
text: "<sample_text>"
video_name: "<sample_name>.mov"
source: "chapter_6_summary"
start_timestamp_millis: 181666
end_timestamp_millis: 227100
similarity:与向量索引一样,我们选择余弦相似度(cosine)来衡量查询向量和文档向量之间的相似性。
top_k:返回的视频数
filter_condition:由于我们的搜索分为场景搜索和台词文本搜索,便以此为筛选,从而用户可以自行选择搜索场景。
pipeline = [{"$search": {"vectorSearch": {"vector": query_embedding,"path": "embedding","similarity": "cosine","k": top_k * 3, # Fetch more results since we'll filter them"efSearch": 64}}},# Add a $match stage to filter results based on search mode (scene/transcripts){"$match": filter_condition},# Limit to top_k results after filtering{"$limit": top_k},{"$project": {"text": 1,"video_name": 1,"source": 1,"start_timestamp_millis": 1,"end_timestamp_millis": 1}}]
文字检索则基于源文件为 json 文本的特点,通过 $text
操作符利用倒排索引进行文本搜索。倒排索引是一种用于快速查找包含特定单词或短语的文档的数据结构。与传统的正向索引(从文档到单词的映射)不同,倒排索引是从单词到文档的映射。
检索完成后,由于同一个 source 可能会同时被向量检索和文字检索出来,从而在合并结果时做了去重处理:
all_results = processed_vector_results + processed_text_results# Remove duplicates based on '_id' and prefer text search resultsunique_results = []seen_ids = set()for result in reversed(all_results): # Reverse the list to process text results firstresult_id = result['_id']if result_id not in seen_ids:seen_ids.add(result_id)unique_results.append(result)unique_results.reverse() # Reverse the list back to original order# Return unique results directlyreturn {"results": unique_results}
最后通过 Amazon Bedrock 集成的 cohere.rerank – v3 – 5:0 模型对召回结果进行重排序,并对输出结果进行了整理,而后按照相关度分数返回最符合用户需求的视频。
response = self.bedrock_client.invoke_model(modelId="cohere.rerank-v3-5:0",contentType="application/json",accept="application/json",body=json.dumps({"api_version": 2,"query": query,"documents": documents,"top_n": len(documents)}))
总结
将 BDA 作为处理视频的手段之一减少了手工分镜,取帧等的工序。无服务器的架构为整体的设计提供了低成本的计算资源,后续的数据的存储选用 DocumentDB 也是希望可以用灵活地手段做 Json 数据处理。在 AI 模型的加持下,希望本文能够为 AI 与视频搜索提供了一种新思路。
持续改进
作为新功能,目前 BDA 的视频处理功能仅限于标准输出,可以考虑后续加入 Amazon Nova 模型来丰富视频场景描述数据,从而进一步提升视频内容分析的精细度。Amazon Nova 模型能够对视频进行抽帧理解,从每一帧图像中提取更丰富的信息,例如视频场景中的物体细节、变化等。这些额外的信息将被整合到视频检索系统中,使得用户在搜索视频时,能够获得更精准、更丰富的搜索结果。
*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您了解行业前沿技术和发展海外业务选择推介该服务。
本篇作者
本期最新实验《多模一站通 —— Amazon Bedrock 上的基础模型初体验》
✨ 精心设计,旨在引导您深入探索Amazon Bedrock的模型选择与调用、模型自动化评估以及安全围栏(Guardrail)等重要功能。无需管理基础设施,利用亚马逊技术与生态,快速集成与部署生成式AI模型能力。
⏩️[点击进入实验] 即刻开启 AI 开发之旅
构建无限, 探索启程!
相关文章:
利用 Amazon Bedrock Data Automation(BDA)对视频数据进行自动化处理与检索
当前点播视频平台搜索功能主要是基于视频标题的关键字检索。对于点播平台而言,我们希望可以通过优化视频搜索体验满足用户通过模糊描述查找视频的需求,从而提高用户的搜索体验。借助 Amazon Bedrock Data Automation(BDA)技术&…...
项目QT+ffmpeg+rtsp(一)——Qt的安装和rtsp的测试
文章目录 一、Qt安装二、插件配置tool与卸载三、下载ffmpeg四、查看能否使用(视频)五、代码复现5.1 rtsp申请5.2 rtsp在线测试5.3代码修改六、结果一、Qt安装 对于QT中5.12版本之后,都是使用在线版本,如果你想安装某一个的历史在线版本,一定要点击archive,不然显示不出来…...
高速光耦在通信行业的应用(五) | 5Mbps通信光耦的特性
针对5MBd速率光耦市场,晶台推出KL2200、KL2201和KL2202系列光耦 ,对标大部分国外品牌产品的应用;它分别由一个红外发射二极管和一个高速集成光电检测器逻辑门组成。 它采用 8 引脚 DIP 封装,并提供 SMD 选项。KL2200 的检测器具有一个三态输出…...
#跟着若城学鸿蒙# web篇-运动和方向传感器监测
前言 有些前端业务场景需要用到一些传感器,比如运动传感器和方向传感器来实现摇一摇功能。这就需要前端能够直接获取到相关数据,而不是通过 js 调用客户端代码来实现。 权限 还是需要在模块的module.json5文件中添加相关权限 {"name" : &qu…...
【匹配】Hirschberg
Hirschberg 文章目录 Hirschberg1. 算法介绍2. 公式及原理3. 伪代码 1. 算法介绍 背景与目标 Hirschberg 算法由 Dan Hirschberg 于1975年提出,是对 Needleman–Wunsch 全局比对的内存优化,通过分治策略将空间复杂度从 O ( m n ) O(mn) O(mn) 降到 O (…...
如何在 Windows 上安装类似 Synaptic 的 Chocolatey GUI 包管理器
如果你正在寻找类似 Linux 中 APT 的 Windows 包管理器,那么没有什么比 Chocolatey 更好的了。它是 Windows 10 上可用的最佳包管理器之一,可以通过命令行界面安装所有流行的软件和工具。然而,这并不意味着如果你不喜欢命令行,你就…...
激活函数全解析:定义、分类与 17 种常用函数详解
一、激活函数的定义与作用 定义: 激活函数是添加到人工神经网络中的函数,用于帮助网络学习数据中的复杂模式,决定神经元的输出。 核心作用: 为神经网络引入非线性,增强模型表达能力。需可微分(或近似可微&…...
1-10 目录树
在ZIP归档文件中,保留着所有压缩文件和目录的相对路径和名称。当使用WinZIP等GUI软件打开ZIP归档文件时,可以从这些信息中重建目录的树状结构。请编写程序实现目录的树状结构的重建工作。 输入格式: 输入首先给出正整数N(≤104)…...
Python OOP核心技巧:如何正确选择实例方法、类方法和静态方法
Python方法类型全解析:实例方法、类方法与静态方法的使用场景 一、三种方法的基本区别二、访问能力对比表三、何时使用实例方法使用实例方法的核心场景:具体应用场景:1. 操作实例属性2. 对象间交互3. 实现特定实例的行为 四、何时使用类方法使…...
RK3588 ADB使用
安卓adb操作介绍 adb(Android Debug Bridge)是一个用于与安卓设备进行通信和控制的工具。adb可以通过USB或无线网络连接安卓设备,执行各种命令,如安装和卸载应用,传输文件,查看日志,运行shell命…...
ubuntu环境下 基于Python 打包的 批量命令行可视化操作工具 GUI
文章目录 一.需求:二.原理支撑:三.简单Demo四.封装成GUI1.依赖库2.代码 五.打包成可执行文件六.命令行的配置七.运行效果 一.需求: 作为测试工程师,为了到现场高效的调试,部署工作,需要一个可视化的工具&a…...
大语言模型 10 - 从0开始训练GPT 0.25B参数量 补充知识之模型架构 MoE、ReLU、FFN、MixFFN
写在前面 GPT(Generative Pre-trained Transformer)是目前最广泛应用的大语言模型架构之一,其强大的自然语言理解与生成能力背后,是一个庞大而精细的训练流程。本文将从宏观到微观,系统讲解GPT的训练过程,…...
SkyWalking的工作原理和搭建过程
SkyWalking 是一个开源的 应用性能监控系统(APM),专为云原生、微服务架构设计。其核心原理基于 分布式追踪(Distributed Tracing)、指标收集(Metrics Collection) 和 日志关联(Log C…...
CMS(plone / joomla 搭建测试)
开源选择 wordpress 用得最多 也是最容易有漏洞被攻击 被挂木马的 joomla (JMS多站点:商业扩展) — 多站点需付费 Drupal ProcessWire Plone因其内置的强大安全特性和较少的用户基础(相比 WordPress 和 Joomla)&#…...
基于 Flink 的实时推荐系统:从协同过滤到多模态语义理解
基于 Flink 的实时推荐系统:从协同过滤到多模态语义理解 嘿,各位技术小伙伴们!在这个信息爆炸的时代,你是不是常常惊叹于各大平台仿佛能 “读懂你的心”,精准推送你感兴趣的内容呢?今天,小编就…...
Flink SQL、Hudi 、Doris在数据上的组合应用
Flink SQL、Hudi 和 Doris 是大数据领域中不同定位的技术组件,各自解决不同的问题,以下从核心定位、关键特性和典型场景三个维度展开说明: 1. Flink SQL:流批统一的实时计算引擎 核心定位:Flink 是 Apache 顶级的流批…...
Flink运维要点
一、Flink 运维核心策略 1. 集群部署与监控 资源规划 按业务优先级分配资源:核心作业优先保障内存和 CPU,避免资源竞争。示例:为实时风控作业分配专用 TaskManager,配置 taskmanager.memory.process.size8g。 监控体系 集成 Prom…...
VSCode + Cline AI辅助编程完全指南
VSCode Cline AI辅助编程完全指南 在当今AI快速发展的时代,程序员可以通过AI工具极大地提高工作效率。本教程将详细介绍如何使用VSCode结合Cline(Claude AI助手)进行AI辅助编程,帮助你提高开发效率,解决复杂问题。 …...
【源码级开发】Qwen3接入MCP,企业级智能体开发实战!
Qwen3接入MCP智能体开发实战(上) 一、MCP技术与Qwen3原生MCP能力介绍 1.智能体开发核心技术—MCP 1.1 Function calling技术回顾 如何快速开发一款智能体应用,最关键的技术难点就在于如何让大模型高效稳定的接入一些外部工具。而在MCP技术…...
回调函数应用示例
回调函数是一种通过函数指针(或引用)调用的函数,它在特定事件或条件发生时被另一个函数调用。回调函数的核心思想是将函数作为参数传递,以便在适当的时候执行自定义逻辑,常用于异步编程、事件驱动架构等场景。 业务场景…...
R语言如何解决导出pdf中文不显示的问题
前言 以前绘图都默认英文,突然要求都改成中文,呆住。。。。。。。。。 标题代码实现 ### 导入工具包 ### library(readr) library(dplyr) library(corrplot)df <- read_csv("./clinical.csv") df <- df %>% select(-id, -label)##…...
国产linux系统(银河麒麟,统信uos)使用 PageOffice自定义Word模版中的数据区域
PageOffice 国产版 :支持信创系统,支持银河麒麟V10和统信UOS,支持X86(intel、兆芯、海光等)、ARM(飞腾、鲲鹏、麒麟等)、龙芯(Mips、LoogArch)芯片架构。 在实际的Wor…...
llamafactory SFT 从断点恢复训练
背景 我使用llamafactory sft 微调模型的时候。gpu停止运行了。日志文件没有任何的报错信息。 显存还是占用状态。 查看llamafactory的进程是下述信息: 151312 151306 91 17:42 ? 03:58:10 [llamafactory-cl] 既然如此,那就只能从断点恢复训练了。 …...
C#里使用Prism.Core的例子
由于使用WPF来开发应用程序, 那么就会使用一些框架程序来加速开发,一般会使用Prism.Core来加速。 这个应用最后运行的显示如下: 第一步需要安装下面的包: <?xml version="1.0" encoding="utf-8"?> <packages><package id="Mi…...
【MySQL】数据库三大范式
目录 一. 什么是范式 二. 第一范式 三. 第二范式 不满足第二范式时可能出现的问题 四. 第三范式 一. 什么是范式 在数据库中范式其实就是一组规则,在我们设计数据库的时候,需要遵守不同的规则要求,设计出合理的关系型数据库,…...
window 显示驱动开发-分页视频内存资源
与 Microsoft Windows 2000 显示驱动程序模型不同,Windows Vista 显示驱动程序模型允许创建比可用物理视频内存总量更多的视频内存资源,然后根据需要分页进出视频内存。 换句话说,并非所有视频内存资源都同时位于视频内存中。 GPU 的管道中可…...
炼丹学习笔记3---ubuntu2004部署运行openpcdet记录
前言 环境 cuda 11.3 python 3.8 ubuntu2004 一、cuda环境检测 ylhy:~/code_ws/OpenPCDet/tools$ nvcc -V nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2021 NVIDIA Corporation Built on Sun_Mar_21_19:15:46_PDT_2021 Cuda compilation tools, release 11.3…...
美创科技针对《银行保险机构数据安全管理办法》解读
在数字化浪潮席卷下,银行保险业的运营模式发生了翻天覆地的变化,数据已然成为行业发展的核心驱动力。从客户基本信息、交易记录,到业务运营的关键数据、市场分析报告,海量数据背后潜藏巨大价值。然而,数据安全风险也随…...
activeMq 限制用户接收topic范围
1、在conf配置文件中找到jetty-realm.properties文件,添加用户信息 2、在broker标签中加入topic限制权限信息 <plugins><simpleAuthenticationPlugin><users><authenticationUser username"admin" password"admin" group…...
LIIGO ❤️ RUST 12 YEARS
LIIGO 💖 RUST 12 YEARS 今天是RUST语言1.0发布十周年纪念日。十年前的今天,2015年的今天,Rust 1.0 正式发行。这是值得全球Rust支持者隆重纪念的日子。我借此机会衷心感谢Rust语言创始人Graydon Hoare,Mozilla公司,以…...
增量学习:机器学习领域中的资源高效利用秘籍
前言 在机器学习的广袤天地中,增量学习宛如一颗冉冉升起的新星,正逐渐展现出其独特的魅力和巨大的潜力。 它是一种能让 AI 模型像人类一样,逐步学习并不断强化自身知识,同时不会遗忘过往所学信息的学习方法。随着时代的飞速发展&a…...
OpenCV 背景建模详解:从原理到实战
在计算机视觉领域,背景建模是一项基础且重要的技术,它能够从视频流中分离出前景目标,广泛应用于运动目标检测、视频监控、人机交互等场景。OpenCV 作为计算机视觉领域最受欢迎的开源库之一,提供了多种高效的背景建模算法。本文将深…...
makefile细节说明
在 Makefile中,依赖关系的左右两部分有特定的名称: 左边部分(冒号左侧) 称为 目标(Target) 右边部分(冒号右侧) 称为 依赖项(Prerequisite…...
计算机图形学编程(使用OpenGL和C++)(第2版)学习笔记 10.增强表面细节(二)法线贴图
1. 法线贴图(Normal Mapping) 法线贴图是一种在3D图形渲染中广泛使用的表面细节增强技术。它通过存储每个像素的法线信息来模拟表面的细微凹凸细节,而无需增加实际的几何复杂度。 1.1. 工作原理 纹理存储 使用RGB通道存储法线向量的XYZ分量…...
使用 OpenCV 将图像中标记特定颜色区域
在计算机视觉任务中,颜色替换是一种常见的图像处理操作,广泛用于视觉增强、目标高亮、伪彩色渲染等场景。本文介绍一种简单而高效的方式,基于 OpenCV 检测图像中接近某种颜色的区域,并将其替换为反色(对比色࿰…...
Service Mesh
目录 一、Service Mesh 的核心特点 二、Service Mesh 的典型架构 1. Sidecar 模式 2. 控制平面与数据平面分离 三、Service Mesh 解决的核心问题 四、典型应用场景 五、主流 Service Mesh 框架对比 六、挑战与局限性 七、未来趋势 总结 Istio 一、Istio 核心组件与…...
反射机制详细说明
反射机制详细说明 1. 反射的基本概念 反射(Reflection)是Java提供的一种在运行时(Runtime)动态获取类信息并操作类属性、方法和构造器的机制。通过反射,程序可以在运行时检查类、接口、字段和方法,并且可以实例化对象、调用方法、访问或修改字段值,甚至操作私有成员,…...
基于Mongodb的分布式文件存储实现
分布式文件存储的方案有很多,今天分享一个基于mongodb数据库来实现文件的存储,mongodb支持分布式部署,以此来实现文件的分布式存储。 基于 MongoDB GridFS 的分布式文件存储实现:从原理到实战 一、引言 当系统存在大量的图片、…...
相机Camera日志分析之九:高通相机Camx 基于预览1帧的ConfigureStreams二级日志分析详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:高通相机Camx 日志分析之三:camx hal预览1帧logcat日志opencamera详解 相机Camera日志分析之三:不想输出每秒30帧巨量日志,如何只输出1帧日志作为学习使用? 这一篇我们开始讲: 高通相机Camx 日志…...
neo4j框架:ubuntu系统中neo4j安装与使用教程
在使用图数据库的时候,经常需要用到neo4j这一图数据库处理框架。本文详细介绍了neo4j安装使用过程中的问题与解决方法。 一、安装neo4j 在安装好了ubuntu系统、docker仓库和java的前提下 在ubuntu系统命令行依次输入如下命令: # 安装依赖库 sudo apt-…...
k8s灰度发布
基于 Traefik 的加权灰度发布-腾讯云开发者社区-腾讯云 Traefik | Traefik | v1.7 Releases traefik/traefik GitHub 从上面连接下载后上传到harbor虚拟机 vagrant upload /C/Users/HP280/Downloads/traefik 下载配置文件 wget -c http://raw.githubusercontent.com/conta…...
K8S从Harbor拉取镜像
参考 配置cri-docker使kubernetes1.24以docker作为运行时_启动cirdocker_跳跃音符#3712的博客-CSDN博客 部署Harbor私有容器镜像仓库并配置Kubernetes从Harbor拉取镜像的方法_运维个西瓜的博客-CSDN博客 K8S连接Harbor私有仓库_k8s harbor 登录-CSDN博客 K8S集群配置使用私…...
【Spring Boot后端组件】mybatis-plus使用
文章目录 mybatis-plus使用一、依赖引入二、添加相关配置项三、功能详解1.自增主键2.逻辑删除3.操作时间自动填充4.其他字段自动填充5.分页查询6.自定义动态查询7.代码生成器8.代码生成器(自定义模板) mybatis-plus使用 一、依赖引入 pom.xml文件 <?xml version"1.…...
Oc语言学习 —— 重点内容总结与拓展(下)
类别(分类)和拓展 分类: 专门用来给类添加新方法 不能给类添加成员属性,添加成员属性也无法取到 注意:其实可与通过runtime 给分类添加属性,即属性关联,重写setter,getter方法 分类…...
智脑进化:神经网络如何从单层感知机迈向深度学习新纪元
第一章:神经元的启示——从生物大脑到人工神经元 1.1 生物神经元的智慧:860亿神经元的协同网络 人类大脑的860亿神经元通过突触形成动态网络,每个神经元通过树突接收信号,在胞体整合后经轴突传递输出。这种“接收-处理-输出”的…...
雷云4 鼠标滚轮单击失灵解决办法
问题现象:打开雷云4 ,滚轮单击才有反应,退出雷云4,滚轮单击没反应。 解决方案: 打开雷云4, 选中鼠标中键,选择鼠标功能,选择滚轮单击,保存 然后退出后, …...
Spring Cloud动态配置刷新:@RefreshScope与@Component的协同机制解析
在微服务架构中,动态配置管理是实现服务灵活部署、快速响应业务变化的关键能力之一。Spring Cloud 提供了基于 RefreshScope 和 Component 的动态配置刷新机制,使得开发者可以在不重启服务的情况下更新配置。 本文将深入解析 RefreshScope 与 Component…...
vue2集成可在线编辑的思维导图(simple-mind-map)
最近要求做一个可在线编辑的思维导图,经过层层调研和实测,最简单的思维导图导图实现还得是simple-mind-map组件 simple-mind-map中文文档 当前我使用的是vue2项目,目前没试过是否支持vue3,但是看官网描述他们也给了有vue3的demo项…...
【开源Agent框架】CAMEL:角色扮演+任务分解
一、项目概览:重新定义智能体协作范式 CAMEL(Communicative Agents for “Mind” Exploration of Large Language Model Society)是由camel-ai社区开发的开源多智能体框架,致力于探索智能体的规模法则(Scaling Laws)。该项目通过构建包含百万级智能体的复杂社会系统,研…...
Elasticsearch-kibana索引操作
1索引模版 添加索引 PUT /_index_template/account_transaction {"priority": 0,"index_patterns": ["account_transaction*"],"template": {"settings": {"index": {"number_of_shards": "50&q…...