🚀 DreamGen Opus V1
DreamGen Opus V1 是一系列用於故事創作和角色扮演的模型。這些模型能夠根據用戶的輸入,生成富有創意和情節的故事內容,支持多樣化的寫作風格和角色設定,為用戶帶來沉浸式的創作體驗。
✨ 主要特性
- 支持多種寫作任務:不僅可以進行故事寫作和角色扮演,還能完成故事情節總結、角色描述、風格描述、故事章節拆分等任務。
- 基於擴展版 ChatML:使用擴展版的 ChatML 進行提示,支持更靈活的輸入格式。
- 豐富的資源支持:提供提示指南、Google Colab 示例、Python 代碼示例等資源,方便用戶使用。
📦 安裝指南
文檔未提及具體安裝步驟,可參考以下運行方式使用模型。
💻 使用示例
基礎用法
以下是使用擴展版 ChatML 進行提示的示例:
<|im_start|>system
(這裡按照正確格式描述故事,通常包括情節描述、風格描述和角色設定)<|im_end|>
<|im_start|>user
(你對故事後續發展的指令)<|im_end|>
<|im_start|>text names= Alice
(從 Alice 角色角度續寫的故事內容)<|im_end|>
<|im_start|>text
(無特定角色的故事續寫,即純敘述內容)<|im_end|>
<|im_start|>user
(你對故事後續發展的指令)<|im_end|>
<|im_start|>text names= Bob
(從 Bob 角色角度續寫的故事內容)<|im_end|>
高級用法
故事情節總結
輸入一個故事或故事的幾個章節,模型將輸出故事或章節的描述。
<|im_start|>user
(輸入故事內容)<|im_end|>
故事角色描述
輸入一個故事或故事的幾個章節以及角色集合,模型將輸出角色的描述。
<|im_start|>user
(輸入故事內容和角色集合)<|im_end|>
故事風格描述
輸入一個故事或故事的幾個章節,模型將輸出故事的風格描述。
<|im_start|>user
(輸入故事內容)<|im_end|>
故事描述拆分章節
輸入簡要的情節描述和所需的章節數,模型將輸出每個章節的描述。
<|im_start|>user
(輸入簡要情節描述和章節數)<|im_end|>
📚 詳細文檔
資源

提示
模型使用擴展版的 ChatML,具體格式如下:
<|im_start|>system
(Story description in the right format here)
(Typically consists of plot description, style description and characters)<|im_end|>
<|im_start|>user
(Your instruction on how the story should continue)<|im_end|>
<|im_start|>text names= Alice
(Continuation of the story from the Alice character)<|im_end|>
<|im_start|>text
(Continuation of the story from no character in particular (pure narration))<|im_end|>
<|im_start|>user
(Your instruction on how the story should continue)<|im_end|>
<|im_start|>text names= Bob
(Continuation of the story from the Bob character)<|im_end|>
Opus V1 擴展部分是增加了 text
角色,並對角色名稱進行了添加/修改。使用時需注意以下幾點:
text
消息可以(但不必須)包含 names
,names
用於在角色扮演中表示“活躍”角色。
- 可以有多個後續的
text
角色消息,特別是涉及 names
時。
- 一條消息可以附加多個
names
。
names
的格式為 names= {{name[0]}}; {{name[1]}}
,注意 names=
和 ;
後面的空格,這種間距能使 names
的分詞更自然。
採樣參數
對於故事寫作和角色扮演,建議使用基於“Min P”的採樣方法,min_p
範圍為 [0.01, 0.1]
,temperature
範圍為 [0.5, 1.5]
,具體可根據個人喜好調整。一個不錯的起始點是 min_p=0.1; temperature=0.8
。
也可以設置存在懲罰、頻率懲罰和重複懲罰,特別是在較低溫度下。
數據集
微調數據集包含約 1 億個可引導的故事寫作、角色扮演、寫作輔助和通用輔助示例的標記。每個示例最長可達 31000 個標記。
所有故事寫作和角色扮演示例均基於人類編寫的文本。

運行模型
模型應與任何支持基礎模型的軟件兼容,但需注意提示和分詞。
推薦使用以下模型版本:
在 DreamGen.com 上運行(免費)
可以在 dreamgen.com 上免費運行模型,可使用內置的用戶界面進行故事寫作和角色扮演,也可使用 API。
本地運行
- 確保提示儘可能接近 Opus V1
- 無論使用哪種後端,都要確保提示格式正確且分詞正常。
- 閱讀提示指南
- 閱讀提示格式化代碼
- 確保
<|im_start|>
和 <|im_end|>
分詞正確
- vLLM
- Google Colab:這是一個簡單的交互式 Google Colab,用於使用 7B 模型進行角色扮演,應能在 T4 GPU 上運行。
- 代碼:這是一個用於特定場景交互式聊天的簡單腳本。
- SillyTavern
- DreamGen 的官方 SillyTavern 文檔:適用於 API 和本地模型
- SillyTavern(測試版)內置了用於角色扮演的 DreamGen 預設
- 其他預設可在 這裡 找到,v2 由 @MarinaraSpaghetti 提供
- 確保取消選擇
Skip special tokens
,否則無法正常工作
- 這只是對 Opus V1 提示的近似嘗試,並不完美
- 為內置 DreamGen 預設專門重寫的角色卡片:
- LM Studio
- 配置
- 與 ChatML 類似,只是將“assistant”角色改為“text”角色。
- 存在一個 bug:在 LM Studio 中刪除消息或點擊“繼續”時會出現問題,詳情見這裡。
- HuggingFace
- 聊天模板
- 與 ChatML 類似,只是將“assistant”角色改為“text”角色。
🔧 技術細節
已知問題
- 34B 重複問題:34B 模型有時會陷入重複相同單詞或同義詞的循環,這似乎是各種 Yi 34B 微調版本中常見的問題。
- GGUF 問題:分詞可能會混亂。一些用戶報告
<|im_start|>
和 <|im_end|>
會被分詞為多個標記。此外,llama.cpp 可能無法正確分詞(Yi 分詞器與 Llama 2 分詞器略有不同)。
📄 許可證