SillyTavern项目集成NovelAI Erato模型的技术实现与优化
2025-05-16 05:22:33作者:温玫谨Lighthearted
背景与需求分析
SillyTavern作为一款开源的AI对话前端工具,近期完成了对NovelAI最新Erato模型的支持。Erato是NovelAI基于Llama 3架构开发的新一代文本生成模型,相比前代Kayra模型在创意写作和角色扮演方面有显著提升。本次集成主要面临三个技术挑战:API迁移、停止序列优化和提示工程适配。
API架构升级
NovelAI近期对API服务进行了重大调整,将原有api.novelai.net服务拆分为text.novelai.net和image.novelai.net两个独立端点。技术团队在实现时需要注意:
- 必须使用Persistent API token进行认证
- 旧版API将于2024年9月30日停止支持Kayra模型
- 新增的text.novelai.net端点提供了更规范的文本生成文档
停止序列的技术突破
Erato模型基于Llama 3架构,其分词器(Tokenizer)对换行符和标点的处理方式发生了本质变化。技术团队发现:
- 传统停止序列如
\nCohee:无法正常触发 - Llama 3将标点与换行符合并编码为特殊token,如
.\n、!\n等都有独立token ID - 需要为每种可能的标点+换行组合预先生成对应的停止序列token数组
解决方案是构建多组停止序列组合,包括[198, 7489, 50153, 25]等9种常见变体,确保无论模型输出何种标点组合都能正确截断。
提示工程优化
Erato模型引入了新的特殊token<|reserved_special_token81|>作为提示前缀。技术团队通过测试发现:
- 该token需要放置在系统提示前
- 配合
[ Style: chat, complex, sensory, visceral ]等风格提示效果最佳 - 模型对角色切换的敏感性提高,需要更精确的停止序列控制
性能优化实践
用户反馈的"生成完成后延迟"问题源于模型继续生成被截断的内容。技术团队通过以下措施优化体验:
- 实现更精确的停止序列检测
- 优化前后端通信机制
- 增加生成过程中的实时监控
开发者建议
对于基于SillyTavern进行二次开发的团队,建议:
- 及时迁移到text.novelai.net端点
- 禁用CFG(Control Flow Guard)相关参数
- 测试不同风格提示对生成质量的影响
- 监控token使用效率,优化停止序列配置
本次集成展示了SillyTavern团队在大型语言模型适配方面的技术实力,为社区提供了高质量的Erato模型接入方案,同时也为后续其他模型的集成积累了宝贵经验。
登录后查看全文
热门项目推荐
相关项目推荐
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0239
GLM-5.2智谱开源 GLM-5.2,这是针对长文本任务的最新旗舰模型。相较于前代产品 GLM-5.1,它在长文本任务处理能力上实现了显著飞跃,并且首次在稳定的 100 万 token 上下文中提供这一能力。Jinja00
JoyAI-VL-Interaction-Preview京东开源首个开源、视觉驱动的实时交互模型——它能实时监控视频流,并自主决定何时发言、保持沉默或委托任务。Jinja00
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0168
kornia🐍 空间人工智能的几何计算机视觉库Python03
PaddleParallel Distributed Deep Learning: Machine Learning Framework from Industrial Practice (『飞桨』核心框架,深度学习&机器学习高性能单机、分布式训练和跨平台部署)C++02
项目优选
收起
暂无描述
Dockerfile
785
5.13 K
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
894
2.07 K
Ascend Extension for PyTorch
Python
764
984
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
715
1.44 K
deepin linux kernel
C
32
16
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
471
479
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
475
166
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.12 K
1.16 K
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
2.45 K
683
昇腾LLM分布式训练框架
Python
187
239