← Мақалаларға оралу
July 29, 2025
5 мин оқу

Диффузиялық модельдер криптовалюта анархиясына қарсы: DDPM неге Bitcoin құлдырауын сіздің астрологыңыздан жақсы болжай алады

Диффузиялық модельдер криптовалюта анархиясына қарсы: DDPM неге Bitcoin құлдырауын сіздің астрологыңыздан жақсы болжай алады
#diffusion models
#cryptocurrency
#forecasting
#machine learning
#Bitcoin
#DDPM
#time series
🧠
Part 2 of 4 · Collection
Deep Learning for Markets

Кіріспенің орнына: классикалық машиналық оқыту қолын қашан көтереді

Криптовалюта нарықтары — дәстүрлі болжау әдістері келіп өлетін жер. LSTM модельдері Bitcoin-нің құбылмалылығынан дірілдей бастайды, ARIMA модельдері Ethereum-нің күрт секірістерінен истерикаға түседі, ал классикалық нейрондық желілер Dogecoin графигін көргенде жай ғана қолын көтереді. Содан кейін сахнаға диффузиялық модельдер шығады — бастапқыда компьютерлерді мысықтарды салуға үйреткен технология, ал қазір Bitcoin тағы қашан келесі "Қара дүйсенбіні" ұйымдастыратынын болжауға тырысады.

Қызығы, Stable Diffusion мен DALL-E-ді дүниеге әкелген архитектура қазір қаржылық уақыт қатарларын талдауда белсенді қолданылады. Және білесіз бе не? Ол өте жақсы жұмыс істейді. Әсіресе классикалық тәсілдер криптовалютаның шектен тыс құбылмалылығынан галлюцинация көре бастағанда.

Market Chaos vs Diffusion Signal Хаостан анықтыққа: диффузиялық модельдер криптовалюта нарықтарының жоғары шуылды ортасынан құрылымдық сигналдарды қалай алады

Диффузиялық модельдер уақыт қатарларымен неге жалпы жұмыс істейді?

Диффузиялық модельдер — бұл шудан бастапқы деректерді реттелген "шусыздандыру" процесі арқылы қалпына келтіруге үйренетін генеративті модельдер класы. Негізгі идея қарапайым: біз нақты деректерді аламыз, оларға таза шуға айналғанша біртіндеп Гаусс шуын қосамыз, содан кейін нейрондық желіні осы процесті кері бағытта орындауға үйретеміз.

Қаржылық уақыт қатарлары контекстінде бұл модельдің сигналды шудан сөзбе-сөз мағынада ажыратуды үйренетінін білдіреді. Криптовалюта нарықтары өздерінің шектен тыс шуылдылығымен танымал — Elon Musk-тың кездейсоқ твиттері, дүрбелең сату, FOMO сатып алу. Диффузиялық модель осы бүкіл хаос арқылы құрылымдық заңдылықтарды "көруге" үйрене алады.

Математикалық тұрғыдан процесс былай көрінеді:

  • Тікелей процесс: q(xtxt1)=N(xt;1βtxt1,βtI)q(x_t | x_{t-1}) = \mathcal{N}(x_t; \sqrt{1-\beta_t}x_{t-1}, \beta_t I)
  • Кері процесс: pθ(xt1xt)=N(xt1;μθ(xt,t),Σθ(xt,t))p_\theta(x_{t-1} | x_t) = \mathcal{N}(x_{t-1}; \mu_\theta(x_t, t), \Sigma_\theta(x_t, t))

мұндағы βt\beta_t — шу кестесі, ал θ\theta — нейрондық желі параметрлері.

Diffusion Process for Time Series Реттелген шусыздандыру: қаржылық уақыт қатарларын қайта құру үшін тікелей процесс (шу қосу) және кері процесс (шусыздандыру)

Нақты кітапханалар мен дайын шешімдер

1. Diffusion-TS: уақыт қатарлары үшін әмбебап сарбаз

GitHub: Y-debug-sys/Diffusion-TS

Бұл ICLR 2024-те жарияланған уақыт қатарлары үшін диффузиялық модельдермен жұмыс істеуге арналған флагман кітапхана. Негізгі артықшылығы — ол шартты (болжау) және шартсыз (генерация) режимдерде де жұмыс істейді.

import torch
from diffusion_ts import DiffusionTS
import pandas as pd

btc_data = pd.read_csv('btc_prices.csv')
prices = torch.tensor(btc_data['close'].values).float()

model = DiffusionTS(
    input_dim=1,
    hidden_dim=64,
    num_layers=4,
    max_sequence_length=100,
    num_diffusion_steps=1000
)

model.fit(prices, epochs=100)

forecast = model.predict(prices[-100:], forecast_horizon=24)

Модель уақыт қатарының семантикалық мағынасын түсінуге көмектесетін декомпозициясы бар, бөлінген уақыттық репрезентациялары бар энкодер-декодер трансформерін қолданады.

2. TSDiff: Amazon-ның криптовалюта хаосына тәсілі

GitHub: amazon-science/unconditional-time-series-diffusion

Amazon Research өзін-өзі бағыттау механизмі арқылы болжаумен жұмыс істей алатын шартсыз диффузиялық модель — TSDiff-ті ұсынды. Ерекшелігі — модель шарттандыру үшін қосымша желілерді қажет етпейді.

from tsdiff import TSDiff
import numpy as np

crypto_data = load_cryptocurrency_data(['BTC', 'ETH', 'LTC'])

tsdiff = TSDiff(
    input_size=crypto_data.shape[-1],
    hidden_size=128,
    num_layers=6,
    diffusion_steps=1000,
    beta_schedule='cosine'
)

tsdiff.train(crypto_data, num_epochs=200)

synthetic_crypto = tsdiff.sample(num_samples=1000, length=365)

forecast = tsdiff.forecast_with_guidance(
    context=crypto_data[-30:],  # last 30 days
    forecast_length=7,          # week forecast
    guidance_scale=2.0
)

3. FinDiff: кестелік қаржылық деректер диффузиямен кездеседі

Мақала: FinDiff синтетикалық қаржылық кестелік деректерді генерациялау үшін арнайы жасалған. Түрлі нарықтық сценарийлерді құруға жарамды.

import torch
from findiff import FinancialDiffusion

market_data = pd.read_csv('crypto_market_features.csv')

financial_features = [
    'price', 'volume', 'market_cap', 'volatility',
    'rsi', 'macd', 'bollinger_bands'
]

findiff = FinancialDiffusion(
    categorical_columns=['exchange', 'crypto_type'],
    numerical_columns=financial_features,
    embedding_dim=32,
    hidden_dim=256
)

findiff.fit(market_data[financial_features])

synthetic_scenarios = findiff.generate(n_samples=10000)

stress_test_data = findiff.generate_conditional(
    conditions={'volatility': '>0.8'}  # high volatility
)

4. pytorch-forecasting арқылы жылдам іске асыру

Диффузиялық модельдерді дәлелденген архитектуралармен бірге тез сынап көргісі келетіндерге:

import lightning.pytorch as pl
from pytorch_forecasting import TimeSeriesDataSet, TemporalFusionTransformer
from diffusion_wrapper import DiffusionTFT  # hypothetical wrapper

crypto_df = pd.read_csv('hourly_crypto_data.csv')

training = TimeSeriesDataSet(
    crypto_df,
    time_idx="hour",
    target="btc_price",
    group_ids=["crypto_pair"],
    max_encoder_length=168,  # week back
    max_prediction_length=24,  # day forward
    time_varying_unknown_reals=["price", "volume", "volatility"],
    time_varying_known_reals=["hour_of_day", "day_of_week"],
)

diffusion_tft = DiffusionTFT.from_dataset(
    training,
    hidden_size=64,
    attention_head_size=4,
    diffusion_steps=100,
    noise_schedule='linear'
)

trainer = pl.Trainer(max_epochs=50, accelerator="gpu")
trainer.fit(diffusion_tft, train_dataloaders=training.to_dataloader(train=True))

Практикалық нәтижелер: диффузия классикаға қарсы

Зерттеулер қызық нәтижелер көрсетеді. "Prediction of Cryptocurrency Prices through a Path Dependent Monte Carlo Simulation" мақаласында авторлар Мертонның секіру-диффузия моделін — стохастикалық процестер мен машиналық оқытудың гибридін — қолданады. Нәтиже қандай? Модель криптовалюта нарықтарына тән біртіндеп бағаның өзгеруін де, күрт секірістерді де қамтуға қабілетті болды.

Басқа бір зерттеу диффузиялық компоненттері бар ADE-TFT (Advanced Deep Learning-Enhanced Temporal Fusion Transformer) MAPE, MSE және RMSE метрикалары бойынша классикалық тәсілдерден айтарлықтай асып түсетінін көрсетті. 8 жасырын қабатты конфигурациядағы нәтижелер әсіресе әсерлі.

Forecasting with Confidence Intervals Ықтималдық болжау: сенімділік аралықтарымен болашақ баға траекторияларын генерациялау үшін диффузиялық модельдерді пайдалану

Қаржыдағы диффузиялық модельдердің қараңғы жағы

Бірақ шынын айтайық. Диффузиялық модельдер сиқырлы таяқша емес. Оларда байыпты мәселелер бар:

1. Есептеу ресурстарына ашкөздік

Криптовалюта деректерінде диффузиялық модельді оқыту байыпты есептеу ресурстарын қажет етеді. Егер модельіңіз 1000 диффузия қадамын жасаса, бір болжам алу үшін нейрондық желі арқылы 1000 өту қажет. Бұл жоғары жиілікті трейдинг үшін онша қолайлы емес.

2. Қара аққу мәселесі

Криптовалюта нарықтары экстремалды оқиғалармен танымал — бір күнде 50% құлдырау, Қытайдағы криптовалюта тыйымы, ірі биржаның бұзылуы. Тарихи деректерде оқытылған диффузиялық модельдер мұндай оқиғаларды нашар болжайды.

3. Режимге тәуелділік

Криптовалюта нарықтарында түрлі мінез-құлық режимдері бар — бычий нарық, аюлы нарық, бүйірлік қозғалыс. Диффузиялық модель бір режимде керемет жұмыс істей алады, ал басқасында мүлдем сәтсіздікке ұшырауы мүмкін.

Оңтайландыру және жылдамдату: GPU-да банкрот болмау жолы

Диффузия үшін токендерді біріктіру

GitHub: dbolya/tomesd

Token Merging кітапханасы артық токендерді біріктіру арқылы сапаны жоғалтпай диффузиялық модельдерді 1.24 есе жылдамдатуға мүмкіндік береді:

import tomesd
from diffusion_model import CryptoDiffusion

model = CryptoDiffusion(...)

tomesd.apply_patch(model, ratio=0.7)  # remove 30% of tokens

forecast = model.predict(btc_data)

Кэштелген адаптивті токендерді біріктіру

GitHub: omidiu/ca_tome

CA-ToMe кеңістіктік және уақыттық оңтайландыруды біріктіреді, бұл уақыт қатарлары үшін әсіресе маңызды:

from ca_tome import apply_ca_tome

apply_ca_tome(
    model, 
    threshold=0.7,
    caching_steps=[0, 10, 20, 30, 40]  # cache every 10 steps
)

Практикалық мысал: Bitcoin үшін толық конвейер

Диффузиялық модельдерді Bitcoin болжау үшін қолданудың шынайы мысалы:

import torch
import pandas as pd
import numpy as np
from sklearn.preprocessing import MinMaxScaler
from diffusion_ts import DiffusionTS

class CryptoDiffusionPipeline:
    def __init__(self, sequence_length=100, forecast_horizon=24):
        self.sequence_length = sequence_length
        self.forecast_horizon = forecast_horizon
        self.scaler = MinMaxScaler()
        self.model = None
        
    def prepare_data(self, crypto_data):
        """Data preparation considering cryptocurrency features"""
        crypto_data['returns'] = crypto_data['close'].pct_change()
        crypto_data['volatility'] = crypto_data['returns'].rolling(24).std()
        crypto_data['rsi'] = self.compute_rsi(crypto_data['close'])
        
        features = ['close', 'volume', 'volatility', 'rsi']
        scaled_data = self.scaler.fit_transform(crypto_data[features])
        
        return scaled_data
    
    def train_model(self, data):
        """Training diffusion model"""
        self.model = DiffusionTS(
            input_dim=data.shape[1],
            hidden_dim=128,
            num_layers=6,
            diffusion_steps=1000,
            noise_schedule='cosine',
            loss_type='l2'
        )
        
        X, y = self.create_sequences(data)
        
        self.model.fit(
            X, y,
            epochs=200,
            batch_size=32,
            learning_rate=1e-4,
            validation_split=0.2
        )
    
    def forecast(self, recent_data):
        """Forecasting with confidence intervals"""
        predictions = []
        
        for _ in range(100):  # Monte Carlo sampling
            pred = self.model.sample_forecast(
                context=recent_data[-self.sequence_length:],
                horizon=self.forecast_horizon
            )
            predictions.append(pred)
        
        predictions = np.array(predictions)
        
        mean_pred = np.mean(predictions, axis=0)
        std_pred = np.std(predictions, axis=0)
        
        return {
            'forecast': mean_pred,
            'confidence_95': mean_pred + 1.96 * std_pred,
            'confidence_5': mean_pred - 1.96 * std_pred
        }

pipeline = CryptoDiffusionPipeline()
btc_data = pd.read_csv('btc_hourly.csv')

prepared_data = pipeline.prepare_data(btc_data)
pipeline.train_model(prepared_data)

forecast_result = pipeline.forecast(prepared_data)
print(f"Bitcoin forecast for next 24h: {forecast_result['forecast'][-1]:.2f}")

Диффузиялық модельдерді қашан пайдалану керек?

Пайдалану құнды, егер:

  • Сізде көп тарихи деректер болса (кем дегенде бір жылдық сағаттық деректер)
  • Сіз ұзақ оқытуды көтере алсаңыз (GPU-да күндер-апталар)
  • Бэктестинг үшін синтетикалық сценарий генерациясы қажет болса
  • Көпайнымалы уақыт қатарларымен жұмыс істесеңіз
  • Болжамдардың белгісіздігін бағалау маңызды болса

Пайдалану құнды емес, егер:

  • Нақты уақытта жылдам болжамдар қажет болса
  • Қысқа уақыт қатарларымен жұмыс істесеңіз
  • Есептеу ресурстары шектеулі болса
  • Модельдің түсіндірілуі сын тұрғысынан маңызды болса

Крипто аналитикадағы диффузиялық модельдердің болашағы

Қаржыдағы диффузиялық модельдер 2010 жылғы криптовалюталар сияқты. Технология шикі, ресурс сыйымды, бірақ әлеуеті орасан зор. Біз қазірдің өзінде гибридті тәсілдерді көріп отырмыз: DDPM + Transformer, диффузия + күшейтілген оқыту, нарық режимдері үшін шартты диффузия.

Келесі серпіліс мультимодалды диффузияда күтілуде — тек бағаларды ғана емес, сонымен қатар жаңалықтарды, әлеуметтік сигналдарды, ончейн метрикаларды ескеретін модельдер. Elon Musk-тың твиті мен Dogecoin қозғалысы арасындағы корреляцияны "көретін" диффузиялық модельді елестетіп көріңіз.

Қорытынды: диффузия революция емес, эволюция ретінде

Диффузиялық модельдер криптовалюта болжауының классикалық тәсілдерін алмастырмайды. Олар оларды толықтырады. LSTM жылдам болжамдар үшін қалады, ARIMA — стационарлық учаскелер үшін, ал диффузия сценарий генерациясы мен экстремалды құбылмалылықпен жұмысты өз мойнына алады.

Негізгі сабақ: криптовалюталар әлемінде сиқырлы таяқшалар жоқ. Тек құралдарды ақылмен үйлестіру, нарықты терең түсіну және кез келген "революциялық" шешімдерге деген дені сау скептицизм ғана бар. Диффузиялық модельдер — қуатты құрал, бірақ есіңізде болсын: олар тек хаоста заңдылықтарды табуға тырысады. Ал хаос, біз білетіндей, өзін болжауды онша ұнатпайды.

P.S.: Егер сіздің диффузиялық модельіңіз Bitcoin болжауында 95% дәлдік көрсетсе — кодты екі рет тексеріңіз. Ең қызығы, бір жерде деректер ағып жатыр 😉

blog.disclaimer

Authors

Eugen Soloviov
Eugen Soloviov

Trading-systems engineer

Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.

Newsletter

Нарықтан бір қадам алда болыңыз

AI сауда талдаулары, нарық аналитикасы және платформа жаңалықтары үшін біздің ақпараттық бюллетеньге жазылыңыз.

Біз сіздің жекелігіңізді құрметтейміз. Кез келген уақытта жазылымнан шығуға болады.