Axolotl เป็นเครื่องมือที่ออกแบบมาเพื่อปรับปรุงการปรับแต่งโมเดล AI ต่างๆ อย่างละเอียด โดยให้การสนับสนุนการกำหนดค่าและสถาปัตยกรรมที่หลากหลาย
คุณสมบัติ:
สารบัญ
| Axolotl จัดเตรียมพื้นที่เก็บข้อมูลแบบครบวงจรสำหรับการปรับแต่งอย่างละเอียด ไปข้างหน้าและคำถาม Axolotl!! |
fp16/fp32 | ลอร่า | คลอรา | gptq | gptq พร้อมแฟลช attn | แฟลชเรียน | xformers เรียนคุณ | |
---|---|---|---|---|---|---|---|
ลามะ | |||||||
มิสทรัล | |||||||
มิกซ์ทรัล-MoE | |||||||
มิกซ์ทรัล8X22 | |||||||
ปีเธีย | |||||||
สมอง | |||||||
btlm | |||||||
MPT | |||||||
เหยี่ยว | |||||||
GPT-เจ | |||||||
เอ็กซ์เจน | |||||||
พี | |||||||
RWKV | |||||||
เกว็น | |||||||
เจมม่า | |||||||
จัมบะ |
✅: รองรับ : ไม่รองรับ ❓: ยังไม่ทดลอง
เริ่มต้นใช้งาน Axolotl ได้ในไม่กี่ขั้นตอน! คู่มือเริ่มต้นใช้งานฉบับย่อนี้จะแนะนำคุณตลอดขั้นตอนการตั้งค่าและใช้งานการปรับแต่งขั้นพื้นฐาน
ข้อกำหนด : Nvidia GPU (สถาปัตยกรรม Ampere หรือใหม่กว่าสำหรับ bf16
และ Flash Attention), Python >=3.10 และ PyTorch >=2.3.1
git clone https://github.com/axolotl-ai-cloud/axolotl
cd axolotl
pip3 install packaging ninja
pip3 install -e ' .[flash-attn,deepspeed] '
# preprocess datasets - optional but recommended
CUDA_VISIBLE_DEVICES= " " python -m axolotl.cli.preprocess examples/openllama-3b/lora.yml
# finetune lora
accelerate launch -m axolotl.cli.train examples/openllama-3b/lora.yml
# inference
accelerate launch -m axolotl.cli.inference examples/openllama-3b/lora.yml
--lora_model_dir= " ./outputs/lora-out "
# gradio
accelerate launch -m axolotl.cli.inference examples/openllama-3b/lora.yml
--lora_model_dir= " ./outputs/lora-out " --gradio
# remote yaml files - the yaml config can be hosted on a public URL
# Note: the yaml config must directly link to the **raw** yaml
accelerate launch -m axolotl.cli.train https://raw.githubusercontent.com/axolotl-ai-cloud/axolotl/main/examples/openllama-3b/lora.yml
docker run --gpus ' "all" ' --rm -it axolotlai/axolotl:main-latest
หรือรันบนไฟล์ปัจจุบันเพื่อการพัฒนา:
docker compose up -d
เคล็ดลับ
หากคุณต้องการดีบัก axolotl หรือต้องการใช้ Docker เป็นสภาพแวดล้อมการพัฒนาของคุณ โปรดดูส่วนของคำแนะนำในการดีบักบน Docker
คำสั่ง Docker ที่ทรงพลังกว่าในการรันคือ:
docker run --privileged --gpus ' "all" ' --shm-size 10g --rm -it --name axolotl --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 --mount type=bind,src= " ${PWD} " ,target=/workspace/axolotl -v ${HOME} /.cache/huggingface:/root/.cache/huggingface axolotlai/axolotl:main-latest
นอกจากนี้:
--ipc
และ --ulimit
args--mount
/ -v
args--name
ช่วยให้การอ้างถึงคอนเทนเนอร์ใน vscode ง่ายขึ้น ( Dev Containers: Attach to Running Container...
) หรือในเทอร์มินัลของคุณ--privileged
ให้ความสามารถทั้งหมดแก่คอนเทนเนอร์--shm-size 10g
เพิ่มขนาดหน่วยความจำที่ใช้ร่วมกัน ใช้สิ่งนี้หากคุณเห็นข้อผิดพลาด exitcode: -7
โดยใช้ deepspeedข้อมูลเพิ่มเติมเกี่ยวกับเว็บไซต์ nvidia
ติดตั้งหลาม >= 3.10
ติดตั้ง pytorch ที่เสถียร https://pytorch.org/get-started/locally/
ติดตั้ง Axolotl พร้อมกับการพึ่งพาหลาม
pip3 install packaging
pip3 install -e ' .[flash-attn,deepspeed] '
(ไม่บังคับ) เข้าสู่ระบบ Huggingface เพื่อใช้โมเดล/ชุดข้อมูลที่มีรั้วรอบขอบชิด
huggingface-cli login
รับโทเค็นได้ที่huggingface.co/settings/tokens
สำหรับผู้ให้บริการ GPU บนคลาวด์ที่รองรับอิมเมจนักเทียบท่า ให้ใช้ axolotlai/axolotl-cloud:main-latest
sudo apt update
sudo apt install -y python3.10
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 1
sudo update-alternatives --config python # pick 3.10 if given option
python -V # should be 3.10
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
ติดตั้ง Pytorch https://pytorch.org/get-started/locally/
ทำตามคำแนะนำในการเริ่มต้นอย่างรวดเร็ว
วิ่ง
pip3 install protobuf==3.20.3
pip3 install -U --ignore-installed requests Pillow psutil scipy
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu: $LD_LIBRARY_PATH
ใช้ Deeplearning linux OS ที่ติดตั้ง cuda และ pytorch จากนั้นทำตามคำแนะนำในการเริ่มต้นอย่างรวดเร็ว
ตรวจสอบให้แน่ใจว่าได้เรียกใช้ด้านล่างเพื่อถอนการติดตั้ง xla
pip uninstall -y torch_xla[tpu]
กรุณาใช้ WSL หรือนักเทียบท่า!
ใช้วิธีด้านล่างแทนวิธีการติดตั้งใน QuickStart
pip3 install -e '.'
ข้อมูลเพิ่มเติม: mac.md
โปรดใช้สมุดบันทึกตัวอย่างนี้
หากต้องการเปิดใช้งานบนอินสแตนซ์ GPU (ทั้งอินสแตนซ์ตามความต้องการและสปอต) บนคลาวด์ 7+ (GCP, AWS, Azure, OCI และอื่นๆ) คุณสามารถใช้ SkyPilot:
pip install " skypilot-nightly[gcp,aws,azure,oci,lambda,kubernetes,ibm,scp] " # choose your clouds
sky check
รับตัวอย่าง YAML ของการใช้ Axolotl เพื่อปรับแต่ง mistralai/Mistral-7B-v0.1
:
git clone https://github.com/skypilot-org/skypilot.git
cd skypilot/llm/axolotl
ใช้คำสั่งเดียวเพื่อเปิดใช้งาน:
# On-demand
HF_TOKEN=xx sky launch axolotl.yaml --env HF_TOKEN
# Managed spot (auto-recovery on preemption)
HF_TOKEN=xx BUCKET= < unique-name > sky spot launch axolotl-spot.yaml --env HF_TOKEN --env BUCKET
หากต้องการเปิดใช้งานบนอินสแตนซ์ GPU (ทั้งอินสแตนซ์ตามความต้องการและอินสแตนซ์สปอต) บนคลาวด์สาธารณะ (GCP, AWS, Azure, Lambda Labs, TensorDock, Vast.ai และ CUDO) คุณสามารถใช้ dstack ได้
เขียนรายละเอียดงานใน YAML ดังนี้:
# dstack.yaml
type : task
image : axolotlai/axolotl-cloud:main-latest
env :
- HUGGING_FACE_HUB_TOKEN
- WANDB_API_KEY
commands :
- accelerate launch -m axolotl.cli.train config.yaml
ports :
- 6006
resources :
gpu :
memory : 24GB..
count : 2
จากนั้นเพียงรันงานด้วยคำสั่ง dstack run
ผนวกตัวเลือก --spot
หากคุณต้องการอินสแตนซ์สปอต คำสั่ง dstack run
จะแสดงอินสแตนซ์ที่มีราคาที่ถูกที่สุดในบริการหลายระบบคลาวด์:
pip install dstack
HUGGING_FACE_HUB_TOKEN=xxx WANDB_API_KEY=xxx dstack run . -f dstack.yaml # --spot
สำหรับกรณีการใช้งานเพิ่มเติมที่มีความละเอียด โปรดดูเอกสาร dstack อย่างเป็นทางการและคำอธิบายโดยละเอียดของตัวอย่าง axolotl บนพื้นที่เก็บข้อมูลอย่างเป็นทางการ
Axolotl รองรับรูปแบบชุดข้อมูลที่หลากหลาย ขอแนะนำให้ใช้ JSONL สคีมาของ JSONL ขึ้นอยู่กับงานและเทมเพลตพร้อมต์ที่คุณต้องการใช้ แทนที่จะใช้ JSONL คุณยังสามารถใช้ชุดข้อมูล HuggingFace พร้อมคอลัมน์สำหรับช่อง JSONL แต่ละช่องได้
ดูเอกสารประกอบสำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้รูปแบบชุดข้อมูลต่างๆ
ดูตัวอย่างสำหรับการเริ่มต้นอย่างรวดเร็ว ขอแนะนำให้ทำซ้ำและแก้ไขตามความต้องการของคุณ ตัวเลือกที่สำคัญที่สุดคือ:
แบบอย่าง
base_model : ./llama-7b-hf # local or huggingface repo
หมายเหตุ: โค้ดจะโหลดสถาปัตยกรรมที่ถูกต้อง
ชุดข้อมูล
datasets :
# huggingface repo
- path : vicgalle/alpaca-gpt4
type : alpaca
# huggingface repo with specific configuration/subset
- path : EleutherAI/pile
name : enron_emails
type : completion # format from earlier
field : text # Optional[str] default: text, field to use for completion data
# huggingface repo with multiple named configurations/subsets
- path : bigcode/commitpackft
name :
- ruby
- python
- typescript
type : ... # unimplemented custom format
# chat_template https://axolotl-ai-cloud.github.io/axolotl/docs/dataset-formats/conversation.html#chat_template
- path : ...
type : chat_template
chat_template : chatml # defaults to tokenizer's chat_template
# local
- path : data.jsonl # or json
ds_type : json # see other options below
type : alpaca
# dataset with splits, but no train split
- path : knowrohit07/know_sql
type : context_qa.load_v2
train_on_split : validation
# loading from s3 or gcs
# s3 creds will be loaded from the system default and gcs only supports public access
- path : s3://path_to_ds # Accepts folder with arrow/parquet or file path like above. Supports s3, gcs.
...
# Loading Data From a Public URL
# - The file format is `json` (which includes `jsonl`) by default. For different formats, adjust the `ds_type` option accordingly.
- path : https://some.url.com/yourdata.jsonl # The URL should be a direct link to the file you wish to load. URLs must use HTTPS protocol, not HTTP.
ds_type : json # this is the default, see other options below.
กำลังโหลด
load_in_4bit : true
load_in_8bit : true
bf16 : auto # require >=ampere, auto will detect if your GPU supports this and choose automatically.
fp16 : # leave empty to use fp16 when bf16 is 'auto'. set to false if you want to fallback to fp32
tf32 : true # require >=ampere
bfloat16 : true # require >=ampere, use instead of bf16 when you don't want AMP (automatic mixed precision)
float16 : true # use instead of fp16 when you don't want AMP
หมายเหตุ: Repo ไม่ได้ทำการหาปริมาณ 4 บิต
ลอร่า
adapter : lora # 'qlora' or leave blank for full finetune
lora_r : 8
lora_alpha : 16
lora_dropout : 0.05
lora_target_modules :
- q_proj
- v_proj
ดูเอกสารเหล่านี้สำหรับตัวเลือกการกำหนดค่าทั้งหมด
วิ่ง
accelerate launch -m axolotl.cli.train your_config.yml
เคล็ดลับ
คุณยังสามารถอ้างอิงไฟล์กำหนดค่าที่โฮสต์บน URL สาธารณะได้ เช่น accelerate launch -m axolotl.cli.train https://yourdomain.com/your_config.yml
คุณสามารถเลือกสร้างชุดข้อมูลล่วงหน้าโดยใช้ข้อมูลต่อไปนี้ก่อนที่จะทำการปรับแต่ง ขอแนะนำสำหรับชุดข้อมูลขนาดใหญ่
dataset_prepared_path:
เป็นโฟลเดอร์ในเครื่องเพื่อบันทึกและโหลดชุดข้อมูลที่ pre-tokenizedpush_dataset_to_hub: hf_user/repo
เพื่อพุชไปที่ Huggingface--debug
เพื่อดูตัวอย่างที่ประมวลผลล่วงหน้า python -m axolotl.cli.preprocess your_config.yml
ด้านล่างนี้คือตัวเลือกที่มีอยู่ใน axolotl สำหรับการฝึกด้วย GPU หลายตัว โปรดทราบว่า DeepSpeed เป็นตัวเลือก multi-GPU ที่แนะนำในปัจจุบัน เนื่องจาก FSDP อาจประสบกับการสูญเสียความไม่เสถียร
Deepspeed เป็นชุดเพิ่มประสิทธิภาพสำหรับระบบ multi-gpu ที่ช่วยให้คุณสามารถฝึกฝนโมเดลที่มีขนาดใหญ่กว่าปกติที่คุณจะสามารถใส่ลงใน VRAM ของ GPU ได้ ข้อมูลเพิ่มเติมเกี่ยวกับการเพิ่มประสิทธิภาพประเภทต่างๆ สำหรับ deepspeed มีอยู่ที่ https://huggingface.co/docs/accelerate/main/en/usage_guides/deepspeed#what-is-integrated
เรามีการกำหนดค่า JSON deepspeed เริ่มต้นหลายรายการสำหรับ ZeRO สเตจ 1, 2 และ 3
deepspeed : deepspeed_configs/zero1.json
accelerate launch -m axolotl.cli.train examples/llama-2/config.yml --deepspeed deepspeed_configs/zero1.json
fsdp :
- full_shard
- auto_wrap
fsdp_config :
fsdp_offload_params : true
fsdp_state_dict_type : FULL_STATE_DICT
fsdp_transformer_layer_cls_to_wrap : LlamaDecoderLayer
Axolotl รองรับการฝึกอบรมด้วย FSDP และ QLoRA ดูเอกสารเหล่านี้สำหรับข้อมูลเพิ่มเติม
ตรวจสอบให้แน่ใจว่าตัวแปรสภาพแวดล้อม WANDB_API_KEY
ของคุณได้รับการตั้งค่า (แนะนำ) หรือคุณเข้าสู่ระบบ wandb ด้วย wandb login
wandb_mode :
wandb_project :
wandb_entity :
wandb_watch :
wandb_name :
wandb_log_model :
ตรวจสอบให้แน่ใจว่าตัวแปรสภาพแวดล้อม COMET_API_KEY
ของคุณได้รับการตั้งค่าไว้ (แนะนำ) หรือคุณเข้าสู่ระบบ wandb ด้วย comet login
use_comet :
comet_api_key :
comet_workspace :
comet_project_name :
comet_experiment_key :
comet_mode :
comet_online :
comet_experiment_config :
สิ่งสำคัญคือต้องมีโทเค็นพิเศษ เช่น ตัวคั่น จุดสิ้นสุดของลำดับ และจุดเริ่มต้นของลำดับ ในคำศัพท์ของโทเค็นของคุณ สิ่งนี้จะช่วยคุณหลีกเลี่ยงปัญหาโทเค็นและช่วยให้โมเดลของคุณฝึกฝนได้ดีขึ้น คุณสามารถทำได้ใน axolotl ดังนี้:
special_tokens :
bos_token : " <s> "
eos_token : " </s> "
unk_token : " <unk> "
tokens : # these are delimiters
- " <|im_start|> "
- " <|im_end|> "
เมื่อคุณรวมโทเค็นเหล่านี้ในการกำหนดค่า axolotl ของคุณ axolotl จะเพิ่มโทเค็นเหล่านี้ลงในคำศัพท์ของโทเค็น
Liger Kernel: เมล็ด Triton ที่มีประสิทธิภาพสำหรับการฝึกอบรม LLM
https://github.com/linkedin/Liger-Kernel
Liger (LinkedIn GPU Efficient Runtime) Kernel คือชุดของเมล็ด Triton ที่ออกแบบมาโดยเฉพาะสำหรับการฝึกอบรม LLM สามารถเพิ่มทรูพุตการฝึก multi-GPU ได้อย่างมีประสิทธิภาพ 20% และลดการใช้หน่วยความจำลง 60% Liger Kernel เขียนได้ดีและเข้ากันได้กับทั้ง FSDP และ Deepspeed
plugins :
- axolotl.integrations.liger.LigerPlugin
liger_rope : true
liger_rms_norm : true
liger_glu_activation : true
liger_layer_norm : true
liger_fused_linear_cross_entropy : true
Axolotl ช่วยให้คุณสามารถโหลดโมเดลของคุณใน Terminal Playground แบบโต้ตอบเพื่อการทดลองที่รวดเร็ว ไฟล์กำหนดค่าเป็นไฟล์กำหนดค่าเดียวกับที่ใช้สำหรับการฝึกอบรม
ส่งแฟล็กที่เหมาะสมไปยังคำสั่งการอนุมาน ขึ้นอยู่กับประเภทของโมเดลที่ได้รับการฝึก:
python -m axolotl.cli.inference examples/your_config.yml --lora_model_dir= " ./lora-output-dir "
python -m axolotl.cli.inference examples/your_config.yml --base_model= " ./completed-model "
cat /tmp/prompt.txt | python -m axolotl.cli.inference examples/your_config.yml
--base_model= " ./completed-model " --prompter=None --load_in_8bit=True
-- ด้วยโฮสติ้ง gradio
python -m axolotl.cli.inference examples/your_config.yml --gradio
โปรดใช้ --sample_packing False
หากคุณเปิดอยู่และได้รับข้อผิดพลาดที่คล้ายกับด้านล่างนี้:
RuntimeError: stack คาดว่าเทนเซอร์แต่ละตัวจะมีขนาดเท่ากัน แต่ได้ [1, 32, 1, 128] ที่รายการ 0 และ [1, 32, 8, 128] ที่รายการ 1
คำสั่งต่อไปนี้จะรวมอะแดปเตอร์ LORA ของคุณเข้ากับโมเดลพื้นฐานของคุณ คุณสามารถเลือกส่งอาร์กิวเมนต์ --lora_model_dir
เพื่อระบุไดเร็กทอรีที่บันทึกอะแดปเตอร์ LORA ของคุณ มิฉะนั้น สิ่งนี้จะถูกอนุมานจาก output_dir
ในไฟล์กำหนดค่า axolotl ของคุณ โมเดลที่ผสานจะถูกบันทึกไว้ในไดเร็กทอรีย่อย {lora_model_dir}/merged
python3 -m axolotl.cli.merge_lora your_config.yml --lora_model_dir= " ./completed-model "
คุณอาจจำเป็นต้องใช้ตัวเลือกการกำหนดค่า gpu_memory_limit
และ/หรือ lora_on_cpu
เพื่อหลีกเลี่ยงไม่ให้หน่วยความจำไม่เพียงพอ หากคุณยังคงมีหน่วยความจำ CUDA เหลืออยู่ คุณสามารถลองรวม RAM ของระบบเข้าด้วยกันได้
CUDA_VISIBLE_DEVICES= " " python3 -m axolotl.cli.merge_lora ...
แม้ว่าจะช้ามากและแนะนำให้ใช้ตัวเลือกการกำหนดค่าด้านบนแทน
ดูเพิ่มเติมที่คำถามที่พบบ่อยและคำแนะนำในการแก้ไขจุดบกพร่อง
หากคุณพบข้อผิดพลาด 'หน่วยความจำ Cuda ไม่เพียงพอ' แสดงว่า GPU ของคุณมีหน่วยความจำไม่เพียงพอในระหว่างกระบวนการฝึกอบรม ต่อไปนี้เป็นวิธีแก้ไข:
โปรดลดอันใดอันหนึ่งด้านล่าง
micro_batch_size
eval_batch_size
gradient_accumulation_steps
sequence_len
หากไม่ได้ผล ให้ลองเรียกใช้โดยไม่ใช้ deepspeed และไม่มีการเร่งความเร็ว (แทนที่ "accelerate launch" ด้วย "python") ในคำสั่ง
การใช้ adamw_bnb_8bit อาจช่วยให้คุณประหยัดหน่วยความจำได้บ้าง
failed (exitcode: -9)
โดยปกติหมายความว่าระบบของคุณมีหน่วยความจำระบบไม่เพียงพอ ในทำนองเดียวกัน คุณควรพิจารณาลดการตั้งค่าเดียวกันกับเมื่อ VRAM ของคุณหมด นอกจากนี้ ให้พิจารณาการอัพเกรด RAM ระบบของคุณซึ่งควรจะง่ายกว่าการอัพเกรด GPU
RuntimeError: ประเภทสเกลาร์ที่คาดหวังลอย แต่พบได้ครึ่งหนึ่ง
ลองตั้งค่า fp16: true
NotImplementedError: ไม่พบตัวดำเนินการสำหรับ
memory_efficient_attention_forward
...
ลองปิด xformers ดูครับ
การกำหนดค่าเร่งความเร็วหายไป
มันปลอดภัยที่จะเพิกเฉยต่อมัน
NCCL หมดเวลาระหว่างการฝึกอบรม
ดูคู่มือ NCCL
สำหรับหลายรูปแบบ Axolotl สร้างพรอมต์โดยเชื่อมรหัสโทเค็นเข้าด้วยกัน หลังจาก แปลงสตริงโทเค็น เหตุผลในการเชื่อมรหัสโทเค็นเข้าด้วยกันแทนที่จะดำเนินการกับสตริงคือเพื่อรักษาการบัญชีที่แม่นยำสำหรับมาสก์ความสนใจ
หากคุณถอดรหัสพร้อมต์ที่สร้างโดย axolotl คุณอาจเห็นช่องว่างระหว่างโทเค็น (หรือขาดหายไป) ที่คุณไม่คาดคิด โดยเฉพาะบริเวณตัวคั่นและโทเค็นพิเศษ เมื่อคุณเริ่มต้นด้วยรูปแบบใหม่ คุณควรทำสิ่งต่อไปนี้เสมอ:
python -m axolotl.cli.preprocess your_config.yml --debug
จากนั้นถอดรหัสสองสามแถวแรกด้วย tokenizer ของโมเดลของคุณการวางแนวที่ไม่ตรงกันระหว่างพร้อมท์ของคุณระหว่างการฝึกและการอนุมานอาจทำให้โมเดลทำงานได้ไม่ดีนัก ดังนั้นจึงควรตรวจสอบสิ่งนี้ ดูโพสต์บล็อกนี้สำหรับตัวอย่างที่เป็นรูปธรรม
ดูคำแนะนำในการดีบักนี้สำหรับเคล็ดลับในการดีบัก Axolotl พร้อมด้วยตัวอย่างการกำหนดค่าสำหรับการดีบักด้วย VSCode
เข้าร่วมเซิร์ฟเวอร์ Discord ของเราซึ่งสมาชิกชุมชนของเราสามารถช่วยคุณได้
ต้องการการสนับสนุนเฉพาะหรือไม่? โปรดติดต่อเราที่ ✉️[email protected] สำหรับตัวเลือกการสนับสนุนโดยเฉพาะ
สร้างสิ่งเจ๋งๆ ด้วย Axolotl เหรอ? ลองเพิ่มตราสัญลักษณ์ให้กับการ์ดโมเดลของคุณ
[ < img src = " https://raw.githubusercontent.com/axolotl-ai-cloud/axolotl/main/image/axolotl-badge-web.png " alt = " Built with Axolotl " width = " 200 " height = " 32 " /> ] ( https://github.com/axolotl-ai-cloud/axolotl )
ลองดูโปรเจ็กต์และโมเดลบางส่วนที่สร้างขึ้นโดยใช้ Axolotl! มีโมเดลที่คุณต้องการเพิ่มไปยัง Community Showcase ของเราหรือไม่? เปิด PR ด้วยโมเดลของคุณ
เปิดการเข้าถึง AI Collective
PocketDoc Labs
โปรดอ่านคู่มือการมีส่วนร่วม
แมลง? โปรดตรวจสอบปัญหาที่เปิดอยู่ มิฉะนั้นให้สร้างปัญหาใหม่
PRs ยินดีเป็นอย่างยิ่ง !
โปรดเรียกใช้คำแนะนำการเริ่มต้นอย่างรวดเร็วตามด้วยด้านล่างเพื่อตั้งค่าสภาพแวดล้อม:
pip3 install -r requirements-dev.txt -r requirements-tests.txt
pre-commit install
# test
pytest tests/
# optional: run against all files
pre-commit run --all-files
ขอขอบคุณผู้ร่วมให้ข้อมูลของเราทุกคนจนถึงปัจจุบัน ช่วยขับเคลื่อนความก้าวหน้าของ AI แบบโอเพ่นซอร์สไปข้างหน้าโดยสนับสนุน Axolotl
OpenAccess AI Collective ดำเนินการโดยอาสาสมัครที่มีส่วนร่วม เช่น winglian, NanoCode012, tmm1, mhenrichsen, casper-hansen, hamelsmu และอื่นๆ อีกมากมายที่ช่วยเราเร่งความเร็วโดยการแก้ไขจุดบกพร่อง ตอบคำถามของชุมชน และการนำคุณสมบัติใหม่ๆ ไปใช้ Axolotl ต้องการเงินบริจาคจากผู้สนับสนุนสำหรับการคำนวณที่จำเป็นในการดำเนินการทดสอบหน่วยและการรวมระบบ แก้ไขปัญหาชุมชน และมอบเงินรางวัล หากคุณรัก axolotl ลองสนับสนุนโครงการผ่าน GitHub Sponsors, Ko-fi หรือติดต่อโดยตรงที่ [email protected]