AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


探索 Phi-3-Vision-128K:引领未来的 AI 文档处理与 OCR 技术
发布日期:2024-10-19 11:19:05 浏览次数: 1708 来源:深入LLM Agent应用开发


在人工智能领域飞速发展的今天,多模态模型正逐渐成为整合视觉与文本数据的新标准。Phi-3-Vision-128K-Instruct 是这一趋势中的最新突破,作为目前最先进的多模态模型,它大大提升了人工智能在处理图像与文本方面的能力。该模型特别擅长文档提取、光学字符识别(OCR)和通用图像理解,彻底改变了我们解析 PDF、图表、表格等结构化或半结构化信息的方式。

本文将深入探讨 Phi-3-Vision-128K-Instruct 的核心技术,解析其架构、技术要求及使用注意事项,帮助您了解如何利用该模型简化文档提取、PDF 解析与 AI 数据分析等复杂任务。

简介

Phi-3-Vision-128K-Instruct 是 Phi-3 系列模型的一员,专为多模态数据处理而设计,支持最长达 128,000 个词条的上下文长度。它结合了文本与视觉数据的处理能力,特别适合同时需要解析文本和图像的任务。该模型基于 5000 亿个训练词块的数据,包括高质量的合成数据和精心筛选的公开数据源,经过监督微调和偏好优化,使其能够为复杂的 AI 任务提供精确、可靠的解决方案。

Phi-3-Vision-128K-Instruct 拥有 42 亿个参数,架构由图像编码器、连接器、投影器及 Phi-3 Mini 语言模型组成,功能强大且适应性广泛。

核心应用场景

该模型的核心应用场景包括:

  • 文档提取与 OCR:高效地将文本图像或扫描文档转换为可编辑格式,适用于复杂布局的表格、图表和示意图等场景,是实现纸质文档数字化和数据提取自动化的理想工具。
  • 图像理解:能够解析图像内容,识别物体、解读场景并提取关键信息。
  • 资源有限的计算环境:在内存或计算能力受限的环境下,也能保持出色的性能表现。
  • 低延迟应用:适用于需要快速响应的场景,如实时数据传输、聊天助手和流媒体内容分析等。

如何使用

要使用 Phi-3-Vision-128K-Instruct,首先需要配置您的开发环境,并确保安装以下库:

# 所需库
flash_attn==2.5.8
numpy==1.24.4
Pillow==10.3.0
Requests==2.31.0
torch==2.3.0
torchvision==0.18.0
transformers==4.40.2

接着,您可以通过以下命令安装 Hugging Face 转换器库的最新版本:

pip uninstall -y transformers && pip install git+https://github.com/huggingface/transformers

以下是一个 Python 示例,展示如何加载并使用该模型进行推理:

from PIL import Image
import requests
from transformers import AutoModelForCausalLM, AutoProcessor

class Phi3VisionModel:
    def __init__(self, model_id="microsoft/Phi-3-vision-128k-instruct", device="cuda"):
        self.model_id = model_id
        self.device = device
        self.model = self.load_model()  # 加载模型
        self.processor = self.load_processor()  # 加载处理器

    def load_model(self):
        print("加载模型...")
        return AutoModelForCausalLM.from_pretrained(
            self.model_id,
            device_map="auto",
            torch_dtype="auto",
            trust_remote_code=True,
            _attn_implementation='flash_attention_2'
        ).to(self.device)

    def load_processor(self):
        print("加载处理器...")
        return AutoProcessor.from_pretrained(self.model_id, trust_remote_code=True)

    def predict(self, image_url, prompt):
        image = Image.open(requests.get(image_url, stream=True).raw)
        prompt_template = f"<|user|>\n<|image_1|>\n{prompt}<|end|>\n<|assistant|>\n"
        inputs = self.processor(prompt_template, [image], return_tensors="pt").to(self.device)
        generation_args = {
            "max_new_tokens"500,
            "temperature"0.7,
            "do_sample"False
        }
        print("生成响应...")
        output_ids = self.model.generate(**inputs, **generation_args)
        output_ids = output_ids[:, inputs['input_ids'].shape[1]:]
        response = self.processor.batch_decode(output_ids, skip_special_tokens=True)[0]
        return response

phi_model = Phi3VisionModel()
image_url = "https://example.com/sample_image.png"
prompt = "Extract the data in json format."
response = phi_model.predict(image_url, prompt)

print("响应:", response)

以上代码简化了模型的加载和使用流程,便于快速集成。您可以通过 predict() 方法来根据图像和提示语进行推理。

测试 OCR 功能

为了展示 Phi-3-Vision-128K-Instruct 的 OCR 能力,我们使用了一些扫描身份证的实例进行测试。图像的质量和清晰度各不相同,以检验模型在不同场景下的表现。

示例 1:虚构护照

该护照包括姓名、国籍、出生地、签发日期等关键信息,图像质量较高,背景干净,文字易于识别。

提取结果:

{
  "Type/Type""P",
  "Country code/Code du pays""UTO",
  "Passport Number/N° de passeport""L898902C3",
  "Surname/Nom""ERIKSSON",
  "Given names/Prénoms""ANNA MARIA",
  "Nationality/Nationalité""UTOPIAN",
  "Date of Birth/Date de naissance""12 AUGUST/AOUT 74",
  "Personal No./N° personnel""Z E 184226 B",
  "Sex/Sexe""F",
  "Place of birth/Lieu de naissance""ZENITH",
  "Date of issue/Date de délivrance""16 APR/AVR 07",
  "Authority/Autorité""PASSPORT OFFICE",
  "Date of expiry/Date d'expiration""15 APR/AVR 12",
  "Holder's signature/Signature du titulaire""anna maria eriksson",
  "Passport/Passeport""P<UTOERIKSSON<<ANNA<MARIA<<<<<<<<<<<<<<<<<<<<<<<L898902C36UT07408122F1204159ZE184226B<<<<10"
}

示例 2:荷兰护照

该护照图像清晰,字段包括护照号码、姓名、出生日期等。

提取结果:

Here's the extracted full data from the passport in JSON format:

{
  "passport": {
    "issuingCountry""Netherlands",
    "issuingAuthority""Koninkrijk der Nederlanden",
    "passportNumber""SPEC12014",
    "issuingDate""09 MAR 2014",
    "expiryDate""09 MAR 2024",
    "holder": {
      "gender""F",
      "nationality""Netherlands",
      "placeOfBirth""SPECIMEN",
      "sex""WF",
      "firstNames": [
        "Willem",
        "Lieselotte"
      ]
    },
    "physicalDescription": {
      "height""1.75 m",
      "hairColor""gray",
      "hairLength""short"
    },
    "issuingOffice""Burg. van Stad en Dorp",
    "issuingDateAsInt""14032014",
    "expiryDateAsInt""14032024",
    "fieldsExtracted": [
      {
        "code""NL",
        "dateOfBirth""10 MAR 1965",
        "dateOfIssue""09 MAR 2014",
        "dateOfExpiry""09 MAR 2024",
        "firstNames": [
          "Willem",
          "Lieselotte"
        ],
        "nationality""Netherlands",
        "passportNumber""SPEC12014",
        "placeOfBirth""SPECIMEN",
        "sex""WF"
      }
    ]
  }
}

在线体验

如果您想亲自体验 Phi-3-Vision-128K-Instruct 模型的强大功能,可以通过以下链接进行探索:在 Azure AI 平台上试用该模型[1]。借助此链接,您可以轻松测试模型的能力,尤其是其出色的 OCR 功能。

模型架构与训练

Phi-3-Vision-128K-Instruct 并不是普通的语言模型。它是一款强大的多模态模型,能够处理复杂的视觉和文本数据。经过全面训练,该模型已处理了多达 5000 亿个词组,涵盖了大量文本和图像数据。其架构巧妙地将语言模型与图像处理模块结合,打造了一个强大的系统,能够处理超过 128K 标记的上下文,轻松应对大规模的对话或文档处理任务。

该模型在高性能硬件环境中进行训练,例如 512 台 H100 GPU,利用闪存注意机制来提升内存使用效率,确保其在处理大规模任务时也能保持卓越的性能。训练过程中,模型结合了合成数据与严格过滤的真实世界数据,并且特别强化了数学、编码、常识推理等领域,使其在多样化应用场景中表现优异。

主要性能评估

Phi-3-Vision-128K-Instruct 的性能已经通过多个基准测试评估,包括 ScienceQA、AI2D、MathVista 和 TextVQA。在涉及文本与视觉结合的任务中,该模型超越了许多现有模型,特别是在以下方面表现突出:

  • 文档理解:从复杂的 PDF 或图像中提取有用的信息。
  • 表格与图表理解:准确解读图表数据并将其转换为文本说明。

在 ChartQA 和 AI2D 基准测试中,该模型分别取得了 81.4% 和 76.7% 的优异成绩,展示了其在处理数据密集型文档方面的卓越能力。

OCR 和文档提取的重要性

对于企业和研究人员而言,文档提取和 OCR 技术至关重要。这项技术能将印刷或手写的文本转化为机器可读的格式,极大简化 PDF 解析、数据录入自动化、发票处理以及法律文档分析等工作流程。借助 Phi-3-Vision-128K-Instruct 这样的多模态 AI 模型,这些复杂任务都能变得更加高效和自动化。

无论您处理的是扫描文件、屏幕截图,还是拍摄的页面,该模型的多模态能力都可以实现数据的自动化提取,帮助企业提升生产效率,减少人工操作的需求。

负责任的 AI 开发与安全考量

尽管 Phi-3-Vision-128K-Instruct 功能强大,但在使用时仍需注意其局限性。开发人员应意识到潜在的语言偏见、刻板印象的固化以及可能出现的内容不准确等问题。对于涉及健康、法律咨询等高风险应用场景,务必对生成的内容进行额外的验证与过滤。

模型微调与未来发展

想要进一步扩展 Phi-3-Vision-128K-Instruct 的功能?我们提供支持微调的工具,并且可以借助 Phi-3 Cookbook[2] 手册,针对具体任务(如文档分类、增强 OCR 准确性以及专业图像理解)来微调模型,进一步提升其在特定领域的表现。

总结

Phi-3-Vision-128K-Instruct 不仅是多模态人工智能领域的重大进步,更是文档提取、OCR 以及 AI 驱动的内容生成的革命性飞跃。通过深厚的训练基础、强大的架构和精心设计,该模型为开发人员在各领域带来了全新的数据处理方式。

未来,我们将继续探索如何处理各种类型的文档,并通过 AI 技术从不同的数据来源中提取出更具价值的洞见。

人工智能驱动的文档提取技术前景广阔,未来令人期待!


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询