测试 NVIDIA NIM部署的 llama-3.2-90b-vision-instruct 大模型图片解析能力

什么是NVIDIA NIM

NVIDIA NIM™ 是 NVIDIA AI Enterprise 的一部分,为跨云、数据中心和工作站的自托管 GPU 加速推理微服务提供容器,用于预训练和自定义 AI 模型。使用单个命令部署后,NIM 微服务会公开行业标准 API,以便轻松集成到 AI 应用程序、开发框架和工作流程中。NIM 微服务基于 NVIDIA 和社区的预优化推理引擎 (包括 NVIDIA® TensorRT™ 和 TensorRT-LLM) 构建,可自动优化运行时检测到的基础模型和 GPU 系统的每个组合的响应延迟和吞吐量。NIM 容器还提供标准的可观察性数据源,并内置支持在 GPU 上的 Kubernetes 上自动扩展。

写个程序测试一下

记得自己注册账号,并到以下链接申请key
https://build.nvidia.com/meta/llama-3.2-90b-vision-instruct

import requests, base64
import gradio as gr

stream = False
def Get_Img_Info(filepath):
    invoke_url = "https://ai.api.nvidia.com/v1/gr/meta/llama-3.2-90b-vision-instruct/chat/completions"

    # with open("D:\\ai_sd_data\\01.jpeg", "rb") as f:
    with open(filepath, "rb") as f:
        image_b64 = base64.b64encode(f.read()).decode()

    assert len(image_b64) < 180_000000, \
        "To upload larger images, use the assets API (see docs)"

    headers = {
        "Authorization": "Bearer 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",
        "Accept": "text/event-stream" if stream else "application/json"
    }

    payload = {
        "model": 'meta/llama-3.2-90b-vision-instruct',
        "messages": [
            {
                "role": "user",
                "content": f'这个图像里有什么? <img src="data:image/png;base64,{image_b64}" />'
            }
        ],
        "max_tokens": 1024,
        "temperature": 1.00,
        "top_p": 1.00,
        "stream": stream
    }

    response = requests.post(invoke_url, headers=headers, json=payload)


    print(response.json())
    res = response.json()["choices"][0]["message"]["content"]
    return res

def process_png(path):
    return Get_Img_Info(path)

def main(port=None):
    # demo = gr.Interface(
    #     process_png,
    #     inputs=gr.Image(type="filepath"),
    #     outputs="text",
    #     title="NIM llama-3.2-90b-vision-instruct 测试",
    #     live=True,
    # )
    title = "# **NIM llama-3.2-90b-vision-instruct 测试**"
    with gr.Blocks() as demo:
        gr.Markdown(title)
        with gr.Row():
            with gr.Column():
                input=gr.Image(type="filepath")
                run_btn = gr.Button("run")
            with gr.Column():
                output = gr.Textbox(label="Output Box",lines = 10)
            run_btn.click(fn=process_png, inputs=input, outputs=output, api_name="greet")

    if port is not None:
        demo.queue().launch(share=False, server_name="0.0.0.0", server_port=port)
    else:
        demo.queue().launch()

if __name__ == "__main__":
    main()

界面展示

在这里插入图片描述
上传图片点击,run按钮,就可以获得结果了;

总结

NIM网站上可以找到很多不方便本地部署的大模型,使用起来很方便,可以抢先体验以下;

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值