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

mindspeed-rl使用注意事项

1、安装

参考1:docs/install_guide.md · R1-CLM/MindSpeed-RL - Gitee.com

参考2:VLLM x Ascend框架_vllm-ascend-CSDN博客

2、SFT微调

整体参考docs/supervised_finetune.md

自定义数据格式同:AUTO-DL 910B + mindspeed-llm 4层DeepSeek V3微调-CSDN博客

第4节,领域语料。

(1)在configs/datasets目录下,新增search_instruction_non_pack.yaml文件(参考alpaca_instruction_non_pack.yaml),注意这里pack和nopack的区别,pack一般用于多轮,含有history等字段,非pack模式下,有instruction,input,output字段即可。

(2)执行sh  examples/data/preprocess_data.sh search_instruction_non_pack,这里preprocess_data脚本有点问题,修改如下:

SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
export PYTHONPATH=$SCRIPT_DIR/../..:$PYTHONPATH
PROJECT_PATH=$SCRIPT_DIR/../..# 默认值
default_config="alpaca_pairwise"
config=$1python "$PROJECT_PATH"/cli/preprocess_data.py $config

(3)转换文件格式hf为mcore格式

修改模型目录,设置pp为1,执行:sh examples/ckpt/ckpt_convert_qwen25_hf2mcore.sh

export CUDA_DEVICE_MAX_CONNECTIONS=1# 修改 ascend-toolkit 路径
source /usr/local/Ascend/ascend-toolkit/set_env.sh# 设置需要的权重转换参数
python cli/convert_ckpt.py \--use-mcore-models \--model-type GPT \--load-model-type hf \--save-model-type mg \--target-tensor-parallel-size 1 \--target-pipeline-parallel-size 1 \--add-qkv-bias \--load-dir /root/autodl-tmp/qwen2.5-0.5b \--save-dir /root/autodl-tmp/qwen2.5-0.5b-mcore \--tokenizer-model /root/autodl-tmp/qwen2.5-0.5b/tokenizer.json \--model-type-hf llama2 \--params-dtype bf16

(4)拷贝一份sft_qwen25_0.5b.sh,修改如下:

注意:这里去掉了SOCKET_IFNAME相关设置,改为HCCL_CONNECT_TIMEOUT

#!/bin/bash
export CUDA_DEVICE_MAX_CONNECTIONS=1
export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True
export HCCL_CONNECT_TIMEOUT=3600
export HYDRA_FULL_ERROR=1GPUS_PER_NODE=1
MASTER_ADDR=localhost
MASTER_PORT=6005
NNODES=1
NODE_RANK=0
WORLD_SIZE=$(($GPUS_PER_NODE*$NNODES))DISTRIBUTED_ARGS="--nproc_per_node $GPUS_PER_NODE \--nnodes $NNODES \--node_rank $NODE_RANK \--master_addr $MASTER_ADDR \--master_port $MASTER_PORT
"torchrun $DISTRIBUTED_ARGS cli/train_sft.py \--config-name sft_qwen25_0.5b \| tee logs/sft_qwen25_0.5b_rank${NODE_RANK}.log

拷贝一份sft_qwen25_0.5b.yaml修改如下:

defaults:- model:- qwen25_0.5bsft:# tune_args:finetune: truestage: sftis_instruction_dataset: truevariable_seq_lengths: truetokenizer_not_use_fast: trueprompt_type: qwen# gpt_args:norm_epsilon: 1e-6micro_batch_size: 4global_batch_size: 128tokenizer_type: PretrainedFromHFtokenizer_name_or_path: /root/autodl-tmp/qwen2.5-0.5b/train_iters: 5000lr: 5e-5lr_decay_style: cosinemin_lr: 1.25e-7lr_warmup_fraction: 0.01weight_decay: 1e-1clip_grad: 1.0initial_loss_scale: 4096use_distributed_optimizer: truetensor_model_parallel_size: 2pipeline_model_parallel_size: 2sequence_parallel: falseuse_mcore_models: trueuse_fused_rmsnorm: trueuse_flash_attn: trueno_masked_softmax_fusion: trueno_gradient_accumulation_fusion: trueuse_fused_swiglu: trueuse_fused_rotary_pos_emb: truebf16: trueseq_length: 4096adam_beta1: 0.9adam_beta2: 0.95attention_dropout: 0.0init_method_std: 0.01hidden_dropout: 0.0overlap_grad_reduce: trueoverlap_param_gather: true# data_args:data_path: ./data/search/search_trainsplit: 100,0,0no_shuffle: false# ckpt_args:no_load_optim: trueno_load_rng: trueno_save_optim: trueno_save_rng: trueseed: 1234model: qwen25_0.5bload: /root/autodl-tmp/qwen2.5-0.5b-mcoresave: /root/autodl-tmp/output-rl-0.5b-sft# output_args:log_interval: 1save_interval: 5000eval_interval: 5000eval_iters: 0log_throughput: true
qwen25_0.5b:use_mcore_models: truenum_layers: 24hidden_size: 896ffn_hidden_size: 4864num_attention_heads: 14rotary_base: 1000000max_position_embeddings: 32768make_vocab_size_divisible_by: 1padded_vocab_size: 151936untie_embeddings_and_output_weights: trueadd_qkv_bias: truedisable_bias_linear: truegroup_query_attention: truenum_query_groups: 2position_embedding_type: ropenormalization: RMSNormswiglu: trueattention_softmax_in_fp32: true

执行: sh examples/sft/sft_qwen25_0.5b.sh

报错:[rank0]: RuntimeError: Error(s) in loading state_dict for GPTModel:
[rank0]:        Missing key(s) in state_dict: "output_layer.weight". 

这个缺陷2月份已经有人提交,但未解决。MindSpeed-r1加载权重报错output_layer.weight key缺失 · Issue #IBNT8L · Ascend/MindSpeed-LLM - Gitee.com

3、GRPO

使用mindspeed-llm中微调好的单层R1作为推理模型。遇到如下报错:

(1)ttributeError: 'AscendQuantConfig' object has no attribute 'packed_modules_mapping'

参考:https://github.com/vllm-project/vllm-ascend/issues/420

建议升级到vllm-ascend RC2,注意原安装说明是有问题的,需要手工下载rc2文件,然后解压安装。

(2)KeyError: 'model.layers.0.self_attn.q_a_proj.weight'

  File "/root/autodl-tmp/vllm-ascend-0.7.3rc2/vllm_ascend/quantization/quant_config.py", line 93, in get_quant_method
    if self.is_layer_skipped_ascend(prefix,
  File "/root/autodl-tmp/vllm-ascend-0.7.3rc2/vllm_ascend/quantization/quant_config.py", line 135, in is_layer_skipped_ascend
    is_skipped = self.quant_description[prefix + '.weight'] == "FLOAT" 

在config.json配置中,有如下配置:

 而在 /root/miniconda3/lib/python3.10/site-packages/vllm/entrypoints/llm.py中有提示:

因此去掉config.json中的相关配置即可。

(3)权重加载找不到目录:

if args.load_format == "megatron":tp_rank = ps._TP.rank_in_groupweights_path = os.path.join(args.load, f"iter_0000100/mp_rank_{tp_rank:02}/model_optim_rng.pt")这里格式如果设置为megatron,检查点文件需要严格匹配。

(4) File "/root/autodl-tmp/mindspeed-rl/mindspeed_rl/models/rollout/vllm_adapter/megatron_weight_loaders.py", line 101, in _get_model_weight_loader
[rank0]:     raise ValueError(f"Model architectures {arch} are not supported for now. "

部分改动如下:

  • config.json文件:

"auto_map": {
"AutoConfig": "configuration_deepseek.DeepseekV3Config"
去掉模型本地实现
},
"hidden_size": 1024,
"intermediate_size": 1024,
去掉quantization_config配置

  • 修改mindspeed_rl\models\rollout\vllm_adapter\megatron_weight_loaders.py文件:

在这个配置中增加:
MODEL_MEGATRON_WEIGHT_LOADER_REGISTRY = {
"CustomDeepseekV3ForCausalLM": deepseek_megatron_weight_loader,
}
原因:vllm-ascend-0.7.3rc2分支中,这个提交https://github.com/vllm-project/vllm-ascend/pull/391/files,使用CustomDeepseekV3ForCausalLM覆盖了原实现。
ModelRegistry.register_model(
"DeepseekV3ForCausalLM",
"vllm_ascend.models.deepseek_v2:CustomDeepseekV3ForCausalLM")

4、FAQ

 停止ray相关进程:ray stop

5、VLLM测试

(1)infer_vllm.py修改如下:


def chat_task(inference_engine, query):conversation = [{"role": "user","content": query,},]import timetokenizer = AutoTokenizer.from_pretrained("/root/autodl-tmp/llama3.2-1b")start_time = time.time()outputs = inference_engine.chat(conversation)res = process_outputs(outputs)out = tokenizer(query + res)logger.info(f'out len: {len(out["input_ids"])}')logger.info('Query: {}'.format(query))logger.info('Responses:\n{}'.format(res))logger.info('costs:{} s'.format(time.time() - start_time))import timestart_time = time.time()outputs = inference_engine.chat([conversation,conversation,conversation,conversation])res = process_outputs(outputs)out = tokenizer(query + res)logger.info(f'out len: {len(out["input_ids"])}')logger.info('Query: {}'.format(query))logger.info('Responses:\n{}'.format(res))logger.info('costs:{} s'.format(time.time() - start_time))start_time = time.time()outputs = inference_engine.chat(conversation)res = process_outputs(outputs)out = tokenizer(query + res)logger.info(f'out len: {len(out["input_ids"])}')logger.info('Query: {}'.format(query))logger.info('Responses:\n{}'.format(res))logger.info('costs:{} s'.format(time.time() - start_time))def generate_task(inference_engine, query):outputs = inference_engine.llm.generate(prompts=[query],sampling_params=inference_engine.sampling_params,)res = process_outputs(outputs)logger.info('Query: {}'.format(query))logger.info('Responses:\n{}'.format(res))

(2)新增infer_vllm_llama32_1b.sh

#!/bin/bash#export GLOO_SOCKET_IFNAME="Your SOCKET IFNAME"
#export TP_SOCKET_IFNAME="Your SOCKET IFNAME"
export CUDA_DEVICE_MAX_CONNECTIONS=1GPUS_PER_NODE=1
MASTER_ADDR=localhost
MASTER_PORT=6001
NNODES=1
NODE_RANK="0"DISTRIBUTED_ARGS="--nproc_per_node $GPUS_PER_NODE \--nnodes $NNODES \--node_rank $NODE_RANK \--master_addr $MASTER_ADDR \--master_port $MASTER_PORT
"INFER_ARGS="--tokenizer-name-or-path /root/autodl-tmp/llama3.2-1b-tp1-pp1/ \--load-format megatron \--load /root/autodl-tmp/llama3.2-1b-tp1-pp1/ \--tensor-parallel-size 1 \--task chat \--prompt-type-path ./configs/model/templates.json \--prompt-type llama3"torchrun $DISTRIBUTED_ARGS cli/infer_vllm.py \$INFER_ARGS \--query "Write an essay about the importance of higher education." \--distributed-backend nccl

(3)llama32_1b模型定义

llama32_1b:use_mcore_models: truesequence_parallel: trueuse_flash_attn: trueuse_rotary_position_embeddings: trueuse_fused_rmsnorm: trueuse_fused_swiglu: truerope_scaling_type: llama3rope_scaling_factor: 32.0low_freq_factor: 1.0high_freq_factor: 4.0original_max_position_embeddings: 8192max_position_embeddings: 8192num_layers: 16hidden_size: 2048ffn_hidden_size: 8192num_attention_heads: 32group_query_attention: truenum_query_groups: 8make_vocab_size_divisible_by: 1padded_vocab_size: 128256disable_bias_linear: trueattention_dropout: 0.0init_method_std: 0.01hidden_dropout: 0.0position_embedding_type: roperotary_base: 500000normalization: RMSNormnorm_epsilon: 1e-5swiglu: trueno_masked_softmax_fusion: trueattention_softmax_in_fp32: trueno_gradient_accumulation_fusion: truebf16: true

启动脚本: sh examples/infer/infer_vllm_llama32_1b.sh

相关文章:

mindspeed-rl使用注意事项

1、安装 参考1:docs/install_guide.md R1-CLM/MindSpeed-RL - Gitee.com 参考2:VLLM x Ascend框架_vllm-ascend-CSDN博客 2、SFT微调 整体参考docs/supervised_finetune.md 自定义数据格式同:AUTO-DL 910B mindspeed-llm 4层DeepSeek …...

第 4 篇:平稳性 - 时间序列分析的基石

第 4 篇:平稳性 - 时间序列分析的基石 在上一篇中,我们学习了如何将时间序列分解为趋势、季节性和残差。我们看到,很多真实世界的时间序列(比如 CO2 浓度)都包含明显的趋势(长期向上或向下)和/…...

KRaft面试思路引导

Kafka实在2.8之后就用KRaft进行集群管理了 Conroller负责选举Leader,同时Controller管理集群元数据状态信息,并将元数据信息同步给各个分区的Leader 和Zookeeper管理一样,会选出一个Broker作为Controller去管理整个集群,但是元数…...

怎么建立自然语言领域的评价标准

怎么建立自然语言领域的评价标准 明确评价目标与对象 首先要清晰界定评价的目标,比如是评估模型对文本语义的理解能力、生成文本的质量,还是系统在信息检索中的表现等。同时,明确评价对象,可能是一个语言模型、一个问答系统、一个机器翻译工具等。确定评价维度与指标 语言…...

EMQX学习笔记

MQTT简介 MQTT是一种基于发布订阅模式的消息传输协议 消息:设备和设备之间传输的数据,或者服务和服务之间传输的数据 协议:传输数据时所遵循的规则 轻量级:MQTT协议占用的请求源较少,数据报文较小 可靠较强&#xff…...

组件是怎样写的(1):虚拟列表-VirtualList

本篇文章是《组件是怎样写的》系列文章的第一篇,该系列文章主要说一下各组件实现的具体逻辑,组件种类取自 element-plus 和 antd 组件库。 每个组件都会有 vue 和 react 两种实现方式,可以点击 https://hhk-png.github.io/components-show/ …...

CGAL 计算直线之间的距离(3D)

文章目录 一、简介二、实现代码三、实现效果一、简介 这里的计算思路很简单: 1、首先将两个三维直线均平移至过原点处,这里两条直线可以构成一个平面normal。 2、如果两个直线平行,那么两条直线之间的距离就转换为直线上一点到另一直线的距离。 3、如果两个直线不平行,则可…...

定期检查滚珠丝杆的频率是多久?

定期检查滚珠丝杆的频率通常是每半年进行一次‌,根据不同的使用环境和设备类型,滚珠丝杆的检查周期有所不同。接下来我们一起看看滚珠丝杆的维护保养方法:‌ 1、‌清洗‌:每隔一段时间对滚珠丝杆进行清洁,将滚珠丝杆拆…...

Spark-SQL连接Hive全攻略

在大数据处理领域,Spark-SQL与Hive的结合能发挥强大的功能。今天就来给大家分享一下Spark-SQL连接Hive的多种方式。 Spark SQL编译时可选择包含Hive支持,这样就能使用Hive表访问、UDF、HQL等特性,而且无需提前安装Hive。其连接方式丰富多样…...

在Ubuntu 18.04下编译OpenJDK 11

在Ubuntu 18.04下编译OpenJDK 11 源码下载地址: 链接: https://pan.baidu.com/s/1QAdu-B6n9KqeBakGlpBS3Q 密码: 8lho Linux下的环境要求 不同版本的jdk会要求在不同版本的Ubuntu下编译,不要用太高版本的Ubuntu或者gcc,特别是gcc&#xf…...

Spring MVC 一个简单的多文件上传

原始代码逐行解释 PostMapping("/uploads") // ① 声明处理POST请求,路径为"/uploads" ResponseBody // ② 直接返回数据到响应体,不进行视图解析 public String uploads(MultipartFile[] files, // …...

FreeRTos学习记录--1.工程创建与源码概述

1.工程创建与源码概述 1.1 工程创建 使用STM32CubeMX,可以手工添加任务、队列、信号量、互斥锁、定时器等等。但是本课程不想严重依赖STM32CubeMX,所以不会使用STM32CubeMX来添加这些对象,而是手写代码来使用这些对象。 使用STM32CubeMX时&…...

Vmware esxi 给现有磁盘增加空间后并扩展系统里磁盘空间

当前EXSI上虚拟机所在的单独数据磁盘空间满了,需要对空间进行扩容,我们先在主机对磁盘容量进行调整,然后在系统里面对磁盘空间进行拓展,这些操作需要保留数据并且不改变现有的磁盘格局。 遵循大致操作流程是: 1.先登录…...

Linux基础学习--linux的文件权限与目录配置

linux的文件权限与目录配置 1.用户与用户组 在Linux中,每个文件都有相当多的属性和权限,其中最重要的概念就是文件的拥有者。 1.1 文件拥有者 Linux是一个多人多任务的系统,常常有多人共用一台主机的情况出现,因此在系统中可以…...

LLM大模型中的基础数学工具—— 约束优化

Q26: 推导拉格朗日乘子法 的 KKT 条件 拉格朗日乘子法与 KKT 条件是啥? 拉格朗日乘子法是解决约束优化问题的利器。比如,想最小化函数 ,同时满足约束 ,就构造拉格朗日函数 ( 是乘子)。KKT 条件是解这类问…...

涨薪技术|0到1学会性能测试第20课-关联技术

前面的推文我们掌握了性能测试脚本开发参数化技术一系列知识,今天开始给大家分享关联技术知识,后续文章都会系统分享干货,带大家从0到1学会性能测试! 关联是LoadRunner中一个很重要的应用,对于初学者来说也是最容易犯错的地方,但是很遗憾的是,并没有任何特定的错误与关联…...

SpringAI入门示例

AI编程简介 纯Prompt模式 纯Prompt模式是AI编程中最基础的交互架构。用户通过输入自然语言文本(即Prompt)向AI模型发出指令,模型依据自身预训练所积累的知识和语言理解能力,直接生成相应的文本响应。其工作原理是,用…...

SQL 中 ROLLUP 的使用方法

ROLLUP 是 SQL 中一种分组操作,它生成多个分组集的小计行和总计行,提供层次化的汇总数据。 基本语法 SELECT column1, column2, ..., aggregate_function(column) FROM table GROUP BY ROLLUP (column1, column2, ...); 使用示例 假设有一个销售表 sal…...

Web前端:Overflow属性(超出裁剪属性)

一、什么是 Overflow&#xff1f; 在网页布局中&#xff0c;容器&#xff08;如 <div>、<section> 等&#xff09;通常有固定尺寸&#xff08;如 width 和 height&#xff09;。当容器内的内容&#xff08;文本、图片等&#xff09;超出容器边界时&#xff0c;就会…...

20250421在荣品的PRO-RK3566开发板的Android13下使用io命令控制GPIO

20250421在荣品的PRO-RK3566开发板的Android13下使用io命令控制GPIO 2025/4/21 10:44 【本文只打开了io命令。通过io控制GPIO放到下一篇了】 缘起&#xff1a;需要在荣品的PRO-RK3566开发板的Android13的u-boot中来控制GPIO3A1【配置以太网RTL8211F-CG】。 直接使用GPIO库函数 …...

20250421在荣品的PRO-RK3566开发板的Android13下频繁重启RKNPU fde40000.npu: Adding to iommu gr

20250421在荣品的PRO-RK3566开发板的Android13下频繁重启RKNPU fde40000.npu: Adding to iommu gr 2025/4/21 14:50 缘起&#xff1a;电池没电了&#xff0c;导致荣品的PRO-RK3566的核心板频繁重启。 内核时间4s就重启。100%复现。 PRO-RK3566 Android13启动到这里 复位&#…...

在 8MHz 的时钟电路中挂接电阻,电容

匹配电阻&#xff1a;在晶体振荡电路中&#xff0c;用于匹配晶体和振荡电路的阻抗&#xff0c;确保振荡的稳定性&#xff0c;阻值通常在几十千欧到几百千欧&#xff0c;例如 1MΩ、33KΩ、47KΩ 等。 在一些电子电路中&#xff0c;尤其是涉及到时钟信号的产生和传输时&#xf…...

卸载工具:IObit Uninstaller Pro v14.3.0 中文绿色专业便携版

IObit Uninstaller 是一种功能强大的卸载工具&#xff0c;可帮助您快速方便地从计算机中移除不需要的程序和文件夹。它不仅仅可以从计算机中卸载应用程序&#xff0c;还可以移除它们的卸载残留。可以检测和分类所有已安装的程序&#xff0c;并可以批量卸载&#xff0c;只需一键…...

【目标检测】目标检测综述 目标检测技巧

I. 目标检测中标注的关键作用 A. 目标检测数据标注的定义 目标检测是计算机视觉领域的一项基础且核心的任务&#xff0c;其目标是在图像或视频中准确识别并定位出预定义类别的目标实例 1。数据标注&#xff0c;在目标检测的语境下&#xff0c;指的是为原始视觉数据&#xff0…...

c++基础·move作用,原理

目录 一、代码结构概览 二、逐层解析实现逻辑 1. 模板参数推导 2. 返回类型设计 3. 类型转换逻辑 三、关键特性与设计思想 1. 移动语义的本质 2. 为何必须用 remove_reference 3. 万能引用的兼容性 四、边界场景与注意事项 1. 对 const 对象的处理 2. 返回值优化&a…...

考研系列-计算机网络-第四章、网络层

一、网络层的概述和功能 1.功能概述 2.SDN的基本概念...

服务器在国外国内用户访问慢会影响谷歌排名吗?

谷歌明确将“页面加载速度”和“用户体验”作为排名核心指标&#xff0c;但当服务器物理距离过远时&#xff0c;国内用户动辄3秒以上的加载延迟&#xff0c;可能导致跳出率飙升、爬虫抓取困难等连锁反应。 但盲目将服务器迁回国内&#xff0c;又会面临备案成本、运维门槛等新难…...

iFable,AI角色扮演互动平台,自动生成沉浸式故事游戏

iFable是什么 iFable 是一个以动漫角色为主题的互动角色扮演游戏平台&#xff0c;旨在为用户提供沉浸式的故事冒险体验。平台允许玩家通过简单的创意输入&#xff0c;利用AI技术生成独特的互动故事与游戏体验。iFable 的设计宗旨在于帮助玩家与虚拟角色建立情感连接&#xff0…...

Nginx反向代理用自定义Header参数

【啰嗦两句】 也不知道为啥&#xff0c;我仅仅想在Nginx的反向代理中使用自己定义的“x-api-key”做Header参数&#xff0c;却发现会被忽略&#xff0c;网上搜的资料都是说用“proxy_set_header”&#xff0c;却只愿意介绍最基本的几个参数&#xff0c;你懂的&#xff0c;那些资…...

Spark SQL概述(专业解释+生活化比喻)

专业解释 一、什么是Spark SQL&#xff1f; 一句话定义&#xff1a; Spark SQL是Apache Spark中专门处理结构化数据的模块&#xff0c;可以让你像操作数据库表一样处理数据&#xff0c;支持用SQL查询或编程API&#xff08;DataFrame/DataSet&#xff09;分析数据。 通俗理解…...

LX3-初识是单片机

初识单片机 一 什么是单片机 单片机:单片微型计算机单片机的组成:CPU,RAM(内存),flash(硬盘),总线,时钟,外设…… 二 Coretex-M系列介绍 了解ARM公司与ST公司ARM内核系列: A 高性能应用,如手机,电脑…R 实时性强,如汽车电子,军工…M 超低功耗,如消费电子,家电,医疗器械 三…...

第二章 Logback的架构(一)

Logback的架构 Logback作为一个通用框架&#xff0c;可以应对不同场景的日志记录。目前&#xff0c;Logback 被划分为三个模块&#xff1a;logback-core、logback-classic 和 logback-access。 Logback的core模块为其他两个模块提供基础支持。classic模块扩展了core模块&…...

开发指南:构建结合数字孪生、大语言模型与知识图谱的智能设备日志分析及生产异常预警系统

1. 引言&#xff1a;数字孪生、大语言模型与知识图谱在智能制造中的融合 智能制造和工业4.0的浪潮正在重塑全球制造业格局&#xff0c;其核心在于利用先进的数字技术实现生产过程的实时决策、效率提升、灵活性增强和敏捷性改进。在这一转型过程中&#xff0c;数字孪生&#xf…...

【TeamFlow】4.1 Git使用指南

以下是 Git 在 Windows 系统上的配置和使用指南&#xff0c;包含详细步骤和注意事项&#xff1a; 安装 Git for Windows 下载与安装 前往 Git 官网 下载 Windows 版安装包 双击安装&#xff0c;关键选项建议&#xff1a; 选择 Use Git from Git Bash only&#xff08;推荐&…...

HADOOP 3.4.1安装和搭建(尚硅谷版~)

目录 1.配置模版虚拟机 2.克隆虚拟机 3.在hadoop102安装JDK 4.完全分布式运行模式 1.配置模版虚拟机 1.安装模板虚拟机&#xff0c;IP地址192.168.10.100、主机名称hadoop100、内存2G、硬盘20G&#xff08;有需求的可以配置4G内存&#xff0c;50G硬盘&#xff09; 2.hado…...

通过Docker Desktop配置OpenGauss数据库的方法(详细版+图文结合)

文章目录 通过Docker Desktop配置OpenGauss数据库的方法**一、下载Docker Desktop&#xff0c;并完成安装**docker官网&#xff1a;https://www.docker.com/ **二、下载OpenGauss压缩包**安装包下载链接&#xff1a;https://opengauss.obs.cn-south-1.myhuaweicloud.com/7.0.0-…...

文件有几十个T,需要做rag,用ragFlow能否快速落地呢?

一、RAGFlow的优势 1、RAGFlow处理大规模数据性能&#xff1a; &#xff08;1&#xff09;、RAGFlow支持分布式索引构建&#xff0c;采用分片技术&#xff0c;能够处理TB级数据。 &#xff08;2&#xff09;、它结合向量搜索和关键词搜索&#xff0c;提高检索效率。 &#xf…...

SystemVerilog语法之内建数据类型

简介&#xff1a;SystemVerilog引进了一些新的数据类型&#xff0c;具有以下的优点&#xff1a;&#xff08;1&#xff09;双状态数据类型&#xff0c;更好的性能&#xff0c;更低的内存消耗&#xff1b;&#xff08;2&#xff09;队列、动态和关联数组&#xff0c;减少内存消耗…...

TensorFlow和PyTorch学习原理解析

这里写目录标题 TensorFlow和PyTorch学习&原理解析TensorFlow介绍原理部署适用场景 PyTorch介绍原理部署适用场景 Keras模型格式SavedModelONNX格式 TensorFlow和PyTorch学习&原理解析 TensorFlow 介绍 由 Google Brain 团队开发并于 2015 年开源。由于 Google 的强…...

悬空引用和之道、之禅-《分析模式》漫谈57

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 “Analysis Patterns”的第5章“对象引用”原文&#xff1a; Unless you can catch all such references, there is the risk of a dangling reference, which often has painful con…...

江湖密码术:Rust中的 bcrypt 加密秘籍

前言 江湖险恶,黑客如雨,昔日密码“123456”早被各路大侠怒斥为“纸糊轻功”。若还执迷不悟,用明文密码闯荡江湖,无异于身披藏宝图在集市上狂奔,目标大到闪瞎黑客双眼。 为护你安然度过每一场数据风波,特献上一门绝学《Rust加密神功》。核心招式正是传说中的 bcrypt 密…...

NLP高频面试题(四十八)大语言模型中的思维链(CoT)技术详解

引言 大语言模型(LLM)在近年的飞速发展,让机器在各种任务上表现出令人瞩目的能力。然而,与人类不同,传统的语言模型往往倾向于直接给出答案,而缺乏可解释的中间推理过程。这在复杂推理任务中成为瓶颈:模型可能由于一步推理不当而得出错误结论,却没有过程可供检查。为了…...

对接点餐接口需要有哪些准备?

以下是一般点餐接口对接的相关信息&#xff0c;包括常见的接口功能、对接步骤及注意事项等&#xff1a; 常见接口功能 餐厅信息查询&#xff1a;获取合作餐厅的基本信息&#xff0c;如餐厅名称、地址、营业时间、联系电话、菜单等。菜品查询&#xff1a;查询具体餐厅的菜品详情…...

LintCode第192题-通配符匹配

描述 给定一个字符串 s 和一个字符模式 p &#xff0c;实现一个支持 ? 和 * 的通配符匹配。匹配规则如下&#xff1a; ? 可以匹配任何单个字符。* 可以匹配任意字符串&#xff08;包括空字符串&#xff09;。 两个串完全匹配才算匹配成功。 样例 样例1 输入: "aa&q…...

uv运行一个MCP Server的完整流程

uv是一个高性能的Python包管理器&#xff0c;专注于性能提升。与pip相比&#xff0c;uv利用全局模块缓存&#xff0c;减少磁盘空间使用&#xff0c;并支持Linux、Windows和macOS系统。安装uv可以通过多种方式实现&#xff0c;例如使用Homebrew、Pacman、pip等。 step 1 安装uv:…...

ts中的类型

在 TypeScript 中&#xff0c;类型是静态类型系统的核心&#xff0c;用于在编译阶段检查代码的正确性。TypeScript 提供了丰富的类型系统&#xff0c;包括基本的原始类型、复合类型、以及用户自定义的类型。以下是对 TypeScript 中各种类型的详细分类和说明&#xff1a; 1. 原…...

把dll模块注入到游戏进程的方法_基于文件修改的注入方式

1、概述 本文主要是介绍两种基于文件修改的注入方式,一种是“DLL劫持”,另一种是“修改导入表”。这两种注入方式都是利用操作系统加载PE时的特点来实现的,我们在实现这两种注入方式时只需专注于注入dll的实现,而不用花费额外的精力去关注注入器的实现。要想深入了解这两种…...

判断点是否在多边形内

代码段解析: const intersect = ((yi > y) !== (yj > y)) && (x < (xj - xi) * (y - yi) / (yj - yi) + xi); 第一部分:(yi > y) !== (yj > y) 作用:检查点 (x,y) 的垂直位置是否跨越多边形的当前边。 yi > y 和 yj > y 分别检查边的两个端…...

【形式化验证基础】活跃属性Liveness Property和安全性质(Safety Property)介绍

文章目录 一、Liveness Property1、概念介绍2、形式化定义二、Safety Property1. 定义回顾2. 核心概念解析3. 为什么强调“有限前缀”4. 示例说明4.1 示例1:交通信号灯系统4.2 示例2:银行账户管理系统5. 实际应用的意义三. 总结一、Liveness Property 1、概念介绍 在系统的…...

Linux——信号(2)信号保存与捕捉

一、信号的保存 上次我们说到&#xff0c;捕捉一个信号后有三种处理方式&#xff1a;默认、忽略、自定义&#xff0c;其中自定义我们用signal系统调用完成&#xff0c;至于忽略信号&#xff0c;也需要signal实现&#xff0c;比如我现在想忽略2号信号&#xff0c;则&#xff1a…...