艾瑞巴蒂看過來!OSSChat 上線:融合 CVP,試用通道已開放

Zilliz發表於2023-04-07

還在糾結於反覆查詢開源專案的技術文件?
團隊常因頻繁搜尋開源專案主頁導致效率低下?
每天都要問一遍【開源專案中那些“小白問題”究竟有沒有更快的解決方法?】

對此,只想對你說:趕緊試試 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 等你!

相關文章