You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Amazon SageMaker中使用多份PDF文档微调Llama 2-7B模型?

基于PDF提取文本的AWS模型微调实现思路

一、清洗提取后的PDF文本

PDF提取的文本通常存在冗余或格式问题,先做预处理:

  • 用正则re.sub()匹配并删除重复的页眉、页脚、页码(比如re.sub(r'^\d+\s*$', '', line, flags=re.MULTILINE))
  • 修复断行:把被换行拆分的完整语句合并(比如判断行尾是否是标点,不是则和下一行拼接)
  • 过滤乱码、特殊符号,统一文本编码为UTF-8
  • 拆分长文本为逻辑独立的段落或知识点块,方便后续生成训练数据

二、将清洗后的文本转换为AWS微调兼容的CSV格式

AWS微调支持的CSV核心是明确的输入输出对,根据你的微调目标选择对应格式:

场景1:指令/问答微调(最常用)

把PDF中的知识点转化为问答对或指令-响应对:

  • 列名固定为prompt,completion
  • 示例数据:
    "请解释文档中的XX概念?","XX是指XXX,主要应用于XXX场景..."
    "总结以下段落:[PDF中某段文本]","该段落核心内容为XXX,重点说明XXX"
    
  • 注意:用双引号包裹内容避免逗号冲突,prompt结尾可添加模型要求的分隔符(比如Claude要求\n\nHuman:开头,\n\nAssistant:作为响应前缀)

场景2:文本补全微调

适合让模型学习PDF的行文逻辑或内容延续性:

  • 把长文本切成固定长度的片段,前半部分作为prompt,后半部分作为completion
  • 示例:
    "PDF片段前半部分内容...","PDF片段后半部分内容..."
    

工具辅助转换

用pandas快速生成合规CSV:

import pandas as pd
import csv

# 假设已生成问答对列表qa_pairs = [{"prompt": "...", "completion": "..."}]
df = pd.DataFrame(qa_pairs)
df.to_csv("fine_tune_data.csv", index=False, quoting=csv.QUOTE_ALL)

三、AWS平台上的微调操作

基于AWS官方提供的CSV微调流程执行:

  • 把生成的CSV上传到AWS S3存储桶,确保桶权限允许微调服务(Bedrock/SageMaker)读取
  • Bedrock路径:控制台进入Bedrock → 模型微调 → 创建作业 → 选择基础模型 → 指定S3中CSV的路径 → 设置训练参数(epoch数、学习率)→ 启动作业
  • SageMaker路径:导入CSV到S3 → 选择对应模型的微调脚本(比如Hugging Face框架)→ 配置训练实例类型 → 运行训练作业

四、验证与迭代

  • 用未参与微调的PDF知识点作为测试prompt,调用微调后的模型,检查输出的准确性、相关性
  • 若效果不佳,可调整训练数据的质量(比如增加更多问答对)、微调参数(比如降低学习率)或调整文本拆分逻辑

内容的提问来源于stack exchange,提问作者GLADOS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 10:35:08