cannot pickle 'Stream' object
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 25/100
- issue の種類
- バグ
- 明瞭さ
- 説明が足りない
- 活発さ
- 停滞
- 技術スタック
- python, pytorch
調査の方向性
示されている deepspeed deep.py コマンドを使用して DeepSpeedExamples/inference/huggingface/zero_inference/deep.py の失敗を再現し、報告されている Transformers および bitsandbytes の deepcopy 呼び出しを通る AutoModelForCausalLM.from_pretrained の経路を追跡します。テストは指定されていません。完了条件は、この例について、報告されている Stream の pickling エラーが発生しなくなる、サポートされた実行経路を確立することです。
索引モデルが issue の本文から書いたものです。
説明
Trying to run llama3 70B
Hardware:
3x 4090
deepspeed deep.py
deep.py:
# ---------------------------------------
# New automatic tensor parallelism method
# ---------------------------------------
import os
import torch
import transformers
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
import deepspeed
local_rank = int(os.getenv("LOCAL_RANK", "0"))
world_size = int(os.getenv("WORLD_SIZE", "1"))
# specify the model id
model_id = "meta-llama/Meta-Llama-3-70B-Instruct"
# create the model pipeline
bnb_config = BitsAndBytesConfig(load_in_4bit=True, bnb_4bit_quant_type="nf4", bnb_4bit_compute_dtype=torch.float16, bnb_4bit_use_double_quant=True, llm_int8_enable_fp32_cpu_offload=False)
model = AutoModelForCausalLM.from_pretrained(model_id, quantization_config=bnb_config, torch_dtype="auto",device_map="auto", low_cpu_mem_usage = True)
pipe = transformers.pipeline(task="text-generation", model=model, device=local_rank)
# Initialize the DeepSpeed-Inference engine
pipe.model = deepspeed.init_inference(
pipe.model,
mp_size=world_size,
dtype=torch.float
)
output = pipe('What is deepspeed')
print(output)
Traceback:
Traceback (most recent call last):
File "/home/sw/bulldozer/code/deepspeed/DeepSpeedExamples/inference/huggingface/zero_inference/deep.py", line 17, in <module>
model = AutoModelForCausalLM.from_pretrained(model_id, quantization_config=bnb_config, torch_dtype="auto",device_map="auto", low_cpu_mem_usage = True)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/site-packages/transformers/models/auto/auto_factory.py", line 555, in from_pretrained
return model_class.from_pretrained(
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/site-packages/transformers/modeling_utils.py", line 2974, in from_pretrained
modules_to_not_convert = get_keys_to_not_convert(model)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/site-packages/transformers/utils/bitsandbytes.py", line 257, in get_keys_to_not_convert
tied_model = deepcopy(model) # this has 0 cost since it is done inside `init_empty_weights` context manager`
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 172, in deepcopy
y = _reconstruct(x, memo, *rv)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 271, in _reconstruct
state = deepcopy(state, memo)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 146, in deepcopy
y = copier(x, memo)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 231, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 172, in deepcopy
y = _reconstruct(x, memo, *rv)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 297, in _reconstruct
value = deepcopy(value, memo)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 172, in deepcopy
y = _reconstruct(x, memo, *rv)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 271, in _reconstruct
state = deepcopy(state, memo)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 146, in deepcopy
y = copier(x, memo)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 231, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 172, in deepcopy
y = _reconstruct(x, memo, *rv)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 297, in _reconstruct
value = deepcopy(value, memo)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 172, in deepcopy
y = _reconstruct(x, memo, *rv)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 271, in _reconstruct
state = deepcopy(state, memo)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 146, in deepcopy
y = copier(x, memo)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 231, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 172, in deepcopy
y = _reconstruct(x, memo, *rv)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 297, in _reconstruct
value = deepcopy(value, memo)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 172, in deepcopy
y = _reconstruct(x, memo, *rv)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 271, in _reconstruct
state = deepcopy(state, memo)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 146, in deepcopy
y = copier(x, memo)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 231, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 172, in deepcopy
y = _reconstruct(x, memo, *rv)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 297, in _reconstruct
value = deepcopy(value, memo)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 172, in deepcopy
y = _reconstruct(x, memo, *rv)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 271, in _reconstruct
state = deepcopy(state, memo)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 146, in deepcopy
y = copier(x, memo)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 231, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/home/sw/anaconda3/envs/deepseed/lib/python3.10/copy.py", line 161, in deepcopy
rv = reductor(4)
TypeError: cannot pickle 'Stream' object
- 主要言語
- Python
- スター
- 6.8k
- フォーク
- 1.1k
- 平均マージ
- 2日 16時間
- マージ済み PR(30日)
- 1
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
deepspeedai/DeepSpeedExamples のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 52/100
deepspeedai/DeepSpeedExamples#996 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
deepspeedai/DeepSpeedExamples#995 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 52/100
deepspeedai/DeepSpeedExamples#989 ·
-
moe example 404 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
deepspeedai/DeepSpeedExamples#984 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 42/100
deepspeedai/DeepSpeedExamples#979 · コメント 6 件 ·
deepspeedai/DeepSpeedExamples の issue をすべて見る
似ている issue
-
agent-ready documentation needs-triage
難易度 1/5 1〜3時間 初心者へのやさしさ 88/100
-
documentation
難易度 1/5 1時間未満 初心者へのやさしさ 91/100
-
workflow-status page template still says reusable workflows are "triggered only by workflow_call:" オープン
難易度 1/5 1時間未満 初心者へのやさしさ 92/100
-
instance instance add
難易度 1/5 1時間未満 初心者へのやさしさ 72/100
searxng/searx-instances#939 · コメント 1 件 ·
-
area-deployment area-integrations triage:bot-seen
難易度 2/5 半日 初心者へのやさしさ 86/100