測入門:從安裝到第一份 120 點預(yù)測)
Kronos K線預(yù)測入門從安裝到第一份 120 點預(yù)測【免費下載鏈接】KronosKronos: A Foundation Model for the Language of Financial Markets項目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos假設(shè)你手里有一段 5 分鐘 K 線數(shù)據(jù)想知道接下來 120 根 K 線大概怎么走。這正是 Kronos 要解決的問題它是一個面向金融 K 線預(yù)測的開源金融大模型輸入歷史行情輸出未來的價格與成交量序列。下面按「裝環(huán)境 → 跑第一次預(yù)測 → 看懂原理 → 回測驗證 → 換成自己的數(shù)據(jù)」的順序走一遍不需要你有金融時序建模背景。項目速覽Kronos 能做什么選哪個規(guī)格Kronos 做的事情可以概括為兩點把 OHLCV 行情開、高、低、收、量即一根 K 線的完整信息當(dāng)作一種「語言」來理解再順著這種語言把未來的 K 線「寫」出來。它基于全球 40 多家交易所的 K 線數(shù)據(jù)預(yù)訓(xùn)練提供三個可直接加載的開源規(guī)格區(qū)別主要在參數(shù)量和能處理的序列長度模型規(guī)格參數(shù)量最大上下文適合場景Kronos-mini4.1M2048低配機器跑通流程需要看更長歷史Kronos-small24.7M512日常預(yù)測與回測顯存壓力適中Kronos-base102.3M512追求更高預(yù)測上限、顯存夠用新手建議直接從小規(guī)格開始512 的上下文意味著喂給它最近 512 根 K 線作為參考窗口對分鐘級數(shù)據(jù)已經(jīng)覆蓋相當(dāng)長的歷史而加載速度在普通 GPU 上完全可接受。安裝 Kronos克隆倉庫并裝好依賴這一節(jié)的目標(biāo)是讓環(huán)境在 3 分鐘內(nèi)可用。要求 Python 3.10 及以上版本然后執(zhí)行g(shù)it clone https://gitcode.com/GitHub_Trending/kronos14/Kronos cd Kronos pip install -r requirements.txt依賴清單很短核心是 PyTorch、pandas 和 Hugging Face Hub模型權(quán)重從這個庫自動下載。如果你的機器上已有其他項目占用了全局環(huán)境建議建一個獨立的虛擬環(huán)境再執(zhí)行安裝后面「避坑」一節(jié)會說原因。跑通第一次 K 線預(yù)測最少必要代碼這一節(jié)只回答一個問題代碼最少能寫到多短加載分詞器和模型、組裝預(yù)測器、調(diào)用預(yù)測核心就 5 步from model import Kronos, KronosTokenizer, KronosPredictor tokenizer KronosTokenizer.from_pretrained(NeoQuasar/Kronos-Tokenizer-base) model Kronos.from_pretrained(NeoQuasar/Kronos-small) predictor KronosPredictor(model, tokenizer, max_context512) pred_df predictor.predict(dfx_df, x_timestampx_ts, y_timestampy_ts, pred_len120)輸入x_df是一張 CSV 讀出來的 pandas 表格必須包含open、high、low、close四列volume、amount兩列可選沒有就填 0x_timestamp是歷史數(shù)據(jù)對應(yīng)的時間戳y_timestamp是你想預(yù)測的未來時間點。輸出pred_df里就是未來 120 個時間點上每個 OHLCV 字段的預(yù)測值。上面是預(yù)測曲線與真實值疊加的效果上方是收盤價下方是成交量。想要直接能跑的完整腳本含畫圖看 examples/prediction_example.py多只股票一起預(yù)測則參考 examples/prediction_batch_example.py它用的是predict_batch接口一次并行處理多支標(biāo)的。它憑什么能預(yù)測分詞器 自回歸的雙階段機制這一節(jié)用幾句話把原理講清楚不用看源碼。Kronos 把預(yù)測拆成兩步第一步由一個專門的 K 線分詞器tokenizer可以把理解成把連續(xù)數(shù)字翻譯成「文字」的工具把 OHLCV 這些連續(xù)值量化成一串離散 token而且 token 是分層設(shè)計的——粗粒度 token 記錄長周期趨勢細粒度 token 記錄短期波動第二步交給一個自回歸 Transformer自回歸指像大語言模型逐字補全句子那樣根據(jù)前文逐個預(yù)測下一個 token基于已知的 token 序列依次「續(xù)寫」出未來的 token最后再逆量化回 K 線數(shù)值。整個架構(gòu)如下圖理解了這一點后面很多細節(jié)就順理成章為什么輸入長度要限制在 512small/base 的上下文上限因為第二步的模型一次最多處理這么長的 token 序列。為什么微調(diào)要分兩階段因為第一步和第二步是兩套獨立參數(shù)。讀懂回測曲線Kronos 效果的兩個觀察角度預(yù)測好不好不能只看單支股票的曲線得放到回測里檢驗。Kronos 提供了一套基于 Qlib 的回測腳本finetune/qlib_test.py模型在測試集上生成預(yù)測信號按預(yù)測收益選前 K 只股票構(gòu)成組合再和滬深 300 基準(zhǔn)對比。產(chǎn)出的累計收益曲線可以這樣讀看策略線和基準(zhǔn)線虛線的相對位置整段周期里策略線在上方說明組合跑贏了指數(shù)看超額收益部分扣除成本后曲線仍然向上代表信號本身有效而不是靠杠桿或擇時僥幸看回撤深度兩段上升之間如果曲線沒有大幅下探說明策略在不同行情下的波動可控。對高頻場景倉庫里還有一組用港股 5 分鐘 K 線阿里巴巴 09988微調(diào)后的預(yù)測樣例位于 finetune_csv/ 目錄讀這張圖重點看兩處預(yù)測段的價格形態(tài)方向、波動幅度與真實段的銜接是否自然以及成交量預(yù)測是否跟得上真實放量的節(jié)奏。單次預(yù)測的偏離很正常重點是整體趨勢和量級是否對得上。把 Kronos 微調(diào)到你的數(shù)據(jù)上兩階段命令預(yù)訓(xùn)練模型見過的是全球混合數(shù)據(jù)換成你熟悉的標(biāo)的時微調(diào)能讓它適應(yīng)你的數(shù)據(jù)分布。流程固定為兩階段各一條命令python finetune/qlib_data_preprocess.py # 數(shù)據(jù)切分為訓(xùn)練/驗證/測試集 torchrun --standalone --nproc_per_node2 finetune/train_tokenizer.py # 第一階段微調(diào)分詞器 torchrun --standalone --nproc_per_node2 finetune/train_predictor.py # 第二階段微調(diào)預(yù)測器所有路徑和超參數(shù)回看窗口、預(yù)測窗口、batch size、學(xué)習(xí)率等集中在 finetune/config.py 里開跑前先按你的環(huán)境改掉數(shù)據(jù)目錄和模型路徑。為什么要先動分詞器再動預(yù)測器因為預(yù)測器是在分詞器定義的 token 空間里做學(xué)習(xí)的——先把分詞器調(diào)成認得你的數(shù)據(jù)預(yù)測器才能站在一個合適的地基上。如果你手頭是 CSV 格式的行情列名要求見 finetune_csv/README_CN.md也可以走 finetune_csv/train_sequential.py 這條更簡單的路線一條命令順序完成兩個階段。避坑三則依賴、顯存、效果依賴沖突導(dǎo)致裝不上。Kronos 依賴里鎖定了若干版本如 pandas 2.2.2如果和你系統(tǒng)里其他項目沖突用虛擬環(huán)境隔離最省事python -m venv kronos_env激活后再執(zhí)行安裝命令。顯存不夠用。依次嘗試把batch_size調(diào)小、改用 Kronos-mini參數(shù)量只有 small 的六分之一、縮短輸入序列長度。mini 規(guī)格還額外支持 2048 的上下文小顯存下反而是長序列任務(wù)的好選擇。預(yù)測效果不理想。預(yù)測是采樣出來的T溫度和top_p兩個參數(shù)直接控制輸出的隨機程度溫度越低預(yù)測越貼近歷史慣性、越「保守」top_p調(diào)小會收窄候選范圍。倉庫回測腳本里用的是T0.6、top_p0.9可以作為起點再上下微調(diào)。另外單次預(yù)測偏離大不一定代表模型不行配合sample_count多采樣幾條路徑取平均能顯著平滑隨機性。小結(jié)與下一步Kronos 把 K 線變成 token 序列預(yù)測問題就轉(zhuǎn)化成了類似大語言模型的續(xù)寫問題small 規(guī)格 512 上下文足夠走完「預(yù)測 → 回測」完整流程是最穩(wěn)妥的起步配置換成自己的數(shù)據(jù)時記住「先分詞器、后預(yù)測器」這條順序。下一步建議用你自己的 CSV 數(shù)據(jù)把回測跑一遍或者試試predict_batch同時預(yù)測一籃子股票。提醒一句以上所有預(yù)測與回測結(jié)果僅供參考不構(gòu)成投資建議?!久赓M下載鏈接】KronosKronos: A Foundation Model for the Language of Financial Markets項目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考