魔搭ModelScope社区 01月17日
基于Gradio的AI应用搭建实践课③: AI模型部署与推理:应用功能可无限拓展
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文介绍了基于Gradio的AI应用搭建实践课中AI模型的相关内容,包括模型的搜索、在Notebook环境中运行及验证效果、使用SwingDeploy部署模型API等,助力开发者拓展应用功能。

🎯在魔搭上通过多种方式搜索模型,如关键字、模型属性、推理框架等

💻使用Notebook环境运行文生文、文生图、语音等模型并验证效果

🚀利用SwingDeploy零代码部署模型成API服务,更加便捷

2025-01-16 18:20 浙江

《基于Gradio的AI应用搭建实践课③》发布啦,本期讲解了AI模型的搜索、运行及部署方法,助力开发者拓展AI应用功能。

在上一节课我们学习了 Gradio 的基础


核心内容包括:


    Gradio的基本概念和安装方法

    Gradio的Interface和ChatInterface的使用

    Gradio的自定义界面和复杂布局

    Gradio 的组件和运行机制

    自定义组件与三方组件

通过这些学习,我们掌握了如何利用Gradio快速搭建交互式AI应用的基本流程和方法。


接下来,在本节课里,我们将学习如何选择 AI模型并完成部署与推理,以及实现应用功能无限拓展。


建议学习步骤


Step1: 先看一遍视频教程,对本节课程内容有一个整体的了解 




Step2:然后根据下方图文版教程和demo示例动手实践,学以致用 



背景:

AI领域的模型运行往往需要比较高的计算资源,开发者没有相关的硬件资源,因此魔搭提供了多种方式帮助开发者快速搭建环境运行模型效果。


课程目标:

在本节课中,你将学习:


1、如何在魔搭上搜索模型

2、如何使用Notebook环境运行模型

3、如何SwingDeploy部署模型API


课程内容:

1.在魔搭上搜索模型

可以通过https://www.modelscope.cn/models 进入模型页


根据关键字进行搜索

比如搜索Qwen2.5-7b模型


根据模型属性进行过滤

左侧栏可以根据模型任务类型进行模型检索,比如过滤文本生成的模型


根据推理框架进行模型搜索


根据模型归类进行过滤

右侧栏可以根据社区的模型归类进行搜索,比如可以搜索模型推理API、在线体验的模型


根据条件进行模型搜索排序

除了根据需求进行搜索以外,还可以根据一定的排序规则对搜索出来的模型进行排序


2.使用Notebook环境运行模型并验证效果

Notebook是ModelScope提供的免费计算资源,可以通过登录并编码的方式进行模型的体验。可以通过如下的方式进行体验:


2.1 首先需要将您的modelscope账号绑定阿里云账号,详细文档参考:https://www.modelscope.cn/docs/notebooks/free-trial


2.2 进入首页->我的Notebook,可以根据模型的大小选择GPU或CPU实例,点击启动Notebook


2.3 新建ipynb文件


2.4 输入模型的推理代码,并运行

    文生文模型

比如我们搜索Qwen2.5-7B-Instruct模型,并且点击进入模型详情页。模型详情页的QuickStart部分有实例代码可以运行模型效果,例如让大模型来介绍一下杭州

    from modelscope import AutoModelForCausalLM, AutoTokenizer
    model_name = "qwen/Qwen2.5-7B-Instruct"
    model = AutoModelForCausalLM.from_pretrained( model_name, torch_dtype="auto", device_map="auto")tokenizer = AutoTokenizer.from_pretrained(model_name)
    prompt = "介绍一下杭州"messages = [ {"role": "system", "content": "You are Qwen, created by Alibaba Cloud. You are a helpful assistant."}, {"role": "user", "content": prompt}]text = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True)model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
    generated_ids = model.generate( **model_inputs, max_new_tokens=512)generated_ids = [ output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)]
    response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]print(response)


    点击左上角的按钮即可运行


    如下是大模型的回答


    可以通过修改代码里的prompt来替换问题,比如让大模型回答北京的景点都有哪些


      文生图模型

    我们也可以尝试一下其他的模型,比如AI-ModelScope/stable-diffusion-v1-5模型,同样通过模型搜索页可以搜到相关模型并进入详情页modelscope usage 拷贝示例代码并运行

      from modelscope.utils.constant import Tasksfrom modelscope.pipelines import pipelineimport cv2
      pipe = pipeline(task=Tasks.text_to_image_synthesis, model='AI-ModelScope/stable-diffusion-v1-5', model_revision='v1.0.0')
      prompt = 'a dog'output = pipe({'text': prompt})cv2.imwrite('result.png', output['output_imgs'][0])

      并且为了更好的展示图片添加如下的代码

        from PIL import Imagefrom io import BytesIOimage = Image.fromarray(output['output_imgs'][0])image.show()


        同样可以通过修改prompt来让大模型生成新的图片,比如一只猫

          from modelscope.utils.constant import Tasksfrom modelscope.pipelines import pipelineimport cv2
          pipe = pipeline(task=Tasks.text_to_image_synthesis, model='AI-ModelScope/stable-diffusion-v1-5', model_revision='v1.0.0')
          prompt = 'a cat'output = pipe({'text': prompt})cv2.imwrite('result.png', output['output_imgs'][0])from PIL import Imagefrom io import BytesIOimage = Image.fromarray(output['output_imgs'][0])image.show()


            语音模型

          在模型搜索页搜索speech_sambert-hifigan_tts_zh-cn_16k,并在模型详情页拷贝quickstart代码运行。

            from modelscope.outputs import OutputKeysfrom modelscope.pipelines import pipelinefrom modelscope.utils.constant import Tasks
            text = '一直漂亮的小狗'model_id = 'damo/speech_sambert-hifigan_tts_zh-cn_16k'sambert_hifigan_tts = pipeline(task=Tasks.text_to_speech, model=model_id)output = sambert_hifigan_tts(input=text, voice='zhitian_emo')wav = output[OutputKeys.OUTPUT_WAV]with open('output.wav', 'wb') as f: f.write(wav)


            语音文件保存在当前目录的 output.wav 文件中


            可以通过修改text来生成不同的语音播报内容,以及可以通过voice来修改不同的语音发音人,目前支持发音人zhitian_emo,zhiyan_emo,zhizhe_emo,zhibei_emo。


            3.使用SwingDeploy运行模型并验证效果

            ModelScope在提供上述Notebook免费计算资源的同时,也提供了SwingDeploy模型推理服务功能,用户可以通过简单的页面操作,就可以将模型部署成API服务。相比较于Notebook的方式,用户可以进行零代码部署,更加便捷。

            可以通过如下方式体验:


            点击首页->模型服务->新建部署

            在模型的部署页,搜索相关模型,比如Qwen2.5-7B-Instruct,点击一键部署


            部署需要一定的时间,喝杯咖啡等待一会儿~


            部署完成后点击立即使用,可以获取模型的调用代码(下述代码只是示例,根据实际部署情况来粘贴)。

              from openai import OpenAI
              model_id = 'Qwen/Qwen2.5-7B-Instruct-GGUF'
              client = OpenAI( base_url='https://ms-fc-your-id.api-inference.modelscope.cn/v1', api_key='YOUR_MODELSCOPE_SDK_TOKEN')
              response=client.chat.completions.create( model=model_id, messages=[{"role":"user", "content":"你好,能帮我介绍一下杭州吗?"}], stream=True)
              for chunk in response: print(chunk.choices[0].delta.content, end='', flush=True)


              调用的API方式符合OpenAI的标准,可以将上述代码粘贴到自身开发环境或Notebook上运行,运行的环境对于GPU没有要求。注:第一次调用时,模型需要加载,比较慢。且服务设置了弹性策略,一段时间没调用后资源进行收缩,重新调用会引发模型重新加载。

              可以通过修改content里面的内容来让模型回答一些其他问题


              Step3:反馈学习需求 



              预设课程大纲如下

              ✔️课程一:全栈产品经理启发课:AI加持后,从想法到落地,就是这么简单!

              ✔️课程二:Gradio组件学习:应用UI界面可无限DIY

              ✔️课程三:AI模型部署与推理:应用功能可无限拓展(本次内容)

              ✔️课程四:前后端联调及应用发布:打通前后端的任督二脉,就是完整的AI应用!

              ✔️课程五:案例学习:通过AI应用案例来实践,用微调的思路先做出你自己的第一个AI应用!

              无论是对课程内容的疑问、对教学方式的建议,还是对未来课程主题的期待,都请不吝赐教。你可以通过公众号留言或是直接加入我们学习群的方式,分享你的想法。

              课程学习群:


              我们会从公众号留言中选取有用的建议来赠送魔搭周边小礼品哦!





              ?点击关注ModelScope公众号获取

              更多技术信息~




              阅读原文

              跳转微信打开

              Fish AI Reader

              Fish AI Reader

              AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

              FishAI

              FishAI

              鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

              联系邮箱 441953276@qq.com

              相关标签

              AI模型 模型搜索 Notebook SwingDeploy
              相关文章