Spaces:
Sleeping
Sleeping
ykjung
feat: implement chunked Parquet uploads to Hugging Face for memory efficiency and improved data handling
dd5d980 A newer version of the Gradio SDK is available: 6.10.0
metadata
title: CreateDataSet
emoji: ๐
colorFrom: gray
colorTo: green
sdk: gradio
sdk_version: 6.6.0
app_file: app.py
pinned: false
CreateDataSet
๋์ค๋ฅ/๋ด์์ฆ๊ถ๊ฑฐ๋์(US) ํฐ์ปค์ ์ผ๋ด ๋ฐ์ดํฐ๋ฅผ ์์งํด Hugging Face Dataset์ผ๋ก ์ ๋ก๋ํ๋ Gradio ์ฑ์ ๋๋ค.
๋ฒํผ ๋ก์ง ์ค๋ช
์ด ์ฑ์ ํต์ฌ ๋์์ ์๋ 2๊ฐ ๋ฒํผ์ผ๋ก ์คํ๋ฉ๋๋ค.
1) ๐ ํฐ์ปค ๋ชฉ๋ก ๋ฏธ๋ฆฌ๋ณด๊ธฐ
UI ์ฐ๊ฒฐ:
preview_btn.click(fn=preview_tickers, inputs=[], outputs=[output_log])
์คํ ํจ์:
preview_tickers()
๋ด๋ถ ๋ก์ง:
get_all_us_tickers()ํธ์ถ- ์ผํ ์คํฌ๋ฆฌ๋(
yf.screen)๋ก ๊ฑฐ๋์๋ณ ํฐ์ปค ์์ง- NASDAQ:
NMS,NGM,NCM - NYSE:
NYQ
- NASDAQ:
- ํฐ์ปค ํํฐ ์ ์ฉ
-,.,$ํฌํจ ํฐ์ปค ์ ์ธ- 5๊ธ์์ด๋ฉฐ ๋ง์ง๋ง์ด
W,R,U์ธ ํ์์ฑ ํฐ์ปค ์ ์ธ
- ์ค๋ณต ์ ๊ฑฐ + ์ ๋ ฌ
- ๋ก๊ทธ ํ
์คํธ ๋ฐํ
- ๋์ค๋ฅ ๊ฐ์
- ๋ด์์ฆ๊ถ๊ฑฐ๋์ ๊ฐ์
- ์ ์ฒด ๊ฐ์
- ๊ฐ ๊ฑฐ๋์ ์ 20๊ฐ ์ํ ํฐ์ปค
ํน์ง:
- ์ค์ ๋ฐ์ดํฐ ์์ง/์ ๋ก๋๋ ์ํํ์ง ์๊ณ , ์์ง ๋์ ํฐ์ปค ๋ชฉ๋ก๋ง ๋น ๋ฅด๊ฒ ํ์ธํฉ๋๋ค.
- ๊ฒฐ๊ณผ๋ ์ค๋ฅธ์ชฝ
๋ก๊ทธ ์ถ๋ ฅํ ์คํธ๋ฐ์ค์ ํ์๋ฉ๋๋ค.
2) ๐ ํ์ดํ๋ผ์ธ ์์
UI ์ฐ๊ฒฐ:
start_btn.click(fn=run_pipeline, inputs=[hf_token_input, all_dataset_input, recent_dataset_input, batch_size_input, period_input, checkpoint_batch_input], outputs=[output_log])
์คํ ํจ์:
run_pipeline(hf_token, all_dataset_name, recent_dataset_name, batch_size, period, checkpoint_batch_size, progress=gr.Progress())
์ฌ์ ์กฐ๊ฑด:
HF_TOKEN์ด ํ์ํฉ๋๋ค.- ํ ํฐ์ด ์์ผ๋ฉด ์ฆ์ ์คํจ ๋ฉ์์ง๋ฅผ ๋ฐํํ๊ณ ์ข ๋ฃํฉ๋๋ค.
๋จ๊ณ๋ณ ๋ก์ง:
- ํฐ์ปค ๋ชฉ๋ก ์์ง
get_all_us_tickers()ํธ์ถ- ์ ์ฒด ๋์ ํฐ์ปค ๊ฐ์ ๊ณ์ฐ
- ๊ธฐ์กด ๋ฐ์ดํฐ์
๋ก๋ + ์ฌ๊ฐ ๋์ ๊ณ์ฐ
- ๊ธฐ์กด
all,30d๋ฐ์ดํฐ์ ๋ก๋ ์๋ - ์ด๋ฏธ ์์ง๋ ํฐ์ปค๋ฅผ ์ ์ธํ๊ณ ์ด๋ฒ ์คํ ๋์ ํฐ์ปค๋ง ๊ณ์ฐ
- ๊ธฐ์กด
- ํฐ์ปค๋ณ ๊ฐ๊ฒฉ ๋ฐ์ดํฐ ์์ง
- ๊ฐ ํฐ์ปค์ ๋ํด
fetch_ticker_data(ticker)์คํ yf.Ticker(ticker).history(period=period, interval="1d")ํธ์ถ- ์ปฌ๋ผ ์ ๋ฆฌ:
Ticker,Date,Open,High,Low,Close,Volume - ์ซ์ ์ปฌ๋ผ ๋ฐ์ฌ๋ฆผ(์์์ 4์๋ฆฌ)
- ์ฅ์ค ๋ฏธํ์ ์ข
๊ฐ ์ ์ธ ๋ก์ง ์ ์ฉ
- ๋ด์ ์๊ฐ ๊ธฐ์ค
- ๋ง๊ฐ ํ์ ์ (today) ๋ฐ์ดํฐ๋ ์ ์ธ
- ์คํจ ์ ์ต๋ 3ํ ์ฌ์๋
- 10ํฐ์ปค๋ง๋ค 0.5์ด ๋๊ธฐ(ํธ์ถ ์ฐจ๋จ ์ํ)
- ์ค์ ํ ๊ฐ๊ฒฉ(
checkpoint_batch_size)๋ง๋ค ์์ง ๋ฒํผ๋ฅผ Parquet ์ฒญํฌ๋ก ์ ๋ก๋ - ์ฒญํฌ ์ ๋ก๋ ํ ๋ฉ๋ชจ๋ฆฌ ๋ฒํผ๋ฅผ ์ฆ์ ๋น์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ ํ
- ๊ฐ ํฐ์ปค์ ๋ํด
- ์ต์ข
๋ณํฉ ๋ฐ์
- ๋ง์ง๋ง ๋ฏธ๋ฐ์ ๋ฒํผ๋ฅผ ์ฒญํฌ ์ ๋ก๋๋ก ๋ฐ์
- ์ต๊ทผ 30์ผ ๋ฐ์ดํฐ์
๊ฐฑ์
- ํฐ์ปค๋ณ ์ต๊ทผ 30์ผ ๋ฐ์ดํฐ ์ฒญํฌ๋ฅผ ํจ๊ป ์ ๋ก๋
- Hugging Face ์
๋ก๋
- ๋ด๋ถ์ ์ผ๋ก
HfApi.upload_file(..., path_in_repo="data/chunks/...parquet")๋ฐฉ์ ์ฌ์ฉ - ๋์ฉ๋ ์ ์ฒด ๋ฐ์ดํฐํ๋ ์ ์ฌ์ ๋ก๋๋ฅผ ํผํด์ ๋ฉ๋ชจ๋ฆฌ ํผํฌ๋ฅผ ๋ฎ์ถค
- ๋ด๋ถ์ ์ผ๋ก
- ์๋ฃ ๋ก๊ทธ ๋ฐํ
- ์์/์ข ๋ฃ ์๊ฐ, ์ฑ๊ณต/์คํจ ๊ฐ์, ์ ๋ก๋ ๊ฒฐ๊ณผ๋ฅผ ํ ์คํธ๋ก ๋ฐํ
์งํ๋ฅ (Progress Bar):
- ์์ง ์์:
0 - ๋ฐ์ดํฐ ๋ณํฉ:
0.9 - 30์ผ ํํฐ๋ง:
0.93 - ์
๋ก๋:
0.95 - ์๋ฃ:
1.0
3) โก ์ค์๊ฐ ์์
UI ์ฐ๊ฒฐ:
realtime_btn.click(fn=run_realtime_update, inputs=[hf_token_input, all_dataset_input, recent_dataset_input], outputs=[output_log])
์คํ ํจ์:
run_realtime_update(hf_token, all_dataset_name, recent_dataset_name, progress=gr.Progress())
ํต์ฌ ๋ชฉ์ :
- ๋ฐ์ดํฐ์ ์ ์ด๋ฏธ ๋ฑ๋ก๋ ํฐ์ปค๋ค์ ๊ธฐ์ค์ผ๋ก TradingView Screener์์ ์ค๋ ๋ฐ์ดํฐ๋ฅผ ์ผ๊ด ์กฐํ
all๋ฐ์ดํฐ์ : ์ค๋ ๋ฐ์ดํฐ ์ถ๊ฐ๋ง(append-only)30d๋ฐ์ดํฐ์ : ์ค๋๋ ๋ฐ์ดํฐ ์ ๊ฑฐ ํ ์ค๋ ๋ฐ์ดํฐ ๋ฐ์
๋จ๊ณ๋ณ ๋ก์ง:
- ์ฅ์ค ์ฌ๋ถ ํ์ธ (์ธ๋จธํ์ ์๋ ๋ฐ์)
America/New_York๊ธฐ์ค ์๊ฐ์ผ๋ก ์ ๊ท์ฅ(09:30~16:00) ์ฌ๋ถ ํ๋จ- ์ฅ์ค์ด๋ฉด ๋ก๊ทธ์
์ฅ์ค์ ๋๋ค.์ถ๋ ฅ
- ๊ธฐ์กด ๋ฐ์ดํฐ์
๋ก๋
- HF Hub์์
all,30d๋ฐ์ดํฐ์ ๋ก๋ - ์กฐํ ํฐ์ปค๋ ์ฐ์
30d์Ticker๋ชฉ๋ก ์ฌ์ฉ (์์ผ๋ฉดall์ฌ์ฉ)
- HF Hub์์
- ์ค๋ ๋ฐ์ดํฐ ์ค๋ณต ์์ง ์ฒดํฌ
all๋ฐ์ดํฐ์ ์์ ์ค๋ ๋ ์ง(๋ด์ ๊ธฐ์ค) ํ ํ์ธ- ๋์ ํฐ์ปค๊ฐ ๋ชจ๋ ์ค๋ ๋ ์ง๋ก ์ด๋ฏธ ์กด์ฌํ๋ฉด
์ด๋ฏธ ์์งํ์ต๋๋ค์ถ๋ ฅ ํ ์ข ๋ฃ
- TradingView ์ผ๊ด ์กฐํ
- Yahoo๊ฐ ์๋
https://scanner.tradingview.com/america/scan์ฌ์ฉ - ํฐ์ปค๋ณ
NASDAQ/NYSE/AMEX์ฌ๋ณผ์ ํจ๊ป ์กฐํ - ์์ ์ปฌ๋ผ:
close/open/high/low/volume
- Yahoo๊ฐ ์๋
all์ ๋ฐ์ดํธ (์ถ๊ฐ๋ง)- ์ค๋ ๋ฐ์ดํฐ๊ฐ ์๋ ํฐ์ปค๋ง ์ ๊ท ํ์ผ๋ก ์ถ๊ฐ
30d์ ๋ฐ์ดํธ (๊ต์ฒด+์ ๋ฆฌ)- ๊ฐ์ ํฐ์ปค์ ์ค๋ ํ์ ์ต์ ๊ฐ์ผ๋ก ๊ต์ฒด
- ํฐ์ปค๋ณ ์ต๊ทผ 30์ผ๋ง ์ ์งํ๋๋ก ํํฐ๋ง
- HF ์
๋ก๋
all,30d๋ ๋ฐ์ดํฐ์ ์ ๊ฐ๊ฐ push
์ ๋ ฅ๊ฐ ์ค๋ช
ํ๊น ํ์ด์ค ํ ํฐ (HF_TOKEN)- ๋ฐ์ดํฐ์ ์ ๋ก๋ ์ธ์ฆ์ฉ
์ ์ฒด๊ธฐ๊ฐ ๋ฐ์ดํฐ์ ์ด๋ฆ (all)- ์:
username/us-stocks-daily-all
- ์:
์ต๊ทผ 30์ผ ๋ฐ์ดํฐ์ ์ด๋ฆ (30d)- ์:
username/us-stocks-daily-30d
- ์:
๋ก๊ทธ ์ถ๋ ฅ ๋ฐฐ์น ํฌ๊ธฐ- ๋ช ๊ฐ ํฐ์ปค๋ง๋ค ์ค๊ฐ ์งํ ๋ก๊ทธ๋ฅผ ๋จ๊ธธ์ง ์ค์
์กฐํ ๊ธฐ๊ฐ (Yahoo period)- ์:
max,10y,5y,2y,1y,6mo,3mo,1mo - ํ์ดํ๋ผ์ธ ์คํ ์๊ฐ์ ์ค์ด๊ณ ์ถ๋ค๋ฉด
max๋์ ๋ ์งง์ ๊ธฐ๊ฐ์ ์ ํ
- ์:
์ค๊ฐ ์ ๋ก๋ ๊ฐ๊ฒฉ (ํฐ์ปค ์)- ์:
100์ด๋ฉด 100๊ฐ ํฐ์ปค ์ฒ๋ฆฌ๋ง๋ค ์ค๊ฐ ์ ๋ก๋ 0์ด๋ฉด ์ค๊ฐ ์ ๋ก๋ ์์ด ๋ง์ง๋ง์ ํ ๋ฒ๋ง ์ ๋ก๋
- ์:
์ฌ์คํ(Resume) ๋์:
- ์ด๋ฏธ ๋ฐ์ดํฐ์ ์ ์กด์ฌํ๋ ํฐ์ปค๋ ์๋์ผ๋ก ์คํตํฉ๋๋ค.
- ์ด์ ์คํ์์ ์ค๊ฐ์ ์คํจํด๋, ๋ค์ ์คํ ์ ๋จ์ ํฐ์ปค ์์ฃผ๋ก ์ด์ด์ ์์งํฉ๋๋ค.
- ์ฒดํฌํฌ์ธํธ ๊ฐ๊ฒฉ(์: 100) ๊ธฐ์ค์ผ๋ก ์ ์ฅ๋๋ฏ๋ก, ์คํจ ์ ์ต๊ทผ ์ฒดํฌํฌ์ธํธ ์ดํ ๊ตฌ๊ฐ๋ง ์ฌ์์ง๋ฉ๋๋ค.
์ฐธ๊ณ
- Hugging Face Spaces ์ค์ ๋ ํผ๋ฐ์ค: