sparkleman commited on
Commit
b76f7cc
Β·
1 Parent(s): d055fef

UPDATE: merge modelscope

Browse files
.gitattributes CHANGED
@@ -1,35 +1,47 @@
1
  *.7z filter=lfs diff=lfs merge=lfs -text
2
  *.arrow filter=lfs diff=lfs merge=lfs -text
3
  *.bin filter=lfs diff=lfs merge=lfs -text
 
4
  *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
  *.ftz filter=lfs diff=lfs merge=lfs -text
7
  *.gz filter=lfs diff=lfs merge=lfs -text
8
  *.h5 filter=lfs diff=lfs merge=lfs -text
9
  *.joblib filter=lfs diff=lfs merge=lfs -text
10
  *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
  *.model filter=lfs diff=lfs merge=lfs -text
13
  *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
  *.onnx filter=lfs diff=lfs merge=lfs -text
17
  *.ot filter=lfs diff=lfs merge=lfs -text
18
  *.parquet filter=lfs diff=lfs merge=lfs -text
19
  *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
  *.pt filter=lfs diff=lfs merge=lfs -text
23
  *.pth filter=lfs diff=lfs merge=lfs -text
24
  *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
  saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
  *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
  *.tflite filter=lfs diff=lfs merge=lfs -text
30
  *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
  *.xz filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
1
  *.7z filter=lfs diff=lfs merge=lfs -text
2
  *.arrow filter=lfs diff=lfs merge=lfs -text
3
  *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bin.* filter=lfs diff=lfs merge=lfs -text
5
  *.bz2 filter=lfs diff=lfs merge=lfs -text
 
6
  *.ftz filter=lfs diff=lfs merge=lfs -text
7
  *.gz filter=lfs diff=lfs merge=lfs -text
8
  *.h5 filter=lfs diff=lfs merge=lfs -text
9
  *.joblib filter=lfs diff=lfs merge=lfs -text
10
  *.lfs.* filter=lfs diff=lfs merge=lfs -text
 
11
  *.model filter=lfs diff=lfs merge=lfs -text
12
  *.msgpack filter=lfs diff=lfs merge=lfs -text
 
 
13
  *.onnx filter=lfs diff=lfs merge=lfs -text
14
  *.ot filter=lfs diff=lfs merge=lfs -text
15
  *.parquet filter=lfs diff=lfs merge=lfs -text
16
  *.pb filter=lfs diff=lfs merge=lfs -text
 
 
17
  *.pt filter=lfs diff=lfs merge=lfs -text
18
  *.pth filter=lfs diff=lfs merge=lfs -text
19
  *.rar filter=lfs diff=lfs merge=lfs -text
 
20
  saved_model/**/* filter=lfs diff=lfs merge=lfs -text
21
  *.tar.* filter=lfs diff=lfs merge=lfs -text
 
22
  *.tflite filter=lfs diff=lfs merge=lfs -text
23
  *.tgz filter=lfs diff=lfs merge=lfs -text
 
24
  *.xz filter=lfs diff=lfs merge=lfs -text
25
  *.zip filter=lfs diff=lfs merge=lfs -text
26
+ *.zstandard filter=lfs diff=lfs merge=lfs -text
27
+ *.tfevents* filter=lfs diff=lfs merge=lfs -text
28
+ *.db* filter=lfs diff=lfs merge=lfs -text
29
+ *.ark* filter=lfs diff=lfs merge=lfs -text
30
+ **/*ckpt*data* filter=lfs diff=lfs merge=lfs -text
31
+ **/*ckpt*.meta filter=lfs diff=lfs merge=lfs -text
32
+ **/*ckpt*.index filter=lfs diff=lfs merge=lfs -text
33
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
34
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
35
+ *.gguf* filter=lfs diff=lfs merge=lfs -text
36
+ *.ggml filter=lfs diff=lfs merge=lfs -text
37
+ *.llamafile* filter=lfs diff=lfs merge=lfs -text
38
+ *.pt2 filter=lfs diff=lfs merge=lfs -text
39
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
40
+ *.npy filter=lfs diff=lfs merge=lfs -text
41
+ *.npz filter=lfs diff=lfs merge=lfs -text
42
+ *.pickle filter=lfs diff=lfs merge=lfs -text
43
+ *.pkl filter=lfs diff=lfs merge=lfs -text
44
+ *.tar filter=lfs diff=lfs merge=lfs -text
45
+ *.wasm filter=lfs diff=lfs merge=lfs -text
46
  *.zst filter=lfs diff=lfs merge=lfs -text
47
  *tfevents* filter=lfs diff=lfs merge=lfs -text
Dockerfile CHANGED
@@ -17,7 +17,11 @@ RUN ["cargo", "install", "wasm-pack"]
17
  WORKDIR /app
18
  ENV PATH=/root/.cargo/bin:$PATH
19
  RUN pnpm install
20
- RUN pnpm run build --mode target-rwkv-hf-space
 
 
 
 
21
 
22
  FROM nvidia/cuda:12.4.0-devel-ubuntu22.04 AS Backend
23
 
@@ -46,8 +50,7 @@ ENV HOME=/home/user \
46
  PATH=/usr/local/cuda/bin:/home/user/.local/bin:$PATH \
47
  LD_LIBRARY_PATH="/usr/local/cuda/lib64:${LD_LIBRARY_PATH}" \
48
  CXX=/usr/bin/g++ \
49
- TORCH_CUDA_ARCH_LIST="7.5" \
50
- HF_HOME="/data/.huggingface"
51
  WORKDIR $HOME/app
52
 
53
  COPY --chown=user . $HOME/app
@@ -56,4 +59,4 @@ COPY --chown=user --from=FrontendBuilder /app/dist $HOME/app/dist-frontend
56
 
57
  RUN uv sync --frozen --extra cu124
58
 
59
- CMD ["uv","run","app.py","--config_file","./config.production.yaml"]
 
17
  WORKDIR /app
18
  ENV PATH=/root/.cargo/bin:$PATH
19
  RUN pnpm install
20
+ RUN if [ "$MODELSCOPE_ENVIRONMENT" = "studio" ]; then \
21
+ pnpm run build --mode target-rwkv-modelscope-space; \
22
+ else \
23
+ pnpm run build --mode target-rwkv-hf-space; \
24
+ fi
25
 
26
  FROM nvidia/cuda:12.4.0-devel-ubuntu22.04 AS Backend
27
 
 
50
  PATH=/usr/local/cuda/bin:/home/user/.local/bin:$PATH \
51
  LD_LIBRARY_PATH="/usr/local/cuda/lib64:${LD_LIBRARY_PATH}" \
52
  CXX=/usr/bin/g++ \
53
+ TORCH_CUDA_ARCH_LIST="7.5"
 
54
  WORKDIR $HOME/app
55
 
56
  COPY --chown=user . $HOME/app
 
59
 
60
  RUN uv sync --frozen --extra cu124
61
 
62
+ CMD ["sh", "-c", "if [ \"$MODELSCOPE_ENVIRONMENT\" = \"studio\" ]; then CONFIG_FILE=\"./config.production-modelscope.yaml\"; else CONFIG_FILE=\"./config.production.yaml\"; fi; uv run app.py --config_file \"$CONFIG_FILE\""]
app.py CHANGED
@@ -1,3 +1,10 @@
 
 
 
 
 
 
 
1
  from config import CONFIG, ModelConfig
2
  from utils import (
3
  cleanMessages,
@@ -6,7 +13,7 @@ from utils import (
6
  format_bytes,
7
  )
8
 
9
- import os, copy, types, gc, sys, re, time, collections, asyncio
10
  from huggingface_hub import hf_hub_download
11
  from loguru import logger
12
  from rich import print
 
1
+ import os
2
+
3
+ if os.environ.get("MODELSCOPE_ENVIRONMENT") == "studio":
4
+ from modelscope import patch_hub
5
+
6
+ patch_hub()
7
+
8
  from config import CONFIG, ModelConfig
9
  from utils import (
10
  cleanMessages,
 
13
  format_bytes,
14
  )
15
 
16
+ import copy, types, gc, sys, re, time, collections, asyncio
17
  from huggingface_hub import hf_hub_download
18
  from loguru import logger
19
  from rich import print
config.production-modelscope.yaml ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ HOST: "0.0.0.0"
2
+ PORT: 7860
3
+ STRATEGY: "cuda fp16"
4
+ RWKV_CUDA_ON: True
5
+ CHUNK_LEN: 256
6
+ MODELS:
7
+ - SERVICE_NAME: "rwkv7-g1-0.1b-20250307-ctx4096"
8
+ DOWNLOAD_MODEL_FILE_NAME: "rwkv7-g1-0.1b-20250307-ctx4096.pth"
9
+ DOWNLOAD_MODEL_REPO_ID: "RWKV/rwkv7-g1"
10
+ REASONING: True
11
+ DEFAULT_CHAT: True
12
+ DEFAULT_REASONING: True
13
+ DEFAULT_SAMPLER:
14
+ max_tokens: 4096
15
+ temperature: 1.0
16
+ top_p: 0.3
17
+ presence_penalty: 0.5
18
+ count_penalty: 0.5
19
+ penalty_decay: 0.996
20
+ stop:
21
+ - "\n\n"
22
+ stop_tokens:
23
+ - 0
24
+ - SERVICE_NAME: "RWKV7-G1-0.4B-75%trained-20250317-ctx4k"
25
+ DOWNLOAD_MODEL_FILE_NAME: "RWKV7-G1-0.4B-75%trained-20250317-ctx4k.pth"
26
+ DOWNLOAD_MODEL_REPO_ID: "RWKV/temp-latest-training-models"
27
+ REASONING: True
28
+ DEFAULT_SAMPLER:
29
+ max_tokens: 4096
30
+ temperature: 1.0
31
+ top_p: 0.3
32
+ presence_penalty: 0.5
33
+ count_penalty: 0.5
34
+ penalty_decay: 0.996
35
+ stop:
36
+ - "\n\n"
37
+ stop_tokens:
38
+ - 0
39
+ - SERVICE_NAME: "RWKV7-G1-1.5B-32%trained-20250319-ctx4k"
40
+ DOWNLOAD_MODEL_FILE_NAME: "RWKV7-G1-1.5B-32%trained-20250319-ctx4k.pth"
41
+ DOWNLOAD_MODEL_REPO_ID: "RWKV/temp-latest-training-models"
42
+ REASONING: True
43
+ DEFAULT_SAMPLER:
44
+ max_tokens: 4096
45
+ temperature: 1.0
46
+ top_p: 0.3
47
+ presence_penalty: 0.5
48
+ count_penalty: 0.5
49
+ penalty_decay: 0.996
50
+ stop:
51
+ - "\n\n"
52
+ stop_tokens:
53
+ - 0
54
+ - SERVICE_NAME: "RWKV7-G1-2.9B-16%trained-20250313-ctx4k"
55
+ DOWNLOAD_MODEL_FILE_NAME: "RWKV7-G1-2.9B-16%trained-20250313-ctx4k.pth"
56
+ DOWNLOAD_MODEL_REPO_ID: "RWKV/temp-latest-training-models"
57
+ REASONING: True
58
+ DEFAULT_SAMPLER:
59
+ max_tokens: 4096
60
+ temperature: 1.0
61
+ top_p: 0.3
62
+ presence_penalty: 0.5
63
+ count_penalty: 0.5
64
+ penalty_decay: 0.996
65
+ stop:
66
+ - "\n\n"
67
+ stop_tokens:
68
+ - 0
config.production.yaml CHANGED
@@ -1,7 +1,7 @@
1
  HOST: "0.0.0.0"
2
  PORT: 7860
3
  STRATEGY: "cuda fp16"
4
- RWKV_CUDA_ON: False
5
  CHUNK_LEN: 256
6
  MODELS:
7
  - SERVICE_NAME: "rwkv7-g1-0.1b-20250307-ctx4096"
@@ -21,8 +21,23 @@ MODELS:
21
  - "\n\n"
22
  stop_tokens:
23
  - 0
24
- - SERVICE_NAME: "RWKV7-G1-1.5B-16%trained-20250308-ctx4k"
25
- DOWNLOAD_MODEL_FILE_NAME: "RWKV7-G1-1.5B-16%trained-20250308-ctx4k.pth"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
  DOWNLOAD_MODEL_REPO_ID: "BlinkDL/temp-latest-training-models"
27
  REASONING: True
28
  DEFAULT_SAMPLER:
 
1
  HOST: "0.0.0.0"
2
  PORT: 7860
3
  STRATEGY: "cuda fp16"
4
+ RWKV_CUDA_ON: True
5
  CHUNK_LEN: 256
6
  MODELS:
7
  - SERVICE_NAME: "rwkv7-g1-0.1b-20250307-ctx4096"
 
21
  - "\n\n"
22
  stop_tokens:
23
  - 0
24
+ - SERVICE_NAME: "RWKV7-G1-0.4B-75%trained-20250317-ctx4k"
25
+ DOWNLOAD_MODEL_FILE_NAME: "RWKV7-G1-0.4B-75%trained-20250317-ctx4k.pth"
26
+ DOWNLOAD_MODEL_REPO_ID: "BlinkDL/temp-latest-training-models"
27
+ REASONING: True
28
+ DEFAULT_SAMPLER:
29
+ max_tokens: 4096
30
+ temperature: 1.0
31
+ top_p: 0.3
32
+ presence_penalty: 0.5
33
+ count_penalty: 0.5
34
+ penalty_decay: 0.996
35
+ stop:
36
+ - "\n\n"
37
+ stop_tokens:
38
+ - 0
39
+ - SERVICE_NAME: "RWKV7-G1-1.5B-32%trained-20250319-ctx4k"
40
+ DOWNLOAD_MODEL_FILE_NAME: "RWKV7-G1-1.5B-32%trained-20250319-ctx4k.pth"
41
  DOWNLOAD_MODEL_REPO_ID: "BlinkDL/temp-latest-training-models"
42
  REASONING: True
43
  DEFAULT_SAMPLER:
{rwkv/cuda β†’ cuda}/gemm_fp16_cublas.cpp RENAMED
File without changes
{rwkv/cuda β†’ cuda}/operators.cu RENAMED
File without changes
{rwkv/cuda β†’ cuda}/rwkv5.cu RENAMED
File without changes
{rwkv/cuda β†’ cuda}/rwkv5_op.cpp RENAMED
File without changes
{rwkv/cuda β†’ cuda}/rwkv6.cu RENAMED
File without changes
{rwkv/cuda β†’ cuda}/rwkv6_op.cpp RENAMED
File without changes
{rwkv/cuda β†’ cuda}/rwkv7.cu RENAMED
File without changes
{rwkv/cuda β†’ cuda}/rwkv7_op.cpp RENAMED
File without changes
{rwkv/cuda β†’ cuda}/wrapper.cpp RENAMED
File without changes
pyproject.toml CHANGED
@@ -14,9 +14,11 @@ dependencies = [
14
  "pydantic-settings>=2.8.1",
15
  "pynvml>=12.0.0",
16
  "rich>=13.9.4",
17
- # "rwkv==0.8.28",
18
  "setuptools>=75.8.2",
19
  "snowflake-id>=1.0.2",
 
 
20
  ]
21
 
22
  [project.optional-dependencies]
 
14
  "pydantic-settings>=2.8.1",
15
  "pynvml>=12.0.0",
16
  "rich>=13.9.4",
17
+ "rwkv>=0.8.28",
18
  "setuptools>=75.8.2",
19
  "snowflake-id>=1.0.2",
20
+ "modelscope>=1.23.0",
21
+ "transformers",
22
  ]
23
 
24
  [project.optional-dependencies]
rwkv/__init__.py DELETED
File without changes
rwkv/model.py DELETED
The diff for this file is too large to render. See raw diff
 
rwkv/rwkv_tokenizer.py DELETED
@@ -1,103 +0,0 @@
1
- ########################################################################################################
2
- # The RWKV Language Model - https://github.com/BlinkDL/RWKV-LM
3
- ########################################################################################################
4
-
5
- class TRIE:
6
- __slots__ = tuple("ch,to,values,front".split(","))
7
- to:list
8
- values:set
9
- def __init__(self, front=None, ch=None):
10
- self.ch = ch
11
- self.to = [None for ch in range(256)]
12
- self.values = set()
13
- self.front = front
14
-
15
- def __repr__(self):
16
- fr = self
17
- ret = []
18
- while(fr!=None):
19
- if(fr.ch!=None):
20
- ret.append(fr.ch)
21
- fr = fr.front
22
- return "<TRIE %s %s>"%(ret[::-1], self.values)
23
-
24
- def add(self, key:bytes, idx:int=0, val=None):
25
- if(idx == len(key)):
26
- if(val is None):
27
- val = key
28
- self.values.add(val)
29
- return self
30
- ch = key[idx]
31
- if(self.to[ch] is None):
32
- self.to[ch] = TRIE(front=self, ch=ch)
33
- return self.to[ch].add(key, idx=idx+1, val=val)
34
-
35
- def find_longest(self, key:bytes, idx:int=0):
36
- u:TRIE = self
37
- ch:int = key[idx]
38
-
39
- while(u.to[ch] is not None):
40
- u = u.to[ch]
41
- idx += 1
42
- if(u.values):
43
- ret = idx, u, u.values
44
- if(idx==len(key)):
45
- break
46
- ch = key[idx]
47
- return ret
48
-
49
- class TRIE_TOKENIZER():
50
- def __init__(self, file_name):
51
- self.idx2token = {}
52
- sorted = [] # must be already sorted
53
- with open(file_name, "r", encoding="utf-8") as f:
54
- lines = f.readlines()
55
- for l in lines:
56
- idx = int(l[:l.index(' ')])
57
- x = eval(l[l.index(' '):l.rindex(' ')])
58
- x = x.encode("utf-8") if isinstance(x, str) else x
59
- assert isinstance(x, bytes)
60
- assert len(x) == int(l[l.rindex(' '):])
61
- sorted += [x]
62
- self.idx2token[idx] = x
63
-
64
- self.token2idx = {}
65
- for k,v in self.idx2token.items():
66
- self.token2idx[v] = int(k)
67
-
68
- self.root = TRIE()
69
- for t, i in self.token2idx.items():
70
- _ = self.root.add(t, val=(t, i))
71
-
72
- def encodeBytes(self, src:bytes):
73
- idx:int = 0
74
- tokens = []
75
- while (idx < len(src)):
76
- _idx:int = idx
77
- idx, _, values = self.root.find_longest(src, idx)
78
- assert(idx != _idx)
79
- _, token = next(iter(values))
80
- tokens.append(token)
81
- return tokens
82
-
83
- def decodeBytes(self, tokens):
84
- return b''.join(map(lambda i: self.idx2token[i], tokens))
85
-
86
- def encode(self, src):
87
- return self.encodeBytes(src.encode("utf-8"))
88
-
89
- def decode(self, tokens):
90
- try:
91
- return self.decodeBytes(tokens).decode('utf-8')
92
- except:
93
- return '\ufffd' # bad utf-8
94
-
95
- def printTokens(self, tokens):
96
- for i in tokens:
97
- s = self.idx2token[i]
98
- try:
99
- s = s.decode('utf-8')
100
- except:
101
- pass
102
- print(f'{repr(s)}{i}', end=' ')
103
- print()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
rwkv/rwkv_vocab_v20230424.txt DELETED
The diff for this file is too large to render. See raw diff
 
rwkv/utils.py DELETED
@@ -1,135 +0,0 @@
1
- ########################################################################################################
2
- # The RWKV Language Model - https://github.com/BlinkDL/RWKV-LM
3
- ########################################################################################################
4
-
5
- import os, sys
6
- import numpy as np
7
- import torch
8
- from torch.nn import functional as F
9
-
10
- class PIPELINE_ARGS():
11
- def __init__(self, temperature=1.0, top_p=0.85, top_k=0, alpha_frequency=0.2, alpha_presence=0.2, alpha_decay=0.996, token_ban=[], token_stop=[], chunk_len=256):
12
- self.temperature = temperature
13
- self.top_p = top_p
14
- self.top_k = top_k
15
- self.alpha_frequency = alpha_frequency # Frequency Penalty (as in GPT-3)
16
- self.alpha_presence = alpha_presence # Presence Penalty (as in GPT-3)
17
- self.alpha_decay = alpha_decay # gradually decay the penalty
18
- self.token_ban = token_ban # ban the generation of some tokens
19
- self.token_stop = token_stop # stop generation whenever you see any token here
20
- self.chunk_len = chunk_len # split input into chunks to save VRAM (shorter -> slower)
21
-
22
- class PIPELINE():
23
- def __init__(self, model, WORD_NAME):
24
- self.model = model
25
- if WORD_NAME == 'cl100k_base':
26
- import tiktoken
27
- self.tokenizer = tiktoken.get_encoding(WORD_NAME)
28
- elif WORD_NAME == 'rwkv_vocab_v20230424':
29
- sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
30
- from rwkv_tokenizer import TRIE_TOKENIZER
31
- self.tokenizer = TRIE_TOKENIZER(os.path.dirname(os.path.abspath(__file__)) + '/rwkv_vocab_v20230424.txt')
32
- else:
33
- from tokenizers import Tokenizer
34
- self.tokenizer = Tokenizer.from_file(WORD_NAME)
35
-
36
- def refine_context(self, context):
37
- context = context.strip().split('\n')
38
- for c in range(len(context)):
39
- context[c] = context[c].strip().strip('\u3000').strip('\r')
40
- context = list(filter(lambda c: c != '', context))
41
- context = '\n' + ('\n'.join(context)).strip()
42
- if context == '':
43
- context = '\n'
44
- return context
45
-
46
- def encode(self, x):
47
- if 'Tokenizer' in str(type(self.tokenizer)):
48
- return self.tokenizer.encode(x).ids
49
- else:
50
- return self.tokenizer.encode(x)
51
-
52
- def decode(self, x):
53
- return self.tokenizer.decode(x)
54
-
55
- def sample_logits(self, logits, temperature=1.0, top_p=0.85, top_k=0):
56
- if temperature == 0:
57
- temperature = 1.0
58
- top_p = 0
59
- probs = F.softmax(logits.float(), dim=-1)
60
- top_k = int(top_k)
61
- # 'privateuseone' is the type of custom devices like `torch_directml.device()`
62
- if probs.device.type in ['cpu', 'privateuseone']:
63
- probs = probs.cpu().numpy()
64
- sorted_ids = np.argsort(probs)
65
- sorted_probs = probs[sorted_ids][::-1]
66
- cumulative_probs = np.cumsum(sorted_probs)
67
- cutoff = float(sorted_probs[np.argmax(cumulative_probs >= top_p)])
68
- probs[probs < cutoff] = 0
69
- if top_k < len(probs) and top_k > 0:
70
- probs[sorted_ids[:-top_k]] = 0
71
- if temperature != 1.0:
72
- probs = probs ** (1.0 / temperature)
73
- probs = probs / np.sum(probs)
74
- out = np.random.choice(a=len(probs), p=probs)
75
- return int(out)
76
- else:
77
- sorted_ids = torch.argsort(probs)
78
- sorted_probs = probs[sorted_ids]
79
- sorted_probs = torch.flip(sorted_probs, dims=(0,))
80
- cumulative_probs = torch.cumsum(sorted_probs, dim=-1).cpu().numpy()
81
- cutoff = float(sorted_probs[np.argmax(cumulative_probs >= top_p)])
82
- probs[probs < cutoff] = 0
83
- if top_k < len(probs) and top_k > 0:
84
- probs[sorted_ids[:-top_k]] = 0
85
- if temperature != 1.0:
86
- probs = probs ** (1.0 / temperature)
87
- out = torch.multinomial(probs, num_samples=1)[0]
88
- return int(out)
89
-
90
- def generate(self, ctx, token_count=100, args=PIPELINE_ARGS(), callback=None, state=None):
91
- all_tokens = []
92
- out_last = 0
93
- out_str = ''
94
- occurrence = {}
95
- for i in range(token_count):
96
-
97
- # forward & adjust prob.
98
- tokens = self.encode(ctx) if i == 0 else [token]
99
- while len(tokens) > 0:
100
- out, state = self.model.forward(tokens[:args.chunk_len], state)
101
- tokens = tokens[args.chunk_len:]
102
-
103
- for n in args.token_ban:
104
- out[n] = -float('inf')
105
- for n in occurrence:
106
- out[n] -= (args.alpha_presence + occurrence[n] * args.alpha_frequency)
107
-
108
- # sampler
109
- token = self.sample_logits(out, temperature=args.temperature, top_p=args.top_p, top_k=args.top_k)
110
- if token in args.token_stop:
111
- break
112
- all_tokens += [token]
113
- for xxx in occurrence:
114
- occurrence[xxx] *= args.alpha_decay
115
-
116
- ttt = self.decode([token])
117
- www = 1
118
- if ttt in ' \t0123456789':
119
- www = 0
120
- # elif ttt in '\r\n,.;?!"\':+-*/=#@$%^&_`~|<>\\()[]{}οΌŒγ€‚οΌ›β€œβ€οΌšοΌŸοΌοΌˆοΌ‰γ€γ€‘':
121
- # www = 0.5
122
- if token not in occurrence:
123
- occurrence[token] = www
124
- else:
125
- occurrence[token] += www
126
- # print(occurrence) # debug
127
-
128
- # output
129
- tmp = self.decode(all_tokens[out_last:])
130
- if '\ufffd' not in tmp: # is valid utf-8 string?
131
- if callback:
132
- callback(tmp)
133
- out_str += tmp
134
- out_last = i + 1
135
- return out_str
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
uv.lock CHANGED
@@ -428,6 +428,20 @@ wheels = [
428
  { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979 },
429
  ]
430
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
431
  [[package]]
432
  name = "mpmath"
433
  version = "1.3.0"
@@ -876,6 +890,75 @@ wheels = [
876
  { url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446 },
877
  ]
878
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
879
  [[package]]
880
  name = "requests"
881
  version = "2.32.3"
@@ -919,6 +1002,18 @@ wheels = [
919
  { url = "https://files.pythonhosted.org/packages/7e/1b/1c2f43af46456050b27810a7a013af8a7e12bc545a0cdc00eb0df55eb769/rich_toolkit-0.13.2-py3-none-any.whl", hash = "sha256:f3f6c583e5283298a2f7dbd3c65aca18b7f818ad96174113ab5bec0b0e35ed61", size = 13566 },
920
  ]
921
 
 
 
 
 
 
 
 
 
 
 
 
 
922
  [[package]]
923
  name = "rwkv-hf-space"
924
  version = "0.1.0"
@@ -927,14 +1022,17 @@ dependencies = [
927
  { name = "fastapi", extra = ["standard"] },
928
  { name = "huggingface-hub" },
929
  { name = "loguru" },
 
930
  { name = "ninja" },
931
  { name = "numpy" },
932
  { name = "pydantic" },
933
  { name = "pydantic-settings" },
934
  { name = "pynvml" },
935
  { name = "rich" },
 
936
  { name = "setuptools" },
937
  { name = "snowflake-id" },
 
938
  ]
939
 
940
  [package.optional-dependencies]
@@ -954,20 +1052,45 @@ requires-dist = [
954
  { name = "fastapi", extras = ["standard"], specifier = ">=0.115.11" },
955
  { name = "huggingface-hub", specifier = ">=0.29.1" },
956
  { name = "loguru", specifier = ">=0.7.3" },
 
957
  { name = "ninja", specifier = ">=1.11.1.3" },
958
  { name = "numpy", specifier = ">=2.2.3" },
959
  { name = "pydantic", specifier = ">=2.10.6" },
960
  { name = "pydantic-settings", specifier = ">=2.8.1" },
961
  { name = "pynvml", specifier = ">=12.0.0" },
962
  { name = "rich", specifier = ">=13.9.4" },
 
963
  { name = "setuptools", specifier = ">=75.8.2" },
964
  { name = "snowflake-id", specifier = ">=1.0.2" },
965
  { name = "torch", marker = "extra == 'cpu'", specifier = ">=2.6.0", index = "https://download.pytorch.org/whl/cpu", conflict = { package = "rwkv-hf-space", extra = "cpu" } },
966
  { name = "torch", marker = "extra == 'cu113'", index = "https://download.pytorch.org/whl/cu113", conflict = { package = "rwkv-hf-space", extra = "cu113" } },
967
  { name = "torch", marker = "extra == 'cu124'", specifier = ">=2.6.0", index = "https://download.pytorch.org/whl/cu124", conflict = { package = "rwkv-hf-space", extra = "cu124" } },
 
968
  ]
969
  provides-extras = ["cpu", "cu124", "cu113"]
970
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
971
  [[package]]
972
  name = "setuptools"
973
  version = "75.8.2"
@@ -1028,6 +1151,31 @@ wheels = [
1028
  { url = "https://files.pythonhosted.org/packages/b2/fe/81695a1aa331a842b582453b605175f419fe8540355886031328089d840a/sympy-1.13.1-py3-none-any.whl", hash = "sha256:db36cdc64bf61b9b24578b6f7bab1ecdd2452cf008f34faa33776680c26d66f8", size = 6189177 },
1029
  ]
1030
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1031
  [[package]]
1032
  name = "torch"
1033
  version = "2.0.1"
@@ -1157,6 +1305,27 @@ wheels = [
1157
  { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540 },
1158
  ]
1159
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1160
  [[package]]
1161
  name = "triton"
1162
  version = "3.2.0"
 
428
  { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979 },
429
  ]
430
 
431
+ [[package]]
432
+ name = "modelscope"
433
+ version = "1.24.0"
434
+ source = { registry = "https://pypi.org/simple" }
435
+ dependencies = [
436
+ { name = "requests" },
437
+ { name = "tqdm" },
438
+ { name = "urllib3" },
439
+ ]
440
+ sdist = { url = "https://files.pythonhosted.org/packages/ea/e1/3f571ee864df320a84748b2f7ffa7252903b4f4e8a6d470b8d10f972f82e/modelscope-1.24.0.tar.gz", hash = "sha256:6bf801164bfb115dfd8ac126b89d830a03ea85b4736765e59ef9db366662e018", size = 4388079 }
441
+ wheels = [
442
+ { url = "https://files.pythonhosted.org/packages/2a/7f/01e685817c36b4280cdf21eebb35b5fb3f0024dd10f5929b06dc846b1eea/modelscope-1.24.0-py3-none-any.whl", hash = "sha256:b5c082798aad354f4f077535763e2d0ad91fb29935df6f2df5ca9003eeca5b3c", size = 5853001 },
443
+ ]
444
+
445
  [[package]]
446
  name = "mpmath"
447
  version = "1.3.0"
 
890
  { url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446 },
891
  ]
892
 
893
+ [[package]]
894
+ name = "regex"
895
+ version = "2024.11.6"
896
+ source = { registry = "https://pypi.org/simple" }
897
+ sdist = { url = "https://files.pythonhosted.org/packages/8e/5f/bd69653fbfb76cf8604468d3b4ec4c403197144c7bfe0e6a5fc9e02a07cb/regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519", size = 399494 }
898
+ wheels = [
899
+ { url = "https://files.pythonhosted.org/packages/95/3c/4651f6b130c6842a8f3df82461a8950f923925db8b6961063e82744bddcc/regex-2024.11.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff590880083d60acc0433f9c3f713c51f7ac6ebb9adf889c79a261ecf541aa91", size = 482674 },
900
+ { url = "https://files.pythonhosted.org/packages/15/51/9f35d12da8434b489c7b7bffc205c474a0a9432a889457026e9bc06a297a/regex-2024.11.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:658f90550f38270639e83ce492f27d2c8d2cd63805c65a13a14d36ca126753f0", size = 287684 },
901
+ { url = "https://files.pythonhosted.org/packages/bd/18/b731f5510d1b8fb63c6b6d3484bfa9a59b84cc578ac8b5172970e05ae07c/regex-2024.11.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:164d8b7b3b4bcb2068b97428060b2a53be050085ef94eca7f240e7947f1b080e", size = 284589 },
902
+ { url = "https://files.pythonhosted.org/packages/78/a2/6dd36e16341ab95e4c6073426561b9bfdeb1a9c9b63ab1b579c2e96cb105/regex-2024.11.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3660c82f209655a06b587d55e723f0b813d3a7db2e32e5e7dc64ac2a9e86fde", size = 782511 },
903
+ { url = "https://files.pythonhosted.org/packages/1b/2b/323e72d5d2fd8de0d9baa443e1ed70363ed7e7b2fb526f5950c5cb99c364/regex-2024.11.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d22326fcdef5e08c154280b71163ced384b428343ae16a5ab2b3354aed12436e", size = 821149 },
904
+ { url = "https://files.pythonhosted.org/packages/90/30/63373b9ea468fbef8a907fd273e5c329b8c9535fee36fc8dba5fecac475d/regex-2024.11.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1ac758ef6aebfc8943560194e9fd0fa18bcb34d89fd8bd2af18183afd8da3a2", size = 809707 },
905
+ { url = "https://files.pythonhosted.org/packages/f2/98/26d3830875b53071f1f0ae6d547f1d98e964dd29ad35cbf94439120bb67a/regex-2024.11.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:997d6a487ff00807ba810e0f8332c18b4eb8d29463cfb7c820dc4b6e7562d0cf", size = 781702 },
906
+ { url = "https://files.pythonhosted.org/packages/87/55/eb2a068334274db86208ab9d5599ffa63631b9f0f67ed70ea7c82a69bbc8/regex-2024.11.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:02a02d2bb04fec86ad61f3ea7f49c015a0681bf76abb9857f945d26159d2968c", size = 771976 },
907
+ { url = "https://files.pythonhosted.org/packages/74/c0/be707bcfe98254d8f9d2cff55d216e946f4ea48ad2fd8cf1428f8c5332ba/regex-2024.11.6-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f02f93b92358ee3f78660e43b4b0091229260c5d5c408d17d60bf26b6c900e86", size = 697397 },
908
+ { url = "https://files.pythonhosted.org/packages/49/dc/bb45572ceb49e0f6509f7596e4ba7031f6819ecb26bc7610979af5a77f45/regex-2024.11.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:06eb1be98df10e81ebaded73fcd51989dcf534e3c753466e4b60c4697a003b67", size = 768726 },
909
+ { url = "https://files.pythonhosted.org/packages/5a/db/f43fd75dc4c0c2d96d0881967897926942e935d700863666f3c844a72ce6/regex-2024.11.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:040df6fe1a5504eb0f04f048e6d09cd7c7110fef851d7c567a6b6e09942feb7d", size = 775098 },
910
+ { url = "https://files.pythonhosted.org/packages/99/d7/f94154db29ab5a89d69ff893159b19ada89e76b915c1293e98603d39838c/regex-2024.11.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabbfc59f2c6edba2a6622c647b716e34e8e3867e0ab975412c5c2f79b82da2", size = 839325 },
911
+ { url = "https://files.pythonhosted.org/packages/f7/17/3cbfab1f23356fbbf07708220ab438a7efa1e0f34195bf857433f79f1788/regex-2024.11.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8447d2d39b5abe381419319f942de20b7ecd60ce86f16a23b0698f22e1b70008", size = 843277 },
912
+ { url = "https://files.pythonhosted.org/packages/7e/f2/48b393b51900456155de3ad001900f94298965e1cad1c772b87f9cfea011/regex-2024.11.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:da8f5fc57d1933de22a9e23eec290a0d8a5927a5370d24bda9a6abe50683fe62", size = 773197 },
913
+ { url = "https://files.pythonhosted.org/packages/45/3f/ef9589aba93e084cd3f8471fded352826dcae8489b650d0b9b27bc5bba8a/regex-2024.11.6-cp310-cp310-win32.whl", hash = "sha256:b489578720afb782f6ccf2840920f3a32e31ba28a4b162e13900c3e6bd3f930e", size = 261714 },
914
+ { url = "https://files.pythonhosted.org/packages/42/7e/5f1b92c8468290c465fd50c5318da64319133231415a8aa6ea5ab995a815/regex-2024.11.6-cp310-cp310-win_amd64.whl", hash = "sha256:5071b2093e793357c9d8b2929dfc13ac5f0a6c650559503bb81189d0a3814519", size = 274042 },
915
+ { url = "https://files.pythonhosted.org/packages/58/58/7e4d9493a66c88a7da6d205768119f51af0f684fe7be7bac8328e217a52c/regex-2024.11.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5478c6962ad548b54a591778e93cd7c456a7a29f8eca9c49e4f9a806dcc5d638", size = 482669 },
916
+ { url = "https://files.pythonhosted.org/packages/34/4c/8f8e631fcdc2ff978609eaeef1d6994bf2f028b59d9ac67640ed051f1218/regex-2024.11.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c89a8cc122b25ce6945f0423dc1352cb9593c68abd19223eebbd4e56612c5b7", size = 287684 },
917
+ { url = "https://files.pythonhosted.org/packages/c5/1b/f0e4d13e6adf866ce9b069e191f303a30ab1277e037037a365c3aad5cc9c/regex-2024.11.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94d87b689cdd831934fa3ce16cc15cd65748e6d689f5d2b8f4f4df2065c9fa20", size = 284589 },
918
+ { url = "https://files.pythonhosted.org/packages/25/4d/ab21047f446693887f25510887e6820b93f791992994f6498b0318904d4a/regex-2024.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1062b39a0a2b75a9c694f7a08e7183a80c63c0d62b301418ffd9c35f55aaa114", size = 792121 },
919
+ { url = "https://files.pythonhosted.org/packages/45/ee/c867e15cd894985cb32b731d89576c41a4642a57850c162490ea34b78c3b/regex-2024.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:167ed4852351d8a750da48712c3930b031f6efdaa0f22fa1933716bfcd6bf4a3", size = 831275 },
920
+ { url = "https://files.pythonhosted.org/packages/b3/12/b0f480726cf1c60f6536fa5e1c95275a77624f3ac8fdccf79e6727499e28/regex-2024.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d548dafee61f06ebdb584080621f3e0c23fff312f0de1afc776e2a2ba99a74f", size = 818257 },
921
+ { url = "https://files.pythonhosted.org/packages/bf/ce/0d0e61429f603bac433910d99ef1a02ce45a8967ffbe3cbee48599e62d88/regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a19f302cd1ce5dd01a9099aaa19cae6173306d1302a43b627f62e21cf18ac0", size = 792727 },
922
+ { url = "https://files.pythonhosted.org/packages/e4/c1/243c83c53d4a419c1556f43777ccb552bccdf79d08fda3980e4e77dd9137/regex-2024.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bec9931dfb61ddd8ef2ebc05646293812cb6b16b60cf7c9511a832b6f1854b55", size = 780667 },
923
+ { url = "https://files.pythonhosted.org/packages/c5/f4/75eb0dd4ce4b37f04928987f1d22547ddaf6c4bae697623c1b05da67a8aa/regex-2024.11.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9714398225f299aa85267fd222f7142fcb5c769e73d7733344efc46f2ef5cf89", size = 776963 },
924
+ { url = "https://files.pythonhosted.org/packages/16/5d/95c568574e630e141a69ff8a254c2f188b4398e813c40d49228c9bbd9875/regex-2024.11.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:202eb32e89f60fc147a41e55cb086db2a3f8cb82f9a9a88440dcfc5d37faae8d", size = 784700 },
925
+ { url = "https://files.pythonhosted.org/packages/8e/b5/f8495c7917f15cc6fee1e7f395e324ec3e00ab3c665a7dc9d27562fd5290/regex-2024.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4181b814e56078e9b00427ca358ec44333765f5ca1b45597ec7446d3a1ef6e34", size = 848592 },
926
+ { url = "https://files.pythonhosted.org/packages/1c/80/6dd7118e8cb212c3c60b191b932dc57db93fb2e36fb9e0e92f72a5909af9/regex-2024.11.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:068376da5a7e4da51968ce4c122a7cd31afaaec4fccc7856c92f63876e57b51d", size = 852929 },
927
+ { url = "https://files.pythonhosted.org/packages/11/9b/5a05d2040297d2d254baf95eeeb6df83554e5e1df03bc1a6687fc4ba1f66/regex-2024.11.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f2c4184420d881a3475fb2c6f4d95d53a8d50209a2500723d831036f7c45", size = 781213 },
928
+ { url = "https://files.pythonhosted.org/packages/26/b7/b14e2440156ab39e0177506c08c18accaf2b8932e39fb092074de733d868/regex-2024.11.6-cp311-cp311-win32.whl", hash = "sha256:c36f9b6f5f8649bb251a5f3f66564438977b7ef8386a52460ae77e6070d309d9", size = 261734 },
929
+ { url = "https://files.pythonhosted.org/packages/80/32/763a6cc01d21fb3819227a1cc3f60fd251c13c37c27a73b8ff4315433a8e/regex-2024.11.6-cp311-cp311-win_amd64.whl", hash = "sha256:02e28184be537f0e75c1f9b2f8847dc51e08e6e171c6bde130b2687e0c33cf60", size = 274052 },
930
+ { url = "https://files.pythonhosted.org/packages/ba/30/9a87ce8336b172cc232a0db89a3af97929d06c11ceaa19d97d84fa90a8f8/regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:52fb28f528778f184f870b7cf8f225f5eef0a8f6e3778529bdd40c7b3920796a", size = 483781 },
931
+ { url = "https://files.pythonhosted.org/packages/01/e8/00008ad4ff4be8b1844786ba6636035f7ef926db5686e4c0f98093612add/regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdd6028445d2460f33136c55eeb1f601ab06d74cb3347132e1c24250187500d9", size = 288455 },
932
+ { url = "https://files.pythonhosted.org/packages/60/85/cebcc0aff603ea0a201667b203f13ba75d9fc8668fab917ac5b2de3967bc/regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805e6b60c54bf766b251e94526ebad60b7de0c70f70a4e6210ee2891acb70bf2", size = 284759 },
933
+ { url = "https://files.pythonhosted.org/packages/94/2b/701a4b0585cb05472a4da28ee28fdfe155f3638f5e1ec92306d924e5faf0/regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b85c2530be953a890eaffde05485238f07029600e8f098cdf1848d414a8b45e4", size = 794976 },
934
+ { url = "https://files.pythonhosted.org/packages/4b/bf/fa87e563bf5fee75db8915f7352e1887b1249126a1be4813837f5dbec965/regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb26437975da7dc36b7efad18aa9dd4ea569d2357ae6b783bf1118dabd9ea577", size = 833077 },
935
+ { url = "https://files.pythonhosted.org/packages/a1/56/7295e6bad94b047f4d0834e4779491b81216583c00c288252ef625c01d23/regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abfa5080c374a76a251ba60683242bc17eeb2c9818d0d30117b4486be10c59d3", size = 823160 },
936
+ { url = "https://files.pythonhosted.org/packages/fb/13/e3b075031a738c9598c51cfbc4c7879e26729c53aa9cca59211c44235314/regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b7fa6606c2881c1db9479b0eaa11ed5dfa11c8d60a474ff0e095099f39d98e", size = 796896 },
937
+ { url = "https://files.pythonhosted.org/packages/24/56/0b3f1b66d592be6efec23a795b37732682520b47c53da5a32c33ed7d84e3/regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c32f75920cf99fe6b6c539c399a4a128452eaf1af27f39bce8909c9a3fd8cbe", size = 783997 },
938
+ { url = "https://files.pythonhosted.org/packages/f9/a1/eb378dada8b91c0e4c5f08ffb56f25fcae47bf52ad18f9b2f33b83e6d498/regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:982e6d21414e78e1f51cf595d7f321dcd14de1f2881c5dc6a6e23bbbbd68435e", size = 781725 },
939
+ { url = "https://files.pythonhosted.org/packages/83/f2/033e7dec0cfd6dda93390089864732a3409246ffe8b042e9554afa9bff4e/regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a7c2155f790e2fb448faed6dd241386719802296ec588a8b9051c1f5c481bc29", size = 789481 },
940
+ { url = "https://files.pythonhosted.org/packages/83/23/15d4552ea28990a74e7696780c438aadd73a20318c47e527b47a4a5a596d/regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149f5008d286636e48cd0b1dd65018548944e495b0265b45e1bffecce1ef7f39", size = 852896 },
941
+ { url = "https://files.pythonhosted.org/packages/e3/39/ed4416bc90deedbfdada2568b2cb0bc1fdb98efe11f5378d9892b2a88f8f/regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e5364a4502efca094731680e80009632ad6624084aff9a23ce8c8c6820de3e51", size = 860138 },
942
+ { url = "https://files.pythonhosted.org/packages/93/2d/dd56bb76bd8e95bbce684326302f287455b56242a4f9c61f1bc76e28360e/regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0a86e7eeca091c09e021db8eb72d54751e527fa47b8d5787caf96d9831bd02ad", size = 787692 },
943
+ { url = "https://files.pythonhosted.org/packages/0b/55/31877a249ab7a5156758246b9c59539abbeba22461b7d8adc9e8475ff73e/regex-2024.11.6-cp312-cp312-win32.whl", hash = "sha256:32f9a4c643baad4efa81d549c2aadefaeba12249b2adc5af541759237eee1c54", size = 262135 },
944
+ { url = "https://files.pythonhosted.org/packages/38/ec/ad2d7de49a600cdb8dd78434a1aeffe28b9d6fc42eb36afab4a27ad23384/regex-2024.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:a93c194e2df18f7d264092dc8539b8ffb86b45b899ab976aa15d48214138e81b", size = 273567 },
945
+ { url = "https://files.pythonhosted.org/packages/90/73/bcb0e36614601016552fa9344544a3a2ae1809dc1401b100eab02e772e1f/regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84", size = 483525 },
946
+ { url = "https://files.pythonhosted.org/packages/0f/3f/f1a082a46b31e25291d830b369b6b0c5576a6f7fb89d3053a354c24b8a83/regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4", size = 288324 },
947
+ { url = "https://files.pythonhosted.org/packages/09/c9/4e68181a4a652fb3ef5099e077faf4fd2a694ea6e0f806a7737aff9e758a/regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0", size = 284617 },
948
+ { url = "https://files.pythonhosted.org/packages/fc/fd/37868b75eaf63843165f1d2122ca6cb94bfc0271e4428cf58c0616786dce/regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0", size = 795023 },
949
+ { url = "https://files.pythonhosted.org/packages/c4/7c/d4cd9c528502a3dedb5c13c146e7a7a539a3853dc20209c8e75d9ba9d1b2/regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7", size = 833072 },
950
+ { url = "https://files.pythonhosted.org/packages/4f/db/46f563a08f969159c5a0f0e722260568425363bea43bb7ae370becb66a67/regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7", size = 823130 },
951
+ { url = "https://files.pythonhosted.org/packages/db/60/1eeca2074f5b87df394fccaa432ae3fc06c9c9bfa97c5051aed70e6e00c2/regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c", size = 796857 },
952
+ { url = "https://files.pythonhosted.org/packages/10/db/ac718a08fcee981554d2f7bb8402f1faa7e868c1345c16ab1ebec54b0d7b/regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3", size = 784006 },
953
+ { url = "https://files.pythonhosted.org/packages/c2/41/7da3fe70216cea93144bf12da2b87367590bcf07db97604edeea55dac9ad/regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07", size = 781650 },
954
+ { url = "https://files.pythonhosted.org/packages/a7/d5/880921ee4eec393a4752e6ab9f0fe28009435417c3102fc413f3fe81c4e5/regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e", size = 789545 },
955
+ { url = "https://files.pythonhosted.org/packages/dc/96/53770115e507081122beca8899ab7f5ae28ae790bfcc82b5e38976df6a77/regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6", size = 853045 },
956
+ { url = "https://files.pythonhosted.org/packages/31/d3/1372add5251cc2d44b451bd94f43b2ec78e15a6e82bff6a290ef9fd8f00a/regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4", size = 860182 },
957
+ { url = "https://files.pythonhosted.org/packages/ed/e3/c446a64984ea9f69982ba1a69d4658d5014bc7a0ea468a07e1a1265db6e2/regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d", size = 787733 },
958
+ { url = "https://files.pythonhosted.org/packages/2b/f1/e40c8373e3480e4f29f2692bd21b3e05f296d3afebc7e5dcf21b9756ca1c/regex-2024.11.6-cp313-cp313-win32.whl", hash = "sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff", size = 262122 },
959
+ { url = "https://files.pythonhosted.org/packages/45/94/bc295babb3062a731f52621cdc992d123111282e291abaf23faa413443ea/regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a", size = 273545 },
960
+ ]
961
+
962
  [[package]]
963
  name = "requests"
964
  version = "2.32.3"
 
1002
  { url = "https://files.pythonhosted.org/packages/7e/1b/1c2f43af46456050b27810a7a013af8a7e12bc545a0cdc00eb0df55eb769/rich_toolkit-0.13.2-py3-none-any.whl", hash = "sha256:f3f6c583e5283298a2f7dbd3c65aca18b7f818ad96174113ab5bec0b0e35ed61", size = 13566 },
1003
  ]
1004
 
1005
+ [[package]]
1006
+ name = "rwkv"
1007
+ version = "0.8.28"
1008
+ source = { registry = "https://pypi.org/simple" }
1009
+ dependencies = [
1010
+ { name = "tokenizers" },
1011
+ ]
1012
+ sdist = { url = "https://files.pythonhosted.org/packages/d1/82/9995003bd7f93e1e6433b6ce8fa21a1079fcd35095a9cb7d8c0439f884c1/rwkv-0.8.28.tar.gz", hash = "sha256:62dab7afe791c0377b936dcd229fdd10319de714ac5e514ba8db3d23c14295a8", size = 407881 }
1013
+ wheels = [
1014
+ { url = "https://files.pythonhosted.org/packages/b2/5f/bcc13f66cc4f849000d68c11ffa7e85e05f9a552a5eba6c3c0326f201eb8/rwkv-0.8.28-py3-none-any.whl", hash = "sha256:459ead27e6d68f72de935b7ede876b0820fae95a6fbf77c434c05d4b29304e40", size = 409995 },
1015
+ ]
1016
+
1017
  [[package]]
1018
  name = "rwkv-hf-space"
1019
  version = "0.1.0"
 
1022
  { name = "fastapi", extra = ["standard"] },
1023
  { name = "huggingface-hub" },
1024
  { name = "loguru" },
1025
+ { name = "modelscope" },
1026
  { name = "ninja" },
1027
  { name = "numpy" },
1028
  { name = "pydantic" },
1029
  { name = "pydantic-settings" },
1030
  { name = "pynvml" },
1031
  { name = "rich" },
1032
+ { name = "rwkv" },
1033
  { name = "setuptools" },
1034
  { name = "snowflake-id" },
1035
+ { name = "transformers" },
1036
  ]
1037
 
1038
  [package.optional-dependencies]
 
1052
  { name = "fastapi", extras = ["standard"], specifier = ">=0.115.11" },
1053
  { name = "huggingface-hub", specifier = ">=0.29.1" },
1054
  { name = "loguru", specifier = ">=0.7.3" },
1055
+ { name = "modelscope", specifier = ">=1.23.0" },
1056
  { name = "ninja", specifier = ">=1.11.1.3" },
1057
  { name = "numpy", specifier = ">=2.2.3" },
1058
  { name = "pydantic", specifier = ">=2.10.6" },
1059
  { name = "pydantic-settings", specifier = ">=2.8.1" },
1060
  { name = "pynvml", specifier = ">=12.0.0" },
1061
  { name = "rich", specifier = ">=13.9.4" },
1062
+ { name = "rwkv", specifier = ">=0.8.28" },
1063
  { name = "setuptools", specifier = ">=75.8.2" },
1064
  { name = "snowflake-id", specifier = ">=1.0.2" },
1065
  { name = "torch", marker = "extra == 'cpu'", specifier = ">=2.6.0", index = "https://download.pytorch.org/whl/cpu", conflict = { package = "rwkv-hf-space", extra = "cpu" } },
1066
  { name = "torch", marker = "extra == 'cu113'", index = "https://download.pytorch.org/whl/cu113", conflict = { package = "rwkv-hf-space", extra = "cu113" } },
1067
  { name = "torch", marker = "extra == 'cu124'", specifier = ">=2.6.0", index = "https://download.pytorch.org/whl/cu124", conflict = { package = "rwkv-hf-space", extra = "cu124" } },
1068
+ { name = "transformers" },
1069
  ]
1070
  provides-extras = ["cpu", "cu124", "cu113"]
1071
 
1072
+ [[package]]
1073
+ name = "safetensors"
1074
+ version = "0.5.3"
1075
+ source = { registry = "https://pypi.org/simple" }
1076
+ sdist = { url = "https://files.pythonhosted.org/packages/71/7e/2d5d6ee7b40c0682315367ec7475693d110f512922d582fef1bd4a63adc3/safetensors-0.5.3.tar.gz", hash = "sha256:b6b0d6ecacec39a4fdd99cc19f4576f5219ce858e6fd8dbe7609df0b8dc56965", size = 67210 }
1077
+ wheels = [
1078
+ { url = "https://files.pythonhosted.org/packages/18/ae/88f6c49dbd0cc4da0e08610019a3c78a7d390879a919411a410a1876d03a/safetensors-0.5.3-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:bd20eb133db8ed15b40110b7c00c6df51655a2998132193de2f75f72d99c7073", size = 436917 },
1079
+ { url = "https://files.pythonhosted.org/packages/b8/3b/11f1b4a2f5d2ab7da34ecc062b0bc301f2be024d110a6466726bec8c055c/safetensors-0.5.3-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:21d01c14ff6c415c485616b8b0bf961c46b3b343ca59110d38d744e577f9cce7", size = 418419 },
1080
+ { url = "https://files.pythonhosted.org/packages/5d/9a/add3e6fef267658075c5a41573c26d42d80c935cdc992384dfae435feaef/safetensors-0.5.3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:11bce6164887cd491ca75c2326a113ba934be596e22b28b1742ce27b1d076467", size = 459493 },
1081
+ { url = "https://files.pythonhosted.org/packages/df/5c/bf2cae92222513cc23b3ff85c4a1bb2811a2c3583ac0f8e8d502751de934/safetensors-0.5.3-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4a243be3590bc3301c821da7a18d87224ef35cbd3e5f5727e4e0728b8172411e", size = 472400 },
1082
+ { url = "https://files.pythonhosted.org/packages/58/11/7456afb740bd45782d0f4c8e8e1bb9e572f1bf82899fb6ace58af47b4282/safetensors-0.5.3-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8bd84b12b1670a6f8e50f01e28156422a2bc07fb16fc4e98bded13039d688a0d", size = 522891 },
1083
+ { url = "https://files.pythonhosted.org/packages/57/3d/fe73a9d2ace487e7285f6e157afee2383bd1ddb911b7cb44a55cf812eae3/safetensors-0.5.3-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:391ac8cab7c829452175f871fcaf414aa1e292b5448bd02620f675a7f3e7abb9", size = 537694 },
1084
+ { url = "https://files.pythonhosted.org/packages/a6/f8/dae3421624fcc87a89d42e1898a798bc7ff72c61f38973a65d60df8f124c/safetensors-0.5.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cead1fa41fc54b1e61089fa57452e8834f798cb1dc7a09ba3524f1eb08e0317a", size = 471642 },
1085
+ { url = "https://files.pythonhosted.org/packages/ce/20/1fbe16f9b815f6c5a672f5b760951e20e17e43f67f231428f871909a37f6/safetensors-0.5.3-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1077f3e94182d72618357b04b5ced540ceb71c8a813d3319f1aba448e68a770d", size = 502241 },
1086
+ { url = "https://files.pythonhosted.org/packages/5f/18/8e108846b506487aa4629fe4116b27db65c3dde922de2c8e0cc1133f3f29/safetensors-0.5.3-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:799021e78287bac619c7b3f3606730a22da4cda27759ddf55d37c8db7511c74b", size = 638001 },
1087
+ { url = "https://files.pythonhosted.org/packages/82/5a/c116111d8291af6c8c8a8b40628fe833b9db97d8141c2a82359d14d9e078/safetensors-0.5.3-cp38-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:df26da01aaac504334644e1b7642fa000bfec820e7cef83aeac4e355e03195ff", size = 734013 },
1088
+ { url = "https://files.pythonhosted.org/packages/7d/ff/41fcc4d3b7de837963622e8610d998710705bbde9a8a17221d85e5d0baad/safetensors-0.5.3-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:32c3ef2d7af8b9f52ff685ed0bc43913cdcde135089ae322ee576de93eae5135", size = 670687 },
1089
+ { url = "https://files.pythonhosted.org/packages/40/ad/2b113098e69c985a3d8fbda4b902778eae4a35b7d5188859b4a63d30c161/safetensors-0.5.3-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:37f1521be045e56fc2b54c606d4455573e717b2d887c579ee1dbba5f868ece04", size = 643147 },
1090
+ { url = "https://files.pythonhosted.org/packages/0a/0c/95aeb51d4246bd9a3242d3d8349c1112b4ee7611a4b40f0c5c93b05f001d/safetensors-0.5.3-cp38-abi3-win32.whl", hash = "sha256:cfc0ec0846dcf6763b0ed3d1846ff36008c6e7290683b61616c4b040f6a54ace", size = 296677 },
1091
+ { url = "https://files.pythonhosted.org/packages/69/e2/b011c38e5394c4c18fb5500778a55ec43ad6106126e74723ffaee246f56e/safetensors-0.5.3-cp38-abi3-win_amd64.whl", hash = "sha256:836cbbc320b47e80acd40e44c8682db0e8ad7123209f69b093def21ec7cafd11", size = 308878 },
1092
+ ]
1093
+
1094
  [[package]]
1095
  name = "setuptools"
1096
  version = "75.8.2"
 
1151
  { url = "https://files.pythonhosted.org/packages/b2/fe/81695a1aa331a842b582453b605175f419fe8540355886031328089d840a/sympy-1.13.1-py3-none-any.whl", hash = "sha256:db36cdc64bf61b9b24578b6f7bab1ecdd2452cf008f34faa33776680c26d66f8", size = 6189177 },
1152
  ]
1153
 
1154
+ [[package]]
1155
+ name = "tokenizers"
1156
+ version = "0.21.1"
1157
+ source = { registry = "https://pypi.org/simple" }
1158
+ dependencies = [
1159
+ { name = "huggingface-hub" },
1160
+ ]
1161
+ sdist = { url = "https://files.pythonhosted.org/packages/92/76/5ac0c97f1117b91b7eb7323dcd61af80d72f790b4df71249a7850c195f30/tokenizers-0.21.1.tar.gz", hash = "sha256:a1bb04dc5b448985f86ecd4b05407f5a8d97cb2c0532199b2a302a604a0165ab", size = 343256 }
1162
+ wheels = [
1163
+ { url = "https://files.pythonhosted.org/packages/a5/1f/328aee25f9115bf04262e8b4e5a2050b7b7cf44b59c74e982db7270c7f30/tokenizers-0.21.1-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:e78e413e9e668ad790a29456e677d9d3aa50a9ad311a40905d6861ba7692cf41", size = 2780767 },
1164
+ { url = "https://files.pythonhosted.org/packages/ae/1a/4526797f3719b0287853f12c5ad563a9be09d446c44ac784cdd7c50f76ab/tokenizers-0.21.1-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:cd51cd0a91ecc801633829fcd1fda9cf8682ed3477c6243b9a095539de4aecf3", size = 2650555 },
1165
+ { url = "https://files.pythonhosted.org/packages/4d/7a/a209b29f971a9fdc1da86f917fe4524564924db50d13f0724feed37b2a4d/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28da6b72d4fb14ee200a1bd386ff74ade8992d7f725f2bde2c495a9a98cf4d9f", size = 2937541 },
1166
+ { url = "https://files.pythonhosted.org/packages/3c/1e/b788b50ffc6191e0b1fc2b0d49df8cff16fe415302e5ceb89f619d12c5bc/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:34d8cfde551c9916cb92014e040806122295a6800914bab5865deb85623931cf", size = 2819058 },
1167
+ { url = "https://files.pythonhosted.org/packages/36/aa/3626dfa09a0ecc5b57a8c58eeaeb7dd7ca9a37ad9dd681edab5acd55764c/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aaa852d23e125b73d283c98f007e06d4595732104b65402f46e8ef24b588d9f8", size = 3133278 },
1168
+ { url = "https://files.pythonhosted.org/packages/a4/4d/8fbc203838b3d26269f944a89459d94c858f5b3f9a9b6ee9728cdcf69161/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a21a15d5c8e603331b8a59548bbe113564136dc0f5ad8306dd5033459a226da0", size = 3144253 },
1169
+ { url = "https://files.pythonhosted.org/packages/d8/1b/2bd062adeb7c7511b847b32e356024980c0ffcf35f28947792c2d8ad2288/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2fdbd4c067c60a0ac7eca14b6bd18a5bebace54eb757c706b47ea93204f7a37c", size = 3398225 },
1170
+ { url = "https://files.pythonhosted.org/packages/8a/63/38be071b0c8e06840bc6046991636bcb30c27f6bb1e670f4f4bc87cf49cc/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2dd9a0061e403546f7377df940e866c3e678d7d4e9643d0461ea442b4f89e61a", size = 3038874 },
1171
+ { url = "https://files.pythonhosted.org/packages/ec/83/afa94193c09246417c23a3c75a8a0a96bf44ab5630a3015538d0c316dd4b/tokenizers-0.21.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:db9484aeb2e200c43b915a1a0150ea885e35f357a5a8fabf7373af333dcc8dbf", size = 9014448 },
1172
+ { url = "https://files.pythonhosted.org/packages/ae/b3/0e1a37d4f84c0f014d43701c11eb8072704f6efe8d8fc2dcdb79c47d76de/tokenizers-0.21.1-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:ed248ab5279e601a30a4d67bdb897ecbe955a50f1e7bb62bd99f07dd11c2f5b6", size = 8937877 },
1173
+ { url = "https://files.pythonhosted.org/packages/ac/33/ff08f50e6d615eb180a4a328c65907feb6ded0b8f990ec923969759dc379/tokenizers-0.21.1-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:9ac78b12e541d4ce67b4dfd970e44c060a2147b9b2a21f509566d556a509c67d", size = 9186645 },
1174
+ { url = "https://files.pythonhosted.org/packages/5f/aa/8ae85f69a9f6012c6f8011c6f4aa1c96154c816e9eea2e1b758601157833/tokenizers-0.21.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:e5a69c1a4496b81a5ee5d2c1f3f7fbdf95e90a0196101b0ee89ed9956b8a168f", size = 9384380 },
1175
+ { url = "https://files.pythonhosted.org/packages/e8/5b/a5d98c89f747455e8b7a9504910c865d5e51da55e825a7ae641fb5ff0a58/tokenizers-0.21.1-cp39-abi3-win32.whl", hash = "sha256:1039a3a5734944e09de1d48761ade94e00d0fa760c0e0551151d4dd851ba63e3", size = 2239506 },
1176
+ { url = "https://files.pythonhosted.org/packages/e6/b6/072a8e053ae600dcc2ac0da81a23548e3b523301a442a6ca900e92ac35be/tokenizers-0.21.1-cp39-abi3-win_amd64.whl", hash = "sha256:0f0dcbcc9f6e13e675a66d7a5f2f225a736745ce484c1a4e07476a89ccdad382", size = 2435481 },
1177
+ ]
1178
+
1179
  [[package]]
1180
  name = "torch"
1181
  version = "2.0.1"
 
1305
  { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540 },
1306
  ]
1307
 
1308
+ [[package]]
1309
+ name = "transformers"
1310
+ version = "4.49.0"
1311
+ source = { registry = "https://pypi.org/simple" }
1312
+ dependencies = [
1313
+ { name = "filelock" },
1314
+ { name = "huggingface-hub" },
1315
+ { name = "numpy" },
1316
+ { name = "packaging" },
1317
+ { name = "pyyaml" },
1318
+ { name = "regex" },
1319
+ { name = "requests" },
1320
+ { name = "safetensors" },
1321
+ { name = "tokenizers" },
1322
+ { name = "tqdm" },
1323
+ ]
1324
+ sdist = { url = "https://files.pythonhosted.org/packages/79/50/46573150944f46df8ec968eda854023165a84470b42f69f67c7d475dabc5/transformers-4.49.0.tar.gz", hash = "sha256:7e40e640b5b8dc3f48743f5f5adbdce3660c82baafbd3afdfc04143cdbd2089e", size = 8610952 }
1325
+ wheels = [
1326
+ { url = "https://files.pythonhosted.org/packages/20/37/1f29af63e9c30156a3ed6ebc2754077016577c094f31de7b2631e5d379eb/transformers-4.49.0-py3-none-any.whl", hash = "sha256:6b4fded1c5fee04d384b1014495b4235a2b53c87503d7d592423c06128cbbe03", size = 9970275 },
1327
+ ]
1328
+
1329
  [[package]]
1330
  name = "triton"
1331
  version = "3.2.0"