사용자 'Drummer'가 검열 해제(Uncensored)와 롤플레잉에 특화된 310억 파라미터 규모의 오픈소스 대규모 언어 모델(LLM)인 '스카이폴 31B v4.2'를 공유했습니다. 해당 모델의 토크나이저 및 채팅 템플릿 코드는 AI가 답변을 생성하기 전 내부적인 사고 과정을 거치도록 유도하는 '생각의 사슬(Chain of Thought)' 기법을 적용하고 있으며, 마크다운과 수식(LaTeX) 출력을 지원하도록 설계되었습니다.
번역된 본문
, "eos_token": "", "pad_token": "", "unk_token": "", "use_default_system_prompt": false},
"chat_template_jinja": "{%- set default_system_message = '먼저 답변에 도달할 때까지 생각 과정(내적 독백)의 초안을 작성하세요. 응답은 마크다운 형식으로 지정하고, 수학 공식에는 LaTeX를 사용하세요. 생각 과정과 최종 답변 모두 입력과 동일한 언어로 작성하세요.\n\n생각 과정은 다음 템플릿을 따라야 합니다: [THINK]자신의 생각이나 초안을 작성합니다. 연습장에 문제를 푸는 것처럼 자유롭고 길게 작성하면서 확신이 생기면 답변을 생성하세요. 입력과 동일한 언어를 사용하세요.[/THINK] 여기에서는 독립적인 최종 답변을 제공하세요.' %}\n \n{{- bos_token }}\n \n{#- 시스템 메시지가 존재하는 경우 추출 -#}\n{%- if messages[0]['role'] == 'system' %}\n {%- if messages[0]['content'] is string %}\n {%- set raw_system_message = messages[0]['content'] %}\n {%- else %}\n {%- set raw_system_message = messages[0]['content'][0]['text'] %}\n {%- endif %}\n {%- set loop_messages = messages[1:] %}\n{%- else %}\n {%- set raw_system_message = "" %}\n {%- set loop_messages = messages %}\n{%- endif %}\n \n{#- "/think"라는 정확한 문구를 검색하여 THINK 플래그 감지 -#}\n{%- if "/think" in raw_system_message %}\n {%- set THINK = True %}\n{%- else %}\n {%- set THINK = False %}\n{%- endif %}\n \n{#- THINK 플래그에 따라 로직 적용 -#}\n{%- if THINK %}\n {%- if raw_system_message|length > 0 %}\n {%- set system_message = default_system_message + "\n\n" + raw_system_message %}\n {%- else %}\n {%- set system_message = default_system_message %}\n {%- endif %}\n {{- '[SYSTEM_PROMPT]' + system_message + '[/SYSTEM_PROMPT]' }}\n{%- else %}\n {%- if raw_system_message|length > 0 %}\n {{- '[SYSTEM_PROMPT]' + raw_system_message + '[/SYSTEM_PROMPT]' }}\n {%- endif %}\n{%- endif %}\n \n \n{#- 도구 설명은 마지막 사용자 메시지에만 추가됨. Unsloth에 의해 수정됨 -#}\n{%- set tools_description = "" %}\n{%- set has_tools = false %}\n \n{%- if tools is defined and tools is not none and tools|length > 0 %}\n {%- set has_tools = true %}\n {%- set tools_description = "[AVAILABLE_TOOLS]" + (tools | tojson) + "[/AVAILABLE_TOOLS]" %}\n {{- tools_description }}\n{%- endif %}\n \n{%- for message in loop_messages %}\n {%- if message['role'] == 'user' %}\n \n {%- if message['content'] is string %}\n {{- '[INST]' + message['content'] + '[/INST]' }}\n {%- else %}\n {{- '[INST]' }}\n {%- for block in message['content'] %}\n {%- if block['type'] == 'text' %}\n {%- if block['text'] is defined %}\n {{- block['text'] }}\n {%- else %}\n {{- block['content'] }}\n {%- endif %}\n {%- elif block['type'] in ['image', 'image_url'] %}\n {{- '[IMG]' }}\n {%- else %}\n {{- raise_exception('메시지 콘텐츠에서는 텍스트와 이미지 블록만 지원됩니다!') }}\n {%- endif %}\n {%- endfor %}\n {{- '[/INST]' }}\n {%- endif %}\n \n {%- elif message['role'] == 'system' %}\n {%- if message['content'] is string %}\n {{- '[SYSTEM_PROMPT]' + message['content'] + '[/SYSTEM_PROMPT]' }}\n {%- else %}\n {{- '[SYSTEM_PROMPT]' + message['content'][0]['text'] + '[/SYSTEM_PROMPT]' }}\n {%- endif %}\n \n {%- elif message['role'] == 'assistant' %}\n {%- if message['content'] is string %}\n {{- message['content'] }}\n {%- elif message['content'] is iterable %}\n {{- message['content'][0]['text'] }}\n {%- endif %}\n \n {%- if message['tool_calls'] is defined and message['tool_calls'] is not none %}\n {%- for tool in message['tool_calls'] %}\n {%- set arguments = tool['function']['arguments'] %}\n {%- if arguments is not string %}\n {%- set arguments = arguments|tojson %}\n {%- endif %}\n {{- "[TOOL_CALLS]" + tool['function']['name'] + "[ARGS]" + arguments }}\n {%- endfor %}\n {%- endif %}\n \n {{- eos_token }}\n \n {%- elif message["role"] == "tool_results" or message["role"] == "tool" %}\n {%- if message.content is defined and message.content.content is defined %}\n {%- set content = message.content.content %}\n {
","eos_token":"</s>","pad_token":"<pad>","unk_token":"<unk>","use_default_system_prompt":false},"chat_template_jinja":"{%- set default_system_message = 'First draft your thinking process (inner monologue) until you arrive at a response. Format your response using Markdown, and use LaTeX for any mathematical equations. Write both your thoughts and the response in the same language as the input.\\n\\nYour thinking process must follow the template below:[THINK]Your thoughts or/and draft, like working through an exercise on scratch paper. Be as casual and as long as you want until you are confident to generate the response. Use the same language as the input.[/THINK]Here, provide a self-contained response.' %}\n \n{{- bos_token }}\n \n{#- Extract system message if present -#}\n{%- if messages[0]['role'] == 'system' %}\n {%- if messages[0]['content'] is string %}\n {%- set raw_system_message = messages[0]['content'] %}\n {%- else %}\n {%- set raw_system_message = messages[0]['content'][0]['text'] %}\n {%- endif %}\n {%- set loop_messages = messages[1:] %}\n{%- else %}\n {%- set raw_system_message = \"\" %}\n {%- set loop_messages = messages %}\n{%- endif %}\n \n{#- Detect THINK flag by searching for exact phrase \"/think\" -#}\n{%- if \"/think\" in raw_system_message %}\n {%- set THINK = True %}\n{%- else %}\n {%- set THINK = False %}\n{%- endif %}\n \n{#- Apply logic depending on THINK flag -#}\n{%- if THINK %}\n {%- if raw_system_message|length > 0 %}\n {%- set system_message = default_system_message + \"\\n\\n\" + raw_system_message %}\n {%- else %}\n {%- set system_message = default_system_message %}\n {%- endif %}\n {{- '[SYSTEM_PROMPT]' + system_message + '[/SYSTEM_PROMPT]' }}\n{%- else %}\n {%- if raw_system_message|length > 0 %}\n {{- '[SYSTEM_PROMPT]' + raw_system_message + '[/SYSTEM_PROMPT]' }}\n {%- endif %}\n{%- endif %}\n \n \n{#- Tool description appended ONLY to last user message. Edits made by Unsloth #}\n{%- set tools_description = \"\" %}\n{%- set has_tools = false %}\n \n{%- if tools is defined and tools is not none and tools|length > 0 %}\n {%- set has_tools = true %}\n {%- set tools_description = \"[AVAILABLE_TOOLS]\" + (tools | tojson) + \"[/AVAILABLE_TOOLS]\" %}\n {{- tools_description }}\n{%- endif %}\n \n{%- for message in loop_messages %}\n {%- if message['role'] == 'user' %}\n \n {%- if message['content'] is string %}\n {{- '[INST]' + message['content'] + '[/INST]' }}\n {%- else %}\n {{- '[INST]' }}\n {%- for block in message['content'] %}\n {%- if block['type'] == 'text' %}\n {%- if block['text'] is defined %}\n {{- block['text'] }}\n {%- else %}\n {{- block['content'] }}\n {%- endif %}\n {%- elif block['type'] in ['image', 'image_url'] %}\n {{- '[IMG]' }}\n {%- else %}\n {{- raise_exception('Only text and image blocks are supported in message content!') }}\n {%- endif %}\n {%- endfor %}\n {{- '[/INST]' }}\n {%- endif %}\n \n {%- elif message['role'] == 'system' %}\n {%- if message['content'] is string %}\n {{- '[SYSTEM_PROMPT]' + message['content'] + '[/SYSTEM_PROMPT]' }}\n {%- else %}\n {{- '[SYSTEM_PROMPT]' + message['content'][0]['text'] + '[/SYSTEM_PROMPT]' }}\n {%- endif %}\n \n {%- elif message['role'] == 'assistant' %}\n {%- if message['content'] is string %}\n {{- message['content'] }}\n {%- elif message['content'] is iterable %}\n {{- message['content'][0]['text'] }}\n {%- endif %}\n \n {%- if message['tool_calls'] is defined and message['tool_calls'] is not none %}\n {%- for tool in message['tool_calls'] %}\n {%- set arguments = tool['function']['arguments'] %}\n {%- if arguments is not string %}\n {%- set arguments = arguments|tojson %}\n {%- endif %}\n {{- \"[TOOL_CALLS]\" + tool['function']['name'] + \"[ARGS]\" + arguments }}\n {%- endfor %}\n {%- endif %}\n \n {{- eos_token }}\n \n {%- elif message[\"role\"] == \"tool_results\" or message[\"role\"] == \"tool\" %}\n {%- if message.content is defined and message.content.content is defined %}\n {%- set content = message.content.content %}\n {%- else %}\n {%- set content = message.content %}\n {%- endif %}\n {{- \"[TOOL_RESULTS]\" + content|string + \"[/TOOL_RESULTS]\" }}\n \n {%- else %}\n {{- raise_exception('Only user, system, assistant and tool roles are supported!') }}\n {%- endif %}\n{%- endfor %}\n \n{#- Licensed under the Apache License, Version 2.0 (the \\\"License\\\") #}\n"},"createdAt":"2026-02-13T06:15:09.000Z","discussionsDisabled":false,"discussionsSorting":"recently-created","downloads":1116,"downloadsAllTime":1116,"id":"TheDrummer/Skyfall-31B-v4.2","isLikedByUser":false,"availableInferenceProviders":[],"showHuggingChatEntry":false,"inference":"","lastModified":"2026-04-03T20:52:19.000Z","likes":21,"librariesOther":[],"trackDownloads":true,"model-index":null,"private":false,"repoType":"model","gated":false,"tags":["safetensors","mistral","base_model:mistralai/Magistral-Small-2509","base_model:finetune:mistralai/Magistral-Small-2509","region:us"],"tag_objs":[{"id":"safetensors","label":"Safetensors","type":"library"},{"id":"mistral","label":"mistral","type":"other","clickable":true},{"id":"base_model:mistralai/Magistral-Small-2509","label":"base_model:mistralai/Magistral-Small-2509","type":"other","clickable":true},{"id":"base_model:finetune:mistralai/Magistral-Small-2509","label":"base_model:finetune:mistralai/Magistral-Small-2509","type":"other","clickable":true},{"type":"region","label":"🇺🇸 Region: US","id":"region:us"}],"safetensors":{"parameters":{"BF16":31352980480},"total":558080,"sharded":true,"totalFileSize":62706058992},"hasBlockedOids":false,"region":"us","isQuantized":false},"discussionsStats":{"closed":0,"open":0,"total":0},"query":{},"inferenceContextData":{"billableEntities":[],"entityName2Providers":{}},"hasQuantizations":true}"> Drummer is open for new opportunities (I'm a Software Engineer). Contact me through any of these channels: https://linktr.ee/thelocaldrummer Thank you to everyone who subscribed through Patreon . Your support helps me chug along in this brave new world. FAQ for those out-of-the-loop 🐶 Who is Drummer? Hi! I'm Drummer. I'm a Software Engineer with experience in JavaScript, Golang, Python, and generally engineering the crap out of things. Why I'm in the AI space: Exploration: Everyone is trying to figure out how AI works and what it's capable of. I am too - just not in creating the smartest, safest model at all costs. Upskill: The world is headed towards AI. It is here to stay. This has been my way of brushing up in this new form of computing challenge. Value: I yearn to create value. I feel satisfaction and fulfillment in providing something meaningful for others. Fun: It's just fun using and making models. It's also fun coming up with theories and realizing them in practice (training AI). I started my tuning venture back in mid-2024 when I wanted to improve its literary capabilities. I've come a long way since then and I have branched out and specialized. Foundational models today are optimized for non-creative uses, and I believe there is a place for AI in creativity and entertainment. I am here to take the road less traveled by . ❓ What are my models like? Bottomline: My models are usually geared towards creativity, usability, and entertainment! While intelligence, correctness, and problem solving are not my priority, they are still one of many qualities I want in my models. The primary goal is to enhance the experience for users looking to use models for creative uses, and other use cases which require no alignment. In an effort to make it clear to myself and to others what I'm aiming for, I've identified certain qualities that my users often want: Creativity Writing: Does it string together words and sentences in a pleasant & effective way? Does it feel like a writer? Dynamism: How good is the AI at being compelling and intriguing in its storytelling? Imagination: Can the AI navigate through a plethora of possibilities? Can it skirt incoherence and rise up to absolute coherence at the end of it? (Dis)al