本週Github上資料科學Python有趣專案

banq發表於2024-03-16

Github上資料科學有趣的專案、工具和庫

openllmetry
適用於您的 LLM 應用程式的開源可觀測性。

OpenLLMetry 是一組基於OpenTelemetry構建的擴充套件,可讓您對 LLM 應用程式具有完全的可觀察性。由於它在底層使用 OpenTelemetry,因此可以連線到您現有的可觀測性解決方案- Datadog、Honeycomb 等。

它由 Traceloop 根據 Apache 2.0 許可證構建和維護。

該儲存庫包含適用於 LLM 提供程式和向量資料庫的標準 OpenTelemetry 儀器,以及 Traceloop SDK,可以輕鬆開始使用 OpenLLMetry,同時仍然輸出可連線到可觀測性堆疊的標準 OpenTelemetry 資料。如果您已經安裝了 OpenTelemetry 儀器,則可以直接新增我們的任何儀器。


CBScript
CBScript 是一種轉譯語言,由 SethBling 設計。該編譯器會將 CBScript 檔案編譯為 Minecraft 資料包 zip 檔案。它具有許多 Minecraft 命令級別所不存在的高階語言功能。

CBScript 包含許多高階功能,可以簡化資料包的語法和構造,並使其更易於維護。檢視“/scripts”資料夾中的指令碼作為示例。還有存檔的指令碼子資料夾,其中包含舊版本遊戲的資料包。

  • 包含檔案
  • 算術表示式
  • For/while 迴圈
  • if/else if/else 塊
  • 執行語法
  • Tellraw 具有簡化的語法
  • 具有簡化語法的標題/副標題/操作欄。
  • 宏功能支援
  • 實體選擇器定義,包括資料路徑
  • 進度/戰利品表/塊標籤/謂詞定義。
  • 帶引數的函式/方法呼叫。
  • 開關,同時支援數字和塊型別
  • 編譯時變數
  • 編譯時迴圈展開
  • 編譯時宏
  • 模板函式
  • 座標向量


SQLMesh 
向後相容 dbt 的高效資料轉換和建模框架。

SQLMesh 使資料從業者能夠高效地執行和部署用 SQL 或 Python 編寫的資料轉換。
儘管 SQLMesh 將使您的 dbt 專案更加高效、可靠和可維護,但它不僅僅是dbt 的替代品

SQL 的語義理解

  • 編譯時錯誤檢查(針對 10 種不同的 SQL 方言!)
  • 簡單地使用 SQL進行定義(不需要冗餘和混亂的 Jinja + YAML)
  • 使用本機 SQL 註釋進行自記錄查詢

dataverse
Dataverse 是一個可免費訪問的開源專案,支援使用 Python 的 ETL(提取、轉換和載入)管道。我們為資料處理和管理提供簡單、標準化和使用者友好的解決方案,滿足LLM時代資料科學家、分析師和開發人員的需求。即使您對 Spark 不太瞭解,您也可以透過dataverse輕鬆使用它。

藉助 Dataverse,您可以

  • 利用一系列預處理功能,無需安裝多個庫。
  • 建立用於分析和訓練大型語言模型 (LLM) 的高質量資料。
  • 無論您的專業知識水平如何,都可以輕鬆利用 Spark。
  • 促進具有不同 Spark 熟練程度的使用者之間更順暢的協作。
  • 透過利用 AWS EMR 的功能,擺脫本地環境的限制。


LlamaGym
透過線上強化學習微調 LLM 代理。

起源於強化學習,它們透過與環境互動並接收獎勵訊號來學習。然而,如今基於 LLM 的智慧體並不透過強化進行線上學習(即持續實時學習)。
OpenAI 建立Gym是為了標準化和簡化 RL 環境,但如果您嘗試將基於 LLM 的代理放入 Gym 環境中進行訓練,您會發現它仍然需要相當多的程式碼來處理 LLM 對話上下文、劇集批次、獎勵分配, PPO 設定等。

LlamaGym 尋求透過 RL 簡化 LLM 代理的微調。現在,它是一個單獨的Agent抽象類,可以處理上述所有問題,讓您可以在任何 Gym 環境中快速迭代和試驗代理提示和超引數。

chedule-texts-from-txt
從 .txt 檔案安排 iMessage 或 SMS 文字。

fructose
Fructose 是一個 Python 包,用於圍繞 LLM 呼叫建立可靠的強型別介面。

只需將@ai裝飾器放在帶型別註釋的函式上,然後像呼叫函式一樣呼叫它即可。它是輕量級的語法糖。

from fructose import Fructose
ai = Fructose()

@ai
def describe(animals: list[str]) -> str:
  <font>"""
  Given a list of animals, use one word that'd describe them all.
 
"""
  ...

description = describe([
"dog", "cat", "parrot", "goldfish"])
print(description) # ->
"pets" type: str

裝飾器@ai會自省該函式,併為 LLM 構建一個提示,以便在呼叫該函式時執行該任務。


R2R
用於快速開發和部署生產就緒 RAG 系統的框架。

R2R 旨在彌合實驗 RAG 模型和強大的生產就緒系統之間的差距。我們的半固執己見的框架消除了複雜性,提供了在生產中部署、調整和維護 RAG 管道的直接途徑。我們優先考慮簡單性和實用性,旨在為易用性和有效性樹立新的行業基準。

該框架主要圍繞三個核心抽象:

  • 攝取管道:有助於從各種資料格式(json、txt、pdf、html 等)準備可嵌入的“文件”。抽象可以在 中找到ingestion.py。
  • 嵌入管道:管理文字到儲存的向量嵌入的轉換,透過一系列步驟(例如,extract_text、transform_text、chunk_text、embed_chunks 等)與嵌入和向量資料庫提供程式進行互動。抽象可以在 中找到embedding.py。
  • RAG 管道:工作原理與嵌入管道類似,但合併了 LLM 提供程式來生成文字補全。抽象可以在 中找到rag.py。
  • Eval Pipeline:對 rag_completion 呼叫的某些子集進行取樣以進行評估。目前支援DeepEval 。抽象可以在 中找到eval.py。

每個管道都包含一個日誌資料庫,用於操作跟蹤和可觀察性。


python-docstring-highlighter
VSCode 外掛擴充套件: Python Docstring 的語法高亮顯示。

此擴充套件旨在突出顯示Python 程式碼中的文件字串,使其更易於閱讀和理解原始碼。它不提供任何對編輯或建立文件字串的支援。它針對Google、NumPy和Sphinx樣式文件字串格式進行了最佳化,儘管它也應該部分適用於其他格式。


Ludic
輕量級框架,用於用純 Python 構建 HTML 頁面。

Ludic 是一個輕量級框架,用於使用類似於React 的元件方法構建 HTML 頁面。它旨在與htmx.org一起使用,因此開發人員幾乎不需要編寫任何 JavaScript 來建立動態 Web 服務。它的潛力可以與其 Web 框架一起利用,該框架是強大的Starlette框架的包裝器。它是用最新的 Python 3.12 功能構建的,大量結合了型別。

特徵

  • 無縫</> htmx整合,用於純 Python中的快速 Web 開發
  • 具有標準 Python 型別提示的類似React的元件方法
  • 利用Starlette和Async的強大功能進行高效能 Web 開發
  • 使用 Python f-string輕鬆而強大地構建 HTML


five_decorators
五個有用的裝飾器,為你的 Python 程式碼帶來靈感。

modguard
一個用於實施模組化、解耦包架構的 Python 工具

Modguard 使您能夠為給定模組定義公共介面。預設情況下,用 標記包會Boundary使其所有內部都是私有的,僅公開標記為 的成員 public。
這強制實施瞭解耦模組的架構,並確保域之間的通訊僅透過其定義的公共介面進行。
Modguard 非常輕量級,並且不會影響程式碼的執行時。相反,它的檢查是透過靜態分析 CLI 工具執行的。

相關文章