bosk 0.1.0

Pure-Rust LightGBM inference: parses the text model format directly — no FFI, zero deps. Optional ONNX Runtime and CatBoost backends behind the same small Model trait.
Documentation
CBM10 

,�����$h�FlabuffersModel_v1x���td{"detailed_profile":false,"boosting_options":{"model_shrink_mode":"Constant","approx_on_full_history":false,"fold_len_multiplier":2,"fold_permutation_block":0,"posterior_sampling":false,"boosting_type":"Plain","iterations":8,"model_shrink_rate":0,"od_config":{"wait_iterations":20,"type":"None","stop_pvalue":0},"boost_from_average":false,"permutation_count":4,"learning_rate":0.30000001192092896},"pool_metainfo_options":{"tags":{}},"metrics":{"objective_metric":{"type":"Logloss","params":{}},"eval_metric":{"type":"Logloss","params":{}},"custom_metrics":[]},"metadata":{},"cat_feature_params":{"store_all_simple_ctr":false,"ctr_leaf_count_limit":18446744073709551615,"simple_ctrs":[{"ctr_binarization":{"border_count":15,"border_type":"Uniform"},"target_binarization":{"border_count":1,"border_type":"MinEntropy"},"prior_estimation":"No","priors":[[0,1],[0.5,1],[1,1]],"ctr_type":"Borders"},{"ctr_binarization":{"border_count":15,"border_type":"Uniform"},"prior_estimation":"No","priors":[[0,1]],"ctr_type":"Counter"}],"counter_calc_method":"SkipTest","one_hot_max_size":2,"max_ctr_complexity":1,"combinations_ctrs":[{"ctr_binarization":{"border_count":15,"border_type":"Uniform"},"target_binarization":{"border_count":1,"border_type":"MinEntropy"},"prior_estimation":"No","priors":[[0,1],[0.5,1],[1,1]],"ctr_type":"Borders"},{"ctr_binarization":{"border_count":15,"border_type":"Uniform"},"prior_estimation":"No","priors":[[0,1]],"ctr_type":"Counter"}],"target_binarization":{"border_count":1,"border_type":"MinEntropy"},"per_feature_ctrs":{}},"logging_level":"Silent","data_processing_options":{"ignored_features":[],"float_features_binarization":{"border_count":254,"dev_max_subset_size_for_build_borders":200000,"nan_mode":"Min","border_type":"GreedyLogSum"},"has_time":false,"dev_sparse_array_indexing":"Indices","allow_const_label":false,"dev_default_value_fraction_for_sparse":0.8299999833106995,"class_names":[0,1],"embedding_processing_options":{"embedding_processing":{"default":["LDA","KNN"]}},"dev_group_features":false,"eval_fraction":0,"classes_count":0,"dev_leafwise_scoring":false,"auto_class_weights":"None","target_border":null,"force_unit_auto_pair_weights":false,"text_processing_options":{"feature_processing":{"default":[{"dictionaries_names":["BiGram","Word"],"feature_calcers":["BoW"],"tokenizers_names":["Space"]},{"dictionaries_names":["Word"],"feature_calcers":["NaiveBayes"],"tokenizers_names":["Space"]}]},"dictionaries":[{"start_token_id":"0","occurrence_lower_bound":"5","skip_step":"0","end_of_word_token_policy":"Insert","token_level_type":"Word","end_of_sentence_token_policy":"Skip","gram_order":"2","max_dictionary_size":"50000","dictionary_id":"BiGram"},{"start_token_id":"0","occurrence_lower_bound":"5","skip_step":"0","end_of_word_token_policy":"Insert","token_level_type":"Word","end_of_sentence_token_policy":"Skip","gram_order":"1","max_dictionary_size":"50000","dictionary_id":"Word"}],"tokenizers":[{"number_token":"🔢","skip_empty":"1","number_process_policy":"LeaveAsIs","tokenizer_id":"Space","token_types":["Number","Unknown","Word"],"delimiter":" ","languages":[],"lemmatizing":"0","split_by_set":"0","lowercasing":"0","subtokens_policy":"SingleToken","separator_type":"ByDelimiter"}]},"class_weights":[],"per_float_feature_quantization":{}},"loss_function":{"type":"Logloss","params":{}},"tree_learner_options":{"model_size_reg":0.5,"sampling_frequency":"PerTree","bayesian_matrix_reg":0.10000000149011612,"score_function":"Cosine","monotone_constraints":{},"leaf_estimation_method":"Newton","dev_score_calc_obj_block_size":5000000,"grow_policy":"SymmetricTree","min_data_in_leaf":1,"random_strength":1,"dev_efb_max_buckets":1024,"l2_leaf_reg":3,"bootstrap":{"mvs_reg":null,"subsample":0.800000011920929,"type":"MVS"},"depth":3,"max_leaves":8,"leaf_estimation_backtracking":"AnyImprovement","rsm":1,"dev_leafwise_approxes":false,"penalties":{"per_object_feature_penalties":{},"first_feature_use_penalties":{},"feature_weights":{},"penalties_coefficient":1},"random_score_type":"NormalWithModelSizeDecrease","leaf_estimation_iterations":1,"sparse_features_conflict_fraction":0},"task_type":"CPU","flat_params":{"allow_writing_files":false,"verbose":0,"iterations":8,"thread_count":1,"loss_function":"Logloss","depth":3,"learning_rate":0.3,"random_seed":0},"random_seed":0,"system_options":{"thread_count":1,"file_with_hosts":"hosts.txt","node_type":"SingleHost","node_port":0,"used_ram_limit":""}}params����0"1159623-53f3e775-2db2c053-26fd8e66
model_guid@�����{"metrics":{"learn_best_error":{"Logloss":0.2980972248706967},"test_metrics_history":[],"learn_metrics_history":[{"Logloss":0.5665011354787275},{"Logloss":0.47492024371027947},{"Logloss":0.41908544608717785},{"Logloss":0.3813404675461352},{"Logloss":0.35452887939917854},{"Logloss":0.32835916367545726},{"Logloss":0.31083021095767616},{"Logloss":0.2980972248706967}],"test_best_error":[]}}training����@1{"name":"experiment","verbose":0,"test_error_log":"test_error.tsv","json_log":"catboost_training.json","result_model_file":"model","roc_file":"","eval_file_name":"","use_best_model":false,"allow_writing_files":false,"prediction_type":["RawFormulaVal"],"fstr_internal_file":"","output_columns":["SampleId","RawFormulaVal","Label"],"snapshot_interval":600,"time_left_log":"time_left.tsv","fstr_type":"FeatureImportance","profile_log":"catboost_profile.log","train_dir":"catboost_info","learn_error_log":"learn_error.tsv","training_options_file":"","snapshot_file":"experiment.cbsnapshot","save_snapshot":false,"model_format":["CatboostBinary"],"final_feature_calcer_computation_mode":"Default","metric_period":1,"output_borders":"","final_ctr_computation_mode":"Default","best_model_min_trees":1,"fstr_regular_file":""}output_options@���h[{"classes_count":0,"class_names":[0,1],"class_to_label":[0,1],"class_label_type":"Integer"}class_params����$2026-07-14T13:00:30Ztrain_finish_time�tGit info:
    Commit: b1bd2a6d77219e82a1acfcedfccb8e6f6c1ee084
    Branch: tags/v1.2.10
    Author: akhropov <akhropov@yandex-team.com>
    Summary: CatBoost release 1.2.10. commit_hash:f8e0038b19555d36a9ba7b81b6730254b352960d
    git-svn info:
    Last Changed Rev: 9293085

Other info:
    Build by: runner
    Top src dir: /Users/runner/work/catboost/catboost/catboost
catboost_version_info*H $(,048<@D*��Xdxd\<0L$XL�D@�}@�w@�{@�u@�j@`b@�|@�|@ q@o@�v@�g@�e@@m@X�@��@`c@�f@�n@�g@��@�x@�h@ {@�T@�e@ p@z@�x@��@�o@@�@j@�}@�i@ b@�`@�[@P�@��@�t@�j@0@@Q@@m@@m@8�@�@@�<�:W��9Ռ���?f���"|ܿv�{��B�?�'}�]���>��c�?$� ��ӿ���X�?�~".ݿ�����ҿJ��k\W�?S^׃��?��#T9�?(c����?"�����տ�O;�.�?(��,[ؿ=yV�5��[;�C��c_����?n�w*oտ��B�
���/!�&�?F�x<z$�?����)ֿ�W��տ���Sy�?�&�H��?�G�"`Mѿ��w��C�?�����/Ͽ4 <6�A�?�hTt;~ӿ�F[���ɿ/��M�D�?�2
���?���AA��?���:?�?��4"���'!
a�?|���ѿ��yG�4���;`��c�?Y�.}��?�	pI�ο��t%��ѿ� ���?�N›���	
	
	
	
�L4�����������������Oݿ+
��Ι`����)��:<���=T�Z>n��>��?��o?��z?"{����8�.(0��T��Dw�r:���?��֤3>��F>T��>Fq?0�q?