
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像用于构建和部署Spark Job Server,支持PySpark任务运行,提供SLAMM API用于机器学习模型的特征相关性计算、数据评估和预测。适用于需要通过PySpark进行大规模数据处理和机器学习模型开发的场景,支持Docker容器化部署及持续集成/持续部署流程。
shellpython setup.py bdist_egg
shell# 克隆Spark Job Server仓库 git clone https://github.com/spark-jobserver/spark-jobserver.git cd spark-jobserver # 获取版本号 export VER=`sbt version | tail -1 | cut -f2` # 构建Python依赖 sbt buildPython # 复制egg文件到目标目录 copy job-server-python/target/python/spark_jobserver_python-0.8.0_SNAPSHOT-py2.7.egg <auger_ml>/auger-job-server/spark_jobserver_python-0.8.0-py2.7.egg # 打包Job Server bin/server_package.sh docker # 复制Jar包到目标目录 copy /tmp/job-server/spark-job-server.jar <auger_ml>/auger-job-server/ # 构建Docker镜像 cd <auger_ml> docker build --pull -t deeplearninc/auger-job-server .
shell# 构建镜像 docker build -t deeplearninc/auger-ml -f Dockerfile . # 运行容器,挂载本地模型目录 docker run -it -v /Users/evgenyvovchenko/Projects/deeplearninc/auger-ml:/models_src docker.xuanyuan.run/deeplearninc/auger-ml /models_src/bin/submit perf_runner.py "./data/" "phpvcoG8S.arff"
pythonfrom docker.xuanyuan.run/auger_ml.Utils import * # 从环境变量获取S3数据路径 S3_DATA_PATH = os.environ.get('S3_DATA_PATH') # 配置Spark和AWS config = Config(spark) config.awsAccessKeyId = os.environ.get('AWS_ACCESS_KEY_ID') config.awsSecretAccessKey = os.environ.get('AWS_SECRET_ACCESS_KEY') config.initS3Spark() initConfig(config) # 初始化S3客户端 s3_client = S3FSClient(config, S3_DATA_PATH)
calculateFeaturesCorrelation(data, model_features, target_feature): 计算特征与目标特征的相关性evaluateData(data, data_path, modelOptions): 评估数据并训练模型predictData(data, data_path, modelOptions): 使用训练好的模型进行预测modelOptions是包含模型配置参数的字典,主要参数如下:
| 参数 | 说明 |
|---|---|
| featureColumns | 特征列名数组 |
| targetFeature | 预测/评估的目标特征 |
| categoricalFeatures | 分类特征列名数组 |
| regressorName | 回归器名称,如GBTRegressor、RandomForestRegressor(默认)等 |
| regressorOptions | 回归器特定参数的字典 |
| studInfo | 特殊字段处理信息的字典 |
| transformers | Spark转换器名称数组,如["MinMaxScaler", "StandardScaler"] |
| transformerParams | 转换器参数的字典,键为转换器名称 |
| modelPath | 序列化模型的存储路径 |
支持的转换器及参数
k=len(featureColumns)/4degree=3inverse=Truep=1.0min=0.0, max=1.0withStd=True, withMean=Falsestud_count_method、advance_method、double_studs_method等子配置回归器参数说明
RandomForestRegressor
maxBins(140), numTrees(40), maxDepth(5), featureSubsetStrategy('auto'), minInstancesPerNode(1), minInfoGain(0.5)
DecisionTreeRegressor
maxBins(140), maxDepth(5), minInstancesPerNode(1), minInfoGain(0.5)
GBTRegressor
maxBins(140), maxDepth(5), minInstancesPerNode(1), minInfoGain(0.5), stepSize(0.1), subsamplingRate(1.0), lossType("squared")
AutosklearnRegressor
time_left_for_this_task(1200), per_run_time_limit(300), ml_memory_limit(10240)
TPOTRegressor
generations(2), population_size(2), offspring_size(2), max_time_mins(None), max_eval_time_mins(5)
TPOTRegressor配置示例:
pythontpot_config_dict_default = { 'xgboost.XGBRegressor': { 'n_estimators': [100], 'max_depth': range(1, 11), 'learning_rate': [1e-3, 1e-2, 1e-1, 0.5, 1.], 'subsample': np.arange(0.05, 1.01, 0.05), 'min_child_weight': range(1, 21), 'nthread': [1] } } modelOptions['regressorName'] = 'TPOTRegressor' modelOptions['regressorOptions'] = {'tpot_config_dict': tpot_config_dict_default}
pythonfrom docker.xuanyuan.run/auger_ml.Utils import * from docker.xuanyuan.run/auger_ml.EvaluateData import * from docker.xuanyuan.run/auger_ml.PredictData import * from docker.xuanyuan.run/auger_ml.FeaturesCorrelation import * from docker.xuanyuan.run/collections import namedtuple data_path = "/tmp/data/data" # 定义stud信息(特殊字段处理) StudInfo = namedtuple('StudInfo', 'price_name price_divisor position_name provider') stud_info = StudInfo('dk_price', 200.0, 'dk_position', "dk") # provider可为空字符串 # 配置modelOptions modelOptions = {} modelOptions['targetFeature'] = "dk_fpts" modelOptions['studInfo'] = stud_info modelOptions["dateFeature"] = "game_date" modelOptions["featureColumns"] = ["ma_2_usage", "ma_2_spread"] # 计算特征相关性 res = calculateFeaturesCorrelation(data, ["ma_2_usage", "ma_2_spread"], "dk_fpts") # 预测数据 res = predictData(data, data_path, modelOptions) # 评估数据 res = evaluateData(data, data_path, modelOptions)
当代码推送到master分支时,CircleCI会执行以下操作:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务