| 1830 | } |
| 1831 | |
| 1832 | ggml_opt_dataset_t common_opt_dataset_init(struct llama_context * ctx, const std::vector<llama_token> & tokens, int64_t stride) { |
| 1833 | const int64_t ne_datapoint = llama_n_ctx(ctx); |
| 1834 | const int64_t ndata = (tokens.size() - ne_datapoint - 1) / stride; |
| 1835 | ggml_opt_dataset_t result = ggml_opt_dataset_init( |
| 1836 | GGML_TYPE_I32, GGML_TYPE_I32, ne_datapoint, ne_datapoint, ndata, /*ndata_shard =*/ 1); |
| 1837 | |
| 1838 | llama_token * data = (llama_token *) ggml_opt_dataset_data(result)->data; |
| 1839 | llama_token * labels = (llama_token *) ggml_opt_dataset_labels(result)->data; |
| 1840 | |
| 1841 | for (int64_t idata = 0; idata < ndata; ++idata) { |
| 1842 | memcpy(data + idata*ne_datapoint, tokens.data() + idata*stride + 0, ne_datapoint*sizeof(llama_token)); |
| 1843 | memcpy(labels + idata*ne_datapoint, tokens.data() + idata*stride + 1, ne_datapoint*sizeof(llama_token)); |
| 1844 | } |
| 1845 | |
| 1846 | return result; |
| 1847 | } |
| 1848 | |
| 1849 | ggml_opt_optimizer_params common_opt_lr_pars(void * userdata) { |
| 1850 | ggml_opt_optimizer_params result = ggml_opt_get_default_optimizer_params(nullptr); |
no test coverage detected