Commit Graph

222 Commits (c55e4481baa8b1af2e5a15cbe6bf710dcc05fd23)

Author SHA1 Message Date
胡锋 fb5a5971d3
feat: proxy server address mapping to the model server (#461)
* feat: proxy server address mapping to the model server

* fix: add swagger in Config

* refactor: add_proxy_server

* fix: missing semicolo
2023-09-21 07:06:51 +00:00
胡锋 de3a2271d6
fix(tabby): fix swagger's local server use local port (#458)
* fixed: swagger's local server use local port

* fix: extract fn add_localhost_server

* fix: add_localhost_server return doc
2023-09-19 04:36:08 +00:00
Meng Zhang c107c991ff chore: bump tabby version to 0.1.1 2023-09-17 17:09:56 +08:00
Meng Zhang 97eeb6b926
feat: update llama.cpp to fetch latest starcoder support (#452)
* feat: bump llama.cpp to HEAD

* fix: turn off add_bos by default
2023-09-16 03:41:49 +00:00
Meng Zhang 86e48afbe0 feat: bump ctranslate2 to HEAD 2023-09-16 02:40:23 +08:00
Meng Zhang 30afa19bc0
feat: add LLAMA_CPP_LOG_LEVEL to control log level of llama.cpp (#436) 2023-09-12 14:41:39 +00:00
Meng Zhang 1e7ecce697 fix: usize overflow issue in ctranslate2 max_length truncation 2023-09-12 20:56:35 +08:00
Meng Zhang 1ccf9b2323 refactor: run make fix 2023-09-11 12:58:38 +08:00
Meng Zhang 09efa1b22b docs: add client extensions link in swagger landing page 2023-09-11 12:55:42 +08:00
leiwen83 e3c4a77fff
feat: add support fastchat http bindings (#421)
* feat: add support fastchat http bindings

Signed-off-by: Lei Wen <wenlei03@qiyi.com>
Co-authored-by: Lei Wen <wenlei03@qiyi.com>
2023-09-10 22:17:58 +08:00
Meng Zhang f0ed366420
feat: add support vertex-ai http bindings (#419)
* feat: add support vertex-ai http bindings

* support prefix / suffix
2023-09-09 11:22:58 +00:00
Meng Zhang 17397c8c8c
feat: add http api bindings (#410)
* feat: add http-api-bindings

* feat: add http-api-bindings

* hand max_input_length

* rename

* update

* update

* add examples/simple.rs

* update

* add default value for stop words

* update

* fix lint

* update
2023-09-09 03:59:42 +00:00
Meng Zhang ad3b974d5c
feat: implement input truncation for llama-cpp-bindings (#416)
* feat: implement input truncation for llama-cpp-bindings

* set max input length to 1024

* fix: batching tokens with n_batches

* fix batching
2023-09-09 00:20:51 +08:00
Meng Zhang 87b6b34120
feat: implement input truncation with options.max_input_length (#415) 2023-09-08 10:01:03 +00:00
Meng Zhang e780031ed6
feat: add ggml fp16 / q8_0 files (#407)
* feat: add ggml fp16 / q8_0 files

* add q8_0.gguf to optional download files

* add download options to split ctranslate2 files and ggml files
2023-09-06 17:12:29 +00:00
Meng Zhang a207520571
feat: turn on metal device by default on macosx / aarch64 devices (#398) 2023-09-05 13:03:49 +08:00
Meng Zhang d85cd81139
fix: ensure default suffix to be non-empty (#400) 2023-09-05 03:45:29 +00:00
Meng Zhang e93a971d0e
feat: tune llama metal backend performance (#393)
* feat: support eos based stop

* feat: print performance stats after each inference

* update llama.cpp

* update commits
2023-09-05 10:14:29 +08:00
vodkaslime 2472cf3b55
test: use function call style snippet for prompt builder unit test (#395)
* test: better tests for build_prefix()

* chore

* chore: resolve comments
2023-09-04 04:54:18 +00:00
vodkaslime 74073aa77a
test: add build prefix test and debug chars counting [TAB-184] (#394)
* test: add count char test

* chore: fix lint

* chore

* chore
2023-09-03 20:57:26 +08:00
vodkaslime 3c7c8d9293
feat: add cargo test to github actions and run only unit tests in ci [TAB-185] (#390)
* feat: add cargo test to github actions

* chore: fix lint

* chore: add openblas dependency

* chore: update build dependency

* chore: resolve comments

* chore: fix lint

* chore: fix lint

* chore: test installing dependencies

* chore: refactor integ test

* update ci

* cleanup

---------

Co-authored-by: Meng Zhang <meng@tabbyml.com>
2023-09-03 05:04:52 +00:00
Meng Zhang c8339a2912 refactor: use TabbyML/llama.cpp submodule 2023-09-03 12:38:54 +08:00
Meng Zhang 3acd5d9bc4 refactor: remove llama.cpp subtree 2023-09-03 12:37:26 +08:00
Meng Zhang 92c8ae8ee7 feat: embed ggml-metal.metal 2023-09-03 10:41:03 +08:00
Meng Zhang ed6c5b2e60 Merge commit 'aad80a58b07836bfbf6aedd50993bc54b4257388' as 'crates/llama-cpp-bindings/llama.cpp' 2023-09-03 10:07:10 +08:00
Meng Zhang d4137463ef remove llama.cpp submodule 2023-09-03 10:04:26 +08:00
Meng Zhang e360b438b4 fix lint 2023-09-03 10:01:28 +08:00
Meng Zhang 3f7aa99b0d feat: support cancellation in llama backend 2023-09-03 09:59:40 +08:00
Meng Zhang 3573d4378e
feat: llama.cpp for metal support [TAB-146] (#391)
* feat: init commit adding llama-cpp-bindings

* add llama.cpp submodule

* add LlamaEngine to hold llama context / llama model

* add cxxbridge

* add basic greedy sampling

* move files

* make compile success

* connect TextGeneration with LlamaEngine

* experimental support llama.cpp

* add metal device

* add Accelerate

* fix namespace for llama-cpp-bindings

* fix lint

* move stepping logic to rust

* add stop words package

* use stop-words in ctranslate2-bindings

* use raw string for regex

* use Arc<Tokenizer> for sharing tokenizers

* refactor: remove useless stop_words_encoding_offset

* switch to tokenizers 0.13.4-rc.3

* fix lints in cpp

* simplify implementation of greedy decoding

* feat: split metal feature for llama backend

* add ci

* update ci

* build tabby bin in ci build
2023-09-03 09:59:07 +08:00
vodkaslime 5dff349801
add single line comment to languages so they can be used in prompting [TAB-181] (#388)
* chore: add comment signs to extended languages

* Update crates/tabby/src/serve/completions/prompt.rs

---------

Co-authored-by: Meng Zhang <meng@tabbyml.com>
2023-09-01 03:43:27 +00:00
vodkaslime 63c00494f3
test: unit tests to prompt builder [TAB-180] (#387)
* test: unit tests to prompt builder

* chore: fix typo

* chore: fix lint

* chore: resolve comments
2023-09-01 09:20:20 +08:00
vodkaslime 90aadad3ce
feat: map js,ts,jsx and tsx to js-ts as unified language [TAB-181] (#386)
* feat: reduce js, ts, jsx and tsx to js-ts

* chore: refactor and add language reducing to both indexing and dataset jobs

* chore: only reduce language in dataset job

* chore: only reduce language in index job

* chore: fix lint

* chore: resolve comments
2023-08-31 17:21:39 +00:00
vodkaslime e5598e63f2
feat: extend language [TAB-181] (#385)
* feat: extend indexer's language support

* feat: extend language support

* chore: add support for mjs and mts

* chore: fix lint
2023-08-31 07:36:57 +00:00
Meng Zhang c44a9c7195
fix: correct git_describe in /health (#383)
* fix: add missing Version component in OpenAPI definition

* fix: allow tag / dirty in git describe
2023-08-31 01:06:36 +00:00
Meng Zhang 57baecb370
fix: switch default running backend to openblas on x86 linux (#380) 2023-08-30 14:19:35 +00:00
Meng Zhang 054aefaf15
chore: add linux static build (#379)
* chore: add linux static build

* add touch

* update build env

* add sudo

* fix: protobuf ubuntu target
2023-08-30 18:45:05 +08:00
Meng Zhang 3526ca3164
chore: build with ruy (cpu only) on static mode for linux. (#378)
* chore: build with ruy (cpu only) on static mode for linux.

* update cmake min version
2023-08-30 18:04:40 +08:00
Meng Zhang fc9a623e72
feat: add logging on server starting (#372) 2023-08-28 06:12:00 +00:00
Meng Zhang 65836ee199
feat: add stop words encoding offset for ctranslate model config (#371)
* feat: add stop words encoding offset for ctranslate model config

* feat: set default suffix to \n

* add special treatment for bytefallback tokens
2023-08-28 14:07:01 +08:00
vodkaslime 2a91a21787
feat: add gpu info to health state [TAB-162] (#364)
* feat: add gpu info to health response

* chore: error handling

* chore: refactor cpu manager code

* chore: typo

* chore: fix context mutability

* chore: fix context mutability

* feat: add link to NVML lib

* chore: refactor

* lint

* chore: resolve comments

* chore: fix typo

* chore: fix

* chore: resolve comments

* chore: fix

* chore: resolve comments
2023-08-21 18:06:38 +08:00
Meng Zhang b1ad936033
feat: add version information in health state. (#363)
* feat: add git_hash in health state

* add more version information in health state
2023-08-20 15:21:12 +00:00
Meng Zhang df45573501
feat: reduce ServeHealth event to every 300s to reduce event volume (#362) 2023-08-20 12:36:59 +00:00
vodkaslime 2026b4dd0e
feat: add architecture/cpu info to health api response [TAB-162] (#355)
* feat: add architecture, cpu and gpu info to health command

* chore: fix

* chore: fix

* chore: fix

* chore: fix lint

* chore: fix lint

* chore: remove gpu

* chore: resolve comments

* chore: resolve comments

* Update health.rs

---------

Co-authored-by: Meng Zhang <meng@tabbyml.com>
2023-08-15 15:22:03 +00:00
Meng Zhang dbc89831b1
feat: add serve health heartbeat (#343)
* add serve health tracking

* fix lint

* fix
2023-08-09 08:08:42 +00:00
Meng Zhang d0f6ad2d2a
feat: add anonymous usage tracker (#342)
* feat: add anonymous usage tracker

* improve deps

* update

* update
2023-08-09 07:31:13 +00:00
Meng Zhang 220fcc0d65
fix: make `config.experimental` optional (#339)
* fix: make config.experimental` optional

* add unit test for empty toml config
2023-08-07 09:53:00 +00:00
Meng Zhang 4eaae27ed3
Update Cargo.toml (#331) 2023-08-03 19:55:00 +08:00
Meng Zhang 6a50902ca7
fix: support ctranslate2 rev7 vocab files (.json) (#327) 2023-08-02 13:36:31 +00:00
Meng Zhang 57c811b30f
fix: improve download logging (#325)
* Suggest use `-it` so docker run generate progress bar of downloading information properly

* add info! log for model download
2023-08-02 06:30:35 +00:00
Meng Zhang b8308b7118
refactor: extract TextGeneration trait (#324)
* add tabby-inference

* extract TextGeneration trait

* format

* Rename TextInferenceEngine to CTranslate2Engine
2023-08-02 06:12:51 +00:00
Meng Zhang 83e1cf76d8
feat: Upgrade ctranslate2 to v3.17.1 (#323) 2023-08-02 05:46:08 +00:00
Meng Zhang 95bd53ac9c
feat: add select kind param. Supported editors could log line select … (#299)
* feat: add select kind param. Supported editors could log line select or block select

* fix lint
2023-07-16 16:02:40 +08:00
Meng Zhang be5fe0d737
feat: add rust prompt rewrite support (#296) 2023-07-13 09:31:44 +00:00
Meng Zhang 4388fd0050
feat: support prompt rewriting (#295)
* refactor: extract PromptBuilder

* feat: load tantivy index in prompt builder

* integrate with searcher

* add enable_prompt_rewrite to control rewrite behavior

* nit docs

* limit 1 snippet per identifier

* extract magic numbers
2023-07-13 09:05:41 +00:00
Meng Zhang 19586a4926
fix: fix bad indexing field of tag indexer (#293) 2023-07-13 07:19:46 +00:00
Meng Zhang 24d17dc1ed
feat: switching index to tag based (#265)
* add tag based index

* update for python

* fix lint
2023-07-13 06:25:39 +00:00
Meng Zhang be90047477
fix: fix int8 compute type, fix auto compute type selection (include float32 into consideration for cuda compute capability <= 6.0) (#291) 2023-07-12 11:09:38 +08:00
Meng Zhang e822d1857f
fix: add retry strategy in tabby download (#285) 2023-07-09 05:18:19 +00:00
Meng Zhang 9ca1f7e5f1
fix: add additional whitespace to match tokens that combining space and li… (#270)
* fix: add additional whitespace to match tokens that combining space and line break

* fix lint
2023-06-25 01:15:52 +00:00
Meng Zhang 631cff3aed docs: update url of playground server 2023-06-23 18:55:23 -07:00
Meng Zhang 8879ed7655
feat: add experimental self host setup (#261) 2023-06-23 12:13:22 -07:00
Meng Zhang 59b03ae477 fix: use full clone in scheduler 2023-06-22 15:06:44 -07:00
Meng Zhang fcbc5edc55
Revert "feat: add /experimental/search endpoint (#258)" (#260)
This reverts commit 04980160e5.
2023-06-22 14:23:35 -07:00
Meng Zhang 04980160e5
feat: add /experimental/search endpoint (#258)
* feat: add /experimental/search endpoint

* fix format
2023-06-22 20:47:32 +00:00
Meng Zhang 8c1f6c2806
feat(scheduler): add java / python tags support (#259) 2023-06-22 20:25:56 +00:00
Meng Zhang 7ed5dd584d
feat: experiment ctags support in scheduler (#207)
* experiment ctags support

* add document.rs

* extract Document to common

* integrate tags into dataset builder

* skip if none

* do not add scheduler in client binary

* fix fmt
2023-06-21 19:48:13 -07:00
Meng Zhang 6eae16d475 fix: typo in openapi documentation 2023-06-16 20:22:38 -07:00
Meng Zhang 8ee700089f feat: do not use fim template when suffix is empty string 2023-06-15 09:27:32 -07:00
Meng Zhang 9abf1a7521
fix: optional file should be put in cache key to avoid internet access when prefer_local_files = true (#241)
* feat: when file is 404, cache as NotFound

* explicitly mark optional file

* refactor
2023-06-15 04:13:52 +00:00
Meng Zhang d572cf7d6d api: add user field in completion api 2023-06-14 10:50:03 -07:00
Meng Zhang 93d5d8b297 docs: update website openapi.json 2023-06-13 13:13:03 -07:00
Meng Zhang b2734aed59 feat: returns more information in /v1/health 2023-06-13 13:11:20 -07:00
Meng Zhang 9c9e46c6f4 feat: support set compute_type through commandline arguments 2023-06-13 12:04:07 -07:00
Meng Zhang ba7e04d030 refactor: remove admin 2023-06-13 11:37:55 -07:00
Meng Zhang 5985d91782
fix: use int8_float16 to fix SantaCoder-1B (#237)
#236
2023-06-13 01:13:06 -07:00
Meng Zhang a8a145d9b3
feat: add metrics in dataset (#235) 2023-06-12 19:39:43 +00:00
Meng Zhang 2983f70d22
feat: build index from dataset (#234) 2023-06-12 19:21:27 +00:00
Meng Zhang 9af6607f85
feat: add dataset building (#231)
* feat: build dataset in scheduler

* add file rotate
2023-06-12 15:19:43 +00:00
Meng Zhang 3b7153ba23 docs: update website 2023-06-11 12:28:23 -07:00
Meng Zhang de546b03fe
feat: add otlp-endpoint for OpenTelemetry support [TAB-67] (#227)
* feat: add otlp-endpoint for OpenTelemetry support

* set default log level for axum tracing to INFO

* update build enviornment

* update
2023-06-10 22:46:25 -07:00
Meng Zhang 6180b32980
feat: add /v1/health (#226)
* feat: add /v1/health

* fix fmt
2023-06-10 22:37:42 -07:00
Meng Zhang 6718afbf67 fix: server should still support prompt only use case 2023-06-10 00:39:32 -07:00
Meng Zhang eecdde0269
fix: vocabulary.txt / shared_vocabulary.txt should be optional (#225) 2023-06-09 06:49:09 +00:00
Meng Zhang 40460885b0 docs: improve website theming 2023-06-07 11:17:00 -07:00
Meng Zhang 1aaf29c968
docs: switch openapi docs (#215)
* update openapi

* update

* fix: shared_vocabulary is not a required file

* docs: improve docs
2023-06-07 01:58:05 -07:00
Meng Zhang 4cb672ec39
feat: improve error handling and messages [TAB-58] (#213)
* add fatal macro

* switch expect to fatal

* improve error handling of serve

* improve error handling on download module

* improve error handling in scheduler

* improve error handling

* fmt

* fmt
2023-06-07 02:02:58 +00:00
Meng Zhang fd1baff8d5
feat: support stop sequences [TAB-52] (#212)
* refactor: pass step and string token to callback

* add token to callback

* add stop regexp

* implement stop words logic

* pass token_ids from inference

* improve effiency of regexp match with reversed regex

* fmt

* add typescript and javascript stop words

* add cache for stop words regexp
2023-06-06 23:28:58 +00:00
Meng Zhang 007a40c582
feat: support early stop [TAB-51] (#208)
* bump ctranslate2 to v3.15.0

* enable early stop

* support early stop
2023-06-06 12:46:17 +00:00
Meng Zhang 249d51d0f5
feat: add indexer [TAB-17] (#199)
* add basic indexer

* formatting
2023-06-05 22:18:10 +00:00
Meng Zhang 272dde9769
refactor: rust nightly format (#197)
* chore: turn on group format

* turn on nightly fmt
2023-06-05 14:17:07 -07:00
Meng Zhang f4442b104f docs: usage string for scheduler 2023-06-05 12:57:18 -07:00
Meng Zhang e8a33312bb
refactor: extract download into tabby-download (#195)
* refactor: extract download into tabby-download

* remove unused deps
2023-06-05 18:40:24 +00:00
Meng Zhang e8b1c10738
feat: add `tabby scheduler` command (#194)
* feat: add `tabby scheduler` command

* update test cases

* fix fmt
2023-06-05 18:29:38 +00:00
Meng Zhang da02d471a9
chore: add tabby-scheduler [TAB-17] (#192)
* add scheduler

* update fmt

* add integration tests for scheduler
2023-06-05 03:08:43 +00:00
Meng Zhang 2bf5bcd0cf
refactor: extract TextInferenceEngineImpl to reduce duplications between EncoderDecoderImpl and DecoderImpl #189 2023-06-04 22:28:39 +00:00
Meng Zhang 6de61f45bb
chore: mark thread safety [TAB-52] (#186)
* mark thread safety

* use shared_ptr to ensure thread safety

* fmt
2023-06-04 06:23:31 +00:00
Meng Zhang 775576b53e
fix: only use prompt_template when suffix presents [TAB-46] (#184)
* fix: only use prompt_template when suffix presents

* lint
2023-06-03 17:29:04 +00:00
Meng Zhang 2779da3cba
feat: supports FIM inference [TAB-46] (#183)
* Add prefix / suffix

* update

* feat: support segments in inference

* chore: add tabby.json in model repository to store prompt_template

* make prompt_template optional.

* download tabby.json in downloader
2023-06-02 16:47:48 -07:00
Meng Zhang 950a7a795f fix: when model_id is an local dir, don't try to download model from remote 2023-06-02 13:48:53 -07:00
Meng Zhang 3cac2607e7
refactor: improve error handlings, fix clippy warnings (#181)
* refactor: minor improvements on error handling

* refactor: cleanup error handlings

* update

* update

* fix

* add clippy / test workflow

* fix clippy

* fix clippy

* update
2023-06-01 17:23:05 -07:00
Meng Zhang ca077a3403
feat: ensure model exist before serving (#180)
* chore: migrate completion to new metadata format

* feat: ensure model exist before serving
2023-06-01 07:26:21 +00:00
Meng Zhang 9131567257
chore: migrate completion to new metadata format (#179) 2023-06-01 07:08:09 +00:00
Meng Zhang e8dbd36663
feat: improve download command - support local cache checking behavior (#178)
* move download.rs

* add metadata

* support prefer local args

* fix format

* replace errorchain with anyhow
2023-06-01 06:42:04 +00:00
Meng Zhang b8d67770ee
fix: cors in /, stop words removal (#171) 2023-05-30 17:12:10 -07:00
Meng Zhang f3b37b253b
feat: add events logger (#170)
* add common events

* log events in serve

* formatting

* extract serde_conv

* update

* update

* fix logging

* update
2023-05-30 15:44:29 -07:00
Meng Zhang d8cee4adac
chore: extract tabby-common (#169)
* chore: extract tabby-common

* simplify
2023-05-29 23:39:02 -07:00
Meng Zhang 8956056120
fix: support local model path (#165) 2023-05-29 17:40:16 -07:00
Meng Zhang 418558c05d chore: cargo fmt 2023-05-29 17:00:23 -07:00
Meng Zhang 0d11b0e832
Make language field optional in rust implementation (#164)
* remove download_model.py as we have tabby serve now

* Make language field optional
2023-05-29 16:58:02 -07:00
Meng Zhang 48796ecd77
feat: add `tabby download` command (#157)
* simplify fmt-display

* cleanup

* move tabby-admin to reduce nest

* add model downloader

* get rid of model-type

* improve commands

* fix fmt
2023-05-28 14:36:11 -07:00
Meng Zhang 80d1dd1ca6
Add admin panel (behand --experimental-admin-panel) (#156)
* add admin

* add feature:admin_panel

* update

* add dist directory

* update
2023-05-28 01:17:32 -07:00
Meng Zhang b8309d98cc
Switch to sccache (#154)
* fix fmt

* fix

* fix test

* fix clippy

* switch to sc cache

* fix

* update

* update

* update

* fix

* add test

* remove clippy

* update

* disable incremental

* update

* simply
2023-05-27 16:20:17 -07:00
Meng Zhang 0000312460
Add download_model.py. Adjust ctranslate2 backend model structure (#153)
* adjust

* update

* update
2023-05-27 14:51:12 -07:00
Meng Zhang 552711a560
Support causal lm (decoder only model) (#151)
* support

* support causal lm
2023-05-27 01:26:33 -07:00
Meng Zhang 72ed30e9ff
Build link shared in docker for ctranslate2 (#150)
* Build link shared in docker

* update

* update
2023-05-27 00:05:56 -07:00
Meng Zhang 06cf34a007
support static linking of ctranslate2 (#148)
* support static linking of ctranslate2

* update

* remove submodule rust-cxx-cmake-bridge

* support alwayslink with whole-archive

* update

* move export_libs

* update docker config

* update ctranslate2

* remove

* update

* update build.rs

* parse external libs

* cleanup

* add cargo fmt
2023-05-26 21:34:31 -07:00
Meng Zhang 7b10340e67 feat: add --port to serve command 2023-05-26 00:32:11 -07:00
Meng Zhang c296b83de9 chore: remove unused lock 2023-05-26 00:06:10 -07:00
Meng Zhang 8dfe49ec6c
feat: support cuda devices in rust tabby (#149) 2023-05-25 23:23:07 -07:00
Meng Zhang 0acc975618
Support linux ctranslate2 cuda build (#147)
* Support linux build

* add <memory> to fix build error in linux

* add Dockerfile.tabby

* update

* update

* add rust docker image pipeline

* add docker.rust.yml
2023-05-25 18:18:22 -07:00
Meng Zhang 80588ddd22 fix: remove wrongly added submodule 2023-05-25 15:08:34 -07:00
Meng Zhang a2476af373
add ctranslate2-bindings / tabby rust packages (#146)
* add ctranslate2-bindings

* add fixme for linux build

* turn off shared lib

* add tabby-cli
2023-05-25 14:05:28 -07:00