commit 415160900ced2f791a90aca4645a65741a6f8ca3 Author: ModelHub XC Date: Tue May 5 15:03:36 2026 +0800 初始化项目,由ModelHub XC社区提供模型 Model: MTSAIR/Kodify-Nano Source: Original Platform diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..460eed9 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,52 @@ +*.7z filter=lfs diff=lfs merge=lfs -text +*.arrow filter=lfs diff=lfs merge=lfs -text +*.bin filter=lfs diff=lfs merge=lfs -text +*.bin.* filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.ftz filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.h5 filter=lfs diff=lfs merge=lfs -text +*.joblib filter=lfs diff=lfs merge=lfs -text +*.lfs.* filter=lfs diff=lfs merge=lfs -text +*.model filter=lfs diff=lfs merge=lfs -text +*.msgpack filter=lfs diff=lfs merge=lfs -text +*.onnx filter=lfs diff=lfs merge=lfs -text +*.ot filter=lfs diff=lfs merge=lfs -text +*.parquet filter=lfs diff=lfs merge=lfs -text +*.pb filter=lfs diff=lfs merge=lfs -text +*.pt filter=lfs diff=lfs merge=lfs -text +*.pth filter=lfs diff=lfs merge=lfs -text +*.rar filter=lfs diff=lfs merge=lfs -text +saved_model/**/* filter=lfs diff=lfs merge=lfs -text +*.tar.* filter=lfs diff=lfs merge=lfs -text +*.tflite filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zstandard filter=lfs diff=lfs merge=lfs -text +*.tfevents* filter=lfs diff=lfs merge=lfs -text +*.db* filter=lfs diff=lfs merge=lfs -text +*.ark* filter=lfs diff=lfs merge=lfs -text +**/*ckpt*data* filter=lfs diff=lfs merge=lfs -text +**/*ckpt*.meta filter=lfs diff=lfs merge=lfs -text +**/*ckpt*.index filter=lfs diff=lfs merge=lfs -text + +*.ckpt filter=lfs diff=lfs merge=lfs -text +*.gguf* filter=lfs diff=lfs merge=lfs -text +*.ggml filter=lfs diff=lfs merge=lfs -text +*.llamafile* filter=lfs diff=lfs merge=lfs -text +*.pt2 filter=lfs diff=lfs merge=lfs -text +*.mlmodel filter=lfs diff=lfs merge=lfs -text +*.npy filter=lfs diff=lfs merge=lfs -text +*.npz filter=lfs diff=lfs merge=lfs -text +*.pickle filter=lfs diff=lfs merge=lfs -text +*.pkl filter=lfs diff=lfs merge=lfs -text +*.tar filter=lfs diff=lfs merge=lfs -text +*.wasm filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text +*tfevents* filter=lfs diff=lfs merge=lfs -text + +merges.txt filter=lfs diff=lfs merge=lfs -text +tokenizer.json filter=lfs diff=lfs merge=lfs -text +vocab.json filter=lfs diff=lfs merge=lfs -text +model.safetensors filter=lfs diff=lfs merge=lfs -text \ No newline at end of file diff --git a/Apache License MTS AI.docx b/Apache License MTS AI.docx new file mode 100644 index 0000000..e57046a Binary files /dev/null and b/Apache License MTS AI.docx differ diff --git a/README.md b/README.md new file mode 100644 index 0000000..2cb0f08 --- /dev/null +++ b/README.md @@ -0,0 +1,284 @@ +--- +library_name: transformers +language: +- ru +- en +pipeline_tag: text-generation +license: apache-2.0 +license_name: apache-2.0 +license_link: https://huggingface.co/MTSAIR/Kodify-Nano/blob/main/Apache%20License%20MTS%20AI.docx +--- + + + + +# Kodify-Nano 🤖 + +Kodify-Nano – это легковесная LLM, разработанная для выполнения задач разработки кода с минимальными ресурсами. Она оптимизирована для быстрого и эффективного взаимодействия с пользователями, обеспечивая высокую производительность даже в условиях ограниченных ресурсов. + +Kodify-Nano is a lightweight LLM designed for code development tasks with minimal resource usage. It is optimized for fast and efficient interaction, delivering high performance even in resource-constrained environments. + +## Inference with vLLM +```bash +python3 -m vllm.entrypoints.openai.api_server --model MTSAIR/Kodify-Nano --port 8985 +``` + +> **Important!** If you encounter the **"CUDA out of memory. Tried to allocate..."** error despite having sufficient GPU memory, try one of these solutions: +> 1. Add the --enforce-eager argument +> 2. Reduce GPU memory utilization (for example --gpu-memory-utilization 0.8) +> +> Note: This may decrease model performance. + +--- + +## Using the Ollama Image +You can run Kodify Nano on OLLAMA in two ways: + +1. **Using Docker** +2. **Locally** (provides faster responses than Docker) + +### Method 1: Running Kodify Nano on OLLAMA in Docker + +#### Without NVIDIA GPU: + +```bash +docker run -e OLLAMA_HOST=0.0.0.0:8985 -p 8985:8985 --name ollama -d ollama/ollama +``` + +#### With NVIDIA GPU: + +```bash +docker run --runtime nvidia -e OLLAMA_HOST=0.0.0.0:8985 -p 8985:8985 --name ollama -d ollama/ollama +``` + +> **Important:** +> - Ensure Docker is installed and running +> - If port 8985 is occupied, replace it with any available port and update plugin configuration + +#### Load the model: + +```bash +docker exec ollama ollama pull hf.co/MTSAIR/Kodify-Nano-GGUF +``` + +#### Rename the model: +```bash +docker exec ollama ollama cp hf.co/MTSAIR/Kodify-Nano-GGUF kodify_nano +``` + +#### Start the model: + +```bash +docker exec ollama ollama run kodify_nano +``` +--- + +### Method 2: Local Kodify Nano on OLLAMA + +1. **Download OLLAMA:** +https://ollama.com/download + +2. **Set the port:** + +```bash +export OLLAMA_HOST=0.0.0.0:8985 +``` + +> **Note:** If port 8985 is occupied, replace it and update plugin configuration + +3. **Start OLLAMA server:** + +```bash +ollama serve & +``` + +4. **Download the model:** + +```bash +ollama pull hf.co/MTSAIR/Kodify-Nano-GGUF +``` + +5. **Rename the model:** + +```bash +ollama cp hf.co/MTSAIR/Kodify-Nano-GGUF kodify_nano +``` + +6. **Run the model:** + +```bash +ollama run kodify_nano +``` + +## Plugin Installation + +### For Visual Studio Code + +1. Download the [latest Kodify plugin](https://mts.ai/ru/product/kodify/?utm_source=huggingface&utm_medium=pr&utm_campaign=post#models) for VS Code. +2. Open the **Extensions** panel on the left sidebar. +3. Click **Install from VSIX...** and select the downloaded plugin file. + +### For JetBrains IDEs + +1. Download the [latest Kodify plugin](https://mts.ai/ru/product/kodify/?utm_source=huggingface&utm_medium=pr&utm_campaign=post#models) for JetBrains. +2. Open the IDE and go to **Settings > Plugins**. +3. Click the gear icon (⚙️) and select **Install Plugin from Disk...**. +4. Choose the downloaded plugin file. +5. Restart the IDE when prompted. + +--- + +### Changing the Port in Plugin Settings (for Visual Studio Code and JetBrains) + +If you changed the Docker port from `8985`, update the plugin's `config.json`: + +1. Open any file in the IDE. +2. Open the Kodify sidebar: + - **VS Code**: `Ctrl+L` (`Cmd+L` on Mac). + - **JetBrains**: `Ctrl+J` (`Cmd+J` on Mac). +3. Access the `config.json` file: + - **Method 1**: Click **Open Settings** (VS Code) or **Kodify Config** (JetBrains), then navigate to **Configuration > Chat Settings > Open Config File**. + - **Method 2**: Click the gear icon (⚙️) in the Kodify sidebar. +4. Modify the `apiBase` port under `tabAutocompleteModel` and `models`. +5. Save the file (`Ctrl+S` or **File > Save**). + +--- + + +### Example API Request +```python +import openai + +openai.api_key = 'xxx' # Replace with your key +openai.api_base = 'http://localhost:8985/v1' # Update if port changed + +response = openai.ChatCompletion.create( + model="MTSAIR/Kodify-Nano", + temperature=0.4, + max_tokens=2048, + top_p=0.8, + messages=[ + {"role": "user", "content": "Write a Python algorithm to find all unique words in a text."} + ] +) + +print(response["choices"][0]["message"]["content"]) + +### Inference with Hugging Face + +from transformers import pipeline + +pipe = pipeline("text-generation", model="MTSAIR/Kodify-Nano", device="cuda") + +messages = [ + {"role": "user", "content": "Write a Python algorithm to find all unique words in a text."}, +] + +response = pipe(messages, max_length=1024) +print(response[0]['generated_text'][-1]['content']) +``` +--- + +## Example Interaction + +**User Request:** +*Напиши простой сервер на flask с объяснениями на русском языке.* + +#### Kodify-Nano response: + +>Конечно! Давайте создадим простой сервер на Flask с объяснениями на русском языке. Flask - это мини-модуль для создания веб-приложений на Python, который позволяет быстро и легко разрабатывать приложения с использованием библиотеки Werkzeug. + +>### Установка Flask + +>Для начала, убедитесь, что у вас установлен Python. После этого установите Flask с помощью pip: + +>```sh +>pip install Flask +>``` + +>### Пример простого сервера на Flask + +>Вот пример простого приложения на Flask, которое будет отвечать на запросы на `/hello` и выводить "Hello, World!". + +>1. Создайте новый файл, например, `app.py`. +>2. Откройте файл в текстовом редакторе и вставьте следующий код: + +>```python +>from flask import Flask + +>app = Flask(__name__) + +>@app.route('/hello') +>def hello_world(): +> return 'Hello, World!' + +>if __name__ == '__main__': +> app.run(debug=True) +>``` + +>### Объяснение кода + +>1. **Импорт Flask**: Мы импортируем класс Flask из модуля `flask`. +>2. **Создание экземпляра Flask**: Создаем экземпляр класса Flask с именем `app`. +>3. **Обработчик запросов**: Мы декорируем функцию `hello_world` с помощью `@app.route('/hello')`. Это означает, что при запросе на `/hello` Flask вызовет функцию `hello_world`. +>4. **Возвращение ответа**: Функция `hello_world` возвращает строку `'Hello, World!'`. +>5. **Запуск сервера**: В конце файла добавляем проверку, чтобы при запуске скрипта он запускался в режиме отладки (`debug=True`). + +>### Запуск сервера + +>1. Откройте терминал и перейдите в директорию, в которой находится ваш файл `app.py`. +>2. Запустите скрипт с помощью команды: + +>```sh +>python app.py +>``` +> +>3. Вы увидите сообщение, что сервер запущен на порту 5000. Например: + +>``` +> * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) +>``` + +>4. Откройте браузер и перейдите на адрес `http://127.0.0.1:5000/hello`. Вы должны увидеть сообщение "Hello, World!". + +>### Дополнительные функции + +>Flask предоставляет множество других функций для создания более сложных приложений. Вот некоторые из них: + +>- **Функции маршрутизации**: Вы можете добавлять дополнительные маршруты, обрабатывать параметры запросов и т.д. +>- **Вьюшки**: Вы можете создавать вьюшки, которые возвращают HTML-страницы. +>- **Сессии**: Вы можете использовать сессии для хранения данных между запросами. +>- **БД**: Вы можете подключаться к базе данных и выполнять запросы. + +>Давайте рассмотрим пример с вьюшкой: + +>```python +>from flask import Flask, render_template + +>app = Flask(__name__) + +>@app.route('/') +>def index(): +> return render_template('index.html') + +>if __name__ == '__main__': +> app.run(debug=True) +>``` + +>1. **Вьюшка**: Создаем файл `templates/index.html` в папке `templates` (если он еще не существует) и добавляем следующий код: +> +>```html +> +> +> +> +> Пример вьюшки +> +> +>

Привет, мир!

+>

Это пример вьюшки на Flask.

+> +> +>``` + +>2. **Запуск сервера**: Сохраните файлы и запустите сервер снова. Откройте браузер и перейдите на адрес `http://127.0.0.1:5000/`. Вы должны увидеть HTML-страницу с текстом "Привет, мир!". \ No newline at end of file diff --git a/added_tokens.json b/added_tokens.json new file mode 100644 index 0000000..482ced4 --- /dev/null +++ b/added_tokens.json @@ -0,0 +1,24 @@ +{ + "": 151658, + "": 151657, + "<|box_end|>": 151649, + "<|box_start|>": 151648, + "<|endoftext|>": 151643, + "<|file_sep|>": 151664, + "<|fim_middle|>": 151660, + "<|fim_pad|>": 151662, + "<|fim_prefix|>": 151659, + "<|fim_suffix|>": 151661, + "<|im_end|>": 151645, + "<|im_start|>": 151644, + "<|image_pad|>": 151655, + "<|object_ref_end|>": 151647, + "<|object_ref_start|>": 151646, + "<|quad_end|>": 151651, + "<|quad_start|>": 151650, + "<|repo_name|>": 151663, + "<|video_pad|>": 151656, + "<|vision_end|>": 151653, + "<|vision_pad|>": 151654, + "<|vision_start|>": 151652 +} diff --git a/config.json b/config.json new file mode 100644 index 0000000..897f58a --- /dev/null +++ b/config.json @@ -0,0 +1,28 @@ +{ + "architectures": [ + "Qwen2ForCausalLM" + ], + "attention_dropout": 0.0, + "bos_token_id": 151643, + "eos_token_id": 151645, + "hidden_act": "silu", + "hidden_size": 1536, + "initializer_range": 0.02, + "intermediate_size": 8960, + "max_position_embeddings": 32768, + "max_window_layers": 28, + "model_type": "qwen2", + "num_attention_heads": 12, + "num_hidden_layers": 28, + "num_key_value_heads": 2, + "rms_norm_eps": 1e-06, + "rope_scaling": null, + "rope_theta": 1000000.0, + "sliding_window": null, + "tie_word_embeddings": true, + "torch_dtype": "bfloat16", + "transformers_version": "4.46.1", + "use_cache": true, + "use_sliding_window": false, + "vocab_size": 151936 +} diff --git a/configuration.json b/configuration.json new file mode 100644 index 0000000..bbeeda1 --- /dev/null +++ b/configuration.json @@ -0,0 +1 @@ +{"framework": "pytorch", "task": "text-generation", "allow_remote": true} \ No newline at end of file diff --git a/generation_config.json b/generation_config.json new file mode 100644 index 0000000..287455a --- /dev/null +++ b/generation_config.json @@ -0,0 +1,18 @@ +{ + "transformers_version": "4.46.3", + "temperature": 0.4, + "max_len": 8192, + "max_tokens": 4096, + "do_sample": true, + "presence_penalty": 0.0, + "frequency_penalty": 0.0, + "repetition_penalty": 1.0, + "top_p": 0.8, + "top_k": 20, + "n": 1, + "best_of": 1, + "seed": null, + "use_beam_search": false, + "length_penalty": 1.0, + "ignore_eos": false +} diff --git a/merges.txt b/merges.txt new file mode 100644 index 0000000..80c1a19 --- /dev/null +++ b/merges.txt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8831e4f1a044471340f7c0a83d7bd71306a5b867e95fd870f74d0c5308a904d5 +size 1671853 diff --git a/model.safetensors b/model.safetensors new file mode 100644 index 0000000..81974ae --- /dev/null +++ b/model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6801c76a437735f49dcfd41b5b1b08546b370a2cea60b234c2dae0a2a477d348 +size 3087467144 diff --git a/special_tokens_map.json b/special_tokens_map.json new file mode 100644 index 0000000..ac23c0a --- /dev/null +++ b/special_tokens_map.json @@ -0,0 +1,31 @@ +{ + "additional_special_tokens": [ + "<|im_start|>", + "<|im_end|>", + "<|object_ref_start|>", + "<|object_ref_end|>", + "<|box_start|>", + "<|box_end|>", + "<|quad_start|>", + "<|quad_end|>", + "<|vision_start|>", + "<|vision_end|>", + "<|vision_pad|>", + "<|image_pad|>", + "<|video_pad|>" + ], + "eos_token": { + "content": "<|im_end|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false + }, + "pad_token": { + "content": "<|endoftext|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false + } +} diff --git a/tokenizer.json b/tokenizer.json new file mode 100644 index 0000000..51ebb3b --- /dev/null +++ b/tokenizer.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c5ae00e602b8860cbd784ba82a8aa14e8feecec692e7076590d014d7b7fdafa +size 11421896 diff --git a/tokenizer_config.json b/tokenizer_config.json new file mode 100644 index 0000000..c3c77c6 --- /dev/null +++ b/tokenizer_config.json @@ -0,0 +1,210 @@ +{ + "add_bos_token": false, + "add_prefix_space": false, + "added_tokens_decoder": { + "151643": { + "content": "<|endoftext|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151644": { + "content": "<|im_start|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151645": { + "content": "<|im_end|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151646": { + "content": "<|object_ref_start|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151647": { + "content": "<|object_ref_end|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151648": { + "content": "<|box_start|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151649": { + "content": "<|box_end|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151650": { + "content": "<|quad_start|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151651": { + "content": "<|quad_end|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151652": { + "content": "<|vision_start|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151653": { + "content": "<|vision_end|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151654": { + "content": "<|vision_pad|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151655": { + "content": "<|image_pad|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151656": { + "content": "<|video_pad|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151657": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151658": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151659": { + "content": "<|fim_prefix|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151660": { + "content": "<|fim_middle|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151661": { + "content": "<|fim_suffix|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151662": { + "content": "<|fim_pad|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151663": { + "content": "<|repo_name|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151664": { + "content": "<|file_sep|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + } + }, + "additional_special_tokens": [ + "<|im_start|>", + "<|im_end|>", + "<|object_ref_start|>", + "<|object_ref_end|>", + "<|box_start|>", + "<|box_end|>", + "<|quad_start|>", + "<|quad_end|>", + "<|vision_start|>", + "<|vision_end|>", + "<|vision_pad|>", + "<|image_pad|>", + "<|video_pad|>" + ], + "bos_token": null, + "chat_template": "{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0]['role'] == 'system' %}\n {{- messages[0]['content'] }}\n {%- else %}\n {{- 'You are Kodify, created by MTS AI, you are a helpful assistant.' }}\n {%- endif %}\n {{- \"\\n\\n# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within XML tags:\\n\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n\\n\\nFor each function call, return a json object with function name and arguments within XML tags:\\n\\n{\\\"name\\\": , \\\"arguments\\\": }\\n<|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0]['role'] == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0]['content'] + '<|im_end|>\\n' }}\n {%- else %}\n {{- '<|im_start|>system\\nYou are Kodify, created by MTS AI. You are a helpful assistant.<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- for message in messages %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) or (message.role == \"assistant\" and not message.tool_calls) %}\n {{- '<|im_start|>' + message.role + '\\n' + message.content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role }}\n {%- if message.content %}\n {{- '\\n' + message.content }}\n {%- endif %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '\\n\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- '}\\n' }}\n {%- endfor %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n\\n' }}\n {{- message.content }}\n {{- '\\n' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}\n", + "clean_up_tokenization_spaces": false, + "eos_token": "<|im_end|>", + "errors": "replace", + "extra_special_tokens": {}, + "model_max_length": 32768, + "pad_token": "<|endoftext|>", + "padding_side": "left", + "split_special_tokens": false, + "tokenizer_class": "Qwen2Tokenizer", + "truncation_side": "left", + "unk_token": null +} diff --git a/vocab.json b/vocab.json new file mode 100644 index 0000000..6c49fc6 --- /dev/null +++ b/vocab.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910 +size 2776833