Go to file
2023-06-02 22:27:44 -07:00
benchmarks Add throughput benchmarking script (#133) 2023-05-28 03:20:05 -07:00
cacheflow Add throughput benchmarking script (#133) 2023-05-28 03:20:05 -07:00
csrc Improve setup script & Add a guard for bfloat16 kernels (#130) 2023-05-27 00:59:32 -07:00
docs Add .readthedocs.yaml (#136) 2023-06-02 22:27:44 -07:00
examples Add throughput benchmarking script (#133) 2023-05-28 03:20:05 -07:00
tests/kernels Add contributing guideline and mypy config (#122) 2023-05-23 17:58:51 -07:00
.gitignore Add initial sphinx docs (#120) 2023-05-22 17:02:44 -07:00
.readthedocs.yaml Add .readthedocs.yaml (#136) 2023-06-02 22:27:44 -07:00
CONTRIBUTING.md Add contributing guideline and mypy config (#122) 2023-05-23 17:58:51 -07:00
LICENSE Add Apache-2.0 license (#102) 2023-05-14 18:05:19 -07:00
mypy.ini Add contributing guideline and mypy config (#122) 2023-05-23 17:58:51 -07:00
README.md Refactor system architecture (#109) 2023-05-20 13:06:59 -07:00
requirements-dev.txt Add contributing guideline and mypy config (#122) 2023-05-23 17:58:51 -07:00
requirements.txt OpenAI Compatible Frontend (#116) 2023-05-23 21:39:50 -07:00
setup.py Improve setup script & Add a guard for bfloat16 kernels (#130) 2023-05-27 00:59:32 -07:00

CacheFlow

Build from source

pip install -r requirements.txt
pip install -e .  # This may take several minutes.

Test simple server

# Single-GPU inference.
python examples/simple_server.py # --model <your_model>

# Multi-GPU inference (e.g., 2 GPUs).
ray start --head
python examples/simple_server.py -tp 2 # --model <your_model>

The detailed arguments for simple_server.py can be found by:

python examples/simple_server.py --help

FastAPI server

To start the server:

ray start --head
python -m cacheflow.entrypoints.fastapi_server # --model <your_model>

To test the server:

python test_cli_client.py

Gradio web server

Install the following additional dependencies:

pip install gradio

Start the server:

python -m cacheflow.http_frontend.fastapi_frontend
# At another terminal
python -m cacheflow.http_frontend.gradio_webserver

Load LLaMA weights

Since LLaMA weight is not fully public, we cannot directly download the LLaMA weights from huggingface. Therefore, you need to follow the following process to load the LLaMA weights.

  1. Converting LLaMA weights to huggingface format with this script.
    python src/transformers/models/llama/convert_llama_weights_to_hf.py \
        --input_dir /path/to/downloaded/llama/weights --model_size 7B --output_dir /output/path/llama-7b
    
  2. For all the commands above, specify the model with --model /output/path/llama-7b to load the model. For example:
    python simple_server.py --model /output/path/llama-7b
    python -m cacheflow.http_frontend.fastapi_frontend --model /output/path/llama-7b