Instructions to use VladHong/llama-cpp-K2-FAST2 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use VladHong/llama-cpp-K2-FAST2 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 VladHong/llama-cpp-K2-FAST2 # Run inference directly in the terminal: llama cli -hf VladHong/llama-cpp-K2-FAST2
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf VladHong/llama-cpp-K2-FAST2 # Run inference directly in the terminal: llama cli -hf VladHong/llama-cpp-K2-FAST2
Build from source code
git clone https://github.com/ggml-org/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-app # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama serve -hf VladHong/llama-cpp-K2-FAST2 # Run inference directly in the terminal: ./build/bin/llama cli -hf VladHong/llama-cpp-K2-FAST2
Use Docker
docker model run hf.co/VladHong/llama-cpp-K2-FAST2
- Llama new
- LM Studio
- Jan
- Ollama
How to use VladHong/llama-cpp-K2-FAST2 with Ollama:
ollama run hf.co/VladHong/llama-cpp-K2-FAST2
- Unsloth Desktop
- Docker Model Runner
How to use VladHong/llama-cpp-K2-FAST2 with Docker Model Runner:
docker model run hf.co/VladHong/llama-cpp-K2-FAST2
- Lemonade
How to use VladHong/llama-cpp-K2-FAST2 with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull VladHong/llama-cpp-K2-FAST2
Run and chat with the model
lemonade run user.llama-cpp-K2-FAST2-{{QUANT_TAG}}List all available models
lemonade list
- Atomic Chat
Download tools/ui/tests/unit/source-history.test.ts from VladHong/llama-cpp-K2-FAST2: direct link, hf CLI and curl.
- Browser
- Download file 2.5 kB
-
https://huggingface.co/VladHong/llama-cpp-K2-FAST2/resolve/main/tools/ui/tests/unit/source-history.test.ts
- Command line
-
hf download hf://VladHong/llama-cpp-K2-FAST2/tools/ui/tests/unit/source-history.test.ts
-
curl -L -o source-history.test.ts https://huggingface.co/VladHong/llama-cpp-K2-FAST2/resolve/main/tools/ui/tests/unit/source-history.test.ts
2.5 kB
| import { SourceHistory } from '$lib/utils'; | |
| import { describe, expect, it } from 'vitest'; | |
| describe('SourceHistory', () => { | |
| it('coalesces pushes inside the group window into one undo step', () => { | |
| const h = new SourceHistory(100, 800); | |
| h.push({ caret: 0, value: '' }, 1000); | |
| h.push({ caret: 1, value: 'a' }, 1200); | |
| h.push({ caret: 2, value: 'ab' }, 1500); | |
| expect(h.undo({ caret: 3, value: 'abc' })).toEqual({ caret: 0, value: '' }); | |
| expect(h.undo({ caret: 0, value: '' })).toBeNull(); | |
| }); | |
| it('starts a new group once the window has passed', () => { | |
| const h = new SourceHistory(100, 800); | |
| h.push({ caret: 0, value: '' }, 1000); | |
| h.push({ caret: 3, value: 'abc' }, 2000); | |
| expect(h.undo({ caret: 6, value: 'abcdef' })).toEqual({ caret: 3, value: 'abc' }); | |
| expect(h.undo({ caret: 3, value: 'abc' })).toEqual({ caret: 0, value: '' }); | |
| }); | |
| it('newGroup forces a separate entry even inside the window', () => { | |
| const h = new SourceHistory(100, 800); | |
| h.push({ caret: 0, value: '' }, 1000); | |
| h.push({ caret: 3, value: 'abc' }, 1100, true); | |
| expect(h.undo({ caret: 4, value: 'abc\n' })).toEqual({ caret: 3, value: 'abc' }); | |
| expect(h.undo({ caret: 3, value: 'abc' })).toEqual({ caret: 0, value: '' }); | |
| }); | |
| it('redo round-trips and a fresh push clears the redo stack', () => { | |
| const h = new SourceHistory(100, 800); | |
| h.push({ caret: 0, value: '' }, 1000); | |
| const undone = h.undo({ caret: 3, value: 'abc' }); | |
| expect(undone).toEqual({ caret: 0, value: '' }); | |
| expect(h.redo({ caret: 0, value: '' })).toEqual({ caret: 3, value: 'abc' }); | |
| h.undo({ caret: 3, value: 'abc' }); | |
| h.push({ caret: 0, value: '' }, 5000); | |
| expect(h.redo({ caret: 1, value: 'x' })).toBeNull(); | |
| }); | |
| it('starts a new group on the first edit after an undo', () => { | |
| const h = new SourceHistory(100, 800); | |
| h.push({ caret: 0, value: '' }, 1000); | |
| h.undo({ caret: 3, value: 'abc' }); | |
| h.push({ caret: 0, value: '' }, 1200); | |
| expect(h.undo({ caret: 1, value: 'x' })).toEqual({ caret: 0, value: '' }); | |
| }); | |
| it('evicts the oldest entry past the limit', () => { | |
| const h = new SourceHistory(2, 800); | |
| h.push({ caret: 0, value: 'one' }, 1000); | |
| h.push({ caret: 0, value: 'two' }, 2000); | |
| h.push({ caret: 0, value: 'three' }, 3000); | |
| expect(h.undo({ caret: 0, value: 'cur' })).toEqual({ caret: 0, value: 'three' }); | |
| expect(h.undo({ caret: 0, value: 'three' })).toEqual({ caret: 0, value: 'two' }); | |
| expect(h.undo({ caret: 0, value: 'two' })).toBeNull(); | |
| }); | |
| }); | |