【大模型】情緒對話模型項目研發

?一、使用框架:

  1. Qwen大模型后端+Open-webui前端實現
  2. 使用LLamaFactory的STF微調數據集,vllm后端部署,

二、框架安裝

  1. 下載千問大模型

安裝魔塔社區庫文件

pip install?modelscope

Download.py 內容

from?modelscope?import?snapshot_downloadmodel_dir = snapshot_download('Qwen/Qwen2.5-0.5B-Instruct',cache_dir="/root/llm/")
python download.py

  1. 下載LLamaFactory
pip install?LLamaFactory

  1. 下載vllm部署工具
pip install?vllm

  1. 下載Open-webui前端工具
pip install open-webui

三、自定義格式數據集生成

from?zhipuai?import?ZhipuAIimport?randomimport?jsonimport?timefrom?sentence_transformers?import?SentenceTransformerimport?numpy?as?np#初始化模塊client?=?ZhipuAI(api_key="xxxxxx") # 填寫您自己的APIKey#加載embeddingstyle_model?=SentenceTransformer(r"/root/llm/thomas/text2vec-base-chinese")#風格模版配置(修正消息格式)style_config?=?{"溫柔":{"system_prompt":"你是一個溫柔體貼的聊天助手,說話時總是充滿關懷,使用一下特征:\n1. 包含'呢、呀、啦'等語氣詞\n2.使用c:\\Users\\lenovo\\AppData\\Local\\Temp\\SGPicFaceTpBq\\2752\\05574898.png等溫暖表情\n3.主動詢問用戶感受","examples":[{"role": "user", "content": "今天好累啊"},{"role": "assistant", "content": "辛苦啦~ 要給自己泡杯熱茶放松一下嗎?"},{"role": "user", "content": "考試沒考好..."},{"role": "assistant", "content": "沒關系的呀~ 下次一定會更好!需要我陪你聊聊嗎?"}],"temperature": 0.3},"毒舌":{"system_prompt":"你是一個喜歡用犀利吐槽表達關心的朋友,需滿足:\n1.使用網絡流行語(如‘栓Q’‘退退退’)\n2.包含夸張比喻(‘你這速度堪比樹懶’)","examples":[{"role": "user", "content": "又胖了5斤"},{"role": "assistant", "content": "好家伙!你這是要把體重秤壓成分子料理?"},{"role": "user", "content": "游戲又輸了"},{"role": "assistant", "content": "菜就多練練!需要給你推薦《從零開始的電競之路》么?"}],"temperature": 0.7}}#生成數據(修正消息的結構)def?generate_style_data(style_name,num_samples=50):config?=?style_config[style_name]data?=[]messages?=?[{"role":"system","content":config["system_prompt"]},*config["examples"]]user_inputs=["今天心情不太好","推薦個電影吧","怎么才能早睡早起","養貓好還是養狗好","工作壓力好大","最近總是失眠"]for?_?in?range(num_samples):try:user_msg=random.choice(user_inputs)current_messages?=?messages?+?[{"role":"user","content":user_msg}]#response?=?client.chat.completions.create(model="glm-4-flash", ?# 填寫需要調用的模型編碼messages=current_messages,temperature=config["temperature"],max_tokens=100)reply?=?response.choices[0].message.contentif?is_valid_reply(style_name,user_msg,reply):data.append({"user": user_msg,"assistant": reply,"style": style_name})time.sleep(1.5)except?Exception?as?e:print(f"生成失敗:{str(e)}")return?datadef?is_valid_reply(style,user_msg,reply):if?not?reply?or?len(reply.strip())==0:return?Falseif?len(reply)<5?or?len(reply)>150:return?Falsestyle_keywords={"溫柔":["呢","呀","c:\\Users\\lenovo\\AppData\\Local\\Temp\\SGPicFaceTpBq\\2752\\05788D52.png","c:\\Users\\lenovo\\AppData\\Local\\Temp\\SGPicFaceTpBq\\2752\\05788D52.png"],"毒舌":["好家伙","栓Q","!"]}if?not?any(kw?in?reply?for?kw?in?style_keywords.get(style,[])):return?False#語義相似度try:ref_text?=?next(msg["content"] for?msg?in?style_config[style]["examples"] if?msg["role"]=="assistant")ref_vec?=?style_model.encode(ref_text)reply_vec?=?style_model.encode(reply)similarity?=?np.dot(ref_vec,reply_vec)#余弦相似度return?similarity>0.65except:return?False# 執行生成(容錯)if?__name__?=='__main__':all_data=[]try:print("開始生成溫柔風格數據...")gentle_data=generate_style_data("溫柔",50)all_data.extend(gentle_data)print("開始生成惡毒風格數據...")sarcastic_data?=?generate_style_data("毒舌",50)all_data.extend(sarcastic_data)except?KeyboardInterrupt:print("\n用戶中斷,保存已生成數據...")finally:with?open("style_chat_data.json","w",encoding="utf-8") as?f:json.dump(all_data,f,ensure_ascii=False,indent=2)print(f"數據已保存,有效樣本數:{len(all_data)}")

生成數據格式:

[{"user": "推薦個電影吧","assistant": "當然可以呢。最近有一部挺溫馨的電影,叫做《奇跡男孩》,講述了一個有面部畸形的男孩如何勇敢面對生活,融入學校的故事。它挺能讓人感到溫暖的,你可能會喜歡哦。有沒有什么特別想看的類型呀?","style": "溫柔"}]

四、轉換數據集格式:

import?json# 讀取原始JSON文件input_file?=?"/root/pretrain_file/style_chat_data.json"??# 你的JSON文件名output_file?=?"/root/pretrain_file/style_chat_data_train.json"??# 輸出的JSON文件名with?open(input_file, "r", encoding="utf-8") as?f:data?=?json.load(f)# 轉換后的數據converted_data?=?[]for?item?in?data:converted_item?=?{"instruction": item["user"],"input": "","output": "["+item["style"]+"],"+item["assistant"]}converted_data.append(converted_item)# 保存為JSON文件(最外層是列表)with?open(output_file, "w", encoding="utf-8") as?f:json.dump(converted_data, f, ensure_ascii=False, indent=4)print(f"轉換完成,數據已保存為 {output_file}")

五、通過LLamaFactory 使用Lora微調數據

Llamafactory-cli webui

六、導出模型

七、使用vllm命令部署后端

Vllm serve /root/export/Qwen/Qwen2.5-0.5B-Instruct_export1

后端啟動后:http://localhost:8000

八、啟動open-webui

export HF_ENDPOINT=https://hf-mirror.comexport ENABLE_OLLAMA_API=falseexport OPENAI_API_BASE_URL==http://127.0.0.1:8000/v1

open-webui:

在vscode中添加轉發端口8080

九、最終效果:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/85433.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/85433.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/85433.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java基礎 Day26

一、網絡編程簡介 1、概念 網絡編程指在網絡通信協議下&#xff0c;不同計算機上運行的程序&#xff0c;進行數據傳輸 2、軟件架構 &#xff08;1&#xff09;CS架構&#xff08;客戶端和服務端&#xff09; 在用戶本地有一個客戶端程序&#xff0c;在遠程有一個服務器端程…

【Hot 100】45. 跳躍游戲 II

目錄 引言跳躍游戲 IIdp解題貪心解題 &#x1f64b;?♂? 作者&#xff1a;海碼007&#x1f4dc; 專欄&#xff1a;算法專欄&#x1f4a5; 標題&#xff1a;【Hot 100】45. 跳躍游戲 II?? 寄語&#xff1a;書到用時方恨少&#xff0c;事非經過不知難&#xff01; 引言 跳躍…

計算機網絡第1章(上):網絡組成與三種交換方式全解析

目錄 一、計算機網絡的概念二、計算機網絡的組成和功能2.1 計算機網絡的組成2.2 計算機網絡的功能 三、電路交換、報文交換、分組交換3.1 電路交換&#xff08;Circuit Switching&#xff09;3.2 報文交換&#xff08;Message Switching&#xff09;3.3 分組交換&#xff08;Pa…

[總結]前端性能指標分析、性能監控與分析、Lighthouse性能評分分析

前端性能分析大全 前端性能優化 LightHouse性能評分 性能指標監控分析 瀏覽器加載資源的全過程性能指標分析 性能指標 在實現性能監控前&#xff0c;先了解Web Vitals涉及的常見的性能指標 Web Vitals 是由 Google 推出的網頁用戶體驗衡量指標體系&#xff0c;旨在幫助開發者量…

Windows商店中的免費掃雷游戲應用

《掃雷》是一款經典的單人益智小游戲&#xff0c;1992年微軟發布的Windows 3.1中加入該游戲&#xff0c;從此風靡全世界。游戲目標是通過邏輯推理&#xff0c;在最短的時間內根據點擊格子出現的數字找出所有非雷格子&#xff0c;同時避免踩雷。 此Windows應用實現了經典掃雷的…

ActiveMQ 可觀測性最佳實踐

ActiveMQ 介紹 ActiveMQ 是一款高性能、開源的消息中間件&#xff0c;支持多種消息協議&#xff08;如 JMS、AMQP、MQTT 等&#xff09;&#xff0c;能夠實現應用程序之間的異步通信和消息傳遞。它提供點對點&#xff08;Queue&#xff09;和發布/訂閱&#xff08;Topic&#…

【Linux命令】scp遠程拷貝

文章目錄 1. 基本語法與常用選項2. 使用場景和使用示例本地文件->遠程主機遠程主機文件->本地遠程主機->另一臺遠程主機 3. 使用注意事項 scp&#xff08;Secure Copy Protocol&#xff09;是linux中基于ssh的安全文件傳輸工具&#xff0c;用于在本地和遠程主機之前安…

如何優化 Harmony-Cordova 應用的性能?

以下是針對 ?Harmony-Cordova 應用性能優化?的完整方案&#xff0c;結合鴻蒙原生特性和Cordova框架優化策略&#xff1a; ??一、渲染性能優化? ?減少布局嵌套層級? 使用扁平化布局&#xff08;如 Grid、GridRow&#xff09;替代多層 Column/Row 嵌套&#xff0c;避免冗…

c++學習之---模版

目錄 一、函數模板&#xff1a; 1、基本定義格式&#xff1a; 2、模版函數的優先匹配原則&#xff1a; 二、類模板&#xff1a; 1、基本定義格式&#xff1a; 2、類模版的優先匹配原則&#xff08;有坑哦&#xff09;&#xff1a; 3、缺省值的設置&#xff1a; 4、ty…

SpringAI(GA):RAG下的ETL快速上手

原文鏈接&#xff1a;SpringAI(GA)&#xff1a;RAG下的ETL快速上手 教程說明 說明&#xff1a;本教程將采用2025年5月20日正式的GA版&#xff0c;給出如下內容 核心功能模塊的快速上手教程核心功能模塊的源碼級解讀Spring ai alibaba增強的快速上手教程 源碼級解讀 版本&a…

用dayjs解析時間戳,我被提了bug

引言 前幾天開發中突然接到測試提的一個 Bug&#xff0c;說我的時間組件顯示異常。 我很詫異&#xff0c;這里初始化數據是后端返回的&#xff0c;我什么也沒改&#xff0c;這bug提給我干啥。我去問后端&#xff1a;“這數據是不是有問題&#xff1f;”。后端答&#xff1a;“…

DataAgent產品經理(數據智能方向)

DataAgent產品經理&#xff08;數據智能方向&#xff09; 一、核心崗位職責 AI智能體解決方案設計 面向工業/政務場景構建「數據-模型-交互」閉環&#xff0c;需整合多源異構數據&#xff08;如傳感器數據、業務系統日志&#xff09;與AI能力&#xff08;如大模型微調、知識圖…

Ubuntu取消開機用戶自動登錄

注&#xff1a;配置前請先設置登錄密碼&#xff0c;不同顯示管理器配置方法不同&#xff0c;可用命令查看&#xff1a;cat /etc/X11/default-display-manager 一、LightDM 顯示管理器&#xff0c;關閉 Ubuntu 系統用戶自動登錄 查找自動登錄配置文件&#xff0c;可以看到類似 a…

使用lighttpd和開發板進行交互

文章目錄 &#x1f9e0; 一、Lighttpd 與開發板的交互原理1. 什么是 Lighttpd&#xff1f;2. 與開發板交互的方式&#xff1f; &#x1f9fe; 二、lighttpd.conf 配置文件講解?? 注意事項&#xff1a; &#x1f4c1; 三、目錄結構說明&#x1f4a1; 四、使用 C 編寫 CGI 腳本…

Apache IoTDB V2.0.3 發布|新增元數據導入導出腳本適配表模型功能

Release Announcement Version 2.0.3 Apache IoTDB V2.0.3 已經發布&#xff01; V2.0.3 作為樹表雙模型正式版本&#xff0c;主要新增元數據導入導出腳本適配表模型、Spark 生態集成&#xff08;表模型&#xff09;、AINode 返回結果新增時間戳&#xff0c;表模型新增部分聚…

車輛檢測算法在爆炸事故應急響應中的優化路徑

視覺分析賦能車輛管控&#xff1a;以山東應急場景為例 背景&#xff1a;應急場景下的車輛管控痛點 近期山東多起爆炸事故暴露了應急響應中的車輛管理短板&#xff1a;消防車、救護車因違停車輛堵塞通道&#xff0c;違規車輛闖入事故核心區&#xff0c;傳統監控系統依賴人工識別…

∑ 1/n 調和級數 是 發散的

為什么 ∑ 1 u \sum \frac{1}{u} ∑u1?&#xff08;即 ∑ 1 n \sum \frac{1}{n} ∑n1?&#xff0c;通常稱為調和級數&#xff09;是發散的&#xff1f; ? 一、首先明確你問的是這個級數&#xff1a; ∑ n 1 ∞ 1 n \sum_{n1}^{\infty} \frac{1}{n} n1∑∞?n1? 這個級數…

Android第十二次面試-多線程和字符串算法總結

多線程的創建與常見使用方法 ?一、多線程創建方式? ?1. 繼承Thread類? class MyThread extends Thread {Overridepublic void run() {// 線程執行邏輯System.out.println(Thread.currentThread().getName() " is running");} }// 使用 MyThread thread new …

大模型調用數據庫表實踐:基于自然語言的SQL生成與數據查詢系統

# 大模型調用數據庫表實踐&#xff1a;基于自然語言的SQL生成與數據查詢系統 ## 一、背景與目標 在企業數據管理場景中&#xff0c;非技術人員&#xff08;如業務人員、管理人員&#xff09;常常需要通過數據庫查詢獲取關鍵信息&#xff0c;但直接編寫SQL語句存在技術門檻。傳…

28 C 語言作用域詳解:作用域特性(全局、局部、塊級)、應用場景、注意事項

1 作用域簡介 作用域定義了代碼中標識符&#xff08;如變量、常量、數組、函數等&#xff09;的可見性與可訪問范圍&#xff0c;即標識符在程序的哪些位置能夠被引用或訪問。在 C 語言中&#xff0c;作用域主要分為三類&#xff1a; 全局作用域局部作用域塊級作用域 需注意&am…