三亚网站建设公司,临夏金属装饰网站建设,孟津网站开发,wordpress 360加速给自己做一个 ChatGPT#xff1a;基于 Gradio 的本地 LLM 网页对话界面摘要#xff1a;黑底白字的命令行虽然极客#xff0c;但不够直观。今天我们将使用 Python 领域最流行的机器学习界面库 Gradio#xff0c;为我们在 RTX 3090 上微调的 Qwen/Llama 模型穿上一件漂亮的“…给自己做一个 ChatGPT基于 Gradio 的本地 LLM 网页对话界面摘要黑底白字的命令行虽然极客但不够直观。今天我们将使用 Python 领域最流行的机器学习界面库Gradio为我们在 RTX 3090 上微调的 Qwen/Llama 模型穿上一件漂亮的“外衣”。我们将实现流式输出 (Streaming)让 AI 的回答像打字机一样一个个字蹦出来体验拉满关键词GradioWebUIChatbot流式输出RTX 30901. 准备工作首先我们需要安装 Gradio。conda activate llm_learn pipinstallgradio2. 编写 WebUI 代码在工作目录下新建web_demo.py。我们将以Qwen2.5-7B为例因为它聊起天来更有趣。fromunslothimportFastLanguageModelimporttorchimportgradioasgrfromthreadingimportThreadfromtransformersimportTextIteratorStreamer# # 1. 模型加载 (只运行一次)# model_pathlora_model# 指向我们微调 Qwen 的目录max_seq_length2048print(f 正在加载模型:{model_path}...)model,tokenizerFastLanguageModel.from_pretrained(model_namemodel_path,max_seq_lengthmax_seq_length,dtypeNone,load_in_4bitTrue,)FastLanguageModel.for_inference(model)# # 2. 定义聊天逻辑 (支持流式)# defchat_stream(message,history):# message: 用户当前的输入# history: 之前的对话记录 [[user, bot], [user, bot]...]# 构造 Prompt (Qwen 格式)# 这里我们简化处理只取最近一轮对话实际项目可以拼接 historypromptf|im_start|user{message}|im_end| |im_start|assistant inputstokenizer([prompt],return_tensorspt).to(cuda)# 定义流式输出器streamerTextIteratorStreamer(tokenizer,skip_promptTrue,skip_special_tokensTrue)generation_kwargsdict(inputs,streamerstreamer,max_new_tokens512,temperature0.3,)# 在独立线程中运行生成主线程读取流threadThread(targetmodel.generate,kwargsgeneration_kwargs)thread.start()# 逐步返回生成的文字partial_textfornew_textinstreamer:partial_textnew_textyieldpartial_text# # 3. 搭建界面# demogr.ChatInterface(fnchat_stream,title 我的专属 Qwen 助手 (RTX 3090版),description这是我在本地微调并部署的大模型支持流式对话,examples[RTX 3090 适合做深度学习吗,请用 Python 写一个快排,你是谁],themegr.themes.Soft())if__name____main__:# shareTrue 可以生成一个公网链接发给朋友体验demo.launch(server_name0.0.0.0,shareFalse)3. 启动服务python web_demo.py终端会输出Running on local URL: http://0.0.0.0:7860打开浏览器访问http://localhost:7860。体验亮点打字机效果当你问问题时AI 的回答是实时蹦出来的不用等十几秒才看到结果。历史记录gr.ChatInterface自动帮你处理了对话气泡的 UI。专属知识试试问它“RTX 3090 适合做深度学习吗”它会用你微调过的知识回答你4. 进阶玩法如果你想让朋友也能通过互联网访问这个界面只需将最后一行代码改为demo.launch(shareTrue)Gradio 会自动生成一个为期 72 小时的免费公网链接类似https://xxxx.gradio.live。尽情享受你的私人 GPT 吧