大語言模型 LLM 應用開發 投影片

2023/5/30 在 RubyJam 分享的演講投影片這裡下載

Demo code 放在 github.com/ihower/rails-pycall-langchain,這是一個會動的 Rails + LangChain (使用 pycall.rb) 的聊天室範例,包括可以上傳 PDF 然後做語意搜尋 QA。

(2023/6/2) 錄影也出來了,在 Youtube 上。

Tweets 整理 (2023 Q1)

2023/3

  • 2023-03-25 10:17 笑死,大家在研究別人的 ChatGPT plugin 寫啥描述給AI,然後 Expedia 寫我是線上旅行社的主,不可有其他旅行社在我之前。 # prompt injection 時代 t.co/DcXCxIcLvN
  • 2023-03-25 04:30 馬上就有人想到可以讓 langchain 吃 ChatGPT plugin 的 metadata 格式,這樣就串接起來了。而且我跟你說位置都在 /.well-known/ai-plugin.json 喔 t.co/SBc1mQOdw8
  • 2023-03-24 21:59 git push 和 pull 有問題? 因為 GitHub 換 ssh host key 了,記得清 known_hosts 即可 t.co/zUMegn0LoL
  • 2023-03-24 14:29 browsing plugin 火力展示: 請 ChatGPT 去 Hacker News 摘要才剛推出的 ChatGPT plugins 網民迴響….. t.co/7Xz3cDWROA
  • 2023-03-24 14:22 code interpreter plugin 火力展示: 上傳一個影片檔案,請 ChatGPT 擷取前5s,然後 AI 就自動寫 python code 執行,回傳檔案結果….. t.co/06oEtb3qQm
  • 2023-03-24 03:59 看來後端工程師還有事做,可以蓋 API 讓 AI 來控制 🥹 t.co/CoL92OzJUG
  • 2023-03-24 03:56 RT @DrJimFan: OpenAI just announced ChatGPT Plugins. If ChatGPT’s debut was the “iPhone event”, today is the “iOS App Store” even… t.co/pCi0jiQykX
  • 2023-03-24 02:04 OpenAI 又要出新東西了,把 ChatGPT 的能力擴展出去: 註冊你的應用並提供 ChatGPT 你的 API 介面,用戶跟 ChatGPT 互動時,GPT模型就會自動判斷呼叫你的 API。 t.co/15WwQQcyXR
  • 2023-03-22 17:12 t.co/XsDPGg1Wjs # Ruby 版的類 langchain 實做,這種 framework 想必會雨後春筍,在各種應用端程式語言中發展起來
  • 2023-03-21 15:29 為了用上 Github Copilot,也強迫自己從用了好幾年的 Sublime Text 換成 VS Code。這年頭每個工具都要升級有 Copilot 功能不然就落伍了。
  • 2023-03-21 15:22 “The terminal for the 21st century” t.co/Ur0yiy41iV # 從 iTerm2 換用這套看看,有種不同世代的感覺,內建 AI 可以問不會的指令。
  • 2023-03-16 01:26 超期待台灣可用! t.co/Er7fu5jT6E
  • 2023-03-15 01:08 RT @sama: here is GPT-4, our most capable and aligned model yet. it is available today in our API (with a waitlist) and in Ch… t.co/WzDyEVs1Tj
  • 2023-03-02 04:15 新API而且降價10倍! t.co/ZCjmStinrv

2023/2

  • 2023-02-26 15:25 “機器學習工程和MLOps的典範轉移 ” t.co/e4vGkW5968 # 做 MLOps 的工作減少,做應用的「AI工程師」增加
  • 2023-02-25 22:49 “Machine learning needs better tools ” t.co/QASmPdsK2J # 竟然拿了 Rails 來比喻,之後機器學習的開發工具會越來越簡單跟有趣
  • 2023-02-21 20:00 讓 OpenAI 幫你寫 git commit message t.co/NoUtfU51ri # 反正 commit message 沒想像中重要,讓 AI 幫忙寫廢話就好了
  • 2023-02-02 14:28 @elleryq CotEditor

2023/1

MacBook Pro 2023 安裝軟體

換了一台 MacBook Pro 14吋 M2 Pro,這一代終於砍了沒用的 touchbar,然後把超實用的 HDMI 加回來。造型很方方正正,屬於實用款。

跟上回重新安裝的相比,主要是把筆記軟體 Bear 換成 Obsidian 了。以及為了用上 Github Copilot,也強迫自己從用了好幾年的 Sublime Text 換成用 VS Code。

(🍎 表示是直接從 App Store 安裝的)

  • Obsidian 個人覺得綜合評價最高的筆記軟體,有傳統的文件夾設計(Roam Research 排除),也有最潮的卡片盒連結方式、有版本紀錄、較自由的文件格式(像 Logseq 條列式就太嚴格了)、效能要好(SiYuan打開太慢啦, Hepta 也慢而且我不愛視覺化)、有官方同步功能、有官方發布功能
  • Soulver 3 很特別好用的計算機筆記 🍎
  • Spectacle 搭配大螢幕必備的視窗工具,透過快速鍵切割視窗畫面,可以很方便地安排左右視窗,用預設的快捷鍵就很好用了。
  • CotEditor 純文字編輯器,拿來當做一般 .txt 文字編輯 🍎
  • Dropbox 還是 Dropbox 的檔案同步做最好,而且還有出 Linux 版本 可用
  • Adobe PDF Reader PDF 閱讀器
  • Apple 的 Keynote/Numbers 製作投影片、試算表 🍎
  • VLC 或 IINA 播放影片
  • Microsoft Office 365 有時候還是會碰到 Excel 檔案,買了家用版順便給家人電腦用
  • Adobe Photoshop 建議可以訂閱 Creative Cloud 的攝影方案比較便宜喔
  • Notability 同步在 iPad Pro 上用手寫的筆記 🍎

通訊軟體類

  • Telegram Messenger 簡單好用 🍎
  • Slack 很多公司用 🍎
  • LINE 台灣親友用 🍎
  • Discord 一些社團用
  • 微信 Wechat、企業微信 🍎

系統工具類

  • Xnip 截圖工作 🍎
  • OmniDiskSweeper 簡單好用的磁碟清理工具
  • DaisyDisk 漂亮的磁碟清理工具 🍎
  • CleanMyMac 3 多功能的磁碟清理工具
  • WiFi Explorer 可以觀察無線網路的訊號強度跟使用頻段,你可以將你的基地台設到干擾較小的頻段唷 🍎
  • HiNet.Dr.Speed Hinet 網路測速
  • Copy ‘Em ​管理複製紀錄的好工具 🍎
  • Bartender 整理 Menu bar 的好物
  • Keka – macOS 壓縮軟體 解壓縮 🍎

編程相關

  • Chrome 瀏覽器
  • iTerm2 取代內建的 Terminal
  • Wrap 新一代 Terminal
  • VSCode 新一代寫程式用的編輯器,搭配 Github Copilot 最新AI科技
  • Sublime 3 寫程式用的舊愛編輯器
  • GitX Git GUI 一號,介面簡單好用
  • Fork Git GUI 二號
  • Transmit FTP GUI
  • Navicat 比較專業的 MySQL+PostgreSQL+SQLite+MS SQL GUI,不過蠻貴的
  • Sequel Ace MySQL 的免費 GUI 🍎
  • Medis Redis 的免費 GUI 🍎
  • Homebrew 用來裝開發用的工具:git, mysql, postgresql, redis, memcached, nginx, imagemagick, wget, node, ffmpeg 等等
  • RVM 裝 Ruby

小馬宋營銷筆記 心得摘要

蠻好看的一本書,喜歡這種帶有行銷理論架構,但是字裡行間盡是作者實戰經驗總結出來的書。案例講的很不錯的,很生動。說是營銷筆記(Marketing 在中國大陸叫營銷,台灣叫做行銷),但作者卻更多從經營的角度去思考,書的副標就是營銷的營,首先是經營的營。看完覺得書名應該改叫做商業運營筆記吧,哈。

這算是作者營銷筆記的上集,在講 Product 跟 Price,期待作者的下一本書講 Place 跟 Promotion。

基於經營的營銷觀

  • 企業成功,不是單靠營銷。即使短期靠營銷紅了,如果經營邏輯不對,也無法長久。企業的成功根本上還是經營邏輯的成功。
  • 波特提到兩種作法取得卓越 1. 提升企業經營效率,但這有極限,也會被對手追上 2. 要有戰略地位
    • 是企業的戰略地位,不是品牌定位
    • 企業的戰略定位,需要有與之匹配的獨特經營活動來支持,而不是一句口號目標而已。
    • 案例是南城香的服務北京人名的全時段社區餐飲 (網上的案例分享)

閱讀全文〈小馬宋營銷筆記 心得摘要〉

淺談我對 Domain-Driven Design 的理解和 Rails 中的實作

Domain-Driven Design (DDD)是一門不明覺厲的軟體架構設計理論,本文整理了我的理解,以及在 Ruby on Rails 中怎麼派上用場。

我發現 DDD 每個人看到的重點都不一樣,我到現在還是覺得有種瞎子摸象的感覺。

我想這是因為 DDD 是個大雜燴,把軟體需求管理、大架構、小架構 在同一個理論下解釋。因此三個部分,看你愛講哪一塊,每個人看的重點不同。

1. 和領域專家的共通語言,重點放在與領域專家的溝通 。我認為這一塊就是需求管理、軟體規格、建模方法等。有很多其他書(例如 User Story Mapping)跟這部分重疊了,講的也比 DDD 詳細完整。

2. 大架構戰略層次: 拆解不同領域,例如用 microservice 來做,或是用 Modular 來做(下述) 。我認為這一塊是 DDD 比較精彩的部分,也是我認為最重要的部分。

3. 小架構戰術層次: 例如 Service Object。我認為這一塊偏向物件導向理論,我覺得也不是重點,有很多其他講物件導向的書在講了,例如 SOLID 和各種 Design Pattern 等等。用了這些招數,也不表示就是 DDD。這塊還有出一些很進階的大架構常跟DDD一起討論,例如 Hexagonal Architecture, Clean Architecture 等等,但我覺得都太難理解導入了,已經遠離DDD的本質。

閱讀全文〈淺談我對 Domain-Driven Design 的理解和 Rails 中的實作〉

郝旭烈專案管理 讀後感

都已經是很有經驗的的軟體工程師了,參與過很多軟體專案,對於 agile 敏捷式專案管理也都看過N遍了,對PM還能有什麼新的體會嗎?

但我還是一直好奇非軟體業,是如何做專案管理? 這本算是入門書,也不是針對軟體專案。但卻有作者特別的本質見解,用生活化和接地氣的描述專案管理,而不是照抄敏捷宣言和吹噓 Scrum 作法。

雖然有些金句不是很喜歡,例如作者定義專案管理是 玩一場從不確定到確定的遊戲,這句我反而就不太喜歡,哈。

不過金句還是不少的:

  • 以前技術不好只能接受 “最終可見” 的結果,現在技術可行,當然是盡快 “最小可用” 的 敏捷式專案管理 比 瀑布式專案管理 好
  • 朝夕令改本來就是常態,既然過程不確定,那麼改來改去的修正,當然是個常態
    • 如何讓大家調整心態面對?
      • 知其然,知其所以然: 讓大家都知道原因
      • 既然改,大家一起來: 讓大家一起想對策
  • 專案經理
    • 與其在他人身上找問題的答案,不如建議一個解決問題的系統
    • (面對跨部門的專案) 降低成員現有工作負擔、幫助成員重新和直屬老闆排序工作內容、幫他留白他才有時間參與專案。解決最基本的工作壓力和時間管理問題,是最直接的。
  • 沒有任何數字的話,很容易落入主觀判斷,而非客觀事實。有數字大家才能知道事情嚴重性,是否需要討論。
  • 數位轉型: 數位是紀錄客觀數字,轉型是為了測試更好的執行方法
  • 不是足夠強大才能解決問題,而是不斷解決問題才能足夠強大
    • 即使失敗,也只是暫時停止成功。因為沒有經歷過那個階段的養成,本來就不容易一下子達標
  • 別抱怨老闆改來改去沒有提前告知了,因為從來都是員工向老闆報告的。要定期主動找老闆聊天,一是要報告、二是要了解老闆有沒有新的資訊。
  • 最後一章談如何跨部門成立專案團隊的秘訣: 除了主攻的專案成員,還需要安排助攻的成員,要幫忙主攻成員分擔他本來的例行工作

不過可惜的是,作者並沒有具體舉例專案內容有哪些,不同類型的專案有不同的關注點,我想多看看這些見解。像我本身對軟體開發專案比較有經驗,但比較難想像其他不是開發的專案會是什麼內容跟管理秘訣? 例如流程改善的專案、行銷推廣專案,實作內容會是什麼? 除了產品開發,還會有怎樣類型的專案呢?

同個作者還有寫 財務思維課、商業獲利思維課 兩本書,都是類似的生活化口語風格,喜歡的話可以接著找來讀。