Remove useless
parent
0cd5482eaf
commit
65743ba1b9
|
|
@ -1,253 +0,0 @@
|
|||
# Copyright (c) 2021-2022, NVIDIA CORPORATION. All rights reserved.
|
||||
# Modified by Brendan Dolan-Gavitt, 2022
|
||||
# Modified by Meng Zhang, 2023
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import argparse
|
||||
import configparser
|
||||
import multiprocessing
|
||||
import os
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
import numpy as np
|
||||
import torch
|
||||
from transformers import GPTJForCausalLM
|
||||
|
||||
dir_path = os.path.dirname(os.path.realpath(__file__))
|
||||
sys.path.append(dir_path + "/../../../..")
|
||||
sys.path.append(dir_path)
|
||||
|
||||
|
||||
def get_weight_data_type(data_type):
|
||||
if data_type == "fp32":
|
||||
return np.float32
|
||||
elif data_type == "fp16":
|
||||
return np.float16
|
||||
else:
|
||||
assert False, f"Invalid weight data type {data_type}"
|
||||
|
||||
|
||||
def split_and_convert_process(i, saved_dir, factor, key, val):
|
||||
if (
|
||||
key.find("input_layernorm.weight") != -1
|
||||
or key.find("input_layernorm.bias") != -1
|
||||
or key.find("attention.dense.bias") != -1
|
||||
or key.find("post_attention_layernorm.weight") != -1
|
||||
or key.find("post_attention_layernorm.bias") != -1
|
||||
or key.find("mlp.dense_4h_to_h.bias") != -1
|
||||
or key.find("final_layernorm.weight") != -1
|
||||
or key.find("final_layernorm.bias") != -1
|
||||
):
|
||||
|
||||
# shared weights, only need to convert the weights of rank 0
|
||||
if i == 0:
|
||||
saved_path = saved_dir + "/model." + key + ".bin"
|
||||
val.tofile(saved_path)
|
||||
|
||||
elif (
|
||||
key.find("attention.dense.weight") != -1
|
||||
or key.find("mlp.dense_4h_to_h.weight") != -1
|
||||
):
|
||||
split_vals = np.split(val, factor, axis=0)
|
||||
for j in range(factor):
|
||||
saved_path = saved_dir + "/model." + key + ".%d.bin" % (i * factor + j)
|
||||
split_vals[j].tofile(saved_path)
|
||||
|
||||
elif (
|
||||
key.find("mlp.dense_h_to_4h.weight") != -1
|
||||
or key.find("mlp.dense_h_to_4h.bias") != -1
|
||||
):
|
||||
|
||||
split_vals = np.split(val, factor, axis=-1)
|
||||
for j in range(factor):
|
||||
saved_path = saved_dir + "/model." + key + ".%d.bin" % (i * factor + j)
|
||||
split_vals[j].tofile(saved_path)
|
||||
|
||||
elif key.find("attention.query_key_value.weight") != -1:
|
||||
split_vals = np.split(val, factor, axis=-1)
|
||||
|
||||
for j in range(factor):
|
||||
saved_path = saved_dir + "/model." + key + ".%d.bin" % (i * factor + j)
|
||||
split_vals[j].tofile(saved_path)
|
||||
|
||||
else:
|
||||
print("[ERROR] cannot find key '{}'".format(key))
|
||||
|
||||
|
||||
def split_and_convert(args):
|
||||
saved_dir = args.saved_dir + "/%d-gpu/" % args.infer_gpu_num
|
||||
|
||||
if os.path.exists(saved_dir) is False:
|
||||
os.makedirs(saved_dir)
|
||||
|
||||
t_gpu_num = args.trained_gpu_num
|
||||
i_gpu_num = args.infer_gpu_num
|
||||
assert i_gpu_num % t_gpu_num == 0
|
||||
|
||||
factor = (int)(i_gpu_num / t_gpu_num)
|
||||
|
||||
model = GPTJForCausalLM.from_pretrained(args.in_file)
|
||||
|
||||
try:
|
||||
config = configparser.ConfigParser()
|
||||
config["gpt"] = {}
|
||||
for key in vars(args):
|
||||
config["gpt"][key] = f"{vars(args)[key]}"
|
||||
for k, v in vars(model.config).items():
|
||||
config["gpt"][k] = f"{v}"
|
||||
config["gpt"]["weight_data_type"] = args.weight_data_type
|
||||
with open((Path(saved_dir) / "config.ini").as_posix(), "w") as configfile:
|
||||
config.write(configfile)
|
||||
except Exception:
|
||||
print("Fail to save the config in config.ini.")
|
||||
np_weight_data_type = get_weight_data_type(args.weight_data_type)
|
||||
|
||||
huggingface_model_name_pattern = [
|
||||
"ln_1.bias",
|
||||
"ln_1.weight",
|
||||
"attn.q_proj.weight",
|
||||
"attn.out_proj.weight",
|
||||
"mlp.fc_in.bias",
|
||||
"mlp.fc_in.weight",
|
||||
"mlp.fc_out.bias",
|
||||
"mlp.fc_out.weight",
|
||||
]
|
||||
|
||||
ft_model_name_pattern = [
|
||||
"input_layernorm.bias",
|
||||
"input_layernorm.weight",
|
||||
"attention.query_key_value.weight",
|
||||
"attention.dense.weight",
|
||||
"mlp.dense_h_to_4h.bias",
|
||||
"mlp.dense_h_to_4h.weight",
|
||||
"mlp.dense_4h_to_h.bias",
|
||||
"mlp.dense_4h_to_h.weight",
|
||||
]
|
||||
|
||||
torch.multiprocessing.set_start_method("spawn")
|
||||
pool = multiprocessing.Pool(args.processes)
|
||||
for name, param in model.named_parameters():
|
||||
if name.find("weight") == -1 and name.find("bias") == -1:
|
||||
continue
|
||||
print(name)
|
||||
if name == "transformer.wte.weight":
|
||||
param.detach().cpu().numpy().astype(np_weight_data_type).tofile(
|
||||
saved_dir + "model.wte.bin"
|
||||
)
|
||||
elif name == "transformer.ln_f.bias":
|
||||
param.detach().cpu().numpy().astype(np_weight_data_type).tofile(
|
||||
saved_dir + "model.final_layernorm.bias.bin"
|
||||
)
|
||||
elif name == "transformer.ln_f.weight":
|
||||
param.detach().cpu().numpy().astype(np_weight_data_type).tofile(
|
||||
saved_dir + "model.final_layernorm.weight.bin"
|
||||
)
|
||||
elif name == "lm_head.weight":
|
||||
param.detach().cpu().numpy().astype(np_weight_data_type).tofile(
|
||||
saved_dir + "model.lm_head.weight.bin"
|
||||
)
|
||||
elif name == "lm_head.bias":
|
||||
param.detach().cpu().numpy().astype(np_weight_data_type).tofile(
|
||||
saved_dir + "model.lm_head.bias.bin"
|
||||
)
|
||||
else:
|
||||
for i in range(len(huggingface_model_name_pattern)):
|
||||
if name.find(huggingface_model_name_pattern[i]) != -1:
|
||||
# Special case for QKV weights
|
||||
if name.find("attn.q_proj.weight") != -1:
|
||||
layer = name.split(".")[2]
|
||||
base_k = f"transformer.h.{layer}."
|
||||
w = model.state_dict()
|
||||
QKV_w = torch.stack(
|
||||
[
|
||||
w[base_k + "attn.q_proj.weight"],
|
||||
w[base_k + "attn.k_proj.weight"],
|
||||
w[base_k + "attn.v_proj.weight"],
|
||||
]
|
||||
) # [qkv, n_heads * dim_head, latent_space]
|
||||
QKV_w = QKV_w.permute(2, 0, 1)
|
||||
weights = (
|
||||
QKV_w.detach().cpu().numpy().astype(np_weight_data_type)
|
||||
)
|
||||
else:
|
||||
weights = (
|
||||
param.detach().cpu().numpy().astype(np_weight_data_type)
|
||||
)
|
||||
|
||||
# Some weights need to be transposed
|
||||
if (
|
||||
name.find("mlp.fc_in.weight") != -1
|
||||
or name.find("mlp.fc_out.weight") != -1
|
||||
or name.find("attn.out_proj.weight") != -1
|
||||
):
|
||||
weights = weights.T
|
||||
|
||||
new_name = name.replace("transformer.h.", "layers.").replace(
|
||||
huggingface_model_name_pattern[i], ft_model_name_pattern[i]
|
||||
)
|
||||
|
||||
pool.starmap(
|
||||
split_and_convert_process,
|
||||
[(0, saved_dir, factor, new_name, weights)],
|
||||
)
|
||||
|
||||
pool.close()
|
||||
pool.join()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter)
|
||||
parser.add_argument(
|
||||
"-saved_dir", "-o", type=str, help="file name of output file", required=True
|
||||
)
|
||||
parser.add_argument(
|
||||
"-in_file", "-i", type=str, help="HF model name or directory", required=True
|
||||
)
|
||||
parser.add_argument(
|
||||
"-trained_gpu_num",
|
||||
"-t_g",
|
||||
type=int,
|
||||
help="How many gpus for training",
|
||||
default=1,
|
||||
)
|
||||
parser.add_argument(
|
||||
"-infer_gpu_num",
|
||||
"-i_g",
|
||||
type=int,
|
||||
help="How many gpus for inference",
|
||||
required=True,
|
||||
)
|
||||
parser.add_argument(
|
||||
"-processes",
|
||||
"-p",
|
||||
type=int,
|
||||
help="How many processes to spawn for conversion (default: 4)",
|
||||
default=4,
|
||||
)
|
||||
parser.add_argument(
|
||||
"-weight_data_type",
|
||||
type=str,
|
||||
default="fp32",
|
||||
choices=["fp32", "fp16"],
|
||||
help="output weight data type",
|
||||
)
|
||||
|
||||
args = parser.parse_args()
|
||||
print("\n=============== Argument ===============")
|
||||
for key in vars(args):
|
||||
print("{}: {}".format(key, vars(args)[key]))
|
||||
print("========================================")
|
||||
|
||||
split_and_convert(args)
|
||||
|
|
@ -1,86 +0,0 @@
|
|||
[gpt]
|
||||
saved_dir = out
|
||||
in_file = hf-internal-testing/tiny-random-gptj
|
||||
trained_gpu_num = 1
|
||||
infer_gpu_num = 1
|
||||
processes = 4
|
||||
weight_data_type = fp32
|
||||
vocab_size = 1000
|
||||
n_positions = 512
|
||||
n_embd = 32
|
||||
n_layer = 5
|
||||
n_head = 4
|
||||
n_inner = None
|
||||
rotary_dim = 4
|
||||
activation_function = gelu_new
|
||||
resid_pdrop = 0.0
|
||||
embd_pdrop = 0.0
|
||||
attn_pdrop = 0.0
|
||||
layer_norm_epsilon = 1e-05
|
||||
initializer_range = 0.02
|
||||
use_cache = True
|
||||
bos_token_id = 98
|
||||
eos_token_id = 98
|
||||
return_dict = True
|
||||
output_hidden_states = False
|
||||
output_attentions = False
|
||||
torchscript = False
|
||||
torch_dtype = None
|
||||
use_bfloat16 = False
|
||||
tf_legacy_loss = False
|
||||
pruned_heads = {}
|
||||
tie_word_embeddings = False
|
||||
is_encoder_decoder = False
|
||||
is_decoder = False
|
||||
cross_attention_hidden_size = None
|
||||
add_cross_attention = False
|
||||
tie_encoder_decoder = False
|
||||
max_length = 20
|
||||
min_length = 0
|
||||
do_sample = False
|
||||
early_stopping = False
|
||||
num_beams = 1
|
||||
num_beam_groups = 1
|
||||
diversity_penalty = 0.0
|
||||
temperature = 1.0
|
||||
top_k = 50
|
||||
top_p = 1.0
|
||||
typical_p = 1.0
|
||||
repetition_penalty = 1.0
|
||||
length_penalty = 1.0
|
||||
no_repeat_ngram_size = 0
|
||||
encoder_no_repeat_ngram_size = 0
|
||||
bad_words_ids = None
|
||||
num_return_sequences = 1
|
||||
chunk_size_feed_forward = 0
|
||||
output_scores = False
|
||||
return_dict_in_generate = False
|
||||
forced_bos_token_id = None
|
||||
forced_eos_token_id = None
|
||||
remove_invalid_values = False
|
||||
exponential_decay_length_penalty = None
|
||||
suppress_tokens = None
|
||||
begin_suppress_tokens = None
|
||||
architectures = None
|
||||
finetuning_task = None
|
||||
id2label = {0: 'LABEL_0', 1: 'LABEL_1'}
|
||||
label2id = {'LABEL_0': 0, 'LABEL_1': 1}
|
||||
tokenizer_class = None
|
||||
prefix = None
|
||||
pad_token_id = 98
|
||||
sep_token_id = None
|
||||
decoder_start_token_id = None
|
||||
task_specific_params = None
|
||||
problem_type = None
|
||||
_name_or_path = hf-internal-testing/tiny-random-gptj
|
||||
_commit_hash = b96595a4bcdeb272096214589efa0314259853a0
|
||||
transformers_version = 4.11.0.dev0
|
||||
attention_probs_dropout_prob = 0.0
|
||||
gradient_checkpointing = False
|
||||
hidden_act = gelu
|
||||
hidden_dropout_prob = 0.0
|
||||
intermediate_size = 37
|
||||
model_type = gptj
|
||||
n_ctx = 512
|
||||
scale_attn_weights = True
|
||||
type_vocab_size = 16
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:38723a2e5e8a17aa7950dc008209944e898f69a7bd10a23c839d341e935fd5ca
|
||||
size 128
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b638277a8690e175a9137feff1e43c067f9faf4e2f600caf468fb05b0403b717
|
||||
size 128
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:125bd07dc5e7a5c6444f7689ba78df0f4c7959b6dcfbaf7c89edd0634a147ea0
|
||||
size 4096
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:11fd52f2b94fad5fe54e2e03c5848050703ec4d798a43a4c1813f109a6703883
|
||||
size 12288
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:38723a2e5e8a17aa7950dc008209944e898f69a7bd10a23c839d341e935fd5ca
|
||||
size 128
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b638277a8690e175a9137feff1e43c067f9faf4e2f600caf468fb05b0403b717
|
||||
size 128
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:38723a2e5e8a17aa7950dc008209944e898f69a7bd10a23c839d341e935fd5ca
|
||||
size 128
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c7459667751237cef87ba33e5faf46e82ea33f7f53aaae7bf95a8667b6f9e639
|
||||
size 16384
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:076a27c79e5ace2a3d47f9dd2e83e4ff6ea8872b3c2218f66c92b89b55f36560
|
||||
size 512
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:55de52e2d73e7e92962bc02673a7dce6123d77e486ac4f8ce7bead1a6727d227
|
||||
size 16384
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ec12f3d7c73cbc440b476ad66bb4a1ef43881c4d740e8114dc1578bb0197a17e
|
||||
size 4096
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:86d3c23c240260084ac27bd98d52524f0b3559d8106839d85bc927b44750bd81
|
||||
size 12288
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:38723a2e5e8a17aa7950dc008209944e898f69a7bd10a23c839d341e935fd5ca
|
||||
size 128
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b638277a8690e175a9137feff1e43c067f9faf4e2f600caf468fb05b0403b717
|
||||
size 128
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:38723a2e5e8a17aa7950dc008209944e898f69a7bd10a23c839d341e935fd5ca
|
||||
size 128
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:75338924b49fb652d556c260013520b58ca70c8bd782bf59732c5ca8d1de111d
|
||||
size 16384
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:076a27c79e5ace2a3d47f9dd2e83e4ff6ea8872b3c2218f66c92b89b55f36560
|
||||
size 512
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:be97681ddf43d42ee25d0439c6958edac3549b0edda8a4e3e8bce4275916bb7c
|
||||
size 16384
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:52bfbb09f85dba050a997ddd1869ae74aa8e76a70a63fd4b7c047531128bec07
|
||||
size 4096
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:869b24c7a494832730ba41e0286966b23e700e4239d39198e78551a7ef5e8d7f
|
||||
size 12288
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:38723a2e5e8a17aa7950dc008209944e898f69a7bd10a23c839d341e935fd5ca
|
||||
size 128
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b638277a8690e175a9137feff1e43c067f9faf4e2f600caf468fb05b0403b717
|
||||
size 128
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:38723a2e5e8a17aa7950dc008209944e898f69a7bd10a23c839d341e935fd5ca
|
||||
size 128
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:029775363050d9e4c232301274a8085474ca7992a42cabc1112ff46938c5a178
|
||||
size 16384
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:076a27c79e5ace2a3d47f9dd2e83e4ff6ea8872b3c2218f66c92b89b55f36560
|
||||
size 512
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:95beee5255e9d3d5d255ebc6d3f18465e1ab005b7e33e3d0d6495eb7a6178eed
|
||||
size 16384
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7af1303e224fc1185c5d936ca8fb3ab336e46f1bd09c94f1e749936d0b023713
|
||||
size 4096
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:55961585790611913b727f6043af3589274c4b2350ea68bcacf25009e750cc37
|
||||
size 12288
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:38723a2e5e8a17aa7950dc008209944e898f69a7bd10a23c839d341e935fd5ca
|
||||
size 128
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b638277a8690e175a9137feff1e43c067f9faf4e2f600caf468fb05b0403b717
|
||||
size 128
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:38723a2e5e8a17aa7950dc008209944e898f69a7bd10a23c839d341e935fd5ca
|
||||
size 128
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9f37f3e28a6e716d08d29d02126854bd6e6248763b9a30af2f2e1dcf7b8fd9a5
|
||||
size 16384
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:076a27c79e5ace2a3d47f9dd2e83e4ff6ea8872b3c2218f66c92b89b55f36560
|
||||
size 512
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d903dfb50cce4eae673a2d96a7814353ac1436c0c4d65490bb3ed7d8f8cfc586
|
||||
size 16384
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:cb76390eda7af1d23d5b162446b4c5da0b791ec337d20d9a643b9716377ae514
|
||||
size 4096
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8f54ff65f519de2db6343ec257da92091162381082fbb5dba04df50d8e12a158
|
||||
size 12288
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:38723a2e5e8a17aa7950dc008209944e898f69a7bd10a23c839d341e935fd5ca
|
||||
size 128
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b638277a8690e175a9137feff1e43c067f9faf4e2f600caf468fb05b0403b717
|
||||
size 128
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:38723a2e5e8a17aa7950dc008209944e898f69a7bd10a23c839d341e935fd5ca
|
||||
size 128
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:67e7225a2de28f7e21a72b7ea1cab517071744c53d13f4c6964cbc27f4d261e4
|
||||
size 16384
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:076a27c79e5ace2a3d47f9dd2e83e4ff6ea8872b3c2218f66c92b89b55f36560
|
||||
size 512
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:cb7582613a3b40b73ac166af2e6b9773511cf6fba7bec12f340119f588c8ea48
|
||||
size 16384
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fc19b1997119425765295aeab72d76faa6927d4f83985d328c26f20468d6cc76
|
||||
size 4000
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:884fae8e52776e900d3800048825503048c95ab2850c38c1a595c6da962d3286
|
||||
size 128000
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d0d0fec061d1987d0f19acbd319c3471037691cebecd5aa2b00cedcdc2c6177c
|
||||
size 128000
|
||||
Loading…
Reference in New Issue