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 conf
add-more-languages
Meng Zhang 2023-03-25 12:20:29 +08:00 committed by GitHub
parent 3407253882
commit 8cf533016a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 42 additions and 47 deletions

View File

@ -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: |

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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:

View File

@ -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)

View File

@ -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=[])

View File

@ -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__(

View File

@ -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__(

View File

@ -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"})

View File

@ -1,4 +1,4 @@
from args import FilterArgs from .args import FilterArgs
def basic_filters(args: FilterArgs): def basic_filters(args: FilterArgs):

View File

@ -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)