• Steven Liu's avatar
    [docs] Redesign (#31757) · c0f8d055
    Steven Liu authored
    
    * toctree
    
    * not-doctested.txt
    
    * collapse sections
    
    * feedback
    
    * update
    
    * rewrite get started sections
    
    * fixes
    
    * fix
    
    * loading models
    
    * fix
    
    * customize models
    
    * share
    
    * fix link
    
    * contribute part 1
    
    * contribute pt 2
    
    * fix toctree
    
    * tokenization pt 1
    
    * Add new model (#32615)
    
    * v1 - working version
    
    * fix
    
    * fix
    
    * fix
    
    * fix
    
    * rename to correct name
    
    * fix title
    
    * fixup
    
    * rename files
    
    * fix
    
    * add copied from on tests
    
    * rename to `FalconMamba` everywhere and fix bugs
    
    * fix quantization + accelerate
    
    * fix copies
    
    * add `torch.compile` support
    
    * fix tests
    
    * fix tests and add slow tests
    
    * copies on config
    
    * merge the latest changes
    
    * fix tests
    
    * add few lines about instruct
    
    * Apply suggestions from code review
    
    Co-authored-by: default avatarArthur <48595927+ArthurZucker@users.noreply.github.com>
    
    * fix
    
    * fix tests
    
    ---------
    
    Co-authored-by: default avatarArthur <48595927+ArthurZucker@users.noreply.github.com>
    
    * "to be not" -> "not to be" (#32636)
    
    * "to be not" -> "not to be"
    
    * Update sam.md
    
    * Update trainer.py
    
    * Update modeling_utils.py
    
    * Update test_modeling_utils.py
    
    * Update test_modeling_utils.py
    
    * fix hfoption tag
    
    * tokenization pt. 2
    
    * image processor
    
    * fix toctree
    
    * backbones
    
    * feature extractor
    
    * fix file name
    
    * processor
    
    * update not-doctested
    
    * update
    
    * make style
    
    * fix toctree
    
    * revision
    
    * make fixup
    
    * fix toctree
    
    * fix
    
    * make style
    
    * fix hfoption tag
    
    * pipeline
    
    * pipeline gradio
    
    * pipeline web server
    
    * add pipeline
    
    * fix toctree
    
    * not-doctested
    
    * prompting
    
    * llm optims
    
    * fix toctree
    
    * fixes
    
    * cache
    
    * text generation
    
    * fix
    
    * chat pipeline
    
    * chat stuff
    
    * xla
    
    * torch.compile
    
    * cpu inference
    
    * toctree
    
    * gpu inference
    
    * agents and tools
    
    * gguf/tiktoken
    
    * finetune
    
    * toctree
    
    * trainer
    
    * trainer pt 2
    
    * optims
    
    * optimizers
    
    * accelerate
    
    * parallelism
    
    * fsdp
    
    * update
    
    * distributed cpu
    
    * hardware training
    
    * gpu training
    
    * gpu training 2
    
    * peft
    
    * distrib debug
    
    * deepspeed 1
    
    * deepspeed 2
    
    * chat toctree
    
    * quant pt 1
    
    * quant pt 2
    
    * fix toctree
    
    * fix
    
    * fix
    
    * quant pt 3
    
    * quant pt 4
    
    * serialization
    
    * torchscript
    
    * scripts
    
    * tpu
    
    * review
    
    * model addition timeline
    
    * modular
    
    * more reviews
    
    * reviews
    
    * fix toctree
    
    * reviews reviews
    
    * continue reviews
    
    * more reviews
    
    * modular transformers
    
    * more review
    
    * zamba2
    
    * fix
    
    * all frameworks
    
    * pytorch
    
    * supported model frameworks
    
    * flashattention
    
    * rm check_table
    
    * not-doctested.txt
    
    * rm check_support_list.py
    
    * feedback
    
    * updates/feedback
    
    * review
    
    * feedback
    
    * fix
    
    * update
    
    * feedback
    
    * updates
    
    * update
    
    ---------
    
    Co-authored-by: default avatarYounes Belkada <49240599+younesbelkada@users.noreply.github.com>
    Co-authored-by: default avatarArthur <48595927+ArthurZucker@users.noreply.github.com>
    Co-authored-by: default avatarQuentin Gallouédec <45557362+qgallouedec@users.noreply.github.com>
    c0f8d055
config.yml 10.46 KiB
version: 2.1
setup: true
orbs:
    continuation: circleci/continuation@0.1.0
parameters:
    nightly:
        type: boolean
        default: false
jobs:
    # Ensure running with CircleCI/huggingface
    check_circleci_user:
        docker:
            - image: python:3.10-slim
        resource_class: small
        parallelism: 1
        steps:
            - run: echo $CIRCLE_PROJECT_USERNAME
            - run: |
                if [ "$CIRCLE_PROJECT_USERNAME" = "huggingface" ]; then
                    exit 0
                else
                    echo "The CI is running under $CIRCLE_PROJECT_USERNAME personal account. Please follow https://support.circleci.com/hc/en-us/articles/360008097173-Troubleshooting-why-pull-requests-are-not-triggering-jobs-on-my-organization- to fix it."; exit -1
    # Fetch the tests to run
    fetch_tests:
        working_directory: ~/transformers
        docker:
            - image: huggingface/transformers-quality
        parallelism: 1
        steps:
            - checkout
            - run: if [[ "$CIRCLE_PULL_REQUEST" == "" && "$CIRCLE_BRANCH" != "main" && "$CIRCLE_BRANCH" != *-release ]]; then echo "Not a PR, not the main branch and not a release branch, skip test!"; circleci-agent step halt; fi
            - run: 'curl -L -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" https://api.github.com/repos/$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/pulls/${CIRCLE_PULL_REQUEST##*/} >> github.txt'
            - run: cat github.txt
            - run: (python3 -c 'import json; from datetime import datetime; fp = open("github.txt"); data = json.load(fp); fp.close(); f = "%Y-%m-%dT%H:%M:%SZ"; created = datetime.strptime(data["created_at"], f); updated = datetime.strptime(data["updated_at"], f); s = (updated - created).total_seconds(); print(int(s))' || true) > elapsed.txt
            - run: if [ "$(cat elapsed.txt)" == "" ]; then echo 60 > elapsed.txt; fi
            - run: cat elapsed.txt
            - run: if [ "$(cat elapsed.txt)" -lt "30" ]; then echo "PR is just opened, wait some actions from GitHub"; sleep 30; fi
            - run: 'if grep -q "\"draft\": true," github.txt; then echo "draft mode, skip test!"; circleci-agent step halt; fi'
            - run: uv pip install -U -e .
            - run: echo 'export "GIT_COMMIT_MESSAGE=$(git show -s --format=%s)"' >> "$BASH_ENV" && source "$BASH_ENV"
            - run: mkdir -p test_preparation
            - run: python utils/tests_fetcher.py | tee tests_fetched_summary.txt
            - run: python utils/tests_fetcher.py --filter_tests
            - run: export "GIT_COMMIT_MESSAGE=$(git show -s --format=%s)" && echo $GIT_COMMIT_MESSAGE && python .circleci/create_circleci_config.py --fetcher_folder test_preparation
            - run: |
                if [ ! -s test_preparation/generated_config.yml ]; then
                    echo "No tests to run, exiting early!"
                    circleci-agent step halt
            - store_artifacts:
                path: test_preparation
            - run:
                name: "Retrieve Artifact Paths"
                # [reference] https://circleci.com/docs/api/v2/index.html#operation/getJobArtifacts
                # `CIRCLE_TOKEN` is defined as an environment variables set within a context, see `https://circleci.com/docs/contexts/`
                command: |
                    project_slug="gh/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}"
                    job_number=${CIRCLE_BUILD_NUM}
                    url="https://circleci.com/api/v2/project/${project_slug}/${job_number}/artifacts"
                    curl -o test_preparation/artifacts.json ${url} --header "Circle-Token: $CIRCLE_TOKEN"
            - run:
                name: "Prepare pipeline parameters"
                command: |
                    python utils/process_test_artifacts.py
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
# To avoid too long generated_config.yaml on the continuation orb, we pass the links to the artifacts as parameters. # Otherwise the list of tests was just too big. Explicit is good but for that it was a limitation. # We used: # https://circleci.com/docs/api/v2/index.html#operation/getJobArtifacts : to get the job artifacts # We could not pass a nested dict, which is why we create the test_file_... parameters for every single job - store_artifacts: path: test_preparation/transformed_artifacts.json - store_artifacts: path: test_preparation/artifacts.json - continuation/continue: parameters: test_preparation/transformed_artifacts.json configuration_path: test_preparation/generated_config.yml # To run all tests for the nightly build fetch_all_tests: working_directory: ~/transformers docker: - image: huggingface/transformers-quality parallelism: 1 steps: - checkout - run: uv pip install -U -e . - run: echo 'export "GIT_COMMIT_MESSAGE=$(git show -s --format=%s)"' >> "$BASH_ENV" && source "$BASH_ENV" - run: mkdir -p test_preparation - run: python utils/tests_fetcher.py --fetch_all | tee tests_fetched_summary.txt - run: python utils/tests_fetcher.py --filter_tests - run: export "GIT_COMMIT_MESSAGE=$(git show -s --format=%s)" && echo $GIT_COMMIT_MESSAGE && python .circleci/create_circleci_config.py --fetcher_folder test_preparation - run: | if [ ! -s test_preparation/generated_config.yml ]; then echo "No tests to run, exiting early!" circleci-agent step halt fi - store_artifacts: path: test_preparation - run: name: "Retrieve Artifact Paths" env: CIRCLE_TOKEN: ${{ secrets.CI_ARTIFACT_TOKEN }} command: | project_slug="gh/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}" job_number=${CIRCLE_BUILD_NUM} url="https://circleci.com/api/v2/project/${project_slug}/${job_number}/artifacts" curl -o test_preparation/artifacts.json ${url} - run: name: "Prepare pipeline parameters" command: | python utils/process_test_artifacts.py # To avoid too long generated_config.yaml on the continuation orb, we pass the links to the artifacts as parameters. # Otherwise the list of tests was just too big. Explicit is good but for that it was a limitation. # We used: # https://circleci.com/docs/api/v2/index.html#operation/getJobArtifacts : to get the job artifacts # We could not pass a nested dict, which is why we create the test_file_... parameters for every single job - store_artifacts: path: test_preparation/transformed_artifacts.json - store_artifacts: path: test_preparation/artifacts.json - continuation/continue: parameters: test_preparation/transformed_artifacts.json configuration_path: test_preparation/generated_config.yml check_code_quality: working_directory: ~/transformers docker: