Safetensors
GGUF
Turkish
llama
Llama-3
instruct
finetune
chatml
gpt4
synthetic data
distillation
function calling
json mode
axolotl
roleplaying
chat
Instructions to use tda45/TdAI with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- llama-cpp-python
How to use tda45/TdAI with llama-cpp-python:
# !pip install llama-cpp-python from llama_cpp import Llama llm = Llama.from_pretrained( repo_id="tda45/TdAI", filename="llama.cpp/models/ggml-vocab-aquila.gguf", )
output = llm( "Once upon a time,", max_tokens=512, echo=True ) print(output)
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use tda45/TdAI with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf tda45/TdAI # Run inference directly in the terminal: llama cli -hf tda45/TdAI
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf tda45/TdAI # Run inference directly in the terminal: llama cli -hf tda45/TdAI
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf tda45/TdAI # Run inference directly in the terminal: ./llama-cli -hf tda45/TdAI
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf tda45/TdAI # Run inference directly in the terminal: ./build/bin/llama-cli -hf tda45/TdAI
Use Docker
docker model run hf.co/tda45/TdAI
- LM Studio
- Jan
- Ollama
How to use tda45/TdAI with Ollama:
ollama run hf.co/tda45/TdAI
- Unsloth Studio
How to use tda45/TdAI with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for tda45/TdAI to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for tda45/TdAI to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for tda45/TdAI to start chatting
- Atomic Chat new
- Docker Model Runner
How to use tda45/TdAI with Docker Model Runner:
docker model run hf.co/tda45/TdAI
- Lemonade
How to use tda45/TdAI with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull tda45/TdAI
Run and chat with the model
lemonade run user.TdAI-{{QUANT_TAG}}List all available models
lemonade list
| static void test(void) { | |
| common_params params; | |
| printf("test-arg-parser: make sure there is no duplicated arguments in any examples\n\n"); | |
| for (int ex = 0; ex < LLAMA_EXAMPLE_COUNT; ex++) { | |
| try { | |
| auto ctx_arg = common_params_parser_init(params, (enum llama_example)ex); | |
| common_params_add_preset_options(ctx_arg.options); | |
| std::unordered_set<std::string> seen_args; | |
| std::unordered_set<std::string> seen_env_vars; | |
| for (const auto & opt : ctx_arg.options) { | |
| // check for args duplications | |
| for (const auto & arg : opt.get_args()) { | |
| if (seen_args.find(arg) == seen_args.end()) { | |
| seen_args.insert(arg); | |
| } else { | |
| fprintf(stderr, "test-arg-parser: found different handlers for the same argument: %s", arg.c_str()); | |
| exit(1); | |
| } | |
| } | |
| // check for env var duplications | |
| for (const auto & env : opt.get_env()) { | |
| if (seen_env_vars.find(env) == seen_env_vars.end()) { | |
| seen_env_vars.insert(env); | |
| } else { | |
| fprintf(stderr, "test-arg-parser: found different handlers for the same env var: %s", env.c_str()); | |
| exit(1); | |
| } | |
| } | |
| // exclude spec args from this check | |
| // ref: https://github.com/ggml-org/llama.cpp/pull/22397 | |
| const bool skip = opt.is_spec; | |
| // ensure shorter argument precedes longer argument | |
| if (!skip && opt.args.size() > 1) { | |
| const std::string first(opt.args.front()); | |
| const std::string last(opt.args.back()); | |
| if (first.length() > last.length()) { | |
| fprintf(stderr, "test-arg-parser: shorter argument should come before longer one: %s, %s\n", | |
| first.c_str(), last.c_str()); | |
| assert(false); | |
| } | |
| } | |
| // same check for negated arguments | |
| if (opt.args_neg.size() > 1) { | |
| const std::string first(opt.args_neg.front()); | |
| const std::string last(opt.args_neg.back()); | |
| if (first.length() > last.length()) { | |
| fprintf(stderr, "test-arg-parser: shorter negated argument should come before longer one: %s, %s\n", | |
| first.c_str(), last.c_str()); | |
| assert(false); | |
| } | |
| } | |
| } | |
| } catch (std::exception & e) { | |
| printf("%s\n", e.what()); | |
| assert(false); | |
| } | |
| } | |
| auto list_str_to_char = [](std::vector<std::string> & argv) -> std::vector<char *> { | |
| std::vector<char *> res; | |
| for (auto & arg : argv) { | |
| res.push_back(const_cast<char *>(arg.data())); | |
| } | |
| return res; | |
| }; | |
| std::vector<std::string> argv; | |
| printf("test-arg-parser: test invalid usage\n\n"); | |
| // missing value | |
| argv = {"binary_name", "-m"}; | |
| assert(false == common_params_parse(argv.size(), list_str_to_char(argv).data(), params, LLAMA_EXAMPLE_COMMON)); | |
| // wrong value (int) | |
| argv = {"binary_name", "-ngl", "hello"}; | |
| assert(false == common_params_parse(argv.size(), list_str_to_char(argv).data(), params, LLAMA_EXAMPLE_COMMON)); | |
| // wrong value (enum) | |
| argv = {"binary_name", "-sm", "hello"}; | |
| assert(false == common_params_parse(argv.size(), list_str_to_char(argv).data(), params, LLAMA_EXAMPLE_COMMON)); | |
| // non-existence arg in specific example (--draft cannot be used outside llama-speculative) | |
| argv = {"binary_name", "--draft", "123"}; | |
| assert(false == common_params_parse(argv.size(), list_str_to_char(argv).data(), params, LLAMA_EXAMPLE_EMBEDDING)); | |
| // negated arg | |
| argv = {"binary_name", "--no-mmap"}; | |
| assert(false == common_params_parse(argv.size(), list_str_to_char(argv).data(), params, LLAMA_EXAMPLE_COMMON)); | |
| printf("test-arg-parser: test valid usage\n\n"); | |
| argv = {"binary_name", "-m", "model_file.gguf"}; | |
| assert(true == common_params_parse(argv.size(), list_str_to_char(argv).data(), params, LLAMA_EXAMPLE_COMMON)); | |
| assert(params.model.path == "model_file.gguf"); | |
| argv = {"binary_name", "-t", "1234"}; | |
| assert(true == common_params_parse(argv.size(), list_str_to_char(argv).data(), params, LLAMA_EXAMPLE_COMMON)); | |
| assert(params.cpuparams.n_threads == 1234); | |
| argv = {"binary_name", "--verbose"}; | |
| assert(true == common_params_parse(argv.size(), list_str_to_char(argv).data(), params, LLAMA_EXAMPLE_COMMON)); | |
| assert(params.verbosity > 1); | |
| argv = {"binary_name", "-m", "abc.gguf", "--predict", "6789", "--batch-size", "9090"}; | |
| assert(true == common_params_parse(argv.size(), list_str_to_char(argv).data(), params, LLAMA_EXAMPLE_COMMON)); | |
| assert(params.model.path == "abc.gguf"); | |
| assert(params.n_predict == 6789); | |
| assert(params.n_batch == 9090); | |
| // --draft cannot be used outside llama-speculative | |
| argv = {"binary_name", "--spec-draft-n-max", "123"}; | |
| assert(true == common_params_parse(argv.size(), list_str_to_char(argv).data(), params, LLAMA_EXAMPLE_SPECULATIVE)); | |
| assert(params.speculative.draft.n_max == 123); | |
| // multi-value args (CSV) | |
| argv = {"binary_name", "--lora", "file1.gguf,\"file2,2.gguf\",\"file3\"\"3\"\".gguf\",file4\".gguf"}; | |
| assert(true == common_params_parse(argv.size(), list_str_to_char(argv).data(), params, LLAMA_EXAMPLE_COMMON)); | |
| assert(params.lora_adapters.size() == 4); | |
| assert(params.lora_adapters[0].path == "file1.gguf"); | |
| assert(params.lora_adapters[1].path == "file2,2.gguf"); | |
| assert(params.lora_adapters[2].path == "file3\"3\".gguf"); | |
| assert(params.lora_adapters[3].path == "file4\".gguf"); | |
| // skip this part on windows, because setenv is not supported | |
| printf("test-arg-parser: skip on windows build\n"); | |
| printf("test-arg-parser: test environment variables (valid + invalid usages)\n\n"); | |
| setenv("LLAMA_ARG_THREADS", "blah", true); | |
| argv = {"binary_name"}; | |
| assert(false == common_params_parse(argv.size(), list_str_to_char(argv).data(), params, LLAMA_EXAMPLE_COMMON)); | |
| setenv("LLAMA_ARG_MODEL", "blah.gguf", true); | |
| setenv("LLAMA_ARG_THREADS", "1010", true); | |
| argv = {"binary_name"}; | |
| assert(true == common_params_parse(argv.size(), list_str_to_char(argv).data(), params, LLAMA_EXAMPLE_COMMON)); | |
| assert(params.model.path == "blah.gguf"); | |
| assert(params.cpuparams.n_threads == 1010); | |
| printf("test-arg-parser: test negated environment variables\n\n"); | |
| setenv("LLAMA_ARG_MMAP", "0", true); | |
| setenv("LLAMA_ARG_NO_PERF", "1", true); // legacy format | |
| argv = {"binary_name"}; | |
| assert(true == common_params_parse(argv.size(), list_str_to_char(argv).data(), params, LLAMA_EXAMPLE_COMMON)); | |
| assert(params.use_mmap == false); | |
| assert(params.no_perf == true); | |
| printf("test-arg-parser: test environment variables being overwritten\n\n"); | |
| setenv("LLAMA_ARG_MODEL", "blah.gguf", true); | |
| setenv("LLAMA_ARG_THREADS", "1010", true); | |
| argv = {"binary_name", "-m", "overwritten.gguf"}; | |
| assert(true == common_params_parse(argv.size(), list_str_to_char(argv).data(), params, LLAMA_EXAMPLE_COMMON)); | |
| assert(params.model.path == "overwritten.gguf"); | |
| assert(params.cpuparams.n_threads == 1010); | |
| printf("test-arg-parser: test download functions\n\n"); | |
| const char * GOOD_URL = "http://ggml.ai/"; | |
| const char * BAD_URL = "http://ggml.ai/404"; | |
| { | |
| printf("test-arg-parser: test good URL\n\n"); | |
| auto res = common_remote_get_content(GOOD_URL, {}); | |
| assert(res.first == 200); | |
| assert(res.second.size() > 0); | |
| std::string str(res.second.data(), res.second.size()); | |
| assert(str.find("llama.cpp") != std::string::npos); | |
| } | |
| { | |
| printf("test-arg-parser: test bad URL\n\n"); | |
| auto res = common_remote_get_content(BAD_URL, {}); | |
| assert(res.first == 404); | |
| } | |
| { | |
| printf("test-arg-parser: test max size error\n"); | |
| common_remote_params params; | |
| params.max_size = 1; | |
| try { | |
| common_remote_get_content(GOOD_URL, params); | |
| assert(false && "it should throw an error"); | |
| } catch (std::exception & e) { | |
| printf(" expected error: %s\n\n", e.what()); | |
| } | |
| } | |
| printf("test-arg-parser: all tests OK\n\n"); | |
| } | |
| int main(void) { | |
| try { | |
| test(); | |
| } catch (std::exception & e) { | |
| fprintf(stderr, "test-arg-parser: exception: %s\n", e.what()); | |
| return 1; | |
| } | |
| return 0; | |
| } | |