快訊!我的新書今天開始可以在天瓏網路書店預購啦!歡迎大家前往訂購!
>>>> AI 職場超神助手:ChatGPT 與生成式 AI 一鍵搞定工作難題 <<<<

Technology Research

  • ,

    適用於雲端的物件存儲系統 – Minio

    Minio介紹 MinIO 是一個開源的分佈式物件儲存服務器,針對需要大規模數據基礎架構的用戶設計。它支持與 S3 API 的完全兼容,並以私有雲為目標從頭開始建立。MinIO 在全球範圍內擁有廣泛的用戶和開發者社群,並且在 GitHub 上有超過 16,000 個星標,以及在 Docker 上超過 2.19 億次的下載。 核心功能 部署教學 1. 下載和安裝 首先,訪問 MinIO 的 GitHub 頁面 下載最新的…

  • ,

    專為連接性設計的查詢語言 – Cypher

    甚麼是Cypher  Cypher 是為了滿足開發者在處理圖形數據時的需求而生的。它的設計靈感來自於 SQL,目的是提供一種易於閱讀且表達能力強的語言來操作圖形數據。與傳統的 SQL 針對表格數據操作不同,Cypher 是專門為圖形數據設計的,能夠直觀地表示節點、關係及其屬性。 Cypher 的優點 Cypher 的基本結構 在 Cypher 中,圖形被視為由節點(Nodes)和關係(Relationships)構成的網絡。每個節點和關係都可以擁有多個屬性。Cypher 查詢主要包括以下幾個部分: 與 SQL 的比較 以下是一個客戶提供的實際 SQL 查詢示例,用於了解其組織結構: 以下是等效的 Cypher 查詢: 新增圖形資料的步驟…

  • ,

    圖形資料庫的概念入門

    本文為此視頻的學習筆記 關聯式資料庫的核心概念 – ACID ACID 是一個用來描述資料庫事務正確性的術語,它代表了原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)四個關鍵特性: ACID 特性是許多關係型資料庫管理系統(RDBMS)的基礎,是它們能夠提供可靠事務處理的關鍵所在。 NoSQL:資料庫技術的演進 以前,我們使用關係型數據庫管理系統(RDBMS)來存儲數據。這種方法雖然在當時是最先進的技術,但其存在許多缺點: 隨著技術的進步,我們開始在關係型資料庫中使用表格的形式來存儲數據。這些表格使得數據更容易被人類讀懂,但一旦為了去重和保持一致性而標準化數據,就會出現以下問題: 關係型資料庫的優勢與限制 關係型資料庫的一個顯著優勢是支持ACID特性,這保證了數據一旦提交,後續查詢都能訪問到這些數據。然而,這也帶來了一些挑戰: NoSQL技術的崛起 過去十年,雲計算的出現使情況變得更加複雜。數據量爆炸性增長,我們面臨的挑戰是如何存儲這些海量數據,並使其易於查詢。傳統的關係型資料庫已經難以應對這種規模的數據,這促使了NoSQL技術的革新。 NoSQL技術的發展目的是為了更快地查詢更多的數據,這其中需要做出一些權衡,比如放棄ACID的某些要求。畢竟,在處理數以百萬計的交易時,偶爾丟失一兩筆交易可能是可以接受的。 現代資料庫的用戶接口 為了提高開發者與大數據互動的便利性,我們需要發明或普及不同的用戶接口。其中最簡單的一種是鍵值接口: 鍵值接口:用一個鍵來存儲值,之後可以用這個鍵來獲取值,但這些值對資料庫來說是不透明的,毫無意義。 如果希望資料庫能根據內容來索引和查詢這些值,文檔資料庫就派上用場了: 文檔資料庫:讓你既可以用鍵來查找文檔,也可以基於文檔的內容來進行查找,這些內容都是為了快速檢索而被索引的。 圖形資料庫入門:掌握數據關係與提升查詢效率 1. 圖形資料庫的概念 圖形資料庫主要是用來存儲和操作由節點(實體)和邊(關係)組成的圖形結構數據。與傳統的關係型資料庫不同,圖形資料庫專注於實體之間的關係,這使得它們在處理複雜且相互連接的數據時更為有效。例如,社交網絡分析、推薦系統、欺詐檢測等場景,都能從圖形資料庫的結構中獲益。…

  • ,

    Neo4j圖形資料庫介紹

    官方資訊 官方網站: https://neo4j.com/ GitHub: https://github.com/neo4j/neo4j 什麼是Neo4j? 圖形資料庫是一種非關係型的資料庫,以圖形的方式存儲和處理數據。在圖形資料庫中,數據結構主要由節點(Node)和邊(Edge)組成,其中節點代表實體,邊則代表實體間的關係。這種資料庫尤其適合解決複雜的連接問題,例如社交網絡分析、推薦系統和欺詐檢測等。 Neo4j是目前最受歡迎的圖形資料庫之一,它提供了強大的數據建模能力和高效的查詢性能。作為一款專門處理連接數據的數據庫,Neo4j從設計之初就針對數據及其關係進行了優化。作為一種原生圖形數據庫,Neo4j在結構上與其他數據存儲方式大不相同。所謂「原生」意味著每一個數據記錄或節點都包含了直接指向其相連節點的指針,這些直接指針稱為關係。節點中已包含了查找下一個節點所需的所有信息,這就構成了一個連接的圖形,即所謂的原生存儲層。 由於這個設計原理,Neo4j在查詢時不需要計算數據之間的關係,因為這些連接已經存在於數據庫中。這使得對密集連接數據的查詢速度比其他數據庫快數個量級。其他數據庫沒有保存記錄之間的直接指針,它們需要通過搜索一個稱為索引的單獨數據結構來計算連接,這一查找過程需要反复執行以找到每一個連接,不僅耗時而且隨著數據量和查詢複雜度的增加,速度會呈指數級下降,這使它們在處理關係密集型查詢時的速度遠不及Neo4j。 甚麼是圖形數據庫 圖形數據庫將數據以圖的形式表示,這裡的「圖」是數學上的概念,即由節點通過邊連接。在Neo4j中,這些邊被稱為關係。這種表示方式讓客戶能夠實現傳統數據庫無法達到的洞察,因為傳統數據庫通常只將數據表示為行和列。這些新的洞察促使企業能夠做出更多基於數據的決策。 圖形數據庫可以解決三種類型的問題:旅程問題、複雜模式匹配和圖形算法應用。例如,在供應鏈管理中,從產品的來源追踪到消費者的餐盤;或者在零售行業中,通過知識圖形來支持對話代理,讓顧客能夠查詢產品成分等信息。 四種NoSQL 非關聯性資料庫 NoSQL 非關聯性資料庫 例子 鍵-值資料庫 Hadoop HBase 記憶體資料庫 Redis 文件資料庫 Mongodb 圖形資料庫…

  • ,

    FlashAttention介紹

    官方資訊 Github: https://github.com/Dao-AILab/flash-attention 論文文檔: https://arxiv.org/abs/2205.14135 此存儲庫提供了以下論文中 FlashAttention 和 FlashAttention-2 的官方實現。可讓我們在建模時有更快的注意力,更好的並行度和工作分區。下面為一張概念示意圖: 官方所做的效能提升試驗結果如下: 甚麼是Flash Attention Flash Attention 是一種注意力算法,旨在提高基於 Transformer 的模型的效率,使其能夠處理更長的序列長度並更快地進行訓練和推理。它通過減少計算量和內存使用來實現這一點。Flash Attention 是一種快速且內存高效的精確注意力機制,其設計考慮了IO(輸入輸出)的特性。 這項技術的關鍵點 快速 (Fast) 高效內存使用 (Memory-efficient)…

  • ,

    向量搜尋資料庫的比較

    ChromaDB介紹 官方文件: https://docs.trychroma.com/getting-started GitHub: https://github.com/chroma-core/chroma Chroma是一個新的AI原生開源嵌入式資料庫,非常輕量且易用。 Chroma是開源嵌入式資料庫,它使知識、事實​​和技能可插入,從而輕鬆建立LLM應用程式。它可以運行在記憶體中(可保存在磁碟中),也可做為資料庫伺服器來使用(這和傳統資料庫類似)。 基本使用範例 Elasticsearch Vector Store Elasticsearch 是一個非常強大和靈活的搜索和分析引擎。雖然它的主要用例圍繞全文搜索,但它的用途足夠廣泛,可以用於各種其他功能。其中一個引起許多開發人員和數據科學家注意的功能是使用 Elasticsearch 作為向量資料庫。隨著 dense_vector 數據類型的出現和利用該 script_score 函數的能力,Elasticsearch 的功能已經擴展到促進向量相似性搜索。 Elasticsearch 與專用向量搜索庫相比的優點 使用 Elasticsearch 作為向量資料庫的不可否認的優勢之一是其內置功能,可以過濾對特定數據子集的查詢。當您想要縮小搜索空間範圍或應用程式需要上下文感知向量搜索時,此功能非常有用。相比之下,雖然其他專用的向量搜索庫(如 ChromaDB 和 Faiss)為純向量搜索提供了無可挑剔的速度和效率,但它們缺乏 Elasticsearch…

  • ,

    雲端現有的相似性搜尋資料庫研究

    AWS DocDB 官方網頁: https://aws.amazon.com/tw/documentdb/ Amazon DocumentDB (with MongoDB compatibility) 是一種完全托管的 NoSQL 資料庫服務,可讓開發人員輕鬆地設置、操作和擴展 MongoDB 兼容的資料庫。它提供以下功能: Amazon DocumentDB 適用於各種應用,包括: Alibaba Cloud OpenSearch Vector Store介紹 官方介紹: https://www.alibabacloud.com/help/en/open-search/vector-search-edition/introduction-to-vector-search-edition OpenSearch…

  • ,

    使用Docker來運行Ollama

    為什麼要使用Docker來運行Ollama 使用 Docker 來運行 Ollama 可以提供許多優點,包括簡化設置、可移植性、隔離、資源管理、可擴展性和可重複性。可以把Ollama變成一個API服務,提供其他的應用程式直接使用API的方式來呼叫Ollama,並運行不同的本地端模型。而把Ollama變為一個Docker服務,更可以在多台機器上分發 Ollama 模型。這對於需要在高可用性環境中運行 Ollama 的情況非常有用。 以下為Ollama的API手冊 https://github.com/ollama/ollama/blob/main/docs/api.md 利用Docker來運行服務的狀況 以下是一些使用 Docker 運行 Ollama 的具體示例: 其中最重要好處的會是第三點,當我們把本地端LLM視為一個API服務,便可以對此服務做平衡負載,並根據使用量來增加機器,擴張服務的Scale,讓整體服務具備有良好的擴充性。 安裝Ollama Docker image 官方網站: https://hub.docker.com/r/ollama/ollama Ollama…

  • ,

    Ollama – 本地端運行的LLM服務

    Ollama 介紹 Ollama 是一個開源軟體,讓使用者可以在自己的硬體上運行、創建和分享大型語言模型 (LLM) 服務。它提供了一個易於使用的平台,讓用戶無需複雜的設定即可利用 LLM 的功能。 Ollama 的主要優點包括: Ollama 可用於各種任務,包括: Ollama的優點 Ollama與LM Studio相似,都是可以於本地端運行、比較多個大語言模型的工具,並且也都是開源軟體 功能 Ollama LM Studio 原生功能集 基本 豐富 用戶界面 可使用Command line 豐富易操作的視窗介面…

  • ,

    Prompt engineering 提示工程

    獲得更好結果的六種策略  寫清楚的說明  提供參考文本 將複雜的任務拆分為更簡單的子任務 正如軟體工程中的良好做法是將複雜系統分解為一組模組化元件一樣,提交給語言模型的任務也是如此。複雜任務往往比簡單任務具有更高的錯誤率。此外,複雜任務通常可以重新定義為更簡單任務的工作流,其中早期任務的輸出用於構造後續任務的輸入。 給模型時間“思考” 如果要求將 17 乘以 28,您可能不會立即知道,但仍然可以隨著時間的推移計算出來。同樣,模型在試圖立即回答時會犯更多的推理錯誤,而不是花時間找出答案。在回答之前要求一個「思維鏈」可以説明模型更可靠地推理出正確的答案。 使用外部工具 通過向模型提供其他工具的輸出來補償模型的弱點。例如,文本檢索系統(有時稱為RAG或檢索增強生成)可以告訴模型有關相關文檔的資訊。像 OpenAI 的 Code Interpreter 這樣的代碼執行引擎可以説明模型進行數學運算和運行代碼。如果一項任務可以通過工具而不是語言模型更可靠或更高效地完成,請卸載它以充分利用兩者。 系統地測試更改 如果可以衡量性能,則更容易提高性能。在某些情況下,對提示的修改將在幾個孤立的示例上獲得更好的性能,但在更具代表性的示例集上會導致整體性能較差。因此,為了確保更改對性能有淨積極影響,可能需要定義一個全面的測試套件(也稱為“eval”)。 更多範例請見: https://platform.openai.com/docs/guides/prompt-engineering/strategy-write-clear-instructions


17年資歷女工程師,專精於動畫、影像辨識以及即時串流程式開發。經常組織活動,邀請優秀的女性分享她們的技術專長,並在眾多場合分享自己的技術知識,也活躍於非營利組織,辦理活動來支持特殊兒及其家庭。期待用技術改變世界。

如果你認同我或想支持我的努力,歡迎請我喝一杯咖啡!讓我更有動力分享知識!