(三)碎碎念接口优化--GC异常

线上促销系统因GC异常导致功能受影响,异常表现为SerializationException和OutOfMemoryError。初步判断为Redis序列化问题,尝试更新调用方jar版本未解决问题。进一步分析发现可能是Redis序列化方式更改导致旧数据无法反序列化。重启Redis服务后异常消失,但原因仍不明。通过调整JVM参数和研究GC行为,推测老年代内存不足或配置不当可能是根本原因。未来需深入测试和分析以确定解决方案。

        促销系统在运行很长的一段时间里,突然报错了,影响了线上的一些功能。

上异常,报出的GC异常如下。

java.lang.RuntimeException: org.springframework.data.redis.serializer.SerializationException: Cannot deserialize; nested exception is org.springframework.core.serializer.support.SerializationFailedException: Failed to deserialize payload. Is the byte array a result of corresponding serialization for DefaultDeserializer?; nested exception is java.lang.OutOfMemoryError: GC overhead limit exceeded


        由于是线上问题,简单看表面是redis问题,根儿上是GC问题,于是不管三七二十一,先把系统重启了,重启后一段时间貌似是可以的,但是之后还是会报这个异常。

        尝试修改一

        而后仔细看了这个貌似是redis序列化问题,貌似是从redis中取出来的东西不能反序列化,导致内存中的数据越来越大,于是想到了之前促销系统的版本升级,可能促销系统的某个类添加了一个字段,然后升级了一个版本,但是对应的调用方没有升级版本,导致的序列化失败?所以把soa调用促销系统的jar,版本升级为最新的版本,但是重启后仍然还是报如上的那个错误,看样子问题不在于此。

        尝试修改二

        既然提示是序列化问题,难道是redis序列化方式有问题了?

        后来查看了spirng对redis序列化配置

<bean id="masterRedisTemplate" class="org.springframework.data.redis.core.RedisTemplate" p:connectionFactory-ref="masterJedisConnectionFactory">
		<property name="keySerializer" ref="stringRedisSerializer"/>
		<property name="hashKeySerializer" ref="stringRedisSerializer"/>
	</bean>

        难道value序列化有问题了?于是添加上了redis value的序列化

### 使用 LLaMA-Factory 对 Qwen2.5-VL 进行微调 为了实现对 Qwen2.5-VL 的微调操作,可以参考 LLaMA-Factory 提供的相关功能以及其配置文件中的参数设置[^1]。以下是具体方法: #### 配置数据参数 在 `data_args.py` 文件中定义的数据参数部分,需调整以适配 Qwen2.5-VL 数据输入需求。例如,在指定路径时应考虑视觉语言模型特有的多模态数据结构。 ```python from dataclasses import dataclass, field @dataclass class DataArguments: dataset_name: str = field(default="my_custom_dataset", metadata={"help": "The name of the dataset to use."}) max_seq_length: int = field(default=512, metadata={"help": "Maximum sequence length."}) image_size: int = field(default=224, metadata={"help": "Image size for vision tasks."}) # 新增图像尺寸支持 ``` 上述代码片段展示了如何扩展默认参数来适应视觉任务的需求,特别是针对图像大小的设定。 #### 修改训练脚本 对于实际执行微调过程,则需要修改主训练脚本来加载预训练权重并初始化优化器等相关组件。这里假设已下载好对应版本的 Qwen 权重文件。 ```bash #!/bin/bash export MODEL_NAME_OR_PATH=qwen/Qwen2.5-VL export OUTPUT_DIR=./output_qwen_vl_finetune torchrun --nproc_per_node 4 run_clm.py \ --model_name_or_path $MODEL_NAME_OR_PATH \ --train_file ./path_to_your_training_data.json \ --validation_split_percentage 5 \ --per_device_train_batch_size 8 \ --gradient_accumulation_steps 4 \ --learning_rate 5e-5 \ --weight_decay 0.01 \ --num_train_epochs 3 \ --save_strategy epoch \ --logging_dir ./logs/qwen_vl_log \ --output_dir $OUTPUT_DIR ``` 此脚本设置了分布式运行环境,并指定了必要的超参调节选项以便更好地完成目标任务。 #### 注意事项 当处理像 Qwen2.5-VL 这样的大型多模态模型时,请务必注意硬件资源分配情况;如果显存不足可适当降低 batch size 或启用 gradient checkpointing 技术减少内存消耗。 ---
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值