Files
wehub-resource-sync a203934033
Lint test / lint (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:34:58 +08:00

442 lines
16 KiB
Python

# Copyright (c) ModelScope Contributors. All rights reserved.
from transformers import AutoTokenizer, PretrainedConfig
from typing import Any, Dict
from swift.template import TemplateType
from swift.utils import Processor, get_logger, safe_snapshot_download
from ..constant import LLMModelType
from ..model_arch import ModelArch
from ..model_meta import Model, ModelGroup, ModelMeta
from ..register import ModelLoader, SentenceTransformersLoader, register_model
logger = get_logger()
class GrokLoader(ModelLoader):
def get_processor(self, model_dir: str, config: PretrainedConfig) -> Processor:
tokenizer_dir = safe_snapshot_download('AI-ModelScope/grok-1-tokenizer', download_model=False, check_local=True)
tokenizer = AutoTokenizer.from_pretrained(tokenizer_dir, trust_remote_code=True)
return tokenizer
register_model(
ModelMeta(
LLMModelType.grok, [
ModelGroup([
Model('colossalai/grok-1-pytorch', 'hpcai-tech/grok-1'),
]),
],
GrokLoader,
template=TemplateType.default,
architectures=['Grok1ModelForCausalLM'],
model_arch=ModelArch.llama))
class PolyLMLoader(ModelLoader):
def get_processor(self, model_dir: str, config: PretrainedConfig) -> Processor:
return AutoTokenizer.from_pretrained(model_dir, trust_remote_code=True, use_fast=False, legacy=True)
register_model(
ModelMeta(
LLMModelType.polylm,
[
ModelGroup(
[
# base
Model('damo/nlp_polylm_13b_text_generation', 'DAMO-NLP-MT/polylm-13b'),
], ),
],
PolyLMLoader,
template=TemplateType.default,
architectures=['GPT2LMHeadModel'],
model_arch=ModelArch.qwen))
class YuanLoader(ModelLoader):
def get_processor(self, model_dir: str, config: PretrainedConfig) -> Processor:
tokenizer = AutoTokenizer.from_pretrained(
model_dir, add_eos_token=False, add_bos_token=False, eos_token='<eod>', legacy=True)
addi_tokens = [
'<sep>', '<pad>', '<mask>', '<predict>', '<FIM_SUFFIX>', '<FIM_PREFIX>', '<FIM_MIDDLE>', '<commit_before>',
'<commit_msg>', '<commit_after>', '<jupyter_start>', '<jupyter_text>', '<jupyter_code>', '<jupyter_output>',
'<empty_output>'
]
tokenizer.add_tokens(addi_tokens, special_tokens=True)
return tokenizer
register_model(
ModelMeta(
LLMModelType.yuan2,
[
ModelGroup([
Model('IEITYuan/Yuan2.0-2B-hf', 'IEITYuan/Yuan2-2B-hf'),
Model('IEITYuan/Yuan2.0-51B-hf', 'IEITYuan/Yuan2-51B-hf'),
Model('IEITYuan/Yuan2.0-102B-hf', 'IEITYuan/Yuan2-102B-hf'),
Model('IEITYuan/Yuan2-2B-Janus-hf', 'IEITYuan/Yuan2-2B-Janus-hf'),
]),
ModelGroup([
Model('IEITYuan/Yuan2-M32-hf', 'IEITYuan/Yuan2-M32-hf'),
]),
],
YuanLoader,
template=TemplateType.yuan,
model_arch=ModelArch.llama,
architectures=['YuanForCausalLM'],
))
register_model(
ModelMeta(
LLMModelType.orion,
[
ModelGroup([
Model('OrionStarAI/Orion-14B-Chat', 'OrionStarAI/Orion-14B-Chat'),
Model('OrionStarAI/Orion-14B-Base', 'OrionStarAI/Orion-14B-Base'),
]),
],
template=TemplateType.orion,
model_arch=ModelArch.llama,
architectures=['OrionForCausalLM'],
))
register_model(
ModelMeta(
LLMModelType.dbrx, [
ModelGroup([
Model('AI-ModelScope/dbrx-base', 'databricks/dbrx-base'),
Model('AI-ModelScope/dbrx-instruct', 'databricks/dbrx-instruct'),
]),
],
template=TemplateType.dbrx,
model_arch=ModelArch.dbrx,
architectures=['DbrxForCausalLM'],
requires=['transformers>=4.36']))
register_model(
ModelMeta(
LLMModelType.bluelm,
[
ModelGroup([
Model('vivo-ai/BlueLM-7B-Chat-32K', 'vivo-ai/BlueLM-7B-Chat-32K'),
Model('vivo-ai/BlueLM-7B-Chat', 'vivo-ai/BlueLM-7B-Chat'),
Model('vivo-ai/BlueLM-7B-Base-32K', 'vivo-ai/BlueLM-7B-Base-32K'),
Model('vivo-ai/BlueLM-7B-Base', 'vivo-ai/BlueLM-7B-Base'),
]),
],
template=TemplateType.bluelm,
model_arch=ModelArch.llama,
architectures=['BlueLMForCausalLM'],
))
register_model(
ModelMeta(
LLMModelType.seggpt,
[
ModelGroup([
Model('damo/nlp_seqgpt-560m', 'DAMO-NLP/SeqGPT-560M'),
]),
],
template=TemplateType.default,
model_arch=None,
architectures=['BloomForCausalLM'],
))
register_model(
ModelMeta(
LLMModelType.xverse,
[
ModelGroup([
Model('xverse/XVERSE-7B-Chat', 'xverse/XVERSE-7B-Chat'),
Model('xverse/XVERSE-7B', 'xverse/XVERSE-7B'),
Model('xverse/XVERSE-13B', 'xverse/XVERSE-13B'),
Model('xverse/XVERSE-13B-Chat', 'xverse/XVERSE-13B-Chat'),
Model('xverse/XVERSE-65B', 'xverse/XVERSE-65B'),
Model('xverse/XVERSE-65B-2', 'xverse/XVERSE-65B-2'),
Model('xverse/XVERSE-65B-Chat', 'xverse/XVERSE-65B-Chat'),
Model('xverse/XVERSE-13B-256K', 'xverse/XVERSE-13B-256K', ms_revision='v1.0.0'),
]),
],
template=TemplateType.xverse,
model_arch=ModelArch.llama,
architectures=['XverseForCausalLM'],
))
register_model(
ModelMeta(
LLMModelType.xverse_moe,
[
ModelGroup([
Model('xverse/XVERSE-MoE-A4.2B', 'xverse/XVERSE-MoE-A4.2B'),
]),
],
template=TemplateType.xverse,
model_arch=ModelArch.llama,
architectures=['XverseForCausalLM'],
))
register_model(
ModelMeta(
LLMModelType.c4ai,
[
ModelGroup([
Model('AI-ModelScope/c4ai-command-r-v01', 'CohereForAI/c4ai-command-r-v01'),
Model('AI-ModelScope/c4ai-command-r-plus', 'CohereForAI/c4ai-command-r-plus'),
]),
],
template=TemplateType.c4ai,
model_arch=ModelArch.llama,
architectures=['CohereForCausalLM'],
requires=['transformers>=4.39'],
))
register_model(
ModelMeta(
LLMModelType.aya, [
ModelGroup([
Model('AI-ModelScope/aya-expanse-8b', 'CohereForAI/aya-expanse-8b'),
Model('AI-ModelScope/aya-expanse-32b', 'CohereForAI/aya-expanse-32b'),
]),
],
template=TemplateType.aya,
model_arch=ModelArch.llama,
architectures=['CohereForCausalLM'],
requires=['transformers>=4.44.0']))
register_model(
ModelMeta(
LLMModelType.ling,
[
ModelGroup([
Model('inclusionAI/Ling-lite', 'inclusionAI/Ling-lite'),
Model('inclusionAI/Ling-plus', 'inclusionAI/Ling-plus'),
Model('inclusionAI/Ling-lite-base', 'inclusionAI/Ling-lite-base'),
Model('inclusionAI/Ling-plus-base', 'inclusionAI/Ling-plus-base'),
]),
],
template=TemplateType.ling,
architectures=['BailingMoeForCausalLM'],
))
register_model(
ModelMeta(
LLMModelType.qwen2_gte, [
ModelGroup([
Model('iic/gte_Qwen2-1.5B-instruct', 'Alibaba-NLP/gte-Qwen2-1.5B-instruct'),
Model('iic/gte_Qwen2-7B-instruct', 'Alibaba-NLP/gte-Qwen2-7B-instruct'),
]),
],
SentenceTransformersLoader,
template=TemplateType.dummy,
architectures=['Qwen2ForCausalLM']))
register_model(
ModelMeta(
LLMModelType.mimo, [
ModelGroup([
Model('XiaomiMiMo/MiMo-7B-Base', 'XiaomiMiMo/MiMo-7B-Base'),
Model('XiaomiMiMo/MiMo-7B-SFT', 'XiaomiMiMo/MiMo-7B-SFT'),
Model('XiaomiMiMo/MiMo-7B-RL-Zero', 'XiaomiMiMo/MiMo-7B-RL-Zero'),
Model('XiaomiMiMo/MiMo-7B-RL', 'XiaomiMiMo/MiMo-7B-RL'),
], TemplateType.qwen),
ModelGroup([
Model('XiaomiMiMo/MiMo-7B-RL-0530', 'XiaomiMiMo/MiMo-7B-RL-0530'),
], TemplateType.mimo_rl),
],
model_arch=ModelArch.llama,
architectures=['MiMoForCausalLM'],
requires=['transformers>=4.37']))
register_model(
ModelMeta(
LLMModelType.dots1,
[
ModelGroup([
Model('rednote-hilab/dots.llm1.base', 'rednote-hilab/dots.llm1.base'),
Model('rednote-hilab/dots.llm1.inst', 'rednote-hilab/dots.llm1.inst'),
])
],
template=TemplateType.dots1,
architectures=['Dots1ForCausalLM'],
requires=['transformers>=4.53'],
))
register_model(
ModelMeta(
LLMModelType.hunyuan,
[ModelGroup([
Model('Tencent-Hunyuan/Hunyuan-A13B-Instruct', 'tencent/Hunyuan-A13B-Instruct'),
])],
template=TemplateType.hunyuan_moe,
architectures=['HunYuanMoEV1ForCausalLM'],
))
register_model(
ModelMeta(
LLMModelType.hunyuan_v1_dense,
[
ModelGroup([
Model('Tencent-Hunyuan/Hunyuan-0.5B-Instruct', 'tencent/Hunyuan-0.5B-Instruct'),
Model('Tencent-Hunyuan/Hunyuan-1.8B-Instruct', 'tencent/Hunyuan-1.8B-Instruct'),
Model('Tencent-Hunyuan/Hunyuan-4B-Instruct', 'tencent/Hunyuan-4B-Instruct'),
Model('Tencent-Hunyuan/Hunyuan-7B-Instruct', 'tencent/Hunyuan-7B-Instruct'),
# pretrain
Model('Tencent-Hunyuan/Hunyuan-0.5B-Pretrain', 'tencent/Hunyuan-0.5B-Pretrain'),
Model('Tencent-Hunyuan/Hunyuan-1.8B-Pretrain', 'tencent/Hunyuan-1.8B-Pretrain'),
Model('Tencent-Hunyuan/Hunyuan-4B-Pretrain', 'tencent/Hunyuan-4B-Pretrain'),
Model('Tencent-Hunyuan/Hunyuan-7B-Pretrain', 'tencent/Hunyuan-7B-Pretrain'),
# fp8
Model('Tencent-Hunyuan/Hunyuan-0.5B-Instruct-FP8', 'tencent/Hunyuan-0.5B-Instruct-FP8'),
Model('Tencent-Hunyuan/Hunyuan-1.8B-Instruct-FP8', 'tencent/Hunyuan-1.8B-Instruct-FP8'),
Model('Tencent-Hunyuan/Hunyuan-4B-Instruct-FP8', 'tencent/Hunyuan-4B-Instruct-FP8'),
Model('Tencent-Hunyuan/Hunyuan-7B-Instruct-FP8', 'tencent/Hunyuan-7B-Instruct-FP8'),
# awq
Model('Tencent-Hunyuan/Hunyuan-0.5B-Instruct-AWQ-Int4', 'tencent/Hunyuan-0.5B-Instruct-AWQ-Int4'),
Model('Tencent-Hunyuan/Hunyuan-1.8B-Instruct-AWQ-Int4', 'tencent/Hunyuan-1.8B-Instruct-AWQ-Int4'),
Model('Tencent-Hunyuan/Hunyuan-4B-Instruct-AWQ-Int4', 'tencent/Hunyuan-4B-Instruct-AWQ-Int4'),
Model('Tencent-Hunyuan/Hunyuan-7B-Instruct-AWQ-Int4', 'tencent/Hunyuan-7B-Instruct-AWQ-Int4'),
# gptq
Model('Tencent-Hunyuan/Hunyuan-0.5B-Instruct-GPTQ-Int4', 'tencent/Hunyuan-0.5B-Instruct-GPTQ-Int4'),
Model('Tencent-Hunyuan/Hunyuan-1.8B-Instruct-GPTQ-Int4', 'tencent/Hunyuan-1.8B-Instruct-GPTQ-Int4'),
Model('Tencent-Hunyuan/Hunyuan-4B-Instruct-GPTQ-Int4', 'tencent/Hunyuan-4B-Instruct-GPTQ-Int4'),
Model('Tencent-Hunyuan/Hunyuan-7B-Instruct-GPTQ-Int4', 'tencent/Hunyuan-7B-Instruct-GPTQ-Int4'),
])
],
template=TemplateType.hunyuan,
requires=['transformers>=4.55.0.dev0'],
architectures=['HunYuanDenseV1ForCausalLM'],
))
register_model(
ModelMeta(
LLMModelType.hy_v3,
[
ModelGroup([
Model('Tencent-Hunyuan/Hy3-preview', 'tencent/Hy3-preview'),
Model('Tencent-Hunyuan/Hy3-preview-Base', 'tencent/Hy3-preview-Base'),
],
template=TemplateType.hy_v3_preview),
ModelGroup([
Model('Tencent-Hunyuan/Hy3', 'tencent/Hy3'),
Model('Tencent-Hunyuan/Hy3-FP8', 'tencent/Hy3-FP8'),
],
template=TemplateType.hy_v3),
],
requires=['transformers>=5.6.0'],
architectures=['HYV3ForCausalLM'],
))
register_model(
ModelMeta(
LLMModelType.gpt_oss, [
ModelGroup([
Model('openai-mirror/gpt-oss-20b', 'openai/gpt-oss-20b'),
Model('openai-mirror/gpt-oss-120b', 'openai/gpt-oss-120b'),
])
],
template=TemplateType.gpt_oss,
ignore_patterns=['metal/', 'original/'],
architectures=['GptOssForCausalLM'],
requires=['transformers>=4.55']))
register_model(
ModelMeta(
LLMModelType.longchat,
[
ModelGroup([
Model('meituan-longcat/LongCat-Flash-Chat', 'meituan-longcat/LongCat-Flash-Chat'),
Model('meituan-longcat/LongCat-Flash-Chat-FP8', 'meituan-longcat/LongCat-Flash-Chat-FP8'),
])
],
template=TemplateType.longchat,
architectures=['LongcatFlashForCausalLM'],
requires=['transformers>=4.54,<4.56'],
))
register_model(
ModelMeta(
LLMModelType.bailing_moe,
[
ModelGroup([
Model('inclusionAI/Ling-mini-2.0', 'inclusionAI/Ling-mini-2.0'),
Model('inclusionAI/Ling-mini-base-2.0', 'inclusionAI/Ling-mini-base-2.0'),
Model('inclusionAI/Ling-1T', 'inclusionAI/Ling-1T'),
],
template=TemplateType.ling2),
ModelGroup([
Model('inclusionAI/Ring-mini-2.0', 'inclusionAI/Ring-mini-2.0'),
], template=TemplateType.ring2)
],
architectures=['BailingMoeV2ForCausalLM'],
))
register_model(
ModelMeta(
LLMModelType.bailing_hybrid,
[
ModelGroup([
Model('inclusionAI/Ling-2.5-1T', 'inclusionAI/Ling-2.5-1T'),
Model('inclusionAI/Ling-2.6-1T', 'inclusionAI/Ling-2.6-1T'),
Model('inclusionAI/Ling-2.6-flash', 'inclusionAI/Ling-2.6-flash'),
],
template=TemplateType.ling2),
ModelGroup([
Model('inclusionAI/Ring-2.5-1T', 'inclusionAI/Ring-2.5-1T'),
Model('inclusionAI/Ring-2.6-1T', 'inclusionAI/Ring-2.6-1T'),
],
template=TemplateType.ring2_5),
],
architectures=['BailingMoeV2_5ForCausalLM'],
))
register_model(
ModelMeta(
LLMModelType.iquestcoder,
[
ModelGroup([
Model('IQuestLab/IQuest-Coder-V1-40B-Base-Stage1', 'IQuestLab/IQuest-Coder-V1-40B-Base-Stage1'),
Model('IQuestLab/IQuest-Coder-V1-40B-Base', 'IQuestLab/IQuest-Coder-V1-40B-Base'),
Model('IQuestLab/IQuest-Coder-V1-40B-Instruct', 'IQuestLab/IQuest-Coder-V1-40B-Instruct'),
])
],
template=TemplateType.iquestcoder,
requires=['transformers==4.52.4'],
architectures=['IQuestCoderForCausalLM'],
))
register_model(
ModelMeta(
LLMModelType.youtu_llm,
[
ModelGroup([
Model('Tencent-YouTu-Research/Youtu-LLM-2B', 'tencent/Youtu-LLM-2B'),
Model('Tencent-YouTu-Research/Youtu-LLM-2B-Base', 'tencent/Youtu-LLM-2B-Base'),
])
],
template=TemplateType.youtu_llm,
architectures=['YoutuForCausalLM'],
requires=['transformers>=4.56'],
))
register_model(
ModelMeta(
LLMModelType.olmoe,
[
ModelGroup([
Model('allenai/OLMoE-1B-7B-0125', 'allenai/OLMoE-1B-7B-0125'),
Model('allenai/OLMoE-1B-7B-0125-Instruct', 'allenai/OLMoE-1B-7B-0125-Instruct'),
],
template=TemplateType.olmoe),
ModelGroup([
Model('allenai/OLMoE-1B-7B-0924', 'allenai/OLMoE-1B-7B-0924'),
Model('allenai/OLMoE-1B-7B-0924-Instruct', 'allenai/OLMoE-1B-7B-0924-Instruct'),
Model('allenai/OLMoE-1B-7B-0924-SFT', 'allenai/OLMoE-1B-7B-0924-SFT'),
],
template=TemplateType.olmoe_0924)
],
architectures=['OlmoeForCausalLM'],
))