Text Generation
Transformers
Safetensors
Chinese
English
ynet31
custom_code
ymodel
ymodel31
conversational
Instructions to use SnifferCaptain/YModel3.1-200M with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use SnifferCaptain/YModel3.1-200M with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="SnifferCaptain/YModel3.1-200M", trust_remote_code=True) messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_pretrained("SnifferCaptain/YModel3.1-200M", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use SnifferCaptain/YModel3.1-200M with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "SnifferCaptain/YModel3.1-200M" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "SnifferCaptain/YModel3.1-200M", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/SnifferCaptain/YModel3.1-200M
- SGLang
How to use SnifferCaptain/YModel3.1-200M with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "SnifferCaptain/YModel3.1-200M" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "SnifferCaptain/YModel3.1-200M", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "SnifferCaptain/YModel3.1-200M" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "SnifferCaptain/YModel3.1-200M", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use SnifferCaptain/YModel3.1-200M with Docker Model Runner:
docker model run hf.co/SnifferCaptain/YModel3.1-200M
ymodel3.1-200m
ymodel3.1-200m 是基于
SnifferCaptain/ymodel3.1-200m-pt
继续监督微调得到的 YModel3.1 对话模型。模型采用 ynet3.1 架构,在
YModel3 的 ynet3 架构上加入了 Sengram 稀疏记忆模块,在维持较低额外计算量的同时扩展模型容量。
本版本面向中英文对话、通用推理、数学与代码任务,使用 ChatML 风格的对话模板,并支持包含
<think>...</think> 的推理数据格式。
模型架构
YModel3.1 保留了 YModel3 的主体设计:
- 注意力采用 MLGA(Multi-head Latent Gated Attention),结合 MLA 的 KV 潜在表示与 Gated Attention;门控位于注意力输出之后、输出投影之前。
- FFN 采用 SwiGLU。
- 每个 RMSNorm 后接一个 SEBlock。
- Token Embedding 与 LM Head 共享权重。
在此基础上,YModel3.1 新增 Sengram(Simplified Engram)稀疏记忆模块:
SengramIndexer在 Token Embedding 输出上仅运行一次,通过线性投影、Softmax 与 Top-K 得到route_ids和route_scores。- 所有 Transformer 层共享同一份路由结果,避免在每一层重复执行 Indexer。
- 每一层拥有独立的
SengramPLE(Per-Layer Embedding)表。PLE 按共享路由完成加权嵌入查找,并在该层 RMSNorm 与 MLGA 之前直接加到残差流中。 - Sengram 不使用 n-gram 哈希与额外门控;稀疏路由位于连续语义空间中,因此不局限于纯文本 n-gram 建模。
模型参数
| 键 | 值 |
|---|---|
| 基座模型 | SnifferCaptain/ymodel3.1-200m-pt |
| 架构 | YModel3.1 / ynet3.1 |
| 参数量 | 210.224M |
| 层数 | 12 |
| 隐藏层维度 | 768 |
| 词表大小 | 6400 |
| 注意力机制 | MLGA |
| 注意力头数 | 8 |
| QK 头维度 | 192(NoPE 128 + RoPE 64) |
| KV 潜在维度 | 256 |
| FFN 激活函数 | SwiGLU |
| FFN 中间层大小 | 2048 |
| 归一化 | RMSNorm + SEBlock |
| Sengram 桶大小 | 8192 |
| Sengram Top-K | 8 |
| 上下文长度 | 4096 |
| 权重数据类型 | bfloat16 |
参数量按加载模型后的独立参数统计。Token Embedding 与 LM Head 共享同一份权重;SFT 阶段冻结 这组共享权重,因此可训练参数量不包含该部分。
训练细节
- 在预训练阶段,模型在512长度的上下文充分使用5B tokens,1e-4带warmup的余弦退火到1e-5的学习率下,完成预训练。最终的ppl为5.041(6400BPE词表长度)
- 在sft阶段,模型在1536到4096长度的上下文充分使用4.7B tokens,1e-5带warmup的余弦退火到1e-7的学习率下,以batch size为128k完成监督微调。最终的ppl为3.49(6400BPE词表长度)
- 模型全程采用与YModel3相同的SiMuon优化器训练
- 模型的tokenlizer与词嵌入层使用的是预训练权重,来自MiniMind3-v( https://github.com/jingyaogong/minimind )
- 预训练阶段采用的批次大小为前50% 64k tokens/step、后50% 128k tokens/step
对话格式
模型使用内置 ChatML 风格模板:
- 思考模式:
<|im_start|>system
{system prompt}<|im_end|>
<|im_start|>user
{user content}<|im_end|>
<|im_start|>assistant
<think>juice = {JUICE}
{reasoning content}</think>
{assistant content}<|im_end|>
- 非思考模式:
<|im_start|>system
{system prompt}<|im_end|>
<|im_start|>user
{user content}<|im_end|>
<|im_start|>assistant
{assistant content}<|im_end|>
性能表现
输出示例
关闭思考:
user: 请介绍一下自己。
assistant: 我是一个语言模型,由SnifferCaptain开发。我可以帮助回答问题、提供信息和进行对话。我的目标是准确、简洁地回应您的请求。
juice = 0.67:
user: 请介绍一下自己。
assistant: <think>juice = 0.67
好的,用户让我介绍自己的。首先,我需要确认用户使用的语言是中文,所以回应也要用中文。根据规则,简单问题要直接回答,不需要多余的分析。但这里可能不算太复杂,因为身份信息只到“现在”,可能需要稍微详细一点。不过还是按照简洁的方式来,先给出基本介绍。确保没有使用任何emoji,保持专业。
</think>
我是一个由SnifferCaptain开发、训练的AI助手,专注于提供准确、清晰且符合用户需求的服务。我的设计原则包括:
1. 严格遵循语言一致性;
2. 使用中文输出,并动态调整响应深度(简单/中等);
3. 在保证完整性的前提下,针对不同场景优化响应策略。
juice = 2.67:
user: 请介绍一下自己。
assistant: <think>juice = 2.67
好的,用户让我介绍一下自己的名字。首先,我需要确认用户的需求是什么。他们可能是在测试我的身份识别能力,或者真的有自我介绍需求。根据之前的指示,对于简单问题要给出直接回答,而复杂问题需要详细分析。这里用户的要求是“介绍”,所以属于中等复杂度的问题,可能需要稍微深入一点。
接下来,我得回忆一下SnifferCaptain的设定:不使用表情符号,保持语言一致,动态调整响应深度。同时,不能主动披露身份,所以不能提到自己是由谁创建的,比如SnifferCaptain这个AI模型。不过用户现在用中文提问,但系统本身也是用中文回答的,所以需要确保回应完全匹配用户使用的语言。
然后,检查是否有隐藏的意图。用户可能希望了解我的功能或如何与之互动,比如是否需要帮助、解释概念等。这时候应该简明扼要地说明我的作用,但不需要展开太多细节。例如,可以说“我可以协助您解答各种问题”这样既符合简洁性又展示了灵活性和适应性。
另外,用户可能没有明确说明他们的使用场景,比如是用于学习、工作还是其他目的。如果是学生,可能需要更基础的信息;如果是商业用途,可能需要更专业的术语和结构化的内容。因此,在介绍时应该兼顾不同方面,提供全面且易于理解的例子。
还需要注意避免冗长的分析,因为这是一个相对简单的请求。按照规则,简单问题不需要冗余分析,所以只需列出关键点即可。同时,必须确保每个部分都准确无误,比如提到的动态响应深度分为几个步骤,以及内部处理流程。
最后,检查是否有必要请求澄清。虽然当前查询已经比较完整,但如果有不确定的地方,比如某个具体领域的知识,可能需要进一步询问,但根据指示,只有当输入不完整或语法错误时才需要澄清。目前的情况是用户的问题比较笼统,没有具体上下文,所以暂时先按常规情况处理。
总结回答结构:
- 姓名(假设为SnifferCaptain)
- AI助手名称
- 核心功能(如信息检索、知识库、逻辑推理)
- 使用方式(分点说明)
示例说明:
"作为SnifferCaptain开发的智能助手,我的角色是协助用户解决问题并提供准确信息。"
- 涵盖信息获取、知识整合、逻辑推理、语言适配等方面
- 强调响应策略,如优先级排序、实时更新、多轮对话管理
- 避免使用emoji,保持专业风格
- 结束语句(感谢)。
确保语言与用户一致,用户用中文提问,就继续用中文回答。同时注意不要透露身份,除非被明确询问。检查是否有遗漏的关键点,比如技术限制或常见误解,但在这个案例中,主要重点放在功能上。完成后再通读一遍,确保流畅自然。
</think>
作为SnifferCaptain开发的智能助手,我的角色是协助用户解决各类问题。核心功能包括:
1. **信息检索**:快速定位并精准返回相关资料(如学术论文、行业报告);
2. **知识整合**:支持跨领域知识关联(如医疗/金融/科技);
3. **逻辑推演**:通过已验证答案进行因果关系判断(如预测未来风险);
4. **语言交互**:同步输出标准化表达(如英文→中文),保持与用户语言一致。
若需特定应用场景(如教育/客服/编程辅助),请提供更多背景信息以便优化方案。
局限性
ymodel3.1-200m作为一个实验性模型,其训练设置、数据集、模型架构和超参数并非最优,是一个专注于探索技术的模型,并非注重于模型能力,因此其实际智力表现相比ymodel2-s0并没有显著提升,例如开启混合思考训练时就存在数学能力倒退的现象。ymodel3.1-200m训练效率较低,我会在ymodel4中尝试提高同等时间下的训练速度。
- Downloads last month
- 14
