#所需库
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 转换器库的最新版本:
pipuninstall-ytransformers&&pipinstallgit+https://github.com/huggingface/transformers
以下是一个 Python 示例,展示如何加载并使用该模型进行推理:
fromPILimportImage
importrequests
fromtransformersimportAutoModelForCausalLM,AutoProcessor
classPhi3VisionModel:
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()#加载处理器
defload_model(self):
print("加载模型...")
returnAutoModelForCausalLM.from_pretrained(
self.model_id,
device_map="auto",
torch_dtype="auto",
trust_remote_code=True,
_attn_implementation='flash_attention_2'
).to(self.device)
defload_processor(self):
print("加载处理器...")
returnAutoProcessor.from_pretrained(self.model_id,trust_remote_code=True)
defpredict(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]
returnresponse
phi_model=Phi3VisionModel()
image_url="https://example.com/sample_image.png"
prompt="Extractthedatainjsonformat."
response=phi_model.predict(image_url,prompt)
print("响应:",response)
以上代码简化了模型的加载和使用流程,便于快速集成。您可以通过predict()方法来根据图像和提示语进行推理。
为了展示 Phi-3-Vision-128K-Instruct 的 OCR 能力,我们使用了一些扫描身份证的实例进行测试。图像的质量和清晰度各不相同,以检验模型在不同场景下的表现。
该护照包括姓名、国籍、出生地、签发日期等关键信息,图像质量较高,背景干净,文字易于识别。
提取结果:
{
"Type/Type":"P",
"Countrycode/Codedupays":"UTO",
"PassportNumber/N°depasseport":"L898902C3",
"Surname/Nom":"ERIKSSON",
"Givennames/Prénoms":"ANNAMARIA",
"Nationality/Nationalité":"UTOPIAN",
"DateofBirth/Datedenaissance":"12AUGUST/AOUT74",
"PersonalNo./N°personnel":"ZE184226B",
"Sex/Sexe":"F",
"Placeofbirth/Lieudenaissance":"ZENITH",
"Dateofissue/Datededélivrance":"16APR/AVR07",
"Authority/Autorité":"PASSPORTOFFICE",
"Dateofexpiry/Dated'expiration":"15APR/AVR12",
"Holder'ssignature/Signaturedutitulaire":"annamariaeriksson",
"Passport/Passeport":"P<UTOERIKSSON<<ANNA<MARIA<<<<<<<<<<<<<<<<<<<<<<<L898902C36UT07408122F1204159ZE184226B<<<<10"
}
该护照图像清晰,字段包括护照号码、姓名、出生日期等。
提取结果:
Here'stheextractedfulldatafromthepassportinJSONformat:
{
"passport":{
"issuingCountry":"Netherlands",
"issuingAuthority":"KoninkrijkderNederlanden",
"passportNumber":"SPEC12014",
"issuingDate":"09MAR2014",
"expiryDate":"09MAR2024",
"holder":{
"gender":"F",
"nationality":"Netherlands",
"placeOfBirth":"SPECIMEN",
"sex":"WF",
"firstNames":[
"Willem",
"Lieselotte"
]
},
"physicalDescription":{
"height":"1.75m",
"hairColor":"gray",
"hairLength":"short"
},
"issuingOffice":"Burg.vanStadenDorp",
"issuingDateAsInt":"14032014",
"expiryDateAsInt":"14032024",
"fieldsExtracted":[
{
"code":"NL",
"dateOfBirth":"10MAR1965",
"dateOfIssue":"09MAR2014",
"dateOfExpiry":"09MAR2024",
"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。在涉及文本与视觉结合的任务中,该模型超越了许多现有模型,特别是在以下方面表现突出:
在 ChartQA 和 AI2D 基准测试中,该模型分别取得了 81.4% 和 76.7% 的优异成绩,展示了其在处理数据密集型文档方面的卓越能力。
对于企业和研究人员而言,文档提取和 OCR 技术至关重要。这项技术能将印刷或手写的文本转化为机器可读的格式,极大简化 PDF 解析、数据录入自动化、发票处理以及法律文档分析等工作流程。借助 Phi-3-Vision-128K-Instruct 这样的多模态 AI 模型,这些复杂任务都能变得更加高效和自动化。
无论您处理的是扫描文件、屏幕截图,还是拍摄的页面,该模型的多模态能力都可以实现数据的自动化提取,帮助企业提升生产效率,减少人工操作的需求。
尽管 Phi-3-Vision-128K-Instruct 功能强大,但在使用时仍需注意其局限性。开发人员应意识到潜在的语言偏见、刻板印象的固化以及可能出现的内容不准确等问题。对于涉及健康、法律咨询等高风险应用场景,务必对生成的内容进行额外的验证与过滤。
想要进一步扩展 Phi-3-Vision-128K-Instruct 的功能?我们提供支持微调的工具,并且可以借助Phi-3 Cookbook[2]手册,针对具体任务(如文档分类、增强 OCR 准确性以及专业图像理解)来微调模型,进一步提升其在特定领域的表现。
Phi-3-Vision-128K-Instruct 不仅是多模态人工智能领域的重大进步,更是文档提取、OCR 以及 AI 驱动的内容生成的革命性飞跃。通过深厚的训练基础、强大的架构和精心设计,该模型为开发人员在各领域带来了全新的数据处理方式。
未来,我们将继续探索如何处理各种类型的文档,并通过 AI 技术从不同的数据来源中提取出更具价值的洞见。
人工智能驱动的文档提取技术前景广阔,未来令人期待!
| 欢迎光临 链载Ai (https://www.lianzai.com/) | Powered by Discuz! X3.5 |