Prompt Engineering
工具評測
介紹我最近探索的一些 no-code 線上工具
2023/7/12@Generative AI 小聚 ft. HappyDesigner Meetup
ihower
愛好資訊科技 創辦人
多年 Web 軟體開發經驗
土生土長新竹人
個人部落格 https://ihower.tw
我的 LLM 應用開發課程
https://ihower.tw/notes/llm-app-workshop
1
任務需求
2
Prompt Engineering 工具需求
3
PE 工具評測
任務需求
天瓏網路書店
根據書名和描述,自動做書籍分類
ALPHACamp
根據教學目標和教材內容,產生問題和答案
基本分工
1
客戶是不寫 code 的領域專家 PM
目前在使用 ChatGPT 看看能否用 Prompt 做出想要的結果
2
寫 code 的 Engineer
將上述 Prompt 做成軟體功能,呼叫 OpenAI API 進行處理
ChatGPT ≠ OpenAI API
  • 在 ChatGPT 內
  • 無法調整 API 參數: 例如最重要的 Temperature (輸出內容有多隨機)
  • system prompt 是固定的沒公開而且隨著 ChatGPT 升級可能會改
PM 使用 ChatGPT 開發 Prompt 面臨的情況
  • ChatGPT 的輸出結果,和工程師用 OpenAI API 呼叫的結果不一樣(因為API參數不一樣)
  • 參數的文字很長,每次都要複製貼上
  • 資料集有很多筆想要測試,可以批次跑嗎
  • 試了很多版本,如何比較差異?
  • 若在同一個對話串做實驗,會被對話紀錄影響實驗結果
Prompt Engineering
指透過精心設計、開發、改進、優化 Prompt 提示詞,來有效提升 LLM 輸出的結果
但目前大家的重點多放在 Prompt Techniques,例如
  • Few-shot Prompting
  • Chain-of-Thought Prompting
  • Tree-of-Thought Prompting
  • Self-Consistency
  • 等等技巧來增加 LLM 推理能力
Prompt Engineering ≠ Blind Prompting

Mitchell Hashimoto

Prompt Engineering vs. Blind Prompting

簡陋的試錯(trial-and-error) 方式,不是 Engineering
Error uploading image.
不只有 Prompt Techniques,還有 Engineering
系統性的做 Iterative 迭代開發
  1. 準備 Dataset 測試資料集
  1. 準備 Prompt Candidates 幾個不同版本的 Prompt
  1. 執行 Evaluation (或叫做 Testing)
過程舉例
a. 準備書籍資料 Dataset
b. 準備數個 Prompts 來做實驗
其中 {{title}} 和 {{description}} 是自訂變數,會套用 Dataset 中的資料
候選一號: Zero-shot
根據以下書籍資訊,擷取出書籍分類。只需要回傳分類名稱,不要有其他文字 書名: {{title}} 描述: {{description}}
候選二號: Few-shot
根據以下書籍資訊,擷取出書籍分類。只需要回傳分類名稱,不要有其他文字 書名: 駕馭 ChatGPT 4: 探索 Azure OpenAI 與 Cognitive Service for Language 開發實踐 (使用.NET 與 Node.js) 描述: 2023年最熱門的關鍵詞無疑是「ChatGPT」。市面上充斥著各式各樣的導讀,指引你如何靈活運用ChatGPT。 分類: ChatGPT 書名: 重新認識 Vue.js:008天絕對看不完的 Vue.js 3 指南 描述: 從零開始!快速上手!網羅完整Vue.js功能的實戰指南 分類: Vue.js 書名: {{title}} 描述: {{description}} 分類:
c. 批次跑出結果,進行評估
  • 哪一個 Prompt 的效果比較好? 有多好?
  • token 數越多成本(cost 和 latency) 會越高,值得嗎?
  • 若改用更高級的模型 GPT-4 的結果會好多少?
  • 成本值得嗎? GPT-4 比 GPT3.5-Turbo 貴20~30倍、速度慢一倍
  • Zero-shot 的 GPT-4 v.s 用高級 Prompting 技巧花比較多 token 的 GPT3.5-Turbo
  • 哪一個划算?
PE 工具挑選原則
  • 介面操作非工程師可以用,不需要寫 code
  • 有線上 hosted 版本,不依賴工程師安裝
功能需求
Prompt Editor
  • 要有 prompt template,有 prompt 變數
  • 區分 system 和 user prompt
  • 可以調整各種 model 參數,溫度一定要可以調整
Dataset
  • 上傳 CSV
  • 可批次跑輸出
  • 有 evaluation 評估方式
Versoning
  • 紀錄版本
  • 某種 History 紀錄
Deployment (Optional)
  • 可發布成 API
  • 可發布成 Web App
候選清單
  • OpenAI Playground
  • Spellbook
  • Dify
  • Vellum
  • Humanloop
  • Knit
  • nat.dev
  • WALE
  • Promptable
  • Portkey
  • AI21
OpenAI Playground

  • OpenAI 官方出的
  • 可調整的參數完整
  • 可多個 Chat format (雖然本任務沒有用到)

  • 沒有 prompt template
  • 沒有版控
  • 沒有 Dataset
  • 沒有 Evaluation
  • 沒有 API deployment
Spellbook

ScaleAI

Deploy Large Language Model Apps | Scale AI

Scale Spellbook enables teams to deploy production ready large language model based applications in minutes.

Prompt Editor (Prompt Template)
Dataset
Versioning
Compare UI
Evaluation & Bulk Inferences
API deployment

開箱即用,不用排隊,不需要自備 OpenAI API Key
想要的功能基本都有

Prompt Editor 沒有支援多 Chat format 格式,但如果不是做 Chat app 似乎不太需要

Evaluation 功能目前(2023/7/11)有 Bug 是壞的跑不出結果,希望是暫時性問題會修好
但客服 Intercom 反應好幾天了,完全沒回應 😖
Dify

dify.ai

Dify - 易用的 LLMOps 平台,定义你的 AI 原生应用

Dify is an easy-to-use LLMOps platform designed to empower more people to create sustainable, AI-native applications.

Prompt Editor (Prompt template)
Deployment (API & app)
Dataset (當作QA的 context,而不是 evaluation 用)

開箱即用,不用排隊
有 Promot template
介面漂亮,開發團隊有很多 Front-end
可發布獨立的 Text generator 或 Chat web app 應用
有 Open Source

需自備 OpenAI API Key (有免費試用額度)
即使 Prompt template 有參數,執行時仍要求一定要有 Query content,不能空白。所以批次上傳 CSV 時,仍需要一個 Query content 欄位

沒有 evaluation 功能,他的 Dataset 的用途是做 QA indexing
Vellum

www.vellum.ai

Home - Vellum - Developer platform for LLM applications

Vellum is the development platform for production-worthy large language model applications.

Prompt Editor (Prompt template & Compare & Chat format)
Dataset & Evaluation
API Deployment

  • Prompt Editor 直接可做 Compare,但也因此 UI 比較複雜
  • 可以編輯多個 Chat format
  • 有 YC 投資算加分嗎(?)

  • 需要自備 OpenAI API key
  • 沒有 Versioning
  • 沒有獨立的 Bulk Inferences 功能,跑 Test Suite 時沒有非同步排程,導致數據多又是 GPT-4 跑很慢時,不知道啥時跑完
  • 沒有線上付款,七天試用期後,雖仍可用但出現警告請 E-mail 聯繫業務
humanloop

humanloop

Humanloop

Align and deploy impactful applications of large language models using the Humanloop platform

Prompt Editor

Prompt Editor 感覺像是 OpenAI Playground 的威力加強版
可以做 Template 跟多個 Chat format
有 YC 投資算加分嗎(?)

需自備 OpenAI API Key

每月 $70 元,一定要先綁卡才能試用7天
Experiments 功能需要升級 team plan,每月 $700 元
Knit

promptknit.com

Knit

開箱即用,不需要自備 OpenAI API Key
Prompt Editor 還不錯,還支援多個 Chat format
有 Prompt History 功能

沒有 Dataset 功能可以批次跑
nat.dev

nat.dev

OpenPlayground

Open source playground to test LLMs

Prompt Editor

  • 儲值 $5 就可以用,不需自備 OpenAI API key
  • 支援的各家模型很多,可以同時 Compare 比較結果
  • 有 Prompt History
  • 有 Open Source

  • 沒有 Promot template,只有一個大大的輸入框和輸出框共用
  • 沒有區分 system prompt
  • 沒有 dataset 跟 evaluation 功能
WALE

Wale

Build better Prompts with custom data

Stop running your prompts one by one. Add your data and run your prompts all at once.

Prompt Editor (Prompt Template)

有 Prompt Template,也可以上傳 Dataset 批次跑
有 Prompt History

需自備 OpenAI API Key

無法選 GPT-4
沒有區分 system project,參數只能調溫度
Dataset 只能 50 rows..... 需要 e-mail 聯繫業務
Promptable (淘汰)

promptable.ai

Prompt Editor

無法用 gpt-3.5-turbo 跟 gpt-4 model,似乎一陣子沒更新了
Portkey (淘汰)

portkey.ai

Portkey.ai - Ship Ambitious Gen AI Apps

Portkey enables companies to develop, launch, maintain & iterate over their generative AI apps and features faster. It is an LMOps platform that speeds up your development and your app.

要排 waitlist,排到之後,找不到可以輸入 OpenAI API key,無法使用
AI21 (淘汰)

www.ai21.com

AI21 Labs

AI21 Labs is an AI lab & product company whose mission is to reimagine the way we read and write by making the machine a thought partner to humans.

Prompt Editor & Evaluation

只能用他家的 jurassic 模型
功能比較表
評測結論
  • 眼下好像沒有一個可以完美使用 😅 若 Spellbook 能修好的話,覺得 UX 是最不錯的
  • 只好自行開發一個,歡迎有需求的朋友聯繫我 demo 試用 😋
  • (2022/7/18) https://lab.aihao.tw/ 若你再次看到這裡,現在可以試用了。需自備 OpenAI API Key。
補充資料
把 Prompt Evaluation 當作 Unit Testing 來跑自動化測試

GitHub

GitHub - promptfoo/promptfoo: Test your prompts. Evaluate and compare LLM outputs, catch regressions, and improve prompt quality.

Test your prompts. Evaluate and compare LLM outputs, catch regressions, and improve prompt quality. - GitHub - promptfoo/promptfoo: Test your prompts. Evaluate and compare LLM outputs, catch regres...

GitHub

GitHub - preset-io/promptimize: Promptimize is a prompt engineering evaluation and testing toolkit.

Promptimize is a prompt engineering evaluation and testing toolkit. - GitHub - preset-io/promptimize: Promptimize is a prompt engineering evaluation and testing toolkit.

GitHub

GitHub - mshumer/gpt-prompt-engineer

Contribute to mshumer/gpt-prompt-engineer development by creating an account on GitHub.

其他類型的 Prompt 工具順道整理
  • Chat Room: 跟 ChatGPT 一樣的對話用途
  • Prompt Chaining: 可串接多個 LLM 步驟流程做出應用
  • Chat Bot: 做聊天機器人
  • QA: 給文件做問答
  • 各種 Chat with XXX 應用層出不窮,也有很多 Open Source。這是因為其實很容易做,用 LangChain 10行 code 就寫完核心了只需套殼。總的來說,易做難精 😅
  • Tracking & Monitor: 需要搭配 Python SDK
我的 LLM 學習資料
請多指教
ihower@gmail.com
https://ihower.tw
我的 LLM 應用開發課程
https://ihower.tw/notes/llm-app-workshop
Made with