Azure Machine Learning - 如何使用 GPT-4 Turbo with Vision

介绍如何在Azure中使用GPT-4 Turbo with Vision

关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人

file

GPT-4 Turbo with Vision 介绍

file
GPT-4 Turbo with Vision 是 OpenAI 开发的一个大型多模态模型 (LMM),可以分析图像,并为有关图像的问题提供文本回应。 它结合了自然语言处理和视觉理解,GPT-4 Turbo with Vision 可以回答一般图像相关问题。 如果使用[视觉增强]还可以出示视频。

调用会话补全 API

以下 REST 命令显示了通过代码使用 GPT-4 Turbo with Vision 模型的最基本方法。

将 POST 请求发送到 https://{RESOURCE_NAME}.openai.azure.com/openai/deployments/{DEPLOYMENT_NAME}/chat/completions?api-version=2023-12-01-preview

  • RESOURCE_NAME 是 OpenAI 资源的名称
  • DEPLOYMENT_NAME 是 GPT-4 Turbo with Vision 模型部署的名称

必需的标头

  • Content-Type:application/json
  • api-key: {API_KEY}

正文:下列为请求正文示例。 格式与 GPT-4 的聊天补全 API 相同,只是消息内容可以是包含字符串和图像(图像的有效 HTTP 或 HTTPS URL 或者 base-64 编码的图像)的数组。 切记设置 "max_tokens" 值,否则返回输出将被截断。

{"messages": [ {"role": "system", "content": "You are a helpful assistant." },{"role": "user", "content": [{"type": "text","text": "Describe this picture:"},{"type": "image_url","image_url": {"url": "<URL or base-64-encoded image>"}} ] }],"max_tokens": 100, "stream": false 
} 

输出

API 响应应如下所示:

{"id": "chatcmpl-8VAVx58veW9RCm5K1ttmxU6Cm4XDX","object": "chat.completion","created": 1702439277,"model": "gpt-4","prompt_filter_results": [{"prompt_index": 0,"content_filter_results": {"hate": {"filtered": false,"severity": "safe"},"self_harm": {"filtered": false,"severity": "safe"},"sexual": {"filtered": false,"severity": "safe"},"violence": {"filtered": false,"severity": "safe"}}}],"choices": [{"finish_details": {"type": "stop","stop": "<|fim_suffix|>"},"index": 0,"message": {"role": "assistant","content": "The picture shows an individual dressed in formal attire, which includes a black tuxedo with a black bow tie. There is an American flag on the left lapel of the individual's jacket. The background is predominantly blue with white text that reads \"THE KENNEDY PROFILE IN COURAGE AWARD\" and there are also visible elements of the flag of the United States placed behind the individual."},"content_filter_results": {"hate": {"filtered": false,"severity": "safe"},"self_harm": {"filtered": false,"severity": "safe"},"sexual": {"filtered": false,"severity": "safe"},"violence": {"filtered": false,"severity": "safe"}}}],"usage": {"prompt_tokens": 1156,"completion_tokens": 80,"total_tokens": 1236}
}

每个响应都包含 "finish_details" 字段。 子字段 "type" 具有以下可能值:

  • stop:API 返回了完整的模型输出。
  • max_tokens:由于 max_tokens 输入参数或模型的标记限制,模型输出不完整。
  • content_filter:由于内容筛选器的标志,省略了内容。

如果 finish_details.typestop,则还有一个 "stop" 属性指定导致输出结束的标记。

图像处理中的详细信息参数设置:低、高、自动

模型中的详细信息参数提供三种选择:lowhighauto,用于调整模型解释和处理图像的方式。 默认设置为自动,其中模型将根据图像输入的大小在低或高之间做出决定。

  • low 设置:模型不会激活“高分辨率”模式,而是处理分辨率较低的 512x512 版本,从而加快响应速度,减少在细化细节并不重要的方案中的标记消耗。
  • high 设置:模型将激活“高分辨率”模式。 在此设置下,模型首先查看低分辨率图像,然后根据输入图像生成详细的 512x512 段。 每个段使用两倍的标记预算,从而获得对图像的更详细解释。”

对图像使用视觉增强

GPT-4 Turbo with Vision 提供对 Azure AI 服务定制增强功能的独占访问权限。 与 Azure AI 视觉结合使用时,它可以为聊天模型提供有关图像中可见文本和对象位置的更详细信息,从而增强聊天体验。

“光学字符识别 (OCR)”集成使模型能够针对密集文本、转换后的图像和数字较多的财务文档生成更高质量的响应。 它还涵盖了更广泛的语言。

对象接地集成为数据分析和用户交互带来了新的层面,因为该功能可以在视觉上区分和突出显示其处理的图像中的重要元素。

将 POST 请求发送到 https://{RESOURCE_NAME}.openai.azure.com/openai/deployments/{DEPLOYMENT_NAME}/extensions/chat/completions?api-version=2023-12-01-preview

  • RESOURCE_NAME 是 OpenAI 资源的名称
  • DEPLOYMENT_NAME 是 GPT-4 Turbo with Vision 模型部署的名称

必需的标头

  • Content-Type:application/json
  • api-key: {API_KEY}

正文:

格式与 GPT-4 的聊天补全 API 类似,但消息内容可以是包含字符串和图像(图像的有效 HTTP 或 HTTPS URL 或者 base-64 编码的图像)的数组。

还必须包括 enhancementsdataSources 对象。 enhancements 为会话中请求的视觉增强功能。 它具有 groundingocr 属性,每个属性都有一个布尔 enabled 属性。 使用这些内容请求 OCR 服务和/或对象检测/定位服务。 dataSources 为视觉增强需要的计算机视觉资源数据。 它具有应为 "AzureComputerVision"type 属性和 parameters 属性。 将 endpointkey 设置为计算机视觉资源的终结点 URL 和访问密钥。 切记设置 "max_tokens" 值,否则返回输出将被截断。

{"enhancements": {"ocr": {"enabled": true},"grounding": {"enabled": true}},"dataSources": [{"type": "AzureComputerVision","parameters": {"endpoint": "<your_computer_vision_endpoint>","key": "<your_computer_vision_key>"}}],"messages": [{"role": "system","content": "You are a helpful assistant."},{"role": "user","content": [{"type": "text","text": "Describe this picture:"},{"type": "image_url","image_url": {"url":"<URL or base-64-encoded image>" }}] }],"max_tokens": 100, "stream": false 
} 

输出

如此,从模型收到的聊天响应应包括有关图像的增强信息,例如对象标签和边界框以及 OCR 结果。 API 响应应如下所示:

{"id": "chatcmpl-8UyuhLfzwTj34zpevT3tWlVIgCpPg","object": "chat.completion","created": 1702394683,"model": "gpt-4","choices":[{"finish_details":{"type": "stop","stop": "<|fim_suffix|>"},"index": 0,"message":{"role": "assistant","content": "The image shows a close-up of an individual with dark hair and what appears to be a short haircut. The person has visible ears and a bit of their neckline. The background is a neutral light color, providing a contrast to the dark hair."},"enhancements":{"grounding":{"lines":[{"text": "The image shows a close-up of an individual with dark hair and what appears to be a short haircut. The person has visible ears and a bit of their neckline. The background is a neutral light color, providing a contrast to the dark hair.","spans":[{"text": "the person","length": 10,"offset": 99,"polygon": [{"x":0.11950000375509262,"y":0.4124999940395355},{"x":0.8034999370574951,"y":0.4124999940395355},{"x":0.8034999370574951,"y":0.6434999704360962},{"x":0.11950000375509262,"y":0.6434999704360962}]}]}],"status": "Success"}}}],"usage":{"prompt_tokens": 816,"completion_tokens": 49,"total_tokens": 865}
}

每个响应都包含 "finish_details" 字段。 子字段 "type" 具有以下可能值:

  • stop:API 返回了完整的模型输出。
  • max_tokens:由于 max_tokens 输入参数或模型的标记限制,模型输出不完整。
  • content_filter:由于内容筛选器的标志,省略了内容。

如果 finish_details.typestop,则还有一个 "stop" 属性指定导致输出结束的标记。

对视频使用视觉增强

GPT-4 Turbo with Vision 提供对 Azure AI 服务定制增强功能的独占访问权限。 视频提示集成使用 Azure AI 视觉视频检索对视频中的一组帧进行采样,并创建视频中语音的转录。 它使 AI 模型能够给出有关视频内容的摘要和答案。

按照以下步骤设置视频检索系统并将其与 AI 聊天模型集成:

  1. 获取与正在使用的 Azure OpenAI 资源位于同一区域中的 Azure AI 视觉资源。

  2. 按照[使用矢量化检索视频]中的指示创建视频检索索引。 创建索引后返回到本指南。

  3. 将索引名称、视频的 documentId 参数以及视频的 blob 存储 SAS URL 保存到一个临时位置。 在后面的步骤中会用到这些参数。

  4. 将 POST 请求准备到 https://{RESOURCE_NAME}.openai.azure.com/openai/deployments/{DEPLOYMENT_NAME}/extensions/chat/completions?api-version=2023-12-01-preview

    • RESOURCE_NAME 是 OpenAI 资源的名称
    • DEPLOYMENT_NAME 是 GPT-4 视觉模型部署的名称

    必需的标头

    • Content-Type:application/json
    • api-key: {API_KEY}
  5. 将以下 JSON 结构添加到请求正文中:

    {"enhancements": {"video": {"enabled": true}},"dataSources": [{"type": "AzureComputerVisionVideoIndex","parameters": {"endpoint": "<your_computer_vision_endpoint>","key": "<your_computer_vision_key>","computerVisionBaseUrl": "<your_computer_vision_endpoint>","computerVisionApiKey": "<your_computer_vision_key>","indexName": "<name_of_your_index>","videoUrls": ["<your_video_SAS_URL>"]}}],"messages": [ {"role": "system", "content": "You are a helpful assistant." },{"role": "user","content": [{"type": "text","text": "Describe this video:"}]},{"role": "user","content": [{"type": "acv_document_id","acv_document_id": "<your_video_ID>"}]}],"max_tokens": 100, 
    } 
    

    请求包括 enhancementsdataSources 对象。 enhancements 为会话中请求的视觉增强功能。 dataSources 为视觉增强需要的计算机视觉资源数据。 它具有应为 "AzureComputerVisionVideoIndex"type 属性,以及包含 AI 视觉和视频信息的 parameters 属性。

  6. 将自己的信息填写在上述所有 <placeholder> 字段中:按需输入 OpenAI 和 AI 视觉资源的终结点 URL 和密钥,并按照之前的步骤检索视频索引信息。

  7. 将 POST 请求发送到 API 终结点。 它应包含 OpenAI 和 AI 视觉凭据、视频索引的名称以及单个视频的 ID 和 SAS URL。

输出

从模型收到的聊天响应应包含有关视频的信息。 API 响应应如下所示:

{"id": "chatcmpl-8V4J2cFo7TWO7rIfs47XuDzTKvbct","object": "chat.completion","created": 1702415412,"model": "gpt-4","choices":[{"finish_details":{"type": "stop","stop": "<|fim_suffix|>"},"index": 0,"message":{"role": "assistant","content": "The advertisement video opens with a blurred background that suggests a serene and aesthetically pleasing environment, possibly a workspace with a nature view. As the video progresses, a series of frames showcase a digital interface with search bars and prompts like \"Inspire new ideas,\" \"Research a topic,\" and \"Organize my plans,\" suggesting features of a software or application designed to assist with productivity and creativity.\n\nThe color palette is soft and varied, featuring pastel blues, pinks, and purples, creating a calm and inviting atmosphere. The backgrounds of some frames are adorned with abstract, organically shaped elements and animations, adding to the sense of innovation and modernity.\n\nMidway through the video, the focus shifts to what appears to be a browser or software interface with the phrase \"Screens simulated, subject to change; feature availability and timing may vary,\" indicating the product is in development and that the visuals are illustrative of its capabilities.\n\nThe use of text prompts continues with \"Help me relax,\" followed by a demonstration of a 'dark mode' feature, providing a glimpse into the software's versatility and user-friendly design.\n\nThe video concludes by revealing the product name, \"Copilot,\" and positioning it as \"Your everyday AI companion,\" implying the use of artificial intelligence to enhance daily tasks. The final frames feature the Microsoft logo, associating the product with the well-known technology company.\n\nIn summary, the advertisement video is for a Microsoft product named \"Copilot,\" which seems to be an AI-powered software tool aimed at improving productivity, creativity, and organization for its users. The video conveys a message of innovation, ease, and support in daily digital interactions through a visually appealing and calming presentation."}}],"usage":{"prompt_tokens": 2068,"completion_tokens": 341,"total_tokens": 2409}
}

每个响应都包含 "finish_details" 字段。 子字段 "type" 具有以下可能值:

  • stop:API 返回了完整的模型输出。
  • max_tokens:由于 max_tokens 输入参数或模型的标记限制,模型输出不完整。
  • content_filter:由于内容筛选器的标志,省略了内容。

如果 finish_details.typestop,则还有一个 "stop" 属性指定导致输出结束的标记。

视频提示的定价示例

GPT-4 Turbo with Vision 的定价是动态的,取决于使用的特定功能和输入。 有关 Azure OpenAI 定价的全面视图,请参阅Azure OpenAI 定价。

基本费用和附加功能如下所述:

GPT-4 Turbo with Vision 的基本定价为:

  • 输入:每 1000 个令牌 0.01 USDX
  • 输出:每 1000 个令牌 0.03 USDX

视频提示与视频检索加载项集成:

  • 引入:每分钟视频 0.05 USDX
  • 事务:每 1000 个视频检索索引的 1000 个查询 0.25 USDX

处理视频将涉及使用额外的令牌确定关键帧进行分析。 这些附加令牌的数量大致相当于文本输入中令牌的总和加上 700 个令牌。

计算

对于典型的用例,假设我使用了 3 分钟的视频和 100 个令牌提示输入。 视频部分的脚本长度为 100 个令牌,我处理提示时,生成了 100 个输出令牌。 此事务的定价如下所示:

详细信息总成本
GPT-4 Turbo with Vision 输入令牌100 个文本令牌$0.001
用于确定帧的附加成本100 个输入令牌 + 700 个令牌 + 1 个视频检索 txn0.00825 USDX
图像输入和脚本输入20 个图像(每个图像 85 个令牌) + 100 个脚本令牌0.018 USDX
输出令牌100 个令牌(假定)0.003 USDX
总成本0.03025 USDX

此外,还有 0.15 USDX 的一次性索引成本,用于为此 3 分钟的视频段生成视频检索索引。 可以跨任意数量的视频检索和 GPT-4 Turbo with Vision 重复使用此索引。

限制

图像支持

  • “每个聊天会话的图像增强限制”:无法对单个聊天调用中的多个图像应用增强功能。
  • “最大输入图像大小”:输入图像的最大大小限制为 20 MB。
  • “增强 API 中的对象定位”:当增强 API 用于对象定位时,模型会检测对象重复项,它将为所有重复项生成一个边界框和标签,而不是为每个重复项生成单独的边界框和标签。
  • “低分辨率准确度”:使用“低分辨率”设置分析图像可以加快响应速度,且某些用例使用的输入令牌更少。 但是,这可能会影响对图像对象和文本识别的准确性。
  • “图像聊天限制”:在聊天操场或 API 中上传图像时,每个聊天调用有 10 张图像的限制。

视频支持

  • “低分辨率”:使用 GPT-4 Turbo with Vision 的“低分辨率”设置来分析视频帧可能会影响对视频中小对象和文本识别的准确性。
  • “视频文件限制”:支持 MP4 和 MOV 文件类型。 在 Azure AI 操场中,视频长度必须少于 3 分钟。 使用 API 时没有此类限制。
  • 提示限制:视频提示仅包含一个视频,不包含图像。 在操场中可以清除会话以尝试其他视频或图像。
  • “有限的帧选择”:目前服务从整个视频中选择 20 帧,这可能无法捕获所有关键时刻或细节。 帧选择可以大致均匀地分布在整个视频中,也可以通过特定的视频检索查询集中选择,具体取决于提示。
  • “语言支持”:目前,系统主要支持英语以进行脚本定位。 脚本不提供有关歌词的准确信息。

关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/297008.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++设计模式 #6 桥模式(Bridge)

动机 由于某些类型的固有的实现逻辑&#xff0c;使得它们具有两个变化的维度&#xff0c;乃至多个变化的维度。 如何应对这种“多维度的变化”&#xff1f;如何利用面向对象技术来使得类型可以轻松地沿着两个乃至多个方向变化&#xff0c;而不引入额外的复杂度 举个栗子 我们…

YUM和编译安装

一、安装Linux 1.编译安装&#xff0c;灵活性高&#xff0c;难度较大&#xff0c;可以安装较新的版本 2.rpm安装&#xff08;redhat&#xff09; linux包安装 rpm 软件名 3.yum yum是rpm升级版本&#xff0c;解决了rpm的弊端 2和3用的都是红帽打包好的软件包&#xff0c;能…

Elasticsearch基本使用

文章目录 概要一、核心概念二、索引操作2.1 创建索引2.2 判断索引是否存在2.3 查看索引2.4 打开、关闭索引2.5 删除索引 三、映射操作3.1 创建映射字段3.2 映射属性详解3.3 查看映射关系 四、文档增删改查4.1 新增文档4.2 查看单个文档4.3 查看所有文档4.4 _source定制返回字段…

小白也能搞定的Python选择排序

更多Python学习内容&#xff1a;ipengtao.com 大家好&#xff0c;我是彭涛&#xff0c;今天为大家分享 小白也能搞定的Python选择排序。全文3300字&#xff0c;阅读大约10分钟 选择排序&#xff08;Selection Sort&#xff09;是一种简单但有效的排序算法&#xff0c;它通过逐步…

IW5500手提式强光巡检工作灯

适用场所&#xff1a; 适用于铁路列检作业、工务巡道、车辆检修&#xff1b; 适用于冶金、厂电、网电等行业的巡查、设备检修等。 产品特点&#xff1a; 工作光、强光两种光设计&#xff0c;按动按钮可进行自由转换。 工作时间长&#xff0c;强光和工作光的连续工作时间分别在…

c++代码寻找USB00端口并添加打印机

USB00*端口的背景 插入USB端口的打印机&#xff0c;安装打印机驱动&#xff0c;在控制面板设备与打印机处的打印机对象上右击&#xff0c;可以看到打印机端口。对于不少型号&#xff0c;这个端口是USB001或USB002之类的。 经观察&#xff0c;这些USB00*端口并不是打印机驱动所…

制作自己的 Docker 容器

软件开发最大的麻烦事之一&#xff0c;就是环境配置。用户必须保证操作系统的设置&#xff0c;各种库和组件的安装&#xff0c;只有它们都正确&#xff0c;软件才能运行。docker从根本上解决问题&#xff0c;软件安装的时候&#xff0c;把原始环境一模一样地复制过来。 以 koa-…

为什么c++的开源库那么少?

为什么c的开源库那么少&#xff1f; 在开始前我有一些资料&#xff0c;是我根据自己从业十年经验&#xff0c;熬夜搞了几个通宵&#xff0c;精心整理了一份「 C的资料从专业入门到高级教程工具包」&#xff0c;点个关注&#xff0c;全部无偿共享给大家&#xff01;&#xff01;…

【JavaWeb学习笔记】15 - jQuery

项目代码 https://github.com/yinhai1114/JavaWeb_LearningCode/tree/main/jquery 目录 零、官方文档 一、jQuery基本介绍 1.基本介绍 2.原理图 二、JQuery入门使用 1.下载JQuery 2.jQuery快速入门 三、jQuery对象 1.什么是jQuery对象? 2.DOM对象转换成jQuery对象 …

C# 实现虚拟数字人

随着Ai技术的提升和应用&#xff0c;虚拟数字人被广泛应用到各行各业中。为我们的生活和工作提供了非常多的便利和色彩。 通过设置虚拟数字人的位置大小&#xff0c;可以让数字人可以在电脑屏幕各个位置显示&#xff1a; 虚拟数字人素材&#xff1a; 虚拟数字人(实际有语音&am…

Django之DRF框架三,序列化组件

一、序列化类的常用字段和字段参数 常用字段 字段名字段参数CharFieldmax_lengthNone, min_lengthNone, allow_blankFalse, trim_whitespaceTrueIntegerFieldmax_valueNone, min_valueNoneFloatFieldmax_valueNone, min_valueNoneBooleanFieldNullBooleanFieldFloatFieldmax_…

零基础学人工智能:TensorFlow 入门例子

识别手写图片 因为这个例子是 TensorFlow 官方的例子&#xff0c;不会说的太详细&#xff0c;会加入了一点个人的理解&#xff0c;因为TensorFlow提供了各种工具和库&#xff0c;帮助开发人员构建和训练基于神经网络的模型。TensorFlow 中最重要的概念是张量&#xff08;Tenso…