🚀 QwQ-32B-ArliAI-RpR-v3
QwQ-32B-ArliAI-RpR-v3是ArliAI推出的一款基於QwQ-32B的模型,通過優化數據集和訓練方法,提升了模型在角色扮演和創意寫作中的表現,尤其適用於長對話場景。
🚀 快速開始
你可以通過以下鏈接訪問模型:
- BF16:https://huggingface.co/ArliAI/QwQ-32B-ArliAI-RpR-v3
- GGUF:https://huggingface.co/ArliAI/QwQ-32B-ArliAI-RpR-v3-GGUF
同時,你可以在我們的新Discord服務器(https://discord.com/invite/t75KbPgwhk )或Reddit社區(https://www.reddit.com/r/ArliAI/ )提問。
✨ 主要特性
RpR v3的改進
- 最佳模型:ArliAI目前最好的模型,具有極高的創造力和跳出常規的思維能力。
- 更換基礎模型:不再使用QwQ-abliterated作為基礎模型。v3是v2的重新訓練版本,避免了使用QwQ-lorablated基礎模型帶來的問題,該問題會導致模型性能下降,從更高的訓練和評估損失值中可見一斑。
- 修復思維脫節問題:投入大量精力重新運行RpR數據集生成過程,確保生成的思維標記與模型響應始終匹配。
- 修復隨機拒絕問題:之前的RpR v1數據集使用原始QwQ生成,導致思維和響應示例中出現一些拒絕情況。RpR v3使用QwQ-abliterated生成數據集,避免了此類拒絕情況。
- 修復數據集中的無意義詞彙:在用於RPMax/RpR數據集的開放數據集中發現了一些可能的審查嘗試,這些錯誤放置的單詞或短語已被修復,防止模型複製此類行為。
- 採用Rex調度器:v3使用更新更好的Rex調度器進行訓練,而非常規的餘弦調度器,以提高模型從更多數據集中學習細微差別的能力,因為該調度器能在更長時間內保持較高的學習率。
RpR系列概述:基於RPMax的推理能力構建
RpR(RolePlay with Reasoning)是ArliAI推出的新系列模型,該系列直接基於為RPMax系列開發的成功數據集整理方法和訓練方法構建。
RpR模型使用與RPMax相同的經過整理和去重的角色扮演(RP)和創意寫作數據集,注重多樣性,以確保高創造力並減少跨上下文重複。熟悉RPMax的用戶會發現其獨特的、不重複的寫作風格,與其他針對角色扮演進行微調的模型不同。
隨著QwQ作為第一個易於訓練的高性能開源推理模型發佈,很明顯現有的指令和創意寫作推理數據集每個示例僅包含一個響應。這種用於訓練推理模型的單響應數據集會導致長多輪聊天中輸出質量下降。因此,Arli AI決定創建一個能夠進行長多輪聊天並具備推理能力的真正角色扮演模型。
為了創建RpR,我們首先需要通過將現有的已知良好的RPMax數據集重新處理為推理數據集來創建推理角色扮演數據集。這可以通過使用基礎QwQ指令模型本身為RPMax數據集對話示例中的每一輪創建推理過程來實現,然後進一步優化以確保推理與數據集中的實際響應示例一致。
另一個重要的事情是確保模型在推理過程中遇到的推理塊與訓練時的呈現方式相同。為此,訓練過程使用axolotl和無模板手動分段數據集完成,以確保模型在訓練過程中從未見過推理塊。就像模型在推理時的使用方式一樣。
通過這種方法在該數據集上訓練QwQ的結果是,即使在長多輪角色扮演聊天中,輸出也始終連貫且有趣。據我們所知,這是第一個真正經過正確訓練的用於角色扮演和創意寫作的推理模型。
📦 安裝指南
文檔未提及安裝步驟,故跳過。
💻 使用示例
基礎用法
文檔未提供基礎用法代碼示例,故跳過。
高級用法
文檔未提供高級用法代碼示例,故跳過。
📚 詳細文檔
模型描述
QwQ-32B-ArliAI-RpR-v3是RpR系列的第三個版本。它是一個320億參數的模型,基於精心整理的RPMax數據集,使用RpR數據集進行微調,並結合了在長多輪聊天中保持推理能力的技術。
屬性 |
詳情 |
模型類型 |
QwQ-32B-ArliAI-RpR-v3 |
基礎模型 |
QwQ-32B |
最大上下文長度 |
最大128K(實際32K) |
參數數量 |
32B |
是否為推理模型 |
是 |
訓練詳情
屬性 |
詳情 |
序列長度 |
8192 |
訓練輪數 |
1輪(繼承自RPMax方法) |
微調方法 |
RS-QLORA+(Rank-Stabilized LoRA + LoRA Plus 8x) |
秩/阿爾法 |
128秩 128阿爾法 |
學習率 |
0.00001 |
調度器 |
Rex |
梯度累積 |
32 |
訓練圖表

量化
- BF16:https://huggingface.co/ArliAI/QwQ-32B-ArliAI-RpR-v3
- GGUF:https://huggingface.co/ArliAI/QwQ-32B-ArliAI-RpR-v3-GGUF
如何在ST中正確使用推理模型

對於一般的推理模型,你需要確保設置如下:
- 前綴僅設置為
<think>
,後綴僅設置為</think>
,無空格或換行符。
- 回覆以
<think>
開頭。
- 取消勾選“始終添加角色名稱”。
- “包含名稱”設置為“從不”。
- 聊天模板應符合所使用的模型。
注意:推理模型僅在“包含名稱”設置為“從不”時才能正常工作,因為它們總是期望用戶輪次的結束標記(eos token)後跟<think>
標記,以便在輸出響應之前開始推理。如果你啟用“包含名稱”,則會在末尾附加角色名稱,如“Seraphina:<eos_token>”,這會使模型混淆是應該先響應還是先推理。
其餘採樣器參數可根據需要設置。
如果你沒有看到推理內容包含在思維塊中,可能是你的設置仍然有誤,未遵循示例,或者你的ST版本太舊,不支持推理塊自動解析。
如果你看到整個響應都在推理塊中,可能是你的<think>
和</think>
推理標記的前綴和後綴有額外的空格或換行符,或者模型不夠智能,無法始終將推理內容放在這些標記之間。
正確設置後的效果

RPMax基礎詳情(數據集和訓練理念)
目標:減少重複並提高創造力
用於RPMax和RpR的數據集整理目標是減少重複並提高模型在不同情況下進行創意寫作的能力。這意味著該模型在不同情況下的輸出響應差異很大,不會陷入可預測的套路。
什麼是重複和創造力?
首先,創造力應指模型能夠產生的輸出多樣性。你不應將創造力與優美的寫作散文混淆。當一個模型以一種像作家在小說中那樣令人愉悅的方式寫作時,這並非創意寫作,而只是模型具有某種令人愉悅的寫作風格。因此,寫作優美的模型不一定是有創造力的模型。
重複和創造力本質上相互交織,所以如果一個模型具有重複性,那麼也可以說它缺乏創造力,因為它無法寫出新內容,只能重複之前生成的類似響應。實際上,重複有兩種截然不同的形式。
- 上下文內重複:當人們提到模型具有重複性時,通常指的是模型在單個對話中喜歡重複相同的短語。例如,模型說一個角色“甩了甩頭髮……”,然後在該角色的其他每個動作前都加上“甩了甩頭髮……”。
可以說這種模型很無趣,但在現實人們的寫作中,在某些情況下這種重複可能是有意的,以微妙地表達觀點或展現角色特徵。因此,這種類型的重複並不總是壞事,完全阻止模型這樣做並不一定能提高模型的寫作能力。
在這方面,RPMax和RpR目前尚未專注於消除這種類型的重複,因此在輸出中可能會看到一些上下文內重複。消除這種重複將是RPMax和RpR系列模型的下一個重要步驟。
- 跨上下文重複:第二種更糟糕的重複類型是模型在非常不同的情況下重複相同的短語或套路。例如,一個模型喜歡在截然不同的對話中重複臭名昭著的“shivers down my spine”短語,而這些對話不一定適合該短語。
這種類型的重複總是不好的,因為這表明模型過度擬合了它在訓練數據集中經常看到的“創意寫作”風格。模型出現跨上下文重複的傾向通常也可以從它在寫故事時喜歡選擇相似的重複名稱中看出,例如臭名昭著的“elara”和“whispering woods”。
RPMax和RpR數據集整理的主要目標是通過減少跨上下文重複來創建一個高度有創造力的模型,因為這種類型的重複會在不同對話中一直存在。這通過確保數據集中不同示例條目中不存在相同情況或角色的重複來實現。
數據集整理
在該數據集上訓練的模型(包括RPMax和現在的RpR)的成功歸功於訓練方法和為微調創建的獨特數據集。它包含了儘可能多的開源創意寫作和角色扮演數據集(均來自Hugging Face),從中篩選出純粹的合成生成數據集,因為這些數據集往往只會降低模型性能,使模型學習GPT式的風格(劣質內容),而無助於提升。
然後使用Llama 3.1 8B(或類似能力的模型)創建這些數據集中描繪的角色和情況的數據庫,然後對這些數據集進行去重,以確保任何角色或情況只有一個條目。
微調的黃金法則
與初始預訓練階段不同,在大多數情況下投入的數據越多越好,微調模型的黃金法則不是數量,而是質量勝於數量。因此,這裡使用的數據集實際上比包含重複角色和情況的數據集小几個數量級,但最終結果是一個不會讓人感覺只是另一個創意寫作/角色扮演模型的“近親繁殖”版本的模型。
訓練參數和非常規方法
通常的做法是使用低學習率和高梯度累積以獲得更好的損失穩定性,然後進行多輪訓練,直到損失可接受為止。
然而,RPMax和RpR方法僅使用一輪訓練、低梯度累積和高於正常水平的學習率。訓練期間的損失曲線實際上不穩定,會大幅波動,但如果進行平滑處理,它會隨著時間穩步下降。理論上,這允許模型從數據集中的每個單獨示例中學習更多,並且通過不使用多輪訓練讓模型看到相同的示例兩次,防止模型陷入並強化單個角色或故事套路。
訓練期間損失的波動是因為當模型在數據集的新條目上進行訓練時,模型之前從未見過類似的示例,因此無法真正預測與示例條目相似的答案。雖然相對較高的最終損失值1.0或略高實際上是可以接受的,因為目標從來不是創建一個能夠輸出與用於訓練的數據集完全相同的模型,而是創建一個有足夠創造力來形成自己響應風格的模型。
這與在特定領域訓練模型並要求模型能夠可靠地輸出與示例數據集相同的情況不同,例如在公司內部知識庫上訓練模型。
🔧 技術細節
文檔未提供具體的技術實現細節(>50字),故跳過。
📄 許可證
本項目採用Apache-2.0許可證。