Move python code under tabby/ (#8)
* Add tabby config file * Rename train.yaml to trainer.yaml * Change server to relative import * Move source files into tabby * Rename confadd-more-languages
parent
3407253882
commit
8cf533016a
|
|
@ -55,7 +55,7 @@ jobs:
|
||||||
id: build-and-push
|
id: build-and-push
|
||||||
uses: docker/build-push-action@v3.1.1
|
uses: docker/build-push-action@v3.1.1
|
||||||
with:
|
with:
|
||||||
file: deployment/Dockerfile
|
file: Dockerfile
|
||||||
context: .
|
context: .
|
||||||
push: ${{ github.event_name != 'pull_request' }}
|
push: ${{ github.event_name != 'pull_request' }}
|
||||||
tags: |
|
tags: |
|
||||||
|
|
|
||||||
2
Makefile
2
Makefile
|
|
@ -15,7 +15,7 @@ $(PRE_COMMIT_HOOK):
|
||||||
poetry run pre-commit install --install-hooks
|
poetry run pre-commit install --install-hooks
|
||||||
|
|
||||||
$(LOCAL_MODEL):
|
$(LOCAL_MODEL):
|
||||||
poetry run python scripts/huggingface_gptneox_convert.py \
|
poetry run python -m tabby.tools.huggingface_gptneox_convert \
|
||||||
-in_file EleutherAI/pythia-70m-deduped \
|
-in_file EleutherAI/pythia-70m-deduped \
|
||||||
-o $@ \
|
-o $@ \
|
||||||
-i_g 1 -m_n tiny-70M -p 1 -w fp16
|
-i_g 1 -m_n tiny-70M -p 1 -w fp16
|
||||||
|
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
schedule: "5 4 * * *" # Run at 04:05.
|
|
||||||
|
|
||||||
env:
|
|
||||||
- APP_DIR: /app
|
|
||||||
steps:
|
|
||||||
- name: Create job dir
|
|
||||||
command: mktemp -d /tmp/job.XXXXX
|
|
||||||
output: JOB_DIR
|
|
||||||
|
|
||||||
- name: Fetch source code
|
|
||||||
dir: $APP_DIR
|
|
||||||
command: python scripts/download_project.py --url http://download.savannah.gnu.org/releases/tinycc/tcc-0.9.24.tar.bz2 --output_dir $JOB_DIR/repository
|
|
||||||
depends:
|
|
||||||
- Create job dir
|
|
||||||
|
|
||||||
- name: Generate dataset
|
|
||||||
dir: ${APP_DIR}
|
|
||||||
command: python scripts/preprocess/preprocess_project.py --project_dir $JOB_DIR/repository --output_dir $JOB_DIR/dataset
|
|
||||||
depends:
|
|
||||||
- Fetch source code
|
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
schedule: "5 4 * * *" # Run at 04:05.
|
||||||
|
|
||||||
|
env:
|
||||||
|
- APP_DIR: /app
|
||||||
|
steps:
|
||||||
|
- name: Create job dir
|
||||||
|
command: mktemp -d /tmp/job.XXXXX
|
||||||
|
output: JOB_DIR
|
||||||
|
|
||||||
|
- name: Fetch source code
|
||||||
|
dir: $APP_DIR
|
||||||
|
command: python -m tabby.tools.download_project --url http://download.savannah.gnu.org/releases/tinycc/tcc-0.9.24.tar.bz2 --output_dir $JOB_DIR/repository
|
||||||
|
depends:
|
||||||
|
- Create job dir
|
||||||
|
|
||||||
|
- name: Generate dataset
|
||||||
|
dir: $APP_DIR
|
||||||
|
command: python -m tabby.tools.preprocess.preprocess_project --project_dir $JOB_DIR/repository --output_dir $JOB_DIR/dataset
|
||||||
|
depends:
|
||||||
|
- Fetch source code
|
||||||
|
|
@ -4,15 +4,14 @@ services:
|
||||||
server:
|
server:
|
||||||
build:
|
build:
|
||||||
context: ..
|
context: ..
|
||||||
dockerfile: ./deployment/Dockerfile
|
|
||||||
args:
|
args:
|
||||||
PYPI_INDEX_URL: https://pypi.tuna.tsinghua.edu.cn/simple
|
PYPI_INDEX_URL: https://pypi.tuna.tsinghua.edu.cn/simple
|
||||||
command: uvicorn app:app --host 0.0.0.0 --port 5000 --reload
|
command: uvicorn tabby.server:app --host 0.0.0.0 --port 5000 --reload
|
||||||
volumes:
|
volumes:
|
||||||
- ../:/app
|
- ../:/app
|
||||||
|
|
||||||
admin:
|
admin:
|
||||||
command: streamlit run --server.runOnSave=true Home.py
|
command: streamlit run --server.runOnSave=true tabby/admin/Home.py
|
||||||
volumes:
|
volumes:
|
||||||
- ../:/app
|
- ../:/app
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,7 @@ services:
|
||||||
server:
|
server:
|
||||||
image: tabbyml/tabby
|
image: tabbyml/tabby
|
||||||
container_name: tabby-server
|
container_name: tabby-server
|
||||||
working_dir: /app/server
|
command: uvicorn tabby.server:app --host 0.0.0.0 --port 5000
|
||||||
command: uvicorn app:app --host 0.0.0.0 --port 5000
|
|
||||||
environment:
|
environment:
|
||||||
- PYTHON_MODEL_NAME=EleutherAI/pythia-70m-deduped
|
- PYTHON_MODEL_NAME=EleutherAI/pythia-70m-deduped
|
||||||
- EVENTS_LOG_DIR=/logs/tabby-server
|
- EVENTS_LOG_DIR=/logs/tabby-server
|
||||||
|
|
@ -14,14 +13,11 @@ services:
|
||||||
volumes:
|
volumes:
|
||||||
- ./data/logs:/logs
|
- ./data/logs:/logs
|
||||||
- ./data/hf_cache:/root/.cache/huggingface
|
- ./data/hf_cache:/root/.cache/huggingface
|
||||||
links:
|
|
||||||
- vector
|
|
||||||
|
|
||||||
admin:
|
admin:
|
||||||
image: tabbyml/tabby
|
image: tabbyml/tabby
|
||||||
container_name: tabby-admin
|
container_name: tabby-admin
|
||||||
working_dir: /app/admin
|
command: streamlit run tabby/admin/Home.py
|
||||||
command: streamlit run Home.py
|
|
||||||
ports:
|
ports:
|
||||||
- "8501:8501"
|
- "8501:8501"
|
||||||
links:
|
links:
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
|
|
||||||
import events
|
|
||||||
import uvicorn
|
import uvicorn
|
||||||
from fastapi import FastAPI, Response
|
from fastapi import FastAPI, Response
|
||||||
from fastapi.responses import JSONResponse
|
from fastapi.responses import JSONResponse
|
||||||
from models import CompletionRequest, CompletionResponse
|
|
||||||
from python import PythonModelService
|
from . import events
|
||||||
from triton import TritonService
|
from .models import CompletionRequest, CompletionResponse
|
||||||
|
from .python import PythonModelService
|
||||||
|
from .triton import TritonService
|
||||||
|
|
||||||
app = FastAPI(
|
app = FastAPI(
|
||||||
title="TabbyServer",
|
title="TabbyServer",
|
||||||
|
|
@ -38,7 +39,3 @@ async def completions(request: CompletionRequest) -> CompletionResponse:
|
||||||
async def selection(id: str, index: int) -> JSONResponse:
|
async def selection(id: str, index: int) -> JSONResponse:
|
||||||
events.log_selection(id, index)
|
events.log_selection(id, index)
|
||||||
return JSONResponse(content="ok")
|
return JSONResponse(content="ok")
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
uvicorn.run("app:app", host="0.0.0.0", port=5000)
|
|
||||||
|
|
@ -3,10 +3,11 @@ import os
|
||||||
import shutil
|
import shutil
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
import models
|
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
|
from . import models
|
||||||
|
|
||||||
logger.configure(handlers=[])
|
logger.configure(handlers=[])
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -3,9 +3,10 @@ import string
|
||||||
import time
|
import time
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from models import Choice, CompletionRequest, CompletionResponse
|
|
||||||
from transformers import AutoModelForCausalLM, AutoTokenizer
|
from transformers import AutoModelForCausalLM, AutoTokenizer
|
||||||
|
|
||||||
|
from .models import Choice, CompletionRequest, CompletionResponse
|
||||||
|
|
||||||
|
|
||||||
class PythonModelService:
|
class PythonModelService:
|
||||||
def __init__(
|
def __init__(
|
||||||
|
|
@ -6,10 +6,11 @@ from typing import List
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import tritonclient.grpc as client_util
|
import tritonclient.grpc as client_util
|
||||||
from models import Choice, CompletionRequest, CompletionResponse
|
|
||||||
from transformers import AutoTokenizer
|
from transformers import AutoTokenizer
|
||||||
from tritonclient.utils import InferenceServerException, np_to_triton_dtype
|
from tritonclient.utils import InferenceServerException, np_to_triton_dtype
|
||||||
|
|
||||||
|
from .models import Choice, CompletionRequest, CompletionResponse
|
||||||
|
|
||||||
|
|
||||||
class TritonService:
|
class TritonService:
|
||||||
def __init__(
|
def __init__(
|
||||||
|
|
@ -6,7 +6,7 @@ import requests
|
||||||
from transformers import HfArgumentParser
|
from transformers import HfArgumentParser
|
||||||
|
|
||||||
|
|
||||||
@dataclass(kw_only=True)
|
@dataclass
|
||||||
class DownloaderArgs:
|
class DownloaderArgs:
|
||||||
url: str = field(metadata={"help": "URL to source code tar.gz file"})
|
url: str = field(metadata={"help": "URL to source code tar.gz file"})
|
||||||
output_dir: str = field(metadata={"help": "Output save path directory"})
|
output_dir: str = field(metadata={"help": "Output save path directory"})
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
from args import FilterArgs
|
from .args import FilterArgs
|
||||||
|
|
||||||
|
|
||||||
def basic_filters(args: FilterArgs):
|
def basic_filters(args: FilterArgs):
|
||||||
|
|
@ -2,12 +2,12 @@ import glob
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
|
|
||||||
import filters
|
|
||||||
import metrics
|
|
||||||
from args import PreprocessProjectArgs
|
|
||||||
from datasets import Dataset
|
from datasets import Dataset
|
||||||
from transformers import HfArgumentParser
|
from transformers import HfArgumentParser
|
||||||
|
|
||||||
|
from . import filters, metrics
|
||||||
|
from .args import PreprocessProjectArgs
|
||||||
|
|
||||||
|
|
||||||
def parse_args():
|
def parse_args():
|
||||||
parser = HfArgumentParser(PreprocessProjectArgs)
|
parser = HfArgumentParser(PreprocessProjectArgs)
|
||||||
Loading…
Reference in New Issue