ByteBrain x 清華 VLDB25|時序多模態大語言模型 ChatTS

資料來源:火山引擎-開發者社區

近年來,多模態大語言模型(MLLM)發展迅速,并在圖像、視頻、音頻等領域取得了突破性成果。然而,相較于這些研究較為成熟的模態,時間序列這一類型的數據與大模型結合的系統研究卻較為匱乏。盡管已經有 TimeLLM 等工作嘗試將 LLM 應用于時序任務,但這些研究大多局限于預測類任務,無法滿足更復雜的理解與推理需求。

隨著大語言模型在企業智能運維、金融分析等需要處理時序數據的應用場景中應用愈發廣泛,“理解時間序列”的能力已成為多模態智能系統的一項基礎能力。為此,我們提出了 ChatTS ,一個基于純合成數據(synthetic data)微調的具備時間序列理解與推理能力的多模態大模型,該模型在多個真實和合成數據集上取得的顯著效果提升。

ChatTS論文(ChatTS: Aligning Time Series with LLMs via Synthetic Data for Enhanced Understanding and Reasoning)成功入選數據庫頂級會議 VLDB 2025。

論文 arXiv 鏈接:https://arxiv.org/pdf/2412.03104

ChatTS 代碼和數據集:https://github.com/NetmanAIOps/ChatTS

模型參數:https://huggingface.co/bytedance-research/ChatTS-14B


背景


時間序列廣泛存在于各類應用系統中,例如系統監控中的 CPU 使用率、電商業務中的訪問請求數、金融交易市場中的股價波動等。理解這些時間序列的趨勢、周期性、異常波動以及跨維度間的因果關系,是輔助人工或者自動分析的重要手段。傳統的時間序列分析方法多基于統計模型或 AI 模型,而這些方法通常需要大量任務特定的訓練、特定的數據預處理和結構化的輸入輸出,缺乏通用性和可解釋性。
而 LLM 的強語言建模能力和泛化推理能力,為“用自然語言理解時間序列”提供了可能。然而,目前主流的 LLM 并不能直接處理原始的時間序列數組數據,現有工作要么將時間序列轉成文本、圖像輸入,要么依賴 agent 工具進行間接分析,但都存在不同程度的限制。而目前 Time Series 和 LLM 結合的工作(TimeLLM,LLM4TS)等都局限于特定的時序任務,無法做問答和推理,從而難以接入現有的 LLM 工作流進行應用。
因此,我們思考,是否可以構建一種 “時間序列原生”的多模態 LLM,使其像處理圖像一樣,能夠原生地理解時間序列的形狀、波動與語義含義,并進行進一步的問答和推理?為此,我們提出了 ChatTS,一種原生支持多變量、時序、問答與推理的多模態大語言模型。ChatTS 引來了 HuggingFace 產品負責人 Victor Mustar,以及 SparkNLP 項目負責人 Maziyar Panahi 等人的轉發和點贊:



?


挑戰
構建時間序列多模態大模型面臨諸多挑戰:

  • 數據稀缺。與圖文、語音等領域已有大規模的對齊數據集不同,時間序列與文本的對齊數據幾乎不存在。
  • 時間序列具有高度結構性。時間序列包含的趨勢、周期、局部波動、噪聲等形態特征極其豐富,而要將這些復雜的數值特征準確地映射成語言,需要非常精準的對齊策略。
  • 時間序列輸入往往是多變量、不同長度的。變量之間的協同波動與因果關系極具分析價值,但也加大了理解難度。
  • 現有的評估基準未覆蓋時間序列多模態建模任務,這限制了模型的訓練和驗證。

因此,我們的目標是構建一個具備通用時序理解與推理能力的時間序列 MLLM,同時解決數據生成、建模、訓練與評估全鏈條的問題。
現有方法
我們將現有嘗試將 LLM 應用于時間序列的方式歸為三類:文本化方法、圖像化方法與 agent 方法。


文本化(Text-Based)方法最為直接,即將時間序列值編碼成長文本輸入 LLM。這類方法可保留精確信息,且模型能直接做數值計算,但存在顯著的上下文長度限制,且無法處理多變量場景。圖像化(Vision-Based)方法借助可視化圖像(如時序折線圖)輸入視覺大模型,具備捕捉全局趨勢與形狀的優勢,但面臨圖像分辨率不足、細節丟失的問題。Agent 方法(Agent-Based)通過將 LLM 與各種分析工具(如異常檢測器、STL 分解器、相關性分析器等)結合,引導模型思考與調用工具,但該方式嚴重依賴工具準確性、推理鏈條極長且容易出現幻覺,不適合復雜分析任務。
因此,針對時序理解與推理任務,我們認為應構建一種新范式的 TS-MLLM(Time Series Multimodal LLM),能直接原生接收時間序列數組作為輸入,并在此基礎上學習如何對齊語言與數值波動,進而完成自然語言下的理解與推理任務。
我們的方法
為了突破訓練數據匱乏這一核心瓶頸,我們從“合成”出發,設計了一整套基于屬性控制的時間序列生成與對齊框架。該方法分為兩個關鍵部分:合成數據生成與模型訓練。
整體框架設計


面對時間序列與語言對齊數據的極度匱乏問題,我們從根本上摒棄了依賴真實數據標注的路徑,而是選擇“純合成驅動”的方式,設計出一個端到端的數據生成、模型訓練框架。該框架的核心思想是:將時間序列看作一種原生模態。通過對時間序列屬性結構的拆解與控制,構建高度對齊的多模態訓練數據;然后再用這些數據,去訓練一個能夠原生處理時間序列數組輸入的多模態大語言模型。這一過程分為三個關鍵部分:屬性驅動的數據生成、TSEvol 和原生多模態編碼。
屬性驅動(Attribute-Based)的時間序列生成


我們定義了一套詳細的時間序列屬性體系,覆蓋四大類別:趨勢 Trend(如穩定上升、階段性變化)、周期 Seanonality(如正弦波、方波)、局部波動 Local Fluctuation(如尖峰、突降)、噪聲 Noise(如平滑、高頻抖動)等。這些屬性具有明確的語義與參數,構成了“屬性池”。每個時間序列由若干屬性組合生成,并對應一段高質量自然語言描述。這種組合方式不僅確保了生成時間序列的多樣性與真實性,還能精確對應語言文本的細節表達,避免了傳統“圖文描述不符”的問題。
為了增強場景適應性,我們引入了“指標采樣器”,從真實的 AIOps、金融等領域中提取了數百個常見監控指標名,并通過 GPT 判斷其物理屬性適合的波動組合,確保合成數據具備現實世界合理性。
Time Series Evol-Instruct 問答擴展機制


僅有靜態屬性描述還不夠,我們還需訓練模型掌握復雜的提問、比較與推理能力。為此,我們設計了一個時間序列版本的 Evol-Instruct 框架,稱為 TSEvol。該方法以一組基礎 Q&A 為種子,依托已有attribute pools,不斷演化出多種新問題形式。
演化策略包括:增加變量數量(單變量 → 多變量)、切換問題類型(從識別到比較、推理)、引入真實業務語境(如數據庫性能故障場景)等。每一輪演化都能推動模型在理解復雜關系、使用自然語言總結規律、基于規則反推原因等方向逐步提升。
原生多模態模型設計


模型結構方面,我們基于 Qwen2.5-14B-Instruct,設計了一個時間序列原生感知的輸入結構。時間序列被切分為小 patch,并用輕量級 MLP 編碼,嵌入到原始文本上下文中。這種 patch-level 插入方式保留了時序的原始結構信息,同時使模型能在語言語境中定位具體的時間序列引用,實現上下文感知建模。


與之配套,我們設計了“數值保值歸一化機制”。考慮到原始數值在實際業務中非常重要(如最大CPU使用率、磁盤IO等),我們在對序列進行0-1歸一化時,同時將歸一化參數以文本形式保留進 prompt,使模型既能學習序列形態,又不丟失絕對數值的意義。
模型訓練:兩階段微調流程
為了讓 ChatTS 具備原生的時間序列理解與推理能力,我們設計了一套基于全合成數據的兩階段訓練流程,分別是大規模模態對齊訓練(Alignment Training)與監督微調(SFT)。


在對齊訓練階段,我們使用由屬性生成器構建的基礎訓練集,包括三類數據集:UTS(單變量全局與局部屬性識別)、MTS-Shape(多變量趨勢相關性)、MTS-Local(多變量局部波動相關性)。這些數據集采用固定模板與少量 GPT 生成文本進行組合構建,總規模為 10 萬組問答樣本,重點強化模型的對齊能力,尤其是多變量之間的形態關聯與同步波動感知。
在監督微調階段,我們引入了基于 TSEvol 演化生成的復雜問答數據,涵蓋歸納、演繹、比較、因果等推理任務。同時,還引入一部分 Instruction-following 風格的數據,用于保持模型對格式指令的理解能力。這一階段的目標是讓模型能在對齊的基礎上,具備靈活應對真實世界提問、進行深入分析與回答的能力。
此外,我們特別設計了一套保留數值含義的訓練機制,在訓練中加入了大量數值類子任務(如最大值/最小值/平均值、局部波動幅度、周期與趨勢振幅等),強化模型對數值細節的精準識別能力。所有數據的時間序列長度在 64 到 1024 之間變化,模型結構采用全參數微調,訓練平臺為 8×A800 GPU,使用 DeepSpeed + LLaMA-Factory,底模為 QWen2.5-14B-Instruct。
實驗效果


我們設計了一套全面的評估任務體系,覆蓋單變量與多變量的趨勢識別、周期分析、噪聲判斷、局部波動檢測、相關性推理等任務,并在此基礎上評估了模型在歸納、演繹、因果、多序列比較等多種推理任務中的表現。


我們一共收集了 3 個數據集用于評估。其中,數據集 A 包含了真實的時序序列,我們通過人工標注收集了 525 個問答題,包含了對齊和推理任務。數據集 B 是通過 synthetic time series generator 生成的評測集。MCQ2 是論文:《Language Models Still Struggle to Zero-shot Reason about Time Series》(https://arxiv.org/pdf/2404.11757)開源的數據集,用于評估比較推理的性能。
對齊任務評估:全方位精準識別時間序列屬性


在對齊任務中,ChatTS 被要求識別時間序列中的趨勢、周期、噪聲、局部波動等屬性,涵蓋了分類任務(如波動類型)和數值預測任務(如周期長度、波動幅度)兩類。我們在真實數據集與合成數據集上進行評測,結果顯示,ChatTS 在所有指標上均大幅超越 GPT-4o 及其他基線方法,分類任務 F1 提升 46%–75%,數值任務相對準確率提升超過 80%。
在多變量任務上,ChatTS 優勢更為顯著。相比于文本方法因 prompt 長度受限導致的信息缺失、圖像方法因分辨率不足難以精確判斷多個指標走勢,以及 Agent 方法因工具調用鏈冗長導致的性能不穩定,ChatTS 能一次性感知多個變量間的變化趨勢與關系,做出準確判斷,且 token 成本極低,顯示出極強的實用性與高效性。
推理任務評估:從歸納到因果,全面提升時序理解深度


推理任務包括四類:歸納、演繹、因果、比較。實驗結果顯示,ChatTS 在所有推理任務上均優于基線,平均提升 25.8%。其中在歸納任務中,ChatTS 能準確結合時間序列與其現實物理含義之間的聯系,展示出對業務語義的理解力;在因果任務中,模型能基于指標間波動幅度與先后順序判斷潛在故障傳播路徑,顯示出類似專家的分析能力。
這也印證了 ChatTS 所采用的屬性生成與 TSEvol 問答演化機制,在增強模型對時間序列物理含義與邏輯結構的理解能力上起到了核心作用。
合成數據有效性分析:不靠真實標注,依然超越大模型



?


我們通過消融實驗,驗證了屬性生成機制與 TSEvol 對模型能力的提升效果。使用 GPT 生成的序列與問答數據替換屬性生成數據后,模型在局部波動識別與數值預測方面性能大幅下降;去除 TSEvol 后,模型在因果與比較等復雜推理任務中表現明顯退步。這表明,我們提出的兩種機制在確保數據可控性、語義一致性與推理多樣性方面,遠超現有 GPT 生成方法,是推動多模態 LLM 理解時序的關鍵路徑。
時間序列模態作用分析:時序模態帶來的效果+成本雙重優勢


為了評估原生時間序列輸入的重要性,我們將時間序列數組替換為文本 token 輸入,并用相同數據訓練文本-only 模型。結果顯示,在多變量任務上,文本-only 模型幾乎完全失效,出現嚴重幻覺和無法區分變量的情況;而在單變量任務上雖然在噪聲識別任務上略有優勢,但整體表現遠不如 ChatTS。
即使在 Qwen2.5-32B 上使用相同數據訓練文本-only 模型,最終效果也不如 ChatTS-14B,說明時間序列原生模態輸入是性能提升的關鍵,且在推理任務中尤其有效。此外,時間序列模態相較于文本編碼,在成本開銷上也具有顯著的優勢,這進一步說明了時間序列模態對于時序分析的意義。
與 Agent 方法對比:原生時序能力是有效的


盡管 Agent 方法引入了多個專業分析工具,我們發現即便使用“完美工具”(即通過synthetic dataset的label,能夠準確地控制agent tool的準確率),其在多變量任務與推理任務上仍不如 ChatTS。這是因為 Agent 方法在工具調用鏈中存在大量冗余思考、工具選擇錯誤、響應格式錯誤等問題,容易造成失誤。而 ChatTS 的一體化建模方式省去了調用邏輯,具備端到端的直接推理能力,整體效率更高、結果更穩定。我們發現,基于agent的模型在分析時間序列時,通常會出現錯誤工具調用(Error Tool Using)的問題。這是因為,大模型在做時序問答時,需要先根據自身的經驗知識,來選擇正確的工具提取time series的對應特征,并結合推理能力回答問題。然而實際場景中,問答的場景可能是多樣化的,LLM只有能夠準確地理解任務需求和解決方法的前提下,才能夠盡可能地比較準確地調用這些tool。這也導致了其效果在與ChatTS的比較中處于劣勢。
Case Studies


左右滑動查看更多
為了展示 ChatTS 在應對真實時間序列以及復雜問題下的能力,我們做了幾個基于真實時間序列的 Case Studies。可以發現,ChatTS 不論是在基本的形態分析,還是在精確的數值分析(例如輸出具體的局部波動高度)等方面,都表現出了較好的效果。此外,我們還可以將 ChatTS 與一些實際應用結合,例如基于多條時間序列,結合專家知識,對故障去進行初步的診斷和分析。
思考與展望
ChatTS 展示了一個全新的范式:通過可控合成數據,訓練具備真實理解能力的多模態大模型。我們從零出發,僅使用合成數據訓練出了一個在真實任務中表現優異的模型,這說明“數據生成 + 模態對齊”的范式具備高度潛力。當前,ChatTS 聚焦在時序分析的理解與推理任務,未來我們可以拓展其能力至更高階任務(如預測、分類等),甚至結合外部知識庫、專家規則,實現更強的決策支持能力。
此外,我們注意到 agent 方法盡管當前效果不佳,但在特定工具準確性極高的情況下具備一定潛力。因此,我們也思考是否可以將 ChatTS 作為 agent 的理解模塊,再與精準工具協同配合,形成更強的混合型分析框架。此外,我們也考慮將DeepSeek-R1這樣的深度思考能力引入ChatTS,進一步提升其時序推理能力。
總結
本文分享了我們提出的時間序列多模態大模型 ChatTS 的整體設計與實現思路。從數據稀缺問題出發,我們構建了一套基于屬性的時間序列與文本對齊的合成數據體系,并結合進化式問答生成算法,完成了 ChatTS 的全流程訓練。在多個評估任務中,ChatTS 均顯著超越現有主流大模型,驗證了“原生時間序列模態”結合“精準屬性對齊”的有效性。我們相信,這一思路為時間序列與大模型的結合提供了新的方向,也為多模態智能系統提供了新的范式支撐。
團隊
我們來自字節跳動的 ByteBrain 團隊與清華大學NetMan實驗室。ByteBrain團隊致力于用 AI 技術,為各種基礎架構與系統(數據庫、云原生、大數據、網絡等)降本增效、提升穩定性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/88199.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/88199.shtml
英文地址,請注明出處:http://en.pswp.cn/web/88199.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

WPF學習筆記(25)MVVM框架與項目實例

MVVM框架與項目實例一、MVVM框架1. 概述2. 核心組件與優勢一、MVVM項目1.普通項目2. MVVM架構3. MVVM項目實例1. 項目準備2. LoginViewModel與Login2. MainWindowViewModel4. MVVM項目優化1. BaseViewModel2. RealyCommand3. 效果展示總結一、MVVM框架 1. 概述 官方文檔&…

MySQL實操

## 基于MySQL#先啟動MySQL服務#第一次登錄[rootlocalhost ~]# mysql -uroot -P3306#密碼登錄[rootlocalhost ~]# mysql -uroot -pEnter password: Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 9Server version: 8.0.41 Source dist…

ez_rust_writeup

一道簡單的[[rust逆向]] #rust逆向 #位運算 題目信息 文件名:ezrust.exe 題目附件:https://wwfj.lanzoul.com/iczMR30k5j4h 密碼:bueq 題目分析 1. 初步分析 這是一道Rust編寫的逆向題目。通過IDA分析可以看到,這是一個典型的flag驗證程序。 …

【QT】-隱式轉換 explicit用法

通俗易懂的解釋:隱式轉換 vs 顯式轉換 什么是隱式轉換? 隱式轉換就是編譯器偷偷幫你做的類型轉換,你甚至都沒意識到它發生了。 例子: cpp 運行 double x = 5; // 隱式:int → double(5 變成 5.0) int y = x * 2.5; // 隱式:double → int(截斷小數部分) 構造函數的隱…

Django核心知識點詳解:JSON、AJAX、Cookie、Session與用戶認證

1. JSON數據格式詳解1.1 什么是JSON?JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,具有以下特點:獨立于語言,幾乎所有編程語言都支持易于人閱讀和編寫易于機器解析和生成基于文本&#xff…

[特殊字符] Python 實戰 | 批量統計中文文檔詞頻并導出 Excel

本文展示如何用 Python 腳本: 批量讀取文件夾中的多篇中文文檔; 用 jieba 分詞并統計詞頻(過濾停用詞與單字符); 將各文檔詞頻輸出為對應 Excel 文件; 是文本分析、內容審查、報告編寫中的實用技巧。 &…

共享打印機(詳細操作+常見問題:需輸入用戶名密碼、無法連接等)

文章目錄一、設置打印機共享的準備工作二、Windows系統下打印機共享設置1. 啟用主機打印機共享2. 客戶端添加共享打印機三、我所遇到的問題及解決方法客戶機遇到輸入用戶名、密碼錯誤代碼 0x0000011b一、錯誤代碼 0x0000011b 的含義二、解決方法添加打印機沒成功其他問題此次打…

在 Windows 系統上配置 [go-zero](https://go-zero.dev) 開發環境教程

💻 在 Windows 系統上配置 go-zero 開發環境教程 本教程將詳細介紹如何在 Windows 系統上配置 go-zero 微服務框架的開發環境,包括依賴安裝、路徑配置、常見問題等。 🧱 一、前置環境安裝 1. 安裝 Go 下載地址:https://go.dev/…

開源=白嫖?

國內有一個非常濃重的思想,開源,開源就是免費,就是白嫖,就是不花錢,白給。那么什么是開源?“源代碼”是軟件中大多數計算機用戶從未見過的部分;它是計算機程序員可以操縱的代碼,以改變一個軟件(…

2048-控制臺版本

2048控制臺版 文章目錄2048控制臺版實現效果:在這里插入圖片描述庫函數使用:初始化變量功能函數實現:狀態判斷函數int Judge();數字生成函數 bool CtreateNumber()打印游戲界面 void…

提取出Wallpaper Engine壁紙的mpkg類靜態壁紙

github 地址 https://github.com/notscuffed/repkg先下載軟件2853…26目錄這樣獲取有的直接mp4格式,就不能用這方法準備好后 cmd 進入repkg目錄 執行 repkg extract ./294...333/scene.pkg

AI健康小屋“15分鐘服務圈”:如何重構社區健康生態?

AI健康小屋作為“15分鐘服務圈”的核心載體,通過技術賦能與場景重構,正推動社區健康生態從被動治療向主動預防、從單一服務向全周期管理轉型。那我們應該如何重構社區健康生態呢?服務模式創新1.全時段覆蓋AI健康小屋通過分時段服務滿足不同群…

[netty5: WebSocketFrame]-源碼分析

WebSocketFrame WebSocketFrame 是 Netty 中用于表示 WebSocket 消息幀的抽象基類,封裝了幀的內容、分片標志和擴展位信息,供各類具體幀(如文本、二進制、控制幀)繼承使用。 public abstract class WebSocketFrame extends Buffer…

【加解密與C】非對稱加解密(三)ECC橢圓曲線

ECC橢圓曲線的基本概念橢圓曲線密碼學(Elliptic Curve Cryptography,ECC)是一種基于橢圓曲線數學的公鑰密碼體制。與傳統的RSA相比,ECC在相同安全級別下使用更短的密鑰,計算效率更高,適用于資源受限的環境。…

力扣網編程150題:加油站(貪心解法)

一. 簡介 前面一篇文章使用暴力解法來解決力扣網150 題目:加油站。文章如下: 力扣網編程150題:加油站(暴力解法)-CSDN博客 暴力解法就是遍歷了所有元素作為起始點的可能,算法時間復雜度為 O(n*n)&#x…

windwos 設置redis長久密碼不生效

1、設置長久密碼redis.windows.conf 文件修改對應的設置密碼2、啟動時設置對應的加載配置文件

物聯網(IoT)領域存在多種協議

物聯網(IoT)領域存在多種協議,主要是因為不同的應用場景對通信的需求差異很大,包括實時性、帶寬、功耗、設備兼容性、安全性等。以下從協議多樣性的原因和你提到的具體協議(如 dc3-driver-* 模塊)展開說明&…

二、encoders

文章目錄一、batch_encoder (用于 BFV)1. 概述2. 數學原理3. 使用方法4. 代碼示例二、ckks_encoder (用于 CKKS)在 1. bfv_basics.cpp 中,我們展示了如何使用BFV方案執行非常簡單的計算。計算是在 plain_modulus 參數的模下執行的,并且 只使用了 BFV 明文…

數據一致性解決方案總結

數據一致性解決方案總結 我們在系統中,主要進行了數據冗余,那么就會帶來數據一致性的問題。常見的數據一致性問題有:數據庫主從同步延遲導致的讀數據不一致;數據庫主主之間數據的不一致;緩存和數據庫之間的數據不一致。…

17.Spring Boot的Bean詳解(新手版)

文章目錄1. 什么是Bean?從零開始理解1.1 Bean的定義1.2 為什么需要Bean?1.3 Bean vs 普通對象的區別2. Spring容器:Bean的家2.1 什么是Spring容器?2.2 容器的工作流程3. Bean的聲明方式詳解3.1 使用Component及其專門化注解3.1.1 …