[TIL] AI安全與啟蒙時代

從 Fast.ai 看到這篇貼文: AI Safety and the Age of Dislightenment 摘要: 嚴格AI模型授權和監控建議可能無效或產生反效果,在捍衛社會和使社會自衛之間取得平衡是微妙的。我們應主張開放、謙卑和廣泛諮詢,制定更好回應,使其與原則和價值相一致,了解更多關於這潛力的技術的過程中不斷演進。 心得: 裡面論文都是這篇: FAR (Frontier AI Regulation: Managing Emerging Risks to Public Safety) https://arxiv.org/abs/2307.03718 加強GPAI監管只會增加進入者門檻,讓競爭者更少。 規範使用會比開發對於社會安全更有幫助。 開源是可以增加多樣性並且降低大型公司的危險性。 目前的進展正因為大眾的未知與沒有監管,所以應該要謹慎避免新科技恐慌帶來的不必要的限制。 參考:歐盟監管開源人工智能的嘗試適得其反 https://www.brookings.edu/articles/the-eus-attempt-to-regulate-open-source-ai-is-counterproductive/
繼續閱讀

[LangChain] LangChain Embedding 中可能發生的問題

前提: 之前在 DeepLearning.ai 開放新的課程「LangChain Chat with Your Data」,裡面有許多相當實用的案例分享。這裡要分享一個關於容易誤解的問題。 案例一: 追求過於近似,但是卻忘記重要訊息的搜尋法 這裡有載入四份文件,你有發現他故意重讀檔案一兩次,意圖去讓資料不正確。 想要去查詢「是否有關於 Regression 資料在“第三章”」的時候,由於資料混亂。也會傳回第一章的結果,因為就是有混亂的問題。造成他無法注意“第三章”,而是只注意到 “regression” 這個字。 這時候要使用 “Maximum Marginal Relevance (MMR)” 的方式來尋找資料,而不要找最接近的資料。 vectordb.max_marginal_relevance_search(query,k=2, fetch_k=3) query = "What is the bitcoin?" query = "What is the bitcoin?" vectordb.similarity_search(query, k=2, filter={"page": 1}) 透過 filter 你可以去指定許多參數,從哪一份文件,從哪切割的內容,甚至是內容對照。 參考內容: LangChain Chat with Your Data LLM+Embedding构建问答系统的局限性及优化方案
繼續閱讀

[好書分享]我的99個私抽屜-唐鳳的AI時代生存心法

我的99個私抽屜 唐鳳的AI時代生存心法 何もない空間が価値を生む AI時代の哲学 作者: 唐鳳 丘美珍 出版社:網路與書 買書推薦網址: Readmoo: 購買網址 前言: 這是 2023 年第六本讀完的書,雖然說唐鳳是近幾年算是很受注目的素人政壇人物之一,他的這些書籍其實都蠻有內容,也很推薦大家來看。 內容摘要: 臺灣數位發展部長唐鳳五歲時閱讀老子《道德經》,其中有云:「埏埴以為器,當其無,有器之用。」她自此深知「價值的產生,在於空間」之道,最終遷徙到網路世界中獨自尋思、與人協作:她與素未謀面之人共筆、共創,打造橫向溝通平台,每日結束時都將所知所得發表上線;更以自身體歷為基底,提出在AI時代生存的多元心理準備。全書以唐鳳第一視角敘事,分為「思考/學習/網路/工作/人生」五大篇章:99個唐鳳的「私抽屜」,每拉開一格,都可發現直透人心的知行祕訣,當下轉念受用! 日本人看唐鳳,就像江戶幕府時代的人,在看明治時代的人!—— 野島剛 在別人提供的知識基礎上,我會加上自己實作的經驗, 作為驗證,加深理解,或進一步擴大影響力。 我稱這樣的過程為「增幅」。 如果我能提供一個空間,甚至自己就變成一個空間、一個通道, 在「無我」的狀態下,讓眾人透過我, 完成他們在意的工作或任務,這就是我的價值。 創造一個讓眾人可以互動的空間,就變成我這輩子持續在做的事。 來拜訪我的人,帶著他們的人生經驗和夢想,提出想讓世界更好的創新思維, 而我的價值,不在於我想要完成什麼,而在於我如何幫他們做想做的事。 —— 唐鳳 心得: 之前他就任的時候,身邊有一些因為主政的政黨取向而懷疑他的能力。但是我只有在思考說:如果你的反對是因為換了一個政黨就不會,那麼你可能受到政黨取向的偏頗。蠻推薦大家可以看這一本數來更了解唐鳳,如果你想要了解他的家庭如何造就她勇敢的決定停止去學校就學,並且可以包容她的各種意見。更可以看看這本,更了解一個良好的家庭教育的想法。
繼續閱讀

[研討會][LangChain] LangChain 「Chains vs Agents」 Webinar Notes

Weblink: https://www.crowdcast.io/c/m2ooh0uy9syg Speak1: Swyx - smol developer https://docs.google.com/presentation/d/1d5N3YqjSJwhioFT-edmyjxGsPBCMb1uZg0Zs5Ju673k/edit#slide=id.g254e571859c_0_133 Article: https://stratechery.com/2018/techs-two-philosophies/ https://www.latent.space/p/agents https://lilianweng.github.io/posts/2023-06-23-agent/ Speaker2: Alex - Agent Eval https://docs.google.com/presentation/d/1bo5uxaS4JMNt99VmsRdeTFLo9qSIByJiViIVakzF9NQ/edit#slide=id.g22b104eecb9_0_2 很難 debug agent failure: failure token CAPCHA 三種 Evaluation 方式 抓下一堆 dataset Alex: https://twitter.com/alexreibman Gurkaran: https://twitter.com/aigsingh dare: https://twitter.com/dariusemrani Jesse Hu https://twitter.com/huyouare Q&A What is the most affordable (free, local?) LLM for specific Agent Executor / Agent task like decision making, tool selection…? Mpt7b In my experience, the OpenAI functions work really well in deciding what tool(s) to use even in multi-step scenarios. Do you think that a train-of-thought process is used behind the scenes, like ReACT or MLKR? And how useful are they now? 可以考慮看看 few shot 其他 Agent Hackathon https://lablab.ai/event/ai-agents-hackathon AgentEval (第一名) 最後有 OpenAI CEO 演講
繼續閱讀

[學習心得][Python] 透過基於 LangChain 將許多好用工具打包起來的套件 - embedchain 來打造簡易版本客服 LINE Bot 機器人

透過這個 EmbedChain 可以抓取許多種資料,這個圖片是測試他去抓取 「2023年LINE官方帳號方案價格調整,重點一次掌握」網頁上的資料來回覆給使用者。 官方帳號在哪一天調整價錢? 官方帳號價格將在 2023 年 9 月 1 日調整。 中用量方案的價格? 中用量方案的價格是每月 800 元。 前提 許多人都想要打造出客服聊天機器人 LINE Bot ,但是透過 NLU 來打造客服 LINE Bot 其實成本很高。這裡會推薦給各位透過 LangChain 加上 EmbedChain 這個套件,可以打造低成本與簡易版本的客服 LINE Bot 。 本篇文章將快速告訴各位,如何透過 EmbedChain 來打造 這裡也列出一系列,我有撰寫關於 LangChain 的學習文章: [學習心得][Python] 透過 LangChain 來處理特殊的中央氣象局資料 [學習心得][Python] 透過 LangChain 的 Functions Agent 達成用中文來操控資料夾 [學習心得][Python] 透過 LangChain 打造一個股價查詢 LINEBot - 股價小幫手 EmbedChain 解決了那些問題 先預設本篇文章讀者,已經是懂的使用 LLM (Large Language Model) 來打造客服機器人。之前你需要先建立客服機器人的參考資料庫,(因為大部分 LLM (e.g. OpenAI) ) 不知道如何回覆你的問題。 需要的架構可以這裡參考文章 Enhancing ChatGPT With Infinite External Memory Using Vector Database and ChatGPT Retrieval Plugin 如上圖,快速整理架構如下: 需要把客服文件透過切割成一群群的文字區塊 將文字區塊透過 Embedding 技術放入 LLM 的向量空間,暫存在 Vector Database。 (會變成一個很長的數字陣列 e.g.) 客戶詢問問題的時候,也去針對他的問題切割後作成 Embedding 。並且找尋最接近的文件。 將文件區塊給 LLM 整理後回覆給客戶。 即便你使用了 LangChain 來包裝整個架構,你還是會遇到相關問題: 選擇 Vector Store 打造不同文件的 Document Loader PDF Loader Web loader 這邊複雜一點,需要透過 BeatifulSoup 爬下網頁,抓取需要的內容。 如果是 YouTube 也是很複雜: 找出字幕 -> 抓下來 將文字切割過後放入 Embedding 。 那有方式可以更快速解決這樣的架構問題嗎? 接下來就要跟大家 EmbedChain 。 如何透過 EmbedChain 打造客服 LINE Bot 這裡列出幾個簡單流程: 準備打造客服 LINE Bot需要的素材 建立 EmbedChain LINE Bot 測試與調整 以下我們將透過 EmbedChain 來打造一個回覆 LINE Biz-Solution 基本資訊的客服機器人。...
繼續閱讀

[學習心得][Python] 透過 LangChain 來處理特殊的中央氣象局資料

前提 接下來,我們將介紹如何透過 LangChain 來打造一些實用的 LINE Bot 。第一個我們先透過旅遊小幫手的概念,來幫大家串接關於氣象的 LangChain Function Agent吧。 本篇文章將要帶給各位一些概念: 如何用 LangChain 來串接 中央氣象局的 Open API Data 如何在 LLM 的對話中來處理一些特別數值的輸入。 如何活用 LLM 對話的聰明性,來活用 LangChain Function Agent 。 這裡也列出一系列,我有撰寫關於 LangChain 的學習文章: [學習心得][Python] 透過 LangChain 來處理特殊的中央氣象局資料 [學習心得][Python] 透過 LangChain 的 Functions Agent 達成用中文來操控資料夾 [學習心得][Python] 透過 LangChain 打造一個股價查詢 LINEBot - 股價小幫手 直接看如何使用程式碼 https://github.com/kkdai/langchain_tools/blob/master/travel_tool/ 如何用 LangChain 來串接 中央氣象局的 Open API Data 要申請中央氣象局 OpenAPI Data ,依照以下流程: 到官方網站註冊 註冊之後,透過取得授權碼。 透過官方 OpenAPI 頁面,來使用 (其實只要用一般天氣預報(全地區)就足夠了) 接下來來透過 ChatGPT 來協助撰寫相關資料: 透過 Execute 結果中的 CURL ` curl -X 'GET' \ 'https://opendata.cwb.gov.tw/api/v1/rest/datastore/F-C0032-001?Authorization=你的授權碼' \ -H 'accept: application/json' 然後去ChatGPT 問說,就可以取得 get_weather_data ,這邊記住我們只有使用地點。原因如下: 雖然會傳回未來三天的氣象資料,但是 LLM 可以幫我們整理,並且篩選。 三天的資料也可以幫助我們來處理更多詢問,不需要再查詢的時候就修改。 def get_weather_data(location_name=None): url = 'https://opendata.cwb.gov.tw/api/v1/rest/datastore/F-C0032-001' headers = {'accept': 'application/json'} query = { 'Authorization': cwb_token} if location_name is not None: query['locationName'] = location_name response = requests.get(url, headers=headers, params=query) if response.status_code == 200: return response.json() else: return response.status_code 轉換成 LangChain Function Agent 參考之前其他的 Tool Agent 的寫法,可以很快速改成以下方式。 cwb_token = os.getenv('CWB_TOKEN', None) # From CWB API # https://opendata.cwb.gov.tw/dist/opendata-swagger.html#/%E9%A0%90%E5%A0%B1/get_v1_rest_datastore_F_C0032_001 class WeatherDataInput(BaseModel): """Get...
繼續閱讀