發表文章

擁抱NotebookLM?聊聊用Gemini建立更可靠的知識庫

圖片
前言 開始之前,我們不妨先了解一下 知識庫 是什麼? 知識庫 (Knowledge Base)是一個集中管理和儲存各種資訊、知識、解決方案或專業知識的系統或資料庫,最終目的是為了幫助人們或是快速找到所需的資訊,解決問題,甚至獲得相關的專業知識。 在日常應用中,知識庫可以應用在很多領域裡: 技術支援 ,像是使用指南、常見問題或解決方案等等,這樣可以讓客戶或使用者自行得到答案,減少聯繫支援人員的書信往返。 知識管理 ,在企業或組織內部,知識庫可以儲存公司政策、技術文檔等,目的是讓員工可以更快速找到需要的資料,做到知識傳承,進而提高工作效率和生產力。 學術研究 ,學術上的突破,通常要仰賴很多大大小小不同的研究資料、學術文章和期刊等等,才能得出一個具有公信力的結論,透過知識庫整合,可以有效提升找出結論的效率。 而作為一個知識庫,需要具備幾項特徵,才能滿足讓使用者快速找到需要的知識和解決方案: 結構化內容 ,資料需要有條理的、可分類的,容易被檢索。 可搜索性 ,使用者的問題可能很零散,所以需用片段文字或關鍵字能快速找到資訊。 持續更新 :在知識爆炸的年代,怎麼跟上現況,更新資訊或解決方案就顯得特別重要。 自助服務 :用戶可以不需要依賴支援,就能獲得所需的資訊。 綜合以上,要完成一個真正強而有力的知識庫,著實不是一件容易的事情,不僅僅是一個聊天機器人、搜尋引擎 或是計程車司機、軍訓課教官、補習班老師 就能滿足所有人的需求.再加上封閉領域(Closed-Domain)和開放領域(Open-Domain)的知識裡亦有許多歧義問題要面對,因此在深度學習和巨量資料研究蓬勃發展的今日,這仍是一個迷人且具備高挑戰性的課題。 在ChatGPT橫空出世後,大語言模型 ( Larger Language Model ) 捲起了一波新浪潮,面對人類的提問,ChatGPT幾乎有問必答,我們甚至會覺得他在開放知識領域的問答(Question-Answering)任務表現上幾乎無敵了,但是Chat畢竟是Chat,基於 Autoregressive 的GPT Model在 NLG(Natural Language Generation )表現非常好,但LLM還是存在幾個與生俱來的缺陷如: 知識更新延遲 :LLM的資料來源常基於訓練時的資料,可能無法反映最新的資訊或事件。 偏見與不當內容生成 :除了幻覺(...

Line Notify的替代方案?給你一個完整的分析。

圖片
Line Notify 自推出以來,雖然其存在一些侷限,譬如無法自定義訊息格式,也無法對單一用戶傳遞訊息,但仍依靠著簡單易用和高穩定性,搭配著IFTTT服務,成為許多系統通知的愛用方案之一,走過幾年來的風風雨雨,正當大家都習慣Line Notify帶來的便利之際,Line官方突然宣布Line Notify即將停止服務,詳見 LINE Notify結束服務公告 。 那當LINE Notify結束服務後,原本這些用戶該何去何從呢?官方也推薦了使用Line Message API作為替代方案,詳見從 LINE Notify 轉移到 LINE Messaging API 發送更多樣訊息與輕鬆查找用戶 ID、群組 ID,文中也提到了一些基本串接;的確,LINE Messaging API依靠著每月有200則免費訊息的優惠,可以滿足許多極輕量用戶的需求,但這個方案,卻還是存在很多先天限制的,因為各個國家也有不同的市場使用狀況,即便LINE Notify用戶遍及東亞,卻還是需依不同狀況做出不同方案選擇。 以下我們針對在東亞普及的訊息服務,挑選了幾個常見的產品做介紹; Telegram 是一款免費、快速、安全的即時通訊應用程式,支持文字、語音和視訊通話,並提供多種豐富的功能。它的特點包括端對端加密,確保用戶的隱私和資料安全;群組和頻道功能,讓用戶可以輕鬆與朋友、同事或追隨者分享資訊。Telegram也支持大型群組(最多可容納20萬人),還能進行文件傳輸、雲端儲存及自訂機器人等。無論是日常聊天、工作協作還是公共資訊分享,Telegram都是一個強大且靈活的工具。無論在手機、平板或桌面端,都可以輕鬆同步,提供跨平台使用的無縫體驗。由於其簡潔的介面和穩定的運行,Telegram迅速成為全球用戶喜愛的通訊工具之一。 WeChat (微信)是一款由中國科技公司騰訊推出的綜合性即時通訊應用程式,擁有超過十億用戶。它不僅支援基本的文字、語音和視頻通話功能,還集成了豐富的社交、支付和生活服務。用戶可以透過“朋友圈”分享照片和動態,與朋友保持聯繫;同時,微信支付功能讓用戶可輕鬆進行線上支付、轉帳及購物。微信的“公眾號”讓企業和媒體能夠直接與用戶互動,提供資訊和服務。此外,微信還支持小程序,讓用戶在不離開應用的情況下使用各種工具和服務,無需下載額外的應用。微信的跨平台使用方式(支持iOS、Androi...

Prompt, Fine-tune và Training, ai mới là công trình lớn?

圖片
Vì tôi yêu văn hóa Việt Nam, nên tôi đã dịch bài viết này sang tiếng Việt . Nếu có bất kỳ chỗ nào sai sót hoặc cần chỉnh sửa, xin vui lòng liên hệ với tôi. Cảm ơn bạn.   Trong thế giới học máy, đặc biệt là Xử lý Ngôn ngữ Tự nhiên (NLP), "Prompt", "Fine-tune" và "Training" là ba khái niệm thường xuyên xuất hiện. Mặc dù chúng đều liên quan đến việc học và điều chỉnh mô hình, nhưng mục đích, phương pháp và tình huống sử dụng của mỗi khái niệm lại có sự khác biệt rõ ràng. Hãy cùng tìm hiểu kỹ hơn về sự khác biệt giữa chúng. Trước tiên, Prompt là một lời nhắc hay câu hỏi mà bạn đưa vào mô hình học máy. Lời nhắc này không thay đổi mô hình mà phụ thuộc vào kiến thức mà mô hình đã học được để tạo ra câu trả lời hoặc thực hiện một nhiệm vụ nào đó. Bạn có thể tưởng tượng nó như một từ khóa hướng dẫn, và mô hình sẽ trả lời dựa trên lời nhắc này. Ví dụ, với một mô hình ngôn ngữ, nếu bạn đưa vào một câu như "Viết một bài về khám phá không gian", mô hình sẽ t...

我怎麼說你就怎麼做!聊聊LLM的Prompt

圖片
延續上一次的文章 Prompt, Fine-tune 和 Training ,誰才是大工程? ,受惠於大語言模型 (Large Language Model , LLM ) 的發展,以往我們必須對模型去做 Fine-tuning 甚至 Training 的工作,只要基於 LLM ,再加上一些適當的 Prompt ,就可以達到不錯的效果,在筆者的論文 基於 Fusion-in-Decoder 之中文開放領域問答研究 中,就曾用 LLM 加上 Prompt ,對比自己訓練出來的問答模型,發現效果不分軒輊。 也許我們可以做更多? 那麼,如果我們想讓 LLM 達到更好的效果,有哪幾種手法呢? 根據使用目的和方式的不同, Prompt 可以區分為幾種類型: 1. 問題導向的 Prompt (Question-Based Prompts) 用途 :提出具體問題,讓模型進行回答,也是最典型的 QA(Quesiton-Answering) 例子 : " 台灣的首都是哪裡? " " 量子物理是什麼? " 這類 Prompt 通常是直接的問題,模型會根據已有的知識提供簡潔且已知的答案。 2. 指令式 Prompt (Instruction-Based Prompts) 用途 :用來給模型提供具體的指令,要求模型進行某種形式的處理。 例子 : " 寫一篇關於人工智慧的短文。 " " 將這句話翻譯成英文: ' 我今天感覺很開心。 '" 這類 Prompt 常用於生成具體內容,例如創作、翻譯等。   3. 填空式 Prompt (Fill-in-the-Blank Prompts) 用途 :要求模型在指定的句子中填入缺失的部分。 例子 : " 台灣的首都是 ___ 。 " " 愛因斯坦的相對論公式是 E = mc² ,這裡的 c 代表 ___ 。 " 這類 Prompt 通常用於測試模型對語言結構的理解,或者要求模型補充缺失的訊息,他也是一個典型的克漏字 (Cloze) 任務。 4. 對話式 Prompt (Conversational Prompts) 用途 :...

Prompt, Fine-tune 和 Training,誰才是大工程?

圖片
  在機器學習,尤其是自然語言處理(NLP)的世界中,「Prompt」、「Fine-tune」和「Training」是經常出現的三個概念。雖然它們都涉及到模型的學習和調整,但每一個的目的、方法和使用情境都有明顯的不同。我們來仔細了解一下它們之間的區別。 首先,Prompt 是指你給機器學習模型輸入的一個提示或問題。這個提示並不會改變模型本身,而是依賴模型已經學過的知識來生成回答或執行某個任務。你可以把它想像成一個引導詞,模型根據這個提示來給你回應。比如,對於一個語言模型來說,給它一句話「寫一篇關於太空探索的文章」,它就會根據這個提示生成相關的內容。這種方式不需要對模型進行任何訓練或微調,只是利用它已經學過的知識來做預測或生成。 接下來是 Fine-tune,它是指對一個已經預訓練的模型進行進一步的調整,使其更適應某個特定的任務或領域。這時,模型的基本架構和大部分知識已經存在,所謂微調,就是在這個基礎上,根據一個小範圍的資料集進行再訓練。比如,假設你有一個通用的語言模型,然後你希望它能在醫學領域表現得更好,那麼你可以用大量的醫學文獻來微調這個模型。這樣,它就會在理解和處理醫學相關問題時更加精準。 最後,Training 則是指從頭開始訓練一個模型,讓它從大量的資料中學習,並逐漸調整模型的內部參數,使其能夠處理特定任務。這是最基本、最根本的學習過程。對於一個語言模型來說,訓練的過程可能涉及大量的文本資料,從中學習語言結構、語法規則、常識知識等。這個過程通常需要大量的計算資源和時間,因為模型需要處理的是大規模的資料集,而且每次的參數調整都會影響到模型的整體性能。 總結來說,Prompt 是利用現有模型的知識來引導其輸出;Fine-tune 是在預訓練模型的基礎上,進行小範圍的調整來提升特定領域的表現;而 Training 則是從零開始訓練模型,讓它在大量的資料中學習並建立知識庫。三者之間的區別,主要在調整的範圍和深度上。 以下來總結它們的不同: 1. Prompt (提示)     定義:在預訓練的模型上使用一個“提示”或“問題”,來引導模型生成特定的輸出。     範疇:這通常與大規模語言模型(如 GPT 系列)相關,模型在預訓練階段學會了語言結構、知識等,然後用戶可以給它一個“提示”來引發它生成特定類...

這個身分證檢查器是用ChatGPT寫的吧?!

圖片
隨著大語言模型(英語:Large Language Model,LLM)的蓬勃發展,相關的應用越來越多,人們透過大量的資料訓練(Train)出一個一個模型(Model),再用這些模型去產生我們想要的結果,某種程度來講,這些語言模型對我們的工作和生活帶來不少程度的幫助;從最早我們用模型來寫文章,用模型來產生照片,用模型來產生影片,很多人都讚嘆電腦程式的進步,大大的改變了我們的生活,那有沒有有一種可能是,我們也可以用模型來寫程式呢? 當然用模型來寫程式,未必是下一個指令像「給我一個預測股市走勢的程式」,他就能把你想要的東西都給你,更重要的是我們要告訴他,你想要他為做些什麼?做得對不對? 你正在做什麼並不重要,重要的是你知道自己正在做什麼。 計畫 接著我們來試著做一個身份證字號的驗證程式,要達到想要的結果之前,其實我們還是要有一些系統性的思考邏輯,先提出構想,完整藍圖,分解功能,再重新組合,套用平時開發程式的步驟,不外乎: 需求收集 系統分析 需求收集 我們想要做一個台灣的身份證號碼驗證器,需要可以輸入任何一組號碼,可以知道號碼的主人是從哪裡來?可以知道號碼的主人是先生還是小姐?我們不想要安裝程式,太麻煩了,還有,希望畫面可以漂亮一點,好用一點。 系統分析 接著我們就來想想,做一下簡單的分析,看看要如何滿足需求; 需要簡單容易使用,我們可以寫成網頁版。 需要畫面好看,雖然好看是一件很主觀的事情,但我們可以用主流的網頁框架。 希望體驗好一點,那連提示訊息都一起改善,至少在不同裝置上用來都差不多。 程式要判斷號碼是否正確,那有沒有計算規則?有什麼標準格式? 再來我們分別列出對應的解決方法; 美觀問題,我們可以用 Bootstrap ,因為是主流框架,至少能向市場趨勢靠攏;我們也可以用 SweetAlert 套件來改善體驗問題,讓不同裝置的操作感受更一致。 判斷號碼正確性的演算法,我們在 維基百科上找到的中華民國國民身分證相關規則 ,夠我們處理這一次的問題。 程式提供一個介面,可以填寫證件號碼、性別、發證的縣市,來完成基本需求。 寫程式的浪漫...分解再重組,就像玩積木一樣快樂。 開工  做完分析後,我們就可以來做功能開發了,這次我們不找訓練有素的猴子,而是用ChatGPT來完成工作,打開介面後,緩緩地貼上我們的Promt。 寫一個HTML網頁, 使用Bootstrap...