| 2610 | |
| 2611 | |
| 2612 | void PrepareQuantizationParameters( |
| 2613 | const NCatboostOptions::TCatBoostOptions& params, |
| 2614 | const TDataMetaInfo& metaInfo, |
| 2615 | const TMaybe<TString>& bordersFile, |
| 2616 | TQuantizationOptions* quantizationOptions, |
| 2617 | TQuantizedFeaturesInfoPtr* quantizedFeaturesInfo |
| 2618 | ) { |
| 2619 | quantizationOptions->GroupFeaturesForCpu = params.DataProcessingOptions->DevGroupFeatures.GetUnchecked(); |
| 2620 | if (params.GetTaskType() == ETaskType::CPU) { |
| 2621 | |
| 2622 | quantizationOptions->ExclusiveFeaturesBundlingOptions.MaxBuckets |
| 2623 | = params.ObliviousTreeOptions->DevExclusiveFeaturesBundleMaxBuckets.Get(); |
| 2624 | quantizationOptions->ExclusiveFeaturesBundlingOptions.MaxConflictFraction |
| 2625 | = params.ObliviousTreeOptions->SparseFeaturesConflictFraction.Get(); |
| 2626 | |
| 2627 | /* TODO(akhropov): Enable when sparse column scoring is supported |
| 2628 | |
| 2629 | float defaultValueFractionToEnableSparseStorage |
| 2630 | = params.DataProcessingOptions->DevDefaultValueFractionToEnableSparseStorage.Get(); |
| 2631 | if (defaultValueFractionToEnableSparseStorage > 0.0f) { |
| 2632 | quantizationOptions.DefaultValueFractionToEnableSparseStorage |
| 2633 | = defaultValueFractionToEnableSparseStorage; |
| 2634 | quantizationOptions.SparseArrayIndexingType |
| 2635 | = params.DataProcessingOptions->DevSparseArrayIndexingType.Get(); |
| 2636 | } |
| 2637 | */ |
| 2638 | } else { |
| 2639 | Y_ASSERT(params.GetTaskType() == ETaskType::GPU); |
| 2640 | |
| 2641 | quantizationOptions->BundleExclusiveFeatures = false; |
| 2642 | // TODO(kirillovs): temporarily disabled EFB for GPU until i figure out what's happening with binary buckets |
| 2643 | /* |
| 2644 | quantizationOptions->ExclusiveFeaturesBundlingOptions.MaxBuckets = Min<ui32>( |
| 2645 | 254, params.ObliviousTreeOptions->DevExclusiveFeaturesBundleMaxBuckets.Get()); |
| 2646 | quantizationOptions->ExclusiveFeaturesBundlingOptions.OnlyOneHotsAndBinaryFloats = true; |
| 2647 | */ |
| 2648 | quantizationOptions->PackBinaryFeaturesForCpu = false; |
| 2649 | quantizationOptions->GroupFeaturesForCpu = false; |
| 2650 | } |
| 2651 | quantizationOptions->CpuRamLimit |
| 2652 | = ParseMemorySizeDescription(params.SystemOptions->CpuUsedRamLimit.Get()); |
| 2653 | quantizationOptions->MaxSubsetSizeForBuildBordersAlgorithms = |
| 2654 | params.DataProcessingOptions->FloatFeaturesBinarization->MaxSubsetSizeForBuildBorders.Get(); |
| 2655 | |
| 2656 | if (quantizedFeaturesInfo && !(*quantizedFeaturesInfo)) { |
| 2657 | *quantizedFeaturesInfo = MakeIntrusive<TQuantizedFeaturesInfo>( |
| 2658 | *metaInfo.FeaturesLayout, |
| 2659 | params.DataProcessingOptions->IgnoredFeatures.Get(), |
| 2660 | params.DataProcessingOptions->FloatFeaturesBinarization.Get(), |
| 2661 | params.DataProcessingOptions->PerFloatFeatureQuantization.Get(), |
| 2662 | params.DataProcessingOptions->TextProcessingOptions.Get(), |
| 2663 | params.DataProcessingOptions->EmbeddingProcessingOptions.Get(), |
| 2664 | /*allowNansInTestOnly*/true |
| 2665 | ); |
| 2666 | |
| 2667 | if (bordersFile) { |
| 2668 | LoadBordersAndNanModesFromFromFileInMatrixnetFormat( |
| 2669 | *bordersFile, |
no test coverage detected