HuggingfacePipeline с Ламой-2-7b-hf

Я пытаюсь запустить мета-ламу/Llama-2-7b-hf на langchain с помощью HuggingfacePipeline. Моя установка ниже.

Почему в llm загружена модель gpt2. Я считаю, что gpt2 используется по умолчанию для HuggingfacePipeline(), но я передаю модель с помощью Transformers.AutoModelForCausalLM.from_pretrained() с переопределением мета-ламы/Llama-2-7b-hf.

Что я делаю не так?

      bnb_config = transformers.BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type='nf4',
    bnb_4bit_use_double_quant=True,
    bnb_4bit_compute_dtype=bfloat16,
    # llm_int8_enable_fp32_cpu_offload=True
)


model_config = transformers.AutoConfig.from_pretrained(
    "meta-llama/Llama-2-7b-hf",
    use_auth_token=hf_auth
)

tokenizer = transformers.AutoTokenizer.from_pretrained("meta-llama/Llama-2-7b-hf")

model = transformers.AutoModelForCausalLM.from_pretrained(
    "meta-llama/Llama-2-7b-hf",
    trust_remote_code=True,
    config=model_config,
    quantization_config=bnb_config,
    device_map="auto",
    use_auth_token=hf_auth
)
model.eval()


pipe = transformers.pipeline(
    model=model,
    tokenizer=tokenizer,
    task="text-generation",
    return_full_text=True, 
    temperature=0.1,  # 'randomness' of outputs, 0.0 is the min and 1.0 the max
    max_new_tokens=64,  # mex number of tokens to generate in the output
    repetition_penalty=1.1  # without this output begins repeating
)


llm = HuggingFacePipeline(pipeline=pipe)

print(llm)```

>>>HuggingFacePipeline
Params: {'model_id': 'gpt2', 'model_kwargs': None}

1 ответ

обходной путь — просто добавить строку model_id: hf = HuggingFacePipeline(pipeline=pipe, model_id="yourmodelname")

Я считаю, что с моделью все в порядке, просто строка model_id жестко закодирована где-то в Langchain.

Другие вопросы по тегам