还在纠结于重复查找开源我的项目的技术文档?
团队常因频繁搜寻开源我的项目主页导致效率低下?
每天都要问一遍【开源我的项目中那些“小白问题”到底有没有更快的解决办法?】
对此,只想对你说:连忙试试 OSSChat!连忙试试 OSSChat!连忙试试 OSSChat!
(链接在此:https://osschat.io/)
OSSChat 到底是谁?
介绍一下,这是咱们最近做的一个很有意思的工具,它的次要目标是把一个开源社区所有积淀下来的知识性内容打造成知识库,并通过 ChatGPT 的能力包装成问答机器人。后续,咱们也打算为各个开源社区提供收费的 embedded chatbot 的能力,解决主页内容搜寻和用户 QA 这样的关键问题。
简言之,有了 OSSChat,你就能够通过对话的形式间接与一个开源社区的所有常识间接交换,大幅晋升开源社区信息流通效率。
在首发尝鲜版本中,OSSChat 提供了基于 Hugging Face、Pytorch、Milvus 等开源我的项目的深度问答服务,后续将陆续笼罩更多受欢迎的开源我的项目。如果 OSSChat 下面还没有你的我的项目,请间接分割咱们申请入驻!
01.OSSChat:自带“精准”基因用过
ChatGPT 的小伙伴可能都遇到过相似的问题:当你向它询问业余垂域常识或实时信息时,因为受限于模型自身的训练数据集边界,ChatGPT 会生成看似正确但与事实不符的内容,这也是 ChatGPT 被业界广为诟病的一个重要缺点。为了解决这一问题,Zilliz 推出了簇新的 CVP 技术栈——即 ChatGPT + 向量数据库(vector database)+ prompt-as-code。
毋庸置疑,ChatGPT 在自然语言问答方面的能力非常杰出,如果通过向量数据库为 ChatGPT 提供一个大规模牢靠的知识库,并应用 prompt 将用户问题与相应的知识库文本对应起来,ChatGPT 便能够取长补短,很大水平上防止 ChatGPT“捏造答案”。
能够说,OSSChat 完满展示了 CVP 技术栈的工作模式。具体来看,OSSChat 将各个开源我的项目的 GitHub 仓库(repo)及相干文档页面作为数据源(source of truth),这些数据被转换为 embedding 并存储在 Zilliz 向量数据库中,其余相干内容则存储在独自的数据存储器中。用户与 OSSChat 发问交互时,会在 Zilliz 向量数据库中触发相似性检索,随后检索后果会被发送给 ChatGPT 作为输出问题,最终生成精准答案。
02. 对于防止 ChatGPT 捏造事实这件事
接下来能够通过几组典型的例子,展现 CVP Stack 帮忙 ChatGPT 给出精准答案的能力。咱们比照了雷同问题下 ChatGPT 与 OSSChat 的答案(* 注:以下问答均翻译自英文,英文原文请移步 Zilliz Blog 查看):
Q1:Hugging Face 是否反对 OpenAI Whisper?
ChatGPT 答复:据我所知,截至 2021 年 9 月,Hugging Face 尚未发表反对 OpenAI Whisper。然而,他们未来可能会增加反对。OpenAI Whisper 是 OpenAI 的新语言模型,其余公司和开发人员将其整合到其平台和产品中可能须要一些工夫。
OSSChat 答复:是的,Hugging Face 反对 OpenAI Whisper。FlaxWhisperModel 类在 transformers 库中可用,这是 OpenAI Whisper 模型的包装器。您能够应用此类加载预训练的 OpenAI Whisper 模型,并将其用于各种自然语言解决工作,例如文本分类、问题答复和文本生成。
【对于这个问题,ChatGPT 受到知识库限度,它的答复帮忙并不大。然而 OSSChat 的答复却非常精确,因为这个答案间接来自 Hugging Face 文档网站。】
Q2:torch.compile 这个 API 能够用来做什么?
ChatGPT 答复:截至 2021 年 9 月我的常识截止日期,PyTorch 中没有 torch.compile API,这是由 Facebook AI Research 开发的风行的开源机器学习库。然而,PyTorch 提供了与编译和优化神经网络模型相干的各种 API,例如 torch.nn.Module,它是 PyTorch 中所有神经网络模块的基类。torch.nn.Module 提供各种用于定义和优化神经网络模型的办法和钩子。此外,PyTorch 提供了与 Just-In-Time(JIT)编译器(例如 TorchScript JIT 编译器)集成的接口,能够用于在各种硬件平台上优化和编译 PyTorch 模型。JIT 编译器能够将 PyTorch 模型转换为独立的、序列化的示意模式,能够在其余环境或语言中加载和执行。总之,尽管 PyTorch 没有 torch.compile API,但它提供了各种用于优化和编译神经网络模型的 API 和工具。
OSSChat 答复:torch.compile API 的目标是通过事后编译来减速 PyTorch 代码。它能够解决任意 Python 代码,对现有代码的更改最小,并能够解决数据相干的控制流。它还能够解决非 PyTorch 函数调用,TorchScript 追踪将其视为常量并可能导致不正确的后果。
【ChatGPT 简明扼要解释了 PyTorch API 是什么,并声称 PyTorch API 中没有 torch.compile。但实际上,咱们并没有发问 PyTorch API 是什么,且 PyTorch 中存在 torch.compile 这个 API。】
Q3:Milvus 中的 TTL 是什么,如何设置?
ChatGPT 答复:在 Milvus 中,TTL(Time To Live)是一项性能,容许您为数据设置到期工夫。当您为 Milvus 中的汇合或分区设置 TTL 时,Milvus 将主动删除任何已超过指定 TTL 的数据。要在 Milvus 中为汇合或分区设置 TTL,您能够别离应用 set_collection_ttl 或 set_partition_ttl API。以下是示例:
在此示例中,咱们在 Milvus 中创立了一个汇合和一个分区。而后,咱们应用 set_collection_ttl 和 set_partition_ttl API 别离为汇合和分区设置了 7 天的 TTL。TTL 指定为 Unix 工夫戳,它是自 1970 年 1 月 1 日以来的秒数。咱们应用 datetime 模块将 TTL 增加到以后工夫以计算到期工夫。请留神,您须要在启动 Milvus 时启用 TTL 性能。这能够通过在 Milvus 配置文件中设置 TTL_CHECK_INTERVAL 参数来实现。默认值为 60 秒。
OSSChat 答复:TTL 在 Milvus 中代表“Time to Live”,它是一项性能,能够为汇合中的数据设置到期工夫。当汇合中的数据过期时,它将被主动清理,并且不会参加搜寻或查问。要在 Milvus 中为汇合设置 TTL 值,您能够应用 Python 中的 collection.set_properties() 办法。例如,要将 TTL 值设置为 1800 秒(30 分钟),您能够应用以下代码:
collection.set_properties(properties={“collection.ttl.seconds”: 1800})
您还能够在创立汇合时通过在汇合的属性中指定 collection.ttl.seconds 属性来设置 TTL 值。该值应以秒为单位指定,应为 0 或更大。值为 0 示意 TTL 已禁用。
【对于这个问题,ChatGPT 给咱们提供了一个看似正当的答案,甚至还蕴含了代码片段。但实际上,这并不是正确答案,而是 ChatGPT 捏造进去的答案。相较之下,OSSChat 则给出了正确答复—— Milvus 中的 TTL 是在汇合设置中的一种属性,它的值以秒为单位。】
03.OSSChat 试用通道已凋谢
目前,咱们曾经凋谢了 OSSChat 试用通道,所有用户均可收费应用。将来咱们在不断完善其性能的同时,也将颁布更多对于 OSSChat 搭建过程的细节。如果心愿 OSSChat 聊天机器人可能呈现你所开发的开源我的项目,也欢送复制链接或点击【浏览原文】填写申请:https://docs.google.com/forms/d/e/1FAIpQLSdXHXCyzs11u7lh2hWkA…
当然,如果你对 OSSChat 的性能或者开源我的项目方面有更多的倡议,也欢送通知咱们!话不多说,OSSChat 等你!