企業大模型如何成爲自己數據的“百科全書”?

作者 | 郭煒

編輯 | Debra Chen

在當今的商業環境中,大數據的管理和應用已經成爲企業決策和運營的核心組成部分。然而,隨着數據量的爆炸性增長,如何有效利用這些數據成爲了一個普遍的挑戰。

本文將探討大數據架構、大模型的集成,以及如何將大模型集成到公司大數據架構中,並使用Apache SeaTunnel和WhaleStudio將公司內部數據進行“百科全書化”,利用大數據和大模型來提升企業運營效率。

大模型在整體公司大數據架構中的位置

當今,無論大企業還是小公司,其實都會遇到同樣的問題:公司裏沉澱的數據量巨大,但到底該怎麼使用?

大模型的橫空出世讓數據利用有了全新的使用途徑,問題是如何大量獲得公司的數據,變成“你”的大模型?

以及如何將大模型灌入公司內部數據,並“百科全書”化?

大數據與大模型架構概覽

爲了更好地回答這些問題,我們首先需要弄清楚大模型在企業複雜的數據結構中處於什麼位置。目前,全球流行的大數據結構圖如下所示:

file

企業在處理大數據時,通常會將數據分爲實時數據和批量數據兩大類。實時數據可以來自車聯網、數據庫日誌、點擊流等多種來源,而批量數據則可能包括文件、報表、CSV文件等。這些數據可以通過各種工具和技術,如Apache Kafka、Amazon Kinesis等進行處理,最終被整合到企業的大數據分析系統中。

大模型在大數據架構中扮演着至關重要的角色。它們能夠處理和分析大量數據,爲企業提供深入的洞察和預測。大模型可以通過兩種主要方法進行集成:

  1. 基於開源模型的優化:企業可以使用開源的大模型,並根據自己的數據進行優化,以提高模型的性能。這種方法雖然複雜,對於普通用戶來做操作比較困難,但可以訓練出高度定製化的模型,具體訓練方法可以參考《用一杯星巴克的錢,訓練自己私有化的ChatGPT
  2. 數據向量化:另一種方法是將數據向量化,即將數據轉換爲大模型易於處理和查詢的格式,然後快速地將其放入企業自己的向量數據庫中。

這就是大模型在大數據架構中所處的位置和作用,大模型作爲大數據架構的核心技術組件,在數據轉換、預測分析和智能應用等方面發揮着不可替代的作用,是實現大數據價值的關鍵所在。

數據高速公路:Apache SeaTunnel& WhaleStudio

數據同步是大數據架構中的另一個關鍵環節。使用如Apache NiFi、Apache Spark、Sqoop等工具,可以實現數據在不同系統和數據庫之間的實時和批量同步。這些工具支持跨雲和混合雲環境,能夠處理來自各種數據源的數據,並將其同步到目標數據庫或數據倉庫中。但是因爲依賴開源,它們的數據源支持力度非常有限。

Apache SeaTunnel:新一代實時多源數據同步工具,大數據的高速公路

有一個非常形象的比喻可以簡單明瞭地概括Apache SeaTunnel的作用——大數據的高速公路。它可以把各種各樣的數據源,如MySQL、RedShift、Kafka等數據,實時和批量數據同步至目標數據庫。區別於Apache NiFi、Apache Spark,新一代實時多源數據同步工具Apache SeaTunnel目前已經可以支持上百種源數據庫/目的地的數據同步與集成,並支持以跨雲和混合雲的方式同步數據,便於不同的用戶進一步進行大數據和大模型訓練。

file

Apache SeaTunnel 典型案例

目前,Apache SeaTunnel在全球已經有大量用戶,其中一個典型用戶是JP Morgan(摩根大通銀行)。

file

摩根大通銀行是一家全球知名的擁有超過 200,000 名員工的金融巨頭,其中包括 30,000 多名數據專業人員(工程師、分析師、科學家和顧問),正在與複雜的遺留系統和新興的數據環境作鬥爭。該機構在 10 多個不同的數據平臺組成的迷宮中運營,需要一種強大、安全且高效的數據集成方法。

對摩根大通銀行來說,最重要的挑戰是通過複雜的隱私和訪問控制對數據進行攝取和處理,這雖然對於數據保護至關重要,但通常會延遲數據集成過程。再加上該公司向AWS的過渡階段(兩年後仍在進行中),以及對Snowflake等現代數據庫解決方案的實驗,對靈活的數據集成解決方案的需求很迫切。

在追求敏捷性的過程中,摩根大通銀行對比了若干流行的數據同步產品,比如Fivetran、Airbyte,但最終選擇了支持Spark集羣來實現最佳性能的替代方案——Apache SeaTunnel。

原因就在於SeaTunnel與其現有的Spark基礎設施兼容,一個關鍵優勢是Apache SeaTunnel與Java代碼庫的無縫集成,允許從摩根大通銀行的主要編碼環境直接觸發數據遷移作業。摩根大通銀行利用SeaTunnel從 Oracle、DB2、PostgreSQL、DynamoDB和 SFTP文件等源獲取數據,在Spark集羣上處理數據,並最終將其加載到S3(摩根大通銀行的集中式數據存儲庫)中,隨後集成到Snowflake和Amazon Athena進行高級分析。

Apache SeaTunnel的一個突出功能是能夠顯式地處理數據類型轉換,確保不同系統之間的數據完整性,這是摩根大通銀行銀行多元化數據生態系統的重要組成部分。

爲什麼我們需要Apache SeaTunnel?

既然已經有Flink、Spark等各種流行的數據處理工具存在,爲什麼我們需要Apache SeaTunnel呢?和摩根大通銀行一樣,深入瞭解這個工具,你會發現這個問題並不難回答。

  • Apache SeaTunnel支持開發版,目前支持130+ Connectors,商業版產品更是(WhaleTunnel)支持150+種數據庫,這是其他產品所無法比擬的;

file

  • SeaTunnel性能優勢:比Airbyte快30倍,比DataX快30%;(性能報告可參考《最新性能對比報告:SeaTunnel 是 Airbyte 30 倍!》

file

  • 易於部署:可以在3分鐘內部署Apache SeaTunnel,支持在Spark/Flink/Zeta上運行。

file

使用方式簡單

在使用方式上,Apache SeaTunnel也秉持着爲廣泛大數據從業者服務爲宗旨,使用方式以簡單易用爲主要設計目標。

  • 可以使用SQL-like代碼創建同步作業。
  • 支持Source Connector、Sink Connector和Transform操作。

file

想要更簡單的方式?AWS Market Place上的WhaleStudio

如果創建代碼來進行數據集成對我們來說有挑戰,還有更加簡單易用的方式可以選擇。白鯨開源基於Apache DolphinScheduler和Apache SeaTunnel打造的商業產品WhaleStudio ,是分佈式、雲原生並帶有強大可視化界面的DataOps系統,增加了商業客戶所需的企業級特性,零基礎用戶也可以簡單上手:

  • 所見即所得的數據Mapping和處理
  • 全可視化操作的調度和數據處理,無需代碼處理
  • 全面兼容AWS及多雲、混合雲架構
  • 多團隊協作和開發
  • 性能卓越、超過150種數據源的連接,包括
    • AWS S3, Aurora, Redshift
    • SAP
    • Oracle, MySQL
    • Hudi, Iceberg

簡單來說,WhaleStudio的使用流程和大模型集成可以簡單概括爲以下幾點:

  1. 數據源連接:首先,需要在WhaleStudio中配置數據源。這包括CSV文件、數據庫、雲存儲服務等。用戶可以通過拖放的方式將數據源組件添加到工作流中,並設置連接參數。
  2. 數據轉換:數據在傳輸過程中可能需要進行清洗和轉換以適應目標系統。WhaleStudio提供了多種數據轉換工具,包括數據過濾、字段映射、數據合併等。
  3. 數據加載:轉換後的數據需要加載到目標數據庫或數據倉庫中。WhaleStudio支持多種目標系統,包括關係型數據庫、NoSQL數據庫和雲數據服務。
  4. API集成:爲了使數據能夠被大模型理解,需要通過API將數據轉換爲特定的格式。WhaleStudio可以調用外部API,並將轉換後的數據輸出到大模型中。
  5. 流程監控:用戶可以實時監控數據流的狀態,查看數據同步的進度和任何可能出現的錯誤。
  6. 數據同步與更新
    1. 定時任務:WhaleStudio支持定時任務,允許用戶設置在特定時間自動運行數據流,以確保數據的實時更新。
    2. 數據版本控制:通過版本控制,用戶可以追蹤數據流的變更歷史,並在必要時回滾到之前的版本。

如何將大模型灌入公司內部數據,並“百科全書”化

file

如上文所述數據的“高速公路”有了,那麼如何通過“高速公路”將數據放到大模型中並利用呢?

上圖以一個示例展示了大模型如何將公司內部數據“百科全書”化的概略圖,將MySQL數據庫中的所有關於圖書的文章,通過圖形化的方式輸入大模型中,即以向量的方式讓大模型理解,並最終將輸入的數據以語言的方式進行問答。下面以實戰案例詳細解說此流程。

實戰案例:在AWS上利用WhaleStudio+大模型將圖書館檢索從書名檢索到語義檢索

現有的圖書搜索解決方案(例如公共圖書館使用的解決方案)十分依賴於關鍵詞匹配,而不是對書名實際內容的語義理解。因此會導致搜索結果並不能很好地滿足我們的需求,甚至與我們期待的結果大相徑庭。這是因爲僅僅依靠關鍵詞匹配是不夠的,因爲它無法實現語義理解,也就無法理解搜索者真正的意圖。

有更好的方法可以讓我們更加準確、高效地進行圖書搜索。通過使用特定的API,可以將圖書數據轉換爲大模型能夠理解的格式,從而實現語義級別的搜索和問答功能。這種方法不僅提高了搜索的準確性,還爲企業提供了一種新的數據利用方式。

WhaleStudio是一個強大的數據集成和處理平臺,它允許用戶通過圖形化界面來設計和實施數據流。WhaleStudio被用於將圖書館的圖書數據集成到大模型中,以便進行更深層次的語義搜索和問答。

下面我們來演示一下如何使用WhaleStudio、Milvus和OpenAI進行相似度搜索,實現對整個書名的語義理解,從而讓搜索結果更加精準。

準備工作

  1. 在實驗之前,我們需要去官網獲取一個OpenAI的token,

  2. 在AWS MarketPlace部署 WhaleStudio

  3. 然後部署一個Milvus的實驗環境(https://milvus.io/docs/install_standalone-docker.md)。

  4. 我們還需要準備好將用於這個例子的數據,可以從這裏下載,把它放到/tmp/milvus_test/book下(https://www.kaggle.com/datasets/jealousleopard/goodreadsbooks)

  5. 配置WhaleStudio任務

建立項目→新建工作流定義→建立SeaTunel任務→copy腳本到任務裏

file

  1. 腳本代碼
env {
  # You can set engine configuration here
  execution.parallelism = 1
  job.mode = "BATCH"
  checkpoint.interval = 5000
  #execution.checkpoint.data-uri = "hdfs://localhost:9000/checkpoint"
}

source {
  # This is a example source plugin **only for test and demonstrate the feature source plugin**
  LocalFile {
    schema {
      fields {
        bookID = string
        title_1 = string
        title_2 = string
      }
    }
    path = "/tmp/milvus_test/book"
    file_format_type = "csv"
  }
}

transform {
}

sink {
  Milvus {
    milvus_host = localhost
    milvus_port = 19530
    username = root
    password = Milvus
    collection_name = title_db
    openai_engine = text-embedding-ada-002
    openai_api_key = sk-xxxx
    embeddings_fields = title_2
  }
}
  1. 點擊運行

file

  1. 簡單數據預處理也可以利用可視化界面

file

file

  1. 查詢數據庫,確認已經有數據

file

  1. 使用如下代碼通過語義搜索書名
import json
import random
import openai
import time
from pymilvus import connections, FieldSchema, CollectionSchema, DataType, Collection, utility

COLLECTION_NAME = 'title_db'  # Collection name
DIMENSION = 1536  # Embeddings size
COUNT = 100  # How many titles to embed and insert.
MILVUS_HOST = 'localhost'  # Milvus server URI
MILVUS_PORT = '19530'
OPENAI_ENGINE = 'text-embedding-ada-002'  # Which engine to use
openai.api_key = 'sk-******'  # Use your own Open AI API Key here

connections.connect(host=MILVUS_HOST, port=MILVUS_PORT)

collection = Collection(name=COLLECTION_NAME)

collection.load()


def embed(text):
    return openai.Embedding.create(
        input=text, 
        engine=OPENAI_ENGINE)["data"][0]["embedding"]
def search(text):
    # Search parameters for the index
    search_params={
        "metric_type": "L2"
    }

    results=collection.search(
        data=[embed(text)],  # Embeded search value
        anns_field="title_2",  # Search across embeddings
        param=search_params,
        limit=5,  # Limit to five results per search
        output_fields=['title_1']  # Include title field in result
    )

    ret=[]
    for hit in results[0]:
        row=[]
        row.extend([hit.id, hit.score, hit.entity.get('title_1')])  # Get the id, distance, and title for the results
        ret.append(row)
    return ret

search_terms=['self-improvement', 'landscape']

for x in search_terms:
    print('Search term:', x)
    for result in search(x):
        print(result)
    print()
  1. 運行結果

file

結果: 如果我們按照之前的老方法關鍵詞搜索,書名中必須包含自我提升、提升等關鍵詞;但是提供大模型進行語義級別的理解,則可以檢索到更加符合我們需求的書名。比如在上面的例子中,我們搜索的關鍵詞爲self-improvement(自我提升),展示的書名《關係之舞:既親密又獨立的相處藝術》、《尼各馬可倫理學》等雖然不包含相關關鍵詞,卻很明顯更加符合我們的要求。

結語

大數據和大模型爲企業提供了前所未有的數據處理能力和洞察力。通過有效的數據架構設計、大模型集成、實時與批量數據處理以及數據同步,企業可以更好地利用其數據資源,提升運營效率,並在競爭激烈的市場中保持領先。

Apache SeaTunnel和WhaleStudio作爲企業數據高速公路,幫助快速對接企業內部數據,實現數據的向量化和“百科全書化”。其中,WhaleStudio作爲一個數據集成工具,爲企業提供了一個簡單、高效且功能強大的解決方案,讓企業可以輕鬆地將數據同步到大模型中,實現更深層次的數據分析和應用,從而提升企業的數據處理能力和業務洞察力。

本文由 白鯨開源科技 提供發佈支持!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章