将falcon 40b指令与langchain结合

问题描述 投票:0回答:1

我想使用 falcon 40b 指令模型创建本地法学硕士,并将其与 lanchain 结合起来,这样我就可以给它一个 pdf 或一些可供学习的资源,这样我就可以查询它,向它提问,从中学习,并最终能够获得见解来自 Excel 工作表的 pdf 报告。

目前,我只想使用 langchain 加载 pdf 并使用 falcon-40b-instruct 模型作为代理。

我想构建一个 llm,在那里我可以使用 langchain 让它与我自己的数据交互。

这是我迄今为止的尝试:

from langchain_community.llms import HuggingFaceHub

llm = HuggingFaceHub(
repo_id=model_name,
task="text-generation",
model_kwargs={
"max_new_tokens": 512,
"top_k": 30,
"temperature": 0.1,
"repetition_penalty": 1.03
},
huggingfacehub_api_token="hf_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
)

我达到了以下阶段:

from langchain_community.chat_models.huggingface import ChatHuggingFace
llm = ChatHuggingFace(llm=llm)

但我收到此错误:

HfHubHTTPError:401客户端错误:未经授权的网址

我这样做是为了能够运行以下命令:

qa_chain = RetrievalQA.from_chain_type(
llm=llm,
retriever=vector_db.as_retriever()
)

我错过了什么,有没有办法能够像做猎鹰模型一样完全本地化并将其传递给 ChatHuggingFace?

nlp chatbot langchain large-language-model falcon
1个回答
0
投票

HfHubHTTPError: 401 Client Error: Unauthorized for url
的消息表示您无权从HuggingFace >
https://huggingface.co/inference-endpoints
访问endpoint服务。

当你想在本地运行一切时,这里有一个例子

from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline

# model_id = "tiiuae/falcon-7b-instruct"  # this model is too large to run on Nvidia 4090 with 16G ram
model_id = "gpt2"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id)
pipeline = pipeline(
    "text-generation",
    model=model,
    tokenizer=tokenizer,
    max_new_tokens=200,
)


from langchain_community.llms.huggingface_pipeline import HuggingFacePipeline
llm = HuggingFacePipeline(pipeline=pipeline)


from langchain.prompts import PromptTemplate
template = """Question: {question}

Answer: Let's think step by step."""
prompt = PromptTemplate.from_template(template)

chain = prompt | llm
question = "Tell me about Italy"

print(chain.invoke({"question": question}))
© www.soinside.com 2019 - 2024. All rights reserved.