我们将在全年的每个星期一发布新模型。本周,我们发布了NVIDIA 优化的 DePlot 模型,您可以直接在浏览器中体验。
NVIDIA 基础模型和端点提供对社区和 NVIDIA 构建的一系列精心策划的生成式 AI 模型的访问权限,以便在企业应用程序中体验、自定义和部署。
如果您还没有尝试过领先的模型,如 NeMo-8B-QA, Mixtral 8X7B, Llama 2 (Jaguar 2), 和 Stable Diffusion, 现在可以在 NVIDIA AI Playground 中体验。
去图
视觉语言推理的一次飞跃:通过与大型语言模型 (LLM) 的结合,DePlot 能够理解和解释图表与图形。这种方法与之前经过端到端训练的多模态 LLM 不同,它将问题分解为以下步骤:
- 使用预训练的图像到文本模型进行绘图到文本的转换
- 使用 LLM 进行文本推理
具体来说,在第一步中,DePlot 是指图像到文本的 Transformer 模型,用于从图形到文本格式的模态转换。在第二步中,DePlot 生成的线性化表可作为提示的一部分直接提取到 LLM 中,以促进推理。
以前的先进 (SOTA) 模型需要至少数万个人工编写的示例来完成此类绘图或图表理解,同时在处理复杂查询时,其推理能力仍然受限。
采用这种即插即用的方法,我们的 DePlot™ LLM 管线在ChartQA基准测试中取得了显著成果,仅需一次提示即可完成任务,相较于之前的SOTA方法,表现更为出色!
图 1 展示了 DePlot 如何将图形转换为结构化表格,可用作 LLM 回答基于推理的问题的上下文。现在就体验 DePlot 。
在浏览器中使用模型
现在,您可以通过浏览器上的简单用户界面直接体验“DePlot”,NGC 目录上的 DePlot playground.以下视频展示了在完全加速的堆栈上运行的模型所生成的结果。
该视频展示了 NVIDIA AI Foundation 模型接口,该接口用于使用在完全加速的堆栈上运行的 DePlot 从图形中提取信息。
将模型与 API 结合使用
如果您想使用 API 测试模型,我们已经为您提供了帮助。在您登录NGC 目录后,您就可以访问 NVIDIA Cloud Credits。通过将应用程序连接到 API 端点,您可以真正大规模地体验模型。
以下 Python 示例使用base64
并请求模块对绘图图像进行编码,并向 API 端点发出请求。在继续之前,请确保您拥有能够执行 Python 代码的环境,例如 Jupyter notebook。
获取 NGC 目录 API 密钥
在 API 选项卡中,选择生成密钥。如果您尚未注册,系统会提示您注册或登录。
在代码中设置 API 密钥:
# Will be used to issue requests to the endpoint
API_KEY = “nvapi-xxxx“
以 base64 格式对图表或图形进行编码
要在请求中提供图像输入,您必须将其编码为base64
格式。
# Fetch an example chart from ChartQA dataset
!wget -cO - https://raw.githubusercontent.com/vis-nlp/ChartQA/main/ChartQA%20Dataset/val/png/5090.png > chartQA-example.png
# Encode the image into base64 format
import base64
with open(os.path.join(os.getcwd(), "chartQA-example.png"), "rb") as image_file:
encoded_string = base64.b64encode(image_file.read())
您可以选择可视化图表:
from IPython import display
display.Image(base64.b64decode(encoded_string))
发送推理请求
import requests
invoke_url = "https://api.nvcf.nvidia.com/v2/nvcf/pexec/functions/3bc390c7-eeec-40f7-a64d-0c6a719985f7"
fetch_url_format = "https://api.nvcf.nvidia.com/v2/nvcf/pexec/status/"
# Ensure that you have configured API_KEY
headers = {
"Authorization": "Bearer {}".format(API_KEY),
"Accept": "application/json",
}
# To re-use connections
session = requests.Session()
# The payload consists of a base64 encoded image accompanied by header text.
payload = {
"messages": [
{
"content": "Generate underlying data table of the figure below:<img src=\"data:image/png;base64,{}\" />".format(encoded_string.decode('UTF-8')),
"role": "user"
}
],
"temperature": 0.1,
"top_p": 0.7,
"max_tokens": 1024,
"stream": False
}
response = session.post(invoke_url, headers=headers, json=payload)
while response.status_code == 202:
request_id = response.headers.get("NVCF-REQID")
fetch_url = fetch_url_format + request_id
response = session.get(fetch_url, headers=headers)
response.raise_for_status()
response_body = response.json()
print(response_body)
输出如下所示:
{'id': '4423f30d-2d88-495d-83cc-710da97889e3', 'choices': [{'index': 0, 'message': {'role': 'assistant', 'content': "Entity | Individuals responsibility | Government's responsibility <0x0A> MEDIAN | 39.0 | 55.0 <0x0A> Germany | nan | 35.0 <0x0A> UK | 45.0 | 49.0 <0x0A> Sweden | 37.0 | 53.0 <0x0A> Denmark | 42.0 | 54.0 <0x0A> France | 38.0 | 55.0 <0x0A> Netherla nns | 40.0 | 58.0 <0x0A> Spain | 29.0 | 63.0 <0x0A> Italy | 22.0 | 74.0"}, 'finish_reason': 'stop'}], 'usage': {'completion_tokens': 149, 'prompt_tokens': 0, 'total_tokens': 149}}
响应体包括 DePlot 的输出以及其他元数据。输出以 Markdown 格式的文本序列(带分隔符)从左到右自动生成-
, |
以及<0x0A>
(换行)。
可视化输出表
response_table = response_body['choices'][0]['message']['content']
# Replace the <0x0A> with \n for better readability
print(response_table.replace("<0x0A>", "\n"))
输出如下所示:
Entity | Individuals responsibility | Government's responsibility
MEDIAN | 39.0 | 55.0
Germany | nan | 35.0
UK | 45.0 | 49.0
Sweden | 37.0 | 53.0
Denmark | 42.0 | 54.0
France | 38.0 | 55.0
Netherla nns | 40.0 | 58.0
Spain | 29.0 | 63.0
Italy | 22.0 | 74.0
在这种情况下,响应基本上是准确的。此输出可作为 LLM 输入上下文的一部分,用于问答 (QA) 等下游任务。
适用于模型部署的企业级 AI 运行时
当 AI 模型准备好为业务运营部署时,安全性、可靠性和企业支持至关重要。
NVIDIA AI Enterprise 是一个端到端的 AI 运行时软件平台,旨在加速数据科学流程,并简化生产级生成式 AI 应用的开发和部署。
NVIDIA AI Enterprise 提供安全性、支持、稳定性和可管理性,以提高 AI 团队的工作效率,降低 AI 基础架构的总成本,并确保从 POC 到生产的平稳过渡。
开始使用
尝试通过 UI 或 API 使用 DePlot 模型. 如果此模型适合您的应用,请使用 NVIDIA TensorRT-LLM.
如果您正在构建企业应用程序,请注册 NVIDIA AI Enterprise 试用版,以获得将您的应用投入生产所需的支持。