규모와 효율성을 위해 구축된 선언적 딥 러닝 프레임워크입니다.
중요한
우리 커뮤니티가 Discord로 이전되었습니다. 그곳에서 함께 해주세요!
Ludwig는 LLM 및 기타 심층 신경망과 같은 맞춤형 AI 모델을 구축하기 위한 로우 코드 프레임워크입니다.
주요 기능:
Ludwig는 Linux Foundation AI & Data에서 호스팅합니다.
PyPi에서 설치합니다. Ludwig에는 Python 3.8 이상이 필요합니다.
pip install ludwig
또는 모든 선택적 종속성을 사용하여 설치합니다.
pip install ludwig[full]
자세한 설치 지침은 기여를 참조하세요.
Ludwig 0.8의 일부 기능을 빠르게 살펴보고 싶으십니까? 이 Colab 노트북을 확인해 보세요.
Llama-2나 Mistral을 미세 조정하고 싶으신가요? 다음 노트북을 확인해 보세요.
전체 튜토리얼을 보려면 공식 시작 가이드를 확인하거나 엔드투엔드 예제를 살펴보세요.
챗봇과 같은 지침을 따르도록 사전 훈련된 LLaMA-2-7b 대규모 언어 모델을 미세 조정해 보겠습니다("명령 조정").
다음과 같은 표 형식의 파일 형식으로 구성된 Stanford Alpaca 데이터세트를 사용하겠습니다.
지침 | 입력 | 산출 |
---|---|---|
건강을 유지하기 위한 세 가지 조언을 알려주세요. | 1. 균형 잡힌 식사를 하고 다음을 포함하십시오. | |
아래 항목을 순서대로 배열해 보세요. | 케이크, 나, 먹는 중 | 케이크를 먹고 있어요. |
유명한 인물에 대한 소개 문단을 작성해 보세요. | 미셸 오바마 | 미셸 오바마는 영감을 주는 여성입니다. |
... | ... | ... |
다음을 사용하여 model.yaml
이라는 YAML 구성 파일을 만듭니다.
model_type : llm
base_model : meta-llama/Llama-2-7b-hf
quantization :
bits : 4
adapter :
type : lora
prompt :
template : |
Below is an instruction that describes a task, paired with an input that may provide further context.
Write a response that appropriately completes the request.
### Instruction:
{instruction}
### Input:
{input}
### Response:
input_features :
- name : prompt
type : text
output_features :
- name : output
type : text
trainer :
type : finetune
learning_rate : 0.0001
batch_size : 1
gradient_accumulation_steps : 16
epochs : 3
learning_rate_scheduler :
decay : cosine
warmup_fraction : 0.01
preprocessing :
sample_ratio : 0.1
backend :
type : local
이제 모델을 훈련시켜 보겠습니다.
export HUGGING_FACE_HUB_TOKEN = " <api_token> "
ludwig train --config model.yaml --dataset " ludwig://alpaca "
Rotten Tomatoes에 대한 특정 영화 평론가의 리뷰가 긍정적인지 부정적인지 예측하는 신경망을 구축해 보겠습니다.
우리의 데이터 세트는 다음과 같은 CSV 파일입니다.
영화_제목 | 콘텐츠_등급 | 장르 | 실행 시간 | 최고 비평가 | 리뷰_내용 | 추천 |
---|---|---|---|---|---|---|
우리를 악에서 구원하소서 | 아르 자형 | 액션 및 어드벤처, 공포 | 117.0 | 진실 | Scott Derrickson 감독과 그의 공동 작가인 Paul Harris Boardman은 눈에 띄지 않는 공포감으로 일상적인 절차를 전달합니다. | 0 |
바바라 | PG-13 | 아트 하우스 & 인터내셔널, 드라마 | 105.0 | 거짓 | 이 감동적인 이야기에서 바바라는 자신의 원칙과 인간성, 용기를 지키며 공산주의자들이 삶을 파괴하려는 반체제 십대 소녀를 구하기 위해 싸웁니다. | 1 |
끔찍한 보스 | 아르 자형 | 코메디 | 98.0 | 거짓 | 이 상사들은 살인이나 오래 지속되는 만화 기억을 정당화할 수 없으며, 대단할 수도 있었지만 결국 그저 평범하게 끝나는 희극을 치명적으로 타협합니다. | 0 |
... | ... | ... | ... | ... | ... | ... |
여기에서 데이터세트 샘플을 다운로드하세요.
wget https://ludwig.ai/latest/data/rotten_tomatoes.csv
다음으로 다음을 사용하여 model.yaml
이라는 YAML 구성 파일을 만듭니다.
input_features :
- name : genres
type : set
preprocessing :
tokenizer : comma
- name : content_rating
type : category
- name : top_critic
type : binary
- name : runtime
type : number
- name : review_content
type : text
encoder :
type : embed
output_features :
- name : recommended
type : binary
그게 다야! 이제 모델을 훈련시켜 보겠습니다.
ludwig train --config model.yaml --dataset rotten_tomatoes.csv
행복한 모델링
데이터에 Ludwig를 적용해 보세요. 궁금한 점이 있으면 Discord에 문의하세요.
최소한의 머신러닝 상용구
Ludwig는 기계 학습의 엔지니어링 복잡성을 즉시 처리하여 연구 과학자들이 최고 수준의 추상화에서 모델 구축에 집중할 수 있도록 합니다. torch.nn.Module
모델을 위한 데이터 전처리, 하이퍼파라미터 최적화, 장치 관리 및 분산 교육이 완전히 무료로 제공됩니다.
쉽게 벤치마크 구축
최첨단 기준선을 생성하고 이를 새 모델과 비교하는 것은 간단한 구성 변경입니다.
여러 문제와 데이터 세트에 새로운 아키텍처를 쉽게 적용
Ludwig가 지원하는 광범위한 작업 및 데이터 세트에 걸쳐 새로운 모델을 적용합니다. Ludwig에는 모든 사용자가 액세스할 수 있는 전체 벤치마킹 툴킷이 포함되어 있어 간단한 구성만으로 여러 데이터세트에 걸쳐 여러 모델로 실험을 실행할 수 있습니다.
고도로 구성 가능한 데이터 전처리, 모델링 및 지표
모델 아키텍처, 훈련 루프, 초매개변수 검색 및 백엔드 인프라의 모든 측면을 선언적 구성의 추가 필드로 수정하여 요구 사항에 맞게 파이프라인을 사용자 지정할 수 있습니다. 구성할 수 있는 항목에 대한 자세한 내용은 Ludwig 구성 문서를 확인하세요.
즉시 사용 가능한 다중 모드, 다중 작업 학습
코드를 작성하지 않고도 표 형식의 데이터, 텍스트, 이미지, 오디오까지 복잡한 모델 구성으로 혼합하고 일치시킬 수 있습니다.
풍부한 모델 내보내기 및 추적
Tensorboard, Comet ML, Weights & Biases, MLFlow 및 Aim Stack과 같은 도구를 사용하여 모든 시도와 지표를 자동으로 추적합니다.
훈련을 다중 GPU, 다중 노드 클러스터로 자동 확장
코드 변경 없이 로컬 머신의 교육에서 클라우드로 이동하세요.
사전 학습된 Huggingface Transformer를 포함한 최첨단 모델을 위한 로우 코드 인터페이스
Ludwig는 또한 Huggingface Transformers에서 사용할 수 있는 것과 같은 사전 훈련된 모델과 기본적으로 통합됩니다. 사용자는 사전 훈련된 최첨단 PyTorch 모델의 방대한 컬렉션 중에서 선택하여 코드를 전혀 작성할 필요 없이 사용할 수 있습니다. 예를 들어 Ludwig를 사용하여 BERT 기반 감정 분석 모델을 교육하는 것은 다음과 같이 간단합니다.
ludwig train --dataset sst5 --config_str " {input_features: [{name: sentence, type: text, encoder: bert}], output_features: [{name: label, type: category}]} "
AutoML을 위한 로우 코드 인터페이스
Ludwig AutoML을 사용하면 데이터 세트, 대상 열 및 시간 예산만 제공하여 훈련된 모델을 얻을 수 있습니다.
auto_train_results = ludwig . automl . auto_train ( dataset = my_dataset_df , target = target_column_name , time_limit_s = 7200 )
손쉬운 생산화
Ludwig를 사용하면 GPU를 포함하여 딥 러닝 모델을 쉽게 제공할 수 있습니다. 학습된 Ludwig 모델을 위한 REST API를 실행하세요.
ludwig serve --model_path=/path/to/model
Ludwig는 효율적인 Torchscript 번들로 모델 내보내기를 지원합니다.
ludwig export_torchscript -–model_path=/path/to/model
Ludwig, 선언적 ML 및 Ludwig의 SoTA 벤치마크에 대한 간행물을 읽어보세요.
Ludwig의 작동 방식, 시작 방법 및 더 많은 예제를 통해 작업하는 방법에 대해 자세히 알아보세요.
기여에 관심이 있거나 공유할 질문, 의견 또는 생각이 있거나 단지 정보를 얻고 싶다면 Community Discord에 가입하고 X에서 우리를 팔로우하세요!
Ludwig는 여러분과 같은 사람들의 기여에 의존하는 적극적으로 관리되는 오픈 소스 프로젝트입니다. Ludwig를 더욱 쉽게 접근할 수 있고 모든 사람이 사용할 수 있는 풍부한 프레임워크를 제공하기 위해 활발한 Ludwig 기여자 그룹에 합류하는 것을 고려해보세요!