「就在前幾天,我正在決定使用哪一套 LLM 工具來建立我公司即將推出的客戶支援聊天機器人,這是我一生中最簡單的決定!” -從來沒有人說過🚩🚩🚩
GPT-4 發布已經有一段時間了,但似乎每週都會推出一個新的開源 LLM 框架,每個框架都與 50 多個其他競爭對手做同樣的事情,同時拼命解釋它如何比其前身更好。歸根結底,像您這樣的開發人員真正想要的是一些快速的個人軼事來權衡每種方法的優點和缺點。 👨🏻💻
因此,作為一個使用過十多個開源 LLM 工具的人,我將告訴您我的首選,這樣您就不必自己做無聊的工作。 😌
讓我們開始吧!
DeepEval 是 LLM 工具,可協助您量化 LLM 應用程式(例如客戶支援聊天機器人)的執行情況🎉
它佔據榜首有兩個簡單的原因:
在我看來,評估和測試 LLM 表現是建立 LLM 申請的最重要部分。
它是最好的 LLM 評估框架,而且是開源的 💯
對於可能不太熟悉的人來說, LLM 測試很困難,因為 LLM 可以輸出的響應有無限的可能性。得非常容易:
提供超過 14 個研究支持的評估指標來測試使用 LangChain 等幾乎任何框架建立的 LLM 應用程式。
使用簡單,文件豐富,直覺易懂。非常適合那些剛入門的人,但也足夠技術性,可以讓專家深入研究這個兔子洞。
與 Pytest 集成,將其包含在 CI/CD 管道中以進行部署檢查。
合成資料集產生- 在您沒有準備好資料集的情況下幫助您開始評估。
LLM 安全掃描- 自動掃描安全風險,例如您的 LLM 應用程式有偏見、有毒等。
測試後,只需返回用於建立應用程式的 LLM 工具(稍後我將透露我的選擇)以迭代需要改進的領域。以下是一個測試 LLM 聊天機器人回應的相關性的簡單範例:
from deepeval import evaluate
from deepeval.metrics import AnswerRelevancyMetric
from deepeval.test_case import LLMTestCase
test_case = LLMTestCase(
input="How many evaluation metrics does DeepEval offers?",
actual_output="14+ evaluation metrics"
)
metric = AnswerRelevancyMetric()
evaluate(test_cases=[test_case], metrics=[metric])
https://github.com/confident-ai/deepeval
🌟 GitHub 上的 Star DeepEval
(DeepEval 不起眼的吉祥物想要一顆星星)
當 DeepEval 評估時,LlamaIndex 建構。 LlamaIndex 是一個資料框架,專門設計用於將大型語言模型 (LLM) 與各種資料來源集成,特別是涉及檢索增強生成 (RAG) 的應用程式。
對於那些沒有聽說過 RAG 的人來說,它相當於將一些文字貼到 ChatGPT 中並詢問一些相關問題。 RAG 只是幫助您的 LLM 申請了解其在檢索過程中不了解的上下文,而 LlamaIndex 讓這變得非常容易。
您會看到,RAG 中的一個大問題是連接到資料來源並從中解析非結構化資料(如 PDF 中的表格)。這並不難,但建造起來非常乏味。
以下範例說明如何使用 LlamaIndex 建立客戶支援聊天機器人來回答有關您的私人資料的問題:
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()
response = query_engine.query("Some question about the data should go here")
print(response)
https://github.com/run-llama/llama\_index
🌟 在 GitHub 上加註星標
評估和建構很重要,但是資料隱私呢?
Ollama 是一個有趣的專案,因為它解鎖了當地使用的LLMs。它允許用戶直接在自己的硬體上執行、自訂LLM並與之交互,這可以提高隱私性,減少對雲端供應商的依賴,並優化某些用例的延遲。 Ollama 簡化了與開源LLMs的合作,使個人和組織更容易存取和管理它們,而無需廣泛的機器學習專業知識或雲端基礎設施。
例如,使用 Ollama,您可以載入在公司伺服器上本地執行的客戶支援自動化模型。與基於雲端的設定相比,此設定可以保持客戶資料的私密性,並且可以減少回應延遲。 Ollama 也適合進行開源LLMs實驗,例如針對特定任務微調模型或將其整合到更大的應用程式中,而無需依賴外部雲端服務。
# List available models
ollama list
# Run a model with a prompt (for example, running a GPT-4-like model named `gpt4-all`)
ollama run gpt4-all -p "Explain the benefits of using DSPy."
https://github.com/ollama/ollama
🌟 在 GitHub 上加註星標
Guidance 是一個框架,旨在幫助開發人員為大型語言模型 (LLM) 製作動態、高效的提示。與通常依賴固定模板的傳統提示工程不同,Guidance 允許動態建構提示,直接在提示中利用循環和條件等控制結構。這種靈活性使其對於產生需要複雜邏輯或自訂輸出的回應特別有用。
一個簡單的例子是,客戶支援機器人:使用條件建立根據客戶問題進行調整的提示,提供個人化回應,同時保持語氣和風格的一致性,而不是手動提示。
import guidance
# Initialize the Guidance model (e.g., OpenAI or another model API)
gpt = guidance("gpt-3.5-turbo") # You can specify another model if available
# Define the dynamic prompt with Guidance
prompt = guidance("""
{{#if summary}}
Please provide a brief summary of the topic: {{topic}}.
{{else}}
Provide a detailed explanation of the topic: {{topic}}, covering all relevant details.
{{/if}}
""")
# Set up input parameters
params = {
"topic": "Machine Learning",
"summary": True # Toggle between True for summary or False for detailed response
}
# Run the prompt
response = prompt(params)
print(response)
https://github.com/guidance-ai/guidance
🌟 在 GitHub 上加註星標
DSPy 旨在簡化使用 LLM 建立應用程式的流程,例如 OpenAI 或 Hugging Face 的應用程式。它可以更輕鬆地管理這些模型如何回應輸入,而無需不斷手動調整提示或設定。
DSPy 的好處在於,它透過將邏輯與提示分開、自動提示調整併實現靈活的模型切換,簡化並加速了大型語言模型的應用程式開發。這意味著開發人員可以專注於定義任務而不是技術細節,從而更容易獲得可靠且一致的結果。
然而,我個人發現 DSPy 很難上手,因此它比其他的在列表中排名最低。
https://github.com/stanfordnlp/dspy
🌟 在 GitHub 上加註星標
現在您已經看到了 Github 上頂級 LLM 開源趨勢工具和框架的列表,您絕對應該使用它們來建立您的下一個 LLM 應用程式。覺得我錯過了什麼嗎?請在下面評論讓我知道!
感謝您的閱讀,我們下次見😊