YUAN'Blog |

收藏了GPT技巧揭秘轻松建立个人智能知识库

Date: March 8, 2023 | Estimated Reading Time: 5 min | Author: YUAN

1.jpg

收藏了!GPT技巧揭秘:轻松建立个人智能知识库!

随着现代产品的日益发展,收集和理解大量来自不同来源的用户研究数据变得越来越重要,如用户研究访谈、对讲机对谈、客户电子邮递、调查等等。为了更好地利用这些数据,一种传统的方法是维护一个组织整齐的数据库,其中包含各种对应的标记。

但是,如果我们能够拥有一个个人AI聊天机器人,它能够回答有关我们的用户研究数据的任何问题,那将是多么便利啊!

通过查询大量历史用户研究数据,聊天机器人可以为新项目、产品或营销活动提供意见和建议。

好吧,现在只需要几步代码就可以实现。即使没有技术背景,您也可以做到这一点。在这篇文章中,我将解释如何一步一步地做到这一点。

2.jpg

使用GPT-3 API进行交互

如果您已经熟悉ChatGPT,那么您就可以在工作流程中使用它了。否则,您可以在OpenAI的GPT-3 Playground中的用户界面与GPT-3模型进行交互。另外,OpenAI还提供了一个API来发送请求。在使用API之前,我们需要确保它能够将相关的上下文发送到模型,并且保持信息的保密。

3.jpg

微调能奏效吗?

第一次处理这个问题时,我认为可以使用我们的数据集微调模型。事实证明,微调是通过提供提示响应以示范例。

例如,微调可以帮助训练模型识别情绪,为此您需要在训练数据中提供句子-情绪值得对。如本例所示:

{"prompt":"Overjoyed with the new iPhone! ->", "completion":" positive"}{"prompt":"@lakers disappoint for a third straight night ->", "completion":" negative"}

但是在我们的例子中,我们并没有快速响应的例子,我们只是想用来寻找答案的数据。因此,微调在这种情况下不起作用。

将上下文发送到提示中

相反,我们需要让模型了解上下文。我们可以通过在提示中简单地提供上下文来做到这一点。例如,以下是我们的提示格式:

像这样:


Context information is below.---------------------{context}---------------------Given the context information and not prior knowledge, answer the question: {user_query}

不过有一个问题。我们不能在一次提示中发送我们所有的研究数据。这在计算上是不合理的,GPT-3模型有一个 2049 个 “令牌 “的请求/响应硬限制。也就是说,请求和响应加起来大约是8千字。因此,我们需要找到一种方法来只发送对我们的聊天机器人回答问题的相关信息,而不是发送请求中的所有数据。

使用GPT Index

好消息是,使用Jerry Liu 的GPT Index 的开源库(GitHub链接🔗:https://github.com/jerryjliu/gpt_index)很容易做到。

下面是它的工作原理:

  1. 创建文本块的搜索引擎

  2. 找到最相关的块

  3. 使用最相关的块向 GPT-3 提问

该库为我们完成了所有繁重的工作,我们只需要编写几行代码。我们开始做吧!

该代码只有两个功能:第一个是根据我们的数据结构搜索,第二个是将请求发送给GPT-3。这是一个代码:


def construct_index:    1. set parameters for LLM that will be used    2. construct an index    3. save the index into the file  
def ask_ai:    1. get user query    2. send the query with the relevant context    3. show the response


         

构造索引

首先,我们需要构建一个搜索引擎。搜索引擎就像一个数据库,它以一种易于查找的方式存储文本段。


def construct_index(directory_path):    # set maximum input size    max_input_size = 4096        # set number of output tokens    num_outputs = 256        # set maximum chunk overlap    max_chunk_overlap = 20        # set chunk size limit          chunk_size_limit = 600             # define LLM    llm_predictor = LLMPredictor(llm=OpenAI(temperature=0, model_name="text-davinci-003", max_tokens=num_outputs))    prompt_helper = PromptHelper(max_input_size, num_outputs, max_chunk_overlap, chunk_size_limit=chunk_size_limit)        documents = SimpleDirectoryReader(directory_path).load_data()        index = GPTSimpleVectorIndex(    documents, llm_predictor=llm_predictor, prompt_helper=prompt_helper    )        index.save_to_disk('index.json')        return index

我们只用几行代码就创造了一个带有自主知识库的人类智能。想一想自主AI变得多么容易获得。

在短短几分钟内,我们成功地构建了一个自定义解决方案,用于在我们的研究数据库中搜索见解。

而这只是我们今天探索的一项小技巧。随着大型语言模型的前进,现在比以任何时候都更容易创建可以满足您的特定需求的AI机器人。

点这里👇关注我,记得标星哦~

一键三连「分享」、「点赞」和「在看」

人工智能与物联网前沿进展日日相见 ~

4.jpg