Chandra OCR入门指南:从HuggingFace加载权重到vLLM推理服务的完整迁移路径
Chandra OCR入门指南从HuggingFace加载权重到vLLM推理服务的完整迁移路径如果你手头有一堆扫描的合同、PDF报告、数学试卷或者带表格的文档想把它们一键转换成结构清晰的Markdown、HTML或JSON那么Chandra OCR就是你正在寻找的工具。这个由Datalab.to在2025年10月开源的「布局感知」OCR模型用大白话说就是它不仅能识别图片里的文字还能看懂文档的排版结构。表格、数学公式、手写体、表单里的复选框这些传统OCR头疼的东西它都能一次搞定。更让人心动的是官方测试显示它在olmOCR基准上拿到了83.1的综合分这个成绩比GPT-4o和Gemini Flash 2还要好。而且它只需要4GB显存就能跑起来对硬件相当友好。今天这篇文章我就带你走一遍完整的Chandra OCR使用路径从最基础的HuggingFace权重加载开始一直到搭建高性能的vLLM推理服务。无论你是想快速体验一下还是打算把它集成到自己的生产环境里都能找到对应的方案。1. 快速了解Chandra为什么值得关注在开始动手之前我们先花几分钟了解一下Chandra到底有什么特别之处。知道工具能做什么、擅长什么用起来才会更得心应手。1.1 核心能力不止是文字识别传统的OCR工具就像是个识字机器——它能把图片里的文字提取出来但也就到此为止了。至于这些文字是怎么排版的、哪里是标题、哪里是表格、公式长什么样它一概不知。Chandra不一样它是个懂排版的OCR。我把它核心能力总结为三点第一识别精度高。在官方测试的八个项目中它平均得分83.1。特别是在一些难点项目上表现突出老扫描数学文档80.3分第一名表格识别88.0分第一名长小字识别92.3分第一名第二支持元素多。下面这些复杂元素它都能处理表格能识别表格结构输出带格式的Markdown表格数学公式LaTeX格式的公式识别手写体连笔、草书都能认表单元素复选框、单选按钮这些交互元素图片标题能识别图片和对应的说明文字第三输出格式全。它不会只给你一堆文字而是同时输出三种格式Markdown直接用于文档、笔记HTML适合网页展示JSON方便程序处理里面还包含每个元素的坐标信息1.2 技术架构与性能Chandra基于ViT-EncoderDecoder的视觉语言架构这个技术路线让它既能看懂图像内容又能理解语言结构。在语言支持方面官方验证了40多种语言其中中文、英文、日文、韩文、德文、法文、西班牙文的表现最好。这意味着它是个真正的多语言OCR工具。推理速度方面单页处理大约8k token的内容平均只需要1秒钟。如果你用vLLM后端并启用多GPU并行速度还能更快。1.3 许可与商业使用这是很多开发者关心的问题。Chandra的代码采用Apache 2.0许可证权重使用OpenRAIL-M许可证。对于商业使用政策很友好初创公司年营收或融资额在200万美元以内的可以免费商用超过这个额度的需要单独授权这意味着大多数中小企业和个人项目都可以放心使用。2. 环境准备与快速体验好了理论部分了解得差不多了现在让我们动手试试。我会带你用两种方式快速体验Chandra最简单的pip安装方式和更稳定的Docker方式。2.1 基础环境要求在开始之前先确认你的环境是否符合要求硬件要求GPU推荐NVIDIA GPU4GB显存起步RTX 3060就够用内存至少8GB系统内存存储需要约5GB空间存放模型权重软件要求Python 3.8或更高版本CUDA 11.8或更高版本如果用GPUpip包管理工具重要提醒如果你有多张GPU卡需要注意Chandra可能在某些多卡环境下有兼容性问题。官方文档特别提醒两张卡一张卡起不来建议先单卡运行测试。2.2 方法一pip快速安装最简单这是最快上手的方式适合想先体验一下功能的用户。打开你的终端执行以下命令# 创建并激活虚拟环境推荐 python -m venv chandra-env source chandra-env/bin/activate # Linux/Mac # 或者 chandra-env\Scripts\activate # Windows # 安装chandra-ocr包 pip install chandra-ocr # 安装完成后验证安装 chandra --version安装完成后Chandra提供了三种使用方式1. 命令行工具CLI# 识别单张图片 chandra ocr path/to/your/image.jpg # 识别整个文件夹 chandra ocr path/to/folder --output-format markdown # 更多选项 chandra ocr --help2. Streamlit交互界面# 启动Web界面 chandra serve然后在浏览器中打开http://localhost:8501就能看到一个直观的图形界面可以上传图片、调整参数、查看结果。3. Python APIfrom chandra import ChandraOCR # 初始化模型 ocr ChandraOCR() # 识别图片 result ocr.recognize(document.jpg) print(result.markdown) # 获取Markdown格式结果 print(result.html) # 获取HTML格式结果 print(result.json) # 获取JSON格式结果2.3 方法二Docker部署最稳定如果你想要一个隔离的、可重复的环境或者打算在生产环境使用Docker是更好的选择。# 拉取官方镜像 docker pull datalab/chandra-ocr:latest # 运行容器GPU版本 docker run --gpus all -p 8501:8501 -v $(pwd)/data:/data datalab/chandra-ocr:latest # 或者CPU版本速度会慢一些 docker run -p 8501:8501 -v $(pwd)/data:/data datalab/chandra-ocr:latest-cpuDocker方式的好处是所有依赖都打包好了不会出现在我机器上能运行的问题。而且方便迁移和扩展。2.4 第一次测试看看效果如何安装完成后我们做个简单测试。找一张带表格的图片或者PDF运行识别命令# 如果你用pip安装 chandra ocr test_document.jpg --output-dir ./results # 如果你用Docker先把文件放到挂载的volume里 # 假设你启动时用了 -v $(pwd)/data:/data # 那么把 test_document.jpg 放到当前目录的data文件夹里查看生成的结果你会看到三个文件test_document.md- Markdown格式保留了表格结构test_document.html- HTML格式可以直接在浏览器中查看test_document.json- JSON格式包含详细的元素信息和坐标3. 从HuggingFace加载权重深入理解模型如果你不仅仅想使用Chandra还想了解它的内部工作原理或者需要自定义一些功能那么直接从HuggingFace加载权重是个好选择。这种方式给你最大的灵活性。3.1 理解Chandra的模型结构在开始代码之前我们先简单了解一下Chandra的模型架构。它主要由两部分组成视觉编码器ViT-Encoder负责看图片把图像转换成一系列的特征向量文本解码器Decoder负责写文字根据视觉特征生成结构化的文本输出这种架构让它既能理解图像内容又能生成格式正确的文本。3.2 直接使用HuggingFace Transformers最直接的方式是使用HuggingFace的Transformers库import torch from PIL import Image from transformers import AutoProcessor, AutoModelForVision2Seq # 加载处理器和模型 processor AutoProcessor.from_pretrained(datalab/chandra-ocr) model AutoModelForVision2Seq.from_pretrained(datalab/chandra-ocr) # 如果有GPU移到GPU上 device cuda if torch.cuda.is_available() else cpu model.to(device) # 准备图片 image Image.open(document.jpg).convert(RGB) # 处理图片并生成文本 inputs processor(imagesimage, return_tensorspt).to(device) with torch.no_grad(): generated_ids model.generate(**inputs, max_new_tokens1024) # 解码结果 generated_text processor.batch_decode(generated_ids, skip_special_tokensTrue)[0] print(generated_text)这段代码做了以下几件事从HuggingFace加载Chandra的处理器和模型把图片转换成模型能理解的格式让模型生成识别结果把生成的token解码成可读的文本3.3 自定义推理流程有时候你可能需要更精细的控制。比如想要调整生成参数或者处理批量图片from transformers import GenerationConfig # 自定义生成配置 generation_config GenerationConfig( max_new_tokens2048, # 最大生成长度 num_beams5, # 束搜索宽度提高准确性 temperature0.7, # 创造性程度 do_sampleFalse, # 是否采样 early_stoppingTrue, # 提前停止 ) # 批量处理函数 def batch_process(image_paths, batch_size4): results [] for i in range(0, len(image_paths), batch_size): batch_paths image_paths[i:ibatch_size] images [Image.open(path).convert(RGB) for path in batch_paths] # 批量处理 inputs processor(imagesimages, return_tensorspt, paddingTrue).to(device) with torch.no_grad(): generated_ids model.generate( **inputs, generation_configgeneration_config ) # 批量解码 batch_results processor.batch_decode(generated_ids, skip_special_tokensTrue) results.extend(batch_results) return results # 使用示例 image_list [doc1.jpg, doc2.jpg, doc3.jpg] all_results batch_process(image_list) for i, result in enumerate(all_results): print(f文档{i1}结果:\n{result[:200]}...\n)3.4 处理特殊输出格式Chandra的一个强大功能是能同时输出多种格式。如果你想直接获取这些格式可以这样处理import json def process_with_formats(image_path): # 基础识别 image Image.open(image_path).convert(RGB) inputs processor(imagesimage, return_tensorspt).to(device) with torch.no_grad(): generated_ids model.generate(**inputs, max_new_tokens2048) raw_output processor.batch_decode(generated_ids, skip_special_tokensTrue)[0] # 解析多格式输出 # Chandra的输出通常包含特殊的分隔符来区分不同格式 if ---MARKDOWN--- in raw_output: parts raw_output.split(---MARKDOWN---) markdown_part parts[1].split(---HTML---)[0] if len(parts) 1 else html_part parts[1].split(---HTML---)[1].split(---JSON---)[0] if len(parts) 1 else json_part parts[1].split(---JSON---)[1] if ---JSON--- in parts[1] else # 尝试解析JSON try: json_data json.loads(json_part.strip()) if json_part.strip() else {} except: json_data {} return { markdown: markdown_part.strip(), html: html_part.strip(), json: json_data, raw: raw_output } return {raw: raw_output} # 使用示例 result process_with_formats(document_with_table.jpg) print(Markdown表格:) print(result[markdown]) print(\nJSON结构:) print(json.dumps(result[json], indent2, ensure_asciiFalse))这种方式给你最大的灵活性但需要自己处理更多的细节。适合需要深度定制或者集成到现有系统中的场景。4. 部署vLLM推理服务生产级解决方案如果你需要处理大量的文档或者想要一个高性能、可扩展的OCR服务那么vLLM是更好的选择。vLLM是一个专门为大规模语言模型推理优化的服务框架能显著提高吞吐量和降低延迟。4.1 为什么选择vLLM在决定使用vLLM之前你可能想知道它比直接使用HuggingFace Transformers好在哪里对比项HuggingFace TransformersvLLM推理服务吞吐量一般高优化了注意力机制和内存管理延迟较高低支持连续批处理和流水线并发处理需要自己实现内置支持内存效率一般高使用PagedAttention技术部署复杂度简单中等适用场景开发、测试、小规模使用生产环境、大规模使用简单来说如果你的应用场景是需要同时处理很多文档对响应速度要求高希望服务稳定可靠需要方便地扩展资源那么vLLM是值得投入的学习成本。4.2 安装和配置vLLM首先我们需要安装vLLM。注意vLLM对CUDA版本有要求建议使用CUDA 11.8或12.1。# 创建新的虚拟环境避免依赖冲突 python -m venv vllm-env source vllm-env/bin/activate # 安装vLLM根据你的CUDA版本选择 # CUDA 11.8 pip install vllm # 或者CUDA 12.1 pip install vllm --extra-index-url https://download.pytorch.org/whl/cu121 # 验证安装 python -c import vllm; print(fvLLM版本: {vllm.__version__})4.3 启动Chandra的vLLM服务vLLM提供了命令行工具来启动模型服务非常方便# 基础启动命令 python -m vllm.entrypoints.openai.api_server \ --model datalab/chandra-ocr \ --served-model-name chandra-ocr \ --port 8000 \ --host 0.0.0.0 \ --tensor-parallel-size 1 \ --gpu-memory-utilization 0.9 # 如果你有多张GPU可以增加tensor-parallel-size # --tensor-parallel-size 2 # 使用2张GPU # 如果你想限制最大token数 # --max-model-len 8192 # 如果你想启用连续批处理提高吞吐量 # --enable-chunked-prefill启动后你会看到类似这样的输出INFO 07-28 10:30:15 api_server.py:137] Starting OpenAI API server... INFO 07-28 10:30:15 api_server.py:138] Uvicorn running on http://0.0.0.0:8000 INFO 07-28 10:30:15 api_server.py:139] Docs: http://0.0.0.0:8000/docs服务启动后可以通过http://localhost:8000/docs查看API文档。4.4 使用OpenAI兼容的API调用vLLM服务提供了OpenAI兼容的API这意味着你可以用和调用ChatGPT类似的方式来调用Chandraimport base64 from openai import OpenAI # 初始化客户端 client OpenAI( base_urlhttp://localhost:8000/v1, api_keytoken-abc123 # vLLM的api_key可以任意设置 ) def ocr_with_vllm(image_path): # 读取图片并编码为base64 with open(image_path, rb) as image_file: base64_image base64.b64encode(image_file.read()).decode(utf-8) # 构建消息 messages [ { role: user, content: [ {type: text, text: 请识别这张图片中的内容输出Markdown格式。}, { type: image_url, image_url: { url: fdata:image/jpeg;base64,{base64_image} } } ] } ] # 调用API response client.chat.completions.create( modelchandra-ocr, messagesmessages, max_tokens2048, temperature0.1 # 低temperature让输出更确定 ) return response.choices[0].message.content # 使用示例 result ocr_with_vllm(document.jpg) print(result)4.5 批量处理与性能优化vLLM的真正优势在于处理大量请求。下面是一个批量处理的例子import concurrent.futures import time from pathlib import Path class ChandraVLlmClient: def __init__(self, base_urlhttp://localhost:8000/v1): self.client OpenAI( base_urlbase_url, api_keytoken-abc123 ) def process_single(self, image_path): 处理单张图片 with open(image_path, rb) as f: base64_image base64.b64encode(f.read()).decode(utf-8) messages [ { role: user, content: [ {type: text, text: 识别图片内容输出Markdown格式。}, { type: image_url, image_url: {url: fdata:image/jpeg;base64,{base64_image}} } ] } ] try: response self.client.chat.completions.create( modelchandra-ocr, messagesmessages, max_tokens1024, temperature0.1 ) return response.choices[0].message.content except Exception as e: return f处理失败: {str(e)} def process_batch(self, image_paths, max_workers4): 批量处理图片 results {} with concurrent.futures.ThreadPoolExecutor(max_workersmax_workers) as executor: # 提交所有任务 future_to_path { executor.submit(self.process_single, path): path for path in image_paths } # 收集结果 for future in concurrent.futures.as_completed(future_to_path): path future_to_path[future] try: results[str(path)] future.result() except Exception as e: results[str(path)] f异常: {str(e)} return results # 使用示例 if __name__ __main__: client ChandraVLlmClient() # 找到所有图片文件 image_dir Path(./documents) image_files list(image_dir.glob(*.jpg)) list(image_dir.glob(*.png)) print(f找到 {len(image_files)} 个文档需要处理) # 批量处理并计时 start_time time.time() results client.process_batch(image_files[:10], max_workers4) # 先处理前10个 elapsed_time time.time() - start_time print(f处理完成耗时: {elapsed_time:.2f}秒) print(f平均每个文档: {elapsed_time/len(results):.2f}秒) # 保存结果 output_dir Path(./results) output_dir.mkdir(exist_okTrue) for path_str, content in results.items(): path Path(path_str) output_path output_dir / f{path.stem}.md output_path.write_text(content, encodingutf-8) print(f已保存: {output_path})4.6 高级配置与监控对于生产环境你可能还需要一些高级配置# 完整的生产环境启动命令示例 python -m vllm.entrypoints.openai.api_server \ --model datalab/chandra-ocr \ --served-model-name chandra-ocr \ --port 8000 \ --host 0.0.0.0 \ --tensor-parallel-size 1 \ --gpu-memory-utilization 0.85 \ --max-num-seqs 256 \ --max-num-batched-tokens 4096 \ --enable-chunked-prefill \ --metric-interval-ms 60000 \ --log-requests \ --log-stats这些参数的含义--max-num-seqs 256最大并发序列数--max-num-batched-tokens 4096每批最大token数--enable-chunked-prefill启用分块预填充提高吞吐量--metric-interval-ms 60000每分钟输出一次性能指标--log-requests记录所有请求日志--log-stats记录统计信息5. 实际应用案例与技巧了解了基本用法后我们来看看Chandra在实际工作中能解决哪些具体问题。我会分享几个真实的场景和对应的使用技巧。5.1 场景一批量处理扫描合同假设你是一家公司的法务助理手头有几百份扫描的PDF合同需要数字化。传统方式是手动录入或者用普通OCR识别后再人工整理格式费时费力。用Chandra可以这样处理import os from pathlib import Path from chandra import ChandraOCR class ContractProcessor: def __init__(self): self.ocr ChandraOCR() def process_contracts(self, input_dir, output_dir): 批量处理合同文档 input_path Path(input_dir) output_path Path(output_dir) output_path.mkdir(exist_okTrue) # 支持的文件格式 supported_formats [.pdf, .jpg, .jpeg, .png, .tiff] for format in supported_formats: for file_path in input_path.glob(f*{format}): print(f正在处理: {file_path.name}) try: # 识别文档 result self.ocr.recognize(str(file_path)) # 保存Markdown版本方便阅读 md_file output_path / f{file_path.stem}.md md_file.write_text(result.markdown, encodingutf-8) # 保存JSON版本方便程序处理 json_file output_path / f{file_path.stem}.json import json json_file.write_text(json.dumps(result.json, indent2, ensure_asciiFalse), encodingutf-8) print(f 已完成: {file_path.name}) except Exception as e: print(f 处理失败 {file_path.name}: {str(e)}) print(批量处理完成) # 使用示例 processor ContractProcessor() processor.process_contracts(./scanned_contracts, ./digital_contracts)技巧提示对于PDF文件Chandra会自动处理每一页如果合同有签名区域可以在后处理阶段特别标注JSON格式保留了每个元素的坐标方便后续高亮或验证5.2 场景二学术论文公式提取研究人员经常需要从PDF论文中提取数学公式。传统OCR对公式的识别效果很差而Chandra在这方面表现优异。import re from chandra import ChandraOCR class FormulaExtractor: def __init__(self): self.ocr ChandraOCR() def extract_formulas(self, pdf_path): 从PDF中提取数学公式 result self.ocr.recognize(pdf_path) # 从Markdown中提取LaTeX公式 # Chandra通常用 $...$ 或 $$...$$ 标记公式 formulas [] # 查找行内公式 inline_formulas re.findall(r\$(.*?)\$, result.markdown) formulas.extend([f${f}$ for f in inline_formulas]) # 查找块级公式 block_formulas re.findall(r\$\$(.*?)\$\$, result.markdown, re.DOTALL) formulas.extend([f$${f}$$ for f in block_formulas]) return { total_formulas: len(formulas), formulas: formulas, markdown: result.markdown } def export_to_latex(self, formulas, output_file): 导出为LaTeX文档 latex_template r\documentclass{article} \usepackage{amsmath} \begin{document} 提取的数学公式 for i, formula in enumerate(formulas[formulas], 1): latex_template f公式 {i}:\n latex_template f{formula}\n\n latex_template r\end{document} with open(output_file, w, encodingutf-8) as f: f.write(latex_template) print(f已导出 {len(formulas[formulas])} 个公式到 {output_file}) # 使用示例 extractor FormulaExtractor() math_paper math_paper.pdf formulas extractor.extract_formulas(math_paper) print(f从论文中提取了 {formulas[total_formulas]} 个公式) for i, formula in enumerate(formulas[formulas][:5], 1): # 显示前5个 print(f{i}. {formula[:50]}...) # 导出为LaTeX extractor.export_to_latex(formulas, extracted_formulas.tex)5.3 场景三表格数据提取与转换表格是文档中最常见也最难处理的部分。Chandra的表格识别准确率高达88%这在OCR领域是相当出色的成绩。import pandas as pd import json from chandra import ChandraOCR class TableProcessor: def __init__(self): self.ocr ChandraOCR() def extract_tables(self, document_path): 从文档中提取所有表格 result self.ocr.recognize(document_path) tables [] # 方法1从Markdown中提取表格 lines result.markdown.split(\n) current_table [] in_table False for line in lines: if | in line and --- in line: # 表格开始 in_table True if current_table: # 保存上一个表格 tables.append(\n.join(current_table)) current_table [] current_table.append(line) elif in_table and | in line: # 表格行 current_table.append(line) elif in_table: # 表格结束 if current_table: tables.append(\n.join(current_table)) current_table [] in_table False # 方法2从JSON中提取表格数据更准确 json_tables [] if hasattr(result, json) and result.json: # 遍历所有元素找到表格 for element in result.json.get(elements, []): if element.get(type) table: json_tables.append(element) return { markdown_tables: tables, json_tables: json_tables, total_tables: len(tables) len(json_tables) } def convert_to_excel(self, tables, output_file): 将表格转换为Excel with pd.ExcelWriter(output_file, engineopenpyxl) as writer: for i, table_data in enumerate(tables[json_tables]): # 从JSON表格数据创建DataFrame rows table_data.get(data, []) if rows: # 假设第一行是表头 headers rows[0] data_rows rows[1:] if len(rows) 1 else [] df pd.DataFrame(data_rows, columnsheaders) sheet_name fTable_{i1} df.to_excel(writer, sheet_namesheet_name, indexFalse) print(f已导出 {len(tables[json_tables])} 个表格到 {output_file}) def compare_with_manual(self, auto_result, manual_result): 对比自动识别和人工录入的结果 # 这里可以添加对比逻辑 # 比如计算准确率、召回率等 pass # 使用示例 processor TableProcessor() document financial_report.pdf tables processor.extract_tables(document) print(f文档中包含 {tables[total_tables]} 个表格) print(fMarkdown格式表格: {len(tables[markdown_tables])} 个) print(fJSON格式表格数据: {len(tables[json_tables])} 个) # 显示第一个表格 if tables[markdown_tables]: print(\n第一个表格的Markdown格式:) print(tables[markdown_tables][0]) # 导出到Excel if tables[json_tables]: processor.convert_to_excel(tables, extracted_tables.xlsx)6. 总结与建议我们走完了从HuggingFace权重加载到vLLM推理服务的完整路径。现在来回顾一下关键点并给出一些实用建议。6.1 不同场景的选择建议根据你的具体需求可以选择不同的使用方式1. 快速体验和原型开发推荐方式pip install chandra-ocr优点安装简单有CLI和Web界面适合个人使用、功能测试、小批量处理2. 深度集成和自定义开发推荐方式HuggingFace Transformers直接加载优点完全控制灵活性最高适合需要定制识别逻辑、集成到现有系统、研究用途3. 生产环境和高并发场景推荐方式vLLM推理服务优点高性能、高吞吐量、易于扩展适合企业应用、批量处理、API服务6.2 性能优化建议在实际使用中这些技巧可以帮助你获得更好的体验硬件配置GPU选择RTX 306012GB是个性价比很高的选择内存至少16GB系统内存处理大文档时更流畅存储使用SSD硬盘加快模型加载速度软件优化批量处理尽量一次性处理多个文档而不是一个一个处理图片预处理如果图片质量差可以先进行简单的预处理调整大小、增强对比度缓存机制对于重复处理的文档可以缓存识别结果异步处理对于Web服务使用异步处理避免阻塞参数调优# 在初始化时调整这些参数 ocr ChandraOCR( devicecuda, # 使用GPU precisionfp16, # 使用半精度节省显存 cache_dir./model_cache # 指定缓存目录 )6.3 常见问题解决在实际使用中你可能会遇到这些问题问题1显存不足症状程序崩溃提示CUDA out of memory解决减小批量大小使用precisionfp16半精度尝试CPU模式速度会慢问题2识别结果不理想症状表格结构混乱、公式识别错误解决检查图片质量确保清晰度足够尝试调整图片方向有些文档需要旋转对于特别复杂的文档可以分区域识别问题3处理速度慢症状单个文档处理时间过长解决确保使用GPU而不是CPU检查是否有其他程序占用GPU资源考虑升级到vLLM服务6.4 未来展望Chandra作为一个新开源的OCR模型已经展现出了强大的能力。基于目前的发展趋势我认为这些方向值得关注模型轻量化可能会有更小的模型版本适合移动端或边缘设备多模态扩展结合语音、视频等多模态输入领域专业化针对特定领域医疗、法律、金融的优化版本实时处理支持视频流中的文字实时识别无论你是开发者、研究人员还是普通用户Chandra都提供了一个强大的OCR解决方案。它的开源性质和友好的商业许可让更多人能够享受到先进的OCR技术带来的便利。从简单的pip安装到复杂的vLLM服务部署从单张图片处理到批量文档自动化Chandra都能胜任。希望这篇指南能帮助你快速上手在实际工作中发挥它的价值。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2439101.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!