CoolFace
Modelpublic

jastorj/couchmind-v5.8_rl_cold_start-cw-26K-16bit

sourceHugging Faceapache-2.0updated 3mo agoView on Hugging Face
0likes8downloads
Model Card

Snowflake/Arctic-Text2SQL-R1-7B Fine-tuned for NL2SQL++ v5.8rlcold_start

This model is a fine-tuned version of Snowflake/Arctic-Text2SQL-R1-7B on the NL2SQL++ v5.8rlcold_start dataset with code-with-thought reasoning.

Model Details

  • —Base Model: Snowflake/Arctic-Text2SQL-R1-7B
  • —Task: Text-to-SQL generation
  • —Dataset: NL2SQL++ v5.8rlcold_start with code-with-thought reasoning
  • —Fine-tuning Method: LoRA (Low-Rank Adaptation) with Unsloth
  • —Quantization: 16-bit merged weights
  • —Training Dataset Size: 2104 examples
  • —Validation Dataset Size: 0 examples

Training Configuration

  • —output_dir: ./saved_models
  • —per_device_train_batch_size: 2
  • —num_train_epochs: 3
  • —max_steps: -1
  • —learning_rate: 1e-05
  • —lr_scheduler_type: SchedulerType.COSINE
  • —lr_scheduler_kwargs: None
  • —warmup_steps: 0.1
  • —optim: OptimizerNames.ADAMWTORCHFUSED
  • —optim_args: None
  • —weight_decay: 0.01
  • —adam_beta1: 0.9
  • —adam_beta2: 0.999
  • —adam_epsilon: 1e-08
  • —optim_target_modules: None
  • —gradient_accumulation_steps: 8
  • —average_tokens_across_devices: True
  • —max_grad_norm: 1.0
  • —label_smoothing_factor: 0.0
  • —bf16: True
  • —fp16: False
  • —bf16_full_eval: True
  • —fp16_full_eval: False
  • —tf32: None
  • —gradient_checkpointing: True
  • —gradient_checkpointing_kwargs: None
  • —torch_compile: False
  • —torch_compile_backend: None
  • —torch_compile_mode: None
  • —use_liger_kernel: False
  • —liger_kernel_config: None
  • —use_cache: False
  • —neftune_noise_alpha: None
  • —torch_empty_cache_steps: None
  • —auto_find_batch_size: False
  • —logging_strategy: IntervalStrategy.STEPS
  • —logging_steps: 3
  • —logging_first_step: False
  • —log_on_each_node: True
  • —logging_nan_inf_filter: True
  • —include_num_input_tokens_seen: no
  • —log_level: passive
  • —log_level_replica: warning
  • —disable_tqdm: False
  • —report_to: ['wandb']
  • —run_name: None
  • —project: huggingface
  • —trackio_space_id: trackio
  • —eval_strategy: IntervalStrategy.STEPS
  • —eval_steps: 50
  • —eval_delay: 0
  • —per_device_eval_batch_size: 5
  • —prediction_loss_only: False
  • —eval_on_start: False
  • —eval_do_concat_batches: True
  • —eval_use_gather_object: False
  • —eval_accumulation_steps: 10
  • —include_for_metrics: []
  • —batch_eval_metrics: False
  • —save_only_model: False
  • —save_strategy: SaveStrategy.BEST
  • —save_steps: 50
  • —save_on_each_node: False
  • —save_total_limit: 1
  • —enable_jit_checkpoint: False
  • —push_to_hub: False
  • —hub_token: None
  • —hub_private_repo: None
  • —hub_model_id: None
  • —hub_strategy: HubStrategy.EVERY_SAVE
  • —hub_always_push: False
  • —hub_revision: None
  • —load_best_model_at_end: True
  • —metric_for_best_model: evalexecaccuracy
  • —greater_is_better: True
  • —ignore_data_skip: False
  • —restore_callback_states_from_checkpoint: False
  • —full_determinism: False
  • —seed: 42
  • —data_seed: None
  • —use_cpu: False
  • —accelerator_config: AcceleratorConfig(splitbatches=False, dispatchbatches=None, evenbatches=True, useseedablesampler=True, nonblocking=False, gradientaccumulationkwargs=None, useconfiguredstate=False)
  • —parallelism_config: None
  • —dataloader_drop_last: False
  • —dataloader_num_workers: 0
  • —dataloader_pin_memory: True
  • —dataloader_persistent_workers: False
  • —dataloader_prefetch_factor: None
  • —remove_unused_columns: True
  • —label_names: None
  • —train_sampling_strategy: random
  • —length_column_name: length
  • —ddp_find_unused_parameters: None
  • —ddp_bucket_cap_mb: None
  • —ddp_broadcast_buffers: None
  • —ddp_backend: None
  • —ddp_timeout: 1800
  • —fsdp: []
  • —fsdp_config: {'minnumparams': 0, 'xla': False, 'xlafsdpv2': False, 'xlafsdpgrad_ckpt': False}
  • —deepspeed: None
  • —debug: []
  • —skip_memory_metrics: True
  • —do_train: False
  • —do_eval: True
  • —do_predict: False
  • —resume_from_checkpoint: None
  • —warmup_ratio: 0.1
  • —logging_dir: None
  • —local_rank: -1
  • —model_init_kwargs: None
  • —chat_template_path: None
  • —dataset_text_field: text
  • —dataset_kwargs: None
  • —dataset_num_proc: None
  • —eos_token: None
  • —pad_token: None
  • —max_length: 26000
  • —packing: False
  • —packing_strategy: bfd
  • —padding_free: False
  • —pad_to_multiple_of: None
  • —eval_packing: None
  • —completion_only_loss: None
  • —assistant_only_loss: False
  • —loss_type: nll
  • —activation_offloading: False
  • —vllm_sampling_params: None
  • —unsloth_num_chunks: -1
  • —unsloth_logit_chunk_multiplier: None
  • —unsloth_grpo_mini_batch: None
  • —max_seq_length: 26000
  • —model_name: Snowflake/Arctic-Text2SQL-R1-7B
  • —model_specs: ModelSpecs(instructionpart='<|imstart|>user', responsepart='<|imstart|>assistant', targetmodules=['qproj', 'kproj', 'vproj', 'oproj', 'gateproj', 'upproj', 'downproj'], chat_template=None)
  • —lora_use_rslora: True
  • —lora_r: 64
  • —lora_alpha: 128
  • —lora_dropout: 0.1
  • —early_stopping_patience: 5

Train Dataset Example

<|im_start|>system
You are a helpful AI Assistant that provides well-reasoned and detailed responses. You first
think about the reasoning process as an internal monologue and then provide the user with
the answer. Respond in the following format: <think>
...
</think>
<answer>
...
</answer>
<|im_end|>
<|im_start|>user
You are a Couchbase SQL++ query expert. Given a database schema and a natural language question, generate a syntactically valid SQL++ query that precisely answers the question.

Rules:
- SELECT only the columns explicitly asked for — nothing more, nothing less
- Use the exact bucket, scope, and collection names provided in the database schema

Bucket Name:
`nan`

Scope Name:
`nan`

Database Schema:
{}

This schema describes the structure of the data in the specified bucket and scope. It includes information about the collections, fields, and their data types.

Question:
Build the special_flights list with two objects and return the values from each object.
<|im_end|>
<|im_start|>assistant
<think>
I start by noticing there is no schema at all. So this is not a normal “read from a collection” question. There are no buckets, scopes, collections, or existing fields to join together. That means I need to construct the data inline inside the query itself.

The wording is: “Build the special_flights list with two objects and return the values from each object.”

A few pieces matter here.

First, “build the special_flights list” suggests I should create a named list, not just throw an anonymous array into the SELECT. In SQL++ / N1QL, a clean way to do that is a WITH binding. So I want a common expression named special_flights.

Second, it says “with two objects.” So special_flights should be an array containing exactly two object literals.

Since there is no schema, I have to invent the object structure and values myself. The list name special_flights makes flight-oriented fields feel natural. I need a clear identifier for each object, so using a field named flight makes sense. I also want some time-like field; utc is a natural label for that. Then I can add one more descriptive field to each object to make them feel like richer objects rather than just two identical key sets.

Now I need actual literal values. Because these are made-up demo rows, I want them to be memorable and obviously different. For the first one, a flight value like AI444 is easy to recognize, and I can pair it with a matching time-like string 4:44:44. For the extra descriptive field, codename with value green works well. For the second object, I can mirror that pattern with flight AI333 and utc 3:33:33, then use a different status-style key alert with value red. That also shows that the two objects do not have to share every non-core field, which is interesting for an object-values operation.

So the array I am binding to special_flights is two objects:
- one with flight AI444, utc 4:44:44, codename green
- one with flight AI333, utc 3:33:33, alert red

Next I need to “return the values from each object.” I should think about what that means in N1QL terms.

One possibility is to UNNEST the array and call OBJECT_VALUES on each object individually, which would give one row per object. But the question says “build the special_flights list” first, and then “return the values from each object,” which sounds more like operating on the list as a whole rather than exploding it into separate rows. So I lean toward applying an object-values function to the list’s contents directly.

The N1QL function for extracting an object’s values is OBJECT_VALUES. To apply it to the objects inside the array, I need the array-star form special_flights[*]. That notation refers to the objects in the list. Using OBJECT_VALUES on that expression gives me the values drawn from the objects in the list.

Since the SELECT is just returning that one derived expression, I should give it an alias. A name like outer_values fits, because I am returning the values produced from the outer list binding.

There is also no need for a FROM clause, because I am not querying any stored collection; everything comes from the WITH-defined array literal.

So the final shape is: a WITH clause naming special_flights and assigning it the two-object array, then a SELECT that applies OBJECT_VALUES to special_flights[*] and aliases the result as outer_values.
</think>

<answer>
WITH special_flights AS ([{"flight":"AI444","utc":"4:44:44","codename":"green"},{"flight":"AI333","utc":"3:33:33","alert":"red"}]) SELECT OBJECT_VALUES(special_flights[*]) AS outer_values;
</answer>
<|im_end|>