使用gradio部署微调后的模型

使用gradio部署微调后的模型

    正在检查是否收录...

文章目录

概要 整体架构流程 技术细节 小结

概要

使用gradio部署微调后的模型

整体架构流程

gradio前期学习,以下是一些常见的输入输出组件,有些即可输入也可输出
 gr.Audio(sources=['microphone', 'upload'], # 音频输入sources,支持录制或者上传音频文件 type='filepath', # filepath上传的文件路径,numpy则为音频文件的numpy输入形式 label='audio' # label就是标签 ), gr.Checkbox(label='checkbox'), # 选择框 gr.ColorPicker(label='colorPicker'), # 颜色选择器 gr.DataFrame(label='dataFrame'), # df表格 gr.Dropdown(['1111:1', '2222:2'], label='dropdown'), # 下拉框 gr.File(label='file', type='binary'), # 文件 type文件格式 gr.Image(sources=['webcam', 'upload'], label='image'), # webcam使用摄像头,upload上传 gr.Video(label='video', sources=['webcam', 'upload']), # 视频 gr.Slider(minimum=0, maximum=5, step=1, label='slider'), # 滑动条 gr.Textbox(label='textbox', lines=2, max_lines=3, placeholder='preText'), # 文本输入框 placeholder预显示的text gr.TextArea(label='textarea'), # 更大一点的textbox gr.Radio(['1111', '2222'], label='radio'), gr.Number(label='number'), # 数字 gr.CheckboxGroup(['qqq:q', 'dddd:d'], label='checkboxGroup') 

以下部分则用于构造布局,按照标签页,行列构建

gr.Blocks() gr.Row() # 行布局 gr.Column() # 列布局 gr.Tab() # 标签页 gr.Group() # 组 gr.Accordion() # 伸缩拉出组件 

在使用方面使用Blocks 比interface更加灵活,更适合做出一个网页样式。如果要对样式进行再细化的处理,需要用到css技术,对前端有所了解的一定知道。

使用gradio构建网页布局

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

主要特点:

快速创建界面:只需几行代码即可生成交互界面。 多种输入/输出类型:支持文本、图像、音频、视频等多种输入和输出类型。 实时反馈:用户可以实时查看模型的预测结果。 易于共享:可以轻松地将应用部署到 Web 上,生成一个共享链接。
!pip install -q gradio import gradio as gr placeholder = '输入想问的问题,比如:出现了黄疸、恶心、呕吐等症状,可能患了什么疾病?' #重置 def reset_input(): return "" #生成 def generate_input(inputs, repeat_penalty, top_k, top_p, temperature): messages = [ { 'role':'user', 'content':inputs }] input_ids = tokenizer.apply_chat_template( messages, add_generation_prompt=True, return_tensors="pt").to(model_lora.device) outputs = model.generate( input_ids=input_ids, max_new_tokens=256, # repeat_penalty=repeat_penalty, top_k = top_k, top_p = top_p, temperature = temperature ) response = outputs[0][input_ids.shape[-1]:] out = tokenizer.decode(response, skip_special_tokens=True) return out with gr.Blocks() as demo: with gr.Tab(label='Llama3'): with gr.Row(): with gr.Column(scale=1): gr.Label(value='该模型是基于Llama3开发的专门针对医疗咨询的语言模型', label='介绍') repeat_penalty = gr.Slider(minimum=0, maximum=1, step=0.1, label='repeat_penalty') # 滑动条 top_k = gr.Slider(minimum=0, maximum=60, step=1, label='top_k') # 滑动条 top_p = gr.Slider(minimum=0, maximum=1, step=0.1, label='top_p') # 滑动条 temperature = gr.Slider(minimum=0, maximum=1, step=0.1, label='temperature') # 滑动条 with gr.Column(scale=10): #输入文本框 inputs = gr.Textbox(label='input', lines=10, placeholder=placeholder, interactive=True) with gr.Row(): button_reset = gr.Button(value='reset', interactive=True) button_reset.click(fn=reset_input, inputs=None, outputs=inputs) button_generate = gr.Button(value='generate') #输出文本框 outputs = gr.Textbox(label='output', lines=15, interactive=False) button_generate.click(fn=generate_input, inputs=[inputs, repeat_penalty, top_k, top_p, temperature], outputs=outputs) 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)方法下加
"--tls_enable", "true" 
Llama应该是可以提供API访问模型,这样更利于开发,下一步进行这个处理。

小结

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

总结

### 文章总结
本文详细介绍了如何在机器学习和数据科学项目中,使用Gradio库来部署和调整后的模型,并构建一个交互式的用户界面。Gradio是一个开源的Python库,旨在快速创建可用于测试和部署机器学习模型的交互式界面。
#### 概要
- **目的**:使用Gradio来部署已微调的模型,并构建便于互动的界面。
- **应用领域**:适用于包括文本、图像、音频、视频在内的多种数据类型。
#### 整体架构流程
- **Gradio基础组件**:
- 多种输入输出类型,如:音频(`gr.Audio`)、选择框(`gr.Checkbox`)、颜色选择器(`gr.ColorPicker`)等。
- 使用`gr.Blocks()`来组织界面布局,并支持行列构建(`gr.Row()`, `gr.Column()`)、标签页(`gr.Tab()`)、伸缩组件(`gr.Accordion()`)等。
- **构造布局**:
- 提供了一种灵活的方式创建网页样式,支持通过Blocks和css进一步定制界面样式和功能。
#### 使用示例
- 展示了如何通过Gradio部署一个基于Llama3的医疗咨询语言模型界面。
- 用户可以通过输入框提问,并可通过调整多个滑块参数(如`repeat_penalty`, `top_k`, `top_p`, `temperature`)来影响模型的响应。
- 包括一个重置按钮(`reset`)用于清空输入框,以及一个生成按钮(`generate`)用于获取模型响应。
#### 技术细节
- **模型加速**:提到通过使用Llama.cpp进行模型量化来加快推理速度。
- **Web部署**:提供了如何在遇到本地部署问题时(如网络通信问题),通过手动下载并修改`frpc_linux_amd64`等文件或使用API访问模型的方式解决。
#### 小结
- Gradio是一个高效的工具,能够帮助创建易于部署和使用的机器学习模型界面。
- 建议深入官网或其他博客以学习更多高级功能和最佳实践。
通过这篇总结,读者可以快速了解到如何使用Gradio将微调后的模型部署成可交互的Web应用,以及如何对不同输入类型进行布局和处理。 gradioimuidetpuwebllama机器学习tokenlinux用户界面python交互式numpy数据科学cli快速搭建语言模型快速创建api访问api
  • 本文作者:WAP站长网
  • 本文链接: https://wapzz.net/post-19791.html
  • 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。
本站部分内容来源于网络转载,仅供学习交流使用。如涉及版权问题,请及时联系我们,我们将第一时间处理。
文章很赞!支持一下吧 还没有人为TA充电
为TA充电
还没有人为TA充电
0
0
  • 支付宝打赏
    支付宝扫一扫
  • 微信打赏
    微信扫一扫
感谢支持
文章很赞!支持一下吧
关于作者
2.8W+
9
1
2
WAP站长官方

在LangChain中使用Llama.cpp:从安装到实践

上一篇

百度文心一言API调用,千帆大模型获取API Key和API Secret图解

下一篇
  • 复制图片
按住ctrl可打开默认菜单