跳转至

CLI 参考

每个入口都以模块形式运行:

uv run python -m asset_embeddings.scripts.<group>.<name> [args...]

通用参数:-c/--config(JSON 配置;训练是配置驱动的)、-v/--verbose(控制台 DEBUG)、-l/--log(日志文件路径)。给任意脚本传 -h 可看其完整帮助。训练脚本还接受 --override KEY=VALUE ...,以在命令行上修补配置字段。

下面的 data 脚本是 flag 驱动的。训练脚本(train.rs / train.w2v / train.bert)是配置驱动的,并共享一套通用选项集;逐模型的配置字段参考见 训练


data.sharehold — 持股 → 组合

把原始 CSMAR 持股记录转为逐期的投资者→股票组合序列。

参数 类型 说明
--input_folder, -i str 原始 ShareHoldings CSV 所在文件夹。必填。
--output_folder, -o str 处理后组合的输出文件夹。必填。
--intermediate_folder, -inter str 可选,存放逐期有效样本/股票/投资者的中间产物。
--output_format {csv,json,binary} 输出格式。默认:csv
--frequency, -freq {Y,HY,Q,M,N} 分组频率:年 / 半年 / 季 / 月 / 不分组。自定义周期映射器需经 Python API。默认:Q
--date_format str 日期解析格式(frequency=N 时忽略)。默认:自动探测。
--aggregation, -agg {all,last,first,max,mean} 一期内重复 (投资者, 股票) 对的去重策略。last/first 需要日期列。默认:all
--include_proportion, -p bool 在组合之外一并输出两种持仓比例。默认:False
--investor_lowerbound, -il int 丢弃持股少于 N 只的投资者。默认:10
--stock_lowerbound, -sl int 丢弃被持有少于 N 次的股票。默认:10
--source_shareholder_id_column str 源投资者 ID 列。默认:ShareHolderID
--source_stock_symbol_column str 源股票代码列。默认:Symbol
--source_end_date_column str 源截止日列。默认:EndDate
--source_proportion1_column str 比例 1 的源列(相对总股本)。默认:HoldProportion
--source_proportion2_column str 比例 2 的源列(相对流通 A 股)。默认:HoldProportion1
--id_key / --portfolio_key str 输出键。默认:InvestorID / Portfolio
--proportion1_key / --proportion2_key str 输出比例键。默认:Proportion1 / Proportion2
--stats bool 随中间数据写出逐期统计(statistics.jsonstock_coverage.csv)。默认:True
--plot bool 随中间数据渲染分布分析图(distribution_analysis.png)。默认:False
--verbose, -v / --log, -l bool / str 控制台 DEBUG / 日志文件路径。

data.distributor — 训练/验证/测试切分

按比例把处理后的数据切分为数据集,可按文件或按行、内存或流式。

参数 类型 说明
--input_path, -i / --output_path, -o str 输入(文件或文件夹)/ 输出路径。
--file_format, -f {csv,json,binary} 输入/输出格式。
--split_ratios, -r list[float] 目标切分比例(和为 1.0)。默认:[0.8, 0.2]
--dir_names list[str] 目标子目录名。默认:['pretrained', 'finetune']
--keep_file_integrity bool 按整文件切分(True)还是按行切分(False)。默认:True
--strategy {concat,streaming} 按行切分的策略(仅当 keep_file_integrity=False):concat(内存内,更快)vs streaming(低内存)。默认:concat
--split_shuffle bool 按行切分前是否打乱(仅当 keep_file_integrity=False)。默认:True
--max_lines_per_file int 每个输出文件的最大行数(仅按行切分)。默认:None
--seed int 可复现切分的种子。默认:42
--use_portfolio_encoder bool PortfolioDataEncoder 解析。默认:False
--include_proportion bool 持股数据包含比例(仅当 use_portfolio_encoder=True)。
--id_key / --portfolio_key / --proportion1_key / --proportion2_key str 输出键。默认:InvestorID / Portfolio / Proportion1 / Proportion2
--verbose, -v / --log, -l bool / str 控制台 DEBUG / 日志文件路径。

data.text_embedding — LLM 文本嵌入

通过 OpenAI / Cohere / Voyage / Gemini / 本地 HF(Qwen、BGE),把 CSMAR 公司名称(中/英)编码为资产嵌入,支持原生 + PCA(universal 或 per-period)降维与可续传缓存。各 provider 的速率限制默认值与输出布局:Text embeddings

参数 类型 说明
--config, -c str JSON 配置;其键成为 argparse 默认值(连字符与下划线键均接受),显式 CLI 参数仍会覆盖。
--mode {names,full} names 仅运行名称解析阶段;full 运行完整嵌入流水线。默认:full
--csmar-info str CSMAR TRD_Co.csv 路径。必填(经 CLI 或 --config)。
--valid-stocks-dir str {period}/valid_stocks.json 所在目录(来自 data.sharehold)。必填(经 CLI 或 --config)。
--periods list[str] 要处理的周期子集。默认:--valid-stocks-dir 下的全部周期。
--names-output str 名称阶段输出目录(stock_names.csvmissing_stocks.csv)。默认:data/text_embeddings/names
--cache-folder str JSONL 嵌入缓存目录。默认:data/text_embeddings/cache
--output-folder str 嵌入产物根目录。默认:data/text_embeddings/embeddings
--provider {openai,cohere,voyage,gemini,local} 嵌入 provider。--mode full 时必填。
--model str provider 专属的模型 id。--mode full 时必填。
--language {zh,zh-short,en} zh=Conme,zh-short=Stknme,en=Conme_en。默认:zh
--transforms {native,pca-universal,pca-perperiod} 要生成的降维策略(可组合)。默认:native pca-universal
--target-dims list[int] 目标嵌入维度。默认:4 8 10 16 32 64 128
--seed int PCA 的 random_state。默认:42
--batch-size int 每请求的文本数(在线 provider)与 GPU mini-batch(本地);会被裁剪到各 provider 的上限。默认:100
--max-retries int 每批最大重试次数。默认:6
--api-key str 字面量 API key;优先级高于 --api-key-env 与 provider 默认环境变量。
--api-key-env str 用于读取 key 的环境变量名(仅当 --api-key 未设置时使用)。
--device str 本地 HF 模型所用设备(在线 provider 忽略)。默认:cuda:0
--hf-dtype {bfloat16,float16,float32,int8,int4} 本地模型 dtype;int8/int4 尚未实现(抛 NotImplementedError)。默认:bfloat16
--missing-name-fallback {skip,akshare,error} 在 valid_stocks 中但 CSMAR 缺失的股票(full 模式):skip 丢弃并告警、error 中止、akshare 保留待实现。默认:skip
--verbose, -v / --log, -l bool / str 控制台 DEBUG / 日志文件路径。

训练(共享选项)

训练(train.rstrain.w2vtrain.bert)是配置驱动的:每个模型与运行参数都在 JSON 配置中。三个脚本都暴露同一套五个参数——没有逐脚本的专属选项。

参数 类型 说明
--config, -c str JSON 配置文件路径。必填。
--log, -l str(0+) 日志文件路径。默认:不写文件日志。
--result_file, -r str 存放结构化训练记录的 SQLite 路径。默认:None
--override, -o str(1+) 在命令行上以 key=value 修补配置字段,嵌套键用点号(如 train.max_epoches=10 optimizer.learning_rate=0.001)。
--verbose, -v flag 控制台 DEBUG 输出。默认:INFO

逐模型的配置字段参考见 训练