AutoAWQ icon indicating copy to clipboard operation
AutoAWQ copied to clipboard

ConnectionError: Couldn't reach 'mit-han-lab/pile-val-backup' on the Hub (ConnectTimeout)

Open xieziyi881 opened this issue 1 year ago • 16 comments

I guess it should be a network issue。I'm running inside a docker container,so how to handle it??Thanks ur advise image

xieziyi881 avatar Jun 18 '24 02:06 xieziyi881

这看起来像是网络问题,首先保证服务器可以链接hunggingface。此外你可以下载校准数据集并在本地加载进行处理。 这是我的处理函数 ,请你参考

    # 加载本地数据集 test 为 validation 数据 214670条
    data=load_from_disk(data_path)
    return [text for text in data["text"] if text.strip() != '' and len(text.split(' ')) > 20]
    
    # 或者 读取 解压后的jsonl文件
    # data=load_dataset("json",data_files='/data/djh/dataset/calib_dataset/pileval/val.jsonl')
    # return [text for text in data["text"] if text.strip() != '' and len(text.split(' ')) > 20]

#将数据转为list格式 送入量化函数

    calib_data=load_tulu_v2()
    quant_config = { "zero_point": args.zero_point, "q_group_size":args.q_group_size, "w_bit": args.w_bits, "version": "GEMM" }
    start = time.time()
    model.quantize(tokenizer, 
                   quant_config=quant_config, 
                   calib_data=calib_data
                   )

TulipDu avatar Jun 18 '24 07:06 TulipDu

这看起来像是网络问题,首先保证服务器可以链接hunggingface。此外你可以下载校准数据集并在本地加载进行处理。 这是我的处理函数 ,请你参考

    # 加载本地数据集 test 为 validation 数据 214670条
    data=load_from_disk(data_path)
    return [text for text in data["text"] if text.strip() != '' and len(text.split(' ')) > 20]
    
    # 或者 读取 解压后的jsonl文件
    # data=load_dataset("json",data_files='/data/djh/dataset/calib_dataset/pileval/val.jsonl')
    # return [text for text in data["text"] if text.strip() != '' and len(text.split(' ')) > 20]

#将数据转为list格式 送入量化函数

    calib_data=load_tulu_v2()
    quant_config = { "zero_point": args.zero_point, "q_group_size":args.q_group_size, "w_bit": args.w_bits, "version": "GEMM" }
    start = time.time()
    model.quantize(tokenizer, 
                   quant_config=quant_config, 
                   calib_data=calib_data
                   )

感谢你的回答,我稍后会尝试解决一下

xieziyi881 avatar Jun 18 '24 07:06 xieziyi881

这看起来像是网络问题,首先保证服务器可以链接hunggingface。此外你可以下载校准数据集并在本地加载进行处理。 这是我的处理函数 ,请你参考

    # 加载本地数据集 test 为 validation 数据 214670条
    data=load_from_disk(data_path)
    return [text for text in data["text"] if text.strip() != '' and len(text.split(' ')) > 20]
    
    # 或者 读取 解压后的jsonl文件
    # data=load_dataset("json",data_files='/data/djh/dataset/calib_dataset/pileval/val.jsonl')
    # return [text for text in data["text"] if text.strip() != '' and len(text.split(' ')) > 20]

#将数据转为list格式 送入量化函数

    calib_data=load_tulu_v2()
    quant_config = { "zero_point": args.zero_point, "q_group_size":args.q_group_size, "w_bit": args.w_bits, "version": "GEMM" }
    start = time.time()
    model.quantize(tokenizer, 
                   quant_config=quant_config, 
                   calib_data=calib_data
                   )

感谢你的回答,我稍后会尝试解决一下

加个qq,一起看看

najsword avatar Jun 25 '24 17:06 najsword

这看起来像是网络问题,首先保证服务器可以链接hunggingface。此外你可以下载校准数据集并在本地加载进行处理。 这是我的处理函数 ,请你参考

    # 加载本地数据集 test 为 validation 数据 214670条
    data=load_from_disk(data_path)
    return [text for text in data["text"] if text.strip() != '' and len(text.split(' ')) > 20]
    
    # 或者 读取 解压后的jsonl文件
    # data=load_dataset("json",data_files='/data/djh/dataset/calib_dataset/pileval/val.jsonl')
    # return [text for text in data["text"] if text.strip() != '' and len(text.split(' ')) > 20]

#将数据转为list格式 送入量化函数

    calib_data=load_tulu_v2()
    quant_config = { "zero_point": args.zero_point, "q_group_size":args.q_group_size, "w_bit": args.w_bits, "version": "GEMM" }
    start = time.time()
    model.quantize(tokenizer, 
                   quant_config=quant_config, 
                   calib_data=calib_data
                   )

感谢你的回答,我稍后会尝试解决一下

加个qq,一起看看

我已经解决了,只需要手动下载数据集down到本地即可

xieziyi881 avatar Jun 26 '24 01:06 xieziyi881

这看起来像是网络问题,首先保证服务器可以链接hunggingface。此外你可以下载校准数据集并在本地加载进行处理。 这是我的处理函数 ,请你参考

    # 加载本地数据集 test 为 validation 数据 214670条
    data=load_from_disk(data_path)
    return [text for text in data["text"] if text.strip() != '' and len(text.split(' ')) > 20]
    
    # 或者 读取 解压后的jsonl文件
    # data=load_dataset("json",data_files='/data/djh/dataset/calib_dataset/pileval/val.jsonl')
    # return [text for text in data["text"] if text.strip() != '' and len(text.split(' ')) > 20]

#将数据转为list格式 送入量化函数

    calib_data=load_tulu_v2()
    quant_config = { "zero_point": args.zero_point, "q_group_size":args.q_group_size, "w_bit": args.w_bits, "version": "GEMM" }
    start = time.time()
    model.quantize(tokenizer, 
                   quant_config=quant_config, 
                   calib_data=calib_data
                   )

感谢你的回答,我稍后会尝试解决一下

加个qq,一起看看

我已经解决了,只需要手动下载数据集down到本地即可

请问是这个数据集就可以吗:dataset = load_dataset("mit-han-lab/pile-val-backup", split="validation"), 能否给个下载地址。还有你是量化llama模型吗

najsword avatar Jun 26 '24 01:06 najsword

这看起来像是网络问题,首先保证服务器可以链接hunggingface。此外你可以下载校准数据集并在本地加载进行处理。 这是我的处理函数 ,请你参考

    # 加载本地数据集 test 为 validation 数据 214670条
    data=load_from_disk(data_path)
    return [text for text in data["text"] if text.strip() != '' and len(text.split(' ')) > 20]
    
    # 或者 读取 解压后的jsonl文件
    # data=load_dataset("json",data_files='/data/djh/dataset/calib_dataset/pileval/val.jsonl')
    # return [text for text in data["text"] if text.strip() != '' and len(text.split(' ')) > 20]

#将数据转为list格式 送入量化函数

    calib_data=load_tulu_v2()
    quant_config = { "zero_point": args.zero_point, "q_group_size":args.q_group_size, "w_bit": args.w_bits, "version": "GEMM" }
    start = time.time()
    model.quantize(tokenizer, 
                   quant_config=quant_config, 
                   calib_data=calib_data
                   )

感谢你的回答,我稍后会尝试解决一下

加个qq,一起看看

我已经解决了,只需要手动下载数据集down到本地即可

请问是这个数据集就可以吗:dataset = load_dataset("mit-han-lab/pile-val-backup", split="validation"), 能否给个下载地址。还有你是量化llama模型吗

数据集是huggingface上的mit-han-lab/pile-val-backup,这是我的量化代码`from awq import AutoAWQForCausalLM from transformers import AutoTokenizer

model_path = '/workspace/llama_meta' quant_path = '/workspace/awq_model' quant_config = { "zero_point": True, "q_group_size": 128, "w_bit": 4, "version": "GEMM" }

def load_tulu_v2(data): return [text for text in data['text'] if text.strip() != '' and len(text.split(' ')) > 20]

Load model

model = AutoAWQForCausalLM.from_pretrained( model_path, **{"low_cpu_mem_usage": True, "use_cache": False} ) tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)

#读取 解压后的jsonl文件 data=load_dataset("json",data_files='/workspace/data/val.jsonl')

calib_data = load_tulu_v2(data)

Quantize

calib_data=load_tulu_v2() model.quantize(tokenizer, quant_config=quant_config, calib_data=calib_data )

Save quantized model

model.save_quantized(quant_path) tokenizer.save_pretrained(quant_path)

print(f'Model is quantized and saved at "{quant_path}"')`

xieziyi881 avatar Jun 26 '24 01:06 xieziyi881

这看起来像是网络问题,首先保证服务器可以链接hunggingface。此外你可以下载校准数据集并在本地加载进行处理。 这是我的处理函数 ,请你参考

    # 加载本地数据集 test 为 validation 数据 214670条
    data=load_from_disk(data_path)
    return [text for text in data["text"] if text.strip() != '' and len(text.split(' ')) > 20]
    
    # 或者 读取 解压后的jsonl文件
    # data=load_dataset("json",data_files='/data/djh/dataset/calib_dataset/pileval/val.jsonl')
    # return [text for text in data["text"] if text.strip() != '' and len(text.split(' ')) > 20]

#将数据转为list格式 送入量化函数

    calib_data=load_tulu_v2()
    quant_config = { "zero_point": args.zero_point, "q_group_size":args.q_group_size, "w_bit": args.w_bits, "version": "GEMM" }
    start = time.time()
    model.quantize(tokenizer, 
                   quant_config=quant_config, 
                   calib_data=calib_data
                   )

感谢你的回答,我稍后会尝试解决一下

加个qq,一起看看

我已经解决了,只需要手动下载数据集down到本地即可

请问是这个数据集就可以吗:dataset = load_dataset("mit-han-lab/pile-val-backup", split="validation"), 能否给个下载地址。还有你是量化llama模型吗

数据集是huggingface上的mit-han-lab/pile-val-backup,这是我的量化代码`from awq import AutoAWQForCausalLM from transformers import AutoTokenizer

model_path = '/workspace/llama_meta' quant_path = '/workspace/awq_model' quant_config = { "zero_point": True, "q_group_size": 128, "w_bit": 4, "version": "GEMM" }

def load_tulu_v2(data): return [text for text in data['text'] if text.strip() != '' and len(text.split(' ')) > 20]

Load model

model = AutoAWQForCausalLM.from_pretrained( model_path, **{"low_cpu_mem_usage": True, "use_cache": False} ) tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)

#读取 解压后的jsonl文件 data=load_dataset("json",data_files='/workspace/data/val.jsonl')

calib_data = load_tulu_v2(data)

Quantize

calib_data=load_tulu_v2() model.quantize(tokenizer, quant_config=quant_config, calib_data=calib_data )

Save quantized model

model.save_quantized(quant_path) tokenizer.save_pretrained(quant_path)

print(f'Model is quantized and saved at "{quant_path}"')`

File "lib.pyx", line 2538, in pandas._libs.lib.maybe_convert_objects TypeError: Cannot convert numpy.ndarray to numpy.ndarray 你是llama3:8b-instruct模型吗, 还有dataset下载val.jsonl.zst后缀直接改成json格式吗

najsword avatar Jun 26 '24 02:06 najsword

直接解压就行

---Original--- From: @.> Date: Wed, Jun 26, 2024 10:14 AM To: @.>; Cc: @.@.>; Subject: Re: [casper-hansen/AutoAWQ] ConnectionError: Couldn't reach'mit-han-lab/pile-val-backup' on the Hub (ConnectTimeout) (Issue #506)

这看起来像是网络问题,首先保证服务器可以链接hunggingface。此外你可以下载校准数据集并在本地加载进行处理。 这是我的处理函数 ,请你参考 # 加载本地数据集 test 为 validation 数据 214670条 data=load_from_disk(data_path) return [text for text in data["text"] if text.strip() != '' and len(text.split(' ')) > 20] # 或者 读取 解压后的jsonl文件 # data=load_dataset("json",data_files='/data/djh/dataset/calib_dataset/pileval/val.jsonl') # return [text for text in data["text"] if text.strip() != '' and len(text.split(' ')) > 20]
#将数据转为list格式 送入量化函数 calib_data=load_tulu_v2() quant_config = { "zero_point": args.zero_point, "q_group_size":args.q_group_size, "w_bit": args.w_bits, "version": "GEMM" } start = time.time() model.quantize(tokenizer, quant_config=quant_config, calib_data=calib_data )
感谢你的回答,我稍后会尝试解决一下

加个qq,一起看看

我已经解决了,只需要手动下载数据集down到本地即可

请问是这个数据集就可以吗:dataset = load_dataset("mit-han-lab/pile-val-backup", split="validation"), 能否给个下载地址。还有你是量化llama模型吗

数据集是huggingface上的mit-han-lab/pile-val-backup,这是我的量化代码`from awq import AutoAWQForCausalLM from transformers import AutoTokenizer

model_path = '/workspace/llama_meta' quant_path = '/workspace/awq_model' quant_config = { "zero_point": True, "q_group_size": 128, "w_bit": 4, "version": "GEMM" }

def load_tulu_v2(data): return [text for text in data['text'] if text.strip() != '' and len(text.split(' ')) > 20]

Load model

model = AutoAWQForCausalLM.from_pretrained( model_path, **{"low_cpu_mem_usage": True, "use_cache": False} ) tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)

#读取 解压后的jsonl文件 data=load_dataset("json",data_files='/workspace/data/val.jsonl')

calib_data = load_tulu_v2(data)

Quantize

calib_data=load_tulu_v2() model.quantize(tokenizer, quant_config=quant_config, calib_data=calib_data )

Save quantized model

model.save_quantized(quant_path) tokenizer.save_pretrained(quant_path)

print(f'Model is quantized and saved at "{quant_path}"')`

File "lib.pyx", line 2538, in pandas._libs.lib.maybe_convert_objects TypeError: Cannot convert numpy.ndarray to numpy.ndarray 你是llama3:8b-instruct模型吗, 还有dataset下载val.jsonl.zst后缀直接改成json格式吗

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

xieziyi881 avatar Jun 26 '24 02:06 xieziyi881

直接解压就行 ---Original--- From: @.> Date: Wed, Jun 26, 2024 10:14 AM To: @.>; Cc: @.@.>; Subject: Re: [casper-hansen/AutoAWQ] ConnectionError: Couldn't reach'mit-han-lab/pile-val-backup' on the Hub (ConnectTimeout) (Issue #506) 这看起来像是网络问题,首先保证服务器可以链接hunggingface。此外你可以下载校准数据集并在本地加载进行处理。 这是我的处理函数 ,请你参考 # 加载本地数据集 test 为 validation 数据 214670条 data=load_from_disk(data_path) return [text for text in data["text"] if text.strip() != '' and len(text.split(' ')) > 20] # 或者 读取 解压后的jsonl文件 # data=load_dataset("json",data_files='/data/djh/dataset/calib_dataset/pileval/val.jsonl') # return [text for text in data["text"] if text.strip() != '' and len(text.split(' ')) > 20] #将数据转为list格式 送入量化函数 calib_data=load_tulu_v2() quant_config = { "zero_point": args.zero_point, "q_group_size":args.q_group_size, "w_bit": args.w_bits, "version": "GEMM" } start = time.time() model.quantize(tokenizer, quant_config=quant_config, calib_data=calib_data ) 感谢你的回答,我稍后会尝试解决一下 加个qq,一起看看 我已经解决了,只需要手动下载数据集down到本地即可 请问是这个数据集就可以吗:dataset = load_dataset("mit-han-lab/pile-val-backup", split="validation"), 能否给个下载地址。还有你是量化llama模型吗 数据集是huggingface上的mit-han-lab/pile-val-backup,这是我的量化代码from awq import AutoAWQForCausalLM from transformers import AutoTokenizer model_path = '/workspace/llama_meta' quant_path = '/workspace/awq_model' quant_config = { "zero_point": True, "q_group_size": 128, "w_bit": 4, "version": "GEMM" } def load_tulu_v2(data): return [text for text in data['text'] if text.strip() != '' and len(text.split(' ')) > 20] Load model model = AutoAWQForCausalLM.from_pretrained( model_path, **{"low_cpu_mem_usage": True, "use_cache": False} ) tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True) #读取 解压后的jsonl文件 data=load_dataset("json",data_files='/workspace/data/val.jsonl') calib_data = load_tulu_v2(data) Quantize calib_data=load_tulu_v2() model.quantize(tokenizer, quant_config=quant_config, calib_data=calib_data ) Save quantized model model.save_quantized(quant_path) tokenizer.save_pretrained(quant_path) print(f'Model is quantized and saved at "{quant_path}"') File "lib.pyx", line 2538, in pandas._libs.lib.maybe_convert_objects TypeError: Cannot convert numpy.ndarray to numpy.ndarray 你是llama3:8b-instruct模型吗, 还有dataset下载val.jsonl.zst后缀直接改成json格式吗 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

可以加个qq吗,你用的autoawq 0.25吗

najsword avatar Jun 26 '24 02:06 najsword

#读取 解压后的jsonl文件 data=load_dataset("json",data_files='/workspace/data/val.jsonl')

calib_data = load_tulu_v2(data)

==================== #读取 解压后的jsonl文件 data=load_dataset("json",data_files='/workspace/data/val.jsonl')

calib_data = load_tulu_v2(data) 这里加载后数据打印是这样的 DatasetDict({ train: Dataset({ features: ['text', 'meta'], num_rows: 214670 }) }) 怎么能直接传给 load_tulu_v2呢,还要什么步骤

najsword avatar Jun 26 '24 05:06 najsword

加我的Q吧2496032705

---Original--- From: @.> Date: Wed, Jun 26, 2024 13:11 PM To: @.>; Cc: @.@.>; Subject: Re: [casper-hansen/AutoAWQ] ConnectionError: Couldn't reach'mit-han-lab/pile-val-backup' on the Hub (ConnectTimeout) (Issue #506)

#读取 解压后的jsonl文件 data=load_dataset("json",data_files='/workspace/data/val.jsonl')

calib_data = load_tulu_v2(data)

==================== #读取 解压后的jsonl文件 data=load_dataset("json",data_files='/workspace/data/val.jsonl')

calib_data = load_tulu_v2(data) 这里加载后数据打印是这样的 DatasetDict({ train: Dataset({ features: ['text', 'meta'], num_rows: 214670 }) }) 怎么能直接传给 load_tulu_v2呢,还要什么步骤

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

xieziyi881 avatar Jun 26 '24 05:06 xieziyi881

#读取 解压后的jsonl文件 data=load_dataset("json",data_files='/workspace/data/val.jsonl') calib_data = load_tulu_v2(data)

==================== #读取 解压后的jsonl文件 data=load_dataset("json",data_files='/workspace/data/val.jsonl')

calib_data = load_tulu_v2(data) 这里加载后数据打印是这样的 DatasetDict({ train: Dataset({ features: ['text', 'meta'], num_rows: 214670 }) }) 怎么能直接传给 load_tulu_v2呢,还要什么步骤

我也遇到了相同问题,请问还需要怎么处理呢?

zl-zhuangli avatar Nov 05 '24 07:11 zl-zhuangli

贴一个 qwen2关于awq的帖子qwen2-awq awq本身也提供了一部分量化参考awq-doc

def load_pileval(data_path='/data/djh/dataset/calib_dataset/pileval/test'):
    # 加载本地数据集 test 为 validation 数据 214670条
    data=load_from_disk(data_path)
    return [text for text in data["text"] if text.strip() != '' and len(text.split(' ')) > 20]
    
    # 或者 读取 解压后的jsonl文件
    # data=load_dataset("json",data_files='/data/djh/dataset/calib_dataset/pileval/val.jsonl')
    # return [text for text in data["text"] if text.strip() != '' and len(text.split(' ')) > 20]

def load_wikitext():
    data = load_from_disk('/data/djh/dataset/calib_dataset/wikitext2')
    return [text for text in data["text"] if text.strip() != '' and len(text.split(' ')) > 20]

加载模型后 执行

    calib_data=load_wikitext()
    print(f'抽样数据数量为 {len(calib_data)}')
    
    quant_config = { "zero_point": args.zero_point, "q_group_size":args.q_group_size, "w_bit": args.w_bits, "version": "GEMM" }
    start = time.time()
    model.quantize(tokenizer, 
                   quant_config=quant_config, 
                   calib_data=calib_data,
                   )
    end = time.time()
    print(f"quantization took: {end - start: .4f}s")

这样你应该可以完成量化。 另外,如果你是针对微调的模型进行量化,也可以在校准数据集中添加部分微调数据。

TulipDu avatar Nov 05 '24 12:11 TulipDu

#读取 解压后的jsonl文件 data=load_dataset("json",data_files='/workspace/data/val.jsonl') calib_data = load_tulu_v2(data)

==================== #读取 解压后的jsonl文件 data=load_dataset("json",data_files='/workspace/data/val.jsonl') calib_data = load_tulu_v2(data) 这里加载后数据打印是这样的 DatasetDict({ train: Dataset({ features: ['text', 'meta'], num_rows: 214670 }) }) 怎么能直接传给 load_tulu_v2呢,还要什么步骤

我也遇到了相同问题,请问还需要怎么处理呢?

回复如上,请参考

TulipDu avatar Nov 05 '24 12:11 TulipDu

额,把这个jsonl下载下来,代码中改个路径就好了呀

Image

Vebrun avatar Mar 11 '25 07:03 Vebrun

  1. git lfs install
  2. git clone https://huggingface.co/datasets/mit-han-lab/pile-val-backup
  3. 下载 pile-val-backup 到本地,示例 /home/yourname/downloads/pile-val-backup/
your_path/pile-val-backup/
    ├── README.md
    └── val.jsonl.zst
def load_calib_data():
    data=load_dataset('/home/yourname/downloads/pile-val-backup/', split="validation")
    return [text for text in data["text"] if text.strip() != '' and len(text.split(' ')) > 20]
# Quantize
calib_data = load_calib_data()
model.quantize(tokenizer, quant_config=quant_config, calib_data=calib_data)

hbigboy avatar Apr 11 '25 09:04 hbigboy