利用gradio摆设微调后的模型

打印 上一主题 下一主题

主题 1868|帖子 1868|积分 5608

概要

利用gradio摆设微调后的模型
团体架构流程


  • gradio前期学习,以下是一些常见的输入输出组件,有些即可输入也可输出
  1.     gr.Audio(sources=['microphone', 'upload'],  # 音频输入sources,支持录制或者上传音频文件
  2.              type='filepath',  # filepath上传的文件路径,numpy则为音频文件的numpy输入形式
  3.              label='audio'  # label就是标签
  4.              ),
  5.     gr.Checkbox(label='checkbox'),  # 选择框
  6.     gr.ColorPicker(label='colorPicker'),  # 颜色选择器
  7.     gr.DataFrame(label='dataFrame'),  # df表格
  8.     gr.Dropdown(['1111:1', '2222:2'], label='dropdown'),  # 下拉框
  9.     gr.File(label='file', type='binary'),  # 文件   type文件格式
  10.     gr.Image(sources=['webcam', 'upload'], label='image'),  # webcam使用摄像头,upload上传
  11.     gr.Video(label='video', sources=['webcam', 'upload']),  # 视频
  12.     gr.Slider(minimum=0, maximum=5, step=1, label='slider'),  # 滑动条
  13.     gr.Textbox(label='textbox', lines=2, max_lines=3, placeholder='preText'),  # 文本输入框 placeholder预显示的text
  14.     gr.TextArea(label='textarea'),  # 更大一点的textbox
  15.     gr.Radio(['1111', '2222'], label='radio'),
  16.     gr.Number(label='number'),  # 数字
  17.     gr.CheckboxGroup(['qqq:q', 'dddd:d'], label='checkboxGroup')
复制代码
以下部门则用于构造布局,按照标签页,行列构建
  1. gr.Blocks()
  2. gr.Row()  # 行布局
  3. gr.Column()  # 列布局
  4. gr.Tab()  # 标签页
  5. gr.Group()  # 组
  6. gr.Accordion()  # 伸缩拉出组件
复制代码
在利用方面利用Blocks 比interface更加机动,更得当做出一个网页样式。假如要对样式进行再细化的处置处罚,须要用到css技能,对前端有所相识的一定知道。

  • 利用gradio构建网页布局
Gradio 是一个用于快速搭建机器学习模型和数据科学应用的开源 Python 库。它允许开发者创建交互式的用户界面,使得非技能用户也能方便地利用和测试机器学习模型。以下是 Gradio 的一些主要特点和利用方法:
主要特点:


  • 快速创建界面:只需几行代码即可生成交互界面。
  • 多种输入/输出类型:支持文本、图像、音频、视频等多种输入和输出类型。
  • 及时反馈:用户可以及时查看模型的预测结果。
  • 易于共享:可以轻松地将应用摆设到 Web 上,生成一个共享链接。
  1. !pip install -q gradio
  2. import gradio as gr
  3. placeholder = '输入想问的问题,比如:出现了黄疸、恶心、呕吐等症状,可能患了什么疾病?'
  4. #重置
  5. def reset_input():
  6.     return ""
  7. #生成
  8. def generate_input(inputs, repeat_penalty, top_k, top_p, temperature):
  9.     messages = [
  10.     {
  11.         'role':'user',
  12.         'content':inputs
  13.     }]
  14.     input_ids = tokenizer.apply_chat_template(
  15.         messages, add_generation_prompt=True, return_tensors="pt").to(model_lora.device)
  16.     outputs = model.generate(
  17.     input_ids=input_ids,
  18.     max_new_tokens=256,   
  19.     # repeat_penalty=repeat_penalty,
  20.     top_k = top_k,
  21.     top_p = top_p,
  22.     temperature = temperature
  23.     )
  24.     response = outputs[0][input_ids.shape[-1]:]
  25.     out = tokenizer.decode(response, skip_special_tokens=True)
  26.     return out
  27. with gr.Blocks() as demo:
  28.     with gr.Tab(label='Llama3'):
  29.         with gr.Row():
  30.             with gr.Column(scale=1):
  31.                 gr.Label(value='该模型是基于Llama3开发的专门针对医疗咨询的语言模型', label='介绍')
  32.                 repeat_penalty = gr.Slider(minimum=0, maximum=1, step=0.1, label='repeat_penalty')  # 滑动条
  33.                 top_k = gr.Slider(minimum=0, maximum=60, step=1, label='top_k') # 滑动条
  34.                 top_p = gr.Slider(minimum=0, maximum=1, step=0.1, label='top_p')  # 滑动条
  35.                 temperature = gr.Slider(minimum=0, maximum=1, step=0.1, label='temperature')  # 滑动条
  36.             with gr.Column(scale=10):
  37.                     #输入文本框
  38.                 inputs = gr.Textbox(label='input', lines=10, placeholder=placeholder, interactive=True)
  39.                 with gr.Row():
  40.                     button_reset = gr.Button(value='reset', interactive=True)
  41.                     button_reset.click(fn=reset_input, inputs=None, outputs=inputs)
  42.                     button_generate = gr.Button(value='generate')
  43.                 #输出文本框
  44.                 outputs = gr.Textbox(label='output', lines=15, interactive=False)
  45.                 button_generate.click(fn=generate_input, inputs=[inputs, repeat_penalty, top_k, top_p, temperature], outputs=outputs)
  46. demo.launch(share=True)
复制代码

  • 进行演示,模型是来自之前LoRA微调版本,开端效果如下图所示。

技能细节



  • model:加载大模型比力耗时,可以先用Llama.cpp量化后再利用,如许能加速推理速度。
  • gradio可以开放web页面更加方便,假如不可安装提示来,比如:
    1. Download this file: https://cdn-media.huggingface.co/frpc-gradio-0.2/frpc_linux_amd64
    2. Rename the downloaded file to: frpc_linux_amd64_v0.2
    3. Move the file to this location: /usr/local/lib/python3.10/site-packages/gradio
    同时须要对文件进行权限设置sudo chmod +x frpc_linux_amd64_v0.2。网上看到还有错误可以如许改:在gradio文件的路径里找到tunneling.py文件,在_start_tunnel(self, binary:str)方法下加
  1. "--tls_enable",
  2. "true"
复制代码


  • Llama应该是可以提供API访问模型,如许更利于开发,下一步进行这个处置处罚。
小结

Gradio 是一个功能强大且易于利用的工具,得当快速搭建和测试机器学习模型的用户界面。还有更多的功能各人可以去官网或者别的博客进行学习。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

东湖之滨

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表