文心4.5多模态大模型驱动的壁画一站式修复及智能评估系统

文心4.5驱动壁画修复系统

文心4.5多模态大模型驱动的壁画一站式修复及智能评估系统

1 项目介绍

本项目聚焦于壁画的保护与修复,致力于将AI大模型技术与文化遗产保护深度融合,构建面向文化遗产保护与旅游服务的垂直领域多模态大模型。通过系统整合壁画图像、文物档案、文化释义文本及旅游目的地数据,研发集虚拟修复、智能导览与文化创作为一体的AI系统。项目依托昇腾AI平台和壁画等多源文化资源,构建面向垂直领域的视觉-语言联合大模型,推动AI在文化修复、智能游览、内容生成等场景中的创新应用,旨在通过创新的手段实现壁画的虚拟修复及损伤分割研究,同时探索文化遗产保护的新创业方向。

2 部署指南

本项目微调的大模型可直接基于Fastdeploy部署

# 配置ERNIEKit
!git clone https://github.com/PaddlePaddle/ERNIE
%cd ERNIE
!python -m pip install -r requirements/gpu/requirements.txt
!python -m pip install -e .
%cd ..
# 配置FastDeploy
!python -m pip install fastdeploy-gpu==2.3.0 -i https://www.paddlepaddle.org.cn/packages/stable/fastdeploy-gpu-80_90/ --extra-index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
# 下载微调过的模型
!aistudio download --model geeet/mural-ERNIE4.5-21B --local_dir ./
# 部署方式
from fastdeploy import LLM, SamplingParams

prompts = [
"3条长短不一的裂痕,局部颜料褪色不均,边缘残缺,背景图案断裂;修复后视觉描述:裂痕隐匿,残缺补全,背景图案连贯,补色过渡稍显生硬;量化指标:PSNR=25dB,SSIM=0.86,MSE=21",
]
# 采样参数
sampling_params = SamplingParams(temperature=0.8, top_p=0.95)

llm = LLM(model="./mural-ERNIE4.5-21B",tensor_parallel_size=1,max_model_len=4096)

# 批量进行推理(llm内部基于资源情况进行请求排队、动态插入处理)
outputs = llm.generate(prompts, sampling_params)

# 输出结果
for output in outputs:
    prompt = output.prompt
    generated_text = output.outputs.text

3 数据集展示

本项目数据集由ERNIE4.5-VL模型提供修复前后壁画的视觉描述+量化脚本提供的三大量化指标对应美学修复评估语料构成,包含2000条数据样本。以下是数据集展示

# 下载数据集
!aistudio download --dataset geeet/mural --local_dir ./
import json
from typing import Optional, List

def show_jsonl_top_n(file_path, top_n = 10, encoding = "utf-8"):
    # 存储读取到的有效数据
    valid_records: List[dict] = []
    # 统计错误行
    error_lines: int = 0
    
    try:
        # 打开文件并逐行读取
        with open(file_path, "r", encoding=encoding) as f:
            for line_num, line in enumerate(f, 1):  # line_num 从1开始计数
                # 跳过空行
                line = line.strip()
                if not line:
                    continue
                
                try:
                    # 解析 JSON 行
                    record = json.loads(line)
                    valid_records.append((line_num, record))
                    
                    # 达到指定条数后停止读取
                    if len(valid_records) >= top_n:
                        break
                        
                except json.JSONDecodeError as e:
                    # 处理 JSON 解析错误
                    error_lines += 1
                    print(f"⚠️  第 {line_num} 行 JSON 格式错误: {str(e)}")
        
        # 展示结果统计
        print(f"📊 读取完成 - 有效行数: {len(valid_records)}, 错误行数: {error_lines}\n")
        
        # 展示前 N 条数据
        print(f"=== JSONL 文件前 {min(top_n, len(valid_records))} 条数据 ===")
        for line_num, record in valid_records:
            print(f"\n【第 {line_num} 行】")
            # 格式化输出 JSON(缩进2个空格,确保中文正常显示)
            print(json.dumps(record, ensure_ascii=False, indent=2))
    
    except FileNotFoundError:
        print(f"❌ 错误: 找不到文件 '{file_path}'")
    except PermissionError:
        print(f"❌ 错误: 没有读取文件 '{file_path}' 的权限")
    except Exception as e:
        print(f"❌ 未知错误: {str(e)}")

if __name__ == "__main__":
    JSONL_FILE_PATH = "mural/sft_train.jsonl"
    show_jsonl_top_n(JSONL_FILE_PATH)

4 模型训练

模型训练使用STF-LoRA的微调训练方式,按照数据准备、模型微调和模型权重合并导出流程

# 下载数据集
!aistudio download --dataset geeet/mural --local_dir ./
# 下载模型权重
!aistudio download --model PaddlePaddle/ERNIE-4.5-21B-A3B-Base-Paddle --local_dir baidu/ERNIE-4.5-21B-A3B-Base-Paddle
# 模型微调
erniekit train ERNIE/examples/configs/ERNIE-4.5-21B-A3B/sft/run_sft_lora_8k.yaml model_name_or_path=baidu/ERNIE-4.5-21B-A3B-Base-Paddle
# 权重合并
erniekit train ERNIE/examples/configs/ERNIE-4.5-21B-A3B/sft/run_sft_lora_8k.yaml model_name_or_path=baidu/ERNIE-4.5-21B-A3B-Base-Paddle

5 推理代码

训练好的ERNIEKit权重可以通过集成的CLI工具直接通过FastDeploy部署。

# 注意修改yaml中的模型路径:./output/export
!erniekit server ERNIE/examples/configs/ERNIE-4.5-21B-A3B/run_chat.yaml
!erniekit chat ERNIE/examples/configs/ERNIE-4.5-21B-A3B/run_chat.yaml

6 使用示例

6.1 通过CLI工具使用fastdeploy后端直接推理

# 注意修改yaml中的模型路径
!erniekit server ERNIE/examples/configs/ERNIE-4.5-21B-A3B/run_chat.yaml
!erniekit chat ERNIE/examples/configs/ERNIE-4.5-21B-A3B/run_chat.yaml
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值