MCPcopy Create free account
hub / github.com/antirez/ds4 / run_perplexity_file

Function run_perplexity_file

ds4_cli.c:790–871  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

788 fprintf(fp, "{\n \"source\":\"ds4\",\n \"model\":");
789 json_write_string(fp, cfg->engine.model_path, strlen(cfg->engine.model_path));
790 fprintf(fp,
791 ",\n \"backend\":\"%s\",\n \"quant_bits\":%d,\n"
792 " \"prompt_tokens\":%d,\n \"ctx\":%d,\n \"vocab\":%d,\n",
793 ds4_backend_name(cfg->engine.backend),
794 ds4_engine_routed_quant_bits(engine),
795 prompt->len,
796 cfg->gen.ctx_size,
797 vocab);
798 const int argmax = ds4_session_argmax(session);
799 fputs(" \"argmax_token\":", fp);
800 json_write_token(fp, engine, argmax);
801 fprintf(fp, ",\n \"argmax_logit\":%.9g,\n \"logits\":[", logits[argmax]);
802 for (int i = 0; i < vocab; i++) {
803 if (i) fputc(',', fp);
804 if ((i % 8) == 0) fputs("\n ", fp);
805 if (isfinite(logits[i])) {
806 fprintf(fp, "%.9g", logits[i]);
807 } else {
808 fputs("null", fp);
809 }
810 }
811 fputs("\n ]\n}\n", fp);
812 if (fclose(fp) != 0) {
813 fprintf(stderr, "ds4: failed to close --dump-logits file: %s\n", cfg->gen.dump_logits_path);
814 free(logits);
815 ds4_session_free(session);
816 return 1;
817 }
818
819 free(logits);
820 ds4_session_free(session);
821 return 0;
822}
823
824static int run_logprob_dump(ds4_engine *engine, const cli_config *cfg, const ds4_tokens *prompt) {
825 ds4_session *session = NULL;
826 if (ds4_session_create(&session, engine, cfg->gen.ctx_size) != 0) {
827 fprintf(stderr, "ds4: --dump-logprobs requires a graph session backend\n");
828 return 1;
829 }
830 if (cli_wait_distributed_route(cfg, session) != 0) {
831 ds4_session_free(session);
832 return 1;
833 }
834
835 char err[160];
836 cli_prefill_progress progress = {
837 .base_tokens = 0,
838 .input_tokens = prompt->len,
839 .use_color = ds4_log_is_tty(stderr),
840 };
841 ds4_session_set_progress(session, cli_prefill_progress_cb, &progress);
842 ds4_session_set_display_progress(session,
843 progress.use_color ? cli_prefill_progress_cb : NULL,
844 progress.use_color ? &progress : NULL);
845 if (ds4_session_sync(session, prompt, err, sizeof(err)) != 0) {
846 ds4_session_set_progress(session, NULL, NULL);
847 ds4_session_set_display_progress(session, NULL, NULL);

Callers 1

mainFunction · 0.85

Calls 10

ds4_tokenize_textFunction · 0.85
ds4_tokens_freeFunction · 0.85
ds4_session_createFunction · 0.85
ds4_session_freeFunction · 0.85
ds4_tokens_pushFunction · 0.85
ds4_session_syncFunction · 0.85
ds4_session_evalFunction · 0.85
read_prompt_fileFunction · 0.70

Tested by

no test coverage detected