DeepSeek-OCR-2入门实战识别结果后处理清洗/段落合并/标题识别1. 从识别到实用为什么需要后处理当你用DeepSeek-OCR-2完成文档识别后可能会发现原始识别结果并不完美。文字可能有错别字段落被错误分割标题和正文混在一起。这时候就需要后处理来让识别结果变得真正可用。后处理就像是给OCR结果做美容手术清洗掉识别错误、合并被分割的段落、识别出标题结构。经过这些处理原始的文字识别结果就能变成结构清晰、可直接使用的文档内容。DeepSeek-OCR-2本身识别准确率很高但在复杂文档中仍需要后处理来提升实用性。本文将手把手教你如何实现这三种核心后处理技术。2. 环境准备与快速部署2.1 基础环境要求确保你的系统满足以下要求Python 3.8或更高版本至少8GB内存处理大文档时建议16GB以上GPU可选但能显著提升处理速度2.2 安装必要依赖# 创建虚拟环境可选但推荐 python -m venv ocr_env source ocr_env/bin/activate # Linux/Mac # 或 ocr_env\Scripts\activate # Windows # 安装核心依赖 pip install deepseek-ocr pip install gradio # 用于Web界面 pip install vllm # 用于推理加速 pip install pandas numpy # 数据处理2.3 快速验证安装import deepseek_ocr print(DeepSeek-OCR版本:, deepseek_ocr.__version__) # 简单测试 from deepseek_ocr import DeepSeekOCR ocr_model DeepSeekOCR.from_pretrained(deepseek-ai/deepseek-ocr-2) print(模型加载成功!)3. 识别结果清洗让文字更准确3.1 常见识别错误类型OCR识别可能产生多种错误字符混淆如0和O1和l空格问题多余空格或缺少空格标点错误错误识别标点符号排版噪声保留不必要的换行和空格3.2 基础清洗方法def basic_text_clean(text): 基础文本清洗函数 # 修复常见字符混淆 char_replacements { : 0, : 1, : 2, : 3, : 4, : 5, : 6, : 7, : 8, : 9, : ., : ,, : ;, : :, : !, : ?, : (, : ), 【: [, 】: ] } for old, new in char_replacements.items(): text text.replace(old, new) # 移除多余空格保留英文单词间的单个空格 text .join(text.split()) # 修复中英文混排空格问题 import re text re.sub(r([a-zA-Z])([\u4e00-\u9fff]), r\1 \2, text) # 英文后接中文加空格 text re.sub(r([\u4e00-\u9fff])([a-zA-Z]), r\1 \2, text) # 中文后接英文加空格 return text # 使用示例 raw_text 这是个示例文本It has some issues需要修复。 cleaned_text basic_text_clean(raw_text) print(清洗前:, raw_text) print(清洗后:, cleaned_text)3.3 高级清洗技巧对于更复杂的清洗需求可以使用规则统计的方法def advanced_text_clean(text, custom_rulesNone): 高级文本清洗包含统计校正 # 常用词词典可根据领域扩展 common_words set([的, 是, 在, 和, 与, 及, 等, 我, 你, 他]) # 分句处理 sentences text.split(。) cleaned_sentences [] for sentence in sentences: if not sentence.strip(): continue words sentence.split() cleaned_words [] for word in words: # 简单的拼写检查可扩展为使用专业词典 if word not in common_words and len(word) 1: # 单字可能为识别错误但需要谨慎处理 cleaned_words.append(word) else: cleaned_words.append(word) cleaned_sentences.append( .join(cleaned_words)) result 。.join(cleaned_sentences) # 应用自定义规则 if custom_rules: for pattern, replacement in custom_rules.items(): result result.replace(pattern, replacement) return result4. 段落合并还原文档结构4.1 识别段落边界OCR通常会将段落拆分成多行我们需要智能地合并它们def merge_paragraphs(lines, max_line_length80): 智能段落合并算法 lines: 识别出的文本行列表 max_line_length: 认为可能是段落结束的最大行长度 paragraphs [] current_paragraph [] for i, line in enumerate(lines): line line.strip() if not line: continue # 如果当前行很短可能是段落结束 if len(line) max_line_length and line[-1] in [。, !, ?, ;]: if current_paragraph: current_paragraph.append(line) paragraphs.append( .join(current_paragraph)) current_paragraph [] else: paragraphs.append(line) else: # 检查是否是列表项或标题 if line.startswith((•, -, *, ○, □)) or len(line) 30: if current_paragraph: paragraphs.append( .join(current_paragraph)) paragraphs.append(line) current_paragraph [] else: current_paragraph.append(line) # 处理最后一个段落 if current_paragraph: paragraphs.append( .join(current_paragraph)) return paragraphs # 使用示例 sample_lines [ 这是第一行的文本内容, 它应该与下一行合并。, 这是新的段落开始, 因为上一行很短且有句号。, 这个段落很长很长很长很长很长很长很长, 但它没有结束标点所以继续, 直到这一行结束。 ] paragraphs merge_paragraphs(sample_lines) for i, para in enumerate(paragraphs, 1): print(f段落{i}: {para})4.2 处理复杂排版对于包含表格、列表的复杂文档def advanced_paragraph_merging(lines): 处理复杂排版的段落合并 paragraphs [] current_para [] in_list False # 是否在列表中 for line in lines: line line.strip() if not line: continue # 检测列表项 is_list_item any(line.startswith(prefix) for prefix in [•, -, *, ○, □, ●]) if is_list_item: if current_para: paragraphs.append( .join(current_para)) current_para [] paragraphs.append(line) in_list True elif in_list and len(line) 50: # 短行可能是列表继续 paragraphs[-1] paragraphs[-1] line else: in_list False if should_start_new_paragraph(line, current_para): if current_para: paragraphs.append( .join(current_para)) current_para [line] else: current_para.append(line) if current_para: paragraphs.append( .join(current_para)) return paragraphs def should_start_new_paragraph(line, current_para): 判断是否应该开始新段落 if not current_para: return True last_line current_para[-1] # 上一行以句号结束且当前行可能是新段落开始 if (last_line.endswith((。, !, ?, ;)) and (len(line) 60 or line[0].isupper() or line[0].isdigit())): return True # 当前行可能是标题或章节 if (len(line) 50 and not any(c in line for c in [。, , 、]) and not line.endswith((的, 了, 是, 在))): return True return False5. 标题识别提取文档结构5.1 基于规则的标题识别def detect_headings(text_blocks): 识别文本块中的标题 headings [] content_structure [] heading_indicators [ # 数字标题模式 r^\d\.\s, r^\d\.\d\s, r^第\d章\s, r^第\d节\s, # 中文标题模式 r^[一二三四五六七八九十]、, r^[一二三四五六七八九十]\s, # 符号标题 r^•\s, r^-\s, r^\*\s, # 英文标题模式 r^[A-Z][A-Z\s]\s*$, r^[A-Z][a-z]\s[A-Z][a-z]\s*$ ] for block in text_blocks: block block.strip() if not block: continue is_heading False # 检查标题模式 for pattern in heading_indicators: if re.search(pattern, block): is_heading True break # 检查长度和内容特征 if not is_heading: if (len(block) 50 and not any(punct in block for punct in [。, , ]) and not block.endswith((的, 了, 是, 和))): is_heading True if is_heading: headings.append(block) content_structure.append({type: heading, content: block}) else: content_structure.append({type: paragraph, content: block}) return headings, content_structure # 使用示例 sample_blocks [ 第一章 引言, 本文主要介绍深度学习在OCR中的应用, 1.1 研究背景, 随着人工智能技术的发展OCR技术取得了显著进步, 第二章 相关工作, 传统OCR方法主要基于图像处理 ] headings, structure detect_headings(sample_blocks) print(识别出的标题:, headings)5.2 基于机器学习的标题识别对于更复杂的文档可以使用机器学习方法def ml_based_heading_detection(text_blocks): 基于机器学习的标题识别简化版 import numpy as np from sklearn.ensemble import RandomForestClassifier # 特征提取函数 def extract_features(text): features [] # 文本长度 features.append(len(text)) # 标点符号数量 features.append(sum(1 for c in text if c in 。)) # 是否包含数字 features.append(1 if any(c.isdigit() for c in text) else 0) # 是否包含常见标题词 title_words [章, 节, 目录, 摘要, 引言, 结论] features.append(1 if any(word in text for word in title_words) else 0) # 行首特征 features.append(1 if text[:2] in [第, 一, 二, 三] else 0) return features # 提取所有特征 X [extract_features(block) for block in text_blocks] # 简单启发式规则生成训练标签实际应用中应该使用标注数据 y [] for block in text_blocks: if (len(block) 40 and not any(punct in block for punct in [。, ]) and (block.startswith((第, 一, 二, 三)) or re.match(r^\d\., block))): y.append(1) # 标题 else: y.append(0) # 非标题 # 训练简单分类器 if len(set(y)) 1: # 确保有正负样本 clf RandomForestClassifier(n_estimators10, random_state42) clf.fit(X, y) predictions clf.predict(X) else: predictions y # 组织结果 headings [block for block, pred in zip(text_blocks, predictions) if pred 1] structure [] for block, pred in zip(text_blocks, predictions): structure.append({ type: heading if pred 1 else paragraph, content: block }) return headings, structure6. 完整实战示例6.1 构建完整的OCR后处理流水线class OCRPostProcessor: OCR后处理完整流水线 def __init__(self): self.clean_rules { ..: ., ,,: ,, : } def process_document(self, ocr_result): 完整的文档处理流程 # 1. 文本清洗 cleaned_text self.clean_text(ocr_result) # 2. 分行处理模拟OCR的行级输出 lines cleaned_text.split(\n) lines [line.strip() for line in lines if line.strip()] # 3. 段落合并 paragraphs merge_paragraphs(lines) # 4. 标题识别 headings, structure detect_headings(paragraphs) # 5. 生成结构化输出 structured_output self.create_structured_output(structure) return structured_output def clean_text(self, text): 文本清洗 text basic_text_clean(text) text advanced_text_clean(text, self.clean_rules) return text def create_structured_output(self, structure): 生成结构化输出 output { metadata: { total_paragraphs: sum(1 for item in structure if item[type] paragraph), total_headings: sum(1 for item in structure if item[type] heading), processing_time: 实时 }, content: structure } return output # 使用示例 processor OCRPostProcessor() # 模拟OCR识别结果 sample_ocr_output 第章 引言 本文主要介绍深度学习在OCR中的应用随着人工智能技术的发展 OCR技术取得了显著进步。 1.1 研究背景 传统OCR方法主要基于图像处理技术但存在诸多限制。现代深度 学习方法大大提升了识别准确率。 第二章 相关工作 近期研究集中在端到端的OCR系统开发上。 result processor.process_document(sample_ocr_output) print(处理结果:, result)6.2 与DeepSeek-OCR-2集成def complete_ocr_pipeline(image_path): 完整的OCR处理流水线从图像到结构化文本 # 1. 使用DeepSeek-OCR-2进行识别 from deepseek_ocr import DeepSeekOCR ocr_model DeepSeekOCR.from_pretrained(deepseek-ai/deepseek-ocr-2) # 使用vLLM加速推理 import vllm # 这里需要根据实际API调整 # 进行OCR识别 raw_text ocr_model.recognize(image_path) # 2. 后处理 processor OCRPostProcessor() structured_result processor.process_document(raw_text) return structured_result # 实际使用示例 # result complete_ocr_pipeline(your_document.jpg) # print(result)7. 总结通过本文的学习你应该已经掌握了DeepSeek-OCR-2识别结果后处理的三个核心技术文本清洗、段落合并和标题识别。这些技术能让原始OCR结果变得真正实用。关键要点回顾文本清洗不只是简单替换需要结合规则和统计方法处理各种识别错误段落合并需要智能判断段落边界处理各种复杂的排版情况标题识别可以基于规则也可以使用机器学习方法根据文档复杂度选择完整流水线将这些技术组合起来实现从原始识别到结构化输出的完整处理实践建议开始时使用本文提供的基础方法根据实际效果逐步调整针对特定类型的文档如学术论文、技术文档、新闻报道定制处理规则使用真实文档测试并持续优化处理效果下一步学习方向探索更先进的NLP技术来进一步提升处理质量学习如何处理表格、数学公式等特殊内容了解如何将处理结果导出为常用格式Word、PDF、HTML等记住好的后处理能让OCR识别结果的价值提升数倍。现在就开始动手实践吧获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。
DeepSeek-OCR-2入门实战:识别结果后处理(清洗/段落合并/标题识别)
DeepSeek-OCR-2入门实战识别结果后处理清洗/段落合并/标题识别1. 从识别到实用为什么需要后处理当你用DeepSeek-OCR-2完成文档识别后可能会发现原始识别结果并不完美。文字可能有错别字段落被错误分割标题和正文混在一起。这时候就需要后处理来让识别结果变得真正可用。后处理就像是给OCR结果做美容手术清洗掉识别错误、合并被分割的段落、识别出标题结构。经过这些处理原始的文字识别结果就能变成结构清晰、可直接使用的文档内容。DeepSeek-OCR-2本身识别准确率很高但在复杂文档中仍需要后处理来提升实用性。本文将手把手教你如何实现这三种核心后处理技术。2. 环境准备与快速部署2.1 基础环境要求确保你的系统满足以下要求Python 3.8或更高版本至少8GB内存处理大文档时建议16GB以上GPU可选但能显著提升处理速度2.2 安装必要依赖# 创建虚拟环境可选但推荐 python -m venv ocr_env source ocr_env/bin/activate # Linux/Mac # 或 ocr_env\Scripts\activate # Windows # 安装核心依赖 pip install deepseek-ocr pip install gradio # 用于Web界面 pip install vllm # 用于推理加速 pip install pandas numpy # 数据处理2.3 快速验证安装import deepseek_ocr print(DeepSeek-OCR版本:, deepseek_ocr.__version__) # 简单测试 from deepseek_ocr import DeepSeekOCR ocr_model DeepSeekOCR.from_pretrained(deepseek-ai/deepseek-ocr-2) print(模型加载成功!)3. 识别结果清洗让文字更准确3.1 常见识别错误类型OCR识别可能产生多种错误字符混淆如0和O1和l空格问题多余空格或缺少空格标点错误错误识别标点符号排版噪声保留不必要的换行和空格3.2 基础清洗方法def basic_text_clean(text): 基础文本清洗函数 # 修复常见字符混淆 char_replacements { : 0, : 1, : 2, : 3, : 4, : 5, : 6, : 7, : 8, : 9, : ., : ,, : ;, : :, : !, : ?, : (, : ), 【: [, 】: ] } for old, new in char_replacements.items(): text text.replace(old, new) # 移除多余空格保留英文单词间的单个空格 text .join(text.split()) # 修复中英文混排空格问题 import re text re.sub(r([a-zA-Z])([\u4e00-\u9fff]), r\1 \2, text) # 英文后接中文加空格 text re.sub(r([\u4e00-\u9fff])([a-zA-Z]), r\1 \2, text) # 中文后接英文加空格 return text # 使用示例 raw_text 这是个示例文本It has some issues需要修复。 cleaned_text basic_text_clean(raw_text) print(清洗前:, raw_text) print(清洗后:, cleaned_text)3.3 高级清洗技巧对于更复杂的清洗需求可以使用规则统计的方法def advanced_text_clean(text, custom_rulesNone): 高级文本清洗包含统计校正 # 常用词词典可根据领域扩展 common_words set([的, 是, 在, 和, 与, 及, 等, 我, 你, 他]) # 分句处理 sentences text.split(。) cleaned_sentences [] for sentence in sentences: if not sentence.strip(): continue words sentence.split() cleaned_words [] for word in words: # 简单的拼写检查可扩展为使用专业词典 if word not in common_words and len(word) 1: # 单字可能为识别错误但需要谨慎处理 cleaned_words.append(word) else: cleaned_words.append(word) cleaned_sentences.append( .join(cleaned_words)) result 。.join(cleaned_sentences) # 应用自定义规则 if custom_rules: for pattern, replacement in custom_rules.items(): result result.replace(pattern, replacement) return result4. 段落合并还原文档结构4.1 识别段落边界OCR通常会将段落拆分成多行我们需要智能地合并它们def merge_paragraphs(lines, max_line_length80): 智能段落合并算法 lines: 识别出的文本行列表 max_line_length: 认为可能是段落结束的最大行长度 paragraphs [] current_paragraph [] for i, line in enumerate(lines): line line.strip() if not line: continue # 如果当前行很短可能是段落结束 if len(line) max_line_length and line[-1] in [。, !, ?, ;]: if current_paragraph: current_paragraph.append(line) paragraphs.append( .join(current_paragraph)) current_paragraph [] else: paragraphs.append(line) else: # 检查是否是列表项或标题 if line.startswith((•, -, *, ○, □)) or len(line) 30: if current_paragraph: paragraphs.append( .join(current_paragraph)) paragraphs.append(line) current_paragraph [] else: current_paragraph.append(line) # 处理最后一个段落 if current_paragraph: paragraphs.append( .join(current_paragraph)) return paragraphs # 使用示例 sample_lines [ 这是第一行的文本内容, 它应该与下一行合并。, 这是新的段落开始, 因为上一行很短且有句号。, 这个段落很长很长很长很长很长很长很长, 但它没有结束标点所以继续, 直到这一行结束。 ] paragraphs merge_paragraphs(sample_lines) for i, para in enumerate(paragraphs, 1): print(f段落{i}: {para})4.2 处理复杂排版对于包含表格、列表的复杂文档def advanced_paragraph_merging(lines): 处理复杂排版的段落合并 paragraphs [] current_para [] in_list False # 是否在列表中 for line in lines: line line.strip() if not line: continue # 检测列表项 is_list_item any(line.startswith(prefix) for prefix in [•, -, *, ○, □, ●]) if is_list_item: if current_para: paragraphs.append( .join(current_para)) current_para [] paragraphs.append(line) in_list True elif in_list and len(line) 50: # 短行可能是列表继续 paragraphs[-1] paragraphs[-1] line else: in_list False if should_start_new_paragraph(line, current_para): if current_para: paragraphs.append( .join(current_para)) current_para [line] else: current_para.append(line) if current_para: paragraphs.append( .join(current_para)) return paragraphs def should_start_new_paragraph(line, current_para): 判断是否应该开始新段落 if not current_para: return True last_line current_para[-1] # 上一行以句号结束且当前行可能是新段落开始 if (last_line.endswith((。, !, ?, ;)) and (len(line) 60 or line[0].isupper() or line[0].isdigit())): return True # 当前行可能是标题或章节 if (len(line) 50 and not any(c in line for c in [。, , 、]) and not line.endswith((的, 了, 是, 在))): return True return False5. 标题识别提取文档结构5.1 基于规则的标题识别def detect_headings(text_blocks): 识别文本块中的标题 headings [] content_structure [] heading_indicators [ # 数字标题模式 r^\d\.\s, r^\d\.\d\s, r^第\d章\s, r^第\d节\s, # 中文标题模式 r^[一二三四五六七八九十]、, r^[一二三四五六七八九十]\s, # 符号标题 r^•\s, r^-\s, r^\*\s, # 英文标题模式 r^[A-Z][A-Z\s]\s*$, r^[A-Z][a-z]\s[A-Z][a-z]\s*$ ] for block in text_blocks: block block.strip() if not block: continue is_heading False # 检查标题模式 for pattern in heading_indicators: if re.search(pattern, block): is_heading True break # 检查长度和内容特征 if not is_heading: if (len(block) 50 and not any(punct in block for punct in [。, , ]) and not block.endswith((的, 了, 是, 和))): is_heading True if is_heading: headings.append(block) content_structure.append({type: heading, content: block}) else: content_structure.append({type: paragraph, content: block}) return headings, content_structure # 使用示例 sample_blocks [ 第一章 引言, 本文主要介绍深度学习在OCR中的应用, 1.1 研究背景, 随着人工智能技术的发展OCR技术取得了显著进步, 第二章 相关工作, 传统OCR方法主要基于图像处理 ] headings, structure detect_headings(sample_blocks) print(识别出的标题:, headings)5.2 基于机器学习的标题识别对于更复杂的文档可以使用机器学习方法def ml_based_heading_detection(text_blocks): 基于机器学习的标题识别简化版 import numpy as np from sklearn.ensemble import RandomForestClassifier # 特征提取函数 def extract_features(text): features [] # 文本长度 features.append(len(text)) # 标点符号数量 features.append(sum(1 for c in text if c in 。)) # 是否包含数字 features.append(1 if any(c.isdigit() for c in text) else 0) # 是否包含常见标题词 title_words [章, 节, 目录, 摘要, 引言, 结论] features.append(1 if any(word in text for word in title_words) else 0) # 行首特征 features.append(1 if text[:2] in [第, 一, 二, 三] else 0) return features # 提取所有特征 X [extract_features(block) for block in text_blocks] # 简单启发式规则生成训练标签实际应用中应该使用标注数据 y [] for block in text_blocks: if (len(block) 40 and not any(punct in block for punct in [。, ]) and (block.startswith((第, 一, 二, 三)) or re.match(r^\d\., block))): y.append(1) # 标题 else: y.append(0) # 非标题 # 训练简单分类器 if len(set(y)) 1: # 确保有正负样本 clf RandomForestClassifier(n_estimators10, random_state42) clf.fit(X, y) predictions clf.predict(X) else: predictions y # 组织结果 headings [block for block, pred in zip(text_blocks, predictions) if pred 1] structure [] for block, pred in zip(text_blocks, predictions): structure.append({ type: heading if pred 1 else paragraph, content: block }) return headings, structure6. 完整实战示例6.1 构建完整的OCR后处理流水线class OCRPostProcessor: OCR后处理完整流水线 def __init__(self): self.clean_rules { ..: ., ,,: ,, : } def process_document(self, ocr_result): 完整的文档处理流程 # 1. 文本清洗 cleaned_text self.clean_text(ocr_result) # 2. 分行处理模拟OCR的行级输出 lines cleaned_text.split(\n) lines [line.strip() for line in lines if line.strip()] # 3. 段落合并 paragraphs merge_paragraphs(lines) # 4. 标题识别 headings, structure detect_headings(paragraphs) # 5. 生成结构化输出 structured_output self.create_structured_output(structure) return structured_output def clean_text(self, text): 文本清洗 text basic_text_clean(text) text advanced_text_clean(text, self.clean_rules) return text def create_structured_output(self, structure): 生成结构化输出 output { metadata: { total_paragraphs: sum(1 for item in structure if item[type] paragraph), total_headings: sum(1 for item in structure if item[type] heading), processing_time: 实时 }, content: structure } return output # 使用示例 processor OCRPostProcessor() # 模拟OCR识别结果 sample_ocr_output 第章 引言 本文主要介绍深度学习在OCR中的应用随着人工智能技术的发展 OCR技术取得了显著进步。 1.1 研究背景 传统OCR方法主要基于图像处理技术但存在诸多限制。现代深度 学习方法大大提升了识别准确率。 第二章 相关工作 近期研究集中在端到端的OCR系统开发上。 result processor.process_document(sample_ocr_output) print(处理结果:, result)6.2 与DeepSeek-OCR-2集成def complete_ocr_pipeline(image_path): 完整的OCR处理流水线从图像到结构化文本 # 1. 使用DeepSeek-OCR-2进行识别 from deepseek_ocr import DeepSeekOCR ocr_model DeepSeekOCR.from_pretrained(deepseek-ai/deepseek-ocr-2) # 使用vLLM加速推理 import vllm # 这里需要根据实际API调整 # 进行OCR识别 raw_text ocr_model.recognize(image_path) # 2. 后处理 processor OCRPostProcessor() structured_result processor.process_document(raw_text) return structured_result # 实际使用示例 # result complete_ocr_pipeline(your_document.jpg) # print(result)7. 总结通过本文的学习你应该已经掌握了DeepSeek-OCR-2识别结果后处理的三个核心技术文本清洗、段落合并和标题识别。这些技术能让原始OCR结果变得真正实用。关键要点回顾文本清洗不只是简单替换需要结合规则和统计方法处理各种识别错误段落合并需要智能判断段落边界处理各种复杂的排版情况标题识别可以基于规则也可以使用机器学习方法根据文档复杂度选择完整流水线将这些技术组合起来实现从原始识别到结构化输出的完整处理实践建议开始时使用本文提供的基础方法根据实际效果逐步调整针对特定类型的文档如学术论文、技术文档、新闻报道定制处理规则使用真实文档测试并持续优化处理效果下一步学习方向探索更先进的NLP技术来进一步提升处理质量学习如何处理表格、数学公式等特殊内容了解如何将处理结果导出为常用格式Word、PDF、HTML等记住好的后处理能让OCR识别结果的价值提升数倍。现在就开始动手实践吧获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。